PAGE 66,132 TITLE** PROGRAMMA di GESTIONE di programmi ASSEMBLER tipo COM (maggio 2003) SUBTTL ** TUTORIAL ASSEMBLY -- www.giobe2000.it -- by ing. Giorgio OBER ;/---------------------------------------------------------------------------\ ;| NOME : B10_02__.ASM (INT 10H, Funzione 02H)| ;| AUTORE : Giorgio OBER | ;| VERSIONE : maggio 2003 | ;| DESCRIZIONE : Fissa la posizione del cursore alla riga 10, colonna 10. | ;\---------------------------------------------------------------------------/ ; MACRO UTILIZZATE DAL PROGRAMMA: include c:\arch-lab\bin\GIOBE.MAC ; LIBRERIA UTILIZZATA DAL PROGRAMMA [opzione WinASM altrimenti non necessaria] includelib c:\arch-lab\bin\GIOBE.LIB ;PROCEDURE ESTERNE UTILIZZATE dal PROGRAMMA [NEAR, dalla LIBRERIA ~GIOBE.LIB~] ;----------------------------------------------------------------------------- EXTRN CambiaCol:NEAR EXTRN SET_cur:NEAR EXTRN RIP_cur:NEAR EXTRN KEYwait:NEAR EXTRN BIOScls:NEAR EXTRN BIOSmsg:NEAR PUBLIC ATTRIB ;Attributo di colore ;DEFINIZIONE DEL SEGMENTO DEL CODICE ;----------------------------------------------------------------------------- _prog SEGMENT BYTE PUBLIC 'CODE' ASSUME CS:_prog,DS:_prog ORG 0100H INIZIO: JMP B10_02__ ;AREA DESTINATA AI DATI DEL PROGRAMMA ;----------------------------------------------------------------------------- ATTRIB DB 0FH Testo1 DB "Il cursore Š fissato alla Riga 9, colonna 40",00H Testo2 DB "Ricorda: il cursore pu• essere fissato anche con la procedura SET_cur",00H Testo3 DB "oppure con la macro M_CURSOR riga,colonna",00H Testo4 DB "Consulta le Librerie Giobe.ASM e Giobe.MAC sul sito ",00H Testo5 DB "SET_cur",00H Testo6 DB "M_CURSOR riga,colonna",00H Testo7 DB "Giobe.ASM",00H Testo8 DB "Giobe.MAC",00H Testo9 DB "www.giobe2000.it",00H ;AREA DESTINATA ALLE PROCEDURE DEL PROGRAMMA ;/---------------------------------------------------------------------------\ ;|PROCEDURA : DeskTop | ;|DESCRIZIONE: Procedura che inizializza completamente il piano di lavoro.| ;\---------------------------------------------------------------------------/ DeskTop:CALL BIOScls ;Pulisce lo schermo e inizializza il segmento M_msgC Testo1, 7,16,0FH; M_msgC Testo2,16, 4,0FH; M_msgC Testo3,17,13,0FH; M_msgC Testo4,19, 4,0FH; M_msgC Testo5,16,66,0EH; "SET_cur" M_msgC Testo6,17,33,0EH; "M_CURSOR riga,colonna" M_msgC Testo7,19,25,0BH; "Giobe.ASM" M_msgC Testo8,19,37,0BH; "Giobe.MAC" M_msgC Testo9,19,56,0AH; RET ;***************************************************************************** ; ---------------------------------------------- B10_02__ proc NEAR ; AREA DEDICATA AL MAIN PROGRAM ; ---------------------------------------------- ;----------------------------------------------------------------------------- CALL DESKTOP ;Inizializza completamente il piano di lavoro MOV BH,00H;Pagina ; MOV DH, 9 ;Riga ; Funzione BIOS che fissa la posizione di stampa MOV DL,40 ;Colonna; alla riga DH e alla colonna DL in pagina BH; MOV AH,02H ; INT 10H ; CALL KEYwait ; PUSH AX ; Torna al DOS con la memoria liberata e con la CALL RIP_cur ; chiusura di tutti i file; cede il controllo MOV DH,23 ; al processo padre (generalmente COMMAND.COM); MOV DL,0 ; il valore posto eventualmente in AL prima di CALL SET_cur ; uscire pu• essere testato in uscita con la POP AX ; funzione 4DH o mediante la lettura della MOV AH,4CH ; variabile DOS "ERRORLEVEL" INT 21H ; B10_02__ ENDP ; Chiusura della Procedura "Main Program" _prog ENDS ; Chiusura del Segmento di CODICE END INIZIO ; Indirizzo dell'ultima istruzione da compilare