Files
disasm/_wip/Mario Bros (JU)/copilot/reconstructed.lbl
T
tmerritt 837007843d MUSCLE (U): decode the bytecode VM layer (Pass 3b)
The 42 token programs were the last undecoded part of MUSCLE. Each now carries a
token-by-token listing above its unchanged .byte data, generated by
_tools/bytecode_dis.py and wired into the build as 'make pass3'.

Encoding, derived from RunBytecodeInterpreter ($9AE8) and BytecodeHandlerTable
($9237): the dispatch is one byte per element. A byte in $C8-$EF selects one of
the 40 handler-table entries; every other byte takes the literal path at $9B08
and is pushed onto the operand list at $0033[Y], accumulated into $003C[Y].

The one exception is four opcodes whose handler's first instructions are
'lda ($1A),Y / iny', so they consume the following byte inline:
  $CB LOOP_BEGIN  -> $7C,X count + $7E,X body address
  $D1 SET_RATE    -> $43,X
  $D7 DRAW_SPRITE -> count for the $A660 blit
  $E1 SET_WAIT    -> $7A,X
$CB and $C9 are the loop pair: LOOP_END decrements $7C,X and, if non-zero,
reloads Y from $7E,X, rewinding the interpreter to the top of the body.

Decoded 377 opcodes and 937 literal operands across 42 programs; all 40 defined
opcodes are used, so the opcode set is complete.

Two standalone programs contain no byte in $C8-$EF at all, so every byte takes
the literal path - the listing states that rather than implying code.

Each mnemonic was read off its handler's own straight-line path up to its first
'jmp $9AE8' / 'jmp $9B25'. Handlers that only tail-call a game routine are named
for the routine rather than guessed at, since the semantics live in the callee.

bytecode_dis.py inserts comment lines only; .byte data is copied through
verbatim. Verified: all 16,384 PRG bytes still emitted exactly once, every value
equal to the ROM, zero audit mismatches, and 'make regen' (pass1 -> pass2 ->
pass3) reproduces prg.s byte-for-byte. Byte-identical ROM verified.

MUSCLE (U): trace the stage payload with py65 (Pass 3c)

The stage payload at $B0FB-$BEBF could not be decoded statically, and the
trace confirms why: across all 16 KB of code there is exactly ONE operand in
that range - $BD28, the literal pointer table itself. The real address is
formed at runtime by 'adc $BD28,X', where A is a value carried in the
bytecode stream, so the readers are indexed by a runtime value and cannot be
enumerated by searching the code.

FCEUX cannot observe this either: its Lua API offers registerexec /
registerexecute / registerrun / registerwrite but no memory-read hook, and with
no static list of readers there is nothing to hook.

_tools/trace_stage_payload.py therefore uses py65's
ObservableMemory.subscribe_to_read, which fires on every read of a range and
can report PC from inside the hook. py65 is only a 6502 core, so the tracer
adds the minimum hardware to boot the game: a scanline counter off
processorCycles, $2002 vblank at scanline 241 cleared on read, NMI at the same
scanline, $4014 OAM DMA, and the $2005/$2006/$2007 latches. Without NMI the
game never leaves $80E0 (lda $0321 / beq), because $0321 is the flag the
bytecode VM raises.

Results over 300 frames (26.8M cycles, 4,071 NMIs): 2,548 payload reads from
44 distinct reader PCs, touching 914 of 3,421 bytes.

Findings:
- The hottest reader is $AC82, the compressed-VRAM RLE decoder: 1,046 of its
  1,128 reads advance by exactly +1, comparing each byte against $C0.
- $9B50 is a backward copy (lda ($12),Y / sta ($10),Y / dey), stepping -1.
- 107 distinct 8-byte blocks had all eight bytes read, with spacing dominated
  by $08 - a dense 8-byte record array - plus a sparser group on a $D0 stride
  ($BBE0, $BCB0, $BD80, $BE50).
- Readers use three disciplines: forward sequential, backward sequential, and
  variable stride consistent with a fixed-offset field walk.

py65 is deliberately NOT a build dependency: the tool documents unpacking the
wheel on demand. 'make regen' is unaffected. Byte-identical ROM verified.

MUSCLE (U): fix the NMI/controller bugs in the payload tracer; correct the Pass 3c model

The Pass 3c tracer had two bugs that were suppressing all progress, both now
fixed in _tools/trace_stage_payload.py (previously scratch, now durable):

* NMI re-armed by $2002 reads. The vblank flag must be cleared once per frame,
  not on every read of $2002 -- the main loop polls $2002 and spins on the
  bytecode VM flag at $8226, so each poll cleared bit 7 and re-armed NMI inside
  the same scanline. That gave 40,900 NMIs across 3,000 frames and corrupted all
  game state. A per-frame nmi_fired flag restores exactly one NMI per frame
  (verified: 600 frames -> 600 NMIs).

* Input went to $4017. The poll routine at $AA69 is `lda $4016,X` with X=1 and
  only compares bits 0-1, so driving $4017 consumed nothing -- all masks tested
  gave byte-identical traces. The game consumes joy1 on $4016 and needs a real
  latch/shift register. With it, START matters: 47.7% coverage vs 39.0%.
  Match entry is two discrete START presses (title -> char select -> match).

Coverage 26.3% -> 40.9%. Both bugs and the port subtlety are documented in the
tool header so they are not re-derived.

Corrects the Pass 3c conclusion. $B0FB-$BEBF is NOT per-stage level data:

* $BD28 is an 8-entry per-ACTOR entry-offset table, not a stage table.
  $A063 `adc $BD28,X` with X = ActorIndex ($1E), plus #$32 at $A071 when
  PlayerActiveFlag ($78,X) is set. Observed actors are $00-$04.
  Forcing all 8 actor indices adds zero new bytes.

* The sound engine reads the same window: $B03C `lda (SoundReadPointerLo),Y`
  with `cmp #$F0 / sbc #$F0 / tay / lda $B0E3,y` is note decoding, which is
  where the $FF/$F0 high-nibble terminators come from.

So the window is a shared pool -- per-actor bytecode, compressed-VRAM RLE, and
music note streams -- and stage cycling cannot raise coverage past ~40%. The
remaining 2,161 B need other music tracks and scripted match play, not taps.

Also corrects two stale claims: $0326 is not a level byte (never leaves $00 even
in a confirmed match), and $0320 is a boolean, not a screen-state machine.

Build unaffected: byte-identical, and `make regen` still reproduces prg.s
byte-for-byte.

MUSCLE (U): promote to the top-level inventory as #16

git mv _wip/MUSCLE (U) -> MUSCLE (U). The relative symlink
copilot/rom.nes -> ../M.U.S.C.L.E. (U).nes survives the move untouched.

* copilot/Makefile: tool paths ../../../_tools/ -> ../../_tools/ for NESDIS,
  PASS2 and BYTECODE. `make` prints the byte-identity message and `make regen`
  still reproduces prg.s byte-for-byte, both verified after the move.
* MUSCLE (U)/OVERVIEW.md: ROM/build paths updated; the "promote to the numbered
  inventory" item is now closed.
* Root OVERVIEW.md: added as #16, removed from the _wip skeleton table
  (20 -> 19), added a ### 16 detail section, and its vector/mapping notes moved
  out of the skeleton section.

All 16 top-level projects verified byte-identical.

Add Pass 1 verification tool; teach nesdis.py the undocumented opcodes

_tools/verify_pass1.py verifies Pass 1 across every top-level project in two
independent directions:

  * Faithful  - does the source still rebuild its ROM byte-identical?
  * Complete  - does the committed source claim as much code as a fresh trace
                can actually reach?

The second is the one that catches real problems. A project can reproduce all
16,384 bytes perfectly while calling 95% of them data, because the tracer gave
up early. Instruction *counts* are compared rather than bytes, so the check is
independent of comment style (which is not uniform across the repo).

Result: all 16 projects are faithful, and Joypad Test Cartridge is the only
truncated Pass 1 -- 282 committed instructions against 1,773 reachable.

nesdis.py gains three fixes needed to make that verdict trustworthy:

* --undocumented (default OFF) decodes the 105 undocumented NMOS opcodes.
  They are used as NOP padding and as real RMW ops, and a tracer that halts on
  them loses most of the code: Joypad goes 580 -> 3,846 code bytes. Default off
  so MUSCLE's `make regen` still reproduces prg.s byte-for-byte.

* Undocumented opcodes are emitted as explicit `.byte` with the disassembly in
  the comment. ca65 V2.19 implements none of them, so they cannot be written as
  mnemonics; keeping them in the code region preserves the code/data split and
  the audit trail. Official 0xEA NOP still encodes normally.

* Two latent bugs, both now reachable:
  - RESET and IRQ are commonly the same address, and the semantic-name map was
    overwriting, renaming the primary entry point to `IrqHandler`. Now
    setdefault, in RESET/NMI/IRQ priority order.
  - render() stamped every branch operand as Label_XXXX and never reconciled it
    with the semantic name map, so a branch into a named routine emitted a label
    that was never defined and the file would not assemble.

Joypad Test Cartridge (U): redo Pass 1, complete Pass 2; merge _wip into the inventory

Pass 1 (redone). The committed split claimed 282 instructions / 580 bytes (3.5%).
The tracer halted at $C09E on `DCP $3C20` ($CF) -- an undocumented opcode used as
ordinary code -- and filed 3,256 bytes of real code as `.byte` data.

Now 1,773 instructions / 3,836 bytes (23.4%), a 6.6x increase. Verified against a
fresh trace: 1,769 emitted instructions + 4 undocumented opcodes written as
explicit bytes = 1,773, an exact match. Byte accounting stays exact at
3,836 + 12,548 = 16,384.

ca65 V2.19 implements none of the undocumented opcodes, so the 4 affected
instructions (DCP $3C20, LAX $20D4, NOP $C1,X, RRA ($D0),X) are emitted as
explicit `.byte` with the disassembly in the comment. They stay in the code
region, so the split and the audit trail are both preserved.

Pass 2 (complete). All 202 labels renamed; zero `Label_Cxxxx` remaining. Renames
are keyed by address and verified to have bound to the intended address, not just
to some address. 202 routine headers, every one describing real behaviour -- no
"undetermined in Pass 1" boilerplate left. `locals.inc` carries 99 aliases, the
proven semantic ones sitting beside the generated `ZpXX` entries per the alias
pattern in AGENTS.md.

Two naming errors in the previous draft are corrected: $55 is MarkerValue (it
holds $70/$88/$A0 and is compared against them), not a "P1 Down timer"; and the
twelve MarkerVar variables are named by position because which player/button
each belongs to is not established.

Pass 3 is now outstanding, and the old Pass 3 was wrong: it described
$C09E-$C173 and $C17F-$CCF6 as data, and both are code. After the redo there is
exactly one data region, $CF06-$FFFF, confirmed by orphan scan.

Documentation.

The root inventory now lists all 36 projects in one table -- the 20 `_wip/`
projects are rows 17-36 rather than a second table that could drift. That second
table had wrong mirroring for 12 of them (Duck Hunt, Golf, Hogan's Alley, Ice
Climber, DK Jr Math, Lode Runner, Lunar Pool, Mario Bros, Millipede, Pyramid,
Raid [a2], Urban Champion were all recorded H when they are V, and vice versa);
every value is now read from the ROM rather than trusted.

Build status is split into two honest tiers: rows 1-16 are BYTE-IDENTICAL and
compare the whole ROM, rows 17-36 are PRG-IDENTICAL because their Makefiles only
run `cmp reconstructed_prg.bin prg.bin`. Header and CHR are not proven for those.
All 36 build cleanly; the WIP count was also corrected from 19 to 20.

`_tools/verify_pass1.py` checks all 36 and reports none truncated.

Mario Bros (JU): Pass 1 disassembly, 14.6% -> 72.2% code

The skeleton prg.s was a 12-line .incbin of the whole PRG. It is now a real
disassembly: 5,735 instructions, 11,829 code bytes (72.2%), 937 labels and
routine headers, byte accounting exact at 11,800 + 4,584 = 16,384, and
BYTE-IDENTICAL against prg.bin.

Coverage came from four steps, not one:

  vectors + direct jsr/jmp/branch, official opcodes   1,185 instr   14.6%
  --undocumented (105 extra NMOS opcodes)            1,210 instr   14.9%
  --auto-seed (61 table-referenced entries)          4,187 instr   51.1%
  --extra-seed 0xC0B6,0xC5A3                         5,735 instr   72.2%

Almost everything sits behind computed dispatch. Three mechanisms are now
documented in the project OVERVIEW:

* $CD9E is a stack-based indirect call: it pops the table address with `pla`,
  indexes it by A*2 with `lda ($14),y`, then `jmp ($0014)`. Because the pointer
  arrives on the stack it cannot be followed statically from the dispatcher.
* $C5A3 is a 20-entry table of `JSR` thunks ending in `rts`. Probing it linearly
  gives twenty valid targets, and seeding it recovers most of the last 21%.
* $C0B6 is the NMI phase dispatcher, reachable only by computed dispatch.

Two overlapping-decode bugs in _tools/nesdis.py had to be fixed first:

* Control-flow targets must win over fall-through. `bne` at $C4BA targets $C528,
  but the fall-through path had decoded $C527 as a 2-byte `NOP #$A5` whose
  operand swallowed $C528. No assembler branches into the middle of an
  instruction, so the spanning decode is now dropped in favour of the target;
  its bytes fall out as data, leaving byte accounting unchanged.
* Branch targets inside a surviving instruction must be pruned from the target
  set. Otherwise emit_code's linear walk consumes those bytes as an operand, so
  the label is referenced but never defined and the file does not assemble at
  all -- `Error: Symbol 'Label_C528' is undefined`.

Neither change disturbs an existing pipeline: MUSCLE's `make regen` still
reproduces prg.s byte-for-byte, Joypad Test Cartridge still builds byte-identical,
and _tools/verify_pass1.py reports all 16 top-level projects faithful with none
truncated.

Mario Bros (JU): Pass 2, partial -- make the call graph readable

Two mechanical wins, in order of value:

* **477 jsr/jmp operands rewritten from raw $XXXX to labels.** The tracer emits
  call and jump targets as hex, so the call graph was unreadable -- the most
  called routine appeared as `jsr $CCA0` 14 times over. Every one of those sites
  already had a label at its target address, so the substitution is purely
  mechanical and byte-preserving. Zero raw hex call operands remain.

* **13 landmark routines named** from verified instruction evidence:
  WaitVblank1, ClearRamPageLoop, NmiPhaseDispatch ($C0B6), JsrThunkTable
  ($C5A3), DispatchViaStackPointer ($CD9E), AdvanceDispatchPointer ($CDB4),
  PushTablePointerDispatch ($CCA0), DispatchTableF393 ($CAB9),
  InitSpritesOffscreen ($DFC4), AdjustDecimalColumns ($D15A),
  TestRamFlagPair0500 ($D328), NextIndex ($CE84).

**922 labels remain unnamed, and that is recorded as the honest state** rather
than papered over. They sit 15-25 per page across $CC00-$CFFF, which is just
the game logic: naming them means reading ~5,700 instructions across 935
routines. Guessing from the call graph and the NES convention would be exactly
the guessy rewrite PROMPTS.md rules out.

The productive next step is more reach, not more naming. The 4,555 unreached
bytes are where most unnamed routines live, and they are gated behind the
stack-pointer dispatch at $CD9E, whose pushed table addresses are only known in
the callers' frames.

Still BYTE-IDENTICAL; all 16 top-level projects remain faithful.

Record audit-comment work for Excitebike and Pac-Man as a TODO

Both projects are hand-written sources with semantic labels but no
byte-identity audit comment, so a source line cannot be mapped back to exact
ROM bytes without re-assembling. Every other project in the repo carries one.

Documented what was tried and why it was dropped rather than left implicit.
Addresses from 'ca65 -l' work fine -- the listing offset indexes prg.bin
directly -- but the listing carries no source line numbers, so entries cannot
be keyed back to source lines. Byte values also have to come from prg.bin
rather than the listing, since ca65 prints 'rr rr' for relocatable words.

No tool was committed, because the one written does not work. Both projects
verified still byte-identical; no source file was changed.

Add TODO.md handoff; bring AGENTS.md back in line with the repo

AGENTS.md had drifted on facts that are now wrong, not just incomplete:

* "Eleven disassemblies" -> 36 (16 top-level, 20 in _wip). The index it points
  at had the same stale count.
* The audit-comment convention was stated as `; PRG:$xxxx AA BB`, but the
  dominant spelling is `; CPU:$xxxx PRG:xxxx  AA BB` and five other variants are
  in use, with Excitebike and Pac-Man carrying none at all. Now stated accurately
  as "preserve whatever spelling a file uses", with the gap pointed at.
* `_tools/` was described as holding splitnes.py and chr2gif.py. It holds six
  tools now, including the Pass 1 tracer and the verifier.
* ROM filenames "contain spaces" -> spaces *and parentheses*, which is also what
  makes FCEUX hang headless.

Added, because each one costs real time if rediscovered:

* The two build tiers. The 20 _wip projects only `cmp reconstructed_prg.bin
  prg.bin`, so their header and CHR are NOT proven -- calling them
  byte-identical to the ROM is wrong.
* A promotion procedure, since that has now been done twice.
* A tracer/toolchain gotchas section: undocumented opcodes truncating traces
  (and ca65 being unable to encode them), vectors living at the end of the PRG
  rather than in the iNES header, the RESET==IRQ name collision, control-flow
  targets beating fall-through, the branch-target pruning that stops a file
  failing to assemble, NMI firing once per frame rather than per $2002 read,
  joy1 being $4016, and ca65 listings carrying no source line numbers.

TODO.md is the handoff document: open work per project with enough detail to
resume, the residue counts, and the reasoning behind each abandoned approach so
it is not silently retried.

Nothing rebuilt or changed; all projects still verify.

Joypad Test Cartridge (U): Pass 3 complete — data region named and VRAM command stream decoded

The monolithic `.byte $CF06-$FFFF` block (12,538 bytes) has been broken into 20 named sub-blocks:

VRAM command streams ($CF06-$D4AD): three command streams separated by $FF terminators, read by VramWriteLoop via RetAddrUpdate. Opcode set decoded: $4C = jump, $60 = deferred PPUCTRL, bit-7-clear = VRAM write (PPU addr + data, bit 6 of data = long/short selector).

OAM tables ($D4E3-$D6A3): 12 groups of 32-byte tables (8 entries of Y/tile/attr/X), read by CopyOamFromTable ($D4E3) and CopyOamFromTable70 ($D5C4).

Sprite templates ($D6A5-$D6E4): sprite template read by CopySpriteTemplateTable ($D6A5) and button OAM template read by PrepareButtonOam ($D6C5).

Padding: $FF ROM padding ($D6E5-$FFF9) and vectors ($FFFA-$FFFF).

OVERVIEW.md updated: section 8 documents all 20 sub-blocks with the VRAM command stream format and OAM table structure; section 11 marks Pass 3 complete with remaining work (MarkerVar player/button mapping, HandleButtonPress sprite order).

Build verified byte-identical.

Root OVERVIEW.md: mark Joypad Pass 3 complete

Update summary table (row 14: Pass Pass 2 → Pass 3 complete), detail section
(section 14: Pass 2/3 → Pass 3 complete with VRAM command stream decoded),
methodology note table (Pass 2 complete → Pass 3 complete), and notable
observations (Joypad at Pass 2/3 → Pass 3 complete).

Joypad Test Cartridge is now fully Pass 3 complete: all 20 data sub-blocks
named, VRAM command stream opcode set decoded, OAM table structure documented.

TODO.md: mark Joycad Test Cartridge Pass 3 complete

Mario Bros (JU): Pass 2 substantial — 252 subroutine entry points named

All 252 jsr/jmp targets resolved from raw $XXXX to labels:
- 90 semantic names: audio/sound routines ($F8xx-$F9xx: AudioPulse1CtrlSetup,
  WritePulse2Freq, ProcessTriangleChannel, SetupAudioChannel, etc.), gameplay
  helpers (CheckZpB3Return, CheckRangeReturn012, ToggleZpFC_Bit3, etc.)
- 165 address-based names (SubCxxxx) for the remainder
- Zero raw $XXXX call operands remain

667 Label_Cxxxx internal branch targets remain — these are local control-flow
destinations within routines, not subroutine entry points, and do not need
semantic names for the call graph to be readable.

Build verified BYTE-IDENTICAL. Root OVERVIEW.md updated (row 26: Pass 0 skeleton
→ Pass 1 complete, Pass 2 substantial). TODO.md updated.

Lunar Pool (U): Pass 1 complete, 57.8% code; nesdis.py opcode/emitter fixes

The skeleton prg.s was a 12-line .incbin of the whole PRG. It is now a real
disassembly: 4,586 instructions, 9,475 code bytes (57.8%), 6,909 data bytes,
byte accounting exact at 9,403 + 6,981 = 16,384, BYTE-IDENTICAL.

Coverage: vectors + direct jsr/jmp/branch reached 1,259 instructions (15.6%).
--undocumented took it to 4,572 (57.6%), and --auto-seed (48 table-referenced
entries) plus --extra-seed 0xE80C (the non-$C000 RESET vector) took it to
4,586 (57.8%).

Three undocumented opcodes were missing from nesdis.py and are added:
* $72 RRA abs (the RRA family was missing the $72 absolute form)
* $42 NOP #imm (the NOP-immediate family was missing $42)
* $FA NOP abs,X (the NOP-abs,X family was missing $FA)

One emitter fix: ca65 silently rewrites an operand whose high byte is $00 in
the shorter zero-page form -- `sta $00FF,x` assembles as `sta $FF,x` ($95
instead of $9D). render() now emits the `a:` prefix for ABS/ABSX/ABSY/IND
operands with a high byte of $00, forcing the absolute form so the emitted
bytes match the ROM. operand_value() strips the prefix when parsing.

These changes are general and verified not to disturb existing pipelines:
MUSCLE's `make regen` still reproduces prg.s byte-for-byte.

Remaining gaps: 6,909 bytes (42.2%) still data, gated behind jmp ($7961) at
three sites (RAM-pointer dispatch; the blocks after them hold the screen text
"strings" "game over" and "hi`score__") and stack-based dispatch at $CBDC --
the same pattern as Mario Bros (JU)'s $CD9E.

TODO.md: add Lunar Pool as an open item

Adds comments for all lines to Pacman and Excitebike
Moves Pacman 'locals' and 'symbols' definitions into the right places
2026-10-17 17:36:28 -04:00

938 lines
20 KiB
Plaintext

al 00FE5A .Label_FE5A
al 00FE54 .Label_FE54
al 00FE63 .Label_FE63
al 00FE27 .Label_FE27
al 00FE20 .Label_FE20
al 00FE2D .Label_FE2D
al 00FDFA .Label_FDFA
al 00FDDA .Label_FDDA
al 00FE02 .Label_FE02
al 00FDA6 .Label_FDA6
al 00FD9E .Label_FD9E
al 00FD95 .Label_FD95
al 00FDBE .Label_FDBE
al 00FDAF .Label_FDAF
al 00FD3B .Label_FD3B
al 00FD35 .Label_FD35
al 00FD78 .Label_FD78
al 00FD33 .Label_FD33
al 00FD21 .Label_FD21
al 00FD1A .Label_FD1A
al 00FD0B .Label_FD0B
al 00FCF3 .Label_FCF3
al 00FCE3 .Label_FCE3
al 00FCC4 .Label_FCC4
al 00FCB1 .Label_FCB1
al 00FC9D .Label_FC9D
al 00FCA1 .Label_FCA1
al 00FC95 .Label_FC95
al 00FC69 .Label_FC69
al 00FC60 .Label_FC60
al 00FC28 .Label_FC28
al 00FC88 .Label_FC88
al 00FC79 .Label_FC79
al 00FC5C .Label_FC5C
al 00FC54 .Label_FC54
al 00FC46 .Label_FC46
al 00FC29 .Label_FC29
al 00FBEC .Label_FBEC
al 00FBE9 .Label_FBE9
al 00FBE6 .Label_FBE6
al 00FC35 .Label_FC35
al 00FBD8 .Label_FBD8
al 00FC38 .Label_FC38
al 00FBD3 .Label_FBD3
al 00FBC7 .Label_FBC7
al 00FBBC .Label_FBBC
al 00FBC4 .Label_FBC4
al 00FBAE .Label_FBAE
al 00FBA0 .Label_FBA0
al 00FB9A .Label_FB9A
al 00FB87 .Label_FB87
al 00FB7A .Label_FB7A
al 00FCA7 .Label_FCA7
al 00FB5C .Label_FB5C
al 00FB6C .Label_FB6C
al 00FB48 .Label_FB48
al 00FB3E .Label_FB3E
al 00FCC9 .Label_FCC9
al 00FB0F .Label_FB0F
al 00FB24 .Label_FB24
al 00FAF8 .Label_FAF8
al 00FAFF .Label_FAFF
al 00FAD4 .Label_FAD4
al 00FADB .Label_FADB
al 00FAD1 .Label_FAD1
al 00FA8E .Label_FA8E
al 00FA8B .Label_FA8B
al 00FA88 .Label_FA88
al 00FAE5 .Label_FAE5
al 00FAE8 .Label_FAE8
al 00FA7E .Label_FA7E
al 00FA66 .Label_FA66
al 00FA76 .Label_FA76
al 00FA54 .Label_FA54
al 00FA71 .Label_FA71
al 00FA5F .Label_FA5F
al 00FA44 .Label_FA44
al 00FA5B .Label_FA5B
al 00FA3B .Label_FA3B
al 00FAEB .Label_FAEB
al 00FA38 .Label_FA38
al 00FA2D .Label_FA2D
al 00FA1E .Label_FA1E
al 00FD27 .Label_FD27
al 00FA11 .Label_FA11
al 00F9ED .Label_F9ED
al 00F9F2 .Label_F9F2
al 00FA1B .Label_FA1B
al 00F9D8 .Label_F9D8
al 00F9E3 .Label_F9E3
al 00F9DD .Label_F9DD
al 00FAEF .Label_FAEF
al 00F9BE .Label_F9BE
al 00F9B5 .Label_F9B5
al 00F9A2 .Label_F9A2
al 00F987 .Label_F987
al 00F981 .Label_F981
al 00F979 .Label_F979
al 00F978 .Label_F978
al 00F974 .Label_F974
al 00F96B .Label_F96B
al 00F8F3 .Label_F8F3
al 00F8EF .Label_F8EF
al 00F96D .Label_F96D
al 00F8EC .Label_F8EC
al 00F8EB .Label_F8EB
al 00F8DA .Label_F8DA
al 00F8D5 .Label_F8D5
al 00F8D8 .Label_F8D8
al 00F8CF .Label_F8CF
al 00F8C8 .Label_F8C8
al 00F8C6 .Label_F8C6
al 00F8CB .Label_F8CB
al 00F8C2 .Label_F8C2
al 00FA91 .Label_FA91
al 00EF5A .Label_EF5A
al 00EF48 .Label_EF48
al 00EF36 .Label_EF36
al 00EF29 .Label_EF29
al 00EF16 .Label_EF16
al 00EEEE .Label_EEEE
al 00EEBB .Label_EEBB
al 00EEB9 .Label_EEB9
al 00EE81 .Label_EE81
al 00EE4C .Label_EE4C
al 00EE40 .Label_EE40
al 00EE1E .Label_EE1E
al 00EE1F .Label_EE1F
al 00EDF1 .Label_EDF1
al 00EDDD .Label_EDDD
al 00EF50 .Label_EF50
al 00EDE7 .Label_EDE7
al 00EDA9 .Label_EDA9
al 00ED9C .Label_ED9C
al 00EDAC .Label_EDAC
al 00ED50 .Label_ED50
al 00ED40 .Label_ED40
al 00ED6C .Label_ED6C
al 00ED18 .Label_ED18
al 00ED20 .Label_ED20
al 00ECF2 .Label_ECF2
al 00ECFB .Label_ECFB
al 00ECBD .Label_ECBD
al 00ECA7 .Label_ECA7
al 00ECAA .Label_ECAA
al 00EC91 .Label_EC91
al 00EC6F .Label_EC6F
al 00EC5B .Label_EC5B
al 00EC51 .Label_EC51
al 00EC1B .Label_EC1B
al 00EC25 .Label_EC25
al 00EBF2 .Label_EBF2
al 00EBE0 .Label_EBE0
al 00EBCC .Label_EBCC
al 00EBC9 .Label_EBC9
al 00EBBC .Label_EBBC
al 00EBB8 .Label_EBB8
al 00EC13 .Label_EC13
al 00EB84 .Label_EB84
al 00EB74 .Label_EB74
al 00EB63 .Label_EB63
al 00EB5E .Label_EB5E
al 00EB53 .Label_EB53
al 00EB4A .Label_EB4A
al 00EB42 .Label_EB42
al 00EB32 .Label_EB32
al 00EB1C .Label_EB1C
al 00EB6B .Label_EB6B
al 00EAED .Label_EAED
al 00EECC .Label_EECC
al 00EAE2 .Label_EAE2
al 00EADC .Label_EADC
al 00EEBC .Label_EEBC
al 00EAD3 .Label_EAD3
al 00EAC5 .Label_EAC5
al 00EAB7 .Label_EAB7
al 00EADF .Label_EADF
al 00EAB5 .Label_EAB5
al 00EABD .Label_EABD
al 00EBE9 .Label_EBE9
al 00EA9F .Label_EA9F
al 00EC30 .Label_EC30
al 00EC14 .Label_EC14
al 00EA87 .Label_EA87
al 00EA90 .Label_EA90
al 00EA7C .Label_EA7C
al 00EA79 .Label_EA79
al 00EA94 .Label_EA94
al 00EA91 .Label_EA91
al 00EA97 .Label_EA97
al 00EA54 .Label_EA54
al 00EA4C .Label_EA4C
al 00EA36 .Label_EA36
al 00EA37 .Label_EA37
al 00EA2F .Label_EA2F
al 00EA1D .Label_EA1D
al 00E9F2 .Label_E9F2
al 00E9E8 .Label_E9E8
al 00E9FA .Label_E9FA
al 00E9D2 .Label_E9D2
al 00E9AE .Label_E9AE
al 00E9AC .Label_E9AC
al 00E9A2 .Label_E9A2
al 00E977 .Label_E977
al 00EEA5 .Label_EEA5
al 00E94B .Label_E94B
al 00E94D .Label_E94D
al 00E948 .Label_E948
al 00E925 .Label_E925
al 00E911 .Label_E911
al 00E90A .Label_E90A
al 00E905 .Label_E905
al 00E95E .Label_E95E
al 00E907 .Label_E907
al 00E8F2 .Label_E8F2
al 00E92E .Label_E92E
al 00E8D0 .Label_E8D0
al 00E8BE .Label_E8BE
al 00E8AD .Label_E8AD
al 00E973 .Label_E973
al 00E8D3 .Label_E8D3
al 00E890 .Label_E890
al 00E883 .Label_E883
al 00E889 .Label_E889
al 00E9D3 .Label_E9D3
al 00E952 .Label_E952
al 00E877 .Label_E877
al 00EA25 .Label_EA25
al 00E893 .Label_E893
al 00E842 .Label_E842
al 00E96D .Label_E96D
al 00E830 .Label_E830
al 00E824 .Label_E824
al 00E7E4 .Label_E7E4
al 00E84A .Label_E84A
al 00E806 .Label_E806
al 00E805 .Label_E805
al 00E7D6 .Label_E7D6
al 00E86B .Label_E86B
al 00E7CB .Label_E7CB
al 00E9A0 .Label_E9A0
al 00EEAD .Label_EEAD
al 00E7BD .Label_E7BD
al 00E7AD .Label_E7AD
al 00E7AC .Label_E7AC
al 00E787 .Label_E787
al 00E772 .Label_E772
al 00E75D .Label_E75D
al 00E769 .Label_E769
al 00E74D .Label_E74D
al 00E768 .Label_E768
al 00E73E .Label_E73E
al 00E735 .Label_E735
al 00E72D .Label_E72D
al 00E73D .Label_E73D
al 00E719 .Label_E719
al 00E711 .Label_E711
al 00E448 .Label_E448
al 00E440 .Label_E440
al 00E42F .Label_E42F
al 00E403 .Label_E403
al 00E400 .Label_E400
al 00E41E .Label_E41E
al 00E3F2 .Label_E3F2
al 00E3DD .Label_E3DD
al 00E3E0 .Label_E3E0
al 00E3F3 .Label_E3F3
al 00E3E3 .Label_E3E3
al 00E3C7 .Label_E3C7
al 00E3BB .Label_E3BB
al 00E3AE .Label_E3AE
al 00E374 .Label_E374
al 00E35C .Label_E35C
al 00E358 .Label_E358
al 00E333 .Label_E333
al 00E34E .Label_E34E
al 00E36C .Label_E36C
al 00E2F6 .Label_E2F6
al 00E2ED .Label_E2ED
al 00E2FD .Label_E2FD
al 00E2E4 .Label_E2E4
al 00E2D1 .Label_E2D1
al 00E2CF .Label_E2CF
al 00E329 .Label_E329
al 00E2B1 .Label_E2B1
al 00E2AA .Label_E2AA
al 00E25E .Label_E25E
al 00E258 .Label_E258
al 00E25F .Label_E25F
al 00E24E .Label_E24E
al 00E239 .Label_E239
al 00E20A .Label_E20A
al 00E20F .Label_E20F
al 00E219 .Label_E219
al 00E1EA .Label_E1EA
al 00E1E4 .Label_E1E4
al 00E1F6 .Label_E1F6
al 00E131 .Label_E131
al 00E129 .Label_E129
al 00E06D .Label_E06D
al 00E077 .Label_E077
al 00E044 .Label_E044
al 00E03C .Label_E03C
al 00E058 .Label_E058
al 00E051 .Label_E051
al 00E023 .Label_E023
al 00E049 .Label_E049
al 00E00F .Label_E00F
al 00ECAF .Label_ECAF
al 00DFEE .Label_DFEE
al 00DFF5 .Label_DFF5
al 00DFF7 .Label_DFF7
al 00DFC8 .Label_DFC8
al 00DFB9 .Label_DFB9
al 00DFA1 .Label_DFA1
al 00DF9F .Label_DF9F
al 00DF86 .Label_DF86
al 00DF75 .Label_DF75
al 00DF72 .Label_DF72
al 00DF6C .Label_DF6C
al 00DF87 .Label_DF87
al 00DF5B .Label_DF5B
al 00DF59 .Label_DF59
al 00DF50 .Label_DF50
al 00DFB0 .Label_DFB0
al 00DF60 .Label_DF60
al 00DFAC .Label_DFAC
al 00DF11 .Label_DF11
al 00DF9D .Label_DF9D
al 00DEFE .Label_DEFE
al 00DF07 .Label_DF07
al 00DF24 .Label_DF24
al 00DF37 .Label_DF37
al 00DEDA .Label_DEDA
al 00DEDF .Label_DEDF
al 00DEE0 .Label_DEE0
al 00DEC3 .Label_DEC3
al 00DEBA .Label_DEBA
al 00DEA5 .Label_DEA5
al 00DEA3 .Label_DEA3
al 00DE9A .Label_DE9A
al 00DEAE .Label_DEAE
al 00DE78 .Label_DE78
al 00DE5E .Label_DE5E
al 00DE57 .Label_DE57
al 00DE4E .Label_DE4E
al 00DE3B .Label_DE3B
al 00DE2E .Label_DE2E
al 00DE0E .Label_DE0E
al 00DE02 .Label_DE02
al 00DE05 .Label_DE05
al 00DDFB .Label_DDFB
al 00DE2F .Label_DE2F
al 00DE2C .Label_DE2C
al 00DE04 .Label_DE04
al 00DDB6 .Label_DDB6
al 00DD9A .Label_DD9A
al 00DD89 .Label_DD89
al 00DD7F .Label_DD7F
al 00DD67 .Label_DD67
al 00DD65 .Label_DD65
al 00DD5E .Label_DD5E
al 00DD40 .Label_DD40
al 00DD3C .Label_DD3C
al 00DD11 .Label_DD11
al 00DCEA .Label_DCEA
al 00DCE5 .Label_DCE5
al 00DCDC .Label_DCDC
al 00DD2C .Label_DD2C
al 00DCCE .Label_DCCE
al 00E9B8 .Label_E9B8
al 00E29A .Label_E29A
al 00DDC7 .Label_DDC7
al 00DCC2 .Label_DCC2
al 00DCBF .Label_DCBF
al 00DCBC .Label_DCBC
al 00DCB9 .Label_DCB9
al 00DC91 .Label_DC91
al 00DC92 .Label_DC92
al 00DC86 .Label_DC86
al 00DC6E .Label_DC6E
al 00DC4E .Label_DC4E
al 00DC38 .Label_DC38
al 00DC44 .Label_DC44
al 00DC3B .Label_DC3B
al 00DC50 .Label_DC50
al 00DC1F .Label_DC1F
al 00DC55 .Label_DC55
al 00DBE2 .Label_DBE2
al 00DBFE .Label_DBFE
al 00DBAC .Label_DBAC
al 00DBC6 .Label_DBC6
al 00DB73 .Label_DB73
al 00DB6A .Label_DB6A
al 00DB6B .Label_DB6B
al 00DB4A .Label_DB4A
al 00DB33 .Label_DB33
al 00DB2B .Label_DB2B
al 00DB18 .Label_DB18
al 00DAFC .Label_DAFC
al 00DFD3 .Label_DFD3
al 00DB19 .Label_DB19
al 00DAE3 .Label_DAE3
al 00DABA .Label_DABA
al 00DAC1 .Label_DAC1
al 00DAC0 .Label_DAC0
al 00DB34 .Label_DB34
al 00DA7E .Label_DA7E
al 00DB1E .Label_DB1E
al 00DA6A .Label_DA6A
al 00DA6D .Label_DA6D
al 00DA75 .Label_DA75
al 00DAA5 .Label_DAA5
al 00DA3B .Label_DA3B
al 00DA40 .Label_DA40
al 00DA3C .Label_DA3C
al 00DA46 .Label_DA46
al 00DA24 .Label_DA24
al 00DA1F .Label_DA1F
al 00DA1E .Label_DA1E
al 00DA32 .Label_DA32
al 00DA09 .Label_DA09
al 00DA61 .Label_DA61
al 00D9F3 .Label_D9F3
al 00D9C9 .Label_D9C9
al 00D9D4 .Label_D9D4
al 00D9B7 .Label_D9B7
al 00D9AD .Label_D9AD
al 00D99F .Label_D99F
al 00D99D .Label_D99D
al 00D979 .Label_D979
al 00D95F .Label_D95F
al 00D961 .Label_D961
al 00D965 .Label_D965
al 00D949 .Label_D949
al 00D93C .Label_D93C
al 00D968 .Label_D968
al 00D932 .Label_D932
al 00D990 .Label_D990
al 00EC67 .Label_EC67
al 00D927 .Label_D927
al 00D928 .Label_D928
al 00D988 .Label_D988
al 00D91A .Label_D91A
al 00ECA2 .Label_ECA2
al 00DE83 .Label_DE83
al 00D8F1 .Label_D8F1
al 00EEE3 .Label_EEE3
al 00D8E5 .Label_D8E5
al 00D904 .Label_D904
al 00D8C0 .Label_D8C0
al 00D89D .Label_D89D
al 00D89E .Label_D89E
al 00D8AF .Label_D8AF
al 00D8C1 .Label_D8C1
al 00D871 .Label_D871
al 00D861 .Label_D861
al 00D84F .Label_D84F
al 00D9C5 .Label_D9C5
al 00D829 .Label_D829
al 00D831 .Label_D831
al 00D851 .Label_D851
al 00D7FE .Label_D7FE
al 00D7E0 .Label_D7E0
al 00D7E4 .Label_D7E4
al 00D7CE .Label_D7CE
al 00D7C1 .Label_D7C1
al 00D7AA .Label_D7AA
al 00D9E0 .Label_D9E0
al 00D79D .Label_D79D
al 00EE82 .Label_EE82
al 00DFC4 .InitSpritesOffscreen
al 00D785 .Label_D785
al 00D792 .Label_D792
al 00D77F .Label_D77F
al 00D797 .Label_D797
al 00D877 .Label_D877
al 00D753 .Label_D753
al 00D767 .Label_D767
al 00D744 .Label_D744
al 00D90D .Label_D90D
al 00D885 .Label_D885
al 00D70F .Label_D70F
al 00D855 .Label_D855
al 00D708 .Label_D708
al 00D80E .Label_D80E
al 00D701 .Label_D701
al 00D7C2 .Label_D7C2
al 00D6FA .Label_D6FA
al 00D73C .Label_D73C
al 00D6F1 .Label_D6F1
al 00D6E6 .Label_D6E6
al 00D710 .Label_D710
al 00D69A .Label_D69A
al 00D611 .Label_D611
al 00D5FE .Label_D5FE
al 00D60A .Label_D60A
al 00D5FB .Label_D5FB
al 00D609 .Label_D609
al 00D5EC .Label_D5EC
al 00D5F0 .Label_D5F0
al 00D5E6 .Label_D5E6
al 00D5E1 .Label_D5E1
al 00D5DC .Label_D5DC
al 00D588 .Label_D588
al 00D58B .Label_D58B
al 00D502 .Label_D502
al 00D48D .Label_D48D
al 00D48E .Label_D48E
al 00D47D .Label_D47D
al 00D47A .Label_D47A
al 00D459 .Label_D459
al 00D451 .Label_D451
al 00D450 .Label_D450
al 00D444 .Label_D444
al 00D440 .Label_D440
al 00D5D5 .Label_D5D5
al 00D40B .Label_D40B
al 00E13D .Label_E13D
al 00D3EA .Label_D3EA
al 00D39F .Label_D39F
al 00D38F .Label_D38F
al 00D381 .Label_D381
al 00D37D .Label_D37D
al 00D36D .Label_D36D
al 00D3A7 .Label_D3A7
al 00D34A .Label_D34A
al 00D33A .Label_D33A
al 00D31F .Label_D31F
al 00D30B .Label_D30B
al 00D306 .Label_D306
al 00D593 .Label_D593
al 00D2E9 .Label_D2E9
al 00D2E4 .Label_D2E4
al 00D2D0 .Label_D2D0
al 00D2C7 .Label_D2C7
al 00D27F .Label_D27F
al 00D277 .Label_D277
al 00D26A .Label_D26A
al 00D25F .Label_D25F
al 00D25B .Label_D25B
al 00D257 .Label_D257
al 00D251 .Label_D251
al 00D297 .Label_D297
al 00D218 .Label_D218
al 00D20F .Label_D20F
al 00D217 .Label_D217
al 00D1E9 .Label_D1E9
al 00D1F5 .Label_D1F5
al 00D1D4 .Label_D1D4
al 00D1FF .Label_D1FF
al 00D1FA .Label_D1FA
al 00D1A9 .Label_D1A9
al 00D1CF .Label_D1CF
al 00D1F6 .Label_D1F6
al 00D1A0 .Label_D1A0
al 00D18B .Label_D18B
al 00D179 .Label_D179
al 00D16D .Label_D16D
al 00D151 .Label_D151
al 00D155 .Label_D155
al 00D144 .Label_D144
al 00D17C .Label_D17C
al 00D138 .Label_D138
al 00D11C .Label_D11C
al 00D116 .Label_D116
al 00D15A .AdjustDecimalColumns
al 00D139 .Label_D139
al 00D0C1 .Label_D0C1
al 00D0E8 .Label_D0E8
al 00D0E4 .Label_D0E4
al 00D0B4 .Label_D0B4
al 00D0A2 .Label_D0A2
al 00D083 .Label_D083
al 00D0B3 .Label_D0B3
al 00D03F .Label_D03F
al 00D02F .Label_D02F
al 00D02C .Label_D02C
al 00CFC6 .Label_CFC6
al 00D2DF .Label_D2DF
al 00CFB6 .Label_CFB6
al 00CFCA .Label_CFCA
al 00CF9E .Label_CF9E
al 00CFC4 .Label_CFC4
al 00CFA8 .Label_CFA8
al 00CFA7 .Label_CFA7
al 00CF8B .Label_CF8B
al 00CF89 .Label_CF89
al 00CF83 .Label_CF83
al 00CF88 .Label_CF88
al 00CF5B .Label_CF5B
al 00CF48 .Label_CF48
al 00CF53 .Label_CF53
al 00CF3B .Label_CF3B
al 00CF2C .Label_CF2C
al 00CF25 .Label_CF25
al 00CF12 .Label_CF12
al 00CF19 .Label_CF19
al 00CF04 .Label_CF04
al 00CEEF .Label_CEEF
al 00CED9 .Label_CED9
al 00CEC3 .Label_CEC3
al 00CEB1 .Label_CEB1
al 00CE94 .Label_CE94
al 00CE86 .Label_CE86
al 00CE5A .Label_CE5A
al 00CE84 .NextIndex
al 00CE43 .Label_CE43
al 00CE2C .Label_CE2C
al 00CE23 .Label_CE23
al 00CE18 .Label_CE18
al 00CE16 .Label_CE16
al 00CDEC .Label_CDEC
al 00CDE9 .Label_CDE9
al 00CDE6 .Label_CDE6
al 00CDDA .Label_CDDA
al 00CDC4 .Label_CDC4
al 00CD9A .Label_CD9A
al 00CD94 .Label_CD94
al 00CD81 .Label_CD81
al 00CD68 .Label_CD68
al 00CD52 .Label_CD52
al 00CD2A .Label_CD2A
al 00CD1B .Label_CD1B
al 00CD34 .Label_CD34
al 00CD42 .Label_CD42
al 00CCFE .Label_CCFE
al 00CCD5 .Label_CCD5
al 00CCD3 .Label_CCD3
al 00CCC2 .Label_CCC2
al 00CC8F .Label_CC8F
al 00CC84 .Label_CC84
al 00CC5F .Label_CC5F
al 00CC54 .Label_CC54
al 00CC4C .Label_CC4C
al 00CC22 .Label_CC22
al 00CC13 .Label_CC13
al 00CC0D .Label_CC0D
al 00CC1D .Label_CC1D
al 00CBE4 .Label_CBE4
al 00CBE9 .Label_CBE9
al 00CBDD .Label_CBDD
al 00CC29 .Label_CC29
al 00CBC3 .Label_CBC3
al 00CBB9 .Label_CBB9
al 00CB9E .Label_CB9E
al 00CB85 .Label_CB85
al 00CB6A .Label_CB6A
al 00CB65 .Label_CB65
al 00CB84 .Label_CB84
al 00CB38 .Label_CB38
al 00CB50 .Label_CB50
al 00CB48 .Label_CB48
al 00CB40 .Label_CB40
al 00CB29 .Label_CB29
al 00CB18 .Label_CB18
al 00CB08 .Label_CB08
al 00CB4F .Label_CB4F
al 00CAF2 .Label_CAF2
al 00CADE .Label_CADE
al 00CACC .Label_CACC
al 00CAB3 .Label_CAB3
al 00CAB6 .Label_CAB6
al 00CA7D .Label_CA7D
al 00CA77 .Label_CA77
al 00CA73 .Label_CA73
al 00CA65 .Label_CA65
al 00CE00 .Label_CE00
al 00CA5E .Label_CA5E
al 00CA35 .Label_CA35
al 00CD43 .Label_CD43
al 00CA20 .Label_CA20
al 00CA22 .Label_CA22
al 00CA18 .Label_CA18
al 00CA15 .Label_CA15
al 00CA0C .Label_CA0C
al 00C9FE .Label_C9FE
al 00C9F8 .Label_C9F8
al 00C9DB .Label_C9DB
al 00C9F1 .Label_C9F1
al 00C9D1 .Label_C9D1
al 00C9CB .Label_C9CB
al 00C9BD .Label_C9BD
al 00C9D2 .Label_C9D2
al 00C99E .Label_C99E
al 00C98E .Label_C98E
al 00C992 .Label_C992
al 00CF67 .Label_CF67
al 00C9DD .Label_C9DD
al 00C973 .Label_C973
al 00C96F .Label_C96F
al 00C954 .Label_C954
al 00C959 .Label_C959
al 00D9EA .Label_D9EA
al 00C939 .Label_C939
al 00C92C .Label_C92C
al 00C936 .Label_C936
al 00C91D .Label_C91D
al 00C917 .Label_C917
al 00C91C .Label_C91C
al 00C90A .Label_C90A
al 00CE95 .Label_CE95
al 00C916 .Label_C916
al 00C8F1 .Label_C8F1
al 00C8F4 .Label_C8F4
al 00CAEB .Label_CAEB
al 00CEA3 .Label_CEA3
al 00C8DE .Label_C8DE
al 00C8D7 .Label_C8D7
al 00C8E4 .Label_C8E4
al 00C8CF .Label_C8CF
al 00C8C7 .Label_C8C7
al 00C8B7 .Label_C8B7
al 00C895 .Label_C895
al 00C8A4 .Label_C8A4
al 00CEBA .Label_CEBA
al 00C883 .Label_C883
al 00C881 .Label_C881
al 00C884 .Label_C884
al 00C86C .Label_C86C
al 00C853 .Label_C853
al 00C8B5 .Label_C8B5
al 00C891 .Label_C891
al 00C8AD .Label_C8AD
al 00C9E6 .Label_C9E6
al 00C824 .Label_C824
al 00C86F .Label_C86F
al 00C7F9 .Label_C7F9
al 00C97D .Label_C97D
al 00C7EA .Label_C7EA
al 00CAA4 .Label_CAA4
al 00C7F3 .Label_C7F3
al 00C8D1 .Label_C8D1
al 00C7DE .Label_C7DE
al 00C7DA .Label_C7DA
al 00C9A1 .Label_C9A1
al 00C93A .Label_C93A
al 00C7CD .Label_C7CD
al 00C7CA .Label_C7CA
al 00C7C7 .Label_C7C7
al 00CCA0 .PushTablePointerDispatch
al 00C7B3 .Label_C7B3
al 00C797 .Label_C797
al 00CE9C .Label_CE9C
al 00C792 .Label_C792
al 00C7B7 .Label_C7B7
al 00C770 .Label_C770
al 00C775 .Label_C775
al 00C781 .Label_C781
al 00C782 .Label_C782
al 00C75A .Label_C75A
al 00C758 .Label_C758
al 00CC73 .Label_CC73
al 00D9B6 .Label_D9B6
al 00C727 .Label_C727
al 00C73B .Label_C73B
al 00DB2D .Label_DB2D
al 00C708 .Label_C708
al 00D9FE .Label_D9FE
al 00C6FC .Label_C6FC
al 00DBFF .Label_DBFF
al 00DB53 .Label_DB53
al 00C747 .Label_C747
al 00DEAF .Label_DEAF
al 00C744 .Label_C744
al 00D789 .Label_D789
al 00C6E0 .Label_C6E0
al 00C6E9 .Label_C6E9
al 00C6BF .Label_C6BF
al 00ECEC .Label_ECEC
al 00C6CD .Label_C6CD
al 00C6C9 .Label_C6C9
al 00C6BC .Label_C6BC
al 00C75D .Label_C75D
al 00DFBD .Label_DFBD
al 00C697 .Label_C697
al 00C686 .Label_C686
al 00C66F .Label_C66F
al 00CBAE .Label_CBAE
al 00CBB6 .Label_CBB6
al 00CBC4 .Label_CBC4
al 00DC75 .Label_DC75
al 00CC3F .Label_CC3F
al 00C785 .Label_C785
al 00D6BA .Label_D6BA
al 00CAB9 .DispatchTableF393
al 00C647 .Label_C647
al 00C63F .Label_C63F
al 00C657 .Label_C657
al 00DDE0 .Label_DDE0
al 00DEEC .Label_DEEC
al 00C62C .Label_C62C
al 00C629 .Label_C629
al 00C636 .Label_C636
al 00D019 .Label_D019
al 00C65D .Label_C65D
al 00DFBA .Label_DFBA
al 00C605 .Label_C605
al 00CB9B .Label_CB9B
al 00C5F8 .Label_C5F8
al 00EF32 .Label_EF32
al 00E709 .Label_E709
al 00E26D .Label_E26D
al 00E1CE .Label_E1CE
al 00DFF8 .Label_DFF8
al 00E1F7 .Label_E1F7
al 00E21A .Label_E21A
al 00E2AB .Label_E2AB
al 00EDEB .Label_EDEB
al 00E795 .Label_E795
al 00EA31 .Label_EA31
al 00E783 .Label_E783
al 00C66A .Label_C66A
al 00C5DB .Label_C5DB
al 00D301 .Label_D301
al 00D202 .Label_D202
al 00D56E .Label_D56E
al 00C5A3 .JsrThunkTable
al 00C57E .Label_C57E
al 00C570 .Label_C570
al 00C55C .Label_C55C
al 00C574 .Label_C574
al 00C561 .Label_C561
al 00C568 .Label_C568
al 00C58E .Label_C58E
al 00E132 .Label_E132
al 00D4FE .Label_D4FE
al 00C543 .Label_C543
al 00CD9E .DispatchViaStackPointer
al 00C501 .Label_C501
al 00C4D9 .Label_C4D9
al 00C4D7 .Label_C4D7
al 00C4F9 .Label_C4F9
al 00C50B .Label_C50B
al 00C507 .Label_C507
al 00C528 .Label_C528
al 00CDB4 .AdvanceDispatchPointer
al 00C494 .Label_C494
al 00C46E .Label_C46E
al 00C4AE .Label_C4AE
al 00C456 .Label_C456
al 00C446 .Label_C446
al 00C443 .Label_C443
al 00C440 .Label_C440
al 00C43C .Label_C43C
al 00C430 .Label_C430
al 00C3D5 .Label_C3D5
al 00C3DC .Label_C3DC
al 00C3C1 .Label_C3C1
al 00C3B9 .Label_C3B9
al 00C38B .Label_C38B
al 00C39D .Label_C39D
al 00C399 .Label_C399
al 00C3A8 .Label_C3A8
al 00C402 .Label_C402
al 00C369 .Label_C369
al 00C37A .Label_C37A
al 00C376 .Label_C376
al 00C35A .Label_C35A
al 00C32E .Label_C32E
al 00C2FF .Label_C2FF
al 00C2F3 .Label_C2F3
al 00C2CB .Label_C2CB
al 00C308 .Label_C308
al 00C2B6 .Label_C2B6
al 00C2BC .Label_C2BC
al 00C304 .Label_C304
al 00C429 .Label_C429
al 00C3C2 .Label_C3C2
al 00C3E3 .Label_C3E3
al 00C2A7 .Label_C2A7
al 00C27B .Label_C27B
al 00C26E .Label_C26E
al 00C3F5 .Label_C3F5
al 00C24B .Label_C24B
al 00C286 .Label_C286
al 00C236 .Label_C236
al 00C23C .Label_C23C
al 00C282 .Label_C282
al 00C41F .Label_C41F
al 00C1FD .Label_C1FD
al 00C1EC .Label_C1EC
al 00C212 .Label_C212
al 00C221 .Label_C221
al 00C1CE .Label_C1CE
al 00C19F .Label_C19F
al 00C189 .Label_C189
al 00C193 .Label_C193
al 00C37D .Label_C37D
al 00C35B .Label_C35B
al 00C334 .Label_C334
al 00C2AD .Label_C2AD
al 00C22D .Label_C22D
al 00C1C3 .Label_C1C3
al 00C196 .Label_C196
al 00C164 .Label_C164
al 00C155 .Label_C155
al 00C158 .Label_C158
al 00C15B .Label_C15B
al 00C130 .Label_C130
al 00C12E .Label_C12E
al 00C13E .Label_C13E
al 00C3A0 .Label_C3A0
al 00C161 .Label_C161
al 00C15E .Label_C15E
al 00C14F .Label_C14F
al 00C152 .Label_C152
al 00C0F3 .Label_C0F3
al 00C44A .Label_C44A
al 00C149 .NmiPhaseHandlerA
al 00C0C2 .Label_C0C2
al 00C0BF .Label_C0BF
al 00C0B6 .NmiPhaseDispatch
al 00CAF7 .Label_CAF7
al 00CCC5 .Label_CCC5
al 00CE09 .Label_CE09
al 00CA66 .Label_CA66
al 00CCFF .Label_CCFF
al 00EE6A .Label_EE6A
al 00CB58 .Label_CB58
al 00C0AC .Label_C0AC
al 00C07D .NmiHandler
al 00D328 .TestRamFlagPair0500
al 00C077 .Label_C077
al 00C06A .Label_C06A
al 00C4B8 .Label_C4B8
al 00CD88 .Label_CD88
al 00F8A7 .Label_F8A7
al 00C060 .Label_C060
al 00C05D .Label_C05D
al 00C04F .Label_C04F
al 00CA2B .Label_CA2B
al 00CA1B .Label_CA1B
al 00C02B .Label_C02B
al 00C01D .ClearRamPageLoop
al 00C002 .WaitVblank1
al 00C000 .Reset