Assembler-Beispiel 40 - RTI.asm

Aus C64-Wiki
Zur Navigation springenZur Suche springen
; Dieses Programm stellt eine Interrupt-Service-Routine dar, die die Rahmenfarbe ändert.
; Die Register Akku, X und Y werden am Beginn gesichert und am Ende wieder herstellt,
; obwohl dies für die hier dargestellte Aufgabe nicht notwendig und nur exemplarisch
; zeigt, wie der CPU-Status vollständig unbeeinflusst bleibt, falls in der ISR
; auch beliebig andere Register gebraucht werden.

*=$c000   ; Startadresse der Interrupt-Service-Routine
 
isr       pha            ; Akku am Stapel sichern.
          txa
          pha            ; X-Register am Stapel sichern.
          tya
          pha            ; Y-Register am Stapel sichern.
 
          inc $d020      ; Erhöht den Inhalt von $d020 (Rahmenfarbe) um eins.

          pla
          tay            ; Y-Register wiederherstellen
          pla
          tax            ; X-Register wiederherstellen
          pla            ; Akku wiederherstellen
          rti            ; Status wiederherstellen und
                         ; Rücksprung zur Unterbrechungsstelle