[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]
{$M $800,0,0 } { 2K stack, no heap }
{ This Program caUses a click each time
a key is pressed.}
Uses Crt, Dos;
Var
KbdIntVec : Procedure;
{$F+}
Procedure Keyclick; interrupt;
begin
if Port[$60] < $80 then
{ Only click when key is pressed }
begin
Sound(5000);
Delay(1);
NoSound;
end;
Inline ($9C); { PUSHF -- Push flags }
{ Call old ISR using saved vector }
KbdIntVec;
end;
{$F-}
begin
{ Insert ISR into keyboard chain }
GetIntVec($9,@KbdIntVec);
SetIntVec($9,Addr(Keyclick));
Keep(0); { Terminate, stay resident }
readln;
end.
{
Actually this works as long as you change the GETinTVEC line, where it says
@@KbdIntVec, it should be only one @, odd that borland would have an example
that didn't Compile. (It's a fine example, surprised myself too)
}
[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]