- Rasterzeileninterrupt
-
Der Rasterzeileninterrupt ist ein Hardwareinterrupt, der ausgelöst wird, wenn der Videochip eines Computers die Darstellung einer bestimmten Zeile auf dem Bildschirm beginnt.
Die Rasterzeileninterruptprogrammierung wurde intensiv auf den Heimcomputern der 1980er Jahre angewendet. Sie wurde bald zu einem festen Bestandteil vieler für 8-Bit-Heimcomputer geschriebener Computerspiele.
Der Bildaufbau auf Bildschirmen findet zeilenweise statt. Der Videochip, der die Bilddaten ausgibt, enthält dazu unter anderem einen Zähler für die momentan auszugebende Bildzeile, die sogenannte Rasterzeile. Unterstützt der Videochip einen Rasterzeileninterrupt, kann vom Programm eine Zeile festgelegt werden, bei der dieser Interrupt ausgelöst werden soll. Erreicht der Rasterzeilenzähler diesen Wert, signalisiert der Videochip eine Interruptanforderung an den Prozessor. Dieser unterbricht das laufende Programm und führt eine Unterbrechungsroutine (Interrupt Handler) aus. Am Ende der Unterbrechungsroutine fährt der Prozessor mit dem unterbrochenen Programm fort.
Der Rasterzeileninterrupt vereinfacht es, Programmteile beim Erreichen einer bestimmten Bildschirmzeile auszuführen, also mit dem Bildaufbau zu synchronisieren. Das Programm muss nicht aktiv auf das Erreichen dieser Position warten, sondern wird durch die vom Videochip signalisierte Unterbrechungsanforderung (Interrupt) informiert. So lassen sich beispielsweise sehr einfach während des Bildaufbaus Grafikmodi wechseln (Split Screen) oder normalerweise fürs Gesamtbild geltende Farben umschalten. Auch die gleichzeitige Darstellung einer größeren Anzahl hardwaregenerierter Sprites als ursprünglich vom System vorgesehen durch Änderung der Bildschirmpositionen nicht mehr benötigter Sprites aus dem bereits überstrichenen in den noch vom Elektronenstrahl zu zeichnenden Bildschirmbereich wird durch den Rasterinterrupt vereinfacht (z. B. bei Spielen für den Commodore 64).
Inhaltsverzeichnis
Hardware
Ein bekannter klassischer Grafikchip, bei dem der Hersteller die Mechanismen für einen Rasterzeileninterrupt eingebaut hat, ist der VIC-II (MOS Technology 6569 und ähnliche Varianten). Dieser wurde im Commodore 64 verbaut. Zeitgenössische 8-bit-Hardware wie der Atari 800[1], Homecomputer nach dem MSX-Standard oder der Schneider CPC beherrschten ihn ebenfalls. Aber auch jüngere Hardware unterstützt Rasterzeileninterrupts, wie z.B. das Megadrive[2], das Super Nintendo, der Gameboy Advance[3] oder der Gamecube, wo die Technik oft in Spielen für diverse optische Effekte eingesetzt wurde.
Einzelnachweise
- ↑ Display List Interruptprogrammierung am Atari 800 (englisch): Artikel bei Atariarchives.org
- ↑ Programmierung des Sega Megadrives (englisch): Dokumentation bei Gamefaqs.com
- ↑ Display-Interruptprogrammierung am Gameboy Advance (englisch): Wikiseite bei NYC Resistor
Weblinks
- Text zur Programmierung des Rasterzeileninterrupts am C64 (englisch)
- Interruptkurs von Ivo Herzeg, erschienen in der Magic Disk 64, CP Verlag
- Video: "The Ultimate Commodore 64 Talk" (englisch), Vortrag von Michael Steil auf dem 25. Chaos Communication Congress
Literatur
- Plenge, Axel: Das Grafikbuch zum Commodore 64. Data Becker Verlag, 1984, ISBN 3890110096.
- 64'er Magazin: Demo-Programmierung. Franzis Verlag, 9/1997 (Im Volltext kostenlos abrufbar).
- Collins, Steve: Game graphics during the 8-bit computer era. In: ACM SIGGRAPH Computer Graphics. Vol. 32, Nr. 2, ACM New York, 1998, ISSN 0097-8930 (Volltext kostenlos abrufbar).
Wikimedia Foundation.