Kolorowa karta graficzna — Color Graphics Adapter

Kolorowa karta graficzna
IBM Color Graphics Adapter.jpg
Karta graficzna IBM CGA
Data wydania 1981 ; 40 lat temu ( 1981 )
Architektura Motorola 6845 , ATI CW16800
Karty
Poziom podstawowy IBM Color Graphics Adapter, ATi Graphics Solution Rev 3, ATi Color Emulation Card, Tseng Labs ColorPAK,
Średni zakres ATi Graphics Solution plus, ATi Graphics Solution Plus SP, ATi Graphics Solution SR, System graficzny numer dziewięć
Wysokiej klasy Rozwiązanie ATi Small Wonder Graphics, Tseng Labs EVA/480
Entuzjasta ATi Small Wonder Graphics Solution z portem gier
Historia
Następca

Graphics Adapter Kolor ( CGA ), pierwotnie zwany również Kolor / Graphics Adapter lub IBM Kolor / Graphics Adapter monitora , wprowadzony w 1981 roku, był IBM pierwsza karta jest kolorowa grafika dla IBM PC i utworzyła de facto tryb graficzny .

Projekt sprzętu

Oryginalny IBM CGA karta graficzna została zbudowana wokół Motorola 6845 karty graficznej, przyszedł z 16  kilobajtów w pamięci wideo zbudowany i funkcjonalny kilka grafika i tryb tekstowy . Najwyższa rozdzielczość wyświetlania w dowolnym trybie wynosiła 640×200, a najwyższa obsługiwana głębia kolorów to 4-bit (16 kolorów).

Kartę CGA można podłączyć do monitora CRT z napędem bezpośrednim za pomocą 4-bitowego interfejsu cyfrowego ( TTL ) RGBI , takiego jak kolorowy wyświetlacz IBM 5153 , lub do telewizora lub monitora kompozytowego zgodnego z NTSC za pomocą złącza RCA . Złącze RCA zapewniało tylko wideo w paśmie podstawowym, więc do podłączenia karty CGA do telewizora bez wejścia kompozytowego wideo wymagany był oddzielny modulator RF .

IBM wyprodukował 5153 Personal Computer Color Display do użytku z CGA, ale nie był on dostępny w momencie wydania i nie został wydany do marca 1983 r.

Chociaż własny kolorowy wyświetlacz IBM nie był dostępny, klienci mogli użyć wyjścia kompozytowego (w razie potrzeby z modulatorem RF) lub wyjścia z napędem bezpośrednim z dostępnymi monitorami innych firm, które obsługiwały format RGBI i szybkość skanowania. Niektóre wyświetlacze innych firm nie miały wejściowej intensywności, zmniejszając liczbę dostępnych kolorów do ośmiu, a wielu z nich brakowało również unikalnych obwodów IBM, które renderowały ciemnożółty kolor jako brązowy, więc każde oprogramowanie, które używało brązu, było wyświetlane nieprawidłowo.

Możliwości wyjściowe

CGA oferowało kilka trybów wideo.

Tryby graficzne:

  • 160×100 w 16 kolorach, wybieranych z 16-kolorowej palety, wykorzystujący specyficzną konfigurację trybu tekstowego 80x25.
  • 320×200 w 4 kolorach, do wyboru z 3 stałych palet, w wariantach o wysokiej i niskiej intensywności, z kolorem 1 wybranym z palety 16 kolorów.
  • 640×200 w 2 kolorach, jeden czarny, jeden wybrany z palety 16 kolorów.

Niektóre programy osiągały większą głębię kolorów, wykorzystując kolory artefaktów po podłączeniu do monitora kompozytowego.

Tryby tekstowe:

  • 40×25 z czcionką 8×8 pikseli (efektywna rozdzielczość 320×200)
  • 80×25 z czcionką 8×8 pikseli (efektywna rozdzielczość 640×200)

IBM chciał, aby CGA było kompatybilne z domowym odbiornikiem telewizyjnym. Tryby tekstowe 40×25 i graficzne 320×200 mogą być używane z telewizorem, a tryby tekstowe 80×25 i graficzne 640×200 przeznaczone są do monitora.

Paleta kolorów

CGA używa 16-kolorowej gamy, ale nie wszystkie kolory są dostępne przez cały czas, w zależności od używanego trybu graficznego. W trybach średniej i wysokiej rozdzielczości kolory są przechowywane z mniejszą głębią bitową i wybierane za pomocą stałych indeksów palety, a nie bezpośredniego wyboru z pełnej 16-kolorowej palety.

Gdy używane są cztery bity (dla trybu niskiej rozdzielczości lub do programowania rejestrów kolorów), są one ułożone zgodnie z modelem kolorów RGBI :

  • Trzy dolne bity reprezentują składowe koloru czerwonego, zielonego i niebieskiego
  • Czwarty bit „wzmacniacza”, gdy jest ustawiony, zwiększa jasność wszystkich trzech składowych koloru (czerwonego, zielonego i niebieskiego).
Pełna paleta 16 kolorów CGA
0 czarny
#000000
8 ciemnoszary
#555555
1 niebieski
#0000AA
9 jasnoniebieski
#5555FF
2 zielony
#00AA00
10 jasnozielony
#55FF55
3 cyjan
#00AAAA
11 light cyan
# 55FFFF
4 czerwony
#AA0000
12 jasnoczerwony
#FF5555
5 purpurowy
#AA00AA
13 jasna purpura
#FF55FF
6 brązowy
#AA5500
14 żółty
#FFFF55
7 jasnoszary
#AAAAAA
15 biały
#FFFFFF

Z monitorem RGBI

Podczas korzystania z monitora z napędem bezpośrednim, cztery bity kolorów są wyprowadzane bezpośrednio do złącza DE-9 z tyłu karty.

W monitorze cztery sygnały są interpretowane w celu sterowania pistoletami w kolorze czerwonym, zielonym i niebieskim. W odniesieniu do modelu kolorów RGBI opisanego powyżej, monitor używałby w przybliżeniu następującego wzoru do przetwarzania cyfrowej czterobitowej liczby kolorów na napięcia analogowe w zakresie od 0,0 do 1,0:

red   := 2/3×(colorNumber & 4)/4 + 1/3×(colorNumber & 8)/8
green := 2/3×(colorNumber & 2)/2 + 1/3×(colorNumber & 8)/8
blue  := 2/3×(colorNumber & 1)/1 + 1/3×(colorNumber & 8)/8
ciemny żółty
6 #AAAA00

Kolor 6 jest traktowany inaczej; przy użyciu powyższego wzoru kolor 6 stałby się ciemnożółty , jak widać po lewej stronie, ale w celu uzyskania przyjemniejszego brązowego odcienia, specjalne obwody w większości monitorów RGBI, począwszy od kolorowego wyświetlacza IBM 5153, stanowią wyjątek dla koloru 6 i zmienia swój odcień z ciemnożółtego na brązowy poprzez zmniejszenie o połowę amplitudy sygnału analogowego zielonego.

Ta paleta „RGBI z ulepszonym brązowym” została zachowana jako domyślna paleta późniejszych standardów grafiki komputerowej, takich jak EGA i VGA , które mogą wybierać kolory ze znacznie większych gamutów, ale domyślnie do czasu przeprogramowania.

Z kompozytowym kolorowym monitorem/zestawem telewizyjnym

16 kolorów CGA przy korzystaniu z wyjścia NTSC (wersja karty po 1983)

W przypadku wyjścia kompozytowego te czterobitowe liczby kolorów są kodowane przez wbudowany sprzęt CGA w sygnał zgodny z NTSC podawany do gniazda wyjściowego RCA karty. Ze względu na koszty nie odbywa się to za pomocą konwertera RGB na YIQ, jak wymaga tego standard NTSC, ale za pomocą serii przerzutników i linii opóźniających.

W konsekwencji widocznym odcieniom brakuje czystości; w szczególności, zarówno cyjan, jak i żółty mają zielonkawy odcień, a kolor 6 ponownie wygląda na ciemnożółty zamiast brązowego.

Względne luminancje kolorów wytwarzanych przez układ generujący kolor kompozytowy różnią się między wersjami CGA: są identyczne dla kolorów 1-6 i 9-14 we wczesnych CGA wyprodukowanych do 1983 roku i są różne dla późniejszych CGA ze względu na dodanie dodatkowych rezystory.

Jak jednak wspomniano, ta metoda działa tylko w telewizorach NTSC. Telewizory PAL nie wyświetlają kolorów zgodnie z oczekiwaniami po podłączeniu do wyjścia kompozytowego, ponieważ separacja kolorów PAL zapobiega występowaniu artefaktów.

Standardowe tryby tekstowe

CGA oferuje cztery tryby tekstowe BIOS (nazywane trybami alfanumerycznymi lub A/N w dokumentacji IBM). W tych trybach poszczególne piksele na ekranie nie mogą być adresowane bezpośrednio. Zamiast tego ekran jest podzielony na siatkę komórek znaków, z których każda wyświetla znak zdefiniowany w jednej z dwóch czcionek bitmapowych, "normalnej" i "cienkiej", zawartych w pamięci ROM karty. Czcionki są stałe i nie można ich modyfikować ani wybierać z oprogramowania, tylko za pomocą zworki na samej płycie.

Czcionki są przechowywane jako bitmapy z 1-bitową głębią kolorów, gdzie „1” reprezentuje znak, a „0” reprezentuje tło. Kolory te można wybrać niezależnie, dla każdej postaci na ekranie, z pełnej 16-kolorowej palety CGA. Zestaw znaków jest zdefiniowany przez sprzętową stronę kodową 437 .

Dane bitmapowe czcionek są dostępne tylko dla samej karty, nie mogą być odczytane przez CPU. W trybach graficznych wyjście tekstu przez BIOS działa poprzez kopiowanie tekstu z pamięci ROM z czcionkami bit po bicie do pamięci wideo.

Tryb 40×25

40 kolumn na 25 rzędów, z każdym znakiem 8×8 kropek. Efektywna rozdzielczość ekranu w tym trybie wynosi 320×200 pikseli ( współczynnik proporcji pikseli 1:1,2). Karta ma wystarczającą ilość pamięci RAM wideo dla ośmiu różnych stron tekstowych w tym trybie.

Tryby BIOS 0 i 1 są trybami tekstu 40-kolumnowego. Różnicę między tymi dwoma trybami widać tylko na monitorze złożonym, gdzie tryb 0 wyłącza serię kolorów, dzięki czemu cały tekst jest wyświetlany w skali szarości. Tryb 1 włącza rozbłysk kolorów, pozwalając na kolor. Tryb 0 i tryb 1 są funkcjonalnie identyczne na monitorach RGB i późniejszych adapterach, które emulują CGA bez obsługi wyjścia kolorów kompozytowych.

Tryb 80x25

80 kolumn na 25 rzędów, przy czym każdy znak wciąż ma wzór 8×8, ale wyświetlany z większą szybkością skanowania. Efektywna rozdzielczość ekranu w tym trybie to 640×200 pikseli. W tym trybie karta ma wystarczającą ilość pamięci RAM wideo na cztery różne strony tekstowe.

Tryby BIOS 2 i 3 wybierają 80-kolumnowe tryby tekstowe. Podobnie jak w przypadku 40-kolumnowych trybów tekstowych, Tryb 2 wyłącza impuls kolorów w sygnale złożonym, a Tryb 3 go włącza.

Kolor trybu tekstowego

Każda komórka znaku przechowuje cztery bity dla koloru pierwszego planu i tła. Jednak w domyślnej konfiguracji kart czwarty bit koloru tła nie ustawia intensywności, ale ustawia atrybut migotania dla komórki. Wszystkie znaki na ekranie z tym ustawionym bitem będą okresowo migać, co oznacza, że ​​ich kolor pierwszego planu zostanie zmieniony na kolor tła, dzięki czemu postać stanie się niewidoczna. Wszystkie znaki migają jednocześnie.

Ustawiając rejestr sprzętowy, funkcję migania można wyłączyć, przywracając dostęp do kolorów tła o wysokiej intensywności.

Wszystkie migające znaki na ekranie migają synchronicznie. Efekt migającego atrybutu jest domyślnie włączony, a efekt tła o wysokiej intensywności jest wyłączony; wyłączenie migania to jedyny sposób, aby dowolnie wybrać te ostatnie ośmiokolorowe indeksy (8-15) dla koloru tła.

Warto zauważyć, że języki programowania GW-BASIC i Microsoft QBASIC dołączone do MS-DOS obsługiwały wszystkie tryby tekstowe CGA z pełną kontrolą kolorów, ale nie zapewniały normalnego sposobu przełączania CGA z trybu migania na 16- tryb koloru tła. Było to jednak nadal możliwe poprzez bezpośrednie programowanie rejestrów sprzętowych za pomocą instrukcji OUT języka BASIC.

Standardowe tryby graficzne

CGA oferuje tryby graficzne w trzech rozdzielczościach: 160×100, 320×200 i 640×200. We wszystkich trybach każdy piksel na ekranie można ustawić bezpośrednio, ale głębia kolorów dla wyższych trybów nie pozwala na swobodny wybór z pełnej 16-kolorowej palety.

160x100

Ekran tytułowy PakuPaku, klona Pac-Mana, który używa trybu 160×100

Tryb niskiej rozdzielczości 160×100 to tak naprawdę tryb 40×25 znaków. Ponieważ wbudowana pamięć ROM znaków zawiera elementy „grafiki”, takie jak znak, który ma górną połowę w kolorze pierwszego planu i dolną połowę w kolorze tła, a także ponieważ kolory pierwszego planu i tła można dowolnie wybierać w trybie tekstowym, niska rozdzielczość ale można uzyskać pełnokolorowy wyświetlacz graficzny.

320×200

W trybie średniej rozdzielczości 320×200 każdy piksel to dwa bity, które wybierają kolory z czterokolorowej palety. W trybie 4 dostępne są dwie palety, aw trybie 5 jedna paleta.

Palety sprzętowe CGA
# Tryb 4 Tryb 5
Paleta 0 Paleta 1 niska intensywność wysoka intensywność
niska intensywność wysoka intensywność niska intensywność wysoka intensywność
0 0 – tło 0 – tło 0 – tło 0 – tło 0 – tło 0 – tło
1 2 – zielony 10 – jasnozielony 3 – cyjan 11 – jasnobłękitny 3 – cyjan 11 – jasnobłękitny
2 4 – czerwony 12 – jasnoczerwony 5 – purpurowy 13 – jasna purpura 4 – czerwony 12 – jasnoczerwony
3 6 – brązowy 14 – żółty 7 – jasnoszary 15 – biały 7 – jasnoszary 15 – biały

Programując rejestry sprzętowe można dokonać kilku wyborów. Najpierw wybrana paleta. Po drugie, intensywność – która jest definiowana dla całego ekranu, a nie na podstawie piksela. Po trzecie, kolor 0 (kolor „tła”) można ustawić na jeden z 16 kolorów.

Określony tryb graficzny BIOS ma wpływ na to, które palety są dostępne. BIOS Mode 4 oferuje dwie palety: zielona/czerwona/brązowa i cyjan/magenta/biała.

Podobnie jak w przypadku trybów tekstowych 0 i 2, tryb 5 wyłącza serię kolorów, aby umożliwić wyświetlanie kolorów w skali szarości na monitorze złożonym. Jednak, w przeciwieństwie do trybów tekstowych, wpływa to również na kolory wyświetlane na monitorze RGBI, zmieniając je na paletę cyjan/czerwono/białą widoczną powyżej. Ta paleta nie jest udokumentowana przez IBM, ale była używana w niektórych programach.

W trybie wysokiej rozdzielczości 640×200 każdy piksel to jeden bit, co zapewnia dwa kolory, które można wybrać z 16-kolorowej palety poprzez zaprogramowanie rejestrów sprzętowych.

640×200

W tym trybie obraz wideo jest przechowywany jako prosta bitmapa, gdzie jeden bit na piksel ustawia kolor na „pierwszy plan” lub „tło”. Domyślnie kolory to czarny i jasnobiały, ale kolor pierwszego planu można zmienić na dowolny wpis w 16-kolorowej palecie CGA. Koloru tła nie można zmienić z czarnego na oryginalnej karcie IBM CGA. BIOS Mode 6 ustawia tryb graficzny 640×200. Ten tryb domyślnie wyłącza kompozytowy sygnał kolorów Burst. BIOS nie zapewnia opcji włączenia serii kolorów w trybie 640×200, a użytkownik musi zapisać bezpośrednio do rejestru kontrolnego trybu, aby go włączyć.

Dalsze tryby graficzne i poprawki

Istnieje szereg oficjalnych i nieoficjalnych funkcji, które można wykorzystać do uzyskania efektów specjalnych.

  • W trybie graficznym 320×200 kolor tła (który wpływa również na kolor obramowania), który domyślnie jest ustawiony na czarny podczas inicjalizacji trybu, można zmienić na dowolny z pozostałych 15 kolorów palety CGA. Pozwala to na pewne zróżnicowanie, a także na efekty migania, ponieważ kolor tła można zmienić bez konieczności przerysowywania ekranu (tj. bez zmiany zawartości pamięci RAM wideo).
  • W trybie tekstowym kolor obramowania (wyświetlany poza zwykłym obszarem wyświetlania i obejmujący obszar overscan ) można zmienić z domyślnego czarnego na dowolny z pozostałych 15 kolorów.
  • Dzięki precyzyjnemu taktowaniu możliwe jest przełączenie na inną paletę podczas odtwarzania wideo, co pozwala na użycie dowolnej z sześciu palet na linię skanowania. Przykładem tego jest California Games , gdy jest uruchamiany na standardowym 4,77 MHz 8088. Uruchomienie na szybszym komputerze nie daje efektu, ponieważ metoda używana przez programistów do przełączania palet w określonych miejscach jest niezwykle wrażliwa na prędkość maszyny. To samo można zrobić z kolorem tła, który jest używany do tworzenia rzeki i drogi w Frogger . Innym udokumentowanym przykładem tej techniki jest port Jungle Hunt firmy Atarisoft na PC.
  • Dodatkowe kolory można przybliżyć za pomocą ditheringu .
  • Korzystanie z palety 0 o niskiej intensywności i ciemnoniebieskim kolorze tła zapewnia trzy podstawowe kolory RGB , a także brązowy.

Niektóre z powyższych poprawek można łączyć. Przykłady można znaleźć w kilku grach.

160×100 tryb 16 kolorów

Pojedynczy duży „piksel” w trybie 160×100. To są dwa górne rzędy połowy znaku 221. Zwróć uwagę na osiem składowych niekwadratowych pikseli i ogólny współczynnik proporcji 1:1,2.

Technicznie rzecz biorąc, ten tryb nie jest trybem graficznym, ale ulepszeniem trybu tekstowego 80×25. Rejestr wysokości komórek znakowych został zmieniony tak, aby wyświetlać tylko dwa wiersze na komórkę znakową zamiast normalnych ośmiu wierszy. Powoduje to czterokrotne zwiększenie liczby wyświetlanych wierszy tekstu z 25 do 100. Te „ściśle ściśnięte” znaki tekstowe nie są pełnymi znakami. System wyświetla tylko dwie górne linie pikseli (po osiem) przed przejściem do następnego wiersza.

ASCII.221.character.svg Postać 221
Znak.półbloku.niebieski.czerwony.svg 221 z niebieskim tekstem i czerwonym kolorem tła
Znak.półbloku.czerwony.niebieski.svg 221 z czerwonym tekstem i niebieskim kolorem tła.
ASCII.222.character.svg Postać 222

Znak 221 zestawu znaków CGA składa się z pola zajmującego całą lewą połowę macierzy znaków. (Postać 222 składa się z pudełka zajmującego całą prawą połowę.)

Ponieważ każdemu znakowi można przypisać różne kolory pierwszego planu i tła, może on być pokolorowany (na przykład) na niebiesko po lewej stronie (kolor pierwszego planu) i jasnoczerwony po prawej stronie (kolor tła). Można to odwrócić, zamieniając kolory pierwszego planu i tła.

Używając znaku 221 lub 222, każda połowa każdej obciętej komórki znakowej może być zatem traktowana jako pojedynczy piksel, dzięki czemu dostępnych jest 160 pikseli poziomych na linię. W ten sposób możliwe są 160×100 pikseli w 16 kolorach, z proporcjami 1:1,2.

Chociaż jest to okrężna droga do uzyskania 16-kolorowego wyświetlacza graficznego, działa to całkiem dobrze i tryb ten jest nawet wspomniany (choć nie wyjaśniony) w oficjalnej dokumentacji sprzętowej IBM.

W tym trybie można uzyskać więcej szczegółów, wykorzystując inne znaki, łącząc grafikę ASCII z wspomnianą techniką.

Ponieważ CGA ma 16 KiB ( 16  384 bajtów) pamięci graficznej, a nie 16 000, równie łatwo jest ustawić liczbę linii w tym trybie na 102 zamiast 100 dla rozdzielczości 160×102 (16320 pikseli). Wykorzystuje to dodatkową pamięć wideo, która zwykle nie jest używana. Jednak większość gier tego nie robiła, być może ze strachu, że będzie działać tylko na niektórych monitorach, ale nie na innych – obawa, która nie jest bezpodstawna, ponieważ później okazało się, że niektóre kompatybilne karty mają karty, które albo zakłócają, albo ignorują wszelkie próby umieszczenia urządzenie w ten tryb.

Ta sama technika zmniejszania wysokości komórek tekstowych może być również używana w trybie tekstowym 40×25. Miało to sens tylko w przypadku korzystania z grafiki ASCII, ponieważ bez niej uzyskana rozdzielczość wynosiłaby tylko 80×100.

Wyjście kompozytowe

Użycie wyjścia kompozytowego zamiast monitora RGBI dało obraz wideo o niższej jakości, ze względu na gorszą separację między luminancją a chrominancją w systemie NTSC . Jest to szczególnie problem z tekstem 80-kolumnowym:

80-kolumnowy tekst na RGB (po lewej) i na monitorze kompozytowym (po prawej)

Z tego powodu każdy z trybów tekstu i grafiki ma tryb duplikacji, który wyłącza kompozytową serię kolorów , co daje obraz czarno-biały, ale także eliminuje rozmycie kolorów w celu uzyskania ostrzejszego obrazu. Na monitorach RGBI obie wersje każdego trybu są zwykle identyczne, z wyjątkiem trybu graficznego 320×200, w którym wersja „monochromatyczna” tworzy trzecią paletę.

Rozszerzone kolory artefaktów

Programiści odkryli, że ta wada może stać się atutem, ponieważ wyraźne wzory kropek o wysokiej rozdzielczości zamieniają się w spójne obszary jednolitych kolorów, umożliwiając w ten sposób wyświetlanie zupełnie nowych kolorów artefaktów . W tej technice można zastosować zarówno standardowy czterokolorowy 320×200, jak i 640×200 kolor na czarnym.

Operacja wewnętrzna

Kolory bezpośrednie to normalne 16 kolorów, jak opisano powyżej w części „Paleta kolorów CGA”.

Widoczne są kolory artefaktów, ponieważ dekoder chrominancji NTSC monitora kompozytowego błędnie interpretuje niektóre informacje o luminancji jako kolor. Starannie umieszczając piksele w odpowiednich wzorach, programista może wytworzyć określone artefakty w różnych kolorach, dające pożądany nowy kolor; albo czysto czarno-biały pikseli 640 x 200 trybu, lub w wyniku połączenia z bezpośredniego i artefaktów kolorów w 320 x 200 trybie, jak pokazano na zdjęciach.

Tak więc przy wyborze pomiędzy trybem 320×200 vs. 640×200, wyborze pomiędzy dwiema paletami i jednym dowolnie wybranym kolorem (tło w trybach 320×200 i pierwszy plan w trybie 640×200), możliwe jest używać wielu różnych zestawów kolorów artefaktów, co daje całkowitą gamę ponad 100 kolorów.

Późniejsze demonstracje entuzjastów zwiększyły maksymalną liczbę kolorów, które CGA może wyświetlać w tym samym czasie do 1024. Ta technika obejmuje modyfikację trybu tekstowego, która czterokrotnie zwiększa liczbę wierszy tekstu. Niektóre znaki ASCII, takie jak U i ‼, są następnie używane do tworzenia niezbędnych wzorów, co daje w wyniku obrazy bez ditheringu o efektywnej rozdzielczości 80×100 na monitorze złożonym.

Dostępność i zastrzeżenia

Wariant 320×200 tej techniki (patrz wyżej) to sposób, w jaki standardowy tryb graficzny wspierany przez BIOS wygląda na złożonym kolorowym monitorze. Wariant 640×200 wymaga jednak modyfikacji bitu (wyłączenia koloru burst) bezpośrednio w rejestrach sprzętowych CGA. W rezultacie jest zwykle określany jako oddzielny „tryb”.

Będąc całkowicie zależnym od procesu kodowania/dekodowania NTSC, kompozytowe artefaktowanie kolorów nie jest dostępne na monitorze RGBI ani nie jest emulowane przez EGA, VGA lub współczesne karty graficzne.

Nowoczesny, skoncentrowany na grach emulator PC DOSBox obsługuje tryb CGA, który może emulować artefakt kolorów monitora kompozytowego. Obsługiwany jest zarówno tryb kompozytowy 640×200, jak i bardziej złożony wariant 320×200.

Rozdzielczość i wykorzystanie

Artefakt kompozytowy, stosowany celowo lub jako niepożądany artefakt, zmniejsza efektywną rozdzielczość poziomą do maksymalnie 160 pikseli, więcej dla tekstu czarno-białego lub białego na czarnym, bez zmiany rozdzielczości pionowej. Wynikowy kompozytowy wyświetlacz wideo z „artefaktowanymi” kolorami jest czasami określany jako „tryb” 160 × 200/16 kolorów, chociaż technicznie była to technika wykorzystująca tryb standardowy.

Niska rozdzielczość tej metody artefaktowania kolorów kompozytowych sprawiła, że ​​jest ona wykorzystywana niemal wyłącznie w grach. Wiele głośnych tytułów oferowało grafikę zoptymalizowaną pod kątem kompozytowych monitorów kolorowych. Ultima II , pierwsza gra z serii, która została przeniesiona na IBM PC, wykorzystywała kompozytową grafikę CGA. King's Quest I oferowałem także 16-kolorową grafikę na PC, PCjr i Tandy 1000, ale zapewniłem " tryb RGB " na ekranie tytułowym, który wykorzystywał tylko zwykły tryb graficzny CGA, ograniczony do 4 kolorów. W tym trybie zastosowano dithering do symulacji dodatkowych kolorów.

Wysoka głębia kolorów

1024 kolory w trybie kompozytowym
1024 kolory w trybie kompozytowym

Wykorzystując kolory artefaktów, zegar kolorów NTSC oraz metodę podobną do tej stosowanej w 16-kolorowym trybie pseudo-grafiki 160×100 , możliwe jest wyświetlanie ponad 16 kolorów na monitorach kompozytowych.

Podczas wyjścia każdej linii występuje 160 cykli zegara kolorów NTSC, tak więc w trybie 40-kolumnowym każdy piksel zajmuje pół cyklu, aw trybie 80-kolumnowym każdy piksel zajmuje ćwierć cyklu. Ograniczając wyświetlanie znaków do jednej lub dwóch górnych linii skanowania oraz wykorzystując rozmieszczenie pikseli w niektórych znakach strony kodowej 437 można wyświetlić do 1024 kolorów. Ta technika została użyta w demo 8088 MPH.

Ograniczenia, błędy i erraty

Taktowanie wideo w CGA zapewnia kontroler wideo Motorola 6845 . Ten układ scalony został pierwotnie zaprojektowany tylko dla wyświetlaczy alfanumerycznych (tekstowych) opartych na znakach i może obsługiwać maksymalnie 128 wierszy znaków.

Aby zrealizować tryby graficzne z 200 liniami skanowania na CGA, MC6845 jest zaprogramowany na 100 wierszy znaków na obraz i dwie linie skanowania na wiersz znaku. Ponieważ adres pamięci wideo wyprowadzany przez MC6845 jest identyczny dla każdej linii skanowania w rzędzie znaków, CGA musi używać wyjścia „adres wiersza” MC6845 (tj. linii skanowania w rzędzie znaków) jako dodatkowego bitu adresu do pobierania danych rastrowych z wideo pamięć.

Oznacza to, że o ile rozmiar danych rastrowych pojedynczej linii skanowania nie jest potęgą dwójki, dane rastrowe nie mogą być rozmieszczane w pamięci wideo w sposób ciągły. Zamiast tego tryby graficzne w CGA przechowują ciągi linii skanowania o numerach parzystych w pamięci, po których następuje drugi blok linii skanowania o numerach nieparzystych, zaczynając od pozycji 8192 w pamięci wideo. Taki układ skutkuje dodatkowym obciążeniem w trybach graficznych dla oprogramowania, które manipuluje pamięcią wideo.

Mimo że kontroler wideo MC6845 może zapewnić synchronizację dla wideo z przeplotem , obwody CGA dopasowują sygnały synchronizacji w taki sposób, że skanowanie jest zawsze progresywne. W konsekwencji niemożliwe jest podwojenie rozdzielczości pionowej do 400 linii skanowania przy użyciu standardowego monitora 15 kHz.

Wyższa przepustowość używana w 80-kolumnowym trybie tekstowym powoduje, że na ekranie pojawiają się losowe, krótkie poziome linie (znane jako „śnieg”), jeśli program zapisuje bezpośrednio w pamięci wideo podczas rysowania ekranu. BIOS unika problemu, uzyskując dostęp do pamięci tylko podczas odtwarzania w poziomie lub tymczasowo wyłączając wyjście podczas przewijania. Chociaż powoduje to migotanie obrazu, IBM uznał, że jest to lepsze niż śnieg. Problem „śniegu” nie występuje na żadnej innej karcie wideo ani na większości klonów CGA.

W 80-kolumnowym trybie tekstowym częstotliwość zegara pikseli jest podwojona, a wszystkie sygnały synchronizacji są wyprowadzane przez dwukrotność liczby cykli zegara, aby trwać przez właściwy czas. Wyjątkiem jest obwód sygnału koloru Burst wyjścia kompozytowego : ponieważ nadal generuje tę samą liczbę cykli, teraz z podwojoną częstotliwością zegara, generowany sygnał Burst koloru jest zbyt krótki dla większości monitorów, co skutkuje brakiem lub niestabilnym kolorem. Dlatego dokumentacja IBM wymienia 80-kolumnowy tryb tekstowy jako „funkcję” tylko dla monitorów RGBI i czarno-białych monitorów kompozytowych. Stabilny kolor można nadal uzyskać, ustawiając kolor obramowania na brązowy, co powoduje powstanie fazy identycznej z prawidłowym sygnałem Burst koloru i służy jako jego substytut.

Podpórka dwugłowicowa

CGA został wydany wraz z IBM MDA i faktycznie mógł być zainstalowany razem z MDA na tym samym komputerze. Polecenie dołączone do PC-DOS pozwalało na przełączanie wyjścia wyświetlania między kartami CGA i MDA. Niektóre programy, takie jak wczesne wersje programu AutoCAD dla systemu MS-DOS, obsługują jednoczesne wyświetlanie obu tych programów .

Wsparcie oprogramowania

CGA było szeroko obsługiwane w oprogramowaniu PC do lat 90. XX wieku. Niektóre oprogramowanie obsługujące płytę to:

Konkurencyjne adaptery

BYTE w styczniu 1982 r. opisał dane wyjściowe z CGA jako „bardzo dobre — nieco lepsze niż kolorowa grafika na istniejących mikrokomputerach”. PC Magazine nie zgodził się z tym, informując w czerwcu 1983 r., że „monitorowy wyświetlacz IBM jest absolutnie piękny pod względem tekstu i cudownie przyjazny dla oczu, ale ogranicza się do prostej grafiki znaków. Jakość tekstu na wyświetlaczach podłączonych do adaptera kolorów/grafiki… jest na poziomie najlepsza ze średniej jakości i sprzyja zmęczeniu oczu na dłuższą metę”.

W retrospektywnym komentarzu Next Generation również negatywnie ocenił CGA, stwierdzając: „Nawet jak na tamte czasy (początek lat 80.) te grafiki były okropne, blednące w porównaniu z innymi kolorowymi maszynami dostępnymi na rynku”.

CGA miało kilku konkurentów:

  • Do użytku biznesowego i przetwarzania tekstu IBM dostarczył Monochrome Display Adapter (MDA) w tym samym czasie, co CGA. Początkowo MDA było znacznie bardziej popularne niż CGA. Ponieważ wiele komputerów zostało sprzedanych firmom, ostry, monochromatyczny tekst o wysokiej rozdzielczości był bardziej pożądany do uruchamiania aplikacji.
  • W 1982 roku wprowadzono kartę graficzną (HGC) innej firmy niż IBM Hercules , pierwszą kartę graficzną innej firmy do komputerów PC. Oprócz trybu tekstowego zgodnego z MDA, oferował monochromatyczny tryb graficzny o rozdzielczości 720×348 pikseli, wyższej niż CGA.
  • Również w 1982 roku wprowadzono płytę Plantronics Colorplus z dwukrotnie większą pamięcią niż standardowa płyta CGA (32k w porównaniu do 16k). Dodatkowa pamięć może być wykorzystana w trybach graficznych w celu podwojenia głębi kolorów, dając dwa dodatkowe tryby graficzne — 16 kolorów w rozdzielczości 320×200 lub 4 kolory w rozdzielczości 640×200.
  • IBM PCjr (1984) i kompatybilny Tandy 1000 (1985) wyróżniona pokładzie „rozszerzony” CGA sprzętu wideo, wideo przedłużony poza 16 KB RAM, dzięki czemu 16 kolorów w rozdzielczości 320 x 200 i czterech kolorów w rozdzielczości 640 x 200 rozmiar. Ponieważ Tandy 1000 długo przeżył PCjr, tryby wideo stały się znane jako Tandy Graphics Adapter ” lub „TGA” i były bardzo popularne w grach w latach 80-tych. Podobny, ale rzadziej używany był Plantronics Colorplus .
  • W 1984 roku IBM wprowadził również Profesjonalny Kontroler Graficzny , wysokiej klasy rozwiązanie graficzne przeznaczone m.in. dla aplikacji CAD . Był w większości wstecznie kompatybilny z CGA. PGC nie znalazła powszechnego zastosowania ze względu na cenę 4000 dolarów i została przerwana w 1987 roku.

Inne alternatywy:

  • Firma Paradise Systems wprowadziła w 1984 roku pierwszą udaną kartę kompatybilną z CGA do monitorów MDA. Wyświetla 16 kolorów CGA w odcieniach monochromatycznych. Ponieważ była sprzętowo kompatybilna z CGA, karta Paradise nie wymagała specjalnego wsparcia programowego ani dodatkowych sterowników.
  • Innym rozszerzeniem niektórych chipsetów kompatybilnych z CGA (w tym chipsetów Olivetti M24, AT&T 6300, DEC VAXmate i niektórych przenośnych komputerów Compaq i Toshiba ) jest podwojona rozdzielczość pionowa. Daje to wyższą jakość wyświetlania tekstu 8×16 oraz dodatkowy tryb graficzny 640×400.

Karta CGA została zastąpiona w przestrzeni konsumenckiej przez kartę IBM Enhanced Graphics Adapter (EGA), która obsługuje większość trybów CGA i dodaje dodatkową rozdzielczość (640 × 350), a także wybieraną programowo paletę 16 kolorów z 64 w zarówno w trybie tekstowym, jak i graficznym.

Specyfikacje

Złącze

Kolorowa karta graficzna wykorzystuje standardowe złącze DE-9 do bezpośredniego przesyłania wideo (do monitora RGBI). Złącze na karcie jest żeńskie, a złącze na kablu monitora jest męskie.

Złącze DE-9 widoczne z tyłu komputera PC
Przypnij zadania
Szpilka Funkcjonować
1 Grunt
2 Grunt
3 czerwony
4 Zielony
5 Niebieski
6 Intensywność
7 Skryty
8 Synchronizacja pozioma
9 Synchronizacja pionowa

Sygnał

Rodzaj Cyfrowy, TTL
Rezolucja 640h × 200v, 320h × 200v
H-częst. 15699,8 Hz (14,318181 MHz/8/114)
V-częst. 59,923 Hz (częstotliwość H/262)
Zabarwienie 16

Zobacz też

Bibliografia

Uwagi

Zewnętrzne linki