[Back to CRT SWAG index] [Back to Main SWAG index] [Original]
{
CL>Does anyone know how to make the Num Lock,Caps Lock, and Scroll lock lights
CL>turn on and off?
--------------------------------8<-----------------
$40:$17 BYTE Keyboard status flags 1:
bit 7 =1 INSert active
bit 6 =1 Caps Lock active
bit 5 =1 Num Lock active
bit 4 =1 Scroll Lock active
bit 3 =1 either Alt pressed
bit 2 =1 either Ctrl pressed
bit 1 =1 Left Shift pressed
bit 0 =1 Right Shift pressed
Port[$3F2] w diskette controller DOR (Digital Output Register)
bit 7-6 reserved PS/2
bit 7 = 1 drive 3 motor enable
bit 6 = 1 drive 2 motor enable
bit 5 = 1 drive 1 motor enable
bit 4 = 1 drive 0 motor enable
bit 3 = 1 diskette DMA enable (reserved PS/2)
bit 2 = 1 FDC enable (controller reset)
= 0 hold FDC at reset
bit 1-0 drive select (0=A 1=B ..)
}
Program BlinkBlink;
{ you MUST have a diskette in drive 'B' to use this }
Uses CRT;
CONST DiskCtr = $03F2;
VAR i,j : Byte;
OldKB : Byte;
KBStat : Byte Absolute $40:$17;
Out : Byte;
ch:char;
BEGIN
i:=$40;
j:=0;
OldKB:=KBStat;
Writeln('So blink Drive B: ... Taste druecken');
{Eigentlich sollte auch Drive A: blinken, aber das klappt bei mir irgend-}
{wie nicht :-( }
Repeat
Delay(500);
Out:=j OR $F0;
Port[DiskCtr]:=Out;
j:=(j+1) MOD 2;
Until Keypressed;
ch:=ReadKey;
Writeln('Und so die Tastatur-LEDs ... Taste druecken');
Repeat
KBStat:=i;
Delay(100);
if Keypressed then nosound;
i:=i SHR 1;
If i=$8 then
i:=$40;
Until Keypressed;
KBStat:=OldKB;
END.
[Back to CRT SWAG index] [Back to Main SWAG index] [Original]