external handlr ... call break(handlr)
BREAK establishes "handlr" as a routine to be called the "break" key is hit in a TSS program. When "handlr" returns, the program resumes where it was interrupted. If BREAK is not used, the "break" key will terminate the program abruptly without closing files properly.
The runtime library is not re-entrant, so there is little that "handlr" can do except set a flag variable in a common area and return. In particular, it cannot do any I/O, do STOP or PAUSE, or do exponentiation. It can call BREAK, NBREAK, BRKMSG or NBRKS.
A subtle implication of this is that "handlr" must be compiled with the PARCHK option turned off.
Since the system maintains a break count, it would be reasonable for "handlr" to do nothing except an immediate return.
If the "break" key is pressed while waiting for terminal input, the input will be treated as an end-of-file condition after the break is serviced, and the END= return will be taken, if present.
In an overlaid program, "sub" must be in the root overlay.
A interactive DML program must use BREAK to ensure that the program is not prematurely terminated without the IDS/II routines having a chance to properly clean up.
Copyright © 1996, Thinkage Ltd.