next up previous contents
suivant: Conversion des scan codes monter: Pilote du clavier précédent: Pilote du clavier   Table des matières

Fonctionnement matériel

Nous allons commencer par décrire les interactions et évènements matériels lors de la saisie d'une touche au clavier. A chaque fois que l'on appuie sur une touche du clavier, ce dernier génère un code identifiant la touche, appelé scan code. Il y a deux types de scan code:

Certaines touches sont composées de plusieurs scan codes. On parle de touches étendues, et sont prefixées du scan code 0xE0 ou 0xE1. C'est le cas des touches du pavé numérique, ou encore de PageUp et PageDown.

Pour communiquer tous ces scan codes, le clavier déclenche une interruption 0x1 (IRQ1). Le driver est alors prévenu qu'un scan code va être transmis, via les I/O Ports du clavier (ports 0x60 et 0x64).

Le port 0x64, appelé registre d'état, convient d'être lu en premier. C'est en effet lui qui dit si le scan code est disponible dans le tampon de sortie (port 0x60). Il suffit pour cela de tester la valeur du bit 1 du registre d'état. Si il est activé, le pilote peut récupérer la valeur du scan code sur le port 0x60.


next up previous contents
suivant: Conversion des scan codes monter: Pilote du clavier précédent: Pilote du clavier   Table des matières
nicolas 2006-07-30