SEI

Aus C64-Wiki
Wechseln zu: Navigation, Suche
Mnemonic: SEI
Opcode: $78
Anzahl der Bytes: 1
Befehlsgruppe: Flaggen-Befehl
Adressierung: implizit
Beeinflusste Flags im Statusregister:
Interrupt-Flag
Taktzyklen: 2


Der Assembler-Befehl SEI setzt das Interrupt-Flag und unterbindet alle Interrupts (IRQ) bis auf den NMI.
Der Assembler-Befehl CLI hebt diese Sperre wieder auf.

Funktionsprinzip

Ass befehl 78.gif

Bedeutung der Buchstaben im Befehl

SEI SEt Interrupt flag
Setzte Unterbrechungs-Flagge

Beispiel

; Dieses Programm erweitert die originale Interrupt-Service-Routine um den Befehl INC $d020.
; Dadurch flimmert der Rahmen, auch nach der Rückkehr ins Basic, immer noch.
; 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	inc $d020	; VIC-Register Rahmenfarbe um 1 erhöhen 
	jmp $ea31	; Sprung in die alte IRQ-Routine		

Speicherauszug:

.c000	 78		sei
.c001	 a9 0d		lda #$0d
.c003	 8d 14 03	sta $0314
.c006	 a9 c0		lda #$c0
.c008	 8d 15 03	sta $0315
.c00b	 58		cli
.c00c	 60		rts
.c00d	 ee 20 d0	inc $d020
.c010	 4c 31 ea	jmp $ea31

Vergleich des Beispielprogramms mit Basic

Keine vergleichbare BASIC-Befehlsfolge vorhanden.

Links