Bloky VideoRAM | |
---|---|
Číslo bloku | Bitplan VideoRAM |
0E6h |
bitplan "R" |
0EAh |
bitplan "G" |
0EEh |
bitplan "B" |
Video RAM
PP 01 poskytuje zobrazenie 256 x 256 bodov, kde každý bod môže mať jednu z ôsmych farieb. VideoRAM je rozdelená na 3 bitplany, z ktorých každý reprezentuje jednu farbovú zložku: R, G a B. Jeden bitplan zaberá v pamäti 8 kB (256 x 256 / 8 = 8192 bytov), teda dva bloky pamäte RAM. Celkom teda VideoRAM zaberá 24 kB pamäte RAM.
Organizácia VideoRAM je lineárna, čo znamená, že jednotlivé mikroriadky nasledujú v pamäti sekvenčne za sebou. Jeden mikroriadok tak zaberá 32 bytov. V jednom byte je 8 bodov, kde najvyšší 7. bit je bod v danej osmici najviac vľavo a najnižší 0. bit je najviac vpravo.
Dvojice bánk jednotlivých bitplanov sa v pamäti obvykle umiestňujú bezprostredne za sebou, takže potom offset v danom bitplane je od 0000h-1FFFh
. Bázová adresa bitplanu v pamäti závisí od jeho umiestnenia prostredníctvom Organizátora pamäte. Napr. GBASIC umiestňuje bitplan G od adresy 0A000h
.
Register farby (port 0C0h ) |
||||||||
---|---|---|---|---|---|---|---|---|
hodnota zapisovaná na port | Význam | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
x | x | x | x | 0 | x | x | x | Režim 0 |
x | x | x | x | 1 | C | C | C | Režim 1 : CCC farba: |
000 - čierna |
||||||||
001 - červená |
||||||||
010 - zelená |
||||||||
011 - žltá |
||||||||
100 - modrá |
||||||||
101 - fialová |
||||||||
110 - bledomodrá |
||||||||
111 - biela |
Zápis do VideoRAM je možný v dvoch režimoch, ktoré sa nastavujú pomocou registra farby (port 0CCh
).
- Prvý režim je aktívny, ak je v registri farby bit
D3=0
(na hodnote bitovD2-D0
registra nezáleží). V tomto režime sa všetky 3 bitplany VideoRAM javia ako bežná RAM pre zápis aj čitanie. Pre zápis grafickej informácie v príslušných farbách je tak nutné urobiť zápis osobitne do každého bitplanu. - Druhý režim je aktívny, ak je v registri farby bit
D3=1
. V tomto režime sa zapisuje iba do bitplanu G, ale v skutočnosti sa zápis prevedie do všetkých 3 bitplanov podľa nasledujúceho pravidla:- bity
D2-D0
registra farby určujú farbu menených bodov:D0
=bitplan R,D1
=bitplan G aD2
=bitplan B - zapisovaný byte do bitplanu G určuje, ktoré body v osmici sa zmenia: nulové bity zapisovaného bytu nezmenia žiadny bitplan; jednotkové bity zapisovaného bytu zmenia bitplany podľa hodnôt bitov
D2-D0
- bity
S VideoRAM je spojený ešte register rolovania obrazovky (port 0C0h
). Hodnota 0-255
zapísaná na tento port vlastne určuje, ktorý mikroriadok VideoRAM sa bude zobrazovať ako prvý úplne hore. To umožňuje jednoduché a plynulé rolovanie celej obrazovky.
Nasledujúci príklad kódu ukazuje vykreslenie rovnakého 4-farebného štvorčeka 8 x 8 bodov oboma metódami:
- zápis iba do bitplanu G - rutina
DrawBox1B
- zápis osobitne do jednotlivých bitplanov - rutina
DrawBox3B
Oba prístupy majú svoje pre a proti a tak vždy záleží od samotného návrhu dát, ktoré sa majú zobrazovať. Systém využíva iba režim zápisu iba do bitplanu G, ktorý je v danom prípade vhodnejší.