PAGE 66,132 TITLE** PROGRAMMA di GESTIONE di programmi ASSEMBLER tipo COM (marzo 2003) SUBTTL ** TUTORIAL ASSEMBLY -- www.giobe2000.it -- by ing. Giorgio OBER ;/---------------------------------------------------------------------------\ ;| NOME : Printer4.ASM | ;| AUTORE : Giorgio OBER | ;| VERSIONE : marzo 2003 | ;| DESCRIZIONE : Input da tastiera e successiva Stampa a livello BIOS. | ;| /----------\ -------------------------------------------------------------| ;| | | Se si lavora con i Sistemi Operativi Win2000, Win NT o WinXP | ;| | NB !! | NON E' NECESSARIO installare il Driver Configura_LPT1 | ;| | | | ;| \----------/ -------------------------------------------------------------| ;\---------------------------------------------------------------------------/ ; COSTANTI DEFINITE PER IL PROGRAMMA: INVIO EQU 0DH CR EQU 0DH LF EQU 0AH FF EQU 0CH ;DEFINIZIONE DEL SEGMENTO DEL CODICE ;----------------------------------------------------------------------------- _prog SEGMENT BYTE PUBLIC 'CODE' ASSUME CS:_prog,DS:_prog ORG 0100H INIZIO: JMP Printer4 ;AREA DESTINATA AI DATI DEL PROGRAMMA ;----------------------------------------------------------------------------- TESTO0 DB CR,LF,"il testo che hai digitato Š stampato qui sotto..." DB CR,LF,CR,LF TESTO1 DB " " DB " ",CR,LF DB CR,LF,"Ciao, www.Giobe2000.it",CR,LF,FF DB 00H ;Terminatore del TESTO in stampa ;***************************************************************************** ; ---------------------------------------------- Printer4 proc NEAR ; AREA DEDICATA AL MAIN PROGRAM ; ---------------------------------------------- ;----------------------------------------------------------------------------- MOV AH,00H ; Pulisce lo schermo MOV AL,03H ; cambio modo video tipo 80x25 16+8 colori INT 10H ; LEA SI,TESTO1 ; Punta il deposito per il testo da assumere xxx00: MOV AH,00H ; INT 16H ; Rimane in attesa di tasti premuti CMP AL,INVIO ; Se il tasto premuto Š INVIO parte la stampa JZ xxx01 ; MOV CS:[SI],AL ; Memorizza il codice Ascii del tasto premuto MOV BH,00H ; Procedura che mette a video il carattere ASCII MOV AH,0EH ; attualmente in AL INT 10H ; INC SI JMP SHORT xxx00 xxx01: MOV DX,0000H ; Indica il numero Bios della porta a cui Š ; collegata la stampante: 0000=LPT1, 0001=LPT2 ; Funzione 01H, INT 17H ; Inizializza una stampante trasmettendole in MOV AH,01H ; sequenza due bytes di controllo. INT 17H ; 08H (=00001000) mette in sostanza la stampante ; in condizioni di On-Line ; 0CH (=00001100) lascia la stampante On-Line ; e ne abilita il normale funzionamento LEA SI,TESTO0 ; Punta il testo da proporre sulla carta xxx02: MOV AL,CS:[SI] ; Preleva il carattere corrente CMP AL,00H ; Controlla se Š finita JZ xxx03 MOV DX,0000H ; Indica il numero Bios della porta a cui Š ; collegata la stampante: 0000=LPT1, 0001=LPT2 MOV AH,00H ; Funzione 00H, INT 17H INT 17H ; Trasmette un carattere alla stampante INC SI ; Punta il prossimo... JMP xxx02 ; ... e continua la stampa dei caratteri xxx03: MOV AH,4CH ; Torna al DOS INT 21H Printer4 ENDP ; Chiusura della Procedura "Main Program" _prog ENDS ; Chiusura del Segmento di CODICE END INIZIO ; Indirizzo dell'ultima istruzione da compilare