Int 16h
# Int 16h

INT 16h es la forma abreviada de la interrupción 0x16. Esta interrupción se encarga de controlar el teclado del PC.

## Características

Esta interrupción se encarga de obtener funcionalidades básicas del teclado, es decir, se encarga de recoger las pulsaciones del teclado, obtener el estado del buffer del teclado, etc. La codificación estándar del teclado que ofrece la INT 16h es de un teclado Estadounidense. Para adaptar la codificación de la INT 16h a otro tipo de teclado (por ejemplo, un teclado español) hay que atender al scan-code de la tecla pulsada y realizar las operaciones convenientes para interpretar la tecla que se desea.

En los teclados de 101 letras o más, existen unas teclas que la INT 16h las interpreta como teclas expandidas, que tienen un scan-code distinto al de las teclas normales (por ejemplo, la tecla pausa).

## Lista de servicios

| AH = 00h | Teclado | Leer pulsación de tecla |
| - | - | - |
| AH = 01h | Teclado | Obtener el estado del buffer del teclado |
| AH = 02h | Teclado | Obtener el estado del teclado |
| AH = 03h | Teclado | Establecer factor de repetición |
| AH = 05h | Teclado | Simular la pulsación de una tecla |
| AH = 0Ah | Teclado | Obtener el ID del teclado |
| AH = 10h | Teclado expandido | Leer carácter del teclado expandido |
| AH = 11h | Teclado expandido | Obtener estado del buffer del teclado expandido |
| AH = 12h | Teclado expandido | Obtener estado del teclado expandido |

## INT 16h AH=00h - Leer pulsación de tecla

Parámetros:

| AH = 00h | Leer pulsación de tecla |
| - | - |

Retorna:

| AH = ?? | Scan-code de la tecla pulsada |
| - | - |
| AL = ?? | Caracter ASCII de la tecla pulsada |

Ejemplo:

