Assembler-Beispiel EA - NOP.asm
Aus C64-Wiki
Zur Navigation springenZur Suche springen
; Dieses Programm erzeugt schräge schwarz-weiß-Balken, die sich am Bildschirm bewegen. ; Programmstart mit SYS 49152 *=$c000 ; Startadresse des Programms sei ; Interrupts sperren lda $d020 ; VIC-Register für Rahmenfarbe pha ; Rahmenfarbe am Stapel sichern lda #$0b ; VIC-Steuerregister, Bit 4 gelöscht: Bildschirm aus sta $d011 ; (Achtung, verstellt ggf. Rasterzeilen-Interrupts) init ldx #$00 ; Rahmenfarbe schwarz loop stx $d020 lda $dc01 ; CIA 1 Datenport B (Tastatur-Matrix) cmp #$ff ; Warte auf Tastendruck bne taste inx ; Rahmenfarbe weiß nop ; 2 Taktzyklen verbrauchen nop ; 2 Taktzyklen verbrauchen nop ; 2 Taktzyklen verbrauchen nop ; 2 Taktzyklen verbrauchen nop ; 2 Taktzyklen verbrauchen cpx #$02 ; prüfe, ob Rahmenfarbe rot bne loop ; nein -> loop jmp init ; ja -> init taste lda #$1b ; VIC-Steuerregister, Bit 4 gesetzt: Bildschirm an sta $d011 pla ; Rahmenfarbe holen ... sta $d020 ; ... und wiederherstellen cli ; Interrupts freigeben rts ; Rücksprung