Promote Donkey Kong (JU): Pass 3 complete, whole-ROM byte-identical
Pass 3 named the 10 data regions in prg.s, then the project was promoted
out of _wip/ so `make` now proves header + PRG + CHR against the original
ROM instead of only the PRG bank.
Data regions named:
LevelPtrTable $C000-$C03B (60 B) level header data
ObjectPtrTable $C03C-$C043 (8 B) 4 pointer pairs
LevelDataPtrTable $C044-$C79D (1882 B) level data pointers
SpriteInitPtrTable labelled at $C4B0 see residue note
UnreachedCode_D650 $D650-$D696 (71 B) unreached code
UnreachedCode_E144 $E144-$E165 (34 B) unreached code
MusicDataTable $F55B-$FA47 (1261 B) music/sound data
APUDataTable $FAE6-$FB74 (143 B) APU pulse/noise tables
SfxDataTable $FE59-$FFEF (407 B) sound-effect data
VectorTable $FFF6-$FFFF (10 B) padding + NMI/RESET/IRQ
Promotion (per the AGENTS.md checklist):
- git mv "_wip/Donkey Kong (JU)" "Donkey Kong (JU)"
- add copilot/rom.nes -> ../Donkey Kong (JU).nes symlink
- add header.s / chr.s (one-line .incbin of header.bin / chr.bin)
- linker.cfg gains HEADER ($0000/16 B) and CHR ($0000/8 KB)
- Makefile switched from `cmp reconstructed_prg.bin prg.bin` to
`cmp reconstructed.nes rom.nes`
- no _tools path change (this Makefile never referenced _tools/)
and no `make regen` pipeline exists for it
Doc corrections:
- project OVERVIEW.md said Mirroring Vertical; header byte 6 = $00
means Horizontal (the root index was right) — fixed
- root OVERVIEW.md: row 18 now BYTE-IDENTICAL, tier paragraph and
summary table refreshed (they had drifted around the Lunar Pool and
Urban Champion promotions), new per-project detail entry
- counts corrected to 19 top-level / 17 _wip in OVERVIEW.md,
TODO.md and AGENTS.md
Residue recorded rather than guessed:
- Pass 2 is partial: 919 Label_ definitions remain (214 semantic
labels applied); noted in TODO.md so nobody reads the promotion as
full semantic naming
- SpriteInitPtrTable's label sits at $C4B0: the routine at $C807 reads
$C4A7,x/$C4A8,x, but that table starts mid-row and a label there
would split the canonical 16-byte audit-comment line
Verification:
make clean && make -> "Byte-identical ROM verified."
verify_pass1.py -> 19/19 top-level build, Donkey Kong (JU) OK
(6014 instr / 12505 B), all comments canonical
Doc-drift sweep: build tiers, mirroring, and stale status tails
Reconciled the docs against verified reality after the Lunar Pool / Urban
Champion / Donkey Kong (JU) promotions and the 2026-10-19 audit-comment
standardization. No source behaviour changed except the two build fixes below.
Build tier (whole-ROM vs PRG-only)
- AGENTS.md: the 17 `_wip/` projects are real disassemblies at the PRG-build
tier, not "skeletons"; header.s/chr.s/rom.nes are promotion additions;
verify_pass1.py covers the top-level projects.
- Root OVERVIEW.md: `_wip` prose, audit-comment narrative and summary table
refreshed (37.5% figure, SEEDED vs OK wording, re-trace false alarm).
- Promoted projects whose build blocks still claimed `make` emits
`reconstructed_prg.bin` compared to `prg.bin` (Balloon Fight, Baseball,
CIRCUS, Clu Clu Land, Excitebike, NES PowerPad, Pac-Man (USA), Tennis):
now describe the whole-ROM `reconstructed.nes` vs `rom.nes`.
- Lunar Pool / Urban Champion / CIRCUS also had stale `cd "_wip/..."`
build paths and "Promotion" items; retargeted to their top-level folders.
Mirroring (header byte 6 bit 0: 0 = Horizontal, 1 = Vertical)
- Corrected DK Jr. prose "horizontal mirroring (flag 6 = $01)" -> vertical,
and both `_wip/Pac-Man` variant notes "Both use vertical mirroring" ->
horizontal (both are byte-6 = $00).
- Re-audited every project OVERVIEW: 0 rows and 0 prose claims now disagree.
Stale status tails
- Retitled/restatused the `_wip` OVERVIEWs to their real `prg.s` (Golf,
Ice Climber (U), Lode Runner, Millipede, Pac-Man Tengen, Pac-Man (U),
Popeye 0/1, Raid, Raid a2, Hogan's Alley, Mario Bros); Golf's
skeleton-era contents rows and Next Steps corrected.
- Dropped the skeleton-era "## Next Steps (per `PROMPTS.md`)" heading and
the "(from the skeleton)" wording across all project OVERVIEWs.
- Rewrote Lunar Pool / Urban Champion Next Steps (both already Pass 1-3
complete and promoted; their tails still described pending Pass 2 and
promotion); fixed root row 13 (Wild Gunman) and row 20 (Duck Hunt).
Also lands two code fixes carried with this sweep:
- `_wip/Hogan's Alley (JU)`: $E9F1-$E9FD and $EA13-$EA14 reclassified as
data with canonical audit comments (the seeded build had decoded a data
table base as code, breaking the build since 2ae09f7). `make` ->
BYTE-IDENTICAL again; reconstructed_prg.bin/.lbl refreshed.
- `_wip/Pyramid (U)`: `Label_D72E` -> `NMI:` (byte-identical).
Verification:
make (Hogan's Alley, Pyramid) -> BYTE-IDENTICAL, BYTE-IDENTICAL
_tools/verify_pass1.py -> 19/19 build, all canonical,
"No truncated or unfaithful Pass 1"
mirroring audit (rows + prose) -> 0 mismatches
Donkey Kong (JU): complete Pass 2 — all 919 Label_ definitions named
The last non-zero Label_ residue in the repo is now gone. Every one of the
919 address-derived definitions in copilot/prg.s is replaced:
* 319 routine entry points (jsr/jmp targets):
- 102 named from observed behaviour (LoadSpriteInitPointerToZp00 $C807,
CopyVramDataToBuffer $CBDF, CheckSpriteListCollision $D8AD,
UpdateRandomSeed $F4ED, ReadControllers $F50E, UpdateSoundEngine $FA48, ...)
- 217 left as SubC<addr> — honest residue where the body is too
context-dependent to name without guessing (Golf: 108, Mario Bros: 223)
- the 77 already-named entries untouched
* 600 internal branch targets named <Routine>_Block / <Routine>_Block_n in
address order within their owning routine (DK Jr./Balloon Fight convention).
Ownership is control-flow containment, so a loop that physically precedes
its own entry lands correctly (FlushPpuBuffer_Block $F1EC under $F228).
* Two proposal collisions disambiguated by indexing zero-page slot:
UpdateObjectListZp5D/DispatchObjectStateZp5E ($DA16/$DA4C) vs
UpdateObjectListZpAE/DispatchObjectStateZpAF ($E1E9/$E250).
jsr/jmp operands stay numeric (Wild Gunman style); only branch operands are
symbolic. Applied with _tools/pass2.py apply (919 defs + 2,622 refs rewritten,
comments re-aligned); the ROM still rebuilds byte-identically and
verify_pass1.py reports 19/19 canonical with no truncated split.
Docs synced: project OVERVIEW.md gains a Pass 2 Details section, root
OVERVIEW.md rows + conventions, TODO.md section 4 closed. dk_full_map.tsv now
records the complete applied map (its zp rows remain unapplied proposals).
_wip status correction: five false "Pass 2 complete" claims + map audit
The `_wip` tier's "Pass 2 complete" headers counted their draft maps' rows, not
the names actually present in `prg.s`, and described the count of *neutral*
`ZpXX` slots in `locals.inc` as "zero-page semantic aliases". Verified against
the sources and corrected in the root inventory rows, the project OVERVIEWs and
TODO:
project named/total Label_ left drafted map
Pinball (JU) 180 / 681 501 210 rows, 179 applied
Ice Climber (JE) 76 / 973 897 255 rows, 76 applied
Donkey Kong Jr. Math 64 / 1035 971 243 rows, 62 applied
Duck Hunt (JUE) 31 / 472 441 272 rows, 31 applied
Ice Climber (U) 2 / 973 971 none - Pass 2 not started
No `_wip` project is Pass 2 complete. Ice Climber (U) was the worst case: the
2026-10-19 sweep itself restated it "Pass 2 complete" while describing its 971
`Label_` definitions in the same paragraph - a copy-paste from (JE); (U) has no
map file at all.
Drafted maps audited row by row against the committed split: they are not
applicable. 100/243 (DK Jr. Math), 96/255 (Ice Climber (JE)) and 17/210
(Pinball) rows point at addresses that are not instruction boundaries - they
were built against an older code/data split - while most of the rest are
unlabelled boundaries that no operand references, or (Duck Hunt) competing
candidate names for one label (`Label_C2BF` alone carries 205). Rows that are
both insertable and corroborated by control flow: 0 in every map. Recorded as
stale and kept for provenance; Pass 2 here needs a fresh map derived from the
committed split.
Also corrected while verifying:
- Mario Bros entry counts (docs said 252 / 90 + 165 / 477 sites / 156 neutral
slots; the file holds 262 distinct `jsr`/`jmp` targets = 39 semantic + 223
`SubC<addr>`, 478 sites, 151 slots).
- root `_wip` prose line/label ranges (4,482-17,180 lines, 192-971 `Label_`,
11,126 total) and the Ice Climber code figure (74.6% / 6,112 instr, not
74.7% / 6,113).
- TODO §4 re-scoped to the promoted tier, with the `_wip` residue table added.
Verification: `make` across all 17 `_wip` projects -> BYTE-IDENTICAL (17/17);
`_tools/verify_pass1.py` -> 19/19 build, all canonical, "No truncated or
unfaithful Pass 1 found". No source bytes changed.
Balloon Fight (JU): apply locals.inc/symbols.inc names to prg.s (Pass 3)
Substitutes symbol names for 922 numeric operands: 125 hardware registers
(symbols.inc) and 797 of 813 zero-page/RAM operands (locals.inc). The 15
multi-alias addresses were resolved per routine; 16 operands stay numeric
because $13 is used there as a plain high-byte scratch beside Temp12 and
none of its three aliases fits.
- _tools/apply_symbols.py: the substitution tool (dry run by default;
--sites supplies per-routine choices for multi-alias addresses, --report
lists the residue). Only the operand token is rewritten, so the
`; CPU:$.... PRG:.... XX XX` audit comments survive byte for byte.
- prg.s: operand tokens only. make prints "Byte-identical ROM verified."
- OVERVIEW.md (project): instruction quotes now match prg.s, new
alias-reuse table, and section 10 rewritten from the stale "497 Label_"
prose to the real naming state and the 16-site residue.
- OVERVIEW.md (root), TODO.md, AGENTS.md: status, counts, tool list.
verify_pass1.py: 19/19 OK, all audit comments canonical.
Bomberman (U): apply locals.inc/symbols.inc names to prg.s (Pass 3)
Substitutes 362 zero-page operands in copilot/prg.s with the names already
declared in copilot/locals.inc: 354 from single-name addresses and 8 from the
two multi-alias addresses, resolved per site:
$E0/$E1 IndirectPtrLo/Hi in the RAM-clear loop
(InitializeSystemAndRunMainLoop -> Main_WriteSoundDispatchIndex_C317,
which writes $00 across $0100-$07FF via (ptr),y),
SoundDelay0 (the base of the per-channel delay table, indexed by X)
in the sound engine;
No symbols.inc substitution was needed: copilot/prg.s contains no numeric
hardware operands ($2000-$4017) at all. All 362 operands were already written
with two hex digits, so no ca65 `a:` prefix was required.
make -> Byte-identical ROM verified. Operand token only; mnemonics, spacing and
the trailing `; CPU:$.... PRG:.... XX XX` audit comments are untouched.
Remaining numeric operands (758) address bytes that no .inc file names:
505 zero-page (133 addresses), 171 RAM $0100-$07FF (46 addresses) and 82
table reads in $8000+ (54 addresses).
Bomberman (U): substitute 24 in-file table labels at ROM operand sites
Uses the new `--labels` option of `apply_symbols.py` with the
ld65 `-Ln` output (`reconstructed.lbl`). Only labels that prg.s
actually defines and that live in the PRG (+) are considered,
so CHR/header segment labels cannot leak in.
24 numeric operands (`lda ,x`, `adc ,y`, etc.) now read
`lda SystemPaletteData,x`, `adc GameplayObjectClassTable,y`, etc.
All 24 point at exact label addresses; the remaining 58 ROM-space
numeric operands point at interior bytes or unlabelled tables and
stay numeric.
make -> Byte-identical ROM verified.
Bomberman (U): update docs for Pass 3 symbol application
- Project OVERVIEW.md: corrected source file from main.s to prg.s/header.s/chr.s;
output name from reconstructed_bomberman.nes to reconstructed.nes;
rewritten §10 Zero-Page/RAM Symbols table to match locals.inc (with aliases
and unnamed residue documented);
fixed §4 step 1/4 to use IndirectPtrLo/Hi and SoundDelay0 names;
fixed §11 InesHeader location (now header.s);
added §2 Pass 3 summary table;
added §13 notes on legacy main.s and Main_WriteSoundDispatchIndex_C317 misnomer.
- Root OVERVIEW.md §3: updated source line count (7,553), file list, and added
Pass 3 summary.
Both builds verified byte-identical.
Pass 3 symbol application to all 19 top-level projects (2026-10-19)
Ran _tools/apply_symbols.py --write on all 19 promoted projects to substitute
symbolic names from symbols.inc (hardware registers) and locals.inc (zero-page
RAM aliases, forward references) into prg.s operands. The tool preserves the
canonical audit comments (; CPU:$XXXX PRG:XXXX AA BB) and preserves byte
identity — all projects still rebuild byte-identical to their original ROMs.
Per-project operand substitutions:
Baseball (UE) 121 (85 single + 36 hardware)
Tennis (JU) 18 (18 single)
Pac-Man (USA) (Namco) 524 (524 single; 727 multi-alias residues)
CIRCUS 118 (38 single + 80 hardware; 23 multi-alias residues)
Wild Gunman (U) 76 (11 single + 65 hardware)
Joypad Test Cartridge (U) 47 (47 hardware)
NES PowerPad Test Card (U) 89 (89 hardware)
MUSCLE (U) 220 (91 single + 129 hardware)
Lunar Pool (U) 45 (18 single + 27 hardware)
Donkey Kong (JU) 75 (17 single + 58 hardware)
Urban Champion (JU) 70 (4 single + 66 hardware)
Already had symbols applied: Balloon Fight, Bomberman, Burger Time,
Clu Clu Land, Defender 2, Donkey Kong 3, Donkey Kong Jr.
Skipped: Excitebike (JU) — inline prg.s definitions conflict with locals.inc
values and source operands don't match ROM byte encodings; automatic
substitution breaks byte identity.
Documentation updated:
OVERVIEW.md — added Pass 3 symbol notes to all 19 project entries,
added Urban Champion as section #36
TODO.md — current state now reflects complete symbol application across
the promoted tier
Verification: python3 _tools/verify_pass1.py reports all 19 projects OK/SEEDED,
all canonical comments, no truncated or unfaithful Pass 1.
This commit is contained in:
1 parent
53ad50ffb6
commit
71ada15de0
79 files changed
+9455
-7687
No files matched your search
+118
-118
@@ -33,7 +33,7 @@ Reset:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
WaitForFirstPpuWarmup:
|
||||
lda $2002 ; CPU:$C002 PRG:0002 AD 02 20
|
||||
lda PPUSTATUS ; CPU:$C002 PRG:0002 AD 02 20
|
||||
bpl WaitForFirstPpuWarmup ; CPU:$C005 PRG:0005 10 FB
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: WaitForSecondPpuWarmup
|
||||
@@ -45,7 +45,7 @@ WaitForFirstPpuWarmup:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
WaitForSecondPpuWarmup:
|
||||
lda $2002 ; CPU:$C007 PRG:0007 AD 02 20
|
||||
lda PPUSTATUS ; CPU:$C007 PRG:0007 AD 02 20
|
||||
bpl WaitForSecondPpuWarmup ; CPU:$C00A PRG:000A 10 FB
|
||||
jsr $C0B8 ; CPU:$C00C PRG:000C 20 B8 C0
|
||||
ldx #$FF ; CPU:$C00F PRG:000F A2 FF
|
||||
@@ -119,7 +119,7 @@ ClearUpperRamPages:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ClearUpperRamPageLoop:
|
||||
sta ($E0),y ; CPU:$C037 PRG:0037 91 E0
|
||||
sta (IndirectPointerLo),y ; CPU:$C037 PRG:0037 91 E0
|
||||
dey ; CPU:$C039 PRG:0039 88
|
||||
bne ClearUpperRamPageLoop ; CPU:$C03A PRG:003A D0 FB
|
||||
dec IndirectPointerHi ; CPU:$C03C PRG:003C C6 E1
|
||||
@@ -181,13 +181,13 @@ NmiHandler:
|
||||
pha ; CPU:$C05C PRG:005C 48
|
||||
tya ; CPU:$C05D PRG:005D 98
|
||||
pha ; CPU:$C05E PRG:005E 48
|
||||
lda $2002 ; CPU:$C05F PRG:005F AD 02 20
|
||||
lda PPUSTATUS ; CPU:$C05F PRG:005F AD 02 20
|
||||
lda Zp04 ; CPU:$C062 PRG:0062 A5 04
|
||||
bne ResetPpuScroll ; CPU:$C064 PRG:0064 D0 23
|
||||
lda #$00 ; CPU:$C066 PRG:0066 A9 00
|
||||
sta $2003 ; CPU:$C068 PRG:0068 8D 03 20
|
||||
sta OAMADDR ; CPU:$C068 PRG:0068 8D 03 20
|
||||
lda #$02 ; CPU:$C06B PRG:006B A9 02
|
||||
sta $4014 ; CPU:$C06D PRG:006D 8D 14 40
|
||||
sta OAMDMA ; CPU:$C06D PRG:006D 8D 14 40
|
||||
inc Zp04 ; CPU:$C070 PRG:0070 E6 04
|
||||
jsr $C0B8 ; CPU:$C072 PRG:0072 20 B8 C0
|
||||
jsr $C1B7 ; CPU:$C075 PRG:0075 20 B7 C1
|
||||
@@ -217,7 +217,7 @@ ApplyPpuMaskShadow:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
FinishNmiPpuUpdates:
|
||||
sta $2001 ; CPU:$C084 PRG:0084 8D 01 20
|
||||
sta PPUMASK ; CPU:$C084 PRG:0084 8D 01 20
|
||||
dec Zp04 ; CPU:$C087 PRG:0087 C6 04
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ResetPpuScroll
|
||||
@@ -229,10 +229,10 @@ FinishNmiPpuUpdates:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ResetPpuScroll:
|
||||
lda $2002 ; CPU:$C089 PRG:0089 AD 02 20
|
||||
lda PPUSTATUS ; CPU:$C089 PRG:0089 AD 02 20
|
||||
lda #$00 ; CPU:$C08C PRG:008C A9 00
|
||||
sta $2005 ; CPU:$C08E PRG:008E 8D 05 20
|
||||
sta $2005 ; CPU:$C091 PRG:0091 8D 05 20
|
||||
sta PPUSCROLL ; CPU:$C08E PRG:008E 8D 05 20
|
||||
sta PPUSCROLL ; CPU:$C091 PRG:0091 8D 05 20
|
||||
lda #$7E ; CPU:$C094 PRG:0094 A9 7E
|
||||
jsr $C0C5 ; CPU:$C096 PRG:0096 20 C5 C0
|
||||
jsr $F87C ; CPU:$C099 PRG:0099 20 7C F8
|
||||
@@ -282,9 +282,9 @@ RestoreNmiRegisters:
|
||||
; -----------------------------------------------------------------------------
|
||||
InitializePpuControl:
|
||||
lda #$08 ; CPU:$C0B8 PRG:00B8 A9 08
|
||||
sta $2000 ; CPU:$C0BA PRG:00BA 8D 00 20
|
||||
sta PPUCTRL ; CPU:$C0BA PRG:00BA 8D 00 20
|
||||
lda #$00 ; CPU:$C0BD PRG:00BD A9 00
|
||||
sta $2001 ; CPU:$C0BF PRG:00BF 8D 01 20
|
||||
sta PPUMASK ; CPU:$C0BF PRG:00BF 8D 01 20
|
||||
rts ; CPU:$C0C2 PRG:00C2 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: WritePpuCtrlShadowMasked
|
||||
@@ -308,7 +308,7 @@ WritePpuCtrlShadowMasked:
|
||||
; -----------------------------------------------------------------------------
|
||||
WriteMaskedPpuControl:
|
||||
and PpuCtrlShadow ; CPU:$C0C5 PRG:00C5 25 53
|
||||
sta $2000 ; CPU:$C0C7 PRG:00C7 8D 00 20
|
||||
sta PPUCTRL ; CPU:$C0C7 PRG:00C7 8D 00 20
|
||||
rts ; CPU:$C0CA PRG:00CA 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: SetVisiblePpuMask
|
||||
@@ -423,7 +423,7 @@ SecondaryStateEligibilityTable:
|
||||
DispatchStateHandler:
|
||||
jsr $C4CD ; CPU:$C1D5 PRG:01D5 20 CD C4
|
||||
nop ; CPU:$C1D8 PRG:01D8 EA
|
||||
cmp ($12,x) ; CPU:$C1D9 PRG:01D9 C1 12
|
||||
cmp (Zp12,x) ; CPU:$C1D9 PRG:01D9 C1 12
|
||||
|
||||
SecondaryStateHandlerPointerTable:
|
||||
.byte $C2, $3A, $C2, $5D, $C2, $7D, $C2, $F5, $C2, $03, $C3, $60, $C3, $8B, $C3 ; CPU:$C1DB PRG:01DB C2 3A C2 5D C2 7D C2 F5 C2 03 C3 60 C3 8B C3
|
||||
@@ -999,13 +999,13 @@ InitializeApuAndPpu:
|
||||
; -----------------------------------------------------------------------------
|
||||
InitializeApuAndPpu_LoadAndContinue_C3C1:
|
||||
lda #$1F ; CPU:$C3C1 PRG:03C1 A9 1F
|
||||
sta $4015 ; CPU:$C3C3 PRG:03C3 8D 15 40
|
||||
sta APUSTATUS ; CPU:$C3C3 PRG:03C3 8D 15 40
|
||||
lda #$C0 ; CPU:$C3C6 PRG:03C6 A9 C0
|
||||
sta $4017 ; CPU:$C3C8 PRG:03C8 8D 17 40
|
||||
sta JOY2 ; CPU:$C3C8 PRG:03C8 8D 17 40
|
||||
jsr $C0CB ; CPU:$C3CB PRG:03CB 20 CB C0
|
||||
lda #$88 ; CPU:$C3CE PRG:03CE A9 88
|
||||
sta PpuCtrlShadow ; CPU:$C3D0 PRG:03D0 85 53
|
||||
sta $2000 ; CPU:$C3D2 PRG:03D2 8D 00 20
|
||||
sta PPUCTRL ; CPU:$C3D2 PRG:03D2 8D 00 20
|
||||
rts ; CPU:$C3D5 PRG:03D5 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitializeNametablePages
|
||||
@@ -1084,7 +1084,7 @@ ClearPpuPage:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ClearPpuPage_OnNonzero_C3FA:
|
||||
sta $2007 ; CPU:$C3FA PRG:03FA 8D 07 20
|
||||
sta PPUDATA ; CPU:$C3FA PRG:03FA 8D 07 20
|
||||
dec TransferByteCount ; CPU:$C3FD PRG:03FD C6 E2
|
||||
bne ClearPpuPage_OnNonzero_C3FA ; CPU:$C3FF PRG:03FF D0 F9
|
||||
rts ; CPU:$C401 PRG:0401 60
|
||||
@@ -1099,9 +1099,9 @@ ClearPpuPage_OnNonzero_C3FA:
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers:
|
||||
ldx #$01 ; CPU:$C402 PRG:0402 A2 01
|
||||
stx $4016 ; CPU:$C404 PRG:0404 8E 16 40
|
||||
stx JOY1 ; CPU:$C404 PRG:0404 8E 16 40
|
||||
dex ; CPU:$C407 PRG:0407 CA
|
||||
stx $4016 ; CPU:$C408 PRG:0408 8E 16 40
|
||||
stx JOY1 ; CPU:$C408 PRG:0408 8E 16 40
|
||||
ldy #$08 ; CPU:$C40B PRG:040B A0 08
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ReadControllers_OnNonzero_C40D
|
||||
@@ -1113,13 +1113,13 @@ ReadControllers:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers_OnNonzero_C40D:
|
||||
lda $4016 ; CPU:$C40D PRG:040D AD 16 40
|
||||
lda JOY1 ; CPU:$C40D PRG:040D AD 16 40
|
||||
sta ControllerReadScratch ; CPU:$C410 PRG:0410 85 E7
|
||||
lsr a ; CPU:$C412 PRG:0412 4A
|
||||
ora ControllerReadScratch ; CPU:$C413 PRG:0413 05 E7
|
||||
lsr a ; CPU:$C415 PRG:0415 4A
|
||||
rol Controller1Shift ; CPU:$C416 PRG:0416 26 E4
|
||||
lda $4017 ; CPU:$C418 PRG:0418 AD 17 40
|
||||
lda JOY2 ; CPU:$C418 PRG:0418 AD 17 40
|
||||
sta ControllerReadScratch ; CPU:$C41B PRG:041B 85 E7
|
||||
lsr a ; CPU:$C41D PRG:041D 4A
|
||||
ora ControllerReadScratch ; CPU:$C41E PRG:041E 05 E7
|
||||
@@ -1315,7 +1315,7 @@ ReadControllers_CallNext_C4AA:
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers_OnNonzero_C4AF:
|
||||
lda ($E4),y ; CPU:$C4AF PRG:04AF B1 E4
|
||||
sta $2007 ; CPU:$C4B1 PRG:04B1 8D 07 20
|
||||
sta PPUDATA ; CPU:$C4B1 PRG:04B1 8D 07 20
|
||||
iny ; CPU:$C4B4 PRG:04B4 C8
|
||||
dec TransferByteCount ; CPU:$C4B5 PRG:04B5 C6 E2
|
||||
bne ReadControllers_OnNonzero_C4AF ; CPU:$C4B7 PRG:04B7 D0 F6
|
||||
@@ -1330,11 +1330,11 @@ ReadControllers_OnNonzero_C4AF:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers_LoadIndexAndContinue_C4BA:
|
||||
ldx $2002 ; CPU:$C4BA PRG:04BA AE 02 20
|
||||
ldx PPUSTATUS ; CPU:$C4BA PRG:04BA AE 02 20
|
||||
ldx IndirectPointerHi ; CPU:$C4BD PRG:04BD A6 E1
|
||||
stx $2006 ; CPU:$C4BF PRG:04BF 8E 06 20
|
||||
stx PPUADDR ; CPU:$C4BF PRG:04BF 8E 06 20
|
||||
ldx IndirectPointerLo ; CPU:$C4C2 PRG:04C2 A6 E0
|
||||
stx $2006 ; CPU:$C4C4 PRG:04C4 8E 06 20
|
||||
stx PPUADDR ; CPU:$C4C4 PRG:04C4 8E 06 20
|
||||
rts ; CPU:$C4C7 PRG:04C7 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ReadControllers_LoadAndContinue_C4C8
|
||||
@@ -1366,13 +1366,13 @@ ReadControllers_StoreAndContinue_C4CD:
|
||||
sta IndirectPointerLo ; CPU:$C4D1 PRG:04D1 85 E0
|
||||
pla ; CPU:$C4D3 PRG:04D3 68
|
||||
sta IndirectPointerHi ; CPU:$C4D4 PRG:04D4 85 E1
|
||||
lda ($E0),y ; CPU:$C4D6 PRG:04D6 B1 E0
|
||||
lda (IndirectPointerLo),y ; CPU:$C4D6 PRG:04D6 B1 E0
|
||||
tax ; CPU:$C4D8 PRG:04D8 AA
|
||||
iny ; CPU:$C4D9 PRG:04D9 C8
|
||||
lda ($E0),y ; CPU:$C4DA PRG:04DA B1 E0
|
||||
lda (IndirectPointerLo),y ; CPU:$C4DA PRG:04DA B1 E0
|
||||
sta IndirectPointerHi ; CPU:$C4DC PRG:04DC 85 E1
|
||||
stx IndirectPointerLo ; CPU:$C4DE PRG:04DE 86 E0
|
||||
jmp ($00E0) ; CPU:$C4E0 PRG:04E0 6C E0 00
|
||||
jmp (IndirectPointerLo) ; CPU:$C4E0 PRG:04E0 6C E0 00
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ReadControllers_LoadIndexAndContinue_C4E3
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -1435,10 +1435,10 @@ ReadControllers_StoreAndContinue_C505:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers_OnEqualFE_C509:
|
||||
lda ($E2),y ; CPU:$C509 PRG:0509 B1 E2
|
||||
lda (TransferByteCount),y ; CPU:$C509 PRG:0509 B1 E2
|
||||
sta IndirectPointerLo ; CPU:$C50B PRG:050B 85 E0
|
||||
iny ; CPU:$C50D PRG:050D C8
|
||||
lda ($E2),y ; CPU:$C50E PRG:050E B1 E2
|
||||
lda (TransferByteCount),y ; CPU:$C50E PRG:050E B1 E2
|
||||
sta IndirectPointerHi ; CPU:$C510 PRG:0510 85 E1
|
||||
iny ; CPU:$C512 PRG:0512 C8
|
||||
jsr $C4BA ; CPU:$C513 PRG:0513 20 BA C4
|
||||
@@ -1452,7 +1452,7 @@ ReadControllers_OnEqualFE_C509:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers_OnZero_C516:
|
||||
lda ($E2),y ; CPU:$C516 PRG:0516 B1 E2
|
||||
lda (TransferByteCount),y ; CPU:$C516 PRG:0516 B1 E2
|
||||
iny ; CPU:$C518 PRG:0518 C8
|
||||
cmp #$FD ; CPU:$C519 PRG:0519 C9 FD
|
||||
bcc ReadControllers_OnBelowFD_C527 ; CPU:$C51B PRG:051B 90 0A
|
||||
@@ -1472,7 +1472,7 @@ ReadControllers_OnZero_C516:
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers_OnBelowFD_C527:
|
||||
and Controller1Shift ; CPU:$C527 PRG:0527 25 E4
|
||||
sta $2007 ; CPU:$C529 PRG:0529 8D 07 20
|
||||
sta PPUDATA ; CPU:$C529 PRG:0529 8D 07 20
|
||||
jmp $C516 ; CPU:$C52C PRG:052C 4C 16 C5
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ReadControllers_OnEqualFF_C52F
|
||||
@@ -1495,10 +1495,10 @@ ReadControllers_OnEqualFF_C52F:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers_OnEqualFD_C530:
|
||||
lda ($E2),y ; CPU:$C530 PRG:0530 B1 E2
|
||||
lda (TransferByteCount),y ; CPU:$C530 PRG:0530 B1 E2
|
||||
tax ; CPU:$C532 PRG:0532 AA
|
||||
iny ; CPU:$C533 PRG:0533 C8
|
||||
lda ($E2),y ; CPU:$C534 PRG:0534 B1 E2
|
||||
lda (TransferByteCount),y ; CPU:$C534 PRG:0534 B1 E2
|
||||
iny ; CPU:$C536 PRG:0536 C8
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ReadControllers_OnNonzero_C537
|
||||
@@ -1510,7 +1510,7 @@ ReadControllers_OnEqualFD_C530:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers_OnNonzero_C537:
|
||||
sta $2007 ; CPU:$C537 PRG:0537 8D 07 20
|
||||
sta PPUDATA ; CPU:$C537 PRG:0537 8D 07 20
|
||||
dex ; CPU:$C53A PRG:053A CA
|
||||
bne ReadControllers_OnNonzero_C537 ; CPU:$C53B PRG:053B D0 FA
|
||||
beq ReadControllers_OnZero_C516 ; CPU:$C53D PRG:053D F0 D7
|
||||
@@ -1835,7 +1835,7 @@ ReadControllers_CallNext_C63A:
|
||||
ReadControllers_StoreAndContinue_C643:
|
||||
and #$0F ; CPU:$C643 PRG:0643 29 0F
|
||||
ora #$30 ; CPU:$C645 PRG:0645 09 30
|
||||
sta $2007 ; CPU:$C647 PRG:0647 8D 07 20
|
||||
sta PPUDATA ; CPU:$C647 PRG:0647 8D 07 20
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ReadControllers_OnCarrySet_C64A
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -1914,7 +1914,7 @@ ReadControllers_OnNonnegative_C68D:
|
||||
; -----------------------------------------------------------------------------
|
||||
ReadControllers_OnNonnegative_C693:
|
||||
jsr $C4BA ; CPU:$C693 PRG:0693 20 BA C4
|
||||
sty $2007 ; CPU:$C696 PRG:0696 8C 07 20
|
||||
sty PPUDATA ; CPU:$C696 PRG:0696 8C 07 20
|
||||
ldx #$E0 ; CPU:$C699 PRG:0699 A2 E0
|
||||
lda #$01 ; CPU:$C69B PRG:069B A9 01
|
||||
eor #$FF ; CPU:$C69D PRG:069D 49 FF
|
||||
@@ -1954,7 +1954,7 @@ ReadControllers_CallNext_C6AD:
|
||||
ldx #$E0 ; CPU:$C6B8 PRG:06B8 A2 E0
|
||||
jsr $C53F ; CPU:$C6BA PRG:06BA 20 3F C5
|
||||
jsr $C4BA ; CPU:$C6BD PRG:06BD 20 BA C4
|
||||
sty $2007 ; CPU:$C6C0 PRG:06C0 8C 07 20
|
||||
sty PPUDATA ; CPU:$C6C0 PRG:06C0 8C 07 20
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ReadControllers_OnNonnegative_C6C3
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -2398,13 +2398,13 @@ ObjectSlotOffsetTable:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
SetPaletteRamAddress:
|
||||
lda $2002 ; CPU:$CA11 PRG:0A11 AD 02 20
|
||||
lda PPUSTATUS ; CPU:$CA11 PRG:0A11 AD 02 20
|
||||
lda #$3F ; CPU:$CA14 PRG:0A14 A9 3F
|
||||
sta $2006 ; CPU:$CA16 PRG:0A16 8D 06 20
|
||||
sta PPUADDR ; CPU:$CA16 PRG:0A16 8D 06 20
|
||||
lda #$00 ; CPU:$CA19 PRG:0A19 A9 00
|
||||
sta $2006 ; CPU:$CA1B PRG:0A1B 8D 06 20
|
||||
sta $2006 ; CPU:$CA1E PRG:0A1E 8D 06 20
|
||||
sta $2006 ; CPU:$CA21 PRG:0A21 8D 06 20
|
||||
sta PPUADDR ; CPU:$CA1B PRG:0A1B 8D 06 20
|
||||
sta PPUADDR ; CPU:$CA1E PRG:0A1E 8D 06 20
|
||||
sta PPUADDR ; CPU:$CA21 PRG:0A21 8D 06 20
|
||||
rts ; CPU:$CA24 PRG:0A24 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: SetPaletteRamAddress_LoadAndContinue_CA25
|
||||
@@ -2512,7 +2512,7 @@ SetPaletteRamAddress_LoadAndContinue_CA4B:
|
||||
; -----------------------------------------------------------------------------
|
||||
SetPaletteRamAddress_StoreAndContinue_CA4F:
|
||||
sta PpuCtrlShadow ; CPU:$CA4F PRG:0A4F 85 53
|
||||
sta $2000 ; CPU:$CA51 PRG:0A51 8D 00 20
|
||||
sta PPUCTRL ; CPU:$CA51 PRG:0A51 8D 00 20
|
||||
rts ; CPU:$CA54 PRG:0A54 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: SetPaletteRamAddress_LoadAndContinue_CA55
|
||||
@@ -3086,11 +3086,11 @@ SetupScreenPaletteTransfer_LoadIndexAndContinue_CEE3:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
SetupScreenPaletteTransfer_LoadAndContinue_CEE5:
|
||||
lda $2002 ; CPU:$CEE5 PRG:0EE5 AD 02 20
|
||||
lda PPUSTATUS ; CPU:$CEE5 PRG:0EE5 AD 02 20
|
||||
lda Zp78 ; CPU:$CEE8 PRG:0EE8 A5 78
|
||||
sta $2006 ; CPU:$CEEA PRG:0EEA 8D 06 20
|
||||
sta PPUADDR ; CPU:$CEEA PRG:0EEA 8D 06 20
|
||||
lda Zp77 ; CPU:$CEED PRG:0EED A5 77
|
||||
sta $2006 ; CPU:$CEEF PRG:0EEF 8D 06 20
|
||||
sta PPUADDR ; CPU:$CEEF PRG:0EEF 8D 06 20
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: SetupScreenPaletteTransfer_LoadAndContinue_CEF2
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -3119,7 +3119,7 @@ SetupScreenPaletteTransfer_LoadAndContinue_CEF2:
|
||||
SetupScreenPaletteTransfer_OnNonzero_CEFA:
|
||||
inx ; CPU:$CEFA PRG:0EFA E8
|
||||
beq SetupScreenPaletteTransfer_OnZero_CF03 ; CPU:$CEFB PRG:0EFB F0 06
|
||||
sta $2007 ; CPU:$CEFD PRG:0EFD 8D 07 20
|
||||
sta PPUDATA ; CPU:$CEFD PRG:0EFD 8D 07 20
|
||||
jmp $CEF2 ; CPU:$CF00 PRG:0F00 4C F2 CE
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: SetupScreenPaletteTransfer_OnZero_CF03
|
||||
@@ -3585,14 +3585,14 @@ ProcessQueuedVramUpdates_OnEqual01_D291:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ProcessQueuedVramUpdates_OnNonzero_D295:
|
||||
sta $2000 ; CPU:$D295 PRG:1295 8D 00 20
|
||||
lda $2002 ; CPU:$D298 PRG:1298 AD 02 20
|
||||
sta PPUCTRL ; CPU:$D295 PRG:1295 8D 00 20
|
||||
lda PPUSTATUS ; CPU:$D298 PRG:1298 AD 02 20
|
||||
inx ; CPU:$D29B PRG:129B E8
|
||||
lda $0700,x ; CPU:$D29C PRG:129C BD 00 07
|
||||
sta $2006 ; CPU:$D29F PRG:129F 8D 06 20
|
||||
sta PPUADDR ; CPU:$D29F PRG:129F 8D 06 20
|
||||
inx ; CPU:$D2A2 PRG:12A2 E8
|
||||
lda $0700,x ; CPU:$D2A3 PRG:12A3 BD 00 07
|
||||
sta $2006 ; CPU:$D2A6 PRG:12A6 8D 06 20
|
||||
sta PPUADDR ; CPU:$D2A6 PRG:12A6 8D 06 20
|
||||
inx ; CPU:$D2A9 PRG:12A9 E8
|
||||
lda $0700,x ; CPU:$D2AA PRG:12AA BD 00 07
|
||||
tay ; CPU:$D2AD PRG:12AD A8
|
||||
@@ -3612,7 +3612,7 @@ ProcessQueuedVramUpdates_OnNonzero_D295:
|
||||
ProcessQueuedVramUpdates_OnNonzero_D2B6:
|
||||
inx ; CPU:$D2B6 PRG:12B6 E8
|
||||
lda $0700,x ; CPU:$D2B7 PRG:12B7 BD 00 07
|
||||
sta $2007 ; CPU:$D2BA PRG:12BA 8D 07 20
|
||||
sta PPUDATA ; CPU:$D2BA PRG:12BA 8D 07 20
|
||||
dey ; CPU:$D2BD PRG:12BD 88
|
||||
bne ProcessQueuedVramUpdates_OnNonzero_D2B6 ; CPU:$D2BE PRG:12BE D0 F6
|
||||
beq ProcessQueuedVramUpdates_OnZero_D2C9 ; CPU:$D2C0 PRG:12C0 F0 07
|
||||
@@ -3627,7 +3627,7 @@ ProcessQueuedVramUpdates_OnNonzero_D2B6:
|
||||
; -----------------------------------------------------------------------------
|
||||
ProcessQueuedVramUpdates_JoinBranchPaths_D2C2:
|
||||
inx ; CPU:$D2C2 PRG:12C2 E8
|
||||
sta $2007 ; CPU:$D2C3 PRG:12C3 8D 07 20
|
||||
sta PPUDATA ; CPU:$D2C3 PRG:12C3 8D 07 20
|
||||
dey ; CPU:$D2C6 PRG:12C6 88
|
||||
bne ProcessQueuedVramUpdates_JoinBranchPaths_D2C2 ; CPU:$D2C7 PRG:12C7 D0 F9
|
||||
; -----------------------------------------------------------------------------
|
||||
@@ -3657,7 +3657,7 @@ ProcessQueuedVramUpdates_OnZero_D2CD:
|
||||
sta $0700 ; CPU:$D2D1 PRG:12D1 8D 00 07
|
||||
lda PpuCtrlShadow ; CPU:$D2D4 PRG:12D4 A5 53
|
||||
and #$7B ; CPU:$D2D6 PRG:12D6 29 7B
|
||||
sta $2000 ; CPU:$D2D8 PRG:12D8 8D 00 20
|
||||
sta PPUCTRL ; CPU:$D2D8 PRG:12D8 8D 00 20
|
||||
clc ; CPU:$D2DB PRG:12DB 18
|
||||
rts ; CPU:$D2DC PRG:12DC 60
|
||||
|
||||
@@ -3676,7 +3676,7 @@ VramDescriptorPointerTable:
|
||||
; -----------------------------------------------------------------------------
|
||||
ProcessQueuedVramUpdates_LoadAndContinue_D2FD:
|
||||
lda #$00 ; CPU:$D2FD PRG:12FD A9 00
|
||||
sta $2001 ; CPU:$D2FF PRG:12FF 8D 01 20
|
||||
sta PPUMASK ; CPU:$D2FF PRG:12FF 8D 01 20
|
||||
lda Zp64 ; CPU:$D302 PRG:1302 A5 64
|
||||
asl a ; CPU:$D304 PRG:1304 0A
|
||||
asl a ; CPU:$D305 PRG:1305 0A
|
||||
@@ -3687,8 +3687,8 @@ ProcessQueuedVramUpdates_LoadAndContinue_D2FD:
|
||||
jsr $CEB7 ; CPU:$D30F PRG:130F 20 B7 CE
|
||||
jsr $D575 ; CPU:$D312 PRG:1312 20 75 D5
|
||||
lda #$00 ; CPU:$D315 PRG:1315 A9 00
|
||||
sta $2000 ; CPU:$D317 PRG:1317 8D 00 20
|
||||
lda $2002 ; CPU:$D31A PRG:131A AD 02 20
|
||||
sta PPUCTRL ; CPU:$D317 PRG:1317 8D 00 20
|
||||
lda PPUSTATUS ; CPU:$D31A PRG:131A AD 02 20
|
||||
rts ; CPU:$D31D PRG:131D 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ConfigurePpuForScreenTransfer
|
||||
@@ -3706,7 +3706,7 @@ ConfigurePpuForScreenTransfer:
|
||||
and PpuCtrlShadow ; CPU:$D324 PRG:1324 25 53
|
||||
ora #$08 ; CPU:$D326 PRG:1326 09 08
|
||||
sta PpuCtrlShadow ; CPU:$D328 PRG:1328 85 53
|
||||
sta $2000 ; CPU:$D32A PRG:132A 8D 00 20
|
||||
sta PPUCTRL ; CPU:$D32A PRG:132A 8D 00 20
|
||||
rts ; CPU:$D32D PRG:132D 60
|
||||
|
||||
VramDescriptorDispatchTable:
|
||||
@@ -3761,13 +3761,13 @@ ExecuteVramDescriptorStream_OnNonzero_D35F:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ExecuteVramDescriptorStream_OnNonzero_D365:
|
||||
lda $2002 ; CPU:$D365 PRG:1365 AD 02 20
|
||||
lda PPUSTATUS ; CPU:$D365 PRG:1365 AD 02 20
|
||||
lda ($7C),y ; CPU:$D368 PRG:1368 B1 7C
|
||||
tax ; CPU:$D36A PRG:136A AA
|
||||
iny ; CPU:$D36B PRG:136B C8
|
||||
lda ($7C),y ; CPU:$D36C PRG:136C B1 7C
|
||||
sta $2006 ; CPU:$D36E PRG:136E 8D 06 20
|
||||
stx $2006 ; CPU:$D371 PRG:1371 8E 06 20
|
||||
sta PPUADDR ; CPU:$D36E PRG:136E 8D 06 20
|
||||
stx PPUADDR ; CPU:$D371 PRG:1371 8E 06 20
|
||||
iny ; CPU:$D374 PRG:1374 C8
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ExecuteVramDescriptorStream_OnNegative_D375
|
||||
@@ -3826,7 +3826,7 @@ WriteVramDescriptorPayload_OnNonzero_D38B:
|
||||
beq ExecuteVramDescriptorStream_OnEqual5A_D388 ; CPU:$D38F PRG:138F F0 F7
|
||||
cmp #$57 ; CPU:$D391 PRG:1391 C9 57
|
||||
beq WriteVramDescriptorPayload_OnEqual57_D39B ; CPU:$D393 PRG:1393 F0 06
|
||||
sta $2007 ; CPU:$D395 PRG:1395 8D 07 20
|
||||
sta PPUDATA ; CPU:$D395 PRG:1395 8D 07 20
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: WriteVramDescriptorPayload_OnZero_D398
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -3864,7 +3864,7 @@ WriteVramDescriptorPayload_OnEqual57_D39B:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
WriteVramDescriptorPayload_OnNonzero_D3A2:
|
||||
sta $2007 ; CPU:$D3A2 PRG:13A2 8D 07 20
|
||||
sta PPUDATA ; CPU:$D3A2 PRG:13A2 8D 07 20
|
||||
dex ; CPU:$D3A5 PRG:13A5 CA
|
||||
bne WriteVramDescriptorPayload_OnNonzero_D3A2 ; CPU:$D3A6 PRG:13A6 D0 FA
|
||||
beq WriteVramDescriptorPayload_OnZero_D398 ; CPU:$D3A8 PRG:13A8 F0 EE
|
||||
@@ -3916,11 +3916,11 @@ WriteVramDescriptorPayload_LoadAndContinue_D575:
|
||||
sta WorkPointer1Lo ; CPU:$D577 PRG:1577 85 7E
|
||||
lda #$03 ; CPU:$D579 PRG:1579 A9 03
|
||||
sta WorkPointer1Hi ; CPU:$D57B PRG:157B 85 7F
|
||||
lda $2002 ; CPU:$D57D PRG:157D AD 02 20
|
||||
lda PPUSTATUS ; CPU:$D57D PRG:157D AD 02 20
|
||||
lda #$20 ; CPU:$D580 PRG:1580 A9 20
|
||||
sta $2006 ; CPU:$D582 PRG:1582 8D 06 20
|
||||
sta PPUADDR ; CPU:$D582 PRG:1582 8D 06 20
|
||||
lda #$92 ; CPU:$D585 PRG:1585 A9 92
|
||||
sta $2006 ; CPU:$D587 PRG:1587 8D 06 20
|
||||
sta PPUADDR ; CPU:$D587 PRG:1587 8D 06 20
|
||||
ldy #$03 ; CPU:$D58A PRG:158A A0 03
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: WriteVramDescriptorPayload_OnNonnegative_D58C
|
||||
@@ -3934,7 +3934,7 @@ WriteVramDescriptorPayload_LoadAndContinue_D575:
|
||||
WriteVramDescriptorPayload_OnNonnegative_D58C:
|
||||
lda ($7E),y ; CPU:$D58C PRG:158C B1 7E
|
||||
ora #$30 ; CPU:$D58E PRG:158E 09 30
|
||||
sta $2007 ; CPU:$D590 PRG:1590 8D 07 20
|
||||
sta PPUDATA ; CPU:$D590 PRG:1590 8D 07 20
|
||||
dey ; CPU:$D593 PRG:1593 88
|
||||
bpl WriteVramDescriptorPayload_OnNonnegative_D58C ; CPU:$D594 PRG:1594 10 F6
|
||||
rts ; CPU:$D596 PRG:1596 60
|
||||
@@ -3951,11 +3951,11 @@ UpdateMenuSelection:
|
||||
lda ControllerEdgeFlags ; CPU:$D597 PRG:1597 A5 09
|
||||
and #$07 ; CPU:$D599 PRG:1599 29 07
|
||||
bne UpdateMenuSelection_JoinBranchPaths_D5F1 ; CPU:$D59B PRG:159B D0 54
|
||||
inc $0302 ; CPU:$D59D PRG:159D EE 02 03
|
||||
lda $0302 ; CPU:$D5A0 PRG:15A0 AD 02 03
|
||||
inc MenuSelectionIndex ; CPU:$D59D PRG:159D EE 02 03
|
||||
lda MenuSelectionIndex ; CPU:$D5A0 PRG:15A0 AD 02 03
|
||||
eor #$03 ; CPU:$D5A3 PRG:15A3 49 03
|
||||
bne UpdateMenuSelection_OnNonzero_D5AA ; CPU:$D5A5 PRG:15A5 D0 03
|
||||
sta $0302 ; CPU:$D5A7 PRG:15A7 8D 02 03
|
||||
sta MenuSelectionIndex ; CPU:$D5A7 PRG:15A7 8D 02 03
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: UpdateMenuSelection_OnNonzero_D5AA
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -3990,7 +3990,7 @@ UpdateMenuSelection_OnNonzero_D5AA:
|
||||
; -----------------------------------------------------------------------------
|
||||
UpdateMenuSelection_OnNonzero_D5C7:
|
||||
lda ($7E),y ; CPU:$D5C7 PRG:15C7 B1 7E
|
||||
sta $2007 ; CPU:$D5C9 PRG:15C9 8D 07 20
|
||||
sta PPUDATA ; CPU:$D5C9 PRG:15C9 8D 07 20
|
||||
iny ; CPU:$D5CC PRG:15CC C8
|
||||
dex ; CPU:$D5CD PRG:15CD CA
|
||||
bne UpdateMenuSelection_OnNonzero_D5C7 ; CPU:$D5CE PRG:15CE D0 F7
|
||||
@@ -4007,7 +4007,7 @@ UpdateMenuSelection_OnNonzero_D5C7:
|
||||
; -----------------------------------------------------------------------------
|
||||
UpdateMenuSelection_OnNonzero_D5D4:
|
||||
lda ($7C),y ; CPU:$D5D4 PRG:15D4 B1 7C
|
||||
sta $2007 ; CPU:$D5D6 PRG:15D6 8D 07 20
|
||||
sta PPUDATA ; CPU:$D5D6 PRG:15D6 8D 07 20
|
||||
iny ; CPU:$D5D9 PRG:15D9 C8
|
||||
dex ; CPU:$D5DA PRG:15DA CA
|
||||
bne UpdateMenuSelection_OnNonzero_D5D4 ; CPU:$D5DB PRG:15DB D0 F7
|
||||
@@ -4099,7 +4099,7 @@ UpdateMenuSelection_OnNonzero_D5FE:
|
||||
; -----------------------------------------------------------------------------
|
||||
UpdateMenuSelection_OnNonzero_D616:
|
||||
lda ($7E),y ; CPU:$D616 PRG:1616 B1 7E
|
||||
sta $2007 ; CPU:$D618 PRG:1618 8D 07 20
|
||||
sta PPUDATA ; CPU:$D618 PRG:1618 8D 07 20
|
||||
iny ; CPU:$D61B PRG:161B C8
|
||||
dex ; CPU:$D61C PRG:161C CA
|
||||
cpx Zp77 ; CPU:$D61D PRG:161D E4 77
|
||||
@@ -4150,7 +4150,7 @@ UpdateMenuSelection_OnZero_D627:
|
||||
; -----------------------------------------------------------------------------
|
||||
UpdateMenuSelection_OnNonzero_D62B:
|
||||
lda ($7C),y ; CPU:$D62B PRG:162B B1 7C
|
||||
sta $2007 ; CPU:$D62D PRG:162D 8D 07 20
|
||||
sta PPUDATA ; CPU:$D62D PRG:162D 8D 07 20
|
||||
iny ; CPU:$D630 PRG:1630 C8
|
||||
dex ; CPU:$D631 PRG:1631 CA
|
||||
cpx Zp78 ; CPU:$D632 PRG:1632 E4 78
|
||||
@@ -4172,11 +4172,11 @@ MenuItemPointerTable:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
SetPaletteAddress:
|
||||
lda $2002 ; CPU:$D657 PRG:1657 AD 02 20
|
||||
lda PPUSTATUS ; CPU:$D657 PRG:1657 AD 02 20
|
||||
lda #$3F ; CPU:$D65A PRG:165A A9 3F
|
||||
sta $2006 ; CPU:$D65C PRG:165C 8D 06 20
|
||||
sta PPUADDR ; CPU:$D65C PRG:165C 8D 06 20
|
||||
lda #$00 ; CPU:$D65F PRG:165F A9 00
|
||||
sta $2006 ; CPU:$D661 PRG:1661 8D 06 20
|
||||
sta PPUADDR ; CPU:$D661 PRG:1661 8D 06 20
|
||||
rts ; CPU:$D664 PRG:1664 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: LoadMenuDescriptorPointer
|
||||
@@ -4249,7 +4249,7 @@ InitializeRoundParameters:
|
||||
stx Zp6B ; CPU:$D753 PRG:1753 86 6B
|
||||
stx Zp66 ; CPU:$D755 PRG:1755 86 66
|
||||
ldx #$02 ; CPU:$D757 PRG:1757 A2 02
|
||||
lda $03B0 ; CPU:$D759 PRG:1759 AD B0 03
|
||||
lda VariantSequenceCounter ; CPU:$D759 PRG:1759 AD B0 03
|
||||
lsr a ; CPU:$D75C PRG:175C 4A
|
||||
bcc InitializeRoundParameters_OnCarryClear_D761 ; CPU:$D75D PRG:175D 90 02
|
||||
ldx #$04 ; CPU:$D75F PRG:175F A2 04
|
||||
@@ -4266,7 +4266,7 @@ InitializeRoundParameters_OnCarryClear_D761:
|
||||
stx CurrentGameVariant ; CPU:$D761 PRG:1761 86 63
|
||||
lda #$00 ; CPU:$D763 PRG:1763 A9 00
|
||||
sta Zp61 ; CPU:$D765 PRG:1765 85 61
|
||||
inc $03B0 ; CPU:$D767 PRG:1767 EE B0 03
|
||||
inc VariantSequenceCounter ; CPU:$D767 PRG:1767 EE B0 03
|
||||
jmp $C835 ; CPU:$D76A PRG:176A 4C 35 C8
|
||||
|
||||
RoundParameterTable:
|
||||
@@ -11846,7 +11846,7 @@ RequestAudioSequence_OnNonzero_F835:
|
||||
sty Zp00,x ; CPU:$F84D PRG:384D 94 00
|
||||
dey ; CPU:$F84F PRG:384F 88
|
||||
sty Zp08,x ; CPU:$F850 PRG:3850 94 08
|
||||
lda ($F2),y ; CPU:$F852 PRG:3852 B1 F2
|
||||
lda (ZpF2),y ; CPU:$F852 PRG:3852 B1 F2
|
||||
and #$F0 ; CPU:$F854 PRG:3854 29 F0
|
||||
cmp #$20 ; CPU:$F856 PRG:3856 C9 20
|
||||
beq RequestAudioSequence_OnEqual20_F85B ; CPU:$F858 PRG:3858 F0 01
|
||||
@@ -11887,8 +11887,8 @@ RequestAudioSequence_OnZero_F85D:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
RequestAudioSequence_OnEqual08_F867:
|
||||
sta $4000,y ; CPU:$F867 PRG:3867 99 00 40
|
||||
sta $4001,y ; CPU:$F86A PRG:386A 99 01 40
|
||||
sta APUPULSE1CTRL,y ; CPU:$F867 PRG:3867 99 00 40
|
||||
sta APUPULSE1SWEEP,y ; CPU:$F86A PRG:386A 99 01 40
|
||||
lda Zp2F ; CPU:$F86D PRG:386D A5 2F
|
||||
and #$3F ; CPU:$F86F PRG:386F 29 3F
|
||||
sta Zp02,x ; CPU:$F871 PRG:3871 95 02
|
||||
@@ -11994,7 +11994,7 @@ ProcessAudioFrame_OnNonnegative_F89E:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ProcessAudioFrame_OnEqual08_F8A9:
|
||||
sta $4000,x ; CPU:$F8A9 PRG:38A9 9D 00 40
|
||||
sta APUPULSE1CTRL,x ; CPU:$F8A9 PRG:38A9 9D 00 40
|
||||
rts ; CPU:$F8AC PRG:38AC 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ProcessAudioFrame_JoinBranchPaths_F8AD
|
||||
@@ -12007,10 +12007,10 @@ ProcessAudioFrame_OnEqual08_F8A9:
|
||||
; -----------------------------------------------------------------------------
|
||||
ProcessAudioFrame_JoinBranchPaths_F8AD:
|
||||
iny ; CPU:$F8AD PRG:38AD C8
|
||||
lda ($F6),y ; CPU:$F8AE PRG:38AE B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F8AE PRG:38AE B1 F6
|
||||
sta Zp03,x ; CPU:$F8B0 PRG:38B0 95 03
|
||||
iny ; CPU:$F8B2 PRG:38B2 C8
|
||||
lda ($F6),y ; CPU:$F8B3 PRG:38B3 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F8B3 PRG:38B3 B1 F6
|
||||
sta Zp04,x ; CPU:$F8B5 PRG:38B5 95 04
|
||||
iny ; CPU:$F8B7 PRG:38B7 C8
|
||||
tya ; CPU:$F8B8 PRG:38B8 98
|
||||
@@ -12068,8 +12068,8 @@ DecodeAudioStream_IncrementAndContinue_F8E1:
|
||||
tya ; CPU:$F8E3 PRG:38E3 98
|
||||
sta Zp08,x ; CPU:$F8E4 PRG:38E4 95 08
|
||||
ldx AudioApuRegisterOffset ; CPU:$F8E6 PRG:38E6 A6 F5
|
||||
sta $4002,x ; CPU:$F8E8 PRG:38E8 9D 02 40
|
||||
sta $4003,x ; CPU:$F8EB PRG:38EB 9D 03 40
|
||||
sta APUPULSE1TIMERLO,x ; CPU:$F8E8 PRG:38E8 9D 02 40
|
||||
sta APUPULSE1TIMERHI,x ; CPU:$F8EB PRG:38EB 9D 03 40
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: DecodeAudioStream_OnEqual16_F8EE
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -12102,7 +12102,7 @@ DecodeAudioStream_OnZero_F8EF:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
DecodeAudioStream_OnZero_F8F2:
|
||||
lda ($F6),y ; CPU:$F8F2 PRG:38F2 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F8F2 PRG:38F2 B1 F6
|
||||
cmp #$FD ; CPU:$F8F4 PRG:38F4 C9 FD
|
||||
bcc DecodeAudioStream_OnBelowFD_F918 ; CPU:$F8F6 PRG:38F6 90 20
|
||||
bne DecodeAudioStream_OnNotEqualFD_F902 ; CPU:$F8F8 PRG:38F8 D0 08
|
||||
@@ -12155,17 +12155,17 @@ DecodeAudioStream_OnBelowFD_F918:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
DecodeAudioStream_OnZero_F921:
|
||||
lda ($F6),y ; CPU:$F921 PRG:3921 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F921 PRG:3921 B1 F6
|
||||
and #$F0 ; CPU:$F923 PRG:3923 29 F0
|
||||
cmp #$20 ; CPU:$F925 PRG:3925 C9 20
|
||||
bne DecodeAudioStream_OnNotEqual20_F93C ; CPU:$F927 PRG:3927 D0 13
|
||||
lda ($F6),y ; CPU:$F929 PRG:3929 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F929 PRG:3929 B1 F6
|
||||
and #$0F ; CPU:$F92B PRG:392B 29 0F
|
||||
sta Zp01,x ; CPU:$F92D PRG:392D 95 01
|
||||
iny ; CPU:$F92F PRG:392F C8
|
||||
lda ($F6),y ; CPU:$F930 PRG:3930 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F930 PRG:3930 B1 F6
|
||||
ldx AudioApuRegisterOffset ; CPU:$F932 PRG:3932 A6 F5
|
||||
sta $4000,x ; CPU:$F934 PRG:3934 9D 00 40
|
||||
sta APUPULSE1CTRL,x ; CPU:$F934 PRG:3934 9D 00 40
|
||||
ldx AudioChannelStructOffset ; CPU:$F937 PRG:3937 A6 F4
|
||||
sta Zp09,x ; CPU:$F939 PRG:3939 95 09
|
||||
iny ; CPU:$F93B PRG:393B C8
|
||||
@@ -12187,11 +12187,11 @@ DecodeAudioStream_OnNotEqual20_F93C:
|
||||
lda Zp09,x ; CPU:$F946 PRG:3946 B5 09
|
||||
and #$F0 ; CPU:$F948 PRG:3948 29 F0
|
||||
sta Zp09,x ; CPU:$F94A PRG:394A 95 09
|
||||
lda ($F6),y ; CPU:$F94C PRG:394C B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F94C PRG:394C B1 F6
|
||||
cmp #$F8 ; CPU:$F94E PRG:394E C9 F8
|
||||
bne DecodeAudioStream_OnNotEqualF8_F955 ; CPU:$F950 PRG:3950 D0 03
|
||||
iny ; CPU:$F952 PRG:3952 C8
|
||||
lda ($F6),y ; CPU:$F953 PRG:3953 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F953 PRG:3953 B1 F6
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: DecodeAudioStream_OnNotEqualF8_F955
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -12209,7 +12209,7 @@ DecodeAudioStream_OnNotEqualF8_F955:
|
||||
ora Zp09,x ; CPU:$F959 PRG:3959 15 09
|
||||
sta Zp09,x ; CPU:$F95B PRG:395B 95 09
|
||||
ldx AudioApuRegisterOffset ; CPU:$F95D PRG:395D A6 F5
|
||||
sta $4000,x ; CPU:$F95F PRG:395F 9D 00 40
|
||||
sta APUPULSE1CTRL,x ; CPU:$F95F PRG:395F 9D 00 40
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: DecodeAudioStream_OnZero_F962
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -12220,11 +12220,11 @@ DecodeAudioStream_OnNotEqualF8_F955:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
DecodeAudioStream_OnZero_F962:
|
||||
lda ($F6),y ; CPU:$F962 PRG:3962 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F962 PRG:3962 B1 F6
|
||||
and #$07 ; CPU:$F964 PRG:3964 29 07
|
||||
sta ZpF0 ; CPU:$F966 PRG:3966 85 F0
|
||||
iny ; CPU:$F968 PRG:3968 C8
|
||||
lda ($F6),y ; CPU:$F969 PRG:3969 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F969 PRG:3969 B1 F6
|
||||
sta ZpF1 ; CPU:$F96B PRG:396B 85 F1
|
||||
ldx AudioChannelStructOffset ; CPU:$F96D PRG:396D A6 F4
|
||||
jsr $FA80 ; CPU:$F96F PRG:396F 20 80 FA
|
||||
@@ -12281,7 +12281,7 @@ ExecuteAudioCommand_OnNotEqual08_F981:
|
||||
ExecuteAudioCommand_OnNonzero_F987:
|
||||
dec AudioSequencePointerLo ; CPU:$F987 PRG:3987 C6 F6
|
||||
ldy #$00 ; CPU:$F989 PRG:3989 A0 00
|
||||
lda ($F6),y ; CPU:$F98B PRG:398B B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F98B PRG:398B B1 F6
|
||||
and #$F0 ; CPU:$F98D PRG:398D 29 F0
|
||||
cmp #$C0 ; CPU:$F98F PRG:398F C9 C0
|
||||
bne ExecuteAudioCommand_OnNotEqualC0_F994 ; CPU:$F991 PRG:3991 D0 01
|
||||
@@ -12364,7 +12364,7 @@ ExecuteAudioCommand_OnNonnegative_F9BD:
|
||||
sbc #$01 ; CPU:$F9BF PRG:39BF E9 01
|
||||
sta Zp09,x ; CPU:$F9C1 PRG:39C1 95 09
|
||||
ldx AudioApuRegisterOffset ; CPU:$F9C3 PRG:39C3 A6 F5
|
||||
sta $4000,x ; CPU:$F9C5 PRG:39C5 9D 00 40
|
||||
sta APUPULSE1CTRL,x ; CPU:$F9C5 PRG:39C5 9D 00 40
|
||||
rts ; CPU:$F9C8 PRG:39C8 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ExecuteAudioCommand_LoadAndContinue_F9C9
|
||||
@@ -12389,29 +12389,29 @@ ExecuteAudioCommand_LoadAndContinue_F9C9:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ExecuteAudioCommand_OnZero_F9D1:
|
||||
lda ($F6),y ; CPU:$F9D1 PRG:39D1 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F9D1 PRG:39D1 B1 F6
|
||||
and #$F0 ; CPU:$F9D3 PRG:39D3 29 F0
|
||||
cmp #$D0 ; CPU:$F9D5 PRG:39D5 C9 D0
|
||||
bne ExecuteAudioCommand_OnNotEqualD0_F9FF ; CPU:$F9D7 PRG:39D7 D0 26
|
||||
lda ($F6),y ; CPU:$F9D9 PRG:39D9 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F9D9 PRG:39D9 B1 F6
|
||||
and #$0F ; CPU:$F9DB PRG:39DB 29 0F
|
||||
sta Zp0D,x ; CPU:$F9DD PRG:39DD 95 0D
|
||||
iny ; CPU:$F9DF PRG:39DF C8
|
||||
lda ($F6),y ; CPU:$F9E0 PRG:39E0 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F9E0 PRG:39E0 B1 F6
|
||||
sta Zp05,x ; CPU:$F9E2 PRG:39E2 95 05
|
||||
ldx AudioApuRegisterOffset ; CPU:$F9E4 PRG:39E4 A6 F5
|
||||
sta $4000,x ; CPU:$F9E6 PRG:39E6 9D 00 40
|
||||
sta APUPULSE1CTRL,x ; CPU:$F9E6 PRG:39E6 9D 00 40
|
||||
iny ; CPU:$F9E9 PRG:39E9 C8
|
||||
cpx #$08 ; CPU:$F9EA PRG:39EA E0 08
|
||||
beq ExecuteAudioCommand_JoinBranchPaths_FA12 ; CPU:$F9EC PRG:39EC F0 24
|
||||
lda ($F6),y ; CPU:$F9EE PRG:39EE B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F9EE PRG:39EE B1 F6
|
||||
lsr a ; CPU:$F9F0 PRG:39F0 4A
|
||||
lsr a ; CPU:$F9F1 PRG:39F1 4A
|
||||
lsr a ; CPU:$F9F2 PRG:39F2 4A
|
||||
lsr a ; CPU:$F9F3 PRG:39F3 4A
|
||||
ldx AudioChannelStructOffset ; CPU:$F9F4 PRG:39F4 A6 F4
|
||||
sta Zp0F,x ; CPU:$F9F6 PRG:39F6 95 0F
|
||||
lda ($F6),y ; CPU:$F9F8 PRG:39F8 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$F9F8 PRG:39F8 B1 F6
|
||||
and #$0F ; CPU:$F9FA PRG:39FA 29 0F
|
||||
sta Zp10,x ; CPU:$F9FC PRG:39FC 95 10
|
||||
iny ; CPU:$F9FE PRG:39FE C8
|
||||
@@ -12428,12 +12428,12 @@ ExecuteAudioCommand_OnNotEqualD0_F9FF:
|
||||
ldx AudioApuRegisterOffset ; CPU:$F9FF PRG:39FF A6 F5
|
||||
cpx #$08 ; CPU:$FA01 PRG:3A01 E0 08
|
||||
beq ExecuteAudioCommand_JoinBranchPaths_FA12 ; CPU:$FA03 PRG:3A03 F0 0D
|
||||
lda ($F6),y ; CPU:$FA05 PRG:3A05 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$FA05 PRG:3A05 B1 F6
|
||||
cmp #$F0 ; CPU:$FA07 PRG:3A07 C9 F0
|
||||
bne ExecuteAudioCommand_JoinBranchPaths_FA12 ; CPU:$FA09 PRG:3A09 D0 07
|
||||
iny ; CPU:$FA0B PRG:3A0B C8
|
||||
lda ($F6),y ; CPU:$FA0C PRG:3A0C B1 F6
|
||||
sta $4001,x ; CPU:$FA0E PRG:3A0E 9D 01 40
|
||||
lda (AudioSequencePointerLo),y ; CPU:$FA0C PRG:3A0C B1 F6
|
||||
sta APUPULSE1SWEEP,x ; CPU:$FA0E PRG:3A0E 9D 01 40
|
||||
iny ; CPU:$FA11 PRG:3A11 C8
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ExecuteAudioCommand_JoinBranchPaths_FA12
|
||||
@@ -12445,11 +12445,11 @@ ExecuteAudioCommand_OnNotEqualD0_F9FF:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ExecuteAudioCommand_JoinBranchPaths_FA12:
|
||||
lda ($F6),y ; CPU:$FA12 PRG:3A12 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$FA12 PRG:3A12 B1 F6
|
||||
and #$F0 ; CPU:$FA14 PRG:3A14 29 F0
|
||||
cmp #$E0 ; CPU:$FA16 PRG:3A16 C9 E0
|
||||
bne ExecuteAudioCommand_OnNotEqualE0_FA23 ; CPU:$FA18 PRG:3A18 D0 09
|
||||
lda ($F6),y ; CPU:$FA1A PRG:3A1A B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$FA1A PRG:3A1A B1 F6
|
||||
and #$0F ; CPU:$FA1C PRG:3A1C 29 0F
|
||||
ldx AudioChannelStructOffset ; CPU:$FA1E PRG:3A1E A6 F4
|
||||
sta Zp0B,x ; CPU:$FA20 PRG:3A20 95 0B
|
||||
@@ -12466,7 +12466,7 @@ ExecuteAudioCommand_JoinBranchPaths_FA12:
|
||||
ExecuteAudioCommand_OnNotEqualE0_FA23:
|
||||
jsr $FAA9 ; CPU:$FA23 PRG:3A23 20 A9 FA
|
||||
dey ; CPU:$FA26 PRG:3A26 88
|
||||
lda ($F6),y ; CPU:$FA27 PRG:3A27 B1 F6
|
||||
lda (AudioSequencePointerLo),y ; CPU:$FA27 PRG:3A27 B1 F6
|
||||
and #$0F ; CPU:$FA29 PRG:3A29 29 0F
|
||||
sta ZpF0 ; CPU:$FA2B PRG:3A2B 85 F0
|
||||
beq ExecuteAudioCommand_OnZero_FA3A ; CPU:$FA2D PRG:3A2D F0 0B
|
||||
@@ -12514,8 +12514,8 @@ ExecuteAudioCommand_OnZero_FA3C:
|
||||
lda Zp05,x ; CPU:$FA43 PRG:3A43 B5 05
|
||||
sta Zp09,x ; CPU:$FA45 PRG:3A45 95 09
|
||||
ldx AudioApuRegisterOffset ; CPU:$FA47 PRG:3A47 A6 F5
|
||||
sta $4000,x ; CPU:$FA49 PRG:3A49 9D 00 40
|
||||
lda ($F6),y ; CPU:$FA4C PRG:3A4C B1 F6
|
||||
sta APUPULSE1CTRL,x ; CPU:$FA49 PRG:3A49 9D 00 40
|
||||
lda (AudioSequencePointerLo),y ; CPU:$FA4C PRG:3A4C B1 F6
|
||||
lsr a ; CPU:$FA4E PRG:3A4E 4A
|
||||
lsr a ; CPU:$FA4F PRG:3A4F 4A
|
||||
lsr a ; CPU:$FA50 PRG:3A50 4A
|
||||
@@ -12536,7 +12536,7 @@ ExecuteAudioCommand_OnZero_FA3C:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ExecuteAudioCommand_OnEqual08_FA5E:
|
||||
sta $4000,x ; CPU:$FA5E PRG:3A5E 9D 00 40
|
||||
sta APUPULSE1CTRL,x ; CPU:$FA5E PRG:3A5E 9D 00 40
|
||||
rts ; CPU:$FA61 PRG:3A61 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ExecuteAudioCommand_OnNotEqual0C_FA62
|
||||
@@ -12619,7 +12619,7 @@ ExecuteAudioCommand_OnNonzero_FA98:
|
||||
ExecuteAudioCommand_JoinBranchPaths_FA9A:
|
||||
lda ZpF0 ; CPU:$FA9A PRG:3A9A A5 F0
|
||||
ldx AudioApuRegisterOffset ; CPU:$FA9C PRG:3A9C A6 F5
|
||||
sta $4003,x ; CPU:$FA9E PRG:3A9E 9D 03 40
|
||||
sta APUPULSE1TIMERHI,x ; CPU:$FA9E PRG:3A9E 9D 03 40
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ExecuteAudioCommand_OnNotEqual08_FAA1
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -12632,7 +12632,7 @@ ExecuteAudioCommand_JoinBranchPaths_FA9A:
|
||||
ExecuteAudioCommand_OnNotEqual08_FAA1:
|
||||
ldx AudioApuRegisterOffset ; CPU:$FAA1 PRG:3AA1 A6 F5
|
||||
lda ZpF1 ; CPU:$FAA3 PRG:3AA3 A5 F1
|
||||
sta $4002,x ; CPU:$FAA5 PRG:3AA5 9D 02 40
|
||||
sta APUPULSE1TIMERLO,x ; CPU:$FAA5 PRG:3AA5 9D 02 40
|
||||
rts ; CPU:$FAA8 PRG:3AA8 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: ExecuteAudioCommand_LoadIndexAndContinue_FAA9
|
||||
|
||||
Reference in new issue
Block a user