[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]
{***********************************************************************}
PROGRAM KeyStatDemo; { Dec 09/93, Greg Estabrooks. }
USES CRT; { Import Clrscr,Writeln,GotXY. }
FUNCTION CapsOn :BOOLEAN;
{ Routine to determine if Caps Lock is on. }
BEGIN { Test the keyboard status bit for Caps.}
CapsOn := (Mem[$0040:$0017] AND $40) <> 0;
END;{CapsOn}
FUNCTION NumLockOn :BOOLEAN;
{ Routine to determine if Num Lock is on. }
BEGIN { Test keyboard status bit for NumLock. }
NumLockon := (Mem[$0040:$0017] AND $20) <>0
END;{NumLockOn}
FUNCTION ScrollOn :BOOLEAN;
{ Routine to determine if Scroll Lock is on. }
BEGIN { Test keyboard status bit for S_Lock. }
ScrollOn := (Mem[$0040:$0017] AND $10) <> 0;
END;{ScrollOn}
FUNCTION AltPressed :BOOLEAN;
{ Routine to determine if ALT key is being held down. }
BEGIN { Test keyboard status bit for ALT. }
AltPressed := (Mem[$0040:$0017] AND $08) <> 0;
END;{AltPressed}
FUNCTION CtrlPressed :BOOLEAN;
{ Routine to determine if Ctrl key is being held down.}
BEGIN { Test keyboard status bit for Ctrl. }
CtrlPressed := (Mem[$0040:$0017] AND $04) <> 0;
END;{CtrlPressed}
FUNCTION LeftShift :BOOLEAN;
{ Routine to determine if L_Shift is being held down. }
BEGIN { Test keyboard status bit for L_Shift. }
LeftShift := (Mem[$0040:$0017] AND $02) <> 0;
END;{LeftShift}
FUNCTION RightShift :BOOLEAN;
{ Routine to determine if R_Shift is being held down. }
BEGIN { Test keyboard status bit for R_Shift. }
RightShift := (Mem[$0040:$0017] AND $1) <> 0;
END;{RightShift}
BEGIN
Clrscr; { Clear the screen of clutter. }
REPEAT
GotoXY(1,1); { Move Back to top of screen. }
Writeln('CapsLock : ',Capson,' ');
Writeln('NumLock : ',NumLockOn,' ');
Writeln('Scroll Lock: ',ScrollOn,' ');
Writeln('Alt Key : ',AltPressed,' ');
Writeln('Ctrl Key : ',CtrlPressed,' ');
Writeln('Right Shift: ',RightShift,' ');
Writeln('Left Shift : ',LeftShift,' ');
UNTIL KeyPressed; { Loop until a key is pressed. }
END.{KeyStatDemo}
{********************************************************************}
[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]