|
 |
Raccolta di Procedure ASM |
BIOchr1
[15 di 54] |
 | Stampa un
carattere colorato
nella posizione di stampa corrente
e con il colore predisposto nella
variabile locale
ATTRIB. |
 |
Dopo la messa a video del
carattere provvede ad aggiornare la posizione del cursore, in modo da fargli
puntare il posto in cui verrà collocato il successivo carattere;
ogni volta che esso si trova in alla fine di una riga si
produce il ritorno a capolinea. |
 | E' in grado di operare in ogni modalità video (... anche
in quelle
grafiche). |
 | La Procedura
si chiama in questo modo: |
 | In
ingresso bisogna predisporre:
 | AL
con il codice Ascii del carattere
da stampare |
|
 | La seguente Area di Testo
mostra il Modulo bios08 utilizzato per
inserire la Procedura
nella Libreria
Giobe.ASM/LIB: |
|
BIOchr1 / bios08 |
NB: se il testo contenuto nell'Area
ti
sembra strano (cioè se contiene
caratteri inconsueti) non hai ancora
installato il font
Giobe.TTF
:
clicca qui!! |
 | L'analisi del codice mette in evidenza il suo sofisticato
modo di operare:
 | legge la posizione di stampa in ingresso, con
livello
Funzione 03H
di
INT 10H |
 | stampa il carattere predisposto, prima della chiamata,
nel registro AL, con l'aiuto della
Funzione 09H
di
INT 10H |
 | il carattere verrà stampato con colore di primo piano
(quello dei pixel che formano il carattere) e colore dello sfondo (quello
dei pixel rimanenti) corrispondente al byte (detto di
attributo di colore)
predisposto nella variabile ATTRIB,
definita e inizializzata obbligatoriamente dal programma chiamante |
 | il carattere verrà collocato nella
posizione di stampa
corrente, cioè nel punto esatto in cui sta lampeggiando (nel momento della
chiamata) il cursore hardware del video (il famoso trattino lampeggiante) |
 | dopo la stampa (in uscita dalla chiamata) la
posizione
del cursore viene aggiornata automaticamente; in altre parole il cursore si
sposta a destra di una posizione e, se già si trova a fine riga, viene
spostato a capo della riga successiva |
 | fissa la nuova posizione di stampa, con la
Funzione 02H
di
INT 10H,
a disposizione delle stampe successive |
 | le schede dedicate a queste Funzioni BIOS affrontano in
modo dettagliato ogni altro particolare relativo ai rispettivi compiti
è predisposta per lavorare in pagina0, dato che il registro
BH è predisposto
al valore 00H |
|
 | Il corretto funzionamento di questa Procedura è dunque assicurato solo se,
prima di chiamarla,
si predispone almeno il registro
AL
con il codice Ascii del
carattere che si desidera stampare. |
 | Potrebbe essere necessario fissare anche le
coordinate della posizione di stampa (con
M_CURSOR)
e il
colore desiderato (con
M_COLOR); ma
entrambe queste informazioni
non sono strettamente necessarie:
 | se non si specificano le
coordinate la procedura collocherà il carattere nella
posizione di stampa corrente (là dove lampeggia il cursore) |
 | se non si specifica il colore
la procedura prende per buono il codice presente in quel momento nella
variabile
ATTRIB. |
|
 | Per esempio, per mettere una
lettera "A" di colore giallo su sfondo blu
(1EH) nel punto di coordinate riga=10
e colonna=20, si deve scrivere questa
sequenza di istruzioni: |
 |
In questo caso, sebbene la
situazione della stampa di un singolo carattere sia
piuttosto improbabile,
non potendo fare a meno di specificare tutte e 4 le istruzioni
suggerite qui sopra nota, si verificano le condizioni tipiche per la
creazione di in una Macro, la
M_Chr, che con una sola riga di
programma consente tra l'altro di passare come parametro
le coordinate, il colore e il
carattere stesso. |
 | Va sottolineato che questa Procedura
è in grado di interpretare
semigraficamente ogni carattere ASCII, cioè mette a video la
matrice di punti prevista per ognuno dei 256
caratteri dal Set coinvolto; la cosa è
particolarmente utile per
i primi 32 caratteri Ascii
(detti di controllo), di solito utilizzati
per esercitare azioni di controllo (come
la messa a capo del cursore..). |
 | In realtà anche questi caratteri hanno un loro
simbolo grafico, spesso accattivante (come i
semi delle carte,
♠♣♥♦, i
simboli delle frecce,
←↑→↓, le
note musicali,
♫♪,...) e questa funzione consente
la loro messa a video. |
 | In altre parole, per esempio, caratteri Ascii di controllo
come 0DH=CR=Carriage
Return e 0AH=LF=Line
Feed, di solito coinvolti per mandare a
capo il cursore, gestiti da questa Procedura
mettono a video rispettivamente i simboli
♪ e ◙. |
 | In questo differisce dalla Procedura
BIOSchr, che, invece di stampare ♪
e ◙, esegue la messa a
capo del cursore. |
 | La Libreria
Giobe.ASM/LIB mette a
disposizione la Procedura
RAMchr,
che stampa un carattere colorato a livello
RamVideo. |
 | Per lo stesso servizio la Libreria
Giobe.MAC offre
le 2 Macro:
 | la
M_chr,
a livello BIOS |
 | la
RAMchr,
a livello
RamVideo. |
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|