GTIA

From Atariki

Jump to: navigation, search
GTIA-mini.gif
Układ scalony GTIA

Graphic Television Interface Adaptor - specjalizowany układ scalony odpowiedzialny za wytwarzanie - pod kierunkiem układu ANTIC - kolorowego obrazu oraz grafiki graczy i pocisków. W literaturze bywał też nazywany George's Television interface Adaptor od imienia projektanta, George'a McLeoda. Jest obecny w zdecydowanej większości 8-bitowych komputerów Atari i w konsolach 5200.

Numer katalogowy Atari: C014805 (NTSC) / C014889 (PAL).

Spis treści

GTIA a CTIA

Układ GTIA zastąpił montowany wcześniej w małym Atari układ CTIA, ale nie jest jego wersją rozwojową, a tylko dokończoną. Układ bowiem był z braku czasu montowany w pierwszych egzemplarzach komputerów w stanie niepełnym, i ta właśnie niepełna wersja znana jest jako CTIA (zob. Sekcja 1.11 w Atari 8-bit FAQ). Za autentycznością tych informacji przemawia fakt, że już rewizja A systemu operacyjnego wspiera tryby GTIA.

Układ GTIA był stosowany w serii 400/800 od listopada 1981 r. Oprócz tego Atari oferowało posiadaczom komputerów z CTIA jego wymianę.

Wymiana CTIA na GTIA rozszerza możliwości komputera o tworzenie tzw. trybów GTIA, czyli trybów graficznych pozwalających uzyskać do 16 kolorów naraz oraz dających dostęp do całej palety 256 kolorów (Graphics 9).

GTIA naprawia też błąd CTIA, przez który tryby monochromatyczne były przesunięte o pół cyklu koloru w lewo w stosunku do pozostałych trybów oraz graczy i pocisków.[1] Ubocznym efektem poprawki jest zamiana miejscami kolorów wygenerowanych za pomocą efektu artefaktów. (Niektóre źródła podają nieprecyzyjną informację, że w CTIA to duszki były przesunięte względem pozostałej grafiki.[2])

Wadliwe GTIA

Niektóre układy GTIA są fabrycznie wadliwe, co objawia się przede wszystkim tym, że tryby wielokolorowe wyświetlane są nieprawidłowo. Istnieją co najmniej dwa rodzaje tych wad, w pierwszym (i najgorszym) przypadku tryby wielokolorowe działają zupełnie źle, w drugim - nieprawidłowości są nieco innego rodzaju i ujawniają się tylko w pewnych warunkach.

Generalnie jest to problem wybitnie związany z zależnościami czasowymi wewnątrz GTIA, w obwodzie, który odbiera dane z szyny ANx ANTIC-a.




Typ pierwszy

Typ pierwszy, występujący dość często w ostatnich seriach komputerów XE (np. w 800XE), charakteryzuje się tym, że - jak powiedziano powyżej - tryby wielokolorowe działają źle zawsze albo prawie zawsze. Logika tworzenia nieprawidłowego obrazu jest taka, że pierwszy cykl koloru piksela wyświetlany jest dobrze, natomiast drugi źle, przy czym jest to dodatkowo zależne od koloru, jaki piksel miał mieć (z zakresu 0 - 15). Wyjątkiem jest kolor 0, który jest zawsze czarny, tak jak powinien.

Generowane rzeczywiście kolory w drugim cyklu koloru są różne dla różnych egzemplarzy GTIA, czasami "wadliwych" kolorów jest więcej, czasami mniej, czasami drugi cykl koloru miga sobie. Zależy to też od napięcia zasilania komputera, nagrzania GTIA itp. czynników. Spotyka się takie GTIA, które włączone na zimno działa bardzo źle, po chwili coraz lepiej, a po zmianie zasilacza w komputerze - już całkiem dobrze (to sprawa napięcia zasilania, a nie mocy zasilacza).

Wada ma też wpływ na tryb hires, tu polega ona na zbyt dużych różnicach szerokości pomiędzy pikselami parzystymi i nieparzystymi - wahania dochodzą do 50%.

Wadliwe układy to te z datą produkcji od 9035 do 9152 (jest to liczba umieszczona po prawej stronie symbolu AMI, dwie pierwsze cyfry to rok produkcji, dwie następne - kolejny tydzień tego roku). Ten zakres dat obejmuje układy, w których stwierdzono wadę - niewykluczone natomiast, że w rzeczywistości wadliwe są wszystkie układy wyprodukowane w latach 1990-1991. Prawdopodobną przyczyną są jakieś drobne zmiany w technologii wykonania późniejszych układów produkowanych przez AMI, co spowodowało przesunięcie niektórych sygnałów w niebezpieczne czy też niestabilne zakresy czasowe.

Na obrazku obok kolejno prawidłowy wygląd ekranu podczas "testu GTIA" w SysInfo, a poniżej to samo generowane przez wadliwe GTIA.

Prosty test na tę wadę

Jest to programik w BASIC-u (autorem jest MacGyver), dzięki któremu można łatwo stwierdzić, czy w komputerze jest wadliwe GTIA:

10 GRAPHICS 9
20 FOR I=0 TO 15:COLOR I
30 FOR J=0 TO 4
40 PLOT I*5+J,0:DRAWTO I*5+J,191
50 NEXT J
60 NEXT I
70 GOTO 70

W wyniku jego pracy obraz na monitorze powinien wyglądać mniej więcej tak, jak to przedstawia obrazek z lewej: jeżeli na ekranie jest 15 pasków, gdzie od lewej do prawej każdy będzie jaśniejszy, GTIA jest dobre. Jeżeli zaś któryś z pasków będzie się składał z grupki cienkich pionowych linii w różnych kolorach - mamy GTIA do wymiany.

Typ drugi

Wada typu drugiego jest ukryta, w takim GTIA tryby wielokolorowe oraz hires działają nienagannie za wyjątkiem sytuacji, kiedy program dokonuje włączenia trybu wielokolorowego już w trakcie wyświetlania linii; innymi słowy, dzieje się to, kiedy obraz podzielony jest na dwie części, gdzie z lewej strony jest tryb hires (Graphics 8), z prawej natomiast multicolor. W takiej sytuacji dane obrazu w trybie wielokolorowym zaczynają być interpretowane inaczej niż normalnie, w wyniku czego obraz staje się albo zamazany, albo zupełnie nieczytelny.

Tego typu zakłócenia można obserwować w demach Joyride, Unity, Sweet Illusions oraz Too Hard 4. Powinny być też możliwe do wykrycia przy użyciu SysInfo w wersji 2.11 (lub nowszej).

Układy z tą wadą pochodzą z wcześniejszych lat niż te z wadą typu pierwszego: stwierdzono ją np. w układach z lat 1983, 1984 i 1987 (datowniki 8339, 8351, 8442, 8722). Nie oznacza to, że wszystkie egzemplarze z tymi datownikami są wadliwe.

Wada ujawnia się po niedługim czasie od włączenia komputera na zimno. Można to zaobserwować na teście GTIA w SysInfo: w prawej części ekranu początkowo stabilny tryb wielokolorowy, w miarę rozgrzewania się układu zaczyna się linia po linii zmieniać w tryb, który przy wszystkich cechach trybu 9 (rozdzielczość, zasada wyboru koloru i jasności piksela) ma nieprawidłową jasność, która dla danego piksela w linii jest wyznaczona w połowie przez jego dane, a w połowie przez dane następnego, zgodnie z poniższym schematem: grafika:GTIAbug2_descr.png

Dodatkowym efektem jest przesunięcie wygenerowanego w ten sposób obrazu o pół piksela (jeden cykl koloru) w prawo.

Prosty test na wadę typu drugiego

Poniższym programem (napisanym w Atari BASIC z fragmentami kody maszynowego) możemy sprawdzić czy GTIA posiada wadę typu drugiego:

Grafika:Gtia_split_test.png

10 REM -- GTIA LINE SPLIT TEST --
11 REM ** done by Seban/Slight **
12 REM
13 FOR I=1536 TO 1556:READ A:POKE I,A:NEXT I:GRAPHICS 9
14 FOR X=0 TO 31:COLOR X/2:PLOT X+48,1:DRAWTO X+48,96:NEXT X
15 FOR Y=96 TO 191:COLOR Y-96:PLOT 48,Y:DRAWTO 78,Y:NEXT Y
16 POKE 87,8:COLOR 1:POKE 710,0:POKE 709,15
17 FOR X=0 TO 157 STEP 2:PLOT 79,0:DRAWTO X,191:NEXT X
18 POKE 623,0:X=USR(1536)
19 DATA 169,0,141,10,212,141,27,208,162,6,202,208,253,169,64,141,27,208,76,0,6

Naprawa

Istnieją cztery znane metody naprawy wad GTIA:

  1. wymiana układu GTIA na pozbawiony wad
  2. zainstalowanie w komputerze VBXE i podłączenie monitora przez wyjście RGB
  3. zbudowanie układu zgodnego z Simius GTIA Fixer (likwiduje to tylko wadę typu pierwszego)
  4. doprowadzenie do nóżki 35 układu ANTIC sygnału OSC z układu GTIA (nóżka 28) zamiast FØ0 (likwiduje to tylko wadę typu drugiego)

Zobacz też

Odnośniki zewnętrzne

Personal tools