Files
disasm/NROM/Burger Time (U)/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

9324 lines
540 KiB
ArmAsm

.setcpu "6502"
.include "symbols.inc"
.include "locals.inc"
.segment "PRG"
; Pointers selected by MainGameState.
MainStateDispatchTable:
.byte $F8 ; PRG $0000 | CPU $C000 ; CPU:$C000 PRG:0000 F8
LookupTable_C001:
.byte $C3,$4E,$C0,$2F,$C1,$2A,$C2,$4D,$C2,$4F,$C1,$AA,$C1 ; PRG $0001 | CPU $C001 ; CPU:$C001 PRG:0001 C3 4E C0 2F C1 2A C2 4D C2 4F C1 AA C1
; -----------------------------------------------------------------------------
; Global purpose: Initialize Game Systems.
; Local behavior: Executes the decoded initialize game systems sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
InitializeGameSystems:
jsr ProcessGameState_C76E ; CPU:$C00E PRG:000E 20 6E C7
jsr ProcessGameState_CB53 ; CPU:$C011 PRG:0011 20 53 CB
lda #$70 ; CPU:$C014 PRG:0014 A9 70
sta Ram_0700 ; CPU:$C016 PRG:0016 8D 00 07
lda #$10 ; CPU:$C019 PRG:0019 A9 10
sta Ram_0701 ; CPU:$C01B PRG:001B 8D 01 07
lda #$00 ; CPU:$C01E PRG:001E A9 00
sta Zp_32 ; CPU:$C020 PRG:0020 85 32
jsr SetMainState ; CPU:$C022 PRG:0022 20 7C FF
rts ; CPU:$C025 PRG:0025 60
; -----------------------------------------------------------------------------
; Global purpose: Store Pending Sound Command.
; Local behavior: Executes the decoded store pending sound command sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
StorePendingSoundCommand:
sta PendingSoundCommand ; CPU:$C026 PRG:0026 ??
rts ; CPU:$C028 PRG:0028 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Pending Frame Task.
; Local behavior: Executes the decoded process pending frame task sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessPendingFrameTask:
lda PendingFrameTask ; CPU:$C02A PRG:002A ??
beq Flow_C04C ; CPU:$C02C PRG:002C ??
cmp #$FF ; CPU:$C02E PRG:002E ??
bne Flow_C035 ; CPU:$C030 PRG:0030 ??
ldy #$00 ; CPU:$C032 PRG:0032 ??
sty PendingFrameTask ; CPU:$C034 PRG:0034 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C035.
; Local behavior: Executes the decoded flow c035 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C035:
ldy PendingFrameTask ; CPU:$C036 PRG:0036 ??
ldx #$08 ; CPU:$C038 PRG:0038 ??
stx PPUSCROLL ; CPU:$C03A PRG:003A ??
sty PPUSCROLL ; CPU:$C03C PRG:003C 8C 05 20
iny ; CPU:$C03F PRG:003F C8
sty PendingFrameTask ; CPU:$C040 PRG:0040 84 8F
cpy #$F1 ; CPU:$C042 PRG:0042 C0 F1
bne Flow_C048 ; CPU:$C044 PRG:0044 D0 02
dec PendingFrameTask ; CPU:$C046 PRG:0046 C6 8F
; -----------------------------------------------------------------------------
; Global purpose: Flow C048.
; Local behavior: Executes the decoded flow c048 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C048:
lda #$01 ; CPU:$C048 PRG:0048 A9 01
sta Zp_3F ; CPU:$C04A PRG:004A 85 3F
; -----------------------------------------------------------------------------
; Global purpose: Flow C04 C.
; Local behavior: Executes the decoded flow c04 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C04C:
rts ; CPU:$C04C PRG:004C 60
.byte $60 ; PRG $004D | CPU $C04D ; CPU:$C04D PRG:004D 60
; -----------------------------------------------------------------------------
; Global purpose: Handle Title State.
; Local behavior: Executes the decoded handle title state sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
HandleTitleState:
lda #$00 ; CPU:$C04E PRG:004E ??
sta GameMode ; CPU:$C050 PRG:0050 ??
sta Zp_57 ; CPU:$C052 PRG:0052 ??
jsr ProcessGameState_C7F7 ; CPU:$C054 PRG:0054 ??
lda #$01 ; CPU:$C056 PRG:0056 ??
sta StateInitializedFlag ; CPU:$C058 PRG:0058 ??
jsr ProcessGameState_CB53 ; CPU:$C05A PRG:005A ??
jsr ProcessGameState_C81B ; CPU:$C05C PRG:005C ??
jsr EnableBackgroundAndSprites ; CPU:$C05E PRG:005E ??
jmp Flow_C233 ; CPU:$C060 PRG:0060 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C067.
; Local behavior: Executes the decoded flow c067 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C067:
lda Zp_57 ; CPU:$C062 PRG:0062 ??
ldx Ram_071F ; CPU:$C064 PRG:0064 ??
ldy Ram_071C ; CPU:$C066 PRG:0066 ??
stx Zp_32 ; CPU:$C068 PRG:0068 ??
sty Zp_33 ; CPU:$C06A PRG:006A ??
asl a ; CPU:$C06C PRG:006C ??
ldx #$FE ; CPU:$C06E PRG:006E ??
ldy #$C0 ; CPU:$C070 PRG:0070 ??
stx Zp_34 ; CPU:$C072 PRG:0072 ??
sty Zp_35 ; CPU:$C074 PRG:0074 ??
tay ; CPU:$C076 PRG:0076 ??
lda (Zp_34),y ; CPU:$C078 PRG:0078 ??
iny ; CPU:$C07A PRG:007A ??
cmp #$01 ; CPU:$C07C PRG:007C ??
beq Flow_C09B ; CPU:$C07E PRG:007E ??
cmp #$08 ; CPU:$C080 PRG:0080 ??
beq Flow_C0A5 ; CPU:$C082 PRG:0082 ??
cmp #$02 ; CPU:$C084 PRG:0084 ??
beq Flow_C0B2 ; CPU:$C086 PRG:0086 ??
lda (Zp_34),y ; CPU:$C088 PRG:0088 ??
cmp Zp_32 ; CPU:$C08A PRG:008A ??
bcs Flow_C096 ; CPU:$C08C PRG:008C ??
lda #$04 ; CPU:$C08E PRG:008E ??
bne Flow_C0C1 ; CPU:$C090 PRG:0090 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C096.
; Local behavior: Executes the decoded flow c096 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C096:
iny ; CPU:$C092 PRG:0092 ??
lda (Zp_34),y ; CPU:$C094 PRG:0094 ??
bne Flow_C0BF ; CPU:$C096 PRG:0096 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C09 B.
; Local behavior: Executes the decoded flow c09 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C09B:
lda (Zp_34),y ; CPU:$C098 PRG:0098 ??
cmp Zp_33 ; CPU:$C09A PRG:009A ??
bcs Flow_C096 ; CPU:$C09C PRG:009C ??
lda #$01 ; CPU:$C09E PRG:009E ??
bne Flow_C0C1 ; CPU:$C0A0 PRG:00A0 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C0 A5.
; Local behavior: Executes the decoded flow c0 a5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C0A5:
lda (Zp_34),y ; CPU:$C0A2 PRG:00A2 ??
sec ; CPU:$C0A4 PRG:00A4 ??
sbc #$02 ; CPU:$C0A6 PRG:00A6 ??
cmp Zp_32 ; CPU:$C0A8 PRG:00A8 ??
bcc Flow_C096 ; CPU:$C0AA PRG:00AA ??
lda #$08 ; CPU:$C0AC PRG:00AC ??
bne Flow_C0C1 ; CPU:$C0AE PRG:00AE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C0 B2.
; Local behavior: Executes the decoded flow c0 b2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C0B2:
lda (Zp_34),y ; CPU:$C0B0 PRG:00B0 ??
sec ; CPU:$C0B2 PRG:00B2 ??
sbc #$02 ; CPU:$C0B4 PRG:00B4 ??
cmp Zp_33 ; CPU:$C0B6 PRG:00B6 ??
bcc Flow_C096 ; CPU:$C0B8 PRG:00B8 ??
lda #$02 ; CPU:$C0BA PRG:00BA ??
bne Flow_C0C1 ; CPU:$C0BC PRG:00BC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C0 BF.
; Local behavior: Executes the decoded flow c0 bf sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C0BF:
inc Zp_57 ; CPU:$C0BE PRG:00BE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C0 C1.
; Local behavior: Executes the decoded flow c0 c1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C0C1:
cmp #$FF ; CPU:$C0C0 PRG:00C0 ??
beq Flow_C0F6 ; CPU:$C0C2 PRG:00C2 ??
sta Zp_44 ; CPU:$C0C4 PRG:00C4 ??
jsr WaitForNmi ; CPU:$C0C6 PRG:00C6 ??
lda #$00 ; CPU:$C0C8 PRG:00C8 ??
jsr ReadControllers ; CPU:$C0CA PRG:00CA ??
lda Zp_2F ; CPU:$C0CC PRG:00CC ??
and #$0C ; CPU:$C0CE PRG:00CE ??
bne Flow_C0F6 ; CPU:$C0D0 PRG:00D0 ??
lda Zp_44 ; CPU:$C0D2 PRG:00D2 ??
sta Zp_2E ; CPU:$C0D4 PRG:00D4 ??
lda Zp_57 ; CPU:$C0D6 PRG:00D6 ??
cmp #$06 ; CPU:$C0D8 PRG:00D8 ??
bne Flow_C0EF ; CPU:$C0DA PRG:00DA ??
lda Zp_32 ; CPU:$C0DC PRG:00DC ??
cmp #$3C ; CPU:$C0DE PRG:00DE ??
beq Flow_C0E9 ; CPU:$C0E0 PRG:00E0 ??
cmp #$88 ; CPU:$C0E2 PRG:00E2 ??
bne Flow_C0EF ; CPU:$C0E4 PRG:00E4 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C0 E9.
; Local behavior: Executes the decoded flow c0 e9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C0E9:
lda #$03 ; CPU:$C0E6 PRG:00E6 ??
sta Zp_2F ; CPU:$C0E8 PRG:00E8 ??
bne Flow_C0F3 ; CPU:$C0EA PRG:00EA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C0 EF.
; Local behavior: Executes the decoded flow c0 ef sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C0EF:
lda #$00 ; CPU:$C0EC PRG:00EC ??
sta Zp_2F ; CPU:$C0EE PRG:00EE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C0 F3.
; Local behavior: Executes the decoded flow c0 f3 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C0F3:
jmp Flow_C24D ; CPU:$C0F0 PRG:00F0 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C0 F6.
; Local behavior: Executes the decoded flow c0 f6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C0F6:
lda #$00 ; CPU:$C0F2 PRG:00F2 ??
jsr SetMainState ; CPU:$C0F4 PRG:00F4 ??
jmp Flow_FD4F ; CPU:$C0F6 PRG:00F6 ??
.byte $04,$50,$08,$78,$01,$4C,$04,$60,$01,$1C,$04,$30,$08,$D8,$02,$3C ; PRG $00FE | CPU $C0FE ; CPU:$C0F8 PRG:00F8 04 50 08 78 01 4C 04 60 01 1C 04 30 08 D8 02 3C
.byte $04,$A8,$02,$5C,$08,$D8,$04,$C0,$02,$AC,$04,$18,$01,$5C,$08,$30 ; PRG $010E | CPU $C10E ; CPU:$C108 PRG:0108 04 A8 02 5C 08 D8 04 C0 02 AC 04 18 01 5C 08 30
.byte $01,$3C,$04,$18,$08,$48,$01,$1C,$08,$78,$02,$4C,$04,$48,$02,$AC ; PRG $011E | CPU $C11E ; CPU:$C118 PRG:0118 01 3C 04 18 08 48 01 1C 08 78 02 4C 04 48 02 AC
.byte $FF ; PRG $012E | CPU $C12E ; CPU:$C128 PRG:0128 FF
; -----------------------------------------------------------------------------
; Global purpose: Handle Game Start State.
; Local behavior: Executes the decoded handle game start state sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
HandleGameStartState:
jsr ProcessGameState_C7F7 ; CPU:$C129 PRG:0129 ??
lda #$01 ; CPU:$C12B PRG:012B ??
sta GameActiveFlag ; CPU:$C12D PRG:012D ??
sta StateInitializedFlag ; CPU:$C12F PRG:012F ??
jsr ClearNametable2000 ; CPU:$C131 PRG:0131 ??
jsr ProcessGameState_C81B ; CPU:$C133 PRG:0133 ??
jsr ProcessGameState_C977 ; CPU:$C135 PRG:0135 ??
dec Ram_0400 ; CPU:$C137 PRG:0137 ??
jsr ClearNametable2000 ; CPU:$C139 PRG:0139 ??
lda #$06 ; CPU:$C13B PRG:013B ??
jsr SetMainState ; CPU:$C13D PRG:013D ??
jmp Flow_FD4F ; CPU:$C13F PRG:013F ??
; -----------------------------------------------------------------------------
; Global purpose: Handle Gameplay State.
; Local behavior: Executes the decoded handle gameplay state sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
HandleGameplayState:
lda Zp_52 ; CPU:$C141 PRG:0141 ??
bne Flow_C161 ; CPU:$C143 PRG:0143 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C153.
; Local behavior: Executes the decoded flow c153 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C153:
lda PlayerDeathFlag ; CPU:$C145 PRG:0145 ??
and #$01 ; CPU:$C147 PRG:0147 ??
bne Flow_C19E ; CPU:$C149 PRG:0149 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C159.
; Local behavior: Executes the decoded flow c159 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C159:
lda PlayerDeathFlag ; CPU:$C14B PRG:014B ??
ora #$01 ; CPU:$C14D PRG:014D ??
sta PlayerDeathFlag ; CPU:$C14F PRG:014F ??
bne Flow_C177 ; CPU:$C151 PRG:0151 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C161.
; Local behavior: Executes the decoded flow c161 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C161:
lda CurrentPlayerIndex ; CPU:$C153 PRG:0153 ??
beq Flow_C153 ; CPU:$C155 PRG:0155 ??
lda PlayerDeathFlag ; CPU:$C157 PRG:0157 ??
and #$01 ; CPU:$C159 PRG:0159 ??
beq Flow_C159 ; CPU:$C15B PRG:015B ??
lda PlayerDeathFlag ; CPU:$C15D PRG:015D ??
and #$02 ; CPU:$C15F PRG:015F ??
bne Flow_C19E ; CPU:$C161 PRG:0161 ??
lda PlayerDeathFlag ; CPU:$C163 PRG:0163 ??
ora #$02 ; CPU:$C165 PRG:0165 ??
sta PlayerDeathFlag ; CPU:$C167 PRG:0167 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C177.
; Local behavior: Executes the decoded flow c177 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C177:
jsr DisableBackgroundAndSprites ; CPU:$C169 PRG:0169 ??
lda #$01 ; CPU:$C16B PRG:016B ??
sta StateInitializedFlag ; CPU:$C16D PRG:016D ??
jsr ProcessGameState_C81B ; CPU:$C16F PRG:016F ??
jsr EnableBackgroundAndSprites ; CPU:$C171 PRG:0171 ??
lda #$03 ; CPU:$C173 PRG:0173 ??
jsr StorePendingSoundCommand ; CPU:$C175 PRG:0175 ??
lda #$01 ; CPU:$C177 PRG:0177 ??
sta GameMode ; CPU:$C179 PRG:0179 ??
lda #$00 ; CPU:$C17B PRG:017B ??
sta StateInitializedFlag ; CPU:$C17D PRG:017D ??
ldx #$B8 ; CPU:$C17F PRG:017F ??
jsr RunFrameSynchronizedTask_CA80 ; CPU:$C181 PRG:0181 ??
lda #$04 ; CPU:$C183 PRG:0183 ??
jsr StorePendingSoundCommand ; CPU:$C185 PRG:0185 ??
jmp Flow_C233 ; CPU:$C187 PRG:0187 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C19 E.
; Local behavior: Executes the decoded flow c19 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C19E:
lda #$03 ; CPU:$C189 PRG:0189 ??
jsr SetMainState ; CPU:$C18B PRG:018B ??
lda #$01 ; CPU:$C18D PRG:018D ??
sta GameMode ; CPU:$C18F PRG:018F ??
jmp Flow_FD4F ; CPU:$C191 PRG:0191 ??
; -----------------------------------------------------------------------------
; Global purpose: Handle Player Death State.
; Local behavior: Executes the decoded handle player death state sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
HandlePlayerDeathState:
jsr DisableBackgroundAndSprites ; CPU:$C193 PRG:0193 ??
jsr ClearNametable ; CPU:$C195 PRG:0195 ??
ldx #$C1 ; CPU:$C197 PRG:0197 ??
ldy #$F5 ; CPU:$C199 PRG:0199 ??
jsr ProcessGameState_C715 ; CPU:$C19B PRG:019B ??
ldx #$11 ; CPU:$C19D PRG:019D ??
lda CurrentPlayerIndex ; CPU:$C19F PRG:019F ??
beq Flow_C1BF ; CPU:$C1A1 PRG:01A1 ??
ldx #$12 ; CPU:$C1A3 PRG:01A3 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C1 BF.
; Local behavior: Executes the decoded flow c1 bf sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C1BF:
stx Ram_0701 ; CPU:$C1A5 PRG:01A5 ??
lda #$01 ; CPU:$C1A7 PRG:01A7 ??
ldx #$CE ; CPU:$C1A9 PRG:01A9 ??
ldy #$DA ; CPU:$C1AB PRG:01AB ??
jsr LoadPalette ; CPU:$C1AD PRG:01AD ??
jsr WaitForNmi ; CPU:$C1AF PRG:01AF ??
lda #$98 ; CPU:$C1B1 PRG:01B1 ??
sta PPUCTRL ; CPU:$C1B3 PRG:01B3 ??
lda #$10 ; CPU:$C1B5 PRG:01B5 ??
sta PPUMASK ; CPU:$C1B7 PRG:01B7 ??
ldx #$5F ; CPU:$C1B9 PRG:01B9 ??
jsr RunFrameSynchronizedTask_CA80 ; CPU:$C1BB PRG:01BB ??
lda #$02 ; CPU:$C1BD PRG:01BD ??
sta PPUMASK ; CPU:$C1BF PRG:01BF ??
lda #$B0 ; CPU:$C1C1 PRG:01C1 ??
sta PPUCTRL ; CPU:$C1C3 PRG:01C3 ??
jsr ClearNametable ; CPU:$C1C5 PRG:01C5 ??
jsr ProcessGameState_CEC8 ; CPU:$C1C7 PRG:01C7 ??
lda #$05 ; CPU:$C1C9 PRG:01C9 ??
jsr SetMainState ; CPU:$C1CB PRG:01CB ??
jmp Flow_FD4F ; CPU:$C1CD PRG:01CD ??
.byte $FA,$C1,$00,$07,$30,$68,$00,$00,$98,$68,$30,$00,$60,$68,$2C,$00 ; PRG $01F5 | CPU $C1F5 ; CPU:$C1CF PRG:01CF FA C1 00 07 30 68 00 00 98 68 30 00 60 68 2C 00
.byte $68,$68,$21,$00,$70,$68,$39,$00,$78,$68,$25,$00,$80,$68,$32,$00 ; PRG $0205 | CPU $C205 ; CPU:$C1DF PRG:01DF 68 68 21 00 70 68 39 00 78 68 25 00 80 68 32 00
.byte $88,$78,$32,$00,$68,$78,$25,$00,$70,$78,$21,$00,$78,$78,$24,$00 ; PRG $0215 | CPU $C215 ; CPU:$C1EF PRG:01EF 88 78 32 00 68 78 25 00 70 78 21 00 78 78 24 00
.byte $80,$78,$39,$00,$88 ; PRG $0225 | CPU $C225 ; CPU:$C1FF PRG:01FF 80 78 39 00 88
; -----------------------------------------------------------------------------
; Global purpose: Handle Stage Complete State.
; Local behavior: Executes the decoded handle stage complete state sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
HandleStageCompleteState:
jsr DisableBackgroundAndSprites ; CPU:$C204 PRG:0204 ??
jsr ProcessGameState_C81B ; CPU:$C206 PRG:0206 ??
jsr EnableBackgroundAndSprites ; CPU:$C208 PRG:0208 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C233.
; Local behavior: Executes the decoded flow c233 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C233:
lda #$00 ; CPU:$C20A PRG:020A ??
sta Ram_046E ; CPU:$C20C PRG:020C ??
sta Ram_046F ; CPU:$C20E PRG:020E ??
sta Ram_0470 ; CPU:$C210 PRG:0210 ??
sta Zp_2E ; CPU:$C212 PRG:0212 ??
sta Zp_2F ; CPU:$C214 PRG:0214 ??
sta Ram_045A ; CPU:$C216 PRG:0216 ??
lda #$04 ; CPU:$C218 PRG:0218 ??
jsr SetMainState ; CPU:$C21A PRG:021A ??
jmp Flow_FD4F ; CPU:$C21C PRG:021C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C24 D.
; Local behavior: Executes the decoded flow c24 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C24D:
inc Zp_15 ; CPU:$C21E PRG:021E ??
lda Zp_15 ; CPU:$C220 PRG:0220 ??
and #$07 ; CPU:$C222 PRG:0222 ??
bne Flow_C258 ; CPU:$C224 PRG:0224 ??
jmp Flow_FD4F ; CPU:$C226 PRG:0226 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C258.
; Local behavior: Executes the decoded flow c258 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C258:
jsr ProcessGameState_C9F9 ; CPU:$C228 PRG:0228 ??
jsr CalculateAndClampValue_D7D3 ; CPU:$C22A PRG:022A ??
jsr ProcessGameState_D980 ; CPU:$C22C PRG:022C ??
jsr ProcessGameState_E11E ; CPU:$C22E PRG:022E ??
jsr ProcessGameState_E0B7 ; CPU:$C230 PRG:0230 ??
jsr ProcessGameState_E71A ; CPU:$C232 PRG:0232 ??
jsr ProcessGameState_E6AE ; CPU:$C234 PRG:0234 ??
lda GameMode ; CPU:$C236 PRG:0236 ??
beq Flow_C27D ; CPU:$C238 PRG:0238 ??
ldx #$00 ; CPU:$C23A PRG:023A ??
lda CurrentPlayerIndex ; CPU:$C23C PRG:023C ??
beq Flow_C279 ; CPU:$C23E PRG:023E ??
ldx #$01 ; CPU:$C240 PRG:0240 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C279.
; Local behavior: Executes the decoded flow c279 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C279:
txa ; CPU:$C242 PRG:0242 ??
jsr ReadControllers ; CPU:$C244 PRG:0244 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C27 D.
; Local behavior: Executes the decoded flow c27 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C27D:
jsr ProcessGameState_D1C1 ; CPU:$C246 PRG:0246 ??
jsr ProcessGameState_D6BF ; CPU:$C248 PRG:0248 ??
jsr ProcessGameState_CB6F ; CPU:$C24A PRG:024A ??
jsr ProcessGameState_DB45 ; CPU:$C24C PRG:024C ??
jsr ProcessGameState_DBD7 ; CPU:$C24E PRG:024E ??
jsr ProcessGameState_DC82 ; CPU:$C250 PRG:0250 ??
jsr ProcessGameState_DD61 ; CPU:$C252 PRG:0252 ??
jsr ProcessGameState_EA1A ; CPU:$C254 PRG:0254 ??
jsr ProcessGameState_E7DE ; CPU:$C256 PRG:0256 ??
jsr ProcessGameState_E81A ; CPU:$C258 PRG:0258 ??
lda GameMode ; CPU:$C25A PRG:025A ??
beq Flow_C2A2 ; CPU:$C25C PRG:025C ??
jsr ProcessGameState_C5FF ; CPU:$C25E PRG:025E ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C2 A2.
; Local behavior: Executes the decoded flow c2 a2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C2A2:
lda Ram_0465 ; CPU:$C260 PRG:0260 ??
bne Flow_C2E2 ; CPU:$C262 PRG:0262 ??
lda Ram_0464 ; CPU:$C264 PRG:0264 ??
beq Flow_C2D1 ; CPU:$C266 PRG:0266 ??
lda CurrentPlayerIndex ; CPU:$C268 PRG:0268 ??
bne Flow_C2BE ; CPU:$C26A PRG:026A ??
inc Zp_1B ; CPU:$C26C PRG:026C ??
lda Zp_1B ; CPU:$C26E PRG:026E ??
cmp #$07 ; CPU:$C270 PRG:0270 ??
bcc Flow_C2CA ; CPU:$C272 PRG:0272 ??
lda #$01 ; CPU:$C274 PRG:0274 ??
sta Zp_1B ; CPU:$C276 PRG:0276 ??
bne Flow_C2CA ; CPU:$C278 PRG:0278 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C2 BE.
; Local behavior: Executes the decoded flow c2 be sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C2BE:
inc Zp_23 ; CPU:$C27A PRG:027A ??
lda Zp_23 ; CPU:$C27C PRG:027C ??
cmp #$07 ; CPU:$C27E PRG:027E ??
bcc Flow_C2CA ; CPU:$C280 PRG:0280 ??
lda #$01 ; CPU:$C282 PRG:0282 ??
sta Zp_23 ; CPU:$C284 PRG:0284 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C2 CA.
; Local behavior: Executes the decoded flow c2 ca sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C2CA:
jsr ClearNametable2000 ; CPU:$C286 PRG:0286 ??
lda #$05 ; CPU:$C288 PRG:0288 ??
bne Flow_C2DC ; CPU:$C28A PRG:028A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C2 D1.
; Local behavior: Executes the decoded flow c2 d1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C2D1:
lda GameMode ; CPU:$C28C PRG:028C ??
beq Flow_C2D9 ; CPU:$C28E PRG:028E ??
lda #$04 ; CPU:$C290 PRG:0290 ??
bne Flow_C2DC ; CPU:$C292 PRG:0292 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C2 D9.
; Local behavior: Executes the decoded flow c2 d9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C2D9:
jmp Flow_C067 ; CPU:$C294 PRG:0294 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C2 DC.
; Local behavior: Executes the decoded flow c2 dc sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C2DC:
jsr SetMainState ; CPU:$C296 PRG:0296 ??
jmp Flow_FD4F ; CPU:$C298 PRG:0298 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C2 E2.
; Local behavior: Executes the decoded flow c2 e2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C2E2:
lda #$00 ; CPU:$C29A PRG:029A ??
sta Ram_0465 ; CPU:$C29C PRG:029C ??
lda GameMode ; CPU:$C29E PRG:029E ??
bne Flow_C2F2 ; CPU:$C2A0 PRG:02A0 ??
lda #$01 ; CPU:$C2A2 PRG:02A2 ??
sta Zp_56 ; CPU:$C2A4 PRG:02A4 ??
jmp Flow_C0F6 ; CPU:$C2A6 PRG:02A6 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C2 F2.
; Local behavior: Executes the decoded flow c2 f2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C2F2:
lda Zp_52 ; CPU:$C2A8 PRG:02A8 ??
bne Flow_C30E ; CPU:$C2AA PRG:02AA ??
lda Zp_5A ; CPU:$C2AC PRG:02AC ??
bmi Flow_C30B ; CPU:$C2AE PRG:02AE ??
lda #$01 ; CPU:$C2B0 PRG:02B0 ??
sta Zp_51 ; CPU:$C2B2 PRG:02B2 ??
jsr ProcessGameState_E0CA ; CPU:$C2B4 PRG:02B4 ??
jsr ClearNametable2800 ; CPU:$C2B6 PRG:02B6 ??
jsr ProcessGameState_C977 ; CPU:$C2B8 PRG:02B8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C307.
; Local behavior: Executes the decoded flow c307 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C307:
lda #$06 ; CPU:$C2BA PRG:02BA ??
bne Flow_C2DC ; CPU:$C2BC PRG:02BC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C30 B.
; Local behavior: Executes the decoded flow c30 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C30B:
jmp Flow_C368 ; CPU:$C2BE PRG:02BE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C30 E.
; Local behavior: Executes the decoded flow c30 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C30E:
ldx CurrentPlayerIndex ; CPU:$C2C0 PRG:02C0 ??
bne Flow_C330 ; CPU:$C2C2 PRG:02C2 ??
lda Zp_5A ; CPU:$C2C4 PRG:02C4 ??
and Zp_5B ; CPU:$C2C6 PRG:02C6 ??
bmi Flow_C30B ; CPU:$C2C8 PRG:02C8 ??
lda Zp_5B ; CPU:$C2CA PRG:02CA ??
bmi Flow_C33A ; CPU:$C2CC PRG:02CC ??
lda Zp_5A ; CPU:$C2CE PRG:02CE ??
bpl Flow_C329 ; CPU:$C2D0 PRG:02D0 ??
jsr DisableRenderingAndAudio ; CPU:$C2D2 PRG:02D2 ??
jsr ProcessGameState_C523 ; CPU:$C2D4 PRG:02D4 ??
jsr ClearNametableAndSprites ; CPU:$C2D6 PRG:02D6 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C329.
; Local behavior: Executes the decoded flow c329 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C329:
jsr ProcessGameState_C75A ; CPU:$C2D8 PRG:02D8 ??
lda #$01 ; CPU:$C2DA PRG:02DA ??
bne Flow_C356 ; CPU:$C2DC PRG:02DC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C330.
; Local behavior: Executes the decoded flow c330 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C330:
lda Zp_5B ; CPU:$C2DE PRG:02DE ??
and Zp_5A ; CPU:$C2E0 PRG:02E0 ??
bmi Flow_C368 ; CPU:$C2E2 PRG:02E2 ??
lda Zp_5A ; CPU:$C2E4 PRG:02E4 ??
bpl Flow_C344 ; CPU:$C2E6 PRG:02E6 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C33 A.
; Local behavior: Executes the decoded flow c33 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C33A:
lda #$01 ; CPU:$C2E8 PRG:02E8 ??
sta Zp_51 ; CPU:$C2EA PRG:02EA ??
jsr ProcessGameState_E0CA ; CPU:$C2EC PRG:02EC ??
jmp Flow_C307 ; CPU:$C2EE PRG:02EE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C344.
; Local behavior: Executes the decoded flow c344 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C344:
lda Zp_5B ; CPU:$C2F0 PRG:02F0 ??
bpl Flow_C351 ; CPU:$C2F2 PRG:02F2 ??
jsr DisableRenderingAndAudio ; CPU:$C2F4 PRG:02F4 ??
jsr ProcessGameState_C537 ; CPU:$C2F6 PRG:02F6 ??
jsr ClearNametableAndSprites ; CPU:$C2F8 PRG:02F8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C351.
; Local behavior: Executes the decoded flow c351 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C351:
jsr ProcessGameState_C75A ; CPU:$C2FA PRG:02FA ??
lda #$00 ; CPU:$C2FC PRG:02FC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C356.
; Local behavior: Executes the decoded flow c356 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C356:
sta CurrentPlayerIndex ; CPU:$C2FE PRG:02FE ??
lda #$01 ; CPU:$C300 PRG:0300 ??
sta Zp_51 ; CPU:$C302 PRG:0302 ??
jsr DisableBackgroundAndSprites ; CPU:$C304 PRG:0304 ??
jsr ProcessGameState_E0CA ; CPU:$C306 PRG:0306 ??
jsr ProcessGameState_C977 ; CPU:$C308 PRG:0308 ??
jmp Flow_C307 ; CPU:$C30A PRG:030A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C368.
; Local behavior: Executes the decoded flow c368 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C368:
jsr UpdateAudioEngine ; CPU:$C30C PRG:030C ??
jsr ClearNametable2000 ; CPU:$C30E PRG:030E ??
jsr ClearNametable ; CPU:$C310 PRG:0310 ??
lda Zp_52 ; CPU:$C312 PRG:0312 ??
bne Flow_C39D ; CPU:$C314 PRG:0314 ??
jsr ProcessGameState_C54B ; CPU:$C316 PRG:0316 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C378.
; Local behavior: Executes the decoded flow c378 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C378:
ldy #$5F ; CPU:$C318 PRG:0318 ??
sty Zp_42 ; CPU:$C31A PRG:031A ??
jsr EnableBackgroundAndSprites ; CPU:$C31C PRG:031C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C37 F.
; Local behavior: Executes the decoded flow c37 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C37F:
jsr WaitForNmi ; CPU:$C31E PRG:031E ??
lda #$00 ; CPU:$C320 PRG:0320 ??
jsr ReadControllers ; CPU:$C322 PRG:0322 ??
lda Zp_2F ; CPU:$C324 PRG:0324 ??
and #$0C ; CPU:$C326 PRG:0326 ??
bne Flow_C395 ; CPU:$C328 PRG:0328 ??
dec Zp_42 ; CPU:$C32A PRG:032A ??
bne Flow_C37F ; CPU:$C32C PRG:032C ??
lda #$01 ; CPU:$C32E PRG:032E ??
sta Zp_56 ; CPU:$C330 PRG:0330 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C395.
; Local behavior: Executes the decoded flow c395 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C395:
lda #$00 ; CPU:$C332 PRG:0332 ??
jsr SetMainState ; CPU:$C334 PRG:0334 ??
jmp Flow_FD4F ; CPU:$C336 PRG:0336 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C39 D.
; Local behavior: Executes the decoded flow c39 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C39D:
lda CurrentPlayerIndex ; CPU:$C338 PRG:0338 ??
beq Flow_C3A7 ; CPU:$C33A PRG:033A ??
jsr ProcessGameState_C537 ; CPU:$C33C PRG:033C ??
jmp Flow_C378 ; CPU:$C33E PRG:033E ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C3 A7.
; Local behavior: Executes the decoded flow c3 a7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C3A7:
jsr ProcessGameState_C523 ; CPU:$C340 PRG:0340 ??
jmp Flow_C378 ; CPU:$C342 PRG:0342 ??
; -----------------------------------------------------------------------------
; Global purpose: Disable Rendering And Audio.
; Local behavior: Executes the decoded disable rendering and audio sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
DisableRenderingAndAudio:
jsr ProcessGameState_E0CA ; CPU:$C344 PRG:0344 ??
jsr ClearNametable ; CPU:$C346 PRG:0346 ??
jsr ClearNametable2000 ; CPU:$C348 PRG:0348 ??
jmp EnableBackgroundAndSprites ; CPU:$C34A PRG:034A ??
; -----------------------------------------------------------------------------
; Global purpose: Clear Nametable And Sprites.
; Local behavior: Executes the decoded clear nametable and sprites sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ClearNametableAndSprites:
ldx #$5F ; CPU:$C34C PRG:034C ??
jsr RunFrameSynchronizedTask_CA80 ; CPU:$C34E PRG:034E ??
jmp DisableBackgroundAndSprites ; CPU:$C350 PRG:0350 ??
; -----------------------------------------------------------------------------
; Global purpose: Initialize Object Slots.
; Local behavior: Executes the decoded initialize object slots sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
InitializeObjectSlots:
lda #$FF ; CPU:$C352 PRG:0352 ??
ldx #$00 ; CPU:$C354 PRG:0354 ??
stx Ram_0600 ; CPU:$C356 PRG:0356 ??
stx Ram_060E ; CPU:$C358 PRG:0358 ??
ldy #$0D ; CPU:$C35A PRG:035A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C3 CD.
; Local behavior: Executes the decoded flow c3 cd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C3CD:
sta Ram_0601,x ; CPU:$C35C PRG:035C ??
sta Ram_060F,x ; CPU:$C35E PRG:035E ??
inx ; CPU:$C360 PRG:0360 ??
dey ; CPU:$C362 PRG:0362 ??
bne Flow_C3CD ; CPU:$C364 PRG:0364 ??
rts ; CPU:$C366 PRG:0366 ??
; -----------------------------------------------------------------------------
; Global purpose: Set Ppu Control Shadow.
; Local behavior: Executes the decoded set ppu control shadow sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
SetPpuControlShadow:
sta PpuControlShadow ; CPU:$C368 PRG:0368 ??
sta PPUCTRL ; CPU:$C36A PRG:036A ??
rts ; CPU:$C36C PRG:036C ??
; -----------------------------------------------------------------------------
; Global purpose: Set Ppu Mask Shadow.
; Local behavior: Executes the decoded set ppu mask shadow sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
SetPpuMaskShadow:
sta PpuMaskShadow ; CPU:$C36E PRG:036E ??
sta PPUMASK ; CPU:$C370 PRG:0370 ??
rts ; CPU:$C372 PRG:0372 ??
; -----------------------------------------------------------------------------
; Global purpose: Disable Background And Sprites.
; Local behavior: Executes the decoded disable background and sprites sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
DisableBackgroundAndSprites:
jsr WaitForPpuVblank ; CPU:$C374 PRG:0374 ??
lda PpuMaskShadow ; CPU:$C376 PRG:0376 ??
and #$E7 ; CPU:$C378 PRG:0378 ??
jmp Flow_C3F5 ; CPU:$C37A PRG:037A ??
; -----------------------------------------------------------------------------
; Global purpose: Enable Background And Sprites.
; Local behavior: Executes the decoded enable background and sprites sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
EnableBackgroundAndSprites:
jsr WaitForPpuVblank ; CPU:$C37C PRG:037C ??
lda PpuMaskShadow ; CPU:$C37E PRG:037E ??
ora #$18 ; CPU:$C380 PRG:0380 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C3 F5.
; Local behavior: Executes the decoded flow c3 f5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C3F5:
jmp SetPpuMaskShadow ; CPU:$C382 PRG:0382 ??
; -----------------------------------------------------------------------------
; Global purpose: Run Frame Synchronized Task C3 F8.
; Local behavior: Executes the decoded run frame synchronized task c3 f8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
RunFrameSynchronizedTask_C3F8:
jsr UpdateAudioEngine ; CPU:$C384 PRG:0384 ??
jsr ClearNametables ; CPU:$C386 PRG:0386 ??
lda #$92 ; CPU:$C388 PRG:0388 ??
jsr SetPpuControlShadow ; CPU:$C38A PRG:038A ??
ldx #$C5 ; CPU:$C38C PRG:038C ??
ldy #$70 ; CPU:$C38E PRG:038E ??
jsr DecodeNametableStream ; CPU:$C390 PRG:0390 ??
ldx #$C5 ; CPU:$C392 PRG:0392 ??
ldy #$55 ; CPU:$C394 PRG:0394 ??
jsr DecodeNametableStream ; CPU:$C396 PRG:0396 ??
ldx #$C5 ; CPU:$C398 PRG:0398 ??
ldy #$62 ; CPU:$C39A PRG:039A ??
jsr DecodeNametableStream ; CPU:$C39C PRG:039C ??
ldx #$C5 ; CPU:$C39E PRG:039E ??
ldy #$70 ; CPU:$C3A0 PRG:03A0 ??
jsr DecodeNametableStream ; CPU:$C3A2 PRG:03A2 ??
jsr ProcessGameState_CBC1 ; CPU:$C3A4 PRG:03A4 ??
ldx #$C5 ; CPU:$C3A6 PRG:03A6 ??
ldy #$E8 ; CPU:$C3A8 PRG:03A8 ??
jsr DecodeNametableStream ; CPU:$C3AA PRG:03AA ??
jsr ProcessGameState_CE86 ; CPU:$C3AC PRG:03AC ??
jsr ProcessGameState_C4FB ; CPU:$C3AE PRG:03AE ??
jsr TransformValue_D18F ; CPU:$C3B0 PRG:03B0 ??
jsr ProcessGameState_FD83 ; CPU:$C3B2 PRG:03B2 ??
jsr WaitForNmi ; CPU:$C3B4 PRG:03B4 ??
lda Zp_56 ; CPU:$C3B6 PRG:03B6 ??
beq Flow_C469 ; CPU:$C3B8 PRG:03B8 ??
lda #$0E ; CPU:$C3BA PRG:03BA ??
jsr SetPpuMaskShadow ; CPU:$C3BC PRG:03BC ??
lda PpuControlShadow ; CPU:$C3BE PRG:03BE ??
ora #$80 ; CPU:$C3C0 PRG:03C0 ??
jsr SetPpuControlShadow ; CPU:$C3C2 PRG:03C2 ??
lda #$FF ; CPU:$C3C4 PRG:03C4 ??
sta PendingFrameTask ; CPU:$C3C6 PRG:03C6 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C44 C.
; Local behavior: Executes the decoded flow c44 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C44C:
lda #$00 ; CPU:$C3C8 PRG:03C8 ??
sta Zp_3F ; CPU:$C3CA PRG:03CA ??
jsr ReadControllers ; CPU:$C3CC PRG:03CC ??
lda Zp_2F ; CPU:$C3CE PRG:03CE ??
and #$0C ; CPU:$C3D0 PRG:03D0 ??
bne Flow_C469 ; CPU:$C3D2 PRG:03D2 ??
lda PendingFrameTask ; CPU:$C3D4 PRG:03D4 ??
cmp #$F0 ; CPU:$C3D6 PRG:03D6 ??
beq Flow_C469 ; CPU:$C3D8 PRG:03D8 85 10
; -----------------------------------------------------------------------------
; Global purpose: Flow C45 F.
; Local behavior: Executes the decoded flow c45 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C45F:
lda Zp_3F ; CPU:$C3DA PRG:03DA 8D 00 20
beq Flow_C45F ; CPU:$C3DD PRG:03DD 60
bne Flow_C44C ; CPU:$C3DE PRG:03DE 85 11
; -----------------------------------------------------------------------------
; Global purpose: Flow C465.
; Local behavior: Executes the decoded flow c465 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C465:
lda Zp_3F ; CPU:$C3E0 PRG:03E0 8D 01 20
beq Flow_C465 ; CPU:$C3E3 PRG:03E3 60
; -----------------------------------------------------------------------------
; Global purpose: Flow C469.
; Local behavior: Executes the decoded flow c469 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C469:
lda #$00 ; CPU:$C3E4 PRG:03E4 20 A6 FD
sta PendingFrameTask ; CPU:$C3E7 PRG:03E7 A5 11
sta Zp_56 ; CPU:$C3E9 PRG:03E9 29 E7
lda #$B0 ; CPU:$C3EB PRG:03EB 4C F5 C3
jsr SetPpuControlShadow ; CPU:$C3EE PRG:03EE ??
lda #$1A ; CPU:$C3F0 PRG:03F0 ??
sta PpuMaskShadow ; CPU:$C3F2 PRG:03F2 ??
and #$0F ; CPU:$C3F4 PRG:03F4 ??
sta PPUMASK ; CPU:$C3F6 PRG:03F6 ??
jsr SetDefaultScroll ; CPU:$C3F8 PRG:03F8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C480.
; Local behavior: Executes the decoded flow c480 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C480:
jsr WaitForNmi ; CPU:$C3FA PRG:03FA ??
lda #$00 ; CPU:$C3FC PRG:03FC ??
jsr ReadControllers ; CPU:$C3FE PRG:03FE ??
lda Zp_2F ; CPU:$C400 PRG:0400 ??
and #$08 ; CPU:$C402 PRG:0402 ??
bne Flow_C480 ; CPU:$C404 PRG:0404 ??
lda #$00 ; CPU:$C406 PRG:0406 ??
sta Zp_41 ; CPU:$C408 PRG:0408 ??
sta Zp_3F ; CPU:$C40A PRG:040A ??
sta Zp_40 ; CPU:$C40C PRG:040C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C496.
; Local behavior: Executes the decoded flow c496 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C496:
jsr WaitForNmi ; CPU:$C40E PRG:040E ??
clc ; CPU:$C410 PRG:0410 ??
lda #$01 ; CPU:$C412 PRG:0412 ??
adc Zp_40 ; CPU:$C414 PRG:0414 ??
sta Zp_40 ; CPU:$C416 PRG:0416 ??
lda #$00 ; CPU:$C418 PRG:0418 ??
adc Zp_3F ; CPU:$C41A PRG:041A ??
sta Zp_3F ; CPU:$C41C PRG:041C ??
cmp #$02 ; CPU:$C41E PRG:041E ??
beq Flow_C4F7 ; CPU:$C420 PRG:0420 ??
lda #$00 ; CPU:$C422 PRG:0422 ??
jsr ReadControllers ; CPU:$C424 PRG:0424 ??
lda Zp_2F ; CPU:$C426 PRG:0426 ??
and #$08 ; CPU:$C428 PRG:0428 ??
beq Flow_C4D7 ; CPU:$C42A PRG:042A ??
jsr ProcessGameState_CB53 ; CPU:$C42C PRG:042C ??
lda Zp_52 ; CPU:$C42E PRG:042E ??
beq Flow_C4C4 ; CPU:$C430 PRG:0430 ??
lda #$00 ; CPU:$C432 PRG:0432 ??
sta Zp_61 ; CPU:$C434 PRG:0434 ??
sta Zp_62 ; CPU:$C436 PRG:0436 ??
sta Zp_63 ; CPU:$C438 PRG:0438 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C4 C4.
; Local behavior: Executes the decoded flow c4 c4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C4C4:
lda #$00 ; CPU:$C43A PRG:043A ??
sta Zp_5E ; CPU:$C43C PRG:043C ??
sta Zp_5F ; CPU:$C43E PRG:043E ??
sta Zp_60 ; CPU:$C440 PRG:0440 ??
lda #$02 ; CPU:$C442 PRG:0442 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C4 CE.
; Local behavior: Executes the decoded flow c4 ce sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C4CE:
jsr SetMainState ; CPU:$C444 PRG:0444 ??
jsr DisableBackgroundAndSprites ; CPU:$C446 PRG:0446 ??
jmp Flow_FD4F ; CPU:$C448 PRG:0448 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C4 D7.
; Local behavior: Executes the decoded flow c4 d7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C4D7:
lda Zp_2F ; CPU:$C44A PRG:044A ??
and #$04 ; CPU:$C44C PRG:044C ??
beq Flow_C4F1 ; CPU:$C44E PRG:044E ??
lda Zp_41 ; CPU:$C450 PRG:0450 ??
bne Flow_C496 ; CPU:$C452 PRG:0452 ??
lda Zp_52 ; CPU:$C454 PRG:0454 ??
eor #$01 ; CPU:$C456 PRG:0456 ??
sta Zp_52 ; CPU:$C458 PRG:0458 ??
lda #$01 ; CPU:$C45A PRG:045A ??
sta Zp_41 ; CPU:$C45C PRG:045C ??
jsr TransformValue_D18F ; CPU:$C45E PRG:045E ??
jmp Flow_C496 ; CPU:$C460 PRG:0460 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C4 F1.
; Local behavior: Executes the decoded flow c4 f1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C4F1:
lda #$00 ; CPU:$C462 PRG:0462 ??
sta Zp_41 ; CPU:$C464 PRG:0464 ??
beq Flow_C496 ; CPU:$C466 PRG:0466 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C4 F7.
; Local behavior: Executes the decoded flow c4 f7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C4F7:
lda #$01 ; CPU:$C468 PRG:0468 ??
bne Flow_C4CE ; CPU:$C46A PRG:046A ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C4 FB.
; Local behavior: Executes the decoded process game state c4 fb sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C4FB:
lda #$00 ; CPU:$C46C PRG:046C ??
sta CurrentPlayerIndex ; CPU:$C46E PRG:046E ??
ldx #$F1 ; CPU:$C470 PRG:0470 ??
ldy #$FE ; CPU:$C472 PRG:0472 ??
jsr ProcessGameState_CA31 ; CPU:$C474 PRG:0474 ??
ldx #$F2 ; CPU:$C476 PRG:0476 ??
ldy #$33 ; CPU:$C478 PRG:0478 ??
jsr ProcessGameState_CA31 ; CPU:$C47A PRG:047A ??
ldx #$F2 ; CPU:$C47C PRG:047C ??
ldy #$2A ; CPU:$C47E PRG:047E ??
jsr ProcessGameState_CA31 ; CPU:$C480 PRG:0480 ??
ldx #$03 ; CPU:$C482 PRG:0482 ??
jsr TransformValue_CA37 ; CPU:$C484 PRG:0484 ??
ldx #$04 ; CPU:$C486 PRG:0486 ??
jsr TransformValue_CA37 ; CPU:$C488 PRG:0488 ??
ldx #$05 ; CPU:$C48A PRG:048A ??
jmp TransformValue_CA37 ; CPU:$C48C PRG:048C ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C523.
; Local behavior: Executes the decoded process game state c523 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C523:
inc Ram_0467 ; CPU:$C48E PRG:048E ??
ldx #$C5 ; CPU:$C490 PRG:0490 ??
ldy #$C0 ; CPU:$C492 PRG:0492 ??
jsr DecodeNametableStream ; CPU:$C494 PRG:0494 ??
inc Ram_0467 ; CPU:$C496 PRG:0496 ??
ldx #$C5 ; CPU:$C498 PRG:0498 ??
ldy #$DA ; CPU:$C49A PRG:049A ??
jmp DecodeNametableStream ; CPU:$C49C PRG:049C ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C537.
; Local behavior: Executes the decoded process game state c537 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C537:
inc Ram_0467 ; CPU:$C49E PRG:049E ??
ldx #$C5 ; CPU:$C4A0 PRG:04A0 ??
ldy #$CD ; CPU:$C4A2 PRG:04A2 ??
jsr DecodeNametableStream ; CPU:$C4A4 PRG:04A4 ??
inc Ram_0467 ; CPU:$C4A6 PRG:04A6 ??
ldx #$C5 ; CPU:$C4A8 PRG:04A8 ??
ldy #$DA ; CPU:$C4AA PRG:04AA ??
jmp DecodeNametableStream ; CPU:$C4AC PRG:04AC ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C54 B.
; Local behavior: Executes the decoded process game state c54 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C54B:
inc Ram_0467 ; CPU:$C4AE PRG:04AE ??
ldx #$C5 ; CPU:$C4B0 PRG:04B0 ??
ldy #$DA ; CPU:$C4B2 PRG:04B2 ??
jmp DecodeNametableStream ; CPU:$C4B4 PRG:04B4 ??
.byte $59,$C5,$4C,$22,$31,$20,$50,$4C,$41,$59,$45,$52,$FF,$66,$C5,$8C ; PRG $0555 | CPU $C555 ; CPU:$C4B6 PRG:04B6 59 C5 4C 22 31 20 50 4C 41 59 45 52 FF 66 C5 8C
.byte $22,$32,$20,$50,$4C,$41,$59,$45,$52,$53,$FF,$74,$C5,$C3,$22,$40 ; PRG $0565 | CPU $C565 ; CPU:$C4C6 PRG:04C6 22 32 20 50 4C 41 59 45 52 53 FF 74 C5 C3 22 40
.byte $20,$31,$39,$38,$32,$20,$44,$41,$54,$41,$20,$45,$41,$53,$54,$20 ; PRG $0575 | CPU $C575 ; CPU:$C4D6 PRG:04D6 20 31 39 38 32 20 44 41 54 41 20 45 41 53 54 20
.byte $55,$53,$41,$2E,$20,$49,$4E,$43,$2E,$0A,$0A,$20,$20,$4C,$49,$43 ; PRG $0585 | CPU $C585 ; CPU:$C4E6 PRG:04E6 55 53 41 2E 20 49 4E 43 2E 0A 0A 20 20 4C 49 43
.byte $45,$4E,$53,$45,$44,$20,$42,$59,$20,$4E,$49,$4E,$54,$45,$4E,$44 ; PRG $0595 | CPU $C595 ; CPU:$C4F6 PRG:04F6 45 4E 53 45 44 20 42 59 20 4E 49 4E 54 45 4E 44
.byte $4F,$0A,$20,$20,$20,$20,$20,$20,$20,$20,$4F,$46,$20,$41,$4D,$45 ; PRG $05A5 | CPU $C5A5 ; CPU:$C506 PRG:0506 4F 0A 20 20 20 20 20 20 20 20 4F 46 20 41 4D 45
.byte $52,$49,$43,$41,$2E,$20,$49,$4E,$43,$2E,$FF,$C4,$C5,$CE,$21,$50 ; PRG $05B5 | CPU $C5B5 ; CPU:$C516 PRG:0516 52 49 43 41 2E 20 49 4E 43 2E FF C4 C5 CE 21 50
.byte $4C,$41,$59,$45,$52,$20,$31,$FF,$D1,$C5,$CE,$21,$50,$4C,$41,$59 ; PRG $05C5 | CPU $C5C5 ; CPU:$C526 PRG:0526 4C 41 59 45 52 20 31 FF D1 C5 CE 21 50 4C 41 59
.byte $45,$52,$20,$32,$FF,$DE,$C5,$0D,$22,$47,$41,$4D,$45,$20,$4F,$56 ; PRG $05D5 | CPU $C5D5 ; CPU:$C536 PRG:0536 45 52 20 32 FF DE C5 0D 22 47 41 4D 45 20 4F 56
.byte $45,$52,$FF,$EC,$C5,$C8,$21,$DA,$DB,$D9,$0A,$DC,$DD,$20,$20,$44 ; PRG $05E5 | CPU $C5E5 ; CPU:$C546 PRG:0546 45 52 FF EC C5 C8 21 DA DB D9 0A DC DD 20 20 44
.byte $41,$54,$41,$20,$45,$41,$53,$54,$D9,$FF ; PRG $05F5 | CPU $C5F5 ; CPU:$C556 PRG:0556 41 54 41 20 45 41 53 54 D9 FF
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C5 FF.
; Local behavior: Executes the decoded process game state c5 ff sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C5FF:
lda Ram_040E ; CPU:$C560 PRG:0560 ??
cmp #$80 ; CPU:$C562 PRG:0562 ??
bne Flow_C609 ; CPU:$C564 PRG:0564 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C606.
; Local behavior: Executes the decoded flow c606 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C606:
jmp Flow_C68D ; CPU:$C566 PRG:0566 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C609.
; Local behavior: Executes the decoded flow c609 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C609:
cmp #$F0 ; CPU:$C568 PRG:0568 ??
beq Flow_C606 ; CPU:$C56A PRG:056A ??
lda Zp_2F ; CPU:$C56C PRG:056C ??
and #$08 ; CPU:$C56E PRG:056E ??
bne Flow_C615 ; CPU:$C570 PRG:0570 ??
beq Flow_C68E ; CPU:$C572 PRG:0572 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C615.
; Local behavior: Executes the decoded flow c615 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C615:
lda Ram_046E ; CPU:$C574 PRG:0574 ??
bne Flow_C682 ; CPU:$C576 PRG:0576 ??
jsr WaitForNmi ; CPU:$C578 PRG:0578 ??
jsr UpdateAudioEngine ; CPU:$C57A PRG:057A ??
lda #$01 ; CPU:$C57C PRG:057C ??
sta Ram_046E ; CPU:$C57E PRG:057E ??
jsr ProcessGameState_C69C ; CPU:$C580 PRG:0580 ??
jsr ProcessGameState_C6BC ; CPU:$C582 PRG:0582 ??
jsr ProcessGameState_C6ED ; CPU:$C584 PRG:0584 ??
lda #$0B ; CPU:$C586 PRG:0586 ??
jsr StorePendingSoundCommand ; CPU:$C588 PRG:0588 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C633.
; Local behavior: Executes the decoded flow c633 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C633:
inc Ram_046F ; CPU:$C58A PRG:058A ??
lda Ram_046F ; CPU:$C58C PRG:058C ??
and #$0F ; CPU:$C58E PRG:058E ??
cmp #$0F ; CPU:$C590 PRG:0590 ??
bne Flow_C642 ; CPU:$C592 PRG:0592 ??
jsr ProcessGameState_C6CD ; CPU:$C594 PRG:0594 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C642.
; Local behavior: Executes the decoded flow c642 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C642:
jsr WaitForNmi ; CPU:$C596 PRG:0596 ??
lda #$00 ; CPU:$C598 PRG:0598 ??
jsr ReadControllers ; CPU:$C59A PRG:059A ??
lda Zp_2F ; CPU:$C59C PRG:059C ??
and #$08 ; CPU:$C59E PRG:059E ??
bne Flow_C695 ; CPU:$C5A0 PRG:05A0 ??
lda Ram_0470 ; CPU:$C5A2 PRG:05A2 ??
bne Flow_C633 ; CPU:$C5A4 PRG:05A4 ??
lda #$01 ; CPU:$C5A6 PRG:05A6 ??
ora Ram_0470 ; CPU:$C5A8 PRG:05A8 ??
sta Ram_0470 ; CPU:$C5AA PRG:05AA ??
bne Flow_C633 ; CPU:$C5AC PRG:05AC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C65 F.
; Local behavior: Executes the decoded flow c65 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C65F:
lda #$0B ; CPU:$C5AE PRG:05AE ??
jsr StorePendingSoundCommand ; CPU:$C5B0 PRG:05B0 ??
jsr ProcessGameState_C6ED ; CPU:$C5B2 PRG:05B2 ??
lda Ram_04E0 ; CPU:$C5B4 PRG:05B4 ??
cmp #$68 ; CPU:$C5B6 PRG:05B6 ??
beq Flow_C671 ; CPU:$C5B8 PRG:05B8 ??
jsr ProcessGameState_C6BC ; CPU:$C5BA PRG:05BA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C671.
; Local behavior: Executes the decoded flow c671 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C671:
ldy #$0F ; CPU:$C5BC PRG:05BC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C673.
; Local behavior: Executes the decoded flow c673 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C673:
jsr WaitForNmi ; CPU:$C5BE PRG:05BE ??
dey ; CPU:$C5C0 PRG:05C0 ??
bne Flow_C673 ; CPU:$C5C2 PRG:05C2 ??
lda #$00 ; CPU:$C5C4 PRG:05C4 ??
sta Zp_2F ; CPU:$C5C6 PRG:05C6 ??
lda #$04 ; CPU:$C5C8 PRG:05C8 ??
jsr StorePendingSoundCommand ; CPU:$C5CA PRG:05CA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C682.
; Local behavior: Executes the decoded flow c682 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C682:
lda #$00 ; CPU:$C5CC PRG:05CC ??
sta Ram_046F ; CPU:$C5CE PRG:05CE ??
sta Ram_0470 ; CPU:$C5D0 PRG:05D0 ??
jsr ProcessGameState_C6E0 ; CPU:$C5D2 PRG:05D2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C68 D.
; Local behavior: Executes the decoded flow c68 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C68D:
rts ; CPU:$C5D4 PRG:05D4 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C68 E.
; Local behavior: Executes the decoded flow c68 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C68E:
lda #$00 ; CPU:$C5D6 PRG:05D6 ??
sta Ram_046E ; CPU:$C5D8 PRG:05D8 ??
beq Flow_C682 ; CPU:$C5DA PRG:05DA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C695.
; Local behavior: Executes the decoded flow c695 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C695:
lda Ram_0470 ; CPU:$C5DC PRG:05DC ??
beq Flow_C633 ; CPU:$C5DE PRG:05DE ??
bne Flow_C65F ; CPU:$C5E0 PRG:05E0 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C69 C.
; Local behavior: Executes the decoded process game state c69 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C69C:
ldx #$C6 ; CPU:$C5E2 PRG:05E2 ??
ldy #$A3 ; CPU:$C5E4 PRG:05E4 ??
jmp ProcessGameState_C715 ; CPU:$C5E6 PRG:05E6 ??
.byte $A8,$C6,$E0,$04,$14,$68,$C8,$01,$68,$68,$CA,$01,$70,$68,$CC,$01 ; PRG $06A3 | CPU $C6A3 ; CPU:$C5E8 PRG:05E8 A8 C6 E0 04 14 68 C8 01 68 68 CA 01 70 68 CC 01
.byte $78,$68,$CE,$01,$80,$68,$D0,$01,$88 ; PRG $06B3 | CPU $C6B3 ; CPU:$C5F8 PRG:05F8 78 68 CE 01 80 68 D0 01 88
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C6 BC.
; Local behavior: Executes the decoded process game state c6 bc sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C6BC:
lda #$E0 ; CPU:$C601 PRG:0601 ??
sta Zp_32 ; CPU:$C603 PRG:0603 ??
sta Zp_34 ; CPU:$C605 PRG:0605 ??
lda #$04 ; CPU:$C607 PRG:0607 ??
sta Zp_33 ; CPU:$C609 PRG:0609 ??
lda #$07 ; CPU:$C60B PRG:060B ??
sta Zp_35 ; CPU:$C60D PRG:060D ??
jmp Flow_C700 ; CPU:$C60F PRG:060F ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C6 CD.
; Local behavior: Executes the decoded process game state c6 cd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C6CD:
lda #$E0 ; CPU:$C611 PRG:0611 ??
sta Zp_32 ; CPU:$C613 PRG:0613 ??
lda #$04 ; CPU:$C615 PRG:0615 ??
sta Zp_33 ; CPU:$C617 PRG:0617 ??
lda #$00 ; CPU:$C619 PRG:0619 ??
sta Zp_34 ; CPU:$C61B PRG:061B ??
lda #$07 ; CPU:$C61D PRG:061D ??
sta Zp_35 ; CPU:$C61F PRG:061F ??
jmp Flow_C700 ; CPU:$C621 PRG:0621 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C6 E0.
; Local behavior: Executes the decoded process game state c6 e0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C6E0:
lda #$00 ; CPU:$C623 PRG:0623 ??
ldy #$00 ; CPU:$C625 PRG:0625 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C6 E4.
; Local behavior: Executes the decoded flow c6 e4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C6E4:
sta Ram_04E0,y ; CPU:$C627 PRG:0627 ??
iny ; CPU:$C629 PRG:0629 ??
cpy #$14 ; CPU:$C62B PRG:062B ??
bne Flow_C6E4 ; CPU:$C62D PRG:062D ??
rts ; CPU:$C62F PRG:062F ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C6 ED.
; Local behavior: Executes the decoded process game state c6 ed sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C6ED:
lda #$00 ; CPU:$C631 PRG:0631 ??
sta Zp_32 ; CPU:$C633 PRG:0633 ??
lda #$07 ; CPU:$C635 PRG:0635 ??
sta Zp_33 ; CPU:$C637 PRG:0637 ??
lda #$E0 ; CPU:$C639 PRG:0639 ??
sta Zp_34 ; CPU:$C63B PRG:063B ??
lda #$07 ; CPU:$C63D PRG:063D ??
sta Zp_35 ; CPU:$C63F PRG:063F ??
jmp Flow_C700 ; CPU:$C641 PRG:0641 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C700.
; Local behavior: Executes the decoded flow c700 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C700:
ldy #$00 ; CPU:$C643 PRG:0643 ??
jsr WaitForPpuVblank ; CPU:$C645 PRG:0645 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C705.
; Local behavior: Executes the decoded flow c705 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C705:
lda (Zp_32),y ; CPU:$C647 PRG:0647 ??
tax ; CPU:$C649 PRG:0649 ??
lda (Zp_34),y ; CPU:$C64B PRG:064B ??
sta (Zp_32),y ; CPU:$C64D PRG:064D ??
txa ; CPU:$C64F PRG:064F ??
sta (Zp_34),y ; CPU:$C651 PRG:0651 ??
iny ; CPU:$C653 PRG:0653 ??
cpy #$14 ; CPU:$C655 PRG:0655 ??
bne Flow_C705 ; CPU:$C657 PRG:0657 ??
rts ; CPU:$C659 PRG:0659 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C715.
; Local behavior: Executes the decoded process game state c715 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C715:
sty Zp_32 ; CPU:$C65B PRG:065B ??
stx Zp_33 ; CPU:$C65D PRG:065D ??
ldy #$00 ; CPU:$C65F PRG:065F ??
lda (Zp_32),y ; CPU:$C661 PRG:0661 ??
sta Zp_34 ; CPU:$C663 PRG:0663 ??
iny ; CPU:$C665 PRG:0665 ??
lda (Zp_32),y ; CPU:$C667 PRG:0667 ??
sta Zp_35 ; CPU:$C669 PRG:0669 ??
iny ; CPU:$C66B PRG:066B ??
lda (Zp_32),y ; CPU:$C66D PRG:066D ??
sta Zp_36 ; CPU:$C66F PRG:066F ??
iny ; CPU:$C671 PRG:0671 ??
lda (Zp_32),y ; CPU:$C673 PRG:0673 ??
sta Zp_37 ; CPU:$C675 PRG:0675 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C72 E.
; Local behavior: Executes the decoded flow c72 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C72E:
iny ; CPU:$C677 PRG:0677 ??
lda (Zp_32),y ; CPU:$C679 PRG:0679 ??
tax ; CPU:$C67B PRG:067B ??
ldy #$00 ; CPU:$C67D PRG:067D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C734.
; Local behavior: Executes the decoded flow c734 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C734:
lda (Zp_34),y ; CPU:$C67F PRG:067F ??
sta (Zp_36),y ; CPU:$C681 PRG:0681 ??
iny ; CPU:$C683 PRG:0683 ??
dex ; CPU:$C685 PRG:0685 ??
bne Flow_C734 ; CPU:$C687 PRG:0687 ??
ldy Zp_32 ; CPU:$C689 PRG:0689 ??
ldx Zp_33 ; CPU:$C68B PRG:068B ??
rts ; CPU:$C68D PRG:068D ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C741.
; Local behavior: Executes the decoded process game state c741 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C741:
sty Zp_32 ; CPU:$C68F PRG:068F ??
stx Zp_33 ; CPU:$C691 PRG:0691 ??
ldy #$00 ; CPU:$C693 PRG:0693 ??
lda (Zp_32),y ; CPU:$C695 PRG:0695 ??
sta Zp_34 ; CPU:$C697 PRG:0697 ??
iny ; CPU:$C699 PRG:0699 ??
lda (Zp_32),y ; CPU:$C69B PRG:069B ??
sta Zp_35 ; CPU:$C69D PRG:069D ??
lda #$00 ; CPU:$C69F PRG:069F ??
sta Zp_36 ; CPU:$C6A1 PRG:06A1 ??
lda #$05 ; CPU:$C6A3 PRG:06A3 ??
sta Zp_37 ; CPU:$C6A5 PRG:06A5 ??
bne Flow_C72E ; CPU:$C6A7 PRG:06A7 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C75 A.
; Local behavior: Executes the decoded process game state c75 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C75A:
ldy #$00 ; CPU:$C6A9 PRG:06A9 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C75 C.
; Local behavior: Executes the decoded flow c75 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C75C:
lda OamBuffer,y ; CPU:$C6AB PRG:06AB ??
tax ; CPU:$C6AD PRG:06AD ??
lda Ram_0300,y ; CPU:$C6AF PRG:06AF ??
sta OamBuffer,y ; CPU:$C6B1 PRG:06B1 ??
txa ; CPU:$C6B3 PRG:06B3 ??
sta Ram_0300,y ; CPU:$C6B5 PRG:06B5 ??
iny ; CPU:$C6B7 PRG:06B7 ??
bne Flow_C75C ; CPU:$C6B9 PRG:06B9 ??
rts ; CPU:$C6BB PRG:06BB ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C76 E.
; Local behavior: Executes the decoded process game state c76 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C76E:
lda #$00 ; CPU:$C6BD PRG:06BD ??
sta Zp_32 ; CPU:$C6BF PRG:06BF ??
lda #$02 ; CPU:$C6C1 PRG:06C1 ??
sta Zp_33 ; CPU:$C6C3 PRG:06C3 ??
ldx #$02 ; CPU:$C6C5 PRG:06C5 ??
jsr ProcessGameState_C7D9 ; CPU:$C6C7 PRG:06C7 ??
lda #$05 ; CPU:$C6C9 PRG:06C9 ??
sta Zp_33 ; CPU:$C6CB PRG:06CB ??
ldx #$02 ; CPU:$C6CD PRG:06CD ??
jsr ProcessGameState_C7D9 ; CPU:$C6CF PRG:06CF ??
lda #$FC ; CPU:$C6D1 PRG:06D1 ??
sta Zp_32 ; CPU:$C6D3 PRG:06D3 ??
lda #$04 ; CPU:$C6D5 PRG:06D5 ??
sta Zp_33 ; CPU:$C6D7 PRG:06D7 ??
ldy #$00 ; CPU:$C6D9 PRG:06D9 ??
ldx #$04 ; CPU:$C6DB PRG:06DB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C790.
; Local behavior: Executes the decoded flow c790 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C790:
lda (Zp_32),y ; CPU:$C6DD PRG:06DD ??
cmp LookupTable_C7F3,y ; CPU:$C6DF PRG:06DF ??
bne Flow_C79D ; CPU:$C6E1 PRG:06E1 ??
iny ; CPU:$C6E3 PRG:06E3 ??
dex ; CPU:$C6E5 PRG:06E5 ??
bne Flow_C790 ; CPU:$C6E7 PRG:06E7 ??
beq Flow_C7BD ; CPU:$C6E9 PRG:06E9 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C79 D.
; Local behavior: Executes the decoded flow c79 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C79D:
ldy #$00 ; CPU:$C6EB PRG:06EB ??
ldx #$04 ; CPU:$C6ED PRG:06ED ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C7 A1.
; Local behavior: Executes the decoded flow c7 a1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C7A1:
lda LookupTable_C7F3,y ; CPU:$C6EF PRG:06EF ??
sta (Zp_32),y ; CPU:$C6F1 PRG:06F1 ??
iny ; CPU:$C6F3 PRG:06F3 ??
dex ; CPU:$C6F5 PRG:06F5 ??
bne Flow_C7A1 ; CPU:$C6F7 PRG:06F7 ??
lda #$00 ; CPU:$C6F9 PRG:06F9 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C7 AC.
; Local behavior: Executes the decoded flow c7 ac sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C7AC:
sta Zp_30,x ; CPU:$C6FB PRG:06FB ??
inx ; CPU:$C6FD PRG:06FD ??
cpx #$CF ; CPU:$C6FF PRG:06FF ??
bne Flow_C7AC ; CPU:$C701 PRG:0701 ??
lda #$02 ; CPU:$C703 PRG:0703 ??
sta Zp_66 ; CPU:$C705 PRG:0705 ??
lda #$00 ; CPU:$C707 PRG:0707 ??
sta Zp_64 ; CPU:$C709 PRG:0709 ??
sta Zp_65 ; CPU:$C70B PRG:070B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C7 BD.
; Local behavior: Executes the decoded flow c7 bd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C7BD:
lda PpuControlShadow ; CPU:$C70D PRG:070D ??
ora #$20 ; CPU:$C70F PRG:070F ??
sta PpuControlShadow ; CPU:$C711 PRG:0711 ??
sta Zp_56 ; CPU:$C713 PRG:0713 ??
lda #$00 ; CPU:$C715 PRG:0715 ??
sta Zp_1B ; CPU:$C717 PRG:0717 ??
sta Zp_23 ; CPU:$C719 PRG:0719 ??
sta Ram_0400 ; CPU:$C71B PRG:071B ??
sta Ram_0401 ; CPU:$C71D PRG:071D ??
sta Zp_51 ; CPU:$C71F PRG:071F ??
jsr ProcessGameState_C7E7 ; CPU:$C721 PRG:0721 ??
jmp UpdateAudioEngine ; CPU:$C723 PRG:0723 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C7 D9.
; Local behavior: Executes the decoded process game state c7 d9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C7D9:
lda #$00 ; CPU:$C725 PRG:0725 ??
tay ; CPU:$C727 PRG:0727 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C7 DC.
; Local behavior: Executes the decoded flow c7 dc sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C7DC:
sta (Zp_32),y ; CPU:$C729 PRG:0729 ??
iny ; CPU:$C72B PRG:072B ??
bne Flow_C7DC ; CPU:$C72D PRG:072D ??
inc Zp_33 ; CPU:$C72F PRG:072F ??
dex ; CPU:$C731 PRG:0731 ??
bne ProcessGameState_C7D9 ; CPU:$C733 PRG:0733 ??
rts ; CPU:$C735 PRG:0735 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C7 E7.
; Local behavior: Executes the decoded process game state c7 e7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C7E7:
lda #$00 ; CPU:$C737 PRG:0737 ??
tax ; CPU:$C739 PRG:0739 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C7 EA.
; Local behavior: Executes the decoded flow c7 ea sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C7EA:
sta Ram_0402,x ; CPU:$C73B PRG:073B ??
inx ; CPU:$C73D PRG:073D ??
cpx #$F9 ; CPU:$C73F PRG:073F ??
bne Flow_C7EA ; CPU:$C741 PRG:0741 ??
rts ; CPU:$C743 PRG:0743 ??
LookupTable_C7F3:
.byte $44,$45,$43,$4F ; PRG $07F3 | CPU $C7F3 ; CPU:$C745 PRG:0745 44 45 43 4F
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C7 F7.
; Local behavior: Executes the decoded process game state c7 f7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C7F7:
lda #$01 ; CPU:$C749 PRG:0749 ??
sta Ram_0400 ; CPU:$C74B PRG:074B ??
sta Ram_0401 ; CPU:$C74D PRG:074D ??
sta Zp_1B ; CPU:$C74F PRG:074F ??
sta Zp_23 ; CPU:$C751 PRG:0751 ??
lda #$00 ; CPU:$C753 PRG:0753 ??
sta Ram_0404 ; CPU:$C755 PRG:0755 ??
sta Ram_0405 ; CPU:$C757 PRG:0757 ??
sta CurrentPlayerIndex ; CPU:$C759 PRG:0759 ??
sta PlayerDeathFlag ; CPU:$C75B PRG:075B ??
jsr ProcessGameState_CADC ; CPU:$C75D PRG:075D ??
jsr ProcessGameState_C75A ; CPU:$C75F PRG:075F ??
dec Ram_0400 ; CPU:$C761 PRG:0761 ??
jmp ClearNametable2000 ; CPU:$C763 PRG:0763 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C81 B.
; Local behavior: Executes the decoded process game state c81 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C81B:
jsr ClearNametable ; CPU:$C765 PRG:0765 ??
lda Zp_52 ; CPU:$C767 PRG:0767 ??
bne Flow_C82C ; CPU:$C769 PRG:0769 ??
jsr ClearNametable2000 ; CPU:$C76B PRG:076B ??
lda Zp_51 ; CPU:$C76D PRG:076D ??
bne Flow_C82C ; CPU:$C76F PRG:076F ??
jsr ProcessGameState_C7E7 ; CPU:$C771 PRG:0771 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C82 C.
; Local behavior: Executes the decoded flow c82 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C82C:
jsr ProcessGameState_CB88 ; CPU:$C773 PRG:0773 ??
lda Zp_51 ; CPU:$C775 PRG:0775 ??
beq Flow_C836 ; CPU:$C777 PRG:0777 ??
jmp Flow_C90A ; CPU:$C779 PRG:0779 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C836.
; Local behavior: Executes the decoded flow c836 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C836:
ldx CurrentPlayerIndex ; CPU:$C77B PRG:077B A9 05
inc Ram_0400,x ; CPU:$C77D PRG:077D 85 33
lda #$00 ; CPU:$C77F PRG:077F A2 02
sta Ram_0404,x ; CPU:$C781 PRG:0781 20 D9 C7
jsr InitializeObjectSlots ; CPU:$C784 PRG:0784 A9 FC
jsr ProcessGameState_CADC ; CPU:$C786 PRG:0786 85 32
lda #$00 ; CPU:$C788 PRG:0788 A9 04
sta Zp_51 ; CPU:$C78A PRG:078A 85 33
jsr TransformValue_CC8E ; CPU:$C78C PRG:078C A0 00
jsr TransformValue_CC7D ; CPU:$C78E PRG:078E A2 04
; -----------------------------------------------------------------------------
; Global purpose: Flow C850.
; Local behavior: Executes the decoded flow c850 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C850:
lda StateInitializedFlag ; CPU:$C790 PRG:0790 B1 32
bne Flow_C859 ; CPU:$C792 PRG:0792 D9 F3 C7
lda #$04 ; CPU:$C795 PRG:0795 D0 06
jsr StorePendingSoundCommand ; CPU:$C797 PRG:0797 C8
; -----------------------------------------------------------------------------
; Global purpose: Flow C859.
; Local behavior: Executes the decoded flow c859 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C859:
ldx CurrentPlayerIndex ; CPU:$C798 PRG:0798 CA
ldy Ram_0400,x ; CPU:$C799 PRG:0799 D0 F5
dey ; CPU:$C79B PRG:079B F0 20
; -----------------------------------------------------------------------------
; Global purpose: Flow C85 F.
; Local behavior: Executes the decoded flow c85 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C85F:
cpy #$06 ; CPU:$C79D PRG:079D A0 00
bcc Flow_C86B ; CPU:$C79F PRG:079F A2 04
tya ; CPU:$C7A1 PRG:07A1 B9 F3 C7
sec ; CPU:$C7A4 PRG:07A4 91 32
sbc #$06 ; CPU:$C7A6 PRG:07A6 C8
tay ; CPU:$C7A7 PRG:07A7 CA
jmp Flow_C85F ; CPU:$C7A8 PRG:07A8 D0 F7
; -----------------------------------------------------------------------------
; Global purpose: Flow C86 B.
; Local behavior: Executes the decoded flow c86 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C86B:
sty Ram_0402 ; CPU:$C7AA PRG:07AA A9 00
ldy Ram_0400,x ; CPU:$C7AC PRG:07AC 95 30
dey ; CPU:$C7AE PRG:07AE E8
cpy #$06 ; CPU:$C7AF PRG:07AF E0 CF
bcc Flow_C878 ; CPU:$C7B1 PRG:07B1 D0 F9
ldy #$05 ; CPU:$C7B3 PRG:07B3 A9 02
; -----------------------------------------------------------------------------
; Global purpose: Flow C878.
; Local behavior: Executes the decoded flow c878 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C878:
sty Ram_0403 ; CPU:$C7B5 PRG:07B5 85 66
ldy Ram_0402 ; CPU:$C7B7 PRG:07B7 A9 00
lda LookupTable_F247,y ; CPU:$C7B9 PRG:07B9 85 64
sta Ram_071E ; CPU:$C7BB PRG:07BB 85 65
sta Ram_0722 ; CPU:$C7BD PRG:07BD A5 10
sta Ram_046D ; CPU:$C7BF PRG:07BF 09 20
lda LookupTable_F24D,y ; CPU:$C7C1 PRG:07C1 85 10
sta Ram_071D ; CPU:$C7C3 PRG:07C3 85 56
clc ; CPU:$C7C5 PRG:07C5 A9 00
lda #$02 ; CPU:$C7C7 PRG:07C7 85 1B
adc Ram_071D ; CPU:$C7C9 PRG:07C9 85 23
sta Ram_0721 ; CPU:$C7CB PRG:07CB 8D 00 04
lda LookupTable_F253,y ; CPU:$C7CE PRG:07CE 8D 01 04
sta Ram_071F ; CPU:$C7D1 PRG:07D1 85 51
clc ; CPU:$C7D3 PRG:07D3 20 E7 C7
lda #$08 ; CPU:$C7D6 PRG:07D6 4C 78 F4
adc Ram_071F ; CPU:$C7D9 PRG:07D9 A9 00
sta Ram_0723 ; CPU:$C7DB PRG:07DB A8
lda LookupTable_F259,y ; CPU:$C7DC PRG:07DC 91 32
sta Ram_071C ; CPU:$C7DE PRG:07DE C8
sta Ram_0720 ; CPU:$C7DF PRG:07DF D0 FB
ldx #$07 ; CPU:$C7E1 PRG:07E1 E6 33
lda #$FF ; CPU:$C7E3 PRG:07E3 CA
; -----------------------------------------------------------------------------
; Global purpose: Flow C8 B5.
; Local behavior: Executes the decoded flow c8 b5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C8B5:
sta Ram_0407,x ; CPU:$C7E4 PRG:07E4 D0 F3
dex ; CPU:$C7E6 PRG:07E6 60
bpl Flow_C8B5 ; CPU:$C7E7 PRG:07E7 A9 00
ldx #$07 ; CPU:$C7E9 PRG:07E9 AA
lda #$01 ; CPU:$C7EA PRG:07EA 9D 02 04
; -----------------------------------------------------------------------------
; Global purpose: Flow C8 BF.
; Local behavior: Executes the decoded flow c8 bf sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C8BF:
nop ; CPU:$C7ED PRG:07ED E8
sta Ram_0438,x ; CPU:$C7EE PRG:07EE E0 F9
dex ; CPU:$C7F0 PRG:07F0 D0 F8
bpl Flow_C8BF ; CPU:$C7F2 PRG:07F2 60
ldx #$07 ; CPU:$C7F3 PRG:07F3 ??
lda #$04 ; CPU:$C7F5 PRG:07F5 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C8 CA.
; Local behavior: Executes the decoded flow c8 ca sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C8CA:
nop ; CPU:$C7F7 PRG:07F7 ??
sta Ram_0440,x ; CPU:$C7F9 PRG:07F9 ??
dex ; CPU:$C7FB PRG:07FB ??
bpl Flow_C8CA ; CPU:$C7FD PRG:07FD ??
ldx #$07 ; CPU:$C7FF PRG:07FF ??
lda #$00 ; CPU:$C801 PRG:0801 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C8 D5.
; Local behavior: Executes the decoded flow c8 d5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C8D5:
sta Ram_0448,x ; CPU:$C803 PRG:0803 ??
dex ; CPU:$C805 PRG:0805 ??
bpl Flow_C8D5 ; CPU:$C807 PRG:0807 ??
sta Ram_040E ; CPU:$C809 PRG:0809 ??
lda #$03 ; CPU:$C80B PRG:080B ??
sta Ram_0447 ; CPU:$C80D PRG:080D ??
lda #$00 ; CPU:$C80F PRG:080F ??
sta Ram_0464 ; CPU:$C811 PRG:0811 ??
sta Ram_0463 ; CPU:$C813 PRG:0813 ??
jsr TransformValue_DA99 ; CPU:$C815 PRG:0815 ??
jsr ProcessGameState_C9DF ; CPU:$C817 PRG:0817 ??
ldx CurrentPlayerIndex ; CPU:$C819 PRG:0819 ??
jsr TransformValue_CA37 ; CPU:$C81B PRG:081B ??
ldx #$02 ; CPU:$C81D PRG:081D ??
jsr TransformValue_CA37 ; CPU:$C81F PRG:081F ??
jsr ProcessGameState_CA87 ; CPU:$C821 PRG:0821 ??
jsr ProcessGameState_CAA7 ; CPU:$C823 PRG:0823 ??
jsr ProcessGameState_C928 ; CPU:$C825 PRG:0825 ??
lda #$3E ; CPU:$C827 PRG:0827 ??
sta Zp_45 ; CPU:$C829 PRG:0829 ??
bne Flow_C918 ; CPU:$C82B PRG:082B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C90 A.
; Local behavior: Executes the decoded flow c90 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C90A:
lda #$00 ; CPU:$C82D PRG:082D ??
sta Zp_51 ; CPU:$C82F PRG:082F ??
lda Zp_52 ; CPU:$C831 PRG:0831 ??
bne Flow_C915 ; CPU:$C833 PRG:0833 ??
jsr ProcessGameState_C977 ; CPU:$C835 PRG:0835 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C915.
; Local behavior: Executes the decoded flow c915 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C915:
jmp Flow_C850 ; CPU:$C837 PRG:0837 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C918.
; Local behavior: Executes the decoded flow c918 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C918:
jsr ProcessGameState_CEBE ; CPU:$C839 PRG:0839 ??
dex ; CPU:$C83B PRG:083B ??
lda LookupTable_C922,x ; CPU:$C83D PRG:083D ??
sta Zp_58 ; CPU:$C83F PRG:083F ??
rts ; CPU:$C841 PRG:0841 ??
LookupTable_C922:
.byte $AC,$BC,$CC,$8C,$CC,$AC ; PRG $0922 | CPU $C922 ; CPU:$C843 PRG:0843 AC BC CC 8C CC AC
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C928.
; Local behavior: Executes the decoded process game state c928 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C928:
ldx #$C9 ; CPU:$C849 PRG:0849 ??
ldy #$55 ; CPU:$C84B PRG:084B ??
jsr ProcessGameState_C741 ; CPU:$C84D PRG:084D ??
ldx CurrentPlayerIndex ; CPU:$C84F PRG:084F ??
lda Ram_0400,x ; CPU:$C851 PRG:0851 ??
cmp #$17 ; CPU:$C853 PRG:0853 ??
bcc Flow_C93A ; CPU:$C855 PRG:0855 ??
lda #$16 ; CPU:$C857 PRG:0857 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C93 A.
; Local behavior: Executes the decoded flow c93 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C93A:
tay ; CPU:$C859 PRG:0859 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C93 B.
; Local behavior: Executes the decoded flow c93 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C93B:
jsr ProcessGameState_CE86 ; CPU:$C85B PRG:085B ??
dey ; CPU:$C85D PRG:085D ??
beq Flow_C954 ; CPU:$C85F PRG:085F ??
clc ; CPU:$C861 PRG:0861 ??
lda #$20 ; CPU:$C863 PRG:0863 ??
adc Ram_0501 ; CPU:$C865 PRG:0865 ??
sta Ram_0501 ; CPU:$C867 PRG:0867 ??
lda #$00 ; CPU:$C869 PRG:0869 ??
adc Ram_0500 ; CPU:$C86B PRG:086B ??
sta Ram_0500 ; CPU:$C86D PRG:086D ??
bne Flow_C93B ; CPU:$C86F PRG:086F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C954.
; Local behavior: Executes the decoded flow c954 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C954:
rts ; CPU:$C871 PRG:0871 ??
.byte $58,$C9,$04,$20,$C3,$01,$A7 ; PRG $0955 | CPU $C955 ; CPU:$C873 PRG:0873 58 C9 04 20 C3 01 A7
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C95 C.
; Local behavior: Executes the decoded process game state c95 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C95C:
clc ; CPU:$C87A PRG:087A ??
lda #$01 ; CPU:$C87C PRG:087C ??
adc Zp_33 ; CPU:$C87E PRG:087E ??
sta Zp_33 ; CPU:$C880 PRG:0880 ??
lda #$00 ; CPU:$C882 PRG:0882 ??
adc Zp_32 ; CPU:$C884 PRG:0884 ??
sta Zp_32 ; CPU:$C886 PRG:0886 ??
clc ; CPU:$C888 PRG:0888 ??
lda #$01 ; CPU:$C88A PRG:088A ??
adc Zp_35 ; CPU:$C88C PRG:088C ??
sta Zp_35 ; CPU:$C88E PRG:088E ??
lda #$00 ; CPU:$C890 PRG:0890 ??
adc Zp_34 ; CPU:$C892 PRG:0892 ??
sta Zp_34 ; CPU:$C894 PRG:0894 ??
rts ; CPU:$C896 PRG:0896 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C977.
; Local behavior: Executes the decoded process game state c977 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C977:
jsr DisableBackgroundAndSprites ; CPU:$C898 PRG:0898 ??
ldx #$20 ; CPU:$C89A PRG:089A ??
ldy #$00 ; CPU:$C89C PRG:089C ??
stx Zp_32 ; CPU:$C89E PRG:089E ??
sty Zp_33 ; CPU:$C8A0 PRG:08A0 ??
sty Zp_35 ; CPU:$C8A2 PRG:08A2 ??
ldx #$28 ; CPU:$C8A4 PRG:08A4 ??
stx Zp_34 ; CPU:$C8A6 PRG:08A6 ??
jmp Flow_C98B ; CPU:$C8A8 PRG:08A8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C98 B.
; Local behavior: Executes the decoded flow c98 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C98B:
lda #$30 ; CPU:$C8AA PRG:08AA ??
sta PPUCTRL ; CPU:$C8AC PRG:08AC ??
lda #$08 ; CPU:$C8AE PRG:08AE ??
sta Zp_38 ; CPU:$C8B0 PRG:08B0 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C994.
; Local behavior: Executes the decoded flow c994 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C994:
lda #$80 ; CPU:$C8B2 PRG:08B2 ??
sta Zp_39 ; CPU:$C8B4 PRG:08B4 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C998.
; Local behavior: Executes the decoded flow c998 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C998:
ldx Zp_32 ; CPU:$C8B6 PRG:08B6 ??
ldy Zp_33 ; CPU:$C8B8 PRG:08B8 ??
jsr SetPpuAddress ; CPU:$C8BA PRG:08BA ??
lda PPUDATA ; CPU:$C8BC PRG:08BC ??
lda PPUDATA ; CPU:$C8BE PRG:08BE ??
sta Zp_36 ; CPU:$C8C0 PRG:08C0 ??
ldx Zp_34 ; CPU:$C8C2 PRG:08C2 ??
ldy Zp_35 ; CPU:$C8C4 PRG:08C4 ??
jsr SetPpuAddress ; CPU:$C8C6 PRG:08C6 ??
lda PPUDATA ; CPU:$C8C8 PRG:08C8 ??
lda PPUDATA ; CPU:$C8CA PRG:08CA ??
sta Zp_37 ; CPU:$C8CC PRG:08CC ??
ldx Zp_32 ; CPU:$C8CE PRG:08CE ??
ldy Zp_33 ; CPU:$C8D0 PRG:08D0 ??
jsr SetPpuAddress ; CPU:$C8D2 PRG:08D2 ??
lda Zp_37 ; CPU:$C8D4 PRG:08D4 ??
sta PPUDATA ; CPU:$C8D6 PRG:08D6 ??
ldx Zp_34 ; CPU:$C8D8 PRG:08D8 ??
ldy Zp_35 ; CPU:$C8DA PRG:08DA ??
jsr SetPpuAddress ; CPU:$C8DC PRG:08DC ??
lda Zp_36 ; CPU:$C8DE PRG:08DE ??
sta PPUDATA ; CPU:$C8E0 PRG:08E0 ??
jsr ProcessGameState_C95C ; CPU:$C8E2 PRG:08E2 ??
dec Zp_39 ; CPU:$C8E4 PRG:08E4 ??
bne Flow_C998 ; CPU:$C8E6 PRG:08E6 ??
dec Zp_38 ; CPU:$C8E8 PRG:08E8 ??
bne Flow_C994 ; CPU:$C8EA PRG:08EA ??
lda #$B0 ; CPU:$C8EC PRG:08EC ??
sta PPUCTRL ; CPU:$C8EE PRG:08EE ??
rts ; CPU:$C8F0 PRG:08F0 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C9 DF.
; Local behavior: Executes the decoded process game state c9 df sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C9DF:
ldx #$F2 ; CPU:$C8F2 PRG:08F2 ??
ldy #$10 ; CPU:$C8F4 PRG:08F4 ??
jsr ProcessGameState_CA31 ; CPU:$C8F6 PRG:08F6 ??
lda CurrentPlayerIndex ; CPU:$C8F8 PRG:08F8 ??
bne Flow_C9F1 ; CPU:$C8FA PRG:08FA ??
ldx #$F1 ; CPU:$C8FC PRG:08FC ??
ldy #$FE ; CPU:$C8FE PRG:08FE ??
jmp ProcessGameState_CA31 ; CPU:$C900 PRG:0900 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow C9 F1.
; Local behavior: Executes the decoded flow c9 f1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_C9F1:
ldx #$F2 ; CPU:$C902 PRG:0902 ??
ldy #$18 ; CPU:$C904 PRG:0904 ??
jsr ProcessGameState_CA31 ; CPU:$C906 PRG:0906 ??
rts ; CPU:$C908 PRG:0908 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State C9 F9.
; Local behavior: Executes the decoded process game state c9 f9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_C9F9:
lda Zp_45 ; CPU:$C90A PRG:090A ??
and #$3F ; CPU:$C90C PRG:090C ??
bne Flow_CA1A ; CPU:$C90E PRG:090E ??
lda CurrentPlayerIndex ; CPU:$C910 PRG:0910 ??
bne Flow_CA0F ; CPU:$C912 PRG:0912 ??
ldx GameMode ; CPU:$C914 PRG:0914 ??
beq Flow_CA0E ; CPU:$C916 PRG:0916 ??
ldx #$F2 ; CPU:$C918 PRG:0918 ??
ldy #$07 ; CPU:$C91A PRG:091A ??
jsr ProcessGameState_CA31 ; CPU:$C91C PRG:091C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CA0 E.
; Local behavior: Executes the decoded flow ca0 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CA0E:
rts ; CPU:$C91E PRG:091E ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CA0 F.
; Local behavior: Executes the decoded flow ca0 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CA0F:
ldx GameMode ; CPU:$C920 PRG:0920 ??
beq Flow_CA0E ; CPU:$C922 PRG:0922 ??
ldx #$F2 ; CPU:$C924 PRG:0924 ??
ldy #$21 ; CPU:$C926 PRG:0926 ??
jmp ProcessGameState_CA31 ; CPU:$C928 PRG:0928 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CA1 A.
; Local behavior: Executes the decoded flow ca1 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CA1A:
cmp #$0F ; CPU:$C92A PRG:092A ??
bne Flow_CA30 ; CPU:$C92C PRG:092C ??
lda CurrentPlayerIndex ; CPU:$C92E PRG:092E ??
bne Flow_CA29 ; CPU:$C930 PRG:0930 ??
ldx #$F1 ; CPU:$C932 PRG:0932 ??
ldy #$FE ; CPU:$C934 PRG:0934 ??
jmp ProcessGameState_CA31 ; CPU:$C936 PRG:0936 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CA29.
; Local behavior: Executes the decoded flow ca29 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CA29:
ldx #$F2 ; CPU:$C938 PRG:0938 ??
ldy #$18 ; CPU:$C93A PRG:093A ??
jsr ProcessGameState_CA31 ; CPU:$C93C PRG:093C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CA30.
; Local behavior: Executes the decoded flow ca30 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CA30:
rts ; CPU:$C93E PRG:093E ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CA31.
; Local behavior: Executes the decoded process game state ca31 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CA31:
jsr ProcessGameState_C741 ; CPU:$C940 PRG:0940 ??
jmp ProcessGameState_CE86 ; CPU:$C942 PRG:0942 ??
; -----------------------------------------------------------------------------
; Global purpose: Transform Value CA37.
; Local behavior: Executes the decoded transform value ca37 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_CA37:
cpx #$06 ; CPU:$C944 PRG:0944 ??
bcs Flow_CA73 ; CPU:$C946 PRG:0946 ??
txa ; CPU:$C948 PRG:0948 ??
asl a ; CPU:$C94A PRG:094A ??
tay ; CPU:$C94C PRG:094C ??
cpx #$00 ; CPU:$C94E PRG:094E ??
beq Flow_CA52 ; CPU:$C950 PRG:0950 ??
cpx #$01 ; CPU:$C952 PRG:0952 ??
beq Flow_CA56 ; CPU:$C954 PRG:0954 ??
cpx #$03 ; CPU:$C956 PRG:0956 ??
beq Flow_CA52 ; CPU:$C958 PRG:0958 ??
cpx #$05 ; CPU:$C95A PRG:095A ??
beq Flow_CA56 ; CPU:$C95C PRG:095C ??
lda #$64 ; CPU:$C95E PRG:095E ??
bne Flow_CA58 ; CPU:$C960 PRG:0960 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CA52.
; Local behavior: Executes the decoded flow ca52 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CA52:
lda #$5E ; CPU:$C962 PRG:0962 ??
bne Flow_CA58 ; CPU:$C964 PRG:0964 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CA56.
; Local behavior: Executes the decoded flow ca56 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CA56:
lda #$61 ; CPU:$C966 PRG:0966 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CA58.
; Local behavior: Executes the decoded flow ca58 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CA58:
sta Zp_32 ; CPU:$C968 PRG:0968 ??
lda #$00 ; CPU:$C96A PRG:096A ??
sta Zp_33 ; CPU:$C96C PRG:096C ??
lda LookupTable_CA74,y ; CPU:$C96E PRG:096E ??
sta Zp_34 ; CPU:$C970 PRG:0970 ??
lda LookupTable_CA75,y ; CPU:$C972 PRG:0972 ??
sta Zp_35 ; CPU:$C974 PRG:0974 ??
lda #$06 ; CPU:$C976 PRG:0976 ??
sta Zp_36 ; CPU:$C978 PRG:0978 ??
ldx #$00 ; CPU:$C97A PRG:097A ??
ldy #$32 ; CPU:$C97C PRG:097C ??
jsr DecodeAttributeStream ; CPU:$C97E PRG:097E ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CA73.
; Local behavior: Executes the decoded flow ca73 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CA73:
rts ; CPU:$C980 PRG:0980 ??
LookupTable_CA74:
.byte $67 ; PRG $0A74 | CPU $CA74 ; CPU:$C982 PRG:0982 67
LookupTable_CA75:
.byte $20,$67,$20,$71,$20,$66,$20,$6F,$20,$79,$20 ; PRG $0A75 | CPU $CA75 ; CPU:$C983 PRG:0983 20 67 20 71 20 66 20 6F 20 79 20
; -----------------------------------------------------------------------------
; Global purpose: Run Frame Synchronized Task CA80.
; Local behavior: Executes the decoded run frame synchronized task ca80 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
RunFrameSynchronizedTask_CA80:
jsr WaitForNmi ; CPU:$C98E PRG:098E ??
dex ; CPU:$C990 PRG:0990 ??
bne RunFrameSynchronizedTask_CA80 ; CPU:$C992 PRG:0992 ??
rts ; CPU:$C994 PRG:0994 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CA87.
; Local behavior: Executes the decoded process game state ca87 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CA87:
ldx #$CA ; CPU:$C996 PRG:0996 ??
ldy #$A0 ; CPU:$C998 PRG:0998 ??
jsr ProcessGameState_C741 ; CPU:$C99A PRG:099A ??
jsr ProcessGameState_CE86 ; CPU:$C99C PRG:099C ??
lda #$7D ; CPU:$C99E PRG:099E ??
sta Zp_34 ; CPU:$C9A0 PRG:09A0 ??
lda #$20 ; CPU:$C9A2 PRG:09A2 ??
sta Zp_35 ; CPU:$C9A4 PRG:09A4 ??
ldx CurrentPlayerIndex ; CPU:$C9A6 PRG:09A6 ??
lda Zp_5A,x ; CPU:$C9A8 PRG:09A8 ??
jmp Flow_CAC7 ; CPU:$C9AA PRG:09AA ??
.byte $A3,$CA,$04,$20,$7C,$01,$A6 ; PRG $0AA0 | CPU $CAA0 ; CPU:$C9AC PRG:09AC A3 CA 04 20 7C 01 A6
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CAA7.
; Local behavior: Executes the decoded process game state caa7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CAA7:
ldx #$CA ; CPU:$C9B3 PRG:09B3 ??
ldy #$C0 ; CPU:$C9B5 PRG:09B5 ??
jsr ProcessGameState_C741 ; CPU:$C9B7 PRG:09B7 ??
jsr ProcessGameState_CE86 ; CPU:$C9B9 PRG:09B9 ??
lda #$79 ; CPU:$C9BB PRG:09BB ??
sta Zp_34 ; CPU:$C9BD PRG:09BD ??
lda #$20 ; CPU:$C9BF PRG:09BF ??
sta Zp_35 ; CPU:$C9C1 PRG:09C1 ??
ldx CurrentPlayerIndex ; CPU:$C9C3 PRG:09C3 ??
lda Zp_5C,x ; CPU:$C9C5 PRG:09C5 ??
jmp Flow_CAC7 ; CPU:$C9C7 PRG:09C7 ??
.byte $C3,$CA,$04,$20,$78,$01,$AF ; PRG $0AC0 | CPU $CAC0 ; CPU:$C9C9 PRG:09C9 C3 CA 04 20 78 01 AF
; -----------------------------------------------------------------------------
; Global purpose: Flow CAC7.
; Local behavior: Executes the decoded flow cac7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CAC7:
sta Zp_37 ; CPU:$C9D0 PRG:09D0 ??
lda #$02 ; CPU:$C9D2 PRG:09D2 ??
sta Zp_36 ; CPU:$C9D4 PRG:09D4 ??
lda #$37 ; CPU:$C9D6 PRG:09D6 ??
sta Zp_32 ; CPU:$C9D8 PRG:09D8 ??
lda #$00 ; CPU:$C9DA PRG:09DA ??
sta Zp_33 ; CPU:$C9DC PRG:09DC ??
ldx #$00 ; CPU:$C9DE PRG:09DE ??
ldy #$32 ; CPU:$C9E0 PRG:09E0 ??
jmp DecodeAttributeStream ; CPU:$C9E2 PRG:09E2 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CADC.
; Local behavior: Executes the decoded process game state cadc sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CADC:
ldx CurrentPlayerIndex ; CPU:$C9E4 PRG:09E4 ??
ldy Ram_0400,x ; CPU:$C9E6 PRG:09E6 ??
dey ; CPU:$C9E8 PRG:09E8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CAE2.
; Local behavior: Executes the decoded flow cae2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CAE2:
cpy #$06 ; CPU:$C9EA PRG:09EA ??
bcc Flow_CAEE ; CPU:$C9EC PRG:09EC ??
tya ; CPU:$C9EE PRG:09EE ??
sec ; CPU:$C9F0 PRG:09F0 ??
sbc #$06 ; CPU:$C9F2 PRG:09F2 ??
tay ; CPU:$C9F4 PRG:09F4 ??
jmp Flow_CAE2 ; CPU:$C9F6 PRG:09F6 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CAEE.
; Local behavior: Executes the decoded flow caee sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CAEE:
tya ; CPU:$C9F8 PRG:09F8 ??
asl a ; CPU:$C9FA PRG:09FA ??
tay ; CPU:$C9FC PRG:09FC ??
lda LookupTable_F23B,y ; CPU:$C9FE PRG:09FE ??
sta Zp_32 ; CPU:$CA00 PRG:0A00 ??
lda LookupTable_F23C,y ; CPU:$CA02 PRG:0A02 ??
sta Zp_33 ; CPU:$CA04 PRG:0A04 ??
ldy #$00 ; CPU:$CA06 PRG:0A06 ??
ldx #$00 ; CPU:$CA08 PRG:0A08 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CAFF.
; Local behavior: Executes the decoded flow caff sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CAFF:
lda (Zp_32),y ; CPU:$CA0A PRG:0A0A ??
cmp #$FF ; CPU:$CA0C PRG:0A0C ??
beq Flow_CB1A ; CPU:$CA0E PRG:0A0E ??
sta OamBuffer,x ; CPU:$CA10 PRG:0A10 ??
iny ; CPU:$CA12 PRG:0A12 ??
inx ; CPU:$CA14 PRG:0A14 ??
txa ; CPU:$CA16 PRG:0A16 ??
and #$03 ; CPU:$CA18 PRG:0A18 ??
cmp #$03 ; CPU:$CA1A PRG:0A1A ??
bne Flow_CAFF ; CPU:$CA1C PRG:0A1C ??
inx ; CPU:$CA1E PRG:0A1E ??
lda #$00 ; CPU:$CA20 PRG:0A20 ??
sta OamBuffer,x ; CPU:$CA22 PRG:0A22 ??
jmp Flow_CAFF ; CPU:$CA24 PRG:0A24 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CB1 A.
; Local behavior: Executes the decoded flow cb1 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CB1A:
lda #$00 ; CPU:$CA26 PRG:0A26 ??
sta OamBuffer,x ; CPU:$CA28 PRG:0A28 ??
inx ; CPU:$CA2A PRG:0A2A ??
bne Flow_CB1A ; CPU:$CA2C PRG:0A2C ??
rts ; CPU:$CA2E PRG:0A2E ??
.byte $B9,$02,$02,$85,$34,$84,$42,$A2,$00,$A0,$0D,$A5,$42,$DD,$01,$06 ; PRG $0B23 | CPU $CB23 ; CPU:$CA30 PRG:0A30 B9 02 02 85 34 84 42 A2 00 A0 0D A5 42 DD 01 06
.byte $F0,$07,$E8,$88,$D0,$F7,$A4,$42,$60,$8A,$0A,$0A,$0A,$0A,$AA,$A0 ; PRG $0B33 | CPU $CB33 ; CPU:$CA40 PRG:0A40 F0 07 E8 88 D0 F7 A4 42 60 8A 0A 0A 0A 0A AA A0
.byte $04,$A5,$34,$9D,$24,$07,$E8,$E8,$E8,$E8,$88,$D0,$F4,$A4,$42,$60 ; PRG $0B43 | CPU $CB43 ; CPU:$CA50 PRG:0A50 04 A5 34 9D 24 07 E8 E8 E8 E8 88 D0 F4 A4 42 60
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CB53.
; Local behavior: Executes the decoded process game state cb53 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CB53:
ldx #$04 ; CPU:$CA60 PRG:0A60 ??
stx Zp_5A ; CPU:$CA62 PRG:0A62 ??
stx Zp_5B ; CPU:$CA64 PRG:0A64 ??
ldx #$00 ; CPU:$CA66 PRG:0A66 ??
lda LookupTable_CB6B,x ; CPU:$CA68 PRG:0A68 ??
sta Zp_8B ; CPU:$CA6A PRG:0A6A ??
sta Zp_8C ; CPU:$CA6C PRG:0A6C ??
sta Zp_8D ; CPU:$CA6E PRG:0A6E ??
lda #$05 ; CPU:$CA70 PRG:0A70 ??
sta Zp_5C ; CPU:$CA72 PRG:0A72 ??
sta Zp_5D ; CPU:$CA74 PRG:0A74 ??
rts ; CPU:$CA76 PRG:0A76 ??
LookupTable_CB6B:
.byte $02,$03,$04,$05 ; PRG $0B6B | CPU $CB6B ; CPU:$CA78 PRG:0A78 02 03 04 05
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CB6 F.
; Local behavior: Executes the decoded process game state cb6 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CB6F:
inc Zp_45 ; CPU:$CA7C PRG:0A7C ??
lda Zp_45 ; CPU:$CA7E PRG:0A7E ??
and #$3F ; CPU:$CA80 PRG:0A80 ??
inc Zp_46 ; CPU:$CA82 PRG:0A82 ??
bne Flow_CB7B ; CPU:$CA84 PRG:0A84 ??
inc Zp_47 ; CPU:$CA86 PRG:0A86 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CB7 B.
; Local behavior: Executes the decoded flow cb7 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CB7B:
inc Zp_48 ; CPU:$CA88 PRG:0A88 ??
lda Ram_046B ; CPU:$CA8A PRG:0A8A ??
adc Ram_046C ; CPU:$CA8C PRG:0A8C ??
adc Zp_48 ; CPU:$CA8E PRG:0A8E ??
sta Zp_48 ; CPU:$CA90 PRG:0A90 ??
rts ; CPU:$CA92 PRG:0A92 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CB88.
; Local behavior: Executes the decoded process game state cb88 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CB88:
ldx #$23 ; CPU:$CA94 PRG:0A94 ??
ldy #$C0 ; CPU:$CA96 PRG:0A96 ??
jsr WaitForNmiAndSetPpuAddress ; CPU:$CA98 PRG:0A98 ??
lda #$55 ; CPU:$CA9A PRG:0A9A ??
ldy #$08 ; CPU:$CA9C PRG:0A9C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CB93.
; Local behavior: Executes the decoded flow cb93 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CB93:
sta PPUDATA ; CPU:$CA9E PRG:0A9E ??
dey ; CPU:$CAA0 PRG:0AA0 ??
bne Flow_CB93 ; CPU:$CAA2 PRG:0AA2 ??
ldx #$CB ; CPU:$CAA4 PRG:0AA4 ??
ldy #$B5 ; CPU:$CAA6 PRG:0AA6 ??
jsr ProcessGameState_C741 ; CPU:$CAA8 PRG:0AA8 ??
lda #$06 ; CPU:$CAAA PRG:0AAA ??
sta Zp_3C ; CPU:$CAAC PRG:0AAC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CBA4.
; Local behavior: Executes the decoded flow cba4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CBA4:
jsr ProcessGameState_CE86 ; CPU:$CAAE PRG:0AAE ??
lda Ram_0501 ; CPU:$CAB0 PRG:0AB0 ??
clc ; CPU:$CAB2 PRG:0AB2 ??
adc #$08 ; CPU:$CAB4 PRG:0AB4 ??
sta Ram_0501 ; CPU:$CAB6 PRG:0AB6 ??
dec Zp_3C ; CPU:$CAB8 PRG:0AB8 ??
bne Flow_CBA4 ; CPU:$CABA PRG:0ABA ??
rts ; CPU:$CABC PRG:0ABC ??
.byte $B8,$CB,$09,$23,$C9,$06,$CC,$33,$FF,$CC,$33,$FF ; PRG $0BB5 | CPU $CBB5 ; CPU:$CABE PRG:0ABE B8 CB 09 23 C9 06 CC 33 FF CC 33 FF
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CBC1.
; Local behavior: Executes the decoded process game state cbc1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CBC1:
ldx #$EA ; CPU:$CACA PRG:0ACA ??
ldy #$CB ; CPU:$CACC PRG:0ACC ??
stx Zp_3A ; CPU:$CACE PRG:0ACE ??
sty Zp_3B ; CPU:$CAD0 PRG:0AD0 ??
ldy #$00 ; CPU:$CAD2 PRG:0AD2 ??
sty Zp_3C ; CPU:$CAD4 PRG:0AD4 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CBCD.
; Local behavior: Executes the decoded flow cbcd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CBCD:
lda Zp_3C ; CPU:$CAD6 PRG:0AD6 ??
asl a ; CPU:$CAD8 PRG:0AD8 ??
tay ; CPU:$CADA PRG:0ADA ??
lda (Zp_3A),y ; CPU:$CADC PRG:0ADC ??
sta Zp_44 ; CPU:$CADE PRG:0ADE ??
iny ; CPU:$CAE0 PRG:0AE0 ??
lda (Zp_3A),y ; CPU:$CAE2 PRG:0AE2 ??
tax ; CPU:$CAE4 PRG:0AE4 ??
ldy Zp_44 ; CPU:$CAE6 PRG:0AE6 ??
jsr ProcessGameState_C741 ; CPU:$CAE8 PRG:0AE8 ??
jsr ProcessGameState_CE86 ; CPU:$CAEA PRG:0AEA ??
inc Zp_3C ; CPU:$CAEC PRG:0AEC ??
lda Zp_3C ; CPU:$CAEE PRG:0AEE ??
cmp #$08 ; CPU:$CAF0 PRG:0AF0 ??
bne Flow_CBCD ; CPU:$CAF2 PRG:0AF2 ??
rts ; CPU:$CAF4 PRG:0AF4 ??
.byte $FA,$CB,$03,$CC,$0C,$CC,$15,$CC,$1C,$CC,$35,$CC,$4D,$CC,$65,$CC ; PRG $0BEA | CPU $CBEA ; CPU:$CAF6 PRG:0AF6 FA CB 03 CC 0C CC 15 CC 1C CC 35 CC 4D CC 65 CC
.byte $FD,$CB,$06,$20,$E8,$03,$C3,$C4,$C5,$06,$CC,$06,$20,$F4,$03,$C6 ; PRG $0BFA | CPU $CBFA ; CPU:$CB06 PRG:0B06 FD CB 06 20 E8 03 C3 C4 C5 06 CC 06 20 F4 03 C6
.byte $C7,$C8,$0F,$CC,$06,$21,$08,$03,$C9,$CA,$CB,$18,$CC,$04,$21,$15 ; PRG $0C0A | CPU $CC0A ; CPU:$CB16 PRG:0B16 C7 C8 0F CC 06 21 08 03 C9 CA CB 18 CC 04 21 15
.byte $01,$CC,$1F,$CC,$16,$21,$28,$13,$CD,$CE,$CF,$D0,$D1,$D2,$D3,$D4 ; PRG $0C1A | CPU $CC1A ; CPU:$CB26 PRG:0B26 01 CC 1F CC 16 21 28 13 CD CE CF D0 D1 D2 D3 D4
.byte $D5,$D6,$D1,$D2,$D7,$D8,$D9,$DA,$D5,$D6,$B9,$38,$CC,$15,$21,$48 ; PRG $0C2A | CPU $CC2A ; CPU:$CB36 PRG:0B36 D5 D6 D1 D2 D7 D8 D9 DA D5 D6 B9 38 CC 15 21 48
.byte $12,$DB,$DC,$DD,$DE,$DF,$00,$E0,$E1,$E2,$E3,$DF,$00,$E4,$E5,$E6 ; PRG $0C3A | CPU $CC3A ; CPU:$CB46 PRG:0B46 12 DB DC DD DE DF 00 E0 E1 E2 E3 DF 00 E4 E5 E6
.byte $E7,$E2,$E3,$50,$CC,$15,$21,$68,$12,$E8,$E8,$E8,$E8,$E8,$E8,$E9 ; PRG $0C4A | CPU $CC4A ; CPU:$CB56 PRG:0B56 E7 E2 E3 50 CC 15 21 68 12 E8 E8 E8 E8 E8 E8 E9
.byte $EA,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$E8,$68,$CC,$15,$23,$C9 ; PRG $0C5A | CPU $CC5A ; CPU:$CB66 PRG:0B66 EA E8 E8 E8 E8 E8 E8 E8 E8 E8 E8 68 CC 15 23 C9
.byte $12,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $0C6A | CPU $CC6A ; CPU:$CB76 PRG:0B76 12 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF,$FF,$EF ; PRG $0C7A | CPU $CC7A ; CPU:$CB86 PRG:0B86 FF FF EF
; -----------------------------------------------------------------------------
; Global purpose: Transform Value CC7 D.
; Local behavior: Executes the decoded transform value cc7 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_CC7D:
jsr ProcessGameState_CEBE ; CPU:$CB89 PRG:0B89 ??
dex ; CPU:$CB8B PRG:0B8B ??
txa ; CPU:$CB8D PRG:0B8D ??
asl a ; CPU:$CB8F PRG:0B8F ??
ldx #$09 ; CPU:$CB91 PRG:0B91 ??
ldy #$CD ; CPU:$CB93 PRG:0B93 ??
stx Zp_32 ; CPU:$CB95 PRG:0B95 ??
sty Zp_33 ; CPU:$CB97 PRG:0B97 ??
jmp Flow_CC9F ; CPU:$CB99 PRG:0B99 ??
; -----------------------------------------------------------------------------
; Global purpose: Transform Value CC8 E.
; Local behavior: Executes the decoded transform value cc8 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_CC8E:
jsr ProcessGameState_CEBE ; CPU:$CB9B PRG:0B9B ??
dex ; CPU:$CB9D PRG:0B9D ??
txa ; CPU:$CB9F PRG:0B9F ??
asl a ; CPU:$CBA1 PRG:0BA1 ??
ldx #$3B ; CPU:$CBA3 PRG:0BA3 ??
ldy #$F2 ; CPU:$CBA5 PRG:0BA5 ??
stx Zp_32 ; CPU:$CBA7 PRG:0BA7 ??
sty Zp_33 ; CPU:$CBA9 PRG:0BA9 ??
jmp Flow_CC9F ; CPU:$CBAB PRG:0BAB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CC9 F.
; Local behavior: Executes the decoded flow cc9 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CC9F:
jsr WaitForPpuVblank ; CPU:$CBAD PRG:0BAD ??
ldy #$30 ; CPU:$CBAF PRG:0BAF ??
sty PPUCTRL ; CPU:$CBB1 PRG:0BB1 ??
tay ; CPU:$CBB3 PRG:0BB3 ??
lda (Zp_32),y ; CPU:$CBB5 PRG:0BB5 ??
sta Zp_34 ; CPU:$CBB7 PRG:0BB7 ??
iny ; CPU:$CBB9 PRG:0BB9 ??
lda (Zp_32),y ; CPU:$CBBB PRG:0BBB ??
sta Zp_35 ; CPU:$CBBD PRG:0BBD ??
ldy #$00 ; CPU:$CBBF PRG:0BBF ??
lda (Zp_34),y ; CPU:$CBC1 PRG:0BC1 ??
cmp #$FF ; CPU:$CBC3 PRG:0BC3 ??
beq Flow_CCE0 ; CPU:$CBC5 PRG:0BC5 ??
sta Zp_44 ; CPU:$CBC7 PRG:0BC7 ??
and #$0F ; CPU:$CBC9 PRG:0BC9 ??
sty Zp_42 ; CPU:$CBCB PRG:0BCB ??
sta Zp_36 ; CPU:$CBCD PRG:0BCD ??
asl a ; CPU:$CBCF PRG:0BCF ??
tax ; CPU:$CBD1 PRG:0BD1 ??
lda LookupTable_CCE9,x ; CPU:$CBD3 PRG:0BD3 ??
sta Zp_36 ; CPU:$CBD5 PRG:0BD5 ??
inx ; CPU:$CBD7 PRG:0BD7 ??
lda LookupTable_CCE9,x ; CPU:$CBD9 PRG:0BD9 ??
sta Zp_37 ; CPU:$CBDB PRG:0BDB ??
ldx #$00 ; CPU:$CBDD PRG:0BDD ??
ldy #$05 ; CPU:$CBDF PRG:0BDF ??
stx Zp_32 ; CPU:$CBE1 PRG:0BE1 ??
sty Zp_33 ; CPU:$CBE3 PRG:0BE3 ??
jsr ProcessGameState_CE25 ; CPU:$CBE5 PRG:0BE5 ??
lda Zp_44 ; CPU:$CBE7 PRG:0BE7 ??
ldy Zp_42 ; CPU:$CBE9 PRG:0BE9 ??
jmp (Zp_36) ; CPU:$CBEB PRG:0BEB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CCE0.
; Local behavior: Executes the decoded flow cce0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CCE0:
jsr ProcessGameState_CEC8 ; CPU:$CBED PRG:0BED ??
lda #$B0 ; CPU:$CBEF PRG:0BEF ??
sta PPUCTRL ; CPU:$CBF1 PRG:0BF1 ??
rts ; CPU:$CBF3 PRG:0BF3 ??
LookupTable_CCE9:
.byte $02,$CE,$95,$CD,$BD,$CD,$A5,$CD,$9D,$CD,$B5,$CD,$AD,$CD,$15,$CD ; PRG $0CE9 | CPU $CCE9 ; CPU:$CBF5 PRG:0BF5 02 CE 95 CD BD CD A5 CD 9D CD B5 CD AD CD 15 CD
.byte $2B,$CD,$3F,$CD,$52,$CD,$6F,$CD,$02,$CE,$02,$CE,$02,$CE,$C5,$CD ; PRG $0CF9 | CPU $CCF9 ; CPU:$CC05 PRG:0C05 2B CD 3F CD 52 CD 6F CD 02 CE 02 CE 02 CE C5 CD
.byte $41,$EB,$FC,$EB,$DB,$EC,$ED,$ED,$D2,$EE,$90,$EF,$29,$F0,$4A,$4A ; PRG $0D09 | CPU $CD09 ; CPU:$CC15 PRG:0C15 41 EB FC EB DB EC ED ED D2 EE 90 EF 29 F0 4A 4A
.byte $4A,$8D,$02,$05,$AA,$A0,$03,$A9,$A1,$91,$32,$C8,$CA,$D0,$FA,$4C ; PRG $0D19 | CPU $CD19 ; CPU:$CC25 PRG:0C25 4A 8D 02 05 AA A0 03 A9 A1 91 32 C8 CA D0 FA 4C
.byte $FF,$CD,$A9,$04,$8D,$02,$05,$A2,$04,$A9,$A1,$A0,$03,$91,$32,$C8 ; PRG $0D29 | CPU $CD29 ; CPU:$CC35 PRG:0C35 FF CD A9 04 8D 02 05 A2 04 A9 A1 A0 03 91 32 C8
.byte $CA,$D0,$FA,$4C,$FF,$CD,$A9,$02,$8D,$02,$05,$A0,$03,$A9,$A3,$91 ; PRG $0D39 | CPU $CD39 ; CPU:$CC45 PRG:0C45 CA D0 FA 4C FF CD A9 02 8D 02 05 A0 03 A9 A3 91
.byte $32,$C8,$A9,$A4,$91,$32,$4C,$FF,$CD,$A9,$04,$8D,$02,$05,$A0,$03 ; PRG $0D49 | CPU $CD49 ; CPU:$CC55 PRG:0C55 32 C8 A9 A4 91 32 4C FF CD A9 04 8D 02 05 A0 03
.byte $A9,$A1,$91,$32,$C8,$A9,$A3,$91,$32,$C8,$A9,$A4,$91,$32,$C8,$A9 ; PRG $0D59 | CPU $CD59 ; CPU:$CC65 PRG:0C65 A9 A1 91 32 C8 A9 A3 91 32 C8 A9 A4 91 32 C8 A9
.byte $A1,$91,$32,$4C,$FF,$CD,$29,$F0,$4A,$4A,$4A,$4A,$AA,$A9,$02,$8D ; PRG $0D69 | CPU $CD69 ; CPU:$CC75 PRG:0C75 A1 91 32 4C FF CD 29 F0 4A 4A 4A 4A AA A9 02 8D
.byte $02,$05,$A0,$03,$A9,$9F,$91,$32,$C8,$A9,$A0,$91,$32,$20,$97,$CE ; PRG $0D79 | CPU $CD79 ; CPU:$CC85 PRG:0C85 02 05 A0 03 A9 9F 91 32 C8 A9 A0 91 32 20 97 CE
.byte $18,$A9,$20,$20,$73,$CE,$CA,$D0,$E4,$4C,$02,$CE,$A9,$4A,$20,$11 ; PRG $0D89 | CPU $CD89 ; CPU:$CC95 PRG:0C95 18 A9 20 20 73 CE CA D0 E4 4C 02 CE A9 4A 20 11
.byte $CE,$4C,$FF,$CD,$A9,$5A,$20,$11,$CE,$4C,$FF,$CD,$A9,$56,$20,$11 ; PRG $0D99 | CPU $CD99 ; CPU:$CCA5 PRG:0CA5 CE 4C FF CD A9 5A 20 11 CE 4C FF CD A9 56 20 11
.byte $CE,$4C,$FF,$CD,$A9,$62,$20,$11,$CE,$4C,$FF,$CD,$A9,$5E,$20,$11 ; PRG $0DA9 | CPU $CDA9 ; CPU:$CCB5 PRG:0CB5 CE 4C FF CD A9 62 20 11 CE 4C FF CD A9 5E 20 11
.byte $CE,$4C,$FF,$CD,$A9,$4E,$20,$11,$CE,$4C,$FF,$CD,$A9,$01,$8D,$02 ; PRG $0DB9 | CPU $CDB9 ; CPU:$CCC5 PRG:0CC5 CE 4C FF CD A9 4E 20 11 CE 4C FF CD A9 01 8D 02
.byte $05,$A0,$03,$A9,$96,$91,$32,$20,$97,$CE,$18,$A9,$05,$20,$73,$CE ; PRG $0DC9 | CPU $CDC9 ; CPU:$CCD5 PRG:0CD5 05 A0 03 A9 96 91 32 20 97 CE 18 A9 05 20 73 CE
.byte $A9,$98,$91,$32,$20,$97,$CE,$A9,$1B,$20,$73,$CE,$A9,$06,$8D,$02 ; PRG $0DD9 | CPU $CDD9 ; CPU:$CCE5 PRG:0CE5 A9 98 91 32 20 97 CE A9 1B 20 73 CE A9 06 8D 02
.byte $05,$A0,$03,$A9,$97,$91,$32,$C8,$A2,$04,$A9,$9E,$91,$32,$C8,$CA ; PRG $0DE9 | CPU $CDE9 ; CPU:$CCF5 PRG:0CF5 05 A0 03 A9 97 91 32 C8 A2 04 A9 9E 91 32 C8 CA
.byte $D0,$FA,$A9,$99,$91,$32,$20,$97,$CE,$A4,$42,$C8,$C8,$C8,$84,$42 ; PRG $0DF9 | CPU $CDF9 ; CPU:$CD05 PRG:0D05 D0 FA A9 99 91 32 20 97 CE A4 42 C8 C8 C8 84 42
.byte $D0,$03,$20,$6B,$CE,$4C,$B3,$CC,$A0,$03,$A2,$04,$8E,$02,$05,$85 ; PRG $0E09 | CPU $CE09 ; CPU:$CD15 PRG:0D15 D0 03 20 6B CE 4C B3 CC A0 03 A2 04 8E 02 05 85
.byte $38,$A5,$38,$91,$32,$C8,$E6,$38,$CA,$D0,$F6,$60 ; PRG $0E19 | CPU $CE19 ; CPU:$CD25 PRG:0D25 38 A5 38 91 32 C8 E6 38 CA D0 F6 60
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CE25.
; Local behavior: Executes the decoded process game state ce25 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CE25:
sty Zp_38 ; CPU:$CD31 PRG:0D31 ??
ldy Zp_42 ; CPU:$CD33 PRG:0D33 ??
lda (Zp_34),y ; CPU:$CD35 PRG:0D35 ??
sta Zp_3C ; CPU:$CD37 PRG:0D37 ??
lda #$00 ; CPU:$CD39 PRG:0D39 ??
sta Ram_0500 ; CPU:$CD3B PRG:0D3B ??
iny ; CPU:$CD3D PRG:0D3D ??
bne Flow_CE38 ; CPU:$CD3F PRG:0D3F ??
jsr ProcessGameState_CE6B ; CPU:$CD41 PRG:0D41 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CE38.
; Local behavior: Executes the decoded flow ce38 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CE38:
lda (Zp_34),y ; CPU:$CD43 PRG:0D43 ??
sta Zp_39 ; CPU:$CD45 PRG:0D45 ??
iny ; CPU:$CD47 PRG:0D47 ??
bne Flow_CE42 ; CPU:$CD49 PRG:0D49 ??
jsr ProcessGameState_CE6B ; CPU:$CD4B PRG:0D4B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CE42.
; Local behavior: Executes the decoded flow ce42 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CE42:
lda (Zp_34),y ; CPU:$CD4D PRG:0D4D ??
sta Ram_0501 ; CPU:$CD4F PRG:0D4F ??
asl Ram_0501 ; CPU:$CD51 PRG:0D51 ??
rol Ram_0500 ; CPU:$CD53 PRG:0D53 ??
asl Ram_0501 ; CPU:$CD55 PRG:0D55 ??
rol Ram_0500 ; CPU:$CD57 PRG:0D57 ??
lda Zp_3C ; CPU:$CD59 PRG:0D59 ??
cmp #$0F ; CPU:$CD5B PRG:0D5B ??
bne Flow_CE60 ; CPU:$CD5D PRG:0D5D ??
lda Zp_39 ; CPU:$CD5F PRG:0D5F ??
sec ; CPU:$CD61 PRG:0D61 ??
sbc #$08 ; CPU:$CD63 PRG:0D63 ??
bne Flow_CE62 ; CPU:$CD65 PRG:0D65 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CE60.
; Local behavior: Executes the decoded flow ce60 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CE60:
lda Zp_39 ; CPU:$CD67 PRG:0D67 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CE62.
; Local behavior: Executes the decoded flow ce62 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CE62:
lsr a ; CPU:$CD69 PRG:0D69 ??
lsr a ; CPU:$CD6B PRG:0D6B ??
lsr a ; CPU:$CD6D PRG:0D6D ??
jsr ProcessGameState_DA80 ; CPU:$CD6F PRG:0D6F ??
ldy Zp_38 ; CPU:$CD71 PRG:0D71 ??
rts ; CPU:$CD73 PRG:0D73 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CE6 B.
; Local behavior: Executes the decoded process game state ce6 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CE6B:
clc ; CPU:$CD75 PRG:0D75 ??
lda #$01 ; CPU:$CD77 PRG:0D77 ??
adc Zp_35 ; CPU:$CD79 PRG:0D79 ??
sta Zp_35 ; CPU:$CD7B PRG:0D7B ??
rts ; CPU:$CD7D PRG:0D7D ??
.byte $84,$36,$A0,$01,$18,$71,$32,$91,$32,$88,$A9,$00,$71,$32,$91,$32 ; PRG $0E73 | CPU $CE73 ; CPU:$CD7F PRG:0D7F 84 36 A0 01 18 71 32 91 32 88 A9 00 71 32 91 32
.byte $A4,$36,$60 ; PRG $0E83 | CPU $CE83 ; CPU:$CD8F PRG:0D8F A4 36 60
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CE86.
; Local behavior: Executes the decoded process game state ce86 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CE86:
stx Zp_36 ; CPU:$CD92 PRG:0D92 ??
sty Zp_37 ; CPU:$CD94 PRG:0D94 ??
lda #$FF ; CPU:$CD96 PRG:0D96 ??
sta StageCompleteFlag ; CPU:$CD98 PRG:0D98 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CE8 E.
; Local behavior: Executes the decoded flow ce8 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CE8E:
lda StageCompleteFlag ; CPU:$CD9A PRG:0D9A ??
bne Flow_CE8E ; CPU:$CD9C PRG:0D9C ??
ldx Zp_36 ; CPU:$CD9E PRG:0D9E ??
ldy Zp_37 ; CPU:$CDA0 PRG:0DA0 ??
rts ; CPU:$CDA2 PRG:0DA2 ??
.byte $86,$36,$84,$37,$20,$A3,$CE,$A6,$36,$A4,$37,$60 ; PRG $0E97 | CPU $CE97 ; CPU:$CDA4 PRG:0DA4 86 36 84 37 20 A3 CE A6 36 A4 37 60
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CEA3.
; Local behavior: Executes the decoded process game state cea3 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CEA3:
ldx Ram_0500 ; CPU:$CDB0 PRG:0DB0 ??
ldy Ram_0501 ; CPU:$CDB2 PRG:0DB2 ??
jsr SetPpuAddress ; CPU:$CDB4 PRG:0DB4 ??
ldy #$03 ; CPU:$CDB6 PRG:0DB6 ??
ldx Ram_0502 ; CPU:$CDB8 PRG:0DB8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CEB1.
; Local behavior: Executes the decoded flow ceb1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CEB1:
lda Ram_0500,y ; CPU:$CDBA PRG:0DBA ??
sta PPUDATA ; CPU:$CDBC PRG:0DBC ??
iny ; CPU:$CDBE PRG:0DBE ??
dex ; CPU:$CDC0 PRG:0DC0 ??
bne Flow_CEB1 ; CPU:$CDC2 PRG:0DC2 ??
jmp SetDefaultScroll ; CPU:$CDC4 PRG:0DC4 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CEBE.
; Local behavior: Executes the decoded process game state cebe sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CEBE:
ldx Zp_1B ; CPU:$CDC6 PRG:0DC6 ??
lda CurrentPlayerIndex ; CPU:$CDC8 PRG:0DC8 ??
beq Flow_CEC6 ; CPU:$CDCA PRG:0DCA ??
ldx Zp_23 ; CPU:$CDCC PRG:0DCC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CEC6.
; Local behavior: Executes the decoded flow cec6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CEC6:
txa ; CPU:$CDCE PRG:0DCE ??
rts ; CPU:$CDD0 PRG:0DD0 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CEC8.
; Local behavior: Executes the decoded process game state cec8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CEC8:
lda #$00 ; CPU:$CDD2 PRG:0DD2 ??
ldx #$CE ; CPU:$CDD4 PRG:0DD4 ??
ldy #$DA ; CPU:$CDD6 PRG:0DD6 ??
jsr LoadPalette ; CPU:$CDD8 PRG:0DD8 ??
lda #$01 ; CPU:$CDDA PRG:0DDA ??
ldx #$CE ; CPU:$CDDC PRG:0DDC ??
ldy #$EA ; CPU:$CDDE PRG:0DDE ??
jmp LoadPalette ; CPU:$CDE0 PRG:0DE0 ??
.byte $0F,$21,$27,$17,$0F,$30,$35,$28,$0F,$30,$27,$07,$0F,$2A,$27,$17 ; PRG $0EDA | CPU $CEDA ; CPU:$CDE2 PRG:0DE2 0F 21 27 17 0F 30 35 28 0F 30 27 07 0F 2A 27 17
.byte $0F,$16,$30,$27,$0F,$20,$26,$28,$0F,$2A,$30,$16,$0F,$2A,$27,$17 ; PRG $0EEA | CPU $CEEA ; CPU:$CDF2 PRG:0DF2 0F 16 30 27 0F 20 26 28 0F 2A 30 16 0F 2A 27 17
.byte $0A,$86,$43,$84,$42,$A2,$08,$86,$3C,$A2,$64,$A0,$CF ; PRG $0EFA | CPU $CEFA ; CPU:$CE02 PRG:0E02 0A 86 43 84 42 A2 08 86 3C A2 64 A0 CF
; -----------------------------------------------------------------------------
; Global purpose: Flow CF07.
; Local behavior: Executes the decoded flow cf07 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CF07:
stx Zp_3A ; CPU:$CE0F PRG:0E0F ??
sty Zp_3B ; CPU:$CE11 PRG:0E11 ??
tay ; CPU:$CE13 PRG:0E13 ??
lda (Zp_3A),y ; CPU:$CE15 PRG:0E15 ??
sta Zp_44 ; CPU:$CE17 PRG:0E17 ??
iny ; CPU:$CE19 PRG:0E19 ??
lda (Zp_3A),y ; CPU:$CE1B PRG:0E1B ??
tax ; CPU:$CE1D PRG:0E1D ??
ldy Zp_44 ; CPU:$CE1F PRG:0E1F ??
jsr ProcessGameState_C741 ; CPU:$CE21 PRG:0E21 ??
jsr ProcessGameState_CE86 ; CPU:$CE23 PRG:0E23 ??
jsr ProcessGameState_CF54 ; CPU:$CE25 PRG:0E25 ??
jsr ProcessGameState_C741 ; CPU:$CE27 PRG:0E27 ??
jsr ProcessGameState_CE86 ; CPU:$CE29 PRG:0E29 ??
lda Zp_3C ; CPU:$CE2B PRG:0E2B ??
cmp #$08 ; CPU:$CE2D PRG:0E2D ??
bne Flow_CF3F ; CPU:$CE2F PRG:0E2F ??
jsr ProcessGameState_CF54 ; CPU:$CE31 PRG:0E31 ??
jsr ProcessGameState_C741 ; CPU:$CE33 PRG:0E33 ??
jsr ProcessGameState_CE86 ; CPU:$CE35 PRG:0E35 ??
dec Zp_3C ; CPU:$CE37 PRG:0E37 ??
jsr ProcessGameState_CF54 ; CPU:$CE39 PRG:0E39 ??
jsr ProcessGameState_C741 ; CPU:$CE3B PRG:0E3B ??
jsr ProcessGameState_CE86 ; CPU:$CE3D PRG:0E3D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow CF3 F.
; Local behavior: Executes the decoded flow cf3 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_CF3F:
ldy Zp_42 ; CPU:$CE3F PRG:0E3F ??
ldx Zp_43 ; CPU:$CE41 PRG:0E41 ??
rts ; CPU:$CE43 PRG:0E43 ??
; -----------------------------------------------------------------------------
; Global purpose: Transform Value CF44.
; Local behavior: Executes the decoded transform value cf44 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_CF44:
asl a ; CPU:$CE45 PRG:0E45 ??
stx Zp_43 ; CPU:$CE47 PRG:0E47 ??
sty Zp_42 ; CPU:$CE49 PRG:0E49 ??
ldx #$08 ; CPU:$CE4B PRG:0E4B ??
stx Zp_3C ; CPU:$CE4D PRG:0E4D ??
ldx #$70 ; CPU:$CE4F PRG:0E4F ??
ldy #$CF ; CPU:$CE51 PRG:0E51 ??
jmp Flow_CF07 ; CPU:$CE53 PRG:0E53 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State CF54.
; Local behavior: Executes the decoded process game state cf54 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_CF54:
sty Zp_32 ; CPU:$CE55 PRG:0E55 ??
stx Zp_33 ; CPU:$CE57 PRG:0E57 ??
clc ; CPU:$CE59 PRG:0E59 ??
lda Zp_3C ; CPU:$CE5B PRG:0E5B ??
adc Zp_32 ; CPU:$CE5D PRG:0E5D ??
tay ; CPU:$CE5F PRG:0E5F ??
lda #$00 ; CPU:$CE61 PRG:0E61 ??
adc Zp_33 ; CPU:$CE63 PRG:0E63 ??
tax ; CPU:$CE65 PRG:0E65 ??
rts ; CPU:$CE67 PRG:0E67 ??
.byte $7C,$CF,$9A,$CF,$B8,$CF,$D6,$CF,$F4,$CF,$12,$D0,$30,$D0,$4E,$D0 ; PRG $0F64 | CPU $CF64 ; CPU:$CE69 PRG:0E69 7C CF 9A CF B8 CF D6 CF F4 CF 12 D0 30 D0 4E D0
.byte $6C,$D0,$8A,$D0,$A8,$D0,$C6,$D0,$7F,$CF,$05,$21,$70,$02,$42,$44 ; PRG $0F74 | CPU $CF74 ; CPU:$CE79 PRG:0E79 6C D0 8A D0 A8 D0 C6 D0 7F CF 05 21 70 02 42 44
.byte $87,$CF,$05,$21,$90,$02,$43,$45,$8F,$CF,$04,$23,$D4,$01,$EC,$96 ; PRG $0F84 | CPU $CF84 ; CPU:$CE89 PRG:0E89 87 CF 05 21 90 02 43 45 8F CF 04 23 D4 01 EC 96
.byte $CF,$04,$23,$DC,$01,$CE,$9D,$CF,$05,$21,$F0,$02,$46,$48,$A5,$CF ; PRG $0F94 | CPU $CF94 ; CPU:$CE99 PRG:0E99 CF 04 23 DC 01 CE 9D CF 05 21 F0 02 46 48 A5 CF
.byte $05,$22,$10,$02,$47,$49,$AD,$CF,$04,$23,$DC,$01,$EC,$B4,$CF,$04 ; PRG $0FA4 | CPU $CFA4 ; CPU:$CEA9 PRG:0EA9 05 22 10 02 47 49 AD CF 04 23 DC 01 EC B4 CF 04
.byte $23,$E4,$01,$CE,$BB,$CF,$05,$21,$D0,$02,$3E,$40,$C3,$CF,$05,$21 ; PRG $0FB4 | CPU $CFB4 ; CPU:$CEB9 PRG:0EB9 23 E4 01 CE BB CF 05 21 D0 02 3E 40 C3 CF 05 21
.byte $F0,$02,$3F,$41,$CB,$CF,$04,$23,$DC,$01,$EC,$D2,$CF,$04,$23,$E4 ; PRG $0FC4 | CPU $CFC4 ; CPU:$CEC9 PRG:0EC9 F0 02 3F 41 CB CF 04 23 DC 01 EC D2 CF 04 23 E4
.byte $01,$CC,$D9,$CF,$05,$20,$B0,$02,$42,$44,$E1,$CF,$05,$20,$D0,$02 ; PRG $0FD4 | CPU $CFD4 ; CPU:$CED9 PRG:0ED9 01 CC D9 CF 05 20 B0 02 42 44 E1 CF 05 20 D0 02
.byte $43,$45,$E9,$CF,$04,$23,$CC,$01,$EE,$F0,$CF,$04,$23,$D4,$01,$CC ; PRG $0FE4 | CPU $CFE4 ; CPU:$CEE9 PRG:0EE9 43 45 E9 CF 04 23 CC 01 EE F0 CF 04 23 D4 01 CC
.byte $F7,$CF,$05,$21,$16,$02,$46,$48,$FF,$CF,$05,$21,$36,$02,$47,$49 ; PRG $0FF4 | CPU $CFF4 ; CPU:$CEF9 PRG:0EF9 F7 CF 05 21 16 02 46 48 FF CF 05 21 36 02 47 49
.byte $07,$D0,$04,$23,$D5,$01,$3B,$0E,$D0,$04,$23,$DD,$01,$33,$15,$D0 ; PRG $1004 | CPU $D004 ; CPU:$CF09 PRG:0F09 07 D0 04 23 D5 01 3B 0E D0 04 23 DD 01 33 15 D0
.byte $05,$21,$B0,$02,$3E,$40,$1D,$D0,$05,$21,$D0,$02,$3F,$41,$25,$D0 ; PRG $1014 | CPU $D014 ; CPU:$CF19 PRG:0F19 05 21 B0 02 3E 40 1D D0 05 21 D0 02 3F 41 25 D0
.byte $04,$23,$DC,$01,$EE,$2C,$D0,$04,$23,$E4,$01,$CC,$33,$D0,$05,$21 ; PRG $1024 | CPU $D024 ; CPU:$CF29 PRG:0F29 04 23 DC 01 EE 2C D0 04 23 E4 01 CC 33 D0 05 21
.byte $70,$02,$A3,$A4,$3B,$D0,$05,$21,$90,$02,$9F,$A0,$43,$D0,$04,$23 ; PRG $1034 | CPU $D034 ; CPU:$CF39 PRG:0F39 70 02 A3 A4 3B D0 05 21 90 02 9F A0 43 D0 04 23
.byte $D4,$01,$CC,$4A,$D0,$04,$23,$DC,$01,$CC,$51,$D0,$05,$21,$F0,$02 ; PRG $1044 | CPU $D044 ; CPU:$CF49 PRG:0F49 D4 01 CC 4A D0 04 23 DC 01 CC 51 D0 05 21 F0 02
.byte $A3,$A4,$59,$D0,$05,$22,$10,$02,$9F,$A0,$61,$D0,$04,$23,$DC,$01 ; PRG $1054 | CPU $D054 ; CPU:$CF59 PRG:0F59 A3 A4 59 D0 05 22 10 02 9F A0 61 D0 04 23 DC 01
.byte $CC,$68,$D0,$04,$23,$E4,$01,$CC,$6F,$D0,$05,$21,$D0,$02,$9F,$A0 ; PRG $1064 | CPU $D064 ; CPU:$CF69 PRG:0F69 CC 68 D0 04 23 E4 01 CC 6F D0 05 21 D0 02 9F A0
.byte $77,$D0,$05,$21,$F0,$02,$A3,$A4,$7F,$D0,$04,$23,$DC,$01,$CC,$86 ; PRG $1074 | CPU $D074 ; CPU:$CF79 PRG:0F79 77 D0 05 21 F0 02 A3 A4 7F D0 04 23 DC 01 CC 86
.byte $D0,$04,$23,$E4,$01,$CC,$8D,$D0,$05,$20,$B0,$02,$A1,$A1,$95,$D0 ; PRG $1084 | CPU $D084 ; CPU:$CF89 PRG:0F89 D0 04 23 E4 01 CC 8D D0 05 20 B0 02 A1 A1 95 D0
.byte $05,$20,$D0,$02,$9F,$A0,$9D,$D0,$04,$23,$CC,$01,$CC,$A4,$D0,$04 ; PRG $1094 | CPU $D094 ; CPU:$CF99 PRG:0F99 05 20 D0 02 9F A0 9D D0 04 23 CC 01 CC A4 D0 04
.byte $23,$D4,$01,$CC,$AB,$D0,$05,$21,$16,$02,$9F,$A0,$B3,$D0,$05,$21 ; PRG $10A4 | CPU $D0A4 ; CPU:$CFA9 PRG:0FA9 23 D4 01 CC AB D0 05 21 16 02 9F A0 B3 D0 05 21
.byte $36,$02,$A3,$A4,$BB,$D0,$04,$23,$D5,$01,$33,$C2,$D0,$04,$23,$DD ; PRG $10B4 | CPU $D0B4 ; CPU:$CFB9 PRG:0FB9 36 02 A3 A4 BB D0 04 23 D5 01 33 C2 D0 04 23 DD
.byte $01,$33,$C9,$D0,$05,$21,$B0,$02,$A3,$A4,$D1,$D0,$05,$21,$D0,$02 ; PRG $10C4 | CPU $D0C4 ; CPU:$CFC9 PRG:0FC9 01 33 C9 D0 05 21 B0 02 A3 A4 D1 D0 05 21 D0 02
.byte $9F,$A0,$D9,$D0,$04,$23,$DC,$01,$CC,$E0,$D0,$04,$23,$E4,$01,$CC ; PRG $10D4 | CPU $D0D4 ; CPU:$CFD9 PRG:0FD9 9F A0 D9 D0 04 23 DC 01 CC E0 D0 04 23 E4 01 CC
; -----------------------------------------------------------------------------
; Global purpose: Transform Value D0 E4.
; Local behavior: Executes the decoded transform value d0 e4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_D0E4:
stx Zp_38 ; CPU:$CFE9 PRG:0FE9 ??
sty Zp_39 ; CPU:$CFEB PRG:0FEB ??
jsr ProcessGameState_CEBE ; CPU:$CFED PRG:0FED ??
asl a ; CPU:$CFEF PRG:0FEF ??
tay ; CPU:$CFF1 PRG:0FF1 ??
lda LookupTable_D11F,y ; CPU:$CFF3 PRG:0FF3 ??
sta Zp_32 ; CPU:$CFF5 PRG:0FF5 ??
iny ; CPU:$CFF7 PRG:0FF7 ??
lda LookupTable_D11F,y ; CPU:$CFF9 PRG:0FF9 ??
sta Zp_33 ; CPU:$CFFB PRG:0FFB ??
ldy #$00 ; CPU:$CFFD PRG:0FFD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D0 FA.
; Local behavior: Executes the decoded flow d0 fa sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D0FA:
lda (Zp_32),y ; CPU:$CFFF PRG:0FFF ??
cmp #$FF ; CPU:$D001 PRG:1001 ??
beq Flow_D11C ; CPU:$D003 PRG:1003 ??
cmp Ram_0501 ; CPU:$D005 PRG:1005 ??
beq Flow_D10A ; CPU:$D007 PRG:1007 ??
iny ; CPU:$D009 PRG:1009 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D106.
; Local behavior: Executes the decoded flow d106 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D106:
iny ; CPU:$D00B PRG:100B ??
jmp Flow_D0FA ; CPU:$D00D PRG:100D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D10 A.
; Local behavior: Executes the decoded flow d10 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D10A:
iny ; CPU:$D00F PRG:100F ??
lda (Zp_32),y ; CPU:$D011 PRG:1011 ??
cmp Ram_0500 ; CPU:$D013 PRG:1013 ??
bne Flow_D106 ; CPU:$D015 PRG:1015 ??
lda #$A3 ; CPU:$D017 PRG:1017 ??
sta Ram_0504 ; CPU:$D019 PRG:1019 ??
lda #$A4 ; CPU:$D01B PRG:101B ??
sta Ram_0505 ; CPU:$D01D PRG:101D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D11 C.
; Local behavior: Executes the decoded flow d11 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D11C:
ldy Zp_39 ; CPU:$D01F PRG:101F ??
ldx Zp_38 ; CPU:$D021 PRG:1021 ??
rts ; CPU:$D023 PRG:1023 ??
.byte $2D,$D1,$3A,$D1,$5B,$D1,$68,$D1,$81,$D1,$82,$D1,$A6,$21,$66,$22 ; PRG $1121 | CPU $D121 ; CPU:$D025 PRG:1025 2D D1 3A D1 5B D1 68 D1 81 D1 82 D1 A6 21 66 22
.byte $6C,$21,$F2,$21,$38,$22,$F8,$22,$FF,$E6,$20,$26,$21,$A6,$21,$EC ; PRG $1131 | CPU $D131 ; CPU:$D035 PRG:1035 6C 21 F2 21 38 22 F8 22 FF E6 20 26 21 A6 21 EC
.byte $20,$6C,$21,$AC,$21,$2C,$22,$AC,$22,$32,$21,$B2,$21,$F2,$21,$72 ; PRG $1141 | CPU $D141 ; CPU:$D045 PRG:1045 20 6C 21 AC 21 2C 22 AC 22 32 21 B2 21 F2 21 72
.byte $22,$B2,$22,$38,$21,$78,$21,$B8,$21,$FF,$A6,$22,$E6,$22,$EC,$20 ; PRG $1151 | CPU $D151 ; CPU:$D055 PRG:1055 22 B2 22 38 21 78 21 B8 21 FF A6 22 E6 22 EC 20
.byte $6C,$21,$EC,$21,$F2,$20,$FF,$26,$21,$A6,$21,$26,$22,$2C,$21,$AC ; PRG $1161 | CPU $D161 ; CPU:$D065 PRG:1065 6C 21 EC 21 F2 20 FF 26 21 A6 21 26 22 2C 21 AC
.byte $21,$2C,$22,$32,$21,$B2,$21,$32,$22,$38,$21,$B8,$21,$38,$22,$FF ; PRG $1171 | CPU $D171 ; CPU:$D075 PRG:1075 21 2C 22 32 21 B2 21 32 22 38 21 B8 21 38 22 FF
.byte $FF,$2C,$21,$AC,$21,$AC,$22,$72,$21,$72,$22,$B2,$22,$FF ; PRG $1181 | CPU $D181 ; CPU:$D085 PRG:1085 FF 2C 21 AC 21 AC 22 72 21 72 22 B2 22 FF
; -----------------------------------------------------------------------------
; Global purpose: Transform Value D18 F.
; Local behavior: Executes the decoded transform value d18 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_D18F:
stx Zp_43 ; CPU:$D093 PRG:1093 ??
sty Zp_42 ; CPU:$D095 PRG:1095 ??
ldx #$A1 ; CPU:$D097 PRG:1097 ??
ldy #$D1 ; CPU:$D099 PRG:1099 ??
lda #$07 ; CPU:$D09B PRG:109B ??
sta Zp_3C ; CPU:$D09D PRG:109D ??
lda Zp_52 ; CPU:$D09F PRG:109F ??
asl a ; CPU:$D0A1 PRG:10A1 ??
jmp Flow_CF07 ; CPU:$D0A3 PRG:10A3 ??
.byte $A5,$D1,$B3,$D1,$A8,$D1,$04,$22,$49,$01,$C2,$AF,$D1,$04,$22,$89 ; PRG $11A1 | CPU $D1A1 ; CPU:$D0A5 PRG:10A5 A5 D1 B3 D1 A8 D1 04 22 49 01 C2 AF D1 04 22 89
.byte $01,$00,$B6,$D1,$04,$22,$49,$01,$00,$BD,$D1,$04,$22,$89,$01,$C2 ; PRG $11B1 | CPU $D1B1 ; CPU:$D0B5 PRG:10B5 01 00 B6 D1 04 22 49 01 00 BD D1 04 22 89 01 C2
; -----------------------------------------------------------------------------
; Global purpose: Process Game State D1 C1.
; Local behavior: Executes the decoded process game state d1 c1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_D1C1:
lda Ram_040E ; CPU:$D0C5 PRG:10C5 ??
bmi Flow_D1CD ; CPU:$D0C7 PRG:10C7 ??
lda Ram_040D ; CPU:$D0C9 PRG:10C9 ??
bmi Flow_D1CE ; CPU:$D0CB PRG:10CB ??
bpl Flow_D21E ; CPU:$D0CD PRG:10CD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D1 CD.
; Local behavior: Executes the decoded flow d1 cd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D1CD:
rts ; CPU:$D0CF PRG:10CF ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D1 CE.
; Local behavior: Executes the decoded flow d1 ce sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D1CE:
ldx CurrentPlayerIndex ; CPU:$D0D1 PRG:10D1 ??
lda Zp_2F ; CPU:$D0D3 PRG:10D3 ??
and #$03 ; CPU:$D0D5 PRG:10D5 ??
beq Flow_D219 ; CPU:$D0D7 PRG:10D7 ??
lda Ram_0458 ; CPU:$D0D9 PRG:10D9 ??
bne Flow_D21E ; CPU:$D0DB PRG:10DB ??
lda Zp_5C,x ; CPU:$D0DD PRG:10DD ??
beq Flow_D207 ; CPU:$D0DF PRG:10DF ??
sta Ram_0458 ; CPU:$D0E1 PRG:10E1 ??
lda #$00 ; CPU:$D0E3 PRG:10E3 ??
sta Ram_040D ; CPU:$D0E5 PRG:10E5 ??
lda Ram_0459 ; CPU:$D0E7 PRG:10E7 ??
tax ; CPU:$D0E9 PRG:10E9 ??
clc ; CPU:$D0EB PRG:10EB ??
lda LookupTable_D268,x ; CPU:$D0ED PRG:10ED ??
adc Ram_071F ; CPU:$D0EF PRG:10EF ??
sta Ram_071B ; CPU:$D0F1 PRG:10F1 ??
clc ; CPU:$D0F3 PRG:10F3 ??
lda LookupTable_D269,x ; CPU:$D0F5 PRG:10F5 ??
adc Ram_071C ; CPU:$D0F7 PRG:10F7 ??
sta Ram_0718 ; CPU:$D0F9 PRG:10F9 ??
lda #$0D ; CPU:$D0FB PRG:10FB ??
jsr StorePendingSoundCommand ; CPU:$D0FD PRG:10FD ??
jmp Flow_D21E ; CPU:$D0FF PRG:10FF ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D207.
; Local behavior: Executes the decoded flow d207 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D207:
lda Ram_0458 ; CPU:$D101 PRG:1101 ??
bne Flow_D21E ; CPU:$D103 PRG:1103 ??
lda #$01 ; CPU:$D105 PRG:1105 ??
sta Ram_0458 ; CPU:$D107 PRG:1107 ??
lda #$0E ; CPU:$D109 PRG:1109 ??
jsr StorePendingSoundCommand ; CPU:$D10B PRG:110B ??
jmp Flow_D21E ; CPU:$D10D PRG:110D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D219.
; Local behavior: Executes the decoded flow d219 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D219:
lda #$00 ; CPU:$D10F PRG:110F ??
sta Ram_0458 ; CPU:$D111 PRG:1111 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D21 E.
; Local behavior: Executes the decoded flow d21 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D21E:
lda Zp_2E ; CPU:$D113 PRG:1113 ??
and #$0F ; CPU:$D115 PRG:1115 ??
tay ; CPU:$D117 PRG:1117 ??
lda LookupTable_D272,y ; CPU:$D119 PRG:1119 ??
tay ; CPU:$D11B PRG:111B ??
cmp Ram_045A ; CPU:$D11D PRG:111D ??
beq Flow_D24D ; CPU:$D11F PRG:111F ??
asl a ; CPU:$D121 PRG:1121 ??
asl a ; CPU:$D123 PRG:1123 ??
asl a ; CPU:$D125 PRG:1125 ??
asl a ; CPU:$D127 PRG:1127 ??
sta Ram_044F ; CPU:$D129 PRG:1129 ??
lda Ram_045A ; CPU:$D12B PRG:112B ??
cmp #$00 ; CPU:$D12D PRG:112D ??
beq Flow_D23E ; CPU:$D12F PRG:112F ??
cmp #$08 ; CPU:$D131 PRG:1131 ??
bne Flow_D24D ; CPU:$D133 PRG:1133 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D23 E.
; Local behavior: Executes the decoded flow d23 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D23E:
cpy #$06 ; CPU:$D135 PRG:1135 ??
bne Flow_D24D ; CPU:$D137 PRG:1137 ??
lda Ram_071C ; CPU:$D139 PRG:1139 ??
and #$FE ; CPU:$D13B PRG:113B ??
sta Ram_071C ; CPU:$D13D PRG:113D ??
sta Ram_0720 ; CPU:$D13F PRG:113F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D24 D.
; Local behavior: Executes the decoded flow d24 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D24D:
sty Ram_045A ; CPU:$D141 PRG:1141 ??
tya ; CPU:$D143 PRG:1143 ??
beq Flow_D256 ; CPU:$D145 PRG:1145 ??
sty Ram_0459 ; CPU:$D147 PRG:1147 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D256.
; Local behavior: Executes the decoded flow d256 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D256:
lda Ram_045A ; CPU:$D149 PRG:1149 ??
beq Flow_D262 ; CPU:$D14B PRG:114B ??
ldx #$07 ; CPU:$D14D PRG:114D ??
jsr DispatchHandler_D44F ; CPU:$D14F PRG:114F ??
bne Flow_D267 ; CPU:$D151 PRG:1151 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D262.
; Local behavior: Executes the decoded flow d262 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D262:
ldx #$07 ; CPU:$D153 PRG:1153 ??
jsr UpdateStateField_D27E ; CPU:$D155 PRG:1155 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D267.
; Local behavior: Executes the decoded flow d267 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D267:
rts ; CPU:$D157 PRG:1157 ??
LookupTable_D268:
.byte $00 ; PRG $1268 | CPU $D268 ; CPU:$D159 PRG:1159 00
LookupTable_D269:
.byte $10,$10,$00,$F0,$00,$00,$F0,$00,$10 ; PRG $1269 | CPU $D269 ; CPU:$D15A PRG:115A 10 10 00 F0 00 00 F0 00 10
LookupTable_D272:
.byte $00,$06,$08,$00,$04,$00,$00,$00,$02,$00,$00,$00 ; PRG $1272 | CPU $D272 ; CPU:$D163 PRG:1163 00 06 08 00 04 00 00 00 02 00 00 00
; -----------------------------------------------------------------------------
; Global purpose: Update State Field D27 E.
; Local behavior: Executes the decoded update state field d27 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
UpdateStateField_D27E:
lda Ram_0407,x ; CPU:$D16F PRG:116F ??
bpl Flow_D284 ; CPU:$D171 PRG:1171 ??
rts ; CPU:$D173 PRG:1173 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D284.
; Local behavior: Executes the decoded flow d284 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D284:
lda Zp_45 ; CPU:$D175 PRG:1175 ??
and Ram_0430,x ; CPU:$D177 PRG:1177 ??
bne Flow_D28C ; CPU:$D179 PRG:1179 ??
rts ; CPU:$D17B PRG:117B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D28 C.
; Local behavior: Executes the decoded flow d28 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D28C:
dec Ram_0438,x ; CPU:$D17D PRG:117D ??
beq Flow_D292 ; CPU:$D17F PRG:117F ??
rts ; CPU:$D181 PRG:1181 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D292.
; Local behavior: Executes the decoded flow d292 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D292:
lda Ram_0440,x ; CPU:$D183 PRG:1183 ??
sta Ram_0438,x ; CPU:$D185 PRG:1185 ??
lda Ram_0448,x ; CPU:$D187 PRG:1187 ??
and #$0F ; CPU:$D189 PRG:1189 ??
sta Zp_32 ; CPU:$D18B PRG:118B ??
lda Ram_0448,x ; CPU:$D18D PRG:118D ??
lsr a ; CPU:$D18F PRG:118F ??
lsr a ; CPU:$D191 PRG:1191 ??
lsr a ; CPU:$D193 PRG:1193 ??
beq Flow_D2AF ; CPU:$D195 PRG:1195 ??
clc ; CPU:$D197 PRG:1197 ??
adc Zp_32 ; CPU:$D199 PRG:1199 ??
sta Zp_32 ; CPU:$D19B PRG:119B ??
jmp Flow_D2BF ; CPU:$D19D PRG:119D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D2 AF.
; Local behavior: Executes the decoded flow d2 af sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D2AF:
cpx #$07 ; CPU:$D19F PRG:119F ??
bne Flow_D2BF ; CPU:$D1A1 PRG:11A1 ??
ldy #$00 ; CPU:$D1A3 PRG:11A3 ??
lda Ram_0459 ; CPU:$D1A5 PRG:11A5 ??
cmp #$06 ; CPU:$D1A7 PRG:11A7 ??
bne Flow_D2BD ; CPU:$D1A9 PRG:11A9 ??
iny ; CPU:$D1AB PRG:11AB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D2 BD.
; Local behavior: Executes the decoded flow d2 bd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D2BD:
sty Zp_32 ; CPU:$D1AD PRG:11AD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D2 BF.
; Local behavior: Executes the decoded flow d2 bf sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D2BF:
txa ; CPU:$D1AF PRG:11AF ??
stx Zp_43 ; CPU:$D1B1 PRG:11B1 ??
asl a ; CPU:$D1B3 PRG:11B3 ??
asl a ; CPU:$D1B5 PRG:11B5 ??
sta Zp_38 ; CPU:$D1B7 PRG:11B7 ??
lda Ram_0407,x ; CPU:$D1B9 PRG:11B9 ??
and #$07 ; CPU:$D1BB PRG:11BB ??
asl a ; CPU:$D1BD PRG:11BD ??
tay ; CPU:$D1BF PRG:11BF ??
lda LookupTable_D3E5,y ; CPU:$D1C1 PRG:11C1 ??
sta Zp_34 ; CPU:$D1C3 PRG:11C3 ??
lda LookupTable_D3E6,y ; CPU:$D1C5 PRG:11C5 ??
sta Zp_35 ; CPU:$D1C7 PRG:11C7 ??
ldy Zp_32 ; CPU:$D1C9 PRG:11C9 ??
lda (Zp_34),y ; CPU:$D1CB PRG:11CB ??
cmp #$FF ; CPU:$D1CD PRG:11CD ??
bne Flow_D2E2 ; CPU:$D1CF PRG:11CF ??
jmp Flow_D3A8 ; CPU:$D1D1 PRG:11D1 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D2 E2.
; Local behavior: Executes the decoded flow d2 e2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D2E2:
ldy Zp_38 ; CPU:$D1D3 PRG:11D3 ??
sta Ram_0701,y ; CPU:$D1D5 PRG:11D5 ??
sta Zp_44 ; CPU:$D1D7 PRG:11D7 ??
lda Zp_43 ; CPU:$D1D9 PRG:11D9 ??
cmp #$07 ; CPU:$D1DB PRG:11DB ??
bne Flow_D2F8 ; CPU:$D1DD PRG:11DD ??
inc Zp_44 ; CPU:$D1DF PRG:11DF ??
inc Zp_44 ; CPU:$D1E1 PRG:11E1 ??
lda Zp_44 ; CPU:$D1E3 PRG:11E3 ??
sta Ram_0721 ; CPU:$D1E5 PRG:11E5 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D2 F8.
; Local behavior: Executes the decoded flow d2 f8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D2F8:
lda Ram_0448,x ; CPU:$D1E7 PRG:11E7 ??
asl a ; CPU:$D1E9 PRG:11E9 ??
sta Zp_44 ; CPU:$D1EB PRG:11EB ??
and #$40 ; CPU:$D1ED PRG:11ED ??
sta Zp_3C ; CPU:$D1EF PRG:11EF ??
lda Ram_0407,x ; CPU:$D1F1 PRG:11F1 ??
and #$0F ; CPU:$D1F3 PRG:11F3 ??
cmp #$02 ; CPU:$D1F5 PRG:11F5 ??
bne Flow_D311 ; CPU:$D1F7 PRG:11F7 ??
lda Zp_3C ; CPU:$D1F9 PRG:11F9 ??
ora #$02 ; CPU:$D1FB PRG:11FB ??
sta Zp_3C ; CPU:$D1FD PRG:11FD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D311.
; Local behavior: Executes the decoded flow d311 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D311:
lda Zp_3C ; CPU:$D1FF PRG:11FF ??
sta Ram_0702,y ; CPU:$D201 PRG:1201 ??
cpx #$07 ; CPU:$D203 PRG:1203 ??
bne Flow_D354 ; CPU:$D205 PRG:1205 ??
lda Zp_44 ; CPU:$D207 PRG:1207 ??
and #$E0 ; CPU:$D209 PRG:1209 ??
cmp #$40 ; CPU:$D20B PRG:120B ??
beq Flow_D324 ; CPU:$D20D PRG:120D ??
lda #$00 ; CPU:$D20F PRG:120F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D324.
; Local behavior: Executes the decoded flow d324 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D324:
ora #$01 ; CPU:$D211 PRG:1211 ??
sta Ram_0702,y ; CPU:$D213 PRG:1213 ??
sta Ram_0722 ; CPU:$D215 PRG:1215 ??
sta Zp_44 ; CPU:$D217 PRG:1217 ??
lda Ram_071D ; CPU:$D219 PRG:1219 ??
sta Zp_3A ; CPU:$D21B PRG:121B ??
lda Ram_0721 ; CPU:$D21D PRG:121D ??
sta Zp_3B ; CPU:$D21F PRG:121F ??
lda #$41 ; CPU:$D221 PRG:1221 ??
cmp Zp_44 ; CPU:$D223 PRG:1223 ??
beq Flow_D346 ; CPU:$D225 PRG:1225 ??
lda Zp_3A ; CPU:$D227 PRG:1227 ??
cmp Zp_3B ; CPU:$D229 PRG:1229 ??
bcc Flow_D354 ; CPU:$D22B PRG:122B ??
bcs Flow_D34C ; CPU:$D22D PRG:122D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D346.
; Local behavior: Executes the decoded flow d346 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D346:
lda Zp_3A ; CPU:$D22F PRG:122F ??
cmp Zp_3B ; CPU:$D231 PRG:1231 ??
bcs Flow_D354 ; CPU:$D233 PRG:1233 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D34 C.
; Local behavior: Executes the decoded flow d34 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D34C:
sta Ram_0721 ; CPU:$D235 PRG:1235 ??
lda Zp_3B ; CPU:$D237 PRG:1237 ??
sta Ram_071D ; CPU:$D239 PRG:1239 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D354.
; Local behavior: Executes the decoded flow d354 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D354:
lda Ram_0448,x ; CPU:$D23B PRG:123B ??
and #$F0 ; CPU:$D23D PRG:123D ??
bne Flow_D35E ; CPU:$D23F PRG:123F ??
jmp Flow_D3E4 ; CPU:$D241 PRG:1241 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D35 E.
; Local behavior: Executes the decoded flow d35 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D35E:
inc Ram_0448,x ; CPU:$D243 PRG:1243 ??
lda Ram_0448,x ; CPU:$D245 PRG:1245 ??
and #$F3 ; CPU:$D247 PRG:1247 ??
sta Ram_0448,x ; CPU:$D249 PRG:1249 ??
stx Zp_37 ; CPU:$D24B PRG:124B ??
ldy Zp_38 ; CPU:$D24D PRG:124D ??
lsr a ; CPU:$D24F PRG:124F ??
lsr a ; CPU:$D251 PRG:1251 ??
lsr a ; CPU:$D253 PRG:1253 ??
lsr a ; CPU:$D255 PRG:1255 ??
tax ; CPU:$D257 PRG:1257 ??
clc ; CPU:$D259 PRG:1259 ??
lda LookupTable_D445,x ; CPU:$D25B PRG:125B ??
adc Ram_0703,y ; CPU:$D25D PRG:125D ??
sta Ram_0703,y ; CPU:$D25F PRG:125F ??
sta Zp_44 ; CPU:$D261 PRG:1261 ??
lda Zp_43 ; CPU:$D263 PRG:1263 ??
cmp #$07 ; CPU:$D265 PRG:1265 ??
bne Flow_D38C ; CPU:$D267 PRG:1267 ??
clc ; CPU:$D269 PRG:1269 ??
lda Zp_44 ; CPU:$D26B PRG:126B ??
adc #$08 ; CPU:$D26D PRG:126D ??
sta Ram_0723 ; CPU:$D26F PRG:126F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D38 C.
; Local behavior: Executes the decoded flow d38 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D38C:
clc ; CPU:$D271 PRG:1271 ??
lda LookupTable_D446,x ; CPU:$D273 PRG:1273 ??
adc Ram_0700,y ; CPU:$D275 PRG:1275 ??
sta Ram_0700,y ; CPU:$D277 PRG:1277 ??
sta Zp_44 ; CPU:$D279 PRG:1279 ??
lda Zp_43 ; CPU:$D27B PRG:127B ??
cmp #$07 ; CPU:$D27D PRG:127D ??
bne Flow_D3A3 ; CPU:$D27F PRG:127F ??
lda Zp_44 ; CPU:$D281 PRG:1281 ??
sta Ram_0720 ; CPU:$D283 PRG:1283 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D3 A3.
; Local behavior: Executes the decoded flow d3 a3 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D3A3:
ldx Zp_37 ; CPU:$D285 PRG:1285 ??
jmp Flow_D3E4 ; CPU:$D287 PRG:1287 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D3 A8.
; Local behavior: Executes the decoded flow d3 a8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D3A8:
ldy Zp_38 ; CPU:$D289 PRG:1289 ??
lda Ram_0448,x ; CPU:$D28B PRG:128B ??
bmi Flow_D3B9 ; CPU:$D28D PRG:128D ??
lda Ram_0700,y ; CPU:$D28F PRG:128F ??
sta Zp_3A ; CPU:$D291 PRG:1291 ??
inc Zp_3A ; CPU:$D293 PRG:1293 ??
jmp Flow_D3C0 ; CPU:$D295 PRG:1295 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D3 B9.
; Local behavior: Executes the decoded flow d3 b9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D3B9:
lda Ram_0700,y ; CPU:$D297 PRG:1297 ??
sta Zp_3A ; CPU:$D299 PRG:1299 ??
dec Zp_3A ; CPU:$D29B PRG:129B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D3 C0.
; Local behavior: Executes the decoded flow d3 c0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D3C0:
lda Zp_3A ; CPU:$D29D PRG:129D ??
sta Ram_0700,y ; CPU:$D29F PRG:129F ??
sta Zp_44 ; CPU:$D2A1 PRG:12A1 ??
lda Zp_43 ; CPU:$D2A3 PRG:12A3 ??
cmp #$07 ; CPU:$D2A5 PRG:12A5 ??
bne Flow_D3D2 ; CPU:$D2A7 PRG:12A7 ??
lda Zp_44 ; CPU:$D2A9 PRG:12A9 ??
sta Ram_0720 ; CPU:$D2AB PRG:12AB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D3 D2.
; Local behavior: Executes the decoded flow d3 d2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D3D2:
lda Ram_0448,x ; CPU:$D2AD PRG:12AD ??
and #$F0 ; CPU:$D2AF PRG:12AF ??
beq Flow_D3E4 ; CPU:$D2B1 PRG:12B1 ??
inc Ram_0448,x ; CPU:$D2B3 PRG:12B3 ??
lda Ram_0448,x ; CPU:$D2B5 PRG:12B5 ??
and #$F3 ; CPU:$D2B7 PRG:12B7 ??
sta Ram_0448,x ; CPU:$D2B9 PRG:12B9 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D3 E4.
; Local behavior: Executes the decoded flow d3 e4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D3E4:
rts ; CPU:$D2BB PRG:12BB ??
LookupTable_D3E5:
.byte $F5 ; PRG $13E5 | CPU $D3E5 ; CPU:$D2BD PRG:12BD F5
LookupTable_D3E6:
.byte $D3,$09,$D4,$1D,$D4,$31,$D4,$F5,$D3,$09,$D4,$1D,$D4,$31,$D4,$1C ; PRG $13E6 | CPU $D3E6 ; CPU:$D2BE PRG:12BE D3 09 D4 1D D4 31 D4 F5 D3 09 D4 1D D4 31 D4 1C
.byte $20,$1C,$20,$00,$04,$08,$04,$00,$04,$08,$04,$14,$FF,$18,$FF,$0C ; PRG $13F6 | CPU $D3F6 ; CPU:$D2CE PRG:12CE 20 1C 20 00 04 08 04 00 04 08 04 14 FF 18 FF 0C
.byte $FF,$10,$FF,$00,$00,$00,$00,$4C,$4E,$4C,$4E,$4C,$4E,$4C,$4E,$54 ; PRG $1406 | CPU $D406 ; CPU:$D2DE PRG:12DE FF 10 FF 00 00 00 00 4C 4E 4C 4E 4C 4E 4C 4E 54
.byte $FF,$56,$FF,$50,$FF,$52,$FF,$00,$00,$00,$00,$64,$66,$64,$66,$64 ; PRG $1416 | CPU $D416 ; CPU:$D2EE PRG:12EE FF 56 FF 50 FF 52 FF 00 00 00 00 64 66 64 66 64
.byte $66,$64,$66,$6C,$FF,$6E,$FF,$68,$FF,$6A,$FF,$00,$00,$00,$00,$7C ; PRG $1426 | CPU $D426 ; CPU:$D2FE PRG:12FE 66 64 66 6C FF 6E FF 68 FF 6A FF 00 00 00 00 7C
.byte $7E,$7C,$7E,$7C,$7E,$7C,$7E,$84,$FF,$86,$FF,$80,$FF,$82,$FF ; PRG $1436 | CPU $D436 ; CPU:$D30E PRG:130E 7E 7C 7E 7C 7E 7C 7E 84 FF 86 FF 80 FF 82 FF
LookupTable_D445:
.byte $00 ; PRG $1445 | CPU $D445 ; CPU:$D31D PRG:131D 00
LookupTable_D446:
.byte $00,$02,$00,$FE,$00,$00,$FD,$00,$03 ; PRG $1446 | CPU $D446 ; CPU:$D31E PRG:131E 00 02 00 FE 00 00 FD 00 03
; -----------------------------------------------------------------------------
; Global purpose: Dispatch Handler D44 F.
; Local behavior: Executes the decoded dispatch handler d44 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
DispatchHandler_D44F:
lda Ram_0448,x ; CPU:$D327 PRG:1327 ??
lsr a ; CPU:$D329 PRG:1329 ??
lsr a ; CPU:$D32B PRG:132B ??
lsr a ; CPU:$D32D PRG:132D ??
lsr a ; CPU:$D32F PRG:132F ??
tay ; CPU:$D331 PRG:1331 ??
lda LookupTable_D475,y ; CPU:$D333 PRG:1333 ??
sta Zp_34 ; CPU:$D335 PRG:1335 ??
lda LookupTable_D476,y ; CPU:$D337 PRG:1337 ??
sta Zp_35 ; CPU:$D339 PRG:1339 ??
txa ; CPU:$D33B PRG:133B ??
asl a ; CPU:$D33D PRG:133D ??
asl a ; CPU:$D33F PRG:133F ??
tay ; CPU:$D341 PRG:1341 ??
lda Ram_0703,y ; CPU:$D343 PRG:1343 ??
sta Zp_32 ; CPU:$D345 PRG:1345 ??
lda Ram_0700,y ; CPU:$D347 PRG:1347 ??
sta Zp_33 ; CPU:$D349 PRG:1349 ??
inc Ram_0406 ; CPU:$D34B PRG:134B ??
jmp (Zp_34) ; CPU:$D34D PRG:134D ??
LookupTable_D475:
.byte $7F ; PRG $1475 | CPU $D475 ; CPU:$D34F PRG:134F 7F
LookupTable_D476:
.byte $D4,$85,$D4,$C1,$D4,$FD,$D4,$1F,$D5,$A9,$00,$8D,$06,$04,$60,$A5 ; PRG $1476 | CPU $D476 ; CPU:$D350 PRG:1350 D4 85 D4 C1 D4 FD D4 1F D5 A9 00 8D 06 04 60 A5
.byte $32,$E0,$07,$F0,$27,$C9,$DC,$90,$07,$A9,$DC,$99,$03,$07,$D0,$1B ; PRG $1486 | CPU $D486 ; CPU:$D360 PRG:1360 32 E0 07 F0 27 C9 DC 90 07 A9 DC 99 03 07 D0 1B
.byte $20,$3C,$E0,$D0,$16,$20,$95,$D5,$D0,$11,$A5,$33,$99,$00,$07,$E0 ; PRG $1496 | CPU $D496 ; CPU:$D370 PRG:1370 20 3C E0 D0 16 20 95 D5 D0 11 A5 33 99 00 07 E0
.byte $07,$D0,$03,$8D,$20,$07,$A9,$00,$8D,$06,$04,$60,$C9,$D8,$90,$E0 ; PRG $14A6 | CPU $D4A6 ; CPU:$D380 PRG:1380 07 D0 03 8D 20 07 A9 00 8D 06 04 60 C9 D8 90 E0
.byte $A9,$D8,$99,$03,$07,$A9,$E0,$8D,$23,$07,$60,$A5,$32,$E0,$07,$F0 ; PRG $14B6 | CPU $D4B6 ; CPU:$D390 PRG:1390 A9 D8 99 03 07 A9 E0 8D 23 07 60 A5 32 E0 07 F0
.byte $27,$C9,$1D,$B0,$07,$A9,$1C,$99,$03,$07,$D0,$1B,$20,$3C,$E0,$D0 ; PRG $14C6 | CPU $D4C6 ; CPU:$D3A0 PRG:13A0 27 C9 1D B0 07 A9 1C 99 03 07 D0 1B 20 3C E0 D0
.byte $16,$20,$9F,$D5,$D0,$11,$A5,$33,$99,$00,$07,$E0,$07,$D0,$03,$8D ; PRG $14D6 | CPU $D4D6 ; CPU:$D3B0 PRG:13B0 16 20 9F D5 D0 11 A5 33 99 00 07 E0 07 D0 03 8D
.byte $20,$07,$A9,$00,$8D,$06,$04,$60,$C9,$19,$B0,$E0,$A9,$18,$99,$03 ; PRG $14E6 | CPU $D4E6 ; CPU:$D3C0 PRG:13C0 20 07 A9 00 8D 06 04 60 C9 19 B0 E0 A9 18 99 03
.byte $07,$A9,$20,$8D,$23,$07,$60,$A5,$33,$C9,$1D,$B0,$0E,$A9,$1C,$99 ; PRG $14F6 | CPU $D4F6 ; CPU:$D3D0 PRG:13D0 07 A9 20 8D 23 07 60 A5 33 C9 1D B0 0E A9 1C 99
.byte $00,$07,$E0,$07,$D0,$12,$8D,$20,$07,$D0,$0D,$20,$1E,$D6,$D0,$08 ; PRG $1506 | CPU $D506 ; CPU:$D3E0 PRG:13E0 00 07 E0 07 D0 12 8D 20 07 D0 0D 20 1E D6 D0 08
.byte $20,$43,$D5,$A9,$00,$8D,$06,$04,$60,$A5,$33,$C5,$58,$90,$0E,$A5 ; PRG $1516 | CPU $D516 ; CPU:$D3F0 PRG:13F0 20 43 D5 A9 00 8D 06 04 60 A5 33 C5 58 90 0E A5
.byte $58,$99,$00,$07,$E0,$07,$D0,$12,$8D,$20,$07,$D0,$0D,$20,$28,$D6 ; PRG $1526 | CPU $D526 ; CPU:$D400 PRG:1400 58 99 00 07 E0 07 D0 12 8D 20 07 D0 0D 20 28 D6
.byte $D0,$08,$20,$43,$D5,$A9,$00,$8D,$06,$04,$60,$02,$01,$B9,$03,$07 ; PRG $1536 | CPU $D536 ; CPU:$D410 PRG:1410 D0 08 20 43 D5 A9 00 8D 06 04 60 02 01 B9 03 07
.byte $85,$3B,$E0,$07,$F0,$1A,$A5,$3B,$29,$08,$F0,$0A,$A5,$3B,$29,$F0 ; PRG $1546 | CPU $D546 ; CPU:$D420 PRG:1420 85 3B E0 07 F0 1A A5 3B 29 08 F0 0A A5 3B 29 F0
.byte $09,$0C,$99,$03,$07,$60,$A5,$3B,$29,$F0,$09,$04,$99,$03,$07,$60 ; PRG $1556 | CPU $D556 ; CPU:$D430 PRG:1430 09 0C 99 03 07 60 A5 3B 29 F0 09 04 99 03 07 60
.byte $A5,$3B,$29,$0F,$C9,$0C,$B0,$1E,$C9,$04,$B0,$04,$29,$08,$F0,$08 ; PRG $1566 | CPU $D566 ; CPU:$D440 PRG:1440 A5 3B 29 0F C9 0C B0 1E C9 04 B0 04 29 08 F0 08
.byte $A5,$3B,$29,$F0,$09,$08,$D0,$04,$A5,$3B,$29,$F0,$8D,$1F,$07,$18 ; PRG $1576 | CPU $D576 ; CPU:$D450 PRG:1450 A5 3B 29 F0 09 08 D0 04 A5 3B 29 F0 8D 1F 07 18
.byte $69,$08,$8D,$23,$07,$60,$A5,$3B,$18,$69,$10,$85,$3B,$D0,$E9,$84 ; PRG $1586 | CPU $D586 ; CPU:$D460 PRG:1460 69 08 8D 23 07 60 A5 3B 18 69 10 85 3B D0 E9 84
.byte $42,$86,$43,$A9,$00,$85,$38,$F0,$08,$84,$42,$86,$43,$A9,$01,$85 ; PRG $1596 | CPU $D596 ; CPU:$D470 PRG:1470 42 86 43 A9 00 85 38 F0 08 84 42 86 43 A9 01 85
.byte $38,$20,$8A,$D6,$A0,$00,$B1,$34,$C9,$FF,$F0,$65,$38,$E9,$04,$85 ; PRG $15A6 | CPU $D5A6 ; CPU:$D480 PRG:1480 38 20 8A D6 A0 00 B1 34 C9 FF F0 65 38 E9 04 85
.byte $39,$C5,$33,$F0,$14,$38,$E9,$02,$C5,$33,$B0,$07,$18,$69,$03,$C5 ; PRG $15B6 | CPU $D5B6 ; CPU:$D490 PRG:1490 39 C5 33 F0 14 38 E9 02 C5 33 B0 07 18 69 03 C5
.byte $33,$B0,$06,$C8,$C8,$C8,$4C,$AC,$D5,$A5,$39,$85,$33,$C8,$B1,$34 ; PRG $15C6 | CPU $D5C6 ; CPU:$D4A0 PRG:14A0 33 B0 06 C8 C8 C8 4C AC D5 A5 39 85 33 C8 B1 34
.byte $A6,$43,$E0,$07,$F0,$03,$18,$69,$04,$C5,$32,$F0,$19,$B0,$E5,$C8 ; PRG $15D6 | CPU $D5D6 ; CPU:$D4B0 PRG:14B0 A6 43 E0 07 F0 03 18 69 04 C5 32 F0 19 B0 E5 C8
.byte $B1,$34,$38,$E9,$10,$E0,$07,$F0,$03,$18,$69,$04,$C5,$32,$F0,$16 ; PRG $15E6 | CPU $D5E6 ; CPU:$D4C0 PRG:14C0 B1 34 38 E9 10 E0 07 F0 03 18 69 04 C5 32 F0 16
.byte $B0,$18,$C8,$4C,$AC,$D5,$B1,$34,$18,$69,$10,$C8,$D1,$34,$F0,$11 ; PRG $15F6 | CPU $D5F6 ; CPU:$D4D0 PRG:14D0 B0 18 C8 4C AC D5 B1 34 18 69 10 C8 D1 34 F0 11
.byte $A5,$38,$F0,$06,$D0,$0B,$A5,$38,$F0,$07,$A4,$42,$A6,$43,$A9,$00 ; PRG $1606 | CPU $D606 ; CPU:$D4E0 PRG:14E0 A5 38 F0 06 D0 0B A5 38 F0 07 A4 42 A6 43 A9 00
.byte $60,$A4,$42,$A6,$43,$A9,$FF,$60,$84,$42,$86,$43,$A9,$00,$85,$38 ; PRG $1616 | CPU $D616 ; CPU:$D4F0 PRG:14F0 60 A4 42 A6 43 A9 FF 60 84 42 86 43 A9 00 85 38
.byte $F0,$08,$84,$42,$86,$43,$A9,$01,$85,$38,$20,$96,$D6,$A9,$07,$85 ; PRG $1626 | CPU $D626 ; CPU:$D500 PRG:1500 F0 08 84 42 86 43 A9 01 85 38 20 96 D6 A9 07 85
.byte $39,$A5,$43,$C9,$07,$F0,$02,$E6,$39,$A0,$00,$B1,$34,$C9,$FF,$F0 ; PRG $1636 | CPU $D636 ; CPU:$D510 PRG:1510 39 A5 43 C9 07 F0 02 E6 39 A0 00 B1 34 C9 FF F0
.byte $D0,$38,$E9,$04,$C5,$32,$B0,$07,$18,$65,$39,$C5,$32,$B0,$06,$C8 ; PRG $1646 | CPU $D646 ; CPU:$D520 PRG:1520 D0 38 E9 04 C5 32 B0 07 18 65 39 C5 32 B0 06 C8
.byte $C8,$C8,$4C,$41,$D6,$C8,$B1,$34,$38,$E9,$05,$C5,$33,$F0,$1F,$18 ; PRG $1656 | CPU $D656 ; CPU:$D530 PRG:1530 C8 C8 4C 41 D6 C8 B1 34 38 E9 05 C5 33 F0 1F 18
.byte $69,$01,$C5,$33,$F0,$18,$B0,$E8,$C8,$B1,$34,$38,$E9,$04,$C5,$33 ; PRG $1666 | CPU $D666 ; CPU:$D540 PRG:1540 69 01 C5 33 F0 18 B0 E8 C8 B1 34 38 E9 04 C5 33
.byte $F0,$06,$B0,$96,$C8,$4C,$41,$D6,$A5,$38,$F0,$8E,$D0,$93,$A5,$38 ; PRG $1676 | CPU $D676 ; CPU:$D550 PRG:1550 F0 06 B0 96 C8 4C 41 D6 A5 38 F0 8E D0 93 A5 38
.byte $F0,$8F,$D0,$86,$20,$BE,$CE,$CA,$8A,$A2,$5F,$A0,$F2,$4C,$A2,$D6 ; PRG $1686 | CPU $D686 ; CPU:$D560 PRG:1560 F0 8F D0 86 20 BE CE CA 8A A2 5F A0 F2 4C A2 D6
.byte $20,$BE,$CE,$CA,$8A,$A2,$6B,$A0,$F2,$4C,$A2,$D6,$86,$34,$84,$35 ; PRG $1696 | CPU $D696 ; CPU:$D570 PRG:1570 20 BE CE CA 8A A2 6B A0 F2 4C A2 D6 86 34 84 35
.byte $0A,$18,$65,$34,$85,$34,$A9,$00,$65,$35,$85,$35,$A0,$00,$B1,$34 ; PRG $16A6 | CPU $D6A6 ; CPU:$D580 PRG:1580 0A 18 65 34 85 34 A9 00 65 35 85 35 A0 00 B1 34
.byte $AA,$C8,$B1,$34,$86,$34,$85,$35,$60 ; PRG $16B6 | CPU $D6B6 ; CPU:$D590 PRG:1590 AA C8 B1 34 86 34 85 35 60
; -----------------------------------------------------------------------------
; Global purpose: Process Game State D6 BF.
; Local behavior: Executes the decoded process game state d6 bf sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_D6BF:
lda Ram_040D ; CPU:$D599 PRG:1599 ??
cmp #$FF ; CPU:$D59B PRG:159B ??
bne Flow_D6C9 ; CPU:$D59D PRG:159D ??
jmp Flow_D753 ; CPU:$D59F PRG:159F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D6 C9.
; Local behavior: Executes the decoded flow d6 c9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D6C9:
jsr ProcessGameState_E642 ; CPU:$D5A1 PRG:15A1 ??
lda Ram_040D ; CPU:$D5A3 PRG:15A3 ??
inc Ram_040D ; CPU:$D5A5 PRG:15A5 ??
cmp #$01 ; CPU:$D5A7 PRG:15A7 ??
beq Flow_D6E6 ; CPU:$D5A9 PRG:15A9 ??
cmp #$09 ; CPU:$D5AB PRG:15AB ??
beq Flow_D6FD ; CPU:$D5AD PRG:15AD ??
cmp #$11 ; CPU:$D5AF PRG:15AF ??
beq Flow_D70F ; CPU:$D5B1 PRG:15B1 ??
cmp #$19 ; CPU:$D5B3 PRG:15B3 ??
beq Flow_D721 ; CPU:$D5B5 PRG:15B5 ??
cmp #$22 ; CPU:$D5B7 PRG:15B7 ??
beq Flow_D733 ; CPU:$D5B9 PRG:15B9 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D6 E6.
; Local behavior: Executes the decoded flow d6 e6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D6E6:
lda Ram_0459 ; CPU:$D5BB PRG:15BB ??
lsr a ; CPU:$D5BD PRG:15BD ??
tay ; CPU:$D5BF PRG:15BF ??
lda LookupTable_D762,y ; CPU:$D5C1 PRG:15C1 ??
jsr CalculateAndClampValue_D78A ; CPU:$D5C3 PRG:15C3 ??
lda LookupTable_D776,y ; CPU:$D5C5 PRG:15C5 ??
sta Ram_0719 ; CPU:$D5C7 PRG:15C7 ??
lda #$01 ; CPU:$D5C9 PRG:15C9 ??
sta Ram_071A ; CPU:$D5CB PRG:15CB ??
rts ; CPU:$D5CD PRG:15CD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D6 FD.
; Local behavior: Executes the decoded flow d6 fd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D6FD:
lda Ram_0459 ; CPU:$D5CF PRG:15CF ??
lsr a ; CPU:$D5D1 PRG:15D1 ??
tay ; CPU:$D5D3 PRG:15D3 ??
lda LookupTable_D767,y ; CPU:$D5D5 PRG:15D5 ??
jsr CalculateAndClampValue_D78A ; CPU:$D5D7 PRG:15D7 ??
lda LookupTable_D77B,y ; CPU:$D5D9 PRG:15D9 ??
sta Ram_0719 ; CPU:$D5DB PRG:15DB ??
rts ; CPU:$D5DD PRG:15DD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D70 F.
; Local behavior: Executes the decoded flow d70 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D70F:
lda Ram_0459 ; CPU:$D5DF PRG:15DF ??
lsr a ; CPU:$D5E1 PRG:15E1 ??
tay ; CPU:$D5E3 PRG:15E3 ??
lda LookupTable_D76C,y ; CPU:$D5E5 PRG:15E5 ??
jsr CalculateAndClampValue_D78A ; CPU:$D5E7 PRG:15E7 ??
lda LookupTable_D780,y ; CPU:$D5E9 PRG:15E9 ??
sta Ram_0719 ; CPU:$D5EB PRG:15EB ??
rts ; CPU:$D5ED PRG:15ED ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D721.
; Local behavior: Executes the decoded flow d721 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D721:
lda Ram_0459 ; CPU:$D5EF PRG:15EF ??
lsr a ; CPU:$D5F1 PRG:15F1 ??
tay ; CPU:$D5F3 PRG:15F3 ??
lda LookupTable_D771,y ; CPU:$D5F5 PRG:15F5 ??
jsr CalculateAndClampValue_D78A ; CPU:$D5F7 PRG:15F7 ??
lda LookupTable_D785,y ; CPU:$D5F9 PRG:15F9 ??
sta Ram_0719 ; CPU:$D5FB PRG:15FB ??
rts ; CPU:$D5FD PRG:15FD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D733.
; Local behavior: Executes the decoded flow d733 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D733:
lda #$FF ; CPU:$D5FF PRG:15FF ??
sta Ram_040D ; CPU:$D601 PRG:1601 ??
lda #$00 ; CPU:$D603 PRG:1603 ??
sta Ram_0718 ; CPU:$D605 PRG:1605 ??
sta Ram_071B ; CPU:$D607 PRG:1607 ??
ldx CurrentPlayerIndex ; CPU:$D609 PRG:1609 ??
dec Zp_5C,x ; CPU:$D60B PRG:160B ??
lda Zp_5C,x ; CPU:$D60D PRG:160D ??
jsr DecrementPackedDecimalDigit ; CPU:$D60F PRG:160F ??
sta Zp_5C,x ; CPU:$D611 PRG:1611 ??
lda GameMode ; CPU:$D613 PRG:1613 ??
beq Flow_D752 ; CPU:$D615 PRG:1615 ??
jsr ProcessGameState_CAA7 ; CPU:$D617 PRG:1617 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D752.
; Local behavior: Executes the decoded flow d752 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D752:
rts ; CPU:$D619 PRG:1619 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D753.
; Local behavior: Executes the decoded flow d753 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D753:
lda Ram_0458 ; CPU:$D61B PRG:161B ??
beq Flow_D752 ; CPU:$D61D PRG:161D ??
lda Zp_2F ; CPU:$D61F PRG:161F ??
and #$03 ; CPU:$D621 PRG:1621 ??
bne Flow_D752 ; CPU:$D623 PRG:1623 ??
sta Ram_0458 ; CPU:$D625 PRG:1625 ??
rts ; CPU:$D627 PRG:1627 ??
LookupTable_D762:
.byte $24,$24,$24,$2C,$28 ; PRG $1762 | CPU $D762 ; CPU:$D629 PRG:1629 24 24 24 2C 28
LookupTable_D767:
.byte $04,$04,$04,$20,$1C ; PRG $1767 | CPU $D767 ; CPU:$D62E PRG:162E 04 04 04 20 1C
LookupTable_D76C:
.byte $24,$24,$24,$2C,$28 ; PRG $176C | CPU $D76C ; CPU:$D633 PRG:1633 24 24 24 2C 28
LookupTable_D771:
.byte $04,$04,$04,$20,$1C ; PRG $1771 | CPU $D771 ; CPU:$D638 PRG:1638 04 04 04 20 1C
LookupTable_D776:
.byte $EC,$EC,$EC,$EA,$EA ; PRG $1776 | CPU $D776 ; CPU:$D63D PRG:163D EC EC EC EA EA
LookupTable_D77B:
.byte $EC,$EC,$EC,$EA,$EA ; PRG $177B | CPU $D77B ; CPU:$D642 PRG:1642 EC EC EC EA EA
LookupTable_D780:
.byte $EC,$EC,$EC,$EA,$EA ; PRG $1780 | CPU $D780 ; CPU:$D647 PRG:1647 EC EC EC EA EA
LookupTable_D785:
.byte $EC,$EC,$EC,$EA,$EA ; PRG $1785 | CPU $D785 ; CPU:$D64C PRG:164C EC EC EC EA EA
; -----------------------------------------------------------------------------
; Global purpose: Calculate And Clamp Value D78 A.
; Local behavior: Executes the decoded calculate and clamp value d78 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
CalculateAndClampValue_D78A:
sta Ram_071D ; CPU:$D651 PRG:1651 ??
clc ; CPU:$D653 PRG:1653 ??
adc #$02 ; CPU:$D655 PRG:1655 ??
sta Ram_0721 ; CPU:$D657 PRG:1657 ??
lda Ram_0459 ; CPU:$D659 PRG:1659 ??
cmp #$02 ; CPU:$D65B PRG:165B ??
bne Flow_D7A2 ; CPU:$D65D PRG:165D ??
lda #$41 ; CPU:$D65F PRG:165F ??
sta Ram_071E ; CPU:$D661 PRG:1661 ??
sta Ram_0722 ; CPU:$D663 PRG:1663 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D7 A2.
; Local behavior: Executes the decoded flow d7 a2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D7A2:
jsr ProcessGameState_D7A6 ; CPU:$D665 PRG:1665 ??
rts ; CPU:$D667 PRG:1667 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State D7 A6.
; Local behavior: Executes the decoded process game state d7 a6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_D7A6:
lda Ram_071D ; CPU:$D669 PRG:1669 ??
sta Zp_3A ; CPU:$D66B PRG:166B ??
lda Ram_0721 ; CPU:$D66D PRG:166D ??
sta Zp_3B ; CPU:$D66F PRG:166F ??
lda #$41 ; CPU:$D671 PRG:1671 ??
cmp Ram_071E ; CPU:$D673 PRG:1673 ??
beq Flow_D7C0 ; CPU:$D675 PRG:1675 ??
lda Zp_3A ; CPU:$D677 PRG:1677 ??
cmp Zp_3B ; CPU:$D679 PRG:1679 ??
bcc Flow_D7CE ; CPU:$D67B PRG:167B ??
jmp Flow_D7C6 ; CPU:$D67D PRG:167D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D7 C0.
; Local behavior: Executes the decoded flow d7 c0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D7C0:
lda Zp_3A ; CPU:$D67F PRG:167F ??
cmp Zp_3B ; CPU:$D681 PRG:1681 ??
bcs Flow_D7CE ; CPU:$D683 PRG:1683 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D7 C6.
; Local behavior: Executes the decoded flow d7 c6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D7C6:
sta Ram_0721 ; CPU:$D685 PRG:1685 ??
lda Zp_3B ; CPU:$D687 PRG:1687 ??
sta Ram_071D ; CPU:$D689 PRG:1689 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D7 CE.
; Local behavior: Executes the decoded flow d7 ce sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D7CE:
rts ; CPU:$D68B PRG:168B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D7 CF.
; Local behavior: Executes the decoded flow d7 cf sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D7CF:
rts ; CPU:$D68D PRG:168D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D7 D0.
; Local behavior: Executes the decoded flow d7 d0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D7D0:
jmp Flow_D890 ; CPU:$D68F PRG:168F ??
; -----------------------------------------------------------------------------
; Global purpose: Calculate And Clamp Value D7 D3.
; Local behavior: Executes the decoded calculate and clamp value d7 d3 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
CalculateAndClampValue_D7D3:
lda Ram_0459 ; CPU:$D691 PRG:1691 ??
cmp #$06 ; CPU:$D693 PRG:1693 ??
beq Flow_D7CF ; CPU:$D695 PRG:1695 ??
cmp #$08 ; CPU:$D697 PRG:1697 ??
beq Flow_D7CF ; CPU:$D699 PRG:1699 ??
lda Ram_071F ; CPU:$D69B PRG:169B ??
clc ; CPU:$D69D PRG:169D ??
adc #$10 ; CPU:$D69F PRG:169F ??
sta Zp_32 ; CPU:$D6A1 PRG:16A1 ??
lda Ram_071C ; CPU:$D6A3 PRG:16A3 ??
sta Zp_33 ; CPU:$D6A5 PRG:16A5 ??
ldx #$00 ; CPU:$D6A7 PRG:16A7 ??
ldy #$02 ; CPU:$D6A9 PRG:16A9 ??
stx Zp_34 ; CPU:$D6AB PRG:16AB ??
sty Zp_35 ; CPU:$D6AD PRG:16AD ??
ldy #$00 ; CPU:$D6AF PRG:16AF ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D7 F5.
; Local behavior: Executes the decoded flow d7 f5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D7F5:
sty Ram_046D ; CPU:$D6B1 PRG:16B1 ??
lda (Zp_34),y ; CPU:$D6B3 PRG:16B3 ??
beq Flow_D7CF ; CPU:$D6B5 PRG:16B5 ??
cmp #$0F ; CPU:$D6B7 PRG:16B7 ??
beq Flow_D7D0 ; CPU:$D6B9 PRG:16B9 ??
sta Zp_44 ; CPU:$D6BB PRG:16BB ??
and #$F0 ; CPU:$D6BD PRG:16BD ??
beq Flow_D809 ; CPU:$D6BF PRG:16BF ??
jmp Flow_D890 ; CPU:$D6C1 PRG:16C1 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D809.
; Local behavior: Executes the decoded flow d809 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D809:
iny ; CPU:$D6C3 PRG:16C3 ??
iny ; CPU:$D6C5 PRG:16C5 ??
lda (Zp_34),y ; CPU:$D6C7 PRG:16C7 ??
sta Zp_42 ; CPU:$D6C9 PRG:16C9 ??
sec ; CPU:$D6CB PRG:16CB ??
sbc #$0C ; CPU:$D6CD PRG:16CD ??
dec Zp_33 ; CPU:$D6CF PRG:16CF ??
cmp Zp_33 ; CPU:$D6D1 PRG:16D1 ??
bne Flow_D81D ; CPU:$D6D3 PRG:16D3 ??
inc Zp_33 ; CPU:$D6D5 PRG:16D5 ??
jmp Flow_D82B ; CPU:$D6D7 PRG:16D7 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D81 D.
; Local behavior: Executes the decoded flow d81 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D81D:
inc Zp_33 ; CPU:$D6D9 PRG:16D9 ??
cmp Zp_33 ; CPU:$D6DB PRG:16DB ??
beq Flow_D82B ; CPU:$D6DD PRG:16DD ??
inc Zp_33 ; CPU:$D6DF PRG:16DF ??
cmp Zp_33 ; CPU:$D6E1 PRG:16E1 ??
bne Flow_D897 ; CPU:$D6E3 PRG:16E3 ??
dec Zp_33 ; CPU:$D6E5 PRG:16E5 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D82 B.
; Local behavior: Executes the decoded flow d82 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D82B:
dey ; CPU:$D6E7 PRG:16E7 ??
lda (Zp_34),y ; CPU:$D6E9 PRG:16E9 ??
sta Zp_43 ; CPU:$D6EB PRG:16EB ??
cmp Zp_32 ; CPU:$D6ED PRG:16ED ??
bcs Flow_D891 ; CPU:$D6EF PRG:16EF ??
clc ; CPU:$D6F1 PRG:16F1 ??
adc #$1F ; CPU:$D6F3 PRG:16F3 ??
cmp Zp_32 ; CPU:$D6F5 PRG:16F5 ??
bcc Flow_D891 ; CPU:$D6F7 PRG:16F7 ??
lda Zp_32 ; CPU:$D6F9 PRG:16F9 ??
sec ; CPU:$D6FB PRG:16FB ??
sbc Zp_43 ; CPU:$D6FD PRG:16FD ??
lsr a ; CPU:$D6FF PRG:16FF ??
lsr a ; CPU:$D701 PRG:1701 ??
lsr a ; CPU:$D703 PRG:1703 ??
sta Zp_3C ; CPU:$D705 PRG:1705 ??
dec Zp_44 ; CPU:$D707 PRG:1707 ??
lda Zp_44 ; CPU:$D709 PRG:1709 ??
asl a ; CPU:$D70B PRG:170B ??
asl a ; CPU:$D70D PRG:170D ??
clc ; CPU:$D70F PRG:170F ??
adc Zp_3C ; CPU:$D711 PRG:1711 ??
sta Zp_44 ; CPU:$D713 PRG:1713 ??
lda Ram_046D ; CPU:$D715 PRG:1715 ??
clc ; CPU:$D717 PRG:1717 ??
adc Zp_3C ; CPU:$D719 PRG:1719 ??
tay ; CPU:$D71B PRG:171B ??
lsr a ; CPU:$D71D PRG:171D ??
tax ; CPU:$D71F PRG:171F ??
tya ; CPU:$D721 PRG:1721 ??
and #$01 ; CPU:$D723 PRG:1723 ??
bne Flow_D89C ; CPU:$D725 PRG:1725 ??
lda Ram_02A0,x ; CPU:$D727 PRG:1727 ??
and #$F0 ; CPU:$D729 PRG:1729 ??
bne Flow_D88F ; CPU:$D72B PRG:172B ??
lda #$10 ; CPU:$D72D PRG:172D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D867.
; Local behavior: Executes the decoded flow d867 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D867:
ora Ram_02A0,x ; CPU:$D72F PRG:172F ??
sta Ram_02A0,x ; CPU:$D731 PRG:1731 ??
lda Zp_44 ; CPU:$D733 PRG:1733 ??
asl a ; CPU:$D735 PRG:1735 ??
adc #$66 ; CPU:$D737 PRG:1737 ??
sta Ram_0503 ; CPU:$D739 PRG:1739 ??
lda #$01 ; CPU:$D73B PRG:173B ??
sta Ram_0502 ; CPU:$D73D PRG:173D ??
lda Zp_33 ; CPU:$D73F PRG:173F ??
clc ; CPU:$D741 PRG:1741 ??
adc #$0C ; CPU:$D743 PRG:1743 ??
sta Zp_42 ; CPU:$D745 PRG:1745 ??
jsr TransformValue_DA5E ; CPU:$D747 PRG:1747 ??
jsr ProcessGameState_CE86 ; CPU:$D749 PRG:1749 ??
lda #$01 ; CPU:$D74B PRG:174B ??
jsr StorePendingSoundCommand ; CPU:$D74D PRG:174D ??
jmp Flow_D8A7 ; CPU:$D74F PRG:174F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D88 F.
; Local behavior: Executes the decoded flow d88 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D88F:
rts ; CPU:$D751 PRG:1751 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D890.
; Local behavior: Executes the decoded flow d890 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D890:
iny ; CPU:$D753 PRG:1753 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D891.
; Local behavior: Executes the decoded flow d891 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D891:
iny ; CPU:$D755 PRG:1755 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D892.
; Local behavior: Executes the decoded flow d892 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D892:
iny ; CPU:$D757 PRG:1757 ??
iny ; CPU:$D759 PRG:1759 ??
jmp Flow_D7F5 ; CPU:$D75B PRG:175B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D897.
; Local behavior: Executes the decoded flow d897 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D897:
dec Zp_33 ; CPU:$D75D PRG:175D ??
jmp Flow_D892 ; CPU:$D75F PRG:175F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D89 C.
; Local behavior: Executes the decoded flow d89 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D89C:
lda Ram_02A0,x ; CPU:$D761 PRG:1761 ??
and #$0F ; CPU:$D763 PRG:1763 ??
bne Flow_D88F ; CPU:$D765 PRG:1765 ??
lda #$01 ; CPU:$D767 PRG:1767 ??
bne Flow_D867 ; CPU:$D769 PRG:1769 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D8 A7.
; Local behavior: Executes the decoded flow d8 a7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D8A7:
lda Ram_046D ; CPU:$D76B PRG:176B ??
lsr a ; CPU:$D76D PRG:176D ??
tax ; CPU:$D76F PRG:176F ??
ldy #$02 ; CPU:$D771 PRG:1771 ??
lda #$00 ; CPU:$D773 PRG:1773 ??
clc ; CPU:$D775 PRG:1775 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D8 B1.
; Local behavior: Executes the decoded flow d8 b1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D8B1:
adc Ram_02A0,x ; CPU:$D777 PRG:1777 ??
inx ; CPU:$D779 PRG:1779 ??
dey ; CPU:$D77B PRG:177B ??
bne Flow_D8B1 ; CPU:$D77D PRG:177D ??
cmp #$22 ; CPU:$D77F PRG:177F ??
bne Flow_D88F ; CPU:$D781 PRG:1781 ??
lda Ram_046D ; CPU:$D783 PRG:1783 ??
lsr a ; CPU:$D785 PRG:1785 ??
tax ; CPU:$D787 PRG:1787 ??
ldy #$02 ; CPU:$D789 PRG:1789 ??
lda #$00 ; CPU:$D78B PRG:178B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D8 C5.
; Local behavior: Executes the decoded flow d8 c5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D8C5:
sta Ram_02A0,x ; CPU:$D78D PRG:178D ??
inx ; CPU:$D78F PRG:178F ??
dey ; CPU:$D791 PRG:1791 ??
bne Flow_D8C5 ; CPU:$D793 PRG:1793 ??
ldx Ram_046D ; CPU:$D795 PRG:1795 ??
lda OamBuffer,x ; CPU:$D797 PRG:1797 ??
and #$0F ; CPU:$D799 PRG:1799 ??
ora #$10 ; CPU:$D79B PRG:179B ??
sta OamBuffer,x ; CPU:$D79D PRG:179D ??
lda Zp_42 ; CPU:$D79F PRG:179F ??
sta Ram_0202,x ; CPU:$D7A1 PRG:17A1 ??
lda #$01 ; CPU:$D7A3 PRG:17A3 ??
sta Ram_0203,x ; CPU:$D7A5 PRG:17A5 ??
jsr CalculateAndClampValue_D948 ; CPU:$D7A7 PRG:17A7 ??
ldy #$00 ; CPU:$D7A9 PRG:17A9 ??
sty Zp_39 ; CPU:$D7AB PRG:17AB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D8 EA.
; Local behavior: Executes the decoded flow d8 ea sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D8EA:
ldy Zp_39 ; CPU:$D7AD PRG:17AD ??
lda Ram_0407,y ; CPU:$D7AF PRG:17AF ??
and #$A0 ; CPU:$D7B1 PRG:17B1 ??
bne Flow_D91F ; CPU:$D7B3 PRG:17B3 ??
tya ; CPU:$D7B5 PRG:17B5 ??
asl a ; CPU:$D7B7 PRG:17B7 ??
asl a ; CPU:$D7B9 PRG:17B9 ??
tay ; CPU:$D7BB PRG:17BB ??
lda Ram_0703,y ; CPU:$D7BD PRG:17BD ??
clc ; CPU:$D7BF PRG:17BF ??
adc #$08 ; CPU:$D7C1 PRG:17C1 ??
cmp Ram_0201,x ; CPU:$D7C3 PRG:17C3 ??
bcc Flow_D91F ; CPU:$D7C5 PRG:17C5 ??
sta Zp_44 ; CPU:$D7C7 PRG:17C7 ??
lda Ram_0201,x ; CPU:$D7C9 PRG:17C9 ??
clc ; CPU:$D7CB PRG:17CB ??
adc #$20 ; CPU:$D7CD PRG:17CD ??
cmp Zp_44 ; CPU:$D7CF PRG:17CF ??
bcc Flow_D91F ; CPU:$D7D1 PRG:17D1 ??
lda Ram_0700,y ; CPU:$D7D3 PRG:17D3 ??
clc ; CPU:$D7D5 PRG:17D5 ??
adc #$0C ; CPU:$D7D7 PRG:17D7 ??
sta Zp_3A ; CPU:$D7D9 PRG:17D9 ??
lda Ram_0202,x ; CPU:$D7DB PRG:17DB ??
and #$F8 ; CPU:$D7DD PRG:17DD ??
cmp Zp_3A ; CPU:$D7DF PRG:17DF ??
beq Flow_D929 ; CPU:$D7E1 PRG:17E1 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D91 F.
; Local behavior: Executes the decoded flow d91 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D91F:
inc Zp_39 ; CPU:$D7E3 PRG:17E3 ??
ldy Zp_39 ; CPU:$D7E5 PRG:17E5 ??
cpy #$06 ; CPU:$D7E7 PRG:17E7 ??
bne Flow_D8EA ; CPU:$D7E9 PRG:17E9 ??
beq Flow_D947 ; CPU:$D7EB PRG:17EB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D929.
; Local behavior: Executes the decoded flow d929 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D929:
ldy Zp_39 ; CPU:$D7ED PRG:17ED ??
lda Ram_0407,y ; CPU:$D7EF PRG:17EF ??
and #$0F ; CPU:$D7F1 PRG:17F1 ??
ora #$40 ; CPU:$D7F3 PRG:17F3 ??
sta Ram_0407,y ; CPU:$D7F5 PRG:17F5 ??
txa ; CPU:$D7F7 PRG:17F7 ??
sta Ram_0450,y ; CPU:$D7F9 PRG:17F9 ??
inc Ram_0203,x ; CPU:$D7FB PRG:17FB ??
inc Ram_0203,x ; CPU:$D7FD PRG:17FD ??
lda #$09 ; CPU:$D7FF PRG:17FF ??
jsr StorePendingSoundCommand ; CPU:$D801 PRG:1801 ??
jmp Flow_D91F ; CPU:$D803 PRG:1803 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D947.
; Local behavior: Executes the decoded flow d947 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D947:
rts ; CPU:$D805 PRG:1805 ??
; -----------------------------------------------------------------------------
; Global purpose: Calculate And Clamp Value D948.
; Local behavior: Executes the decoded calculate and clamp value d948 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
CalculateAndClampValue_D948:
inc Ram_060E ; CPU:$D807 PRG:1807 ??
ldy Ram_060E ; CPU:$D809 PRG:1809 ??
dey ; CPU:$D80B PRG:180B ??
txa ; CPU:$D80D PRG:180D ??
sta Ram_060F,y ; CPU:$D80F PRG:180F ??
tya ; CPU:$D811 PRG:1811 ??
asl a ; CPU:$D813 PRG:1813 ??
asl a ; CPU:$D815 PRG:1815 ??
tay ; CPU:$D817 PRG:1817 ??
lda Ram_0201,x ; CPU:$D819 PRG:1819 ??
sta Ram_061F,y ; CPU:$D81B PRG:181B ??
lda Ram_0202,x ; CPU:$D81D PRG:181D ??
sta Ram_061C,y ; CPU:$D81F PRG:181F ??
lda #$03 ; CPU:$D821 PRG:1821 ??
sta Ram_061E,y ; CPU:$D823 PRG:1823 ??
lda OamBuffer,x ; CPU:$D825 PRG:1825 ??
and #$0F ; CPU:$D827 PRG:1827 ??
sec ; CPU:$D829 PRG:1829 ??
sbc #$01 ; CPU:$D82B PRG:182B ??
asl a ; CPU:$D82D PRG:182D ??
asl a ; CPU:$D82F PRG:182F ??
asl a ; CPU:$D831 PRG:1831 ??
cmp #$10 ; CPU:$D833 PRG:1833 ??
bne Flow_D979 ; CPU:$D835 PRG:1835 ??
lda #$86 ; CPU:$D837 PRG:1837 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D979.
; Local behavior: Executes the decoded flow d979 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D979:
clc ; CPU:$D839 PRG:1839 ??
adc #$67 ; CPU:$D83B PRG:183B ??
sta Ram_061D,y ; CPU:$D83D PRG:183D ??
rts ; CPU:$D83F PRG:183F ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State D980.
; Local behavior: Executes the decoded process game state d980 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_D980:
lda Ram_060E ; CPU:$D841 PRG:1841 ??
beq Flow_D997 ; CPU:$D843 PRG:1843 ??
jsr ProcessGameState_DA17 ; CPU:$D845 PRG:1845 ??
cmp #$FF ; CPU:$D847 PRG:1847 ??
beq Flow_D997 ; CPU:$D849 PRG:1849 ??
jsr ProcessGameState_D998 ; CPU:$D84B PRG:184B ??
jsr ProcessGameState_D9E9 ; CPU:$D84D PRG:184D ??
jsr ProcessGameState_DA3A ; CPU:$D84F PRG:184F ??
beq ProcessGameState_D980 ; CPU:$D851 PRG:1851 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D997.
; Local behavior: Executes the decoded flow d997 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D997:
rts ; CPU:$D853 PRG:1853 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State D998.
; Local behavior: Executes the decoded process game state d998 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_D998:
ldy Zp_3B ; CPU:$D855 PRG:1855 ??
lda #$00 ; CPU:$D857 PRG:1857 ??
sta Zp_3C ; CPU:$D859 PRG:1859 ??
lda #$F8 ; CPU:$D85B PRG:185B ??
sta Zp_3D ; CPU:$D85D PRG:185D ??
lda #$04 ; CPU:$D85F PRG:185F ??
sta Zp_44 ; CPU:$D861 PRG:1861 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow D9 A6.
; Local behavior: Executes the decoded flow d9 a6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_D9A6:
ldx #$00 ; CPU:$D863 PRG:1863 ??
lda Ram_061C,x ; CPU:$D865 PRG:1865 ??
sta Ram_0724,y ; CPU:$D867 PRG:1867 ??
inx ; CPU:$D869 PRG:1869 ??
iny ; CPU:$D86B PRG:186B ??
lda Ram_061C,x ; CPU:$D86D PRG:186D ??
clc ; CPU:$D86F PRG:186F ??
adc Zp_3C ; CPU:$D871 PRG:1871 ??
sta Ram_0724,y ; CPU:$D873 PRG:1873 ??
inx ; CPU:$D875 PRG:1875 ??
iny ; CPU:$D877 PRG:1877 ??
lda Ram_061C,x ; CPU:$D879 PRG:1879 ??
sta Ram_0724,y ; CPU:$D87B PRG:187B ??
inx ; CPU:$D87D PRG:187D ??
iny ; CPU:$D87F PRG:187F ??
lda Ram_061C,x ; CPU:$D881 PRG:1881 ??
clc ; CPU:$D883 PRG:1883 ??
adc Zp_3D ; CPU:$D885 PRG:1885 ??
sta Ram_0724,y ; CPU:$D887 PRG:1887 ??
inx ; CPU:$D889 PRG:1889 ??
iny ; CPU:$D88B PRG:188B ??
inc Zp_3C ; CPU:$D88D PRG:188D ??
inc Zp_3C ; CPU:$D88F PRG:188F ??
clc ; CPU:$D891 PRG:1891 ??
lda #$08 ; CPU:$D893 PRG:1893 ??
adc Zp_3D ; CPU:$D895 PRG:1895 ??
sta Zp_3D ; CPU:$D897 PRG:1897 ??
dec Zp_44 ; CPU:$D899 PRG:1899 ??
bne Flow_D9A6 ; CPU:$D89B PRG:189B ??
lda Ram_060F ; CPU:$D89D PRG:189D ??
ldx Zp_3F ; CPU:$D89F PRG:189F ??
sta Ram_0601,x ; CPU:$D8A1 PRG:18A1 ??
inc Ram_0600 ; CPU:$D8A3 PRG:18A3 ??
rts ; CPU:$D8A5 PRG:18A5 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State D9 E9.
; Local behavior: Executes the decoded process game state d9 e9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_D9E9:
ldx #$00 ; CPU:$D8A7 PRG:18A7 ??
lda Ram_061C,x ; CPU:$D8A9 PRG:18A9 ??
and #$F8 ; CPU:$D8AB PRG:18AB ??
sta Zp_42 ; CPU:$D8AD PRG:18AD ??
lda Ram_061F,x ; CPU:$D8AF PRG:18AF ??
sta Zp_43 ; CPU:$D8B1 PRG:18B1 ??
lda #$04 ; CPU:$D8B3 PRG:18B3 ??
sta Ram_0502 ; CPU:$D8B5 PRG:18B5 ??
lda #$A1 ; CPU:$D8B7 PRG:18B7 ??
sta Ram_0503 ; CPU:$D8B9 PRG:18B9 ??
sta Ram_0504 ; CPU:$D8BB PRG:18BB ??
sta Ram_0505 ; CPU:$D8BD PRG:18BD ??
sta Ram_0506 ; CPU:$D8BF PRG:18BF ??
lda #$00 ; CPU:$D8C1 PRG:18C1 ??
sta Zp_3C ; CPU:$D8C3 PRG:18C3 ??
jsr TransformValue_DA5E ; CPU:$D8C5 PRG:18C5 ??
jsr TransformValue_D0E4 ; CPU:$D8C7 PRG:18C7 ??
jmp ProcessGameState_CE86 ; CPU:$D8C9 PRG:18C9 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State DA17.
; Local behavior: Executes the decoded process game state da17 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_DA17:
ldx #$00 ; CPU:$D8CB PRG:18CB ??
ldy #$0D ; CPU:$D8CD PRG:18CD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DA1 B.
; Local behavior: Executes the decoded flow da1 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DA1B:
lda Ram_0724,x ; CPU:$D8CF PRG:18CF ??
cmp #$F0 ; CPU:$D8D1 PRG:18D1 ??
beq Flow_DA2D ; CPU:$D8D3 PRG:18D3 ??
txa ; CPU:$D8D5 PRG:18D5 ??
clc ; CPU:$D8D7 PRG:18D7 ??
adc #$10 ; CPU:$D8D9 PRG:18D9 ??
tax ; CPU:$D8DB PRG:18DB ??
dey ; CPU:$D8DD PRG:18DD ??
bne Flow_DA1B ; CPU:$D8DF PRG:18DF ??
lda #$FF ; CPU:$D8E1 PRG:18E1 ??
rts ; CPU:$D8E3 PRG:18E3 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DA2 D.
; Local behavior: Executes the decoded flow da2 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DA2D:
sty Zp_3E ; CPU:$D8E5 PRG:18E5 ??
lda #$0D ; CPU:$D8E7 PRG:18E7 ??
sec ; CPU:$D8E9 PRG:18E9 ??
sbc Zp_3E ; CPU:$D8EB PRG:18EB ??
sta Zp_3F ; CPU:$D8ED PRG:18ED ??
txa ; CPU:$D8EF PRG:18EF ??
sta Zp_3B ; CPU:$D8F1 PRG:18F1 ??
rts ; CPU:$D8F3 PRG:18F3 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State DA3 A.
; Local behavior: Executes the decoded process game state da3 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_DA3A:
ldx #$00 ; CPU:$D8F5 PRG:18F5 ??
ldy #$0C ; CPU:$D8F7 PRG:18F7 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DA3 E.
; Local behavior: Executes the decoded flow da3 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DA3E:
lda Ram_0610,x ; CPU:$D8F9 PRG:18F9 ??
sta Ram_060F,x ; CPU:$D8FB PRG:18FB ??
inx ; CPU:$D8FD PRG:18FD ??
dey ; CPU:$D8FF PRG:18FF ??
bne Flow_DA3E ; CPU:$D901 PRG:1901 ??
dec Ram_060E ; CPU:$D903 PRG:1903 ??
lda #$30 ; CPU:$D905 PRG:1905 ??
sta Zp_3A ; CPU:$D907 PRG:1907 ??
ldx #$04 ; CPU:$D909 PRG:1909 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DA51.
; Local behavior: Executes the decoded flow da51 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DA51:
lda Ram_061C,x ; CPU:$D90B PRG:190B ??
sta Ram_061C,y ; CPU:$D90D PRG:190D ??
inx ; CPU:$D90F PRG:190F ??
iny ; CPU:$D911 PRG:1911 ??
dec Zp_3A ; CPU:$D913 PRG:1913 ??
bne Flow_DA51 ; CPU:$D915 PRG:1915 ??
rts ; CPU:$D917 PRG:1917 ??
; -----------------------------------------------------------------------------
; Global purpose: Transform Value DA5 E.
; Local behavior: Executes the decoded transform value da5 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_DA5E:
lda #$00 ; CPU:$D919 PRG:1919 ??
sta Ram_0500 ; CPU:$D91B PRG:191B ??
lda Zp_42 ; CPU:$D91D PRG:191D ??
and #$F8 ; CPU:$D91F PRG:191F ??
sta Ram_0501 ; CPU:$D921 PRG:1921 ??
asl Ram_0501 ; CPU:$D923 PRG:1923 ??
rol Ram_0500 ; CPU:$D925 PRG:1925 ??
asl Ram_0501 ; CPU:$D927 PRG:1927 ??
rol Ram_0500 ; CPU:$D929 PRG:1929 ??
lda Zp_43 ; CPU:$D92B PRG:192B ??
and #$F8 ; CPU:$D92D PRG:192D ??
lsr a ; CPU:$D92F PRG:192F ??
lsr a ; CPU:$D931 PRG:1931 ??
lsr a ; CPU:$D933 PRG:1933 ??
clc ; CPU:$D935 PRG:1935 ??
adc Zp_3C ; CPU:$D937 PRG:1937 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State DA80.
; Local behavior: Executes the decoded process game state da80 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_DA80:
clc ; CPU:$D939 PRG:1939 ??
adc Ram_0501 ; CPU:$D93B PRG:193B ??
sta Ram_0501 ; CPU:$D93D PRG:193D ??
lda #$00 ; CPU:$D93F PRG:193F ??
adc Ram_0500 ; CPU:$D941 PRG:1941 ??
sta Ram_0500 ; CPU:$D943 PRG:1943 ??
clc ; CPU:$D945 PRG:1945 ??
lda #$20 ; CPU:$D947 PRG:1947 ??
adc Ram_0500 ; CPU:$D949 PRG:1949 ??
sta Ram_0500 ; CPU:$D94B PRG:194B ??
rts ; CPU:$D94D PRG:194D ??
; -----------------------------------------------------------------------------
; Global purpose: Transform Value DA99.
; Local behavior: Executes the decoded transform value da99 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_DA99:
ldy #$06 ; CPU:$D94F PRG:194F ??
clc ; CPU:$D951 PRG:1951 ??
tya ; CPU:$D953 PRG:1953 ??
adc Ram_0403 ; CPU:$D955 PRG:1955 ??
tax ; CPU:$D957 PRG:1957 ??
lda LookupTable_DB21,x ; CPU:$D959 PRG:1959 ??
sta Ram_045B ; CPU:$D95B PRG:195B ??
lda LookupTable_DB2D,x ; CPU:$D95D PRG:195D ??
sta Ram_045C ; CPU:$D95F PRG:195F ??
lda LookupTable_DB39,x ; CPU:$D961 PRG:1961 ??
sta Ram_045D ; CPU:$D963 PRG:1963 ??
lda #$00 ; CPU:$D965 PRG:1965 ??
sta Ram_0461 ; CPU:$D967 PRG:1967 ??
sta Ram_0462 ; CPU:$D969 PRG:1969 ??
sta Ram_045E ; CPU:$D96B PRG:196B ??
sta Ram_045F ; CPU:$D96D PRG:196D ??
sta Ram_0460 ; CPU:$D96F PRG:196F ??
sta Ram_042F ; CPU:$D971 PRG:1971 ??
ldx CurrentPlayerIndex ; CPU:$D973 PRG:1973 ??
lda Ram_0400,x ; CPU:$D975 PRG:1975 ??
lsr a ; CPU:$D977 PRG:1977 ??
lsr a ; CPU:$D979 PRG:1979 ??
sta Zp_32 ; CPU:$D97B PRG:197B ??
lda Ram_046A ; CPU:$D97D PRG:197D ??
and #$10 ; CPU:$D97F PRG:197F ??
bne Flow_DAD9 ; CPU:$D981 PRG:1981 ??
inc Zp_32 ; CPU:$D983 PRG:1983 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DAD9.
; Local behavior: Executes the decoded flow dad9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DAD9:
lda Zp_32 ; CPU:$D985 PRG:1985 ??
cmp #$08 ; CPU:$D987 PRG:1987 ??
bcc Flow_DAE1 ; CPU:$D989 PRG:1989 ??
lda #$07 ; CPU:$D98B PRG:198B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DAE1.
; Local behavior: Executes the decoded flow dae1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DAE1:
tax ; CPU:$D98D PRG:198D ??
lda LookupTable_DB0F,x ; CPU:$D98F PRG:198F ??
ldy #$05 ; CPU:$D991 PRG:1991 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DAE7.
; Local behavior: Executes the decoded flow dae7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DAE7:
sta Ram_0430,y ; CPU:$D993 PRG:1993 ??
dey ; CPU:$D995 PRG:1995 ??
bpl Flow_DAE7 ; CPU:$D997 PRG:1997 ??
lda LookupTable_DB18,x ; CPU:$D999 PRG:1999 ??
ldy #$05 ; CPU:$D99B PRG:199B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DAF2.
; Local behavior: Executes the decoded flow daf2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DAF2:
sta Ram_0440,y ; CPU:$D99D PRG:199D ??
dey ; CPU:$D99F PRG:199F ??
bpl Flow_DAF2 ; CPU:$D9A1 PRG:19A1 ??
ldx #$00 ; CPU:$D9A3 PRG:19A3 ??
lda Ram_046A ; CPU:$D9A5 PRG:19A5 ??
and #$10 ; CPU:$D9A7 PRG:19A7 ??
bne Flow_DB02 ; CPU:$D9A9 PRG:19A9 ??
inx ; CPU:$D9AB PRG:19AB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DB02.
; Local behavior: Executes the decoded flow db02 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DB02:
lda LookupTable_DB13,x ; CPU:$D9AD PRG:19AD ??
sta Ram_0437 ; CPU:$D9AF PRG:19AF ??
lda LookupTable_DB1C,x ; CPU:$D9B1 PRG:19B1 ??
sta Ram_0447 ; CPU:$D9B3 PRG:19B3 ??
rts ; CPU:$D9B5 PRG:19B5 ??
LookupTable_DB0F:
.byte $0F,$03,$07,$0F ; PRG $1B0F | CPU $DB0F ; CPU:$D9B7 PRG:19B7 0F 03 07 0F
LookupTable_DB13:
.byte $03,$07,$0F,$03,$07 ; PRG $1B13 | CPU $DB13 ; CPU:$D9BB PRG:19BB 03 07 0F 03 07
LookupTable_DB18:
.byte $04,$03,$03,$03 ; PRG $1B18 | CPU $DB18 ; CPU:$D9C0 PRG:19C0 04 03 03 03
LookupTable_DB1C:
.byte $02,$02,$02,$01,$01 ; PRG $1B1C | CPU $DB1C ; CPU:$D9C4 PRG:19C4 02 02 02 01 01
LookupTable_DB21:
.byte $03,$03,$02,$04,$00,$02,$05,$05,$02,$04,$00,$02 ; PRG $1B21 | CPU $DB21 ; CPU:$D9C9 PRG:19C9 03 03 02 04 00 02 05 05 02 04 00 02
LookupTable_DB2D:
.byte $00,$00,$03,$02,$02,$02,$00,$00,$03,$02,$02,$02 ; PRG $1B2D | CPU $DB2D ; CPU:$D9D5 PRG:19D5 00 00 03 02 02 02 00 00 03 02 02 02
LookupTable_DB39:
.byte $01,$01,$01,$00,$04,$02,$01,$01,$01,$00,$04,$02 ; PRG $1B39 | CPU $DB39 ; CPU:$D9E1 PRG:19E1 01 01 01 00 04 02 01 01 01 00 04 02
; -----------------------------------------------------------------------------
; Global purpose: Process Game State DB45.
; Local behavior: Executes the decoded process game state db45 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_DB45:
lda Ram_040E ; CPU:$D9ED PRG:19ED ??
bmi Flow_DBBA ; CPU:$D9EF PRG:19EF ??
lda Zp_45 ; CPU:$D9F1 PRG:19F1 ??
and #$1F ; CPU:$D9F3 PRG:19F3 ??
bne Flow_DBBA ; CPU:$D9F5 PRG:19F5 ??
inc Ram_0461 ; CPU:$D9F7 PRG:19F7 ??
ldx Ram_0461 ; CPU:$D9F9 PRG:19F9 ??
cpx #$03 ; CPU:$D9FB PRG:19FB ??
bne Flow_DB5C ; CPU:$D9FD PRG:19FD ??
ldx #$00 ; CPU:$D9FF PRG:19FF ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DB5 C.
; Local behavior: Executes the decoded flow db5 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DB5C:
stx Ram_0461 ; CPU:$DA01 PRG:1A01 ??
lda Ram_045B,x ; CPU:$DA03 PRG:1A03 ??
cmp Ram_045E,x ; CPU:$DA05 PRG:1A05 ??
beq Flow_DBBA ; CPU:$DA07 PRG:1A07 ??
ldy #$00 ; CPU:$DA09 PRG:1A09 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DB69.
; Local behavior: Executes the decoded flow db69 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DB69:
lda Ram_0407,y ; CPU:$DA0B PRG:1A0B ??
cmp #$FF ; CPU:$DA0D PRG:1A0D ??
beq Flow_DB78 ; CPU:$DA0F PRG:1A0F ??
iny ; CPU:$DA11 PRG:1A11 ??
cpy #$06 ; CPU:$DA13 PRG:1A13 ??
bne Flow_DB69 ; CPU:$DA15 PRG:1A15 ??
jmp Flow_DBBA ; CPU:$DA17 PRG:1A17 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DB78.
; Local behavior: Executes the decoded flow db78 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DB78:
inc Ram_045E,x ; CPU:$DA19 PRG:1A19 ??
inx ; CPU:$DA1B PRG:1A1B ??
txa ; CPU:$DA1D PRG:1A1D ??
ora #$20 ; CPU:$DA1F PRG:1A1F ??
sta Ram_0407,y ; CPU:$DA21 PRG:1A21 ??
sty Zp_39 ; CPU:$DA23 PRG:1A23 ??
lda #$01 ; CPU:$DA25 PRG:1A25 ??
sta Ram_0438,y ; CPU:$DA27 PRG:1A27 ??
inc Ram_0462 ; CPU:$DA29 PRG:1A29 ??
lda Ram_0462 ; CPU:$DA2B PRG:1A2B ??
and #$03 ; CPU:$DA2D PRG:1A2D ??
sta Ram_0462 ; CPU:$DA2F PRG:1A2F ??
and #$01 ; CPU:$DA31 PRG:1A31 ??
tax ; CPU:$DA33 PRG:1A33 ??
lda LookupTable_DBBB,x ; CPU:$DA35 PRG:1A35 ??
sta Ram_0448,y ; CPU:$DA37 PRG:1A37 ??
tya ; CPU:$DA39 PRG:1A39 ??
asl a ; CPU:$DA3B PRG:1A3B ??
asl a ; CPU:$DA3D PRG:1A3D ??
tay ; CPU:$DA3F PRG:1A3F ??
lda LookupTable_DBBD,x ; CPU:$DA41 PRG:1A41 ??
sta Ram_0703,y ; CPU:$DA43 PRG:1A43 ??
lda Ram_0402 ; CPU:$DA45 PRG:1A45 ??
asl a ; CPU:$DA47 PRG:1A47 ??
asl a ; CPU:$DA49 PRG:1A49 ??
clc ; CPU:$DA4B PRG:1A4B ??
adc Ram_0462 ; CPU:$DA4D PRG:1A4D ??
tax ; CPU:$DA4F PRG:1A4F ??
lda LookupTable_DBC0,x ; CPU:$DA51 PRG:1A51 ??
sta Ram_0700,y ; CPU:$DA53 PRG:1A53 ??
jsr TransformValue_DCE6 ; CPU:$DA55 PRG:1A55 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DBBA.
; Local behavior: Executes the decoded flow dbba sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DBBA:
rts ; CPU:$DA57 PRG:1A57 ??
LookupTable_DBBB:
.byte $20,$40 ; PRG $1BBB | CPU $DBBB ; CPU:$DA59 PRG:1A59 20 40
LookupTable_DBBD:
.byte $F0,$00,$1C ; PRG $1BBD | CPU $DBBD ; CPU:$DA5B PRG:1A5B F0 00 1C
LookupTable_DBC0:
.byte $1C,$AC,$AC,$1C,$1C,$5C,$5C,$1C,$1C,$AC,$AC,$1C,$1C,$8C,$8C,$1C ; PRG $1BC0 | CPU $DBC0 ; CPU:$DA5E PRG:1A5E 1C AC AC 1C 1C 5C 5C 1C 1C AC AC 1C 1C 8C 8C 1C
.byte $1C,$CC,$CC,$2C,$1C,$AC,$9C ; PRG $1BD0 | CPU $DBD0 ; CPU:$DA6E PRG:1A6E 1C CC CC 2C 1C AC 9C
; -----------------------------------------------------------------------------
; Global purpose: Process Game State DBD7.
; Local behavior: Executes the decoded process game state dbd7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_DBD7:
lda Ram_040E ; CPU:$DA75 PRG:1A75 ??
bmi Flow_DBF1 ; CPU:$DA77 PRG:1A77 ??
ldx #$00 ; CPU:$DA79 PRG:1A79 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DBDE.
; Local behavior: Executes the decoded flow dbde sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DBDE:
lda Ram_0407,x ; CPU:$DA7B PRG:1A7B ??
and #$D0 ; CPU:$DA7D PRG:1A7D ??
bne Flow_DBEC ; CPU:$DA7F PRG:1A7F ??
lda Ram_0407,x ; CPU:$DA81 PRG:1A81 ??
and #$20 ; CPU:$DA83 PRG:1A83 ??
bne Flow_DBF2 ; CPU:$DA85 PRG:1A85 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DBEC.
; Local behavior: Executes the decoded flow dbec sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DBEC:
inx ; CPU:$DA87 PRG:1A87 ??
cpx #$06 ; CPU:$DA89 PRG:1A89 ??
bne Flow_DBDE ; CPU:$DA8B PRG:1A8B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DBF1.
; Local behavior: Executes the decoded flow dbf1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DBF1:
rts ; CPU:$DA8D PRG:1A8D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DBF2.
; Local behavior: Executes the decoded flow dbf2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DBF2:
stx Ram_040F ; CPU:$DA8F PRG:1A8F ??
lda Ram_0448,x ; CPU:$DA91 PRG:1A91 ??
sta Ram_0410 ; CPU:$DA93 PRG:1A93 ??
txa ; CPU:$DA95 PRG:1A95 ??
asl a ; CPU:$DA97 PRG:1A97 ??
asl a ; CPU:$DA99 PRG:1A99 ??
tay ; CPU:$DA9B PRG:1A9B ??
lda Ram_0703,y ; CPU:$DA9D PRG:1A9D ??
sta Zp_32 ; CPU:$DA9F PRG:1A9F ??
lda Ram_0700,y ; CPU:$DAA1 PRG:1AA1 ??
sta Zp_33 ; CPU:$DAA3 PRG:1AA3 ??
lda Zp_32 ; CPU:$DAA5 PRG:1AA5 ??
cmp #$DD ; CPU:$DAA7 PRG:1AA7 ??
bcs Flow_DC69 ; CPU:$DAA9 PRG:1AA9 ??
cmp #$1C ; CPU:$DAAB PRG:1AAB ??
bcc Flow_DC59 ; CPU:$DAAD PRG:1AAD ??
jsr ProcessGameState_E056 ; CPU:$DAAF PRG:1AAF ??
bne Flow_DC53 ; CPU:$DAB1 PRG:1AB1 ??
cmp #$10 ; CPU:$DAB3 PRG:1AB3 ??
beq Flow_DC2C ; CPU:$DAB5 PRG:1AB5 ??
cmp #$40 ; CPU:$DAB7 PRG:1AB7 ??
beq Flow_DC2C ; CPU:$DAB9 PRG:1AB9 ??
cmp #$70 ; CPU:$DABB PRG:1ABB ??
beq Flow_DC2C ; CPU:$DABD PRG:1ABD ??
cmp #$A0 ; CPU:$DABF PRG:1ABF ??
beq Flow_DC2C ; CPU:$DAC1 PRG:1AC1 ??
cmp #$D0 ; CPU:$DAC3 PRG:1AC3 ??
bne Flow_DC53 ; CPU:$DAC5 PRG:1AC5 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DC2 C.
; Local behavior: Executes the decoded flow dc2 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DC2C:
jsr ProcessGameState_E03C ; CPU:$DAC7 PRG:1AC7 ??
bne Flow_DC3B ; CPU:$DAC9 PRG:1AC9 ??
jsr ProcessGameState_E01C ; CPU:$DACB PRG:1ACB ??
beq Flow_DC42 ; CPU:$DACD PRG:1ACD ??
jsr ProcessGameState_E02C ; CPU:$DACF PRG:1ACF ??
beq Flow_DC42 ; CPU:$DAD1 PRG:1AD1 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DC3 B.
; Local behavior: Executes the decoded flow dc3 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DC3B:
jsr UpdateObjectState_DFE0 ; CPU:$DAD3 PRG:1AD3 ??
beq Flow_DC42 ; CPU:$DAD5 PRG:1AD5 ??
bne Flow_DC76 ; CPU:$DAD7 PRG:1AD7 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DC42.
; Local behavior: Executes the decoded flow dc42 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DC42:
ldx Ram_040F ; CPU:$DAD9 PRG:1AD9 ??
lda Ram_0407,x ; CPU:$DADB PRG:1ADB ??
and #$0F ; CPU:$DADD PRG:1ADD ??
sta Ram_0407,x ; CPU:$DADF PRG:1ADF ??
jsr ProcessGameState_E10D ; CPU:$DAE1 PRG:1AE1 ??
jmp Flow_DC76 ; CPU:$DAE3 PRG:1AE3 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DC53.
; Local behavior: Executes the decoded flow dc53 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DC53:
lda Zp_32 ; CPU:$DAE5 PRG:1AE5 ??
cmp #$80 ; CPU:$DAE7 PRG:1AE7 ??
bcc Flow_DC69 ; CPU:$DAE9 PRG:1AE9 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DC59.
; Local behavior: Executes the decoded flow dc59 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DC59:
ldx Ram_040F ; CPU:$DAEB PRG:1AEB ??
lda Ram_0448,x ; CPU:$DAED PRG:1AED ??
and #$0F ; CPU:$DAEF PRG:1AEF ??
ora #$20 ; CPU:$DAF1 PRG:1AF1 ??
sta Ram_0448,x ; CPU:$DAF3 PRG:1AF3 ??
jmp Flow_DC76 ; CPU:$DAF5 PRG:1AF5 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DC69.
; Local behavior: Executes the decoded flow dc69 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DC69:
ldx Ram_040F ; CPU:$DAF7 PRG:1AF7 ??
lda Ram_0448,x ; CPU:$DAF9 PRG:1AF9 ??
and #$0F ; CPU:$DAFB PRG:1AFB ??
ora #$40 ; CPU:$DAFD PRG:1AFD ??
sta Ram_0448,x ; CPU:$DAFF PRG:1AFF ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DC76.
; Local behavior: Executes the decoded flow dc76 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DC76:
ldx Ram_040F ; CPU:$DB01 PRG:1B01 ??
jsr UpdateStateField_D27E ; CPU:$DB03 PRG:1B03 ??
ldx Ram_040F ; CPU:$DB05 PRG:1B05 ??
jmp Flow_DBEC ; CPU:$DB07 PRG:1B07 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State DC82.
; Local behavior: Executes the decoded process game state dc82 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_DC82:
lda Zp_45 ; CPU:$DB09 PRG:1B09 ??
and #$3F ; CPU:$DB0B PRG:1B0B ??
bne Flow_DCE5 ; CPU:$DB0D PRG:1B0D ??
inc Ram_042F ; CPU:$DB0F PRG:1B0F ??
lda Ram_042F ; CPU:$DB11 PRG:1B11 ??
cmp #$14 ; CPU:$DB13 PRG:1B13 ??
bcc Flow_DCBB ; CPU:$DB15 PRG:1B15 ??
lda #$00 ; CPU:$DB17 PRG:1B17 ??
sta Ram_042F ; CPU:$DB19 PRG:1B19 ??
ldx #$05 ; CPU:$DB1B PRG:1B1B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DC99.
; Local behavior: Executes the decoded flow dc99 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DC99:
lda Ram_0430,x ; CPU:$DB1D PRG:1B1D ??
and #$10 ; CPU:$DB1F PRG:1B1F ??
beq Flow_DCB1 ; CPU:$DB21 PRG:1B21 ??
lda Ram_0440,x ; CPU:$DB23 PRG:1B23 ??
cmp #$02 ; CPU:$DB25 PRG:1B25 ??
beq Flow_DCB8 ; CPU:$DB27 PRG:1B27 ??
dec Ram_0440,x ; CPU:$DB29 PRG:1B29 ??
lda #$03 ; CPU:$DB2B PRG:1B2B ??
sta Ram_0430,x ; CPU:$DB2D PRG:1B2D ??
bne Flow_DCB8 ; CPU:$DB2F PRG:1B2F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DCB1.
; Local behavior: Executes the decoded flow dcb1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DCB1:
sec ; CPU:$DB31 PRG:1B31 ??
lda Ram_0430,x ; CPU:$DB33 PRG:1B33 ??
rol Ram_0430,x ; CPU:$DB35 PRG:1B35 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DCB8.
; Local behavior: Executes the decoded flow dcb8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DCB8:
dex ; CPU:$DB37 PRG:1B37 ??
bpl Flow_DC99 ; CPU:$DB39 PRG:1B39 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DCBB.
; Local behavior: Executes the decoded flow dcbb sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DCBB:
ldy #$05 ; CPU:$DB3B PRG:1B3B ??
ldx #$14 ; CPU:$DB3D PRG:1B3D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DCBF.
; Local behavior: Executes the decoded flow dcbf sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DCBF:
lda Ram_0407,y ; CPU:$DB3F PRG:1B3F ??
bmi Flow_DCCC ; CPU:$DB41 PRG:1B41 ??
lda Ram_0412,x ; CPU:$DB43 PRG:1B43 ??
beq Flow_DCD5 ; CPU:$DB45 PRG:1B45 ??
dec Ram_0412,x ; CPU:$DB47 PRG:1B47 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DCCC.
; Local behavior: Executes the decoded flow dccc sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DCCC:
dey ; CPU:$DB49 PRG:1B49 ??
dex ; CPU:$DB4B PRG:1B4B ??
dex ; CPU:$DB4D PRG:1B4D ??
dex ; CPU:$DB4F PRG:1B4F ??
dex ; CPU:$DB51 PRG:1B51 ??
bpl Flow_DCBF ; CPU:$DB53 PRG:1B53 ??
bmi Flow_DCE5 ; CPU:$DB55 PRG:1B55 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DCD5.
; Local behavior: Executes the decoded flow dcd5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DCD5:
txa ; CPU:$DB57 PRG:1B57 ??
pha ; CPU:$DB59 PRG:1B59 ??
tya ; CPU:$DB5B PRG:1B5B ??
pha ; CPU:$DB5D PRG:1B5D ??
sty Zp_39 ; CPU:$DB5F PRG:1B5F ??
jsr TransformValue_DCE6 ; CPU:$DB61 PRG:1B61 ??
pla ; CPU:$DB63 PRG:1B63 ??
tay ; CPU:$DB65 PRG:1B65 ??
pla ; CPU:$DB67 PRG:1B67 ??
tax ; CPU:$DB69 PRG:1B69 ??
jmp Flow_DCCC ; CPU:$DB6B PRG:1B6B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DCE5.
; Local behavior: Executes the decoded flow dce5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DCE5:
rts ; CPU:$DB6D PRG:1B6D ??
; -----------------------------------------------------------------------------
; Global purpose: Transform Value DCE6.
; Local behavior: Executes the decoded transform value dce6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_DCE6:
ldy Zp_39 ; CPU:$DB6F PRG:1B6F ??
lda Ram_0407,y ; CPU:$DB71 PRG:1B71 ??
and #$03 ; CPU:$DB73 PRG:1B73 ??
asl a ; CPU:$DB75 PRG:1B75 ??
tay ; CPU:$DB77 PRG:1B77 ??
lda LookupTable_DD28,y ; CPU:$DB79 PRG:1B79 ??
sta Zp_32 ; CPU:$DB7B PRG:1B7B ??
lda Flow_DD29,y ; CPU:$DB7D PRG:1B7D ??
sta Zp_33 ; CPU:$DB7F PRG:1B7F ??
lda LookupTable_DD2E,y ; CPU:$DB81 PRG:1B81 ??
sta Zp_34 ; CPU:$DB83 PRG:1B83 ??
lda LookupTable_DD2F,y ; CPU:$DB85 PRG:1B85 ??
sta Zp_35 ; CPU:$DB87 PRG:1B87 ??
lda Zp_39 ; CPU:$DB89 PRG:1B89 ??
asl a ; CPU:$DB8B PRG:1B8B ??
asl a ; CPU:$DB8D PRG:1B8D ??
tax ; CPU:$DB8F PRG:1B8F ??
ldy Ram_0414,x ; CPU:$DB91 PRG:1B91 ??
lda (Zp_32),y ; CPU:$DB93 PRG:1B93 ??
sta Ram_0411,x ; CPU:$DB95 PRG:1B95 ??
lda (Zp_34),y ; CPU:$DB97 PRG:1B97 ??
sta Ram_0412,x ; CPU:$DB99 PRG:1B99 ??
lda #$00 ; CPU:$DB9B PRG:1B9B ??
sta Ram_0413,x ; CPU:$DB9D PRG:1B9D ??
inc Ram_0414,x ; CPU:$DB9F PRG:1B9F ??
ldy Ram_0414,x ; CPU:$DBA1 PRG:1BA1 ??
lda (Zp_32),y ; CPU:$DBA3 PRG:1BA3 ??
bpl Flow_DD29 ; CPU:$DBA5 PRG:1BA5 ??
lda #$00 ; CPU:$DBA7 PRG:1BA7 ??
sta Ram_0414,x ; CPU:$DBA9 PRG:1BA9 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DD29.
; Local behavior: Executes the decoded flow dd29 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DD29:
rts ; CPU:$DBAB PRG:1BAB ??
.byte $36,$DD,$4B,$DD ; PRG $1D2A | CPU $DD2A ; CPU:$DBAD PRG:1BAD 36 DD 4B DD
LookupTable_DD2E:
.byte $58 ; PRG $1D2E | CPU $DD2E ; CPU:$DBB1 PRG:1BB1 58
LookupTable_DD2F:
.byte $DD,$41,$DD,$52,$DD,$5D,$DD,$04,$03,$04,$05,$04,$04,$05,$04,$04 ; PRG $1D2F | CPU $DD2F ; CPU:$DBB2 PRG:1BB2 DD 41 DD 52 DD 5D DD 04 03 04 05 04 04 05 04 04
.byte $04,$FF,$03,$03,$07,$05,$03,$03,$05,$03,$03,$03,$03,$03,$04,$03 ; PRG $1D3F | CPU $DD3F ; CPU:$DBC2 PRG:1BC2 04 FF 03 03 07 05 03 03 05 03 03 03 03 03 04 03
.byte $03,$04,$FF,$03,$03,$07,$09,$0D,$03,$05,$05,$04,$05,$FF,$09,$17 ; PRG $1D4F | CPU $DD4F ; CPU:$DBD2 PRG:1BD2 03 04 FF 03 03 07 09 0D 03 05 05 04 05 FF 09 17
.byte $09,$13 ; PRG $1D5F | CPU $DD5F ; CPU:$DBE2 PRG:1BE2 09 13
; -----------------------------------------------------------------------------
; Global purpose: Process Game State DD61.
; Local behavior: Executes the decoded process game state dd61 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_DD61:
lda Ram_040E ; CPU:$DBE4 PRG:1BE4 ??
bmi Flow_DD7A ; CPU:$DBE6 PRG:1BE6 ??
ldx #$05 ; CPU:$DBE8 PRG:1BE8 ??
stx Ram_040F ; CPU:$DBEA PRG:1BEA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DD6 B.
; Local behavior: Executes the decoded flow dd6 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DD6B:
ldx Ram_040F ; CPU:$DBEC PRG:1BEC ??
lda Ram_0407,x ; CPU:$DBEE PRG:1BEE ??
and #$F0 ; CPU:$DBF0 PRG:1BF0 ??
beq Flow_DD7B ; CPU:$DBF2 PRG:1BF2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DD75.
; Local behavior: Executes the decoded flow dd75 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DD75:
dec Ram_040F ; CPU:$DBF4 PRG:1BF4 ??
bpl Flow_DD6B ; CPU:$DBF6 PRG:1BF6 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DD7 A.
; Local behavior: Executes the decoded flow dd7 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DD7A:
rts ; CPU:$DBF8 PRG:1BF8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DD7 B.
; Local behavior: Executes the decoded flow dd7 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DD7B:
txa ; CPU:$DBFA PRG:1BFA ??
asl a ; CPU:$DBFC PRG:1BFC ??
asl a ; CPU:$DBFE PRG:1BFE ??
tay ; CPU:$DC00 PRG:1C00 ??
lda Ram_0703,y ; CPU:$DC02 PRG:1C02 ??
sta Zp_32 ; CPU:$DC04 PRG:1C04 ??
lda Ram_0700,y ; CPU:$DC06 PRG:1C06 ??
cmp #$1B ; CPU:$DC08 PRG:1C08 ??
bne Flow_DD90 ; CPU:$DC0A PRG:1C0A ??
lda #$1C ; CPU:$DC0C PRG:1C0C ??
sta Ram_0700,y ; CPU:$DC0E PRG:1C0E ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DD90.
; Local behavior: Executes the decoded flow dd90 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DD90:
sta Zp_33 ; CPU:$DC10 PRG:1C10 ??
lda Ram_0429,x ; CPU:$DC12 PRG:1C12 ??
beq Flow_DD9D ; CPU:$DC14 PRG:1C14 ??
dec Ram_0429,x ; CPU:$DC16 PRG:1C16 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DD9 A.
; Local behavior: Executes the decoded flow dd9 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DD9A:
jmp Flow_DE69 ; CPU:$DC18 PRG:1C18 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DD9 D.
; Local behavior: Executes the decoded flow dd9 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DD9D:
jsr ProcessGameState_E03C ; CPU:$DC1A PRG:1C1A ??
bne Flow_DD9A ; CPU:$DC1C PRG:1C1C ??
jsr ProcessGameState_E056 ; CPU:$DC1E PRG:1C1E ??
bne Flow_DD9A ; CPU:$DC20 PRG:1C20 ??
lda Ram_071F ; CPU:$DC22 PRG:1C22 ??
sta Zp_49 ; CPU:$DC24 PRG:1C24 ??
lda Ram_071C ; CPU:$DC26 PRG:1C26 ??
sta Zp_4A ; CPU:$DC28 PRG:1C28 ??
lda Ram_040F ; CPU:$DC2A PRG:1C2A ??
asl a ; CPU:$DC2C PRG:1C2C ??
asl a ; CPU:$DC2E PRG:1C2E ??
tax ; CPU:$DC30 PRG:1C30 ??
ldy Ram_0411,x ; CPU:$DC32 PRG:1C32 ??
beq Flow_DDCA ; CPU:$DC34 PRG:1C34 ??
dey ; CPU:$DC36 PRG:1C36 ??
beq Flow_DDCD ; CPU:$DC38 PRG:1C38 ??
dey ; CPU:$DC3A PRG:1C3A ??
beq Flow_DDD0 ; CPU:$DC3C PRG:1C3C ??
dey ; CPU:$DC3E PRG:1C3E ??
beq Flow_DDD3 ; CPU:$DC40 PRG:1C40 ??
dey ; CPU:$DC42 PRG:1C42 ??
beq Flow_DDDA ; CPU:$DC44 PRG:1C44 ??
bne Flow_DDF4 ; CPU:$DC46 PRG:1C46 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DDCA.
; Local behavior: Executes the decoded flow ddca sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DDCA:
jmp Flow_DDDA ; CPU:$DC48 PRG:1C48 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DDCD.
; Local behavior: Executes the decoded flow ddcd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DDCD:
jmp Flow_DDF4 ; CPU:$DC4A PRG:1C4A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DDD0.
; Local behavior: Executes the decoded flow ddd0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DDD0:
jmp Flow_DDDA ; CPU:$DC4C PRG:1C4C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DDD3.
; Local behavior: Executes the decoded flow ddd3 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DDD3:
lda Zp_49 ; CPU:$DC4E PRG:1C4E ??
sec ; CPU:$DC50 PRG:1C50 ??
sbc #$08 ; CPU:$DC52 PRG:1C52 ??
sta Zp_49 ; CPU:$DC54 PRG:1C54 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DDDA.
; Local behavior: Executes the decoded flow ddda sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DDDA:
ldx Ram_040F ; CPU:$DC56 PRG:1C56 ??
lda Ram_0448,x ; CPU:$DC58 PRG:1C58 ??
sta Ram_0410 ; CPU:$DC5A PRG:1C5A ??
and #$F0 ; CPU:$DC5C PRG:1C5C ??
cmp #$20 ; CPU:$DC5E PRG:1C5E ??
beq Flow_DDFD ; CPU:$DC60 PRG:1C60 ??
cmp #$40 ; CPU:$DC62 PRG:1C62 ??
beq Flow_DE0F ; CPU:$DC64 PRG:1C64 ??
cmp #$60 ; CPU:$DC66 PRG:1C66 ??
beq Flow_DE21 ; CPU:$DC68 PRG:1C68 ??
jmp Flow_DE33 ; CPU:$DC6A PRG:1C6A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DDF4.
; Local behavior: Executes the decoded flow ddf4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DDF4:
lda Zp_4A ; CPU:$DC6C PRG:1C6C ??
adc #$08 ; CPU:$DC6E PRG:1C6E ??
sta Zp_4A ; CPU:$DC70 PRG:1C70 ??
jmp Flow_DDDA ; CPU:$DC72 PRG:1C72 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DDFD.
; Local behavior: Executes the decoded flow ddfd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DDFD:
lda Zp_4A ; CPU:$DC74 PRG:1C74 ??
and #$FC ; CPU:$DC76 PRG:1C76 ??
sta Zp_34 ; CPU:$DC78 PRG:1C78 ??
lda Zp_33 ; CPU:$DC7A PRG:1C7A ??
and #$FC ; CPU:$DC7C PRG:1C7C ??
cmp Zp_34 ; CPU:$DC7E PRG:1C7E ??
bcs Flow_DE45 ; CPU:$DC80 PRG:1C80 ??
beq Flow_DE48 ; CPU:$DC82 PRG:1C82 ??
bcc Flow_DE4B ; CPU:$DC84 PRG:1C84 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE0 F.
; Local behavior: Executes the decoded flow de0 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE0F:
lda Zp_4A ; CPU:$DC86 PRG:1C86 ??
and #$FC ; CPU:$DC88 PRG:1C88 ??
sta Zp_34 ; CPU:$DC8A PRG:1C8A ??
lda Zp_33 ; CPU:$DC8C PRG:1C8C ??
and #$FC ; CPU:$DC8E PRG:1C8E ??
cmp Zp_34 ; CPU:$DC90 PRG:1C90 ??
bcs Flow_DE4E ; CPU:$DC92 PRG:1C92 ??
beq Flow_DE51 ; CPU:$DC94 PRG:1C94 ??
bcc Flow_DE54 ; CPU:$DC96 PRG:1C96 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE21.
; Local behavior: Executes the decoded flow de21 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE21:
lda Zp_49 ; CPU:$DC98 PRG:1C98 ??
and #$FC ; CPU:$DC9A PRG:1C9A ??
sta Zp_34 ; CPU:$DC9C PRG:1C9C ??
lda Zp_32 ; CPU:$DC9E PRG:1C9E ??
and #$FC ; CPU:$DCA0 PRG:1CA0 ??
cmp Zp_34 ; CPU:$DCA2 PRG:1CA2 ??
bcc Flow_DE57 ; CPU:$DCA4 PRG:1CA4 ??
beq Flow_DE5A ; CPU:$DCA6 PRG:1CA6 ??
bcs Flow_DE5D ; CPU:$DCA8 PRG:1CA8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE33.
; Local behavior: Executes the decoded flow de33 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE33:
lda Zp_49 ; CPU:$DCAA PRG:1CAA ??
and #$FC ; CPU:$DCAC PRG:1CAC ??
sta Zp_34 ; CPU:$DCAE PRG:1CAE ??
lda Zp_32 ; CPU:$DCB0 PRG:1CB0 ??
and #$FC ; CPU:$DCB2 PRG:1CB2 ??
cmp Zp_34 ; CPU:$DCB4 PRG:1CB4 ??
bcc Flow_DE60 ; CPU:$DCB6 PRG:1CB6 ??
beq Flow_DE63 ; CPU:$DCB8 PRG:1CB8 ??
bcs Flow_DE66 ; CPU:$DCBA PRG:1CBA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE45.
; Local behavior: Executes the decoded flow de45 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE45:
jmp Flow_DE94 ; CPU:$DCBC PRG:1CBC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE48.
; Local behavior: Executes the decoded flow de48 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE48:
jmp Flow_DEAB ; CPU:$DCBE PRG:1CBE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE4 B.
; Local behavior: Executes the decoded flow de4 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE4B:
jmp Flow_DEC2 ; CPU:$DCC0 PRG:1CC0 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE4 E.
; Local behavior: Executes the decoded flow de4 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE4E:
jmp Flow_DED9 ; CPU:$DCC2 PRG:1CC2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE51.
; Local behavior: Executes the decoded flow de51 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE51:
jmp Flow_DEF3 ; CPU:$DCC4 PRG:1CC4 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE54.
; Local behavior: Executes the decoded flow de54 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE54:
jmp Flow_DF0A ; CPU:$DCC6 PRG:1CC6 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE57.
; Local behavior: Executes the decoded flow de57 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE57:
jmp Flow_DF21 ; CPU:$DCC8 PRG:1CC8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE5 A.
; Local behavior: Executes the decoded flow de5 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE5A:
jmp Flow_DF38 ; CPU:$DCCA PRG:1CCA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE5 D.
; Local behavior: Executes the decoded flow de5 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE5D:
jmp Flow_DF4F ; CPU:$DCCC PRG:1CCC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE60.
; Local behavior: Executes the decoded flow de60 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE60:
jmp Flow_DF66 ; CPU:$DCCE PRG:1CCE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE63.
; Local behavior: Executes the decoded flow de63 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE63:
jmp Flow_DF7D ; CPU:$DCD0 PRG:1CD0 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE66.
; Local behavior: Executes the decoded flow de66 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE66:
jmp Flow_DF94 ; CPU:$DCD2 PRG:1CD2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE69.
; Local behavior: Executes the decoded flow de69 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE69:
ldx Ram_040F ; CPU:$DCD4 PRG:1CD4 ??
jsr DispatchHandler_D44F ; CPU:$DCD6 PRG:1CD6 ??
bne Flow_DE7A ; CPU:$DCD8 PRG:1CD8 ??
ldx Ram_040F ; CPU:$DCDA PRG:1CDA ??
jsr UpdateStateField_D27E ; CPU:$DCDC PRG:1CDC ??
jmp Flow_DD75 ; CPU:$DCDE PRG:1CDE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE7 A.
; Local behavior: Executes the decoded flow de7 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE7A:
ldx Ram_040F ; CPU:$DCE0 PRG:1CE0 ??
lda Ram_0448,x ; CPU:$DCE2 PRG:1CE2 ??
sta Ram_0410 ; CPU:$DCE4 PRG:1CE4 ??
and #$F0 ; CPU:$DCE6 PRG:1CE6 ??
cmp #$20 ; CPU:$DCE8 PRG:1CE8 ??
beq Flow_DEAB ; CPU:$DCEA PRG:1CEA ??
cmp #$40 ; CPU:$DCEC PRG:1CEC ??
beq Flow_DE51 ; CPU:$DCEE PRG:1CEE ??
cmp #$60 ; CPU:$DCF0 PRG:1CF0 ??
beq Flow_DE5A ; CPU:$DCF2 PRG:1CF2 ??
jmp Flow_DF7D ; CPU:$DCF4 PRG:1CF4 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DE94.
; Local behavior: Executes the decoded flow de94 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DE94:
jsr UpdateObjectState_DFE0 ; CPU:$DCF6 PRG:1CF6 ??
beq Flow_DEF0 ; CPU:$DCF8 PRG:1CF8 ??
jsr ProcessGameState_E01C ; CPU:$DCFA PRG:1CFA ??
beq Flow_DEF0 ; CPU:$DCFC PRG:1CFC ??
jsr ProcessGameState_E02C ; CPU:$DCFE PRG:1CFE ??
beq Flow_DEF0 ; CPU:$DD00 PRG:1D00 ??
jsr UpdateObjectState_DFFE ; CPU:$DD02 PRG:1D02 ??
beq Flow_DEF0 ; CPU:$DD04 PRG:1D04 ??
jmp Flow_DFC1 ; CPU:$DD06 PRG:1D06 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DEAB.
; Local behavior: Executes the decoded flow deab sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DEAB:
jsr ProcessGameState_E01C ; CPU:$DD08 PRG:1D08 ??
beq Flow_DEF0 ; CPU:$DD0A PRG:1D0A ??
jsr UpdateObjectState_DFE0 ; CPU:$DD0C PRG:1D0C ??
beq Flow_DEF0 ; CPU:$DD0E PRG:1D0E ??
jsr UpdateObjectState_DFFE ; CPU:$DD10 PRG:1D10 ??
beq Flow_DEF0 ; CPU:$DD12 PRG:1D12 ??
jsr ProcessGameState_E02C ; CPU:$DD14 PRG:1D14 ??
beq Flow_DEF0 ; CPU:$DD16 PRG:1D16 ??
jmp Flow_DFC1 ; CPU:$DD18 PRG:1D18 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DEC2.
; Local behavior: Executes the decoded flow dec2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DEC2:
jsr UpdateObjectState_DFFE ; CPU:$DD1A PRG:1D1A ??
beq Flow_DEF0 ; CPU:$DD1C PRG:1D1C ??
jsr ProcessGameState_E01C ; CPU:$DD1E PRG:1D1E ??
beq Flow_DEF0 ; CPU:$DD20 PRG:1D20 ??
jsr ProcessGameState_E02C ; CPU:$DD22 PRG:1D22 ??
beq Flow_DEF0 ; CPU:$DD24 PRG:1D24 ??
jsr UpdateObjectState_DFE0 ; CPU:$DD26 PRG:1D26 ??
beq Flow_DEF0 ; CPU:$DD28 PRG:1D28 ??
jmp Flow_DFC1 ; CPU:$DD2A PRG:1D2A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DED9.
; Local behavior: Executes the decoded flow ded9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DED9:
jsr UpdateObjectState_DFE0 ; CPU:$DD2C PRG:1D2C ??
beq Flow_DEF0 ; CPU:$DD2E PRG:1D2E ??
jsr ProcessGameState_E02C ; CPU:$DD30 PRG:1D30 ??
beq Flow_DEF0 ; CPU:$DD32 PRG:1D32 ??
jsr UpdateObjectState_DFFE ; CPU:$DD34 PRG:1D34 ??
beq Flow_DEF0 ; CPU:$DD36 PRG:1D36 ??
jsr ProcessGameState_E01C ; CPU:$DD38 PRG:1D38 ??
beq Flow_DEF0 ; CPU:$DD3A PRG:1D3A ??
jmp Flow_DFC1 ; CPU:$DD3C PRG:1D3C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DEF0.
; Local behavior: Executes the decoded flow def0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DEF0:
jmp Flow_DFAB ; CPU:$DD3E PRG:1D3E ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DEF3.
; Local behavior: Executes the decoded flow def3 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DEF3:
jsr ProcessGameState_E02C ; CPU:$DD40 PRG:1D40 ??
beq Flow_DEF0 ; CPU:$DD42 PRG:1D42 ??
jsr UpdateObjectState_DFFE ; CPU:$DD44 PRG:1D44 ??
beq Flow_DEF0 ; CPU:$DD46 PRG:1D46 ??
jsr UpdateObjectState_DFE0 ; CPU:$DD48 PRG:1D48 ??
beq Flow_DEF0 ; CPU:$DD4A PRG:1D4A ??
jsr ProcessGameState_E01C ; CPU:$DD4C PRG:1D4C ??
beq Flow_DEF0 ; CPU:$DD4E PRG:1D4E ??
jmp Flow_DFC1 ; CPU:$DD50 PRG:1D50 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DF0 A.
; Local behavior: Executes the decoded flow df0 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DF0A:
jsr UpdateObjectState_DFFE ; CPU:$DD52 PRG:1D52 ??
beq Flow_DEF0 ; CPU:$DD54 PRG:1D54 ??
jsr ProcessGameState_E02C ; CPU:$DD56 PRG:1D56 ??
beq Flow_DEF0 ; CPU:$DD58 PRG:1D58 ??
jsr UpdateObjectState_DFE0 ; CPU:$DD5A PRG:1D5A ??
beq Flow_DEF0 ; CPU:$DD5C PRG:1D5C ??
jsr ProcessGameState_E01C ; CPU:$DD5E PRG:1D5E ??
beq Flow_DEF0 ; CPU:$DD60 PRG:1D60 ??
jmp Flow_DFC1 ; CPU:$DD62 PRG:1D62 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DF21.
; Local behavior: Executes the decoded flow df21 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DF21:
jsr ProcessGameState_E01C ; CPU:$DD64 PRG:1D64 ??
beq Flow_DEF0 ; CPU:$DD66 PRG:1D66 ??
jsr UpdateObjectState_DFE0 ; CPU:$DD68 PRG:1D68 ??
beq Flow_DEF0 ; CPU:$DD6A PRG:1D6A ??
jsr ProcessGameState_E02C ; CPU:$DD6C PRG:1D6C ??
beq Flow_DEF0 ; CPU:$DD6E PRG:1D6E ??
jsr UpdateObjectState_DFFE ; CPU:$DD70 PRG:1D70 ??
beq Flow_DEF0 ; CPU:$DD72 PRG:1D72 ??
jmp Flow_DFC1 ; CPU:$DD74 PRG:1D74 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DF38.
; Local behavior: Executes the decoded flow df38 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DF38:
jsr UpdateObjectState_DFE0 ; CPU:$DD76 PRG:1D76 ??
beq Flow_DFAB ; CPU:$DD78 PRG:1D78 ??
jsr ProcessGameState_E01C ; CPU:$DD7A PRG:1D7A ??
beq Flow_DFAB ; CPU:$DD7C PRG:1D7C ??
jsr ProcessGameState_E02C ; CPU:$DD7E PRG:1D7E ??
beq Flow_DFAB ; CPU:$DD80 PRG:1D80 ??
jsr UpdateObjectState_DFFE ; CPU:$DD82 PRG:1D82 ??
beq Flow_DFAB ; CPU:$DD84 PRG:1D84 ??
jmp Flow_DFC1 ; CPU:$DD86 PRG:1D86 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DF4 F.
; Local behavior: Executes the decoded flow df4 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DF4F:
jsr ProcessGameState_E02C ; CPU:$DD88 PRG:1D88 ??
beq Flow_DFAB ; CPU:$DD8A PRG:1D8A ??
jsr UpdateObjectState_DFE0 ; CPU:$DD8C PRG:1D8C ??
beq Flow_DFAB ; CPU:$DD8E PRG:1D8E ??
jsr ProcessGameState_E01C ; CPU:$DD90 PRG:1D90 ??
beq Flow_DFAB ; CPU:$DD92 PRG:1D92 ??
jsr UpdateObjectState_DFFE ; CPU:$DD94 PRG:1D94 ??
beq Flow_DFAB ; CPU:$DD96 PRG:1D96 ??
jmp Flow_DFC1 ; CPU:$DD98 PRG:1D98 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DF66.
; Local behavior: Executes the decoded flow df66 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DF66:
jsr ProcessGameState_E01C ; CPU:$DD9A PRG:1D9A ??
beq Flow_DFAB ; CPU:$DD9C PRG:1D9C ??
jsr UpdateObjectState_DFFE ; CPU:$DD9E PRG:1D9E ??
beq Flow_DFAB ; CPU:$DDA0 PRG:1DA0 ??
jsr ProcessGameState_E02C ; CPU:$DDA2 PRG:1DA2 ??
beq Flow_DFAB ; CPU:$DDA4 PRG:1DA4 ??
jsr UpdateObjectState_DFE0 ; CPU:$DDA6 PRG:1DA6 ??
beq Flow_DFAB ; CPU:$DDA8 PRG:1DA8 ??
jmp Flow_DFC1 ; CPU:$DDAA PRG:1DAA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DF7 D.
; Local behavior: Executes the decoded flow df7 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DF7D:
jsr UpdateObjectState_DFFE ; CPU:$DDAC PRG:1DAC ??
beq Flow_DFAB ; CPU:$DDAE PRG:1DAE ??
jsr ProcessGameState_E02C ; CPU:$DDB0 PRG:1DB0 ??
beq Flow_DFAB ; CPU:$DDB2 PRG:1DB2 ??
jsr ProcessGameState_E01C ; CPU:$DDB4 PRG:1DB4 ??
beq Flow_DFAB ; CPU:$DDB6 PRG:1DB6 ??
jsr UpdateObjectState_DFE0 ; CPU:$DDB8 PRG:1DB8 ??
beq Flow_DFAB ; CPU:$DDBA PRG:1DBA ??
jmp Flow_DFC1 ; CPU:$DDBC PRG:1DBC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DF94.
; Local behavior: Executes the decoded flow df94 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DF94:
jsr ProcessGameState_E02C ; CPU:$DDBE PRG:1DBE ??
beq Flow_DFAB ; CPU:$DDC0 PRG:1DC0 ??
jsr UpdateObjectState_DFFE ; CPU:$DDC2 PRG:1DC2 ??
beq Flow_DFAB ; CPU:$DDC4 PRG:1DC4 ??
jsr ProcessGameState_E01C ; CPU:$DDC6 PRG:1DC6 ??
beq Flow_DFAB ; CPU:$DDC8 PRG:1DC8 ??
jsr UpdateObjectState_DFE0 ; CPU:$DDCA PRG:1DCA ??
beq Flow_DFAB ; CPU:$DDCC PRG:1DCC ??
jmp Flow_DFC1 ; CPU:$DDCE PRG:1DCE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DFAB.
; Local behavior: Executes the decoded flow dfab sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DFAB:
ldx Ram_040F ; CPU:$DDD0 PRG:1DD0 ??
lda #$00 ; CPU:$DDD2 PRG:1DD2 ??
sta Ram_0413,x ; CPU:$DDD4 PRG:1DD4 ??
lda #$10 ; CPU:$DDD6 PRG:1DD6 ??
sta Ram_0429,x ; CPU:$DDD8 PRG:1DD8 ??
ldx Ram_040F ; CPU:$DDDA PRG:1DDA ??
jsr UpdateStateField_D27E ; CPU:$DDDC PRG:1DDC ??
jmp Flow_DD75 ; CPU:$DDDE PRG:1DDE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DFC1.
; Local behavior: Executes the decoded flow dfc1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DFC1:
ldx Ram_040F ; CPU:$DDE0 PRG:1DE0 ??
lda Ram_0407,x ; CPU:$DDE2 PRG:1DE2 ??
and #$03 ; CPU:$DDE4 PRG:1DE4 ??
tax ; CPU:$DDE6 PRG:1DE6 ??
dec Ram_045D,x ; CPU:$DDE8 PRG:1DE8 ??
ldx Ram_040F ; CPU:$DDEA PRG:1DEA ??
asl a ; CPU:$DDEC PRG:1DEC ??
asl a ; CPU:$DDEE PRG:1DEE ??
tay ; CPU:$DDF0 PRG:1DF0 ??
lda #$00 ; CPU:$DDF2 PRG:1DF2 ??
sta Ram_0702,y ; CPU:$DDF4 PRG:1DF4 ??
lda #$FF ; CPU:$DDF6 PRG:1DF6 ??
sta Ram_0407,x ; CPU:$DDF8 PRG:1DF8 ??
jmp Flow_DD75 ; CPU:$DDFA PRG:1DFA ??
; -----------------------------------------------------------------------------
; Global purpose: Update Object State DFE0.
; Local behavior: Executes the decoded update object state dfe0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
UpdateObjectState_DFE0:
ldx Ram_040F ; CPU:$DDFC PRG:1DFC ??
lda Ram_0410 ; CPU:$DDFE PRG:1DFE ??
and #$0F ; CPU:$DE00 PRG:1E00 ??
ora #$60 ; CPU:$DE02 PRG:1E02 ??
sta Ram_0448,x ; CPU:$DE04 PRG:1E04 ??
jsr DispatchHandler_D44F ; CPU:$DE06 PRG:1E06 ??
bne Flow_DFFD ; CPU:$DE08 PRG:1E08 ??
lda Ram_0700,y ; CPU:$DE0A PRG:1E0A ??
sec ; CPU:$DE0C PRG:1E0C ??
sbc #$01 ; CPU:$DE0E PRG:1E0E ??
sta Ram_0700,y ; CPU:$DE10 PRG:1E10 ??
lda #$00 ; CPU:$DE12 PRG:1E12 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow DFFD.
; Local behavior: Executes the decoded flow dffd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_DFFD:
rts ; CPU:$DE14 PRG:1E14 ??
; -----------------------------------------------------------------------------
; Global purpose: Update Object State DFFE.
; Local behavior: Executes the decoded update object state dffe sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
UpdateObjectState_DFFE:
ldx Ram_040F ; CPU:$DE16 PRG:1E16 ??
lda Ram_0410 ; CPU:$DE18 PRG:1E18 ??
and #$0F ; CPU:$DE1A PRG:1E1A ??
ora #$80 ; CPU:$DE1C PRG:1E1C ??
sta Ram_0448,x ; CPU:$DE1E PRG:1E1E ??
jsr DispatchHandler_D44F ; CPU:$DE20 PRG:1E20 ??
bne Flow_E01B ; CPU:$DE22 PRG:1E22 ??
lda Ram_0700,y ; CPU:$DE24 PRG:1E24 ??
clc ; CPU:$DE26 PRG:1E26 ??
adc #$01 ; CPU:$DE28 PRG:1E28 ??
sta Ram_0700,y ; CPU:$DE2A PRG:1E2A ??
lda #$00 ; CPU:$DE2C PRG:1E2C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E01 B.
; Local behavior: Executes the decoded flow e01 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E01B:
rts ; CPU:$DE2E PRG:1E2E ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E01 C.
; Local behavior: Executes the decoded process game state e01 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E01C:
ldx Ram_040F ; CPU:$DE30 PRG:1E30 ??
lda Ram_0410 ; CPU:$DE32 PRG:1E32 ??
and #$0F ; CPU:$DE34 PRG:1E34 ??
ora #$20 ; CPU:$DE36 PRG:1E36 ??
sta Ram_0448,x ; CPU:$DE38 PRG:1E38 ??
jmp DispatchHandler_D44F ; CPU:$DE3A PRG:1E3A ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E02 C.
; Local behavior: Executes the decoded process game state e02 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E02C:
ldx Ram_040F ; CPU:$DE3C PRG:1E3C ??
lda Ram_0410 ; CPU:$DE3E PRG:1E3E ??
and #$0F ; CPU:$DE40 PRG:1E40 ??
ora #$40 ; CPU:$DE42 PRG:1E42 ??
sta Ram_0448,x ; CPU:$DE44 PRG:1E44 ??
jmp DispatchHandler_D44F ; CPU:$DE46 PRG:1E46 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E03 C.
; Local behavior: Executes the decoded process game state e03 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E03C:
lda Zp_33 ; CPU:$DE48 PRG:1E48 ??
and #$0F ; CPU:$DE4A PRG:1E4A ??
cmp #$0A ; CPU:$DE4C PRG:1E4C ??
bcc Flow_E052 ; CPU:$DE4E PRG:1E4E ??
cmp #$0F ; CPU:$DE50 PRG:1E50 ??
beq Flow_E053 ; CPU:$DE52 PRG:1E52 ??
lda Zp_33 ; CPU:$DE54 PRG:1E54 ??
and #$F0 ; CPU:$DE56 PRG:1E56 ??
ora #$0C ; CPU:$DE58 PRG:1E58 ??
sta Zp_33 ; CPU:$DE5A PRG:1E5A ??
lda #$00 ; CPU:$DE5C PRG:1E5C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E052.
; Local behavior: Executes the decoded flow e052 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E052:
rts ; CPU:$DE5E PRG:1E5E ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E053.
; Local behavior: Executes the decoded flow e053 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E053:
lda #$FF ; CPU:$DE60 PRG:1E60 ??
rts ; CPU:$DE62 PRG:1E62 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E056.
; Local behavior: Executes the decoded process game state e056 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E056:
lda Zp_32 ; CPU:$DE64 PRG:1E64 ??
sta Zp_37 ; CPU:$DE66 PRG:1E66 ??
lda Zp_37 ; CPU:$DE68 PRG:1E68 ??
and #$0F ; CPU:$DE6A PRG:1E6A ??
cmp #$04 ; CPU:$DE6C PRG:1E6C ??
beq Flow_E07D ; CPU:$DE6E PRG:1E6E ??
cmp #$0C ; CPU:$DE70 PRG:1E70 ??
bne Flow_E08F ; CPU:$DE72 PRG:1E72 ??
lda Zp_37 ; CPU:$DE74 PRG:1E74 ??
and #$F0 ; CPU:$DE76 PRG:1E76 ??
cmp #$10 ; CPU:$DE78 PRG:1E78 ??
beq Flow_E08F ; CPU:$DE7A PRG:1E7A ??
cmp #$40 ; CPU:$DE7C PRG:1E7C ??
beq Flow_E08F ; CPU:$DE7E PRG:1E7E ??
cmp #$70 ; CPU:$DE80 PRG:1E80 ??
beq Flow_E08F ; CPU:$DE82 PRG:1E82 ??
cmp #$A0 ; CPU:$DE84 PRG:1E84 ??
beq Flow_E08F ; CPU:$DE86 PRG:1E86 ??
cmp #$D0 ; CPU:$DE88 PRG:1E88 ??
rts ; CPU:$DE8A PRG:1E8A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E07 D.
; Local behavior: Executes the decoded flow e07 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E07D:
lda Zp_37 ; CPU:$DE8C PRG:1E8C ??
and #$F0 ; CPU:$DE8E PRG:1E8E ??
cmp #$30 ; CPU:$DE90 PRG:1E90 ??
beq Flow_E08F ; CPU:$DE92 PRG:1E92 ??
cmp #$60 ; CPU:$DE94 PRG:1E94 ??
beq Flow_E08F ; CPU:$DE96 PRG:1E96 ??
cmp #$90 ; CPU:$DE98 PRG:1E98 ??
beq Flow_E08F ; CPU:$DE9A PRG:1E9A ??
cmp #$C0 ; CPU:$DE9C PRG:1E9C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E08 F.
; Local behavior: Executes the decoded flow e08 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E08F:
rts ; CPU:$DE9E PRG:1E9E ??
.byte $86,$40,$84,$41,$AC,$02,$04,$B9,$DE,$E0,$8D,$63,$04,$A5,$34,$85 ; PRG $2090 | CPU $E090 ; CPU:$DEA0 PRG:1EA0 86 40 84 41 AC 02 04 B9 DE E0 8D 63 04 A5 34 85
.byte $3F,$98,$20,$FA,$CE,$A5,$3F,$85,$34,$A9,$00,$85,$8E,$A4,$41,$A6 ; PRG $20A0 | CPU $E0A0 ; CPU:$DEB0 PRG:1EB0 3F 98 20 FA CE A5 3F 85 34 A9 00 85 8E A4 41 A6
.byte $40,$A9,$0B,$20,$26,$C0,$60 ; PRG $20B0 | CPU $E0B0 ; CPU:$DEC0 PRG:1EC0 40 A9 0B 20 26 C0 60
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E0 B7.
; Local behavior: Executes the decoded process game state e0 b7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E0B7:
lda Ram_0463 ; CPU:$DEC7 PRG:1EC7 ??
beq Flow_E0D7 ; CPU:$DEC9 PRG:1EC9 ??
jsr ProcessGameState_E8A9 ; CPU:$DECB PRG:1ECB ??
lda Zp_45 ; CPU:$DECD PRG:1ECD ??
and #$3F ; CPU:$DECF PRG:1ECF ??
bne Flow_E0D7 ; CPU:$DED1 PRG:1ED1 ??
dec Ram_0463 ; CPU:$DED3 PRG:1ED3 ??
bne Flow_E0D7 ; CPU:$DED5 PRG:1ED5 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E0 CA.
; Local behavior: Executes the decoded process game state e0 ca sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E0CA:
lda Ram_0402 ; CPU:$DED7 PRG:1ED7 ??
jsr TransformValue_CF44 ; CPU:$DED9 PRG:1ED9 ??
lda #$00 ; CPU:$DEDB PRG:1EDB ??
sta Zp_8E ; CPU:$DEDD PRG:1EDD ??
jsr ProcessGameState_E10D ; CPU:$DEDF PRG:1EDF ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E0 D7.
; Local behavior: Executes the decoded flow e0 d7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E0D7:
rts ; CPU:$DEE1 PRG:1EE1 ??
.byte $BC,$C0,$B8,$BC,$C0,$B8,$07,$06,$05,$04,$03,$03 ; PRG $20D8 | CPU $E0D8 ; CPU:$DEE3 PRG:1EE3 BC C0 B8 BC C0 B8 07 06 05 04 03 03
; -----------------------------------------------------------------------------
; Global purpose: Update Object State E0 E4.
; Local behavior: Executes the decoded update object state e0 e4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
UpdateObjectState_E0E4:
sta Ram_07F9 ; CPU:$DEEF PRG:1EEF ??
lda #$01 ; CPU:$DEF1 PRG:1EF1 ??
sta Ram_07FA ; CPU:$DEF3 PRG:1EF3 ??
sta Ram_07FE ; CPU:$DEF5 PRG:1EF5 ??
lda Ram_0700,y ; CPU:$DEF7 PRG:1EF7 ??
sec ; CPU:$DEF9 PRG:1EF9 ??
sbc #$08 ; CPU:$DEFB PRG:1EFB ??
sta Ram_07F8 ; CPU:$DEFD PRG:1EFD ??
sta Ram_07FC ; CPU:$DEFF PRG:1EFF ??
lda #$EE ; CPU:$DF01 PRG:1F01 ??
sta Ram_07FD ; CPU:$DF03 PRG:1F03 ??
lda Ram_0703,y ; CPU:$DF05 PRG:1F05 ??
sta Ram_07FB ; CPU:$DF07 PRG:1F07 ??
clc ; CPU:$DF09 PRG:1F09 ??
adc #$08 ; CPU:$DF0B PRG:1F0B ??
sta Ram_07FF ; CPU:$DF0D PRG:1F0D ??
rts ; CPU:$DF0F PRG:1F0F ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E10 D.
; Local behavior: Executes the decoded process game state e10 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E10D:
stx Zp_43 ; CPU:$DF11 PRG:1F11 ??
lda #$F0 ; CPU:$DF13 PRG:1F13 ??
ldx #$00 ; CPU:$DF15 PRG:1F15 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E113.
; Local behavior: Executes the decoded flow e113 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E113:
sta Ram_07F8,x ; CPU:$DF17 PRG:1F17 ??
inx ; CPU:$DF19 PRG:1F19 ??
cpx #$08 ; CPU:$DF1B PRG:1F1B ??
bne Flow_E113 ; CPU:$DF1D PRG:1F1D ??
ldx Zp_43 ; CPU:$DF1F PRG:1F1F ??
rts ; CPU:$DF21 PRG:1F21 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E11 E.
; Local behavior: Executes the decoded process game state e11 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E11E:
lda #$00 ; CPU:$DF23 PRG:1F23 ??
sta Ram_0471 ; CPU:$DF25 PRG:1F25 ??
ldy Ram_0471 ; CPU:$DF27 PRG:1F27 ??
lda OamBuffer,y ; CPU:$DF29 PRG:1F29 ??
bne Flow_E12C ; CPU:$DF2B PRG:1F2B ??
rts ; CPU:$DF2D PRG:1F2D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E12 C.
; Local behavior: Executes the decoded flow e12 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E12C:
and #$0F ; CPU:$DF2F PRG:1F2F ??
sta Zp_32 ; CPU:$DF31 PRG:1F31 ??
lda Ram_0201,y ; CPU:$DF33 PRG:1F33 ??
sta Zp_33 ; CPU:$DF35 PRG:1F35 ??
lda Ram_0202,y ; CPU:$DF37 PRG:1F37 ??
sta Zp_34 ; CPU:$DF39 PRG:1F39 ??
lda OamBuffer,y ; CPU:$DF3B PRG:1F3B ??
and #$F0 ; CPU:$DF3D PRG:1F3D ??
lsr a ; CPU:$DF3F PRG:1F3F ??
lsr a ; CPU:$DF41 PRG:1F41 ??
lsr a ; CPU:$DF43 PRG:1F43 ??
tax ; CPU:$DF45 PRG:1F45 ??
lda LookupTable_E150,x ; CPU:$DF47 PRG:1F47 ??
sta Zp_35 ; CPU:$DF49 PRG:1F49 ??
lda LookupTable_E151,x ; CPU:$DF4B PRG:1F4B ??
sta Zp_36 ; CPU:$DF4D PRG:1F4D ??
jmp (Zp_35) ; CPU:$DF4F PRG:1F4F ??
LookupTable_E150:
.byte $7B ; PRG $2150 | CPU $E150 ; CPU:$DF51 PRG:1F51 7B
LookupTable_E151:
.byte $E1,$8D,$E1,$A5,$E1,$DE,$E1,$0D,$E2,$3C,$E2,$27,$E3,$70,$E1,$70 ; PRG $2151 | CPU $E151 ; CPU:$DF52 PRG:1F52 E1 8D E1 A5 E1 DE E1 0D E2 3C E2 27 E3 70 E1 70
.byte $E1,$70,$E1,$6B,$E2,$9A,$E2,$C9,$E2,$F8,$E2,$95,$E3,$7B,$E1,$EA ; PRG $2161 | CPU $E161 ; CPU:$DF62 PRG:1F62 E1 70 E1 6B E2 9A E2 C9 E2 F8 E2 95 E3 7B E1 EA
.byte $B9,$00,$02,$29,$0F,$09,$10,$99,$00,$02,$20,$A8,$E5,$EE,$71,$04 ; PRG $2171 | CPU $E171 ; CPU:$DF72 PRG:1F72 B9 00 02 29 0F 09 10 99 00 02 20 A8 E5 EE 71 04
.byte $EE,$71,$04,$EE,$71,$04,$EE,$71,$04,$4C,$23,$E1,$20,$A2,$E4,$D0 ; PRG $2181 | CPU $E181 ; CPU:$DF82 PRG:1F82 EE 71 04 EE 71 04 EE 71 04 4C 23 E1 20 A2 E4 D0
.byte $10,$20,$3A,$E5,$D0,$0B,$20,$23,$CB,$98,$AA,$FE,$02,$02,$20,$EA ; PRG $2191 | CPU $E191 ; CPU:$DF92 PRG:1F92 10 20 3A E5 D0 0B 20 23 CB 98 AA FE 02 02 20 EA
.byte $EA,$4C,$7B,$E1,$B9,$03,$02,$29,$10,$D0,$18,$38,$A5,$34,$E9,$08 ; PRG $21A1 | CPU $E1A1 ; CPU:$DFA2 PRG:1FA2 EA 4C 7B E1 B9 03 02 29 10 D0 18 38 A5 34 E9 08
.byte $85,$34,$99,$02,$02,$20,$72,$E4,$B9,$03,$02,$09,$10,$99,$03,$02 ; PRG $21B1 | CPU $E1B1 ; CPU:$DFB2 PRG:1FB2 85 34 99 02 02 20 72 E4 B9 03 02 09 10 99 03 02
.byte $4C,$7B,$E1,$A5,$45,$29,$03,$D0,$F7,$B9,$03,$02,$29,$0F,$99,$03 ; PRG $21C1 | CPU $E1C1 ; CPU:$DFC2 PRG:1FC2 4C 7B E1 A5 45 29 03 D0 F7 B9 03 02 29 0F 99 03
.byte $02,$B9,$00,$02,$29,$0F,$09,$30,$99,$00,$02,$D0,$E3,$B9,$03,$02 ; PRG $21D1 | CPU $E1D1 ; CPU:$DFD2 PRG:1FD2 02 B9 00 02 29 0F 09 30 99 00 02 D0 E3 B9 03 02
.byte $29,$10,$D0,$0E,$20,$78,$E4,$B9,$03,$02,$09,$10,$99,$03,$02,$4C ; PRG $21E1 | CPU $E1E1 ; CPU:$DFE2 PRG:1FE2 29 10 D0 0E 20 78 E4 B9 03 02 09 10 99 03 02 4C
.byte $7B,$E1,$A5,$45,$29,$03,$D0,$F7,$B9,$03,$02,$29,$0F,$99,$03,$02 ; PRG $21F1 | CPU $E1F1 ; CPU:$DFF2 PRG:1FF2 7B E1 A5 45 29 03 D0 F7 B9 03 02 29 0F 99 03 02
.byte $B9,$00,$02,$29,$0F,$09,$40,$99,$00,$02,$D0,$E3,$B9,$03,$02,$29 ; PRG $2201 | CPU $E201 ; CPU:$E002 PRG:2002 B9 00 02 29 0F 09 40 99 00 02 D0 E3 B9 03 02 29
.byte $10,$D0,$0E,$20,$7E,$E4,$B9,$03,$02,$09,$10,$99,$03,$02,$4C,$7B ; PRG $2211 | CPU $E211 ; CPU:$E012 PRG:2012 10 D0 0E 20 7E E4 B9 03 02 09 10 99 03 02 4C 7B
.byte $E1,$A5,$45,$29,$03,$D0,$F7,$B9,$03,$02,$29,$0F,$99,$03,$02,$B9 ; PRG $2221 | CPU $E221 ; CPU:$E022 PRG:2022 E1 A5 45 29 03 D0 F7 B9 03 02 29 0F 99 03 02 B9
.byte $00,$02,$09,$50,$29,$5F,$99,$00,$02,$D0,$E3,$B9,$03,$02,$29,$10 ; PRG $2231 | CPU $E231 ; CPU:$E032 PRG:2032 00 02 09 50 29 5F 99 00 02 D0 E3 B9 03 02 29 10
.byte $D0,$0E,$20,$84,$E4,$B9,$03,$02,$09,$10,$99,$03,$02,$4C,$7B,$E1 ; PRG $2241 | CPU $E241 ; CPU:$E042 PRG:2042 D0 0E 20 84 E4 B9 03 02 09 10 99 03 02 4C 7B E1
.byte $A5,$45,$29,$03,$D0,$F7,$B9,$03,$02,$29,$0F,$99,$03,$02,$B9,$00 ; PRG $2251 | CPU $E251 ; CPU:$E052 PRG:2052 A5 45 29 03 D0 F7 B9 03 02 29 0F 99 03 02 B9 00
.byte $02,$09,$60,$29,$6F,$99,$00,$02,$D0,$E3,$B9,$03,$02,$29,$10,$D0 ; PRG $2261 | CPU $E261 ; CPU:$E062 PRG:2062 02 09 60 29 6F 99 00 02 D0 E3 B9 03 02 29 10 D0
.byte $0E,$20,$72,$E4,$B9,$03,$02,$09,$10,$99,$03,$02,$4C,$7B,$E1,$A5 ; PRG $2271 | CPU $E271 ; CPU:$E072 PRG:2072 0E 20 72 E4 B9 03 02 09 10 99 03 02 4C 7B E1 A5
.byte $45,$29,$03,$D0,$F7,$B9,$03,$02,$29,$0F,$99,$03,$02,$B9,$00,$02 ; PRG $2281 | CPU $E281 ; CPU:$E082 PRG:2082 45 29 03 D0 F7 B9 03 02 29 0F 99 03 02 B9 00 02
.byte $29,$0F,$09,$B0,$99,$00,$02,$D0,$E3,$B9,$03,$02,$29,$10,$D0,$0E ; PRG $2291 | CPU $E291 ; CPU:$E092 PRG:2092 29 0F 09 B0 99 00 02 D0 E3 B9 03 02 29 10 D0 0E
.byte $20,$78,$E4,$B9,$03,$02,$09,$10,$99,$03,$02,$4C,$7B,$E1,$A5,$45 ; PRG $22A1 | CPU $E2A1 ; CPU:$E0A2 PRG:20A2 20 78 E4 B9 03 02 09 10 99 03 02 4C 7B E1 A5 45
.byte $29,$03,$D0,$F7,$B9,$03,$02,$29,$0F,$99,$03,$02,$B9,$00,$02,$09 ; PRG $22B1 | CPU $E2B1 ; CPU:$E0B2 PRG:20B2 29 03 D0 F7 B9 03 02 29 0F 99 03 02 B9 00 02 09
.byte $C0,$29,$CF,$99,$00,$02,$D0,$E3,$B9,$03,$02,$29,$10,$D0,$0E,$20 ; PRG $22C1 | CPU $E2C1 ; CPU:$E0C2 PRG:20C2 C0 29 CF 99 00 02 D0 E3 B9 03 02 29 10 D0 0E 20
.byte $7E,$E4,$B9,$03,$02,$09,$10,$99,$03,$02,$4C,$7B,$E1,$A5,$45,$29 ; PRG $22D1 | CPU $E2D1 ; CPU:$E0D2 PRG:20D2 7E E4 B9 03 02 09 10 99 03 02 4C 7B E1 A5 45 29
.byte $03,$D0,$F7,$B9,$03,$02,$29,$0F,$99,$03,$02,$B9,$00,$02,$09,$D0 ; PRG $22E1 | CPU $E2E1 ; CPU:$E0E2 PRG:20E2 03 D0 F7 B9 03 02 29 0F 99 03 02 B9 00 02 09 D0
.byte $29,$DF,$99,$00,$02,$D0,$E3,$B9,$03,$02,$29,$10,$D0,$0E,$20,$84 ; PRG $22F1 | CPU $E2F1 ; CPU:$E0F2 PRG:20F2 29 DF 99 00 02 D0 E3 B9 03 02 29 10 D0 0E 20 84
.byte $E4,$B9,$03,$02,$09,$10,$99,$03,$02,$4C,$7B,$E1,$A5,$45,$29,$03 ; PRG $2301 | CPU $E301 ; CPU:$E102 PRG:2102 E4 B9 03 02 09 10 99 03 02 4C 7B E1 A5 45 29 03
.byte $D0,$F7,$B9,$03,$02,$29,$0F,$99,$03,$02,$B9,$00,$02,$09,$E0,$29 ; PRG $2311 | CPU $E311 ; CPU:$E112 PRG:2112 D0 F7 B9 03 02 29 0F 99 03 02 B9 00 02 09 E0 29
.byte $EF,$99,$00,$02,$D0,$E3,$20,$23,$CB,$98,$AA,$FE,$02,$02,$BD,$02 ; PRG $2321 | CPU $E321 ; CPU:$E122 PRG:2122 EF 99 00 02 D0 E3 20 23 CB 98 AA FE 02 02 BD 02
.byte $02,$29,$0F,$D0,$53,$B9,$00,$02,$29,$0F,$09,$10,$99,$00,$02,$B9 ; PRG $2331 | CPU $E331 ; CPU:$E132 PRG:2132 02 29 0F D0 53 B9 00 02 29 0F 09 10 99 00 02 B9
.byte $03,$02,$29,$0F,$99,$03,$02,$B9,$04,$02,$29,$0F,$C9,$0F,$F0,$3B ; PRG $2341 | CPU $E341 ; CPU:$E142 PRG:2142 03 02 29 0F 99 03 02 B9 04 02 29 0F C9 0F F0 3B
.byte $B9,$04,$02,$29,$F0,$C9,$F0,$D0,$2F,$B9,$02,$02,$18,$69,$08,$D9 ; PRG $2351 | CPU $E351 ; CPU:$E152 PRG:2152 B9 04 02 29 F0 C9 F0 D0 2F B9 02 02 18 69 08 D9
.byte $06,$02,$90,$24,$B9,$06,$02,$38,$E9,$08,$99,$02,$02,$A9,$00,$99 ; PRG $2361 | CPU $E361 ; CPU:$E162 PRG:2162 06 02 90 24 B9 06 02 38 E9 08 99 02 02 A9 00 99
.byte $03,$02,$B9,$00,$02,$09,$F0,$99,$00,$02,$20,$E2,$E3,$A9,$00,$20 ; PRG $2371 | CPU $E371 ; CPU:$E172 PRG:2172 03 02 B9 00 02 09 F0 99 00 02 20 E2 E3 A9 00 20
.byte $51,$E9,$20,$DE,$E5,$20,$71,$E7,$4C,$7B,$E1,$B9,$06,$02,$99,$02 ; PRG $2381 | CPU $E381 ; CPU:$E182 PRG:2182 51 E9 20 DE E5 20 71 E7 4C 7B E1 B9 06 02 99 02
.byte $02,$4C,$6E,$E3,$20,$23,$CB,$98,$AA,$BD,$03,$02,$29,$0F,$9D,$03 ; PRG $2391 | CPU $E391 ; CPU:$E192 PRG:2192 02 4C 6E E3 20 23 CB 98 AA BD 03 02 29 0F 9D 03
.byte $02,$F0,$05,$DE,$03,$02,$D0,$16,$B9,$00,$02,$29,$0F,$99,$00,$02 ; PRG $23A1 | CPU $E3A1 ; CPU:$E1A2 PRG:21A2 02 F0 05 DE 03 02 D0 16 B9 00 02 29 0F 99 00 02
.byte $20,$E2,$E3,$A9,$00,$20,$51,$E9,$20,$DE,$E5,$4C,$7B,$E1,$B9,$00 ; PRG $23B1 | CPU $E3B1 ; CPU:$E1B2 PRG:21B2 20 E2 E3 A9 00 20 51 E9 20 DE E5 4C 7B E1 B9 00
.byte $02,$29,$0F,$09,$10,$99,$00,$02,$B9,$02,$02,$69,$02,$99,$02,$02 ; PRG $23C1 | CPU $E3C1 ; CPU:$E1C2 PRG:21C2 02 29 0F 09 10 99 00 02 B9 02 02 69 02 99 02 02
.byte $4C,$7B,$E1,$00,$01,$01,$05,$02,$04,$03,$00,$01,$01,$05,$02,$04 ; PRG $23D1 | CPU $E3D1 ; CPU:$E1D2 PRG:21D2 4C 7B E1 00 01 01 05 02 04 03 00 01 01 05 02 04
.byte $03,$84,$40,$B9,$01,$02,$85,$43,$B9,$02,$02,$18,$69,$01,$29,$F8 ; PRG $23E1 | CPU $E3E1 ; CPU:$E1E2 PRG:21E2 03 84 40 B9 01 02 85 43 B9 02 02 18 69 01 29 F8
.byte $99,$02,$02,$85,$42,$B9,$00,$02,$29,$0F,$38,$E9,$01,$C9,$03,$90 ; PRG $23F1 | CPU $E3F1 ; CPU:$E1F2 PRG:21F2 99 02 02 85 42 B9 00 02 29 0F 38 E9 01 C9 03 90
.byte $03,$18,$69,$01,$0A,$0A,$C9,$08,$D0,$0D,$85,$39,$B9,$04,$02,$29 ; PRG $2401 | CPU $E401 ; CPU:$E202 PRG:2202 03 18 69 01 0A 0A C9 08 D0 0D 85 39 B9 04 02 29
.byte $F0,$C9,$F0,$F0,$57,$A9,$0C,$18,$69,$4A,$8D,$03,$05,$69,$01,$8D ; PRG $2411 | CPU $E411 ; CPU:$E212 PRG:2212 F0 C9 F0 F0 57 A9 0C 18 69 4A 8D 03 05 69 01 8D
.byte $04,$05,$69,$01,$8D,$05,$05,$69,$01,$8D,$06,$05,$A9,$04,$8D,$02 ; PRG $2421 | CPU $E421 ; CPU:$E222 PRG:2222 04 05 69 01 8D 05 05 69 01 8D 06 05 A9 04 8D 02
.byte $05,$A9,$00,$85,$3C,$20,$5E,$DA,$20,$86,$CE,$20,$EB,$FF,$A5,$40 ; PRG $2431 | CPU $E431 ; CPU:$E232 PRG:2232 05 A9 00 85 3C 20 5E DA 20 86 CE 20 EB FF A5 40
.byte $A2,$00,$A0,$0D,$DD,$01,$06,$F0,$07,$E8,$88,$D0,$F7,$A4,$40,$60 ; PRG $2441 | CPU $E441 ; CPU:$E242 PRG:2242 A2 00 A0 0D DD 01 06 F0 07 E8 88 D0 F7 A4 40 60
.byte $CE,$00,$06,$A9,$FF,$9D,$01,$06,$8A,$0A,$0A,$0A,$0A,$AA,$A9,$F0 ; PRG $2451 | CPU $E451 ; CPU:$E252 PRG:2252 CE 00 06 A9 FF 9D 01 06 8A 0A 0A 0A 0A AA A9 F0
.byte $A0,$10,$9D,$24,$07,$E8,$88,$D0,$F9,$A4,$40,$60,$A5,$39,$4C,$18 ; PRG $2461 | CPU $E461 ; CPU:$E262 PRG:2262 A0 10 9D 24 07 E8 88 D0 F9 A4 40 60 A5 39 4C 18
.byte $E4,$A9,$00,$85,$40,$F0,$10,$A9,$01,$85,$40,$F0,$0A,$A9,$02,$85 ; PRG $2471 | CPU $E471 ; CPU:$E272 PRG:2272 E4 A9 00 85 40 F0 10 A9 01 85 40 F0 0A A9 02 85
.byte $40,$F0,$04,$A9,$03,$85,$40,$98,$48,$A6,$40,$A5,$34,$18,$7D,$9A ; PRG $2481 | CPU $E481 ; CPU:$E282 PRG:2282 40 F0 04 A9 03 85 40 98 48 A6 40 A5 34 18 7D 9A
.byte $E4,$85,$34,$20,$28,$CB,$68,$A8,$60,$04,$03,$02,$01,$04,$FC,$04 ; PRG $2491 | CPU $E491 ; CPU:$E292 PRG:2292 E4 85 34 20 28 CB 68 A8 60 04 03 02 01 04 FC 04
.byte $FC,$A5,$34,$29,$0F,$D0,$55,$B9,$05,$02,$C5,$33,$D0,$4E,$B9,$06 ; PRG $24A1 | CPU $E4A1 ; CPU:$E2A2 PRG:22A2 FC A5 34 29 0F D0 55 B9 05 02 C5 33 D0 4E B9 06
.byte $02,$38,$E5,$34,$C9,$09,$B0,$44,$B9,$00,$02,$29,$0F,$09,$20,$99 ; PRG $24B1 | CPU $E4B1 ; CPU:$E2B2 PRG:22B2 02 38 E5 34 C9 09 B0 44 B9 00 02 29 0F 09 20 99
.byte $00,$02,$B9,$04,$02,$29,$F0,$C9,$F0,$F0,$34,$B9,$04,$02,$29,$0F ; PRG $24C1 | CPU $E4C1 ; CPU:$E2C2 PRG:22C2 00 02 B9 04 02 29 F0 C9 F0 F0 34 B9 04 02 29 0F
.byte $C9,$0F,$F0,$41,$B9,$04,$02,$09,$10,$99,$04,$02,$84,$42,$98,$18 ; PRG $24D1 | CPU $E4D1 ; CPU:$E2D2 PRG:22D2 C9 0F F0 41 B9 04 02 09 10 99 04 02 84 42 98 18
.byte $69,$04,$AA,$FE,$02,$02,$20,$48,$D9,$A4,$42,$B9,$06,$02,$18,$69 ; PRG $24E1 | CPU $E4E1 ; CPU:$E2E2 PRG:22E2 69 04 AA FE 02 02 20 48 D9 A4 42 B9 06 02 18 69
.byte $04,$99,$06,$02,$A9,$0A,$20,$26,$C0,$A9,$FF,$60,$A9,$00,$60,$B9 ; PRG $24F1 | CPU $E4F1 ; CPU:$E2F2 PRG:22F2 04 99 06 02 A9 0A 20 26 C0 A9 FF 60 A9 00 60 B9
.byte $02,$02,$18,$69,$08,$D9,$06,$02,$90,$F2,$B9,$06,$02,$38,$E9,$08 ; PRG $2501 | CPU $E501 ; CPU:$E302 PRG:2302 02 02 18 69 08 D9 06 02 90 F2 B9 06 02 38 E9 08
.byte $99,$02,$02,$D0,$06,$B9,$06,$02,$99,$02,$02,$A9,$00,$99,$03,$02 ; PRG $2511 | CPU $E511 ; CPU:$E312 PRG:2312 99 02 02 D0 06 B9 06 02 99 02 02 A9 00 99 03 02
.byte $B9,$00,$02,$09,$F0,$99,$00,$02,$20,$E2,$E3,$A9,$00,$20,$51,$E9 ; PRG $2521 | CPU $E521 ; CPU:$E322 PRG:2322 B9 00 02 09 F0 99 00 02 20 E2 E3 A9 00 20 51 E9
.byte $20,$DE,$E5,$20,$71,$E7,$A9,$FF,$60,$A5,$34,$85,$3E,$29,$0F,$D0 ; PRG $2531 | CPU $E531 ; CPU:$E332 PRG:2332 20 DE E5 20 71 E7 A9 FF 60 A5 34 85 3E 29 0F D0
.byte $05,$20,$6D,$E5,$F0,$07,$A5,$3E,$85,$34,$A9,$00,$60,$B9,$00,$02 ; PRG $2541 | CPU $E541 ; CPU:$E342 PRG:2342 05 20 6D E5 F0 07 A5 3E 85 34 A9 00 60 B9 00 02
.byte $29,$0F,$09,$A0,$99,$00,$02,$B9,$02,$02,$18,$69,$08,$99,$02,$02 ; PRG $2551 | CPU $E551 ; CPU:$E352 PRG:2352 29 0F 09 A0 99 00 02 B9 02 02 18 69 08 99 02 02
.byte $A9,$0A,$20,$26,$C0,$A5,$3E,$85,$34,$A9,$FF,$60,$84,$42,$86,$43 ; PRG $2561 | CPU $E561 ; CPU:$E362 PRG:2362 A9 0A 20 26 C0 A5 3E 85 34 A9 FF 60 84 42 86 43
.byte $20,$8A,$D6,$A0,$00,$B1,$34,$C9,$FF,$F0,$25,$C5,$3E,$F0,$06,$C8 ; PRG $2571 | CPU $E571 ; CPU:$E372 PRG:2372 20 8A D6 A0 00 B1 34 C9 FF F0 25 C5 3E F0 06 C8
.byte $C8,$C8,$4C,$76,$E5,$C8,$B1,$34,$38,$E9,$03,$C5,$33,$B0,$F1,$C8 ; PRG $2581 | CPU $E581 ; CPU:$E382 PRG:2382 C8 C8 4C 76 E5 C8 B1 34 38 E9 03 C5 33 B0 F1 C8
.byte $B1,$34,$38,$E9,$10,$C5,$33,$90,$E8,$A4,$42,$A6,$43,$A9,$00,$60 ; PRG $2591 | CPU $E591 ; CPU:$E392 PRG:2392 B1 34 38 E9 10 C5 33 90 E8 A4 42 A6 43 A9 00 60
.byte $A4,$42,$A6,$43,$A9,$FF,$60,$A2,$00,$BD,$07,$04,$29,$F0,$C9,$40 ; PRG $25A1 | CPU $E5A1 ; CPU:$E3A2 PRG:23A2 A4 42 A6 43 A9 FF 60 A2 00 BD 07 04 29 F0 C9 40
.byte $F0,$0A,$C9,$50,$F0,$06,$E8,$E0,$06,$D0,$EE,$60,$BD,$50,$04,$85 ; PRG $25B1 | CPU $E5B1 ; CPU:$E3B2 PRG:23B2 F0 0A C9 50 F0 06 E8 E0 06 D0 EE 60 BD 50 04 85
.byte $3C,$C4,$3C,$D0,$F1,$84,$3D,$38,$B9,$02,$02,$E9,$0C,$85,$3E,$8A ; PRG $25C1 | CPU $E5C1 ; CPU:$E3C2 PRG:23C2 3C C4 3C D0 F1 84 3D 38 B9 02 02 E9 0C 85 3E 8A
.byte $0A,$0A,$A8,$A5,$3E,$99,$00,$07,$A4,$3D,$4C,$B7,$E5,$A2,$00,$8E ; PRG $25D1 | CPU $E5D1 ; CPU:$E3D2 PRG:23D2 0A 0A A8 A5 3E 99 00 07 A4 3D 4C B7 E5 A2 00 8E
.byte $68,$04,$BD,$07,$04,$30,$04,$29,$40,$D0,$29,$E8,$E0,$06,$D0,$F2 ; PRG $25E1 | CPU $E5E1 ; CPU:$E3E2 PRG:23E2 68 04 BD 07 04 30 04 29 40 D0 29 E8 E0 06 D0 F2
.byte $AE,$68,$04,$F0,$1E,$BD,$35,$E6,$20,$51,$E9,$98,$48,$AE,$69,$04 ; PRG $25F1 | CPU $E5F1 ; CPU:$E3F2 PRG:23F2 AE 68 04 F0 1E BD 35 E6 20 51 E9 98 48 AE 69 04
.byte $BC,$D0,$EA,$AE,$68,$04,$BD,$3B,$E6,$20,$E4,$E0,$A9,$D2,$99,$01 ; PRG $2601 | CPU $E601 ; CPU:$E402 PRG:2402 BC D0 EA AE 68 04 BD 3B E6 20 E4 E0 A9 D2 99 01
.byte $07,$68,$A8,$60,$BD,$50,$04,$85,$3C,$C4,$3C,$D0,$CE,$EE,$68,$04 ; PRG $2611 | CPU $E611 ; CPU:$E412 PRG:2412 07 68 A8 60 BD 50 04 85 3C C4 3C D0 CE EE 68 04
.byte $8E,$69,$04,$BD,$07,$04,$29,$0F,$09,$20,$9D,$07,$04,$A9,$7F,$9D ; PRG $2621 | CPU $E621 ; CPU:$E422 PRG:2422 8E 69 04 BD 07 04 29 0F 09 20 9D 07 04 A9 7F 9D
.byte $38,$04,$4C,$EC,$E5,$04,$05,$07,$08,$09,$09,$FA,$FC,$BE,$F8,$C0 ; PRG $2631 | CPU $E631 ; CPU:$E432 PRG:2432 38 04 4C EC E5 04 05 07 08 09 09 FA FC BE F8 C0
.byte $C0 ; PRG $2641 | CPU $E641 ; CPU:$E442 PRG:2442 C0
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E642.
; Local behavior: Executes the decoded process game state e642 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E642:
lda Ram_040E ; CPU:$E443 PRG:2443 ??
cmp #$80 ; CPU:$E445 PRG:2445 ??
beq Flow_E65F ; CPU:$E447 PRG:2447 ??
lda Ram_071B ; CPU:$E449 PRG:2449 ??
sta Zp_32 ; CPU:$E44B PRG:244B ??
lda Ram_0718 ; CPU:$E44D PRG:244D ??
sta Zp_33 ; CPU:$E44F PRG:244F ??
ldx #$00 ; CPU:$E451 PRG:2451 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E655.
; Local behavior: Executes the decoded flow e655 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E655:
lda Ram_0407,x ; CPU:$E453 PRG:2453 ??
bpl Flow_E660 ; CPU:$E455 PRG:2455 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E65 A.
; Local behavior: Executes the decoded flow e65 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E65A:
inx ; CPU:$E457 PRG:2457 ??
cpx #$06 ; CPU:$E459 PRG:2459 ??
bne Flow_E655 ; CPU:$E45B PRG:245B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E65 F.
; Local behavior: Executes the decoded flow e65 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E65F:
rts ; CPU:$E45D PRG:245D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E660.
; Local behavior: Executes the decoded flow e660 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E660:
txa ; CPU:$E45F PRG:245F ??
asl a ; CPU:$E461 PRG:2461 ??
asl a ; CPU:$E463 PRG:2463 ??
tay ; CPU:$E465 PRG:2465 ??
lda Ram_0703,y ; CPU:$E467 PRG:2467 ??
clc ; CPU:$E469 PRG:2469 ??
adc #$0C ; CPU:$E46B PRG:246B ??
cmp Zp_32 ; CPU:$E46D PRG:246D ??
bcc Flow_E65A ; CPU:$E46F PRG:246F ??
sbc #$18 ; CPU:$E471 PRG:2471 ??
cmp Zp_32 ; CPU:$E473 PRG:2473 ??
bcs Flow_E65A ; CPU:$E475 PRG:2475 ??
lda Ram_0700,y ; CPU:$E477 PRG:2477 ??
clc ; CPU:$E479 PRG:2479 ??
adc #$0C ; CPU:$E47B PRG:247B ??
cmp Zp_33 ; CPU:$E47D PRG:247D ??
bcc Flow_E65A ; CPU:$E47F PRG:247F ??
sbc #$18 ; CPU:$E481 PRG:2481 ??
cmp Zp_33 ; CPU:$E483 PRG:2483 ??
bcs Flow_E65A ; CPU:$E485 PRG:2485 ??
lda Ram_0407,x ; CPU:$E487 PRG:2487 ??
ora #$10 ; CPU:$E489 PRG:2489 ??
sta Ram_0407,x ; CPU:$E48B PRG:248B ??
ldy CurrentPlayerIndex ; CPU:$E48D PRG:248D ??
lda Ram_0400,y ; CPU:$E48F PRG:248F ??
cmp #$08 ; CPU:$E491 PRG:2491 ??
bcc Flow_E697 ; CPU:$E493 PRG:2493 ??
lda #$08 ; CPU:$E495 PRG:2495 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E697.
; Local behavior: Executes the decoded flow e697 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E697:
tay ; CPU:$E497 PRG:2497 ??
lda LookupTable_E6A5,y ; CPU:$E499 PRG:2499 ??
sta Ram_0438,x ; CPU:$E49B PRG:249B ??
lda #$0F ; CPU:$E49D PRG:249D ??
jsr StorePendingSoundCommand ; CPU:$E49F PRG:249F ??
jmp Flow_E65A ; CPU:$E4A1 PRG:24A1 ??
.byte $D1,$C1,$B1,$A1,$91,$81,$71,$61 ; PRG $26A6 | CPU $E6A6 ; CPU:$E4A3 PRG:24A3 D1 C1 B1 A1 91 81 71 61
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E6 AE.
; Local behavior: Executes the decoded process game state e6 ae sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E6AE:
ldx #$00 ; CPU:$E4AB PRG:24AB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E6 B0.
; Local behavior: Executes the decoded flow e6 b0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E6B0:
lda Ram_0407,x ; CPU:$E4AD PRG:24AD ??
bmi Flow_E6B9 ; CPU:$E4AF PRG:24AF ??
and #$10 ; CPU:$E4B1 PRG:24B1 ??
bne Flow_E6BF ; CPU:$E4B3 PRG:24B3 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E6 B9.
; Local behavior: Executes the decoded flow e6 b9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E6B9:
inx ; CPU:$E4B5 PRG:24B5 ??
cpx #$06 ; CPU:$E4B7 PRG:24B7 ??
bne Flow_E6B0 ; CPU:$E4B9 PRG:24B9 ??
rts ; CPU:$E4BB PRG:24BB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E6 BF.
; Local behavior: Executes the decoded flow e6 bf sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E6BF:
lda Ram_0438,x ; CPU:$E4BD PRG:24BD ??
cmp #$01 ; CPU:$E4BF PRG:24BF ??
beq Flow_E6FB ; CPU:$E4C1 PRG:24C1 ??
dec Ram_0438,x ; CPU:$E4C3 PRG:24C3 ??
lda Ram_0438,x ; CPU:$E4C5 PRG:24C5 ??
and #$0F ; CPU:$E4C7 PRG:24C7 ??
bne Flow_E6B9 ; CPU:$E4C9 PRG:24C9 ??
lda Ram_0438,x ; CPU:$E4CB PRG:24CB ??
and #$10 ; CPU:$E4CD PRG:24CD ??
beq Flow_E6E4 ; CPU:$E4CF PRG:24CF ??
lda Ram_0407,x ; CPU:$E4D1 PRG:24D1 ??
and #$03 ; CPU:$E4D3 PRG:24D3 ??
tay ; CPU:$E4D5 PRG:24D5 ??
lda LookupTable_E70E,y ; CPU:$E4D7 PRG:24D7 ??
sta Zp_32 ; CPU:$E4D9 PRG:24D9 ??
bne Flow_E6EF ; CPU:$E4DB PRG:24DB ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E6 E4.
; Local behavior: Executes the decoded flow e6 e4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E6E4:
lda Ram_0407,x ; CPU:$E4DD PRG:24DD ??
and #$03 ; CPU:$E4DF PRG:24DF ??
tay ; CPU:$E4E1 PRG:24E1 ??
lda LookupTable_E712,y ; CPU:$E4E3 PRG:24E3 ??
sta Zp_32 ; CPU:$E4E5 PRG:24E5 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E6 EF.
; Local behavior: Executes the decoded flow e6 ef sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E6EF:
txa ; CPU:$E4E7 PRG:24E7 ??
asl a ; CPU:$E4E9 PRG:24E9 ??
asl a ; CPU:$E4EB PRG:24EB ??
tay ; CPU:$E4ED PRG:24ED ??
lda Zp_32 ; CPU:$E4EF PRG:24EF ??
sta Ram_0701,y ; CPU:$E4F1 PRG:24F1 ??
jmp Flow_E6B9 ; CPU:$E4F3 PRG:24F3 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E6 FB.
; Local behavior: Executes the decoded flow e6 fb sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E6FB:
lda Ram_0407,x ; CPU:$E4F5 PRG:24F5 ??
and #$EF ; CPU:$E4F7 PRG:24F7 ??
sta Ram_0407,x ; CPU:$E4F9 PRG:24F9 ??
and #$03 ; CPU:$E4FB PRG:24FB ??
tay ; CPU:$E4FD PRG:24FD ??
lda LookupTable_E716,y ; CPU:$E4FF PRG:24FF ??
sta Zp_32 ; CPU:$E501 PRG:2501 ??
jmp Flow_E6EF ; CPU:$E503 PRG:2503 ??
LookupTable_E70E:
.byte $00,$60,$78,$90 ; PRG $270E | CPU $E70E ; CPU:$E505 PRG:2505 00 60 78 90
LookupTable_E712:
.byte $00,$62,$7A,$92 ; PRG $2712 | CPU $E712 ; CPU:$E509 PRG:2509 00 62 7A 92
LookupTable_E716:
.byte $00,$4C,$64,$7C ; PRG $2716 | CPU $E716 ; CPU:$E50D PRG:250D 00 4C 64 7C
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E71 A.
; Local behavior: Executes the decoded process game state e71 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E71A:
nop ; CPU:$E511 PRG:2511 ??
lda Ram_040E ; CPU:$E513 PRG:2513 ??
bmi Flow_E738 ; CPU:$E515 PRG:2515 ??
lda Ram_071F ; CPU:$E517 PRG:2517 ??
sta Zp_32 ; CPU:$E519 PRG:2519 ??
lda Ram_071C ; CPU:$E51B PRG:251B ??
sta Zp_33 ; CPU:$E51D PRG:251D ??
ldx #$00 ; CPU:$E51F PRG:251F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E72 C.
; Local behavior: Executes the decoded flow e72 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E72C:
lda Ram_0407,x ; CPU:$E521 PRG:2521 ??
and #$F0 ; CPU:$E523 PRG:2523 ??
beq Flow_E739 ; CPU:$E525 PRG:2525 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E733.
; Local behavior: Executes the decoded flow e733 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E733:
inx ; CPU:$E527 PRG:2527 ??
cpx #$06 ; CPU:$E529 PRG:2529 ??
bne Flow_E72C ; CPU:$E52B PRG:252B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E738.
; Local behavior: Executes the decoded flow e738 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E738:
rts ; CPU:$E52D PRG:252D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E739.
; Local behavior: Executes the decoded flow e739 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E739:
and #$70 ; CPU:$E52F PRG:252F ??
bne Flow_E733 ; CPU:$E531 PRG:2531 ??
txa ; CPU:$E533 PRG:2533 ??
asl a ; CPU:$E535 PRG:2535 ??
asl a ; CPU:$E537 PRG:2537 ??
tay ; CPU:$E539 PRG:2539 ??
lda Ram_0703,y ; CPU:$E53B PRG:253B ??
clc ; CPU:$E53D PRG:253D ??
adc #$03 ; CPU:$E53F PRG:253F ??
cmp Zp_32 ; CPU:$E541 PRG:2541 ??
bcc Flow_E733 ; CPU:$E543 PRG:2543 ??
sbc #$0F ; CPU:$E545 PRG:2545 ??
cmp Zp_32 ; CPU:$E547 PRG:2547 ??
bcs Flow_E733 ; CPU:$E549 PRG:2549 ??
lda Ram_0700,y ; CPU:$E54B PRG:254B ??
clc ; CPU:$E54D PRG:254D ??
adc #$05 ; CPU:$E54F PRG:254F ??
cmp Zp_33 ; CPU:$E551 PRG:2551 ??
bcc Flow_E733 ; CPU:$E553 PRG:2553 ??
sbc #$0C ; CPU:$E555 PRG:2555 ??
cmp Zp_33 ; CPU:$E557 PRG:2557 ??
bcs Flow_E733 ; CPU:$E559 PRG:2559 ??
lda Ram_040E ; CPU:$E55B PRG:255B ??
ora #$F0 ; CPU:$E55D PRG:255D ??
sta Ram_040E ; CPU:$E55F PRG:255F ??
lda #$FF ; CPU:$E561 PRG:2561 ??
sta Ram_043F ; CPU:$E563 PRG:2563 ??
jmp Flow_E733 ; CPU:$E565 PRG:2565 ??
.byte $A6,$50,$FE,$04,$04,$AC,$02,$04,$BD,$04,$04,$85,$34,$D9,$C0,$E7 ; PRG $2771 | CPU $E771 ; CPU:$E567 PRG:2567 A6 50 FE 04 04 AC 02 04 BD 04 04 85 34 D9 C0 E7
.byte $D0,$03,$20,$90,$E0,$A5,$34,$D9,$C6,$E7,$D0,$03,$20,$90,$E0,$A5 ; PRG $2781 | CPU $E781 ; CPU:$E577 PRG:2577 D0 03 20 90 E0 A5 34 D9 C6 E7 D0 03 20 90 E0 A5
.byte $34,$D9,$CC,$E7,$D0,$03,$20,$90,$E0,$A5,$34,$D9,$D2,$E7,$D0,$03 ; PRG $2791 | CPU $E791 ; CPU:$E587 PRG:2587 34 D9 CC E7 D0 03 20 90 E0 A5 34 D9 D2 E7 D0 03
.byte $20,$90,$E0,$A5,$34,$D9,$D8,$E7,$90,$14,$AD,$0E,$04,$29,$0F,$09 ; PRG $27A1 | CPU $E7A1 ; CPU:$E597 PRG:2597 20 90 E0 A5 34 D9 D8 E7 90 14 AD 0E 04 29 0F 09
.byte $80,$8D,$0E,$04,$A9,$FF,$8D,$3F,$04,$A9,$05,$20,$26,$C0,$60,$04 ; PRG $27B1 | CPU $E7B1 ; CPU:$E5A7 PRG:25A7 80 8D 0E 04 A9 FF 8D 3F 04 A9 05 20 26 C0 60 04
.byte $05,$04,$06,$03,$03,$08,$07,$08,$10,$06,$07,$0C,$0D,$0E,$16,$09 ; PRG $27C1 | CPU $E7C1 ; CPU:$E5B7 PRG:25B7 05 04 06 03 03 08 07 08 10 06 07 0C 0D 0E 16 09
.byte $0C,$FF,$FF,$0E,$1C,$FF,$0E,$10,$10,$12,$20,$10,$12 ; PRG $27D1 | CPU $E7D1 ; CPU:$E5C7 PRG:25C7 0C FF FF 0E 1C FF 0E 10 10 12 20 10 12
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E7 DE.
; Local behavior: Executes the decoded process game state e7 de sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E7DE:
lda Ram_040E ; CPU:$E5D4 PRG:25D4 ??
and #$F0 ; CPU:$E5D6 PRG:25D6 ??
cmp #$80 ; CPU:$E5D8 PRG:25D8 ??
bne Flow_E819 ; CPU:$E5DA PRG:25DA ??
lda Ram_043F ; CPU:$E5DC PRG:25DC ??
beq Flow_E816 ; CPU:$E5DE PRG:25DE ??
dec Ram_043F ; CPU:$E5E0 PRG:25E0 ??
lda Ram_043F ; CPU:$E5E2 PRG:25E2 ??
and #$0F ; CPU:$E5E4 PRG:25E4 ??
bne Flow_E819 ; CPU:$E5E6 PRG:25E6 ??
lda Ram_043F ; CPU:$E5E8 PRG:25E8 ??
and #$10 ; CPU:$E5EA PRG:25EA ??
beq Flow_E801 ; CPU:$E5EC PRG:25EC ??
lda #$34 ; CPU:$E5EE PRG:25EE ??
bne Flow_E803 ; CPU:$E5F0 PRG:25F0 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E801.
; Local behavior: Executes the decoded flow e801 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E801:
lda #$1C ; CPU:$E5F2 PRG:25F2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E803.
; Local behavior: Executes the decoded flow e803 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E803:
sta Ram_071D ; CPU:$E5F4 PRG:25F4 ??
clc ; CPU:$E5F6 PRG:25F6 ??
adc #$02 ; CPU:$E5F8 PRG:25F8 ??
sta Ram_0721 ; CPU:$E5FA PRG:25FA ??
lda #$01 ; CPU:$E5FC PRG:25FC ??
sta Ram_071E ; CPU:$E5FE PRG:25FE ??
sta Ram_0722 ; CPU:$E600 PRG:2600 ??
bne Flow_E819 ; CPU:$E602 PRG:2602 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E816.
; Local behavior: Executes the decoded flow e816 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E816:
inc Ram_0464 ; CPU:$E604 PRG:2604 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E819.
; Local behavior: Executes the decoded flow e819 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E819:
rts ; CPU:$E606 PRG:2606 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E81 A.
; Local behavior: Executes the decoded process game state e81 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E81A:
lda Ram_0465 ; CPU:$E608 PRG:2608 ??
bmi Flow_E870 ; CPU:$E60A PRG:260A ??
lda Ram_040E ; CPU:$E60C PRG:260C ??
and #$F0 ; CPU:$E60E PRG:260E ??
cmp #$F0 ; CPU:$E610 PRG:2610 ??
beq Flow_E829 ; CPU:$E612 PRG:2612 ??
rts ; CPU:$E614 PRG:2614 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E829.
; Local behavior: Executes the decoded flow e829 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E829:
ldx #$1B ; CPU:$E616 PRG:2616 ??
lda Ram_043F ; CPU:$E618 PRG:2618 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E82 E.
; Local behavior: Executes the decoded flow e82 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E82E:
cmp RomData_E871,x ; CPU:$E61A PRG:261A ??
beq Flow_E83A ; CPU:$E61C PRG:261C ??
dex ; CPU:$E61E PRG:261E ??
bpl Flow_E82E ; CPU:$E620 PRG:2620 ??
dec Ram_043F ; CPU:$E622 PRG:2622 ??
rts ; CPU:$E624 PRG:2624 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E83 A.
; Local behavior: Executes the decoded flow e83 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E83A:
lda LookupTable_E88D,x ; CPU:$E626 PRG:2626 ??
sta Ram_071D ; CPU:$E628 PRG:2628 ??
clc ; CPU:$E62A PRG:262A ??
adc #$02 ; CPU:$E62C PRG:262C ??
sta Ram_0721 ; CPU:$E62E PRG:262E ??
lda #$01 ; CPU:$E630 PRG:2630 ??
sta Ram_071E ; CPU:$E632 PRG:2632 ??
sta Ram_0722 ; CPU:$E634 PRG:2634 ??
dec Ram_043F ; CPU:$E636 PRG:2636 ??
txa ; CPU:$E638 PRG:2638 ??
bne Flow_E867 ; CPU:$E63A PRG:263A ??
ldx CurrentPlayerIndex ; CPU:$E63C PRG:263C ??
dec Zp_5A,x ; CPU:$E63E PRG:263E ??
lda Zp_5A,x ; CPU:$E640 PRG:2640 ??
jsr DecrementPackedDecimalDigit ; CPU:$E642 PRG:2642 ??
sta Zp_5A,x ; CPU:$E644 PRG:2644 ??
lda #$FF ; CPU:$E646 PRG:2646 ??
sta Ram_0465 ; CPU:$E648 PRG:2648 ??
jmp Flow_E870 ; CPU:$E64A PRG:264A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E867.
; Local behavior: Executes the decoded flow e867 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E867:
cpx #$18 ; CPU:$E64C PRG:264C ??
bne Flow_E870 ; CPU:$E64E PRG:264E ??
lda #$10 ; CPU:$E650 PRG:2650 ??
jsr StorePendingSoundCommand ; CPU:$E652 PRG:2652 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E870.
; Local behavior: Executes the decoded flow e870 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E870:
rts ; CPU:$E654 PRG:2654 ??
RomData_E871:
.byte $01,$08,$10,$18,$20,$28,$30,$38,$40,$48,$50,$58,$60,$68,$78,$80 ; PRG $2871 | CPU $E871 ; CPU:$E656 PRG:2656 01 08 10 18 20 28 30 38 40 48 50 58 60 68 78 80
.byte $88,$90,$98,$A0,$A8,$B0,$B8,$C0,$C8,$D0,$F8,$FE ; PRG $2881 | CPU $E881 ; CPU:$E666 PRG:2666 88 90 98 A0 A8 B0 B8 C0 C8 D0 F8 FE
LookupTable_E88D:
.byte $48,$44,$48,$44,$48,$44,$48,$44,$48,$44,$48,$44,$48,$44,$48,$44 ; PRG $288D | CPU $E88D ; CPU:$E672 PRG:2672 48 44 48 44 48 44 48 44 48 44 48 44 48 44 48 44
.byte $48,$44,$48,$44,$48,$44,$48,$44,$40,$3C,$38,$34 ; PRG $289D | CPU $E89D ; CPU:$E682 PRG:2682 48 44 48 44 48 44 48 44 40 3C 38 34
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E8 A9.
; Local behavior: Executes the decoded process game state e8 a9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E8A9:
lda Zp_8E ; CPU:$E68E PRG:268E ??
beq Flow_E8B0 ; CPU:$E690 PRG:2690 ??
jmp Flow_E938 ; CPU:$E692 PRG:2692 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E8 B0.
; Local behavior: Executes the decoded flow e8 b0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E8B0:
jsr ProcessGameState_CEBE ; CPU:$E694 PRG:2694 ??
dex ; CPU:$E696 PRG:2696 ??
lda LookupTable_E939,x ; CPU:$E698 PRG:2698 ??
sta Zp_32 ; CPU:$E69A PRG:269A ??
lda LookupTable_E93F,x ; CPU:$E69C PRG:269C ??
sta Zp_33 ; CPU:$E69E PRG:269E ??
lda Ram_071F ; CPU:$E6A0 PRG:26A0 ??
sta Zp_34 ; CPU:$E6A2 PRG:26A2 ??
lda Ram_071C ; CPU:$E6A4 PRG:26A4 ??
sta Zp_35 ; CPU:$E6A6 PRG:26A6 ??
lda Zp_32 ; CPU:$E6A8 PRG:26A8 ??
clc ; CPU:$E6AA PRG:26AA ??
adc #$0C ; CPU:$E6AC PRG:26AC ??
cmp Zp_34 ; CPU:$E6AE PRG:26AE ??
bcc Flow_E938 ; CPU:$E6B0 PRG:26B0 ??
sbc #$18 ; CPU:$E6B2 PRG:26B2 ??
cmp Zp_34 ; CPU:$E6B4 PRG:26B4 ??
bcs Flow_E938 ; CPU:$E6B6 PRG:26B6 ??
lda Zp_33 ; CPU:$E6B8 PRG:26B8 ??
clc ; CPU:$E6BA PRG:26BA ??
adc #$0A ; CPU:$E6BC PRG:26BC ??
cmp Zp_35 ; CPU:$E6BE PRG:26BE ??
bcc Flow_E938 ; CPU:$E6C0 PRG:26C0 ??
sbc #$10 ; CPU:$E6C2 PRG:26C2 ??
cmp Zp_35 ; CPU:$E6C4 PRG:26C4 ??
bcs Flow_E938 ; CPU:$E6C6 PRG:26C6 ??
txa ; CPU:$E6C8 PRG:26C8 ??
asl a ; CPU:$E6CA PRG:26CA ??
ldy LookupTable_E948,x ; CPU:$E6CC PRG:26CC ??
lda LookupTable_E945,y ; CPU:$E6CE PRG:26CE ??
sta Zp_34 ; CPU:$E6D0 PRG:26D0 ??
sta Ram_07F9 ; CPU:$E6D2 PRG:26D2 ??
lda Zp_33 ; CPU:$E6D4 PRG:26D4 ??
sta Ram_07F8 ; CPU:$E6D6 PRG:26D6 ??
sta Ram_07FC ; CPU:$E6D8 PRG:26D8 ??
lda #$EE ; CPU:$E6DA PRG:26DA ??
sta Ram_07FD ; CPU:$E6DC PRG:26DC ??
lda Zp_32 ; CPU:$E6DE PRG:26DE ??
sta Ram_07FB ; CPU:$E6E0 PRG:26E0 ??
clc ; CPU:$E6E2 PRG:26E2 ??
adc #$08 ; CPU:$E6E4 PRG:26E4 ??
sta Ram_07FF ; CPU:$E6E6 PRG:26E6 ??
lda #$01 ; CPU:$E6E8 PRG:26E8 ??
sta Ram_07FA ; CPU:$E6EA PRG:26EA ??
sta Ram_07FE ; CPU:$E6EC PRG:26EC ??
ldy #$00 ; CPU:$E6EE PRG:26EE ??
lda #$02 ; CPU:$E6F0 PRG:26F0 ??
sta Ram_0463 ; CPU:$E6F2 PRG:26F2 ??
inc Zp_8E ; CPU:$E6F4 PRG:26F4 ??
ldy LookupTable_E948,x ; CPU:$E6F6 PRG:26F6 ??
lda LookupTable_E94E,y ; CPU:$E6F8 PRG:26F8 ??
jsr ProcessGameState_E951 ; CPU:$E6FA PRG:26FA ??
ldx CurrentPlayerIndex ; CPU:$E6FC PRG:26FC ??
inc Zp_5C,x ; CPU:$E6FE PRG:26FE ??
lda Zp_5C,x ; CPU:$E700 PRG:2700 ??
jsr ConvertPackedDecimalDigit ; CPU:$E702 PRG:2702 ??
sta Zp_5C,x ; CPU:$E704 PRG:2704 ??
jsr ProcessGameState_CAA7 ; CPU:$E706 PRG:2706 ??
lda #$11 ; CPU:$E708 PRG:2708 ??
jsr StorePendingSoundCommand ; CPU:$E70A PRG:270A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E938.
; Local behavior: Executes the decoded flow e938 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E938:
rts ; CPU:$E70C PRG:270C ??
LookupTable_E939:
.byte $80,$80,$80,$80,$B0,$80 ; PRG $2939 | CPU $E939 ; CPU:$E70E PRG:270E 80 80 80 80 B0 80
LookupTable_E93F:
.byte $58,$78,$70,$28,$40,$68 ; PRG $293F | CPU $E93F ; CPU:$E714 PRG:2714 58 78 70 28 40 68
LookupTable_E945:
.byte $FA,$FC,$FE ; PRG $2945 | CPU $E945 ; CPU:$E71A PRG:271A FA FC FE
LookupTable_E948:
.byte $00,$01,$02,$00,$01,$02 ; PRG $2948 | CPU $E948 ; CPU:$E71D PRG:271D 00 01 02 00 01 02
LookupTable_E94E:
.byte $04,$05,$06 ; PRG $294E | CPU $E94E ; CPU:$E723 PRG:2723 04 05 06
; -----------------------------------------------------------------------------
; Global purpose: Process Game State E951.
; Local behavior: Executes the decoded process game state e951 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_E951:
sta Zp_33 ; CPU:$E726 PRG:2726 ??
txa ; CPU:$E728 PRG:2728 ??
pha ; CPU:$E72A PRG:272A ??
tya ; CPU:$E72C PRG:272C ??
pha ; CPU:$E72E PRG:272E ??
lda GameMode ; CPU:$E730 PRG:2730 ??
bne Flow_E95E ; CPU:$E732 PRG:2732 ??
jmp Flow_E9F0 ; CPU:$E734 PRG:2734 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E95 E.
; Local behavior: Executes the decoded flow e95 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E95E:
ldx CurrentPlayerIndex ; CPU:$E736 PRG:2736 ??
ldy LookupTable_EA00,x ; CPU:$E738 PRG:2738 ??
ldx Zp_33 ; CPU:$E73A PRG:273A ??
stx Zp_43 ; CPU:$E73C PRG:273C ??
sty Zp_42 ; CPU:$E73E PRG:273E ??
ldy #$01 ; CPU:$E740 PRG:2740 ??
cpx #$05 ; CPU:$E742 PRG:2742 ??
bcc Flow_E977 ; CPU:$E744 PRG:2744 ??
ldy #$0A ; CPU:$E746 PRG:2746 ??
cpx #$09 ; CPU:$E748 PRG:2748 ??
bcc Flow_E977 ; CPU:$E74A PRG:274A ??
ldy #$10 ; CPU:$E74C PRG:274C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E977.
; Local behavior: Executes the decoded flow e977 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E977:
lda LookupTable_E9F5,x ; CPU:$E74E PRG:274E ??
tax ; CPU:$E750 PRG:2750 ??
lda CurrentPlayerIndex ; CPU:$E752 PRG:2752 ??
sty Zp_3B ; CPU:$E754 PRG:2754 ??
stx Zp_3C ; CPU:$E756 PRG:2756 ??
sta Zp_3D ; CPU:$E758 PRG:2758 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E983.
; Local behavior: Executes the decoded flow e983 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E983:
ldx Zp_3C ; CPU:$E75A PRG:275A ??
lda Zp_3D ; CPU:$E75C PRG:275C ??
jsr SelectPpuRunLength ; CPU:$E75E PRG:275E ??
dec Zp_3B ; CPU:$E760 PRG:2760 ??
bne Flow_E983 ; CPU:$E762 PRG:2762 ??
ldx Zp_43 ; CPU:$E764 PRG:2764 ??
ldy Zp_42 ; CPU:$E766 PRG:2766 ??
ldx CurrentPlayerIndex ; CPU:$E768 PRG:2768 ??
jsr TransformValue_CA37 ; CPU:$E76A PRG:276A ??
ldx CurrentPlayerIndex ; CPU:$E76C PRG:276C ??
ldy LookupTable_EA00,x ; CPU:$E76E PRG:276E ??
lda Zp_66 ; CPU:$E770 PRG:2770 ??
cmp Zp_60,y ; CPU:$E772 PRG:2772 ??
bcc Flow_E9B5 ; CPU:$E774 PRG:2774 ??
bne Flow_E9C9 ; CPU:$E776 PRG:2776 ??
lda Zp_65 ; CPU:$E778 PRG:2778 ??
cmp Zp_5F,y ; CPU:$E77A PRG:277A ??
bcc Flow_E9B5 ; CPU:$E77C PRG:277C ??
bne Flow_E9C9 ; CPU:$E77E PRG:277E ??
lda Zp_64 ; CPU:$E780 PRG:2780 ??
cmp Zp_5E,y ; CPU:$E782 PRG:2782 ??
bcs Flow_E9C9 ; CPU:$E784 PRG:2784 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E9 B5.
; Local behavior: Executes the decoded flow e9 b5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E9B5:
lda Zp_5E,y ; CPU:$E786 PRG:2786 ??
sta Zp_64 ; CPU:$E788 PRG:2788 ??
lda Zp_5F,y ; CPU:$E78A PRG:278A ??
sta Zp_65 ; CPU:$E78C PRG:278C ??
lda Zp_60,y ; CPU:$E78E PRG:278E ??
sta Zp_66 ; CPU:$E790 PRG:2790 ??
ldx #$02 ; CPU:$E792 PRG:2792 ??
jsr TransformValue_CA37 ; CPU:$E794 PRG:2794 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E9 C9.
; Local behavior: Executes the decoded flow e9 c9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E9C9:
ldx CurrentPlayerIndex ; CPU:$E796 PRG:2796 ??
ldy LookupTable_EA00,x ; CPU:$E798 PRG:2798 ??
lda Zp_60,y ; CPU:$E79A PRG:279A ??
cmp Zp_8C,x ; CPU:$E79C PRG:279C ??
bcc Flow_E9F0 ; CPU:$E79E PRG:279E ??
lda Zp_8C,x ; CPU:$E7A0 PRG:27A0 ??
clc ; CPU:$E7A2 PRG:27A2 ??
adc Zp_8B ; CPU:$E7A4 PRG:27A4 ??
jsr ConvertPackedDecimalDigit ; CPU:$E7A6 PRG:27A6 ??
sta Zp_8C,x ; CPU:$E7A8 PRG:27A8 ??
inc Zp_5A,x ; CPU:$E7AA PRG:27AA ??
lda Zp_5A,x ; CPU:$E7AC PRG:27AC ??
jsr ConvertPackedDecimalDigit ; CPU:$E7AE PRG:27AE ??
sta Zp_5A,x ; CPU:$E7B0 PRG:27B0 ??
jsr ProcessGameState_CA87 ; CPU:$E7B2 PRG:27B2 ??
lda #$02 ; CPU:$E7B4 PRG:27B4 ??
jsr StorePendingSoundCommand ; CPU:$E7B6 PRG:27B6 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow E9 F0.
; Local behavior: Executes the decoded flow e9 f0 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_E9F0:
pla ; CPU:$E7B8 PRG:27B8 ??
tay ; CPU:$E7BA PRG:27BA ??
pla ; CPU:$E7BC PRG:27BC ??
tax ; CPU:$E7BE PRG:27BE ??
rts ; CPU:$E7C0 PRG:27C0 ??
LookupTable_E9F5:
.byte $05,$10,$20,$30,$50,$10,$15,$20,$40,$50,$50 ; PRG $29F5 | CPU $E9F5 ; CPU:$E7C2 PRG:27C2 05 10 20 30 50 10 15 20 40 50 50
LookupTable_EA00:
.byte $00,$03,$00,$1B,$1C,$04,$01,$02,$20,$21,$11,$12,$13,$14,$15,$16 ; PRG $2A00 | CPU $EA00 ; CPU:$E7CD PRG:27CD 00 03 00 1B 1C 04 01 02 20 21 11 12 13 14 15 16
.byte $17,$18,$19,$1A,$1D,$13,$14,$15,$16,$17 ; PRG $2A10 | CPU $EA10 ; CPU:$E7DD PRG:27DD 17 18 19 1A 1D 13 14 15 16 17
; -----------------------------------------------------------------------------
; Global purpose: Process Game State EA1 A.
; Local behavior: Executes the decoded process game state ea1 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_EA1A:
ldx #$05 ; CPU:$E7E7 PRG:27E7 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow EA1 C.
; Local behavior: Executes the decoded flow ea1 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_EA1C:
lda Ram_0407,x ; CPU:$E7E9 PRG:27E9 ??
and #$F0 ; CPU:$E7EB PRG:27EB ??
cmp #$80 ; CPU:$E7ED PRG:27ED ??
beq Flow_EA29 ; CPU:$E7EF PRG:27EF ??
; -----------------------------------------------------------------------------
; Global purpose: Flow EA25.
; Local behavior: Executes the decoded flow ea25 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_EA25:
dex ; CPU:$E7F1 PRG:27F1 ??
bpl Flow_EA1C ; CPU:$E7F3 PRG:27F3 ??
rts ; CPU:$E7F5 PRG:27F5 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow EA29.
; Local behavior: Executes the decoded flow ea29 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_EA29:
lda Ram_0438,x ; CPU:$E7F7 PRG:27F7 ??
cmp #$01 ; CPU:$E7F9 PRG:27F9 ??
bne Flow_EA33 ; CPU:$E7FB PRG:27FB ??
jmp Flow_EAAD ; CPU:$E7FD PRG:27FD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow EA33.
; Local behavior: Executes the decoded flow ea33 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_EA33:
dec Ram_0438,x ; CPU:$E7FF PRG:27FF ??
lda Ram_0438,x ; CPU:$E801 PRG:2801 ??
cmp #$40 ; CPU:$E803 PRG:2803 ??
beq Flow_EA77 ; CPU:$E805 PRG:2805 ??
cmp #$38 ; CPU:$E807 PRG:2807 ??
beq Flow_EA89 ; CPU:$E809 PRG:2809 ??
cmp #$30 ; CPU:$E80B PRG:280B ??
beq Flow_EA9B ; CPU:$E80D PRG:280D ??
cmp #$28 ; CPU:$E80F PRG:280F ??
beq Flow_EA65 ; CPU:$E811 PRG:2811 ??
cmp #$20 ; CPU:$E813 PRG:2813 ??
bne Flow_EA25 ; CPU:$E815 PRG:2815 ??
lda Ram_0407,x ; CPU:$E817 PRG:2817 ??
and #$03 ; CPU:$E819 PRG:2819 ??
tay ; CPU:$E81B PRG:281B ??
lda LookupTable_EAE6,y ; CPU:$E81D PRG:281D ??
jsr ProcessGameState_E951 ; CPU:$E81F PRG:281F ??
lda LookupTable_EAE3,y ; CPU:$E821 PRG:2821 ??
ldy LookupTable_EAD0,x ; CPU:$E823 PRG:2823 ??
jsr UpdateObjectState_E0E4 ; CPU:$E825 PRG:2825 ??
jmp Flow_EA25 ; CPU:$E827 PRG:2827 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow EA65.
; Local behavior: Executes the decoded flow ea65 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_EA65:
lda Ram_0407,x ; CPU:$E829 PRG:2829 ??
and #$03 ; CPU:$E82B PRG:282B ??
tay ; CPU:$E82D PRG:282D ??
lda LookupTable_EAE0,y ; CPU:$E82F PRG:282F ??
ldy LookupTable_EAD0,x ; CPU:$E831 PRG:2831 ??
sta Ram_0701,y ; CPU:$E833 PRG:2833 ??
jmp Flow_EA25 ; CPU:$E835 PRG:2835 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow EA77.
; Local behavior: Executes the decoded flow ea77 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_EA77:
lda Ram_0407,x ; CPU:$E837 PRG:2837 ??
and #$03 ; CPU:$E839 PRG:2839 ??
tay ; CPU:$E83B PRG:283B ??
lda LookupTable_EAD7,y ; CPU:$E83D PRG:283D ??
ldy LookupTable_EAD0,x ; CPU:$E83F PRG:283F ??
sta Ram_0701,y ; CPU:$E841 PRG:2841 ??
jmp Flow_EA25 ; CPU:$E843 PRG:2843 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow EA89.
; Local behavior: Executes the decoded flow ea89 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_EA89:
lda Ram_0407,x ; CPU:$E845 PRG:2845 ??
and #$03 ; CPU:$E847 PRG:2847 ??
tay ; CPU:$E849 PRG:2849 ??
lda LookupTable_EADA,y ; CPU:$E84B PRG:284B ??
ldy LookupTable_EAD0,x ; CPU:$E84D PRG:284D ??
sta Ram_0701,y ; CPU:$E84F PRG:284F ??
jmp Flow_EA25 ; CPU:$E851 PRG:2851 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow EA9 B.
; Local behavior: Executes the decoded flow ea9 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_EA9B:
lda Ram_0407,x ; CPU:$E853 PRG:2853 ??
and #$03 ; CPU:$E855 PRG:2855 ??
tay ; CPU:$E857 PRG:2857 ??
lda LookupTable_EADD,y ; CPU:$E859 PRG:2859 ??
ldy LookupTable_EAD0,x ; CPU:$E85B PRG:285B ??
sta Ram_0701,y ; CPU:$E85D PRG:285D ??
jmp Flow_EA25 ; CPU:$E85F PRG:285F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow EAAD.
; Local behavior: Executes the decoded flow eaad sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_EAAD:
stx Zp_32 ; CPU:$E861 PRG:2861 ??
lda Ram_0407,x ; CPU:$E863 PRG:2863 ??
and #$03 ; CPU:$E865 PRG:2865 ??
tax ; CPU:$E867 PRG:2867 ??
dec Ram_045D,x ; CPU:$E869 PRG:2869 ??
ldx Zp_32 ; CPU:$E86B PRG:286B ??
lda #$FF ; CPU:$E86D PRG:286D ??
sta Ram_0407,x ; CPU:$E86F PRG:286F ??
ldy LookupTable_EAD0,x ; CPU:$E871 PRG:2871 ??
lda #$F0 ; CPU:$E873 PRG:2873 ??
sta Ram_0700,y ; CPU:$E875 PRG:2875 ??
sta Ram_0703,y ; CPU:$E877 PRG:2877 ??
jsr ProcessGameState_E10D ; CPU:$E879 PRG:2879 ??
jmp Flow_EA25 ; CPU:$E87B PRG:287B ??
LookupTable_EAD0:
.byte $00,$04,$08,$0C,$10,$14,$18 ; PRG $2AD0 | CPU $EAD0 ; CPU:$E87D PRG:287D 00 04 08 0C 10 14 18
LookupTable_EAD7:
.byte $1C,$58,$70 ; PRG $2AD7 | CPU $EAD7 ; CPU:$E884 PRG:2884 1C 58 70
LookupTable_EADA:
.byte $88,$5A,$72 ; PRG $2ADA | CPU $EADA ; CPU:$E887 PRG:2887 88 5A 72
LookupTable_EADD:
.byte $8A,$5C,$74 ; PRG $2ADD | CPU $EADD ; CPU:$E88A PRG:288A 8A 5C 74
LookupTable_EAE0:
.byte $8C,$5E,$76 ; PRG $2AE0 | CPU $EAE0 ; CPU:$E88D PRG:288D 8C 5E 76
LookupTable_EAE3:
.byte $8E,$F0,$F2 ; PRG $2AE3 | CPU $EAE3 ; CPU:$E890 PRG:2890 8E F0 F2
LookupTable_EAE6:
.byte $F4,$01,$02,$03,$84,$42,$A2,$05,$BD,$07,$04,$10,$06,$CA,$10,$F8 ; PRG $2AE6 | CPU $EAE6 ; CPU:$E893 PRG:2893 F4 01 02 03 84 42 A2 05 BD 07 04 10 06 CA 10 F8
.byte $A4,$42,$60,$BC,$D0,$EA,$B9,$03,$07,$18,$69,$08,$85,$32,$B9,$00 ; PRG $2AF6 | CPU $EAF6 ; CPU:$E8A3 PRG:28A3 A4 42 60 BC D0 EA B9 03 07 18 69 08 85 32 B9 00
.byte $07,$85,$33,$AC,$71,$04,$B9,$01,$02,$C5,$32,$B0,$E0,$18,$69,$20 ; PRG $2B06 | CPU $EB06 ; CPU:$E8B3 PRG:28B3 07 85 33 AC 71 04 B9 01 02 C5 32 B0 E0 18 69 20
.byte $C5,$32,$90,$D9,$B9,$02,$02,$38,$E9,$09,$C5,$33,$B0,$CF,$69,$10 ; PRG $2B16 | CPU $EB16 ; CPU:$E8C3 PRG:28C3 C5 32 90 D9 B9 02 02 38 E9 09 C5 33 B0 CF 69 10
.byte $C5,$33,$90,$C9,$BD,$07,$04,$29,$0F,$09,$80,$9D,$07,$04,$A9,$42 ; PRG $2B26 | CPU $EB26 ; CPU:$E8D3 PRG:28D3 C5 33 90 C9 BD 07 04 29 0F 09 80 9D 07 04 A9 42
.byte $9D,$38,$04,$A9,$0C,$20,$26,$C0,$4C,$F3,$EA,$47,$20,$28,$3B,$20 ; PRG $2B36 | CPU $EB36 ; CPU:$E8E3 PRG:28E3 9D 38 04 A9 0C 20 26 C0 4C F3 EA 47 20 28 3B 20
.byte $30,$09,$20,$48,$17,$20,$68,$5B,$20,$70,$09,$20,$98,$3B,$20,$A0 ; PRG $2B46 | CPU $EB46 ; CPU:$E8F3 PRG:28F3 30 09 20 48 17 20 68 5B 20 70 09 20 98 3B 20 A0
.byte $09,$20,$B8,$3B,$38,$50,$5B,$38,$70,$3B,$50,$30,$09,$50,$48,$1B ; PRG $2B56 | CPU $EB56 ; CPU:$E903 PRG:2903 09 20 B8 3B 38 50 5B 38 70 3B 50 30 09 50 48 1B
.byte $50,$50,$09,$50,$58,$1B,$50,$60,$09,$50,$68,$1B,$50,$70,$09,$50 ; PRG $2B66 | CPU $EB66 ; CPU:$E913 PRG:2913 50 50 09 50 58 1B 50 60 09 50 68 1B 50 70 09 50
.byte $78,$3B,$50,$80,$09,$50,$98,$3B,$50,$A0,$09,$50,$B8,$5B,$68,$30 ; PRG $2B76 | CPU $EB76 ; CPU:$E923 PRG:2923 78 3B 50 80 09 50 98 3B 50 A0 09 50 B8 5B 68 30
.byte $0A,$60,$58,$17,$80,$28,$3B,$80,$30,$09,$80,$48,$1B,$80,$50,$09 ; PRG $2B86 | CPU $EB86 ; CPU:$E933 PRG:2933 0A 60 58 17 80 28 3B 80 30 09 80 48 1B 80 50 09
.byte $80,$58,$3B,$80,$80,$09,$80,$78,$3B,$80,$80,$09,$80,$98,$3B,$80 ; PRG $2B96 | CPU $EB96 ; CPU:$E943 PRG:2943 80 58 3B 80 80 09 80 78 3B 80 80 09 80 98 3B 80
.byte $A0,$09,$80,$B8,$5B,$98,$50,$08,$90,$98,$17,$B0,$28,$3B,$B0,$30 ; PRG $2BA6 | CPU $EBA6 ; CPU:$E953 PRG:2953 A0 09 80 B8 5B 98 50 08 90 98 17 B0 28 3B B0 30
.byte $09,$B0,$48,$3B,$B0,$50,$09,$B0,$68,$1B,$B0,$70,$09,$B0,$78,$1B ; PRG $2BB6 | CPU $EBB6 ; CPU:$E963 PRG:2963 09 B0 48 3B B0 50 09 B0 68 1B B0 70 09 B0 78 1B
.byte $B0,$80,$09,$B0,$88,$1B,$B0,$90,$09,$B0,$98,$3B,$B0,$A0,$09,$B0 ; PRG $2BC6 | CPU $EBC6 ; CPU:$E973 PRG:2973 B0 80 09 B0 88 1B B0 90 09 B0 98 3B B0 A0 09 B0
.byte $B8,$3B,$C8,$70,$5B,$C8,$90,$0A,$C0,$B8,$17,$E0,$28,$3B,$E0,$30 ; PRG $2BD6 | CPU $EBD6 ; CPU:$E983 PRG:2983 B8 3B C8 70 5B C8 90 0A C0 B8 17 E0 28 3B E0 30
.byte $09,$E0,$48,$3B,$E0,$50,$09,$E0,$68,$17,$E0,$88,$5B,$E0,$90,$09 ; PRG $2BE6 | CPU $EBE6 ; CPU:$E993 PRG:2993 09 E0 48 3B E0 50 09 E0 68 17 E0 88 5B E0 90 09
.byte $E0,$B8,$3B,$80,$60,$FF,$17,$20,$28,$1B,$20,$30,$09,$20,$38,$1B ; PRG $2BF6 | CPU $EBF6 ; CPU:$E9A3 PRG:29A3 E0 B8 3B 80 60 FF 17 20 28 1B 20 30 09 20 38 1B
.byte $20,$40,$09,$20,$48,$3B,$20,$50,$09,$20,$68,$1B,$38,$30,$1B,$38 ; PRG $2C06 | CPU $EC06 ; CPU:$E9B3 PRG:29B3 20 40 09 20 48 3B 20 50 09 20 68 1B 38 30 1B 38
.byte $40,$3B,$38,$50,$17,$50,$28,$1B,$50,$30,$09,$50,$38,$1B,$50,$40 ; PRG $2C16 | CPU $EC16 ; CPU:$E9C3 PRG:29C3 40 3B 38 50 17 50 28 1B 50 30 09 50 38 1B 50 40
.byte $09,$50,$48,$1B,$50,$50,$09,$50,$58,$1B,$50,$60,$09,$50,$68,$17 ; PRG $2C26 | CPU $EC26 ; CPU:$E9D3 PRG:29D3 09 50 48 1B 50 50 09 50 58 1B 50 60 09 50 68 17
.byte $50,$88,$17,$50,$A8,$1B,$68,$30,$3B,$68,$40,$1B,$68,$60,$0A,$60 ; PRG $2C36 | CPU $EC36 ; CPU:$E9E3 PRG:29E3 50 88 17 50 A8 1B 68 30 3B 68 40 1B 68 60 0A 60
.byte $68,$3B,$68,$70,$0A,$60,$88,$3B,$68,$90,$17,$80,$28,$1B,$80,$30 ; PRG $2C46 | CPU $EC46 ; CPU:$E9F3 PRG:29F3 68 3B 68 70 0A 60 88 3B 68 90 17 80 28 1B 80 30
.byte $09,$80,$38,$1B,$80,$40,$09,$80,$48,$1B,$80,$50,$09,$80,$58,$1B ; PRG $2C56 | CPU $EC56 ; CPU:$EA03 PRG:2A03 09 80 38 1B 80 40 09 80 48 1B 80 50 09 80 58 1B
.byte $80,$60,$09,$80,$68,$1B,$80,$70,$09,$80,$78,$1B,$80,$80,$09,$80 ; PRG $2C66 | CPU $EC66 ; CPU:$EA13 PRG:2A13 80 60 09 80 68 1B 80 70 09 80 78 1B 80 80 09 80
.byte $88,$1B,$80,$90,$09,$80,$98,$1B,$80,$A0,$09,$80,$A8,$3B,$80,$B0 ; PRG $2C76 | CPU $EC76 ; CPU:$EA23 PRG:2A23 88 1B 80 90 09 80 98 1B 80 A0 09 80 A8 3B 80 B0
.byte $09,$80,$C8,$3B,$98,$30,$0A,$90,$48,$3B,$98,$50,$0A,$90,$68,$1B ; PRG $2C86 | CPU $EC86 ; CPU:$EA33 PRG:2A33 09 80 C8 3B 98 30 0A 90 48 3B 98 50 0A 90 68 1B
.byte $98,$70,$3B,$98,$80,$1B,$98,$A0,$17,$B0,$28,$3B,$B0,$30,$09,$B0 ; PRG $2C96 | CPU $EC96 ; CPU:$EA43 PRG:2A43 98 70 3B 98 80 1B 98 A0 17 B0 28 3B B0 30 09 B0
.byte $48,$1B,$B0,$50,$09,$B0,$58,$1B,$B0,$60,$09,$B0,$68,$17,$B0,$78 ; PRG $2CA6 | CPU $ECA6 ; CPU:$EA53 PRG:2A53 48 1B B0 50 09 B0 58 1B B0 60 09 B0 68 17 B0 78
.byte $17,$B0,$98,$17,$B0,$A8,$3B,$C8,$30,$1B,$C8,$50,$1B,$C8,$60,$17 ; PRG $2CB6 | CPU $ECB6 ; CPU:$EA63 PRG:2A63 17 B0 98 17 B0 A8 3B C8 30 1B C8 50 1B C8 60 17
.byte $E0,$28,$3B,$E0,$30,$09,$E0,$48,$1B,$E0,$50,$09,$E0,$58,$1B,$E0 ; PRG $2CC6 | CPU $ECC6 ; CPU:$EA73 PRG:2A73 E0 28 3B E0 30 09 E0 48 1B E0 50 09 E0 58 1B E0
.byte $60,$09,$E0,$68,$FF,$17,$20,$28,$1B,$20,$30,$09,$20,$38,$1B,$20 ; PRG $2CD6 | CPU $ECD6 ; CPU:$EA83 PRG:2A83 60 09 E0 68 FF 17 20 28 1B 20 30 09 20 38 1B 20
.byte $40,$09,$20,$48,$1B,$20,$50,$09,$20,$58,$17,$20,$98,$1B,$20,$A0 ; PRG $2CE6 | CPU $ECE6 ; CPU:$EA93 PRG:2A93 40 09 20 48 1B 20 50 09 20 58 17 20 98 1B 20 A0
.byte $09,$20,$A8,$1B,$20,$B0,$09,$20,$B8,$08,$30,$38,$1B,$38,$A0,$1B ; PRG $2CF6 | CPU $ECF6 ; CPU:$EAA3 PRG:2AA3 09 20 A8 1B 20 B0 09 20 B8 08 30 38 1B 38 A0 1B
.byte $38,$B0,$17,$50,$28,$1B,$50,$30,$09,$50,$38,$1B,$50,$40,$09,$50 ; PRG $2D06 | CPU $ED06 ; CPU:$EAB3 PRG:2AB3 38 B0 17 50 28 1B 50 30 09 50 38 1B 50 40 09 50
.byte $48,$17,$50,$58,$1B,$50,$60,$1B,$50,$68,$1B,$50,$70,$09,$50,$78 ; PRG $2D16 | CPU $ED16 ; CPU:$EAC3 PRG:2AC3 48 17 50 58 1B 50 60 1B 50 68 1B 50 70 09 50 78
.byte $3B,$50,$80,$09,$50,$98,$17,$50,$A8,$1B,$50,$B0,$09,$50,$B8,$1B ; PRG $2D26 | CPU $ED26 ; CPU:$EAD3 PRG:2AD3 3B 50 80 09 50 98 17 50 A8 1B 50 B0 09 50 B8 1B
.byte $50,$C0,$09,$50,$C8,$1B,$50,$D0,$09,$50,$D8,$1B,$68,$30,$08,$60 ; PRG $2D36 | CPU $ED36 ; CPU:$EAE3 PRG:2AE3 50 C0 09 50 C8 1B 50 D0 09 50 D8 1B 68 30 08 60
.byte $48,$1B,$68,$50,$3B,$68,$60,$0A,$60,$78,$08,$60,$C8,$1B,$68,$D0 ; PRG $2D46 | CPU $ED46 ; CPU:$EAF3 PRG:2AF3 48 1B 68 50 3B 68 60 0A 60 78 08 60 C8 1B 68 D0
.byte $0A,$60,$D8,$17,$80,$28,$17,$80,$38,$1B,$80,$40,$09,$80,$48,$1B ; PRG $2D56 | CPU $ED56 ; CPU:$EB03 PRG:2B03 0A 60 D8 17 80 28 17 80 38 1B 80 40 09 80 48 1B
.byte $80,$50,$09,$80,$58,$1B,$80,$60,$09,$80,$68,$1B,$80,$70,$09,$80 ; PRG $2D66 | CPU $ED66 ; CPU:$EB13 PRG:2B13 80 50 09 80 58 1B 80 60 09 80 68 1B 80 70 09 80
.byte $78,$27,$90,$78,$17,$80,$C8,$17,$80,$D8,$1B,$98,$30,$08,$90,$68 ; PRG $2D76 | CPU $ED76 ; CPU:$EB23 PRG:2B23 78 27 90 78 17 80 C8 17 80 D8 1B 98 30 08 90 68
.byte $08,$90,$C8,$1B,$98,$D0,$0A,$90,$D8,$17,$B0,$28,$37,$B0,$38,$1B ; PRG $2D86 | CPU $ED86 ; CPU:$EB33 PRG:2B33 08 90 C8 1B 98 D0 0A 90 D8 17 B0 28 37 B0 38 1B
.byte $B0,$40,$09,$B0,$48,$1B,$B0,$50,$09,$B0,$58,$17,$B0,$68,$1B,$B0 ; PRG $2D96 | CPU $ED96 ; CPU:$EB43 PRG:2B43 B0 40 09 B0 48 1B B0 50 09 B0 58 17 B0 68 1B B0
.byte $70,$09,$B0,$78,$3B,$B0,$80,$09,$B0,$98,$1B,$B0,$A0,$09,$B0,$A8 ; PRG $2DA6 | CPU $EDA6 ; CPU:$EB53 PRG:2B53 70 09 B0 78 3B B0 80 09 B0 98 1B B0 A0 09 B0 A8
.byte $1B,$B0,$B0,$09,$B0,$B8,$1B,$B0,$C0,$09,$B0,$C8,$1B,$B0,$D0,$09 ; PRG $2DB6 | CPU $EDB6 ; CPU:$EB63 PRG:2B63 1B B0 B0 09 B0 B8 1B B0 C0 09 B0 C8 1B B0 D0 09
.byte $B0,$D8,$17,$E0,$28,$1B,$E0,$30,$09,$E0,$38,$1B,$E0,$40,$09,$E0 ; PRG $2DC6 | CPU $EDC6 ; CPU:$EB73 PRG:2B73 B0 D8 17 E0 28 1B E0 30 09 E0 38 1B E0 40 09 E0
.byte $48,$1B,$E0,$50,$09,$E0,$58,$17,$E0,$98,$1B,$E0,$A0,$09,$E0,$A8 ; PRG $2DD6 | CPU $EDD6 ; CPU:$EB83 PRG:2B83 48 1B E0 50 09 E0 58 17 E0 98 1B E0 A0 09 E0 A8
.byte $1B,$E0,$B0,$09,$E0,$B8,$FF,$17,$20,$28,$17,$50,$28,$17,$80,$28 ; PRG $2DE6 | CPU $EDE6 ; CPU:$EB93 PRG:2B93 1B E0 B0 09 E0 B8 FF 17 20 28 17 50 28 17 80 28
.byte $17,$B0,$28,$17,$E0,$28,$1B,$20,$30,$1B,$50,$30,$1B,$80,$30,$1B ; PRG $2DF6 | CPU $EDF6 ; CPU:$EBA3 PRG:2BA3 17 B0 28 17 E0 28 1B 20 30 1B 50 30 1B 80 30 1B
.byte $B0,$30,$1B,$E0,$38,$09,$20,$38,$09,$50,$38,$09,$80,$38,$09,$B0 ; PRG $2E06 | CPU $EE06 ; CPU:$EBB3 PRG:2BB3 B0 30 1B E0 38 09 20 38 09 50 38 09 80 38 09 B0
.byte $38,$09,$E0,$38,$1B,$38,$40,$1B,$68,$40,$1B,$98,$40,$1B,$C8,$40 ; PRG $2E16 | CPU $EE16 ; CPU:$EBC3 PRG:2BC3 38 09 E0 38 1B 38 40 1B 68 40 1B 98 40 1B C8 40
.byte $17,$20,$48,$17,$50,$48,$17,$80,$48,$17,$B0,$48,$17,$E0,$48,$1B ; PRG $2E26 | CPU $EE26 ; CPU:$EBD3 PRG:2BD3 17 20 48 17 50 48 17 80 48 17 B0 48 17 E0 48 1B
.byte $20,$50,$1B,$50,$50,$1B,$80,$50,$1B,$B0,$50,$1B,$E0,$50,$09,$20 ; PRG $2E36 | CPU $EE36 ; CPU:$EBE3 PRG:2BE3 20 50 1B 50 50 1B 80 50 1B B0 50 1B E0 50 09 20
.byte $58,$09,$50,$58,$09,$80,$58,$09,$B0,$58,$09,$E0,$58,$1B,$38,$60 ; PRG $2E46 | CPU $EE46 ; CPU:$EBF3 PRG:2BF3 58 09 50 58 09 80 58 09 B0 58 09 E0 58 1B 38 60
.byte $1B,$68,$60,$1B,$80,$60,$1B,$98,$60,$1B,$C8,$60,$17,$20,$68,$17 ; PRG $2E56 | CPU $EE56 ; CPU:$EC03 PRG:2C03 1B 68 60 1B 80 60 1B 98 60 1B C8 60 17 20 68 17
.byte $50,$68,$09,$80,$68,$17,$B0,$68,$17,$E0,$68,$1B,$20,$70,$1B,$50 ; PRG $2E66 | CPU $EE66 ; CPU:$EC13 PRG:2C13 50 68 09 80 68 17 B0 68 17 E0 68 1B 20 70 1B 50
.byte $70,$1B,$80,$70,$1B,$B0,$70,$1B,$E0,$70,$09,$20,$78,$09,$50,$78 ; PRG $2E76 | CPU $EE76 ; CPU:$EC23 PRG:2C23 70 1B 80 70 1B B0 70 1B E0 70 09 20 78 09 50 78
.byte $09,$80,$78,$09,$B0,$78,$09,$E0,$78,$1B,$20,$80,$1B,$38,$80,$1B ; PRG $2E86 | CPU $EE86 ; CPU:$EC33 PRG:2C33 09 80 78 09 B0 78 09 E0 78 1B 20 80 1B 38 80 1B
.byte $68,$80,$1B,$98,$80,$1B,$C8,$80,$1B,$E0,$80,$09,$20,$88,$17,$50 ; PRG $2E96 | CPU $EE96 ; CPU:$EC43 PRG:2C43 68 80 1B 98 80 1B C8 80 1B E0 80 09 20 88 17 50
.byte $88,$17,$80,$88,$17,$B0,$88,$09,$E0,$88,$1B,$20,$90,$1B,$50,$90 ; PRG $2EA6 | CPU $EEA6 ; CPU:$EC53 PRG:2C53 88 17 80 88 17 B0 88 09 E0 88 1B 20 90 1B 50 90
.byte $1B,$80,$90,$1B,$B0,$90,$1B,$E0,$90,$09,$20,$98,$09,$50,$98,$09 ; PRG $2EB6 | CPU $EEB6 ; CPU:$EC63 PRG:2C63 1B 80 90 1B B0 90 1B E0 90 09 20 98 09 50 98 09
.byte $80,$98,$09,$B0,$98,$09,$E0,$98,$1B,$E0,$30,$FF,$47,$20,$28,$17 ; PRG $2EC6 | CPU $EEC6 ; CPU:$EC73 PRG:2C73 80 98 09 B0 98 09 E0 98 1B E0 30 FF 47 20 28 17
.byte $80,$28,$47,$B0,$28,$1B,$20,$30,$1B,$C8,$30,$1B,$E0,$30,$09,$20 ; PRG $2ED6 | CPU $EED6 ; CPU:$EC83 PRG:2C83 80 28 47 B0 28 1B 20 30 1B C8 30 1B E0 30 09 20
.byte $38,$37,$30,$38,$17,$80,$38,$17,$B0,$38,$0A,$C0,$38,$09,$E0,$38 ; PRG $2EE6 | CPU $EEE6 ; CPU:$EC93 PRG:2C93 38 37 30 38 17 80 38 17 B0 38 0A C0 38 09 E0 38
.byte $1B,$80,$40,$1B,$B0,$40,$5B,$C8,$40,$5B,$E0,$40,$47,$20,$48,$09 ; PRG $2EF6 | CPU $EEF6 ; CPU:$ECA3 PRG:2CA3 1B 80 40 1B B0 40 5B C8 40 5B E0 40 47 20 48 09
.byte $80,$48,$09,$B0,$48,$1B,$20,$50,$09,$20,$58,$1B,$20,$60,$09,$20 ; PRG $2F06 | CPU $EF06 ; CPU:$ECB3 PRG:2CB3 80 48 09 B0 48 1B 20 50 09 20 58 1B 20 60 09 20
.byte $68,$1B,$20,$80,$09,$20,$88,$37,$30,$58,$17,$80,$58,$17,$B0,$58 ; PRG $2F16 | CPU $EF16 ; CPU:$ECC3 PRG:2CC3 68 1B 20 80 09 20 88 37 30 58 17 80 58 17 B0 58
.byte $1B,$B0,$60,$37,$30,$68,$17,$80,$68,$09,$B0,$68,$0A,$C0,$68,$09 ; PRG $2F26 | CPU $EF26 ; CPU:$ECD3 PRG:2CD3 1B B0 60 37 30 68 17 80 68 09 B0 68 0A C0 68 09
.byte $E0,$68,$1B,$20,$70,$1B,$50,$70,$7B,$C8,$70,$7B,$E0,$70,$09,$20 ; PRG $2F36 | CPU $EF36 ; CPU:$ECE3 PRG:2CE3 E0 68 1B 20 70 1B 50 70 7B C8 70 7B E0 70 09 20
.byte $78,$08,$30,$78,$09,$50,$78,$17,$80,$78,$17,$B0,$78,$1B,$B0,$80 ; PRG $2F46 | CPU $EF46 ; CPU:$ECF3 PRG:2CF3 78 08 30 78 09 50 78 17 80 78 17 B0 78 1B B0 80
.byte $37,$30,$88,$17,$80,$88,$09,$B0,$88,$1B,$20,$90,$1B,$B0,$90,$09 ; PRG $2F56 | CPU $EF56 ; CPU:$ED03 PRG:2D03 37 30 88 17 80 88 09 B0 88 1B 20 90 1B B0 90 09
.byte $20,$98,$37,$30,$98,$17,$80,$98,$09,$B0,$98,$7B,$20,$A0,$17,$B0 ; PRG $2F66 | CPU $EF66 ; CPU:$ED13 PRG:2D13 20 98 37 30 98 17 80 98 09 B0 98 7B 20 A0 17 B0
.byte $A8,$0A,$C0,$A8,$09,$E0,$A8,$5B,$B0,$B0,$5B,$E0,$B0,$09,$20,$D8 ; PRG $2F76 | CPU $EF76 ; CPU:$ED23 PRG:2D23 A8 0A C0 A8 09 E0 A8 5B B0 B0 5B E0 B0 09 20 D8
.byte $09,$B0,$D8,$08,$C0,$D8,$09,$E0,$D8,$FF,$17,$50,$28,$17,$80,$28 ; PRG $2F86 | CPU $EF86 ; CPU:$ED33 PRG:2D33 09 B0 D8 08 C0 D8 09 E0 D8 FF 17 50 28 17 80 28
.byte $17,$B0,$28,$17,$E0,$28,$1B,$50,$30,$3B,$68,$30,$1B,$B0,$30,$17 ; PRG $2F96 | CPU $EF96 ; CPU:$ED43 PRG:2D43 17 B0 28 17 E0 28 1B 50 30 3B 68 30 1B B0 30 17
.byte $20,$38,$09,$50,$38,$17,$80,$38,$09,$B0,$38,$1B,$50,$40,$3B,$98 ; PRG $2FA6 | CPU $EFA6 ; CPU:$ED53 PRG:2D53 20 38 09 50 38 17 80 38 09 B0 38 1B 50 40 3B 98
.byte $40,$09,$50,$48,$17,$80,$48,$17,$E0,$48,$1B,$50,$50,$3B,$68,$50 ; PRG $2FB6 | CPU $EFB6 ; CPU:$ED63 PRG:2D63 40 09 50 48 17 80 48 17 E0 48 1B 50 50 3B 68 50
.byte $1B,$80,$50,$17,$B0,$48,$1B,$B0,$50,$17,$20,$58,$09,$50,$58,$09 ; PRG $2FC6 | CPU $EFC6 ; CPU:$ED73 PRG:2D73 1B 80 50 17 B0 48 1B B0 50 17 20 58 09 50 58 09
.byte $80,$58,$09,$B0,$58,$1B,$80,$60,$1B,$B0,$60,$17,$50,$68,$09,$80 ; PRG $2FD6 | CPU $EFD6 ; CPU:$ED83 PRG:2D83 80 58 09 B0 58 1B 80 60 1B B0 60 17 50 68 09 80
.byte $68,$09,$B0,$68,$17,$E0,$68,$1B,$50,$70,$1B,$80,$70,$1B,$B0,$70 ; PRG $2FE6 | CPU $EFE6 ; CPU:$ED93 PRG:2D93 68 09 B0 68 17 E0 68 1B 50 70 1B 80 70 1B B0 70
.byte $17,$20,$78,$09,$50,$78,$09,$80,$78,$09,$B0,$78,$1B,$50,$80,$3B ; PRG $2FF6 | CPU $EFF6 ; CPU:$EDA3 PRG:2DA3 17 20 78 09 50 78 09 80 78 09 B0 78 1B 50 80 3B
.byte $98,$80,$09,$50,$88,$17,$80,$88,$17,$B0,$88,$17,$E0,$88,$1B,$50 ; PRG $3006 | CPU $F006 ; CPU:$EDB3 PRG:2DB3 98 80 09 50 88 17 80 88 17 B0 88 17 E0 88 1B 50
.byte $90,$3B,$68,$90,$1B,$80,$90,$1B,$B0,$90,$17,$20,$98,$09,$50,$98 ; PRG $3016 | CPU $F016 ; CPU:$EDC3 PRG:2DC3 90 3B 68 90 1B 80 90 1B B0 90 17 20 98 09 50 98
.byte $09,$80,$98,$09,$B0,$98,$1B,$98,$A0,$1B,$B0,$A0,$17,$50,$A8,$17 ; PRG $3026 | CPU $F026 ; CPU:$EDD3 PRG:2DD3 09 80 98 09 B0 98 1B 98 A0 1B B0 A0 17 50 A8 17
.byte $80,$A8,$09,$B0,$A8,$37,$C0,$A8,$1B,$50,$B0,$1B,$80,$B0,$1B,$B0 ; PRG $3036 | CPU $F036 ; CPU:$EDE3 PRG:2DE3 80 A8 09 B0 A8 37 C0 A8 1B 50 B0 1B 80 B0 1B B0
.byte $B0,$37,$20,$B8,$09,$50,$B8,$09,$80,$B8,$09,$B0,$B8,$FF,$01,$30 ; PRG $3046 | CPU $F046 ; CPU:$EDF3 PRG:2DF3 B0 37 20 B8 09 50 B8 09 80 B8 09 B0 B8 FF 01 30
.byte $48,$06,$30,$68,$04,$30,$98,$02,$30,$B8,$0F,$30,$D8,$01,$60,$28 ; PRG $3056 | CPU $F056 ; CPU:$EE03 PRG:2E03 48 06 30 68 04 30 98 02 30 B8 0F 30 D8 01 60 28
.byte $06,$60,$78,$04,$60,$98,$02,$60,$B8,$0F,$60,$D8,$01,$90,$28,$06 ; PRG $3066 | CPU $F066 ; CPU:$EE13 PRG:2E13 06 60 78 04 60 98 02 60 B8 0F 60 D8 01 90 28 06
.byte $90,$48,$04,$90,$78,$02,$90,$B8,$0F,$90,$D8,$01,$C0,$28,$06,$C0 ; PRG $3076 | CPU $F076 ; CPU:$EE23 PRG:2E23 90 48 04 90 78 02 90 B8 0F 90 D8 01 C0 28 06 C0
.byte $48,$04,$C0,$68,$02,$C0,$88,$0F,$C0,$D8,$FF,$01,$60,$28,$05,$60 ; PRG $3086 | CPU $F086 ; CPU:$EE33 PRG:2E33 48 04 C0 68 02 C0 88 0F C0 D8 FF 01 60 28 05 60
.byte $38,$06,$60,$48,$04,$60,$58,$06,$60,$68,$04,$60,$78,$05,$60,$88 ; PRG $3096 | CPU $F096 ; CPU:$EE43 PRG:2E43 38 06 60 48 04 60 58 06 60 68 04 60 78 05 60 88
.byte $02,$60,$98,$0F,$60,$D8,$01,$90,$28,$05,$90,$38,$04,$90,$48,$06 ; PRG $30A6 | CPU $F0A6 ; CPU:$EE53 PRG:2E53 02 60 98 0F 60 D8 01 90 28 05 90 38 04 90 48 06
.byte $90,$58,$04,$90,$68,$05,$90,$78,$06,$90,$88,$02,$90,$98,$0F,$90 ; PRG $30B6 | CPU $F0B6 ; CPU:$EE63 PRG:2E63 90 58 04 90 68 05 90 78 06 90 88 02 90 98 0F 90
.byte $D8,$FF,$01,$30,$28,$06,$30,$38,$03,$30,$48,$02,$30,$68,$0F,$30 ; PRG $30C6 | CPU $F0C6 ; CPU:$EE73 PRG:2E73 D8 FF 01 30 28 06 30 38 03 30 48 02 30 68 0F 30
.byte $A8,$01,$60,$28,$03,$60,$38,$06,$60,$58,$02,$60,$A8,$0F,$60,$D8 ; PRG $30D6 | CPU $F0D6 ; CPU:$EE83 PRG:2E83 A8 01 60 28 03 60 38 06 60 58 02 60 A8 0F 60 D8
.byte $01,$90,$28,$03,$90,$78,$06,$90,$98,$02,$90,$A8,$0F,$90,$D8,$01 ; PRG $30E6 | CPU $F0E6 ; CPU:$EE93 PRG:2E93 01 90 28 03 90 78 06 90 98 02 90 A8 0F 90 D8 01
.byte $C0,$28,$06,$C0,$48,$03,$C0,$58,$02,$C0,$68,$0F,$C0,$A8,$FF,$01 ; PRG $30F6 | CPU $F0F6 ; CPU:$EEA3 PRG:2EA3 C0 28 06 C0 48 03 C0 58 02 C0 68 0F C0 A8 FF 01
.byte $30,$28,$04,$30,$48,$02,$30,$58,$0F,$30,$78,$01,$30,$98,$05,$30 ; PRG $3106 | CPU $F106 ; CPU:$EEB3 PRG:2EB3 30 28 04 30 48 02 30 58 0F 30 78 01 30 98 05 30
.byte $A8,$02,$30,$B8,$0F,$30,$D8,$01,$60,$28,$05,$60,$38,$02,$60,$58 ; PRG $3116 | CPU $F116 ; CPU:$EEC3 PRG:2EC3 A8 02 30 B8 0F 30 D8 01 60 28 05 60 38 02 60 58
.byte $0F,$60,$A8,$01,$90,$28,$04,$90,$38,$02,$90,$58,$0F,$90,$A8,$01 ; PRG $3126 | CPU $F126 ; CPU:$EED3 PRG:2ED3 0F 60 A8 01 90 28 04 90 38 02 90 58 0F 90 A8 01
.byte $C0,$28,$05,$C0,$48,$02,$C0,$58,$0F,$C0,$78,$01,$C0,$98,$04,$C0 ; PRG $3136 | CPU $F136 ; CPU:$EEE3 PRG:2EE3 C0 28 05 C0 48 02 C0 58 0F C0 78 01 C0 98 04 C0
.byte $A8,$02,$C0,$B8,$0F,$C0,$D8,$FF,$01,$30,$28,$03,$30,$38,$05,$30 ; PRG $3146 | CPU $F146 ; CPU:$EEF3 PRG:2EF3 A8 02 C0 B8 0F C0 D8 FF 01 30 28 03 30 38 05 30
.byte $48,$06,$30,$58,$04,$30,$68,$06,$30,$78,$05,$30,$88,$02,$30,$98 ; PRG $3156 | CPU $F156 ; CPU:$EF03 PRG:2F03 48 06 30 58 04 30 68 06 30 78 05 30 88 02 30 98
.byte $0F,$30,$D8,$01,$60,$28,$06,$60,$38,$05,$60,$48,$04,$60,$58,$05 ; PRG $3166 | CPU $F166 ; CPU:$EF13 PRG:2F13 0F 30 D8 01 60 28 06 60 38 05 60 48 04 60 58 05
.byte $60,$68,$03,$60,$78,$06,$60,$88,$02,$60,$98,$0F,$60,$D8,$01,$90 ; PRG $3176 | CPU $F176 ; CPU:$EF23 PRG:2F23 60 68 03 60 78 06 60 88 02 60 98 0F 60 D8 01 90
.byte $28,$05,$90,$38,$06,$90,$48,$05,$90,$58,$04,$90,$68,$03,$90,$78 ; PRG $3186 | CPU $F186 ; CPU:$EF33 PRG:2F33 28 05 90 38 06 90 48 05 90 58 04 90 68 03 90 78
.byte $06,$90,$88,$02,$90,$98,$0F,$90,$D8,$01,$C0,$28,$03,$C0,$38,$06 ; PRG $3196 | CPU $F196 ; CPU:$EF43 PRG:2F43 06 90 88 02 90 98 0F 90 D8 01 C0 28 03 C0 38 06
.byte $C0,$48,$04,$C0,$58,$05,$C0,$68,$06,$C0,$78,$05,$C0,$88,$02,$C0 ; PRG $31A6 | CPU $F1A6 ; CPU:$EF53 PRG:2F53 C0 48 04 C0 58 05 C0 68 06 C0 78 05 C0 88 02 C0
.byte $98,$0F,$C0,$D8,$FF,$01,$30,$38,$03,$30,$58,$04,$30,$78,$02,$30 ; PRG $31B6 | CPU $F1B6 ; CPU:$EF63 PRG:2F63 98 0F C0 D8 FF 01 30 38 03 30 58 04 30 78 02 30
.byte $98,$0F,$30,$D8,$01,$60,$28,$03,$60,$48,$04,$60,$68,$03,$60,$88 ; PRG $31C6 | CPU $F1C6 ; CPU:$EF73 PRG:2F73 98 0F 30 D8 01 60 28 03 60 48 04 60 68 03 60 88
.byte $02,$60,$A8,$0F,$60,$D8,$01,$90,$38,$03,$90,$58,$03,$90,$78,$04 ; PRG $31D6 | CPU $F1D6 ; CPU:$EF83 PRG:2F83 02 60 A8 0F 60 D8 01 90 38 03 90 58 03 90 78 04
.byte $90,$98,$02,$90,$A8,$0F,$90,$D8,$01,$C0,$28,$04,$C0,$48,$03,$C0 ; PRG $31E6 | CPU $F1E6 ; CPU:$EF93 PRG:2F93 90 98 02 90 A8 0F 90 D8 01 C0 28 04 C0 48 03 C0
.byte $68,$02,$C0,$88,$0F,$C0,$D8,$FF,$01,$F2,$06,$20,$63,$03,$11,$35 ; PRG $31F6 | CPU $F1F6 ; CPU:$EFA3 PRG:2FA3 68 02 C0 88 0F C0 D8 FF 01 F2 06 20 63 03 11 35
.byte $30,$0A,$F2,$06,$20,$63,$03,$00,$00,$00,$13,$F2,$05,$20,$6E,$02 ; PRG $3206 | CPU $F206 ; CPU:$EFB3 PRG:2FB3 30 0A F2 06 20 63 03 00 00 00 13 F2 05 20 6E 02
.byte $28,$29,$1B,$F2,$06,$20,$63,$03,$12,$35,$30,$24,$F2,$06,$20,$63 ; PRG $3216 | CPU $F216 ; CPU:$EFC3 PRG:2FC3 28 29 1B F2 06 20 63 03 12 35 30 24 F2 06 20 63
.byte $03,$00,$00,$00,$2D,$F2,$06,$20,$76,$03,$12,$35,$30,$36,$F2,$05 ; PRG $3226 | CPU $F226 ; CPU:$EFD3 PRG:2FD3 03 00 00 00 2D F2 06 20 76 03 12 35 30 36 F2 05
.byte $20,$6D,$02,$28,$29 ; PRG $3236 | CPU $F236 ; CPU:$EFE3 PRG:2FE3 20 6D 02 28 29
LookupTable_F23B:
.byte $54 ; PRG $323B | CPU $F23B ; CPU:$EFE8 PRG:2FE8 54
LookupTable_F23C:
.byte $F0,$C8,$F0,$05,$F1,$4E,$F1,$91,$F0,$BB,$F1 ; PRG $323C | CPU $F23C ; CPU:$EFE9 PRG:2FE9 F0 C8 F0 05 F1 4E F1 91 F0 BB F1
LookupTable_F247:
.byte $01,$01,$01,$01,$01,$01 ; PRG $3247 | CPU $F247 ; CPU:$EFF4 PRG:2FF4 01 01 01 01 01 01
LookupTable_F24D:
.byte $1C,$1C,$1C,$1C,$1C,$1C ; PRG $324D | CPU $F24D ; CPU:$EFFA PRG:2FFA 1C 1C 1C 1C 1C 1C
LookupTable_F253:
.byte $78,$78,$78,$78,$A8,$78 ; PRG $3253 | CPU $F253 ; CPU:$F000 PRG:3000 78 78 78 78 A8 78
LookupTable_F259:
.byte $AC,$BC,$CC,$8C,$CC,$AC,$77,$F2,$96,$F2,$BB,$F2,$EF,$F2,$08,$F3 ; PRG $3259 | CPU $F259 ; CPU:$F006 PRG:3006 AC BC CC 8C CC AC 77 F2 96 F2 BB F2 EF F2 08 F3
.byte $2A,$F3,$67,$F3,$89,$F3,$A5,$F3,$D6,$F3,$2E,$F4,$4D,$F4,$20,$18 ; PRG $3269 | CPU $F269 ; CPU:$F016 PRG:3016 2A F3 67 F3 89 F3 A5 F3 D6 F3 2E F4 4D F4 20 18
.byte $E8,$40,$18,$58,$40,$78,$E8,$50,$48,$88,$60,$18,$58,$60,$A8,$E8 ; PRG $3279 | CPU $F279 ; CPU:$F026 PRG:3026 E8 40 18 58 40 78 E8 50 48 88 60 18 58 60 A8 E8
.byte $70,$48,$B8,$80,$A8,$E8,$90,$18,$B8,$B0,$18,$E8,$FF,$20,$18,$E8 ; PRG $3289 | CPU $F289 ; CPU:$F036 PRG:3036 70 48 B8 80 A8 E8 90 18 B8 B0 18 E8 FF 20 18 E8
.byte $30,$18,$88,$40,$18,$58,$40,$78,$E8,$50,$48,$88,$50,$A8,$E8,$60 ; PRG $3299 | CPU $F299 ; CPU:$F046 PRG:3046 30 18 88 40 18 58 40 78 E8 50 48 88 50 A8 E8 60
.byte $18,$E8,$70,$78,$B8,$80,$48,$88,$90,$78,$B8,$A0,$48,$B8,$C0,$78 ; PRG $32A9 | CPU $F2A9 ; CPU:$F056 PRG:3056 18 E8 70 78 B8 80 48 88 90 78 B8 A0 48 B8 C0 78
.byte $88,$FF,$20,$18,$E8,$30,$18,$E8,$40,$18,$88,$40,$A8,$E8,$50,$18 ; PRG $32B9 | CPU $F2B9 ; CPU:$F066 PRG:3066 88 FF 20 18 E8 30 18 E8 40 18 88 40 A8 E8 50 18
.byte $E8,$60,$48,$58,$60,$78,$B8,$70,$48,$B8,$80,$48,$58,$90,$18,$58 ; PRG $32C9 | CPU $F2C9 ; CPU:$F076 PRG:3076 E8 60 48 58 60 78 B8 70 48 B8 80 48 58 90 18 58
.byte $90,$A8,$E8,$A0,$18,$58,$A0,$A8,$E8,$B0,$18,$58,$B0,$A8,$E8,$C0 ; PRG $32D9 | CPU $F2D9 ; CPU:$F086 PRG:3086 90 A8 E8 A0 18 58 A0 A8 E8 B0 18 58 B0 A8 E8 C0
.byte $48,$B8,$D0,$48,$B8,$FF,$20,$18,$E8,$30,$18,$E8,$40,$18,$E8,$50 ; PRG $32E9 | CPU $F2E9 ; CPU:$F096 PRG:3096 48 B8 D0 48 B8 FF 20 18 E8 30 18 E8 40 18 E8 50
.byte $18,$E8,$60,$18,$E8,$70,$18,$E8,$80,$18,$E8,$90,$18,$E8,$FF,$20 ; PRG $32F9 | CPU $F2F9 ; CPU:$F0A6 PRG:30A6 18 E8 60 18 E8 70 18 E8 80 18 E8 90 18 E8 FF 20
.byte $18,$E8,$30,$18,$E8,$40,$18,$B8,$50,$18,$B8,$60,$18,$E8,$70,$18 ; PRG $3309 | CPU $F309 ; CPU:$F0B6 PRG:30B6 18 E8 30 18 E8 40 18 B8 50 18 B8 60 18 E8 70 18
.byte $B8,$80,$18,$B8,$90,$18,$B8,$A0,$A8,$E8,$D0,$18,$28,$D0,$A8,$E8 ; PRG $3319 | CPU $F319 ; CPU:$F0C6 PRG:30C6 B8 80 18 B8 90 18 B8 A0 A8 E8 D0 18 28 D0 A8 E8
.byte $FF,$20,$48,$88,$20,$A8,$E8,$30,$18,$58,$30,$78,$B8,$40,$48,$88 ; PRG $3329 | CPU $F329 ; CPU:$F0D6 PRG:30D6 FF 20 48 88 20 A8 E8 30 18 58 30 78 B8 40 48 88
.byte $40,$A8,$E8,$50,$18,$58,$50,$78,$B8,$60,$48,$88,$60,$A8,$E8,$70 ; PRG $3339 | CPU $F339 ; CPU:$F0E6 PRG:30E6 40 A8 E8 50 18 58 50 78 B8 60 48 88 60 A8 E8 70
.byte $18,$58,$70,$78,$B8,$80,$48,$88,$80,$A8,$E8,$90,$18,$58,$90,$78 ; PRG $3349 | CPU $F349 ; CPU:$F0F6 PRG:30F6 18 58 70 78 B8 80 48 88 80 A8 E8 90 18 58 90 78
.byte $B8,$A0,$48,$E8,$B0,$18,$58,$B0,$78,$88,$B0,$A8,$B8,$FF,$18,$20 ; PRG $3359 | CPU $F359 ; CPU:$F106 PRG:3106 B8 A0 48 E8 B0 18 58 B0 78 88 B0 A8 B8 FF 18 20
.byte $40,$18,$60,$B0,$30,$40,$90,$48,$20,$B0,$60,$20,$50,$78,$20,$B0 ; PRG $3369 | CPU $F369 ; CPU:$F116 PRG:3116 40 18 60 B0 30 40 90 48 20 B0 60 20 50 78 20 B0
.byte $90,$40,$70,$A8,$20,$B0,$C0,$60,$B0,$D8,$20,$60,$D8,$80,$B0,$FF ; PRG $3379 | CPU $F379 ; CPU:$F126 PRG:3126 90 40 70 A8 20 B0 C0 60 B0 D8 20 60 D8 80 B0 FF
.byte $18,$20,$60,$30,$20,$60,$48,$20,$60,$60,$20,$A0,$78,$20,$C0,$90 ; PRG $3389 | CPU $F389 ; CPU:$F136 PRG:3136 18 20 60 30 20 60 48 20 60 60 20 A0 78 20 C0 90
.byte $20,$A0,$A8,$20,$60,$C0,$20,$60,$D8,$20,$60,$FF,$18,$20,$50,$18 ; PRG $3399 | CPU $F399 ; CPU:$F146 PRG:3146 20 A0 A8 20 60 C0 20 60 D8 20 60 FF 18 20 50 18
.byte $90,$B0,$30,$90,$B0,$48,$20,$40,$48,$50,$90,$48,$A0,$D0,$60,$20 ; PRG $33A9 | CPU $F3A9 ; CPU:$F156 PRG:3156 90 B0 30 90 B0 48 20 40 48 50 90 48 A0 D0 60 20
.byte $30,$60,$40,$70,$60,$C0,$D0,$78,$30,$70,$90,$20,$30,$90,$C0,$D0 ; PRG $33B9 | CPU $F3B9 ; CPU:$F166 PRG:3166 30 60 40 70 60 C0 D0 78 30 70 90 20 30 90 C0 D0
.byte $A8,$30,$50,$A8,$60,$D0,$D8,$20,$50,$D8,$90,$B0,$FF,$18,$20,$30 ; PRG $33C9 | CPU $F3C9 ; CPU:$F176 PRG:3176 A8 30 50 A8 60 D0 D8 20 50 D8 90 B0 FF 18 20 30
.byte $18,$40,$50,$18,$60,$90,$30,$30,$40,$30,$50,$60,$30,$70,$80,$48 ; PRG $33D9 | CPU $F3D9 ; CPU:$F186 PRG:3186 18 40 50 18 60 90 30 30 40 30 50 60 30 70 80 48
.byte $20,$30,$48,$40,$50,$48,$60,$70,$48,$80,$90,$60,$30,$40,$60,$50 ; PRG $33E9 | CPU $F3E9 ; CPU:$F196 PRG:3196 20 30 48 40 50 48 60 70 48 80 90 60 30 40 60 50
.byte $60,$60,$70,$80,$78,$20,$30,$78,$40,$70,$78,$80,$90,$90,$30,$40 ; PRG $33F9 | CPU $F3F9 ; CPU:$F1A6 PRG:31A6 60 60 70 80 78 20 30 78 40 70 78 80 90 90 30 40
.byte $90,$50,$60,$90,$70,$80,$A8,$20,$30,$A8,$40,$50,$A8,$60,$70,$A8 ; PRG $3409 | CPU $F409 ; CPU:$F1B6 PRG:31B6 90 50 60 90 70 80 A8 20 30 A8 40 50 A8 60 70 A8
.byte $80,$90,$C0,$30,$40,$C0,$50,$60,$C0,$70,$80,$D8,$20,$30,$D8,$40 ; PRG $3419 | CPU $F419 ; CPU:$F1C6 PRG:31C6 80 90 C0 30 40 C0 50 60 C0 70 80 D8 20 30 D8 40
.byte $50,$D8,$60,$90,$FF,$18,$20,$30,$18,$40,$D0,$48,$60,$70,$78,$30 ; PRG $3429 | CPU $F429 ; CPU:$F1D6 PRG:31D6 50 D8 60 90 FF 18 20 30 18 40 D0 48 60 70 78 30
.byte $40,$A8,$30,$40,$A8,$50,$60,$A8,$70,$90,$A8,$A0,$D0,$C0,$20,$A0 ; PRG $3439 | CPU $F439 ; CPU:$F1E6 PRG:31E6 40 A8 30 40 A8 50 60 A8 70 90 A8 A0 D0 C0 20 A0
.byte $D8,$20,$D0,$FF,$48,$20,$50,$48,$60,$90,$48,$A0,$B0,$60,$20,$60 ; PRG $3449 | CPU $F449 ; CPU:$F1F6 PRG:31F6 D8 20 D0 FF 48 20 50 48 60 90 48 A0 B0 60 20 60
.byte $60,$80,$A0,$78,$40,$70,$78,$80,$90,$78,$A0,$B0,$90,$30,$50,$90 ; PRG $3459 | CPU $F459 ; CPU:$F206 PRG:3206 60 80 A0 78 40 70 78 80 90 78 A0 B0 90 30 50 90
.byte $70,$A0,$A8,$20,$30,$A8,$40,$70,$A8,$80,$B0,$FF,$4C,$93,$F4 ; PRG $3469 | CPU $F469 ; CPU:$F216 PRG:3216 70 A0 A8 20 30 A8 40 70 A8 80 B0 FF 4C 93 F4
; -----------------------------------------------------------------------------
; Global purpose: Update Audio Engine.
; Local behavior: Executes the decoded update audio engine sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
UpdateAudioEngine:
ldx #$A7 ; CPU:$F225 PRG:3225 ??
lda #$00 ; CPU:$F227 PRG:3227 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F47 C.
; Local behavior: Executes the decoded flow f47 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F47C:
sta Ram_052F,x ; CPU:$F229 PRG:3229 ??
dex ; CPU:$F22B PRG:322B ??
bne Flow_F47C ; CPU:$F22D PRG:322D ??
ldx #$13 ; CPU:$F22F PRG:322F ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F484.
; Local behavior: Executes the decoded flow f484 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F484:
sta SQ1_VOL,x ; CPU:$F231 PRG:3231 ??
dex ; CPU:$F233 PRG:3233 ??
bpl Flow_F484 ; CPU:$F235 PRG:3235 ??
sta SND_CHN ; CPU:$F237 PRG:3237 ??
lda #$38 ; CPU:$F239 PRG:3239 ??
sta Ram_05A3 ; CPU:$F23B PRG:323B ??
rts ; CPU:$F23D PRG:323D ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F493.
; Local behavior: Executes the decoded process game state f493 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F493:
jsr ProcessGameState_F4B3 ; CPU:$F23F PRG:323F ??
jsr UpdateStateField_F5B3 ; CPU:$F241 PRG:3241 ??
lda #$00 ; CPU:$F243 PRG:3243 ??
sta PendingSoundCommand ; CPU:$F245 PRG:3245 ??
ldx #$94 ; CPU:$F247 PRG:3247 ??
lda Ram_05A2 ; CPU:$F249 PRG:3249 ??
beq Flow_F4A7 ; CPU:$F24B PRG:324B ??
jsr ProcessGameState_F748 ; CPU:$F24D PRG:324D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F4 A7.
; Local behavior: Executes the decoded flow f4 a7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F4A7:
ldx Ram_05A3 ; CPU:$F24F PRG:324F ??
lda Ram_050E,x ; CPU:$F251 PRG:3251 ??
beq Flow_F4B2 ; CPU:$F253 PRG:3253 ??
jsr ProcessGameState_F6E4 ; CPU:$F255 PRG:3255 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F4 B2.
; Local behavior: Executes the decoded flow f4 b2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F4B2:
rts ; CPU:$F257 PRG:3257 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F4 B3.
; Local behavior: Executes the decoded process game state f4 b3 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F4B3:
ldy Ram_05A3 ; CPU:$F259 PRG:3259 ??
lda Ram_050E,y ; CPU:$F25B PRG:325B ??
bne Flow_F4C1 ; CPU:$F25D PRG:325D ??
sta Ram_0507,y ; CPU:$F25F PRG:325F ??
jmp Flow_F53E ; CPU:$F261 PRG:3261 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F4 C1.
; Local behavior: Executes the decoded flow f4 c1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F4C1:
lda Ram_059B ; CPU:$F263 PRG:3263 ??
ora Ram_0507,y ; CPU:$F265 PRG:3265 ??
sta SND_CHN ; CPU:$F267 PRG:3267 ??
lda Ram_05D5 ; CPU:$F269 PRG:3269 ??
bne Flow_F4D8 ; CPU:$F26B PRG:326B ??
lda Ram_05A2 ; CPU:$F26D PRG:326D ??
bne Flow_F4D5 ; CPU:$F26F PRG:326F ??
rts ; CPU:$F271 PRG:3271 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F4 D5.
; Local behavior: Executes the decoded flow f4 d5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F4D5:
jmp Flow_F55D ; CPU:$F273 PRG:3273 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F4 D8.
; Local behavior: Executes the decoded flow f4 d8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F4D8:
lda Ram_0507,y ; CPU:$F275 PRG:3275 ??
lsr a ; CPU:$F277 PRG:3277 ??
bcc Flow_F4F6 ; CPU:$F279 PRG:3279 ??
ldx Ram_0508,y ; CPU:$F27B PRG:327B ??
stx SQ1_VOL ; CPU:$F27D PRG:327D ??
ldx Ram_052C,y ; CPU:$F27F PRG:327F ??
stx SQ1_SWEEP ; CPU:$F281 PRG:3281 ??
ldx Ram_0500,y ; CPU:$F283 PRG:3283 ??
stx SQ1_LO ; CPU:$F285 PRG:3285 ??
ldx Ram_0501,y ; CPU:$F287 PRG:3287 ??
stx SQ1_HI ; CPU:$F289 PRG:3289 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F4 F6.
; Local behavior: Executes the decoded flow f4 f6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F4F6:
lsr a ; CPU:$F28B PRG:328B ??
bcc Flow_F511 ; CPU:$F28D PRG:328D ??
ldx Ram_0509,y ; CPU:$F28F PRG:328F ??
stx SQ2_VOL ; CPU:$F291 PRG:3291 ??
ldx Ram_052D,y ; CPU:$F293 PRG:3293 ??
stx SQ2_SWEEP ; CPU:$F295 PRG:3295 ??
ldx Ram_0502,y ; CPU:$F297 PRG:3297 ??
stx SQ2_LO ; CPU:$F299 PRG:3299 ??
ldx Ram_0503,y ; CPU:$F29B PRG:329B ??
stx SQ2_HI ; CPU:$F29D PRG:329D ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F511.
; Local behavior: Executes the decoded flow f511 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F511:
lsr a ; CPU:$F29F PRG:329F ??
bcc Flow_F526 ; CPU:$F2A1 PRG:32A1 ??
lda Ram_050A,y ; CPU:$F2A3 PRG:32A3 ??
sta TRI_LINEAR ; CPU:$F2A5 PRG:32A5 ??
lda Ram_0504,y ; CPU:$F2A7 PRG:32A7 ??
sta TRI_LO ; CPU:$F2A9 PRG:32A9 ??
lda Ram_0505,y ; CPU:$F2AB PRG:32AB ??
sta TRI_HI ; CPU:$F2AD PRG:32AD ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F526.
; Local behavior: Executes the decoded flow f526 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F526:
lda Ram_0506,y ; CPU:$F2AF PRG:32AF ??
sta NOISE_VOL ; CPU:$F2B1 PRG:32B1 ??
lda Ram_050B,y ; CPU:$F2B3 PRG:32B3 ??
sta NOISE_LO ; CPU:$F2B5 PRG:32B5 ??
lda Ram_050C,y ; CPU:$F2B7 PRG:32B7 ??
sta NOISE_HI ; CPU:$F2B9 PRG:32B9 ??
lda Ram_05A2 ; CPU:$F2BB PRG:32BB ??
bne Flow_F55D ; CPU:$F2BD PRG:32BD ??
rts ; CPU:$F2BF PRG:32BF ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F53 E.
; Local behavior: Executes the decoded flow f53 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F53E:
ldx #$07 ; CPU:$F2C1 PRG:32C1 ??
lda Ram_05D4 ; CPU:$F2C3 PRG:32C3 ??
beq Flow_F548 ; CPU:$F2C5 PRG:32C5 ??
stx SND_CHN ; CPU:$F2C7 PRG:32C7 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F548.
; Local behavior: Executes the decoded flow f548 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F548:
inx ; CPU:$F2C9 PRG:32C9 ??
stx SQ1_SWEEP ; CPU:$F2CB PRG:32CB ??
stx SQ2_SWEEP ; CPU:$F2CD PRG:32CD ??
lda #$00 ; CPU:$F2CF PRG:32CF ??
sta NOISE_VOL ; CPU:$F2D1 PRG:32D1 ??
lda Ram_05A2 ; CPU:$F2D3 PRG:32D3 ??
bne Flow_F55D ; CPU:$F2D5 PRG:32D5 ??
sta SND_CHN ; CPU:$F2D7 PRG:32D7 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F55 C.
; Local behavior: Executes the decoded flow f55 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F55C:
rts ; CPU:$F2D9 PRG:32D9 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F55 D.
; Local behavior: Executes the decoded flow f55 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F55D:
lda Ram_05D4 ; CPU:$F2DB PRG:32DB ??
beq Flow_F55C ; CPU:$F2DD PRG:32DD ??
lda Ram_0507,y ; CPU:$F2DF PRG:32DF ??
lsr a ; CPU:$F2E1 PRG:32E1 ??
bcs Flow_F57C ; CPU:$F2E3 PRG:32E3 ??
lda Ram_059C ; CPU:$F2E5 PRG:32E5 ??
ora #$B0 ; CPU:$F2E7 PRG:32E7 ??
sta SQ1_VOL ; CPU:$F2E9 PRG:32E9 ??
lda Ram_0594 ; CPU:$F2EB PRG:32EB ??
sta SQ1_LO ; CPU:$F2ED PRG:32ED ??
lda Ram_0595 ; CPU:$F2EF PRG:32EF ??
sta SQ1_HI ; CPU:$F2F1 PRG:32F1 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F57 C.
; Local behavior: Executes the decoded flow f57 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F57C:
lda Ram_0507,y ; CPU:$F2F3 PRG:32F3 ??
and #$02 ; CPU:$F2F5 PRG:32F5 ??
bne Flow_F597 ; CPU:$F2F7 PRG:32F7 ??
lda Ram_059D ; CPU:$F2F9 PRG:32F9 ??
ora #$B0 ; CPU:$F2FB PRG:32FB ??
sta SQ2_VOL ; CPU:$F2FD PRG:32FD ??
lda Ram_0596 ; CPU:$F2FF PRG:32FF ??
sta SQ2_LO ; CPU:$F301 PRG:3301 ??
lda Ram_0597 ; CPU:$F303 PRG:3303 ??
sta SQ2_HI ; CPU:$F305 PRG:3305 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F597.
; Local behavior: Executes the decoded flow f597 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F597:
lda Ram_0507,y ; CPU:$F307 PRG:3307 ??
and #$04 ; CPU:$F309 PRG:3309 ??
bne Flow_F5B2 ; CPU:$F30B PRG:330B ??
lda Ram_059E ; CPU:$F30D PRG:330D ??
ora #$80 ; CPU:$F30F PRG:330F ??
sta TRI_LINEAR ; CPU:$F311 PRG:3311 ??
lda Ram_0598 ; CPU:$F313 PRG:3313 ??
sta TRI_LO ; CPU:$F315 PRG:3315 ??
lda Ram_0599 ; CPU:$F317 PRG:3317 ??
sta TRI_HI ; CPU:$F319 PRG:3319 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F5 B2.
; Local behavior: Executes the decoded flow f5 b2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F5B2:
rts ; CPU:$F31B PRG:331B ??
; -----------------------------------------------------------------------------
; Global purpose: Update State Field F5 B3.
; Local behavior: Executes the decoded update state field f5 b3 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
UpdateStateField_F5B3:
ldx PendingSoundCommand ; CPU:$F31D PRG:331D ??
bne Flow_F5B8 ; CPU:$F31F PRG:331F ??
rts ; CPU:$F321 PRG:3321 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F5 B8.
; Local behavior: Executes the decoded flow f5 b8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F5B8:
bmi Flow_F5BF ; CPU:$F323 PRG:3323 ??
cpx #$12 ; CPU:$F325 PRG:3325 ??
bcc Flow_F5BF ; CPU:$F327 PRG:3327 ??
rts ; CPU:$F329 PRG:3329 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F5 BF.
; Local behavior: Executes the decoded flow f5 bf sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F5BF:
dex ; CPU:$F32B PRG:332B ??
txa ; CPU:$F32D PRG:332D ??
asl a ; CPU:$F32F PRG:332F ??
tay ; CPU:$F331 PRG:3331 ??
lda LookupTable_F9A2,y ; CPU:$F333 PRG:3333 ??
sta Zp_91 ; CPU:$F335 PRG:3335 ??
lda LookupTable_F9A3,y ; CPU:$F337 PRG:3337 ??
sta Zp_92 ; CPU:$F339 PRG:3339 ??
ldy #$00 ; CPU:$F33B PRG:333B ??
lda (Zp_91),y ; CPU:$F33D PRG:333D ??
sta Ram_0530 ; CPU:$F33F PRG:333F ??
bit Ram_0530 ; CPU:$F341 PRG:3341 ??
bpl Flow_F5DC ; CPU:$F343 PRG:3343 ??
jmp Flow_F66B ; CPU:$F345 PRG:3345 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F5 DC.
; Local behavior: Executes the decoded flow f5 dc sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F5DC:
bcc Flow_F5E1 ; CPU:$F347 PRG:3347 ??
jmp Flow_F63C ; CPU:$F349 PRG:3349 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F5 E1.
; Local behavior: Executes the decoded flow f5 e1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F5E1:
ldx Ram_05A3 ; CPU:$F34B PRG:334B ??
lda Ram_050E,x ; CPU:$F34D PRG:334D ??
beq Flow_F611 ; CPU:$F34F PRG:334F ??
lda Ram_0512,x ; CPU:$F351 PRG:3351 ??
and #$20 ; CPU:$F353 PRG:3353 ??
bne Flow_F604 ; CPU:$F355 PRG:3355 ??
lda Ram_050E,x ; CPU:$F357 PRG:3357 ??
jsr TransformValue_F6BA ; CPU:$F359 PRG:3359 ??
bcs Flow_F611 ; CPU:$F35B PRG:335B ??
rts ; CPU:$F35D PRG:335D ??
.byte $AD,$A2,$05,$F0,$13,$20,$BA,$F6,$B0,$0E,$60 ; PRG $35F9 | CPU $F5F9 ; CPU:$F35F PRG:335F AD A2 05 F0 13 20 BA F6 B0 0E 60
; -----------------------------------------------------------------------------
; Global purpose: Flow F604.
; Local behavior: Executes the decoded flow f604 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F604:
cpx #$38 ; CPU:$F36A PRG:336A ??
bne Flow_F60C ; CPU:$F36C PRG:336C ??
ldx #$66 ; CPU:$F36E PRG:336E ??
bne Flow_F60E ; CPU:$F370 PRG:3370 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F60 C.
; Local behavior: Executes the decoded flow f60 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F60C:
ldx #$38 ; CPU:$F372 PRG:3372 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F60 E.
; Local behavior: Executes the decoded flow f60 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F60E:
stx Ram_05A3 ; CPU:$F374 PRG:3374 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F611.
; Local behavior: Executes the decoded flow f611 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F611:
ldy #$00 ; CPU:$F376 PRG:3376 ??
lda (Zp_91),y ; CPU:$F378 PRG:3378 ??
sta Ram_0512,x ; CPU:$F37A PRG:337A ??
lda PendingSoundCommand ; CPU:$F37C PRG:337C ??
sta Ram_050E,x ; CPU:$F37E PRG:337E ??
tya ; CPU:$F380 PRG:3380 ??
sta Ram_0511,x ; CPU:$F382 PRG:3382 ??
sty Ram_05A4 ; CPU:$F384 PRG:3384 ??
sta Ram_052C,x ; CPU:$F386 PRG:3386 ??
sta Ram_052D,x ; CPU:$F388 PRG:3388 ??
lda #$B0 ; CPU:$F38A PRG:338A ??
sta NOISE_VOL ; CPU:$F38C PRG:338C ??
iny ; CPU:$F38E PRG:338E ??
lda (Zp_91),y ; CPU:$F390 PRG:3390 ??
sta Ram_050F,x ; CPU:$F392 PRG:3392 ??
iny ; CPU:$F394 PRG:3394 ??
lda (Zp_91),y ; CPU:$F396 PRG:3396 ??
sta Ram_0510,x ; CPU:$F398 PRG:3398 ??
rts ; CPU:$F39A PRG:339A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F63 C.
; Local behavior: Executes the decoded flow f63 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F63C:
bvs ProcessGameState_F64A ; CPU:$F39C PRG:339C ??
ldy #$94 ; CPU:$F39E PRG:339E ??
jsr ProcessGameState_F840 ; CPU:$F3A0 PRG:33A0 ??
sta Ram_05A2 ; CPU:$F3A2 PRG:33A2 ??
sta Ram_05A4 ; CPU:$F3A4 PRG:33A4 ??
rts ; CPU:$F3A6 PRG:33A6 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F64 A.
; Local behavior: Executes the decoded process game state f64 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F64A:
ldy Ram_05A3 ; CPU:$F3A8 PRG:33A8 ??
cpy #$38 ; CPU:$F3AA PRG:33AA ??
bne Flow_F655 ; CPU:$F3AC PRG:33AC ??
ldx #$66 ; CPU:$F3AE PRG:33AE ??
bne Flow_F657 ; CPU:$F3B0 PRG:33B0 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F655.
; Local behavior: Executes the decoded flow f655 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F655:
ldx #$38 ; CPU:$F3B2 PRG:33B2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F657.
; Local behavior: Executes the decoded flow f657 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F657:
lda Ram_0512,y ; CPU:$F3B4 PRG:33B4 ??
and #$20 ; CPU:$F3B6 PRG:33B6 ??
bne Flow_F664 ; CPU:$F3B8 PRG:33B8 ??
jsr ProcessGameState_F840 ; CPU:$F3BA PRG:33BA ??
sta Ram_050E,y ; CPU:$F3BC PRG:33BC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F664.
; Local behavior: Executes the decoded flow f664 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F664:
sta NOISE_HI ; CPU:$F3BE PRG:33BE ??
stx Ram_05A3 ; CPU:$F3C0 PRG:33C0 ??
rts ; CPU:$F3C2 PRG:33C2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F66 B.
; Local behavior: Executes the decoded flow f66 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F66B:
bcs Flow_F6B1 ; CPU:$F3C4 PRG:33C4 ??
ldy #$02 ; CPU:$F3C6 PRG:33C6 ??
lda PendingSoundCommand ; CPU:$F3C8 PRG:33C8 ??
sta Ram_05A2 ; CPU:$F3CA PRG:33CA ??
lda (Zp_91),y ; CPU:$F3CC PRG:33CC ??
sta Ram_05A5 ; CPU:$F3CE PRG:33CE ??
iny ; CPU:$F3D0 PRG:33D0 ??
lda (Zp_91),y ; CPU:$F3D2 PRG:33D2 ??
sta Ram_05A6 ; CPU:$F3D4 PRG:33D4 ??
iny ; CPU:$F3D6 PRG:33D6 ??
lda (Zp_91),y ; CPU:$F3D8 PRG:33D8 ??
sta Ram_05B2 ; CPU:$F3DA PRG:33DA ??
iny ; CPU:$F3DC PRG:33DC ??
lda (Zp_91),y ; CPU:$F3DE PRG:33DE ??
sta Ram_05B3 ; CPU:$F3E0 PRG:33E0 ??
iny ; CPU:$F3E2 PRG:33E2 ??
lda (Zp_91),y ; CPU:$F3E4 PRG:33E4 ??
sta Ram_05BF ; CPU:$F3E6 PRG:33E6 ??
iny ; CPU:$F3E8 PRG:33E8 ??
lda (Zp_91),y ; CPU:$F3EA PRG:33EA ??
sta Ram_05C0 ; CPU:$F3EC PRG:33EC ??
lda #$00 ; CPU:$F3EE PRG:33EE ??
sta Ram_05A7 ; CPU:$F3F0 PRG:33F0 ??
sta Ram_05B4 ; CPU:$F3F2 PRG:33F2 ??
sta Ram_05C1 ; CPU:$F3F4 PRG:33F4 ??
sta Ram_05A8 ; CPU:$F3F6 PRG:33F6 ??
sta Ram_05B5 ; CPU:$F3F8 PRG:33F8 ??
sta Ram_05C2 ; CPU:$F3FA PRG:33FA ??
sty Ram_059B ; CPU:$F3FC PRG:33FC ??
jmp ProcessGameState_F64A ; CPU:$F3FE PRG:33FE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F6 B1.
; Local behavior: Executes the decoded flow f6 b1 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F6B1:
lda #$00 ; CPU:$F400 PRG:3400 ??
sta Ram_05A2 ; CPU:$F402 PRG:3402 ??
sta Ram_05A4 ; CPU:$F404 PRG:3404 ??
rts ; CPU:$F406 PRG:3406 ??
; -----------------------------------------------------------------------------
; Global purpose: Transform Value F6 BA.
; Local behavior: Executes the decoded transform value f6 ba sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_F6BA:
sec ; CPU:$F408 PRG:3408 ??
sbc #$01 ; CPU:$F40A PRG:340A ??
sta Zp_97 ; CPU:$F40C PRG:340C ??
lsr a ; CPU:$F40E PRG:340E ??
lsr a ; CPU:$F410 PRG:3410 ??
lsr a ; CPU:$F412 PRG:3412 ??
sta Zp_98 ; CPU:$F414 PRG:3414 ??
lda Zp_97 ; CPU:$F416 PRG:3416 ??
and #$07 ; CPU:$F418 PRG:3418 ??
tay ; CPU:$F41A PRG:341A ??
lda Zp_98 ; CPU:$F41C PRG:341C ??
clc ; CPU:$F41E PRG:341E ??
adc #$03 ; CPU:$F420 PRG:3420 ??
sta Zp_98 ; CPU:$F422 PRG:3422 ??
lda LookupTable_F6DC,y ; CPU:$F424 PRG:3424 ??
ldy Zp_98 ; CPU:$F426 PRG:3426 ??
and (Zp_91),y ; CPU:$F428 PRG:3428 ??
clc ; CPU:$F42A PRG:342A ??
beq Flow_F6DB ; CPU:$F42C PRG:342C ??
sec ; CPU:$F42E PRG:342E ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F6 DB.
; Local behavior: Executes the decoded flow f6 db sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F6DB:
rts ; CPU:$F430 PRG:3430 ??
LookupTable_F6DC:
.byte $80,$40,$20,$10,$08,$04,$02,$01 ; PRG $36DC | CPU $F6DC ; CPU:$F432 PRG:3432 80 40 20 10 08 04 02 01
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F6 E4.
; Local behavior: Executes the decoded process game state f6 e4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F6E4:
lda #$00 ; CPU:$F43A PRG:343A ??
sta Ram_05D5 ; CPU:$F43C PRG:343C ??
lda Ram_0513,x ; CPU:$F43E PRG:343E ??
beq Flow_F6F2 ; CPU:$F440 PRG:3440 ??
dec Ram_0513,x ; CPU:$F442 PRG:3442 ??
rts ; CPU:$F444 PRG:3444 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F6 F2.
; Local behavior: Executes the decoded flow f6 f2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F6F2:
lda Ram_050F,x ; CPU:$F446 PRG:3446 ??
sta Zp_91 ; CPU:$F448 PRG:3448 ??
lda Ram_0510,x ; CPU:$F44A PRG:344A ??
sta Zp_92 ; CPU:$F44C PRG:344C ??
txa ; CPU:$F44E PRG:344E ??
clc ; CPU:$F450 PRG:3450 ??
adc #$14 ; CPU:$F452 PRG:3452 ??
adc Ram_0511,x ; CPU:$F454 PRG:3454 ??
sta Ram_0537 ; CPU:$F456 PRG:3456 ??
stx CurrentObjectIndex ; CPU:$F458 PRG:3458 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F709.
; Local behavior: Executes the decoded flow f709 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F709:
ldy #$00 ; CPU:$F45A PRG:345A ??
lda (Zp_91),y ; CPU:$F45C PRG:345C ??
bpl Flow_F726 ; CPU:$F45E PRG:345E ??
sta Ram_05D5 ; CPU:$F460 PRG:3460 ??
ldx CurrentObjectIndex ; CPU:$F462 PRG:3462 ??
jsr DispatchObjectHandler ; CPU:$F464 PRG:3464 ??
tya ; CPU:$F466 PRG:3466 ??
clc ; CPU:$F468 PRG:3468 ??
adc Zp_91 ; CPU:$F46A PRG:346A ??
sta Zp_91 ; CPU:$F46C PRG:346C ??
lda Zp_92 ; CPU:$F46E PRG:346E ??
adc #$00 ; CPU:$F470 PRG:3470 ??
sta Zp_92 ; CPU:$F472 PRG:3472 ??
bcc Flow_F709 ; CPU:$F474 PRG:3474 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F726.
; Local behavior: Executes the decoded flow f726 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F726:
ldx CurrentObjectIndex ; CPU:$F476 PRG:3476 ??
sta Ram_0513,x ; CPU:$F478 PRG:3478 A2 A7
lda Ram_0537 ; CPU:$F47A PRG:347A A9 00
sec ; CPU:$F47C PRG:347C 9D 2F 05
sbc #$14 ; CPU:$F47F PRG:347F CA
sbc CurrentObjectIndex ; CPU:$F480 PRG:3480 D0 FA
sta Ram_0511,x ; CPU:$F482 PRG:3482 A2 13
lda #$01 ; CPU:$F484 PRG:3484 9D 00 40
; -----------------------------------------------------------------------------
; Global purpose: Flow F73 A.
; Local behavior: Executes the decoded flow f73 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F73A:
clc ; CPU:$F487 PRG:3487 CA
adc Zp_91 ; CPU:$F488 PRG:3488 10 FA
sta Ram_050F,x ; CPU:$F48A PRG:348A 8D 15 40
lda Zp_92 ; CPU:$F48D PRG:348D A9 38
adc #$00 ; CPU:$F48F PRG:348F 8D A3 05
sta Ram_0510,x ; CPU:$F492 PRG:3492 60
rts ; CPU:$F493 PRG:3493 20 B3 F4
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F748.
; Local behavior: Executes the decoded process game state f748 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F748:
ldy #$00 ; CPU:$F496 PRG:3496 20 B3 F5
sty Ram_05D4 ; CPU:$F499 PRG:3499 A9 00
ldx #$A5 ; CPU:$F49B PRG:349B 85 90
jsr TransformValue_F75D ; CPU:$F49D PRG:349D A2 94
ldx #$B2 ; CPU:$F49F PRG:349F AD A2 05
ldy #$01 ; CPU:$F4A2 PRG:34A2 F0 03
jsr TransformValue_F75D ; CPU:$F4A4 PRG:34A4 20 48 F7
ldx #$BF ; CPU:$F4A7 PRG:34A7 AE A3 05
ldy #$02 ; CPU:$F4AA PRG:34AA BD 0E 05
; -----------------------------------------------------------------------------
; Global purpose: Transform Value F75 D.
; Local behavior: Executes the decoded transform value f75 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
TransformValue_F75D:
sty Ram_0535 ; CPU:$F4AD PRG:34AD F0 03
lda Ram_0500,x ; CPU:$F4AF PRG:34AF 20 E4 F6
sta Zp_91 ; CPU:$F4B2 PRG:34B2 60
lda Ram_0501,x ; CPU:$F4B3 PRG:34B3 AC A3 05
sta Zp_92 ; CPU:$F4B6 PRG:34B6 B9 0E 05
txa ; CPU:$F4B9 PRG:34B9 D0 06
clc ; CPU:$F4BB PRG:34BB 99 07 05
adc #$09 ; CPU:$F4BE PRG:34BE 4C 3E F5
adc Ram_0502,x ; CPU:$F4C1 PRG:34C1 AD 9B 05
sta Ram_0537 ; CPU:$F4C4 PRG:34C4 19 07 05
stx CurrentObjectIndex ; CPU:$F4C7 PRG:34C7 8D 15 40
lda Ram_0503,x ; CPU:$F4CA PRG:34CA AD D5 05
beq Flow_F79A ; CPU:$F4CD PRG:34CD D0 09
dec Ram_0503,x ; CPU:$F4CF PRG:34CF AD A2 05
lda Ram_059C,y ; CPU:$F4D2 PRG:34D2 D0 01
beq Flow_F796 ; CPU:$F4D4 PRG:34D4 60
lda Ram_0503,x ; CPU:$F4D5 PRG:34D5 4C 5D F5
bne Flow_F793 ; CPU:$F4D8 PRG:34D8 B9 07 05
lda Ram_0504,x ; CPU:$F4DB PRG:34DB 4A
sec ; CPU:$F4DC PRG:34DC 90 18
sbc #$03 ; CPU:$F4DE PRG:34DE BE 08 05
lsr a ; CPU:$F4E1 PRG:34E1 8E 00 40
jmp Flow_F796 ; CPU:$F4E4 PRG:34E4 BE 2C 05
; -----------------------------------------------------------------------------
; Global purpose: Flow F793.
; Local behavior: Executes the decoded flow f793 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F793:
lda Ram_0504,x ; CPU:$F4E7 PRG:34E7 8E 01 40
; -----------------------------------------------------------------------------
; Global purpose: Flow F796.
; Local behavior: Executes the decoded flow f796 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F796:
sta Ram_059C,y ; CPU:$F4EA PRG:34EA BE 00 05
rts ; CPU:$F4ED PRG:34ED 8E 02 40
; -----------------------------------------------------------------------------
; Global purpose: Flow F79 A.
; Local behavior: Executes the decoded flow f79 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F79A:
ldy #$00 ; CPU:$F4F0 PRG:34F0 BE 01 05
lda (Zp_91),y ; CPU:$F4F3 PRG:34F3 8E 03 40
bpl Flow_F7B5 ; CPU:$F4F6 PRG:34F6 4A
ldx CurrentObjectIndex ; CPU:$F4F7 PRG:34F7 90 18
jsr DispatchObjectHandler ; CPU:$F4F9 PRG:34F9 BE 09 05
tya ; CPU:$F4FC PRG:34FC 8E 04 40
clc ; CPU:$F4FF PRG:34FF BE 2D 05
adc Zp_91 ; CPU:$F502 PRG:3502 8E 05 40
sta Zp_91 ; CPU:$F505 PRG:3505 BE 02 05
lda Zp_92 ; CPU:$F508 PRG:3508 8E 06 40
adc #$00 ; CPU:$F50B PRG:350B BE 03 05
sta Zp_92 ; CPU:$F50E PRG:350E 8E 07 40
jmp Flow_F79A ; CPU:$F511 PRG:3511 4A
; -----------------------------------------------------------------------------
; Global purpose: Flow F7 B5.
; Local behavior: Executes the decoded flow f7 b5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F7B5:
ldx CurrentObjectIndex ; CPU:$F512 PRG:3512 90 12
sta Ram_0532 ; CPU:$F514 PRG:3514 B9 0A 05
lsr a ; CPU:$F517 PRG:3517 8D 08 40
lsr a ; CPU:$F51A PRG:351A B9 04 05
lsr a ; CPU:$F51D PRG:351D 8D 0A 40
lsr a ; CPU:$F520 PRG:3520 B9 05 05
tay ; CPU:$F523 PRG:3523 8D 0B 40
lda Ram_05CC,y ; CPU:$F526 PRG:3526 B9 06 05
sec ; CPU:$F529 PRG:3529 8D 0C 40
sbc #$01 ; CPU:$F52C PRG:352C B9 0B 05
sta Ram_0503,x ; CPU:$F52F PRG:352F 8D 0E 40
lda #$00 ; CPU:$F532 PRG:3532 B9 0C 05
sta Ram_0533 ; CPU:$F535 PRG:3535 8D 0F 40
ldy Ram_0535 ; CPU:$F538 PRG:3538 AD A2 05
lda Ram_0504,x ; CPU:$F53B PRG:353B D0 20
sta Ram_059C,y ; CPU:$F53D PRG:353D 60
lda #$FF ; CPU:$F53E PRG:353E A2 07
sta Ram_05D4 ; CPU:$F540 PRG:3540 AD D4 05
lda Ram_0532 ; CPU:$F543 PRG:3543 F0 03
and #$0F ; CPU:$F545 PRG:3545 8E 15 40
cmp #$0F ; CPU:$F548 PRG:3548 E8
beq Flow_F839 ; CPU:$F549 PRG:3549 8E 01 40
adc Ram_0508,x ; CPU:$F54C PRG:354C 8E 05 40
sec ; CPU:$F54F PRG:354F A9 00
; -----------------------------------------------------------------------------
; Global purpose: Flow F7 E9.
; Local behavior: Executes the decoded flow f7 e9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F7E9:
sbc #$0C ; CPU:$F551 PRG:3551 8D 0C 40
inc Ram_0533 ; CPU:$F554 PRG:3554 AD A2 05
bcs Flow_F7E9 ; CPU:$F557 PRG:3557 D0 04
adc #$0C ; CPU:$F559 PRG:3559 8D 15 40
asl a ; CPU:$F55C PRG:355C 60
tay ; CPU:$F55D PRG:355D AD D4 05
lda LookupTable_F98B,y ; CPU:$F560 PRG:3560 F0 FA
sta Ram_0534 ; CPU:$F562 PRG:3562 B9 07 05
lda LookupTable_F98A,y ; CPU:$F565 PRG:3565 4A
; -----------------------------------------------------------------------------
; Global purpose: Flow F7 FD.
; Local behavior: Executes the decoded flow f7 fd sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F7FD:
dec Ram_0533 ; CPU:$F566 PRG:3566 B0 14
beq Flow_F809 ; CPU:$F568 PRG:3568 AD 9C 05
lsr Ram_0534 ; CPU:$F56B PRG:356B 09 B0
ror a ; CPU:$F56D PRG:356D 8D 00 40
jmp Flow_F7FD ; CPU:$F570 PRG:3570 AD 94 05
; -----------------------------------------------------------------------------
; Global purpose: Flow F809.
; Local behavior: Executes the decoded flow f809 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F809:
sta Ram_0533 ; CPU:$F573 PRG:3573 8D 02 40
lda Ram_0535 ; CPU:$F576 PRG:3576 AD 95 05
asl a ; CPU:$F579 PRG:3579 8D 03 40
tay ; CPU:$F57C PRG:357C B9 07 05
lda Ram_0533 ; CPU:$F57F PRG:357F 29 02
sta Ram_0594,y ; CPU:$F581 PRG:3581 D0 14
lda Ram_0534 ; CPU:$F583 PRG:3583 AD 9D 05
sta Ram_0595,y ; CPU:$F586 PRG:3586 09 B0
; -----------------------------------------------------------------------------
; Global purpose: Flow F81 D.
; Local behavior: Executes the decoded flow f81 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F81D:
lda Ram_0537 ; CPU:$F588 PRG:3588 8D 04 40
sec ; CPU:$F58B PRG:358B AD 96 05
sbc #$09 ; CPU:$F58E PRG:358E 8D 06 40
sbc CurrentObjectIndex ; CPU:$F591 PRG:3591 AD 97 05
sta Ram_0502,x ; CPU:$F594 PRG:3594 8D 07 40
lda Zp_91 ; CPU:$F597 PRG:3597 B9 07 05
clc ; CPU:$F59A PRG:359A 29 04
adc #$01 ; CPU:$F59C PRG:359C D0 14
sta Ram_0500,x ; CPU:$F59E PRG:359E AD 9E 05
lda Zp_92 ; CPU:$F5A1 PRG:35A1 09 80
adc #$00 ; CPU:$F5A3 PRG:35A3 8D 08 40
sta Ram_0501,x ; CPU:$F5A6 PRG:35A6 AD 98 05
rts ; CPU:$F5A9 PRG:35A9 8D 0A 40
; -----------------------------------------------------------------------------
; Global purpose: Flow F839.
; Local behavior: Executes the decoded flow f839 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F839:
lda #$00 ; CPU:$F5AC PRG:35AC AD 99 05
sta Ram_059C,y ; CPU:$F5AF PRG:35AF 8D 0B 40
beq Flow_F81D ; CPU:$F5B2 PRG:35B2 60
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F840.
; Local behavior: Executes the decoded process game state f840 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F840:
sty DispatchPointerLo ; CPU:$F5B3 PRG:35B3 A6 90
lda #$05 ; CPU:$F5B5 PRG:35B5 D0 01
sta DispatchPointerHi ; CPU:$F5B7 PRG:35B7 60
ldy #$0D ; CPU:$F5B8 PRG:35B8 30 05
lda #$00 ; CPU:$F5BA PRG:35BA E0 12
; -----------------------------------------------------------------------------
; Global purpose: Flow F84 A.
; Local behavior: Executes the decoded flow f84 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F84A:
sta (DispatchPointerLo),y ; CPU:$F5BC PRG:35BC 90 01
dey ; CPU:$F5BE PRG:35BE 60
bpl Flow_F84A ; CPU:$F5BF PRG:35BF CA
ldy DispatchPointerLo ; CPU:$F5C0 PRG:35C0 8A
rts ; CPU:$F5C1 PRG:35C1 0A
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F852.
; Local behavior: Executes the decoded process game state f852 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F852:
iny ; CPU:$F5C2 PRG:35C2 A8
lda (Zp_91),y ; CPU:$F5C3 PRG:35C3 B9 A2 F9
sta Ram_0530 ; CPU:$F5C6 PRG:35C6 85 91
iny ; CPU:$F5C8 PRG:35C8 B9 A3 F9
lda (Zp_91),y ; CPU:$F5CB PRG:35CB 85 92
sta Zp_92 ; CPU:$F5CD PRG:35CD A0 00
lda Ram_0530 ; CPU:$F5CF PRG:35CF B1 91
sta Zp_91 ; CPU:$F5D1 PRG:35D1 8D 30 05
ldy #$00 ; CPU:$F5D4 PRG:35D4 2C 30 05
rts ; CPU:$F5D7 PRG:35D7 10 03
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F865.
; Local behavior: Executes the decoded process game state f865 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F865:
ldx Ram_0537 ; CPU:$F5D9 PRG:35D9 4C 6B F6
iny ; CPU:$F5DC PRG:35DC 90 03
lda (Zp_91),y ; CPU:$F5DE PRG:35DE 4C 3C F6
sta Ram_0500,x ; CPU:$F5E1 PRG:35E1 AE A3 05
lda Zp_91 ; CPU:$F5E4 PRG:35E4 BD 0E 05
inx ; CPU:$F5E7 PRG:35E7 F0 28
sta Ram_0500,x ; CPU:$F5E9 PRG:35E9 BD 12 05
inx ; CPU:$F5EC PRG:35EC 29 20
lda Zp_92 ; CPU:$F5EE PRG:35EE D0 14
sta Ram_0500,x ; CPU:$F5F0 PRG:35F0 BD 0E 05
inx ; CPU:$F5F3 PRG:35F3 20 BA F6
iny ; CPU:$F5F6 PRG:35F6 B0 19
stx Ram_0537 ; CPU:$F5F8 PRG:35F8 60
rts ; CPU:$F5F9 PRG:35F9 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F880.
; Local behavior: Executes the decoded process game state f880 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F880:
ldx Ram_0537 ; CPU:$F5FB PRG:35FB ??
dec Ram_04FD,x ; CPU:$F5FD PRG:35FD ??
beq Flow_F895 ; CPU:$F5FF PRG:35FF ??
lda Ram_04FE,x ; CPU:$F601 PRG:3601 ??
sta Zp_91 ; CPU:$F603 PRG:3603 ??
lda Ram_04FF,x ; CPU:$F605 PRG:3605 ??
sta Zp_92 ; CPU:$F607 PRG:3607 ??
ldy #$02 ; CPU:$F609 PRG:3609 ??
rts ; CPU:$F60B PRG:360B ??
; -----------------------------------------------------------------------------
; Global purpose: Flow F895.
; Local behavior: Executes the decoded flow f895 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F895:
dex ; CPU:$F60D PRG:360D ??
dex ; CPU:$F60F PRG:360F ??
dex ; CPU:$F611 PRG:3611 A0 00
stx Ram_0537 ; CPU:$F613 PRG:3613 B1 91
iny ; CPU:$F615 PRG:3615 9D 12 05
rts ; CPU:$F618 PRG:3618 A5 90
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F89 D.
; Local behavior: Executes the decoded process game state f89 d sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F89D:
stx Zp_99 ; CPU:$F61A PRG:361A 9D 0E 05
jsr ProcessGameState_F64A ; CPU:$F61D PRG:361D 98
ldx Zp_99 ; CPU:$F61E PRG:361E 9D 11 05
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F8 A4.
; Local behavior: Executes the decoded process game state f8 a4 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F8A4:
pla ; CPU:$F621 PRG:3621 8C A4 05
pla ; CPU:$F624 PRG:3624 9D 2C 05
lda #$00 ; CPU:$F627 PRG:3627 9D 2D 05
jmp Flow_F73A ; CPU:$F62A PRG:362A A9 B0
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F8 AB.
; Local behavior: Executes the decoded process game state f8 ab sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F8AB:
iny ; CPU:$F62C PRG:362C 8D 0C 40
; -----------------------------------------------------------------------------
; Global purpose: Flow F8 AC.
; Local behavior: Executes the decoded flow f8 ac sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F8AC:
lda (Zp_91),y ; CPU:$F62F PRG:362F C8
sta Ram_0500,x ; CPU:$F630 PRG:3630 B1 91
inx ; CPU:$F632 PRG:3632 9D 0F 05
iny ; CPU:$F635 PRG:3635 C8
cpy #$0F ; CPU:$F636 PRG:3636 B1 91
bne Flow_F8AC ; CPU:$F638 PRG:3638 9D 10 05
rts ; CPU:$F63B PRG:363B 60
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F8 B8.
; Local behavior: Executes the decoded process game state f8 b8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F8B8:
jsr ProcessGameState_F982 ; CPU:$F63C PRG:363C 70 0C
lda (Zp_91),y ; CPU:$F63E PRG:363E A0 94
sta Ram_0500,x ; CPU:$F640 PRG:3640 20 40 F8
iny ; CPU:$F643 PRG:3643 8D A2 05
rts ; CPU:$F646 PRG:3646 8D A4 05
; -----------------------------------------------------------------------------
; Global purpose: Update State Field F8 C2.
; Local behavior: Executes the decoded update state field f8 c2 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
UpdateStateField_F8C2:
jsr ProcessGameState_F982 ; CPU:$F649 PRG:3649 60
dec Ram_0500,x ; CPU:$F64A PRG:364A AC A3 05
rts ; CPU:$F64D PRG:364D C0 38
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F8 C9.
; Local behavior: Executes the decoded process game state f8 c9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F8C9:
jsr ProcessGameState_F982 ; CPU:$F64F PRG:364F D0 04
lda (Zp_91),y ; CPU:$F651 PRG:3651 A2 66
clc ; CPU:$F653 PRG:3653 D0 02
adc Ram_0500,x ; CPU:$F655 PRG:3655 A2 38
sta Ram_0500,x ; CPU:$F657 PRG:3657 B9 12 05
lda Ram_0501,x ; CPU:$F65A PRG:365A 29 20
adc #$00 ; CPU:$F65C PRG:365C D0 06
sta Ram_0501,x ; CPU:$F65E PRG:365E 20 40 F8
iny ; CPU:$F661 PRG:3661 99 0E 05
rts ; CPU:$F664 PRG:3664 8D 0F 40
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F8 DF.
; Local behavior: Executes the decoded process game state f8 df sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F8DF:
jsr ProcessGameState_F982 ; CPU:$F667 PRG:3667 8E A3 05
lda Ram_0500,x ; CPU:$F66A PRG:366A 60
sec ; CPU:$F66B PRG:366B B0 44
sbc (Zp_91),y ; CPU:$F66D PRG:366D A0 02
sta Ram_0500,x ; CPU:$F66F PRG:366F A5 90
lda Ram_0501,x ; CPU:$F671 PRG:3671 8D A2 05
sbc #$00 ; CPU:$F674 PRG:3674 B1 91
sta Ram_0501,x ; CPU:$F676 PRG:3676 8D A5 05
iny ; CPU:$F679 PRG:3679 C8
rts ; CPU:$F67A PRG:367A B1 91
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F8 F5.
; Local behavior: Executes the decoded process game state f8 f5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F8F5:
iny ; CPU:$F67C PRG:367C 8D A6 05
ldx #$00 ; CPU:$F67F PRG:367F C8
; -----------------------------------------------------------------------------
; Global purpose: Flow F8 F8.
; Local behavior: Executes the decoded flow f8 f8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_F8F8:
lda (Zp_91),y ; CPU:$F680 PRG:3680 B1 91
sta Ram_05CC,x ; CPU:$F682 PRG:3682 8D B2 05
iny ; CPU:$F685 PRG:3685 C8
inx ; CPU:$F686 PRG:3686 B1 91
cpx #$08 ; CPU:$F688 PRG:3688 8D B3 05
bne Flow_F8F8 ; CPU:$F68B PRG:368B C8
rts ; CPU:$F68C PRG:368C B1 91
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F904.
; Local behavior: Executes the decoded process game state f904 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F904:
iny ; CPU:$F68E PRG:368E 8D BF 05
lda (Zp_91),y ; CPU:$F691 PRG:3691 C8
sta Ram_0508,x ; CPU:$F692 PRG:3692 B1 91
iny ; CPU:$F694 PRG:3694 8D C0 05
rts ; CPU:$F697 PRG:3697 A9 00
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F90 C.
; Local behavior: Executes the decoded process game state f90 c sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F90C:
iny ; CPU:$F699 PRG:3699 8D A7 05
lda (Zp_91),y ; CPU:$F69C PRG:369C 8D B4 05
sta Ram_0504,x ; CPU:$F69F PRG:369F 8D C1 05
iny ; CPU:$F6A2 PRG:36A2 8D A8 05
rts ; CPU:$F6A5 PRG:36A5 8D B5 05
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F914.
; Local behavior: Executes the decoded process game state f914 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F914:
iny ; CPU:$F6A8 PRG:36A8 8D C2 05
lda Ram_0508,x ; CPU:$F6AB PRG:36AB 8C 9B 05
clc ; CPU:$F6AE PRG:36AE 4C 4A F6
adc #$0C ; CPU:$F6B1 PRG:36B1 A9 00
sta Ram_0508,x ; CPU:$F6B3 PRG:36B3 8D A2 05
rts ; CPU:$F6B6 PRG:36B6 8D A4 05
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F91 F.
; Local behavior: Executes the decoded process game state f91 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F91F:
iny ; CPU:$F6B9 PRG:36B9 60
lda Ram_0508,x ; CPU:$F6BA PRG:36BA 38
sec ; CPU:$F6BB PRG:36BB E9 01
sbc #$0C ; CPU:$F6BD PRG:36BD 85 97
sta Ram_0508,x ; CPU:$F6BF PRG:36BF 4A
rts ; CPU:$F6C0 PRG:36C0 4A
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F92 A.
; Local behavior: Executes the decoded process game state f92 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F92A:
ldy #$94 ; CPU:$F6C1 PRG:36C1 4A
jsr ProcessGameState_F840 ; CPU:$F6C2 PRG:36C2 85 98
sta Ram_05A2 ; CPU:$F6C4 PRG:36C4 A5 97
sta Ram_05A4 ; CPU:$F6C6 PRG:36C6 29 07
pla ; CPU:$F6C8 PRG:36C8 A8
pla ; CPU:$F6C9 PRG:36C9 A5 98
rts ; CPU:$F6CB PRG:36CB 18
; Pointers selected by object handler index.
ObjectHandlerDispatchTable:
.byte $52 ; PRG $3938 | CPU $F938 ; CPU:$F6CC PRG:36CC 52
LookupTable_F939:
.byte $F8,$52,$F8,$65,$F8,$65,$F8,$80,$F8,$9D,$F8,$9D,$F8,$A4,$F8,$AB ; PRG $3939 | CPU $F939 ; CPU:$F6CD PRG:36CD F8 52 F8 65 F8 65 F8 80 F8 9D F8 9D F8 A4 F8 AB
.byte $F8,$F5,$F8,$F5,$F8,$C9,$F8,$C9,$F8,$B8,$F8,$C2,$F8,$DF,$F8,$C9 ; PRG $3949 | CPU $F949 ; CPU:$F6DD PRG:36DD F8 F5 F8 F5 F8 C9 F8 C9 F8 B8 F8 C2 F8 DF F8 C9
.byte $F8,$C2,$F8,$C2,$F8,$F5,$F8,$04,$F9,$0C,$F9,$14,$F9,$14,$F9,$14 ; PRG $3959 | CPU $F959 ; CPU:$F6ED PRG:36ED F8 C2 F8 C2 F8 F5 F8 04 F9 0C F9 14 F9 14 F9 14
.byte $F9,$1F,$F9,$2A,$F9 ; PRG $3969 | CPU $F969 ; CPU:$F6FD PRG:36FD F9 1F F9 2A F9
; -----------------------------------------------------------------------------
; Global purpose: Dispatch Object Handler.
; Local behavior: Executes the decoded dispatch object handler sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
DispatchObjectHandler:
asl a ; CPU:$F702 PRG:3702 ??
tay ; CPU:$F704 PRG:3704 ??
lda ObjectHandlerDispatchTable,y ; CPU:$F706 PRG:3706 8E 36 05
sta DispatchPointerLo ; CPU:$F709 PRG:3709 A0 00
lda LookupTable_F939,y ; CPU:$F70B PRG:370B B1 91
sta DispatchPointerHi ; CPU:$F70D PRG:370D 10 17
ldy #$00 ; CPU:$F70F PRG:370F 8D D5 05
ldx CurrentObjectIndex ; CPU:$F712 PRG:3712 AE 36 05
jmp (DispatchPointerLo) ; CPU:$F715 PRG:3715 20 6E F9
; -----------------------------------------------------------------------------
; Global purpose: Process Game State F982.
; Local behavior: Executes the decoded process game state f982 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_F982:
iny ; CPU:$F718 PRG:3718 98
clc ; CPU:$F719 PRG:3719 18
txa ; CPU:$F71A PRG:371A 65 91
adc (Zp_91),y ; CPU:$F71C PRG:371C 85 91
tax ; CPU:$F71E PRG:371E A5 92
iny ; CPU:$F720 PRG:3720 69 00
rts ; CPU:$F722 PRG:3722 85 92
LookupTable_F98A:
.byte $5D ; PRG $398A | CPU $F98A ; CPU:$F724 PRG:3724 5D
LookupTable_F98B:
.byte $03,$2C,$03,$FF,$02,$D3,$02,$AB,$02,$8F,$02,$62,$02,$3F,$02,$1E ; PRG $398B | CPU $F98B ; CPU:$F725 PRG:3725 03 2C 03 FF 02 D3 02 AB 02 8F 02 62 02 3F 02 1E
.byte $02,$FF,$01,$E3,$01,$C8,$01 ; PRG $399B | CPU $F99B ; CPU:$F735 PRG:3735 02 FF 01 E3 01 C8 01
LookupTable_F9A2:
.byte $F0 ; PRG $39A2 | CPU $F9A2 ; CPU:$F73C PRG:373C F0
LookupTable_F9A3:
.byte $F9,$EA,$F9,$C4,$F9,$D4,$F9,$CC,$F9,$F0,$F9,$F0,$F9,$F0,$F9,$F6 ; PRG $39A3 | CPU $F9A3 ; CPU:$F73D PRG:373D F9 EA F9 C4 F9 D4 F9 CC F9 F0 F9 F0 F9 F0 F9 F6
.byte $F9,$FC,$F9,$E4,$F9,$02,$FA,$08,$FA,$0E,$FA,$14,$FA,$DC,$F9,$1A ; PRG $39B3 | CPU $F9B3 ; CPU:$F74D PRG:374D F9 FC F9 E4 F9 02 FA 08 FA 0E FA 14 FA DC F9 1A
.byte $FA,$80,$00,$20,$FA,$4C,$FA,$6D,$FA,$80,$00,$97,$FA,$C8,$FA,$D8 ; PRG $39C3 | CPU $F9C3 ; CPU:$F75D PRG:375D FA 80 00 20 FA 4C FA 6D FA 80 00 97 FA C8 FA D8
.byte $FA,$80,$00,$EC,$FA,$3B,$FB,$46,$FB,$80,$00,$75,$FB,$8D,$FB,$9C ; PRG $39D3 | CPU $F9D3 ; CPU:$F76D PRG:376D FA 80 00 EC FA 3B FB 46 FB 80 00 75 FB 8D FB 9C
.byte $FB,$40,$C8,$FB,$F7,$FF,$FF,$40,$A3,$FB,$F7,$FF,$FF,$40,$F3,$FB ; PRG $39E3 | CPU $F9E3 ; CPU:$F77D PRG:377D FB 40 C8 FB F7 FF FF 40 A3 FB F7 FF FF 40 F3 FB
.byte $87,$C0,$00,$40,$1A,$FC,$87,$CE,$00,$40,$34,$FC,$87,$C4,$00,$40 ; PRG $39F3 | CPU $F9F3 ; CPU:$F78D PRG:378D 87 C0 00 40 1A FC 87 CE 00 40 34 FC 87 C4 00 40
.byte $4C,$FC,$87,$DE,$00,$40,$66,$FC,$87,$DC,$00,$40,$94,$FC,$87,$DE ; PRG $3A03 | CPU $FA03 ; CPU:$F79D PRG:379D 4C FC 87 DE 00 40 66 FC 87 DC 00 40 94 FC 87 DE
.byte $00,$40,$7A,$FC,$87,$DC,$00,$40,$D5,$FC,$F7,$FF,$FF,$93,$06,$0C ; PRG $3A13 | CPU $FA13 ; CPU:$F7AD PRG:37AD 00 40 7A FC 87 DC 00 40 D5 FC F7 FF FF 93 06 0C
.byte $12,$18,$24,$30,$60,$03,$94,$12,$95,$0F,$14,$07,$7F,$17,$7F,$05 ; PRG $3A23 | CPU $FA23 ; CPU:$F7BD PRG:37BD 12 18 24 30 60 03 94 12 95 0F 14 07 7F 17 7F 05
.byte $04,$15,$09,$7F,$19,$7F,$07,$05,$17,$0B,$7F,$1B,$7F,$09,$0B,$98 ; PRG $3A33 | CPU $FA33 ; CPU:$F7CD PRG:37CD 04 15 09 7F 19 7F 07 05 17 0B 7F 1B 7F 09 0B 98
.byte $00,$7F,$99,$77,$09,$7F,$77,$3F,$9A,$94,$12,$95,$0C,$10,$04,$7F ; PRG $3A43 | CPU $FA43 ; CPU:$F7DD PRG:37DD 00 7F 99 77 09 7F 77 3F 9A 94 12 95 0C 10 04 7F
.byte $14,$7F,$02,$00,$12,$05,$7F,$15,$7F,$04,$02,$14,$07,$7F,$17,$7F ; PRG $3A53 | CPU $FA53 ; CPU:$F7ED PRG:37ED 14 7F 02 00 12 05 7F 15 7F 04 02 14 07 7F 17 7F
.byte $05,$07,$07,$7F,$74,$05,$7F,$74,$3F,$9A,$94,$06,$95,$0C,$00,$0F ; PRG $3A63 | CPU $FA63 ; CPU:$F7FD PRG:37FD 05 07 07 7F 74 05 7F 74 3F 9A 94 06 95 0C 00 0F
.byte $04,$0F,$07,$0F,$98,$00,$0F,$99,$02,$0F,$05,$0F,$09,$0F,$98,$02 ; PRG $3A73 | CPU $FA73 ; CPU:$F80D PRG:380D 04 0F 07 0F 98 00 0F 99 02 0F 05 0F 09 0F 98 02
.byte $0F,$99,$0B,$0F,$02,$0F,$05,$0F,$07,$0F,$98,$00,$0F,$99,$09,$0F ; PRG $3A83 | CPU $FA83 ; CPU:$F81D PRG:381D 0F 99 0B 0F 02 0F 05 0F 07 0F 98 00 0F 99 09 0F
.byte $07,$0F,$1F,$9A,$93,$06,$0C,$12,$18,$24,$30,$60,$03,$94,$12,$95 ; PRG $3A93 | CPU $FA93 ; CPU:$F82D PRG:382D 07 0F 1F 9A 93 06 0C 12 18 24 30 60 03 94 12 95
.byte $0F,$14,$99,$77,$79,$7F,$98,$70,$15,$14,$02,$7F,$71,$72,$0F,$19 ; PRG $3AA3 | CPU $FAA3 ; CPU:$F83D PRG:383D 0F 14 99 77 79 7F 98 70 15 14 02 7F 71 72 0F 19
.byte $77,$05,$7F,$74,$0F,$07,$07,$7F,$77,$19,$1B,$98,$00,$7F,$99,$77 ; PRG $3AB3 | CPU $FAB3 ; CPU:$F84D PRG:384D 77 05 7F 74 0F 07 07 7F 77 19 1B 98 00 7F 99 77
.byte $0B,$7F,$70,$3F,$9A,$94,$12,$95,$0C,$3F,$12,$10,$5F,$04,$04,$7F ; PRG $3AC3 | CPU $FAC3 ; CPU:$F85D PRG:385D 0B 7F 70 3F 9A 94 12 95 0C 3F 12 10 5F 04 04 7F
.byte $74,$15,$17,$5F,$9A,$94,$12,$95,$0C,$10,$10,$12,$14,$15,$15,$15 ; PRG $3AD3 | CPU $FAD3 ; CPU:$F86D PRG:386D 74 15 17 5F 9A 94 12 95 0C 10 10 12 14 15 15 15
.byte $15,$14,$14,$12,$12,$10,$3F,$1F,$9A,$93,$06,$0C,$12,$18,$24,$30 ; PRG $3AE3 | CPU $FAE3 ; CPU:$F87D PRG:387D 15 14 14 12 12 10 3F 1F 9A 93 06 0C 12 18 24 30
.byte $60,$03,$94,$12,$95,$07,$0A,$0A,$0B,$0B,$98,$00,$00,$01,$01,$02 ; PRG $3AF3 | CPU $FAF3 ; CPU:$F88D PRG:388D 60 03 94 12 95 07 0A 0A 0B 0B 98 00 00 01 01 02
.byte $0F,$99,$09,$0F,$98,$02,$0F,$99,$09,$0F,$98,$00,$05,$04,$02,$00 ; PRG $3B03 | CPU $FB03 ; CPU:$F89D PRG:389D 0F 99 09 0F 98 02 0F 99 09 0F 98 00 05 04 02 00
.byte $99,$0B,$98,$00,$99,$0B,$98,$00,$0F,$05,$0F,$00,$0F,$05,$0F,$83 ; PRG $3B13 | CPU $FB13 ; CPU:$F8AD PRG:38AD 99 0B 98 00 99 0B 98 00 0F 05 0F 00 0F 05 0F 83
.byte $02,$00,$0F,$09,$0F,$84,$83,$02,$99,$0A,$0F,$98,$07,$0F,$99,$09 ; PRG $3B23 | CPU $FB23 ; CPU:$F8BD PRG:38BD 02 00 0F 09 0F 84 83 02 99 0A 0F 98 07 0F 99 09
.byte $0F,$98,$05,$0F,$84,$81,$EC,$FA,$94,$18,$95,$07,$83,$07,$5F,$84 ; PRG $3B33 | CPU $FB33 ; CPU:$F8CD PRG:38CD 0F 98 05 0F 84 81 EC FA 94 18 95 07 83 07 5F 84
.byte $81,$3B,$FB,$94,$06,$95,$07,$0A,$0A,$09,$09,$08,$08,$07,$07,$16 ; PRG $3B43 | CPU $FB43 ; CPU:$F8DD PRG:38DD 81 3B FB 94 06 95 07 0A 0A 09 09 08 08 07 07 16
.byte $0F,$06,$16,$1F,$05,$0F,$07,$0F,$05,$08,$09,$08,$19,$0F,$09,$19 ; PRG $3B53 | CPU $FB53 ; CPU:$F8ED PRG:38ED 0F 06 16 1F 05 0F 07 0F 05 08 09 08 19 0F 09 19
.byte $1F,$15,$0F,$05,$15,$1F,$83,$02,$07,$1F,$0F,$05,$1F,$0F,$84,$81 ; PRG $3B63 | CPU $FB63 ; CPU:$F8FD PRG:38FD 1F 15 0F 05 15 1F 83 02 07 1F 0F 05 1F 0F 84 81
.byte $46,$FB,$93,$06,$0C,$12,$18,$24,$30,$60,$08,$94,$18,$95,$0C,$70 ; PRG $3B73 | CPU $FB73 ; CPU:$F90D PRG:390D 46 FB 93 06 0C 12 18 24 30 60 08 94 18 95 0C 70
.byte $74,$77,$7C,$77,$74,$70,$74,$77,$1C,$9A,$94,$0C,$95,$07,$83,$06 ; PRG $3B83 | CPU $FB83 ; CPU:$F91D PRG:391D 74 77 7C 77 74 70 74 77 1C 9A 94 0C 95 07 83 06
.byte $00,$04,$84,$00,$04,$00,$04,$10,$9A,$94,$0C,$95,$07,$6F,$1F,$9A ; PRG $3B93 | CPU $FB93 ; CPU:$F92D PRG:392D 00 04 84 00 04 00 04 10 9A 94 0C 95 07 6F 1F 9A
.byte $88,$30,$00,$31,$00,$00,$00,$00,$03,$BF,$BF,$00,$00,$00,$00,$02 ; PRG $3BA3 | CPU $FBA3 ; CPU:$F93D PRG:393D 88 30 00 31 00 00 00 00 03 BF BF 00 00 00 00 02
.byte $8D,$07,$00,$02,$88,$18,$58,$19,$58,$00,$00,$00,$03,$A1,$A1,$00 ; PRG $3BB3 | CPU $FBB3 ; CPU:$F94D PRG:394D 8D 07 00 02 88 18 58 19 58 00 00 00 03 A1 A1 00
.byte $00,$00,$00,$20,$86,$83,$03,$88,$00,$00,$80,$00,$80,$00,$00,$06 ; PRG $3BC3 | CPU $FBC3 ; CPU:$F95D PRG:395D 00 00 00 20 86 83 03 88 00 00 80 00 80 00 00 06
.byte $00,$BF,$8F,$00,$00,$00,$03,$8D,$09,$B0,$8D,$0A,$80,$03,$84,$88 ; PRG $3BD3 | CPU $FBD3 ; CPU:$F96D PRG:396D 00 BF 8F 00 00 00 03 8D 09 B0 8D 0A 80 03 84 88
.byte $00,$00,$40,$00,$40,$00,$00,$06,$00,$BF,$8F,$00,$00,$00,$0A,$86 ; PRG $3BE3 | CPU $FBE3 ; CPU:$F97D PRG:397D 00 00 40 00 40 00 00 06 00 BF 8F 00 00 00 0A 86
.byte $88,$00,$00,$FF,$03,$F0,$03,$00,$06,$00,$BF,$8F,$00,$00,$00,$8D ; PRG $3BF3 | CPU $FBF3 ; CPU:$F98D PRG:398D 88 00 00 FF 03 F0 03 00 06 00 BF 8F 00 00 00 8D
.byte $2D,$FC,$05,$88,$00,$00,$00,$03,$10,$03,$00,$06,$00,$BF,$8F,$00 ; PRG $3C03 | CPU $FC03 ; CPU:$F99D PRG:399D 2D FC 05 88 00 00 00 03 10 03 00 06 00 BF 8F 00
.byte $00,$00,$8D,$2D,$FC,$05,$86,$88,$00,$00,$18,$00,$18,$00,$00,$06 ; PRG $3C13 | CPU $FC13 ; CPU:$F9AD PRG:39AD 00 00 8D 2D FC 05 86 88 00 00 18 00 18 00 00 06
.byte $00,$BF,$8F,$00,$00,$00,$83,$0F,$00,$90,$02,$04,$90,$04,$04,$84 ; PRG $3C23 | CPU $FC23 ; CPU:$F9BD PRG:39BD 00 BF 8F 00 00 00 83 0F 00 90 02 04 90 04 04 84
.byte $86,$88,$00,$00,$FF,$03,$F0,$03,$00,$06,$00,$BF,$8F,$00,$00,$00 ; PRG $3C33 | CPU $FC33 ; CPU:$F9CD PRG:39CD 86 88 00 00 FF 03 F0 03 00 06 00 BF 8F 00 00 00
.byte $83,$0F,$00,$91,$09,$91,$0A,$84,$86,$88,$00,$00,$20,$00,$21,$00 ; PRG $3C43 | CPU $FC43 ; CPU:$F9DD PRG:39DD 83 0F 00 91 09 91 0A 84 86 88 00 00 20 00 21 00
.byte $00,$06,$BF,$BF,$8F,$00,$00,$00,$83,$0A,$00,$8F,$04,$02,$8F,$02 ; PRG $3C53 | CPU $FC53 ; CPU:$F9ED PRG:39ED 00 06 BF BF 8F 00 00 00 83 0A 00 8F 04 02 8F 02
.byte $02,$84,$86,$83,$03,$88,$00,$00,$00,$00,$00,$00,$03,$08,$00,$00 ; PRG $3C63 | CPU $FC63 ; CPU:$F9FD PRG:39FD 02 84 86 83 03 88 00 00 00 00 00 00 03 08 00 00
.byte $00,$55,$20,$00,$07,$84,$86,$88,$00,$00,$50,$00,$51,$00,$00,$06 ; PRG $3C73 | CPU $FC73 ; CPU:$FA0D PRG:3A0D 00 55 20 00 07 84 86 88 00 00 50 00 51 00 00 06
.byte $00,$B7,$87,$00,$00,$00,$83,$08,$00,$8F,$02,$05,$8F,$04,$05,$84 ; PRG $3C83 | CPU $FC83 ; CPU:$FA1D PRG:3A1D 00 B7 87 00 00 00 83 08 00 8F 02 05 8F 04 05 84
.byte $86,$88,$00,$00,$F0,$01,$F0,$01,$00,$06,$00,$BF,$8F,$00,$00,$00 ; PRG $3C93 | CPU $FC93 ; CPU:$FA2D PRG:3A2D 86 88 00 00 F0 01 F0 01 00 06 00 BF 8F 00 00 00
.byte $83,$04,$00,$8F,$02,$30,$8F,$02,$30,$84,$86,$88,$30,$00,$31,$00 ; PRG $3CA3 | CPU $FCA3 ; CPU:$FA3D PRG:3A3D 83 04 00 8F 02 30 8F 02 30 84 86 88 30 00 31 00
.byte $32,$00,$00,$06,$BF,$BF,$BF,$00,$00,$00,$83,$08,$01,$90,$00,$40 ; PRG $3CB3 | CPU $FCB3 ; CPU:$FA4D PRG:3A4D 32 00 00 06 BF BF BF 00 00 00 83 08 01 90 00 40
.byte $90,$02,$40,$90,$04,$40,$01,$8F,$02,$10,$8F,$02,$10,$8F,$04,$10 ; PRG $3CC3 | CPU $FCC3 ; CPU:$FA5D PRG:3A5D 90 02 40 90 04 40 01 8F 02 10 8F 02 10 8F 04 10
.byte $84,$86,$83,$02,$88,$00,$00,$20,$00,$20,$00,$00,$06,$00,$BF,$8F ; PRG $3CD3 | CPU $FCD3 ; CPU:$FA6D PRG:3A6D 84 86 83 02 88 00 00 20 00 20 00 00 06 00 BF 8F
.byte $00,$00,$00,$02,$8D,$09,$B0,$8D,$0A,$B0,$03,$84,$83,$02,$88,$00 ; PRG $3CE3 | CPU $FCE3 ; CPU:$FA7D PRG:3A7D 00 00 00 02 8D 09 B0 8D 0A B0 03 84 83 02 88 00
.byte $00,$40,$00,$40,$00,$00,$06,$00,$BF,$8F,$00,$00,$00,$02,$8D,$09 ; PRG $3CF3 | CPU $FCF3 ; CPU:$FA8D PRG:3A8D 00 40 00 40 00 00 06 00 BF 8F 00 00 00 02 8D 09
.byte $B0,$8D,$0A,$B0,$03,$84,$83,$03,$88,$00,$00,$60,$00,$60,$00,$00 ; PRG $3D03 | CPU $FD03 ; CPU:$FA9D PRG:3A9D B0 8D 0A B0 03 84 83 03 88 00 00 60 00 60 00 00
.byte $06,$00,$BF,$8F,$00,$00,$00,$02,$8D,$09,$B0,$8D,$0A,$B0,$03,$84 ; PRG $3D13 | CPU $FD13 ; CPU:$FAAD PRG:3AAD 06 00 BF 8F 00 00 00 02 8D 09 B0 8D 0A B0 03 84
.byte $86 ; PRG $3D23 | CPU $FD23 ; CPU:$FABD PRG:3ABD 86
; -----------------------------------------------------------------------------
; Global purpose: Reset Handler.
; Local behavior: Executes the decoded reset handler sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ResetHandler:
sei ; CPU:$FABE PRG:3ABE ??
cld ; CPU:$FAC0 PRG:3AC0 ??
lda #$00 ; CPU:$FAC2 PRG:3AC2 ??
sta PPUCTRL ; CPU:$FAC4 PRG:3AC4 ??
sta PPUMASK ; CPU:$FAC6 PRG:3AC6 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FD2 E.
; Local behavior: Executes the decoded flow fd2 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FD2E:
lda PPUSTATUS ; CPU:$FAC8 PRG:3AC8 ??
bpl Flow_FD2E ; CPU:$FACA PRG:3ACA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FD33.
; Local behavior: Executes the decoded flow fd33 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FD33:
lda PPUSTATUS ; CPU:$FACC PRG:3ACC ??
bpl Flow_FD33 ; CPU:$FACE PRG:3ACE ??
jsr SetDefaultScroll ; CPU:$FAD0 PRG:3AD0 ??
sta FrameCounter ; CPU:$FAD2 PRG:3AD2 ??
lda #$08 ; CPU:$FAD4 PRG:3AD4 ??
sta FrameCounterReload ; CPU:$FAD6 PRG:3AD6 ??
lda #$80 ; CPU:$FAD8 PRG:3AD8 ??
sta JOY2 ; CPU:$FADA PRG:3ADA ??
ldx #$FF ; CPU:$FADC PRG:3ADC ??
txs ; CPU:$FADE PRG:3ADE ??
jsr InitializeRuntimeState ; CPU:$FAE0 PRG:3AE0 ??
jsr InitializeGameSystems ; CPU:$FAE2 PRG:3AE2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FD4 F.
; Local behavior: Executes the decoded flow fd4 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FD4F:
jsr WaitForNmi ; CPU:$FAE4 PRG:3AE4 ??
lda MainGameState ; CPU:$FAE6 PRG:3AE6 ??
asl a ; CPU:$FAE8 PRG:3AE8 ??
tax ; CPU:$FAEA PRG:3AEA ??
lda MainStateDispatchTable,x ; CPU:$FAEC PRG:3AEC ??
sta DataPointerLo ; CPU:$FAEE PRG:3AEE ??
lda LookupTable_C001,x ; CPU:$FAF0 PRG:3AF0 ??
sta DataPointerHi ; CPU:$FAF2 PRG:3AF2 ??
jmp (DataPointerLo) ; CPU:$FAF4 PRG:3AF4 ??
; -----------------------------------------------------------------------------
; Global purpose: Initialize Runtime State.
; Local behavior: Executes the decoded initialize runtime state sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
InitializeRuntimeState:
lda #$00 ; CPU:$FAF6 PRG:3AF6 ??
sta NmiCompletedFlag ; CPU:$FAF8 PRG:3AF8 ??
sta GameMode ; CPU:$FAFA PRG:3AFA ??
sta PendingFrameTask ; CPU:$FAFC PRG:3AFC ??
sta PlayerDeathFlag ; CPU:$FAFE PRG:3AFE ??
sta StageCompleteFlag ; CPU:$FB00 PRG:3B00 ??
lda #$90 ; CPU:$FB02 PRG:3B02 ??
jsr SetPpuControlShadow ; CPU:$FB04 PRG:3B04 ??
jsr ClearNametables ; CPU:$FB06 PRG:3B06 ??
jsr ProcessGameState_FD83 ; CPU:$FB08 PRG:3B08 ??
jsr WaitForNmi ; CPU:$FB0A PRG:3B0A ??
lda #$1A ; CPU:$FB0C PRG:3B0C ??
jsr SetPpuMaskShadow ; CPU:$FB0E PRG:3B0E ??
rts ; CPU:$FB10 PRG:3B10 ??
; -----------------------------------------------------------------------------
; Global purpose: Process Game State FD83.
; Local behavior: Executes the decoded process game state fd83 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ProcessGameState_FD83:
lda #$00 ; CPU:$FB12 PRG:3B12 ??
ldx #$FD ; CPU:$FB14 PRG:3B14 ??
ldy #$8D ; CPU:$FB16 PRG:3B16 ??
jsr LoadPalette ; CPU:$FB18 PRG:3B18 ??
rts ; CPU:$FB1A PRG:3B1A ??
.byte $0F,$30,$3A,$16,$0F,$36,$0F,$0F,$0F,$3A,$26,$0F,$0F,$30,$27,$07 ; PRG $3D8D | CPU $FD8D ; CPU:$FB1C PRG:3B1C 0F 30 3A 16 0F 36 0F 0F 0F 3A 26 0F 0F 30 27 07
; -----------------------------------------------------------------------------
; Global purpose: Wait For Nmi.
; Local behavior: Executes the decoded wait for nmi sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
WaitForNmi:
lda NmiCompletedFlag ; CPU:$FB2C PRG:3B2C ??
beq WaitForNmi ; CPU:$FB2E PRG:3B2E ??
lda #$00 ; CPU:$FB30 PRG:3B30 ??
sta NmiCompletedFlag ; CPU:$FB32 PRG:3B32 ??
rts ; CPU:$FB34 PRG:3B34 ??
; -----------------------------------------------------------------------------
; Global purpose: Wait For Ppu Vblank.
; Local behavior: Executes the decoded wait for ppu vblank sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
WaitForPpuVblank:
pha ; CPU:$FB36 PRG:3B36 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FDA7.
; Local behavior: Executes the decoded flow fda7 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FDA7:
lda PPUSTATUS ; CPU:$FB38 PRG:3B38 ??
bpl Flow_FDA7 ; CPU:$FB3A PRG:3B3A ??
pla ; CPU:$FB3C PRG:3B3C ??
rts ; CPU:$FB3E PRG:3B3E ??
; -----------------------------------------------------------------------------
; Global purpose: Clear Nametables.
; Local behavior: Executes the decoded clear nametables sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ClearNametables:
jsr ClearNametable2000 ; CPU:$FB40 PRG:3B40 ??
jsr ClearNametable2800 ; CPU:$FB42 PRG:3B42 ??
; -----------------------------------------------------------------------------
; Global purpose: Clear Nametable.
; Local behavior: Executes the decoded clear nametable sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ClearNametable:
ldx #$00 ; CPU:$FB44 PRG:3B44 ??
ldy #$40 ; CPU:$FB46 PRG:3B46 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FDB8.
; Local behavior: Executes the decoded flow fdb8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FDB8:
lda #$F0 ; CPU:$FB48 PRG:3B48 ??
sta Ram_0700,x ; CPU:$FB4A PRG:3B4A ??
lda #$00 ; CPU:$FB4C PRG:3B4C ??
inx ; CPU:$FB4E PRG:3B4E ??
sta Ram_0700,x ; CPU:$FB50 PRG:3B50 ??
inx ; CPU:$FB52 PRG:3B52 ??
sta Ram_0700,x ; CPU:$FB54 PRG:3B54 ??
inx ; CPU:$FB56 PRG:3B56 ??
sta Ram_0700,x ; CPU:$FB58 PRG:3B58 ??
inx ; CPU:$FB5A PRG:3B5A ??
dey ; CPU:$FB5C PRG:3B5C ??
bne Flow_FDB8 ; CPU:$FB5E PRG:3B5E ??
rts ; CPU:$FB60 PRG:3B60 ??
; -----------------------------------------------------------------------------
; Global purpose: Clear Nametable2000.
; Local behavior: Executes the decoded clear nametable2000 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ClearNametable2000:
ldx #$20 ; CPU:$FB62 PRG:3B62 ??
bne Flow_FDD6 ; CPU:$FB64 PRG:3B64 ??
; -----------------------------------------------------------------------------
; Global purpose: Clear Nametable2800.
; Local behavior: Executes the decoded clear nametable2800 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ClearNametable2800:
ldx #$28 ; CPU:$FB66 PRG:3B66 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FDD6.
; Local behavior: Executes the decoded flow fdd6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FDD6:
jsr DisableBackgroundAndSprites ; CPU:$FB68 PRG:3B68 ??
ldy #$00 ; CPU:$FB6A PRG:3B6A ??
jsr WaitForNmiAndSetPpuAddress ; CPU:$FB6C PRG:3B6C ??
ldy #$04 ; CPU:$FB6E PRG:3B6E ??
ldx #$00 ; CPU:$FB70 PRG:3B70 ??
txa ; CPU:$FB72 PRG:3B72 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FDE3.
; Local behavior: Executes the decoded flow fde3 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FDE3:
sta PPUDATA ; CPU:$FB74 PRG:3B74 ??
dex ; CPU:$FB76 PRG:3B76 ??
bne Flow_FDE3 ; CPU:$FB78 PRG:3B78 ??
dey ; CPU:$FB7A PRG:3B7A ??
bne Flow_FDE3 ; CPU:$FB7C PRG:3B7C ??
jsr SetDefaultScroll ; CPU:$FB7E PRG:3B7E ??
rts ; CPU:$FB80 PRG:3B80 ??
; -----------------------------------------------------------------------------
; Global purpose: Load Palette.
; Local behavior: Executes the decoded load palette sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
LoadPalette:
jsr WaitForPpuVblank ; CPU:$FB82 PRG:3B82 ??
sty DataPointerLo ; CPU:$FB84 PRG:3B84 ??
stx DataPointerHi ; CPU:$FB86 PRG:3B86 ??
ldx #$3F ; CPU:$FB88 PRG:3B88 ??
ldy #$00 ; CPU:$FB8A PRG:3B8A ??
cmp #$00 ; CPU:$FB8C PRG:3B8C ??
beq Flow_FE03 ; CPU:$FB8E PRG:3B8E ??
ldx #$3F ; CPU:$FB90 PRG:3B90 ??
ldy #$10 ; CPU:$FB92 PRG:3B92 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FE03.
; Local behavior: Executes the decoded flow fe03 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FE03:
jsr SetPpuAddress ; CPU:$FB94 PRG:3B94 ??
ldy #$00 ; CPU:$FB96 PRG:3B96 ??
ldx #$10 ; CPU:$FB98 PRG:3B98 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FE0 A.
; Local behavior: Executes the decoded flow fe0 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FE0A:
lda (DataPointerLo),y ; CPU:$FB9A PRG:3B9A ??
sta PPUDATA ; CPU:$FB9C PRG:3B9C ??
iny ; CPU:$FB9E PRG:3B9E ??
dex ; CPU:$FBA0 PRG:3BA0 ??
bne Flow_FE0A ; CPU:$FBA2 PRG:3BA2 ??
lda #$3F ; CPU:$FBA4 PRG:3BA4 ??
sta PPUADDR ; CPU:$FBA6 PRG:3BA6 ??
lda #$00 ; CPU:$FBA8 PRG:3BA8 ??
sta PPUADDR ; CPU:$FBAA PRG:3BAA ??
sta PPUADDR ; CPU:$FBAC PRG:3BAC ??
sta PPUADDR ; CPU:$FBAE PRG:3BAE ??
sta Zp_0D ; CPU:$FBB0 PRG:3BB0 ??
lda PpuMaskShadow ; CPU:$FBB2 PRG:3BB2 ??
sta PPUMASK ; CPU:$FBB4 PRG:3BB4 ??
rts ; CPU:$FBB6 PRG:3BB6 ??
; -----------------------------------------------------------------------------
; Global purpose: Read Controllers.
; Local behavior: Executes the decoded read controllers sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ReadControllers:
sta ScratchValue0 ; CPU:$FBB8 PRG:3BB8 ??
ldy #$01 ; CPU:$FBBA PRG:3BBA ??
sty JOY1 ; CPU:$FBBC PRG:3BBC ??
dey ; CPU:$FBBE PRG:3BBE ??
sty JOY1 ; CPU:$FBC0 PRG:3BC0 ??
ldx #$08 ; CPU:$FBC2 PRG:3BC2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FE38.
; Local behavior: Executes the decoded flow fe38 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FE38:
lda JOY1 ; CPU:$FBC4 PRG:3BC4 ??
ror a ; CPU:$FBC6 PRG:3BC6 ??
bcs Flow_FE3F ; CPU:$FBC8 PRG:3BC8 ??
ror a ; CPU:$FBCA PRG:3BCA ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FE3 F.
; Local behavior: Executes the decoded flow fe3 f sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FE3F:
ror ScratchValue1 ; CPU:$FBCC PRG:3BCC ??
lda JOY2 ; CPU:$FBCE PRG:3BCE ??
ror a ; CPU:$FBD0 PRG:3BD0 ??
bcs Flow_FE48 ; CPU:$FBD2 PRG:3BD2 ??
ror a ; CPU:$FBD4 PRG:3BD4 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FE48.
; Local behavior: Executes the decoded flow fe48 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FE48:
ror ScratchIndex ; CPU:$FBD6 PRG:3BD6 ??
dex ; CPU:$FBD8 PRG:3BD8 ??
bne Flow_FE38 ; CPU:$FBDA PRG:3BDA ??
lda ScratchValue1 ; CPU:$FBDC PRG:3BDC ??
ldx ScratchValue0 ; CPU:$FBDE PRG:3BDE ??
beq Flow_FE55 ; CPU:$FBE0 PRG:3BE0 ??
lda ScratchIndex ; CPU:$FBE2 PRG:3BE2 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FE55.
; Local behavior: Executes the decoded flow fe55 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FE55:
tax ; CPU:$FBE4 PRG:3BE4 ??
lsr a ; CPU:$FBE6 PRG:3BE6 ??
lsr a ; CPU:$FBE8 PRG:3BE8 ??
lsr a ; CPU:$FBEA PRG:3BEA ??
lsr a ; CPU:$FBEC PRG:3BEC ??
sta Zp_2E ; CPU:$FBEE PRG:3BEE ??
txa ; CPU:$FBF0 PRG:3BF0 ??
and #$03 ; CPU:$FBF2 PRG:3BF2 ??
sta Zp_2F ; CPU:$FBF4 PRG:3BF4 ??
lda ScratchValue1 ; CPU:$FBF6 PRG:3BF6 ??
and #$0C ; CPU:$FBF8 PRG:3BF8 ??
ora Zp_2F ; CPU:$FBFA PRG:3BFA ??
sta Zp_2F ; CPU:$FBFC PRG:3BFC ??
rts ; CPU:$FBFE PRG:3BFE ??
; -----------------------------------------------------------------------------
; Global purpose: Wait For Nmi And Set Ppu Address.
; Local behavior: Executes the decoded wait for nmi and set ppu address sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
WaitForNmiAndSetPpuAddress:
jsr WaitForNmi ; CPU:$FC00 PRG:3C00 ??
; -----------------------------------------------------------------------------
; Global purpose: Set Ppu Address.
; Local behavior: Executes the decoded set ppu address sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
SetPpuAddress:
stx PPUADDR ; CPU:$FC02 PRG:3C02 ??
sty PPUADDR ; CPU:$FC04 PRG:3C04 ??
rts ; CPU:$FC06 PRG:3C06 ??
; -----------------------------------------------------------------------------
; Global purpose: Decode Nametable Stream.
; Local behavior: Executes the decoded decode nametable stream sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
DecodeNametableStream:
sty DataPointerLo ; CPU:$FC08 PRG:3C08 ??
stx DataPointerHi ; CPU:$FC0A PRG:3C0A ??
ldy #$00 ; CPU:$FC0C PRG:3C0C ??
lda (DataPointerLo),y ; CPU:$FC0E PRG:3C0E ??
sta StreamLength ; CPU:$FC10 PRG:3C10 ??
iny ; CPU:$FC12 PRG:3C12 ??
lda (DataPointerLo),y ; CPU:$FC14 PRG:3C14 ??
sta Zp_08 ; CPU:$FC16 PRG:3C16 ??
iny ; CPU:$FC18 PRG:3C18 ??
lda (DataPointerLo),y ; CPU:$FC1A PRG:3C1A ??
sta Zp_09 ; CPU:$FC1C PRG:3C1C ??
iny ; CPU:$FC1E PRG:3C1E ??
lda (DataPointerLo),y ; CPU:$FC20 PRG:3C20 ??
sta Zp_0A ; CPU:$FC22 PRG:3C22 ??
tax ; CPU:$FC24 PRG:3C24 ??
ldy Zp_09 ; CPU:$FC26 PRG:3C26 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FE90.
; Local behavior: Executes the decoded flow fe90 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FE90:
jsr WaitForNmiAndSetPpuAddress ; CPU:$FC28 PRG:3C28 ??
ldy #$00 ; CPU:$FC2A PRG:3C2A ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FE95.
; Local behavior: Executes the decoded flow fe95 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FE95:
lda (StreamLength),y ; CPU:$FC2C PRG:3C2C ??
cmp #$FF ; CPU:$FC2E PRG:3C2E ??
beq Flow_FECC ; CPU:$FC30 PRG:3C30 ??
cmp #$0A ; CPU:$FC32 PRG:3C32 ??
beq Flow_FEA9 ; CPU:$FC34 PRG:3C34 ??
sec ; CPU:$FC36 PRG:3C36 ??
sbc #$20 ; CPU:$FC38 PRG:3C38 ??
sta PPUDATA ; CPU:$FC3A PRG:3C3A ??
iny ; CPU:$FC3C PRG:3C3C ??
jmp Flow_FE95 ; CPU:$FC3E PRG:3C3E ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FEA9.
; Local behavior: Executes the decoded flow fea9 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FEA9:
jsr SetDefaultScroll ; CPU:$FC40 PRG:3C40 ??
iny ; CPU:$FC42 PRG:3C42 ??
tya ; CPU:$FC44 PRG:3C44 ??
clc ; CPU:$FC46 PRG:3C46 ??
adc StreamLength ; CPU:$FC48 PRG:3C48 ??
sta StreamLength ; CPU:$FC4A PRG:3C4A ??
lda #$00 ; CPU:$FC4C PRG:3C4C ??
adc Zp_08 ; CPU:$FC4E PRG:3C4E ??
sta Zp_08 ; CPU:$FC50 PRG:3C50 ??
lda Zp_09 ; CPU:$FC52 PRG:3C52 ??
clc ; CPU:$FC54 PRG:3C54 ??
adc #$20 ; CPU:$FC56 PRG:3C56 ??
sta Zp_09 ; CPU:$FC58 PRG:3C58 ??
lda #$00 ; CPU:$FC5A PRG:3C5A ??
adc Zp_0A ; CPU:$FC5C PRG:3C5C ??
sta Zp_0A ; CPU:$FC5E PRG:3C5E ??
tax ; CPU:$FC60 PRG:3C60 ??
ldy Zp_09 ; CPU:$FC62 PRG:3C62 ??
jmp Flow_FE90 ; CPU:$FC64 PRG:3C64 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FECC.
; Local behavior: Executes the decoded flow fecc sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FECC:
jsr SetDefaultScroll ; CPU:$FC66 PRG:3C66 ??
rts ; CPU:$FC68 PRG:3C68 ??
; -----------------------------------------------------------------------------
; Global purpose: Decode Attribute Stream.
; Local behavior: Executes the decoded decode attribute stream sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
DecodeAttributeStream:
sty DataPointerLo ; CPU:$FC6A PRG:3C6A ??
stx DataPointerHi ; CPU:$FC6C PRG:3C6C ??
ldy #$00 ; CPU:$FC6E PRG:3C6E ??
sty ScratchValue1 ; CPU:$FC70 PRG:3C70 ??
lda (DataPointerLo),y ; CPU:$FC72 PRG:3C72 ??
sta StreamLength ; CPU:$FC74 PRG:3C74 ??
iny ; CPU:$FC76 PRG:3C76 ??
lda (DataPointerLo),y ; CPU:$FC78 PRG:3C78 ??
sta Zp_08 ; CPU:$FC7A PRG:3C7A ??
iny ; CPU:$FC7C PRG:3C7C ??
lda (DataPointerLo),y ; CPU:$FC7E PRG:3C7E ??
sta Ram_0501 ; CPU:$FC80 PRG:3C80 ??
iny ; CPU:$FC82 PRG:3C82 ??
lda (DataPointerLo),y ; CPU:$FC84 PRG:3C84 ??
sta Ram_0500 ; CPU:$FC86 PRG:3C86 ??
iny ; CPU:$FC88 PRG:3C88 ??
lda (DataPointerLo),y ; CPU:$FC8A PRG:3C8A ??
sta Ram_0502 ; CPU:$FC8C PRG:3C8C ??
sta ScratchValue0 ; CPU:$FC8E PRG:3C8E ??
ldx #$03 ; CPU:$FC90 PRG:3C90 ??
lda ScratchValue0 ; CPU:$FC92 PRG:3C92 ??
lsr a ; CPU:$FC94 PRG:3C94 ??
tay ; CPU:$FC96 PRG:3C96 ??
lsr ScratchValue0 ; CPU:$FC98 PRG:3C98 ??
bcs Flow_FF10 ; CPU:$FC9A PRG:3C9A ??
dey ; CPU:$FC9C PRG:3C9C ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FF00.
; Local behavior: Executes the decoded flow ff00 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FF00:
lda (StreamLength),y ; CPU:$FC9E PRG:3C9E ??
lsr a ; CPU:$FCA0 PRG:3CA0 ??
lsr a ; CPU:$FCA2 PRG:3CA2 ??
lsr a ; CPU:$FCA4 PRG:3CA4 ??
lsr a ; CPU:$FCA6 PRG:3CA6 ??
clc ; CPU:$FCA8 PRG:3CA8 ??
adc #$10 ; CPU:$FCAA PRG:3CAA ??
jsr WriteRepeatedPpuValue ; CPU:$FCAC PRG:3CAC ??
sta Ram_0500,x ; CPU:$FCAE PRG:3CAE ??
inx ; CPU:$FCB0 PRG:3CB0 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FF10.
; Local behavior: Executes the decoded flow ff10 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FF10:
lda (StreamLength),y ; CPU:$FCB2 PRG:3CB2 ??
and #$0F ; CPU:$FCB4 PRG:3CB4 ??
clc ; CPU:$FCB6 PRG:3CB6 ??
adc #$10 ; CPU:$FCB8 PRG:3CB8 ??
cpy #$00 ; CPU:$FCBA PRG:3CBA ??
beq Flow_FF1E ; CPU:$FCBC PRG:3CBC ??
jsr WriteRepeatedPpuValue ; CPU:$FCBE PRG:3CBE ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FF1 E.
; Local behavior: Executes the decoded flow ff1 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FF1E:
sta Ram_0500,x ; CPU:$FCC0 PRG:3CC0 ??
inx ; CPU:$FCC2 PRG:3CC2 ??
dey ; CPU:$FCC4 PRG:3CC4 ??
bpl Flow_FF00 ; CPU:$FCC6 PRG:3CC6 ??
jsr ProcessGameState_CE86 ; CPU:$FCC8 PRG:3CC8 ??
jsr SetDefaultScroll ; CPU:$FCCA PRG:3CCA ??
rts ; CPU:$FCCC PRG:3CCC ??
; -----------------------------------------------------------------------------
; Global purpose: Write Repeated Ppu Value.
; Local behavior: Executes the decoded write repeated ppu value sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
WriteRepeatedPpuValue:
stx ScratchIndex ; CPU:$FCCE PRG:3CCE ??
cmp #$10 ; CPU:$FCD0 PRG:3CD0 ??
bne Flow_FF3B ; CPU:$FCD2 PRG:3CD2 ??
ldx ScratchValue1 ; CPU:$FCD4 PRG:3CD4 ??
bne Flow_FF38 ; CPU:$FCD6 PRG:3CD6 ??
lda #$00 ; CPU:$FCD8 PRG:3CD8 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FF38.
; Local behavior: Executes the decoded flow ff38 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FF38:
ldx ScratchIndex ; CPU:$FCDA PRG:3CDA ??
rts ; CPU:$FCDC PRG:3CDC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FF3 B.
; Local behavior: Executes the decoded flow ff3 b sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FF3B:
ldx #$01 ; CPU:$FCDE PRG:3CDE ??
stx ScratchValue1 ; CPU:$FCE0 PRG:3CE0 ??
ldx ScratchIndex ; CPU:$FCE2 PRG:3CE2 ??
rts ; CPU:$FCE4 PRG:3CE4 ??
; -----------------------------------------------------------------------------
; Global purpose: Select Ppu Run Length.
; Local behavior: Executes the decoded select ppu run length sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
SelectPpuRunLength:
ldy #$5E ; CPU:$FCE6 PRG:3CE6 ??
cmp #$00 ; CPU:$FCE8 PRG:3CE8 ??
beq Flow_FF4A ; CPU:$FCEA PRG:3CEA ??
ldy #$61 ; CPU:$FCEC PRG:3CEC ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FF4 A.
; Local behavior: Executes the decoded flow ff4 a sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FF4A:
sty DataPointerLo ; CPU:$FCEE PRG:3CEE ??
lda #$00 ; CPU:$FCF0 PRG:3CF0 ??
sta DataPointerHi ; CPU:$FCF2 PRG:3CF2 ??
stx ScratchValue0 ; CPU:$FCF4 PRG:3CF4 ??
txa ; CPU:$FCF6 PRG:3CF6 ??
lsr a ; CPU:$FCF8 PRG:3CF8 ??
lsr a ; CPU:$FCFA PRG:3CFA ??
lsr a ; CPU:$FCFC PRG:3CFC ??
lsr a ; CPU:$FCFE PRG:3CFE ??
tax ; CPU:$FD00 PRG:3D00 ??
lda ScratchValue0 ; CPU:$FD02 PRG:3D02 ??
asl a ; CPU:$FD04 PRG:3D04 ??
asl a ; CPU:$FD06 PRG:3D06 ??
asl a ; CPU:$FD08 PRG:3D08 ??
asl a ; CPU:$FD0A PRG:3D0A ??
ldy #$00 ; CPU:$FD0C PRG:3D0C ??
clc ; CPU:$FD0E PRG:3D0E ??
adc (DataPointerLo),y ; CPU:$FD10 PRG:3D10 ??
jsr ConvertPackedDecimalDigit ; CPU:$FD12 PRG:3D12 ??
sta (DataPointerLo),y ; CPU:$FD14 PRG:3D14 ??
iny ; CPU:$FD16 PRG:3D16 ??
txa ; CPU:$FD18 PRG:3D18 ??
adc (DataPointerLo),y ; CPU:$FD1A PRG:3D1A ??
jsr ConvertPackedDecimalDigit ; CPU:$FD1C PRG:3D1C ??
sta (DataPointerLo),y ; CPU:$FD1E PRG:3D1E ??
iny ; CPU:$FD20 PRG:3D20 ??
lda #$00 ; CPU:$FD22 PRG:3D22 ??
adc (DataPointerLo),y ; CPU:$FD24 PRG:3D24 78
jsr ConvertPackedDecimalDigit ; CPU:$FD25 PRG:3D25 D8
sta (DataPointerLo),y ; CPU:$FD26 PRG:3D26 A9 00
rts ; CPU:$FD28 PRG:3D28 8D 00 20
; -----------------------------------------------------------------------------
; Global purpose: Set Main State.
; Local behavior: Executes the decoded set main state sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
SetMainState:
sta MainGameState ; CPU:$FD2B PRG:3D2B 8D 01 20
rts ; CPU:$FD2E PRG:3D2E AD 02 20
; -----------------------------------------------------------------------------
; Global purpose: Nmi Handler.
; Local behavior: Executes the decoded nmi handler sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
NmiHandler:
pha ; CPU:$FD31 PRG:3D31 10 FB
txa ; CPU:$FD33 PRG:3D33 AD 02 20
pha ; CPU:$FD36 PRG:3D36 10 FB
tya ; CPU:$FD38 PRG:3D38 20 EB FF
pha ; CPU:$FD3B PRG:3D3B 85 14
lda #$00 ; CPU:$FD3D PRG:3D3D A9 08
sta OAMADDR ; CPU:$FD3F PRG:3D3F 85 13
lda #$07 ; CPU:$FD41 PRG:3D41 A9 80
sta OAMDMA ; CPU:$FD43 PRG:3D43 8D 17 40
sta NmiCompletedFlag ; CPU:$FD46 PRG:3D46 A2 FF
lda PPUSTATUS ; CPU:$FD48 PRG:3D48 9A
lda StageCompleteFlag ; CPU:$FD49 PRG:3D49 20 63 FD
beq Flow_FF9E ; CPU:$FD4C PRG:3D4C 20 0E C0
jsr ProcessGameState_CEA3 ; CPU:$FD4F PRG:3D4F 20 9D FD
lda #$00 ; CPU:$FD52 PRG:3D52 A5 16
sta StageCompleteFlag ; CPU:$FD54 PRG:3D54 0A
; -----------------------------------------------------------------------------
; Global purpose: Flow FF9 E.
; Local behavior: Executes the decoded flow ff9 e sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FF9E:
jsr ProcessPendingFrameTask ; CPU:$FD55 PRG:3D55 AA
lda GameMode ; CPU:$FD56 PRG:3D56 BD 00 C0
beq Flow_FFA8 ; CPU:$FD59 PRG:3D59 85 05
jsr ProcessGameState_F493 ; CPU:$FD5B PRG:3D5B BD 01 C0
; -----------------------------------------------------------------------------
; Global purpose: Flow FFA8.
; Local behavior: Executes the decoded flow ffa8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FFA8:
pla ; CPU:$FD5E PRG:3D5E 85 06
tay ; CPU:$FD60 PRG:3D60 6C 05 00
pla ; CPU:$FD63 PRG:3D63 A9 00
tax ; CPU:$FD65 PRG:3D65 85 0E
pla ; CPU:$FD67 PRG:3D67 85 4C
rti ; CPU:$FD69 PRG:3D69 85 8F
; -----------------------------------------------------------------------------
; Global purpose: Convert Packed Decimal Digit.
; Local behavior: Executes the decoded convert packed decimal digit sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
ConvertPackedDecimalDigit:
sta ScratchValue1 ; CPU:$FD6B PRG:3D6B 85 4F
and #$0F ; CPU:$FD6D PRG:3D6D 85 4E
cmp #$0A ; CPU:$FD6F PRG:3D6F A9 90
bcc Flow_FFC6 ; CPU:$FD71 PRG:3D71 20 D8 C3
sec ; CPU:$FD74 PRG:3D74 20 AE FD
sbc #$0A ; CPU:$FD77 PRG:3D77 20 83 FD
ora #$10 ; CPU:$FD7A PRG:3D7A 20 9D FD
sta ScratchIndex ; CPU:$FD7D PRG:3D7D A9 1A
lda ScratchValue1 ; CPU:$FD7F PRG:3D7F 20 DE C3
and #$F0 ; CPU:$FD82 PRG:3D82 60
clc ; CPU:$FD83 PRG:3D83 A9 00
adc ScratchIndex ; CPU:$FD85 PRG:3D85 A2 FD
sta ScratchValue1 ; CPU:$FD87 PRG:3D87 A0 8D
; -----------------------------------------------------------------------------
; Global purpose: Flow FFC6.
; Local behavior: Executes the decoded flow ffc6 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FFC6:
lda ScratchValue1 ; CPU:$FD89 PRG:3D89 20 F0 FD
and #$F0 ; CPU:$FD8C PRG:3D8C 60
cmp #$A0 ; CPU:$FD8D PRG:3D8D ??
bcc Flow_FFD5 ; CPU:$FD8F PRG:3D8F ??
lda ScratchValue1 ; CPU:$FD91 PRG:3D91 ??
sec ; CPU:$FD93 PRG:3D93 ??
sbc #$A0 ; CPU:$FD95 PRG:3D95 ??
sec ; CPU:$FD97 PRG:3D97 ??
rts ; CPU:$FD99 PRG:3D99 ??
; -----------------------------------------------------------------------------
; Global purpose: Flow FFD5.
; Local behavior: Executes the decoded flow ffd5 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FFD5:
lda ScratchValue1 ; CPU:$FD9B PRG:3D9B ??
clc ; CPU:$FD9D PRG:3D9D A5 0E
rts ; CPU:$FD9F PRG:3D9F F0 FC
; -----------------------------------------------------------------------------
; Global purpose: Decrement Packed Decimal Digit.
; Local behavior: Executes the decoded decrement packed decimal digit sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
DecrementPackedDecimalDigit:
sta ScratchValue0 ; CPU:$FDA1 PRG:3DA1 A9 00
and #$0F ; CPU:$FDA3 PRG:3DA3 85 0E
cmp #$0F ; CPU:$FDA5 PRG:3DA5 60
bne Flow_FFE8 ; CPU:$FDA6 PRG:3DA6 48
lda ScratchValue0 ; CPU:$FDA7 PRG:3DA7 AD 02 20
and #$F0 ; CPU:$FDAA PRG:3DAA 10 FB
ora #$09 ; CPU:$FDAC PRG:3DAC 68
rts ; CPU:$FDAD PRG:3DAD 60
; -----------------------------------------------------------------------------
; Global purpose: Flow FFE8.
; Local behavior: Executes the decoded flow ffe8 sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
Flow_FFE8:
lda ScratchValue0 ; CPU:$FDAE PRG:3DAE 20 D0 FD
rts ; CPU:$FDB1 PRG:3DB1 20 D4 FD
; -----------------------------------------------------------------------------
; Global purpose: Set Default Scroll.
; Local behavior: Executes the decoded set default scroll sequence at this entry point.
; Parameters: Determined by callers; refined during Pass 3 data-flow analysis.
; Returns: Returns or transfers control according to the decoded instructions.
; Clobbers: Determined from the instructions below; refined in Pass 3.
; -----------------------------------------------------------------------------
SetDefaultScroll:
lda #$08 ; CPU:$FDB4 PRG:3DB4 A2 00
sta PPUSCROLL ; CPU:$FDB6 PRG:3DB6 A0 40
lda #$00 ; CPU:$FDB8 PRG:3DB8 A9 F0
sta PPUSCROLL ; CPU:$FDBA PRG:3DBA 9D 00 07
rts ; CPU:$FDBD PRG:3DBD A9 00
.byte $00,$FF,$FF,$FF ; PRG $3FF6 | CPU $FFF6 ; CPU:$FDBF PRG:3DBF 00 FF FF FF
; Interrupt vectors
.word NmiHandler ; CPU:$FDC3 PRG:3DC3 E8
.word ResetHandler ; CPU:$FDC5 PRG:3DC5 ??
.word ResetHandler ; CPU:$FDC7 PRG:3DC7 E8