; INES header stuff .inesprg 1 ; 1 bank of PRG .ineschr 2 ; 2 banks of CHR data .inesmap 4 ; we use mapper 4 (MMC3) .rsset $0000 ; variables COPY_SOURCE_ADDR .rs 2 COPY_DEST_ADDR .rs 2 CHR_BANK .rs 1 FRAME .rs 1 .bank 1 .org $FFFA ; reset vectors .dw NMI .dw Start .dw IRQ .bank 0 .org $C000 ; code starts here Start: ; disable interrupts sei ; reset stack ldx #$ff txs ; disable PPU lda #%00000000 sta PPUCTRL lda #%00000000 sta PPUMASK jsr waitblank_simple ; reset sound lda #0 sta $4000 sta $4001 sta $4002 sta $4003 sta $4004 sta $4005 sta $4006 sta $4007 sta $4009 sta $400A sta $400C sta $400D sta $400E sta $400F sta $4010 sta $4011 sta $4012 sta $4013 lda #$0F sta $4015 lda #$40 sta $4017 ; vertical mirroring lda #0 sta $A000 load_palette: lda #LOW(palette) sta