         TITLE '*************ICKIO01 - I/O ADAPTER MAIN ROUTINE*********00001000
               *********'                                               00002000
        MACRO                                                           00003000
        GETMAIN &R,&LV=                                                 00004000
        L     REG15,0(REG1)           GDTTBL ADDRESS                    00005000
        L     REG15,GDTPRL(REG15)     PROL ROUTINE ADDRESS              00006000
        CNOP  2,4                     BOUNDARY ALIGNMENT                00007000
        LA    REG14,*+14              RETURN ADDRESS                    00008000
        BALR  REG1,REG15              LINKAGE TO PROL ROUTINE           00009000
        DC    A(MODID)                MODULE ID ADDRESS                 00010000
        DC    A(@SIZDATD)             AUTOMATIC STORAGE SIZE ADDRESS    00011000
        MEND                                                            00012000
ICKIO01  CSECT ,                                                   0002 00013000
@MAINENT DS    0H                                                  0002 00014000
         USING *,@15                                               0002 00015000
         B     @PROLOG                                             0002 00016000
         DC    AL2(@EP00002-@MAINENT)                                   00017000
         DC    AL1(16)                                             0002 00018000
         DC    C'ICKIO01   78.192'                                 0002 00019000
ICKIOIT  DS    0H                                                  0002 00020000
         USING *,@15                                               0002 00021000
         B     @PROLOG                                             0002 00022000
         DC    AL2(@EP00241-ICKIOIT)                                    00023000
         ENTRY ICKIOIT                                                  00024000
ICKIOOP  DS    0H                                                  0002 00025000
         USING *,@15                                               0002 00026000
         B     @PROLOG                                             0002 00027000
         DC    AL2(@EP00273-ICKIOOP)                                    00028000
         ENTRY ICKIOOP                                                  00029000
ICKIOTM  DS    0H                                                  0002 00030000
         USING *,@15                                               0002 00031000
         B     @PROLOG                                             0002 00032000
         DC    AL2(@EP00308-ICKIOTM)                                    00033000
         ENTRY ICKIOTM                                                  00034000
ICKIOCL  DS    0H                                                  0002 00035000
         USING *,@15                                               0002 00036000
         B     @PROLOG                                             0002 00037000
         DC    AL2(@EP00327-ICKIOCL)                                    00038000
         ENTRY ICKIOCL                                                  00039000
ICKIOGT  DS    0H                                                  0002 00040000
         USING *,@15                                               0002 00041000
         B     @PROLOG                                             0002 00042000
         DC    AL2(@EP00361-ICKIOGT)                                    00043000
         ENTRY ICKIOGT                                                  00044000
ICKIOPT  DS    0H                                                  0002 00045000
         USING *,@15                                               0002 00046000
         B     @PROLOG                                             0002 00047000
         DC    AL2(@EP00528-ICKIOPT)                                    00048000
         ENTRY ICKIOPT                                                  00049000
         DROP  @15                                                      00050000
@PROLOG  STM   @14,@12,12(@13)                                     0002 00051000
         BALR  @10,0                                               0002 00052000
@PSTART  LA    @11,4095(,@10)                                      0002 00053000
         LA    @12,4095(,@11)                                      0002 00054000
         USING @PSTART,@10                                         0002 00055000
         USING @PSTART+4095,@11                                    0002 00056000
         USING @PSTART+8190,@12                                    0002 00057000
         L     @00,@SIZDATD                                        0002 00058000
         GETMAIN  R,LV=(0)                                              00059000
         LR    @08,@01                                             0002 00060000
         USING @DATD,@08                                           0002 00061000
         ST    @13,@SA00001+4                                      0002 00062000
         LM    @15,@01,16(@13)                                     0002 00063000
         ST    @08,8(,@13)                                         0002 00064000
         LR    @13,@08                                             0002 00065000
         AH    @15,4(,@15)                                         0002 00066000
         BR    @15                                                 0002 00067000
@EP00002 DS    0H                                                  0003 00068000
*                                           MODULE                   */ 00069000
*                                                                  0240 00070000
*                                                                  0240 00071000
*                                                                  0240 00072000
*                                                                  0240 00073000
*                                                                  0241 00074000
*ICKIOIT:  ENTRY  (GDTTBLX,DDLOC,XTNADDR);                         0241 00075000
*                                                                  0241 00076000
         B     @EC00241                                            0241 00077000
@EP00241 MVC   @PC00001(12),0(@01)                                 0241 00078000
@EC00241 DS    0H                                                  0242 00079000
*        /************************************************************/ 00080000
*        /*                                                          */ 00081000
*        /* THIS ENTRY POINT IS CALLED TO PERFORM THE INITIALIZATION */ 00082000
*        /* REQUIRED BY THE I/O ADAPTER FOR SUBSEQUENT CALLS.        */ 00083000
*        /* STORAGE FOR THE HISTORICAL DATA AREA IS OBTAINED AND     */ 00084000
*        /* INITIALIZED.                                             */ 00085000
*        /*                                                          */ 00086000
*        /************************************************************/ 00087000
*                                                                  0242 00088000
*        /************************************************************/ 00089000
*        /*                                                          */ 00090000
*        /* SET ADDRESSIBILITY TO GDTTBL USING A REGISTER            */ 00091000
*        /*                                                          */ 00092000
*        /************************************************************/ 00093000
*                                                                  0242 00094000
*        RFY (GDTREG) RSTD;                                        0242 00095000
*        RFY GDTTBL BASED (GDTREG);                                0243 00096000
*        GDTREG = ADDR (GDTTBLX);                                  0244 00097000
*                                                                  0244 00098000
         L     GDTREG,@PC00001                                     0244 00099000
*        /************************************************************/ 00100000
*        /*                                                          */ 00101000
*        /* DECLARES USED ONLY BY THIS ENTRY POINT.                  */ 00102000
*        /*                                                          */ 00103000
*        /************************************************************/ 00104000
*                                                                  0245 00105000
*        /* ENTRY POINTS RECEIVES FOLLOWING ARGUMENTS                */ 00106000
*        DCL DDLOC PTR (31);           /* ALTERNATE D LIST ADDRESS   */ 00107000
*        DCL XTNADDR PTR (31);         /* ADDR OF EXTERNAL DS RTNS   */ 00108000
*                                                                  0246 00109000
*                                                                  0246 00110000
*                                                                  0246 00111000
*        OLDERID2 = NEWERID2;                                      0247 00112000
         L     @15,GDTTR2(,GDTREG)                                 0247 00113000
         MVC   @TS00001(95),NEWERID2(@15)                          0247 00114000
         MVC   OLDERID2(95,@15),@TS00001                           0247 00115000
*        NEWID2 = 'IOIT';                                          0248 00116000
*                                                                  0248 00117000
         MVC   NEWID2(4,@15),@CC00930                              0248 00118000
*        /************************************************************/ 00119000
*        /*                                                          */ 00120000
*        /* GET STORAGE FOR HISTORICAL DATA STRUCTURE.               */ 00121000
*        /*                                                          */ 00122000
*        /************************************************************/ 00123000
*                                                                  0249 00124000
*        POOLSIZE = LENGTH (IODATA);                               0249 00125000
*                                                                  0249 00126000
         MVC   POOLSIZE(4),@CF00693                                0249 00127000
*        CALL ICKSAGP0 (GDTTBL,POOLSIZE,GDTIOH,INITID,SETZERO);    0250 00128000
         ST    GDTREG,@AL00001                                     0250 00129000
         LA    @15,POOLSIZE                                        0250 00130000
         ST    @15,@AL00001+4                                      0250 00131000
         LA    @15,GDTIOH(,GDTREG)                                 0250 00132000
         ST    @15,@AL00001+8                                      0250 00133000
         LA    @15,INITID                                          0250 00134000
         ST    @15,@AL00001+12                                     0250 00135000
         LA    @15,@CC00138                                        0250 00136000
         ST    @15,@AL00001+16                                     0250 00137000
         MVI   @AL00001+16,X'80'                                   0250 00138000
         L     @15,GDTGPL(,GDTREG)                                 0250 00139000
         LA    @01,@AL00001                                        0250 00140000
         BALR  @14,@15                                             0250 00141000
*        RESPECIFY RTNREG RSTD;                                    0251 00142000
*        TESTRC = RTNREG;                                          0252 00143000
         STH   RTNREG,TESTRC                                       0252 00144000
*        RESPECIFY RTNREG UNRSTD;                                  0253 00145000
*                                                                  0253 00146000
*        IF TESTRC = 0                                             0254 00147000
*          THEN                                                    0254 00148000
*                                                                  0254 00149000
         LH    @15,TESTRC                                          0254 00150000
         LTR   @15,@15                                             0254 00151000
         BNZ   @RF00254                                            0254 00152000
*            /********************************************************/ 00153000
*            /*                                                      */ 00154000
*            /* INITIALIZE THE I/O ADAPTER DATA STRUCTURE.           */ 00155000
*            /*                                                      */ 00156000
*            /********************************************************/ 00157000
*                                                                  0255 00158000
*INITIOD:    DO;                                                   0255 00159000
*                                                                  0255 00160000
INITIOD  DS    0H                                                  0256 00161000
*              IODMSG = GDTIOH + LENGTH (IODATA);                  0256 00162000
         L     @15,GDTIOH(,GDTREG)                                 0256 00163000
         LA    @14,40                                              0256 00164000
         ALR   @14,@15                                             0256 00165000
         ST    @14,IODMSG(,@15)                                    0256 00166000
*              IODADD = DDLOC;         /* ADDRESS OF ALT DLIST       */ 00167000
         L     @14,@PC00001+4                                      0257 00168000
         L     @14,DDLOC(,@14)                                     0257 00169000
         ST    @14,IODADD(,@15)                                    0257 00170000
*              IODXTN = XTNADDR;       /* EXTERNAL I/O ROUTINE LIST  */ 00171000
         L     @14,@PC00001+8                                      0258 00172000
         L     @14,XTNADDR(,@14)                                   0258 00173000
         ST    @14,IODXTN(,@15)                                    0258 00174000
*              IODSID (1:4) = INITID (1:4);  /* INITIAL IDENTIFIER   */ 00175000
         MVC   IODSID(4,@15),INITID                                0259 00176000
*              IODEOD = ADDR (IROSEOD); /*  EODAD ADDRESS            */ 00177000
         LA    @14,IROSEOD                                         0260 00178000
         ST    @14,IODEOD(,@15)                                    0260 00179000
*              IODOSS = ADDR (IRSISYN); /*  INPUT SYNAD RTN          */ 00180000
         LA    @14,IRSISYN                                         0261 00181000
         ST    @14,IODOSS(,@15)                                    0261 00182000
*              IODOSO = ADDR (IRSOSYN); /*  OUTPUT SYNAD RTN         */ 00183000
*                                                                  0262 00184000
         LA    @14,IRSOSYN                                         0262 00185000
         ST    @14,IODOSO(,@15)                                    0262 00186000
*            END INITIOD;                                          0263 00187000
*                                                                  0263 00188000
*          ELSE                                                    0264 00189000
*                                                                  0264 00190000
*            /********************************************************/ 00191000
*            /*                                                      */ 00192000
*            /* NO STORAGE AVAILABLE FOR INITIALIZATION.  TERMINATE  */ 00193000
*            /*                                                      */ 00194000
*            /********************************************************/ 00195000
*                                                                  0264 00196000
*                                                                  0264 00197000
*              DO;                                                 0264 00198000
         B     @RC00254                                            0264 00199000
@RF00254 DS    0H                                                  0265 00200000
*                RESPECIFY(REG13,REG14,REG15) RSTD;                0265 00201000
*                REG15 = 28;                                       0266 00202000
         LA    REG15,28                                            0266 00203000
*                REG14 = GDTABT;                                   0267 00204000
         L     REG14,GDTABT(,GDTREG)                               0267 00205000
*                REG13 = GDTABH;                                   0268 00206000
         L     REG13,GDTABH(,GDTREG)                               0268 00207000
*                GEN(BR    REG14);                                 0269 00208000
         BR    REG14                                                    00209000
*                RESPECIFY(REG13,REG14,REG15)UNRSTD;               0270 00210000
*              END;                                                0271 00211000
*                                                                  0271 00212000
*        /************************************************************/ 00213000
*        /*                                                          */ 00214000
*        /* RETURN TO THE CALLER WITH SUCCESSFUL RETURN CODE         */ 00215000
*        /*                                                          */ 00216000
*        /************************************************************/ 00217000
*                                                                  0272 00218000
*        CALL ICKSAEP0(GDTTBL,MODID,TESTRC);                       0272 00219000
*                                                                  0272 00220000
*                                                                  0272 00221000
@RC00254 ST    GDTREG,@AL00001                                     0272 00222000
         LA    @15,MODID                                           0272 00223000
         ST    @15,@AL00001+4                                      0272 00224000
         LA    @15,TESTRC                                          0272 00225000
         ST    @15,@AL00001+8                                      0272 00226000
         MVI   @AL00001+8,X'80'                                    0272 00227000
         L     @15,GDTEPL(,GDTREG)                                 0272 00228000
         LA    @01,@AL00001                                        0272 00229000
         BALR  @14,@15                                             0272 00230000
*ICKIOOP:  ENTRY (GDTTBLX,ARG1,ARG2,ARG3,ARG4);                    0273 00231000
*                                                                  0273 00232000
         B     @EC00273                                            0273 00233000
@EP00273 MVC   @PC00001(4),0(@01)                                  0273 00234000
         MVC   @PC00001+12(16),4(@01)                              0273 00235000
@EC00273 DS    0H                                                  0274 00236000
*        /************************************************************/ 00237000
*        /*                                                          */ 00238000
*        /* THIS ENTRY POINT IS CALLED TO HAVE DATA SETS OPENED.     */ 00239000
*        /* IOCSTR STRUCTURES ARE BUILT FOR EACH DATA SET.  THESE    */ 00240000
*        /* CONTROL BLOCKS MUST BE USED AS INPUT TO THE I/O ADAPTER  */ 00241000
*        /* TO PERFORM THE OTHER I/O ADAPTER FUNCTIONS.              */ 00242000
*        /*                                                          */ 00243000
*        /************************************************************/ 00244000
*                                                                  0274 00245000
*        /* AREA IN USER STORAGE TO RETURN IOCS ADDRESS              */ 00246000
*        DCL RETIOCS PTR (31) BASED (OPNIOC);                      0274 00247000
*                                                                  0274 00248000
*                                                                  0274 00249000
*                                                                  0274 00250000
*        RESPECIFY (RTNREG) RSTD;                                  0275 00251000
*                                                                  0275 00252000
*                                                                  0276 00253000
*        /************************************************************/ 00254000
*        /*                                                          */ 00255000
*        /* ULISTLN MACRO INCLUDED CODE                              */ 00256000
*        /*                                                          */ 00257000
*        /*     LISTLN - TO CONTAIN THE NUMBER OF ARGUMENTS PASSED   */ 00258000
*        /*              TO THIS ROUTINE                             */ 00259000
*        /*                                                          */ 00260000
*        /*     LISTPTR - TO CONTAIN THE ADDRESS OF THE CORRESPONDING*/ 00261000
*        /*               ADDRESS LIST                               */ 00262000
*        /*                                                          */ 00263000
*        /************************************************************/ 00264000
*                                                                  0276 00265000
*        GEN;                                                      0276 00266000
        ST    1,LISTPTR                                                 00267000
        ST    1,LISTSCAN                                                00268000
*        DO LISTLN = 1 TO 255 WHILE(LISTTEST = '0'B);              0277 00269000
         LA    @14,1                                               0277 00270000
         STC   @14,LISTLN                                          0277 00271000
@DL00277 L     @07,LISTSCAN                                        0277 00272000
         TM    LISTTEST(@07),B'10000000'                           0277 00273000
         BNZ   @DC00277                                            0277 00274000
*          LISTSCAN = LISTSCAN + 4;                                0278 00275000
         AL    @07,@CF00037                                        0278 00276000
         ST    @07,LISTSCAN                                        0278 00277000
*        END;                                                      0279 00278000
*                                                                  0279 00279000
         AL    @14,@CF00158                                        0279 00280000
         STC   @14,LISTLN                                          0279 00281000
         C     @14,@CF00950                                        0279 00282000
         BNH   @DL00277                                            0279 00283000
@DC00277 DS    0H                                                  0280 00284000
*        RESPECIFY (RTNREG) UNRSTD;                                0280 00285000
*                                                                  0280 00286000
*        /************************************************************/ 00287000
*        /*                                                          */ 00288000
*        /* SET ADDRESSIBILITY TO GDTTBL USING A REGISTER            */ 00289000
*        /*                                                          */ 00290000
*        /************************************************************/ 00291000
*                                                                  0281 00292000
*        GDTREG = ADDR (GDTTBLX);                                  0281 00293000
*                                                                  0281 00294000
         L     GDTREG,@PC00001                                     0281 00295000
*        /************************************************************/ 00296000
*        /*                                                          */ 00297000
*        /* INITIALIZE ARGUMENTS USED BY THIS ENTRY POINT.           */ 00298000
*        /*                                                          */ 00299000
*        /************************************************************/ 00300000
*                                                                  0282 00301000
*        OLDERID2 = NEWERID2;                                      0282 00302000
         L     @15,GDTTR2(,GDTREG)                                 0282 00303000
         MVC   @TS00001(95),NEWERID2(@15)                          0282 00304000
         MVC   OLDERID2(95,@15),@TS00001                           0282 00305000
*        NEWID2 = 'IOOP';                                          0283 00306000
         MVC   NEWID2(4,@15),@CC00951                              0283 00307000
*        OCARRAY = ''B;                                            0284 00308000
         XC    OCARRAY(20),OCARRAY                                 0284 00309000
*        OCATYP = OCATYPOP;                                        0285 00310000
*                                                                  0285 00311000
         MVI   OCATYP,X'01'                                        0285 00312000
*        IF LISTLN < 2 | LISTLN > 5                                0286 00313000
*          THEN                                                    0286 00314000
*                                                                  0286 00315000
         CLI   LISTLN,2                                            0286 00316000
         BL    @RT00286                                            0286 00317000
         CLI   LISTLN,5                                            0286 00318000
         BNH   @RF00286                                            0286 00319000
@RT00286 DS    0H                                                  0287 00320000
*            /********************************************************/ 00321000
*            /*                                                      */ 00322000
*            /* ENTRY POINT CAN RECEIVE 2,3,4 OR 5 ARGUMENTS         */ 00323000
*            /* TERMINATE PROCESSING IF LIST LENGTH INVALID.         */ 00324000
*            /*                                                      */ 00325000
*            /********************************************************/ 00326000
*                                                                  0287 00327000
*                                                                  0287 00328000
*                DO;                                               0287 00329000
*                  RESPECIFY(REG13,REG14,REG15) RSTD;              0288 00330000
*                  REG15 = 40;                                     0289 00331000
         LA    REG15,40                                            0289 00332000
*                  REG14 = GDTABT;                                 0290 00333000
         L     REG14,GDTABT(,GDTREG)                               0290 00334000
*                  REG13 = GDTABH;                                 0291 00335000
         L     REG13,GDTABH(,GDTREG)                               0291 00336000
*                  GEN(BR    REG14);                               0292 00337000
         BR    REG14                                                    00338000
*                  RESPECIFY(REG13,REG14,REG15)UNRSTD;             0293 00339000
*                END;                                              0294 00340000
*                                                                  0294 00341000
*          ELSE                                                    0295 00342000
*                                                                  0295 00343000
*            /********************************************************/ 00344000
*            /*                                                      */ 00345000
*            /* ARGUMENT LIST IS VALID - BUILD OPEN ARGUMENT LIST.   */ 00346000
*            /*                                                      */ 00347000
*            /********************************************************/ 00348000
*                                                                  0295 00349000
*VALOPARG:   DO;                                                   0295 00350000
*                                                                  0295 00351000
         B     @RC00286                                            0295 00352000
@RF00286 DS    0H                                                  0295 00353000
VALOPARG DS    0H                                                  0296 00354000
*              OCANUM = LISTLN - 1;                                0296 00355000
*                                                                  0296 00356000
         SLR   @15,@15                                             0296 00357000
         IC    @15,LISTLN                                          0296 00358000
         BCTR  @15,0                                               0296 00359000
         STC   @15,OCANUM                                          0296 00360000
*BLDOLIST:     DO OCCTR = 2 TO LISTLN;                             0297 00361000
*                                                                  0297 00362000
BLDOLIST LA    @15,2                                               0297 00363000
         B     @DE00297                                            0297 00364000
@DL00297 DS    0H                                                  0298 00365000
*                OPNPTR = ARGADDR (OCCTR);                         0298 00366000
         LR    @14,@15                                             0298 00367000
         SLA   @14,2                                               0298 00368000
         L     @01,LISTPTR                                         0298 00369000
         AL    @01,@CF01099                                        0298 00370000
         L     @07,ARGADDR(@14,@01)                                0298 00371000
         ST    @07,OPNPTR                                          0298 00372000
*                RETIOCS = NULLPTR;                                0299 00373000
         L     @01,OPNIOC(,@07)                                    0299 00374000
         SLR   @00,@00                                             0299 00375000
         ST    @00,RETIOCS(,@01)                                   0299 00376000
*                OCADDR (OCCTR-1) = ARGADDR(OCCTR);                0300 00377000
*                                                                  0300 00378000
         ST    @07,OCADDR-8(@14)                                   0300 00379000
*              END BLDOLIST;                                       0301 00380000
*                                                                  0301 00381000
         AL    @15,@CF00158                                        0301 00382000
@DE00297 STH   @15,OCCTR                                           0301 00383000
         SLR   @14,@14                                             0301 00384000
         IC    @14,LISTLN                                          0301 00385000
         CR    @15,@14                                             0301 00386000
         BNH   @DL00297                                            0301 00387000
*              /******************************************************/ 00388000
*              /*                                                    */ 00389000
*              /* OPEN ALL REQUESTED DATA SETS AND SAVE HIGHEST RC   */ 00390000
*              /*                                                    */ 00391000
*              /******************************************************/ 00392000
*                                                                  0302 00393000
*              CALL ICKSACL0 (GDTTBL,'ICKIO02 ',OCARRAY);          0302 00394000
         ST    GDTREG,@AL00001                                     0302 00395000
         LA    @15,@CC00957                                        0302 00396000
         ST    @15,@AL00001+4                                      0302 00397000
         LA    @15,OCARRAY                                         0302 00398000
         ST    @15,@AL00001+8                                      0302 00399000
         MVI   @AL00001+8,X'80'                                    0302 00400000
         L     @15,GDTCAL(,GDTREG)                                 0302 00401000
         LA    @01,@AL00001                                        0302 00402000
         BALR  @14,@15                                             0302 00403000
*              RESPECIFY RTNREG RSTD;                              0303 00404000
*              TESTRC = RTNREG;                                    0304 00405000
         STH   RTNREG,TESTRC                                       0304 00406000
*              RESPECIFY RTNREG UNRSTD;                            0305 00407000
*                                                                  0305 00408000
*          END VALOPARG;                                           0306 00409000
*                                                                  0306 00410000
*        /************************************************************/ 00411000
*        /*                                                          */ 00412000
*        /* RETURN TO CALLER WITH HIGHEST RETURN CODE ENCOUNTERED    */ 00413000
*        /*                                                          */ 00414000
*        /************************************************************/ 00415000
*                                                                  0307 00416000
*        CALL ICKSAEP0(GDTTBL,MODID,TESTRC);                       0307 00417000
@RC00286 ST    GDTREG,@AL00001                                     0307 00418000
         LA    @15,MODID                                           0307 00419000
         ST    @15,@AL00001+4                                      0307 00420000
         LA    @15,TESTRC                                          0307 00421000
         ST    @15,@AL00001+8                                      0307 00422000
         MVI   @AL00001+8,X'80'                                    0307 00423000
         L     @15,GDTEPL(,GDTREG)                                 0307 00424000
         LA    @01,@AL00001                                        0307 00425000
         BALR  @14,@15                                             0307 00426000
*ICKIOTM:  ENTRY (GDTTBLX);                                        0308 00427000
*                                                                  0308 00428000
         B     @EC00308                                            0308 00429000
@EP00308 MVC   @PC00001(4),0(@01)                                  0308 00430000
@EC00308 DS    0H                                                  0309 00431000
*        /************************************************************/ 00432000
*        /*                                                          */ 00433000
*        /* THIS ENTRY POINT IS CALLED TO TERMINATE PROCESSING.  ALL */ 00434000
*        /* REMAINING OPEN DATA SET ARE CLOSED.  ALL STORAGE THAT    */ 00435000
*        /* THE I/O ADAPTER HAS OBTAINED IS RELEASED.                */ 00436000
*        /*                                                          */ 00437000
*        /************************************************************/ 00438000
*                                                                  0309 00439000
*        /************************************************************/ 00440000
*        /*                                                          */ 00441000
*        /* SET ADDRESSIBILITY TO THE GDTTBL USING A REGISTER        */ 00442000
*        /*                                                          */ 00443000
*        /************************************************************/ 00444000
*                                                                  0309 00445000
*        GDTREG = ADDR (GDTTBLX);                                  0309 00446000
*                                                                  0309 00447000
*                                                                  0309 00448000
         L     GDTREG,@PC00001                                     0309 00449000
*        /************************************************************/ 00450000
*        /*                                                          */ 00451000
*        /* INITIALIZE STRUCTURED ARGUMENTS USED DURING PROCESSING   */ 00452000
*        /*                                                          */ 00453000
*        /************************************************************/ 00454000
*                                                                  0310 00455000
*        OLDERID2 = NEWERID2;                                      0310 00456000
         L     @15,GDTTR2(,GDTREG)                                 0310 00457000
         MVC   @TS00001(95),NEWERID2(@15)                          0310 00458000
         MVC   OLDERID2(95,@15),@TS00001                           0310 00459000
*        NEWID2 = 'IOTM';                                          0311 00460000
*                                                                  0311 00461000
         MVC   NEWID2(4,@15),@CC00963                              0311 00462000
*        OCARRAY = ''B;                                            0312 00463000
         XC    OCARRAY(20),OCARRAY                                 0312 00464000
*        OCATYP = OCATYPCL;                                        0313 00465000
*                                                                  0313 00466000
         MVI   OCATYP,X'02'                                        0313 00467000
*        /************************************************************/ 00468000
*        /*                                                          */ 00469000
*        /* INITIALIZE A RETURN CODE.  IF AN ERROR THIS RETURN CODE  */ 00470000
*        /* WILL BE SET TO INDICATE THE ERROR AND IS RETURNED        */ 00471000
*        /* TO THE CALLER.                                           */ 00472000
*        /*                                                          */ 00473000
*        /************************************************************/ 00474000
*                                                                  0314 00475000
*        SETRC = 0;                                                0314 00476000
*                                                                  0314 00477000
         SLR   @15,@15                                             0314 00478000
         STH   @15,SETRC                                           0314 00479000
*        /************************************************************/ 00480000
*        /*                                                          */ 00481000
*        /* CLOSE ALL DATA SETS THAT ARE STILL OPEN AND FREE         */ 00482000
*        /* ALL STORAGE OBTAINED FOR ALL DATA SETS.                  */ 00483000
*        /*                                                          */ 00484000
*        /************************************************************/ 00485000
*                                                                  0315 00486000
*        OCAOPTCA = ON;                                            0315 00487000
*                                                                  0315 00488000
         OI    OCAOPTCA,B'10000000'                                0315 00489000
*CLOSEALL:                                                         0316 00490000
*                                                                  0316 00491000
*        /************************************************************/ 00492000
*        /*                                                          */ 00493000
*        /* THIS LOOP WILL CLOSE A MAXIMUM OF FOUR DATA SETS WITH    */ 00494000
*        /* EACH CALL TO THE CLOSE ROUTINE.  THE LOOP IS EXECUTED    */ 00495000
*        /* UNTIL ALL ALL DATA SETS ARE CLOSED.                      */ 00496000
*        /*                                                          */ 00497000
*        /************************************************************/ 00498000
*                                                                  0316 00499000
*        DO WHILE IODIOC ^= NULLPTR;                               0316 00500000
*                                                                  0316 00501000
CLOSEALL B     @DE00316                                            0316 00502000
@DL00316 DS    0H                                                  0317 00503000
*          /**********************************************************/ 00504000
*          /*                                                        */ 00505000
*          /* CLOSE THE DATA SETS AND SAVE THE HIGHEST ERROR CODE.   */ 00506000
*          /*                                                        */ 00507000
*          /**********************************************************/ 00508000
*                                                                  0317 00509000
*          CALL ICKSACL0 (GDTTBL,'ICKIO02 ',OCARRAY);              0317 00510000
         ST    GDTREG,@AL00001                                     0317 00511000
         LA    @15,@CC00957                                        0317 00512000
         ST    @15,@AL00001+4                                      0317 00513000
         LA    @15,OCARRAY                                         0317 00514000
         ST    @15,@AL00001+8                                      0317 00515000
         MVI   @AL00001+8,X'80'                                    0317 00516000
         L     @15,GDTCAL(,GDTREG)                                 0317 00517000
         LA    @01,@AL00001                                        0317 00518000
         BALR  @14,@15                                             0317 00519000
*          RESPECIFY RTNREG RSTD;                                  0318 00520000
*          TESTRC = RTNREG;                                        0319 00521000
         STH   RTNREG,TESTRC                                       0319 00522000
*          RESPECIFY RTNREG UNRSTD;                                0320 00523000
*                                                                  0320 00524000
*          IF TESTRC = 4                                           0321 00525000
*            THEN                                                  0321 00526000
*                                                                  0321 00527000
         LH    @15,TESTRC                                          0321 00528000
         LA    @14,4                                               0321 00529000
         CR    @15,@14                                             0321 00530000
         BNE   @RF00321                                            0321 00531000
*              /******************************************************/ 00532000
*              /*                                                    */ 00533000
*              /*   IF ERROR WAS DETECTED SAVE ERROR CODE.           */ 00534000
*              /*                                                    */ 00535000
*              /******************************************************/ 00536000
*                                                                  0322 00537000
*              SETRC = 4;                                          0322 00538000
*                                                                  0322 00539000
         STH   @14,SETRC                                           0322 00540000
*        END CLOSEALL;                                             0323 00541000
*                                                                  0323 00542000
@RF00321 DS    0H                                                  0323 00543000
@DE00316 L     @01,GDTIOH(,GDTREG)                                 0323 00544000
         L     @15,IODIOC(,@01)                                    0323 00545000
         LTR   @15,@15                                             0323 00546000
         BNZ   @DL00316                                            0323 00547000
*        /***********************************************************/  00548000
*        /*                                                          */ 00549000
*        /*     ALL DATA SETS HAVE BEEN CLOSED                       */ 00550000
*        /*     FREE ALL STORAGE USED FOR DATA SETS AND THE I/O      */ 00551000
*        /*     ADAPTER NOT PREVIOUSLY FREED                         */ 00552000
*        /*                                                          */ 00553000
*        /************************************************************/ 00554000
*                                                                  0324 00555000
*        CALL ICKSAFP0 (GDTTBL,INITID,ALL);                        0324 00556000
         MVC   @AL00001+4(8),@AL00324                              0324 00557000
         ST    GDTREG,@AL00001                                     0324 00558000
         L     @15,GDTFPL(,GDTREG)                                 0324 00559000
         LA    @01,@AL00001                                        0324 00560000
         BALR  @14,@15                                             0324 00561000
*        GDTIOH = NULLPTR;                                         0325 00562000
*                                                                  0325 00563000
         SLR   @15,@15                                             0325 00564000
         ST    @15,GDTIOH(,GDTREG)                                 0325 00565000
*        /************************************************************/ 00566000
*        /*                                                          */ 00567000
*        /* RETURN TO CALLER WITH HIGHEST ERROR CODE ENCOUNTERED.    */ 00568000
*        /*                                                          */ 00569000
*        /************************************************************/ 00570000
*                                                                  0326 00571000
*        CALL ICKSAEP0(GDTTBL,MODID,SETRC);                        0326 00572000
         ST    GDTREG,@AL00001                                     0326 00573000
         LA    @15,MODID                                           0326 00574000
         ST    @15,@AL00001+4                                      0326 00575000
         LA    @15,SETRC                                           0326 00576000
         ST    @15,@AL00001+8                                      0326 00577000
         MVI   @AL00001+8,X'80'                                    0326 00578000
         L     @15,GDTEPL(,GDTREG)                                 0326 00579000
         LA    @01,@AL00001                                        0326 00580000
         BALR  @14,@15                                             0326 00581000
*ICKIOCL:  ENTRY (GDTTBLX,ARG1,ARG2,ARG3,ARG4);                    0327 00582000
*                                                                  0327 00583000
         B     @EC00327                                            0327 00584000
@EP00327 MVC   @PC00001(4),0(@01)                                  0327 00585000
         MVC   @PC00001+12(16),4(@01)                              0327 00586000
@EC00327 DS    0H                                                  0328 00587000
*        /************************************************************/ 00588000
*        /*                                                          */ 00589000
*        /* THIS ENTRY POINT IS CALLED TO CLOSE DATA SETS THAT       */ 00590000
*        /* WERE OPENED BY THE I/O ADAPTER.  ALL STORAGE AND         */ 00591000
*        /* CONTROL BLOCKS OBTAINED FOR THE DATA SET BEING CLOSED    */ 00592000
*        /* ARE RELEASED.                                            */ 00593000
*        /*                                                          */ 00594000
*        /* IF AN ERROR WAS DETECTED DURING OPEN THE DATA SET DOES   */ 00595000
*        /* NOT NEED TO BE CLOSED.  THE I/O ADAPTER CLOSE WILL       */ 00596000
*        /* STILL RELEASE THE AUTOMATIC STORAGE AND CONTROL BLOCKS   */ 00597000
*        /* THAT WERE OBTAINED BEFORE THE ERROR WAS DETECTED.        */ 00598000
*        /*                                                          */ 00599000
*        /************************************************************/ 00600000
*                                                                  0328 00601000
*        /************************************************************/ 00602000
*        /*                                                          */ 00603000
*        /* DECLARES USED ONLY BY THIS ENTRY POINT                   */ 00604000
*        /*                                                          */ 00605000
*        /************************************************************/ 00606000
*                                                                  0328 00607000
*        /* ADDRESS OF FULLWORD CONTAINING IOCSTR ADDRESS            */ 00608000
*        DCL CLOPTR PTR (31);                                      0328 00609000
*        /* ADDRESS OF IOCS DEFINING DATA SET TO CLOSE               */ 00610000
*        DCL CLOSIOCS PTR (31) BASED (CLOPTR);                     0329 00611000
*                                                                  0329 00612000
*                                                                  0329 00613000
*                                                                  0329 00614000
*        RESPECIFY (RTNREG) RSTD;                                  0330 00615000
*                                                                  0330 00616000
*                                                                  0331 00617000
*        /************************************************************/ 00618000
*        /*                                                          */ 00619000
*        /* ULISTLN MACRO INCLUDED CODE                              */ 00620000
*        /*                                                          */ 00621000
*        /*     LISTLN - TO CONTAIN THE NUMBER OF ARGUMENTS PASSED   */ 00622000
*        /*              TO THIS ROUTINE                             */ 00623000
*        /*                                                          */ 00624000
*        /*     LISTPTR - TO CONTAIN THE ADDRESS OF THE CORRESPONDING*/ 00625000
*        /*               ADDRESS LIST                               */ 00626000
*        /*                                                          */ 00627000
*        /************************************************************/ 00628000
*                                                                  0331 00629000
*        GEN;                                                      0331 00630000
        ST    1,LISTPTR                                                 00631000
        ST    1,LISTSCAN                                                00632000
*        DO LISTLN = 1 TO 255 WHILE(LISTTEST = '0'B);              0332 00633000
         LA    @14,1                                               0332 00634000
         STC   @14,LISTLN                                          0332 00635000
@DL00332 L     @07,LISTSCAN                                        0332 00636000
         TM    LISTTEST(@07),B'10000000'                           0332 00637000
         BNZ   @DC00332                                            0332 00638000
*          LISTSCAN = LISTSCAN + 4;                                0333 00639000
         AL    @07,@CF00037                                        0333 00640000
         ST    @07,LISTSCAN                                        0333 00641000
*        END;                                                      0334 00642000
*                                                                  0334 00643000
         AL    @14,@CF00158                                        0334 00644000
         STC   @14,LISTLN                                          0334 00645000
         C     @14,@CF00950                                        0334 00646000
         BNH   @DL00332                                            0334 00647000
@DC00332 DS    0H                                                  0335 00648000
*        RESPECIFY (RTNREG) UNRSTD;                                0335 00649000
*                                                                  0335 00650000
*        /************************************************************/ 00651000
*        /*                                                          */ 00652000
*        /*  SET ADDRESSIBILITY TO THE GDTTBL USING A REGISTER       */ 00653000
*        /*                                                          */ 00654000
*        /************************************************************/ 00655000
*                                                                  0336 00656000
*        GDTREG = ADDR (GDTTBLX);                                  0336 00657000
*                                                                  0336 00658000
         L     GDTREG,@PC00001                                     0336 00659000
*        OLDERID2 = NEWERID2;                                      0337 00660000
         L     @15,GDTTR2(,GDTREG)                                 0337 00661000
         MVC   @TS00001(95),NEWERID2(@15)                          0337 00662000
         MVC   OLDERID2(95,@15),@TS00001                           0337 00663000
*        NEWID2 = 'IOCL';                                          0338 00664000
*                                                                  0338 00665000
         MVC   NEWID2(4,@15),@CC00977                              0338 00666000
*        /************************************************************/ 00667000
*        /*                                                          */ 00668000
*        /* INITIALIZE ARGUMENTS USED BY THIS ROUTINE WHEN CALLING   */ 00669000
*        /* OTHER MODULES.                                           */ 00670000
*        /*                                                          */ 00671000
*        /************************************************************/ 00672000
*                                                                  0339 00673000
*        OCARRAY = ''B;                                            0339 00674000
         XC    OCARRAY(20),OCARRAY                                 0339 00675000
*        OCATYP = OCATYPCL;                                        0340 00676000
*                                                                  0340 00677000
         MVI   OCATYP,X'02'                                        0340 00678000
*        IF LISTLN < 2 | LISTLN > 5                                0341 00679000
*          THEN                                                    0341 00680000
*                                                                  0341 00681000
         CLI   LISTLN,2                                            0341 00682000
         BL    @RT00341                                            0341 00683000
         CLI   LISTLN,5                                            0341 00684000
         BNH   @RF00341                                            0341 00685000
@RT00341 DS    0H                                                  0342 00686000
*            /********************************************************/ 00687000
*            /*                                                      */ 00688000
*            /* 2,3,4 OR 5 DATA SETS MAY BE CLOSED WITH ONE CALL     */ 00689000
*            /* TO THIS ENTRY POINT.  IF THE ARGUMENTS LIST SPECIFIES*/ 00690000
*            /* A DIFFERENT NUMBER PROCESSING IS TERMINATED.         */ 00691000
*            /*                                                      */ 00692000
*            /********************************************************/ 00693000
*                                                                  0342 00694000
*                                                                  0342 00695000
*              DO;                                                 0342 00696000
*                RESPECIFY(REG13,REG14,REG15) RSTD;                0343 00697000
*                REG15 = 40;                                       0344 00698000
         LA    REG15,40                                            0344 00699000
*                REG14 = GDTABT;                                   0345 00700000
         L     REG14,GDTABT(,GDTREG)                               0345 00701000
*                REG13 = GDTABH;                                   0346 00702000
         L     REG13,GDTABH(,GDTREG)                               0346 00703000
*                GEN(BR    REG14);                                 0347 00704000
         BR    REG14                                                    00705000
*                RESPECIFY(REG13,REG14,REG15)UNRSTD;               0348 00706000
*              END;                                                0349 00707000
*                                                                  0349 00708000
*          ELSE                                                    0350 00709000
*                                                                  0350 00710000
*            /********************************************************/ 00711000
*            /*                                                      */ 00712000
*            /* PLACE THE ADDRESSES OF ALL IOCSS DEFINING DATA SETS  */ 00713000
*            /* TO BE CLOSED IN THE CLOSE ROUTINE ARGUMENT LIST.     */ 00714000
*            /*                                                      */ 00715000
*            /********************************************************/ 00716000
*                                                                  0350 00717000
*VALCLARG:   DO;                                                   0350 00718000
*                                                                  0350 00719000
         B     @RC00341                                            0350 00720000
@RF00341 DS    0H                                                  0350 00721000
VALCLARG DS    0H                                                  0351 00722000
*              DO OCCTR = 2 TO LISTLN;                             0351 00723000
*                                                                  0351 00724000
         LA    @15,2                                               0351 00725000
         B     @DE00351                                            0351 00726000
@DL00351 DS    0H                                                  0352 00727000
*                CLOPTR = ARGADDR (OCCTR);                         0352 00728000
         LR    @14,@15                                             0352 00729000
         SLA   @14,2                                               0352 00730000
         L     @01,LISTPTR                                         0352 00731000
         AL    @01,@CF01099                                        0352 00732000
         L     @07,ARGADDR(@14,@01)                                0352 00733000
         ST    @07,CLOPTR                                          0352 00734000
*                OCADDR (OCCTR-1) = CLOSIOCS;                      0353 00735000
*                                                                  0353 00736000
         L     @07,CLOSIOCS(,@07)                                  0353 00737000
         ST    @07,OCADDR-8(@14)                                   0353 00738000
*              END;                                                0354 00739000
*                                                                  0354 00740000
         AL    @15,@CF00158                                        0354 00741000
@DE00351 STH   @15,OCCTR                                           0354 00742000
         SLR   @14,@14                                             0354 00743000
         IC    @14,LISTLN                                          0354 00744000
         CR    @15,@14                                             0354 00745000
         BNH   @DL00351                                            0354 00746000
*              /******************************************************/ 00747000
*              /*                                                    */ 00748000
*              /* CLOSE ALL DATA SETS REQUESTED AND FREE THE STORAGE */ 00749000
*              /* THEY REQUIRED.  SAVE THE HIGHEST ERROR CODE        */ 00750000
*              /* ENCOUNTERED.                                       */ 00751000
*              /*                                                    */ 00752000
*              /******************************************************/ 00753000
*                                                                  0355 00754000
*              CALL ICKSACL0 (GDTTBL,'ICKIO02 ',OCARRAY);          0355 00755000
         ST    GDTREG,@AL00001                                     0355 00756000
         LA    @15,@CC00957                                        0355 00757000
         ST    @15,@AL00001+4                                      0355 00758000
         LA    @15,OCARRAY                                         0355 00759000
         ST    @15,@AL00001+8                                      0355 00760000
         MVI   @AL00001+8,X'80'                                    0355 00761000
         L     @15,GDTCAL(,GDTREG)                                 0355 00762000
         LA    @01,@AL00001                                        0355 00763000
         BALR  @14,@15                                             0355 00764000
*              RESPECIFY RTNREG RSTD;                              0356 00765000
*              TESTRC = RTNREG;                                    0357 00766000
         STH   RTNREG,TESTRC                                       0357 00767000
*              RESPECIFY RTNREG UNRSTD;                            0358 00768000
*                                                                  0358 00769000
*            END VALCLARG;                                         0359 00770000
*                                                                  0359 00771000
*        /************************************************************/ 00772000
*        /*                                                          */ 00773000
*        /* THE HIGHEST RETURN CODE SET IS RETURNED TO THE CALLER.   */ 00774000
*        /*                                                          */ 00775000
*        /************************************************************/ 00776000
*                                                                  0360 00777000
*        CALL ICKSAEP0(GDTTBL,MODID,TESTRC);                       0360 00778000
@RC00341 ST    GDTREG,@AL00001                                     0360 00779000
         LA    @15,MODID                                           0360 00780000
         ST    @15,@AL00001+4                                      0360 00781000
         LA    @15,TESTRC                                          0360 00782000
         ST    @15,@AL00001+8                                      0360 00783000
         MVI   @AL00001+8,X'80'                                    0360 00784000
         L     @15,GDTEPL(,GDTREG)                                 0360 00785000
         LA    @01,@AL00001                                        0360 00786000
         BALR  @14,@15                                             0360 00787000
*ICKIOGT:  ENTRY (GDTTBLX,GETIOCS);                                0361 00788000
*                                                                  0361 00789000
         B     @EC00361                                            0361 00790000
@EP00361 MVC   @PC00001(4),0(@01)                                  0361 00791000
         MVC   @PC00001+28(4),4(@01)                               0361 00792000
@EC00361 DS    0H                                                  0362 00793000
*        /************************************************************/ 00794000
*        /*                                                          */ 00795000
*        /* THIS ENTRY POINT IS CALLED TO GET A DATA RECORD FROM     */ 00796000
*        /* A DATA SET.  DATA RECORDS CAN BE READ FROM ANY DATA SET  */ 00797000
*        /* THAT THE I/O ADAPTER COULD OPEN.  THE DATA RECORD LENGTH */ 00798000
*        /* AND ADDRESS ARE RETURNED IN THE IOCSTR.                  */ 00799000
*        /*                                                          */ 00800000
*        /************************************************************/ 00801000
*                                                                  0362 00802000
*        /************************************************************/ 00803000
*        /*                                                          */ 00804000
*        /* DECLARES USED BY THIS ENTRY POINT ONLY                   */ 00805000
*        /*                                                          */ 00806000
*        /************************************************************/ 00807000
*                                                                  0362 00808000
*        /* ENTRY POINT RECEIVES THE FOLLOWING ARGUMENTS             */ 00809000
*        DCL GETIOCS PTR (31);         /* INPUT DATA SET IOCS        */ 00810000
*                                                                  0362 00811000
*        /************************************************************/ 00812000
*        /*                                                          */ 00813000
*        /* SET ADDRESSIBILITY TO THE GDTTBL USING A REGISTER        */ 00814000
*        /*                                                          */ 00815000
*        /************************************************************/ 00816000
*                                                                  0363 00817000
*        GDTREG = ADDR (GDTTBLX);                                  0363 00818000
*                                                                  0363 00819000
         L     GDTREG,@PC00001                                     0363 00820000
*        /************************************************************/ 00821000
*        /*                                                          */ 00822000
*        /* SET ADDRESSIBILITY TO THE INPUT IOCS                     */ 00823000
*        /*                                                          */ 00824000
*        /************************************************************/ 00825000
*                                                                  0364 00826000
*        OLDERID2 = NEWERID2;                                      0364 00827000
         L     @15,GDTTR2(,GDTREG)                                 0364 00828000
         MVC   @TS00001(95),NEWERID2(@15)                          0364 00829000
         MVC   OLDERID2(95,@15),@TS00001                           0364 00830000
*        NEWID2 = 'IOGT';                                          0365 00831000
         MVC   NEWID2(4,@15),@CC00987                              0365 00832000
*        IOCSPTR = GETIOCS;                                        0366 00833000
*                                                                  0366 00834000
         L     @15,@PC00001+28                                     0366 00835000
         L     @15,GETIOCS(,@15)                                   0366 00836000
         ST    @15,IOCSPTR                                         0366 00837000
*        /************************************************************/ 00838000
*        /*                                                          */ 00839000
*        /* INITIALIZE TEXT PROCESSOR ARGUMENT LIST                  */ 00840000
*        /* SET DEFAULT ERROR MESSAGE MODULE ID                      */ 00841000
*        /*                                                          */ 00842000
*        /************************************************************/ 00843000
*                                                                  0367 00844000
*        DMSGARG = ''B;                                            0367 00845000
         XC    DMSGARG(44),DMSGARG                                 0367 00846000
*        DDSTRU = ADDR (DMSGARG);                                  0368 00847000
         LA    @14,DMSGARG                                         0368 00848000
         ST    @14,DDSTRU                                          0368 00849000
*        DARGSMOD = 'IO0';                                         0369 00850000
*                                                                  0369 00851000
         MVC   DARGSMOD(3,@14),@CC00988                            0369 00852000
*        /************************************************************/ 00853000
*        /*                                                          */ 00854000
*        /* IF IOCS WAS NOT BUILT OR DATA SET IS NOT OPEN            */ 00855000
*        /* PROCESSING IS TERMINATED.                                */ 00856000
*        /*                                                          */ 00857000
*        /************************************************************/ 00858000
*                                                                  0370 00859000
*        IF IOCSPTR = NULLPTR | IOCMSGOP = OFF                     0370 00860000
*          THEN                                                    0370 00861000
*                                                                  0370 00862000
*                                                                  0370 00863000
         LTR   @15,@15                                             0370 00864000
         BZ    @RT00370                                            0370 00865000
         TM    IOCMSGOP(@15),B'10000000'                           0370 00866000
         BNZ   @RF00370                                            0370 00867000
@RT00370 DS    0H                                                  0371 00868000
*              DO;                                                 0371 00869000
*                RESPECIFY(REG13,REG14,REG15) RSTD;                0372 00870000
*                REG15 = 32;                                       0373 00871000
         LA    REG15,32                                            0373 00872000
*                REG14 = GDTABT;                                   0374 00873000
         L     REG14,GDTABT(,GDTREG)                               0374 00874000
*                REG13 = GDTABH;                                   0375 00875000
         L     REG13,GDTABH(,GDTREG)                               0375 00876000
*                GEN(BR    REG14);                                 0376 00877000
         BR    REG14                                                    00878000
*                RESPECIFY(REG13,REG14,REG15)UNRSTD;               0377 00879000
*              END;                                                0378 00880000
*                                                                  0378 00881000
*        /************************************************************/ 00882000
*        /*                                                          */ 00883000
*        /*       IF END OF FILE HAS ALREADY BEEN DETECTED IN DATA   */ 00884000
*        /*       SET RETURN TO CALLER WITH EOD-OF-DATA RETURN CODE  */ 00885000
*        /*                                                          */ 00886000
*        /************************************************************/ 00887000
*                                                                  0379 00888000
*        IF IOCFLGEF = ON                                          0379 00889000
*          THEN                                                    0379 00890000
@RF00370 L     @15,IOCSPTR                                         0379 00891000
         L     @01,IOCEXT(,@15)                                    0379 00892000
         TM    IOCFLGEF(@01),B'00100000'                           0379 00893000
         BNO   @RF00379                                            0379 00894000
*            DO;                                                   0380 00895000
*              IF IOCMACPA = OFF                                   0381 00896000
*                THEN                                              0381 00897000
         TM    IOCMACPA(@15),B'00000001'                           0381 00898000
         BNZ   @RF00381                                            0381 00899000
*                  DO;                                             0382 00900000
*                    SETRC = 16;                                   0383 00901000
         MVC   SETRC(2),@CH00262                                   0383 00902000
*                    CALL ICKSAEP0(GDTTBL,MODID,SETRC);            0384 00903000
         ST    GDTREG,@AL00001                                     0384 00904000
         LA    @15,MODID                                           0384 00905000
         ST    @15,@AL00001+4                                      0384 00906000
         LA    @15,SETRC                                           0384 00907000
         ST    @15,@AL00001+8                                      0384 00908000
         MVI   @AL00001+8,X'80'                                    0384 00909000
         L     @15,GDTEPL(,GDTREG)                                 0384 00910000
         LA    @01,@AL00001                                        0384 00911000
         BALR  @14,@15                                             0384 00912000
*                  END;                                            0385 00913000
*                ELSE                                              0386 00914000
*                  DO;                                             0386 00915000
         B     @RC00381                                            0386 00916000
@RF00381 DS    0H                                                  0387 00917000
*                    IOCFLGEF = OFF;                               0387 00918000
         L     @15,IOCSPTR                                         0387 00919000
         L     @01,IOCEXT(,@15)                                    0387 00920000
         NI    IOCFLGEF(@01),B'11011111'                           0387 00921000
*                    IOCMACPA = OFF;                               0388 00922000
         NI    IOCMACPA(@15),B'11111110'                           0388 00923000
*                  END;                                            0389 00924000
*        END;                                                      0390 00925000
*                                                                  0390 00926000
@RC00381 DS    0H                                                  0391 00927000
*        /************************************************************/ 00928000
*        /*                                                          */ 00929000
*        /*       IF THE DATA SET IS EXTERNALLY CONTROLLED GET       */ 00930000
*        /*       A DATA RECORD FROM EXTERNAL ROUTINE.               */ 00931000
*        /*                                                          */ 00932000
*        /************************************************************/ 00933000
*                                                                  0391 00934000
*        IF IOCFLGEX = ON                                          0391 00935000
*          THEN                                                    0391 00936000
*                                                                  0391 00937000
@RF00379 L     @01,IOCSPTR                                         0391 00938000
         L     @01,IOCEXT(,@01)                                    0391 00939000
         TM    IOCFLGEX(@01),B'10000000'                           0391 00940000
         BNO   @RF00391                                            0391 00941000
*            /********************************************************/ 00942000
*            /*                                                      */ 00943000
*            /* BUILD EXTERNAL GET FLAG FIELD AND CALL EXTERNAL RTN  */ 00944000
*            /*                                                      */ 00945000
*            /********************************************************/ 00946000
*                                                                  0392 00947000
*            DO;                                                   0392 00948000
*              EXTFLGFD = 0;                                       0393 00949000
         SLR   @15,@15                                             0393 00950000
         ST    @15,EXTFLGFD                                        0393 00951000
*              EXTTYPE = EXGETREQ;                                 0394 00952000
         MVI   EXTTYPE,X'08'                                       0394 00953000
*              CALL GETEXT (EXTFLGFD);                             0395 00954000
         LA    @15,EXTFLGFD                                        0395 00955000
         ST    @15,@AL00001                                        0395 00956000
         LA    @01,@AL00001                                        0395 00957000
         BAL   @14,GETEXT                                          0395 00958000
*            END;                                                  0396 00959000
*                                                                  0396 00960000
*          ELSE                                                    0397 00961000
*            CALL GETNONVS;                                        0397 00962000
*                                                                  0397 00963000
         B     @RC00391                                            0397 00964000
@RF00391 BAL   @14,GETNONVS                                        0397 00965000
*        /************************************************************/ 00966000
*        /*                                                          */ 00967000
*        /*       SAVE THE RETURN CODE FROM THE GET  SUBROUTINE.     */ 00968000
*        /*                                                          */ 00969000
*        /************************************************************/ 00970000
*                                                                  0398 00971000
*        RESPECIFY RTNREG RSTD;                                    0398 00972000
@RC00391 DS    0H                                                  0399 00973000
*        TESTRC = RTNREG;                                          0399 00974000
         STH   RTNREG,TESTRC                                       0399 00975000
*        RESPECIFY RTNREG UNRSTD;                                  0400 00976000
*                                                                  0400 00977000
*        /************************************************************/ 00978000
*        /*                                                          */ 00979000
*        /* IF A MESSAGE IS TO BE WRITTEN THE MESSAGE ID HAS BEEN    */ 00980000
*        /* SET IN THE TEXT PROC ARGUMENT.  THE PRINT ROUTINE        */ 00981000
*        /* IS CALLED TO WRITE THE MESSAGE.                          */ 00982000
*        /*                                                          */ 00983000
*        /************************************************************/ 00984000
*                                                                  0401 00985000
*        IF DARGSENT ^= 0                                          0401 00986000
*          THEN                                                    0401 00987000
         L     @01,DDSTRU                                          0401 00988000
         CLI   DARGSENT(@01),0                                     0401 00989000
         BE    @RF00401                                            0401 00990000
*            CALL BLDDMSG;                                         0402 00991000
*                                                                  0402 00992000
         BAL   @14,BLDDMSG                                         0402 00993000
*        /************************************************************/ 00994000
*        /*                                                          */ 00995000
*        /* RETURN TO THE CALLER WITH THE HIGHEST ERROR CODE         */ 00996000
*        /* ENCOUNTERED SET IN REGISTER 15.                          */ 00997000
*        /*                                                          */ 00998000
*        /************************************************************/ 00999000
*                                                                  0403 01000000
*        CALL ICKSAEP0(GDTTBL,MODID,TESTRC);                       0403 01001000
@RF00401 ST    GDTREG,@AL00001                                     0403 01002000
         LA    @15,MODID                                           0403 01003000
         ST    @15,@AL00001+4                                      0403 01004000
         LA    @15,TESTRC                                          0403 01005000
         ST    @15,@AL00001+8                                      0403 01006000
         MVI   @AL00001+8,X'80'                                    0403 01007000
         L     @15,GDTEPL(,GDTREG)                                 0403 01008000
         LA    @01,@AL00001                                        0403 01009000
         BALR  @14,@15                                             0403 01010000
*                                                                  0404 01011000
*        /************************************************************/ 01012000
*        /*                                                          */ 01013000
*        /* PROCEDURE NAME - GETEXT                                  */ 01014000
*        /*                                                          */ 01015000
*        /* FUNCTION - THIS PROCEDURE WILL CALL AN EXTERNAL INPUT    */ 01016000
*        /*            ROUTINE TO HAVE A DATA RECORD LOCATED.  THE   */ 01017000
*        /*            EXTERNAL ARGUMENT, FLAG FIELD AND IOCSPTR     */ 01018000
*        /*            ARE PASSED AS ARGUMENTS TO THE EXTERNAL       */ 01019000
*        /*            ROUTINE.                                      */ 01020000
*        /*                                                          */ 01021000
*        /* INPUT -    IOCSPTR - ADDRESS OF INPUT IOCS.              */ 01022000
*        /*                                                          */ 01023000
*        /* OUTPUT -   IOCS IS UPDATE BY EXTERNAL ROUTINE            */ 01024000
*        /*            RETURN CODE IS SET (FROM EXTERNAL RC)         */ 01025000
*        /*                                                          */ 01026000
*        /* ERRORS -   AN ERROR RETURN CODE FROM THE EXTERNAL        */ 01027000
*        /*            ROUTINE RESULTS IN ERROR CODE BEING SET       */ 01028000
*        /*            IN TESTRC.                                    */ 01029000
*        /*                                                          */ 01030000
*        /************************************************************/ 01031000
*                                                                  0404 01032000
*GETEXT: PROC (INFLGFLD) OPTIONS (SAVEAREA);                       0404 01033000
*                                                                  0404 01034000
         B     @PB00002                                            0404 01035000
GETEXT   STM   @14,@12,12(@13)                                     0404 01036000
         ST    @13,@SA00002+4                                      0404 01037000
         LA    @14,@SA00002                                        0404 01038000
         ST    @14,8(,@13)                                         0404 01039000
         LR    @13,@14                                             0404 01040000
         MVC   @PC00002(4),0(@01)                                  0404 01041000
*        /************************************************************/ 01042000
*        /*                                                          */ 01043000
*        /* DECLARES USED ONLY BY THIS PROCEDURE.                    */ 01044000
*        /*                                                          */ 01045000
*        /************************************************************/ 01046000
*                                                                  0405 01047000
*        /* EXTERNAL ROUTINE FLAG FIELD                              */ 01048000
*        DCL INFLGFLD FIXED (31);                                  0405 01049000
*                                                                  0405 01050000
*        /* RETURN CODE FOR MAIN ROUTINE AFTER GET EXTERNAL          */ 01051000
*        DCL EXTRC FIXED (15);                                     0406 01052000
*                                                                  0406 01053000
*        /************************************************************/ 01054000
*        /*                                                          */ 01055000
*        /*GET DATA RECORD FROM EXTERNAL ROUTINE AND SAVE RETURN CODE*/ 01056000
*        /*                                                          */ 01057000
*        /************************************************************/ 01058000
*                                                                  0407 01059000
*        EXTRC = EXTOK;                                            0407 01060000
*                                                                  0407 01061000
         SLR   @15,@15                                             0407 01062000
         STH   @15,EXTRC                                           0407 01063000
*        OLDERID2 = NEWERID2;                                      0408 01064000
         L     @15,GDTTR2(,GDTREG)                                 0408 01065000
         MVC   @TS00001(95),NEWERID2(@15)                          0408 01066000
         MVC   OLDERID2(95,@15),@TS00001                           0408 01067000
*        NEWID2 = 'IOEG';                                          0409 01068000
*                                                                  0409 01069000
         MVC   NEWID2(4,@15),@CC00998                              0409 01070000
*        CALL EXTRTN (IOEXPARM,INFLGFLD,EXTIOCS);                  0410 01071000
         L     @01,IOCSPTR                                         0410 01072000
         L     @15,IOCEXT(,@01)                                    0410 01073000
         L     @01,IOCXPM(,@15)                                    0410 01074000
         ST    @01,@AL00001                                        0410 01075000
         L     @14,@PC00002                                        0410 01076000
         ST    @14,@AL00001+4                                      0410 01077000
         LA    @14,EXTIOCS                                         0410 01078000
         ST    @14,@AL00001+8                                      0410 01079000
         MVI   @AL00001+8,X'80'                                    0410 01080000
         L     @15,IOCXAD(,@15)                                    0410 01081000
         LA    @01,@AL00001                                        0410 01082000
         BALR  @14,@15                                             0410 01083000
*        RESPECIFY RTNREG RSTD;                                    0411 01084000
*        TESTRC = RTNREG;                                          0412 01085000
         STH   RTNREG,TESTRC                                       0412 01086000
*        RESPECIFY RTNREG UNRSTD;                                  0413 01087000
*                                                                  0413 01088000
*        IF TESTRC = EXTEOD                                        0414 01089000
*          THEN                                                    0414 01090000
*                                                                  0414 01091000
         LH    @15,TESTRC                                          0414 01092000
         C     @15,@CF00037                                        0414 01093000
         BNE   @RF00414                                            0414 01094000
*            /********************************************************/ 01095000
*            /*                                                      */ 01096000
*            /* EODAD FROM EXTERNAL ROUTINE - SET RETURN CODE        */ 01097000
*            /*                                                      */ 01098000
*            /********************************************************/ 01099000
*                                                                  0415 01100000
*            DO;                                                   0415 01101000
*              IOCFLGEF = ON;                                      0416 01102000
         L     @01,IOCSPTR                                         0416 01103000
         L     @01,IOCEXT(,@01)                                    0416 01104000
         OI    IOCFLGEF(@01),B'00100000'                           0416 01105000
*              EXTRC = 16;                                         0417 01106000
         MVC   EXTRC(2),@CH00262                                   0417 01107000
*            END;                                                  0418 01108000
*                                                                  0418 01109000
*          ELSE                                                    0419 01110000
*            DO;                                                   0419 01111000
*                                                                  0419 01112000
         B     @RC00414                                            0419 01113000
@RF00414 DS    0H                                                  0420 01114000
*              IF TESTRC = EXTOK                                   0420 01115000
*                THEN                                              0420 01116000
*                                                                  0420 01117000
         LH    @15,TESTRC                                          0420 01118000
         LTR   @15,@15                                             0420 01119000
         BNZ   @RF00420                                            0420 01120000
*                  /**************************************************/ 01121000
*                  /*                                                */ 01122000
*                  /* GET SUCCESSFUL - SET IOCSTR VALUES             */ 01123000
*                  /*                                                */ 01124000
*                  /**************************************************/ 01125000
*                                                                  0421 01126000
*                  DO;                                             0421 01127000
*                    IOCDAD = EXTDAD;                              0422 01128000
         L     @15,IOCSPTR                                         0422 01129000
         L     @14,EXTDAD                                          0422 01130000
         ST    @14,IOCDAD(,@15)                                    0422 01131000
*                    IOCDLN = EXTDLN;                              0423 01132000
         L     @14,EXTDLN                                          0423 01133000
         ST    @14,IOCDLN(,@15)                                    0423 01134000
*                    IOCRRN = IOCRRN + 1;                          0424 01135000
         LA    @14,1                                               0424 01136000
         AL    @14,IOCRRN(,@15)                                    0424 01137000
         ST    @14,IOCRRN(,@15)                                    0424 01138000
*                  END;                                            0425 01139000
*                                                                  0425 01140000
*                ELSE                                              0426 01141000
*                                                                  0426 01142000
*                  /**************************************************/ 01143000
*                  /*                                                */ 01144000
*                  /* ERROR - CHECK TYPE AND SET RETURN CODE         */ 01145000
*                  /*                                                */ 01146000
*                  /**************************************************/ 01147000
*                                                                  0426 01148000
*                  DO;                                             0426 01149000
         B     @RC00420                                            0426 01150000
@RF00420 DS    0H                                                  0427 01151000
*                    EXTRC = 4;                                    0427 01152000
         MVC   EXTRC(2),@CH00037                                   0427 01153000
*                    IF TESTRC = EXTTERM                           0428 01154000
*                      THEN                                        0428 01155000
         CLC   TESTRC(2),@CH00034                                  0428 01156000
         BNE   @RF00428                                            0428 01157000
*                        IOCMSGOP = OFF;                           0429 01158000
         L     @01,IOCSPTR                                         0429 01159000
         NI    IOCMSGOP(@01),B'01111111'                           0429 01160000
*                  END;                                            0430 01161000
*                                                                  0430 01162000
@RF00428 DS    0H                                                  0431 01163000
*            END;                                                  0431 01164000
*                                                                  0431 01165000
@RC00420 DS    0H                                                  0432 01166000
*        IF GDTDBG = NULLPTR                                       0432 01167000
*          THEN;                                                   0432 01168000
@RC00414 L     @15,GDTDBG(,GDTREG)                                 0432 01169000
         LTR   @15,@15                                             0432 01170000
         BZ    @RT00432                                            0432 01171000
*          ELSE                                                    0434 01172000
*            CALL ICKDB010 (GDTTBL,'IOEG');                        0434 01173000
*                                                                  0434 01174000
         ST    GDTREG,@AL00001                                     0434 01175000
         LA    @15,@CC00998                                        0434 01176000
         ST    @15,@AL00001+4                                      0434 01177000
         MVI   @AL00001+4,X'80'                                    0434 01178000
         L     @15,GDTDBG(,GDTREG)                                 0434 01179000
         LA    @01,@AL00001                                        0434 01180000
         BALR  @14,@15                                             0434 01181000
*        /************************************************************/ 01182000
*        /*                                                          */ 01183000
*        /* SET HIGHEST RETURN CODE ENCOUNTERED FOR MAIN ROUTINE.    */ 01184000
*        /*                                                          */ 01185000
*        /************************************************************/ 01186000
*                                                                  0435 01187000
*        RETURN CODE (EXTRC);                                      0435 01188000
@RT00432 LH    @15,EXTRC                                           0435 01189000
         L     @13,4(,@13)                                         0435 01190000
         L     @14,12(,@13)                                        0435 01191000
         LM    @00,@12,20(@13)                                     0435 01192000
         BR    @14                                                 0435 01193000
*        END GETEXT;                                               0436 01194000
*                                                                  0437 01195000
*                                                                  0437 01196000
*        /************************************************************/ 01197000
*        /*                                                          */ 01198000
*        /* PROCEDURE NAME - GETNONVS                                */ 01199000
*        /*                                                          */ 01200000
*        /* FUNCTION - THIS PROCEDURE WILL GET A LOGICAL RECORD      */ 01201000
*        /*            FROM A  DATA SET.                             */ 01202000
*        /*                                                          */ 01203000
*        /* INPUT -    IOCSPTR CONTAINS THE ADDRESS OF THE IOCS      */ 01204000
*        /*            DEFINING THE INPUT DATA SET.                  */ 01205000
*        /*                                                          */ 01206000
*        /* OUTPUT -   IOCDAD - RECORD ADDRESS                       */ 01207000
*        /*            IOCDLN - LENGTH OF DATA RECORD                */ 01208000
*        /*            GETRC  - RETURN CODE                          */ 01209000
*        /*                                                          */ 01210000
*        /* ERRORS -   I/O ERROR GETTING DATA RECORD.                */ 01211000
*        /*                                                          */ 01212000
*        /************************************************************/ 01213000
*                                                                  0437 01214000
*GETNONVS: PROC OPTIONS (SAVEAREA);                                0437 01215000
*                                                                  0437 01216000
GETNONVS STM   @14,@12,12(@13)                                     0437 01217000
         ST    @13,@SA00003+4                                      0437 01218000
         LA    @14,@SA00003                                        0437 01219000
         ST    @14,8(,@13)                                         0437 01220000
         LR    @13,@14                                             0437 01221000
*        /* RETURN CODE FOR THE GET OPERATION                        */ 01222000
*        DCL GETRC FIXED (15);                                     0438 01223000
*                                                                  0438 01224000
*        DCL KEYADDR PTR (31);         /* ADDRESS OF ISAM KEY        */ 01225000
*        DCL MOVEKEY CHAR (256) BASED (KEYADDR);                   0440 01226000
*                                                                  0440 01227000
*        /************************************************************/ 01228000
*        /*                                                          */ 01229000
*        /* INITIALIZE RETURN CODE AND SET ADDRESSIBILITY TO DCB     */ 01230000
*        /*                                                          */ 01231000
*        /************************************************************/ 01232000
*                                                                  0441 01233000
*        GETRC = 0;                                                0441 01234000
         SLR   @15,@15                                             0441 01235000
         STH   @15,GETRC                                           0441 01236000
*        DCBPTR = IOCCBA;                                          0442 01237000
         L     @15,IOCSPTR                                         0442 01238000
         L     @01,IOCEXT(,@15)                                    0442 01239000
         L     @14,IOCCBA(,@01)                                    0442 01240000
         ST    @14,DCBPTR                                          0442 01241000
*        OLDERID2 = NEWERID2;                                      0443 01242000
         L     @14,GDTTR2(,GDTREG)                                 0443 01243000
         MVC   @TS00001(95),NEWERID2(@14)                          0443 01244000
         MVC   OLDERID2(95,@14),@TS00001                           0443 01245000
*        NEWID2 = 'IOOG';                                          0444 01246000
*                                                                  0444 01247000
*                                                                  0444 01248000
         MVC   NEWID2(4,@14),@CC01006                              0444 01249000
*        /************************************************************/ 01250000
*        /*                                                          */ 01251000
*        /* IF THE DATA SET IS OPEN FOR BLOCK PROCESSING             */ 01252000
*        /* THE READ MACRO WILL BE ISSUED                            */ 01253000
*        /*                                                          */ 01254000
*        /************************************************************/ 01255000
*                                                                  0445 01256000
*        IF IOCMACBK = ON                                          0445 01257000
*          THEN                                                    0445 01258000
         TM    IOCMACBK(@15),B'00010000'                           0445 01259000
         BNO   @RF00445                                            0445 01260000
*BSAMGET:    DO;                                                   0446 01261000
*                                                                  0446 01262000
BSAMGET  DS    0H                                                  0447 01263000
*              /******************************************************/ 01264000
*              /*                                                    */ 01265000
*              /* MOVE LIST FORM OF READ MACRO                       */ 01266000
*              /*                                                    */ 01267000
*              /******************************************************/ 01268000
*                                                                  0447 01269000
*              DECBADDR = ADDR (READLIST);                         0447 01270000
         LA    @15,READLIST                                        0447 01271000
         ST    @15,DECBADDR                                        0447 01272000
*              MACAREA (1:24) = IODECB (1:24);                     0448 01273000
*                                                                  0448 01274000
         MVC   MACAREA(24),IODECB(@15)                             0448 01275000
*              RFY (REG6) RSTD;                                    0449 01276000
*              RFY (REG5) RSTD;                                    0450 01277000
*              RFY (REG7) RSTD;                                    0451 01278000
*                                                                  0451 01279000
*              REG7 = DCBPTR;                                      0452 01280000
         L     REG7,DCBPTR                                         0452 01281000
*              REG6 = IOCWKA;                                      0453 01282000
         L     @04,IOCSPTR                                         0453 01283000
         L     @04,IOCEXT(,@04)                                    0453 01284000
         L     REG6,IOCWKA(,@04)                                   0453 01285000
*              REG5 = ADDR (MACAREA);                              0454 01286000
*                                                                  0454 01287000
         LA    REG5,MACAREA                                        0454 01288000
*LREAD1:       GEN(READ  (REG5),SF,(REG7),(REG6),MF=E);            0455 01289000
LREAD1   READ  (REG5),SF,(REG7),(REG6),MF=E                             01290000
*LCHECK1:      GEN(CHECK (REG5));                                  0456 01291000
*                                                                  0456 01292000
LCHECK1  CHECK (REG5)                                                   01293000
*              RFY (REG5) UNRSTD;                                  0457 01294000
*              RFY (REG6) UNRSTD;                                  0458 01295000
*              RFY (REG7) UNRSTD;                                  0459 01296000
*                                                                  0459 01297000
*              /******************************************************/ 01298000
*              /*                                                    */ 01299000
*              /* FOR UPDATE PROCESSING, SAVE A COPY OF              */ 01300000
*              /* THE READ DECB FOR THE SUBSEQUENT WRITE.            */ 01301000
*              /*                                                    */ 01302000
*              /******************************************************/ 01303000
*                                                                  0460 01304000
*              IF IOCMACUP = ON                                    0460 01305000
*                THEN                                              0460 01306000
         L     @15,IOCSPTR                                         0460 01307000
         TM    IOCMACUP(@15),B'00100000'                           0460 01308000
         BNO   @RF00460                                            0460 01309000
*                     UPDECB(1:24) = MACAREA (1:24);               0461 01310000
*                                                                  0461 01311000
         L     @01,IOCEXT(,@15)                                    0461 01312000
         L     @01,IOCDEC(,@01)                                    0461 01313000
         MVC   UPDECB(24,@01),MACAREA                              0461 01314000
*              /******************************************************/ 01315000
*              /*                                                    */ 01316000
*              /* IF NO MESSAGE HAS BEEN SET BY AN EXIT              */ 01317000
*              /* ROUTINE THE READ WAS SUCCESSFUL.                   */ 01318000
*              /* THE ADDRESS OF THE RECORD IS THE ADDRESS           */ 01319000
*              /* OF THE WORKAREA.                                   */ 01320000
*              /* IF DATA SET IS BEING PROCESSED WITH A KEY          */ 01321000
*              /* THE KEY IS CONTAINED IN THE WORKAREA.              */ 01322000
*              /* THE LENGTH OF THE  BLOCK FOR VARIABLE              */ 01323000
*              /* LENGTH RECORDS IS FOUND IN THE BLOCK               */ 01324000
*              /* DESCRIPTOR WORD.  THE LENGTH FOR FIXED             */ 01325000
*              /* UNBLOCKED RECORDS IS FOUND IN DCBBLKSI.            */ 01326000
*              /* THE LENGTH FOR ALL OTHERS IS FOUND BY              */ 01327000
*              /* SUBTRACTING THE RESIDUAL COUNT IN THE IOB          */ 01328000
*              /* FROM THE NUMBER OF BYTES REQUESTED IN THE          */ 01329000
*              /* DCBBLKSI FIELD IN THE DCB.                         */ 01330000
*              /*                                                    */ 01331000
*              /******************************************************/ 01332000
*                                                                  0462 01333000
*              IF DARGSENT ^= 0                                    0462 01334000
*                THEN                                              0462 01335000
@RF00460 L     @01,DDSTRU                                          0462 01336000
         CLI   DARGSENT(@01),0                                     0462 01337000
         BE    @RF00462                                            0462 01338000
*                  GETRC = 4;                                      0463 01339000
         MVC   GETRC(2),@CH00037                                   0463 01340000
*                ELSE                                              0464 01341000
*                  DO;                                             0464 01342000
         B     @RC00462                                            0464 01343000
@RF00462 DS    0H                                                  0465 01344000
*                    IOCRRN = IOCRRN + 1;                          0465 01345000
         L     @15,IOCSPTR                                         0465 01346000
         LA    @14,1                                               0465 01347000
         AL    @14,IOCRRN(,@15)                                    0465 01348000
         ST    @14,IOCRRN(,@15)                                    0465 01349000
*                    IOCDAD = IOCWKA;                              0466 01350000
         L     @01,IOCEXT(,@15)                                    0466 01351000
         L     @14,IOCWKA(,@01)                                    0466 01352000
         ST    @14,IOCDAD(,@15)                                    0466 01353000
*                    IF IOCRFMVR = ON                              0467 01354000
*                      THEN                                        0467 01355000
         TM    IOCRFMVR(@15),B'01000000'                           0467 01356000
         BNO   @RF00467                                            0467 01357000
*                        DO;                                       0468 01358000
*                          FMADDR = IOCDAD + IOCKYL;               0469 01359000
         SLR   @07,@07                                             0469 01360000
         IC    @07,IOCKYL(,@15)                                    0469 01361000
         ALR   @14,@07                                             0469 01362000
         ST    @14,FMADDR                                          0469 01363000
*                          LENCHR (1:2) = FMAREA (1:2);            0470 01364000
         MVC   LENCHR(2),FMAREA(@14)                               0470 01365000
*                          IOCDLN = LENHFIX;                       0471 01366000
         LH    @14,LENHFIX                                         0471 01367000
         ST    @14,IOCDLN(,@15)                                    0471 01368000
*                        END;                                      0472 01369000
*                                                                  0472 01370000
*                      ELSE                                        0473 01371000
*                        DO;                                       0473 01372000
*                                                                  0473 01373000
         B     @RC00467                                            0473 01374000
@RF00467 DS    0H                                                  0474 01375000
*                          IF IOCRFMFX = ON & IOCRFMBK = OFF       0474 01376000
*                            THEN                                  0474 01377000
         L     @15,IOCSPTR                                         0474 01378000
         TM    IOCRFMFX(@15),B'10000000'                           0474 01379000
         BNO   @RF00474                                            0474 01380000
         TM    IOCRFMBK(@15),B'00001000'                           0474 01381000
         BNZ   @RF00474                                            0474 01382000
*                              IOCDLN = DCBBLKSI;                  0475 01383000
*                                                                  0475 01384000
         L     @01,DCBPTR                                          0475 01385000
         LH    @14,DCBBLKSI+52(,@01)                               0475 01386000
         ST    @14,IOCDLN(,@15)                                    0475 01387000
*                            ELSE                                  0476 01388000
*                              IOCDLN = DCBBLKSI - IOBRESCT;       0476 01389000
*                                                                  0476 01390000
         B     @RC00474                                            0476 01391000
@RF00474 L     @01,DCBPTR                                          0476 01392000
         LH    @15,DCBBLKSI+52(,@01)                               0476 01393000
         L     @14,DECBIOB                                         0476 01394000
         SH    @15,IOBRESCT(,@14)                                  0476 01395000
         L     @14,IOCSPTR                                         0476 01396000
         ST    @15,IOCDLN(,@14)                                    0476 01397000
*                        END;                                      0477 01398000
*                                                                  0477 01399000
@RC00474 DS    0H                                                  0478 01400000
*                    /* ADD KEY LENGTH TO BLOCK LENGTH               */ 01401000
*                    IOCDLN = IOCDLN + IOCKYL;                     0478 01402000
*                                                                  0478 01403000
@RC00467 L     @15,IOCSPTR                                         0478 01404000
         SLR   @14,@14                                             0478 01405000
         IC    @14,IOCKYL(,@15)                                    0478 01406000
         AL    @14,IOCDLN(,@15)                                    0478 01407000
         ST    @14,IOCDLN(,@15)                                    0478 01408000
*                  END;                                            0479 01409000
*                                                                  0479 01410000
*              RETURN CODE (GETRC);                                0480 01411000
*                                                                  0480 01412000
@RC00462 LH    @15,GETRC                                           0480 01413000
         L     @13,4(,@13)                                         0480 01414000
         L     @14,12(,@13)                                        0480 01415000
         LM    @00,@12,20(@13)                                     0480 01416000
         BR    @14                                                 0480 01417000
*            END BSAMGET;                                          0481 01418000
*                                                                  0481 01419000
*                                                                  0481 01420000
*        RESPECIFY (REG7) RSTD;                                    0482 01421000
@RF00445 DS    0H                                                  0483 01422000
*        RESPECIFY (REG0) RSTD;                                    0483 01423000
*        RESPECIFY (REG1) RSTD;                                    0484 01424000
*                                                                  0484 01425000
*        /************************************************************/ 01426000
*        /*                                                          */ 01427000
*        /* ISSUE THE GET MACRO AND THE ADDRESS OF THE DATA          */ 01428000
*        /* RECORD IS RETURNED IN REGISTER 1.                        */ 01429000
*        /*                                                          */ 01430000
*        /************************************************************/ 01431000
*                                                                  0485 01432000
*                                                                  0485 01433000
*        REG7 = DCBPTR;                                            0485 01434000
         L     REG7,DCBPTR                                         0485 01435000
*LGET2:  GEN(GET   (REG7));                                        0486 01436000
LGET2    GET   (REG7)                                                   01437000
*        FMADDR = REG1;                                            0487 01438000
*                                                                  0487 01439000
*                                                                  0487 01440000
         ST    REG1,FMADDR                                         0487 01441000
*        RESPECIFY (REG0) UNRSTD;                                  0488 01442000
*        RESPECIFY (REG1) UNRSTD;                                  0489 01443000
*        RESPECIFY (REG7) UNRSTD;                                  0490 01444000
*                                                                  0490 01445000
*        /************************************************************/ 01446000
*        /*                                                          */ 01447000
*        /* IF AN I/O ERROR WAS DETECTED THE  INPUT SYNAD            */ 01448000
*        /* ROUTINE (IRSISYN) WOULD HAVE PLACED AN MESSAGE ID IN     */ 01449000
*        /* THE TEXT PROC ARGUMENT LIST.  IF THE SYNAD ROUTINE       */ 01450000
*        /* RETURNED TO THE ACCESS METHOD  THE RETURN CODE MUST BE   */ 01451000
*        /* SET HERE.                                                */ 01452000
*        /*                                                          */ 01453000
*        /************************************************************/ 01454000
*                                                                  0491 01455000
*        IF DARGSENT ^= 0                                          0491 01456000
*          THEN                                                    0491 01457000
         L     @01,DDSTRU                                          0491 01458000
         CLI   DARGSENT(@01),0                                     0491 01459000
         BE    @RF00491                                            0491 01460000
*            GETRC = 4;                                            0492 01461000
*                                                                  0492 01462000
         MVC   GETRC(2),@CH00037                                   0492 01463000
*          ELSE                                                    0493 01464000
*            DO;                                                   0493 01465000
*                                                                  0493 01466000
         B     @RC00491                                            0493 01467000
@RF00491 DS    0H                                                  0494 01468000
*              IOCDAD = FMADDR;                                    0494 01469000
*                                                                  0494 01470000
         L     @15,IOCSPTR                                         0494 01471000
         L     @14,FMADDR                                          0494 01472000
         ST    @14,IOCDAD(,@15)                                    0494 01473000
*              /******************************************************/ 01474000
*              /*                                                    */ 01475000
*              /* FOR VARIABLE LENGTH RECORDS FIRST BYTE OF DATA     */ 01476000
*              /* IS AFTER THE RDW.                                  */ 01477000
*              /*                                                    */ 01478000
*              /******************************************************/ 01479000
*                                                                  0495 01480000
*              IF IOCRFMVR = ON                                    0495 01481000
*                THEN                                              0495 01482000
         TM    IOCRFMVR(@15),B'01000000'                           0495 01483000
         BNO   @RF00495                                            0495 01484000
*                  IOCDAD = IOCDAD + 4;                            0496 01485000
*                                                                  0496 01486000
         AL    @14,@CF00037                                        0496 01487000
         ST    @14,IOCDAD(,@15)                                    0496 01488000
*              /******************************************************/ 01489000
*              /*                                                    */ 01490000
*              /* IF THE RECORD FORMAT IS VARIABLE THE LENGTH OF     */ 01491000
*              /* THE RECORD IS FOUND IN THE FIRST TWO BYTES OF      */ 01492000
*              /* THE LOGICAL RECORD.                                */ 01493000
*              /*                                                    */ 01494000
*              /* THE LENGTH OF THE RDW IS SUBTRACTED TO GIVE THE    */ 01495000
*              /* LENGTH OF DATA ONLY.                               */ 01496000
*              /*                                                    */ 01497000
*              /******************************************************/ 01498000
*                                                                  0497 01499000
*              IF IOCRFMVR = ON                                    0497 01500000
*                THEN                                              0497 01501000
@RF00495 L     @15,IOCSPTR                                         0497 01502000
         TM    IOCRFMVR(@15),B'01000000'                           0497 01503000
         BNO   @RF00497                                            0497 01504000
*                  DO;                                             0498 01505000
*                                                                  0498 01506000
*                    LENCHR (1:2) = FMAREA (1:2);                  0499 01507000
         L     @01,FMADDR                                          0499 01508000
         MVC   LENCHR(2),FMAREA(@01)                               0499 01509000
*                    LENHFIX = LENHFIX - 4;                        0500 01510000
         LH    @14,LENHFIX                                         0500 01511000
         SL    @14,@CF00037                                        0500 01512000
         STH   @14,LENHFIX                                         0500 01513000
*                    IOCDLN = LENHFIX;                             0501 01514000
*                                                                  0501 01515000
         ST    @14,IOCDLN(,@15)                                    0501 01516000
*                  END;                                            0502 01517000
*                                                                  0502 01518000
*                /****************************************************/ 01519000
*                /*                                                  */ 01520000
*                /* RECORD FORMAT IS FIXED OR UNDEFINED. THE LENGTH  */ 01521000
*                /* OF RECORD READ IS IN THE DCB.                    */ 01522000
*                /*                                                  */ 01523000
*                /****************************************************/ 01524000
*                                                                  0503 01525000
*                ELSE                                              0503 01526000
*                  IOCDLN = DCBLRECL;                              0503 01527000
*                                                                  0503 01528000
         B     @RC00497                                            0503 01529000
@RF00497 L     @01,DCBPTR                                          0503 01530000
         LH    @15,DCBLRECL+72(,@01)                               0503 01531000
         L     @14,IOCSPTR                                         0503 01532000
         ST    @15,IOCDLN(,@14)                                    0503 01533000
*              /******************************************************/ 01534000
*              /*                                                    */ 01535000
*              /* SET RECORD NUMBER                                  */ 01536000
*              /*                                                    */ 01537000
*              /******************************************************/ 01538000
*              IOCRRN = IOCRRN + 1;                                0504 01539000
*                                                                  0504 01540000
@RC00497 L     @15,IOCSPTR                                         0504 01541000
         LA    @14,1                                               0504 01542000
         AL    @14,IOCRRN(,@15)                                    0504 01543000
         ST    @14,IOCRRN(,@15)                                    0504 01544000
*            END;                                                  0505 01545000
*                                                                  0505 01546000
*        /************************************************************/ 01547000
*        /*                                                          */ 01548000
*        /* THE GET PROCESSING IS COMPLETE  RETURN TO CALLING PROC   */ 01549000
*        /*                                                          */ 01550000
*        /************************************************************/ 01551000
*                                                                  0506 01552000
*        RETURN CODE (GETRC);                                      0506 01553000
*                                                                  0506 01554000
@RC00491 LH    @15,GETRC                                           0506 01555000
         L     @13,4(,@13)                                         0506 01556000
         L     @14,12(,@13)                                        0506 01557000
         LM    @00,@12,20(@13)                                     0506 01558000
         BR    @14                                                 0506 01559000
*        /************************************************************/ 01560000
*        /*                                                          */ 01561000
*        /* THE FOLLOWING ARE ROUTINES THAT WILL RECEIVE CONTROL     */ 01562000
*        /* FROM THE ACCESS METHOD AFTER A  GET REQUEST              */ 01563000
*        /* IF EODAD OR SYNAD IS DETECTED.                           */ 01564000
*        /*                                                          */ 01565000
*        /************************************************************/ 01566000
*                                                                  0507 01567000
*        /************************************************************/ 01568000
*        /*                                                          */ 01569000
*        /* IF EOD IS DETECTED THE RETURN CODE IS SET AND CONTROL    */ 01570000
*        /* RETURNS TO THE CALLING PROCEDURE.                        */ 01571000
*        /*                                                          */ 01572000
*        /************************************************************/ 01573000
*                                                                  0507 01574000
*IROSEOD:                                                          0507 01575000
*                                                                  0507 01576000
*                                                                  0507 01577000
*        IOCFLGEF = ON;                                            0507 01578000
IROSEOD  L     @01,IOCSPTR                                         0507 01579000
         L     @01,IOCEXT(,@01)                                    0507 01580000
         OI    IOCFLGEF(@01),B'00100000'                           0507 01581000
*        RETURN CODE (16);                                         0508 01582000
*                                                                  0508 01583000
         LA    @15,16                                              0508 01584000
         L     @13,4(,@13)                                         0508 01585000
         L     @14,12(,@13)                                        0508 01586000
         LM    @00,@12,20(@13)                                     0508 01587000
         BR    @14                                                 0508 01588000
*        /************************************************************/ 01589000
*        /*                                                          */ 01590000
*        /* ROUTINE IS ENTERED IF AN I/O ERROR IS DETECTED FOLLOWING */ 01591000
*        /* THE  GET.                                                */ 01592000
*        /*                                                          */ 01593000
*        /************************************************************/ 01594000
*                                                                  0509 01595000
*IRSISYN:                                                          0509 01596000
*        RESPECIFY REG14 RSTD;                                     0509 01597000
IRSISYN  DS    0H                                                  0510 01598000
*        SAVE14 = REG14;                                           0510 01599000
         ST    REG14,SAVE14                                        0510 01600000
*        RESPECIFY REG14 UNRSTD;                                   0511 01601000
*                                                                  0511 01602000
*        RESPECIFY (REG1) RSTD;                                    0512 01603000
*                                                                  0512 01604000
*        OLDERID2 = NEWERID2;                                      0513 01605000
         L     @15,GDTTR2(,GDTREG)                                 0513 01606000
         MVC   @TS00001(95),NEWERID2(@15)                          0513 01607000
         MVC   OLDERID2(95,@15),@TS00001                           0513 01608000
*        NEWID2 = 'IOS2';                                          0514 01609000
*                                                                  0514 01610000
         MVC   NEWID2(4,@15),@CC01017                              0514 01611000
*        /************************************************************/ 01612000
*        /*                                                          */ 01613000
*        /* ISSUE THE SYNADAF MACRO AND MOVE THE MESSAGE TO          */ 01614000
*        /* TWO AREAS WHERE IT WILL BE WRITTEN FROM.                 */ 01615000
*        /*                                                          */ 01616000
*        /************************************************************/ 01617000
*                                                                  0515 01618000
*          IF IOCMACBK = ON                                        0515 01619000
*            THEN                                                  0515 01620000
         L     @15,IOCSPTR                                         0515 01621000
         TM    IOCMACBK(@15),B'00010000'                           0515 01622000
         BNO   @RF00515                                            0515 01623000
*LSYNF5:       GEN(SYNADAF  ACSMETH=BSAM);                         0516 01624000
LSYNF5   SYNADAF  ACSMETH=BSAM                                          01625000
*            ELSE                                                  0517 01626000
*LSYNF1:       GEN(SYNADAF  ACSMETH=QSAM);                         0517 01627000
*                                                                  0517 01628000
         B     @RC00515                                            0517 01629000
@RF00515 DS    0H                                                  0517 01630000
LSYNF1   SYNADAF  ACSMETH=QSAM                                          01631000
*        SYNADDR = REG1;                                           0518 01632000
@RC00515 ST    REG1,SYNADDR                                        0518 01633000
*        SYNPRINT (1:80) = SYNMSG (49:128);                        0519 01634000
         L     @15,SYNADDR                                         0519 01635000
         MVC   SYNPRINT(80),SYNMSG+48(@15)                         0519 01636000
*        DARGDBP = ADDR (SYNPRINT);                                0520 01637000
         L     @15,DDSTRU                                          0520 01638000
         LA    @00,SYNPRINT                                        0520 01639000
         ST    @00,DARGDBP(,@15)                                   0520 01640000
*        DARGILP = 80;                                             0521 01641000
*                                                                  0521 01642000
         MVC   DARGILP(2,@15),@CH00874                             0521 01643000
*        /************************************************************/ 01644000
*        /*                                                          */ 01645000
*        /* SET ERROR CODE AND SAVE STATIC TEXT ID                   */ 01646000
*        /*                                                          */ 01647000
*        /************************************************************/ 01648000
*                                                                  0522 01649000
*        GETRC = 4;                                                0522 01650000
         MVC   GETRC(2),@CH00037                                   0522 01651000
*        DARGSENT = SYNASTID;                                      0523 01652000
*                                                                  0523 01653000
         MVI   DARGSENT(@15),X'10'                                 0523 01654000
*        /************************************************************/ 01655000
*        /*                                                          */ 01656000
*        /* IF ANY CONDITIONS ARISE WHERE CONTROL SHOULD RETURN TO   */ 01657000
*        /* THE ACCESS METHOD (CHECK SHOULD BE MADE HERE)  THE CODE  */ 01658000
*        /* TO CHECK FOR THE SYNAD HAS ALREADY BEEN PLACED AFTER     */ 01659000
*        /* THE GET  MACRO.                                          */ 01660000
*        /*                                                          */ 01661000
*        /************************************************************/ 01662000
*                                                                  0524 01663000
*                                                                  0524 01664000
*                                                                  0524 01665000
*        /************************************************************/ 01666000
*        /*                                                          */ 01667000
*        /* RELEASE THE WORKAREA WHERE THE SYNAD MESSAGE WAS         */ 01668000
*        /* SAVE BY THE ACCESS METHOD.                               */ 01669000
*        /*                                                          */ 01670000
*        /************************************************************/ 01671000
*                                                                  0524 01672000
*LSYNR1: GEN(SYNADRLS);                                            0524 01673000
*                                                                  0524 01674000
*                                                                  0524 01675000
*                                                                  0524 01676000
LSYNR1   SYNADRLS                                                       01677000
*        IOCMSGOP = OFF;                                           0525 01678000
*                                                                  0525 01679000
*                                                                  0525 01680000
         L     @15,IOCSPTR                                         0525 01681000
         NI    IOCMSGOP(@15),B'01111111'                           0525 01682000
*        RETURN CODE (4);                                          0526 01683000
         LA    @15,4                                               0526 01684000
         L     @13,4(,@13)                                         0526 01685000
         L     @14,12(,@13)                                        0526 01686000
         LM    @00,@12,20(@13)                                     0526 01687000
         BR    @14                                                 0526 01688000
*        END GETNONVS;                                             0527 01689000
*                                                                  0527 01690000
*ICKIOPT:  ENTRY (GDTTBLX,PUTIOCS,PUTID);                          0528 01691000
*                                                                  0528 01692000
         B     @EC00528                                            0528 01693000
@EP00528 MVC   @PC00001(4),0(@01)                                  0528 01694000
         MVC   @PC00001+32(8),4(@01)                               0528 01695000
@EC00528 DS    0H                                                  0529 01696000
*        /************************************************************/ 01697000
*        /*                                                          */ 01698000
*        /* THIS ENTRY POINT IS CALLED WHEN A DATA RECORD IS TO BE   */ 01699000
*        /* WRITTEN.  DATA RECORDS CAN BE WRITTEN TO ANY DATA SET    */ 01700000
*        /* THAT THE I/O ADAPTER  HAS OPENED.                        */ 01701000
*        /*                                                          */ 01702000
*        /************************************************************/ 01703000
*                                                                  0529 01704000
*        /************************************************************/ 01705000
*        /*                                                          */ 01706000
*        /* DECLARES USED BY THIS ENTRY POINT ONLY.                  */ 01707000
*        /*                                                          */ 01708000
*        /************************************************************/ 01709000
*                                                                  0529 01710000
*        /* ARGUMENTS RECEIVED BY THIS ENTRY POINT                   */ 01711000
*        DCL PUTIOCS PTR (31);         /* OUTPUT DATA SET IOCS       */ 01712000
*        DCL PUTID FIXED (15);         /* TYPE IDENTIFIER            */ 01713000
*                                                                  0530 01714000
*        /* FLAGS USED BY THIS ENTRY POINT                           */ 01715000
*        DCL 1 PFLAGS CHAR (1),                                    0531 01716000
*              2 MULTPUT BIT (1),      /* MULTIPLE PUTS              */ 01717000
*              2 * BIT (7);            /* RESERVED                   */ 01718000
*                                                                  0531 01719000
*        /* RETURN CODE FROM THE PUT OPERATION                       */ 01720000
*        DCL MPUTRC FIXED (15);                                    0532 01721000
*                                                                  0532 01722000
*                                                                  0532 01723000
*        RESPECIFY (RTNREG) RSTD;                                  0533 01724000
*                                                                  0533 01725000
*                                                                  0534 01726000
*        /************************************************************/ 01727000
*        /*                                                          */ 01728000
*        /* ULISTLN MACRO INCLUDED CODE                              */ 01729000
*        /*                                                          */ 01730000
*        /*     LISTLN - TO CONTAIN THE NUMBER OF ARGUMENTS PASSED   */ 01731000
*        /*              TO THIS ROUTINE                             */ 01732000
*        /*                                                          */ 01733000
*        /*     LISTPTR - TO CONTAIN THE ADDRESS OF THE CORRESPONDING*/ 01734000
*        /*               ADDRESS LIST                               */ 01735000
*        /*                                                          */ 01736000
*        /************************************************************/ 01737000
*                                                                  0534 01738000
*        GEN;                                                      0534 01739000
        ST    1,LISTPTR                                                 01740000
        ST    1,LISTSCAN                                                01741000
*        DO LISTLN = 1 TO 255 WHILE(LISTTEST = '0'B);              0535 01742000
         LA    @14,1                                               0535 01743000
         STC   @14,LISTLN                                          0535 01744000
@DL00535 L     @07,LISTSCAN                                        0535 01745000
         TM    LISTTEST(@07),B'10000000'                           0535 01746000
         BNZ   @DC00535                                            0535 01747000
*          LISTSCAN = LISTSCAN + 4;                                0536 01748000
         AL    @07,@CF00037                                        0536 01749000
         ST    @07,LISTSCAN                                        0536 01750000
*        END;                                                      0537 01751000
*                                                                  0537 01752000
         AL    @14,@CF00158                                        0537 01753000
         STC   @14,LISTLN                                          0537 01754000
         C     @14,@CF00950                                        0537 01755000
         BNH   @DL00535                                            0537 01756000
@DC00535 DS    0H                                                  0538 01757000
*        RESPECIFY (RTNREG) UNRSTD;                                0538 01758000
*                                                                  0538 01759000
*        /************************************************************/ 01760000
*        /*                                                          */ 01761000
*        /* SET ADDRESSIBILITY TO THE GDTTBL USING A REGISTER        */ 01762000
*        /*                                                          */ 01763000
*        /************************************************************/ 01764000
*                                                                  0539 01765000
*        GDTREG = ADDR (GDTTBLX);                                  0539 01766000
*                                                                  0539 01767000
         L     GDTREG,@PC00001                                     0539 01768000
*        /************************************************************/ 01769000
*        /*                                                          */ 01770000
*        /* SET ADDRESSIBILITY TO THE OUTPUT IOCS AND INITIALIZE     */ 01771000
*        /*                                                          */ 01772000
*        /************************************************************/ 01773000
*                                                                  0540 01774000
*        IOCSPTR = PUTIOCS;                                        0540 01775000
*                                                                  0540 01776000
         L     @15,@PC00001+32                                     0540 01777000
         L     @00,PUTIOCS(,@15)                                   0540 01778000
         ST    @00,IOCSPTR                                         0540 01779000
*        OLDERID2 = NEWERID2;                                      0541 01780000
         L     @15,GDTTR2(,GDTREG)                                 0541 01781000
         MVC   @TS00001(95),NEWERID2(@15)                          0541 01782000
         MVC   OLDERID2(95,@15),@TS00001                           0541 01783000
*        NEWID2 = 'IOPT';                                          0542 01784000
         MVC   NEWID2(4,@15),@CC01039                              0542 01785000
*        MPUTRC = 0;                                               0543 01786000
*                                                                  0543 01787000
         SLR   @00,@00                                             0543 01788000
         STH   @00,MPUTRC                                          0543 01789000
*        /************************************************************/ 01790000
*        /*                                                          */ 01791000
*        /* INITIALIZE TEXT PROCESSOR ERROR MESSAGE ARG LIST         */ 01792000
*        /*                                                          */ 01793000
*        /************************************************************/ 01794000
*                                                                  0544 01795000
*        DMSGARG = ''B;                                            0544 01796000
         XC    DMSGARG(44),DMSGARG                                 0544 01797000
*        DDSTRU = ADDR (DMSGARG);                                  0545 01798000
         LA    @00,DMSGARG                                         0545 01799000
         ST    @00,DDSTRU                                          0545 01800000
*        DARGSMOD = 'IO0';                                         0546 01801000
*                                                                  0546 01802000
         LR    @15,@00                                             0546 01803000
         MVC   DARGSMOD(3,@15),@CC00988                            0546 01804000
*        IF LISTLN < 2 | LISTLN > 3                                0547 01805000
*          THEN                                                    0547 01806000
*                                                                  0547 01807000
         CLI   LISTLN,2                                            0547 01808000
         BL    @RT00547                                            0547 01809000
         CLI   LISTLN,3                                            0547 01810000
         BNH   @RF00547                                            0547 01811000
@RT00547 DS    0H                                                  0548 01812000
*            /********************************************************/ 01813000
*            /*                                                      */ 01814000
*            /* INVALID LENGTH ARGUMENT - TERMINATE PROCESSING.      */ 01815000
*            /*                                                      */ 01816000
*            /********************************************************/ 01817000
*                                                                  0548 01818000
*                                                                  0548 01819000
*              DO;                                                 0548 01820000
*                RESPECIFY(REG13,REG14,REG15) RSTD;                0549 01821000
*                REG15 = 40;                                       0550 01822000
         LA    REG15,40                                            0550 01823000
*                REG14 = GDTABT;                                   0551 01824000
         L     REG14,GDTABT(,GDTREG)                               0551 01825000
*                REG13 = GDTABH;                                   0552 01826000
         L     REG13,GDTABH(,GDTREG)                               0552 01827000
*                GEN(BR    REG14);                                 0553 01828000
         BR    REG14                                                    01829000
*                RESPECIFY(REG13,REG14,REG15)UNRSTD;               0554 01830000
*              END;                                                0555 01831000
*                                                                  0555 01832000
*          ELSE                                                    0556 01833000
*                                                                  0556 01834000
*            /********************************************************/ 01835000
*            /*                                                      */ 01836000
*            /* VALID ARGUMENT LIST RECEIVED.  WRITE THE RECORD.     */ 01837000
*            /*                                                      */ 01838000
*            /********************************************************/ 01839000
*                                                                  0556 01840000
*VALPTARG:   DO;                                                   0556 01841000
*                                                                  0556 01842000
         B     @RC00547                                            0556 01843000
@RF00547 DS    0H                                                  0556 01844000
VALPTARG DS    0H                                                  0557 01845000
*              /******************************************************/ 01846000
*              /*                                                    */ 01847000
*              /* IF DATA SET NOT OPEN TERMINATE PROCESSING          */ 01848000
*              /*                                                    */ 01849000
*              /******************************************************/ 01850000
*                                                                  0557 01851000
*              IF IOCSPTR = NULLPTR | IOCMSGOP = OFF               0557 01852000
*                THEN                                              0557 01853000
*                                                                  0557 01854000
*                                                                  0557 01855000
         L     @15,IOCSPTR                                         0557 01856000
         LTR   @15,@15                                             0557 01857000
         BZ    @RT00557                                            0557 01858000
         TM    IOCMSGOP(@15),B'10000000'                           0557 01859000
         BNZ   @RF00557                                            0557 01860000
@RT00557 DS    0H                                                  0558 01861000
*                    DO;                                           0558 01862000
*                      RESPECIFY(REG13,REG14,REG15) RSTD;          0559 01863000
*                      REG15 = 32;                                 0560 01864000
         LA    REG15,32                                            0560 01865000
*                      REG14 = GDTABT;                             0561 01866000
         L     REG14,GDTABT(,GDTREG)                               0561 01867000
*                      REG13 = GDTABH;                             0562 01868000
         L     REG13,GDTABH(,GDTREG)                               0562 01869000
*                      GEN(BR    REG14);                           0563 01870000
         BR    REG14                                                    01871000
*                      RESPECIFY(REG13,REG14,REG15)UNRSTD;         0564 01872000
*                    END;                                          0565 01873000
*                                                                  0565 01874000
*              /******************************************************/ 01875000
*              /*                                                    */ 01876000
*              /* IF MULTIPLE PUTS ARE SPECIFIED SET FLAG.  IF       */ 01877000
*              /* SINGLE RECORD TO PUT SET NUMBER OF PUTS IN IOCSTR  */ 01878000
*              /* TO 1.                                              */ 01879000
*              /*                                                    */ 01880000
*              /******************************************************/ 01881000
*                                                                  0566 01882000
*              MULTPUT = OFF;                                      0566 01883000
*                                                                  0566 01884000
@RF00557 NI    MULTPUT,B'01111111'                                 0566 01885000
*              IF IOCPNM ^= 0                                      0567 01886000
*                THEN                                              0567 01887000
         L     @15,IOCSPTR                                         0567 01888000
         LH    @00,IOCPNM(,@15)                                    0567 01889000
         LTR   @00,@00                                             0567 01890000
         BZ    @RF00567                                            0567 01891000
*                  MULTPUT = ON;                                   0568 01892000
         OI    MULTPUT,B'10000000'                                 0568 01893000
*                ELSE                                              0569 01894000
*                  IOCPNM = 1;                                     0569 01895000
*                                                                  0569 01896000
         B     @RC00567                                            0569 01897000
@RF00567 L     @15,IOCSPTR                                         0569 01898000
         MVC   IOCPNM(2,@15),@CH00158                              0569 01899000
*              /******************************************************/ 01900000
*              /*                                                    */ 01901000
*              /* EXECUTE DO LOOP UNTIL ARE RECORDS SPECIFIED HAVE   */ 01902000
*              /* BEEN WRITTEN.                                      */ 01903000
*              /*                                                    */ 01904000
*              /******************************************************/ 01905000
*                                                                  0570 01906000
*CKMULT:       DO WHILE IOCPNM ^= 0;                               0570 01907000
*                                                                  0570 01908000
@RC00567 DS    0H                                                  0570 01909000
CKMULT   B     @DE00570                                            0570 01910000
@DL00570 DS    0H                                                  0571 01911000
*              /******************************************************/ 01912000
*              /*                                                    */ 01913000
*              /* FOR A MULTIPLE PUT THE LENGTH IS CONTAINED IN THE  */ 01914000
*              /* FIRST TWO BYTES OF THE DATA RECORD                 */ 01915000
*              /*                                                    */ 01916000
*              /******************************************************/ 01917000
*                                                                  0571 01918000
*              IF MULTPUT = ON                                     0571 01919000
*                THEN                                              0571 01920000
         TM    MULTPUT,B'10000000'                                 0571 01921000
         BNO   @RF00571                                            0571 01922000
*                  DO;                                             0572 01923000
*                    LENCHR (1:2) = DATAIOC (1:2);                 0573 01924000
         L     @15,IOCSPTR                                         0573 01925000
         L     @14,IOCDAD(,@15)                                    0573 01926000
         MVC   LENCHR(2),DATAIOC(@14)                              0573 01927000
*                    IOCDLN = LENHFIX;                             0574 01928000
         LH    @00,LENHFIX                                         0574 01929000
         ST    @00,IOCDLN(,@15)                                    0574 01930000
*                    IOCDAD = IOCDAD + 2;                          0575 01931000
         AL    @14,@CF00109                                        0575 01932000
         ST    @14,IOCDAD(,@15)                                    0575 01933000
*                  END;                                            0576 01934000
*                                                                  0576 01935000
*              IF IOCFLGEX = ON                                    0577 01936000
*                THEN                                              0577 01937000
*                                                                  0577 01938000
@RF00571 L     @15,IOCSPTR                                         0577 01939000
         L     @15,IOCEXT(,@15)                                    0577 01940000
         TM    IOCFLGEX(@15),B'10000000'                           0577 01941000
         BNO   @RF00577                                            0577 01942000
*                  /**************************************************/ 01943000
*                  /*                                                */ 01944000
*                  /* IF DATA SET IS EXTERNALLY CONTROLLED CALL      */ 01945000
*                  /* EXTERNAL PUT ROUTINE.                          */ 01946000
*                  /*                                                */ 01947000
*                  /**************************************************/ 01948000
*                                                                  0578 01949000
*EXTWRITE:         DO;                                             0578 01950000
*                                                                  0578 01951000
EXTWRITE DS    0H                                                  0579 01952000
*                    /************************************************/ 01953000
*                    /*                                              */ 01954000
*                    /* IF THREE ARGUMENTS RECEIVED A TYPE ID WAS    */ 01955000
*                    /* SPECIFIED.                                   */ 01956000
*                    /*                                              */ 01957000
*                    /************************************************/ 01958000
*                                                                  0579 01959000
*                    EXTFLGFD = 0;                                 0579 01960000
         SLR   @00,@00                                             0579 01961000
         ST    @00,EXTFLGFD                                        0579 01962000
*                    EXTTYPE = EXPUTREQ;                           0580 01963000
*                                                                  0580 01964000
         MVI   EXTTYPE,X'0C'                                       0580 01965000
*                    IF LISTLN = 3                                 0581 01966000
*                      THEN                                        0581 01967000
         CLI   LISTLN,3                                            0581 01968000
         BNE   @RF00581                                            0581 01969000
*                        EXTPUTID = PUTID;                         0582 01970000
         L     @15,@PC00001+36                                     0582 01971000
         LH    @00,PUTID(,@15)                                     0582 01972000
         STH   @00,EXTPUTID                                        0582 01973000
*                      ELSE                                        0583 01974000
*                        EXTPUTID = PUTD;                          0583 01975000
*                                                                  0583 01976000
         B     @RC00581                                            0583 01977000
@RF00581 SLR   @00,@00                                             0583 01978000
         STH   @00,EXTPUTID                                        0583 01979000
*                    /************************************************/ 01980000
*                    /*                                              */ 01981000
*                    /* CALL ROUTINE THAT WILL CALL EXTERNAL PUT     */ 01982000
*                    /* ROUTINE.                                     */ 01983000
*                    /*                                              */ 01984000
*                    /************************************************/ 01985000
*                                                                  0584 01986000
*                    CALL PUTEXT (EXTFLGFD);                       0584 01987000
*                                                                  0584 01988000
@RC00581 LA    @00,EXTFLGFD                                        0584 01989000
         ST    @00,@AL00001                                        0584 01990000
         LA    @01,@AL00001                                        0584 01991000
         BAL   @14,PUTEXT                                          0584 01992000
*                    /************************************************/ 01993000
*                    /*                                              */ 01994000
*                    /* SAVE THE RETURN CODE FROM EXTERNAL ROUTINE   */ 01995000
*                    /*                                              */ 01996000
*                    /************************************************/ 01997000
*                                                                  0585 01998000
*                    RESPECIFY RTNREG RSTD;                        0585 01999000
*                    TESTRC = RTNREG;                              0586 02000000
         STH   RTNREG,TESTRC                                       0586 02001000
*                    RESPECIFY RTNREG UNRSTD;                      0587 02002000
*                                                                  0587 02003000
*                  END EXTWRITE;                                   0588 02004000
*                                                                  0588 02005000
*                ELSE                                              0589 02006000
*                                                                  0589 02007000
*                  /**************************************************/ 02008000
*                  /*                                                */ 02009000
*                  /* THE DATA SETS IS NOT EXTERNALLY CONTROLLED     */ 02010000
*                  /*                                                */ 02011000
*                  /**************************************************/ 02012000
*                                                                  0589 02013000
*NOEXTPUT:         DO;                                             0589 02014000
*                                                                  0589 02015000
*                                                                  0589 02016000
         B     @RC00577                                            0589 02017000
@RF00577 DS    0H                                                  0589 02018000
NOEXTPUT DS    0H                                                  0590 02019000
*                    /************************************************/ 02020000
*                    /*                                              */ 02021000
*                    /*     WRITE THE RECORD AND SAVE THE HIGHEST    */ 02022000
*                    /*     CODE SET.                                */ 02023000
*                    /*                                              */ 02024000
*                    /************************************************/ 02025000
*                                                                  0590 02026000
*                    CALL PUTNONVS;                                0590 02027000
*                                                                  0590 02028000
*                                                                  0590 02029000
         BAL   @14,PUTNONVS                                        0590 02030000
*                    RESPECIFY RTNREG RSTD;                        0591 02031000
*                    TESTRC = RTNREG;                              0592 02032000
         STH   RTNREG,TESTRC                                       0592 02033000
*                    RESPECIFY RTNREG UNRSTD;                      0593 02034000
*                                                                  0593 02035000
*                  END NOEXTPUT;                                   0594 02036000
*                                                                  0594 02037000
*              IOCPNM = IOCPNM - 1;                                0595 02038000
@RC00577 L     @15,IOCSPTR                                         0595 02039000
         LH    @00,IOCPNM(,@15)                                    0595 02040000
         BCTR  @00,0                                               0595 02041000
         STH   @00,IOCPNM(,@15)                                    0595 02042000
*              IF IOCPNM > 0                                       0596 02043000
*                THEN                                              0596 02044000
         LTR   @00,@00                                             0596 02045000
         BNP   @RF00596                                            0596 02046000
*                  IOCDAD = IOCDAD + IOCDLN;                       0597 02047000
*                                                                  0597 02048000
         L     @00,IOCDAD(,@15)                                    0597 02049000
         AL    @00,IOCDLN(,@15)                                    0597 02050000
         ST    @00,IOCDAD(,@15)                                    0597 02051000
*              /******************************************************/ 02052000
*              /*                                                    */ 02053000
*              /* IF ERROR RETURN CODE SET ERROR CODE FOR THE USER.  */ 02054000
*              /* IF PUTS MUST STOP TO NUMBER TO PUT TO ZERO.        */ 02055000
*              /*                                                    */ 02056000
*              /******************************************************/ 02057000
*                                                                  0598 02058000
*              IF TESTRC ^= 0                                      0598 02059000
*                THEN                                              0598 02060000
@RF00596 SLR   @15,@15                                             0598 02061000
         CH    @15,TESTRC                                          0598 02062000
         BE    @RF00598                                            0598 02063000
*                  DO;                                             0599 02064000
*                    MPUTRC = 4;                                   0600 02065000
         MVC   MPUTRC(2),@CH00037                                  0600 02066000
*                    IF IOCMSGOP = OFF                             0601 02067000
*                      THEN                                        0601 02068000
         L     @14,IOCSPTR                                         0601 02069000
         TM    IOCMSGOP(@14),B'10000000'                           0601 02070000
         BNZ   @RF00601                                            0601 02071000
*                        IOCPNM = 0;                               0602 02072000
         STH   @15,IOCPNM(,@14)                                    0602 02073000
*                  END;                                            0603 02074000
*                                                                  0603 02075000
@RF00601 DS    0H                                                  0604 02076000
*              /******************************************************/ 02077000
*              /*                                                    */ 02078000
*              /* PRINT ANY ERROR MESSAGES.                          */ 02079000
*              /*                                                    */ 02080000
*              /******************************************************/ 02081000
*                                                                  0604 02082000
*              IF DARGSENT ^= 0                                    0604 02083000
*                THEN                                              0604 02084000
@RF00598 L     @15,DDSTRU                                          0604 02085000
         CLI   DARGSENT(@15),0                                     0604 02086000
         BE    @RF00604                                            0604 02087000
*                  CALL BLDDMSG;                                   0605 02088000
*                                                                  0605 02089000
         BAL   @14,BLDDMSG                                         0605 02090000
*              END CKMULT;                                         0606 02091000
*                                                                  0606 02092000
@RF00604 DS    0H                                                  0606 02093000
@DE00570 L     @15,IOCSPTR                                         0606 02094000
         LH    @00,IOCPNM(,@15)                                    0606 02095000
         LTR   @00,@00                                             0606 02096000
         BNZ   @DL00570                                            0606 02097000
*            END VALPTARG;                                         0607 02098000
*                                                                  0607 02099000
*        CALL ICKSAEP0(GDTTBL,MODID,MPUTRC);                       0608 02100000
@RC00547 ST    GDTREG,@AL00001                                     0608 02101000
         LA    @00,MODID                                           0608 02102000
         ST    @00,@AL00001+4                                      0608 02103000
         LA    @00,MPUTRC                                          0608 02104000
         ST    @00,@AL00001+8                                      0608 02105000
         MVI   @AL00001+8,X'80'                                    0608 02106000
         L     @15,GDTEPL(,GDTREG)                                 0608 02107000
         LA    @01,@AL00001                                        0608 02108000
         BALR  @14,@15                                             0608 02109000
*                                                                  0609 02110000
*        /************************************************************/ 02111000
*        /*                                                          */ 02112000
*        /* PROCEDURE NAME - PUTEXT                                  */ 02113000
*        /*                                                          */ 02114000
*        /* FUNCTION - THIS PROCEDURE IS CALLED WHEN THE OUTPUT DATA */ 02115000
*        /*            SET IS EXTERNALLY CONTROLLED.  THE DATA       */ 02116000
*        /*            INFORMATION IS PASSED TO THE PUT ROUTINE      */ 02117000
*        /*            AND THE RETURN CODE FROM THE ROUTINE IS USED  */ 02118000
*        /*            TO SET THE ADAPTER RETURN CODE.               */ 02119000
*        /*                                                          */ 02120000
*        /* INPUT -    IOCSPTR - EXTERNAL DATA SET INFORMATION AND   */ 02121000
*        /*                      DATA RECORD INFORMATION.            */ 02122000
*        /*                                                          */ 02123000
*        /* OUTPUT -   TESTRC - RETURN CODE SET FOR ADAPTER.         */ 02124000
*        /*                                                          */ 02125000
*        /* ERRORS -   IF THE RETURN CODE FROM THE EXTERNAL ROUTINE  */ 02126000
*        /*            IMPLIES AN ERROR A FAILING RETURN CODE IS SET */ 02127000
*        /*            BUT NO ERROR MESSAGE IS WRITTEN.              */ 02128000
*        /*                                                          */ 02129000
*        /************************************************************/ 02130000
*                                                                  0609 02131000
*PUTEXT: PROC (OTFLGFLD) OPTIONS (SAVEAREA);                       0609 02132000
*                                                                  0609 02133000
         B     @PB00004                                            0609 02134000
PUTEXT   STM   @14,@12,12(@13)                                     0609 02135000
         ST    @13,@SA00004+4                                      0609 02136000
         LA    @14,@SA00004                                        0609 02137000
         ST    @14,8(,@13)                                         0609 02138000
         LR    @13,@14                                             0609 02139000
         MVC   @PC00004(4),0(@01)                                  0609 02140000
*        /************************************************************/ 02141000
*        /*                                                          */ 02142000
*        /* DECLARES USED ONLY BY THIS PROCEDURE.                    */ 02143000
*        /*                                                          */ 02144000
*        /************************************************************/ 02145000
*                                                                  0610 02146000
*        /* EXTERNAL OUTPUT FLAG FIELD                               */ 02147000
*        DCL OTFLGFLD FIXED (31);                                  0610 02148000
*                                                                  0610 02149000
*        /* RETURN CODE FROM THIS PROCEDURE                          */ 02150000
*        DCL EXTPUTRC FIXED (15);                                  0611 02151000
*                                                                  0611 02152000
*                                                                  0611 02153000
*        /************************************************************/ 02154000
*        /*                                                          */ 02155000
*        /* CALL EXTERNAL PUT ROUTINE AND SAVE RETURN CODE.          */ 02156000
*        /*                                                          */ 02157000
*        /************************************************************/ 02158000
*                                                                  0612 02159000
*        OLDERID2 = NEWERID2;                                      0612 02160000
         L     @15,GDTTR2(,GDTREG)                                 0612 02161000
         MVC   @TS00001(95),NEWERID2(@15)                          0612 02162000
         MVC   OLDERID2(95,@15),@TS00001                           0612 02163000
*        NEWID2 = 'IOEP';                                          0613 02164000
*                                                                  0613 02165000
         MVC   NEWID2(4,@15),@CC01056                              0613 02166000
*        EXTDAD = IOCDAD;                                          0614 02167000
         L     @15,IOCSPTR                                         0614 02168000
         L     @00,IOCDAD(,@15)                                    0614 02169000
         ST    @00,EXTDAD                                          0614 02170000
*        EXTDLN = IOCDLN;                                          0615 02171000
*                                                                  0615 02172000
         L     @00,IOCDLN(,@15)                                    0615 02173000
         ST    @00,EXTDLN                                          0615 02174000
*        CALL EXTRTN (IOEXPARM,OTFLGFLD,EXTIOCS);                  0616 02175000
         L     @15,IOCEXT(,@15)                                    0616 02176000
         L     @14,IOCXPM(,@15)                                    0616 02177000
         ST    @14,@AL00001                                        0616 02178000
         L     @00,@PC00004                                        0616 02179000
         LR    @14,@00                                             0616 02180000
         ST    @14,@AL00001+4                                      0616 02181000
         LA    @00,EXTIOCS                                         0616 02182000
         ST    @00,@AL00001+8                                      0616 02183000
         MVI   @AL00001+8,X'80'                                    0616 02184000
         L     @15,IOCXAD(,@15)                                    0616 02185000
         LA    @01,@AL00001                                        0616 02186000
         BALR  @14,@15                                             0616 02187000
*        RESPECIFY RTNREG RSTD;                                    0617 02188000
*        TESTRC = RTNREG;                                          0618 02189000
         STH   RTNREG,TESTRC                                       0618 02190000
*        RESPECIFY RTNREG UNRSTD;                                  0619 02191000
*                                                                  0619 02192000
*                                                                  0619 02193000
*        /************************************************************/ 02194000
*        /*                                                          */ 02195000
*        /* IF SUCCESSFUL RETURN CODE FROM EXTERNAL ROUTINE SET      */ 02196000
*        /* SUCCESSFUL ADAPTER RETURN CODE, OTHERWISE SET FAIL RC.   */ 02197000
*        /*                                                          */ 02198000
*        /************************************************************/ 02199000
*                                                                  0620 02200000
*        IF TESTRC = EXTOK                                         0620 02201000
*          THEN                                                    0620 02202000
         LH    @15,TESTRC                                          0620 02203000
         SLR   @14,@14                                             0620 02204000
         CR    @15,@14                                             0620 02205000
         BNE   @RF00620                                            0620 02206000
*            DO;                                                   0621 02207000
*              IOCRRN = IOCRRN + 1;                                0622 02208000
         L     @15,IOCSPTR                                         0622 02209000
         LA    @00,1                                               0622 02210000
         AL    @00,IOCRRN(,@15)                                    0622 02211000
         ST    @00,IOCRRN(,@15)                                    0622 02212000
*              EXTPUTRC = 0;                                       0623 02213000
         STH   @14,EXTPUTRC                                        0623 02214000
*            END;                                                  0624 02215000
*          ELSE                                                    0625 02216000
*            DO;                                                   0625 02217000
         B     @RC00620                                            0625 02218000
@RF00620 DS    0H                                                  0626 02219000
*              EXTPUTRC = 4;                                       0626 02220000
         MVC   EXTPUTRC(2),@CH00037                                0626 02221000
*              IF TESTRC = EXTTERM                                 0627 02222000
*                THEN                                              0627 02223000
         CLC   TESTRC(2),@CH00034                                  0627 02224000
         BNE   @RF00627                                            0627 02225000
*                  IOCMSGOP = OFF;                                 0628 02226000
         L     @15,IOCSPTR                                         0628 02227000
         NI    IOCMSGOP(@15),B'01111111'                           0628 02228000
*            END;                                                  0629 02229000
*                                                                  0629 02230000
@RF00627 DS    0H                                                  0630 02231000
*        IF GDTDBG = NULLPTR                                       0630 02232000
*          THEN;                                                   0630 02233000
@RC00620 L     @00,GDTDBG(,GDTREG)                                 0630 02234000
         LTR   @00,@00                                             0630 02235000
         BZ    @RT00630                                            0630 02236000
*          ELSE                                                    0632 02237000
*            CALL ICKDB010 (GDTTBL,'IOEP');                        0632 02238000
*                                                                  0632 02239000
         ST    GDTREG,@AL00001                                     0632 02240000
         LA    @00,@CC01056                                        0632 02241000
         ST    @00,@AL00001+4                                      0632 02242000
         MVI   @AL00001+4,X'80'                                    0632 02243000
         L     @15,GDTDBG(,GDTREG)                                 0632 02244000
         LA    @01,@AL00001                                        0632 02245000
         BALR  @14,@15                                             0632 02246000
*        /************************************************************/ 02247000
*        /*                                                          */ 02248000
*        /* RETURN TO CALLING I/O ADAPTER ROUTINE WIRETURN CODE      */ 02249000
*        /*                                                          */ 02250000
*        /************************************************************/ 02251000
*                                                                  0633 02252000
*        RETURN CODE (EXTPUTRC);                                   0633 02253000
*                                                                  0633 02254000
@RT00630 LH    @15,EXTPUTRC                                        0633 02255000
         L     @13,4(,@13)                                         0633 02256000
         L     @14,12(,@13)                                        0633 02257000
         LM    @00,@12,20(@13)                                     0633 02258000
         BR    @14                                                 0633 02259000
*        END PUTEXT;                                               0634 02260000
*                                                                  0635 02261000
*                                                                  0635 02262000
*                                                                  0635 02263000
*        /************************************************************/ 02264000
*        /*                                                          */ 02265000
*        /* PROCEDURE NAME - PUTNONVS                                */ 02266000
*        /*                                                          */ 02267000
*        /* FUNCTION - THIS PROCEDURE IS EXECUTED TO PUT A           */ 02268000
*        /*            LOGICAL RECORD TO A  DATA SET.                */ 02269000
*        /*                                                          */ 02270000
*        /* INPUT -    IOCSPTR CONTAINS ADDRESSIBILITY TO THE OUTPUT */ 02271000
*        /*            IOCS.                                         */ 02272000
*        /*                                                          */ 02273000
*        /* OUTPUT -   THE RECORD SPECIFIED BY THE OUTPUT IOCS       */ 02274000
*        /*            IS PUT TO THE OUTPUT DATA SET.                */ 02275000
*        /*                                                          */ 02276000
*        /************************************************************/ 02277000
*                                                                  0635 02278000
*PUTNONVS: PROC OPTIONS (SAVEAREA);                                0635 02279000
*                                                                  0635 02280000
PUTNONVS STM   @14,@12,12(@13)                                     0635 02281000
         ST    @13,@SA00005+4                                      0635 02282000
         LA    @14,@SA00005                                        0635 02283000
         ST    @14,8(,@13)                                         0635 02284000
         LR    @13,@14                                             0635 02285000
*        /* RETURN CODE FROM THIS PROCEDURE                          */ 02286000
*        DCL PUTRC FIXED (15);                                     0636 02287000
*                                                                  0636 02288000
*        /* AREA TO BE SET TO BLANKS IF SYSOUT F BUFFER MOVE         */ 02289000
*        DCL BLNKBUFF CHAR (120) BASED (TOADDR);                   0637 02290000
*                                                                  0637 02291000
*        /* USED AS WORKAREA TO SET BUFFER TO BLANKS                 */ 02292000
*        DCL BLNKAREA CHAR (256);                                  0638 02293000
*                                                                  0638 02294000
*        /************************************************************/ 02295000
*        /*                                                          */ 02296000
*        /* INITIALIZE RETURN CODE AND SET ADDRESSIBILITY TO THE DCB */ 02297000
*        /*                                                          */ 02298000
*        /************************************************************/ 02299000
*                                                                  0639 02300000
*        OLDERID2 = NEWERID2;                                      0639 02301000
         L     @15,GDTTR2(,GDTREG)                                 0639 02302000
         MVC   @TS00001(95),NEWERID2(@15)                          0639 02303000
         MVC   OLDERID2(95,@15),@TS00001                           0639 02304000
*        NEWID2 = 'IOOW';                                          0640 02305000
         MVC   NEWID2(4,@15),@CC01064                              0640 02306000
*        PUTRC = 0;                                                0641 02307000
         SLR   @00,@00                                             0641 02308000
         STH   @00,PUTRC                                           0641 02309000
*        DCBPTR = IOCCBA;                                          0642 02310000
*                                                                  0642 02311000
*                                                                  0642 02312000
         L     @15,IOCSPTR                                         0642 02313000
         L     @14,IOCEXT(,@15)                                    0642 02314000
         L     @00,IOCCBA(,@14)                                    0642 02315000
         ST    @00,DCBPTR                                          0642 02316000
*        /************************************************************/ 02317000
*        /*                                                          */ 02318000
*        /* IF THE DATA SET IS OPENED FOR BLOCK PROCESSING           */ 02319000
*        /* THE WRITE MACRO WILL BE ISSUED.                          */ 02320000
*        /*                                                          */ 02321000
*        /************************************************************/ 02322000
*                                                                  0643 02323000
*        IF IOCMACBK = ON                                          0643 02324000
*          THEN                                                    0643 02325000
         TM    IOCMACBK(@15),B'00010000'                           0643 02326000
         BNO   @RF00643                                            0643 02327000
*BSAMPUT:    DO;                                                   0644 02328000
*                                                                  0644 02329000
BSAMPUT  DS    0H                                                  0645 02330000
*              /******************************************************/ 02331000
*              /*                                                    */ 02332000
*              /* IF BLOCK IS TO LONG, SET ERROR AND RETURN          */ 02333000
*              /* TO THE CALLER.                                     */ 02334000
*              /*                                                    */ 02335000
*              /******************************************************/ 02336000
*                                                                  0645 02337000
*              IF IOCDLN - IOCKYL > IOCTRN                         0645 02338000
*                THEN                                              0645 02339000
         L     @15,IOCSPTR                                         0645 02340000
         L     @00,IOCDLN(,@15)                                    0645 02341000
         SLR   @14,@14                                             0645 02342000
         IC    @14,IOCKYL(,@15)                                    0645 02343000
         SLR   @00,@14                                             0645 02344000
         C     @00,IOCTRN(,@15)                                    0645 02345000
         BNH   @RF00645                                            0645 02346000
*                  DO;                                             0646 02347000
*                    DARGSENT = IVLGSTID;                          0647 02348000
         L     @14,DDSTRU                                          0647 02349000
         MVI   DARGSENT(@14),X'0C'                                 0647 02350000
*                    DARGDBP = IOCDAD;                             0648 02351000
         L     @00,IOCDAD(,@15)                                    0648 02352000
         ST    @00,DARGDBP(,@14)                                   0648 02353000
*                    DARGILP = 5;                                  0649 02354000
         MVC   DARGILP(2,@14),@CH00247                             0649 02355000
*                    RETURN CODE (4);                              0650 02356000
         LA    @15,4                                               0650 02357000
         L     @13,4(,@13)                                         0650 02358000
         L     @14,12(,@13)                                        0650 02359000
         LM    @00,@12,20(@13)                                     0650 02360000
         BR    @14                                                 0650 02361000
*                  END;                                            0651 02362000
*                                                                  0651 02363000
*              /******************************************************/ 02364000
*              /*                                                    */ 02365000
*              /* MOVE THE WRITE PARAMETER LIST TO                   */ 02366000
*              /* AUTOMATIC STORAGE.                                 */ 02367000
*              /*                                                    */ 02368000
*              /******************************************************/ 02369000
*                                                                  0652 02370000
*              IF IOCMACUP = ON                                    0652 02371000
*                THEN                                              0652 02372000
*                                                                  0652 02373000
@RF00645 L     @15,IOCSPTR                                         0652 02374000
         TM    IOCMACUP(@15),B'00100000'                           0652 02375000
         BNO   @RF00652                                            0652 02376000
*                  /**************************************************/ 02377000
*                  /*                                                */ 02378000
*                  /* FOR UPDATE PROCESSING, THE DECB WHICH          */ 02379000
*                  /* WAS USED TO DO THE READ MUST BE USED           */ 02380000
*                  /* TO DO THE WRITE                                */ 02381000
*                  /*                                                */ 02382000
*                  /**************************************************/ 02383000
*                                                                  0653 02384000
*                  DECBADDR = IOCDEC;                              0653 02385000
*                                                                  0653 02386000
         L     @15,IOCEXT(,@15)                                    0653 02387000
         L     @00,IOCDEC(,@15)                                    0653 02388000
         ST    @00,DECBADDR                                        0653 02389000
*                ELSE                                              0654 02390000
*                  DO;                                             0654 02391000
*                                                                  0654 02392000
         B     @RC00652                                            0654 02393000
@RF00652 DS    0H                                                  0655 02394000
*                  IF IOCRFMUN = ON                                0655 02395000
*                    THEN                                          0655 02396000
         L     @15,IOCSPTR                                         0655 02397000
         TM    IOCRFMUN(@15),B'00100000'                           0655 02398000
         BNO   @RF00655                                            0655 02399000
*                      DECBADDR = ADDR (WRITEU);                   0656 02400000
         LA    @00,WRITEU                                          0656 02401000
         ST    @00,DECBADDR                                        0656 02402000
*                    ELSE                                          0657 02403000
*                      DECBADDR = ADDR (WRITEFV);                  0657 02404000
*                                                                  0657 02405000
         B     @RC00655                                            0657 02406000
@RF00655 LA    @00,WRITEFV                                         0657 02407000
         ST    @00,DECBADDR                                        0657 02408000
*                  END;                                            0658 02409000
*                                                                  0658 02410000
@RC00655 DS    0H                                                  0659 02411000
*              MACAREA (1:24) = IODECB (1:24);                     0659 02412000
*                                                                  0659 02413000
@RC00652 L     @15,DECBADDR                                        0659 02414000
         MVC   MACAREA(24),IODECB(@15)                             0659 02415000
*              /******************************************************/ 02416000
*              /*                                                    */ 02417000
*              /* SET LENGTH OF BLOCK IN DCB (EXCLUDING              */ 02418000
*              /* KEY).                                              */ 02419000
*              /* SET ADDRESSES OF REQUIRED PARAMETERS IN            */ 02420000
*              /* REGISTERS AND ISSUE THE WRITE MACRO,               */ 02421000
*              /* USING THE EXECUTE FORM.                            */ 02422000
*              /*                                                    */ 02423000
*              /******************************************************/ 02424000
*                                                                  0660 02425000
*              DCBBLKSI = IOCDLN - IOCKYL;                         0660 02426000
*                                                                  0660 02427000
         L     @15,DCBPTR                                          0660 02428000
         L     @14,IOCSPTR                                         0660 02429000
         L     @00,IOCDLN(,@14)                                    0660 02430000
         SLR   @07,@07                                             0660 02431000
         IC    @07,IOCKYL(,@14)                                    0660 02432000
         SLR   @00,@07                                             0660 02433000
         STH   @00,DCBBLKSI+52(,@15)                               0660 02434000
*              RFY (REG5) RSTD;                                    0661 02435000
*              RFY (REG6) RSTD;                                    0662 02436000
*              RFY (REG7) RSTD;                                    0663 02437000
*                                                                  0663 02438000
*              REG7 = DCBPTR;                                      0664 02439000
         LR    REG7,@15                                            0664 02440000
*              REG6 = IOCDAD;                                      0665 02441000
         L     REG6,IOCDAD(,@14)                                   0665 02442000
*              REG5 = ADDR (MACAREA);                              0666 02443000
*                                                                  0666 02444000
         LA    REG5,MACAREA                                        0666 02445000
*LWRITE1:      GEN(WRITE (REG5),SF,(REG7),(REG6),MF=E);            0667 02446000
LWRITE1  WRITE (REG5),SF,(REG7),(REG6),MF=E                             02447000
*LCHECK2:      GEN(CHECK (REG5));                                  0668 02448000
*                                                                  0668 02449000
LCHECK2  CHECK (REG5)                                                   02450000
*              RFY (REG5) UNRSTD;                                  0669 02451000
*              RFY (REG6) UNRSTD;                                  0670 02452000
*              RFY (REG7) UNRSTD;                                  0671 02453000
*                                                                  0671 02454000
*              /******************************************************/ 02455000
*              /*                                                    */ 02456000
*              /* IF AN ERROR WAS DETECTED BY AN EXIT                */ 02457000
*              /* ROUTINE, MESSAGE DATA WILL BE SET.                 */ 02458000
*              /*                                                    */ 02459000
*              /******************************************************/ 02460000
*                                                                  0672 02461000
*              IF DARGSENT ^= 0                                    0672 02462000
*                THEN                                              0672 02463000
         L     @15,DDSTRU                                          0672 02464000
         CLI   DARGSENT(@15),0                                     0672 02465000
         BE    @RF00672                                            0672 02466000
*                  PUTRC = 4;                                      0673 02467000
         MVC   PUTRC(2),@CH00037                                   0673 02468000
*                ELSE                                              0674 02469000
*                  IOCRRN = IOCRRN + 1;                            0674 02470000
*                                                                  0674 02471000
         B     @RC00672                                            0674 02472000
@RF00672 L     @15,IOCSPTR                                         0674 02473000
         LA    @00,1                                               0674 02474000
         AL    @00,IOCRRN(,@15)                                    0674 02475000
         ST    @00,IOCRRN(,@15)                                    0674 02476000
*              RETURN CODE (PUTRC);                                0675 02477000
*                                                                  0675 02478000
@RC00672 LH    @15,PUTRC                                           0675 02479000
         L     @13,4(,@13)                                         0675 02480000
         L     @14,12(,@13)                                        0675 02481000
         LM    @00,@12,20(@13)                                     0675 02482000
         BR    @14                                                 0675 02483000
*            END BSAMPUT;                                          0676 02484000
*                                                                  0676 02485000
*                                                                  0676 02486000
*        /************************************************************/ 02487000
*        /*                                                          */ 02488000
*        /* RECORD WILL BE WRITTEN USING QSAM LOCATE MODE            */ 02489000
*        /*                                                          */ 02490000
*        /************************************************************/ 02491000
*                                                                  0677 02492000
*        IF IOCFLGSP = ON                                          0677 02493000
*          THEN                                                    0677 02494000
*                                                                  0677 02495000
@RF00643 L     @15,IOCSPTR                                         0677 02496000
         L     @14,IOCEXT(,@15)                                    0677 02497000
         TM    IOCFLGSP(@14),B'00000010'                           0677 02498000
         BNO   @RF00677                                            0677 02499000
*            /********************************************************/ 02500000
*            /*                                                      */ 02501000
*            /* DATA SET IS SYSPRINT.  IF A RECORD IS TO LONG        */ 02502000
*            /* IT IS TRUNCATED.                                     */ 02503000
*            /*                                                      */ 02504000
*            /********************************************************/ 02505000
*                                                                  0678 02506000
*            DO;                                                   0678 02507000
*              IF IOCDLN > IOCTRN                                  0679 02508000
*                THEN                                              0679 02509000
         L     @14,IOCTRN(,@15)                                    0679 02510000
         C     @14,IOCDLN(,@15)                                    0679 02511000
         BNL   @RF00679                                            0679 02512000
*                  IOCDLN = IOCTRN;                                0680 02513000
         ST    @14,IOCDLN(,@15)                                    0680 02514000
*            END;                                                  0681 02515000
*                                                                  0681 02516000
*          ELSE                                                    0682 02517000
*            DO;                                                   0682 02518000
*                                                                  0682 02519000
         B     @RC00677                                            0682 02520000
@RF00677 DS    0H                                                  0683 02521000
*              IF IOCDLN > IOCTRN                                  0683 02522000
*                THEN                                              0683 02523000
*                                                                  0683 02524000
         L     @15,IOCSPTR                                         0683 02525000
         L     @00,IOCDLN(,@15)                                    0683 02526000
         C     @00,IOCTRN(,@15)                                    0683 02527000
         BNH   @RF00683                                            0683 02528000
*                  /**************************************************/ 02529000
*                  /*                                                */ 02530000
*                  /* DATA LENGTH IS GREATER THAN MAXIMUM THE DATA   */ 02531000
*                  /* SET MAY CONTAIN.  SET APPROPIATE ERROR MESSAGE.*/ 02532000
*                  /*                                                */ 02533000
*                  /**************************************************/ 02534000
*                  DO;                                             0684 02535000
*                    DARGSENT = IVLGSTID;                          0685 02536000
         L     @14,DDSTRU                                          0685 02537000
         MVI   DARGSENT(@14),X'0C'                                 0685 02538000
*                    DARGDBP = IOCDAD;                             0686 02539000
         L     @00,IOCDAD(,@15)                                    0686 02540000
         ST    @00,DARGDBP(,@14)                                   0686 02541000
*                    DARGILP = 5;                                  0687 02542000
         MVC   DARGILP(2,@14),@CH00247                             0687 02543000
*                    RETURN CODE (4);                              0688 02544000
         LA    @15,4                                               0688 02545000
         L     @13,4(,@13)                                         0688 02546000
         L     @14,12(,@13)                                        0688 02547000
         LM    @00,@12,20(@13)                                     0688 02548000
         BR    @14                                                 0688 02549000
*                  END;                                            0689 02550000
*                                                                  0689 02551000
*              /******************************************************/ 02552000
*              /*                                                    */ 02553000
*              /* IF OUTPUT DATA SET HAS FIXED LENGTH RECORDS A      */ 02554000
*              /* RECORD SHORTHER THAN THE LRECL RESULTS IN AN ERROR */ 02555000
*              /*                                                    */ 02556000
*              /******************************************************/ 02557000
*                                                                  0690 02558000
*              IF IOCRFMFX = ON                                    0690 02559000
*                THEN                                              0690 02560000
@RF00683 L     @15,IOCSPTR                                         0690 02561000
         TM    IOCRFMFX(@15),B'10000000'                           0690 02562000
         BNO   @RF00690                                            0690 02563000
*                  DO;                                             0691 02564000
*                    IF IOCDLN < IOCTRN                            0692 02565000
*                      THEN                                        0692 02566000
         L     @00,IOCDLN(,@15)                                    0692 02567000
         C     @00,IOCTRN(,@15)                                    0692 02568000
         BNL   @RF00692                                            0692 02569000
*                        DO;                                       0693 02570000
*                          DARGSENT = IVLGSTID;                    0694 02571000
         L     @14,DDSTRU                                          0694 02572000
         MVI   DARGSENT(@14),X'0C'                                 0694 02573000
*                          DARGDBP = IOCDAD;                       0695 02574000
         L     @00,IOCDAD(,@15)                                    0695 02575000
         ST    @00,DARGDBP(,@14)                                   0695 02576000
*                          DARGILP = 5;                            0696 02577000
         MVC   DARGILP(2,@14),@CH00247                             0696 02578000
*                          RETURN CODE (4);                        0697 02579000
         LA    @15,4                                               0697 02580000
         L     @13,4(,@13)                                         0697 02581000
         L     @14,12(,@13)                                        0697 02582000
         LM    @00,@12,20(@13)                                     0697 02583000
         BR    @14                                                 0697 02584000
*                        END;                                      0698 02585000
*                  END;                                            0699 02586000
@RF00692 DS    0H                                                  0700 02587000
*            END;                                                  0700 02588000
*                                                                  0700 02589000
@RF00690 DS    0H                                                  0701 02590000
*        /************************************************************/ 02591000
*        /*                                                          */ 02592000
*        /* SET LENGTH OF LOGICAL RECORD IN DCB FOR V FORMAT RECORDS */ 02593000
*        /* OR U FORMAT RECORDS.                                     */ 02594000
*        /*                                                          */ 02595000
*        /************************************************************/ 02596000
*                                                                  0701 02597000
*        IF IOCRFMVR = ON                                          0701 02598000
*          THEN                                                    0701 02599000
@RC00677 L     @15,IOCSPTR                                         0701 02600000
         TM    IOCRFMVR(@15),B'01000000'                           0701 02601000
         BNO   @RF00701                                            0701 02602000
*            DCBLRECL = IOCDLN + 4;                                0702 02603000
*                                                                  0702 02604000
         LA    @00,4                                               0702 02605000
         AL    @00,IOCDLN(,@15)                                    0702 02606000
         L     @15,DCBPTR                                          0702 02607000
         STH   @00,DCBLRECL+72(,@15)                               0702 02608000
*          ELSE                                                    0703 02609000
*            DO;                                                   0703 02610000
         B     @RC00701                                            0703 02611000
@RF00701 DS    0H                                                  0704 02612000
*              IF IOCRFMUN = ON                                    0704 02613000
*                THEN                                              0704 02614000
         L     @15,IOCSPTR                                         0704 02615000
         TM    IOCRFMUN(@15),B'00100000'                           0704 02616000
         BNO   @RF00704                                            0704 02617000
*                  DCBLRECL = IOCDLN;                              0705 02618000
         L     @00,IOCDLN(,@15)                                    0705 02619000
         L     @15,DCBPTR                                          0705 02620000
         STH   @00,DCBLRECL+72(,@15)                               0705 02621000
*            END;                                                  0706 02622000
*                                                                  0706 02623000
@RF00704 DS    0H                                                  0707 02624000
*        /************************************************************/ 02625000
*        /*                                                          */ 02626000
*        /* DATA RECORD WILL BE WRITTEN IN THE LOCATE MODE.          */ 02627000
*        /*                                                          */ 02628000
*        /************************************************************/ 02629000
*                                                                  0707 02630000
*        RESPECIFY (REG1) RSTD;                                    0707 02631000
@RC00701 DS    0H                                                  0708 02632000
*        RESPECIFY (REG7) RSTD;                                    0708 02633000
*        REG7 = IOCCBA;                                            0709 02634000
*                                                                  0709 02635000
         L     @15,IOCSPTR                                         0709 02636000
         L     @15,IOCEXT(,@15)                                    0709 02637000
         L     REG7,IOCCBA(,@15)                                   0709 02638000
*LPUT2:  GEN(PUT   (REG7));                                        0710 02639000
LPUT2    PUT   (REG7)                                                   02640000
*        TOADDR = REG1;                                            0711 02641000
*                                                                  0711 02642000
         ST    REG1,TOADDR                                         0711 02643000
*        RESPECIFY (REG1) UNRSTD;                                  0712 02644000
*        RESPECIFY (REG7) UNRSTD;                                  0713 02645000
*                                                                  0713 02646000
*        FMADDR = IOCDAD;                                          0714 02647000
*                                                                  0714 02648000
         L     @01,IOCSPTR                                         0714 02649000
         L     @15,IOCDAD(,@01)                                    0714 02650000
         ST    @15,FMADDR                                          0714 02651000
*        /************************************************************/ 02652000
*        /*                                                          */ 02653000
*        /* IF A MESSAGE ID IS IN THE TEXT PROC ARGUMENT AN I/O      */ 02654000
*        /* ERROR HAS BEEN DETECTED.  THE OUTPUT SYNAD               */ 02655000
*        /* ROUTINE (IRSOSYN) WAS CALLED BY THE ACCESS METHOD.       */ 02656000
*        /* THE SYNAD ROUTINE DETERMINED THAT PROCESSING COULD       */ 02657000
*        /* CONTINUE WITH THE NEXT PUT AND RETURN CONTROL            */ 02658000
*        /* TO THE ACCESS METHOD.                                    */ 02659000
*        /*                                                          */ 02660000
*        /************************************************************/ 02661000
*                                                                  0715 02662000
*        IF DARGSENT ^= 0                                          0715 02663000
*          THEN                                                    0715 02664000
         L     @01,DDSTRU                                          0715 02665000
         CLI   DARGSENT(@01),0                                     0715 02666000
         BE    @RF00715                                            0715 02667000
*            PUTRC = 4;                                            0716 02668000
*                                                                  0716 02669000
         MVC   PUTRC(2),@CH00037                                   0716 02670000
*          ELSE                                                    0717 02671000
*PUTDLOC:    DO;                                                   0717 02672000
*                                                                  0717 02673000
         B     @RC00715                                            0717 02674000
@RF00715 DS    0H                                                  0717 02675000
PUTDLOC  DS    0H                                                  0718 02676000
*              IOCRRN = IOCRRN + 1;                                0718 02677000
*                                                                  0718 02678000
*                                                                  0718 02679000
         L     @15,IOCSPTR                                         0718 02680000
         LA    @14,1                                               0718 02681000
         AL    @14,IOCRRN(,@15)                                    0718 02682000
         ST    @14,IOCRRN(,@15)                                    0718 02683000
*              /******************************************************/ 02684000
*              /*                                                    */ 02685000
*              /* FOR VARIABLE LENGTH RECORDS MOVE RDW TO BUFFER     */ 02686000
*              /*                                                    */ 02687000
*              /******************************************************/ 02688000
*                                                                  0719 02689000
*              IF IOCRFMVR = ON                                    0719 02690000
*                THEN                                              0719 02691000
         TM    IOCRFMVR(@15),B'01000000'                           0719 02692000
         BNO   @RF00719                                            0719 02693000
*                  DO;                                             0720 02694000
*                                                                  0720 02695000
*                    LENFFIX = 0;                                  0721 02696000
         SLR   @15,@15                                             0721 02697000
         ST    @15,LENFFIX                                         0721 02698000
*                    LENHFIX = DCBLRECL;                           0722 02699000
         L     @01,DCBPTR                                          0722 02700000
         LH    @15,DCBLRECL+72(,@01)                               0722 02701000
         STH   @15,LENHFIX                                         0722 02702000
*                    TOAREA (1:4) = LENCHR (1:4);                  0723 02703000
         L     @15,TOADDR                                          0723 02704000
         MVC   TOAREA(4,@15),LENCHR                                0723 02705000
*                    TOADDR = TOADDR + 4;                          0724 02706000
*                                                                  0724 02707000
         AL    @15,@CF00037                                        0724 02708000
         ST    @15,TOADDR                                          0724 02709000
*                  END;                                            0725 02710000
*                                                                  0725 02711000
*              /******************************************************/ 02712000
*              /*                                                    */ 02713000
*              /* MOVE THE RECORD SPECIFIED TO THE OUTPUT BUFFER.    */ 02714000
*              /* 256 BYTES OF DATA  IS MAXIMUM MOVED AT A TIME      */ 02715000
*              /* THE LOOP IS EXECUTED UNTIL ALL DATA IS MOVE TO     */ 02716000
*              /* BUFFER.                                            */ 02717000
*              /*                                                    */ 02718000
*              /******************************************************/ 02719000
*                                                                  0726 02720000
*              MOVETOT = IOCDLN;                                   0726 02721000
*                                                                  0726 02722000
@RF00719 L     @01,IOCSPTR                                         0726 02723000
         L     @15,IOCDLN(,@01)                                    0726 02724000
         ST    @15,MOVETOT                                         0726 02725000
*LOCDMOVE:     DO WHILE MOVETOT > 0;                               0727 02726000
*                                                                  0727 02727000
LOCDMOVE B     @DE00727                                            0727 02728000
@DL00727 DS    0H                                                  0728 02729000
*                IF MOVETOT > 256                                  0728 02730000
*                  THEN                                            0728 02731000
         LA    @15,256                                             0728 02732000
         C     @15,MOVETOT                                         0728 02733000
         BNL   @RF00728                                            0728 02734000
*                    MOVELEN = 256;                                0729 02735000
*                                                                  0729 02736000
         STH   @15,MOVELEN                                         0729 02737000
*                  ELSE                                            0730 02738000
*                    MOVELEN = MOVETOT;                            0730 02739000
*                                                                  0730 02740000
         B     @RC00728                                            0730 02741000
@RF00728 L     @15,MOVETOT                                         0730 02742000
         STH   @15,MOVELEN                                         0730 02743000
*                MOVETOT = MOVETOT - MOVELEN;                      0731 02744000
*                                                                  0731 02745000
@RC00728 LH    @15,MOVELEN                                         0731 02746000
         L     @14,MOVETOT                                         0731 02747000
         SLR   @14,@15                                             0731 02748000
         ST    @14,MOVETOT                                         0731 02749000
*                TOAREA (1:MOVELEN) = FMAREA (1:MOVELEN);          0732 02750000
*                                                                  0732 02751000
         L     @14,TOADDR                                          0732 02752000
         LR    @07,@15                                             0732 02753000
         BCTR  @07,0                                               0732 02754000
         L     @06,FMADDR                                          0732 02755000
         EX    @07,@SM01105                                        0732 02756000
*                TOADDR = TOADDR + MOVELEN;                        0733 02757000
         ALR   @14,@15                                             0733 02758000
         ST    @14,TOADDR                                          0733 02759000
*                FMADDR = FMADDR + MOVELEN;                        0734 02760000
*                                                                  0734 02761000
         ALR   @06,@15                                             0734 02762000
         ST    @06,FMADDR                                          0734 02763000
*              END LOCDMOVE;                                       0735 02764000
*                                                                  0735 02765000
@DE00727 L     @15,MOVETOT                                         0735 02766000
         LTR   @15,@15                                             0735 02767000
         BP    @DL00727                                            0735 02768000
*            END PUTDLOC;                                          0736 02769000
*                                                                  0736 02770000
*                                                                  0736 02771000
*        /************************************************************/ 02772000
*        /*                                                          */ 02773000
*        /* PUT A  RECORD PROCESSING IS COMPLETE RETURN              */ 02774000
*        /* TO CALLING PROCEDURE.                                    */ 02775000
*        /*                                                          */ 02776000
*        /************************************************************/ 02777000
*                                                                  0737 02778000
*        RETURN CODE (PUTRC);                                      0737 02779000
*                                                                  0737 02780000
*                                                                  0737 02781000
*                                                                  0737 02782000
*                                                                  0737 02783000
@RC00715 LH    @15,PUTRC                                           0737 02784000
         L     @13,4(,@13)                                         0737 02785000
         L     @14,12(,@13)                                        0737 02786000
         LM    @00,@12,20(@13)                                     0737 02787000
         BR    @14                                                 0737 02788000
*        /************************************************************/ 02789000
*        /*                                                          */ 02790000
*        /* THIS ROUTINE RECEIVES CONTROL FROM THE ACCESS METHOD     */ 02791000
*        /* IF AN I/O ERROR IS DETECTED ATTEMPTING THE PUT THE       */ 02792000
*        /*  DATA RECORD.                                            */ 02793000
*        /*                                                          */ 02794000
*        /************************************************************/ 02795000
*                                                                  0738 02796000
*IRSOSYN:                                                          0738 02797000
*        RESPECIFY (REG1) RSTD;                                    0738 02798000
*                                                                  0738 02799000
IRSOSYN  DS    0H                                                  0739 02800000
*        SAVE14 = REG14;                                           0739 02801000
*                                                                  0739 02802000
         ST    REG14,SAVE14                                        0739 02803000
*        OLDERID2 = NEWERID2;                                      0740 02804000
         L     @15,GDTTR2(,GDTREG)                                 0740 02805000
         MVC   @TS00001(95),NEWERID2(@15)                          0740 02806000
         MVC   OLDERID2(95,@15),@TS00001                           0740 02807000
*        NEWID2 = 'IOS4';                                          0741 02808000
*                                                                  0741 02809000
         MVC   NEWID2(4,@15),@CC01078                              0741 02810000
*        /************************************************************/ 02811000
*        /*                                                          */ 02812000
*        /* ISSUE THE SYNADAF MACRO FOR QSAM OR BSAM                 */ 02813000
*        /* ACSMETH AND SAVE THE SYNAD MESSAGE.                      */ 02814000
*        /*                                                          */ 02815000
*        /************************************************************/ 02816000
*                                                                  0742 02817000
*        IF IOCMACBK = ON                                          0742 02818000
*              THEN                                                0742 02819000
         L     @15,IOCSPTR                                         0742 02820000
         TM    IOCMACBK(@15),B'00010000'                           0742 02821000
         BNO   @RF00742                                            0742 02822000
*LSYNF4:           GEN(SYNADAF ACSMETH=BSAM);                      0743 02823000
LSYNF4   SYNADAF ACSMETH=BSAM                                           02824000
*              ELSE                                                0744 02825000
*LSYNF3:           GEN(SYNADAF ACSMETH=QSAM);                      0744 02826000
*                                                                  0744 02827000
         B     @RC00742                                            0744 02828000
@RF00742 DS    0H                                                  0744 02829000
LSYNF3   SYNADAF ACSMETH=QSAM                                           02830000
*        SYNADDR = REG1;                                           0745 02831000
@RC00742 ST    REG1,SYNADDR                                        0745 02832000
*        RESPECIFY (REG1) UNRSTD;                                  0746 02833000
*        SYNPRINT (1:80) = SYNMSG (49:128);                        0747 02834000
         L     @15,SYNADDR                                         0747 02835000
         MVC   SYNPRINT(80),SYNMSG+48(@15)                         0747 02836000
*        DARGDBP = ADDR (SYNPRINT);                                0748 02837000
         L     @15,DDSTRU                                          0748 02838000
         LA    @14,SYNPRINT                                        0748 02839000
         ST    @14,DARGDBP(,@15)                                   0748 02840000
*        DARGILP = 80;                                             0749 02841000
*                                                                  0749 02842000
         MVC   DARGILP(2,@15),@CH00874                             0749 02843000
*LSYNR2: GEN(SYNADRLS);                                            0750 02844000
*                                                                  0750 02845000
LSYNR2   SYNADRLS                                                       02846000
*        /************************************************************/ 02847000
*        /*                                                          */ 02848000
*        /* SET ERROR CODE AND SAVE STATIC TEXT ID.                  */ 02849000
*        /*                                                          */ 02850000
*        /************************************************************/ 02851000
*                                                                  0751 02852000
*        PUTRC = 4;                                                0751 02853000
         MVC   PUTRC(2),@CH00037                                   0751 02854000
*        DARGSENT = SYNASTID;                                      0752 02855000
*                                                                  0752 02856000
         L     @01,DDSTRU                                          0752 02857000
         MVI   DARGSENT(@01),X'10'                                 0752 02858000
*        /************************************************************/ 02859000
*        /*                                                          */ 02860000
*        /* IF THE DATA SET IS THE PRINTER (ERROPT=ACCEPT) RETURN    */ 02861000
*        /* TO ACCESS METHOD TO COMPLETE THE I/O OPERATION.          */ 02862000
*        /*                                                          */ 02863000
*        /************************************************************/ 02864000
*                                                                  0753 02865000
*        IF DCBERACC = ON                                          0753 02866000
*          THEN                                                    0753 02867000
         L     @01,DCBPTR                                          0753 02868000
         TM    DCBERACC+72(@01),B'10000000'                        0753 02869000
         BNO   @RF00753                                            0753 02870000
*            DO;                                                   0754 02871000
*                                                                  0754 02872000
*              REG14 = SAVE14;                                     0755 02873000
         L     REG14,SAVE14                                        0755 02874000
*              GEN(RETURN);                                        0756 02875000
*                                                                  0756 02876000
         RETURN                                                         02877000
*            END;                                                  0757 02878000
*                                                                  0757 02879000
*                                                                  0757 02880000
*        /************************************************************/ 02881000
*        /*                                                          */ 02882000
*        /* NO MORE PUT REQUESTS MAY BE ISSUED AGAINST THIS DATA     */ 02883000
*        /* SET.  SET THE I/O ERROR FLAG AND RETURN TO CALLING       */ 02884000
*        /* PROCEDURE.                                               */ 02885000
*        /*                                                          */ 02886000
*        /************************************************************/ 02887000
*                                                                  0758 02888000
*        IOCMSGOP = OFF;                                           0758 02889000
*                                                                  0758 02890000
*                                                                  0758 02891000
@RF00753 L     @01,IOCSPTR                                         0758 02892000
         NI    IOCMSGOP(@01),B'01111111'                           0758 02893000
*        RETURN CODE (4);                                          0759 02894000
*                                                                  0759 02895000
         LA    @15,4                                               0759 02896000
         L     @13,4(,@13)                                         0759 02897000
         L     @14,12(,@13)                                        0759 02898000
         LM    @00,@12,20(@13)                                     0759 02899000
         BR    @14                                                 0759 02900000
*        END PUTNONVS;                                             0760 02901000
*                                                                  0760 02902000
*                                                                  0761 02903000
*        /************************************************************/ 02904000
*        /*                                                          */ 02905000
*        /* PROCEDURE NAME - BLDDMSG                                 */ 02906000
*        /*                                                          */ 02907000
*        /* FUNCTION - THIS PROCEDURE IS CALLED WHEN AN ERROR HAS    */ 02908000
*        /*            BEEN DETECTED WHEN AN I/O OPERATION WAS       */ 02909000
*        /*            REQUESTED.                                    */ 02910000
*        /*                                                          */ 02911000
*        /*            THE TEXT PROCESSOR STRUCTURED ARGUMENT IS     */ 02912000
*        /*            BUILT FOR ALL MESSAGES PRINTED.               */ 02913000
*        /*                                                          */ 02914000
*        /* INPUT -    SAVESTID - STID FOR ERROR MESSAGE TO PRINT    */ 02915000
*        /*                                                          */ 02916000
*        /* OUTPUT -   DARGLIST BUILT AND PASSED TO PRINTMSG TO      */ 02917000
*        /*            HAVE THE ERROR MESSAGE WRITTEN.               */ 02918000
*        /*                                                          */ 02919000
*        /************************************************************/ 02920000
*                                                                  0761 02921000
*BLDDMSG:  PROC;                                                   0761 02922000
*                                                                  0761 02923000
BLDDMSG  STM   @14,@12,@SA00006                                    0761 02924000
*        /* DARG LIST USED TO WRITE THE HEADER MESSAGE               */ 02925000
*        DCL DARGHEAD CHAR (28) BDY(WORD);                         0762 02926000
*                                                                  0762 02927000
*        /* DSNAME AREA                                              */ 02928000
*        DCL DSNCMP CHAR(44) BASED (IOCDSN);                       0763 02929000
*                                                                  0763 02930000
*        /* SPECIAL DSNAME FOR VTOC                                  */ 02931000
*        GENERATE DATA;                                            0764 02932000
*                                                                  0764 02933000
*        DCL VTOC CHAR(44) GENERATED; /* SPECIAL VTOC NAME           */ 02934000
*                                                                  0765 02935000
*        /* VTOC DSNAME AREA                                         */ 02936000
*        DCL DSNVTOC CHAR(44) INIT ('VTOC');                       0766 02937000
*                                                                  0766 02938000
*        /* VTOC DSNAME AREA ADDRESS                                 */ 02939000
*        DCL DSNVTOCP PTR(31) INIT (ADDR(DSNVTOC));                0767 02940000
*                                                                  0767 02941000
*        DDSTRU = ADDR (DARGHEAD);                                 0768 02942000
         LA    @15,DARGHEAD                                        0768 02943000
         ST    @15,DDSTRU                                          0768 02944000
*        DARGHEAD = ''B;                                           0769 02945000
*                                                                  0769 02946000
         XC    DARGHEAD(28),DARGHEAD                               0769 02947000
*        /************************************************************/ 02948000
*        /*                                                          */ 02949000
*        /* PRINT ERROR IDENTIFIER MESSAGE AND DATA SET NAME         */ 02950000
*        /*                                                          */ 02951000
*        /************************************************************/ 02952000
*                                                                  0770 02953000
*        DARGSMOD = 'IO0';                                         0770 02954000
         MVC   DARGSMOD(3,@15),@CC00988                            0770 02955000
*        DARGSENT = ACTSTID;                                       0771 02956000
         MVI   DARGSENT(@15),X'03'                                 0771 02957000
*        IF DSNCMP = VTOC                                          0772 02958000
*          THEN                                                    0772 02959000
         L     @01,IOCSPTR                                         0772 02960000
         L     @01,IOCDSN(,@01)                                    0772 02961000
         CLC   DSNCMP(44,@01),VTOC                                 0772 02962000
         BNE   @RF00772                                            0772 02963000
*             DARGDBP = DSNVTOCP;                                  0773 02964000
         L     @14,DSNVTOCP                                        0773 02965000
         ST    @14,DARGDBP(,@15)                                   0773 02966000
*          ELSE                                                    0774 02967000
*             DARGDBP = IOCDSN;                                    0774 02968000
         B     @RC00772                                            0774 02969000
@RF00772 L     @01,IOCSPTR                                         0774 02970000
         L     @15,IOCDSN(,@01)                                    0774 02971000
         L     @14,DDSTRU                                          0774 02972000
         ST    @15,DARGDBP(,@14)                                   0774 02973000
*        DARGILP = 44;                                             0775 02974000
*                                                                  0775 02975000
@RC00772 L     @01,DDSTRU                                          0775 02976000
         MVC   DARGILP(2,@01),@CH00513                             0775 02977000
*        CALL PRINTMSG;                                            0776 02978000
*                                                                  0776 02979000
         BAL   @14,PRINTMSG                                        0776 02980000
*        /************************************************************/ 02981000
*        /*                                                          */ 02982000
*        /* WRITE THE SECOND ERROR MESSAGE FOR THIS ERROR            */ 02983000
*        /*                                                          */ 02984000
*        /************************************************************/ 02985000
*                                                                  0777 02986000
*        DDSTRU = ADDR (DMSGARG);                                  0777 02987000
         LA    @15,DMSGARG                                         0777 02988000
         ST    @15,DDSTRU                                          0777 02989000
*        CALL PRINTMSG;                                            0778 02990000
*                                                                  0778 02991000
         BAL   @14,PRINTMSG                                        0778 02992000
*        DMSGARG = ''B;                                            0779 02993000
         XC    DMSGARG(44),DMSGARG                                 0779 02994000
*        DARGSMOD = 'IO0';                                         0780 02995000
*                                                                  0780 02996000
         L     @01,DDSTRU                                          0780 02997000
         MVC   DARGSMOD(3,@01),@CC00988                            0780 02998000
*        END BLDDMSG;                                              0781 02999000
*                                                                  0781 03000000
@EL00006 DS    0H                                                  0781 03001000
@EF00006 DS    0H                                                  0781 03002000
@ER00006 LM    @14,@12,@SA00006                                    0781 03003000
         BR    @14                                                 0781 03004000
*                                                                  0782 03005000
*        /************************************************************/ 03006000
*        /*                                                          */ 03007000
*        /* PROCEDURE NAME - PRINTMSG                                */ 03008000
*        /*                                                          */ 03009000
*        /* FUNCTION - CALL THE TEXT PROCESSOR TO WRITE MESSAGE      */ 03010000
*        /*                                                          */ 03011000
*        /* INPUT -  DDSTRU - ADDRESS OF TEXT PROCESSOR ARGUMENT     */ 03012000
*        /*                                                          */ 03013000
*        /************************************************************/ 03014000
*                                                                  0782 03015000
*PRINTMSG: PROC;                                                   0782 03016000
*                                                                  0782 03017000
PRINTMSG STM   @14,@12,@SA00007                                    0782 03018000
*        /************************************************************/ 03019000
*        /*                                                          */ 03020000
*        /* THE TEXT PROCESSOR IS CALLED TO PRINT ERROR MESSAGE.     */ 03021000
*        /*                                                          */ 03022000
*        /************************************************************/ 03023000
*                                                                  0783 03024000
*        CALL ICKTPPR0 (GDTTBL,PRTFILE,DDSTRU);                    0783 03025000
*                                                                  0783 03026000
         ST    GDTREG,@AL00001                                     0783 03027000
         LA    @15,@CF00087                                        0783 03028000
         ST    @15,@AL00001+4                                      0783 03029000
         LA    @15,DDSTRU                                          0783 03030000
         ST    @15,@AL00001+8                                      0783 03031000
         MVI   @AL00001+8,X'80'                                    0783 03032000
         L     @15,GDTPRT(,GDTREG)                                 0783 03033000
         LA    @01,@AL00001                                        0783 03034000
         BALR  @14,@15                                             0783 03035000
*        END PRINTMSG;                                             0784 03036000
*                                                                  0784 03037000
@EL00007 DS    0H                                                  0784 03038000
@EF00007 DS    0H                                                  0784 03039000
@ER00007 LM    @14,@12,@SA00007                                    0784 03040000
         BR    @14                                                 0784 03041000
@PB00007 DS    0H                                                  0784 03042000
*        END ICKIO01                                               0785 03043000
*/* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM.      * 03044000
*/*%INCLUDE SYSLIB  (DMSDF01 )                                        * 03045000
*/*%INCLUDE SYSLIB  (DMSDF00 )                                        * 03046000
*/*@INCLUDE SYSLIB  (DMSDF02 )                                        * 03047000
*/*%INCLUDE SYSLIB  (DMSDF03 )                                        * 03048000
*/*%INCLUDE SYSLIB  (IHADCBDF)                                        * 03049000
*/*%INCLUDE SYSLIB  (IHADCB  )                                        * 03050000
*;                                                                 0785 03051000
@DATA    DS    0H                                                       03052000
@CH00247 DC    H'5'                                                     03053000
@CH00034 DC    H'12'                                                    03054000
@CH00262 DC    H'16'                                                    03055000
@CH00513 DC    H'44'                                                    03056000
@CH00874 DC    H'80'                                                    03057000
@SM01105 MVC   TOAREA(0,@14),FMAREA(@06)                                03058000
         DS    0F                                                       03059000
@AL00324 DC    A(INITID)               LIST WITH   2 ARGUMENT(S)        03060000
         DC    AL1(X'80')                                               03061000
         DC    AL3(@CC00130)                                            03062000
@DATD    DSECT                                                          03063000
         DS    0F                                                       03064000
@SA00001 DS    18F                                                      03065000
@PC00001 DS    10F                                                      03066000
@SA00002 DS    18F                                                      03067000
@PC00002 DS    1F                                                       03068000
@SA00003 DS    18F                                                      03069000
@SA00006 DS    15F                                                      03070000
@SA00004 DS    18F                                                      03071000
@PC00004 DS    1F                                                       03072000
@SA00005 DS    18F                                                      03073000
@SA00007 DS    15F                                                      03074000
@AL00001 DS    5A                                                       03075000
ICKIO01  CSECT                                                          03076000
         DS    0F                                                       03077000
@CF00087 DC    F'0'                                                     03078000
@CF00158 DC    F'1'                                                     03079000
@CH00158 EQU   @CF00158+2                                               03080000
@CF00109 DC    F'2'                                                     03081000
@CF00037 DC    F'4'                                                     03082000
@CH00037 EQU   @CF00037+2                                               03083000
@CF00693 DC    F'40'                                                    03084000
@CF00950 DC    F'255'                                                   03085000
@CF01099 DC    F'-4'                                                    03086000
@DATD    DSECT                                                          03087000
         DS    0D                                                       03088000
LISTPTR  DS    A                                                        03089000
LISTSCAN DS    A                                                        03090000
IOCSPTR  DS    A                                                        03091000
OPNPTR   DS    A                                                        03092000
DDSTRU   DS    A                                                        03093000
FSADDR   DS    A                                                        03094000
DMPINDEX DS    A                                                        03095000
LENFFIX  DS    FL4                                                      03096000
         ORG   LENFFIX                                                  03097000
LENCHR   DS    CL4                                                      03098000
         ORG   LENCHR                                                   03099000
LENHFIX  DS    FL2                                                      03100000
         ORG   LENFFIX+4                                                03101000
SAVE14   DS    A                                                        03102000
POOLSIZE DS    F                                                        03103000
MOVETOT  DS    F                                                        03104000
TOADDR   DS    A                                                        03105000
FMADDR   DS    A                                                        03106000
DECBADDR DS    A                                                        03107000
EXTFLGFD DS    FL4                                                      03108000
         ORG   EXTFLGFD                                                 03109000
EXTTYPE  DS    FL1                                                      03110000
EXTOPT   DS    BL1                                                      03111000
         ORG   EXTOPT                                                   03112000
EXTOPTIN DS    BL1                                                      03113000
EXTOPTOT EQU   EXTOPT+0                                                 03114000
EXTOPTDD EQU   EXTOPT+0                                                 03115000
EXTOPTDS EQU   EXTOPT+0                                                 03116000
@NM00033 EQU   EXTOPT+0                                                 03117000
         ORG   EXTFLGFD+2                                               03118000
EXTPUTID DS    FL2                                                      03119000
         ORG   EXTFLGFD+4                                               03120000
SYNADDR  DS    A                                                        03121000
DCBPTR   DS    A                                                        03122000
CLOPTR   DS    A                                                        03123000
KEYADDR  DS    A                                                        03124000
SETRC    DS    H                                                        03125000
TESTRC   DS    H                                                        03126000
OCCTR    DS    H                                                        03127000
MOVELEN  DS    H                                                        03128000
EXTRC    DS    H                                                        03129000
GETRC    DS    H                                                        03130000
MPUTRC   DS    H                                                        03131000
EXTPUTRC DS    H                                                        03132000
PUTRC    DS    H                                                        03133000
LISTLN   DS    FL1                                                      03134000
@TS00001 DS    CL95                                                     03135000
         DS    CL2                                                      03136000
OCARRAY  DS    CL20                                                     03137000
         ORG   OCARRAY                                                  03138000
OCATYP   DS    FL1                                                      03139000
OCAOPT   DS    BL1                                                      03140000
         ORG   OCAOPT                                                   03141000
OCAOPTCA DS    BL1                                                      03142000
@NM00022 EQU   OCAOPT+0                                                 03143000
         ORG   OCARRAY+2                                                03144000
OCANUM   DS    FL1                                                      03145000
@NM00023 DS    CL1                                                      03146000
OCADDR   DS    4A                                                       03147000
         ORG   OCARRAY+20                                               03148000
DMSGARG  DS    CL44                                                     03149000
MACAREA  DS    CL24                                                     03150000
         ORG   MACAREA                                                  03151000
@NM00026 DS    CL16                                                     03152000
DECBIOB  DS    AL4                                                      03153000
         ORG   MACAREA+24                                               03154000
EXTIOCS  DS    CL8                                                      03155000
         ORG   EXTIOCS                                                  03156000
EXTDAD   DS    AL4                                                      03157000
EXTDLN   DS    FL4                                                      03158000
         ORG   EXTIOCS+8                                                03159000
SYNPRINT DS    CL150                                                    03160000
PFLAGS   DS    CL1                                                      03161000
         ORG   PFLAGS                                                   03162000
MULTPUT  DS    BL1                                                      03163000
@NM00061 EQU   PFLAGS+0                                                 03164000
         ORG   PFLAGS+1                                                 03165000
         DS    CL1                                                      03166000
DARGHEAD DS    CL28                                                     03167000
BLNKAREA DS    CL256                                                    03168000
ICKIO01  CSECT                                                          03169000
         DS    0F                                                       03170000
@SIZDATD DC    AL1(0)                                                   03171000
         DC    AL3(@ENDDATD-@DATD)                                      03172000
         DS    0D                                                       03173000
DSNVTOCP DC    AL4(DSNVTOC)                                             03174000
@CC00957 DC    C'ICKIO02 '                                              03175000
@CC00138 DC    C'ZERO'                                                  03176000
@CC00930 DC    C'IOIT'                                                  03177000
@CC00951 DC    C'IOOP'                                                  03178000
@CC00963 DC    C'IOTM'                                                  03179000
@CC00977 DC    C'IOCL'                                                  03180000
@CC00987 DC    C'IOGT'                                                  03181000
@CC00998 DC    C'IOEG'                                                  03182000
@CC01006 DC    C'IOOG'                                                  03183000
@CC01017 DC    C'IOS2'                                                  03184000
@CC01039 DC    C'IOPT'                                                  03185000
@CC01056 DC    C'IOEP'                                                  03186000
@CC01064 DC    C'IOOW'                                                  03187000
@CC01078 DC    C'IOS4'                                                  03188000
@CC00130 DC    C'ALL'                                                   03189000
@CC00988 DC    C'IO0'                                                   03190000
         DS    CL2                                                      03191000
INITID   DS    CL4                                                      03192000
         ORG   INITID                                                   03193000
@NM00024 DC    CL2'IO'                                                  03194000
@NM00025 DC    H'0'                                                     03195000
         ORG   INITID+4                                                 03196000
MODID    DC    CL4'IO01'                                                03197000
DSNVTOC  DC    CL44'VTOC'                                               03198000
FIXAREA  DS    CL300                                                    03199000
@DATD    DSECT                                                          03200000
ICKIO01 CSECT                                                           03201000
        ENTRY ICKIOS1                                                   03202000
ICKIOS1 DC  A(@SIZDATD)                                                 03203000
        READ  READLIST,SF,,,'S',MF=L                                    03204000
        WRITE WRITEFV,SF,,,,MF=L                                        03205000
        WRITE WRITEU,SF,,,'S',MF=L                                      03206000
@DATD    DSECT                                                          03207000
ICKIO01   CSECT                                                         03208000
VTOC    DC    44X'04'                                                   03209000
@DATD    DSECT                                                          03210000
         ORG   *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA                03211000
@ENDDATD EQU   *                                                        03212000
ICKIO01  CSECT                                                          03213000
@00      EQU   00                      EQUATES FOR REGISTERS 0-15       03214000
@01      EQU   01                                                       03215000
@02      EQU   02                                                       03216000
@03      EQU   03                                                       03217000
@04      EQU   04                                                       03218000
@05      EQU   05                                                       03219000
@06      EQU   06                                                       03220000
@07      EQU   07                                                       03221000
@08      EQU   08                                                       03222000
@09      EQU   09                                                       03223000
@10      EQU   10                                                       03224000
@11      EQU   11                                                       03225000
@12      EQU   12                                                       03226000
@13      EQU   13                                                       03227000
@14      EQU   14                                                       03228000
@15      EQU   15                                                       03229000
RTNREG   EQU   @15                                                      03230000
REG0     EQU   @00                                                      03231000
REG1     EQU   @01                                                      03232000
REG5     EQU   @05                                                      03233000
REG6     EQU   @06                                                      03234000
REG7     EQU   @07                                                      03235000
REG13    EQU   @13                                                      03236000
REG14    EQU   @14                                                      03237000
REG15    EQU   @15                                                      03238000
GDTREG   EQU   @09                                                      03239000
REG10    EQU   @10                                                      03240000
REG11    EQU   @11                                                      03241000
REG12    EQU   @12                                                      03242000
REG2     EQU   @02                                                      03243000
REG3     EQU   @03                                                      03244000
REG4     EQU   @04                                                      03245000
REG8     EQU   @08                                                      03246000
REG9     EQU   @09                                                      03247000
GDTTBL   EQU   0                                                        03248000
GDTTR1   EQU   GDTTBL+8                                                 03249000
GDTTR2   EQU   GDTTBL+12                                                03250000
GDTIOH   EQU   GDTTBL+36                                                03251000
GDTDIN   EQU   GDTTBL+44                                                03252000
GDTDOP   EQU   GDTTBL+48                                                03253000
GDTDBG   EQU   GDTTBL+52                                                03254000
GDTDVO   EQU   GDTTBL+56                                                03255000
GDTPRT   EQU   GDTTBL+60                                                03256000
GDTESS   EQU   GDTTBL+64                                                03257000
GDTESA   EQU   GDTTBL+68                                                03258000
GDTRST   EQU   GDTTBL+72                                                03259000
GDTRES   EQU   GDTTBL+76                                                03260000
GDTCAL   EQU   GDTTBL+80                                                03261000
GDTGSP   EQU   GDTTBL+84                                                03262000
GDTFSP   EQU   GDTTBL+88                                                03263000
GDTGPL   EQU   GDTTBL+92                                                03264000
GDTFPL   EQU   GDTTBL+96                                                03265000
GDTLOD   EQU   GDTTBL+100                                               03266000
GDTDEL   EQU   GDTTBL+104                                               03267000
GDTPRL   EQU   GDTTBL+108                                               03268000
GDTEPL   EQU   GDTTBL+112                                               03269000
GDTTIM   EQU   GDTTBL+116                                               03270000
GDTIIO   EQU   GDTTBL+120                                               03271000
GDTTIO   EQU   GDTTBL+124                                               03272000
GDTOPN   EQU   GDTTBL+136                                               03273000
GDTCLS   EQU   GDTTBL+140                                               03274000
GDTGET   EQU   GDTTBL+144                                               03275000
GDTPUT   EQU   GDTTBL+148                                               03276000
GDTABT   EQU   GDTTBL+152                                               03277000
GDTABH   EQU   GDTTBL+156                                               03278000
GDTSNP   EQU   GDTTBL+160                                               03279000
GDTWTO   EQU   GDTTBL+168                                               03280000
GDTSCR   EQU   GDTTBL+172                                               03281000
GDTVCK   EQU   GDTTBL+176                                               03282000
GDTDVC   EQU   GDTTBL+180                                               03283000
GDTSTE   EQU   GDTTBL+188                                               03284000
ICKSACL0 EQU   0                                                        03285000
ICKSAEP0 EQU   0                                                        03286000
ICKSAGP0 EQU   0                                                        03287000
ICKSAFP0 EQU   0                                                        03288000
TRACE1   EQU   0                                                        03289000
OLDERID1 EQU   TRACE1                                                   03290000
TRACE2   EQU   0                                                        03291000
OLDERID2 EQU   TRACE2                                                   03292000
NEWID2   EQU   TRACE2+95                                                03293000
NEWERID2 EQU   5                                                        03294000
STAEPARM EQU   0                                                        03295000
STAEPFX  EQU   STAEPARM                                                 03296000
LISTTEST EQU   0                                                        03297000
IOCSTR   EQU   0                                                        03298000
IOCDAD   EQU   IOCSTR                                                   03299000
IOCDLN   EQU   IOCSTR+4                                                 03300000
IOCTRN   EQU   IOCSTR+8                                                 03301000
IOCKYL   EQU   IOCSTR+12                                                03302000
IOCDSO   EQU   IOCSTR+13                                                03303000
IOCRFM   EQU   IOCSTR+14                                                03304000
IOCRFMFX EQU   IOCRFM                                                   03305000
IOCRFMVR EQU   IOCRFM                                                   03306000
IOCRFMUN EQU   IOCRFM                                                   03307000
IOCRFMBK EQU   IOCRFM                                                   03308000
IOCMAC   EQU   IOCSTR+15                                                03309000
IOCMACUP EQU   IOCMAC                                                   03310000
IOCMACBK EQU   IOCMAC                                                   03311000
IOCMACPA EQU   IOCMAC                                                   03312000
IOCMSG   EQU   IOCSTR+16                                                03313000
IOCMSGOP EQU   IOCMSG                                                   03314000
IOCDSN   EQU   IOCSTR+20                                                03315000
IOCPNM   EQU   IOCSTR+28                                                03316000
IOCRRN   EQU   IOCSTR+32                                                03317000
IOCEXT   EQU   IOCSTR+36                                                03318000
OPNAGL   EQU   0                                                        03319000
OPNOPT   EQU   OPNAGL                                                   03320000
OPNRFM   EQU   OPNAGL+1                                                 03321000
OPNTYP   EQU   OPNAGL+2                                                 03322000
OPNMOD   EQU   OPNAGL+3                                                 03323000
OPNIOC   EQU   OPNAGL+4                                                 03324000
UVOLLIST EQU   0                                                        03325000
UVOLENT  EQU   UVOLLIST+2                                               03326000
ICKTPPR0 EQU   0                                                        03327000
DARGLIST EQU   0                                                        03328000
DARGDBP  EQU   DARGLIST                                                 03329000
DARGSTID EQU   DARGLIST+8                                               03330000
DARGSMOD EQU   DARGSTID                                                 03331000
DARGSENT EQU   DARGSTID+3                                               03332000
DARGILP  EQU   DARGLIST+12                                              03333000
DARGARY  EQU   DARGLIST+20                                              03334000
DARGINS  EQU   DARGARY                                                  03335000
DARGINL  EQU   DARGARY+2                                                03336000
FMTLIST  EQU   0                                                        03337000
FMTFLGS  EQU   FMTLIST                                                  03338000
FMTSPF   EQU   FMTLIST+2                                                03339000
FMTRFNO  EQU   FMTSPF                                                   03340000
FMTILEN  EQU   FMTRFNO                                                  03341000
FMTIOFF  EQU   FMTLIST+4                                                03342000
FMTTRBC  EQU   FMTIOFF                                                  03343000
FMTSTO   EQU   FMTTRBC                                                  03344000
FMTOCOL  EQU   FMTLIST+6                                                03345000
FMTCNVF  EQU   FMTLIST+10                                               03346000
ICKDB010 EQU   0                                                        03347000
DMPITM   EQU   0                                                        03348000
DMPARY   EQU   0                                                        03349000
IODATA   EQU   0                                                        03350000
IODIOC   EQU   IODATA                                                   03351000
IODMSG   EQU   IODATA+4                                                 03352000
IODADD   EQU   IODATA+8                                                 03353000
IODXTN   EQU   IODATA+12                                                03354000
IODSID   EQU   IODATA+16                                                03355000
IODEOD   EQU   IODATA+20                                                03356000
IODOSS   EQU   IODATA+24                                                03357000
IODOSO   EQU   IODATA+28                                                03358000
IOCSEX   EQU   0                                                        03359000
IOCCBA   EQU   IOCSEX                                                   03360000
IOCDEC   EQU   IOCSEX+4                                                 03361000
IOCWKA   EQU   IOCSEX+12                                                03362000
IOCXAD   EQU   IOCSEX+16                                                03363000
IOCXPM   EQU   IOCSEX+20                                                03364000
IOCFLG   EQU   IOCSEX+32                                                03365000
IOCFLGEX EQU   IOCFLG                                                   03366000
IOCFLGEF EQU   IOCFLG                                                   03367000
IOCFLGSP EQU   IOCFLG                                                   03368000
IOCDEV   EQU   IOCSEX+33                                                03369000
IOCINF   EQU   IOCSEX+34                                                03370000
ARGADDR  EQU   0                                                        03371000
DATAIOC  EQU   0                                                        03372000
TOAREA   EQU   0                                                        03373000
FMAREA   EQU   0                                                        03374000
IODECB   EQU   0                                                        03375000
BLKIOB   EQU   0                                                        03376000
IOBRESCT EQU   BLKIOB+14                                                03377000
UPDECB   EQU   0                                                        03378000
ERRIOB   EQU   0                                                        03379000
ERRCSW   EQU   ERRIOB+16                                                03380000
ERRSTAT  EQU   ERRCSW+4                                                 03381000
EXTRTN   EQU   0                                                        03382000
IOEXPARM EQU   0                                                        03383000
SYNMSG   EQU   0                                                        03384000
IHADCB   EQU   0                                                        03385000
IHADCS00 EQU   0                                                        03386000
DCBFDAD  EQU   IHADCS00+5                                               03387000
IHADCS01 EQU   0                                                        03388000
DCBDVTBL EQU   IHADCS01                                                 03389000
IHADCS02 EQU   0                                                        03390000
IHADCS11 EQU   0                                                        03391000
DCBRELB  EQU   IHADCS11                                                 03392000
DCBREL   EQU   DCBRELB+1                                                03393000
DCBBUFCB EQU   IHADCS11+4                                               03394000
DCBDSORG EQU   IHADCS11+10                                              03395000
DCBDSRG1 EQU   DCBDSORG                                                 03396000
DCBDSRG2 EQU   DCBDSORG+1                                               03397000
DCBIOBAD EQU   IHADCS11+12                                              03398000
DCBODEB  EQU   DCBIOBAD                                                 03399000
DCBLNP   EQU   DCBODEB                                                  03400000
DCBQSLM  EQU   DCBLNP                                                   03401000
DCBIOBAA EQU   DCBODEB+1                                                03402000
IHADCS50 EQU   0                                                        03403000
DCBSVCXL EQU   IHADCS50                                                 03404000
DCBEODAD EQU   IHADCS50+4                                               03405000
DCBBFALN EQU   DCBEODAD                                                 03406000
DCBHIARC EQU   DCBBFALN                                                 03407000
DCBBFTEK EQU   DCBHIARC                                                 03408000
DCBBFT   EQU   DCBBFTEK                                                 03409000
DCBEXLST EQU   IHADCS50+8                                               03410000
DCBRECFM EQU   DCBEXLST                                                 03411000
DCBRECLA EQU   DCBRECFM                                                 03412000
IHADCS24 EQU   0                                                        03413000
DCBOFLGS EQU   IHADCS24+8                                               03414000
DCBOFLWR EQU   DCBOFLGS                                                 03415000
DCBIFLG  EQU   IHADCS24+9                                               03416000
DCBIBPCT EQU   DCBIFLG                                                  03417000
DCBMACR  EQU   IHADCS24+10                                              03418000
DCBMACR1 EQU   DCBMACR                                                  03419000
DCBMRFE  EQU   DCBMACR1                                                 03420000
DCBMRGET EQU   DCBMRFE                                                  03421000
DCBMRAPG EQU   DCBMACR1                                                 03422000
DCBMRRD  EQU   DCBMRAPG                                                 03423000
DCBMRCI  EQU   DCBMACR1                                                 03424000
DCBMRMVG EQU   DCBMRCI                                                  03425000
DCBMRLCG EQU   DCBMACR1                                                 03426000
DCBMRABC EQU   DCBMACR1                                                 03427000
DCBMRPT1 EQU   DCBMRABC                                                 03428000
DCBMRSBG EQU   DCBMRPT1                                                 03429000
DCBMRCRL EQU   DCBMACR1                                                 03430000
DCBMRCHK EQU   DCBMRCRL                                                 03431000
DCBMRRDX EQU   DCBMRCHK                                                 03432000
DCBMRDMG EQU   DCBMACR1                                                 03433000
DCBMACR2 EQU   DCBMACR+1                                                03434000
DCBMRPUT EQU   DCBMACR2                                                 03435000
DCBMRWRT EQU   DCBMACR2                                                 03436000
DCBMRMVP EQU   DCBMACR2                                                 03437000
DCBMR5WD EQU   DCBMACR2                                                 03438000
DCBMRLDM EQU   DCBMR5WD                                                 03439000
DCBMRLCP EQU   DCBMRLDM                                                 03440000
DCBMR4WD EQU   DCBMACR2                                                 03441000
DCBMRPT2 EQU   DCBMR4WD                                                 03442000
DCBMRTMD EQU   DCBMRPT2                                                 03443000
DCBMR3WD EQU   DCBMACR2                                                 03444000
DCBMRCTL EQU   DCBMR3WD                                                 03445000
DCBMRSTK EQU   DCBMRCTL                                                 03446000
DCBMR1WD EQU   DCBMACR2                                                 03447000
DCBMRSWA EQU   DCBMR1WD                                                 03448000
DCBMRDMD EQU   DCBMRSWA                                                 03449000
IHADCS25 EQU   0                                                        03450000
DCBMACRF EQU   IHADCS25+2                                               03451000
DCBMACF1 EQU   DCBMACRF                                                 03452000
DCBMFFE  EQU   DCBMACF1                                                 03453000
DCBMFGET EQU   DCBMFFE                                                  03454000
DCBMFAPG EQU   DCBMACF1                                                 03455000
DCBMFRD  EQU   DCBMFAPG                                                 03456000
DCBMFCI  EQU   DCBMACF1                                                 03457000
DCBMFMVG EQU   DCBMFCI                                                  03458000
DCBMFLCG EQU   DCBMACF1                                                 03459000
DCBMFABC EQU   DCBMACF1                                                 03460000
DCBMFPT1 EQU   DCBMFABC                                                 03461000
DCBMFSBG EQU   DCBMFPT1                                                 03462000
DCBMFCRL EQU   DCBMACF1                                                 03463000
DCBMFCHK EQU   DCBMFCRL                                                 03464000
DCBMFDMG EQU   DCBMACF1                                                 03465000
DCBMACF2 EQU   DCBMACRF+1                                               03466000
DCBMFPUT EQU   DCBMACF2                                                 03467000
DCBMFWRT EQU   DCBMACF2                                                 03468000
DCBMFMVP EQU   DCBMACF2                                                 03469000
DCBMF5WD EQU   DCBMACF2                                                 03470000
DCBMFLDM EQU   DCBMF5WD                                                 03471000
DCBMFLCP EQU   DCBMFLDM                                                 03472000
DCBMF4WD EQU   DCBMACF2                                                 03473000
DCBMFPT2 EQU   DCBMF4WD                                                 03474000
DCBMFTMD EQU   DCBMFPT2                                                 03475000
DCBMF3WD EQU   DCBMACF2                                                 03476000
DCBMFCTL EQU   DCBMF3WD                                                 03477000
DCBMFSTK EQU   DCBMFCTL                                                 03478000
DCBMF1WD EQU   DCBMACF2                                                 03479000
DCBMFSWA EQU   DCBMF1WD                                                 03480000
DCBMFDMD EQU   DCBMFSWA                                                 03481000
DCBDEBAD EQU   IHADCS25+4                                               03482000
DCBIFLGS EQU   DCBDEBAD                                                 03483000
DCBIFPCT EQU   DCBIFLGS                                                 03484000
IHADCS27 EQU   0                                                        03485000
DCBGET   EQU   IHADCS27                                                 03486000
DCBPUT   EQU   DCBGET                                                   03487000
DCBGETA  EQU   DCBPUT+1                                                 03488000
IHADCS36 EQU   0                                                        03489000
DCBGERR  EQU   IHADCS36                                                 03490000
DCBPERR  EQU   DCBGERR                                                  03491000
DCBCHECK EQU   DCBPERR                                                  03492000
DCBOPTCD EQU   DCBCHECK                                                 03493000
DCBOPTH  EQU   DCBOPTCD                                                 03494000
DCBOPTO  EQU   DCBOPTH                                                  03495000
DCBOPTZ  EQU   DCBOPTCD                                                 03496000
DCBGERRA EQU   DCBCHECK+1                                               03497000
DCBPERRA EQU   DCBGERRA                                                 03498000
DCBSYNAD EQU   IHADCS36+4                                               03499000
DCBCIND1 EQU   IHADCS36+8                                               03500000
DCBCIND2 EQU   IHADCS36+9                                               03501000
DCBBLKSI EQU   IHADCS36+10                                              03502000
DCBIOBA  EQU   IHADCS36+16                                              03503000
DCBCICB  EQU   DCBIOBA                                                  03504000
IHADCS52 EQU   0                                                        03505000
DCBDIRCT EQU   IHADCS52                                                 03506000
DCBQSWS  EQU   DCBDIRCT                                                 03507000
DCBUSASI EQU   DCBQSWS                                                  03508000
DCBQADFS EQU   DCBUSASI                                                 03509000
DCBBUFOF EQU   DCBDIRCT+1                                               03510000
IHADCS37 EQU   0                                                        03511000
DCBFLAG1 EQU   IHADCS37                                                 03512000
IHADCS40 EQU   0                                                        03513000
DCBEOBAD EQU   IHADCS40                                                 03514000
DCBCCCW  EQU   IHADCS40+4                                               03515000
DCBRECAD EQU   DCBCCCW                                                  03516000
DCBRECBT EQU   DCBRECAD                                                 03517000
DCBRCREL EQU   DCBRECBT                                                 03518000
DCBLRECL EQU   IHADCS40+10                                              03519000
DCBCNTRL EQU   IHADCS40+12                                              03520000
DCBEROPT EQU   DCBCNTRL                                                 03521000
DCBERACC EQU   DCBEROPT                                                 03522000
RETIOCS  EQU   0                                                        03523000
CLOSIOCS EQU   0                                                        03524000
DSNCMP   EQU   0                                                        03525000
BLNKBUFF EQU   0                                                        03526000
DMPTRM   EQU   0                                                        03527000
ICKDVCL0 EQU   0                                                        03528000
ICKDVIN0 EQU   0                                                        03529000
ICKDVON0 EQU   0                                                        03530000
ICKDVOP0 EQU   0                                                        03531000
ICKIOCL0 EQU   0                                                        03532000
ICKIOGT0 EQU   0                                                        03533000
ICKIOIT0 EQU   0                                                        03534000
ICKIOOP0 EQU   0                                                        03535000
ICKIOPT0 EQU   0                                                        03536000
ICKIOTM0 EQU   0                                                        03537000
ICKSADE0 EQU   0                                                        03538000
ICKSAFS0 EQU   0                                                        03539000
ICKSAGS0 EQU   0                                                        03540000
ICKSALD0 EQU   0                                                        03541000
ICKSAPR0 EQU   0                                                        03542000
ICKSASC0 EQU   0                                                        03543000
ICKSASN0 EQU   0                                                        03544000
ICKSAST0 EQU   0                                                        03545000
ICKSATI0 EQU   0                                                        03546000
ICKSAVC0 EQU   0                                                        03547000
ICKSAWO0 EQU   0                                                        03548000
ICKTPEA0 EQU   0                                                        03549000
ICKTPES0 EQU   0                                                        03550000
ICKTPRE0 EQU   0                                                        03551000
ICKTPRS0 EQU   0                                                        03552000
MOVEKEY  EQU   0                                                        03553000
NEWERID1 EQU   5                                                        03554000
GDTTBLX  EQU   0                                                        03555000
DDLOC    EQU   0                                                        03556000
XTNADDR  EQU   0                                                        03557000
ARG1     EQU   0                                                        03558000
ARG2     EQU   0                                                        03559000
ARG3     EQU   0                                                        03560000
ARG4     EQU   0                                                        03561000
GETIOCS  EQU   0                                                        03562000
INFLGFLD EQU   0                                                        03563000
PUTIOCS  EQU   0                                                        03564000
PUTID    EQU   0                                                        03565000
OTFLGFLD EQU   0                                                        03566000
         AGO   .@UNREFD                START UNREFERENCED COMPONENTS    03567000
DCBEOB   EQU   IHADCS40+20                                              03568000
DCBPRECL EQU   IHADCS40+18                                              03569000
@NM00060 EQU   IHADCS40+16                                              03570000
DCBCNTRA EQU   DCBCNTRL+1                                               03571000
@NM00059 EQU   DCBEROPT                                                 03572000
DCBERABE EQU   DCBEROPT                                                 03573000
DCBERSKP EQU   DCBEROPT                                                 03574000
@NM00058 EQU   IHADCS40+9                                               03575000
@NM00057 EQU   IHADCS40+8                                               03576000
DCBRECA  EQU   DCBRECAD+1                                               03577000
@NM00056 EQU   DCBRECBT                                                 03578000
DCBRCFGT EQU   DCBRCREL                                                 03579000
DCBRCTRU EQU   DCBRCREL                                                 03580000
DCBLCCW  EQU   DCBEOBAD                                                 03581000
@NM00055 EQU   DCBFLAG1                                                 03582000
DCBSTFLS EQU   DCBFLAG1                                                 03583000
DCBSTQCK EQU   DCBFLAG1                                                 03584000
DCBDIRCQ EQU   DCBBUFOF                                                 03585000
DCBQSTRU EQU   DCBUSASI                                                 03586000
@NM00054 EQU   DCBUSASI                                                 03587000
DCBQADF3 EQU   DCBQADFS                                                 03588000
DCBQADF2 EQU   DCBQADFS                                                 03589000
DCBQADF1 EQU   DCBQADFS                                                 03590000
DCBBLBP  EQU   DCBUSASI                                                 03591000
@NM00053 EQU   DCBUSASI                                                 03592000
DCBCICBA EQU   DCBCICB+1                                                03593000
@NM00052 EQU   DCBCICB                                                  03594000
DCBOFFSW EQU   IHADCS36+15                                              03595000
DCBOFFSR EQU   IHADCS36+14                                              03596000
DCBWCPL  EQU   IHADCS36+13                                              03597000
DCBWCPO  EQU   IHADCS36+12                                              03598000
DCBCNQSM EQU   DCBCIND2                                                 03599000
DCBCNFEO EQU   DCBCIND2                                                 03600000
DCBCNCHS EQU   DCBCIND2                                                 03601000
DCBCNBFP EQU   DCBCIND2                                                 03602000
DCBCNIOE EQU   DCBCIND2                                                 03603000
DCBCNCLO EQU   DCBCIND2                                                 03604000
DCBCNWRO EQU   DCBCIND2                                                 03605000
DCBCNSTO EQU   DCBCIND2                                                 03606000
DCBCNEXB EQU   DCBCIND1                                                 03607000
@NM00051 EQU   DCBCIND1                                                 03608000
DCBCNBRM EQU   DCBCIND1                                                 03609000
@NM00050 EQU   DCBCIND1                                                 03610000
DCBCNEVA EQU   DCBCIND1                                                 03611000
DCBCNEVB EQU   DCBCIND1                                                 03612000
DCBCNSRD EQU   DCBCIND1                                                 03613000
DCBCNTOV EQU   DCBCIND1                                                 03614000
DCBSYNA  EQU   DCBSYNAD+1                                               03615000
DCBIOBL  EQU   DCBSYNAD                                                 03616000
DCBCHCKA EQU   DCBPERRA                                                 03617000
DCBOPTJ  EQU   DCBOPTCD                                                 03618000
DCBOPTT  EQU   DCBOPTCD                                                 03619000
DCBSRCHD EQU   DCBOPTZ                                                  03620000
DCBOPTQ  EQU   DCBOPTCD                                                 03621000
DCBBCKPT EQU   DCBOPTO                                                  03622000
DCBOPTC  EQU   DCBOPTCD                                                 03623000
DCBOPTU  EQU   DCBOPTCD                                                 03624000
DCBOPTW  EQU   DCBOPTCD                                                 03625000
DCBPUTA  EQU   DCBGETA                                                  03626000
@NM00049 EQU   DCBPUT                                                   03627000
DCBDEBA  EQU   DCBDEBAD+1                                               03628000
@NM00048 EQU   DCBIFLGS                                                 03629000
DCBIFIOE EQU   DCBIFLGS                                                 03630000
DCBCH12  EQU   DCBIFPCT                                                 03631000
DCBCH9   EQU   DCBIFPCT                                                 03632000
DCBIFEC  EQU   DCBIFLGS                                                 03633000
DCBMFSTI EQU   DCBMFDMD                                                 03634000
DCBMFAWR EQU   DCBMFSTK                                                 03635000
DCBMFUIP EQU   DCBMFTMD                                                 03636000
DCBMFIDW EQU   DCBMFLCP                                                 03637000
DCBMFWRK EQU   DCBMFMVP                                                 03638000
DCBMFRDQ EQU   DCBMFWRT                                                 03639000
DCBMFGTQ EQU   DCBMFPUT                                                 03640000
DCBMFSTL EQU   DCBMACF2                                                 03641000
DCBMFCK  EQU   DCBMFDMG                                                 03642000
DCBMFRDX EQU   DCBMFCHK                                                 03643000
DCBMFDBF EQU   DCBMFSBG                                                 03644000
DCBMFRDI EQU   DCBMFLCG                                                 03645000
DCBMFRDK EQU   DCBMFMVG                                                 03646000
DCBMFWRQ EQU   DCBMFRD                                                  03647000
DCBMFPTQ EQU   DCBMFGET                                                 03648000
DCBMFECP EQU   DCBMACF1                                                 03649000
DCBTIOT  EQU   IHADCS25                                                 03650000
DCBMRSTI EQU   DCBMRDMD                                                 03651000
DCBMRAWR EQU   DCBMRSTK                                                 03652000
DCBMRUIP EQU   DCBMRTMD                                                 03653000
DCBMRIDW EQU   DCBMRLCP                                                 03654000
DCBMRWRK EQU   DCBMRMVP                                                 03655000
DCBMRRDQ EQU   DCBMRWRT                                                 03656000
DCBMRGTQ EQU   DCBMRPUT                                                 03657000
DCBMRSTL EQU   DCBMACR2                                                 03658000
DCBMRCK  EQU   DCBMRDMG                                                 03659000
DCBPGFXA EQU   DCBMRRDX                                                 03660000
DCBMRDBF EQU   DCBMRSBG                                                 03661000
DCBMRRDI EQU   DCBMRLCG                                                 03662000
DCBMRRDK EQU   DCBMRMVG                                                 03663000
DCBMRWRQ EQU   DCBMRRD                                                  03664000
DCBMRPTQ EQU   DCBMRGET                                                 03665000
DCBMRECP EQU   DCBMACR1                                                 03666000
@NM00047 EQU   DCBIFLG                                                  03667000
DCBIBIOE EQU   DCBIFLG                                                  03668000
DCBICH12 EQU   DCBIBPCT                                                 03669000
DCBICH9  EQU   DCBIBPCT                                                 03670000
DCBIBEC  EQU   DCBIFLG                                                  03671000
DCBOFIOF EQU   DCBOFLGS                                                 03672000
DCBOFUEX EQU   DCBOFLGS                                                 03673000
DCBOFTM  EQU   DCBOFLGS                                                 03674000
DCBOFPPC EQU   DCBOFLGS                                                 03675000
DCBOFOPN EQU   DCBOFLGS                                                 03676000
DCBOFEOV EQU   DCBOFLGS                                                 03677000
DCBOFLRB EQU   DCBOFLGS                                                 03678000
DCBOFIOD EQU   DCBOFLWR                                                 03679000
DCBDDNAM EQU   IHADCS24                                                 03680000
DCBEXLSA EQU   DCBEXLST+1                                               03681000
DCBRECKL EQU   DCBRECFM                                                 03682000
DCBRECCC EQU   DCBRECFM                                                 03683000
DCBRECSB EQU   DCBRECFM                                                 03684000
DCBRECBR EQU   DCBRECFM                                                 03685000
DCBRECTO EQU   DCBRECLA                                                 03686000
DCBRECL  EQU   DCBRECLA                                                 03687000
DCBEODA  EQU   DCBEODAD+1                                               03688000
DCBBFA   EQU   DCBBFTEK                                                 03689000
DCBH0    EQU   DCBBFTEK                                                 03690000
DCBBFTKD EQU   DCBBFTEK                                                 03691000
DCBBFTE  EQU   DCBBFT                                                   03692000
DCBBFTKR EQU   DCBBFT                                                   03693000
DCBBFTS  EQU   DCBBFT                                                   03694000
DCBH1    EQU   DCBBFTEK                                                 03695000
DCBSVCXA EQU   DCBSVCXL+1                                               03696000
@NM00046 EQU   DCBSVCXL                                                 03697000
DCBODEBA EQU   DCBIOBAA                                                 03698000
@NM00045 EQU   DCBQSLM                                                  03699000
DCBUPDBT EQU   DCBQSLM                                                  03700000
DCBUPDCM EQU   DCBQSLM                                                  03701000
DCB1DVDS EQU   DCBQSLM                                                  03702000
@NM00044 EQU   DCBDSRG2                                                 03703000
DCBDSGTR EQU   DCBDSRG2                                                 03704000
DCBACBM  EQU   DCBDSRG2                                                 03705000
@NM00043 EQU   DCBDSRG2                                                 03706000
DCBDSGTQ EQU   DCBDSRG2                                                 03707000
DCBDSGTX EQU   DCBDSRG2                                                 03708000
DCBDSGGS EQU   DCBDSRG2                                                 03709000
DCBDSGU  EQU   DCBDSRG1                                                 03710000
DCBDSGPO EQU   DCBDSRG1                                                 03711000
@NM00042 EQU   DCBDSRG1                                                 03712000
@NM00041 EQU   DCBDSRG1                                                 03713000
DCBDSGCX EQU   DCBDSRG1                                                 03714000
DCBDSGDA EQU   DCBDSRG1                                                 03715000
DCBDSGPS EQU   DCBDSRG1                                                 03716000
DCBDSGIS EQU   DCBDSRG1                                                 03717000
DCBBUFL  EQU   IHADCS11+8                                               03718000
DCBBUFCA EQU   DCBBUFCB+1                                               03719000
DCBBUFNO EQU   DCBBUFCB                                                 03720000
DCBDEVT  EQU   DCBREL                                                   03721000
DCBKEYLE EQU   DCBRELB                                                  03722000
@NM00040 EQU   IHADCS02+19                                              03723000
DCBDEN   EQU   IHADCS02+18                                              03724000
@NM00039 EQU   IHADCS02+17                                              03725000
DCBTRTCH EQU   IHADCS02+16                                              03726000
DCBBLKCT EQU   IHADCS02+12                                              03727000
@NM00038 EQU   IHADCS02                                                 03728000
DCBTRBAL EQU   IHADCS01+6                                               03729000
@NM00037 EQU   IHADCS01+5                                               03730000
@NM00036 EQU   IHADCS01+4                                               03731000
DCBDVTBA EQU   DCBDVTBL+1                                               03732000
@NM00035 EQU   DCBDVTBL                                                 03733000
DCBKEYCN EQU   IHADCS00+4                                               03734000
DCBRELAD EQU   IHADCS00                                                 03735000
@NM00034 EQU   IHADCB                                                   03736000
@NM00032 EQU   ERRCSW+6                                                 03737000
@NM00031 EQU   ERRSTAT+1                                                03738000
ERRWLR   EQU   ERRSTAT+1                                                03739000
@NM00030 EQU   ERRSTAT                                                  03740000
@NM00029 EQU   ERRCSW                                                   03741000
@NM00028 EQU   ERRIOB+8                                                 03742000
ERRPRFX  EQU   ERRIOB                                                   03743000
@NM00027 EQU   BLKIOB                                                   03744000
@NM00021 EQU   IOCSEX+35                                                03745000
IOCINFR1 EQU   IOCINF                                                   03746000
IOCINFAC EQU   IOCINF                                                   03747000
IOCINFQX EQU   IOCINF                                                   03748000
IOCINFND EQU   IOCINF                                                   03749000
IOCINFAE EQU   IOCINF                                                   03750000
IOCINFPT EQU   IOCINF                                                   03751000
@NM00020 EQU   IOCDEV                                                   03752000
IOCDEVUR EQU   IOCDEV                                                   03753000
IOCDEVMT EQU   IOCDEV                                                   03754000
IOCDEVDA EQU   IOCDEV                                                   03755000
@NM00019 EQU   IOCFLG                                                   03756000
IOCFLGOE EQU   IOCFLG                                                   03757000
IOCFLGOP EQU   IOCFLG                                                   03758000
IOCFLGIO EQU   IOCFLG                                                   03759000
IOCFLGDF EQU   IOCFLG                                                   03760000
IOCSID   EQU   IOCSEX+28                                                03761000
IOCNIO   EQU   IOCSEX+24                                                03762000
@NM00018 EQU   IOCSEX+10                                                03763000
IOCCBL   EQU   IOCSEX+8                                                 03764000
IODOCS   EQU   IODATA+36                                                03765000
IODICS   EQU   IODATA+32                                                03766000
IODINC   EQU   IODSID+2                                                 03767000
IODMID   EQU   IODSID                                                   03768000
@NM00017 EQU   DMPARY+15                                                03769000
DMPARYTP EQU   DMPARY+14                                                03770000
DMPARYEX EQU   DMPARY+12                                                03771000
DMPARYIC EQU   DMPARY+10                                                03772000
DMPARYSZ EQU   DMPARY+8                                                 03773000
DMPARYNM EQU   DMPARY                                                   03774000
@NM00016 EQU   DMPITM+15                                                03775000
DMPITMTP EQU   DMPITM+14                                                03776000
DMPITMLN EQU   DMPITM+12                                                03777000
DMPITMPT EQU   DMPITM+8                                                 03778000
DMPITMNM EQU   DMPITM                                                   03779000
@NM00015 EQU   FMTCNVF+1                                                03780000
FMTBS    EQU   FMTCNVF+1                                                03781000
FMTSS    EQU   FMTCNVF+1                                                03782000
FMTAL    EQU   FMTCNVF+1                                                03783000
FMTZS    EQU   FMTCNVF+1                                                03784000
@NM00014 EQU   FMTCNVF                                                  03785000
FMTPU    EQU   FMTCNVF                                                  03786000
FMTBD    EQU   FMTCNVF                                                  03787000
FMTBHD   EQU   FMTCNVF                                                  03788000
FMTBHA   EQU   FMTCNVF                                                  03789000
FMTBH    EQU   FMTCNVF                                                  03790000
FMTOLEN  EQU   FMTLIST+8                                                03791000
FMTRIO   EQU   FMTOCOL                                                  03792000
FMTSPT   EQU   FMTSTO                                                   03793000
FMTSTL   EQU   FMTILEN                                                  03794000
@NM00013 EQU   FMTFLGS+1                                                03795000
FMTHDF   EQU   FMTFLGS                                                  03796000
FMTDFF   EQU   FMTFLGS                                                  03797000
FMTSTF   EQU   FMTFLGS                                                  03798000
FMTREPF  EQU   FMTFLGS                                                  03799000
FMTBDF   EQU   FMTFLGS                                                  03800000
FMTIDF   EQU   FMTFLGS                                                  03801000
FMTSCF   EQU   FMTFLGS                                                  03802000
FMTEOLF  EQU   FMTFLGS                                                  03803000
DARGDTM  EQU   DARGARY+4                                                03804000
DARGPCT  EQU   DARGINL                                                  03805000
DARGREP  EQU   DARGINS                                                  03806000
@NM00012 EQU   DARGLIST+19                                              03807000
DARGIND  EQU   DARGLIST+18                                              03808000
DARGRETL EQU   DARGLIST+16                                              03809000
DARGCNT  EQU   DARGLIST+14                                              03810000
DARGRETP EQU   DARGLIST+4                                               03811000
UVOLVOL  EQU   UVOLENT+4                                                03812000
UVOLDEV  EQU   UVOLENT                                                  03813000
UVOLCNT  EQU   UVOLLIST                                                 03814000
OPNRSVD  EQU   OPNAGL+28                                                03815000
OPNVOL   EQU   OPNAGL+24                                                03816000
OPNBLK   EQU   OPNAGL+20                                                03817000
OPNREC   EQU   OPNAGL+16                                                03818000
OPNDSN   EQU   OPNAGL+12                                                03819000
OPNDDN   EQU   OPNAGL+8                                                 03820000
@NM00011 EQU   OPNMOD                                                   03821000
OPNMODRC EQU   OPNMOD                                                   03822000
OPNMODAC EQU   OPNMOD                                                   03823000
@NM00010 EQU   OPNTYP                                                   03824000
OPNTYPSO EQU   OPNTYP                                                   03825000
OPNTYPSI EQU   OPNTYP                                                   03826000
@NM00009 EQU   OPNRFM                                                   03827000
OPNRFMBK EQU   OPNRFM                                                   03828000
OPNRFMSF EQU   OPNRFM                                                   03829000
OPNRFMUN EQU   OPNRFM                                                   03830000
OPNRFMVR EQU   OPNRFM                                                   03831000
OPNRFMFX EQU   OPNRFM                                                   03832000
@NM00008 EQU   OPNOPT                                                   03833000
OPNOPTJM EQU   OPNOPT                                                   03834000
OPNOPTKS EQU   OPNOPT                                                   03835000
OPNOPTBK EQU   OPNOPT                                                   03836000
OPNOPTUP EQU   OPNOPT                                                   03837000
OPNOPTOT EQU   OPNOPT                                                   03838000
OPNOPTIN EQU   OPNOPT                                                   03839000
@NM00007 EQU   IOCSTR+30                                                03840000
IOCCBP   EQU   IOCSTR+24                                                03841000
@NM00006 EQU   IOCSTR+17                                                03842000
@NM00005 EQU   IOCMSG                                                   03843000
@NM00004 EQU   IOCMAC                                                   03844000
IOCMACOT EQU   IOCMAC                                                   03845000
IOCMACIN EQU   IOCMAC                                                   03846000
@NM00003 EQU   IOCRFM                                                   03847000
IOCRFMSF EQU   IOCRFM                                                   03848000
@NM00002 EQU   IOCDSO                                                   03849000
IOCDSOPS EQU   IOCDSO                                                   03850000
STAEWORK EQU   STAEPARM+32                                              03851000
STARPTR  EQU   STAEPFX+28                                               03852000
STASPTR  EQU   STAEPFX+24                                               03853000
STALEN   EQU   STAEPFX+20                                               03854000
STAID    EQU   STAEPFX+16                                               03855000
STAEPA   EQU   STAEPFX+12                                               03856000
STAGDT   EQU   STAEPFX+8                                                03857000
STABPTR  EQU   STAEPFX+4                                                03858000
STAFPTR  EQU   STAEPFX                                                  03859000
NEWID1   EQU   TRACE1+95                                                03860000
CALLID   EQU   OLDERID1+90                                              03861000
@NM00001 EQU   OLDERID1                                                 03862000
GDTCVR   EQU   GDTTBL+184                                               03863000
GDTSPR   EQU   GDTTBL+164                                               03864000
GDTTOH   EQU   GDTTBL+132                                               03865000
GDTRIP   EQU   GDTTBL+128                                               03866000
GDTDVH   EQU   GDTTBL+40                                                03867000
GDTSAH   EQU   GDTTBL+32                                                03868000
GDTTPH   EQU   GDTTBL+28                                                03869000
GDTRIH   EQU   GDTTBL+24                                                03870000
GDTSTH   EQU   GDTTBL+20                                                03871000
GDTDBH   EQU   GDTTBL+16                                                03872000
GDTPRM   EQU   GDTTBL+4                                                 03873000
GDTHDR   EQU   GDTTBL                                                   03874000
.@UNREFD ANOP                          END UNREFERENCED COMPONENTS      03875000
@PB00003 EQU   @EC00528                                                 03876000
@RF00679 EQU   @RC00677                                                 03877000
@PB00006 EQU   @PB00007                                                 03878000
@PB00002 EQU   @PB00003                                                 03879000
@PB00005 EQU   @PB00006                                                 03880000
@PB00004 EQU   @PB00005                                                 03881000
@ENDDATA EQU   *                                                        03882000
         END   ICKIO01,(C'PLS1716',0701,78192)                          03883000
