Promote CIRCUS from _wip to top-level project
Moves CIRCUS from _wip/CIRCUS to CIRCUS/ with full ROM build: - Adds header.s, chr.s, linker.cfg (HEADER+PRG+CHR segments) - Updates Makefile to build and verify reconstructed.nes vs rom.nes - Adds rom.nes copy + copilot/rom.nes symlink per repo convention - Verified byte-identical build Updates root OVERVIEW.md: - Removes CIRCUS from _wip skeleton table (25 -> 23 skeletons) - Adds CIRCUS as #12 in numbered inventory (BYTE-IDENTICAL, Pass 2/3) - Updates summary count from 11 to 12 projects
This commit is contained in:
1 parent
3877214637
commit
ef4a1044f7
22 files changed
+1125
-74
No files matched your search
Binary file not shown.
@@ -1,53 +0,0 @@
|
||||
# CIRCUS — Skeleton Project
|
||||
|
||||
ROM: `_wip/CIRCUS/CIRCUS.NES` (24,592 bytes, iNES). Status: **SKELETON — not yet disassembled.** The entire 16 KB PRG bank is a single unclassified block; `copilot/prg.s` is the default-project skeleton (`default_project.tar.gz`) that reproduces it as one `.incbin`. The skeleton build is **byte-identical** at the PRG level.
|
||||
|
||||
|
||||
## ROM Facts
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Mapper | 0 (NROM) — from the iNES header |
|
||||
| PRG | 16 KB (header claims map at CPU $C000–$FFFF) |
|
||||
| CHR | 8 KB |
|
||||
| Mirroring | Horizontal |
|
||||
| Battery-backed flag | clear |
|
||||
| ROM SHA-256 | `608a8c542e49d5fa500634aa49ee96921d52c49c6e1646db7ca21ac7682ce4ba` |
|
||||
| PRG SHA-256 | `e707fddce05efeb064b644b91b36969e4f4d7723db9965a1a1a85021a6a3da57` |
|
||||
|
||||
## Interrupt Vectors (taken from PRG $3FFA–$3FFF)
|
||||
|
||||
| Vector | Target | Note |
|
||||
|--------|--------|------|
|
||||
| NMI | `$C05A` | per-frame heartbeat |
|
||||
| RESET | `$C000` | cold start at $C000 — the usual pattern in this repo |
|
||||
| IRQ | `$4CB7` | $4CB7 is outside the mapped address space — effectively unused |
|
||||
|
||||
## `copilot/` Contents
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `CIRCUS.NES` | original ROM image (reference) |
|
||||
| `prg.bin` / `header.bin` / `chr.bin` | split image, produced by `_tools/splitnes.py` |
|
||||
| `prg.s` | Pass-1 skeleton: `.incbin "prg.bin", $0000, $4000` (whole PRG) |
|
||||
| `symbols.inc` | shared NES hardware constants (PPU/APU/controller, from the skeleton) |
|
||||
| `locals.inc` | project-local zero-page aliases — empty for now (filled in Pass 2) |
|
||||
| `linker.cfg` | PRG at $C000, 16 KB, `fill = yes` |
|
||||
| `Makefile` | links `reconstructed_prg.bin` and `cmp`s it against `prg.bin` |
|
||||
| `reconstructed_prg.bin` | build output from the last verified build |
|
||||
|
||||
Header/CHR are reproduced verbatim from `header.bin`/`chr.bin` (not linked): `make` verifies **PRG bytes only** at this stage, which is exactly what a skeleton proves. When this project is promoted to a full disassembly, `header.s` / `chr.s` (as e.g. `Burger Time (U)`) and a full-ROM `make` target get added.
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
cd "_wip/CIRCUS/copilot"
|
||||
make # → cmp reconstructed_prg.bin prg.bin → "BYTE-IDENTICAL"
|
||||
```
|
||||
|
||||
## Next Steps (per `PROMPTS.md`)
|
||||
|
||||
1. **Pass 1** — replace the blanket `.incbin` with classified code/data: trace reachability from RESET ($C000) and NMI ($C05A), emit per-instruction `; PRG:$xxxx AA BB` annotations, keep unreached bytes as explicit `.byte` blocks.
|
||||
2. **Pass 2** — replace `Label_`/`Sub_` names with semantic routine names; fill `locals.inc`.
|
||||
3. **Pass 3** — name data tables/structures; release provisional flags.
|
||||
4. **Promotion** — move to a top-level `<name>/copilot/` folder, add full-ROM build (header.s + chr.s + vectors), and write the power-on flow `OVERVIEW.md` in the established style; then it joins the root index's numbered inventory.
|
||||
@@ -1,10 +0,0 @@
|
||||
all: reconstructed_prg.bin verify
|
||||
prg.o: prg.s symbols.inc prg.bin
|
||||
ca65 -g -o $@ prg.s
|
||||
reconstructed_prg.bin: prg.o linker.cfg
|
||||
ld65 -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o $@ prg.o
|
||||
verify: reconstructed_prg.bin prg.bin
|
||||
cmp reconstructed_prg.bin prg.bin
|
||||
@echo BYTE-IDENTICAL
|
||||
clean:
|
||||
rm -f prg.o reconstructed_prg.bin reconstructed.map reconstructed.lbl
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,6 +0,0 @@
|
||||
MEMORY {
|
||||
PRG: start = $C000, size = $4000, file = %O, fill = yes;
|
||||
}
|
||||
SEGMENTS {
|
||||
PRG: load = PRG, type = ro;
|
||||
}
|
||||
@@ -1,161 +0,0 @@
|
||||
; CIRCUS application-specific RAM aliases - Pass 2
|
||||
; Generated from a complete static trace of direct zero-page accesses.
|
||||
; ZpXX names indicate confirmed storage with a role not yet unique enough for a behavioral name.
|
||||
|
||||
Zp00 = $00 ; 24 refs; reads=13; writes=14; ClearInternalRamLoop, InitializeVramQueue, RunMainStateDispatcher
|
||||
StateSubstage = $01 ; 14 refs; reads=12; writes=6; SecondaryStateHandlerPointerTable, ContinueStateInitialization, UpdateMenuState_OnNonzero_C237
|
||||
Zp01 = $01 ; indexed structure-field alias
|
||||
StateTimer = $02 ; 21 refs; reads=13; writes=15; InitializeCurrentScreen, UpdateMenuState, FinishStateHandler
|
||||
Zp02 = $02 ; indexed structure-field alias
|
||||
Zp03 = $03 ; 25 refs; reads=18; writes=7; FinishStateHandler_OnZero_C2D2, FinishStateHandler_OnNonnegative_C2EB, FinishStateHandler_OnNonzero_C32D
|
||||
Zp04 = $04 ; 11 refs; reads=7; writes=8; NmiHandler, FinishNmiPpuUpdates, ResetPpuScroll
|
||||
Zp05 = $05 ; 6 refs; reads=4; writes=2; AdvanceRoundTransition_OnZero_C34B, ReadControllers_OnNonzero_C40D, ReadControllers_StoreAndContinue_C444
|
||||
Zp06 = $06 ; 2 refs; reads=1; writes=1; ProcessAudioFrame_JoinBranchPaths_F8AD, DecodeAudioStream_OnNotEqualFD_F902
|
||||
Zp07 = $07 ; 4 refs; reads=2; writes=2; ReadControllers_StoreAndContinue_C444, ProcessAudioFrame_JoinBranchPaths_F8AD, DecodeAudioStream_OnNotEqualFD_F902
|
||||
Zp08 = $08 ; 4 refs; reads=1; writes=3; RequestAudioSequence_OnNonzero_F835, DecodeAudioStream_IncrementAndContinue_F8E1, ExecuteAudioCommand_OnEqual04_FA80
|
||||
ControllerEdgeFlags = $09 ; 22 refs; reads=17; writes=6; RunMainStateDispatcher, UpdateMenuState, ReadControllers_CallNext_C64B
|
||||
Zp09 = $09 ; indexed structure-field alias
|
||||
Zp0A = $0A ; 11 refs; reads=5; writes=6; FinishStateHandler_OnZero_C28F, FinishStateHandler_LoadAndContinue_C2AB, FinishStateHandler_OnNonnegative_C2EB
|
||||
Zp0B = $0B ; 4 refs; reads=2; writes=2; FinishStateHandler_OnNonnegative_C2EB, AdvanceRoundTransition_OnZero_C39A, ExecuteAudioCommand_JoinBranchPaths_FA12
|
||||
Zp0C = $0C ; 16 refs; reads=12; writes=4; DispatchVariantObjectUpdate_OnZero_D82E, DispatchVariantObjectUpdate_JoinBranchPaths_D88A, DispatchVariantObjectUpdate_OnBelow40_D8B7
|
||||
Zp0D = $0D ; 6 refs; reads=5; writes=1; DispatchVariantObjectUpdate_OnZero_DA20, ObjectStateLookupTables_OnNonnegative_F34D, ExecuteAudioCommand_OnZero_F9D1
|
||||
Zp0E = $0E ; 7 refs; reads=2; writes=5; UpdateMenuState_OnZero_C22B, FinishStateHandler_OnNonzero_C31B, ReadControllers_OnNonzero_C40D
|
||||
Zp0F = $0F ; 18 refs; reads=11; writes=9; ReadControllers_JoinBranchPaths_C8E2, DispatchVariantObjectUpdate_JoinBranchPaths_D971, DispatchVariantObjectUpdate_OnEqualF0_D9E6
|
||||
Zp10 = $10 ; 2 refs; reads=1; writes=1; ExecuteAudioCommand_OnNonzero_F99B, ExecuteAudioCommand_OnZero_F9D1
|
||||
Zp12 = $12 ; 1 refs; reads=1; writes=0; SetPaletteRamAddress_OnZero_CA29
|
||||
Zp1E = $1E ; 2 refs; reads=1; writes=1; RequestAudioSequence, RequestAudioSequence_OnZero_F85D
|
||||
Zp23 = $23 ; 1 refs; reads=1; writes=0; SetPaletteRamAddress_LoadAndContinue_CA31
|
||||
Zp2F = $2F ; 4 refs; reads=2; writes=2; RequestAudioSequence, RequestAudioSequence_OnNonzero_F835, RequestAudioSequence_OnEqual08_F867
|
||||
Zp34 = $34 ; 1 refs; reads=1; writes=0; SetPaletteRamAddress_LoadAndContinue_CA31
|
||||
Zp40 = $40 ; 2 refs; reads=1; writes=1; RequestAudioSequence, RequestAudioSequence_JoinBranchPaths_F873
|
||||
Zp45 = $45 ; 1 refs; reads=1; writes=0; SetPaletteRamAddress_LoadAndContinue_CA25
|
||||
Zp4F = $4F ; 2 refs; reads=1; writes=1; RequestAudioSequence, RequestAudioSequence_JoinBranchPaths_F873
|
||||
Zp50 = $50 ; 6 refs; reads=5; writes=2; ReadControllers_LoadAndContinue_C470, ReadControllers_OnNonzero_C480, ReadControllers_OnNonnegative_C591
|
||||
Zp51 = $51 ; 5 refs; reads=2; writes=3; SetupScreenPaletteTransfer_LoadIndexAndContinue_CF58, SetupScreenPaletteTransfer_OnZero_D1DC, SetupScreenPaletteTransfer_LoadIndexAndContinue_D1E4
|
||||
Zp52 = $52 ; 5 refs; reads=5; writes=0; ObjectStateLookupTables_OnCarrySet_E548, ObjectStateLookupTables_JoinBranchPaths_E581, ObjectStateLookupTables_OnNonnegative_EC68
|
||||
PpuCtrlShadow = $53 ; 11 refs; reads=8; writes=3; WriteMaskedPpuControl, InitializeApuAndPpu_LoadAndContinue_C3C1, SetPaletteRamAddress_LoadAndContinue_CA4B
|
||||
PpuMaskShadow = $54 ; 3 refs; reads=1; writes=2; ApplyPpuMaskShadow, SetVisiblePpuMask, ConfigurePpuForScreenTransfer
|
||||
Zp56 = $56 ; 11 refs; reads=6; writes=5; DispatchVariantObjectUpdate_OnNotEqual02_D84A, DispatchVariantObjectUpdate_OnNotEqual03_D86F, DispatchVariantObjectUpdate_OnNonzero_D987
|
||||
Zp59 = $59 ; 1 refs; reads=0; writes=1; ClearInternalRamLoop
|
||||
Zp5F = $5F ; 2 refs; reads=1; writes=1; FinishStateHandler_OnNonzero_C32D
|
||||
Zp60 = $60 ; 3 refs; reads=3; writes=1; FinishStateHandler_OnZero_C28F, AdvanceRoundTransition_OnZero_C34B, ReadControllers_LoadAndContinue_C67B
|
||||
Zp61 = $61 ; 6 refs; reads=4; writes=2; FinishStateHandler_OnZero_C2B2, AdvanceRoundTransition_OnZero_C39A, ReadControllers_LoadAndContinue_C62D
|
||||
CurrentGameVariant = $63 ; 11 refs; reads=10; writes=1; ReadControllers_LoadIndexAndContinue_C835, ReadControllers_OnEqual06_C8C1, SetupScreenPaletteTransfer_LoadAndContinue_CD28
|
||||
Zp64 = $64 ; 13 refs; reads=12; writes=1; ReadControllers_LoadIndexAndContinue_C835, ReadControllers_OnZero_C897, SetupScreenPaletteTransfer_LoadAndContinue_CF0D
|
||||
Zp65 = $65 ; 1 refs; reads=0; writes=1; ReadControllers_JoinBranchPaths_C845
|
||||
Zp66 = $66 ; 8 refs; reads=6; writes=4; AdvanceRoundTransition_OnZero_C34B, ReadControllers_OnZero_C897, ReadControllers_OnOverflowClear_C8B3
|
||||
Zp67 = $67 ; 2 refs; reads=1; writes=2; AdvanceRoundTransition_OnZero_C34B
|
||||
Zp68 = $68 ; 5 refs; reads=4; writes=1; SetupScreenPaletteTransfer_LoadAndContinue_CF0D, DispatchVariantObjectUpdate_LoadAndContinue_DA05, ObjectStateLookupTables_OnZero_E685
|
||||
Zp69 = $69 ; 7 refs; reads=6; writes=1; ReadControllers_OnEqual06_C8C1, SetupScreenPaletteTransfer_LoadAndContinue_CF0D, DispatchVariantObjectUpdate_LoadAndContinue_DA05
|
||||
Zp6A = $6A ; 20 refs; reads=16; writes=4; ReadControllers_JoinBranchPaths_C8E2, SetPaletteRamAddress_LoadAndContinue_CC20, SetPaletteRamAddress_OnNonzero_CC40
|
||||
Zp6B = $6B ; 17 refs; reads=12; writes=7; ReadControllers_JoinBranchPaths_C8B5, ReadControllers_OnEqual06_C8C1, ReadControllers_OnAtLeast02_C8D7
|
||||
Zp6C = $6C ; 4 refs; reads=1; writes=4; ObjectStateLookupTables_LoadAndContinue_E5B0, ObjectStateLookupTables_OnNonnegative_EC68, ObjectStateLookupTables_OnNonnegative_EC89
|
||||
Zp6D = $6D ; 9 refs; reads=7; writes=8; ReadControllers_JoinBranchPaths_C8B5, InitializeRoundParameters, ObjectStateLookupTables_OnZero_E659
|
||||
Zp6E = $6E ; 4 refs; reads=1; writes=3; FinishStateHandler_OnNonnegative_C2EB, AdvanceRoundTransition_OnZero_C34B, AdvanceRoundTransition_OnZero_C382
|
||||
Zp6F = $6F ; 2 refs; reads=1; writes=1; ReadControllers_LoadAndContinue_C889
|
||||
Zp70 = $70 ; 28 refs; reads=18; writes=10; ObjectStateLookupTables_JoinBranchPaths_E64C, ObjectStateLookupTables_OnBelow08_E667, ObjectStateLookupTables_OnNonzero_E7A9
|
||||
Zp71 = $71 ; 7 refs; reads=5; writes=2; ObjectStateLookupTables_OnZero_E685, ObjectStateLookupTables_OnZero_E814, ObjectStateLookupTables_LoadAndContinue_E82C
|
||||
Zp72 = $72 ; 4 refs; reads=1; writes=3; ObjectStateLookupTables_OnZero_E693, ObjectStateLookupTables_OnZero_EA68, ObjectStateLookupTables_LoadIndexAndContinue_F2DB
|
||||
Zp73 = $73 ; 34 refs; reads=21; writes=13; SetPaletteRamAddress_LoadAndContinue_CC6C, DispatchVariantObjectUpdate_OnZero_DA3E, DispatchVariantObjectUpdate_OnNonzero_DA76
|
||||
Zp74 = $74 ; 56 refs; reads=41; writes=23; SetPaletteRamAddress_LoadAndContinue_CC6C, DispatchVariantObjectUpdate_OnNotEqual02_D84A, DispatchVariantObjectUpdate_OnNotEqual03_D86F
|
||||
Zp75 = $75 ; 6 refs; reads=3; writes=3; ObjectStateLookupTables_JoinBranchPaths_E823, ObjectStateLookupTables_OnNonzero_E8A8, ObjectStateLookupTables_OnAtLeast04_EB7B
|
||||
Zp76 = $76 ; 30 refs; reads=9; writes=21; DispatchVariantObjectUpdate_JoinBranchPaths_DAB3, DispatchVariantObjectUpdate_StoreAndContinue_DADA, DispatchVariantObjectUpdate_OnCarrySet_DAE4
|
||||
Zp77 = $77 ; 69 refs; reads=33; writes=37; SetPaletteRamAddress_LoadAndContinue_CC16, SetPaletteRamAddress_LoadAndContinue_CC20, SetPaletteRamAddress_OnNonzero_CC40
|
||||
Zp78 = $78 ; 22 refs; reads=9; writes=13; SetPaletteRamAddress_LoadAndContinue_CC16, SetPaletteRamAddress_LoadAndContinue_CC20, SetupScreenPaletteTransfer_LoadAndContinue_CEE5
|
||||
Zp79 = $79 ; 28 refs; reads=17; writes=18; ReadControllers_JoinBranchPaths_C845, ReadControllers_OnNonzero_C861, SetupScreenPaletteTransfer_LoadAndContinue_D1E8
|
||||
Zp7A = $7A ; 17 refs; reads=8; writes=9; SetPaletteRamAddress_LoadAndContinue_CC20, SetupScreenPaletteTransfer_LoadAndContinue_D1E8, SetupScreenPaletteTransfer_OnNonzero_D206
|
||||
Zp7B = $7B ; 27 refs; reads=14; writes=15; SetupScreenPaletteTransfer_OnZero_D21D, SetupScreenPaletteTransfer_OnZero_D255, SetupScreenPaletteTransfer_OnNonzero_D270
|
||||
WorkPointer0Lo = $7C ; 24 refs; reads=14; writes=10; ReadControllers_OnNonzero_C861, SetupScreenPaletteTransfer_CallNext_CEB7, SetupScreenPaletteTransfer_CallNext_D1C4
|
||||
Zp7C = $7C ; indexed structure-field alias
|
||||
WorkPointer0Hi = $7D ; 10 refs; reads=2; writes=9; ReadControllers_OnNonzero_C861, ReadControllers_OnNonzero_C87C, SetupScreenPaletteTransfer_CallNext_CEB7
|
||||
Zp7D = $7D ; indexed structure-field alias
|
||||
WorkPointer1Lo = $7E ; 12 refs; reads=4; writes=8; SetPaletteRamAddress_LoadAndContinue_CBE4, SetupScreenPaletteTransfer_LoadAndContinue_D1E8, SetupScreenPaletteTransfer_OnNonzero_D206
|
||||
Zp7E = $7E ; indexed structure-field alias
|
||||
WorkPointer1Hi = $7F ; 17 refs; reads=10; writes=11; SetPaletteRamAddress_LoadAndContinue_CBE4, SetupScreenPaletteTransfer_LoadAndContinue_D1E8, SetupScreenPaletteTransfer_OnNonzero_D206
|
||||
Zp7F = $7F ; indexed structure-field alias
|
||||
Zp80 = $80 ; 9 refs; reads=2; writes=7; ReadControllers_OnNonzero_C861, DispatchVariantObjectUpdate_OnCarrySet_D9AB, DispatchVariantObjectUpdate_OnNonzero_D9C4
|
||||
Zp81 = $81 ; 2 refs; reads=0; writes=2; ObjectStateLookupTables_OnZero_E685, ObjectStateLookupTables_LoadIndexAndContinue_F2DB
|
||||
Zp82 = $82 ; 2 refs; reads=0; writes=2; ObjectStateLookupTables_OnZero_E693, ObjectStateLookupTables_LoadIndexAndContinue_F2DB
|
||||
Zp83 = $83 ; 7 refs; reads=3; writes=4; DispatchVariantObjectUpdate_OnZero_DA3E, DispatchVariantObjectUpdate_JoinBranchPaths_DAB3, DispatchVariantObjectUpdate_OnCarrySet_DAE4
|
||||
Zp84 = $84 ; 17 refs; reads=13; writes=10; DispatchVariantObjectUpdate_OnNotEqual03_D91A, DispatchVariantObjectUpdate_OnNotEqual03_D93D, DispatchVariantObjectUpdate_OnCarrySet_D9AB
|
||||
Zp86 = $86 ; 5 refs; reads=0; writes=5; DispatchVariantObjectUpdate_JoinBranchPaths_DAB3, DispatchVariantObjectUpdate_OnEqual00_DC1B, DispatchVariantObjectUpdate_OnEqual03_DC21
|
||||
Zp87 = $87 ; 9 refs; reads=5; writes=4; ObjectStateLookupTables_LoadAndContinue_EE5F, ObjectStateLookupTables_OnNonzero_EEBB, ObjectStateLookupTables_LoadAndContinue_F342
|
||||
Zp88 = $88 ; 1 refs; reads=1; writes=0; ObjectStateLookupTables_OnZero_F356
|
||||
Zp89 = $89 ; 2 refs; reads=1; writes=1; ProcessQueuedVramUpdates_LoadAndContinue_D2FD, ExecuteVramDescriptorStream
|
||||
Zp8A = $8A ; 2 refs; reads=1; writes=1; ExecuteVramDescriptorStream, ExecuteVramDescriptorStream_OnNonzero_D35F
|
||||
Zp8B = $8B ; 2 refs; reads=1; writes=1; SetupScreenPaletteTransfer_OnZero_D255, ObjectStateLookupTables_StoreIndexAndContinue_ED26
|
||||
Zp8C = $8C ; 22 refs; reads=9; writes=13; SetPaletteRamAddress_LoadAndContinue_CBE4, SetPaletteRamAddress_LoadAndContinue_CC6C, SetupScreenPaletteTransfer_LoadAndContinue_D1E8
|
||||
Zp8D = $8D ; 3 refs; reads=2; writes=1; SetPaletteRamAddress_LoadAndContinue_CBE4, SetPaletteRamAddress_LoadAndContinue_CC62, ObjectStateLookupTables_OnNonzero_F5D8
|
||||
Zp8E = $8E ; 11 refs; reads=5; writes=6; SetPaletteRamAddress_LoadAndContinue_CBE4, SetPaletteRamAddress_LoadAndContinue_CC6C, SetupScreenPaletteTransfer_LoadAndContinue_D1E8
|
||||
Zp8F = $8F ; 4 refs; reads=2; writes=2; SetPaletteRamAddress_LoadAndContinue_CC62, SetupScreenPaletteTransfer_CallNext_D1C4, ObjectStateLookupTables_OnNonnegative_E905
|
||||
Zp90 = $90 ; 4 refs; reads=3; writes=2; ObjectStateLookupTables_LoadAndContinue_E61D, ObjectStateLookupTables_LoadAndContinue_F08C, ObjectStateLookupTables_OnZero_F09E
|
||||
Zp91 = $91 ; 2 refs; reads=1; writes=1; ObjectStateLookupTables_LoadIndexAndContinue_F0A8, ObjectStateLookupTables_OnNonzero_F155
|
||||
Zp92 = $92 ; 3 refs; reads=3; writes=2; ObjectStateLookupTables_LoadAndContinue_EFC7, ObjectStateLookupTables_OnEqual02_EFDC
|
||||
Zp94 = $94 ; 3 refs; reads=2; writes=1; ObjectStateLookupTables_LoadAndContinue_EFC7, ObjectStateLookupTables_OnEqual02_EFDC
|
||||
Zp98 = $98 ; 3 refs; reads=2; writes=2; ObjectStateLookupTables_OnZero_E5D1, ObjectStateLookupTables_JoinBranchPaths_E618
|
||||
Zp9A = $9A ; 2 refs; reads=1; writes=1; ObjectStateLookupTables_LoadAndContinue_E7BA
|
||||
Zp9B = $9B ; 6 refs; reads=3; writes=4; ReadControllers_JoinBranchPaths_C8E2, ObjectStateLookupTables_LoadIndexAndContinue_E484, ObjectStateLookupTables_JoinBranchPaths_E4AA
|
||||
Zp9C = $9C ; 2 refs; reads=1; writes=1; ObjectStateLookupTables_LoadIndexAndContinue_E521, ObjectStateLookupTables_OnNonzero_E86C
|
||||
Zp9D = $9D ; 2 refs; reads=2; writes=1; ObjectStateLookupTables_LoadAndContinue_E509
|
||||
ZpA7 = $A7 ; 3 refs; reads=1; writes=3; ObjectStateLookupTables_OnNonzero_EEBB, ObjectStateLookupTables_LoadAndContinue_F08C, ObjectStateLookupTables_OnZero_F09E
|
||||
ZpA8 = $A8 ; 4 refs; reads=2; writes=2; ObjectStateLookupTables_LoadAndContinue_F08C, ObjectStateLookupTables_OnZero_F09E, ObjectStateLookupTables_OnCarryClear_F141
|
||||
ZpAA = $AA ; 3 refs; reads=3; writes=1; ObjectStateLookupTables_OnBelow08_F672, ObjectStateLookupTables_OnCarryClear_F693, ObjectStateLookupTables_OnEqualFF_F6B6
|
||||
ZpAB = $AB ; 3 refs; reads=2; writes=2; ReadControllers_JoinBranchPaths_C8B5, ReadControllers_JoinBranchPaths_C8D9, ObjectStateLookupTables_OnCarrySet_F44E
|
||||
ZpAD = $AD ; 5 refs; reads=4; writes=3; ReadControllers_JoinBranchPaths_C8B5, ObjectStateLookupTables_OnBelow08_F672, ObjectStateLookupTables_JoinBranchPaths_F6E3
|
||||
ZpAE = $AE ; 2 refs; reads=1; writes=1; ObjectStateLookupTables_JoinBranchPaths_F4F5, ObjectStateLookupTables_LoadAndContinue_F540
|
||||
ZpAF = $AF ; 5 refs; reads=2; writes=3; DispatchVariantObjectUpdate_JoinBranchPaths_D971, ObjectStateLookupTables_OnCarrySet_F131, ObjectStateLookupTables_JoinBranchPaths_F495
|
||||
ZpB0 = $B0 ; 2 refs; reads=1; writes=1; ObjectStateLookupTables_OnNotEqual40_E62D, ObjectStateLookupTables_OnBelow01_F6DD
|
||||
ZpB3 = $B3 ; 3 refs; reads=1; writes=2; ObjectStateLookupTables_LoadIndexAndContinue_EED9, ObjectStateLookupTables_OnZero_EEFF, ObjectStateLookupTables_OnAtLeastA4_EF3D
|
||||
ZpB8 = $B8 ; 6 refs; reads=2; writes=4; ReadControllers_JoinBranchPaths_C8E2, DispatchVariantObjectUpdate_JoinBranchPaths_D971, DispatchVariantObjectUpdate_OnEqualF0_D9E6
|
||||
ZpBE = $BE ; 5 refs; reads=3; writes=3; DispatchVariantObjectUpdate_OnNonzero_DA76, ObjectStateLookupTables_LoadAndContinue_EE5F, ObjectStateLookupTables_JoinBranchPaths_EE86
|
||||
ZpBF = $BF ; 5 refs; reads=5; writes=2; DispatchVariantObjectUpdate_OnZero_D912, DispatchVariantObjectUpdate_OnNotEqual02_D935, ObjectStateLookupTables_LoadAndContinue_EE0A
|
||||
ZpC0 = $C0 ; 1 refs; reads=0; writes=1; ObjectStateLookupTables_OnBelow01_F6DD
|
||||
ZpC5 = $C5 ; 1 refs; reads=1; writes=0; ReadControllers_CallNext_C64B
|
||||
ZpC6 = $C6 ; 1 refs; reads=1; writes=1; ReadControllers_CallNext_C64B
|
||||
ZpC7 = $C7 ; 3 refs; reads=2; writes=1; ObjectStateLookupTables_OnCarrySet_F44E, ObjectStateLookupTables_OnZero_F4BE, ObjectStateLookupTables_OnNonnegative_F5CD
|
||||
ZpC9 = $C9 ; 6 refs; reads=3; writes=3; DispatchVariantObjectUpdate_OnZero_D887, DispatchVariantObjectUpdate_OnNonzero_D945, DispatchVariantObjectUpdate_OnCarryClear_D959
|
||||
ZpCA = $CA ; 13 refs; reads=7; writes=6; DispatchVariantObjectUpdate_JoinBranchPaths_D885, DispatchVariantObjectUpdate_OnCarryClear_D8AF, DispatchVariantObjectUpdate_OnCarryClear_D8D7
|
||||
ZpCB = $CB ; 4 refs; reads=2; writes=3; DispatchVariantObjectUpdate_OnNonzero_DA60, DispatchVariantObjectUpdate_OnNonzero_DA76, ObjectStateLookupTables_OnNonnegative_F0BD
|
||||
ZpCC = $CC ; 2 refs; reads=1; writes=1; UpdateMenuSelection_LoadAndContinue_D5DF, ObjectStateLookupTables_JoinBranchPaths_DCE6
|
||||
ZpCD = $CD ; 6 refs; reads=3; writes=4; ReadControllers_JoinBranchPaths_C8E2, DispatchVariantObjectUpdate_OnCarryClear_D959, DispatchVariantObjectUpdate_OnZero_DA19
|
||||
ZpCE = $CE ; 6 refs; reads=2; writes=4; DispatchVariantObjectUpdate_JoinBranchPaths_D839, DispatchVariantObjectUpdate_OnZero_D858, DispatchVariantObjectUpdate_OnZero_D87F
|
||||
ZpCF = $CF ; 2 refs; reads=1; writes=2; ReadControllers_JoinBranchPaths_C8E2, ObjectStateLookupTables_LoadAndContinue_F601
|
||||
ZpD0 = $D0 ; 5 refs; reads=3; writes=2; ObjectStateLookupTables_OnNonzero_E86C, ObjectStateLookupTables_OnZero_E8E9, ObjectStateLookupTables_OnZero_E9B3
|
||||
ZpD1 = $D1 ; 1 refs; reads=0; writes=1; ObjectStateLookupTables_OnNonnegative_E980
|
||||
ZpD2 = $D2 ; 3 refs; reads=3; writes=2; ObjectStateLookupTables_JoinBranchPaths_F267, ObjectStateLookupTables_JoinBranchPaths_F2A0, ObjectStateLookupTables_OnZero_F356
|
||||
ZpD3 = $D3 ; 5 refs; reads=4; writes=3; ObjectStateLookupTables_JoinBranchPaths_F474, ObjectStateLookupTables_LoadIndexAndContinue_F479, ObjectStateLookupTables_OnCarrySet_F4BB
|
||||
ZpD4 = $D4 ; 1 refs; reads=0; writes=1; ObjectStateLookupTables_OnEqualFE_E9A9
|
||||
ZpD5 = $D5 ; 4 refs; reads=3; writes=2; ObjectStateLookupTables_OnCarrySet_F44E, ObjectStateLookupTables_CallNext_F5C6, ObjectStateLookupTables_OnNonnegative_F5CD
|
||||
ZpD6 = $D6 ; 3 refs; reads=1; writes=2; ObjectStateLookupTables_OnCarrySet_F44E, ObjectStateLookupTables_LoadIndexAndContinue_F479, ObjectStateLookupTables_JoinBranchPaths_F495
|
||||
ZpD7 = $D7 ; 2 refs; reads=1; writes=1; ObjectStateLookupTables_LoadAndContinue_F540
|
||||
ZpD9 = $D9 ; 4 refs; reads=0; writes=4; ReadControllers_OnNonnegative_C900, ObjectStateLookupTables_OnEqual20_E8CD, ObjectStateLookupTables_OnNonzero_EBE7
|
||||
ZpDB = $DB ; 1 refs; reads=0; writes=1; ObjectStateLookupTables_OnNonzero_E849
|
||||
ZpDE = $DE ; 10 refs; reads=5; writes=5; ReadControllers_JoinBranchPaths_C8E2, DispatchVariantObjectUpdate_LoadIndexAndContinue_D824, DispatchVariantObjectUpdate_OnNonzero_D8E4
|
||||
ZpDF = $DF ; 18 refs; reads=15; writes=4; ReadControllers_JoinBranchPaths_C8E2, DispatchVariantObjectUpdate_OnCarrySet_D820, DispatchVariantObjectUpdate_JoinBranchPaths_D88A
|
||||
IndirectPointerLo = $E0 ; 13 refs; reads=1; writes=12; ClearUpperRamPages, SelectNametableClearPage_OnNonzero_C3E2, ReadControllers_LoadIndexAndContinue_C4BA
|
||||
IndirectPointerHi = $E1 ; 14 refs; reads=3; writes=13; ClearUpperRamPages, ClearUpperRamPageLoop, SelectNametableClearPage_OnNonzero_C3E2
|
||||
TransferByteCount = $E2 ; 7 refs; reads=3; writes=7; SelectNametableClearPage_OnNonzero_C3E2, ClearPpuPage_OnNonzero_C3FA, ReadControllers_OnNonzero_C4AF
|
||||
ZpE3 = $E3 ; 3 refs; reads=1; writes=3; ReadControllers_OnCarryClear_C4EA, ReadControllers_LoadAndContinue_C67B, ReadControllers_OnNonnegative_C68D
|
||||
Controller1Shift = $E4 ; 10 refs; reads=6; writes=5; ReadControllers_OnNonzero_C40D, ReadControllers_StoreAndContinue_C444, ReadControllers_OnNonzero_C454
|
||||
ZpE4 = $E4 ; indexed structure-field alias
|
||||
Controller2Shift = $E5 ; 4 refs; reads=2; writes=3; ReadControllers_OnNonzero_C40D, ReadControllers_OnNonzero_C454, ReadControllers_OnCarryClear_C4EA
|
||||
ControllerReadScratch = $E7 ; 4 refs; reads=2; writes=2; ReadControllers_OnNonzero_C40D
|
||||
ZpE8 = $E8 ; 3 refs; reads=2; writes=1; ReadControllers_StoreIndexAndContinue_C6F3, ReadControllers_OnBelow0A_C70D
|
||||
ZpEE = $EE ; 4 refs; reads=2; writes=2; ReadControllers_StoreIndexAndContinue_C6F3, ReadControllers_OnBelow0A_C70D
|
||||
ZpEF = $EF ; 7 refs; reads=4; writes=4; ReadControllers_LoadAndContinue_C5B2, ReadControllers_OnNonnegative_C5B6, ReadControllers_StoreIndexAndContinue_C6F3
|
||||
ZpF0 = $F0 ; 8 refs; reads=4; writes=6; DecodeAudioStream_OnZero_F962, ExecuteAudioCommand_OnNotEqualE0_FA23, ExecuteAudioCommand_OnNonzero_FA32
|
||||
ZpF1 = $F1 ; 4 refs; reads=2; writes=3; DecodeAudioStream_OnZero_F962, ExecuteAudioCommand_OnNotEqual0C_FA62, ExecuteAudioCommand_JumpNext_FA73
|
||||
ZpF2 = $F2 ; 1 refs; reads=0; writes=1; RequestAudioSequence_OnNonzero_F835
|
||||
ZpF3 = $F3 ; 1 refs; reads=0; writes=1; RequestAudioSequence_OnNonzero_F835
|
||||
AudioChannelStructOffset = $F4 ; 8 refs; reads=7; writes=1; ProcessAudioFrame_OnCarryClear_F880, ProcessAudioFrame_OnZero_F88B, DecodeAudioStream_OnZero_F921
|
||||
AudioApuRegisterOffset = $F5 ; 14 refs; reads=13; writes=1; ProcessAudioFrame_OnCarryClear_F880, ProcessAudioFrame_OnNotEqual54_F895, ProcessAudioFrame_OnNonnegative_F89E
|
||||
AudioSequencePointerLo = $F6 ; 5 refs; reads=4; writes=2; ProcessAudioFrame_JoinBranchPaths_F8AD, DecodeAudioStream, ExecuteAudioCommand_OnNotEqual08_F981
|
||||
AudioSequencePointerHi = $F7 ; 4 refs; reads=3; writes=2; ProcessAudioFrame_JoinBranchPaths_F8AD, DecodeAudioStream, ExecuteAudioCommand_OnNotEqual08_F981
|
||||
SavedObjectIndex = $F8 ; 7 refs; reads=4; writes=3; SetPaletteRamAddress_StoreIndexAndContinue_CC7E, SetPaletteRamAddress_OnCarryClear_CC8C, SetPaletteRamAddress_StoreIndexAndContinue_CC8F
|
||||
SavedObjectSlot = $F9 ; 21 refs; reads=14; writes=7; SetPaletteRamAddress_StoreIndexAndContinue_CB2D, SetPaletteRamAddress_JoinBranchPaths_CB4B, ObjectStateLookupTables_OnNonzero_E601
|
||||
SavedTransferIndex = $FA ; 8 refs; reads=4; writes=4; UpdateMenuSelection_OnZero_D627, UpdateMenuSelection_OnNonzero_D62B, ObjectStateLookupTables_LoadAndContinue_E562
|
||||
NmiDelayCounter = $FB ; 3 refs; reads=2; writes=2; NmiHandler, ReadControllers_LoadAndContinue_C4C8
|
||||
ZpFF = $FF ; 2 refs; reads=1; writes=1; FinishStateHandler_OnNonzero_C32D
|
||||
|
||||
MenuSelectionIndex = $0302
|
||||
VariantSequenceCounter = $03B0
|
||||
Binary file not shown.
File diff suppressed because it is too large.
Load diff
Whitespace-only changes.
@@ -1,26 +0,0 @@
|
||||
Modules list:
|
||||
-------------
|
||||
prg.o:
|
||||
PRG Offs=000000 Size=004000 Align=00001 Fill=0000
|
||||
|
||||
|
||||
Segment list:
|
||||
-------------
|
||||
Name Start End Size Align
|
||||
----------------------------------------------------
|
||||
PRG 00C000 00FFFF 004000 00001
|
||||
|
||||
|
||||
Exports list by name:
|
||||
---------------------
|
||||
|
||||
|
||||
|
||||
Exports list by value:
|
||||
----------------------
|
||||
|
||||
|
||||
|
||||
Imports list:
|
||||
-------------
|
||||
|
||||
Binary file not shown.
@@ -1,108 +0,0 @@
|
||||
; =============================================================================
|
||||
; Nintendo Entertainment System hardware symbols
|
||||
; =============================================================================
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; PPU registers
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
PPUCTRL = $2000
|
||||
PPUMASK = $2001
|
||||
PPUSTATUS = $2002
|
||||
OAMADDR = $2003
|
||||
OAMDATA = $2004
|
||||
PPUSCROLL = $2005
|
||||
PPUADDR = $2006
|
||||
PPUDATA = $2007
|
||||
|
||||
OAMDMA = $4014
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; Controller ports
|
||||
;
|
||||
; $4016:
|
||||
; Write: controller strobe
|
||||
; Read: controller port 1
|
||||
;
|
||||
; $4017:
|
||||
; Read: controller port 2
|
||||
; Write: APU frame counter
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
JOY1 = $4016
|
||||
JOY2 = $4017
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; APU pulse channel 1
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
APUPULSE1CTRL = $4000
|
||||
APUPULSE1SWEEP = $4001
|
||||
APUPULSE1TIMERLO = $4002
|
||||
APUPULSE1TIMERHI = $4003
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; APU pulse channel 2
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
APUPULSE2CTRL = $4004
|
||||
APUPULSE2SWEEP = $4005
|
||||
APUPULSE2TIMERLO = $4006
|
||||
APUPULSE2TIMERHI = $4007
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; APU triangle channel
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
APUTRIANGLECTRL = $4008
|
||||
APUTRIANGLETIMERLO = $400A
|
||||
APUTRIANGLETIMERHI = $400B
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; APU noise channel
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
APUNOISECTRL = $400C
|
||||
APUNOISEPERIOD = $400E
|
||||
APUNOISELENGTH = $400F
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; APU DMC channel
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
APUDMCCTRL = $4010
|
||||
APUDMCDIRECT = $4011
|
||||
APUDMCADDR = $4012
|
||||
APUDMCLENGTH = $4013
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; APU status and frame counter
|
||||
;
|
||||
; $4015:
|
||||
; Write: enable or disable the five APU channels
|
||||
; Read: channel and interrupt status
|
||||
;
|
||||
; $4017:
|
||||
; Write: APU frame-counter mode and IRQ inhibit
|
||||
; Read: controller port 2
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
APUSTATUS = $4015
|
||||
APUFRAMECOUNTER = $4017
|
||||
|
||||
; -----------------------------------------------------------------------------
|
||||
; Controller masks
|
||||
; -----------------------------------------------------------------------------
|
||||
|
||||
PAD_RIGHT = $01
|
||||
PAD_LEFT = $02
|
||||
PAD_DOWN = $04
|
||||
PAD_UP = $08
|
||||
PAD_START = $10
|
||||
PAD_SELECT = $20
|
||||
PAD_B = $40
|
||||
PAD_A = $80
|
||||
|
||||
PAD_HORIZONTAL = PAD_LEFT | PAD_RIGHT
|
||||
PAD_VERTICAL = PAD_UP | PAD_DOWN
|
||||
PAD_DPAD = PAD_HORIZONTAL | PAD_VERTICAL
|
||||
Reference in new issue
Block a user