include "nesdefs.dasm" ;;;;; VARIABLES seg.u ZEROPAGE org $0 ;;;;; NES CARTRIDGE HEADER NES_HEADER 0,2,1,0 ; mapper 0, 2 PRGs, 1 CHR, horiz. mirror ;;;;; START OF CODE Start: ; wait for PPU warmup; clear CPU RAM NES_INIT ; set up stack pointer, turn off PPU jsr WaitSync ; wait for VSYNC jsr ClearRAM ; clear RAM jsr WaitSync ; wait for VSYNC (and PPU warmup) ; set palette lda #$3f ; $3F -> A register sta PPU_ADDR ; write high byte first lda #$00 ; $00 -> A register sta PPU_ADDR ; $3F00 -> PPU address lda #$1c ; $1C = light blue color sta PPU_DATA ; $1C -> PPU data ; activate PPU graphics lda #MASK_BG ; A = $08 sta PPU_MASK ; enable rendering lda #CTRL_NMI ; A = $80 sta PPU_CTRL ; enable NMI .endless jmp .endless ; endless loop ;;;;; COMMON SUBROUTINES include "nesppu.dasm" ;;;;; INTERRUPT HANDLERS NMIHandler: rti ;;;;; CPU VECTORS NES_VECTORS