[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]
{
>Can someone give me some code to make the lights Num lock/caps
>lock/scroll lock keys to turn on?
}
Program KeySet;
Const
CapsState = $40; { Mask For Caps Lock state }
NumState = $20; { Mask For Num Lock state }
ScrollState = $10; { Mask For Scroll Lock state }
Var
Kb : Byte Absolute $0040:$0017; { Address of keyboard flags }
I : Byte;
S : String;
begin
if ParamCount = 0 then
begin
WriteLn;
WriteLn(' Command line options:');
WriteLn;
WriteLn(' C toggle Cap lock state');
WriteLn(' N toggle Num lock state');
WriteLn(' S toggle Scroll lock state');
WriteLn(' Add + to turn on and - to turn off');
Halt(1);
end;
For I := 1 to ParamCount Do
begin
S := ParamStr(I);
S[1] := UpCase(S[1]);
{ toggle Caps Lock }
if S = 'C' then Kb := Kb xor CapsState;
{ toggle Num Lock }
if S = 'N' then Kb := Kb xor NumState;
{ toggle Scroll Lock }
if S = 'S' then Kb := Kb xor ScrollState;
{ Set Caps Lock on }
if S = 'C+' then Kb := Kb or CapsState;
{ Set Num Lock on }
if S = 'N+' then Kb := Kb or NumState;
{ Set Scroll Lock on }
if S = 'S+' then Kb := Kb or ScrollState;
{ Set Caps Lock off }
if S = 'C-' then Kb := Kb and not (CapsState or not Kb);
{ Set Num Lock off }
if S = 'N-' then Kb := Kb and not (NumState or not Kb);
{ Set Scroll Lock off }
if S = 'S-' then Kb := Kb and not (ScrollState or not Kb);
end;
Write('Caps Lock : ');
if (Kb and CapsState) = CapsState then
WriteLn('ON')
else
WriteLn('ofF');
Write('Num Lock : ');
if (Kb and NumState) = NumState then
WriteLn('ON')
else
WriteLn('ofF');
Write('Scroll Lock: ');
if (Kb and ScrollState) = ScrollState then
WriteLn('ON')
else
WriteLn('ofF');
end.
{
This Program will toggle, Turn on, or Turn off the Caps Lock, Num
Lock, and Scroll Lock lights. and when its done it tells you the
state of each key.
}
[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]