Skip to content

63B In4x2Bytes

Stub   MON 63B (51 decimal) · Mnemonic B41NW · Group: Input and Output Monitor Calls (manual section 2.5)

Available from: All programs (manual compatibility box)

Emulation source: src/handlers/mon_63B_In4x2Bytes.c

Description

Reads 8 bytes from a word-oriented or character-oriented device, e.g. internal devices.

  • Do not use this monitor call for terminals.
  • This monitor call was mainly used for SIBAS communication via ND-NET. It is now seldom used.

Parameters

Name Type Direction Description
DeviceNumber INTEGER2 In Logical device number. See appendix B.
DataRead BYTES[8] Out The 8 bytes of data read (output).
NoOfBytes INTEGER2 Out Number of bytes read (output, returned in W1).

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

See also

In8Bytes, InUpTo8Bytes, In8AndFlag, InString, InputString, InByte, and Out8Bytes

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, NoOfBytes
BYTES : DataRead(0:7)
...

ON ROUTINEERROR DO
  IF ErrCode > 0 THEN ...
ENDON

Monitor_Call(’In4x2Bytes’, DeviceNumber, NoOfBytes, DataRead)
INTEGER DeviceNumber, NoOfBytes
CHARACTER DataRead*8
...
Monitor_Call('In4x2Bytes', DeviceNumber, NoOfBytes, DataRead(1:8))
IF (ErrCode .NE. 0) THEN ...
DeviceNumber, NoOfBytes : INTEGER2;
DataRead : PACKED ARRAY [0..7] OF CHAR;
...
In4x2Bytes(DeviceNumber, NoOfBytes, DataRead);
IF ErrCode <> 0 THEN ...
01 DeviceNumber  COMP.
01 NoOfBytes     COMP.
01 DataRead      PIC X(8).
01 ErrCode       COMP.
...
MONITOR-CALL "In4x2Bytes" USING DeviceNumber, NoOfBytes, DataRead.
CALL "CbError" USING ErrCode.
IF ErrCode NOT = 0 GO ...
DeviceNumber : W BLOCK 1
NoOfBytes : W BLOCK 1
DataRead : STRING 8
ErrCode : W BLOCK 1
In4x2Bytes : EQU 37B9 + 63B
...

CALLG In4x2Bytes, 2, DeviceNumber, DataRead
  IF K GO ERROR
  W1 =: NoOfBytes
...

ERROR : W1 =: ErrCode       % ErrorCode in W1 register.
LDT DEVNO            % Logical device number.
MON 63               % Monitor call In4x2Bytes.
JMP ERROR            % Error return from monitor call.
STD BYTES            % Normal return, store first 4 bytes read.
COPY SL DA
STA BYTES+2          % Store next 2 bytes read.
STX BYTES+3          % Store last 2 bytes read.
STT COUNT            % Store number of bytes read.
...

ERROR, ...           % Error number in register A.
...

DEVNO, ...
COUNT, 0
BYTES, 0
0
0
0

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_63B_In4x2Bytes
Code lines 6 (non-blank, non-comment lines in the file)

Source

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