Interruption 21h |
Fonction 07h |
Entrée de caractère directe sans sortie |
CP/M, DOS 1.0.+, OS/2, Windows NT |
Description
Cette fonction permet d'entrée de caractères directe sur l'entrée standard sans absolument aucune écho vers la sortie standard.
Si aucun caractère n'est prêt, la fonction attend jusqu'à ce qu'un caractère soit disponible. L'entrée peut être redirigée. Si l'entrée a été redirigée, il n'y a aucun moyen de détecter un EOF.
Entrée
Registre |
Valeur ou description |
AH |
07h |
Sortie
Registre |
Valeur ou description |
AL |
Ce registre contient le caractère lu |
Remarques
- Aucune action particulière n'est prise lors de la saisie d'un Ctrl+C lorsque cette fonction est utilisée. Si la vérification des touches
Ctrl+C est requise, utilisez plutôt la fonction 08h, Interruption 21h.
- Pour lire les codes ASCII étendus (tels que les touches de fonction spéciales F1 à F10) sur les micro-ordinateurs
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, 06h et 08h de l'interruption 21h, si vous souhaitez
entrée des caractères avec différentes combinaisons d'écho et/ou de détection Ctrl+C.
- 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 un
identificateur de descripteur Handle est obtenue en ouvrant le périphérique logique «CON».
- Quand un caractère de touche est étendu est entrée, un code 0 est d'abord envoyé, 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+Left |
74h |
Touche Ctrl+Right |
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 |
Exemple
L'exemple suivant permet de lire un caractère de l'entrée standard sans le répercuter sur l'affichage et entrepose le caractère dans la variable variable :
- MOV AH,07h
- INT 21h
- MOV variable,AL
- ; ...
- variable DB 0
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 1497.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 128 à 129.
Quick Reference: Programmer avec les fonctions de MS-DOS, Edition Microsoft PRESS, Ray Duncan, 1991, ISBN: 2-266-04061-8, page 17 à 18.
Dernière mise à jour : Jeudi, le 3 mars 2016