Title: Teclado
1Teclado
2Estructura del teclado
3Scan Code
- Después de la exploración, el controlador de
teclado genera un ScanCode - Se genera un ScanCode al pulsar una tecla y al
liberarla - El receptor distingue y actúa en consecuencia
- La pulsación make
- La liberación break
48048/8042
- En el teclado reside el microcontrolador 8048
-
- Obtiene el ScanCode y lo envÃa de forma
serial-sÃncrono al sistema - Start bit
- 8 bits de ScanCode
- paridad impar
- Stop bit
58048/8042
- En el sistema reside el 8042
- Recibe el ScanCode y genera una interrupción
- IRQ1 del controlador de interrupciones
- INT 9 del vector de interrupciones (BIOS)
6Tipos de teclas
- Caracteres imprimibles
- Controles de tecla Shift, Alt,Ctrl...
- Otros F1,...,ImprPant, Pausa, ...
- http//es.wikipedia.org/wiki/Scan_Code
7BIOS
- Al recibir la tecla el 8042 genera la
interrupción - La rutina de INT 9 lee el carácter de puerto 60h
- Testea el ScanCode.
- Activa de nuevo la interrupción
8Testeo de la tecla
- Si es imprimible lo almacena en el buffer de
teclado - Si es de control de tecla no lo almacena
- modifica el byte de estado apropiadamente
417h..418h - Si es otra tecla almacena el ScanCode y su código
ascii en el buffer - 00 Si no existe un código ascii adecuado
- Si es un Break desecha el ScanCode
- Un SC break es igual al SC make previo 80h
- Si transcurren gt05s se copia de nuevo el último
carácter en el buffer
9Funciones de Bios
- Para leer de teclado BIOS ofrece INT 16h
- AH0 Lee un carácter del buffer, con bloqueo y lo
elimina del buffer - AH ScanCode
- ALCódigo Ascii o 00h
- AH1 Lee un carácter del buffer, sin bloqueo. No
lo elimina del buffer - AHScanCode (o Código Tecla si AL0) si Zf0
- ALCódigo Ascii o 00 si Zf0
10Int 16h
- AH2 devuelve el byte de estado
AL byte de estado d7 Activado Insert d6 Activado
Capslock d5 Activado Numlock d4 Activado Scroll
lock d3 Pulsado Alt d2 Pulsado Ctrl d1 Pulsado
Shift Left d0 Pulsado Shift Right
11Int 16
- Funciones adicionales.
- AH10h lee un carácter incluyendo sección
extendida (con bloqueo) - Puede aparecer E0h en AH, referido al teclado
ampliado - AH11h lee un carácter incluyendo sección
extendida (sin bloqueo) - Puede aparecer E0h en AH, referido al teclado
ampliado - AH12h lee estado de la sección extendida
- En AH byte de estado teclado ampliado
12Int 16h
- AH12 devuelve el byte de estado teclado ampliado
AH Segundo byte de estado d7 Pulsado PetSys d6
Pulsado Capslock d5 Pulsado Numlock d4 Pulsado
Scroll lock d3 Pulsado Right Alt d2 Pulsado Right
Ctrl d1 Pulsado Left Alt d0 Pulsado Left Ctrl
AL byte de estado d7 Activado Insert d6 Activado
Capslock d5 Activado Numlock d4 Activado Scroll
lock d3 Pulsado Alt d2 Pulsado Ctrl d1 Pulsado
Shift Left d0 Pulsado Shift Right
13Tipos de teclado
- PC/XT. 83 Teclas
- PC/AT. 84 Teclas. Sys o PetSys
- MF-II 102 Teclas.
- Keypad
- Teclas de función arriba F11,F12
- AltGr (equivalente a CtrlAlt)
- leds
- EnvÃa una identificación cuando se le pide.
14Teclas especiales
- ImprPant dispara la Int 5h
- Pausa detiene el sistema
- Ctrl y Inter dispara la Int 1Bh (IRET)
- PetSis dispara la Int 15h con AH85h
- En principio está vacÃa (IRET)
15Buffer de teclado
- 41Eh..43Dh
- 2 bytes por tecla pulsada
- Un puntero de cabeza 41Ah y 41Bh
- lugar donde almacenar la siguiente tecla leÃda
- Un puntero de cola 41Ch y 41Dh
- lugar de donde lee la última tecla
- El buffer es circular
16- PC Interno. Michael Tischer. Marcombo
- The 80x86 IBM PC and Compatible
- Muhammad Ali Mazidi... Prentice-Hall