Rozsireni BIOS pro EGA/VGA
V teto kapitole se seznamime se sluzbami EGA/VGA BIOS,
ktere nam umozni vyuzivat specificke vlastnosti karet
EGA/VGA. Prace s temito sluzbami je naprosto principialne
shodna jako s temi predeslymi. Vzhledem k tomu, ze nove
poskytovanych sluzeb je opravdu mnoho a cisel sluzeb neni
neomezene mnozstvi, doslo k tomu, ze kazda sluzba v sobe
zahrnuje nekolik podsluzeb (budeme je nazyvat funkce). Cislo
funkce se uklada do registru AL nebo BL. K vyvolani vlastni
sluzby se opet pouziva INT 10h. Sluzby teto casti BIOS
muzeme rozdelit do tri hlavnich skupin: sluzby pro praci
s barvami a paletami barev, sluzby pro obsluhu znakovych sad
a sluzby zjistujici konfiguraci adapteru.
Sluzba 10h - Nastaveni registru palety
======================================
Popis: Tato sluzba se pouziva ke zmene jedne (nebo vsech)
barev palety na jinou barvu a k nastaveni barvy
ramecku. (Ramecek je plocha obrazovky na jejich
okrajich, kde se obvykle nic nezobrazuje.)
Poznamka: V sesnactibarevnych modech EGA/VGA je cislo registru
palety stejne jako cislo barvy. V kompatibilnich modech
(CGA) urcuji registry 1-3 barvy palety 1 a registry 4-6
urcuji barvy palety 0. Pokud mate kartu EGA s 64K
pameti a pouzijete mod 10h, barvy jsou urceny
nasledujicim schematem:
Registr palety Cisla barev
-----------------------------------
0 0,2,8,10
1 1,3,9,11
4 4,6,12,14
7 5,7,13,15
Po kazde inicializaci zobrazovaciho rezimu jsou hodnoty
registru palety nastaveny na svoji puvodni hodnotu.
Pokud tedy pouzivate svoji paletu, musite ji obnovit po
kazde zmene zobrazovaciho rezimu. Jinou moznosti je
ucinit vase hodnoty barev v palete stalymi. To
dosahnete vytvorenim vlastni tabulky parametru
a nastavenim ukazatele BIOS SAVE_PTR na ni. Format teto
parametricke tabulky je uveden v popisu ukladaci
oblasti BIOS. Na karte VGA muzete pomoci sluzby 12h
a jeji funkce 31h zakazat obnovu palety po resetu modu.
VGA ma krome standartnich registru palety take 256
registru DAC (Digital to Analog Converter), ktere
urcuji vyslednou barvu. Kazdy registr uchovava
18bitovou hodnotu. Z techto 18 bitu prislusi vzdy 6
kazde ze tri barev - cervene, zelene, modre (tzv. RGB
barevny model). Hodnota techto sesti bitu udava
intenzitu prislusne barvy. Vyslednym slozenim vsech tri
zakladnich barev dostaneme barvu vyslednou, pro kterou
mame celkem 262144 (=218) moznosti.
Vstup: AH = 10h Cislo sluzby
AL = Cislo funkce
Funkce 00h - Nastaveni jednoho registru palety
----------------------------------------------
Poznamka: Tato funkce muze byt pouzita i k nastaveni
registru kontroleru atributu.
Vstup: AH = 10h Cislo sluzby
AL = 00h Cislo funkce
BL = Cislo registru palety (00h - 0fh)
= Cislo registru atributu
10h Registr modu
11h Overscan color registr (barva ramecku)
12h Registr pristupu do bitovych rovin
13h Registr urcujici posun obrazu doleva
14h Registr vyberu barvy (pouze VGA)
BH = Hodnota nastavovaneho registru
Funkce 01h - Nastaveni barvy ramecku
------------------------------------
Poznamka: Nefunguje na EGA pri 350 radkovych modech.
Vstup: AH = 10h Cislo sluzby
AL = 01h Cislo funkce
BH = Barva ramecku
Funkce 02h - Nastaveni vsech registru palety
--------------------------------------------
Poznamka: Tato funkce vyzaduje, aby byla v pameti ulozena
tabulka o delce 17 bytu. Prvnich sestnact byte obsahuje
hodnoty barev pro registry palety a 17. byte urcuje
barvu ramecku.
Vstup: AH = 10h Cislo sluzby
AL = 02h Cislo funkce
ES = Segment obsahujici tabulku
DX = Offset prvniho byte v tabulce
Funkce 03h - Zmena intenzity a blikani
--------------------------------------
Poznamka: Tato funkce urcuje zda bit 3 nebo 4 atributu bude
urcovat intenzitu barvy nebo blikani.
Vstup: AH = 10h Cislo sluzby
AL = 03h Cislo funkce
BL = 0 - povol intenzitu (zakaz blikani)
1 - povol blikani (zakaz intenzitu)
O tom jak je informace o barve zakodovana pro karty EGA
a CGA vypovidaji nasledujici tabulky.
CGA:
/-------------------------------\
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---+---+---+---+---+---+---+---|
| X | X | X | I | X | R | G | B |
\-------------------------------/
X - nepouzito
I - intenzita (pripadne blikani)
R, G, B - cervena, zelena, modra
a pro EGA:
/-------------------------------\
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---+---+---+---+---+---+---+---|
| X | X | R | G | B | R | G | B |
\-------------------------------/
Standardni nastaveni registru palety:
/--------------------------------------------\
| Barva | EGA | CGA |
| bity | 543210 | 543210 |
|--------------+-----------+-----------------|
| cerna | 000000 | 000000 |
| modra | 000001 | 000001 |
| zelena | 000010 | 000010 |
| tyrkysova | 000011 | 000011 |
| cervena | 000100 | 000100 |
| fialova | 000101 | 000101 |
| hneda | 010100 | 000110 |
| bila | 000111 | 000111 |
| seda | 111000 | 010000 |
| sv. modra | 111001 | 010001 |
| sv. zelena | 111010 | 010010 |
| sv. tyrk. | 111011 | 010011 |
| sv. cervena | 111100 | 010100 |
| sv. fialova | 111101 | 010101 |
| zluta | 111110 | 010110 |
| bila | 111111 | 010111 |
\--------------------------------------------/
pozn. Sv. samozrejme znamena svetle
Na VGA karte obsahuje registr palety ukazetel do registru
DAC, ze ktereho je teprve ziskana vysledna podoba barvy.
Funkce 07h - Zjisteni obsahu jednoho registru palety - pouze VGA
----------------------------------------------------------------
Vstup: AH = 10h Cislo sluzby
AL = 07h Cislo funkce
BL = Cislo registru k precteni
Vystup: Bude v registrech obsazen po zavolani sluzby
BH = Nastaveni registru
Funkce 08h - Zjisteni barvy ramecku - pouze VGA
-----------------------------------------------
Vstup: AH = 10h Cislo sluzby
AL = 07h Cislo funkce
Vystup: Bude v registrech obsazen po zavolani sluzby
BH = Barva ramecku
Funkce 09h - Nacteni vsech registru palety - pouze VGA
------------------------------------------------------
Poznamka: Pred volanim teto funkce musite v pameti vyhradit
17 byte. Do prvnich sestnacti byte ulozi funkce
registry palety a do 17. byte ulozi barvu ramecku.
Vstup: AH = 10h Cislo sluzby
AL = 09h Cislo funkce
ES = Segment, ve kterem je tabulka
DX = Offset prvniho byte tabulky
Vystup: Po zavolani sluzby budou zmeneny hodnoty tabulky o
delce 17 byte na adrese ES:DX
Funkce 10h - Nastaveni jednoho DAC registru - pouze VGA
-------------------------------------------------------
Poznamka: Funkce nastavi 18bitovou hodnotu prislusneho
DAC registru. Jednotlive barevne slozky RGB jsou
ulozeny v registrech jako 6bitove hodnoty.
Vstup: AH = 10h Cislo sluzby
AL = 10h Cislo funkce
BX = DAC regitr (0-255)
CH = Zelena slozka
CL = Modra slozka
DH = Cervena slozka
Funkce 12h - Nastaveni bloku DAC registru - pouze VGA
-----------------------------------------------------
Poznamka: Tato funkce nastavuje 18bitovou hodnotu
nekolika DAC regsitru. V pameti musi byt ulozena
tabulka, ve ktere jsou postupne za sebou ulozeny v
bytech hodnoty pro cervenou, zelenou a modrou slozku
kazdeho z nastavovanych DAC registru. Pro jeden
registr jsou tedy potreba 3 byte pameti.
Vstup: AH = 10h Cislo sluzba
AL = 12h Cislo funkce
BX = Cislo prvniho predefinovavaneho DAC registru
(0-255)
CX = Pocet registru k predefinovani (1-256)
ES = Segment tabulky
DX = Offset prvniho byte tabulky
Funkce 13h - Vyber podmnoziny barev - pouze VGA
-----------------------------------------------
Popis: Tato funkce se sklada ze dvou podfunkci. Prvni z nich
(BL=0) nastavuje pocet podmnozin DAC pouzitelnych
v sestnactibarevnych modech - 4 skupiny po 64 barvach
nebo 16 skupin po 16 barvach. Druha (BL=1) vybira
aktivni podmnozinu.
Vstup: AH = 10h Cislo sluzby
AL = 13h Cislo funkce
BL = 00h Vyber strankovaciho rezimu
BH = 00h 4 skupiny po 64 registrech
01h 16 skupin po 16 registrech
01h Vyber aktivni podmnoziny DAC regsitru
BH = Aktivni podmnozina DAC (0-3 nebo 0-15)
Funkce 15h - Zjisteni hodnoty jednoho DAC registru - pouze VGA
--------------------------------------------------------------
Vstup: AH = 10h Cislo sluzby
AL = 15h Cislo funkce
BX = Cislo DAC registru (0-255)
Vystup: Bude v registrech obsazen po zavolani sluzby
CH = Intenzita zelene slozky
CL = Intenzita modre slozky
DH = Intenzita cervene slozky
Funkce 17h - Zjisteni hodnoty nekolika DAC registru - pouze VGA
---------------------------------------------------------------
Popis: Tato funkce cte 18bitove hodnoty nekolika DAC
registru. Program musi pro kazdy DAC registr vyhradit
3 byte pameti. Po vyvolani sluzby budou v tabulce za
sebou ulozene hodnoty intenzity cervene, zelene
a modre slozky jednotlivych DAC registru.
Vstup: AH = 10h Cislo sluzby
AL = 17h Cislo funkce
BX = Cislo prvniho DAC registru, ktery se ma cist
(0-255)
CX = Pocet registru DAC k precteni (1-256)
ES = Segment tabulky
DX = Offset prvniho byte tabulky
Funkce 18h - Nastaveni PEL maskovaciho registru - pouze VGA
-----------------------------------------------------------
Popis: Tato funkce nastavuje hodnotu PEL maskovaciho
registru (port 3c6h). Vsechny 8bitove cisla barev,
ktere maji byt zpracovany DAC, jsou nejprve pomoci
logicke operace AND s PEL maskovacim registrem
upraveny.
Poznamka: Nastavenim PEL maskovaciho registru muzete omezit
pocet pouzivanych barev. BIOS hodnotu tohoto registru
nastavuje na ffh.
Vstup: AH = 10h Cislo sluzby
AL = 18h Cislo funkce
BL = Nova hodnota PEL maskovaciho registru
Funkce 19h - Cteni PEL maskovaciho registru - pouze VGA
-------------------------------------------------------
Popis: Tato hodnota cte aktualni nastaveni PEL maskovaciho
registru (port 3c6h).
Vstup: AH = 10h Cislo sluzby
AL = 19h Cislo funkce
Vystup: Bude v registrech obsazen po zavolani sluzby
BL = Hodnota PEL maskovaciho registru
Funkce 1ah - Zjisteni nastaveni podmnoziny DAC registru - pouze VGA
-------------------------------------------------------------------
Popis: Tato funkce vraci cislo aktivni podmnoziny DAC
registru a celkovy pocet podmnozin.
Vstup: AH = 10h cislo sluzby
AL = 1ah Cislo funkce
Vystup: Bude v registrech obsazen po zavolani sluzby
BH = Cislo aktivni podmnoziny DAC registru
BL = 00h 4 podmnoziny DAC registru
01h 16 podmnozin DAC registru
Funkce 1bh - Prepocitani DAC registru na odstiny sedi - pouze VGA
-----------------------------------------------------------------
Popis: Tato funkce prepocita definovany blok DAC registru na
odpovidajici stupne sedi. Stavajici hodnoty barevnych
slozek se prepocitaji podle nasledujicich vztahu:
R = 0.299 * R
G = 0.587 * G
B = 0.114 * B
Vstup: AH = 10h Cislo sluzby
AL = 1bh Cislo funkce
BX = Cislo prvniho DAC registru k prepocitani (0-255)
CX = Pocet registru k prepocitani (1-256)
Poznamka: Pokud pouzivate mono monitor a kartu VGA, meli
byste do vaseho souboru AUTOEXEC.BAT zaradit volani
nasledujiciho programu VGAMONO. Ten prepocita barvy
na odpovidajici stupne sedi. Nestane se vam pak to,
ze nektere barvy nejsou na monitoru temer videt.
Program je mozno zkompilovat pomoci Turbo Assembleru.
Pokud ho ulozite do souboru VGAMONO.ASM, do
spustitelneho tvaru ho muzete prevest pomoci prikazu:
TASM vgamono
TLINK vgamono
Vypis programu VGAMONO.ASM:
.MODEL small ; pametovy model
.STACK 100h ; definice zasobniku
.CODE ; zacatek kodoveho segmentu
; povoleni prepocitavani na stupne sedi pri zmene modu
; sluzba 12h, funkce 33h
mov AH, 12h ; cislo sluzby
mov BL, 33h ; cislo funkce
mov AL, 00h ; povol prepocitavani na stupne sedi
int 10h ; zavolej sluzbu
; prepocitani prvnich sesnacti registru DAC na stupne sedi
; sluzba 10h, funkce 1bh
mov AX, 101bh ; cislo sluzby a funkce
xor BX, BX ; do BX nulu, prvni predefinovavany DAC
; registr bude reg. c. 0
mov CX, 10h ; predefinovat prvnich 16 registru
int 10h ; volani sluzby
; nastaveni zobrazovaciho rezimu 03h (text 80x25)
mov AX, 0003h ; cislo sluzby a modu
int 10h ; volani sluzby
; ukonceni DOS aplikace (programu VGAMONO.EXE)
mov AH, 4ch
int 21h ; DOS interrupt
END ; konec zdroj. textu
Sluzba 11h - Funkce pro praci se znakovym generatorem
=====================================================
Popis: Tato sluzba vam zpristupni praci se znakovymi sadami.
V textovych rezimech muzete pouzivat az 8 znakovych
bloku (EGA pouze 4 a EGA 64K pouze 1). Kazdy takovyto
blok obsahuje definici vsech 256 znaku a vy muzete
urcit, ktery blok bude pouzivan k zobrazovani
znaku na obrazovku. Dva bloky mohou byt pouzivany
najednou k zobrazeni 512 ruznych znaku (v grafickych
rezimech muzete pracovat pouze s 256 znaky).
Znakove sady pro graficky rezim obsazuji normalni
pamet RAM nebo ROM. Oproti tomu definice znakovych
sad pro textove rezimy jsou ulozeny v bitove rovine
2 (ve znakovych blocich). I presto musi byt po kazde
inicializaci zobrazovaciho modu znakova sada znovu
nahrana do pameti videoadapteru.
Znakova sada je v pameti ulozena jako sekvence bytu.
Jeden byte odpovida jedne radce znaku. Bity, ktere
jsou v tomto byte nastaveny na jedicku se zobrazuji
jako body na obrazovce. Kazdy znak je pak definovan
pomoci nekolika byte (nejcasteji 8, 14 nebo 16).
Definice jednotlivych znaku jsou v pameti ulozeny
sekvencne a to tak, ze prvni byte definice odpovida
horni radce znaku s ASCII kodem 0 a posledni byte
znakove sady odpovida spodni radce znaku s ASCII
kodem 255. V textovych rezimech nemusi byt definovano
vsech 256 znaku, staci nadefinovat nejakou souvislou
cast znakove sady. V grafickem rezimu musi byt
definovano vsech 256 znaku.
V definici znaku jsou bity s nejvyssi vahou
zobrazovany nejvice vlevo. Definice znaku "A" pro
znakovou matici 8x8 muze tedy vypadat nasledovne:
db 00000000b ........
db 00011000b ...**...
db 01100110b .**..**.
db 01100110b .**..**.
db 01100110b .**..**.
db 01111110b .******.
db 01100110b .**..**.
db 01100110b .**..**.
Poznamka: Znakova sada bude nastavena do svoji puvodni
podoby po kazde inicializaci zobrazovaciho rezimu.
Pokud definujete vlastni znakovou sadu, musite ji
znovu nadefinovat po kazde inicializaci modu nebo
muzete zmenit prislusne udaje v ukladaci oblasti
BIOS. Pokud pouzivate 512 znaku, je po inicializaci
modu nastavena 256znakova sada. To muzete opet obejit
pomoci parametricke tabulky, na kterou ukazuje BIOS
SAVE_PTR.
Funkce 00h - Nacteni uzivatelem definovane znakove sady
-------------------------------------------------------
Popis: Tato funkce nahradi implicitni znakovou sadu (nebo
jeji cast) v nekterem ze znakovych bloku uzivatelem
definovanou znakovou sadou.
Poznamka: Tato funkce inicializuje zobrazovaci mod.
Vstup: AH = 11h Cislo sluzby
AL = 00h Cislo funkce
BL = Cislo znakoveho bloku k predefinovani (0-7, EGA 0-3)
BH = Pocet byte na jeden znak (nejcasteji 8, 14, 16)
CX = Pocet definovanych znaku
DX = ASCII kod prvniho znaku v uzivatelem definovane
znakove tabulce
ES = Segment, ve kterem je uzivatelem definovana
znakova sada
BP = Offset uzivatelovy znakove sady
Funkce 01h - Nahrani 14radkoveho ROM fontu do zn. bloku
-------------------------------------------------------
Popis: Tato funkce nahraje definici znakove sady 8x14 do
nektereho ze znakovych bloku.
Poznamka: Tato funkce inicializuje zobrazovaci mod.
Vstup: AH = 11h Cislo sluzby
AL = 01h Cislo funkce
BL = Cislo znakoveho bloku kam se ma nacist ROM font
8x14 (0-7, EGA 0-3)
Funkce 02h - Nahrani 8radkoveho ROM fontu do zn. bloku
------------------------------------------------------
Popis: Tato funkce nacte definici znakove sady 8x8 do
nektereho ze znakovych bloku.
Poznamka: Tato funkce inicializuje zobrazovaci mod.
Vstup: AH = 11h Cislo sluzby
AL = 02h Cislo funkce
BL = Cislo znakoveho bloku kam se ma nacist ROM font
8x8 (0-7, EGA 0-3)
Funkce 03h - Nastaveni znakove sady pro 512 znaku
-------------------------------------------------
Popis: Tato funkce vytvori v textovych rezimech znakovou
sadu s 512 znaky. Zmeni vyznam bitu 3 atributu
- misto intenzity barvy bude vybirat ze dvou
znakovych bloku (kazdy po 256 znacich).
Vstup: AH = 11h Cislo sluzby
AL = 03h Cislo funkce
BL = bity 0,1,4 - pouzivany znakovy blok, pokud je
bit 3 atributu = 0
bity 2,3,5 - pouzivany znakovy blok, pokud je
bit 3 atributu = 1
Poznamka: Bity 4 a 5 pouziva pouze VGA, ktera ma k dispozici
8 znakovych bloku.
Funkce 04 - Nahrani 16radkoveho ROM fontu do zn. bloku - pouze VGA
------------------------------------------------------------------
Popis: Tato funkce nahraje definici znakove sady 8x16 do
nektereho ze znakovych bloku.
Poznamka: Tato funkce inicializuje zobrazovaci mod.
Vstup: AH = 11h Cislo sluzby
AL = 04h Cislo funkce
BL = Cislo znakoveho bloku kam se ma nacist ROM font
8x16 (0-7)
Nasledujici 4 funkce (10h, 11h, 12h, 14h) jsou velmi podobne
funkcim (00h, 01h, 02h a 04h). Je tu vsak nekolik rozdilu.
Tyto funkce museji byt volany ihned po nastaveni
zobrazovaciho modu, aktivni zobrazovaci stranka musi byt 0.
Funkce dale prepocita pocet byte na znak, pocet radku na
obrazovce a delku zobrazovaciho bufferu. Zmeni take
nasledujici CRTC registry:
/------------------------------------------------------------\
| Registr | Novy obsah | Vyznam |
|----------+-----------------------------+-------------------|
| 09h1 | pocet byte na znak - 1 | max. scan radka |
|----------+-----------------------------+-------------------|
| 0ah | pocet byte na znak - 2 | zacatek kurzoru |
|----------+-----------------------------+-------------------|
| 0bh | 0 | konec kurzoru |
|----------+-----------------------------+-------------------|
| 12h | (pocet radku + 1) * | vertikalni konec |
| | * (pocet byte na znak) - 1 | obrazovky |
|----------+-----------------------------+-------------------|
| 14h2 | pocet byte na znak | pozice podtrzeni |
\------------------------------------------------------------/
1) Tento registr je prepocitavan pouze pro mod 07h
2) Toto je chyba v EGA/VGA BIOS. Mela by zde byt
hodnota o 1 nizsi. Pri tomto nastaveni nebude
podtrzeni (pokud je to nastaveno pomoci atributu)
viditelne.
Funkce 10h - Nacteni uzivatelem definovane znakove sady
-------------------------------------------------------
Popis: Tato funkce nahradi implicitni znakovou sadu (nebo
jeji cast) v nekterem ze znakovych bloku uzivatelem
definovanou znakovou sadou.
Vstup: AH = 11h Cislo sluzby
AL = 10h Cislo funkce
BL = Cislo znakoveho bloku k predefinovani (0-7, EGA 0-3)
BH = Pocet byte na jeden znak (nejcasteji 8, 14, 16)
CX = Pocet definovanych znaku
DX = ASCII kod prvniho znaku v uzivatelem definovane
znakove tabulce
ES = Segment, ve kterem je uzivatelem definovana
znakova sada
BP = Offset uzivatelovy znakove sady
Funkce 11h - Nahrani 14radkoveho ROM fontu do zn. bloku
-------------------------------------------------------
Popis: Tato funkce nahraje definici znakove sady 8x14 do
nektereho ze znakovych bloku.
Vstup: AH = 11h Cislo sluzby
AL = 11h Cislo funkce
BL = Cislo znakoveho bloku kam se ma nacist ROM font
8x14 (0-7, EGA 0-3)
Funkce 12h - Nahrani 8radkoveho ROM fontu do zn. bloku
------------------------------------------------------
Popis: Tato funkce nacte definici znakove sady 8x8 do
nektereho ze znakovych bloku.
Vstup: AH = 11h Cislo sluzby
AL = 12h Cislo funkce
BL = Cislo znakoveho bloku kam se ma nacist ROM font
8x8 (0-7, EGA 0-3)
Funkce 14 - Nahrani 16radkoveho ROM fontu do zn. bloku - pouze VGA
------------------------------------------------------------------
Popis: Tato funkce nahraje definici znakove sady 8x16 do
nektereho ze znakovych bloku.
Vstup: AH = 11h Cislo sluzby
AL = 14h Cislo funkce
BL = Cislo znakoveho bloku kam se ma nacist ROM font
8x16 (0-7)
Nasledujici funkce by mely byt pouzivany ihned po
inicializaci grafickych rezimu (predchozi funkce pracovaly
pouze v textovych rezimech).
Funkce 20h - Nastav uzivatelsky font 8x8 v grafice
--------------------------------------------------
Popis: Tato funkce nastavi INT 1fh tak, aby ukazoval na
znakovou sadu 8x8 na znaky s ASCII kody 128-255.
Pouziva se prevazne v kompatibilnich rezimech.
Nastavi INT 1fh na hodnotu ulozenou ES:BP.
Vstup: AH = 11h Cislo sluzby
AL = 20h Cislo funkce
ES = Segment obsahujici definovanou znakovou sadu
BP = Offset znakove sady
Function 21h - Nastaveni uzivatelskeho fontu pro graficke rezimy
----------------------------------------------------------------
Popis: Tato funkce nastavi INT 43h na uzivatelskou znakovou
sadu.
Vstup: AH = 11h Cislo sluzby
AL = 21h Cislo funkce
BL = Pocet radku na obrazovce
0 - uzivatelem definovano (v registru DL)
1 - 14 radek
2 - 25 radek
3 - 43 radek
CX = Pocet byte na znak
ES = Segment obsahujici uzivatelskou znakovou sadu
BP = Offset uzivatelske znakove sady
Funkce 22h - Nastavi ROM font 8x14 pro grafiku
----------------------------------------------
Popis: Tato funkce nastavi INT 43h na znakovou sadu 8x14
v ROM.
Vstup: AH = 11h Cislo sluzby
AL = 22h Cislo funkce
BL = Pocet radku na obrazovce
0 - uzivatelem definovano (v registru DL)
1 - 14 radek
2 - 25 radek
3 - 43 radek
Funkce 23h - Nastavi ROM font 8x8 pro grafiku
---------------------------------------------
Popis: Tato funkce nastavi INT 43h na znakovou sadu 8x8 v
ROM.
Vstup: AH = 11h Cislo sluzby
AL = 23h Cislo funkce
BL = Pocet radku na obrazovce
0 - uzivatelem definovano (v registru DL)
1 - 14 radek
2 - 25 radek
3 - 43 radek
Funkce 24h - Nastavi ROM font 8x16 pro grafiku
----------------------------------------------
Popis: Tato funkce nastavi INT 43h na znakovou sadu 8x16 v
ROM.
Vstup: AH = 11h Cislo sluzby
AL = 24h Cislo funkce
BL = Pocet radku na obrazovce
0 - uzivatelem definovano (v registru DL)
1 - 14 radek
2 - 25 radek
3 - 43 radek
Funkce 30h - Zjistuje informace o fontu
---------------------------------------
Popis: Tato funkce vraci informace o pozadovanem fontu
(znakove sade).
Poznamka: Fonty 9x14 a 9x16 jsou az na definice nekterych
znaku shodne s fonty 8x14 a 8x16. Pouze u grafickych
symbolu (ramecky a blokove znaky) je osmy bod
kopirovan na pozici devateho, aby ramecky nebyly
prerusovane. U ostatnich znaku zustava misto
devateho bodu vzdy volne.
Vstup: AH = 11h Cislo sluzby
AL = 30h Cislo funkce
BH = 00h Zjisti pointer na INT 1fh font
01h Zjisti pointer na INT 43h font
02h Zjisti pointer na ROM 8x14 font
03h Zjisti pointer na ROM 8x8 font
04h Zjisti pointer na ROM 8x8 font (hornich 128
znaku)
05h Zjisti pointer na ROM 9x14 font
06h Zjisti pointer na ROM 8x16 font
07h Zjisti pointer na ROM 9x16 font
Vystup: CX = Pocet byte na znak fontu, ktery je na obrazovce
(ne toho, na ktery se dotazujeme)
DL = Pocet radku na obrazovce - 1 (VGA)
Pocet radku na obrazovce (EGA)
ES = Segment ulozeni pozadovaneho fontu
BP = Offset ulozeni pozadovaneho fontu
Sluzba 12h - Alternativni vyber
===============================
Popis: Tato sluzba obasahuje funkce, ktere zjistuji aktualni
nastaveni adapteru a mohou instalovat novou rutinu
pro obsluhu stisknuti klavesy PrtScr. Na adapterech
VGA pak obsahuje jeste nekolik doplnkovych funkci.
Vstup: AH = 12h Cislo sluzby
Funkce 10h - Zjisteni informace o EGA
-------------------------------------
Popis: Zjisti aktualni konfiguraci graficke karty VGA nebo
EGA. O VGA vsak nezjisti vsechny udaje, pouze ty,
ktera ma VGA spolecne s EGA.
Vstup: AH = 12h Cislo sluzby
BL = 10h Cislo funkce
Vystup: BH = 0 - aktivni je barevny mod (registry adapteru
jsou na portech 3d?h)
1 - aktivni je monochromaticky mod (registry
adapteru jsou na portech 3b?h)
BL = Velikost instalovane pameti na videokarte
0 = 64K
1 = 128K
2 = 192K
3 = 256K
CH = Obsahuje kopii Feature Control registru
CL = Nastaveni switchu na karte EGA
(1 = OFF, 0 = ON)
bit 0 - switch 1
bit 1 - switch 2
bit 2 - switch 3
bit 3 - switch 4
Funkce 20h - Vyber alternativni rutinu pro tisk obrazovky
---------------------------------------------------------
Popis: Volani teto funkce nahradi rutinu pro tisk obrazovky
z ROM BIOS rutinou z EGA/VGA BIOS, ktera zvlada tisk
i pro zobrazovaci rezimy s vice nez 25 radky.
Vstup: AH = 12h Cislo sluzby
BL = 20h Cislo funkce
Funkce 30h - Nastaveni vertikalniho rozliseni - pouze VGA
---------------------------------------------------------
Popis: Tato funkce nastavi vertikalni rozliseni pro
textovy rezim, ktery bude inicializovan. Tato funkce
umoznuje i na lepsich grafickych adapterech,
dosahnout stejne kvality rozliseni jako na tech
starsich. CGA pouziva 200 radek, MDA a EGA 350 a
konecne VGA 400 radek.
Vstup: AH = 12h Cislo sluzby
BL = 30h Cislo funkce
AL = 0 - 200 radek
1 - 350 radek
2 - 400 radek
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 12h Pokud je funkce podporovana adapterem a
byla uspesne provedena.
Funkce 31h - Zapnuti/vypnuti nahrani palety - pouze VGA
-------------------------------------------------------
Popis: Tato funkce umoznuje zvolit, zda pri inicializaci
zobrazovaciho rezimu bude nahrana standardni paleta a
nebo se v cinnosti ponecha aktualni paleta. Na
kartach EGA je aktualni paleta vzdy prepsana
standardni paletou.
Vstup: AH = 12h Cislo sluzby
BL = 31h Cislo funkce
AL = 0 - Povol prepisovani aktualni palety
1 - Zachovavej aktualni paletu
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 12h Pokud je funkce podporovana adapterem a
byla uspesne provedena.
Funkce 32h - Zapnuti/vypnuti pristupu do videopameti - pouze VGA
----------------------------------------------------------------
Popis: Tato funkce povoluje a zakazuje pristup do
videopameti a k registrum videoadapteru. Pokud se
pristup do pameti zakaze, vzhled obrazovky ani obsah
videopameti se nezmeni, ale zapisy a cteni do
videopameti budou ignorovany do te doby, nez se
zapis povoli.
Vstup: AH = 12h Cislo sluzby
BL = 32h Cislo funkce
AL = 0 - povol zapis
1 - zakaz zapis
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 12h Pokud je funkce podporovana adapterem a
byla uspesne provedena.
Funkce 33h - Zapnuti/vypnuti prepocitavani na stupne sedi - pouze VGA
---------------------------------------------------------------------
Popis: Tato funkce povoluje a zakazuje prepocitavani barev
na odstiny sedi po inicializaci zobrazovaciho modu a
po zmene registru palety. Stavajici hodnoty barevnych
slozek budou urceny nasledujicimi vztahy:
R = 0.299 * R
G = 0.587 * G
B = 0.114 * B
Vstup: AH = 12h Cislo sluzby
BL = 33h Cislo funkce
AL = 0 - povol prepocitavani na stupne sedi
1 - zakaz prepocitavani na stupne sedi
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 12h Pokud je funkce podporovana adapterem a
byla uspesne provedena.
Funkce 34h - Zapnuti/vypnuti emulace kurzoru - pouze VGA
--------------------------------------------------------
Popis: Tato funkce povoluje a zakazuje emulaci textoveho
kurzoru. Pokud je emulace zapnuta, je informace o
zacatku a konci kurzoru prepocitana z puvodniho
rozsahu CGA 8 radku na znak na aktualni pocet radku
na znak. Pokud je emulace vypnuta, hodnoty se
neprepocitavaji a bez uprav se pouziji pro velikost
kurzoru.
Vstup: AH = 12h Cislo sluzby
BL = 34h Cislo funkce
AL = 0 - povol emulaci kurzoru
1 - zakaz emulaci kurzoru
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 12h Pokud je funkce podporovana adapterem a
byla uspesne provedena.
Funkce 35h - Prepinani monitoru - pouze VGA
-------------------------------------------
Popis: Tato funkce prepina mezi adapterem umistenym na desce
pocitace a externim, pokud mohou nastat nejake
problemy s adresovanim nebo pristupem k portum. Pokud
jsou v pocitaci dva adaptery, externi je pouzit jako
defaultni adapter.
Pri prvni zmene adpteru se musi volat dve funkce po
sobe (AL=0 a AL=1). Pro dalsi prepinani se pouzivaji
opet dve volani. Nejprve AL=2, k vypnuti aktivniho
adapteru a pote AL=3, k zapnuti neaktivniho adapteru.
Program musi v pameti vyhradit dva 128 byte dlouhe
buffery pro ukladani stavovych informaci adapteru.
Vstup: AH = 12h Cislo sluzby
BL = 35h Cislo funkce
AL = 0 - Prvni vypnuti externiho adapteru
ES:DX - ukazatel na 128 byte dlouhy buffer
pro ulozeni stavovych informaci adapteru
1 - Prvni zapnuti graficke karty na desce
2 - Vypni aktivni adapter
ES:DX - ukazatel na 128 byte dlouhy buffer
pro ulozeni stavovych informaci adapteru
3 - Zapni neaktivni adapter
ES:DX - ukazatel na 128 byte dlouhy buffer
s drive ulozenymi stavovymi informacemi
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 12h Pokud je funkce podporovana adapterem a
byla uspesne provedena.
Funkce 36h - Zapnuti/vypnuti obrazovky - pouze VGA
--------------------------------------------------
Popis: Tato funkce zapina a vypina obrazovku. Muze byt
pouzita napriklad jako jednoduchy setric obrazovky
(screen saver). Nebo muzete vypnout obrazovku,
vykreslit nejaky slozitejsi obrazek. Pak obrazovku
zapnout a obrazek se objevi cely najednou bez
pomaleho vykreslovani.
Vstup: AH = 12h Cislo sluzby
BL = 36h Cislo funkce
AL = 0 - Zapnuti obrazovky (normalne)
1 - Vypnuti obrazovky
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 12h Pokud je funkce podporovana adapterem a
byla uspesne provedena.
Sluzba 13h - Vypsani znakoveho retezce na obrazovku
===================================================
Popis: Tato sluzba zobrazi retezec znaku v pameti na
obrazovku. Jsou dve moznosti: retezec v pameti
obsahuje pouze znaky, jejich atribut bude urcen
registrem BL. Druhou moznosti je, ulozit do pameti
posloupnost znak, atribut, znak, atribut... Kazdy
znak pak ma definovan svuj vlastni atribut. Muzete
take urcit zda se ma kurzor presunout na konec
vypisovaneho retezce nebo jestli ma zustat na sve
puvodni pozici.
Tato sluzba je podobna sluzbe 0eh. Ridici znaky jako
07h bell, 0dh CR, 0ah LF, 08h BS nejsou zobrazovany
jako znaky, ale je provedena jim odpovidajici cinnost
(pipnuti, presun kurzoru na zacatek radky, posun
kurzoru o radek dolu a smazani posledniho znaku).
Vstup: AH = 13h Cislo sluzby
AL = bit 0 = 0 - kurzor neni presouvan
= 1 - kurzor je presunut na konec retezce
bit 1 = 0 - retezec obsahuje pouze znaky
1 - retezec obsahuje i atributy
BL = Atribut znaku retezce (Pokud bit 1 registru AL
je 0)
BH = Cislo obrazove stranky (viz. sluzba 05h)
CX = Pocet znaku (nezapocitavaji se atributy)
DX = Souradnice prvniho znaku
DH - Radka
DL - Sloupec
ES = Segment retezce k vypsani
BP = Offset retezce k vypsani
Sluzba 1ah - Cteni/zapis kombinace monitoru - pouze VGA
=======================================================
Popis: Tato umoznuje zjistit a nastavit kody, ktere urcuji
typ primarniho a sekundarniho displeje.
Vstup: AH = 1ah Cislo sluzby
Tabulka kodu kombinaci monitoru:
/---------------------------------------\
|Kod | Druh monitoru |
|----+----------------------------------|
|00h | Monitor neni pripojen |
|01h | MDA |
|02h | CGA |
|04h | EGA s barevnym monitorem |
|05h | EGA s monochromatickym monitorem |
|06h | PGC |
|07h | VGA s monochromatickym monitorem |
|08h | VGA s barevnym monitorem |
|0ah | MCGA s digitalnim monitorem |
|0bh | MCGA s monochromatickym monitorem|
|0ch | MCGA s barevnym monitorem |
|ffh | Neznamy typ monitoru |
\---------------------------------------/
Funkce 00h - Cteni kombinace monitoru - pouze VGA
-------------------------------------------------
Popis: Zjisti aktualni konfiguraci monitoru.
Vstup: AH = 1ah Cislo sluzby
AL = 00h Cislo funkce
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 1ah Volani funkce probehlo uspesne
BH = Kod sekundarniho displeje
BL = Kod aktivniho displeje
Funkce 01h - Nastaveni kombinace monitoru - pouze VGA
-----------------------------------------------------
Popis: Nastavi aktualni konfiguraci monitoru.
Vstup: AH = 1ah Cislo sluzby
AL = 01h Cislo funkce
BH = Kod sekundarniho displeje
BL = Kod aktivniho displeje
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 1ah Volani funkce probehlo uspesne
Sluzba 1bh - Zjisteni stavovych informaci - pouze VGA
=====================================================
Popis: Tato sluzba zjisti informace o aktualnim nastaveni
grafickeho adapteru. Pred volanim teto sluzby musite
v pameti vyhradit 64 byte pro ulozeni informaci.
Vstup: AH = 1bh Cislo sluzby
BX = Typ implementace (musi byt 0)
ES = Segment, ve kterem je vymezenych 64 byte pameti
DI = Offset 1. byte vymezene pameti
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 1bh Volani funkce probehlo uspesne
Format tabulky na adrese ES:DI (delka 64 byte):
/-----------------------------------------------------------\
|Offset | Velikost | Popis |
|-------+----------+----------------------------------------|
| 00h | 1 word | Offset staticke tabulky rezimu |
|-------+----------+----------------------------------------|
| 02h | 1 word | Segment staticke tabulky rezimu |
|-------+----------+----------------------------------------|
| 04h | 1 byte | Cislo aktualniho zobrazovaciho rezimu |
|-------+----------+----------------------------------------|
| 05h | 1 word | Pocet zobrazitelnych textovych sloupcu |
|-------+----------+----------------------------------------|
| 07h | 1 word | Velikost zabrazovane pameti video |
| | | adapteru |
|-------+----------+----------------------------------------|
| 09h | 1 word | Pocatecni adresa videopameti |
|-------+----------+----------------------------------------|
| 0bh | 1 word | Pozice kurzoru v zobrazovaci strance 0 |
| | | (Vyssi byte - radka, |
| | | nizzsi byte - sloupec) |
|-------+----------+----------------------------------------|
| 0dh | 1 word | Pozice kurzoru v zobrazovaci strance 1 |
|-------+----------+----------------------------------------|
| 0fh | 1 word | Pozice kurzoru v zobrazovaci strance 2 |
|-------+----------+----------------------------------------|
| 11h | 1 word | Pozice kurzoru v zobrazovaci strance 3 |
|-------+----------+----------------------------------------|
| 13h | 1 word | Pozice kurzoru v zobrazovaci strance 4 |
|-------+----------+----------------------------------------|
| 15h | 1 word | Pozice kurzoru v zobrazovaci strance 5 |
|-------+----------+----------------------------------------|
| 17h | 1 word | Pozice kurzoru v zobrazovaci strance 6 |
|-------+----------+----------------------------------------|
| 19h | 1 word | Pozice kurzoru v zobrazovaci strance 7 |
|-------+----------+----------------------------------------|
| 1bh | 1 byte | Pocatecni radka kurzoru |
|-------+----------+----------------------------------------|
| 1ch | 1 byte | Koncova radka kurzoru |
|-------+----------+----------------------------------------|
| 1dh | 1 byte | Aktivni zobrazovaci stranka |
|-------+----------+----------------------------------------|
| 1eh | 1 word | Adresa portu, na kterych jsou mapovany |
| | | CRTC registry |
|-------+----------+----------------------------------------|
| 20h | 1 byte | Hodnota registru 3?8h |
|-------+----------+----------------------------------------|
| 21h | 1 byte | Hodnota registru 3?9h |
|-------+----------+----------------------------------------|
| 22h | 1 byte | Pocet zobrazitelnych textovych radek |
|-------+----------+----------------------------------------|
| 23h | 1 byte | Vyska znaku v pixelech (pocet byte na |
| | | znak) |
|-------+----------+----------------------------------------|
| 25h | 1 byte | Kod primarniho displeje |
| | | (viz. tabulka kodu kombinaci monitoru) |
|-------+----------+----------------------------------------|
| 26h | 1 byte | Kod sekundarniho displeje |
| | | (viz. tabulka kodu kombinaci monitoru) |
|-------+----------+----------------------------------------|
| 27h | 1 word | Pocet barev zobrazitelnych v aktualnim |
| | | zobrazovacim rezimu |
|-------+----------+----------------------------------------|
| 29h | 1 byte | Pocet dostupnych zobrazovacich stranek |
| | | v aktualnim zobrazovacim rezimu |
|-------+----------+----------------------------------------|
| 2ah | 1 byte | Pocet rastrovych radek na obrazovce: |
| | | 0 - 200 radek |
| | | 1 - 350 radek |
| | | 2 - 400 radek |
| | | 3 - 480 radek |
|-------+----------+----------------------------------------|
| 2bh | 1 byte | Cislo primarniho znakoveho bloku |
|-------+----------+----------------------------------------|
| 2ch | 1 byte | Cislo sekundarniho znakoveho bloku |
|-------+----------+----------------------------------------|
| 2dh | 1 byte | Informace o obrazovem systemu: |
| | | Bit Popis (kdyz bit = 1) |
| | | --- ---------------------------------|
| | | 0 Podporuje vsechny mody |
| | | 1 Barvy jsou prepocitavany na |
| | | odstiny sedi |
| | | 2 Pripojen je monochromaticky |
| | | monitor |
| | | 3 Neni nahravana standardni paleta |
| | | 4 Emulace CGA kurzoru |
| | | 5 1 = blikani, 0 = intenzita barvy |
| | | pozadi |
| | | 6-7 Vyhrazeno |
|-------+----------+----------------------------------------|
| 2eh | 3 byte | Vyhrazeno |
|-------+----------+----------------------------------------|
| 31h | 1 byte | Velikost dostupne videopameti |
| | | 0 - 64K |
| | | 1 - 128K |
| | | 2 - 192K |
| | | 3 - 256K |
|-------+----------+----------------------------------------|
| 32h | 1 byte | Doplnkove informace o zobrazovaci |
| | | Bit Popis (kdyz bit = 1) |
| | | --- ---------------------------------|
| | | 0 Je pouzivana 512znakova sada |
| | | 1 Je pouzivana oblast pro ulozeni |
| | | palety |
| | | 2 Je pouzivana uzivatelem |
| | | definovana znakova sada |
| | | 3 V grafickem rezimu je pouzivana |
| | | uzivatelem definovana znakova |
| | | sada |
| | | 4 Je pouzivana uzivatelem |
| | | definovana paleta |
| | | 5 Je pouzivana podpora |
| | | dvou-monitoroveho systemu |
| | | 6-7 Rezervovano |
|-------+----------+----------------------------------------|
| 33h | 13 byte | Rezervovano |
\-----------------------------------------------------------/
Format staticke tabulky rezimu (delka 16 byte):
/-----------------------------------------------------------\
|Offset | Velikost| Popis |
|-------+---------+-----------------------------------------|
| 00h | 1 byte | Podporovane videomody |
| | | bit 0 = 1 Mod 0 je podporovan |
| | | bit 1 = 1 Mod 1 je podporovan |
| | | bit 2 = 1 Mod 2 je podporovan |
| | | bit 3 = 1 Mod 3 je podporovan |
| | | bit 4 = 1 Mod 4 je podporovan |
| | | bit 5 = 1 Mod 5 je podporovan |
| | | bit 6 = 1 Mod 6 je podporovan |
| | | bit 7 = 1 Mod 7 je podporovan |
|-------+---------+-----------------------------------------|
| 01h | 1 byte | Podporovane videomody |
| | | bit 0 = 1 Mod 8 je podporovan |
| | | bit 1 = 1 Mod 9 je podporovan |
| | | bit 2 = 1 Mod 0ah je podporovan |
| | | bit 3 = 1 Mod 0bh je podporovan |
| | | bit 4 = 1 Mod 0ch je podporovan |
| | | bit 5 = 1 Mod 0dh je podporovan |
| | | bit 6 = 1 Mod 0eh je podporovan |
| | | bit 7 = 1 Mod 0fh je podporovan |
|-------+---------+-----------------------------------------|
| 02h | 1 byte | Podporovane videomody |
| | | bit 0 = 1 Mod 10h je podporovan |
| | | bit 1 = 1 Mod 11h je podporovan |
| | | bit 2 = 1 Mod 12h je podporovan |
| | | bit 3 = 1 Mod 13h je podporovan |
|-------+---------+-----------------------------------------|
| 03h | 4 byte | Rezervovano |
|-------+---------+-----------------------------------------|
| 07h | 1 byte | Pocet rastrovych radek v textovych |
| | | rezimech: bit 0 = 1 - 200 radek |
| | | bit 1 = 1 - 350 radek |
| | | bit 2 = 1 - 400 radek |
|-------+---------+-----------------------------------------|
| 08h | 1 byte | Celkovy pocet znakovych bloku v |
| | | textovych rezimech |
|-------+---------+-----------------------------------------|
| 09h | 1 byte | Maximalni pocet najednou pouzivanych |
| | | znakovych bloku v textovych rezimech |
|-------+---------+-----------------------------------------|
| 0ah | 1 byte | Doplnkove informace |
| | | Bit Popis (kdyz bit = 1) |
| | | --- ---------------------------------|
| | | 0 Lze pouzivat vsechny zobr. mody |
| | | 1 Je podporovano prepocitavani |
| | | barev na odstiny sedi |
| | | 2 Je podporovana uzivatelem |
| | | definovana znakova sada |
| | | 3 Je podporovana uzivatelem |
| | | definovana paleta |
| | | 4 Je podporovana emulace CGA |
| | | kurzoru |
| | | 5 Jsou pritomny registry palety EGA|
| | | 6 Jsou pritomny registry palety DAC|
| | | 7 Je podporovano nekolik sad DAC |
| | | registru |
|-------+---------+-----------------------------------------|
| 0bh | 1 byte | Doplnkove informace |
| | | Bit Popis (kdyz bit = 1) |
| | | --- ---------------------------------|
| | | 0 Podpora svetelneho pera |
| | | 1 Podpora sluzby 1ch |
| | | 2 Podpora volby mezi intenzitou |
| | | pozadi a blikanim |
| | | 3 Je podporovan kod kombinace |
| | | monitoru |
| | | 4-7 Rezervovano |
|-------+---------+-----------------------------------------|
| 0ch | 1 word | Rezervovano |
|-------+---------+-----------------------------------------|
| 0eh | 1 byte | Priznaky uchovavani nastaveni |
| | | Bit Popis (kdyz bit = 1) |
| | | --- ---------------------------------|
| | | 0 Uchovava se 512znakova sada |
| | | 1 Uchovava se aktualni paleta |
| | | 2 Uzivatelem definovana zn. sada |
| | | 3 Uzivatelem definovana zn. sada v |
| | | grafickych rezimech |
| | | 4 Uzivatelem definovana paleta |
| | | 5 Podpora dvou-monitoroveho systemu|
| | | 6-7 Rezervovano |
|-------+---------+-----------------------------------------|
| 0fh | 1 byte | Rezervovano |
\-----------------------------------------------------------/
Sluzba 1ch - Ulozeni/obnoveni aktualniho nastaveni adapteru - pouze VGA
=======================================================================
Popis: Tato sluzba uklada a opet obnovuje nastaveni
grafickeho adapteru a aktualniho zobrazovaciho rezimu
(BIOS oblast, registry adapteru, registry palety).
Program musi v pameti vyhradit misto pro ulozeni
informaci. Pozadovanou velikost bufferu vraci funkce
00h.
Poznamka: Registr CX definuje co se bude ukladat. Kazdy bit
definuje jednu cast k ukladani. Pro ulozeni vsech tri
skupin informaci pouzijte CX = 7.
Funkce 00h - Zjisteni velikosti bufferu - pouze VGA
---------------------------------------------------
Vstup: AH = 1ch Cislo sluzby
AL = 00h Cislo funkce
CX = Urceni informaci k ulozeni/nastaveni
(pokud se bit = 1, s informaci se pracuje)
Bit 0 - registry grafickeho adapteru
Bit 1 - datova oblast BIOS
Bit 2 - registry palety a DAC registry
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 1ch Funkce je podporovana
BX = Velikost bufferu (v 64 byte slouhych blocich)
Funkce 01h - Ulozeni nastaveni - pouze VGA
------------------------------------------
Vstup: AH = 1ch Cislo sluzby
AL = 01h Cislo funkce
ES = Segment ukladaci oblasti (bufferu)
BX = Offset ukladaci oblasti (bufferu)
CX = Urceni informaci k ulozeni/nastaveni
(pokud se bit = 1, s informaci se pracuje)
Bit 0 - registry grafickeho adapteru
Bit 1 - datova oblast BIOS
Bit 2 - registry palety a DAC registry
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 1ch Funkce je podporovana
Funkce 02h - Obnoveni nastaveni - pouze VGA
-------------------------------------------
Vstup: AH = 1ch Cislo sluzby
AL = 02h Cislo funkce
ES = Segment ukladaci oblasti (bufferu)
BX = Offset ukladaci oblasti (bufferu)
CX = Urceni informaci k ulozeni/nastaveni
(pokud se bit = 1, s informaci se pracuje)
Bit 0 - registry grafickeho adapteru
Bit 1 - datova oblast BIOS
Bit 2 - registry palety a DAC registry
Vystup: Bude v registrech obsazen po zavolani sluzby
AL = 1ch Funkce je podporovana
Copyright © Jiri Kosek