Come Funziona
Area Comunicaz. Bios |
||
Video |
Programmazione |
PROCEDURE BIOS 2/59 [24 di 84] |
|
Gestione BIOS del Video -
INT 10H
- Funzione 00H
|
|
Cambia il Modo Video corrente in quello desiderato, scelto tra quelli supportati dalla propria scheda video. | |
Come effetto collaterale produce l'effetto ClearScreen (lo schermo viene cancellato) e il cambiamento (nei Modi Testo) delle dimensioni del Cursore (Nei Modi Grafici il cursore non è visibile). |
|
In
ingresso:
|
|
In uscita lascia:
|
|
La Funzione si chiama in questo modo: |
|
|
Va sottolineato che quando si cambia il Modo Video viene riconfigurato e reinizializzato tutto l'ambiente Video; il Controller CRT dell'Adattatore Video viene riprogrammato e molte variabili di sistema (a cominciare dalla 0000:0449H che contiene proprio il Modo Video corrente) vengono caricate con i nuovi nuovi valori. |
|
Nei Modi Testo l'effetto più concreto di questa reinizializzazione è il fatto che nella memoria del video (RamVideo) vengono collocate in sequenza sedicimila coppie di bytes 20H/07H; il primo byte rappresenta il codice ASCII dello spazio e il secondo l'attributo di colore di default, bianco su nero. | |
Dunque vengono cancellate tutte le possibili Pagine Video, non solo della Pagina0; quando si lavora direttamente in RamVideo la chiamata di questa Funzione è perciò da evitare, per non perdere le informazioni predisposte nelle pagine alternative. |
|
Nonostante questa caratteristica non è opportuno usare questa Funzione per produrre un CLS perchè impiega un po' più di tempo rispetto a quelle che si usano normalmente per questo servizio (cioè le Funzioni 06H o 07H di INT 10H). | |
Per evitare di cancellare lo schermo nei Modi standard IBM basta porre a 1 il bit7 di AL. |
|
La scelta del Modo Video desiderato viene operata a partire dalla Tabella dei Modi Standard e da quelle specifiche della scheda video, fornite dal costruttore. | |
A questo proposito va sottolineato che anche le moderne schede Super VGA hanno cura di emulare anche i precedenti adattatori (CGA, EGA, VGA), per cui i Modi Video Standard (da 00H a 13H) saranno disponibili sui prodotti di tutti i costruttori; la Tabella seguente ne mostra i dettagli: |
|
Modo | Tipo |
Risoluzione Testo |
Risoluzione Grafica |
Colore |
Numero Pagine |
Indirizzo RamVideo |
Scheda SVGA |
|
00H | Testo | 40x25 | 8x8 | 320x200 | 16 | 8 | B800H | CGA |
8x14 | 320x350 | EGA | ||||||
9x16 | 360x400 |
VGA |
||||||
01H | Testo | 40x25 | 8x8 | 320x200 | 16 | 8 | B800H | CGA |
8x14 | 320x350 | EGA | ||||||
9x16 | 360x400 |
VGA |
||||||
02H | Testo | 80x25 | 8x8 | 640x200 | 16 | 4 | B800H | CGA |
8x14 | 640x350 | 8 | EGA | |||||
9x16 | 720x400 |
VGA |
||||||
03H | Testo | 80x25 | 8x8 | 640x200 | 16 | 4 | B800H | CGA |
8x14 | 640x350 | 8 | EGA | |||||
9x14 | 720x350 | |||||||
9x16 | 720x400 |
VGA |
||||||
04H | Grafico | 40x25 | 8x8 | 320x200 | 4 | 1 | B800H | CGA |
05H | Grafico | 40x25 | 8x8 | 320x200 | 4 | 1 | B800H | CGA |
06H | Grafico | 80x25 | 8x8 | 640x200 | B/N | 1 | B800H | CGA |
07H | Testo | 80x25 | 9x14 | 720x350 | mono | 1 | B000H | MDA |
08H | Grafico | 20x25 | 8x8 | 160x200 | 16 | 1 | B000H | PCjr |
09H | Grafico | 40x25 | 8x8 | 320x200 | 16 | 1 | B000H | PCjr |
0AH | Grafico | 80x25 | 8x8 | 640x200 | 4 | 1 | B000H | PCjr |
0BH | Riservato, uso interno EGA | |||||||
0CH | Riservato, uso interno EGA | |||||||
0DH | Grafico | 40x25 | 8x8 | 320x200 | 16 | 8 | A000H | EGA |
0EH | Grafico | 80x25 | 8x8 | 640x200 | 16 | 4 | A000H | EGA |
0FH | Grafico | 80x25 | 8x14 | 640x350 | mono | 2 | A000H | EGA |
10H | Grafico | 80x25 | 8x14 | 640x350 | 4 o 16 | 2 | A000H | EGA |
11H | Grafico | 80x30 | 8x16 | 640x480 | mono | 1 | A000H | VGA |
12H | Grafico | 80x30 | 8x16 | 640x480 | 16 | 1 | A000H | VGA |
13H | Grafico | 40x25 | 8x8 | 320x200 | 256 | 1 | A000H | VGA |
|
Naturalmente ciascuna scheda grafica rende disponibili, in aggiunta a quelli Standard, una discreta quantità di Modi Estesi SVGA; ognuno di essi può essere collaudato semplicemente ponendo in AL il corrispondente numero (ammesso che sia disponibile) e chiamando questa Funzione. | |
Sebbene l'esigenza di ridurre i costi all'osso renda la cosa sempre meno frequente, quando si acquista una scheda Video è talvolta possibile disporre di un prezioso manualetto, l'User manual dell'adattatore grafico che, oltre a fornire preziose informazioni sui segreti della scheda, rende disponibile la Tabella dei Modi Estesi da essa supportati. |
|
Sfortunatamente ogni costruttore offre modalità Estese SVGA non vincolate ad accordi di portabilità, associando cioè a ciascun Modo video i numeri più imprevedibili. | |
Per questa ragione non è assolutamente consigliabile creare programmi che chiamino questa Funzione con Modi diversi da quelli Standard: difficilmente sarebbero in grado di funzionare su computer diversi da quello in cui si è fatto il collaudo. |
|
La letteratura specifica offre talvolta Tabelle simili a quella precedente, con un tentativo di raccogliere e documentare le specifiche di ciascun nuovo Modo; scorrendole è facile constatare che, quasi sempre, a parità di numero di Modo, produttori diversi offrono servizi diversi, per risoluzione e tipologia. | |
Sembra dunque tempo perso insistere su questo argomento; a solo titolo di curiosità allego 2 tabelle, estratte dagli User manual di 2 schede video SVGA, una piuttosto anziana e l'altra genericamente SVGA compatibile: |
|
Scheda Trident TVGA 8900 | |||||||
Modo | Tipo |
Risoluzione Testo |
Risoluzione Grafica |
Colore |
Numero Pagine |
Indirizzo RamVideo |
|
50H | Testo | 80x30 | 8x16 | 640x480 | 16 | 8 | B800H |
51H | Testo | 80x43 | 8x11 | 640x473 | 16 | 8 | B800H |
52H | Testo | 80x60 | 8x8 | 640x480 | 16 | 8 | B800H |
53H | Testo | 132x25 | 9x14 | 1056x350 | 16 | 8 | B800H |
54H | Testo | 132x30 | 8x16 | 1056x480 | 16 | 8 | B800H |
55H | Testo | 132x43 | 8x11 | 1056x473 | 16 | 8 | B800H |
56H | Testo | 132x60 | 8x8 | 1056x480 | 16 | 8 | B800H |
57H | Testo | 132x25 | 9x14 | 1188x350 | 16 | 8 | B800H |
58H | Testo | 132x30 | 9x16 | 1188x480 | 16 | 8 | B800H |
59H | Testo | 132x43 | 9x11 | 1188x473 | 16 | 8 | B800H |
5AH | Testo | 132x60 | 9x8 | 1188x480 | 16 | 8 | B800H |
5BH | Grafico | 100x75 | 8x16 | 800x600 | 16 | 8 | A000H |
5CH | Grafico | 80x25 | 8x16 | 640x400 | 256 | 8 | A000H |
5DH | Grafico | 80x30 | 8x8 | 800x600 | 256 | 8 | A000H |
5EH | Grafico | 100x75 | 8x8 | 800x600 | 256 | 8 | A000H |
5FH | Grafico | 128x48 | 8x14 | 1024x768 | 16 | 2 | A000H |
60H | Grafico | 128x48 | 8x14 | 1024x768 | 4 | 2 | A000H |
61H | Grafico | 96x64 | 8x16 | 768x1024 | 16 | 2 | A000H |
62H | Grafico | 128x48 | 8x16 | 1024x768 | 256 | 2 | A000H |
|
Scheda SVGA compatibile | |||||||
Modo | Tipo |
Risoluzione Testo |
Risoluzione Grafica |
Colore |
Numero Pagine |
Indirizzo RamVideo |
|
4EH | Testo | 80x60 | 8x8 | 640x480 | 16 | B800H | |
4FH | Testo | 132x60 | 8x8 | 1056x480 | 16 | B800H | |
50H | Testo | 132x25 | 8x14 | 1056x350 | 16 | B800H | |
51H | Testo | 132x43 | 8x8 | 1056x344 | 16 | B800H | |
52H | Grafico | 100x37 | 8x16 | 800x600 | 16 | A000H | |
53H | Grafico | 80x30 | 8x16 | 640x480 | 256 | A000H | |
54H | Grafico | 100x37 | 8x16 | 800x600 | 256 | A000H | |
55H | Grafico | 128x48 | 8x16 | 1024x768 | 4 | A000H | |
56H | Grafico | 128x48 | 8x16 | 1024x768 | 16 | A000H | |
57H | Grafico | 96x64 | 8x16 | 768x1024 | 16 | A000H | |
58H | Grafico | 160x64 | 8x16 | 1280x1024 | 16 | A000H | |
59H | Grafico | 128x48 | 8x16 | 1024x768 | 256 | A000H |
|
Osservando e confrontando i
Modi Video con il
medesimo numero di Modo,
le incongruenze anticipate sono piuttosto
evidenti; in generale possiamo comunque sottolineare alcuni dati di fatto:
|
|
L'eseguibile B10_00__.COM mostra l’effetto della Funzione 00H dell'INT 10H. | |
Il sorgente è documentato nella sezione ASM (clicca sull'icona, nel menu a sinistra). |
|
La Libreria Giobe.LIB impone il Modo Testo Standard (03H) con la procedura BIOScls, assicurando in modo improprio anche il ClearScreen del Monitor. |
|
Quando la Funzione imposta una modalità Grafica può capitare, specialmente in fase di collaudo, di tornare al prompt del DOS con il Modo Grafico ancora attivo; in questo caso, nella peggiore delle ipotesi il Monitor potrebbe anche essere tutto nero.. |
|
NB: un buon programma di Grafica deve prevedere, al suo termine (prima di restituire il controllo al DOS), il ripristino del Modo Testo standard, 03H. |
|
Naturalmente non è il caso di perdersi d’animo: bisogna almeno tentare di digitare (anche al buio) il comando DOS MODE CO80: nella gran parte dei casi il problema si risolve e ci è consentito di tornare a lavorare; altrimenti non ci rimane altro che chiudere la sessione DOS e ricominciare da capo, cercando di correggere l’errore che ha prodotto il pasticcio. |
|
Video01 | PROCEDURE BIOS 2/59 | |||||||
24 di 84 |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|