Sezione |
Indirizzi Base
Registri Interni
|
Funzioni BIOS |
Programmazione |
CURSORE 2/5 [17 di 79] |
|
Gestione BIOS del cursore
Hardware -
INT 10H
- Funzione 01H
|
|
Fissa la dimensione del cursore lampeggiante, prodotto dall'hardware della scheda video tracciando una o più linee di Pixel nello spazio riservato al carattere che sta per essere scritto. | |
In ogni caso il cursore lampeggiante è visibile solo nei Modi Testo; nei Modi Grafici viene spento automaticamente, pur mantenendo la completa gestibilità della posizione di stampa in ognuna delle pagine video previste dall'adattatore disponibile e dal Modo Video. |
|
In
ingresso:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In uscita lascia:
|
La Funzione si chiama dunque in questo modo: |
|
|
Il cursore può dunque essere eliminato dal video fissando i valori CH=20H/CL=00H. |
|
Come detto all'inizio il lampeggio del cursore è generato dall'hardware della scheda video e non può essere spento da hardware. | |
In alternativa è possibile nascondere il Cursore anche fissandolo in una posizione di stampa non appartenente alla pagina video corrente, per esempio forzandolo sulla ipotetica riga 25, cioè sulla prima riga all'inizio della pagina video successiva, con l'aiuto della Funzione 02H di INT 10H. |
|
La Funzione 12H dell'INT 10H offre una SottoFunzione 34H che consente il controllo di questa opportunità, abilitando o meno l'emulazione del Cursore alfanumerico; essa controlla e riflette il valore del bit0 della variabile di sistema posta a 0000:0487H; all'accensione l'emulazione del Cursore è abilitata (bit0 = 0). |
|
Se si desidera impostare le linee di partenza e di arrivo del Cursore ad un qualunque valore compreso tra 0 e il numero massimo di linee previsto dalla risoluzione corrente meno uno (15 per la VGA) è necessario forzare a 1 il bit0 della variabile di sistema posta a 0000:0487H o chiamare opportunamente la su citata SottoFunzione 34H della Funzione 12H di INT 10H, prima di modificare le dimensioni con la Funzione 01H che sto descrivendo. |
|
Vediamo l'aspetto del cursore con diverse coppie di valori per CH (=inizio) e CL (=fine): |
|
CH=0 → |
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |
■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
← CL=15 |
CH=7 → |
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |
■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ ■■■■■■■■ |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
← CL=15 |
CH=15 → |
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |
■■■■■■■■ |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
← CL=15 |
|
L'eseguibile B10_01__.COM mostra l’effetto della manipolazione diretta della dimensione del cursore con la Funzione 01H di INT 10H: facendo crescere e decrescere i valori di CH e CL: come preannunciato emerge una piccola delusione..., ci sono errori inaspettati.. | |
Guarda la differenza cliccando sull'eseguibile B10_1234.COM ... basato invece sulla SottoFunzione 34H della Funzione 12H di INT 10H, che discuteremo tra non molto: ogni difetto è sparito! | |
I sorgenti sono documentati nella sezione ASM (clicca sull'icona, nel menu a sinistra). |
|
La Libreria Giobe.LIB gestisce (ovviamente nei Modi Testo) la scomparsa del cursore con la procedura Via_cur e ne riattiva il lampeggio con la procedura Rip_cur. |
|
Funzioni BIOS | CURSORE 2/5 | |||||||
17 di 79 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|