 TITLE 'IEHMVSSL-FIXED RECORD DEBLOCKING FOR IEHMOVE-LOAD MODULE ESL'   00010017
*TITLE -IEHMVSSL                                                        00020017
*FUNCTION/OPERATION: THIS MODULE WILL MOVE OR COPY DATA SETS WHICH    * 00040000
*ARE PDS OR PHYSICAL SEQUENTIAL WHICH HAVE FIXED FORMAT RECORDS       * 00060000
*WITHOUT KEYS. THIS MODULE WILL READ RECORDS AND BLOCK OR DEBLOCK THE * 00080000
*RECORDS TO THE BLOCKSIZE OF OUTPUT DCB. ISSUES A GETMAIN FOR WORKAREA* 00100000
*AND FOR A BUFFER WHICH IS AS LARGE AS COMBINED BLOCKSIZE OF INPUT AND* 00120000
*OUTPUT.                                                              * 00140000
*IF USER LABEL PROCESSING WAS REQUESTED, THIS MODULE WILL, AT END-OF- * 00143017
*DATA OR VOLUME SWITCH TIME GETMAIN IF NECESSARY FOR A LABEL SAVEAREA.* 00146017
*THE SAVED LABELS WILL THEN BE PASSED TO IEHMVSSN TO BE OUTPUT DURING * 00149017
*DATA SET WRAP-UP.                                                    * 00152017
*                                                                     * 00155017
*ENTRY POINTS: IEHMVESL                                               * 00160000
*INPUT: AT ENTRY REG 13 POINTS SAVEAREA AND REG 12 POINTS TO          * 00180000
*COMMUNICATION TABLE                                                  * 00200000
*OUTPUT: REG ARE SAME AS INPUT                                        * 00220000
*EXTERNAL ROUTINES: IEHMVSSR- PDS SUBROUTINE TO GET DIRECTORY ENTERIES* 00230017
*                   IEHMVLSU- MESSAGE WRITER                          * 00240017
*EXITS - NORMAL IEHMVSSN - IEHMVSTG                                   * 00260000
*ERRORS: IEHMVSSN                                                     * 00280000
*TABLES/WORK AREAS: IEHMVV - COMMUNICATION TABLE.                     * 00300000
***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***         00320000
*                                                                     * 00360000
*                                                                     * 00380000
*                                                                     * 00420000
*                                                                     * 00440000
***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***         00460000
IEHMVSSL CSECT                THIS MODULE WILL READ BPAM OR BSAM        00480000
*                        BLOCKED RECORDS AND REBLOCK THE RECORDS        00500000
*                        TO THE OUTPUT DATASET SPECIFICATIONS IT        00520000
*                        WILL DEBLOCK RECORDS WHICH ARE TOO LONG        00540000
*                        FOR OUTPUT DATASET                    @YA02544 00544002
*A020800-021920                                                @YA02544 00548002
*C067180                                                       @YA02544 00552002
*D020800-021800                                                @YA02544 00556002
*C079000                                                         A99999 00560122
*                                                                A37903 00560421
* 018000,040000                                                  A37888 00562021
*0326000200,002400,005700,070200                                   UL0H 00570017
*0326 058800-059200                                                8114 00575017
*                                                                       00580000
BAS10    EQU   10                                                       00600000
BAS11    EQU   11                                                       00620000
BAS12    EQU   12                                                       00640000
RE0      EQU   0                                                        00660000
RE1      EQU   1                                                        00680000
RE2      EQU   2                                                        00700000
RE3      EQU   3                                                        00720000
RE4      EQU   4                                                        00740000
RE5      EQU   5                                                        00760000
RE6      EQU   6                                                        00780000
RE7      EQU   7                                                        00800000
RE8      EQU   8                                                        00820000
RE9      EQU   9                                                        00840000
RTRN     EQU   14                                                       00860000
GOTO     EQU   15                                                       00880000
DSORG    EQU   26                                                       00900000
EODAD    EQU   33                                                       00920000
SYNAD    EQU   57                                                       00940000
BLKSZ    EQU   62                                                       00960000
RECFM    EQU   36                                                       00980000
FIXED    EQU   X'80'                                                    01000000
VARID    EQU   X'40'                                                    01020000
TRUNC    EQU   X'08'                                                    01040000
         SPACE 3                                                        01060000
IEHMVESL SAVE  (14,12),T,ESJ-TEST-9-20-65                               01080000
         USING IEHMVESL,BAS10                                           01100000
         USING IEHMVV,BAS12                                             01120000
         USING WRKBUF,BAS11                                             01140000
         USING PRINT,1                                                  01160000
         ENTRY IEHMVESL                                                 01180000
         LR    BAS10,GOTO          LOAD BASE FOR PROGRAM                01200000
*                                                                  UL0H 01202017
* ACTIVATE USER INPUT TRAILER LABEL EXIT IF REQUIRED               UL0H 01204017
*                                                                  UL0H 01206017
         CLI   UDCBITLE,DEACTIVE        IS ITLE INACTIVE           UL0H 01208017
         BE    NEXTCODE                 YES,CONTINUE               UL0H 01210017
         MVC   UDCBITLE(4),XXITLE       NO, SET UP ITLE LIST ADDR  UL0H 01212017
NEXTCODE DS    0H                                                  UL0H 01214017
*                                                                  UL0H 01216017
         L     RE2,IEHMVV30        ADDR OF FROM DCB                     01220000
         MVC   SYNAD(3,RE2),SINAD                                       01240000
         L     RE3,IEHMVV31        ADDR OF TO DCB                       01260000
         MVC   SYNAD(3,RE3),SINAD                                       01280000
         LA    RE0,148             LOAD AMOUNT FOR WORKBUF       A25706 01310019
         GETMAIN  R,LV=(0)                                              01320000
         LR    BAS11,RE1                                                01340000
         MVI   0(11),X'00'         CLEAR WORKAREA TO ZEROS              01360000
         MVC   1(143,11),0(11)                                          01380000
         MVC   BLKIN(2),BLKSZ(RE2)                                      01400000
         MVC   BLKOUT(2),BLKSZ(RE3)                                     01420000
         ST    BAS11,GOTAT              STORE ADDR OF WORKAREA          01440000
         IEHPRE (14,1),TF                                               01460000
         TM    DSORG(RE3),X'40'         IS THIS A BSAM DATASET          01480000
         BO    BSMRTN                   YES  SET UP FOR BSAM            01500000
PDSRTN   MVC   EODAD(3,RE2),BPEOD                                       01520000
         L     RE2,IEHMVV31        ADDR OF 'TO' DCB.             A25706 01526019
         MVC   PDSTRKBL(2),18(RE2)   SAVE INITIAL TRACK BALANCE  A25706 01532019
         SR    RE2,RE2                                                  01540000
         SPACE 3                                                        01560000
PDGETM   LA    RE3,CCHHR                ADDR OF BUFFER FOR DIRECTORY    01580000
         LINK   EP=IEHMVESR             GET MEMBER NAME                 01600000
         B     BACK(15)                                                 01620000
BACK     B     CHKALS                                                   01640000
         B     ENDJOB                                                   01660000
         SPACE 3                                                        01680000
MVMOR    LH    RE0,BLKIN                ADD BLOCKSIZE OF FROM AND TO    01700000
         AH    RE0,BLKOUT                DCB'S TO COMPUTE LENGTH OF     01720000
         ST    RE0,GOTEN               STORE AMOUNT FOR BUFFER          01740000
         GETMAIN R,LV=(0)                BUFFER                         01760000
         ST    RE1,BUFPTR               ADDR OF BUFFER                  01780000
         TM    IEHMVV30+4,X'80'        HAS FIRST REC BEEN READ   A37888 01800021
         BO    HAVBUF                                                   01820000
         SR    RE6,RE6                                                  01840000
         SR    RE7,RE7                                             8114 01844017
         L     RE1,IEHMVV30             ADDR OF FROM DCB           8114 01848017
         TM    17(RE1),X'81'            TEST DEVICE TYPE FOR TAPE  8114 01852017
         BO    FXDRTN                   YES  BYPASS POINT MACRO    8114 01856017
         L     RE0,TTRC                 SET UP POINTER FOR              01860000
         IC    RE0,ZERO                  POINT ROUTINE TO POINT TO      01880000
         ST    RE0,POINT                 FIRST RECORD OF MEMBER         01900000
         BAL   RE9,PTRTN                                                01940000
         B     FXDRTN                                                   01980000
         SPACE 3                                                        02000000
CHKALS   TM    CTT,X'80'           IS THIS AN ALIAS DIRECTORY ENTRY     02020000
         BO    STALS               YES  STOW ALIAS                      02040000
         NI    SWITCH,X'FE'        ZERO NOSTOW SWITCH SET WHEN   A25706 02046019
*                                    LAST TRUE MEMBER WAS A DUP. A25706 02052019
         TM    CTT,X'60'           ARE USER DATA TTR'S PRESENT          02060000
         BC    5,ABORT                 YES BRANCH TO ABORT     @YA02544 02080002
         TM    IEHMVV20+3,X'08'        PREALLOCATION           @YA02544 02086002
         BZ    MVMOR                   NO DON'T CHECK          @YA02544 02092002
         XC    BLDLIST,BLDLIST         CLEAR                   @YA02544 02100002
         MVI   BLDLIST+1,X'01'         INDIC ONE ENTRY         @YA02544 02110002
         MVI   BLDLIST+3,X'0E'         ENTRY LENGTH            @YA02544 02120002
         MVC   BLDLIST+4(8),RENAME     GET MEMBER NAME         @YA02544 02126002
         L     (RE7),IEHMVV31          TO DCB ADDRESS          @YA02544 02132002
         BLDL  (RE7),BLDLIST           SEE IF MEMBER EXISTS    @YA02544 02140002
         LTR   15,15                   MEMBER FOUND            @YA02544 02150002
         BZ    DUPE1                   YES PRINT MSG           @YA02544 02160002
         B     MVMOR                   NO CONTINUE             @YA02544 02166002
PTRTN    LA    RE1,0(0,RE1)                                    @YA02544 02172002
         LA    RE0,POINT               TTR ADDR FOR POINT      @YA02544 02180002
         POINT (1),(0)                                         @YA02544 02190002
         BR    RE9                                                      02200000
         SPACE 3                                                        02220000
WRITF    L     RE3,BUFPTR              LOAD ADDR OF BUFFER              02240000
WRITF2   L     RE2,IEHMVV31             ADDRESS OF DCB                  02260000
         LA    2,0(0,2)                 CLEAR HIGH ORDER BYTE           02280000
         L     RE1,IEHMVV31+4           ADDR OF DECB                    02300000
         LA    1,0(0,1)                 CLEAR HIGH ORDER BYTE           02320000
         WRITE (1),SF,(2),(3),MF=E      WRITE RECORD                    02340000
         L     RE1,IEHMVV31+4           ADDR OF DECB                    02360000
         LA    1,0(0,1)                 CLEAR HIGH ORDER BYTE           02380000
         CHECK (1)                      CHECK FOR GOOD READ             02400000
         SH    RE7,BLKOUT               SUBT BLKOUT FROM AMT IN CORE    02420000
         CH    RE7,BLKOUT               IS AMT IN CORE MORE THAN BLKOUT 02440000
         BL    SHIFT                    NO  GO TO SHIF ROUTINE          02460000
         AH    RE3,BLKOUT               ADJUST PTR TO DATA IN CORE      02480000
         B     WRITF2                   YES  WRITE ANOTHER RECORD       02500000
*                                                                       02520000
*                                                                       02540000
SHIFT    LTR   RE7,RE7                  IS AMT IN CORE ZERO             02560000
         BZ    READF                    YES  GO TO READ                 02580000
         BP    SHFT2                    NO   GO TO SHFT2                02600000
         EX    0,*                                                      02620000
MOVER    MVC   0(1,8),0(3)              MOVE DATA TO START OF BUFFER    02640000
         SPACE 3                                                        02660000
HAVBUF   L     RE1,IEHMVV30+4          SET UP TO MOVE THE FIRST         02680000
         L     RE6,12(0,RE1)           RECORD READ BY ESV INTO THE      02700000
         ST    RE6,SAV03               BUFFER GOTTEN BY ESL MODULE      02720000
         L     RE2,IEHMVV30                                             02740000
         LH    RE6,BLKIN                                                02760000
         ST    RE6,SAV02                                                02780000
         L     RE3,SAV03                                                02800000
         L     RE8,BUFPTR                                               02820000
         LR    RE7,RE6                                                  02840000
         CH    RE7,BLKOUT IS ESV RECORD LARGE ENOUGH TO WRITE?     7207 02860000
         BNL   WRITF2  IF YES, WRITE FROM ESV BUFFER.              7207 02880000
         B     SHFTSAV   NO, BR TO XFER RECORD FROM ESV TO ESL BUF 7207 02900000
FXDRTN   CH    RE7,BLKOUT               SHOULD WE READ OR WRITE         02920000
         BNL   WRITF                     BRANCH TO WRITE                02940000
READF    LR    RE6,RE7                  LOAD INDEX REG WITH AMOUNT      02960000
         L     RE8,BUFPTR                                               02980000
RDCHK    L     RE2,IEHMVV30        ADDR OF FROM DCB                     03000000
         L     RE1,IEHMVV30+4      ADDR OF FROM DECB                    03020000
         LA    RE3,0(RE6,RE8)      ADDR OF START OF DATA                03040000
         BAL   RE9,READM                                                03060000
         L     RE1,IEHMVV30+4                                           03080000
         BAL   RE9,CHECM                                                03100000
         B     TSTRNC                                                   03120000
SHFT2    AH    RE3,BLKOUT  SET PTR TO START OF INFO TO BE MOVED    7207 03140000
SHFTSAV  LR    RE4,RE7  LOAD REG 4 WITH NO OF BYTES TO BE MOVED    7207 03160000
SHFT3    LA    RE5,256                  SET UP MAXIMUM LENGTH FOR MOVE  03180000
         CR    RE4,RE5    IS AMOUNT TO BE MOVED LARGER THAN 256?   7207 03200000
         BL    ADJST                      256  NO  BRANCH TO ADJUST     03220000
MOVE     BCTR  RE5,0                    SUBT ONE FOR EXECUTE            03240000
         EX    RE5,MOVER                EXECUTE MOVER                   03260000
         LA    RE5,1(0,5)               ADD ONE TO LENGTH MOVED         03280000
         AR    RE3,RE5   BUMP PTR. TO NEXT INFO TO BE MOVED-       7207 03300000
*          (APPLICABLE ONLY WHEN MORE THAN ONE MOVE IS EXECUTED)   7207 03320000
         AR    RE8,RE5         BUMP BUFFER POINTER                 7207 03340000
         SR    RE4,RE5        SUBTRACT AMOUNT MOVED THIS TIME      7207 03360000
         LTR   RE4,RE4        TEST COUNT OF BYTES MOVED            7207 03380000
         BZ    READF    BRANCH TO READ IF ALL HAVE BEEN MOVED      7207 03400000
         B     SHFT3                    NO  LOOP TO SHIFT MORE          03420000
ADJST    LR    RE5,RE4   LOAD NO. OF BYTES FOR FINAL MOVE          7207 03440000
         B     MOVE                                                     03460000
HAVBUF01 L     RE0,SAV02                                                03480000
         L     RE1,SAV03                                                03500000
         FREEMAIN  R,LV=(0),A=(1)                                       03520000
         B     GIVBAC                                                   03540000
         SPACE 3                                                        03560000
TSTRNC   L     RE2,IEHMVV30             ADDR  OF  DCB                   03580000
         LR    RE1,RE2                                                  03600000
         L     RE2,68(0,2)              ADDR  OF  IOB                   03620000
         SR    RE5,RE5                                                  03640000
         IC    RE5,16(0,1)              ADD KEY LENGTH                  03660000
         AH    RE5,BLKSZ(0,RE1)         ADD BLOCKSIZE                   03680000
         SH    RE5,22(0,RE2)            SUBT RESIDUAL LNG FROM IOB      03700000
         AR    RE7,RE5                                                  03720000
         B     FXDRTN                                                   03740000
         SPACE 3                                                        03760000
BSMRTN   MVC   EODAD(3,RE2),BSEOD                                       03780000
         LA    RE2,256                                                  03800000
         ST    RE2,TTRC                                                 03820000
         B     MVMOR                                                    03840000
ALDONE   LTR   RE7,RE7      HAS EVERYTHING BEEN WRITTEN?           7207 03860000
         BZ    SEQDONE       EVERYTHING HAS BEEN WRITTEN           7207 03880000
         BAL   RE4,WRTRSEQ    NO, GO TO WRITE TRUNCATED BLOCK      7207 03900000
SEQDONE  L     RE0,GOTEN          SET REG ZERO FOR FREEMAIN        7207 03920000
         L     RE1,BUFPTR              ADDR OF BUFFER                   03940000
         FREEMAIN  R,LV=(0),A=(1)                                       03960000
ENDJOB   IEHPOST (14,1),T                                               03980000
         TM    IEHMVV30+4,X'80'        HAS FIRST REC BEEN READ   A37888 04000021
         BO    HAVBUF01                FREEMAIN THAT WAS PASSED TO SSL  04020000
GIVBAC   LA    RE0,148             SIZE OF WORKBUF WORKAREA      A25706 04040019
         LR    RE1,BAS11                                                04060000
         FREEMAIN  R,LV=(0),A=(1)                                       04080000
         TM    IEHMVV20+2,X'40'        IS MIDABORT BIT ON               04100000
         BO    WRAPIT                  YES                              04120000
         TM    IEHMVV20+2,X'08'        IS INC REP BIT ON                04140000
         BO    INCLUDES                YES                              04160000
WRAPIT   XCTL  (2,12),EP=IEHMVESN                                       04180000
INCLUDES TM    IEHMVV20,X'10'          DSGROUP OPERATION           VS0H 04190017
         BC    1,WRAPIT                YES, TO VESN FOR WRAPUP     VS0H 04200017
         XCTL  (2,12),EP=IEHMVETG      NO, TO PDS INC-REP MODULE   VS0H 04210017
         SPACE 3                                                        04220000
DONE     LTR   RE7,RE7                  HAS EVERYTHING BEEN WRITTEN     04240000
         BZ    STOWER                   YES GO TO STOW                  04260000
         LA    RE4,STOWER    SET END OF PDS OR SDS                 9256 04280000
WRTRSEQ  L     RE2,IEHMVV31      LOAD ADDRESS OF DCB               7207 04300000
         LA    2,0(0,2)                                                 04320000
         STH   RE7,BLKSZ(0,RE2)         CHANGE BLOCK SIZE FOR SHORT REC 04340000
         L     RE1,IEHMVV31+4           ADDR OF DECB                    04360000
         LA    1,0(0,1)                 CLEAR HIGH ORDER BYTE           04380000
         L     RE3,BUFPTR        ADDR OF BUFFER                         04400000
         BAL   RE9,WRITM                GO TO WRITE LAST RECORD         04420000
         BAL   RE9,CHECM                                                04440000
         LH    RE5,BLKOUT               RESTORE BLOCKSIZE IN DCB        04460000
         STH   RE5,BLKSZ(0,RE2)                                         04480000
         BR    RE4  BR TO 'STOWAL' FOR PDS OR 'SEQDONE' FOR SEQ DS 7207 04500000
STOWAL   MVC   NAME(8),RENAME           STOW MEMBER                     04520000
         L     RE1,IEHMVV31                                             04540000
         LA    1,0(0,1)                                                 04560000
         LA    RE0,NAME                                                 04580000
         STOW  (1),(0),A                                                04600000
         MVC   OLDTTR(3),TTRC                                           04620000
         B     STOWED(15)                                               04640000
STOWED   B     STWMSG                                                   04660000
         B     DUPLCTE                                                  04680000
         EX    0,*                                                      04700000
         B     DIRFUL                                                   04720000
         B     STOERR                                                   04740000
******************************************************************21919 04741021
*                                                                *21919 04742021
*   NEXT RETURN CODES ALSO GIVE THE MESSAGE:                     *21919 04743021
*         IEH326I I/O ERROR ENCOUNTERED IN OUTPUT DATA SET       *21919 04744021
*   BUT THESE RETURN CODES ARE CAUSED BY OTHER ERRORS            *21919 04745021
*                                                                *21919 04746021
******************************************************************21919 04747021
         B     STOERR        INDICATES I/O REQUESTS AGAINST THE   21919 04748021
*                            DCB ARE STILL OUTSTANDING            21919 04749021
         B     STOERR        INDICATES THE DCB IS NOT OPEN        21919 04750021
         B     STOERR        INDICATES CONDITIONAL GETMAIN WITHIN 21919 04751021
*                            STOW WAS UNSUCCESSFUL                21919 04752021
         SPACE 3                                                        04760000
WRITM    WRITE (1),SF,(2),(3),MF=E      WRITE RECORD                    04780000
         BR    RE9                                                      04800000
         SPACE 3                                                        04820000
CHECM    LA    1,0(0,1)                 CLEAR HIGH ORDER BYTE           04840000
         CHECK (1)                                                      04860000
         BR    RE9                                                      04880000
         SPACE 3                                                        04900000
READM    LA    1,0(0,1)                                                 04920000
         LA    2,0(0,2)                                                 04940000
         READ  (1),SF,(2),(3),MF=E                                      04960000
         TM    IEHMVV74+4,X'FF'   TEST FOR I/O ERROR ON LABELS     UL0H 04966017
         BO    YESLABER           DURING EOV,IF YES - BRANCH       UL0H 04972017
         BR    RE9                                                      04980000
YESLABER L     RE3,A126           PROVIDE MSG FOR MOVE TO BUFFER   UL0H 04981017
         IC    RE2,A126           PROVIDE MSG FOR MOVE INSTR       UL0H 04982017
         BAL   RE5,CLEAR          CLEAR PRINT BUFFER               UL0H 04983017
         LA    RE1,IEHMVV00       PRINT BUF ADDRESS FOR MSG MOVE   UL0H 04984017
         EX    2,MOVMES           MOVE MSG TO PRINT BUFFER         UL0H 04985017
         ST    RE9,SAVERE9        SAVE REISTER 9                   UL0H 04986017
         BAL   RE9,MESSAG02       PRINT MSG                        UL0H 04987017
         L     RE9,SAVERE9        RESTORE REGISTER 9               UL0H 04988017
         NI    IEHMVV74+4,X'00'   RESET I/O ERROR ON LABEL SWITCH  UL0H 04989017
         BR    RE9                RETURN                                04990017
STOWER   L     RE1,BUFPTR          FREE BUFFER BEFORE STOW              05000000
         L     RE0,GOTEN                                                05020000
         FREEMAIN R,LV=(0),A=(1)                                        05040000
         LA    2,10                                                     05060000
STALS    TM    SWITCH,X'01'                                             05080000
         BO    NOSTOW                                                   05100000
         MVC   TTRC(3),OLDTTR                                           05120000
         B     STOWAL                                                   05140000
NOSTOW   L     RE3,A125                                                 05160000
         IC    RE2,A125                                                 05180000
         BAL   RE9,MESSAGE                                              05200000
         B     PDGETM                                                   05220000
DUPLCTE  TM    CTT,X'80'           IS THIS AN ALIAS DIR ENTRY.   A25706 05224019
         BO    DUPE1               YES-- THIS IS A DUP ALIAS.    A25706 05228019
         OI    SWITCH,X'01'        SET NO STOW SWITCH.           A25706 05232019
         L     RE1,IEHMVV31        ADDR OF 'TO' DCB.             A25706 05236019
         MVC   0(3,RE1),TTRC       SET RELAD FIELD IN TO DCB.    A25706 05240019
         MVI   CTT,X'00'           ZERO 'C' BYTE OF STOW LIST    A25706 05244019
*                                     AND USE TTR RETURNED BY    A25706 05248019
*                                     STOW FOR BLOCK ADDR IN     A25706 05252019
*                                     POINT.  POINT TO RECOVER   A25706 05256019
*                                     SPACE WHERE DUP  MEMBER    A25706 05260019
*                                     WRITTEN.                   A25706 05264019
         LA    RE0,TTRC            POINT R0 TO STOW LIST TTR.    A25706 05268019
         POINT (1),(0)             RECOVER DUP NAME SPACE.       A25706 05272019
         L     RE1,IEHMVV31        'TO' DCB ADDR.                A25706 05276019
         MVC   18(2,RE1),PDSTRKBL   RESTORE TRACK BALANCE STORED A25706 05280019
*                                      FROM LAST SUCCESFUL STOW  A25706 05284019
         OI    48(RE1),X'80'       SET DCBOFLGS TO INDICATE      A25706 05288019
*                                      LAST I/O OPERATION WAS    A25706 05292019
*                                      A WRITE.  THIS WILL FORCE A25706 05296019
*                                      A MERGE TO THE DSCB AT    A25706 05300019
*                                      CLOSE TIME IF LAST        A25706 05304019
*                                      MEMBER IS A DUP.          A25706 05308019
DUPE1    L     RE3,A119                                                 05320000
         IC    RE2,A119                                                 05340000
         BAL   RE9,MESSAGE                                              05360000
         B     PDGETM                                                   05380000
         B     ABORT                                                    05400000
STWMSG   L     RE1,IEHMVV31        'TO' DCB ADDR.                A25706 05408019
         MVC   PDSTRKBL(2),18(RE1)  SAVE TRACK BALANCE AFTER     A25706 05416019
*                                      SUCCESSFUL STOW.          A25706 05424019
         L     RE3,A118            MEMBER MOVED/COPIED MESSAGE   A25706 05432019
         IC    RE2,A118                                                 05440000
         BAL   RE9,MESSAGE                                              05460000
         B     PDGETM                                                   05480000
         B     ABORT                                                    05500000
DIRFUL   L     RE3,A121                                                 05520000
         IC    RE2,A121                                                 05540000
         BAL   RE9,MESSAGE                                              05560000
         B     ABORT                                                    05580000
         B     ABORT                                                    05600000
ABORT    OI    IEHMVV20+2,X'40'                                         05620000
         B     ENDJOB                                                   05640000
STOERR   L     RE3,A124                                                 05660000
         IC    RE2,A124                                                 05680000
         L     RE4,IEHMVV21+4                                           05700000
         BAL   RE9,MESSAG03                                             05720000
         B     ABORT                                                    05740000
         B     ABORT                                                    05760000
SORRY    ST    RE1,POINT                *** SYNAD ROUTINE ***      8114 05780017
         TM    POINT,X'80'                                              05800000
         BO    READERR                                                  05820000
         TM    POINT,X'40'                                              05840000
         BO    WRITERR                                                  05860000
ABORTED  OI    IEHMVV20+2,X'40'                                         05940000
         OI    IEHMVV41+13,X'02'       SET RETURNCODE TO 8       A37903 05950021
         B     ALDONE                                                   05960000
READERR  L     RE3,A122                                                 05980000
         IC    RE2,A122                                                 06000000
         L     RE4,IEHMVV21                                             06020000
         BAL   RE9,MESSAG01                                             06040000
         B     ABORTED                                                  06060000
         B     ABORTED                                                  06080000
WRITERR  L     RE3,A123                                                 06100000
         IC    RE2,A123                                                 06120000
         L     RE4,IEHMVV21+4                                           06140000
         BAL   RE9,MESSAG01                                             06160000
         B     ABORTED                                                  06180000
         B     ABORTED                                                  06200000
MOVMES   MVC   MSG(1),0(3)                                              06220000
MESSAGE  BAL   RE5,CLEAR                                                06240000
         LA    RE1,IEHMVV00                                             06260000
         EX    2,MOVMES                                                 06280000
         MVC   NAMES(8),NAME                                            06300000
         B     MESSAG02                                                 06320000
MESSAG01 BAL   RE5,CLEAR                                                06340000
         LA    RE1,IEHMVV00                                             06360000
         EX    2,MOVMES                                                 06380000
         MVC   NAMES01(8),NAME                                     8114 06400017
         MVC   NAMES02(44),0(4)                                         06420000
         B     MESSAG02                                                 06440000
MESSAG03 BAL   RE5,CLEAR                                                06460000
         LA    RE1,IEHMVV00                                             06480000
         EX    2,MOVMES                                                 06500000
         MVC   NAMES03(44),0(4)                                         06520000
         B     MESSAG02                                                 06540000
MESSAG02 LR    RE3,RE1                                                  06560000
         LINK   EP=IEHMVESU           GO TO MESSAGE WRITER              06580000
         AR    RE9,15                                                   06600000
         BR    RE9                                                      06620000
CLEAR    LA    RE1,IEHMVV00                                             06640000
         MVC   CC(1),BLANK                                              06660000
         MVC   MSG(120),CC                                              06680000
         BR    RE5                                                      06700000
*                                                                  UL0H 06700217
* USER INPUT TRAILER EXIT ROUTINE                                  UL0H 06700417
*                                                                  UL0H 06700617
ITLR     DS    0H                                                  UL0H 06700817
         LA    RE4,OFFSET1             SET UP                      UL0H 06701017
         SR    GOTO,RE4                ADDRESSABILITY              UL0H 06701217
         LR    BAS10,GOTO              FOR EXIT ROUTINE            UL0H 06701417
         L     RE4,0(0,RE1)             GET ADDRESS OF LABEL READ  UL0H 06701617
*                            FOR LATER MOVE TO USER                UL0H 06701817
         LTR   RE4,RE4                  ARE USER LABELS PRESENT    UL0H 06702017
         BNE   IOERR                    YES.  CHECK IF OK          UL0H 06702217
*                                                                  UL0H 06702417
NOLABEL  DS    0H                                                  UL0H 06702617
         MVI   UDCBITLE,X'00'           DEACTIVATE LABEL EXIT      UL0H 06702817
         MVI   UDCBOTLE,X'00'           DEACTIVATE LABEL EXIT      UL0H 06703017
         MVI   IEHMVV20+2,X'40'        SET MIDABORT SWITCH TO TELL UL0H 06703217
*                                      VESN THIS IS END OF ACTION  UL0H 06703417
         SR    GOTO,GOTO                NO, RETURN CODE 0 TO EOV   UL0H 06703617
*                                         TO IGNORE ADDITIONAL LAB UL0H 06703817
         BR    RTRN                     RETURN TO EOV              UL0H 06704017
*                                                                  UL0H 06704217
IOERR    DS    0H                                                  UL0H 06704417
         CLI   8(RE1),X'80'             PERM ERROR FROM PARAM LIST UL0H 06704617
         BNE   TRKAVAIL                 NO. CHECK FOR TRACK AVAIL  UL0H 06704817
LABERR   DS    0H                                                  UL0H 06705017
         OI    IEHMVV74+4,X'FF'   SET LABELI/O ERROR FLAG          UL0H 06705717
         BR    RTRN                     RETURN TO EOV OPERATION    UL0H 06706417
TRKAVAIL DS    0H                                                  UL0H 06706617
         CLI   IEHMVV72+10,X'FF'        DA+NLT FLAG ON             UL0H 06706817
*                            INDICATES NO U.L. TRACK ALLOCATED     UL0H 06707017
         BNE   CORAVAIL                 NO PROCESS LABELS          UL0H 06707217
*                                                                  UL0H 06707417
*  OUTPUT MESSAGE - NO USER LABELS MOVE/COPIED.  NO LABEL TRACK.   UL0H 06707617
*                                                                  UL0H 06707817
         MVI   IEHMVV72+14,X'FF'        TELL CLOSE TO OUTPUT MSG   UL0H 06708017
         B     NOLABEL                 GO SET RC, RETURN TO CLOSE  UL0H 06708217
*                                                                  UL0H 06708417
CORAVAIL DS    0H                                                  UL0H 06708617
         CLC   IEHMVV72(4),ALLZEROS     CORE OBTAINED FOR LABELS   UL0H 06708817
         BNE   INITIAL                  YES, INITIALIZE POINTERS   UL0H 06709017
         GETMAIN R,LV=640              GET CORE FOR LABELS         UL0H 06709217
         ST    RE1,IEHMVV72            SAVE GOTTEN CORE ADDRESS    UL0H 06709417
INITIAL  DS    0H                                                  UL0H 06709617
         CLC   0(4,RE4),UTL1DEF        FIRST LABEL IN GROUP        UL0H 06709817
         BNE   SAVLABEL                NO, BYPASS 1ST LABEL SETUP  UL0H 06710017
         MVC   IEHMVV72+4(4),IEHMVV72   SET POINTER TO LABEL SAVLOCUL0H 06710217
         MVI   IEHMVV72+12,X'00'        CLEAR LABEL COUNTER        UL0H 06710417
*                                                                  UL0H 06710617
SAVLABEL DS    0H                                                  UL0H 06710817
         L     RE1,IEHMVV72+4           GET ADDRESS OF CURRENT     UL0H 06711017
*                                         LABEL SAVEAREA           UL0H 06711217
         MVC   0(80,RE1),0(RE4)         SAVE LABEL IN GOTTEN CORE  UL0H 06711417
         LA    RE1,80(0,RE1)            UPDATE POINTER TO NEXT LO- UL0H 06711617
         ST    RE1,IEHMVV72+4           CATION IN LABEL SAVEAREA   UL0H 06711817
         SR    RE4,RE4                  UPDATE                     UL0H 06712017
         IC    RE4,IEHMVV72+12          LABEL                      UL0H 06712217
         LA    RE4,1(RE4)               COUNTER                    UL0H 06712417
         STC   RE4,IEHMVV72+12          BY ONE                     UL0H 06712617
         LA    GOTO,4                   RETURN CODE OF 4 TO EOV    UL0H 06712817
*                                         TO GET ADDITIONAL LABELS UL0H 06713017
         BR    RTRN                     RETURN TO EOV              UL0H 06713217
*                                                                  UL0H 06713417
XXITLE   DC    X'03'                   INPUT TRAILER LABEL         UL0H 06713617
         DC    AL3(ITLR)                   ROUTINE EXIT            UL0H 06713817
OFFSET1   EQU   ITLR-IEHMVESL                                      UL0H 06714017
ALLZEROS DC    1F'0'                                               UL0H 06715017
UTL1DEF  DC    CL4'UTL1'                                           UL0H 06716017
DEACTIVE EQU   X'00'                                               UL0H 06717017
BLDLIST  DS    CL18                                            @YA02544 06718002
         DS    0F                                                       06720000
A118     DC    AL1(M119-M118-1)         LENGTH MINUS ONE OF MESSAGE     06740000
         DC    AL3(M118)                                                06760000
A119     DC    AL1(M120-M119-1)                                         06780000
         DC    AL3(M119)                                                06800000
A120     DC    AL1(M121-M120-1)                                         06820000
         DC    AL3(M120)                                                06840000
A121     DC    AL1(M122-M121-1)                                         06860000
         DC    AL3(M121)                                                06880000
A122     DC    AL1(M123-M122-1)                                         06900000
         DC    AL3(M122)                                                06920000
A123     DC    AL1(M124-M123-1)                                         06940000
         DC    AL3(M123)                                                06960000
A124     DC    AL1(M125-M124-1)                                         06980000
         DC    AL3(M124)                                                07000000
A125     DC    AL1(M126-M125-1)                                    UL0H 07020017
         DC    AL3(M125)                                                07040000
A126     DC    AL1(M130-M126-1)                                    UL0H 07046017
         DC    AL3(M126)                                           UL0H 07052017
A130     DC    AL1(M131-M130-1)                                         07060000
         DC    AL3(M130)                                                07080000
SINAD    DC    AL3(SORRY)                                               07100000
BSEOD    DC    AL3(ALDONE)                                              07120000
BPEOD    DC    AL3(DONE)                                                07140000
BLANK    DC    CL1' '                                                   07160000
ZERO     DC    X'00'                                                    07180000
WRKBUF   DSECT 0D                                                       07200000
PDSTRKBL DS    H                   TRACK BALANCE STORED HERE     A25706 07202019
*                                      AFTER EVERY SUCCESSFULL   A25706 07204019
*                                      STOW.  RESTORED FROM      A25706 07206019
*                                      HERE TO DCB AFTER DUP     A25706 07208019
*                                      NAME STOW.                A25706 07210019
         DS    H                   UNUSED.                       A25706 07212019
POINT    DS    F                                                        07220000
BLKIN    DS    H                                                        07240000
BLKOUT   DS    H                                                        07260000
GOTEN    DS    F                                                        07280000
GOTAT    DS    F                                                        07300000
BUFPTR   DS    F                                                        07320000
SAV01    DS    F                                                        07340000
SAV02    DS    F                                                        07360000
SAV03    DS    F                                                        07380000
SAV04    DS    F                                                        07400000
SAVERE9  DS    1F                 SAVE AREA FOR REGISTER 9         UL0H 07410017
OLDTTR   DS    F                                                        07420000
SWITCH   DS    CL3                                                      07440000
CCHHR    DS    CL5                                                      07460000
NAME     DS    CL8                                                      07480000
TTRC     DS    CL3                                                      07500000
CTT      DS    CL1                                                      07520000
         DS    CL62                                                     07540000
RENAME   DS    CL8                                                      07560000
PRINT    DSECT                                                          07580000
CC       DS    CL1                                                      07600000
MSG      DS    CL15                                                     07620000
NAMES    DS    CL17                                                     07640000
NAMES01  DS    CL17                                                     07660000
NAMES03  DS    CL10                                                     07680000
NAMES02  DS    CL61                                                     07700000
        IEHMVV                                                          07720000
         ORG   IEHMVV70                                            UL0H 07726017
         IEHDCBXL                                                  UL0H 07732017
SPEAK    CSECT                                                          07740000
M118     DC    CL24'  MEMBER NAMED          '                           07760000
         DC    CL22'HAS BEEN MOVED/COPIED.'                             07780000
M119     DC    CL30'IEH319I MEMBER          NOT MO'                     07800000
         DC    CL30'VED/COPID. DUPLICATE NAME IN O'                     07820000
         DC    CL15'UTPUT DATA SET.'                                    07840000
M120     DC    X'00'                                                    07860000
M121     DC    CL30'IEH321I MEMBER          NOT MO'                     07880000
         DC    CL30'VED/COPIED. OUTPUT DIRECTORY I'              A99999 07900022
         DC    CL7'S FULL.'                                             07920000
M122     DC    CL30'I/O ERROR ENCOUNTERED IN MEMBE'                     07940000
         DC    CL29'R          OF INPUT DATA SET '                      07960000
M123     DC    CL30'I/O ERROR ENCOUNTERED IN MEMBE'                     07980000
         DC    CL30'R          OF OUTPUT DATA SET '                     08000000
M124     DC    CL30'IEH326I I/O ERROR ENCOUNTERED '                     08020000
         DC    CL19'IN OUTPUT DATA SET '                                08040000
M125     DC    CL24'  MEMBER NAMED          '                           08060000
         DC    CL32'IS AN ALIAS AND HAS NOT BEEN STO'                   08080000
         DC    CL32'WED, TRUE MEMBER WAS NOT STOWED.'                   08100000
M126     DC    CL29'PERM I/O ERROR WHILE READING '                 UL0H 08105017
         DC    CL30'USER INPUT TRAILER LABELS. NO '                UL0H 08110017
         DC    CL30'MORE LABELS WILL BE PROCESSED.'                UL0H 08115017
M130     DC    X'00'                                                    08120000
M131     DC    X'40'                                                    08140000
         END                                                            08160000
