[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]