Rasterinterrupt

Rasterinterrupt

Die Rasterzeileninterruptprogrammierung wurde vor allem auf den Heimcomputern der 80er Jahre (besonders dem Commodore C64) angewendet und war ein in der Demoszene beliebter Trick.

Der Grafikchip VIC (MOS Technology 6569 und ähnliche Varianten) des Commodore 64 kann so programmiert werden, dass er, wenn der Elektronenstrahl in der Bildröhre des Fernsehers bzw. Monitors eine bestimmte Rasterzeile erreicht, einen IRQ auslöst. Da der C64 als Bildschirm normalerweise einen normalen 50-Hz-Fernseher nutzte, konnte die Zeit, die der Rasterelektronenstrahl der Bildröhre benötigte, um an einen bestimmten Ort auf der Mattscheibe zu gelangen, relativ zum Startpunkt berechnet werden. Der Prozessor des C64 kannte keine Optimierungen wie Branch-Prediction, so dass die Ausführungszeiten von Assembler-Befehlen konstant und berechenbar waren. Durch geschickte Programmierung wurde dieser Determinismus ausgenutzt, und der Video-Baustein VIC für eine definierte Zeit abgeschaltet, bzw. angehalten. Erst wenn nach Ausführung einiger (eventuell auch sinnloser) Kommandos (NOP – No OPeration, 2 Takte) der Elektronenstrahl die gewünschte Bildposition erreicht hatte, wurde er wieder eingeschaltet. So war es möglich, ohne Sprites beliebig große Grafikblöcke auf dem Bild zu verschieben, und das ganze in einer Geschwindigkeit, die andere IBM-kompatible Computer erst in etwa mit Einführung des Pentium-Prozessors erreichten.

Farbüberlagerungen wurden durch Rasterzeileninterruptprogrammierung möglich, so dass mehr als die standardmäßig vorhandenen 16 Farben zusammengemischt werden konnten. Durch den Interrupt konnten neue Registerinhalte geladen und so verschiedene Zeichensätze gleichzeitig dargestellt oder der Bildschirm in mehrere Bereiche unterteilt werden. Auch die Begrenzung des C64 auf 8 Sprites wurde so von vielen C64-Spielen umgangen. Der Rasterzeileninterrupt spielte auch eine wichtige Rolle beim sogenannten Zeichensatz-Scrolling.

Die Rasterzeileninterruptprogrammierung ist ein typisches Beispiel für einen Hack (im Sinne eines Programmiertricks), was in diesem Fall den „respektlosen“, unbefangenen Umgang mit technischem Gerät bedeutet. Denn die Funktionalität war vom Hersteller vermutlich nicht vorgesehen, sondern hatte sich rein zufällig ergeben.

Auf dem Amiga-Computer wurde diese strahlsynchrone Programmierung durch den Copper (Teil des Agnus des Amiga-Chipsatzes) auf festere Füße gestellt.

Weblinks

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 über http://www.amiga-magazin.de). 

Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • MOS Technologies VIC II — MOS 6569R3 auf einem C64 Mainboard Der VIC II 8565R2 für den C64 II Der VIC (Video Interface Controller) II von MOS Technologies, Nachfolger des …   Deutsch Wikipedia

  • MOS Technology VIC II — MOS 6569R3 auf einem C64 Mainboard Der VIC II 8565 …   Deutsch Wikipedia

  • 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… …   Deutsch Wikipedia

  • VIC II — MOS 6569R3 auf einem C64 Mainboard Der VIC II 8565R2 für den C64 II Der VIC (Video Interface Controller) II von MOS Technologies, Nachfolger des …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”