Interruption 21h |
Fonction 01h |
Entrée de caractères avec une sortie |
---|---|---|
CP/M, DOS 1.0.+, OS/2, Windows NT |
Description
Cette fonction permet d'entrée de caractères sur l'entrée standard avec un écho vers la sortie standard. Si aucun caractère n'est prêt, attend jusqu'à ce qu'un 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 le EOF.
Entrée
Registre | Valeur ou description |
---|---|
AH | 01h |
Sortie
Registre | Valeur ou description |
---|---|
AL | Ce registre contient le caractère lu |
Remarques
- Si l'entrée standard n'est pas redirigée et que le caractère lu est un Ctrl+C, un Interruption 23h est exécuté. Si l'entrée standard est redirigée, un Ctrl+C est détecté sur la console et BREAK est à ON, puis un Interruption 23h est exécuté.
- 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.
- Si vous souhaitez entrée de caractères avec diverses combinaisons d'écho et/ou de détection de la combinaison de touche Ctrl+C, vous devriez consulter les fonctions 06h, 07h et 08h de l'interruption 21h.
- A partir de la version 2.0 du DOS, vous pouvez également lire le clavier en émettant une lecture (voir 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 une identificateur de descripteur (Handle) 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). Voici les «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
Exemple
L'exemple suivant permet de retourner dans le registre AL un caractère lu :
Voir également
Interruption 21h, Fonction 0Bh: Vérifier l'état d'entrée
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 1494.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 119 à 120.
Quick Reference: Programmer avec les fonctions de MS-DOS, Edition Microsoft PRESS, Ray Duncan, 1991, ISBN: 2-266-04061-8, page 11 à 12.