Sezione |
Indirizzi Base
Registri Interni
|
Funzioni BIOS |
Programmazione |
VIDEO 18/59 [38 di 79] |
|
Gestione BIOS del Video -
INT 10H
- Funzione 10H-
SottoFunz.
03H
|
|
Controlla la possibilità di disporre di testi con sfondo lampeggiante o con sfondo ad alta intensità. |
|
In
ingresso:
|
|
In uscita lascia:
|
|
La SottoFunzione si chiama in questo modo: |
|
|
Nei Modi Testo ogni carattere è caratterizzato da 2 bytes, posti in sequenza nelle locazioni del Buffer del Video (RamVideo) a partire dall'indirizzo B800H; il primo (posto nelle locazioni pari) è il codice Ascii del carattere, e il secondo (posto nelle locazioni dispari) è il byte di attributo di colore. | |
In condizioni normali la struttura del byte d'attributo è la seguente: |
|
Attributo di Colore |
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 | |
Flash | Sfondo | Primo Piano |
|
È bene chiarire che i 2 effetti
sullo sfondo sono alternativi:
| |||||
In ogni caso appare evidente che l'uno o l'altro effetto è attivato solo se il bit7 del byte d’Attributo è posto a 1; non bisogna dimenticare per altro che i 2 effetti sono alternativi, cioè non è possibile avere contemporaneamente caratteri lampeggianti e caratteri con sfondo ad alta intensità. |
|
Per default è garantita la possibilità di far lampeggiare lo Sfondo del Carattere, non quella di evidenziarlo con colori ad alta intensità! | |
In effetti in tutti gli ambienti DOS (per esempio nella programmazione in Turbo Pascal) ponendo a 1 il bit7 del byte d’Attributo abbiamo sempre avuto la possibilità di imporre il lampeggio dei testi, proposti su uno degli 8 seguenti colori di Sfondo: |
|
bit7 | bit6 | bit5 | bit4 | Colore dello SFONDO |
con
1 effetto FLASH dello sfondo dei testi |
0 | 0 | 0 | Nero |
0 | 0 | 1 | Blu | |
0 | 1 | 0 | Verde | |
0 | 1 | 1 | Azzurro | |
1 | 0 | 0 | Rosso | |
1 | 0 | 1 | Magenta | |
1 | 1 | 0 | Marrone | |
1 | 1 | 1 | Bianco |
|
Con l'avvento dei nuovi sistemi operativi (Win2000, WinXP) abbiamo notato che questa opportunità ci viene negata: sebbene si tenti di programmare il flash dei testi (ponendo a 1 il bit7 del byte d’Attributo) al posto dell'effetto desiderato ci viene propinata una ulteriore serie 8 di colori per lo sfondo: |
|
bit7 | bit6 | bit5 | bit4 | Colore dello SFONDO |
con
1 effetto ALTA INTENSITA' dello sfondo dei testi |
0 | 0 | 0 | Grigio |
0 | 0 | 1 | Blu elettrico | |
0 | 1 | 0 | Verde chiaro | |
0 | 1 | 1 | Celeste | |
1 | 0 | 0 | Rosa | |
1 | 0 | 1 | Magenta Chiaro | |
1 | 1 | 0 | Giallo | |
1 | 1 | 1 | Bianco Brillante |
|
In realtà esiste la possibilità di porre rimedio a questo ulteriore sgarbo di zio Bill & Soci.... | |||||
Bisogna sapere che è il valore del bit3 del
Registro di controllo di Modo (Registro
10H del
Controller di Attributo) che controlla l'effetto
sullo
Sfondo del carattere (comunque imposto ponendo a 1
il bit7 del byte
d’Attributo):
|
|
La SottoFunzione che stiamo studiando controlla il bit3 di tale registro, copiandovi il valore del bit0 di BL, cosicché se BL=01H lo Sfondo sarà lampeggiante, mentre con BL=00H lo Sfondo sarà proposto con colori evidenziati, disabilitando il lampeggio. |
|
Da notare che la variabile di sistema 0000:0465H, dedicata al Registro di Controllo di Modo CGA (ma emulato da diversi Adattatori video), associa le medesime informazioni al bit5 del suo contenuto. |
|
Anche la Funzione 1BH di INT 10H può servire allo scopo: dopo la sua chiamata viene costruita una Tabella di 64 bytes, la cui quarantacinquesima locazione (Offset 002DH) offre questo dato, casualmente ancora attraverso il suo bit5. |
|
Per poter trarre vantaggio da questa SottoFunzione è sempre consigliabile attivare in precedenza la Funzione 1AH di INT 10H al fine di conoscere con certezza il tipo di adattatore e di monitor su cui si lavora. |
|
L'eseguibile B10_1003.COM mostra l’effetto della SottoFunzione 03H della Funzione 10H dell'INT 10H. | |
Il sorgente è documentato nella sezione ASM (clicca sull'icona, nel menu a sinistra). |
|
Funzioni BIOS | VIDEO 18/59 | |||||||
38 di 79 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|