Interruption 21h |
Fonction 06h |
Entrée/Sortie directe de caractère |
CP/M, DOS 1.0+, OS/2, Windows NT |
Description
Cette fonction permet l'entrée ou la sortie directe de caractère vers l'entrée ou la sortie standard.
Ainsi, les caractères envoyer ou reçu ne seront pas interpréter ou télétypé, mais transmis directement.
Les entrées/sorties peuvent être redirigées. Si les entrées/sorties ont été redirigées, il n'y a aucun moyen de détecter le EOF ou si le disque est plein.
Entrée
Registre |
Valeur ou description |
AH |
06h |
DL |
Ce registre permet d'indiquer l'action : |
0 à 254 |
Ces valeurs permettent de sortir le caractère correspondant à la valeur spécifié. Par exemple, 65 sortira A, 66 sortira B,... |
255 |
Cette valeur permet d'indiquer qu'il faut lire un caractère |
Sortie
Drapeau |
Valeur |
Description |
Pour l'entrée de caractères (DL=255) : |
FZ |
0 |
Le caractère figure dans le registre AL. |
1 |
Aucun caractère n'est prêt |
Pour la sortie de caractères (DL<=254) : |
Aucune |
Remarques
- Cette fonction manque d'un raisonnement pratique, étant donné que le code 255 est réservé pour la fonction de lecture, il est totalement impossible d'envoyer un code ASCII 255.
- Aucune action particulière n'est prise lors de la saisie d'un Ctrl+C lorsque ce service est utilisé.
- Pour lire les codes ASCII étendus (tels que les touches de fonction spéciales F1 à F10) sur le IBM PC
et compatibles, vous devez appeler cette fonction deux fois. Le premier appel renvoie la valeur 00h pour signaler la présence d'un code étendu.
- Vous devriez utiliser les fonctions 01h, 07h et 08h de l'interruption si vous souhaitez une entrée de caractères avec diverses combinaisons d'écho et/ou
de détection Ctrl+C, et les fonctions 02h et 09h, pouvant être utilisées pour écrire des caractères sur la sortie standard.
- A partir de la version 2.0 du système d'exploitation DOS, vous pouvez également lire le clavier en émettant une lecture
(Interruption 21h, Fonction 3Fh) en utilisant l'identificateur de descripteur Handle prédéfinie pour l'entrée standard (0000h), si l'entrée n'a pas été
redirigée, ou qu'un identificateur de descripteur Handle obtenue en ouvrant le périphérique logique «CON».
- A partir de la version 2.0 du système d'exploitation DOS, vous pouvez également envoyer des caractères à l'écran en émettant une écriture
(interruption 21h, fonction 40h) à l'aide de l'identificateur de descripteur Handle prédéfinie pour la sortie standard (0001h), si la sortie n'a pas été
redirigée, ou un identificateur de descripteur Handle obtenue en ouvrant la logique dispositif «CON».
- Quand un caractère étendu est envoyé, un code 0 est d'abord reçu dans le registre AL, ensuite il faut appeler immédiatement cette même fonction pour en connaître le code
étendu (Scan Code).
Scan Code |
Description |
01h |
Touche Esc |
02h |
Touche Alt+Space |
04h |
Touche Ctrl+Insert |
05h |
Touche Shift+Insert |
06h |
Touche Ctrl+Delete |
07h |
Touche Shift+Delete |
08h |
Touche Alt+BackSpace |
0Fh |
Touche Shift+Tab |
10h |
Touche Alt+Q |
11h |
Touche Alt+W |
12h |
Touche Alt+E |
13h |
Touche Alt+R |
14h |
Touche Alt+T |
15h |
Touche Alt+Y |
16h |
Touche Alt+U |
17h |
Touche Alt+I |
18h |
Touche Alt+O |
19h |
Touche Alt+P |
1Eh |
Touche Alt+A |
1Fh |
Touche Alt+S |
20h |
Touche Alt+D |
21h |
Touche Alt+F |
22h |
Touche Alt+G |
23h |
Touche Alt+H |
24h |
Touche Alt+J |
25h |
Touche Alt+K |
26h |
Touche Alt+L |
2Ch |
Touche Alt+Z |
2Dh |
Touche Alt+X |
2Eh |
Touche Alt+C |
2Fh |
Touche Alt+V |
30h |
Touche Alt+B |
31h |
Touche Alt+N |
32h |
Touche Alt+M |
3Bh |
Touche F1 |
3Ch |
Touche F2 |
3Dh |
Touche F3 |
3Eh |
Touche F4 |
3Fh |
Touche F5 |
40h |
Touche F6 |
41h |
Touche F7 |
42h |
Touche F8 |
43h |
Touche F9 |
44h |
Touche F10 |
47h |
Touche Home |
48h |
Touche ↑ |
49h |
Touche Page Up |
4Bh |
Touche de flèche vers la gauche ← |
4Dh |
Touche de flèche vers la droite → |
4Fh |
Touche End |
50h |
Touche de flèche vers le bas ↓ |
51h |
Touche Page Down |
52h |
Touche Insert |
53h |
Touche Delete |
54h |
Touche Shift+F1 |
55h |
Touche Shift+F2 |
56h |
Touche Shift+F3 |
57h |
Touche Shift+F4 |
58h |
Touche Shift+F5 |
59h |
Touche Shift+F6 |
5Ah |
Touche Shift+F7 |
5Bh |
Touche Shift+F8 |
5Ch |
Touche Shift+F9 |
5Dh |
Touche Shift+F10 |
5Eh |
Touche Ctrl+F1 |
5Fh |
Touche Ctrl+F2 |
60h |
Touche Ctrl+F3 |
61h |
Touche Ctrl+F4 |
62h |
Touche Ctrl+F5 |
63h |
Touche Ctrl+F6 |
64h |
Touche Ctrl+F7 |
65h |
Touche Ctrl+F8 |
66h |
Touche Ctrl+F9 |
67h |
Touche Ctrl+F10 |
68h |
Touche Alt+F1 |
69h |
Touche Alt+F2 |
6Ah |
Touche Alt+F3 |
6Bh |
Touche Alt+F4 |
6Ch |
Touche Alt+F5 |
6Dh |
Touche Alt+F6 |
6Eh |
Touche Alt+F7 |
6Fh |
Touche Alt+F8 |
70h |
Touche Alt+F9 |
71h |
Touche Alt+F10 |
72h |
Touche Ctrl+PrintScreen |
73h |
Touche Ctrl+← |
74h |
Touche Ctrl+→ |
75h |
Touche Ctrl+End |
76h |
Touche Ctrl+PageDown |
77h |
Touche Ctrl+Home |
78h |
Touche Alt+1 |
79h |
Touche Alt+2 |
7Ah |
Touche Alt+3 |
7Bh |
Touche Alt+4 |
7Ch |
Touche Alt+5 |
7Dh |
Touche Alt+6 |
7Eh |
Touche Alt+7 |
7Fh |
Touche Alt+8 |
80h |
Touche Alt+9 |
81h |
Touche Alt+0 |
82h |
Touche Alt+- |
83h |
Touche Alt+= |
84h |
Touche Ctrl+PageUp |
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 1496.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 126 à 127.
Quick Reference: Programmer avec les fonctions de MS-DOS, Edition Microsoft PRESS, Ray Duncan, 1991, ISBN: 2-266-04061-8, page 15 à 17.
Dernière mise à jour : Jeudi, le 3 mars 2016