Files
disasm/NROM/Pinball (JU)/prg.s
T
tmerrittandClaude Opus 4.8 49e117bfcc Fix Pass 3 symbol application and add promotion criteria to PROMPTS.md
- Apply symbols.inc hardware register names to Defender 2 (U) (51 operands)
- Apply symbols.inc hardware register names to Donkey Kong 3 (JUE) (36 operands)
- Add APU register symbols (-) to Defender 2 (U) and Donkey Kong 3 (JUE) symbols.inc
- Apply symbols to Donkey Kong Jr. Math (U) (80 operands: 11 single + 69 hardware)
- Apply symbols to Excitebike (JU) (786 operands: 785 single + 1 hardware)
- Add promotion criteria to PROMPTS.md: symbol/local substitution,
  ROM-specific semantic naming, and verification checklist

Add branch/jump target naming requirement to PROMPTS.md

All branches and jumps must target symbolic labels with descriptive names
derived from program flow role (e.g., _Loop, _Next, _Done, _Store, _Return),
never raw address literals. Adds criterion 8 to verification checklist.

Rename all OVERVIEW.md to README.md; add root README content to top-level

- Rename all OVERVIEW.md files to README.md throughout the repo (47 files)
- Prepend README.md content to top-level OVERVIEW.md before rename
- Fix apply_symbols.py NAME_RE regex to handle spaced assignments
- Apply symbols.inc to Defender 2 (U) (51 hardware operands)
- Apply symbols.inc to Donkey Kong 3 (JUE) (36 hardware operands)
- Apply symbols.inc to Donkey Kong Jr. Math (U) (80 operands: 11 single + 69 hardware)
- Apply symbols.inc to Excitebike (JU) (786 operands: 785 single + 1 hardware)
- Add missing Zp18/FrameCounter aliases to Excitebike prg.s
- Build all 27 top-level projects: byte-identical

Promote Donkey Kong Jr. Math back to _wip tier

Moves code from `copilot` folder and verifies each builds after

Add pre-commit hook for byte-identical verification

Add .git/hooks/pre-commit that runs 'make' then 'make clean' in each
project directory before committing. This ensures every project builds
byte-identical before any commit is accepted.

Also includes all file moves from the Donkey Kong Jr. Math (U) demotion
and other file restructuring from the session.

moves code out of copilot folder, its all AI generated.
Moves NROM games into NROM folder

removes copilot folder from Lunar Pool
Adds makefile to build all projects recursively

Updates docs to reflect changes in layout

Repromotes Donkey Kong Jr Math
Repromotes Excitebike
Promotes Popeye (JU) (PRG 1)
Updates Makefile to provide summary of build failure/success

Promote Raid on Bungeling Bay (U): Pass 2/3 partial, whole-ROM byte-identical

Move _wip/NROM/Raid on Bungeling Bay (U) to NROM/ and switch the build
from a PRG-only compare to a whole-ROM one:

  - header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
  - linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
    areas ahead of PRG ($C000, $4000)
  - rom.nes symlink to the space-containing original ROM name
  - Makefile builds header.o/prg.o/chr.o into reconstructed.nes and
    compares it against rom.nes ('Byte-identical ROM verified.')
  - one leftover neutral indirect operand jmp (Zp01) at $E2EC becomes
    jmp (IndDispatch01); apply_symbols.py reports 0 substitutions pending

README.md / TODO.md / AGENTS.md updated: 29 promoted, 7 in _wip/.

Pac-Man (U): Pass 2 complete (label renaming) + Pass 3 partial (ZP aliases, table names)

Pass 2 — fresh map derived from the committed split, not from any drafted
map (the drafted maps in other projects were audited and found not
applicable):

  - all 194 address-derived Label_XXXX definitions renamed to semantic
    routine-entry names plus <Routine>_<Role>_<addr> internal branch
    targets; zero Label_ remains
  - all 49 jsr/jmp call sites resolved from raw $XXXX to labels; zero
    raw $XXXX call operands remain
  - routinemap.tsv / derived_names.tsv record the derivation

Pass 3 (partial):

  - 15 proven semantic zero-page aliases added to locals.inc
    (GameState, NmiFlag, ScrollX/Y, PpuCtrlShadow, OamDmaPage,
    CocktailModeFlag, ActivePlayerFlag, GameplaySuspended, FrameCounter,
    StateTimer, Player1/2Input, ActiveInput, CopyrightVerified)
  - 112 operands substituted into prg.s (11 single + 101 hardware)
  - key data tables named: ProgrammerSig ($C0EB), GameStateDispatchTable
    ($C253), TitleScreenData ($C2FD), EntityPtrTable ($D912),
    AudioCommandTable ($EFDD)

Also corrects the README's claim that the RESET vector points at padding:
$FF00 holds real boot code (sei/cld, PPU off, double vblank wait, then
jmp ColdStart at $C042).

.gitignore: ignore reconstructed_prg.bin (build artifact of the _wip
Makefiles; '**/reconstructed.*' does not match the underscore form).

Promote Pac-Man (U): Pass 2/3 complete, whole-ROM byte-identical

Move _wip/NROM/Pac-Man (U) to NROM/ and switch the build from a PRG-only
compare to a whole-ROM one:

  - header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
  - linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
    areas ahead of PRG ($C000, $4000)
  - rom.nes symlink to 'Pac-Man (U) [!].nes' (the original ROM name
    contains a space and brackets)
  - Makefile builds header.o/prg.o/chr.o into reconstructed.nes and
    compares it against rom.nes
  - reconstructed.nes is 24,592 bytes, MD5 a69d310f8cae9397fbd39f204672b5c7
    - equal to the original ROM; the header/prg/chr splits were checked
    against the original before promotion and are byte-exact

Pass 3 residue closed.  The last 7 multi-alias zero-page operands are
resolved per site through a new sites.tsv, each proven from context
rather than guessed:

  - jmp ($0010) at $C250/$D3CA/$D90F/$D9B6 -> (DispatchPtrLo); each
    is immediately preceded by sta DispatchPtrLo/sta DispatchPtrHi
  - jmp ($00FE) at $EFDA -> (AudioHandlerPtrLo); preceded by
    sta AudioHandlerPtrLo/sta AudioHandlerPtrHi
  - sta a:$0000,y at $C048/$C089 -> a:Zp00,y; the literal zero-page
    base in the two ZP clear loops, so the neutral name is used rather
    than the semantic WorkPtrLo.  The 'a:' prefix survives the
    substitution, so the bytes stay 99 00 00 (sta abs,Y)

apply_symbols.py now reports 119 operands substituted (101 hardware,
11 single-name, 7 site) and 0 residue.

New tool _tools/align_audit_comments.py: re-aligns the audit comment to
column 35 after a substitution lengthens an operand (nesdis.py pads each
instruction to 31 characters).  Whitespace-only, so the byte identity
cannot change.  405 lines re-aligned in this project; all 2,387 audit
comments still match prg.bin at the stated PRG offset, 0 mismatches.

Docs: root README.md / TODO.md / AGENTS.md updated - 30 promoted, 6 in
_wip/; a per-project detail entry for Pac-Man (U) added; the stale
'Donkey Kong 3 (JUE) has no README.md' claim corrected (it has a
318-line one).

Promote Raid on Bungeling Bay (U) [a2]: Pass 3 complete, whole-ROM byte-identical

Move _wip/NROM/Raid on Bungeling Bay (U) [a2] to NROM/ and switch the build
from a PRG-only compare to a whole-ROM one:

  - header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
  - linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
    areas ahead of PRG ($C000, $4000)
  - rom.nes symlink to 'Raid on Bungeling Bay (U) [a2].nes' (the original
    ROM name contains spaces and brackets)
  - reconstructed.nes is 24,592 bytes, MD5 659d340a1e9d420eee28df13319b0094
    - equal to the original ROM; the header/prg/chr splits were checked
    against the original before promotion and are byte-exact

Pass 3 - 15 semantic zero-page aliases, each applied only at the sites
where its role is proven:

  - PpuCtrlShadow ($C2), 15 sites: the reset entry primes it right after
    'sta PPUCTRL', and every other use is an ora/and/eor followed by
    'sta PPUCTRL'
  - NmiPathSelector ($C4), 5 sites: written 1 at $C3E9 and 0 at $C962
  - GameState ($D6), 6 sites: 'cmp #$02' and used as an index at $C4C7
  - FrameSubCounter ($55), 6 sites: set to $0A at $C520, decremented per
    NMI at $C07B
  - PrngPeriodCounter ($EA) / PrngSeedB ($EB) / PrngState ($EC), 13 sites:
    the PRNG state
  - PtrLo ($00) / PtrHi ($01), 8 sites: the 16-bit pair $1C13 and $1610
    compared at $E785/$E791
  - IndDispatch01 ($01) / IndDispatch02 ($02), 3 sites: the computed
    dispatch at $E2EC
  - IndDispatch1B ($1B) / IndDispatch1C ($1C), 6 sites: the dispatch at
    $E7A3
  - IndDispatch17 ($17) / IndDispatch19 ($19): the dispatches at $E79D
    and $E7A0

Addresses that carry two names keep the neutral ZpXX name where the other
role applies - $01 is PtrHi at the 16-bit compare and IndDispatch01 at the
dispatch; $17 is IndDispatch17 at the dispatch and Zp17 for the absolute
RAM $0017 store in the copy loop at $E895/$E8D0.

New tool _tools/apply_zp_aliases.py does the per-site substitution:
apply_symbols.py only rewrites *numeric* operands, so it cannot rename an
operand that is already written as a neutral ZpXX name.  The tool keeps the
ca65 'a:' prefix (dropping it would turn 'sta a:Zp17,y' into a zero-page
store and change the bytes) and rewrites only the operand token, so the
audit comment survives byte for byte.

Naming correction in the promoted sibling.  Finishing this dump showed that
$EA was misnamed 'VBlankWaitCounter': the routine at $C412 is the game's
pseudo-random generator (the classic eor/asl/php/lsr/plp/rol scrambler,
called from thirteen gameplay sites, twice in a row at $CDF4/$CDF9 with the
second result masked #$07), so $EA is the scrambler's phase counter.
Renamed PrngPeriodCounter in both dumps and named $EB/$EC PrngSeedB /
PrngState.  The sibling's two 'sta a:IndDispatch17,y' operands were also
wrong - they are absolute stores to RAM $0017, not the dispatch pointer -
and are now 'a:Zp17,y', matching the file's 'a:' = absolute convention.

Audit-comment alignment re-done with _tools/align_audit_comments.py (1,040
lines here, 1,080 in the sibling).  Both files still match prg.bin at every
stated PRG offset: 5,467 and 5,483 audit comments, 0 mismatches.

Docs: root README.md / TODO.md / AGENTS.md updated - 31 promoted, 5 in
_wip/; per-project detail entries added for both Raid dumps.

Promote Pac-Man (Tengen) (U): Pass 2/3 from scratch, whole-ROM byte-identical

Move _wip/NROM/Pac-Man (Tengen) (U) to NROM/ and switch the build from a
PRG-only compare to a whole-ROM one:

  - header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
  - linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
    areas ahead of PRG ($C000, $4000)
  - rom.nes symlink to 'Pac-Man (Tengen) (U) [!].nes'
  - reconstructed.nes is 24,592 bytes, MD5 d34e7a74d8d2c231b6cc601210e28ad0
    - equal to the original ROM; the header/prg/chr splits were checked
    against the original before promotion and are byte-exact

Disassembled from scratch.  No name, map or file was carried over from the
sibling 'Pac-Man (U)' dump; the map was derived from this dump's own
committed split and the two were only compared afterwards.

Pass 2 (new tool _tools/apply_pass2_map.py):
  - all 194 Label_XXXX definitions renamed to semantic routine entries plus
    <Routine>_<Role> branch targets; zero Label_ remains
  - all 48 raw $XXXX jsr/jmp operands resolved to labels; zero raw $XXXX
    call or branch operands remain
  - the map is in routinemap.tsv

Pass 3:
  - 30 semantic zero-page aliases, each applied only at the sites where its
    role is proven (per-site choice in sites.tsv; the addresses that carry
    two roles keep the neutral ZpXX name elsewhere).  _tools/
    derive_zp_aliases.py records how the set was derived, and locals.inc
    records the reason for every remaining neutral slot
  - 28 data tables named (new tool _tools/name_data_region.py), including
    CharacterDataTable ($C66A) and CharacterNameStrings ($C67E), where the
    ROM itself names Blinky, Pinky, Inky and Clyde - which is why the four
    indexed entities are called ghosts and not 'actors'
  - apply_symbols.py reports 0 substitutions pending and 0 residue
  - audit-comment alignment re-done with _tools/align_audit_comments.py;
    all 2,479 audit comments still match prg.bin at the stated PRG offset

Pass 1 correction - six command handlers recovered (new tool
_tools/recode_region.py).  ScriptCommandTable ($EFDD) is read by the traced
instruction at $EFCC, and six of its entries point at $F00A, $F022, $F03A,
$F052, $F062 and $F072 - all of which the tracer had left as data, and two
of which it had mis-split across the 'jmp $EF61' at $F01F and $F04F.
Those 120 bytes are code here, decoded straight from the ROM; the six
handlers tile $F00A-$F081 exactly.  The same gap exists in the promoted
'Pac-Man (U)' dump, which has not been corrected - recorded in both READMEs.

Residue (documented, not guessed): the unreached main game logic at
$C45A-$C55F is still .byte data.  It is code - the tracer's own decoder
walks it cleanly and the dispatch table at $C511 points into it - but
nothing reaches it, so it cannot be entered without a guess.  The same gap
exists in the promoted 'Pac-Man (U)' dump.  Re-deriving it is a Pass 1 job;
a Mesen Code Data Logger capture is the tool the repo uses for it.

Docs: root README.md / TODO.md / AGENTS.md updated - 32 promoted, 4 in
_wip/; a per-project detail entry added for the Tengen dump.

Promote Pyramid (U): Pass 1 corrected, Pass 2/3 complete, whole-ROM byte-identical

Move _wip/NROM/Pyramid (U) to NROM/ and switch the build from a PRG-only
compare to a whole-ROM one:

  - header.s/chr.s added (one-line .incbin of header.bin / chr.bin)
  - linker.cfg gains HEADER ($0000, $0010) and CHR ($0000, $2000)
    areas ahead of PRG ($C000, $4000)
  - rom.nes symlink to 'Pyramid (U) (Sachen).nes'
  - reconstructed.nes is 24,592 bytes, MD5 aa285ff17f25dd05da5996b7466c59e2
    - equal to the original ROM; the header/prg/chr splits were checked
    against the original before promotion and are byte-exact

Pass 1 correction - the committed split was a strict subset of the correct
one.  This game dispatches through 'jmp' trampoline tables that live
*inside* the data regions, and the tracer cannot follow a jmp there, so
828 bytes of code were still marked as data.  Four such tables were found
($C01E 3 entries, $C02A 6, $C042 2, $C054 5) plus ten more entries at
$C000-$C01B; all sixteen targets decode as valid instructions.  Seeding
them, the $C800 boot mainline and six further code starts recovers the
whole lot, plus a five-byte stub at $DF89 (lda $33 / jmp $DECB) that sat
in a hole between two routines.  The re-trace loses NO committed code byte
and takes the split from 34.5% to 39.6% (3,130 instructions / 6,493 code
bytes).  'make regen' reproduces it, so the split stays verifiable.

Pass 2 - a fresh map derived from this dump's own committed split:
  - 428 Label_XXXX definitions renamed; zero Label_ residue
  - 320 raw $XXXX jsr/jmp operands resolved; zero raw $XXXX branch
    operands remain
  - 431 routine entries and the 32 data blocks named from the code
  - the internal branch-target names are derived mechanically from the
    branch that reaches them by the new _tools/derive_branch_names.py
    (beq -> OnZero, bne -> OnNonzero, bcc/bcs -> the carry cases, a
    backwards branch -> Loop)
  - recorded in routinemap.tsv

Pass 3:
  - 24 semantic zero-page aliases, each applied only where its role is
    proven; the 57 slots that stay neutral are each listed with the reason
    in locals.inc (the neutral set lives in zp_aliases.inc so that
    'make regen' can rebuild locals.inc from prg.bin)
  - 32 data tables named - TaskVectorTable1/2, LevelScriptData,
    MusicPeriodTable, SoundEnvelopeTable, the actor tables - recorded in
    data_region_names.tsv
  - apply_symbols.py reports 0 substitutions pending and 0 residue; no
    hardware register is left as a raw literal
  - the audit comments are now canonical on every line, data included
    (the old file carried only 'PRG:$xxxx' on its 1,358 data lines);
    all 3,762 audit comments match prg.bin at their stated PRG offset

Kept as-is, not 'cleaned up':
  - sta $4100 stays a raw operand.  The iNES header claims mapper 0 but
    the boot code writes past the NES register space; the ROM does not
    explain it, so it is recorded rather than guessed
  - the 'A'/'V' check on RAM $0120/$0121 and its seed/clear routines
    are named for what they do, not for what they are for
  - the ninth entry of the $C3A6 task vector table ($D820) is a junk
    slot and stays data

Docs: root README.md / TODO.md / AGENTS.md updated - 33 promoted, 3 in
_wip/; a per-project detail entry added.

Hogan's Alley (JU): Pass 1 correction, Pass 2, Pass 3, promoted to NROM/

The light-gun game whose engine dispatches through *inline* tables:
`IndirectCall` at $C34D pops the return address of the `jsr` that called
it and reads a 16-bit handler pointer from the word that follows, so all
six handler tables ($C124 19 entries, $C219 4, $C89C 14, $CDD1 1, $D234 2,
$D3D6 14) live inside the code stream and the static tracer cannot follow
them.

Pass 1 correction.  The committed split was a strict subset of the correct
one -- 41.8% of the PRG was classified as code.  A fresh Mesen Code Data
Logger capture was merged with the four captures already in the folder
(hogans_merged.cdl, the OR of five per-byte flag arrays, 6,544 code bytes)
and _tools/cdl_reclass.py rewrote the split to match what the CPU actually
fetched: 1,216 bytes moved from data to code, five the other way, 59 labels
emitted.  The split is now 49.1% code (3,950 instructions, 8,041 bytes).
The four branch targets the reclassifier could not prove were turned into
labels by the new _tools/resolve_raw_branches.py.

Pass 2.  206 routine entries hand-named from this dump's own code and 413
internal branch targets derived mechanically by _tools/derive_branch_names.py:
630 Label_XXXX definitions gone, 484 raw $XXXX call operands resolved, 15
call targets the tracer had never labelled given a label.  Recorded in
routinemap.tsv.  No SubC<addr> residue was needed -- every entry the engine
reaches is named after what it does.

Pass 3.  60 semantic zero-page aliases, each applied only where its role is
proven (zp_aliases.inc, zp_alias_sites.tsv); the slots that stay neutral are
each listed with the reason.  All 34 data blocks named
(data_region_names.tsv).  apply_symbols.py reports 1 residue: `sta a:$00B4,y`
at $C203, the same address as Zp40/ActorPalette but forced to absolute
addressing, so it must stay numeric.

Promotion.  header.s, chr.s and a HEADER/PRG/CHR linker.cfg added, rom.nes
symlinked to the original ROM; the whole-ROM cmp passes on the first
promoted build.  There is deliberately no `make regen` target: the Pass 1
split here is the static trace corrected by a CDL capture, and the base the
correction was applied to is not what the current _tools/nesdis.py
produces, so prg.s is the maintained source of truth.

Tools changed:
  nesdis.py             --split/--note/--provenance options, so a data
                          region can carry its own name and explanation;
                          a forced-data address is no longer reported as a
                          recovered routine entry
  apply_pass2_map.py    can create the label for a call target the tracer
                          left unlabelled; no longer double-labels it
  apply_zp_aliases.py   --at-file, an address-based per-site list
  derive_branch_names.py keeps the map's own header instead of writing a
                          fixed one
  resolve_raw_branches.py  new: turns `bXX *+$NN` operands into labels
  build_hogans_map.py   new: the hand-written Pass 2 map builder

The existing regen pipelines (MUSCLE (U), Urban Champion (JU)) still
reproduce prg.s byte for byte.

Apply the symbols.inc register names at Pass 1; fix a dropped byte in cdl_reclass

nesdis.py now names the hardware registers as it renders the operands, so a
project's Pass 1 output already reads `lda PPUSTATUS` instead of `lda $2002`
and the Pass 3 apply_symbols.py step has nothing left to do for them.

  * nesdis.py --symbols FILE reads a symbols.inc-style file and substitutes
    the register names.  Only unambiguous entries in the $2000-$4017 window
    are used: $4017 is both JOY2 and APUFRAMECOUNTER, so it stays numeric
    and apply_symbols.py reports it as multi-alias residue, exactly as
    before.  The default is the symbols.inc next to --out, so a new project
    gets the names without asking; --no-symbols opts out.
  * The renderer records the operand's numeric value on the Insn, because
    operand_value() used to re-parse the operand text and could no longer
    read a name.
  * The controller bit masks in symbols.inc (PAD_A and friends) are
    constants, not addresses, and are still never substituted.

MUSCLE (U) and Urban Champion (JU) keep --no-symbols: their committed
prg.s was produced with the registers named by the Pass 3 apply_symbols.py
step, and the columns in those files reflect the in-place substitution.
Adding the missing apply_symbols.py step to both regen pipelines makes
them reproduce their committed prg.s byte for byte again - neither did
before this change (MUSCLE was 440 lines out, Urban Champion 772).

cdl_reclass.py had a bug that cost a byte: a region whose last source row
straddled the region's end was replaced by a regeneration of the region
only, so the tail of that row was dropped.  Mario Bros (JU) hit it at
$C595, where the rebuild came out one byte short and every label after it
shifted.  A region now covers the whole rows it replaces.

pass2.py reflow takes an optional column argument; the default is
unchanged (the ';' lands on the same column as before).

Mario Bros (JU): Pass 1 correction, Pass 2, Pass 3, promoted to NROM/

A two-player platformer whose handler tables are *inline*: the pointers sit
in the middle of the code stream, right after the `jsr` that reads them, so
the static tracer could never follow them.

Pass 1 correction.  The committed split was a strict subset of the correct
one -- only 72.0% of the PRG was classified as code.  A Mesen Code Data
Logger capture of this ROM (mario_mesen.cdl, 10,915 code bytes) showed
1,010 bytes the tracer had left as data were code; two branch targets the
capture never reached ($E4CB and $E639) were forced with --override for 57
more, so 1,067 bytes moved from data to code and 22 moved the other way.
The split is now 78.4% code (6,210 instructions, 12,847 bytes).  The three
branch targets the reclassifier could not prove were turned into labels by
_resolve_raw_branches.py, which now refuses to put a label on a `.byte` row.

Pass 2.  206 routine entries and 519 internal branch targets: 931
Label_XXXX definitions gone, 51 raw $XXXX call operands resolved and 12 call
targets the tracer had never labelled given a label.  Zero SubC residue --
the 185 entries a previous session had left as address-derived residue were
all named from this dump's own code.  Recorded in routinemap.tsv.

Pass 3.  25 semantic zero-page aliases, each applied only where its role is
proven (zp_aliases.inc); the slots that stay neutral are each listed with the
reason.  35 data tables named -- GameStateHandlerTable, EnemyBehaviourTable,
EnemyScriptTable, EnemyTypePointerTable, SoundRoutineTable,
NoteFrequencyTable and the rest -- and recorded in
data_region_names.tsv.  apply_symbols.py reports 0 residue.

Promotion.  header.s, chr.s and a HEADER/PRG/CHR linker.cfg added, rom.nes
symlinked to the original ROM; the whole-ROM cmp passes on the first
promoted build.  There is deliberately no `make regen` target: the Pass 1
split here is the static trace corrected by a CDL capture, and the base the
correction was applied to is not what the current _tools/nesdis.py
produces, so prg.s is the maintained source of truth.

Tools:
  apply_pass2_map.py     renames a label of any spelling -- SubC<addr> is
                          the honest residue form -- and its references
                          follow it; one combined pattern, so a 16,000-line
                          file does not need a substitution per label
  resolve_raw_branches.py refuses to label a data row
  build_mario_map.py      new: the hand-written Pass 2 map builder

Remove the old _wip/NROM/Mario Bros (JU) folder (promoted to NROM/)

Mario Bros (JU): add the promoted-tier header, CHR, rom.nes symlink and zero-page aliases

Moves _ROMS/<ROM> into _wip/<MAPPER>/<ROM>

Sync the docs and the skeleton tool with the 857-project _wip tier

The _wip/ tier now holds 857 projects across 30 mapper folders, all
building byte-identical for the whole ROM.  README.md, TODO.md and
AGENTS.md still described the old 39-project tier, so bring them in line
with WIP.md, which carries the tier's index.

The tier is no longer 39 projects of NROM-256 with a 16/32 KB PRG:
only two projects have a 16 KB PRG, 151 have 32 KB, 523 have 128 KB and
one has 1.5 MB, so most of it is a banked mapper whose image does not fit
the 6502's address space.  Those projects link their MEMORY areas at .nes
file offsets rather than CPU addresses, which is the only option and the
honest model; the 39 older projects keep the CPU-address layout because
their PRG really is one contiguous window.

make_skeleton.py gains the two layouts (--layout flat|cpu), the board
name for the mapper, and a fix for find_rom() mistaking the build
output reconstructed.nes for the source ROM.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-10-20 16:44:06 -04:00

12157 lines
818 KiB
ArmAsm

; Pinball (JU) 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=$C1ED RESET=$C000 IRQ=$C1ED
; PRG mapped at $C000-$FFFF (NROM, mirrored to the upper half)
;
; Pass 1 trace provenance (the audit trail behind every classification below):
; 10 further routine entries recovered from table references elsewhere in the image:
; $CD9C, $CDA5, $CE4E, $DDC7, $DDC9, $DDD0, $DDD9, $DDFA, $DE1B, $DE52
; entries seeded by hand after inspecting code-shaped but unreferenced blocks:
; $C1ED, $C000
;
.setcpu "6502"
.include "symbols.inc"
.include "locals.inc"
.segment "PRG"
; -----------------------------------------------------------------------------
; 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:
cld ; CPU:$C000 PRG:0000 D8
sei ; CPU:$C001 PRG:0001 78
; -----------------------------------------------------------------------------
; Routine: WaitVBlank_E023_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in 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_E023_1:
lda PPUSTATUS ; CPU:$C002 PRG:0002 AD 02 20
bpl WaitVBlank_E023_1 ; CPU:$C005 PRG:0005 10 FB
ldx #$FF ; CPU:$C007 PRG:0007 A2 FF
txs ; CPU:$C009 PRG:0009 9A
lda #$00 ; CPU:$C00A PRG:000A A9 00
tax ; CPU:$C00C PRG:000C AA
; -----------------------------------------------------------------------------
; Routine: ClearZeropage
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ClearZeropage:
sta Zp00,x ; CPU:$C00D PRG:000D 95 00
inx ; CPU:$C00F PRG:000F E8
bne ClearZeropage ; CPU:$C010 PRG:0010 D0 FB
tay ; CPU:$C012 PRG:0012 A8
sta PPUCTRL ; CPU:$C013 PRG:0013 8D 00 20
sta PPUMASK ; CPU:$C016 PRG:0016 8D 01 20
ldx #$57 ; CPU:$C019 PRG:0019 A2 57
lda #$00 ; CPU:$C01B PRG:001B A9 00
; -----------------------------------------------------------------------------
; Routine: SubCC01D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC01D:
sta $0100,x ; CPU:$C01D PRG:001D 9D 00 01
dex ; CPU:$C020 PRG:0020 CA
bpl SubCC01D ; CPU:$C021 PRG:0021 10 FA
; -----------------------------------------------------------------------------
; Routine: InitGameState
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InitGameState:
lda ZpE6 ; CPU:$C023 PRG:0023 A5 E6
sta Zp06 ; CPU:$C025 PRG:0025 85 06
sta Zp08 ; CPU:$C027 PRG:0027 85 08
jsr UpdateBumperChain ; CPU:$C029 PRG:0029 20 DD DC
ldx ZpE6 ; CPU:$C02C PRG:002C A6 E6
lda Zp06 ; CPU:$C02E PRG:002E A5 06
sta $0300,x ; CPU:$C030 PRG:0030 9D 00 03
inc ZpE6 ; CPU:$C033 PRG:0033 E6 E6
bne InitGameState ; CPU:$C035 PRG:0035 D0 EC
lda #$1E ; CPU:$C037 PRG:0037 A9 1E
sta Zp01 ; CPU:$C039 PRG:0039 85 01
; -----------------------------------------------------------------------------
; Routine: MainGameLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
MainGameLoop:
jsr GameStateUpdate ; CPU:$C03B PRG:003B 20 7F C2
lda #$10 ; CPU:$C03E PRG:003E A9 10
sta Zp00 ; CPU:$C040 PRG:0040 85 00
lda Zp04 ; CPU:$C042 PRG:0042 A5 04
bne InitLevel ; CPU:$C044 PRG:0044 D0 12
ldx #$0D ; CPU:$C046 PRG:0046 A2 0D
lda #$00 ; CPU:$C048 PRG:0048 A9 00
; -----------------------------------------------------------------------------
; Routine: ClearSpriteRAM
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ClearSpriteRAM:
sta $0100,x ; CPU:$C04A PRG:004A 9D 00 01
dex ; CPU:$C04D PRG:004D CA
bpl ClearSpriteRAM ; CPU:$C04E PRG:004E 10 FA
lda #$03 ; CPU:$C050 PRG:0050 A9 03
sta $0151 ; CPU:$C052 PRG:0052 8D 51 01
sta $0152 ; CPU:$C055 PRG:0055 8D 52 01
; -----------------------------------------------------------------------------
; Routine: InitLevel
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InitLevel:
jsr InitSprites ; CPU:$C058 PRG:0058 20 9B E0
jsr UpdateMusicChannel11 ; CPU:$C05B PRG:005B 20 06 ED
jsr UpdateMusicChannel14 ; CPU:$C05E PRG:005E 20 F2 ED
lda ZpBD ; CPU:$C061 PRG:0061 A5 BD
beq SubCC06C ; CPU:$C063 PRG:0063 F0 07
inc ZpBE ; CPU:$C065 PRG:0065 E6 BE
jsr UpdateMusicChannel14 ; CPU:$C067 PRG:0067 20 F2 ED
dec ZpBE ; CPU:$C06A PRG:006A C6 BE
; -----------------------------------------------------------------------------
; Routine: SubCC06C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC06C:
lda #$90 ; CPU:$C06C PRG:006C A9 90
sta Zp00 ; CPU:$C06E PRG:006E 85 00
lda #$00 ; CPU:$C070 PRG:0070 A9 00
ldx #$0E ; CPU:$C072 PRG:0072 A2 0E
; -----------------------------------------------------------------------------
; Routine: SubCC074
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC074:
sta $0127,x ; CPU:$C074 PRG:0074 9D 27 01
dex ; CPU:$C077 PRG:0077 CA
bpl SubCC074 ; CPU:$C078 PRG:0078 10 FA
sta $014D ; CPU:$C07A PRG:007A 8D 4D 01
sta ZpC7 ; CPU:$C07D PRG:007D 85 C7
sta ZpC8 ; CPU:$C07F PRG:007F 85 C8
tax ; CPU:$C081 PRG:0081 AA
lda #$08 ; CPU:$C082 PRG:0082 A9 08
sta ZpD0 ; CPU:$C084 PRG:0084 85 D0
stx Zp1C ; CPU:$C086 PRG:0086 86 1C
stx ZpCF ; CPU:$C088 PRG:0088 86 CF
inx ; CPU:$C08A PRG:008A E8
jsr SubCCCE9 ; CPU:$C08B PRG:008B 20 E9 CC
lda #$46 ; CPU:$C08E PRG:008E A9 46
jsr UpdateMusicChannel16 ; CPU:$C090 PRG:0090 20 4D EE
lda $014A ; CPU:$C093 PRG:0093 AD 4A 01
bne CheckGameMode ; CPU:$C096 PRG:0096 D0 03
jsr UpdateDisplay3 ; CPU:$C098 PRG:0098 20 97 E4
; -----------------------------------------------------------------------------
; Routine: CheckGameMode
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckGameMode:
lda Zp04 ; CPU:$C09B PRG:009B A5 04
bne GameModeTitle ; CPU:$C09D PRG:009D D0 0F
lda #$DC ; CPU:$C09F PRG:009F A9 DC
sta $0135 ; CPU:$C0A1 PRG:00A1 8D 35 01
; -----------------------------------------------------------------------------
; Routine: SubCC0A4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC0A4:
lda $0135 ; CPU:$C0A4 PRG:00A4 AD 35 01
bne SubCC0A4 ; CPU:$C0A7 PRG:00A7 D0 FB
ldx ZpBE ; CPU:$C0A9 PRG:00A9 A6 BE
dec $0151,x ; CPU:$C0AB PRG:00AB DE 51 01
; -----------------------------------------------------------------------------
; Routine: GameModeTitle
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
GameModeTitle:
lda #$05 ; CPU:$C0AE PRG:00AE A9 05
sta Zp1E ; CPU:$C0B0 PRG:00B0 85 1E
lda #$50 ; CPU:$C0B2 PRG:00B2 A9 50
sta ZpB7 ; CPU:$C0B4 PRG:00B4 85 B7
lda #$80 ; CPU:$C0B6 PRG:00B6 A9 80
sta ZpB8 ; CPU:$C0B8 PRG:00B8 85 B8
bne UpdateFrameCounter ; CPU:$C0BA PRG:00BA D0 17
; -----------------------------------------------------------------------------
; Routine: GameModePlay
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
GameModePlay:
jsr UpdateSprites_C34B_1 ; CPU:$C0BC PRG:00BC 20 81 C1
; -----------------------------------------------------------------------------
; Routine: WaitVBlank_E023Frame
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in 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_E023Frame:
jsr WaitVBlank_E0232 ; CPU:$C0BF PRG:00BF 20 2C E0
jsr WaitFrame ; CPU:$C0C2 PRG:00C2 20 46 E0
and #$10 ; CPU:$C0C5 PRG:00C5 29 10
bne CheckController ; CPU:$C0C7 PRG:00C7 D0 03
jmp WaitVBlank_E023Frame ; CPU:$C0C9 PRG:00C9 4C BF C0
; -----------------------------------------------------------------------------
; Routine: CheckController
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckController:
lda #$04 ; CPU:$C0CC PRG:00CC A9 04
sta ZpFD ; CPU:$C0CE PRG:00CE 85 FD
jsr UpdateSprites_C34B_1 ; CPU:$C0D0 PRG:00D0 20 81 C1
; -----------------------------------------------------------------------------
; Routine: UpdateFrameCounter
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateFrameCounter:
inc Zp05 ; CPU:$C0D3 PRG:00D3 E6 05
lda #$00 ; CPU:$C0D5 PRG:00D5 A9 00
sta Zp02 ; CPU:$C0D7 PRG:00D7 85 02
jsr InitPPU ; CPU:$C0D9 PRG:00D9 20 49 E0
jsr SubCCBA7 ; CPU:$C0DC PRG:00DC 20 A7 CB
jsr UpdateDisplay ; CPU:$C0DF PRG:00DF 20 0E E4
lda Zp1D ; CPU:$C0E2 PRG:00E2 A5 1D
beq CheckHighScore ; CPU:$C0E4 PRG:00E4 F0 03
jmp UpdateSpritePositions ; CPU:$C0E6 PRG:00E6 4C 8F C1
; -----------------------------------------------------------------------------
; Routine: CheckHighScore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckHighScore:
jsr UpdateMusic2 ; CPU:$C0E9 PRG:00E9 20 80 EC
lda ZpBF ; CPU:$C0EC PRG:00EC A5 BF
cmp #$02 ; CPU:$C0EE PRG:00EE C9 02
beq ProcessController ; CPU:$C0F0 PRG:00F0 F0 1C
lda $014A ; CPU:$C0F2 PRG:00F2 AD 4A 01
beq SubCC10B ; CPU:$C0F5 PRG:00F5 F0 14
lda Zp04 ; CPU:$C0F7 PRG:00F7 A5 04
bne SubCC10B ; CPU:$C0F9 PRG:00F9 D0 10
ldx ZpBE ; CPU:$C0FB PRG:00FB A6 BE
lda $010C,x ; CPU:$C0FD PRG:00FD BD 0C 01
bne ProcessController ; CPU:$C100 PRG:0100 D0 0C
inc $010C,x ; CPU:$C102 PRG:0102 FE 0C 01
jsr InitGame ; CPU:$C105 PRG:0105 20 FD E0
jmp ProcessController ; CPU:$C108 PRG:0108 4C 0E C1
; -----------------------------------------------------------------------------
; Routine: SubCC10B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC10B:
jsr UpdateDisplay3 ; CPU:$C10B PRG:010B 20 97 E4
; -----------------------------------------------------------------------------
; Routine: ProcessController
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ProcessController:
lda ZpBF ; CPU:$C10E PRG:010E A5 BF
bne SubCC121 ; CPU:$C110 PRG:0110 D0 0F
jsr UpdateMusicChannel ; CPU:$C112 PRG:0112 20 8F E6
jsr UpdateMusicChannel10 ; CPU:$C115 PRG:0115 20 8D EC
jsr UpdateMusicChannel22 ; CPU:$C118 PRG:0118 20 6F F0
jsr UpdateMusicChannel24 ; CPU:$C11B PRG:011B 20 DF F0
jsr UpdateMusicChannel35 ; CPU:$C11E PRG:011E 20 4B F4
; -----------------------------------------------------------------------------
; Routine: SubCC121
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC121:
ldx ZpBF ; CPU:$C121 PRG:0121 A6 BF
dex ; CPU:$C123 PRG:0123 CA
bne SubCC12F ; CPU:$C124 PRG:0124 D0 09
jsr UpdateMusicChannel26 ; CPU:$C126 PRG:0126 20 38 F1
jsr UpdateMusicChannel33 ; CPU:$C129 PRG:0129 20 E8 F3
jsr UpdateMusicChannel34 ; CPU:$C12C PRG:012C 20 1E F4
; -----------------------------------------------------------------------------
; Routine: SubCC12F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC12F:
lda ZpBF ; CPU:$C12F PRG:012F A5 BF
cmp #$02 ; CPU:$C131 PRG:0131 C9 02
bne SubCC145 ; CPU:$C133 PRG:0133 D0 10
jsr UpdateMusicChannel2 ; CPU:$C135 PRG:0135 20 AC E7
lda $011E ; CPU:$C138 PRG:0138 AD 1E 01
bmi SubCC18C ; CPU:$C13B PRG:013B 30 4F
beq SubCC142 ; CPU:$C13D PRG:013D F0 03
jsr UpdateSoundChannels ; CPU:$C13F PRG:013F 20 2F EA
; -----------------------------------------------------------------------------
; Routine: SubCC142
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC142:
jsr UpdateMusicChannel29 ; CPU:$C142 PRG:0142 20 26 F2
; -----------------------------------------------------------------------------
; Routine: SubCC145
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC145:
lda Zp02 ; CPU:$C145 PRG:0145 A5 02
beq SubCC145 ; CPU:$C147 PRG:0147 F0 FC
jsr WaitFrame ; CPU:$C149 PRG:0149 20 46 E0
and #$30 ; CPU:$C14C PRG:014C 29 30
beq SubCC157 ; CPU:$C14E PRG:014E F0 07
lda Zp04 ; CPU:$C150 PRG:0150 A5 04
beq SubCC157 ; CPU:$C152 PRG:0152 F0 03
jmp MainGameLoop ; CPU:$C154 PRG:0154 4C 3B C0
; -----------------------------------------------------------------------------
; Routine: SubCC157
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC157:
lda ZpB6 ; CPU:$C157 PRG:0157 A5 B6
and #$10 ; CPU:$C159 PRG:0159 29 10
bne SubCC160 ; CPU:$C15B PRG:015B D0 03
jmp UpdateFrameCounter ; CPU:$C15D PRG:015D 4C D3 C0
; -----------------------------------------------------------------------------
; Routine: SubCC160
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC160:
lda #$04 ; CPU:$C160 PRG:0160 A9 04
sta ZpFD ; CPU:$C162 PRG:0162 85 FD
jsr UpdateSprites_C34B3 ; CPU:$C164 PRG:0164 20 8C E4
jmp GameModePlay ; CPU:$C167 PRG:0167 4C BC C0
; ---- data $C16A-$C180 (23 bytes) ----
.byte $42, $59, $20, $53, $2E, $4D, $41, $54, $53, $55, $4F, $4B, $41, $20, $26, $20 ; CPU:$C16A PRG:016A 42 59 20 53 2E 4D 41 54 53 55 4F 4B 41 20 26 20
.byte $53, $2E, $49, $57, $41, $54, $41 ; CPU:$C17A PRG:017A 53 2E 49 57 41 54 41
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_C34B_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSprites_C34B_1:
jsr WaitVBlank_E0232 ; CPU:$C181 PRG:0181 20 2C E0
jsr WaitFrame ; CPU:$C184 PRG:0184 20 46 E0
and #$10 ; CPU:$C187 PRG:0187 29 10
bne UpdateSprites_C34B_1 ; CPU:$C189 PRG:0189 D0 F6
rts ; CPU:$C18B PRG:018B 60
; -----------------------------------------------------------------------------
; Routine: SubCC18C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC18C:
jsr WaitVBlank_E023Loop ; CPU:$C18C PRG:018C 20 23 E0
; -----------------------------------------------------------------------------
; Routine: UpdateSpritePositions
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSpritePositions:
jsr UpdateSprites_C34B3 ; CPU:$C18F PRG:018F 20 8C E4
lda Zp04 ; CPU:$C192 PRG:0192 A5 04
bne SubCC1EA ; CPU:$C194 PRG:0194 D0 54
ldx ZpBE ; CPU:$C196 PRG:0196 A6 BE
lda $0151,x ; CPU:$C198 PRG:0198 BD 51 01
bne SubCC1C5 ; CPU:$C19B PRG:019B D0 28
jsr WaitVBlank_E023Loop ; CPU:$C19D PRG:019D 20 23 E0
jsr CheckGameState ; CPU:$C1A0 PRG:01A0 20 03 E4
lda #$8A ; CPU:$C1A3 PRG:01A3 A9 8A
sta PPUCTRL ; CPU:$C1A5 PRG:01A5 8D 00 20
inc $014C ; CPU:$C1A8 PRG:01A8 EE 4C 01
inc $014D ; CPU:$C1AB PRG:01AB EE 4D 01
lda #$30 ; CPU:$C1AE PRG:01AE A9 30
sta $0155 ; CPU:$C1B0 PRG:01B0 8D 55 01
jsr WaitVBlank_E023Loop ; CPU:$C1B3 PRG:01B3 20 23 E0
dec $014C ; CPU:$C1B6 PRG:01B6 CE 4C 01
lda ZpBD ; CPU:$C1B9 PRG:01B9 A5 BD
beq SubCC1EA ; CPU:$C1BB PRG:01BB F0 2D
lda $0151 ; CPU:$C1BD PRG:01BD AD 51 01
ora $0152 ; CPU:$C1C0 PRG:01C0 0D 52 01
beq SubCC1EA ; CPU:$C1C3 PRG:01C3 F0 25
; -----------------------------------------------------------------------------
; Routine: SubCC1C5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC1C5:
lda ZpBD ; CPU:$C1C5 PRG:01C5 A5 BD
beq SubCC1E7 ; CPU:$C1C7 PRG:01C7 F0 1E
lda ZpBE ; CPU:$C1C9 PRG:01C9 A5 BE
eor #$01 ; CPU:$C1CB PRG:01CB 49 01
tay ; CPU:$C1CD PRG:01CD A8
lda $0151,y ; CPU:$C1CE PRG:01CE B9 51 01
beq SubCC1E7 ; CPU:$C1D1 PRG:01D1 F0 14
lda $014D ; CPU:$C1D3 PRG:01D3 AD 4D 01
bne SubCC1DD ; CPU:$C1D6 PRG:01D6 D0 05
ldx #$3C ; CPU:$C1D8 PRG:01D8 A2 3C
jsr WaitVBlank_E023_3 ; CPU:$C1DA PRG:01DA 20 25 E0
; -----------------------------------------------------------------------------
; Routine: SubCC1DD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC1DD:
jsr UpdateBallPhysics ; CPU:$C1DD PRG:01DD 20 A6 E2
ldx #$1E ; CPU:$C1E0 PRG:01E0 A2 1E
jsr WaitVBlank_E023_3 ; CPU:$C1E2 PRG:01E2 20 25 E0
sty ZpBE ; CPU:$C1E5 PRG:01E5 84 BE
; -----------------------------------------------------------------------------
; Routine: SubCC1E7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC1E7:
jmp SubCC06C ; CPU:$C1E7 PRG:01E7 4C 6C C0
; -----------------------------------------------------------------------------
; Routine: SubCC1EA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC1EA:
jmp MainGameLoop ; CPU:$C1EA PRG:01EA 4C 3B C0
; -----------------------------------------------------------------------------
; 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:
pha ; CPU:$C1ED PRG:01ED 48
txa ; CPU:$C1EE PRG:01EE 8A
pha ; CPU:$C1EF PRG:01EF 48
tya ; CPU:$C1F0 PRG:01F0 98
pha ; CPU:$C1F1 PRG:01F1 48
lda #$00 ; CPU:$C1F2 PRG:01F2 A9 00
sta OAMADDR ; CPU:$C1F4 PRG:01F4 8D 03 20
lda #$02 ; CPU:$C1F7 PRG:01F7 A9 02
sta OAMDMA ; CPU:$C1F9 PRG:01F9 8D 14 40
lda $0153 ; CPU:$C1FC PRG:01FC AD 53 01
beq SubCC20B ; CPU:$C1FF PRG:01FF F0 0A
lda Zp01 ; CPU:$C201 PRG:0201 A5 01
sta PPUMASK ; CPU:$C203 PRG:0203 8D 01 20
lda #$00 ; CPU:$C206 PRG:0206 A9 00
sta $0153 ; CPU:$C208 PRG:0208 8D 53 01
; -----------------------------------------------------------------------------
; Routine: SubCC20B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC20B:
lda Zp03 ; CPU:$C20B PRG:020B A5 03
bne NmiFrameEnd ; CPU:$C20D PRG:020D D0 4B
lda ZpBF ; CPU:$C20F PRG:020F A5 BF
cmp #$02 ; CPU:$C211 PRG:0211 C9 02
beq SubCC231 ; CPU:$C213 PRG:0213 F0 1C
ldy $0155 ; CPU:$C215 PRG:0215 AC 55 01
beq SubCC231 ; CPU:$C218 PRG:0218 F0 17
ldx #$3F ; CPU:$C21A PRG:021A A2 3F
lda #$00 ; CPU:$C21C PRG:021C A9 00
jsr WritePPU ; CPU:$C21E PRG:021E 20 EF E0
ldx #$0F ; CPU:$C221 PRG:0221 A2 0F
; -----------------------------------------------------------------------------
; Routine: SubCC223
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC223:
lda $E3B2,x ; CPU:$C223 PRG:0223 BD B2 E3
cmp #$12 ; CPU:$C226 PRG:0226 C9 12
bne SubCC22B ; CPU:$C228 PRG:0228 D0 01
tya ; CPU:$C22A PRG:022A 98
; -----------------------------------------------------------------------------
; Routine: SubCC22B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC22B:
sta PPUDATA ; CPU:$C22B PRG:022B 8D 07 20
dex ; CPU:$C22E PRG:022E CA
bpl SubCC223 ; CPU:$C22F PRG:022F 10 F2
; -----------------------------------------------------------------------------
; Routine: SubCC231
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC231:
lda $014C ; CPU:$C231 PRG:0231 AD 4C 01
bne HandleBonus ; CPU:$C234 PRG:0234 D0 39
jsr UpdateMusicChannel13 ; CPU:$C236 PRG:0236 20 ED ED
jsr UpdateMusicChannel12 ; CPU:$C239 PRG:0239 20 B0 ED
jsr UpdateSoundChannel9 ; CPU:$C23C PRG:023C 20 F9 EB
jsr SubCE5B6 ; CPU:$C23F PRG:023F 20 B6 E5
jsr UpdateMusicChannel31 ; CPU:$C242 PRG:0242 20 21 F3
jsr UpdateMusicChannel19 ; CPU:$C245 PRG:0245 20 D3 EF
jsr UpdateSoundChannel8 ; CPU:$C248 PRG:0248 20 9D EB
jsr UpdateMusicChannel17 ; CPU:$C24B PRG:024B 20 28 EF
jsr UpdateMusicChannel32 ; CPU:$C24E PRG:024E 20 B9 F3
lda ZpBF ; CPU:$C251 PRG:0251 A5 BF
cmp #$02 ; CPU:$C253 PRG:0253 C9 02
bne NmiFrameEnd ; CPU:$C255 PRG:0255 D0 03
jsr UpdateMusicChannel30 ; CPU:$C257 PRG:0257 20 F0 F2
; -----------------------------------------------------------------------------
; Routine: NmiFrameEnd
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiFrameEnd:
lda #$00 ; CPU:$C25A PRG:025A A9 00
sta PPUSCROLL ; CPU:$C25C PRG:025C 8D 05 20
sta PPUSCROLL ; CPU:$C25F PRG:025F 8D 05 20
jsr ResetVector ; CPU:$C262 PRG:0262 20 F7 FF
lda #$01 ; CPU:$C265 PRG:0265 A9 01
sta Zp02 ; CPU:$C267 PRG:0267 85 02
pla ; CPU:$C269 PRG:0269 68
tay ; CPU:$C26A PRG:026A A8
pla ; CPU:$C26B PRG:026B 68
tax ; CPU:$C26C PRG:026C AA
pla ; CPU:$C26D PRG:026D 68
rti ; CPU:$C26E PRG:026E 40
; -----------------------------------------------------------------------------
; Routine: HandleBonus
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
HandleBonus:
clc ; CPU:$C26F PRG:026F 18
lda ZpBE ; CPU:$C270 PRG:0270 A5 BE
adc #$8B ; CPU:$C272 PRG:0272 69 8B
tay ; CPU:$C274 PRG:0274 A8
ldx #$29 ; CPU:$C275 PRG:0275 A2 29
lda #$93 ; CPU:$C277 PRG:0277 A9 93
jsr WritePPU2 ; CPU:$C279 PRG:0279 20 F6 E0
jmp NmiFrameEnd ; CPU:$C27C PRG:027C 4C 5A C2
; -----------------------------------------------------------------------------
; Routine: GameStateUpdate
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
GameStateUpdate:
inc Zp03 ; CPU:$C27F PRG:027F E6 03
jsr UpdateBallPhysics ; CPU:$C281 PRG:0281 20 A6 E2
lda #$00 ; CPU:$C284 PRG:0284 A9 00
sta ZpBE ; CPU:$C286 PRG:0286 85 BE
sta Zp04 ; CPU:$C288 PRG:0288 85 04
jsr WaitFrame ; CPU:$C28A PRG:028A 20 46 E0
and #$10 ; CPU:$C28D PRG:028D 29 10
beq InitBallLaunch ; CPU:$C28F PRG:028F F0 03
jmp UpdateBallTrajectory_E278_1 ; CPU:$C291 PRG:0291 4C B7 C3
; -----------------------------------------------------------------------------
; Routine: InitBallLaunch
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InitBallLaunch:
jsr CheckGameState ; CPU:$C294 PRG:0294 20 03 E4
lda #$08 ; CPU:$C297 PRG:0297 A9 08
sta PPUCTRL ; CPU:$C299 PRG:0299 8D 00 20
sta Zp00 ; CPU:$C29C PRG:029C 85 00
lda #$6B ; CPU:$C29E PRG:029E A9 6B
sta ZpE1 ; CPU:$C2A0 PRG:02A0 85 E1
lda #$C5 ; CPU:$C2A2 PRG:02A2 A9 C5
sta ZpE2 ; CPU:$C2A4 PRG:02A4 85 E2
ldy #$13 ; CPU:$C2A6 PRG:02A6 A0 13
jsr InitSprites2 ; CPU:$C2A8 PRG:02A8 20 93 E2
ldx #$20 ; CPU:$C2AB PRG:02AB A2 20
lda #$00 ; CPU:$C2AD PRG:02AD A9 00
jsr DrawGameOverScreen ; CPU:$C2AF PRG:02AF 20 E0 C3
ldx #$28 ; CPU:$C2B2 PRG:02B2 A2 28
lda #$00 ; CPU:$C2B4 PRG:02B4 A9 00
jsr DrawGameOverScreen ; CPU:$C2B6 PRG:02B6 20 E0 C3
ldx #$00 ; CPU:$C2B9 PRG:02B9 A2 00
ldy #$00 ; CPU:$C2BB PRG:02BB A0 00
; -----------------------------------------------------------------------------
; Routine: SubCC2BD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC2BD:
lda $C50B,x ; CPU:$C2BD PRG:02BD BD 0B C5
sta PPUADDR ; CPU:$C2C0 PRG:02C0 8D 06 20
inx ; CPU:$C2C3 PRG:02C3 E8
lda $C50B,x ; CPU:$C2C4 PRG:02C4 BD 0B C5
sta PPUADDR ; CPU:$C2C7 PRG:02C7 8D 06 20
inx ; CPU:$C2CA PRG:02CA E8
lda #$0E ; CPU:$C2CB PRG:02CB A9 0E
sta ZpE6 ; CPU:$C2CD PRG:02CD 85 E6
; -----------------------------------------------------------------------------
; Routine: SubCC2CF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC2CF:
lda $C400,y ; CPU:$C2CF PRG:02CF B9 00 C4
sta PPUDATA ; CPU:$C2D2 PRG:02D2 8D 07 20
iny ; CPU:$C2D5 PRG:02D5 C8
dec ZpE6 ; CPU:$C2D6 PRG:02D6 C6 E6
bne SubCC2CF ; CPU:$C2D8 PRG:02D8 D0 F5
cpx #$0C ; CPU:$C2DA PRG:02DA E0 0C
bne SubCC2BD ; CPU:$C2DC PRG:02DC D0 DF
; -----------------------------------------------------------------------------
; Routine: DrawPlayfield
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DrawPlayfield:
lda $C50B,x ; CPU:$C2DE PRG:02DE BD 0B C5
sta PPUADDR ; CPU:$C2E1 PRG:02E1 8D 06 20
inx ; CPU:$C2E4 PRG:02E4 E8
lda $C50B,x ; CPU:$C2E5 PRG:02E5 BD 0B C5
sta PPUADDR ; CPU:$C2E8 PRG:02E8 8D 06 20
inx ; CPU:$C2EB PRG:02EB E8
lda #$13 ; CPU:$C2EC PRG:02EC A9 13
sta ZpE6 ; CPU:$C2EE PRG:02EE 85 E6
; -----------------------------------------------------------------------------
; Routine: SubCC2F0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC2F0:
lda $C400,y ; CPU:$C2F0 PRG:02F0 B9 00 C4
sta PPUDATA ; CPU:$C2F3 PRG:02F3 8D 07 20
iny ; CPU:$C2F6 PRG:02F6 C8
dec ZpE6 ; CPU:$C2F7 PRG:02F7 C6 E6
bne SubCC2F0 ; CPU:$C2F9 PRG:02F9 D0 F5
cpx #$18 ; CPU:$C2FB PRG:02FB E0 18
bne DrawPlayfield ; CPU:$C2FD PRG:02FD D0 DF
ldx #$00 ; CPU:$C2FF PRG:02FF A2 00
; -----------------------------------------------------------------------------
; Routine: DrawStatusBar
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DrawStatusBar:
lda $C523,x ; CPU:$C301 PRG:0301 BD 23 C5
sta PPUADDR ; CPU:$C304 PRG:0304 8D 06 20
lda $C524,x ; CPU:$C307 PRG:0307 BD 24 C5
sta PPUADDR ; CPU:$C30A PRG:030A 8D 06 20
lda $C503,x ; CPU:$C30D PRG:030D BD 03 C5
sta PPUDATA ; CPU:$C310 PRG:0310 8D 07 20
ldy #$00 ; CPU:$C313 PRG:0313 A0 00
; -----------------------------------------------------------------------------
; Routine: SubCC315
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC315:
lda $C4F6,y ; CPU:$C315 PRG:0315 B9 F6 C4
sta PPUDATA ; CPU:$C318 PRG:0318 8D 07 20
iny ; CPU:$C31B PRG:031B C8
cpy #$0D ; CPU:$C31C PRG:031C C0 0D
bne SubCC315 ; CPU:$C31E PRG:031E D0 F5
lda $C504,x ; CPU:$C320 PRG:0320 BD 04 C5
sta PPUDATA ; CPU:$C323 PRG:0323 8D 07 20
inx ; CPU:$C326 PRG:0326 E8
inx ; CPU:$C327 PRG:0327 E8
cpx #$08 ; CPU:$C328 PRG:0328 E0 08
bne DrawStatusBar ; CPU:$C32A PRG:032A D0 D5
ldy #$00 ; CPU:$C32C PRG:032C A0 00
; -----------------------------------------------------------------------------
; Routine: DrawDigits
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DrawDigits:
ldx $C4C6,y ; CPU:$C32E PRG:032E BE C6 C4
beq UpdateSprites_C34B_3 ; CPU:$C331 PRG:0331 F0 18
iny ; CPU:$C333 PRG:0333 C8
lda $C4C6,y ; CPU:$C334 PRG:0334 B9 C6 C4
jsr WritePPU ; CPU:$C337 PRG:0337 20 EF E0
iny ; CPU:$C33A PRG:033A C8
ldx $C4C6,y ; CPU:$C33B PRG:033B BE C6 C4
iny ; CPU:$C33E PRG:033E C8
; -----------------------------------------------------------------------------
; Routine: SubCC33F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC33F:
lda $C4C6,y ; CPU:$C33F PRG:033F B9 C6 C4
iny ; CPU:$C342 PRG:0342 C8
sta PPUDATA ; CPU:$C343 PRG:0343 8D 07 20
dex ; CPU:$C346 PRG:0346 CA
bne SubCC33F ; CPU:$C347 PRG:0347 D0 F6
beq DrawDigits ; CPU:$C349 PRG:0349 F0 E3
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_C34B_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSprites_C34B_3:
ldx #$02 ; CPU:$C34B PRG:034B A2 02
; -----------------------------------------------------------------------------
; Routine: SubCC34D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC34D:
lda $C57F,x ; CPU:$C34D PRG:034D BD 7F C5
sta $0201,x ; CPU:$C350 PRG:0350 9D 01 02
dex ; CPU:$C353 PRG:0353 CA
bpl SubCC34D ; CPU:$C354 PRG:0354 10 F7
ldx $014F ; CPU:$C356 PRG:0356 AE 4F 01
lda $C582,x ; CPU:$C359 PRG:0359 BD 82 C5
sta $0200 ; CPU:$C35C PRG:035C 8D 00 02
jsr UpdateBallTrajectory_E278_3 ; CPU:$C35F PRG:035F 20 78 E2
inc ZpB9 ; CPU:$C362 PRG:0362 E6 B9
lda #$78 ; CPU:$C364 PRG:0364 A9 78
sta $014E ; CPU:$C366 PRG:0366 8D 4E 01
lda $0150 ; CPU:$C369 PRG:0369 AD 50 01
inc $0150 ; CPU:$C36C PRG:036C EE 50 01
and #$03 ; CPU:$C36F PRG:036F 29 03
bne BallPhysicsMain ; CPU:$C371 PRG:0371 D0 09
lda #$0F ; CPU:$C373 PRG:0373 A9 0F
sta APUSTATUS ; CPU:$C375 PRG:0375 8D 15 40
lda #$02 ; CPU:$C378 PRG:0378 A9 02
sta ZpFD ; CPU:$C37A PRG:037A 85 FD
; -----------------------------------------------------------------------------
; Routine: BallPhysicsMain
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
BallPhysicsMain:
jsr WaitVBlank_E0232 ; CPU:$C37C PRG:037C 20 2C E0
inc Zp05 ; CPU:$C37F PRG:037F E6 05
lda Zp05 ; CPU:$C381 PRG:0381 A5 05
and #$03 ; CPU:$C383 PRG:0383 29 03
bne CheckTilt ; CPU:$C385 PRG:0385 D0 05
dec $014E ; CPU:$C387 PRG:0387 CE 4E 01
beq BallLostHandler ; CPU:$C38A PRG:038A F0 47
; -----------------------------------------------------------------------------
; Routine: CheckTilt
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckTilt:
jsr WaitFrame ; CPU:$C38C PRG:038C 20 46 E0
and #$20 ; CPU:$C38F PRG:038F 29 20
cmp ZpB9 ; CPU:$C391 PRG:0391 C5 B9
beq UpdateFlipper ; CPU:$C393 PRG:0393 F0 1C
ldy ZpB9 ; CPU:$C395 PRG:0395 A4 B9
sta ZpB9 ; CPU:$C397 PRG:0397 85 B9
bne UpdateFlipper ; CPU:$C399 PRG:0399 D0 16
ldx $014F ; CPU:$C39B PRG:039B AE 4F 01
inx ; CPU:$C39E PRG:039E E8
txa ; CPU:$C39F PRG:039F 8A
and #$03 ; CPU:$C3A0 PRG:03A0 29 03
sta $014F ; CPU:$C3A2 PRG:03A2 8D 4F 01
tax ; CPU:$C3A5 PRG:03A5 AA
lda $C582,x ; CPU:$C3A6 PRG:03A6 BD 82 C5
sta $0200 ; CPU:$C3A9 PRG:03A9 8D 00 02
lda #$3C ; CPU:$C3AC PRG:03AC A9 3C
sta $014E ; CPU:$C3AE PRG:03AE 8D 4E 01
; -----------------------------------------------------------------------------
; Routine: UpdateFlipper
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateFlipper:
lda ZpB6 ; CPU:$C3B1 PRG:03B1 A5 B6
and #$10 ; CPU:$C3B3 PRG:03B3 29 10
beq BallPhysicsMain ; CPU:$C3B5 PRG:03B5 F0 C5
; -----------------------------------------------------------------------------
; Routine: UpdateBallTrajectory_E278_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallTrajectory_E278_1:
lda $014F ; CPU:$C3B7 PRG:03B7 AD 4F 01
lsr a ; CPU:$C3BA PRG:03BA 4A
sta ZpBD ; CPU:$C3BB PRG:03BB 85 BD
lda #$00 ; CPU:$C3BD PRG:03BD A9 00
rol a ; CPU:$C3BF PRG:03BF 2A
sta ZpBC ; CPU:$C3C0 PRG:03C0 85 BC
lda #$0F ; CPU:$C3C2 PRG:03C2 A9 0F
sta APUSTATUS ; CPU:$C3C4 PRG:03C4 8D 15 40
; -----------------------------------------------------------------------------
; Routine: BallLost
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
BallLost:
lda #$00 ; CPU:$C3C7 PRG:03C7 A9 00
sta Zp03 ; CPU:$C3C9 PRG:03C9 85 03
jmp UpdateBallPhysics ; CPU:$C3CB PRG:03CB 4C A6 E2
; -----------------------------------------------------------------------------
; Routine: UpdateBonusTimer
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBonusTimer:
inc $014E ; CPU:$C3CE PRG:03CE EE 4E 01
bne BallPhysicsMain ; CPU:$C3D1 PRG:03D1 D0 A9
; -----------------------------------------------------------------------------
; Routine: BallLostHandler
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
BallLostHandler:
lda ZpF6 ; CPU:$C3D3 PRG:03D3 A5 F6
bne UpdateBonusTimer ; CPU:$C3D5 PRG:03D5 D0 F7
inc Zp04 ; CPU:$C3D7 PRG:03D7 E6 04
ldx #$00 ; CPU:$C3D9 PRG:03D9 A2 00
stx APUSTATUS ; CPU:$C3DB PRG:03DB 8E 15 40
beq BallLost ; CPU:$C3DE PRG:03DE F0 E7
; -----------------------------------------------------------------------------
; Routine: DrawGameOverScreen
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DrawGameOverScreen:
jsr WritePPU ; CPU:$C3E0 PRG:03E0 20 EF E0
lda #$B9 ; CPU:$C3E3 PRG:03E3 A9 B9
ldy #$03 ; CPU:$C3E5 PRG:03E5 A0 03
ldx #$C0 ; CPU:$C3E7 PRG:03E7 A2 C0
; -----------------------------------------------------------------------------
; Routine: SubCC3E9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCC3E9:
sta PPUDATA ; CPU:$C3E9 PRG:03E9 8D 07 20
dex ; CPU:$C3EC PRG:03EC CA
bne SubCC3E9 ; CPU:$C3ED PRG:03ED D0 FA
dey ; CPU:$C3EF PRG:03EF 88
bpl SubCC3E9 ; CPU:$C3F0 PRG:03F0 10 F7
ldx #$00 ; CPU:$C3F2 PRG:03F2 A2 00
; -----------------------------------------------------------------------------
; Routine: ClearPlayfieldRTS
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ClearPlayfieldRTS:
lda $C52B,x ; CPU:$C3F4 PRG:03F4 BD 2B C5
sta PPUDATA ; CPU:$C3F7 PRG:03F7 8D 07 20
inx ; CPU:$C3FA PRG:03FA E8
cpx #$40 ; CPU:$C3FB PRG:03FB E0 40
bne ClearPlayfieldRTS ; CPU:$C3FD PRG:03FD D0 F5
rts ; CPU:$C3FF PRG:03FF 60
; ---- data $C400-$CBA6 (1959 bytes) ----
; referenced by `lda $C50B,x` at $C2BD (operand $C50B falls inside this region)
; referenced by `lda $C50B,x` at $C2C4 (operand $C50B falls inside this region)
; referenced by `lda $C400,y` at $C2CF (operand $C400 falls inside this region)
; referenced by `lda $C50B,x` at $C2DE (operand $C50B falls inside this region)
; referenced by `lda $C50B,x` at $C2E5 (operand $C50B falls inside this region)
; referenced by `lda $C400,y` at $C2F0 (operand $C400 falls inside this region)
; ... and 17 further references from decoded code
.byte $3A, $3C, $3C, $3C, $3B, $B9, $3A, $3B, $B9, $3A, $3B, $B9, $3A, $3B, $3C, $3C ; CPU:$C400 PRG:0400 3A 3C 3C 3C 3B B9 3A 3B B9 3A 3B B9 3A 3B 3C 3C
.byte $3D, $3C, $3C, $B9, $3C, $3C, $B9, $3C, $3C, $B9, $3C, $3C, $3C, $3C, $3E, $3C ; CPU:$C410 PRG:0410 3D 3C 3C B9 3C 3C B9 3C 3C B9 3C 3C 3C 3C 3E 3C
.byte $3C, $B9, $3C, $3C, $B9, $3C, $3C, $56, $3C, $3C, $3C, $3C, $3C, $3C, $4F, $B9 ; CPU:$C420 PRG:0420 3C B9 3C 3C B9 3C 3C 56 3C 3C 3C 3C 3C 3C 4F B9
.byte $3C, $3C, $B9, $3C, $3C, $57, $3C, $3C, $3C, $3C, $B9, $B9, $B9, $B9, $3C, $3C ; CPU:$C430 PRG:0430 3C 3C B9 3C 3C 57 3C 3C 3C 3C B9 B9 B9 B9 3C 3C
.byte $B9, $3C, $3C, $B9, $3C, $3C, $3F, $4F, $B9, $B9, $B9, $B9, $3F, $4F, $B9, $3F ; CPU:$C440 PRG:0440 B9 3C 3C B9 3C 3C 3F 4F B9 B9 B9 B9 3F 4F B9 3F
.byte $4F, $B9, $3F, $4F, $3A, $3C, $3C, $3C, $3B, $B9, $3A, $3C, $3C, $3C, $3B, $B9 ; CPU:$C450 PRG:0450 4F B9 3F 4F 3A 3C 3C 3C 3B B9 3A 3C 3C 3C 3B B9
.byte $3A, $3B, $B9, $B9, $3A, $3B, $B9, $3C, $3C, $AE, $3C, $3C, $B9, $3C, $3C, $3D ; CPU:$C460 PRG:0460 3A 3B B9 B9 3A 3B B9 3C 3C AE 3C 3C B9 3C 3C 3D
.byte $3C, $3C, $B9, $3C, $3C, $B9, $B9, $3C, $3C, $B9, $3C, $3C, $3C, $3C, $4F, $B9 ; CPU:$C470 PRG:0470 3C 3C B9 3C 3C B9 B9 3C 3C B9 3C 3C 3C 3C 4F B9
.byte $3C, $3C, $B9, $3C, $3C, $B9, $3C, $3C, $B9, $B9, $3C, $3C, $B9, $3C, $3C, $3D ; CPU:$C480 PRG:0480 3C 3C B9 3C 3C B9 3C 3C B9 B9 3C 3C B9 3C 3C 3D
.byte $3C, $3B, $B9, $3C, $3C, $3C, $3C, $3C, $B9, $3C, $3C, $B9, $B9, $3C, $3C, $B9 ; CPU:$C490 PRG:0490 3C 3B B9 3C 3C 3C 3C 3C B9 3C 3C B9 B9 3C 3C B9
.byte $3C, $3C, $3E, $3C, $3C, $B9, $3C, $3C, $B9, $3C, $3C, $B9, $3C, $3C, $B9, $B9 ; CPU:$C4A0 PRG:04A0 3C 3C 3E 3C 3C B9 3C 3C B9 3C 3C B9 3C 3C B9 B9
.byte $3C, $3C, $B9, $3F, $3C, $3C, $3C, $4F, $B9, $3F, $4F, $B9, $3F, $4F, $B9, $3F ; CPU:$C4B0 PRG:04B0 3C 3C B9 3F 3C 3C 3C 4F B9 3F 4F B9 3F 4F B9 3F
.byte $3C, $AD, $B9, $3F, $3C, $AD, $23, $65, $16, $6F, $8B, $8F, $8E, $8D, $B9, $69 ; CPU:$C4C0 PRG:04C0 3C AD B9 3F 3C AD 23 65 16 6F 8B 8F 8E 8D B9 69
.byte $66, $69, $6D, $64, $69, $63, $6A, $B9, $62, $6A, $EE, $67, $6D, $63, $EF, $29 ; CPU:$C4D0 PRG:04D0 66 69 6D 64 69 63 6A B9 62 6A EE 67 6D 63 EF 29
.byte $CB, $0A, $65, $60, $68, $64, $B9, $B9, $6A, $7A, $64, $6C, $29, $8C, $06, $6B ; CPU:$C4E0 PRG:04E0 CB 0A 65 60 68 64 B9 B9 6A 7A 64 6C 29 8C 06 6B
.byte $67, $60, $6E, $64, $6C, $00, $B9, $6B, $67, $60, $6E, $64, $6C, $B9, $65, $60 ; CPU:$C4F0 PRG:04F0 67 60 6E 64 6C 00 B9 6B 67 60 6E 64 6C B9 65 60
.byte $68, $64, $B9, $8B, $60, $8B, $61, $8C, $60, $8C, $61, $20, $64, $20, $84, $20 ; CPU:$C500 PRG:0500 68 64 B9 8B 60 8B 61 8C 60 8C 61 20 64 20 84 20
.byte $A4, $20, $C4, $20, $E4, $21, $04, $21, $49, $21, $69, $21, $89, $21, $A9, $21 ; CPU:$C510 PRG:0510 A4 20 C4 20 E4 21 04 21 49 21 69 21 89 21 A9 21
.byte $C9, $21, $E9, $22, $49, $22, $89, $22, $C9, $23, $09, $00, $00, $00, $00, $00 ; CPU:$C520 PRG:0520 C9 21 E9 22 49 22 89 22 C9 23 09 00 00 00 00 00
.byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$C530 PRG:0530 00 00 00 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, $50, $50, $50 ; CPU:$C540 PRG:0540 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 50
.byte $50, $00, $00, $00, $00, $A5, $A5, $A5, $A5, $00, $00, $00, $00, $0A, $0A, $0A ; CPU:$C550 PRG:0550 50 00 00 00 00 A5 A5 A5 A5 00 00 00 00 0A 0A 0A
.byte $0A, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $0F, $0F, $27, $0F, $0F ; CPU:$C560 PRG:0560 0A 00 00 00 00 00 00 00 00 00 00 0F 0F 27 0F 0F
.byte $0F, $0F, $0F, $0F, $0F, $12, $0F, $0F, $0F, $22, $0F, $0F, $25, $30, $0F, $F5 ; CPU:$C570 PRG:0570 0F 0F 0F 0F 0F 12 0F 0F 0F 22 0F 0F 25 30 0F F5
.byte $00, $38, $8F, $9F, $AF, $BF, $14, $31, $14, $31, $14, $31, $31, $31, $32, $33 ; CPU:$C580 PRG:0580 00 38 8F 9F AF BF 14 31 14 31 14 31 31 31 32 33
.byte $34, $0A, $35, $36, $37, $38, $31, $31, $31, $39, $3A, $05, $24, $73, $68, $07 ; CPU:$C590 PRG:0590 34 0A 35 36 37 38 31 31 31 39 3A 05 24 73 68 07
.byte $24, $3B, $3C, $31, $3D, $3E, $24, $3F, $40, $24, $72, $68, $41, $42, $72, $68 ; CPU:$C5A0 PRG:05A0 24 3B 3C 31 3D 3E 24 3F 40 24 72 68 41 42 72 68
.byte $24, $43, $44, $45, $46, $24, $47, $48, $4A, $24, $4B, $4C, $4D, $4E, $41, $42 ; CPU:$C5B0 PRG:05B0 24 43 44 45 46 24 47 48 4A 24 4B 4C 4D 4E 41 42
.byte $24, $24, $41, $42, $43, $4C, $31, $31, $4D, $50, $24, $51, $52, $24, $53, $31 ; CPU:$C5C0 PRG:05C0 24 24 41 42 43 4C 31 31 4D 50 24 51 52 24 53 31
.byte $31, $4D, $54, $28, $29, $28, $29, $58, $4C, $04, $31, $59, $24, $5A, $54, $24 ; CPU:$C5D0 PRG:05D0 31 4D 54 28 29 28 29 58 4C 04 31 59 24 5A 54 24
.byte $5B, $24, $68, $55, $54, $9E, $9F, $9E, $9F, $58, $60, $61, $34, $36, $64, $65 ; CPU:$C5E0 PRG:05E0 5B 24 68 55 54 9E 9F 9E 9F 58 60 61 34 36 64 65
.byte $66, $67, $54, $24, $5B, $31, $55, $69, $08, $24, $72, $68, $24, $6C, $6D, $24 ; CPU:$C5F0 PRG:05F0 66 67 54 24 5B 31 55 69 08 24 72 68 24 6C 6D 24
.byte $6E, $24, $6F, $55, $69, $09, $24, $3F, $46, $24, $74, $75, $24, $76, $24, $77 ; CPU:$C600 PRG:0600 6E 24 6F 55 69 09 24 3F 46 24 74 75 24 76 24 77
.byte $78, $03, $24, $7F, $80, $81, $82, $03, $24, $79, $78, $24, $7B, $75, $24, $7C ; CPU:$C610 PRG:0610 78 03 24 7F 80 81 82 03 24 79 78 24 7B 75 24 7C
.byte $24, $7D, $7E, $03, $24, $83, $84, $85, $86, $03, $24, $58, $78, $24, $7B, $75 ; CPU:$C620 PRG:0620 24 7D 7E 03 24 83 84 85 86 03 24 58 78 24 7B 75
.byte $24, $4D, $6E, $05, $24, $87, $88, $89, $8A, $03, $24, $58, $78, $24, $7B, $75 ; CPU:$C630 PRG:0630 24 4D 6E 05 24 87 88 89 8A 03 24 58 78 24 7B 75
.byte $24, $31, $76, $0C, $24, $58, $78, $24, $7B, $75, $24, $31, $7C, $0C, $24, $67 ; CPU:$C640 PRG:0640 24 31 76 0C 24 58 78 24 7B 75 24 31 7C 0C 24 67
.byte $7E, $24, $7B, $75, $24, $31, $78, $8B, $0E, $24, $8C, $75, $24, $31, $78, $8B ; CPU:$C650 PRG:0650 7E 24 7B 75 24 31 78 8B 0E 24 8C 75 24 31 78 8B
.byte $0D, $24, $8D, $8E, $75, $24, $31, $78, $8B, $0D, $24, $8F, $31, $75, $24, $31 ; CPU:$C660 PRG:0660 0D 24 8D 8E 75 24 31 78 8B 0D 24 8F 31 75 24 31
.byte $78, $8B, $0D, $24, $5B, $31, $75, $24, $55, $69, $0E, $24, $79, $91, $75, $24 ; CPU:$C670 PRG:0670 78 8B 0D 24 5B 31 75 24 55 69 0E 24 79 91 75 24
.byte $69, $24, $0F, $24, $92, $75, $24, $24, $24, $4F, $03, $24, $93, $94, $95, $96 ; CPU:$C680 PRG:0680 69 24 0F 24 92 75 24 24 24 4F 03 24 93 94 95 96
.byte $97, $98, $03, $24, $4F, $24, $99, $75, $24, $24, $9A, $9B, $4E, $0A, $24, $43 ; CPU:$C690 PRG:0690 97 98 03 24 4F 24 99 75 24 24 9A 9B 4E 0A 24 43
.byte $9B, $9C, $9D, $75, $24, $24, $7B, $31, $78, $0A, $24, $5B, $03, $31, $75, $24 ; CPU:$C6A0 PRG:06A0 9B 9C 9D 75 24 24 7B 31 78 0A 24 5B 03 31 75 24
.byte $24, $7B, $55, $69, $0A, $24, $79, $91, $31, $31, $75, $24, $24, $7B, $78, $0C ; CPU:$C6B0 PRG:06B0 24 7B 55 69 0A 24 79 91 31 31 75 24 24 7B 78 0C
.byte $24, $5B, $31, $31, $75, $24, $24, $7B, $78, $0C, $24, $5B, $31, $31, $75, $24 ; CPU:$C6C0 PRG:06C0 24 5B 31 31 75 24 24 7B 78 0C 24 5B 31 31 75 24
.byte $24, $7B, $78, $0C, $24, $5B, $31, $31, $75, $24, $24, $7B, $78, $0C, $24, $5B ; CPU:$C6D0 PRG:06D0 24 7B 78 0C 24 5B 31 31 75 24 24 7B 78 0C 24 5B
.byte $31, $31, $75, $24, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$C6E0 PRG:06E0 31 31 75 24 00 00 00 00 00 00 00 00 00 00 00 00
.byte $00, $00, $00, $00, $00, $00, $00, $00, $F0, $C0, $30, $00, $00, $00, $00, $00 ; CPU:$C6F0 PRG:06F0 00 00 00 00 00 00 00 00 F0 C0 30 00 00 00 00 00
.byte $FF, $00, $33, $00, $00, $00, $88, $00, $00, $00, $00, $00, $00, $00, $00, $88 ; CPU:$C700 PRG:0700 FF 00 33 00 00 00 88 00 00 00 00 00 00 00 00 88
.byte $AA, $AA, $00, $00, $00, $00, $00, $00, $F0, $00, $00, $00, $00, $00, $00, $00 ; CPU:$C710 PRG:0710 AA AA 00 00 00 00 00 00 F0 00 00 00 00 00 00 00
.byte $00, $00, $00, $00, $28, $58, $01, $57, $2F, $58, $01, $52, $37, $58, $01, $4E ; CPU:$C720 PRG:0720 00 00 00 00 28 58 01 57 2F 58 01 52 37 58 01 4E
.byte $40, $58, $01, $4C, $49, $58, $01, $4C, $52, $58, $01, $4D, $5A, $58, $01, $50 ; CPU:$C730 PRG:0730 40 58 01 4C 49 58 01 4C 52 58 01 4D 5A 58 01 50
.byte $62, $58, $01, $53, $8F, $80, $00, $78, $8F, $80, $40, $80, $97, $59, $00, $78 ; CPU:$C740 PRG:0740 62 58 01 53 8F 80 00 78 8F 80 40 80 97 59 00 78
.byte $97, $59, $40, $80, $8F, $81, $00, $88, $8F, $82, $00, $90, $97, $84, $00, $88 ; CPU:$C750 PRG:0750 97 59 40 80 8F 81 00 88 8F 82 00 90 97 84 00 88
.byte $97, $83, $00, $90, $8F, $82, $40, $98, $8F, $81, $40, $A0, $97, $84, $00, $98 ; CPU:$C760 PRG:0760 97 83 00 90 8F 82 40 98 8F 81 40 A0 97 84 00 98
.byte $97, $83, $00, $A0, $AB, $54, $02, $C8, $AB, $54, $42, $D0, $B3, $55, $02, $C8 ; CPU:$C770 PRG:0770 97 83 00 A0 AB 54 02 C8 AB 54 42 D0 B3 55 02 C8
.byte $B3, $55, $42, $D0, $3F, $F1, $03, $60, $F0, $F0, $02, $68, $65, $B9, $41, $74 ; CPU:$C780 PRG:0780 B3 55 42 D0 3F F1 03 60 F0 F0 02 68 65 B9 41 74
.byte $6F, $7D, $40, $74, $77, $7E, $40, $78, $77, $7F, $40, $70, $65, $B9, $01, $A4 ; CPU:$C790 PRG:0790 6F 7D 40 74 77 7E 40 78 77 7F 40 70 65 B9 01 A4
.byte $6F, $7D, $00, $A4, $77, $7E, $00, $A0, $77, $7F, $00, $A8, $F0, $59, $02, $AC ; CPU:$C7A0 PRG:07A0 6F 7D 00 A4 77 7E 00 A0 77 7F 00 A8 F0 59 02 AC
.byte $5F, $FF, $00, $CA, $89, $39, $01, $88, $89, $39, $41, $90, $4E, $CE, $02, $6D ; CPU:$C7B0 PRG:07B0 5F FF 00 CA 89 39 01 88 89 39 41 90 4E CE 02 6D
.byte $18, $B0, $00, $60, $18, $B1, $00, $68, $20, $B2, $00, $5F, $20, $B3, $00, $67 ; CPU:$C7C0 PRG:07C0 18 B0 00 60 18 B1 00 68 20 B2 00 5F 20 B3 00 67
.byte $18, $B6, $00, $C0, $20, $B7, $00, $C0, $F0, $B8, $00, $B8, $F0, $B8, $80, $B8 ; CPU:$C7D0 PRG:07D0 18 B6 00 C0 20 B7 00 C0 F0 B8 00 B8 F0 B8 80 B8
.byte $7E, $BA, $00, $C1, $7E, $BB, $00, $C9, $86, $BC, $00, $C9, $24, $A0, $78, $0C ; CPU:$C7E0 PRG:07E0 7E BA 00 C1 7E BB 00 C9 86 BC 00 C9 24 A0 78 0C
.byte $24, $5B, $31, $31, $6D, $24, $24, $A0, $78, $0C, $24, $6C, $31, $31, $6D, $24 ; CPU:$C7F0 PRG:07F0 24 5B 31 31 6D 24 24 A0 78 0C 24 6C 31 31 6D 24
.byte $24, $7D, $7E, $0C, $24, $A4, $60, $A5, $6D, $24, $6E, $03, $24, $2A, $2B, $2A ; CPU:$C800 PRG:0800 24 7D 7E 0C 24 A4 60 A5 6D 24 6E 03 24 2A 2B 2A
.byte $2B, $2A, $2B, $2A, $2B, $2A, $2B, $03, $24, $AE, $6D, $24, $76, $03, $24, $2C ; CPU:$C810 PRG:0810 2B 2A 2B 2A 2B 2A 2B 03 24 AE 6D 24 76 03 24 2C
.byte $2D, $2C, $2D, $2C, $2D, $2C, $2D, $2C, $2D, $03, $24, $AF, $6D, $24, $7C, $03 ; CPU:$C820 PRG:0820 2D 2C 2D 2C 2D 2C 2D 2C 2D 03 24 AF 6D 24 7C 03
.byte $24, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $03, $24, $B6, $6D, $24 ; CPU:$C830 PRG:0830 24 2E 2F 2E 2F 2E 2F 2E 2F 2E 2F 03 24 B6 6D 24
.byte $78, $24, $24, $28, $29, $28, $29, $28, $29, $28, $29, $28, $29, $28, $29, $24 ; CPU:$C840 PRG:0840 78 24 24 28 29 28 29 28 29 28 29 28 29 28 29 24
.byte $24, $5B, $6D, $24, $78, $24, $24, $9E, $9F, $9E, $9F, $9E, $9F, $9E, $9F, $9E ; CPU:$C850 PRG:0850 24 5B 6D 24 78 24 24 9E 9F 9E 9F 9E 9F 9E 9F 9E
.byte $9F, $9E, $9F, $05, $24, $78, $13, $24, $78, $03, $24, $7F, $80, $81, $82, $24 ; CPU:$C860 PRG:0860 9F 9E 9F 05 24 78 13 24 78 03 24 7F 80 81 82 24
.byte $24, $7F, $80, $81, $82, $06, $24, $78, $03, $24, $83, $84, $85, $86, $24, $24 ; CPU:$C870 PRG:0870 24 7F 80 81 82 06 24 78 03 24 83 84 85 86 24 24
.byte $83, $84, $85, $86, $03, $24, $5B, $6D, $24, $78, $03, $24, $87, $88, $89, $8A ; CPU:$C880 PRG:0880 83 84 85 86 03 24 5B 6D 24 78 03 24 87 88 89 8A
.byte $24, $24, $87, $88, $89, $8A, $03, $24, $5B, $6D, $24, $78, $10, $24, $5B, $6D ; CPU:$C890 PRG:0890 24 24 87 88 89 8A 03 24 5B 6D 24 78 10 24 5B 6D
.byte $24, $78, $06, $24, $7F, $80, $81, $82, $06, $24, $5B, $6D, $24, $4D, $4E, $05 ; CPU:$C8A0 PRG:08A0 24 78 06 24 7F 80 81 82 06 24 5B 6D 24 4D 4E 05
.byte $24, $83, $84, $85, $86, $05, $24, $43, $4C, $6D, $24, $55, $69, $05, $24, $87 ; CPU:$C8B0 PRG:08B0 24 83 84 85 86 05 24 43 4C 6D 24 55 69 05 24 87
.byte $88, $89, $8A, $05, $24, $79, $91, $6D, $24, $69, $10, $24, $79, $6D, $24, $54 ; CPU:$C8C0 PRG:08C0 88 89 8A 05 24 79 91 6D 24 69 10 24 79 6D 24 54
.byte $10, $24, $58, $6D, $24, $54, $BA, $24, $BB, $BE, $08, $24, $BC, $C1, $24, $BD ; CPU:$C8D0 PRG:08D0 10 24 58 6D 24 54 BA 24 BB BE 08 24 BC C1 24 BD
.byte $58, $6D, $24, $54, $BA, $24, $BF, $C2, $08, $24, $C0, $C4, $24, $BD, $58, $6D ; CPU:$C8E0 PRG:08E0 58 6D 24 54 BA 24 BF C2 08 24 C0 C4 24 BD 58 6D
.byte $24, $54, $BA, $24, $C3, $C9, $08, $24, $C5, $CB, $24, $BD, $58, $C6, $C7, $54 ; CPU:$C8F0 PRG:08F0 24 54 BA 24 C3 C9 08 24 C5 CB 24 BD 58 C6 C7 54
.byte $C8, $D0, $24, $CA, $08, $24, $CC, $24, $D3, $CD, $58, $CE, $CF, $54, $24, $D1 ; CPU:$C900 PRG:0900 C8 D0 24 CA 08 24 CC 24 D3 CD 58 CE CF 54 24 D1
.byte $27, $0A, $24, $D5, $D2, $24, $58, $CE, $CF, $54, $24, $24, $D4, $26, $08, $24 ; CPU:$C910 PRG:0910 27 0A 24 D5 D2 24 58 CE CF 54 24 24 D4 26 08 24
.byte $90, $25, $24, $24, $58, $CE, $CF, $4E, $10, $24, $7A, $CE, $CF, $4D, $4E, $0E ; CPU:$C920 PRG:0920 90 25 24 24 58 CE CF 4E 10 24 7A CE CF 4D 4E 0E
.byte $24, $43, $1F, $CE, $CF, $31, $4D, $4E, $0C, $24, $43, $4C, $78, $02, $31, $31 ; CPU:$C930 PRG:0930 24 43 1F CE CF 31 4D 4E 0C 24 43 4C 78 02 31 31
.byte $31, $4D, $4E, $0A, $24, $43, $4C, $31, $78, $02, $31, $03, $31, $4D, $4E, $08 ; CPU:$C940 PRG:0940 31 4D 4E 0A 24 43 4C 31 78 02 31 03 31 4D 4E 08
.byte $24, $43, $4C, $02, $31, $78, $02, $31, $04, $31, $4D, $4E, $06, $24, $43, $4C ; CPU:$C950 PRG:0950 24 43 4C 02 31 78 02 31 04 31 4D 4E 06 24 43 4C
.byte $03, $31, $78, $02, $31, $00, $00, $00, $F0, $F0, $F0, $00, $00, $00, $00, $00 ; CPU:$C960 PRG:0960 03 31 78 02 31 00 00 00 F0 F0 F0 00 00 00 00 00
.byte $0F, $0F, $0F, $00, $00, $00, $00, $00, $FF, $FF, $FF, $33, $00, $00, $00, $00 ; CPU:$C970 PRG:0970 0F 0F 0F 00 00 00 00 00 FF FF FF 33 00 00 00 00
.byte $00, $AA, $00, $00, $00, $00, $00, $00, $30, $00, $C0, $00, $00, $00, $00, $00 ; CPU:$C980 PRG:0980 00 AA 00 00 00 00 00 00 30 00 C0 00 00 00 00 00
.byte $03, $00, $0C, $44, $11, $00, $00, $00, $00, $FF, $00, $44, $11, $00, $00, $00 ; CPU:$C990 PRG:0990 03 00 0C 44 11 00 00 00 00 FF 00 44 11 00 00 00
.byte $00, $00, $00, $00, $00, $8F, $AF, $00, $78, $97, $5C, $00, $78, $8F, $AF, $00 ; CPU:$C9A0 PRG:09A0 00 00 00 00 00 8F AF 00 78 97 5C 00 78 8F AF 00
.byte $8C, $97, $5C, $00, $8C, $8F, $AF, $00, $A0, $97, $5C, $00, $A0, $F0, $AF, $00 ; CPU:$C9B0 PRG:09B0 8C 97 5C 00 8C 8F AF 00 A0 97 5C 00 A0 F0 AF 00
.byte $9C, $17, $54, $02, $C8, $17, $54, $42, $D0, $1F, $55, $02, $C8, $1F, $55, $42 ; CPU:$C9C0 PRG:09C0 9C 17 54 02 C8 17 54 42 D0 1F 55 02 C8 1F 55 42
.byte $D0, $37, $70, $01, $50, $3F, $70, $01, $50, $47, $70, $01, $50, $4F, $70, $01 ; CPU:$C9D0 PRG:09D0 D0 37 70 01 50 3F 70 01 50 47 70 01 50 4F 70 01
.byte $50, $57, $70, $01, $50, $5F, $70, $01, $50, $67, $70, $01, $50, $37, $71, $01 ; CPU:$C9E0 PRG:09E0 50 57 70 01 50 5F 70 01 50 67 70 01 50 37 71 01
.byte $58, $3F, $72, $01, $58, $47, $73, $01, $58, $4F, $74, $01, $58, $57, $75, $01 ; CPU:$C9F0 PRG:09F0 58 3F 72 01 58 47 73 01 58 4F 74 01 58 57 75 01
.byte $58, $5F, $76, $01, $58, $67, $77, $01, $58, $37, $5A, $03, $CC, $37, $5B, $03 ; CPU:$CA00 PRG:0A00 58 5F 76 01 58 67 77 01 58 37 5A 03 CC 37 5B 03
.byte $D4, $3F, $5A, $03, $CC, $3F, $5B, $03, $D4, $47, $5A, $03, $CC, $47, $5B, $03 ; CPU:$CA10 PRG:0A10 D4 3F 5A 03 CC 3F 5B 03 D4 47 5A 03 CC 47 5B 03
.byte $D4, $F0, $5E, $42, $4F, $F0, $5F, $42, $47, $F0, $5E, $02, $C9, $F0, $5F, $02 ; CPU:$CA20 PRG:0A20 D4 F0 5E 42 4F F0 5F 42 47 F0 5E 02 C9 F0 5F 02
.byte $D1, $97, $FF, $00, $5A, $97, $FF, $40, $BE, $FE, $14, $31, $03, $31, $0E, $20 ; CPU:$CA30 PRG:0A30 D1 97 FF 00 5A 97 FF 40 BE FE 14 31 03 31 0E 20
.byte $03, $31, $03, $31, $0E, $24, $03, $31, $03, $31, $0E, $21, $03, $31, $03, $31 ; CPU:$CA40 PRG:0A40 03 31 03 31 0E 24 03 31 03 31 0E 21 03 31 03 31
.byte $D8, $0C, $D9, $DA, $03, $31, $03, $31, $D8, $0C, $24, $DA, $03, $31, $03, $31 ; CPU:$CA50 PRG:0A50 D8 0C D9 DA 03 31 03 31 D8 0C 24 DA 03 31 03 31
.byte $D8, $0C, $24, $DA, $03, $31, $03, $31, $D8, $03, $DB, $06, $24, $03, $DB, $DA ; CPU:$CA60 PRG:0A60 D8 0C 24 DA 03 31 03 31 D8 03 DB 06 24 03 DB DA
.byte $03, $31, $31, $55, $DC, $0E, $24, $A4, $91, $31, $31, $A1, $10, $24, $6C, $31 ; CPU:$CA70 PRG:0A70 03 31 31 55 DC 0E 24 A4 91 31 31 A1 10 24 6C 31
.byte $55, $DC, $05, $24, $DD, $DE, $E1, $E2, $E1, $E2, $05, $24, $A4, $31, $A1, $06 ; CPU:$CA80 PRG:0A80 55 DC 05 24 DD DE E1 E2 E1 E2 05 24 A4 31 A1 06
.byte $24, $DF, $E0, $E3, $E4, $F1, $F2, $06, $24, $6C, $DC, $24, $7F, $80, $81, $82 ; CPU:$CA90 PRG:0A90 24 DF E0 E3 E4 F1 F2 06 24 6C DC 24 7F 80 81 82
.byte $24, $DD, $DE, $E1, $E2, $E1, $E2, $24, $7F, $80, $81, $82, $24, $A4, $24, $24 ; CPU:$CAA0 PRG:0AA0 24 DD DE E1 E2 E1 E2 24 7F 80 81 82 24 A4 24 24
.byte $83, $84, $85, $86, $24, $DF, $E0, $E3, $E4, $F1, $F2, $24, $83, $84, $85, $86 ; CPU:$CAB0 PRG:0AB0 83 84 85 86 24 DF E0 E3 E4 F1 F2 24 83 84 85 86
.byte $24, $24, $E5, $24, $87, $88, $89, $8A, $24, $DD, $DE, $E1, $E2, $E1, $E2, $24 ; CPU:$CAC0 PRG:0AC0 24 24 E5 24 87 88 89 8A 24 DD DE E1 E2 E1 E2 24
.byte $87, $88, $89, $8A, $24, $E8, $E9, $06, $24, $DF, $E0, $E3, $E4, $F1, $F2, $06 ; CPU:$CAD0 PRG:0AD0 87 88 89 8A 24 E8 E9 06 24 DF E0 E3 E4 F1 F2 06
.byte $24, $EC, $4D, $E5, $05, $24, $DD, $DE, $E1, $E2, $E1, $E2, $05, $24, $E8, $4C ; CPU:$CAE0 PRG:0AE0 24 EC 4D E5 05 24 DD DE E1 E2 E1 E2 05 24 E8 4C
.byte $31, $E9, $05, $24, $DF, $E0, $E3, $E4, $F1, $F2, $05, $24, $EC, $31, $31, $4D ; CPU:$CAF0 PRG:0AF0 31 E9 05 24 DF E0 E3 E4 F1 F2 05 24 EC 31 31 4D
.byte $E5, $0E, $24, $E8, $4C, $31, $60, $60, $EA, $0E, $24, $EB, $60, $60, $14, $24 ; CPU:$CB00 PRG:0B00 E5 0E 24 E8 4C 31 60 60 EA 0E 24 EB 60 60 14 24
.byte $24, $F3, $B7, $B8, $0C, $24, $B7, $B8, $B9, $24, $14, $24, $05, $D9, $0A, $24 ; CPU:$CB10 PRG:0B10 24 F3 B7 B8 0C 24 B7 B8 B9 24 14 24 05 D9 0A 24
.byte $05, $D9, $14, $24, $14, $24, $24, $24, $10, $ED, $24, $24, $24, $24, $10, $ED ; CPU:$CB20 PRG:0B20 05 D9 14 24 14 24 24 24 10 ED 24 24 24 24 10 ED
.byte $24, $24, $24, $24, $10, $ED, $24, $24, $24, $24, $10, $ED, $24, $24, $00, $00 ; CPU:$CB30 PRG:0B30 24 24 24 24 10 ED 24 24 24 24 10 ED 24 24 00 00
.byte $88, $AA, $AA, $AA, $AA, $00, $00, $00, $88, $AA, $AA, $AA, $AA, $00, $00, $00 ; CPU:$CB40 PRG:0B40 88 AA AA AA AA 00 00 00 88 AA AA AA AA 00 00 00
.byte $00, $00, $20, $10, $00, $00, $00, $00, $44, $55, $22, $55, $55, $00, $00, $00 ; CPU:$CB50 PRG:0B50 00 00 20 10 00 00 00 00 44 55 22 55 55 00 00 00
.byte $00, $00, $02, $01, $00, $00, $00, $00, $08, $02, $00, $00, $0A, $00, $00, $00 ; CPU:$CB60 PRG:0B60 00 00 02 01 00 00 00 00 08 02 00 00 0A 00 00 00
.byte $44, $55, $55, $55, $55, $00, $00, $00, $44, $55, $55, $55, $55, $00, $37, $36 ; CPU:$CB70 PRG:0B70 44 55 55 55 55 00 00 00 44 55 55 55 55 00 37 36
.byte $00, $80, $37, $36, $40, $88, $37, $36, $00, $90, $37, $36, $40, $98, $37, $36 ; CPU:$CB80 PRG:0B80 00 80 37 36 40 88 37 36 00 90 37 36 40 98 37 36
.byte $00, $A0, $37, $36, $40, $A8, $99, $54, $02, $90, $99, $54, $42, $98, $A1, $55 ; CPU:$CB90 PRG:0B90 00 A0 37 36 40 A8 99 54 02 90 99 54 42 98 A1 55
.byte $02, $90, $A1, $55, $42, $98, $FE ; CPU:$CBA0 PRG:0BA0 02 90 A1 55 42 98 FE
; -----------------------------------------------------------------------------
; Routine: SubCCBA7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBA7:
lda Zp04 ; CPU:$CBA7 PRG:0BA7 A5 04
beq SubCCBAF ; CPU:$CBA9 PRG:0BA9 F0 04
lda #$04 ; CPU:$CBAB PRG:0BAB A9 04
bne SubCCBB4 ; CPU:$CBAD PRG:0BAD D0 05
; -----------------------------------------------------------------------------
; Routine: SubCCBAF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBAF:
lda ZpBC ; CPU:$CBAF PRG:0BAF A5 BC
clc ; CPU:$CBB1 PRG:0BB1 18
adc #$03 ; CPU:$CBB2 PRG:0BB2 69 03
; -----------------------------------------------------------------------------
; Routine: SubCCBB4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBB4:
sta Zp1D ; CPU:$CBB4 PRG:0BB4 85 1D
; -----------------------------------------------------------------------------
; Routine: SubCCBB6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBB6:
lda #$00 ; CPU:$CBB6 PRG:0BB6 A9 00
sta Zp1C ; CPU:$CBB8 PRG:0BB8 85 1C
; -----------------------------------------------------------------------------
; Routine: SubCCBBA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBBA:
lda ZpD2 ; CPU:$CBBA PRG:0BBA A5 D2
bpl SubCCBC4 ; CPU:$CBBC PRG:0BBC 10 06
jsr SubCCC78 ; CPU:$CBBE PRG:0BBE 20 78 CC
jmp SubCCC5D ; CPU:$CBC1 PRG:0BC1 4C 5D CC
; -----------------------------------------------------------------------------
; Routine: SubCCBC4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBC4:
jsr UpdateSoundEngine ; CPU:$CBC4 PRG:0BC4 20 30 DE
jsr SubCDE6C ; CPU:$CBC7 PRG:0BC7 20 6C DE
jsr UpdateBumper ; CPU:$CBCA PRG:0BCA 20 B6 DB
ldx #$02 ; CPU:$CBCD PRG:0BCD A2 02
; -----------------------------------------------------------------------------
; Routine: SubCCBCF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBCF:
asl Zp0A ; CPU:$CBCF PRG:0BCF 06 0A
rol Zp0B ; CPU:$CBD1 PRG:0BD1 26 0B
asl Zp0C ; CPU:$CBD3 PRG:0BD3 06 0C
rol Zp0D ; CPU:$CBD5 PRG:0BD5 26 0D
dex ; CPU:$CBD7 PRG:0BD7 CA
bne SubCCBCF ; CPU:$CBD8 PRG:0BD8 D0 F5
jsr SubCDCC9 ; CPU:$CBDA PRG:0BDA 20 C9 DC
lda Zp09 ; CPU:$CBDD PRG:0BDD A5 09
cmp #$08 ; CPU:$CBDF PRG:0BDF C9 08
bcs SubCCBE9 ; CPU:$CBE1 PRG:0BE1 B0 06
dec ZpBF ; CPU:$CBE3 PRG:0BE3 C6 BF
lda #$E9 ; CPU:$CBE5 PRG:0BE5 A9 E9
bne SubCCC01 ; CPU:$CBE7 PRG:0BE7 D0 18
; -----------------------------------------------------------------------------
; Routine: SubCCBE9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBE9:
cmp #$F1 ; CPU:$CBE9 PRG:0BE9 C9 F1
bcc SubCCC06 ; CPU:$CBEB PRG:0BEB 90 19
lda ZpBF ; CPU:$CBED PRG:0BED A5 BF
beq SubCCBFD ; CPU:$CBEF PRG:0BEF F0 0C
cmp #$02 ; CPU:$CBF1 PRG:0BF1 C9 02
beq SubCCBF6 ; CPU:$CBF3 PRG:0BF3 F0 01
rts ; CPU:$CBF5 PRG:0BF5 60
; -----------------------------------------------------------------------------
; Routine: SubCCBF6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBF6:
ldx #$00 ; CPU:$CBF6 PRG:0BF6 A2 00
stx Zp1D ; CPU:$CBF8 PRG:0BF8 86 1D
jmp SubCCCE9 ; CPU:$CBFA PRG:0BFA 4C E9 CC
; -----------------------------------------------------------------------------
; Routine: SubCCBFD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCBFD:
inc ZpBF ; CPU:$CBFD PRG:0BFD E6 BF
lda #$08 ; CPU:$CBFF PRG:0BFF A9 08
; -----------------------------------------------------------------------------
; Routine: SubCCC01
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC01:
sta Zp09 ; CPU:$CC01 PRG:0C01 85 09
jsr InitGame ; CPU:$CC03 PRG:0C03 20 FD E0
; -----------------------------------------------------------------------------
; Routine: SubCCC06
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC06:
jsr UpdateSoundChannel ; CPU:$CC06 PRG:0C06 20 41 DE
lda #$00 ; CPU:$CC09 PRG:0C09 A9 00
sta Zp1F ; CPU:$CC0B PRG:0C0B 85 1F
lda Zp07 ; CPU:$CC0D PRG:0C0D A5 07
sta Zp20 ; CPU:$CC0F PRG:0C0F 85 20
lda Zp09 ; CPU:$CC11 PRG:0C11 A5 09
sta Zp21 ; CPU:$CC13 PRG:0C13 85 21
; -----------------------------------------------------------------------------
; Routine: SubCCC15
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC15:
jsr InitializeRAM ; CPU:$CC15 PRG:0C15 20 6C CE
; -----------------------------------------------------------------------------
; Routine: SubCCC18
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC18:
dec Zp26 ; CPU:$CC18 PRG:0C18 C6 26
bmi SubCCC3A ; CPU:$CC1A PRG:0C1A 30 1E
jsr UpdateSprites_C34B2 ; CPU:$CC1C PRG:0C1C 20 EC CF
bcc SubCCC35 ; CPU:$CC1F PRG:0C1F 90 14
lda Zp1F ; CPU:$CC21 PRG:0C21 A5 1F
bne SubCCC3A ; CPU:$CC23 PRG:0C23 D0 15
lda Zp07 ; CPU:$CC25 PRG:0C25 A5 07
cmp Zp20 ; CPU:$CC27 PRG:0C27 C5 20
bne SubCCC15 ; CPU:$CC29 PRG:0C29 D0 EA
lda Zp09 ; CPU:$CC2B PRG:0C2B A5 09
cmp Zp21 ; CPU:$CC2D PRG:0C2D C5 21
bne SubCCC15 ; CPU:$CC2F PRG:0C2F D0 E4
inc Zp1F ; CPU:$CC31 PRG:0C31 E6 1F
bne SubCCC15 ; CPU:$CC33 PRG:0C33 D0 E0
; -----------------------------------------------------------------------------
; Routine: SubCCC35
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC35:
jsr UpdateScore2 ; CPU:$CC35 PRG:0C35 20 AD D0
bcc SubCCC18 ; CPU:$CC38 PRG:0C38 90 DE
; -----------------------------------------------------------------------------
; Routine: SubCCC3A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC3A:
jsr UpdateFlippers_3 ; CPU:$CC3A PRG:0C3A 20 F0 D4
jsr SubCCD34 ; CPU:$CC3D PRG:0C3D 20 34 CD
dec Zp1E ; CPU:$CC40 PRG:0C40 C6 1E
bne SubCCC5D ; CPU:$CC42 PRG:0C42 D0 19
lda #$05 ; CPU:$CC44 PRG:0C44 A9 05
sta Zp1E ; CPU:$CC46 PRG:0C46 85 1E
jsr SubCDE6C ; CPU:$CC48 PRG:0C48 20 6C DE
lda Zp0C ; CPU:$CC4B PRG:0C4B A5 0C
clc ; CPU:$CC4D PRG:0C4D 18
adc #$01 ; CPU:$CC4E PRG:0C4E 69 01
bmi SubCCC58 ; CPU:$CC50 PRG:0C50 30 06
cmp #$40 ; CPU:$CC52 PRG:0C52 C9 40
bcc SubCCC58 ; CPU:$CC54 PRG:0C54 90 02
lda #$3F ; CPU:$CC56 PRG:0C56 A9 3F
; -----------------------------------------------------------------------------
; Routine: SubCCC58
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC58:
sta Zp0C ; CPU:$CC58 PRG:0C58 85 0C
jsr UpdateSoundChannel4_EAD1_1 ; CPU:$CC5A PRG:0C5A 20 7E DE
; -----------------------------------------------------------------------------
; Routine: SubCCC5D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC5D:
dec Zp1C ; CPU:$CC5D PRG:0C5D C6 1C
bmi SubCCC64 ; CPU:$CC5F PRG:0C5F 30 03
jmp SubCCBBA ; CPU:$CC61 PRG:0C61 4C BA CB
; -----------------------------------------------------------------------------
; Routine: SubCCC64
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC64:
jsr SubCCD02 ; CPU:$CC64 PRG:0C64 20 02 CD
lda ZpBF ; CPU:$CC67 PRG:0C67 A5 BF
cmp #$02 ; CPU:$CC69 PRG:0C69 C9 02
beq SubCCC70 ; CPU:$CC6B PRG:0C6B F0 03
jsr UpdateMusicEngine ; CPU:$CC6D PRG:0C6D 20 09 E6
; -----------------------------------------------------------------------------
; Routine: SubCCC70
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC70:
dec Zp1D ; CPU:$CC70 PRG:0C70 C6 1D
beq SubCCC77 ; CPU:$CC72 PRG:0C72 F0 03
jmp SubCCBB6 ; CPU:$CC74 PRG:0C74 4C B6 CB
; -----------------------------------------------------------------------------
; Routine: SubCCC77
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC77:
rts ; CPU:$CC77 PRG:0C77 60
; -----------------------------------------------------------------------------
; Routine: SubCCC78
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC78:
lda Zp24 ; CPU:$CC78 PRG:0C78 A5 24
beq SubCCC7F ; CPU:$CC7A PRG:0C7A F0 03
dec Zp24 ; CPU:$CC7C PRG:0C7C C6 24
rts ; CPU:$CC7E PRG:0C7E 60
; -----------------------------------------------------------------------------
; Routine: SubCCC7F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC7F:
ldx Zp23 ; CPU:$CC7F PRG:0C7F A6 23
lda $DB94,x ; CPU:$CC81 PRG:0C81 BD 94 DB
bmi SubCCC8F ; CPU:$CC84 PRG:0C84 30 09
sta Zp1B ; CPU:$CC86 PRG:0C86 85 1B
lda $DB95,x ; CPU:$CC88 PRG:0C88 BD 95 DB
sta Zp24 ; CPU:$CC8B PRG:0C8B 85 24
bne SubCCCB6 ; CPU:$CC8D PRG:0C8D D0 27
; -----------------------------------------------------------------------------
; Routine: SubCCC8F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCC8F:
cmp #$FF ; CPU:$CC8F PRG:0C8F C9 FF
beq SubCCCBB ; CPU:$CC91 PRG:0C91 F0 28
lda ZpD2 ; CPU:$CC93 PRG:0C93 A5 D2
and #$7F ; CPU:$CC95 PRG:0C95 29 7F
tay ; CPU:$CC97 PRG:0C97 A8
lda $DBA8,y ; CPU:$CC98 PRG:0C98 B9 A8 DB
cmp ZpBF ; CPU:$CC9B PRG:0C9B C5 BF
beq SubCCCB7 ; CPU:$CC9D PRG:0C9D F0 18
sta ZpBF ; CPU:$CC9F PRG:0C9F 85 BF
tax ; CPU:$CCA1 PRG:0CA1 AA
; -----------------------------------------------------------------------------
; Routine: SubCCCA2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCCA2:
lda $DBAE,x ; CPU:$CCA2 PRG:0CA2 BD AE DB
sta Zp07 ; CPU:$CCA5 PRG:0CA5 85 07
lda $DBB2,x ; CPU:$CCA7 PRG:0CA7 BD B2 DB
sta Zp09 ; CPU:$CCAA PRG:0CAA 85 09
jsr UpdateSoundChannel ; CPU:$CCAC PRG:0CAC 20 41 DE
lda #$32 ; CPU:$CCAF PRG:0CAF A9 32
sta Zp24 ; CPU:$CCB1 PRG:0CB1 85 24
jmp InitGame ; CPU:$CCB3 PRG:0CB3 4C FD E0
; -----------------------------------------------------------------------------
; Routine: SubCCCB6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCCB6:
inx ; CPU:$CCB6 PRG:0CB6 E8
; -----------------------------------------------------------------------------
; Routine: SubCCCB7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCCB7:
inx ; CPU:$CCB7 PRG:0CB7 E8
stx Zp23 ; CPU:$CCB8 PRG:0CB8 86 23
rts ; CPU:$CCBA PRG:0CBA 60
; -----------------------------------------------------------------------------
; Routine: SubCCCBB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCCBB:
ldx ZpBF ; CPU:$CCBB PRG:0CBB A6 BF
cpx #$01 ; CPU:$CCBD PRG:0CBD E0 01
beq SubCCCD3 ; CPU:$CCBF PRG:0CBF F0 12
lda #$C1 ; CPU:$CCC1 PRG:0CC1 A9 C1
sta Zp08 ; CPU:$CCC3 PRG:0CC3 85 08
ldx ZpBF ; CPU:$CCC5 PRG:0CC5 A6 BF
beq SubCCCD9 ; CPU:$CCC7 PRG:0CC7 F0 10
jsr UpdateGameMode ; CPU:$CCC9 PRG:0CC9 20 E2 E3
tax ; CPU:$CCCC PRG:0CCC AA
bmi SubCCCD9 ; CPU:$CCCD PRG:0CCD 30 0A
lda #$3F ; CPU:$CCCF PRG:0CCF A9 3F
bne SubCCCD9 ; CPU:$CCD1 PRG:0CD1 D0 06
; -----------------------------------------------------------------------------
; Routine: SubCCCD3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCCD3:
lda #$18 ; CPU:$CCD3 PRG:0CD3 A9 18
sta Zp08 ; CPU:$CCD5 PRG:0CD5 85 08
bne SubCCCDD ; CPU:$CCD7 PRG:0CD7 D0 04
; -----------------------------------------------------------------------------
; Routine: SubCCCD9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCCD9:
ldx #$01 ; CPU:$CCD9 PRG:0CD9 A2 01
stx ZpFE ; CPU:$CCDB PRG:0CDB 86 FE
; -----------------------------------------------------------------------------
; Routine: SubCCCDD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCCDD:
sta Zp06 ; CPU:$CCDD PRG:0CDD 85 06
jsr UpdateSoundChannel3_E9ED_1 ; CPU:$CCDF PRG:0CDF 20 75 DE
lda #$00 ; CPU:$CCE2 PRG:0CE2 A9 00
sta ZpD2 ; CPU:$CCE4 PRG:0CE4 85 D2
sta Zp23 ; CPU:$CCE6 PRG:0CE6 85 23
rts ; CPU:$CCE8 PRG:0CE8 60
; -----------------------------------------------------------------------------
; Routine: SubCCCE9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCCE9:
lda $DBAA,x ; CPU:$CCE9 PRG:0CE9 BD AA DB
sta ZpBF ; CPU:$CCEC PRG:0CEC 85 BF
ora #$80 ; CPU:$CCEE PRG:0CEE 09 80
sta ZpD2 ; CPU:$CCF0 PRG:0CF0 85 D2
lda $DBAC,x ; CPU:$CCF2 PRG:0CF2 BD AC DB
tax ; CPU:$CCF5 PRG:0CF5 AA
inc Zp22 ; CPU:$CCF6 PRG:0CF6 E6 22
lda #$0B ; CPU:$CCF8 PRG:0CF8 A9 0B
sta Zp23 ; CPU:$CCFA PRG:0CFA 85 23
lda #$04 ; CPU:$CCFC PRG:0CFC A9 04
sta Zp1B ; CPU:$CCFE PRG:0CFE 85 1B
bne SubCCCA2 ; CPU:$CD00 PRG:0D00 D0 A0
; -----------------------------------------------------------------------------
; Routine: SubCCD02
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD02:
lda #$00 ; CPU:$CD02 PRG:0D02 A9 00
sta Zp1C ; CPU:$CD04 PRG:0D04 85 1C
jsr UpdateSoundEngine ; CPU:$CD06 PRG:0D06 20 30 DE
ldx #$02 ; CPU:$CD09 PRG:0D09 A2 02
; -----------------------------------------------------------------------------
; Routine: SubCCD0B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD0B:
lda ZpCD ; CPU:$CD0B PRG:0D0B A5 CD
and $D7DD,x ; CPU:$CD0D PRG:0D0D 3D DD D7
beq SubCCD30 ; CPU:$CD10 PRG:0D10 F0 1E
lda Zp07 ; CPU:$CD12 PRG:0D12 A5 07
sec ; CPU:$CD14 PRG:0D14 38
sbc $D9B1,x ; CPU:$CD15 PRG:0D15 FD B1 D9
cmp $D9B4,x ; CPU:$CD18 PRG:0D18 DD B4 D9
bcc SubCCD30 ; CPU:$CD1B PRG:0D1B 90 13
lda $D9B7,x ; CPU:$CD1D PRG:0D1D BD B7 D9
sta ZpDB ; CPU:$CD20 PRG:0D20 85 DB
lda $D9BA,x ; CPU:$CD22 PRG:0D22 BD BA D9
sta ZpDC ; CPU:$CD25 PRG:0D25 85 DC
ldy #$00 ; CPU:$CD27 PRG:0D27 A0 00
txa ; CPU:$CD29 PRG:0D29 8A
adc #$1F ; CPU:$CD2A PRG:0D2A 69 1F
sta (ZpDB),y ; CPU:$CD2C PRG:0D2C 91 DB
sty ZpCD ; CPU:$CD2E PRG:0D2E 84 CD
; -----------------------------------------------------------------------------
; Routine: SubCCD30
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD30:
dex ; CPU:$CD30 PRG:0D30 CA
bpl SubCCD0B ; CPU:$CD31 PRG:0D31 10 D8
rts ; CPU:$CD33 PRG:0D33 60
; -----------------------------------------------------------------------------
; Routine: SubCCD34
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD34:
lda #$00 ; CPU:$CD34 PRG:0D34 A9 00
sta Zp41 ; CPU:$CD36 PRG:0D36 85 41
sta Zp44 ; CPU:$CD38 PRG:0D38 85 44
ldx ZpBF ; CPU:$CD3A PRG:0D3A A6 BF
lda $DAE1,x ; CPU:$CD3C PRG:0D3C BD E1 DA
sta Zp42 ; CPU:$CD3F PRG:0D3F 85 42
; -----------------------------------------------------------------------------
; Routine: SubCCD41
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD41:
jsr UpdateSoundEngine ; CPU:$CD41 PRG:0D41 20 30 DE
ldx Zp42 ; CPU:$CD44 PRG:0D44 A6 42
; -----------------------------------------------------------------------------
; Routine: SubCCD46
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD46:
lda $DAE4,x ; CPU:$CD46 PRG:0D46 BD E4 DA
cmp #$FF ; CPU:$CD49 PRG:0D49 C9 FF
beq SubCCD97 ; CPU:$CD4B PRG:0D4B F0 4A
lda Zp09 ; CPU:$CD4D PRG:0D4D A5 09
cmp $DAE4,x ; CPU:$CD4F PRG:0D4F DD E4 DA
bcc SubCCD59 ; CPU:$CD52 PRG:0D52 90 05
cmp $DAF4,x ; CPU:$CD54 PRG:0D54 DD F4 DA
bcc SubCCD5E ; CPU:$CD57 PRG:0D57 90 05
; -----------------------------------------------------------------------------
; Routine: SubCCD59
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD59:
inc Zp41 ; CPU:$CD59 PRG:0D59 E6 41
inx ; CPU:$CD5B PRG:0D5B E8
bne SubCCD46 ; CPU:$CD5C PRG:0D5C D0 E8
; -----------------------------------------------------------------------------
; Routine: SubCCD5E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD5E:
stx Zp42 ; CPU:$CD5E PRG:0D5E 86 42
lda $DB04,x ; CPU:$CD60 PRG:0D60 BD 04 DB
tax ; CPU:$CD63 PRG:0D63 AA
ldy #$00 ; CPU:$CD64 PRG:0D64 A0 00
lda Zp07 ; CPU:$CD66 PRG:0D66 A5 07
; -----------------------------------------------------------------------------
; Routine: SubCCD68
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD68:
cmp $DB14,x ; CPU:$CD68 PRG:0D68 DD 14 DB
bcc SubCCD71 ; CPU:$CD6B PRG:0D6B 90 04
inx ; CPU:$CD6D PRG:0D6D E8
iny ; CPU:$CD6E PRG:0D6E C8
bne SubCCD68 ; CPU:$CD6F PRG:0D6F D0 F7
; -----------------------------------------------------------------------------
; Routine: SubCCD71
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD71:
sty Zp43 ; CPU:$CD71 PRG:0D71 84 43
lda $DB44,x ; CPU:$CD73 PRG:0D73 BD 44 DB
bne SubCCD7D ; CPU:$CD76 PRG:0D76 D0 05
ldx Zp42 ; CPU:$CD78 PRG:0D78 A6 42
jmp SubCCD59 ; CPU:$CD7A PRG:0D7A 4C 59 CD
; -----------------------------------------------------------------------------
; Routine: SubCCD7D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD7D:
tax ; CPU:$CD7D PRG:0D7D AA
dex ; CPU:$CD7E PRG:0D7E CA
lda $DB74,x ; CPU:$CD7F PRG:0D7F BD 74 DB
sta ZpE4 ; CPU:$CD82 PRG:0D82 85 E4
lda $DB7E,x ; CPU:$CD84 PRG:0D84 BD 7E DB
sta ZpE5 ; CPU:$CD87 PRG:0D87 85 E5
lda #$4C ; CPU:$CD89 PRG:0D89 A9 4C
sta ZpE3 ; CPU:$CD8B PRG:0D8B 85 E3
jsr a:ZpE3 ; CPU:$CD8D PRG:0D8D 20 E3 00
inc Zp42 ; CPU:$CD90 PRG:0D90 E6 42
inc Zp41 ; CPU:$CD92 PRG:0D92 E6 41
jmp SubCCD41 ; CPU:$CD94 PRG:0D94 4C 41 CD
; -----------------------------------------------------------------------------
; Routine: SubCCD97
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCD97:
lda Zp44 ; CPU:$CD97 PRG:0D97 A5 44
sta Zp22 ; CPU:$CD99 PRG:0D99 85 22
rts ; CPU:$CD9B PRG:0D9B 60
; -----------------------------------------------------------------------------
; Routine: IncrementBonus
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
IncrementBonus:
inc Zp44 ; CPU:$CD9C PRG:0D9C E6 44
lda Zp22 ; CPU:$CD9E PRG:0D9E A5 22
beq UpdateBonusDisplay_3 ; CPU:$CDA0 PRG:0DA0 F0 02
pla ; CPU:$CDA2 PRG:0DA2 68
pla ; CPU:$CDA3 PRG:0DA3 68
; -----------------------------------------------------------------------------
; Routine: UpdateBonusDisplay_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBonusDisplay_3:
rts ; CPU:$CDA4 PRG:0DA4 60
; -----------------------------------------------------------------------------
; Routine: SubCCDA5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCDA5:
jsr IncrementBonus ; CPU:$CDA5 PRG:0DA5 20 9C CD
lda #$FF ; CPU:$CDA8 PRG:0DA8 A9 FF
sta ZpD3 ; CPU:$CDAA PRG:0DAA 85 D3
ldx Zp43 ; CPU:$CDAC PRG:0DAC A6 43
dex ; CPU:$CDAE PRG:0DAE CA
lda $DB88,x ; CPU:$CDAF PRG:0DAF BD 88 DB
jmp UpdateMusicChannel15 ; CPU:$CDB2 PRG:0DB2 4C 3D EE
; ---- data $CDB5-$CE4D (153 bytes) ----
.byte $A2, $08, $A5, $09, $DD, $8B, $DB, $B0, $03, $CA, $10, $F8, $A5, $D0, $29, $7F ; CPU:$CDB5 PRG:0DB5 A2 08 A5 09 DD 8B DB B0 03 CA 10 F8 A5 D0 29 7F
.byte $85, $E3, $E4, $E3, $B0, $0A, $8A, $09, $80, $85, $D0, $A9, $0A, $4C, $3D, $EE ; CPU:$CDC5 PRG:0DC5 85 E3 E4 E3 B0 0A 8A 09 80 85 D0 A9 0A 4C 3D EE
.byte $60, $20, $9C, $CD, $A5, $D1, $09, $80, $85, $D1, $A9, $1E, $4C, $3D, $EE, $A2 ; CPU:$CDD5 PRG:0DD5 60 20 9C CD A5 D1 09 80 85 D1 A9 1E 4C 3D EE A2
.byte $00, $2C, $A2, $01, $86, $E3, $BD, $AE, $DB, $85, $0B, $38, $E5, $07, $85, $06 ; CPU:$CDE5 PRG:0DE5 00 2C A2 01 86 E3 BD AE DB 85 0B 38 E5 07 85 06
.byte $BD, $B2, $DB, $85, $0D, $38, $E5, $09, $85, $08, $20, $AA, $DC, $A5, $06, $C9 ; CPU:$CDF5 PRG:0DF5 BD B2 DB 85 0D 38 E5 09 85 08 20 AA DC A5 06 C9
.byte $0D, $B0, $10, $20, $9C, $CD, $A5, $E3, $09, $80, $85, $D2, $A9, $01, $85, $FF ; CPU:$CE05 PRG:0E05 0D B0 10 20 9C CD A5 E3 09 80 85 D2 A9 01 85 FF
.byte $4C, $52, $DE, $60, $20, $9C, $CD, $A6, $43, $CA, $BD, $DD, $D7, $48, $4D, $28 ; CPU:$CE15 PRG:0E15 4C 52 DE 60 20 9C CD A6 43 CA BD DD D7 48 4D 28
.byte $01, $C9, $F8, $D0, $09, $A9, $41, $20, $3D, $EE, $A9, $01, $85, $FD, $68, $85 ; CPU:$CE25 PRG:0E25 01 C9 F8 D0 09 A9 41 20 3D EE A9 01 85 FD 68 85
.byte $D3, $A9, $1E, $4C, $3D, $EE, $20, $9C, $CD, $A5, $43, $4A, $AA, $BD, $DD, $D7 ; CPU:$CE35 PRG:0E35 D3 A9 1E 4C 3D EE 20 9C CD A5 43 4A AA BD DD D7
.byte $85, $D4, $60, $20, $9C, $CD, $A5, $43, $4A ; CPU:$CE45 PRG:0E45 85 D4 60 20 9C CD A5 43 4A
; -----------------------------------------------------------------------------
; Routine: SubCCE4E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCE4E:
tax ; CPU:$CE4E PRG:0E4E AA
lda $D7DD,x ; CPU:$CE4F PRG:0E4F BD DD D7
sta ZpD5 ; CPU:$CE52 PRG:0E52 85 D5
rts ; CPU:$CE54 PRG:0E54 60
; ---- data $CE55-$CE6B (23 bytes) ----
.byte $20, $9C, $CD, $A9, $37, $4C, $3D, $EE, $20, $9C, $CD, $A5, $43, $4A, $AA, $A4 ; CPU:$CE55 PRG:0E55 20 9C CD A9 37 4C 3D EE 20 9C CD A5 43 4A AA A4
.byte $41, $B9, $DD, $D7, $95, $D8, $60 ; CPU:$CE65 PRG:0E65 41 B9 DD D7 95 D8 60
; -----------------------------------------------------------------------------
; Routine: InitializeRAM
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InitializeRAM:
lda #$00 ; CPU:$CE6C PRG:0E6C A9 00
ldx #$47 ; CPU:$CE6E PRG:0E6E A2 47
; -----------------------------------------------------------------------------
; Routine: SubCCE70
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCE70:
sta Zp6A,x ; CPU:$CE70 PRG:0E70 95 6A
dex ; CPU:$CE72 PRG:0E72 CA
bpl SubCCE70 ; CPU:$CE73 PRG:0E73 10 FB
ldx #$1F ; CPU:$CE75 PRG:0E75 A2 1F
; -----------------------------------------------------------------------------
; Routine: SubCCE77
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCE77:
sta Zp2A,x ; CPU:$CE77 PRG:0E77 95 2A
dex ; CPU:$CE79 PRG:0E79 CA
bpl SubCCE77 ; CPU:$CE7A PRG:0E7A 10 FB
sta Zp25 ; CPU:$CE7C PRG:0E7C 85 25
jsr UpdateSoundEngine ; CPU:$CE7E PRG:0E7E 20 30 DE
lda Zp07 ; CPU:$CE81 PRG:0E81 A5 07
sec ; CPU:$CE83 PRG:0E83 38
sbc #$06 ; CPU:$CE84 PRG:0E84 E9 06
sta Zp06 ; CPU:$CE86 PRG:0E86 85 06
lda Zp09 ; CPU:$CE88 PRG:0E88 A5 09
sec ; CPU:$CE8A PRG:0E8A 38
sbc #$06 ; CPU:$CE8B PRG:0E8B E9 06
sta Zp08 ; CPU:$CE8D PRG:0E8D 85 08
jsr SubCDFE8 ; CPU:$CE8F PRG:0E8F 20 E8 DF
lda #$08 ; CPU:$CE92 PRG:0E92 A9 08
sta ZpE6 ; CPU:$CE94 PRG:0E94 85 E6
; -----------------------------------------------------------------------------
; Routine: SubCCE96
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCE96:
ldx ZpE6 ; CPU:$CE96 PRG:0E96 A6 E6
ldy $D74B,x ; CPU:$CE98 PRG:0E98 BC 4B D7
lda (ZpDB),y ; CPU:$CE9B PRG:0E9B B1 DB
jsr ReadPPUData_3 ; CPU:$CE9D PRG:0E9D 20 A1 D4
inx ; CPU:$CEA0 PRG:0EA0 E8
txa ; CPU:$CEA1 PRG:0EA1 8A
asl a ; CPU:$CEA2 PRG:0EA2 0A
asl a ; CPU:$CEA3 PRG:0EA3 0A
asl a ; CPU:$CEA4 PRG:0EA4 0A
tax ; CPU:$CEA5 PRG:0EA5 AA
dex ; CPU:$CEA6 PRG:0EA6 CA
ldy #$07 ; CPU:$CEA7 PRG:0EA7 A0 07
; -----------------------------------------------------------------------------
; Routine: SubCCEA9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCEA9:
lda (ZpDF),y ; CPU:$CEA9 PRG:0EA9 B1 DF
sta Zp6A,x ; CPU:$CEAB PRG:0EAB 95 6A
dex ; CPU:$CEAD PRG:0EAD CA
dey ; CPU:$CEAE PRG:0EAE 88
bpl SubCCEA9 ; CPU:$CEAF PRG:0EAF 10 F8
dec ZpE6 ; CPU:$CEB1 PRG:0EB1 C6 E6
bpl SubCCE96 ; CPU:$CEB3 PRG:0EB3 10 E1
ldx ZpB4 ; CPU:$CEB5 PRG:0EB5 A6 B4
lda $D7ED,x ; CPU:$CEB7 PRG:0EB7 BD ED D7
sta ZpDF ; CPU:$CEBA PRG:0EBA 85 DF
lda $D7F5,x ; CPU:$CEBC PRG:0EBC BD F5 D7
sta ZpE0 ; CPU:$CEBF PRG:0EBF 85 E0
ldx ZpB5 ; CPU:$CEC1 PRG:0EC1 A6 B5
ldy #$00 ; CPU:$CEC3 PRG:0EC3 A0 00
; -----------------------------------------------------------------------------
; Routine: SubCCEC5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCEC5:
lda #$0D ; CPU:$CEC5 PRG:0EC5 A9 0D
sta ZpE6 ; CPU:$CEC7 PRG:0EC7 85 E6
; -----------------------------------------------------------------------------
; Routine: SubCCEC9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCEC9:
lda (ZpDF),y ; CPU:$CEC9 PRG:0EC9 B1 DF
and Zp6A,x ; CPU:$CECB PRG:0ECB 35 6A
beq SubCCED1 ; CPU:$CECD PRG:0ECD F0 02
inc Zp25 ; CPU:$CECF PRG:0ECF E6 25
; -----------------------------------------------------------------------------
; Routine: SubCCED1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCED1:
sta a:Zp6A,y ; CPU:$CED1 PRG:0ED1 99 6A 00
inx ; CPU:$CED4 PRG:0ED4 E8
iny ; CPU:$CED5 PRG:0ED5 C8
dec ZpE6 ; CPU:$CED6 PRG:0ED6 C6 E6
bne SubCCEC9 ; CPU:$CED8 PRG:0ED8 D0 EF
txa ; CPU:$CEDA PRG:0EDA 8A
clc ; CPU:$CEDB PRG:0EDB 18
adc #$0B ; CPU:$CEDC PRG:0EDC 69 0B
tax ; CPU:$CEDE PRG:0EDE AA
cpy #$27 ; CPU:$CEDF PRG:0EDF C0 27
bne SubCCEC5 ; CPU:$CEE1 PRG:0EE1 D0 E2
lda Zp25 ; CPU:$CEE3 PRG:0EE3 A5 25
bne SubCCEEA ; CPU:$CEE5 PRG:0EE5 D0 03
jmp ProcessSpriteAttributes2 ; CPU:$CEE7 PRG:0EE7 4C 82 CF
; -----------------------------------------------------------------------------
; Routine: SubCCEEA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCEEA:
lda #$00 ; CPU:$CEEA PRG:0EEA A9 00
sta Zp25 ; CPU:$CEEC PRG:0EEC 85 25
lda #$0C ; CPU:$CEEE PRG:0EEE A9 0C
sta ZpE6 ; CPU:$CEF0 PRG:0EF0 85 E6
; -----------------------------------------------------------------------------
; Routine: ProcessSpriteData
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ProcessSpriteData:
ldx ZpE6 ; CPU:$CEF2 PRG:0EF2 A6 E6
lda Zp6A,x ; CPU:$CEF4 PRG:0EF4 B5 6A
sta Zp27 ; CPU:$CEF6 PRG:0EF6 85 27
lda Zp77,x ; CPU:$CEF8 PRG:0EF8 B5 77
sta Zp28 ; CPU:$CEFA PRG:0EFA 85 28
lda Zp84,x ; CPU:$CEFC PRG:0EFC B5 84
sta Zp29 ; CPU:$CEFE PRG:0EFE 85 29
ldy #$00 ; CPU:$CF00 PRG:0F00 A0 00
sty Zp26 ; CPU:$CF02 PRG:0F02 84 26
; -----------------------------------------------------------------------------
; Routine: ProcessSpriteAttributes
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ProcessSpriteAttributes:
lda Zp27 ; CPU:$CF04 PRG:0F04 A5 27
ora Zp28 ; CPU:$CF06 PRG:0F06 05 28
ora Zp29 ; CPU:$CF08 PRG:0F08 05 29
beq SubCCF7B ; CPU:$CF0A PRG:0F0A F0 6F
lda Zp27 ; CPU:$CF0C PRG:0F0C A5 27
bne SubCCF25 ; CPU:$CF0E PRG:0F0E D0 15
lda Zp28 ; CPU:$CF10 PRG:0F10 A5 28
sta Zp27 ; CPU:$CF12 PRG:0F12 85 27
lda Zp29 ; CPU:$CF14 PRG:0F14 A5 29
sta Zp28 ; CPU:$CF16 PRG:0F16 85 28
lda #$00 ; CPU:$CF18 PRG:0F18 A9 00
sta Zp29 ; CPU:$CF1A PRG:0F1A 85 29
lda Zp26 ; CPU:$CF1C PRG:0F1C A5 26
clc ; CPU:$CF1E PRG:0F1E 18
adc #$08 ; CPU:$CF1F PRG:0F1F 69 08
sta Zp26 ; CPU:$CF21 PRG:0F21 85 26
bpl ProcessSpriteAttributes ; CPU:$CF23 PRG:0F23 10 DF
; -----------------------------------------------------------------------------
; Routine: SubCCF25
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCF25:
asl Zp29 ; CPU:$CF25 PRG:0F25 06 29
rol Zp28 ; CPU:$CF27 PRG:0F27 26 28
rol Zp27 ; CPU:$CF29 PRG:0F29 26 27
bcc SubCCF76 ; CPU:$CF2B PRG:0F2B 90 49
inc Zp25 ; CPU:$CF2D PRG:0F2D E6 25
ldx ZpE6 ; CPU:$CF2F PRG:0F2F A6 E6
lda $D754,x ; CPU:$CF31 PRG:0F31 BD 54 D7
tax ; CPU:$CF34 PRG:0F34 AA
lda Zp26 ; CPU:$CF35 PRG:0F35 A5 26
sec ; CPU:$CF37 PRG:0F37 38
sbc ZpB4 ; CPU:$CF38 PRG:0F38 E5 B4
; -----------------------------------------------------------------------------
; Routine: SubCCF3A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCF3A:
cmp $D761,x ; CPU:$CF3A PRG:0F3A DD 61 D7
beq SubCCF43 ; CPU:$CF3D PRG:0F3D F0 04
inx ; CPU:$CF3F PRG:0F3F E8
inx ; CPU:$CF40 PRG:0F40 E8
bne SubCCF3A ; CPU:$CF41 PRG:0F41 D0 F7
; -----------------------------------------------------------------------------
; Routine: SubCCF43
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCF43:
lda $D762,x ; CPU:$CF43 PRG:0F43 BD 62 D7
pha ; CPU:$CF46 PRG:0F46 48
lda Zp26 ; CPU:$CF47 PRG:0F47 A5 26
lsr a ; CPU:$CF49 PRG:0F49 4A
lsr a ; CPU:$CF4A PRG:0F4A 4A
lsr a ; CPU:$CF4B PRG:0F4B 4A
tax ; CPU:$CF4C PRG:0F4C AA
lda $D7A1,x ; CPU:$CF4D PRG:0F4D BD A1 D7
sta ZpE3 ; CPU:$CF50 PRG:0F50 85 E3
lda ZpE6 ; CPU:$CF52 PRG:0F52 A5 E6
clc ; CPU:$CF54 PRG:0F54 18
adc ZpB5 ; CPU:$CF55 PRG:0F55 65 B5
lsr a ; CPU:$CF57 PRG:0F57 4A
lsr a ; CPU:$CF58 PRG:0F58 4A
lsr a ; CPU:$CF59 PRG:0F59 4A
clc ; CPU:$CF5A PRG:0F5A 18
adc ZpE3 ; CPU:$CF5B PRG:0F5B 65 E3
tax ; CPU:$CF5D PRG:0F5D AA
tya ; CPU:$CF5E PRG:0F5E 98
pha ; CPU:$CF5F PRG:0F5F 48
ldy $D74B,x ; CPU:$CF60 PRG:0F60 BC 4B D7
lda (ZpDB),y ; CPU:$CF63 PRG:0F63 B1 DB
sta ZpE3 ; CPU:$CF65 PRG:0F65 85 E3
sty ZpE4 ; CPU:$CF67 PRG:0F67 84 E4
pla ; CPU:$CF69 PRG:0F69 68
tay ; CPU:$CF6A PRG:0F6A A8
pla ; CPU:$CF6B PRG:0F6B 68
tax ; CPU:$CF6C PRG:0F6C AA
lda ZpE3 ; CPU:$CF6D PRG:0F6D A5 E3
sta Zp2A,x ; CPU:$CF6F PRG:0F6F 95 2A
lda ZpE4 ; CPU:$CF71 PRG:0F71 A5 E4
sta Zp4A,x ; CPU:$CF73 PRG:0F73 95 4A
iny ; CPU:$CF75 PRG:0F75 C8
; -----------------------------------------------------------------------------
; Routine: SubCCF76
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCF76:
inc Zp26 ; CPU:$CF76 PRG:0F76 E6 26
jmp ProcessSpriteAttributes ; CPU:$CF78 PRG:0F78 4C 04 CF
; -----------------------------------------------------------------------------
; Routine: SubCCF7B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCF7B:
dec ZpE6 ; CPU:$CF7B PRG:0F7B C6 E6
bmi ProcessSpriteAttributes2 ; CPU:$CF7D PRG:0F7D 30 03
jmp ProcessSpriteData ; CPU:$CF7F PRG:0F7F 4C F2 CE
; -----------------------------------------------------------------------------
; Routine: ProcessSpriteAttributes2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ProcessSpriteAttributes2:
ldy Zp25 ; CPU:$CF82 PRG:0F82 A4 25
beq SubCCFD3 ; CPU:$CF84 PRG:0F84 F0 4D
ldx #$00 ; CPU:$CF86 PRG:0F86 A2 00
ldy #$00 ; CPU:$CF88 PRG:0F88 A0 00
; -----------------------------------------------------------------------------
; Routine: SubCCF8A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCF8A:
cpx #$20 ; CPU:$CF8A PRG:0F8A E0 20
bcs SubCCFD3 ; CPU:$CF8C PRG:0F8C B0 45
lda Zp2A,x ; CPU:$CF8E PRG:0F8E B5 2A
bne SubCCF95 ; CPU:$CF90 PRG:0F90 D0 03
inx ; CPU:$CF92 PRG:0F92 E8
bne SubCCF8A ; CPU:$CF93 PRG:0F93 D0 F5
; -----------------------------------------------------------------------------
; Routine: SubCCF95
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCF95:
stx Zp25 ; CPU:$CF95 PRG:0F95 86 25
; -----------------------------------------------------------------------------
; Routine: SubCCF97
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCF97:
inx ; CPU:$CF97 PRG:0F97 E8
cpx #$20 ; CPU:$CF98 PRG:0F98 E0 20
bne SubCCF9E ; CPU:$CF9A PRG:0F9A D0 02
ldx #$00 ; CPU:$CF9C PRG:0F9C A2 00
; -----------------------------------------------------------------------------
; Routine: SubCCF9E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCF9E:
lda Zp2A,x ; CPU:$CF9E PRG:0F9E B5 2A
bne SubCCF97 ; CPU:$CFA0 PRG:0FA0 D0 F5
dex ; CPU:$CFA2 PRG:0FA2 CA
bpl SubCCFA7 ; CPU:$CFA3 PRG:0FA3 10 02
ldx #$1F ; CPU:$CFA5 PRG:0FA5 A2 1F
; -----------------------------------------------------------------------------
; Routine: SubCCFA7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCFA7:
txa ; CPU:$CFA7 PRG:0FA7 8A
cmp Zp25 ; CPU:$CFA8 PRG:0FA8 C5 25
bcc SubCCFC1 ; CPU:$CFAA PRG:0FAA 90 15
clc ; CPU:$CFAC PRG:0FAC 18
adc Zp25 ; CPU:$CFAD PRG:0FAD 65 25
lsr a ; CPU:$CFAF PRG:0FAF 4A
sta a:Zp6A,y ; CPU:$CFB0 PRG:0FB0 99 6A 00
stx ZpE3 ; CPU:$CFB3 PRG:0FB3 86 E3
tax ; CPU:$CFB5 PRG:0FB5 AA
lda Zp2A,x ; CPU:$CFB6 PRG:0FB6 B5 2A
sta a:Zp7A,y ; CPU:$CFB8 PRG:0FB8 99 7A 00
ldx ZpE3 ; CPU:$CFBB PRG:0FBB A6 E3
inx ; CPU:$CFBD PRG:0FBD E8
iny ; CPU:$CFBE PRG:0FBE C8
bne SubCCF8A ; CPU:$CFBF PRG:0FBF D0 C9
; -----------------------------------------------------------------------------
; Routine: SubCCFC1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCFC1:
adc Zp25 ; CPU:$CFC1 PRG:0FC1 65 25
adc #$20 ; CPU:$CFC3 PRG:0FC3 69 20
lsr a ; CPU:$CFC5 PRG:0FC5 4A
cmp #$20 ; CPU:$CFC6 PRG:0FC6 C9 20
bcc SubCCFCC ; CPU:$CFC8 PRG:0FC8 90 02
sbc #$20 ; CPU:$CFCA PRG:0FCA E9 20
; -----------------------------------------------------------------------------
; Routine: SubCCFCC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCFCC:
sta Zp6A ; CPU:$CFCC PRG:0FCC 85 6A
tax ; CPU:$CFCE PRG:0FCE AA
lda Zp2A,x ; CPU:$CFCF PRG:0FCF B5 2A
sta Zp7A ; CPU:$CFD1 PRG:0FD1 85 7A
; -----------------------------------------------------------------------------
; Routine: SubCCFD3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCFD3:
sty Zp26 ; CPU:$CFD3 PRG:0FD3 84 26
; -----------------------------------------------------------------------------
; Routine: SubCCFD5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCFD5:
dey ; CPU:$CFD5 PRG:0FD5 88
bmi SubCCFEB ; CPU:$CFD6 PRG:0FD6 30 13
lda ZpDB ; CPU:$CFD8 PRG:0FD8 A5 DB
clc ; CPU:$CFDA PRG:0FDA 18
ldx Zp6A,y ; CPU:$CFDB PRG:0FDB B6 6A
adc Zp4A,x ; CPU:$CFDD PRG:0FDD 75 4A
sta a:Zp8A,y ; CPU:$CFDF PRG:0FDF 99 8A 00
lda ZpDC ; CPU:$CFE2 PRG:0FE2 A5 DC
adc #$00 ; CPU:$CFE4 PRG:0FE4 69 00
sta a:Zp9A,y ; CPU:$CFE6 PRG:0FE6 99 9A 00
bcc SubCCFD5 ; CPU:$CFE9 PRG:0FE9 90 EA
; -----------------------------------------------------------------------------
; Routine: SubCCFEB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCCFEB:
rts ; CPU:$CFEB PRG:0FEB 60
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_C34B2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSprites_C34B2:
jsr UpdateSoundEngine ; CPU:$CFEC PRG:0FEC 20 30 DE
ldx Zp26 ; CPU:$CFEF PRG:0FEF A6 26
ldy Zp6A,x ; CPU:$CFF1 PRG:0FF1 B4 6A
tya ; CPU:$CFF3 PRG:0FF3 98
clc ; CPU:$CFF4 PRG:0FF4 18
adc #$04 ; CPU:$CFF5 PRG:0FF5 69 04
lsr a ; CPU:$CFF7 PRG:0FF7 4A
lsr a ; CPU:$CFF8 PRG:0FF8 4A
lsr a ; CPU:$CFF9 PRG:0FF9 4A
tax ; CPU:$CFFA PRG:0FFA AA
lda $D7A4,x ; CPU:$CFFB PRG:0FFB BD A4 D7
sta Zp25 ; CPU:$CFFE PRG:0FFE 85 25
lda $D7A9,y ; CPU:$D000 PRG:1000 B9 A9 D7
clc ; CPU:$D003 PRG:1003 18
adc Zp07 ; CPU:$D004 PRG:1004 65 07
sta Zp06 ; CPU:$D006 PRG:1006 85 06
lda $D7B1,y ; CPU:$D008 PRG:1008 B9 B1 D7
clc ; CPU:$D00B PRG:100B 18
adc Zp09 ; CPU:$D00C PRG:100C 65 09
sta Zp08 ; CPU:$D00E PRG:100E 85 08
jsr UpdateBumperState13 ; CPU:$D010 PRG:1010 20 AC DD
ldx Zp25 ; CPU:$D013 PRG:1013 A6 25
lda $D7D1,x ; CPU:$D015 PRG:1015 BD D1 D7
clc ; CPU:$D018 PRG:1018 18
adc Zp06 ; CPU:$D019 PRG:1019 65 06
sta Zp06 ; CPU:$D01B PRG:101B 85 06
lda $D7D5,x ; CPU:$D01D PRG:101D BD D5 D7
clc ; CPU:$D020 PRG:1020 18
adc Zp08 ; CPU:$D021 PRG:1021 65 08
sta Zp08 ; CPU:$D023 PRG:1023 85 08
jsr UpdateBumperState12 ; CPU:$D025 PRG:1025 20 A3 DD
jsr DrawScore ; CPU:$D028 PRG:1028 20 90 D3
beq SubCD030 ; CPU:$D02B PRG:102B F0 03
jmp UpdateBallX ; CPU:$D02D PRG:102D 4C 93 D0
; -----------------------------------------------------------------------------
; Routine: SubCD030
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD030:
lda Zp25 ; CPU:$D030 PRG:1030 A5 25
sta Zp2B ; CPU:$D032 PRG:1032 85 2B
lda #$00 ; CPU:$D034 PRG:1034 A9 00
sta ZpE6 ; CPU:$D036 PRG:1036 85 E6
lda #$20 ; CPU:$D038 PRG:1038 A9 20
sta Zp2A ; CPU:$D03A PRG:103A 85 2A
; -----------------------------------------------------------------------------
; Routine: UpdateScore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateScore:
jsr UpdateScoreDisplay_3 ; CPU:$D03C PRG:103C 20 AA D3
ldx ZpE6 ; CPU:$D03F PRG:103F A6 E6
sta Zp2E,x ; CPU:$D041 PRG:1041 95 2E
cpx #$01 ; CPU:$D043 PRG:1043 E0 01
bcs SubCD055 ; CPU:$D045 PRG:1045 B0 0E
lda Zp2B ; CPU:$D047 PRG:1047 A5 2B
eor #$01 ; CPU:$D049 PRG:1049 49 01
sta Zp2B ; CPU:$D04B PRG:104B 85 2B
inc ZpE6 ; CPU:$D04D PRG:104D E6 E6
lda Zp2C ; CPU:$D04F PRG:104F A5 2C
pha ; CPU:$D051 PRG:1051 48
jmp UpdateScore ; CPU:$D052 PRG:1052 4C 3C D0
; -----------------------------------------------------------------------------
; Routine: SubCD055
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD055:
pla ; CPU:$D055 PRG:1055 68
clc ; CPU:$D056 PRG:1056 18
adc Zp2C ; CPU:$D057 PRG:1057 65 2C
sbc #$02 ; CPU:$D059 PRG:1059 E9 02
tax ; CPU:$D05B PRG:105B AA
lda Zp2E ; CPU:$D05C PRG:105C A5 2E
cmp Zp2F ; CPU:$D05E PRG:105E C5 2F
bne SubCD066 ; CPU:$D060 PRG:1060 D0 04
lda #$00 ; CPU:$D062 PRG:1062 A9 00
beq UpdateBallY ; CPU:$D064 PRG:1064 F0 16
; -----------------------------------------------------------------------------
; Routine: SubCD066
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD066:
cpx #$1C ; CPU:$D066 PRG:1066 E0 1C
bcc SubCD06C ; CPU:$D068 PRG:1068 90 02
ldx #$1C ; CPU:$D06A PRG:106A A2 1C
; -----------------------------------------------------------------------------
; Routine: SubCD06C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD06C:
ldy Zp2E ; CPU:$D06C PRG:106C A4 2E
beq SubCD076 ; CPU:$D06E PRG:106E F0 06
lda $D928,x ; CPU:$D070 PRG:1070 BD 28 D9
jmp UpdateBallY ; CPU:$D073 PRG:1073 4C 7C D0
; -----------------------------------------------------------------------------
; Routine: SubCD076
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD076:
lda #$00 ; CPU:$D076 PRG:1076 A9 00
sec ; CPU:$D078 PRG:1078 38
sbc $D928,x ; CPU:$D079 PRG:1079 FD 28 D9
; -----------------------------------------------------------------------------
; Routine: UpdateBallY
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallY:
ldx Zp25 ; CPU:$D07C PRG:107C A6 25
clc ; CPU:$D07E PRG:107E 18
adc $D7D9,x ; CPU:$D07F PRG:107F 7D D9 D7
bne SubCD08F ; CPU:$D082 PRG:1082 D0 0B
jsr UpdateSoundChannel2_E96A_1 ; CPU:$D084 PRG:1084 20 63 DE
lda #$01 ; CPU:$D087 PRG:1087 A9 01
ldx Zp06 ; CPU:$D089 PRG:1089 A6 06
bmi SubCD08F ; CPU:$D08B PRG:108B 30 02
lda #$FF ; CPU:$D08D PRG:108D A9 FF
; -----------------------------------------------------------------------------
; Routine: SubCD08F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD08F:
sta Zp30 ; CPU:$D08F PRG:108F 85 30
clc ; CPU:$D091 PRG:1091 18
rts ; CPU:$D092 PRG:1092 60
; -----------------------------------------------------------------------------
; Routine: UpdateBallX
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallX:
jsr UpdateSoundEngine ; CPU:$D093 PRG:1093 20 30 DE
ldx Zp25 ; CPU:$D096 PRG:1096 A6 25
lda Zp07 ; CPU:$D098 PRG:1098 A5 07
clc ; CPU:$D09A PRG:109A 18
adc $D7D1,x ; CPU:$D09B PRG:109B 7D D1 D7
sta Zp07 ; CPU:$D09E PRG:109E 85 07
lda Zp09 ; CPU:$D0A0 PRG:10A0 A5 09
clc ; CPU:$D0A2 PRG:10A2 18
adc $D7D5,x ; CPU:$D0A3 PRG:10A3 7D D5 D7
sta Zp09 ; CPU:$D0A6 PRG:10A6 85 09
jsr UpdateSoundChannel ; CPU:$D0A8 PRG:10A8 20 41 DE
sec ; CPU:$D0AB PRG:10AB 38
rts ; CPU:$D0AC PRG:10AC 60
; -----------------------------------------------------------------------------
; Routine: UpdateScore2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateScore2:
lda #$00 ; CPU:$D0AD PRG:10AD A9 00
sta Zp31 ; CPU:$D0AF PRG:10AF 85 31
ldx Zp26 ; CPU:$D0B1 PRG:10B1 A6 26
lda Zp6A,x ; CPU:$D0B3 PRG:10B3 B5 6A
tax ; CPU:$D0B5 PRG:10B5 AA
lda Zp30 ; CPU:$D0B6 PRG:10B6 A5 30
sec ; CPU:$D0B8 PRG:10B8 38
sbc $D945,x ; CPU:$D0B9 PRG:10B9 FD 45 D9
bmi SubCD0C9 ; CPU:$D0BC PRG:10BC 30 0B
tay ; CPU:$D0BE PRG:10BE A8
txa ; CPU:$D0BF PRG:10BF 8A
and #$07 ; CPU:$D0C0 PRG:10C0 29 07
tax ; CPU:$D0C2 PRG:10C2 AA
tya ; CPU:$D0C3 PRG:10C3 98
cmp $D965,x ; CPU:$D0C4 PRG:10C4 DD 65 D9
bcc SubCD0D2 ; CPU:$D0C7 PRG:10C7 90 09
; -----------------------------------------------------------------------------
; Routine: SubCD0C9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD0C9:
ldx Zp26 ; CPU:$D0C9 PRG:10C9 A6 26
ldy Zp6A,x ; CPU:$D0CB PRG:10CB B4 6A
lda $D96D,y ; CPU:$D0CD PRG:10CD B9 6D D9
sta Zp30 ; CPU:$D0D0 PRG:10D0 85 30
; -----------------------------------------------------------------------------
; Routine: SubCD0D2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD0D2:
jsr UpdateFlipperSound ; CPU:$D0D2 PRG:10D2 20 E0 D0
bcs SubCD0DF ; CPU:$D0D5 PRG:10D5 B0 08
jsr UpdateBallY2 ; CPU:$D0D7 PRG:10D7 20 91 D1
bcs SubCD0DF ; CPU:$D0DA PRG:10DA B0 03
jmp CheckBallPosition ; CPU:$D0DC PRG:10DC 4C 59 D3
; -----------------------------------------------------------------------------
; Routine: SubCD0DF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD0DF:
rts ; CPU:$D0DF PRG:10DF 60
; -----------------------------------------------------------------------------
; Routine: UpdateFlipperSound
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateFlipperSound:
jsr UpdateSoundChannel2_E96A_1 ; CPU:$D0E0 PRG:10E0 20 63 DE
jsr UpdateBumperHit2 ; CPU:$D0E3 PRG:10E3 20 3E DC
sta Zp34 ; CPU:$D0E6 PRG:10E6 85 34
lda Zp30 ; CPU:$D0E8 PRG:10E8 A5 30
sec ; CPU:$D0EA PRG:10EA 38
sbc Zp34 ; CPU:$D0EB PRG:10EB E5 34
beq SubCD0F5 ; CPU:$D0ED PRG:10ED F0 06
sta Zp33 ; CPU:$D0EF PRG:10EF 85 33
cmp #$80 ; CPU:$D0F1 PRG:10F1 C9 80
bcc SubCD0F8 ; CPU:$D0F3 PRG:10F3 90 03
; -----------------------------------------------------------------------------
; Routine: SubCD0F5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD0F5:
jmp UpdateBallX ; CPU:$D0F5 PRG:10F5 4C 93 D0
; -----------------------------------------------------------------------------
; Routine: SubCD0F8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD0F8:
jsr UpdateSoundChannel2_E96A_1 ; CPU:$D0F8 PRG:10F8 20 63 DE
jsr UpdateBumperState4 ; CPU:$D0FB PRG:10FB 20 AA DC
lda Zp06 ; CPU:$D0FE PRG:10FE A5 06
sta Zp35 ; CPU:$D100 PRG:1100 85 35
cmp #$07 ; CPU:$D102 PRG:1102 C9 07
bcs SubCD157 ; CPU:$D104 PRG:1104 B0 51
lda Zp31 ; CPU:$D106 PRG:1106 A5 31
cmp #$02 ; CPU:$D108 PRG:1108 C9 02
bne SubCD10E ; CPU:$D10A PRG:110A D0 02
sec ; CPU:$D10C PRG:110C 38
rts ; CPU:$D10D PRG:110D 60
; -----------------------------------------------------------------------------
; Routine: SubCD10E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD10E:
lda Zp30 ; CPU:$D10E PRG:110E A5 30
cmp #$20 ; CPU:$D110 PRG:1110 C9 20
bcs SubCD118 ; CPU:$D112 PRG:1112 B0 04
lda #$FD ; CPU:$D114 PRG:1114 A9 FD
bne SubCD11E ; CPU:$D116 PRG:1116 D0 06
; -----------------------------------------------------------------------------
; Routine: SubCD118
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD118:
cmp #$E1 ; CPU:$D118 PRG:1118 C9 E1
bcc SubCD157 ; CPU:$D11A PRG:111A 90 3B
lda #$03 ; CPU:$D11C PRG:111C A9 03
; -----------------------------------------------------------------------------
; Routine: SubCD11E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD11E:
ldx ZpBF ; CPU:$D11E PRG:111E A6 BF
cpx #$02 ; CPU:$D120 PRG:1120 E0 02
bne SubCD125 ; CPU:$D122 PRG:1122 D0 01
asl a ; CPU:$D124 PRG:1124 0A
; -----------------------------------------------------------------------------
; Routine: SubCD125
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD125:
sta Zp06 ; CPU:$D125 PRG:1125 85 06
lda #$FB ; CPU:$D127 PRG:1127 A9 FB
sta Zp08 ; CPU:$D129 PRG:1129 85 08
jsr UpdateSoundChannel3_E9ED_1 ; CPU:$D12B PRG:112B 20 75 DE
lda ZpBF ; CPU:$D12E PRG:112E A5 BF
cmp #$01 ; CPU:$D130 PRG:1130 C9 01
bne SubCD154 ; CPU:$D132 PRG:1132 D0 20
jsr UpdateSoundEngine ; CPU:$D134 PRG:1134 20 30 DE
lda Zp07 ; CPU:$D137 PRG:1137 A5 07
cmp #$E1 ; CPU:$D139 PRG:1139 C9 E1
bcc SubCD154 ; CPU:$D13B PRG:113B 90 17
jsr UpdateSoundChannel4_EAD1_3 ; CPU:$D13D PRG:113D 20 D1 EA
asl a ; CPU:$D140 PRG:1140 0A
asl a ; CPU:$D141 PRG:1141 0A
sta ZpE3 ; CPU:$D142 PRG:1142 85 E3
lda #$CD ; CPU:$D144 PRG:1144 A9 CD
sec ; CPU:$D146 PRG:1146 38
sbc ZpE3 ; CPU:$D147 PRG:1147 E5 E3
sta Zp08 ; CPU:$D149 PRG:1149 85 08
lda #$00 ; CPU:$D14B PRG:114B A9 00
sta Zp06 ; CPU:$D14D PRG:114D 85 06
jsr UpdateSoundChannel3_E9ED_1 ; CPU:$D14F PRG:114F 20 75 DE
sec ; CPU:$D152 PRG:1152 38
rts ; CPU:$D153 PRG:1153 60
; -----------------------------------------------------------------------------
; Routine: SubCD154
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD154:
jmp UpdateBallX ; CPU:$D154 PRG:1154 4C 93 D0
; -----------------------------------------------------------------------------
; Routine: SubCD157
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD157:
clc ; CPU:$D157 PRG:1157 18
rts ; CPU:$D158 PRG:1158 60
; -----------------------------------------------------------------------------
; Routine: UpdateBallPosition_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallPosition_3:
lda Zp35 ; CPU:$D159 PRG:1159 A5 35
; -----------------------------------------------------------------------------
; Routine: UpdateBallPosition2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallPosition2:
sta Zp06 ; CPU:$D15B PRG:115B 85 06
lda Zp33 ; CPU:$D15D PRG:115D A5 33
jsr UpdateBumperState9 ; CPU:$D15F PRG:115F 20 78 DD
jsr UpdateBumperChain ; CPU:$D162 PRG:1162 20 DD DC
lda Zp07 ; CPU:$D165 PRG:1165 A5 07
sta Zp36 ; CPU:$D167 PRG:1167 85 36
lda Zp35 ; CPU:$D169 PRG:1169 A5 35
sta Zp06 ; CPU:$D16B PRG:116B 85 06
lda Zp33 ; CPU:$D16D PRG:116D A5 33
jsr UpdateBumperState8 ; CPU:$D16F PRG:116F 20 75 DD
jsr UpdateBumperChain ; CPU:$D172 PRG:1172 20 DD DC
lda Zp07 ; CPU:$D175 PRG:1175 A5 07
sta Zp37 ; CPU:$D177 PRG:1177 85 37
lda Zp30 ; CPU:$D179 PRG:1179 A5 30
clc ; CPU:$D17B PRG:117B 18
adc #$40 ; CPU:$D17C PRG:117C 69 40
sta Zp38 ; CPU:$D17E PRG:117E 85 38
lda Zp30 ; CPU:$D180 PRG:1180 A5 30
ldx Zp33 ; CPU:$D182 PRG:1182 A6 33
cpx #$40 ; CPU:$D184 PRG:1184 E0 40
bcc SubCD18E ; CPU:$D186 PRG:1186 90 06
cpx #$C0 ; CPU:$D188 PRG:1188 E0 C0
bcs SubCD18E ; CPU:$D18A PRG:118A B0 02
adc #$7F ; CPU:$D18C PRG:118C 69 7F
; -----------------------------------------------------------------------------
; Routine: SubCD18E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD18E:
sta Zp39 ; CPU:$D18E PRG:118E 85 39
rts ; CPU:$D190 PRG:1190 60
; -----------------------------------------------------------------------------
; Routine: UpdateBallY2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallY2:
jsr UpdateSoundEngine ; CPU:$D191 PRG:1191 20 30 DE
ldx Zp26 ; CPU:$D194 PRG:1194 A6 26
lda Zp7A,x ; CPU:$D196 PRG:1196 B5 7A
cmp #$7F ; CPU:$D198 PRG:1198 C9 7F
bcc SubCD1B8 ; CPU:$D19A PRG:119A 90 1C
cmp #$8B ; CPU:$D19C PRG:119C C9 8B
bcs SubCD1B8 ; CPU:$D19E PRG:119E B0 18
sbc #$7E ; CPU:$D1A0 PRG:11A0 E9 7E
asl a ; CPU:$D1A2 PRG:11A2 0A
and #$04 ; CPU:$D1A3 PRG:11A3 29 04
tax ; CPU:$D1A5 PRG:11A5 AA
ldy #$00 ; CPU:$D1A6 PRG:11A6 A0 00
lda Zp07 ; CPU:$D1A8 PRG:11A8 A5 07
; -----------------------------------------------------------------------------
; Routine: SubCD1AA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD1AA:
cmp $D9A7,x ; CPU:$D1AA PRG:11AA DD A7 D9
bcc SubCD1B3 ; CPU:$D1AD PRG:11AD 90 04
inx ; CPU:$D1AF PRG:11AF E8
iny ; CPU:$D1B0 PRG:11B0 C8
bne SubCD1AA ; CPU:$D1B1 PRG:11B1 D0 F7
; -----------------------------------------------------------------------------
; Routine: SubCD1B3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD1B3:
tya ; CPU:$D1B3 PRG:11B3 98
ldy #$00 ; CPU:$D1B4 PRG:11B4 A0 00
beq SubCD1CE ; CPU:$D1B6 PRG:11B6 F0 16
; -----------------------------------------------------------------------------
; Routine: SubCD1B8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD1B8:
ldy ZpBF ; CPU:$D1B8 PRG:11B8 A4 BF
ldx $D98D,y ; CPU:$D1BA PRG:11BA BE 8D D9
; -----------------------------------------------------------------------------
; Routine: SubCD1BD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD1BD:
cmp $D990,x ; CPU:$D1BD PRG:11BD DD 90 D9
beq SubCD1CA ; CPU:$D1C0 PRG:11C0 F0 08
ldy $D990,x ; CPU:$D1C2 PRG:11C2 BC 90 D9
beq SubCD1D1 ; CPU:$D1C5 PRG:11C5 F0 0A
inx ; CPU:$D1C7 PRG:11C7 E8
bne SubCD1BD ; CPU:$D1C8 PRG:11C8 D0 F3
; -----------------------------------------------------------------------------
; Routine: SubCD1CA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD1CA:
lda #$00 ; CPU:$D1CA PRG:11CA A9 00
ldy #$01 ; CPU:$D1CC PRG:11CC A0 01
; -----------------------------------------------------------------------------
; Routine: SubCD1CE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD1CE:
jmp CheckCollision ; CPU:$D1CE PRG:11CE 4C 96 D2
; -----------------------------------------------------------------------------
; Routine: SubCD1D1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD1D1:
cmp #$20 ; CPU:$D1D1 PRG:11D1 C9 20
bcc SubCD203 ; CPU:$D1D3 PRG:11D3 90 2E
cmp #$23 ; CPU:$D1D5 PRG:11D5 C9 23
bcs SubCD203 ; CPU:$D1D7 PRG:11D7 B0 2A
sec ; CPU:$D1D9 PRG:11D9 38
sbc #$20 ; CPU:$D1DA PRG:11DA E9 20
tax ; CPU:$D1DC PRG:11DC AA
lda Zp34 ; CPU:$D1DD PRG:11DD A5 34
sec ; CPU:$D1DF PRG:11DF 38
sbc $D9BD,x ; CPU:$D1E0 PRG:11E0 FD BD D9
cmp #$80 ; CPU:$D1E3 PRG:11E3 C9 80
bcc SubCD1EA ; CPU:$D1E5 PRG:11E5 90 03
jmp CheckFlipperHit ; CPU:$D1E7 PRG:11E7 4C E4 D2
; -----------------------------------------------------------------------------
; Routine: SubCD1EA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD1EA:
lda ZpCD ; CPU:$D1EA PRG:11EA A5 CD
ora $D7DD,x ; CPU:$D1EC PRG:11EC 1D DD D7
sta ZpCD ; CPU:$D1EF PRG:11EF 85 CD
ldx Zp26 ; CPU:$D1F1 PRG:11F1 A6 26
lda Zp8A,x ; CPU:$D1F3 PRG:11F3 B5 8A
sta ZpDB ; CPU:$D1F5 PRG:11F5 85 DB
lda Zp9A,x ; CPU:$D1F7 PRG:11F7 B5 9A
sta ZpDC ; CPU:$D1F9 PRG:11F9 85 DC
; -----------------------------------------------------------------------------
; Routine: UpdateBallSprite
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallSprite:
ldy #$00 ; CPU:$D1FB PRG:11FB A0 00
lda #$24 ; CPU:$D1FD PRG:11FD A9 24
sta (ZpDB),y ; CPU:$D1FF PRG:11FF 91 DB
sec ; CPU:$D201 PRG:1201 38
rts ; CPU:$D202 PRG:1202 60
; -----------------------------------------------------------------------------
; Routine: SubCD203
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD203:
cmp #$8B ; CPU:$D203 PRG:1203 C9 8B
bne SubCD248 ; CPU:$D205 PRG:1205 D0 41
ldx Zp26 ; CPU:$D207 PRG:1207 A6 26
lda Zp9A,x ; CPU:$D209 PRG:1209 B5 9A
sta ZpDC ; CPU:$D20B PRG:120B 85 DC
and #$03 ; CPU:$D20D PRG:120D 29 03
sta ZpE3 ; CPU:$D20F PRG:120F 85 E3
lda Zp8A,x ; CPU:$D211 PRG:1211 B5 8A
sta ZpDB ; CPU:$D213 PRG:1213 85 DB
asl a ; CPU:$D215 PRG:1215 0A
rol ZpE3 ; CPU:$D216 PRG:1216 26 E3
asl a ; CPU:$D218 PRG:1218 0A
rol ZpE3 ; CPU:$D219 PRG:1219 26 E3
asl a ; CPU:$D21B PRG:121B 0A
rol ZpE3 ; CPU:$D21C PRG:121C 26 E3
ldx ZpBF ; CPU:$D21E PRG:121E A6 BF
lda ZpE3 ; CPU:$D220 PRG:1220 A5 E3
sec ; CPU:$D222 PRG:1222 38
sbc $D9C0,x ; CPU:$D223 PRG:1223 FD C0 D9
tay ; CPU:$D226 PRG:1226 A8
lda $D7DD,y ; CPU:$D227 PRG:1227 B9 DD D7
pha ; CPU:$D22A PRG:122A 48
eor $0130,x ; CPU:$D22B PRG:122B 5D 30 01
cmp $D9AF,x ; CPU:$D22E PRG:122E DD AF D9
bne SubCD238 ; CPU:$D231 PRG:1231 D0 05
lda #$37 ; CPU:$D233 PRG:1233 A9 37
jsr UpdateMusicChannel15 ; CPU:$D235 PRG:1235 20 3D EE
; -----------------------------------------------------------------------------
; Routine: SubCD238
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD238:
pla ; CPU:$D238 PRG:1238 68
ora ZpCE ; CPU:$D239 PRG:1239 05 CE
sta ZpCE ; CPU:$D23B PRG:123B 85 CE
lda #$0A ; CPU:$D23D PRG:123D A9 0A
jsr UpdateMusicChannel15 ; CPU:$D23F PRG:123F 20 3D EE
jsr UpdateBallSprite ; CPU:$D242 PRG:1242 20 FB D1
jmp CheckFlipperHit ; CPU:$D245 PRG:1245 4C E4 D2
; -----------------------------------------------------------------------------
; Routine: SubCD248
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD248:
cmp #$23 ; CPU:$D248 PRG:1248 C9 23
bne SubCD261 ; CPU:$D24A PRG:124A D0 15
lda ZpCF ; CPU:$D24C PRG:124C A5 CF
bmi SubCD25B ; CPU:$D24E PRG:124E 30 0B
tax ; CPU:$D250 PRG:1250 AA
ora #$80 ; CPU:$D251 PRG:1251 09 80
sta ZpCF ; CPU:$D253 PRG:1253 85 CF
lda $D9C2,x ; CPU:$D255 PRG:1255 BD C2 D9
jsr UpdateMusicChannel15 ; CPU:$D258 PRG:1258 20 3D EE
; -----------------------------------------------------------------------------
; Routine: SubCD25B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD25B:
lda #$00 ; CPU:$D25B PRG:125B A9 00
ldy #$04 ; CPU:$D25D PRG:125D A0 04
bne CheckCollision ; CPU:$D25F PRG:125F D0 35
; -----------------------------------------------------------------------------
; Routine: SubCD261
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD261:
cmp #$A6 ; CPU:$D261 PRG:1261 C9 A6
bcc CheckFlipperHit ; CPU:$D263 PRG:1263 90 7F
cmp #$AE ; CPU:$D265 PRG:1265 C9 AE
bcc SubCD271 ; CPU:$D267 PRG:1267 90 08
cmp #$DD ; CPU:$D269 PRG:1269 C9 DD
bcc CheckFlipperHit ; CPU:$D26B PRG:126B 90 77
cmp #$E5 ; CPU:$D26D PRG:126D C9 E5
bcs CheckFlipperHit ; CPU:$D26F PRG:126F B0 73
; -----------------------------------------------------------------------------
; Routine: SubCD271
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD271:
lda ZpBF ; CPU:$D271 PRG:1271 A5 BF
beq SubCD288 ; CPU:$D273 PRG:1273 F0 13
tay ; CPU:$D275 PRG:1275 A8
iny ; CPU:$D276 PRG:1276 C8
lda #$02 ; CPU:$D277 PRG:1277 A9 02
sta ZpFF ; CPU:$D279 PRG:1279 85 FF
jsr CheckTiltSwitch ; CPU:$D27B PRG:127B 20 86 D3
txa ; CPU:$D27E PRG:127E 8A
cpy #$03 ; CPU:$D27F PRG:127F C0 03
beq CheckCollision ; CPU:$D281 PRG:1281 F0 13
pha ; CPU:$D283 PRG:1283 48
sty Zp32 ; CPU:$D284 PRG:1284 84 32
bne SubCD2B8 ; CPU:$D286 PRG:1286 D0 30
; -----------------------------------------------------------------------------
; Routine: SubCD288
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD288:
lda ZpD1 ; CPU:$D288 PRG:1288 A5 D1
ora #$01 ; CPU:$D28A PRG:128A 09 01
sta ZpD1 ; CPU:$D28C PRG:128C 85 D1
lda #$0A ; CPU:$D28E PRG:128E A9 0A
jsr UpdateMusicChannel15 ; CPU:$D290 PRG:1290 20 3D EE
jmp CheckFlipperHit ; CPU:$D293 PRG:1293 4C E4 D2
; -----------------------------------------------------------------------------
; Routine: CheckCollision
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckCollision:
sty Zp32 ; CPU:$D296 PRG:1296 84 32
pha ; CPU:$D298 PRG:1298 48
lda #$3F ; CPU:$D299 PRG:1299 A9 3F
ldx Zp30 ; CPU:$D29B PRG:129B A6 30
inx ; CPU:$D29D PRG:129D E8
cpx #$03 ; CPU:$D29E PRG:129E E0 03
bcc SubCD2A3 ; CPU:$D2A0 PRG:12A0 90 01
lsr a ; CPU:$D2A2 PRG:12A2 4A
; -----------------------------------------------------------------------------
; Routine: SubCD2A3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD2A3:
sta ZpE3 ; CPU:$D2A3 PRG:12A3 85 E3
jsr UpdateGameMode ; CPU:$D2A5 PRG:12A5 20 E2 E3
and ZpE3 ; CPU:$D2A8 PRG:12A8 25 E3
lsr ZpE3 ; CPU:$D2AA PRG:12AA 46 E3
sbc ZpE3 ; CPU:$D2AC PRG:12AC E5 E3
adc Zp33 ; CPU:$D2AE PRG:12AE 65 33
beq SubCD2B8 ; CPU:$D2B0 PRG:12B0 F0 06
cmp #$7F ; CPU:$D2B2 PRG:12B2 C9 7F
bcs SubCD2B8 ; CPU:$D2B4 PRG:12B4 B0 02
sta Zp33 ; CPU:$D2B6 PRG:12B6 85 33
; -----------------------------------------------------------------------------
; Routine: SubCD2B8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD2B8:
jsr UpdateBallPosition_3 ; CPU:$D2B8 PRG:12B8 20 59 D1
ldy Zp32 ; CPU:$D2BB PRG:12BB A4 32
ldx $D9CC,y ; CPU:$D2BD PRG:12BD BE CC D9
cpx Zp36 ; CPU:$D2C0 PRG:12C0 E4 36
pla ; CPU:$D2C2 PRG:12C2 68
bcs SubCD2E7 ; CPU:$D2C3 PRG:12C3 B0 22
adc $D9D1,y ; CPU:$D2C5 PRG:12C5 79 D1 D9
tax ; CPU:$D2C8 PRG:12C8 AA
lda #$FF ; CPU:$D2C9 PRG:12C9 A9 FF
sta Zp00,x ; CPU:$D2CB PRG:12CB 95 00
lda $D9D6,y ; CPU:$D2CD PRG:12CD B9 D6 D9
jsr UpdateMusicChannel15 ; CPU:$D2D0 PRG:12D0 20 3D EE
ldy Zp32 ; CPU:$D2D3 PRG:12D3 A4 32
lda $D9DB,y ; CPU:$D2D5 PRG:12D5 B9 DB D9
lsr Zp36 ; CPU:$D2D8 PRG:12D8 46 36
adc Zp36 ; CPU:$D2DA PRG:12DA 65 36
bcc SubCD2E0 ; CPU:$D2DC PRG:12DC 90 02
lda #$7F ; CPU:$D2DE PRG:12DE A9 7F
; -----------------------------------------------------------------------------
; Routine: SubCD2E0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD2E0:
sta Zp36 ; CPU:$D2E0 PRG:12E0 85 36
bne CheckBallPocket ; CPU:$D2E2 PRG:12E2 D0 05
; -----------------------------------------------------------------------------
; Routine: CheckFlipperHit
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckFlipperHit:
jsr UpdateBallPosition_3 ; CPU:$D2E4 PRG:12E4 20 59 D1
; -----------------------------------------------------------------------------
; Routine: SubCD2E7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD2E7:
lsr Zp36 ; CPU:$D2E7 PRG:12E7 46 36
; -----------------------------------------------------------------------------
; Routine: CheckBallPocket
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckBallPocket:
jsr CheckBallVelocity ; CPU:$D2E9 PRG:12E9 20 34 D3
lda Zp36 ; CPU:$D2EC PRG:12EC A5 36
sta Zp06 ; CPU:$D2EE PRG:12EE 85 06
lda Zp38 ; CPU:$D2F0 PRG:12F0 A5 38
jsr UpdateBumperState10 ; CPU:$D2F2 PRG:12F2 20 8F DD
jsr UpdateBumperChain2 ; CPU:$D2F5 PRG:12F5 20 32 DD
jsr UpdateBumperState16 ; CPU:$D2F8 PRG:12F8 20 F1 DD
lda Zp37 ; CPU:$D2FB PRG:12FB A5 37
sta Zp06 ; CPU:$D2FD PRG:12FD 85 06
lda Zp39 ; CPU:$D2FF PRG:12FF A5 39
jsr UpdateBumperState10 ; CPU:$D301 PRG:1301 20 8F DD
jsr UpdateBumperChain2 ; CPU:$D304 PRG:1304 20 32 DD
lda Zp06 ; CPU:$D307 PRG:1307 A5 06
clc ; CPU:$D309 PRG:1309 18
adc Zp0A ; CPU:$D30A PRG:130A 65 0A
pha ; CPU:$D30C PRG:130C 48
lda Zp36 ; CPU:$D30D PRG:130D A5 36
sta Zp06 ; CPU:$D30F PRG:130F 85 06
lda Zp38 ; CPU:$D311 PRG:1311 A5 38
jsr UpdateBumperState11 ; CPU:$D313 PRG:1313 20 92 DD
jsr UpdateBumperChain2 ; CPU:$D316 PRG:1316 20 32 DD
jsr UpdateBumperState16 ; CPU:$D319 PRG:1319 20 F1 DD
lda Zp37 ; CPU:$D31C PRG:131C A5 37
sta Zp06 ; CPU:$D31E PRG:131E 85 06
lda Zp39 ; CPU:$D320 PRG:1320 A5 39
jsr UpdateBumperState11 ; CPU:$D322 PRG:1322 20 92 DD
jsr UpdateBumperChain2 ; CPU:$D325 PRG:1325 20 32 DD
lda Zp06 ; CPU:$D328 PRG:1328 A5 06
clc ; CPU:$D32A PRG:132A 18
adc Zp0A ; CPU:$D32B PRG:132B 65 0A
sta Zp08 ; CPU:$D32D PRG:132D 85 08
pla ; CPU:$D32F PRG:132F 68
sta Zp06 ; CPU:$D330 PRG:1330 85 06
clc ; CPU:$D332 PRG:1332 18
rts ; CPU:$D333 PRG:1333 60
; -----------------------------------------------------------------------------
; Routine: CheckBallVelocity
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckBallVelocity:
lda #$7F ; CPU:$D334 PRG:1334 A9 7F
cmp Zp36 ; CPU:$D336 PRG:1336 C5 36
bcs SubCD33C ; CPU:$D338 PRG:1338 B0 02
sta Zp36 ; CPU:$D33A PRG:133A 85 36
; -----------------------------------------------------------------------------
; Routine: SubCD33C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD33C:
ldx Zp37 ; CPU:$D33C PRG:133C A6 37
lda #$01 ; CPU:$D33E PRG:133E A9 01
sec ; CPU:$D340 PRG:1340 38
sbc $0300,x ; CPU:$D341 PRG:1341 FD 00 03
sta Zp06 ; CPU:$D344 PRG:1344 85 06
lda #$3F ; CPU:$D346 PRG:1346 A9 3F
sbc $DE87,x ; CPU:$D348 PRG:1348 FD 87 DE
sta Zp07 ; CPU:$D34B PRG:134B 85 07
jsr UpdateBumperState2 ; CPU:$D34D PRG:134D 20 0D DC
lda Zp06 ; CPU:$D350 PRG:1350 A5 06
cmp Zp36 ; CPU:$D352 PRG:1352 C5 36
bcs SubCD358 ; CPU:$D354 PRG:1354 B0 02
sta Zp36 ; CPU:$D356 PRG:1356 85 36
; -----------------------------------------------------------------------------
; Routine: SubCD358
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD358:
rts ; CPU:$D358 PRG:1358 60
; -----------------------------------------------------------------------------
; Routine: CheckBallPosition
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckBallPosition:
lda Zp06 ; CPU:$D359 PRG:1359 A5 06
bmi SubCD365 ; CPU:$D35B PRG:135B 30 08
cmp #$3F ; CPU:$D35D PRG:135D C9 3F
bcc SubCD36D ; CPU:$D35F PRG:135F 90 0C
lda #$3F ; CPU:$D361 PRG:1361 A9 3F
bne SubCD36B ; CPU:$D363 PRG:1363 D0 06
; -----------------------------------------------------------------------------
; Routine: SubCD365
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD365:
cmp #$C1 ; CPU:$D365 PRG:1365 C9 C1
bcs SubCD36D ; CPU:$D367 PRG:1367 B0 04
lda #$C1 ; CPU:$D369 PRG:1369 A9 C1
; -----------------------------------------------------------------------------
; Routine: SubCD36B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD36B:
sta Zp06 ; CPU:$D36B PRG:136B 85 06
; -----------------------------------------------------------------------------
; Routine: SubCD36D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD36D:
lda Zp08 ; CPU:$D36D PRG:136D A5 08
bmi SubCD379 ; CPU:$D36F PRG:136F 30 08
cmp #$3F ; CPU:$D371 PRG:1371 C9 3F
bcc SubCD381 ; CPU:$D373 PRG:1373 90 0C
lda #$3F ; CPU:$D375 PRG:1375 A9 3F
bne SubCD37F ; CPU:$D377 PRG:1377 D0 06
; -----------------------------------------------------------------------------
; Routine: SubCD379
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD379:
cmp #$C1 ; CPU:$D379 PRG:1379 C9 C1
bcs SubCD381 ; CPU:$D37B PRG:137B B0 04
lda #$C1 ; CPU:$D37D PRG:137D A9 C1
; -----------------------------------------------------------------------------
; Routine: SubCD37F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD37F:
sta Zp08 ; CPU:$D37F PRG:137F 85 08
; -----------------------------------------------------------------------------
; Routine: SubCD381
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD381:
jsr UpdateSoundChannel3_E9ED_1 ; CPU:$D381 PRG:1381 20 75 DE
clc ; CPU:$D384 PRG:1384 18
rts ; CPU:$D385 PRG:1385 60
; -----------------------------------------------------------------------------
; Routine: CheckTiltSwitch
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckTiltSwitch:
ldx #$00 ; CPU:$D386 PRG:1386 A2 00
lda Zp07 ; CPU:$D388 PRG:1388 A5 07
cmp #$90 ; CPU:$D38A PRG:138A C9 90
bcc SubCD38F ; CPU:$D38C PRG:138C 90 01
inx ; CPU:$D38E PRG:138E E8
; -----------------------------------------------------------------------------
; Routine: SubCD38F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD38F:
rts ; CPU:$D38F PRG:138F 60
; -----------------------------------------------------------------------------
; Routine: DrawScore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DrawScore:
jsr SubCDFE8 ; CPU:$D390 PRG:1390 20 E8 DF
ldy #$00 ; CPU:$D393 PRG:1393 A0 00
lda (ZpDB),y ; CPU:$D395 PRG:1395 B1 DB
jsr ReadPPUData_3 ; CPU:$D397 PRG:1397 20 A1 D4
ldy ZpB5 ; CPU:$D39A PRG:139A A4 B5
lda (ZpDF),y ; CPU:$D39C PRG:139C B1 DF
ldx ZpB4 ; CPU:$D39E PRG:139E A6 B4
ldy #$00 ; CPU:$D3A0 PRG:13A0 A0 00
and $D7DD,x ; CPU:$D3A2 PRG:13A2 3D DD D7
beq SubCD3A8 ; CPU:$D3A5 PRG:13A5 F0 01
dey ; CPU:$D3A7 PRG:13A7 88
; -----------------------------------------------------------------------------
; Routine: SubCD3A8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD3A8:
tya ; CPU:$D3A8 PRG:13A8 98
rts ; CPU:$D3A9 PRG:13A9 60
; -----------------------------------------------------------------------------
; Routine: UpdateScoreDisplay_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateScoreDisplay_3:
lda #$00 ; CPU:$D3AA PRG:13AA A9 00
sta Zp2C ; CPU:$D3AC PRG:13AC 85 2C
jsr SubCDDB5 ; CPU:$D3AE PRG:13AE 20 B5 DD
jsr SubCDFE8 ; CPU:$D3B1 PRG:13B1 20 E8 DF
lda ZpB4 ; CPU:$D3B4 PRG:13B4 A5 B4
sta Zp3A ; CPU:$D3B6 PRG:13B6 85 3A
lda ZpB5 ; CPU:$D3B8 PRG:13B8 A5 B5
sta Zp3B ; CPU:$D3BA PRG:13BA 85 3B
jsr UpdateBumperHit4 ; CPU:$D3BC PRG:13BC 20 BE DD
ldx #$DD ; CPU:$D3BF PRG:13BF A2 DD
jsr SubCDFEA ; CPU:$D3C1 PRG:13C1 20 EA DF
lda ZpB4 ; CPU:$D3C4 PRG:13C4 A5 B4
sta Zp3C ; CPU:$D3C6 PRG:13C6 85 3C
lda ZpB5 ; CPU:$D3C8 PRG:13C8 A5 B5
sta Zp3D ; CPU:$D3CA PRG:13CA 85 3D
; -----------------------------------------------------------------------------
; Routine: UpdateScoreDigits
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateScoreDigits:
jsr ReadPPUData2 ; CPU:$D3CC PRG:13CC 20 B9 D4
ldy Zp3B ; CPU:$D3CF PRG:13CF A4 3B
lda Zp2B ; CPU:$D3D1 PRG:13D1 A5 2B
cmp #$02 ; CPU:$D3D3 PRG:13D3 C9 02
bcs SubCD441 ; CPU:$D3D5 PRG:13D5 B0 6A
lda (ZpDF),y ; CPU:$D3D7 PRG:13D7 B1 DF
sta Zp3E ; CPU:$D3D9 PRG:13D9 85 3E
ldy Zp3D ; CPU:$D3DB PRG:13DB A4 3D
lda (ZpE1),y ; CPU:$D3DD PRG:13DD B1 E1
sta Zp3F ; CPU:$D3DF PRG:13DF 85 3F
ldx Zp3A ; CPU:$D3E1 PRG:13E1 A6 3A
lda Zp2B ; CPU:$D3E3 PRG:13E3 A5 2B
bne SubCD40F ; CPU:$D3E5 PRG:13E5 D0 28
txa ; CPU:$D3E7 PRG:13E7 8A
beq SubCD3F4 ; CPU:$D3E8 PRG:13E8 F0 0A
; -----------------------------------------------------------------------------
; Routine: SubCD3EA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD3EA:
asl Zp3E ; CPU:$D3EA PRG:13EA 06 3E
asl Zp3F ; CPU:$D3EC PRG:13EC 06 3F
dex ; CPU:$D3EE PRG:13EE CA
bne SubCD3EA ; CPU:$D3EF PRG:13EF D0 F9
txa ; CPU:$D3F1 PRG:13F1 8A
ldx Zp3A ; CPU:$D3F2 PRG:13F2 A6 3A
; -----------------------------------------------------------------------------
; Routine: SubCD3F4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD3F4:
inc Zp2C ; CPU:$D3F4 PRG:13F4 E6 2C
asl Zp3E ; CPU:$D3F6 PRG:13F6 06 3E
rol a ; CPU:$D3F8 PRG:13F8 2A
asl Zp3F ; CPU:$D3F9 PRG:13F9 06 3F
adc #$00 ; CPU:$D3FB PRG:13FB 69 00
lsr a ; CPU:$D3FD PRG:13FD 4A
bcc SubCD42A ; CPU:$D3FE PRG:13FE 90 2A
dec Zp2A ; CPU:$D400 PRG:1400 C6 2A
beq SubCD42E ; CPU:$D402 PRG:1402 F0 2A
cpx #$07 ; CPU:$D404 PRG:1404 E0 07
beq SubCD40B ; CPU:$D406 PRG:1406 F0 03
inx ; CPU:$D408 PRG:1408 E8
bne SubCD3F4 ; CPU:$D409 PRG:1409 D0 E9
; -----------------------------------------------------------------------------
; Routine: SubCD40B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD40B:
ldx #$00 ; CPU:$D40B PRG:140B A2 00
beq SubCD439 ; CPU:$D40D PRG:140D F0 2A
; -----------------------------------------------------------------------------
; Routine: SubCD40F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD40F:
cpx #$07 ; CPU:$D40F PRG:140F E0 07
beq SubCD41E ; CPU:$D411 PRG:1411 F0 0B
; -----------------------------------------------------------------------------
; Routine: SubCD413
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD413:
lsr Zp3E ; CPU:$D413 PRG:1413 46 3E
lsr Zp3F ; CPU:$D415 PRG:1415 46 3F
inx ; CPU:$D417 PRG:1417 E8
cpx #$07 ; CPU:$D418 PRG:1418 E0 07
bne SubCD413 ; CPU:$D41A PRG:141A D0 F7
ldx Zp3A ; CPU:$D41C PRG:141C A6 3A
; -----------------------------------------------------------------------------
; Routine: SubCD41E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD41E:
lda #$00 ; CPU:$D41E PRG:141E A9 00
; -----------------------------------------------------------------------------
; Routine: SubCD420
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD420:
inc Zp2C ; CPU:$D420 PRG:1420 E6 2C
lsr Zp3E ; CPU:$D422 PRG:1422 46 3E
rol a ; CPU:$D424 PRG:1424 2A
lsr Zp3F ; CPU:$D425 PRG:1425 46 3F
adc #$00 ; CPU:$D427 PRG:1427 69 00
lsr a ; CPU:$D429 PRG:1429 4A
; -----------------------------------------------------------------------------
; Routine: SubCD42A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD42A:
bcc SubCD499 ; CPU:$D42A PRG:142A 90 6D
dec Zp2A ; CPU:$D42C PRG:142C C6 2A
; -----------------------------------------------------------------------------
; Routine: SubCD42E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD42E:
beq SubCD497 ; CPU:$D42E PRG:142E F0 67
cpx #$00 ; CPU:$D430 PRG:1430 E0 00
beq SubCD437 ; CPU:$D432 PRG:1432 F0 03
dex ; CPU:$D434 PRG:1434 CA
bpl SubCD420 ; CPU:$D435 PRG:1435 10 E9
; -----------------------------------------------------------------------------
; Routine: SubCD437
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD437:
ldx #$07 ; CPU:$D437 PRG:1437 A2 07
; -----------------------------------------------------------------------------
; Routine: SubCD439
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD439:
stx Zp3A ; CPU:$D439 PRG:1439 86 3A
jsr UpdateScoreDisplay2 ; CPU:$D43B PRG:143B 20 CF D4
jmp UpdateScoreDigits ; CPU:$D43E PRG:143E 4C CC D3
; -----------------------------------------------------------------------------
; Routine: SubCD441
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD441:
cmp #$02 ; CPU:$D441 PRG:1441 C9 02
bne SubCD46A ; CPU:$D443 PRG:1443 D0 25
; -----------------------------------------------------------------------------
; Routine: SubCD445
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD445:
inc Zp2C ; CPU:$D445 PRG:1445 E6 2C
ldx Zp3A ; CPU:$D447 PRG:1447 A6 3A
lda (ZpDF),y ; CPU:$D449 PRG:1449 B1 DF
and $D7DD,x ; CPU:$D44B PRG:144B 3D DD D7
php ; CPU:$D44E PRG:144E 08
ldx Zp3C ; CPU:$D44F PRG:144F A6 3C
lda (ZpE1),y ; CPU:$D451 PRG:1451 B1 E1
and $D7DD,x ; CPU:$D453 PRG:1453 3D DD D7
bne SubCD45C ; CPU:$D456 PRG:1456 D0 04
plp ; CPU:$D458 PRG:1458 28
beq SubCD499 ; CPU:$D459 PRG:1459 F0 3E
php ; CPU:$D45B PRG:145B 08
; -----------------------------------------------------------------------------
; Routine: SubCD45C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD45C:
plp ; CPU:$D45C PRG:145C 28
bne SubCD499 ; CPU:$D45D PRG:145D D0 3A
dec Zp2A ; CPU:$D45F PRG:145F C6 2A
beq SubCD497 ; CPU:$D461 PRG:1461 F0 34
dey ; CPU:$D463 PRG:1463 88
bpl SubCD445 ; CPU:$D464 PRG:1464 10 DF
ldy #$07 ; CPU:$D466 PRG:1466 A0 07
bne SubCD48F ; CPU:$D468 PRG:1468 D0 25
; -----------------------------------------------------------------------------
; Routine: SubCD46A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD46A:
inc Zp2C ; CPU:$D46A PRG:146A E6 2C
ldx Zp3A ; CPU:$D46C PRG:146C A6 3A
lda (ZpDF),y ; CPU:$D46E PRG:146E B1 DF
and $D7DD,x ; CPU:$D470 PRG:1470 3D DD D7
php ; CPU:$D473 PRG:1473 08
ldx Zp3C ; CPU:$D474 PRG:1474 A6 3C
lda (ZpE1),y ; CPU:$D476 PRG:1476 B1 E1
and $D7DD,x ; CPU:$D478 PRG:1478 3D DD D7
bne SubCD481 ; CPU:$D47B PRG:147B D0 04
plp ; CPU:$D47D PRG:147D 28
beq SubCD499 ; CPU:$D47E PRG:147E F0 19
php ; CPU:$D480 PRG:1480 08
; -----------------------------------------------------------------------------
; Routine: SubCD481
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD481:
plp ; CPU:$D481 PRG:1481 28
bne SubCD499 ; CPU:$D482 PRG:1482 D0 15
dec Zp2A ; CPU:$D484 PRG:1484 C6 2A
beq SubCD497 ; CPU:$D486 PRG:1486 F0 0F
iny ; CPU:$D488 PRG:1488 C8
cpy #$08 ; CPU:$D489 PRG:1489 C0 08
bne SubCD46A ; CPU:$D48B PRG:148B D0 DD
ldy #$00 ; CPU:$D48D PRG:148D A0 00
; -----------------------------------------------------------------------------
; Routine: SubCD48F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD48F:
sty Zp3B ; CPU:$D48F PRG:148F 84 3B
jsr UpdateScoreDisplay2 ; CPU:$D491 PRG:1491 20 CF D4
jmp UpdateScoreDigits ; CPU:$D494 PRG:1494 4C CC D3
; -----------------------------------------------------------------------------
; Routine: SubCD497
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD497:
lda #$00 ; CPU:$D497 PRG:1497 A9 00
; -----------------------------------------------------------------------------
; Routine: SubCD499
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD499:
ldx #$00 ; CPU:$D499 PRG:1499 A2 00
tay ; CPU:$D49B PRG:149B A8
beq SubCD49F ; CPU:$D49C PRG:149C F0 01
dex ; CPU:$D49E PRG:149E CA
; -----------------------------------------------------------------------------
; Routine: SubCD49F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD49F:
txa ; CPU:$D49F PRG:149F 8A
rts ; CPU:$D4A0 PRG:14A0 60
; -----------------------------------------------------------------------------
; Routine: ReadPPUData_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ReadPPUData_3:
ldy #$00 ; CPU:$D4A1 PRG:14A1 A0 00
sty ZpE0 ; CPU:$D4A3 PRG:14A3 84 E0
asl a ; CPU:$D4A5 PRG:14A5 0A
rol ZpE0 ; CPU:$D4A6 PRG:14A6 26 E0
asl a ; CPU:$D4A8 PRG:14A8 0A
rol ZpE0 ; CPU:$D4A9 PRG:14A9 26 E0
asl a ; CPU:$D4AB PRG:14AB 0A
rol ZpE0 ; CPU:$D4AC PRG:14AC 26 E0
adc #$B4 ; CPU:$D4AE PRG:14AE 69 B4
sta ZpDF ; CPU:$D4B0 PRG:14B0 85 DF
lda ZpE0 ; CPU:$D4B2 PRG:14B2 A5 E0
adc #$F3 ; CPU:$D4B4 PRG:14B4 69 F3
sta ZpE0 ; CPU:$D4B6 PRG:14B6 85 E0
rts ; CPU:$D4B8 PRG:14B8 60
; -----------------------------------------------------------------------------
; Routine: ReadPPUData2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ReadPPUData2:
ldy #$00 ; CPU:$D4B9 PRG:14B9 A0 00
lda (ZpDD),y ; CPU:$D4BB PRG:14BB B1 DD
jsr ReadPPUData_3 ; CPU:$D4BD PRG:14BD 20 A1 D4
lda ZpDF ; CPU:$D4C0 PRG:14C0 A5 DF
sta ZpE1 ; CPU:$D4C2 PRG:14C2 85 E1
lda ZpE0 ; CPU:$D4C4 PRG:14C4 A5 E0
sta ZpE2 ; CPU:$D4C6 PRG:14C6 85 E2
ldy #$00 ; CPU:$D4C8 PRG:14C8 A0 00
lda (ZpDB),y ; CPU:$D4CA PRG:14CA B1 DB
jmp ReadPPUData_3 ; CPU:$D4CC PRG:14CC 4C A1 D4
; -----------------------------------------------------------------------------
; Routine: UpdateScoreDisplay2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateScoreDisplay2:
ldx Zp2B ; CPU:$D4CF PRG:14CF A6 2B
lda ZpDB ; CPU:$D4D1 PRG:14D1 A5 DB
clc ; CPU:$D4D3 PRG:14D3 18
adc $D7E5,x ; CPU:$D4D4 PRG:14D4 7D E5 D7
sta ZpDB ; CPU:$D4D7 PRG:14D7 85 DB
lda ZpDC ; CPU:$D4D9 PRG:14D9 A5 DC
adc $D7E9,x ; CPU:$D4DB PRG:14DB 7D E9 D7
sta ZpDC ; CPU:$D4DE PRG:14DE 85 DC
lda ZpDD ; CPU:$D4E0 PRG:14E0 A5 DD
clc ; CPU:$D4E2 PRG:14E2 18
adc $D7E5,x ; CPU:$D4E3 PRG:14E3 7D E5 D7
sta ZpDD ; CPU:$D4E6 PRG:14E6 85 DD
lda ZpDE ; CPU:$D4E8 PRG:14E8 A5 DE
adc $D7E9,x ; CPU:$D4EA PRG:14EA 7D E9 D7
sta ZpDE ; CPU:$D4ED PRG:14ED 85 DE
rts ; CPU:$D4EF PRG:14EF 60
; -----------------------------------------------------------------------------
; Routine: UpdateFlippers_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateFlippers_3:
jsr UpdateSoundEngine ; CPU:$D4F0 PRG:14F0 20 30 DE
jsr CheckTiltSwitch ; CPU:$D4F3 PRG:14F3 20 86 D3
stx Zp3A ; CPU:$D4F6 PRG:14F6 86 3A
lda ZpBF ; CPU:$D4F8 PRG:14F8 A5 BF
asl a ; CPU:$D4FA PRG:14FA 0A
adc Zp3A ; CPU:$D4FB PRG:14FB 65 3A
sta Zp3B ; CPU:$D4FD PRG:14FD 85 3B
txa ; CPU:$D4FF PRG:14FF 8A
eor #$01 ; CPU:$D500 PRG:1500 49 01
tax ; CPU:$D502 PRG:1502 AA
lda #$00 ; CPU:$D503 PRG:1503 A9 00
sta ZpC7,x ; CPU:$D505 PRG:1505 95 C7
ldx Zp3A ; CPU:$D507 PRG:1507 A6 3A
ldy ZpC0,x ; CPU:$D509 PRG:1509 B4 C0
sty Zp3E ; CPU:$D50B PRG:150B 84 3E
ldx Zp3B ; CPU:$D50D PRG:150D A6 3B
lda $D9EA,x ; CPU:$D50F PRG:150F BD EA D9
clc ; CPU:$D512 PRG:1512 18
adc $D9EE,y ; CPU:$D513 PRG:1513 79 EE D9
clc ; CPU:$D516 PRG:1516 18
adc $DA4E,y ; CPU:$D517 PRG:1517 79 4E DA
sta Zp0C ; CPU:$D51A PRG:151A 85 0C
sec ; CPU:$D51C PRG:151C 38
sbc Zp09 ; CPU:$D51D PRG:151D E5 09
bpl SubCD528 ; CPU:$D51F PRG:151F 10 07
sta Zp10 ; CPU:$D521 PRG:1521 85 10
lda #$00 ; CPU:$D523 PRG:1523 A9 00
sec ; CPU:$D525 PRG:1525 38
sbc Zp10 ; CPU:$D526 PRG:1526 E5 10
; -----------------------------------------------------------------------------
; Routine: SubCD528
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD528:
cmp #$07 ; CPU:$D528 PRG:1528 C9 07
bcc SubCD52F ; CPU:$D52A PRG:152A 90 03
jmp UpdateFlipperState ; CPU:$D52C PRG:152C 4C D1 D5
; -----------------------------------------------------------------------------
; Routine: SubCD52F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD52F:
sta Zp08 ; CPU:$D52F PRG:152F 85 08
lda $D9E0,x ; CPU:$D531 PRG:1531 BD E0 D9
clc ; CPU:$D534 PRG:1534 18
ldx Zp3A ; CPU:$D535 PRG:1535 A6 3A
bne SubCD53E ; CPU:$D537 PRG:1537 D0 05
adc $DA1E,y ; CPU:$D539 PRG:1539 79 1E DA
bcc SubCD544 ; CPU:$D53C PRG:153C 90 06
; -----------------------------------------------------------------------------
; Routine: SubCD53E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD53E:
adc #$1F ; CPU:$D53E PRG:153E 69 1F
sec ; CPU:$D540 PRG:1540 38
sbc $DA1E,y ; CPU:$D541 PRG:1541 F9 1E DA
; -----------------------------------------------------------------------------
; Routine: SubCD544
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD544:
sta Zp0A ; CPU:$D544 PRG:1544 85 0A
sec ; CPU:$D546 PRG:1546 38
sbc Zp07 ; CPU:$D547 PRG:1547 E5 07
tax ; CPU:$D549 PRG:1549 AA
bpl SubCD553 ; CPU:$D54A PRG:154A 10 07
sta Zp0E ; CPU:$D54C PRG:154C 85 0E
lda #$00 ; CPU:$D54E PRG:154E A9 00
sec ; CPU:$D550 PRG:1550 38
sbc Zp0E ; CPU:$D551 PRG:1551 E5 0E
; -----------------------------------------------------------------------------
; Routine: SubCD553
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD553:
cmp #$07 ; CPU:$D553 PRG:1553 C9 07
bcs UpdateFlipperState ; CPU:$D555 PRG:1555 B0 7A
sta Zp06 ; CPU:$D557 PRG:1557 85 06
txa ; CPU:$D559 PRG:1559 8A
rol a ; CPU:$D55A PRG:155A 2A
rol a ; CPU:$D55B PRG:155B 2A
and #$01 ; CPU:$D55C PRG:155C 29 01
eor Zp3A ; CPU:$D55E PRG:155E 45 3A
beq UpdateFlipperState ; CPU:$D560 PRG:1560 F0 6F
jsr UpdateBumperSprites ; CPU:$D562 PRG:1562 20 FA DB
lda Zp06 ; CPU:$D565 PRG:1565 A5 06
clc ; CPU:$D567 PRG:1567 18
adc Zp08 ; CPU:$D568 PRG:1568 65 08
tax ; CPU:$D56A PRG:156A AA
lda Zp07 ; CPU:$D56B PRG:156B A5 07
clc ; CPU:$D56D PRG:156D 18
adc Zp09 ; CPU:$D56E PRG:156E 65 09
sta Zp07 ; CPU:$D570 PRG:1570 85 07
txa ; CPU:$D572 PRG:1572 8A
cmp #$31 ; CPU:$D573 PRG:1573 C9 31
lda Zp07 ; CPU:$D575 PRG:1575 A5 07
sbc #$00 ; CPU:$D577 PRG:1577 E9 00
bcs UpdateFlipperState ; CPU:$D579 PRG:1579 B0 56
ldx Zp3A ; CPU:$D57B PRG:157B A6 3A
lda ZpC7,x ; CPU:$D57D PRG:157D B5 C7
bne SubCD5D7 ; CPU:$D57F PRG:157F D0 56
jsr UpdateSoundEngine ; CPU:$D581 PRG:1581 20 30 DE
lda Zp07 ; CPU:$D584 PRG:1584 A5 07
sec ; CPU:$D586 PRG:1586 38
sbc Zp0A ; CPU:$D587 PRG:1587 E5 0A
sta Zp06 ; CPU:$D589 PRG:1589 85 06
lda Zp09 ; CPU:$D58B PRG:158B A5 09
sec ; CPU:$D58D PRG:158D 38
sbc Zp0C ; CPU:$D58E PRG:158E E5 0C
sta Zp08 ; CPU:$D590 PRG:1590 85 08
jsr UpdateBumperHit2 ; CPU:$D592 PRG:1592 20 3E DC
sec ; CPU:$D595 PRG:1595 38
sbc #$40 ; CPU:$D596 PRG:1596 E9 40
sta Zp30 ; CPU:$D598 PRG:1598 85 30
jsr UpdateBallDirection ; CPU:$D59A PRG:159A 20 39 D7
sec ; CPU:$D59D PRG:159D 38
sbc Zp30 ; CPU:$D59E PRG:159E E5 30
jsr UpdateBumperState8 ; CPU:$D5A0 PRG:15A0 20 75 DD
lsr a ; CPU:$D5A3 PRG:15A3 4A
lsr a ; CPU:$D5A4 PRG:15A4 4A
lsr a ; CPU:$D5A5 PRG:15A5 4A
sta Zp3F ; CPU:$D5A6 PRG:15A6 85 3F
lda Zp30 ; CPU:$D5A8 PRG:15A8 A5 30
jsr CheckFlipperPressed ; CPU:$D5AA PRG:15AA 20 C1 D5
lda #$00 ; CPU:$D5AD PRG:15AD A9 00
sta Zp3C ; CPU:$D5AF PRG:15AF 85 3C
lda #$02 ; CPU:$D5B1 PRG:15B1 A9 02
sta Zp31 ; CPU:$D5B3 PRG:15B3 85 31
jsr UpdateBallVelocity ; CPU:$D5B5 PRG:15B5 20 A8 D6
bcs SubCD5D7 ; CPU:$D5B8 PRG:15B8 B0 1D
ldx Zp3A ; CPU:$D5BA PRG:15BA A6 3A
lda Zp40 ; CPU:$D5BC PRG:15BC A5 40
sta ZpC7,x ; CPU:$D5BE PRG:15BE 95 C7
rts ; CPU:$D5C0 PRG:15C0 60
; -----------------------------------------------------------------------------
; Routine: CheckFlipperPressed
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckFlipperPressed:
ldx #$04 ; CPU:$D5C1 PRG:15C1 A2 04
; -----------------------------------------------------------------------------
; Routine: SubCD5C3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD5C3:
cmp $DAD5,x ; CPU:$D5C3 PRG:15C3 DD D5 DA
bcs SubCD5CB ; CPU:$D5C6 PRG:15C6 B0 03
dex ; CPU:$D5C8 PRG:15C8 CA
bpl SubCD5C3 ; CPU:$D5C9 PRG:15C9 10 F8
; -----------------------------------------------------------------------------
; Routine: SubCD5CB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD5CB:
lda $DADA,x ; CPU:$D5CB PRG:15CB BD DA DA
sta Zp25 ; CPU:$D5CE PRG:15CE 85 25
rts ; CPU:$D5D0 PRG:15D0 60
; -----------------------------------------------------------------------------
; Routine: UpdateFlipperState
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateFlipperState:
ldx Zp3A ; CPU:$D5D1 PRG:15D1 A6 3A
lda #$00 ; CPU:$D5D3 PRG:15D3 A9 00
sta ZpC7,x ; CPU:$D5D5 PRG:15D5 95 C7
; -----------------------------------------------------------------------------
; Routine: SubCD5D7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD5D7:
jsr UpdateSoundEngine ; CPU:$D5D7 PRG:15D7 20 30 DE
ldx Zp3B ; CPU:$D5DA PRG:15DA A6 3B
lda Zp09 ; CPU:$D5DC PRG:15DC A5 09
sec ; CPU:$D5DE PRG:15DE 38
sbc $D9E6,x ; CPU:$D5DF PRG:15DF FD E6 D9
cmp #$28 ; CPU:$D5E2 PRG:15E2 C9 28
bcs SubCD5F0 ; CPU:$D5E4 PRG:15E4 B0 0A
lda Zp07 ; CPU:$D5E6 PRG:15E6 A5 07
sec ; CPU:$D5E8 PRG:15E8 38
sbc $D9E0,x ; CPU:$D5E9 PRG:15E9 FD E0 D9
cmp #$20 ; CPU:$D5EC PRG:15EC C9 20
bcc SubCD5F1 ; CPU:$D5EE PRG:15EE 90 01
; -----------------------------------------------------------------------------
; Routine: SubCD5F0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD5F0:
rts ; CPU:$D5F0 PRG:15F0 60
; -----------------------------------------------------------------------------
; Routine: SubCD5F1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD5F1:
lda #$00 ; CPU:$D5F1 PRG:15F1 A9 00
sta Zp3C ; CPU:$D5F3 PRG:15F3 85 3C
; -----------------------------------------------------------------------------
; Routine: UpdateFlipperSprites_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateFlipperSprites_3:
jsr UpdateSoundEngine ; CPU:$D5F5 PRG:15F5 20 30 DE
lda Zp3A ; CPU:$D5F8 PRG:15F8 A5 3A
asl a ; CPU:$D5FA PRG:15FA 0A
adc Zp3C ; CPU:$D5FB PRG:15FB 65 3C
sta Zp3D ; CPU:$D5FD PRG:15FD 85 3D
ldy Zp3C ; CPU:$D5FF PRG:15FF A4 3C
ldx Zp3A ; CPU:$D601 PRG:1601 A6 3A
lda ZpC0,x ; CPU:$D603 PRG:1603 B5 C0
adc $DA7E,y ; CPU:$D605 PRG:1605 79 7E DA
sta Zp3E ; CPU:$D608 PRG:1608 85 3E
ldx Zp3B ; CPU:$D60A PRG:160A A6 3B
tay ; CPU:$D60C PRG:160C A8
lda Zp07 ; CPU:$D60D PRG:160D A5 07
sec ; CPU:$D60F PRG:160F 38
sbc $D9E0,x ; CPU:$D610 PRG:1610 FD E0 D9
ldx Zp3A ; CPU:$D613 PRG:1613 A6 3A
beq SubCD61A ; CPU:$D615 PRG:1615 F0 03
sec ; CPU:$D617 PRG:1617 38
sbc #$1F ; CPU:$D618 PRG:1618 E9 1F
; -----------------------------------------------------------------------------
; Routine: SubCD61A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD61A:
sta Zp08 ; CPU:$D61A PRG:161A 85 08
sta Zp0F ; CPU:$D61C PRG:161C 85 0F
ldx Zp3B ; CPU:$D61E PRG:161E A6 3B
lda Zp09 ; CPU:$D620 PRG:1620 A5 09
sec ; CPU:$D622 PRG:1622 38
sbc $D9EA,x ; CPU:$D623 PRG:1623 FD EA D9
sec ; CPU:$D626 PRG:1626 38
sbc $D9EE,y ; CPU:$D627 PRG:1627 F9 EE D9
sta Zp10 ; CPU:$D62A PRG:162A 85 10
sta Zp11 ; CPU:$D62C PRG:162C 85 11
ldx Zp3E ; CPU:$D62E PRG:162E A6 3E
sec ; CPU:$D630 PRG:1630 38
ldy Zp3A ; CPU:$D631 PRG:1631 A4 3A
bne SubCD63A ; CPU:$D633 PRG:1633 D0 05
lda $DA1E,x ; CPU:$D635 PRG:1635 BD 1E DA
bcs SubCD63F ; CPU:$D638 PRG:1638 B0 05
; -----------------------------------------------------------------------------
; Routine: SubCD63A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD63A:
lda #$00 ; CPU:$D63A PRG:163A A9 00
sbc $DA1E,x ; CPU:$D63C PRG:163C FD 1E DA
; -----------------------------------------------------------------------------
; Routine: SubCD63F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD63F:
sta Zp0E ; CPU:$D63F PRG:163F 85 0E
lda $DA4E,x ; CPU:$D641 PRG:1641 BD 4E DA
sta Zp06 ; CPU:$D644 PRG:1644 85 06
jsr UpdateBumperState5 ; CPU:$D646 PRG:1646 20 E3 DC
jsr UpdateBumperState16 ; CPU:$D649 PRG:1649 20 F1 DD
jsr UpdateBumperHit4 ; CPU:$D64C PRG:164C 20 BE DD
jsr UpdateBumperState5 ; CPU:$D64F PRG:164F 20 E3 DC
lda Zp06 ; CPU:$D652 PRG:1652 A5 06
sec ; CPU:$D654 PRG:1654 38
sbc Zp0A ; CPU:$D655 PRG:1655 E5 0A
sta Zp06 ; CPU:$D657 PRG:1657 85 06
lda Zp07 ; CPU:$D659 PRG:1659 A5 07
sbc Zp0B ; CPU:$D65B PRG:165B E5 0B
sta Zp07 ; CPU:$D65D PRG:165D 85 07
jsr UpdateBumperState ; CPU:$D65F PRG:165F 20 C8 DB
lda Zp06 ; CPU:$D662 PRG:1662 A5 06
cmp #$E0 ; CPU:$D664 PRG:1664 C9 E0
lda Zp07 ; CPU:$D666 PRG:1666 A5 07
sbc #$00 ; CPU:$D668 PRG:1668 E9 00
bcc SubCD678 ; CPU:$D66A PRG:166A 90 0C
; -----------------------------------------------------------------------------
; Routine: SubCD66C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD66C:
inc Zp3C ; CPU:$D66C PRG:166C E6 3C
lda Zp3C ; CPU:$D66E PRG:166E A5 3C
cmp #$02 ; CPU:$D670 PRG:1670 C9 02
bcs SubCD677 ; CPU:$D672 PRG:1672 B0 03
jmp UpdateFlipperSprites_3 ; CPU:$D674 PRG:1674 4C F5 D5
; -----------------------------------------------------------------------------
; Routine: SubCD677
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD677:
rts ; CPU:$D677 PRG:1677 60
; -----------------------------------------------------------------------------
; Routine: SubCD678
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD678:
jsr UpdateBallDirection ; CPU:$D678 PRG:1678 20 39 D7
sta Zp30 ; CPU:$D67B PRG:167B 85 30
lda Zp0F ; CPU:$D67D PRG:167D A5 0F
sta Zp06 ; CPU:$D67F PRG:167F 85 06
lda Zp11 ; CPU:$D681 PRG:1681 A5 11
sta Zp08 ; CPU:$D683 PRG:1683 85 08
jsr UpdateBumperHit2 ; CPU:$D685 PRG:1685 20 3E DC
sec ; CPU:$D688 PRG:1688 38
sbc Zp30 ; CPU:$D689 PRG:1689 E5 30
cmp #$81 ; CPU:$D68B PRG:168B C9 81
bcs SubCD66C ; CPU:$D68D PRG:168D B0 DD
lda Zp0F ; CPU:$D68F PRG:168F A5 0F
bpl SubCD69A ; CPU:$D691 PRG:1691 10 07
sta Zp06 ; CPU:$D693 PRG:1693 85 06
lda #$00 ; CPU:$D695 PRG:1695 A9 00
sec ; CPU:$D697 PRG:1697 38
sbc Zp06 ; CPU:$D698 PRG:1698 E5 06
; -----------------------------------------------------------------------------
; Routine: SubCD69A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD69A:
tax ; CPU:$D69A PRG:169A AA
lda $DAB2,x ; CPU:$D69B PRG:169B BD B2 DA
sta Zp3F ; CPU:$D69E PRG:169E 85 3F
lda Zp3C ; CPU:$D6A0 PRG:16A0 A5 3C
sta Zp25 ; CPU:$D6A2 PRG:16A2 85 25
lda #$01 ; CPU:$D6A4 PRG:16A4 A9 01
sta Zp31 ; CPU:$D6A6 PRG:16A6 85 31
; -----------------------------------------------------------------------------
; Routine: UpdateBallVelocity
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallVelocity:
ldx Zp3A ; CPU:$D6A8 PRG:16A8 A6 3A
lda ZpC2,x ; CPU:$D6AA PRG:16AA B5 C2
sta Zp40 ; CPU:$D6AC PRG:16AC 85 40
bne SubCD6CB ; CPU:$D6AE PRG:16AE D0 1B
jsr UpdateFlipperSound ; CPU:$D6B0 PRG:16B0 20 E0 D0
bcs SubCD70F ; CPU:$D6B3 PRG:16B3 B0 5A
jsr UpdateBallPosition_3 ; CPU:$D6B5 PRG:16B5 20 59 D1
jsr CheckBallSpeed ; CPU:$D6B8 PRG:16B8 20 30 D7
lda Zp31 ; CPU:$D6BB PRG:16BB A5 31
cmp #$02 ; CPU:$D6BD PRG:16BD C9 02
bne SubCD6C3 ; CPU:$D6BF PRG:16BF D0 02
lsr Zp36 ; CPU:$D6C1 PRG:16C1 46 36
; -----------------------------------------------------------------------------
; Routine: SubCD6C3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD6C3:
lsr Zp36 ; CPU:$D6C3 PRG:16C3 46 36
jsr CheckBallPocket ; CPU:$D6C5 PRG:16C5 20 E9 D2
jmp CheckBallPosition ; CPU:$D6C8 PRG:16C8 4C 59 D3
; -----------------------------------------------------------------------------
; Routine: SubCD6CB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD6CB:
jsr UpdateSoundChannel2_E96A_1 ; CPU:$D6CB PRG:16CB 20 63 DE
jsr UpdateBumperHit2 ; CPU:$D6CE PRG:16CE 20 3E DC
sta Zp34 ; CPU:$D6D1 PRG:16D1 85 34
lda Zp30 ; CPU:$D6D3 PRG:16D3 A5 30
sec ; CPU:$D6D5 PRG:16D5 38
sbc Zp34 ; CPU:$D6D6 PRG:16D6 E5 34
sta Zp33 ; CPU:$D6D8 PRG:16D8 85 33
jsr UpdateSoundChannel2_E96A_1 ; CPU:$D6DA PRG:16DA 20 63 DE
jsr UpdateBumperState4 ; CPU:$D6DD PRG:16DD 20 AA DC
sta Zp35 ; CPU:$D6E0 PRG:16E0 85 35
jsr UpdateBallPosition2 ; CPU:$D6E2 PRG:16E2 20 5B D1
jsr CheckBallSpeed ; CPU:$D6E5 PRG:16E5 20 30 D7
lda Zp36 ; CPU:$D6E8 PRG:16E8 A5 36
lda Zp33 ; CPU:$D6EA PRG:16EA A5 33
bpl SubCD6F5 ; CPU:$D6EC PRG:16EC 10 07
lda #$00 ; CPU:$D6EE PRG:16EE A9 00
sec ; CPU:$D6F0 PRG:16F0 38
sbc Zp36 ; CPU:$D6F1 PRG:16F1 E5 36
sta Zp36 ; CPU:$D6F3 PRG:16F3 85 36
; -----------------------------------------------------------------------------
; Routine: SubCD6F5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD6F5:
lda Zp40 ; CPU:$D6F5 PRG:16F5 A5 40
and #$02 ; CPU:$D6F7 PRG:16F7 29 02
ora Zp3C ; CPU:$D6F9 PRG:16F9 05 3C
tay ; CPU:$D6FB PRG:16FB A8
lda Zp3F ; CPU:$D6FC PRG:16FC A5 3F
ldx $DADE,y ; CPU:$D6FE PRG:16FE BE DE DA
bmi SubCD710 ; CPU:$D701 PRG:1701 30 0D
clc ; CPU:$D703 PRG:1703 18
adc Zp36 ; CPU:$D704 PRG:1704 65 36
bvc SubCD70C ; CPU:$D706 PRG:1706 50 04
lda #$7F ; CPU:$D708 PRG:1708 A9 7F
bne SubCD71F ; CPU:$D70A PRG:170A D0 13
; -----------------------------------------------------------------------------
; Routine: SubCD70C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD70C:
bpl SubCD71F ; CPU:$D70C PRG:170C 10 11
; -----------------------------------------------------------------------------
; Routine: SubCD70E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD70E:
sec ; CPU:$D70E PRG:170E 38
; -----------------------------------------------------------------------------
; Routine: SubCD70F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD70F:
rts ; CPU:$D70F PRG:170F 60
; -----------------------------------------------------------------------------
; Routine: SubCD710
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD710:
sta ZpE3 ; CPU:$D710 PRG:1710 85 E3
lda Zp36 ; CPU:$D712 PRG:1712 A5 36
sec ; CPU:$D714 PRG:1714 38
sbc ZpE3 ; CPU:$D715 PRG:1715 E5 E3
bvs SubCD70E ; CPU:$D717 PRG:1717 70 F5
bmi SubCD70E ; CPU:$D719 PRG:1719 30 F3
lda #$00 ; CPU:$D71B PRG:171B A9 00
beq SubCD728 ; CPU:$D71D PRG:171D F0 09
; -----------------------------------------------------------------------------
; Routine: SubCD71F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD71F:
ldx Zp31 ; CPU:$D71F PRG:171F A6 31
cpx #$02 ; CPU:$D721 PRG:1721 E0 02
bne SubCD726 ; CPU:$D723 PRG:1723 D0 01
lsr a ; CPU:$D725 PRG:1725 4A
; -----------------------------------------------------------------------------
; Routine: SubCD726
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD726:
adc Zp3F ; CPU:$D726 PRG:1726 65 3F
; -----------------------------------------------------------------------------
; Routine: SubCD728
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD728:
sta Zp36 ; CPU:$D728 PRG:1728 85 36
jsr CheckBallPocket ; CPU:$D72A PRG:172A 20 E9 D2
jmp UpdateSoundChannel3_E9ED_1 ; CPU:$D72D PRG:172D 4C 75 DE
; -----------------------------------------------------------------------------
; Routine: CheckBallSpeed
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckBallSpeed:
lda Zp35 ; CPU:$D730 PRG:1730 A5 35
cmp #$0F ; CPU:$D732 PRG:1732 C9 0F
bcc SubCD738 ; CPU:$D734 PRG:1734 90 02
lsr Zp37 ; CPU:$D736 PRG:1736 46 37
; -----------------------------------------------------------------------------
; Routine: SubCD738
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD738:
rts ; CPU:$D738 PRG:1738 60
; -----------------------------------------------------------------------------
; Routine: UpdateBallDirection
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallDirection:
ldx Zp3E ; CPU:$D739 PRG:1739 A6 3E
sec ; CPU:$D73B PRG:173B 38
lda Zp3A ; CPU:$D73C PRG:173C A5 3A
bne SubCD744 ; CPU:$D73E PRG:173E D0 04
lda $DA82,x ; CPU:$D740 PRG:1740 BD 82 DA
rts ; CPU:$D743 PRG:1743 60
; -----------------------------------------------------------------------------
; Routine: SubCD744
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCD744:
lda #$00 ; CPU:$D744 PRG:1744 A9 00
sec ; CPU:$D746 PRG:1746 38
sbc $DA82,x ; CPU:$D747 PRG:1747 FD 82 DA
rts ; CPU:$D74A PRG:174A 60
; ---- data $D74B-$DBB5 (1131 bytes) ----
; referenced by `lda $DB94,x` at $CC81 (operand $DB94 falls inside this region)
; referenced by `lda $DB95,x` at $CC88 (operand $DB95 falls inside this region)
; referenced by `lda $DBA8,y` at $CC98 (operand $DBA8 falls inside this region)
; referenced by `lda $DBAE,x` at $CCA2 (operand $DBAE falls inside this region)
; referenced by `lda $DBB2,x` at $CCA7 (operand $DBB2 falls inside this region)
; referenced by `lda $DBAA,x` at $CCE9 (operand $DBAA falls inside this region)
; ... and 83 further references from decoded code
.byte $00, $20, $40, $01, $21, $41, $02, $22, $42, $00, $06, $0E, $12, $16, $1A, $1E ; CPU:$D74B PRG:174B 00 20 40 01 21 41 02 22 42 00 06 0E 12 16 1A 1E
.byte $22, $26, $2A, $2E, $32, $3A, $05, $09, $06, $08, $07, $07, $03, $0B, $04, $0A ; CPU:$D75B PRG:175B 22 26 2A 2E 32 3A 05 09 06 08 07 07 03 0B 04 0A
.byte $08, $06, $09, $05, $02, $0C, $0A, $04, $01, $0D, $0B, $03, $01, $0E, $0B, $02 ; CPU:$D76B PRG:176B 08 06 09 05 02 0C 0A 04 01 0D 0B 03 01 0E 0B 02
.byte $00, $0F, $0C, $01, $00, $10, $0C, $00, $00, $11, $0C, $1F, $01, $12, $0B, $1E ; CPU:$D77B PRG:177B 00 0F 0C 01 00 10 0C 00 00 11 0C 1F 01 12 0B 1E
.byte $01, $13, $0B, $1D, $02, $14, $0A, $1C, $03, $15, $04, $16, $08, $1A, $09, $1B ; CPU:$D78B PRG:178B 01 13 0B 1D 02 14 0A 1C 03 15 04 16 08 1A 09 1B
.byte $05, $17, $06, $18, $07, $19, $00, $03, $06, $02, $01, $03, $00, $02, $06, $06 ; CPU:$D79B PRG:179B 05 17 06 18 07 19 00 03 06 02 01 03 00 02 06 06
.byte $05, $05, $04, $03, $02, $01, $00, $FF, $FE, $FD, $FC, $FB, $FB, $FA, $FA, $FA ; CPU:$D7AB PRG:17AB 05 05 04 03 02 01 00 FF FE FD FC FB FB FA FA FA
.byte $FB, $FB, $FC, $FD, $FE, $FF, $00, $01, $02, $03, $04, $05, $05, $06, $06, $06 ; CPU:$D7BB PRG:17BB FB FB FC FD FE FF 00 01 02 03 04 05 05 06 06 06
.byte $05, $05, $04, $03, $02, $01, $00, $00, $FF, $01, $FF, $01, $00, $00, $00, $80 ; CPU:$D7CB PRG:17CB 05 05 04 03 02 01 00 00 FF 01 FF 01 00 00 00 80
.byte $40, $C0, $80, $40, $20, $10, $08, $04, $02, $01, $01, $FF, $E0, $20, $00, $FF ; CPU:$D7DB PRG:17DB 40 C0 80 40 20 10 08 04 02 01 01 FF E0 20 00 FF
.byte $FF, $00, $FD, $46, $6D, $93, $B9, $DE, $02, $1F, $D7, $D8, $D8, $D8, $D8, $D8 ; CPU:$D7EB PRG:17EB FF 00 FD 46 6D 93 B9 DE 02 1F D7 D8 D8 D8 D8 D8
.byte $D9, $D8, $07, $18, $20, $40, $40, $80, $80, $80, $40, $40, $20, $18, $07, $00 ; CPU:$D7FB PRG:17FB D9 D8 07 18 20 40 40 80 80 80 40 40 20 18 07 00
.byte $C0, $20, $10, $10, $08, $08, $08, $10, $10, $20, $C0, $00, $00, $00, $00, $00 ; CPU:$D80B PRG:180B C0 20 10 10 08 08 08 10 10 20 C0 00 00 00 00 00
.byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $01, $00, $00, $00, $00 ; CPU:$D81B PRG:181B 00 00 00 00 00 00 00 00 00 01 01 01 00 00 00 00
.byte $00, $0E, $31, $40, $80, $80, $00, $00, $00, $80, $80, $40, $31, $0E, $00, $80 ; CPU:$D82B PRG:182B 00 0E 31 40 80 80 00 00 00 80 80 40 31 0E 00 80
.byte $40, $20, $20, $10, $10, $10, $20, $20, $40, $80, $00, $03, $0C, $10, $20, $20 ; CPU:$D83B PRG:183B 40 20 20 10 10 10 20 20 40 80 00 03 0C 10 20 20
.byte $40, $40, $40, $20, $20, $10, $0C, $03, $80, $60, $10, $08, $08, $04, $04, $04 ; CPU:$D84B PRG:184B 40 40 40 20 20 10 0C 03 80 60 10 08 08 04 04 04
.byte $08, $08, $10, $60, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$D85B PRG:185B 08 08 10 60 80 00 00 00 00 00 00 00 00 00 00 00
.byte $00, $00, $01, $06, $08, $10, $10, $20, $20, $20, $10, $10, $08, $06, $01, $C0 ; CPU:$D86B PRG:186B 00 00 01 06 08 10 10 20 20 20 10 10 08 06 01 C0
.byte $30, $08, $04, $04, $02, $02, $02, $04, $04, $08, $30, $C0, $00, $00, $00, $00 ; CPU:$D87B PRG:187B 30 08 04 04 02 02 02 04 04 08 30 C0 00 00 00 00
.byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $03, $04, $08, $08, $10, $10, $10 ; CPU:$D88B PRG:188B 00 00 00 00 00 00 00 00 00 03 04 08 08 10 10 10
.byte $08, $08, $04, $03, $00, $E0, $18, $04, $02, $02, $01, $01, $01, $02, $02, $04 ; CPU:$D89B PRG:189B 08 08 04 03 00 E0 18 04 02 02 01 01 01 02 02 04
.byte $18, $E0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01 ; CPU:$D8AB PRG:18AB 18 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 01
.byte $02, $04, $04, $08, $08, $08, $04, $04, $02, $01, $00, $70, $8C, $02, $01, $01 ; CPU:$D8BB PRG:18BB 02 04 04 08 08 08 04 04 02 01 00 70 8C 02 01 01
.byte $00, $00, $00, $01, $01, $02, $8C, $70, $00, $00, $00, $00, $00, $80, $80, $80 ; CPU:$D8CB PRG:18CB 00 00 00 01 01 02 8C 70 00 00 00 00 00 80 80 80
.byte $00, $00, $00, $00, $00, $01, $02, $02, $04, $04, $04, $02, $02, $01, $00, $00 ; CPU:$D8DB PRG:18DB 00 00 00 00 00 01 02 02 04 04 04 02 02 01 00 00
.byte $38, $C6, $01, $00, $00, $00, $00, $00, $00, $00, $01, $C6, $38, $00, $00, $00 ; CPU:$D8EB PRG:18EB 38 C6 01 00 00 00 00 00 00 00 01 C6 38 00 00 00
.byte $80, $80, $40, $40, $40, $80, $80, $00, $00, $00, $01, $01, $02, $02, $02, $01 ; CPU:$D8FB PRG:18FB 80 80 40 40 40 80 80 00 00 00 01 01 02 02 02 01
.byte $01, $00, $00, $00, $1C, $63, $80, $00, $00, $00, $00, $00, $00, $00, $80, $63 ; CPU:$D90B PRG:190B 01 00 00 00 1C 63 80 00 00 00 00 00 00 00 80 63
.byte $1C, $00, $00, $80, $40, $40, $20, $20, $20, $40, $40, $80, $00, $00, $20, $13 ; CPU:$D91B PRG:191B 1C 00 00 80 40 40 20 20 20 40 40 80 00 00 20 13
.byte $0D, $0A, $08, $07, $06, $05, $05, $04, $04, $03, $03, $03, $03, $03, $02, $02 ; CPU:$D92B PRG:192B 0D 0A 08 07 06 05 05 04 04 03 03 03 03 03 02 02
.byte $02, $02, $02, $02, $02, $02, $02, $02, $02, $01, $36, $41, $4A, $4D, $53, $61 ; CPU:$D93B PRG:193B 02 02 02 02 02 02 02 02 02 01 36 41 4A 4D 53 61
.byte $6A, $73, $76, $81, $8A, $8D, $93, $A1, $AA, $B3, $B6, $C1, $CA, $CD, $D3, $E1 ; CPU:$D94B PRG:194B 6A 73 76 81 8A 8D 93 A1 AA B3 B6 C1 CA CD D3 E1
.byte $EA, $F3, $F6, $01, $0A, $0D, $13, $21, $2A, $33, $14, $0C, $0C, $12, $1A, $12 ; CPU:$D95B PRG:195B EA F3 F6 01 0A 0D 13 21 2A 33 14 0C 0C 12 1A 12
.byte $0C, $0C, $40, $47, $50, $56, $60, $6A, $70, $79, $80, $87, $90, $96, $A0, $AA ; CPU:$D96B PRG:196B 0C 0C 40 47 50 56 60 6A 70 79 80 87 90 96 A0 AA
.byte $B0, $B9, $C0, $C7, $D0, $D6, $E0, $EA, $F0, $F9, $00, $07, $10, $16, $20, $2A ; CPU:$D97B PRG:197B B0 B9 C0 C7 D0 D6 E0 EA F0 F9 00 07 10 16 20 2A
.byte $30, $39, $00, $06, $0E, $2A, $2B, $2C, $2D, $2E, $00, $BE, $C2, $C9, $BC, $C0 ; CPU:$D98B PRG:198B 30 39 00 06 0E 2A 2B 2C 2D 2E 00 BE C2 C9 BC C0
.byte $C5, $2A, $00, $DC, $A1, $E5, $E9, $A4, $6C, $E8, $EC, $00, $7E, $96, $FF, $FF ; CPU:$D99B PRG:199B C5 2A 00 DC A1 E5 E9 A4 6C E8 EC 00 7E 96 FF FF
.byte $8A, $A2, $FF, $FF, $F0, $FC, $5F, $B9, $C1, $10, $10, $16, $8C, $98, $19, $04 ; CPU:$D9AB PRG:19AB 8A A2 FF FF F0 FC 5F B9 C1 10 10 16 8C 98 19 04
.byte $04, $06, $C0, $40, $60, $10, $07, $0A, $0F, $14, $19, $1E, $23, $28, $2D, $32 ; CPU:$D9BB PRG:19BB 04 06 C0 40 60 10 07 0A 0F 14 19 1E 23 28 2D 32
.byte $37, $06, $06, $00, $00, $00, $C9, $CC, $D6, $E3, $E3, $0A, $00, $46, $46, $46 ; CPU:$D9CB PRG:19CB 37 06 06 00 00 00 C9 CC D6 E3 E3 0A 00 46 46 46
.byte $1F, $1F, $3F, $3F, $3F, $68, $98, $68, $98, $00, $00, $B8, $B8, $B0, $B0, $C0 ; CPU:$D9DB PRG:19DB 1F 1F 3F 3F 3F 68 98 68 98 00 00 B8 B8 B0 B0 C0
.byte $C0, $B8, $B8, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07 ; CPU:$D9EB PRG:19EB C0 B8 B8 07 07 07 07 07 07 07 07 07 07 07 07 07
.byte $07, $07, $08, $08, $08, $08, $08, $08, $08, $09, $09, $10, $10, $11, $11, $11 ; CPU:$D9FB PRG:19FB 07 07 08 08 08 08 08 08 08 09 09 10 10 11 11 11
.byte $11, $11, $11, $11, $11, $12, $12, $12, $12, $12, $12, $12, $12, $12, $12, $12 ; CPU:$DA0B PRG:1A0B 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12
.byte $12, $12, $12, $1C, $1D, $1D, $1D, $1E, $1E, $1E, $1E, $1F, $1F, $1F, $1F, $1F ; CPU:$DA1B PRG:1A1B 12 12 12 1C 1D 1D 1D 1E 1E 1E 1E 1F 1F 1F 1F 1F
.byte $1F, $1F, $1F, $1F, $1F, $1F, $1F, $1F, $1F, $1E, $1E, $1E, $1E, $1F, $1F, $1F ; CPU:$DA2B PRG:1A2B 1F 1F 1F 1F 1F 1F 1F 1F 1F 1E 1E 1E 1E 1F 1F 1F
.byte $1F, $1F, $1F, $1F, $1F, $1F, $1F, $1F, $1F, $1F, $1F, $1E, $1E, $1E, $1E, $1D ; CPU:$DA3B PRG:1A3B 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1E 1E 1E 1E 1D
.byte $1D, $1D, $1C, $11, $10, $0F, $0E, $0C, $0B, $0A, $09, $08, $07, $06, $05, $04 ; CPU:$DA4B PRG:1A4B 1D 1D 1C 11 10 0F 0E 0C 0B 0A 09 08 07 06 05 04
.byte $03, $02, $00, $FF, $FE, $FD, $FC, $FB, $FA, $F8, $F7, $09, $08, $06, $05, $04 ; CPU:$DA5B PRG:1A5B 03 02 00 FF FE FD FC FB FA F8 F7 09 08 06 05 04
.byte $03, $02, $01, $00, $FE, $FD, $FC, $FB, $FA, $F9, $F8, $F7, $F6, $F5, $F4, $F3 ; CPU:$DA6B PRG:1A6B 03 02 01 00 FE FD FC FB FA F9 F8 F7 F6 F5 F4 F3
.byte $F2, $F1, $F0, $00, $18, $30, $48, $ED, $EE, $F0, $F1, $F3, $F4, $F5, $F7, $F8 ; CPU:$DA7B PRG:1A7B F2 F1 F0 00 18 30 48 ED EE F0 F1 F3 F4 F5 F7 F8
.byte $F9, $FB, $FC, $FD, $FF, $00, $03, $04, $05, $06, $08, $09, $0A, $0D, $0E, $78 ; CPU:$DA8B PRG:1A8B F9 FB FC FD FF 00 03 04 05 06 08 09 0A 0D 0E 78
.byte $79, $7C, $7D, $7E, $80, $81, $82, $83, $86, $87, $89, $8A, $8B, $8D, $8E, $8F ; CPU:$DA9B PRG:1A9B 79 7C 7D 7E 80 81 82 83 86 87 89 8A 8B 8D 8E 8F
.byte $91, $92, $93, $95, $96, $98, $99, $04, $08, $0C, $10, $14, $18, $1C, $20, $22 ; CPU:$DAAB PRG:1AAB 91 92 93 95 96 98 99 04 08 0C 10 14 18 1C 20 22
.byte $24, $26, $28, $2A, $2C, $2E, $30, $32, $32, $34, $34, $36, $36, $38, $38, $3A ; CPU:$DABB PRG:1ABB 24 26 28 2A 2C 2E 30 32 32 34 34 36 36 38 38 3A
.byte $3A, $3C, $3C, $3E, $3E, $3E, $3E, $3E, $3E, $3E, $00, $20, $60, $A0, $E0, $00 ; CPU:$DACB PRG:1ACB 3A 3C 3C 3E 3E 3E 3E 3E 3E 3E 00 20 60 A0 E0 00
.byte $02, $01, $03, $00, $FF, $FF, $00, $05, $0B, $3F, $27, $63, $AD, $FF, $37, $90 ; CPU:$DADB PRG:1ADB 02 01 03 00 FF FF 00 05 0B 3F 27 63 AD FF 37 90
.byte $19, $A0, $B0, $FF, $52, $62, $72, $82, $FF, $42, $68, $66, $BE, $FF, $3A, $A0 ; CPU:$DAEB PRG:1AEB 19 A0 B0 FF 52 62 72 82 FF 42 68 66 BE FF 3A A0
.byte $2E, $A3, $B3, $FF, $5D, $6D, $7D, $8D, $FF, $00, $05, $08, $0B, $FF, $0E, $15 ; CPU:$DAFB PRG:1AFB 2E A3 B3 FF 5D 6D 7D 8D FF 00 05 08 0B FF 0E 15
.byte $1C, $1F, $24, $FF, $29, $29, $29, $29, $FF, $78, $88, $98, $A8, $FF, $48, $60 ; CPU:$DB0B PRG:1B0B 1C 1F 24 FF 29 29 29 29 FF 78 88 98 A8 FF 48 60
.byte $FF, $C8, $D4, $FF, $CA, $D7, $FF, $68, $78, $88, $98, $A8, $B8, $FF, $78, $80 ; CPU:$DB1B PRG:1B1B FF C8 D4 FF CA D7 FF 68 78 88 98 A8 B8 FF 78 80
.byte $8C, $9C, $A0, $A8, $FF, $CA, $D6, $FF, $54, $61, $BE, $CB, $FF, $48, $54, $CB ; CPU:$DB2B PRG:1B2B 8C 9C A0 A8 FF CA D6 FF 54 61 BE CB FF 48 54 CB
.byte $D7, $FF, $83, $8E, $93, $9E, $A3, $AE, $FF, $00, $01, $01, $01, $00, $00, $02 ; CPU:$DB3B PRG:1B3B D7 FF 83 8E 93 9E A3 AE FF 00 01 01 01 00 00 02
.byte $00, $00, $03, $00, $00, $04, $00, $00, $05, $05, $05, $05, $05, $00, $00, $06 ; CPU:$DB4B PRG:1B4B 00 00 03 00 00 04 00 00 05 05 05 05 05 00 00 06
.byte $00, $06, $00, $06, $00, $00, $07, $00, $00, $08, $00, $08, $00, $00, $09, $00 ; CPU:$DB5B PRG:1B5B 00 06 00 06 00 00 07 00 00 08 00 08 00 00 09 00
.byte $09, $00, $00, $0A, $00, $0A, $00, $0A, $00, $A5, $B5, $D6, $E4, $19, $3B, $E7 ; CPU:$DB6B PRG:1B6B 09 00 00 0A 00 0A 00 0A 00 A5 B5 D6 E4 19 3B E7
.byte $48, $55, $5D, $CD, $CD, $CD, $CD, $CE, $CE, $CD, $CE, $CE, $CE, $1E, $37, $1E ; CPU:$DB7B PRG:1B7B 48 55 5D CD CD CD CD CE CE CD CE CE CE 1E 37 1E
.byte $27, $2A, $32, $3A, $43, $4B, $54, $5D, $65, $00, $14, $01, $14, $02, $14, $03 ; CPU:$DB8B PRG:1B8B 27 2A 32 3A 43 4B 54 5D 65 00 14 01 14 02 14 03
.byte $14, $04, $78, $80, $03, $0A, $02, $0A, $01, $0A, $00, $01, $FF, $00, $02, $00 ; CPU:$DB9B PRG:1B9B 14 04 78 80 03 0A 02 0A 01 0A 00 01 FF 00 02 00
.byte $01, $00, $03, $D0, $D0, $98, $E2, $B3, $1F, $A0, $99 ; CPU:$DBAB PRG:1BAB 01 00 03 D0 D0 98 E2 B3 1F A0 99
; -----------------------------------------------------------------------------
; Routine: UpdateBumper
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumper:
ldx #$02 ; CPU:$DBB6 PRG:1BB6 A2 02
; -----------------------------------------------------------------------------
; Routine: SubCDBB8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDBB8:
lda Zp0A,x ; CPU:$DBB8 PRG:1BB8 B5 0A
eor #$80 ; CPU:$DBBA PRG:1BBA 49 80
asl a ; CPU:$DBBC PRG:1BBC 0A
sta Zp12 ; CPU:$DBBD PRG:1BBD 85 12
sbc Zp12 ; CPU:$DBBF PRG:1BBF E5 12
sta Zp0B,x ; CPU:$DBC1 PRG:1BC1 95 0B
dex ; CPU:$DBC3 PRG:1BC3 CA
dex ; CPU:$DBC4 PRG:1BC4 CA
bpl SubCDBB8 ; CPU:$DBC5 PRG:1BC5 10 F1
rts ; CPU:$DBC7 PRG:1BC7 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState:
ldx #$00 ; CPU:$DBC8 PRG:1BC8 A2 00
bit $02A2 ; CPU:$DBCA PRG:1BCA 2C A2 02
; -----------------------------------------------------------------------------
; Routine: SubCDBCD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDBCD:
lda Zp07,x ; CPU:$DBCD PRG:1BCD B5 07
bpl SubCDBDE ; CPU:$DBCF PRG:1BCF 10 0D
lda #$00 ; CPU:$DBD1 PRG:1BD1 A9 00
sec ; CPU:$DBD3 PRG:1BD3 38
sbc Zp06,x ; CPU:$DBD4 PRG:1BD4 F5 06
sta Zp06,x ; CPU:$DBD6 PRG:1BD6 95 06
lda #$00 ; CPU:$DBD8 PRG:1BD8 A9 00
sbc Zp07,x ; CPU:$DBDA PRG:1BDA F5 07
sta Zp07,x ; CPU:$DBDC PRG:1BDC 95 07
; -----------------------------------------------------------------------------
; Routine: SubCDBDE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDBDE:
dex ; CPU:$DBDE PRG:1BDE CA
dex ; CPU:$DBDF PRG:1BDF CA
bpl SubCDBCD ; CPU:$DBE0 PRG:1BE0 10 EB
rts ; CPU:$DBE2 PRG:1BE2 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperHit
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperHit:
lda Zp06 ; CPU:$DBE3 PRG:1BE3 A5 06
bpl SubCDBEE ; CPU:$DBE5 PRG:1BE5 10 07
lda #$00 ; CPU:$DBE7 PRG:1BE7 A9 00
sec ; CPU:$DBE9 PRG:1BE9 38
sbc Zp06 ; CPU:$DBEA PRG:1BEA E5 06
sta Zp06 ; CPU:$DBEC PRG:1BEC 85 06
; -----------------------------------------------------------------------------
; Routine: SubCDBEE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDBEE:
lda Zp08 ; CPU:$DBEE PRG:1BEE A5 08
bpl SubCDBF9 ; CPU:$DBF0 PRG:1BF0 10 07
lda #$00 ; CPU:$DBF2 PRG:1BF2 A9 00
sec ; CPU:$DBF4 PRG:1BF4 38
sbc Zp08 ; CPU:$DBF5 PRG:1BF5 E5 08
sta Zp08 ; CPU:$DBF7 PRG:1BF7 85 08
; -----------------------------------------------------------------------------
; Routine: SubCDBF9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDBF9:
rts ; CPU:$DBF9 PRG:1BF9 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperSprites
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperSprites:
ldx #$02 ; CPU:$DBFA PRG:1BFA A2 02
; -----------------------------------------------------------------------------
; Routine: SubCDBFC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDBFC:
ldy Zp06,x ; CPU:$DBFC PRG:1BFC B4 06
lda $0300,y ; CPU:$DBFE PRG:1BFE B9 00 03
sta Zp06,x ; CPU:$DC01 PRG:1C01 95 06
lda $DE87,y ; CPU:$DC03 PRG:1C03 B9 87 DE
sta Zp07,x ; CPU:$DC06 PRG:1C06 95 07
dex ; CPU:$DC08 PRG:1C08 CA
dex ; CPU:$DC09 PRG:1C09 CA
bpl SubCDBFC ; CPU:$DC0A PRG:1C0A 10 F0
rts ; CPU:$DC0C PRG:1C0C 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState2:
ldx #$80 ; CPU:$DC0D PRG:1C0D A2 80
stx Zp12 ; CPU:$DC0F PRG:1C0F 86 12
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState3:
lsr Zp12 ; CPU:$DC11 PRG:1C11 46 12
lda $0300,x ; CPU:$DC13 PRG:1C13 BD 00 03
sec ; CPU:$DC16 PRG:1C16 38
sbc Zp06 ; CPU:$DC17 PRG:1C17 E5 06
sta Zp13 ; CPU:$DC19 PRG:1C19 85 13
lda $DE87,x ; CPU:$DC1B PRG:1C1B BD 87 DE
sbc Zp07 ; CPU:$DC1E PRG:1C1E E5 07
ora Zp13 ; CPU:$DC20 PRG:1C20 05 13
beq SubCDC37 ; CPU:$DC22 PRG:1C22 F0 13
lda Zp12 ; CPU:$DC24 PRG:1C24 A5 12
beq SubCDC34 ; CPU:$DC26 PRG:1C26 F0 0C
txa ; CPU:$DC28 PRG:1C28 8A
bcs SubCDC2E ; CPU:$DC29 PRG:1C29 B0 03
adc Zp12 ; CPU:$DC2B PRG:1C2B 65 12
; ---- data $DC2D-$DC2D (1 bytes) ----
.byte $2C ; CPU:$DC2D PRG:1C2D 2C
; -----------------------------------------------------------------------------
; Routine: SubCDC2E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC2E:
sbc Zp12 ; CPU:$DC2E PRG:1C2E E5 12
tax ; CPU:$DC30 PRG:1C30 AA
jmp UpdateBumperState3 ; CPU:$DC31 PRG:1C31 4C 11 DC
; -----------------------------------------------------------------------------
; Routine: SubCDC34
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC34:
bcc SubCDC37 ; CPU:$DC34 PRG:1C34 90 01
dex ; CPU:$DC36 PRG:1C36 CA
; -----------------------------------------------------------------------------
; Routine: SubCDC37
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC37:
stx Zp06 ; CPU:$DC37 PRG:1C37 86 06
lda #$00 ; CPU:$DC39 PRG:1C39 A9 00
sta Zp07 ; CPU:$DC3B PRG:1C3B 85 07
rts ; CPU:$DC3D PRG:1C3D 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperHit2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperHit2:
lda Zp06 ; CPU:$DC3E PRG:1C3E A5 06
asl a ; CPU:$DC40 PRG:1C40 0A
lda Zp08 ; CPU:$DC41 PRG:1C41 A5 08
rol a ; CPU:$DC43 PRG:1C43 2A
rol a ; CPU:$DC44 PRG:1C44 2A
and #$03 ; CPU:$DC45 PRG:1C45 29 03
pha ; CPU:$DC47 PRG:1C47 48
jsr UpdateBumperHit ; CPU:$DC48 PRG:1C48 20 E3 DB
ldy #$00 ; CPU:$DC4B PRG:1C4B A0 00
lda Zp06 ; CPU:$DC4D PRG:1C4D A5 06
cmp Zp08 ; CPU:$DC4F PRG:1C4F C5 08
bcc SubCDC5A ; CPU:$DC51 PRG:1C51 90 07
ldx Zp08 ; CPU:$DC53 PRG:1C53 A6 08
sta Zp08 ; CPU:$DC55 PRG:1C55 85 08
stx Zp06 ; CPU:$DC57 PRG:1C57 86 06
dey ; CPU:$DC59 PRG:1C59 88
; -----------------------------------------------------------------------------
; Routine: SubCDC5A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC5A:
sty Zp14 ; CPU:$DC5A PRG:1C5A 84 14
lda Zp08 ; CPU:$DC5C PRG:1C5C A5 08
bne SubCDC64 ; CPU:$DC5E PRG:1C5E D0 04
pla ; CPU:$DC60 PRG:1C60 68
lda #$40 ; CPU:$DC61 PRG:1C61 A9 40
rts ; CPU:$DC63 PRG:1C63 60
; -----------------------------------------------------------------------------
; Routine: SubCDC64
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC64:
cmp Zp06 ; CPU:$DC64 PRG:1C64 C5 06
bne SubCDC6C ; CPU:$DC66 PRG:1C66 D0 04
lda #$20 ; CPU:$DC68 PRG:1C68 A9 20
bne SubCDC8E ; CPU:$DC6A PRG:1C6A D0 22
; -----------------------------------------------------------------------------
; Routine: SubCDC6C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC6C:
jsr UpdateBumperState7 ; CPU:$DC6C PRG:1C6C 20 5D DD
lda Zp06 ; CPU:$DC6F PRG:1C6F A5 06
and #$C0 ; CPU:$DC71 PRG:1C71 29 C0
lsr a ; CPU:$DC73 PRG:1C73 4A
lsr a ; CPU:$DC74 PRG:1C74 4A
lsr a ; CPU:$DC75 PRG:1C75 4A
lsr a ; CPU:$DC76 PRG:1C76 4A
tax ; CPU:$DC77 PRG:1C77 AA
lda Zp06 ; CPU:$DC78 PRG:1C78 A5 06
; -----------------------------------------------------------------------------
; Routine: SubCDC7A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC7A:
cmp $DF87,x ; CPU:$DC7A PRG:1C7A DD 87 DF
bcc SubCDC82 ; CPU:$DC7D PRG:1C7D 90 03
inx ; CPU:$DC7F PRG:1C7F E8
bne SubCDC7A ; CPU:$DC80 PRG:1C80 D0 F8
; -----------------------------------------------------------------------------
; Routine: SubCDC82
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC82:
txa ; CPU:$DC82 PRG:1C82 8A
ldx Zp14 ; CPU:$DC83 PRG:1C83 A6 14
bne SubCDC8E ; CPU:$DC85 PRG:1C85 D0 07
sta Zp12 ; CPU:$DC87 PRG:1C87 85 12
lda #$40 ; CPU:$DC89 PRG:1C89 A9 40
sec ; CPU:$DC8B PRG:1C8B 38
sbc Zp12 ; CPU:$DC8C PRG:1C8C E5 12
; -----------------------------------------------------------------------------
; Routine: SubCDC8E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC8E:
sta Zp12 ; CPU:$DC8E PRG:1C8E 85 12
pla ; CPU:$DC90 PRG:1C90 68
tax ; CPU:$DC91 PRG:1C91 AA
lda $DCA2,x ; CPU:$DC92 PRG:1C92 BD A2 DC
ldy $DCA6,x ; CPU:$DC95 PRG:1C95 BC A6 DC
bne SubCDC9E ; CPU:$DC98 PRG:1C98 D0 04
clc ; CPU:$DC9A PRG:1C9A 18
adc Zp12 ; CPU:$DC9B PRG:1C9B 65 12
rts ; CPU:$DC9D PRG:1C9D 60
; -----------------------------------------------------------------------------
; Routine: SubCDC9E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDC9E:
sec ; CPU:$DC9E PRG:1C9E 38
sbc Zp12 ; CPU:$DC9F PRG:1C9F E5 12
rts ; CPU:$DCA1 PRG:1CA1 60
; ---- data $DCA2-$DCA9 (8 bytes) ----
; referenced by `lda $DCA2,x` at $DC92 (operand $DCA2 falls inside this region)
; referenced by `ldy $DCA6,x` at $DC95 (operand $DCA6 falls inside this region)
.byte $00, $00, $80, $80, $FF, $00, $00, $FF ; CPU:$DCA2 PRG:1CA2 00 00 80 80 FF 00 00 FF
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState4:
jsr UpdateBumperHit ; CPU:$DCAA PRG:1CAA 20 E3 DB
jsr UpdateBumperSprites ; CPU:$DCAD PRG:1CAD 20 FA DB
lda Zp06 ; CPU:$DCB0 PRG:1CB0 A5 06
clc ; CPU:$DCB2 PRG:1CB2 18
adc Zp08 ; CPU:$DCB3 PRG:1CB3 65 08
sta Zp06 ; CPU:$DCB5 PRG:1CB5 85 06
lda Zp07 ; CPU:$DCB7 PRG:1CB7 A5 07
adc Zp09 ; CPU:$DCB9 PRG:1CB9 65 09
sta Zp07 ; CPU:$DCBB PRG:1CBB 85 07
jsr UpdateBumperState2 ; CPU:$DCBD PRG:1CBD 20 0D DC
lda Zp06 ; CPU:$DCC0 PRG:1CC0 A5 06
bpl SubCDCC8 ; CPU:$DCC2 PRG:1CC2 10 04
lda #$7F ; CPU:$DCC4 PRG:1CC4 A9 7F
sta Zp06 ; CPU:$DCC6 PRG:1CC6 85 06
; -----------------------------------------------------------------------------
; Routine: SubCDCC8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDCC8:
rts ; CPU:$DCC8 PRG:1CC8 60
; -----------------------------------------------------------------------------
; Routine: SubCDCC9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDCC9:
ldx #$02 ; CPU:$DCC9 PRG:1CC9 A2 02
; -----------------------------------------------------------------------------
; Routine: SubCDCCB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDCCB:
lda Zp06,x ; CPU:$DCCB PRG:1CCB B5 06
clc ; CPU:$DCCD PRG:1CCD 18
adc Zp0A,x ; CPU:$DCCE PRG:1CCE 75 0A
sta Zp06,x ; CPU:$DCD0 PRG:1CD0 95 06
lda Zp07,x ; CPU:$DCD2 PRG:1CD2 B5 07
adc Zp0B,x ; CPU:$DCD4 PRG:1CD4 75 0B
sta Zp07,x ; CPU:$DCD6 PRG:1CD6 95 07
dex ; CPU:$DCD8 PRG:1CD8 CA
dex ; CPU:$DCD9 PRG:1CD9 CA
bpl SubCDCCB ; CPU:$DCDA PRG:1CDA 10 EF
rts ; CPU:$DCDC PRG:1CDC 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperChain
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperChain:
lda #$00 ; CPU:$DCDD PRG:1CDD A9 00
sta Zp12 ; CPU:$DCDF PRG:1CDF 85 12
beq UpdateBumperState6 ; CPU:$DCE1 PRG:1CE1 F0 09
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState5:
lda Zp06 ; CPU:$DCE3 PRG:1CE3 A5 06
eor Zp08 ; CPU:$DCE5 PRG:1CE5 45 08
sta Zp12 ; CPU:$DCE7 PRG:1CE7 85 12
jsr UpdateBumperHit ; CPU:$DCE9 PRG:1CE9 20 E3 DB
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState6:
lda Zp08 ; CPU:$DCEC PRG:1CEC A5 08
cmp Zp06 ; CPU:$DCEE PRG:1CEE C5 06
bcc SubCDCF9 ; CPU:$DCF0 PRG:1CF0 90 07
ldx Zp06 ; CPU:$DCF2 PRG:1CF2 A6 06
sta Zp06 ; CPU:$DCF4 PRG:1CF4 85 06
stx Zp08 ; CPU:$DCF6 PRG:1CF6 86 08
txa ; CPU:$DCF8 PRG:1CF8 8A
; -----------------------------------------------------------------------------
; Routine: SubCDCF9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDCF9:
ldx #$08 ; CPU:$DCF9 PRG:1CF9 A2 08
; -----------------------------------------------------------------------------
; Routine: SubCDCFB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDCFB:
asl a ; CPU:$DCFB PRG:1CFB 0A
bcs SubCDD05 ; CPU:$DCFC PRG:1CFC B0 07
dex ; CPU:$DCFE PRG:1CFE CA
bne SubCDCFB ; CPU:$DCFF PRG:1CFF D0 FA
sta Zp07 ; CPU:$DD01 PRG:1D01 85 07
beq SubCDD1E ; CPU:$DD03 PRG:1D03 F0 19
; -----------------------------------------------------------------------------
; Routine: SubCDD05
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD05:
sta Zp08 ; CPU:$DD05 PRG:1D05 85 08
lda #$00 ; CPU:$DD07 PRG:1D07 A9 00
sta Zp07 ; CPU:$DD09 PRG:1D09 85 07
beq SubCDD14 ; CPU:$DD0B PRG:1D0B F0 07
; -----------------------------------------------------------------------------
; Routine: SubCDD0D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD0D:
asl a ; CPU:$DD0D PRG:1D0D 0A
rol Zp07 ; CPU:$DD0E PRG:1D0E 26 07
asl Zp08 ; CPU:$DD10 PRG:1D10 06 08
bcc SubCDD1B ; CPU:$DD12 PRG:1D12 90 07
; -----------------------------------------------------------------------------
; Routine: SubCDD14
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD14:
clc ; CPU:$DD14 PRG:1D14 18
adc Zp06 ; CPU:$DD15 PRG:1D15 65 06
bcc SubCDD1B ; CPU:$DD17 PRG:1D17 90 02
inc Zp07 ; CPU:$DD19 PRG:1D19 E6 07
; -----------------------------------------------------------------------------
; Routine: SubCDD1B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD1B:
dex ; CPU:$DD1B PRG:1D1B CA
bne SubCDD0D ; CPU:$DD1C PRG:1D1C D0 EF
; -----------------------------------------------------------------------------
; Routine: SubCDD1E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD1E:
sta Zp06 ; CPU:$DD1E PRG:1D1E 85 06
lda Zp12 ; CPU:$DD20 PRG:1D20 A5 12
bpl SubCDD31 ; CPU:$DD22 PRG:1D22 10 0D
lda #$00 ; CPU:$DD24 PRG:1D24 A9 00
sec ; CPU:$DD26 PRG:1D26 38
sbc Zp06 ; CPU:$DD27 PRG:1D27 E5 06
sta Zp06 ; CPU:$DD29 PRG:1D29 85 06
lda #$00 ; CPU:$DD2B PRG:1D2B A9 00
sbc Zp07 ; CPU:$DD2D PRG:1D2D E5 07
sta Zp07 ; CPU:$DD2F PRG:1D2F 85 07
; -----------------------------------------------------------------------------
; Routine: SubCDD31
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD31:
rts ; CPU:$DD31 PRG:1D31 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperChain2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperChain2:
lda Zp06 ; CPU:$DD32 PRG:1D32 A5 06
eor Zp09 ; CPU:$DD34 PRG:1D34 45 09
sta Zp12 ; CPU:$DD36 PRG:1D36 85 12
lda Zp06 ; CPU:$DD38 PRG:1D38 A5 06
bpl SubCDD43 ; CPU:$DD3A PRG:1D3A 10 07
lda #$00 ; CPU:$DD3C PRG:1D3C A9 00
sec ; CPU:$DD3E PRG:1D3E 38
sbc Zp06 ; CPU:$DD3F PRG:1D3F E5 06
sta Zp06 ; CPU:$DD41 PRG:1D41 85 06
; -----------------------------------------------------------------------------
; Routine: SubCDD43
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD43:
lda Zp09 ; CPU:$DD43 PRG:1D43 A5 09
bpl SubCDD4E ; CPU:$DD45 PRG:1D45 10 07
lda #$00 ; CPU:$DD47 PRG:1D47 A9 00
sec ; CPU:$DD49 PRG:1D49 38
sbc Zp08 ; CPU:$DD4A PRG:1D4A E5 08
sta Zp08 ; CPU:$DD4C PRG:1D4C 85 08
; -----------------------------------------------------------------------------
; Routine: SubCDD4E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD4E:
jsr UpdateBumperState6 ; CPU:$DD4E PRG:1D4E 20 EC DC
ldy #$00 ; CPU:$DD51 PRG:1D51 A0 00
lda Zp07 ; CPU:$DD53 PRG:1D53 A5 07
sta Zp06 ; CPU:$DD55 PRG:1D55 85 06
bpl SubCDD5A ; CPU:$DD57 PRG:1D57 10 01
dey ; CPU:$DD59 PRG:1D59 88
; -----------------------------------------------------------------------------
; Routine: SubCDD5A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD5A:
sty Zp07 ; CPU:$DD5A PRG:1D5A 84 07
rts ; CPU:$DD5C PRG:1D5C 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState7:
lda Zp06 ; CPU:$DD5D PRG:1D5D A5 06
ldx #$00 ; CPU:$DD5F PRG:1D5F A2 00
stx Zp06 ; CPU:$DD61 PRG:1D61 86 06
ldx #$08 ; CPU:$DD63 PRG:1D63 A2 08
; -----------------------------------------------------------------------------
; Routine: SubCDD65
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD65:
asl a ; CPU:$DD65 PRG:1D65 0A
bcs SubCDD6C ; CPU:$DD66 PRG:1D66 B0 04
cmp Zp08 ; CPU:$DD68 PRG:1D68 C5 08
bcc SubCDD6F ; CPU:$DD6A PRG:1D6A 90 03
; -----------------------------------------------------------------------------
; Routine: SubCDD6C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD6C:
sbc Zp08 ; CPU:$DD6C PRG:1D6C E5 08
sec ; CPU:$DD6E PRG:1D6E 38
; -----------------------------------------------------------------------------
; Routine: SubCDD6F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD6F:
rol Zp06 ; CPU:$DD6F PRG:1D6F 26 06
dex ; CPU:$DD71 PRG:1D71 CA
bne SubCDD65 ; CPU:$DD72 PRG:1D72 D0 F1
rts ; CPU:$DD74 PRG:1D74 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState8:
sec ; CPU:$DD75 PRG:1D75 38
sbc #$40 ; CPU:$DD76 PRG:1D76 E9 40
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState9:
and #$7F ; CPU:$DD78 PRG:1D78 29 7F
cmp #$40 ; CPU:$DD7A PRG:1D7A C9 40
bcc SubCDD84 ; CPU:$DD7C PRG:1D7C 90 06
sta Zp12 ; CPU:$DD7E PRG:1D7E 85 12
lda #$7F ; CPU:$DD80 PRG:1D80 A9 7F
sbc Zp12 ; CPU:$DD82 PRG:1D82 E5 12
; -----------------------------------------------------------------------------
; Routine: SubCDD84
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDD84:
tax ; CPU:$DD84 PRG:1D84 AA
lda $DFA8,x ; CPU:$DD85 PRG:1D85 BD A8 DF
sta Zp08 ; CPU:$DD88 PRG:1D88 85 08
ldy #$00 ; CPU:$DD8A PRG:1D8A A0 00
sty Zp09 ; CPU:$DD8C PRG:1D8C 84 09
rts ; CPU:$DD8E PRG:1D8E 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState10
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState10:
sec ; CPU:$DD8F PRG:1D8F 38
sbc #$40 ; CPU:$DD90 PRG:1D90 E9 40
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState11
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState11:
pha ; CPU:$DD92 PRG:1D92 48
jsr UpdateBumperState9 ; CPU:$DD93 PRG:1D93 20 78 DD
pla ; CPU:$DD96 PRG:1D96 68
bmi SubCDDA2 ; CPU:$DD97 PRG:1D97 30 09
lda #$00 ; CPU:$DD99 PRG:1D99 A9 00
sec ; CPU:$DD9B PRG:1D9B 38
sbc Zp08 ; CPU:$DD9C PRG:1D9C E5 08
sta Zp08 ; CPU:$DD9E PRG:1D9E 85 08
dec Zp09 ; CPU:$DDA0 PRG:1DA0 C6 09
; -----------------------------------------------------------------------------
; Routine: SubCDDA2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDDA2:
rts ; CPU:$DDA2 PRG:1DA2 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState12
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState12:
lda Zp06 ; CPU:$DDA3 PRG:1DA3 A5 06
sta Zp0A ; CPU:$DDA5 PRG:1DA5 85 0A
lda Zp08 ; CPU:$DDA7 PRG:1DA7 A5 08
sta Zp0C ; CPU:$DDA9 PRG:1DA9 85 0C
rts ; CPU:$DDAB PRG:1DAB 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState13
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState13:
lda Zp06 ; CPU:$DDAC PRG:1DAC A5 06
sta Zp0E ; CPU:$DDAE PRG:1DAE 85 0E
lda Zp08 ; CPU:$DDB0 PRG:1DB0 A5 08
sta Zp10 ; CPU:$DDB2 PRG:1DB2 85 10
rts ; CPU:$DDB4 PRG:1DB4 60
; -----------------------------------------------------------------------------
; Routine: SubCDDB5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDDB5:
lda Zp0A ; CPU:$DDB5 PRG:1DB5 A5 0A
sta Zp06 ; CPU:$DDB7 PRG:1DB7 85 06
lda Zp0C ; CPU:$DDB9 PRG:1DB9 A5 0C
sta Zp08 ; CPU:$DDBB PRG:1DBB 85 08
rts ; CPU:$DDBD PRG:1DBD 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperHit4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperHit4:
lda Zp0E ; CPU:$DDBE PRG:1DBE A5 0E
sta Zp06 ; CPU:$DDC0 PRG:1DC0 85 06
lda Zp10 ; CPU:$DDC2 PRG:1DC2 A5 10
sta Zp08 ; CPU:$DDC4 PRG:1DC4 85 08
rts ; CPU:$DDC6 PRG:1DC6 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState15
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState15:
lda Zp0A ; CPU:$DDC7 PRG:1DC7 A5 0A
; -----------------------------------------------------------------------------
; Routine: SubCDDC9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDDC9:
ldx Zp0B ; CPU:$DDC9 PRG:1DC9 A6 0B
sta Zp06 ; CPU:$DDCB PRG:1DCB 85 06
stx Zp07 ; CPU:$DDCD PRG:1DCD 86 07
rts ; CPU:$DDCF PRG:1DCF 60
; -----------------------------------------------------------------------------
; Routine: SubCDDD0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDDD0:
lda Zp0E ; CPU:$DDD0 PRG:1DD0 A5 0E
ldx Zp0F ; CPU:$DDD2 PRG:1DD2 A6 0F
sta Zp06 ; CPU:$DDD4 PRG:1DD4 85 06
stx Zp07 ; CPU:$DDD6 PRG:1DD6 86 07
rts ; CPU:$DDD8 PRG:1DD8 60
; -----------------------------------------------------------------------------
; Routine: SubCDDD9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDDD9:
jsr UpdateBumperState15 ; CPU:$DDD9 PRG:1DD9 20 C7 DD
lda Zp0C ; CPU:$DDDC PRG:1DDC A5 0C
ldx Zp0D ; CPU:$DDDE PRG:1DDE A6 0D
sta Zp08 ; CPU:$DDE0 PRG:1DE0 85 08
stx Zp09 ; CPU:$DDE2 PRG:1DE2 86 09
rts ; CPU:$DDE4 PRG:1DE4 60
; ---- data $DDE5-$DDF0 (12 bytes) ----
.byte $20, $D0, $DD, $A5, $10, $A6, $11, $85, $08, $86, $09, $60 ; CPU:$DDE5 PRG:1DE5 20 D0 DD A5 10 A6 11 85 08 86 09 60
; -----------------------------------------------------------------------------
; Routine: UpdateBumperState16
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBumperState16:
lda Zp06 ; CPU:$DDF1 PRG:1DF1 A5 06
ldx Zp07 ; CPU:$DDF3 PRG:1DF3 A6 07
sta Zp0A ; CPU:$DDF5 PRG:1DF5 85 0A
stx Zp0B ; CPU:$DDF7 PRG:1DF7 86 0B
rts ; CPU:$DDF9 PRG:1DF9 60
; -----------------------------------------------------------------------------
; Routine: SubCDDFA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDDFA:
lda Zp0E ; CPU:$DDFA PRG:1DFA A5 0E
ldx Zp0F ; CPU:$DDFC PRG:1DFC A6 0F
sta Zp0A ; CPU:$DDFE PRG:1DFE 85 0A
stx Zp0B ; CPU:$DE00 PRG:1E00 86 0B
rts ; CPU:$DE02 PRG:1E02 60
; ---- data $DE03-$DE1A (24 bytes) ----
.byte $20, $F1, $DD, $A5, $08, $A6, $09, $85, $0C, $86, $0D, $60, $20, $FA, $DD, $A5 ; CPU:$DE03 PRG:1E03 20 F1 DD A5 08 A6 09 85 0C 86 0D 60 20 FA DD A5
.byte $10, $A6, $11, $85, $0C, $86, $0D, $60 ; CPU:$DE13 PRG:1E13 10 A6 11 85 0C 86 0D 60
; -----------------------------------------------------------------------------
; Routine: SubCDE1B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDE1B:
lda Zp06 ; CPU:$DE1B PRG:1E1B A5 06
ldx Zp07 ; CPU:$DE1D PRG:1E1D A6 07
sta Zp0E ; CPU:$DE1F PRG:1E1F 85 0E
stx Zp0F ; CPU:$DE21 PRG:1E21 86 0F
rts ; CPU:$DE23 PRG:1E23 60
; ---- data $DE24-$DE2F (12 bytes) ----
.byte $20, $1B, $DE, $A5, $08, $A6, $09, $85, $10, $86, $11, $60 ; CPU:$DE24 PRG:1E24 20 1B DE A5 08 A6 09 85 10 86 11 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundEngine:
lda Zp15 ; CPU:$DE30 PRG:1E30 A5 15
sta Zp06 ; CPU:$DE32 PRG:1E32 85 06
lda Zp16 ; CPU:$DE34 PRG:1E34 A5 16
sta Zp07 ; CPU:$DE36 PRG:1E36 85 07
lda Zp17 ; CPU:$DE38 PRG:1E38 A5 17
sta Zp08 ; CPU:$DE3A PRG:1E3A 85 08
lda Zp18 ; CPU:$DE3C PRG:1E3C A5 18
sta Zp09 ; CPU:$DE3E PRG:1E3E 85 09
rts ; CPU:$DE40 PRG:1E40 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel:
lda Zp06 ; CPU:$DE41 PRG:1E41 A5 06
sta Zp15 ; CPU:$DE43 PRG:1E43 85 15
lda Zp07 ; CPU:$DE45 PRG:1E45 A5 07
sta Zp16 ; CPU:$DE47 PRG:1E47 85 16
lda Zp08 ; CPU:$DE49 PRG:1E49 A5 08
sta Zp17 ; CPU:$DE4B PRG:1E4B 85 17
lda Zp09 ; CPU:$DE4D PRG:1E4D A5 09
sta Zp18 ; CPU:$DE4F PRG:1E4F 85 18
rts ; CPU:$DE51 PRG:1E51 60
; -----------------------------------------------------------------------------
; Routine: SubCDE52
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDE52:
lda Zp0A ; CPU:$DE52 PRG:1E52 A5 0A
sta Zp15 ; CPU:$DE54 PRG:1E54 85 15
lda Zp0B ; CPU:$DE56 PRG:1E56 A5 0B
sta Zp16 ; CPU:$DE58 PRG:1E58 85 16
lda Zp0C ; CPU:$DE5A PRG:1E5A A5 0C
sta Zp17 ; CPU:$DE5C PRG:1E5C 85 17
lda Zp0D ; CPU:$DE5E PRG:1E5E A5 0D
sta Zp18 ; CPU:$DE60 PRG:1E60 85 18
rts ; CPU:$DE62 PRG:1E62 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel2_E96A_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel2_E96A_1:
lda Zp19 ; CPU:$DE63 PRG:1E63 A5 19
sta Zp06 ; CPU:$DE65 PRG:1E65 85 06
lda Zp1A ; CPU:$DE67 PRG:1E67 A5 1A
sta Zp08 ; CPU:$DE69 PRG:1E69 85 08
rts ; CPU:$DE6B PRG:1E6B 60
; -----------------------------------------------------------------------------
; Routine: SubCDE6C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDE6C:
lda Zp19 ; CPU:$DE6C PRG:1E6C A5 19
sta Zp0A ; CPU:$DE6E PRG:1E6E 85 0A
lda Zp1A ; CPU:$DE70 PRG:1E70 A5 1A
sta Zp0C ; CPU:$DE72 PRG:1E72 85 0C
rts ; CPU:$DE74 PRG:1E74 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel3_E9ED_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel3_E9ED_1:
lda Zp06 ; CPU:$DE75 PRG:1E75 A5 06
sta Zp19 ; CPU:$DE77 PRG:1E77 85 19
lda Zp08 ; CPU:$DE79 PRG:1E79 A5 08
sta Zp1A ; CPU:$DE7B PRG:1E7B 85 1A
rts ; CPU:$DE7D PRG:1E7D 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel4_EAD1_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel4_EAD1_1:
lda Zp0A ; CPU:$DE7E PRG:1E7E A5 0A
sta Zp19 ; CPU:$DE80 PRG:1E80 85 19
lda Zp0C ; CPU:$DE82 PRG:1E82 A5 0C
sta Zp1A ; CPU:$DE84 PRG:1E84 85 1A
rts ; CPU:$DE86 PRG:1E86 60
; ---- data $DE87-$DFE7 (353 bytes) ----
; referenced by `sbc $DE87,x` at $D348 (operand $DE87 falls inside this region)
; referenced by `lda $DE87,y` at $DC03 (operand $DE87 falls inside this region)
; referenced by `lda $DE87,x` at $DC1B (operand $DE87 falls inside this region)
; referenced by `cmp $DF87,x` at $DC7A (operand $DF87 falls inside this region)
; referenced by `lda $DFA8,x` at $DD85 (operand $DFA8 falls inside this region)
.byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$DE87 PRG:1E87 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.byte $01, $01, $01, $01, $01, $01, $01, $02, $02, $02, $02, $02, $03, $03, $03, $03 ; CPU:$DE97 PRG:1E97 01 01 01 01 01 01 01 02 02 02 02 02 03 03 03 03
.byte $04, $04, $04, $04, $05, $05, $05, $05, $06, $06, $06, $07, $07, $07, $08, $08 ; CPU:$DEA7 PRG:1EA7 04 04 04 04 05 05 05 05 06 06 06 07 07 07 08 08
.byte $09, $09, $09, $0A, $0A, $0A, $0B, $0B, $0C, $0C, $0D, $0D, $0E, $0E, $0F, $0F ; CPU:$DEB7 PRG:1EB7 09 09 09 0A 0A 0A 0B 0B 0C 0C 0D 0D 0E 0E 0F 0F
.byte $10, $10, $11, $11, $12, $12, $13, $13, $14, $14, $15, $15, $16, $17, $17, $18 ; CPU:$DEC7 PRG:1EC7 10 10 11 11 12 12 13 13 14 14 15 15 16 17 17 18
.byte $19, $19, $1A, $1A, $1B, $1C, $1C, $1D, $1E, $1E, $1F, $20, $21, $21, $22, $23 ; CPU:$DED7 PRG:1ED7 19 19 1A 1A 1B 1C 1C 1D 1E 1E 1F 20 21 21 22 23
.byte $24, $24, $25, $26, $27, $27, $28, $29, $2A, $2B, $2B, $2C, $2D, $2E, $2F, $30 ; CPU:$DEE7 PRG:1EE7 24 24 25 26 27 27 28 29 2A 2B 2B 2C 2D 2E 2F 30
.byte $31, $31, $32, $33, $34, $35, $36, $37, $38, $39, $3A, $3B, $3C, $3D, $3E, $3F ; CPU:$DEF7 PRG:1EF7 31 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
.byte $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $4A, $4B, $4C, $4D, $4E, $4F ; CPU:$DF07 PRG:1F07 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
.byte $51, $52, $53, $54, $55, $56, $57, $59, $5A, $5B, $5C, $5D, $5F, $60, $61, $62 ; CPU:$DF17 PRG:1F17 51 52 53 54 55 56 57 59 5A 5B 5C 5D 5F 60 61 62
.byte $64, $65, $66, $67, $69, $6A, $6B, $6C, $6E, $6F, $70, $72, $73, $74, $76, $77 ; CPU:$DF27 PRG:1F27 64 65 66 67 69 6A 6B 6C 6E 6F 70 72 73 74 76 77
.byte $79, $7A, $7B, $7D, $7E, $7F, $81, $82, $84, $85, $87, $88, $8A, $8B, $8D, $8E ; CPU:$DF37 PRG:1F37 79 7A 7B 7D 7E 7F 81 82 84 85 87 88 8A 8B 8D 8E
.byte $90, $91, $93, $94, $96, $97, $99, $9A, $9C, $9D, $9F, $A0, $A2, $A4, $A5, $A7 ; CPU:$DF47 PRG:1F47 90 91 93 94 96 97 99 9A 9C 9D 9F A0 A2 A4 A5 A7
.byte $A9, $AA, $AC, $AD, $AF, $B1, $B2, $B4, $B6, $B7, $B9, $BB, $BD, $BE, $C0, $C2 ; CPU:$DF57 PRG:1F57 A9 AA AC AD AF B1 B2 B4 B6 B7 B9 BB BD BE C0 C2
.byte $C4, $C5, $C7, $C9, $CB, $CC, $CE, $D0, $D2, $D4, $D5, $D7, $D9, $DB, $DD, $DF ; CPU:$DF67 PRG:1F67 C4 C5 C7 C9 CB CC CE D0 D2 D4 D5 D7 D9 DB DD DF
.byte $E1, $E2, $E4, $E6, $E8, $EA, $EC, $EE, $F0, $F2, $F4, $F6, $F8, $FA, $FC, $FE ; CPU:$DF77 PRG:1F77 E1 E2 E4 E6 E8 EA EC EE F0 F2 F4 F6 F8 FA FC FE
.byte $04, $0A, $10, $17, $1D, $23, $2A, $30, $37, $3D, $44, $4B, $52, $59, $60, $67 ; CPU:$DF87 PRG:1F87 04 0A 10 17 1D 23 2A 30 37 3D 44 4B 52 59 60 67
.byte $6E, $76, $7D, $85, $8D, $96, $9E, $A7, $B0, $BA, $C3, $CD, $D8, $E3, $EE, $FA ; CPU:$DF97 PRG:1F97 6E 76 7D 85 8D 96 9E A7 B0 BA C3 CD D8 E3 EE FA
.byte $FF, $00, $06, $0D, $13, $19, $1F, $26, $2C, $32, $38, $3E, $44, $4A, $50, $56 ; CPU:$DFA7 PRG:1FA7 FF 00 06 0D 13 19 1F 26 2C 32 38 3E 44 4A 50 56
.byte $5C, $62, $68, $6D, $73, $79, $7E, $84, $89, $8E, $93, $98, $9D, $A2, $A7, $AC ; CPU:$DFB7 PRG:1FB7 5C 62 68 6D 73 79 7E 84 89 8E 93 98 9D A2 A7 AC
.byte $B1, $B5, $B9, $BE, $C2, $C6, $CA, $CE, $D1, $D5, $D8, $DC, $DF, $E2, $E5, $E7 ; CPU:$DFC7 PRG:1FC7 B1 B5 B9 BE C2 C6 CA CE D1 D5 D8 DC DF E2 E5 E7
.byte $EA, $ED, $EF, $F1, $F3, $F5, $F7, $F8, $FA, $FB, $FC, $FD, $FE, $FF, $FF, $FF ; CPU:$DFD7 PRG:1FD7 EA ED EF F1 F3 F5 F7 F8 FA FB FC FD FE FF FF FF
.byte $FF ; CPU:$DFE7 PRG:1FE7 FF
; -----------------------------------------------------------------------------
; Routine: SubCDFE8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDFE8:
ldx #$DB ; CPU:$DFE8 PRG:1FE8 A2 DB
; -----------------------------------------------------------------------------
; Routine: SubCDFEA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCDFEA:
pha ; CPU:$DFEA PRG:1FEA 48
lda Zp06 ; CPU:$DFEB PRG:1FEB A5 06
pha ; CPU:$DFED PRG:1FED 48
and #$07 ; CPU:$DFEE PRG:1FEE 29 07
sta ZpB4 ; CPU:$DFF0 PRG:1FF0 85 B4
pla ; CPU:$DFF2 PRG:1FF2 68
lsr a ; CPU:$DFF3 PRG:1FF3 4A
lsr a ; CPU:$DFF4 PRG:1FF4 4A
lsr a ; CPU:$DFF5 PRG:1FF5 4A
sta ZpB2 ; CPU:$DFF6 PRG:1FF6 85 B2
lda Zp08 ; CPU:$DFF8 PRG:1FF8 A5 08
pha ; CPU:$DFFA PRG:1FFA 48
and #$07 ; CPU:$DFFB PRG:1FFB 29 07
sta ZpB5 ; CPU:$DFFD PRG:1FFD 85 B5
pla ; CPU:$DFFF PRG:1FFF 68
lsr a ; CPU:$E000 PRG:2000 4A
lsr a ; CPU:$E001 PRG:2001 4A
lsr a ; CPU:$E002 PRG:2002 4A
sta ZpB3 ; CPU:$E003 PRG:2003 85 B3
bit Zp48 ; CPU:$E005 PRG:2005 24 48
tya ; CPU:$E007 PRG:2007 98
pha ; CPU:$E008 PRG:2008 48
ldy #$04 ; CPU:$E009 PRG:2009 A0 04
lda ZpB3 ; CPU:$E00B PRG:200B A5 B3
asl a ; CPU:$E00D PRG:200D 0A
asl a ; CPU:$E00E PRG:200E 0A
asl a ; CPU:$E00F PRG:200F 0A
asl a ; CPU:$E010 PRG:2010 0A
bcc SubCE015 ; CPU:$E011 PRG:2011 90 02
iny ; CPU:$E013 PRG:2013 C8
iny ; CPU:$E014 PRG:2014 C8
; -----------------------------------------------------------------------------
; Routine: SubCE015
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE015:
asl a ; CPU:$E015 PRG:2015 0A
bcc SubCE019 ; CPU:$E016 PRG:2016 90 01
iny ; CPU:$E018 PRG:2018 C8
; -----------------------------------------------------------------------------
; Routine: SubCE019
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE019:
sty Zp01,x ; CPU:$E019 PRG:2019 94 01
ora ZpB2 ; CPU:$E01B PRG:201B 05 B2
sta Zp00,x ; CPU:$E01D PRG:201D 95 00
pla ; CPU:$E01F PRG:201F 68
tay ; CPU:$E020 PRG:2020 A8
pla ; CPU:$E021 PRG:2021 68
rts ; CPU:$E022 PRG:2022 60
; -----------------------------------------------------------------------------
; Routine: WaitVBlank_E023Loop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in 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_E023Loop:
ldx #$78 ; CPU:$E023 PRG:2023 A2 78
; -----------------------------------------------------------------------------
; Routine: WaitVBlank_E023_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in 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_E023_3:
jsr WaitPPUReady ; CPU:$E025 PRG:2025 20 35 E0
dex ; CPU:$E028 PRG:2028 CA
bne WaitVBlank_E023_3 ; CPU:$E029 PRG:2029 D0 FA
rts ; CPU:$E02B PRG:202B 60
; -----------------------------------------------------------------------------
; Routine: WaitVBlank_E0232
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in 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_E0232:
lda #$00 ; CPU:$E02C PRG:202C A9 00
sta Zp02 ; CPU:$E02E PRG:202E 85 02
; -----------------------------------------------------------------------------
; Routine: SubCE030
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE030:
lda Zp02 ; CPU:$E030 PRG:2030 A5 02
beq SubCE030 ; CPU:$E032 PRG:2032 F0 FC
rts ; CPU:$E034 PRG:2034 60
; -----------------------------------------------------------------------------
; Routine: WaitPPUReady
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
WaitPPUReady:
lda PPUSTATUS ; CPU:$E035 PRG:2035 AD 02 20
bmi WaitPPUReady ; CPU:$E038 PRG:2038 30 FB
; -----------------------------------------------------------------------------
; Routine: SubCE03A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE03A:
lda PPUSTATUS ; CPU:$E03A PRG:203A AD 02 20
bpl SubCE03A ; CPU:$E03D PRG:203D 10 FB
lda #$00 ; CPU:$E03F PRG:203F A9 00
; -----------------------------------------------------------------------------
; Routine: SubCE041
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE041:
adc #$01 ; CPU:$E041 PRG:2041 69 01
bne SubCE041 ; CPU:$E043 PRG:2043 D0 FC
rts ; CPU:$E045 PRG:2045 60
; -----------------------------------------------------------------------------
; Routine: WaitFrame
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
WaitFrame:
ldx #$00 ; CPU:$E046 PRG:2046 A2 00
; ---- data $E048-$E048 (1 bytes) ----
.byte $2C ; CPU:$E048 PRG:2048 2C
; -----------------------------------------------------------------------------
; Routine: InitPPU
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InitPPU:
ldx ZpBE ; CPU:$E049 PRG:2049 A6 BE
lda #$01 ; CPU:$E04B PRG:204B A9 01
sta JOY1 ; CPU:$E04D PRG:204D 8D 16 40
lda #$00 ; CPU:$E050 PRG:2050 A9 00
sta JOY1 ; CPU:$E052 PRG:2052 8D 16 40
sta ZpB6 ; CPU:$E055 PRG:2055 85 B6
ldy #$07 ; CPU:$E057 PRG:2057 A0 07
; -----------------------------------------------------------------------------
; Routine: SubCE059
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE059:
lda JOY1,x ; CPU:$E059 PRG:2059 BD 16 40
and #$01 ; CPU:$E05C PRG:205C 29 01
lsr a ; CPU:$E05E PRG:205E 4A
rol ZpB6 ; CPU:$E05F PRG:205F 26 B6
dey ; CPU:$E061 PRG:2061 88
bpl SubCE059 ; CPU:$E062 PRG:2062 10 F5
lda Zp04 ; CPU:$E064 PRG:2064 A5 04
bne SubCE06B ; CPU:$E066 PRG:2066 D0 03
lda ZpB6 ; CPU:$E068 PRG:2068 A5 B6
rts ; CPU:$E06A PRG:206A 60
; -----------------------------------------------------------------------------
; Routine: SubCE06B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE06B:
dec ZpB7 ; CPU:$E06B PRG:206B C6 B7
bne SubCE092 ; CPU:$E06D PRG:206D D0 23
lda ZpBF ; CPU:$E06F PRG:206F A5 BF
cmp #$02 ; CPU:$E071 PRG:2071 C9 02
beq SubCE082 ; CPU:$E073 PRG:2073 F0 0D
jsr UpdateSoundEngine ; CPU:$E075 PRG:2075 20 30 DE
lda Zp09 ; CPU:$E078 PRG:2078 A5 09
cmp #$88 ; CPU:$E07A PRG:207A C9 88
bcs SubCE082 ; CPU:$E07C PRG:207C B0 04
lda #$00 ; CPU:$E07E PRG:207E A9 00
beq SubCE087 ; CPU:$E080 PRG:2080 F0 05
; -----------------------------------------------------------------------------
; Routine: SubCE082
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE082:
jsr UpdateGameMode ; CPU:$E082 PRG:2082 20 E2 E3
and #$83 ; CPU:$E085 PRG:2085 29 83
; -----------------------------------------------------------------------------
; Routine: SubCE087
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE087:
sta ZpB8 ; CPU:$E087 PRG:2087 85 B8
jsr UpdateGameMode ; CPU:$E089 PRG:2089 20 E2 E3
and #$1F ; CPU:$E08C PRG:208C 29 1F
sta ZpB7 ; CPU:$E08E PRG:208E 85 B7
inc ZpB7 ; CPU:$E090 PRG:2090 E6 B7
; -----------------------------------------------------------------------------
; Routine: SubCE092
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE092:
lda ZpB6 ; CPU:$E092 PRG:2092 A5 B6
and #$30 ; CPU:$E094 PRG:2094 29 30
ora ZpB8 ; CPU:$E096 PRG:2096 05 B8
sta ZpB6 ; CPU:$E098 PRG:2098 85 B6
rts ; CPU:$E09A PRG:209A 60
; -----------------------------------------------------------------------------
; Routine: InitSprites
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InitSprites:
ldx #$00 ; CPU:$E09B PRG:209B A2 00
; -----------------------------------------------------------------------------
; Routine: SubCE09D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE09D:
lda #$24 ; CPU:$E09D PRG:209D A9 24
sta $0400,x ; CPU:$E09F PRG:209F 9D 00 04
sta $0500,x ; CPU:$E0A2 PRG:20A2 9D 00 05
sta $0600,x ; CPU:$E0A5 PRG:20A5 9D 00 06
sta $06E0,x ; CPU:$E0A8 PRG:20A8 9D E0 06
dex ; CPU:$E0AB PRG:20AB CA
bne SubCE09D ; CPU:$E0AC PRG:20AC D0 EF
ldx #$20 ; CPU:$E0AE PRG:20AE A2 20
lda #$00 ; CPU:$E0B0 PRG:20B0 A9 00
jsr WritePPU ; CPU:$E0B2 PRG:20B2 20 EF E0
lda #$24 ; CPU:$E0B5 PRG:20B5 A9 24
ldy #$03 ; CPU:$E0B7 PRG:20B7 A0 03
ldx #$C0 ; CPU:$E0B9 PRG:20B9 A2 C0
; -----------------------------------------------------------------------------
; Routine: SubCE0BB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE0BB:
sta PPUDATA ; CPU:$E0BB PRG:20BB 8D 07 20
dex ; CPU:$E0BE PRG:20BE CA
bne SubCE0BB ; CPU:$E0BF PRG:20BF D0 FA
dey ; CPU:$E0C1 PRG:20C1 88
bpl SubCE0BB ; CPU:$E0C2 PRG:20C2 10 F7
lda Zp00 ; CPU:$E0C4 PRG:20C4 A5 00
ora #$04 ; CPU:$E0C6 PRG:20C6 09 04
sta PPUCTRL ; CPU:$E0C8 PRG:20C8 8D 00 20
ldx #$20 ; CPU:$E0CB PRG:20CB A2 20
lda #$08 ; CPU:$E0CD PRG:20CD A9 08
ldy #$30 ; CPU:$E0CF PRG:20CF A0 30
jsr DrawSprite ; CPU:$E0D1 PRG:20D1 20 E3 E0
ldx #$20 ; CPU:$E0D4 PRG:20D4 A2 20
lda #$1D ; CPU:$E0D6 PRG:20D6 A9 1D
ldy #$49 ; CPU:$E0D8 PRG:20D8 A0 49
jsr DrawSprite ; CPU:$E0DA PRG:20DA 20 E3 E0
lda Zp00 ; CPU:$E0DD PRG:20DD A5 00
sta PPUCTRL ; CPU:$E0DF PRG:20DF 8D 00 20
rts ; CPU:$E0E2 PRG:20E2 60
; -----------------------------------------------------------------------------
; Routine: DrawSprite
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DrawSprite:
jsr WritePPU ; CPU:$E0E3 PRG:20E3 20 EF E0
ldx #$1E ; CPU:$E0E6 PRG:20E6 A2 1E
; -----------------------------------------------------------------------------
; Routine: SubCE0E8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE0E8:
sty PPUDATA ; CPU:$E0E8 PRG:20E8 8C 07 20
dex ; CPU:$E0EB PRG:20EB CA
bne SubCE0E8 ; CPU:$E0EC PRG:20EC D0 FA
rts ; CPU:$E0EE PRG:20EE 60
; -----------------------------------------------------------------------------
; Routine: WritePPU
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
WritePPU:
stx PPUADDR ; CPU:$E0EF PRG:20EF 8E 06 20
sta PPUADDR ; CPU:$E0F2 PRG:20F2 8D 06 20
rts ; CPU:$E0F5 PRG:20F5 60
; -----------------------------------------------------------------------------
; Routine: WritePPU2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
WritePPU2:
jsr WritePPU ; CPU:$E0F6 PRG:20F6 20 EF E0
sty PPUDATA ; CPU:$E0F9 PRG:20F9 8C 07 20
rts ; CPU:$E0FC PRG:20FC 60
; -----------------------------------------------------------------------------
; Routine: InitGame
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InitGame:
jsr UpdateBallPhysics ; CPU:$E0FD PRG:20FD 20 A6 E2
jsr InitSound ; CPU:$E100 PRG:2100 20 8A E2
jsr CheckGameState ; CPU:$E103 PRG:2103 20 03 E4
lda ZpBF ; CPU:$E106 PRG:2106 A5 BF
asl a ; CPU:$E108 PRG:2108 0A
tax ; CPU:$E109 PRG:2109 AA
lda $E2CA,x ; CPU:$E10A PRG:210A BD CA E2
sta ZpDD ; CPU:$E10D PRG:210D 85 DD
lda $E2CB,x ; CPU:$E10F PRG:210F BD CB E2
sta ZpDE ; CPU:$E112 PRG:2112 85 DE
lda $E2D0,x ; CPU:$E114 PRG:2114 BD D0 E2
sta ZpDF ; CPU:$E117 PRG:2117 85 DF
lda $E2D1,x ; CPU:$E119 PRG:2119 BD D1 E2
sta ZpE0 ; CPU:$E11C PRG:211C 85 E0
lda $E2E2,x ; CPU:$E11E PRG:211E BD E2 E2
sta ZpE1 ; CPU:$E121 PRG:2121 85 E1
lda $E2E3,x ; CPU:$E123 PRG:2123 BD E3 E2
sta ZpE2 ; CPU:$E126 PRG:2126 85 E2
ldy #$00 ; CPU:$E128 PRG:2128 A0 00
lda #$1E ; CPU:$E12A PRG:212A A9 1E
sta ZpE7 ; CPU:$E12C PRG:212C 85 E7
lda #$08 ; CPU:$E12E PRG:212E A9 08
sta ZpDB ; CPU:$E130 PRG:2130 85 DB
lda #$04 ; CPU:$E132 PRG:2132 A9 04
sta ZpDC ; CPU:$E134 PRG:2134 85 DC
; -----------------------------------------------------------------------------
; Routine: SubCE136
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE136:
lda #$30 ; CPU:$E136 PRG:2136 A9 30
sta (ZpDB),y ; CPU:$E138 PRG:2138 91 DB
inc ZpDB ; CPU:$E13A PRG:213A E6 DB
lda #$14 ; CPU:$E13C PRG:213C A9 14
sta ZpE6 ; CPU:$E13E PRG:213E 85 E6
lda ZpDC ; CPU:$E140 PRG:2140 A5 DC
clc ; CPU:$E142 PRG:2142 18
adc #$1C ; CPU:$E143 PRG:2143 69 1C
tax ; CPU:$E145 PRG:2145 AA
lda ZpDB ; CPU:$E146 PRG:2146 A5 DB
jsr WritePPU ; CPU:$E148 PRG:2148 20 EF E0
; -----------------------------------------------------------------------------
; Routine: SubCE14B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE14B:
lda (ZpDD),y ; CPU:$E14B PRG:214B B1 DD
cmp #$15 ; CPU:$E14D PRG:214D C9 15
bcs SubCE170 ; CPU:$E14F PRG:214F B0 1F
sta ZpE3 ; CPU:$E151 PRG:2151 85 E3
inc ZpDD ; CPU:$E153 PRG:2153 E6 DD
bne SubCE159 ; CPU:$E155 PRG:2155 D0 02
inc ZpDE ; CPU:$E157 PRG:2157 E6 DE
; -----------------------------------------------------------------------------
; Routine: SubCE159
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE159:
lda (ZpDD),y ; CPU:$E159 PRG:2159 B1 DD
; -----------------------------------------------------------------------------
; Routine: SubCE15B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE15B:
sta PPUDATA ; CPU:$E15B PRG:215B 8D 07 20
sta (ZpDB),y ; CPU:$E15E PRG:215E 91 DB
inc ZpDB ; CPU:$E160 PRG:2160 E6 DB
bne SubCE166 ; CPU:$E162 PRG:2162 D0 02
inc ZpDC ; CPU:$E164 PRG:2164 E6 DC
; -----------------------------------------------------------------------------
; Routine: SubCE166
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE166:
dec ZpE6 ; CPU:$E166 PRG:2166 C6 E6
dec ZpE3 ; CPU:$E168 PRG:2168 C6 E3
bne SubCE15B ; CPU:$E16A PRG:216A D0 EF
inc ZpE6 ; CPU:$E16C PRG:216C E6 E6
bne SubCE17B ; CPU:$E16E PRG:216E D0 0B
; -----------------------------------------------------------------------------
; Routine: SubCE170
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE170:
sta PPUDATA ; CPU:$E170 PRG:2170 8D 07 20
sta (ZpDB),y ; CPU:$E173 PRG:2173 91 DB
inc ZpDB ; CPU:$E175 PRG:2175 E6 DB
bne SubCE17B ; CPU:$E177 PRG:2177 D0 02
inc ZpDC ; CPU:$E179 PRG:2179 E6 DC
; -----------------------------------------------------------------------------
; Routine: SubCE17B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE17B:
inc ZpDD ; CPU:$E17B PRG:217B E6 DD
bne SubCE181 ; CPU:$E17D PRG:217D D0 02
inc ZpDE ; CPU:$E17F PRG:217F E6 DE
; -----------------------------------------------------------------------------
; Routine: SubCE181
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE181:
dec ZpE6 ; CPU:$E181 PRG:2181 C6 E6
bne SubCE14B ; CPU:$E183 PRG:2183 D0 C6
lda #$49 ; CPU:$E185 PRG:2185 A9 49
sta (ZpDB),y ; CPU:$E187 PRG:2187 91 DB
lda ZpDB ; CPU:$E189 PRG:2189 A5 DB
clc ; CPU:$E18B PRG:218B 18
adc #$0B ; CPU:$E18C PRG:218C 69 0B
sta ZpDB ; CPU:$E18E PRG:218E 85 DB
bcc SubCE194 ; CPU:$E190 PRG:2190 90 02
inc ZpDC ; CPU:$E192 PRG:2192 E6 DC
; -----------------------------------------------------------------------------
; Routine: SubCE194
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE194:
dec ZpE7 ; CPU:$E194 PRG:2194 C6 E7
bne SubCE136 ; CPU:$E196 PRG:2196 D0 9E
ldx #$23 ; CPU:$E198 PRG:2198 A2 23
lda #$C0 ; CPU:$E19A PRG:219A A9 C0
jsr WritePPU ; CPU:$E19C PRG:219C 20 EF E0
; -----------------------------------------------------------------------------
; Routine: SubCE19F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE19F:
lda (ZpDF),y ; CPU:$E19F PRG:219F B1 DF
sta PPUDATA ; CPU:$E1A1 PRG:21A1 8D 07 20
iny ; CPU:$E1A4 PRG:21A4 C8
cpy #$40 ; CPU:$E1A5 PRG:21A5 C0 40
bne SubCE19F ; CPU:$E1A7 PRG:21A7 D0 F6
ldy #$1F ; CPU:$E1A9 PRG:21A9 A0 1F
jsr InitSprites2 ; CPU:$E1AB PRG:21AB 20 93 E2
lda #$FF ; CPU:$E1AE PRG:21AE A9 FF
sta ZpC4 ; CPU:$E1B0 PRG:21B0 85 C4
sta ZpC5 ; CPU:$E1B2 PRG:21B2 85 C5
lda ZpBF ; CPU:$E1B4 PRG:21B4 A5 BF
cmp #$02 ; CPU:$E1B6 PRG:21B6 C9 02
bne SubCE1CC ; CPU:$E1B8 PRG:21B8 D0 12
ldx #$20 ; CPU:$E1BA PRG:21BA A2 20
lda #$4D ; CPU:$E1BC PRG:21BC A9 4D
jsr WritePPU ; CPU:$E1BE PRG:21BE 20 EF E0
ldx #$0B ; CPU:$E1C1 PRG:21C1 A2 0B
; -----------------------------------------------------------------------------
; Routine: SubCE1C3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE1C3:
lda $E2B8,x ; CPU:$E1C3 PRG:21C3 BD B8 E2
sta PPUDATA ; CPU:$E1C6 PRG:21C6 8D 07 20
dex ; CPU:$E1C9 PRG:21C9 CA
bpl SubCE1C3 ; CPU:$E1CA PRG:21CA 10 F7
; -----------------------------------------------------------------------------
; Routine: SubCE1CC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE1CC:
lda ZpBF ; CPU:$E1CC PRG:21CC A5 BF
asl a ; CPU:$E1CE PRG:21CE 0A
tax ; CPU:$E1CF PRG:21CF AA
lda $E2D6,x ; CPU:$E1D0 PRG:21D0 BD D6 E2
sta ZpDB ; CPU:$E1D3 PRG:21D3 85 DB
lda $E2D7,x ; CPU:$E1D5 PRG:21D5 BD D7 E2
sta ZpDC ; CPU:$E1D8 PRG:21D8 85 DC
lda $E2DC,x ; CPU:$E1DA PRG:21DA BD DC E2
sta ZpDD ; CPU:$E1DD PRG:21DD 85 DD
lda $E2DD,x ; CPU:$E1DF PRG:21DF BD DD E2
sta ZpDE ; CPU:$E1E2 PRG:21E2 85 DE
ldx #$64 ; CPU:$E1E4 PRG:21E4 A2 64
ldy #$00 ; CPU:$E1E6 PRG:21E6 A0 00
; -----------------------------------------------------------------------------
; Routine: SubCE1E8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE1E8:
lda (ZpDB),y ; CPU:$E1E8 PRG:21E8 B1 DB
cmp #$FE ; CPU:$E1EA PRG:21EA C9 FE
beq SubCE1F7 ; CPU:$E1EC PRG:21EC F0 09
sta $0200,x ; CPU:$E1EE PRG:21EE 9D 00 02
iny ; CPU:$E1F1 PRG:21F1 C8
inx ; CPU:$E1F2 PRG:21F2 E8
cpx #$2C ; CPU:$E1F3 PRG:21F3 E0 2C
bne SubCE1E8 ; CPU:$E1F5 PRG:21F5 D0 F1
; -----------------------------------------------------------------------------
; Routine: SubCE1F7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE1F7:
jsr UpdateMusicChannel21 ; CPU:$E1F7 PRG:21F7 20 3F F0
lda ZpBF ; CPU:$E1FA PRG:21FA A5 BF
cmp #$01 ; CPU:$E1FC PRG:21FC C9 01
bne SubCE21E ; CPU:$E1FE PRG:21FE D0 1E
ldx #$04 ; CPU:$E200 PRG:2200 A2 04
; -----------------------------------------------------------------------------
; Routine: SubCE202
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE202:
lda $0128 ; CPU:$E202 PRG:2202 AD 28 01
and $D7DD,x ; CPU:$E205 PRG:2205 3D DD D7
beq SubCE20D ; CPU:$E208 PRG:2208 F0 03
jsr UpdateMusicChannel18 ; CPU:$E20A PRG:220A 20 79 EF
; -----------------------------------------------------------------------------
; Routine: SubCE20D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE20D:
dex ; CPU:$E20D PRG:220D CA
bpl SubCE202 ; CPU:$E20E PRG:220E 10 F2
lda $012B ; CPU:$E210 PRG:2210 AD 2B 01
sta $012C ; CPU:$E213 PRG:2213 8D 2C 01
jsr UpdateMusicChannel28 ; CPU:$E216 PRG:2216 20 FB F1
lda $0133 ; CPU:$E219 PRG:2219 AD 33 01
sta ZpF0 ; CPU:$E21C PRG:221C 85 F0
; -----------------------------------------------------------------------------
; Routine: SubCE21E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE21E:
lda ZpBF ; CPU:$E21E PRG:221E A5 BF
bne SubCE22D ; CPU:$E220 PRG:2220 D0 0B
jsr UpdateMusicChannel25 ; CPU:$E222 PRG:2222 20 E7 F0
lda ZpCF ; CPU:$E225 PRG:2225 A5 CF
and #$7F ; CPU:$E227 PRG:2227 29 7F
tay ; CPU:$E229 PRG:2229 A8
jsr UpdateMusicChannel23 ; CPU:$E22A PRG:222A 20 C4 F0
; -----------------------------------------------------------------------------
; Routine: SubCE22D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE22D:
lda ZpBF ; CPU:$E22D PRG:222D A5 BF
cmp #$02 ; CPU:$E22F PRG:222F C9 02
bne SubCE236 ; CPU:$E231 PRG:2231 D0 03
jsr UpdateSoundChannels ; CPU:$E233 PRG:2233 20 2F EA
; -----------------------------------------------------------------------------
; Routine: SubCE236
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE236:
ldy #$00 ; CPU:$E236 PRG:2236 A0 00
sty $014B ; CPU:$E238 PRG:2238 8C 4B 01
; -----------------------------------------------------------------------------
; Routine: SubCE23B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE23B:
lda (ZpDD),y ; CPU:$E23B PRG:223B B1 DD
beq SubCE25D ; CPU:$E23D PRG:223D F0 1E
sta ZpE3 ; CPU:$E23F PRG:223F 85 E3
iny ; CPU:$E241 PRG:2241 C8
lda (ZpDD),y ; CPU:$E242 PRG:2242 B1 DD
sta ZpDF ; CPU:$E244 PRG:2244 85 DF
iny ; CPU:$E246 PRG:2246 C8
lda (ZpDD),y ; CPU:$E247 PRG:2247 B1 DD
sta ZpE0 ; CPU:$E249 PRG:2249 85 E0
iny ; CPU:$E24B PRG:224B C8
sty ZpE4 ; CPU:$E24C PRG:224C 84 E4
lda #$24 ; CPU:$E24E PRG:224E A9 24
ldy #$00 ; CPU:$E250 PRG:2250 A0 00
; -----------------------------------------------------------------------------
; Routine: SubCE252
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE252:
sta (ZpDF),y ; CPU:$E252 PRG:2252 91 DF
iny ; CPU:$E254 PRG:2254 C8
cpy ZpE3 ; CPU:$E255 PRG:2255 C4 E3
bne SubCE252 ; CPU:$E257 PRG:2257 D0 F9
ldy ZpE4 ; CPU:$E259 PRG:2259 A4 E4
bne SubCE23B ; CPU:$E25B PRG:225B D0 DE
; -----------------------------------------------------------------------------
; Routine: SubCE25D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE25D:
iny ; CPU:$E25D PRG:225D C8
lda (ZpDD),y ; CPU:$E25E PRG:225E B1 DD
cmp #$FF ; CPU:$E260 PRG:2260 C9 FF
beq UpdateBallTrajectory_E278_3 ; CPU:$E262 PRG:2262 F0 14
sta ZpE3 ; CPU:$E264 PRG:2264 85 E3
iny ; CPU:$E266 PRG:2266 C8
lda (ZpDD),y ; CPU:$E267 PRG:2267 B1 DD
sta ZpDF ; CPU:$E269 PRG:2269 85 DF
iny ; CPU:$E26B PRG:226B C8
lda (ZpDD),y ; CPU:$E26C PRG:226C B1 DD
sta ZpE0 ; CPU:$E26E PRG:226E 85 E0
ldx #$00 ; CPU:$E270 PRG:2270 A2 00
lda ZpE3 ; CPU:$E272 PRG:2272 A5 E3
sta (ZpDF,x) ; CPU:$E274 PRG:2274 81 DF
bne SubCE25D ; CPU:$E276 PRG:2276 D0 E5
; -----------------------------------------------------------------------------
; Routine: UpdateBallTrajectory_E278_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallTrajectory_E278_3:
inc $0153 ; CPU:$E278 PRG:2278 EE 53 01
lda Zp00 ; CPU:$E27B PRG:227B A5 00
ora #$80 ; CPU:$E27D PRG:227D 09 80
sta Zp00 ; CPU:$E27F PRG:227F 85 00
sta PPUCTRL ; CPU:$E281 PRG:2281 8D 00 20
; -----------------------------------------------------------------------------
; Routine: SubCE284
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE284:
lda $0153 ; CPU:$E284 PRG:2284 AD 53 01
bne SubCE284 ; CPU:$E287 PRG:2287 D0 FB
rts ; CPU:$E289 PRG:2289 60
; -----------------------------------------------------------------------------
; Routine: InitSound
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InitSound:
lda #$12 ; CPU:$E28A PRG:228A A9 12
sta $0154 ; CPU:$E28C PRG:228C 8D 54 01
sta $0155 ; CPU:$E28F PRG:228F 8D 55 01
rts ; CPU:$E292 PRG:2292 60
; -----------------------------------------------------------------------------
; Routine: InitSprites2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InitSprites2:
jsr WaitPPUReady ; CPU:$E293 PRG:2293 20 35 E0
ldx #$3F ; CPU:$E296 PRG:2296 A2 3F
lda #$00 ; CPU:$E298 PRG:2298 A9 00
jsr WritePPU ; CPU:$E29A PRG:229A 20 EF E0
; -----------------------------------------------------------------------------
; Routine: SubCE29D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE29D:
lda (ZpE1),y ; CPU:$E29D PRG:229D B1 E1
sta PPUDATA ; CPU:$E29F PRG:229F 8D 07 20
dey ; CPU:$E2A2 PRG:22A2 88
bpl SubCE29D ; CPU:$E2A3 PRG:22A3 10 F8
rts ; CPU:$E2A5 PRG:22A5 60
; -----------------------------------------------------------------------------
; Routine: UpdateBallPhysics
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateBallPhysics:
jsr WaitPPUReady ; CPU:$E2A6 PRG:22A6 20 35 E0
lda #$00 ; CPU:$E2A9 PRG:22A9 A9 00
sta PPUMASK ; CPU:$E2AB PRG:22AB 8D 01 20
lda Zp00 ; CPU:$E2AE PRG:22AE A5 00
and #$7F ; CPU:$E2B0 PRG:22B0 29 7F
sta Zp00 ; CPU:$E2B2 PRG:22B2 85 00
sta PPUCTRL ; CPU:$E2B4 PRG:22B4 8D 00 20
rts ; CPU:$E2B7 PRG:22B7 60
; ---- data $E2B8-$E3E1 (298 bytes) ----
; referenced by `lda $E3B2,x` at $C223 (operand $E3B2 falls inside this region)
; referenced by `lda $E2CA,x` at $E10A (operand $E2CA falls inside this region)
; referenced by `lda $E2CB,x` at $E10F (operand $E2CB falls inside this region)
; referenced by `lda $E2D0,x` at $E114 (operand $E2D0 falls inside this region)
; referenced by `lda $E2D1,x` at $E119 (operand $E2D1 falls inside this region)
; referenced by `lda $E2E2,x` at $E11E (operand $E2E2 falls inside this region)
; ... and 9 further references from decoded code
.byte $12, $22, $0A, $1D, $1C, $24, $24, $1C, $1E, $17, $18, $0B, $0B, $EA, $06, $04 ; CPU:$E2B8 PRG:22B8 12 22 0A 1D 1C 24 24 1C 1E 17 18 0B 0B EA 06 04
.byte $04, $07, $86, $C5, $EC, $C7, $3A, $CA, $E4, $C6, $65, $C9, $3E, $CB, $24, $C7 ; CPU:$E2C8 PRG:22C8 04 07 86 C5 EC C7 3A CA E4 C6 65 C9 3E CB 24 C7
.byte $A5, $C9, $7E, $CB, $E8, $E2, $2F, $E3, $6A, $E3, $A2, $E3, $A2, $E3, $C2, $E3 ; CPU:$E2D8 PRG:22D8 A5 C9 7E CB E8 E2 2F E3 6A E3 A2 E3 A2 E3 C2 E3
.byte $02, $91, $04, $06, $AF, $04, $06, $CF, $04, $02, $37, $05, $06, $CF, $06, $00 ; CPU:$E2E8 PRG:22E8 02 91 04 06 AF 04 06 CF 04 02 37 05 06 CF 06 00
.byte $20, $8C, $04, $21, $98, $04, $22, $19, $06, $23, $4E, $05, $2B, $97, $05, $2B ; CPU:$E2F8 PRG:22F8 20 8C 04 21 98 04 22 19 06 23 4E 05 2B 97 05 2B
.byte $B7, $05, $2B, $D7, $05, $2A, $6C, $05, $2A, $0A, $06, $2A, $2A, $06, $2A, $4A ; CPU:$E308 PRG:2308 B7 05 2B D7 05 2A 6C 05 2A 0A 06 2A 2A 06 2A 4A
.byte $06, $2A, $6A, $06, $2C, $CE, $04, $2D, $D5, $04, $E6, $2D, $07, $E7, $36, $07 ; CPU:$E318 PRG:2318 06 2A 6A 06 2C CE 04 2D D5 04 E6 2D 07 E7 36 07
.byte $88, $EE, $00, $01, $49, $01, $FF, $0A, $6D, $04, $0A, $8D, $04, $0A, $AD, $04 ; CPU:$E328 PRG:2328 88 EE 00 01 49 01 FF 0A 6D 04 0A 8D 04 0A AD 04
.byte $03, $17, $05, $00, $31, $3A, $07, $2A, $7A, $05, $2A, $9A, $05, $2A, $BA, $05 ; CPU:$E338 PRG:2338 03 17 05 00 31 3A 07 2A 7A 05 2A 9A 05 2A BA 05
.byte $2A, $E9, $04, $2A, $09, $05, $2A, $29, $05, $2A, $49, $05, $2A, $69, $05, $2A ; CPU:$E348 PRG:2348 2A E9 04 2A 09 05 2A 29 05 2A 49 05 2A 69 05 2A
.byte $89, $05, $2A, $A9, $05, $72, $2A, $06, $73, $39, $06, $E6, $0D, $07, $E7, $16 ; CPU:$E358 PRG:2358 89 05 2A A9 05 72 2A 06 73 39 06 E6 0D 07 E7 16
.byte $07, $FF, $06, $50, $05, $06, $70, $05, $06, $90, $05, $06, $B0, $05, $06, $D0 ; CPU:$E368 PRG:2368 07 FF 06 50 05 06 70 05 06 90 05 06 B0 05 06 D0
.byte $05, $06, $F0, $05, $06, $10, $06, $06, $30, $06, $14, $A9, $06, $00, $DB, $F0 ; CPU:$E378 PRG:2378 05 06 F0 05 06 10 06 06 30 06 14 A9 06 00 DB F0
.byte $04, $DB, $F1, $04, $DB, $F2, $04, $DB, $F3, $04, $DB, $F4, $04, $DB, $F5, $04 ; CPU:$E388 PRG:2388 04 DB F1 04 DB F2 04 DB F3 04 DB F4 04 DB F5 04
.byte $03, $8E, $02, $43, $9A, $02, $00, $AE, $02, $FF, $25, $12, $30, $0F, $27, $07 ; CPU:$E398 PRG:2398 03 8E 02 43 9A 02 00 AE 02 FF 25 12 30 0F 27 07
.byte $21, $0F, $37, $30, $25, $0F, $21, $10, $30, $0F, $30, $25, $2A, $0F, $30, $27 ; CPU:$E3A8 PRG:23A8 21 0F 37 30 25 0F 21 10 30 0F 30 25 2A 0F 30 27
.byte $12, $0F, $30, $10, $12, $0F, $30, $21, $12, $0F, $27, $16, $30, $0F, $36, $07 ; CPU:$E3B8 PRG:23B8 12 0F 30 10 12 0F 30 21 12 0F 27 16 30 0F 36 07
.byte $25, $0F, $12, $16, $27, $0F, $21, $10, $30, $0F, $30, $30, $30, $0F, $30, $25 ; CPU:$E3C8 PRG:23C8 25 0F 12 16 27 0F 21 10 30 0F 30 30 30 0F 30 25
.byte $26, $0F, $30, $21, $12, $0F, $30, $27, $2A, $0F ; CPU:$E3D8 PRG:23D8 26 0F 30 21 12 0F 30 27 2A 0F
; -----------------------------------------------------------------------------
; Routine: UpdateGameMode
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateGameMode:
txa ; CPU:$E3E2 PRG:23E2 8A
pha ; CPU:$E3E3 PRG:23E3 48
ldx #$0B ; CPU:$E3E4 PRG:23E4 A2 0B
; -----------------------------------------------------------------------------
; Routine: SubCE3E6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE3E6:
asl ZpBA ; CPU:$E3E6 PRG:23E6 06 BA
rol ZpBB ; CPU:$E3E8 PRG:23E8 26 BB
rol a ; CPU:$E3EA PRG:23EA 2A
rol a ; CPU:$E3EB PRG:23EB 2A
eor ZpBA ; CPU:$E3EC PRG:23EC 45 BA
rol a ; CPU:$E3EE PRG:23EE 2A
eor ZpBA ; CPU:$E3EF PRG:23EF 45 BA
lsr a ; CPU:$E3F1 PRG:23F1 4A
lsr a ; CPU:$E3F2 PRG:23F2 4A
eor #$FF ; CPU:$E3F3 PRG:23F3 49 FF
and #$01 ; CPU:$E3F5 PRG:23F5 29 01
ora ZpBA ; CPU:$E3F7 PRG:23F7 05 BA
sta ZpBA ; CPU:$E3F9 PRG:23F9 85 BA
dex ; CPU:$E3FB PRG:23FB CA
bne SubCE3E6 ; CPU:$E3FC PRG:23FC D0 E8
pla ; CPU:$E3FE PRG:23FE 68
tax ; CPU:$E3FF PRG:23FF AA
lda ZpBA ; CPU:$E400 PRG:2400 A5 BA
rts ; CPU:$E402 PRG:2402 60
; -----------------------------------------------------------------------------
; Routine: CheckGameState
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CheckGameState:
ldx #$00 ; CPU:$E403 PRG:2403 A2 00
lda #$F0 ; CPU:$E405 PRG:2405 A9 F0
; -----------------------------------------------------------------------------
; Routine: SubCE407
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE407:
sta $0200,x ; CPU:$E407 PRG:2407 9D 00 02
dex ; CPU:$E40A PRG:240A CA
bne SubCE407 ; CPU:$E40B PRG:240B D0 FA
rts ; CPU:$E40D PRG:240D 60
; -----------------------------------------------------------------------------
; Routine: UpdateDisplay
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateDisplay:
ldx Zp1B ; CPU:$E40E PRG:240E A6 1B
lda $E482,x ; CPU:$E410 PRG:2410 BD 82 E4
beq SubCE45B ; CPU:$E413 PRG:2413 F0 46
ldy $E487,x ; CPU:$E415 PRG:2415 BC 87 E4
sty $022D ; CPU:$E418 PRG:2418 8C 2D 02
iny ; CPU:$E41B PRG:241B C8
sty $0231 ; CPU:$E41C PRG:241C 8C 31 02
sty $0239 ; CPU:$E41F PRG:241F 8C 39 02
iny ; CPU:$E422 PRG:2422 C8
sty $0235 ; CPU:$E423 PRG:2423 8C 35 02
lda Zp16 ; CPU:$E426 PRG:2426 A5 16
tay ; CPU:$E428 PRG:2428 A8
sec ; CPU:$E429 PRG:2429 38
sbc #$07 ; CPU:$E42A PRG:242A E9 07
sta $022F ; CPU:$E42C PRG:242C 8D 2F 02
sta $0237 ; CPU:$E42F PRG:242F 8D 37 02
iny ; CPU:$E432 PRG:2432 C8
sty $0233 ; CPU:$E433 PRG:2433 8C 33 02
sty $023B ; CPU:$E436 PRG:2436 8C 3B 02
lda Zp18 ; CPU:$E439 PRG:2439 A5 18
sta $0234 ; CPU:$E43B PRG:243B 8D 34 02
sta $0238 ; CPU:$E43E PRG:243E 8D 38 02
sec ; CPU:$E441 PRG:2441 38
sbc #$08 ; CPU:$E442 PRG:2442 E9 08
sta $022C ; CPU:$E444 PRG:2444 8D 2C 02
sta $0230 ; CPU:$E447 PRG:2447 8D 30 02
lda #$00 ; CPU:$E44A PRG:244A A9 00
sta $022E ; CPU:$E44C PRG:244C 8D 2E 02
sta $0232 ; CPU:$E44F PRG:244F 8D 32 02
sta $0236 ; CPU:$E452 PRG:2452 8D 36 02
lda #$80 ; CPU:$E455 PRG:2455 A9 80
sta $023A ; CPU:$E457 PRG:2457 8D 3A 02
rts ; CPU:$E45A PRG:245A 60
; -----------------------------------------------------------------------------
; Routine: SubCE45B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE45B:
lda $E487,x ; CPU:$E45B PRG:245B BD 87 E4
sta $022D ; CPU:$E45E PRG:245E 8D 2D 02
lda Zp16 ; CPU:$E461 PRG:2461 A5 16
sec ; CPU:$E463 PRG:2463 38
sbc #$03 ; CPU:$E464 PRG:2464 E9 03
sta $022F ; CPU:$E466 PRG:2466 8D 2F 02
lda Zp18 ; CPU:$E469 PRG:2469 A5 18
sec ; CPU:$E46B PRG:246B 38
sbc #$04 ; CPU:$E46C PRG:246C E9 04
sta $022C ; CPU:$E46E PRG:246E 8D 2C 02
lda #$00 ; CPU:$E471 PRG:2471 A9 00
sta $022E ; CPU:$E473 PRG:2473 8D 2E 02
lda #$F0 ; CPU:$E476 PRG:2476 A9 F0
sta $0230 ; CPU:$E478 PRG:2478 8D 30 02
sta $0234 ; CPU:$E47B PRG:247B 8D 34 02
sta $0238 ; CPU:$E47E PRG:247E 8D 38 02
rts ; CPU:$E481 PRG:2481 60
; ---- data $E482-$E48B (10 bytes) ----
; referenced by `lda $E482,x` at $E410 (operand $E482 falls inside this region)
; referenced by `ldy $E487,x` at $E415 (operand $E487 falls inside this region)
; referenced by `lda $E487,x` at $E45B (operand $E487 falls inside this region)
.byte $03, $03, $00, $00, $00, $90, $93, $96, $97, $98 ; CPU:$E482 PRG:2482 03 03 00 00 00 90 93 96 97 98
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_C34B3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSprites_C34B3:
ldx #$0C ; CPU:$E48C PRG:248C A2 0C
lda #$F0 ; CPU:$E48E PRG:248E A9 F0
; -----------------------------------------------------------------------------
; Routine: SubCE490
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE490:
sta $022C,x ; CPU:$E490 PRG:2490 9D 2C 02
dex ; CPU:$E493 PRG:2493 CA
bpl SubCE490 ; CPU:$E494 PRG:2494 10 FA
rts ; CPU:$E496 PRG:2496 60
; -----------------------------------------------------------------------------
; Routine: UpdateDisplay3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateDisplay3:
lda ZpC0 ; CPU:$E497 PRG:2497 A5 C0
lsr a ; CPU:$E499 PRG:2499 4A
lsr a ; CPU:$E49A PRG:249A 4A
lsr a ; CPU:$E49B PRG:249B 4A
cmp ZpC4 ; CPU:$E49C PRG:249C C5 C4
beq PlaySound ; CPU:$E49E PRG:249E F0 66
sta ZpC4 ; CPU:$E4A0 PRG:24A0 85 C4
tax ; CPU:$E4A2 PRG:24A2 AA
inc ZpC6 ; CPU:$E4A3 PRG:24A3 E6 C6
ldy ZpBF ; CPU:$E4A5 PRG:24A5 A4 BF
lda #$70 ; CPU:$E4A7 PRG:24A7 A9 70
sta $023F ; CPU:$E4A9 PRG:24A9 8D 3F 02
lda #$78 ; CPU:$E4AC PRG:24AC A9 78
sta $0243 ; CPU:$E4AE PRG:24AE 8D 43 02
lda $E590,x ; CPU:$E4B1 PRG:24B1 BD 90 E5
sta $0247 ; CPU:$E4B4 PRG:24B4 8D 47 02
lda $E593,x ; CPU:$E4B7 PRG:24B7 BD 93 E5
sta $024B ; CPU:$E4BA PRG:24BA 8D 4B 02
lda $E596,x ; CPU:$E4BD PRG:24BD BD 96 E5
sta $024F ; CPU:$E4C0 PRG:24C0 8D 4F 02
lda $E5A2,y ; CPU:$E4C3 PRG:24C3 B9 A2 E5
sta ZpE3 ; CPU:$E4C6 PRG:24C6 85 E3
clc ; CPU:$E4C8 PRG:24C8 18
lda $E5A4,x ; CPU:$E4C9 PRG:24C9 BD A4 E5
adc ZpE3 ; CPU:$E4CC PRG:24CC 65 E3
sta $023C ; CPU:$E4CE PRG:24CE 8D 3C 02
lda $E5A7,x ; CPU:$E4D1 PRG:24D1 BD A7 E5
adc ZpE3 ; CPU:$E4D4 PRG:24D4 65 E3
sta $0240 ; CPU:$E4D6 PRG:24D6 8D 40 02
lda $E5AA,x ; CPU:$E4D9 PRG:24D9 BD AA E5
adc ZpE3 ; CPU:$E4DC PRG:24DC 65 E3
sta $0244 ; CPU:$E4DE PRG:24DE 8D 44 02
lda $E5AD,x ; CPU:$E4E1 PRG:24E1 BD AD E5
adc ZpE3 ; CPU:$E4E4 PRG:24E4 65 E3
sta $0248 ; CPU:$E4E6 PRG:24E6 8D 48 02
lda $E5B0,x ; CPU:$E4E9 PRG:24E9 BD B0 E5
adc ZpE3 ; CPU:$E4EC PRG:24EC 65 E3
sta $024C ; CPU:$E4EE PRG:24EE 8D 4C 02
ldy $E5B3,x ; CPU:$E4F1 PRG:24F1 BC B3 E5
ldx #$10 ; CPU:$E4F4 PRG:24F4 A2 10
; -----------------------------------------------------------------------------
; Routine: SubCE4F6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE4F6:
tya ; CPU:$E4F6 PRG:24F6 98
sta $023D,x ; CPU:$E4F7 PRG:24F7 9D 3D 02
dey ; CPU:$E4FA PRG:24FA 88
lda #$00 ; CPU:$E4FB PRG:24FB A9 00
sta $023E,x ; CPU:$E4FD PRG:24FD 9D 3E 02
dex ; CPU:$E500 PRG:2500 CA
dex ; CPU:$E501 PRG:2501 CA
dex ; CPU:$E502 PRG:2502 CA
dex ; CPU:$E503 PRG:2503 CA
bpl SubCE4F6 ; CPU:$E504 PRG:2504 10 F0
; -----------------------------------------------------------------------------
; Routine: PlaySound
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
PlaySound:
lda ZpC1 ; CPU:$E506 PRG:2506 A5 C1
lsr a ; CPU:$E508 PRG:2508 4A
lsr a ; CPU:$E509 PRG:2509 4A
lsr a ; CPU:$E50A PRG:250A 4A
cmp ZpC5 ; CPU:$E50B PRG:250B C5 C5
beq SubCE575 ; CPU:$E50D PRG:250D F0 66
sta ZpC5 ; CPU:$E50F PRG:250F 85 C5
tax ; CPU:$E511 PRG:2511 AA
inc ZpC6 ; CPU:$E512 PRG:2512 E6 C6
ldy ZpBF ; CPU:$E514 PRG:2514 A4 BF
lda #$A8 ; CPU:$E516 PRG:2516 A9 A8
sta $0253 ; CPU:$E518 PRG:2518 8D 53 02
lda #$A0 ; CPU:$E51B PRG:251B A9 A0
sta $0257 ; CPU:$E51D PRG:251D 8D 57 02
lda $E599,x ; CPU:$E520 PRG:2520 BD 99 E5
sta $025B ; CPU:$E523 PRG:2523 8D 5B 02
lda $E59C,x ; CPU:$E526 PRG:2526 BD 9C E5
sta $025F ; CPU:$E529 PRG:2529 8D 5F 02
lda $E59F,x ; CPU:$E52C PRG:252C BD 9F E5
sta $0263 ; CPU:$E52F PRG:252F 8D 63 02
lda $E5A2,y ; CPU:$E532 PRG:2532 B9 A2 E5
sta ZpE3 ; CPU:$E535 PRG:2535 85 E3
clc ; CPU:$E537 PRG:2537 18
lda $E5A4,x ; CPU:$E538 PRG:2538 BD A4 E5
adc ZpE3 ; CPU:$E53B PRG:253B 65 E3
sta $0250 ; CPU:$E53D PRG:253D 8D 50 02
lda $E5A7,x ; CPU:$E540 PRG:2540 BD A7 E5
adc ZpE3 ; CPU:$E543 PRG:2543 65 E3
sta $0254 ; CPU:$E545 PRG:2545 8D 54 02
lda $E5AA,x ; CPU:$E548 PRG:2548 BD AA E5
adc ZpE3 ; CPU:$E54B PRG:254B 65 E3
sta $0258 ; CPU:$E54D PRG:254D 8D 58 02
lda $E5AD,x ; CPU:$E550 PRG:2550 BD AD E5
adc ZpE3 ; CPU:$E553 PRG:2553 65 E3
sta $025C ; CPU:$E555 PRG:2555 8D 5C 02
lda $E5B0,x ; CPU:$E558 PRG:2558 BD B0 E5
adc ZpE3 ; CPU:$E55B PRG:255B 65 E3
sta $0260 ; CPU:$E55D PRG:255D 8D 60 02
ldy $E5B3,x ; CPU:$E560 PRG:2560 BC B3 E5
ldx #$10 ; CPU:$E563 PRG:2563 A2 10
; -----------------------------------------------------------------------------
; Routine: SubCE565
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE565:
tya ; CPU:$E565 PRG:2565 98
sta $0251,x ; CPU:$E566 PRG:2566 9D 51 02
dey ; CPU:$E569 PRG:2569 88
lda #$40 ; CPU:$E56A PRG:256A A9 40
sta $0252,x ; CPU:$E56C PRG:256C 9D 52 02
dex ; CPU:$E56F PRG:256F CA
dex ; CPU:$E570 PRG:2570 CA
dex ; CPU:$E571 PRG:2571 CA
dex ; CPU:$E572 PRG:2572 CA
bpl SubCE565 ; CPU:$E573 PRG:2573 10 F0
; -----------------------------------------------------------------------------
; Routine: SubCE575
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE575:
rts ; CPU:$E575 PRG:2575 60
; ---- data $E576-$E5B5 (64 bytes) ----
; referenced by `lda $E590,x` at $E4B1 (operand $E590 falls inside this region)
; referenced by `lda $E593,x` at $E4B7 (operand $E593 falls inside this region)
; referenced by `lda $E596,x` at $E4BD (operand $E596 falls inside this region)
; referenced by `lda $E5A2,y` at $E4C3 (operand $E5A2 falls inside this region)
; referenced by `lda $E5A4,x` at $E4C9 (operand $E5A4 falls inside this region)
; referenced by `lda $E5A7,x` at $E4D1 (operand $E5A7 falls inside this region)
; ... and 24 further references from decoded code
.byte $23, $22, $0D, $ED, $23, $22, $16, $F6, $24, $24, $F6, $E6, $D6, $F7, $E7, $D7 ; CPU:$E576 PRG:2576 23 22 0D ED 23 22 16 F6 24 24 F6 E6 D6 F7 E7 D7
.byte $F8, $24, $24, $F9, $FE, $FC, $FA, $FF, $FD, $FB, $70, $80, $80, $78, $70, $70 ; CPU:$E586 PRG:2586 F8 24 24 F9 FE FC FA FF FD FB 70 80 80 78 70 70
.byte $80, $FF, $78, $A8, $98, $98, $A0, $A8, $A8, $98, $FF, $A0, $08, $00, $BF, $BF ; CPU:$E596 PRG:2596 80 FF 78 A8 98 98 A0 A8 A8 98 FF A0 08 00 BF BF
.byte $B7, $C3, $BF, $B7, $C7, $BF, $B5, $CB, $C7, $BF, $CB, $F0, $BF, $C4, $C9, $CD ; CPU:$E5A6 PRG:25A6 B7 C3 BF B7 C7 BF B5 CB C7 BF CB F0 BF C4 C9 CD
; -----------------------------------------------------------------------------
; Routine: SubCE5B6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE5B6:
lda ZpC6 ; CPU:$E5B6 PRG:25B6 A5 C6
beq SubCE608 ; CPU:$E5B8 PRG:25B8 F0 4E
lda #$00 ; CPU:$E5BA PRG:25BA A9 00
sta ZpC6 ; CPU:$E5BC PRG:25BC 85 C6
lda Zp00 ; CPU:$E5BE PRG:25BE A5 00
ora #$04 ; CPU:$E5C0 PRG:25C0 09 04
sta PPUCTRL ; CPU:$E5C2 PRG:25C2 8D 00 20
ldy ZpBF ; CPU:$E5C5 PRG:25C5 A4 BF
ldx $E576,y ; CPU:$E5C7 PRG:25C7 BE 76 E5
lda $E578,y ; CPU:$E5CA PRG:25CA B9 78 E5
jsr WritePPU ; CPU:$E5CD PRG:25CD 20 EF E0
ldx ZpC4 ; CPU:$E5D0 PRG:25D0 A6 C4
lda $E57E,x ; CPU:$E5D2 PRG:25D2 BD 7E E5
sta PPUDATA ; CPU:$E5D5 PRG:25D5 8D 07 20
lda $E581,x ; CPU:$E5D8 PRG:25D8 BD 81 E5
sta PPUDATA ; CPU:$E5DB PRG:25DB 8D 07 20
lda $E584,x ; CPU:$E5DE PRG:25DE BD 84 E5
sta PPUDATA ; CPU:$E5E1 PRG:25E1 8D 07 20
ldy ZpBF ; CPU:$E5E4 PRG:25E4 A4 BF
ldx $E57A,y ; CPU:$E5E6 PRG:25E6 BE 7A E5
lda $E57C,y ; CPU:$E5E9 PRG:25E9 B9 7C E5
jsr WritePPU ; CPU:$E5EC PRG:25EC 20 EF E0
ldx ZpC5 ; CPU:$E5EF PRG:25EF A6 C5
lda $E587,x ; CPU:$E5F1 PRG:25F1 BD 87 E5
sta PPUDATA ; CPU:$E5F4 PRG:25F4 8D 07 20
lda $E58A,x ; CPU:$E5F7 PRG:25F7 BD 8A E5
sta PPUDATA ; CPU:$E5FA PRG:25FA 8D 07 20
lda $E58D,x ; CPU:$E5FD PRG:25FD BD 8D E5
sta PPUDATA ; CPU:$E600 PRG:2600 8D 07 20
lda Zp00 ; CPU:$E603 PRG:2603 A5 00
sta PPUCTRL ; CPU:$E605 PRG:2605 8D 00 20
; -----------------------------------------------------------------------------
; Routine: SubCE608
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE608:
rts ; CPU:$E608 PRG:2608 60
; -----------------------------------------------------------------------------
; Routine: UpdateMusicEngine
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicEngine:
lda ZpC0 ; CPU:$E609 PRG:2609 A5 C0
beq SubCE615 ; CPU:$E60B PRG:260B F0 08
cmp #$17 ; CPU:$E60D PRG:260D C9 17
beq SubCE615 ; CPU:$E60F PRG:260F F0 04
cmp #$0F ; CPU:$E611 PRG:2611 C9 0F
bne SubCE645 ; CPU:$E613 PRG:2613 D0 30
; -----------------------------------------------------------------------------
; Routine: SubCE615
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE615:
lda #$00 ; CPU:$E615 PRG:2615 A9 00
sta ZpC2 ; CPU:$E617 PRG:2617 85 C2
lda ZpB6 ; CPU:$E619 PRG:2619 A5 B6
and #$0F ; CPU:$E61B PRG:261B 29 0F
beq SubCE639 ; CPU:$E61D PRG:261D F0 1A
inc ZpC2 ; CPU:$E61F PRG:261F E6 C2
inc ZpC0 ; CPU:$E621 PRG:2621 E6 C0
lda ZpC0 ; CPU:$E623 PRG:2623 A5 C0
cmp #$01 ; CPU:$E625 PRG:2625 C9 01
bne SubCE62F ; CPU:$E627 PRG:2627 D0 06
lda #$20 ; CPU:$E629 PRG:2629 A9 20
sta ZpFF ; CPU:$E62B PRG:262B 85 FF
bne SubCE64C ; CPU:$E62D PRG:262D D0 1D
; -----------------------------------------------------------------------------
; Routine: SubCE62F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE62F:
cmp #$18 ; CPU:$E62F PRG:262F C9 18
bcc SubCE64C ; CPU:$E631 PRG:2631 90 19
dec ZpC0 ; CPU:$E633 PRG:2633 C6 C0
dec ZpC2 ; CPU:$E635 PRG:2635 C6 C2
beq SubCE64C ; CPU:$E637 PRG:2637 F0 13
; -----------------------------------------------------------------------------
; Routine: SubCE639
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE639:
dec ZpC2 ; CPU:$E639 PRG:2639 C6 C2
dec ZpC0 ; CPU:$E63B PRG:263B C6 C0
bpl SubCE64C ; CPU:$E63D PRG:263D 10 0D
inc ZpC0 ; CPU:$E63F PRG:263F E6 C0
inc ZpC2 ; CPU:$E641 PRG:2641 E6 C2
beq SubCE64C ; CPU:$E643 PRG:2643 F0 07
; -----------------------------------------------------------------------------
; Routine: SubCE645
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE645:
clc ; CPU:$E645 PRG:2645 18
lda ZpC0 ; CPU:$E646 PRG:2646 A5 C0
adc ZpC2 ; CPU:$E648 PRG:2648 65 C2
sta ZpC0 ; CPU:$E64A PRG:264A 85 C0
; -----------------------------------------------------------------------------
; Routine: SubCE64C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE64C:
lda ZpC1 ; CPU:$E64C PRG:264C A5 C1
beq SubCE658 ; CPU:$E64E PRG:264E F0 08
cmp #$17 ; CPU:$E650 PRG:2650 C9 17
beq SubCE658 ; CPU:$E652 PRG:2652 F0 04
cmp #$0F ; CPU:$E654 PRG:2654 C9 0F
bne SubCE687 ; CPU:$E656 PRG:2656 D0 2F
; -----------------------------------------------------------------------------
; Routine: SubCE658
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE658:
lda #$00 ; CPU:$E658 PRG:2658 A9 00
sta ZpC3 ; CPU:$E65A PRG:265A 85 C3
lda ZpB6 ; CPU:$E65C PRG:265C A5 B6
and #$C0 ; CPU:$E65E PRG:265E 29 C0
beq SubCE67C ; CPU:$E660 PRG:2660 F0 1A
inc ZpC3 ; CPU:$E662 PRG:2662 E6 C3
inc ZpC1 ; CPU:$E664 PRG:2664 E6 C1
lda ZpC1 ; CPU:$E666 PRG:2666 A5 C1
cmp #$01 ; CPU:$E668 PRG:2668 C9 01
bne SubCE672 ; CPU:$E66A PRG:266A D0 06
lda #$20 ; CPU:$E66C PRG:266C A9 20
sta ZpFF ; CPU:$E66E PRG:266E 85 FF
bne SubCE686 ; CPU:$E670 PRG:2670 D0 14
; -----------------------------------------------------------------------------
; Routine: SubCE672
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE672:
cmp #$18 ; CPU:$E672 PRG:2672 C9 18
bcc SubCE686 ; CPU:$E674 PRG:2674 90 10
dec ZpC1 ; CPU:$E676 PRG:2676 C6 C1
dec ZpC3 ; CPU:$E678 PRG:2678 C6 C3
beq SubCE686 ; CPU:$E67A PRG:267A F0 0A
; -----------------------------------------------------------------------------
; Routine: SubCE67C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE67C:
dec ZpC3 ; CPU:$E67C PRG:267C C6 C3
dec ZpC1 ; CPU:$E67E PRG:267E C6 C1
bpl SubCE686 ; CPU:$E680 PRG:2680 10 04
inc ZpC1 ; CPU:$E682 PRG:2682 E6 C1
inc ZpC3 ; CPU:$E684 PRG:2684 E6 C3
; -----------------------------------------------------------------------------
; Routine: SubCE686
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE686:
rts ; CPU:$E686 PRG:2686 60
; -----------------------------------------------------------------------------
; Routine: SubCE687
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE687:
clc ; CPU:$E687 PRG:2687 18
lda ZpC1 ; CPU:$E688 PRG:2688 A5 C1
adc ZpC3 ; CPU:$E68A PRG:268A 65 C3
sta ZpC1 ; CPU:$E68C PRG:268C 85 C1
rts ; CPU:$E68E PRG:268E 60
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel:
lda $0134 ; CPU:$E68F PRG:268F AD 34 01
beq SubCE6A1 ; CPU:$E692 PRG:2692 F0 0D
lda Zp05 ; CPU:$E694 PRG:2694 A5 05
and #$3F ; CPU:$E696 PRG:2696 29 3F
bne SubCE6A1 ; CPU:$E698 PRG:2698 D0 07
dec $0134 ; CPU:$E69A PRG:269A CE 34 01
bne SubCE6A1 ; CPU:$E69D PRG:269D D0 02
dec ZpF0 ; CPU:$E69F PRG:269F C6 F0
; -----------------------------------------------------------------------------
; Routine: SubCE6A1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE6A1:
lda ZpD1 ; CPU:$E6A1 PRG:26A1 A5 D1
beq SubCE70B ; CPU:$E6A3 PRG:26A3 F0 66
bpl SubCE6B4 ; CPU:$E6A5 PRG:26A5 10 0D
lda #$07 ; CPU:$E6A7 PRG:26A7 A9 07
sta $0127 ; CPU:$E6A9 PRG:26A9 8D 27 01
lda #$08 ; CPU:$E6AC PRG:26AC A9 08
sta ZpFF ; CPU:$E6AE PRG:26AE 85 FF
dec ZpF0 ; CPU:$E6B0 PRG:26B0 C6 F0
bne SubCE70B ; CPU:$E6B2 PRG:26B2 D0 57
; -----------------------------------------------------------------------------
; Routine: SubCE6B4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE6B4:
ldx #$04 ; CPU:$E6B4 PRG:26B4 A2 04
stx ZpFE ; CPU:$E6B6 PRG:26B6 86 FE
ldx #$00 ; CPU:$E6B8 PRG:26B8 A2 00
lda ZpEE ; CPU:$E6BA PRG:26BA A5 EE
cmp #$82 ; CPU:$E6BC PRG:26BC C9 82
bcc SubCE6C6 ; CPU:$E6BE PRG:26BE 90 06
inx ; CPU:$E6C0 PRG:26C0 E8
cmp #$92 ; CPU:$E6C1 PRG:26C1 C9 92
bcc SubCE6C6 ; CPU:$E6C3 PRG:26C3 90 01
inx ; CPU:$E6C5 PRG:26C5 E8
; -----------------------------------------------------------------------------
; Routine: SubCE6C6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE6C6:
lda $E7A6,x ; CPU:$E6C6 PRG:26C6 BD A6 E7
tay ; CPU:$E6C9 PRG:26C9 A8
ora $0127 ; CPU:$E6CA PRG:26CA 0D 27 01
cmp #$FF ; CPU:$E6CD PRG:26CD C9 FF
bne SubCE70B ; CPU:$E6CF PRG:26CF D0 3A
tya ; CPU:$E6D1 PRG:26D1 98
ldy $0118,x ; CPU:$E6D2 PRG:26D2 BC 18 01
bne SubCE6DE ; CPU:$E6D5 PRG:26D5 D0 07
pha ; CPU:$E6D7 PRG:26D7 48
lda #$37 ; CPU:$E6D8 PRG:26D8 A9 37
jsr UpdateMusicChannel15 ; CPU:$E6DA PRG:26DA 20 3D EE
pla ; CPU:$E6DD PRG:26DD 68
; -----------------------------------------------------------------------------
; Routine: SubCE6DE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE6DE:
and $0127 ; CPU:$E6DE PRG:26DE 2D 27 01
sta $0127 ; CPU:$E6E1 PRG:26E1 8D 27 01
bne SubCE70B ; CPU:$E6E4 PRG:26E4 D0 25
ldx $0118 ; CPU:$E6E6 PRG:26E6 AE 18 01
cpx $0119 ; CPU:$E6E9 PRG:26E9 EC 19 01
bne SubCE70B ; CPU:$E6EC PRG:26EC D0 1D
cpx $011A ; CPU:$E6EE PRG:26EE EC 1A 01
bne SubCE70B ; CPU:$E6F1 PRG:26F1 D0 18
txa ; CPU:$E6F3 PRG:26F3 8A
bne SubCE6F9 ; CPU:$E6F4 PRG:26F4 D0 03
inc $014B ; CPU:$E6F6 PRG:26F6 EE 4B 01
; -----------------------------------------------------------------------------
; Routine: SubCE6F9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE6F9:
lda $E78A,x ; CPU:$E6F9 PRG:26F9 BD 8A E7
sta $0134 ; CPU:$E6FC PRG:26FC 8D 34 01
lda $E787,x ; CPU:$E6FF PRG:26FF BD 87 E7
jsr UpdateMusicChannel15 ; CPU:$E702 PRG:2702 20 3D EE
lda #$01 ; CPU:$E705 PRG:2705 A9 01
sta ZpFD ; CPU:$E707 PRG:2707 85 FD
inc ZpF0 ; CPU:$E709 PRG:2709 E6 F0
; -----------------------------------------------------------------------------
; Routine: SubCE70B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE70B:
lda #$00 ; CPU:$E70B PRG:270B A9 00
sta ZpD1 ; CPU:$E70D PRG:270D 85 D1
lda Zp05 ; CPU:$E70F PRG:270F A5 05
and #$03 ; CPU:$E711 PRG:2711 29 03
beq SubCE716 ; CPU:$E713 PRG:2713 F0 01
rts ; CPU:$E715 PRG:2715 60
; -----------------------------------------------------------------------------
; Routine: SubCE716
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE716:
ldx #$02 ; CPU:$E716 PRG:2716 A2 02
; -----------------------------------------------------------------------------
; Routine: SubCE718
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE718:
lda $0127 ; CPU:$E718 PRG:2718 AD 27 01
and $E7A9,x ; CPU:$E71B PRG:271B 3D A9 E7
beq SubCE72C ; CPU:$E71E PRG:271E F0 0C
ldy $0118,x ; CPU:$E720 PRG:2720 BC 18 01
dey ; CPU:$E723 PRG:2723 88
bpl SubCE728 ; CPU:$E724 PRG:2724 10 02
ldy #$02 ; CPU:$E726 PRG:2726 A0 02
; -----------------------------------------------------------------------------
; Routine: SubCE728
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE728:
tya ; CPU:$E728 PRG:2728 98
sta $0118,x ; CPU:$E729 PRG:2729 9D 18 01
; -----------------------------------------------------------------------------
; Routine: SubCE72C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE72C:
dex ; CPU:$E72C PRG:272C CA
bpl SubCE718 ; CPU:$E72D PRG:272D 10 E9
lda #$02 ; CPU:$E72F PRG:272F A9 02
sta ZpE7 ; CPU:$E731 PRG:2731 85 E7
; -----------------------------------------------------------------------------
; Routine: SubCE733
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE733:
ldx ZpE7 ; CPU:$E733 PRG:2733 A6 E7
lda $0118,x ; CPU:$E735 PRG:2735 BD 18 01
ldy $E78D,x ; CPU:$E738 PRG:2738 BC 8D E7
and #$03 ; CPU:$E73B PRG:273B 29 03
beq SubCE75F ; CPU:$E73D PRG:273D F0 20
asl a ; CPU:$E73F PRG:273F 0A
asl a ; CPU:$E740 PRG:2740 0A
asl a ; CPU:$E741 PRG:2741 0A
tax ; CPU:$E742 PRG:2742 AA
lda #$04 ; CPU:$E743 PRG:2743 A9 04
sta ZpE6 ; CPU:$E745 PRG:2745 85 E6
; -----------------------------------------------------------------------------
; Routine: SubCE747
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE747:
lda $E788,x ; CPU:$E747 PRG:2747 BD 88 E7
sta $0285,y ; CPU:$E74A PRG:274A 99 85 02
inx ; CPU:$E74D PRG:274D E8
iny ; CPU:$E74E PRG:274E C8
lda $E788,x ; CPU:$E74F PRG:274F BD 88 E7
sta $0285,y ; CPU:$E752 PRG:2752 99 85 02
inx ; CPU:$E755 PRG:2755 E8
iny ; CPU:$E756 PRG:2756 C8
iny ; CPU:$E757 PRG:2757 C8
iny ; CPU:$E758 PRG:2758 C8
dec ZpE6 ; CPU:$E759 PRG:2759 C6 E6
bne SubCE747 ; CPU:$E75B PRG:275B D0 EA
beq SubCE782 ; CPU:$E75D PRG:275D F0 23
; -----------------------------------------------------------------------------
; Routine: SubCE75F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE75F:
lda Zp05 ; CPU:$E75F PRG:275F A5 05
and #$20 ; CPU:$E761 PRG:2761 29 20
beq SubCE768 ; CPU:$E763 PRG:2763 F0 03
inx ; CPU:$E765 PRG:2765 E8
inx ; CPU:$E766 PRG:2766 E8
inx ; CPU:$E767 PRG:2767 E8
; -----------------------------------------------------------------------------
; Routine: SubCE768
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE768:
lda $E7A0,x ; CPU:$E768 PRG:2768 BD A0 E7
tax ; CPU:$E76B PRG:276B AA
lda #$04 ; CPU:$E76C PRG:276C A9 04
sta ZpE6 ; CPU:$E76E PRG:276E 85 E6
; -----------------------------------------------------------------------------
; Routine: SubCE770
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE770:
txa ; CPU:$E770 PRG:2770 8A
sta $0285,y ; CPU:$E771 PRG:2771 99 85 02
iny ; CPU:$E774 PRG:2774 C8
lda #$03 ; CPU:$E775 PRG:2775 A9 03
sta $0285,y ; CPU:$E777 PRG:2777 99 85 02
iny ; CPU:$E77A PRG:277A C8
inx ; CPU:$E77B PRG:277B E8
iny ; CPU:$E77C PRG:277C C8
iny ; CPU:$E77D PRG:277D C8
dec ZpE6 ; CPU:$E77E PRG:277E C6 E6
bne SubCE770 ; CPU:$E780 PRG:2780 D0 EE
; -----------------------------------------------------------------------------
; Routine: SubCE782
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE782:
dec ZpE7 ; CPU:$E782 PRG:2782 C6 E7
bpl SubCE733 ; CPU:$E784 PRG:2784 10 AD
rts ; CPU:$E786 PRG:2786 60
; ---- data $E787-$E7AB (37 bytes) ----
; referenced by `lda $E7A6,x` at $E6C6 (operand $E7A6 falls inside this region)
; referenced by `lda $E78A,x` at $E6F9 (operand $E78A falls inside this region)
; referenced by `lda $E787,x` at $E6FF (operand $E787 falls inside this region)
; referenced by `and $E7A9,x` at $E71B (operand $E7A9 falls inside this region)
; referenced by `ldy $E78D,x` at $E738 (operand $E78D falls inside this region)
; referenced by `lda $E788,x` at $E747 (operand $E788 falls inside this region)
; ... and 2 further references from decoded code
.byte $46, $3C, $05, $00, $06, $0E, $00, $10, $20, $81, $00, $82, $00, $84, $00, $83 ; CPU:$E787 PRG:2787 46 3C 05 00 06 0E 00 10 20 81 00 82 00 84 00 83
.byte $00, $80, $00, $80, $40, $79, $00, $85, $00, $D0, $D4, $D8, $50, $DC, $9C, $FE ; CPU:$E797 PRG:2797 00 80 00 80 40 79 00 85 00 D0 D4 D8 50 DC 9C FE
.byte $FD, $FB, $01, $02, $04 ; CPU:$E7A7 PRG:27A7 FD FB 01 02 04
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel2:
ldx #$1C ; CPU:$E7AC PRG:27AC A2 1C
ldy #$07 ; CPU:$E7AE PRG:27AE A0 07
; -----------------------------------------------------------------------------
; Routine: SubCE7B0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE7B0:
lda $EA60,y ; CPU:$E7B0 PRG:27B0 B9 60 EA
sta $028C,x ; CPU:$E7B3 PRG:27B3 9D 8C 02
dex ; CPU:$E7B6 PRG:27B6 CA
dex ; CPU:$E7B7 PRG:27B7 CA
dex ; CPU:$E7B8 PRG:27B8 CA
dex ; CPU:$E7B9 PRG:27B9 CA
dey ; CPU:$E7BA PRG:27BA 88
bpl SubCE7B0 ; CPU:$E7BB PRG:27BB 10 F3
lda ZpEC ; CPU:$E7BD PRG:27BD A5 EC
clc ; CPU:$E7BF PRG:27BF 18
adc #$70 ; CPU:$E7C0 PRG:27C0 69 70
sta $028F ; CPU:$E7C2 PRG:27C2 8D 8F 02
adc #$08 ; CPU:$E7C5 PRG:27C5 69 08
sta $0293 ; CPU:$E7C7 PRG:27C7 8D 93 02
sta $029F ; CPU:$E7CA PRG:27CA 8D 9F 02
sta $02A7 ; CPU:$E7CD PRG:27CD 8D A7 02
adc #$08 ; CPU:$E7D0 PRG:27D0 69 08
sta $0297 ; CPU:$E7D2 PRG:27D2 8D 97 02
sta $02A3 ; CPU:$E7D5 PRG:27D5 8D A3 02
sta $02AB ; CPU:$E7D8 PRG:27D8 8D AB 02
adc #$08 ; CPU:$E7DB PRG:27DB 69 08
sta $029B ; CPU:$E7DD PRG:27DD 8D 9B 02
lda ZpB6 ; CPU:$E7E0 PRG:27E0 A5 B6
and #$01 ; CPU:$E7E2 PRG:27E2 29 01
beq SubCE801 ; CPU:$E7E4 PRG:27E4 F0 1B
lda #$03 ; CPU:$E7E6 PRG:27E6 A9 03
sta $011B ; CPU:$E7E8 PRG:27E8 8D 1B 01
jsr UpdateSoundEffect ; CPU:$E7EB PRG:27EB 20 50 EA
inc ZpEC ; CPU:$E7EE PRG:27EE E6 EC
lda ZpEC ; CPU:$E7F0 PRG:27F0 A5 EC
cmp #$31 ; CPU:$E7F2 PRG:27F2 C9 31
bcs SubCE7FC ; CPU:$E7F4 PRG:27F4 B0 06
lda #$10 ; CPU:$E7F6 PRG:27F6 A9 10
sta ZpFE ; CPU:$E7F8 PRG:27F8 85 FE
bne SubCE801 ; CPU:$E7FA PRG:27FA D0 05
; -----------------------------------------------------------------------------
; Routine: SubCE7FC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE7FC:
dec ZpEC ; CPU:$E7FC PRG:27FC C6 EC
jsr UpdateSoundEffect2 ; CPU:$E7FE PRG:27FE 20 58 EA
; -----------------------------------------------------------------------------
; Routine: SubCE801
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE801:
lda ZpB6 ; CPU:$E801 PRG:2801 A5 B6
and #$02 ; CPU:$E803 PRG:2803 29 02
beq SubCE81E ; CPU:$E805 PRG:2805 F0 17
lda #$00 ; CPU:$E807 PRG:2807 A9 00
sta $011B ; CPU:$E809 PRG:2809 8D 1B 01
jsr UpdateSoundEffect2 ; CPU:$E80C PRG:280C 20 58 EA
dec ZpEC ; CPU:$E80F PRG:280F C6 EC
bmi SubCE819 ; CPU:$E811 PRG:2811 30 06
lda #$10 ; CPU:$E813 PRG:2813 A9 10
sta ZpFE ; CPU:$E815 PRG:2815 85 FE
bne SubCE81E ; CPU:$E817 PRG:2817 D0 05
; -----------------------------------------------------------------------------
; Routine: SubCE819
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE819:
inc ZpEC ; CPU:$E819 PRG:2819 E6 EC
jsr UpdateSoundEffect ; CPU:$E81B PRG:281B 20 50 EA
; -----------------------------------------------------------------------------
; Routine: SubCE81E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE81E:
lda ZpEC ; CPU:$E81E PRG:281E A5 EC
lsr a ; CPU:$E820 PRG:2820 4A
and #$03 ; CPU:$E821 PRG:2821 29 03
cmp #$03 ; CPU:$E823 PRG:2823 C9 03
bne SubCE829 ; CPU:$E825 PRG:2825 D0 02
lda #$01 ; CPU:$E827 PRG:2827 A9 01
; -----------------------------------------------------------------------------
; Routine: SubCE829
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE829:
clc ; CPU:$E829 PRG:2829 18
adc $011B ; CPU:$E82A PRG:282A 6D 1B 01
tax ; CPU:$E82D PRG:282D AA
lda $EA68,x ; CPU:$E82E PRG:282E BD 68 EA
sta $0291 ; CPU:$E831 PRG:2831 8D 91 02
lda $EA6E,x ; CPU:$E834 PRG:2834 BD 6E EA
sta $0295 ; CPU:$E837 PRG:2837 8D 95 02
lda $EA74,x ; CPU:$E83A PRG:283A BD 74 EA
sta $029D ; CPU:$E83D PRG:283D 8D 9D 02
lda $EA7A,x ; CPU:$E840 PRG:2840 BD 7A EA
sta $02A1 ; CPU:$E843 PRG:2843 8D A1 02
lda $EA80,x ; CPU:$E846 PRG:2846 BD 80 EA
sta $02A5 ; CPU:$E849 PRG:2849 8D A5 02
lda $EA86,x ; CPU:$E84C PRG:284C BD 86 EA
sta $02A9 ; CPU:$E84F PRG:284F 8D A9 02
lda #$25 ; CPU:$E852 PRG:2852 A9 25
sta $028D ; CPU:$E854 PRG:2854 8D 8D 02
sta $0299 ; CPU:$E857 PRG:2857 8D 99 02
lda #$03 ; CPU:$E85A PRG:285A A9 03
ldy $011B ; CPU:$E85C PRG:285C AC 1B 01
beq SubCE863 ; CPU:$E85F PRG:285F F0 02
lda #$43 ; CPU:$E861 PRG:2861 A9 43
; -----------------------------------------------------------------------------
; Routine: SubCE863
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE863:
sta $0292 ; CPU:$E863 PRG:2863 8D 92 02
sta $0296 ; CPU:$E866 PRG:2866 8D 96 02
and #$FD ; CPU:$E869 PRG:2869 29 FD
ldx #$0C ; CPU:$E86B PRG:286B A2 0C
; -----------------------------------------------------------------------------
; Routine: SubCE86D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE86D:
sta $029E,x ; CPU:$E86D PRG:286D 9D 9E 02
dex ; CPU:$E870 PRG:2870 CA
dex ; CPU:$E871 PRG:2871 CA
dex ; CPU:$E872 PRG:2872 CA
dex ; CPU:$E873 PRG:2873 CA
bpl SubCE86D ; CPU:$E874 PRG:2874 10 F7
ldx #$09 ; CPU:$E876 PRG:2876 A2 09
lda #$24 ; CPU:$E878 PRG:2878 A9 24
; -----------------------------------------------------------------------------
; Routine: SubCE87A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE87A:
sta $06EE,x ; CPU:$E87A PRG:287A 9D EE 06
dex ; CPU:$E87D PRG:287D CA
bpl SubCE87A ; CPU:$E87E PRG:287E 10 FA
lda ZpEC ; CPU:$E880 PRG:2880 A5 EC
clc ; CPU:$E882 PRG:2882 18
adc #$04 ; CPU:$E883 PRG:2883 69 04
pha ; CPU:$E885 PRG:2885 48
and #$07 ; CPU:$E886 PRG:2886 29 07
tay ; CPU:$E888 PRG:2888 A8
pla ; CPU:$E889 PRG:2889 68
lsr a ; CPU:$E88A PRG:288A 4A
lsr a ; CPU:$E88B PRG:288B 4A
lsr a ; CPU:$E88C PRG:288C 4A
tax ; CPU:$E88D PRG:288D AA
lda $EA8C,y ; CPU:$E88E PRG:288E B9 8C EA
sta $06EE,x ; CPU:$E891 PRG:2891 9D EE 06
lda #$A6 ; CPU:$E894 PRG:2894 A9 A6
sta $06EF,x ; CPU:$E896 PRG:2896 9D EF 06
sta $06F0,x ; CPU:$E899 PRG:2899 9D F0 06
lda $EA94,y ; CPU:$E89C PRG:289C B9 94 EA
beq SubCE8A4 ; CPU:$E89F PRG:289F F0 03
sta $06F1,x ; CPU:$E8A1 PRG:28A1 9D F1 06
; -----------------------------------------------------------------------------
; Routine: SubCE8A4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE8A4:
lda ZpD2 ; CPU:$E8A4 PRG:28A4 A5 D2
bmi SubCE8B2 ; CPU:$E8A6 PRG:28A6 30 0A
lda #$F0 ; CPU:$E8A8 PRG:28A8 A9 F0
ldx #$0C ; CPU:$E8AA PRG:28AA A2 0C
; -----------------------------------------------------------------------------
; Routine: SubCE8AC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE8AC:
sta $027C,x ; CPU:$E8AC PRG:28AC 9D 7C 02
dex ; CPU:$E8AF PRG:28AF CA
bpl SubCE8AC ; CPU:$E8B0 PRG:28B0 10 FA
; -----------------------------------------------------------------------------
; Routine: SubCE8B2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE8B2:
lda $011C ; CPU:$E8B2 PRG:28B2 AD 1C 01
clc ; CPU:$E8B5 PRG:28B5 18
adc #$23 ; CPU:$E8B6 PRG:28B6 69 23
sta $02B0 ; CPU:$E8B8 PRG:28B8 8D B0 02
sta $02B4 ; CPU:$E8BB PRG:28BB 8D B4 02
adc #$08 ; CPU:$E8BE PRG:28BE 69 08
sta $02B8 ; CPU:$E8C0 PRG:28C0 8D B8 02
sta $02BC ; CPU:$E8C3 PRG:28C3 8D BC 02
adc #$08 ; CPU:$E8C6 PRG:28C6 69 08
sta $02C0 ; CPU:$E8C8 PRG:28C8 8D C0 02
sta $02C4 ; CPU:$E8CB PRG:28CB 8D C4 02
ldx #$10 ; CPU:$E8CE PRG:28CE A2 10
; -----------------------------------------------------------------------------
; Routine: SubCE8D0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE8D0:
lda ZpED ; CPU:$E8D0 PRG:28D0 A5 ED
clc ; CPU:$E8D2 PRG:28D2 18
adc #$48 ; CPU:$E8D3 PRG:28D3 69 48
sta $02B3,x ; CPU:$E8D5 PRG:28D5 9D B3 02
adc #$08 ; CPU:$E8D8 PRG:28D8 69 08
sta $02B7,x ; CPU:$E8DA PRG:28DA 9D B7 02
txa ; CPU:$E8DD PRG:28DD 8A
sec ; CPU:$E8DE PRG:28DE 38
sbc #$08 ; CPU:$E8DF PRG:28DF E9 08
tax ; CPU:$E8E1 PRG:28E1 AA
bpl SubCE8D0 ; CPU:$E8E2 PRG:28E2 10 EC
lda $011C ; CPU:$E8E4 PRG:28E4 AD 1C 01
beq SubCE8EC ; CPU:$E8E7 PRG:28E7 F0 03
jmp UpdateSoundChannel2_E96A_3 ; CPU:$E8E9 PRG:28E9 4C 6A E9
; -----------------------------------------------------------------------------
; Routine: SubCE8EC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE8EC:
lda Zp05 ; CPU:$E8EC PRG:28EC A5 05
and #$01 ; CPU:$E8EE PRG:28EE 29 01
beq SubCE8F3 ; CPU:$E8F0 PRG:28F0 F0 01
rts ; CPU:$E8F2 PRG:28F2 60
; -----------------------------------------------------------------------------
; Routine: SubCE8F3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE8F3:
inc $0124 ; CPU:$E8F3 PRG:28F3 EE 24 01
lda $011D ; CPU:$E8F6 PRG:28F6 AD 1D 01
beq SubCE908 ; CPU:$E8F9 PRG:28F9 F0 0D
inc ZpED ; CPU:$E8FB PRG:28FB E6 ED
lda ZpED ; CPU:$E8FD PRG:28FD A5 ED
cmp #$70 ; CPU:$E8FF PRG:28FF C9 70
bcc SubCE908 ; CPU:$E901 PRG:2901 90 05
lda #$00 ; CPU:$E903 PRG:2903 A9 00
sta $011D ; CPU:$E905 PRG:2905 8D 1D 01
; -----------------------------------------------------------------------------
; Routine: SubCE908
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE908:
lda $011D ; CPU:$E908 PRG:2908 AD 1D 01
bne SubCE91C ; CPU:$E90B PRG:290B D0 0F
dec ZpED ; CPU:$E90D PRG:290D C6 ED
lda ZpED ; CPU:$E90F PRG:290F A5 ED
cmp #$20 ; CPU:$E911 PRG:2911 C9 20
bcs SubCE91C ; CPU:$E913 PRG:2913 B0 07
inc ZpED ; CPU:$E915 PRG:2915 E6 ED
lda #$03 ; CPU:$E917 PRG:2917 A9 03
sta $011D ; CPU:$E919 PRG:2919 8D 1D 01
; -----------------------------------------------------------------------------
; Routine: SubCE91C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE91C:
ldx #$02 ; CPU:$E91C PRG:291C A2 02
; -----------------------------------------------------------------------------
; Routine: SubCE91E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE91E:
lda ZpED ; CPU:$E91E PRG:291E A5 ED
cmp $EACC,x ; CPU:$E920 PRG:2920 DD CC EA
bne SubCE92C ; CPU:$E923 PRG:2923 D0 07
lda $011F,x ; CPU:$E925 PRG:2925 BD 1F 01
cmp #$03 ; CPU:$E928 PRG:2928 C9 03
bcs SubCE961 ; CPU:$E92A PRG:292A B0 35
; -----------------------------------------------------------------------------
; Routine: SubCE92C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE92C:
dex ; CPU:$E92C PRG:292C CA
bpl SubCE91E ; CPU:$E92D PRG:292D 10 EF
ldx #$01 ; CPU:$E92F PRG:292F A2 01
; -----------------------------------------------------------------------------
; Routine: SubCE931
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE931:
lda ZpED ; CPU:$E931 PRG:2931 A5 ED
cmp $EACF,x ; CPU:$E933 PRG:2933 DD CF EA
bne SubCE94A ; CPU:$E936 PRG:2936 D0 12
clc ; CPU:$E938 PRG:2938 18
lda $011F,x ; CPU:$E939 PRG:2939 BD 1F 01
beq SubCE94A ; CPU:$E93C PRG:293C F0 0C
ldy $0120,x ; CPU:$E93E PRG:293E BC 20 01
beq SubCE94A ; CPU:$E941 PRG:2941 F0 07
adc $0120,x ; CPU:$E943 PRG:2943 7D 20 01
cmp #$03 ; CPU:$E946 PRG:2946 C9 03
bcs SubCE961 ; CPU:$E948 PRG:2948 B0 17
; -----------------------------------------------------------------------------
; Routine: SubCE94A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE94A:
dex ; CPU:$E94A PRG:294A CA
bpl SubCE931 ; CPU:$E94B PRG:294B 10 E4
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEffects
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundEffects:
lda $0124 ; CPU:$E94D PRG:294D AD 24 01
lsr a ; CPU:$E950 PRG:2950 4A
and #$03 ; CPU:$E951 PRG:2951 29 03
cmp #$03 ; CPU:$E953 PRG:2953 C9 03
bne SubCE959 ; CPU:$E955 PRG:2955 D0 02
lda #$01 ; CPU:$E957 PRG:2957 A9 01
; -----------------------------------------------------------------------------
; Routine: SubCE959
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE959:
clc ; CPU:$E959 PRG:2959 18
adc $011D ; CPU:$E95A PRG:295A 6D 1D 01
tax ; CPU:$E95D PRG:295D AA
jmp UpdateSoundChannel3_E9ED_3 ; CPU:$E95E PRG:295E 4C ED E9
; -----------------------------------------------------------------------------
; Routine: SubCE961
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE961:
lda #$02 ; CPU:$E961 PRG:2961 A9 02
sta ZpFE ; CPU:$E963 PRG:2963 85 FE
lda #$00 ; CPU:$E965 PRG:2965 A9 00
sta $011D ; CPU:$E967 PRG:2967 8D 1D 01
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel2_E96A_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel2_E96A_3:
lda #$00 ; CPU:$E96A PRG:296A A9 00
sta $0123 ; CPU:$E96C PRG:296C 8D 23 01
lda $011C ; CPU:$E96F PRG:296F AD 1C 01
cmp #$94 ; CPU:$E972 PRG:2972 C9 94
bcs SubCE9DE ; CPU:$E974 PRG:2974 B0 68
cmp #$7C ; CPU:$E976 PRG:2976 C9 7C
bne SubCE9E5 ; CPU:$E978 PRG:2978 D0 6B
lda ZpED ; CPU:$E97A PRG:297A A5 ED
cmp #$24 ; CPU:$E97C PRG:297C C9 24
bcc SubCE9A8 ; CPU:$E97E PRG:297E 90 28
cmp #$6C ; CPU:$E980 PRG:2980 C9 6C
bcs SubCE9A8 ; CPU:$E982 PRG:2982 B0 24
sec ; CPU:$E984 PRG:2984 38
lda ZpED ; CPU:$E985 PRG:2985 A5 ED
sbc ZpEC ; CPU:$E987 PRG:2987 E5 EC
sbc #$20 ; CPU:$E989 PRG:2989 E9 20
cmp #$20 ; CPU:$E98B PRG:298B C9 20
bcs SubCE9E5 ; CPU:$E98D PRG:298D B0 56
ldx #$00 ; CPU:$E98F PRG:298F A2 00
lda ZpED ; CPU:$E991 PRG:2991 A5 ED
cmp #$48 ; CPU:$E993 PRG:2993 C9 48
bcc SubCE999 ; CPU:$E995 PRG:2995 90 02
ldx #$03 ; CPU:$E997 PRG:2997 A2 03
; -----------------------------------------------------------------------------
; Routine: SubCE999
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE999:
stx $011D ; CPU:$E999 PRG:2999 8E 1D 01
inc $0123 ; CPU:$E99C PRG:299C EE 23 01
lda Zp05 ; CPU:$E99F PRG:299F A5 05
and #$04 ; CPU:$E9A1 PRG:29A1 29 04
beq SubCE9BC ; CPU:$E9A3 PRG:29A3 F0 17
; -----------------------------------------------------------------------------
; Routine: SubCE9A5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE9A5:
jmp UpdateSoundEffects ; CPU:$E9A5 PRG:29A5 4C 4D E9
; -----------------------------------------------------------------------------
; Routine: SubCE9A8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE9A8:
lda $0122 ; CPU:$E9A8 PRG:29A8 AD 22 01
bne SubCE9BC ; CPU:$E9AB PRG:29AB D0 0F
lda #$41 ; CPU:$E9AD PRG:29AD A9 41
sta $0122 ; CPU:$E9AF PRG:29AF 8D 22 01
jsr UpdateMusicChannel15 ; CPU:$E9B2 PRG:29B2 20 3D EE
jsr UpdateMusicChannel15 ; CPU:$E9B5 PRG:29B5 20 3D EE
lda #$01 ; CPU:$E9B8 PRG:29B8 A9 01
sta ZpFD ; CPU:$E9BA PRG:29BA 85 FD
; -----------------------------------------------------------------------------
; Routine: SubCE9BC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE9BC:
lda Zp05 ; CPU:$E9BC PRG:29BC A5 05
and #$03 ; CPU:$E9BE PRG:29BE 29 03
bne SubCE9A5 ; CPU:$E9C0 PRG:29C0 D0 E3
inc $0124 ; CPU:$E9C2 PRG:29C2 EE 24 01
lda $011D ; CPU:$E9C5 PRG:29C5 AD 1D 01
beq SubCE9D6 ; CPU:$E9C8 PRG:29C8 F0 0C
inc ZpED ; CPU:$E9CA PRG:29CA E6 ED
lda ZpED ; CPU:$E9CC PRG:29CC A5 ED
cmp #$90 ; CPU:$E9CE PRG:29CE C9 90
bne SubCE9A5 ; CPU:$E9D0 PRG:29D0 D0 D3
inc $011E ; CPU:$E9D2 PRG:29D2 EE 1E 01
rts ; CPU:$E9D5 PRG:29D5 60
; -----------------------------------------------------------------------------
; Routine: SubCE9D6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE9D6:
dec ZpED ; CPU:$E9D6 PRG:29D6 C6 ED
bpl SubCE9A5 ; CPU:$E9D8 PRG:29D8 10 CB
inc $011E ; CPU:$E9DA PRG:29DA EE 1E 01
rts ; CPU:$E9DD PRG:29DD 60
; -----------------------------------------------------------------------------
; Routine: SubCE9DE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE9DE:
ldx #$07 ; CPU:$E9DE PRG:29DE A2 07
dec $011E ; CPU:$E9E0 PRG:29E0 CE 1E 01
bne UpdateSoundChannel3_E9ED_3 ; CPU:$E9E3 PRG:29E3 D0 08
; -----------------------------------------------------------------------------
; Routine: SubCE9E5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCE9E5:
inc $011C ; CPU:$E9E5 PRG:29E5 EE 1C 01
inc $011C ; CPU:$E9E8 PRG:29E8 EE 1C 01
ldx #$06 ; CPU:$E9EB PRG:29EB A2 06
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel3_E9ED_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel3_E9ED_3:
lda $EA9C,x ; CPU:$E9ED PRG:29ED BD 9C EA
sta $02B1 ; CPU:$E9F0 PRG:29F0 8D B1 02
lda $EAA4,x ; CPU:$E9F3 PRG:29F3 BD A4 EA
sta $02B5 ; CPU:$E9F6 PRG:29F6 8D B5 02
lda $EAAC,x ; CPU:$E9F9 PRG:29F9 BD AC EA
sta $02B9 ; CPU:$E9FC PRG:29FC 8D B9 02
lda $EAB4,x ; CPU:$E9FF PRG:29FF BD B4 EA
sta $02BD ; CPU:$EA02 PRG:2A02 8D BD 02
lda $EABC,x ; CPU:$EA05 PRG:2A05 BD BC EA
sta $02C1 ; CPU:$EA08 PRG:2A08 8D C1 02
lda $EAC4,x ; CPU:$EA0B PRG:2A0B BD C4 EA
sta $02C5 ; CPU:$EA0E PRG:2A0E 8D C5 02
lda #$02 ; CPU:$EA11 PRG:2A11 A9 02
ldy $011C ; CPU:$EA13 PRG:2A13 AC 1C 01
beq SubCEA1C ; CPU:$EA16 PRG:2A16 F0 04
cpy #$7C ; CPU:$EA18 PRG:2A18 C0 7C
bne SubCEA23 ; CPU:$EA1A PRG:2A1A D0 07
; -----------------------------------------------------------------------------
; Routine: SubCEA1C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEA1C:
ldy $011D ; CPU:$EA1C PRG:2A1C AC 1D 01
beq SubCEA23 ; CPU:$EA1F PRG:2A1F F0 02
lda #$42 ; CPU:$EA21 PRG:2A21 A9 42
; -----------------------------------------------------------------------------
; Routine: SubCEA23
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEA23:
ldx #$14 ; CPU:$EA23 PRG:2A23 A2 14
; -----------------------------------------------------------------------------
; Routine: SubCEA25
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEA25:
sta $02B2,x ; CPU:$EA25 PRG:2A25 9D B2 02
dex ; CPU:$EA28 PRG:2A28 CA
dex ; CPU:$EA29 PRG:2A29 CA
dex ; CPU:$EA2A PRG:2A2A CA
dex ; CPU:$EA2B PRG:2A2B CA
bpl SubCEA25 ; CPU:$EA2C PRG:2A2C 10 F7
rts ; CPU:$EA2E PRG:2A2E 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannels
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannels:
ldx #$07 ; CPU:$EA2F PRG:2A2F A2 07
lda #$00 ; CPU:$EA31 PRG:2A31 A9 00
; -----------------------------------------------------------------------------
; Routine: SubCEA33
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEA33:
sta $011C,x ; CPU:$EA33 PRG:2A33 9D 1C 01
dex ; CPU:$EA36 PRG:2A36 CA
bpl SubCEA33 ; CPU:$EA37 PRG:2A37 10 FA
lda #$20 ; CPU:$EA39 PRG:2A39 A9 20
ldx ZpED ; CPU:$EA3B PRG:2A3B A6 ED
inx ; CPU:$EA3D PRG:2A3D E8
beq SubCEA42 ; CPU:$EA3E PRG:2A3E F0 02
lda #$70 ; CPU:$EA40 PRG:2A40 A9 70
; -----------------------------------------------------------------------------
; Routine: SubCEA42
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEA42:
sta ZpED ; CPU:$EA42 PRG:2A42 85 ED
ldx #$17 ; CPU:$EA44 PRG:2A44 A2 17
; -----------------------------------------------------------------------------
; Routine: SubCEA46
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEA46:
lda $CB7E,x ; CPU:$EA46 PRG:2A46 BD 7E CB
sta $0264,x ; CPU:$EA49 PRG:2A49 9D 64 02
dex ; CPU:$EA4C PRG:2A4C CA
bpl SubCEA46 ; CPU:$EA4D PRG:2A4D 10 F7
rts ; CPU:$EA4F PRG:2A4F 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEffect
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundEffect:
lda $0123 ; CPU:$EA50 PRG:2A50 AD 23 01
beq SubCEA57 ; CPU:$EA53 PRG:2A53 F0 02
inc ZpED ; CPU:$EA55 PRG:2A55 E6 ED
; -----------------------------------------------------------------------------
; Routine: SubCEA57
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEA57:
rts ; CPU:$EA57 PRG:2A57 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEffect2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundEffect2:
lda $0123 ; CPU:$EA58 PRG:2A58 AD 23 01
beq SubCEA57 ; CPU:$EA5B PRG:2A5B F0 FA
dec ZpED ; CPU:$EA5D PRG:2A5D C6 ED
rts ; CPU:$EA5F PRG:2A5F 60
; ---- data $EA60-$EAD0 (113 bytes) ----
; referenced by `lda $EA60,y` at $E7B0 (operand $EA60 falls inside this region)
; referenced by `lda $EA68,x` at $E82E (operand $EA68 falls inside this region)
; referenced by `lda $EA6E,x` at $E834 (operand $EA6E falls inside this region)
; referenced by `lda $EA74,x` at $E83A (operand $EA74 falls inside this region)
; referenced by `lda $EA7A,x` at $E840 (operand $EA7A falls inside this region)
; referenced by `lda $EA80,x` at $E846 (operand $EA80 falls inside this region)
; ... and 11 further references from decoded code
.byte $B7, $B7, $B7, $B7, $BF, $BF, $C7, $C7, $26, $2C, $2C, $27, $2D, $2D, $27, $2D ; CPU:$EA60 PRG:2A60 B7 B7 B7 B7 BF BF C7 C7 26 2C 2C 27 2D 2D 27 2D
.byte $2D, $26, $2C, $2C, $28, $2E, $32, $29, $2F, $33, $29, $2F, $33, $28, $2E, $32 ; CPU:$EA70 PRG:2A70 2D 26 2C 2C 28 2E 32 29 2F 33 29 2F 33 28 2E 32
.byte $2A, $30, $34, $2B, $31, $35, $2B, $31, $35, $2A, $30, $34, $A6, $A7, $A8, $A9 ; CPU:$EA80 PRG:2A80 2A 30 34 2B 31 35 2B 31 35 2A 30 34 A6 A7 A8 A9
.byte $AA, $AB, $AC, $AD, $00, $DD, $DE, $DF, $E0, $E1, $E2, $E3, $00, $06, $06, $01 ; CPU:$EA90 PRG:2A90 AA AB AC AD 00 DD DE DF E0 E1 E2 E3 00 06 06 01
.byte $07, $07, $1A, $B9, $01, $07, $07, $00, $06, $06, $1B, $B9, $02, $08, $0C, $03 ; CPU:$EAA0 PRG:2AA0 07 07 1A B9 01 07 07 00 06 06 1B B9 02 08 0C 03
.byte $09, $0D, $1C, $20, $03, $09, $0D, $02, $08, $0C, $1D, $21, $04, $0A, $0E, $05 ; CPU:$EAB0 PRG:2AB0 09 0D 1C 20 03 09 0D 02 08 0C 1D 21 04 0A 0E 05
.byte $0B, $0F, $1E, $22, $05, $0B, $0F, $04, $0A, $0E, $1F, $23, $38, $48, $58, $40 ; CPU:$EAC0 PRG:2AC0 0B 0F 1E 22 05 0B 0F 04 0A 0E 1F 23 38 48 58 40
.byte $50 ; CPU:$EAD0 PRG:2AD0 50
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel4_EAD1_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel4_EAD1_3:
lda #$00 ; CPU:$EAD1 PRG:2AD1 A9 00
sta ZpE3 ; CPU:$EAD3 PRG:2AD3 85 E3
sta $012B ; CPU:$EAD5 PRG:2AD5 8D 2B 01
dec $012C ; CPU:$EAD8 PRG:2AD8 CE 2C 01
jsr UpdateMusicChannel33 ; CPU:$EADB PRG:2ADB 20 E8 F3
; -----------------------------------------------------------------------------
; Routine: SubCEADE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEADE:
jsr InitPPU ; CPU:$EADE PRG:2ADE 20 49 E0
and #$C0 ; CPU:$EAE1 PRG:2AE1 29 C0
beq SubCEADE ; CPU:$EAE3 PRG:2AE3 F0 F9
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel5:
jsr WaitVBlank_E0232 ; CPU:$EAE5 PRG:2AE5 20 2C E0
jsr InitPPU ; CPU:$EAE8 PRG:2AE8 20 49 E0
and #$C0 ; CPU:$EAEB PRG:2AEB 29 C0
beq UpdateSoundChannel6 ; CPU:$EAED PRG:2AED F0 1E
inc ZpE3 ; CPU:$EAEF PRG:2AEF E6 E3
lda ZpE3 ; CPU:$EAF1 PRG:2AF1 A5 E3
cmp #$14 ; CPU:$EAF3 PRG:2AF3 C9 14
bcc SubCEAF9 ; CPU:$EAF5 PRG:2AF5 90 02
dec ZpE3 ; CPU:$EAF7 PRG:2AF7 C6 E3
; -----------------------------------------------------------------------------
; Routine: SubCEAF9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEAF9:
lda ZpE3 ; CPU:$EAF9 PRG:2AF9 A5 E3
lsr a ; CPU:$EAFB PRG:2AFB 4A
lsr a ; CPU:$EAFC PRG:2AFC 4A
sta $0125 ; CPU:$EAFD PRG:2AFD 8D 25 01
cmp #$01 ; CPU:$EB00 PRG:2B00 C9 01
bne SubCEB07 ; CPU:$EB02 PRG:2B02 D0 03
inc $0126 ; CPU:$EB04 PRG:2B04 EE 26 01
; -----------------------------------------------------------------------------
; Routine: SubCEB07
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEB07:
jsr UpdateSoundChannel7 ; CPU:$EB07 PRG:2B07 20 27 EB
jmp UpdateSoundChannel5 ; CPU:$EB0A PRG:2B0A 4C E5 EA
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel6:
jsr WaitVBlank_E0232 ; CPU:$EB0D PRG:2B0D 20 2C E0
dec $0125 ; CPU:$EB10 PRG:2B10 CE 25 01
bne SubCEB18 ; CPU:$EB13 PRG:2B13 D0 03
inc $0126 ; CPU:$EB15 PRG:2B15 EE 26 01
; -----------------------------------------------------------------------------
; Routine: SubCEB18
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEB18:
bmi SubCEB20 ; CPU:$EB18 PRG:2B18 30 06
jsr UpdateSoundChannel7 ; CPU:$EB1A PRG:2B1A 20 27 EB
jmp UpdateSoundChannel6 ; CPU:$EB1D PRG:2B1D 4C 0D EB
; -----------------------------------------------------------------------------
; Routine: SubCEB20
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEB20:
lda #$01 ; CPU:$EB20 PRG:2B20 A9 01
sta ZpFE ; CPU:$EB22 PRG:2B22 85 FE
lda ZpE3 ; CPU:$EB24 PRG:2B24 A5 E3
rts ; CPU:$EB26 PRG:2B26 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel7:
lda #$09 ; CPU:$EB27 PRG:2B27 A9 09
sta ZpE6 ; CPU:$EB29 PRG:2B29 85 E6
ldx $0125 ; CPU:$EB2B PRG:2B2B AE 25 01
ldy $EB66,x ; CPU:$EB2E PRG:2B2E BC 66 EB
ldx #$27 ; CPU:$EB31 PRG:2B31 A2 27
; -----------------------------------------------------------------------------
; Routine: SubCEB33
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEB33:
lda ZpE6 ; CPU:$EB33 PRG:2B33 A5 E6
lsr a ; CPU:$EB35 PRG:2B35 4A
lda #$D8 ; CPU:$EB36 PRG:2B36 A9 D8
bcc SubCEB3C ; CPU:$EB38 PRG:2B38 90 02
lda #$E0 ; CPU:$EB3A PRG:2B3A A9 E0
; -----------------------------------------------------------------------------
; Routine: SubCEB3C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEB3C:
sta $0200,x ; CPU:$EB3C PRG:2B3C 9D 00 02
dex ; CPU:$EB3F PRG:2B3F CA
lda #$00 ; CPU:$EB40 PRG:2B40 A9 00
sta $0200,x ; CPU:$EB42 PRG:2B42 9D 00 02
dex ; CPU:$EB45 PRG:2B45 CA
lda $EB6B,y ; CPU:$EB46 PRG:2B46 B9 6B EB
pha ; CPU:$EB49 PRG:2B49 48
sta $0200,x ; CPU:$EB4A PRG:2B4A 9D 00 02
dex ; CPU:$EB4D PRG:2B4D CA
dey ; CPU:$EB4E PRG:2B4E 88
pla ; CPU:$EB4F PRG:2B4F 68
beq SubCEB5B ; CPU:$EB50 PRG:2B50 F0 09
lda ZpE6 ; CPU:$EB52 PRG:2B52 A5 E6
and #$FE ; CPU:$EB54 PRG:2B54 29 FE
asl a ; CPU:$EB56 PRG:2B56 0A
asl a ; CPU:$EB57 PRG:2B57 0A
adc #$A7 ; CPU:$EB58 PRG:2B58 69 A7
; ---- data $EB5A-$EB5A (1 bytes) ----
.byte $2C ; CPU:$EB5A PRG:2B5A 2C
; -----------------------------------------------------------------------------
; Routine: SubCEB5B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEB5B:
lda #$F0 ; CPU:$EB5B PRG:2B5B A9 F0
sta $0200,x ; CPU:$EB5D PRG:2B5D 9D 00 02
dex ; CPU:$EB60 PRG:2B60 CA
dec ZpE6 ; CPU:$EB61 PRG:2B61 C6 E6
bpl SubCEB33 ; CPU:$EB63 PRG:2B63 10 CE
rts ; CPU:$EB65 PRG:2B65 60
; ---- data $EB66-$EB9C (55 bytes) ----
; referenced by `ldy $EB66,x` at $EB2E (operand $EB66 falls inside this region)
; referenced by `lda $EB6B,y` at $EB46 (operand $EB6B falls inside this region)
.byte $09, $13, $1D, $27, $31, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0 ; CPU:$EB66 PRG:2B66 09 13 1D 27 31 00 00 00 00 00 00 00 00 00 00 E0
.byte $E1, $E2, $E3, $E4, $E5, $E2, $E3, $E4, $E5, $00, $00, $E0, $E1, $E6, $E7, $E6 ; CPU:$EB76 PRG:2B76 E1 E2 E3 E4 E5 E2 E3 E4 E5 00 00 E0 E1 E6 E7 E6
.byte $E7, $E6, $E7, $00, $00, $00, $00, $E0, $E1, $E8, $E9, $EA, $EB, $00, $00, $00 ; CPU:$EB86 PRG:2B86 E7 E6 E7 00 00 00 00 E0 E1 E8 E9 EA EB 00 00 00
.byte $00, $00, $00, $EC, $ED, $E8, $E9 ; CPU:$EB96 PRG:2B96 00 00 00 EC ED E8 E9
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel8:
lda $0126 ; CPU:$EB9D PRG:2B9D AD 26 01
beq SubCEBE0 ; CPU:$EBA0 PRG:2BA0 F0 3E
lda Zp00 ; CPU:$EBA2 PRG:2BA2 A5 00
ora #$04 ; CPU:$EBA4 PRG:2BA4 09 04
sta PPUCTRL ; CPU:$EBA6 PRG:2BA6 8D 00 20
ldy #$00 ; CPU:$EBA9 PRG:2BA9 A0 00
sty $0126 ; CPU:$EBAB PRG:2BAB 8C 26 01
lda $0125 ; CPU:$EBAE PRG:2BAE AD 25 01
beq SubCEBB5 ; CPU:$EBB1 PRG:2BB1 F0 02
ldy #$0C ; CPU:$EBB3 PRG:2BB3 A0 0C
; -----------------------------------------------------------------------------
; Routine: SubCEBB5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEBB5:
ldx #$22 ; CPU:$EBB5 PRG:2BB5 A2 22
lda #$9B ; CPU:$EBB7 PRG:2BB7 A9 9B
jsr WritePPU ; CPU:$EBB9 PRG:2BB9 20 EF E0
ldx #$06 ; CPU:$EBBC PRG:2BBC A2 06
; -----------------------------------------------------------------------------
; Routine: SubCEBBE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEBBE:
lda $EBE1,y ; CPU:$EBBE PRG:2BBE B9 E1 EB
sta PPUDATA ; CPU:$EBC1 PRG:2BC1 8D 07 20
iny ; CPU:$EBC4 PRG:2BC4 C8
dex ; CPU:$EBC5 PRG:2BC5 CA
bne SubCEBBE ; CPU:$EBC6 PRG:2BC6 D0 F6
ldx #$22 ; CPU:$EBC8 PRG:2BC8 A2 22
lda #$9C ; CPU:$EBCA PRG:2BCA A9 9C
jsr WritePPU ; CPU:$EBCC PRG:2BCC 20 EF E0
ldx #$06 ; CPU:$EBCF PRG:2BCF A2 06
; -----------------------------------------------------------------------------
; Routine: SubCEBD1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEBD1:
lda $EBE1,y ; CPU:$EBD1 PRG:2BD1 B9 E1 EB
sta PPUDATA ; CPU:$EBD4 PRG:2BD4 8D 07 20
iny ; CPU:$EBD7 PRG:2BD7 C8
dex ; CPU:$EBD8 PRG:2BD8 CA
bne SubCEBD1 ; CPU:$EBD9 PRG:2BD9 D0 F6
lda Zp00 ; CPU:$EBDB PRG:2BDB A5 00
sta PPUCTRL ; CPU:$EBDD PRG:2BDD 8D 00 20
; -----------------------------------------------------------------------------
; Routine: SubCEBE0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEBE0:
rts ; CPU:$EBE0 PRG:2BE0 60
; ---- data $EBE1-$EBF8 (24 bytes) ----
; referenced by `lda $EBE1,y` at $EBBE (operand $EBE1 falls inside this region)
; referenced by `lda $EBE1,y` at $EBD1 (operand $EBE1 falls inside this region)
.byte $C6, $CE, $CE, $CE, $CE, $CE, $C7, $CF, $CF, $CF, $CF, $CF, $5E, $62, $62, $62 ; CPU:$EBE1 PRG:2BE1 C6 CE CE CE CE CE C7 CF CF CF CF CF 5E 62 62 62
.byte $62, $62, $5F, $63, $63, $63, $63, $63 ; CPU:$EBF1 PRG:2BF1 62 62 5F 63 63 63 63 63
; -----------------------------------------------------------------------------
; Routine: UpdateSoundChannel9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateSoundChannel9:
lda Zp05 ; CPU:$EBF9 PRG:2BF9 A5 05
and #$03 ; CPU:$EBFB PRG:2BFB 29 03
beq SubCEBE0 ; CPU:$EBFD PRG:2BFD F0 E1
tay ; CPU:$EBFF PRG:2BFF A8
dey ; CPU:$EC00 PRG:2C00 88
lda a:$00C9,y ; CPU:$EC01 PRG:2C01 B9 C9 00
beq SubCEC4A ; CPU:$EC04 PRG:2C04 F0 44
sty ZpE8 ; CPU:$EC06 PRG:2C06 84 E8
tay ; CPU:$EC08 PRG:2C08 A8
lda #$10 ; CPU:$EC09 PRG:2C09 A9 10
sta ZpFF ; CPU:$EC0B PRG:2C0B 85 FF
iny ; CPU:$EC0D PRG:2C0D C8
lda #$03 ; CPU:$EC0E PRG:2C0E A9 03
sta ZpEA ; CPU:$EC10 PRG:2C10 85 EA
lda ZpBF ; CPU:$EC12 PRG:2C12 A5 BF
asl a ; CPU:$EC14 PRG:2C14 0A
adc ZpBF ; CPU:$EC15 PRG:2C15 65 BF
ldx ZpE8 ; CPU:$EC17 PRG:2C17 A6 E8
beq SubCEC22 ; CPU:$EC19 PRG:2C19 F0 07
adc #$09 ; CPU:$EC1B PRG:2C1B 69 09
dex ; CPU:$EC1D PRG:2C1D CA
beq SubCEC22 ; CPU:$EC1E PRG:2C1E F0 02
adc #$09 ; CPU:$EC20 PRG:2C20 69 09
; -----------------------------------------------------------------------------
; Routine: SubCEC22
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEC22:
tax ; CPU:$EC22 PRG:2C22 AA
; -----------------------------------------------------------------------------
; Routine: SubCEC23
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEC23:
lda #$21 ; CPU:$EC23 PRG:2C23 A9 21
sta PPUADDR ; CPU:$EC25 PRG:2C25 8D 06 20
lda $EC65,x ; CPU:$EC28 PRG:2C28 BD 65 EC
sta PPUADDR ; CPU:$EC2B PRG:2C2B 8D 06 20
lda #$04 ; CPU:$EC2E PRG:2C2E A9 04
sta ZpE9 ; CPU:$EC30 PRG:2C30 85 E9
; -----------------------------------------------------------------------------
; Routine: SubCEC32
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEC32:
lda $EC4B,y ; CPU:$EC32 PRG:2C32 B9 4B EC
sta PPUDATA ; CPU:$EC35 PRG:2C35 8D 07 20
iny ; CPU:$EC38 PRG:2C38 C8
dec ZpE9 ; CPU:$EC39 PRG:2C39 C6 E9
bne SubCEC32 ; CPU:$EC3B PRG:2C3B D0 F5
inx ; CPU:$EC3D PRG:2C3D E8
dec ZpEA ; CPU:$EC3E PRG:2C3E C6 EA
bne SubCEC23 ; CPU:$EC40 PRG:2C40 D0 E1
lda $EC4B,y ; CPU:$EC42 PRG:2C42 B9 4B EC
ldy ZpE8 ; CPU:$EC45 PRG:2C45 A4 E8
sta a:$00C9,y ; CPU:$EC47 PRG:2C47 99 C9 00
; -----------------------------------------------------------------------------
; Routine: SubCEC4A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEC4A:
rts ; CPU:$EC4A PRG:2C4A 60
; ---- data $EC4B-$EC7F (53 bytes) ----
; referenced by `lda $EC65,x` at $EC28 (operand $EC65 falls inside this region)
; referenced by `lda $EC4B,y` at $EC32 (operand $EC4B falls inside this region)
; referenced by `lda $EC4B,y` at $EC42 (operand $EC4B falls inside this region)
.byte $24, $56, $57, $24, $24, $5C, $5D, $24, $24, $A2, $A3, $24, $0C, $7F, $80, $81 ; CPU:$EC4B PRG:2C4B 24 56 57 24 24 5C 5D 24 24 A2 A3 24 0C 7F 80 81
.byte $82, $83, $84, $85, $86, $87, $88, $89, $8A, $00, $70, $90, $B0, $2D, $4D, $6D ; CPU:$EC5B PRG:2C5B 82 83 84 85 86 87 88 89 8A 00 70 90 B0 2D 4D 6D
.byte $8B, $AB, $CB, $70, $90, $B0, $B0, $D0, $F0, $8B, $AB, $CB, $70, $90, $B0, $33 ; CPU:$EC6B PRG:2C6B 8B AB CB 70 90 B0 B0 D0 F0 8B AB CB 70 90 B0 33
.byte $53, $73, $97, $B7, $D7 ; CPU:$EC7B PRG:2C7B 53 73 97 B7 D7
; -----------------------------------------------------------------------------
; Routine: UpdateMusic2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusic2:
lda ZpCC ; CPU:$EC80 PRG:2C80 A5 CC
beq SubCEC88 ; CPU:$EC82 PRG:2C82 F0 04
lda #$08 ; CPU:$EC84 PRG:2C84 A9 08
sta ZpFE ; CPU:$EC86 PRG:2C86 85 FE
; -----------------------------------------------------------------------------
; Routine: SubCEC88
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEC88:
lda #$00 ; CPU:$EC88 PRG:2C88 A9 00
sta ZpCC ; CPU:$EC8A PRG:2C8A 85 CC
rts ; CPU:$EC8C PRG:2C8C 60
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel10
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel10:
lda Zp05 ; CPU:$EC8D PRG:2C8D A5 05
and #$03 ; CPU:$EC8F PRG:2C8F 29 03
beq SubCEC94 ; CPU:$EC91 PRG:2C91 F0 01
rts ; CPU:$EC93 PRG:2C93 60
; -----------------------------------------------------------------------------
; Routine: SubCEC94
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEC94:
lda ZpEE ; CPU:$EC94 PRG:2C94 A5 EE
sta $02F7 ; CPU:$EC96 PRG:2C96 8D F7 02
clc ; CPU:$EC99 PRG:2C99 18
adc #$08 ; CPU:$EC9A PRG:2C9A 69 08
sta $02FB ; CPU:$EC9C PRG:2C9C 8D FB 02
lda ZpEF ; CPU:$EC9F PRG:2C9F A5 EF
beq SubCECAF ; CPU:$ECA1 PRG:2CA1 F0 0C
inc ZpEE ; CPU:$ECA3 PRG:2CA3 E6 EE
lda ZpEE ; CPU:$ECA5 PRG:2CA5 A5 EE
cmp #$A0 ; CPU:$ECA7 PRG:2CA7 C9 A0
bcc SubCECAF ; CPU:$ECA9 PRG:2CA9 90 04
lda #$00 ; CPU:$ECAB PRG:2CAB A9 00
sta ZpEF ; CPU:$ECAD PRG:2CAD 85 EF
; -----------------------------------------------------------------------------
; Routine: SubCECAF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCECAF:
lda ZpEF ; CPU:$ECAF PRG:2CAF A5 EF
bne SubCECC5 ; CPU:$ECB1 PRG:2CB1 D0 12
lda #$00 ; CPU:$ECB3 PRG:2CB3 A9 00
sta ZpEF ; CPU:$ECB5 PRG:2CB5 85 EF
dec ZpEE ; CPU:$ECB7 PRG:2CB7 C6 EE
lda ZpEE ; CPU:$ECB9 PRG:2CB9 A5 EE
cmp #$74 ; CPU:$ECBB PRG:2CBB C9 74
bcs SubCECC5 ; CPU:$ECBD PRG:2CBD B0 06
inc ZpEE ; CPU:$ECBF PRG:2CBF E6 EE
lda #$03 ; CPU:$ECC1 PRG:2CC1 A9 03
sta ZpEF ; CPU:$ECC3 PRG:2CC3 85 EF
; -----------------------------------------------------------------------------
; Routine: SubCECC5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCECC5:
ldx #$07 ; CPU:$ECC5 PRG:2CC5 A2 07
lda #$24 ; CPU:$ECC7 PRG:2CC7 A9 24
; -----------------------------------------------------------------------------
; Routine: SubCECC9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCECC9:
sta $062E,x ; CPU:$ECC9 PRG:2CC9 9D 2E 06
dex ; CPU:$ECCC PRG:2CCC CA
bpl SubCECC9 ; CPU:$ECCD PRG:2CCD 10 FA
ldx ZpEE ; CPU:$ECCF PRG:2CCF A6 EE
inx ; CPU:$ECD1 PRG:2CD1 E8
txa ; CPU:$ECD2 PRG:2CD2 8A
lsr a ; CPU:$ECD3 PRG:2CD3 4A
lsr a ; CPU:$ECD4 PRG:2CD4 4A
lsr a ; CPU:$ECD5 PRG:2CD5 4A
tay ; CPU:$ECD6 PRG:2CD6 A8
txa ; CPU:$ECD7 PRG:2CD7 8A
and #$07 ; CPU:$ECD8 PRG:2CD8 29 07
tax ; CPU:$ECDA PRG:2CDA AA
lda $ECEE,x ; CPU:$ECDB PRG:2CDB BD EE EC
sta $0620,y ; CPU:$ECDE PRG:2CDE 99 20 06
lda $ECF6,x ; CPU:$ECE1 PRG:2CE1 BD F6 EC
sta $0621,y ; CPU:$ECE4 PRG:2CE4 99 21 06
lda $ECFE,x ; CPU:$ECE7 PRG:2CE7 BD FE EC
sta $0622,y ; CPU:$ECEA PRG:2CEA 99 22 06
rts ; CPU:$ECED PRG:2CED 60
; ---- data $ECEE-$ED05 (24 bytes) ----
; referenced by `lda $ECEE,x` at $ECDB (operand $ECEE falls inside this region)
; referenced by `lda $ECF6,x` at $ECE1 (operand $ECF6 falls inside this region)
; referenced by `lda $ECFE,x` at $ECE7 (operand $ECFE falls inside this region)
.byte $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD, $E2, $E3, $A6, $A6, $A6, $A6, $A6, $A6 ; CPU:$ECEE PRG:2CEE A6 A7 A8 A9 AA AB AC AD E2 E3 A6 A6 A6 A6 A6 A6
.byte $24, $24, $DD, $DE, $DF, $E0, $E1, $E2 ; CPU:$ECFE PRG:2CFE 24 24 DD DE DF E0 E1 E2
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel11
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel11:
ldx ZpBD ; CPU:$ED06 PRG:2D06 A6 BD
lda $EDAE,x ; CPU:$ED08 PRG:2D08 BD AE ED
tax ; CPU:$ED0B PRG:2D0B AA
; -----------------------------------------------------------------------------
; Routine: SubCED0C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCED0C:
lda $ED2E,x ; CPU:$ED0C PRG:2D0C BD 2E ED
sta PPUADDR ; CPU:$ED0F PRG:2D0F 8D 06 20
lda $ED3E,x ; CPU:$ED12 PRG:2D12 BD 3E ED
sta PPUADDR ; CPU:$ED15 PRG:2D15 8D 06 20
ldy $ED9E,x ; CPU:$ED18 PRG:2D18 BC 9E ED
lda #$08 ; CPU:$ED1B PRG:2D1B A9 08
sta ZpE3 ; CPU:$ED1D PRG:2D1D 85 E3
; -----------------------------------------------------------------------------
; Routine: SubCED1F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCED1F:
lda $ED4E,y ; CPU:$ED1F PRG:2D1F B9 4E ED
sta PPUDATA ; CPU:$ED22 PRG:2D22 8D 07 20
dey ; CPU:$ED25 PRG:2D25 88
dec ZpE3 ; CPU:$ED26 PRG:2D26 C6 E3
bpl SubCED1F ; CPU:$ED28 PRG:2D28 10 F5
dex ; CPU:$ED2A PRG:2D2A CA
bpl SubCED0C ; CPU:$ED2B PRG:2D2B 10 DF
rts ; CPU:$ED2D PRG:2D2D 60
; ---- data $ED2E-$EDAF (130 bytes) ----
; referenced by `lda $EDAE,x` at $ED08 (operand $EDAE falls inside this region)
; referenced by `lda $ED2E,x` at $ED0C (operand $ED2E falls inside this region)
; referenced by `lda $ED3E,x` at $ED12 (operand $ED3E falls inside this region)
; referenced by `ldy $ED9E,x` at $ED18 (operand $ED9E falls inside this region)
; referenced by `lda $ED4E,y` at $ED1F (operand $ED4E falls inside this region)
.byte $20, $20, $20, $20, $21, $21, $21, $21, $22, $22, $23, $23, $21, $21, $22, $22 ; CPU:$ED2E PRG:2D2E 20 20 20 20 21 21 21 21 22 22 23 23 21 21 22 22
.byte $81, $A1, $C1, $E1, $41, $61, $81, $A1, $C1, $E1, $01, $21, $C1, $E1, $01, $21 ; CPU:$ED3E PRG:2D3E 81 A1 C1 E1 41 61 81 A1 C1 E1 01 21 C1 E1 01 21
.byte $30, $24, $0D, $19, $18, $1D, $0C, $24, $30, $24, $0D, $19, $1E, $01, $0C, $24 ; CPU:$ED4E PRG:2D4E 30 24 0D 19 18 1D 0C 24 30 24 0D 19 1E 01 0C 24
.byte $30, $24, $0D, $19, $1E, $02, $0C, $24, $14, $0E, $0E, $0E, $0E, $0E, $0E, $0F ; CPU:$ED5E PRG:2D5E 30 24 0D 19 1E 02 0C 24 14 0E 0E 0E 0E 0E 0E 0F
.byte $16, $00, $00, $00, $00, $00, $00, $10, $1A, $13, $13, $13, $13, $13, $13, $11 ; CPU:$ED6E PRG:2D6E 16 00 00 00 00 00 00 10 1A 13 13 13 13 13 13 11
.byte $30, $0D, $15, $15, $0A, $0B, $0C, $24, $14, $0E, $0E, $0F, $24, $24, $24, $24 ; CPU:$ED7E PRG:2D7E 30 0D 15 15 0A 0B 0C 24 14 0E 0E 0F 24 24 24 24
.byte $16, $00, $00, $10, $24, $24, $24, $24, $1A, $13, $13, $11, $24, $24, $24, $24 ; CPU:$ED8E PRG:2D8E 16 00 00 10 24 24 24 24 1A 13 13 11 24 24 24 24
.byte $07, $1F, $27, $2F, $0F, $1F, $27, $2F, $37, $3F, $47, $4F, $17, $1F, $27, $2F ; CPU:$ED9E PRG:2D9E 07 1F 27 2F 0F 1F 27 2F 37 3F 47 4F 17 1F 27 2F
.byte $0B, $0F ; CPU:$EDAE PRG:2DAE 0B 0F
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel12
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel12:
lda $0135 ; CPU:$EDB0 PRG:2DB0 AD 35 01
bne SubCEDB6 ; CPU:$EDB3 PRG:2DB3 D0 01
rts ; CPU:$EDB5 PRG:2DB5 60
; -----------------------------------------------------------------------------
; Routine: SubCEDB6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEDB6:
dec $0135 ; CPU:$EDB6 PRG:2DB6 CE 35 01
ldy ZpBE ; CPU:$EDB9 PRG:2DB9 A4 BE
ldx #$22 ; CPU:$EDBB PRG:2DBB A2 22
lda #$2E ; CPU:$EDBD PRG:2DBD A9 2E
jsr WritePPU ; CPU:$EDBF PRG:2DBF 20 EF E0
lda $0135 ; CPU:$EDC2 PRG:2DC2 AD 35 01
and #$20 ; CPU:$EDC5 PRG:2DC5 29 20
bne SubCEDD4 ; CPU:$EDC7 PRG:2DC7 D0 0B
ldx #$08 ; CPU:$EDC9 PRG:2DC9 A2 08
lda #$24 ; CPU:$EDCB PRG:2DCB A9 24
; -----------------------------------------------------------------------------
; Routine: SubCEDCD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEDCD:
sta PPUDATA ; CPU:$EDCD PRG:2DCD 8D 07 20
dex ; CPU:$EDD0 PRG:2DD0 CA
bne SubCEDCD ; CPU:$EDD1 PRG:2DD1 D0 FA
rts ; CPU:$EDD3 PRG:2DD3 60
; -----------------------------------------------------------------------------
; Routine: SubCEDD4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEDD4:
ldx #$06 ; CPU:$EDD4 PRG:2DD4 A2 06
; -----------------------------------------------------------------------------
; Routine: SubCEDD6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEDD6:
lda $EDE6,x ; CPU:$EDD6 PRG:2DD6 BD E6 ED
sta PPUDATA ; CPU:$EDD9 PRG:2DD9 8D 07 20
dex ; CPU:$EDDC PRG:2DDC CA
bpl SubCEDD6 ; CPU:$EDDD PRG:2DDD 10 F7
ldx ZpBE ; CPU:$EDDF PRG:2DDF A6 BE
inx ; CPU:$EDE1 PRG:2DE1 E8
stx PPUDATA ; CPU:$EDE2 PRG:2DE2 8E 07 20
rts ; CPU:$EDE5 PRG:2DE5 60
; ---- data $EDE6-$EDEC (7 bytes) ----
; referenced by `lda $EDE6,x` at $EDD6 (operand $EDE6 falls inside this region)
.byte $24, $1B, $12, $EE, $0A, $15, $19 ; CPU:$EDE6 PRG:2DE6 24 1B 12 EE 0A 15 19
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel13
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel13:
lda $0156 ; CPU:$EDED PRG:2DED AD 56 01
beq SubCEE2B ; CPU:$EDF0 PRG:2DF0 F0 39
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel14
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel14:
lda #$00 ; CPU:$EDF2 PRG:2DF2 A9 00
sta $0156 ; CPU:$EDF4 PRG:2DF4 8D 56 01
ldy ZpBE ; CPU:$EDF7 PRG:2DF7 A4 BE
ldx $EE37,y ; CPU:$EDF9 PRG:2DF9 BE 37 EE
lda $EE39,y ; CPU:$EDFC PRG:2DFC B9 39 EE
jsr WritePPU ; CPU:$EDFF PRG:2DFF 20 EF E0
ldx #$05 ; CPU:$EE02 PRG:2E02 A2 05
lda $EE3B,y ; CPU:$EE04 PRG:2E04 B9 3B EE
tay ; CPU:$EE07 PRG:2E07 A8
; -----------------------------------------------------------------------------
; Routine: SubCEE08
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEE08:
lda $0100,y ; CPU:$EE08 PRG:2E08 B9 00 01
sta PPUDATA ; CPU:$EE0B PRG:2E0B 8D 07 20
iny ; CPU:$EE0E PRG:2E0E C8
dex ; CPU:$EE0F PRG:2E0F CA
bne SubCEE08 ; CPU:$EE10 PRG:2E10 D0 F6
ldx #$20 ; CPU:$EE12 PRG:2E12 A2 20
lda #$C2 ; CPU:$EE14 PRG:2E14 A9 C2
jsr WritePPU ; CPU:$EE16 PRG:2E16 20 EF E0
ldx ZpBC ; CPU:$EE19 PRG:2E19 A6 BC
lda $EE3B,x ; CPU:$EE1B PRG:2E1B BD 3B EE
tax ; CPU:$EE1E PRG:2E1E AA
ldy #$05 ; CPU:$EE1F PRG:2E1F A0 05
; -----------------------------------------------------------------------------
; Routine: SubCEE21
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEE21:
lda $010E,x ; CPU:$EE21 PRG:2E21 BD 0E 01
sta PPUDATA ; CPU:$EE24 PRG:2E24 8D 07 20
inx ; CPU:$EE27 PRG:2E27 E8
dey ; CPU:$EE28 PRG:2E28 88
bne SubCEE21 ; CPU:$EE29 PRG:2E29 D0 F6
; -----------------------------------------------------------------------------
; Routine: SubCEE2B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEE2B:
ldx ZpBE ; CPU:$EE2B PRG:2E2B A6 BE
ldy $0151,x ; CPU:$EE2D PRG:2E2D BC 51 01
ldx #$23 ; CPU:$EE30 PRG:2E30 A2 23
lda #$07 ; CPU:$EE32 PRG:2E32 A9 07
jmp WritePPU2 ; CPU:$EE34 PRG:2E34 4C F6 E0
; ---- data $EE37-$EE3C (6 bytes) ----
; referenced by `ldx $EE37,y` at $EDF9 (operand $EE37 falls inside this region)
; referenced by `lda $EE39,y` at $EDFC (operand $EE39 falls inside this region)
; referenced by `lda $EE3B,y` at $EE04 (operand $EE3B falls inside this region)
; referenced by `lda $EE3B,x` at $EE1B (operand $EE3B falls inside this region)
; referenced by `ldy $EE3B,x` at $EE77 (operand $EE3B falls inside this region)
; referenced by `ldy $EE3B,x` at $EE9F (operand $EE3B falls inside this region)
; ... and 3 further references from decoded code
.byte $21, $22, $82, $02, $00, $05 ; CPU:$EE37 PRG:2E37 21 22 82 02 00 05
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel15
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel15:
ldx Zp04 ; CPU:$EE3D PRG:2E3D A6 04
beq SubCEE42 ; CPU:$EE3F PRG:2E3F F0 01
rts ; CPU:$EE41 PRG:2E41 60
; -----------------------------------------------------------------------------
; Routine: SubCEE42
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEE42:
inc $0156 ; CPU:$EE42 PRG:2E42 EE 56 01
ldx $014B ; CPU:$EE45 PRG:2E45 AE 4B 01
beq UpdateMusicChannel16 ; CPU:$EE48 PRG:2E48 F0 03
jsr UpdateMusicChannel16 ; CPU:$EE4A PRG:2E4A 20 4D EE
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel16
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel16:
pha ; CPU:$EE4D PRG:2E4D 48
ldx ZpBE ; CPU:$EE4E PRG:2E4E A6 BE
ldy $EEDB,x ; CPU:$EE50 PRG:2E50 BC DB EE
clc ; CPU:$EE53 PRG:2E53 18
adc #$04 ; CPU:$EE54 PRG:2E54 69 04
tax ; CPU:$EE56 PRG:2E56 AA
lda #$05 ; CPU:$EE57 PRG:2E57 A9 05
sta ZpEB ; CPU:$EE59 PRG:2E59 85 EB
; -----------------------------------------------------------------------------
; Routine: SubCEE5B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEE5B:
lda $0100,y ; CPU:$EE5B PRG:2E5B B9 00 01
adc $EEDD,x ; CPU:$EE5E PRG:2E5E 7D DD EE
cmp #$0A ; CPU:$EE61 PRG:2E61 C9 0A
bcc SubCEE67 ; CPU:$EE63 PRG:2E63 90 02
sbc #$0A ; CPU:$EE65 PRG:2E65 E9 0A
; -----------------------------------------------------------------------------
; Routine: SubCEE67
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEE67:
sta $0100,y ; CPU:$EE67 PRG:2E67 99 00 01
dey ; CPU:$EE6A PRG:2E6A 88
dex ; CPU:$EE6B PRG:2E6B CA
dec ZpEB ; CPU:$EE6C PRG:2E6C C6 EB
bne SubCEE5B ; CPU:$EE6E PRG:2E6E D0 EB
lda #$00 ; CPU:$EE70 PRG:2E70 A9 00
sta $014A ; CPU:$EE72 PRG:2E72 8D 4A 01
ldx ZpBE ; CPU:$EE75 PRG:2E75 A6 BE
ldy $EE3B,x ; CPU:$EE77 PRG:2E77 BC 3B EE
lda $0100,y ; CPU:$EE7A PRG:2E7A B9 00 01
cmp #$01 ; CPU:$EE7D PRG:2E7D C9 01
bne SubCEE8B ; CPU:$EE7F PRG:2E7F D0 0A
lda $0101,y ; CPU:$EE81 PRG:2E81 B9 01 01
cmp #$05 ; CPU:$EE84 PRG:2E84 C9 05
bcs SubCEE8B ; CPU:$EE86 PRG:2E86 B0 03
inc $014A ; CPU:$EE88 PRG:2E88 EE 4A 01
; -----------------------------------------------------------------------------
; Routine: SubCEE8B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEE8B:
lda $010A,x ; CPU:$EE8B PRG:2E8B BD 0A 01
bne SubCEE9D ; CPU:$EE8E PRG:2E8E D0 0D
lda $0101,y ; CPU:$EE90 PRG:2E90 B9 01 01
cmp #$05 ; CPU:$EE93 PRG:2E93 C9 05
bcc SubCEE9D ; CPU:$EE95 PRG:2E95 90 06
inc $010A,x ; CPU:$EE97 PRG:2E97 FE 0A 01
inc $0151,x ; CPU:$EE9A PRG:2E9A FE 51 01
; -----------------------------------------------------------------------------
; Routine: SubCEE9D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEE9D:
ldx ZpBE ; CPU:$EE9D PRG:2E9D A6 BE
ldy $EE3B,x ; CPU:$EE9F PRG:2E9F BC 3B EE
ldx ZpBC ; CPU:$EEA2 PRG:2EA2 A6 BC
lda $EE3B,x ; CPU:$EEA4 PRG:2EA4 BD 3B EE
tax ; CPU:$EEA7 PRG:2EA7 AA
lda #$05 ; CPU:$EEA8 PRG:2EA8 A9 05
sta ZpEB ; CPU:$EEAA PRG:2EAA 85 EB
; -----------------------------------------------------------------------------
; Routine: SubCEEAC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEEAC:
lda $010E,x ; CPU:$EEAC PRG:2EAC BD 0E 01
cmp $0100,y ; CPU:$EEAF PRG:2EAF D9 00 01
bcc SubCEEBE ; CPU:$EEB2 PRG:2EB2 90 0A
bne SubCEEBC ; CPU:$EEB4 PRG:2EB4 D0 06
inx ; CPU:$EEB6 PRG:2EB6 E8
iny ; CPU:$EEB7 PRG:2EB7 C8
dec ZpEB ; CPU:$EEB8 PRG:2EB8 C6 EB
bne SubCEEAC ; CPU:$EEBA PRG:2EBA D0 F0
; -----------------------------------------------------------------------------
; Routine: SubCEEBC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEEBC:
pla ; CPU:$EEBC PRG:2EBC 68
rts ; CPU:$EEBD PRG:2EBD 60
; -----------------------------------------------------------------------------
; Routine: SubCEEBE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEEBE:
ldx ZpBE ; CPU:$EEBE PRG:2EBE A6 BE
ldy $EE3B,x ; CPU:$EEC0 PRG:2EC0 BC 3B EE
ldx ZpBC ; CPU:$EEC3 PRG:2EC3 A6 BC
lda $EE3B,x ; CPU:$EEC5 PRG:2EC5 BD 3B EE
tax ; CPU:$EEC8 PRG:2EC8 AA
lda #$05 ; CPU:$EEC9 PRG:2EC9 A9 05
sta ZpEB ; CPU:$EECB PRG:2ECB 85 EB
; -----------------------------------------------------------------------------
; Routine: SubCEECD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEECD:
lda $0100,y ; CPU:$EECD PRG:2ECD B9 00 01
sta $010E,x ; CPU:$EED0 PRG:2ED0 9D 0E 01
inx ; CPU:$EED3 PRG:2ED3 E8
iny ; CPU:$EED4 PRG:2ED4 C8
dec ZpEB ; CPU:$EED5 PRG:2ED5 C6 EB
bne SubCEECD ; CPU:$EED7 PRG:2ED7 D0 F4
pla ; CPU:$EED9 PRG:2ED9 68
rts ; CPU:$EEDA PRG:2EDA 60
; ---- data $EEDB-$EF27 (77 bytes) ----
; referenced by `ldy $EEDB,x` at $EE50 (operand $EEDB falls inside this region)
; referenced by `adc $EEDD,x` at $EE5E (operand $EEDD falls inside this region)
.byte $04, $09, $00, $00, $00, $00, $01, $00, $00, $07, $07, $07, $00, $00, $00, $01 ; CPU:$EEDB PRG:2EDB 04 09 00 00 00 00 01 00 00 07 07 07 00 00 00 01
.byte $00, $00, $00, $00, $02, $00, $00, $00, $00, $03, $00, $00, $00, $00, $04, $00 ; CPU:$EEEB PRG:2EEB 00 00 00 00 02 00 00 00 00 03 00 00 00 00 04 00
.byte $00, $00, $00, $05, $00, $00, $00, $00, $06, $00, $00, $00, $00, $07, $00, $00 ; CPU:$EEFB PRG:2EFB 00 00 00 05 00 00 00 00 06 00 00 00 00 07 00 00
.byte $00, $00, $08, $00, $00, $00, $00, $09, $00, $00, $00, $01, $00, $00, $00, $00 ; CPU:$EF0B PRG:2F0B 00 00 08 00 00 00 00 09 00 00 00 01 00 00 00 00
.byte $03, $03, $03, $00, $00, $05, $00, $00, $00, $00, $00, $00, $00 ; CPU:$EF1B PRG:2F1B 03 03 03 00 00 05 00 00 00 00 00 00 00
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel17
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel17:
ldx ZpBF ; CPU:$EF28 PRG:2F28 A6 BF
beq SubCEF60 ; CPU:$EF2A PRG:2F2A F0 34
dex ; CPU:$EF2C PRG:2F2C CA
beq SubCEF34 ; CPU:$EF2D PRG:2F2D F0 05
; -----------------------------------------------------------------------------
; Routine: SubCEF2F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEF2F:
lda #$00 ; CPU:$EF2F PRG:2F2F A9 00
sta ZpD3 ; CPU:$EF31 PRG:2F31 85 D3
rts ; CPU:$EF33 PRG:2F33 60
; -----------------------------------------------------------------------------
; Routine: SubCEF34
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEF34:
lda ZpD3 ; CPU:$EF34 PRG:2F34 A5 D3
beq SubCEF2F ; CPU:$EF36 PRG:2F36 F0 F7
ldx #$08 ; CPU:$EF38 PRG:2F38 A2 08
stx ZpFF ; CPU:$EF3A PRG:2F3A 86 FF
ora $0128 ; CPU:$EF3C PRG:2F3C 0D 28 01
cmp $0128 ; CPU:$EF3F PRG:2F3F CD 28 01
beq SubCEF2F ; CPU:$EF42 PRG:2F42 F0 EB
sta $0128 ; CPU:$EF44 PRG:2F44 8D 28 01
ldx #$00 ; CPU:$EF47 PRG:2F47 A2 00
; -----------------------------------------------------------------------------
; Routine: SubCEF49
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEF49:
asl ZpD3 ; CPU:$EF49 PRG:2F49 06 D3
bcs SubCEF50 ; CPU:$EF4B PRG:2F4B B0 03
inx ; CPU:$EF4D PRG:2F4D E8
bne SubCEF49 ; CPU:$EF4E PRG:2F4E D0 F9
; -----------------------------------------------------------------------------
; Routine: SubCEF50
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEF50:
jsr UpdateMusicChannel18 ; CPU:$EF50 PRG:2F50 20 79 EF
lda $0128 ; CPU:$EF53 PRG:2F53 AD 28 01
cmp #$F8 ; CPU:$EF56 PRG:2F56 C9 F8
bne SubCEF5F ; CPU:$EF58 PRG:2F58 D0 05
inc ZpF0 ; CPU:$EF5A PRG:2F5A E6 F0
inc $0133 ; CPU:$EF5C PRG:2F5C EE 33 01
; -----------------------------------------------------------------------------
; Routine: SubCEF5F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEF5F:
rts ; CPU:$EF5F PRG:2F5F 60
; -----------------------------------------------------------------------------
; Routine: SubCEF60
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEF60:
lda ZpD3 ; CPU:$EF60 PRG:2F60 A5 D3
beq SubCEF5F ; CPU:$EF62 PRG:2F62 F0 FB
lda #$00 ; CPU:$EF64 PRG:2F64 A9 00
sta ZpD3 ; CPU:$EF66 PRG:2F66 85 D3
lda #$08 ; CPU:$EF68 PRG:2F68 A9 08
sta ZpFF ; CPU:$EF6A PRG:2F6A 85 FF
ldx $0130 ; CPU:$EF6C PRG:2F6C AE 30 01
cpx #$F0 ; CPU:$EF6F PRG:2F6F E0 F0
bne SubCEF5F ; CPU:$EF71 PRG:2F71 D0 EC
sta $0130 ; CPU:$EF73 PRG:2F73 8D 30 01
jmp UpdateMusicChannel21 ; CPU:$EF76 PRG:2F76 4C 3F F0
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel18
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel18:
lda #$20 ; CPU:$EF79 PRG:2F79 A9 20
sta PPUADDR ; CPU:$EF7B PRG:2F7B 8D 06 20
lda $EFBA,x ; CPU:$EF7E PRG:2F7E BD BA EF
sta PPUADDR ; CPU:$EF81 PRG:2F81 8D 06 20
lda $EFC9,x ; CPU:$EF84 PRG:2F84 BD C9 EF
sta PPUDATA ; CPU:$EF87 PRG:2F87 8D 07 20
lda #$A7 ; CPU:$EF8A PRG:2F8A A9 A7
sta PPUDATA ; CPU:$EF8C PRG:2F8C 8D 07 20
lda #$20 ; CPU:$EF8F PRG:2F8F A9 20
sta PPUADDR ; CPU:$EF91 PRG:2F91 8D 06 20
lda $EFBF,x ; CPU:$EF94 PRG:2F94 BD BF EF
sta PPUADDR ; CPU:$EF97 PRG:2F97 8D 06 20
ldy #$AC ; CPU:$EF9A PRG:2F9A A0 AC
sty PPUDATA ; CPU:$EF9C PRG:2F9C 8C 07 20
iny ; CPU:$EF9F PRG:2F9F C8
sty PPUDATA ; CPU:$EFA0 PRG:2FA0 8C 07 20
lda #$20 ; CPU:$EFA3 PRG:2FA3 A9 20
sta PPUADDR ; CPU:$EFA5 PRG:2FA5 8D 06 20
lda $EFC4,x ; CPU:$EFA8 PRG:2FA8 BD C4 EF
sta PPUADDR ; CPU:$EFAB PRG:2FAB 8D 06 20
lda #$B0 ; CPU:$EFAE PRG:2FAE A9 B0
sta PPUDATA ; CPU:$EFB0 PRG:2FB0 8D 07 20
lda $EFCE,x ; CPU:$EFB3 PRG:2FB3 BD CE EF
sta PPUDATA ; CPU:$EFB6 PRG:2FB6 8D 07 20
rts ; CPU:$EFB9 PRG:2FB9 60
; ---- data $EFBA-$EFD2 (25 bytes) ----
; referenced by `lda $EFBA,x` at $EF7E (operand $EFBA falls inside this region)
; referenced by `lda $EFC9,x` at $EF84 (operand $EFC9 falls inside this region)
; referenced by `lda $EFBF,x` at $EF94 (operand $EFBF falls inside this region)
; referenced by `lda $EFC4,x` at $EFA8 (operand $EFC4 falls inside this region)
; referenced by `lda $EFCE,x` at $EFB3 (operand $EFCE falls inside this region)
.byte $6D, $6F, $71, $73, $75, $8D, $8F, $91, $93, $95, $AD, $AF, $B1, $B3, $B5, $A6 ; CPU:$EFBA PRG:2FBA 6D 6F 71 73 75 8D 8F 91 93 95 AD AF B1 B3 B5 A6
.byte $A8, $A9, $AA, $AB, $B1, $B2, $B3, $B4, $B5 ; CPU:$EFCA PRG:2FCA A8 A9 AA AB B1 B2 B3 B4 B5
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel19
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel19:
lda ZpCE ; CPU:$EFD3 PRG:2FD3 A5 CE
bne SubCEFD8 ; CPU:$EFD5 PRG:2FD5 D0 01
rts ; CPU:$EFD7 PRG:2FD7 60
; -----------------------------------------------------------------------------
; Routine: SubCEFD8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEFD8:
lda #$04 ; CPU:$EFD8 PRG:2FD8 A9 04
sta ZpFF ; CPU:$EFDA PRG:2FDA 85 FF
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel20
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel20:
ldx ZpBF ; CPU:$EFDC PRG:2FDC A6 BF
lda $0130,x ; CPU:$EFDE PRG:2FDE BD 30 01
ora ZpCE ; CPU:$EFE1 PRG:2FE1 05 CE
sta $0130,x ; CPU:$EFE3 PRG:2FE3 9D 30 01
sta ZpE8 ; CPU:$EFE6 PRG:2FE6 85 E8
txa ; CPU:$EFE8 PRG:2FE8 8A
bne SubCF013 ; CPU:$EFE9 PRG:2FE9 D0 28
lda Zp00 ; CPU:$EFEB PRG:2FEB A5 00
ora #$04 ; CPU:$EFED PRG:2FED 09 04
sta PPUCTRL ; CPU:$EFEF PRG:2FEF 8D 00 20
ldx #$22 ; CPU:$EFF2 PRG:2FF2 A2 22
lda #$0B ; CPU:$EFF4 PRG:2FF4 A9 0B
jsr WritePPU ; CPU:$EFF6 PRG:2FF6 20 EF E0
ldx #$04 ; CPU:$EFF9 PRG:2FF9 A2 04
; -----------------------------------------------------------------------------
; Routine: SubCEFFB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCEFFB:
lda #$24 ; CPU:$EFFB PRG:2FFB A9 24
asl ZpE8 ; CPU:$EFFD PRG:2FFD 06 E8
bcs SubCF003 ; CPU:$EFFF PRG:2FFF B0 02
lda #$8B ; CPU:$F001 PRG:3001 A9 8B
; -----------------------------------------------------------------------------
; Routine: SubCF003
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF003:
sta PPUDATA ; CPU:$F003 PRG:3003 8D 07 20
dex ; CPU:$F006 PRG:3006 CA
bne SubCEFFB ; CPU:$F007 PRG:3007 D0 F2
lda #$00 ; CPU:$F009 PRG:3009 A9 00
sta ZpCE ; CPU:$F00B PRG:300B 85 CE
lda Zp00 ; CPU:$F00D PRG:300D A5 00
sta PPUCTRL ; CPU:$F00F PRG:300F 8D 00 20
rts ; CPU:$F012 PRG:3012 60
; -----------------------------------------------------------------------------
; Routine: SubCF013
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF013:
ldx #$00 ; CPU:$F013 PRG:3013 A2 00
; -----------------------------------------------------------------------------
; Routine: SubCF015
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF015:
asl ZpE8 ; CPU:$F015 PRG:3015 06 E8
bcc SubCF021 ; CPU:$F017 PRG:3017 90 08
lda #$F0 ; CPU:$F019 PRG:3019 A9 F0
sta $0290,x ; CPU:$F01B PRG:301B 9D 90 02
sta $02AC,x ; CPU:$F01E PRG:301E 9D AC 02
; -----------------------------------------------------------------------------
; Routine: SubCF021
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF021:
inx ; CPU:$F021 PRG:3021 E8
inx ; CPU:$F022 PRG:3022 E8
inx ; CPU:$F023 PRG:3023 E8
inx ; CPU:$F024 PRG:3024 E8
cpx #$1C ; CPU:$F025 PRG:3025 E0 1C
bne SubCF015 ; CPU:$F027 PRG:3027 D0 EC
lda ZpCE ; CPU:$F029 PRG:3029 A5 CE
beq SubCF03A ; CPU:$F02B PRG:302B F0 0D
lda $0131 ; CPU:$F02D PRG:302D AD 31 01
cmp #$FE ; CPU:$F030 PRG:3030 C9 FE
bne SubCF03A ; CPU:$F032 PRG:3032 D0 06
inc $012C ; CPU:$F034 PRG:3034 EE 2C 01
inc $012B ; CPU:$F037 PRG:3037 EE 2B 01
; -----------------------------------------------------------------------------
; Routine: SubCF03A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF03A:
lda #$00 ; CPU:$F03A PRG:303A A9 00
sta ZpCE ; CPU:$F03C PRG:303C 85 CE
rts ; CPU:$F03E PRG:303E 60
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel21
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel21:
ldx ZpBF ; CPU:$F03F PRG:303F A6 BF
cpx #$02 ; CPU:$F041 PRG:3041 E0 02
beq SubCF03A ; CPU:$F043 PRG:3043 F0 F5
lda $E2C4,x ; CPU:$F045 PRG:3045 BD C4 E2
sta ZpDB ; CPU:$F048 PRG:3048 85 DB
lda $E2C6,x ; CPU:$F04A PRG:304A BD C6 E2
sta ZpDC ; CPU:$F04D PRG:304D 85 DC
lda $0130,x ; CPU:$F04F PRG:304F BD 30 01
sta ZpE3 ; CPU:$F052 PRG:3052 85 E3
lda $E2C8,x ; CPU:$F054 PRG:3054 BD C8 E2
tax ; CPU:$F057 PRG:3057 AA
ldy #$00 ; CPU:$F058 PRG:3058 A0 00
; -----------------------------------------------------------------------------
; Routine: SubCF05A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF05A:
lda #$24 ; CPU:$F05A PRG:305A A9 24
asl ZpE3 ; CPU:$F05C PRG:305C 06 E3
bcs SubCF062 ; CPU:$F05E PRG:305E B0 02
lda #$8B ; CPU:$F060 PRG:3060 A9 8B
; -----------------------------------------------------------------------------
; Routine: SubCF062
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF062:
sta (ZpDB),y ; CPU:$F062 PRG:3062 91 DB
tya ; CPU:$F064 PRG:3064 98
clc ; CPU:$F065 PRG:3065 18
adc #$20 ; CPU:$F066 PRG:3066 69 20
tay ; CPU:$F068 PRG:3068 A8
dex ; CPU:$F069 PRG:3069 CA
bne SubCF05A ; CPU:$F06A PRG:306A D0 EE
jmp UpdateMusicChannel20 ; CPU:$F06C PRG:306C 4C DC EF
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel22
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel22:
lda Zp05 ; CPU:$F06F PRG:306F A5 05
and #$03 ; CPU:$F071 PRG:3071 29 03
beq SubCF076 ; CPU:$F073 PRG:3073 F0 01
rts ; CPU:$F075 PRG:3075 60
; -----------------------------------------------------------------------------
; Routine: SubCF076
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF076:
lda $02FD ; CPU:$F076 PRG:3076 AD FD 02
cmp #$CF ; CPU:$F079 PRG:3079 C9 CF
bne SubCF08D ; CPU:$F07B PRG:307B D0 10
lda #$F0 ; CPU:$F07D PRG:307D A9 F0
sta $02FC ; CPU:$F07F PRG:307F 8D FC 02
sta $02FD ; CPU:$F082 PRG:3082 8D FD 02
lda $0154 ; CPU:$F085 PRG:3085 AD 54 01
sta $0155 ; CPU:$F088 PRG:3088 8D 55 01
bne SubCF0A0 ; CPU:$F08B PRG:308B D0 13
; -----------------------------------------------------------------------------
; Routine: SubCF08D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF08D:
lda $02FC ; CPU:$F08D PRG:308D AD FC 02
cmp #$F0 ; CPU:$F090 PRG:3090 C9 F0
bne SubCF0A0 ; CPU:$F092 PRG:3092 D0 0C
ldx #$03 ; CPU:$F094 PRG:3094 A2 03
; -----------------------------------------------------------------------------
; Routine: SubCF096
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF096:
lda $C7BC,x ; CPU:$F096 PRG:3096 BD BC C7
sta $02FC,x ; CPU:$F099 PRG:3099 9D FC 02
dex ; CPU:$F09C PRG:309C CA
bpl SubCF096 ; CPU:$F09D PRG:309D 10 F7
rts ; CPU:$F09F PRG:309F 60
; -----------------------------------------------------------------------------
; Routine: SubCF0A0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF0A0:
lda ZpCF ; CPU:$F0A0 PRG:30A0 A5 CF
bmi SubCF0A5 ; CPU:$F0A2 PRG:30A2 30 01
rts ; CPU:$F0A4 PRG:30A4 60
; -----------------------------------------------------------------------------
; Routine: SubCF0A5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF0A5:
and #$7F ; CPU:$F0A5 PRG:30A5 29 7F
tay ; CPU:$F0A7 PRG:30A7 A8
lda #$02 ; CPU:$F0A8 PRG:30A8 A9 02
sta ZpFF ; CPU:$F0AA PRG:30AA 85 FF
iny ; CPU:$F0AC PRG:30AC C8
cpy #$0A ; CPU:$F0AD PRG:30AD C0 0A
bne SubCF0B2 ; CPU:$F0AF PRG:30AF D0 01
dey ; CPU:$F0B1 PRG:30B1 88
; -----------------------------------------------------------------------------
; Routine: SubCF0B2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF0B2:
sty ZpCF ; CPU:$F0B2 PRG:30B2 84 CF
ldx #$03 ; CPU:$F0B4 PRG:30B4 A2 03
; -----------------------------------------------------------------------------
; Routine: SubCF0B6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF0B6:
lda $F0DB,x ; CPU:$F0B6 PRG:30B6 BD DB F0
sta $02FC,x ; CPU:$F0B9 PRG:30B9 9D FC 02
dex ; CPU:$F0BC PRG:30BC CA
bpl SubCF0B6 ; CPU:$F0BD PRG:30BD 10 F7
lda #$30 ; CPU:$F0BF PRG:30BF A9 30
sta $0155 ; CPU:$F0C1 PRG:30C1 8D 55 01
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel23
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel23:
cpy #$09 ; CPU:$F0C4 PRG:30C4 C0 09
beq SubCF0D0 ; CPU:$F0C6 PRG:30C6 F0 08
tya ; CPU:$F0C8 PRG:30C8 98
clc ; CPU:$F0C9 PRG:30C9 18
adc #$F1 ; CPU:$F0CA PRG:30CA 69 F1
ldy #$F0 ; CPU:$F0CC PRG:30CC A0 F0
bne SubCF0D4 ; CPU:$F0CE PRG:30CE D0 04
; -----------------------------------------------------------------------------
; Routine: SubCF0D0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF0D0:
lda #$FA ; CPU:$F0D0 PRG:30D0 A9 FA
ldy #$FB ; CPU:$F0D2 PRG:30D2 A0 FB
; -----------------------------------------------------------------------------
; Routine: SubCF0D4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF0D4:
sta $02C5 ; CPU:$F0D4 PRG:30D4 8D C5 02
sty $02C9 ; CPU:$F0D7 PRG:30D7 8C C9 02
rts ; CPU:$F0DA PRG:30DA 60
; ---- data $F0DB-$F0DE (4 bytes) ----
; referenced by `lda $F0DB,x` at $F0B6 (operand $F0DB falls inside this region)
.byte $4C, $CF, $00, $6C ; CPU:$F0DB PRG:30DB 4C CF 00 6C
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel24
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel24:
lda ZpD0 ; CPU:$F0DF PRG:30DF A5 D0
bpl SubCF10F ; CPU:$F0E1 PRG:30E1 10 2C
lda #$04 ; CPU:$F0E3 PRG:30E3 A9 04
sta ZpFF ; CPU:$F0E5 PRG:30E5 85 FF
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel25
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel25:
lda ZpD0 ; CPU:$F0E7 PRG:30E7 A5 D0
and #$7F ; CPU:$F0E9 PRG:30E9 29 7F
sta ZpD0 ; CPU:$F0EB PRG:30EB 85 D0
bne SubCF0FD ; CPU:$F0ED PRG:30ED D0 0E
ldx #$14 ; CPU:$F0EF PRG:30EF A2 14
stx $0132 ; CPU:$F0F1 PRG:30F1 8E 32 01
ldy #$00 ; CPU:$F0F4 PRG:30F4 A0 00
sty ZpCF ; CPU:$F0F6 PRG:30F6 84 CF
jsr UpdateMusicChannel23 ; CPU:$F0F8 PRG:30F8 20 C4 F0
lda #$00 ; CPU:$F0FB PRG:30FB A9 00
; -----------------------------------------------------------------------------
; Routine: SubCF0FD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF0FD:
cmp #$08 ; CPU:$F0FD PRG:30FD C9 08
beq SubCF10E ; CPU:$F0FF PRG:30FF F0 0D
asl a ; CPU:$F101 PRG:3101 0A
asl a ; CPU:$F102 PRG:3102 0A
tay ; CPU:$F103 PRG:3103 A8
lda #$F0 ; CPU:$F104 PRG:3104 A9 F0
; -----------------------------------------------------------------------------
; Routine: SubCF106
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF106:
sta $0264,y ; CPU:$F106 PRG:3106 99 64 02
iny ; CPU:$F109 PRG:3109 C8
cpy #$20 ; CPU:$F10A PRG:310A C0 20
bne SubCF106 ; CPU:$F10C PRG:310C D0 F8
; -----------------------------------------------------------------------------
; Routine: SubCF10E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF10E:
rts ; CPU:$F10E PRG:310E 60
; -----------------------------------------------------------------------------
; Routine: SubCF10F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF10F:
lda $0132 ; CPU:$F10F PRG:310F AD 32 01
beq SubCF10E ; CPU:$F112 PRG:3112 F0 FA
lda Zp05 ; CPU:$F114 PRG:3114 A5 05
and #$0F ; CPU:$F116 PRG:3116 29 0F
bne SubCF10E ; CPU:$F118 PRG:3118 D0 F4
lda #$FF ; CPU:$F11A PRG:311A A9 FF
sta ZpCA ; CPU:$F11C PRG:311C 85 CA
lda #$0A ; CPU:$F11E PRG:311E A9 0A
jsr UpdateMusicChannel15 ; CPU:$F120 PRG:3120 20 3D EE
dec $0132 ; CPU:$F123 PRG:3123 CE 32 01
bne SubCF10E ; CPU:$F126 PRG:3126 D0 E6
lda #$08 ; CPU:$F128 PRG:3128 A9 08
sta ZpD0 ; CPU:$F12A PRG:312A 85 D0
ldx #$1F ; CPU:$F12C PRG:312C A2 1F
; -----------------------------------------------------------------------------
; Routine: SubCF12E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF12E:
lda $C724,x ; CPU:$F12E PRG:312E BD 24 C7
sta $0264,x ; CPU:$F131 PRG:3131 9D 64 02
dex ; CPU:$F134 PRG:3134 CA
bpl SubCF12E ; CPU:$F135 PRG:3135 10 F7
rts ; CPU:$F137 PRG:3137 60
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel26
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel26:
lda #$00 ; CPU:$F138 PRG:3138 A9 00
sta ZpE4 ; CPU:$F13A PRG:313A 85 E4
ldx #$02 ; CPU:$F13C PRG:313C A2 02
ldy #$00 ; CPU:$F13E PRG:313E A0 00
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel27
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel27:
asl ZpD4 ; CPU:$F140 PRG:3140 06 D4
bcc SubCF15C ; CPU:$F142 PRG:3142 90 18
lda $012D,x ; CPU:$F144 PRG:3144 BD 2D 01
bpl SubCF150 ; CPU:$F147 PRG:3147 10 07
lda #$00 ; CPU:$F149 PRG:3149 A9 00
sta $012D,x ; CPU:$F14B PRG:314B 9D 2D 01
beq SubCF15C ; CPU:$F14E PRG:314E F0 0C
; -----------------------------------------------------------------------------
; Routine: SubCF150
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF150:
bne SubCF157 ; CPU:$F150 PRG:3150 D0 05
inc $012D,x ; CPU:$F152 PRG:3152 FE 2D 01
bne SubCF15C ; CPU:$F155 PRG:3155 D0 05
; -----------------------------------------------------------------------------
; Routine: SubCF157
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF157:
lda #$FF ; CPU:$F157 PRG:3157 A9 FF
sta $012D,x ; CPU:$F159 PRG:3159 9D 2D 01
; -----------------------------------------------------------------------------
; Routine: SubCF15C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF15C:
lda $012D,x ; CPU:$F15C PRG:315C BD 2D 01
bpl SubCF16B ; CPU:$F15F PRG:315F 10 0A
lda #$B9 ; CPU:$F161 PRG:3161 A9 B9
sta $0265,y ; CPU:$F163 PRG:3163 99 65 02
sta $0269,y ; CPU:$F166 PRG:3166 99 69 02
bne SubCF1C0 ; CPU:$F169 PRG:3169 D0 55
; -----------------------------------------------------------------------------
; Routine: SubCF16B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF16B:
bne SubCF181 ; CPU:$F16B PRG:316B D0 14
lda #$AF ; CPU:$F16D PRG:316D A9 AF
sta $0265,y ; CPU:$F16F PRG:316F 99 65 02
lda #$5C ; CPU:$F172 PRG:3172 A9 5C
sta $0269,y ; CPU:$F174 PRG:3174 99 69 02
lda #$00 ; CPU:$F177 PRG:3177 A9 00
sta $0266,y ; CPU:$F179 PRG:3179 99 66 02
sta $026A,y ; CPU:$F17C PRG:317C 99 6A 02
beq SubCF1C0 ; CPU:$F17F PRG:317F F0 3F
; -----------------------------------------------------------------------------
; Routine: SubCF181
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF181:
cmp #$06 ; CPU:$F181 PRG:3181 C9 06
beq SubCF1A1 ; CPU:$F183 PRG:3183 F0 1C
inc $012D,x ; CPU:$F185 PRG:3185 FE 2D 01
lda #$9B ; CPU:$F188 PRG:3188 A9 9B
sta $0265,y ; CPU:$F18A PRG:318A 99 65 02
lda #$5D ; CPU:$F18D PRG:318D A9 5D
sta $0269,y ; CPU:$F18F PRG:318F 99 69 02
lda $012D,x ; CPU:$F192 PRG:3192 BD 2D 01
cmp #$06 ; CPU:$F195 PRG:3195 C9 06
bne SubCF1C0 ; CPU:$F197 PRG:3197 D0 27
lda #$04 ; CPU:$F199 PRG:3199 A9 04
sta ZpFE ; CPU:$F19B PRG:319B 85 FE
inc ZpE4 ; CPU:$F19D PRG:319D E6 E4
bne SubCF1C0 ; CPU:$F19F PRG:319F D0 1F
; -----------------------------------------------------------------------------
; Routine: SubCF1A1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF1A1:
stx ZpE3 ; CPU:$F1A1 PRG:31A1 86 E3
ldx #$99 ; CPU:$F1A3 PRG:31A3 A2 99
lda Zp05 ; CPU:$F1A5 PRG:31A5 A5 05
and #$10 ; CPU:$F1A7 PRG:31A7 29 10
bne SubCF1AD ; CPU:$F1A9 PRG:31A9 D0 02
ldx #$86 ; CPU:$F1AB PRG:31AB A2 86
; -----------------------------------------------------------------------------
; Routine: SubCF1AD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF1AD:
txa ; CPU:$F1AD PRG:31AD 8A
sta $0265,y ; CPU:$F1AE PRG:31AE 99 65 02
inx ; CPU:$F1B1 PRG:31B1 E8
txa ; CPU:$F1B2 PRG:31B2 8A
sta $0269,y ; CPU:$F1B3 PRG:31B3 99 69 02
lda #$02 ; CPU:$F1B6 PRG:31B6 A9 02
sta $0266,y ; CPU:$F1B8 PRG:31B8 99 66 02
sta $026A,y ; CPU:$F1BB PRG:31BB 99 6A 02
ldx ZpE3 ; CPU:$F1BE PRG:31BE A6 E3
; -----------------------------------------------------------------------------
; Routine: SubCF1C0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF1C0:
tya ; CPU:$F1C0 PRG:31C0 98
clc ; CPU:$F1C1 PRG:31C1 18
adc #$08 ; CPU:$F1C2 PRG:31C2 69 08
tay ; CPU:$F1C4 PRG:31C4 A8
dex ; CPU:$F1C5 PRG:31C5 CA
bmi SubCF1CB ; CPU:$F1C6 PRG:31C6 30 03
jmp UpdateMusicChannel27 ; CPU:$F1C8 PRG:31C8 4C 40 F1
; -----------------------------------------------------------------------------
; Routine: SubCF1CB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF1CB:
lda ZpE4 ; CPU:$F1CB PRG:31CB A5 E4
beq SubCF1E5 ; CPU:$F1CD PRG:31CD F0 16
ldx #$02 ; CPU:$F1CF PRG:31CF A2 02
; -----------------------------------------------------------------------------
; Routine: SubCF1D1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF1D1:
lda $012D,x ; CPU:$F1D1 PRG:31D1 BD 2D 01
cmp #$06 ; CPU:$F1D4 PRG:31D4 C9 06
bne SubCF1E5 ; CPU:$F1D6 PRG:31D6 D0 0D
dex ; CPU:$F1D8 PRG:31D8 CA
bpl SubCF1D1 ; CPU:$F1D9 PRG:31D9 10 F6
lda #$01 ; CPU:$F1DB PRG:31DB A9 01
sta ZpFF ; CPU:$F1DD PRG:31DD 85 FF
sta $0129 ; CPU:$F1DF PRG:31DF 8D 29 01
sta $012A ; CPU:$F1E2 PRG:31E2 8D 2A 01
; -----------------------------------------------------------------------------
; Routine: SubCF1E5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF1E5:
lda ZpD6 ; CPU:$F1E5 PRG:31E5 A5 D6
beq SubCF1F0 ; CPU:$F1E7 PRG:31E7 F0 07
lda #$00 ; CPU:$F1E9 PRG:31E9 A9 00
sta $0129 ; CPU:$F1EB PRG:31EB 8D 29 01
sta ZpD6 ; CPU:$F1EE PRG:31EE 85 D6
; -----------------------------------------------------------------------------
; Routine: SubCF1F0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF1F0:
lda ZpD7 ; CPU:$F1F0 PRG:31F0 A5 D7
beq UpdateMusicChannel28 ; CPU:$F1F2 PRG:31F2 F0 07
lda #$00 ; CPU:$F1F4 PRG:31F4 A9 00
sta $012A ; CPU:$F1F6 PRG:31F6 8D 2A 01
sta ZpD7 ; CPU:$F1F9 PRG:31F9 85 D7
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel28
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel28:
ldx $0129 ; CPU:$F1FB PRG:31FB AE 29 01
lda $F220,x ; CPU:$F1FE PRG:31FE BD 20 F2
sta $06A9 ; CPU:$F201 PRG:3201 8D A9 06
lda $F222,x ; CPU:$F204 PRG:3204 BD 22 F2
sta $02E0 ; CPU:$F207 PRG:3207 8D E0 02
sta $02E4 ; CPU:$F20A PRG:320A 8D E4 02
ldx $012A ; CPU:$F20D PRG:320D AE 2A 01
lda $F224,x ; CPU:$F210 PRG:3210 BD 24 F2
sta $06BA ; CPU:$F213 PRG:3213 8D BA 06
lda $F222,x ; CPU:$F216 PRG:3216 BD 22 F2
sta $02E8 ; CPU:$F219 PRG:3219 8D E8 02
sta $02EC ; CPU:$F21C PRG:321C 8D EC 02
rts ; CPU:$F21F PRG:321F 60
; ---- data $F220-$F225 (6 bytes) ----
; referenced by `lda $F220,x` at $F1FE (operand $F220 falls inside this region)
; referenced by `lda $F222,x` at $F204 (operand $F222 falls inside this region)
; referenced by `lda $F224,x` at $F210 (operand $F224 falls inside this region)
; referenced by `lda $F222,x` at $F216 (operand $F222 falls inside this region)
.byte $54, $A6, $F0, $A5, $58, $A6 ; CPU:$F220 PRG:3220 54 A6 F0 A5 58 A6
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel29
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel29:
ldx #$02 ; CPU:$F226 PRG:3226 A2 02
lda #$01 ; CPU:$F228 PRG:3228 A9 01
sta ZpDC ; CPU:$F22A PRG:322A 85 DC
; -----------------------------------------------------------------------------
; Routine: SubCF22C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF22C:
ldy #$00 ; CPU:$F22C PRG:322C A0 00
lda ZpD8,x ; CPU:$F22E PRG:322E B5 D8
sta ZpE3 ; CPU:$F230 PRG:3230 85 E3
; -----------------------------------------------------------------------------
; Routine: SubCF232
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF232:
lda $F2E7,x ; CPU:$F232 PRG:3232 BD E7 F2
sta ZpDB ; CPU:$F235 PRG:3235 85 DB
asl ZpD8,x ; CPU:$F237 PRG:3237 16 D8
bcc SubCF259 ; CPU:$F239 PRG:3239 90 1E
lda #$04 ; CPU:$F23B PRG:323B A9 04
sta ZpFF ; CPU:$F23D PRG:323D 85 FF
tya ; CPU:$F23F PRG:323F 98
pha ; CPU:$F240 PRG:3240 48
txa ; CPU:$F241 PRG:3241 8A
pha ; CPU:$F242 PRG:3242 48
lda #$00 ; CPU:$F243 PRG:3243 A9 00
jsr UpdateMusicChannel15 ; CPU:$F245 PRG:3245 20 3D EE
pla ; CPU:$F248 PRG:3248 68
tax ; CPU:$F249 PRG:3249 AA
pla ; CPU:$F24A PRG:324A 68
tay ; CPU:$F24B PRG:324B A8
lda (ZpDB),y ; CPU:$F24C PRG:324C B1 DB
clc ; CPU:$F24E PRG:324E 18
adc #$01 ; CPU:$F24F PRG:324F 69 01
cmp #$03 ; CPU:$F251 PRG:3251 C9 03
bne SubCF257 ; CPU:$F253 PRG:3253 D0 02
lda #$00 ; CPU:$F255 PRG:3255 A9 00
; -----------------------------------------------------------------------------
; Routine: SubCF257
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF257:
sta (ZpDB),y ; CPU:$F257 PRG:3257 91 DB
; -----------------------------------------------------------------------------
; Routine: SubCF259
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF259:
iny ; CPU:$F259 PRG:3259 C8
cpy #$04 ; CPU:$F25A PRG:325A C0 04
bne SubCF232 ; CPU:$F25C PRG:325C D0 D4
lda ZpE3 ; CPU:$F25E PRG:325E A5 E3
beq SubCF271 ; CPU:$F260 PRG:3260 F0 0F
ldy #$03 ; CPU:$F262 PRG:3262 A0 03
lda (ZpDB),y ; CPU:$F264 PRG:3264 B1 DB
dey ; CPU:$F266 PRG:3266 88
; -----------------------------------------------------------------------------
; Routine: SubCF267
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF267:
cmp (ZpDB),y ; CPU:$F267 PRG:3267 D1 DB
bne SubCF271 ; CPU:$F269 PRG:3269 D0 06
dey ; CPU:$F26B PRG:326B 88
bpl SubCF267 ; CPU:$F26C PRG:326C 10 F9
inc $011F,x ; CPU:$F26E PRG:326E FE 1F 01
; -----------------------------------------------------------------------------
; Routine: SubCF271
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF271:
dex ; CPU:$F271 PRG:3271 CA
bpl SubCF22C ; CPU:$F272 PRG:3272 10 B8
lda $013A ; CPU:$F274 PRG:3274 AD 3A 01
asl a ; CPU:$F277 PRG:3277 0A
asl a ; CPU:$F278 PRG:3278 0A
ora $0136 ; CPU:$F279 PRG:3279 0D 36 01
asl a ; CPU:$F27C PRG:327C 0A
asl a ; CPU:$F27D PRG:327D 0A
asl a ; CPU:$F27E PRG:327E 0A
asl a ; CPU:$F27F PRG:327F 0A
sta $0142 ; CPU:$F280 PRG:3280 8D 42 01
lda $013E ; CPU:$F283 PRG:3283 AD 3E 01
asl a ; CPU:$F286 PRG:3286 0A
asl a ; CPU:$F287 PRG:3287 0A
asl a ; CPU:$F288 PRG:3288 0A
asl a ; CPU:$F289 PRG:3289 0A
sta $0143 ; CPU:$F28A PRG:328A 8D 43 01
lda $013C ; CPU:$F28D PRG:328D AD 3C 01
asl a ; CPU:$F290 PRG:3290 0A
asl a ; CPU:$F291 PRG:3291 0A
ora $0138 ; CPU:$F292 PRG:3292 0D 38 01
asl a ; CPU:$F295 PRG:3295 0A
asl a ; CPU:$F296 PRG:3296 0A
ora $013B ; CPU:$F297 PRG:3297 0D 3B 01
asl a ; CPU:$F29A PRG:329A 0A
asl a ; CPU:$F29B PRG:329B 0A
ora $0137 ; CPU:$F29C PRG:329C 0D 37 01
sta $0144 ; CPU:$F29F PRG:329F 8D 44 01
lda $0140 ; CPU:$F2A2 PRG:32A2 AD 40 01
asl a ; CPU:$F2A5 PRG:32A5 0A
asl a ; CPU:$F2A6 PRG:32A6 0A
asl a ; CPU:$F2A7 PRG:32A7 0A
asl a ; CPU:$F2A8 PRG:32A8 0A
ora $013F ; CPU:$F2A9 PRG:32A9 0D 3F 01
ora #$44 ; CPU:$F2AC PRG:32AC 09 44
sta $0145 ; CPU:$F2AE PRG:32AE 8D 45 01
lda $013D ; CPU:$F2B1 PRG:32B1 AD 3D 01
asl a ; CPU:$F2B4 PRG:32B4 0A
asl a ; CPU:$F2B5 PRG:32B5 0A
ora $0139 ; CPU:$F2B6 PRG:32B6 0D 39 01
sta $0146 ; CPU:$F2B9 PRG:32B9 8D 46 01
lda $0141 ; CPU:$F2BC PRG:32BC AD 41 01
sta $0147 ; CPU:$F2BF PRG:32BF 8D 47 01
ldx #$02 ; CPU:$F2C2 PRG:32C2 A2 02
; -----------------------------------------------------------------------------
; Routine: SubCF2C4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF2C4:
lda $011F,x ; CPU:$F2C4 PRG:32C4 BD 1F 01
beq SubCF2E3 ; CPU:$F2C7 PRG:32C7 F0 1A
ldy $F2EA,x ; CPU:$F2C9 PRG:32C9 BC EA F2
clc ; CPU:$F2CC PRG:32CC 18
adc #$36 ; CPU:$F2CD PRG:32CD 69 36
cmp #$39 ; CPU:$F2CF PRG:32CF C9 39
bcc SubCF2D5 ; CPU:$F2D1 PRG:32D1 90 02
lda #$B9 ; CPU:$F2D3 PRG:32D3 A9 B9
; -----------------------------------------------------------------------------
; Routine: SubCF2D5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF2D5:
sta $0265,y ; CPU:$F2D5 PRG:32D5 99 65 02
lda $F2ED,x ; CPU:$F2D8 PRG:32D8 BD ED F2
sta $0267,y ; CPU:$F2DB PRG:32DB 99 67 02
lda #$F0 ; CPU:$F2DE PRG:32DE A9 F0
sta $0268,y ; CPU:$F2E0 PRG:32E0 99 68 02
; -----------------------------------------------------------------------------
; Routine: SubCF2E3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF2E3:
dex ; CPU:$F2E3 PRG:32E3 CA
bpl SubCF2C4 ; CPU:$F2E4 PRG:32E4 10 DE
rts ; CPU:$F2E6 PRG:32E6 60
; ---- data $F2E7-$F2EF (9 bytes) ----
; referenced by `lda $F2E7,x` at $F232 (operand $F2E7 falls inside this region)
; referenced by `ldy $F2EA,x` at $F2C9 (operand $F2EA falls inside this region)
; referenced by `lda $F2ED,x` at $F2D8 (operand $F2ED falls inside this region)
.byte $36, $3A, $3E, $00, $08, $10, $84, $94, $A4 ; CPU:$F2E7 PRG:32E7 36 3A 3E 00 08 10 84 94 A4
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel30
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel30:
ldx #$23 ; CPU:$F2F0 PRG:32F0 A2 23
lda #$D4 ; CPU:$F2F2 PRG:32F2 A9 D4
ldy $0142 ; CPU:$F2F4 PRG:32F4 AC 42 01
jsr WritePPU2 ; CPU:$F2F7 PRG:32F7 20 F6 E0
lda $0143 ; CPU:$F2FA PRG:32FA AD 43 01
sta PPUDATA ; CPU:$F2FD PRG:32FD 8D 07 20
ldx #$23 ; CPU:$F300 PRG:3300 A2 23
lda #$DC ; CPU:$F302 PRG:3302 A9 DC
ldy $0144 ; CPU:$F304 PRG:3304 AC 44 01
jsr WritePPU2 ; CPU:$F307 PRG:3307 20 F6 E0
lda $0145 ; CPU:$F30A PRG:330A AD 45 01
sta PPUDATA ; CPU:$F30D PRG:330D 8D 07 20
ldx #$23 ; CPU:$F310 PRG:3310 A2 23
lda #$E4 ; CPU:$F312 PRG:3312 A9 E4
ldy $0146 ; CPU:$F314 PRG:3314 AC 46 01
jsr WritePPU2 ; CPU:$F317 PRG:3317 20 F6 E0
lda $0147 ; CPU:$F31A PRG:331A AD 47 01
sta PPUDATA ; CPU:$F31D PRG:331D 8D 07 20
; -----------------------------------------------------------------------------
; Routine: SubCF320
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF320:
rts ; CPU:$F320 PRG:3320 60
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel31
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel31:
ldx ZpBF ; CPU:$F321 PRG:3321 A6 BF
ldy $F3B1,x ; CPU:$F323 PRG:3323 BC B1 F3
lda ZpF0 ; CPU:$F326 PRG:3326 A5 F0
beq SubCF320 ; CPU:$F328 PRG:3328 F0 F6
bmi SubCF36D ; CPU:$F32A PRG:332A 30 41
lda $F3B7,x ; CPU:$F32C PRG:332C BD B7 F3
sta $0154 ; CPU:$F32F PRG:332F 8D 54 01
sta $0155 ; CPU:$F332 PRG:3332 8D 55 01
lda #$23 ; CPU:$F335 PRG:3335 A9 23
sta PPUADDR ; CPU:$F337 PRG:3337 8D 06 20
lda $F3B3,x ; CPU:$F33A PRG:333A BD B3 F3
sta PPUADDR ; CPU:$F33D PRG:333D 8D 06 20
lda #$6A ; CPU:$F340 PRG:3340 A9 6A
sta PPUDATA ; CPU:$F342 PRG:3342 8D 07 20
sta $0731,y ; CPU:$F345 PRG:3345 99 31 07
lda #$6B ; CPU:$F348 PRG:3348 A9 6B
sta PPUDATA ; CPU:$F34A PRG:334A 8D 07 20
sta $0732,y ; CPU:$F34D PRG:334D 99 32 07
lda #$23 ; CPU:$F350 PRG:3350 A9 23
sta PPUADDR ; CPU:$F352 PRG:3352 8D 06 20
lda $F3B5,x ; CPU:$F355 PRG:3355 BD B5 F3
sta PPUADDR ; CPU:$F358 PRG:3358 8D 06 20
lda #$70 ; CPU:$F35B PRG:335B A9 70
sta PPUDATA ; CPU:$F35D PRG:335D 8D 07 20
sta $0751,y ; CPU:$F360 PRG:3360 99 51 07
lda #$71 ; CPU:$F363 PRG:3363 A9 71
sta PPUDATA ; CPU:$F365 PRG:3365 8D 07 20
sta $0752,y ; CPU:$F368 PRG:3368 99 52 07
bne SubCF3AC ; CPU:$F36B PRG:336B D0 3F
; -----------------------------------------------------------------------------
; Routine: SubCF36D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF36D:
lda #$12 ; CPU:$F36D PRG:336D A9 12
sta $0154 ; CPU:$F36F PRG:336F 8D 54 01
sta $0155 ; CPU:$F372 PRG:3372 8D 55 01
lda #$00 ; CPU:$F375 PRG:3375 A9 00
sta $014B ; CPU:$F377 PRG:3377 8D 4B 01
lda #$23 ; CPU:$F37A PRG:337A A9 23
sta PPUADDR ; CPU:$F37C PRG:337C 8D 06 20
lda $F3B3,x ; CPU:$F37F PRG:337F BD B3 F3
sta PPUADDR ; CPU:$F382 PRG:3382 8D 06 20
lda #$24 ; CPU:$F385 PRG:3385 A9 24
sta PPUDATA ; CPU:$F387 PRG:3387 8D 07 20
sta $0731,y ; CPU:$F38A PRG:338A 99 31 07
sta PPUDATA ; CPU:$F38D PRG:338D 8D 07 20
sta $0732,y ; CPU:$F390 PRG:3390 99 32 07
lda #$23 ; CPU:$F393 PRG:3393 A9 23
sta PPUADDR ; CPU:$F395 PRG:3395 8D 06 20
lda $F3B5,x ; CPU:$F398 PRG:3398 BD B5 F3
sta PPUADDR ; CPU:$F39B PRG:339B 8D 06 20
lda #$24 ; CPU:$F39E PRG:339E A9 24
sta PPUDATA ; CPU:$F3A0 PRG:33A0 8D 07 20
sta $0751,y ; CPU:$F3A3 PRG:33A3 99 51 07
sta PPUDATA ; CPU:$F3A6 PRG:33A6 8D 07 20
sta $0752,y ; CPU:$F3A9 PRG:33A9 99 52 07
; -----------------------------------------------------------------------------
; Routine: SubCF3AC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF3AC:
lda #$00 ; CPU:$F3AC PRG:33AC A9 00
sta ZpF0 ; CPU:$F3AE PRG:33AE 85 F0
; -----------------------------------------------------------------------------
; Routine: SubCF3B0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF3B0:
rts ; CPU:$F3B0 PRG:33B0 60
; ---- data $F3B1-$F3B8 (8 bytes) ----
; referenced by `ldy $F3B1,x` at $F323 (operand $F3B1 falls inside this region)
; referenced by `lda $F3B7,x` at $F32C (operand $F3B7 falls inside this region)
; referenced by `lda $F3B3,x` at $F33A (operand $F3B3 falls inside this region)
; referenced by `lda $F3B5,x` at $F355 (operand $F3B5 falls inside this region)
; referenced by `lda $F3B3,x` at $F37F (operand $F3B3 falls inside this region)
; referenced by `lda $F3B5,x` at $F398 (operand $F3B5 falls inside this region)
.byte $20, $00, $51, $31, $71, $51, $15, $27 ; CPU:$F3B1 PRG:33B1 20 00 51 31 71 51 15 27
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel32
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel32:
ldy $012C ; CPU:$F3B9 PRG:33B9 AC 2C 01
beq SubCF3B0 ; CPU:$F3BC PRG:33BC F0 F2
ldx #$21 ; CPU:$F3BE PRG:33BE A2 21
lda #$17 ; CPU:$F3C0 PRG:33C0 A9 17
jsr WritePPU ; CPU:$F3C2 PRG:33C2 20 EF E0
tya ; CPU:$F3C5 PRG:33C5 98
bmi SubCF3D7 ; CPU:$F3C6 PRG:33C6 30 0F
ldx #$B7 ; CPU:$F3C8 PRG:33C8 A2 B7
stx PPUDATA ; CPU:$F3CA PRG:33CA 8E 07 20
inx ; CPU:$F3CD PRG:33CD E8
stx PPUDATA ; CPU:$F3CE PRG:33CE 8E 07 20
inx ; CPU:$F3D1 PRG:33D1 E8
stx PPUDATA ; CPU:$F3D2 PRG:33D2 8E 07 20
bne SubCF3E2 ; CPU:$F3D5 PRG:33D5 D0 0B
; -----------------------------------------------------------------------------
; Routine: SubCF3D7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF3D7:
lda #$24 ; CPU:$F3D7 PRG:33D7 A9 24
sta PPUDATA ; CPU:$F3D9 PRG:33D9 8D 07 20
sta PPUDATA ; CPU:$F3DC PRG:33DC 8D 07 20
sta PPUDATA ; CPU:$F3DF PRG:33DF 8D 07 20
; -----------------------------------------------------------------------------
; Routine: SubCF3E2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF3E2:
lda #$00 ; CPU:$F3E2 PRG:33E2 A9 00
sta $012C ; CPU:$F3E4 PRG:33E4 8D 2C 01
rts ; CPU:$F3E7 PRG:33E7 60
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel33
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel33:
ldx $012B ; CPU:$F3E8 PRG:33E8 AE 2B 01
ldy #$10 ; CPU:$F3EB PRG:33EB A0 10
; -----------------------------------------------------------------------------
; Routine: SubCF3ED
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF3ED:
lda $F416,x ; CPU:$F3ED PRG:33ED BD 16 F4
sta $02C9,y ; CPU:$F3F0 PRG:33F0 99 C9 02
lda $F418,x ; CPU:$F3F3 PRG:33F3 BD 18 F4
sta $02CD,y ; CPU:$F3F6 PRG:33F6 99 CD 02
tya ; CPU:$F3F9 PRG:33F9 98
sec ; CPU:$F3FA PRG:33FA 38
sbc #$08 ; CPU:$F3FB PRG:33FB E9 08
tay ; CPU:$F3FD PRG:33FD A8
bpl SubCF3ED ; CPU:$F3FE PRG:33FE 10 ED
ldy #$40 ; CPU:$F400 PRG:3400 A0 40
; -----------------------------------------------------------------------------
; Routine: SubCF402
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF402:
lda $F41A,x ; CPU:$F402 PRG:3402 BD 1A F4
sta $04FA,y ; CPU:$F405 PRG:3405 99 FA 04
lda $F41C,x ; CPU:$F408 PRG:3408 BD 1C F4
sta $04FB,y ; CPU:$F40B PRG:340B 99 FB 04
tya ; CPU:$F40E PRG:340E 98
sec ; CPU:$F40F PRG:340F 38
sbc #$20 ; CPU:$F410 PRG:3410 E9 20
tay ; CPU:$F412 PRG:3412 A8
bpl SubCF402 ; CPU:$F413 PRG:3413 10 ED
; -----------------------------------------------------------------------------
; Routine: SubCF415
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF415:
rts ; CPU:$F415 PRG:3415 60
; ---- data $F416-$F41D (8 bytes) ----
; referenced by `lda $F416,x` at $F3ED (operand $F416 falls inside this region)
; referenced by `lda $F418,x` at $F3F3 (operand $F418 falls inside this region)
; referenced by `lda $F41A,x` at $F402 (operand $F41A falls inside this region)
; referenced by `lda $F41C,x` at $F408 (operand $F41C falls inside this region)
.byte $5A, $B9, $5B, $B9, $5B, $24, $6D, $24 ; CPU:$F416 PRG:3416 5A B9 5B B9 5B 24 6D 24
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel34
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel34:
lda ZpD5 ; CPU:$F41E PRG:341E A5 D5
beq SubCF415 ; CPU:$F420 PRG:3420 F0 F3
lda #$08 ; CPU:$F422 PRG:3422 A9 08
sta ZpFF ; CPU:$F424 PRG:3424 85 FF
lda #$00 ; CPU:$F426 PRG:3426 A9 00
sta ZpD5 ; CPU:$F428 PRG:3428 85 D5
lda $0131 ; CPU:$F42A PRG:342A AD 31 01
cmp #$FE ; CPU:$F42D PRG:342D C9 FE
bne SubCF415 ; CPU:$F42F PRG:342F D0 E4
lda #$00 ; CPU:$F431 PRG:3431 A9 00
sta $0131 ; CPU:$F433 PRG:3433 8D 31 01
sta $012B ; CPU:$F436 PRG:3436 8D 2B 01
dec $012C ; CPU:$F439 PRG:3439 CE 2C 01
jsr UpdateMusicChannel21 ; CPU:$F43C PRG:343C 20 3F F0
ldx #$37 ; CPU:$F43F PRG:343F A2 37
; -----------------------------------------------------------------------------
; Routine: SubCF441
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF441:
lda $C9D1,x ; CPU:$F441 PRG:3441 BD D1 C9
sta $0290,x ; CPU:$F444 PRG:3444 9D 90 02
dex ; CPU:$F447 PRG:3447 CA
bpl SubCF441 ; CPU:$F448 PRG:3448 10 F7
; -----------------------------------------------------------------------------
; Routine: SubCF44A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF44A:
rts ; CPU:$F44A PRG:344A 60
; -----------------------------------------------------------------------------
; Routine: UpdateMusicChannel35
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateMusicChannel35:
lda #$B9 ; CPU:$F44B PRG:344B A9 B9
sta $02CD ; CPU:$F44D PRG:344D 8D CD 02
sta $02DD ; CPU:$F450 PRG:3450 8D DD 02
lda $0132 ; CPU:$F453 PRG:3453 AD 32 01
beq SubCF44A ; CPU:$F456 PRG:3456 F0 F2
ldx #$00 ; CPU:$F458 PRG:3458 A2 00
lda Zp05 ; CPU:$F45A PRG:345A A5 05
and #$10 ; CPU:$F45C PRG:345C 29 10
beq SubCF461 ; CPU:$F45E PRG:345E F0 01
inx ; CPU:$F460 PRG:3460 E8
; -----------------------------------------------------------------------------
; Routine: SubCF461
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF461:
ldy $F4AC,x ; CPU:$F461 PRG:3461 BC AC F4
sty $02D1 ; CPU:$F464 PRG:3464 8C D1 02
sty $02E1 ; CPU:$F467 PRG:3467 8C E1 02
iny ; CPU:$F46A PRG:346A C8
sty $02D5 ; CPU:$F46B PRG:346B 8C D5 02
sty $02E5 ; CPU:$F46E PRG:346E 8C E5 02
iny ; CPU:$F471 PRG:3471 C8
sty $02D9 ; CPU:$F472 PRG:3472 8C D9 02
sty $02E9 ; CPU:$F475 PRG:3475 8C E9 02
lda $F4AE,x ; CPU:$F478 PRG:3478 BD AE F4
sta $02CD ; CPU:$F47B PRG:347B 8D CD 02
sta $02DD ; CPU:$F47E PRG:347E 8D DD 02
lda $F4B0,x ; CPU:$F481 PRG:3481 BD B0 F4
sta $02D3 ; CPU:$F484 PRG:3484 8D D3 02
lda $F4B2,x ; CPU:$F487 PRG:3487 BD B2 F4
sta $02E3 ; CPU:$F48A PRG:348A 8D E3 02
lda $02CC ; CPU:$F48D PRG:348D AD CC 02
clc ; CPU:$F490 PRG:3490 18
adc $0149 ; CPU:$F491 PRG:3491 6D 49 01
sta $02CC ; CPU:$F494 PRG:3494 8D CC 02
sta $02DC ; CPU:$F497 PRG:3497 8D DC 02
cmp #$5F ; CPU:$F49A PRG:349A C9 5F
bne SubCF4A2 ; CPU:$F49C PRG:349C D0 04
lda #$01 ; CPU:$F49E PRG:349E A9 01
bne SubCF4A8 ; CPU:$F4A0 PRG:34A0 D0 06
; -----------------------------------------------------------------------------
; Routine: SubCF4A2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF4A2:
cmp #$67 ; CPU:$F4A2 PRG:34A2 C9 67
bne SubCF4AB ; CPU:$F4A4 PRG:34A4 D0 05
lda #$FF ; CPU:$F4A6 PRG:34A6 A9 FF
; -----------------------------------------------------------------------------
; Routine: SubCF4A8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF4A8:
sta $0149 ; CPU:$F4A8 PRG:34A8 8D 49 01
; -----------------------------------------------------------------------------
; Routine: SubCF4AB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCF4AB:
rts ; CPU:$F4AB PRG:34AB 60
; ---- data $F4AC-$FB2B (1664 bytes) ----
; referenced by `ldy $F4AC,x` at $F461 (operand $F4AC falls inside this region)
; referenced by `lda $F4AE,x` at $F478 (operand $F4AE falls inside this region)
; referenced by `lda $F4B0,x` at $F481 (operand $F4B0 falls inside this region)
; referenced by `lda $F4B2,x` at $F487 (operand $F4B2 falls inside this region)
.byte $7D, $88, $F0, $FB, $74, $76, $A4, $A2, $03, $03, $03, $03, $03, $03, $03, $03 ; CPU:$F4AC PRG:34AC 7D 88 F0 FB 74 76 A4 A2 03 03 03 03 03 03 03 03
.byte $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $80, $C0, $60, $30, $18, $0C, $06, $03 ; CPU:$F4BC PRG:34BC C0 C0 C0 C0 C0 C0 C0 C0 80 C0 60 30 18 0C 06 03
.byte $E0, $C0, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$F4CC PRG:34CC E0 C0 80 00 00 00 00 00 00 00 00 00 00 00 00 00
.byte $3C, $78, $E0, $C0, $80, $00, $00, $00, $00, $00, $00, $C0, $E0, $60, $00, $00 ; CPU:$F4DC PRG:34DC 3C 78 E0 C0 80 00 00 00 00 00 00 C0 E0 60 00 00
.byte $00, $00, $00, $00, $00, $C0, $E0, $70, $00, $00, $01, $01, $01, $01, $01, $01 ; CPU:$F4EC PRG:34EC 00 00 00 00 00 C0 E0 70 00 00 01 01 01 01 01 01
.byte $00, $80, $C0, $C0, $C0, $C0, $C0, $C0, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4FC PRG:34FC 00 80 C0 C0 C0 C0 C0 C0 FF FF FF FF FF FF FF FF
.byte $01, $01, $01, $01, $01, $01, $01, $01, $80, $C0, $E0, $F0, $F8, $FC, $FE, $FF ; CPU:$F50C PRG:350C 01 01 01 01 01 01 01 01 80 C0 E0 F0 F8 FC FE FF
.byte $01, $03, $07, $0F, $1F, $3F, $7F, $FF, $80, $80, $80, $80, $80, $80, $80, $80 ; CPU:$F51C PRG:351C 01 03 07 0F 1F 3F 7F FF 80 80 80 80 80 80 80 80
.byte $FE, $FE, $FE, $FE, $FE, $FE, $FE, $FC, $0F, $0F, $0F, $0F, $0F, $0F, $0F, $0F ; CPU:$F52C PRG:352C FE FE FE FE FE FE FE FC 0F 0F 0F 0F 0F 0F 0F 0F
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FC ; CPU:$F53C PRG:353C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FC
.byte $FF, $FF, $FF, $FC, $F0, $C0, $00, $00, $FF, $E0, $00, $00, $00, $00, $00, $00 ; CPU:$F54C PRG:354C FF FF FF FC F0 C0 00 00 FF E0 00 00 00 00 00 00
.byte $FF, $00, $00, $00, $00, $00, $00, $00, $FF, $0F, $01, $00, $00, $00, $00, $00 ; CPU:$F55C PRG:355C FF 00 00 00 00 00 00 00 FF 0F 01 00 00 00 00 00
.byte $FF, $FF, $FF, $3F, $0F, $03, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $3F ; CPU:$F56C PRG:356C FF FF FF 3F 0F 03 00 00 FF FF FF FF FF FF FF 3F
.byte $FF, $FF, $FF, $FF, $FF, $FE, $FC, $F8, $F8, $E0, $C0, $80, $00, $00, $00, $00 ; CPU:$F57C PRG:357C FF FF FF FF FF FE FC F8 F8 E0 C0 80 00 00 00 00
.byte $1F, $07, $03, $01, $00, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $7F, $3F, $1F ; CPU:$F58C PRG:358C 1F 07 03 01 00 00 00 00 FF FF FF FF FF 7F 3F 1F
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F0, $F0, $E0, $C0, $C0, $80, $00, $00 ; CPU:$F59C PRG:359C FF FF FF FF FF FF FF FF F0 F0 E0 C0 C0 80 00 00
.byte $00, $00, $00, $03, $0F, $3F, $7F, $FF, $00, $00, $E0, $F0, $F8, $FC, $FE, $FF ; CPU:$F5AC PRG:35AC 00 00 00 03 0F 3F 7F FF 00 00 E0 F0 F8 FC FE FF
.byte $00, $0F, $07, $03, $01, $00, $00, $00, $00, $F8, $F0, $E0, $C0, $80, $00, $00 ; CPU:$F5BC PRG:35BC 00 0F 07 03 01 00 00 00 00 F8 F0 E0 C0 80 00 00
.byte $01, $03, $07, $0F, $1F, $3F, $7F, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5CC PRG:35CC 01 03 07 0F 1F 3F 7F FF FF FF FF FF FF FF FF FF
.byte $E0, $FC, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $C0, $F0, $FC, $FE, $FF ; CPU:$F5DC PRG:35DC E0 FC FF FF FF FF FF FF 00 00 00 C0 F0 FC FE FF
.byte $0F, $0F, $07, $03, $03, $01, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5EC PRG:35EC 0F 0F 07 03 03 01 00 00 FF FF FF FF FF FF FF FF
.byte $F0, $F0, $F0, $F0, $F0, $F0, $F0, $F0, $FE, $FE, $FC, $FC, $F8, $F8, $F0, $F0 ; CPU:$F5FC PRG:35FC F0 F0 F0 F0 F0 F0 F0 F0 FE FE FC FC F8 F8 F0 F0
.byte $01, $01, $03, $07, $07, $0F, $0F, $1F, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F60C PRG:360C 01 01 03 07 07 0F 0F 1F FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $80, $C0, $E0, $F0, $F8, $FC, $FE, $FF ; CPU:$F61C PRG:361C FF FF FF FF FF FF FF FF 80 C0 E0 F0 F8 FC FE FF
.byte $00, $00, $00, $00, $18, $3C, $7E, $FF, $80, $80, $C0, $E0, $E0, $F0, $F8, $F8 ; CPU:$F62C PRG:362C 00 00 00 00 18 3C 7E FF 80 80 C0 E0 E0 F0 F8 F8
.byte $7F, $7F, $3F, $3F, $1F, $1F, $0F, $0F, $F0, $E0, $E0, $E0, $C0, $C0, $C0, $C0 ; CPU:$F63C PRG:363C 7F 7F 3F 3F 1F 1F 0F 0F F0 E0 E0 E0 C0 C0 C0 C0
.byte $1F, $3F, $3F, $7F, $7F, $7F, $FF, $FF, $80, $80, $80, $80, $80, $80, $80, $80 ; CPU:$F64C PRG:364C 1F 3F 3F 7F 7F 7F FF FF 80 80 80 80 80 80 80 80
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $07, $1F, $3F, $7F, $7F ; CPU:$F65C PRG:365C FF FF FF FF FF FF FF FF 00 00 00 07 1F 3F 7F 7F
.byte $00, $00, $00, $E0, $F8, $FC, $FE, $FE, $01, $01, $01, $01, $01, $01, $01, $01 ; CPU:$F66C PRG:366C 00 00 00 E0 F8 FC FE FE 01 01 01 01 01 01 01 01
.byte $FC, $FC, $FE, $FE, $FE, $FF, $FF, $FF, $07, $07, $07, $03, $03, $03, $03, $01 ; CPU:$F67C PRG:367C FC FC FE FE FE FF FF FF 07 07 07 03 03 03 03 01
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $F6, $E5, $F5, $F5, $F5, $F6, $FF ; CPU:$F68C PRG:368C FF FF FF FF FF FF FF FF FF F6 E5 F5 F5 F5 F6 FF
.byte $FF, $EF, $57, $57, $57, $57, $EF, $FF, $FF, $FF, $FF, $FF, $E0, $E0, $E0, $E0 ; CPU:$F69C PRG:369C FF EF 57 57 57 57 EF FF FF FF FF FF E0 E0 E0 E0
.byte $FF, $FF, $FF, $FF, $03, $03, $03, $03, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6AC PRG:36AC FF FF FF FF 03 03 03 03 FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FC, $F0, $E0, $C0, $80, $E0, $E0, $E0, $E0, $E0, $E0, $E0, $E0 ; CPU:$F6BC PRG:36BC FF FF FF FC F0 E0 C0 80 E0 E0 E0 E0 E0 E0 E0 E0
.byte $00, $03, $03, $03, $03, $03, $03, $03, $FF, $FF, $FF, $3F, $0F, $07, $03, $01 ; CPU:$F6CC PRG:36CC 00 03 03 03 03 03 03 03 FF FF FF 3F 0F 07 03 01
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $80, $80, $80, $C0, $C0, $C0, $C0, $E0 ; CPU:$F6DC PRG:36DC FF FF FF FF FF FF FF FF 80 80 80 C0 C0 C0 C0 E0
.byte $01, $01, $01, $01, $01, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6EC PRG:36EC 01 01 01 01 01 00 00 00 FF FF FF FF FF FF FF FF
.byte $FF, $FE, $FC, $F8, $F0, $E0, $C0, $80, $00, $00, $07, $0F, $1F, $1F, $3F, $3F ; CPU:$F6FC PRG:36FC FF FE FC F8 F0 E0 C0 80 00 00 07 0F 1F 1F 3F 3F
.byte $00, $00, $E0, $F0, $F8, $F8, $FC, $FC, $FF, $FF, $7F, $7F, $3F, $3F, $1F, $1F ; CPU:$F70C PRG:370C 00 00 E0 F0 F8 F8 FC FC FF FF 7F 7F 3F 3F 1F 1F
.byte $E0, $E0, $E0, $E0, $E0, $E0, $E0, $E0, $80, $80, $80, $C0, $C0, $C0, $E0, $E0 ; CPU:$F71C PRG:371C E0 E0 E0 E0 E0 E0 E0 E0 80 80 80 C0 C0 C0 E0 E0
.byte $FF, $FF, $FF, $7F, $7F, $7F, $3F, $3F, $3F, $3F, $1F, $1F, $0F, $07, $00, $00 ; CPU:$F72C PRG:372C FF FF FF 7F 7F 7F 3F 3F 3F 3F 1F 1F 0F 07 00 00
.byte $FC, $FC, $F8, $F8, $F0, $E0, $00, $00, $00, $00, $00, $00, $03, $03, $03, $03 ; CPU:$F73C PRG:373C FC FC F8 F8 F0 E0 00 00 00 00 00 00 03 03 03 03
.byte $00, $00, $00, $00, $C0, $C0, $C0, $C0, $0F, $0F, $0F, $0F, $07, $07, $07, $07 ; CPU:$F74C PRG:374C 00 00 00 00 C0 C0 C0 C0 0F 0F 0F 0F 07 07 07 07
.byte $E0, $E0, $E0, $E0, $E0, $E0, $E0, $E0, $E0, $F0, $F0, $F0, $F8, $F8, $F8, $FC ; CPU:$F75C PRG:375C E0 E0 E0 E0 E0 E0 E0 E0 E0 F0 F0 F0 F8 F8 F8 FC
.byte $3F, $1F, $1F, $1F, $0F, $0F, $0F, $07, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F76C PRG:376C 3F 1F 1F 1F 0F 0F 0F 07 FF FF FF FF FF FF FF FF
.byte $FF, $7F, $3F, $1F, $0F, $07, $03, $01, $01, $03, $07, $0F, $1F, $3F, $7F, $FF ; CPU:$F77C PRG:377C FF 7F 3F 1F 0F 07 03 01 01 03 07 0F 1F 3F 7F FF
.byte $07, $07, $07, $07, $07, $07, $07, $07, $FC, $FC, $FE, $FE, $FE, $FF, $FF, $FF ; CPU:$F78C PRG:378C 07 07 07 07 07 07 07 07 FC FC FE FE FE FF FF FF
.byte $07, $03, $03, $01, $01, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FE, $FE, $7C ; CPU:$F79C PRG:379C 07 03 03 01 01 00 00 00 FF FF FF FF FF FE FE 7C
.byte $00, $00, $00, $00, $01, $01, $03, $03, $0F, $3F, $7F, $FF, $FF, $FF, $FF, $FF ; CPU:$F7AC PRG:37AC 00 00 00 00 01 01 03 03 0F 3F 7F FF FF FF FF FF
.byte $F0, $FC, $FE, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $00, $80, $80, $C0, $C0 ; CPU:$F7BC PRG:37BC F0 FC FE FF FF FF FF FF 00 00 00 00 80 80 C0 C0
.byte $03, $07, $07, $07, $07, $07, $07, $03, $FF, $F6, $E5, $F5, $F5, $F5, $F6, $FF ; CPU:$F7CC PRG:37CC 03 07 07 07 07 07 07 03 FF F6 E5 F5 F5 F5 F6 FF
.byte $FF, $EF, $57, $57, $57, $57, $EF, $FF, $C0, $E0, $E0, $E0, $E0, $E0, $E0, $C0 ; CPU:$F7DC PRG:37DC FF EF 57 57 57 57 EF FF C0 E0 E0 E0 E0 E0 E0 C0
.byte $03, $03, $01, $01, $00, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $7F, $3F, $0F ; CPU:$F7EC PRG:37EC 03 03 01 01 00 00 00 00 FF FF FF FF FF 7F 3F 0F
.byte $FF, $FF, $FF, $FF, $FF, $FE, $FC, $F0, $C0, $C0, $80, $80, $00, $00, $00, $00 ; CPU:$F7FC PRG:37FC FF FF FF FF FF FE FC F0 C0 C0 80 80 00 00 00 00
.byte $60, $60, $60, $60, $60, $60, $60, $00, $07, $07, $07, $0F, $0F, $0F, $1F, $1F ; CPU:$F80C PRG:380C 60 60 60 60 60 60 60 00 07 07 07 0F 0F 0F 1F 1F
.byte $00, $00, $00, $00, $00, $01, $03, $07, $1F, $3F, $3F, $7F, $FF, $FF, $FF, $FF ; CPU:$F81C PRG:381C 00 00 00 00 00 01 03 07 1F 3F 3F 7F FF FF FF FF
.byte $0F, $3F, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $03, $07, $06, $00, $00 ; CPU:$F82C PRG:382C 0F 3F FF FF FF FF FF FF 00 00 00 03 07 06 00 00
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $7F, $3F, $1F, $0F, $07, $03, $03 ; CPU:$F83C PRG:383C FF FF FF FF FF FF FF FF FF 7F 3F 1F 0F 07 03 03
.byte $18, $18, $1C, $1E, $1B, $19, $18, $18, $D8, $D8, $C0, $DA, $DB, $DB, $DB, $DB ; CPU:$F84C PRG:384C 18 18 1C 1E 1B 19 18 18 D8 D8 C0 DA DB DB DB DB
.byte $00, $0C, $1E, $CC, $6D, $6D, $6D, $6C, $00, $00, $00, $E5, $B6, $F6, $86, $E6 ; CPU:$F85C PRG:385C 00 0C 1E CC 6D 6D 6D 6C 00 00 00 E5 B6 F6 86 E6
.byte $03, $03, $03, $8F, $DB, $DB, $DB, $CF, $00, $00, $00, $38, $6C, $6C, $6C, $38 ; CPU:$F86C PRG:386C 03 03 03 8F DB DB DB CF 00 00 00 38 6C 6C 6C 38
.byte $01, $01, $01, $01, $01, $01, $01, $03, $01, $03, $07, $07, $07, $07, $07, $07 ; CPU:$F87C PRG:387C 01 01 01 01 01 01 01 03 01 03 07 07 07 07 07 07
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $80, $C0, $E0, $F8, $FF, $FF, $FF, $FF ; CPU:$F88C PRG:388C FF FF FF FF FF FF FF FF 80 C0 E0 F8 FF FF FF FF
.byte $03, $07, $0F, $3F, $FF, $FF, $FF, $FF, $01, $01, $01, $01, $01, $00, $00, $00 ; CPU:$F89C PRG:389C 03 07 0F 3F FF FF FF FF 01 01 01 01 01 00 00 00
.byte $C0, $C0, $C0, $C0, $C0, $80, $00, $00, $07, $07, $07, $07, $07, $07, $07, $07 ; CPU:$F8AC PRG:38AC C0 C0 C0 C0 C0 80 00 00 07 07 07 07 07 07 07 07
.byte $FF, $FF, $FE, $FE, $FC, $FC, $F8, $F8, $7F, $7F, $3F, $1F, $07, $00, $00, $00 ; CPU:$F8BC PRG:38BC FF FF FE FE FC FC F8 F8 7F 7F 3F 1F 07 00 00 00
.byte $FE, $FE, $FC, $F8, $E0, $00, $00, $00, $0F, $0F, $07, $07, $03, $03, $01, $01 ; CPU:$F8CC PRG:38CC FE FE FC F8 E0 00 00 00 0F 0F 07 07 03 03 01 01
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $FF, $FF, $00, $00, $00 ; CPU:$F8DC PRG:38DC FF FF FF FF FF FF FF FF 00 00 00 FF FF 00 00 00
.byte $00, $00, $00, $7F, $7F, $00, $00, $00, $00, $00, $00, $3F, $3F, $00, $00, $00 ; CPU:$F8EC PRG:38EC 00 00 00 7F 7F 00 00 00 00 00 00 3F 3F 00 00 00
.byte $00, $00, $00, $1F, $1F, $00, $00, $00, $00, $00, $00, $0F, $0F, $00, $00, $00 ; CPU:$F8FC PRG:38FC 00 00 00 1F 1F 00 00 00 00 00 00 0F 0F 00 00 00
.byte $00, $00, $00, $07, $07, $00, $00, $00, $00, $00, $00, $03, $03, $00, $00, $00 ; CPU:$F90C PRG:390C 00 00 00 07 07 00 00 00 00 00 00 03 03 00 00 00
.byte $00, $00, $00, $01, $01, $00, $00, $00, $0F, $07, $03, $03, $01, $01, $01, $01 ; CPU:$F91C PRG:391C 00 00 00 01 01 00 00 00 0F 07 03 03 01 01 01 01
.byte $01, $01, $01, $03, $03, $07, $07, $0F, $7F, $7F, $7F, $7F, $7F, $7F, $7F, $3F ; CPU:$F92C PRG:392C 01 01 01 03 03 07 07 0F 7F 7F 7F 7F 7F 7F 7F 3F
.byte $FE, $DA, $AA, $AA, $AA, $DA, $FE, $FC, $FE, $E6, $EA, $EE, $EE, $C6, $FE, $FC ; CPU:$F93C PRG:393C FE DA AA AA AA DA FE FC FE E6 EA EE EE C6 FE FC
.byte $FE, $C6, $EA, $DA, $DA, $E6, $FE, $FC, $FE, $DA, $EA, $F2, $EA, $DA, $FE, $FC ; CPU:$F94C PRG:394C FE C6 EA DA DA E6 FE FC FE DA EA F2 EA DA FE FC
.byte $FE, $DA, $C2, $DA, $DA, $E6, $FE, $FC, $0F, $1F, $1F, $3F, $3F, $7F, $7F, $FF ; CPU:$F95C PRG:395C FE DA C2 DA DA E6 FE FC 0F 1F 1F 3F 3F 7F 7F FF
.byte $FF, $FF, $C5, $DD, $C6, $DD, $C5, $FF, $00, $FF, $51, $5B, $DB, $5B, $5B, $FF ; CPU:$F96C PRG:396C FF FF C5 DD C6 DD C5 FF 00 FF 51 5B DB 5B 5B FF
.byte $00, $00, $80, $C0, $E0, $C0, $80, $00, $03, $03, $03, $03, $03, $03, $03, $03 ; CPU:$F97C PRG:397C 00 00 80 C0 E0 C0 80 00 03 03 03 03 03 03 03 03
.byte $02, $07, $07, $07, $07, $07, $07, $07, $00, $00, $00, $01, $01, $01, $03, $03 ; CPU:$F98C PRG:398C 02 07 07 07 07 07 07 07 00 00 00 01 01 01 03 03
.byte $C0, $C0, $C0, $C0, $C0, $C0, $C0, $C0, $00, $00, $00, $80, $80, $80, $C0, $C0 ; CPU:$F99C PRG:399C C0 C0 C0 C0 C0 C0 C0 C0 00 00 00 80 80 80 C0 C0
.byte $07, $07, $07, $07, $07, $07, $07, $07, $03, $07, $07, $07, $0F, $0F, $0F, $1F ; CPU:$F9AC PRG:39AC 07 07 07 07 07 07 07 07 03 07 07 07 0F 0F 0F 1F
.byte $40, $E0, $E0, $E0, $E0, $E0, $E0, $E0, $C0, $E0, $E0, $E0, $F0, $F0, $F0, $F8 ; CPU:$F9BC PRG:39BC 40 E0 E0 E0 E0 E0 E0 E0 C0 E0 E0 E0 F0 F0 F0 F8
.byte $07, $07, $07, $07, $07, $03, $03, $01, $E0, $E0, $E0, $E0, $E0, $E0, $E0, $E0 ; CPU:$F9CC PRG:39CC 07 07 07 07 07 03 03 01 E0 E0 E0 E0 E0 E0 E0 E0
.byte $1F, $1F, $3F, $3F, $3F, $7F, $7F, $7F, $FF, $FF, $FF, $FF, $E6, $E3, $E0, $E0 ; CPU:$F9DC PRG:39DC 1F 1F 3F 3F 3F 7F 7F 7F FF FF FF FF E6 E3 E0 E0
.byte $FF, $FF, $FF, $FF, $03, $83, $C3, $73, $03, $03, $03, $03, $03, $01, $01, $00 ; CPU:$F9EC PRG:39EC FF FF FF FF 03 83 C3 73 03 03 03 03 03 01 01 00
.byte $F8, $F8, $FC, $FC, $FC, $FE, $FE, $FE, $FF, $7F, $1F, $0E, $00, $00, $00, $00 ; CPU:$F9FC PRG:39FC F8 F8 FC FC FC FE FE FE FF 7F 1F 0E 00 00 00 00
.byte $E0, $E0, $E0, $E0, $E0, $C0, $C0, $80, $FF, $FE, $F8, $70, $00, $00, $00, $00 ; CPU:$FA0C PRG:3A0C E0 E0 E0 E0 E0 C0 C0 80 FF FE F8 70 00 00 00 00
.byte $C0, $C0, $C0, $C0, $C0, $80, $80, $00, $E0, $E0, $E3, $EE, $E6, $E3, $E0, $E0 ; CPU:$FA1C PRG:3A1C C0 C0 C0 C0 C0 80 80 00 E0 E0 E3 EE E6 E3 E0 E0
.byte $38, $E3, $83, $03, $03, $83, $C3, $73, $00, $00, $00, $00, $80, $80, $C0, $C0 ; CPU:$FA2C PRG:3A2C 38 E3 83 03 03 83 C3 73 00 00 00 00 80 80 C0 C0
.byte $E0, $70, $3C, $1E, $07, $03, $01, $00, $07, $0E, $3C, $78, $E0, $C0, $80, $00 ; CPU:$FA3C PRG:3A3C E0 70 3C 1E 07 03 01 00 07 0E 3C 78 E0 C0 80 00
.byte $00, $00, $00, $00, $01, $01, $03, $03, $3C, $1E, $07, $03, $01, $00, $00, $00 ; CPU:$FA4C PRG:3A4C 00 00 00 00 01 01 03 03 3C 1E 07 03 01 00 00 00
.byte $00, $00, $00, $00, $00, $03, $07, $0E, $3F, $7F, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA5C PRG:3A5C 00 00 00 00 00 03 07 0E 3F 7F FF FF FF FF FF FF
.byte $7F, $3F, $00, $00, $00, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA6C PRG:3A6C 7F 3F 00 00 00 00 00 00 FF FF FF FF FF FF FF FF
.byte $FF, $FF, $00, $00, $00, $00, $00, $00, $FF, $BF, $BF, $FF, $FF, $BF, $BF, $FF ; CPU:$FA7C PRG:3A7C FF FF 00 00 00 00 00 00 FF BF BF FF FF BF BF FF
.byte $00, $00, $00, $00, $00, $FF, $FF, $FF, $F0, $F0, $E0, $E0, $C0, $C0, $80, $80 ; CPU:$FA8C PRG:3A8C 00 00 00 00 00 FF FF FF F0 F0 E0 E0 C0 C0 80 80
.byte $00, $00, $00, $80, $80, $00, $00, $00, $00, $00, $00, $C0, $C0, $00, $00, $00 ; CPU:$FA9C PRG:3A9C 00 00 00 80 80 00 00 00 00 00 00 C0 C0 00 00 00
.byte $00, $00, $00, $E0, $E0, $00, $00, $00, $00, $00, $00, $F0, $F0, $00, $00, $00 ; CPU:$FAAC PRG:3AAC 00 00 00 E0 E0 00 00 00 00 00 00 F0 F0 00 00 00
.byte $00, $00, $00, $F8, $F8, $00, $00, $00, $00, $00, $00, $FC, $FC, $00, $00, $00 ; CPU:$FABC PRG:3ABC 00 00 00 F8 F8 00 00 00 00 00 00 FC FC 00 00 00
.byte $00, $00, $00, $FE, $FE, $00, $00, $00, $00, $00, $00, $FF, $FF, $00, $00, $00 ; CPU:$FACC PRG:3ACC 00 00 00 FE FE 00 00 00 00 00 00 FF FF 00 00 00
.byte $80, $80, $C0, $C0, $E0, $E0, $F0, $F0, $3E, $7F, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FADC PRG:3ADC 80 80 C0 C0 E0 E0 F0 F0 3E 7F FF FF FF FF FF FF
.byte $7F, $3F, $0F, $01, $00, $00, $00, $00, $01, $01, $03, $03, $07, $07, $0F, $0F ; CPU:$FAEC PRG:3AEC 7F 3F 0F 01 00 00 00 00 01 01 03 03 07 07 0F 0F
.byte $F8, $F8, $FC, $FC, $FE, $FE, $FF, $FF, $F8, $F8, $FC, $FC, $FE, $FE, $FF, $FF ; CPU:$FAFC PRG:3AFC F8 F8 FC FC FE FE FF FF F8 F8 FC FC FE FE FF FF
.byte $1F, $1F, $3F, $3F, $7F, $7F, $FF, $FF, $1F, $1F, $3F, $3F, $7F, $7F, $FF, $FF ; CPU:$FB0C PRG:3B0C 1F 1F 3F 3F 7F 7F FF FF 1F 1F 3F 3F 7F 7F FF FF
.byte $FF, $FF, $FF, $FF, $E7, $C3, $81, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB1C PRG:3B1C FF FF FF FF E7 C3 81 FF FF FF FF FF FF FF FF FF
; -----------------------------------------------------------------------------
; Routine: UpdateAPU
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU:
lda #$C0 ; CPU:$FB2C PRG:3B2C A9 C0
sta JOY2 ; CPU:$FB2E PRG:3B2E 8D 17 40
jsr UpdateAPU8 ; CPU:$FB31 PRG:3B31 20 DD FB
lda #$00 ; CPU:$FB34 PRG:3B34 A9 00
sta ZpFF ; CPU:$FB36 PRG:3B36 85 FF
sta ZpFE ; CPU:$FB38 PRG:3B38 85 FE
sta ZpFD ; CPU:$FB3A PRG:3B3A 85 FD
sta APUDMCDIRECT ; CPU:$FB3C PRG:3B3C 8D 11 40
rts ; CPU:$FB3F PRG:3B3F 60
; -----------------------------------------------------------------------------
; Routine: UpdateAPU2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU2:
jsr UpdateAPU16 ; CPU:$FB40 PRG:3B40 20 DC FF
; -----------------------------------------------------------------------------
; Routine: UpdateAPU3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU3:
ldx #$00 ; CPU:$FB43 PRG:3B43 A2 00
; ---- data $FB45-$FB45 (1 bytes) ----
.byte $2C ; CPU:$FB45 PRG:3B45 2C
; -----------------------------------------------------------------------------
; Routine: UpdateAPU4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU4:
ldx #$04 ; CPU:$FB46 PRG:3B46 A2 04
; ---- data $FB48-$FB48 (1 bytes) ----
.byte $2C ; CPU:$FB48 PRG:3B48 2C
; -----------------------------------------------------------------------------
; Routine: UpdateAPU5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU5:
ldx #$08 ; CPU:$FB49 PRG:3B49 A2 08
tay ; CPU:$FB4B PRG:3B4B A8
lda $FF01,y ; CPU:$FB4C PRG:3B4C B9 01 FF
beq SubCFB5C ; CPU:$FB4F PRG:3B4F F0 0B
sta APUPULSE1TIMERLO,x ; CPU:$FB51 PRG:3B51 9D 02 40
lda $FF00,y ; CPU:$FB54 PRG:3B54 B9 00 FF
ora #$08 ; CPU:$FB57 PRG:3B57 09 08
sta APUPULSE1TIMERHI,x ; CPU:$FB59 PRG:3B59 9D 03 40
; -----------------------------------------------------------------------------
; Routine: SubCFB5C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFB5C:
rts ; CPU:$FB5C PRG:3B5C 60
; -----------------------------------------------------------------------------
; Routine: UpdateAPU6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU6:
tax ; CPU:$FB5D PRG:3B5D AA
ror a ; CPU:$FB5E PRG:3B5E 6A
txa ; CPU:$FB5F PRG:3B5F 8A
rol a ; CPU:$FB60 PRG:3B60 2A
rol a ; CPU:$FB61 PRG:3B61 2A
rol a ; CPU:$FB62 PRG:3B62 2A
and #$07 ; CPU:$FB63 PRG:3B63 29 07
clc ; CPU:$FB65 PRG:3B65 18
adc $07F0 ; CPU:$FB66 PRG:3B66 6D F0 07
tay ; CPU:$FB69 PRG:3B69 A8
lda $FF28,y ; CPU:$FB6A PRG:3B6A B9 28 FF
rts ; CPU:$FB6D PRG:3B6D 60
; -----------------------------------------------------------------------------
; Routine: UpdateAPU7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU7:
sty ZpF1 ; CPU:$FB6E PRG:3B6E 84 F1
lda #$28 ; CPU:$FB70 PRG:3B70 A9 28
sta ZpF7 ; CPU:$FB72 PRG:3B72 85 F7
lda #$1A ; CPU:$FB74 PRG:3B74 A9 1A
sta ZpF8 ; CPU:$FB76 PRG:3B76 85 F8
ldx #$9C ; CPU:$FB78 PRG:3B78 A2 9C
ldy #$83 ; CPU:$FB7A PRG:3B7A A0 83
jsr UpdateAPU16 ; CPU:$FB7C PRG:3B7C 20 DC FF
; -----------------------------------------------------------------------------
; Routine: SubCFB7F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFB7F:
lda ZpF7 ; CPU:$FB7F PRG:3B7F A5 F7
cmp #$20 ; CPU:$FB81 PRG:3B81 C9 20
bcs SubCFB8C ; CPU:$FB83 PRG:3B83 B0 07
lsr a ; CPU:$FB85 PRG:3B85 4A
lsr a ; CPU:$FB86 PRG:3B86 4A
ora #$90 ; CPU:$FB87 PRG:3B87 09 90
sta APUPULSE1CTRL ; CPU:$FB89 PRG:3B89 8D 00 40
; -----------------------------------------------------------------------------
; Routine: SubCFB8C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFB8C:
lda ZpF7 ; CPU:$FB8C PRG:3B8C A5 F7
and #$03 ; CPU:$FB8E PRG:3B8E 29 03
bne SubCFBAA ; CPU:$FB90 PRG:3B90 D0 18
lda ZpF8 ; CPU:$FB92 PRG:3B92 A5 F8
lsr a ; CPU:$FB94 PRG:3B94 4A
lsr a ; CPU:$FB95 PRG:3B95 4A
lsr a ; CPU:$FB96 PRG:3B96 4A
lsr a ; CPU:$FB97 PRG:3B97 4A
sec ; CPU:$FB98 PRG:3B98 38
adc ZpF8 ; CPU:$FB99 PRG:3B99 65 F8
sta ZpF8 ; CPU:$FB9B PRG:3B9B 85 F8
rol a ; CPU:$FB9D PRG:3B9D 2A
rol a ; CPU:$FB9E PRG:3B9E 2A
sta APUPULSE1TIMERLO ; CPU:$FB9F PRG:3B9F 8D 02 40
rol a ; CPU:$FBA2 PRG:3BA2 2A
and #$07 ; CPU:$FBA3 PRG:3BA3 29 07
ora #$08 ; CPU:$FBA5 PRG:3BA5 09 08
sta APUPULSE1TIMERHI ; CPU:$FBA7 PRG:3BA7 8D 03 40
; -----------------------------------------------------------------------------
; Routine: SubCFBAA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFBAA:
bne SubCFC27 ; CPU:$FBAA PRG:3BAA D0 7B
; -----------------------------------------------------------------------------
; Routine: SubCFBAC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFBAC:
sty ZpF1 ; CPU:$FBAC PRG:3BAC 84 F1
lda #$34 ; CPU:$FBAE PRG:3BAE A9 34
sta ZpF7 ; CPU:$FBB0 PRG:3BB0 85 F7
ldx #$5C ; CPU:$FBB2 PRG:3BB2 A2 5C
ldy #$81 ; CPU:$FBB4 PRG:3BB4 A0 81
jsr UpdateAPU16 ; CPU:$FBB6 PRG:3BB6 20 DC FF
bne SubCFBCE ; CPU:$FBB9 PRG:3BB9 D0 13
; -----------------------------------------------------------------------------
; Routine: SubCFBBB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFBBB:
lda ZpF7 ; CPU:$FBBB PRG:3BBB A5 F7
lsr a ; CPU:$FBBD PRG:3BBD 4A
cmp #$50 ; CPU:$FBBE PRG:3BBE C9 50
bcc SubCFBC3 ; CPU:$FBC0 PRG:3BC0 90 01
lsr a ; CPU:$FBC2 PRG:3BC2 4A
; -----------------------------------------------------------------------------
; Routine: SubCFBC3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFBC3:
lsr a ; CPU:$FBC3 PRG:3BC3 4A
clc ; CPU:$FBC4 PRG:3BC4 18
adc ZpF7 ; CPU:$FBC5 PRG:3BC5 65 F7
bcc SubCFBCC ; CPU:$FBC7 PRG:3BC7 90 03
jmp UpdateAPU10 ; CPU:$FBC9 PRG:3BC9 4C 2B FC
; -----------------------------------------------------------------------------
; Routine: SubCFBCC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFBCC:
sta ZpF7 ; CPU:$FBCC PRG:3BCC 85 F7
; -----------------------------------------------------------------------------
; Routine: SubCFBCE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFBCE:
rol a ; CPU:$FBCE PRG:3BCE 2A
rol a ; CPU:$FBCF PRG:3BCF 2A
sta APUPULSE1TIMERLO ; CPU:$FBD0 PRG:3BD0 8D 02 40
rol a ; CPU:$FBD3 PRG:3BD3 2A
and #$03 ; CPU:$FBD4 PRG:3BD4 29 03
ora #$08 ; CPU:$FBD6 PRG:3BD6 09 08
sta APUPULSE1TIMERHI ; CPU:$FBD8 PRG:3BD8 8D 03 40
bne UpdateAPU9 ; CPU:$FBDB PRG:3BDB D0 32
; -----------------------------------------------------------------------------
; Routine: UpdateAPU8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU8:
lda ZpF6 ; CPU:$FBDD PRG:3BDD A5 F6
bne UpdateAPU9 ; CPU:$FBDF PRG:3BDF D0 2E
ldy ZpFF ; CPU:$FBE1 PRG:3BE1 A4 FF
lda ZpF1 ; CPU:$FBE3 PRG:3BE3 A5 F1
lsr ZpFF ; CPU:$FBE5 PRG:3BE5 46 FF
bcs SubCFC61 ; CPU:$FBE7 PRG:3BE7 B0 78
lsr a ; CPU:$FBE9 PRG:3BE9 4A
bcs SubCFC12 ; CPU:$FBEA PRG:3BEA B0 26
lsr ZpFF ; CPU:$FBEC PRG:3BEC 46 FF
bcs SubCFC15 ; CPU:$FBEE PRG:3BEE B0 25
lsr a ; CPU:$FBF0 PRG:3BF0 4A
bcs SubCFB7F ; CPU:$FBF1 PRG:3BF1 B0 8C
lsr ZpFF ; CPU:$FBF3 PRG:3BF3 46 FF
bcs SubCFC34 ; CPU:$FBF5 PRG:3BF5 B0 3D
lsr a ; CPU:$FBF7 PRG:3BF7 4A
bcs SubCFC27 ; CPU:$FBF8 PRG:3BF8 B0 2D
lsr ZpFF ; CPU:$FBFA PRG:3BFA 46 FF
bcs SubCFC45 ; CPU:$FBFC PRG:3BFC B0 47
lsr a ; CPU:$FBFE PRG:3BFE 4A
bcs SubCFC54 ; CPU:$FBFF PRG:3BFF B0 53
lsr ZpFF ; CPU:$FC01 PRG:3C01 46 FF
bcs SubCFBAC ; CPU:$FC03 PRG:3C03 B0 A7
lsr a ; CPU:$FC05 PRG:3C05 4A
bcs SubCFBBB ; CPU:$FC06 PRG:3C06 B0 B3
lsr ZpFF ; CPU:$FC08 PRG:3C08 46 FF
bcs SubCFC18 ; CPU:$FC0A PRG:3C0A B0 0C
lsr a ; CPU:$FC0C PRG:3C0C 4A
bcs SubCFC27 ; CPU:$FC0D PRG:3C0D B0 18
; -----------------------------------------------------------------------------
; Routine: UpdateAPU9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU9:
jmp UpdateAPU12 ; CPU:$FC0F PRG:3C0F 4C E2 FC
; -----------------------------------------------------------------------------
; Routine: SubCFC12
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC12:
jmp UpdateAPU11 ; CPU:$FC12 PRG:3C12 4C 72 FC
; -----------------------------------------------------------------------------
; Routine: SubCFC15
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC15:
jmp UpdateAPU7 ; CPU:$FC15 PRG:3C15 4C 6E FB
; -----------------------------------------------------------------------------
; Routine: SubCFC18
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC18:
sty ZpF1 ; CPU:$FC18 PRG:3C18 84 F1
lda #$0A ; CPU:$FC1A PRG:3C1A A9 0A
sta ZpF7 ; CPU:$FC1C PRG:3C1C 85 F7
ldx #$96 ; CPU:$FC1E PRG:3C1E A2 96
ldy #$82 ; CPU:$FC20 PRG:3C20 A0 82
lda #$18 ; CPU:$FC22 PRG:3C22 A9 18
jsr UpdateAPU2 ; CPU:$FC24 PRG:3C24 20 40 FB
; -----------------------------------------------------------------------------
; Routine: SubCFC27
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC27:
dec ZpF7 ; CPU:$FC27 PRG:3C27 C6 F7
bne UpdateAPU9 ; CPU:$FC29 PRG:3C29 D0 E4
; -----------------------------------------------------------------------------
; Routine: UpdateAPU10
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU10:
jsr UpdateAPU17 ; CPU:$FC2B PRG:3C2B 20 E3 FF
lda #$00 ; CPU:$FC2E PRG:3C2E A9 00
sta ZpF1 ; CPU:$FC30 PRG:3C30 85 F1
beq UpdateAPU9 ; CPU:$FC32 PRG:3C32 F0 DB
; -----------------------------------------------------------------------------
; Routine: SubCFC34
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC34:
sty ZpF1 ; CPU:$FC34 PRG:3C34 84 F1
lda #$0A ; CPU:$FC36 PRG:3C36 A9 0A
sta ZpF7 ; CPU:$FC38 PRG:3C38 85 F7
ldx #$83 ; CPU:$FC3A PRG:3C3A A2 83
ldy #$8A ; CPU:$FC3C PRG:3C3C A0 8A
lda #$18 ; CPU:$FC3E PRG:3C3E A9 18
jsr UpdateAPU2 ; CPU:$FC40 PRG:3C40 20 40 FB
bne SubCFC27 ; CPU:$FC43 PRG:3C43 D0 E2
; -----------------------------------------------------------------------------
; Routine: SubCFC45
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC45:
sty ZpF1 ; CPU:$FC45 PRG:3C45 84 F1
lda #$0C ; CPU:$FC47 PRG:3C47 A9 0C
sta ZpF7 ; CPU:$FC49 PRG:3C49 85 F7
ldx #$85 ; CPU:$FC4B PRG:3C4B A2 85
ldy #$8C ; CPU:$FC4D PRG:3C4D A0 8C
lda #$02 ; CPU:$FC4F PRG:3C4F A9 02
jsr UpdateAPU2 ; CPU:$FC51 PRG:3C51 20 40 FB
; -----------------------------------------------------------------------------
; Routine: SubCFC54
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC54:
lda ZpF7 ; CPU:$FC54 PRG:3C54 A5 F7
cmp #$0A ; CPU:$FC56 PRG:3C56 C9 0A
bne SubCFC5F ; CPU:$FC58 PRG:3C58 D0 05
lda #$8B ; CPU:$FC5A PRG:3C5A A9 8B
sta APUPULSE1SWEEP ; CPU:$FC5C PRG:3C5C 8D 01 40
; -----------------------------------------------------------------------------
; Routine: SubCFC5F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC5F:
bne SubCFC27 ; CPU:$FC5F PRG:3C5F D0 C6
; -----------------------------------------------------------------------------
; Routine: SubCFC61
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC61:
sty ZpF1 ; CPU:$FC61 PRG:3C61 84 F1
lda #$29 ; CPU:$FC63 PRG:3C63 A9 29
sta ZpF7 ; CPU:$FC65 PRG:3C65 85 F7
lda #$25 ; CPU:$FC67 PRG:3C67 A9 25
sta ZpF8 ; CPU:$FC69 PRG:3C69 85 F8
ldx #$9C ; CPU:$FC6B PRG:3C6B A2 9C
ldy #$83 ; CPU:$FC6D PRG:3C6D A0 83
jsr UpdateAPU16 ; CPU:$FC6F PRG:3C6F 20 DC FF
; -----------------------------------------------------------------------------
; Routine: UpdateAPU11
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU11:
dec ZpF7 ; CPU:$FC72 PRG:3C72 C6 F7
lda ZpF7 ; CPU:$FC74 PRG:3C74 A5 F7
beq UpdateAPU10 ; CPU:$FC76 PRG:3C76 F0 B3
cmp #$30 ; CPU:$FC78 PRG:3C78 C9 30
bcs SubCFC83 ; CPU:$FC7A PRG:3C7A B0 07
lsr a ; CPU:$FC7C PRG:3C7C 4A
lsr a ; CPU:$FC7D PRG:3C7D 4A
ora #$90 ; CPU:$FC7E PRG:3C7E 09 90
sta APUPULSE1CTRL ; CPU:$FC80 PRG:3C80 8D 00 40
; -----------------------------------------------------------------------------
; Routine: SubCFC83
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFC83:
lda ZpF7 ; CPU:$FC83 PRG:3C83 A5 F7
and #$03 ; CPU:$FC85 PRG:3C85 29 03
bne SubCFCA5 ; CPU:$FC87 PRG:3C87 D0 1C
lda ZpF8 ; CPU:$FC89 PRG:3C89 A5 F8
lsr a ; CPU:$FC8B PRG:3C8B 4A
lsr a ; CPU:$FC8C PRG:3C8C 4A
lsr a ; CPU:$FC8D PRG:3C8D 4A
lsr a ; CPU:$FC8E PRG:3C8E 4A
sec ; CPU:$FC8F PRG:3C8F 38
adc ZpF8 ; CPU:$FC90 PRG:3C90 65 F8
sta ZpF8 ; CPU:$FC92 PRG:3C92 85 F8
asl a ; CPU:$FC94 PRG:3C94 0A
asl a ; CPU:$FC95 PRG:3C95 0A
asl a ; CPU:$FC96 PRG:3C96 0A
sta APUPULSE1TIMERLO ; CPU:$FC97 PRG:3C97 8D 02 40
lda ZpF8 ; CPU:$FC9A PRG:3C9A A5 F8
rol a ; CPU:$FC9C PRG:3C9C 2A
rol a ; CPU:$FC9D PRG:3C9D 2A
rol a ; CPU:$FC9E PRG:3C9E 2A
rol a ; CPU:$FC9F PRG:3C9F 2A
and #$07 ; CPU:$FCA0 PRG:3CA0 29 07
sta APUPULSE1TIMERHI ; CPU:$FCA2 PRG:3CA2 8D 03 40
; -----------------------------------------------------------------------------
; Routine: SubCFCA5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFCA5:
jmp UpdateAPU9 ; CPU:$FCA5 PRG:3CA5 4C 0F FC
; ---- data $FCA8-$FCB3 (12 bytes) ----
; referenced by `lda $FCA8,y` at $FCC8 (operand $FCA8 falls inside this region)
.byte $0E, $0D, $0E, $0D, $0C, $0D, $0C, $0D, $0C, $0B, $0C, $0B ; CPU:$FCA8 PRG:3CA8 0E 0D 0E 0D 0C 0D 0C 0D 0C 0B 0C 0B
; -----------------------------------------------------------------------------
; Routine: SubCFCB4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFCB4:
sty ZpF2 ; CPU:$FCB4 PRG:3CB4 84 F2
lda #$17 ; CPU:$FCB6 PRG:3CB6 A9 17
sta ZpF9 ; CPU:$FCB8 PRG:3CB8 85 F9
lda #$08 ; CPU:$FCBA PRG:3CBA A9 08
sta APUNOISELENGTH ; CPU:$FCBC PRG:3CBC 8D 0F 40
lda #$09 ; CPU:$FCBF PRG:3CBF A9 09
sta APUNOISECTRL ; CPU:$FCC1 PRG:3CC1 8D 0C 40
; -----------------------------------------------------------------------------
; Routine: SubCFCC4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFCC4:
lda ZpF9 ; CPU:$FCC4 PRG:3CC4 A5 F9
lsr a ; CPU:$FCC6 PRG:3CC6 4A
tay ; CPU:$FCC7 PRG:3CC7 A8
lda $FCA8,y ; CPU:$FCC8 PRG:3CC8 B9 A8 FC
sta APUNOISEPERIOD ; CPU:$FCCB PRG:3CCB 8D 0E 40
jmp UpdateAPU14 ; CPU:$FCCE PRG:3CCE 4C 55 FD
; -----------------------------------------------------------------------------
; Routine: SubCFCD1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFCD1:
sty ZpF2 ; CPU:$FCD1 PRG:3CD1 84 F2
lda #$28 ; CPU:$FCD3 PRG:3CD3 A9 28
sta ZpF9 ; CPU:$FCD5 PRG:3CD5 85 F9
ldx #$8F ; CPU:$FCD7 PRG:3CD7 A2 8F
ldy #$95 ; CPU:$FCD9 PRG:3CD9 A0 95
lda #$20 ; CPU:$FCDB PRG:3CDB A9 20
jsr UpdateAPU19 ; CPU:$FCDD PRG:3CDD 20 F0 FF
bne UpdateAPU14 ; CPU:$FCE0 PRG:3CE0 D0 73
; -----------------------------------------------------------------------------
; Routine: UpdateAPU12
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU12:
lda ZpF6 ; CPU:$FCE2 PRG:3CE2 A5 F6
bne UpdateAPU13 ; CPU:$FCE4 PRG:3CE4 D0 27
ldy ZpFE ; CPU:$FCE6 PRG:3CE6 A4 FE
lda ZpF2 ; CPU:$FCE8 PRG:3CE8 A5 F2
lsr ZpFE ; CPU:$FCEA PRG:3CEA 46 FE
bcs SubCFCB4 ; CPU:$FCEC PRG:3CEC B0 C6
lsr a ; CPU:$FCEE PRG:3CEE 4A
bcs SubCFCC4 ; CPU:$FCEF PRG:3CEF B0 D3
lsr ZpFE ; CPU:$FCF1 PRG:3CF1 46 FE
bcs SubCFCD1 ; CPU:$FCF3 PRG:3CF3 B0 DC
lsr a ; CPU:$FCF5 PRG:3CF5 4A
bcs UpdateAPU14 ; CPU:$FCF6 PRG:3CF6 B0 5D
lsr ZpFE ; CPU:$FCF8 PRG:3CF8 46 FE
bcs SubCFD24 ; CPU:$FCFA PRG:3CFA B0 28
lsr a ; CPU:$FCFC PRG:3CFC 4A
bcs SubCFD33 ; CPU:$FCFD PRG:3CFD B0 34
lsr ZpFE ; CPU:$FCFF PRG:3CFF 46 FE
bcs SubCFD5C ; CPU:$FD01 PRG:3D01 B0 59
lsr a ; CPU:$FD03 PRG:3D03 4A
bcs UpdateAPU14 ; CPU:$FD04 PRG:3D04 B0 4F
lsr a ; CPU:$FD06 PRG:3D06 4A
bcs UpdateAPU14 ; CPU:$FD07 PRG:3D07 B0 4C
lsr ZpFE ; CPU:$FD09 PRG:3D09 46 FE
bcs SubCFD6D ; CPU:$FD0B PRG:3D0B B0 60
; -----------------------------------------------------------------------------
; Routine: UpdateAPU13
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU13:
jmp UpdateAPU15 ; CPU:$FD0D PRG:3D0D 4C 91 FD
; -----------------------------------------------------------------------------
; Routine: SubCFD10
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD10:
lda #$00 ; CPU:$FD10 PRG:3D10 A9 00
sta ZpF2 ; CPU:$FD12 PRG:3D12 85 F2
lda #$10 ; CPU:$FD14 PRG:3D14 A9 10
sta APUPULSE2CTRL ; CPU:$FD16 PRG:3D16 8D 04 40
sta APUNOISECTRL ; CPU:$FD19 PRG:3D19 8D 0C 40
bne UpdateAPU13 ; CPU:$FD1C PRG:3D1C D0 EF
; ---- data $FD1E-$FD23 (6 bytes) ----
.byte $8B, $8A, $8B, $82, $83, $82 ; CPU:$FD1E PRG:3D1E 8B 8A 8B 82 83 82
; -----------------------------------------------------------------------------
; Routine: SubCFD24
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD24:
sty ZpF2 ; CPU:$FD24 PRG:3D24 84 F2
lda #$18 ; CPU:$FD26 PRG:3D26 A9 18
sta ZpF9 ; CPU:$FD28 PRG:3D28 85 F9
lda #$24 ; CPU:$FD2A PRG:3D2A A9 24
jsr UpdateAPU4 ; CPU:$FD2C PRG:3D2C 20 46 FB
lda #$07 ; CPU:$FD2F PRG:3D2F A9 07
sta ZpFA ; CPU:$FD31 PRG:3D31 85 FA
; -----------------------------------------------------------------------------
; Routine: SubCFD33
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD33:
dec ZpFA ; CPU:$FD33 PRG:3D33 C6 FA
bne SubCFD40 ; CPU:$FD35 PRG:3D35 D0 09
lda #$07 ; CPU:$FD37 PRG:3D37 A9 07
sta ZpFA ; CPU:$FD39 PRG:3D39 85 FA
lda #$22 ; CPU:$FD3B PRG:3D3B A9 22
jsr UpdateAPU4 ; CPU:$FD3D PRG:3D3D 20 46 FB
; -----------------------------------------------------------------------------
; Routine: SubCFD40
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD40:
ldy ZpFA ; CPU:$FD40 PRG:3D40 A4 FA
lda $FD1D,y ; CPU:$FD42 PRG:3D42 B9 1D FD
tay ; CPU:$FD45 PRG:3D45 A8
ldx #$98 ; CPU:$FD46 PRG:3D46 A2 98
lda ZpF9 ; CPU:$FD48 PRG:3D48 A5 F9
cmp #$10 ; CPU:$FD4A PRG:3D4A C9 10
bcs SubCFD52 ; CPU:$FD4C PRG:3D4C B0 04
lsr a ; CPU:$FD4E PRG:3D4E 4A
ora #$90 ; CPU:$FD4F PRG:3D4F 09 90
tax ; CPU:$FD51 PRG:3D51 AA
; -----------------------------------------------------------------------------
; Routine: SubCFD52
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD52:
jsr UpdateAPU18 ; CPU:$FD52 PRG:3D52 20 E9 FF
; -----------------------------------------------------------------------------
; Routine: UpdateAPU14
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU14:
dec ZpF9 ; CPU:$FD55 PRG:3D55 C6 F9
beq SubCFD10 ; CPU:$FD57 PRG:3D57 F0 B7
jmp UpdateAPU13 ; CPU:$FD59 PRG:3D59 4C 0D FD
; -----------------------------------------------------------------------------
; Routine: SubCFD5C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD5C:
sty ZpF2 ; CPU:$FD5C PRG:3D5C 84 F2
lda #$05 ; CPU:$FD5E PRG:3D5E A9 05
sta ZpF9 ; CPU:$FD60 PRG:3D60 85 F9
ldx #$82 ; CPU:$FD62 PRG:3D62 A2 82
ldy #$8B ; CPU:$FD64 PRG:3D64 A0 8B
lda #$00 ; CPU:$FD66 PRG:3D66 A9 00
jsr UpdateAPU2 ; CPU:$FD68 PRG:3D68 20 40 FB
bne UpdateAPU14 ; CPU:$FD6B PRG:3D6B D0 E8
; -----------------------------------------------------------------------------
; Routine: SubCFD6D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD6D:
sty ZpF2 ; CPU:$FD6D PRG:3D6D 84 F2
lda #$08 ; CPU:$FD6F PRG:3D6F A9 08
sta ZpF9 ; CPU:$FD71 PRG:3D71 85 F9
ldx #$80 ; CPU:$FD73 PRG:3D73 A2 80
ldy #$7F ; CPU:$FD75 PRG:3D75 A0 7F
jsr UpdateAPU18 ; CPU:$FD77 PRG:3D77 20 E9 FF
inc $07F6 ; CPU:$FD7A PRG:3D7A EE F6 07
lda $07F6 ; CPU:$FD7D PRG:3D7D AD F6 07
lsr a ; CPU:$FD80 PRG:3D80 4A
ldy #$1D ; CPU:$FD81 PRG:3D81 A0 1D
bcc SubCFD87 ; CPU:$FD83 PRG:3D83 90 02
ldy #$AB ; CPU:$FD85 PRG:3D85 A0 AB
; -----------------------------------------------------------------------------
; Routine: SubCFD87
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD87:
sty APUPULSE2TIMERLO ; CPU:$FD87 PRG:3D87 8C 06 40
lda #$19 ; CPU:$FD8A PRG:3D8A A9 19
sta APUPULSE2TIMERHI ; CPU:$FD8C PRG:3D8C 8D 07 40
bne UpdateAPU14 ; CPU:$FD8F PRG:3D8F D0 C4
; -----------------------------------------------------------------------------
; Routine: UpdateAPU15
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU15:
lda ZpFD ; CPU:$FD91 PRG:3D91 A5 FD
bne SubCFD9A ; CPU:$FD93 PRG:3D93 D0 05
lda ZpF6 ; CPU:$FD95 PRG:3D95 A5 F6
bne SubCFDE7 ; CPU:$FD97 PRG:3D97 D0 4E
rts ; CPU:$FD99 PRG:3D99 60
; -----------------------------------------------------------------------------
; Routine: SubCFD9A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD9A:
ldy #$07 ; CPU:$FD9A PRG:3D9A A0 07
; -----------------------------------------------------------------------------
; Routine: SubCFD9C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFD9C:
asl a ; CPU:$FD9C PRG:3D9C 0A
bcs SubCFDA2 ; CPU:$FD9D PRG:3D9D B0 03
dey ; CPU:$FD9F PRG:3D9F 88
bne SubCFD9C ; CPU:$FDA0 PRG:3DA0 D0 FA
; -----------------------------------------------------------------------------
; Routine: SubCFDA2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFDA2:
sty ZpF3 ; CPU:$FDA2 PRG:3DA2 84 F3
lda $FF3F,y ; CPU:$FDA4 PRG:3DA4 B9 3F FF
tay ; CPU:$FDA7 PRG:3DA7 A8
lda $FF3F,y ; CPU:$FDA8 PRG:3DA8 B9 3F FF
sta $07F0 ; CPU:$FDAB PRG:3DAB 8D F0 07
lda $FF40,y ; CPU:$FDAE PRG:3DAE B9 40 FF
sta ZpFB ; CPU:$FDB1 PRG:3DB1 85 FB
lda $FF41,y ; CPU:$FDB3 PRG:3DB3 B9 41 FF
sta ZpFC ; CPU:$FDB6 PRG:3DB6 85 FC
lda $FF42,y ; CPU:$FDB8 PRG:3DB8 B9 42 FF
sta ZpF4 ; CPU:$FDBB PRG:3DBB 85 F4
lda $FF43,y ; CPU:$FDBD PRG:3DBD B9 43 FF
sta ZpF5 ; CPU:$FDC0 PRG:3DC0 85 F5
lda #$01 ; CPU:$FDC2 PRG:3DC2 A9 01
sta $07F1 ; CPU:$FDC4 PRG:3DC4 8D F1 07
sta $07F2 ; CPU:$FDC7 PRG:3DC7 8D F2 07
sta $07F3 ; CPU:$FDCA PRG:3DCA 8D F3 07
ldy #$00 ; CPU:$FDCD PRG:3DCD A0 00
sty ZpF6 ; CPU:$FDCF PRG:3DCF 84 F6
sty APUTRIANGLECTRL ; CPU:$FDD1 PRG:3DD1 8C 08 40
lda #$10 ; CPU:$FDD4 PRG:3DD4 A9 10
sta APUPULSE1CTRL ; CPU:$FDD6 PRG:3DD6 8D 00 40
sta APUPULSE2CTRL ; CPU:$FDD9 PRG:3DD9 8D 04 40
sta APUNOISECTRL ; CPU:$FDDC PRG:3DDC 8D 0C 40
lda #$7F ; CPU:$FDDF PRG:3DDF A9 7F
sta APUPULSE1SWEEP ; CPU:$FDE1 PRG:3DE1 8D 01 40
sta APUPULSE2SWEEP ; CPU:$FDE4 PRG:3DE4 8D 05 40
; -----------------------------------------------------------------------------
; Routine: SubCFDE7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFDE7:
lda ZpF3 ; CPU:$FDE7 PRG:3DE7 A5 F3
bne SubCFE04 ; CPU:$FDE9 PRG:3DE9 D0 19
lda $07F5 ; CPU:$FDEB PRG:3DEB AD F5 07
beq SubCFE04 ; CPU:$FDEE PRG:3DEE F0 14
lda $07F1 ; CPU:$FDF0 PRG:3DF0 AD F1 07
ldx #$90 ; CPU:$FDF3 PRG:3DF3 A2 90
cmp #$03 ; CPU:$FDF5 PRG:3DF5 C9 03
bcc SubCFE01 ; CPU:$FDF7 PRG:3DF7 90 08
ldx #$9D ; CPU:$FDF9 PRG:3DF9 A2 9D
and #$07 ; CPU:$FDFB PRG:3DFB 29 07
bne SubCFE01 ; CPU:$FDFD PRG:3DFD D0 02
ldx #$9A ; CPU:$FDFF PRG:3DFF A2 9A
; -----------------------------------------------------------------------------
; Routine: SubCFE01
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE01:
stx APUPULSE2CTRL ; CPU:$FE01 PRG:3E01 8E 04 40
; -----------------------------------------------------------------------------
; Routine: SubCFE04
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE04:
dec $07F1 ; CPU:$FE04 PRG:3E04 CE F1 07
bne SubCFE44 ; CPU:$FE07 PRG:3E07 D0 3B
ldy ZpF6 ; CPU:$FE09 PRG:3E09 A4 F6
inc ZpF6 ; CPU:$FE0B PRG:3E0B E6 F6
lda (ZpFB),y ; CPU:$FE0D PRG:3E0D B1 FB
bne SubCFE1B ; CPU:$FE0F PRG:3E0F D0 0A
lda #$00 ; CPU:$FE11 PRG:3E11 A9 00
ldx #$05 ; CPU:$FE13 PRG:3E13 A2 05
; -----------------------------------------------------------------------------
; Routine: SubCFE15
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE15:
sta ZpF1,x ; CPU:$FE15 PRG:3E15 95 F1
dex ; CPU:$FE17 PRG:3E17 CA
bpl SubCFE15 ; CPU:$FE18 PRG:3E18 10 FB
rts ; CPU:$FE1A PRG:3E1A 60
; -----------------------------------------------------------------------------
; Routine: SubCFE1B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE1B:
jsr UpdateAPU6 ; CPU:$FE1B PRG:3E1B 20 5D FB
sta $07F1 ; CPU:$FE1E PRG:3E1E 8D F1 07
txa ; CPU:$FE21 PRG:3E21 8A
and #$3E ; CPU:$FE22 PRG:3E22 29 3E
jsr UpdateAPU4 ; CPU:$FE24 PRG:3E24 20 46 FB
sta $07F5 ; CPU:$FE27 PRG:3E27 8D F5 07
bne SubCFE30 ; CPU:$FE2A PRG:3E2A D0 04
ldx #$90 ; CPU:$FE2C PRG:3E2C A2 90
bne SubCFE41 ; CPU:$FE2E PRG:3E2E D0 11
; -----------------------------------------------------------------------------
; Routine: SubCFE30
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE30:
ldx #$9D ; CPU:$FE30 PRG:3E30 A2 9D
lda ZpF3 ; CPU:$FE32 PRG:3E32 A5 F3
beq SubCFE41 ; CPU:$FE34 PRG:3E34 F0 0B
ldx #$86 ; CPU:$FE36 PRG:3E36 A2 86
lda $07F1 ; CPU:$FE38 PRG:3E38 AD F1 07
cmp #$08 ; CPU:$FE3B PRG:3E3B C9 08
bcs SubCFE41 ; CPU:$FE3D PRG:3E3D B0 02
ldx #$82 ; CPU:$FE3F PRG:3E3F A2 82
; -----------------------------------------------------------------------------
; Routine: SubCFE41
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE41:
stx APUPULSE2CTRL ; CPU:$FE41 PRG:3E41 8E 04 40
; -----------------------------------------------------------------------------
; Routine: SubCFE44
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE44:
ldy ZpF5 ; CPU:$FE44 PRG:3E44 A4 F5
beq SubCFE8B ; CPU:$FE46 PRG:3E46 F0 43
lda ZpF3 ; CPU:$FE48 PRG:3E48 A5 F3
bne SubCFE56 ; CPU:$FE4A PRG:3E4A D0 0A
lda $07F2 ; CPU:$FE4C PRG:3E4C AD F2 07
cmp #$03 ; CPU:$FE4F PRG:3E4F C9 03
bcs SubCFE56 ; CPU:$FE51 PRG:3E51 B0 03
jsr UpdateAPU17 ; CPU:$FE53 PRG:3E53 20 E3 FF
; -----------------------------------------------------------------------------
; Routine: SubCFE56
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE56:
dec $07F2 ; CPU:$FE56 PRG:3E56 CE F2 07
bne SubCFE8B ; CPU:$FE59 PRG:3E59 D0 30
inc ZpF5 ; CPU:$FE5B PRG:3E5B E6 F5
lda (ZpFB),y ; CPU:$FE5D PRG:3E5D B1 FB
jsr UpdateAPU6 ; CPU:$FE5F PRG:3E5F 20 5D FB
sta $07F2 ; CPU:$FE62 PRG:3E62 8D F2 07
txa ; CPU:$FE65 PRG:3E65 8A
and #$3E ; CPU:$FE66 PRG:3E66 29 3E
jsr UpdateAPU3 ; CPU:$FE68 PRG:3E68 20 43 FB
bne SubCFE71 ; CPU:$FE6B PRG:3E6B D0 04
ldx #$90 ; CPU:$FE6D PRG:3E6D A2 90
bne SubCFE88 ; CPU:$FE6F PRG:3E6F D0 17
; -----------------------------------------------------------------------------
; Routine: SubCFE71
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE71:
ldx #$5A ; CPU:$FE71 PRG:3E71 A2 5A
lda ZpF3 ; CPU:$FE73 PRG:3E73 A5 F3
beq SubCFE88 ; CPU:$FE75 PRG:3E75 F0 11
ldx #$46 ; CPU:$FE77 PRG:3E77 A2 46
lda $07F2 ; CPU:$FE79 PRG:3E79 AD F2 07
cmp #$08 ; CPU:$FE7C PRG:3E7C C9 08
bcs SubCFE82 ; CPU:$FE7E PRG:3E7E B0 02
ldx #$42 ; CPU:$FE80 PRG:3E80 A2 42
; -----------------------------------------------------------------------------
; Routine: SubCFE82
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE82:
lda ZpF4 ; CPU:$FE82 PRG:3E82 A5 F4
bne SubCFE88 ; CPU:$FE84 PRG:3E84 D0 02
ldx #$86 ; CPU:$FE86 PRG:3E86 A2 86
; -----------------------------------------------------------------------------
; Routine: SubCFE88
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE88:
stx APUPULSE1CTRL ; CPU:$FE88 PRG:3E88 8E 00 40
; -----------------------------------------------------------------------------
; Routine: SubCFE8B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE8B:
ldy ZpF4 ; CPU:$FE8B PRG:3E8B A4 F4
beq SubCFEC5 ; CPU:$FE8D PRG:3E8D F0 36
lda $07F3 ; CPU:$FE8F PRG:3E8F AD F3 07
cmp #$02 ; CPU:$FE92 PRG:3E92 C9 02
bne SubCFE9B ; CPU:$FE94 PRG:3E94 D0 05
lda #$00 ; CPU:$FE96 PRG:3E96 A9 00
sta APUTRIANGLECTRL ; CPU:$FE98 PRG:3E98 8D 08 40
; -----------------------------------------------------------------------------
; Routine: SubCFE9B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFE9B:
dec $07F3 ; CPU:$FE9B PRG:3E9B CE F3 07
bne SubCFEC5 ; CPU:$FE9E PRG:3E9E D0 25
inc ZpF4 ; CPU:$FEA0 PRG:3EA0 E6 F4
lda (ZpFB),y ; CPU:$FEA2 PRG:3EA2 B1 FB
jsr UpdateAPU6 ; CPU:$FEA4 PRG:3EA4 20 5D FB
sta $07F3 ; CPU:$FEA7 PRG:3EA7 8D F3 07
ldy #$38 ; CPU:$FEAA PRG:3EAA A0 38
clc ; CPU:$FEAC PRG:3EAC 18
adc #$FF ; CPU:$FEAD PRG:3EAD 69 FF
cmp #$0E ; CPU:$FEAF PRG:3EAF C9 0E
bcs SubCFEB6 ; CPU:$FEB1 PRG:3EB1 B0 03
asl a ; CPU:$FEB3 PRG:3EB3 0A
asl a ; CPU:$FEB4 PRG:3EB4 0A
tay ; CPU:$FEB5 PRG:3EB5 A8
; -----------------------------------------------------------------------------
; Routine: SubCFEB6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFEB6:
lda ZpF3 ; CPU:$FEB6 PRG:3EB6 A5 F3
bne SubCFEBC ; CPU:$FEB8 PRG:3EB8 D0 02
ldy #$88 ; CPU:$FEBA PRG:3EBA A0 88
; -----------------------------------------------------------------------------
; Routine: SubCFEBC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFEBC:
sty APUTRIANGLECTRL ; CPU:$FEBC PRG:3EBC 8C 08 40
txa ; CPU:$FEBF PRG:3EBF 8A
and #$3E ; CPU:$FEC0 PRG:3EC0 29 3E
jmp UpdateAPU5 ; CPU:$FEC2 PRG:3EC2 4C 49 FB
; -----------------------------------------------------------------------------
; Routine: SubCFEC5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SubCFEC5:
rts ; CPU:$FEC5 PRG:3EC5 60
; ---- data $FEC6-$FFDB (278 bytes) ----
; referenced by `lda $FF01,y` at $FB4C (operand $FF01 falls inside this region)
; referenced by `lda $FF00,y` at $FB54 (operand $FF00 falls inside this region)
; referenced by `lda $FF28,y` at $FB6A (operand $FF28 falls inside this region)
; referenced by `lda $FF3F,y` at $FDA4 (operand $FF3F falls inside this region)
; referenced by `lda $FF3F,y` at $FDA8 (operand $FF3F falls inside this region)
; referenced by `lda $FF40,y` at $FDAE (operand $FF40 falls inside this region)
; ... and 3 further references from decoded code
.byte $8A, $4A, $4A, $CA, $84, $8E, $4E, $4E, $CE, $8A, $92, $52, $52, $D2, $82, $98 ; CPU:$FEC6 PRG:3EC6 8A 4A 4A CA 84 8E 4E 4E CE 8A 92 52 52 D2 82 98
.byte $58, $58, $99, $00, $84, $44, $44, $C4, $82, $8A, $4A, $4A, $CA, $84, $8E, $4E ; CPU:$FED6 PRG:3ED6 58 58 99 00 84 44 44 C4 82 8A 4A 4A CA 84 8E 4E
.byte $4E, $CE, $8A, $92, $52, $52, $93, $8A, $4A, $4A, $CA, $8A, $8E, $4E, $4E, $CE ; CPU:$FEE6 PRG:3EE6 4E CE 8A 92 52 52 93 8A 4A 4A CA 8A 8E 4E 4E CE
.byte $8E, $92, $52, $52, $D2, $92, $98, $58, $58, $99, $06, $AE, $02, $A6, $02, $3A ; CPU:$FEF6 PRG:3EF6 8E 92 52 52 D2 92 98 58 58 99 06 AE 02 A6 02 3A
.byte $01, $FC, $01, $C4, $01, $AB, $01, $7C, $01, $52, $01, $3F, $01, $1C, $00, $FD ; CPU:$FF06 PRG:3F06 01 FC 01 C4 01 AB 01 7C 01 52 01 3F 01 1C 00 FD
.byte $00, $E1, $00, $D4, $00, $BD, $00, $A8, $00, $8D, $00, $69, $00, $24, $00, $20 ; CPU:$FF16 PRG:3F16 00 E1 00 D4 00 BD 00 A8 00 8D 00 69 00 24 00 20
.byte $00, $00, $03, $06, $0C, $18, $30, $12, $24, $04, $05, $0A, $14, $28, $50, $1E ; CPU:$FF26 PRG:3F26 00 00 03 06 0C 18 30 12 24 04 05 0A 14 28 50 1E
.byte $3C, $05, $0B, $16, $2C, $58, $21, $42, $06, $08, $0D, $03, $0F, $51, $FF, $00 ; CPU:$FF36 PRG:3F36 3C 05 0B 16 2C 58 21 42 06 08 0D 03 0F 51 FF 00
.byte $00, $00, $C6, $FE, $27, $14, $0F, $5A, $FF, $49, $1D, $20, $1E, $20, $1E, $20 ; CPU:$FF46 PRG:3F46 00 00 C6 FE 27 14 0F 5A FF 49 1D 20 1E 20 1E 20
.byte $1E, $20, $5E, $00, $9C, $9C, $5A, $59, $9A, $9A, $58, $57, $98, $98, $56, $94 ; CPU:$FF56 PRG:3F56 1E 20 5E 00 9C 9C 5A 59 9A 9A 58 57 98 98 56 94
.byte $13, $66, $9C, $9C, $5A, $59, $9A, $9A, $58, $57, $98, $98, $56, $98, $5A, $19 ; CPU:$FF66 PRG:3F66 13 66 9C 9C 5A 59 9A 9A 58 57 98 98 56 98 5A 19
.byte $00, $98, $98, $56, $4A, $4E, $52, $96, $96, $54, $48, $4C, $52, $94, $94, $52 ; CPU:$FF76 PRG:3F76 00 98 98 56 4A 4E 52 96 96 54 48 4C 52 94 94 52
.byte $46, $4A, $0F, $66, $66, $52, $4E, $52, $66, $4E, $4A, $4E, $66, $56, $52, $56 ; CPU:$FF86 PRG:3F86 46 4A 0F 66 66 52 4E 52 66 4E 4A 4E 66 56 52 56
.byte $66, $52, $4C, $52, $66, $50, $4A, $50, $66, $4C, $48, $4C, $0B, $4A, $8A, $44 ; CPU:$FF96 PRG:3F96 66 52 4C 52 66 50 4A 50 66 4C 48 4C 0B 4A 8A 44
.byte $4A, $8A, $44, $52, $92, $4C, $52, $92, $4C, $50, $90, $4A, $50, $90, $4A, $4A ; CPU:$FFA6 PRG:3FA6 4A 8A 44 52 92 4C 52 92 4C 50 90 4A 50 90 4A 4A
.byte $44, $44, $44, $44, $46, $48, $4A, $4A, $4A, $4A, $4A, $44, $44, $44, $44, $52 ; CPU:$FFB6 PRG:3FB6 44 44 44 44 46 48 4A 4A 4A 4A 4A 44 44 44 44 52
.byte $52, $52, $52, $4C, $4C, $4C, $4C, $50, $50, $50, $50, $44, $44, $44, $44, $0A ; CPU:$FFC6 PRG:3FC6 52 52 52 4C 4C 4C 4C 50 50 50 50 44 44 44 44 0A
.byte $C5, $26, $44, $C7, $48, $0B ; CPU:$FFD6 PRG:3FD6 C5 26 44 C7 48 0B
; -----------------------------------------------------------------------------
; Routine: UpdateAPU16
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU16:
stx APUPULSE1CTRL ; CPU:$FFDC PRG:3FDC 8E 00 40
sty APUPULSE1SWEEP ; CPU:$FFDF PRG:3FDF 8C 01 40
rts ; CPU:$FFE2 PRG:3FE2 60
; -----------------------------------------------------------------------------
; Routine: UpdateAPU17
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU17:
lda #$90 ; CPU:$FFE3 PRG:3FE3 A9 90
sta APUPULSE1CTRL ; CPU:$FFE5 PRG:3FE5 8D 00 40
rts ; CPU:$FFE8 PRG:3FE8 60
; -----------------------------------------------------------------------------
; Routine: UpdateAPU18
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU18:
stx APUPULSE2CTRL ; CPU:$FFE9 PRG:3FE9 8E 04 40
sty APUPULSE2SWEEP ; CPU:$FFEC PRG:3FEC 8C 05 40
rts ; CPU:$FFEF PRG:3FEF 60
; -----------------------------------------------------------------------------
; Routine: UpdateAPU19
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateAPU19:
jsr UpdateAPU18 ; CPU:$FFF0 PRG:3FF0 20 E9 FF
jmp UpdateAPU4 ; CPU:$FFF3 PRG:3FF3 4C 46 FB
; ---- data $FFF6-$FFF6 (1 bytes) ----
.byte $FF ; CPU:$FFF6 PRG:3FF6 FF
; -----------------------------------------------------------------------------
; Routine: ResetVector
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ResetVector:
jmp UpdateAPU ; CPU:$FFF7 PRG:3FF7 4C 2C FB
; ---- data $FFFA-$FFFF (6 bytes) ----
.byte $ED, $C1, $00, $C0, $ED, $C1 ; CPU:$FFFA PRG:3FFA ED C1 00 C0 ED C1