Skip to content

131B DataTransfer

Stub   MON 131B (89 decimal) · Mnemonic ABSTR · Group: Input and Output Monitor Calls (manual section 2.5)

Available from: not known - no compatibility box captured from the manual

Emulation source: src/handlers/mon_131B_DataTransfer.c

Description

Transfers data between physical memory and a mass-storage device, e.g. a disk or magnetic tape. You may perform various device control functions. This monitor call is mainly used by the operating system itself. For more details, refer to the ND-100 SCSI Reference Guide, ND-12.048.

  • With SINTRAN III/VSX, the monitor call and the parameters must reside on a fixed segment on protection ring 2. With SINTRAN III/VSE, the monitor call and parameters must reside in resident memory.
  • The physical memory area must be contiguous. Older versions of magnetic tapes or disk controllers cannot cross physical memory bank boundaries of 128 Kbytes. These magnetic tapes have ND numbers less than ND-537. The disks have ND numbers less than ND-559.
  • If you write code to be independent of whether it is run on SINTRAN III VSE or VSX, you are advised to use TransferData (EXABS, mon 335).

Parameters

Name Type Direction Description
DeviceNo INTEGER In Logical device number. See appendix B.
Func INTEGER In Function code. See the tables on the following pages.
MemoryAddr INTEGER In Physical memory address (32-bit).
BlockAddr INTEGER In Block address on the disk. See the tables on the following pages.
NoOfBlocks INTEGER In Number of blocks to transfer.
Stat INTEGER Out Error code returned in W1. Negative if error. Contains a hardware status.

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

See also

TransferData, ReadFromFile, WriteToFile. TransferData allows you to use any page table

Compatibility

ND-100 ND-500 User programs RT programs System programs
Yes Yes Yes Yes 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).

INTEGER : DeviceNo, Func, BlockAddr, NoOfBlocks, Stat
INTEGER4 : MemoryAddr

Monitor_Call('DataTransfer', DeviceNo, Func, MemoryAddr, & BlockAddr, NoOfBlocks, Stat)
INTEGER DeviceNo, Func, BlockAddr, NoOfBlocks, Stat
INTEGER*4 MemoryAddr
...
Monitor_Call('DataTransfer', DeviceNo, Func, MemoryAddr, BlockAddr, NoOfBlocks, Stat)



Scanned by Jonny Oddene for Sintran Data © 2020
DeviceNo, Func, BlockAddr, NoOfBlocks, Stat : INTEGER2;
MemoryAddr : LONGINT;
...
DataTransfer(DeviceNo, Func, MemoryAddr, BlockAddr, NoOfBlocks, Stat);
01 DeviceNo COMP.
01 Func COMP.
01 BlockAddr COMP.
01 NoOfBlocks COMP.
01 Stat COMP.
01 MemoryAddr COMP PIC S9(10).
...
MONITOR-CALL "DataTransfer" USING DeviceNo, Func, MemoryAddr, BlockAddr, NoOfBlocks, Stat.
DeviceNo : W BLOCK 1
Func : W BLOCK 1
MemoryAddr : W BLOCK 1  %ND-100 memory address.
BlockAddr : W BLOCK 1
NoOfBlocks : W BLOCK 1
Stat : W BLOCK 1
DataTransfer : EQU 37B9 + 131B

CALLG DataTransfer, 5, DeviceNo, Func, MemoryAddr, &
BlockAddr, NoOfBlocks

IF K GO Error

Error, W1 =: Stat
| Code  | Description                                  |
|-------|----------------------------------------------|
| LDT   | DEVNO %Logical device number.                |
| LDA   | (PAR %Load register A with address of parameter list. |
| MON   | 131 %Monitor call DataTransfer.              |
| JAN   | ERROR %Error if register A is negative.      |

%Continue with processing.
%Error number in register A.

| Variable | Description                           |
|----------|---------------------------------------|
| DEVNO    | ...                                   |
| PAR      | FUNC %Function code etc.              |
| DMEM     | %Memory address.                      |
| BLOCK    | %Block address.                       |
| NOBLK    | %Number of blocks to transfer.        |

% ... indicates continuation of descriptions, more variables, or other details.

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

Source

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