Yrecasy

Aus Si:Wiki von Siegrist SystemLösungen - Informatik und Rezepte
Version vom 19. Januar 2016, 02:24 Uhr von Sigi (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
YRECASY  CSECT RESIDENT
************************************************************************
*                                                                      *
*     COPYRIGHT (C) SIEMENS AG  1988                                   *
*     COPYRIGHT (C) SIEMENS NIXDORF INFORMATIONSSYSTEME AG  1991       *
*     ALL RIGHTS RESERVED                                              *
*                                                                      *
************************************************************************
         PRINT NOGEN,BASE
* RELM AUF ADDR0 UEBERPRUEFEN
** V3.0AK4
* CDUMP USFREE ENTFERNT
** V3.0A00
* RELM AUF 9 SEITEN AENDERN WEGEN SAP 8-K NACHRICHTEN. SIEHE MCP002.
** V2.1B10
*----------------------------------------------------------------------*
****     INIT REGISTERS                                             ****
*----------------------------------------------------------------------*
         SPACE
R0       EQU   0
R1       EQU   1
R2       EQU   2
R3       EQU   3
R4       EQU   4
R5       EQU   5
R6       EQU   6
R7       EQU   7
R8       EQU   8
R9       EQU   9
R10      EQU   10
R11      EQU   11
R12      EQU   12
R13      EQU   13
R14      EQU   14
R15      EQU   15
*---------------------------------------------------------------------*
         GPARMOD 31
YRECASY  AMODE ANY
YRECASY  RMODE ANY
##BAL    OPSYN ##BAS
##BALR   OPSYN ##BASR
*---------------------------------------------------------------------*
*        E X T R N  S                                                 *
*---------------------------------------------------------------------*
         EXTRN TERMOUTA
         EXTRN UDIATBA
         EXTRN DIATABE
         EXTRN FCBSEQ
         EXTRN DIATABA
         EXTRN STATANFA
         EXTRN STATENDA
         EXTRN KMASKANF
         EXTRN DIATABA
         EXTRN Z2
         EXTRN Z3
         EXTRN Z4
         EXTRN Z5
*---------------------------------------------------------------------*
         TITLE 'Y R E C A S Y   / ASYN REC VON PARTNER/$DIALOG'
YRANF    BASR  R8,0
         BCTR  R8,0
         BCTR  R8,0
         LR    R5,R1           R1  COMAD =RPBADRESS
*                              R3  EIDREF = USPID/STATTID
         USING YRANF,R8,R9,R10,R11
         LA    R1,4095
         LA    R9,1(R8,R1)
         LA    R10,1(R9,R1)
         LA    R11,1(R10,R1)
         USING STATEIN,R3
         USING USEREIN,R4
** CYRE ** DIAG-TAB                                    *DIA
         L     R12,=A(DIATABA)
         USING DIATABA,R12
         L     R14,DIATABA                             *DIA
         MVC   0(4,R14),=CL4'CYRE'                     *DIA
         BAS   R13,YUPDIAUP                            *DIA
**      **
         ST    R3,MVCFYR
         MVI   MVCFYR,X'00'
         ST    R5,RPBAYR
         YSHOWCB BLK=RPB,BLKADDR=(R5),WAREA=FDBKYR,LENGTH=4,           -
               FIELDS=(FDBK)
         L     R15,FDBKYR
         CLM   R15,B'1000',=X'00'
         BE    W1     
         CLM   R15,B'1000',=X'08'
         BNE   FDBKN08
         CLM   R15,B'0100',=X'40'  * SOFERN ANW.ZUST FALSCH Z.B YCLOSE
         BL    W7                  * SOFORT AUF RETCO
FDBKN08  EQU   *
         MVC   YERRTEXT,=CL20'A/YREC/FDBK'
         BAS   R14,YFEHLER
         L     R15,FDBKYR               * FBK WIRD NEU GELADEN SONST
*                                         FOLGENDE ABFRGAE FALSCH
         CLM   R15,B'1010',=X'0410'     * SOFERN TOVAL ABGE
         BE    W2                       * WIRD NEUER YREC ABGESETZT
         B     W7                       * SONST RETCO
W1       YSHOWCB BLK=RPB,BLKADDR=(R5),WAREA=MVCFYR,LENGTH=4,           -
               FIELDS=(USER)
         CLM   R15,B'1001',=X'0000'
         BE    W2     
         MVC   YERRTEXT,=CL20'A/YREC/USER'
         BAS   R14,YFEHLER
W2       EQU   *
W3       XR    R5,R5
         XR    R6,R6
         LH    R5,MVCFYR+2        (STATTID)
         LH    R6,MVCFYR          (USPID)
         L     R12,=A(STATANFA)
         USING STATANFA,R12
         L     R3,STATANFA
         L     R12,=A(STATENDA)
         USING STATENDA,R12
         L     R4,STATENDA
YRELOOP  EQU   *
*        A     R3,=A(X'100')
         LA    R3,256(R3)        + X'100'
         CLM   R5,B'0011',STATTID
         BE    YREGOT
         CR    R3,R4
         BL    YRELOOP
         RETCO
YREGOT   EQU   *
         L     R4,USERPAGA
         L     R5,USERPAGE
YREPOP   EQU   *
*        A     R4,=A(X'100')
         LA    R4,256(R4)         + X'100'
         CLM   R6,B'0011',USPID
         BE    YRTOP
         CR    R4,R5
         BL    YREPOP
         RETCO
YRTOP    EQU   *
* SOFERN DAVOR KEINE ORDENTLICH MELDUNG (D.H USFREE <> : ODER Y)
* WIRD YRECASY VERWORFEN
         CLI   USFREE,C':'
         BE    C777
         CLI   USFREE,C'Y'
         BE    C777
         MVC   YERRTEXT,=CL20'A/YREC/USFRE'
         MVC   YERRTEX1(8),STATPNA        EINTRAG STATION BEI ERR
         MVC   YERRTEX1+10(8),USPRO           "   PROZ.    "   "
         MVC   YERRTEX1+20(8),USPNA            "   ANWEND   "   "
         MVC   YERRTEX1+30(1),USFREE           "   BELEGUNG "   
*        CDUMP
         BAS   R14,YFEHLER       ^ DYN.DUMP BEI NACHR.+FREIG.
         RETCO
C777     CLC   FDBKYR,=X'04001000'     * SOFERN TOVAL ABGE
         BE    YRNOS                     SETZE NEUEN YREC AB
         L     R5,USRPBA
         YSHOWCB BLK=RPB,BLKADDR=(R5),WAREA=YRLEN,LENGTH=4,            -
               FIELDS=(ARECLN)
         CLM   R15,B'1000',=X'00'
         BE    W4      
         MVC   YERRTEXT,=CL20'A/YREC/ARECLN'
         BAS   R14,YFEHLER
W4       EQU   *
         L     R2,USIN
         MVC   USNEA,0(R2)
         MVC   USLEN,YRLEN
         MVC   YREEI,USEI
         MVC   YRECO,USCO
         MVC   USRC,=F'0'
         MVC   USERROR,=CL15'RECEIVE   '
         MVI   USFREE,C':'
         L     R2,STAIDCP
         L     R6,STATCID
         L     R7,YRLEN
         L     R14,USIN
         CLI   FDBKYR,X'00'           * SOFERN FDBKYR IO 
         BE    YRW0                      LETS GO !
         MVC   USERROR,=CL15'RECEIVE ERROR'
         MVI   USFREE,C'F'
         MVC   USRC,FDBKYR
         L     R7,USAID
         YCLOSE AID=(R7)
         CLM   R15,B'1001',=X'0000'
         BE    W202
         MVC   YERRTEXT,=CL20'A/YREC/YCLOSE'
         BAS   R14,YFEHLER
W202     EQU   *
         LA    R7,USEI
         DISEI EIID=(R7)
         LA    R7,USCO
         DISCO COID=(R7)
         L     R7,USIN
*        CLI   STATSTOP,X'FF'     WARTEN AUF GO-SIGNAL IN CPBUFH ??
*        BNE   CCNGO
*        CLC   STASTPID(2),USPID  MIT DIESEM PID ???
*        BE    A01                DANN DARF NICHT FREIGEGEBEN WERDEN
*CCNGO    EQU   *
* TEXTPAGE WIRD FREIGEGEBEN (SIEHE REQM)
         SRA   R7,12
*         LTR   R7,R7
*         BNZ   NODUMP7
*         TERM  DUMP=Y,MODE=ABNORMAL
*NODUMP7  EQU   *
         LTR   R7,R7
         BNZ   YRELM1
         XR    R15,R15
         MVC   YERRTEXT,=CL20'A/YREC/RELM/0'
         BAS   R14,YFEHLER
         B     A01
YRELM1   EQU   *
         RELM  9,(R7)
         CLM   R15,B'0001',=X'00'
*        CMD   '/D %7'            REQM TRACE
         BE    A01
         MVC   YERRTEXT,=CL20'A/YREC/RELM'
         BAS   R14,YFEHLER
A01      EQU   *
         L     R12,=A(TERMOUTA)
         USING TERMOUTA,R12
         L     R15,TERMOUTA
         L     R14,=F'38'
         L     R12,=A(KMASKANF)
         USING KMASKANF,R12
         MVC   0(38,R15),KMASKANF
*        A     R15,=F'38'
         LA    R15,38(R15)        + 38
         L     R12,=A(Z2)
         USING Z2,R12
         MVI   Z2,X'FF'
         L     R12,=A(Z3)
         USING Z3,R12
         MVI   Z3,X'FF'
         L     R12,=A(Z4)
         USING Z4,R12
         MVI   Z4,X'FF'
         L     R12,=A(Z5)
         USING Z5,R12
         MVI   Z5,X'FF'
         BAS   R13,YKMASKE
         B     W7
*
YRW0     EQU   *
* SPRUNG MIT RESON = 1 (FUER ASY REC)
*  TRACE *********************
TRACE1   B     TRACE1E           B / NOP
         MVC   TRBOUT(4),=C'IN :'
         L     R2,USIN
         BAS   R14,YTRACOUT
TRACE1E  EQU   *
         CNOP  0,4
         ENTRY TRACE1
*  TRACE *********************
         MVC   USRES,=F'1'
         ST    R15,YR15SAV
** UBUF ** DIAG-TAB                                    *DIA
         L     R12,=A(DIATABA)
         USING DIATABA,R12
         L     R14,DIATABA                             *DIA
         MVC   0(4,R14),=CL4'UBUF'                     *DIA
         BAS   R13,YUPDIAUP                            *DIA
**      **
         L     R15,YCPBUFHA
         BASR  R14,R15
         L     R15,YR15SAV
         B     YRNOS
         DS    0F
YR15SAV  DS    F
YCPBUFHA DC    V(CPBUFH)
**----------------------------   AB INS MOD
**----------------------------   AB INS MOD
YRNOS    EQU   *
         L     R2,USIN
         L     R5,USRPBA
         LA    R6,USEI
         L     R7,USAID
         L     R14,USCID
         CLC   USSEQ,=C'0000'
         BE    C300 
         CLC   USTYP,=C'UCON'    
         BE    C120
         CLC   USTYP,=C'U/D '
         BE    C100
         CLC   USTYP,=C'PDN '             ** CATS
         BE    C100
         CLI   USNEA,X'33'
         BE    C100
         CLI   USNEA,X'37'
         BE    C100
         B     C300
C100     MVC   SEKEY(4),USSEQ
         MVC   SEKEY+4(4),USKEY1
         L     R12,=A(FCBSEQ)
         USING FCBSEQ,R12
         GETKY FCBSEQ,SEDAT
         GET   FCBSEQ,SEDAT
         CLC   USSEQ(4),SEKEY
         BNE   C200
         MVC   USKEY1,SEKEY+4
         MVC   SENDCMD,USNEA
         MVC   SENDCMD1,SECMD
         XI    SENDCMD,X'20'
         XR    R13,R13
         LH    R13,=H'7'
         AH    R13,SELEN
         CLI   SENDCMD,X'00'
         BE    C101
         CLI   SENDCMD,X'01'
         BE    C101
         CLI   SENDCMD,X'11'
         BE    C101
         CLI   SENDCMD,X'13'
         BE    C101
         CLI   SENDCMD,X'15'
         BE    C101
         CLI   SENDCMD,X'17'
         BE    C101
*        CLI   SENDCMD,X'16'
* AUF USER WRITE X'36' WIRD MIT X'41' GEANTWORT (GEN BEI DCAM)
*        BNE   C101
         MVI   SENDCMD,X'41'
C101     L     R14,USCID
         YSEND RPB=(R5),AREA=SENDCMD,AREALN=(R13),AID=(R7),CID=(R14)
         CLM   R15,B'1001',=X'0000'
         BNE   C900
* USNEA WIRD MIT ASYN NACHRICHT VORBELEGT
         MVI   USNEA,X'36'
*
         B     C300
C900     MVC   YERRTEXT,=CL20'A/YREC/YSEN/SEQ'
         BAS   R14,YFEHLER
         B     C200
C120     MVC   SEKEY(4),USSEQ
         MVC   SEKEY+4(4),USKEY1
         L     R12,=A(FCBSEQ)
         USING FCBSEQ,R12
         GETKY FCBSEQ,SEDAT
         GET   FCBSEQ,SEDAT
         CLC   USSEQ(4),SEKEY
         BNE   C200
         MVC   USKEY1,SEKEY+4
         MVC   SENDCMD1,SECMD
         XR    R13,R13
         LH    R13,SELEN
         SH    R13,=H'12'
C121     L     R14,USCID
         YSEND RPB=(R5),AREA=SENDCMD1,AREALN=(R13),AID=(R7),CID=(R14)
         CLM   R15,B'1001',=X'0000'
         BE    C300
         MVC   YERRTEXT,=CL20'A/YREC/YSEN/SEQ/UC'
         BAS   R14,YFEHLER
         B     C200
C200     MVC   USSEQ,=C'0000'         !!!!!!!!!!!!!!!!
         MVC   USKEY1,=C'0000'
*
         ENTRY C200    MCP002  !!!!!!!!!!!!!
C300     EQU   *
         L     R14,USCID
         YRECEIVE RPB=(R5),AAREA=(R2),EID=(R6),AID=(R7),CID=(R14)
         CLM   R15,B'1000',=X'00'
         BE    W6
         MVC   YERRTEXT,=CL20'A/YREC/YREC'
         BAS   R14,YFEHLER
W6       LA    R7,USCO
         SOLSIG EIID=(R6),COID=(R7),LIFETIM=43200
         CLM   R15,B'1001',=X'0000'
         BE    W7
         MVC   YERRTEXT,=CL20'A/YREC/SOLS'
         BAS   R14,YFEHLER
*
W7       RETCO
         SPACE
*---------------------------------  FEHLER  ------------------------*
YFEHLER  EQU   *
         ST    14,YBRBACK
         ST    15,YERR15
         UNPK  YERRR15,YERR15(5)
         TR    YERRR15,YHX-240
         WROUT YERRMSG,YTERME
         MVC   YERRTEX1,=CL32' '              FELD LOESCHEN
* BEI TOVAL ABGELAUFEN (CIRKA ALLE 6 STUNDEN)
* WIRD KEINE FM AUSGEGEBEN
         CLC   YERR15,=X'04001000'
         BE    YTERME
         CLC   YERR15,=X'10040800'
         BNE   YTERME
         PASS
         PASS
         PASS
         PASS
         MVC   YERRTEXT,=CL20'WAIT '
         WROUT YERRMSG,YTERME
YTERME   L     R14,YBRBACK
         BR    R14
*------------------ EINTRAG IN DIAG-TAB ----------------------------*
YUPDIAUP EQU   *
         LA    R14,4(R14)
         STM   0,15,0(R14)      REGISTER VOR UP-AUFRUF (NUR 64 BYTE!!)
         LA    R14,68(R14)               LEN 68 BYTES  *DIA
         L     R12,=A(DIATABE)
         CL    R14,0(R12)
         BL    YUPDIAUE
         L     R12,=A(UDIATBA)
         L     R14,0(R12)       TABANFANG
YUPDIAUE EQU   *
         L     R12,=A(DIATABA)  AKT. POINTER DIAGTAB
         ST    R14,0(R12)       WRAP AROUND IN DIAG-TAB
         MVC   0(4,R14),=C'EEEE'    EEEE NACH LETZTEM EINTRAG
         BR    R13
         DROP  R12
*---------------------------------  KMASKE  ------------------------*
         DC    3A(0)
YKMASKE  EQU   *
         ST    R13,YKMASKE-4    SAVEN
         ST    R7,YKMASKE-8
         ST    R2,YKMASKE-12
         L     R13,YKMASKA
         BASR  R7,R13
         LTR   R15,R15   <> 0       FEHLER GES. IN MODUL CPKMASK??
         BZ    YKMASKEE
         BAS   R14,YFEHLER
YKMASKEE L     R13,YKMASKE-4
         L     R7,YKMASKE-8
         L     R2,YKMASKE-12
         BR    R13
         DS    0F
*----------------------------------  TRACE  ------------------------*
YTRACOUT EQU   *
         ST    14,YTRACOUT-4
         GDATE TOD=TRTIM
         MVC   TRBOUT+4(8),TRTIM
         MVC   TRBOUT+12(1),=C':'
         MVC   TRBOUT+13(4),USPAC
         MVC   TRBOUT+17(1),=C':'
         MVC   TRBOUT+18(8),USCPNAME
         MVC   TRBOUT+26(1),=C':'
*
         UNPK  TRCH(15),0(8,R2)
         TR    TRCH,TRCTAB-240
         MVC   TRBOUT+27(14),TRCH
         UNPK  TRCH(15),7(8,R2)
         TR    TRCH,TRCTAB-240
         MVC   TRBOUT+41(14),TRCH
         UNPK  TRCH(15),14(8,R2)
         TR    TRCH,TRCTAB-240
         MVC   TRBOUT+55(14),TRCH
         UNPK  TRCH(15),21(8,R2)
         TR    TRCH,TRCTAB-240
         MVC   TRBOUT+69(14),TRCH
         UNPK  TRCH(15),28(8,R2)
         TR    TRCH,TRCTAB-240
         MVC   TRBOUT+83(14),TRCH
         UNPK  TRCH(15),35(8,R2)
         TR    TRCH,TRCTAB-240
         MVC   TRBOUT+97(14),TRCH
         UNPK  TRCH(15),42(8,R2)
         TR    TRCH,TRCTAB-240
         MVC   TRBOUT+111(14),TRCH
         UNPK  TRCH(15),49(8,R2)
         TR    TRCH,TRCTAB-240
         MVC   TRBOUT+125(14),TRCH
         MVC   TRBOUT+139(1),=C':'
         MVC   TRBOUT+140(56),0(R2)
         WRLST TRBOUTL,YTRACEE
YTRACEE  L     R14,YTRACOUT-4
         BR    R14
         SPACE
*-------------------------------------------------------------------*
*  DEFINITIONEN                                                     *
*-------------------------------------------------------------------*
         DS    0F
YKMASKA  DC    V(CPKMASK)        CPKMASK
MVCFYR   DS    F
RPBAYR   DS    F
FDBKYR   DS    F
YRLEN    DS    F
YRECO    DS    F
YREEI    DS    F
*-- FEHLER ---*
YBRBACK  DC    A(0)     SAVE
YERR15   DS    F
         DS    0F
YHX      DC    C'0123456789ABCDEF'
         DS    0F
YERRMSG  DC    Y(YERRMSGE-YERRMSG)
         DC    C'   %  ZCP0006 CP-ERROR AT:'
YERRTEXT DS    CL20
         DC    C'  RC:'
YERRR15  DS    L9
YERRTEX1 DC    CL32' '
YERRMSGE EQU   *-1
         ORG
*--------------*
         DS    0F
TRCTAB   DC    C'0123456789ABCDEF'
         DS    0F
TRTIM    DS    CL8
TRCH     DS    CL16
         DS    0F
TRBOUTL  DC    Y(TRBOUTLE-TRBOUTL)
         DS    CL2
         DC    X'01'
TRBOUT   DS    CL196
TRBOUTLE EQU   *
         DS    0F
*-- SEQ DAT  --*
SENDCMD  DS    CL8
         DC    X'4040484040306740436644'
SENDCMD1 DS    CL72
         DS    F
SEDAT    DS    0CL84
SELEN    DS    H
         DS    CL2
SEKEY    DS    CL8
SECMD    DS    CL72
SEFREE   DS    CL50 
         ENTRY SEKEY
*-------------------------------------------------------------------*
*  D S E C T S                                                      *
*-------------------------------------------------------------------*
*  ZENTRALE TABELLEN *
         STATEIN
         EJECT
         USEREIN
         END