Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

$NBSSIG - Send a Signal to Event Item Bourse

&pagelevel(3)&pagelevel

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.

 

Programmierbeispiel

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