Der GTIA

Hauptkategorie: 8-Bitter
Erstellt: 14 November 2011
Zugriffe: 3875

Die Triggereingänge des GTIA sind bei den alten AtariModellen mit den vier Joystickeingängen verbunden. Über die Triggereingänge fragt man so zum Beispiel die "Feuertasten" der Joysticks ab. Da die neuen Atari-Modelle nur noch zwei Joystick-Ports besitzen, wurde einer der freien Triggereingänge zur Abfrage der Freigabe für ein ROM-Modul verwendet. Der vierte Triggereingang ist unbenutzt.

Für jeden Triggereingang steht ein Register zur Verfügung, das jeweils im niedrigsten Bit (Bit 0) den Status des Eingangs angiebt. Eine "1" in einem dieser Bits zeigt zum Beispiel einen nicht gedrückten Taster an den Joysticks an, eine "0" einen gedrückten Taster. Wie schon erwähnt, läßt sich das Zurückschalten auf "1" durch das Setzen von Bit 2 des Registers PMCNTL unterdrücken. Wenn eine "0" in einem der Triggereingangsregister steht, bleibt sie gespeichert, bis das Bit 2 von PMCNTL wieder gelöscht wird. Die Bits 1 bis 7 der Register stehen immer auf "0". Für jedes der Register steht ein Schattenregister zur Verfügung.

Die Register und Schattenregister befinden sich an folgenden Adressen:

TRIG0 53264 $d010 JOYSTICK 1
TRIG0@ 644 $284

TRIG1 53265 $d011 JOYSTICK 2
TRIG1@ 645 $285

TRIG2 53266 $d012 Freigabe Cartridge ROM
TRIG2@ 646 $286 (Joystick 3)

TRIG3 53267 $d013 unbenutzt
TRIG3@ 647 $287 (Joystick 4)
(in Klammern: Atari 400/800)

Die Konsolentaster "START", "SELECT" und "OPTION" werden ebenfalls über den GTIA abgefragt. Dafür steht das Register CONSOL zur Verfügung:

CONSOL 53279 $d01f

Die Konsolentaster sind den Bits des Registers folgendermaßen zugeordnet:

Bit 0 : START
Bit 1 : SELECT
Bit 2 : OPTION

Eine "0" in einem der Bits signalisiert, daß die betreffende Taste gedrückt ist. Durch Einschreiben einer "1" in ein oder mehrere Bits wird die Eingabe durch den oder die betreffenden Taster gesperrt.

Bit 3 des CONSOL-Registers steuert das "Klicken" der Tastatur. Das Betriebssystem schreibt während des Vertikal-Leertaktes eine 1 in dieses Bit. Durch das Einschreiben einer "0" in dieses Bit löst man das "Klicken" aus. Das Bit sollte aber nur kurzzeitig auf "0" stehengelassen werden, insbesondere wenn man die Vertikal-Leertakt-Unterbrechungsroutine des Betriebssystems abschaltet.

Vor dem Lesen der Taster sollte man $08 in das Register CONSOL schreiben, um sicherzugehen, daß kein Taster gesperrt ist.

Das Aussehen der Farben ist bei NTSC- und PAL-System leider nicht identisch. Wenn man auf einem PAL-System ein Spiel schreibt, kann es unter Umständen nötig sein, die Farben zu ändern, bevor man das Programm auf einem NTSC-System laufen läßt. Die Änderungen können aber auch gleich im Programm berücksichtigt werden. Im Register

NTSCPAL 53268 $d014

wird dann im Programmablauf abgefragt, ob ein PAL- oder ein NTSC-Gerät vorliegt. Bei einem PAL-Gerät sind die Bits 1-3 "0", bei einem NTSC-Gerät "1".

Außerdem ist beim NTSC-System normalerweise nicht die gleiche Anzahl von Bildzeilen auf dem Bildschirm vorhanden, wie beim PAL-System.