Los datos de un teclado vienen principalmente en forma de scancodes, producidos por la pulsación de teclas o utilizados en el protocolo con el ordenador. ( El firmware del teclado utiliza internamente diferentes códigos, y también existen varios conjuntos de scancodes. Aquí en esta sección sólo hablamos de los códigos por defecto - los del conjunto 2 de scancodes traducidos. Los modos menos comunes se tratan más adelante) Cada pulsación y liberación de tecla produce entre 0 y 6 scancodes.
1.1 Soltar tecla
A continuación sólo mencionaré el código de escaneo para pulsar una tecla (`make'). El código de escaneo para soltar una tecla (`break') se obtiene a partir de éste, ajustando el bit de orden superior (sumando 0x80 = 128). Así, la pulsación de Esc produce el scancode 01, la liberación de Esc el scancode 81 (hex). Para secuencias las cosas son similares: Teclado-/ da e0 35 al pulsar, e0 b5 al soltar. La mayoría de los teclados repetirán el código de marca (código de tecla abajo) cuando se repite la tecla. Algunos también simularán eventos de Mayúsculas abajo y Mayúsculas arriba durante la repetición.
Las teclas PrtSc/SysRq y Pause/Break son especiales. La primera produce el código de escaneo e0 2a e0 37 cuando no se presiona simultáneamente ninguna tecla modificadora, e0 37 junto con Shift o Ctrl, pero 54 junto con (izquierda o derecha) Alt. (Y uno obtiene las secuencias esperadas al soltar. Pero vea abajo.) La última produce la secuencia de código de escaneo e1 1d 45 e1 9d c5 cuando se presiona (sin modificador) y nada en absoluto al soltar. Sin embargo, junto con (izquierda o derecha) Ctrl, se obtiene e0 46 e0 c6, y de nuevo nada al soltar. No se repite.
Véase más abajo un informe sobre teclas con un comportamiento diferente.
Hay muchos informes de ordenadores portátiles con eventos de tecla arriba mal pronunciados. Por lo tanto, los eventos inesperados de pulsación de teclas probablemente deberían considerarse como no inusuales, y ser ignorados.
---