Search                        Top                                  Index
HELP INTERRUPT                                  Steven Hardy, February 1982


The procedure held in this variable is called when you type the interrupt
character at the terminal (usually CTRL-C) or when there's an error, after
*PRMISHAP has been run. The initial value for INTERRUPT is the procedure
*SETPOP, but you can give it any value (*POPREADY, for instance, if you want
to be able to examine local variables during an error break). In VED,
INTERRUPT is re-defined to take you back to the top level of VED. The
procedure *VEDPOPREADY (which is similar to POPREADY) can be assigned to
INTERRUPT for use in VED.

    *SETPOP         - Resets the POP-11 system
    *POPREADY       - Invokes compiler recursively. Useful for interrupts.
    *VEDPOPREADY    - Similar to POPREADY, for use within VED
    *SYSSETTIMER    - for timed interrupts.
    *CHARIN_TIMEOUT - for timing terminal idle periods
    *POP_TIMEOUT    - times-out readings from a terminal
    *MISHAP         - POP-11 error procedures

See REF *SIGNALS for  full details of  interrupt handling facilities  in

NOTE for UNIX version                                      A. Sloman Sept 1983

Different installations use different control characters for interrupts and
other purposes. A common default is to use CTRL-C as the ordinary interrupt,
but CTRL-X is also common.

The 'QUIT' character (default ^\ in most UNIX systems, but often redefined as
^Y for consistency with VMS) will cause POP (PROLOG, LISP) to be interrupted,
and *SETPOP will be called (which will run *POPSETPOP - a user-definable
procedure). This can sometimes cause uninterruptable loops (e.g. if there's a
bug in the system or in your POPSETPOP). So a facility for disaster interrupts
is provided: type the QUIT character twice in the space of one second. The
effect of the QUIT character cannot be altered by the user.

In raw mode neither character will be effective and there is no way to
interrupt the process without logging in on a different terminal and using the
Unix 'kill' command.

--- C.all/help/interrupt
--- Copyright University of Sussex 1988. All rights reserved. ----------