Come Funziona
Area Comunicaz. Bios |
||
Video |
Programmazione |
PROCEDURE BIOS 34/59 [56 di 84] |
|
Gestione BIOS del Video -
INT 10H
- Funzione 11H-
SottoFunz.
03H
|
|
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
ingresso:
|
|
In uscita lascia:
|
|
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:
| |||||
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:
| |||||
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). |
|
Video01 | PROCEDURE BIOS 34/59 | |||||||
56 di 84 |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|