# Kung Fu (U) (a1) ## 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: 16,925 / 32,768 bytes (51.7%). `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 | $82D6 | | RESET vector | $8258 | | IRQ vector | $FFF0 | ## Power-on flow RESET enters at `$8258`: sei ; CPU:$8258 PRG:0258 78 cld ; CPU:$8259 PRG:0259 D8 lda #$00 ; CPU:$825A PRG:025A A9 00 sta PPUCTRL ; CPU:$825C PRG:025C 8D 00 20 ldx #$FF ; CPU:$825F PRG:025F A2 FF txs ; CPU:$8261 PRG:0261 9A lda PPUSTATUS ; CPU:$8262 PRG:0262 AD 02 20 asl a ; CPU:$8265 PRG:0265 0A bcc Reset_OnCarryClear ; CPU:$8266 PRG:0266 90 FA lda PPUSTATUS ; CPU:$8268 PRG:0268 AD 02 20 asl a ; CPU:$826B PRG:026B 0A bcc Reset_OnCarryClear2 ; CPU:$826C PRG:026C 90 FA NMI handler at `$82D6`: lda Zp10 ; CPU:$82D6 PRG:02D6 A5 10 and #$7F ; CPU:$82D8 PRG:02D8 29 7F sta PPUCTRL ; CPU:$82DA PRG:02DA 8D 00 20 sta Zp10 ; CPU:$82DD PRG:02DD 85 10 lda #$00 ; CPU:$82DF PRG:02DF A9 00 sta PPUMASK ; CPU:$82E1 PRG:02E1 8D 01 20 sta OAMADDR ; CPU:$82E4 PRG:02E4 8D 03 20 ldy #$02 ; CPU:$82E7 PRG:02E7 A0 02 ## Data-table inventory (Pass 3) - `$8000-$8257` (600 bytes) - `LevelHandlerPointerTable` - `$8437-$84E9` (179 bytes) - `LevelObjectDefinitionTable` - `$8CA2-$8DE6` (325 bytes) - `SpriteOamEntryTable` - `$904A-$981F` (2006 bytes) - `EnemyNameTextTable` - `$9828-$A495` (3182 bytes) - `EnemySpritePatternTable` - `$B6E1-$B727` (71 bytes) - `LevelObjectSpawnTable` - `$BB83-$BDD1` (591 bytes) - `SpriteOamAttributeTable` - `$CDEB-$CFCA` (480 bytes) - `EnemyAnimationFrameTable` - `$D385-$D3C4` (64 bytes) - `LevelSceneryData` - `$DAE6-$DAE9` (4 bytes) - `LevelSceneryPadding` - `$DB48-$F830` (7401 bytes) - `LevelGraphicData` - `$F981-$F9B8` (56 bytes) - `EnemyMovementSpeedTable` - `$FA36-$FA89` (84 bytes) - `EnemyMovementDeltaTable` ## Build ``` Byte-identical ROM verified. ```