home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / tp_util / nobreak.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-06-07  |  1.4 KB  |  84 lines

  1. {$S-,R-,V-,I-,B-,F-,O-,A-}
  2.  
  3.  
  4. UNIT NOBREAK;
  5. { DIE FUNKTIONEN PAUSE UND CTRL-ALT-DEL WERDEN ABGEFANGEN
  6.   UND DEM HAUPTPROGRAMM ÜBER FUNKTIONEN ZUR VERFÜGUNG GESTELLT.
  7.   WIRD IM HAUPTPROGRAMM CHECKBREAK := FALSE GESETZT,
  8.   STELLT DIE UNIT DEM HAUPTPROGRAMM PER FUNKTION BREAK DAS BETÄTIGEN
  9.   VON CTRL-BREAK ZUR VERFÜGUNG.
  10.   ALLERDINGS MELDET BEI CTRL- BREAK DER TASTATURTREIBER IMMER NOCH EIN
  11.   CTRL-C AN DAS HAUPTPROGRAMM !
  12. }
  13. {$F+}
  14.  
  15. INTERFACE
  16.  
  17.  
  18. USES   DOS;
  19.  
  20.  
  21. FUNCTION  BREAK : BOOLEAN;
  22. FUNCTION  PAUSE : BOOLEAN;
  23. FUNCTION  CTRLALTDEL : BOOLEAN;
  24.  
  25. PROCEDURE INITKBDVECTORS;
  26. PROCEDURE RESTOREKBDVECTORS;
  27.  
  28.  
  29.  
  30. IMPLEMENTATION
  31.  
  32.  
  33. CONST  PAUSEK    : BOOLEAN = FALSE;
  34.        BREAKK    : BOOLEAN = FALSE;
  35.  
  36. VAR    EXITSAVE  : POINTER;
  37.  
  38. {$L NOBREAK}
  39.  
  40.  
  41. PROCEDURE NEWINT09; EXTERNAL;
  42.  
  43. {$F+}
  44. PROCEDURE INITKBDVECTORS;    EXTERNAL;
  45. PROCEDURE RESTOREKBDVECTORS; EXTERNAL;
  46.  
  47. PROCEDURE MYEXIT;
  48. BEGIN
  49.   RESTOREKBDVECTORS;
  50.   MEM[$40:$71] := 0; { BREAK- FLAG RÜCKSETZEN }
  51.   EXITPROC := EXITSAVE;
  52. END;
  53.  
  54.  
  55. FUNCTION  BREAK : BOOLEAN;
  56. BEGIN
  57.   BREAK := MEM[$40:$71] <> 0;
  58.   MEM[$40:$71] := 0;
  59. END;
  60.  
  61.  
  62. FUNCTION  PAUSE : BOOLEAN;
  63. BEGIN
  64.   PAUSE := PAUSEK;
  65.   PAUSEK := FALSE;
  66. END;
  67.  
  68.  
  69. FUNCTION  CTRLALTDEL : BOOLEAN;
  70. BEGIN
  71.   CTRLALTDEL := BREAKK;
  72.   BREAKK := FALSE;
  73. END;
  74. {$F-}
  75.  
  76.  
  77. BEGIN { MAIN }
  78.   INITKBDVECTORS;
  79.   EXITSAVE := EXITPROC;
  80.   EXITPROC := @MYEXIT;
  81.   MEM[$40:$71] := 0;
  82. END.
  83.  
  84.