[Back to KEYBOARD SWAG index]  [Back to Main SWAG index]  [Original]

{
-> I'm having alot of trouble trying to stop people breaking out of my
-> programs.  I've been trying to figure out how to stop the
-> <ctrl>-<break>, <ctrl>-<c> , but with no luck...  Can't seem to find
-> anything in the help menu's....
-> ---

If you are using CRT, use CHECKBREAK:=FALSE.  Also, you can disble it
permenantly like this:
}
Program TTXBREAK_Which_Means_TobinTech_ControlBreak_Disabler_Program;


Uses DOS,CRT;

{$M 2000,0,0}
{$R-,S-,I-,F+,V-,B-}

Const ControlCInt=$23;
      ControlBreakInt=$1B;


Var
 OldControlCVec:Pointer;
 OldControlBreakVec:Pointer;

Procedure STI;
Inline($FB);

Procedure CLI;
Inline($FA);

Procedure CallOldInt(Sub:Pointer);
begin
 Inline($9C/                    { PUSHF }
        $FF/$5E/$06);
end;

Procedure BlockInterrupt; Interrupt;
 {BlockInterrupt is a generic procedure for blocking an interrupt}
begin
 STI;
end;


begin
 Writeln('TobinTech Control-C disable program            ');
 GetIntVec(ControlCInt, OldControlCVec);
 SetIntVec(ControlCInt, @BlockInterrupt);
 Writeln(' > CONTROL-C disabled.                         ');
 GetIntVec(ControlBreakInt, OldControlBreakVec);
 SetIntVec(ControlBreakInt, @BlockInterrupt);
 Writeln(' > CONTROL-BREAK disabled.                     ');
 Writeln(' Terminating, but Staying Resident in memory...');
 Keep(0);
End.

[Back to KEYBOARD SWAG index]  [Back to Main SWAG index]  [Original]