SEI
Aus C64-Wiki
Zur Navigation springenZur Suche springenMnemonic: | 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
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.