Skip to content

352B EventSystem

Not registered   MON 352B (234 decimal) · Mnemonic EVENT · Group: Not grouped in manual

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

Emulation source: none - not registered in ndmonlib

Description

Multifunction monitor call giving access to the SINTRAN III event system, which handles sets of 32 events per process (RT-program). Events are kept in an extended RT-description (EVSET / EVWAIT / EVTMOUT / EVINTV). A process can set events on another process, read/clear its own events, wait for events (with optional timeout), connect events to SINTRAN functions, and define interval events. Introduced in the M-version.

Notes

  • NEW in the M-version (ND-860230-7A-EN section 3.2.2). The ND-500/5000 form of the call is described on M-version pages 32-36.
  • ND-100 register convention: A = address of the parameter list PEVNT. PEVNT = FUNC (function code), SIZE (length of the parameter array), ARRAY (the P0..Pn parameter array). Error return via JMP with A = error code.
  • Function codes (selected in FUNC): 0 = check if a function/subfunction is implemented; 1 = set event(s) on a specified process; 2 = read events on the current process (returned events are cleared); 3 = wait for events (optional timeout); 4 = connect events to SINTRAN functions; 5 = specify time-related events at regular intervals.
  • Function 0 (check): SIZE = 2, P0 = function code to check, P1 = subfunction (only for functions 3 and 4). Returns AD = 0 not implemented, 1 implemented (A = 0, D = 1).
  • Function 1 (set): SIZE = 3, P0 = process ID (RT-description address; 0 = current process), P1 = first part of event mask, P2 = last part of event mask. The mask is inclusive-ORed into the target process EVSET.
  • Function 2 (read): reads and clears the current process events from EVSET; events returned in the AD-register.
  • Function 3 (wait): P1/P2 = event mask to wait for; P3 nonzero = timeout time, P5/P6 = events to set on timeout (ORed into EVSET). Events returned in AD. A subfunction bit selects "return only waited-for events" vs all; another selects "restart only when ALL specified events have occurred". Uses EVWAIT and EVTMOUT.
  • Function 4 (connect): connect events to SINTRAN functions. P0 = SINTRAN function (0 = other events, 1 = terminal input / break, 2 = terminal output ready, 3 = NUCLEUS event); P2/P3 = events to set when that function occurs (ORed into EVSET).
  • Function 5 (interval): specify events set at regular intervals; one definition per process (each call redefines). P1/P2 = events to set at the interval; P4 = interval (0 disables). Uses EVINTV.
  • Rules: available to all users in background, and to RT-programs.

Parameters

Name Type Direction Description
ParamListAddr INTEGER In A-register: address of the parameter list PEVNT = FUNC, SIZE, ARRAY.
FUNC INTEGER In Function code (0 = check, 1 = set, 2 = read, 3 = wait, 4 = connect, 5 = interval).
SIZE INTEGER In Length of the parameter array ARRAY.
ARRAY INTEGER I/O The P0..Pn parameter array; contents depend on FUNC (see notes). Some functions return events in the AD-register.

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

See also

NucleusFunction, AwaitRequest

Compatibility

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

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).

LDA (PEVNT    % A = address of parameter list
MON 352       % MON EVENT
JMP ERR       % A = error code
% PEVNT, FUNC   % function code
%        SIZE    % length of parameter array
%        ARRAY   % P0..Pn parameter array (contents depend on FUNC)

ndmonlib implementation

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

Source

ND-860230-7A-EN SINTRAN III Release Information M-Version, section 3.2.2 (EVENT MON 352), pages 30-36, page 30.