Budowa, █▓▓█ INFORMATYKA ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬


1. CEL ĆWICZENIA .

Celem ćwiczenia jest zapoznanie się z budową oraz z zasadą działania karty graficznej.

Z programową obsługą kart graficznych podczas, której należy programowo zmieniać podstawowe parametry kart graficznych takie jak tryb wyświetlania , rozdzielczość oraz zmianę koloru wyświetlanego punktu na ekranie monitora. Należy zapoznać się ze sposobem wyświetlania informacji zarówno w trybie tekstowym jak i graficznym.

2. PODSTAWY TEORETYCZNE .

2.1. PODSTAWY ARCHITEKTURY KARTY VGA .

Karta graficzna VGA została opracowana i wprowadzona do produkcji przez firmę IBM w roku 1987, z przeznaczeniem dla mikrokomputerów rodziny PC i PC/2. Architektura sterownika VGA stanowiła rozszerzenie poprzedniego standardu EGA, pochodzącego z roku1984. Zmiany w budowie wprowadzono w taki sposób, by karta VGA mogła emulować tryby tekstowe i graficzne występujące w poprzednich sterownikach obrazu firmy IBM (MDA, CGA i EGA).

Najważniejsze dla użytkownika nowe cechy karty VGA to większa matryca znaków trybach alfanumerycznych (16x9 punktów) oraz nowe tryby graficzne: 16-kolorowy o rozdzielczości 640x480 punktów oraz 256-kolorowy o rozdzielczości 320x200 punktów. Ponadto barwy wyświetlane na ekranie (zarówno w trybach 16- jak i 256- kolorowych) można wybierać z palety zawierającej 218 (262144) wartości.

Od 1987 roku szereg producentów oferuje scalone układy kontrolerów graficznych bazujące na architekturze VGA, lecz posiadające szereg rozszerzeń. Karty zbudowane w oparciu o te układy określane są handlową nazwą „Super” lub „Super VGA”. Niestety nazwa ta nie oznacza już ścisłego standardu. „Super” - rozszerzenia różnią się między sobą tak, że ich wykorzystanie wymaga innych technik programowania dal układów poszczególnych producentów.

Pod względem funkcjonalnym sterownik monitora standardu EGA można podzielić na cztery główne elementy funkcjonalne:

karta VGA posiada dodatkowo piąty element:

Z poziomu procesora karta EGA i VGA jest „widoczna” jako zbiór portów w przestrzeni wejścia - wyjścia oraz obszar pamięci obrazu położony, w zależności od trybu pracy, między adresami A000:000h a B000:FFFFh. Bezpośrednie jej programowanie sprowadza się zatem do zapisu i odczytu odpowiednich wartości do i z pamięci oraz portów wejścia - wyjścia.

Krata graficzna VGA wykonana jest w postaci 16-bitowego modułu przeznaczonego do instalacji w 16-bitowym slocie ISA (PCI) na płycie głównej. W skład karty wchodzi wiele układów elektronicznych m.in. układ VLSI o wielkiej skali integracji mogący realizować wszystkie funkcje standardu zwanego jako ”VGA”.

W skład karty wchodzą:

2.2. ZASADA DZIAŁANIA KARTY GRAFICZNEJ VGA .

Sygnał kierowany z procesora do rejestrów karty VGA trafia do kontrolera graficznego. Za pośrednictwem znajdujących się tam rejestrów dane obrazowe mogą być poddane - przed wpisaniem do pamięci karty - operacjom logicznym OR, AND, XOR, przesunięciu cyklicznemu w prawo, porównaniu z aktualnie wyświetlanymi danymi lub zamaskowaniu, czyli zablokowaniu możliwości przesłania wybranych danych do pamięci. Aby dane z CPU mogły być wpisane do pamięci karty musi na to `wyrazić zgodę' sequencer. Posiada on możliwość blokowania wpisania danych do map bitowych. Jeżeli dane ekranowe taką zgodą otrzymały to pamięć karty graficznej jest gotowa do przyjmowania danych.

W następnej kolejności dane przekazywane są do serializera, który zamienia je na postać akceptowaną przez kontroler atrybutów. Jak już wiemy pamięć jest podzielona na rozłączne obszary (mapy bitowe), tak więc serializer składa odpowiednie bity w jeden ciąg.

Złożone informacje wędrują do kontrolera atrybutów, który na podstawie nich określa numer rejestru Video DAC (wzorca koloru), określający kolor wyświetlanego punktu. Dane z kontrolera atrybutów przechodzą przez blok przetworników C/A, gdzie są zamieniane na analogowe sygnały RGB wyświetlane bezpośrednio na ekranie monitora.

W procesie wyświetlania obrazu ważną rolę odgrywa także kontroler CRT, którego podstawowe zadania zastały omówione w opisie budowy karty VGA.

SCHEMAT BLOKOWY PRZEDSTAWIAJĄCY BUDOWĘ KARTY VGA

sygnał z CPU

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

2.3. TRYBY PRACY STEROWNIKÓW OBRAZU .

Numer trybu

Rodzaj trybu

Rozmiar ekranu

Matryca znaku

Liczba kolorów

Stero-wnik obrazu

Org. pam. dla trybów graf.

Adres pocz. pam. obrazu

00/08

Tekstowy

40x25

#

16/8 poziomów szarości

C,E,V

$B800

01/81

Tekstowy

40x25

#

16/8

C,E,V

$B800

02/82

Tekstowy

80x25

#

16/8 poziomów szarości

C,E,V

$B800

03/83

Tekstowy

80x25

#

16/8

C,E,V

$B800

04/84

Graficzny

320x200

8x8

4

C,E,V

spakowana

$B800

05/85

Graficzny

320x200

8x8

4 poziomy szarości

C,E,V

Spakowana

$B800

06/86

Graficzny

640x200

8x8

2

C,E,V

spakowana

$B800

07/87

Tekstowy

80x25

#

3(ciemny,jasny,jaskr.)

M,E,V

$B800

0d/8d

Graficzny

320x200

8x8

16

E,V

płatowa

$A000

0e/8e

Graficzny

640x200

8x8

16

E,V

Płatowa

$A000

0f/8f

Graficzny

640x350

8x14

3(ciemny,jasny,jaskr.)

E,V

Płatowa

$A000

10/90

Graficzny

640x350

8x14

16

E,V

Płatowa

$A000

11/91

Graficzny

640x480

8x16

2

V

spakowana

$A000

12/92

Graficzny

640x480

8x16

16

V

płatowa

$A000

13/93

Graficzny

320x200

8x16

256

V

spakowana

$A000

# - rozmiary matrycy w trybach 0 - 3 i 7 zależy od sterownika monitora:

w trybach 0 - 3 : CGA = 8x8, EGA = 8x14, VGA = 9x16

w trybie 7 : MDA i EGA = 9x14, VGA = 9x16

Wszystkie opisane w tabeli tryby zarówno alfanumeryczne, jak i graficzne, identyfikowane są dwoma numerami, różniącymi się zawartością najstarszego bitu. Wywołanie trybu przez podanie niższego numeru powoduje wymazanie zawartości pamięci obrazu w trakcie przełączani, podania natomiast numeru wyższego pozostawia je bez zmian.

2.4. FUNKCJE BIOS-u SŁUŻĄCE DO STEROWANIA KARTĄ GRAFICZNĄ .

W komputerach standardu IBM PC jedynym systemowym mechanizmem programowej komunikacji ze sterownikiem monitora są funkcje BIOS Basic Input-Output System wywoływane przerwaniem nr. 10.

Standardowe oprogramowanie BIOS przechowywane w pamięci stałej (ROM) komputera zawiera procedury obsługi kart CGA i MDA. Zarówno sterownik EGA jak i VGA posiadają własny BIOS, który w trakcie startu komputera „przejmuje rządy” nad obsługa przerwania 10h, modyfikując wektor przerwań. Zainstalowanie karty sterownika EGA bądź VGA powoduje rozszerzenie przerwania 10h o dodatkowe funkcje zawarte w pamięci ROM tych kart.

W poniższej tabeli zawarto zestawienie większości usług dostępnych przez przerwanie 10h BIOS-u. Zgodnie z ogólnie przyjęta konwencją numer funkcji usługowej przekazywany jest w rejestrze AH, zaś numer ewentualnej podfunkcji - w rejestrze AL.

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 00h

Przełączanie trybów pracy sterownika obrazu.

parametry wejściowe :

AL. - numer trybu

MDA, CGA,

EGA, VGA

AH = 01h

Ustawienie rozmiaru kursora (kursor jest wyświetlany jedynie w trybach znakowych).

parametry wejściowe :

CH - numer początkowej linii kursora,

CL - numer końcowej linii kursora.

UWAGA: podanie CH=CL=20h pozwala na ukrycie kursora

MDA, CGA,

EGA, VGA

AH = 02h

Ustawienie kursora na ekranie w pozycji opisanej podanymi parametrami.

parametry wejściowe :

BH - numer strony pamięci ekranu,

DH - numer wiersza,

DL - numer kolumny.

MDA, CGA,

EGA, VGA

AH = 03h

Odczyt aktualnej pozycji kursora (kursor wyświetlany jest w trybach znakowych).

parametry wejściowe :

BH - numer strony

wartości zwracane :

DH - wiersz, w którym znajduje się kursor,

DL - kolumna, w której znajduje się kursor,

CH - numer początkowej linii kursora,

CL - numer końcowej linii kursora.

MDA, CGA,

EGA, VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 05h

Wybór aktywnej strony pamięci obrazu.

parametry wejściowe :

AL - numer strony (zakres wartości zależy od trybu pracy oraz rozmiaru pamięci zainstalowanej na karcie).

MDA, CGA,

EGA, VGA

AH = 06h

Przewijanie obrazu w górę.

Uwaga : wartości parametrów dla funkcji 06h 07h podawane są w rozdzielczości znakowej.

parametry wejściowe :

AL. - liczba wierszy, o którą zawartość okna ma zostać przesunięta w górę (0 - wyczyszcza obraz),

BH - bajt atrybutu dla wprowadzanych na dole okna pustych znaków,

CH - współrzędna Y lewego górnego rogu okna,

CL - współrzędna X lewego górnego rogu okna,

DH - współrzędna Y prawego dolnego rogu okna,

DL - współrzędna X prawego dolnego rogu okna,

MDA, CGA,

EGA, VGA

AH = 07h

Przewijanie obrazu w dół.

parametry wejściowe :

AL. - liczba wierszy, o którą zawartość okna ma zostać przesunięta w dół (0 - wyczyszcza obraz),

BH - bajt atrybutu dla wprowadzanych na górze okna pustych znaków,

CH - współrzędna Y lewego górnego rogu okna,

CL - współrzędna X lewego górnego rogu okna,

DH - współrzędna Y prawego dolnego rogu okna,

DL - współrzędna X prawego dolnego rogu okna

MDA, CGA,

EGA, VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 08h

Odczyt znaku z atrybutem.

parametry wejściowe :

BH - numer strony (kopii ekranu w pamięci obrazu),

wartości zwracane :

AL. - kod znaku (dla trybów znakowych i graficznych),

AH - atrybut znaku (dla trybów znakowych).

MDA, CGA,

EGA, VGA

AH = 09h

Wyprowadzenie na ekran znaku z atrybutem.

parametry wejściowe :

BH - numer strony,

AL. - kod znaku,

BL - kod atrybutu,

CX - liczba powtórzeń znaku.

MDA, CGA,

EGA, VGA

AH = 0Ah

Wyprowadzenie znaku bez atrybutu.

parametry wejściowe :

BH - numer strony,

AL. - kod znaku,

BL - parametr sterujący wpisem,

CX - liczba powtórzeń znaku.

MDA, CGA,

EGA, VGA

AH = 0Bh

Wybór palety kolorów lub koloru obrzeża ekranu dla trybów CGA.

parametry wejściowe :

BH = 0 (dla trybów tekstowych) wybór koloru obrzeża ekranu :

BL numer koloru tła z zakresu 00h-1Fh (wartości 10h- 1Fh wybierają kolory z podwyższoną intensywnością).

BH = 1 (dla trybów graficznych 4 i 5) wybór jednej z dwóch czterokolorowych palet :

BL = 0 zestaw czarny-zielony-czerwony-brązowy

BL = 1 zestaw czarny-turkusowy-purpurowy-biały.

CGA,

EGA, VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 0Ch

Kreślenie punktu (dla wszystkich trybów graficznych).

parametry wejściowe :

AL. - numer kreślonego koloru,

BH - numer strony pamięci obrazu,

CX - współrzędna pozioma punktu (X),

DX - współrzędna pionowa punktu (Y).

CGA,

EGA, VGA

AH = 0Dh

Odczyt koloru punktu o zadanych współrzędnych (dla wszystkich trybów graficznych).

parametry wejściowe :

BH - numer strony pamięci obrazu,

CX - współrzędna pozioma punktu (X),

DX - współrzędna pionowa punktu (Y).

wartości zwracane :

AL. - odczytana wartość koloru.

CGA,

EGA, VGA

AH = 0Eh

Wyprowadzenie na ekran znaku.

parametry wejściowe :

AL. - kod znaku,

BL - kolor znaku (dla trybów graficznych).

MDA, CGA,

EGA, VGA

AH = 0Fh

Odczyt trybu pracy (stanu0 karty sterownika obrazu.

wartości zwracane :

AH - szerokość ekranu wyrażona w znakach,

AL. - numer trybu graficznego lub znakowego,

BH - numer aktualnie wyświetlanej strony pamięci obrazu.

MDA, CGA,

EGA, VGA

AH = 10h

AL. = 00h

Modyfikacja pojedynczego rejestru 16-kolorowej palety kontrolera atrybutów.

parametry wejściowe :

BH - nowa zawartość rejestru (5-0),

BL - numer rejestru 9wartośc 0-15).

EGA, VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 10h

AL. = 01h

Modyfikacja koloru obrzeża ekranu (wpis wartości do rejestru Overscan kontrolera atrybutów0.

parametry wejściowe :

BH - nowa wartość rejestru Overscan (bity 5-0).

EGA, VGA

AH = 10h

AL. = 02h

Wpis nowych wartości do wszystkich 16 rejestrów palety i rejestru Overscan kontrolera atrybutów.

parametry wejściowe :

ES : DX - adres początku 17-bajtowej tablicy zawierającej nowe 6-bitowe wartości rejestrów palety w formacie SR, SG, SB,R, G, B.

EGA, VGA

AH = 10h

AL = 03h

Wybór sposobu interpretacji najstarszego bitu atrybutu w trybach znakowych.

parametry wejściowe :

BL = 0 bit 7 atrybutu znaku decyduje o wyświetlaniu tego znaku z podwyższoną jasnością, tzn. tło znaku może przybrać jeden z 16 kolorów (8 normalnych i 8 rozjaśnionych),

BL = 1 bit 7 atrybutu znaku steruje migotaniem, tzn. tło znaku może być wyświetlone w 8 kolorach z migotaniem lub bez.

EGA, VGA

AH = 10h

AL = 07h

Odczyt pojedynczego rejestru z 16-kolorowej palety kontrolera atrybutów.

parametry wejściowe :

BL - numer rejestru palety (0-15),

wartości zwracane :

BH - odczytana zawartość rejestru (bity 5-0).

VGA

AH = 10h

AL = 08h

Odczyt rejestru Overscan kontrolera atrybutów

wartości zwracane :

BH - zawartość rejestru Overscan (bity 5-0).

VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 10h

AL. = 09h

Odczyt wszystkich 16 rejestrów palety oraz rejestru Overscan kontrolera atrybutów.

parametry wejściowe :

ES : DX - adres początku 17-bajtowej tablicy, do której funkcja wpisuje zawartości odczytywanych rejestrów.

VGA

AH = 10h

AL. = 10h

Wpis wartości do pojedynczego zestawu rejestrów koloru RGB w bloku przetwornika C/A.

parametry wejściowe :

BX - numer zestawu rejestrów RGB (0-255),

DH - składowa R (wartość z zakresu 0-63),

CH - składowa G (wartość z zakresu 0-63),

CL - składowa B (wartość z zakresu 0-63).

VGA

AH = 10h

AL. = 12h

Wpis wartości do grupy rejestrów RGB przetwornika C/A.

parametry wejściowe :

BX - numer pierwszego rejestru modyfikowanego bloku,

CX - liczba modyfikowanych rejestrów,

ES : DX - adres początku tablicy, której zawartość zostanie przepisana do bloku rejestrów R, G, B. Tablica musi zawierać 3*CX bajtów.

VGA

AH = 10h

AL. = 13h

Sterownie stronicowaniem palety, tzn. odwzorowaniem zbioru 16 6-bitowych rejestrów palety w zbiór 256 18-bitowych rejestrów RGB w trybach 16-kolorowych.

parametry wejściowe :

BL = 0 wybór sposobu stronicowania palety :

BH = 0 wybiera 4 strony po 64 kolory,

BH= 0 wybiera 16strony po 16 kolory,

BL = 1 wybór strony (zestawu) kolorów :

BH numer strony kolorów.

VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 10h

AL. = 15h

Odczyt pojedynczego zestawu rejestrów koloru RGB z bloku przetworników C/A.

parametry wejściowe :

BX - numer zestawu rejestrów RGB (wartość z zakresu 0-255).

wartości zwracane :

DH - składowa R (wartość z zakresu 0-63),

CH - składowa G (wartość z zakresu 0-63),

CL - składowa B (wartość z zakresu 0-63).

VGA

AH = 10h

AL. = 17h

Odczyt grupy rejestrów RGB bloku przetworników C/A.

parametry wejściowe :

BX - numer pierwszego rejestru czytanej grupy,

CX - liczba czytanych rejestrów,

ES : DX - adres początku tablicy, do której zostanie przepisana zawartość wybranych rejestrów RGB. Tablica ta musi zawierać 3*CX bajtów.

VGA

AH = 10h

AL. = 18h

Ładowanie wartości do rejestru PEL Mask bloku przetworników C/A.

parametry wejściowe :

BL - nowa wartość rejestru PEL Mask.

EGA, VGA

AH = 10h

AL. = 19h

Odczyt zawartości rejestru PEL Mask bloku przetworników C/A.

wartości zwracane :

BL - odczytana zawartość rejestru PEL Mask.

EGA, VGA

AH = 10h

AL. = 1Ah

Odczyt numeru bieżącej strony koloru oraz atrybutu stronicowania palety.

wartości zwracane :

BH - numer bieżącej strony,

BL - tryb stronicowania.

VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 10h

AL. = 1Bh

Konwersja kolorów na poziomy szarości.

Funkcja ta modyfikuje zawartość rejestrów RGB, zmieniając kolor na odcień szarości o identycznej jasności.

parametry wejściowe :

BX - numer pierwszego zestawu rejestrów RGB przetwarzanej grupy,

CX - liczba zestawów rejestrów RGB poddawanych konwersji.

VGA

AH = 11h

AL. = 00h

Ładowanie zdefiniowanych przez użytkownika czcionek ekranowych do pamięci RAM generatora znaków. Podfunkcji 00h , 01h i 02h nie kasują zawartości ekranu i są przeznaczone dla trybów tekstowych.

parametry wejściowe :

BH - liczba bajtów przypadająca na znak,

BL - numer bloku 9bufora pamięci), do którego ładowane są definicje czcionek. Dozwolone numery bloków to 0-3 dla karty EGA i 0-7 dla VGA,

CX - liczba ładowanych definicji znaków,

DX - przemieszczanie w obszarze RAM generatora znaków, do którego zostaną załadowane definicje czcionek,

ES : BP - adres tablicy zawierającej wzorce ładowanych czcionek.

EGA, VGA

AH = 11h

AL. = 01h

Ładowanie czcionek ekranowych o matrycy znaku 9x14 z pamięci ROM do pamięci RAM generatora znaków.

parametry wejściowe :

BL - numer bloku do którego zostaną załadowane czcionki.

EGA, VGA

AH = 11h

AL. = 02h

Ładowanie czcionek ekranowych o matrycy znaku 8x8 z pamięci ROM do pamięci RAM generatora znaków.

parametry wejściowe :

BL - numer bloku do którego zostaną załadowane czcionki.

EGA, VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 11h

AL. = 03h

Wybór kroju czcionki wyświetlanego na ekranie.

Funkcja ta określa, które z bloków RAM generatora znaków są używane do wyświetlania znaków na ekranie.

parametry wejściowe :

BL - selektor używanych bloków czcionek:

dla karty EGA

bity 7-4 niewykorzystane;

bity 3-2 numer bloku RAM zawierającego wzorce

używane do wyświetlania znaków o ustawionym bicie

3 atrybutu;

bity 1-0 numer bloku RAM zawierającego wzorce

używane do wyświetlania znaków o skasowanym

bicie 3 atrybutu;

dla karty VGA

bity 7-6 niewykorzystane;

bity 5,3,2 numer bloku RAM zawierającego wzorce

używane do wyświetlania znaków o ustawionym bicie

3 atrybutu;

bity 4,1,0 numer bloku RAM zawierającego wzorce

używane do wyświetlania znaków o skasowanym

bicie 3 atrybutu.

EGA, VGA

AH = 11h

AL. = 04h

Ładowanie czcionek ekranowych o matrycy znaku 8x16 z pamięci ROM do pamięci RAM generatora znaków.

parametry wejściowe :

BL - numer bloku, do którego zostaną załadowane czcionki.

VGA

AH = 11h

AL. = 11h

Ładowanie czcionek ekranowych o matrycy znaku 9x14 z pamięci ROM do pamięci RAM generatora znaków.

parametry wejściowe :

BL - numer bloku do którego zostaną załadowane czcionki

EGA, VGA

AH = 11h

AL. = 11h

Ładowanie czcionek ekranowych o matrycy znaku 9x14 z pamięci ROM do pamięci RAM generatora znaków.

parametry wejściowe :

BL - numer bloku do którego zostaną załadowane czcionki.

EGA, VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 11h

AL. = 12h

Ładowanie czcionek ekranowych o matrycy znaku 8x8 z pamięci ROM do pamięci RAM generatora znaków.

parametry wejściowe :

BL - numer bloku do którego zostaną załadowane czcionki.

EGA, VGA

AH = 11h

AL. = 14h

Ładowanie czcionek ekranowych o matrycy znaku 8x16 z pamięci ROM do pamięci RAM generatora znaków.

parametry wejściowe :

BL - numer bloku do którego zostaną załadowane czcionki.

EGA, VGA

AH = 11h

AL. = 21h

Instalacja zestawu znaków o kodach 0-255 i zadanym rozmiarze, wykorzystywanych w trybach graficznych, wskazywanego wektorem przerwania 43h.

parametry wejściowe :

BL - liczba wyświetlanych na ekranie wierszy:

= 00h liczba wierszy w rejestrze DL (tylko EGA),

= 01h 14 wierszy,

= 02h 25 wierszy,

= 03h 43 wiersze,

CX - liczba bajtów opisujących matrycę jednego znaku,

DL - liczba wierszy na ekranie, wybrana w wyniku ustawienia BL = 00h (tylko EGA),

ES : BP - adres początku tablicy czcionek zdefiniowanych przez użytkownika.

EGA, VGA

AH = 11h

AL. = 22h

Udostępnianie do wyświetlania w trybach graficznych definicji czcionki o matrycy 8x14 przechowywanej w pamięci ROM.

parametry wejściowe :

BL - liczba wyświetlanych na ekranie wierszy (patrz podfunkcja 21h),

DL - (tylko EGA) jak dla podfunkcji 21h.

EGA, VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 11h

AL. = 23h

Udostępnianie do wyświetlania w trybach graficznych definicji czcionki o matrycy 8x8 (znaki o kodach 0-127) przechowywanej w pamięci ROM.

parametry wejściowe :

BL - liczba wyświetlanych na ekranie wierszy (patrz podfunkcja 21h),

DL - (tylko EGA) jak dla podfunkcji 21h.

EGA, VGA

AH = 11h

AL. = 24h

Udostępnianie do wyświetlania w trybach graficznych definicji czcionki o matrycy 8x16 przechowywanej w pamięci ROM.

parametry wejściowe :

BL - liczba wyświetlanych na ekranie wierszy :

= 01h 14 wierszy;

= 02h 25 wierszy;

= 03h 43 wierszy.

VGA

AH = 12h

AL. = 00h

BL = 10h

Odczyt informacji związanych z trybem pracy i konfiguracją sterownika obrazu.

wartości zwracane :

BH - tryb pracy :

= 00h kolorowy;

= 01h monochromatyczny,

BL - rozmiar pamięci obrazu na karcie :

= 00h - 64kB;

= 01h - 128kB;

= 02h - 192B;

= 03h - 256kB;

CH - wartość bitów 19 i17 złącza „feature connector”, używanego do podłączenia urządzeń zewnętrznych do karty,

CL - stan 4 przełączników konfiguracyjnych na karcie. Przełączniki te ustawia użytkownik instalując kartę.

EGA, VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 12h

AL. = 00h

BL = 30h

Wybór rozdzielczości pionowej ekranu oraz standardowego formatu czcionki dla tej rozdzielczości w trybach znakowych.

Uwaga :podfunkcja ta (oraz siedem następnych) może być wykorzystywana dla detekcji karty VGA w systemie (po jej wywołaniu w rejestrze AL. powinna zostać zwrócona wartość 12h).

parametry wejściowe :

AL. - liczba poziomych linii wyświetlanych na ekranie (rozdzielczość pionowa):

= 00h 200 linii;

= 01h 350 linii;

= 02h 400 linii.

wartości zwracane :

AL. - informuje o rezultacie wykonania funkcji :

=12 wykonanie poprawne;

Inne wartości oznaczają błąd.

VGA

AH = 12h

BL = 31h

Sterowanie ładowaniem standardowych wartości rejestrów palety i rejestru Overscan kontrolera atrybutów w czasie przełączania trybów.

parametry wejściowe :

AL. - wybiera lub blokuje ładowanie standardowych wartości do rejestrów palety w czasie przełączania trybów:

= 00h ładowanie możliwe;

= 01h ładowanie zablokowane.

wartości zwracane :

AL. = 12 jeżeli funkcja została wykonana prawidłowo.

VGA

AH = 12h

BL = 32h

Sterowanie dekodowaniem przez kartę wysyłanych z procesora odwołań do portów i pamięci obrazu.

parametry wejściowe :

AL. = 01h blokada dekodowania adresów,

= 00h dekodowanie możliwe

wartości zwracane :

AL. = 12h jeżeli funkcja została wykonana poprawnie.

VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 12h

BL = 34h

Włączenie lub wyłączenie tzw. emulacji kursora.

Emulacja polega na automatycznej modyfikacji wyglądu kursora wraz ze zmianą wielkości matrycy wyświetlanej czcionki.

parametry wejściowe :

AL. = 00h włączenie emulacji kursora;

01h wyłączenie emulacji kursora.

wartości zwracane :

AL. = jeżeli funkcja została wykonana poprawnie.

VGA

AH = 12h

BL = 35h

Przełączanie pomiędzy sterownikiem VGA wbudowanym w płytę główną (w systemach PS/2) i kartą VGA podłączoną do gniazda rozszerzeń.

parametry wejściowe :

AL. - kod podfunkcji :

= 00h wyłączenie karty VGA włożonej do gniazda rozszerzeń;

= 01h włączenie sterownika VGA wbudowanego w płytę główną;

= 02h wyłączenie aktywnego sterownika obrazu,;

= 03h włączenie nieaktywnego sterownika obrazu,

ES : DX - adres początku 128-bitoego bufora, w którym funkcja będzie składować parametry stanu wyłączonego sterownika.

wartości zwracane :

AL. = 12h jeżeli funkcja została wykonana poprawnie.

VGA

AH = 12h

BL = 36h

Blokada lub odblokowanie układów wyświetlających obraz (wygaszenie ekranu).

parametry wejściowe :

AL. = 01h blokada wyświetlania;

00h odblokowanie wyświetlania.

wartości zwracane :

AL. = 12h jeżeli funkcja została wykonana poprawnie.

VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 1Ah

Odczyt lub zapis kodu konfiguracji sterownika obrazu DCC -Display Combination Code z/do obszaru komunikacyjnego BIOS-u (obszaru RAM rozpoczynającego się od adresu 0:0400h). Funkcja ta wywoływana jest w ramach procedur testujących wykonywanych po włączeniu komputera Power On Self Test.

parametry wejściowe :

AL. - wybór funkcji :

= 00h odczyt kodu DCC;

= 01h zapis kodu DCC,

BH - kod DCC dla nieaktywnego sterownika obrazu,

BL - kod DCC dla aktywnego sterownika obrazu.

wartości zwracane :

AL = 1Ah oznacza poprawne wykonanie,

BH - kod DCC dla zablokowanego sterownika obrazu,

BL - kod DCC dla aktywnego sterownika obrazu.

Kody DCC :

00h - monitor nie podłączony,

01h - MDA z monitorem monochromatycznym,

02h - CGA z monitorem kolorowym,

04h - EGA z monitorem kolorowym,

05h - EGA z monitorem monochromatycznym,

06h - PGC z monitorem kolorowym,

07h - VGA z analogowym monitorem

monochromatycznym,

08h - VGA z analogowym monitorem kolorowym,

0Bh - karta MCGA (PS/2 Model 30) z analogowym

monitorem monochromatycznym,

0Ch - karta MCGA z analogowym monitorem

kolorowy.

AH = 1Bh

Odczyt 64-bajtowej tablicy parametrów funkcjonalnych sterownika graficznego.

parametry wejściowe :

BX = 0000h,

ES : DI - wskaźnik do 64-bajtowego bufora, do którego zostanie wpisana zawartość tablicy parametrów funkcjonalnych karty.

wartości zwracane :

AL. =1Bh jeżeli funkcja została wykonana poprawnie.

VGA

Parametry wejściowe funkcji

Opis funkcji

Typ karty, dla której funkcja jest dostępna

AH = 1Ch

Odczyt lub zapis parametrów stanu karty.

parametry wejściowe :

AL. - kod podfunkcji :

= 00h żądanie podania rozmiaru bufora potrzebnego do

przechowania odczytywanych parametrów stanu

(wybranych rejestrem CX);

= 01h odczyt parametrów stanu karty do tablicy

zarezerwowanej przez użytkownika w RAM;

= 10h przypisanie parametrom stanu sterownika obrazu

wartości przechowywanych w tablicy

zdefiniowanej przez użytkownika,

ES : BX - adres początku tablicy przeznaczonej przez użytkownika do przechowywania parametrów stanu,

CX - bity 0-2 opisują grupy parametrów stanu, które są wybierane bądź pomijane w podfunkcjach 00, 01 i 01 (wartość 0 oznacza pominięcie) :

bit 0 parametry sprzętowe;

bit 1 pola danych BIOS-u;

bit 2 parametry stanu przetworników C/A i zawartość

rejestrów koloru.

wartości zwracane :

BX - rozmiar potrzebnej pamięci wyrażony w 64-bajtowych blokach (dla podfunkcji 00h),

AL. = 1Ch jeżeli funkcja została wykonana poprawnie.

VGA

2.5. TRYB TEKSTOWY .

Generator znaków jest to pamięć, w której w kolejnych komórkach umieszczana jest informacja o kształcie poszczególnych znaków. Informacje te są dostępne pod adresami, które składają się z dwóch części : kodu ASCII danego znaku oraz numeru określonej linii.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

do wzmacniacza wizji

Sterownik karty graficznej wysyła na magistralę adresową kolejne adresy komórek pamięci VideoRAM. Odczytane zawartości komórek trafiają na magistralę danych a dalej są kierowane w ten sposób, że pierwszy bajt stanowi część adresu dla generatora znaków. Drugą część adresu otrzymuje generator znaków od sterownika - w wyniku tego odczytana jest z generatora znaków informacja o kształcie poszczególnych znaków. Zawartość komórek generatora znaków jest przesyłana do rejestru przesuwnego, skąd w postaci sygnału szeregowego trafia na wejście adresowe multipleksera dwuwejściowego, 4-bitowego. Na 4-bitowe wejścia informacyjne jest podawany bajt atrybutu znaku. Jedynka na wejściu adresowym multipleksera powoduje, że na jego wyjściu pojawi się informacja o kolorze piksela odpowiadającego znakowi, natomiast zero spowoduje pojawienie się na jego wyjściu informacji o kolorze piksela tła. Sygnały z wyjścia multipleksera są kierowane do wzmacniacza wizji a następnie do kineskopu.

2.6. UKŁAD WSPÓŁRZĘDNYCH EKRANU .

W trybie tekstowym znak w lewym górnym rogu ekranu znajduje się w zerowym wierszu i zerowej kolumnie.

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 tryby pracy podaje tabela poniżej.

Numer trybu

Rozdzielczość

Liczba kolorów

Karta graficzna

Adres początku pamięci obrazu

0h

40x24

16/8 szarości

CGA,EGA,CGA

B8000h

1h

40x25

16/8

CGA,EGA,CGA

B8000h

2h

80x25

16/8 szarości

CGA,EGA,CGA

B8000h

3h

80x25

16/8

CGA,EGA,CGA

B8000h

7h

80x25

3

MDA,EGA,CGA

B0000h

rozmiar matrycy znaku zależy od karty graficznej :

tryby 0 - 3 : CGA 8x8, EGA 8x14, VGA 9x16

tryb 7 : MDA 9x14, EGA 9x14, VGA 9x16

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 zmiana miejsca w pamięci, z którego pobierane będą wyświetlane znaki. Po przygotowaniu tzw. matrycy znaków można wskazać ją sterownikowi korzystając z funkcji 11h 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 to miało miejsce w przypadku karty Hercules (do uzyskania polskich znaków trzeba było zmienić zawartość pamięci EPRPM).

2.7. ATRYBUTY ZNAKÓW .

Pamięć obrazu jest to obszar pamięci RAM ( Video RAM) do którego procesor przesyła kody ASCII znaków, które mają być wyświetlone na ekranie przy czym każdemu kodowi ASCII

( 1 bajt) towarzyszy informacja o kolorze tła, na którym ten znak ma pojawić się na ekranie i o kolorze znaku.

bajt kodu ASCII znaku

bajt atrybutu

I

R

G

B

I

R

G

B

0x08 graphic
0x08 graphic

kolor znaku kolor tła

Każdy z trzycyfrowych sygnałów RGB wytwarzanych przez kartę graficzną i doprowadzony do odpowiedniej katody monitora powoduje wygaszenie strumienia elektronów (bit = 0) co powoduje brak świecenia piksela o danym kolorze, lub (bit = 1) wygenerowanie strumienia elektronów co powoduje świecenie określonego piksela. Trzybitowa wariacja RGB pozwala uzyskać na ekranie 8 kolorów ( 23 ). Czwarty sygnał I powoduje zmianę współczynnika wzmocnienia wzmacniaczy wizji co wpływa na zmianę natężenia strumienia elektronów w kineskopie i powoduje zmianę jaskrawości danego piksela. Powoduje to , że uzyskuje się 16 możliwych kolorów.

2.8. KODY KLAWISZY .

Oznaczenie

Sam klawisz

Z SHIFT

Z CTRL

Z ALT

0

48

41

-

0 129

1

49

33

-

0 120

2

50

64

-

0 121

3

51

35

-

0 122

4

52

36

-

0 123

5

53

37

-

0 124

6

54

94

-

0 125

7

55

38

-

0 126

8

56

42

-

0 127

9

57

40

-

0 128

A

97

65

1

0 30

B

98

66

2

0 48

C

99

67

3

0 46

D

100

68

4

0 32

E

101

69

5

0 18

F

102

70

6

0 33

G

103

71

7

0 34

H

104

72

8

0 35

I

105

73

9

0 23

J

106

74

10

0 36

K

107

75

11

0 37

L

108

76

12

0 38

M

109

77

13

0 50

N

110

78

14

0 49

O

111

79

15

0 24

P

112

80

16

0 25

Q

113

81

17

0 16

R

114

82

18

0 19

S

115

83

19

0 31

T

116

84

<>

0 20

U

117

85

21

0 22

V

118

86

22

0 47

W

119

87

23

0 17

X

120

88

24

0 45

Oznaczenie

Sam klawisz

Z SHIFT

Z CTRL

Z ALT

Y

121

89

25

0 21

Z

122

90

26

0 44

-

45

95

31

0 130

=

61

43

-

0 131

\

92

124

28

-

/

47

63

-

-

SPACJA

32

32

32

32

F1

0 59

0 84

0 94

0 104

F2

0 60

0 85

0 95

0 105

F3

0 61

0 86

0 96

0 106

F4

0 62

0 87

0 97

0 107

F5

0 63

0 88

0 98

0 108

F6

0 64

0 89

0 99

0 109

F7

0 65

0 90

0 100

0 110

F8

0 66

0 91

0 101

0 111

F9

0 67

0 92

0 102

0 112

F10

0 68

0 93

0 103

0 113

DO GÓRY

0 72

56

-

8

W PRAWO

0 77

54

0 116

6

W LEWO

0 75

52

0 115

4 lub 0 132

W DÓŁ

0 80

50

-

2 lub 0 130

HOME

0 71

55

0 119

7

END

0 79

49

0 117

1 lub 0 129

PgUp

0 73

57

0 132

9

PgDn

0 81

51

0 118

3 lub 0 131

Ins

0 82

48

-

-

Del

0 83

46

-

-

5 (num)

-

53

-

5 lub -

* (szary)

42

PrtSc

0 114

-

- (szary)

45

45

-

-

+ (szary)

43

43

-

-

ESC

27

27

27

-

BackSpace

8

8

127

-

TAB

9

0 15

-

-

ENTER

13

13

10

-

2.9. WYKAZ REJESTRÓW .

Rejestry wewnętrzne .

Wszystkie parametry związane z wyświetlaniem obrazu są kontrolowane poprzez zbiór 8-bitowych rejestrów wewnętrznych. Każdy z rejestrów może zawierać kilka niezależnych pól, sterujących różnymi funkcjami graficznymi:

Każda z powyższych grup jest odwzorowywana przez karty w przestrzeń wejścia - wyjścia procesora i dostępna poprzez rozkazy in i out asemblera. Sposób dostępu jest jednak różny dla różnych rejestrów:

2.10. REJESTRY OGÓLNEGO PRZEZNACZENIA .

Do grupy tej zaliczane są cztery rejestry odwzorowane bezpośrednio w przestrzeń adresów wejścia - wyjścia procesora i położone poza głównymi blokami sterującymi. W dokumentacji technicznej rejestry te są określane nazwą „external” dla karty EGA, lub „general” dla karty VGA, co można tłumaczyć jako „zewnętrzne”, „główne” lub ”ogólne”.

Nazwa rejestru

Port dla zapisu (EGA/VGA)

Port dla odczytu (EGA)

Port dla odczytu (VGA)

Miscellaneous Output

3C2

--

3CC

Feature Control

3?A

--

3CA

Input Status #0

--

3C2

3C2

Input Status #1

--

3?A

3?A

? = D dal trybów kolorowych, B dla trybów monochromatycznych

2.11. REJESTRY UKŁADU SEKWENCYJNEGO .

REJESTR ZEROWANIA - indeks 00h.

Rejestr zerowania (Reset Register) umożliwia zatrzymanie układu sekwencyjnego (konieczne do zabezpieczenia pamięci obrazu przy zmianie zawartości rejestru trybu taktowania (indeks 01h) lub zmianie częstotliwości zegara wybieranego zawartością dodatkowego rejestru wyjściowego (rejestry zewnętrzne - adres 3C2h/3CCh)).

BIT : ZNACZENIE

0 : Asynchroniczne zerowanie:

0 - Natychmiastowe zatrzymanie układu sekwencyjnego oraz odcięcie rejestru informacyjnego układu sekwencyjnego przez ustawienie jego wyprowadzeń w stan wysokiej impedancji (grozi utratą danych),

1 - Normalna praca układu sekwencyjnego.

1 : Synchroniczne zerowanie:

0 - Zatrzymanie układu sekwencyjnego; powinno poprzedzać zmianę zawartości rejestru trybu taktowania (indeks 01h) lub wybór zegara w dodatkowym rejestrze wyjściowym (rejestry zewnętrzne - adres we/wy 3C2h/3CCh)

1 - Normalna praca układu sekwencyjnego.

2 - 7 : Zarezerwowane.

UWAGA:

Bity 0 i 1 rejestru zerowania muszą mieć wartość 1 przy normalnej pracy układu sekwencyjnego.

REJESTR TRYBU TAKTOWANIA - indeks 01h.

Rejestr trybu taktowania (Clocking Mode Register) określa część parametrów dotyczących zegara taktującego pracę sterownika. W celu zabezpieczenia zawartości pamięci obrazu podczas zmiany tego rejestru należy spowodować synchroniczne zerowanie układu sekwencyjnego za pomocą rejestru zerowania (indeks 00h).

BIT : ZNACZENIE

0 : Wybór szerokości znaków 8/9:

0 - Znaki o szerokości 9 punktów w trybie pracy 07h oraz tekstowych trybach pracy bez emulacji CGA lub EGA (wtedy szerokość znaków wynosi 8 punktów),

1 - Znaki o szerokości 8 punktów,

1 : Nie używany,

2 : Wybór sposobu ładowania rejestrów przesuwnych (co 2):

0 - Bajty pobierane z płatów pamięci są przesyłane do układu określania atrybutu w formie czterech równoległych sekwencji bitowych (po jednej dla kadiego płatu),

1 - Bajty pobierane z dwóch kolejnych płatów pamięci są ze sobą† łączone i przesyłane do układu określania atrybutu w formie dwóch równoległych sekwencji bitowych (po jednej dla dwóch płatów) co zmniejsza o połowę liczbę dostępnych kolorów, ale podwaja liniową przestrzeń adresową; przy każdym odczycie z pamięci jest pobieranych 16 (a nie 8) bitów sekwencji, a więc sterownik odczytuje pamięć obrazu co drugi takt licznika znaków (żaden ze standardowych trybów pracy nie korzysta z tej możliwości)

3 : Dzielnik częstotliwości wyświetlanych punktów:

0 - Częstotliwość wyświetlania punktów bez zmian,

1 - Częstotliwość wyświetlania punktów o połowę mniejsza (w celu realizacji trybów pracy o rozdzielczości 320x200 punktów (40 kolumn)),

4 : Wybór sposobu ładowania rejestrów przesuwnych (co 4):

0 - Bajty pobierane z płatów pamięci są przesyłane do układu określania atrybutu w formie czterech równoległych sekwencji bitowych (po jednej dla każdego płatu),

1 - Bajty pobierane z czterech kolejnych płatów pamięci są ze sobą łączone i przesyłane do układu określania atrybutu w formie jednej sekwencji bitowej co zmniejsza do jednej czwartej liczbę dostępnych kolorów, ale zwiększa czterokrotnie liniową przestrzeń adresową; przy każdym odczycie z pamięci są pobierane 32 (a nie 8) bity sekwencji, a więc sterownik odczytuje pamięć obrazu co czwarty takt licznika znaków (żaden ze standardowych trybów pracy nie korzysta z tej możliwości),

5 : Wygaszenie ekranu:

0 - Normalne wyświetlenie obrazu,

1 - Programowe odłączenie monitora przy jednoczesnym zachowaniu działania sterownika; może być używane w programach wygaszających ekran,

6 - 7 : Nie używane.

REJESTR ZABLOKOWANIA PŁATÓW PAMIĘCI - indeks 02h.

Rejestr zablokowania płatów pamięci (Map Mask Register) umożliwia selektywną modyfikację wybranych płatów pamięci podczas zapisu do pamięci obrazu.

BIT : ZNACZENIE

0 : Zerowy płat pamięci:

0 - Brak zezwolenia na modyfikację płatu,

1 - Zezwolenie na modyfikację płatu,

1 : Analogicznie dla płatu nr 1,

2 : Analogicznie dla płatu nr 2,

3 : Analogicznie dla płatu nr 3,

4 - 7 : Nie używane.

UWAGI:

Zawartość rejestru jest uwzględniana w każdym trybie zapisu do pamięci obrazu.

W trybach pracy sterownika używających adresowania przemiennego bity 0 i 1 oraz 2 i 3 rejestru powinny mieć takie same wartości.

W trybach używających adresowania modulo 4 bity 0,1,2,3 rejestru powinny mieć taką samą wartość.

Zablokowanie płatu pamięci (brak zezwolenia na modyfikację płatu) nie jest równoznaczne z pominięciem płatu przy wyświetlaniu obrazu na ekranie określanym przez rejestr pominięcia płatów pamięci (układ określania atrybutu - indeks 12h).

REJESTR WYBORU ZBIORU ZNAKÓW - indeks 03h.

Rejestr wyboru znaków (Charakter Map Register) umożliwia określenie numeru obszaru, w którym znajduje się zbiór znaków wyświetlanych w trybie tekstowym. Za pomocą tego rejestru można również wybrać drugi zbiór znaków wyświetlanych, gdy bit 3 atrybutu znaku ma wartość 1 (w ten sposób na ekranie może być wyświetlonych 512 znaków).

BIT : ZNACZENIE

0,1,4 : Numer obszaru zawierającego pierwszy zbiór znaków (wybierany, gdy bit 3 atrybutu znaku ma wartość 0),

2,3,5 : Numer obszaru zawierającego drugi zbiór znaków (wybierany, gdy bit 3 atrybutu znaku ma wartość 1),

6 - 7 : Nie używane,

UWAGI:

W tekstowym trybie pracy zbiory znaków są przechowywane w drugim płacie pamięci w ośmiu 8192-bajtowych obszarach po 256 znaków (32 bajty na znak). Przed wybraniem obszaru należy wypełnić go wzorcami bitowymi - załadować do niego zbiór znaków. Wybór tekstowego trybu pracy za pomocą funkcji BIOS-u 00h powoduje załadowanie standardowego dla danego trybu zbioru znaków do obszaru 0 i wyzerowanie rejestru wyboru zbioru znaków. Rejestr wyboru zbioru znaków powinien być modyfikowany tylko po

synchronicznym zerowaniu układu sekwencyjnego (rejestr zerowania - indeks 00h).

Asynchroniczne zerowanie układu sekwencyjnego (rejestr zerowania - indeks 00h) powoduje wyzerowanie rejestru wyboru zbioru znaków.

REJESTR TRYBU ADRESOWANIA PAMIĘCI - indeks 04h.

Rejestr trybu adresowania pamięci (Memory Mode Register) określa bieżący tryb adresowania pamięci stosowany przez układ sekwencyjny.

BIT : ZNACZENIE

0 : Nie używany równy 0,

1 : Nie używany równy 1,

2 : Adresowanie przemienne:

0 - Parzyste komórki pamięci na parzystych płatach mają (dla procesora) adresy parzyste, zaś nieparzyste komórki pamięci na nieparzystych płatach - adresy nieparzyste; taki sposób przypisania adresów komórkom pamięci umożliwia podwojenie liniowej przestrzeni adresowej,

1 - Standardowy sposób adresowania,

3 : Adresowanie modulo 4:

0 - Standardowy tryb adresowania,

1 - Kolejne komórki każdego płatu pamięci mają (dla procesora) adresy różniące się o 4, czyli:

- komórki płatu 0 - adresy podzielne przez 4,

- komórki płatu 1 - adresy podzielne przez 4 z resztą 1,

- komórki płatu 2 - adresy podzielne przez 4 z resztą 2,

- komórki płatu 3 - adresy podzielne przez 4 z resztą 3.

Taki sposób adresowania pozwala zwiększyć czterokrotnie liniową przestrzeń adresową.

4-7 : Nie używane.

UWAGI:

Wyzerowanie bitu 2 rejestru (adresowanie przemienne) powoduje przy odczycie zastąpienie nieparzystych komórek na parzystych płatach pamięci nieparzystymi komórkami z nieparzystych płatów oraz przy zapisie - ochronę przed modyfikacją (przez wyłączenie z przestrzeni adresowej procesora) parzystych komórek na nieparzystych płatach pamięci i nieparzystych komórek na parzystych płatach. Adresowanie przemienne (z przesunięciem) jest stosowane w tekstowych trybach pracy oraz podczas emulacji graficznych trybów pracy ster. CGA (porównaj rejestr dodatkowy układu graficznego - indeks 06h). Adresowanie modulo 4 jest używane w graficznych trybach pracy z 256 kolorami.

Bieżący tryb adresowania pamięci stosowany przez układ sekwencyjny powinien być zgodny z trybem adresowania pamięci stosowanym przez układ graficzny (patrz rejestr trybu zapisu/odczytu - indeks 05h i rejestr dodatkowy układu graficznego - indeks 06h) oraz układ sterowania wyświetlaczem (patrz rejestr trybu adresowania - indeks 17h).

2.12. REJESTRY UKŁADU GRAFICZNEGO .

REJESTR USTAWIANIA/ZEROWANIA - indeks 00h.

Rejestr ustawiania/zerowania (Set/Reset Register) dzieli płaty pamięci na te, których bity będą ustawiane (lub poddawane operacji logicznej z 1) i te, których bity będą zerowane (lub poddawane operacji logicznej z 0) podczas zapisu do pamięci obrazu, czyli zawiera numer koloru nadawany punktom podczas zapisu. Rodzaj wykonywanej operacji

logicznej zależy od stanu rejestru przesunięcia cyklicznego i wyboru funkcji (indeks 03h).

BIT : ZNACZENIE

0 : Sposób modyfikacji płatu pamięci nr 0,

0 - Zerowanie (lub operacja logiczna z 0),

1 - Ustawianie (lub operacja logiczna z 1),

1 : Analogicznie dla płatu pamięci nr 1,

2 : Analogicznie dla płatu pamięci nr 2,

3 : Analogicznie dla płatu pamięci nr 3, czyli bity 0-3 zawierają numer koloru,

4 - 7 : Nie używane.

UWAGI:

Zapis do pamięci obrazu odbywa się zgodnie ze stanem rejestru trybu zapisu/odczytu (indeks 05h), rejestru zezwolenia na ustawianie/zerowanie (indeks 01h), rejestru przesunięcia cyklicznego i wyboru funkcji (indeks 03h) oraz rejestru wyboru bitów (indeks 08h).

Zawartość rejestru ustawiania/zerowania jest uwzględniana tylko w 0 i 3 trybie zapisu (patrz rejestr trybu zapisu/odczytu - indeks 05h). W 0 trybie zapisu interpretacja zawartości rejestru ustawiania/zerowania zależy od zawartości rejestru zezwolenia na ustawianie/zerowanie (indeks 01h).

REJESTR ZEZWOLENIA NA USTAWIANIE/ZEROWANIE - indeks 01h.

Rejestr zezwolenia na ustawianie/zerowanie (Enable Set/Reset Register) pozwala na zezwolenie (lub zabronienie) na modyfikacje płatów pamięci zgodnie z zawartością rejestru ustawiania/zerowania (indeks 00h).

BIT : ZNACZENIE

0 : Modyfikacja 0 płatu pamięci zgodnie z zawartością rejestru ustawiania/zerowania (indeks 00h),

0 - Brak zezwolenia na modyfikację,

1 - Zezwolenie na modyfikację,

1 : Analogicznie dla płatu pamięci nr 1,

2 : Analogicznie dla płatu pamięci nr 2,

3 : Analogicznie dla płatu pamięci nr 3,

4 - 7 : Nie używane.

UWAGI:

Zawartość rejestru zezwolenia na ustawianie/zerowanie jest uwzględniana tylko w 0 trybie zapisu (patrz rejestr trybu zapisu/odczytu - indeks 05h).

REJESTR PORÓWNANIA NUMERÓW KOLORU - indeks 02h.

Rejestr porównania numerów koloru (Color Compare Register) określa numer koloru, z którym są porównywane numery koloru punktów podczas odczytu pamięci obrazu.

BIT : ZNACZENIE

0 - 3 : Numer koloru do porównania,

4 - 7 : Nie używane.

UWAGI:

Zawartość rejestr jest uwzględniana tylko w 1 trybie odczytu (patrz rejestr trybu zapisu/odczytu - indeks 05h).

Wartość odczytanego z pamięci obrazu bitu będzie wynosiła 1, gdy numer koloru punktu jest zgodny z numerem koloru zapisanym do rejestru porównania numerów koloru i 0 w przeciwnym przypadku (podczas jednej operacji odczytu porównane są numery koloru 8 kolejnych punktów). Bieżąca zawartość każdego z płatów pamięci może być zignorowana (w celu wymuszenia zgodności różnych numerów koloru) zgodnie z zawartością rejestru pominięcia koloru (indeks 07h).

REJESTR PRZESUNIĘCIA CYKLICZNEGO I WYBORU FUNKCJI - indeks 03h.

Rejestr przesunięcia cyklicznego i wyboru funkcji (Data Rotate/Function Select Register) określa rodzaj operacji wykonywanej na bajtach zapisywanych do pamięci obrazu. Wartość wpisana do rejestru określa, o ile bitów ma zostać przesunięty cyklicznie bajt przesyłany przez procesor do pamięci obrazu (zwykle 0) oraz czy na bajtach

zapisywanych do pamięci będzie wykonywana funkcja logiczna (której drugim argumentem jest wartość odpowiedniego rejestru zatrzaskowego).

BIT : ZNACZENIE

0 - 2 : Wielkość przesunięcia cyklicznego w prawo:

000b-Brak przesunięcia,

001b-Przesuniecie cykliczne w prawo o 1,

111b-Pzesunięcie cykliczne w prawo o 7,

3 - 4 : Wybór funkcji:

00b-Zapis bajtu bez modyfikacji,

01b-AND bajtu i zawartości rejestru zatrzaskowego,

10b-OR bajtu i zawartości rejestru zatrzaskowego,

11b-XOR bajtu i zawartości rejestru zatrzaskowego,

5 - 7 : Nie używane.

UWAGI:

Gdy ma być wykonane jednocześnie przesunięcie cykliczne i funkcja logiczna, to przesunięcie cykliczne bajtu jest wykonywane jako pierwsze.

Przesuniecie cykliczne jest wykonywane tylko w 0 i 3 trybie zapisu (patrz rejestr trybu zapisu/odczytu - indeks 05h) i tylko na bajtach przesyłanych przez procesor.

Zawartość rejestru przesunięcia cyklicznego i wyboru funkcji nie jest uwzględniana w 1 trybie zapisu.

REJESTR WYBORU PŁATU PAMIĘCI - indeks 04h.

Rejestr wyboru płatu pamięci (Read Map Select Register) służy do wybrania płatu pamięci, z którego będzie odczytywany bajt.

BIT : ZNACZENIE

0-1 : Numer płatu pamięci do odczytu,

2-7 : Nie używane.

UWAGI:

Zawartość rejestru wyboru płatu pamięci jest uwzględniana tylko w 0 trybie odczytu (patrz rejestr trybu zapisu/odczytu - indeks 05h).

Ponieważ 0 tryb odczytu jest standardowym trybem odczytu dla funkcji BIOS-u, wybieranie go zwykle nie jest konieczne.

REJESTR TRYBU ZAPISU/ODCZYTU - indeks 05h.

Rejestr trybu zapisu/odczytu (Mode Register) pozwala wybrać sposób zapisywania i odczytywania informacji z pamięci obrazu oraz wraz z rejestrem dodatkowym układu graficznego (indeks 06h) określa bieżący tryb adresowania pamięci stosowany przez układ graficzny.

BIT : ZNACZENIE

0 - 1 : Numer trybu zapisu:

00b - tryb zapisu nr 0,

01b - tryb zapisu nr 1,

10b - tryb zapisu nr 2,

11b - tryb zapisu nr 3,

2 : Nie używany,

3 : Numer trybu odczytu:

0 - tryb odczytu nr 0,

1 - tryb odczytu nr 1,

4 : Adresowanie przemienne:

0 - Standardowy sposób adresowania,

1 - Parzyste komórki pamięci na parzystych płatach mają (dla procesora) adresy parzyste, a nieparzyste komórki pamięci na nieparzystych płatach - adresy nieparzyste; taki sposób przypisywania adresów komórkom pamięci umożliwia podwojenie liniowej przestrzeni adresowej,

5 : Sposób ładowania rejestrów przesuwnych:

0 - Bity z pamięci obrazu są umieszczane w rejestrach przesuwnych zgodnie z umieszczeniem na płatach pamięci,

1 - Nieparzyste bity każdego bajtu z pamięci obrazu są umieszczane w rejestrach przesuwnych odpowiadającym płatom pamięci, a parzyste - w rejestrach przesuwnych odpowiadających parzystym płatom pamięci; w ten sposób dwa kolejne bity pamięci są umieszczone w dwóch odrębnych rejestrach przesuwnych, co pozwala na emulację czterokolorowych trybów graficznych sterownika CGA (dwa sąsiednie bity określają kolor jednego punktu),

6 : Tryb z 256 kolorami:

0 - Bity z pamięci obrazu są umieszczane w rejestrach przesuwnych zgodnie z umieszczeniem na płatach pamięci,

1 - Podczas sekwencyjnego przesyłania bitów każdy bajt jest przekształcany na 42-bitowe wartości przesyłane poprzez rejestry przesuwne do układu określania atrybutu; niektóre funkcje układu określania atrybutu nie są dostępne w trybie z 256 kolorami,

7 : Nie używany.

UWAGI:

Operacja zapisu bajtu bezpośrednio do pamięci obrazu powinna być poprzedzona odczytaniem zawartości pamięci obrazu (załadowaniem odpowiednich rejestrów zatrzaskowych).

Standardowymi trybami dla funkcji BIOS-u są 0 tryb zapisu i 0 tryb odczytu, a zatem wybranie tych trybów zwykle nie jest konieczne. Wybranie odpowiedniego trybu zapisu lub odczytu pozwala niekiedy na zwiększenie szybkości działania programu.

Wartość bitu 4 rejestru (adresowanie przemienne) jest uwzględniana tylko przy operacji odczytu z pamięci obrazu i powoduje (przy wartości 1), że dla procesora nieparzyste płaty pamięci wyglądają tak samo jak parzyste. Bieżący tryb adresowania pamięci stosowany przez układ graficzny jest zwykle zgodny z trybem adresowania pamięci stosowanym przez układ sekwencyjny (patrz rejestr trybu adresowania pamięci - indeks 04h) oraz układ sterowania wyświetlaczem (patrz rejestr trybu adresowania - indeks 17h).

Adresowanie przemienne (z przesunięciem) jest stosowane w tekstowych trybach pracy oraz podczas emulacji graficznych trybów pracy sterownika CGA (patrz rejestr dodatkowy - indeks 06h).

REJESTR DODATKOWY UKŁADU GRAFICZNEGO - indeks 06h.

Rejestr dodatkowy układu graficznego (Miscellaneous Register) określa tryb pracy sterownika, umieszczenie pamięci obrazu w przestrzeni adresowej procesora oraz, wraz z rejestrem trybu zapisu/odczytu (indeks 05h), bieżący tryb adresowania pamięci stosowany przez układ graficzny.

BIT : ZNACZENIE

0 : Tryb pracy sterownika:

0 - Tekstowy tryb pracy,

1 - Graficzny tryb pracy,

1 : Przesunięcie adresu:

0 - Standardowy sposób adresowania,

1 - Podczas zapisu lub odczytu z pamięci obrazu od nieparzystego adresu zawartego w instrukcji jest odejmowane 1 i procesorowi jest udostępniana komórka o tak zmodyfikowanym adresie; parzyste adresy nie są modyfikowane,

2-3 : Adres początku i rozmiar pamięci obrazu adresowanej bezpośrednio

przez procesor:

Adres początku

Rozmiar pamięci obrazu

00b-

01b-

10b-

11b-

A000h

A000h

B000h

B800h

128KB

64KB

32KB

32KB

4-7 : Nie używane.

UWAGI:

Żaden dodatkowy sterownik graficzny nie może być zainstalowany bez konfliktu adresów, gdy 128KB pamięci obrazu obsługiwanej przez sterownik VGA zaczyna się od adresu A000h.

Zwykle przesuniecie adresu jest stosowane łącznie z adresowaniem przemiennym (patrz rejestr trybu adresowania pamięci - indeks 04h) w tekstowych trybach pracy i podczas emulacji graficznych trybów pracy sterownika CGA. Efektem przesunięcia jest wówczas przypisanie parzystym komórkom parzystych płatów pamięci kolejnych adresów parzystych, a parzystym komórkom nieparzystych płatów pamięci - adresów nieparzystych. Bieżący tryb adresowania pamięci stosowany przez układ graficzny jest zwykle zgodny z trybem adresowania pamięci stosowanym przez układ sekwencyjny (patrz rejestr trybu adresowania pamięci - indeks 04h) oraz układ sterowania wyświetlaczem (patrz rejestr trybu adresowania - indeks 17h).

REJESTR POMINIĘCIA KOLORU - indeks 07h.

Rejestr pominięcia koloru (Color Don`t Care Register) pozwala procesorowi pomijać wybrane płaty pamięci podczas odczytu pamięci obrazu, w celu porównania z numerem koloru zawartym w rejestrze porównania numerów koloru (indeks 02h) w 1 trybie odczytu (patrz rejestr trybu zapisu/odczytu - indeks 05h).

BIT : ZNACZENIE

0 : Pominięcie płatu pamięci nr 0:

0 - Wartość bitu z płatu pamięci nr 0 jest zawsze zgodna z wartością odpowiedniego bitu rejestru porównywania numerów koloru,

1 - Wartość bitu z płatu pamięci nr 0 jest tylko wtedy zgodna z wartością odpowiedniego bitu rejestru porównywania numerów koloru, gdy obie wartości są takie same,

1 : Analogicznie dla płatu pamięci nr 1,

2 : Analogicznie dla paktu pamięci nr 2,

3 : Analogicznie dla paktu pamięci nr 3,

4 -7 : Nie używane.

UWAGA:

Wpisanie do rejestru pominięcia koloru 0Fh spowoduje, że zgodny z numerem koloru zawartym w rejestrze porównywania numerów kolorów (indeks 02h) będzie tylko numer koloru o dokładnie takiej samej wartości, wpisanie zaś 00h spowoduje, że zgodny z numerem koloru zawartym w rejestrze porównywania numerów koloru będzie każdy numer koloru.

REJESTR WYBORU BITÓW - indeks 08h.

Rejestr wyboru bitów (Bit Mask Register) określa, które bity w komórce pamięci o wskazanym adresie będą modyfikowane podczas zapisu do pamięci obrazu. Zawartość rejestru wyboru bitów jest uwzględniana we wszystkich trybach zapisu poza 1 trybem zapisu (patrz rejestr zapisu/odczytu - indeks 05h).

BIT : ZNACZENIE

0 : Bit 0 komórki pamięci obrazu:

0 - Ochrona bitu przed zmianą,

1 - Zezwolenie na zmianę bitu,

1-7 : Analogicznie dla bitów 1-7 komórki pamięci obrazu.

UWAGI:

Operacja zapisu bajtu bezpośrednio do pamięci obrazu powinna być poprzedzona odczytaniem zawartości pamięci obrazu (załadowaniem odpowiednich rejestrów zatrzaskowych).

Wartość 00h chroni przed zmianą wszystkie bity komórki pamięci obrazu, zaś wartość FFh umożliwia zmianę wszystkich bitów komórki jedną operacją zapisu.

2.13. REJESTRY UKŁADU OKREŚLANIA ATRYBUTU .

REJESTR PALETY - indeks 00h-0Fh.

Rejestry palety (Palette Registers) przyporządkowują numerom koloru kolory (numery wzorców koloru), których wzorce są przechowywane w rejestrach wzorców koloru (układ przetwornika cyfrowo-analogowego).

BIT : ZNACZENIE

0-5 : Zawartość rejestru palety - kolor (numer wzorca koloru czyli numer rejestru wzorca koloru zawierającego 18-bitowy wzorzec koloru),

6-7 : Nie używane.

UWAGI:

Zmiana zawartości rejestrów palety wymaga odłączenia sterownika od rejestrów palety (wyzerowany bit 5 rejestru indeksowego układu określania atrybutu - adres we/wy 3C0h). Po dokonaniu zmiany należy ponownie udostępnić sterownikowi rejestry palety (poprzez ustawienie bitu 5 rejestru indeksowego).

Znaczenie zawartości rejestrów palety zależy od stanu rejestru trybu (indeks 10h) i rejestru wyboru koloru (indeks 14h).

Rejestry palety powinny być modyfikowane jedynie podczas powrotu pionowego (patrz pierwszy rejestr stanu - adres we/wy 3DAh(3BAh)). W trybie pracy z 256 kolorami rejestry palety nie są uwzględniane - nie mają wpływu na określanie koloru (8-bitowa wartość koloru pobierana z pamięci obrazu jest interpretowana jako numer rejestru wzorca koloru).

REJESTR TRYBU PRACY - indeks 10h.

Rejestr trybu pracy (Mode Control Register) służy do wybrania trybu działania układu określania atrybutu.

BIT : ZNACZENIE

0 : Wybór trybu pracy sterownika VGA:

0 - Tekstowy tryb pracy,

1 - Graficzny tryb pracy,

1 : Wybór rodzaju wyświetlacza:

0 - Wyświetlacz kolorowy,

1 - Wyświetlacz monochromatyczny,

2 : Sposób wyświetlania znaków o szerokości 9 punktów:

0 - Znaki o szerokości 8 punktów, między znakami jednopunktowy odstęp w kolorze tła poprzedniego znaku,

1 - Znaki o szerokości 9 punktów, brak odstępu między znakami (dla znaków o kodach ASCII C0h-DFh dziewiąty punkt jest taki sam jak ósmy, dla pozostałych znaków dziewiąty punkt jest wyświetlany w kolorze tła),

3 : Zmiana interpretacji bajtu atrybutu (migotanie/tło):

0 - Bity 4-7 bajtu atrybutu określaj† numer koloru tła znaku,

1 - Bity 4-6 bajtu atrybutu określaj† numer koloru tła znaku, bit 7 - migotanie znaku (gdy bit ma wartość 1),

4 : Nie używany,

5 : Ograniczenie przesunięcia poziomego (patrz rejestr przesunięcia poziomego - indeks 13h, (gdy ekran jest podzielony na dwa niezależne obszary zgodnie z zawartością rejestru podzielenia obrazu (patrz układ sterowania wyświetlaczem - indeks 18h):

0 - Przesunięcie jednoczesne obu obszarów,

1 - Przesunięcie tylko górnego obszaru,

6 : Liczba bitów przeznaczonych na numer koloru punktu:

0 - czterobitowy numer koloru punktu (umożliwia uzyskanie 16 różnych barw jednoczenie),

1 - ośmiobitowy numer koloru punktu (umożliwia uzyskanie 256 różnych barw jednocześnie),

7 : Podział rejestrów wzorców koloru (patrz układ przetwornika cyfr./analog.) na bloki:

0 - Podział na 4 bloki po 64 wzorce koloru (zawartość rejestrów palety wraz z bitami 2-3 rejestru wyboru koloru (indeks 14h) rozszerzającymi rejestry palety służy do wybierania rejestrów wzorów koloru),

1 - Podział na 16 bloków po 16 wzorców koloru (bity 0-3 rejestrów palety wraz z bitami 0-3 rejestru wyboru koloru (indeks 14h) służą do wybierania rejestrów wzorców koloru).

UWAGA:

Ograniczenie przesunięcia poziomego tylko do górnego obszaru ekranu (ustawiony bit 5 rejestru trybu pracy) powoduje zerowanie rejestru przesunięcia poziomego (indeks 13h), gdy licznik linii osiągnie linię dzielącą obraz na dwa niezależne obszary oraz odtwarzanie jego zawartości podczas powrotu pionowego.

REJESTR KOLORU BRZEGU EKRANU - indeks 11h.

Rejestr koloru brzegu ekranu (Overscan Register) zawiera kolor brzegu ekranu (numer rejestru wzorca koloru).

BIT : ZNACZENIE

0-7 : Kolor brzegu ekranu.

UWAGI:

Zawartość rejestru koloru brzegu ekranu jest traktowana jako numer rejestru wzorca koloru (patrz układ przetwornika cyfrowo-analogowego).

Standardowa wartość rejestru koloru brzegu ekranu wynosi 0 (kolor czarny) dla wszystkich trybów pracy.

Dla niektórych sterowników VGA w trybach o wysokiej rozdzielczości jest niemożliwe uzyskanie koloru brzegu ekranu innego niż czarny.

REJESTR POMINIĘCIA PŁATÓW PAMIĘCI - indeks 12h.

Rejestr pominięcia płatów pamięci (Color Plane Enable Register) określa, które płaty pamięci będą uwzględniane przy wyświetlaniu punktów. Płaty nie uwzględniane (pomijane) będą traktowane tak jakby były wypełnione zerami.

BIT : ZNACZENIE

0 : Pomijanie płatu pamięci nr 0:

0 - Płat pamięci nr 0 jest pomijany przy wyświetlaniu,

1 - Płat pamięci nr 0 jest uwzględniany przy wyświetlaniu,

1 : Analogicznie dla płatu pamięci nr 1,

2 : Analogicznie dla płatu pamięci nr 2,

3 : Analogicznie dla płatu pamięci nr 3,

4-5 : Wybór bitów diagnostycznych układu określania atrybutu, które pojawią się jako bity 4 i 5 pierwszego rejestru stanu (rejestry zewnętrzne - adres we/wy 3BAh(3DAh)):

00b-Bity 2 i 0,

01b-Bity 5 i 4,

10b-Bity 3 i 1,

11b-Bity 7 i 6,

6-7 : Nie używane.

UWAGI:

Rejestr wyboru płatów pamięci jest stosowany przy ograniczeniu liczby płatów pamięci określających kolory punktów na ekranie w trybach pracy zgodnych z trybami pracy sterownika MDA, CGA, EGA.

Pominięcie płatu pamięci (nieuwzględnienie przy wyświetlaniu obrazu na ekranie) nie jest równoznaczne z zablokowaniem płatu (brak zezwolenia na modyfikacji płatu), które określa rejestr zablokowania płatów pamięci (układ sekwencyjny - indeks 02h).

W tekstowych trybach pracy rejestr pominięcia płatów pamięci ogranicza liczbę dostępnych numerów kolorów; numer wybieranego rejestru palety stanowi wynik operacji AND na numerze koloru i bitach 0-3 rejestru pominięcia płatów.

Rejestr pominięcia płatów pamięci może być używany do zapisywania różnych obrazów do poszczególnych płatów, a nastanie wyświetlania każdego z nich przez odpowiednie określanie pomijania i uwzględniania płatów pamięci.

REJESTR PRZESUNIĘCIA POZIOMEGO - indeks 13h.

Rejestr przesunięcia poziomego (Horizontal Pel Panning Register) służy do przesunięcia obrazu na ekranie w lewo o podaną liczbę punktów.

Rejestr może być używany zarówno w tekstowych jak i graficznych trybach pracy.

BIT : ZNACZENIE

0-3 : Kod wielkości przesunięcia poziomego:

Kod

Liczba punktów (wielkość przesunięcia)

Tryby tekstowe

Tryby gr. z 256 kol.

Tryby gr. z 16 kol.

0000b

0001b

0010b

0011b

0100b

0101b

0110b

0111b

1000b

1

2

3

4

5

6

7

8

0

0

-

1

-

2

-

3

-

-

0

1

2

3

4

5

6

7

-

4-7 : Nie używane.

UWAGI:

W tekstowych trybach pracy brak przesunięcia wymaga wpisania do rejestru przesunięcia poziomego wartości 8 (1000b), a nie 0.

Za pomocą rejestru przesunięcia poziomego można przesunąć obraz o co najwyżej 7 punktów w graficznych trybach pracy i o co najwyżej 8 punktów w tekstowych trybach pracy. Przesuniecie poziome obrazu o więcej niż 7 (8) punktów wymaga wpisania wartości określającej adres pierwszego wyświetlanego punktu (znaku) do rejestru adresowego (układ sterowania wyświetlaczem - indeksy 0Ch, 0Dh).

Gdy rejestry przesuwne są ładowane co drugi (lub co czwarty) takt licznika znaków (patrz rejestr trybu taktowania układu sekwencyjnego - indeks 01h) rejestr adresowy (układu sterowania wyświetlaczem - indeksy 0Ch, 0Dh) może wskazywać tylko na komórkę o adresie podzielnym przez 2 (lub przez 4) i przesuniecie obrazu o zadaną liczbę punktów wymaga używania dodatkowo dwóch bitów z rejestru pierwszej linii (układ sterowania wyświetlaczem - indeks 08h).

REJESTR WYBORU KOLORU - indeks 14h.

Rejestr wyboru koloru (Color Select Register) umożliwia wybranie bloku wzorców koloru czyli grupy rejestrów przetwornika cyfrowo-analogowego. Rejestry przetw. cyfrowo-analogowego mogą być podzielone na 4 bloki po 64 rejestry (dwa bity identyfikują blok) lub na 16 bloków po 16 rejestrów (cztery bity identyfikuj† blok). Znaczenie zawartości rejestru wyboru koloru zależy od wartości bitu 7 rejestru wyboru trybu (indeks 10h).

BIT : ZNACZENIE, GDY BIT 7 REJESTRU WYBORU TRYBU MA WARTOŚĆ 1

0-3 : Numer jednego z 16 bloków wzorców koloru (bity 0 i 1 są brane zamiast bitów 4 i 5 rejestrów palety, zaś bity 2 i 3 odgrywają rolę najbardziej znaczących bitów rozszerzających rejestry palety),

BIT : ZNACZENIE, GDY BIT 7 REJESTRU WYBORU TRYBU MA WARTOŚĆ 0

2-3 : Numer jednego z 4 bloków wzorców koloru (rozszerzenie rejestrów palety o dwa najbardziej znaczące bity),

4-7 : Nie używane.

UWAGI:

Zmiana zawartości rejestru wyboru koloru umożliwia szybką zmianę całego zestawu kolorów widocznych na ekranie.

Zawartość rejestru wyboru koloru nie jest uwzględniana w 256-kolorowych trybach pracy sterownika (tryb 13h).

2.14. REJESTRY PRZETWORNIKA CYFROWO / ANALOGOWEGO .

REJESTR OGRANICZAJĄCY - adres we/wy 3C6h.

Rejestr ograniczający (PEL Mask Register) służy do ograniczania liczby rejestrów wzorców koloru używanych podczas określania kolorów punktów wyświetlanych na ekranie. Wartość przekazywana przez układ określania atrybutu jest poddawana operacji AND z zawartością rejestru ograniczającego - wynik stanowi indeks wskazujący rejestr wzorca koloru.

UWAGA:

Przy każdej zmianie trybu pracy BIOS zapisuje wartość FFh do rejestru ograniczającego. Zawartość tego rejestru nie powinna być zmieniana.

REJESTR STANU PRZETWORNIKA CYFROWO-ANALOGOWEGO - adres we/wy 3C7h.

Rejestr stanu przetwornika cyfrowo-analogowego (DAC State Register) jest używany do odczytywania stanu rejestrów wzorców koloru.

BIT : ZNACZENIE

0-1 : 00b-Rejestry wzorców koloru są odczytywane

01b - 10b - Nie używane,

11b - Rejestry wzorców koloru są zapisywane,

2-7 : Zarezerwowane.

UWAGA:

Rejestr przeznaczony tylko do odczytu.

REJESTR INDEKSOWY ODCZYTU PRZETWORNIKA - adres we/wy 3C7h.

Rejestr indeksowy odczytu przetwornika (PEL Adress Read Mode Register) służy do rozpoczęcia cyklu odczytu i określenia numeru pierwszego wzorca koloru, który będzie odczytywany.

Po zapisaniu do tego rejestru wartości powinien rozpocząć się cykl odczytu polegający na odczytaniu z rejestru informacyjnego przetwornika (adres we/wy 3C9h) trzech wartości określających intensywności trzech podstawowych barw - kolejno czerwonej, niebieskiej i zielonej.

Po każdym cyklu odczytu (tj. po każdych trzech operacjach odczytu z rejestru informacyjnego) zawartość rejestru indeksowego odczytu przetwornika jest automatycznie zwiększana o 1, co pozwala na odczytanie następnego rejestru wzorca koloru. Cykle czytania nie mogą być przerywane operacjami zapisu do rejestru informacyjnego przetwornika ponieważ może to spowodować utratę zawartości rejestrów wzorców kolorów.

Jest natomiast możliwe przerwanie bieżącego cyklu odczytu wpisaniem nowej wartości do rejestru indeksowego zapisu przetwornika (adres we/wy 3C8h) powoduje to rozpoczęcie cyklu zapisu. Między dwiema kolejnymi operacjami odczytu rejestru inf. przetwornika (adres we/wy 3C9h) powinno upłynąć co najmniej 240 ns. W czasie odczytywania rejestrów układu przetwornika cyfr.-analog. powinno być zablokowane (rozkaz CLI).

BIT : ZNACZENIE

0-7 : Numer rejestru wzorca koloru przeznaczonego do odczytu.

UWAGA:

Rejestr przeznaczony tylko do zapisu.

REJESTR INDEKSOWY ZAPISU PRZETWORNIKA - adres we/wy 3C8h.

Rejestr indeksowy zapisu przetwornika (PEL Address Write Mode Register) służy do rozpoczęcia cyklu zapisu i określenia numeru pierwszego wzorca koloru, który będzie zapisywany.

Po zapisaniu do tego rej. wartości powinien rozpocząć się cykl zapisu polegający na zapisaniu do rejestru informacyjnego przetwornika (adres we/wy 3C9h) trzech wartości określających intensywności trzech podstawowych barw - kolejno czerwonej, niebieskiej i zielonej. Po każdym cyklu zapisu (tj. po każdych trzech operacjach zapisu do rejestru informacyjnego) zawartość rejestru indeksowego zapisu przetwornika jest automatycznie zwiększana o 1, co pozwala na zapisanie do następnego rejestru wzorca koloru. Cykle zapisu nie mogą być przerywane operacjami odczytu z rej. informacyjnego, ponieważ może to prowadzić do utraty zawartości rejestrów wzorców kolorów. Jest natomiast możliwe przerwanie bieżącego cyklu zapisu wpisaniem nowej

wartości do rej. indeksowego odczytu przetwornika (adres we/wy 3C7h). Powoduje to rozpoczęcie cyklu odczytu.

Między 2 kolejnymi operacjami zapisu wartości do rej. informacyjnego przetwornika (adres we/wy 3C9h) powinno upłynąć co najmniej 240 ns. W czasie zmiany zawartości rejestrów układu przetwornika cyfr.-analog. powinno być zablokowane przyjmowanie przerwa¤ (rozkaz CLI).

BIT : ZNACZENIE

0-7 : Numer rejestru wzorca koloru przeznaczonego do zapisu.

REJESTR INFORMACYJNY PRZETWORNIKA - adres we/wy 3C9h.

Rejestr informacyjny przetwornika (PEL Data Register) służy do zapisywania i odczytywania informacji o zawartości rejestrów wzorców koloru.

Każdy cykl zapisu (odczytu) składa się z trzech operacji zapisu (odczytu) wartości określających intensywności trzech podstawowych barw: czerwonej, zielonej i niebieskiej.

Pierwszy cykl odczytu jest rozpoczynany zapisaniem do rejestru indeksowego odczytu przetwornika (adres we/wy 3C7h) numeru pierwszego rejestru wzorca koloru przeznaczonego do odczytania. Pierwszy cykl zapisu jest rozpoczynany zapisaniem do rejestru indeksowego przetwornika (adres we/wy 3C8h) numeru pierwszego rejestru wzorca koloru przeznaczonego do zapisania.

Wartości wzorców koloru nie powinny być modyfikowane i odczytywane podczas wyświetlania obrazu. Należy w tym celu wykorzystać czas pionowego powrotu lub wygasić ekran, oraz zablokować przyjmowanie przerwa¤ przez procesor (rozkaz CLI). Między 2 kolejnymi operacjami zapisu lub odczytu rejestru informacyjnego przetwornika powinno upłynąć co najmniej 240 ns.

BIT : ZNACZENIE

0-5 : Intensywność jednej z trzech barw podstawowych,

6-7 : Zarezerwowane.

3. PRZEBIEG ĆWICZENIA.

Przykładowe programy:

3.1. Wypełnienie ekranu w trybie tekstowym, za pomocą bezpośredniego odwołania się do pamięci ekranu.

uses crt, dos;

type

znak = record

kod: char;

atr:byte;

end;

var

ekran: array [0..25, 0..80] of znak absolute $b088 : 0000;

x,y: intrger;

begin

for y:=0 to 25 do

for x:=0 to 80 do

begin

ekran [y][x]. kod ='A';

ekran [y][x]. atr ='x';

end;

3.2. Program zmieniający tryb graficzny w którym karta aktualnie pracuje.

uses crt,dos;

var r:registers;

a,b,c,d:integer;

x:byte;

procedure aktualny;

begin

r.ah:=$f;

intr($10,r);

writeln (`Tryb pracy: `,r.al.);

writeln(`Liczba kolumn: `,r.ah);

writeln(`Numer aktywnej strony:',r.bh)

end;

procedure zmien;

begin

r.ah:=0;

r.al.:=x;

intr($10,r);

end;

begin

clrscr;

aktualny;

readkey;

write(`Podaj numer trybu: `);

read(x);

zmien;

aktualny;

readkey;

x;=3;

zmien;

aktualny;

readkey;

end.

3.3. Program ma za zadanie rysowanie linii na ekranie. Na końcu programu następuje powrót do trybu tekstowego.

uses crt,dos;

var r:registers;

a,b,c,d:integer;

x:byte;

z,y:word;

procedure zmiana;

begin

r.ah:=y;

r.al.:=x;

intr ($10,r);

end;

begin

y:=0;

x:=4;

zmiana;

y:=0;

x:=0;

for z:=0 to 8000 do mem [$B800:z]:=255;

for z:=0 to 8000 do mem [$B800:z+ 8192]:=170;

for z:=0 to 8000 do mem [$BC00:z]:=255;

for z:=0 to 8000 do mem [$BC00:z+ 8192]:=170;

delay(500);

y:=5;

x:=1;

intr($10,r);

readkey;

end.

KONTROLER ATRYBUTÓW

SERIALZER

PAMIĘĆ EKRANU

KONTROLER

GRAFICZNY

PRZETWORNIK CYFR.-ANALOG.

ROM

BIOS

KONTROLER

CRT

SEQUENCER

MONITOR

Sterownik CRT

Licznik linii

Pamięć obrazu

Generator znaków

Rejestr przesuwny

Rejestr atrybutu

HS

VS

numer linii

ASCII

bajt atrybutu

tło

znak

ADR

WEB

WEA

sygnały synchronizujące

I

R

G

B

Pixel Clock

sygnał szeregowy



Wyszukiwarka

Podobne podstrony:
BUDOWA~2, Informatyka
INFORMATYKA - budowa komputera itp, Szkoła, Informatyka
Budowa i rodzaje kart sieciowych, Informatyka, Urządzenia Techniki Komputerowej
BUDOWA I DZIAŁANIE DYSKÓW TWARDYCH, INFORMATYKA 001
budowa komputera, Informatyka
Europejska strategia budowania społeczeństwa informacyjnego, Informacja Naukowa i Bibliotekoznawstwo
Praca końcowa-Budowa komputera, Informatyka -all, INFORMATYKA-all
Siemens, Mechanika i budowa maszyn, Semestr VI, Informatyka w eksploatacji pojazdów, Prezentacja
Automatyka i sterowanie, autom sprawozdanie, Wydział: Budowa Maszyn i Informatyki
Automatyka i sterowanie, autom sprawozdanie, Wydział: Budowa Maszyn i Informatyki
BUDOWA SKÓRY INFORMACJE OGÓLNE 1
Budowa i zadania systemu MS, edukacja i nauka, Informatyka
SYSTEM TOLL, Mechanika i budowa maszyn, Semestr VI, Informatyka w eksploatacji pojazdów, Prezentacja
Budowa komputera na 5, Studia, Informatyka, Informatyka, Informatyka
Budowanie systemów informatycznych dla potrzeb zarządzania w
GRUNDIG, Mechanika i budowa maszyn, Semestr VI, Informatyka w eksploatacji pojazdów, Prezentacja
21.Budowa i znaczenie chromosomów jako nośników informacji, studia-biologia, Opracowane pytania do l
2. Literatuta Cz.1, Studia, MECHANIKA I BUDOWA MASZYN, Techniki Wytwarzania, INFORMACJE OGÓLNE techn

więcej podobnych podstron