Interruption 10h |
Fonction 0Ah |
Écriture d'un caractère |
---|---|---|
MDA, CGA, PC Junior, EGA, MCGA, VGA, IBM 8514/A, Super VGA |
Description
Cette fonction permet l'écriture d'un caractère à la position du curseur.
Entrée
Registre | Description |
---|---|
AH | 0Ah |
AL | Ce registre permet d'indiquer le caractère à écrire (voir la table ASCII) |
BH | Ce registre permet d'indiquer la page dans lequel le caractère sera écrit (la première page est ou la page par défaut, correspond à la valeur 0). |
CX | Ce registre permet d'indiquer le nombre de caractères à écrire (facteur de duplication) |
Si mode graphique | |
BL | Ce registre permet d'indiquer la couleur avec lequel le caractère sera écrit. |
Sortie
Aucune
Remarques
- Cette fonction ne modifie pas la position du curseur, ainsi, par exemple, si vous appeler 10 fois cette fonction avec des caractères différents, sans avoir changer la position du curseur, vous verrez uniquement l'affichage de votre 10ième caractères.
- Le facteur de duplication ne s'applique sur la ligne texte courante en mode d'affichage graphique.
- Les caractères inférieur à 32, soit les caractères de contrôles, comme un retour en arrière (BackSpace), retour de chariot (Carriage Return) et saut de ligne (Line Feed),... sont ignorés par cette fonction d'interruption.
- Les cartes vidéo CGA et le micro-ordinateur PC Junior, utilisant les modes vidéo de 04h à 06h, la police de caractères entre les codes ASCII 80h et FFh sont indiqué à l'adresse pointer par l'Interruption 1Fh. Sur le PC Junior, l'adresse de la table pour les codes de caractères 00h à 7Fh est entreposée dans le vecteur d'interruption 44h. Des jeux de caractères alternatifs peuvent être installés en les chargeant en mémoire et en mettant à jour ce vecteur.
- Les cartes vidéo EGA, MCGA, VGA et IBM 8514/A propose en mode d'affichage graphique, une adresse de table de définitions de caractères, étant indiqué par l'interruption 43h. Vous pouvez donc changer l'adresse de l'Interruption 43h afin de changer l'apparence des caractères que vous souhaitez afficher.
- Après l'écriture d'un caractère, le curseur doit être déplacé explicitement avec l'interruption 10h, fonction 02h à la position suivante.
- Pour écrire un caractère et un attribut à la position actuelle du curseur, utilisez l'interruption 10h, fonction 09h.
- Si cette fonction est utilisée pour écrire des caractères en mode graphique et que le bit 7 de BL est fixé à 1, le caractère sera un OU exclusif (XOR) avec le contenu d'affichage actuel. Cette fonctionnalité peut être utilisée pour écrire des caractères puis les "effacer".
Exemple
L'exemple suivant, en Turbo Pascal, permet d'afficher une chaine de caractères «Gladir.com!» en haut de l'écran :
- Program Write0AhSamples;
-
- Procedure LocateXY(X,Y:Byte);Assembler;ASM
- MOV DH,Y
- MOV DL,X
- MOV AH,02h
- MOV BH,0
- INT 10h
- END;
-
- Procedure WriteChar(C:Char);Assembler;ASM
- MOV AH,0Ah
- MOV AL,Byte(C)
- MOV BL,7
- MOV BH,0
- MOV CX,1
- INT 10h
- END;
-
-
- Procedure WriteString(Const S:String);
- Var
- I:Byte;
- Begin
- For I:=1 to Length(S)do Begin
- LocateXY(I-1,0);
- WriteChar(S[I]);
- End;
- End;
-
- BEGIN
- WriteString('Gladir.com!');
- END.
on obtiendra le résultat suivant sur la première ligne d'affichage :
Gladir.com!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 1584.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 46 à 47.
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 403.
Dernière mise à jour : Jeudi, le 3 mars 2016