; INES Header Table
.inesprg 1
.ineschr 1
.inesmir 1
.inesmap 0
.org $800
.bank 0
; Entry point - For initialization
Start:
; PPU Init
lda #%00001000 ;Load accumulater with this value. # means to load it with this value rather than the value at this memory adress.
sta $2000 ;Stor it at address 2000 hex (if $ is euivalent to & on the bbc..)
lda #%00011110 ;Load it with this.
sta $2001 ;Store it at 2001. *yawn* (purpose of this is unknown. INiting of PPU etc is where I realised I needed to know more than just the processor).
; Init Palette
lda #$3F
sta $2006
lda #$00
sta $2006
ldx #$00 ;Load x.
loadpal: ;Cycle $20 times, reading in the pallet data sarting from mem addy "titlepal".
lda titlepal , x ;load A with variable
sta $2007
inx ;Increment X
cpx #$20 ;Compare X reg with Accumulator.
bne loadpal ;and if it is not equal, branch back to loadpal and do it again.
; Our loop
Loop:
jmp Loop ;Booooring. AT least make the screen flash grey. Or fill mem range $800 to $900 with random junk to make noise. (cant remember which system this was on.)
titlepal: .incbin "demo.pal" ;dont recognise this stuff.
; Vector Table
.bank 1
.org $FFFA
.dw 0 ; NMI
.dw Start ; Reset
.dw 0 ; IRQ
.bank 2
.org $0000
.incbin "demo.chr"