         TITLE 'IFCDIP00- SYS1.LOGREC INITIALIZATION                   *00001000
                        '                                               00002000
IFCDIP00 CSECT ,                                                   0001 00003000
@MAINENT DS    0H                                                  0001 00004000
         USING *,@15                                               0001 00005000
         B     @PROLOG                                             0001 00006000
         DC    AL1(16)                                             0001 00007000
         DC    C'IFCDIP00  78.167'                                 0001 00008000
         DROP  @15                                                      00009000
@PROLOG  ST    @14,12(,@13)                                        0001 00010000
         STM   @00,@12,20(@13)                                     0001 00011000
         BALR  @10,0                                               0001 00012000
@PSTART  LA    @11,4095(,@10)                                      0001 00013000
         LA    @12,4095(,@11)                                      0001 00014000
         USING @PSTART,@10                                         0001 00015000
         USING @PSTART+4095,@11                                    0001 00016000
         USING @PSTART+8190,@12                                    0001 00017000
         ST    @13,@SA00001+4                                      0001 00018000
         LA    @14,@SA00001                                        0001 00019000
         ST    @14,8(,@13)                                         0001 00020000
         LR    @13,@14                                             0001 00021000
WORK1    EQU   2                                                        00022000
WORK2    EQU   3                                                        00023000
WORK3    EQU   4                                                        00024000
WORK4    EQU   5                                                        00025000
WORK6    EQU   6                                                        00026000
DEVTABLE EQU   7                                                        00027000
DEBSTR   EQU   38                       START OF EXTENT - DEB OFFSET    00028000
DEBEND   EQU   42                       END OF EXTENT - DEB OFFSET      00029000
DEBNMTRK EQU   46                       NUMBER OF TRACK - DEB OFFSET    00030000
DEBEXT   EQU   36                      OFFSET OF EXTENT IN DEB          00031000
DCBDEBAD EQU   44                      OFFSET FOR DCB DEB POINTER       00032000
*  EQUATE TABLE                                                         00033000
L0       EQU   0                        * THIS                          00034000
L1       EQU   1                        *  SET                          00035000
L2       EQU   2                        *   OF                          00036000
L3       EQU   3                        *    EQUATES                    00037000
L4       EQU   4                        *     IS                        00038000
L5       EQU   5                        *      FOR                      00039000
L6       EQU   6                        *       OFFSETS                 00040000
L7       EQU   7                        *        AND                    00041000
L8       EQU   8                        *         DISPLACEMENTS         00042000
L9       EQU   9                        *          AND                  00043000
L14      EQU   14                       *           LENGTHS             00044000
L40      EQU   40                                                       00045000
*RCODE = 0; /*INITIALIZE RETURN CODE TO SUCCESSFULL          @G51DGVS*/ 00046000
         SLR   @15,@15                                             0069 00047000
         ST    @15,RCODE                                           0069 00048000
*PTRSPOT = R1; /*ESTABLISH ADDRESSABILITY TO PARM FIELD      @G51DGVS*/ 00049000
         ST    R1,PTRSPOT                                          0070 00050000
*IF PARMLEN ^= ZERO THEN /*IF PARM FIELD EXISTS              @G51DGVS*/ 00051000
         L     @14,PTRSPOT                                         0071 00052000
         L     @14,LISTPTR(,@14)                                   0071 00053000
         LH    @09,PARMLEN(,@14)                                   0071 00054000
         CR    @09,@15                                             0071 00055000
         BE    @RF00071                                            0071 00056000
*  DO;                                                     /*@G51DGVS*/ 00057000
*    IF PARMLEN = SIX THEN  /*IF PARAMETER PROPER LENGTH THEN*/    0073 00058000
         C     @09,@CF00068                                        0073 00059000
         BNE   @RF00073                                            0073 00060000
*     DO;                                                  /*@G51DGVS*/ 00061000
*      IF INARG = FRAMES THEN  /*IF PARAMETER IS FRAMES      @G51DGVS*/ 00062000
         CLC   INARG(6,@14),@CC00069                               0075 00063000
         BNE   @RF00075                                            0075 00064000
*        FRAMEYES = ON;                                    /*@G51DGVS*/ 00065000
         OI    FRAMEYES,B'10000000'                                0076 00066000
*      ELSE /*PARM IS IN BUT NOT FRAMES                      @G51DGVS*/ 00067000
*       DO;                                                /*@G51DGVS*/ 00068000
         B     @RC00075                                            0077 00069000
@RF00075 DS    0H                                                  0078 00070000
*        CALL ERRMSG(11);                                  /*@G51DGVS*/ 00071000
         LA    @01,@AL00078                                        0078 00072000
         BAL   @14,ERRMSG                                          0078 00073000
*        RCODE = SIXTEEN;                                  /*@G51DGVS*/ 00074000
         MVC   RCODE(4),@CF00075                                   0079 00075000
*       END;                                               /*@G51DGVS*/ 00076000
*     END;                                                 /*@G51DGVS*/ 00077000
*    ELSE /*NOT PROPER LENGTH                                @G51DGVS*/ 00078000
*     DO;                                                  /*@G51DGVS*/ 00079000
         B     @RC00073                                            0082 00080000
@RF00073 DS    0H                                                  0083 00081000
*      CALL ERRMSG(11); /*ISSUE IMPROPER PARM FIELD MESSAGE  @G51DGVS*/ 00082000
         LA    @01,@AL00083                                        0083 00083000
         BAL   @14,ERRMSG                                          0083 00084000
*      RCODE = SIXTEEN;                                    /*@G51DGVS*/ 00085000
         MVC   RCODE(4),@CF00075                                   0084 00086000
*     END;                                                 /*@G51DGVS*/ 00087000
*  END;                                                    /*@G51DGVS*/ 00088000
@RC00073 DS    0H                                                  0087 00089000
*IF RCODE = SUCCESS THEN                                           0087 00090000
@RF00071 L     @15,RCODE                                           0087 00091000
         LTR   @15,@15                                             0087 00092000
         BNZ   @RF00087                                            0087 00093000
*DO;                                                       /*@G51DGVS*/ 00094000
*GEN(OPEN (DIPDCB,OUTPUT)); /*OPEN SYS1.LOGREC               @G51DGVS*/ 00095000
         OPEN (DIPDCB,OUTPUT)                                           00096000
*IF (DIPDCBFL & OPENOK) = OPENOK THEN /*IF SUCCESSFULL OPEN  @G51DGVS*/ 00097000
         MVC   @TS00001(1),DIPDCBFL                                0090 00098000
         NI    @TS00001,X'10'                                      0090 00099000
         CLI   @TS00001,X'10'                                      0090 00100000
         BNE   @RF00090                                            0090 00101000
*  DO;                                                     /*@G51DGVS*/ 00102000
*    GEN(ENQ (RESID,LOGRECA,E,8,SYSTEM)); /*ENQUEUE SYS1.LOGREC. */     00103000
         ENQ (RESID,LOGRECA,E,8,SYSTEM)                                 00104000
*    /*LOCK OUT ALL OTHER USERS IN THE SYSTEM                @G51DGVS*/ 00105000
*    CALL OLDDIP; /*CREATE HEADER RECORD AND TIME STAMP      @G51DGVS*/ 00106000
         BAL   @14,OLDDIP                                          0093 00107000
*    IF RCODE = SUCCESS &  /*IF SUCCESSFULLY WROTE HEADER, TIME STAMP*/ 00108000
*       FRAMEYES = ON THEN /*IF USER SPECIFIES WRITE FRAMES  @G51DGVS*/ 00109000
         L     @15,RCODE                                           0094 00110000
         LTR   @15,@15                                             0094 00111000
         BNZ   @RF00094                                            0094 00112000
         TM    FRAMEYES,B'10000000'                                0094 00113000
         BNO   @RF00094                                            0094 00114000
*     DO;                                                  /*@VS48735*/ 00115000
*      CALL NEWDIP; /*WRITE FRAMES TO SYS1.LOGREC            @G51DGVS*/ 00116000
         BAL   @14,NEWDIP                                          0096 00117000
*      IF RCODE = FOUR THEN                                        0097 00118000
         CLC   RCODE(4),@CF00073                                   0097 00119000
         BNE   @RF00097                                            0097 00120000
*        RCODE = SUCCESS;                                  /*@VS48735*/ 00121000
         SLR   @15,@15                                             0098 00122000
         ST    @15,RCODE                                           0098 00123000
*     END;                                                 /*@VS48735*/ 00124000
@RF00097 DS    0H                                                  0100 00125000
*    GEN(DEQ (RESID,LOGRECA,8,SYSTEM)); /*OTHER USERS ALLOWED LOGREC*/  00126000
@RF00094 DS    0H                                                  0100 00127000
         DEQ (RESID,LOGRECA,8,SYSTEM)                                   00128000
*    IF RCODE > TWELVE | FRAMEYES = NO THEN                        0101 00129000
         L     @15,RCODE                                           0101 00130000
         C     @15,@CF00034                                        0101 00131000
         BH    @RT00101                                            0101 00132000
         TM    FRAMEYES,B'10000000'                                0101 00133000
         BNZ   @RF00101                                            0101 00134000
@RT00101 DS    0H                                                  0102 00135000
*      DO;                                                 /*@G51DGVS*/ 00136000
*        RESPECIFY (R6,R7) RESTRICTED;                     /*@G51DGVS*/ 00137000
*        GENERATE;                                         /*@G51DGVS*/ 00138000
         L     DEVTABLE,DEVSTORE   GET DEVICE TABLE ENTRY ADDRESS       00139000
         L     WORK6,DEBADR        GET DATA EXTENT BLOCK ADDRESS        00140000
         MVC   FDAD(L4),DEBEND(WORK6) SET HIGH EXTENT FOR EOF           00141000
         MVC   TRBAL(L2),BT(DEVTABLE) SET TRACK BALANCE FOR EOF         00142000
*        RESPECIFY (R6,R7) UNRESTRICTED;                   /*@G51DGVS*/ 00143000
*      END;                                                /*@G51DGVS*/ 00144000
*    GEN(CLOSE (DIPDCB,DISP));                             /*@G51DGVS*/ 00145000
@RF00101 DS    0H                                                  0107 00146000
         CLOSE (DIPDCB,DISP)                                            00147000
*    IF RCODE < SIXTEEN THEN /*IF LOGREC HAS BEEN INITIALIZED*/    0108 00148000
         L     @15,RCODE                                           0108 00149000
         C     @15,@CF00075                                        0108 00150000
         BNL   @RF00108                                            0108 00151000
*      CALL ERRMSG(1); /*ISSUE END OF JOB MESSAGE            @G51DGVS*/ 00152000
         LA    @01,@AL00109                                        0109 00153000
         BAL   @14,ERRMSG                                          0109 00154000
*  END;                                                    /*@G51DGVS*/ 00155000
*ELSE  /*UNSUCCESSFULL OPEN OF SYS1.LOGREC                   @G51DGVS*/ 00156000
*  DO;                                                     /*@G51DGVS*/ 00157000
         B     @RC00090                                            0111 00158000
@RF00090 DS    0H                                                  0112 00159000
*    CALL ERRMSG(2);                                       /*@G51DGVS*/ 00160000
         LA    @01,@AL00112                                        0112 00161000
         BAL   @14,ERRMSG                                          0112 00162000
*    RCODE = SIXTEEN;                                      /*@G51DGVS*/ 00163000
         MVC   RCODE(4),@CF00075                                   0113 00164000
*  END;                                                    /*@G51DGVS*/ 00165000
*END;                                                      /*@G51DGVS*/ 00166000
@RC00090 DS    0H                                                  0116 00167000
*R15 = RCODE;                                              /*@G51DGVS*/ 00168000
@RF00087 L     R15,RCODE                                           0116 00169000
*OLDDIP: PROC; /*BUILD AND WRITE TIME STAMP RECORDS TO LOGREC, FIRST*/  00170000
         B     @PB00002                                            0117 00171000
OLDDIP   STM   @14,@12,@SA00002                                    0117 00172000
*              /*READ OF SRF                                 @G51DGVS*/ 00173000
*CALL BUILDHDR; /*FORMAT SYS1.LOGREC HEADER FROM CONTROL BLOCK INFO*/   00174000
         BAL   @14,BUILDHDR                                        0118 00175000
*IF RCODE = SUCCESS THEN /*IF VALID SYSTEM RESIDENCE DEVICE  @G51DGVS*/ 00176000
         L     @15,RCODE                                           0119 00177000
         LTR   @15,@15                                             0119 00178000
         BNZ   @RF00119                                            0119 00179000
*  CALL WRITELOG(40,WRITEPTR); /*WRITE HEADER TO LOGREC      @G51DGVS*/ 00180000
         LA    @01,@AL00120                                        0120 00181000
         BAL   @14,WRITELOG                                        0120 00182000
*IF RCODE = SUCCESS THEN                                           0121 00183000
@RF00119 L     @15,RCODE                                           0121 00184000
         LTR   @15,@15                                             0121 00185000
         BNZ   @RF00121                                            0121 00186000
*  DO;                                                     /*@G51DGVS*/ 00187000
*    BUF240 = (BUF240 && BUF240); /*CONSTRUCT TIME STAMP RECORD OF  */  00188000
         XC    BUF240(40),BUF240                                   0123 00189000
*                                 /*HEX ZEROS VIA EXCLUSIVE OR      */  00190000
*    CALL WRITELOG(40,WRITEPTR); /*WRITE TIME STAMP TO SYS1.LOGREC*/    00191000
         LA    @01,@AL00124                                        0124 00192000
         BAL   @14,WRITELOG                                        0124 00193000
*    IF RCODE = SUCCESS THEN                                       0125 00194000
         L     @15,RCODE                                           0125 00195000
         LTR   @15,@15                                             0125 00196000
         BNZ   @RF00125                                            0125 00197000
*      DO;                                                 /*@G51DGVS*/ 00198000
*        IF FRAMEYES = ON THEN /*IF FRAMES TO BE WRITTEN TO LOGREC*/    00199000
         TM    FRAMEYES,B'10000000'                                0127 00200000
         BNO   @RF00127                                            0127 00201000
*                              /*FOR A MERIDIAN LIKE CPU WITH AN  */    00202000
*          DO;                 /*ACCESSIBLE SRF              @G51DGVS*/ 00203000
*            CALL OPENSRF;         /*OPEN SYSTEM REFERENCE FILE   */    00204000
         BAL   @14,OPENSRF                                         0129 00205000
*            IF RCODE = SUCCESS THEN                               0130 00206000
         L     @15,RCODE                                           0130 00207000
         LTR   @15,@15                                             0130 00208000
         BNZ   @RF00130                                            0130 00209000
*              DO;                                         /*@G51DGVS*/ 00210000
*                CALL GETSER; /*RETRIEVE CPU SERIAL NUMBER   @G51DGVS*/ 00211000
         BAL   @14,GETSER                                          0132 00212000
*                CALL BUILDFRH; /*BUILD CONSTANT PART OF FRAME HEADER*/ 00213000
         BAL   @14,BUILDFRH                                        0133 00214000
*                CALL VERBPROC;            /* PERFORM VERBAGE        */ 00215000
         BAL   @14,VERBPROC                                        0134 00216000
*                CALL READSRF; /*READ FRAME TEXT ACROSS SYSTEM  */ 0135 00217000
         BAL   @14,READSRF                                         0135 00218000
*                               /*REFERENCE FILE INTERFACE. SET  */     00219000
*                               /*RETURN CODE IF EOF OR FAILURE. */     00220000
*                IF RCODE ^= SUCCESS THEN /*IF NOT RETRIEVE FRAME*/     00221000
         L     @15,RCODE                                           0136 00222000
         LTR   @15,@15                                             0136 00223000
         BZ    @RF00136                                            0136 00224000
*                  DO;                                     /*@G51DGVS*/ 00225000
*                    IF RCODE = FOUR THEN /*IF EOF ON 1ST READ*/   0138 00226000
         C     @15,@CF00073                                        0138 00227000
         BNE   @RF00138                                            0138 00228000
*                      CALL ERRMSG(10);                    /*@G51DGVS*/ 00229000
         LA    @01,@AL00139                                        0139 00230000
         BAL   @14,ERRMSG                                          0139 00231000
*                    ELSE  /*LEGITIMATE READ ERROR           @G51DGVS*/ 00232000
*                      CALL ERRMSG(7);                     /*@G51DGVS*/ 00233000
         B     @RC00138                                            0140 00234000
@RF00138 LA    @01,@AL00140                                        0140 00235000
         BAL   @14,ERRMSG                                          0140 00236000
*                    RCODE = TWELVE; /*INDICATE NO FRAMES RETRIEVED */  00237000
@RC00138 MVC   RCODE(4),@CF00034                                   0141 00238000
*                  END;                                    /*@G51DGVS*/ 00239000
*                ELSE /*SUCCESSFUL READ OF A FRAME           @G51DGVS*/ 00240000
*                  DO;                                     /*@G51DGVS*/ 00241000
         B     @RC00136                                            0143 00242000
@RF00136 DS    0H                                                  0144 00243000
*                    READPTR = (READPTR && WRITEPTR);/*SHIFT READ,WRTE* 00244000
         L     @15,WRITEPTR                                        0144 00245000
         L     @14,READPTR                                         0144 00246000
         XR    @14,@15                                             0144 00247000
         ST    @14,READPTR                                         0144 00248000
*                    WRITEPTR = (WRITEPTR && READPTR);/*BUFFERS VIA 3*/ 00249000
         XR    @15,@14                                             0145 00250000
         ST    @15,WRITEPTR                                        0145 00251000
*                    READPTR = (READPTR && WRITEPTR); /*EXCLUSIVE ORS*/ 00252000
         XR    @14,@15                                             0146 00253000
         ST    @14,READPTR                                         0146 00254000
*                    RECCNT = 1; /*FIRST FRAME OF THE SET    @G51DGVS*/ 00255000
         MVI   RECCNT,X'01'                                        0147 00256000
*                    SEQCNT = 1; /*FIRST FRAME FOR 50 FRAME LIMIT CK*/  00257000
         MVI   SEQCNT,X'01'                                        0148 00258000
*                  END;                                    /*@G51DGVS*/ 00259000
*              END;                                        /*@G51DGVS*/ 00260000
*            ELSE /*SRF COULD NOT BE OPENED                  @G51DGVS*/ 00261000
*                CALL ERRMSG(6); /*SRF CANNOT BE OPENED      @G51DGVS*/ 00262000
         B     @RC00130                                            0151 00263000
@RF00130 LA    @01,@AL00151                                        0151 00264000
         BAL   @14,ERRMSG                                          0151 00265000
*          END;                                            /*@G51DGVS*/ 00266000
*      END;                                                /*@G51DGVS*/ 00267000
*    ELSE /*ERROR WRITING TIME STAMP RECORD                  @G51DGVS*/ 00268000
*      CALL ERRMSG(3);                                     /*@G51DGVS*/ 00269000
         B     @RC00125                                            0154 00270000
@RF00125 LA    @01,@AL00154                                        0154 00271000
         BAL   @14,ERRMSG                                          0154 00272000
*  END;                                                    /*@G51DGVS*/ 00273000
*ELSE /*ERROR WRITING HEADER RECORD                          @G51DGVS*/ 00274000
*  CALL ERRMSG(3);                                         /*@G51DGVS*/ 00275000
         B     @RC00121                                            0156 00276000
@RF00121 LA    @01,@AL00156                                        0156 00277000
         BAL   @14,ERRMSG                                          0156 00278000
*END; /*END OF PROC OLDDIP                                   @G51DGVS*/ 00279000
@EL00002 DS    0H                                                  0157 00280000
@EF00002 DS    0H                                                  0157 00281000
@ER00002 LM    @14,@12,@SA00002                                    0157 00282000
         BR    @14                                                 0157 00283000
         EJECT                                                          00284000
*NEWDIP: PROC; /*READ THE SRF TO GET FRAME TEXT, CONSTRUCT FRAME */     00285000
NEWDIP   STM   @14,@12,@SA00003                                    0158 00286000
*              /*RECORDS, WRITE THE RECORDS TO SYS1.LOGREC, AND  */     00287000
*              /*REWRITE THE SYS1.LOGREC HEADER TO REFLECT FRAMES*/     00288000
*        DO WHILE RCODE = SUCCESS; /*DO WHILE NOT EOF OR READ ERROR */  00289000
         B     @DE00159                                            0159 00290000
@DL00159 DS    0H                                                  0160 00291000
*                               /*OR WRITE ERROR.            @G51DGVS*/ 00292000
*          CALL READSRF; /*READ FRAME ACROSS SYSTEM REFERENCE FILE  */  00293000
         BAL   @14,READSRF                                         0160 00294000
*                        /*AND IDENTIFY END OF FILE AND ERROR CONDIT*/  00295000
*          IF RCODE ^= SUCCESS THEN    /*IF SUCCESSFUL READ  @G51DGVS*/ 00296000
         L     @15,RCODE                                           0161 00297000
         SLR   @14,@14                                             0161 00298000
         CR    @15,@14                                             0161 00299000
         BE    @RF00161                                            0161 00300000
*            DO;                                           /*@G51DGVS*/ 00301000
*              RECNLST = OFF;/*INDICATE RECORD IN BUFFER IS LAST OF ST* 00302000
         NI    RECNLST,B'01111111'                                 0163 00303000
*              IF RCODE = FOUR &  /*IF END OF FILE           @G51DGVS*/ 00304000
*                 FRAMTYPS = MCF THEN /*HAVE BEEN READING MCH FRMS*/    00305000
         C     @15,@CF00073                                        0164 00306000
         BNE   @RF00164                                            0164 00307000
         CLI   FRAMTYPS,X'02'                                      0164 00308000
         BNE   @RF00164                                            0164 00309000
*                  DO;                                     /*@G51DGVS*/ 00310000
*                    FRAMTYPS = CCF; /*SET UP TO READ CCF FRAMES  */    00311000
         MVI   FRAMTYPS,X'01'                                      0166 00312000
*                    RCODE = SUCCESS; /*INDICATE SUCCESS, NOT COMPLETE* 00313000
         ST    @14,RCODE                                           0167 00314000
*                    SEQCNT = ZERO; /*RESET PHYSICAL SEQUENCE NUMBER  * 00315000
         MVI   SEQCNT,X'00'                                        0168 00316000
*                                   /*FOR NEXT SET OF FRAMES @G51DGVS*/ 00317000
*                    CALL VERBPROC;        /* PERFORM VERBAGE        */ 00318000
         BAL   @14,VERBPROC                                        0169 00319000
*                    CALL READSRF; /*READ SRF TO RESET SEQUENCING*/     00320000
         BAL   @14,READSRF                                         0170 00321000
*                    IF RCODE = FOUR THEN /*IF EOF, NO CCF FRAMES*/     00322000
         CLC   RCODE(4),@CF00073                                   0171 00323000
         BNE   @RF00171                                            0171 00324000
*                      DO;   /*RCODE ALREADY SET TO 8 IF HARD ERROR*/   00325000
*                        CALL ERRMSG(10); /*MISSING FRAME SET MESSAGE*/ 00326000
         LA    @01,@AL00173                                        0173 00327000
         BAL   @14,ERRMSG                                          0173 00328000
*                        RCODE = EIGHT; /*INDICATE MISSING FRAMES*/     00329000
         MVC   RCODE(4),@CF00063                                   0174 00330000
*                      END;                                /*@G51DGVS*/ 00331000
*                  END;                                    /*@G51DGVS*/ 00332000
*            END;                                          /*@G51DGVS*/ 00333000
*          ELSE  /*IF SUCCESSFUL READ                        @G51DGVS*/ 00334000
*            IF RECCNT = MAXFRM THEN /*IF FRAME JUST READ IS ONE TOO*/  00335000
         B     @RC00161                                            0178 00336000
@RF00161 CLI   RECCNT,50                                           0178 00337000
         BNE   @RF00178                                            0178 00338000
*              DO;                   /*MANY FOR EREP1 THEN   @G51DGVS*/ 00339000
*                CALL ERRMSG(8); /*MAXIMUM FRAME NUMBER EXCEEDED MESS*/ 00340000
         LA    @01,@AL00180                                        0180 00341000
         BAL   @14,ERRMSG                                          0180 00342000
*                RCODE = EIGHT; /*INDICATE LOST FRAMES       @G51DGVS*/ 00343000
         MVC   RCODE(4),@CF00063                                   0181 00344000
*                RECNLST = OFF; /*SET LAST FRAME SWITCH ON.  @G51DGVS*/ 00345000
         NI    RECNLST,B'01111111'                                 0182 00346000
*                IF FRAMTYPS = MCF THEN /*IF CHANNEL FRAMES LEFT    */  00347000
         CLI   FRAMTYPS,X'02'                                      0183 00348000
         BNE   @RF00183                                            0183 00349000
*                  DO;                                     /*@G51DGVS*/ 00350000
*                    RCODE = ZERO; /*CONTINUE IN LOOP        @G51DGVS*/ 00351000
         SLR   @15,@15                                             0185 00352000
         ST    @15,RCODE                                           0185 00353000
*                    FRAMLOST = ON; /*INDICATE FRAMES LOST WITHOUT*/    00354000
         OI    FRAMLOST,B'01000000'                                0186 00355000
*                     /*USING RETURN CODE AND EXITING LOOP   @G51DGVS*/ 00356000
*                    SEQCNT = ZERO; /*RESET FOR CHANNEL FRAMES*/   0187 00357000
         MVI   SEQCNT,X'00'                                        0187 00358000
*                    FRAMTYPS = CCF; /*PREPARE TO READ CHANNEL FRMS */  00359000
         MVI   FRAMTYPS,X'01'                                      0188 00360000
*                    CALL VERBPROC;        /* PERFORM VERBAGE        */ 00361000
         BAL   @14,VERBPROC                                        0189 00362000
*                    CALL READSRF; /*READ FRAME OVERLAY TOO MANY FRAME* 00363000
         BAL   @14,READSRF                                         0190 00364000
*                    IF RCODE = FOUR THEN /*IF END OF FILE ON 1ST */    00365000
         CLC   RCODE(4),@CF00073                                   0191 00366000
         BNE   @RF00191                                            0191 00367000
*                      DO;                /*CCH FRAME READ THEN*/  0192 00368000
*                        CALL ERRMSG(10); /*ISSUE MISSING SET MESSAGE*/ 00369000
         LA    @01,@AL00193                                        0193 00370000
         BAL   @14,ERRMSG                                          0193 00371000
*                        RCODE = EIGHT; /*INDICATE MISSING FRAMES AND*/ 00372000
         MVC   RCODE(4),@CF00063                                   0194 00373000
*                                       /*EXIT THE LOOP      @G51DGVS*/ 00374000
*                      END;                                /*@G51DGVS*/ 00375000
*                  END;                                    /*@G51DGVS*/ 00376000
*                ELSE /*NO MORE MACHINE FRAMES MUST BE READ  @G51DGVS*/ 00377000
*                  RCODE = EIGHT; /*DONT ALLOW FRAME JUST READ OR ANY*/ 00378000
         B     @RC00183                                            0197 00379000
@RF00183 MVC   RCODE(4),@CF00063                                   0197 00380000
*              END;               /*FURTHER FRAMES TO BE READ        */ 00381000
@RC00183 DS    0H                                                  0199 00382000
*          RECHDR = RECBUILD; /*MOVE BUILT HEADER TO BUFFER  @G51DGVS*/ 00383000
@RF00178 DS    0H                                                  0199 00384000
@RC00161 L     @01,WRITEPTR                                        0199 00385000
         MVC   RECHDR(24,@01),RECBUILD                             0199 00386000
*          RECCNT = SEQCNT + 1; /*UP INDEX FOR NEXT RECORD   @G51DGVS*/ 00387000
         SLR   @01,@01                                             0200 00388000
         IC    @01,SEQCNT                                          0200 00389000
         LA    @01,1(,@01)                                         0200 00390000
         STC   @01,RECCNT                                          0200 00391000
*          SEQCNT = SEQCNT + 1; /*UP RUNNING SEQUENCE NUMBER OF RECRD*/ 00392000
         STC   @01,SEQCNT                                          0201 00393000
*          RECNLST = ON; /*RESET LAST REC. SWITCH FOR NEXT RECORD*/     00394000
         OI    RECNLST,B'10000000'                                 0202 00395000
*          IF FRAMTYPS = CCF THEN /*IF NOW READING CHANNEL FRAMES   */  00396000
         CLI   FRAMTYPS,X'01'                                      0203 00397000
         BNE   @RF00203                                            0203 00398000
*            RECTYPE = 'B0'X;     /*THEN SET RECORD TYPE TO CCF FOR */  00399000
         MVI   RECTYPE,X'B0'                                       0204 00400000
*                                 /*FRAME WRITTEN NEXT LOOP ITERATION*/ 00401000
*          CALL WRITELOG(1944,WRITEPTR); /*WRITE PREVIOUS FRAME TO LG*/ 00402000
@RF00203 LA    @01,@AL00205                                        0205 00403000
         BAL   @14,WRITELOG                                        0205 00404000
*                               /*NOTE ITS LOCATION AND CHECK FOR   */  00405000
*                               /*OVERFLOW OF THE EXTENT.    @G51DGVS*/ 00406000
*                               /*COUNT SUCCESSFUL WRITES OF FRAMES */  00407000
*          IF RCODE = SUCCESS THEN                                 0206 00408000
         L     @15,RCODE                                           0206 00409000
         LTR   @15,@15                                             0206 00410000
         BNZ   @RF00206                                            0206 00411000
*            ONEFRAME = ON;                                /*@VS48735*/ 00412000
         OI    ONEFRAME,B'00100000'                                0207 00413000
*          READPTR = (READPTR && WRITEPTR); /*SWITCH READ,WRITE*/  0208 00414000
@RF00206 L     @15,WRITEPTR                                        0208 00415000
         L     @14,READPTR                                         0208 00416000
         XR    @14,@15                                             0208 00417000
         ST    @14,READPTR                                         0208 00418000
*          WRITEPTR = (WRITEPTR && READPTR); /*BUFFERS VIA THREE*/ 0209 00419000
         XR    @15,@14                                             0209 00420000
         ST    @15,WRITEPTR                                        0209 00421000
*          READPTR = (READPTR && WRITEPTR); /*EXCLUSIVE ORS  @G51DGVS*/ 00422000
         XR    @14,@15                                             0210 00423000
         ST    @14,READPTR                                         0210 00424000
*         END; /*END OF READ, WRITE LOOP                     @G51DGVS*/ 00425000
@DE00159 L     @15,RCODE                                           0211 00426000
         LTR   @15,@15                                             0211 00427000
         BZ    @DL00159                                            0211 00428000
*  CALL CLOSESRF; /*DISABLE AND CLOSE SRF                    @G51DGVS*/ 00429000
         BAL   @14,CLOSESRF                                        0212 00430000
*  IF FRAMLOST = ON THEN /*IF FRAMES LOST BUT RCODE NOT SET  @G51DGVS*/ 00431000
         TM    FRAMLOST,B'01000000'                                0213 00432000
         BNO   @RF00213                                            0213 00433000
*    RCODE = EIGHT; /*USE RCODE TO PASS RETURN CODE TO USER  @G51DGVS*/ 00434000
         MVC   RCODE(4),@CF00063                                   0214 00435000
*  IF RCODE = EIGHT &   /*IF SOME FRAMES LOST                @G51DGVS*/ 00436000
*     ONEFRAME = NO THEN /*IF NO FRAMES SUCCESSFULLY WRITTEN @G51DGVS*/ 00437000
@RF00213 CLC   RCODE(4),@CF00063                                   0215 00438000
         BNE   @RF00215                                            0215 00439000
         TM    ONEFRAME,B'00100000'                                0215 00440000
         BNZ   @RF00215                                            0215 00441000
*    RCODE = TWELVE;      /*INDICATE NO FRAMES WRITTEN       @G51DGVS*/ 00442000
         MVC   RCODE(4),@CF00034                                   0216 00443000
*  IF FRAMEYES = YES &  /*IF FRAMES TO BE WRITTEN            @G51DGVS*/ 00444000
*     RCODE < TWELVE THEN /*IF AT LEAST ONE FRAME WRITTEN SUCCESSFULLY* 00445000
@RF00215 TM    FRAMEYES,B'10000000'                                0217 00446000
         BNO   @RF00217                                            0217 00447000
         L     @15,RCODE                                           0217 00448000
         C     @15,@CF00034                                        0217 00449000
         BNL   @RF00217                                            0217 00450000
*    DO;                                                   /*@G51DGVS*/ 00451000
*     RESPECIFY (R6,R7) RESTRICTED;                        /*@G51DGVS*/ 00452000
*     GENERATE;                                            /*@G51DGVS*/ 00453000
         L     DEVTABLE,DEVSTORE GET DEVICE TABLE ENTRY ADDR.           00454000
         L     WORK6,DEBADR      GET DATA EXTENT BLOCK ADDRESS          00455000
         MVC   FDAD(L4),DEBEND(WORK6) SET HIGH EXTENT FOR EOF           00456000
         MVC   TRBAL(L2),BT(DEVTABLE) SET TRACK BALANCE FOR EOF         00457000
         CLOSE (DIPDCB,REREAD)     CLOSE LOGREC FOR NORMAL WRITING      00458000
         OPEN  (DIPDCB,UPDAT)    OPEN LOGREC TO REWRITE THE HEADER      00459000
         READ  LISTDECB,SF,DIPDCB,HDRSAVE,40,,,,MF=E                    00460000
         CHECK LISTDECB                                                 00461000
*     RESPECIFY (R6,R7) UNRESTRICTED;                      /*@G51DGVS*/ 00462000
*     CALL REDOHDR; /*RECREATE LOGREC HEADER TO REFLECT FRAMES*/   0222 00463000
         BAL   @14,REDOHDR                                         0222 00464000
*     GENERATE;                                            /*@G51DGVS*/ 00465000
         WRITE LISTDECB,SF,DIPDCB,HDRSAVE,40,,,,MF=E                    00466000
         CHECK LISTDECB                                                 00467000
*    END;                                                  /*@G51DGVS*/ 00468000
*END; /*END OF NEWDIP PROC                                   @G51DGVS*/ 00469000
@EL00003 DS    0H                                                  0225 00470000
@EF00003 DS    0H                                                  0225 00471000
@ER00003 LM    @14,@12,@SA00003                                    0225 00472000
         BR    @14                                                 0225 00473000
*BUILDHDR: PROC; /*FORMAT SYS1.LOGREC HEADER FROM INFO IN SYSTEM */     00474000
BUILDHDR STM   @14,@12,@SA00004                                    0226 00475000
*                /*CONTROL BLOCKS AND INTERNAL TABLES        @G51DGVS*/ 00476000
*  CALL GETDEV; /*FIND ENTRY IN INTERNAL DEVICE TABLE FOR SYSRES*/ 0227 00477000
         BAL   @14,GETDEV                                          0227 00478000
*               /*FORMAT HEADER RECORD FIELDS BUILT FROM DEVTABLE*/     00479000
*               /*AND THE DATA EXTENT BLOCK                  @G51DGVS*/ 00480000
*  CALL RECSTRT; /*CALCULATE START OF RECORD ENTRY AREA AND THE   */    00481000
         BAL   @14,RECSTRT                                         0228 00482000
*                /*FULL POINT OF SYS1.LOGREC                 @G51DGVS*/ 00483000
*  GENERATE REFS(BUF240);                                  /*@G51DGVS*/ 00484000
         MVC   BUF240(40),HDRSAVE      MOVE HEADER TO INITIAL WRITE BF  00485000
*END;                                                      /*@G51DGVS*/ 00486000
@EL00004 DS    0H                                                  0230 00487000
@EF00004 DS    0H                                                  0230 00488000
@ER00004 LM    @14,@12,@SA00004                                    0230 00489000
         BR    @14                                                 0230 00490000
*WRITELOG: PROC(INPARM,WHERE);                             /*@G51DGVS*/ 00491000
WRITELOG STM   @14,@12,@SA00005                                    0231 00492000
         MVC   @PC00005(8),0(@01)                                  0231 00493000
*                /*WRITE A RECORD TO SYS1.LOGREC USING BSAM. @G51DGVS*/ 00494000
*                /*RETRIEVE THE ADDRESS OF THE RECORD USING NOTE   */   00495000
*                /*CHECK TO SEE IF SYS1.LOGREC EXTENT HAS OVERFLOWED*/  00496000
*                /*SET RETURN CODE IF WRITE ERROR OR OVERFLOW EXTENT*/  00497000
*DCL INPARM FIXED(31); /*LENGTH OF RECORD TO BE WRITTEN      @G51DGVS*/ 00498000
*DCL WHERE  PTR(31);  /*WHERE RECORD IS                      @G51DGVS*/ 00499000
*RESPECIFY (R1,R2,R3) RESTRICTED;                          /*@G51DGVS*/ 00500000
*R2 = WHERE;  /*ADDRESS OF RECORD TO BE WRITTEN PUT IN REG2  @G51DGVS*/ 00501000
         L     @15,@PC00005+4                                      0235 00502000
         L     R2,WHERE(,@15)                                      0235 00503000
*R3 = INPARM; /*LENGTH OF RECORD TO BE WRITTEN               @G51DGVS*/ 00504000
         L     @15,@PC00005                                        0236 00505000
         L     R3,INPARM(,@15)                                     0236 00506000
*GENERATE;                                                 /*@G51DGVS*/ 00507000
DWRITE   WRITE DIPDECB,SF,DIPDCB,(2),(3)                                00508000
         CHECK DIPDECB                                                  00509000
         NOTE  DIPDCB                   RETRIEVE TTR OF RECORD WRITTEN  00510000
*TTRSAVE = R1;     /*STORE RELATIVE DIRECT ACCESS LOCATION FROM NOTE*/  00511000
         ST    R1,TTRSAVE                                          0238 00512000
*RESPECIFY (R1,R2,R3) UNRESTRICTED;                        /*@G51DGVS*/ 00513000
*IF FRAMEYES = ON &   /*IF FRAMES, CHECK TO SEE IF ENOUGH ROOM ON */    00514000
*   TTRSAVE = MAXTTR THEN /*ON LOGREC FOR NEXT WRITE. ASSUME AT   */    00515000
         TM    FRAMEYES,B'10000000'                                0240 00516000
         BNO   @RF00240                                            0240 00517000
         L     @15,TTRSAVE                                         0240 00518000
         C     @15,MAXTTR                                          0240 00519000
         BNE   @RF00240                                            0240 00520000
*                         /*LEAST ONE TRACK FOR HEADER AND TIME STMP*/  00521000
*  DO;                                                     /*@G51DGVS*/ 00522000
*    CALL ERRMSG(4); /*NOT ENOUGH ROOM FOR FRAMES            @G51DGVS*/ 00523000
         LA    @01,@AL00242                                        0242 00524000
         BAL   @14,ERRMSG                                          0242 00525000
*    RCODE = SIXTEEN; /*NO ROOM FOR ERROR RECORDS SO BETTER ABORT*/     00526000
         MVC   RCODE(4),@CF00075                                   0243 00527000
*  END;                                                    /*@G51DGVS*/ 00528000
*ELSE IF FRAMEYES = ON THEN /*IF SUCCESSFUL WRITE OF A FRAME THEN*/     00529000
         B     @RC00240                                            0245 00530000
@RF00240 TM    FRAMEYES,B'10000000'                                0245 00531000
         BNO   @RF00245                                            0245 00532000
*  ONEFRAME = ON; /*AT LEAST ONE FRAME ON LOGREC SUCCESSFULLY*/    0246 00533000
         OI    ONEFRAME,B'00100000'                                0246 00534000
*GOTO ENDOPROC; /*BOUNCE AROUND THE NON=SYNCHRONOUS ERROR EXIT*/   0247 00535000
         B     ENDOPROC                                            0247 00536000
*LOGERR:; /*NON-STRUCTURED ASYNCHRONOUS ERROR EXIT           @G51DGVS*/ 00537000
LOGERR   DS    0H                                                  0249 00538000
*IF TTRSAVE < THIRD THEN /*IF WRITING HEADER                 @G51DGVS*/ 00539000
         L     @15,TTRSAVE                                         0249 00540000
         C     @15,THIRD                                           0249 00541000
         BNL   @RF00249                                            0249 00542000
*  DO;                                                     /*@G51DGVS*/ 00543000
*    CALL ERRMSG(3);                                       /*@G51DGVS*/ 00544000
         LA    @01,@AL00251                                        0251 00545000
         BAL   @14,ERRMSG                                          0251 00546000
*    RCODE = 16;                                           /*@G51DGVS*/ 00547000
         MVC   RCODE(4),@CF00075                                   0252 00548000
*  END;                                                    /*@G51DGVS*/ 00549000
*ELSE /*ATTEMPTING TO WRITE FRAME                            @G51DGVS*/ 00550000
*  DO;                                                     /*@G51DGVS*/ 00551000
         B     @RC00249                                            0254 00552000
@RF00249 DS    0H                                                  0255 00553000
*    CALL ERRMSG(5);                                       /*@G51DGVS*/ 00554000
         LA    @01,@AL00255                                        0255 00555000
         BAL   @14,ERRMSG                                          0255 00556000
*    RCODE = 8;                                            /*@G51DGVS*/ 00557000
         MVC   RCODE(4),@CF00063                                   0256 00558000
*  END;                                                    /*@G51DGVS*/ 00559000
*ENDOPROC:;                                                /*@G51DGVS*/ 00560000
*END; /*END OF WRITE TO LOGREC PROC                          @G51DGVS*/ 00561000
@EL00005 DS    0H                                                  0259 00562000
@EF00005 DS    0H                                                  0259 00563000
@ER00005 LM    @14,@12,@SA00005                                    0259 00564000
         BR    @14                                                 0259 00565000
         EJECT                                                          00566000
*READSRF: PROC; /*READ SRF, IDENTIFY END OF FILE AND ERROR CONDITIONS*/ 00567000
READSRF  STM   @14,@12,@SA00006                                    0260 00568000
*IF RCODE = SUCCESS THEN DO;                               /*@VS48735*/ 00569000
         SLR   @15,@15                                             0261 00570000
         C     @15,RCODE                                           0261 00571000
         BNE   @RF00261                                            0261 00572000
* SRFIOBCC = ADDR(RDVERB); /*SET ADDRESS OF FUNCTION SELECT CCW     */  00573000
         LA    @14,RDVERB                                          0263 00574000
         ST    @14,SRFIOBCC                                        0263 00575000
* SRFECB = ZERO; /*CLEAR THE EVENT CONTROL BLOCK             @G51DGVS*/ 00576000
         ST    @15,SRFECB                                          0264 00577000
* RDADR  = READPTR + 24; /*PUT ADDR.OF READ BUFF.INTO CHANNEL PROGFRAM* 00578000
         L     @01,READPTR                                         0265 00579000
         LA    @01,24(,@01)                                        0265 00580000
         STCM  @01,7,RDADR                                         0265 00581000
* DO UNTIL POST ^= INTERCPT;/*DO UNTIL REQUEST NOT INTERCEPTED-44*/     00582000
@DL00266 DS    0H                                                  0267 00583000
*   GENERATE REFS(SRFECB,SRFIOB);                          /*@G51DGVS*/ 00584000
         EXCP  SRFIOB      ISSUE SVC 0                                  00585000
         WAIT  ECB=SRFECB  WAIT UNTIL FRAME HAS BEEN READ               00586000
* END;                                                     /*@G51DGVS*/ 00587000
@DE00266 CLI   POST,X'44'                                          0268 00588000
         BE    @DL00266                                            0268 00589000
* IF POST ^= OKAY THEN /*EITHER ERROR OR END OF FILE         @G51DGVS*/ 00590000
         CLI   POST,X'7F'                                          0269 00591000
         BE    @RF00269                                            0269 00592000
*   DO;                                                    /*@G51DGVS*/ 00593000
*     IF POST = EOFMAYBE THEN /*IF POST NON HARD ERROR       @G51DGVS*/ 00594000
         CLI   POST,X'41'                                          0271 00595000
         BNE   @RF00271                                            0271 00596000
*       DO;                                                /*@G51DGVS*/ 00597000
*         IF CHANEND = ON & /*IF CHANNEL END                 @G51DGVS*/ 00598000
*            DEVEND  = ON & /*IF DEVICE END                  @G51DGVS*/ 00599000
*            UNITEXCP = ON & /*IF UNIT EXCEPTION             @G51DGVS*/ 00600000
*            UNCHK = OFF THEN /*IF NOT A UNIT CHECK          @G51DGVS*/ 00601000
         TM    CHANEND,B'00001101'                                 0273 00602000
         BNO   @RF00273                                            0273 00603000
         TM    UNCHK,B'00000010'                                   0273 00604000
         BNZ   @RF00273                                            0273 00605000
*            RCODE = FOUR; /*LEGITIMATE END OF FILE          @G51DGVS*/ 00606000
         MVC   RCODE(4),@CF00073                                   0274 00607000
*         ELSE /*ILLEGITIMATE                                @G51DGVS*/ 00608000
*           DO;                                            /*@G51DGVS*/ 00609000
         B     @RC00273                                            0275 00610000
@RF00273 DS    0H                                                  0276 00611000
*             RCODE = EIGHT; /*UNSUCCESSFUL FRAME READ       @G51DGVS*/ 00612000
         MVC   RCODE(4),@CF00063                                   0276 00613000
*             CALL ERRMSG(7);                              /*@G51DGVS*/ 00614000
         LA    @01,@AL00277                                        0277 00615000
         BAL   @14,ERRMSG                                          0277 00616000
*           END;                                           /*@G51DGVS*/ 00617000
*       END;                                               /*@G51DGVS*/ 00618000
*     ELSE /*HARD ERROR BY DEFAULT                           @G51DGVS*/ 00619000
*       DO;                                                /*@G51DGVS*/ 00620000
         B     @RC00271                                            0280 00621000
@RF00271 DS    0H                                                  0281 00622000
*         RCODE = EIGHT;                                   /*@G51DGVS*/ 00623000
         MVC   RCODE(4),@CF00063                                   0281 00624000
*         CALL ERRMSG(7);                                  /*@G51DGVS*/ 00625000
         LA    @01,@AL00282                                        0282 00626000
         BAL   @14,ERRMSG                                          0282 00627000
*       END;                                               /*@G51DGVS*/ 00628000
*   END;                                                   /*@G51DGVS*/ 00629000
*END;                                      /* END OF READ    @VS48735*/ 00630000
*END; /*END OF PROC READSRF                                  @G51DGVS*/ 00631000
@EL00006 DS    0H                                                  0286 00632000
@EF00006 DS    0H                                                  0286 00633000
@ER00006 LM    @14,@12,@SA00006                                    0286 00634000
         BR    @14                                                 0286 00635000
*VERBPROC:  PROC;         /* PERFORM VERBAGE CCW AND TEST FOR ERROR */  00636000
VERBPROC STM   @14,@12,@SA00007                                    0287 00637000
*IF FRAMTYPS = CCF THEN                                            0288 00638000
         CLI   FRAMTYPS,X'01'                                      0288 00639000
         BNE   @RF00288                                            0288 00640000
*  SRFIOBF1 = '02'X;                                       /*@VS48735*/ 00641000
         MVI   SRFIOBF1,X'02'                                      0289 00642000
*SRFIOBCC = ADDR(VERBAGE);         /* SET ADDR OF VERBAGE CCW        */ 00643000
@RF00288 LA    @15,VERBAGE                                         0290 00644000
         ST    @15,SRFIOBCC                                        0290 00645000
*SRFECB = ZERO;                    /* CLEAR EVENT CTRL BLOCK @VS48735*/ 00646000
         SLR   @15,@15                                             0291 00647000
         ST    @15,SRFECB                                          0291 00648000
*DO UNTIL POST ^= INTERCPT;        /* LOOP UNTIL REQUEST NOT INTRCPTD*/ 00649000
@DL00292 DS    0H                                                  0293 00650000
*  GENERATE REFS(SRFECB,SRFIOB);                           /*@VS48735*/ 00651000
         EXCP  SRFIOB              ISSUE EXCP                           00652000
         WAIT  ECB=SRFECB          WAIT UNTIL ECB IS POSTED             00653000
*END;                                                      /*@VS48735*/ 00654000
@DE00292 CLI   POST,X'44'                                          0294 00655000
         BE    @DL00292                                            0294 00656000
*IF POST ^= OKAY THEN              /* IF FRAME READ FAILED   @VS48735*/ 00657000
         CLI   POST,X'7F'                                          0295 00658000
         BE    @RF00295                                            0295 00659000
*  DO;                                                     /*@VS48735*/ 00660000
*    CALL ERRMSG(12);                                      /*@VS48735*/ 00661000
         LA    @01,@AL00297                                        0297 00662000
         BAL   @14,ERRMSG                                          0297 00663000
*    RCODE = EIGHT;                                        /*@VS48735*/ 00664000
         MVC   RCODE(4),@CF00063                                   0298 00665000
*  END;                                                    /*@VS48735*/ 00666000
*END;                              /* END OF VERBPROC PROC   @VS48735*/ 00667000
@EL00007 DS    0H                                                  0300 00668000
@EF00007 DS    0H                                                  0300 00669000
@ER00007 LM    @14,@12,@SA00007                                    0300 00670000
         BR    @14                                                 0300 00671000
*ERRMSG: PROC(MSGNO); /*WRITE TO THE OPERATOR ERROR MESSAGES AND*/ 0301 00672000
ERRMSG   STM   @14,@12,@SA00008                                    0301 00673000
         MVC   @PC00008(4),0(@01)                                  0301 00674000
*                     /*END OF JOB TEXT                      @G51DGVS*/ 00675000
*DCL MSGNO FIXED(31); /*MESSAGE NUMBER PASSED TO THIS PROC   @G51DGVS*/ 00676000
*IF MSGNO = 1 THEN                                                 0303 00677000
         L     @15,@PC00008                                        0303 00678000
         CLC   MSGNO(4,@15),@CF00054                               0303 00679000
         BNE   @RF00303                                            0303 00680000
*  DO;                                                     /*@G51DGVS*/ 00681000
*    CALL BUILDTXT; /*MODIFY WTO MESSAGE TEXT                @G51DGVS*/ 00682000
         BAL   @14,BUILDTXT                                        0305 00683000
*    GENERATE;                                             /*@G51DGVS*/ 00684000
* MSG ALIGNMENT=         *+19   *+26 *+31       *+42       *+53         00685000
         CNOP  0,4                      ALIGN MODIFIED TEXT             00686000
COMPLETE WTO   'IFC001I  D=XXXX N=0Y F=CCCCHHHH L=CCCCHHHH S=CCCCHHHH02X00687000
                DIP COMPLETE',ROUTCDE=(1),DESC=(6)                      00688000
*  END; /*END OF GENERATING MESSAGE 1                        @G51DGVS*/ 00689000
*ELSE /*NOT MESSAGE ONE                                      @G51DGVS*/ 00690000
*  DO;                                                     /*@G51DGVS*/ 00691000
         B     @RC00303                                            0308 00692000
@RF00303 DS    0H                                                  0309 00693000
*    IF MSGNO = 2 THEN                                             0309 00694000
         L     @15,@PC00008                                        0309 00695000
         CLC   MSGNO(4,@15),@CF00098                               0309 00696000
         BNE   @RF00309                                            0309 00697000
*      DO;                                                 /*@G51DGVS*/ 00698000
*        GENERATE;                                         /*@G51DGVS*/ 00699000
         WTO   'IFC002I SYS1.LOGREC CANNOT BE OPENED',ROUTCDE=(1),     X00700000
               DESC=(6)                                                 00701000
*      END;                                                /*@G51DGVS*/ 00702000
*    ELSE /*NOT 1 NOR 2                                      @G51DGVS*/ 00703000
*      DO;                                                 /*@G51DGVS*/ 00704000
         B     @RC00309                                            0313 00705000
@RF00309 DS    0H                                                  0314 00706000
*        IF MSGNO = 3 THEN                                         0314 00707000
         L     @15,@PC00008                                        0314 00708000
         CLC   MSGNO(4,@15),@CF00095                               0314 00709000
         BNE   @RF00314                                            0314 00710000
*          DO;                                             /*@G51DGVS*/ 00711000
*            RCODE = SIXTEEN; /*PREVENT FURTHER PROCESSING   @G51DGVS*/ 00712000
         MVC   RCODE(4),@CF00075                                   0316 00713000
*            GENERATE;                                     /*@G51DGVS*/ 00714000
         WTO   'IFC003I SYS1.LOGREC HEADER WRITE ERROR',ROUTCDE=(1),   X00715000
               DESC=(6)                                                 00716000
*          END;                                            /*@G51DGVS*/ 00717000
*        ELSE /*NOT 1,2,3                                    @G51DGVS*/ 00718000
*          DO;                                             /*@G51DGVS*/ 00719000
         B     @RC00314                                            0319 00720000
@RF00314 DS    0H                                                  0320 00721000
*            IF MSGNO = 5 THEN                                     0320 00722000
         L     @15,@PC00008                                        0320 00723000
         CLC   MSGNO(4,@15),@CF00244                               0320 00724000
         BNE   @RF00320                                            0320 00725000
*              DO;                                         /*@G51DGVS*/ 00726000
*              GENERATE;                                   /*@G51DGVS*/ 00727000
         WTO   'IFC005I SYS1.LOGREC FRAME WRITE ERROR',ROUTCDE=(1),    X00728000
               DESC=(6)                                                 00729000
*              END;                                        /*@G51DGVS*/ 00730000
*            ELSE /*NOT 1,2,3,5                              @G51DGVS*/ 00731000
*              DO;                                         /*@G51DGVS*/ 00732000
         B     @RC00320                                            0324 00733000
@RF00320 DS    0H                                                  0325 00734000
*                IF MSGNO = 4 THEN                                 0325 00735000
         L     @15,@PC00008                                        0325 00736000
         CLC   MSGNO(4,@15),@CF00073                               0325 00737000
         BNE   @RF00325                                            0325 00738000
*                  DO;                                     /*@G51DGVS*/ 00739000
*                    GENERATE;                             /*@G51DGVS*/ 00740000
         WTO   'IFC004I SYS1.LOGREC ALLOCATION TOO SMALL FOR FRAMES',  X00741000
               ROUTCDE=(1),DESC=(6)                                     00742000
*                  END;                                    /*@G51DGVS*/ 00743000
*                ELSE /*NOT 1,2,3,4,5                        @G51DGVS*/ 00744000
*                  DO;                                     /*@G51DGVS*/ 00745000
         B     @RC00325                                            0329 00746000
@RF00325 DS    0H                                                  0330 00747000
*                    IF MSGNO = 6 THEN                             0330 00748000
         L     @15,@PC00008                                        0330 00749000
         CLC   MSGNO(4,@15),@CF00068                               0330 00750000
         BNE   @RF00330                                            0330 00751000
*                      DO;                                 /*@G51DGVS*/ 00752000
*                      GENERATE;                           /*@G51DGVS*/ 00753000
         WTO   'IFC006I SRF CANNOT BE OPENED',ROUTCDE=(1),DESC=(6)      00754000
*                      END;                                /*@G51DGVS*/ 00755000
*                    ELSE /*NOT 1,2,3,4,5, OR 6              @G51DGVS*/ 00756000
*                      DO;                                 /*@G51DGVS*/ 00757000
         B     @RC00330                                            0334 00758000
@RF00330 DS    0H                                                  0335 00759000
*                        IF MSGNO = 7 THEN                         0335 00760000
         L     @15,@PC00008                                        0335 00761000
         CLC   MSGNO(4,@15),@CF00241                               0335 00762000
         BNE   @RF00335                                            0335 00763000
*                          DO;                             /*@G51DGVS*/ 00764000
*                            CALL FILLMESS; /*FILL IN SPECIFICS OF MES* 00765000
         BAL   @14,FILLMESS                                        0337 00766000
*                            GENERATE;                     /*@G51DGVS*/ 00767000
SRFWTO   WTO   'IFC007I SRF READ ERROR SENSE=SSSS,CSW=CCCCCCCCCCCCCC,DDX00768000
               =FRAME   ',ROUTCDE=(1),DESC=(6)                          00769000
*                          END;                            /*@G51DGVS*/ 00770000
*                        ELSE /*NOT 1,2,3,4,5,6,7            @G51DGVS*/ 00771000
*                          DO;                             /*@G51DGVS*/ 00772000
         B     @RC00335                                            0340 00773000
@RF00335 DS    0H                                                  0341 00774000
*                            IF MSGNO = 8 THEN                     0341 00775000
         L     @15,@PC00008                                        0341 00776000
         CLC   MSGNO(4,@15),@CF00063                               0341 00777000
         BNE   @RF00341                                            0341 00778000
*                              DO;                         /*@G51DGVS*/ 00779000
*                              GENERATE;                   /*@G51DGVS*/ 00780000
         WTO   'IFC008I MORE THAN 50 FRAMES IN SET',ROUTCDE=(1),       *00781000
               DESC=(6)                                                 00782000
*                              END;                        /*@G51DGVS*/ 00783000
*                            ELSE /*NOT 1,2,3,4,5,6,7,8      @G51DGVS*/ 00784000
*                              DO;                         /*@G51DGVS*/ 00785000
         B     @RC00341                                            0345 00786000
@RF00341 DS    0H                                                  0346 00787000
*                                IF MSGNO = 9 THEN                 0346 00788000
         L     @15,@PC00008                                        0346 00789000
         CLC   MSGNO(4,@15),@CF00296                               0346 00790000
         BNE   @RF00346                                            0346 00791000
*                                  DO;                     /*@G51DGVS*/ 00792000
*                                  RCODE = SIXTEEN; /*ABORT  @G51DGVS*/ 00793000
         MVC   RCODE(4),@CF00075                                   0348 00794000
*                                  GENERATE;               /*@G51DGVS*/ 00795000
         WTO   'IFC009I INVALID SYSTEM RESIDENCE DEVICE',ROUTCDE=(1),  X00796000
               DESC=(6)                                                 00797000
*                                  END;                    /*@G51DGVS*/ 00798000
*                                ELSE /*NOT 1,2,3,4,5,6,7,8,9*/    0351 00799000
*                                  DO;                     /*@G51DGVS*/ 00800000
         B     @RC00346                                            0351 00801000
@RF00346 DS    0H                                                  0352 00802000
*                                    IF MSGNO = 10 THEN            0352 00803000
         L     @15,@PC00008                                        0352 00804000
         CLC   MSGNO(4,@15),@CF00032                               0352 00805000
         BNE   @RF00352                                            0352 00806000
*                                      DO;                 /*@G51DGVS*/ 00807000
*                                      GENERATE;           /*@G51DGVS*/ 00808000
         WTO   'IFC155I FRAME SET MISSING',ROUTCDE=(1),DESC=(6)         00809000
*                                      END;                /*@G51DGVS*/ 00810000
*                                    ELSE IF MSGNO = 11 THEN       0356 00811000
         B     @RC00352                                            0356 00812000
@RF00352 L     @15,@PC00008                                        0356 00813000
         CLC   MSGNO(4,@15),@CF00033                               0356 00814000
         BNE   @RF00356                                            0356 00815000
*                                      DO;                 /*@G51DGVS*/ 00816000
*                                      GENERATE;           /*@G51DGVS*/ 00817000
         WTO   'IFC156I INVALID PARM FIELD',ROUTCDE=(1),DESC=(6)        00818000
*                                      END;                /*@G51DGVS*/ 00819000
*                                  END;                    /*@G51DGVS*/ 00820000
@RF00356 DS    0H                                                  0360 00821000
@RC00352 DS    0H                                                  0361 00822000
*                              END;                        /*@G51DGVS*/ 00823000
@RC00346 DS    0H                                                  0362 00824000
*                          END;                            /*@G51DGVS*/ 00825000
@RC00341 DS    0H                                                  0363 00826000
*                      END;                                /*@G51DGVS*/ 00827000
@RC00335 DS    0H                                                  0364 00828000
*                  END;                                    /*@G51DGVS*/ 00829000
@RC00330 DS    0H                                                  0365 00830000
*              END;                                        /*@G51DGVS*/ 00831000
@RC00325 DS    0H                                                  0366 00832000
*          END;                                            /*@G51DGVS*/ 00833000
@RC00320 DS    0H                                                  0367 00834000
*      END;                                                /*@G51DGVS*/ 00835000
@RC00314 DS    0H                                                  0368 00836000
*   END;                                                   /*@G51DGVS*/ 00837000
@RC00309 DS    0H                                                  0369 00838000
* IF MSGNO = TWELVE THEN                                           0369 00839000
@RC00303 L     @15,@PC00008                                        0369 00840000
         CLC   MSGNO(4,@15),@CF00034                               0369 00841000
         BNE   @RF00369                                            0369 00842000
*   DO;                                                    /*@G51DGVS*/ 00843000
*     GENERATE;                                            /*@G51DGVS*/ 00844000
         WTO   'IFC157I VERBAGE FAILURE',ROUTCDE=(1),DESC=(6)           00845000
*   END;                                                   /*@G51DGVS*/ 00846000
*END; /*END OF PROC ERRMSG                                   @G51DGVS*/ 00847000
@EL00008 DS    0H                                                  0373 00848000
@EF00008 DS    0H                                                  0373 00849000
@ER00008 LM    @14,@12,@SA00008                                    0373 00850000
         BR    @14                                                 0373 00851000
*FILLMESS: PROC; /*INSERT SENSE BYTES, CSW, AND DDNAME INTO  @G51DGVS*/ 00852000
FILLMESS STM   @14,@12,@SA00009                                    0374 00853000
*                /*ERROR MESSAGE NUMBER SEVEN                @G51DGVS*/ 00854000
*RESPECIFY (R2,R3,R5) RESTRICTED;                          /*@G51DGVS*/ 00855000
*R5 = ADDR(SRFIOBS1); /*ADDRESS OF SENSE BYTE ONE FROM IOB   @G51DGVS*/ 00856000
         LA    R5,SRFIOBS1                                         0376 00857000
*R2 = ADDR(DSENSE);   /*LOCATION TO BE PLACED IN GENERATED WTO*/   0377 00858000
         LA    R2,DSENSE                                           0377 00859000
*R3 = FOUR;           /*NUMBER OF PRINTABLE CHARACTERS       @G51DGVS*/ 00860000
         LA    R3,4                                                0378 00861000
*CALL UNPACK;            /*ROUTINE TO CONVERT TO PRINTABLE CHARACTERS*/ 00862000
         BAL   @14,UNPACK                                          0379 00863000
*R5 = ADDR(SRFIOBCS); /*ADDRESS OF LOW ORDER 7 BYTES OF CSW  @G51DGVS*/ 00864000
         LA    R5,SRFIOBCS                                         0380 00865000
*R2 = ADDR(DCSW);     /*LOCATION TO BE PLACED IN GENERATED WTO*/   0381 00866000
         LA    R2,DCSW                                             0381 00867000
*R3 = EIGHT;          /*NUMBER OF PRINTABLE CHARACTERS       @G51DGVS*/ 00868000
         LA    R3,8                                                0382 00869000
*CALL UNPACK;            /*CONVERT                           @G51DGVS*/ 00870000
         BAL   @14,UNPACK                                          0383 00871000
*R5 = ADDR(SRFIOBCS) + 4; /* ADDR OF LAST THREE BYTES OF CSW @G51DGVS*/ 00872000
         LA    R5,SRFIOBCS                                         0384 00873000
         AL    R5,@CF00073                                         0384 00874000
*R2 = ADDR(DCSW2);    /*WHERE PLACED IN WTO MESSAGE          @G51DGVS*/ 00875000
         LA    R2,DCSW2                                            0385 00876000
*R3 = SIX;          /*3 BYTES LEFT TO BE CONVERTED           @G51DGVS*/ 00877000
         LA    R3,6                                                0386 00878000
*CALL UNPACK;           /*CONVERT                            @G51DGVS*/ 00879000
         BAL   @14,UNPACK                                          0387 00880000
*RESPECIFY (R2,R3,R5) UNRESTRICTED;                        /*@G51DGVS*/ 00881000
*END;  /*END OF PROC FILLMESS                                @G51DGVS*/ 00882000
@EL00009 DS    0H                                                  0389 00883000
@EF00009 DS    0H                                                  0389 00884000
@ER00009 LM    @14,@12,@SA00009                                    0389 00885000
         BR    @14                                                 0389 00886000
*GETSER: PROC; /*RETRIEVE AND FORMAT CPU SERIAL NUMBER AND CPU VERSION* 00887000
GETSER   STM   @14,@12,@SA00010                                    0390 00888000
*GENERATE REFS(STCPUID);                                   /*@G51DGVS*/ 00889000
         MODESET MODE=SUP     CHANGE FROM PROBLEM TO SUPERVISOR STATE   00890000
*                             MUST BE AUTHORIZED PROGRAM                00891000
         STIDP STCPUID        ISSUE STORE CPU-ID                        00892000
         MODESET MODE=PROB    CHANGE BACK TO PROBLEM PROGRAM STATE      00893000
*END; /*END OF PROC GETSER                                   @G51DGVS*/ 00894000
@EL00010 DS    0H                                                  0392 00895000
@EF00010 DS    0H                                                  0392 00896000
@ER00010 LM    @14,@12,@SA00010                                    0392 00897000
         BR    @14                                                 0392 00898000
*OPENSRF: PROC; /*ISSUE OPEN AND ENABLE FOR SRF              @G51DGVS*/ 00899000
OPENSRF  STM   @14,@12,@SA00011                                    0393 00900000
*GEN(OI   SRFDCB+49,X'0C'   SET IFLAGS);                   /*@ZA32455*/ 00901000
         OI   SRFDCB+49,X'0C'   SET IFLAGS                              00902000
*GEN(OPEN (SRFDCB,INPUT)); /*ISSUE OPEN MACRO                @G51DGVS*/ 00903000
         OPEN (SRFDCB,INPUT)                                            00904000
*IF (SRFDCBFL & OPENOK) ^= OPENOK THEN /*IF OPEN WAS NOT SUCCESSFUL*/   00905000
         MVC   @TS00001(1),SRFDCBFL                                0396 00906000
         NI    @TS00001,X'10'                                      0396 00907000
         CLI   @TS00001,X'10'                                      0396 00908000
         BE    @RF00396                                            0396 00909000
*  RCODE = TWELVE; /*INDICATE NO FRAMES CAN BE RETRIEVED     @G51DGVS*/ 00910000
         MVC   RCODE(4),@CF00034                                   0397 00911000
*ELSE /*SUCCESSFUL OPEN                                      @G51DGVS*/ 00912000
* DO;                                                      /*@G51DGVS*/ 00913000
         B     @RC00396                                            0398 00914000
@RF00396 DS    0H                                                  0399 00915000
*   /*POST IS INITIALIZED TO 00                              @G51DGVS*/ 00916000
*   /*SRFIOBF1 INDICATING NEITHER COMMAND NOR DATA CHAINING IS ZERO*/   00917000
*   /*SRFIOBCC POINTS TO THE ENABLE CHANNEL PROGRAM          @G51DGVS*/ 00918000
*   DO UNTIL POST ^= INTERCPT; /*LOOP UNTIL IO REQUEST HAS NOT BEEN*/   00919000
@DL00399 DS    0H                                                  0400 00920000
*                              /*INTERCEPTED                 @G51DGVS*/ 00921000
*     GENERATE REFS(SRFIOB,SRFECB);                        /*@G51DGVS*/ 00922000
         EXCP  SRFIOB         ISSUE SVC 0                               00923000
         WAIT  ECB=SRFECB     WAIT UNTIL ENABLE HAS BEEN SUCCESSFUL     00924000
*   END;                                                   /*@G51DGVS*/ 00925000
@DE00399 CLI   POST,X'44'                                          0401 00926000
         BE    @DL00399                                            0401 00927000
*   IF POST ^= OKAY THEN  /*IF POST NOT 7F THEN ENABLE FAILED*/    0402 00928000
         CLI   POST,X'7F'                                          0402 00929000
         BE    @RF00402                                            0402 00930000
*     RCODE = TWELVE;                                      /*@G51DGVS*/ 00931000
         MVC   RCODE(4),@CF00034                                   0403 00932000
* END;                                                     /*@G51DGVS*/ 00933000
*END; /*END OF PROC OPENSRF                                  @G51DGVS*/ 00934000
@EL00011 DS    0H                                                  0405 00935000
@EF00011 DS    0H                                                  0405 00936000
@ER00011 LM    @14,@12,@SA00011                                    0405 00937000
         BR    @14                                                 0405 00938000
*CLOSESRF: PROC; /*DISABLE AND CLOSE THE SRF                 @G51DGVS*/ 00939000
CLOSESRF STM   @14,@12,@SA00012                                    0406 00940000
*    SRFIOBF1 = '00'X; /*SPECIFY TYPE OF CHANNEL PROGRAM IN IOB*/  0407 00941000
         MVI   SRFIOBF1,X'00'                                      0407 00942000
*    SRFIOBCC = ADDR(DISABLE); /*LOCATE CHANNEL PROGRAM FOR IOB*/  0408 00943000
         LA    @15,DISABLE                                         0408 00944000
         ST    @15,SRFIOBCC                                        0408 00945000
*    SRFECB = ZERO; /*ZERO EVENT CONTROL BLOCK               @G51DGVS*/ 00946000
         SLR   @15,@15                                             0409 00947000
         ST    @15,SRFECB                                          0409 00948000
*    DO UNTIL POST ^= INTERCPT; /*LOOP UNTIL IO REQUEST HAS NOT BEEN*/  00949000
@DL00410 DS    0H                                                  0411 00950000
*                            /*INTERCEPTED                   @G51DGVS*/ 00951000
*      GENERATE REFS(SRFIOB,SRFECB);                       /*@G51DGVS*/ 00952000
         EXCP  SRFIOB    ISSUE SVC 0                                    00953000
         WAIT  ECB=SRFECB  WAIT UNTIL DISABLE IS SUCCESSFULL. DONT      00954000
*                          CHECK IF FAILS WHO CARES                     00955000
*    END;                                                  /*@G51DGVS*/ 00956000
@DE00410 CLI   POST,X'44'                                          0412 00957000
         BE    @DL00410                                            0412 00958000
*    GEN(CLOSE (SRFDCB,LEAVE)); /*CLOSE SRF DEVICE           @G51DGVS*/ 00959000
         CLOSE (SRFDCB,LEAVE)                                           00960000
*   END; /*END OF PROC CLOSESRF                              @G51DGVS*/ 00961000
@EL00012 DS    0H                                                  0414 00962000
@EF00012 DS    0H                                                  0414 00963000
@ER00012 LM    @14,@12,@SA00012                                    0414 00964000
         BR    @14                                                 0414 00965000
*BUILDFRH: PROC; /*BUILD CONSTANT PORTION OF FRAME HEADER    @G51DGVS*/ 00966000
BUILDFRH STM   @14,@12,@SA00013                                    0415 00967000
*RESPECIFY (R0,R1) RESTRICTED;                             /*@G51DGVS*/ 00968000
*PACK(HOLD,CVTRELNO); /*PACK EBCDIC RELEASE NUMBER           @G51DGVS*/ 00969000
         LA    @15,16                                              0417 00970000
         L     @15,CVTBASE(,@15)                                   0417 00971000
         AL    @15,@CF00358                                        0417 00972000
         PACK  HOLD(8),CVTRELNO-2(2,@15)                           0417 00973000
*CVB(RECSYSS,HOLD); /*PLACE BINARY RELEASE IN THE HEADING    @G51DGVS*/ 00974000
         CVB   @15,HOLD                                            0418 00975000
         STC   @15,RECSYSS                                         0418 00976000
*GENERATE;                                                 /*@G51DGVS*/ 00977000
         TIME  DEC                     ISSUE TIME MACRO                 00978000
*        RECTIME = R0; /*GET HH MM SS TH TIME                @G51DGVS*/ 00979000
         STCM  R0,15,RECTIME                                       0420 00980000
*        RECDAT  = R1; /*GET 00YYDDDC FROM TIME MACRO        @G51DGVS*/ 00981000
         STCM  R1,15,RECDAT                                        0421 00982000
*RESPECIFY (R0,R1) UNRESTRICTED;                           /*@G51DGVS*/ 00983000
*        IF (CVTDCB & '22'X) = '22'X THEN /*IF VS1 AND DYN.ADR.TRANS*/  00984000
         LA    @01,16                                              0423 00985000
         L     @01,CVTBASE(,@01)                                   0423 00986000
         MVC   @TS00001(1),CVTDCB(@01)                             0423 00987000
         NI    @TS00001,X'22'                                      0423 00988000
         CLI   @TS00001,X'22'                                      0423 00989000
         BNE   @RF00423                                            0423 00990000
*          RECSYS = (RECSYS | '40'X);  /*SET VS1 BITS ON     @G51DGVS*/ 00991000
         OI    RECSYS,X'40'                                        0424 00992000
*        IF (CVTDCB & '12'X) = '12'X |    /*IF MVS OR SVS AND DY.ADR*/  00993000
*           (CVTDCB & '11'X) = '11'X THEN /*IF MVS           @G51DGVS*/ 00994000
@RF00423 LA    @01,16                                              0425 00995000
         L     @15,CVTBASE(,@01)                                   0425 00996000
         MVC   @TS00001(1),CVTDCB(@15)                             0425 00997000
         NI    @TS00001,X'12'                                      0425 00998000
         CLI   @TS00001,X'12'                                      0425 00999000
         BE    @RT00425                                            0425 01000000
         MVC   @TS00001(1),CVTDCB(@15)                             0425 01001000
         NI    @TS00001,X'11'                                      0425 01002000
         CLI   @TS00001,X'11'                                      0425 01003000
         BNE   @RF00425                                            0425 01004000
@RT00425 DS    0H                                                  0426 01005000
*          RECSYS = (RECSYS | '80'X);  /*SET VS2 BITS ON     @G51DGVS*/ 01006000
         OI    RECSYS,X'80'                                        0426 01007000
*        RECCPU = STCPUID; /*PUT CPU VERSION, CPU MODEL ,CPU SERIAL, */ 01008000
@RF00425 MVC   RECCPU(8),STCPUID                                   0427 01009000
*                         /*AND MAXIMUM EXTENDED LOGOUT LENGTH IN HDR*/ 01010000
*END; /*END OF PROC BUILDFRH                                 @G51DGVS*/ 01011000
@EL00013 DS    0H                                                  0428 01012000
@EF00013 DS    0H                                                  0428 01013000
@ER00013 LM    @14,@12,@SA00013                                    0428 01014000
         BR    @14                                                 0428 01015000
*REDOHDR:PROC; /*RECREATE HEADER TO REFLECT FRAMES           @G51DGVS*/ 01016000
REDOHDR  STM   @14,@12,@SA00014                                    0429 01017000
*RESPECIFY (R0,R1,R2,R3,R14,R15) RESTRICTED;               /*@G51DGVS*/ 01018000
*R0 = TTRSAVE; /*LOAD ADDRESS OF LAST WRITTEN RECORD         @G51DGVS*/ 01019000
         L     R0,TTRSAVE                                          0431 01020000
*R2 = ADDR(MBBCCHHR); /*PASS CORE LOCATION FOR ABSOLUTE ADDRESS*/  0432 01021000
         LA    R2,MBBCCHHR                                         0432 01022000
*R15 = CVTPCNVT; /*LOAD ADDRESS OF CONVERSION ROUTINE        @G51DGVS*/ 01023000
         LA    @09,16                                              0433 01024000
         L     @09,CVTBASE(,@09)                                   0433 01025000
         L     R15,CVTPCNVT(,@09)                                  0433 01026000
*GENERATE;                                                 /*@G51DGVS*/ 01027000
         LA    1,DIPDCB   PUT SERERDS DCB ADDRESS IN REG 1              01028000
         L     1,DCBDEBAD(1) LOAD DATA EXTENT BLOCK ADDRESS FROM DCB    01029000
         LA    3,MYSAVE   ADDRESS MYSAVE WITHOUT NORMAL BASE REGISTER   01030000
         STM   9,13,0(3)  SAVE REGISTERS USED BY CONVERSION ROUTINE     01031000
         BALR  14,15      LINK TO RELATIVE TO ABSOLUTE D.A. CONV. ROUT. 01032000
         LM    9,13,0(3)  RESTORE DIP REGISTERS                         01033000
*RESPECIFY (R0,R1,R2,R3,R14,R15) UNRESTRICTED;             /*@G51DGVS*/ 01034000
*GENERATE REFS(BBCCHHR);                                   /*@G51DGVS*/ 01035000
         MVC   RESTAREA(L7),BBCCHHR   RESTART ADDRESS IN HEADER         01036000
         MVC   LASTREU(L7),RESTAREA  LAST RECORD WRITTEN LOCATION       01037000
         MVC   BYTREM(L2),ARBSMALL   BYTES REMAINING ON LAST FRAME TRK  01038000
         OI    SWITCHES,HDFRSW       SET FRAMES EXIST SWITCH            01039000
*END; /*END OF PROC REDOHDR                                  @G51DGVS*/ 01040000
@EL00014 DS    0H                                                  0437 01041000
@EF00014 DS    0H                                                  0437 01042000
@ER00014 LM    @14,@12,@SA00014                                    0437 01043000
         BR    @14                                                 0437 01044000
*GETDEV: PROC;                                             /*@G51DGVS*/ 01045000
GETDEV   STM   @14,@12,@SA00015                                    0438 01046000
*RESPECIFY (R2,R4,R5,R6,R7) RESTRICTED;                    /*@G51DGVS*/ 01047000
*GENERATE REFS(BADRES,ENDGETDV);                           /*@G51DGVS*/ 01048000
*****************************************************************       01049000
*  THIS SECTION OBTAINS TABLE DATA CORRESPONDING TO THE         *       01050000
*  SPECIFIED DEVICE CODE. DEVICE CODE IS OBTAINED FROM THE      *       01051000
*  DCB FIELD DCBDEVT (DCB+17).                                  *       01052000
*****************************************************************       01053000
         MVC   DEVTYPE(L1),DCBDEVT      DEVICE TYPE CODE                01054000
         LA    WORK1,DEVTAB             DEVICE DATA TABLE               01055000
SEARCH   CLC   DEVTYPE(L1),L0(WORK1)    LOOK FOR ENTRY FOR DEVICE       01056000
         BE    SRCHFIN                  BR--SEARCH SUCCESSFUL           01057000
         LA    WORK1,L14(WORK1)         UPDATE FOR NEXT DEVICE          01058000
         CLI   L0(WORK1),CB            IS THIS THE END OF THE TABLE     01059000
         BE    BADRES                   BR--IMPROPER DEVICE             01060000
         B     SEARCH                   NEXT ENTRY                      01061000
SRCHFIN  NI    DEVTYPE,DEVMASK          AND OUT HIGH DIGITS             01062000
         LR    DEVTABLE,WORK1           DEVICE TABLE REGISTER           01063000
*********************************************************************** 01064000
*   THIS SECTION FORMATS HEADER RECORD INFORMATION RETRIEVED FROM     * 01065000
*   DEVTABLE AND THE DEB FOR SYS1.LOGREC                              * 01066000
*********************************************************************** 01067000
         LA    WORK1,DIPDCB             DCB ADDRESS                     01068000
         L     WORK6,DCBDEBAD(WORK1)    DEB ADDRESS                     01069000
BLDHDR   MVC   EXTENT(L8),DEBSTR(WORK6) EXTENT OF SYS1.LOGREC           01070000
         MVC   BUFFER(L2),DEBNMTRK(WORK6) TOTAL TRACKS IN EXTENT        01071000
*********************************************************************** 01072000
*THIS CODE ADDED TO ENSURE THAT DO NOT ATTEMPT TO WRITE PAST            01073000
*SYS1.LOGREC EXTENT WHEN WRITING FRAMES TO SYS1.LOGREC                  01074000
         XR    WORK3,WORK3                                              01075000
         LH    WORK4,BT(DEVTABLE)      LOAD BYTES PER TRACK,SYSRES      01076000
         D     WORK3,BYTPFRM    DIVIDE BY BYTES PER FRAME PLUS IRG      01077000
         LH    WORK3,DEBNMTRK(WORK6)   GET TOTAL TRACKS IN LOGREC       01078000
         BCTR  WORK3,0         CHANGE TO RELATIVE TRACK NUMBER          01079000
         BCTR  WORK3,0         MAKE ROOM FOR DUMMY END OF FILE          01080000
         SLL   WORK3,16        MOVE TO HIGH ORDER HALF WORD IN REG      01081000
         SLL   WORK4,8         MOVE FRAMES PER TRACK TO REL. R LOC.     01082000
         OR    WORK3,WORK4     ASSEMBLE MAXIMUM TTR0 IN WORK3           01083000
         ST    WORK3,MAXTTR    SAVE FOR COMPARE WHILE WRITING           01084000
*CODE ABOVE CREATES ARTIFICIAL TTR0 FOR COMPARE TO NOTE RESULT          01085000
         MVC   TRKPERCY(L2),TC(DEVTABLE) TRACKS/CYLINDER                01086000
         MVC   BYTREM(L2),BTFT(DEVTABLE) BYTES REMAINING ON TRACK       01087000
         MVC   BYTONTRK(L2),BT(DEVTABLE) TOTAL BYTES ON TRACK           01088000
         MVC   DEVCODE(L1),DEVTYPE      DEVICE CODE                     01089000
         MVI   CHKBYTE,CB               CHECK BYTE                      01090000
         MVI   MSGCNT,HEX00      LOGREC FULL MSG COUNT                  01091000
         ST    DEVTABLE,DEVSTORE SAVE DEVICE TABLE ENTRY ADDRESS        01092000
         ST    WORK6,DEBADR      SAVE DATA EXTENT BLOCK ADDRESS         01093000
         B     ENDGETDV          GO TO END OF THE PROC                  01094000
*BADRES:;                                                  /*@G51DGVS*/ 01095000
BADRES   DS    0H                                                  0442 01096000
*        CALL ERRMSG(9);   /* IDENTIFY ILLEGAL SYSRES DEVICE @G51DGVS*/ 01097000
         LA    @01,@AL00442                                        0442 01098000
         BAL   @14,ERRMSG                                          0442 01099000
*        RCODE = SIXTEEN; /*DONT FORMAT SYS1.LOGREC          @G51DGVS*/ 01100000
         MVC   RCODE(4),@CF00075                                   0443 01101000
*ENDGETDV:;                                                /*@G51DGVS*/ 01102000
*RESPECIFY (R2,R4,R5,R6,R7) UNRESTRICTED;                  /*@G51DGVS*/ 01103000
*END; /*END OF PROC GETDEV                                   @G51DGVS*/ 01104000
@EL00015 DS    0H                                                  0446 01105000
@EF00015 DS    0H                                                  0446 01106000
@ER00015 LM    @14,@12,@SA00015                                    0446 01107000
         BR    @14                                                 0446 01108000
         EJECT                                                          01109000
*RECSTRT: PROC;                                            /*@G51DGVS*/ 01110000
RECSTRT  STM   @14,@12,@SA00016                                    0447 01111000
*RESPECIFY (R2,R3,R4,R6,R7) RESTRICTED;                    /*@G51DGVS*/ 01112000
*GENERATE;                                                 /*@G51DGVS*/ 01113000
*********************************************************************** 01114000
*   THIS SECTION WILL COMPUTE THE START OF THE RECORD ENTRY AREA -    * 01115000
*   ALWAYS LOCATED AFTER THE HEADER RECORD. ALSO CALCULATION    *       01116000
*   OF THE 90 PERCENT FULL POINT OF THE DATA SET.               *       01117000
*********************************************************************** 01118000
         L     DEVTABLE,DEVSTORE        GET DEVICE TABLE ENTRY ADDR.    01119000
         L     WORK6,DEBADR             GET DATA EXTENT BLOCK ADDR.     01120000
         MVC   RESTARCC(L4),EXTENT      MOVE LOW EXT INTO RESTART       01121000
         MVI   RESTARID,L2              ID OF TWO-HEADER RECORD-        01122000
         MVC   LASTREU(L7),RESTAREA     MAKE LAST USED THE SAME         01123000
         LH    WORK1,BT90P(DEVTABLE)    GET 90 PERCENT POINT            01124000
         MH    WORK1,BUFFER             MULTIPLY TO GET 90 PER          01125000
         LH    WORK2,BT(DEVTABLE)       BYTES/TRACK                     01126000
         XR    WORK3,WORK3              CLEAR REG                       01127000
UPDA     CLR   WORK1,WORK2              COMPARE BYTES/TRK WITH          01128000
*                                        90 PERCENT POINT               01129000
         BL    UPDAT                    BRANCH--90 PERCENT LOWER        01130000
         SR    WORK1,WORK2              SUBT BYTES                      01131000
         LA    WORK3,L1(WORK3)          DEVELOP TTR-90 PER TRK          01132000
         B     UPDA                     AGAIN                           01133000
UPDAT    SR    WORK2,WORK1              SUBTRACT FROM MAXIMUM           01134000
         STH   WORK2,BUFFER             SAVE REMAINDER BYTES            01135000
         MVC   EWMC(L2),BUFFER          EARLY WARN MESSAGE COUNT        01136000
         LH    WORK1,TC(DEVTABLE)       TRACKS/CYLINDER                 01137000
         LH    WORK2,EXTENTLH           LOW EXTENT                      01138000
         AR    WORK2,WORK3              ACTUAL TRK ADDRESS              01139000
         LA    WORK1,L1(WORK1)          ADD ONE FOR HIGH TRK ADR        01140000
         XR    WORK3,WORK3              CLEAR REG                       01141000
UPDATE   CLR   WORK2,WORK1              COMPARE TRKS/CYL WITH           01142000
*                                        90 PERCENT TRACK               01143000
         BL    UPDATE1                  BRANCH--90 PERCENT LOW          01144000
         SR    WORK2,WORK1              SUBT TRACKS                     01145000
         LA    WORK3,L1(WORK3)          DEVELOP CYLINDER INCR           01146000
         B     UPDATE                   CONTINUE                        01147000
UPDATE1  STH   WORK2,BUFFERTA           SAVE TRACK ADDRESS              01148000
         LH    WORK2,EXTENT             STARTING CYLINDER ADR           01149000
         AR    WORK2,WORK3              ADD IN CYLINDER INCREMENT       01150000
         STH   WORK2,BUFFER             STORE IT                        01151000
         MVC   EWMT(L4),BUFFER          MOVE IT TO 90 PERCENT           01152000
*                                        TRACK POINTER FIELD            01153000
         MVI   SWITCHES,L0              CLEAR SWITCH AREA               01154000
*RESPECIFY (R2,R3,R4,R6,R7) UNRESTRICTED;                  /*@G51DGVS*/ 01155000
*END; /*END OF PROC RECSTRT                                  @G51DGVS*/ 01156000
@EL00016 DS    0H                                                  0451 01157000
@EF00016 DS    0H                                                  0451 01158000
@ER00016 LM    @14,@12,@SA00016                                    0451 01159000
         BR    @14                                                 0451 01160000
         EJECT                                                          01161000
*BUILDTXT: PROC;                                           /*@G51DGVS*/ 01162000
BUILDTXT STM   @14,@12,@SA00017                                    0452 01163000
*RESPECIFY (R2,R3,R5,R7) RESTRICTED;                       /*@G51DGVS*/ 01164000
*GENERATE;                                                 /*@G51DGVS*/ 01165000
*********************************************************************** 01166000
* CONVERT HEADER RECORD INFORMATION TO EBCDIC                         * 01167000
* PLACE EBCDIC IN WTO END OF JOB MESSAGE                              * 01168000
*********************************************************************** 01169000
         L     WORK4,EXTENT             LOW EXTENT                      01170000
         LA    WORK1,F                  IMAGE AREA                      01171000
         LA    WORK2,L8                 NUMBER OF CHAR TO CONVERT       01172000
*        CALL  UNPACK;                  /*CONVERT TO PRINTABLE*/   0455 01173000
         BAL   @14,UNPACK                                          0455 01174000
*GENERATE;                                                 /*@G51DGVS*/ 01175000
         LA    WORK2,L8                 NUMBER OF CHAR TO CONVERT       01176000
         L     WORK4,EXTENTHI           HIGH EXTENT                     01177000
         LA    WORK1,L                  IMAGE AREA                      01178000
*        CALL  UNPACK;                  /*CONVERT TO PRINTABLE*/   0457 01179000
         BAL   @14,UNPACK                                          0457 01180000
*GENERATE;                                                 /*@G51DGVS*/ 01181000
         ICM   WORK4,15,RESTAREA+2         RESTART AREA IN HEADER       01182000
         LA    WORK2,L8                 MAKE CCHH PRINTABLE             01183000
         LA    WORK1,S                  LOCATION IN MESSAGE             01184000
*        CALL  UNPACK;                  /*CONVERT TO PRINTABLE*/   0459 01185000
         BAL   @14,UNPACK                                          0459 01186000
*GENERATE;                                                 /*@G51DGVS*/ 01187000
         ICM   WORK4,15,RESTAREA+6         RESTART RECORD ADDR. IN HDR  01188000
         LA    WORK2,L2                 RECORD ADDRESS IS 2 PRINT DIG.  01189000
         LA    WORK1,S+8                WHERE TO PUT IN MESSAGE         01190000
*        CALL  UNPACK;                  /*CONVERT TO PRINTABLE*/   0461 01191000
         BAL   @14,UNPACK                                          0461 01192000
*GENERATE;                                                 /*@G51DGVS*/ 01193000
         L     DEVTABLE,DEVSTORE        LOAD ENTRY ADDRESS OF SYSRES    01194000
         MVC   D(L4),DN(DEVTABLE)       DEVICE NAME                     01195000
         MVC   N(L1),PDC(DEVTABLE)      DEVICE CODE                     01196000
D        EQU   COMPLETE+19              DEVICE NAME                     01197000
N        EQU   COMPLETE+27              DEVICE TYPE CODE                01198000
F        EQU   COMPLETE+31              FIRST TRACK ADDRESS             01199000
L        EQU   COMPLETE+42              LAST TRACK ADDRESS              01200000
S        EQU   COMPLETE+53              RECORD START ADDRESS+ID         01201000
*END; /*END OF PROC BUILDPROC                                @G51DGVS*/ 01202000
@EL00017 DS    0H                                                  0463 01203000
@EF00017 DS    0H                                                  0463 01204000
@ER00017 LM    @14,@12,@SA00017                                    0463 01205000
         BR    @14                                                 0463 01206000
*UNPACK: PROC;                                             /*@G51DGVS*/ 01207000
UNPACK   STM   @14,@12,@SA00018                                    0464 01208000
*RESPECIFY (R4) RESTRICTED;                                /*@G51DGVS*/ 01209000
*GENERATE;                                                 /*@G51DGVS*/ 01210000
*********************************************************************** 01211000
*                                                                       01212000
***      ROUTINE TO UNPACK CHARACTERS FOR PRINT                         01213000
*                                                                       01214000
*        WORK1 -   ADDRESS OF CONVERTED CHARACTERS                    * 01215000
*        WORK4 -   CONTAINS CHARACTERS TO BE CONVERTED                * 01216000
*        WORK2 -   CONTAINS NUMBER OF PRINTABLE CHARACTERS TO BE      * 01217000
*                  CREATED                                            * 01218000
*********************************************************************** 01219000
UNPACK1  XR    WORK3,WORK3              CLEAR REG                       01220000
         SLDL  WORK3,L4                 POSITION                        01221000
         IC    WORK3,TABLE(WORK3)       PRINTABLE CHARACTER             01222000
         STC   WORK3,L0(WORK1)          STORE IT                        01223000
         LA    WORK1,L1(WORK1)          UPDATE                          01224000
         BCT   WORK2,UNPACK1            NEXT                            01225000
*RESPECIFY (R2,R3,R4,R5) UNRESTRICTED;                     /*@G51DGVS*/ 01226000
*END; /*END OF UNPACK PROC                                   @G51DGVS*/ 01227000
@EL00018 DS    0H                                                  0468 01228000
@EF00018 DS    0H                                                  0468 01229000
@ER00018 LM    @14,@12,@SA00018                                    0468 01230000
         BR    @14                                                 0468 01231000
@PB00018 DS    0H                                                  0469 01232000
*GENERATE DATA DEFS(DSENSE,DCSW,DCSW2,DIPDCBFL,SRFDCB,SRFDCBFL,    0469 01233000
*                   TTRSAVE,MAXTTR,THIRD);                 /*@VS48735*/ 01234000
*RESPECIFY (R2,R3,R4,R7) UNRESTRICTED;                     /*@G51DGVS*/ 01235000
*END; /*END OF EXTERNAL PROC IFCDIP00                        @G51DGVS*/ 01236000
@EL00001 L     @13,4(,@13)                                         0471 01237000
@EF00001 DS    0H                                                  0471 01238000
@ER00001 L     @14,12(,@13)                                        0471 01239000
         LM    @00,@12,20(@13)                                     0471 01240000
         BR    @14                                                 0471 01241000
@DATA    DS    0H                                                       01242000
         DS    0F                                                       01243000
@AL00078 EQU   *                       LIST WITH   1 ARGUMENT(S)        01244000
@AL00083 DC    A(@CF00033)             LIST WITH   1 ARGUMENT(S)        01245000
@AL00109 DC    A(@CF00054)             LIST WITH   1 ARGUMENT(S)        01246000
@AL00112 DC    A(@CF00098)             LIST WITH   1 ARGUMENT(S)        01247000
@AL00120 EQU   *                       LIST WITH   2 ARGUMENT(S)        01248000
@AL00124 DC    A(@CF00195)             LIST WITH   2 ARGUMENT(S)        01249000
         DC    A(WRITEPTR)                                              01250000
@AL00139 EQU   *                       LIST WITH   1 ARGUMENT(S)        01251000
@AL00173 EQU   *                       LIST WITH   1 ARGUMENT(S)        01252000
@AL00193 DC    A(@CF00032)             LIST WITH   1 ARGUMENT(S)        01253000
@AL00140 EQU   *                       LIST WITH   1 ARGUMENT(S)        01254000
@AL00277 EQU   *                       LIST WITH   1 ARGUMENT(S)        01255000
@AL00282 DC    A(@CF00241)             LIST WITH   1 ARGUMENT(S)        01256000
@AL00151 DC    A(@CF00068)             LIST WITH   1 ARGUMENT(S)        01257000
@AL00154 EQU   *                       LIST WITH   1 ARGUMENT(S)        01258000
@AL00156 EQU   *                       LIST WITH   1 ARGUMENT(S)        01259000
@AL00251 DC    A(@CF00095)             LIST WITH   1 ARGUMENT(S)        01260000
@AL00180 DC    A(@CF00063)             LIST WITH   1 ARGUMENT(S)        01261000
@AL00205 DC    A(@CF00192)             LIST WITH   2 ARGUMENT(S)        01262000
         DC    A(WRITEPTR)                                              01263000
@AL00242 DC    A(@CF00073)             LIST WITH   1 ARGUMENT(S)        01264000
@AL00255 DC    A(@CF00244)             LIST WITH   1 ARGUMENT(S)        01265000
@AL00297 DC    A(@CF00034)             LIST WITH   1 ARGUMENT(S)        01266000
@AL00442 DC    A(@CF00296)             LIST WITH   1 ARGUMENT(S)        01267000
         DS    0F                                                       01268000
@SA00001 DS    18F                                                      01269000
@SA00008 DS    15F                                                      01270000
@PC00008 DS    1F                                                       01271000
@SA00002 DS    15F                                                      01272000
@SA00003 DS    15F                                                      01273000
@SA00004 DS    15F                                                      01274000
@SA00005 DS    15F                                                      01275000
@PC00005 DS    2F                                                       01276000
@SA00011 DS    15F                                                      01277000
@SA00010 DS    15F                                                      01278000
@SA00013 DS    15F                                                      01279000
@SA00007 DS    15F                                                      01280000
@SA00006 DS    15F                                                      01281000
@SA00012 DS    15F                                                      01282000
@SA00014 DS    15F                                                      01283000
@SA00015 DS    15F                                                      01284000
@SA00016 DS    15F                                                      01285000
@SA00017 DS    15F                                                      01286000
@SA00009 DS    15F                                                      01287000
@SA00018 DS    15F                                                      01288000
         DS    0F                                                       01289000
@CF00054 DC    F'1'                                                     01290000
@CF00098 DC    F'2'                                                     01291000
@CF00095 DC    F'3'                                                     01292000
@CF00073 DC    F'4'                                                     01293000
@CF00244 DC    F'5'                                                     01294000
@CF00068 DC    F'6'                                                     01295000
@CF00241 DC    F'7'                                                     01296000
@CF00063 DC    F'8'                                                     01297000
@CF00296 DC    F'9'                                                     01298000
@CF00032 DC    F'10'                                                    01299000
@CF00033 DC    F'11'                                                    01300000
@CF00034 DC    F'12'                                                    01301000
@CF00075 DC    F'16'                                                    01302000
@CF00195 DC    F'40'                                                    01303000
@CF00192 DC    F'1944'                                                  01304000
@CF00358 DC    F'-4'                                                    01305000
         DS    0D                                                       01306000
RCODE    DC    F'0'                                                     01307000
PTRSPOT  DC    A(0)                                                     01308000
READPTR  DC    AL4(BUF1)                                                01309000
WRITEPTR DC    AL4(BUF2)                                                01310000
SEQCNT   DC    AL1(0)                                                   01311000
         DS    CL7                                                      01312000
SRFECB   DC    F'0'                                                     01313000
         ORG   SRFECB                                                   01314000
POST     DS    CL1                                                      01315000
@NM00001 DS    CL3                                                      01316000
         ORG   SRFECB+4                                                 01317000
@TS00001 DS    CL1                                                      01318000
@CC00069 DC    C'FRAMES'                                                01319000
LOGRECA  DC    CL8'RECORDER'                                            01320000
RESID    DC    CL8'LOGREC'                                              01321000
         DS    CL5                                                      01322000
ENABLE   DS    CL8                                                      01323000
         ORG   ENABLE                                                   01324000
ENABLECC DC    X'A3'                                                    01325000
ENABLE00 DC    X'000000'                                                01326000
ENABLFLG DC    X'2000'                                                  01327000
ENABLCNT DC    H'1'                                                     01328000
         ORG   ENABLE+8                                                 01329000
DISABLE  DS    CL8                                                      01330000
         ORG   DISABLE                                                  01331000
DISABCC  DC    X'C3'                                                    01332000
DISAB00  DC    X'000000'                                                01333000
DISAFLG  DC    X'2000'                                                  01334000
DISACNT  DC    H'1'                                                     01335000
         ORG   DISABLE+8                                                01336000
RDCPUID  DS    CL8                                                      01337000
         ORG   RDCPUID                                                  01338000
CPUCC    DC    X'FE'                                                    01339000
CPUADR   DC    AL3(STCPUID)                                             01340000
CPUFLGS  DC    X'2000'                                                  01341000
CPUCNT   DC    H'8'                                                     01342000
         ORG   RDCPUID+8                                                01343000
STCPUID  DS    CL8                                                      01344000
         ORG   STCPUID                                                  01345000
STCPUVER DC    X'00'                                                    01346000
STCPUSER DC    X'000000'                                                01347000
STCPUMOD DC    X'0000'                                                  01348000
STCPUMCL DC    X'0000'                                                  01349000
         ORG   STCPUID+8                                                01350000
VERBAGE  DS    CL8                                                      01351000
         ORG   VERBAGE                                                  01352000
VERBCC   DC    X'69'                                                    01353000
VERBADR  DC    AL3(FRAMTYPS)                                            01354000
VERBFLG  DC    X'2000'                                                  01355000
VERBCNT  DC    H'1'                                                     01356000
         ORG   VERBAGE+8                                                01357000
FRAMTYPS DC    X'02'                                                    01358000
         DS    CL7                                                      01359000
RDVERB   DS    CL8                                                      01360000
         ORG   RDVERB                                                   01361000
RDCC     DC    X'32'                                                    01362000
RDADR    DC    AL3(0)                                                   01363000
RDFLG    DC    X'2000'                                                  01364000
RDCNT    DC    H'1920'                                                  01365000
         ORG   RDVERB+8                                                 01366000
SWITCH   DC    X'0000'                                                  01367000
         ORG   SWITCH                                                   01368000
FRAMEYES DS    BL1                                                      01369000
FRAMLOST EQU   SWITCH+0                                                 01370000
ONEFRAME EQU   SWITCH+0                                                 01371000
         ORG   SWITCH+2                                                 01372000
         DS    CL6                                                      01373000
SRFIOB   DS    CL32                                                     01374000
         ORG   SRFIOB                                                   01375000
SRFIOBF1 DC    X'00'                                                    01376000
SRFIOBF2 DC    X'00'                                                    01377000
SRFIOBS1 DC    X'00'                                                    01378000
SRFIOBS2 DC    X'00'                                                    01379000
SRFIOBEC DC    AL4(SRFECB)                                              01380000
         ORG   SRFIOBEC                                                 01381000
SRFIOBCO DS    CL1                                                      01382000
         ORG   SRFIOB+8                                                 01383000
SRFIOBF3 DC    X'00'                                                    01384000
SRFIOBCS DS    CL7                                                      01385000
         ORG   SRFIOBCS                                                 01386000
CCWADR   DC    X'000000'                                                01387000
CSWSTAT  DC    X'0000'                                                  01388000
         ORG   CSWSTAT                                                  01389000
ATTENTIN DS    BL1                                                      01390000
STATMOD  EQU   CSWSTAT+0                                                01391000
CUEND    EQU   CSWSTAT+0                                                01392000
BUSY     EQU   CSWSTAT+0                                                01393000
CHANEND  EQU   CSWSTAT+0                                                01394000
DEVEND   EQU   CSWSTAT+0                                                01395000
UNCHK    EQU   CSWSTAT+0                                                01396000
UNITEXCP EQU   CSWSTAT+0                                                01397000
PCI      DS    BL1                                                      01398000
ILC      EQU   CSWSTAT+1                                                01399000
PROGCHK  EQU   CSWSTAT+1                                                01400000
PROTEXP  EQU   CSWSTAT+1                                                01401000
CHANDCK  EQU   CSWSTAT+1                                                01402000
CHANCCK  EQU   CSWSTAT+1                                                01403000
INTCONCK EQU   CSWSTAT+1                                                01404000
CHAINCK  EQU   CSWSTAT+1                                                01405000
         ORG   SRFIOBCS+5                                               01406000
BYTCNT   DC    X'0000'                                                  01407000
         ORG   SRFIOB+16                                                01408000
SRFIOBCC DC    AL4(ENABLE)                                              01409000
         ORG   SRFIOBCC                                                 01410000
SRFIOBSI DS    CL1                                                      01411000
         ORG   SRFIOB+20                                                01412000
SRFIOBDC DC    AL4(SRFDCB)                                              01413000
         ORG   SRFIOBDC                                                 01414000
SRFIOBRS DS    CL1                                                      01415000
         ORG   SRFIOB+24                                                01416000
SRFIOBRA DC    A(0)                                                     01417000
         ORG   SRFIOBRA                                                 01418000
SRFIOBRM DS    CL1                                                      01419000
         ORG   SRFIOB+28                                                01420000
SRFIOBBC DC    X'0000'                                                  01421000
SRFIOBNR DC    H'0'                                                     01422000
         ORG   SRFIOB+32                                                01423000
BUF1     DS    CL1944                                                   01424000
BUF2     DS    CL1944                                                   01425000
         ORG   BUF2                                                     01426000
BUF240   DS    CL40                                                     01427000
         ORG   BUF2+1944                                                01428000
RECBUILD DS    CL24                                                     01429000
         ORG   RECBUILD                                                 01430000
RECTYPE  DC    X'A0'                                                    01431000
RECSYS   DC    X'00'                                                    01432000
RECSW0   DC    X'8800'                                                  01433000
         ORG   RECSW0                                                   01434000
RECNLST  DS    BL1                                                      01435000
RECTOD   EQU   RECSW0+0                                                 01436000
RECTRU   EQU   RECSW0+0                                                 01437000
@NM00002 EQU   RECSW0+0                                                 01438000
RECTIM   EQU   RECSW0+0                                                 01439000
@NM00003 EQU   RECSW0+0                                                 01440000
RECMP    EQU   RECSW0+1                                                 01441000
RECCP    EQU   RECSW0+1                                                 01442000
@NM00004 EQU   RECSW0+1                                                 01443000
         ORG   RECBUILD+4                                               01444000
@NM00005 DC    X'0000'                                                  01445000
RECCNT   DC    AL1(0)                                                   01446000
@NM00006 DC    X'00'                                                    01447000
RECDAT   DC    X'00000000'                                              01448000
RECTIME  DC    X'00000000'                                              01449000
RECCPU   DC    X'0000000000000000'                                      01450000
         ORG   RECBUILD+24                                              01451000
HOLD     DC    X'0000000000000000'                                      01452000
MBBCCHHR DS    CL8                                                      01453000
         ORG   MBBCCHHR                                                 01454000
M        DS    CL1                                                      01455000
BBCCHHR  DS    CL7                                                      01456000
         ORG   BBCCHHR                                                  01457000
BB       DS    CL2                                                      01458000
CCHHR    DS    CL5                                                      01459000
         ORG   MBBCCHHR+8                                               01460000
IFCDIP00 CSECT                                                          01461000
*********************************************************************** 01462000
*   DEVICE TABLE - THIS TABLE CONTAINS DATA PERTAINING TO THE         * 01463000
*   DEVICES CURRENTLY SUPPORTED AS SYSTEM RESIDENCE DEVICES.          * 01464000
*********************************************************************** 01465000
         DS    0D                                                       01466000
* TABLE ENTRY - 2311 DISK STORAGE DRIVE                                 01467000
DEVTAB   DC    X'21'                    DEVICE CODE                     01468000
         DC    C'1'                     PRINTABLE DEVICE CODE           01469000
         DC    AL2(3419)                BYTES/TRACK-FIRST TRACK         01470000
         DC    AL2(3625)                BYTES/TRACK                     01471000
         DC    AL2(9)                   TRACKS/CYLINDER                 01472000
         DC    AL2(3263)                BYTES/TRACK-90 PERCENT          01473000
         DC    C'2311'                  DEVICE NAME                     01474000
         SPACE 1                                                        01475000
* TABLE ENTRY - 2301 PARALLEL FILE                                      01476000
         DC    X'22'                    DEVICE CODE                     01477000
         DC    C'2'                     PRINTABLE DEVICE CODE           01478000
         DC    AL2(20137)               BYTES/TRACK-FIRST TRACK         01479000
         DC    AL2(20483)               BYTES/TRACK                     01480000
         DC    AL2(199)                 TRACKS/CYLINDER                 01481000
         DC    AL2(18385)               BYTES/TRACK-90 PERCENT          01482000
         DC    C'2301'                  DEVICE NAME                     01483000
         SPACE 1                                                        01484000
* TABLE ENTRY - 2303 SERIAL DRUM                                        01485000
         DC    X'23'                    DEVICE CODE                     01486000
         DC    C'3'                     PRINTABLE DEVICE CODE           01487000
         DC    AL2(4596)                BYTES/TRACK-FIRST TRACK         01488000
         DC    AL2(4892)                BYTES/TRACK                     01489000
         DC    AL2(9)                   TRACKS/CYLINDER                 01490000
         DC    AL2(4403)                BYTES/TRACK-90 PERCENT          01491000
         DC    C'2303'                  DEVICE NAME                     01492000
         SPACE 1                                                        01493000
* TABLE ENTRY - 2302 DISK STORAGE                                       01494000
         DC    X'24'                    DEVICE CODE                     01495000
         DC    C'4'                     PRINTABLE DEVICE CODE           01496000
         DC    AL2(4778)                BYTES/TRACK-FIRST TRACK         01497000
         DC    AL2(4984)                BYTES/TRACK                     01498000
         DC    AL2(45)                  TRACKS/CYLINDER                 01499000
         DC    AL2(4486)                BYTES/TRACK-90 PERCENT          01500000
         DC    C'2302'                  DEVICE NAME                     01501000
         SPACE 1                                                        01502000
* TABLE ENTRY - 2305 DRUM (ZEUS) MODEL 1                                01503000
         DC    X'26'                    DEVICE CODE                     01504000
         DC    C'6'                     PRINTABLE DEVICE CODE           01505000
         DC    AL2(13192)               BYTES/TRACK-FIRST TRACK         01506000
         DC    AL2(14136)               BYTES/TRACK     XA01893/YA01527 01507000
         DC    AL2(7)                   TRACKS/CYLINDER XA01893/YA01527 01508000
         DC    AL2(13194)               BYTES/TRACK-90  XA01893/YA01527 01509000
         DC    C'2305'                  DEVICE NAME                     01510000
         SPACE 1                                                        01511000
* TABLE ENTRY - 2305 DRUM (ZEUS) MODEL 2                                01512000
         DC    X'27'                    DEVICE CODE                     01513000
         DC    C'7'                     PRINTABLE DEVICE CODE           01514000
         DC    AL2(14184)               BYTES/TRACK-FIRST TRACK         01515000
         DC    AL2(14660)               BYTES/TRACK     XA01893/YA01527 01516000
         DC    AL2(7)                   TRACKS/CYLINDER XA01893/YA01527 01517000
         DC    AL2(12723)               BYTES/TRACK-90  XA01893/YA01527 01518000
         DC    C'2305'                  DEVICE NAME                     01519000
         SPACE 1                                                        01520000
* TABLE ENTRY - 2314 DISK                                               01521000
         DC    X'28'                    DEVICE CODE                     01522000
         DC    C'8'                     PRINTABLE DEVICE CODE           01523000
         DC    AL2(7008)                BYTES/TRACK-FIRST TRACK         01524000
         DC    AL2(7294)                BYTES/TRACK                     01525000
         DC    AL2(19)                  TRACKS/CYLINDER                 01526000
         DC    AL2(6565)                BYTES/TRACK-90 PERCENT          01527000
         DC    C'2314'                  DEVICE NAME                     01528000
         SPACE 1                                                        01529000
* TABLE ENTRY - 3330 DISK (MERLIN)                                      01530000
         DC    X'29'                   DEVICE CODE                      01531000
         DC    C'9'                    PRINTABLE DEVICE CODE            01532000
         DC    AL2(12680)               BYTES/TRACK-FIRST TRACK         01533000
         DC    AL2(13030)              BYTES/TRACK                      01534000
         DC    AL2(18)                 TRACK/CYLINDER                   01535000
         DC    AL2(11727)              BYTES/TRACK-90 PERCENT           01536000
         DC    C'3330'                 DEVICE NAME                      01537000
         SPACE                                                          01538000
* TABLE ENTRY - 3340 DISK (WINCHESTER)                                  01539000
         DC    X'2A'                   DEVICE CODE              XL03130 01540000
         DC    C'A'                    PRINTABLE DEVICE CODE    XL03130 01541000
         DC    AL2(7954)                BYTES/TRACK-FIRST TRACK         01542000
         DC    AL2(8368)               BYTES/TRACK              XL03130 01543000
         DC    AL2(11)                 TRACK/CYLINDER           XL03130 01544000
         DC    AL2(7531)               BYTES/TRACK-90 PERCENT   XL03130 01545000
         DC    C'3340'                 DEVICE NAME              XL03130 01546000
         SPACE 1                                                        01547000
** TABLE ENTRY - 3350 DISK(MADRID)                                      01548000
         DC    X'2B'               DEVICE CODE                          01549000
         DC    C'B'                PRINTABLE DEVICE CODE                01550000
         DC    AL2(18800)          BYTES/TRACK-FIRST TRACK              01551000
         DC    AL2(19069)          BYTES/TRACK                          01552000
         DC    AL2(29)             TRACKS/CYLINDER             X14318CG 01553000
         DC    AL2(17162)          BYTES/TRACK-90                       01554000
         DC    C'3350'             DEVICE NAME                          01555000
         SPACE                                                          01556000
* TABLE ENTRY - 3330-1 DISK (ICEBERG)                                   01557000
         DC    X'2D'                   DEVICE CODE              XL03145 01558000
         DC    C'D'                    PRINTABLE DEVICE CODE    XL03145 01559000
         DC    AL2(12680)               BYTES/TRACK-FIRST TRACK         01560000
         DC    AL2(13030)              BYTES/TRACK              XL03145 01561000
         DC    AL2(18)                 TRACK/CYLINDER           XL03145 01562000
         DC    AL2(11727)              BYTES/TRACK-90 PERCENT   XL03145 01563000
         DC    C'3330'                 DEVICE NAME              XL03145 01564000
         SPACE                                                          01565000
         DC    X'FF'                   TERMINATE TABLE                  01566000
         SPACE                                                          01567000
*                                                                       01568000
DC       EQU   0                        DEVICE CODE OFFSET              01569000
PDC      EQU   1                        PRINTABLE DEVICE CODE OFF       01570000
BTFT     EQU   2                        BYTES/TRK-FIRST TRK OFFSE       01571000
BT       EQU   4                        BYTES/TRACK OFFSET              01572000
TC       EQU   6                        TRACK/CYLINDER OFFSET           01573000
BT90P    EQU   8                        90 PERCENT BYTES/TRK OFFS       01574000
DN       EQU   10                       DEVICE NAME OFFSET              01575000
CB       EQU   X'FF'                    CHECK BYTE VALUE                01576000
HEX00    EQU   X'00'                                                    01577000
HDFRSW   EQU   X'20'                    FRAMES EXIST SWITCH             01578000
*********************************************************************** 01579000
*    THIS IS THE WRITE AREA FOR THE HEADER RECORD. THE BREAK-   *       01580000
*    DOWN IS DESCRIBED BELOW.                                   *       01581000
*********************************************************************** 01582000
         DS    0F                                                       01583000
         DC    X'0000'                  POSITION                        01584000
HDRSAVE DC    X'FFFF'                  RECORD ID                        01585000
         DC    5XL8'0'                  BUFFER                          01586000
*                                                                       01587000
EXTENT   EQU   HDRSAVE+2               LOW AND HIGH EXTENT              01588000
MSGCNT   EQU   HDRSAVE+10       COUNT OF LOGREC FULL MSG      @XA07072  01589000
RESTAREA EQU   HDRSAVE+11              RE START AREA-BBCCHHR            01590000
BYTREM   EQU   HDRSAVE+18              BYTES REMAINING ON TRACK         01591000
BYTONTRK EQU   HDRSAVE+20              TOTAL BYTES ON TRACK             01592000
LASTREU  EQU   HDRSAVE+22              LAST RE USED-BBCCHHR             01593000
TRKPERCY EQU   HDRSAVE+29              TRACKS/CYLINDER                  01594000
EWMC     EQU   HDRSAVE+31              90 PERCENT TRACK COUNT           01595000
DEVCODE  EQU   HDRSAVE+33              DEVICE CODE                      01596000
EWMT     EQU   HDRSAVE+34              90 PERCENT TRACK-CCHH            01597000
SWITCHES EQU   HDRSAVE+38              SWITCHES                         01598000
CHKBYTE  EQU   HDRSAVE+39              CHECK BYTE-'FF'                  01599000
*                                                                       01600000
EXTENTLH EQU   EXTENT+2                 LOW EXTENT HEAD ADDRESS         01601000
EXTENTHI EQU   EXTENT+4                 HIGH EXTENT                     01602000
RESTARCC EQU   RESTAREA+2               CCHH AREA OF HEADER             01603000
RESTARID EQU   RESTAREA+6               ID AREA OF HEADER               01604000
DSENSE   EQU   SRFWTO+37              WTO SENSE CHARACTERS              01605000
DCSW     EQU   SRFWTO+46              1ST 8 BYTES CSW                   01606000
DCSW2    EQU   SRFWTO+54              LAST 6 BYTES CSW                  01607000
*****************************************************************       01608000
*                                                               *       01609000
*        DCB FOR THE SYS1.LOGREC DATA SET                       *       01610000
*                                                               *       01611000
*****************************************************************       01612000
DIPDCB   DCB   DDNAME=SERERDS,                                         X01613000
               DSORG=PS,                                               X01614000
               MACRF=(RP,WP),                                          X01615000
               RECFM=U,                                                X01616000
               BLKSIZE=1944,                                           X01617000
               DEVD=DA,                                                X01618000
               SYNAD=LOGERR                                             01619000
*******************************************************************     01620000
*                                                                 *     01621000
*      DCB FOR READING THE SYSTEM REFERENCE FILE                  *     01622000
*                                                                 *     01623000
*******************************************************************     01624000
SRFDCB   DCB   MACRF=(E),       EXCP MACRO USED                        X01625000
               IOBAD=SRFIOB,    INPUT OUTPUT BLOCK ADDRESS             X01626000
               DSORG=PS,        ORGANIZATION IS PHYSICAL SEQUENTIAL    X01627000
               DEVD=DA,         MOST GENERALIZED DCB USED FOR SAFETY   X01628000
               RECFM=U,         UNDEFINED RECORDS                      X01629000
               DDNAME=FRAMES    DATA DEFINITION NAME FROM DD CARD       01630000
               WRITE            LISTDECB,SF,DIPDCB,HDRSAVE,40,,,,MF=L   01631000
FDAD     EQU   DIPDCB+8                 FIRST AVAILABLE ADDRESS         01632000
DCBDEVT  EQU   DIPDCB+17                DEVICE TYPE FIELD               01633000
DEVMASK  EQU   X'0F'                    DEVICE TYPE MASK                01634000
TRBAL    EQU   DIPDCB+18                TRACK BALANCE ON TRACK          01635000
DIPDCBFL EQU   DIPDCB+48                FLAG FIELD                      01636000
SRFDCBFL EQU   SRFDCB+48                FLAG FIELD FOR SRF DCB          01637000
OPEN     EQU   X'10'                    DCB OPEN FLAG                   01638000
BUFFER   DS    1F                       TEMP WORK AREA                  01639000
BUFFERTA EQU   BUFFER+2                 TEMP STORAGE -TRACK ADDR        01640000
PASS     DC    X'00'                    RECORD CONTROL                  01641000
DIPKEY   DC    X'FFFF'                  KEY FOR HEADER                  01642000
DEVTYPE  DC    X'00'                    DEVICE TYPE STORAGE             01643000
TABLE    DC    C'0123456789ABCDEF'      CONVERSION TABLE                01644000
BYTPFRM  DC    F'2500'      BYTES IN FRAME PLUS EST.MAX.IRG.            01645000
DEVSTORE DC    F'0'         DEVICE TABLE ENTRY ADDRESS                  01646000
DEBADR   DC    F'0'         DATA EXTENT BLOCK ADDRESS                   01647000
ARBSMALL DC    X'0014'      BYTES REMAINING SO NO RECORD WILL FIT       01648000
TTRSAVE  DC    F'0'                                                     01649000
TTRLST   DC    F'0'         TTR OF LAST FRAME                           01650000
MYSAVE   DS    5F           PROTECT SELF FROM TRACK CONVERSION ROUTINE  01651000
HDRSAV   DC    X'00000100'  TTR OF HEADER RECORD BY DEFINITION          01652000
MAXTTR   DC    X'00000000'  PLACE MAXIMUM RELATIVE LOCATION OF LOGREC   01653000
THIRD    DC    X'00000200'  TTR BEFORE 1ST FRAME. USED TO DETERMINE     01654000
*                           WHICH ERROR MESSAGE TO ISSUE. IF WRITE      01655000
*                           FAILS, NOTE WILL NOT BE EXECUTED AND TTR    01656000
*                           IN TTRSAVE WILL BE TTR FOR LAST RECORD OR   01657000
*                           ZERO IF HEADER WRITE FAIL.                  01658000
PTCHAREA DC    20F'0'                                                   01659000
PATCHLOC DC    S(PTCHAREA)  BASE DISPLACEMENT LOCATION OF PATCH AREA    01660000
RELREC   EQU   TTRSAVE+2                                                01661000
         ORG   DIPDCB                                                   01662000
FAK1     DS    62C                                                      01663000
DIPBLKSI DS    H            BLOCK SIZE OF RECORD IN DCB                 01664000
FAK2     DS    18C                                                      01665000
DIPLRECL DS    H            LOGICAL RECORD LENGTH IN DCB                01666000
IFCDIP00 CSECT                                                          01667000
@00      EQU   00                      EQUATES FOR REGISTERS 0-15       01668000
@01      EQU   01                                                       01669000
@02      EQU   02                                                       01670000
@03      EQU   03                                                       01671000
@04      EQU   04                                                       01672000
@05      EQU   05                                                       01673000
@06      EQU   06                                                       01674000
@07      EQU   07                                                       01675000
@08      EQU   08                                                       01676000
@09      EQU   09                                                       01677000
@10      EQU   10                                                       01678000
@11      EQU   11                                                       01679000
@12      EQU   12                                                       01680000
@13      EQU   13                                                       01681000
@14      EQU   14                                                       01682000
@15      EQU   15                                                       01683000
R0       EQU   @00                                                      01684000
R1       EQU   @01                                                      01685000
R2       EQU   @02                                                      01686000
R3       EQU   @03                                                      01687000
R4       EQU   @04                                                      01688000
R5       EQU   @05                                                      01689000
R6       EQU   @06                                                      01690000
R7       EQU   @07                                                      01691000
R14      EQU   @14                                                      01692000
R15      EQU   @15                                                      01693000
R10      EQU   @10                                                      01694000
R11      EQU   @11                                                      01695000
R12      EQU   @12                                                      01696000
R13      EQU   @13                                                      01697000
R8       EQU   @08                                                      01698000
R9       EQU   @09                                                      01699000
PARAMS   EQU   0                                                        01700000
PARMLEN  EQU   PARAMS                                                   01701000
INARG    EQU   PARAMS+2                                                 01702000
LISTPTR  EQU   0                                                        01703000
RECORD   EQU   0                                                        01704000
RECHDR   EQU   RECORD                                                   01705000
CVTBASE  EQU   0                                                        01706000
CVTOVL   EQU   0                                                        01707000
CVTRELNO EQU   CVTOVL+2                                                 01708000
CVTOVLL  EQU   0                                                        01709000
CVTPCNVT EQU   CVTOVLL+28                                               01710000
CVTDCB   EQU   CVTOVLL+116                                              01711000
INPARM   EQU   0                                                        01712000
WHERE    EQU   0                                                        01713000
MSGNO    EQU   0                                                        01714000
RECSYSS  EQU   RECSYS                                                   01715000
         AGO   .@UNREFD                START UNREFERENCED COMPONENTS    01716000
@NM00008 EQU   CVTOVLL+32                                               01717000
@NM00007 EQU   CVTOVLL                                                  01718000
CVTMODEL EQU   CVTOVL                                                   01719000
RECFRAME EQU   RECORD+24                                                01720000
.@UNREFD ANOP                          END UNREFERENCED COMPONENTS      01721000
@RC00075 EQU   @RC00073                                                 01722000
@RF00108 EQU   @RC00090                                                 01723000
@RC00121 EQU   @EL00002                                                 01724000
@RF00164 EQU   @RC00161                                                 01725000
@RF00171 EQU   @RC00161                                                 01726000
@RF00191 EQU   @RC00183                                                 01727000
@RF00217 EQU   @EL00003                                                 01728000
@RC00249 EQU   @EL00005                                                 01729000
ENDOPROC EQU   @EL00005                                                 01730000
@RF00261 EQU   @EL00006                                                 01731000
@RF00269 EQU   @EL00006                                                 01732000
@RC00271 EQU   @EL00006                                                 01733000
@RF00295 EQU   @EL00007                                                 01734000
@RF00369 EQU   @EL00008                                                 01735000
@RC00396 EQU   @EL00011                                                 01736000
@RF00402 EQU   @EL00011                                                 01737000
ENDGETDV EQU   @EL00015                                                 01738000
@PB00017 EQU   @PB00018                                                 01739000
@RC00125 EQU   @RC00121                                                 01740000
@RF00245 EQU   ENDOPROC                                                 01741000
@RC00240 EQU   ENDOPROC                                                 01742000
@RC00273 EQU   @RC00271                                                 01743000
@PB00016 EQU   @PB00017                                                 01744000
@RF00127 EQU   @RC00125                                                 01745000
@RC00130 EQU   @RC00125                                                 01746000
@PB00015 EQU   @PB00016                                                 01747000
@RC00136 EQU   @RC00130                                                 01748000
@PB00014 EQU   @PB00015                                                 01749000
@PB00013 EQU   @PB00014                                                 01750000
@PB00012 EQU   @PB00013                                                 01751000
@PB00011 EQU   @PB00012                                                 01752000
@PB00010 EQU   @PB00011                                                 01753000
@PB00009 EQU   @PB00010                                                 01754000
@PB00008 EQU   @PB00009                                                 01755000
@PB00007 EQU   @PB00008                                                 01756000
@PB00006 EQU   @PB00007                                                 01757000
@PB00005 EQU   @PB00006                                                 01758000
@PB00004 EQU   @PB00005                                                 01759000
@PB00003 EQU   @PB00004                                                 01760000
@PB00002 EQU   @PB00003                                                 01761000
@ENDDATA EQU   *                                                        01762000
         END   IFCDIP00                                                 01763000
