|
 |
Programmazione |
VIDEO 18/59
[38 di 79] |
 |
Gestione BIOS del Video -
INT 10H
- Funzione 10H-
SottoFunz.
03H
|
INT
10H |
Funzione 10H/03H |
Controlla intensità e flash dello Sfondo |
|
 | Controlla
la possibilità di disporre di
testi con
sfondo lampeggiante
o con
sfondo ad alta intensità. |
 | In
ingresso:
 | AH è posto
a 10H |
 | AL
è posto
a 03H e indica la SottoFunzione
|
 | BL impone
la scelta sul modo di trattare lo sfondo dei caratteri:
 | con 00H
abilita la possibilità di proporre caratteri con
sfondo ad alta intensità (il flash non è possibile) |
 | con
01H abilita la possibilità di proporre caratteri con
sfondo lampeggiante (l'alta intensità
non è possibile) |
|
|
 | In uscita lascia:
 | nulla |
|
 | 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:
 | l'effetto lampeggio
consiste praticamente nel sostituire periodicamente, circa ogni mezzo
secondo, i 4 bit di Primo Piano con quelli dello
Sfondo; l’alternanza del carattere con
lo spazio vuoto provoca la sensazione di lampeggio |
 | l'effetto alta luminosità
consiste invece nel consentire altri 8 colori
per lo Sfondo, in aggiunta
ai classici 8 garantiti dalla combinazione dei 3 bit6,
bit5 e bit4
dell'attributo; il pratica anche per lo Sfondo sono
resi disponibili i 16 colori di norma possibili solo per il
Primo Piano . |
|
 | 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):
 | con bit3 =
1 viene imposto il lampeggio
dello
Sfondo |
 | con bit3 =
0 viene imposta l'alta
luminosità dello
Sfondo |
|
 | 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). |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|