|  | 
      
    
      Come Funziona
     
    
    
      Area Comunicaz. Bios  | |
| Video | 
| Programmazione | PROCEDURE BIOS 54/59 [76 di 84] | 
| 
 | 
|  | Gestione BIOS del Video  - 
  INT 10H 
  - Funzione 13H 
 
 | 
| 
 | 
|  | Scrive una stringa sul monitor. | 
| 
 | 
|  | In
                ingresso: 
 | 
| 
 | 
|  | In uscita lascia: 
 | 
| 
 | 
|  | L'impiego della nostra Funzione 13H dell'INT 10H nella stampa di messaggi è piuttosto particolare, poco pratico e macchinoso... | 
|  | In generale è più conveniente organizzare le numerose altre Funzioni BIOS di INT 10H adatte alla stampa dei caratteri (come le Funzioni 09H, 0AH e 0EH) al fine di creare Procedure più efficienti di questa (vedi riferimenti in fondo alla pagina). | 
| 
 | 
|  | La stringa di caratteri da stampare deve essere predisposta in memoria e puntata dai registri ES:BP; il primo dei suoi caratteri sarà posto a video a partire dalla posizione di stampa indicata da DH (riga) e DL (colonna) nella pagina indicata da BH (quando il Modo video ne prevede più di una). | ||||
|  | Un'altra caratteristica è legata al modo con cui bisogna 
  predisporre l'informazione: 
 | 
| 
 | 
|  | La richiesta conoscenza del numero di caratteri da stampare (da predisporre in CX) può ingenerare fastidio al programmatore, che si vede potenzialmente costretto a contare i caratteri della stringa. 
 | 
| 
 | 
|  | La Funzione può essere ritenuta una estensione della Funzione 0EH di INT 10H dato che è in grado di interpretare alcuni tra i primi 32 caratteri Ascii in modo TTY (TeleTYpe) cioè non per mettere a video la loro matrice di punti prevista dal Set coinvolto, ma per esercitare l'azione di controllo ad essi associata. | ||||||||||
|  | I caratteri Ascii di 
controllo trattati in modo funzionale sono: 
 | ||||||||||
|  | I più ricorrenti tra essi sono la coppia 0D/0AH, solitamente aggiunta automaticamente dagli editor al termine di ciascuna riga digitata e corrisponde alla pressione del tasto Invio; tutti i rimanenti codici Ascii sono semplicemente posti a video nella loro forma consueta. | 
| 
 | 
|  | La tecnica con cui la stringa viene colorata dipende dalla SottoFunzione coinvolto (una delle 4 possibili, dichiarato in AL) e dal Modo Video corrente. | ||||||||||||||||||||||||||||||
|  | Nei 
 Modi Testo 
    il 
            codice di colore (detto
            anche attributo) è il 
  classico byte diviso in 3 campi, in grado di gestire sia lo 
    Sfondo che il Primo Piano, secondo lo schema 
  seguente; il colore associato a ciascun 
      campo è descritto 
    in questa pagina; la combinazione degli 8 bit da luogo a 28 =
    256 diversi accoppiamenti: puoi vederne
        l'effetto ed impararne il codice consultando la pagina dei
 Colori
        Assembly in  Modo Testo): 
 
 
 
 | ||||||||||||||||||||||||||||||
| 
 | 
|  | In quasi tutti i Modi Grafici il valore di BL va inteso come colore dei Pixel che formano il carattere (Primo Piano) ma non lo Sfondo, assunto sempre nero, a meno che il bit7 del codice posto in BL sia forzato a 1; in questo caso il colore dei caratteri stampati sarà il risultato della XOR del valore passato in BL e quello del colore del carattere attualmente presente in quel punto; il codice in BL deve esser ribadito ogni volta che si chiama la Funzione. | 
|  | Fa eccezione il ModoGrafico 13H (320x200 a 256 colori, VGA) per il quale, per ciascun carattere, è possibile selezionare sia il Primo Piano (ancora con BL) che lo Sfondo (con BH, che ora non seleziona più la pagina come negli altri Modi), scelto tra uno dei 64 possibili . | 
| 
 | 
|  | Va sottolineato infine che 
    le 
  SottoFunzioni differiscono anche per il 
  modo con 
  cui viene servito il Cursore: 
 | 
| 
 | 
|  | La Funzione 
  si chiama  in questo modo: SottoFunzione AL=00H attributo di Colore viene assunto da BL, posizione del Cursore non aggiornata | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
|  | Come anticipato la Libreria Giobe.LIB organizza la stampa di messaggi (in alternativa all'uso di questa Funzione 13H di INT 10H) con alcune Procedure e alcune Macro. | 
| 
 | 
|  | Per la stampa dei messaggi la  Libreria
          
          Giobe.LIB offre la 
          procedura 
          
          
          BIOSmsg 
          (basata sulla procedura 
          
          
          BIOchr1) 
          e la procedura  
          
          
          RAMmes 
          (basata sulla scrittura diretta in 
          
  
  
  RamVideo) La Raccolta di MacroIstruzioni Giobe.MAC organizza questo servizio con le Macro M_CURSOR, M_msgC , M_msgN (a livello BIOS) e RAMmsg, RAMcol, RAMnor (a livello RamVideo) | 
| 
 | 
|  | Le strutture delle Librerie potranno essere chiamate con efficienza anche nei Modi Grafici, anche se in esse il cursore non è visibile. | 
| 
 | 
|  | Gli eseguibili B10_13__.COM (nei Modi Testo) e B10_13gr.COM (nei Modi Grafici) mostrano l’effetto della Funzione 13H dell'INT 10H. | 
|  | I sorgenti sono documentati nella sezione ASM 
  (clicca sull'icona  , 
  nel menu a sinistra). | 
| 
 | 
|   | Video01 |   | PROCEDURE BIOS 54/59 |  |  |  | ||
| 76 di 84 | 
| 
 | 
| 
 | 
| 
 | 
| Home  | 
 | |||||||
| 
 | Motore Ricerca | 
 |