Assembler-Beispiel 58 - CLI.asm

Aus C64-Wiki
Zur Navigation springenZur Suche springen
; Dieses Programm erweitert die originale Interrupt-Service-Routine.
; Solange der Feuerknopf am Joystick des Control-Port 2 gedrückt wird, flimmert der Bildschirmrahmen.  
; Nach der Rückkehr ins Basic ist die Routine natürlich immer noch aktiv.
; Programmstart mit SYS 49152

*=$c000   ; Startadresse des Programms

	sei		; Interrupts sperren
	lda #<isr 
	sta $0314	; Vektor für neue Interrupt Service-Routine ändern
	lda #>isr
	sta $0315 
	cli		; Interrupts zulassen
	rts

isr	lda #%00010000	; Feuerknopf-Bit des Control-Port 2 maskieren 
	bit $dc00	; Bitweise UND-Verknüpfung dem Inhalt des Registers PRA des CIA 1 
	bne nicht	; wenn Feuerknopf nicht gedrückt --> Sprung in alte IRQ-Routine 
	inc $d020 	; wenn Feuerknopf gedrückt --> VIC-Register Rahmenfarbe um 1 erhöhen
nicht	jmp $ea31	; Sprung in die alte IRQ-Routine