# 1942 (JU) ## 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: 17,065 / 32,768 bytes (52.1%). `make` assembles and verifies byte-identical to `rom.nes`. ## ROM | Property | Value | |----------|-------| | Format | iNES | | Mapper | 0 (NROM) | | PRG | 32 KB | | CHR | 8 KB | | Mirroring | Horizontal | | NMI vector | $C030 | | RESET vector | $BF90 | | IRQ vector | $BF90 | ## Power-on flow RESET enters at `$BF90`: sei ; CPU:$BF90 PRG:3F90 78 cld ; CPU:$BF91 PRG:3F91 D8 ldx #$F3 ; CPU:$BF92 PRG:3F92 A2 F3 txs ; CPU:$BF94 PRG:3F94 9A lda #$10 ; CPU:$BF95 PRG:3F95 A9 10 sta PPUCTRL ; CPU:$BF97 PRG:3F97 8D 00 20 lda PPUSTATUS ; CPU:$BF9A PRG:3F9A AD 02 20 bpl Reset_OnNonnegative ; CPU:$BF9D PRG:3F9D 10 FB lda $07BD ; CPU:$BF9F PRG:3F9F AD BD 07 cmp #$55 ; CPU:$BFA2 PRG:3FA2 C9 55 bne Reset_Loop ; CPU:$BFA4 PRG:3FA4 D0 07 lda $07BE ; CPU:$BFA6 PRG:3FA6 AD BE 07 NMI handler at `$C030`: sta Zp63 ; CPU:$C030 PRG:4030 85 63 stx Zp64 ; CPU:$C032 PRG:4032 86 64 sty Zp65 ; CPU:$C034 PRG:4034 84 65 lda PpuCtrlShadow ; CPU:$C036 PRG:4036 A5 8C and #$7F ; CPU:$C038 PRG:4038 29 7F sta PPUCTRL ; CPU:$C03A PRG:403A 8D 00 20 sta PpuCtrlShadow ; CPU:$C03D PRG:403D 85 8C lda #$00 ; CPU:$C03F PRG:403F A9 00 ## Data-table inventory (Pass 3) - `$8494-$9FDA` (6983 bytes) - `LevelLayoutData` - `$A08C-$A093` (8 bytes) - `PpuBitMaskTable` - `$A2F2-$A311` (32 bytes) - `EnemyHandlerPointerTable` - `$A3E2-$A73D` (860 bytes) - `LevelObjectSpawnTable` - `$A770-$A815` (166 bytes) - `EnemySpritePatternTable` - `$ABD0-$AC13` (68 bytes) - `EnemyHealthPointTable` - `$AD99-$ADC8` (48 bytes) - `SpriteOamAttributeTable` - `$B200-$B37A` (379 bytes) - `LevelTilemapData` - `$B4DC-$B4DF` (4 bytes) - `PlayerScoreTable` - `$B783-$B7C2` (64 bytes) - `EnemySpritePatternTable2` - `$B9C5-$B9E4` (32 bytes) - `BoardBoundaryData` - `$BB51-$BC85` (309 bytes) - `LevelGraphicData` - `$BF0F-$BF57` (73 bytes) - `EnemyMovementDeltaTable` - `$C366-$C3C9` (100 bytes) - `SpriteOamEntryTable` - `$DF58-$DF7F` (40 bytes) - `EnemySpawnCoordinateTable` - `$DFBE-$DFE5` (40 bytes) - `EnemySpawnCoordinateTable2` - `$E19E-$E1DF` (66 bytes) - `EnemyMovementPatternTable` - `$E24B-$E392` (328 bytes) - `EnemySpritePositionTable` - `$E3A1-$EC0B` (2155 bytes) - `EnemyHandlerCodeTable` ## Build ``` Byte-identical ROM verified. ```