300B SetEscapeHandling¶
In progress MON 300B (192 decimal) · Mnemonic EUSEL · Group: Monitor Calls for Terminal Handling (manual section 2.6)
Available from: not known - no compatibility box captured from the manual
Emulation source: src/handlers/mon_300B_SetEscapeHandling.c
Description¶
Enables user-defined escape handling. When the ESCAPE key is pressed, execution continues at the specified address in your program.
Notes¶
- Disable the user-defined escape handling with StopEscapeHandling.
- The normal escape handling is reset when the program aborts.
Parameters¶
| Name | Type | Direction | Description |
|---|---|---|---|
EscapeHandler |
INTEGER | In | Contents of first location of escape-handler routine. See PLANC example. |
Direction: In = the program supplies the value, Out = the call returns it, In/Out = both.
See also¶
EnableEscape, OffEscLocalFunction
Compatibility¶
| ND-100 | ND-500 | User programs | RT programs | System programs |
|---|---|---|---|---|
| Yes | No | Yes | No | No |
From the YAML extraction; this call's page in the manual had no compatibility box that was captured.
Examples¶
From the manual (OCR text, not corrected).
TYPE rvv=ROUTINE VOID,VOID
INTEGER POINTER: ip
rvv POINTER: rp=ip
ROUTINE VOID,VOID : EscHandling
...
ENDROUTINE
ON ROUTINEERROR DO
IF ErrCode <> 0 THEN ...
ENDON
...
Addr EscHandling =:rp
Monitor_Call('SetEscapeHandling', Ind(ip))
INTEGER EscapeHandler
...
Monitor_Call('SetEscapeHandling', EscapeHandler)
IF (ErrCode .NE. 0) THEN ...
EscapeHandler : INTEGER2;
...
SetEscapeHandling (EscapeHandler);
IF ErrCode <> 0 THEN ...
01 EscapeHandler COMP.
01 ErrCode COMP.
...
MONITOR-CALL "SetEscapeHandling" USING EscapeHandler.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
LDA PROG %Address of user escape handler routine.
MON 300 %Monitor call SetEscapeHandling.
JMP ERROR %Error return from monitor call.
... %Normal return.
ERROR, ... %Error number in register A.
PROG, ...
ndmonlib implementation¶
In progress Registered MON_STATUS_IN_PROGRESS: partly implemented. The dispatcher calls the handler.
| Handler | mon_300B_SetEscapeHandling |
| Code lines | 11 (non-blank, non-comment lines in the file) |
Notes from the handler source¶
src/handlers/mon_300B_SetEscapeHandling.c line 51
EUSEL carries no device number - it applies to the calling program's own
terminal. Device 1 == "own terminal", as MON 71B/72B DESCF/EESCF and MON
405B USTBRK use.
Source¶
SINTRAN III Monitor Calls (ND-860228.2 EN).