| 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 |
|