von Frederik Holst Weiter geht's mit dem Interrupt-Block: 512, 513 $200, $201 VDSLST Vektor für den Displayinterrupt. DLIs werden immer dann ausgelöst wenn 1) Der Elektronenstrahl eine neue Zeile zu zeichnen beginnt und 2) wenn in der Displaylist in der vorigen Zeile das achte Bit (+128) gesetzt ist. 514, 515 $202, $203 VPRCED Dieser Interrupt wird angesprungen, wenn mit der PIA und dem seriellen Bus gearbeitet wird. Wie der DLI wird auch dieser Interrupt vom OS nicht benutzt, kann aber zur besseren Kontrolle über die Pheripherie verwendet werden. 516, 517 $204, $205 VINTER Auch dieser Interrupt ist mit dem seriellen Bus verbunden. Auch er wird vom OS nicht benutzt. 518, 519 $206, $207 VBREAK Dieser Interrupt ist für jeden MC-Programmierer interessant, da die CPU hierhin springt, wenn sie auf das 6502 Kommando $00 (BRK) stößt. So lassen sich einfach Breakpoints beim Debugging setzen. 520, 521 $208, $209 VKEYBD Dieser Interrupt wird ausgelöst, wenn irgendeine Taste außer Break und den Funktionstasten gedrückt wird. 522, 523 $20a, $20b VSERIN Ein POKEY Interrupt, der ausgelöst wird, wenn der serielle Bus Daten empfängt. 524, 525 $20c, $20d VSEROR Dieser Interrupt wird ausgelöst, wenn der serielle Bus zur Übertragung bereit ist. 526, 527 $20e, $20f VSEROC Dieser Interrupt wird benutzt, wenn eine Byte-Übertragung beendet ist. SIO benutzt die letzten drei Interrupts zur Datenübertragung. Während einer Übertragung werden alle Programmausführungen angehalten. POKEY wartet so lange, bis ein Flag gesetzt wird und die Übertragung beendet ist. Währenddessen werden Bits gesendet oder übertragen. Wenn dies geschehen ist wird einer der beiden letzten Interrupts ausgelöst bis alle Bytes übertragen sind. Erst dann gibt SIO die Kontrolle zurück an den Programmablauf. 528, 529 $210, $211 VTIMR1 POKEY Timer 1 Interrupt Vektor. Wird angesprungen, wenn AUDF1 ($D200) nach null gezählt hat. 530, 531 $212, $213 VTIMR2 Timer zwei, der für den Counter AUDF2 zuständig ist. Das war's mal wieder. CU soon!