Nintendo Entertainment System
Nintendo Entertainment System
Nintendo Entertainment System
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 :