Assembler-Beispiel 4A - LSR.asm

Aus C64-Wiki
Zur Navigation springenZur Suche springen
; Diese Programm ist eine einfache Joystick-Abfrage des Controlports 2.
; Joystick auf/ab = Rahmenfarbe +/-
; Joystick links/rechts = Hintergrundfarbe +/-
; Feuerknopf = Ende
; Programmstart mit SYS 49152

*=$c000   ; Startadresse des Programms

start          lda $02         ; Zwischenspeicher in Zeropage
               cmp $dc00
               beq start       ; bleibe solange in Schleife bis sich Joystick-Register ändert.

               lda $dc00       ; Lade Akku mit Statusbyte des "Control Port 2" 
               sta $02         ; Speichere Wert in Speicherzelle 2

               lsr             ; "Joystick oben"-Bit ins Carry-Flag schieben
               bcs weiter1     ; wenn Bewegung nicht nach oben --> keine Erhöhung der Rahmenfarbe
               inc $d020       ; Rahmenfarbe + 1
		
weiter1        lsr             ; "Joystick unten"-Bit ins Carry-Flag schieben
               bcs weiter2     ; wenn Bewegung nicht nach unten --> keine Verminderung der Rahmenfarbe
               dec $d020       ; Rahmenfarbe - 1

weiter2        lsr             ; "Joystick links"-Bit ins Carry-Flag schieben
               bcs weiter3     ; wenn Bewegung nicht nach links --> keine Erhöhung der Hintergrundfarbe
               inc $d021       ; Hintergrundfarbe + 1

weiter3        lsr             ; "Joystick rechts"-Bit ins Carry-Flag schieben
               bcs weiter4     ; wenn Bewegung nicht nach rechts --> keine Verminderung der Hintergrundfarbe
               dec $d021       ; Hintergrundfarbe - 1

weiter4        lsr             ; Feuerknopf-Bit ins Carry-Flag schieben 
               bcs start       ; wenn Feuerknopf nicht gedrückt --> verzweige zum Start 
               rts             ; Rücksprung ins BASIC