Section courante

A propos

Section administrative du site

Interruption 16h

Fonction 02h

État clavier ?
PC, XT, AT, PS/2

Description

Cette fonction permet de demander l'état des drapeaux du clavier.

Entrée

Registre Description
AH 02h

Sortie

Registre Description
AL Ce registre permet d'indiquer l'état du clavier (soit la même valeur qu'à l'adresse mémoire 0040h:0017h) :
Bit Description
0 Ce bit vaut 1 si la touche Shift de droite est enfoncé
1 Ce bit vaut 1 si la touche Shift de gauche est enfoncé
2 Ce bit vaut 1 si la touche Ctrl de droite est enfoncé
3 Ce bit vaut 1 si la touche Alt de droite est enfoncé
4 Ce bit vaut 1 si l'état du ScrollLock est activé
5 Ce bit vaut 1 si l'état du NumLock est activé
6 Ce bit vaut 1 si l'état du CapsLock est activé
7 Ce bit vaut 1 si le mode d'insertion est activé

Remarque

Exemple

L'exemple suivant, écrit pour «Turbo C» de Borland, permet de vérifié si une de deux touches «Alt» du clavier a été enfoncé :

  1. unsigned char AltPress(void) {
  2.  asm {
  3.   MOV AH,0x02
  4.   INT 0x16
  5.   AND AL,8
  6.   JZ  _End
  7.   MOV AL,1
  8.  }
  9. _End:
  10.  return _AL;
  11. }
  12.  
  13. void main(void) {
  14.  if(AltPress) {
  15.   printf("La touche Alt a été enfoncé");
  16.  } else {
  17.   printf("La touche n'est pas enfoncé");
  18.  }
  19. }

Références

Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 94 à 95.

Dernière mise à jour : Jeudi, le 3 mars 2016