# Sqoon (U) ## Status **Pass 3 complete; promoted.** `prg.s` is a traced disassembly with all address-derived labels replaced, all `jsr`/`jmp` operands symbolic, hardware registers named via `symbols.inc`, and `apply_symbols.py` reporting 0 residue. Code coverage: 18,471 / 32,768 bytes (56.4%). `make` assembles and verifies byte-identical to `rom.nes`. ## ROM | Property | Value | |----------|-------| | Format | iNES | | Mapper | 0 (NROM) | | PRG | 32 KB | | CHR | 8 KB | | Mirroring | Vertical | | NMI vector | $8014 | | RESET vector | $8000 | | IRQ vector | $80F1 | ## Power-on flow RESET enters at `$8000`: ldx #$FF ; CPU:$8000 PRG:0000 A2 FF txs ; CPU:$8002 PRG:0002 9A stx NmiFrameFlag ; CPU:$8003 PRG:0003 86 FE jsr Sub_82B2 ; CPU:$8005 PRG:0005 20 B2 82 jsr Sub_817B ; CPU:$8008 PRG:0008 20 7B 81 lda #$00 ; CPU:$800B PRG:000B A9 00 sta NmiFrameFlag ; CPU:$800D PRG:000D 85 FE sta Zp9A ; CPU:$800F PRG:000F 85 9A jmp Sub_80EE ; CPU:$8011 PRG:0011 4C EE 80 pha ; CPU:$8014 PRG:0014 48 lda NmiFrameFlag ; CPU:$8015 PRG:0015 A5 FE beq NmiHandler_Loop ; CPU:$8017 PRG:0017 F0 03 NMI handler at `$8014`: pha ; CPU:$8014 PRG:0014 48 lda NmiFrameFlag ; CPU:$8015 PRG:0015 A5 FE beq NmiHandler_Loop ; CPU:$8017 PRG:0017 F0 03 jmp IrqHandler ; CPU:$8019 PRG:0019 4C F1 80 inc NmiFrameFlag ; CPU:$801C PRG:001C E6 FE inc FrameCounter ; CPU:$801E PRG:001E E6 54 jsr Sub_8158 ; CPU:$8020 PRG:0020 20 58 81 lda PpuCtrlShadow ; CPU:$8023 PRG:0023 A5 1D ## Data-table inventory (Pass 3) - `$833A-$83A2` (105 bytes) - `EnemyAnimationScriptTable` - `$83C2-$83D3` (18 bytes) - `RoutinePointerTable` - `$84A0-$84AF` (16 bytes) - `EnemyPathDeltaTable` - `$85F3-$8606` (20 bytes) - `GameOverText` - `$8690-$86A9` (26 bytes) - `EnemyGraphicTileIndexTable` - `$8814-$8825` (18 bytes) - `LevelObjectDefinitionTable` - `$8AB4-$8AD7` (36 bytes) - `EnemyTileIndexTable` - `$8B48-$8B55` (14 bytes) - `PhaseLeftText` - `$8BBD-$8BC7` (11 bytes) - `LevelStartParameterTable` - `$8C41-$8C60` (32 bytes) - `EnemyMovementParameterTable` - `$B5D5-$B5DD` (9 bytes) - `HomeDataText` - `$BB39-$DC18` (8416 bytes) - `LevelGraphicData` - `$DC6E-$DC8A` (29 bytes) - `EnemySpeedParameterTable` - `$DD1A-$E08A` (881 bytes) - `SpriteGraphicData` - `$E134-$E238` (261 bytes) - `EnemyHandlerPointerTable` - `$E4B7-$F5D3` (4381 bytes) - `LevelCollisionData` - `$FFE8-$FFFF` (24 bytes) - `VectorTable` ## Build ``` Byte-identical ROM verified. ```