|
 |
Programmazione |
VIDEO 41/59
[61 di 79] |
 |
Gestione BIOS del Video -
INT 10H
- Funzione 11H-
SottoFunz.
21H
|
INT
10H |
Funzione 11H/21H |
Associa un Font Grafico Completo,
creato dall'utente,
al puntatore INT 43H |
|
 | Rende disponibile
la Tabella User (predisposta dall'utente)
con la definizione di tutti i 256
(o 128) Caratteri Ascii di
un Set 8*n; è
tipica dei
Modi Grafici. |
 | In
ingresso:
 | AH è posto
a 11H |
 | AL
è posto
a 21H e indica la SottoFunzione |
 | BL
specifica il numero di righe di testo
visualizzabili sullo schermo
 | con
BL = 00H il numero di
righe deve essere disponibile in DL |
 | con
BL = 01H il numero di
righe previsto è 14 |
 | con
BL = 02H il numero di
righe previsto è 25 |
 | con
BL = 03H il numero di
righe previsto è 43 |
|
 | DL
specifica il numero di righe di testo
visualizzabili sullo schermo (vale solo se
BL=00H) |
 | CX
specifica il numero di bytes previsti per la
definizione di ciascun carattere (in pratica l'altezza della matrice di
punti) |
 | ES:BP
punta la Tabella (TabFont,
predisposta dal programma chiamante) con la sequenza dei
256*CX
(o 128*CX)
bytes necessari per definire i caratteri |
|
 | In uscita lascia:
 | nulla |
|
 | La
SottoFunzione
si chiama in questo modo: |
 | Con questa
SottoFunzione
è possibile sostituire
il Set dei
256 caratteri Ascii previsti per
default
dal Modo selezionato, esclusi i Modi compatibili CGA
[04H e 05H (40x25, 8x8, 320x200 a 4 colori) e 06H (80x25)] per i quali è
possibile predisporre solo i primi 128 caratteri. |
 | La
Tabella (TabFont)
con le nuove definizioni deve essere
predisposta dal programmatore con la sequenza
dei
256*CX
(o 128*CX)
bytes necessari. |
 | Per rendere attivo il nuovo Set di Caratteri,
creato dall'Utente, la
SottoFunzione
copia poi
il puntatore ES:BP
alla Tabella TabFont,
direttamente nelle locazioni della Tabella
dei Vettori (4 bytes a partire da 0000:010CH) corrispondenti all'INT
43H. |
 | E' interessante notare che il numero di righe da mettere a
video può essere:
 | programmato dall'utente, predisponendolo in
DL
con
BL=00H |
 | fissato d'ufficio a 14
(con
BL=01H)
o a
25 (con
BL=02H)
o a 43
(con
BL=02H) |
 | In ogni caso i valori passati
alla
SottoFunzione
(CX e
BL/DL)
sono usati anche per aggiornare le relative
variabili di Sistema: |
 |
0000:0484H, numero di righe sul display meno 1, nel Modo
Video Corrente |
 |
0000:0485H, altezza dei caratteri in Pixel,
numero di bytes (=righe di pixel) necessari per creare un carattere nel Modo
Video Corrente |
|
 | Per evitare risultati imprevedibili la SottoFunzione
va chiamata subito dopo aver fissato
(con la
Funzione 00H
di
INT 10H) il
Modo Grafico desiderato; in questo modo
viene assicurata l'inizializzazione del
puntatore INT 43H (scritto in
Tabella
dei Vettori a partire da 0000:010CH) con l'indirizzo della
Tabella dei Caratteri di default
adatti al Modo selezionato, a beneficio
del Generatore Software interno
chiamato a ricostruirli. |
 | Nelle Modalità Grafici compatibili
CGA [04H e 05H (40x25, 8x8, 320x200 a 4 colori) e
06H
(80x25)] viene fissato anche il Vettore INT 1FH,
per puntare il punto della
Tabella a partire dal quale
sono definiti i 128
caratteri Ascii Estesi
CGA. |
 | Può esser interessante ricordare che nei Modi
Testo invece il
compito di ricostruire i Caratteri è affidato ad un
Generatore di Caratteri Hardware, che attinge i
Set da
alcune Tabella predisposte (per esempio con la
SottoFunzione 00H) nella
RAM della Scheda Video (quindi
non direttamente indirizzabili dalla CPU, ma controllabili con la
SottoFunzione 03H). |
 | Da notare che il
Controller CRT
non viene riprogrammato come faceva l’analoga
SottoFunzione 10H in ModoTesto. |
 | L'eseguibile
B10_1121.COM offre un'applicazione della SottoFunzione
21H 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
|