18.07.2013 Views

Nintendo Entertainment System

Nintendo Entertainment System

Nintendo Entertainment System

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.4. EKSEMPEL 4: EN BAKGRUNN<br />

gjenta dette 16 ganger. Y minker med 1 hver gang to tile-numre (dvs. ett smilefjes) er skrevet<br />

til nametablet, og så gjentar løkken seg så lenge Y ikke er 0. Når Y er 0 minkes X, og så gjentas<br />

den ytre løkken hvis X ikke er 0. Når X er 0 er vi ferdige.<br />

For å oppsummere så gjør koden følgende:<br />

• Sett $2006 til adressen der nametable 1 starter ($2000)<br />

• Sett X til 30 (antall rader)<br />

• Kjør den ytre løkken lagre_rad:<br />

– Sett Y til 16 (antall metatiles på en rad)<br />

– Sjekk om X er et partall:<br />

∗ Hvis X er partall: tile_a = 0, tile_b = 1<br />

∗ Hvis X er oddetall: tile_a = 2, tile_b = 3<br />

– Kjør den indre løkken lagre_tiles:<br />

∗ Skriv tile_a til $2007<br />

∗ Skriv tile_b til $2007<br />

∗ Senk Y med 1<br />

∗ Gjenta så lenge Y = 0<br />

– Senk X med 1<br />

– Gjenta så lenge X = 0<br />

Her er selve koden:<br />

lda # $20 ; Nametable 1 starter i $2000<br />

sta $2006 ; Send adressen til PPU .<br />

lda #0<br />

sta $2006<br />

ldx #30 ; X holder antall rader som er igjen<br />

@lagre_rad :<br />

ldy #16 ; Y holder antall smilefjes (to tiles ) igjen i hver rad<br />

txa ; Flytt X ( antall rader ) over i A<br />

and #1 ; Er tallet et partall eller oddetall ?<br />

beq @partall<br />

; Hvis raden er en oddetallsrad skal vi skrive tile 2 og 3 ( nedre del av figuren )<br />

; bortover raden :<br />

lda #2<br />

sta tile_a<br />

lda #3<br />

sta tile_b<br />

jmp @lagre_tiles<br />

; Hvis raden er en partallsrad skal vi skrive tile 0 og 1 ( øvre del av figuren )<br />

; bortover raden :

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!