Está en la página 1de 20

TEMA 2º

Departamento de Informática de Sistemas y Computadores


(DISCA)

Contenido 2ª parte: Ratón


• 2.4 Tipos de ratones
• 2.5 El hardware del ratón
• 2.6 Comunicación entre ratón y PC
• 2.7 Modos de vídeo
2.7.1 Pantalla virtual del ratón
2.7.2 Modo texto
2.7.3 Modo gráfico
• 2.8 La interfaz del ratón. Int. software 33h

Tema 2º -Teclado y ratón 2


Bibliografía:
• Messmer H.P. “The indispensable PC Hardware
Book” 3ª ed. Ed Adison-Wesley,1997.
• Tischer, M. “PC interno” Ed Marcombo,1993.
• Van Gilluwe, F. “The undocumented PC” Ed Adison-
Wesley, 1994.
• Mueller, S. “Upgrading and Repairing PCs” (6th Ed)
Que, 1998.

Tema 2º -Teclado y ratón 3

2.4 Tipos de ratones • Bus


• Serie
Mediante cables • PS/2
Interconexión • USB

• Radiofrecuencia
Inalámbricos
• Infrarrojos

• Bola
Mecánicos
• Sensores de contacto
Detección del movimiento

Ópticos • Alfombrilla especial


• Sensor de imágenes

Tema 2º -Teclado y ratón 4


2.5 El hardware del ratón de bola

Tema 2º -Teclado y ratón 5

2.5 El hardware del ratón de bola


+5 V +5 V
Codificador vertical

S1

+5 V

S2
Codificador horizontal

S1 S1

S2 S2

Izquierda Derecha

Tema 2º -Teclado y ratón 6


2.5 El hardware del ratón óptico

Procesador de imagen
• 15 MIPS

Sensor de imagen

Secuencia de imágenes

Tema 2º -Teclado y ratón 7

2.6 Comunicación entre ratón y PC

CD = Carrier detect
RxD = Received Data DSR = Data Set Ready
TxD = Transmitted Data RTS = Request to Send
DTR = Data Terminal Ready CTS = Clear to Send
Gnd = Masa RI = Ring Indicator

PC Ratón
TxD TxD
RxD RxD
DTR DTR (alimentación)
RTS RTS
Gnd Gnd

Tema 2º -Teclado y ratón 8


El formato Microsoft

1 L D Y7Y6 X7X6 0 X5X4X3X2X1X0 0 Y5Y4Y3Y2Y1Y0

X7 .. X0 = Desplazamiento en X (Mickeys)
Y7 .. Y0 = Desplazamiento en Y (Mickeys)
L = 1 Botón izquierdo pulsado
D = 1 Botón derecho pulsado

Tema 2º -Teclado y ratón 9

2.7 Modos de vídeo.


2.7.1 La pantalla virtual del ratón

Pantalla virtual Modo texto

(320, 96) (40,12)

640 x 200 80 x 25
(Tamaño casilla de carácter 8 x 8 pixels)

Tema 2º -Teclado y ratón 10


2.7.2 Modo texto
RAM
0000:0000
0 1 78 79
FILA 0

B800:0000
RAM
de
Vídeo

FILA 24

FFFF:FFFF

ATRIBUTOS ASCII

Byte impar Byte par

• b0..b3: Color del carácter ( f f f f )


• b4..b6: Color de fondo ( b b b )
• b7: Intermitencia ( B )

Tema 2º -Teclado y ratón 11

Modo texto: Atributos del caracter

B b b b f f f f ASCII

Byte impar Byte par

b b b
Color f f f f . Color f f f f .
Negro 0 0 0 0 = 0 Gris 1 0 0 0 = 8
Azul 0 0 0 1 = 1 Azul claro 1 0 0 1 = 9
Verde 0 0 1 0 = 2 Verde claro 1 0 1 0 = 10
Cyan 0 0 1 1 = 3 Cyan claro 1 0 1 1 = 11
Rojo 0 1 0 0 = 4 Rosa 1 1 0 0 = 12
Magenta 0 1 0 1 = 5 Magenta claro 1 1 0 1 = 13
Marrón 0 1 1 0 = 6 Amarillo 1 1 1 0 = 14
Blanco 0 1 1 1 = 7 Negro 1 1 1 1 = 15

Tema 2º -Teclado y ratón 12


⌦ Modo texto. Máscaras de cursor y pantalla.

Puntero del ratón

Memoria de pantalla Memoria de pantalla

Máscara de Máscara de
AND XOR =
Pantalla Cursor

Bit en pantalla Screen Mask Cursor Mask Bit resultante


b 0 0 0
b 0 1 1
b 1 0 b
b 1 1 /b (invertido)

Tema 2º -Teclado y ratón 13

⌦ Modo texto. Máscaras de cursor y pantalla.

00001110 01000001 ‘A’ = 41h Amarillo sobre Negro


AND
11111111 00000000 Máscara de pantalla (Screen Mask)
=
00001110 00000000

XOR

↑ 00000000 00011000 Máscara de cursor (Cursor Mask)


=
00001110 00011000 ↑ Amarillo sobre Negro

Tema 2º -Teclado y ratón 14


⌦ Modo texto. Máscaras de cursor y pantalla.

00001110 01000001 ‘A’ = 41h Amarillo sobre Negro


AND
11111111 11111111 Máscara de pantalla (Screen Mask)
=
00001110 01000001

XOR
11111111 00000000 Máscara de cursor (Cursor Mask)
=
11110001 01000001 ‘A’ Azul sobre Blanco (parpadeo)

Tema 2º -Teclado y ratón 15

2.7.3 Modo gráfico

Pantalla virtual Modo gráfico

(320, 96) (320, 96)

640 x 200 640 x 200

Tema 2º -Teclado y ratón 16


⌦ Modo gráfico. Máscaras de cursor y pantalla.

Cursor 16x16 pixeles: Blanco/negro

9Fh FFH 1001111111111111 0000000000000000 00h 00H


8Fh FFh 1000111111111111 0010000000000000 20h 00h
87h FFh 1000011111111111 0011000000000000 30h 00h
83h FFh 1000001111111111 0011100000000000 38h 00h
81h FFh 1000000111111111 0011110000000000 3Ch 00h
80h FFh 1000000011111111 0011111000000000 3Eh 00h
80h 7Fh 1000000001111111 0011111100000000 3Fh 00h
80h 3Fh 1000000000111111 0011111110000000 3Fh 80h
80h 1Fh 1000000000011111 0011111111000000 3Fh C0h
80h FFh 1000000011111111 0011111000000000 3Eh 00h
88h 7Fh 1000100001111111 0011001100000000 33h 00h
98h 7Fh 1001100001111111 0010001100000000 23h 00h
FCh 3Fh 1111110000111111 0000000110000000 01h 80h
FCh 3Fh 1111110000111111 0000000110000000 01h 80h
FEh 3Fh 1111111000111111 0000000000000000 00h 00h

Máscara de pantalla Máscara de cursor

Tema 2º -Teclado y ratón 17

⌦ Modo gráfico. Máscaras de cursor y pantalla.


Cursor 16x16 pixeles: 256 COLORES
33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
33 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
33 88 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF
33 88 88 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF
33 88 88 88 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF
33 88 88 88 88 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF
33 88 88 88 88 88 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF
33 88 88 88 88 88 88 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF
33 88 88 88 88 88 33 33 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF
33 88 33 33 88 88 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF
33 33 00 33 88 88 33 00 00 00 00 00 00 00 00 00 00 00 FF 00 00 00 00 FF FF FF FF FF FF FF FF FF
33 00 00 33 88 88 33 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 00 FF FF FF FF FF FF FF FF FF
33 00 00 00 33 88 33 00 00 00 00 00 00 00 00 00 00 FF FF FF 00 00 00 FF FF FF FF FF FF FF FF FF
00 00 00 00 33 88 88 33 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF
00 00 00 00 00 33 88 33 00 00 00 00 00 00 00 00 FF FF FF FF FF 00 00 00 FF FF FF FF FF FF FF FF
00 00 00 00 00 00 33 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF 00 FF FF FF FF FF FF FF FF FF

Máscara de cursor Máscara de pantalla

Tema 2º -Teclado y ratón 18


2.8 La interfaz del ratón. Int. Software 33h.
FUNCIÓN 00h Averiguar si hay un ratón conectado

La función cero devuelve el estado del hardware y de las rutinas de control del ratón. Si se ha
instalado el ratón y se han cargado las rutinas, el valor retornado en el registro AX será FFFFh.
Si la función retorna 0000h puede ocurrir que no hay ratón instalado o bien que no se han
instalado las rutinas de control.

Entrada: AX = 00h
Salida : AX = FFFFh - Hay un ratón instalado
= 0000h - No hay un ratón instalado
BX = Número de botones del ratón

FUNCIÓN 01h Mostrar el cursor del ratón en la pantalla

Esta función incrementa el indicador interno del ratón en 1. Normalmente este contador tiene el
valor –1; Después de la llamada a esta función el cursor del ratón se hace visible en la
pantalla. A partir de ese momento sigue los movimiento del ratón.

Entrada: AX = 01h
Salida : No tiene

Tema 2º -Teclado y ratón 19

2.8 La interfaz del ratón. Int. Software 33h.


FUNCIÓN 02h Eliminar de la pantalla el cursor del ratón

Esta función decrementa el indicador interno del cursor en 1 y elimina de la pantalla el


cursor del ratón. Aunque el cursor del ratón no sea visible, continua siguiendo los
movimientos del ratón.
Entrada: AX = 02h
Salida : No tiene

FUNCIÓN 03h Obtener la posición y el estado de los botones

La llamada a esta función devuelve la posición actual del cursor del ratón en la pantalla
y el estado de los diferentes botones del ratón.

Entrada: AX = 03h
Salida : BX = Estado de los botones del ratón
Bit Significado
0 1 = pulsado botón izquierdo
1 1 = pulsado botón derecho
2 1 = pulsado botón central
3–15 no tienen ningún significado
CX = Posición horizontal del cursor del ratón
DX = Posición vertical del cursor del ratón

Tema 2º -Teclado y ratón 20


2.8 La interfaz del ratón. Int. Software 33h.
FUNCIÓN 04h Situar el cursor del ratón en una posición determinada

Con la llamada a esta función se sitúa el cursor del ratón en una posición de la pantalla pasada como
parámetro, sino ha sido desactivado utilizando la función 02h o si todavía no ha sido activado con la
función 01h.
Entrada: AX = 04h
CX = Posición horizontal virtual del cursor del ratón
DX = Posición vertical virtual del cursor del ratón

Salida: No tiene

FUNCIÓN 07h Determinar zona de movimiento horizontal para el cursor

Define la zona de movimiento horizontal, dentro de la cual se puede mover el cursor del ratón.
Para el usuario no existe ninguna posibilidad de situar el cursor del ratón fuera de esta zona. En
combinación con la función 08h se puede definir una ventana de movimiento del ratón.

Entrada: AX = 07h
CX = Posición virtual mínima del cursor del ratón
DX = Posición virtual máxima del cursor del ratón

Salida: No tiene

Tema 2º -Teclado y ratón 21

2.8 La interfaz del ratón. Int. Software 33h.


FUNCIÓN 08h Determinar zona de movimiento vertical para el cursor

Define la zona de movimiento vertical, dentro de la cual se puede mover el cursor del ratón.
Para el usuario no existe ninguna posibilidad de situar el cursor del ratón fuera de esta zona.
En combinación con la función 07h se puede definir una ventana de movimiento del ratón.

Entrada: AX = 08h
CX = Posición vertical mínima del cursor del ratón
DX = Posición vertical máxima del cursor del ratón
Salida: No tiene

FUNCIÓN 09h Definir el cursor del ratón en el modo gráfico

Esta función determina la forma y el modo de proceder del cursor en modo gráfico. La mascara
de pantalla y la mascara de cursor son suministradas en este orden dentro de un buffer1.

Entrada: AX = 09h
BX = Punto activo horizontal
CX = Punto activo vertical
ES = Dirección del segmento donde se encuentra el buffer1
DX = Desplazamiento dentro del segmento
Salida: No tiene

Tema 2º -Teclado y ratón 22


2.8 La interfaz del ratón. Int. Software 33h.

FUNCIÓN 0Ah Definir el cursor del ratón en el modo texto

Define el cursor de ratón que se va a usar en modo texto (hardware o software) y también
determina las mascaras de pantalla y cursor.

Entrada: AX = 0Ah
BX = Tipo de cursor
0 Cursor software
1 Cursor hardware
CX = Máscara de pantalla para el cursor software o línea inicial
del cursor hardware
DX = Máscara de cursor para el cursor software o línea final del
cursor hardware

Tema 2º -Teclado y ratón 23

2.8 La interfaz del ratón. Int. Software 33h.


FUNCIÓN 0Ch Instalar controlador de eventos

Esta función le permite a un programa instalar un controlador de eventos, que es llamado


por el driver de ratón al ocurrir un evento determinado relacionado con el ratón.

Entrada: AX = 0Ch

Salida: CX = Eventos que deben provocar la llamada del controlador

Bit Significado
0 1 = movimiento del ratón
1 1 = pulsado botón izquierdo
2 1 = liberado botón izquierdo
3 1 = pulsado botón derecho
4 1 = liberado botón derecho
5 1 = pulsado botón central
6 1 = liberado botón central
7-15 No tienen significado

ES = Dirección del segmento donde se encuentra el código


ejecutable del controlador
DS = Desplazamiento dentro del segmento

Tema 2º -Teclado y ratón 24


2.8 La interfaz del ratón. Int. Software 33h.

La siguiente información es suministrada por la rutina de


servicio de la interrupción del ratón al controlador de eventos.
AX = Máscara de eventos. Los diferentes bits corresponden con los
eventos, tal y como se indicaron en el registro CX durante la instalación del
controlador. Los bits que están a 1 informan al controlador sobre cual es el
evento por el cual ha sido llamado.

BX = Estado de los botones del ratón

Bit Significado
0 1 = pulsado botón izquierdo
1 1 = pulsado botón derecho
2 1 = pulsado botón central
3–15 no tienen ningún significado

CX = Posición horizontal virtual del ratón


DX = Posición vertical virtual del ratón
SI = Longitud del último movimiento hor. del ratón (mickeys)
DI = Longitud del último movimiento ver. del ratón (mickeys)
DS = Dirección del segmento de datos del driver de ratón

Tema 2º -Teclado y ratón 25

El ‘Driver’ del ratón


Pantalla

IRQ3 o IRQ4

Botones L, R
desplazam. X
desplazam. Y

evento

IRET
Controlador de eventos
INT 33h

Resto del Esperar evento


programa (ratón o teclado)

Tema 2º -Teclado y ratón 26


2.8 La interfaz del ratón. Int. Software 33h.

FUNCIÓN 0Fh Establecer relación entre mickeys y pixeles

Esta función define la relación entre mickeys y pixeles, que desde el punto de vista del
usuario determina la sensibilidad del ratón, y por tanto la velocidad con la que se mueve
el cursor del ratón en la pantalla.

Entrada: AX = 0Fh
CX = Número de mickeys horizontales
DX = Número de mickeys verticales
Salida: No tiene

FUNCIÓN 13h Fijar umbral para la duplicación de la velocidad de ratón

Esta función define el umbral en mickeys por segundo para el cual la velocidad del
cursor en la pantalla pasa a duplicarse. El valor por defecto del umbral es 64.

Entrada: AX = 13h
DX = Valor del umbral (mickeys por segundo)

Salida: No tiene

Tema 2º -Teclado y ratón 27

El ratón PS/2

8042/8742
Entrada

60h
Buffer

Puerto
Salida

60h
Salida
Buffer

Teclado
64h
Registro
Control

Entrada
Puerto

64h
Registro
Estado

Ratón PS/2
IRQ1

Tema 2º -Teclado y ratón 28


⌦El conector del ratón PS/2

5 6

Conector tipo PS/2 3 4


Mini 6-pin DIN
1 2

Pin Señal

1 Datos

2 N/C

3 Masa

4 + 5 Vcc

5 Reloj

6 N/C

Tema 2º -Teclado y ratón 29

⌦ La interfaz del ratón PS/2

Interfaz serie bidireccional (10 Kbits/seg)

Ratón PC
Idle
CLOCK
Idle
DATA START STOP
0 1 2 3 4 5 6 7 P

PC Ratón
Idle
CLOCK
Idle
DATA START 0 1 2 3 4 5 6 7 P STOP ACK

PC

Tema 2º -Teclado y ratón 30


El formato PS/2: PS/2 mouse data packet

00h
YOV = Y-Data overflow
YOV XOV YNG XNG res res RIG LEF
XOV = X-Data overflow
01h Reserved YNG = Y-Value Negative
XNG = X-Value Negative
02h X-Data (Motion units)
RIG = Rigth Button Pressed
03h Reserved LEF = Left Button Pressed
res= Reserved (00h)
04h Y-Data (Motion units)
05h Reserved
06h Z-Data (00h)
07h
Reserved

Tema 2º -Teclado y ratón 31

⌦ Programación del ratón PS/2. Comandos dirigidos al


ratón.
Comando Descripción
E6h Reset del factor de escala 1:1 Devuelve el factor de escala al valor 1:1
E7h Set Scaling Establece el factor de escala a 2:1
E8h Set Resolution Establece la resolución del ratón
(00h= 1 cuenta/mm; 01h = 2 cuentas/mm
02h = 4 cuentas/mm; 03h = 8 cuentas/mm))
E9h Determine status El ratón devuelve 3 bytes de estado
Byte 3 = Sample rate; byte 2 = resolution
Byte 1 = status
Eah Set Strem mode Activa el modo ‘Stream’
Ebh Read Data Transfiere un data packet desde el ratón al
controlador
Ech Reset Wrap mode Desactiva el modod ‘Wrap’
Eeh Set Wrap Mode Activa el modo ‘Wrap’
F0h Set remote mode Activa el modo remoto
F2h Identify unit Suministra el código de identificación (00h)

Tema 2º -Teclado y ratón 32


⌦ Programación del ratón PS/2. Comandos dirigidos al
ratón.
Comando Descripción
F3h Set Sample rate Define la velocidad de muestreo del ratón
(0ah= 10 sample/s; 14h = 20 sample/S
... 64h = 100 samples/s; C8h = 200 samples/s)
F4h Enable Habilita la transmisión de datos desde el ratón
F5h Disable Deshabilita la transmisión de datos desde el
ratón en modod ‘stream’
F6h Set standard Inicializa el ratón con lo valores estándar (100
samples/seg; factor de escala 1:1, resolución 4
count/mm, transmisión datos inhabilitada)
FEh Resend Petición de reenvío de datos desde el ratón

FFh Reset Inicializa el ratón

Modos de funcionamiento:
Stream Mode
Remote Mode

Tema 2º -Teclado y ratón 33

⌦ Modos de funcionamiento del ratón PS/2:

Modos de funcionamiento:

• Stream Mode:
• El ratón transmite los datos de forma continua
a la velocidad programada.
• Remote Mode:
• El ratón sólo envía los datos a petición del softawar
mediante la orden ‘Read data’.

Tema 2º -Teclado y ratón 34


Soporte de la BIOS para el ratón PS/2:

BIOS Interrupt 15h, Function C2h

SUBFUNCIÓN 00h Enable/Disable Mouse

Habilita o inhabilita el ratón. Antes de habilitar el ratón PS/2 hay que pasar la dirección del
manejador de eventos mediante la subfunción 07H y también inicializar el ratón mediante la
subfunción 05h
Entrada: AX = C2h
AL = 00h
BH = 00h Habilita el ratón
= 01h Inhabilita el ratón
Salida : C (Acarreo) <> 0 = Error

SUBFUNCIÓN 01h Reset Mouse

Esta subfunción reinicializa el ratón PS/2.


Entrada: AX = C2h
AL = 01h
Salida : C (Acarreo) <> 0 = Error
BH = Identificación del ratón (00h)

Tema 2º -Teclado y ratón 35

Soporte de la BIOS para el ratón PS/2:

SUBFUNCIÓN 02h Set Sample Rate

Establece la velocidad de adquisición y envío de datos del ratón PS/2 en muestras/segundo.


Entrada: AX = C2h
AL = 02h
BH = Sample rate
00h = 10 samples/s 01h = 20 samples/s 02 h= 40 samples/s
03h = 80 samples/s 04h = 80 samples/s 05h = 100 samples/S
06h = 200 samples/s.
Salida : C (Acarreo) <> 0 = Error

SUBFUNCIÓN 03h Set Resolution

Establece la resolución del ratón PS/2.


Entrada: AX = C2h
AL = 03h
BH = Resolución en unidades por milímetro
00h= 1unit/mm; 01h = 2 units/mm; 02h = 4 units/mm; 03h = 8 units/mm.

Salida : C (Acarreo) <> 0 = Error

Tema 2º -Teclado y ratón 36


Soporte de la BIOS para el ratón PS/2:

SUBFUNCIÓN 04h Determine Mouse Identification

Obtiene el código de identificación del ratón PS/2.


Entrada: AX = C2h
AL = 04h
BH = Sample rate
Salida : C (Acarreo) <> 0 = Error
BH = Código de identificación.

SUBFUNCIÓN 05h Initialize Mouse

Inicializa el ratón y establece el tamaño del ‘data packet’.


Entrada: AX = C2h
AL = 05h
BH = Data packet size (más = 8)

Salida : C (Acarreo) <> 0 = Error

Tema 2º -Teclado y ratón 37

Soporte de la BIOS para el ratón PS/2:

SUBFUNCIÓN 06h Extended Mouse Status

Esta función determina el estado del ratón PS/2 y establece el factor de escala.

Entrada: AX = C2h
AL = 06h
BH = Función
00h = Obtener estado
01h = Factor de escala a 1:1.
02h = Factor de escala a 2:1.
Salida : C (Acarreo) <> 0 = Error
BL = 1er byte de estado.
CL = 2o byte de estado.
DL = 3er bye de estado.

Tema 2º -Teclado y ratón 38


Soporte de la BIOS para el ratón PS/2:
SUBFUNCIÓN 07h Pass Driver Address

Esta función pasa a la BIOS la dirección de la rutina de manejo de los eventos del ratón. Esta
rutina será llamada por la BIOS cada vez que se reciba una información del ratón motivada por
algún evento en el mismo.

Entrada: AX = C2h
AL = 07h
BX = Segment
BX = Offset (Rutina de manejo del ratón PS/2)
Salida : C (Acarreo) <> 0 = Error

Cada vez que la BIOS llama al manejador de eventos del ratón le pasa los parámetros en la
pila (SP) de la siguiente forma:

Offset Tamaño Contenido


00h dword dirección retorno a la BIOS
04h word Z-data (00h)
06h word Y-data: parte baja: unidades de movimiento desde la última vez.
08h word X-data: parte baja: unidades de movimiento desde la última vez.
0Ah byte byte de estado

Tema 2º -Teclado y ratón 39

También podría gustarte