Come Funziona
Area Comunicaz. Bios |
||
Cursore |
Applicazioni Software |
PROGETTO n° 05 - 5/6 [39 di 42] |
|
|
||
Gestione dimensione del Cursore - Selezione guidata del cursore | ||
Analisi del Codice Sorgente [3 di 3] |
|
L'analisi di questo stralcio di programma è una buona occasione per tornare su un argomento molto importante: la gestione dei diversi tipi di tasto: |
|
Progetto |
NB: se il testo nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
|
Il 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. | |
In 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. | |
Poiché 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). | |
I 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. | |
La tecnica per questa verifica è molto raffinata e si avvale della Procedura locale ChkPos (CALL ChkPos): |
|
|
In 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... |
|
Dopo le frecce è autorizzata la sola pressione di Invio (codice Ascii AL=13) alla pressione del quale il programma ha termine. | |
Da 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: |
|
|
Come 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. |
|
Cursore Video | PROGETTO n° 05 - 5/6 | |||||||
39 di 42 |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|