 | La casella di testo mostra in dettaglio
il codice assembly del Main Program:
 | data la scelta di non mostrare alcuna interfaccia
grafica le prime istruzioni (MOV AH,00H,
MOV AL,03H
e INT 10H)
si limitano a
pulire lo schermo |
 | inizializza la stampante
con l'aiuto della
Funzione 01H
di
INT 17H,
che provvede a spedirle 2 bytes di controllo, 08H
e 0CH;
in effetti i bytes spediti influenzano il contenuto del
Registro
di Controllo (037AH/LPT1,
027AH/LPT2), la
cui conoscenza
evidenzia che:
 | il byte
08H
(=00001000) mette la
stampante in condizioni di On-Line
(bit3=1)
e contemporaneamente la obbliga a
reinizializzarsi (bit2=0),
cioè imposta lunghezza pagina, margini, tabulazioni, ecc.
ai valori di default |
 | il byte 0CH
(=00001100)
lascia la
stampante On-Line (bit3=1) e contemporaneamente ne abilita il normale funzionamento (bit2=1) |
|
 | inizializza il puntatore SI
(LEA SI,TESTO)
al testo da trasferire sulla carta |
 | si accinge ad eseguire il compito eseguendo il loop
xxx01; in
questo ambito:
 | predispone la prossima chiamata di
Funzione BIOS
indicando, con DX=0000H, che la
porta parallela a cui si ritiene attaccata la stampante è la
LPT1 |
 | controlla (CALL Chk_Busy ) se la stampante è
disponibile a ricevere
dati dal computer e se l'utente
ha premuto un tasto |
 |
assume dalla stringa
il carattere corrente (MOV
AL,CS:[SI]) e controlla se si tratta del
terminatore: in questo caso pone fine al lavoro |
 | naturalmente se il carattere non è il terminatore
provvede alla sua stampa su carta con l'aiuto della
Funzione
00H
di
INT 17H,
che provvede a
trasmettere il carattere
verso una stampante, generando i sincronismi necessari |
|
 | le ultime istruzioni (MOV
AH,4CH,INT
21H)
chiudono il codice sorgente restituendo il controllo al sistema operativo
che ci ospita |
|