PAGE 66,132 TITLE ** PROGRAMMA di PROVA per gli amici NUOVI SOCI del Club (aprile 2009) SUBTTL ** TUTORIAL ASSEMBLY -- www.giobe2000.it -- by ing. Giorgio OBER ;/---------------------------------------------------------------------------\ ;| NOME : Prova.ASM | ;| AUTORE : Giorgio OBER | ;| VERSIONE : aprile 2009 | ;| DESCRIZIONE : Programma di Prova; stampa a video un messaggio di benvenuto| ;\---------------------------------------------------------------------------/ ; COSTANTI DEFINITE PER IL PROGRAMMA ;----------------------------------------------------------------------------- ;****** nessuna Costante è prevista per questo programma di Prova *********** ; nel caso aggiungere in questo punto le eventuali costanti; esempio: ESC_ EQU 27 ;Esempio per il codice del tasto CR EQU 0DH ;Esempio per il codice del tasto LF EQU 0AH ;Esempio per il codice del tasto ; 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 BIObeep:NEAR EXTRN BIOSmsg:NEAR ; DICHIARAZIONI (VARIABILI) PER I PROGRAMMI ESTERNI: PUBLIC ATTRIB ;Attributo di colore ; DICHIARAZIONI (PROCEDURE) PER I PROGRAMMI ESTERNI: PUBLIC Prova ;DEFINIZIONE DEL SEGMENTO DEL CODICE ;----------------------------------------------------------------------------- _prog SEGMENT BYTE PUBLIC 'CODE' ASSUME CS:_prog,DS:_prog ORG 0100H INIZIO: JMP Prova ;AREA DESTINATA AI DATI DEL PROGRAMMA ;----------------------------------------------------------------------------- ATTRIB DB 00H TESTO1 DB "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿",00H TESTO2 DB "| Benvenuto tra i programmatori del Club ~Arch-Lab~ |",00H TESTO3 DB "| ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |",00H TESTO4 DB "| Premi il tasto ~Q~ per tornare al DOS |",00H TESTO5 DB "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ",00H ;AREA DESTINATA ALLE PROCEDURE DEL PROGRAMMA ;---------------------------------------------------------------------------- ;****** nessuna procedura Š prevista per questo programma di Prova *********** ;***************************************************************************** ; ---------------------------------------------- Prova proc NEAR ; AREA DEDICATA AL MAIN PROGRAM ; ---------------------------------------------- ;----------------------------------------------------------------------------- ; --------------------------------------------- ; Impostazione della pagina interattiva ; --------------------------------------------- CALL BIOScls ;Provvede comunque alla cancellazione del video, ;posizionando il cursore alla riga 0, colonna 0 CALL VIA_cur ;Rende il cursore invisibile M_msgC TESTO1,10,10,1FH; M_msgC TESTO2,11,10,1FH; Stampa il messaggio di benvenuto dentro una M_msgC TESTO3,12,10,1FH; cornice M_msgC TESTO4,13,10,1FH; M_msgC TESTO5,14,10,1FH; ;---------------------------------------------- ; Attesa decisioni ;---------------------------------------------- xxx00: CALL KEYwait ;Rimane in attesa di tasti premuti e, quando AND AL,11011111B ;ci• Š vero, ne controlla il valore CMP AL,'Q' ;Se il tasto premuto Š "Q", viene imposto un JZ _OUT ;ritorno immediato al sistema operativo CALL BIObeep ;Emette un BEEP per avvisare dell'avvenuta JMP SHORT xxx00 ;pressione di un tasto indesiderato e torna in ;attesa _OUT: 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 ; Prova ENDP ; Chiusura della Procedura "Main Program" _prog ENDS ; Chiusura del Segmento di CODICE END INIZIO ; Indirizzo dell'ultima istruzione da compilare ;============================================================================ ; NB: <<<<<<<<<<<<<<< LEGGIMI !!!!!!!! (e poi.. CANCELLAMI !! ) >>>>>>>>>>>>> ;============================================================================ ; Tutti i sorgenti ASM di questo sito (compreso il testo che stai leggendo) ; sono scritti con riferimento ai caratteri ASCII standard, per poter fruire ; (specialmente negli eventuali messaggi da porre a video) anche dei caratteri ; ASCII ESTESI, per esempio come quelli delle "cornici". ; Se stai leggendo questo documento in ambiente Windows con NotePad (Blocco ; Note) Š quasi certo che NON POTRAI VEDERE CORRETTAMENTE alcuni dettagli dei ; testi proposti: guarda le 2 figure poste qui sotto (sono due cornici Ascii) ; ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ¿ ÉÍÍÍÍÍÍÍËÍÍÍÍÍÍÍ» ; ³ ³ ³ º º º ; ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´ ÌÍÍÍÍÍÍÍÎÍÍÍÍÍÍ͹ ; ³ ³ ³ º º º ; ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ ÈÍÍÍÍÍÍÍÊÍÍÍÍÍÍͼ ; se non vedi i caratteri che formano le 2 cornici ti manca il FONT giusto!! ; Per poter disporre della massima visibilit… dei sorgenti e goderne TUTTI i ; dettagli Š NECESSARIO installare GIOBE.TTF, appositamente creato per questo: ; ; 1) apri la cartella "C:\Arch-Lab\Bin" e COPIA il font "Giobe.TTF" ; nella cartella "C:\windows\font" (meglio copiarlo che spostarlo..) ; ; 2) fatto questo clicca (nella barra del menu del Notepad, qui sopra) su ; "Modifica"(in Win9x) o su "Formato" (in Win2000/WinXP) e seleziona ; la voce "Imposta Carattere": cerca il carattere "Giobe" e conferma ; la selezione con "OK" ; ; All'istante compariranno i caratteri Ascii desiderati; purtroppo nelle ; ultime versioni di Windows (dopo Win95) l'unico font che consentiva questo ; servizio non Š pi— disponibile, per cui sono stato costretto a crearne uno ; appositamente. ; ; NB: La presenza di questo font nel tuo sistema sar… comunque utile anche ; in ambiente WORD per Windows, per mostrare i miei sorgenti ASM dopo averli ; inseriti nella pagina. ; ; NB: Il problema di visualizzazione dei caratteri delle cornici non si pone, ; invece, in ambiente DOS: se sei entrato cliccando sull'iconcina gialla ; del mio "Ambiente Assembler" ora sei una shell DOS aperta sulla cartella di ; lavoro "C:\Arch-Lab\Lavoro>"; prova dunque ad aprire questo documento ; nell'editor "Qedit", digitando "Q Prova.asm" e confermando con "Invio" ; e scorrendolo fino a questo punto, vedrai regolarmente anche le cornici... ; ; NB: Il problema di visualizzazione dei caratteri delle cornici non si pone, ; NEMMENO in ambiente Windows se sei entrato cliccando sulla nuova iconcina ; colorata del mio "NUOVO Ambiente Assembler": sarai ospitato in uno degli ; editor professionali gi… configurati per riconoscere il font Giobe.TTF e ; per assicurare un corretto lavoro della cartella "C:\Arch-Lab\Lavoro>" ; --------------------------------------------------------------------------- ; / \ Se sei nell'editor "Qedit" non dimenticare la possibilit… di ; | | caricare una matrice simile a questo programma di prova, ; | | premendo la combinazione di tasti Shft-F3. Non farlo ora! ; | | Se vuoi provare vai in fondo a questa pagina (tieni premuto ; | | "Ctrl" con la sinistra e poi, in sequenza, premi "Q" e "C" con ; | | la destra); solo allora (in fondo alla pagina) premi "Shft-F3" ; | | ; | ATTENTO | ************************* ASPETTA !!! *********************** ; | | Dopo aver fatto "Shft-F3" puoi eliminare il testo inserito ; | | premendo "Ctrl" con la sinistra e poi, in sequenza, "K" e "Y" ; | | ; | | ************************* ANCORA !!! *********************** ; | | Se sei incuriosito dalla potenza di questi Control... prova a ; | | premere in sequenza "F6" e "F7" oppure "F1" e "F1"; sono Help ; | | in linea che ho preparato per te (ti conviene stamparli ed ; \_________/ imparare ad usarli con destrezza: fanno la potenza di "Qedit"! ;=============================================================================