RozÜφ°enφ VESA BIOS
S tφm jak vzr∙staly po₧adavky na kvalitu zobrazovan²ch
informacφ, se zdokonalovaly grafickΘ adaptΘry. TΘm∞° ka₧d²
v²robce grafickΘho hardware vyrßb∞l sv∙j vlastnφ adaptΘr
Super VGA, kter² poskytoval v∞tÜφ rozliÜenφ a v∞tÜφ poΦet
barev ne₧ standardnφ VGA. DoÜlo tedy k situaci, kdy co
v²robce to jinß organizace pam∞ti, jinΘ zobrazovacφ m≤dy,
jinß struktura registr∙ grafickΘ karty. V²sledkem byla
naprostß nekompatibilita t∞chto karet v m≤dech s vyÜÜφm
rozliÜenφm, ne₧ je definovßno standardem VGA. V roce 1989
tedy vznikl standard VESA verze 1.0, kter² stanovil Üest
volßnφ VESA BIOS. Tato volßnφ slou₧φ k zjiÜt∞nφ informacφ,
kterΘ jsou pot°ebnΘ p°i pou₧itφ m≤d∙ s vyÜÜφm rozliÜenφm.
Pozd∞ji jeÜt∞ p°ibyly dv∞ volßnφ ve verzi 1.1 a jedno ve
verzi 1.2. Samoz°ejm∞ pokud budete pou₧φvat pouze volßnφ
z verze 1.0, budou vaÜe programy pracovat i na vÜech vyÜÜφch
verzφ (VESA BIOS tedy zachovßvß zp∞tnou kompatibilitu).
V souΦasnΘ dob∞ vzr∙stß poΦet grafick²ch adaptΘr∙,
kterΘ majφ v pam∞ti ROM umφst∞n VESA BIOS spoleΦn∞ s VGA
BIOS. N∞kte°φ v²robci dodßvajφ rozÜφ°enφ o VESA ve form∞
rezidentnφho programu, kter² obslou₧φ p°φsluÜnΘ po₧adavky na
volßnφ VESA BIOS. Tento program pracuje tak, ₧e po svΘm
zavedenφ na sebe p°esm∞ruje INT 10h. Pokud je pak vyvolßn
INT 10h, tento ovladaΦ zkontroluje zda jde o volßnφ VESA.
Pokud ne, postoupφ zpracovßnφ interruptu jeho p∙vodnφ
obsluze (tj. zavolß BIOS). Pokud jde o volßnφ VESA,
rezidentnφ program sßm provede po₧adovanou Φinnost.
Pokud budete chtφt pou₧φvat VESA VGA zobrazovacφ m≤dy
ve sv²ch programech, m∞li byste nejprve zkontrolovat
p°φtomnost VESA BIOS. K tomu slou₧φ slu₧ba 4f00h. V
assembleru by volßnφ tΘto slu₧by mohlo vypadat nßsledovn∞:
mov AX, InfoSegment
mov ES, AX
mov DI, InfoOffset
mov AX, 4f00h
int 10h
Po zavolßnφ ka₧dΘ VESA slu₧by obdr₧φte v registru AX
nßvratov² k≤d. Pokud je tento nßvratov² k≤d 0045h, prob∞hlo
volßnφ slu₧by v po°ßdku a vßÜ adaptΘr podporuje VESA.
Slu₧ba 4f00h - ZjiÜt∞nφ informacφ o VESA Super VGA m≤dech
=========================================================
Popis: Tato slu₧ba zjiÜ¥uje p°φtomnost grafickΘ karty
podporujφcφ VESA. ZjiÜ¥uje informace o grafickΘ
kart∞, kterΘ jsou specifickΘ u ka₧dΘho v²robce.
Podrobn∞jÜφ informace o jednotliv²ch grafick²ch
m≤dech m∙₧ete zjistit pomocφ slu₧by 4501h.
P°ed volßnφm tΘto slu₧by musφte v pam∞ti vyhradit 256
byte dlouh² blok pro ulo₧enφ zjiÜ¥ovan²ch informacφ.
Vstup: AX = 4f00h ╚φslo slu₧by
ES = Segment 256 byte dlouhΘho bufferu
DI = Offset 256 byte dlouhΘho bufferu
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Slu₧ba byla ·sp∞Ün∞ provedena
Formßt tabulky na adrese ES: DI je nßsledujφcφ:
/------------------------------------------------------\
| Offset | Velikost | Popis |
|--------+----------+----------------------------------|
| 00h | 4 byte | Identifikace podpory VESA - |
| | | °et∞zec "VESA" |
|--------+----------+----------------------------------|
| 04h | 1 word | Verze VESA rozÜφ°enφ |
|--------+----------+----------------------------------|
| 06h | 4 byte | Ukazatel na tabulku s |
| | | informacemi specifick²mi pro |
| | | v²robce |
|--------+----------+----------------------------------|
| 0ah | 4 byte | Mo₧nosti (zatφm nedefinovßno) |
|--------+----------+----------------------------------|
| 0eh | 4 byte | Ukazatel na tabulku obsahujφcφ |
| | | seznam podporovan²ch |
| | | zobrazovacφch re₧im∙. |
|--------+----------+----------------------------------|
| 12h | 1 word | PoΦet instalovan²ch blok∙ pam∞ti |
| | | na videoadaptΘru v 64K blocφch. |
| | | (Od verze 1.1.) |
|--------+----------+----------------------------------|
| 14h | 236 byte | Rezervovßno |
\------------------------------------------------------/
Identifikace bude v₧dy nastavena na VESA. Pokud se
tedy chcete ujistit o tom, zda opravdu mßte VESA
kartu, zkontrolujte tento ·daj.
╚φslo VESA verze je ulo₧eno ve dvou bytech.
V²znamn∞jÜφ z nich obsahuje hlavnφ Φφslo verze a mΘn∞
v²znamn² z nich vedlejÜφ Φφlo verze:
0100h verze 1.0
0101h verze 1.1
0102h verze 1.2
VÜechny verze zachovßvajφ a budou zachovßvat zp∞tnouu
kompatibilitu s verzφ 1.0.
Formßt informacφ specifick²ch pro v²robce nenφ nijak
urΦen. V∞tÜinou jde o ASCIIZ string (tj. textov²
°et∞zec ukonΦen² znakem s ASCII k≤dem 0), kter²
obsahuje nßzev v²robce, p°φpadn∞ n∞jakΘ dalÜφ
informace o grafickΘm adaptΘru.
Tabulka je tvo°ena po sob∞ jdoucφmi hodnotami typu
word (ty urΦujφ Φφslo podporovanΘho zobrazovacφho
re₧imu). Tabulka je ukonΦenß hodnotou 0ffffh.
JednotlivΘ m≤dy jsou podrobn∞ji popsßny v popisu
slu₧by 4f02h.
VESA BIOS od verze 1.1 vracφ velikost instalovanΘ
videopam∞ti na adaptΘru. Tato velikost je v 64K
blocφch. AdaptΘr, kter² mß 1MB pam∞ti, zde bude mφt
tedy umφst∞nu hodnotu 16 (16*64K=1MB).
Slu₧ba 4f01 - ZjiÜt∞nφ informacφ o Super VGA m≤du
==================================================
Popis: Tato slu₧ba zjiÜ¥uje informace o urΦitΘm zobrazovacφm
re₧imu. DostupnΘ zobrazovacφ re₧imy m∙₧ete zjistit
pomocφ slu₧by 4f00h. P°ed zavolßnφm slu₧by musφte
v pam∞ti vyhradit 256 byte dlouh² buffer pro ulo₧enφ
zjiÜ¥ovan²ch informacφ.
Vstup: AX = 4f01h ╚φslo slu₧by
CX = ╚φslo Super VGA zobrazovacφho m≤du
ES = Segment 256 byte dlouhΘho bufferu
DI = Offset 256 byte dlouhΘho bufferu
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Slu₧ba byla ·sp∞Ün∞ provedena
Formßt tabulky informacφ na adrese ES: DI je
nßsledujφcφ:
/----------------------------------------------------\
| Offset | Velikost | Popis |
|--------+----------+--------------------------------|
| 00h | 1 word | Atributy zobrazovacφho re₧imu1)|
|--------+----------+--------------------------------|
| 02h | 1 byte | Atributy okna A 2) |
|--------+----------+--------------------------------|
| 03h | 1 byte | Atributy okna B 2) |
|--------+----------+--------------------------------|
| 04h | 1 word | Granularita okna v K 3) |
|--------+----------+--------------------------------|
| 06h | 1 word | Velikost okna v K 4) |
|--------+----------+--------------------------------|
| 08h | 1 word | Segment zaΦßtku okna A 5) |
|--------+----------+--------------------------------|
| 0ah | 1 word | Segment zaΦßtku okna B 5) |
|--------+----------+--------------------------------|
| 0ch | 4 byte | Adresa volßnφ slu₧by 4f05h 6) |
|--------+----------+--------------------------------|
| 10h | 1 word | PoΦet byte na jednu scan °ßdku |
\----------------------------------------------------/
Nßsledujφcφ blok informacφ se pou₧φvß v²robci
k popsßnφ zobrazovacφch re₧im∙, kterΘ nejsou p°φmo
obsa₧eny ve VESA standardu. Tento blok je ve
v²stupnφch informacφch obsa₧en, pokud je nastaven
bit 1 atributu zobrazovacφho re₧imu.
/----------------------------------------------------\
| Offset | Velikost | Popis |
|--------+----------+--------------------------------|
| 12h | 1 word | Horizontßlnφ rozliÜenφ 7) |
|--------+----------+--------------------------------|
| 14h | 1 word | Vertikßlnφ rozliÜenφ 7) |
|--------+----------+--------------------------------|
| 16h | 1 byte | èφ°ka znaku v pixelech |
|--------+----------+--------------------------------|
| 17h | 1 byte | V²Üka znaku v pixelech |
|--------+----------+--------------------------------|
| 18h | 1 byte | PoΦet bitov²ch rovin |
|--------+----------+--------------------------------|
| 19h | 1 byte | Celkov² poΦet bit∙ na jeden |
| | | pixel 8) |
|--------+----------+--------------------------------|
| 1ah | 1 byte | PoΦet pam∞¥ov²ch bank 9) |
|--------+----------+--------------------------------|
| 1bh | 1 byte | Typ modelu pam∞ti 10) |
|--------+----------+--------------------------------|
| 1ch | 1 byte | Velikost pam∞¥ovΘ banky v K |
|--------+----------+--------------------------------|
| 1dh | 1 byte | PoΦet obrazov²ch strßnek |
| | | (Od verze 1.1.) |
|--------+----------+--------------------------------|
| 1eh | 1 byte | Rezervovßno (obsahuje 0) |
|----------------------------------------------------|
| PoΦφnaje offsetem 1fh jsou popsanΘ informace |
| vraceny a₧ od verze 1.2 VESA. |
|----------------------------------------------------|
| 1fh | 1 byte | Velikost ΦervenΘ masky |
|--------+----------+--------------------------------|
| 20h | 1 byte | Pozice ΦervenΘ polo₧ky |
|--------+----------+--------------------------------|
| 21h | 1 byte | Velikost zelenΘ masky |
|--------+----------+--------------------------------|
| 22h | 1 byte | Pozice zelenΘ masky |
|--------+----------+--------------------------------|
| 23h | 1 byte | Velikost modrΘ masky |
|--------+----------+--------------------------------|
| 24h | 1 byte | Pozice modrΘ masky |
|--------+----------+--------------------------------|
| 25h | 1 byte | Velikost rezervovanΘ masky |
|--------+----------+--------------------------------|
| 26h | 1 byte | Pozice rezervovanΘ masky |
|--------+----------+--------------------------------|
| 27h | 1 byte | Informace o p°φmΘm barevnΘm |
| | | m≤du |
|--------+----------+--------------------------------|
| 28h | 1 byte | Rezervovßno (obsahuje 0) |
\----------------------------------------------------/
1) Atribut zobrazovacφho re₧imu mß nasledujφcφ
strukturu:
/-----------------------------------------------------\
| Bit | Popis |
|-------+---------------------------------------------|
| 0 | Nastaven na 1, pokud grafick² adaptΘr |
| | podporuje zvolen² zobrazovacφ re₧im. |
|-------+---------------------------------------------|
| 1 | Nastaven na 1, pokud jsou vraceny i |
| | rozÜi°ujφcφ informace v²robce. |
|-------+---------------------------------------------|
| 2 | Nastaven na 1, pokud standardnφ slu₧by BIOS|
| | podporujφ tento zobrazovacφ re₧im (zßpis |
| | znaku, bodu, °et∞zce...). Pokud tedy chcete|
| | zßrove≥ pou₧φvat VESA Super VGA m≤dy a |
| | rutiny BIOS, zkontrolujte nejprve pomocφ |
| | tohoto bitu, zda je to v∙bec mo₧nΘ. |
|-------+---------------------------------------------|
| 3 | Nastaven na 1, pokud je zobrazovacφ re₧im |
| | barevn². |
|-------+---------------------------------------------|
| 4 | Nastaven na 1, pokud je zvolen² zobrazovacφ|
| | re₧im grafick². |
|-------+---------------------------------------------|
| 5-15 | Rezervovßno |
\-----------------------------------------------------/
2) Atributy oken jsou ulo₧eny nßsledujφcφm zp∙sobem:
/-----------------------------------------------------\
| Bit | Popis |
|--------+--------------------------------------------|
| 0 | Nastaven na 1, pokud okno existuje |
|--------+--------------------------------------------|
| 1 | Nastaven na 1, pokud je okno urΦenΘ pro |
| | Φtenφ |
|--------+--------------------------------------------|
| 2 | Nastaven na 1, pokud je okno urΦenΘ pro |
| | zßpis |
|--------+--------------------------------------------|
| 3-7 | Rezervovßno |
\-----------------------------------------------------/
Hodnoty 7 a 0 urΦujφ jednoduchΘ okno (single
window), hodnoty 7 a 7 urΦujφ nep°ekryvnß okna
(non-overlapping windows) a hodnoty 3 a 5 urΦujφ
p°ekryvnß okna (overlapping windows). Pokud jsou ob∞
hodnoty nulovΘ zobrazovacφ re₧im nepou₧φvß oken.
Podrobn∞jÜφ informace o r∙zn²ch druzφch oken
naleznete v popisu fyzickΘ konstrukce adaptΘru.
3) Granularita okna je nejmenÜφ krok, o kter² m∙₧e b²t
m∞n∞n offset poΦßtku okna (ten je v K). Pokud by
tedy granularita byla nap°φklad 8K, musφ b²t offset
okna d∞liteln² 8K (tj. 0, 8K, 16K ...).
4) Velikost okna je nejv∞tÜφ offset, ke kterΘmu m∙₧e
procesor p°istupovat v rßmci okna.
5) Segment zaΦßtku okna je segment, do kterΘho se
mapuje videopam∞¥. Obvykle b²vß 0a000h.
6) Adresa volßnφ slu₧by 4f05h je adresou, na kterΘ
zaΦφnß rutina vyvolanß slu₧bou 4f05h. Tato slu₧ba
m∞nφ poΦßteΦnφ offset okna. M∙₧eme pomocφ nφ
p°epφnat r∙znß okna. P°φmΘ volßnφ tΘto rutiny je
rychlejÜφ ne₧ jejφ volßnφ p°es VESA BIOS. Narozdφl
od volßnφ p°es VESA BIOS tato rutina nevracφ ₧ßdn²
status v registru AX.
7) Horizontßlnφ a vertikßlnφ rozliÜenφ je v grafick²ch
m≤dech udßvßno v pixelech a v textov²ch m≤dech je
dßno v poΦtu znak∙.
8) PoΦet bit∙ na jeden pixel urΦuje poΦet barev, kterΘ
m∙₧ete v danΘm zobrazovacφm re₧imu pou₧φvat. PoΦet
barev zφskßte tak, ₧e dvojku umocnφte na toto Φφslo
(8 bit∙ na pixel => 28=256 barev).
9) PoΦet pam∞¥ov²ch bank je pou₧φvßn v neobvykl²ch
zobrazovacφch re₧imech, kdy jsou zobrazovacφ °ßdky
ulo₧eny v r∙zn²ch pam∞¥ov²ch bankßch. Nap°φklad CGA
m≤dy majφ ulo₧eny v jednΘ bance sudΘ °ßdky a v druhΘ
lichΘ. Pro tento m≤d by zde tedy byla hodnota 2. Pro
v∞tÜinu b∞₧n²ch m≤d∙ je zde nula (tj. nepou₧φvajφ se
pam∞¥ovΘ banky).
10) Typ modelu pam∞ti je definovßn nßsledovn∞:
/-----------------------------------------------------\
| Hodnota | Popis |
|---------+-------------------------------------------|
| 0 | Textov² re₧im |
|---------+-------------------------------------------|
| 1 | CGA grafika (2 pam∞¥ovΘ banky) |
|---------+-------------------------------------------|
| 2 | Herkules grafika (4 pam∞¥ovΘ banky) |
|---------+-------------------------------------------|
| 3 | 4 bitovΘ roviny |
|---------+-------------------------------------------|
| 4 | 1 bitovß rovina (1 bit = 1 pixel) |
|---------+-------------------------------------------|
| 5 | 256 barev - 4 nez°et∞zenΘ roviny |
|---------+-------------------------------------------|
| 6 | True color (24 bitovß grafika) |
|---------+-------------------------------------------|
| 7-0fh | Rezervovßno pro VESA |
|---------+-------------------------------------------|
| >10h | Rezervovßno pro v²robce |
\-----------------------------------------------------/
Slu₧ba 4f02h - Nastavenφ Super VGA m≤du
=======================================
Popis: Tato slu₧ba je obdou slu₧by 0 pro standardnφ
videom≤dy. P°epne grafick² adaptΘr do specifikovanΘho
Super VGA zobrazovacφho re₧imu. Pokud je bit 15 Φφsla
m≤du nastaven na 1, nesma₧e se p°i inicializaci m≤du
obrazovka.
Vstup: AX = 4f02h ╚φslo slu₧by
BX = ╚φslo Super VGA m≤du
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Slu₧ba byla ·sp∞Ün∞ provedena
Tabulka Super VGA m≤d∙:
/-----------------------------------------------------\
| M≤d | RozliÜenφ | PoΦet barev/popis |
|--------+------------+-------------------------------|
| 6ah | 800x600 | 16 |
| 100h | 640x400 | 256 |
| 101h | 640x480 | 256 |
| 102h | 800x600 | 16 |
| 103h | 800x600 | 256 |
| 104h | 1024x768 | 16 |
| 105h | 1024x768 | 256 |
| 106h | 1280x1024 | 16 |
| 107h | 1280x1024 | 256 |
| 108h | 80x60 | Textov² re₧im, od verze 1.1 |
| 109h | 132x25 | Textov² re₧im, od verze 1.1 |
| 10ah | 132x43 | Textov² re₧im, od verze 1.1 |
| 10bh | 132x50 | Textov² re₧im, od verze 1.1 |
| 10ch | 132x60 | Textov² re₧im, od verze 1.1 |
| 10dh | 320x200 | 32768, od verze 1.2 |
| 10eh | 320x200 | 65536, od verze 1.2 |
| 10fh | 320x200 | 16777216, od verze 1.2 |
| 110h | 640x480 | 32768, od verze 1.2 |
| 111h | 640x480 | 65536, od verze 1.2 |
| 112h | 640x480 | 16777216, od verze 1.2 |
| 113h | 800x600 | 32768, od verze 1.2 |
| 114h | 800x600 | 65536, od verze 1.2 |
| 115h | 800x600 | 16777216, od verze 1.2 |
| 116h | 1024x768 | 32768, od verze 1.2 |
| 117h | 1024x768 | 65536, od verze 1.2 |
| 118h | 1024x768 | 16777216, od verze 1.2 |
| 119h | 1280x1024 | 32768, od verze 1.2 |
| 11ah | 1280x1024 | 65536, od verze 1.2 |
| 11bh | 1280x1024 | 16777216, od verze 1.2 |
\-----------------------------------------------------/
11ch-7fffh Rezervovßno pro VESA
14h-69h Rezervovßno pro v²robce
6bh-7fh Rezervovßno pro v²robce
Slu₧ba 4f03h - ZjiÜt∞nφ Super VGA m≤du
======================================
Popis: Tato slu₧ba zjiÜ¥uje aktußlnφ zobrazovacφ re₧im
(obdoba slu₧by 0fh). Zjistφ jak VESA re₧imy, tak
standardnφ VGA re₧imy a v²robcem definovanΘ
zobrazovacφ re₧imy.
Vstup: AX = 4f03h ╚φslo slu₧by
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Slu₧ba byla ·sp∞Ün∞ provedena
BX = ╚φslo zobrazovacφho re₧imu
Slu₧ba 4f04h - P°eΦtenφ/Obnovenφ stavu Super VGA
================================================
Popis: Tato slu₧ba slou₧φ k uklßdßnφ a obnovovßnφ informacφ
o Super VGA grafickΘm adaptΘru. Je podobnß funkci
1ch, ale navφc pracuje jeÜt∞ s informacemi
specifick²mi pro Super VGA. P°ed uklßdßnφm informacφ
musφte alokovat pot°ebn² blok pam∞ti. Jeho velikost
m∙₧ete zjistit pomocφ funkce 0 tΘto slu₧by.
Podobn∞ jako u slu₧by 1ch m∙₧ete pomocφ bit∙ registru
CX specifikovat, s kter²mi informacemi si p°ejete
pracovat. Nastavenφ p°φsluÜnΘho bitu na jedna
indikuje pou₧itφ t∞chto informacφ.
Funkce 00h - ZjiÜt∞nφ velikosti bufferu pro ulo₧enφ informacφ
-------------------------------------------------------------
Popis: ZjiÜ¥uje velikost bufferu pot°ebnΘho k ulo₧enφ
po₧adovan²ch informacφ. Velikost je vracena jako
poΦet 64 byte dlouh²ch blok∙ pam∞ti.
Vstup: AX = 4f04h ╚φslo slu₧by
DL = 00h ╚φslo funkce
CX = UrΦenφ informacφ, se kter²mi se bude pracovat
Bit Popis
--- ----------------------------------
0 Registry grafickΘho adaptΘru
1 Datovß oblast BIOS
2 Registry palety a DAC registry
3 Registry a data Super VGA adaptΘru
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
BX = Pot°ebnß velikost bufferu v 64byte blocφch
Funkce 01h - Ulo₧enφ nastavenφ
------------------------------
Popis: Ulo₧φ nastavenφ Super VGA adaptΘru. P°ed volßnφm tΘto
funkce musφte v pam∞ti vyhradit pot°ebn² buffer pro
informace (jeho velikost zjistφte pomocφ funkce 00h
slu₧by 4f04h). Registry ES:BX musφte nastavit tak,
aby ukazovaly na zaΦßtek bufferu. Registr CX
specifikuje, kterΘ informace se majφ ulo₧it.
Vstup: AX = 4f04h ╚φslo slu₧by
DL = 01h ╚φslo funkce
ES = Segment bufferu
BX = Offset bufferu
CX = UrΦenφ informacφ, se kter²mi se bude pracovat
Bit Popis
--- ----------------------------------
0 Registry grafickΘho adaptΘru
1 Datovß oblast BIOS
2 Registry palety a DAC registry
3 Registry a data Super VGA adaptΘru
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
Funkce 02h - Obnovenφ nastavenφ
-------------------------------
Popis: Tato funkce obnovφ nastavenφ Super VGA adaptΘru podle
informacφ, kterΘ p°edtφm byly pomocφ funkcφ 01h
ulo₧eny. Registry ES:BX musφte nastavit tak, aby
ukazovaly na zaΦßtek bufferu. Registr CX specifikuje,
kterΘ informace se majφ obnovit.
Vstup: AX = 4f04h ╚φslo slu₧by
DL = 02h ╚φslo funkce
ES = Segment bufferu
BX = Offset bufferu
CX = UrΦenφ informacφ, se kter²mi se bude pracovat
Bit Popis
--- ----------------------------------
0 Registry grafickΘho adaptΘru
1 Datovß oblast BIOS
2 Registry palety a DAC registry
3 Registry a data Super VGA adaptΘru
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
Slu₧ba 4f05h - Ovlßdßnφ p°φstupu procesoru k okn∙m
==================================================
Popis: Tato slu₧ba slou₧φ k nastavenφ a zjiÜt∞nφ offsetu
oken. SystΘm oken na Super VGA funguje systΘmem
p°epφnßnφ bank. Pouze Φßst celΘ videopam∞ti je
p°φstupnß procesoru. Tato slu₧ba slou₧φ k urΦenφ
Φßsti videopam∞ti, kterß se objevφ v okn∞. P°φsluÜnß
Φßst videopam∞ti je urΦena offsetem. Ten je zadßvßn
v jednotkßch granularita okna. Granularita je
v r∙zn²ch re₧imech u r∙zn²ch v²robc∙ r∙znß.
Poznßmka: K nastavenφ offsetu okna m∙₧ete pou₧φt p°φmΘ
volßnφ odpovφdajφcφ funkce. Vektor tΘto funkce
zjistφte pomocφ slu₧by 4f01h. Tato slu₧ba vracφ i
dalÜφ informace o organizaci oken nezbytnΘ k
sprßvnΘmu pou₧φvßnφ oken.
Funkce 00h - Nastavenφ offsetu okna
-----------------------------------
Popis: Nastavφ offset okna. Offset okna musφ b²t zadßn v
jednotkßch granularita okna. SkuteΦn² offset pak
odpovφdß zadßvanΘ hodnot∞ vynßsobenΘ granularitou
okna.
Vstup: AX = 4f05h ╚φslo slu₧by
BH = 00h ╚φslo funkce
BL = ╚φslo okna
0 = Okno A
1 = Okno B
DX = Offset okna (v granularit∞ okna)
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
Funkce 01 - ZjiÜt∞nφ offsetu okna
---------------------------------
Popis: Zjistφ offset okna. V²sledek je op∞t v granularit∞.
Vstup: AX = 4f05h ╚φslo slu₧by
BH = 01h ╚φslo funkce
BL = ╚φslo okna
0 = Okno A
1 = Okno B
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
DX = Offset okna
Slu₧ba 4f06h - ZjiÜt∞nφ/nastavenφ dΘlky scan °ßdky - od verze 1.1
=================================================================
Popis: Tato slu₧ba obsahuje dv∞ funkce. Jedna zjiÜ¥uje a
druhß nastavuje dΘlku scan °ßdky. Nastavenφ dΘlky
scan °ßdky na v∞tÜφ hodnotu ne₧ je jejφ zobrazitelnß
dΘlka nßm umo₧nφ pou₧φvat virtußlnφ obrazku, tj.
viditelnß je pouze Φßst celΘho obrazu. To lze
uplatnit zejmΘna p°i jemnΘm plynulΘm scrolovanφ
obrazovky (to je umo₧n∞no slu₧bou 4f07h).
Pokud zadßte n∞jakou nep°φpustnou hodnotu (dΘlka scan
°ßdky je obvykle nßsobek 8), zaokrouhlφ se vßmi
zadanß hodnota na nejbli₧Üφ vyÜÜφ p°φpustnou hodnotu.
Funkce 00h - Nastavenφ dΘlky scan °ßdky
---------------------------------------
Popis: Nastavφ dΘlku scan °ßdky. DΘlka se udßvß v pixelech.
Vstup: AX = 4f06h ╚φslo slu₧by
BL = 00h ╚φslo funkce
CX = Novß dΘlka scan °ßdky
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
Funkce 01h - ZjiÜt∞nφ dΘlky scan °ßdky
--------------------------------------
Popis: Zjistφ dΘlku scan °ßdky a maximßlnφ poΦet scan °ßdek,
tj. maximßlnφ virtußlnφ vertikßlnφ rozliÜenφ.
Vstup: AX = 4f06h ╚φslo slu₧by
BL = 01h ╚φslo funkce
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
BX = PoΦet byte v jednΘ scan °ßdce
CX = DΘlka scan °ßdky v pixelech
DX = Maximßlnφ poΦet scan °ßdek
Slu₧ba 4f07h - ZjiÜt∞nφ/Nastavenφ poΦßtku zobrazovßnφ - od verze 1.1
====================================================================
Popis: Tato slu₧ba obsahuje dv∞ funkce, kterΘ slou₧φ
k zjiÜt∞nφ a nastavenφ poΦßtku zobrazovßnφ. Tato
slu₧ba umo₧≥uje m∞nit viditelnou Φßst velkΘ virtußlnφ
obrazovky. Uplatnφ se p°φ scrolovßnφ obrazu nebo p°i
p°epφnßnφ mezi obrazov²mi strßnkami.
Posunutφ od levΘho hornφho rohu je zadßno v pixelech.
Pokud tuto slu₧bu chcete pou₧φt v textovΘm re₧imu,
nezapome≥te vynßsobit hodnoty v cel²ch znacφch
pat°iΦnou Üφ°kou a v²Ükou znaku v pixelech (obr. 1).
Funkce 00h - Nastavenφ poΦßtku zobrazovßnφ
------------------------------------------
Popis: Tato funkce m∞nφ poΦßtek zobrazovßnφ ve virtußlnφ
obrazovce. Hodnoty v registrech CX a DX udßvajφ o
kolik se zobrazovan² v²°ez ve virtußlnφ obrazovce
posune doprava a dol∙ oproti poΦßtku (lev² hornφ
roh).
Vstup: AX = 4f07h ╚φslo slu₧by
BL = 00h ╚φslo funkce
BH = 00h
CX = Horizontßlnφ offset v pixelech
DX = Vertikßlnφ offset v pixelech
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
Funkce 01h - ZjiÜt∞nφ poΦßtku zobrazovßnφ
-----------------------------------------
Popis: Tato funkce zjistφ offsety horizontßlnφho a
vertikßlnφho posunu poΦßtku zobrazovßnφ.
Vstup: AX = 4f07h ╚φslo slu₧by
BL = 01h ╚φslo funkce
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
BH = 00h
CX = Aktußlnφ horizontßlnφ offset v pixelech
DX = Aktußlnφ vertikßlnφ offset v pixelech
Slu₧ba 4f08h - Nastavenφ/ZjiÜt∞nφ rozsahu zßkladnφ barvy - od V1.2
==================================================================
Popis: Tato slu₧ba umo₧≥uje zjistit a nastavit poΦet bit∙,
kterΘ urΦujφ intenzitu zßkladnφ barvy. Zßkladnφ barvy
jsou t°i: Φervenß, modrß, zelenß. Standardnφ VGA m≤dy
pou₧φvajφ pro ka₧dou z t∞chto t°φ barev 6 bit∙
(konkrΘtnφ hodnoty jsou ulo₧eny v DAC registrech).
Celkem tedy 18 bit∙. V²slednß zobrazitelnß barva
v tomto zßkladnφm m≤du m∙₧e mφt tedy jeden
z 218=262144 mo₧n²ch odstφn∙. Funkce tΘto slu₧by
umo₧≥ujφ m∞nit poΦet barev, kterΘ lze v DAC
registrech "namφchat". Nejde tedy o skuteΦn² poΦet
najednou zobraziteln² barev. V²sladnß barva bodu je
urΦena nep°φmo pomocφ palety.
Funkce 00h - Nastavenφ rozsahu zßkladnφ barvy
---------------------------------------------
Popis: Nastavφ poΦet "namφchateln²ch" barev.
Vstup: AX = 4f08h ╚φslo slu₧by
BL = 00h ╚φslo funkce
BH = PoΦet bit∙ na jednu barvu
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
Funkce 01h - ZjiÜt∞nφ rozsahu zßkladnφ barvy
--------------------------------------------
Popis: Zjistφ poΦet dostupn²ch barev.
Vstup: AX = 4f08h ╚φslo slu₧by
BL = 01h ╚φslo funkce
V²stup: Bude obsa₧en v registrech po zavolßnφ slu₧by.
AX = 004fh Funkce byla ·sp∞Ün∞ provedena
BH = PoΦet bit∙ na jednu zßkladnφ barvu
[PokraΦovßnφ] |
[Obsah]
Copyright © Ji°φ Kosek