You are on page 1of 5

PROCESAMIENTO DE TECLADO (Avanzado)

Estado del Shift del teclado Bit 7 6 5 4 Segmento 40:17h (teclado de 83 teclas) Accin Bit Accin insercin activa 3 Alt presionada Estado de BloqMays activa 2 ctrl. Presionada Estado de BloqNum activa 1 Shift izquierdo presionado Estado se Scroll Lock activa 0 Shift derecho presionado

Segmento 40:18h (teclado de 101 teclas) Bit Accin Bit Accin 7 Ins presionada 3 ctrl./ BloqNum (pausa) activa 6 BloqMays presionada 2 SysReg presionada 5 BloqNum presionada 1 Alt Izquierda presionada 4 Scroll Lock presionada 0 ctrl. Izquierda presionada

INTERRUPCION 21h del dos para entrada desde el teclado


FUNCION 01h INTERRUPCION 21h ENTRADA DEL TECLADO CON ECO (REPETICIN EN PANTALLA) (responde a ctrl+break) AL 0: significa carcter ASCII estndar presente Al = 0: Significa que se ha presionado una tecla funcin extendida. MOV INT CMP JNZ AH,01h 21h al, 00 . . . ; ; ; ; peticin de entrada del teclado interrupcin que llama al DOS presion tecla funcin? no, entonces es un carcter ASCII

FUNCION 06h INTERRUPCION 21h E/S DIRECTA DE LA CONSOLA K10: MOV AH,06h MOV DL,0FFh INT 21h JZ K10 CMP AL,00 Jnz K30 INT 21H ; peticin directa a la consola ; entrada del teclado ; interrupcin que llama al DOS ; repetir si el bfer esta vaco ; presion tecla funcin? ; no, entonces es carcter ASCII ; Si, repetir operacin para el cdigo de rastreo

FUNCION 07h INTERRUPCION 21h ENTRADA DIRECTA DESDE EL TECLADO SIN REPETICIN EN PANTALLA. Funciona igual que la 01h, excepto que el carcter ingresado no se repite en pantalla y no responde a una operacin CTRL + Break. Puede utilizarla para introducir una contrasea en donde no quiere perturbar la pantalla.
1

FUNCION 08h INTERRUPCION 21h ENTRADA DESDE EL TECLADO SIN REPETICIN EN PANTALLA. Funciona igual que la 01h, excepto que el carcter ingresado no se repite en pantalla. FUNCION 0Ah INTERRUPCION 21h ENTRADA DEL TECLADO MEDIANTE BUFER No acepta teclas de funcin extendida. FUNCION 0Bh INTERRUPCION 21h VERIFICACION DEL ESTADO DEL TECLADO Si AL=FF si el carcter esta disponible. Si AL=00 si ningn carcter esta disponible. FUNCION 0Ch INTERRUPCION 21h LIMPIA EL BUFER DEL TECLADO Y LLAMA A UNA FUNCION Se puede utilizar en asociacin con la funcin 01h, 06h, 07h, 08h, 0Ah. En Al se carga la funcin que se necesita. MOV MOV MOV INT AH,0Ch Al,funcin DX,KBarea 21h ; ; ; ; peticin de entrada del teclado funcion que se necesita Area de entrada de teclado Llama al DOS

INTERRUPCION 16h del BIOS para entrada desde el teclado


FUNCION 00h INTERRUPCION 16h LEE un carcter - Maneja las teclas del teclado de 83 teclas - No repite el carcter en pantalla Tecla presionada Carcter ASCII normal Tecla de funcin extendida MOV AH,00h INT 16h CMP Al,00h JE G40 ; ; ; ; AH Cdigo de rastreo Codigo de rastreo AL Carcter ASCCI 00H

peticin para leer Llama al BIOS Es una tecla de funcin extendida? si

FUNCION 01h INTERRUPCION 16h DETERMINA SI UN CARCTER ESTA PRESENTE Semejante a la funcin 00H Si un carcter ingresado esta presente en el bufer de teclado o ZF = 0 o AL = cdigo del carcter o AH = cdigo de rastreo
2

Si no esta presente un carcter o ZF = 1 o No espera

FUNCION 02h INTERRUPCION 16h REGRESA EL ESTADO ACTUAL DE LAS TECLAS SHIFT - Regresa en Al el estado de la tecla Shift del teclado MOV AH,02H INT 16h OR Al,00000011b JE xxxx ; ; ; ; Peticin del estado del Shift interrupcin que llama al BIOS se presiono shift izq o der? si

FUNCION 05h INTERRUPCION 16h ESCRITURA EN EL TECLADO - Inserta caracteres en el bfer del teclado como si se hubiese presionado una tecla. - El carcter ASCII se carga en CH y el cdigo de rastreo en CL. MOV AH,05h ; peticin de escritura en el teclado MOV CH,30h ; cdigo ASCII MOV CL,62h ; cdigo de rastreo INT 16h ; Llama al BIOS FUNCION 10h INTERRUPCION 16h LECTURA DE UN CARCTER DEL TECLADO - Realiza lo mismo que la 00H, con la diferencia que acepta teclas de funcin extendida. - No repite el carcter en pantalla. Tecla presionada Carcter ASCII normal Tecla de funcin extendida AH Cdigo de rastreo Codigo de rastreo AL Carcter ASCCI 00H E0H

00h: f1 . . . f12 0E : RePg, Inicio, etc. MOV AH,10h INT 16h CMP AL,00H JE G40 CMP AL,E0H JE G40 ; ; ; ; ; ; peticin de lectura de un carcter Llama al BIOS es una tecla de funcion extendida? -si es una tecla de funcin extendida? -si

FUNCION 11h INTERRUPCION 16h DETERMINA SI ESTA PRESENTE UN CARACTER Es la misma que la 01H, excepto que reconoce las funciones extendidas del teclado ampliado. FUNCION 12h INTERRUPCION 16h REGRESA ESTADO PRESENTE DEL SHIFT DEL TECLADO
3

Es la misma que la 02H, regresa en AL el estado del shift del teclado incluyendo el estado del shift extendido: Bit 7 6 5 4 Accin SysReq presionada BloqMays presionada BloqNum presionada Scroll Lock presionada Bit 3 2 1 0 Accin ALT derecha presionada CTRL derecha presionada Alt Izquierda presionada ctrl. Izquierda presionada

Ejemplo1.- prueba una tecla de funcin extendida: MOV AH,10H INT 16H CMP AL,00H JZ salir CMP AL,0E0H JZ Salir ; ; ; ; ; ; Peticin para entrar desde el teclado Llama al BIOS es una funcin extendida? si, entonces salir es una funcin extendida? S, entonces salir

INTERRUPCION 09H Y EL BUFER DEL TECLADO DIRECCIN EXPLICACIN

41Ah Direccin del inicio actual del bfer, la posicin siguiente para la INT 16h para leer 41Ch Direccin del final del bfer, la posicin siguiente para la INT 09h para almacenar un carcter ingresado. 41Eh Direccin del inicio del bfer del teclado: 16 palabras (32 bytes), aunque puede ser ms largo. El bfer retiene los caracteres del teclado y los cdigos de rastreo como son introducidos para lectura posterior por medio de la INT 16h. Se necesitan dos bytes para cada carcter y su cdigo de rastreo asociado: Direccin de la parte inicial 41A. Las teclas Ctrl, Shift y Alt 40:17h [ShiftDere (bit0), ShiftIzq(bit1), control(bit2) y Alt(bit3)] BIODATAS SEGMENT AT 40H ORG 17H ESTADO DB ? BIODATAS ENDS CODIGO SEGMENT PARA ASUMME CS:CODIGO, DS:BIODATAS ORG 100H INICIO: MOV AX,BIODATAS MOV DS,AX MOV AL,ESTADO ; obtiene el byte del teclado TEST AL,00000011b ; verifica si se presion shift JNZ xxxxx . . . . .
4

Direccin del parte final 41C

Direccin del Bfer 41E

Tambin se pueden examinar los bytes de estado del teclado ampliado 40:18h y 40:96h

You might also like