|
 |
Programmazione |
VIDEO 34/59
[54 di 79] |
 |
Gestione BIOS del Video -
INT 10H
- Funzione 11H-
SottoFunz.
03H
|
INT
10H |
Funzione 11H/03H |
Seleziona le Tabelle di uno o più Font di caratteri da
visualizzare |
|
 | Attiva la Tabella
RAM del
Generatore di Caratteri Hardware da
cui assumere il FONT, sulla
base del valore del bit3
dell'Attributo
di Colore; è tipica dei
Modi Testo. |
 | In uscita lascia:
 | nulla |
|
 | La
SottoFunzione
si chiama in questo modo: |
 | Per comprendere a fondo il particolare compito di questa
SottoFunzione è molto saggio leggere le premesse
relative alla creazione
dei caratteri da parte del
Generatore Hardware, descritta con
ogni dettaglio in questa pagina. |
 | Nella descrizione delle singole altre
SottoFunzioni della Funzione
11H dell'INT 10H
abbiamo già sottolineato che, per cambiare il Set dei caratteri
visualizzabili sullo schermo, non basta caricare i
Font desiderati nelle possibili Tabelle RAM del
terzo piano di bit, a beneficio del
Generatore di Caratteri Hardware: è necessario anche suggerire
a quest’ultimo in quale di queste attingere
le informazioni necessarie a ricostruirli. |
 | Le fasi di installazione sono dunque 2:
 | i Set dei caratteri
desiderati si predispongono nelle
Tabelle RAM con le
SottoFunzioni 00H/10H,
01H/11H,
02H/12H
e 04H/14H |
 | subito dopo la SottoFunzione 03H
ne rende attivo uno,
indicando al
Generatore la Tabella giusta..
|
|
 | Il numero della Tabella RAM che si desidera attivare
per visualizzare i caratteri è
fornito in ingresso in BL;
ricordiamo che il
Generatore di Caratteri della VGA è in grado
di disporre
8 Tabelle nella sua
RAM interna, mentre quello della EGA ne può
ospitare solo 4. |
 | Predisponendo opportunamente il contenuto di
BL è possibile
disporre di 2 Set di Caratteri contemporaneamente,
ma non essendo poi possibile attivarli
simultaneamente entrambi, il compito di passare da uno
all’altro spetterà al valore del del bit3 del
byte d'Attributo di Colore. |
 | Per distinguere le
8 Tabelle presenti nella
RAM del
Generatore di Caratteri della VGA
bastano 3 bit, e le
2 terne di bit (destinate ad
individuare 2 distinte
Tabelle RAM) andranno ad occupare i 6 bit meno
significativi di BL. |
 | Per esempio, per
predisporre i 2 Set corrispondenti alla
seconda (001, attivato con bit3=1) e
terza
(010, attivato con bit3=0)
Tabella nella
RAM del
Generatore VGA il registro
BL sarà caricato con
06H: |
bit
BL=06H |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
7 |
6 |
5 |
3 |
2 |
4 |
1 |
0 |
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
= |
0 |
0 |
[bit3]attributo=1
001 |
[bit3]attributo=0
010 |
 | E' curioso notare che le 2 terne
001 e 010 non sono inserite nel registro
nella presunta sequenza di bit contigui; ciò dipende dal fatto che, in realtà,
il byte predisposto in BL
verrà copiato (EGA/VGA) nel
Registro di Selezione della Mappa dei
Caratteri (03H)
del Sequencer,
03C4H) che memorizza le informazioni binarie in
arrivo con la strana formattazione illustrata qui sopra. |
 | Analogamente, per distinguere le 4
Tabelle presenti nella
RAM del
Generatore di Caratteri della EGA
bastano 2 bit, e le
2 coppie di bit (destinate ad
individuare 2 distinte
Tabelle RAM) andranno ad occupare i 4 bit meno
significativi di BL. |
 | Per esempio, per
predisporre i 2 Set corrispondenti alla
seconda (01, attivato con bit3=1) e
terza
(10, attivato con bit3=0)
Tabella nella
RAM del
Generatore EGA il registro
BL sarà
ancora caricato con
06H: |
bit
BL=06H |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
= |
0 |
0 |
0 |
0 |
[bit3]attributo=1
01 |
[bit3]attributo=0
10 |
 | Ma ora l'incongruenza, segnalata in precedenza per la VGA,
non è più presente. |
 | Naturalmente se su usa un solo
Set
a 256 caratteri il bit3 dell'Attributo
del Carattere mantiene il suo consueto significato (cioè quello
di controllare l'intensità di Primo Piano) e entrambi i campi di
BL
dovranno selezionare la stessa Tabella. |
 | Se si desiderano 2 Set
diversi sulla stessa Pagina Video
(cioè se i 2 campi di BL sono
diversi, indicando 2
diverse Tabelle RAM) non bisogna dimenticare
che il bit3 del byte d'Attributo
di Colore mentre è occupato a selezionare una
delle 2 Tabelle (la metà
superiore o inferiore del
Set Esteso di 512
caratteri) conserva comunque la
capacità di rendere brillanti i colori
dei caratteri. |
 | In
altre parole i testi a video saranno visibili, alternativamente, con
2 Font diversi, a seconda del valore del bit3 dell'Attributo
di Colore dei rispettivi Caratteri, ma:
 | quelli della prima Tabella (bit3=0)
saranno visualizzati in modo normale
(cioè avranno uno dei colori presente nei primi 8
Registri
di Tavolozza del Controller
d'attributo,
03C0H |
 | quelli della seconda Tabella
(bit3=1)
saranno visualizzati in modo evidenziato, brillante
(cioè avranno uno dei colori presente nei secondi
8
Registri
di Tavolozza del Controller d'attributo,
03C0H |
|
 | La qual cosa potrebbe essere anche piacevole.... |
 | La conclusione è ovvia: se si desidera che i Caratteri di
entrambi i SET abbiano la stessa consistenza
cromatica è necessario copiare i valori dei primi 8
Registri
di Tavolozza nei secondi 8, con l'aiuto delle
SottoFunzioni
00H e
02H
della Funzione
10H di
INT 10H |
 | Un modo più sbrigativo prevede di
intervenire direttamente sul Registro che controlla l'azione dei bit
d'attributo, disabilitando l'efficacia del suo bit3, cioè sul
Registro di Abilitazione del Piano Colore (12H)
del Controller di Attributo,
03C0H |
 | La
maschera necessaria per i bit di Primo Piano (bit3÷bit0) è in questo caso
0111
(=07H) ed è questo il valore con cui caricare il Registro:
|
 | L'eseguibile
B10_1103.COM evidenzia
l'efficienza della SottoFunzione
03H della Funzione
11H dell'INT 10H. |
 | Il sorgente è documentato nella sezione ASM
(clicca sull'icona ,
nel menu a sinistra). |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|