Professional Documents
Culture Documents
Contenido
INTRODUCCIN .................................................................................................................................... i
OBJETIVO GENERAL: ............................................................................................................................ ii
OBJETIVOS ESPECFICOS: ..................................................................................................................... ii
EL TECLADO ......................................................................................................................................... 3
TECLADO PC XT DE 83 TECLAS ......................................................................................................... 4
TECLADO PC AT DE 84 TECLAS ........................................................................................................ 4
TECLADO EXTENDIDO DE 101 TECLAS ............................................................................................. 6
CONECTORES DE TECLADO ................................................................................................................. 7
CONECTOR DE 5 PINES .................................................................................................................... 7
CONECTOR DE 6 PINES PS/2 ............................................................................................................ 7
CONECTOR USB ............................................................................................................................... 8
BFER DEL TECLADO ........................................................................................................................... 8
INTERRUPCIN 16H DEL BIOS PARA ENTRADA/SALIDA DEL TECLADO ............................................... 9
FUNCIN 00H DE LA INT 16H: LEE UN CARCTER .......................................................................... 9
FUNCIN 01H DE LA INT 16H: DETERMINA SI UN CARCTER EST PRESENTE ............................ 10
FUNCIN 02H DE LA INT 16H: REGRESA AL ESTADO ACTUAL DE SHIFT ....................................... 10
FUNCION 05H DE LA INT 16H: ESCRITURA EN EL TECLADO .......................................................... 11
FUNCION 10H DE LA INT 16H: LECTURA DE UN CARCTER DESDE EL TECLADO .......................... 11
FUNCIN 11H DE LA INT 16H: DETERMINA SI EST PRESENTE UN CARCTER ............................ 12
FUNCIN 12H DE LA INT 16H: REGRESA EL ESTADO PRESENTE DE SHIFT .................................... 12
TECLAS DE FUNCION EXTENDIDA Y CODIGOS DE RASTREO .............................................................. 12
CDIGOS DE RASTREO (DECIMAL) .................................................................................................... 12
EJERCICIO .......................................................................................................................................... 13
MICROPROGRAMACION
INTRODUCCIN
MICROPROGRAMACION
OBJETIVO GENERAL:
Estudiar las operaciones del teclado que son producidas por la interrupcin
16H.
OBJETIVOS ESPECFICOS:
Analizar el funcionamiento de los servicios de la int 16H. s Conocer la utilidad de
los cdigos de rastreo.
Conocer los tres tipos bsicos de teclas.
ii
MICROPROGRAMACION
EL TECLADO
3. Teclas de control para Alt, Ctrl y Shift, que funcionan en conjuncin con
otras teclas. El BIOS las trata de manera diferente de las otras teclas
actualizando su estado actual en los bytes del estado del Shift en el rea de
datos de BIOS. El BIOS no las enva como caracteres ASCII a su
programa.
MICROPROGRAMACION
TECLADO PC XT DE 83 TECLAS
Este teclado fue introducido con el IBM PC en 1981. Est dotado de un conector
DIN de 5 patillas. Las teclas estn dispuestas en tres zonas:
Imagen N1 Teclado PC XT
TECLADO PC AT DE 84 TECLAS
MICROPROGRAMACION
El IBM PC AT, presentado por IBM en 1983; introdujo un nuevo teclado que
aada una tecla y algo de hardware adicional respecto del XT, de forma que
ambos teclados no eran directamente intercambiables (*). Su disposicin es muy
parecida a la del XT, aunque el teclado numrico independiente est ms
separado, e incluye luces para controlar los estados de bloqueo: De maysculas
("Caps lock"); numrico ("Num lock"), y de desplazamiento ("Scroll").
MICROPROGRAMACION
Es introducido por IBM junto con el modelo PS/2 en 1987, y adopta la disposicin
que se ha mantenido prcticamente sin cambios hasta nuestros das, las teclas se
disponen en cuatro bloques, y la tecla Intro est duplicada.
El teclado original PS/2 utiliza un conector mini DIN de 6 contactos, que fue
adoptado rpidamente por el resto de fabricantes. La diferencia respecto al DIN
tradicional es meramente mecnica. En caso de tener que conectar un teclado con
conector PS/2 (mini DIN) a un sistema con conector DIN o viceversa, pueden
utilizarse adaptadores. Acepta un conjunto de 17 comandos desde la placa
6
MICROPROGRAMACION
CONECTORES DE TECLADO
MICROPROGRAMACION
CONECTOR USB
La rutina Int 09H del BIOS obtiene el cdigo de rastreo del teclado, lo convierte en
un carcter ASCII y lo enva al rea del bfer del teclado. Luego la Int 16H del
BIOS (la operacin de ms bajo nivel del teclado) lee el carcter del bfer y lo
enva a su programa.
Su programa nunca necesita solicitar la Int 09H, ya que el BIOS lo hace de forma
automtica cuando usted presiona una tecla.
MICROPROGRAMACION
Para acceder a las funciones del teclado se usa la interrupcin de la BIOS 16h.
Dicha interrupcin permite acceder a varias rutinas distintas asignando al registro
ah el nmero de funcin o subrutina correspondiente. La interrupcin 16h Invoca
los servicios estndar del teclado de la ROM BIOS, ayuda a manejar funciones
avanzadas del teclado, recordemos que el teclado se haya distribuido, por teclas
alfanumricas, de control, extendidas y de funcin.
Lee un carcter
Determina si un carcter est presente
Regresa el estado actual del Shift
Escribe en el teclado
Lee un carcter desde el teclado
Determina si un carcter est presente
Regresa el estado actual del Shift
Tabla N1 Funciones de la INT 16H
Esta operacin maneja las teclas del teclado de 83 teclas, pero no acepta entrada
de las teclas adicionales en el teclado ampliado de 101 teclas.
La operacin verifica el bfer del teclado por la entrada de un carcter, si ninguno
est presente la operacin espera que el usuario presione una tecla. Si un
carcter est presente, la operacin lo regresa en AL y su cdigo de rastreo en
AH. Si la tecla presionada es una funcin extendida, como inicio o F1 el carcter
en AL es 00H.
TECLA PRESIONADA
CARCTER ASCCI NORMAL
TECLA EXTENDIDA
AH
COD. DE RASTREO
COD. DE RASTREO
AL
ASCII
00H
MICROPROGRAMACION
Esta funcin es semejante a la funcin 00H, pero con una diferencia importante. Si
un carcter ingresado est presente en el bfer de del teclado, la operacin pone
en cero la bandera (ZF=0) y enva el carcter al AL y su cdigo de rastreo al AH, el
carcter ingresado permanece en el bfer. Si no el flag del cero es el bit 6 del
registro flags (el primer bit es el bit 0!) est presente algn carcter, la operacin
pone en uno la bandera del cero y no espera.
Esta operacin regresa a AL el estado de la tecla Shift desde el rea de datos del
BIOS en la localidad 40:17
10
MICROPROGRAMACION
Esta operacin permite que su programa inserte caracteres en el bfer del teclado
como si el usuario hubiera presionado alguna tecla.
La operacin es la misma que la de la funcin 00h, salvo que tambin acepta las
teclas adicional de funcin extendidas (Como F11 y F12). Desde el teclado
ampliado, mientras que la funcin 00H no lo permite.
La operacin verifica el bfer del teclado para un carcter ingresado. Si ninguno
est presente, la operacin espera que el usuario presione una tecla. Si un
carcter est presente, la operacin no regresa en el AL y su cdigo de rastreo en
el AH. Si la tecla presionada es una tecla de funcin extendida, como inicio o F1 el
carcter en el AL=00H. En el teclado ampliado, F11 y F12 tambin regresa 00H en
el AL, pero otras teclas de control (duplicados), como inicio y RePag , regresan
E0H. Aqu estn las 2 posibilidades:
Ejemplo: puede examinar el AL contra 00H o E0H para determinar si el usuario ha
presionado una tecla de funcin extendida.
Mov ah, 10h ; peticin al BIOS para entrada del teclado
Int 16h
; llama al BIOS
Cmp al, 00h ; es una tecla de funcin extendida?
Je G40
;- si
Cmp al,0e0h; es una tecla de funcin extendida?
Je G40
;- si
11
MICROPROGRAMACION
Esta operacin es la misma que la funcin 01H, excepto que reconoce las
funciones extendidas del teclado ampliado, mientras que 01H no lo hace.
Una tecla de funcin extendida como F1 o inicio solicita una accin en lugar de
enviar un carcter, el programador puede hacer uso de ese cdigo de rastreo para
realizar cualquier evento al presionar cualquier tecla de funcin extendida.
Por ejemplo para la tecla Esc su cdigo de rastreo es 01H guardado en AH.
La operacin responde en una de dos formas, dependiendo de si presiona una
tecla de carcter o una tecla de funcin extendida.
CDIGOS DE RASTREO (DECIMAL)
12
MICROPROGRAMACION
AH
1E
AL
41
AH
52
AL
00
EJERCICIO
.MODEL SMALL
.STACK
.DATA
X1 DB 10
Y1 DB 10
MSJ DB "Tecla invalida",13,10,"$"
DER MACRO VAL ;MACRO PARA MOVER A LA DERECHA
MOV DX,OFFSET VAL
MOV AH,02h
INT 21H
ADD X1,1
gotoxy X1,Y1
CALL COMPARE
ENDM
ASIG MACRO
MOV X1,10
MOV Y1,10
13
MICROPROGRAMACION
ENDM
IZQ MACRO VAL ;MACRO PARA MOVER A LA IZQUIERDA
MOV DX,OFFSET VAL
MOV AH,02h
INT 21H
SUB X1,1
gotoxy X1,Y1
CALL COMPARE
ENDM
ARR MACRO VAL ;MACRO PARA MOVER ARRIBA
MOV DX,OFFSET VAL
MOV AH,02h
INT 21H
SUB Y1,1
gotoxy X1,Y1
CALL COMPARE
ENDM
ABA MACRO VAL ;MACRO PARA MOVER ABAJO
MOV DX,OFFSET VAL
MOV AH,02h
INT 21H
ADD Y1,1
gotoxy X1,Y1
CALL COMPARE
ENDM
limpiar MACRO
mov bh,17h
mov ah,06h
mov al,00h
mov cx,0000
mov dx,184fh
int 10h
ENDM
gotoxy MACRO x,y
xor bh,bh
Mov dl,x
mov dh,y
mov ah,02h
int 10h
ENDM
color MACRO x1
14
MICROPROGRAMACION
mov ax,0600h
mov bh,x1
mov cx,0000h
mov dx,184fh
int 10h
ENDM
.CODE
inicio:
mov ax,@data
mov ds,ax
limpiar
gotoxy X1,Y1
COMPARE:
MOV AH,00h
INT 16h
CMP AL,38h
JE ARRIBA
CMP AL,32h
;COMPARAR EL VALOR ASCCI A '2'
JE ABAJO
CMP AL,36h
;COMPARAR EL VALOR ASCCI A '6'
JE DERECHA
CMP AL,34h
;COMPARAR EL VALOR ASCCI A '4'
JE IZQUIERDA
CMP AH,0Eh
JE CLEAN
MOV DX,OFFSET MSJ
MOV AH,09H
INT 21H
limpiar
ASIG
gotoxy X1,Y1
call COMPARE
DERECHA:
DER 5Fh
IZQUIERDA:
IZQ 5Fh
ARRIBA:
ARR 7CH
ABAJO:
ABA 7CH
CLEAN:
limpiar
ASIG
15
MICROPROGRAMACION
gotoxy X1,Y1
call COMPARE
END inicio
16