Allgemeines
Anwendungsgebiet: | (optimierte) Ereignissteuerung; siehe "Ereignisgesteuerte Verarbeitung (Eventing)" |
Makrotyp: | R-Typ; siehe "R-Typ-Makroaufrufe" |
Forward Eventing (FEV) ist eine optimierte Form der synchronen Ereignissteuerung (synchrones Eventing). FEV vermeidet für wiederholte SOLSIG- bzw. POSSIG-Aufrufe in einem Programm die wiederholte Validierung der angegebenen Operanden. Stattdessen wird eine Ereignisliste EVENTLST angelegt und z.B. für Signalanforderungen von einer Ereigniskennung (SOLSIG-Funktion) einmalig ein SOLSIG-Eintrag eingetragen. Der Eintrag kann explizit wieder gelöscht werden (DELFEI).
Die Task des Aufrufers muss der Ereigniskennung zugeordnet sein (ENAEI).
Makrobeschreibung
Der Makro RSOFEI nimmt Bezug auf einen SOLSIG-Eintrag in der EVENTLST und fordert ein Signal (Ereignis) von einer Ereigniskennung an. Die Task des Aufrufers wird in den Wartezustand versetzt, wenn das angeforderte Signal noch nicht eingetroffen ist, jedoch längstens bis Ablauf der angegebenen Wartezeit (Makro DSOFEI).
Makroaufrufformat und Operandenbeschreibung
RSOFEI |
REFNUM=(r) |
REFNUM=r
bezeichnet ein Register, das (direkt) die Referenznummer für den SOLSIG-Eintrag enthält.
(r)
r = Register mit der Referenznummer.
Rückinformation und Fehleranzeigen
Während der Makrobearbeitung enthält Register R1 die Referenznummer.Register R0 wird mit einem internen Funktionscode überschrieben.
R15:
+---------------+ | | | | | |b|b| | | | |a|a| +---------------+
Über die Ausführung des Makros RSOFEI wird ein gegliederter Returncode (aa=primärer RC, bb=sekundärer RC) im Register R15 übergeben.
X'bb' | X'aa' | Erläuterung |
X'00' | X'00' | Normale Ausführung: Das Ereignis ist eingetreten. Ein Postcode wurde übertragen, |
X'30' | X'00' | Funktion ausgeführt: Postcode konnte nicht übertragen werden, weil der Empfänger |
X'34' | X'00' | Funktion ausgeführt: Postcode wurde nicht übertragen, weil er mit |
X'38' | X'00' | Funktion ausgeführt: Postcode wurde rechts abgeschnitten (Empfangsfeld zu |
X'3C' | X'00' | Funktion ausgeführt: Postcode wurde linksbündig eingetragen (Empfangsfeld zu |
X'04' | X'04' | Keine Aktion: Falsche Referenznummer (SOLSIG-Eintrag schon gelöscht?) |
X'20' | X'04' | Keine Aktion: Das Ereignis ist innerhalb der Wartezeit nicht eingetreten. |
X'28' | X'04' | Keine Aktion: Die Zuordnung zu der Ereigniskennung wurde vor dem Eintreffen |
X'50' | X'04' | Kein Ereignis verfügbar. |