79 lines
2.1 KiB
Plaintext
79 lines
2.1 KiB
Plaintext
(* Abbreviation: Break *)
|
||
(* Version 1.10, Nov 1984 *)
|
||
(* comments modified Feb 7, 1985 *)
|
||
DEFINITION MODULE Break;
|
||
(*
|
||
Handling of the Ctrl-Break interrupt
|
||
|
||
This module provides an interrupt handler for the
|
||
Ctrl-Break interrupt 1BH of MS-DOS and PC-DOS on the
|
||
IBM-PC. This module depends on the ROM BIOS of the
|
||
IBM-PC and will not run on any machine which is not
|
||
compatible to an IBM-PC at this level.
|
||
|
||
Module 'Break' installs a default break handler, which
|
||
stops the execution of the current program with
|
||
'System.Terminate(stopped)' when Ctrl-Break is typed.
|
||
This produces a memory dump for the stopped program.
|
||
|
||
Module 'Break' allows a program to install its own break
|
||
handler, and to enable or disable the break handler
|
||
which is currently installed.
|
||
*)
|
||
|
||
|
||
EXPORT QUALIFIED
|
||
EnableBreak, DisableBreak, InstallBreak, UnInstallBreak;
|
||
|
||
|
||
PROCEDURE EnableBreak;
|
||
(*
|
||
- Enable the activation of the current break handler
|
||
|
||
If Ctrl-Break is detected, the currently installed break
|
||
handler will be called.
|
||
*)
|
||
|
||
|
||
PROCEDURE DisableBreak;
|
||
(*
|
||
- Disable the activation of the current break handler
|
||
|
||
If a Ctrl-Break is detected, no action takes place. The
|
||
Ctrl-Break is ignored.
|
||
*)
|
||
|
||
|
||
PROCEDURE InstallBreak (BreakProc: PROC );
|
||
(*
|
||
- Install a break handler
|
||
|
||
in: BreakProc break procedure to be called upon
|
||
Crtl-Break
|
||
|
||
A program can install its own break handler. Module
|
||
'Break' maintains a stack of break procedures. The break
|
||
procedure on top of the stack (i.e. the one which was
|
||
installed most recently) will be called upon the
|
||
occurence of a ctrl-break. The default break handler
|
||
which is installed initially terminates the program with
|
||
a call to 'System.Terminate(stopped)'.
|
||
|
||
Up to four user defined break procedure may be installed
|
||
at the same time.
|
||
*)
|
||
|
||
|
||
PROCEDURE UnInstallBreak;
|
||
(*
|
||
- Uninstall the current break handler
|
||
|
||
Removes the break procedure which is currently on top of
|
||
the stack. So the last installed break procedure will be
|
||
deactivated, and the one installed previously becomes
|
||
active again.
|
||
*)
|
||
|
||
|
||
END Break.
|
||
|