Neue Grafikmodi für den TT

Spätestens seit Erscheinen des neuen ATARI-Profibuchs für ST/STE/TT-Computer sind alle Geheimnisse um die neuen Rechner gelüftet. Alle? Nicht alle, ein paar von unbeugsamen Software-Tüftlern gut behütete Eigenschaften sind bis zum heutigen Tage der Öffentlichkeit verborgen geblieben. Eines dieser Geheimnisse im tiefen Innern der TT-Hardware wollen wir jetzt lüften.

Interlace-Modus? Jeder kennt den altbekannten Streit zwischen ATARI- und Amiga-Usern. (Zitat: Ein ATARI-User fragt: Warum flimmert das denn so? Ein Amiga-User fragt: Wo ist denn die Farbe?) Nun, im allgemeinen Zuge der Entspannungpolitik wollen wir hier nicht den Kalten Krieg neu anfachen, sondern eher zur Beilegung des Zwists beitragen. Denn geradezu sensationell ist die Mitteilung, die uns kurz vor Redaktionsschluß von einem nimmermüden Programmierer erreicht hat. Im ATARI-TT befindet sich ein nicht dokumentiertes Register, das den Betrieb von allen Grafikauflösungen im sogenannten Interlace-Modus gestattet. Bisher ist dieser Grafikmodus nur den Amiga-Usern gut bekannt. Im Interlace-Modus verdoppelt sich die vertikale Auflösung bei gleichzeitiger Halbierung der Bildwechselfrequenz (dadurch flimmert es). Der TT arbeitet bekanntlich mit sechs verschiedenen Auflösungsstufen:

ST-gering : 320x200 in 16 Farben
ST-mittel : 640x200 in 4 Farben
ST-hoch : 640x400 in 2 Farben
TT-gering : 320x480 in 256
TT-mittel : 640x480 in 16 Farben
TT-hoch : 1280x960 in 2 Farben

Bis auf die TT-hoch-Auflösung werden alle Darstellungen mit 60Hz Bildwechselfrequenz betrieben. Der Interlace-Modus verdoppelt nun in allen Auflösungen die vertikale Anzahl der Pixel-Zeilen, also:

ST-gering : 320x400 in 16 Farben
ST-mittel : 640x400 in 4 Farben
ST-hoch : 640x800 in 2 Farben
TT-gering : 320x960 in 256
TT-mittel : 640x960 in 16 Farben
TT-hoch : 1280x1920 in 2 Farben

Die Bildwechselfrequenz sinkt dabei allerdings auf 30Hz (TT-hoch: 36Hz). Doch damit läßt sich's leben; besonders, wenn man einen nachleuchtenden Monitor verwendet (z.B. NEC-G2 oder Siemens C791-45-A3047-A3-Z). Da das Betriebssystem TOS auflösungsunabhängig geschrieben ist, bereitet es sauberen GEM-Programmen zudem keine Probleme, mit diesen Auflösungen zu arbeiten.

Das Problem

Wie kann man nun in den Interlace-Modus schalten? ATARI hat im TT einen völlig neu entwickelten Baustein eingesetzt, der für die Erzeugung der Video-Modi zuständig ist. Der TT-Shifter ist über verschiedene Register, die direkt in den Adreßraum des Prozessors eingeblendet sind, programmierbar. Bekannt aus dem Profibuch ist das Register „shift-TT“ (HEX: FFFF8262). Hiermit werden die Auflösungsstufen festgelegt. ATARI hat aber die Existenz eines weiteren Registers verschwiegen (warum, folgt später). Wir haben das Register „lace-TT“ getauft. Es befindet sich an der Adresse HEX: FFFF8264, also direkt nachfolgend zum „shift-TT“-Register. In diesem Register ist nur das Bit 5 relevant. Im Normalfall ist dieses Bit 0, wird es auf 1 gesetzt, schaltet der Shifter im nächsten HBLANK (horizontal Blank Interrupt) auf Interlace-Modus um. Und hier kommt der Knackpunkt. Im Shifter befindet sich offensichtlich ein Design-Fehler, der dafür sorgt, daß im darauffolgenden HBLANK das Bit 5 wieder auf Null gesetzt wird. Das führt dazu, daß nach Ausgabe einer einzigen Zeile im Interlace-Modus wieder auf Normalmodus zurückgeschaltet wird. Wohl aus diesem Grund hat ATARI die Existenz des „lace-TT“-Registers nicht dokumentiert. Selbst bei einer direkten Anfrage beim Entwickler-Support wurde uns mitgeteilt, daß ein solches Register nicht bekannt sei. Man kann aber davon ausgehen, daß in den nächsten Generationen von TT-Computern der Fehler im TT-Shifter behoben sein wird und die Interlace-Modi von ATARI offiziell dokumentiert und dadurch voll nutzbar werden.

Die Lösung

Keine Hürde, die sich nicht umschiffen läßt. Auch mit dem Shifter-Fehler lassen sich die Interlace-Auflösungen nutzen. Dazu dient unser kleines Programm. Es klinkt sich einfach in den HBLANK-Interrupt und macht nichts anderes, als ständig Bit 5 im „lace-TT“-Register zu setzen. Dadurch wird eine dauerhafte Umschaltung in den Interlace-Modus doch noch möglich. Allerdings wird dies mit einer gewissen Einbuße an Rechenzeit erkauft. Der HBLANK-Interrupt tritt alle 64 Mikrosekunden auf; auch wenn unsere HBLANK-Routine quasi nur aus einem einzigen move-Befehl besteht, nimmt dieser doch einen gewissen Grad Geschwindigkeit des TT in Anspruch.

Aus Platzgründen haben wir das Programm in einen BASIC-Lader verfrachtet. Dieser erzeugt ein Programm namens LACE_TT.PRG. Es muß vor der Initialisierung des AES, also im AUTO-Ordner ausgeführt werden, damit das AES die geänderte Auflösung korrekt installieren kann. Nun wünschen wir viel Spaß mit den neuen Auflösungen des Atari-TTs.

Literatur:

Jankowski/Reschke/Rabich, ATARI-Profibuch ST-STE-TT, Sybex

 1: '
 2: ' BASIC-Loader für LACE_TT.PRG
 3: ' (c)1991 by MAXON-Computer
 4: '
 5: OPEN "o",#1,"LACE_TT.PRG"
 6: RESTORE lace_data
 7: zeile%=35
 8: CLS
 9: PRINT " Programm wird erzeugt..."
10: PRINT
11: DO
12:   PRINT " Zeile: ";zeile%;"->";
13:   DO
14: READ a$
15: EXIT IF a$="***"
16: EXIT IF LEN(a$)=5
17: wort%=VAL("&H"+a$)
18: ADD sum%,wort%
19: OUT #1,wort% DIV 256
20: OUT #1,wort% MOD 256
21:   LOOP
22:   EXIT IF a$="***"
23:   IF a$<>HEX$(sum%,5)
24: ALERT 0, "Fehler in Zeile: " +STR$(zeile%)+
"¦falsche Checksumme: "+HEX$(sum%,5)+ "  ",1
"AHA",dummy%
25: CLOSE #1
26: EDIT
27:   ELSE
28: PRINT " OK!"
29:   ENDIF
30:   CLR sum%
31:   INC zeile%
32: LOOP
33: CLOSE #1
34: lace_data:
35: DATA 601A,0000,013E,0000,00E8,0000,06240
36: DATA 0000,0000,0000,0000,0000,0000,00000
37: DATA 0000,0000,206F,0004,203C,0000,040AF
38: DATA 0100,D0A8,000C,D0A8,0014,D0A8,27318
39: DATA 001C,2F00,23C0,0000,0140,2F08,08324
40: DATA 4267,3F3C,004A,4E41,4FEF,000C,12029
41: DATA 6100,00E6,6104,615C,6040,487A,1CD00
42: DATA 000C,3F3C,0026,4E4E,5C8F,4E75,138C0
43: DATA 3838,0454,E54C,2878,0456,7A04,1C8AA
44: DATA 4AB4,5000,6710,5845,BA44,66F4,27B41
45: DATA 13FC,00FF,0000,013E,4E75,29BC,08E6A
46: DATA 0000,00B8,5000,4239,0000,013E,0942F
47: DATA 4E75,4A39,0000,013E,6704,4267,14357
48: DATA 4E41,4267,2F39,0000,0140,3F3C,1005D
49: DATA 0031,4E41,487A,00B6,3F3C,0009,0D6E7
50: DATA 4E41,5C8F,4A39,0000,013E,6706,15D4D
51: DATA 487A,013E,6004,487A,00F7,3F3C,13269
52: DATA 0009,4E41,5C8F,4E75,0C39,0000,10587
53: DATA 0000,013F,671A,0C39,0001,0000,07493
54: DATA 013F,672C,5239,0000,013F,0239,0BE1C
55: DATA 0001,0000,013F,4E75,06B9,0000,0566E
56: DATA 0280,0000,0144,614A,5239,0000,0B747
57: DATA 013F,0239,0001,0000,013F,4E75,0532D
58: DATA 04B9,0000,0280,0000,0144,612E,069AB
59: DATA 5239,0000,013F,0239,0001,0000,055B2
60: DATA 013F,4E75,3F3C,0002,4E4E,548F,131CF
61: DATA 23C0,0000,0144,4E75,487A,000C,0BBFF
62: DATA 3F3C,0026,4E4E,5C8F,4E75,23F9,15CAD
63: DATA 0000,0144,0000,045E,4E75,FF00,15317
64: DATA 0000,0000,0000,0000,0A0D,2D2D,0373A
65: DATA 2D5F,5F5F,2D2D,2D5F,5F5F,2D2D,173D6
66: DATA 2D5F,5F5F,2D2D,2D5F,5F5F,2D2D,173D6
67: DATA 2D5F,5F5F,0A0D,2020,2020,2020,0F72B
68: DATA 5454,2049,6E74,6572,6C61,6365,21849
69: DATA 2D4D,6F64,7573,0A0D,2020,2028,15C79
70: DATA 6329,3139,3932,2062,7920,4D41,1B457
71: DATA 584F,4E2D,436F,6D70,7574,6572,23241
72: DATA 0A0D,0020,2020,496E,7374,616C,1489B
73: DATA 6C61,7469,6F6E,2065,7266,6F6C,2526F
74: DATA 6772,6569,6368,210A,0D2D,2D2D,18BA7
75: DATA 5F5F,5F2D,2D2D,5F5F,5F2D,2D2D,1D772
76: DATA 5F5F,5F2D,2D2D,5F5F,5F2D,2D2D,1D772
77: DATA 5F5F,5F0A,0D0A,0D00,2020,2049,118DC
78: DATA 6E73,7461,6C6C,6174,696F,6E20,28843
79: DATA 6D69,9E67,6C81,636B,742E,2E2E,27E18
80: DATA 2E0A,0D2D,2D2D,5F5F,5F2D,2D2D,1541D
81: DATA 5F5F,5F2D,2D2D,5F5F,5F2D,2D2D,1D772
82: DATA 5F5F,5F2D,2D2D,5F5F,5F0A,0D0A,1B72C
83: DATA 0D00,0000,001A,4608,0808,0E18,06942
84: DATA 1E0A,0808,0C08,080C,0808,1016,05244
85: DATA 0000,00000
86: DATA ***

CM
Aus: ST-Computer 04 / 1992, Seite 152

Links

Copyright-Bestimmungen: siehe Über diese Seite