Yrecasy
<syntaxhighlight lang="asm">
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