Skip to content

515B MultipleDataTransfer

Not registered   MON 515B (333 decimal) · Mnemonic 5MTRANS · Group: Monitor Calls for Internal Use (manual section 2.14)

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

Emulation source: none - not registered in ndmonlib

Description

Fast disk transfer / event / start service for the ND-500. Provides eight functions: disk transfer (nowait/wait), check-event (nowait/wait) and start-process (nowait/wait). Requires a hard disk with disk-optimization. Listed name-only in the manual (sections 2.14 and 2.17); contract is RE-derived. Intended for ND subsystems only.

Notes

  • Version history: L-version added two disk-transfer subparameter-function values to parameter 5 <disk identifier> - 6 = read without clearing cache and 7 = write without "dump dirty" (write from a cache-inhibit area), both applicable only if cache-inhibit is set for the area (ND-860230-6-EN Sintran III - Release Information - L-Version.md:2782-2792). N-version changed the disk-transfer / event-flag behaviour: the microprogram now always gives an interrupt to the ND-100 and continues scanning the execution queue without waiting for an answer from the ND-100 (ND-860230-8-EN SINTRAN III - Release Information - N-version.md:1645).
  • Internal-use ND-500 level-12 monitor call; not intended for user programs.
  • Handler SUBR 5MTRANS at MP-P2-N500.NPL:2440 (body :2441); entered with X = CMSGA (current message) and B = ND-500 CPU datafield -> XC5CPUDF.
  • Function selection: 5MFNC flag word tested NBIT 5DTRANS (disk transfer) / NBIT 5CHEVENT (check event); 5MFNC /\ 6 selects the nowait variant.
  • UNVERIFIED message offsets: 5MNWA->NWFUNC; 5MLGN->LOGPH (logical device); 5MDIS->DISID disk function (low 6 bits: read=60, write=61, read-no-clear=66 octal); 5MEMA->MEMAD; 5DSEC->ABPA2 (sector); 5MNOS->ABP31 (sector count); 5MREQ->REQID (request id). Message offsets, not a confirmed CALLG signature.
  • Requires disk-optimization (9BBHD..9EEHD); allocates a disk-queue element, else links the message into the 5MWQU wait-queue. Verifies memory is fixed (CALL CHFIX) and queues via CALL M5TRANS. CHEVENT searches READYQ by ADMESS/REQID.
  • Status returns (bare literals before GO FIN/GO OUT): 1 received, 4, 2 no-event-nowait; errors A:=6 no-disk-optimization, A:=7 illegal r/w function. Exact status-code -> caller mapping is PARTIAL (final write-back outside the analysed excerpt).

Parameters

Name Type Direction Description
FunctionFlags INTEGER In UNVERIFIED - message field 5MFNC. Selects disk-transfer / check-event / start-process and (via /\ 6) the nowait variant. Message offset, not a confirmed CALLG parameter.
LogicalDevice INTEGER In UNVERIFIED - message field 5MLGN (logical device). Message offset only.
RequestId INTEGER In/Out UNVERIFIED - message field 5MREQ (request id), used by check-event to match the queued request. Message offset only.

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

See also

DataTransfer, AwaitTransfer

Compatibility

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

From the YAML extraction; this call's page in the manual had no compatibility box that was captured.

ndmonlib implementation

Not registered Not registered in src/core/mon_registry.c. mon_dispatch() reports the call as unimplemented.

Source

Reverse-engineered from SINTRAN III NPL source + ND-860228-2-EN manual (sections 2.14 / 2.17).