Interruption 10h |
Fonction 11h, Sous-Fonction 00h |
Charge une police utilisateur |
---|---|---|
EGA, MCGA, VGA, IBM 8514/A, SVGA |
Description
Cette fonction permet de charger un ensemble de police de caractères utilisateur.
Entrée
Registre | Description |
---|---|
AX | 1100h |
BH | Ce registre permet d'indiquer les lignes par caractère (et donc octets par caractère) |
BL | Ce registre permet d'indiquer la table de caractères appelée (0 ou 1) |
CX | Ce registre permet d'indiquer le nombre de caractères définis dans la table |
DX | Ce registre permet d'indiquer le code ASCII du premier caractère dans la table. |
ES:BP | Ce registre permet d'indiquer l'adresse de la table de police de caractères. |
Sortie
Aucune
Remarques
- Cette fonction permet de sélectionner la police de caractères dans les modes d'affichage texte (alphanumérique). Pour la sélection des polices de caractères dans les modes graphiques (adressables en tous points), voir l'interruption 10h, Fonction 11h, sous-fonction 20h à 24h.
- Si AL = 10H, la page 0 doit être active. Les points (octets par caractère), les lignes et la longueur du tampon de rafraîchissement sont recalculés. Le contrôleur est reprogrammé avec la ligne de balayage maximale (points - 1), le début du curseur (points - 2), la fin du curseur (points - 1), la fin de l'affichage vertical ((lignes * points) - 1) et l'emplacement de soulignement (points - 1, mode 7 uniquement). Si la sous-fonction 10h est appelée à tout moment autre qu'immédiatement après un mode défini, les résultats sont imprévisibles.
- Sur la carte vidéo MCGA, un appel à la sous-fonction 00h doit être suivi d'un appel à la sous-fonction 03h afin que le BIOS en ROM charge la police de caractères dans les pages de police de caractères internes du générateur de caractères.
- La sous-fonction 10h est réservée sur la carte vidéo MCGA. S'il est appelé, la sous-fonction 00h est exécutée.
Exemple
L'exemple suivant, écrit en Turbo Pascal 7, permet de reprogrammer l'apparence du caractère numéro 234 sous la forme d'un fantôme de Pac-Man :
- Program FontGhost;
-
- Uses DOS;
-
- Procedure LoadFont(AscII:Word;Table,Matrice,Nombre:Byte;Buffer:Pointer);
- Var
- Registre:Registers;
- Begin
- With Registre do Begin
- AX:=$1100;
- BH:=Matrice;
- BL:=Table;
- CX:=Nombre;
- DX:=AscII;
- BP:=Ofs(Buffer^);
- ES:=Seg(Buffer^);
- Intr($10,Registre);
- End;
- End;
-
- Procedure Font234;Assembler;ASM
- { 234 }
- DB 00011100b
- DB 01111110b
- DB 11111111b
- DB 10011001b
- DB 10011001b
- DB 11111111b
- DB 11111111b
- DB 11111111b
- DB 11111111b
- DB 11111111b
- DB 11111111b
- DB 11111111b
- DB 11111111b
- DB 10111011b
- DB 10011001b
- DB 10011001b
- END;
-
- BEGIN
- LoadFont(234,0,16,1,@Font234);
- WriteLn(Chr(234));
- END.
on obtiendra un résultat ressemblant à ceci :
Références
La Bible du PC: Programmation système - Sixième Edition, Edition Micro-Application, Michael Tischer, 1996, ISBN: 2-7429-0544-8, page 1593.
The Undocumented PC: A programmer's Guide to I/O, CPUs, and Fixed Memory Areas - Second Edition, Edition Addison-Wesley, Frank van Gilluwe, 1997, ISBN: 0-201-47950-8, page 414 à 415.
Dernière mise à jour : Jeudi, le 3 mars 2016