Mit der $NBSSIG-Funktion kann die Exit-Routine einer wartenden Task anzeigen, dass ein Börsenereignis eingetreten ist (analog POSSIG in TU). Ein Postcode wird an die mit SOLSIG auf das Ereignis wartende Task übergeben.
Voraussetzung: Eine Ereigniskennung muss existieren und die dazugehörige Börsenkennung mit $GTBOID systemglobal zugreifbar abgespeichert sein.
Makroaufrufformat und Operandenbeschreibung
[label] $NBSSIG |
MF=C / D / E / L / M [,PREFIX=prefix] [,PARAM=adr] [,BOID=boid / (R1)] [,SDATA=(1, adr / (R2))] |
MF
beschreibt die Makroaufrufform.
=C
Die Parameterliste wird als Datenbereich generiert.
=D
Die Parameterliste wird als DSECT generiert mit dem für „label“ angegebenen Namen; Voreinstellung: label = NTEG.
=E
Aufruf der Funktion.
=L
Die Parameterliste wird generiert (ohne Feldnamen und Equates).
=M
Modifikation der Parameterliste mit aktuellen Werten.
PREFIX
Angabe eines Zeichens für die Feldnamen in der Parameterliste. Nur in Verbindung mit MF=C/D möglich.
=prefix
Ein Zeichen, mit dem die Feldnamen in der Parameterliste beginnen sollen; Voreinstellung: N.
PARAM
bezeichnet die Adresse der Parameterliste, wenn MF=E angegeben wird.
=adr
Adresse der Parameterliste.
BOID=
bezeichnet die Börsenkennung.
=boid
Börsenkennung, wie sie mit $GTBOID global hinterlegt wurde.
=(R1)
Register, das die Börsenkennung enthält.
SDATA
bezeichnet ein Feld mit der Adresse des 1-Wort-Postcode, der an die mit SOLSIG wartende Task übergeben wird. Das kann z.B. die Adresse der Daten sein, die in eine Protokolldatei ausgegeben werden sollen.
=(1,...)
adr = Adresse des Feldes mit dem 1-Wort-Postcode.
R2 = Register mit dem Adresswert des Feldes mit dem 1-Wort-Postcode.
Hinweise
R12 und R13 dürfen seit Exit-Routinenaufruf nicht verändert worden sein.
R14, R15 und R1 werden durch MF=E verändert.
Die Parameterliste muss entsprechend der Reentrant-Programmierung bearbeitet werden.
Returncode
Im Standardheader der Parameterliste (mit $NBSSIG MF=D/C) wird folgender Returncode übergeben:
Maincode | Bedeutung |
NTBSM1OK | Erfolgreicher Aufruf |
NTBSM1IC | Inkonsistente Parameter |
NTBSM1BE | Fehlerhafte Börsendaten |
NTBSM1IB | Ungültige Börsenkennung |
NTBSM1BD | Börse bereits zerstört, d.h. Ereigniskennung existiert nicht mehr |
NTBSM1QL | Überlauf in der Sende-Queue der Börse |
NTBSM1NS | Keine Slots für Sende-Queue verfügbar |
Keine Aktion bei allen Returncodes außer NTBSM1OK.
EXITXXXX @ENTR TYP=E,ENV=SPLSPEC,LOCAL=ADF : L R1,BOIDX ——————————————————————————————————————————————— (1) L R1,0(R1) MVC CPARAM(NTBS#),LPARAM ——————————————————————————————————— (2) $NBSSIG MF=M,PARAM=CPARAM,BOID=(R1),SDATA=(1,SDATA) —————————— (3) $NBSSIG MF=E,PARAM=CPARAM ———————————————————————————————————— (4) CLI NTBSMR1,NTBSM1OK ——————————————————————————————————————— (5) BNE exception : @EXIT : LPARAM $NBSSIG MF=L ————————————————————————————————————————————————— (6) NTBSS# DS 0A NTBSFHE DS 0XL8 GENERAL OPERAND LIST HEADER NTBSFCTU DC AL2(93) FUNCTION UNIT NUMBER NTBSFCT DC AL1(6) FUNCTION NUMBER
NTBSFCTV DC AL1(1) FUNCTION INTERFACE VERSION NUMBER NTBSRET DC X'FFFFFFFF' RETURN CODE NOT VALID NTBSMR1 EQU NTBSRET+3,1 MAIN RETURN CODE 1 * NTBSBOID DC F'0' BOID DC X'00' unused DC X'00' unused NTBSVECT DC B'01000000' VECT. FIELD NTBSDLTH DC X'00' DATA LENGTH NTBSLTIM DC H'600' LIFETIME NTBSPRIO DC AL1(0) PRIORITY DC X'00' unused NTBSSIG DC F'0' SIGNAL DC F'0' unused DC F'0' unused NTBSSDTA DC A(0) SEND DATA ADDRESS NTBSARSL DC A(0) AR Slot address (only for SIH user) NTBS# EQU *-NTBSS# Length of parameterlist : BOIDX DC A(BOID) ———————————————————————————————————————————————— (7) EXTRN BOID SDATA DC A(MESS) MESS DC Y(MESSEND-MESS) DC C' IRGEND EIN TEXT' : @END ADF @PAR L=YES : CPARAM $NBSSIG MF=C ————————————————————————————————————————————————— (8) : ADF @PAR LEND=YES
(1) | Besorgen der Börsenkennung |
(2) | Vorbesetzen der aktuellen Parameterliste mit dem Standardmuster |
(3) | Einsetzen der Börsenkennung und des Postcodes |
(4) | Aufruf der Funktion $NBSSIG |
(5) | Auswerten des Returncodes |
(6) | Standardmuster der Parameterliste |
(7) | Beispiel für die Börsenkennungsermittlung und Postcodeverwendung |
(8) | Platzhalter der aktuellen Parameterliste im Automatic-Speicherlayout |