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.3. EKSEMPEL 3: INPUT FRA KONTROLLENE<br />
forteller om knappen er trykket inn eller ikke. De andre bitene kan være både 1 og 0, så det<br />
er viktig at vi fjerner disse fra registeret ved å ANDe med 1. La oss se på hvordan vi leser fra<br />
kontroll 1 og reagerer på tastetrykkene:<br />
; Klargjør kontrollen for å hente data :<br />
LDA #1<br />
STA $4016<br />
LDA #0<br />
STA $4016<br />
; Les tastetrykk :<br />
LDA $4016 ; A<br />
LDA $4016 ; B<br />
LDA $4016 ; Start<br />
LDA $4016 ; Select<br />
LDA $4016 ; Opp<br />
AND #1 ; Fjern alt utenom den laveste biten<br />
BEQ @SjekkNed ; Hvis biten er 0, gå til neste knapp<br />
; ... her er kode som kjører når Opp er trykket inn ...<br />
@SjekkNed :<br />
LDA $4016<br />
AND #1<br />
BEQ @SjekkVenstre<br />
; ... her er kode som kjører når Ned er trykket inn ...<br />
@SjekkVenstre :<br />
LDA $4016<br />
AND #1<br />
BEQ @SjekkHoyre<br />
; ... her er kode som kjører når Venstre er trykket inn ...<br />
@SjekkHoyre :<br />
LDA $4016<br />
AND #1<br />
BEQ @Slutt<br />
; ... her er kode som kjører når Høyre er trykket inn ...<br />
@Slutt :<br />
Merk at vi ikke trenger å sammenligne med 0 før hver BNE-instruksjon. Z-flagget settes etter<br />
hver instruksjon der resultatet er 0. Det vil si at BNE vil hoppe dersom forrige instruksjon var<br />
forskjellig fra 0 (Z-flagget er 0).<br />
Eksempel 3 finner du her: http://home.no/johan-af/nesguide/eksempel3.<br />
Den eneste forandringen vi har gjort her er å bytte ut den konstante økningen av x_posisjon<br />
med en kodesnutt som sjekker piltastene og flytter spriten basert på det.<br />
5.3.1 Oppgaver<br />
1. Få spriten til å stoppe når den kommer til en av kantene av skjermen<br />
2. Legg inn en ny sprite som kan styres av kontroll 2<br />
3. Gjør det mulig å bytte bakgrunnsfarge ved å trykke på A (neste) eller B (forrige)