Cpbufh

Aus Si:Wiki von Siegrist SystemLösungen - Informatik und Rezepte
Zur Navigation springen Zur Suche springen

<syntaxhighlight lang="asm">

CPBUFH CSECT RESIDENT

  • MANUELLE ANPASSUNG BETR. ADDR0-FALLE ->> SIEHE DSECT STATEIN.
    • V3.0AK3
  • FEHLERAUSGABE FUER LOG DATEI MIT FDBK.
  • AENDERUNGEN FUER TYP 'PDN' = CATS-VERBINDUNG. GEKENNZEICHNET
  • MIT 'CATS'.
    • V2.1B00
  • WENN 'WAIT FOR GO' WIRD DER LEVEL BEIM SOLSIG NUN NICHT MEHR
  • GESENKT WEEGEN TEILWEISE CP ABSTURTZ (WAEHREND DEM SOLSIG KONNTE
  • ES VORKOMMEN DASS FUER DIESEN PARTNER DIE LOSCON ROUTIENE ANLIEF
  • UND SOMIT DIE SEITEN FREIGEGEBEN WURDEN, DANN HATS GKNALLT).
    • V1.3D61
  • DA WAEHREND DEM SOLSIG LEVEL 5 GILT, KANN IN DER ZWISCHENZEIT DIE
  • SEITE WEG SEIN ->> DUMP. JETZT WIRD DER ZUSTAND DER SEITE MIT MINF
  • ABGEFRAGT.
    • V1.3D60
  • FEHLER 'CPBUFH-ERROR(ABSTURZ)' BEHOBEN. RETCO -> B RETCO.
  • BEI RETCO WURDE RUECKSPRUNGADR ZERSTOERT. (LABEL=BACK)
    • V1.3D20
  • ANPASSUNGEN AN 31-BIT ADR-MODUS
    • V1.3D10
  • DIE K3 SEND UND KDCLAST MELDUNG
  • WERDEN EIN PAR BITS IM NK ANGEPASST DA EVENTUELLE
  • PROBLEME BEIM EDT EINSTEHEN ??
    • 89.03.09 O.K
  • WENN EINMAL EIN K3/ ODER EIN KDCLAST AN EINEN
  • PARTNER GESCHICKT WIRD, WIRD NEABT PROTOKOLL AUF
  • '36' GESETZT UM BEI DER NAECHSTEN EINGABE EINE ASYCHRONE
  • EINGABE NACHRICHT ZU ERREICHEN
  • 89.03.06 O.K **
  • WEGWN ADRESSFEHLER BEI VIRTUELLEM OVERFLOW (O.A.??) WIRD
  • EINE ADRESSVALIDIERUNG AN 3 KRITISCHEN STELLEN GEMACHT
  • 89.02.08 P.S (V1.2C06)
  • AENDRURN IM UCONHEAD
  • WAR - ZEICHEN IM PAR00L WAR MIT 00 VORBELEGT
  • SIEHE MCP002 (V1.2C01)
  • 89.01.12 O.K ***
  • ABFRAGE BEI NACHRICHT AUF TERMINAL WEITERLEITEN WAR FALSCH;
  • ES WURDE XAKTPID AUF <> 0 ABGEFRAGT , OB PARTNER NOCH AKTIV
  • WAR IST NICHT ABGEFRAGT WORDEN (GEAENDERT AUF ZUSFREE)
  • 88.11.03 P.S ***
  • LIFETIME AUF 10 SEK ERHHOEHT.
  • FEHLER1 AUSGANG EINGEFUHERT UM AKT CELL AUF NULL SETZEN BEI FEHLER
  • NEUAUFBAU
  • 88.10.19 P.S ***
  • DA SICH DAS CP AB UND AN VERABSCHIEDETE
  • WERDEN DIE FEHLERAUSGAENGE (WENN SOLSIG ABGELAUFEN)
  • UM DENN ANSPRUNG DER FEHLERROUTINE ERWEITERT
  • (ANSTELLE RETCO --> B FEHLER, BEI X00S11U,X00S11,X00S11X,X00S11Y)
  • DA UNTER UMSTAENDEN DER ASYN RECEIVE FUER DIE TERMINALS VERLOREN GING
  • WEITERHIN WURDE EIN AUSGANG "BACK" GESCHAFFEN DER NUR RETCO MACHT,
  • FUER DEN FALL DAS DIE LOSCON ROTINE DURCHLAUFEN WIRD WAEHREND
  • DER TASK AUF DEM SOLSIG STEHT
  • 88.10.12 O.K
  • WEGEN UEBERSCHREIBEN LA1 PARAM-BEREICHE BEI AUSGABE MIT PARAM0
  • AUF PAR00L UMSTELLEN
  • 88.11.14 P.S ***
        PRINT NOGEN,BASE
  • ----------------------------------------------------------------------*
        • 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

CPBUFH AMODE ANY CPBUFH RMODE ANY

    1. BAL OPSYN ##BAS
    2. BALR OPSYN ##BASR
  • ---------------------------------------------------------------------*
        USING *,R15
        USING ZUSZTAB,R4
        USING XSTATAB,R3
        STM   R8,R12,SAVTAB
        ST    R14,SAV14
        SPACE
        USING DSSIMANF,R8,R9

DSSIMANF BASR R8,0

        BCTR  R8,R0
        BCTR  R8,R0
        LA    R1,4095
        LA    R9,1(R8,R1)
        DROP  15
        B     BEG
  • ----------------------------------------------------------------------*
      • PUFFER-VERWALTUNG ***
  • ----------------------------------------------------------------------*
        CNOP  0,4

BEG EQU *

        CNOP  0,4

X000 EQU *

        L    R5,ZUSRES
        CH   R5,=H'3'
        BE   NEUAUF
        L     R5,ZAAREA1X
  • CLC ZUSTYP,=C'TIAM'
  • BE ISSYSNU
  • CLC ZUSTYP,=C'U/D*'
  • BE NOMSKUDU
        CLC   ZUSTYP,=C'UCON'       AUCH PDN  ** CATS -> ISSYSNU
        BNE   ISSYSNU
        SH    R5,=H'22'                                      14.11.88
        MVC   0(22,R5),UCONHEAD                              14.11.88
  • KORREKTUR FEHLERHAFTE UCON AUSGABE (NORMAL HELL/ HALBHELL)
  • FUER "%" ERSTES ZEICHEN UCONNACHRICHT
  • WIRD HALBHELLGESTEUERT (1DC8)
  • FUER "?" NORMALHELL (1D7C)
  • AM ENDE UCONNACHRICHT WIRD GENERELL AUF HALBHELL GESTELLT
  • (1DC8)
        MVC   20(2,R5),=X'1DC8'       * HALBHELL              14.11.88
  • BIST DU FRAGE "?"
        CLI   22(R5),C'?'                                     14.11.88
        BNE   W0
        MVC   20(2,R5),=X'1D7C'                               14.11.88

W0 EQU *

        L     R6,ZAAREALN
  • ACHTUNG LAENGE UM 2 FGROESSER
        LA    R6,26(R6)                                       14.11.88
        ST    R6,ZAAREALN
        LA    R6,0(R5,R6)
        SH    R6,=H'4'
        MVC   0(4,R6),=X'1DC81ED7'
  • ENDE KORR

ISSYSNU ST R5,ZAAREA1

        L     R10,ZAAREA1
        B     NOMSK

NOMSKUDU EQU *

        ICM   R15,B'0001',0(R5)
        X     R15,=A(X'40')
        LA    R15,2(R15)
        SH    R5,=H'1'
        ST    R5,ZAAREA1
        STCM  R15,B'0001',0(R5)
        L     R5,ZAAREALN
        LA    R5,1(R5)
        ST    R5,ZAAREALN

NOMSK EQU *

        L     R5,ZUSECELA
        LTR   R5,R5             1. ZELLE IM BUFFER??
        BNZ   NCELLDA
  • --- 1. CELL IN BUFFER -----------------------------------------*

FCELL L R5,ZUSECELA

        LA    R5,1(R5)          + 1 CELL
        ST    R5,ZUSECELA
        L     R15,ZBUFANF       JA !!
        ST    R15,ZACTCELA      SAVE ACT CELL  IF 1. CELL
        ST    R15,ZFRECELA      1. FREE CELL
        ST    R15,ZLSTCELA      LAST CELL
        XR    R2,R2
        STCM  R2,3,8(R15)    LETZTE ZELLE   BYTE 8-9 =0
        L     R14,ZAAREALN
        LA    R15,10(R14,R15)
        XR    R14,R14
        B     FCNHAC1

NCELLDA EQU *

  • --- N. CELL IN BUFFER -----------------------------------------*
        LA    R5,1(R5)          + 1 CELL
        ST    R5,ZUSECELA
        L     R5,ZLSTCELA
        LA    R1,1
        LNR   R2,R1
        STCM  R2,3,8(R5)        NICHT LETZTE ZELLE
  • --- PUFFER AUSLAST PRUEFEN -----------------------------------*
  • ---- VERWALTUNS INFO GESPLITTET ?? ---*
        L     R15,ZFRECELA
        L     R13,ZBUFEND
        SR    R13,R15
        LA    R1,10          VERWALT.INFO
        CR    R13,R1          WIRD VERWALT. INFO GESPLITTET (OFLOW)??
        BNL   NOSPLVI         NO !!

SPLVI L R1,ZBUFANF JA !! # BYTES < 10 BIS BUFEND

        ST    R1,ZFRECELA     ZELLE AUF BUFFANF SETZEN
        MVI   OKZ,X'10'        ERGIBT OFLOW
        L     R2,ZLSTCELA
        STCM  R1,15,0(R2)    ZEIGER AUS LETZTER ZELLE KORRIG.
        LA    R15,1
        LNR   R14,R15
        STCM  R14,3,6(R2)     LEN 2 X'FFFF' IF SPLIT ; NEUE ZELLE
  • = BUFFER ANFANG
  • --- VERW.INFO NICHT GESPL. ---*

NOSPLVI EQU *

        L     R15,ZFRECELA
        L     R14,ZAAREALN       DATENLAENGE
        LA    R15,10(R14,R15)     + 10 BYTE VERW.FOLGEZ.
        L     R13,ZBUFEND        BUFFER END
        CR    R13,R15
        BH    NBOFLOW            NO
  • --- ZELLEN UEBERLAPPUNG BEI OFLOW ??? ------------------------*
        MVI   LKZ,X'10'
        SR    R15,R13            . [A(ZFRECELA) + ZAAREALN + 8
        L     R13,ZBUFANF        .  -A(ZBUFEND) + A(ZBUFANF) ]
        LA    R15,0(R13,R15)     .
        L     R13,ZACTCELA
        ST    R15,NFRECEL
        LR    R1,R13

Z1 CLI OKZ,X'00'

        BE    XA000
  • ZWEUTER OFLOW ACTCEL = 1 NACH IM BUFFER

XA002 XR R2,R2

        XR    R1,R1
        ICM   R1,3,8(R13)       LEZTZE ZELLE ??
        BZ    XFCNHAC            JA
        ICM   R2,3,6(R13)       ACTCELL OVERFLOW ??
        BNZ   XA003             JA !!
        XR    R1,R1
        XR    R5,R5
        ICM   R5,B'1000',ZBUFANF   |
        ICM   R1,B'1000',0(R13)    |
        XR    R1,R5                 >  ADRESSVALIDIERUNG
        BNZ   ADRERR               |
        ICM   R1,15,0(R13)             NO !!
  • ---- UEBERSCHR. ZELLEN ABZAEHLEN **
        L     R5,ZUSECELA
        SH    R5,=H'1'           - 1 CELL
        ST    R5,ZUSECELA
        LR    R13,R1            NEXT ACT CELL
        CLI   OKZ,X'00'
        BE    XA000
        CR    R15,R1
        BL    XA002
        B     XA000             WEITER PRUEFEN

XA003 XR R1,R1

        XR    R5,R5
        ICM   R5,B'1000',ZBUFANF   |
        ICM   R1,B'1000',0(R13)    |
        XR    R1,R5                 >  ADRESSVALIDIERUNG
        BNZ   ADRERR               |
        ICM   R1,15,0(13)       CELL GESPLITTET / NEXT ACTCELL LADEN
  • ---- UEBERSCHR. ZELLEN ABZAEHLEN **
        L     R5,ZUSECELA
        SH    R5,=H'1'           - 1 CELL
        ST    R5,ZUSECELA
        CR    R15,R1            BUFANF / NEW FREE CELL > ACT CELL ??
        BL    SFCNHAC            NEIN !!

OKX001 MVI OKZ,X'00' NEXT ACT CELL VOR FREE CELL

        LR    R13,R1            NEXT ACT CELL
        B     XA002             NACH OFLOW WEITERE ZELLEN UEBERSCHR.

XA000 CR R15,R1 BUFANF / NEW FREE CELL > ACT CELL ??

        BL    SFCNHAC            NEIN !!
        LR    R13,R1            NEXT ACT CELL
        B     XA002             NACH OFLOW WEITERE ZELLEN UEBERSCHR.
  • --- MVCL LLEN BEI OFLOW ---*

XFCNHAC L R15,ZFRECELA

        ST    R15,ZACTCELA      MOMENTANE ZELLE ZU ACTCELL (EINZIGE)
        B     FCNHAC

SFCNHAC ST R1,ZACTCELA SICHERN FCNHAC EQU *

        L     R15,ZFRECELA
        ST    R15,ZLSTCELA       LAST CELL SICHERN
        L     R13,ZBUFEND
        SR    R13,R15
        SH    R13,=H'10'          - VORSPANN
        STCM  R13,B'0011',4(R15)
        ST    R13,MVCLR1         LAENGE 1.TEIL
        L     R14,ZAAREALN
        SR    R14,R13
        STCM  R14,3,6(R15)       LEN 2. TEIL IN ZELLE
        XR    R1,R1
        XR    R10,R10
        XR    R12,R12
        STCM  R1,3,8(R15)        LETZTE ZELLE
        ST    R14,MVCLR2         LAENE 2.TEIL
        L     R12,ZAAREA1        SENDADR1
        L     R10,ZFRECELA       EMPFADR1
        LA    R10,10(R10)         VORSPANN
        L     R11,MVCLR1
        L     R13,MVCLR1
        MVCL  R10,R12
        L     R12,ZAAREA1        SENDADR1
        L     R11,MVCLR1
        LA    R12,0(R11,R12)     SENDADR2
        XR    R10,R10
        L     R10,ZBUFANF        EMPFADR2
        L     R11,MVCLR2
        L     R13,MVCLR2
        MVCL  R10,R12
        L     R1,NFRECEL
        L     R10,ZFRECELA
        STCM  R1,B'1111',0(R10)  UPDATE FOLGEZELLE
        MVI   OKZ,X'10'          ACTCEL NACH FRECELL
        ST    R1,ZFRECELA       SAVE  NEXT FREE CELL
        B     XWOHIN
  • --- ZELLEN UEBERLAPPUNG OHNE OFLOW  ???? ---------------------*

NBOFLOW EQU *

        MVI   LKZ,X'00'
        CLI   OKZ,X'00'
        BE    FCNHAC1
        L     R14,ZACTCELA
        CR    R15,R14            NEW FREE CELL > ACT CELL ?
        BL    FCNHAC1            NO !

X00PR XR R1,R1

        ICM   R1,3,8(R14)        LETZTE ZELLE ??
        BZ    XFCNHAC1            JA
        XR    R1,R1
        XR    R5,R5
        ICM   R5,B'1000',ZBUFANF  ||
        ICM   R1,B'1000',0(R14)   ||
        XR    R1,R5                >>  ADRESSVALIDIERUNG
        BNZ   ADRERR              ||
        ICM   R1,15,0(R14)       NEXT ACT CELL
  • ---- UEBERSCHR. ZELLEN ABZAEHLEN **
        L     R5,ZUSECELA
        SH    R5,=H'1'           - 1 CELL
        ST    R5,ZUSECELA
        CR    R15,R1             NEW FREE CELL > NEXT ACTCELL      ?
        BL    X00NOA               NO !
        XR    R2,R2
        ICM   R2,3,6(R14)       ACTCELL GESPLITTET ??
        BZ    X00Y1A             NO !!

OKZ002 MVI OKZ,X'00'

        B     X00NOA             JA !!

X00Y1A LR R14,R1

        B     X00PR              WEITER PRUEFEN

X00NOA LR R12,R1 NEW ACTCELL

        ST    R12,ZACTCELA       NEUE AKT. ZELLE
        B     FCNHAC1

XFCNHAC1 L R14,ZFRECELA

        ST    R14,ZACTCELA       EINZIGE ZELLE IN BUFFER

FCNHAC1 EQU *

        L     R14,ZFRECELA
        ST    R14,ZLSTCELA         SAVE LASTCELL
        STCM  R15,B'1111',0(R14)  UPDATE FOLGEZELLE
        ST    R15,NFRECEL        SAVE FOR NEXT FREE CELL
        XR    R1,R1
        STCM  R1,3,8(R14)        LETZTE ZELLE
        L     R15,ZAAREALN
        STCM  R15,3,4(R14)       DATENLAENGE 2 BYTES
        XR    R15,R15
        STCM  R15,3,6(R14)       KEIN SPLITTING  BIT 16-32 = 0
  • ---- MVCL OHNE OFLOW ------*
        LR    R10,R14
        LA    R10,10(R10)         + VORSPANN
        L     R11,ZAAREALN
        LR    R13,R11
        L     R12,ZAAREA1
        MVCL  R10,R12
        L     R14,NFRECEL
        ST    R14,ZFRECELA         SAV NEXT FREE CELL
        B     XWOHIN
  • ----------------------------------------------------------------------*

XWOHIN EQU *

        CLC   ZPIDAKT,XAKTPID     AKTUELLER PID ZUGESCH.??
        BE    X001                NEIN !
        B     RETCO
  • ---- TERMINAL-PUFFER AKTUALISIEREN ---------------------------*

X001 EQU *

        CLI   LKZ,X'10'
        BE    X001Z
        MVI   OKZ,X'00'

X001Z EQU *

        L     R5,ZLSTCELA
        ST    R5,ZACTCELA
        XR    R6,R6
        ST    R6,ZUSECELA
        L     R5,ZAAREALN         AAREALN
        L     R6,ZAAREA1
        L     R10,XSRPBA         RPB
        LA    R11,XSTATEI        EVENT EID
        L     R14,XAIDCP
        L     R12,XSTATCID
        CLC   ZUSTYP,=C'TIAM'
        BE    W230
        CLC   ZUSTYP,=C'U/D '
        BE    W230
        CLC   ZUSTYP,=C'PDN '
        BE    W230PDN
  • VOR AUSGABE GEHE IN LINE MODE (UCON)

YSENDBHU CLI ZUSFREE,':'

        BNE   BACK
        CLC   ZPIDAKT,XAKTPID     AKTUELLER PID ZUGESCH.??
        BNE   X00S11U
        CLI   ZUSREF,C'*'
        BE    X004U
        YSEND RPB=(R10),AREA=(R6),AREALN=(R5),EID=(R11),AID=(R14),    C
              CID=(R12)
        CLM   R15,B'1110',=X'10040C'
        BNE   CLMU
        MVI   XSOL,X'FF'      SOLSIG IST
  • MVC XSOLPID(2),ZPIDAKT MIT DIESEM PID
  • L R13,XUSRPAGA SAVE FALLS PAGE NACH SOLSIG WEG IST
  • LEVCO NEWLV=5
        SOLSIG EIID=(R11),COND=UNCOND,LIFETIM=10
        CLM   R15,B'0001',=X'00'
        BNE   X00S11U
  • LEVCO NEWLV=10
  • L R15,XUSRPAGA
  • >> WENN DIE SEITE WEG IST DANN KNALLT'S HIER --> STXERR-MODUL
  • STXT1 NOP REQMERR PAGE NOCH ALLOCATED ????
  • NEIN !! SOFORT RETCO
        XC    XSOL(1),XSOL
  • XC XSOLPID(2),XSOLPID LOESCHEN
        B     YSENDBHU

X00S11U EQU * LEVCO NEWLV=10

  • L R15,XUSRPAGA
  • >> WENN DIE SEITE WEG IST DANN KNALLT'S HIER --> STXERR-MODUL
  • STXT2 NOP REQMERR PAGE NOCH ALLOCATED ????
  • NEIN !! SOFORT RETCO
        XC    XSOL(1),XSOL
  • XC XSOLPID(2),XSOLPID LOESCHEN
        MVC   ZUSERR,=CL15'BUF/SO/YSENDBHU'
        B     FEHLER

CLMU CLM R15,B'1001',=X'0000'

        BE    X004U
        MVC   ZUSERR,=CL15'BUF/SE/YSENDBHU'
        B     FEHLER

X004U EQU *

        B     RETCO

W230PDN EQU * ** CATS

        SH    R6,=H'9'             ** CATS
        MVC   0(10,R6),CATSHEAD    ** CATS    NK VOR PAG
        LA    R5,9(R5)        +9   ** CATS
        B     YSENDBH

W230 EQU *

        SH    R5,=H'9'        - NEABT
        LA    R6,9(R6)        -NEABT

YSENDBH CLI ZUSFREE,C':'

        BNE   BACK
        CLC   ZPIDAKT,XAKTPID     AKTUELLER PID ZUGESCH.??
        BNE   X00S11
        YSEND RPB=(R10),AREA=(R6),AREALN=(R5),EID=(R11),AID=(R14),    C
              CID=(R12)
        CLM   R15,B'1110',=X'10040C'
        BNE   CLM
        MVI   XSOL,X'FF'      SOLSIG IST
  • MVC XSOLPID(2),ZPIDAKT MIT DIESEM PID
  • HANG1 L R13,XUSRPAGA SAVE FALLS PAGE NACH SOLSIG WEG IST
  • LEVCO NEWLV=5
        SOLSIG EIID=(R11),COND=UNCOND,LIFETIM=10

HANG2 CLM R15,B'0001',=X'00'

        BNE   X00S11
  • LEVCO NEWLV=10
  • L R15,XUSRPAGA
  • >> WENN DIE SEITE WEG IST DANN KNALLT'S HIER --> STXERR-MODUL
  • STXT3 NOP REQMERR PAGE NOCH ALLOCATED ????
  • NEIN !! SOFORT RETCO
        XC    XSOL(1),XSOL
  • XC XSOLPID(2),XSOLPID LOESCHEN
        B     YSENDBH

X00S11 EQU * LEVCO NEWLV=10

  • L R15,XUSRPAGA
  • >> WENN DIE SEITE WEG IST DANN KNALLT'S HIER --> STXERR-MODUL
  • STXT4 NOP REQMERR PAGE NOCH ALLOCATED ????
  • NEIN !! SOFORT RETCO
        XC    XSOL(1),XSOL
  • XC XSOLPID(2),XSOLPID LOESCHEN
        MVC   ZUSERR,=CL15'BUF/SO/YSENDBH'
        B     FEHLER

BACK LEVCO NEWLV=10

        B     RETCO

CLM CLM R15,B'1001',=X'0000'

        BE    X004
        MVC   ZUSERR,=CL15'BUF/SE/YSENDBH'
        B     FEHLER

X004 EQU *

        B     RETCO
        CNOP  0,4

NEUAUF EQU *

  • MVI MSK,X'00'
        L     R10,ZUSECELA
        LTR   R10,R10
        BNZ   X00ISYS
        CLC   ZUSTYP,=C'PDN '        ** CATS !!!!!!
        BE    X00PSYS
        CLI   ZNEABT,X'37'       BEI CATS <> X'37'  ** CATS
        BNE   X00ISYS
        CLI   ZUSREF,C'Y'
        BE    X00ISYS
  • MVI MSK,X'FF' MASKE

X00NSYS L R10,Z00XAID

        L     R11,ZCIDANW
        CLC   ZUSTYP,=C'U/D '
        MVC   DSEND(8),ZNEABT
        BE    UDIS
        XI    DSEND,X'20'
        MVC   DSEND+8(11),K3SEND
        LA    R5,DSEND
        LA    R6,TRPB
        YSEND RPB=(R6),CID=(R11),AID=(R10),AREA=(R5),AREALN=19
        LTR   R15,R15
        BZ    X00NF
        MVC   ZUSERR,=CL15'BUF/SE/X00NSYS'
        B     FEHLER

X00NF XR R6,R6

        ST    R6,ZUSECELA
  • USNEA WIRD MIT ASYN NACHRICHT VORBELEGT
        MVI   ZNEABT,X'36'
        B     RETCO

X00PSYS L R10,Z00XAID ** CATS CATS CATS

        L     R11,ZCIDANW
        MVC   DSEND(11),K3CATS
        LA    R5,DSEND
        LA    R6,TRPB
        YSEND RPB=(R6),CID=(R11),AID=(R10),AREA=(R5),AREALN=11
        LTR   R15,R15
        BZ    X00PF
        MVC   ZUSERR,=CL15'BUF/SE/X00PSYS'
        B     FEHLER

X00PF XR R6,R6

        ST    R6,ZUSECELA
  • USNEA WIRD MIT ASYN NACHRICHT VORBELEGT
  • MVI ZNEABT,X'36'
        B     RETCO

UDIS MVC DSEND+8(18),KDCSEND

        XI    DSEND,X'20'
        LA    R5,DSEND
        LA    R6,TRPB
        YSEND RPB=(R6),CID=(R11),AID=(R10),AREA=(R5),AREALN=26
        LTR   R15,R15
        BZ    UDISNF
        MVC   ZUSERR,=CL15'BUF/SE/UDIS'
        B     FEHLER

UDISNF XR R6,R6

        ST    R6,ZUSECELA
  • USNEA WIRD MIT ASYN NACHRICHT VORBELEGT
        MVI   ZNEABT,X'36'
        B     RETCO

X00ISYS L R15,ZACTCELA

        CNOP  0,4

X0011 EQU *

        XR    R14,R14
        LR    R2,R15

X0012 XR R14,R14

        ICM   R14,B'1111',0(R15)
        ST    R14,FOLGSAV
        XR    R14,R14
        ICM   R14,B'0011',6(R15)
        BZ    NSP1
        B     NEUSPLIT

NSP1 XR R10,R10

        LA    R12,19(R15)            DATEN
        LR    R6,R12              DATEN

HIER XR R5,R5

        ICM   R5,B'0011',4(R15)   AAREALN
        LA    R5,0(R5,R10)        1.+2. LEN ; VON NEUSPLIT BEIDE BEL.
        LA    R10,TRPB
        LA    R11,XSTATEI        EVENT EID
        L     R14,XAIDCP
        L     R12,XSTATCID
        CLC   ZUSTYP,=C'TIAM'
        BE    W230Y
        CLC   ZUSTYP,=C'U/D '
        BE    W230Y

W229 EQU *

  • VOR AUSGABE GEHE IN LINE MODE (UCON)
        SH    R6,=H'9'

YSENDBHX YSEND RPB=(R10),AREA=(R6),AREALN=(R5),EID=(R11),AID=(R14), C

              CID=(R12)
        CLM   R15,B'1110',=X'10040C'
        BNE   CLMX
        SOLSIG EIID=(R11),COND=UNCOND,LIFETIM=10
        CLM   R15,B'0001',=X'00'
        BNE   X00S11X
        B     YSENDBHX

X00S11X EQU *

        MVC   ZUSERR,=CL15'BUF/SO/YSENDBHX'
        B     FEHLER1

CLMX CLM R15,B'1001',=X'0000'

        BE    X004X
        MVC   ZUSERR,=CL15'BUF/SE/YSENDBHX'
        B     FEHLER1

X004X EQU *

        XR    R1,R1
        ICM   R1,3,8(R2)     LETZTE ZELLE ?
        BZ    RETCO1
        L     R15,FOLGSAV
        B     X0011

W230Y EQU *

        SH    R5,=H'9'        - NEABT

YSENDBHY YSEND RPB=(R10),AREA=(R6),AREALN=(R5),EID=(R11),AID=(R14), C

              CID=(R12)
        CLM   R15,B'1110',=X'10040C'
        BNE   CLMY
        SOLSIG EIID=(R11),COND=UNCOND,LIFETIM=10
        CLM   R15,B'0001',=X'00'
        BNE   X00S11Y
        B     YSENDBHY

X00S11Y EQU *

        MVC   ZUSERR,=CL15'BUF/SO/YSENDBHY'
        B     FEHLER1

CLMY CLM R15,B'1001',=X'0000'

        BE    X0041
        MVC   ZUSERR,=CL15'BUF/SE/YSENDBHY'
        B     FEHLER1

X0041 EQU *

        L     R15,FOLGSAV

X00NOP EQU *

        XR    R1,R1
        ICM   R1,3,8(R2)     LETZTE ZELLE ?
        BZ    RETCO37
        B     X0011

RETCO37 EQU *

        CLI   ZNEABT,X'37'
        BE    RETCO1
        B     RETCO
        DS    0F

NEUSPLIT EQU *

        CLM   R14,B'0011',=X'FFFF'
        BE    NSP1         VIRTUELLER OVERFLOW !#$??+*!!
        XR    R10,R10
        ICM   R10,B'0011',4(R15)          AAREALN
        LR    R13,R10
        LA    R12,10(R15)            DATEN
        L     R10,ZDSSBUFA        AAREA1
        LR    R11,R13              LEN
        MVCL  R10,R12             BUFFER -> AAREA1
        XR    R10,R10
        XR    R11,R11
        ICM   R11,3,4(R15)       1.TEIL
        ICM   R10,3,6(R15)       2.TEIL
        LR    R13,R10
        L     R12,ZBUFANF        ANF REST DATEN
        L     R10,ZDSSBUFA        AAREA1
        LA    R10,0(R10,R11)      DIST 2.TEIL
        LR    R11,R13             LENGTH
        MVCL  R10,R12            2.TEIL BUFFER -> AAREA1
        XR    R10,R10
        ICM   R10,3,6(R15)
        L     R6,ZDSSBUFA
        LA    R6,9(R6)
        B     HIER

FEHLER1 EQU *

        ST    R15,ZUSRC
  • CMD '/D %MR'
        MVC   ERRMSG1Z+3(15),ZUSERR
        UNPK  ERRMSG1R,ZUSRC(5)
        TR    ERRMSG1R,BHHX-240
        WROUT ERRMSG1,TERME1

TERME1 EQU *

        B     RETCO1
        DS    0F

FEHLER EQU *

        ST    R15,ZUSRC
        MVC   ERRMSGZ+3(15),ZUSERR
        UNPK  ERRMSGR,ZUSRC(5)
        TR    ERRMSGR,BHHX-240
        WROUT ERRMSG,TERME

TERME EQU *

        B     RETCO
        DS    0F

ADRERR EQU *

        MVI   OKZ,X'00'
        MVI   LKZ,X'00'
        XR    R15,R15
        ST    R15,ZUSRC
        MVC   ZUSERR,=CL15'CPBUFH ADR-ERR'
        WROUT ERRMSG2,TERME2

TERME2 B RETCO1

        WROUT ERRMSG3,RETCO
        RETCO                 HIER MUSS RETCO GEMACHT WERDEN WEIL
  • KEINE SEITE MEHR ALLOCIERT IST !!!!!!

RETCO1 L R5,ZLSTCELA

        ST    R5,ZACTCELA
        XR    R6,R6
        ST    R6,ZUSECELA

RETCO EQU *

        LM    R8,R12,SAVTAB
        L     R14,SAV14
        BR    14
  • ---------------------------------------------------------------------*
      • DEFINITIONEN ***
  • ---------------------------------------------------------------------*
        DS    0F

UCONHEAD DC X'10401B20614040456254005000004121278427981ED8'

        DS    0F

CATSHEAD DC X'0A484F0000004D000000' NK VOR PAG (FST3 40->4D)

  • ZEICHEN 4 VOM NK (AUSG) UND ZEICHEN 6 (ZZ2) GEAENDERT
  • 67 --> 40 43 -- > 41
  • K3SEND DC X'4040480040306740435544' 9

K3SEND DC X'4040480040304040415544' 9 K3CATS DC X'6400C8D67CF04A7CC1E400' 11 KDCSEND DS 0CL18

  • DC X'4040480040306740436644' 9
        DC    X'4040480040304040416644'      9
        DC    C'KDCLAST'
        DS    0F

DSEND DS CL30

        LTORG
        DS    0F

ERRMSG DC Y(ERRMSGE-ERRMSG)

        DC    C'   %  ZCP0006 CPBUFH ERROR'                                       

ERRMSGZ DC C' / 123456789012345'

        DC    C'   RC:'

ERRMSGR DS L9 ERRMSGE EQU *-1

        ORG

ERRMSG1 DC Y(ERRMSGE1-ERRMSG1)

        DC    C'   %  ZCP0006 CPBUFH1 ERROR'                                      

ERRMSG1Z DC C' / 123456789012345'

        DC    C'   RC:'

ERRMSG1R DS L9 ERRMSGE1 EQU *-1

        ORG

ERRMSG2 DC Y(ERRMSGE2-ERRMSG2)

        DC    C'   %  ZCP0006 CPBUFH ERROR (ADRESS-VALIDIERUNG)'                  

ERRMSGE2 EQU *

        DS    0F

ERRMSG3 DC Y(ERRMSGE3-ERRMSG3)

        DC    C'   %  ZCP0006 CPBUFH ERROR (PAGE NOT ALLOCATED)'                  

ERRMSGE3 EQU * BHHX DC C'0123456789ABCDEF' TRPB YRPB

MINF DS 0F MINF1 DS F MINF2 DC F'8' MINF3 DS F MINF4 DS F

BITTAB DS CL4 NUR MIST VON MINF

  • ---------------------------------------------------------------------*
      • D S E C T S ***
  • ---------------------------------------------------------------------*
  • ---- ZENTRALE TABELLEN ------------------------------------------*

ZUSZTAB DSECT USER SPEC ZUSCPNAM DS CL8 ZUSPRO DS CL8 Z00XAID DC F'0' AID FOR CP000X (AKT) DSS <-> ANW ZCIDANW DC F'0' CID FOR ANWENDUNG X ZUSPNA DS CL8 ZUSTYP DS F ZPIDAKT DS H AKT. PID ZUSREF DC X'00' OKZ DC XL1'00'

  • ---- BUFFER SPEZ. ----*

ZBUFANF DC A(0) 0 BUFFER-ANF ZBUFEND DC A(0) +4 BUFFER-END ZDSSBUFA DC A(0) +8 ADR TERMINAL BUFFER 4100 B AAREA SEND ZAAREA1X DC A(0) +16 PR INPUT DCAM INPUT ZAAREALN DS F +24 PR INPUT DCAM INPUT LENGTH ZACTCELA DC A(0) +8 ADR. 1.ACT CELL FOR OUTPUT ZFRECELA DC A(0) +12 ADR. NEXT FREE CELL ZUSECELA DC A(0) +16 ADR. # OF USED CELLS ZLSTCELA DC A(0) ADR. LAST CELL

  • --------------------------*
        DS    CL4

ZNEABT DS CL8 NEABT PROTOKOLL SAVE ZUSRES DS F X'00000001' ASY RECEIVE EINGETR.

  • X'00000002' ACK VON TERMINAL EING.
  • X'00000003' NEUAUFBAU GEWUENSCHT

ZUSRC DS F ZUSERR DS CL15 ZUSFREE DS CL1 ZUSCO DS F ZUSEI DS F ZUSRPBA DS F ZUSCCBA DS F FOLGSAV DS F NFRECEL DS F MVCLR1 DS F MVCLR2 DS F MSK DS XL1 LKZ DS XL1

        DS    CL2

ZAAREA1 DC A(0) SAVTAB DS 5F SAV14 DC A(0)

XSTATAB DSECT STATIONS SPEC REG.2 XSTATPNA DS CL8 XSTATPRO DS CL8 XAIDCP DS F AID --> CP XSTATPW DS CL8 XTERMTYP DS F XSTATCID DS F CID UER TERMINAL --> CP XAKTPID DS H AKTUELLER PID XSTATTID DS H XSTATZZ DS CL1 XSTATK DS CL1 XSRPBAD DC A(0) XCCBA DS F XSTATEI DS F XSRPBA DC A(0) XSOL DC X'00' X'FF'=SOLSIG IN BEA. SONST X'00'

        DS    CL1          RESERVE

XSOLPID DS H PID FUER SOLSIG XSTATFRE DS CL1 XSTATADM DS CL1 XUSRPAGA DS F A(ANFANG BUFFERSEITE FUER PARTNERVERWALTUNG) XUSRPAGE DS F A(ENDE BUFFERSEITE) XSTATPWS DS CL8 PW SAVE STATDEV DS CL8 DEVICE NAME FUER HC STATFORM DS CL8 FORMULAR NAME FUER HC STATHCPG DS F 3 SEITEN FUER HC UND SO STATHCTY DS CL1 'P' = 80 CHAR / REST = 82 CHAR STATCLK DS F CLOCK TIME LAST ENTRY

        DS    0F

CPBUFH CSECT

  • ---------------------------------------------------------------------*

NEABT DS 0XL8

        DS    0D
  • ---------------------------------------------------------------------*
  • - - - - - - - - - - - - - - - - - - BUFFERANF <--------+
  • |
  • |
  • 0 ================== <------------------------------+ |
  • | |
  • A(FOLGEZELLE) ------+ | |
  • | | |
  • 4 ================== | | |
  • | LEN/0 --+ | | |
  • +----- LEN/0 |-------- | | | |
  • | | LEN/0 ----+ | | |
  • | 8 ================== | | | | |
  • | | | | | | | |
  • | | |-+ | | | |
  • |----| DATEN | | | | |
  • | - - - - - - - - - - - -|-|- - - - BUFFEREND <----|--+|
  • | |---+ | | ||
  • | | | | ||
  • ================== <-----+ | ||
  • | ||
  • A(FOLGEZELLE) | ||
  • | ||
  • ================== | ||
  • | LEN/0 | ||
  • LEN/0 |-------- | ||
  • | LEN/0 | ||
  • ================== | ||
  • | ||
  • DATEN | ||
  • | ||
  • ================== <---------------------------+ | ||
  • | | ||
  • ------------------ | | ||
  • A(BUFFERANF) ----------|--|--|+
  • ------------------ | | |
  • A(BUFFEREND) ----------|--|--+
  • ------------------ | |
  • A(1.ACT.CELL) ----------|--+
  • ------------------ |
  • A(1.FREE.CELL) ----------+
  • ------------------
        END