PAGE 66,132 TITLE** PROGRAMMA di GESTIONE di programmi ASSEMBLER tipo COM (aprile 2003) SUBTTL ** TUTORIAL ASSEMBLY -- www.giobe2000.it -- by ing. Giorgio OBER ;/---------------------------------------------------------------------------\ ;| NOME : SuperCar.ASM | ;| AUTORE : Giorgio OBER | ;| VERSIONE : aprile 2003 | ;| DESCRIZIONE : Controllo di una PORTA PARALLELA a basso livello: accende | ;| una batteria di 8 led con effetto "SuperCar" | ;| /----------\ -------------------------------------------------------------| ;| | | Se si lavora con i Sistemi Operativi Win2000, Win NT o WinXP | ;| | NB !! | bisogna prima installare il Driver Configura_LPT1; scaricalo | ;| | | a: http://www.giobe2000.it/consigli/Scarica_VediLPT_XP.htm | ;| *----------* -------------------------------------------------------------| ;| | | Se si lavora con i Sistemi Operativi Win2000, Win NT o WinXP | ;| | NB !! | la SHELL DOS deve essere a "Pieno Schermo" (l'esecuzione in | ;| | | "finestra DOS" non produce effetto sulla Stampante) | ;| *----------* -------------------------------------------------------------| ;| | | In ogni caso PRIMA DI OGNI SESSIONE DOS Š necessario eseguire| ;| | NB !! | il programma Config_LPT1.EXE in ambiente Windows per attivare| ;| | | la visibilit… dei driver installati con Configura_LPT1 !!!!! | ;| \----------/ -------------------------------------------------------------| ;\---------------------------------------------------------------------------/ ; 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 VIA_cur:NEAR EXTRN RIP_cur:NEAR EXTRN KEYwait:NEAR EXTRN BIOScls:NEAR EXTRN BIOchr1:NEAR EXTRN BIOSmsg:NEAR EXTRN Delay: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 SuperCar ;AREA DESTINATA AI DATI DEL PROGRAMMA ;----------------------------------------------------------------------------- ATTRIB DB 0FH TESTO1 DB " Premi un tasto e guarda le tue luci... ",00H TESTO2 DB " Premi un tasto per terminare ",00H Tab DB 81H DB 42H DB 24H DB 18H DB 24H DB 42H ;***************************************************************************** ; ---------------------------------------------- SuperCar proc NEAR ; AREA DEDICATA AL MAIN PROGRAM ; ---------------------------------------------- ;----------------------------------------------------------------------------- CALL BIOScls ;Provvede comunque alla cancellazione del video M_msgC TESTO1,0,0,1FH;Messaggio di presentazione CALL KEYwait M_msgC TESTO2,0,0,1FH;Messaggio di uscita MOV DX,0378H ;Punta la porta d'uscita 0378H, LPT1 parallela xxx00: LEA SI,Tab ;Punta la tabella dei dati MOV CX,6 ; xxx01: MOV AL,CS:[SI] ; Gestisce l'uscita dei dati della Tabella, OUT DX,AL ; realizzando l'effetto SuperCar INC SI ; PUSH CX ; MOV CX,5 ; Piccolo ritardo (1/4 di secondo..) CALL Delay ; POP CX ; LOOP xxx01 ; ; Funzione BIOS INT 16H che consente di verifi- MOV AH,01H ; care la eventuale pressione di tasti senza INT 16H ; fermarsi; Š cosŤ possibile tornare al DOS con JZ xxx00 ; la pressione di un tasto qualunque, senza in- ; terrompere il gioco di luci prodotto in uscita ; (NB: ffZ="1" = nessuna pressione tasti (Z) ) _OUT: MOV AH,4CH ; Torna al DOS con la memoria liberata e con la INT 21H SuperCar ENDP ; Chiusura della Procedura "Main Program" _prog ENDS ; Chiusura del Segmento di CODICE END INIZIO ; Indirizzo dell'ultima istruzione da compilare