Ensamblador - CapsLock, NumLock y ScrollLock

 
Vista:

CapsLock, NumLock y ScrollLock

Publicado por DickM (11 intervenciones) el 07/03/2001 01:58:27
Desde qué interrupción puedo modificar el estado de CapsLock, NumLock y ScrollLock, y cómo puedo obtener su estado.
Un ejemplo me ayudaría tambien mucho.
;-)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:CapsLock, NumLock y ScrollLock

Publicado por Pedro Pablo (21 intervenciones) el 10/03/2001 20:41:07
Para consultarlo, puedes utilizar la función 02h de la int 16. Te dará el resultado en AL.
En el bit 4 tendrás el estado del ScrollLock, en el bit 5 el estado del NumLock, y en el 6 el del CapsLock (si está a uno el bit, estará encendida la luz :-) )
Realmente, la interrupción te dará en AL el byte almacenado en la posición de memoria 0040h:0017h.
Si quieres modificar el estado, bastará que modifiques ese byte según lo que necesites. Modifica solo los bits que quieras cambiar, no metas directamente un valor de byte, porque el resto de los bits también se utilizan (aunque para otras cosas).
Una vez que lo hayas cambiado debes llamar a alguna de las interrupciones del teclado para que las luces se actualicen. Por ejemplo a la función 01 de la int 16.

Por ejemplo, para activar el SrollLock:
; Leemos el estado actual del byte, para solo cambiar el bit 4.
mov ax,40h
mov ds,ax
mov al,[17h]
; Cambiamos el bit 4 (para el 5 sería 20h, y para el 6 40h)
or al,10h
; Guardamos el valor en la posición 0040h:0017h
mov [17h],al
; Llamamos a la interrupción del teclado, para que la BIOS actualice los leds.
mov ah,1
int 16

Espero que te sirva!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar