Programovßnφ registr∙
Zobrazovacφ adaptΘry EGA a VGA majφ n∞kolik registr∙,
kterΘ ovliv≥ujφ funcki t∞chto adaptΘr∙. O n∞kter²ch z t∞chto
registr∙ jsme se ji₧ zmφnili v popisu p°φstupu do pam∞ti
adaptΘru. Registry lze rozd∞lit do Üesti skupin:
- externφ registry (External registers)
- registry sequenceru (Sequencer registers)
- CRTC registry (CRTC = Cathode Ray Tube Controller -
kontroler obrazovky)
- registry grafickΘho kontroleru (Grapics Controller
registers)
- atributovΘ registry (Attribute registers)
- DAC (Digital to Analog Converter = Φφslicov∞
anologov² p°evodnφk) registry - ty mß pouze VGA
Registry pat°φcφ do tΘ₧e skupiny majφ v∞tÜinou ·zce spjat²
v²znam a ovlßdajφ jednu z Φßstφ tvorby a zobrazovanφ dat na
obrazovce. Sequencer °φdφ tok dat mezi videopam∞tφ a
atributov²m kontrolerem. Atributov² kontroler mß na starosti
prßci s barvou a paletami barev. DAC p°evßdφ v kart∞ VGA
digitßlnφ informaci o barv∞ na p°φsluÜnß nap∞tφ pro
analogov² monitor. Pomocφ CRTC registr∙ lze ovlßdat Φasovßnφ
obrazovky. Grafick² kontroler ovlßdß m≤dy p°φstupu k
obrazovΘ pam∞ti. Externφ registry zajiÜ¥ujφ n∞kolik funkcφ,
kterΘ nejsou za°azeny v ostatnφch skupinßch registr∙. DAC
regsitry jsou p°φtomny pouze na kartßch VGA, nebo¥ EGA
pou₧φvß digitßlnφ p°enos obrazov²ch informacφ do monitoru.
K v∞tÜin∞ registr∙ (v²jimku tvo°φ externφ registry) se
p°istupuje nep°φmo. Ka₧dß skupina registr∙ mß vlastnφ
adresov² a datov² registr. Tyto dva registry jsou mapovßny
na vstupn∞-v²stupnφch portech procesoru. Pokud chcete
p°istupovat k n∞jakΘmu registru, musφte nejprve na p°φsluÜn²
port nßle₧φcφ adresovΘmu registru zapsat index vßmi
po₧adovanΘho registru a pak m∙₧ete na portu odpovφdajφcφmu
datovΘmu registru pracovat s vßmi po₧adovan²m registrem.
Pokud tedy chcete zapsat hodnotu 10 do Map mask registru
(ten mß index 2 v sequenceru), m∙₧ete pou₧φt nßsledujφcφ
rutinu:
mov DX, 3c4h ;Φφslo portu adresovΘho registru sequenceru
mov AL, 2 ;index Map mask registru
out DX, AL ;zapsßnφ hodnoty na port
inc DX ;v DX je port datovΘho registru sequenceru
mov AL, 10 ;po₧adovanß hodnota pro Map mask
out DX, AL ;zapsßnφ hodnoty v AL na port
Port adresovΘho i datovΘho registru le₧φ hned vedle sebe.
Mikroprocesory 80x86 umo₧≥ujφ pomocφ jednΘ instrukce
(OUT DX, AX) zßpis na dva nßsledujφcφ porty. V∞tÜina
grafick²ch karet umo₧≥uje p°φstup k registr∙m pomocφ tΘto
programovacφ techniky. Obecn∞ pak lze psßt:
mov DX, Port adresnφho registru
mov AL, Index po₧adovanΘho registru
mov AH, Hodnota zapisovanß do po₧adovanΘho registru
out DX, AX
V²Üe uvedenß rutina modifikujφcφ Map mask registr lze
pou₧itφm tΘto finty p°epsat do tvaru krßtkΘ rutinky:
mov DX, 3c4h
mov AX, 2 + 256 * 10
out DX, AX
Adresov² registr si uchvßvß svou hodnotu a₧ do dalÜφ zm∞ny.
Modifikujete-li tedy pouze jeden registr ze skupiny staΦφ
nastavit adresnφ registr jednou a m∞nit pouze hodnoty
zapisovanΘ do datovΘho registru. Zm∞nu adresnφho registru je
v takov²ch p°φpadech v²hodnΘ umφstit vn∞ cyklu. M∙sφte vÜak
b²t opatrnφ a vylouΦit to, ₧e vßm index zapsan² v adresnφm
registru zm∞nφ volßnφ slu₧by BIOS nebo program aktivovan²
pomocφ p°eruÜenφ. Pokud si nejste jisti, ₧e nem∙₧e dojφt ke
zm∞n∞ tohoto registru vyvolßnφm n∞jakΘho rezidentnφho
programu, radÜi zaka₧te po dobu provßd∞nφ operacφ p°eruÜenφ.
Do registr∙ na kart∞ EGA lze pouze zapisovat. VGA
umo₧≥uje Φφst aktußlnφ stav registr∙ s v²jimkou
latch-registr∙, adresnφho registru atributovΘho kontroleru a
Input-status registru. ZjiÜt∞nφ aktußlnφho nastavenφ karty
VGA je tedy pouze otßzkou p°eΦtenφ n∞kolika hodnot z port∙.
U EGA je u₧ situace slo₧it∞jÜφ. Pokud je aktivnφ videom≤d
nasatven pomocφ BIOS, m∞ly by b²t pot°ebnΘ obsahy registr∙
spolu s dalÜφmi informacemi ulo₧eny v uklßdacφ oblasti BIOS.
Pokud pou₧φvßte adaptΘr VGA a chcete modifikovat
n∞kter² z jeho registr∙, m∞li byste nejprve naΦφst obsah
tohoto registru, potΘ zm∞nit pouze po₧adovanΘ bity a
v²sledek zapsat zp∞t na port. Zajistφte tak kompatibilitu s
nßsledujφcφmi verzemi zobrazovacφch adaptΘr∙.
Externφ registry
Externφ registry poskytujφ na adaptΘrech EGA a VGA n∞kolik
u₧iteΦn²ch funkcφ. Narozdφl od v∞tÜiny registr∙
zobrazovacφho adaptΘru se k t∞mto registr∙m p°istupuje
p°φmo. Ka₧d² z t∞chto registr∙ mß vyhrazen vlastnφ port.
Miscellaneous Output register Port: 3c2h
pouze zßpis
===========================================================
Popis: Tento registr umo₧≥uje zm∞nu n∞kolika nastavenφ
adaptΘru, kterΘ ovliv≥ujφ jeho Φinnost.
Hardwarov² reset poΦφtaΦe nastavφ vÜechny bity v
tomto registru na 0.
Tento registr je urΦen pouze pro zßpis, a to jak na
EGA tak i na VGA. Pokud mßte VGA kartu m∙₧ete si
p°eΦφst nastavenφ tohoto registru z portu 3cch.
Bity 2 a 3 mohou b²t pou₧ity ke zm∞n∞ Φasovßnφ. Pokud
na feature-konektor p°ipojφte zdroj kmitßnφ o vyÜÜφ
frekvenci ne₧ je obvyklΘ a zm∞nφte nastavenφ CRTC
registr∙, m∙₧ete dosßhnout vyÜÜφho rozliÜenφ.
Bity Popis
---- ---------------------------------------------------
0 Volba port∙ pro CRTC registry (3d?h/3b?h)
Tento bit urΦuje umφst∞nφ port∙ CRTC
kontroleru a Input-status registru 1. Nastavenφ
tohoto bitu na 0 urΦuje kompatibiltu
s monochromatick²mi adaptΘry (MDA), Φφsla port∙
jsou 3b?h. Naopak nasatvenφ tohoto bitu na jedna
znamenß Φφsla port∙ 3d?h, co₧ odpovφdß barevn²m
adaptΘr∙m.
P°ed tφm ne₧ budete pracovat s CRTC registry
Φi p°φpadn∞ s Input-status registrem 1, m∞li byste
pomocφ tohoto bitu zjistit, na kter²ch portech jsou
p°φsluÜnΘ registry dostupnΘ.
1 Povolenφ p°φstupu do RAM
Nastavenφ tohoto bitu na 0 znemo₧nφ procesoru
p°φstup k pam∞ti videoadaptΘru. Standardnφ
nastavenφ tohoto bitu je 1, tj. p°φstup k pam∞ti je
povolen.
2-3 Nastavenφ rychlosti ΦasovaΦe
Tyto bity urΦujφ frekvenci ΦasovaΦe podle
nßsledujφcφ tabulky:
/--------------------------------------------\
| Hodnota | EGA | VGA |
|---------+-----------------+----------------|
| 00b | 14MHz | 25MHz |
|---------+-----------------+----------------|
| 01b | 16MHz | 28MHz |
|---------+----------------------------------|
| 10b | Frekvence je urΦena externφm |
| | signßlem (z feature-konektoru) |
|---------+----------------------------------|
| 11b | Nepou₧ito | Nepou₧ito |
\--------------------------------------------/
P°ed zm∞nou tohoto nastavenφ byste m∞li pomocφ
Reset-registru sequenceru vyvolat synchronnφ reset
adaptΘru.
4 Vypnutφ internφho ovladaΦe obrazovky (pouze EGA)
Tento bit urΦuje p∙vodce videosignßlu pro
monitor. Obvykle je tento bit nastaven na 0 a
adaptΘr EGA ovlßdß p°ipojen² monitor. Pokud je bit
nastaven na 1, signßl pro monitor pochßzφ z
v²stupnφch pin∙ feature-konektoru. Proto₧e tento
konektor obsahuje i vstupnφ piny, m∙₧e za°φzenφ
p°ipojenΘ pomocφ feature-konektoru kombinovat
signßl z karty EGA se signßlem z n∞jakΘho jinΘho
zdroje (nap°φklad z videa).
5 Strßnkov² bit pro proklßdßnΘ m≤dy
Tento bit p°epφnß mezi dv∞ma 64K strßnkami
pam∞ti z celΘ 128K roviny, kdy₧ je aktivnφ m≤d s
proklßdßnφm °ßdku, tj. sudΘ °ßdky jsou v jednΘ
strßnce pam∞ti a lichΘ v druhΘ. NastavenΘ tohoto
bitu na 0 mapuje do segmentu vyhrazenΘho pro
videoadaptΘr dolnφch 64K a nastavenφ na 1 mapuje
hornφch 64K.
6 Polarita horizontßlnφho zatem≥ovacφho impulsu
Polarita horizontßlnφho zp∞tnΘho paprsku je
kladnß, pokud je tento bit nastaven na 0, a
zßpornß, pokud je nasatven na 1. Digitßlnφ monitory
pou₧φvajφ kladnou polaritu. Na analogov²vh
monitorech tento bit spolu s bitem 7 urΦujφ poΦet
°ßdek na obrazovce.
7 Polarita vertikßlnφho zatem≥ovacφho impulsu
Polarita vertikßlnφho zp∞tnΘhoo impulsu je
kladnß, pokud je tento bit nastaven na 0, a
zßpornß, pokud je nastaven 1. Monochraomatick²
monitor pou₧φvß zßpornou polaritu, barevnΘ monitory
pou₧φvajφ kladnΘ polarity a analogovΘ monitory
pou₧φvajφ tento bit spolu s bitem 6 k urΦenφ poΦtu
°ßdek na obrazovce.
PoΦty °ßdek na obrazovce pro analogovΘ monitory
jsou k≤dovßny nßsledujφcφm zp∙sobem:
/------------------------------------\
| Bity 6 a 7 | EGA | VGA |
|------------+-----------+-----------|
| 00b | 200 °ßdek | Nepou₧ito |
| 01b | 350 °ßdek | 350 °ßdek |
| 10b | Nepou₧ito | 400 °ßdek |
| 11b | Nepou₧ito | 480 °ßdek |
\------------------------------------/
Feature Control Register Port: 3?ah
pouze zßpis
============================================================
Popis: Na kart∞ EGA jsou bity tohoto registru pou₧ity
k ovlßdßnφ signßl∙ na dvou pinech feature-konektoru
(piny FC0 a FC1). Pomocφ t∞chto dvou signßl∙ m∙₧ete
ovlßdat za°φzenφ p°ipojenΘ k feature-konektoru.
╚φslo portu je bu∩ 3bah (monochromatickΘ adaptΘry)
nebo 3dah (barevnΘ adaptΘry).
VGA tyto bity nepou₧φvß, bit 3 musφ b²t nastaven na
0. Karta VGA umo₧≥uje Φtenφ obsahu tohoto registru na
portu 3cah.
EGA:
Bity Popis
---- ---------------------------------------------------
0 Nastavenφ tohoto bitu je promφtßno na pin 21
feature-konektoru (FC0).
1 Nastavenφ tohoto bitu je promφtßno na pin 20
feature-konektoru (FC1).
2-7 Rezervovßno
VGA:
Bity Popis
---- ---------------------------------------------------
0-7 Rezervovßno (bit 3 musφ b²t nula)
Input Status Register 0 Port: 3c2h
Vstupnφ stavov² registr 0 pouze Φtenφ
============================================================
Popis: Tento registr zp°φstup≥uje n∞kolik d∙le₧it²ch
informacφ o grafickΘ kart∞. Na obou adaptΘrech EGA i
VGA je urΦen pouze pro Φtenφ.
Na adaptΘrech EGA bity 5 a 6 odpovφdajφ signßl∙m FEAT
0 a FEAT 1 z feature-konektoru. Mohou b²t vyu₧ity pro
komunikaci mezi programem a za°φzenφm p°ipojen²m p°es
feature-konektor. Na kart∞ VGA jsou tyto dva bity
rezervovßny.
Bity Popis
---- ---------------------------------------------------
0-4 Nepou₧ito
5 Tento bit odpovφdß signßlu na pinu 19
feature-konektoru (FEAT 0) - pouze EGA
6 Tento bit odpovφdß signßlu na pinu 17
feature-konektoru (FEAT 1) - pouze EGA
7 P°eruÜenφ obrazovky
Tento bit je nastaven na 1, pokud bylo
vyvolßno p°eruÜenφ IRQ2 zaΦßtkem vertikßlnφho
zatem≥ovacφho impulsu. Pou₧φvß se pro kontrolu zda
p°eruÜenφ bylo opravdu vyvolßno kartou EGA/VGA,
nebo¥ IRQ2 je pou₧φvßno i jin²mi za°φzenφmi (u AT
je na n∞j v kaskßd∞ napojen dalÜφ °adiΦ p°eruÜenφ).
Tento bit z∙stavß nastaven na 1 do tΘ doby, ne₧ je
smazßn. Obsluha p°eruÜenφ by tedy m∞la tento bit
smazat a znovu povolit p°eruÜenφ pomocφ registru
CRTC - Konec vertikßlnφho zp∞tnΘho chodu (index
tohoto registru je 11h).
Input Status Register 1 Port: 3?ah
Vstupnφ stavov² registr 1 pouze Φtenφ
============================================================
Popis: Tento registr zp°∙stup≥uje n∞kolik d∙le₧it²ch
informacφ o grafickΘ kart∞. Na obou adaptΘrech EGA i
VGA je urΦen pouze pro Φtenφ.
╚φslo portu je bu∩ 3bah (monochromatickΘ adaptΘry)
nebo 3dah (barevnΘ adaptΘry).
Bity Popis
---- ---------------------------------------------------
0 P°φstup adaptΘru k pam∞ti
Tento bit je nastaven na jedna b∞hem aktivnφho
zobrazovacφho intervalu (tj. adaptΘr p°istupuje k
videopam∞ti). B∞hem zatem≥ovacφho impulsu je tento
bit nastaven na 0. Tento bit je zde umφst∞n pro
zachovßnφ zp∞tnΘ kompatibility s CGA. U karty CGA
dochßzelo p°i souΦasnΘm p°φstupu videodaptΘru i
procesoru do pam∞ti k poruchßm obrazu (tzv.
sn∞₧enφ). Zßpis do pam∞ti adaptΘru EGA/VGA m∙₧e b²t
provßd∞n kdykoli, bez jak²chkoli vedlejÜφch efekt∙.
1 Sv∞telnΘ pero je p°ilo₧eno k obrazovce - pouze EGA
Tento bit je nastaven na jedna, pokud je
sv∞telnΘ pero p°ilo₧eno k obrazovce. Pokud je
sv∞telnΘ pero neaktivnφ obsahuje tento bit 0.
2 SpφnaΦ sv∞telnΘho pera - pouze EGA
Tento bit je nastaven na jedna, pokud je
spφnaΦ sv∞telnΘho pera otev°en², a na hodnotu 0 je
nastaven, pokud je sepnut².
3 Indikace vertikßlnφho zatem≥ovacφho signßlu
Tento bit je nastaven na 1 p°i zp∞tnΘm
vertikßlnφm zatem≥ovacφm impulsu, tj. kdy₧ se
elektronov² paprsek obrazovky, kter² vytvß°φ na
stφnφtku obraz, vracφ z pravΘho dolnφho rohu
obrazovky do levΘho hornφho. Po skonΦenφ
zatem≥ovacφho signßlu je tento bit nastaven a₧ do
dalÜφho zatemn∞nφ na nula.
4-5 DiagnostickΘ pou₧itφ
Tyto dva bity odpovφdajφ nastavenφ dvou bit∙
registru atribut∙. V²b∞r bit∙ je uskuteΦn∞n pomocφ
bit∙ 4 a 5 registru atributovΘho kontroleru pro
p°φstup k bitov²m rovinßm (Color Enable Register).
6-7 Nepou₧ito
Video Subsystem Enable Register Port: 3c3h
Registr ovlßdßnφ aktivity videokarty pouze VGA
============================================================
Popis: Tento registr ovlßdß aktivitu karty VGA. Pomocφ bitu
1 registru Miscellaneous-Output (povolenφ p°φstupu do
RAM) m∙₧e b²t zßkßzan procesoru p°φstup k pam∞ti a k
registr∙m videodaptΘru. Pokud je zakßzßn p°φstup
procesoru do pam∞ti a k registr∙m videodaptΘru, m∙₧e
b²t i nadßle vytvß°en adaptΘrem obraz. Podmφnkou pro
vytvß°enφ obrazu je nastavenφ bitu 1 registru pro
ovlßdßnφ aktivity videokarty na jedna.
Bity Popis
---- ---------------------------------------------------
0 = 1 Je generovßn obraz.
= 0 Nenφ generovßn obraz.
1-7 Rezervovßno
Registry sequenceru
┌lohou sequenceru v procesu vytvß°enφ obrazu je
ovlßdßnφ toku dat z pam∞ti a grafickΘho kontroleru do
atributovΘho kontroleru. V ka₧dΘm cyklu hodin b∞hem
aktivnφho zobrazovacφho intervalu musφ sequencer dodat
atributovΘmu kontroleru 4 bity, kterΘ jsou p°evedeny na
pixel odpovφdajφcφ barvy. V grafick²ch re₧imech je v₧dy
z bitov²ch rovin p°eΦten byte. BitovΘ roviny jsou Φty°i,
p°eΦtenΘ jsou tedy 4 byte. Tyto 4 byte se ulo₧φ do 4
posuvn²ch registr∙, odkud jsou po Φtve°icφch bit∙ posφlßny
do atributovΘho kontroleru k vytvo°enφ barvy. V textov²ch
re₧imech je ASCII k≤d znaku pou₧it jako odkaz do znakovΘho
bloku, ve kterΘm je bitovß definice tvaru znaku. Z tΘto
definice a atributu je op∞t vytvo°ena Φtve°ice byte, kterß
je posuvn²m registrem postoupena atributovΘmu kontroleru.
Na kart∞ EGA atributov² kontroler p°φmo ovlßdß
obrazovku. Karta VGA pou₧φvß v²stup atributovΘho kontroleru
jako odkaz do tabulky DAC. Z tΘto tabulky jsou p°eΦteny
intenzity zßkladnφch barev a po p°evedenφ na odpovφdajφcφ
nap∞tφ jsou poslßny na obrazovku.
Registry sequenceru ovlßdßjφ kmitoΦet hodin, posuvnΘ
registry a umφst∞nφ znakovΘho generßtoru. Sequencer
rozd∞luje p°φstup procesoru a adaptΘru k pam∞ti, urΦuje
bitovΘ mapy p°φstupnΘ procesoru. V∞tÜina b∞₧n²ch aplikacφ
z registr∙ sequenceru vyu₧φvß pouze Map Mask a Character Map
Select registry.
Sequencer Adress Register Port: 3c4h
Adresov² registr sequenceru
============================================================
Popis: Obsah tohoto registru urΦuje, kter² z registr∙
sequenceru bude mapovßn na datovΘm portu 3c5h. Pro
p°φstup k registru sequenceru musφte na tento port
zapsat index vßmi po₧adovanΘho registru sequenceru.
/---------------------------------------------------\
|Index| Registr |
|-----+---------------------------------------------|
| 0 | Reset |
| 1 | Re₧im ΦasovaΦe (Clocking Mode) |
| 2 | Map mask |
| 3 | V²b∞r znakovΘho bloku (Character Map Select)|
| 4 | Pam∞¥ov² re₧im (Memory Mode) |
\---------------------------------------------------/
Reset Register Port: 3c5h
Reset registr Index: 0
============================================================
Popis: Tento registr je pou₧φvßn k resetovßnφ sequenceru. To
je nezbytnΘ pro zachovßnφ obsahu obrazovky p°i zm∞n∞
re₧imu ΦasovaΦe. Aby sequencer pracoval musφ b²t oba
bity 0 a 1 nastaveny na jedna.
Bity Popis
---- ---------------------------------------------------
0 Asynchronφ smazßnφ sequenceru
Nastavenφ tohoto bitu na 0 zp∙sobφ smazßnφ a
zastavenφ sequenceru. V²stupy se uvedou do stavu s
vysokou impendacφ. Tφm m∙₧e b²t zap°φΦin∞na ztrßta
obrazov²ch dat.
1 Synchronφ smazßnφ sequenceru
Nastavenφ tohoto bitu na 0 zp∙sobφ smazßnφ a
zastavenφ sequenceru. Do tohoto stavu by m∞l b²t
sequencer uveden, pokud se m∞nφ re₧im ΦasovaΦe nebo
rychlost ΦasovaΦe.
2-7 Nepou₧ito
Clocking Mode Register Port: 3c5h
Re₧im ΦasovaΦe Index: 1
============================================================
Popis: Tento registr ovliv≥uje n∞kterΘ funkce souvisejφcφ s
Φasovßnφm adaptΘru. P°ed tφm, ne₧ m∞nφte n∞jakΘ
nastavenφ tohoto registru, m∞li byste provΘst
synchronnφ reset sequenceru.
Bity Popis
---- ---------------------------------------------------
0 8/9 takt∙ na jeden znak
Pokud je tento bit nastaven na 1, generujφ se
standardnφ, 8 bod∙ ÜirokΘ znaky. Pokud je nastaven
na 0, generujφ se 9 bod∙ ÜirokΘ znaky (pouze v MDA
a VGA textov²ch m≤dech).
1 èφ°ka pßsma pro p°φstup do pam∞ti - pouze EGA
Tento bit ovlßdß p°φstupov² Φas do pam∞ti pro
videoadaptΘr. Nastavenφ tohoto bitu na jedna
vyhradφ adaptΘru 2 z 5 pam∞¥ov²ch cykl∙. Nastavenφ
tohoto bitu na nula vyhradφ pro adaptΘr 4 z 5
pam∞¥ov²vh cykl∙. Proto₧e m≤dy s vyÜÜφm rozliÜenφm
pot°ebujφ Φφst vφce dat b∞hem jednoho °ßdku,
vy₧adujφ vÜechny m≤dy krom∞ 0, 1, 4, 5 a 0dh 4 z 5
cykl∙. Nastavenφ tohoto bitu ovlivnφ waitstates
generovanΘ adaptΘrem. B∞hem zp∞tnΘho chodu paprsku
pokraΦuje na EGA p°id∞lovßnφ p°φstupu k pam∞ti. Na
VGA je p°i zp∞tnΘm chodu p°φstup k pam∞ti zcela
vyhrazen procesoru.
2 4/2 posuvnΘ registry
Obvykle je tento bit nastaven na 0. Data z
pam∞ti jsou posφlßna do atributovΘho kontroleru
pomocφ 4 8bitov²ch posuvn²ch registr∙. Nastavenφ
tohoto bitu na jedna kombinuje data ze dvou
bitov²ch rovin do 16bitov²ch posuvn²ch registr∙.
Tyto registry jsou nynφ vÜak pouze dva. Snφ₧φ se
tak poΦet barev, ale zv∞tÜφ dostupnß pam∞¥.
3 1/2 hodinovΘ frekvence
Po nastavenφ tohoto bitu na jedna se bude
frekvence z ΦasovaΦe d∞lit dv∞ma. Toto zdvojenφ
Φasov²ch interval∙ se pou₧φvß pro zobrazenφ m≤d∙
s rozliÜenφm 320 x 200 Φi textov²ch m≤d∙ se 40
znaky na °ßdku.
4 4->1 posuvnΘ registry
Nastavenφ tohoto bitu na jedna aktivuje Φtenφ
z jednΘ bitovΘ roviny po 32 bitech, kterΘ se potΘ
ulo₧φ do posuvn²ch registr∙. Äßdn² ze standardnφch
m≤d∙ nepou₧φvß toto nastavenφ, nebo¥ je k dispozici
dostateΦn∞ velk² adresnφ prostor.
5 Vypnutφ obrazovky
Nastavenφ tohoto bitu na jedna vypne
generovßnφ obrazu na stφnφtku p°i zachovßnφ vÜech
internφch funkcφ videoadaptΘru. Vypφnßnφ obrazovky
lze pou₧φt v p°φpad∞, kdy pot°ebujeme vyhradit
vÜechen p°φstupov² Φas do videopam∞ti procesoru
(nap°φklad pro prßci s velk²m objemem dat). DalÜφ
pou₧itφ je v jednoduchΘch screensaveru (Üet°iΦi
obrazovky).
6-7 Nepou₧ito
Map Mask Register Port: 3c5h
Map mask registr Index: 2
============================================================
Popis: Map mask registr povoluje a zakazuje modifikaci
jednotliv²ch bitov²ch map b∞hem zßpisu do pam∞ti.
Ka₧d² bit nastaven² na jedna umo₧nφ modifikaci
p°φsluÜnΘ bitovΘ roviny.
Pokud pou₧φvßte m≤dy s odd∞len²mi sud²mi a lich²mi
°ßdky, m∞ly by mφt bity 0 a 1 stejnou hodnotu, stejn∞
tak by m∞ly mφt bity 2 a 3 stejnou hodnotu. Pokud
pou₧ivßte re₧im z°et∞zenφ 4 bitov²ch map (je nastaven
v grafickΘm re₧imu 320 x 200, 256 barev), m∞ly by mφt
vÜechny bity stejnou hodnotu.
Tento registr je aktivnφ ve vÜech zapisovacφch
re₧imech, tj. ovliv≥uje veÜkerß data zapisovanß do
pam∞ti videoadaptΘru.
Bity Popis
---- ---------------------------------------------------
0 = 1 Povolena modifikace bitovΘ roviny 0
1 = 1 Povolena modifikace bitovΘ roviny 1
2 = 1 Povolena modifikace bitovΘ roviny 2
3 = 1 Povolena modifikace bitovΘ roviny 3
4-7 Nepou₧ito
Character Map Select Register Port: 3c5h
Regsitr v²b∞ru znakovΘho bloku Index: 3
============================================================
Popis: Tento registr urΦuje, kterß Φßst bitovΘ roviny
obsahuje definici znakovovΘ sady pro textovΘ re₧imy.
Bitovß rovina 2 je rozd∞lena na 4 Φßsti po 8K (na
kartßch EGA s mΘn∞ ne₧ 256K p°φsluÜφ ka₧d²ch 64K
jednΘ Φßsti). Na kartßch EGA m∙₧e ka₧dß tato Φßst
obsahovat jeden znakov² blok z celkov²ch Φty°. VGA
m∙₧e obsahovat v jednΘ 8K Φßsti dva znakovΘ bloky.
Dva z t∞chto osmi (u EGA Φty°) znakov²ch blok∙ mohou
b²t vybrßny jako primßrnφ a sekundßrnφ znakovΘ sady.
Obvykle jsou primßrnφ a sekundßrnφ znakovß sada
toto₧nΘ a je mo₧no zobrazovat pouze 256 znak∙. Pokud
je ale obsah znakov²ch sad rozdφln², urΦuje bit 3
atributu (intenzita) pou₧φvanou znakovou sadu. Znaky
s nastavenou intenzitou se pak objevφ jako dalÜφch
256 pou₧iteln²ch znak∙.
EGA musφ mφt vφce ne₧ 64K pam∞ti, aby podporovala dv∞
znakovΘ sady najednou.
Tento registr by m∞l b²t nastavovßn po resetu
sequenceru, proto₧e asynchronφ smazßnφ sequenceru
vynuluje tento registr.
Bity Popis
---- ---------------------------------------------------
0-1 V²b∞r primßrnφ znakovΘ sady
Hodnota t∞chto dvou bit∙ urΦuje 8K Φast bitovΘ
roviny 2 pou₧itou k ulo₧enφ primßrnφ znakovΘ sady.
Hodnota 0-3 odpovφdß znakovΘmu bloku 0-3.
2-3 V²b∞r sekundßrnφ znakovΘ sady
Hodnota t∞chto dvou bit∙ urΦuje 8K Φast bitovΘ
roviny 2 pou₧itou k ulo₧enφ sekundßrnφ znakovΘ sady
(bit 3 atributu = 1). Hodnota 0-3 odpovφdß
znakovΘmu bloku 0-3.
4 NejvyÜÜφ bit v²b∞ru sekundßrnφ znakovΘ sady - pouze VGA
Tento bit se p°ipojuje na VGA k bit∙m 2 a 3.
Sekundßrnφ znakovß sada m∙₧e b²t na adaptΘru VGA
ulo₧ena v jednom z osmi znakov²ch blok∙.
5 NejvyÜÜφ bit v²b∞ru primßrnφ znakovΘ sady - pouze VGA
Tento bit na VGA rozÜi°uje bity 0 a 1.
Umo₧≥uje volbu primßrnφ znakovΘ sady z celkem osmi
znakov²ch blok∙.
6-7 Nepou₧ito
Memory Mode Registr Port: 3c5h
Pam∞¥ov² re₧im sequenceru Index: 4
============================================================
Popis: Tento registr ovliv≥uje p°φstup sequenceru k pam∞ti.
Bity Popis
---- ---------------------------------------------------
0 Textov² re₧im
Tento bit je nastaven na jedna v textov²ch
re₧imech a na nula v grafick²ch. V textov²ch
re₧imech je bitovß rovina 2 vyhrazena pro znakov²
generßtor.
1 RozÜφ°enφ pam∞ti
Tento bit je nastaven na jedna, pokud mß
adaptΘr vφce ne₧ 64K pam∞ti. V opaΦnΘm p°φpad∞ je
nastaven nula.
2 Pam∞¥ov² m≤d s odd∞len²mi sud²mi a lich²mi adresami
Kdy₧ je tento bit nastaven na jedna, data na
sud²ch adresßch jsou mapovßna do sud²ch bitov²ch
rovin a data na lich²ch adresßch jsou mapovßna do
lich²ch bitov²ch map. Toto nastavenφ se t²kß pouze
sequenceru. Pokud je pomocφ bitu 4 registru re₧imu
grafickΘho kontroleru p°epnut i grafick² kontroler
do tohoto re₧imu, snadno se emulujφ m≤dy CGA. Tento
pam∞¥ov² model je pou₧it i v textov²ch re₧imech,
kde jsou ASCII k≤dy znak∙ ulo₧eny v jednΘ bitovΘ
rovin∞ a atributy v druhΘ.
3 Z°et∞zenφ 4 bitov²ch map - pouze VGA
Nastavenφ tohoto bitu na jedna uvede v
Φinnost mapovßnφ podobnΘ tomu p°edchozφmu. Adresy
jsou vÜak rozd∞leny do Φty° skupin. Adresy, kterΘ
jsou nßsobkem Φty° jsou ulo₧eny v bitovΘ rovin∞ 0.
Adresy, kterΘ po vyd∞lenφ Φty°mi dßvajφ zbytek
jedna jsou ulo₧eny v bitovΘ rovin∞ 1 atd. Tento
pam∞¥ov² re₧im vyu₧φvß m≤d 13h (320 x 200, 256
barev). Ka₧dß bitovß rovina obsahuje jen ka₧d²
Φtvrt² byte. Procesor vÜak vidφ celou pam∞¥ovou
oblast souvisle.
4-7 Nepou₧ito
Registry CRTC
Registry CRTC tvo°φ nejv∞tÜφ skupinu registr∙ adaptΘru
EGA a VGA. Ovlßdajφ veÜkerΘ funkce t²kajφcφ se Φasovanφ
a synchronizace vytvß°enφ obrazu. JedineΦnostφ registr∙ CRTC
je to, ₧e se mohou vyskytovat na dvou r∙zn²ch portech.
V monochromatick²ch re₧imech se pro p°φstup k CRTC registr∙m
pou₧φvajφ porty 3b4h/3b5h a v barevn²ch re₧imech se
pou₧φvajφ porty 3d4h/3d5h. Toto dvojφ umφst∞nφ je d∙sledkem
zachovßvßnφ zp∞tnΘ kompatibility s MDA a CGA. Tyto adaptΘry
majφ toti₧ registry CRTC umφst∞ny na rozdφln²ch portech.
Jeliko₧ registr∙ CRTC je velikΘ mno₧stvφ a jejich
souvislost by nemusela b²t na prvnφ pohled z°ejmß, povφme se
nejprve n∞co o zp∙sobu tvorby obrazu na stφnφtku monitoru.
Obraz je vytvß°en tφm, ₧e vrstva luminescenΦnφ lßtky je
aktivovßna pomocφ elektronovΘho paprsku. Tato aktivace se
projevφ rozsvφcenφm ozß°enΘ Φßsti luminoforu. ╚φm siln∞jÜφ
elektronov² svazek dopadal na stφnφtko, tφm jasn∞jÜφ bude
obraz. Na barevnΘm displeji jsou naneseny luminofory t°φ
zßkladnφch barev (bu∩ v tenk²ch prou₧cφch vedle sebe, nebo
jako trojice teΦek), kterΘ po slo₧enφ dßvajφ v²slednou
barvu.
Elektronov² paprsek zaΦφnß sv∙j pohyb v levΘm hornφm
rohu obrazovky. P°i pohybu doprava vykresluje jednu °ßdku.
Kdy₧ dosßhne pravΘho okraje stφnφtka, paprsek se deaktivuje
a p°esovß se na nßsledujφcφ °ßdku vlevo (tzv. zp∞tn² chod
paprsku). Tento cel² proces se opakuje, dokud nenφ
vykreslena celß obrazovka. Z pravΘho okraje poslednφ °ßdky
se deaktivovan² paprsek p°esouvß zp∞t do levΘho hornφho
rohu. Samotn² obraz videopam∞ti nezabφrß celou tuto plochu.
Okolo obrazu je jeÜt∞ rßmeΦek vypln∞n² urΦitou barvou (viz
obr. 9).
Registry CRTC m∙₧eme rozd∞lit do dvou skupin podle toho
zda ovliv≥ujφ zobrazovßnφ jednΘ °ßdky (horizontßlnφ) nebo
sklßdßnφ t∞chto °ßdek do v²slednΘho obrazu (vertikßlnφ).
Tvorbu obrazu a velikost rozliÜenφ ovliv≥ujφ tyto registry:
Horizontßlnφ - Celkov² poΦet znak∙ (index 0)
PoΦet zobrazovan²ch znak∙ (index 1)
ZaΦßtek zatemn∞nφ (index 2)
Konec zetemn∞nφ (index 3)
ZaΦßtek zp∞tnΘho impulsu (index 4)
Konec zp∞tnΘho chodu paprsku (index 5)
Vertikßlnφ - Celkov² poΦet °ßdek (index 6)
ZaΦßtek zp∞tnΘho chodu paprsku (index 10h)
Konec zp∞tnΘho chodu (index 11h)
PoΦet zobrazovan²ch °ßdek (index 12h)
ZaΦßtek zatemn∞nφ (index 15h)
Konec zatemn∞nφ (index 16h)
N∞kterΘ z t∞chto registr∙ jsou vφce ne₧ osmibitovΘ.
Zb²vajφcφ bity majφ umφst∞ny v registru p°eteΦenφ
(Overflow-register) s indexem 7.
Horizontßlnφ hodnoty jsou ve znacφch. PoΦφtßnφ
horizontßlnφ pozice zaΦφnß od nuly a konΦφ celkov²m poΦtem
znak∙ (index 0) plus jedna (EGA) nebo plus Φty°i (VGA). Data
jsou zobrazovßna od 0 do poΦtu zobrazovan²ch znak∙. Ten b²vß
obvykle 39 nebo 79. Dostßvßme tak 40 nebo 80 znak∙ na °ßdku
(v grafice krßt 8 - poΦet bit∙ na znak - dostßvßme 320 nebo
640). Na pozici nßsledujφcφ za poslednφm zobrazen²m znakem
obvykle zaΦφnß zatemn∞nφ (hodnota registru b²vß nejΦast∞ji
40 nebo 80) p°i zatemn∞nφ se generuje rßmeΦek. O n∞kolik
znak∙ pozd∞ji zaΦφnß zp∞tn² chod paprsku. Registry urΦujφcφ
konec zatemn∞nφ a zp∞tnΘho chodu pou₧φvajφ pouze sv²ch 5
nejni₧Üφch bit∙. Pokud 5 nejni₧Üφch bit∙ aktußln∞ kreslenΘho
znaku odpovφdß konci zatemn∞nφ, zaΦne se vykreslovat lev²
rßmeΦek. PotΘ u₧ se Φekß jen na to a₧ bude konec zp∞tnΘho
chodu odpovφdat aktußlnφ poloze paprsku a zaΦφnß
vykreslovßnφ novΘ °ßdky. Proto₧e mezi koncem zp∞tnΘho chodu
a zaΦßtkem vykreslovßnφ novΘ °ßdky je mßlo Φasu, lze
zaΦßtek vykreslovßnφ novΘ °ßdky posunout pomocφ bit∙ 5 a 6
registru konec zatemn∞nφ.
Vertikßlnφ registry majφ obdobn² v²znam, pouze jejich
jednotkou nejsou znaky, ale °ßdky. Vertikßlnφ snφmkovacφ
frekvence b²vß obvykle v rozsahu od 50 do 90 Hz. Obecn∞ lze
°φcφ, Φφm v∞tÜφ je tato frekvence, tφm ost°ejÜφ
a kvalitn∞jÜφ je obraz. Pokud je tato frekvence menÜφ ne₧
60 Hz, m∙₧e nßm obraz p°ipadat nestßl² a klepajφcφ se.
CRTC Adress register Port: 3?4h
Adresov² registr CRTC
============================================================
Popis: Adresov² registr CRTC urΦuje, kter² z registr∙ CRTC
bude p°φstupn² p°es datov² registr CRTC. Tento
registr se m∙₧e vyskytovat na dvou r∙zn²ch portech.
Na adaptΘru VGA m∙₧ete zjistit pomocφ bitu 0 registru
p°eΦtenΘho z portu 3cch, kterß ze dvou mo₧nostφ
umφst∞nφ je prßv∞ pou₧φvßna.
/-------------------------------------------------------\
|Index| Registr |
|-----+-------------------------------------------------|
| 00h | Celkov² horizontßlnφ poΦet znak∙ |
| 01h | Horizontßlnφ poΦet zobrazovan²ch znak∙ |
| 02h | ZaΦßtek horizontßlnφho zatemn∞nφ |
| 03h | Konec horizontßlnφho zatemn∞nφ |
| 04h | ZaΦßtek horizontßlnφho zp∞tnΘho chodu paprsku |
| 05h | Konec horizontßlnφho zp∞tnΘho chodu paprsku |
| 06h | Celkov² vertikßlnφ poΦet °ßdek |
| 07h | Registr p°eteΦenφ |
| 08h | Verikßlnφ posun ve znakov²ch re₧imech |
| 09h | PoΦet °ßdek na znak |
| 0ah | ZaΦßtek kurzoru |
| 0bh | Konec kurzoru |
| 0ch | PoΦßteΦnφ adresa - vyÜÜφ byte |
| 0dh | PoΦßteΦnφ adresa - ni₧Üφ byte |
| 0eh | Pozice kurzoru - vyÜÜφ byte |
| 0fh | Pozice kurzoru - ni₧Üφ byte |
| 10h | ZaΦßtek vertikßlnφho zp∞tnΘho chodu |
| | EGA Φtenφ - Pozice sv∞telnΘho pera - vyÜÜφ byte |
| 11h | Konec vertikßlnφho zp∞tnΘho chodu |
| | EGA Φtenφ - Pozice sv∞telnΘho pera - ni₧Üφ byte |
| 12h | Vertikßlnφ poΦet zobrazovan²ch °ßdek |
| 13h | Offset |
| 14h | Pozice podtr₧enφ |
| 15h | ZaΦßtek vertikßlnφho zatemn∞nφ |
| 16h | Konec vertikßlnφho zatemn∞nφ |
| 17h | Ovlßdßnφ re₧imu |
| 18h | Porovnßnφ °ßdky |
\-------------------------------------------------------/
Horizontal Total Register Port: 3?5h
Celkov² horizontßlnφ poΦet znak∙ Index: 00h
============================================================
Popis: Tento registr obsahuje poΦet znak∙ v jednΘ
horizontßlnφ °ßdce plus znaky odpovφdajφcφ zp∞tnΘmu
chodu paprsku. Internφ ΦφtaΦ se po dosa₧enφ tΘto
hodnoty vynuluje. Nov² interval pro dalÜφ °ßdku zaΦne
jeden takt po vynulovßnφ ΦφtaΦe.
Hodnota v tomto registru je u EGA o 2 menÜφ a u VGA o
5 menÜφ ne₧ skuteΦn² poΦet znakov²ch dΘlek na jednΘ
°ßdce.
AdaptΘr v₧dy pova₧uje prvnφ zobrazitelnou pozici za
prvnφ pozici v ΦφtaΦi. Nßsledujφcφ intervaly p°φsluÜφ
pravΘmu rßmeΦku, zp∞tnΘmu chodu paprsku a levΘmu
rßmeΦku.
Tento registr ovliv≥uje horizintßlnφ velikost pixelu.
╚φm je hodnota tohoto registru vyÜÜφ, tφm vφce znak∙
se musφ na jednΘ °ßdce zobrazit a tφm menÜφ musφ b²t
jeden bod.
Bity Popis
---- ---------------------------------------------------
0-7 Celkov² horizontßlnφ poΦet znak∙ (o dv∞ menÜφ na
EGA a o p∞t menÜφ na VGA).
Horizontal Display Enable End Register Port: 3?5h
Horizontßlnφ poΦet zobrazovan²ch znak∙ Index: 01h
============================================================
Popis: Tento registr obsahuje poΦet znakov²ch Üφ°ek v
zobrazovanΘ oblasti. Pokud internφ ΦφtaΦ dosßhne
hodnoty v tomto registru, zaΦφnß vykreslovßnφ pravΘ
Φßsti rßmeΦku.
Hodnota v tomto registru je o 1 menÜφ ne₧ poΦet
zobraziteln²ch znak∙. Hodnota 0 tedy znamenß, ₧e bude
zobrazovßn jeden znak na °ßdku.
Bity Popis
---- ---------------------------------------------------
0-7 Horizontßlnφ poΦet zobrazovan²ch znak∙ mφnus jedna
(obvykle 39 nebo 79).
Start Horizontal Blanking Register Port: 3?5h
ZaΦßtek horizontßlnφho zatemn∞nφ Index: 02h
============================================================
Popis: Pokud ΦφtaΦ dosßhne hodnoty tohoto registru, zaΦne
horizontßlnφ zatemn∞nφ, tj. zaΦne se vykreslovat
prav² rßmeΦek. Vykreslovßnφ pravΘ Φßsti rßmeΦku
skonΦφ v okam₧iku, kdy ΦφtaΦ dosßhne hodnoty registru
zaΦßtek zp∞tnΘho chodu.
Bity Popis
---- ---------------------------------------------------
0-7 Pozice, na kterΘ se zeΦne zobrazovat pravß Φßst
rßmeΦku.
End Horizontal Blanking Register Port: 3?5h
Konec horizontßlnφho zatemn∞nφ Index: 03h
============================================================
Popis: Tento registr obsahuje hodnotu ΦφtaΦe, p°i kter se
p°estane s vykreslovßnφm rßmeΦku. Obsahuje pouze 5
mΘn∞ v²znamn²ch bit∙ tΘto hodnoty. Ty v²znamn∞jÜφ
jsou shodnΘ s bity v registru pro zaΦßtek
horizontßlnφho zatm∞nφ.
Tento registr takΘ obsahuje kontrolu nad pauzou,
kterß p°edchßzφ zobrazovßnφ novΘ °ßdky. B∞hem tΘto
pauzy musφ mφt CRTC dost Φasu k p°φstupu do
videopam∞ti, ke znakovΘmu generßtoru a k atribut∙m.
Pokud je tato pauza p°φliÜ malß, m∙₧e b²t prvnφ znak
zobrazovßn vφcekrßt. Pokud je pauza p°φliÜ velkß,
m∙₧e b²t n∞kolik prvnφch znak∙ nezobrazen²ch.
Bity Popis
---- ---------------------------------------------------
0-4 Konec horizontßlnφho zatemn∞nφ.
5-6 Pauza po napln∞nφ internφho horizontßlnφho ΦφtaΦe
= 00b Äßdnß pauza
= 01b Pauza odpovφdajφcφ vykreslenφ jednoho znaku
= 10b Pauza odpovφdajφcφ vykreslenφ dvou znak∙
= 11b Pauza odpovφdajφcφ vykreslenφ t°φ znak∙
7 EGA - Nepou₧ito
VGA - UrΦeno pro testovßnφ, m∞lo by b²t nastaveno
na 1.
Start Horizontal Retrace Pulse Register Port: 3?5h
ZaΦßtek horizontßlnφho zp∞tnΘho chodu paprsku Index: 04h
============================================================
Popis: Tento registr obsahuje hodnotu ΦφtaΦe, p°i kterΘ
bude vygenerovßn impuls zp∞tnΘho chodu a elektronov²
paprsek bude p°esouvßn doleva. Zp∞tn² chod m∙₧e b²t
prodlou₧en pomocφ n∞kter²ch bit∙ registru konec
zp∞tnΘho chodu paprsku.
Bity Popis
---- ---------------------------------------------------
0-7 Hodnota internφho ΦφtaΦe, p°i kterΘ zaΦne b²t
generovßn signßl pro zp∞tn² chod paprsku.
End Horizontal Retrace Register Port: 3?5h
Konec horizontßlnφho zp∞tnΘho chodu paprsku Index: 05h
============================================================
Popis: Tento registr obsahuje p∞t mΘn∞ v²znamn²ch bit∙,
kterΘ p°i shod∞ s internφm ΦφtaΦem ukonΦφ zp∞tn² chod
elektronovΘho paprsku. T°i v²znamn∞jÜφ bity jsou
shodnΘ s registrem urΦujφcφm zaΦßtek zp∞tnΘho chodu.
Bity 5-6 urΦujφ pauzu, o kterou bude prodlou₧en
zp∞tn² chod paprsku. M∙₧e b²t pou₧ita pro
synchronizaci se zatem≥ovßnφm.
Tento registr obsahuje na adaptΘrech VGA v bitu 7
Üest² bit registru konec horizontßlnφho zatemn∞nφ.
Bity Popis
---- ---------------------------------------------------
0-4 P∞t mΘn∞ v²znamn²ch bit∙ ΦφtaΦe, p°i kter²ch skonΦφ
zp∞tn² chod paprsku.
5-6 Pauza po nßvratu paprsku
= 00b Äßdnß pauza
= 01b Pauza odpovφdajφcφ vykreslenφ jednoho znaku
= 10b Pauza odpovφdajφcφ vykreslenφ dvou znak∙
= 11b Pauza odpovφdajφcφ vykreslenφ t°φ znak∙
7 RozÜφ°enφ horizontßlnφho scrolovßnφ - pouze EGA
Tento bit je normßln∞ nastaven na 0. Pokud
mßte EGA kartu s vφce ne₧ 64K pam∞ti, m∙₧ete tento
bit pou₧φt pro rozÜφ°enφ rozsahu scrolovßnφ. pro
vyu₧itφ tΘto schopnosti nejprve nastavte tento bit
na 0. PotΘ scrolujte b∞₧n²m zp∙sobem o 8 pixel∙.
Nastavte tento bit na 1 a op∞t b∞₧n²m zp∙sobem
scrolujet o osm bod∙. PotΘ zm∞nte poΦßteΦnφ adresu
zobrazovan²ch dat a cel² proces opakujte. Karta VGA
mß obdobn² bit v registru pro poΦet °ßdek na znak.
7 6. bit registru konec horizontßlnφho zatemn∞nφ - pouze VGA
Tento bit rozÜi°uje registr konce
horizontßlnφho zatemn∞nφ.
Vertical Total Register Port: 3?5h
Celkov² vertikßlnφ poΦet °ßdek Index: 06h
============================================================
Popis: Tento registr obsahuje osm mΘn∞ v²znamn²ch bit∙ poΦtu
zobrazovan²ch °ßdek plus poΦet °ßdek pot°ebn²ch na
zat∞mn∞nφ a zp∞tn² chod paprsku. Internφ vertikßlnφ
ΦφtaΦ bude pracovat od 0 do tΘto hodnoty. V registru
p°eteΦenφ jsou ulo₧eny bit 8 a 9 (VGA) tohoto
registru.
Bity Popis
---- ---------------------------------------------------
0-7 Osm mΘn∞ v²znamn²ch bit∙ celkovΘho poΦtu °ßdek.
CRTC Overflow register Port: 3?5h
Registr p°eteΦenφ Index: 07h
============================================================
Popis: tento registr obsahuje nejv²znamn∞jÜφ bity n∞kter²ch
registr∙ CRTC, kterΘ p°ekroΦily osmibitov² rozsah.
Bity Popis
---- ---------------------------------------------------
0 9. bit registru celkov² vertikßlnφ poΦet °ßdek
1 9. bit registru vertikßlnφ poΦet zobrazovan²ch
°ßdek
2 9. bit registru zaΦßtek vertikßlnφho zp∞tnΘho chodu
3 9. bit registru zaΦßtek vertikßlnφho zatemn∞nφ
4 9. bit registru porovnßnφ °ßdky
5 10. bit registru celkov² vertikßlnφ poΦet °ßdek -
pouze VGA
6 10. bit registru vertikßlnφ poΦet zobrazovan²ch
°ßdek - pouze VGA
7 10. bit registru zaΦßtek vertikßlnφho zp∞tnΘho
chodu - pouze VGA
Preset Row Scan Register Port: 3?5h
Vertikßlnφ poΦet ve znakov²ch re₧imech Index: 08h
============================================================
Popis: Prvnφ zobrazovanß °ßdka je urΦena obsahem registru
poΦßteΦnφ adresa zobrazovßnφ plus offset urΦen² tφmto
registrem. Tento registr obsahuje poΦßteΦnφ °ßdku pro
zobrazovßnφ (normßln∞ 0). Tento registr se pou₧φvß
pro implmentaci plynulΘho scrolovßnφ v textov²ch
re₧imech. UrΦuje na kolikßtΘ °ßdce znaku zaΦne
zobrazovßnφ. Hodnota tohoto registru by tedy nem∞la
p°esßhnout poΦet °ßdek jednoho znaku. V grafick²ch
re₧imech by m∞l b²t tento registr nastaven na nula.
PlynulΘ vertikßlnφ scrolovßnφ lze v grafick²ch
re₧imech provßd∞t za pou₧itφ samotnΘho registru
poΦßteΦnφ adresy zobrazovßnφ.
Zm∞na tohoto registru se promφtne a₧ do nßsledujφcφho
zobrazovacφho intervalu. Pouze pokud je zm∞na
provedena b∞hem vykreslovßnφ prvnφ °ßdky, je reakce
na zm∞nu nastavenφ okam₧itß. Tento registr by tedy
m∞l b²t m∞n∞n bu∩ b∞hem vertikßlnφho zp∞tnΘho chodu
paprsku nebo b∞hem prvnφho horizontßlnφho zp∞tnΘho
chodu.
Bity Popis
---- ---------------------------------------------------
0-4 ╚φslo prvnφ zobrazovanΘ °ßdky po skonΦenφ
vertikßlnφho zp∞tnΘho chodu.
5-6 4. a 5. bit horizontßlnφho scrolovßnφ - pouze VGA
Tyto bity rozÜi°ujφ registr pro horizontßlnφ
posun obrazu doleva. Toto rozÜφ°enφ je nutnΘ pokud
je pou₧φvßno z°et∞zenφ bitov²ch map.
7 Nepou₧ito
Maximum Scan Line Register Port: 3?5h
PoΦet °ßdek na znak Index: 09h
============================================================
Popis: Registr obsahuje v²Üku pou₧φvan²ch znak∙ mφnus jedna.
Tento registr mß uveden² v²znam pouze v textov²ch
re₧imech.
Bity Popis
---- ---------------------------------------------------
0-4 V²Üka pou₧φvan²ch znak∙ mφnus jedna
5 10. bit registru zaΦßtek vertikßlnφho zatemn∞nφ -
pouze VGA
6 10. bit registru porovnßnφ °ßdky - pouze VGA
7 Konverze 200 na 400 - pouze VGA
Pokud je tento bit nasatven na jedna, je
ka₧dß °ßdka v 200 °ßdkovΘm re₧imu zobrazovßna
dvakrßt. Dosahuje se tak stejnΘ kvality zobranφ
jako p°i vertikßlnφm rozliÜenφ 400.
Cursor Start Register Port: 3?5h
ZaΦßtek kurzoru Index: 0ah
============================================================
Popis: Obsah tohoto registru urΦuje Φφslo °ßdky znakovΘho
boxu, na kterΘ zaΦne b²t zobrazovßn kurzor. Poslednφ
°ßdka kurzoru se nastavuje pomocφ registru konec
kurzoru (index 0bh). Tento registr je platn² pouze v
textov²ch re₧imech. ╪ßdky jsou Φφslovßny odshora
dol∙, od 0 do poΦtu byte na znak mφnus jedna.
Pokud je na adaptΘrech EGA poΦßteΦnφ °ßdka kurzoru
v∞tÜφ ne₧ koncovß, zobrazφ se inverznφ kurzor. Na VGA
toto nastavenφ vede ke zmizenφ kurzoru.
Bity Popis
---- ---------------------------------------------------
0-4 ZaΦßtek kurzoru
╚φslo °ßdky, na kterΘ zaΦne zobrazovßnφ
kurzoru.
5 Vypnutφ kurzoru - pouze VGA
Pokud je tento bit nastaven na jedna, kurzor
nenφ zobrazovßn.
6-7 Nepou₧ito
Cursor End Register Port: 3?5h
Konec kurzoru Index: 0bh
============================================================
Popis: Obsah tohoto registru urΦuje Φφslo °ßdky znakovΘho
boxu, na kterΘm p°estane zobrazovßnφ kurzoru. Prvnφ
zobrazovanß °ßdka kurzoru se nastavuje pomocφ
registru zaΦßtek kurzoru (index 0ah). ╚φslovßnφ °ßdek
zaΦφnß odshora od nuly.
Tento registr obsahuje bity 5 a 6, kterΘ umo₧≥ujφ
ovlßdat pauzu po vyslßnφ kontrolnφho signßlu kurzoru.
Bity Popis
---- ---------------------------------------------------
0-4 Konec kurzoru
╚φslo °ßdky, na kterΘ skonΦφ zobrazovßnφ
kurzoru.
5-6 Spo₧d∞nφ kontrolnφho signßlu kurzoru
= 00b Äßdnß pauza
= 01b Pauza odpovφdajφcφ vykreslenφ jednoho znaku
= 10b Pauza odpovφdajφcφ vykreslenφ dvou znak∙
= 11b Pauza odpovφdajφcφ vykreslenφ t°φ znak∙
7 Nepou₧ito
Start Address High Register Port: 3?5h
PoΦßteΦnφ adresa - vyÜÜφ byte Index: 0ch
============================================================
Popis: Tento registr obsahuje osm nejv²znamn∞jÜφch bit∙
adresy (z pohledu CRTC), na kterΘ je prvnφ
zobrazovan²m znak (v textov²ch re₧imech) nebo prvnφ
zobrazovan² pixel (v grafick²ch re₧imech). Osm mΘn∞
v²znamn²ch bit∙ je ulo₧eno v registru s indexem 0dh.
Tento registr umo₧≥uje snadnou implementaci
vertikßlnφho scrolovßnφ. Zm∞na tohoto registru se
projevuje na zaΦßtku zp∞tnΘho chodu paprsku. Registr
by tedy m∞l b²t nastaven b∞hem aktivnφho
zobrazovacφho intervalu.
Bity Popis
---- ---------------------------------------------------
0-7 V²znamn∞jÜφch osm bit∙ adresy poΦßtku zobrazovßnφ.
Start Adddress Low Register Port: 3?5h
PoΦßteΦnφ adresa - ni₧Üφ byte Index: 0dh
============================================================
Popis: Tento registr obsahuje osm mΘn∞ v²znamn²ch bit∙
adresy (z pohledu CRTC), na kterΘ je prvnφ
zobrazovan² znak (v textov²ch re₧imech) nebo prvnφ
zobrazovan² pixel (v grafick²ch re₧imech). Osm
v²znamn∞jÜφch bit∙ je ulo₧eno v registru s indexem
0ch.
Tento registr umo₧≥uje snadnou implementaci
vertikßlnφho scrolovßnφ. Zm∞na tohoto registru se
projevuje na zaΦßtku zp∞tnΘho chodu paprsku. Registr
by tedy m∞l b²t nastaven b∞hem aktivnφho
zobrazovacφho intervalu.
Bity Popis
---- ---------------------------------------------------
0-7 Osm mΘn∞ v²znamn²ch bit∙ adresy poΦßtku zobrazovßnφ.
Cursor Location High Register Port: 3?5h
Pozice kurzoru - vyÜÜφ byte Index: 0eh
============================================================
Popis: Tento registr obsahuje osm v²znamn∞jÜφch bit∙
16bitovΘ adresy CRTC, na kterΘ je umφst∞n kurzor.
Zb²vajφcφch osm mΘn∞ v²znamn²ch bit∙ je ulo₧eno v
nßsledujcφm registru (index 0fh).
Bity Popis
---- ---------------------------------------------------
0-7 Osm v²znamn∞jÜφch bit∙ adresy pozice kurzoru.
Cursor Location Low Register Port: 3?5h
Pozice kurzoru - ni₧Üφ byte Index: 0fh
============================================================
Popis: Tento registr uchovßvß osm mΘn∞ v²znamn²ch bit∙
adresy CRTC, na kterΘ je umφst∞n kurzor. Osm
v²znamn∞jÜφch bit∙ je ulo₧eno v registru p°edchozφm
(index 0eh).
Bity Popis
---- ---------------------------------------------------
0-7 Osm mΘn∞ v²znamn²ch bit∙ adresy pozice kurzoru.
Vertical Retrace Start Register Port: 3?5h
ZaΦßtek vertikßlnφho zp∞tnΘho chodu Index: 10h
============================================================
Popis: Tento registr obsahuje osm mΘn∞ v²znamn²ch bit∙
hodnoty, kterß p°i shod∞ s internφm vertikßlnφm
ΦφtaΦem vyvolß zp∞tn² chod paprsku. ╚φtaΦ nab²vß
hodnot od 0 do celkovΘho poΦtu vertikßlnφch °ßdek.
Devat² a desßt² bit tohoto registru jsou ulo₧eny v
registru p°eteΦenφ (index 07h).
Bity Popis
---- ---------------------------------------------------
0-7 8 mΘn∞ v²znamn²ch bit∙ hodnoty ΦφtaΦe vyvolßvajφcφ
zp∞tn² chod paprsku.
Light Pen High Register Port: 3?5h
Pozice sv∞telnΘho pera - vyÜÜφ byte
Pouze EGA, pouze Φtenφ Index: 10h
============================================================
Popis: Pokud je sv∞telnΘ pero p°ilo₧eno k obrazovce, vracφ
tento registr osm vφce v²znamn²ch bit∙ adresy, kterß
odpovφdß pozici sv∞telnΘho pera.
Tuto funkci podporuje pouze EGA. VGA sv∞telnΘ pero
nepodporuje.
Bity Popis
---- ---------------------------------------------------
0-7 Osm v²znamn∞jÜφch bit∙ adresy sv∞telnΘho pera.
Vertical Retrace End Register Port: 3?5h
Konec vertikßlnφho zp∞tnΘho chodu Index: 11h
============================================================
Popis: Tento registr obsahuje Φty°i mΘn∞ v²znamnΘ bity,
kterΘ p°i shod∞ s ΦφtaΦem ukonΦφ zp∞tn² chod paprsku.
Zb²vajφcφ v²znamn∞jÜφ bity jsou shodnΘ s bity
registru zaΦßtek zp∞tnΘho chodu.
Tento registr taktΘ₧ obsahuje bity pro mazßnφ a
povolenφ vertikßlnφho p°eruÜenφ (IRQ 2). Pokud
pou₧φvßte vertikßlnφ p°eruÜenφ, m∞la by jeho obslu₧nß
rutina p°ed sv²m skonΦenφm smazat p°eruÜenφ a znovu
ho povolit. To lze provΘst zapsßnφm nul do bit∙ 4 a 5
a potΘ zapsßnφm jedniΦky do bitu 4. P°eruÜenφ IRQ 2
m∙₧e b²t vyvolßno i jin²m za°φzenφm ne₧
videoadaptΘrem (u AT jsou na n∞m kaskßdov∞ p°ipojena
p°eruÜenφ 8 a₧ 15). Pokud bylo p°eruÜenφ vyvolßno
adaptΘrem je nastaven bit 7 vstupnφho stavovΘho
registru 0 (port 3c2h).
Bity Popis
---- ---------------------------------------------------
0-3 4 mΘn∞ v²znamnΘ bity ΦφtaΦe pro ukonΦenφ zp∞tnΘho
chodu paprsku.
4 Smazßnφ vertikßlnφho p°eruÜenφ
Nastavenφ tohoto bitu na 0 sma₧e p°edeÜlou
aktivaci vertikßlnφho p°eruÜenφ.
5 Povolenφ vertikßlnφho p°eruÜenφ
Zapsßnφ nuly do tohoto bitu povol² generovßnφ
vertikßlnφho p°eruÜenφ p°i ka₧dΘm vyvolßnφ
vertikßlnφho zp∞tnΘho chodu paprsku.
6 Nastav 5 obnovovacφch cykl∙ - pouze VGA
Tento registr urΦuje poΦet pam∞¥ov²ch
obnovovacφch cykl∙ b∞hem zobrazovßnφ jednΘ °ßdky.
Normßln∞ je tento bit nastaven na 0 a jsou
generovßny t°i signßly pro osv∞₧enφ pam∞ti. Pokud
je bit nastaven na jedna, je generovßno p∞t
osv∞₧enφ RAM, co₧ dovoluje p°ipojit monitor s
°ßdkovou frekvencφ 15.75 kHz.
7 Ochrana R0-R7 - pouze VGA
Registry CRTC s indexy 0 - 7 mohou b²t
chrßn∞ny proti p°epsßnφ nastavenφm tohoto bitu na
jedna. Registry 0-7 obsahujφ d∙le₧itΘ informace o
Φasovßnφ adaptΘru a tak by m∞ly b²t tφtmto zp∙sobem
chrßn∞ny p°ed ne₧ßdoucφm p°epsßnφm.
Light Pen Low Register Port: 3?5h
Pozice sv∞telnΘho pera - ni₧Üφ byte
Pouze EGA, pouze Φtenφ Index: 11h
============================================================
Popis: Pokud je sv∞telnΘ pero p°ilo₧eno k obrazovce, vracφ
tento registr osm mΘn∞ v²znamn²ch bit∙ adresy, kterß
odpovφdß pozici sv∞telnΘho pera.
Tuto funkci podporuje pouze EGA. VGA sv∞telnΘ pero
nepodporuje.
Bity Popis
---- ---------------------------------------------------
0-7 Osm mΘn∞ v²znamn²ch bit∙ adresy sv∞telnΘho pera.
Vertical Display Enable Register Port: 3?5h
Vertikßlnφ poΦet zobrazovan²ch °ßdek Index: 12h
============================================================
Popis: Tento registr obsahuje osm mΘn∞ v²znamn²ch bit∙
celkovΘho poΦtu zobrazovan²ch °ßdek. ╪ßdky jsou
Φφslovßny od 0, tudφ₧ registr obsahuje o jedniΦku
menÜφ Φφslo, ne₧ je poΦet zobrazovan²ch °ßdek. Bity 8
a 9 jsou obsa₧eny v registru p°eteΦenφ (index 07h).
Bity Popis
---- ---------------------------------------------------
0-7 Osm mΘn∞ v²znamn²ch bit∙ poΦtu zobrazovan²ch °ßdek
mφnus jedna.
Offset Register Port: 3?5h
Offset Index: 13h
============================================================
Popis: Tento registr obsahuje velikost videopam∞ti
spot°ebovanΘ na jednu zobrazovacφ °ßdku. Tato
velikost nemusφ odpovφdat skuteΦnΘ velikosti
zobrazovanΘ °ßdky. Pokud je v∞tÜφ, m∙₧e toho b²t
v²hodn∞ u₧ito p°i horizontßlnφm scrolovßnφ obrazovky.
DΘlka °ßdky je udßvßna ve dvojicφch, Φtve°icφch nebo
osmicφch byte (platnΘ nastavenφ lze zjistit v
registru sequenecru ovlßdajφcφm re₧im ΦasovaΦe (index
01h).
Bity Popis
---- ---------------------------------------------------
0-7 Logickß dΘlka jednΘ °ßdky (d∞lenß 2, 4 nebo 8).
Underline Location Register Port: 3?5h
Pozice podtr₧enφ Index: 14h
============================================================
Popis: Tento registr nastavuje pozici podtr₧enφ ve znakovΘm
boxu. Pozice se poΦφtß od nuly od shora znakovΘho
boxu.
Bity Popis
---- ---------------------------------------------------
0-4 Pozice podtr₧enφ ve znakovΘm boxu.
5 Adresa po 4 taktech - pouze VGA
Nastavenφ tohoto bitu na jedna vyd∞lφ
frekvenci, kterß zv∞tÜuje ΦφtaΦ adresy pam∞ti,
Φty°ikrßt. Adresa bude m∞n∞na a₧ po ka₧dΘm ΦtvrtΘm
taktu.
6 Pam∞¥ov² m≤d dvojslov - pouze VGA
Nastavenφm tohoto bitu na jedna si vynutφte
pou₧φvanφ dvojslovovΘho adresovßnφ. P°ed pou₧itφm
tΘto mo₧nosti musφte nastavit bit 6 registru
ovlßdßnφ re₧imu (index 17h) na nula.
7 Nepou₧ito
Start Vertical Blanking Register Port: 3?5h
ZaΦßtek vertikßlnφho zatemn∞nφ Index: 15h
============================================================
Popis: Tento registr obsahuje osm mΘn∞ v²znamn²ch bit∙, po
jejich₧ dosa₧enφ ΦφteΦem bude generovßn zaΦßtek
vertikßlnφho zatemn∞nφ, tj. zaΦne se vykreslovat
spodnφ Φßst rßmeΦku. 9. bit tohoto registru je ulo₧en
v registru p°eteΦenφ (index 07h) a 10. bit (pro VGA)
v registru poΦet °ßdek na znak (index 09h).
Bity Popis
---- ---------------------------------------------------
0-7 8 mΘn∞ v²znamn²ch bit∙ hodnoty ΦφtaΦe, p°i kterΘ
zaΦne vertikßlnφ zatemn∞nφ.
End Vertical Blanking Port: 3?5h
Konec vertikßlnφho zatemn∞nφ Index: 16h
============================================================
Popis: Tento registr obsahuje 5 (VGA 8) mΘn∞ v²znamn²ch bit∙
hodnoty, p°i jejφ₧ shod∞ s internφm vertikßlnφm
ΦφtaΦem p°estane b²t generovßno vertikßlnφ zatemn∞nφ,
tj. skonΦφ vykreslovßnbφ hornφ Φßsti rßmeΦku.
V²znamn∞jÜφ bity jsou shodnΘ s bity v registru pro
zaΦßtek vertikßlnφho zatemn∞nφ.
Bity Popis
---- ---------------------------------------------------
0-4 Pouze EGA
5 mΘn∞ v²znamn²ch bit∙ hodnoty ΦφtaΦe, p°i
kterΘ se ukonΦφ vertikßlnφ zatemn∞nφ.
0-7 Pouze VGA
8 mΘn∞ v²znamn²ch bit∙ hodnoty ΦφtaΦe, p°i
kterΘ se ukonΦφ vertikßlnφ zatemn∞nφ.
Mode Control Register Port: 3?5h
Ovlßdßnφ re₧imu Index: 17h
============================================================
Popis: Tento registr umo₧≥uje ovlßdat zp∙sob mapovßnφ
videopam∞ti. Je obdobou registru pam∞¥ovΘho re₧imu
sequenceru a re₧imu grafickΘho kontroleru.
Bity Popis
---- ---------------------------------------------------
0 Podpora kompatibilnφch re₧im∙
Nastavenφ tohoto bitu na 0 vytvo°φ dv∞
oblasti pam∞ti, jednu pro sudΘ a druhou pro lichΘ
°ßdky. Oblasti zaΦφnajφ v₧dy na offsetu, kter² je
nßseobkem 8K. Dosa₧eno je toho zßm∞nou bitu 13
adresy pam∞ti za poslednφ bit Φφsla °ßdku. Toto
nastavenφ umo₧≥uje emulaci zobrazovacφch re₧im∙
kompatibilnφch s CGA.
1 V²b∞r adresy podle bitu 1 ΦφtaΦe °ßdek
Funkce tohoto bitu je podobnß funkci
p°edchozφho bitu. Pokud je bit nastaven na 0,
adresnφ bit 14 je nahrozovßn bitem 1 Φφsla °ßdku.
2 Zdvojenφ vertikßlnφho ΦφtaΦe °ßdek
Pokud je tento bit nastaven na nula, je
vertikßlnφ ΦφtaΦ zv∞tÜen o jedna po ka₧dΘm
horizontßlφm zp∞tnΘm chodu paprsku. Pokud je bit
nastaven na 1, je ΦφtaΦ zv∞tÜen po ka₧dΘm druhΘm
zp∞tnΘm horizontßlnφm chodu. Umo₧≥uje to
zdvojnßsobit vertikßlnφ rozliÜenφ.
3 Adresa po 2 taktech
Nastavenφ tohoto bitu na nula si vynutφ
zv∞tÜenφ adresnφho ΦφtaΦe po ka₧dΘm impulsu
ΦasovaΦe. Pokud je bit nastaven na jedna, je adresa
zv∞tÜena po ka₧dΘm druhΘm taktu.
4 Ovlßdßnφ v²stup∙ - pouze EGA
Normßln∞ je tento bit nastaven na nula. Jeho
nasatvenφ na jedna uvede v²stupy adaptΘru do stavu
s vysokou impendancφ.
5 Zarovnßvßnφ adresy
Tento bit je pou₧φvßn ve spojenφ s bitem 6
tohoto registru. V bajtovΘm m≤du nemß v²znam. Ve
word m≤du nastavenφ tohoto bitu na jedna umφstφ
adresnφ bit 15 na mφsto adresnφho bitu 0. Pokud je
tento bit 0, nastavφ se na adresnφ bit 0 adresnφ
bit 13. Bit 13 je pou₧φvßn pro spojovßnφ bitov²ch
map na kartßch EGA s 64K pam∞ti.
6 V²b∞r m≤du - byte/word
Byte m≤d je zvolen nastavenφm tohoto bitu na
1 a word m≤d nastavenφm tohoto bitu na 0. Word m≤d
umo₧≥uje st°φdßnφ dvou bitov²ch rovin (nap°φklad
znaky a atributy v textov²ch re₧imech). V tomto
m≤du jsou adresnφ bity posunuty doleva a bit nula
je nahrazen bitem 13 nebo 15. VGA podoruje takΘ
double-word m≤d, kdy je adresa posunuta o dva bity
doleva a bity 0 a 1 jsou nahrazeny bity 12 a 13.
7 Hardwarov² reset
Nastavenφ tohoto bitu na jedna povoluje
generovßnφ signßl∙ pro vertikßlnφ a horizontßlnφ
zp∞tnΘ chody paprsku (normßlnφ nastavenφ).
Nastavenφ na nula p°eruÜφ generovßnφ t∞chto
signßl∙.
Line Compare Register Port: 3?5h
Porovnßnφ °ßdky Index: 18h
============================================================
Popis: Tento registr obsahuje osm mΘn∞ v²znamn²ch bit∙
hodnoty °ßdkovΘho ΦφtaΦe. Po dosa₧enφ tΘto hodnoty
ΦφtaΦem dojde k vynulovßnφ ΦφtaΦe. Pou₧itφ tΘto
techniky m∙₧e Φßst obrazovky eliminovat ze
scrolovßnφ. Tato technika m∙₧e b²t pou₧ita takΘ
k implementovßnφ dvou oken. Prvnφ Φßst obrazovky
zobrazuje data od adresy urΦenΘ registrem poΦßteΦnφ
adresa (index 0ch a 0dh). DruhΘ okno zobrazuje v₧dy
data od adresy 0. V 200 °ßdkov²ch m≤dech by zde m∞la
b²t ulo₧ena pouze sudß hodnota. 9. bit tohoto
registru je ulo₧en v registru p°eteΦenφ (index 07h)
a 10. bit v registru poΦet °ßdek na znak (index 09h).
Bity Popis
---- ---------------------------------------------------
0-7 Osm mΘn∞ v²znamn²ch bit∙ hodnoty ΦφtaΦe, p°i kterΘ
se tento °ßdkov² ΦφtaΦ vynuluje.
Registry grafickΘho kontroleru
Grafick² kontroler mß na starosti komunikaci
videopam∞ti s procesorem. Jeho registry tedy ovlßdajφ zp∙sob
prßce CPU s videopam∞tφ. N∞kterΘ z registr∙ grafickΘho
kontroleru umo₧≥ujφ emulaci CGA re₧im∙.
Funkce registr∙ nßm m∙₧e b²t z°ejm∞jÜφ pokud si
osv∞₧φme operace provßd∞nΘ kontrolerem p°i Φtenφ a zßpisu do
pam∞ti. Ke ka₧dΘ bitovΘ rovin∞ p°φsluÜφ jeden 8bitov²
latch-registr. V grafick²ch m≤dech nep°istupuje do pam∞ti
p°φmo procesor, ale aritmeticko-logickß jednotka (ALU)
adaptΘru. P°i Φtenφ z videopam∞ti, jsou data naΦtena do tzv.
latch-registr∙. Obvykle je z celΘ osmice bod∙ m∞n∞n pouze
jeden. Latch-registry tedy slou₧φ k uchovßnφ hodnoty
nemodifikovan²ch bit∙. P°i zßpisu do pam∞ti, jsou p°φsluÜn∞
(v zßvislosti na zapisovacφm re₧imu) upraveny naposled ΦtenΘ
latch-registry a jejich obsah je ulo₧en do videopam∞ti.
Latch-registry by m∞ly b²t naΦteny p°ed modifikacφ pam∞ti
pomocφ instrukce MOV (nebo n∞jakΘ jejφ obdoby).
Grafick² kontroler umo₧≥uje volit z n∞kolika zp∙sob∙
kombinovßnφ dat v latch-registrech s daty z procesoru. Data
mohou b²t s latch-registry kombinovßna pomocφ logick²ch
operacφ AND, OR, XOR, mohou b²t rotovßna. BitovΘ pozice
mohou b²t maskovßny atd.
Graphics 1 and 2 Address Register Port: 3ceh
Adresov² registr grafickΘho kontroleru
============================================================
Popis: Obsah tohoto registru urΦuje, kter² registr bude
mapovßn na port 3cfh. Index pot°ebnΘho registru se
zapisuje na port 3ceh.
/-----------------------------------------------------\
|Index | Registr |
|------+----------------------------------------------|
| 0 | Set/Reset |
| 1 | Povolenφ Set/Reset (Enable Set/Reset) |
| 2 | Porovnßnφ barev (Color Compare) |
| 3 | Kombinace dat (Data Rotate) |
| 4 | Mapa pro Φtenφ (Read Map Select) |
| 5 | Re₧im grafickΘho kontroleru (Mode Register) |
| 6 | R∙znΘ (Miscellaneous) |
| 7 | Eliminace barev (Color Don't Care) |
| 8 | Bit mask |
\-----------------------------------------------------/
Set/Reset Register Port: 3cfh
Set/Reset registr Index: 0
============================================================
Popis: Tento registr urΦuje bitovΘ roviny, do kter²ch bude
v₧dy p°i modifikovßnφ videopam∞ti zapsßna nula nebo
jedniΦka. Nastavenφ bitovΘ roviny do SET re₧imu
zp∙sobφ, ₧e p°i ka₧dΘm zßpisu do videopam∞ti bude do
maskovan²ch bit∙ (registrem Bit mask) zapsßna
jedniΦka. RESET re₧im zp∙sobφ zapsßnφ nul do
maskovan²ch bit∙.
Tento registr je platn² pouze v zapisovacφch re₧imech
0 a 3. Pokud ho chcete pou₧φvat v zapisovacφm re₧imu
0, musφte nejprve p°φsluÜn²m bitem registru Povolenφ
Set/Reset povolit permanentnφ zapisovßnφ do bitovΘ
roviny.
Bity Popis
---- ---------------------------------------------------
0 = 0 RESET m≤d pro bitovou rovinu 0
= 1 SET m≤d pro bitovou rovinu 0
1 = 0 RESET m≤d pro bitovou rovinu 1
= 1 SET m≤d pro bitovou rovinu 1
2 = 0 RESET m≤d pro bitovou rovinu 2
= 1 SET m≤d pro bitovou rovinu 2
3 = 0 RESET m≤d pro bitovou rovinu 3
= 1 SET m≤d pro bitovou rovinu 3
Enable Set/Reset Register Port: 3cfh
Povolenφ Set/Reset Index: 1
============================================================
Popis: Tento registr slou₧φ k aktivovßnφ slu₧by Set/Reset
pro jednotlivΘ bitovΘ roviny. Nastavenφ bitu tohoto
registru na jedna aktivuje pou₧φvßnφ nastavenφ
Set/Reset registru pro urΦitou bitovouu rovinu.
Bity Popis
---- ---------------------------------------------------
0 Povolenφ Set/Reset registru pro bitovou rovinu 0
1 Povolenφ Set/Reset registru pro bitovou rovinu 1
2 Povolenφ Set/Reset registru pro bitovou rovinu 2
3 Povolenφ Set/Reset registru pro bitovou rovinu 3
Color Compare Register Port: 3cfh
Porovnßnφ barev Index: 2
============================================================
Popis: Tento registr slou₧φ k uchovßnφ barvy, kterß je
porovnßvßna s obsahem videopam∞ti. Po p°eΦtenφ pam∞ti
budou bity, kterΘ odpovφdajφ pixel∙m s barvou shodnou
s barvou v tomto registru, nastaveny ma jedna. Bity
neshodujφcφch se pixel∙ budou nastaveny na nula.
Tento registr pracuje pouze ve Φtecφm m≤du 1.
Jakßkoliv z bitov²ch rovin m∙₧e b²t z porovnßvßnφ
vy°azena pomocφ registru pro eliminaci barev (index
7).
Bity Popis
---- ---------------------------------------------------
0-3 Porovnßvanß barva
4-7 Nepou₧ito
Data Rotate Register Port: 3cfh
Kombinace dat Index: 3
============================================================
Popis: Tento registr ovlßdß dv∞ funkce. Tou prvnφ je mo₧nost
data zapisovanß procesorem do videopam∞ti zrotovat o
n (0-7) bod∙. Druhou funkcφ je mo₧nost zm∞ny zp∙sobu
kombinovßnφ dat z procesoru s daty v
latch-registrech.
Pokud je nastaveno pou₧itφ rotace a logickΘ operace
najednou, nejprve se provede rotace. Tento registr
nepracuje v zapisovacφm m≤du 1 (pracuje pouze s daty
zapisovan²mi procesorem).
Rotace ovlivnφ zapisovanß data pouze v zapisovacφm
m≤du 0.
Bity Popis
---- ---------------------------------------------------
0-2 PoΦet rotacφ vpravo
3-4 Zp∙sob zßpisu
00b ZapiÜ data beze zm∞ny
01b AND dat s latch-registry
10b OR dat s latch-registry
11b XOR dat s latch-registry
5-7 Nepou₧ito
Read Map Select Register Port: 3cfh
Mapa pro Φtenφ Index: 4
============================================================
Popis: Tento registr vybφrß bitovou rovinu, jejφ₧ obsah bude
vrßcen p°i Φtenφ z videopam∞ti v Φtecφm m≤du 0.
Bity Popis
---- ---------------------------------------------------
0-1 ╚φslo bitovΘ roviny urΦenΘ ke Φtenφ
2-7 Nepou₧ito
Mode Register Port: 3cfh
Re₧im grafickΘho kontroleru Index: 5
============================================================
Popis: Tento registr urΦuje, kter² ze t°φ (Φty° - VGA)
zapisovacφch a dvou Φtecφch re₧im∙ bude pou₧it. Spolu
s registrem s indexem 6 (Miscellaneous) obsahujφ
n∞kterß nastavenφ t²kajφcφ se organizace pam∞ti.
Bity Popis
---- ---------------------------------------------------
0-1 Zapisovacφ m≤d
00b = Zapisovacφ m≤d 0. Map mask registr
(sequencer, index 2) urΦuje bitovΘ mapy pro
zßpis. Bit mask registr (index 8) slou₧φ k
povolenφ nebo zakßzßnφ modifikace pixel∙ v
rßmci byte. Data jsou zapisovßna do ka₧dΘ
odmaskovanΘ bitovΘ roviny (pokud ovÜem nenφ
pro p°φsluÜnou rovinu aktivovßn Set/Reset
m≤d). P°ed uklßdßnφm do pam∞ti se musφ
naΦφst jejφ obsah do latch-registr∙.
01b = Zapisovacφ m≤d 1. Do pam∞ti je zapsßn pouze
obsah latch-registr∙. Pou₧φvß se p°i
p°esouvßnφ ·sek∙ videopam∞ti.
10b = Zapisovacφ m≤d 2. Bit mask registr urΦuje
modifikovanΘ bity. Do videopam∞ti se
zapisuje Φφslo po₧adovanΘ barvy. P°ed
zßpisem je nutno naΦφst latch-registry.
11b = Pouze VGA: Na po₧adovanou adresu je ulo₧en
v²sledek logickΘ operace AND mezi Bit mask
registrem (index 8) a hodnotou obsa₧enou
v Set/Reset registru. Pro tento re₧im nemusφ
b²t aktivnφ Enable Set/Reset registr (index
1).
2 Test grafickΘho kontroleru - pouze EGA
Nastavenφ tohoto bitu na jedna uvede v²stupy
kontroleru do stavu s vysokou impendancφ.
3 ╚tecφ m≤d
0 = Do CPU je naΦten jeden byte zvolenΘ bitovΘ
mapy
1 = Do CPU je naΦten v²sledek porovnßnφ barev
pixel∙ na po₧adovanΘ adrese s registrem pro
porovnßnφ barev (index 2).
4 SudΘ/lichΘ
Pokud je tento bit nastaven na jedna jsou
lichΘ adresy ulo₧eny v lich²ch bitov²ch rovinßch a
sudΘ adresy v sud²ch bitov²ch rovinßch. Toto
nasatvenφ se t²kß pouze grafickΘho kontroleru.
Vyu₧φvß se zejmΘna v textov²ch re₧imech a v
re₧imech zachovßvajφcφch komaptibilitu s CGA. Pokud
je tento bit nastaven na jedna, je obvykle i
sequencer nastaven do pat°iΦnΘho re₧imu (bit 2
pam∞¥ovΘho re₧imu, index 4).
5 Posuvn² registr
Kdy₧ je tento bit nastaven na jedna, jsou
sudΘ bity z obrazovΘ pam∞ti zapisovßny do sud²ch
bitov²ch map a stejn∞ tak jsou lichΘ bity
zapisovßny do lich²ch bitov²ch map. Tak jsou dva za
sebou v pam∞ti zapsanΘ bity rozd∞leny do dvou
posuvn²ch registr∙. To umo₧≥uje emulaci barev CGA
re₧im∙.
6 256barevn² re₧im - pouze VGA
Tento bit mß podobnou funkci jako bit 5. Data
jsou do posuvn²ch registr∙ p°esouvßna tak, ₧e jeden
byte je p°eveden na matici 2 x 4 bity. To je
pot°ebnΘ pro atributov² kontroler, jeho₧ vÜechny
funkce nefungujφ v 256barevnΘm re₧imu.
Miscellaneous Register Port: 3cfh
R∙znΘ Index: 6
============================================================
Popis: Tento registr ovlßdß n∞kterΘ funkce souvisejφcφ s
organizacφ pam∞ti grafickΘho kontroleru.
Bity Popis
---- ---------------------------------------------------
0 Grafick² re₧im
Tento bit je nastaven na jedna v grafick²ch
re₧imech a na nula v textov²ch.
1 Z°et∞zenφ lich²ch map do sud²ch
Tento bit je pou₧φvßn ve spojenφ s bitem 4
registru re₧imu grafickΘho kontroleru (index 4).
LichΘ adresy jsou zapsßny do lich²ch bitov²ch map a
sudΘ adresy jsou zapsßny do sud²ch bitov²ch map.
P°i nastavenφ tohoto bitu na jedna je nejmΘn∞
v²znamn² bit adresy zam∞n∞n s bitem 13 nebo 15
(podle poΦtu instalovanΘ pam∞ti). To zp∙sobφ, ₧e v
pam∞ti jsou nejprve bitovΘ roviny 0 a 2 a a₧ za
nimi nßsledujφ roviny 1 a 3.
2-3 Mapovßnφ pam∞ti
Tyto bity urΦujφ umφst∞nφ a velikost
adresnφho procesoru, do kterΘho se bude mapovat
videopam∞¥.
/------------------------------\
| Hodnota | PoΦßtek | Velikost |
|---------+---------+----------|
| 00b | a0000h | 128K |
| 01b | a0000h | 64K |
| 10b | b0000h | 32K |
| 11b | b8000h | 32K |
\------------------------------/
4-7 Nepou₧ito
Color Don't Care Register Port: 3cfh
Eliminace barev Index: 7
============================================================
Popis: Tento registr umo₧≥uje vynechat n∞kterΘ bitovΘ roviny
z porovnßvßnφ barev, pokud je aktivnφ Φtecφ m≤d 0.
Pokud je tento registr nastaven na 0fh, jsou na shodu
barvy porovnßvßny vÜechny bitovΘ roviny. Pokud
registr obsahuje nulu, porovnßvßnφ vyhovuje jakßkoliv
barva.
Bity Popis
---- ---------------------------------------------------
0 = 0 Kontroluje se zda obsah bitovΘ roviny 0
odpovφdß bitu 0 registru porovnßnφ barev
(index 2)
1 = 0 Kontroluje se zda obsah bitovΘ roviny 1
odpovφdß bitu 1 registru porovnßnφ barev
(index 2)
2 = 0 Kontroluje se zda obsah bitovΘ roviny 2
odpovφdß bitu 2 registru porovnßnφ barev
(index 2)
3 = 0 Kontroluje se zda obsah bitovΘ roviny 3
odpovφdß bitu 3 registru porovnßnφ barev
(index 2)
4-7 Nepou₧ito
Bit Mask Register Port: 3cfh
Bit mask registr Index: 8
============================================================
Popis: Tento registr omezuje p°φstup k jednotliv²m bit∙m
jednΘ adresy videopam∞ti. Nastavenφ odpovφdajφcφch
bit∙ na jedna povolφ modifikaci p°φsluÜn²ch bit∙
videopam∞ti. Pro zßpis jednoho bodu je tedy pouze
jeden bit tohoto registru nastaven na jedna. P°ed
zßpisem do pam∞ti je pot°eba naΦφst obsah latch
registr∙.
Zapisovacφ m≤d 1 tφmto registrem nenφ ovlivn∞n
(narozdφl od Map mask registru).
Bity Popis
---- ---------------------------------------------------
0-7 Nastavenφ bitu na jedna povolφ modifikace
p°φsluÜnΘho bitu na adrese videopam∞ti.
Registry atributovΘho kontroleru
Registry atributovΘho kontroleru ovlßdajφ p°i°azenφ
barev jednotliv²m Φφsl∙m barev, rßmeΦku a pozadφ. Obvykle do
atributovΘho kontroleru p°ichßzejφ 4 bity. Ty jsou pou₧ity
jako odkaz do palety, ze kterΘ je vybrßna p°φsluÜnß barva k
zobrazenφ. Na VGA je hodnota tohoto paletovΘho registru po
·pravßch p°edßna DAC.
Registry atributovΘho kontroleru jsou p°φstupnΘ p°es
port 3c0h. Tento port mß jednu zvlßÜtnost. Slou₧φ zßrove≥
jako adresov² i datov² port registr∙ atributovΘho
kontroleru. Po ka₧dΘm zßpisu se jeho funkce m∞nφ. Nem∙₧eme
tedy mφt jistotu, zda je na portu prßv∞ datov² Φi adresov²
registr (zm∞nu mohla provΘst nap°φklad n∞jakß rutina b∞₧φcφ
pod p°eruÜenφm). Na port 3c0h se namapuje adresov² registr
atributovΘho kontroleru po ka₧dΘm Φtenφ vstupnφho stavovΘho
registru 1 (port 3?ah). ╚tenφ tohoto registru mß jeÜt∞ jednu
v²hodu. Jeho bit 0 indukuje probφhßnφ zp∞tnΘho chodu paprsku
a atributovΘ registry by m∞ly b²t m∞n∞ny jen b∞hem tΘto
doby. Pokud tedy chceme m∞nit n∞kter² z registr∙
atributovΘho kontroleru, m∞li bychom nejprve poΦkat na
zp∞tn² chod paprsku a potΘ m∞nit registr. Nap°φklad takto:
mov DX, 3dah ;Φφslo portu vstupnφho stavovΘho registru 1 (3bah pro MDA)
WaitRetrace:
in AL, DX ;Φtenφ obsahu registru
and AL, 1 ;odmaskovßnφ bitu 0
jnz WaitRetrace ;Φekßnφ na zp∞tn² chod elektronovΘho paprsku
mov DX, 3c0h ;Φφslo portu pro registry atributovΘho kontroleru
mov AL, Index ;index po₧adovanΘho registru pro zm∞nu
out DX, AL ;nastavenφ adresovΘho registru
mov AL, Hodnota ;novß hodnota do registru
out DX, AL ;zßpis do datovΘho registru
Na kartßch VGA lze nastavenφ atributov²ch registr∙ Φφst z
portu 3c1h.
Attribute Address Register Port: 3c0h
Adresov² registr atributovΘho kontroleru
============================================================
Popis: Do tohoto registru se zapisuje index registru, kter²
bude p°φstupn² pro zßpis na portu 3c0h a pro Φtenφ na
portu 3c1h (druhß mo₧nost je pouze na VGA). Nastavenφ
portu 3c0h do adresovΘho m≤du se provede p°eΦtenφm
vstupnφho stavovΘho registru 1 (port 3bah nebo 3dah).
Na kartßch EGA musφ b²t bit 5 p°ed zm∞nou paletov²ch
regitr∙ nastaven na nula a po zm∞n∞ nastaven zp∞t na
jedna.
/----------------------------------------------------\
|Index| Registr |
|-----+----------------------------------------------|
|0-0fh| Registry palety |
| 10h | Re₧im atributovΘho kontroleru (Mode Control) |
| 11h | Barva rßmeΦku (Overscan Color) |
| 12h | Povolenφ bitov²ch rovin (Color Plane Enable) |
| 13h | Horizontßlnφ posun (Horizontal Pel Panning) |
| 14h | V²b∞r barvy (Color Select) |
\----------------------------------------------------/
Bity Popis
---- ---------------------------------------------------
0-4 Index registru atributovΘho kontroleru
5 Povolenφ p°φstupu k palet∞ - pouze EGA
Nastavenφ tohoto bitu na jedna povolφ p°φstup
karty EGA k paletov²m registr∙m.
6-7 Nepou₧ito
Palette Registers Port: 3c0h
Registry palety Index: 0-0fh
============================================================
Popis: Tyto registry obsahujφ informace o zobrazovanΘ barv∞
p°φsluÜejφcφ Φφslu barvy. Ka₧dß barva (Φφslo 0-15) mß
sv∙j paletov² registr. Ten obsahuje informace, kterΘ
urΦujφ barvu skuteΦn∞ zobrazovanΘ barvy. Na kart∞ EGA
slou₧φ k urΦenφ skuteΦn∞ zobrazovanΘ barvy Üest bit∙.
Po dvojicφch nßle₧φ jednotliv²m zßkladnφm barvßm.
Mohou tak vytvß°et a₧ 64 r∙zn²ch odstφn∙ (najednou
zobraziteln²ch je jich vÜak po°ßd jen 16). Na
kartßch VGA je hodnota paletovΘho registru pou₧ita
jako odkaz do 18bitovΘho DAC registru, kter² obsahuje
jeden z 262144 mo₧n²ch odstφn∙ pou₧it²ch pro
zobrazenφ danΘ barvy. Pomocφ registru pro v²b∞r barvy
(index 14h) mohou b²t informace jdoucφ z paletov²ch
registr∙ do DAC upraveny.
EGA:
Bity Popis
---- ---------------------------------------------------
0 Modrß
1 Zelenß
2 ╚ervenß
3 Intenzivnφ modrß
4 Intenzivnφ zelenß
5 Intenzivnφ Φervenß
6-7 Nepou₧ito
VGA:
Bity Popis
---- ---------------------------------------------------
0-5 Odkaz do jednoho z DAC registr∙
6-7 Nepou₧ito
Mode Control Register Port: 3c0h
Re₧im atributovΘho kontroleru Index: 10h
============================================================
Popis: Tento registr uchovßvß informace o pracovnφm re₧imu
atributovΘho kontroleru.
Bity Popis
---- ---------------------------------------------------
0 Textov²/grafick² re₧im
= 0 textov² re₧im
= 1 grafick² re₧im
1 Monochromatick²/barevn² displej
= 0 urΦuje pou₧itφ barevnΘho adaptΘru
= 1 urΦuje pou₧itφ monochromatickΘho adaptΘru
2 Podpora ΦßrovΘ grafiky
Tento bit je pou₧φvßn v zobrazovacφm m≤du 7,
pokud jsou pou₧φvßny 9 bod∙ ÜirokΘ znaky. Pokud je
tento bit nastaven na jedna, je u znak∙ s ASCII
k≤dem c0h-dfh kopφrovßn osm² bit do devßtΘho, tj.
Φßrovß grafika z∙stane nep°eruÜenß. Pokud je
nastaven na nula, je devßt² pod znaku vykreslen
barvou pozadφ.
3 Volba intenzita/blikßnφ
= 0 7. bit atributu bude pova₧ovßn za intenzitu
barvy pozadφ
= 1 7. bit atributu bude urΦovat blikßnφ znaku
4 Nepou₧ito
5 Vypnutφ horizontßlnφho posuvu - pouze VGA
= 0 Horizontßlnφ posun je aplikovßn na cel² obraz
= 1 Horizontßlnφ posun je aplikovßn pouze na
hornφ Φßst obrazu. ╚ßst obrazu nßsledujφcφ za
°ßdkou obsa₧enou v registru pro porovnßnφ
°ßdky (CRTC index 18h) nebude posouvßna.
6 èφ°ka posuvu - pouze VGA
Nastavenφ tohoto bitu na jedna, zp∙sobφ ₧e
ka₧dΘmu bodu p°φsluÜφ 8 bit∙ (re₧im 13h, 256
barev). V ostatnφch re₧imech by m∞l b²t tento bit
nastaven na nula.
7 P°emapovßnφ bit∙ 4 a 5 - pouze VGA
= 0 Obsahy peltov²ch registr∙ jsou do DAC
posφlßny p°φmo, bez modifikacφ.
= 1 Bity 4 a 5 paletovΘho regsitru jsou nahrazeny
bity 0 a 1 registru v²b∞r barvy (index 14h) a
teprve potΘ poslßny do DAC.
Overscan Color Register Port: 3c0h
Barva rßmeΦku Index: 11h
============================================================
Popis: Tento registr urΦuje barvu rßmeΦku pomocφ intenzit
slo₧ek zßkladnφch barev (EGA) nebo pomocφ odkazu do
DAC registru (VGA).
Barva rßmeΦku b²vß obvykle Φernß (registr obsahuje
0). V n∞kter²ch m≤dech s vyÜÜφm rozliÜenφm nelze
pou₧φt jinΘ barvy rßmeΦku ne₧ ΦernΘ.
EGA:
Bity Popis
---- ---------------------------------------------------
0 Modrß
1 Zelenß
2 ╚ervenß
3 Intenzivnφ modrß
4 Intenzivnφ zelenß
5 Intenzivnφ Φervenß
6-7 Nepou₧ito
VGA:
Bity Popis
---- ---------------------------------------------------
0-5 Odkaz do jednoho z DAC registr∙
6-7 Nepou₧ito
Color Plane Enable Register Port: 3c0h
Povolenφ bitov²ch rovin Index: 12h
============================================================
Popis: Tento registr urΦuje bitovΘ roviny, ze kter²ch bude
brßna informace o Φφsle barvy bodu pro odkaz do
registr∙ palety. Obvykle tento registr obsahuje
hodnotu 0fh, tj. barva je zφskßvßna ze vÜech Φty°
bitov²ch rovin.
Bity Popis
---- ---------------------------------------------------
0 = 1 Barva je brßna i z bitovΘ roviny 0
1 = 1 Barva je brßna i z bitovΘ roviny 1
2 = 1 Barva je brßna i z bitovΘ roviny 2
3 = 1 Barva je brßna i z bitovΘ roviny 3
4-5 Volba diagnostick²ch bit∙
Tyto bity urΦujφ, kterΘ bity atributovΘho
registru se objevφ v bitech 4 a 5 vstupnφho
stavovΘho registru 1.
/-----------------\
| Hodnota | Bity |
|---------+-------|
| 00b | 2 a 0 |
| 01b | 5 a 4 |
| 10b | 3 a 1 |
| 11b | 7 a 6 |
\-----------------/
6-7 Nepou₧ito
Horizontal PEL Panning Register Port: 3c0h
Horizontßlnφ posun Index: 13h
============================================================
Popis: Tento registr urΦuje o kolik bod∙ bude obraz posunut
doleva. P°i pou₧itφ virtußlnφ obrazovky (viditelnß
Φßst obrazovky je pouze Φßstφ v∞tÜφ virtußlnφ
obrazovky) jej lze s v²hodou uplatnit pro dosa₧enφ
horizontßlnφho scrolovßnφ.
Bity Popis
---- ---------------------------------------------------
0-3 PoΦet bod∙, o kterΘ se obraz posune doleva.
/-----------------------------------------\
| | Posunutφ pro r∙znΘ |
|Obsah | zobrazovacφ re₧imy |
|registru|--------------------------------|
| | 7, 0-3 VGA | 13h VGA | Ostatnφ |
|--------+------------+---------+---------|
| 000b | 1 | 0 | 0 |
| 001b | 2 | nelze | 1 |
| 010b | 3 | 1 | 2 |
| 011b | 4 | nelze | 3 |
| 100b | 5 | 2 | 4 |
| 101b | 6 | nelze | 5 |
| 110b | 7 | 3 | 6 |
| 111b | 8 | nelze | 7 |
| 1000b | 0 | nelze | nelze |
\-----------------------------------------/
Color Select Register - pouze VGA Port: 3c0h
V²b∞r barvy Index: 14h
============================================================
Popis: Tento registr umo₧≥uje rozÜφ°it barvu v paletovΘm
registru na 8 bit∙. Obsahuje dva bity, kterΘ se
p°idajφ k 6bitovΘ hodnot∞ paletovΘho registru.
Dosßhneme tak mo₧nosti v²b∞ru ze vÜech 256 DAC
registr∙. Obsahuje takΘ dva bity, kterΘ mohou
nahradit bity 4 a 5 paletovΘho registru.
Tento registr neovliv≥uje zobrazovacφ m≤d 13h.
Bity Popis
---- ---------------------------------------------------
0-1 Tyto bity nahrazujφ bity 4 a 5 paletov²ch registr∙,
pokud je bit 7 re₧imu atributovΘho kontroleru
nastaven na jedna.
2-3 Tyto bity se p°idßvajφ k hodnot∞ jdoucφ z
paletovΘho registru do DAC.
4-7 Nepou₧ito
Registry Φφslicov∞-anologovΘho p°evodnφku - pouze VGA
DAC p°evßdφ binßrnφ barevnou informaci na analogov²
signßl pro monitor. Pou₧φvß k tomu DAC registry, kterΘ jsou
funkΦn∞ obdobnΘ s paletov²mi registry. Ka₧d² DAC registr
obsahuje 18bitovou hodnotu, kterΘ se sklßdß z Üesti bit∙ pro
ka₧dou zßkladnφ barvu (Φervenß, modrß, zelenß).
Osmnßctibitovß hodnota nßm dßvß mo₧nost v²b∞ru jednΘ z
262144 mo₧n²ch barev v ka₧dΘm z 256 DAC registr∙. Standardn∞
prvnφch 16 DAC registr∙ obsahuje barvy shodnΘ s barvami na
EGA. DalÜφch 16 DAC registr∙ obsahuje r∙znΘ stupn∞ Üedi.
Zbyl²ch 224 registr∙ obsahuje r∙znΘ barvy. Pouze v re₧imu
13h m∙₧e b²t zobrazeno vÜech 256 barev najednou. B∞₧n∞ m∙₧e
b²t najednou zobrazeno 16 barev. Pomocφ atributovΘho
kontroleru vÜak m∙₧eme zm∞nit Üestnßctici pou₧φvan²ch DAC
registr∙ a dosßhnout tak zajφmav²ch efekt∙ okam₧itou zm∞nou
vÜech barev.
DAC State Register Port: 3c7h
Stavov² registr DAC pouze VGA, pouze Φtenφ
============================================================
Popis: Tento registr umo₧≥uje zjistit aktußlnφ stav datovΘho
registru DAC, kter² m∙₧e b²t ve dvou re₧imech
- zapisovacφm nebo Φtecφm. B∞hem Φtecφho re₧imu m∙₧e
b²t obsah tohoto registru pouze Φten a b∞hem
zapisovacφho re₧imu naopak nesmφ b²t Φten obsah
tohoto registru.
Bity Popis
---- ---------------------------------------------------
0-1 = 00b Zapisovacφ re₧im
= 11b ╚tecφ re₧im
2-7 Rezervovßno
PEL Address Read Mode Port: 3c7h
Adresov² registr pro Φtecφ re₧im pouze VGA, pouze zßpis
============================================================
Popis: Tento registr urΦuje Φφslo DAC registru, kter² bude
Φten. Po nastavenφ tohoto registru m∙₧ete z datovΘho
registru p°eΦφst po sob∞ t°i 6bitovΘ hodnoty
(intenzitu ΦervenΘ slo₧ky, intenzitu zelenΘ slo₧ky a
intenzitu modrΘ slo₧ky). Po p°eΦtenφ t∞chto t°φ
hodnot se obsah adresovΘho registru automatick² zv²Üφ
a bude ukazovat na nßsledujφcφ DAC registr.
Zßpis na datov² port b∞hem Φtenφ m∙₧e poÜkodit
informace ulo₧enΘ v DAC palet∞.
Dokumentace karty VGA uvßdφ, ₧e jednotlivΘ p°φstupy k
datovΘmu registru by m∞ly nßsledovat nejd°φve po 240
nanosekundßch.
Bity Popis
---- ---------------------------------------------------
0-7 ╚φslo DAC registru pro Φtenφ
PEL Address Write Mode Port: 3c8h
Adresov² registr pro zßpis pouze VGA, pouze zßpis
============================================================
Popis: Tento registr urΦuje Φφslo DAC registru, do kterΘho
bude zapisovßno. Po nastavenφ tohoto registru na
odpovφdajφcφ hodnotu, m∙₧ete do datovΘho registru
zapsat po sob∞ t°i 6bitovΘ hodnoty odpovφdajφcφ
postupn∞ intenzit∞ ΦervenΘ slo₧ky, intenzit∞ zelenΘ
slo₧ky a koneΦn∞ intenzit∞ modrΘ slo₧ky barvy. Po
zßpisu t°φ hodnot na datov² registr se automaticky
zv²Üφ obsah adresovΘho registru pro zßpis.
╚tenφ z datovΘho portu b∞hem zßpisu m∙₧e poÜkodit
informace ulo₧enΘ v DAC tabulce.
Dokumentace karty VGA uvßdφ, ₧e jednotlivΘ p°φstupy k
datovΘmu registru by m∞ly nßsledovat nejd°φve po 240
nanosekundßch.
Bity Popis
---- ---------------------------------------------------
0-7 ╚φslo DAC registru pro zßpis
PEL Data Register Port: 3c9h
Datov² registr pouze VGA
============================================================
Popis: Tento registr umo₧≥uje zapisovat a Φφst nastavenφ
jednotliv²ch DAC registr∙. P°i ka₧dΘm p°φstupu k DAC
registru by se m∞ly pou₧φt t°i Φtenφ/zßpisy pro
vÜechny t°i zßkladnφ slo₧ky - posob∞ Φervenß, zelenß
a modrß. Ka₧dΘ slo₧ce p°φsluÜφ 6 bit∙.
Dokumentace karty VGA uvßdφ, ₧e jednotlivΘ p°φstupy k
datovΘmu registru by m∞ly nßsledovat nejd°φve po 240
nanosekundßch.
Bity Popis
---- ---------------------------------------------------
0-5 Hodnota urΦenß ke Φtenφ/zßpisu
6-7 Rezervovßno
PEL Mask Port: 3c6h
Maska pro p°φstup k DAC registr∙m pouze VGA
============================================================
Popis: S hodnotou jdoucφ do DAC a obsahem tohoto registru se
provßdφ binßrnφ AND a teprve v²sledek tΘto operace
sm∞°uje do DAC. Standardn∞ je hodnota registru 0ffh,
tj. na p°φchozφch datech se nic nezm∞nφ. Ni₧Üφ
hodnota sni₧uje poΦet pou₧iteln²ch barev.
Bity Popis
---- ---------------------------------------------------
0-7 Hodnota masky
[PokraΦovßnφ] |
[Obsah]
Copyright © Ji°φ Kosek