*******************************************************************     00000117
**************************** I E B G E N R 3 **********************     00000217
*********                                                               00000317
* ENTRY  IEBGENR3 =CSECT NAME,CONTROL IS TRANSFERRED FROM GENRT TO      00000417
*                  THIS NAME                                            00000517
*        GENS3COP =NAME OF SWITCH THAT INDICATES WHETHER GENS3 HAS      00000617
*                  TO DO A STRAIGHT COPY OR NOT                         00000717
*        HDCBIN   =NAME OF INPUT DCB AND IS REFERRED TO IN GEN03        00000817
*                  AND GENS3                                            00000917
*        HDCBOUT  =NAME OF OUTPUT DCB AND IS REFERRED TO IN GEN03       00001017
*                  AND GENS3                                            00001117
*********                                                               00001217
* INPUT  REGISTER 1 IS POINTIG TO A TABLE CONTAINING THE ADDRESSES      00001317
*        OF TABLES CONSTRUCTED BY IEBGSCAN                              00001417
*********                                                               00001517
* OUTPUT TRANSFERRING CONTROL TO GEN03 OR GENS3 THE CONTENTS OF         00001617
*        REGISTER 1 IS THE SAME AS AT ENTRY TIME                        00001717
*********                                                               00001817
* EXTRN  IEBGEN03 =NAME OF PROCESSOR FOR CONVENTIONAL DATASETS          00001917
*        IEBGENS3 =NAME OF PROCESSOR FOR SPANNED DATASETS               00002017
*        DDERROR1 =NAME OF MESSAGE USED AS A DIAGNOSTIC WHEN            00002117
*                  DD SASTEMENT NAMES ARE IMPROPERLY SPECIFIED          00002217
*        HMSGEXIT =MESSAGE TO PROVIDE THE USER WITH THE NUMBER OF       00002317
*                  EXITS TAKEN TO A CERTAIN USER LABEL EXIT ROUTINE     00002417
*        HMSGRETC =MESSAGE TO PROVIDE THE USER WITH THE LAST RETURN     00002517
*                  CODE FROM A CERTAIN USER LABEL EXIT ROUTINE          00002617
*        HMSGIOER =MESSAGE GIVEN WHEN THERE IS AN I/O ERROR WHILE       00002717
*                  READING OR WRITING USER LABELS                       00002817
*        HWRMSG   =THE NAME OF THE MESSAGE WRITER                       00002917
*********                                                               00003017
* ERROR CONDITIONS      IEBGENR3 WILL TERMINATE ON THE FOLLOWING        00003117
*                  CONDITIONS                                           00003217
*        1.AFTER PROCESSING HEADER LABELS IF LABELS DATA=ONLY IS        00003317
*          SPECIFIED                                                    00003417
*        2.IF A USER EXIT ROUTINE REQUESTS TERMINATION                  00003517
*        3.IF THE DATA SETS NOT SUCCESFULLY CAN BE OPENED               00003617
*********                                                               00003717
* FUNTION/OPERATION                                                     00003817
*        IF USER EXITS OR LABEL PROCSESING IS SPECIFIED THE DCB         00003917
*        EXIT LISTS ARE ACTIVATED. THEN THE DCB'S ARE OPENED FOR        00004017
*        B S A M  ,TAKING LABEL EXITS IF USER EXITS AND/OR LABEL        00004117
*        PROCESSING IF REQUIRED                                         00004217
*        AFTER BOTH DCB'S ARE OPEN THE RECFM'S OF BOTH DCB'S ARE        00004317
*        COMPARED,AND SO ARE THE LRECL'S AND BLKSIZE'S.                 00004417
*        IF ONE OR BOTH OF THE RECFM'S IS VS/VBS AND THE LRECL'S        00004517
*        AND/OR THE BLKSIZE'S ARE NOT EQUAL OR ANY KIND OF EDITING      00004617
*        OR CONVERSION IS TO BE PERFORMED,THE DCB'S ARE CLOSED AND      00004717
*        RE-OPENED FOR Q S A M .AND AFTER THIS CONTROL IS               00004817
*        TRANSFERRED TO EITHER GEN03 (IN CASE OF CONVENTIONAL           00004917
*        DATA SETS) OR GENS3(IN CASE OF SPANNED DATA SETS )             00005017
*******************************************************************     00005117
         TITLE   'IEBGENR3-PROCESSOR ROOT SEGMENT (RELEASE 17)'         00005317
IEBGENR3 CSECT                                                          00005517
*                                                                A29998 00005619
*                                                                A31435 00035620
*647259,688259                                                  ATM5314 00037620
*                                                                A34101 00045621
*A113059-113259,124259,134759,1348592,143759,143859,171259,      A36140 00047621
*A176259,188359-188959,206759-207159,217261-217323,227259,227261,A36140 00049621
*A258259,258759,265259,266259,268259,268559-268759,268859-       A36140 00051621
*A269159,269259,647759,648359,649759-651259,688759,688859,       A36140 00053621
*A690759-691759,867359,867459                                    A36140 00054021
*A115959-117359,143339-143659,149259,190259-190859,196759        A36140 00054421
*A205459-205859,212759,649769-649809                             A36140 00054821
*C191259,193259,209259,402259                                    A36140 00055221
*D116259,117259,124259,147259,148259,171259,176259-182259,       A36140 00055621
*D227259,258259-264259,265259,266259,268259,268559-273259,275259,A36140 00057621
*D653259-674259,688759,692259-711259                             A36140 00059621
*D118259-122259,149259-153259,190259                             A36140 00061621
*A131759                                                         A44327 00063621
*C359259,422259,457259,49659                                     A44327 00064021
*A216259-216709                                                  A45131 00064521
*D216259                                                         A45131 00065021
*A217279,217280,217285-217645,217855,217963,218387-219115,395759,A48786 00065421
*A395859,402759-402959,812759-814759,858959,897959               A48786 00065500
*D394259,395259,403259,404259,817259                             A48786 00075500
*C860459                                                       @YM02300 00077502
*A274359-27624,276247                                          @YM04133 00085502
*C268559                                                       @YM04133 00088802
*D265259-268259                                                @YM04133 00090802
*A206759,977959                                                @YM03265 00091202
*C274759,275259                                                @AZ07398 00091300
*A017659-017759,141759-142223,142359-142959,188879,            @ZA11962 00091799
*A189199-189543,275359-275459,275879-275919,276251             @ZA11962 00092199
*A613759-614259,869279-869579                                  @ZA11962 00094899
*C018059,142259,188859,274259,275759-275859,275959             @ZA11962 00095699
*D274359-274459                                                @ZA11962 00100599
*A189359-189379,276199-276204                                  @ZA16460 00102599
*A141863-141875,189059-189159,869379-869399,869567             @ZA18366 00104599
*A141879,189251,869459,869579                                  @ZA18366 00106599
*A142060-142090,142224-142226                                  @ZA24127 00107599
*A141876-141881,869469-869470                                  @ZA24162 00108099
*C141871,141879,189059-189159,869459                           @ZA24162 00108599
*A332559-332859,388559-388859,435559-435859,474559-474859      @ZA26660 00108799
*A218457-218459                         @YA19584-@XA20183-(ORG)@ZA26153 00109099
*C218460                                @YA19584-@XA20183-(ORG)@ZA26153 00109299
*D689259                                @YA19584-@XA20183-(ORG)@ZA26153 00109499
*C141863-141867                                                @ZA28426 00109699
*A189399,276209                                                @ZA28777 00109899
*C189359-189379,276199-276204                                  @ZA28777 00110099
*A141759-142329,142409-143039,189079-189111,216389,216539,     @ZA30822 00110299
*A216689,275159-275789,276249-276255,614759-615259,            @ZA30822 00110499
*A692259-692759,869579-869643                                  @ZA30822 00110699
*C188859,533259,534259,613759                                  @ZA30822 00110899
*D141863-142259,142359-142959,189059-189543,274259,            @ZA30822 00111099
*D275359-275959,276251,613759-621259                           @ZA30822 00111299
*C218459                                @YA20777-@XA21726-(ORG)@ZA32107 00111499
* THIS MODULE WAS CREATED IN RELEASE 17 IN SUPPORT OF VRE AND           00112099
* USER LABELS                                                           00117320
*          REGISTER ASSIGNMENTS                                         00125620
R0       EQU   0                                                        00185917
R1       EQU   1                                                        00275917
R2       EQU   2                                                        00365917
R3       EQU   3                                                        00455917
R4       EQU   4                                                        00545917
R5       EQU   5                                                        00635917
R6       EQU   6                                                        00725917
R7       EQU   7                                                        00815917
R8       EQU   8                                                        00905917
R9       EQU   9                                                        00995917
R10      EQU   10                                                       01085917
R11      EQU   11                                                       01175917
R12      EQU   12                                                       01265917
R13      EQU   13                                                       01355917
R14      EQU   14                                                       01445917
R15      EQU   15                                                       01535917
R3START  SAVE  (14,12),T,IEBGENR3-OZ32107                      @ZA32107 01625999
         LR    R2,R15                                                   01715917
         LA    R7,4095(R2)            SET R7 AS SECOND BASEREG @ZA11962 01765900
         LA    R7,1(R7)                INCREASE R7 WITH ONE    @ZA11962 01775999
         USING R3START,R2,R7                                   @ZA11962 01805900
         LA    R3,R3SAVER              STORE REG 13                     01895917
         ST    R3,8(R13)               POINT TO NEW SAVE AREA           01985917
         ST    R13,4(R3)               STOR  REG 13                     02075917
         LR    R13,R3                                                   02165917
         ST    R1,SAVEREG1             SAVE REG1 FOR 03 AND S3          02255917
         L     R3,0(R1)                LOAD EXIT TABLE ADDRESS          02345917
         LR    R4,R1                    SAVE REGISTER 1                 02435917
         MVC   LABPROSW(1),92(R3)      MOVE LABEL PROCC SWITCH          02525917
         TM    LABPROSW,X'FF'          TEST THE SWITCH                  02615917
         BM    CKIHLR                  IF NO  BITS                      02705917
         BO    CKIHLR                  ARE SET ,THEN                    02795917
         OI    LABPROSW,X'80'          SET DEFAULT=YES                  02885917
CKIHLR   DS    0H                                                       02975917
         TM    LABPROSW,X'B0'          LABEL PROC. IS NO/INPUT          03065917
         BZ    TESTX1                  YES-BRANCH                       03155917
         MVI   HINXL,X'01'             ACTIVATE INPUT HEADER EXIT       03245917
TESTX1   CLI   8(R3),X'40'             USER INPUT HEADER EXIT           03335917
         BC    8,CKOHLR                 NO, GO TO NEXT CHECK            03425917
         LR    R10,R3                  PICK UP USER                     03515917
         LA    R10,8(R10)                 INPUT  HEADER                 03605917
         MVI   HINXL,X'01'              YES, ACTIVATE IHLE              03695917
         LOAD  EPLOC=(R10)             LOAD USER INPUT HEADER   RTN     03785917
         ST    R0,ADINUHLR                ROUTINE AND SAVE ADDRESS      03875917
*                                                                       03965917
CKOHLR   DS    0H                                                       04055917
         TM    LABPROSW,X'40'          LABEL PROC. IS NO                04145917
         BO    TESTX2                  YES-BRANCH                       04235917
         MVI   HOUXL+4,X'02'           ACTIVATE OUTPUT HEADER EXIT      04325917
TESTX2   CLI   16(R3),X'40'            USER OUTPUT HEADER EXIT          04415917
         BC    8,CKITLR                 NO, GO TO NEXT CHECK            04505917
         LR    R10,R3                  PICK UP USER                     04595917
         LA    R10,16(R10)               OUTPUT HAEDER                  04685917
         MVI   HOUXL+4,X'02'              YES, ACTIVATE OHLE            04775917
         LOAD  EPLOC=(R10)             LOAD USER OUTPUT HEADER  RTN     04865917
         ST    R0,ADOTUHLR                ROUTINE AND SAVE ADDRESS      04955917
*                                                                       05045917
CKITLR   DS    0H                                                       05135917
         TM    LABPROSW,X'90'          LABEL PROC. IS YES/ALL           05225917
         BZ    TESTX3                  NO-BRANCH                        05315917
         MVI   HINXL+4,X'03'           ACTIVATE INPUT TRAILER EXIT      05405917
TESTX3   CLI   24(R3),X'40'            USER INPUT TRAILER EXIT          05495917
         BC    8,CKOTLR                 NO, GO TO NEXT CHECK            05585917
         LR    R10,R3                  PICK UP USER                     05675917
         LA    R10,24(R10)               INPUT  TRAILER                 05765917
         MVI   HINXL+4,X'03'            YES, ACTIVATE ITLE              05855917
         LOAD  EPLOC=(R10)             LOAD USER INPUT TRAILER  RTN     05945917
         ST    R0,ADINUTLR                ROUTINE AND SAVE ADDRESS      06035917
*                                                                       06125917
CKOTLR   DS    0H                                                       06215917
         TM    LABPROSW,X'98'          LABEL PROC. IS YES/ALL/INPUT     06305917
         BZ    TESTX4                  NO-BRANCH                        06395917
         MVI   HOUXL+8,X'04'           ACTIVATE OUTPUT TRAILER EXIT     06485917
TESTX4   CLI   32(R3),X'40'            USER OUTPUT TRAILER EXIT         06575917
         BC    8,SWSTORE                NO, GO TO NEXT CHECK            06665917
         LR    R10,R3                  PICK UP USER                     06755917
         LA    R10,32(R10)               OUTPUT TRAILER                 06845917
         MVI   HOUXL+8,X'04'            YES, ACTIVATE OTLE              06935917
         LOAD  EPLOC=(R10)             LOAD USER OUTPUT TRAILER RTN     07025917
         ST    R0,ADOTUTLR                ROUTINE AND SAVE ADDRESS      07115917
*                                                                       07205917
SWSTORE  DS    0H                                                       07295917
         LR    R1,R4                    RESTORE REGISTER 1              07385917
         MVC   HCOPYSW(1),93(R3)       MOVE COPY SWITCH                 07475917
         MVC   HPOID(1),94(R3)                                          07565917
         MVC   LABPOLAT(8),80(R3)      MOVE LABEL POOL ADDRESSES        07655917
         MVC   HDCBIN+MACRF(2),BSREAD  MAKE SYSUT1 DCB FOR BSAM         07745917
         MVC   HDCBOUT+MACRF(2),BSWRITE MAKE SYSUT2 DCB FOR BSAM        07835917
         SR    R4,R4                                                    07925917
         C     R4,88(R3)                                                08015917
         BZ    HGENP1                                                   08105917
         MVC   HOUXL(4),88(R3)         STORE TOT.AREA ADDR IN           08195917
         MVI   HOUXL,X'0A'             EXITLIST AND ACTIVATE            08285917
HGENP1   TM    LABPROSW,X'40'          TEST LABEL PROC. FOR 'NO'        08375917
         BO    HGENP1A                 NO LABEL PROC - BEANCH           08465917
         LR    R4,R1                   SAVE REGISTER 1                  08555917
         LA    R1,640                  GET STORAGE                      08565917
         GETMAIN R,LV=(R1)             FOR BACK UP COPY                 08575917
         ST    R1,BACKUP               OF OUTPUT HEADER LABELS          08585917
         TM    LABPROSW,X'08'          TEST LABELPROC. FOR 'INPUT'      08595917
         BO    HGENP1B                 'INPUT' - BRANCH                 08605917
         LA    R1,640                  GET LENGTH OF CORE               08645917
         GETMAIN R,LV=(R1)             GET STORAGE                      08735917
         ST    R1,LABPOLAT             FOR HEADER LABELS                08825917
         TM    LABPROSW,X'20'          LABEL PROCESSING IS ONLY         08915917
         BO    HGENP1B                 YES-BRANCH                       09005917
         LA    R1,640                  GET LENGT OF CORE                09095917
         GETMAIN R,LV=(R1)             GET STORAGE FOR                  09185917
         ST    R1,LABPOLAT+4           TRAILER LABELS                   09275917
HGENP1B  LR    R1,R4                   RESTORE REFSITER 1               09365917
         SR    R4,R4                                                    09455917
HGENP1A  LA    R1,4(R1)                LOAD MEMBER NAME TABLE ADDR      09545917
         LA    R5,HDCBIN                LOAD SYSUT1 DCB ADDR            09635917
         C     R4,HINDD(R1)             INPUT DD NAME GIVEN?            09725917
         BE    HGENP2                   NO                              09815917
         MVC   DDNAM(8,R5),HINDD(R1) USER DDNAME IN UT1                 09905917
HGENP2   MVC   INPUTDD(8),DDNAM(R5)    STORE INPUT DD NAME       A29998 09965919
         C     R4,HOUDD(R1)            CHECK FOR OUTPUT DD       A29998 10025919
         LA    R5,HDCBOUT               LOAD SYSUT2 DCB ADDR            10085917
         BE    HGENP3                   BRANCH IF NO OUTPUT DD NAME     10175917
         MVC   DDNAM(8,R5),HOUDD(R1)  USER DDNAME IN UT2                10265917
HGENP3   MVC   OUTPUTDD(8),DDNAM(R5)   STORE OUTPUT DDNAME       A29998 10325919
         OC    DSORG(1,R5),HPOID       SET SYSUT2                A29998 10385919
         TM       DSORG(R5),X'42'       DEB FOR                         10445917
         BM    HGENP4                   PS OR                           10535917
         NI       DSORG(R5),X'BF'       PO                              10625917
HGENP4   MVI   OPENSW,X'F0'            SET OPENIN SWITCH                10715917
         L     R4,LABPOLAT             LOAD LABEL POOL ADDRESS          10805917
         LA    R4,0(R4)                STORE BEGIN ADDRESS              10895917
         ST    R4,HLABINDX             OF HEADER LABELS                 10985917
         OI    USEXSW,X'80'            INITIALIZE USER EXIT SWITCH      11075917
         MVI   EXCOUNT,X'00'                                            11165917
         OPEN  (HDCBIN,INPUT)          OPEN SYSUT1 FOR INPUT            11255917
         CLI   HCONCODE+1,X'0C'   COND CODE EQ 12 ?              A36140 11305921
         BE    HTERMU             YES, END PROCESSING            A36140 11315921
         NI    GENS3SW,X'0F'      SET SW FOR ERR PURP. OFF       A36140 11325921
         LA    R14,HDCBIN       ADDR OF SYSUT1 DCB                      11345917
         LA    R15,INPUTDD             POINT REG TO INPUT DD     A29998 11375919
*                                      NAME                      A29998 11405919
         TM    OFLGS(R14),X'10'    IS IT OPEN                           11435917
         BZ    DDERROR      NO                                          11525917
         LA    R14,HDCBOUT         LOAD ADDR. OF OUTP. DCB       A36140 11595900
         TM    OFLGS(R14),X'10'    WAS DCB OPENED ?              A36140 11665921
         BO    AFTWRT2             YES,TEST FOR USER TERM REQ.   A36140 11735921
AFTWRT1  CLI   HTERMSW,X'FF'           TEST FOR USER TERM.REQUEST       12325917
         BNE   TESTFU                  CONTINUE TESTING          A36140 12425921
         LA    R15,SYSUT1H             ADDR OF INPUT DCB ID             12525921
HGENP4A  MVI   HTERMSW,X'00'           CLEAR TERM SW BEFORE OPEN        12625917
*                                      SYSUT2                           12725917
         L     R14,VADDR1              ADDR OF ERROR MESSAGE            12825917
         MVC   5(8,R14),0(R15)         MOVE DCB ID TO MSG               12925917
         LA    R1,5                    LOAD MSG CODE                    13025917
         SLL   R1,8                                                     13125917
         LA    R4,5                    LOAD MESS. NUMBER         A44327 13175921
ERRORPNT AR    R1,R4                   SET REG1=MSGCODE+MSG2:           13225917
         L     R15,HWRMSGA              LOAD MSG WRITER SUBR ADDR       13325917
         BALR  R14,R15                  WRITE MESSAGE AND               13425917
         TM    GENS3SW,X'40'      MESS PR. DURING OPEN ?         A36140 13475921
         BO    RETOUT             YES, RETURN TO UT2 OPEN        A36140 13485921
         B     HTERMU                   TERMINATE                       13525917
HGENP4B  MVI   OPENOUTS,X'01'          SET OPENOUT SWITCH               13625917
         L     R4,LABPOLAT             INITIALIZE                       13725917
         LA    R4,0(R4)                THE ADDRESS                      13825917
         ST    R4,HLABINDX             OF FIRST LABEL                   13925917
         L     R4,BACKUP               INITIALIZE                       13945917
         LA    R4,0(R4)                INDEX                            13965917
         ST    R4,BACKUPX              IN BACK UP AREA                  13985917
         OI    USEXSW,X'80'            INITIALIZE EXIT SWITCH           14025917
         MVI   EXCOUNT,X'00'           INITIALIZE EXIT COUNTER          14125917
FINDUCB  EQU   *                                                        14175999
         L     R4,16                   LOAD PTR TO CVT         @ZA30822 14178999
         L     R4,0(R4)                LOAD PTR TO TCB PTR     @ZA30822 14181999
         L     R4,4(R4)                LOAD CURRENT TCB        @ZA30822 14184999
         L     R4,12(R4)               LOAD TIOT PTR           @ZA30822 14187999
         LA    R4,24(R4)               ADJ TIOT PTR TO POINT   @ZA30822 14190999
*                                      TO DD NAME              @ZA30822 14193999
UCB      EQU   *                                               @ZA30822 14196999
         LA    R6,HDCBOUT              GET ADDRESS TO UT2 DCB  @ZA30822 14199999
         CLC   40(8,R6),4(R4)          LOOK FOR SYSUT2 UCB     @ZA30822 14202999
         BE    UCBFOUND                UCB FOR SYSUT2 FOUND    @ZA30822 14205999
         SR    R6,R6                   CLEAR R6                @ZA30822 14208999
         IC    R6,0(R4)                GET TIOT LENGTH         @ZA30822 14211999
         AR    R4,R6                   POINT TO NEXT DD ENTRY  @ZA30822 14214999
         IC    R6,0(R4)                GET TIOT LENGTH         @ZA30822 14217999
         LTR   R6,R6                   IS TIOT LENGTH ZERO     @ZA30822 14220999
         BZ    OPEN                    YES, NO DD CARD FOR     @ZA30822 14223999
*                                      SYSUT2. GO AND OPEN     @ZA30822 14226999
*                                      SYSUT2 EVEN IF NO DD    @ZA30822 14229999
*                                      CARD AND MSG IEB316I    @ZA30822 14232999
*                                      WILL BE ISSUED.         @ZA30822 14235999
         B     UCB                     NO, CHECK NEXT UCB      @ZA30822 14238999
UCBFOUND EQU   *                                               @ZA30822 14241999
         SR    R6,R6                   CLEAR R6                @ZA30822 14244999
         ICM   R6,3,18(R4)             LOAD UCB ADDRESS        @ZA30822 14247999
         TM    18(R6),X'80'            IS SYSUT2 TAPE          @ZA30822 14250999
         BNO   OPEN                    NO, BRANCH              @ZA30822 14253999
RDJFCB   DS    0H                                              @ZA11962 14256999
         XC    JFCBAREA,JFCBAREA       CLEAR JFCBAREA          @ZA11962 14259999
         RDJFCB (HDCBOUT)              READ JBCB.              @ZA11962 14262999
         TM    JFCBIND2,X'40'          DISP NEW OR OLD         @ZA30822 14265999
         BNO   OPEN                    NO, DISP=MOD            @ZA30822 14268999
         OI    TAPESW,X'11'            SET TAPE SW1 AND SW2    @ZA30822 14271999
         LA    R1,HDCBOUT              LOAD UT2 DCB ADDRESS    @ZA30822 14274999
         MVC   BLKSI(2,R1),JFCBLKSI    MOVE BLKSIZE TO DCB     @ZA30822 14277999
         MVC   LRECL(2,R1),JFCLRECL    MOVE LRECL TO DCB       @ZA30822 14280999
         MVC   RECFM(1,R1),JFCRECFM    MOVE RECFM TO DCB       @ZA30822 14283999
         B     OPENOUXL                                        @ZA30822 14286999
AFTJFCB  EQU   *                                               @ZA30822 14289999
         NI    TAPESW,X'EF'            RESET TAPE SW1          @ZA30822 14292999
         TM    GENS3SW,X'04'           QSAM                    @ZA30822 14295999
         BNO   OPEN                    NO DONT CHANGE ACCESS   @ZA30822 14298999
*                                      METHOD                  @ZA30822 14301999
         MVC   HDCBOUT+MACRF(2),QSPUTMOV QSAM OUTPUT           @ZA30822 14304999
OPEN     EQU   *                                               @ZA30822 14307999
         OI    OUXL,X'80'              SET OUXL AS LAST ENTRY  @ZA30822 14310999
         MVI   JFCB,X'00'              RESET JFCB ENTRY        @ZA30822 14313999
         OPEN  (HDCBOUT,OUTPUT)        OPEN SYSUT2 FOR OUTPUT  @ZA30822 14316999
         OI    USEXSW,X'80'            RESET EXIT SWITCH                14325917
         L     R4,ADOTUHLR             WAS OUTPUT HEADER EXIT    A36140 14333921
         LTR   R4,R4                   ROUTINE SPECIFIED ?       A36140 14341921
         BZ    RETINP                  NO, RTRN TO INP DCB EXIT  A36140 14349921
         LA    R4,OTPUTHDR             LOAD OUTPUT HEADER IND.   A36140 14357921
         BAL   R14,WRTEXMSG            WRITE MSG'S               A36140 14365921
         B     RETINP                  RETURN TO OPEN INPUT      A36140 14375921
TESTFU   EQU   *                                                 A36140 14385921
         LA    R14,HDCBOUT             ADDR OF SYSUT2 DCB               14425917
         LA    R15,OUTPUTDD            POINT REG TO OUTPUT DD    A29998 14455919
*                                      NAME                      A29998 14485919
         TM    OFLGS(R14),X'10'        IS IT OPEN                       14525917
         BZ    DDERROR                 NO                               14625917
         B     HGENP5              YES, CONT CHECKING            A36140 14925921
AFTWRT2  CLI   HTERMSW,X'FF'           TEST FOR USER TERM.REQUEST       15425917
         BNE   HGENP5                  NO-BRANCH                        15525917
         LA    R15,SYSUT2H             SET DCB ID                       15625917
         B     HGENP4A                 BRANCH                           15725917
HGENP5   CLI   HCONCODE+1,X'0C'         TEST FOR USER KEY ERROR         15825917
         BNE   HGENP5A                  NO ERROR                        15925917
         LA    R1,HMSGIIP               LOAD MSG CODE                   16025917
         SLL   R1,8                                                     16125917
         LA    R4,2               MESSAGE ID FOR PARM ERROR             16225917
         B     HSTOW3                   TERMINATE                       16325917
HGENP5A  TM    DELTERSW,X'80'          DTD INPUT LABEL ROUTINE          16425917
         BZ    HGENP5B                 REQUIRE TERMINATION              16525917
         LA    R15,16                  LOAD CONDITION CODE=16           16555917
         BAL   R14,CHCONC              TEST FOR HIGHEST                 16585917
         LA    R1,HMSDELTR             YES-SET                          16625917
         SLL   R1,8                                                     16725917
         LA    R4,22                   MESSAGE AND                      16825917
         B     ERRORPNT                BRANCH                           16925917
HGENP5B  TM    LABPROSW,X'20'          LABEL PROCESS SWITCH='ONLY'      17025917
          BZ    CHKERBLS          TEST FOR OPEN ERRORS           A36140 17125921
         LA    R15,8                   LOAD CONDITON CODE=8             17155917
         BAL   R14,CHCONC              TEST FOR HIGHEST                 17185917
         LA    R1,MLABONLY             YES-SET MESSAGE OFFSET           17225917
         SLL   R1,8                    WARNING                          17325917
         LA    R4,23                   ID AND                           17425917
         B     ERRORPNT                BRANCH                           17525917
CHKERBLS  TM    ERRBLKSW,ERRBLKS1 INP RECFM,BLKSI,LRECL ERROR ?  A36140 17625921
         BO    ERRBLK1                 YES,BRANCH                       18325917
         TM    ERRBLKSW,ERRBLKS2       BLOCKSIZE ERROR ON SYSUT2        18425917
         BO    ERRBLK2                 YES,BRANCH                       18525917
         NI    OPENSW,X'00'            RESET OPENIN AND OPENOUT         18625917
*                                      SWITCHES                         18725917
         L     R1,SAVEREG1             RESTORE REG1 FOR GEN03           18825921
         LA    R5,HDCBIN               LOAD INPUT DCB ADDRESS    A36140 18835921
         LA    R6,HDCBOUT              LOAD OUTPUT DCB ADDRESS   A36140 18845921
         TM    GENS3SW,X'08'           GENS3 MODULE TO CALL  ?   A36140 18855999
         BO    CALLS3A                 YES                     @ZA30822 18885999
*                                      NO, CALL IEBGEN03       @ZA11962 18887999
         NI    OPENSW,X'00'            RESET OPENIN(OUT) SWITCH  A36140 18889999
         OI    ITLX,X'80'          SET TRAILER LABEL EXIT AS   @ZA30822 18891999
*                                      LAST ENTRY IN CASE OF   @ZA30822 18893999
*                                         CONCATINATED INPUT.  @ZA30822 18895999
         CALL  IEBGEN03                                                 18963017
         BAL   R14,CHCONC              TEST COND.CODE FROM IEBGEN03     18975917
         CH    R15,TWELVE              RETURN CODE =12             UL0I 18985918
         BE    HTERMU                  YES - ABNORMAL TERM         UL0I 18995918
         CH    R15,SIXTEEN             RETURN CODE =16             UL0I 19005918
         BE    HTERMU                  YES - ABNORMAL TERM         UL0I 19015918
CLOSER3  LA    R1,HDCBIN           LOAD ADDR. OF  INP. DCB       A36140 19025921
         TM    OFLGS(R1),X'10'     WAS DCB OPENED ?              A36140 19045921
         BZ    AFTCLOS1            NO, DO NOT CLOSE              A36140 19065921
         CLOSE HDCBIN              CLOSE INP. DATA SET           A36140 19085921
AFTCLOS1 L     R4,ADINUTLR         WAS INPUT TRAILER EXIT        A36140 19125921
         LTR   R4,R4                   ROUTINE SPECIFIED                19225917
LABPREV1 BZ    AFTWRT3             NO, BRANCH                    A36140 19325921
         LA    R4,INPUTTLR             LOAD INPUT TRAILER IND.          19425917
         BAL   R14,WRTEXMSG            LINK TO WRITE ROUTINE            19525917
AFTWRT3  CLI   HTERMSW,X'FF'           TEST FOR USER TERM.REQUEST       19625917
         MVI   LABPREV1+1,X'F0'    PREVENT SEC. MSG PRINTING     A36140 19675921
         BNE   CLOSE2                                                   19725917
         LA    R15,SYSUT1T             ADDR OF DCB ID                   19825917
         B     HGENP4A                 OUTPUT MSG                       19925917
CLOSE2   MVI   CLOSEOUT,X'02'          SET CLOSE SWITCH                 20025917
         OI    USEXSW,X'80'            RESET EXIT SWITCH                20125917
         MVI   EXCOUNT,X'00'           RESET EXIT COUNTER               20225917
         L     R4,LABPOLAT+4           INITIALIZE ADDRESS OF LABEL      20325917
         LA    R4,0(R4)                POOL                             20425917
         ST    R4,TLABINDX             SAVE ADDRESS                     20525917
         LA    R1,HDCBOUT          LOAD ADDR. OF OUTP. DCB       A36140 20545921
         TM    OFLGS(R1),X'10'     WAS DCB OPENED ?              A36140 20565921
         BZ    SKIPFPOO            NO, DO NOT CLOSE              A36140 20585921
         CLOSE HDCBOUT                 CLOSE SYSUT2                     20625917
         LA    R1,HDCBIN               POINT TO INPUT DCB      @YM03265 20635902
         TM    IND2(R1),X'09'          QSAM OPEN WITH BUF POOL @YM03265 20675902
         BNO   SKIPFPOO                NO,  SKIP FREEPOOL        A36140 20685921
         FREEPOOL HDCBIN               FREE DCB MAIN STORAGE     A36140 20695921
         FREEPOOL HDCBOUT              FREE DCB MAIN STORAGE     A36140 20705921
SKIPFPOO EQU   *                                                 A36140 20715921
         L R4,ADOTUTLR              WAS OUTPUT TRAILER EXIT             20725917
         LTR   R4,R4                   ROUTINE SPECIFIED                20825917
LABPREV2 BZ    AFTWRT4             NO, BRANCH                    A36140 20925921
         LA    R4,OTPUTTLR             LOAD OUTPUT TRAILER IND.         21025917
         BAL   R14,WRTEXMSG            LINK TO WRITE ROUTINE            21125917
AFTWRT4  CLI   HTERMSW,X'FF'           TEST FOR USER TERM.REQUEST       21225917
         MVI   LABPREV2+1,X'F0'    PREVENT SEC. MSG PRINTING     A36140 21275921
         BNE   CLOSE3                  NO-BRANCH                        21325917
         LA    R15,SYSUT2T             ADDR OF OUTPUT DCB               21425917
         B     HGENP4A                                                  21525917
CLOSE3   L     R1,BACKUP          LOAD BACKUP COPY ADDR.         A45131 21625921
         LTR   R1,R1              ADDRESS PRESENT ?              A45131 21628921
         BZ    TSTHDRFR           NO,TEST INPUT LABEL ADDRESS    A45131 21631921
         LA    R0,640             YES,LOAD BACKUP LENGTH         A45131 21634921
         FREEMAIN R,A=(1),LV=(0)  FREEMAIN BACKUP CORE           A45131 21637921
         XC    BACKUP,BACKUP      SET FREEMAIN DONE            @ZA30822 21638999
TSTHDRFR L     R1,LABPOLAT        LOAD INPUT LABELS ADDR.        A45131 21640921
         LTR   R1,R1              ADDRESS PRESENT ?              A45131 21643921
         BZ    TSTTLRFR           NO, TEST OUTPUT LABELS ADDR.   A45131 21646921
         LA    R0,640             YES, LOAD INP. LABELS LENGTH   A45131 21649921
         FREEMAIN R,A=(1),LV=(0)  FREEMAIN INP. LABELS CORE      A45131 21652921
         XC    LABPOLAT,LABPOLAT  SET FREEMAIN DONE            @ZA30822 21653999
TSTTLRFR L     R1,LABPOLAT+4      LOAD OUTPUT LABELS ADDRESS     A45131 21655921
         LTR   R1,R1              ADDRESS PRESENT ?              A45131 21658921
         BZ    RETGENER           NO, RETURN TO GENRT            A45131 21661921
         LA    R0,640             YES, LOAD OUTP. LABELS LENGTH  A45131 21664921
         FREEMAIN R,A=(1),LV=(0)  FREEMAIN OUTP. LABELS CORE     A45131 21667921
         XC    LABPOLAT+4,LABPOLAT+4 SET FREEMAIN DONE         @ZA30822 21668999
RETGENER L     R13,4(R13)         LOAD REGSAV ADDRESS            A45131 21670921
         LH    R15,HCONCODE            LOAD CONDITON CODE               21675917
         RETURN  (14,12),RC=(15)                                        21725917
CHKRECFM OI    GENS3SW,X'40'      SET BIT FOR ERR. MESS. PURPOS. A36140 21726121
         LA    R5,HDCBIN          LOAD INP. DCB ADDRESS          A36140 21726321
         LA    R6,HDCBOUT         LOAD OUTP. DCB ADDRESS         A36140 21726521
         CLC   BLKSI(2,R5),=X'0000'    BLKSIZE SPECIFIED ?       A36140 21727521
         BNE   TESTLRE1           YES, TEST LRECL                A36140 21727721
         OI    BLKSI+1(R5),X'0A'  NO, SET DEFAULT BLKSI=10       A48786 21727900
         MVC   LRECL(2,R5),=X'0005'    NO, SET DEFAULT LRECL=5   A48786 21728400
         OI    ERRBLKSW,ERRBLKS1  SET INP. ERROR BIT             A36140 21728500
TESTLRE1 CLC   LRECL(2,R5),=X'0000'    LRECL SPECIFIED ?         A36140 21728600
         BNE   TSTDCBVA           YES, CHECK ERRORS IN UT2 PAR.  A48786 21728700
         TM    RECFM(R5),X'48'    RECFM INPUT VS/VBS ?           A48786 21728800
         BO    SETERR1            YES, SET ERRBIT                A48786 21728921
         TM    RECFM(R5),X'40'    RECFM INPUT V/VB ?             A48786 21729121
         BO    STVARDF1           YES, SET DEFAULT LRECL         A48786 21729221
         TM    RECFM(R5),X'10'    RECFM INPUT FB ?               A48786 21729321
         BO    SETERRFB           YES, SET DEFAULT  AND ERRBIT   A48786 21729421
         MVC   LRECL(2,R5),BLKSI(R5) RECFM=F, SO LRECL=BLKSI     A48786 21729521
         B     TSTDCBVA           SCAN OUTPUT DCB VALUES         A48786 21729621
STVARDF1 LA    R3,4               LOAD REG. 3 WITH 4             A48786 21729721
         LH    R4,BLKSI(R5)       LOAD INPUT BLKSIZE IN R4       A48786 21729921
         SR    R4,R3              SET R4 = R4 - 4                A48786 21730021
         STH   R4,LRECL(R5)       SET INPUT LRECL = BLKSI - 4    A48786 21730121
         B     TSTDCBVA           SCAN OUTPUT DCB VALUES         A48786 21730221
SETERRFB MVC   LRECL(2,R5),BLKSI(R5) MOVE UT1 BLKSI TO UT2       A48786 21730321
SETERR1  OI    ERRBLKSW,ERRBLKS1  SET INP. ERROR BIT             A48786 21730421
TSTDCBVA CLC   BLKSI(2,R6),=X'0000' UT2 BLKSIZE ZERO ?           A48786 21730721
         BNE   TESTRFM2           NO, SCAN UT2 DCB PARAM. AGAIN  A48786 21735821
         CLC   LRECL(2,R6),=X'0000' UT2 LRECL ZERO ?             A48786 21737821
         BNE   TESTRFM2           NO, SCAN UT2 DCB PARAM. AGAIN  A48786 21739821
         TM    RECFM(R6),X'C0'    UT2 RECFM U ?                  A48786 21741821
         BNO   TESTRFM2           NO, SCAN UT2 DCB PARAM. AGAIN  A48786 21752621
         MVC   BLKSI(2,R6),BLKSI(R5) MOVE UT1 BLKSI TO UT2       A48786 21761921
         MVC   LRECL(2,R6),LRECL(R5) MOVE UT1 LRECL TO UT2       A48786 21762321
         MVC   RECFM(1,R6),RECFM(R5) MOVE UT1 RECFM TO UT2       A48786 21762721
ENDTST   LA    R1,HMSEQDCB        LOAD MSG NBR IEB352I           A48786 21763121
         SLL   R1,8               SHIFT LEFT 8 BITS              A48786 21763521
         LA    R1,52(R1)          ADD MSG ADDR. DISPLMNT         A48786 21763621
         L     R15,HWRMSGA        LOAD MSG ROUTINE ADDR.         A48786 21763721
         BALR  R14,R15            PRINT MESSAGE IEB352I          A48786 21763821
         B     ENDERROR           SKIP REST OF ERR.TSTS          A48786 21764521
TESTRFM2 CLC   BLKSI(2,R6),=X'0000'    BLKSIZE SPECIFIED ?       A36140 21765921
         BNE   TESTLRE2           YES, TEST LRECL                A36140 21774721
         OI    BLKSI+1(R6),X'0A'  NO, SET DEFAULT BLKSI=10       A48786 21785500
         MVC   LRECL(2,R6),=X'0005'    NO, SET DEFAULT LRECL=5   A48786 21796321
         OI    ERRBLKSW,ERRBLKS2  SET OUT. ERROR BIT             A36140 21807121
TESTLRE2 CLC   LRECL(2,R6),=X'0000'    LRECL SPECIFIED ?         A36140 21817921
         BNE   ENDERROR           YES, END OF ERROR CHECKING     A36140 21828721
         TM    RECFM(R6),X'48'    RECFM OUTPUT VS/VBS ?          A48786 21838721
         BO    SETDEFLR           YES, SET DEFAULT AND ERRBIT    A48786 21839121
         TM    RECFM(R6),X'40'    RECFM OUTPUT V/VB ?            A48786 21839221
         BO    STVARDF2           YES, SET DEFAULT LRECL         A48786 21839321
         TM    RECFM(R6),X'10'    RECFM OUTPUT FB ?              A48786 21839421
         BO    SETDEFLR           YES, SET DEFAULT  AND ERRBIT   A48786 21843021
         B     SETL2EB2           SCAN OUTPUT DCB VALUES         A48786 21845421
STVARDF2 TM    HCOPYSW,X'FF'      ANY EDITING ?                  A48786 21845521
         BZ    CALCLR2            YES, CALC. DEFAULT VALUE       A48786 21845621
MOVEL1L2 EQU   *                                               @ZA26153 21845799
         TM    RECFM(6),X'C0'     SYSUT2 RECFM U ?             @ZA26153 21845899
         BO    ENDERROR           YES BRANCH                   @ZA32107 21845999
         MVC   LRECL(2,R6),LRECL(R5) SET LRECL2 = LRECL1       @ZA26153 21846299
         B     ENDTST             SCAN OUTPUT DCB VALUES         A48786 21846321
CALCLR2  LA    R3,4               LOAD REG. 3 WITH 4             A48786 21848421
         LH    R4,BLKSI(R6)       LOAD OUTPUT BLKSIZE IN R4      A48786 21849021
         SR    R4,R3              SET R4 = R4 - 4                A48786 21849621
         STH   R4,LRECL(R6)       SET OUTPUT LRECL = BLKSI - 4   A48786 21850221
         B     ENDERROR           SCAN OUTPUT DCB VALUES         A48786 21852221
SETDEFLR TM    HCOPYSW,X'FF'      ANY EDITING ?                  A48786 21852321
         BZ    SETERR2            YES, SET ERRBIT                A48786 21852421
         B     MOVEL1L2           SET DEFAULT LRECL2 = LRECL1    A48786 21854621
SETERR2  OI    ERRBLKSW,ERRBLKS2  SET OUT. ERROR BIT             A48786 21857821
SETL2EB2 MVC   LRECL(2,R6),BLKSI(R6) SET  LRECL=BLKSI            A48786 21858221
ENDERROR LA    R3,ERRBLK1         LOAD LABEL ERRBLK1 ADDRESS     A48786 21859800
AGAINOUT TM    RECFM(R5),X'40'    RECFM VAR.UND ?                A48786 21861121
         BO    TSTVBSRF           YES, SKIP BLKSI MULT.OF LRECL  A48786 21863100
         TM    RECFM(R5),X'10'    RECFM F ?                      A48786 21863500
         BO    BLKLREC            NO, RECFM = FB                 A48786 21863900
         CLC   LRECL(2,R5),BLKSI(R5) LRECL = BLKSI (RECFM = F )  A48786 21864300
         BE    TSTVAR2            YES, SCAN OUTPUT DCB VAL.      A48786 21864700
         B     SETMSG             NO, SET ERRBIT + MSG IEB311I   A48786 21864800
BLKLREC  SR    R8,R8              ZERO REGISTER 8                A48786 21865100
         LH    R9,BLKSI(R5)       LOAD INP BLKSIZE               A48786 21867121
         LH    R4,LRECL(R5)       LOAD INP LRECL                 A48786 21869121
         DR    R8,R4              DIVIDE BLKSI BY LRECL          A48786 21869521
         LTR   R8,R8              REMAINDER ?                    A48786 21869921
         BZ    TSTVAR2            NO, OKE                        A48786 21870321
SETMSG   MVC   LRECL(2,R5),BLKSI(R5) MOVE UT1 BLKSI TO LRECL     A48786 21870400
SETMSG2  MVI   11(R3),X'0C'       CHANGE MSG IEB317I             A48786 21870500
         MVI   19(R3),X'0B'       IN MSG IEB311I                 A48786 21870600
INOUTSW  OI    ERRBLKSW,ERRBLKS1  SET INPUT ERR. SWITCH          A48786 21870721
         B     TSTVAR2            TEST FOR OUTPUT                A48786 21880700
TSTVBSRF TM    RECFM(R5),X'88'    INP. RECFM VS,F,U ?            A48786 21895521
         BNZ   TSTVAR2            YES, SKIP BLKSI=LRECL + 4 TST  A48786 21895921
         LH    R9,LRECL(R5)       LOAD INP LRECL                 A48786 21896321
         LA    R9,4(R9)           ADD 4 TO LRECL                 A48786 21896721
         CH    R9,BLKSI(R5)       BLKSI >= LRECL + 4 ?           A48786 21896821
         BNH   TSTVAR2            YES, TEST OUTPUT               A48786 21896921
         STH   R9,BLKSI(R5)       SET BLKSI TO PREV. ABEND       A48786 21899521
         B     SETMSG2            SET ERRBIT + MSG IEB311I       A48786 21901500
TSTVAR2  CR    R5,R6              OUTP. DCB VAL ALREADY TESTED ? A48786 21901900
         BE    TSTVS1A2           YES, SCAN FURTHER              A48786 21903900
         LR    R5,R6              NO, LOAD OUT. DCB ADDR. IN R5  A48786 21904300
         LA    R3,ERRBLK2         LOAD LABEL ERRBLK2 ADDRESS     A48786 21904700
         MVI   INOUTSW+1,ERRBLKS2 SET CORRECT ERRSW.             A48786 21905121
         B     AGAINOUT           SCAN OUTPUT DCB VALUES         A48786 21905200
TSTVS1A2 LA    R5,HDCBIN          LOAD INPUT DCB ADDRESS         A48786 21905900
         TM    RECFM(R5),X'48'    INP. RECFMAT VAR. SPANNED      A48786 21911500
         BO    CHSTRCOP           YES, CHECK FOR STRAIGHT COPY   A36140 21913922
         TM    RECFM(R6),X'48'    OUTP. FORMAT VAR. SPANNED ?    A36140 21916322
         BO    CHLRECL            YES, CHECK FOR LRECL'S         A36140 21918722
         B     RETOUT             RETURN TO OPEN                 A36140 21921122
CHSTRCOP CLC   RECFM(1,R6),RECFM(R5)   COMPARE RECORD FORMATS           21923522
         BNE   CHLRECL                 NOT EQUAL-BRANCH                 21925917
         CLC   LRECL(2,R6),LRECL(R5)   COMPARE LRECL'S                  22025917
         BNE   CHLRECL                 NOT EQUAL-BRANCH                 22125917
         CLC   BLKSI(2,R6),BLKSI(R5)   COMPARE BLOCK SIZES              22225917
         BNE   CHLRECL                 NOT EQUAL-BRANCH                 22325917
         TM    HCOPYSW,X'FF'           ANY EDITING                      22425917
         BZ    CHLRECL                                                  22525917
         MVI   GENS3COP,X'80'          SET COPY SWITCH                  22625917
         LA    R1,34                   LOAD MSG OFFSET                  22635917
         SLL   R1,8                    AND                              22645917
         LA    R1,34(R1)               MSG ID                           22655917
         L     R15,HWRMSGA             LOAD ADDRESS OF MSG WRITER       22665917
         BALR  R14,R15                 AND LINK                         22675917
         OI    GENS3SW,X'08'      SET GENS3 SW. FOR MODULE SEL.  A36140 22725921
         B     RETOUT             RETURN TO OPEN UT2             A36140 22726121
CHLRECL  TM    LRECL(R5),X'80'         INPUT LRECL EXCEEDS 32K          22825917
         BZ    CHKLREC2                NO                               22925917
RECMSG   LA    R1,28                                                    23025917
         SLL   R1,8                                                     23125917
         LA    R4,28                                                    23225917
         LA    R15,12                  LOAD CONDITION CODE=12           23255917
         BAL   R14,CHCONC              TEST FOR HIGHEST                 23285917
         B     ERRORPNT                                                 23325917
CHKLREC2 TM    LRECL(R6),X'80'         OUTPUT LRECL EXCEEDS 32K'        23425917
         BO    RECMSG                  YES-BRANCH                       23525917
         TM    HDCBOUT+17,X'20'        OUTPUT DEVICE IS DA'             23625917
         BZ    CHKKEYIN                                                 23725917
         CLI   HDCBOUT+16,X'00'        KEYLENGTH IS ZERO?               23825917
         BE    CHKKEYIN                YES-BRANCH                       23925917
         LA    R1,20                                                    24025917
         SLL   R1,8                                                     24125917
         LA    R4,20                   AND                              24225917
           LA  R15,12                  LOAD CONDITION CODE =12          24255917
         BAL   R14,CHCONC              TEST FOR HIGHEST                 24285917
         B     ERRORPNT                PRINT                            24325917
CHKKEYIN TM    HDCBIN+17,X'20'         INPUT DEVICE IS DA               24425917
         BZ    INTMCLOS                NO-BRANCH                        24525917
         CLI   HDCBIN+16,X'00'         KEYLENGTH IS ZERO                24625917
         BE    INTMCLOS                YES-BRANCH                       24725917
         LA    R1,21                                                    24825917
         SLL   R1,8                                                     24925917
         LA    R4,21                                                    25025917
         LA    R15,12                  LOAD CONDITION CODE = 12         25225917
         BAL   R14,CHCONC              TEST FOR HIGHEST                 25425917
         B     ERRORPNT                WRITE MSG AND TERMINATE          25625917
INTMCLOS CLI   HPOID,X'02'        OUTPUT PO ?                    A36140 25825921
         BE    VBSERROR           YES, NOT ALLOWED IN PDS        A36140 25875921
OPENQSAM OI    GENS3SW,X'0C'      SET SW FOR GENS3 MOD + QSAM  @YM04133 26855902
         B     RETOUT             RETURN TO OPEN                 A36140 26865921
VBSERROR LA    R1,29              LOAD MESS ID                   A36140 26875921
         SLL   R1,8                                              A36140 26885921
         LA    R4,29              LOAD MESS IEB329I              A36140 26895921
         LA    R15,12             LOAD COND CODE EQ 12           A36140 26905921
         BAL   R14,CHCONC         TEST FOR HIGHEST COND CODE     A36140 26915921
         B     ERRORPNT           WRITE MESS AND TERM AFT. OPEN  A36140 26925921
CALLS3A  EQU   *                                               @ZA30822 27425999
         NI    OPENSW,X'00'           RESET OPENIN(OUT) SWITCH @ZA30822 27432999
         TM    GENS3SW,X'04'          EDITING TO BE DONE       @ZA30822 27439999
         BNO   TOGENS3                NO, DON'T OPEN FOR QSAM  @ZA30822 27446999
         CLOSE (HDCBIN,REREAD)         CLOSE INPUT DATA SET    @AZ07398 27453999
         TM    TAPESW,X'01'           SYSUT2 TAPE              @ZA30822 27460999
         BO    TAPE                   YES, DON'T REOPEN UT2    @ZA30822 27467999
         CLOSE (HDCBOUT,REREAD)        CLOSE OUTPUT DATA SET   @AZ07398 27474999
         MVC   HDCBIN+MACRF(2),QSGETMOV YES, OPEN INPUT/OUTPUT @ZA11962 27481999
         MVC   HDCBOUT+MACRF(2),QSPUTMOV   FOR QSAM.           @ZA11962 27488999
         B     SECOPEN                 OPEN SYSUT1/SYSUT2      @ZA30822 27495999
TAPE     EQU   *                                               @ZA30822 27502999
         NI    TAPESW,X'FE'            RESET TAPE SW2          @ZA30822 27509999
         MVI   INXL,X'00'              RESET OPENINXL FOR      @ZA30822 27516999
*                                      SECOND OPEN OF SYSUT1   @ZA30822 27523999
         OI    ITLX,X'80'              SET HITLX AS LAST ENTRY @ZA30822 27530999
         MVC   HDCBIN+MACRF(2),QSGETMOV QSAM INPUT             @ZA30822 27537999
SECOPEN  EQU   *                                               @ZA30822 27544999
         OPEN  (HDCBIN,INPUT)          REOPEN FOR QSAM/BSAM    @ZA30822 27551999
         LA    14,HDCBIN               POINT TO INPUT DCB      @YM04133 27605902
         TM    OFLGS(R14),X'10'        SUCCESSFUL OPEN?        @YM04133 27615902
         BZ    DDERROR                 NO -WRITE MSG AND TERM  @YM04133 27617902
         LA    14,HDCBOUT              POINT TO OUTPUT DCB     @YM04133 27621902
         TM    OFLGS(R14),X'10'        SUCCESSFUL OPEN?        @YM04133 27623999
         BZ    DDERROR                 NO -WRITE MSG AND TERM  @YM04133 27624399
         L     R1,SAVEREG1             RESTORE REG1 FOR GENS3  @YM04133 27624799
TOGENS3  EQU   *                                               @ZA30822 27624999
         OI    ITLX,X'80'          SET TRAILER LABEL EXIT AS   @ZA30822 27625199
*                                      LAST ENTRY IN CASE OF   @ZA30822 27625399
*                                         CONCATINATED INPUT.  @ZA30822 27625599
         CALL  IEBGENS3                                                 27625917
         BAL   R14,CHCONC              TEST COND.CODE FROM IEBGENS3     27675917
         CH    R15,TWELVE              RETURN CODE =12             UL0I 27685918
         BE    HTERMU                  YES - ABNORMAL TERM         UL0I 27695918
         CH    R15,SIXTEEN             RETURN CODE =16             UL0I 27705918
         BE    HTERMU                  YES - ABNORMAL TERM         UL0I 27715918
         B     CLOSER3                                                  27725917
HSTOW3   AR    R1,R4                                                    27825917
         L     R15,HWRMSGA                                              27925917
         BALR  R14,R15                                                  28025917
HTERMU   LH    R15,HCONCODE                                             28125917
         NI    HOUXL+4,X'00'           DEACTIVATE                       28225917
         OI    HOUXL+4,X'80'           OUTPUT                           28325917
         NI    HINXL,X'00'             AND INPUT                        28425917
         OI    HINXL,X'80'             EXIT LISTS                       28525917
         B     CLOSER3                                                  28625917
HEOD     DS    0F                      DUMMY                            28725917
         B     CLOSER3                 DUMMY                            28825917
HOUER    EQU   HEOD                    DUMMY                            28925917
HINER    EQU   HEOD                    DUMMY                            29025917
WRTEXMSG ST    R14,SAVE14              SAVE REGISTER 14                 29125917
         L     R1,VADDR2               LOAD ADDRESS OF MESSAGE          29225917
         SR    R14,R14                 LOAD EXIT COUNT                  29325917
         IC    R14,EXCOUNT                                              29425917
         LA    R14,240(R14)            MAKE EBCDIC CODE                 29525917
         STC   R14,0(R1)               STORE NUMBER INTO MESSAGE        29625917
         MVC   11(14,R1),0(R4)         SET ROUTINE IND.                 29725917
         LA    R1,24                   MESSAGE OFSET                    29825917
         SLL   R1,8                                                     29925917
         LA    R4,24                   MSG ID                           30025917
         AR    R1,R4                                                    30125917
         L     R15,HWRMSGA             LOAD MSG WRITER ADDR             30225917
         BALR  R14,R15                 LINK                             30325917
         SR    R5,R5                   CLEAR REGISTERS                  30425917
         SR    R4,R4                   4 &5                             30525917
         IC    R5,LASTRETC             LOAD LAST RETURNCODE             30625917
         LA    R3,10                   DIVIDE BY                        30725917
         DR    R4,R3                   TEN                              30825917
         L     R1,VADDR3               LOAD MSG ADDRESS                 30925917
         LA    R4,240(R4)              MAKE EBCDIC OF FIRST DIGIT       31025917
         LA    R5,240(R5)              MAKE EBCDIC OF SEC  DIGIT        31125917
         STC   R5,21(R1)               STORE FIRST DIGIT                31225917
         STC   R4,22(R1)               STORE SECOND DIGIT               31325917
         LA    R1,25                   LOAD MSG CODE                    31425917
         SLL   R1,8                                                     31525917
         LA    R4,25                   LOAD MSG ID                      31625917
         AR    R1,R4                                                    31725917
         L     R15,HWRMSGA                                              31825917
         BALR  R14,R15                 LINK                             31925917
         MVI   EXCOUNT,X'00'           RESET EXIT COUNT                 32025917
         MVI   LASTRETC,X'00'          RESET LAST RETURN CODE           32125917
         L     R14,SAVE14              RESTORE REGISTER 14              32225917
         BR    R14                     RETURN                           32325917
*                                                                       32425917
CHCONC   CH    R15,HCONCODE            TEST NEW COND.CODE AGAINST OLD   32445917
         BCR   4,R14                   NEW IS LOW-RETURN                32465917
         STH   R15,HCONCODE            OLD IS LOW -STORE NEW ONE        32485917
         BR    R14                     RETURN                           32505917
HDCBIN   DCB   DDNAME=SYSUT1,DSORG=PS,MACRF=(GM),                      *32525917
               EXLST=HINXL,SYNAD=HINER,EODAD=HEOD                       32625917
HDCBOUT  DCB   DDNAME=SYSUT2,DSORG=PS,MACRF=(PM),                      *32725917
               EXLST=HOUXL,SYNAD=HOUER                                  32825917
*                                                                       32925917
HIHLX    LA    R3,OFFSET1              COMPUTE AND LOAD                 33025917
         SR    R15,R3                  THE BASE ADDRESS OF GENR3        33125917
         LR    R2,R15                  IN REGISTER 2                    33225917
         LA    R7,4095(R2)            SET R7 AS SECOND BASEREG @ZA26660 33255999
         LA    R7,1(R7)                INCREASE R7 WITH ONE    @ZA26660 33285999
         ST    R14,SAVE14              SAVE REGISTER 14                 33325917
         MVI   RETURNC,X'04'           SET ASSUMED RETURNCODE           33425917
         TM     8(R1),X'80'            I/O ERROR?                       33525917
         BO    LABIOER1                YES-BRANCH                       33625917
         B     HIHLX1                                                   33725917
HIHRETRN TM    OPENOUTS,X'01'          ARE WE IN OPEN OUTPUT            33735917
         BZ    RETRNA                  NO - BRANCH                      33745917
         LTR   R15,R15                 IS THERE A OUTPUT LABEL          33755917
         BZ    RETRNA                  NO - BRANCH                      33765917
         L     R3,0(R1)                                                 33775917
         LTR   R3,R3                   IS THERE A LABEL BUFFER          33785917
         BZ    RETRNA                  NO - BRANCH                      33795917
         SR    R4,R4                   LOAD NUMBER OF LABELS            33805917
         IC    R4,BACKUP               IN BACK UP AREA                  33815917
         LA    R4,1(R4)                INCREASE BY ONE                  33825917
         STC   R4,BACKUP               STORE NEW NUMBER                 33835917
         L     R4,BACKUPX              LOAD INDEZ IN BACK UP AREA       33845917
         MVC   0(80,R4),0(R3)          MOVE OUTPIT LABEL IN BACK UP     33855917
         LA    R4,80(R4)               AREA AND INCREASE INDEX          33865917
         ST    R4,BACKUPX              STORE NEW INDEX                  33875917
RETRNA   L     R14,SAVE14              RESTORE REG 14                   33885917
         RETURN ,                                                       33925917
HIHLX1   L     R3,0(R1)                FIRST LABEL                      34025917
         LTR   R3,R3                   LABEL BUFFER ADDRESS IS ZERO     34055917
         BZ    CHUSHIEX                YES-BRANCH-TEST USER EXIT        34085917
         CLI   3(R3),X'F1'             OF THE GROUP?                    34125917
         BNE   HIHLX2                  NO-BRANCH                        34225917
         OI    USEXSW,X'80'            RESET USER EXIT SWITCH           34325917
HIHLX2   TM    OPENSW,X'F0'            OPENIN SWITCH ON                 34425917
         BZ    CHUSHIEX                NO-BRANCH                        34525917
         TM    LABPROSW,X'B0'          LABEL PROCESSING IS NO/INPUT     34625917
         BZ    CHUSHIEX                YES-BRANCH                       34725917
         IC    R4,LABPOLAT             LOAD NUMBER OF STORED LABELS     34825917
         LA    R4,1(R4)                INCREASE NUMBER BY ONE           34925917
         STC   R4,LABPOLAT             STORE NUMBER OF LABELS           35025917
         L     R4,HLABINDX             LOAD ADDRESS FOR NEXT LABEL      35125917
         MVC   0(80,R4),0(R3)          MOVE LABEL INTO SAVE AREA        35225917
         LA    R4,80(R4)               UPDATE                           35325917
         ST    R4,HLABINDX             LABEL POOL INDEX                 35425917
CHUSHIEX TM    USEXSW,X'80'            USER EXIT REQUIRED?              35525917
         BZ    SETUSEXS                NO-RETURN                        35625917
         L     R15,ADINUHLR            LOAD ADDRESS OF USER ROUTINE     35725917
         LTR   R15,R15                 TEST FOR USER ADDRESS            35825917
         BZ    SETUSEXS                NO ADDRESS-BRANCH         A44327 35925921
         IC    R14,EXCOUNT             INCREASE                         36025917
         LA    R14,1(R14)              EXIT                             36125917
         STC   R14,EXCOUNT             COUNTER                          36225917
         BALR  R14,R15                                                  36325917
         STC   R15,LASTRETC            STORE LAST RETURN CODE           36425917
AFTLINK1 TM    OPENSW,X'F0'            ARE WE IN OPEN                   36525917
         BZ    RETRFUS                 NO-BRANCH                        36625917
TESTLABP TM    LABPROSW,X'38'          LABEL PROCESS ALL/ONLY/INPUT     36725917
         BZ    RETRFUS                 NO-BRANCH                        36825917
         LTR   R15,R15                 RETURNCODE=0?                    36925917
         BZ    SETUSEXS                YES-BRANCH                       37025917
         CH    R15,SIXTEEN             RETURN CODE=16?                  37125917
         BC    7,HIHRETRN              NO-BRANCH                        37225917
         OI    DELTERSW,X'80'          SET DELAYED TERMINATION SW       37325917
SETUSEXS NI    USEXSW,X'7F'            SET USER EXIT SWITCH OFF         37425917
         SR    R15,R15                 LOAD                             37525917
         IC    R15,RETURNC             RETURNCODE                       37625917
         B     HIHRETRN                RETURN                           37725917
RETRFUS  CH    R15,SIXTEEN             RETURN CODE IS 16                37825917
         BNE   HIHRETRN                NO-BRANCH                        37925917
         OI    HTERMSW,X'FF'           SET USER TERMINATION SWITCH      38025917
         B     HIHRETRN                                                 38125917
LABIOER1 LA    R4,INPUTHDR             LOAD INPUT HEADER IND.           38225917
         BAL   R14,WRTLABER            LINK TO WRITE ROUTINE            38325917
         B     CHUSHIEX                BRANCH TO USER                   38425917
*                                                                       38525917
HITLX    LA    R3,OFFSET2              COMPUTE AND LOAD                 38625917
         SR    R15,R3                  THE BASE ADDRESS OF GENR3        38725917
         LR    R2,R15                  IN REGISTER 2                    38825917
         LA    R7,4095(R2)            SET R7 AS SECOND BASEREG @ZA26660 38855999
         LA    R7,1(R7)                INCREASE R7 WITH ONE    @ZA26660 38885999
         ST    R14,SAVE14              SAVE REGISTER 14                 38925917
         MVI   RETURNC,X'04'            SET ASSUMED RETURCODE           39025917
         TM     8(R1),X'80'            I/O ERROR?                       39125917
         BO    LABIOER2                YES-BRANCH                       39225917
         L     R3,0(R1)                LOAD LABEL BUFFER ADDRESS        39325917
         LTR   R3,R3                   LABEL BUFFER ADDRESS IS ZERO     39355917
         BZ    CHUSTIEX                YES-BRANCH-TEST USER EXIT        39385917
         TM    FIRSTSW,X'F0'      FIRST LABEL ?                  A48786 39575921
         BO    HITLX1             NO, SKIP COUNT/SWITCHES INIT.  A48786 39585921
         OI    USEXSW,X'80'            RESET USER EXIT SWITCH           39625917
         MVI   EXCOUNT,X'00'           RESET EXIT COUNTER               39725917
         MVI   LASTRETC,X'00'                                           39825917
HITLX1   TM    LABPROSW,X'B0'          LABEL PROCESSING IS NO/INPUT     39925917
         BZ    CHUSTIEX                YES-BRANCH                       40025917
         TM    4(R1),X'80'             TEST FOR END OF DATA             40125917
         BNO   CHUSTIEX            NO, INTERMED. TRAILER         A36140 40225921
         TM    FIRSTSW,X'F0'      FIRST LABEL ?                  A48786 40275921
         BO    HITLX2             NO, SKIP COUNT/SWITCHES INIT.  A48786 40285921
         MVI   FIRSTSW,X'F0'      SET FIRSTSW OFF                A48786 40295921
         L     R4,LABPOLAT+4           LOAD ADDRESS OF TRAILER          40525917
         LA    R4,0(R4)                LABEL POOL                       40625917
         ST    R4,TLABINDX             INITIALE LABELPOOL INDEX         40725917
         SR    R4,R4                   SET NUMBER OF                    40825917
         STC   R4,LABPOLAT+4           LABEL IS 0                       40925917
HITLX2   IC    R4,LABPOLAT+4           LOAD NUMBER OF STORED LABELS     41025917
         LA    R4,1(R4)                INCREASE BY ONE                  41125917
         STC   R4,LABPOLAT+4           STORE                            41225917
         L     R4,TLABINDX             LOAD ADDRESS FOR NEXT LABEL      41325917
         L     R3,0(R1)                LOAD ADDRESS OF CURR LABEL       41425917
         MVC   0(80,R4),0(R3)          MOVE LABEL                       41525917
         LA    R4,80(R4)               UPDATE                           41625917
         ST    R4,TLABINDX             LABELPOOL INDEX                  41725917
CHUSTIEX TM    USEXSW,X'80'            USER EXIT REQUIRED               41825917
         BZ    SETUSEXS                NO-RETURN                        41925917
         L     R15,ADINUTLR            LOAD ADDRESS OF USER ROUTINE     42025917
         LTR   R15,R15                 CHECK USER EXIT                  42125917
         BZ    SETUSEXS                NO EXIT-BRANCH            A44327 42225921
         IC    R14,EXCOUNT             UPDATE                           42325917
         LA    R14,1(R14)              EXIT                             42425917
         STC   R14,EXCOUNT             COUNTER                          42525917
         BALR  R14,R15                 LINK                             42625917
         STC   R15,LASTRETC            STORE LAST RETURN CODE           42725917
         B     TESTLABP                BRANCH TO HEADER ROUTINE         42825917
LABIOER2 LA    R4,INPUTTLR             LOAD INPUT TRAILER IND.          42925917
         BAL   R14,WRTLABER            LINK TO WRITE ROUTINE            43025917
         B     CHUSTIEX                BRANCH CHECK FOR USER EXIT       43125917
*                                                                       43225917
HOHLX    LA    R3,OFFSET3              COMPUTE AND LOAD                 43325917
         SR    R15,R3                  THE BASE ADDRESS OF GENR3        43425917
         LR    R2,R15                  IN REGISTER 2                    43525917
         LA    R7,4095(R2)            SET R7 AS SECOND BASEREG @ZA26660 43555999
         LA    R7,1(R7)                INCREASE R7 WITH ONE    @ZA26660 43585999
         ST    R14,SAVE14              SAVE REGISTER 14                 43625917
         MVI   RETURNC,X'08'           SET ASSUMED RETURNCODE           43725917
         TM     8(R1),X'80'            I/O ERROR                        43825917
         BO    LABIOER3                                                 43925917
         TM    OPENOUTS,X'01'          ARE WE IN OPEN                   44025917
         BZ    CHUSHOEX                NO-BRANCH                        44125917
         SR    R4,R4                   ZERO OUT REG 4                   44225917
         IC    R4,LABPOLAT             LOAD NUMBER OF LABELS TO         44325917
         LTR   R4,R4                   STORE AND TEST FOR ZERO          44425917
         BZ    RETRNC0A                ZERO-DO NOT STORE                44525917
         L     R3,0(R1)                LOAD ADDRESS OF LABELBUFFER      44625917
         LTR   R3,R3                   LABEL BUFFER ADDRESS IS ZERO     44655917
         BZ    CHUSHOEX                YES-BRANCH-TEST USER EXIT        44685917
         BCTR  R4,0                    DECREASE NUMBER                  44725917
         STC   R4,LABPOLAT             STORE NEW NUMBER                 44825917
         L     R4,HLABINDX             LOAD ADDRESS FOR NEXT LABEL      44925917
         MVC   0(80,R3),0(R4)          MOVE LABEL INTO BUFFER           45025917
         LA    R4,80(R4)               INCREASE INDEX                   45125917
         ST    R4,HLABINDX             AND RESTORE                      45225917
         TM    USEXSW,X'80'            USER EXIT REQUIRED               45325917
         BZ    SETUSEXS                NO-RETURN                        45425917
CHUSHOEX L     R15,ADOTUHLR            YES-LOAD ADDRESS OF USER         45525917
         LTR   R15,R15                 CHECK USER EXIT                  45625917
         BZ    SETUSEXS                NO EXIT-BRANCH            A44327 45725921
         IC    R14,EXCOUNT             UPDATE                           45825917
         LA    R14,1(R14)              EXIT                             45925917
         STC   R14,EXCOUNT             COUNTER                          46025917
         BALR  R14,R15                 ROUTINE AND LINK                 46125917
         STC   R15,LASTRETC            STORE RETURN CODE                46225917
AFTLINK2 TM    OPENOUTS,X'01'          ARE WE IN OPEN                   46325917
         BZ    RETRFUS                 NO-BRANCH                        46425917
         B     TESTLABP                                                 46525917
RETRNC0A MVI   RETURNC,X'00'           SET RETURNCODE=0                 46625917
         B     CHUSHOEX                                                 46725917
LABIOER3 LA    R4,OTPUTHDR             LOAD OUTPUT HEADER IND.          46825917
         BAL   R14,WRTLABER            LINK                             46925917
         B     CHUSHOEX                BRANCH TO CHECK FOR USER         47025917
*                                                                       47125917
HOTLX    LA    R3,OFFSET4              COMPUTE AND LOAD                 47225917
         SR    R15,R3                  THE BASE ADDRESS OF GENR3        47325917
         LR    R2,R15                  IN REGISTER 2                    47425917
         LA    R7,4095(R2)            SET R7 AS SECOND BASEREG @ZA26660 47455999
         LA    R7,1(R7)                INCREASE R7 WITH ONE    @ZA26660 47485999
         ST    R14,SAVE14              SAVE REGISTER 14                 47525917
         MVI   RETURNC,X'08'           SET ASSUMED RETURNCODE           47625917
         TM    8(R1),X'80'             I/O ERROR                        47725917
         BO    LABIOER4                                                 47825917
         TM    CLOSEOUT,X'02'          ARE WE IN CLOSE ?                47925917
         BZ    CHUSTOEX                NO-BRANCH                        48025917
         SR    R4,R4                   ZERO OUT REG 4                   48125917
         IC    R4,LABPOLAT+4           LOAD NUMBER OF LABELS TO         48225917
         LTR   R4,R4                   STORE AND TEST FOR ZERO          48325917
         BZ    RETRNC0B                ZERO-BRANCH                      48425917
         BCTR  R4,0                    DECREASE NUMBER                  48525917
         STC   R4,LABPOLAT+4           STORE NEW NUMBER                 48625917
         L     R4,TLABINDX             LOAD ADDRESS OF NEXT LABEL       48725917
         L     R3,0(R1)                LOAD ADDRESS OF LABEL BUFFER     48825917
         LTR   R3,R3                   LABEL BUFFER ADDRESS IS ZERO     48855917
         BZ    CHUSTOEX                YES-BRANCH-TEST USER EXIT        48885917
         MVC   0(80,R3),0(R4)          MOVE LABEL INTO BUFFER           48925917
         LA    R4,80(R4)               INCREASE INDEX                   49025917
         ST    R4,TLABINDX             AND RESTORE                      49125917
         TM    USEXSW,X'80'            USER EXIT REQUIRED               49225917
         BZ    SETUSEXS                NO-RETURN                        49325917
CHUSTOEX L     R15,ADOTUTLR            YES-LOAD ADDRESS OF USER         49425917
         LTR   R15,R15                 CHECK USER EXIT                  49525917
         BZ    SETUSEXS                NO EXIT-BRANCH            A44327 49625921
         IC    R14,EXCOUNT             UPDATE                           49725917
         LA    R14,1(R14)              EXIT                             49825917
         STC   R14,EXCOUNT             COUNT                            49925917
         BALR  R14,R15                 ROUTINE AND LINK                 50025917
         STC   R15,LASTRETC            STORE LAST RETURN CODE           50125917
AFTLINK3 TM    CLOSEOUT,X'02'          ARE WE IN CLOSE                  50225917
         BZ    RETRFUS                 NO-BRANCH                        50325917
         B     TESTLABP                                                 50425917
RETRNC0B MVI   RETURNC,X'00'           SET RETURN CODE =0               50525917
         B     CHUSTOEX                                                 50625917
LABIOER4 LA    R4,OTPUTTLR             LOAD OUTPUT TRAILER IND.         50725917
         BAL   R14,WRTLABER                                             50825917
         B     CHUSTOEX                                                 50925917
WRTLABER STM   R13,R1,SAVE14D          SAVE 13 TILL2                    51025917
         LA    R13,PUTSAVAR            POINT13 TO NEW SAVE AREA         51125917
         L     R1,VADDR4               LOAD MESSAGE ADDR.               51225917
         MVC   0(14,R1),0(R4)          MOVE LABEL IND                   51325917
         LA    R1,26                                                    51425917
         SLL   R1,8                                                     51525917
         LA    R4,26                                                    51625917
         AR    R1,R4                                                    51725917
         L     R15,HWRMSGA                                              51825917
         BALR  R14,R15                                                  51925917
         MVI   RETURNC,X'00'           SET RETURN CODE =0               51945917
           LA  R15,12                  LOAD CONDITION CODE =12          51965917
         BAL   R14,CHCONC              TEST FOR HIGHEST                 51985917
         MVI   LABIORSW,X'FF'          SET LABEL I/O ERROR SWIRCH       52005917
         LM    R13,R1,SAVE14D          RESTORE REGISTERS                52025917
         BR    R14                                                      52125917
QSOHLX   TM    8(R1),X'80'             OUTPUT ERROR ON LABEL            52129917
         BO    LABIOER5                YES - BRANCH                     52133917
         SR    R4,R4                   LOAD NUMBER OF LABELS            52137917
         IC    R4,BACKUP               IN BACK UP AREA                  52141917
         LTR   R4,R4                   TEST FOR ZERO                    52145917
         BZ    QSRET0                  ZERO - BRANCH                    52149917
         L     R3,0(R1)                                                 52153917
         LTR   R3,R3                   IS THERE A LAVEL BUFFER          52157917
         BZ    QSRET0                  NO - BRANCH                      52161917
         BCTR  R4,0                    DECREASE NUMBER OF LABELS IN     52165917
         STC   R4,BACKUP               BACK UP AREA AND STORE           52169917
         L     R4,BACKUPX              LOAD INDEX IN BACK UP AREA       52173917
         MVC   0(80,R3),0(R4)          MOVE LABEL TO BUFFER             52177917
         LA    R4,80(R4)               INCREASE BACK UP AREA INDEX      52181917
         ST    R4,BACKUPX              AND STORE                        52185917
         LA    R15,8                   LOAD RETURN CODE                 52189917
         RETURN                                                         52193917
LABIOER5 ST    R14,SAVE14              SAVE REG 14                      52197917
         LA    R4,OTPUTHDR             LOAD OUTPUT HEADER IND.          52201917
         BAL   R14,WRTLABER            LINK TO WRITE ROUTINE            52205917
         L     R14,SAVE14              RESTORE REG 14                   52209917
QSRET0   SR    R15,R15                                                  52213917
         RETURN                                                         52217917
*                                                                       52225917
HINXL    DS    0F                      INPUT EXIT LIST                  52325917
         DC    X'00'                                                    52425900
         DC    AL3(HIHLX)                                               52525917
ITLX     DC    X'00'                                           @ZA30822 53325999
         DC    AL3(HITLX)                                               53375999
INXL     DC    X'85'                    INPUT DCB EXIT         @ZA30822 53425999
         DC    AL3(OPENINXL)                                            55725917
*                                                                       56525917
HOUXL    DS    0F                       OUTPUT EXIT LIST                57325917
         DC    F'0'                    TOTALING AREA ADDRESS            58125917
         DC    X'00'                                                    58925900
         DC    AL3(HOHLX)                                               59725917
         DC    X'00'                                                    60525900
         DC    AL3(HOTLX)                                               61325917
OUXL     DC    X'05'                    OUTPUT DCB EXIT        @ZA30822 61375999
         DC    AL3(OPENOUXL)                                            61425999
JFCB     DC    X'87'                    INDICATE JFCB ENTRY    @ZA30822 61475999
         DC    AL3(JFCBAREA)            ADDRESS TO JFCB AREA   @ZA30822 61525999
*                                                                       63725917
OPENINXL LH    R4,BLKSI(R1)            GET BLKSIZE FROM DCB             64525917
         TM    RECFM(R1),X'C0'   RECFM. UNDEFINED               PTM5314 64725920
         BM    SKIPIN        NO, RECFM F(B) OR V(B)(S)           A36140 64775921
         MVC   LRECL(2,R1),BLKSI(R1)  YES, SET LRECL EQUAL BLKS PTM5314 64825920
         OI    RECFM(R1),X'C0'     SET DEFAULT RECFM TO U.       A36140 64835921
SKIPIN   MVI   BUFNO(R1),ZERO  SET BUFFER TO ZERO                A31435 64875920
         MVC   BUFL(2,R1),ZEROES  SET BUFFER LENGTH TO ZERO      A31435 64925920
         STM  R13,R14,SAVEINP     SAVE REGISTERS                 A36140 64975921
         L     R4,ADINUHLR             WAS INPUT HEADER EXIT     A36140 64976921
         LTR   R4,R4                   ROUTINE SPECIFIED ?       A36140 64977921
         BZ    HGENP4B                 NO, OPEN SYSUT2           A36140 64978921
         LA    R4,INPUTHDR             LOAD INPUT HEADER IND.    A36140 64979921
         BAL   R14,WRTEXMSG            LINK TO WRITE ROUTINE     A36140 64980921
         CLI   HTERMSW,X'FF'      TERMIN USER REQUEST ?          A36140 64985921
         BE    RETINP             YES, END OPEN AND RETURN       A36140 64995921
         B     HGENP4B            OPEN SYSUT2 NOW                A36140 65025921
RETINP   LM    R13,R14,SAVEINP    RESTORE REGISTERS              A36140 65075921
         BR    R14                RETURN TO OPEN SYSUT1          A36140 65125921
*                                                                       68025917
OPENOUXL LH    R4,BLKSI(R1)            GET BLKSIZE FROM DCB             68625917
         TM    RECFM(R1),X'C0'   RECFM. UNDEFINED               PTM5314 68825920
         BM    SKIPOUT       NO, RECFM=F(B)(S) OR V(B)(S)        A36140 68875921
         OI    RECFM(R1),X'C0'     SET DEFAULT RECFM TO U.       A36140 68885921
SKIPOUT  MVI   BUFNO(R1),ZERO  SET BUFFER TO ZERO                A31435 68975920
         MVC   BUFL(2,R1),ZEROES  SET BUFFER LENGTH TO ZERO      A31435 69025920
         STM   R13,R14,SAVEOUT    SAVE REGISTERS                 A36140 69075921
         B     CHKRECFM           GO TO RECFM CHECK ROUTINE      A36140 69125921
RETOUT   LM    R13,R14,SAVEOUT    RESTORE REGISTERS              A36140 69175921
         TM    TAPESW,X'10'       IS TAPE SW1 ON               @ZA30822 69225999
         BO    AFTJFCB            YES, GO BACK AND OPEN UT2    @ZA30822 69275999
         BR    R14                 RETURN TO OPEN                       71725917
*                                                                       72325917
DDERROR  CLI   LABIORSW,X'FF'          TEST LABEL I/O ERROR SWITVH      72525917
         BNE   DDERR1                  NO I/O ERROR - BRANCH            72725917
         MVI   LABIORSW,X'00'          RESET SWITCH                     72925917
         B     HTERMU                  TERMINATE                        73125917
DDERR1   L     R14,VADDR               ADDR OF ERROR MESSAGE     A29998 73625919
         MVC   7(8,R14),0(R15)   MOVE DDNAME TO MSG                     74125917
         LA    R1,15      MSG OFFSET                                    74725917
         SLL   R1,8                                                     75225917
         LA    R4,16      MSG NUMBER                                    75725917
         AR    R1,R4                   COMPUTE COMPLETE MSG CODE        75825917
         L     R15,HWRMSGA             LOAD MSG WRITER ADDRESS          75925917
         BALR  R14,R15                 LINK TO MSG WRITER               76025917
         LA    R15,12      SET CONDITION CODE                           76225917
         STH   R15,HCONCODE                                             76725917
         B     HTERMU                  TERMINATE                        77225917
VADDR    DC    A(DDERROR1)                                              77725917
         EXTRN DDERROR1                                                 78225917
*                                                                       78725917
ERRBLK1  LA    R15,12                  SET RETURN CODE OF 12            79225917
         STH   R15,HCONCODE                                             79725917
         LA    R1,HMSGBLK1             PUT MSG CODE IN BYTE 2           80225917
         SLL   R1,8                       OF REG1                       80725917
         LA    R4,17                   MESSAGE ID                       81225917
         TM    ERRBLKSW,ERRBLKS2  ALSO OUTPUT ERROR ?            A48786 81275921
         BNO   HSTOW3             NO, PRINT MSG IEB317I/IEB312I  A48786 81325921
         AR    R1,R4              ADD MSG ADDR. DISPL.           A48786 81375921
         L     R15,HWRMSGA        LOAD MSG WRITER ADDRESS        A48786 81425921
         BALR  R14,R15            BRANCH TO MSG WR. ROUTINE      A48786 81475921
ERRBLK2  LA    R15,12                  SET RETURN CODE OF 12            82225917
         STH   R15,HCONCODE                                             82725917
         LA    R1,HMSGBLK2             PUT MSG CODE IN BYTE 2           83225917
         SLL   R1,8                       OF REG1                       83725917
         LA    R4,18                   MESSAGE ID                       84225917
         B     HSTOW3                                                   84725917
         DS    0D                                                       84765917
         DC    CL8'DEB.AREA'           SUPERZAP DEBUGGING WORKAREA      84805917
         DC    38F'0'                  SHOULD BE DELETED AT COMPLET     84845917
GENS3SW  DC    X'00'                                                    84885917
EXCOUNT  DC    X'00'                                                    84925917
RETURNC  DC    X'00'                                                    84965917
LABPOLAT DC    2F'0'                   LABEL POOL ADDRESSES TABLE       85005917
BACKUP   DC    F'0'                    BACK UP AREA ADDRESS             85015917
BACKUPX  DC    F'0'                    BACK UP AREA INDEX               85025917
VADDR2   DC    V(HMSGEXIT)                                              85045917
VADDR3   DC    V(HMSGRETC)                                              85085917
LASTRETC DC    X'00'                                                    85125917
INPUTHDR DC    CL14' INPUT  HEADER'                                     85165917
OTPUTHDR DC    CL14'OUTPUT  HEADER'                                     85205917
INPUTTLR DC    CL14' INPUT TRAILER'                                     85245917
OTPUTTLR DC    CL14'OUTPUT TRAILER'                                     85285917
SAVE14D  DS    5F                      SAVE AREA FOR REGS 13-1          85325917
VADDR4   DC    V(HMSGIOER)                                              85365917
R3SAVER  DS    18F                     REGISTER SAVE AREA               85405917
PUTSAVAR DS    18F                     SAVE AREA FOR PUT                85445917
SHOUXL   DS    4C                                                       85485917
HCOPYSW  DS    1C                                                       85525917
HPOID    DS    1C                                                       85565917
LABPROSW DS    1C                                                       85605917
POSWITCH DS    1C                                                       85645917
SAVE14   DS    1F                                                       85685917
SAVEREG1 DS    1F                                                       85725917
SHINXL   DS    1C                                                       85765917
USEXSW   DS    1C                                                       85805917
INPUTDD  DC    8C' '                   AREA FOR INPUT DD NAME    A29998 85815919
OUTPUTDD DC    8C' '                   AREA FOR OUTPUT DD NAME   A29998 85825919
ZEROES   DC    H'0'                                              A31435 85835920
HWRMSGA  DC    V(HWRMSG)                                                85845917
HTERMSW  DC    X'00'                                                    85885917
FIRSTSW  DC    X'00'              FIRST ENTRY SWITCH             A48786 85895921
HCONCODE DC    H'0'                                                     85925917
         DS    0H                                                       85965917
BSREAD   DC    BL2'0010000000000000'                                    86005917
BSWRITE  DC    BL2'0000000000100000'   MACRF FOR BSAM WRITE    @YM02300 86045902
QSGETMOV DC    BL2'0101000000000000'   MACRF FOR GET MOVE               86085917
QSPUTMOV DC    BL2'0000000001010000'   MACRF FOR PUT MOVE               86125917
QSOHLXAD DC    AL3(QSOHLX)                                              86145917
SIXTEEN  DC    H'16'                                                    86165917
TWELVE   DC    H'12'                                               UL0I 86175918
LABIORSW DC    X'00'                                                    86185917
DELTERSW DC    X'00'                                                    86205917
GENS3COP DC    X'00'                                                    86245917
OPENSW   DC    X'00'                                                    86285917
OPENOUTS EQU   OPENSW                                                   86325917
CLOSEOUT EQU   OPENSW                                                   86365917
OFFSET1  EQU   HIHLX-R3START                                            86405917
OFFSET2  EQU   HITLX-R3START                                            86445917
OFFSET3  EQU   HOHLX-R3START                                            86485917
OFFSET4  EQU   HOTLX-R3START                                            86525917
ADINUHLR DC    F'0'                                                     86565917
ADINUTLR DC    F'0'                                                     86605917
ADOTUHLR DC    F'0'                                                     86645917
ADOTUTLR DC    F'0'                                                     86685917
HLABINDX DS    1F                                                       86725917
SAVEINP  DS    2F                 REGISTERS DUR. OPEN UT1        A36140 86735921
SAVEOUT  DS     2F                REGISTERS DUR. OPEN UT2        A36140 86745921
TLABINDX DS    1F                                                       86765917
SYSUT1H  DC    CL8'1 HEADER'                                            86805917
HMSGTLR  DC    CL32'SYSUT         EXIT -REQ.JOB TERM'                   86845917
VADDR1   DC    A(HMSGTLR)                                               86885917
SYSUT2H  DC    CL8'2 HEADER'                                            86925917
TAPESW   DC    X'00'                   TAPE SW1 AND SW2        @ZA30822 86927999
SAVEXPDT DS    CL3                     SAVE AREA FOR EXPDT     @ZA11962 86929999
SAVEIND1 DS    CL1                     SAVE AREA FOR JFCBIND1  @ZA11962 86930399
         DS    0F                                              @ZA11962 86931999
JFCBAREA DS    0CL176                  JFCB AREA               @ZA11962 86935900
JFCBDSNM DS    CL44                    DATA SET NAME           @ZA18366 86937999
JFCBELNM DS    CL8                     MEMBER NAME             @ZA18366 86939999
         DS    CL14                                            @ZA24162 86945999
JFCBLTYP DS    CL1                     LABEL TYP               @ZA24162 86947999
         DS    CL16                                            @ZA24162 86949999
JFCBXPDT DS    CL3                     EXPDT DATE              @ZA11962 86955900
JFCBIND1 DS    CL1                     JFCBIND1                @ZA11962 86956399
JFCBIND2 DS    CL1                     JFCBIND2                @ZA18366 86956799
         DS    CL5                                             @ZA30822 86957999
JFCBDEV  DS    CL1                                             @ZA30822 86958799
         DS    CL4                                             @ZA30822 86959599
JFCDSORG DS    CL2                                             @ZA30822 86960399
JFCRECFM DS    CL1                                             @ZA30822 86961199
JFCOPTCD DS    CL1                                             @ZA30822 86961999
JFCBLKSI DS    CL2                                             @ZA30822 86962799
JFCLRECL DS    CL2                                             @ZA30822 86963599
         DS    CL70                                            @ZA30822 86964399
         ENTRY GENS3COP                                                 86965917
         ENTRY HMSGTLR                                                  87005917
         ENTRY HDCBIN                                                   87045917
         ENTRY HDCBOUT                                                  87085917
SYSUT2T  DC    CL8'2 TRAILR'                                            87125917
SYSUT1T  DC    CL8'1 TRAILR'                                            87165917
HOUP2J   EQU   CLOSER3                 DUMMY                            87205917
HINDD    EQU   24                                                       87245917
HOUDD    EQU   32                                                       87745917
HMSDELTR EQU   22                                                       88245917
ZERO     EQU   0                                                 A31435 88445920
HMSGIIP  EQU   1                                                        88745917
HMSGBLK1 EQU   17                                                       89245917
HMSGBLK2 EQU   18                                                       89745917
HMSEQDCB EQU   51                 WARNING MESSAGE IEB352I        A48786 89795900
LIXL     EQU   1                                                        90245917
LOXL     EQU   4                                                        90745917
MLABONLY EQU   23                                                       91245917
ERRBLKSW DC    FL1'0'                  NO BLKSIZE SPECIFIED --          91745917
ERRBLKS1 EQU   1                            FOR INPUT DCB               92245917
ERRBLKS2 EQU   2                            FOR OUTPUT DCB              92745917
         DCBD  DSORG=PS                                                 93245917
DDNAM    EQU   DCBDDNAM-IHADCB                                          93745917
OFLGS    EQU   DCBOFLGS-IHADCB                                          94245917
DSORG    EQU   DCBDSORG-IHADCB                                          94745917
BLKSI    EQU   DCBBLKSI-IHADCB                                          95245917
KEYLE    EQU   DCBKEYLE-IHADCB                                          95745917
BUFNO    EQU   DCBBUFNO-IHADCB                                   A31435 95945920
BUFL     EQU   DCBBUFL-IHADCB                                           96245917
RECFM    EQU   DCBRECFM-IHADCB                                          96745917
EXLST    EQU   DCBEXLSA-IHADCB                                 @ZA16460 96795900
LRECL    EQU   DCBLRECL-IHADCB                                          97245917
MACRF    EQU   DCBMACR-IHADCB                                           97745917
IND2     EQU   DCBCIND2-IHADCB                                 @YM03265 97795902
         END                                                            98245917
