(* Version 1.10, Nov 1984 *) 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. It installs a default break handler, which stops the execution of the current program with 'Terminate(stopped)' (see module 'System'). This produces a memory dump of the stopped program. A program may install its own break handler, and it can 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 a 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.