|
 |
Programmazione |
VIDEO 06/59
[26 di 79] |
 |
Gestione BIOS del Video -
INT 10H
- Funzione 07H
|
INT
10H |
Funzione 07H |
Spostamento verso il basso di Aree video (Finestre) |
|
 | Sposta verso il basso
un'area ben delimitata (finestra)
dello schermo, cancellandone il contenuto
dall'alto, riga dopo riga. |
 | In
ingresso:
 | AH è posto
a 07H |
 | AL
indica il numero di righe
su cui è effettuato lo scrolling dall'alto verso il
basso all'interno della finestra; se
AL=0
viene cancellata l'intera area, qualunque sia la sua dimensione. |
 | CH,
CL indicano le coordinate
di riga,
colonna
del suo angolo in alto a
sinistra |
 | DH,
DL indicano le coordinate
di riga,
colonna
del suo angolo in basso a
destra |
 | BH specifica
il colore delle righe vuote
introdotte nella fase di cancellazione |
|
 | In uscita lascia:
 | nulla. |
|
 | La Funzione
si chiama in questo modo: |
 | Nei modi che supportano più pagine video questa funzione influenza
solo la
pagina video correntemente visualizzata. |
 | La finestra trattata da questa Funzione
ha dunque altezza
pari alla differenza tra CH
(riga in alto) e DH
(riga in basso) e larghezza
pari alla differenza tra CL
(colonna a sinistra) e DL
(colonna a destra). |
 |
Da notare che se le coordinate passate in CX,
DX
sono quelle
corrispondenti ai limiti ammessi dalla risoluzione (per esempio
00,00/24,79
in
Modo 03H). |
 |
Se però si tenta di tracciare finestre con lato destro posto su
una colonna non prevista dal
Modo l'effetto finestra viene perso; per esempio la finestra
05,05/19,60
in un
Modo a 40 colonne:
 |
nei
Modi Testo
(per esempio 00H)
tutta l'area viene riempita con spazi
colorati, così da apparire come una serie di
righe complete, esclusa la prima e l'ultima. |
 | lo stesso accade anche nei
Modi
Grafici
(per esempio 13H), ma a
livello Pixel: tutta l'area viene riempita
con linee di scansione, che vanno da quella più alta del carattere
05,05 a quella
più bassa del carattere 19,60, così da essere costituita da una
serie di linee di scansione complete, esclusa la prima e l'ultima. |
|
 |
Questa Funzione
(con
AL=0)
cancella l'intero schermo (sia nei Modi Testo che nei
Modi Grafici) offrendo un buon metodo per eseguire il ClearScreen,
migliore di quello ottenibile con la
Funzione 00H,
più lenta e dai compiti più sofisticati. |
 | La pulizia totale viene
imposta anche se il numero di righe da far scorrere (passato in
AL) è più grande di quello
necessario, corrispondente all’altezza
della finestra. |
 | L'eventuale testo allocato
nella riga che esce dalla parte bassa della
finestra viene ovviamente
perduto. |
 | In alto viene
aggiunta una nuova riga vuota, cioè riempita di spazi con attributo di colore indicato da
BH:
 | nei
Modi Testo
il
codice di colore (detto
anche attributo) è il
classico byte diviso in 3 campi, in grado di gestire sia lo
Sfondo che il Primo Piano, secondo lo schema (Il colore associato a ciascun campo è
descritto
in questa pagina; la combinazione degli 8 bit da luogo a 28 =
256 diversi accoppiamenti: puoi vederne
l'effetto ed impararne il codice consultando la pagina dei
Colori
Assembly in Modo Testo): |
|
| bit7 |
bit6 |
bit5 |
bit4 |
bit3 |
bit2 |
bit1 |
bit0 |
| flash |
Sfondo |
Primo
Piano |
| F |
S2 |
S1 |
S0 |
P3 |
P2 |
P1 |
P0 |
 |
nei
Modi
Grafici
il valore posto in BH
non può essere inteso in senso
stretto come
codice di colore:
in Funzione del Modo grafico esso rappresenta più propriamente il
valore di uno o più Pixel:
 |
nei Modi a 2
colori ogni bit a 1 di BH rappresenta un punto
acceso (e ogni bit a 0 uno spento) cosicchè‚ la Finestra selezionata sarà riempita di
strisce verticali bianche su sfondo nero, una
per ogni bit a 1 di BH |
 |
nei Modi a 4
colori ogni Pixel è codificato da 2 bit, per cui il valore di
BH
rappresenta
4 punti e l'effetto sull'area controllata è ancora a strisce
verticali su sfondo nero, ma nei 4 colori codificati dalle coppie di bit di
BH |
 |
nei rimanenti Modi
Grafici il valore di BH
è direttamente utilizzato
come colore di ciascun Pixel dell'area, scelto tra i
16 o tra i 64
possibili (nel
Modo 13H, 320x200 a 256 colori). |
|
 | Gli eseguibili
B10_07__.COM (nei
Modi Testo)
e
B10_07gr.COM (nei
Modi
Grafici) mostrano l’effetto
della Funzione
07H dell'INT 10H, ma costituiscono
anche un buon esempio del modo di creare e gestire oggetti (aree) in modo
dinamico, cioè oggetti di volta in volta
diversi ma legati da caratteristiche
simili tra loro. |
 | I sorgenti sono documentati nella sezione ASM
(clicca sull'icona ,
nel menu a sinistra). |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|