KARTY GRAFICZNE EGA, VGA i SVGA
Chociaż na wydajność systemu komputerowego wpływa głównie procesor oraz elementy płyty głównej, to o komforcie pracy decyduje monitor wraz ze sterownikiem graficznym. Od rodzaju sterownika zależy typ użytego monitora.
W czasie kilkunastoletniego rozwoju komputerów typu IBM PC powstało wiele konstrukcji sterowników graficznych, pozwalających na osiągnięcie obrazu o coraz lepszych parametrach.
Karta graficzna obsługuje wszystkie aspekty powstawania obrazu, od przyjęcia i przechowywania bajtów w pamięci do tworzenia obwiednich fal sygnałów standardowego sygnału video. Sam proces tworzenia obrazu zaczyna się jednak już wewnątrz aplikacji multimedialnych (lub w innym oprogramowaniu). To programy zarządzają przepływem bajtów przez mikroprocesor do bufora klatki lub, co współcześnie bardziej powszechne, przesyłaniem do karty graficznej instrukcji graficznych decydujących o rozmieszczeniu bajtów w pamięci video.
W prostych systemach to mikroprocesor PCeta wykonuje całą taką pracę albo za pomocą bezpośrednich poleceń przeniesienia bajtów do specyficznych lokalizacji w pamięci, albo poprzez odwołania się do BIOS-u, który sam wykonuje szczegółową pracę. W bardziej złożonych systemach mikroprocesor przesyła kody poleceń do video procesora, który albo bezpośrednio przemieszcza dane do pamięci ekranu, albo generuje obraz i następnie przenosi go do pamięci.
Omówienie kart graficznych EGA, VGA i SVGA
Sterownik EGA składa się z czterech głównych elementów funkcjonalnych:
· układu sekwencyjnego (sekwensera) odpowiadającego za generowanie sygnału zegarowego, przesyłanie danych pomiędzy pamięcią obrazu, układem graficznym i układem określania atrybutu za lokalizację wyświetlanego zbioru znaków;
· układu graficznego - odpowiadającego za przekazywanie danych pomiędzy pamięcią obrazu a procesorem i układem określania atrybutu;
· układu sterowania atrybutem służącego do zmiany kolorów zapisanych w pamięci obrazu na indeksy kolorów zdefiniowanych w rejestrach wzorców kolorów;
· układu sterowania wyświetlaczem (kontrolera CRT) odpowiadającego za zachowanie zależności czasowych podczas wyświetlania obrazu oraz wyświetlającego kursor.
Karta VGA posiada piąty element:
· przetwornik cyfrowo-analogowy , przetwarzający wzorce cyfrowe na sygnał analogowy przesyłany do monitora.
Powyższe układy zawierają od kilkudziesięciu (karta EGA) do kilkuset (karta VGA) programowalnych rejestrów sterujących.
Na pamięć obrazu przeznaczone jest 128 KB przestrzeni adresowej. Była to ilość wystarczająca dla kart CGA. Standardowy sterownik VGA posiada 256 KB pamięci RAM, a karta SVGA, co najmniej 512 KB. Z tego powodu pamięć obrazu zorganizowana jest na różne sposoby, w zależności od trybu pracy sterownika.
W trybach odziedziczonych po kartach CGA wykorzystywana jest spakowana (ang. packed) metoda odwzorowania pamięci w jednym bloku pamięci RAM każdemu punktowi na ekranie odpowiada fragment bajtu zawierający numer koloru tego punktu (rysunek). Pole odpowiadające jednemu punktowi wynosi zwykle 1, 2, 4 lub, 8 co odpowiada 2, 4, 16 lub 256 kolorom obrazu.
Dla kart EGA i VGA podstawową metodą odwzorowania ekranu jest metoda płatowa (ang. planar, bit mapped). Pamięć obrazu dzielona jest na 4 płaty (bloki) po 64 KB każdy. W każdym bloku jednemu bitowi odpowiada jeden punkt - dzięki takiej strukturze 256 KB pamięci obrazu zajmuje 64 KB przestrzeni adresowej. Konsekwencją przyjętej organizacji pamięci jest utrudniony dostęp do danych. Zapis lub odczyt wymaga dodatkowo programowania rejestrów układu graficznego.
Karty SVGA umożliwiają współpracę conajmniej 512 KB pamięcią obrazu. Ponieważ na pamięć obrazu zarezerwowane jest 128 KB przestrzeni adresowej procesora, do dostępu do pamięci karty SVGA wykorzystują technikę stronicowania - polegającą na kojarzeniu z niewielkim obszarem pamięci (oknem) w przestrzeni adresowej różnych fragmentów większego obszaru pamięci (stron lub banków. W trybach graficznych SVGA w obrębie banku odwzorowanie pamięci obrazu jest identyczne jak w analogicznych trybach VGA.
Tryby tekstowe
W trybach tekstowych pamięć obrazu sterowników EGA, VGA i SVGA zorganizowana jest tak samo jak sterownik MDA i CGA. Z tego powodu została zachowana całkowita zgodność pomiędzy poszczególnymi rodzajami kart graficznych.
Każdy znak reprezentowany jest przez dwa bajty pamięci obrazu. Pierwszy z nich zawiera kod ASCII wyświetlanego znaku, drugi zaś określa jego atrybut. Wyświetlanie znaków odbywa się bardzo szybko, gdyż do zapisania jednego znaku wymagane jest przesłanie tylko dwóch bajtów. W pamięci obrazu kody znaków zapisane są na przemian z atrybutami, dlatego do wyświetlania znaków można wykorzystać instrukcję asemblera rep movsx
W pamięci obrazu można przechowywać do ośmiu stron tekstu, w zależności od ilości zainstalowanej pamięci i trybu pracy. Dostępne tekstowe tryby pracy podaje tabela:
W trybie tekstowym znak w lewym górnym rogu ekranu znajduje się w zerowym wierszu i zerowej kolumnie.
Sterowniki graficzne posiadają zdefiniowane standardowe zestawy znaków zapisane w pamięci stałej. W przypadku sterowników EGA, VGA i SVGA możliwa jest zamiana miejsca w pamięci, z którego pobierane będą wyświetlane znaki. Po przygotowaniu tzw. matrycy znaków można wskazać ją sterownikowi graficznemu korzystając z funkcji 11h (podfunkcje 00h i 10h) BIOS-u sterownika. W ten sposób, aby otrzymać na przykład polskie znaki diakrytyczne, nie trzeba dokonywać żadnych przeróbek sprzętowych, tak jak miało to miejsce w przypadku karty Hercules (do uzyskania polskich znaków trzeba było zmienić zawartość pamięci EPROM).
Sterowniki SVGA posiadają dodatkowe tryby tekstowe. Przykładowe tekstowe tryby pracy sterowników SVGA to 80 x 30, 80 x 43, 80 x 60, 132 x 25, 132 x 30, 132 x 43, 132 x 60, wszystkie w 16 kolorach.
Tryby graficzne
W zależności od trybu graficznego zmienia się organizacja pamięci obrazu. Jednak we wszystkich trybach graficznych kolejne komórki pamięci obrazu reprezentują kolejne punkty położone w kolejnych liniach poziomych, odczytywane z lewa na prawo i od góry do doły. W trybach dwukolorowych pojedynczy punkt opisywany jest przez jeden bit. Osiem kolejnych punktów opisywanych jest przez jeden bajt pamięci obrazu, przy czym najbardziej znaczący bit znajduje się z lewej strony, zaś najmniej znaczący z prawej. W trybach czterokolorowych pojedynczy punkt opisywany jest dwoma bitami, a w trybach szesnastkowych - czterema. W specyficznym 256 - kolorowym trybie 13h pojedynczy punkt opisywany jest jednym bajtem. Większość gier korzysta z tego trybu mimo stosunkowo niskiej rozdzielczości (320 x 200), gdyż do umieszczenia punktu na ekranie nie trzeba wykonywać żadnych złożonych operacji - wystarczy policzyć przesunięcie względem początku pamięci obrazu.
Dostępne tryby graficzne sterowników EGA i VGA przedstawia tabela:
Numer trybu Rozdzielczość ilość kolorów rozmiar znaku segment pamięci obrazu zgodny ze sterownikiem
04h 320 x 200 4 8 x 8 B800 CGA, EGA
05h 320 x 200 4 (szarości) 8 x 8 B800 CGA, EGA
06h 640 x 200 2 8 x 8 B800 CGA, EGA
0Dh 320 x 200 16 8 x 8 A000 EGA, VGA
0Eh 640 x 200 16 8 x 8 A000 EGA, VGA
0Fh 640 x 350 3 8 x 14 A000 EGA, VGA
10h 640 x 350 4 8 x 14 A000 EGA, VGA
11h 640 x 480 2 8 x 16 A000 VGA
12h 640 x 480 16 8 x 16 A000 VGA
13h 320 x 200 256 8 x 16 A000 VGA
Tryby zapisu i odczytu pamięci obrazu
W trybach graficznych o spakowanej organizacji pamięci obrazu, pamięć karty widziana jest jako ciągły obszar pamięci RAM. Z tego powodu zapis lub odczyt danych nie powinien sprawiać kłopotów.
W trybach graficznych o płatowej organizacji pamięci obrazu, odczyt lub zapis komórek pamięci może być różnie zinterpretowany przez poszczególne układy kart. Z tego powodu wprowadzone zostały cztery tryby zapisu i dwa tryby odczytu.
0. tryb zapisu
W zerowym trybie zapisu dane przesyłane przez procesor zapisywane są bezpośrednio w pamięci obrazu. Zapisywany bajt może być poddany operacji przesunięcia cyklicznego, możliwe jest także zamaskowanie poszczególnych bitów zapisywanego bajtu.Ta operacja wymaga wykonania cyklu odczyt - modyfikacja - zapis. Podczas odczytu cztery bajty z poszczególnych planów pamięci obrazu zapisywane są w rejestrach zatrzaskowych.
Przed zapisem bajtu mogą być na nim wykonane operacje logiczne AND, OR lub XOR, których drugim argumentem jest zawartość rejestrów zatrzaskowych.
Dane mogą być zapisywane osobno do poszczególnych płatów; jedną instrukcją mov można zapisać cztery bajty pamięci obrazu, po jednym bajcie na płat.
1.tryb zapisu
Korzystając z zawartości rejestrów zatrzaskowych pojedynczą instrukcją mov można modyfikować wszystkie cztery płaty pamięci obrazu. Rejestry zatrzaskowe ładowane są podczas odczytu pamięci obrazu przez procesor. Pierwszy tryb zapisu umożliwia bardzo szybkie kopiowanie obszarów pamięci obrazu.
2.tryb zapisu
W tym trybie wszystkie cztery płaty mogą być modyfikowane przez cztery najbardziej znaczące bity przesyłanego bajtu. Zerowy bit jest ośmiokrotnie kopiowany i zapisywany do komórki płatu zerowego. Pierwszy bit jest ośmiokrotnie kopiowany i zapisywany do komórki płatu pierwszego. Podobnie dzieje się z bitami drugim i trzecim, które powielone zapisywane są odpowiednio do drugiego i trzeciego płatu pamięci obrazu. Do określenia, które z ośmiu bitów faktycznie mają zostać zapisane do pamięci obrazu służy rejestr modyfikacji bajtów (bit mask register).
3.tryb zapisu
Trzeci tryb zapisu dostępny jest wyłącznie w sterowniku VGA i jest bardziej skomplikowany. Dane zapisywane do pamięci obrazu pobierane są z rejestru ustawiania/ zerowania (set/reset register). Każdy z czterech najmniej znaczących bitów rejestru jest powielany osiem razy i zapisywany do odpowiednich płatów pamięci obrazu. Zapisywane bity mogą być maskowane operacją AND z przesuniętym cyklicznie bajtem wysłanym przez procesor. Bity o wartości 0 są kopiowane do pamięci z rejestrów zatrzaskowych zaś bity o wartości 1 są albo kopiowane z rejestru ustawiania/ zerowania lub podlegają operacji logicznej na bitach tego rejestru i odpowiednich bajtach rejestrów zatrzaskowych. Możliwe jest także zablokowanie dostępu do poszczególnych płatów pamięci przez wpisanie odpowiedniej wartości do rejestru blokowania pamięci. Tryb ten jest szczególnie przydatny przy wyświetlaniu na ekranie jednokolorowych wzorów.
0.tryb odczytu
W tym trybie odczytu przesyłane bajty pobierane są z pamięci obrazu. Podczas pojedynczego odczytu dostępny jest tylko jeden, aktywny płat pamięci. Jeśli poszczególne punkty odczytu są reprezentowane przez poszczególne bity na wszystkich płatach pamięci, operacja jednego odczytu może zwrócić bity ośmiu sąsiadujących punktów.
1.tryb odczytu
W pierwszym trybie odczytu jako rezultat operacji zwracana jest wartość wynikająca z porównania zawartości pamięci z rejestrem porównania kolorów (color company register). Poszczególne bity rejestru są uwzględniane na podstawie zawartości rejestru opuszczania kolorów (color don’t care register). W porównaniu uczestniczą wszystkie niezablokowane płaty pamięci. Odczytany bajt zawiera rezultat ośmiu równoległych porównań, po jednym dla każdego z ośmiu sąsiadujących poziomo punktów reprezentowanych przez pojedynczy bajt.
Standard VESA
Standard VESA ukazywał się w kilku edycjach. Do chwili obecnej opublikowano wskazania techniczne dotyczące:
· parametrów monitorów przeznaczonych do współpracy z kartami SVGA;
· numeracji rozdzielczości trybów graficznych i znakowych;
· interfejsu programowego (dodatkowych funkcji przerwania 10h BIOS- u;
· magistrali lokalnej (Local Bus) do komunikacji ze sterownikiem graficznym.
Każda edycja wniosła rozszerzenia w stosunku do poprzedniej. Pierwsza norma (kwiecień 1989) zalecała tylko jeden rozszerzony tryb- 800 x 600 punktów w 16 kolorach- przypisując mu 1- bajtowy numer 6Ah.
W październiku 1989 standard VESA wprowadził 16- bitowe numery identyfikujące tryby oraz zdefiniował sześć nowych funkcji przerwania 10h do ich obsługi. Funkcje te pozwalają na stwierdzenie obecności w systemie oprogramowania VESA, dostarczają informacji o dostępnych trybach oraz umożliwiają przełączenie banków pamięci. Specyfikację rozszerzonego w ten sposób BIOS- u oznaczono jako wersję 1.0.
Kolejne uzupełnienie (VESA BIOS 1.1) wprowadziło nowe tryby tekstowe oraz dwie kolejne funkcje, przeznaczone do wyboru wyświetlanego na ekranie obszaru pamięci.
Obecnie najczęściej spotykane na rynku sterowniki VESA są zgodne z wersją 1.2. Oznacza to możliwość obsługi trybów wielobarwnych (15, 16 lub 24 bity na piksel) pod warunkiem, że karta SVGA wyposażona jest w specjalny układ przetworników C/A.
Układ sekwencyjny (sequencer).
Układ sekwencyjny odpowiada za generowanie sygnału zegarowego, przesyłanie danych pomiędzy pamięcią obrazu, układem graficznym i układem określania atrybutu oraz lokalizację wyświetlanego zbioru znaków.
Rejestr adresowy układu sekwencyjnego (sequencer address register)- adres 3C4h
Wpisanie wartości do rejestru adresowego określa rejestr wewnętrzny, do którego chcemy się odwołać.
Rejestr informacyjny układu sekwencyjnego- adres 3C5h
Poprzez rejestr informacyjny następuje zapis/ odczyt informacji do/ z rejestru wskazanego przez rejestr adresowy.
Rejestr zerowania (reset register) indeks 00h
Rejestr zerowania pozwala na zatrzymanie działania układu sekwencyjnego oraz ustawienie jego wyjść na stan impedancji.
Rejestr trybu taktowania (clocking mode register)- indeks 01h
Rejestr trybu taktowania określa większość parametrów zegara sterownika.
Rejestr adresowy układu graficznego (graphics 1 and 2 address register)- adres 3Ceh
Rejestr adresowy układu graficznego wiąże rejestr informacyjny z rejestrami wewnętrznymi układu.
Rejestr informacyjny układu graficznego- adres 3CFh
Poprzez rejestr informacyjny następuje zapis/ odczyt informacji do/ z rejestru wskazanego przez rejestr adresowy:
Rejestr ustawiania / zerowania (set/reset register)- indeks 00h
Rejestr ustawiania/ zerowania służy do określenia bitów, które będą ustawiane lub zerowane i poddawane operacjom logicznym- za jego pomocą ustawia się więc kolor, który zostanie nadany punktom podczas zapisu do zapisu pamięci. Wykonywana operacja logiczna wybierana jest przez zapis do rejestru przesunięcia i wyboru funkcji.
Rejestr zezwolenia na ustawiania / zerowania (enable set/reset register)- indeks 01h
Rejestr służy do zezwolenia na modyfikację płatów pamięci zgodnie z zawartością rejestru ustawiania/ zerowania.
Rejestr porównania kolorów (color compare register)- indeks 02h
Rejestr służy do określania numeru koloru, z którym porównywane są punkty podczas odczytu pamięci obrazu.
Rejestr przesunięcia i wyboru funkcji (data roate/ function select register)- indeks 03h
Zawartość przesunięcia i wyboru funkcji służy do określenia działań wykonywanych na danych zapisywanych do pamięci obrazu. Określa, o ile bitów ma zostać przesunięty bajt przesyłany do pamięci obrazu i czy na tym bajcie będzie wykonywana operacja logiczna z zawartością rejestru zatrzaskowego.
Przesunięcie bajtu ma priorytet wyższy od funkcji logicznej i dlatego przeprowadzone jest jako pierwsze. Przesunięcie wykonywane jest tylko w zerowym i trzecim trybie zapisu. Przesunięcie wykonywane jest wyłącznie na bajtach zapisywanych przez procesor.
Rejestr wyboru odczytu (red map select register)- indeks 04h
Rejestr wyboru płatu do odczytu służy do określania numeru płatu pamięci, z którego zostanie odczytany następny bajt.
Zawartość tego rejestru jest brana pod uwagę tylko w zerowym trybie odczytu.
Rejestr trybu dostępu do pamięci (mode register)- indeks 05h
Rejestr trybu dostępu do pamięci określa sposób zapisywania i odczytywania informacji z pamięci obrazu. Razem z rejestrem dodatkowym służy do określenia trybu adresowania pamięci przez układ graficzny.
Rejestr dodatkowy (miscellaneous register)- indeks 06h
Rejestr dodatkowy układu graficznego służy do określenia trybu pracy sterownika i początku pamięci obrazu. Razem z rejestrem trybu dostępu do pamięci służy do określenia trybu adresowania pamięci przez układ graficzny.
Rejestr pominięcia koloru (color don’t care register)- indeks 07h
Rejestr pominięcia obrazu koloru służy do określenia płatów pamięci obrazu pomijanych podczas porównania z zawartością rejestru porównywania kolorów.
Rejestr modyfikacji bitów (bit mask register)- indeks 08h
Rejestr modyfikacji bitów służy do określenia bitów, które nie będą modyfikowane podczas zapisu do pamięci obrazu.
Układ sterowania atrybutem (attribute controller)
Układ sterowania atrybutem służy do zamiany kolorów zapisanych w pamięci obrazu na indeksy kolorów zdefiniowanych w rejestrach wzorców kolorów. Układ sterowania atrybutem odpowiada także za kolor krawędzi ekranu.
Rejestr adresowy układu sterowania atrybutem (graphics 1 and 2 address register)- adres 3C0h
Rejestr adresowy układu sterownia atrybutem wiąże rejestr informacyjny z rejestrami wewnętrznymi układu. Jest także rejestrem informacyjnym tego układu. Zawartość rejestrów wewnętrznych układu może być także odczytana pod adresem wejścia- wyjścia 3C1h.
Rejestr informacyjny układu sterowania atrybutem- adres 3C0h/ 3C1h
Poprzez rejestr informacyjny następuje zapis/ odczyt informacji do/ z rejestru wskazanego przez rejestr adresowy. Z powodu wspólnego adresu z rejestrem indeksowym, przed dostępem do wewnętrznych rejestrów należy dokonać odczytu zawartości pierwszego rejestru stanu o adresie 3BAh (3DAh).
Zmiana zawartości rejestrów układu sterowania atrybutem powinna być dokonywana podczas powrotu pionowego; w przeciwnym przypadku na ekranie można zaobserwować efekt „śnieżenia”.
Rejestry palety (palette register)- indeksy 00h- 0Fh
Rejestry palety służą do przyporządkowania numerom koloru odpowiednich wzorców kolorów, przechowywanych w rejestrach wzorców kolorów przetwornika cyfrowo- analogowego.
Rejestr sterowania trybem pracy (mode control register)- indeks 10h
Rejestr sterowania trybem pracy służy do określenia trybu działania układu sterowania atrybutem.
Rejestr krawędzi ekranu (overscan register)- indeks 11h
Rejestr krawędzi ekranu służy do określenia koloru (numeru wzorca koloru) brzegu ekranu.
Standardowym kolorem krawędzi ekranu we wszystkich trybach pracy jest kolor o numerze 0 (zwykle czarny). Dla niektórych sterowników nie jest możliwe określenie koloru brzegu ekranu innego niż czarny.
Rejestr uwzględnianych płatów pamięci (color plane enable register)- indeks 12h
Rejestr uwzględnianych płatów pamięci służy do określenia płatów pamięci, które będą brane pod uwagę podczas wyświetlania punktów. Pominięte płaty są traktowane tak, jakby były wypełnione zerami.
Rejestr przesunięcia poziomego (horizontal pel panning register)- indeks 13h
Rejestr przesunięcia poziomego służy do określenia przesunięcia obrazu w lewo.
Zawartość rejestru jest uwzględniana w tekstowych i graficznych trybach pracy.
Rejestr wyboru koloru (color select register)- indeks 14h
Rejestr wyboru koloru służy do wybrania bloku wzorców kolorów (grupy rejestrów przetwornika cyfrowo- analogowego).
Zawartość rejestru nie ma znaczenia w 256- kolorowych trybach pracy.
Przetwornik cyfrowo - analogowy
(digital to analog converter)
Rolą przetwornika cyfrowo - analogowego jest przetworzenie wzorców kolorów zawartych w rejestrach wzorców kolorów na sygnał analogowy wysyłany do monitora. Wzorce kolorów są zapisane w 256 18- bitowych rejestrach. Wartość 18- bitowa pozwala na wyświetlenie 262144 odcieni, sterownik VGA pozwala na jednoczesne wyświetlenie tylko 256 kolorów. Sterowniki SVGA pozwalają na uzyskanie większej ilości odcieni (nawet ponad 16 milionów) i jednoczesne wyświetlenie większej liczby kolorów na ekranie.
Rejestr ograniczenia koloru (PEL mask register)- adres 3C6h
Rejestr ograniczenia koloru służy do ograniczenia liczby wzorców kolorów używanych podczas wyświetlania punktów na ekranie. Wartość wysyłana przez układ sterowania atrybutem oraz zawartość rejestru ograniczającego są argumentami funkcji AND, która jako wynik zwraca numer wzorca koloru.
Rejestr stanu przetwornika (DAC status register)- adres 3C7h
Rejestr stanu przetwornika cyfrowo- analogowego jest używany do odczytania stanu wzorców kolorów.
Rejestr jest przeznaczony wyłącznie od odczytu.
Rejestr adresowy odczytu przetwornika (PEL address read mode register)- adres 3C7h
Rejestr adresowy odczytu przetwornika służy do rozpoczęcia cyklu odczytu zawartości rejestrów wzorców kolorów.
Rejestr jest przeznaczony wyłącznie do zapisu.
Rejestr adresowy zapisu przetwornika (PEL address write mode register)- adres 3C8h
Rejestr adresowy zapisu przetwornika służy do rozpoczęcia cyklu zapisu do rejestrów wzorców kolorów.
Rejestr jest przeznaczony wyłącznie do zapisu.
Rejestr informacyjny przetwornika (PEL data register)- adres 3C9h
Rejestr informacyjny przetwornika służy do zapisu i odczytu informacji o wzorach kolorów.
RAMDAC
Układ RAMDAC (Random Acces Memory - Digital to Analog Conwerter) stanowi stopień wyjściowy karty graficznej i przetwarza zakodowany cyfrowo obraz w pamięci na analogowe sygnały RGB sterujące tor wizyjny monitora. W zasadzie są to trzy niezależne przetworniki, po jednym dla każdego z kolorów R,G,B. Czasami można spotkać bardziej rozbudowane rozwiązania, jak np. te z wyjściami na dwa monitory. Prędkość maksymalna, z jaką może przebiegać ta konwersja leży obecnie w zakresie od 135 MHz (produkty powszechnego użytku) do 250 MHz (Matrox Millenium II). Wymagana częstotliwość taktowania przetwornika wynika z aktualnie ustawionej rozdzielczości i częstotliwości odświeżania obrazu a nie zależy od ilości dostępnych w danym trybie barw.
Na ekranie o wysokiej rozdzielczości pojedynczy biały punkt na czarnym tle w pierwszej połowie swego życia znajduje się w fazie między czarnym a białym, chociaż taka barwa wcale nie jest pożądana. To samo ma miejsce przy gaszeniu piksela.
Układ sterowania wyświetlaczem (CRT controller)
Układ sterowania wyświetlaczem odpowiada za zachowanie zależności czasowych i przy wyświetlaniu obrazu. Rejestry układu sterowania określają także kształt kursora i jego położenie, wysokość podkreślenia, wysokość znaków, poziomy podział obrazu oraz położenie wyświetlanej strony w pamięci obrazu.
Rejestr indeksowy układu sterowania wyświetlaczem (CRTC address register)- adres 3B4h (3D4h)
Rejestr adresowy układu graficznego wiąże rejestr informacyjny z rejestrami wewnętrznymi układu.
Rejestr informacyjny układu sterowania wyświetlaczem- adres 3B5h (3D5h)
Poprzez rejestr informacyjny następuje zapis/ odczyt informacji do/ z rejestru wskazanego przez rejestr indeksowy.
Rejestr całkowitego czasu wyświetlania linii (horizontal total register)- indeks 00h
Rejestr całkowitego czasu wyświetlania linii służy do określenia czasu trwania cyklu wyświetlania poziomej linii obrazu.
Rejestr końca wyświetlania poziomego (horizontal display end register)- indeks 01h
Wartość zawarta w rejestrze końca wyświetlania poziomego określa moment zakończenia wyświetlania linii obrazu.
Rejestr początku wygaszania poziomego (start horizontal blanking register)- indeks 02h
Wartość zawarta w rejestrze początku wygaszania poziomego określa moment rozpoczęcia wyświetlania prawego brzegu ekranu i wygaszenie plamki.
Rejestr końca wygaszania poziomego (end horizontal blanking register)- indeks 03h
Wartość zawarta w rejestrze końca wyświetlania poziomego określa moment zakończenia wygaszania poziomego.
Rejestr początku powrotu poziomego (start horizontal retrace register)- indeks 05h
Wartość zawarta w rejestrze końca powrotu poziomego określa moment zakończenia powrotu poziomego.
Rejestr całkowitego czasu wyświetlania obrazu (vertical total register)- indeks 06h
Wartość zawarta w rejestrze całkowitego czasu wyświetlania obrazu odpowiada ośmiu najmniej znaczącym bitom wartości określającej całkowity czas wyświetlania obrazu. Bity ósmy i dziewiąty znajdują się w rejestrze przepełnień układu sterowania wyświetlaczem.
Jednostką czasu jest czas wyświetlania pojedynczej linii. Cykl wyświetlania obrazu rozpoczyna się od wyświetlenia pamięci obrazu, następnie wyświetlany jest dolny brzeg ekranu, następuje powrót pionowy, po czym wyświetlany jest górny brzeg obrazu.
Rejestr przepełnień układu sterowania wyświetlaczem (overflow register)- indeks 07h
Rejestr przepełnień zawiera bardziej znaczące bity wartości zawartych w innych rejestrach.
Rejestr położenia pierwszej linii (preset scan line register)- indeks 08h
Rejestr położenia pierwszej linii zawiera numer linii, od której wyświetlana jest pierwsza linia znaków.
Rejestr ostatniej linii znaku (max scan line register)- indeks 09h
Rejestr ostatniej linii znaku służy do określenia wysokości wyświetlanych znaków w punktach.
Rejestr pierwszej linii kursora (cursor start register)- indeks 0Ah
Rejestr pierwszej linii kursora określa odległość górnej linii kursora od górnej krawędzi znaku.
Rejestr ostatniej linii kursora (cursor end register)- indeks 0Bh
Rejestr ostatniej linii kursora określa odległość dolnej linii kursora od górnej krawędzi znaku.
Rejestry adresowe (start address high register, start address low register) Rejestry adresowe zawierają adres pierwszego wyświetlanego znaku (w trybach tekstowych) lub punktu (w trybach graficznych).
Rejestry pozycji kursora (cursor location high register, cursor location low register)- indeksy 0Eh i 0Fh
Rejestry pozycji kursora mają adres zawierającego kursor (w trybach tekstowych).
Rejestr początku powrotu pionowego (vertical retrace start)- indeks 10h
W rejestrze początku powrotu pionowego znajduje się osiem mniej znaczących bitów wartości określającej moment początku powrotu pionowego. Bity ósmy i dziewiąty wartości określającej rozpoczęcie powrotu pionowego znajdują się w rejestrze przepełnień.
Rejestr końca powrotu pionowego (vertical retrace end)- indeks 11h
Rejestr końca powrotu pionowego zawiera cztery mniej znaczące bity wartości określającej moment zakończenia powrotu pionowego.
Rejestr końca wyświetlania pionowego (vertical display end register)- indeks 12h
Rejestr końca wyświetlania pionowego zawiera osiem mniej znaczących bitów wartości określającej moment końca wyświetlania zawartości pamięci obrazu.
Rejestr długości linii (offset register)- indeks 13h
Rejestr długości linii zawiera wartość określającą długość jednej linii wyświetlanego obrazu w bajtach, słowach lub podwójnych słowach w zależności od zawartości rejestru trybu adresowania.
Rejestr pozycji podkreślenia (underline location register)- indeks 14h
Rejestr pozycji podkreślenia zawiera numer linii, w której będzie wyświetlane podkreślenie.
Rejestr pozycji podkreślenia zawiera także informację uzupełniającą o trybach adresowania stosowanych przez sterownik.
Rejestr początku wygaszania pionowego (start vertical blanking register)- indeks 15h
Rejestr początku wygaszania pionowego zawiera osiem mniej znaczących bitów wartości określającej moment rozpoczęcia wygaszania pionowego.
Rejestr końca wygaszania pionowego (end vertical blanking register)- indeks 16h
W rejestrze końca wygaszania pionowego znajduje się osiem mniej znaczących bitów wartości określającej moment zakończenia wygaszania pionowego.
Rejestr trybu adresowania (mode control register)- indeks 17h
Rejestr trybu adresowania razem z rejestrem pozycji podkreślania określa sposób adresowania pamięci obrazu.
Rejestr porównania linii (line compare register)- indeks 18h
Rejestr porównania linii umożliwia poziome podzielenie ekranu na dwa, w dużym stopniu niezależne obszary.
Rejestr porównania linii zawiera osiem mniej znaczących bitów numeru linii dzielącej obraz. Bit ósmy znajduje się w rejestrze przepełnień, a bit dziewiąty znajduje się w rejestrze wysokości znaku.
Adres pierwszego wyświetlanego znaku dla górnego obszaru wynika z zawartości rejestrów adresowych, a adres początku dolnego obszaru zawsze wynosi zero.
BIBLIOGRAFIA
1. Anatomia PC, Piotr Metzger i Adam Jałowicki, wydawnictwo HELION Gliwice 1998.
2. Multimedia od A do Z, Winn L.Rosch, tłumaczył Piotr Barancewicz, wydawnictwo INTERSOFTLAND Warszawa 1997.
3. HTML i JavaScript, Wojciech Romowicz, wydawnictwo HELION Gliwice 1998.