You are on page 1of 26

HECTOR EDUARDO UGARTE ROJAS

HEUR

EL TECLADO
RESEA HISTORICA Los teclados de ordenador tienen su ascendiente directo en los teclados de mquinas de escribir. En concreto, la disposicin QWERTY se remonta al ao 1868 en que fue patentada por Christopher Sholes. En 1873 vendi la patente a Remington, que fue la primera mquina de escribir con ste tipo de teclado (las primeras no disponan de teclado como tal, sino de ruedas y otros artificios para introducir los caracteres). Existen varias teoras sobre el porqu de la disposicin QWERTY, incluyendo las que sostienen que fue un intento deliberado de hacer difcil teclear los caracteres ms frecuentes, de modo que los mecangrafos no las atascaran (cosa muy frecuente en las antiguas mquinas de escribir mecnicas, si se escriba demasiado rpido). Algunos sostienen que este diseo es poco funcional, razn por la que se han ideado otras disposiciones. El teclado Dvorak es uno de estos diseos fundamentado en consideraciones ergonmicas. 1. INTRODUCCION. La familia de procesadores 80x86, presente en el IBM PC, utiliza la arquitectura Von Neumann (figura 1). El denominado bus del sistema conecta las diferentes partes de una maquina Von Neumann, y en la familia 80x86, se diferencian 3 clases de buses: a) Bus de datos.- Existen de 8, 16, 32 o 64 bits dependiendo del modelo (64 bits para los Pentium de ltima generacin). El nmero de bits se usa, en general, para determinar el tamao del procesador. b) Bus de direcciones.- Para poder conectar la CPU con la memoria y con los dispositivos de entrada/salida. c) Bus de control.- Para enviar seales que determinan como se comunica la CPU con el resto del sistema (por ejemplo, las lneas de lectura (read) y escritura (write) especifican que es lo que se esta haciendo en la memoria)

Figura 1. Arquitectura bsica de una maquina Von Neumann.

HECTOR EDUARDO UGARTE ROJAS

HEUR

Por tanto los dispositivos de E/S son una parte fundamental del computador y tienen velocidades muy diferentes, lentas (como el teclado o ratn), de velocidad media (como una impresora) y rpidas (como los discos duros). Para homogenizar las velocidades de los dispositivos de E/S con la del CPU se crearon circuitos de interfaz. Tenemos dos tipos de conexiones con los dispositivos: a) Conexin mapeada. b) Conexin mediante puertos especiales de E/S. La PC IBM usa la conexin mediante puertos especiales de E/S. En este computador existen 2 espacios de direcciones que son para la memoria y para los dispositivos de E/S. El bus de direcciones para la E/S es siempre de 16 bits. Entonces el microprocesador puede direccionar hasta 65536 diferentes localizaciones especiales, suficiente para varios dispositivos. Hay 2 espacios de direcciones pero un solo bus de direcciones, por eso las lneas de control son las que deciden a que espacio estamos accediendo en cada momento (figura 2). Entonces, la memoria y los dispositivos de E/S, comparten el bus de datos y los primeros 16 bits del bus de direcciones.

Figura 2. Interfaces de entrada/salida. Existen 3 formas de realizar la E/S en un dispositivo: 1. Por encuesta.- El CPU sondea peridicamente el dispositivo para ver su estado. Esta forma de anlisis es sencilla pero ineficiente ya que se pierde tiempo, y el mismo esta sujeto a la velocidad de procesador.

HECTOR EDUARDO UGARTE ROJAS

HEUR

2. Por interrupciones.- El dispositivo es quien establece el momento en que se realiza la transferencia de datos. En la familia 80x86 existen 3 tipos de interrupciones. Las traps (invocadas por el usuario mediante software), las excepciones (traps generados automticamente por alguna condicin excepcional ejemplo, divisin por cero), y interrupciones hardware (se basa en un evento hardware externo al CPU, no tiene nada que ver con las instrucciones que se realicen en ese momento). 3. Por acceso directo a la memoria.- El dispositivo opera directamente sobre la memoria, siempre y cuando la CPU le otorgue el permiso para hacerlo. En la E/S por interrupciones, todos los dispositivos se conectan al controlador programable de interrupciones o PIC, quien establece prioridad entre las interrupciones y se conecta con la CPU. Denominado genricamente como Controlador 8259 acepta interrupciones de hasta 8 dispositivos, si cualquier dispositivo pide servicio, el 8259, se conectara con la CPU y le pasara un vector de interrupcin programable. Actualmente la mayora de computadores tienen 2 PICs (figura 3).

Figura 3. Esquema de conexin de los PICs. El ordenador, manda y recibe la informacin del perifrico que necesita para comunicarse con l, (una serie de seales y smbolos), siendo nico para cada marca y modelo de perifrico. El principal problema en la conexin de los perifricos con la CPU es el de compatibilizar las caractersticas entre perifricos y CPU, para solucionarlo se usan los Controladores de Perifricos. Los objetivos de un controlador son: a) Seleccin o direccionamiento del perifrico.- La CPU sita en el bus de direcciones la direccin del puerto con el que quiere comunicarse. b) Almacenamiento temporal.- El controlador dispone de uno o varios puertos de datos para almacenar temporalmente los datos a transferir. c) Sincronizacin.- La velocidad a la que opera la CPU es muy superior a la de un perifrico.

HECTOR EDUARDO UGARTE ROJAS

HEUR

d) Control del perifrico.- La CPU debe ser capaz de interrogar al controlador para conocer su estado o enviar rdenes. e) Conversin de datos.- Consiste en la adaptacin de las caractersticas elctricas y lgicas de las seales empleadas por el dispositivo de E/S y el bus. f) Deteccin de errores.- Las transferencias de datos son operaciones sensibles a sufrir errores. En el controlador se realizan funciones como inclusin/deteccin de paridad. g) Gestin de transmisin de bloques de informacin.- Existen perifricos que intercambian informacin mediante un conjunto de palabras y no con palabras aisladas. En los primeros ordenadores la CPU controlaba las operaciones elementales de E/S. Con el tiempo y para descargar a la CPU de estas funciones, las operaciones de E/S las realizan los controladores, siendo stos cada vez ms complejos (algunos incluyen memoria y un procesador para uso exclusivo de operaciones de E/S). 2. EL TECLADO. Un teclado de computadora es un perifrico, fsico o virtual (por ejemplo teclados en pantalla o teclados lser), utilizado para la introduccin de rdenes y datos en una computadora (es la principal va de entrada de comandos). Tiene su origen en los teletipos y las mquinas de escribir elctricas, que se utilizaron como los teclados de los primeros ordenadores y dispositivos de almacenamiento (grabadoras de cinta de papel y tarjetas perforadas). Esta unido al PC por un conector de 5 contactos, por el que circulan la seal del reloj, la de datos y las seales de referencia. La comunicacin con la PC es de tipo serie. El teclado multifuncin II refleja y estandariza el teclado moderno con cuatro bloques diferenciados: a) Teclado principal.- Contiene los caracteres alfabticos, numricos y especiales, como en una maquina de escribir convencional. b) Teclado numrico.- es habitual que las teclas correspondientes a los dgitos decimales, signos de operaciones bsicos y punto decimal estn repetidas para facilitar al usuario la introduccin de datos numricos. c) Teclado de gestin de imagen o de control.- Sobre la pantalla se visualiza una marca o cursor indicador de posicin. El cursor indica la posicin donde aparecer el siguiente carcter que tecleemos. Las teclas de posicin de imagen permiten modificar la posicin del cursor en la pantalla. d) Teclas de funcin.- Normalmente distribuidas en una hilera en la parte superior del teclado. Son teclas cuyas funciones estn definidas por el usuario o predefinidas para una aplicacin, por ejemplo F8.

HECTOR EDUARDO UGARTE ROJAS

HEUR

Bsicamente, IBM ha soportado 3 tipos de teclados fsicos: 1. El primero de stos apareci en 1981, tena 83 teclas, fue denominado XT, usaban es Scan Code set 1, unidireccionales y no eran muy ergonmicos, eran unidireccioales ahora est obsoleto (Figura 4). 2. En 1984 apareci el teclado PC/AT con 84 teclas (una ms al lado de SHIFT IZQ), ya es bidireccional, usa el Scan Code set 2 y al igual que el anterior cuenta con un conector 5-pin DIN (Figura 4). 3. En 1987 IBM desarroll el MF-II (Multifuncin II o teclado extendido) a partir del AT. Sus caractersticas son que usa el mismo interfaz que el AT, aade muchas teclas ms, se ponen leds y soporta el Scan Code set 3, aunque usa por defecto el 2. De este tipo hay dos versiones, la americana con 101 teclas y la europea con 102 (Figura 4). Los teclados PS/2 son bsicamente iguales a los MF-II. Las nicas diferencias son el conector (mini-DIN de 6 pin) ms pequeo que el AT y ms comandos, pero la comunicacin es la misma, usan el protocolo AT.

Teclado XT

Teclado AT

Teclado MF-II

Figura 4. Tipos de teclados.

HECTOR EDUARDO UGARTE ROJAS

HEUR

Existen distintos tipos de pulsadores de teclas (Mecnicos, de laminas, de bovedilla, capacitivo, de efecto hall, etc.) Aqu definimos algunos: a) Tipo resorte. Cuenta con un contacto metlico, con un resorte que hace retornar luego de la presin. Generalmente son muy resistentes y duraderos, ya que los contactos metlicos se limpian automticamente. Ms caros, ms "duros" al tacto. b) Tipo membrana. Consisten de una membrana en cuya superficie se encuentra una superficie conductora. En la placa, existen lminas de contacto aisladas. Cuando entran en contacto con la superficie conductora de la tecla presionada, se cierra el circuito. Son ms baratos, ms suaves y ms frgiles. 3. LOS CONECTORES DEL TECLADO Los primeros teclados, XT de 83 teclas; AT de 84, y algunos extendidos de 101/102 teclas, utilizan un conector DIN de 5 patillas con el macho del lado del teclado y la hembra del lado de la placa-base. Salvo en algunos modelos de IBM el cable est slidamente unido al teclado. La introduccin del PS/2 de IBM inaugur la moda de utilizar conectores mini DIN para teclados y ratones. La tendencia actual es utilizar conectores USB para ambos dispositivos de entrada. Ms recientemente se est extendiendo la moda de dispositivos inalmbricos ("Wireless"). Esto no significa que tales modelos no utilicen el conector de teclado; lo que en realidad desaparece es el cable entre el dispositivo que se conecta al conector del PC y el propio teclado. La moda comenz con los de enlace infrarrojo, pero actualmente casi todos son de radio-frecuencia (figura 5)

Adaptador USB/mini-DIN

Figura 5. Tipos de conectores y seales.

HECTOR EDUARDO UGARTE ROJAS

HEUR

4. EL CHIP DEL TECLADO Muchos ordenadores llevan en su interior el Chip 8048, 8049 o similares fabricados por Intel. Consta de unos 2Kb de memoria ROM y 128 bytes de RAM (Las 8 primeras posiciones son empleadas como registros) Este procesador se encarga de detectar la pulsacin de las teclas, generando unos bytes que las identifican y envindolos a continuacin por el cable a travs de un protocolo de comunicacin en serie que en el AT consta de 11 bits por cada dato (1 de inicio, 8 de datos, 1 de paridad y otro de stop) y 9 en los XT (entre otras razones, porque no se controla la paridad). Los teclados de AT y de XT generan cdigos diferentes para las mismas teclas. Adems, al soltar una tecla, los teclados de XT generan el mismo cdigo que al pulsarla pero con el bit 7 activo; sin embargo, en AT se generan dos cdigos que se envan consecutivamente (0F0h y despus el mismo cdigo que al pulsarla). El teclado se encarga de repetir los cdigos de una tecla cuando sta lleva cierto tiempo pulsada, en el conocido mecanismo autorepeat de la mayora de los teclados. Muchos teclados tienen debajo un interruptor que permite seleccionar su modo de funcionamiento (XT o AT). El teclado tiene algunos registros, dos de ellos son accesibles desde el exterior: a) Registro de Estado: Contiene informacin acerca del interfase. b) Registro de Datos: Si en la memoria interna del teclado hay pulsaciones registradas, en este registro se guarda una copia del SCAN CODE correspondiente a la primera que se puls.

Chip 8048. Fabricado por NEC. 5. CODIGO SCAN Los cdigos que enva el teclado, y que llegan a la CPU a travs del controlador de teclado, no son los correspondientes al cdigo ASCII que devuelven las interrupciones del ROM BIOS. Son unos cdigos particulares del teclado llamado SCAN CODE. El teclado no tiene informacin sobre qu tecla se encuentra en cada interseccin de la matriz (si es una a o un ;). La interfaz identifica la posicin de la tecla en el teclado, y se la indica a la CPU por medio del SCAN CODE. Los SCAN CODE estn asociados a posiciones del teclado. Es la propia CPU la que convierte un SCAN CODE del teclado en un cdigo ASCII correspondiente a un carcter, y lo hace por medio de las rutinas de interrupcin que son invocadas cuando el controlador de teclado genera una peticin de interrupcin. Estas rutinas leen el dato del controlador de

HECTOR EDUARDO UGARTE ROJAS

HEUR

teclado (el SCAN CODE) y lo convierten a cdigo ASCII segn una tabla interna (en caso de que sea un carcter del cdigo ASCII; si se trata de teclas mudas, como la tecla Ctrl o Alt, se genera tambin un cdigo, aunque no sea ASCII). Esto permite que una tecla situada en una posicin determinada se traduzca como un cdigo ASCII u otro, segn el PC est configurado para un idioma u otro (es el caso de la tecla del teclado espaol, que en teclados para otros idiomas tiene un carcter distinto: el cdigo scan que enva el teclado es el mismo en todos los teclados, son las rutinas de interrupcin las que deciden que sea una u otro carcter). Hay cdigos scan de dos tipos: los cdigos make y los cdigos break. Los primeros se generan cuando se pulsa una tecla, y los segundos cuando se suelta. Esto permite que el PC pueda saber cundo se pulsan dos teclas a la vez. Por ejemplo, si se recibe el cdigo make de la tecla maysculas y luego el cdigo make de la a, el PC deduce que se debe generar una A. Ms adelante se recibirn el cdigo break de la a y el cdigo break de la tecla maysculas, al ser soltada cada una de ellas. Como observacin, el cdigo scan de la a y el de la A es el mismo, puesto que para ambas se pulsa la misma tecla. Lo que cambia es que, en el caso de la A, adems, se pulsa la tecla maysculas. En general, el cdigo make de una tecla es nico, independientemente de cuntos caracteres tenga dibujados encima. Lo que distingue entre unos y otros son los cdigos adicionales de teclas de modificacin que se reciben (maysculas, Ctrl, Alt...). Lo mismo ocurre para los cdigos break. Para facilitar la conversin entre cdigos make y cdigos break, stos se establecen de forma que para obtener el cdigo break correspondiente a un cdigo make nicamente hay que sumar al cdigo make 128 (80h), por lo que los cdigos make tienen el bit ms significativo a 0 y los cdigos break a 1. 6. FUNCIONAMIENTO. El funcionamiento del teclado es bsicamente el siguiente: Cada tecla se encuentra en el cruce entre un hilo vertical y un hilo horizontal en la denominada matriz de hilos. Los hilos verticales y los horizontales no se tocan en estado de reposo, estn a distinta altura. Cuando se pulsa una tecla, se establece un contacto entre el hilo vertical y el horizontal que forman el cruce en el que se encuentra la tecla, producindose un cambio de corriente (figura 6). El chip del teclado (microcontrolador 8048, 8049 o 8051) est constantemente muestreando la matriz para detectar cundo se ha producido un contacto entre un hilo vertical y uno horizontal, seal de que se ha pulsado una tecla. A partir del hilo vertical y el horizontal involucrados en el contacto, el chip de teclado reconoce la tecla que se ha pulsado. Cuando el chip del teclado reconoce que se ha pulsado una tecla, con el programa interno que tiene grabado en su respectiva ROM, calcula el cdigo correspondiente a la tecla pulsada (cada ubicacin tiene un cdigo especifico). El cdigo generado se llama KSCAN (Keyboard Scan Code).

HECTOR EDUARDO UGARTE ROJAS

HEUR

Figura 6. Comunicacin con el ordenador. Luego de localizar el cdigo, se dispone a enviarlo al sistema. Primero pasa por el controlador de teclado que se encuentra en la PC. Se encarga de recibir los datos en formato serie, convertirlos a formato paralelo, y solicitar una interrupcin a la CPU para que los lea a travs del bus del sistema. En los PC XT el controlador de teclado era un simple interfaz serie, capacitado nicamente para recibir datos del teclado. A partir del PC AT se incluye un controlador ms sofisticado, como el 8042, o el 8741 8742, ms modernos. De esta manera, el controlador de teclado puede llevar a cabo algunas funciones ms que en el PC XT. Por ejemplo, a partir del AT es posible, adems de recibir los cdigos KSCAN del teclado, enviarle informacin (por ejemplo: comandos). El Controlador del teclado, convierte propiamente el cdigo KSCAN a SCAN CODE (cdigo de 8 bits), con el programa que tiene en su ROM. La interrupcin solicitada, se realiza a travs del controlador de interrupciones 8259 o PIC, el que recibe las peticiones de interrupcin de todos los perifricos del sistema y se las pasa de una en una a la CPU. En la arquitectura PC, el interface de teclado est conectado a la lnea llamada IRQ1 del PIC. Como se puede (ver la Figura 6), la lgica de peticin de interrupciones conecta con el PIC, (ver la Figura 8), la lgica de peticin de interrupciones viene dada en parte por el Output Buffer o buffer de salida.

Figura 7. Estructura y funcionamiento del teclado.

HECTOR EDUARDO UGARTE ROJAS

HEUR

El CPU a travs del denominado Vector 9, se comunica con la BIOS. Cada vez que se pulsa una tecla se genera un cdigo de interrupcin y la rutina de servicio almacena el cdigo de la tecla pulsada en un buffer de memoria cclico situada en el rea de datos del BIOS. El cdigo de la tecla se obtiene leyendo dos veces el puerto 60h del controlador del teclado, obtenindose el cdigo SCAN, y el cdigo ASCCI siempre y cuando no sean teclas especiales (F1,F2,, F12, Shift, Cursor, etc.) en cuyo caso se devolvera 0 (figura 7). 7. EL CONTROLADOR DEL TECLADO En los AT hay un circuito integrado encargado de interpretar los datos procedentes del teclado y, despus de traducirles adecuadamente para compatibilizar con los XT si as ha sido programado, enviarles a la CPU: el 8042 de Intel. Tambin sirve de intermediario a las transmisiones de datos de la CPU al teclado, que en el AT es un perifrico bidireccional que puede recibir comandos para configurar los LEDs, entre otras tareas. El 8042 se comporta como una interfase de perifrico programable: permite implementar interfaces a medida para distintos perifricos. Dispone de 2Kb de memoria ROM, 128Kb de memoria RAM, 2 puertos de entrada programable de E/S de 8 bits, contador interno de 8 bits, reloj de 12 Mhz y otras seales de control y especiales.

Chip 8042. Fabricado por Megatrends Inc. Cuando el 8042 recibe un byte entero del teclado, inhibe la comunicacin hasta que la CPU lo acepta. Si el dato se recibe con error de paridad, automticamente el 8042 lo solicita de nuevo al teclado enviando un comando de reenvo al mismo y un byte 0FFh a la CPU indicando esta circunstancia, activando tambin el bit 7 del registro de estado del 8042. Adems, chequea que no pasen ms de 2 milisegundos durante la recepcin: si se excede este lmite se enva tambin un 0FFh a la CPU y se activa el bit 6 en el registro de estado. Cuando la CPU enva algo al teclado, el 8042 inserta el bit de paridad automticamente. Si el teclado no empieza la comunicacin en menos de 15 milisegundos o tarda en recibir el dato ms de 2 milisegundos, se enva un 0FEh a la CPU y se activa el bit 5 en el registro de estado. Adems, el teclado ha de responder a todas las transmisiones con un byte de reconocimiento, si en esta operacin hay un error de paridad se activarn los bits 5 y 7 en el registro de estado; si tarda ms de 25 milisegundos en responder tambin se enva el byte 0FEh a la CPU y se activan los bits 5 y 6 del registro de estado. (figura 8).

HECTOR EDUARDO UGARTE ROJAS

HEUR

Figura 8. Esquema de los registros del controlador del teclado. La comunicacin teclado-CPU puede ser inhibida por hardware por medio de la llave que incorpora la unidad central, aunque la comunicacin CPU-teclado sigue habilitada. El 8042 se apoya en tres registros bsicos: uno de estado, uno de salida y otro de entrada. El registro de estado, del que ya se ha explicado parte de su funcionalidad, se encuentra en el puerto de E/S 64h y puede ser ledo en cualquier momento. El registro de salida est ubicado en el puerto 60h y es de slo lectura; el 8042 lo usa para enviar los cdigos de las teclas a la CPU y los bytes de datos de los comandos que los soliciten. Debera ser ledo slo cuando el bit 0 del registro de estado est activo. El registro de entrada del 8042 es de slo escritura y puede ser accedido por los puertos 60h y 64h segn que lo que se quieran enviar sean datos o comandos al 8042, respectivamente; los datos sern reenviados por el 8042 hacia el teclado a menos que el propio 8042 est esperando un dato de la CPU a consecuencia de un comando previo enviado por sta. Los datos deben ser escritos en este registro slo cuando el bit 1 del registro de estado est inactivo. En el cuadro 2 se listan los comandos que admite el 8042 (enviados al puerto 64h). Debe darse cuenta el lector de la particularidad de que los registros de salida y entrada son accedidos por el mismo puerto (60h), siendo la lectura y escritura las que seleccionan el acceso a uno u otro respectivamente.

Figura 9. Conexin del controlador del teclado con el puerto AT.

HECTOR EDUARDO UGARTE ROJAS

HEUR

Bit 0 1 2 3 4 5 6 7

Significado Registro de salida lleno. Un 1 indica que el 8042 ha colocado un dato en el registro de salida y la CPU an no lo ha ledo. Este bit se pone a 0 cuando la CPU lee el puerto 60h. Registro de entrada lleno. Un 1 significa que ha sido colocado un dato en el registro de entrada y el 8042 an no lo ha ledo. Bandern del sistema: asignado con un comando del 8042. 0 al arrancar. Comando/dato. Se pone a 1 o a 0 al enviar algo al puerto 60h o al 64h respectivamente: de esta manera, el 8042 sabe si lo que se le enva son rdenes o datos (rdenes = 1). Ambos puertos conectan con el registro de entrada. Bit de inhibicin. Este bit se actualiza siempre que se coloca un dato en el registro de salida, un 0 indica teclado inhibido. Transmisin fuera de tiempo. Indica que la transmisin de un dato hacia el teclado no ha sido respondida en los mrgenes de tiempo adecuados. Recepcin fuera de tiempo. Indica si el teclado ha enviado un dato y sigue enviando ms despus del tiempo esperado. Error de paridad. Indica la paridad del dato recibido: 0 la correcta. Tabla 1. Registros de Estado.

Comando 20h 60h AAh ABh

ACh ADh AEh C0h D0h D1h E0h Fxh

Significado Leer el byte de comando del 8042 (ver cuadro 3). Esta orden enva al registro de salida (en el puerto 60h) dicho byte para que sea ledo. Escribir el byte de comando del 8042. El siguiente byte que se enve al registro de entrada (puerto 60h) ser el byte de comando del 8042. Autotest. El 8042 realiza un diagnstico interno y coloca un 55h en el registro de salida si todo va bien. Test del interface. El controlador chequea las lneas de reloj y datos devolviendo: 0 si no hay errores; 1: el reloj est demasiado en bajo, 2: est demasiado en alto; 3: la lnea de datos est demasiado en bajo y 4: la lnea de datos est demasiado en alto. Volcado de diagnstico. Enva al registro de salida, sucesivamente, 16 bytes de la RAM del 8042, el estado de los registros de entrada y salida y la palabra de estado del controlador. Inhibir teclado. Esto activa el bit 4 del byte de comando del 8042. Habilitar teclado. Esto baja el bit 4 del byte de comando del 8042. Leer el puerto de entrada (vase cuadro 4). Esto obliga al 8042 a leer el puerto de entrada y colocar lo que lee en el registro de salida; slo ha de emplearse este comando cuando el registro de salida est vaco. Leer el puerto de salida. El 8042 lee el puerto de salida y lo coloca en el registro de salida; slo debe emplearse este comando si el registro es vaco. Escribir el puerto de salida (ver cuadro 5). El siguiente byte que se enve al registro de entrada (puerto 60h) se colocar en el puerto de salida. Leer entradas de testeo. El 8042 coloca en el registro de salida los bits de reloj (bit 0) y datos (bit 1) para permitir la comunicacin directa con el teclado. Los bits 0 al 3 de este comando se relacionan con los bits 0 al 3 del puerto de salida del 8042; un 0 indica bit pulsado durante 6 microsegundos (aprx.) y un 1 que el bit no resulta modificado; cuidado con el reset!. Tabla 2. Comandos del 8042.

HECTOR EDUARDO UGARTE ROJAS

HEUR

8. EL CONTROLADOR DE INTERRUPCIONES. El PIC 8259 puede aceptar hasta ocho seales de interrupcin independientes (vectores), numeradas del 0 al 7 (16 en la PCs actuales 2 PICs). Las entradas de seales de interrupcin al 8259 estn alambradas en el bus de control as que cualquier dispositivo conectado al bus puede acceder a este mecanismo de interrupcin. En el bus de control, las seales se llaman IRQ0 hasta IRQ15 (figura 10). -CS: Habilita la comunicacin con la CPU. -WR: Permite al 8259 aceptar comandos de la CPU. -RD: Permite al 8259 dejar la informacin en el bus de datos. D7...D0: Bus de datos bidireccional, por el que se transmite la informacin de control/estado y el nmero de vector de interrupcin. CAS0..CAS2: Lneas de cascada, actan como salida en el 8259 maestro y como entrada en los 8259 esclavos, en un sistema con varios 8259 interconectados, constituyendo un bus local. -SP/-EN: Pin de doble funcin: en el buffered mode del 8259 actuar como -EN, para habilitar los buffers del bus; en el modo normal indicar si el 8259 es maestro o esclavo (-SP). INT: Conectado a la patilla INT de la CPU para producir la interrupcin cuando llegue el momento. IR0...IR7: Lneas asncronas de peticin de interrupcin. Una peticin de interrupcin se ejecuta manteniendo IR en alto hasta que se recibe el reconocimiento (modo por flancos) o simplemente poniendo en alto la lnea IR (modo por niveles). -INTA: Lnea de reconocimiento de interrupcin, por medio de esta lnea se fuerza al 8259 a depositar en el bus la informacin del vector de interrupcin. INTA es independiente de -CS. A0: En conjuncin con -CS, -WR y -RD es empleada para enviar las palabras de comando al 8259 y para solicitar informacin al mismo. Suele ir conectada a la lnea A0 de la CPU.

Chip Intel 8259

HECTOR EDUARDO UGARTE ROJAS

HEUR

Figura 10. Circuito del controlador de interrupciones. El funcionamiento del 8259 vara ligeramente en funcin del sistema en que est instalado, segn sea este un 8086 o un 8080/8085. Veremos primero el caso del 8086: 1. Una o ms lneas IR son activadas por los perifricos, lo que pone a 1 el correspondiente bit del IRR. 2. El 8259 evala la prioridad de estas interrupciones y solicita la interrupcin a la CPU (lnea INT) si es necesario. 3. Cuando la CPU reconoce la interrupcin, enva la seal -INTA. 4. Nada ms recibida la seal -INTA de la CPU, el 8259 activa el bit correspondiente a la interrupcin de mayor prioridad (la que va a ser procesada) en el ISR y lo borra en el IRR. En este ciclo, el 8259 an no controla el bus de datos. 5. Cuando la CPU enva un segundo ciclo -INTA, el 8259 deposita en el bus de datos un valor de 8 bits que indica el nmero de vector de interrupcin del 8086, para que la CPU lo pueda leer. 6. En el modo AEOI del 8259, el bit de la interrupcin en el ISR es borrado nada ms acabar el segundo pulso -INTA; en caso contrario, ese bit permanece activo hasta que la CPU enve el comando EOI al final de la rutina que trata la interrupcin (caso ms normal). En el caso de sistemas basados en el 8080/8085, el funcionamiento es idntico hasta el punto (3), pero a continuacin sucede lo siguiente: 4) Nada ms recibida la seal -INTA de la CPU, el 8259 activa el bit correspondiente a la interrupcin de mayor prioridad (la que va a ser procesada) en el ISR y lo borra en el IRR. En este ciclo, el 8259 deposita en el bus de datos el valor 11001101b, correspondiente al cdigo de operacin de la instruccin CALL del 8080/85.

HECTOR EDUARDO UGARTE ROJAS

HEUR

7. Esta instruccin CALL provoca que la CPU enve dos pulsos -INTA. 8. El 8259 utiliza estos dos pulsos -INTA para depositar en el bus de datos, sucesivamente, la parte baja y alta de la direccin de memoria del ordenador de la rutina de servicio de la interrupcin (16 bits). 9. Esto completa la instruccin CALL de 3 bytes. En el modo AEOI del 8259, el bit de la interrupcin en el ISR es borrado nada ms acabar el tercer pulso INTA; en caso contrario, ese bit permanece activo hasta que la CPU enve el comando EOI al final de la rutina que trata la interrupcin. Si en el paso (4), con ambos tipos de microprocesador, no est presente la peticin de interrupcin (por ejemplo, porque ha sido excesivamente corta) el 8259 enva una interrupcin de nivel 7 (si hubiera un 8259 conectado en IR7, las lneas CAS permaneceran inactivas y la direccin de la rutina de servicio de interrupcin sera suministrada por el 8259 maestro). Entrada al 8259 IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 Cdigo 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 70H 71H 72H 73H 74H 75H 76H 77H Dispositivo Timer del sistema Teclado 8259 esclavo COM2/COM4 COM1/COM3 Reservada/ Tarjeta de sonido Disco flexible LPT1 Reloj de tiempo real Reservada Reservada Reservada Ratn PS/2 Coprocesador matemtico Disco duro Reservada

Tabla 3. Peticiones de ininterrupcin.

HECTOR EDUARDO UGARTE ROJAS

HEUR

9. COMUNICACIN DE LA CPU CON EL TECLADO. El teclado del AT es bidireccional y admite comandos por parte del ordenador. Estudiaremos ahora cules son esos comandos. En primer lugar, tras el arranque del ordenador y al recibir la alimentacin el teclado, ste realiza un autotest denominado BAT (Basic Assurance Test) donde chequea su ROM, RAM y enciende y apaga todos los LEDs. Esta operacin emplea entre 600 y 900 milisegundos; al acabar el BAT y cuando sea posible establecer la comunicacin con el ordenador (lneas de reloj y datos en alto) enva un byte 0AAh si todo ha ido bien y un 0FCh si ha habido fallos; inicializando despus los parmetros de auto repeticin de las teclas. El teclado tiene un buffer interno con capacidad para 17 bytes (unas 8 teclas) con objeto de almacenar las ltimas teclas pulsadas cuando no puede enviarlas al 8042. Cuando este buffer se llena, su ltima posicin (17) se rellena con 0 y se ignoran las siguientes pulsaciones. Los comandos al teclado pueden ser enviados en cualquier momento al puerto 60h: a menos que el 8042 est esperando por un byte de datos en el registro de entrada, como consecuencia de un comando previo, redireccionar todo lo que se le enve por el puerto 60h hacia el teclado. El teclado responder en menos de 20 milisegundos, devolviendo una seal de reconocimiento por medio de un byte 0FAh. Los principales comandos (diferenciados de los datos por tener el bit 7 activo) son: Reset (0FFh): Al recibirlo enva una seal de reconocimiento y se asegura de que la CPU se de por enterada poniendo en alto las lneas de reloj y datos un mnimo de 500 microsegundos; el teclado permanece inhibido hasta que la CPU acepta la seal de reconocimiento o enva otro comando que sobrescribe y anula ste. Llegados a este punto, el teclado ejecuta de nuevo el BAT, estableciendo valores por defecto para la auto repeticin y limpiando su registro de salida. Reenvo (0FEh): El sistema puede enviar este comando al teclado cuando detecta un fallo en la recepcin desde el teclado. Este comando slo puede ser enviado despus de una transmisin del teclado y antes de habilitar la comunicacin para la siguiente recepcin. El teclado responde enviando de nuevo el dato anterior (si ya era un 0FEh, el ltimo dato que envi que no fuera 0FEh). Establecer valores por defecto (0F6h): Devuelve la auto repeticin a los valores habituales, limpia su registro de salida y contina rastreando las teclas si no estaba inhibido; es una especie de reset en caliente. Establecer valores por defecto y parar (0F5h): Similar al comando anterior, pero dejando de rastrear las teclas y permaneciendo inhibido hasta recibir ms instrucciones. Habilitar (0F4): Reanuda el funcionamiento interrumpido por el comando anterior o algn otro.

HECTOR EDUARDO UGARTE ROJAS

HEUR

Establecer ratio y retardo de auto repeticin (0F3h): Tras este comando debe enviarse otro inmediatamente a continuacin, que se interpretar como dato, estableciendo los valores de auto repeticin. De este segundo byte, el bit 7 estar siempre a cero; el valor de los bits 5 y 6, sumndole una unidad, indica el tiempo que ha de pasar desde que se pulsa una tecla hasta que comience a auto repetirse, en unidades de 0,25 segundos (20%). Los bits 2, 1 y 0 forman un nmero A; los bits 4 y 3 forman otro nmero B; por medio de la siguiente frmula se obtiene la tasa o ratio de auto repeticin en teclas por segundo:

1 (8 + A) ( 2B ) 0.00417
Una vez recibido este comando, el teclado enva la acostumbrada seal de reconocimiento, deja de rastrear las teclas y espera por el parmetro de auto repeticin, respondiendo al mismo con otra seal de reconocimiento y volviendo a rastrear las teclas. Si en lugar de recibir el parmetro recibe otro comando (bit 7 activo) dejar inalterados los valores de auto repeticin y procesar dicho comando, aunque cuidado!: permanecer inhibido hasta que se le habilite con el comando 0F4h. Por defecto, el sistema establece una tasa de 10 caracteres por segundo y 0,5 segundos de espera (parmetro 4Ch). ABh Test del interface. El controlador chequea las lneas de reloj y datos devolviendo: 0 si no hay errores; 1: el reloj est demasiado en bajo, 2: est demasiado en alto; 3: la lnea de datos est demasiado en bajo y 4: la lnea de datos est demasiado en alto. ACh Volcado de diagnstico. Enva al registro de salida, sucesivamente, 16 bytes de la RAM del 8042, el estado de los registros de entrada y salida y la palabra de estado del controlador. ADh Inhibir teclado. Esto activa el bit 4 del byte de comando del 8042 AEh Habilitar teclado. Esto baja el bit 4 del byte de comando del 8042 COh Leer el puerto de entrada (vase cuadro 4). Esto obliga al 8042 a leer el puerto de entrada y colocar lo que lee en el registro de salida; slo ha de emplearse este comando cuando el registro de salida est vaco. DOh Leer el puerto de salida. El 8042 lee el puerto de salida y lo coloca en el registro de salida; slo debe emplearse este comando si dicho registro est vaco DIh Escribir el puerto de salida (ver cuadro 5). El siguiente byte que se enve al registro de entrada (puerto 60h) se colocar en el puerto de salida. EOh Leer entradas de testeo. El 8042 coloca en el registro de salida los bits de reloj (bit 0 y datos (bit 1) para permitir la comunicacin directa con el teclado Fxh Los bits 0 al 3 de este comando (la parte baja de este mismo comando) se relacionan con los bits 0 al 3 del puerto de salida del 8042; un 0 indica bit pulsado durante 6 microsegundos (aprx.) y un 1 que el bit no resulta modificado; cuidado con el reset Tabla 4: Comandos del 8042

HECTOR EDUARDO UGARTE ROJAS

HEUR

SIGNIFICADO BIT 0 Activar la interrupcin del registro de salida lleno: un 1 indica que el 8042 genere una IRQ1 (INT 9) tras colocar un dato en el registro de salida (esto es lo normal). 1 Reservado (escribir 0) 2 Bandern del sistema. Este bit define el bit 2 del registro de estado 3 Ignorar inhibicin: con 1 se ignorar la funcin de inhibir el teclado 4 Deshabilitar el teclado: un 1 baja la lnea de reloj inhibiendo la comunicacin del 8042 con el teclado. 5 Modo IBM PC. Con 1 no se traducen los cdigos del teclado ni se controla la paridad. 6 IBM PC compatibilidad. Un 1 selecciona la conversin de los cdigos del teclado para emular los del PC y XT, traduciendo los cdigos de rastreo y generando un nico byte al soltar las teclas. Puesto a 1 por la BIOS antes de cargar el DOS (compatibilidad). 7 Reservado (escribir 0) Tabla 5: Bit de comandos del 8042 BIT SIGNIFICADO 0-3 Indefinidos 4 RAM del sistema. A 1 si instalada la extensin de 256 Kb BIT 0 1 SIGNIFICADO Reset del sistema (como CtrlAlt-Del). Lnea A20: 0 fuerza la lnea A20 de la CPU a 0, con lo que se prohbe acceder a la memoria por encima de 1 Mb lo cual emula el direccionamiento de los PC/XT; un 1 deja que A20 la controle la CPU aunque hay PC's en que esto no basta. Indefinidos. Registro de salida lleno. Registro de entrada vaco. Lnea de datos (comunicacin directa con el teclado). Tabla 7: Byte a enviar al puerto de salida.

5 6 7

A 0 si presente el puente (o jumper) del fabricante. Tipo de pantalla. 0 si la pantalla principal es de color y 1 si es monocroma 0: el teclado ha sido bloqueado con la llave externa de la unidad central. Tabla 6: Byte recibido por el puerto de entrada.

2-3 4 5 7

No operacin (0F7h a 0FDh y 0EFh al 0F2h): Son cdigos reservados; el teclado al recibirlos enva la seal de reconocimiento de siempre y no realiza ninguna accin. Eco (0EEh): Si el teclado recibe este comando, lo reenva a continuacin. Es una ayuda al diagnstico.

HECTOR EDUARDO UGARTE ROJAS

HEUR

Encender/apagar los LED (0EDh). Tras este comando se ha de enviar otro byte de datos, cuyos bits 0, 1 y 2 estn ligados al estado de los LED de Scroll Lock, Num Lock y Caps Lock, respectivamente; los dems estn reservados. Al recibir el comando enva la correspondiente seal de reconocimiento y deja de rastrear las teclas, esperando por el dato. Si en vez de un dato recibe otro comando, dejar intactos los LED, procesar dicho comando y continuar rastreando las teclas (sin quedar inhibido en esta ocasin).

En general, este ser el procedimiento a seguir para cualquier comando que requiera parmetros: hay que esperar el momento adecuado para enviarlos; el LOOPNZ evita que la CPU se quede colgada si por cualquier motivo fallara el teclado o el 8042. Como se ve, se establecen los 3 LED a la vez, aunque si slo se desea cambiar uno habr que consultar el estado actual de los otros en las variables de la BIOS. No obstante, este cambio es slo puntual ya que al pulsar las teclas que actan sobre los LED, la BIOS o el KEYB los reajustarn anulando el cambio, siendo necesario reprogramar parcialmente la interrupcin del teclado si se desea evitarlo. 10. COMUNICACIN DEL TECLADO CON LA CPU. Ms bien cabra llamarla la comunicacin teclado con el 8042: aunque muchos de estos cdigos acaben siendo interpretados por la CPU, algunos se los queda el 8042 que siempre es el primero en enterarse. A continuacin se listan los valores que el teclado puede enviar a la CPU o al 8042 en un momento dado. Reenvo (0FEh): El teclado puede enviar este comando a la CPU para solicitar el reenvo cuando detecta un fallo en la recepcin (normalmente de paridad) o una entrada incorrecta. Reconocimiento ACK (0FAh): El teclado devuelve este valor cada vez que la CPU le enva algo, para indicar que lo ha recibido (excepto en el caso de los comandos Eco y Reenvo de la CPU). Desbordamiento (0): Cuando la CPU intenta leer el teclado directamente sin haber cdigos en el buffer del teclado (el buffer interno del propio teclado, se entiende) acceder a la posicin 17 del mismo, encontrndose este valor. Fallo en el diagnstico (0FDh): El teclado peridicamente se auto chequea y enva este cdigo si detecta algn fallo. Si el fallo sucede durante el BAT, dejar de rastrear las teclas en espera de un comando de la CPU; en cualquier otro momento continuar rastreando las teclas. Cdigo de tecla soltada break code (0F0h): El teclado enva este cdigo a la CPU para indicar que el siguiente cdigo que enviar a continuacin corresponder a una tecla soltada. Bajo MS-DOS este cdigo lo intercepta el 8042 y se lo oculta a la CPU, con objeto de emular el cdigo de tecla soltada de los PC/XT.

HECTOR EDUARDO UGARTE ROJAS

HEUR

BAT completado (0AAh): Despus de realizar el BAT el teclado enva un 0AAh para indicar que ha salido bien, o un 0FCh (u otro valor) si ha habido fallos. Respuesta al eco (0EEh): El teclado enva este valor a la CPU si sta se lo ha enviado a l.

11. BUFFER DEL TECLADO. Cuando se pulsa una tecla normal, la rutina que gestiona INT 9 deposita en un buffer dos bytes con su cdigo ASCII y el cdigo de rastreo, para cuando el programa principal decida explorar el teclado -lo har siempre consultando el buffer-. Si el cdigo ASCII depositado es cero 0E0h, se trata de una tecla especial (ALT-x, cursor, etc.) y el segundo byte indica cul (son los denominados cdigos secundarios). El cdigo ASCII 0E0h slo es generado en los teclados expandidos por las teclas expandidas, aunque las funciones estndar de la BIOS y del DOS que informan del teclado lo convierten en cero para compatibilizar con teclados no expandidos. As mismo, el cdigo ASCII 0F0h est reservado para indicar las combinaciones de ALT-tecla que no fueron consideradas inicialmente en el software de soporte de los teclados no expandidos, pero s actualmente (de esta manera, las rutinas de la BIOS saben si deben informar de estas teclas o no segn se est empleando una funcin avanzada u obsoleta, para compatibilizar). En todo caso, las secuencias introducidas por medio de ALT-teclado numrico llevan asociado un cdigo de rastreo 0, por lo que el usuario puede generar los caracteres ASCII 0E0h y 0F0h sin que se confundan con combinaciones especiales; adems, segn IBM, si el cdigo ASCII 0 va acompaado de un cdigo de rastreo 3 los programas deberan interpretarlo como un autntico cdigo ASCII 0 (esta secuencia se obtiene con Ctrl-2) lo que permite recuperar ese cdigo perdido en indicar combinaciones especiales. Es importante sealar que aunque el buffer (organizado como cola circular) normalmente est situado entre 0040h:001Eh y 0040h:003Eh, ello no siempre es as; realmente el offset del inicio y el fin del buffer respecto al segmento 0040h lo determinan las variables (tamao palabra) situadas en 0040h:0080h y 0040h:0082h en todos los ordenadores posteriores a 1981. Por ello, la inmensa mayora de las pequeas utilidades de las revistas y los ejemplos de los libros son, por desgracia, incorrectos: la manera correcta de colocar un valor en el buffer -para simular, por ejemplo, la pulsacin de una tecla- o extraerlo del mismo es comprobando adecuadamente los desbordamientos de los punteros teniendo en cuenta las variables mencionadas. El puntero al inicio del buffer es una variable tamao palabra almacenada en la posicin 0040h: 001Ah y el fin otra ubicada en 0040h: 001Ch. El siguiente ejemplo introduce un carcter de cdigo ASCII AL y cdigo de rastreo AH (es cmodo y vlido hacer AH=0) en el buffer del teclado. El valor 0 para el cdigo de rastreo es usado para introducir tambin algunos caracteres especiales, como las vocales acentuadas, etc., aunque por lo general no es demasiado importante su valor (de hecho, los programas suelen comprobar preferentemente el cdigo ASCII; de lo contrario, en un teclado espaol y otro francs, la tecla Z tendra distinto cdigo!). No estara de ms en este ejemplo comprobar si las variables 40h:80h y 40h:82h son distintas de cero por si el ordenador es demasiado antiguo, medida de seguridad que de hecho toma el KEYB del DR-DOS (en estas

HECTOR EDUARDO UGARTE ROJAS

HEUR

mquinas adems no es conveniente ampliar el tamao del buffer cambindolo de sitio, por ejemplo; lo normal es que est entre 40h:1Eh y 40h:3Eh). Los cdigos secundarios: son el segundo byte (el ms significativo) de la palabra depositada en el buffer del teclado por la BIOS o el KEYB. MOV MOV CLI MOV MOV ADD CMP JB MOV CMP JE BX,40h DS,BX meter carcter AX en el buffer del teclado evitar conflictos con interrupciones puntero a la cola del buffer apuntar CX al siguiente dato ms all del fin del buffer inicio de la cola circular no desb puntero al inicio del buffer ZF = 1 --> buffer lleno introducir carcter ASCII (AL) en el buffer actualizar puntero al final del buffer ZF=0 (SP siempre <> 0) --> buffer no lleno fin de la rutina: STI Tabla 8. Cdigos de rastreo. El buffer es circular, tiene un tamao de 32 bytes, puede ser considerado como una cola circular, si el buffer se llena se escuchara un sonido. El BIOS accesa al buffer a travs de la interrupcin 16H la cual remueve los caracteres del buffer.

BX,DS:[1Ch] CX,BX CX,2 CX,DS:[82h] no desb CX,DS:[80h] CX,DS:[1Ah] Fin de la rutina MOV DS:[BX],AX MOV DS:[1Ch],CX CMP SP,0

HECTOR EDUARDO UGARTE ROJAS

HEUR

ANEXOS 1. TABLA DE CODIGOS SCAN


Ubicacin de Tecla Teclados MF-II DO NOT USE DO NOT USE ~ ` ! 1 @ 2 # 3 $ 4 % 5 ^ 6 & 7 * 8 ( 9 ) 0 _ + = Backspace Tab Q W E R T Y U I O P { [ } ] | \ Caps Lock A Cdigo Scan 1 make 00 E0_00 29 E0_29 02 E0_02 03 E0_03 04 E0_04 05 E0_05 06 E0_06 07 E0_07 08 E0_08 09 E0_09 0A E0_0A 0B E0_0B 0C E0_0C 0D E0_0D 0E E0_0E 0F E0_0F 10 E0_10 11 E0_11 12 E0_12 13 E0_13 14 E0_14 15 E0_15 16 E0_16 17 E0_17 18 E0_18 19 E0_19 1A E0_1A 1B E0_1B 2B E0_2B 3A E0_3A 1E E0_1E Cdigo Scan 1 break 80 E0_80 A9 E0_A9 82 E0_82 83 E0_83 84 E0_84 85 E0_85 86 E0_86 87 E0_87 88 E0_88 89 E0_89 8A E0_8A 8B E0_8B 8C E0_8C 8D E0_8D 8E E0_8E 8F E0_8F 90 E0_90 91 E0_91 92 E0_92 93 E0_93 94 E0_94 95 E0_95 96 E0_96 97 E0_97 98 E0_98 99 E0_99 9A E0_9A 9B E0_9B AB E0_AB BA E0_BA 9E E0_9E Cdigo Scan 2 make 00 E0_00 0E E0_0E 16 E0_16 1E E0_1E 26 E0_26 25 E0_25 2E E0_2E 36 E0_36 3D E0_3D 3E E0_3E 46 E0_46 45 E0_45 4E E0_4E 55 E0_55 66 E0_66 0D E0_0D 15 E0_15 1D E0_1D 24 E0_24 2D E0_2D 2C E0_2C 35 E0_35 3C E0_3C 43 E0_43 44 E0_44 4D E0_4D 54 E0_54 5B E0_5B 5D E0_5D 58 E0_58 1C E0_1C Codigo Scan 2 brake F0 00 E0_F0 00 F0 0E E0_F0 0E F0 16 E0_F0 16 F0 1E E0_F0 1E F0 26 E0_F0 26 F0 25 E0_F0 25 F0 2E E0_F0 2E F0 36 E0_F0 36 F0 3D E0_F0 3D F0 3E E0_F0 3E F0 46 E0_F0 46 F0 45 E0_F0 45 F0 4E E0_F0 4E F0 55 E0_F0 55 F0 66 E0_F0 66 F0 0D E0_F0 0D F0 15 E0_F0 15 F0 1D E0_F0 1D F0 24 E0_F0 24 F0 2D E0_F0 2D F0 2C E0_F0 2C F0 35 E0_F0 35 F0 3C E0_F0 3C F0 43 E0_F0 43 F0 44 E0_F0 44 F0 4D E0_F0 4D F0 54 E0_F0 54 F0 5B E0_F0 5B F0 5D E0_F0 5D F0 58 E0_F0 58 F0 1C E0_F0 1C

1 2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29* 30 31

HECTOR EDUARDO UGARTE ROJAS

HEUR

Ubicacin de Tecla 32 33 34 35 36 37 38 39 40 41 42** 43 44 45** 46 47 48 49 50 51 52 53 54 55 56*** 57 58 60 61 62 64 75 76 79 80 81 83 84 85 86

Teclados MF-II S D F G H J K L : ;

Enter L SHIFT

Z X C V B N M < , > . ? /

R SHIFT L CTRL L ALT Space Bar R ALT R CTRL Insert Delete L Arrow Home End Up Arrow Dn Arrow Page Up Page Down

Cdigo Scan 1 make 1F E0_1F 20 E0_20 21 E0_21 22 E0_22 23 E0_23 24 E0_24 25 E0_25 26 E0_26 27 E0_27 28 E0_28 2B E0_2B 1C 2A E0_2A 56 E0_56 2C E0_2C 2D E0_2D 2E E0_2E 2F E0_2F 30 E0_30 31 E0_31 32 E0_32 33 E0_33 34 E0_34 35 E0_35 73 E0_73 36 E0_36 1D 38 E0_38 39 E0_39 E0 38 E0 1D Note 1 Note 1 Note 1 Note 1 Note 1 Note 1 Note 1 Note 1 Note 1

Cdigo Scan 1 break 9F E0_9F A0 E0_A0 A1 E0_A1 A2 E0_A2 A3 E0_A3 A4 E0_A4 A5 E0_A5 A6 E0_A6 A7 E0_A7 A8 E0_A8 AB E0_AB 9C AA E0_AA D6 E0_D6 AC E0_AC AD E0_AD AE E0_AE AF E0_AF B0 E0_B0 B1 E0_B1 B2 E0_B2 B3 E0_B3 B4 E0_B4 B5 E0_B5 F3 E0_F3 B6 E0_B6 9D B8 E0_B8 B9 E0_B9 E0 B8 E0 9D Note 1 Note 1 Note 1 Note 1 Note 1 Note 1 Note 1 Note 1 Note 1

Cdigo Scan 2 make 1B E0_1B 23 E0_23 2B E0_2B 34 E0_34 33 E0_33 3B E0_3B 42 E0_42 4B E0_4B 4C E0_4C 52 E0_52 5D E0_5D 5A 12 E0_12 61 E0_61 1A E0_1A 22 E0_22 21 E0_21 2A E0_2A 32 E0_32 31 E0_31 3A E0_3A 41 E0_41 49 E0_49 4A E0_4A 51 E0_51 59 E0_59 14 11 E0_11 29 E0_29 E0 11 E0 14 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2

Codigo Scan 2 brake F0 1B E0_F0 1B F0 23 E0_F0 23 F0 2B E0_F0 2B F0 34 E0_F0 34 F0 33 E0_F0 33 F0 3B E0_F0 3B F0 42 E0_F0 42 F0 4B E0_F0 4B F0 4C E0_F0 4C F0 52 E0_F0 52 F0 5D E0_F0 5D F0 5A F0 12 E0_F0 12 F0 61 E0_F0 61 F0 1A E0_F0 1A F0 22 E0_F0 22 F0 21 E0_F0 21 F0 2A E0_F0 2A F0 32 E0_F0 32 F0 31 E0_F0 31 F0 3A E0_F0 3A F0 41 E0_F0 41 F0 49 E0_F0 49 F0 4A E0_F0 4A F0 51 E0_F0 51 F0 59 E0_F0 59 F0 14 F0 11 E0_F0 11 F0 29 E0_F0 29 E0 F0 11 E0 F0 14 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2 Note 2

HECTOR EDUARDO UGARTE ROJAS

HEUR

Ubicacin de Tecla 89 90 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107*** 108 110 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

Teclados MF-II R Arrow Num Lock Numeric 7 Numeric 4 Numeric 1 Numeric / Numeric 8 Numeric 5 Numeric 2 Numeric 0 Numeric * Numeric 9 Numeric 6 Numeric 3 Numeric . Numeric Numeric + DO NOT USE Numeric Enter Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Print Screen Scroll Lock Pause

Left Win Right Win Application ACPI Power ACPI Sleep DO NOT USE DO NOT USE DO NOT USE DO NOT USE

Cdigo Scan 1 make Note 1 45 E0_45 47 4B 4F Note 3 48 4C 50 52 37 E0_37 49 4D 51 53 4A 4E 7E E0_7E E0 1C 01 E0_01 3B E0_3B 3C E0_3C 3D E0_3D 3E E0_3E 3F E0_3F 40 E0_40 41 E0_41 42 E0_42 43 E0_43 44 E0_44 57 58 Note 4 46 E0_46 Note 5 59 E0_59 5B E0_5B 5C E0_5C 5D E0_5D 5E E0_5E 5F E0_5F 60 E0_60 61 E0_61 62

Cdigo Scan 1 break Note 1 C5 E0_C5 C7 CB CF Note 3 C8 CC D0 D2 B7 E0_B7 C9 CD D1 D3 CA CE FE E0_FE E0 9C 81 E0_81 BB E0_BB BC E0_BC BD E0_BD BE E0_BE BF E0_BF C0 E0_C0 C1 E0_C1 C2 E0_C2 C3 E0_C3 C4 E0_C4 D7 D8 Note 4 C6 E0_C6 Note 5 D9 E0_D9 DB E0_DB DC E0_DC DD E0_DD DE E0_DE DF E0_DF E0 E0_E0 E1 E0_E1 E2

Cdigo Scan 2 make Note 2 77 E0_77 6C 6B 69 Note 3 75 73 72 70 7C E0_7C 7D 74 7A 71 7B 79 6D E0_6D E0 5A 76 E0_76 05 E0_05 06 E0_06 04 E0_04 0C E0_0C 03 E0_03 0B E0_0B 83 E0_83 0A E0_0A 01 E0_01 09 E0_09 78 07 Note 4 7E E0_7E Note 5 0F E0_0F 1F E0_1F 27 E0_27 2F E0_2F 37 E0_37 3F E0_3F 47 E0_47 4F E0_4F 56

Codigo Scan 2 brake Note 2 F0 77 E0_F0 77 F0 6C F0 6B F0 69 Note 3 F0 75 F0 73 F0 72 F0 70 F0 7C E0_F0 7C F0 7D F0 74 F0 7A F0 71 F0 7B F0 79 F0 6D E0_F0 6D E0 F0 5A F0 76 E0_F0 76 F0 05 E0_F0 05 F0 06 E0_F0 06 F0 05 E0_F0 05 F0 0C E0_F0 0C F0 03 E0_F0 03 F0 0B E0_F0 0B F0 83 E0_F0 83 F0 0A E0_F0 0A F0 01 E0_F0 01 F0 09 E0_F0 09 F0 78 F0 07 Note 4 F0 7E E0_F0 7E Note 5 F0 0F E0_F0 0F F0 1F E0_F0 1F F0 27 E0_F0 27 F0 2F E0_F0 2F F0 37 E0_F0 37 F0 3F E0_F0 3F F0 47 E0_F0 47 F0 4F E0_F0 4F F0 56

HECTOR EDUARDO UGARTE ROJAS

HEUR

Ubicacin de Tecla

Teclados MF-II

ACPI Wake

DBE_KATAKANA

DBE_SBCSCHAR

CONVERT DO NOT USE DO NOT USE NONCONVERT DO NOT USE DO NOT USE DO NOT USE DO NOT USE DO NOT USE DO NOT USE DO NOT USE

Cdigo Scan 1 make E0_62 63 E0_63 64 E0_64 65 E0_65 66 E0_66 67 E0_67 68 E0_68 69 E0_69 6A E0_6A 6B E0_6B 6C E0_6C 6D E0_6D 6E E0_6E 6F E0_6F 70 E0_70 71 E0_71 72 E0_72 74 E0_74 75 E0_75 76 E0_76 77 E0_77 78 E0_78 79 E0_79 7A E0_7A 7B E0_7B 7C E0_7C 7D E0_7D 7F E0_7F

Cdigo Scan 1 break E0_E2 E3 E0_E3 E4 E0_E4 E5 E0_E5 E6 E0_E6 E7 E0_E7 E8 E0_E8 E9 E0_E9 EA E0_EA EB E0_EB EC E0_EC ED E0_ED EE E0_EE EF E0_EF F0 E0_F0 F1 E0_F1 F2 E0_F2 F4 E0_F4 F5 E0_F5 F6 E0_F6 F7 E0_F7 F8 E0_F8 F9 E0_F9 FA E0_FA FB E0_FB FC E0_FC FD E0_FD FF E0_FF

Cdigo Scan 2 make E0_56 5E E0_5E 08 E0_08 10 E0_10 18 E0_18 20 E0_20 28 E0_28 30 E0_30 38 E0_38 40 E0_40 48 E0_48 50 E0_50 57 E0_57 6F E0_6F 13 E0_13 19 E0_19 39 E0_39 53 E0_53 5C E0_5C 5F E0_5F 62 E0_62 63 E0_63 64 E0_64 65 E0_65 67 E0_67 68 E0_68 6A E0_6A 6E E0_6E

Codigo Scan 2 brake E0_F0 56 F0 5E E0_F0 5E F0 08 E0_F0 08 F0 10 E0_F0 10 F0 18 E0_F0 18 F0 20 E0_F0 20 F0 28 E0_F0 28 F0 30 E0_F0 30 F0 38 E0_F0 38 F0 40 E0_F0 40 F0 48 E0_F0 48 F0 50 E0_F0 50 F0 57 E0_F0 57 F0 6F E0_F0 6F F0 13 E0_F0 13 F0 19 E0_F0 19 F0 39 E0_F0 39 F0 53 E0_F0 53 F0 5C E0_F0 5C F0 5F E0_F0 5F F0 62 E0_F0 62 F0 63 E0_F0 63 F0 64 E0_F0 64 F0 65 E0_F0 65 F0 67 E0_F0 67 F0 68 E0_F0 68 F0 6A E0_F0 6A F0 6E E0_F0 6E

HECTOR EDUARDO UGARTE ROJAS

HEUR

BIBLIOGRAFIA. http://atc.ugr.es/docencia/udigital/ http://www.saludmed.com/Educ-Web/TecnoEdu/Equipo-C.html http://www.monografias.com/trabajos21/partes-computadora/partescomputadora.shtml http://es.wikipedia.org/wiki/Teclado_de_computadora http://lv.wikipedia.org/wiki/Intel_8042 http://www.beyondlogic.org/keyboard/keybrd.htm http://www.trucoswindows.net/foro/topico-30061-placas-madres.html

You might also like