Interrupt - Initialisierung
In manchen, besonders älteren Anleitungen steht folgender Beispielcode:
SEI ; CPU-Interruptverarbeitung sperren
... ; Mögliche Fehlerquelle, siehe (*)
LDA #$7F ; CIA-Timer-Interrupts ausschalten
STA $DC0D
STA $DD0D
LDA #$01 ;VIC-Rasterzeilen-Interrupts einschalten
STA $D01A
CLI ; CPU-Interruptverarbeitung zulassen
Alles anzeigen
(*) In der Zeit zwischen Interruptsperre durch SEI und Ausschalten der CIA-Interrupts kann ein nicht behandelter Timer-Interrupt aber zum Programmabsturz führen.
Die sicherere Lösung ist eine andere Reihenfolge der Befehle:
LDA #$7F ; CIA-Timer-Interrupts ausschalten
STA $DC0D
STA $DD0D
SEI ; CPU-Interruptverarbeitung sperren
...
LDA #$01 ;VIC-Rasterzeilen-Interrupts einschalten
STA $D01A
CLI ; CPU-Interruptverarbeitung zulassen
Alles anzeigen
Falls die CIA-Timer die einzigen Interruptquellen sind, können hier SEI und CLI sogar ganz entfallen.