General
Application area: | (Optimized) eventing; see "Eventing" |
Macro type: | R-Typ; see "R-type macros" |
Forward eventing (FEV) is an optimized form of synchronous eventing. FEV avoids the need for repeated validation of the operands when either SOLSIG or POSSIG calls to a particular event item are repeated. Instead, an event list, EVENTLST, is set up and in order to request signals from an event item (a SOLSIG function), for example, a SOLSIG entry is made in the list. The entry may be explicitly deleted again (DELFEI).
The task of the calling program must be enabled for the event item (using ENAEI).
Macro description
The macro RSOFEI refers to a SOLSIG entry in the EVENTLST and requests a signal (event) from an event item. The task of the calling program is put into a wait state if the requested signal has not yet been received, but for not longer than the duration of the specified waiting time (using the macro DSOFEI).
Macro format and description of operands
RSOFEI |
REFNUM=(r) |
REFNUM=r
Identifies a register which (directly) contains the reference number of a SOLSIG entry.
(r)
Register containing the reference number.
Return information and error flags
During the execution of the macro, register R1 contains the reference number. Register R0 is overwritten with an internal function code.
R15:
+---------------+ | | | | | |b|b| | | | |a|a| +---------------+
A structured return code relating to the execution of the macro is transferred in register R15 (aa = primary return code, bb = secondary return code).
X'bb' | X'aa' | Meaning |
X'00' | X'00' | Normal execution: the event has occurred. A post code has been transmitted, if it |
X'30' | X'00' | Function executed: the post code could not be transmitted because the receiver |
X'34' | X'00' | Function executed: the post code was not transmitted because it had the |
X'38' | X'00' | Function executed: post code truncated from the right (receiving field too small) |
X'3C' | X'00' | Function executed: post code entered left-justified (receiving field too long). |
X'04' | X'04' | No action: incorrect reference number (SOLSIG entry already deleted?) |
X'20' | X'04' | No action: the event did not occur within the waiting time |
X'28' | X'04' | No action: the event item was disabled (using the macro DISEI) before the event |
X'50' | X'04' | No event available. |