home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 2
/
ctrom_ii_b.zip
/
ctrom_ii_b
/
PROGRAM
/
PASCAL
/
PARADIS1
/
SCROLL.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1992-01-24
|
2KB
|
100 lines
(9641) Wed 22 Jan 92 14:51
By: Johannes Beekhuizen
To: Frank Livaudais
Re: Scroll Lock and Num Lock
St:
---------------------------------------------------------------------------
@MSGID: 2:281/527.5 0b0ecc73
@REPLY: 1:130/78.0 2975c20c
@PID: FM 2.02
> How can I toggle on and off the Scroll lock and number
> lock keys?
Any help comes up.
I had to dig deep, but I think I found what you need - here is is:
PROGRAM test;
VAR KeyBoardStatus : WORD ABSOLUTE $0040:$0017;
VAR InKey : CHAR;
Caps,
Num,
Scroll : BOOLEAN;
PROCEDURE SetCapsLock(On : boolean);
BEGIN
IF On THEN
KeyBoardStatus := (KeyBoardStatus OR $40)
ELSE
KeyBoardStatus := (KeyBoardStatus AND $BF);
END; {of proc SetCapsLock}
PROCEDURE SetNumLock(On : boolean);
BEGIN
IF On THEN
KeyBoardStatus := (KeyBoardStatus OR $20)
ELSE
KeyBoardStatus := (KeyBoardStatus AND $DF);
END; {of proc SetNumLock}
PROCEDURE SetScrollLock(On : boolean);
BEGIN
IF On THEN
KeyBoardStatus := (KeyBoardStatus OR $10)
ELSE
KeyBoardStatus := (KeyBoardStatus AND $EF);
END; {of proc SetScrollLock}
BEGIN
Caps := FALSE;
Num := FALSE;
Scroll := FALSE;
SetCapsLock(Caps);
SetNumLock(Num);
SetScrollLock(Scroll);
REPEAT
WRITELN;
WRITELN('Enter:');
WRITELN('C':10,' for CapsLock toggle,');
WRITELN('N':10,' for NumLock toggle,');
WRITELN('S':10,' for ScrollLock toggle,');
WRITE('or','X':8,' to exit:'#7,'':15);
READLN(InKey);
CASE Inkey OF
'C','c' : BEGIN
Caps := NOT Caps;
SetCapsLock(Caps)
END;
'N','n' : BEGIN
Num := NOT Num;
SetNumLock(Num)
END;
'S','s' : BEGIN
Scroll := NOT Scroll;
SetScrollLock(Scroll)
END
END {case}
UNTIL Inkey IN ['X','x']
END .
---
* Origin: What's the use of taglines anyway? (2:281/527.5)
@PATH: 4527/5 281/527 515 1 280/0 512/0 1007