Skip to content

36B NoWaitSwitch

Stub   MON 36B (30 decimal) · Mnemonic NOWT · Group: Input and Output Monitor Calls (manual section 2.5)

Available from: All programs (manual compatibility box)

Emulation source: src/handlers/mon_36B_NoWaitSwitch.c

Description

Switches No Wait on and off. No Wait is useful for input from, and output to several devices simultaneously. In No Wait, the program does not wait for input or output to complete. Monitor calls like InByte return error code 3 instead.

  • SuspendProgram or WaitForRestart may passivate the program afterwards. The program restarts when input or output to the device is completed.
  • For performance reasons, use TerminalNoWait (TNOWAI, mon 307) rather than NoWaitSwitch.

Parameters

Name Type Direction Description
DeviceNumber INTEGER In Logical device number of a character device. See appendix B.
IOFlag INTEGER In Input or output flag. 0=input, 1=output.
WaitFlag INTEGER In No Wait flag. 0=switch No Wait off, non-zero=switch it on.

Direction: In = the program supplies the value, Out = the call returns it, In/Out = both.

See also

InByte, OutByte, and TerminalNoWait

Compatibility

Machines Users Programs
ND-100 and ND-500 All users All programs

The manual's compatibility box for this call, word for word.

Yes/no fields from the YAML extraction (not in the manual's words):

ND-100 ND-500 User programs RT programs System programs
Yes Yes No No No

Examples

From the manual (OCR text, not corrected).

INTEGER : DeviceNumber, IOFlag, Waitflag
...
ON ROUTINEERROR DO
    IF ErrCode >< 0 THEN ...
ENDON
Monitor_Call('NoWaitSwitch', DeviceNumber, IOFlag, Waitflag)
INTEGER DeviceNumber, IOFlag, WaitFlag
...
Monitor_Call('NoWaitSwitch', DeviceNumber, IOFlag, WaitFlag)
IF (ErrCode .NE. 0) THEN ...
DeviceNumber, IOFlag, WaitFlag : INTEGER2;
...
NoWaitSwitch(DeviceNumber, IOFlag, WaitFlag);
IF ErrCode <> 0 THEN ...
01 DeviceNumber COMP.
01 IOFlag COMP.
01 WaitFlag COMP.
01 ErrCode COMP.
...
MONITOR-CALL "NoWaitSwitch" USING DeviceNumber, IOFlag, WaitFlag.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
DeviceNumber : W BLOCK 1
IOFlag : W BLOCK 1
WaitFlag : W BLOCK 1
ErrCode : W BLOCK 1
NoWaitSwitch : EQU 37B9 + 36B
...
CALLG NoWaitSwitch, 3, DeviceNumber, IOFlag, WaitFlag
IF K GO ERROR
...
ERROR : W1 =: ErrCode                      %ErrorCode in W1 register.
LDA   (PAR                %Load register A with address of parameter list.
MON   36                  %Monitor call NoWaitSwitch.
JAF   ERROR               %Handle error if register A is non-zero.
...
ERROR, ...                %Handle this error.
...
PAR,  DEVNO               %Logical device number.
IOF                       %Input/output flag.
WAITFL                    %No Wait flag.
...
DEVNO, ...
IOF, ...
WAITFL, ...

ndmonlib implementation

Stub Registered MON_STATUS_NOT_IMPLEMENTED: the handler is a stub. mon_dispatch() in src/core/mon_dispatch.c reports the call as unimplemented without calling it.

Handler mon_36B_NoWaitSwitch
Code lines 8 (non-blank, non-comment lines in the file)

Source

SINTRAN III Monitor Calls (ND-860228.2 EN), page 359.