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

 Cursore

Livello DOS

  Programmazione

PROCEDURE DOS [14 di 42] 

 

bullet Il controllo del Cursore non è supportato da nessuna delle Funzioni a livello DOS, tipiche delle procedure del sistema operativo (INT 21H).

 

bulletLa gestione del cursore e del colore non è una prerogativa del DOS, che presenta i suoi messaggi rigorosamente con i colori di default, bianco su nero, esclusivamente a capo riga.

 

bulletFa eccezione il Comando DOS CLS, che, pulendo lo schermo, posizione il cursore in alto a sinistra (riga 0, colonna 0), subito dopo il Prompt.
bulletL'unico modo per porre a video frasi colorate in un punto diverso, direttamente dal Prompt del DOS (per tentare di personalizzare l’esecuzione dei suoi comandi) è quella di disporre di un intermediario: il Driver ANSI.SYS.

 

bulletUn tempo esso era disponibile tra i files del DOS, proprio per consentire queste azioni, ma i moderni SysOp non lo forniscono più.
bulletPer fortuna il vostro cercatore di fiducia ha scovato l'eseguibile Ansi.com, Copyright (C) 1988, Ziff Communications Co., un'eccellente alternativa shareware al driver omonimo originale DOS.

 

bulletDopo averlo lanciato lascia una parte di esso rimane residente in memoria, consentendoci il controllo del cursore con gli stessi comandi di prima; è sufficiente inserire le seguenti stringhe di controllo in quelle classiche con cui si esercita il comando DOS:

 

Comando ANSI Significato del Comando ANSI
<ESC>[<#>;<#>H Sposta il cursore alla riga <r>, colonna <c>
<ESC>[<#>A Sposta il Cursore in alto di <#> posizioni
<ESC>[<#>B Sposta il Cursore in basso di <#> posizioni
<ESC>[<#>C Sposta il Cursore a destra di <#> posizioni
<ESC>[<#>D Sposta il Cursore a sinistra di <#> posizioni
<ESC>[s Memorizza la posizione attuale del cursore
<ESC>[6n Legge la posizione corrente
<ESC>[u Recupera la posizione pre-memorizzata

 

bullet

Ricordiamo che <ESC> rappresenta la pressione del tasto ESC e che <#> rappresenta la pressione di uno o più tasti numerici, per esempio 4 o 37.

 

bullet

Questi preziosi Comandi ANSI possono servire per personalizzare il Prompt del Sistema Operativo; a ciò provvede l’omonimo Comando DOS PROMPT, di solito inserito nei files di tipo batch (come il noto Autoexec.bat o il nostro Macro.bat), ma anche direttamente digitabile sulla riga di comando.

bullet

se sei un frequentatore del mio Ambiente Assembler conosci già l'effetto di queste potenti stringhe; con esse abbiamo costruito il nostro esclusivo prompt colorato personalizzato:

 

Apri una finestra DOS su Arch-Lab Puoi vederne l'effetto cliccando sull'icona a sinistra: verrà aperta una finestra DOS all'interno della quale verrà proposto il prompt Prompt dell?ambiente Assembler
S
cegli il pulsante di opzione "Aprire il file" o "Esegui l'applicazione"  e conferma con OK.
NB: alcuni gestori di protezione (per esempio SP2 di WinXP) non ti consentono questa operazione:
in questo caso scrivi
c:\arch-lab\bin\sys\assembler.pif direttamente nel campo indirizzo del Browser

 

 

bulletBisogna però risolvere un problema: se proviamo a digitare una stringa di PROMPT contenente stringhe Ansi, alla pressione del tasto ESC il DOS cancella il contenuto della parte già digitata sulla riga e quindi sembra impossibile continuare l’esperimento!
bulletPer ovviare a questo ed a altri inconvenienti simili la sintassi del Comando DOS PROMPT prevede che il carattere $ possa essere usato per fare assumere valenza funzionale al carattere scritto subito dopo di esso; tra le diverse possibilità la sequenza $e serve proprio per simulare la pressione di ESC.
bulletIn altre parole le stringhe proposte in precedenza suggeriscono la sequenza dei caratteri da digitare ma devono essere scritte in modo diverso, in funzione dell'ambiente chiamato ad interpretarle; vediamo alcuni esempi:

 

Comando ANSI al Prompt
del DOS
Dentro un sorgente ASM Significato del Comando ANSI
<ESC>[<#>;<#>H $e[10;55H ←[10;55H Sposta il cursore alla riga 10, colonna 55
<ESC>[<#>A $e[5A ←[5A Sposta il Cursore in alto di 5posizioni
<ESC>[<#>B $e[3B ←[3B Sposta il Cursore in basso di 3 posizioni
<ESC>[<#>C $e[58C ←[58C Sposta il Cursore a destra di 58 posizioni
<ESC>[<#>D $e[25D ←[25D Sposta il Cursore a sinistra di 25 posizioni
<ESC>[s $e[s ←[s Memorizza la posizione attuale del cursore
<ESC>[6n $e[6n ←[6n Legge la posizione corrente
<ESC>[u $e[u ←[u Recupera la posizione pre-memorizzata

 

bullet

Per il collaudo di queste (e altri..) stringhe (sempre se il Driver ANSI.SYS o ANSI.COM è regolarmente installato in memoria) sono disponibili 3 programmi: 2 di essi mostrano altrettanti modi di gestione dei Comandi ANSI direttamente dal Prompt del DOS:
bullet

AnsiTest.TXT, contiene stringhe e testi e può essere lanciato con il Comando DOS TYPE AnsiTest.TXT

bullet

AnsiTest.BAT, contiene le medesime stringhe del precedente ma organizzate nel modo tipico dei files di tipo batch, cioè dopo la parola chiave echo

bullet

l’apertura con un Editor di entrambe queste versioni costituisce una interessante occasione per studiarne la struttura.

 

bullet

In aggiunta ho realizzato anche il programma AnsiTest.COM, in grado di mostrare (se ce ne fosse ancora bisogno...) la forza di queste stringhe; il sorgente è documentato nella sezione ASM del Tutorial Assembly.

bullet

Da notare che, per le priorità tipiche del DOS, la presenza contemporanea nella stessa cartella dei files (AnsiTest) .BAT e .COM mette in esecuzione questo ultimo, per cui bisogna prendere provvedimenti..

 

bullet

Ricordo infine che la riprogrammazione della posizione e delle dimensioni del Cursore, come qualunque altra modifica imposta al controller del VIDEO, può essere facilmente annullata con il Comando DOS MODE (per esempio CO80), che reinizializza tutte le variabili ai valori di default.

    

Pagina Precedente Cursore Video Pagina Successiva PROCEDURE DOS   Torna alla Home della Sezione Lezioni - Vai al DownLoad dei files DOC Torna al Menu di "Dentro al Computer"
14 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