Assembler-Beispiel 2C - BIT $hhll (1).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
         cmp $dc00      ; Port auf CIA1, Port A
         beq start      ; bleibe solange in Schleife bis sich Joystick-Register ändert.

abfrage  lda $dc00      ; neuen Wert in Speicherzelle 2 zwischenspeichern.
         sta $02		

         lda #%00000001 ; Joystick-Bewegung "auf" maskieren 
         bit $dc00      ; bitweise UND-Verknüpfung der Adresse 56320, aktiv wenn Bit = 0
         bne weiter1    ; wenn Bewegung nicht nach oben --> keine Erhöhung der Rahmenfarbe 
         inc $d020      ; Rahmenfarbe + 1

weiter1  lda #%00000010 ; Joystick-Bewegung "ab" maskieren 
         bit $dc00      ; bitweise UND-Verknüpfung der Adresse 56320, aktiv wenn Bit = 0
         bne weiter2    ; wenn Bewegung nicht nach unten --> keine Verminderung der Rahmenfarbe 
         dec $d020      ; Rahmenfarbe - 1

weiter2  lda #%00000100 ; Joystick-Bewegung "links" maskieren 
         bit $dc00      ; bitweise UND-Verknüpfung der Adresse 56320, aktiv wenn Bit = 0
         bne weiter3    ; wenn Bewegung nicht nach links --> keine Erhöhung der Hintergrundfarbe 
         inc $d021      ; Hintergrundfarbe + 1

weiter3  lda #%00001000 ; Joystick-Bewegung "rechts" maskieren  
         bit $dc00      ; bitweise UND-Verknüpfung der Adresse 56320, aktiv wenn Bit = 0
         bne weiter4    ; wenn Bewegung nicht nach rechts --> keine Verminderung der Hintergrundfarbe
         dec $d021      ; Hintergrundfarbe - 1

weiter4  lda #%00010000 ; Feuerknopf-Bit maskieren 
         bit $dc00      ; bitweise UND-Verknüpfung der Adresse 56320, aktiv wenn Bit = 0
         bne start      ; wenn Feuerknopf nicht gedrückt --> verzweige zum Start 
         rts            ; Rücksprung ins BASIC