Interrupt

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Als Interrupt wird eine Unterbrechungsanforderung bezeichnet, die die aktuelle Arbeit des Prozessors unterbricht und so den Prozessor veranlasst andere Prozesse zu verarbeiten, wobei danach üblicherweise wieder an der Stelle der Unterbrechung (ähnlich wie bei einem Unterprogrammaufruf) fortgefahren wird.

Beim C64 wird innerhalb von BASIC V2 der CIA1-Timer so eingestellt, dass 60 mal innerhalb einer Sekunde ein Interrupt Request (IRQ) ausgelöst wird. Die Interrupt-Routine kümmert sich dann um die Tastaturabfrage und die Systemuhr sowie um das Cursorblinken (Details siehe IRQ, Abschnitt "ISR des KERNAL"). Dadurch kann

werden.

Strenggenommen ist auch der nichtmaskierbare NMI beim C64 ein "Interrupt", in der Praxis wird jedoch meist mit "Interrupt" das Auslösen eines IRQ gemeint. BASIC V2 benutzt von sich aus abseits von RUN/STOP +RESTORE  und den RS232-Routinen keine NMIs.

Tipps & Tricks[Bearbeiten | Quelltext bearbeiten]

  • Interrupt per BASIC abschalten: POKE 56334, PEEK(56334) AND 254
Hinweis: Durch die Abschaltung erfolgt auch die Deaktivierung der Abfrage der Tastatur. Der C64 ist somit in dieser Zeit nicht mehr direkt bedienbar. Daher ist diese Methode nur innerhalb von BASIC-Programmen zu empfehlen. Weiterhin muss das BASIC-Programm fehlerfrei arbeiten, damit der Interrupt wieder erfolgreich angeschaltet werden kann.
  • Interrupt per BASIC einschalten: POKE 56334, PEEK(56334) OR 1
  • Interrupt per Tastatur einschalten: RUN/STOP +RESTORE 

Weblinks[Bearbeiten | Quelltext bearbeiten]

Wikipedia: Interrupt