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

 Cursore

Applicazioni Software

  Applicazioni Software

PROGETTO n° 05 - 5/6 [39 di 42] 

               

Analisi del Problema · Analisi del Codice · Procedure importanti
Gestione dimensione del Cursore - Selezione guidata del cursore
Analisi del Codice Sorgente [3 di 3]

               

bulletL'analisi di questo stralcio di programma è una buona occasione per tornare su un argomento molto importante: la gestione dei diversi tipi di tasto:

               

Progetti con Cursore Hardware Esercizio 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

               

bulletIl programma si ferma (CALL KEYwait) in attesa della pressione di un tasto qualunque; in effetti la Procedura KEYwait si avvale della Funzione 00H dell'INT 16H, che provvede appunto alla lettura della tastiera., lasciando in AL, in uscita, il codice ascii del tasto premuto.
bulletIn accordo con le note regole la prima cosa da fare è verificare se si tratta di tasti Funzione o Funzionali: in questo caso il suo codice Ascii è nullo (AL=0) e diventa indispensabile interpretare il loro codice di scansione disponibile in AH.
bulletPoiché il nostro programma ha bisogno di rilevare la pressione delle 4 frecce di direzione, alla pressione di una di esse proseguirà (JE Serv_Fr) con un supplemento d'indagine su AH (anzicchè su AL, come si fa negli altri casi).
bulletI 4 servizi sono simili tra loro: si limitano a fissare il nuovo cursore in uno dei punti previsti dalla Griglia; per non rischiare di posizionarlo in un punto esterno alla Griglia stessa, prima di fissarlo si verifica se le nuove coordinate (riga=DH, colonna=DL) appartengono allo spazio video previsto.
bulletLa tecnica per questa verifica è molto raffinata e si avvale della Procedura locale ChkPos (CALL ChkPos):

               

               

bulletIn pratica, con la Procedura RAMcur, si localizza direttamente in RamVideo il carattere puntato dalle nuove coordinate DH, DL) e se si tratta del puntino · la nuova posizione è accettabile; senza questo artificio il compito da svolgere sarebbe certamente piuttosto difficile da risolvere...

      

bulletDopo le frecce è autorizzata la sola pressione di Invio (codice Ascii AL=13) alla pressione del quale il programma ha termine.
bulletDa notare che, prima delle classiche istruzioni (MOV AH,4CH,INT 21H) che chiudono il codice sorgente, restituendo il controllo al sistema operativo, viene ripristinata la gestione di default del cursore, con emulazione CGA attiva, chiamando ancora la SottoFunzione 34H della Funzione 12H di INT 10H, ora con AL=00H:

               

               

bulletCome premesso, se si conduce il lavoro nelle shell DOS dei moderni Sistemi Operativi (Windows NT, Windows 2000, Windows XP), è inutile aspettarsi di vedere il nuovo cursore anche al rientro al prompt...; queste istruzioni, non previste nella versione originale dei bei tempi andati, evitano di lasciare, in uscita, il cursore in balìa delle paranoie interpretative dei moderni SYsOp.

    

Pagina Precedente Cursore Video Pagina Successiva PROGETTO n° 05 - 5/6   Torna alla Home della Sezione Lezioni - Vai al DownLoad dei files DOC Torna al Menu di "Dentro al Computer"
39 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