Come Funziona Area Comunicaz. Bios
Registri
Livello Hardware Livello BIOS Livello DOS
Applicazioni Software Download INDICE

 Cursore

Applicazioni Software

  Applicazioni Software

PROGETTO n° 01 - 4/5 [20 di 42] 

               

Analisi del Problema · Analisi del Codice · Procedure importanti
Gestione dimensione del Cursore - Collaudo della Funzione 01H di INT 10H
Analisi del Codice Sorgente [2 di 2]

               

bulletLa natura di questo progetto, rivolta alla verifica e al collaudo di una determinata Funzione BIOS, rende semplice la sua struttura, pressocchè limitata al solo Main Loop.

               

bulletLe prime istruzioni provvedono alla presentazione del programma, pulendo lo schermo, con l'intervento della Procedura BIOScls (CALL BIOScls), e mostrando il messaggio interattivo, per merito della Macro M_msgC (M_msgC Testo1,13,17,0FH):

               

Progetti con Cursore Hardware Esercizio MOLTO FACILE Progetto
NB: se il testo nell'Area  ti sembra strano
     
installa il  font
Giobe.TTF: clicca qui!!
Mostra l'Effetto Prova l'eseguibile COM Scarica il codice Sorgente ASM

               

bulletEntrambe le strutture appartengono alle mie 2 librerie, Giobe.MAC e Giobe.LIB, disponibile in forma sorgente in Giobe.ASM:
bulletda notare che la Macro preleva i caratteri da stampare, uno dopo l'altro, da una zona di memoria definita dal programma e localizzata con l'aiuto dell'etichetta Testo1; a questo proposito mostriamo la tecnica necessaria per definire e inizializzare questa variabile:
bulletil testo si definisce nella zona definita area destinata ai dati del programma, con la pseudooperazione DB.
bulletil testo si inizializza scrivendolo tra virgolette, dopo la parola chiave DB.
bulletil testo deve essere chiuso con il carattere terminatore 00H.
bulleti caratteri della stringa sono stampati con colore di primo piano (quello dei pixel che formano il carattere) e colore dello sfondo (quello dei pixel rimanenti) corrispondente al byte (detto di attributo di colore) predisposto nella variabile ATTRIB, definita e inizializzata obbligatoriamente dal programma chiamante
          

               

bulletSeguono le 2 fasi tipiche del progetto, descritte qui di seguito.

               

               

bulletLa casella di testo mostra la fase del Cursore di dimensione crescente:
bulletinizializza un contatore (MOV CX,16) per visualizzare il cursore (nella posizione di stampa corrente) nelle 16 dimensioni possibili, dalla minima (CH=15, CL=15, una sola linea in basso) verso l'alto fino alla massima (CH=00, CL=15, tutte le 16 linee possibili)
bulletfissa (con la Funzione 01H di INT 10H) la dimensione del cursore lampeggiante nello spazio riservato al carattere che sta per essere scritto:
bulletla linea di partenza (Start_line, in alto), specificata in CH, è fatta variare dal valore massimo 15 al valore minimo 0.
bulletla linea finale (End_line, in basso), posta in CL, è mantenuta fissa al valore massimo 15 (per la VGA, ma 07 per la CGA e 13 per la EGA)
bulletmostra il cursore nella sua dimensione corrente, ed aspetta la pressione di tasto qualunque (CALL STAmess)

               

bulletL'effetto mostrato a video è quello di un oggetto lampeggiante che, piano piano, va ad occupare tutto lo spazio di norma riservato al carattere che sta per essere scritto, una linea di pixel dopo l'altra, dalla prima ed unica in basso al rettangolo formato da tutte le 16 linee possibili.

               

bulletLa fase successiva è perfettamente analoga alla precedente, cercando però di ridurre la dimensione del Cursore:
bulletal cursore (nella posizione di stampa corrente) viene fatta assumere tutta la sequenza di 16 dimensioni possibili, dalla massima (CH=00, CL=15, tutte le 16 linee possibili) alla minima (CH=00, CL=00, una sola linea in alto)
bulletla linea di partenza (Start_line, in alto), specificata in CH, è mantenuta fissa al valore massimo 15
bulletla linea finale (End_line, in basso), posta in CL, è fatta variare dal valore massimo 15 al valore minimo 0

               

bulletL'effetto mostrato a video non è quello desiderato: l'oggetto quadrangolare lampeggiante non esegue a ritroso l'effetto della fase precedente...
bulletPer poter disporre di questo servizio è necessario chiamare prima la SottoFunzione 34H della Funzione 12H di INT 10H, per disattivare l'emulazione CGA del Cursore, attiva per default.
bulletSolo allora la Funzione 01H di INT 10H sarà in grado di modificare automaticamente i valori delle linee di partenza e di arrivo del Cursore in modo da adattarli alle dimensioni (matrice 8*16 VGA) del carattere realmente disponibile.

    

Pagina Precedente Cursore Video Pagina Successiva PROGETTO n° 01 - 4/5   Torna alla Home della Sezione Lezioni - Vai al DownLoad dei files DOC Torna al Menu di "Dentro al Computer"
20 di 42
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

    

Cursore » Come Funziona.. | Area di Comunicazione Bios | Registri | Livello Hardware | Livello BIOS
Livello DOS | Applicazioni Software | Download | INDICE
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati