Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Funzioni BIOS

Home » Programma il Computer » Tutorial Assembly

Tutorial Assembly - Funzioni BIOS

  Programmazione

VIDEO 36/59 [56 di 79] 

 

bullet Gestione BIOS del Video - INT 10H - Funzione 11H- SottoFunz. 10H

 

INT 10H

Funzione 11H/10H Carica il Font di caratteri creato dall'utente e riprogramma il CRT

 

bulletCopia in una specifica Tabella RAM (block) del Generatore di Caratteri Hardware la Tabella User (predisposta dall'utente) con la definizione di uno o più Caratteri  e permette anche la gestione dell'altezza dei caratteri visualizzati, riprogrammando il Controller CRT; è tipica dei Modi Testo.

 

bulletLa SottoFunzione 00H della Funzione 11H di INT 10H assicura lo stesso servizio, ma non permette la gestione dell'altezza dei caratteri.
bulletQuando si desidera ridefinire uno o più caratteri da usare al posto di altri (normalmente qualche Ascii Esteso di scarso impiego) c’è la possibilità di scegliere tra le SottoFunzionI 00H e 10H: se non ci sono particolari controindicazioni conviene quindi usare la seconda, funzionalmente più completa.
bulletLe SottoFunzionI 20H e 21H della Funzione 11H di INT 10H consentono la definizione di Tabelle Utente adatte ai Modi Grafici, anche se non riprogrammano il Controller CRT.

 

bulletIn ingresso:
bullet AH è posto a 11H
bulletAL è posto a 10H e indica la SottoFunzione
bulletBH specifica il numero di bytes previsti per la definizione di ciascun carattere (in pratica l'altezza della matrice di punti)
bulletCX indica il numero dei caratteri definiti in Tabella, non necessariamente 256
bulletES:BP punta la Tabella (TabFont, predisposta dal programma chiamante) con la sequenza dei BH*CX bytes necessari per definire i CX caratteri
bulletDX indica il valore numerico del codice ASCII del primo carattere incluso nella Tabella TabFont
bulletBL indica il numero della Tabella RAM del Generatore di Caratteri Hardware in cui caricare il FONT (00H÷03H)

 

bulletIn uscita lascia:
bulletnulla

 

bulletLa SottoFunzione si chiama in questo modo:

               

  

bulletCon questa SottoFunzione è possibile cambiare l'aspetto di uno o più caratteri del Set standard (nei Modi Testo) sostituendolo con altri progettati dal programmatore; per renderla esecutiva bisogna stabilire l'altezza desiderata per i nuovi caratteri, cioè il numero di bytes necessari per definire la sua matrice di punti, per esempio 16 (per 8 pixel, uno per bit).
bulletLa sequenza di questi bytes (nell'esempio un pacchetto da 16 per ogni nuova definizione) deve essere predisposta in una Tabella (TabFont).

  

bulletLa SottoFunzione 10H, rispetto alla 00H, riprogramma il Controller CRT assicurando così anche la regolazione automatica dell'altezza dei caratteri e, in stretto accordo con le modifiche imposte sui Registri del Controller, l'aggiornamento delle corrispondenti variabili di sistema :
bullet 0000:044CH, dimensione della Pagina Video, cioè il numero di bytes usati per allestire una Pagina (Buffer Video)
bullet 0000:0460H, linea di scansione del Cursore (finale e iniziale)
bullet 0000:0484H, numero di righe sul display meno 1, nel Modo Video Corrente
bullet 0000:0485H, altezza dei caratteri in Pixel, numero di bytes (=righe di pixel) necessari per creare un carattere nel Modo Video Corrente

  

bulletPer evitare risultati imprevedibili la SottoFunzione:
bulletva chiamata subito dopo aver fissato il Modo Testo desiderato
bulletda per scontato che la Pagina Video attiva sia la Pagina0
bulletQuando viene chiamata esegue in sostanza una selezione di modo, modificando i parametri di stato del video, senza per altro cancellare il buffer del Display (cioè evitando l'effetto ClearScreen).

 

bulletLa specifica Tabella RAM (block) usata dal Generatore di Caratteri Hardware può essere rilevata consultando la tabella generata dalla chiamata della Funzione 1BH di INT 10H, al suo indirizzo 2BH e 2CH (vedi anche SottoFunzione 03H della Funzione 11H di INT 10H):

 

2BH  Byte Tabella (primaria) usata dal Generatore HARDWARE
2CH  Byte Tabella (secondaria) usata dal Generatore HARDWARE

 

bulletLa tecnica relativa alla creazione dei caratteri da parte del Generatore Hardware è descritta con ogni dettaglio in questa pagina; è certamente utile consultarne il contenuto, anche per approfondire alcuni importanti aspetti collaterali...
bulletCome il fatto che, nei moderni adattatori VGA, viene proposta a video una matrice di punti 9*16 (cioè risoluzione 40x25, 360x400 o 80x25, 720x400), anche se la nostra Tabella TabFont ha definito i nuovi caratteri ciascuno con 16 bytes, cioè con matrici 8*16:
bulletil nono bit (non presente e non definibile nella nostra TabFont sorgente) viene aggiunto automaticamente alla destra dei normali 8 Pixel di ogni linea di scansione, con l'attributo dello sfondo (praticamente una colonna invisibile) per tutti i caratteri, esclusi quelli (estesi) da C0H (=192="└") a DFH (=223="▀"), per i quali viene duplicato l'ottavo Pixel
bulletla cosa sembra di poco conto quando è necessario creare un solo particolare carattere, ma diventa critica se si crea una sequenza di caratteri che devono essere proposti uno dietro l'altro, magari per creare un logo...
bulletin questo caso i caratteri, da sostituire con la nostra creazione, devono essere scelti tra quelli del seguente elenco, per evitare di veder stampato il logo "a segmenti", cioè con ciascun carattere separato da una fastidiosa breve strisciolina vuota (il famoso nono bit lasciato spento):

 

192

C0H   200 C8H   208 D0H   216 D8H
193 C1H   201 C9H   209 D1H   217 D9H
194 C2H   202 CAH   210 D2H   218 DAH
195 C3H   203 CBH   211 D3H   219 DBH
196 C4H   204 CCH   212 D4H   220 DCH
197 C5H   205 CDH   213 D5H   221 DDH
198 C6H   206 CEH   214 D6H   222 DEH
199 C7H   207 CFH   215 D7H   223 DFH

 

bulletL'eseguibile B10_1110.COM offre una pregiata applicazione della SottoFunzione 10H della Funzione 11H dell'INT 10H: in pratica ridefinisce 5 caratteri Ascii estesi e li colloca nella Prima Tabella gestita dal Generatore di Caratteri Hardware.
bulletIl sorgente è documentato nella sezione ASM (clicca sull'iconaApplicazioni Software, nel menu a sinistra).

    

Pagina Precedente Funzioni BIOS Pagina Successiva VIDEO 36/59   Torna alla Home della Sezione Assembler - DownLoad Torna al Menu di "Programma il Computer"
56 di 79
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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

    

Funzioni BIOS » Elenco Progressivo | Seriale | Parallela | Stampanti | Video | Cursore
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | 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