TITLE 'SDA CONTROL PROGRAM *00001000 ' 00002000 ISDASDA0 CSECT , 01S0001 00003000 @MAINENT DS 0H 01S0001 00004000 USING *,@15 01S0001 00005000 B @PROLOG 01S0001 00006000 DC AL1(16) 01S0001 00007000 DC C'ISDASDA0 78.044' 01S0001 00008000 DROP @15 00009000 @PROLOG STM @14,@12,12(@13) 01S0001 00010000 BALR @11,0 01S0001 00011000 @PSTART LA @12,4095(,@11) 01S0001 00012000 USING @PSTART,@11 01S0001 00013000 USING @PSTART+4095,@12 01S0001 00014000 L @00,@SIZDATD 01S0001 00015000 GETMAIN R,LV=(0) 00016000 LR @10,@01 01S0001 00017000 USING @DATD,@10 01S0001 00018000 ST @13,@SA00001+4 01S0001 00019000 LM @00,@01,20(@13) 01S0001 00020000 ST @10,8(,@13) 01S0001 00021000 LR @13,@10 01S0001 00022000 * PARMSAVE=R1; /* SAVE REG 1 @Y30LB55*/ 00023000 LR PARMSAVE,R1 01S0029 00024000 * R0=LENGTH(SDAWORK); /* LENGTH OF SDAWORK @Y30LB55*/ 00025000 LA R0,154 01S0030 00026000 * GEN( GETMAIN R,LV=(0)); /* GETMAIN @Y30LB55*/ 00027000 GETMAIN R,LV=(0) 00028000 * SDAWKPTR=R1; /* SET ADDR TO WORKAREA @Y30LB55*/ 00029000 LR SDAWKPTR,R1 01S0032 00030000 * R0=LENGTH(ISDACVT); /* GET ISDACVT @Y30LB55*/ 00031000 LA R0,576 01S0033 00032000 * GEN( GETMAIN R,LV=(0)); /* GETMAIN @Y30LB55*/ 00033000 GETMAIN R,LV=(0) 00034000 * CVTPTR=R1; /* SAVE ISDACVT ADDR @Y30LB55*/ 00035000 LR CVTPTR,R1 01S0035 00036000 * R0=LENGTH(ISDAPRMS); /* GET ISDAPRMS @Y30LB55*/ 00037000 LA R0,49 01S0036 00038000 * GEN( GETMAIN R,LV=(0)); /* GETMAIN @Y30LB55*/ 00039000 GETMAIN R,LV=(0) 00040000 * LPARMPTR=R1; /* SAVE ISDAPRMS ADDR @Y30LB55*/ 00041000 LR LPARMPTR,R1 01S0038 00042000 * RFY 01S0039 00043000 * (R0, 01S0039 00044000 * R1) UNRSTD; /* END GETMAIN @Y30LB55*/ 00045000 * 01S0039 00046000 * /*****************************************************************/ 00047000 * /* */ 00048000 * /* INITIALIZE SDAWORK */ 00049000 * /* */ 00050000 * /*****************************************************************/ 00051000 * 01S0040 00052000 * SDAWORK=''B; /* ZERO SDA WORK AREA @Y30LB55*/ 00053000 XC SDAWORK(154,SDAWKPTR),SDAWORK(SDAWKPTR) 01S0040 00054000 * HIGHDATE='0000000F'X; /* SET HIGH DATE TO 0 @Y30LB55*/ 00055000 MVC HIGHDATE(4,SDAWKPTR),@CB00911 01S0041 00056000 * LOWDATE='0999999F'X; /* SET LOW DATE TO 999999@Y30LB55*/ 00057000 MVC LOWDATE(4,SDAWKPTR),@CB00912 01S0042 00058000 * AHIGHDAT=HIGHDATE; /* INIT ACTUAL HIGH DATE @Y30LB55*/ 00059000 MVC AHIGHDAT(4,SDAWKPTR),HIGHDATE(SDAWKPTR) 01S0043 00060000 * ALOWDATE=LOWDATE; /* INIT ACTUAL LOW DATE @Y30LB55*/ 00061000 MVC ALOWDATE(4,SDAWKPTR),LOWDATE(SDAWKPTR) 01S0044 00062000 * RFY 01S0045 00063000 * R1 RSTD; /* GET CURRENT DATE @Y30LB55*/ 00064000 * GEN(TIME); /* ISSUE TIME MACRO @Y30LB55*/ 00065000 TIME 00066000 * TODAYDAT=R1; /* MOVE DATE INTO SDAWORK@Y30LB55*/ 00067000 ST R1,TODAYDAT(,SDAWKPTR) 01S0047 00068000 * RFY 01S0048 00069000 * R1 UNRSTD; /* RELEASE REG 1 @Y30LB55*/ 00070000 * 01S0048 00071000 * /*****************************************************************/ 00072000 * /* */ 00073000 * /* INITIALIZE ISDACVT */ 00074000 * /* */ 00075000 * /*****************************************************************/ 00076000 * 01S0049 00077000 * CVTPTRS0=''B; /* ZERO POINTERS IN ISDACVT 01S0049 00078000 * @Y30LB55*/ 00079000 XC CVTPTRS0(100,CVTPTR),CVTPTRS0(CVTPTR) 01S0049 00080000 * WORKCALL=ADDR(WORKPTR); /* SET CALL PTR FOR WORKPTR 01S0050 00081000 * @Y30LB55*/ 00082000 LA @07,WORKPTR(,SDAWKPTR) 01S0050 00083000 ST @07,WORKCALL(,CVTPTR) 01S0050 00084000 * SDA00PTR=SDAWKPTR; /* SET ADDR TO WORKAREA @Y30LB55*/ 00085000 ST SDAWKPTR,SDA00PTR(,CVTPTR) 01S0051 00086000 * PARMPTR=LPARMPTR; /* SET ISDACVT PTR TO ISDAPRMS 00087000 * @Y30LB55*/ 00088000 ST LPARMPTR,PARMPTR(,CVTPTR) 01S0052 00089000 * WORKPTR=CVTPTR; /* SET PTR TO ISDACVT @Y30LB55*/ 00090000 ST CVTPTR,WORKPTR(,SDAWKPTR) 01S0053 00091000 * SDARPTID=''B; /* ZERO ID TO STOP MOVE @ZM30730*/ 00092000 XC SDARPTID(3,CVTPTR),SDARPTID(CVTPTR) 01S0054 00093000 * 02S0055 00094000 * /*****************************************************************/ 00095000 * /* */ 00096000 * /* REG 1 FIX TO PASS EXEC PARAMETERS TO ISDAPARM */ 00097000 * /* */ 00098000 * /*****************************************************************/ 00099000 * 02S0055 00100000 * PARMSAVE=VSR1PTR; /* PARMSAVE=0(0,R1) @ZA14729*/ 00101000 L PARMSAVE,VSR1PTR(,PARMSAVE) 02S0055 00102000 * DO I=1 TO R1PARML; /* LOOP THROUGH PARMS @ZM31107*/ 00103000 LA I,1 02S0056 00104000 B @DE00056 02S0056 00105000 @DL00056 DS 0H 02S0057 00106000 * R1PARMC(I)=R1PARMC(I)|'40'X; /* FOLD TO UPPER CASE @ZM31107*/ 00107000 LR @07,PARMSAVE 02S0057 00108000 ALR @07,I 02S0057 00109000 OI R1PARMC-1(@07),X'40' 02S0057 00110000 * END; /* END FOLD PARMS @ZM31107*/ 00111000 AH I,@CH00078 02S0058 00112000 @DE00056 CH I,R1PARML(,PARMSAVE) 02S0058 00113000 BNH @DL00056 02S0058 00114000 */* END OF REG1FIX @Y30LB55*/ 00115000 * 02S0059 00116000 * PARM0PTR=PARMSAVE; /* SAVE ADDR OF PARM FIELD 01S0059 00117000 * @Y30LB55*/ 00118000 * 01S0059 00119000 ST PARMSAVE,PARM0PTR(,CVTPTR) 01S0059 00120000 * /*****************************************************************/ 00121000 * /* */ 00122000 * /* OPEN SYSPRINT DATA SET */ 00123000 * /* */ 00124000 * /*****************************************************************/ 00125000 * 01S0060 00126000 * RFY 01S0060 00127000 * R1 RSTD; /*@Y30LB55*/ 00128000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @Y30LB55*/ 00129000 LA R1,WORKCALL(,CVTPTR) 01S0061 00130000 * CALL ISDAPRTO; /* CALL OPEN ENTRY IN ISDAPRT0 00131000 * @Y30LB55*/ 00132000 L @15,@CV00901 01S0062 00133000 BALR @14,@15 01S0062 00134000 * RFY 01S0063 00135000 * (R1, 01S0063 00136000 * R15) RSTD; /*@Y30LB55*/ 00137000 * RETCODE=R15; /*@Y30LB55*/ 00138000 STH R15,RETCODE(,SDAWKPTR) 01S0064 00139000 * RFY 01S0065 00140000 * R15 UNRSTD; /* SAVE RETURN CODE @Y30LB55*/ 00141000 * IF RETCODE^=0 THEN /* WAS OPEN SUCCESSFUL @Y30LB55*/ 00142000 * 01S0066 00143000 LH @07,RETCODE(,SDAWKPTR) 01S0066 00144000 LTR @07,@07 01S0066 00145000 BZ @RF00066 01S0066 00146000 * /***************************************************************/ 00147000 * /* */ 00148000 * /* ABNORMAL EXIT FROM SDA. NO SYSPRINT DATA SET */ 00149000 * /* */ 00150000 * /***************************************************************/ 00151000 * 01S0067 00152000 * DO; /* NO. SDA CANNOT CONTINUE 01S0067 00153000 * WITHOUT SYSPRINT @Y30LB55*/ 00154000 * RETCODE=RETCODE+100; /* ADD 100 TO ISDAPRTO RETCODE 00155000 * @Y30LB55*/ 00156000 AH @07,@CH00914 01S0068 00157000 STH @07,RETCODE(,SDAWKPTR) 01S0068 00158000 * ANSI=LSKIP1; /* SET 1 LINE SKIP @Y30LB55*/ 00159000 MVI ANSI(CVTPTR),C' ' 01S0069 00160000 * IF RETCODE=104 THEN /* SYSPRINT NOT OPEN @Y30LB55*/ 00161000 CH @07,@CH00915 01S0070 00162000 BNE @RF00070 01S0070 00163000 * LINE=ISDA0104; /* YES, MOVE ISDA0104 @Y30LB55*/ 00164000 MVI LINE+33(CVTPTR),C' ' 01S0071 00165000 MVC LINE+34(98,CVTPTR),LINE+33(CVTPTR) 01S0071 00166000 MVC LINE(33,CVTPTR),ISDA0104 01S0071 00167000 * ELSE /* NO @Y30LB55*/ 00168000 * IF RETCODE=124 THEN /* NO SPACE @Y30LB55*/ 00169000 B @RC00070 01S0072 00170000 @RF00070 CLC RETCODE(2,SDAWKPTR),@CH00916 01S0072 00171000 BNE @RF00072 01S0072 00172000 * LINE=ISDA0124; /* YES, MOVE ISDA0124 @Y30LB55*/ 00173000 MVI LINE+40(CVTPTR),C' ' 01S0073 00174000 MVC LINE+41(91,CVTPTR),LINE+40(CVTPTR) 01S0073 00175000 MVC LINE(40,CVTPTR),ISDA0124 01S0073 00176000 * ELSE /* WRITE ERROR ON SYSPRINT 01S0074 00177000 * @Y30LB55*/ 00178000 * LINE=ISDA0112; /* MOVE ISDA0112 @Y30LB55*/ 00179000 B @RC00072 01S0074 00180000 @RF00072 MVI LINE+33(CVTPTR),C' ' 01S0074 00181000 MVC LINE+34(98,CVTPTR),LINE+33(CVTPTR) 01S0074 00182000 MVC LINE(33,CVTPTR),ISDA0112 01S0074 00183000 * RFY 01S0075 00184000 * R1 RSTD; /*@Y30LB55*/ 00185000 @RC00072 DS 0H 01S0075 00186000 @RC00070 DS 0H 01S0076 00187000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 00188000 LA R1,WORKCALL(,CVTPTR) 01S0076 00189000 * CALL ISDATYPE; /* WRITE ISDA0104 TO SYSTERM 00190000 * @Y30LB55*/ 00191000 L @15,@CV00904 01S0077 00192000 BALR @14,@15 01S0077 00193000 * RFY 01S0078 00194000 * R1 UNRSTD; /*@Y30LB55*/ 00195000 * RETURN CODE(RETCODE); /* RETURN TO VS WITH RETURN CODE 00196000 * 104 @Y30LB55*/ 00197000 LH @09,RETCODE(,SDAWKPTR) 01S0079 00198000 L @13,4(,@13) 01S0079 00199000 L @00,@SIZDATD 01S0079 00200000 LR @01,@10 01S0079 00201000 FREEMAIN R,LV=(0),A=(1) 00202000 LR @15,@09 01S0079 00203000 L @14,12(,@13) 01S0079 00204000 LM @00,@12,20(@13) 01S0079 00205000 BR @14 01S0079 00206000 * END; /* END NO SYSPRINT EXIT @Y30LB55*/ 00207000 * ELSE 01S0081 00208000 * ; /* OPEN OK, CONTINUE @Y30LB55*/ 00209000 @RF00066 DS 0H 01S0082 00210000 * 01S0082 00211000 * /*****************************************************************/ 00212000 * /* */ 00213000 * /* BUILD SDA PAGE TITLE FOR INPUT PHASE */ 00214000 * /* */ 00215000 * /*****************************************************************/ 00216000 * 01S0082 00217000 * ANSI=LSKIP1; /* SET LINE SKIP @Y30LB55*/ 00218000 MVI ANSI(CVTPTR),C' ' 01S0082 00219000 * LINE=SDAHEADL; /* MOVE LEFT HEADER @Y30LB55*/ 00220000 MVI LINE+20(CVTPTR),C' ' 01S0083 00221000 MVC LINE+21(111,CVTPTR),LINE+20(CVTPTR) 01S0083 00222000 MVC LINE(20,CVTPTR),SDAHEADL 01S0083 00223000 * VTITLE=SDAVERNO; /* MOVE SDA VERSION NO. @Y30LB55*/ 00224000 MVC VTITLE(12,CVTPTR),SDAVERNO 01S0084 00225000 * MTITLE=SDAHEADI; /* MOVE MIDDLE HEADER FOR INPUT 00226000 * @Y30LB55*/ 00227000 MVC MTITLE(26,CVTPTR),SDAHEADI 01S0085 00228000 * RTITLE=SDAHEADR; /* MOVE RIGHT HEADER @Y30LB55*/ 00229000 MVC RTITLE(8,CVTPTR),SDAHEADR 01S0086 00230000 * RFY 01S0087 00231000 * R1 RSTD; /*@Y30LB55*/ 00232000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 00233000 LA R1,WORKCALL(,CVTPTR) 01S0088 00234000 * CALL ISDAPRTH; /* PASS HEADER TO ISDAPRT0 01S0089 00235000 * @Y30LB55*/ 00236000 L @15,@CV00902 01S0089 00237000 BALR @14,@15 01S0089 00238000 * CALL ISDAPRT0; /* PRINT SDAHEADR @Y30LB55*/ 00239000 L @15,@CV00900 01S0090 00240000 BALR @14,@15 01S0090 00241000 * RFY 01S0091 00242000 * R1 UNRSTD; /*@Y30LB55*/ 00243000 * 01S0092 00244000 * /*****************************************************************/ 00245000 * /* */ 00246000 * /* CALL ISDAPARM TO BUILD ISDAPRMS. IF ISDAPARM RETURN CODE IS */ 00247000 * /* NOT ZERO, SDA WILL ABORT. CALL ISDAOPT0 TO PRINT SDA OPTIONS. */ 00248000 * /* */ 00249000 * /*****************************************************************/ 00250000 * 01S0092 00251000 * RFY 01S0092 00252000 * R1 RSTD; /*@Y30LB55*/ 00253000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @Y30LB55*/ 00254000 LA R1,WORKCALL(,CVTPTR) 01S0093 00255000 * CALL ISDAPARM; /* (WORKPTR) SETUP ISDAPRMS 01S0094 00256000 * @Y30LB55*/ 00257000 L @15,@CV00896 01S0094 00258000 BALR @14,@15 01S0094 00259000 * RFY 01S0095 00260000 * R15 RSTD; /*@Y30LB55*/ 00261000 * RETCODE=R15; /* SAVE RETURN CODE @Y30LB55*/ 00262000 STH R15,RETCODE(,SDAWKPTR) 01S0096 00263000 * CALL ISDAOPT0; /* PRINT SDA OPTIONS @Y30LB55*/ 00264000 L @15,@CV00897 01S0097 00265000 BALR @14,@15 01S0097 00266000 * RFY 01S0098 00267000 * (R1, 01S0098 00268000 * R15) UNRSTD; /*@Y30LB55*/ 00269000 * RETCODIN=RETCODE; /* STOP SDA IF BAD RETURN FROM 00270000 * PARM0 @Y30LB55*/ 00271000 MVC RETCODIN(2,SDAWKPTR),RETCODE(SDAWKPTR) 01S0099 00272000 * 01S0100 00273000 * /*****************************************************************/ 00274000 * /* */ 00275000 * /* TRACE - HEX DUMP OF SDACVT, PARMSAVE, AND ISDAPRMS */ 00276000 * /* */ 00277000 * /*****************************************************************/ 00278000 * 01S0100 00279000 * IF CTRACE(8)='1'B THEN 01S0100 00280000 TM CTRACE(LPARMPTR),B'00000001' 01S0100 00281000 BNO @RF00100 01S0100 00282000 * DO; /* IS TRACE PRINT FLAG ON@Y30LB55*/ 00283000 * CALL DUMPCVT; /* TRACE - DUMP ISDACVT @Y30LB55*/ 00284000 BAL @14,DUMPCVT 01S0102 00285000 * LINE=TRACEM02; /* MOVE DUMP MSG @Y30LB55*/ 00286000 MVI LINE+31(CVTPTR),C' ' 01S0103 00287000 MVC LINE+32(100,CVTPTR),LINE+31(CVTPTR) 01S0103 00288000 MVC LINE(31,CVTPTR),TRACEM02 01S0103 00289000 * DUMPLEN=R1PARML+2; /* LENGTH OF PARM FIELD @Y30LB55*/ 00290000 LH @07,R1PARML(,PARMSAVE) 01S0104 00291000 LA @05,2 01S0104 00292000 ALR @05,@07 01S0104 00293000 ST @05,DUMPLEN(,CVTPTR) 01S0104 00294000 * DUMPIDNO=99992; /* MOVE DUMP ID @Y30LB55*/ 00295000 MVC DUMPIDNO(4,CVTPTR),@CF00919 01S0105 00296000 * DUMPADDR=PARMSAVE; /* MOVE ADDRESS PARMSAVE @Y30LB55*/ 00297000 ST PARMSAVE,DUMPADDR(,CVTPTR) 01S0106 00298000 * IF R1PARML=0 THEN /* PARM ON EXEC @Y30LB55*/ 00299000 LTR @07,@07 01S0107 00300000 BNZ @RF00107 01S0107 00301000 * LINE(33:36)='NONE'; /* NO, SET TO NONE @Y30LB55*/ 00302000 MVC LINE+32(4,CVTPTR),@CC00920 01S0108 00303000 * ELSE 01S0109 00304000 * LINE(33:132)=R1PARMS(1:DUMPLEN);/* YES, MOVE LEN @Y30LB55*/ 00305000 B @RC00107 01S0109 00306000 @RF00107 MVI LINE+33(CVTPTR),C' ' 01S0109 00307000 MVC LINE+34(98,CVTPTR),LINE+33(CVTPTR) 01S0109 00308000 L @07,DUMPLEN(,CVTPTR) 01S0109 00309000 BCTR @07,0 01S0109 00310000 EX @07,@SM00990 01S0109 00311000 * RFY 01S0110 00312000 * R1 RSTD; /*@Y30LB55*/ 00313000 @RC00107 DS 0H 01S0111 00314000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @Y30LB55*/ 00315000 LA R1,WORKCALL(,CVTPTR) 01S0111 00316000 * CALL ISDAHEXP; /* DUMP PARM FIELD @Y30LB55*/ 00317000 L @15,@CV00906 01S0112 00318000 BALR @14,@15 01S0112 00319000 * DUMPLEN=LENGTH(ISDAPRMS); /* MOVE LENGTH ISDAPRMS @Y30LB55*/ 00320000 MVC DUMPLEN(4,CVTPTR),@CF00649 01S0113 00321000 * LINE=TRACEM03; /* MOVE TRACE MSG @Y30LB55*/ 00322000 MVI LINE+25(CVTPTR),C' ' 01S0114 00323000 MVC LINE+26(106,CVTPTR),LINE+25(CVTPTR) 01S0114 00324000 MVC LINE(25,CVTPTR),TRACEM03 01S0114 00325000 * DUMPADDR=PARMPTR; /* MOVE DUMP ADDRESS @Y30LB55*/ 00326000 MVC DUMPADDR(4,CVTPTR),PARMPTR(CVTPTR) 01S0115 00327000 * DUMPIDNO=99993; /* MOVE DUMP ID @Y30LB55*/ 00328000 MVC DUMPIDNO(4,CVTPTR),@CF00921 01S0116 00329000 * CALL ISDAHEXP; /* DUMP ISDAPRMS @Y30LB55*/ 00330000 L @15,@CV00906 01S0117 00331000 BALR @14,@15 01S0117 00332000 * RFY 01S0118 00333000 * R1 UNRSTD; /*@Y30LB55*/ 00334000 * END; /* END TRACE PRINT @Y30LB55*/ 00335000 * ELSE 01S0120 00336000 * ; /* CTRACE NOT ON @Y30LB55*/ 00337000 * 01S0120 00338000 @RF00100 DS 0H 01S0121 00339000 * /*****************************************************************/ 00340000 * /* */ 00341000 * /* END TRACE */ 00342000 * /* */ 00343000 * /*****************************************************************/ 00344000 * 01S0121 00345000 * IF RETCODE=0 THEN /* WAS ISDAPARM RETCODE=0@Y30LB55*/ 00346000 ICM @07,3,RETCODE(SDAWKPTR) 01S0121 00347000 BNZ @RF00121 01S0121 00348000 * DO; /* CONTINUE @Y30LB55*/ 00349000 * 01S0122 00350000 * /*************************************************************/ 00351000 * /* */ 00352000 * /* CALL ISDACNFG TO BUILD CONFIGUATION TABLE FOR PAD AND FSC */ 00353000 * /* */ 00354000 * /*************************************************************/ 00355000 * 01S0123 00356000 * RFY 01S0123 00357000 * R1 RSTD; /*@Y30LB55*/ 00358000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @Y30LB55*/ 00359000 LA R1,WORKCALL(,CVTPTR) 01S0124 00360000 * CALL ISDACNFG; /* (WORKPTR) CALL ISDACNFG 01S0125 00361000 * @Y30LB55*/ 00362000 L @15,@CV00898 01S0125 00363000 BALR @14,@15 01S0125 00364000 * RFY 01S0126 00365000 * R15 RSTD; /*@Y30LB55*/ 00366000 * RETCODFG=R15; /* SAVE RETURN CODE @Y30LB55*/ 00367000 STH R15,RETCODFG(,SDAWKPTR) 01S0127 00368000 * RFY 01S0128 00369000 * (R1, 01S0128 00370000 * R15) UNRSTD; /*@Y30LB55*/ 00371000 * IF RETCODFG^=0 THEN /* CHECK FOR BAD RETURN @Y30LB55*/ 00372000 LH @07,RETCODFG(,SDAWKPTR) 01S0129 00373000 LTR @07,@07 01S0129 00374000 BZ @RF00129 01S0129 00375000 * DO; /* BAD RETURN @Y30LB55*/ 00376000 * I=RETCODFG; /* MOVE ISDACNFG RETURN CODE 00377000 * @Y30LB55*/ 00378000 LR I,@07 01S0131 00379000 * SRL(I,2); /* DEVIDE BY 4 @Y30LB55*/ 00380000 SRL I,2 01S0132 00381000 * IF(I>5)&(I<10) THEN /* IS I 6-9 @Y30LB55*/ 00382000 CH I,@CH00175 01S0133 00383000 BNH @RF00133 01S0133 00384000 CH I,@CH00228 01S0133 00385000 BNL @RF00133 01S0133 00386000 * DO; /* YES @Y30LB55*/ 00387000 * TEMPPTR=ERRSEVER(I);/* SET PTR TO ERROR MESSAGE 01S0135 00388000 * @Y30LB55*/ 00389000 LR @07,I 01S0135 00390000 SLA @07,2 01S0135 00391000 L TEMPPTR,ERRSEVER-4(@07) 01S0135 00392000 * LINE=ISDA00X3; /* MOVE ERROR MESSAGE @Y30LB55*/ 00393000 MVI LINE+52(CVTPTR),C' ' 01S0136 00394000 MVC LINE+53(79,CVTPTR),LINE+52(CVTPTR) 01S0136 00395000 MVC LINE(52,CVTPTR),ISDA00X3(TEMPPTR) 01S0136 00396000 * END; /* END EXPECTED RETURN CODE 01S0137 00397000 * @Y30LB55*/ 00398000 * ELSE /* UNEXPECTED RETURN CODE@Y30LB55*/ 00399000 * DO; /* PRINT RETURN CODE @Y30LB55*/ 00400000 B @RC00133 01S0138 00401000 @RF00133 DS 0H 01S0139 00402000 * LINE=ISDA0004; /* MOVE ISDA0004 @Y30LB55*/ 00403000 MVI LINE+39(CVTPTR),C' ' 01S0139 00404000 MVC LINE+40(92,CVTPTR),LINE+39(CVTPTR) 01S0139 00405000 MVC LINE(39,CVTPTR),ISDA0004 01S0139 00406000 * CVD(RETCODFG,TEMP8);/* CONVERT RETURN CODE @Y30LB55*/ 00407000 LH @07,RETCODFG(,SDAWKPTR) 01S0140 00408000 CVD @07,TEMP8(,SDAWKPTR) 01S0140 00409000 * RCODE04=EDPAT03; /* MOVE EDIT PATTERN @Y30LB55*/ 00410000 MVC RCODE04(4,CVTPTR),EDPAT03 01S0141 00411000 * ED(RCODE04,TEMP78); /* EDIT RETURN CODE @Y30LB55*/ 00412000 ED RCODE04(4,CVTPTR),TEMP78(SDAWKPTR) 01S0142 00413000 * MSG04ID='CNF'; /* MOVE PGM ID @Y30LB55*/ 00414000 MVC MSG04ID(3,CVTPTR),@CC00925 01S0143 00415000 * MSG04ID0='G'; /* MOVE ID @Y30LB55*/ 00416000 MVI MSG04ID0(CVTPTR),C'G' 01S0144 00417000 * END; /* END UNEXPECTED RETURN @Y30LB55*/ 00418000 * ANSI=LSKIP2; /* SET 2 LINE SKIP @Y30LB55*/ 00419000 @RC00133 MVI ANSI(CVTPTR),C'0' 01S0146 00420000 * RFY 01S0147 00421000 * R1 RSTD; /*@Y30LB55*/ 00422000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 00423000 LA R1,WORKCALL(,CVTPTR) 01S0148 00424000 * CALL ISDAPRT0; /* WRITE MESSAGE TO SYSPRINT 00425000 * @Y30LB55*/ 00426000 L @15,@CV00900 01S0149 00427000 BALR @14,@15 01S0149 00428000 * ANSI=LSKIP1; /* RESET TO 1 SKIP @Y30LB55*/ 00429000 MVI ANSI(CVTPTR),C' ' 01S0150 00430000 * CALL ISDATYPE; /* WRITE MESSAGE TO SYSTERM 01S0151 00431000 * @Y30LB55*/ 00432000 L @15,@CV00904 01S0151 00433000 BALR @14,@15 01S0151 00434000 * RFY 01S0152 00435000 * R1 UNRSTD; /*@Y30LB55*/ 00436000 * IF CPAD^='00'X THEN /* WAS PATH ANALYSIS REQUESTED 00437000 * @Y30LB55*/ 00438000 CLI CPAD(LPARMPTR),X'00' 01S0153 00439000 BE @RF00153 01S0153 00440000 * DO; /* YES, MUST SHUT IT OFF @Y30LB55*/ 00441000 * CPAD='00'X; /* RESET PAD CALL FLAG @Y30LB55*/ 00442000 MVI CPAD(LPARMPTR),X'00' 01S0155 00443000 * LINE=ISDA0051; /* MOVE ISDA0051 @Y30LB55*/ 00444000 MVI LINE+64(CVTPTR),C' ' 01S0156 00445000 MVC LINE+65(67,CVTPTR),LINE+64(CVTPTR) 01S0156 00446000 MVC LINE(64,CVTPTR),ISDA0051 01S0156 00447000 * ANSI=LSKIP1; /* SET 1 LINE SKIP @Y30LB55*/ 00448000 MVI ANSI(CVTPTR),C' ' 01S0157 00449000 * RFY 01S0158 00450000 * R1 RSTD; /*@Y30LB55*/ 00451000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 00452000 LA R1,WORKCALL(,CVTPTR) 01S0159 00453000 * CALL ISDAPRT0; /* WRITE TO SYSPRINT @Y30LB55*/ 00454000 L @15,@CV00900 01S0160 00455000 BALR @14,@15 01S0160 00456000 * CALL ISDATYPE; /* WRITE TO SYSTERM @Y30LB55*/ 00457000 L @15,@CV00904 01S0161 00458000 BALR @14,@15 01S0161 00459000 * RFY 01S0162 00460000 * R1 UNRSTD; /*@Y30LB55*/ 00461000 * END; /* END NO PAD CODE @Y30LB55*/ 00462000 * ELSE 01S0164 00463000 * ; /* PATH ANALYSIS NOT REQUESTED 00464000 * @Y30LB55*/ 00465000 @RF00153 DS 0H 01S0165 00466000 * END; /* END NONE ZERO RETCODE FROM 00467000 * ISDACNFT @Y30LB55*/ 00468000 * ELSE 01S0166 00469000 * ; /* CONFIGUATION TABLE OK @Y30LB55*/ 00470000 * 01S0166 00471000 @RF00129 DS 0H 01S0167 00472000 * /*************************************************************/ 00473000 * /* */ 00474000 * /* SET LOCAL FLAGS FROM ISDAPRMS */ 00475000 * /* */ 00476000 * /*************************************************************/ 00477000 * 01S0167 00478000 * IF CHISTIN='Y' THEN 01S0167 00479000 CLI CHISTIN(LPARMPTR),C'Y' 01S0167 00480000 BNE @RF00167 01S0167 00481000 * INSOURCE='H'; /* SET HISTORY FLAG @Y30LB55*/ 00482000 MVI INSOURCE(SDAWKPTR),C'H' 01S0168 00483000 * ELSE 01S0169 00484000 * INSOURCE='L'; /* OR SET LOGREC FLAG @Y30LB55*/ 00485000 B @RC00167 01S0169 00486000 @RF00167 MVI INSOURCE(SDAWKPTR),C'L' 01S0169 00487000 * IF INSOURCE='H' THEN 01S0170 00488000 @RC00167 CLI INSOURCE(SDAWKPTR),C'H' 01S0170 00489000 BNE @RF00170 01S0170 00490000 * DDNAMEIN='SDAHISIN'; /* SDAHISIN DDNAME @Y30LB55*/ 00491000 MVC DDNAMEIN(8,SDAWKPTR),@CC00930 01S0171 00492000 * ELSE 01S0172 00493000 * DDNAMEIN='SDALOGIN'; /* SDALOGIN DDNAME @Y30LB55*/ 00494000 B @RC00170 01S0172 00495000 @RF00170 MVC DDNAMEIN(8,SDAWKPTR),@CC00931 01S0172 00496000 * 02S0173 00497000 * /*****************************************************************/ 00498000 * /* */ 00499000 * /* CODE TO SET REQUESTED START AND END DATES FROM CSTART, CEND, */ 00500000 * /* AND CPERIOD IN SDAPARMS. SETS CSTART AND CEND IF ZERO. */ 00501000 * /* */ 00502000 * /*****************************************************************/ 00503000 * 02S0173 00504000 * IF CEND<'00000010'X THEN /* IS CEND = ZERO @Y30LB55*/ 00505000 @RC00170 CLC CEND(4,LPARMPTR),@CB00932 02S0173 00506000 BNL @RF00173 02S0173 00507000 * IF CPERIOD>0 THEN /* WAS PERIOD REQUESTED @ZM30730*/ 00508000 CLI CPERIOD(LPARMPTR),0 02S0174 00509000 BNH @RF00174 02S0174 00510000 * CEND=TODAYDAT; /* YES, SET CEND TO TODAYS DATE 00511000 * @Y30LB55*/ 00512000 MVC CEND(4,LPARMPTR),TODAYDAT(SDAWKPTR) 02S0175 00513000 * ELSE /* NO, BOTH CEND AND PERIOD 02S0176 00514000 * ARE ZERO @ZM30730*/ 00515000 * CEND='0099999F'X; /* SET CEND TO 99999 @ZM30730*/ 00516000 B @RC00174 02S0176 00517000 @RF00174 MVC CEND(4,LPARMPTR),@CB00933 02S0176 00518000 * ELSE 02S0177 00519000 * ; /* CEND NOT ZERO @Y30LB55*/ 00520000 @RF00173 DS 0H 02S0178 00521000 * IF CSTART<'00000010'X THEN /* WAS START REQUESTED @Y30LB55*/ 00522000 @RC00173 CLC CSTART(4,LPARMPTR),@CB00932 02S0178 00523000 BNL @RF00178 02S0178 00524000 * IF CPERIOD>0 THEN /* NO, WAS PERIOD REQUESTED 02S0179 00525000 * @Y30LB55*/ 00526000 CLI CPERIOD(LPARMPTR),0 02S0179 00527000 BNH @RF00179 02S0179 00528000 * DO; /* YES, COMPUTE @Y30LB55 00529000 * CSTART=CEND-CPERIOD+1 @Y30LB55*/ 00530000 * CSTART=CEND; /* INIT TO CEND @Y30LB55*/ 00531000 MVC CSTART(4,LPARMPTR),CEND(LPARMPTR) 02S0181 00532000 * I=CPERIOD-1; /* I = NDAYS TO SUBTRACT @Y30LB55*/ 00533000 SLR I,I 02S0182 00534000 IC I,CPERIOD(,LPARMPTR) 02S0182 00535000 BCTR I,0 02S0182 00536000 * TEMP8=''B; /* CLEAR TEMP8 @Y30LB55*/ 00537000 XC TEMP8(8,SDAWKPTR),TEMP8(SDAWKPTR) 02S0183 00538000 * TEMP78=CEND(3:4); /* MOVE END DAY @Y30LB55*/ 00539000 MVC TEMP78(2,SDAWKPTR),CEND+2(LPARMPTR) 02S0184 00540000 * CVB(J,TEMP8); /* CONVERT DAY TO BINARY @Y30LB55*/ 00541000 CVB J,TEMP8(,SDAWKPTR) 02S0185 00542000 * IF I>=J THEN /* IS PERIOD>DAY @Y30LB55*/ 00543000 CR I,J 02S0186 00544000 BL @RF00186 02S0186 00545000 * I=I+635; /* YES, ADD COMPLIMENT OF 1 YEAR 00546000 * @Y30LB55*/ 00547000 AH I,@CH00935 02S0187 00548000 * ELSE 02S0188 00549000 * ; /* NO, I OK @Y30LB55*/ 00550000 @RF00186 DS 0H 02S0189 00551000 * CVD(I,TEMP8); /* CONVERT PERIOD TO DECIMAL 00552000 * @Y30LB55*/ 00553000 CVD I,TEMP8(,SDAWKPTR) 02S0189 00554000 * SP(CSTART,TEMP78); /* DEC SUBTRACT START-PERIOD 00555000 * @Y30LB55*/ 00556000 SP CSTART(4,LPARMPTR),TEMP78(2,SDAWKPTR) 02S0190 00557000 * CSTART(4)=CSTART(4)|'0F'X;/* FIX SIGN @Y30LB55*/ 00558000 OI CSTART+3(LPARMPTR),X'0F' 02S0191 00559000 * END; /* END COMPUTE START @Y30LB55*/ 00560000 * ELSE 02S0193 00561000 * ; /* PERIOD NOT REQUESTED @Y30LB55*/ 00562000 @RF00179 DS 0H 02S0194 00563000 * ELSE 02S0194 00564000 * ; /* START WAS REQUESTED, IGNORE 00565000 * PERIOD @Y30LB55*/ 00566000 @RF00178 DS 0H 02S0195 00567000 * CDETAIL(7)='1'B; /* SET SPARE BIT FOR CTRACE 02S0195 00568000 * COMPARE @Y30LB55*/ 00569000 OI CDETAIL(LPARMPTR),B'00000010' 02S0195 00570000 */* END OF STARTEND @Y30LB55*/ 00571000 * 02S0196 00572000 * 01S0196 00573000 * /*************************************************************/ 00574000 * /* */ 00575000 * /* BUILD SDA OUTPUT HEADER FOR ISDAPRT0 WITH REQUESTED */ 00576000 * /* INTERVAL OF THE INPUT DATA. */ 00577000 * /* */ 00578000 * /*************************************************************/ 00579000 * 01S0196 00580000 * IF CDETAIL(1:6)='000000'B THEN /* DETAIL PRINT @ZD00192*/ 00581000 TM CDETAIL(LPARMPTR),B'11111100' 01S0196 00582000 BNZ @RF00196 01S0196 00583000 * LINE=SDAHEADL; /* NO, MOVE LEFT HEADER @ZD00192*/ 00584000 MVI LINE+20(CVTPTR),C' ' 01S0197 00585000 MVC LINE+21(111,CVTPTR),LINE+20(CVTPTR) 01S0197 00586000 MVC LINE(20,CVTPTR),SDAHEADL 01S0197 00587000 * ELSE /* YES, DETAIL PRINT @ZD00192*/ 00588000 * LINE=SDAHEADD; /* MOVE DETAIL HEADER @ZD00192*/ 00589000 B @RC00196 01S0198 00590000 @RF00196 MVI LINE+40(CVTPTR),C' ' 01S0198 00591000 MVC LINE+41(91,CVTPTR),LINE+40(CVTPTR) 01S0198 00592000 MVC LINE(40,CVTPTR),SDAHEADD 01S0198 00593000 * MTITLE0=SDAINHD; /* MOVE INPUT PHASE HEADER 01S0199 00594000 * @Y30LB55*/ 00595000 @RC00196 MVC MTITLE0(9,CVTPTR),SDAINHD 01S0199 00596000 * MTITLE=SDAHEADM; /* MOVE MIDDLE HEADER @Y30LB55*/ 00597000 MVC MTITLE(26,CVTPTR),SDAHEADM 01S0200 00598000 * RTITLE=SDAHEADR; /* MOVE RIGHT HEADER @Y30LB55*/ 00599000 MVC RTITLE(8,CVTPTR),SDAHEADR 01S0201 00600000 * UNPK(TEMP7,CSTART); /* UNPACK LOW DATE @Y30LB55*/ 00601000 UNPK TEMP7(7,SDAWKPTR),CSTART(4,LPARMPTR) 01S0202 00602000 * HDRSDAY=TEMP7(5:7); /* MOVE LOW DAY @Y30LB55*/ 00603000 MVC HDRSDAY(3,CVTPTR),TEMP7+4(SDAWKPTR) 01S0203 00604000 * HDRSYEAR=TEMP7(3:4); /* MOVE LOW YEAR @Y30LB55*/ 00605000 MVC HDRSYEAR(2,CVTPTR),TEMP7+2(SDAWKPTR) 01S0204 00606000 * UNPK(TEMP7,CEND); /* UNPACK HIGH DATE @Y30LB55*/ 00607000 UNPK TEMP7(7,SDAWKPTR),CEND(4,LPARMPTR) 01S0205 00608000 * HDREDAY=TEMP7(5:7); /* MOVE HIGH DAY @Y30LB55*/ 00609000 MVC HDREDAY(3,CVTPTR),TEMP7+4(SDAWKPTR) 01S0206 00610000 * HDREYEAR=TEMP7(3:4); /* MOVE HIGH YEAR @Y30LB55*/ 00611000 MVC HDREYEAR(2,CVTPTR),TEMP7+2(SDAWKPTR) 01S0207 00612000 * RFY 01S0208 00613000 * R1 RSTD; /*@Y30LB55*/ 00614000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 00615000 LA R1,WORKCALL(,CVTPTR) 01S0209 00616000 * CALL ISDAPRTH; /* PASS HEADER TO ISDAPRT0 01S0210 00617000 * @Y30LB55*/ 00618000 L @15,@CV00902 01S0210 00619000 BALR @14,@15 01S0210 00620000 * ANSI=PSKIP; /* SET PAGE SKIP @Y30LB55*/ 00621000 MVI ANSI(CVTPTR),C'1' 01S0211 00622000 * LINE=''; /* MOVE BLANK LINE TO OUTPUT 00623000 * @Y30LB55*/ 00624000 MVI LINE(CVTPTR),C' ' 01S0212 00625000 MVC LINE+1(131,CVTPTR),LINE(CVTPTR) 01S0212 00626000 * CALL ISDAPRT0; /* CALL PRINT PROC TO FORCE NEW 00627000 * HEADER @Y30LB55*/ 00628000 L @15,@CV00900 01S0213 00629000 BALR @14,@15 01S0213 00630000 * RFY 01S0214 00631000 * R1 UNRSTD; /*@Y30LB55*/ 00632000 * END; /* END PARAMETER ANALYSIS CODE 00633000 * @Y30LB55*/ 00634000 * ELSE 01S0216 00635000 * ; /* BAD RETURN FROM ISDAPARM - SDA 00636000 * WILL ABORT @Y30LB55*/ 00637000 * 01S0216 00638000 @RF00121 DS 0H 01S0217 00639000 * /*****************************************************************/ 00640000 * /* */ 00641000 * /* START READ INPUT LOOP */ 00642000 * /* */ 00643000 * /*****************************************************************/ 00644000 * 01S0217 00645000 * DO WHILE(RETCODIN=0); /* READ LOOP @Y30LB55*/ 00646000 B @DE00217 01S0217 00647000 @DL00217 DS 0H 01S0218 00648000 * RFY 01S0218 00649000 * R1 RSTD; /*@Y30LB55*/ 00650000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @Y30LB55*/ 00651000 LA R1,WORKCALL(,CVTPTR) 01S0219 00652000 * IF INSOURCE='H' THEN 01S0220 00653000 CLI INSOURCE(SDAWKPTR),C'H' 01S0220 00654000 BNE @RF00220 01S0220 00655000 * CALL ISDAHIST; /* (LOGPTR) READ HISTORY @Y30LB55*/ 00656000 L @15,@CV00907 01S0221 00657000 BALR @14,@15 01S0221 00658000 * ELSE 01S0222 00659000 * CALL ISDALOG0; /* (LOGPTR) OR READ LOGREC 01S0222 00660000 * @Y30LB55*/ 00661000 B @RC00220 01S0222 00662000 @RF00220 L @15,@CV00908 01S0222 00663000 BALR @14,@15 01S0222 00664000 * RFY 01S0223 00665000 * R15 RSTD; /*@Y30LB55*/ 00666000 @RC00220 DS 0H 01S0224 00667000 * RETCODIN=R15; /* SET RETURN CODE FROM IO 01S0224 00668000 * ROUTINE @Y30LB55*/ 00669000 STH R15,RETCODIN(,SDAWKPTR) 01S0224 00670000 * RFY 01S0225 00671000 * (R1, 01S0225 00672000 * R15) UNRSTD; /*@Y30LB55*/ 00673000 * /***************************************************************/ 00674000 * /* */ 00675000 * /* ANALYZE INPUT DATA */ 00676000 * /* */ 00677000 * /***************************************************************/ 00678000 * 01S0226 00679000 * IF RETCODIN=0 THEN 01S0226 00680000 LH @07,RETCODIN(,SDAWKPTR) 01S0226 00681000 LTR @07,@07 01S0226 00682000 BNZ @RF00226 01S0226 00683000 * DO; /* START DATA ANALYSIS CODE 01S0227 00684000 * @Y30LB55*/ 00685000 * 01S0227 00686000 * /***********************************************************/ 00687000 * /* */ 00688000 * /* INITIALIZE LOCAL FLAGS */ 00689000 * /* */ 00690000 * /***********************************************************/ 00691000 * 01S0228 00692000 * 02S0228 00693000 * /*****************************************************************/ 00694000 * /* */ 00695000 * /* CODE TO INITIALIZE LOCAL FLAGS */ 00696000 * /* */ 00697000 * /*****************************************************************/ 00698000 * 02S0228 00699000 * LOGPTR=DATAPTR; /* SET LOCAL PTR TO DATA @Y30LB55*/ 00700000 L @07,DATAPTR(,CVTPTR) 02S0228 00701000 ST @07,LOGPTR(,SDAWKPTR) 02S0228 00702000 * SENSEPTR=LOGPTR; /* SET SENSEPTR TO START @Y30LB55*/ 00703000 ST @07,SENSEPTR(,SDAWKPTR) 02S0229 00704000 * LINE=ISDA0008; /* MOVE MSG08 @Y30LB55*/ 00705000 MVI LINE+34(CVTPTR),C' ' 02S0230 00706000 MVC LINE+35(97,CVTPTR),LINE+34(CVTPTR) 02S0230 00707000 MVC LINE(34,CVTPTR),ISDA0008 02S0230 00708000 * XXIDSAVE='SDA'; /* INIT REJECT MESSAGE TO SDA 00709000 * @Y30LB55*/ 00710000 MVC XXIDSAVE(3,SDAWKPTR),@CC00941 02S0231 00711000 * USEFLAG=''B; /* SET PRINT FLAG OFF @Y30LB55*/ 00712000 MVI USEFLAG(SDAWKPTR),X'00' 02S0232 00713000 * INDEVTYP=''; /* CLEAR DEVICE FLAG @Y30LB55*/ 00714000 MVI INDEVTYP(SDAWKPTR),C' ' 02S0233 00715000 * DLENGTH=SLENGTH-4; /* INITIALYZE SENSE LENGTH 02S0234 00716000 * @Y30LB55*/ 00717000 LH @07,SLENGTH(,@07) 02S0234 00718000 SH @07,@CH00101 02S0234 00719000 STH @07,DLENGTH(,SDAWKPTR) 02S0234 00720000 * CLENGTH=DLENGTH; /* SET INPUT LENGTH FOR HEX PRINT 00721000 * @Y30LB55*/ 00722000 STH @07,CLENGTH(,SDAWKPTR) 02S0235 00723000 * SDAFLAG0(8)='0'B; /* RESET FSC BIT @Y30LB55*/ 00724000 NI SDAFLAG0(SDAWKPTR),B'11111110' 02S0236 00725000 * IF DLENGTH>8 THEN /* VALID DATA RECORD @ZA14729*/ 00726000 CH @07,@CH00066 02S0237 00727000 BNH @RF00237 02S0237 00728000 * NINREC=NINREC+1; /* YES, INC RECORD COUNT @ZA14729*/ 00729000 LA @07,1 02S0238 00730000 AL @07,NINREC(,SDAWKPTR) 02S0238 00731000 ST @07,NINREC(,SDAWKPTR) 02S0238 00732000 * ELSE; /* NO, IGNORE CONCATENATE 02S0239 00733000 * DATASET RECORD @ZA14729*/ 00734000 @RF00237 DS 0H 02S0240 00735000 */* END OF INITRECF @Y30LB55*/ 00736000 * 02S0240 00737000 * 01S0240 00738000 * /***********************************************************/ 00739000 * /* */ 00740000 * /* CHECK RECORD TYPE = OBR OR MDR */ 00741000 * /* */ 00742000 * /***********************************************************/ 00743000 * 01S0240 00744000 * 02S0240 00745000 * /*****************************************************************/ 00746000 * /* */ 00747000 * /* CHECK RECORD TYPE = OBR OR MDR */ 00748000 * /* */ 00749000 * /*****************************************************************/ 00750000 * 02S0240 00751000 * IF CLASRC(1:4)=OBRT THEN /* TYPE=OBR @Y30LB55*/ 00752000 L @07,LOGPTR(,SDAWKPTR) 02S0240 00753000 TM CLASRC(@07),B'00110000' 02S0240 00754000 BNO @RF00240 02S0240 00755000 TM CLASRC(@07),B'11000000' 02S0240 00756000 BNZ @RF00240 02S0240 00757000 * DO; /* SETS USEFLAG(8)=1 IF SS1 02S0241 00758000 * RECORD @Y30LB55*/ 00759000 * 02S0241 00760000 * /*************************************************************/ 00761000 * /* */ 00762000 * /* OBR RECORDS. THIS PROC ANALYZES OBR RECORDS AND SETS */ 00763000 * /* USEFLAG(8)=1 IF THE RECORD IS FROM THE SUBSYSTEM, */ 00764000 * /* DEVPTR=PTR TO DEVICE TYPE, SENSEPTR=PTR TO SENSE DATA, */ 00765000 * /* DLENGTH=LENGTH OF SENSE DATA, INDEVTYP=DEVICE FLAG, */ 00766000 * /* IRECTYPE=REC TYPE FLAG, AND INRECCUA=CUA IN THE RECORD. */ 00767000 * /* */ 00768000 * /*************************************************************/ 00769000 * 02S0242 00770000 * IRECTYPE='O'; /* SET OBR TYPE FLAG @Y30LB55*/ 00771000 MVI IRECTYPE(SDAWKPTR),C'O' 02S0242 00772000 * IF SWITCH1(3)='1'B THEN 02S0243 00773000 TM SWITCH1(@07),B'00100000' 02S0243 00774000 BNO @RF00243 02S0243 00775000 * DO; /* SHORT OBR RECORDS @Y30LB55*/ 00776000 * DEVPTR=ADDR(DEVTYPE1); /* SET PTR TO DEVICE TYPE@Y30LB55*/ 00777000 LA @15,DEVTYPE1(,@07) 02S0245 00778000 ST @15,DEVPTR(,SDAWKPTR) 02S0245 00779000 * SENSEPTR=ADDR(SDRINF); /* ADDRESS OF SENSE @Y30LB55*/ 00780000 LA @15,SDRINF(,@07) 02S0246 00781000 ST @15,SENSEPTR(,SDAWKPTR) 02S0246 00782000 * DLENGTH=SLENGTH-36; /* SET LENGTH OF SENSE DATA 02S0247 00783000 * @Y30LB55*/ 00784000 LH @15,SLENGTH(,@07) 02S0247 00785000 SH @15,@CH00627 02S0247 00786000 STH @15,DLENGTH(,SDAWKPTR) 02S0247 00787000 * INRECCUA=CUA2(2:3); /* SAVE CUA @Y30LB55*/ 00788000 MVC INRECCUA(2,SDAWKPTR),CUA2+1(@07) 02S0248 00789000 * END; /* END SHORT OBR @Y30LB55*/ 00790000 * ELSE 02S0250 00791000 * DO; /* LONG OBR RECORDS @Y30LB55*/ 00792000 B @RC00243 02S0250 00793000 @RF00243 DS 0H 02S0251 00794000 * DEVPTR=ADDR(DEVTYPE2); /* SET PTR TO DEVICE TYPE@Y30LB55*/ 00795000 L @07,LOGPTR(,SDAWKPTR) 02S0251 00796000 LA @15,DEVTYPE2(,@07) 02S0251 00797000 ST @15,DEVPTR(,SDAWKPTR) 02S0251 00798000 * SENSEPTR=ADDR(DEVDEP2); /* SET PTR TO SENSE DATA @Y30LB55*/ 00799000 LA @15,DEVDEP2(,@07) 02S0252 00800000 ST @15,SENSEPTR(,SDAWKPTR) 02S0252 00801000 * SENSEPTR=SENSEPTR+DEVDEPC*8+SDRCNT2;/* DEVICE+SDR@Y30LB55*/ 00802000 SLR @14,@14 02S0253 00803000 IC @14,DEVDEPC(,@07) 02S0253 00804000 SLA @14,3 02S0253 00805000 ALR @15,@14 02S0253 00806000 SLR @14,@14 02S0253 00807000 IC @14,SDRCNT2(,@07) 02S0253 00808000 ALR @15,@14 02S0253 00809000 ST @15,SENSEPTR(,SDAWKPTR) 02S0253 00810000 * DLENGTH=SENSCNT; /* SET LENGTH OF SENSE DATA 02S0254 00811000 * @Y30LB55*/ 00812000 MVC DLENGTH(2,SDAWKPTR),SENSCNT(@07) 02S0254 00813000 * INRECCUA=PCUA(2:3); /* SAVE CUA @Y30LB55*/ 00814000 MVC INRECCUA(2,SDAWKPTR),PCUA+1(@07) 02S0255 00815000 * END; /* END LONG OBR @Y30LB55*/ 00816000 * IF CLASTYPE=OBRMSC THEN 02S0257 00817000 @RC00243 L @07,DEVPTR(,SDAWKPTR) 02S0257 00818000 CLC CLASTYPE(2,@07),@CB00393 02S0257 00819000 BNE @RF00257 02S0257 00820000 * DO; /* MSC RECORD @Y30LB55*/ 00821000 * USEFLAG(8)='1'B; /* SET USE FLAG @Y30LB55*/ 00822000 OI USEFLAG(SDAWKPTR),B'00000001' 02S0259 00823000 * INDEVTYP='S'; /* SET DEVICE FLAG TO SUBSYSTEM 00824000 * @Y30LB55*/ 00825000 MVI INDEVTYP(SDAWKPTR),C'S' 02S0260 00826000 * END; /* END CLASTYPE=OBRMSC @Y30LB55*/ 00827000 * 02S0262 00828000 * /*************************************************************/ 00829000 * /* */ 00830000 * /* 3330 RECORDS */ 00831000 * /* */ 00832000 * /*************************************************************/ 00833000 * 02S0262 00834000 * ELSE 02S0262 00835000 * IF CLASTYPE=OBR3330|CLASTYPE=OBR33302 THEN 02S0262 00836000 B @RC00257 02S0262 00837000 @RF00257 L @07,DEVPTR(,SDAWKPTR) 02S0262 00838000 CLC CLASTYPE(2,@07),@CB00389 02S0262 00839000 BE @RT00262 02S0262 00840000 CLC CLASTYPE(2,@07),@CB00391 02S0262 00841000 BNE @RF00262 02S0262 00842000 @RT00262 DS 0H 02S0263 00843000 * DO; /* 3330 MOD 1 OR 11 @ZM31072*/ 00844000 * 02S0263 00845000 * /*******************************************************/ 00846000 * /* */ 00847000 * /* NOTE - THIS CODE ACCEPTS ALL 3330 MOD 1 AND 11 */ 00848000 * /* */ 00849000 * /*******************************************************/ 00850000 * 02S0264 00851000 */* IF DLENGTH>24 THEN 3330 IN THE SUBSYSTEM @Y30LB55*/ 00852000 * 02S0264 00853000 * USEFLAG(8)='1'B; /* SET USE FLAG @Y30LB55*/ 00854000 OI USEFLAG(SDAWKPTR),B'00000001' 02S0264 00855000 */* ELSE 3330 NOT IN THE SUBSYSTEM @Y30LB55*/ 00856000 * 02S0265 00857000 * IF OPTFLAGS(5)='1'B THEN/* VIRTUAL 3330 @Y30LB55*/ 00858000 L @07,DEVPTR(,SDAWKPTR) 02S0265 00859000 TM OPTFLAGS(@07),B'00001000' 02S0265 00860000 BNO @RF00265 02S0265 00861000 * DO; /* YES, SET VIRTUAL FLAGS@Y30LB55*/ 00862000 * INDEVTYP='V'; /* SET VIRTUAL IN SDAWORK@Y30LB55*/ 00863000 MVI INDEVTYP(SDAWKPTR),C'V' 02S0267 00864000 * CUABYTE1(3:8)='000000'B;/* ZERO BITS 2-7 @Y30LB55*/ 00865000 NI CUABYTE1(SDAWKPTR),B'11000000' 02S0268 00866000 * TEMP1=RUADASD&'1F'X; /* ZERO BITS 0-1 @Y30LB55*/ 00867000 L @07,SENSEPTR(,SDAWKPTR) 02S0269 00868000 MVC TEMP1(1,SDAWKPTR),RUADASD(@07) 02S0269 00869000 NI TEMP1(SDAWKPTR),X'1F' 02S0269 00870000 * CUABYTE1=CUABYTE1|TEMP1; /* OR 2 TOGETHER @Y30LB55*/ 00871000 OC CUABYTE1(1,SDAWKPTR),TEMP1(SDAWKPTR) 02S0270 00872000 * IF RUADASD='FF'X THEN /* INVALID RUA @ZA12870*/ 00873000 CLI RUADASD(@07),X'FF' 02S0271 00874000 BNE @RF00271 02S0271 00875000 * INRECCUA=SECUA(2:3); /* YES, MOVE VUA @ZA14729*/ 00876000 L @07,LOGPTR(,SDAWKPTR) 02S0272 00877000 MVC INRECCUA(2,SDAWKPTR),SECUA+1(@07) 02S0272 00878000 * ELSE; /* RUA IS OK @ZA12870*/ 00879000 @RF00271 DS 0H 02S0274 00880000 * END; /* END VIRTUAL @Y30LB55*/ 00881000 * ELSE 02S0275 00882000 * INDEVTYP='R'; /* REAL 3330 @Y30LB55*/ 00883000 B @RC00265 02S0275 00884000 @RF00265 MVI INDEVTYP(SDAWKPTR),C'R' 02S0275 00885000 * END; /* END CLASTYPE=OBR3330 @Y30LB55*/ 00886000 * ELSE 02S0277 00887000 * ; /* NOT MSS OR 3330 TYPE @Y30LB55*/ 00888000 @RF00262 DS 0H 02S0278 00889000 * END; /* END OBR CODE @Y30LB55*/ 00890000 * ELSE 02S0279 00891000 * IF CLASRC(1:4)=MDRT THEN /* TYPE=MDR @Y30LB55*/ 00892000 B @RC00240 02S0279 00893000 @RF00240 L @07,LOGPTR(,SDAWKPTR) 02S0279 00894000 TM CLASRC(@07),B'10010000' 02S0279 00895000 BNO @RF00279 02S0279 00896000 TM CLASRC(@07),B'01100000' 02S0279 00897000 BNZ @RF00279 02S0279 00898000 * DO; /* SET USEFLAG(8)=1 IF SS1 RECORD 00899000 * @Y30LB55*/ 00900000 * 02S0280 00901000 * /***********************************************************/ 00902000 * /* */ 00903000 * /* MDR RECORDS. THIS PROC ANALYZES MDR RECORDS AND SETS */ 00904000 * /* USEFLAG(8)=1 IF THE RECORD IS FROM THE SUBSYSTEM, */ 00905000 * /* SENSEPTR=PTR TO SENSE DATA, DELNGTH=LENGTH OF SENSE */ 00906000 * /* DATA, INDEVTYP=DEVICE FLAG, IRECTYPE=REC TYPE FLAG, AND */ 00907000 * /* INRECCUA=CUA IN THE RECORD. */ 00908000 * /* */ 00909000 * /***********************************************************/ 00910000 * 02S0281 00911000 * IRECTYPE='M'; /* SET MDR TYPE FLAG @Y30LB55*/ 00912000 MVI IRECTYPE(SDAWKPTR),C'M' 02S0281 00913000 * INRECCUA=MDRCUA; /* SAVE CUA @Y30LB55*/ 00914000 MVC INRECCUA(2,SDAWKPTR),MDRCUA(@07) 02S0282 00915000 * SENSEPTR=ADDR(SDRINF); /* ADDR OF SENSE @Y30LB55*/ 00916000 LA @15,SDRINF(,@07) 02S0283 00917000 ST @15,SENSEPTR(,SDAWKPTR) 02S0283 00918000 * DLENGTH=SLENGTH-36; /* SET LENGTH OF SENSE DATA 02S0284 00919000 * @Y30LB55*/ 00920000 LH @15,SLENGTH(,@07) 02S0284 00921000 SH @15,@CH00627 02S0284 00922000 STH @15,DLENGTH(,SDAWKPTR) 02S0284 00923000 * IF SWITCH2=MDRMSC THEN /* MSS BUFFERED LOG @Y30LB55*/ 00924000 CLI SWITCH2(@07),X'0E' 02S0285 00925000 BNE @RF00285 02S0285 00926000 * DO; /* YES, MSS RECORD @Y30LB55*/ 00927000 * USEFLAG(8)='1'B; /* SET USE FLAG @Y30LB55*/ 00928000 OI USEFLAG(SDAWKPTR),B'00000001' 02S0287 00929000 * INDEVTYP='S'; /* SET DEVICE FLAG TO SUBSYSTEM 00930000 * @Y30LB55*/ 00931000 MVI INDEVTYP(SDAWKPTR),C'S' 02S0288 00932000 * END; /* END MSC MDR RECORD @Y30LB55*/ 00933000 * ELSE /* NOT MSS MDR RECORD @Y30LB55*/ 00934000 * IF SWITCH2=MDR3330|SWITCH2=MDR33302 THEN /* 3330 MOD 1,11 00935000 * @ZM31072*/ 00936000 B @RC00285 02S0290 00937000 @RF00285 L @07,LOGPTR(,SDAWKPTR) 02S0290 00938000 CLI SWITCH2(@07),X'01' 02S0290 00939000 BE @RT00290 02S0290 00940000 CLI SWITCH2(@07),X'0A' 02S0290 00941000 BNE @RF00290 02S0290 00942000 @RT00290 DS 0H 02S0291 00943000 * DO; /* YES @Y30LB55*/ 00944000 * USEFLAG(8)='1'B; /* SET USE FLAG @Y30LB55*/ 00945000 OI USEFLAG(SDAWKPTR),B'00000001' 02S0292 00946000 * IF DLENGTH=24 THEN /* REAL 3330 MDR @ZA27780*/ 00947000 CLC DLENGTH(2,SDAWKPTR),@CH00068 02S0293 00948000 BNE @RF00293 02S0293 00949000 * INDEVTYP='R'; /* SET REAL 3330 FLAG @Y30LB55*/ 00950000 MVI INDEVTYP(SDAWKPTR),C'R' 02S0294 00951000 * ELSE /* MDR FOR VIRTUAL 3330 @YD00147*/ 00952000 * IF DLENGTH>24 THEN /* NOT REAL 3330 @ZA27780*/ 00953000 B @RC00293 02S0295 00954000 @RF00293 LH @07,DLENGTH(,SDAWKPTR) 02S0295 00955000 CH @07,@CH00068 02S0295 00956000 BNH @RF00295 02S0295 00957000 * DO; /* CALCULATE RUA @ZA11668*/ 00958000 * INDEVTYP='V'; /* SET VIRTUAL 3330 FLAG @YD00147*/ 00959000 MVI INDEVTYP(SDAWKPTR),C'V' 02S0297 00960000 * CUABYTE1(3:8)='000000'B;/* ZERO 2-7 @ZA11668*/ 00961000 NI CUABYTE1(SDAWKPTR),B'11000000' 02S0298 00962000 * TEMP1=RUADASD&'1F'X; /* ZERO 0-1 @ZA11668*/ 00963000 L @07,SENSEPTR(,SDAWKPTR) 02S0299 00964000 MVC TEMP1(1,SDAWKPTR),RUADASD(@07) 02S0299 00965000 NI TEMP1(SDAWKPTR),X'1F' 02S0299 00966000 * CUABYTE1=CUABYTE1|TEMP1; /* OR @ZA11668*/ 00967000 OC CUABYTE1(1,SDAWKPTR),TEMP1(SDAWKPTR) 02S0300 00968000 * IF RUADASD='FF'X THEN /* INVALID RUA @ZA11668*/ 00969000 CLI RUADASD(@07),X'FF' 02S0301 00970000 BNE @RF00301 02S0301 00971000 * INRECCUA=MDRCUA; /* YES, MOVE VUA @ZA11668*/ 00972000 L @07,LOGPTR(,SDAWKPTR) 02S0302 00973000 MVC INRECCUA(2,SDAWKPTR),MDRCUA(@07) 02S0302 00974000 * ELSE; /* RUA IS OK @ZA11668*/ 00975000 @RF00301 DS 0H 02S0304 00976000 * END; /* END VIRTUAL DASD @ZA11668*/ 00977000 * ELSE /* LESS THAN 24 -INVALID @ZA27780*/ 00978000 * USEFLAG(8)='0'B; /* SET FLAG TO NOT USED @ZA27780*/ 00979000 B @RC00295 02S0305 00980000 @RF00295 NI USEFLAG(SDAWKPTR),B'11111110' 02S0305 00981000 * END; /* END 3330 MDR @Y30LB55*/ 00982000 * ELSE /* NOT MSS OR 3330 MDR @Y30LB55*/ 00983000 * ; /* NO MORE CHECKS @Y30LB55*/ 00984000 @RF00290 DS 0H 02S0308 00985000 * END; /* END MDR CODE @Y30LB55*/ 00986000 * ELSE 02S0309 00987000 * IRECTYPE=''; /* NOT OBR OR MDR @Y30LB55*/ 00988000 B @RC00279 02S0309 00989000 @RF00279 MVI IRECTYPE(SDAWKPTR),C' ' 02S0309 00990000 * 02S0310 00991000 * /*****************************************************************/ 00992000 * /* */ 00993000 * /* SPECIAL CODE TO IGNORE REAL 3350 EMULATING 3330-1 */ 00994000 * /* */ 00995000 * /*****************************************************************/ 00996000 * 02S0310 00997000 * IF INDEVTYP='R'|INDEVTYP='V' THEN /* HAVE DASD RECORD @ZA17150*/ 00998000 @RC00279 DS 0H 02S0310 00999000 @RC00240 CLI INDEVTYP(SDAWKPTR),C'R' 02S0310 01000000 BE @RT00310 02S0310 01001000 CLI INDEVTYP(SDAWKPTR),C'V' 02S0310 01002000 BNE @RF00310 02S0310 01003000 @RT00310 DS 0H 02S0311 01004000 * IF SSIDDEVT(1)='1'B THEN /* 3350 IN COMPATABILITY MODE 01005000 * @ZA17150*/ 01006000 L @07,SENSEPTR(,SDAWKPTR) 02S0311 01007000 TM SSIDDEVT(@07),B'00001000' 02S0311 01008000 BNO @RF00311 02S0311 01009000 * USEFLAG(8)='0'B; /* YES, IGNORE REAL 3350 @ZA17150*/ 01010000 NI USEFLAG(SDAWKPTR),B'11111110' 02S0312 01011000 * ELSE; /* NO, MUST BE 3330 @ZA17150*/ 01012000 @RF00311 DS 0H 02S0314 01013000 * ELSE; /* NOT DASD @ZA17150*/ 01014000 @RF00310 DS 0H 02S0315 01015000 */* END OF OBRMDRCK @Y30LB55*/ 01016000 * 02S0315 01017000 * SDATAPTR=SENSEPTR; /* SET SENSE PTR IN ISDACVT 01S0315 01018000 * @Y30LB55*/ 01019000 * 01S0315 01020000 MVC SDATAPTR(4,CVTPTR),SENSEPTR(SDAWKPTR) 01S0315 01021000 * /***********************************************************/ 01022000 * /* */ 01023000 * /* IF USEFLAG(8)=1 CONTINUE, CHECK DATA FOR ERRORS */ 01024000 * /* */ 01025000 * /***********************************************************/ 01026000 * 01S0316 01027000 * IF USEFLAG(8)='1'B THEN /* CHECK DATA @Y30LB55*/ 01028000 TM USEFLAG(SDAWKPTR),B'00000001' 01S0316 01029000 BNO @RF00316 01S0316 01030000 * CALL DATACHEK; /* SETS USEFLAG(8)=0 IF BAD DATA 01031000 * @Y30LB55*/ 01032000 BAL @14,DATACHEK 01S0317 01033000 * ELSE; /* NOT USING THIS RECORD @Y30LB55*/ 01034000 * 01S0318 01035000 @RF00316 DS 0H 01S0319 01036000 * /***********************************************************/ 01037000 * /* */ 01038000 * /* IF USEFLAG(8)=1 CONTINUE, PASS DATA TO REPORTS */ 01039000 * /* */ 01040000 * /***********************************************************/ 01041000 * 01S0319 01042000 * IF USEFLAG(8)='1'B THEN 01S0319 01043000 TM USEFLAG(SDAWKPTR),B'00000001' 01S0319 01044000 BNO @RF00319 01S0319 01045000 * DO; /* USE THIS RECORD @Y30LB55*/ 01046000 * /*******************************************************/ 01047000 * /* */ 01048000 * /* INCLUDE SDAFMTCK TO BUILD FORMAT MASKS */ 01049000 * /* */ 01050000 * /*******************************************************/ 01051000 * 02S0321 01052000 * /*****************************************************************/ 01053000 * /* */ 01054000 * /* SDAFMTCK - CODE TO BUILD FORMAT, SUBFORMAT, MSG CODE MASKS. */ 01055000 * /* THIS PROC CONMERTS SUBFORMAT NUMBER OR MESSAGE CODE INTO THE */ 01056000 * /* SAVE 1 BIT CODE THAT MSC FORMAT NUMBER IS IN. BOTH SUBFORMAT */ 01057000 * /* AND MESSAGE CODE HAVE A RANGE OF 0-15 AND ARE CONVERTED TO 16 */ 01058000 * /* BIT MASKS NAMED SUBFCHK AND MSGCDCHK. LIKE FORMAT NUMBER, IF */ 01059000 * /* SUBFORMAT=0 THEN SUBFCHK(1)=1, IF SUBFORMAT=1 THEN */ 01060000 * /* SUBFCHK(2)=1, ETC. THESE 3 MASKS, FMTCHK, SUBFCHK, AND */ 01061000 * /* MSGCDCHK, ARE APPLIED TO TO THE CORRESPONDING MASKS FOR EACH */ 01062000 * /* ACCUMULATOR PROC NAMED XXXFMT, XXXSUBF, AND XXXMSGCD WHERE XXX*/ 01063000 * /* = 1ST 3 CHARACTERS OF THE ACCUMULATOR PROC. THESE TABLES ARE */ 01064000 * /* ALL IN RPTTABLE, THE MAIN DECISION TABLE FOR ISDASDA0. */ 01065000 * /* */ 01066000 * /*****************************************************************/ 01067000 * 02S0321 01068000 * IF INDEVTYP='S' THEN 02S0321 01069000 CLI INDEVTYP(SDAWKPTR),C'S' 02S0321 01070000 BNE @RF00321 02S0321 01071000 * DO; /* RECORD FROM SUBSYSTEM @Y30LB55*/ 01072000 * FMTCHK=FORMATNO&'11111100'B;/* SET FORMAT MASK @Y30LB55*/ 01073000 L @07,SENSEPTR(,SDAWKPTR) 02S0323 01074000 MVC FMTCHK(1,SDAWKPTR),FORMATNO(@07) 02S0323 01075000 NI FMTCHK(SDAWKPTR),B'11111100' 02S0323 01076000 * SUBFSAVE=SUBFMTMG; /* SET SUBFORMAT + MESSAGE CODE 01077000 * @Y30LB55*/ 01078000 MVC SUBFSAVE(1,SDAWKPTR),SUBFMTMG(@07) 02S0324 01079000 * END; /*@Y30LB55*/ 01080000 * ELSE 02S0326 01081000 * DO; /* RECORD FROM 3330 OBR @Y30LB55*/ 01082000 B @RC00321 02S0326 01083000 @RF00321 DS 0H 02S0327 01084000 * FMTCHK='00000100'B; /* SET FORMAT TO 5 @Y30LB55*/ 01085000 MVI FMTCHK(SDAWKPTR),B'00000100' 02S0327 01086000 * SUBFSAVE=DASDFMTN; /* SET SUBFORMAT + MESSAGE CODE 01087000 * @Y30LB55*/ 01088000 L @07,SENSEPTR(,SDAWKPTR) 02S0328 01089000 MVC SUBFSAVE(1,SDAWKPTR),DASDFMTN(@07) 02S0328 01090000 * END; /*@Y30LB55*/ 01091000 * SUBFMSCK=''B; /* ZERO SUBFMT,MSG CODE MASK 01092000 * @Y30LB55*/ 01093000 @RC00321 SLR @07,@07 02S0330 01094000 ST @07,SUBFMSCK(,SDAWKPTR) 02S0330 01095000 * IF FMTCHK(2:4)='000'B THEN /* IS FORMAT 0,4, OR 5 @Y30LB55*/ 01096000 TM FMTCHK(SDAWKPTR),B'01110000' 02S0331 01097000 BNZ @RF00331 02S0331 01098000 * DO; /* YES, BUILD SUBFMT OR MSG CODE 01099000 * MASK @Y30LB55*/ 01100000 * IF FMTCHK(1)='0'B THEN /* FORMAT 0 @Y30LB55*/ 01101000 TM FMTCHK(SDAWKPTR),B'10000000' 02S0333 01102000 BNZ @RF00333 02S0333 01103000 * L=1; /* NO, BUILD SUBFORMAT MASK 02S0334 01104000 * @Y30LB55*/ 01105000 MVC L(4),@CF00078 02S0334 01106000 * ELSE /* YES @Y30LB55*/ 01107000 * L=2; /* BUILD MSG CODE MASK @Y30LB55*/ 01108000 B @RC00333 02S0335 01109000 @RF00333 MVC L(4),@CF00097 02S0335 01110000 * K=SUBFSAVE; /* GET SUBFORMAT AND MSG CODE 01111000 * @Y30LB55*/ 01112000 @RC00333 SLR K,K 02S0336 01113000 IC K,SUBFSAVE(,SDAWKPTR) 02S0336 01114000 * IF L=1 THEN 02S0337 01115000 CLC L(4),@CF00078 02S0337 01116000 BNE @RF00337 02S0337 01117000 * SRL(K,4); /* SHIFT OUT MSG CODE @Y30LB55*/ 01118000 SRL K,4 02S0338 01119000 * ELSE 02S0339 01120000 * K=K&'0000000F'X; /* MASK OUT SUBFORMAT NO.@Y30LB55*/ 01121000 B @RC00337 02S0339 01122000 @RF00337 N K,@CF00911 02S0339 01123000 * J='8000'X; /* INITIALYZE TO 0 @Y30LB55*/ 01124000 @RC00337 L J,@CF00952 02S0340 01125000 * DO I=1 TO K; /* SHIFT LOOP @Y30LB55*/ 01126000 LA I,1 02S0341 01127000 B @DE00341 02S0341 01128000 @DL00341 DS 0H 02S0342 01129000 * SRL(J,1); /* SHIFT ONE @Y30LB55*/ 01130000 SRL J,1 02S0342 01131000 * END; /* END SHIFT LOOP @Y30LB55*/ 01132000 AL I,@CF00078 02S0343 01133000 @DE00341 CR I,K 02S0343 01134000 BNH @DL00341 02S0343 01135000 * IF L=1 THEN 02S0344 01136000 CLC L(4),@CF00078 02S0344 01137000 BNE @RF00344 02S0344 01138000 * SUBFCHK=J; /* SET SUB FORMAT MASK @Y30LB55*/ 01139000 STH J,SUBFCHK(,SDAWKPTR) 02S0345 01140000 * ELSE 02S0346 01141000 * MSGCDCHK=J; /* OR SET MSG CODE MASK @Y30LB55*/ 01142000 B @RC00344 02S0346 01143000 @RF00344 STH J,MSGCDCHK(,SDAWKPTR) 02S0346 01144000 * END; /* END FORMAT 0,4,5 CODE @Y30LB55*/ 01145000 * ELSE 02S0348 01146000 * ; /* FORMAT 1,2, OR 3 HAVE NONE 01147000 * @Y30LB55*/ 01148000 @RF00331 DS 0H 02S0349 01149000 */* END OF SDAFMTCK @Y30LB55*/ 01150000 * 02S0349 01151000 * 01S0349 01152000 * /*******************************************************/ 01153000 * /* */ 01154000 * /* CALL PROC TO PASS DATA TO ACCUMULATORS */ 01155000 * /* */ 01156000 * /*******************************************************/ 01157000 * CALL SDAACC00; /* PASS DATA TO REPORT ROUTINES 01158000 * @Y30LB55*/ 01159000 @RC00331 BAL @14,SDAACC00 01S0349 01160000 * /*******************************************************/ 01161000 * /* */ 01162000 * /* SDAACC00 SETS USEFLAG(8)=0 IF THE DATA WAS REJECTED */ 01163000 * /* BY ANY ACCUMULATOR PROC. IN THIS CASE THE PRINT */ 01164000 * /* FLAG, USEFLAG(4)=1 TO PRINT THE BAD RECORD */ 01165000 * /* */ 01166000 * /*******************************************************/ 01167000 * 01S0350 01168000 * IF USEFLAG(8)='1'B THEN/* RECORD WAS USED @Y30LB55*/ 01169000 * 01S0350 01170000 TM USEFLAG(SDAWKPTR),B'00000001' 01S0350 01171000 BNO @RF00350 01S0350 01172000 * /*****************************************************/ 01173000 * /* */ 01174000 * /* RECORD WAS USED BY SOME ACCUMULATOR */ 01175000 * /* */ 01176000 * /*****************************************************/ 01177000 * 01S0351 01178000 * NTEMPREC=NTEMPREC+1;/* INC OUT COUNT @Y30LB55*/ 01179000 LA @07,1 01S0351 01180000 AL @07,NTEMPREC(,SDAWKPTR) 01S0351 01181000 ST @07,NTEMPREC(,SDAWKPTR) 01S0351 01182000 * ELSE; /* RECORD NOT USED @Y30LB55*/ 01183000 @RF00350 DS 0H 01S0353 01184000 * END; /* END USE CODE @Y30LB55*/ 01185000 * ELSE; /* DO NOT USE THE RECORD @Y30LB55*/ 01186000 @RF00319 DS 0H 01S0355 01187000 * 02S0355 01188000 * /*****************************************************************/ 01189000 * /* */ 01190000 * /* SAVE LOW AND HIGH DATE FOR OUTPUT MESSAGES */ 01191000 * /* */ 01192000 * /*****************************************************************/ 01193000 * 02S0355 01194000 * IF USEFLAG(8)='1'B THEN /* WAS RECORD USED @Y30LB55*/ 01195000 TM USEFLAG(SDAWKPTR),B'00000001' 02S0355 01196000 BNO @RF00355 02S0355 01197000 * DO; /* YES, SAVE SELECTED HIGH-LOW 01198000 * DATE @Y30LB55*/ 01199000 * IF DATEHIGHDATE THEN /* IS DATE HIGH @Y30LB55*/ 01210000 L @07,LOGPTR(,SDAWKPTR) 02S0360 01211000 CLC DATE(4,@07),HIGHDATE(SDAWKPTR) 02S0360 01212000 BNH @RF00360 02S0360 01213000 * HIGHDATE=DATE; /* SET HIGH DATE FOR DATA USED 01214000 * @Y30LB55*/ 01215000 MVC HIGHDATE(4,SDAWKPTR),DATE(@07) 02S0361 01216000 * ELSE 02S0362 01217000 * ; /*@Y30LB55*/ 01218000 @RF00360 DS 0H 02S0363 01219000 * END; /* END SELECTED DATE @Y30LB55*/ 01220000 * ELSE 02S0364 01221000 * ; /* RECORD NOT USED @Y30LB55*/ 01222000 @RF00355 DS 0H 02S0365 01223000 * IF USEFLAG(1)='1'B THEN /* VALID DATE AND TIME @ZM31107*/ 01224000 TM USEFLAG(SDAWKPTR),B'10000000' 02S0365 01225000 BNO @RF00365 02S0365 01226000 * DO; /* YES, SAVE HIGH-LOW DATE FOR 01227000 * RECORDS READ @Y30LB55*/ 01228000 * IF DATEAHIGHDAT THEN /* FIND HIGH DATE IN ALL INPUT 01239000 * @Y30LB55*/ 01240000 L @07,LOGPTR(,SDAWKPTR) 02S0370 01241000 CLC DATE(4,@07),AHIGHDAT(SDAWKPTR) 02S0370 01242000 BNH @RF00370 02S0370 01243000 * AHIGHDAT=DATE; /* SET HIGH DATE FOR DATA@Y30LB55*/ 01244000 MVC AHIGHDAT(4,SDAWKPTR),DATE(@07) 02S0371 01245000 * ELSE 02S0372 01246000 * ; /* NOT HIGH @Y30LB55*/ 01247000 @RF00370 DS 0H 02S0373 01248000 * END; /* END DATE SAVE @Y30LB55*/ 01249000 * ELSE 02S0374 01250000 * ; /* NOT OBR OR MDR, DO NOT CHECK 01251000 * DATE @Y30LB55*/ 01252000 @RF00365 DS 0H 02S0375 01253000 */* END OF DATEHILO @Y30LB55*/ 01254000 * 02S0375 01255000 * 01S0375 01256000 * /***********************************************************/ 01257000 * /* */ 01258000 * /* IF PRINT FLAG IS ON AND SOME DETAIL REQUESTED, PRINT */ 01259000 * /* THE INPUT RECORD IN HEX. IF A SPECIFIC DEVTYPE, FSCODE, */ 01260000 * /* OR SSID WAS REQUESTED, DO NOT PRINT THE HEX RECORD. */ 01261000 * /* */ 01262000 * /***********************************************************/ 01263000 * 01S0375 01264000 * IF CDETAIL(1:6)='000000'B|CTYPE^=' '|CFSCONLY^='00000000'X 01265000 * |CSSIDF^='0000'X THEN /* ANY SPECIFIC OPTIONS @ZM31121*/ 01266000 TM CDETAIL(LPARMPTR),B'11111100' 01S0375 01267000 BZ @RT00375 01S0375 01268000 CLC CTYPE(2,LPARMPTR),@CC00954 01S0375 01269000 BNE @RT00375 01S0375 01270000 CLC CFSCONLY(4,LPARMPTR),@CB00955 01S0375 01271000 BNE @RT00375 01S0375 01272000 CLC CSSIDF(2,LPARMPTR),@CB00956 01S0375 01273000 BE @RF00375 01S0375 01274000 @RT00375 DS 0H 01S0376 01275000 * USEFLAG(4)='0'B; /* YES, TURN FLAG OFF @ZM31121*/ 01276000 NI USEFLAG(SDAWKPTR),B'11101111' 01S0376 01277000 * ELSE; /* NO, DUMP OK @ZM31121*/ 01278000 @RF00375 DS 0H 01S0378 01279000 * IF USEFLAG(4)='1'B THEN /* IS DUMP FLAG SET @ZM31121*/ 01280000 TM USEFLAG(SDAWKPTR),B'00010000' 01S0378 01281000 BNO @RF00378 01S0378 01282000 * DO; /* YES, SET UP FOR HEX PRINT 01283000 * @Y30LB55*/ 01284000 * DUMPADDR=ADDR(CLASRC);/* SET ADDR OF INPUT @Y30LB55*/ 01285000 L @07,LOGPTR(,SDAWKPTR) 01S0380 01286000 LA @07,CLASRC(,@07) 01S0380 01287000 ST @07,DUMPADDR(,CVTPTR) 01S0380 01288000 * DUMPLEN=CLENGTH; /* SET LENGTH OF INPUT RECORD 01289000 * @Y30LB55*/ 01290000 LH @07,CLENGTH(,SDAWKPTR) 01S0381 01291000 ST @07,DUMPLEN(,CVTPTR) 01S0381 01292000 * DUMPIDNO=NINREC; /* SET ID TO REC NUMBER @Y30LB55*/ 01293000 MVC DUMPIDNO(4,CVTPTR),NINREC(SDAWKPTR) 01S0382 01294000 * RFY 01S0383 01295000 * R1 RSTD; /*@Y30LB55*/ 01296000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 01297000 LA R1,WORKCALL(,CVTPTR) 01S0384 01298000 * CALL ISDAHEXP; /* DUMP RECORD @Y30LB55*/ 01299000 L @15,@CV00906 01S0385 01300000 BALR @14,@15 01S0385 01301000 * RFY 01S0386 01302000 * R1 UNRSTD; /*@Y30LB55*/ 01303000 * END; /* END HEX PRINT @Y30LB55*/ 01304000 * ELSE; /* DUMP FLAG NOT SET @Y30LB55*/ 01305000 @RF00378 DS 0H 01S0389 01306000 * END; /* END OF ANALYSIS CODE @Y30LB55*/ 01307000 * 01S0390 01308000 * /***************************************************************/ 01309000 * /* */ 01310000 * /* EOF ON INPUT - SWITCH OR END INPUT MODE */ 01311000 * /* */ 01312000 * /***************************************************************/ 01313000 * 01S0390 01314000 * ELSE 01S0390 01315000 * DO; /* END OF INPUT @Y30LB55*/ 01316000 * 01S0390 01317000 B @RC00226 01S0390 01318000 @RF00226 DS 0H 01S0391 01319000 * /***********************************************************/ 01320000 * /* */ 01321000 * /* PRINT ISDA0002 AND ISDA0005 CALCULATE I/O ERROR MESSAGE */ 01322000 * /* */ 01323000 * /***********************************************************/ 01324000 * 01S0391 01325000 * I=RETCODIN; /* SAVE RETURN CODE @Y30LB55*/ 01326000 LH I,RETCODIN(,SDAWKPTR) 01S0391 01327000 * SRL(I,2); /* DEVIDE BY 4 @Y30LB55*/ 01328000 SRL I,2 01S0392 01329000 * IF I<1|I>6 THEN /* CHECK FOR VALID RANGE @Y30LB55*/ 01330000 LTR I,I 01S0393 01331000 BNP @RT00393 01S0393 01332000 CH I,@CH00090 01S0393 01333000 BNH @RF00393 01S0393 01334000 @RT00393 DS 0H 01S0394 01335000 * DO; /* UNEXPECTED RETURN CODE@Y30LB55*/ 01336000 * LINE=ISDA0002; /* MOVE MSG02 @Y30LB55*/ 01337000 MVI LINE+37(CVTPTR),C' ' 01S0395 01338000 MVC LINE+38(94,CVTPTR),LINE+37(CVTPTR) 01S0395 01339000 MVC LINE(37,CVTPTR),ISDA0002 01S0395 01340000 * CVD(RETCODIN,TEMP8); /* CONVERT RETCODIN @Y30LB55*/ 01341000 LH @07,RETCODIN(,SDAWKPTR) 01S0396 01342000 CVD @07,TEMP8(,SDAWKPTR) 01S0396 01343000 * RCODE02=EDPAT03; /* MOVE EDIT PATTERN @Y30LB55*/ 01344000 MVC RCODE02(4,CVTPTR),EDPAT03 01S0397 01345000 * ED(RCODE02,TEMP78); /* EDIT RETCODE @Y30LB55*/ 01346000 ED RCODE02(4,CVTPTR),TEMP78(SDAWKPTR) 01S0398 01347000 * MSG02ID=DDNAMEIN; /* MOVE DDNAME INTO ISDA0002 01348000 * @Y30LB55*/ 01349000 MVC MSG02ID(8,CVTPTR),DDNAMEIN(SDAWKPTR) 01S0399 01350000 * END; /* END ISDA0002 @Y30LB55*/ 01351000 * ELSE /* RANGE OK @Y30LB55*/ 01352000 * DO; /* MOVE ERROR MESSAGE @Y30LB55*/ 01353000 B @RC00393 01S0401 01354000 @RF00393 DS 0H 01S0402 01355000 * TEMPPTR=ERRINPUT(I); /* SET ADDRESS OF MESSAGE@Y30LB55*/ 01356000 LR @07,I 01S0402 01357000 SLA @07,2 01S0402 01358000 L TEMPPTR,ERRINPUT-4(@07) 01S0402 01359000 * LINE=ISDA00X2; /* MOVE ISDA0031-35 @Y30LB55*/ 01360000 MVI LINE+38(CVTPTR),C' ' 01S0403 01361000 MVC LINE+39(93,CVTPTR),LINE+38(CVTPTR) 01S0403 01362000 MVC LINE(38,CVTPTR),ISDA00X2(TEMPPTR) 01S0403 01363000 * MSGX2ID=DDNAMEIN; /* MOVE DDNAME INTO MESSAGE 01S0404 01364000 * @Y30LB55*/ 01365000 MVC MSGX2ID(8,CVTPTR),DDNAMEIN(SDAWKPTR) 01S0404 01366000 * END; /* END EXPECTED RETURN CODE 01S0405 01367000 * @Y30LB55*/ 01368000 * MSG05LOC=ISDA0005; /* MOVE MSG 05 @Y30LB55*/ 01369000 @RC00393 MVC MSG05LOC(38,CVTPTR),ISDA0005 01S0406 01370000 * CVD(NINREC,TEMP8); /* CONVERT NINREC @Y30LB55*/ 01371000 L @07,NINREC(,SDAWKPTR) 01S0407 01372000 CVD @07,TEMP8(,SDAWKPTR) 01S0407 01373000 * TRECM05=EDPAT05; /* MOVE EDIT PATTERN @Y30LB55*/ 01374000 MVC TRECM05(6,CVTPTR),EDPAT05 01S0408 01375000 * ED(TRECM05,TEMP68); /* EDIT NO. RECORDS @Y30LB55*/ 01376000 ED TRECM05(6,CVTPTR),TEMP68(SDAWKPTR) 01S0409 01377000 * CVD(NTEMPREC,TEMP8); /* CONVERT NTEMPREC @Y30LB55*/ 01378000 L @07,NTEMPREC(,SDAWKPTR) 01S0410 01379000 CVD @07,TEMP8(,SDAWKPTR) 01S0410 01380000 * TPRECM05=EDPAT05; /* MOVE EDIT PATTERN @Y30LB55*/ 01381000 MVC TPRECM05(6,CVTPTR),EDPAT05 01S0411 01382000 * ED(TPRECM05,TEMP68); /* EDIT NO. RECORDS @Y30LB55*/ 01383000 ED TPRECM05(6,CVTPTR),TEMP68(SDAWKPTR) 01S0412 01384000 * ANSI=LSKIP2; /* SKIP 2 LINES @Y30LB55*/ 01385000 MVI ANSI(CVTPTR),C'0' 01S0413 01386000 * RFY 01S0414 01387000 * R1 RSTD; /*@Y30LB55*/ 01388000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 01389000 LA R1,WORKCALL(,CVTPTR) 01S0415 01390000 * CALL ISDAPRT0; /* WRITE ERROR MESSAGE TO@Y30LB55 01391000 * SYSPRINT @Y30LB55*/ 01392000 L @15,@CV00900 01S0416 01393000 BALR @14,@15 01S0416 01394000 * ANSI=LSKIP1; /* RESET TO 1 SKIP @Y30LB55*/ 01395000 MVI ANSI(CVTPTR),C' ' 01S0417 01396000 * CALL ISDATYPE; /* WRITE ERROR MSG TO SYSTERM 01397000 * @Y30LB55*/ 01398000 L @15,@CV00904 01S0418 01399000 BALR @14,@15 01S0418 01400000 * RFY 01S0419 01401000 * R1 UNRSTD; /* RELEASE REG 1 @Y30LB55*/ 01402000 * 01S0420 01403000 * /***********************************************************/ 01404000 * /* */ 01405000 * /* CHECK FOR SECOND INPUT */ 01406000 * /* */ 01407000 * /***********************************************************/ 01408000 * 01S0420 01409000 * NOUTREC=NOUTREC+NTEMPREC; /* INC TOTAL RECORD USED COUNT 01410000 * @Y30LB55*/ 01411000 L @07,NOUTREC(,SDAWKPTR) 01S0420 01412000 AL @07,NTEMPREC(,SDAWKPTR) 01S0420 01413000 ST @07,NOUTREC(,SDAWKPTR) 01S0420 01414000 * NINRECT=NINRECT+NINREC; /* INC TOTAL RECORD READ COUNT 01415000 * @Y30LB55*/ 01416000 L @07,NINRECT(,SDAWKPTR) 01S0421 01417000 AL @07,NINREC(,SDAWKPTR) 01S0421 01418000 ST @07,NINRECT(,SDAWKPTR) 01S0421 01419000 * IF INSOURCE='H' THEN 01S0422 01420000 CLI INSOURCE(SDAWKPTR),C'H' 01S0422 01421000 BNE @RF00422 01S0422 01422000 * DO; /* CHECK LOGREC @Y30LB55*/ 01423000 * IF CLOGIN='Y' THEN 01S0424 01424000 CLI CLOGIN(LPARMPTR),C'Y' 01S0424 01425000 BNE @RF00424 01S0424 01426000 * DO; /* YES @Y30LB55*/ 01427000 * INSOURCE='L'; /* SET LOGREC FLAG @Y30LB55*/ 01428000 MVI INSOURCE(SDAWKPTR),C'L' 01S0426 01429000 * DDNAMEIN='SDALOGIN';/* RESET SDALOGIN DDNAME 01S0427 01430000 * @Y30LB55*/ 01431000 MVC DDNAMEIN(8,SDAWKPTR),@CC00931 01S0427 01432000 * RETCODIN=0; /* RESET READ LOOP FLAG @Y30LB55*/ 01433000 SLR @07,@07 01S0428 01434000 STH @07,RETCODIN(,SDAWKPTR) 01S0428 01435000 * NINREC=0; /* RESET RECORD COUNTER @Y30LB55*/ 01436000 ST @07,NINREC(,SDAWKPTR) 01S0429 01437000 * NTEMPREC=0; /* RESET OUT RECORD COUNTER 01S0430 01438000 * @Y30LB55*/ 01439000 ST @07,NTEMPREC(,SDAWKPTR) 01S0430 01440000 * END; /*@Y30LB55*/ 01441000 * ELSE 01S0432 01442000 * ; /* LOGREC NOT SPECIFIED @Y30LB55*/ 01443000 @RF00424 DS 0H 01S0433 01444000 * END; /* END INSOURCE CHECK @Y30LB55*/ 01445000 * ELSE 01S0434 01446000 * ; /* ALREADY READ LOGREC @Y30LB55*/ 01447000 @RF00422 DS 0H 01S0435 01448000 * END; /* END OF INPUT @Y30LB55*/ 01449000 * END; /* END OF READ LOOP @Y30LB55*/ 01450000 @RC00226 DS 0H 01S0436 01451000 @DE00217 SLR @07,@07 01S0436 01452000 CH @07,RETCODIN(,SDAWKPTR) 01S0436 01453000 BE @DL00217 01S0436 01454000 * 01S0437 01455000 * /*****************************************************************/ 01456000 * /* */ 01457000 * /* END OF ALL INPUT - PRINT TOTALS ABOUT ALL SDA INPUT FOR THIS */ 01458000 * /* RUN */ 01459000 * /* */ 01460000 * /*****************************************************************/ 01461000 * 01S0437 01462000 * IF NINRECT>0 THEN /* IS RECORD COUNT ZERO @Y30LB55*/ 01463000 L @15,NINRECT(,SDAWKPTR) 01S0437 01464000 CR @15,@07 01S0437 01465000 BNH @RF00437 01S0437 01466000 * DO; /* NO @Y30LB55*/ 01467000 * ANSI=LSKIP2; /* SET 2 LINE SKIP @Y30LB55*/ 01468000 MVI ANSI(CVTPTR),C'0' 01S0439 01469000 * LINE=ISDA0003; /* MOVE ISDA0003 @Y30LB55*/ 01470000 MVI LINE+46(CVTPTR),C' ' 01S0440 01471000 MVC LINE+47(85,CVTPTR),LINE+46(CVTPTR) 01S0440 01472000 MVC LINE(46,CVTPTR),ISDA0003 01S0440 01473000 * FCMSG03=READCH; /* MOVE READ @Y30LB55*/ 01474000 MVC FCMSG03(4,CVTPTR),@CC00371 01S0441 01475000 * CVD(NINRECT,TEMP8); /* CVD @Y30LB55*/ 01476000 CVD @15,TEMP8(,SDAWKPTR) 01S0442 01477000 * RCMSG03=EDPAT05; /* MOVE EDIT PATTERN @Y30LB55*/ 01478000 MVC RCMSG03(6,CVTPTR),EDPAT05 01S0443 01479000 * ED(RCMSG03,TEMP68); /* EDIT RECORD COUNT @Y30LB55*/ 01480000 ED RCMSG03(6,CVTPTR),TEMP68(SDAWKPTR) 01S0444 01481000 * UNPK(TEMP7,ALOWDATE); /* UNPACK LOW DATE @Y30LB55*/ 01482000 UNPK TEMP7(7,SDAWKPTR),ALOWDATE(4,SDAWKPTR) 01S0445 01483000 * LYMSG03=TEMP7(3:4); /* MOVE LOW YEAR @Y30LB55*/ 01484000 MVC LYMSG03(2,CVTPTR),TEMP7+2(SDAWKPTR) 01S0446 01485000 * LDMSG03=EDPAT03; /* MOVE EDIT PATTERN @ZM30730*/ 01486000 MVC LDMSG03(4,CVTPTR),EDPAT03 01S0447 01487000 * ED(LDMSG03,ALOWDAY); /* EDIT LOW DAY @ZM30730*/ 01488000 ED LDMSG03(4,CVTPTR),ALOWDAY(SDAWKPTR) 01S0448 01489000 * UNPK(TEMP7,AHIGHDAT); /* UNPACK HIGH DATE @Y30LB55*/ 01490000 UNPK TEMP7(7,SDAWKPTR),AHIGHDAT(4,SDAWKPTR) 01S0449 01491000 * HYMSG03=TEMP7(3:4); /* MOVE HIGH YEAR @Y30LB55*/ 01492000 MVC HYMSG03(2,CVTPTR),TEMP7+2(SDAWKPTR) 01S0450 01493000 * HDMSG03=EDPAT03; /* MOVE EDIT PATTERN @ZM30730*/ 01494000 MVC HDMSG03(4,CVTPTR),EDPAT03 01S0451 01495000 * ED(HDMSG03,AHIGHDAY); /* EDIT HIGH DAY @ZM30730*/ 01496000 ED HDMSG03(4,CVTPTR),AHIGHDAY(SDAWKPTR) 01S0452 01497000 * RFY 01S0453 01498000 * R1 RSTD; /*@Y30LB55*/ 01499000 * R1=ADDR(WORKCALL); /* R1->ADDR(WORKPTR) @Y30LB55*/ 01500000 LA R1,WORKCALL(,CVTPTR) 01S0454 01501000 * CALL ISDAPRT0; /* WRITE ISDA0003 @Y30LB55*/ 01502000 L @15,@CV00900 01S0455 01503000 BALR @14,@15 01S0455 01504000 * IF NOUTREC>0 THEN /* IS OUTPUT COUNT ZERO @Y30LB55*/ 01505000 L @07,NOUTREC(,SDAWKPTR) 01S0456 01506000 LTR @07,@07 01S0456 01507000 BNP @RF00456 01S0456 01508000 * DO; /* NO @Y30LB55*/ 01509000 * FCMSG03=USEDCH; /* MOVE READ @Y30LB55*/ 01510000 MVC FCMSG03(4,CVTPTR),@CC00373 01S0458 01511000 * CVD(NOUTREC,TEMP8); /* CVD @Y30LB55*/ 01512000 CVD @07,TEMP8(,SDAWKPTR) 01S0459 01513000 * RCMSG03=EDPAT05; /* MOVE EDIT PATTERN @Y30LB55*/ 01514000 MVC RCMSG03(6,CVTPTR),EDPAT05 01S0460 01515000 * ED(RCMSG03,TEMP68); /* EDIT RECORD COUNT @Y30LB55*/ 01516000 ED RCMSG03(6,CVTPTR),TEMP68(SDAWKPTR) 01S0461 01517000 * UNPK(TEMP7,LOWDATE); /* UNPACK LOW DATE @Y30LB55*/ 01518000 UNPK TEMP7(7,SDAWKPTR),LOWDATE(4,SDAWKPTR) 01S0462 01519000 * LYMSG03=TEMP7(3:4); /* MOVE LOW YEAR @Y30LB55*/ 01520000 MVC LYMSG03(2,CVTPTR),TEMP7+2(SDAWKPTR) 01S0463 01521000 * LDMSG03=EDPAT03; /* MOVE EDIT PATTERN @ZM30730*/ 01522000 MVC LDMSG03(4,CVTPTR),EDPAT03 01S0464 01523000 * ED(LDMSG03,LOWDAY); /* EDIT LOW DAY @ZM30730*/ 01524000 ED LDMSG03(4,CVTPTR),LOWDAY(SDAWKPTR) 01S0465 01525000 * UNPK(TEMP7,HIGHDATE); /* UNPACK HIGH DATE @Y30LB55*/ 01526000 UNPK TEMP7(7,SDAWKPTR),HIGHDATE(4,SDAWKPTR) 01S0466 01527000 * HYMSG03=TEMP7(3:4); /* MOVE HIGH YEAR @Y30LB55*/ 01528000 MVC HYMSG03(2,CVTPTR),TEMP7+2(SDAWKPTR) 01S0467 01529000 * HDMSG03=EDPAT03; /* MOVE EDIT PATTERN @ZM30730*/ 01530000 MVC HDMSG03(4,CVTPTR),EDPAT03 01S0468 01531000 * ED(HDMSG03,HIGHDAY); /* EDIT HIGH DAY @ZM30730*/ 01532000 ED HDMSG03(4,CVTPTR),HIGHDAY(SDAWKPTR) 01S0469 01533000 * RFY 01S0470 01534000 * R1 RSTD; /*@Y30LB55*/ 01535000 * R1=ADDR(WORKCALL); /* R1->ADDR(WORKPTR) @Y30LB55*/ 01536000 LA R1,WORKCALL(,CVTPTR) 01S0471 01537000 * CALL ISDAPRT0; /* WRITE ISDA0003 @Y30LB55*/ 01538000 L @15,@CV00900 01S0472 01539000 BALR @14,@15 01S0472 01540000 * RFY 01S0473 01541000 * R1 UNRSTD; /*@Y30LB55*/ 01542000 * END; /* END ISDA0003 FOR RECORDS USED 01543000 * @Y30LB55*/ 01544000 * ELSE 01S0475 01545000 * ; /* YES, NO RECORDS USED @Y30LB55*/ 01546000 @RF00456 DS 0H 01S0476 01547000 * END; /* END ISDA0005 FOR RECORDS READ 01548000 * @Y30LB55*/ 01549000 * ELSE 01S0477 01550000 * ; /* NO INPUT READ @Y30LB55*/ 01551000 @RF00437 DS 0H 01S0478 01552000 * 01S0478 01553000 * /*****************************************************************/ 01554000 * /* */ 01555000 * /* IF RETCODE WAS NOT SET BY ISDAPARM OR ANY INTERNAL PROC */ 01556000 * /* INDICATING A TERMINAL ERROR, THEN CALL ISDASDA1 TO PRODUCE SDA*/ 01557000 * /* REPORTS */ 01558000 * /* */ 01559000 * /*****************************************************************/ 01560000 * 01S0478 01561000 * IF NOUTREC=0&RETCODE=0 THEN 01S0478 01562000 SLR @07,@07 01S0478 01563000 C @07,NOUTREC(,SDAWKPTR) 01S0478 01564000 BNE @RF00478 01S0478 01565000 CH @07,RETCODE(,SDAWKPTR) 01S0478 01566000 BNE @RF00478 01S0478 01567000 * RETCODE=20; /* SET RETURN CODE FOR NO INPUT 01568000 * @Y30LB55*/ 01569000 MVC RETCODE(2,SDAWKPTR),@CH00405 01S0479 01570000 * ELSE 01S0480 01571000 * ; /*@Y30LB55*/ 01572000 * 01S0480 01573000 @RF00478 DS 0H 01S0481 01574000 * /*****************************************************************/ 01575000 * /* */ 01576000 * /* TRACE */ 01577000 * /* */ 01578000 * /*****************************************************************/ 01579000 * 01S0481 01580000 * IF RETCODE=0 THEN 01S0481 01581000 ICM @07,3,RETCODE(SDAWKPTR) 01S0481 01582000 BNZ @RF00481 01S0481 01583000 * CALL DUMPCVT; /* DUMP ISDACVT @Y30LB55*/ 01584000 BAL @14,DUMPCVT 01S0482 01585000 * ELSE 01S0483 01586000 * ; /* END OF TRACE @Y30LB55*/ 01587000 @RF00481 DS 0H 01S0484 01588000 * IF RETCODE=0 THEN 01S0484 01589000 ICM @07,3,RETCODE(SDAWKPTR) 01S0484 01590000 BNZ @RF00484 01S0484 01591000 * CALL ISDASDA1; /* CALL OUTPUT ROUTINE @Y30LB55*/ 01592000 BAL @14,ISDASDA1 01S0485 01593000 * ELSE 01S0486 01594000 * DO; /* TERMINAL ERROR SET. NO OUTPUT 01595000 * PRODUCED BY SDA @Y30LB55*/ 01596000 * 01S0486 01597000 B @RC00484 01S0486 01598000 @RF00484 DS 0H 01S0487 01599000 * /*************************************************************/ 01600000 * /* */ 01601000 * /* SDA TERMINAL ERRORS */ 01602000 * /* */ 01603000 * /*************************************************************/ 01604000 * 01S0487 01605000 * ANSI=LSKIP2; /* SET 2 LINE SKIP @Y30LB55*/ 01606000 MVI ANSI(CVTPTR),C'0' 01S0487 01607000 * I=RETCODE; /* MOVE SDA RETURN CODE @Y30LB55*/ 01608000 LH I,RETCODE(,SDAWKPTR) 01S0488 01609000 * SRL(I,2); /* DEVIDE BY 4 @Y30LB55*/ 01610000 SRL I,2 01S0489 01611000 * IF(I<1)|(I>5) THEN /* IS I 1-5 @Y30LB55*/ 01612000 LTR I,I 01S0490 01613000 BNP @RT00490 01S0490 01614000 CH I,@CH00175 01S0490 01615000 BNH @RF00490 01S0490 01616000 @RT00490 DS 0H 01S0491 01617000 * I=10; /* NO, SET TO ISDA0045 @Y30LB55*/ 01618000 LA I,10 01S0491 01619000 * ELSE 01S0492 01620000 * ; /* YES, I OK @Y30LB55*/ 01621000 @RF00490 DS 0H 01S0493 01622000 * TEMPPTR=ERRSEVER(I); /* SET MESSAGE POINTER @Y30LB55*/ 01623000 LR @07,I 01S0493 01624000 SLA @07,2 01S0493 01625000 L TEMPPTR,ERRSEVER-4(@07) 01S0493 01626000 * LINE=ISDA00X3; /* MOVE ERROR MESSAGE @Y30LB55*/ 01627000 MVI LINE+52(CVTPTR),C' ' 01S0494 01628000 MVC LINE+53(79,CVTPTR),LINE+52(CVTPTR) 01S0494 01629000 MVC LINE(52,CVTPTR),ISDA00X3(TEMPPTR) 01S0494 01630000 * RFY 01S0495 01631000 * R1 RSTD; /*@Y30LB55*/ 01632000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 01633000 LA R1,WORKCALL(,CVTPTR) 01S0496 01634000 * CALL ISDAPRT0; /* PRINT ISDA0045 @Y30LB55*/ 01635000 L @15,@CV00900 01S0497 01636000 BALR @14,@15 01S0497 01637000 * ANSI=LSKIP1; /* RESET TO 1 LINE SKIP @Y30LB55*/ 01638000 MVI ANSI(CVTPTR),C' ' 01S0498 01639000 * CALL ISDATYPE; /* PRINT ERROR MSG ON SYSTERM 01640000 * @Y30LB55*/ 01641000 L @15,@CV00904 01S0499 01642000 BALR @14,@15 01S0499 01643000 * RFY 01S0500 01644000 * R1 UNRSTD; /*@Y30LB55*/ 01645000 * END; /* END ABNORMAL END PRINT@Y30LB55*/ 01646000 * /*****************************************************************/ 01647000 * /* */ 01648000 * /* CLEANUP SECTION */ 01649000 * /* */ 01650000 * /*****************************************************************/ 01651000 * 01S0502 01652000 * ANSI=LSKIP2; /* SKIP 2 LINES @Y30LB55*/ 01653000 @RC00484 MVI ANSI(CVTPTR),C'0' 01S0502 01654000 * LINE=ISDA0099; /* MOVE ISDA0099 @Y30LB55*/ 01655000 MVI LINE+14(CVTPTR),C' ' 01S0503 01656000 MVC LINE+15(117,CVTPTR),LINE+14(CVTPTR) 01S0503 01657000 MVC LINE(14,CVTPTR),ISDA0099 01S0503 01658000 * RFY 01S0504 01659000 * R1 RSTD; /*@Y30LB55*/ 01660000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 01661000 LA R1,WORKCALL(,CVTPTR) 01S0505 01662000 * CALL ISDAPRT0; /* PRINT ISDA0099 @Y30LB55*/ 01663000 L @15,@CV00900 01S0506 01664000 BALR @14,@15 01S0506 01665000 * IF CNFG0PTR^=0 THEN /* WAS CONFIGURATION ALOCATED 01666000 * @Y30LB55*/ 01667000 ICM @07,15,CNFG0PTR(CVTPTR) 01S0507 01668000 BZ @RF00507 01S0507 01669000 * CALL ISDACNF1; /* CALL TO FREE CNFG WORKAREA 01670000 * @Y30LB55*/ 01671000 L @15,@CV00899 01S0508 01672000 BALR @14,@15 01S0508 01673000 * ELSE; /* NO TABLE TO FREE @Y30LB55*/ 01674000 @RF00507 DS 0H 01S0510 01675000 * RFY 01S0510 01676000 * R1 UNRSTD; /* RELEASE REG 1 @Y30LB55*/ 01677000 * CALL DUMPCVT; /* TRACE - DUMP ISDACVT @Y30LB55*/ 01678000 BAL @14,DUMPCVT 01S0511 01679000 * RFY 01S0512 01680000 * R1 RSTD; /*@Y30LB55*/ 01681000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 01682000 LA R1,WORKCALL(,CVTPTR) 01S0513 01683000 * CALL ISDAPRTC; /* CLOSE SYSPRINT @Y30LB55*/ 01684000 L @15,@CV00903 01S0514 01685000 BALR @14,@15 01S0514 01686000 * CALL ISDATYPC; /* CLOSE SYSTERM @Y30LB55*/ 01687000 L @15,@CV00905 01S0515 01688000 BALR @14,@15 01S0515 01689000 * RFY 01S0516 01690000 * R1 UNRSTD; /* RELEASE REG 1 @Y30LB55*/ 01691000 * /*****************************************************************/ 01692000 * /* */ 01693000 * /* ISSUE FREEMAIN FOR ISDAPRMS, ISDACVT, AND SDAWORK */ 01694000 * /* */ 01695000 * /*****************************************************************/ 01696000 * RFY 01S0517 01697000 * (R0, 01S0517 01698000 * R1) RSTD; /* FREEMAIN SECTION @Y30LB55*/ 01699000 * R0=LENGTH(ISDAPRMS); /*@Y30LB55*/ 01700000 LA R0,49 01S0518 01701000 * R1=LPARMPTR; /* FREE ISDAPRMS @Y30LB55*/ 01702000 LR R1,LPARMPTR 01S0519 01703000 * GEN(FREEMAIN R,LV=(0),A=(1)); /* FREEMAIN @Y30LB55*/ 01704000 FREEMAIN R,LV=(0),A=(1) 01705000 * R0=LENGTH(ISDACVT); /*@Y30LB55*/ 01706000 LA R0,576 01S0521 01707000 * R1=CVTPTR; /* FREE ISDACVT @Y30LB55*/ 01708000 LR R1,CVTPTR 01S0522 01709000 * GEN(FREEMAIN R,LV=(0),A=(1)); /* FREEMAIN @Y30LB55*/ 01710000 FREEMAIN R,LV=(0),A=(1) 01711000 * R0=LENGTH(SDAWORK); /* LENGTH OF WORKAREA @Y30LB55*/ 01712000 LA R0,154 01S0524 01713000 * R1=SDAWKPTR; /* ADDR OF WORKAREA @Y30LB55*/ 01714000 LR R1,SDAWKPTR 01S0525 01715000 * GEN(FREEMAIN R,LV=(0),A=(1)); /* FREEMAIN @Y30LB55*/ 01716000 FREEMAIN R,LV=(0),A=(1) 01717000 * RFY 01S0527 01718000 * (R0, 01S0527 01719000 * R1) UNRSTD; /* END FREEMAIN @Y30LB55*/ 01720000 * 01S0527 01721000 * /*****************************************************************/ 01722000 * /* */ 01723000 * /* ISDASDA0 RETURN TO VS SYSTEM WITH RETCODE */ 01724000 * /* */ 01725000 * /*****************************************************************/ 01726000 * 01S0528 01727000 * RETURN CODE(RETCODE); /* RETURN TO VS @Y30LB55*/ 01728000 LH @09,RETCODE(,SDAWKPTR) 01S0528 01729000 L @13,4(,@13) 01S0528 01730000 L @00,@SIZDATD 01S0528 01731000 LR @01,@10 01S0528 01732000 FREEMAIN R,LV=(0),A=(1) 01733000 LR @15,@09 01S0528 01734000 L @14,12(,@13) 01S0528 01735000 LM @00,@12,20(@13) 01S0528 01736000 BR @14 01S0528 01737000 * 01S0529 01738000 * /*****************************************************************/ 01739000 * /* */ 01740000 * /* DATACHEK - CHECK FOR BAD DATA THIS PROC CHECKS THE INPUT DATA */ 01741000 * /* FOR INVALID DATE, DATE NOT WITHIN REQUESTED TIME INTERVAL, NO */ 01742000 * /* FORMAT IN MSC RECORD, SSID INVALID IN MSC FORMAT 1,3,4 OR 5 */ 01743000 * /* RECORDS, SENSE DATA ALL ZERO IN MSS AND HOST 3330 RECORDS. IF */ 01744000 * /* ANY CHECK FAILS, USEFLAG(8) IS RESET TO 0 AND THE ERROR PRINT */ 01745000 * /* FLAG, USEFLAG(4), IS SET TO ONE. ALSO, ERRORMSG IS SET TO */ 01746000 * /* ISDA0009-12 DEPENDING ON THE ERROR. */ 01747000 * /* */ 01748000 * /*****************************************************************/ 01749000 * 01S0529 01750000 *DATACHEK: 01S0529 01751000 * PROC; /* CHECK DATA FOR VALIDITY 01S0529 01752000 * @Y30LB55*/ 01753000 @EL00001 L @13,4(,@13) 01S0529 01754000 @EF00001 L @00,@SIZDATD 01S0529 01755000 LR @01,@10 01S0529 01756000 FREEMAIN R,LV=(0),A=(1) 01757000 @ER00001 LM @14,@12,12(@13) 01S0529 01758000 BR @14 01S0529 01759000 DATACHEK STM @14,@12,12(@13) 01S0529 01760000 * I=0; /* ZERO ERROR FLAG @Y30LB55*/ 01761000 * 01S0530 01762000 SLR I,I 01S0530 01763000 * /*****************************************************************/ 01764000 * /* */ 01765000 * /* INVALID DATE - ISDA0009 */ 01766000 * /* */ 01767000 * /*****************************************************************/ 01768000 * 01S0531 01769000 * 02S0531 01770000 * /*****************************************************************/ 01771000 * /* */ 01772000 * /* CHECK DATE AND TIME FOR VALID PACKED DECIAML */ 01773000 * /* */ 01774000 * /*****************************************************************/ 01775000 * 02S0531 01776000 * IF SWITCH0(5)='1'B THEN /* TIME MACRO USED @ZM31107*/ 01777000 L @07,LOGPTR(,SDAWKPTR) 02S0531 01778000 TM SWITCH0(@07),B'00001000' 02S0531 01779000 BNO @RF00531 02S0531 01780000 * DO; /* CHECK IT @ZM31107*/ 01781000 * TEMP8=DATETIME; /* MOVE DATE AND TIME @ZM31078*/ 01782000 MVC TEMP8(8,SDAWKPTR),DATETIME(@07) 02S0533 01783000 * TEMP8(4)=TEMP8(4)&'0F'X; /* CHECK LAST F IN DATE @ZM31078*/ 01784000 NI TEMP8+3(SDAWKPTR),X'0F' 02S0534 01785000 * IF TEMP8(4)^='0F'X|DAY(2)>'9F'X THEN/* INVALID DAY(2)@ZM31078*/ 01786000 CLI TEMP8+3(SDAWKPTR),X'0F' 02S0535 01787000 BNE @RT00535 02S0535 01788000 CLI DAY+1(@07),X'9F' 02S0535 01789000 BNH @RF00535 02S0535 01790000 @RT00535 DS 0H 02S0536 01791000 * I=1; /* SET I -> ISDA0009 @ZM31078*/ 01792000 LA I,1 02S0536 01793000 * ELSE /* DAY(2) OK @ZM31078*/ 01794000 * DO; /* CHECK THE REST @ZM31078*/ 01795000 B @RC00535 02S0537 01796000 @RF00535 DS 0H 02S0538 01797000 * TEMP8(4)='00'X; /* ZERO DAY(2) @ZM31078*/ 01798000 MVI TEMP8+3(SDAWKPTR),X'00' 02S0538 01799000 * DO J=1 TO 8; /* CHECK ALL 8 CHAR @ZM31078*/ 01800000 LA J,1 02S0539 01801000 @DL00539 DS 0H 02S0540 01802000 * IF TEMP8(J)>'99'X|(TEMP8(J)&'0F'X)>'09'X THEN /* 02S0540 01803000 * DIGITS NOT PACKED DEC @ZM31078*/ 01804000 LR @07,SDAWKPTR 02S0540 01805000 ALR @07,J 02S0540 01806000 CLI TEMP8-1(@07),X'99' 02S0540 01807000 BH @RT00540 02S0540 01808000 LR @07,SDAWKPTR 02S0540 01809000 ALR @07,J 02S0540 01810000 MVC @TS00001(1),TEMP8-1(@07) 02S0540 01811000 NI @TS00001,X'0F' 02S0540 01812000 CLI @TS00001,X'09' 02S0540 01813000 BNH @RF00540 02S0540 01814000 @RT00540 DS 0H 02S0541 01815000 * I=1; /* SET I -> ISDA0009 @ZM31078*/ 01816000 LA I,1 02S0541 01817000 * ELSE; /* THIS CHAR OK @ZM31078*/ 01818000 @RF00540 DS 0H 02S0543 01819000 * END; /* END LOOP THROUGH 8 @ZM31078*/ 01820000 AL J,@CF00078 02S0543 01821000 CH J,@CH00066 02S0543 01822000 BNH @DL00539 02S0543 01823000 * END; /* END CHECK DATE-TIME @ZM31078*/ 01824000 * IF I=0 THEN /* GOOD DATE-TIME @ZM31078*/ 01825000 @RC00535 LTR I,I 02S0545 01826000 BNZ @RF00545 02S0545 01827000 * USEFLAG(1)='1'B; /* YES, SET VALID FLAG @ZM31078*/ 01828000 OI USEFLAG(SDAWKPTR),B'10000000' 02S0546 01829000 * ELSE; /* NO, DATE-TIME BAD @ZM31078*/ 01830000 @RF00545 DS 0H 02S0548 01831000 * END; /* END CHECK DATE-TIME @ZM31107*/ 01832000 * ELSE; /* TIME MACRO NOT USED @ZM31107*/ 01833000 @RF00531 DS 0H 02S0550 01834000 * TEMP28=''B; /* ZERO MASK @ZM31121*/ 01835000 XC TEMP28(28,SDAWKPTR),TEMP28(SDAWKPTR) 01S0550 01836000 * IF I=0 THEN /* DATE VALID @ZM31078*/ 01837000 * 01S0551 01838000 LTR I,I 01S0551 01839000 BNZ @RF00551 01S0551 01840000 * /***************************************************************/ 01841000 * /* */ 01842000 * /* CHECK IF DATE WITHIN REQUESTED INTERVAL - ISDA0014 */ 01843000 * /* */ 01844000 * /***************************************************************/ 01845000 * 01S0552 01846000 * IF DATECEND THEN /* IF DATE NOT IN INTERVAL 01S0552 01847000 * @Y30LB55*/ 01848000 L @07,LOGPTR(,SDAWKPTR) 01S0552 01849000 CLC DATE(4,@07),CSTART(LPARMPTR) 01S0552 01850000 BL @RT00552 01S0552 01851000 CLC DATE(4,@07),CEND(LPARMPTR) 01S0552 01852000 BNH @RF00552 01S0552 01853000 @RT00552 DS 0H 01S0553 01854000 * USEFLAG(8)='0'B; /* TURN USE FLAG OFF @Y30LB55*/ 01855000 NI USEFLAG(SDAWKPTR),B'11111110' 01S0553 01856000 * ELSE /* DATE OK @Y30LB55*/ 01857000 * DO; /* CHECK SENSE DATA @YD00147*/ 01858000 B @RC00552 01S0554 01859000 @RF00552 DS 0H 01S0555 01860000 * IF INDEVTYP='S' THEN /* MSC RECORD @Y30LB55*/ 01861000 * 01S0555 01862000 CLI INDEVTYP(SDAWKPTR),C'S' 01S0555 01863000 BNE @RF00555 01S0555 01864000 * /***********************************************************/ 01865000 * /* */ 01866000 * /* CHECKS FOR SUBSYSTEM RECORDS */ 01867000 * /* */ 01868000 * /***********************************************************/ 01869000 * 01S0556 01870000 * DO; /* CHECK MSC RECORDS @Y30LB55*/ 01871000 * 01S0556 01872000 * /*********************************************************/ 01873000 * /* */ 01874000 * /* NO FORMAT NUMBER - ISDA0010 */ 01875000 * /* */ 01876000 * /*********************************************************/ 01877000 * 01S0557 01878000 * IF FORMATNO(1:6)='000000'B THEN/* NO FORMAT @Y30LB55*/ 01879000 L @07,SENSEPTR(,SDAWKPTR) 01S0557 01880000 TM FORMATNO(@07),B'11111100' 01S0557 01881000 BNZ @RF00557 01S0557 01882000 * I=2; /* SET I -> ISDA0010 @Y30LB55*/ 01883000 LA I,2 01S0558 01884000 * ELSE /* FORMAT OK @Y30LB55*/ 01885000 * DO; /* CHECK SSID @Y30LB55*/ 01886000 * 01S0559 01887000 B @RC00557 01S0559 01888000 @RF00557 DS 0H 01S0560 01889000 * /*****************************************************/ 01890000 * /* */ 01891000 * /* SSID VALIDITY CHECK - ISDA0011 - I=3 */ 01892000 * /* */ 01893000 * /*****************************************************/ 01894000 * 01S0560 01895000 * 02S0560 01896000 * /*****************************************************************/ 01897000 * /* */ 01898000 * /* SSID VALIDITY CHECK FOR FORMATS 1,3,4, AND 5. K=CHAR 1, L=CHAR*/ 01899000 * /* 2, J=CHAR 3 */ 01900000 * /* */ 01901000 * /*****************************************************************/ 01902000 * 02S0560 01903000 * J=SUBSYSID; /* MOVE 16 BIT SSID @Y30LB55*/ 01904000 L @15,SENSEPTR(,SDAWKPTR) 02S0560 01905000 SLR J,J 02S0560 01906000 ICM J,3,SUBSYSID(@15) 02S0560 01907000 * K=J&'0F00'X; /* MASK ALL BUT CHAR 1 OF SSID 01908000 * @Y30LB55*/ 01909000 LA K,3840 02S0561 01910000 NR K,J 02S0561 01911000 * SRL(K,8); /* SHIFT CHAR 1 TO LOW BITS 02S0562 01912000 * @Y30LB55*/ 01913000 SRL K,8 02S0562 01914000 * L=J&'00F0'X; /* MASK ALL BUT CHAR 2 OF SSID 01915000 * @Y30LB55*/ 01916000 LA @14,240 02S0563 01917000 NR @14,J 02S0563 01918000 ST @14,L 02S0563 01919000 * SRL(L,4); /* SHIFT CHAR 1 TO LOW BITS 02S0564 01920000 * @Y30LB55*/ 01921000 SRL @14,4 02S0564 01922000 ST @14,L 02S0564 01923000 * J=J&'000F'X; /* MASK ALL BUT CHAR 3 OF SSID 01924000 * @Y30LB55*/ 01925000 N J,@CF00966 02S0565 01926000 * IF FORMATNO(1)='1'B THEN /* FORMAT 0 @ZA29141*/ 01927000 TM FORMATNO(@15),B'10000000' 02S0566 01928000 BNO @RF00566 02S0566 01929000 * IF SUBFMTMG='05'X|((SUBFMTMG='06'X|SUBFMTMG='09'X)& 02S0567 01930000 * SSIDFLAG(2)='1'B) THEN /* 01931000 * MSG 05 OR MSG 09 WITH SUU @ZA28897*/ 01932000 CLI SUBFMTMG(@15),X'05' 02S0567 01933000 BE @RT00567 02S0567 01934000 CLI SUBFMTMG(@15),X'06' 02S0567 01935000 BE @GL00015 02S0567 01936000 CLI SUBFMTMG(@15),X'09' 02S0567 01937000 BNE @RF00567 02S0567 01938000 @GL00015 L @01,SENSEPTR(,SDAWKPTR) 02S0567 01939000 TM SSIDFLAG(@01),B'01000000' 02S0567 01940000 BNO @RF00567 02S0567 01941000 @RT00567 DS 0H 02S0568 01942000 * IF(K^=2)|(L>3)|(J>7) THEN /* YES, IS IT DRD SSID @Y30LB55*/ 01943000 CH K,@CH00097 02S0568 01944000 BNE @RT00568 02S0568 01945000 L @15,L 02S0568 01946000 CH @15,@CH00082 02S0568 01947000 BH @RT00568 02S0568 01948000 CH J,@CH00294 02S0568 01949000 BNH @RF00568 02S0568 01950000 @RT00568 DS 0H 02S0569 01951000 * I=3; /* SET I -> ISDA0011 @Y30LB55*/ 01952000 LA I,3 02S0569 01953000 * ELSE; /* SSID OK @Y30LB55*/ 01954000 @RF00568 DS 0H 02S0571 01955000 * ELSE; /* NOT 05 OR 6/9 WITH SUU@ZA28897*/ 01956000 @RF00567 DS 0H 02S0572 01957000 * ELSE /* CHECH NEXT FORMAT @Y30LB55*/ 01958000 * IF FORMATNO(4)='1'B THEN /* FORMAT 3 CHECK @Y30LB55*/ 01959000 B @RC00566 02S0572 01960000 @RF00566 L @01,SENSEPTR(,SDAWKPTR) 02S0572 01961000 TM FORMATNO(@01),B'00010000' 02S0572 01962000 BNO @RF00572 02S0572 01963000 * IF(K^=1)|(L>3)|(J>2) THEN /* BAD SSID @Y30LB55*/ 01964000 CH K,@CH00078 02S0573 01965000 BNE @RT00573 02S0573 01966000 L @15,L 02S0573 01967000 CH @15,@CH00082 02S0573 01968000 BH @RT00573 02S0573 01969000 CH J,@CH00097 02S0573 01970000 BNH @RF00573 02S0573 01971000 @RT00573 DS 0H 02S0574 01972000 * I=3; /* SET I -> ISDA0011 @Y30LB55*/ 01973000 LA I,3 02S0574 01974000 * ELSE; /* SSID OK @Y30LB55*/ 01975000 @RF00573 DS 0H 02S0576 01976000 * ELSE 02S0576 01977000 * IF FORMATNO(5)='1'B THEN /* FORMAT 4 CHECK @Y30LB55*/ 01978000 B @RC00572 02S0576 01979000 @RF00572 L @01,SENSEPTR(,SDAWKPTR) 02S0576 01980000 TM FORMATNO(@01),B'00001000' 02S0576 01981000 BNO @RF00576 02S0576 01982000 * IF K=2 THEN /* CHECK DRD SSID @Y30LB55*/ 01983000 CH K,@CH00097 02S0577 01984000 BNE @RF00577 02S0577 01985000 * IF L>3|J>7 THEN /* BAD SSID @Y30LB55*/ 01986000 L @07,L 02S0578 01987000 CH @07,@CH00082 02S0578 01988000 BH @RT00578 02S0578 01989000 CH J,@CH00294 02S0578 01990000 BNH @RF00578 02S0578 01991000 @RT00578 DS 0H 02S0579 01992000 * I=3; /* SET I -> ISDA0011 @Y30LB55*/ 01993000 LA I,3 02S0579 01994000 * ELSE; /* SSID OK @Y30LB55*/ 01995000 @RF00578 DS 0H 02S0581 01996000 * ELSE 02S0581 01997000 * IF K=4 THEN /* CHECK DRC SSID @Y30LB55*/ 01998000 B @RC00577 02S0581 01999000 @RF00577 CH K,@CH00101 02S0581 02000000 BNE @RF00581 02S0581 02001000 * IF L>3|J>3 THEN /* BAD SSID @Y30LB55*/ 02002000 LA @07,3 02S0582 02003000 C @07,L 02S0582 02004000 BL @RT00582 02S0582 02005000 CR J,@07 02S0582 02006000 BNH @RF00582 02S0582 02007000 @RT00582 DS 0H 02S0583 02008000 * I=3; /* SET I -> ISDA0011 @Y30LB55*/ 02009000 LA I,3 02S0583 02010000 * ELSE; /* SSID OK @Y30LB55*/ 02011000 @RF00582 DS 0H 02S0585 02012000 * ELSE 02S0585 02013000 * IF K=8 THEN /* CHECK SA SSID @Y30LB55*/ 02014000 B @RC00581 02S0585 02015000 @RF00581 CH K,@CH00066 02S0585 02016000 BNE @RF00585 02S0585 02017000 * IF J>0 THEN /* BAD SSID @Y30LB55*/ 02018000 LTR J,J 02S0586 02019000 BNP @RF00586 02S0586 02020000 * I=3; /* SET I -> ISDA0011 @Y30LB55*/ 02021000 LA I,3 02S0587 02022000 * ELSE; /* SSID OK @Y30LB55*/ 02023000 @RF00586 DS 0H 02S0589 02024000 * ELSE /* CHECK DASD SSID @ZA14723*/ 02025000 * IF K^=0 THEN /* K NOT 0,2,4, OR 8 @ZA14723*/ 02026000 B @RC00585 02S0589 02027000 @RF00585 LTR K,K 02S0589 02028000 BZ @RF00589 02S0589 02029000 * I=3; /* BAD CHAR 1, SET I->ISDA0011 02030000 * @ZA14723*/ 02031000 LA I,3 02S0590 02032000 * ELSE; /* SSID OK @ZA14723*/ 02033000 @RF00589 DS 0H 02S0592 02034000 * ELSE 02S0592 02035000 * IF FORMATNO(6)='1'B THEN /* FORMAT 5 CHECK @Y30LB55*/ 02036000 B @RC00576 02S0592 02037000 @RF00576 L @01,SENSEPTR(,SDAWKPTR) 02S0592 02038000 TM FORMATNO(@01),B'00000100' 02S0592 02039000 BNO @RF00592 02S0592 02040000 * IF K=8 THEN /* CHECK SA SSID @Y30LB55*/ 02041000 CH K,@CH00066 02S0593 02042000 BNE @RF00593 02S0593 02043000 * IF J>0 THEN /* BAD SSID @Y30LB55*/ 02044000 LTR J,J 02S0594 02045000 BNP @RF00594 02S0594 02046000 * I=3; /* SET I -> ISDA0011 @Y30LB55*/ 02047000 LA I,3 02S0595 02048000 * ELSE; /* SSID OK @Y30LB55*/ 02049000 @RF00594 DS 0H 02S0597 02050000 * ELSE /* CKECK 3330 SSID @Y30LB55*/ 02051000 * IF K^=0 THEN /* BAD SSID FOR 3330 @Y30LB55*/ 02052000 B @RC00593 02S0597 02053000 @RF00593 LTR K,K 02S0597 02054000 BZ @RF00597 02S0597 02055000 * I=3; /* SET I -> ISDA0011 @Y30LB55*/ 02056000 LA I,3 02S0598 02057000 * ELSE; /* SSID OK @Y30LB55*/ 02058000 @RF00597 DS 0H 02S0600 02059000 * ELSE; /* NO MORE FORMATS TO CHECK 02S0600 02060000 * @Y30LB55*/ 02061000 @RF00592 DS 0H 02S0601 02062000 */* END OF SSIDCHEK @Y30LB55*/ 02063000 * 02S0601 02064000 * END; /* END SSID CHECK @Y30LB55*/ 02065000 * 01S0601 02066000 @RC00592 DS 0H 01S0601 02067000 @RC00576 DS 0H 01S0601 02068000 @RC00572 DS 0H 01S0601 02069000 @RC00566 DS 0H 01S0602 02070000 * /*********************************************************/ 02071000 * /* */ 02072000 * /* BYTES 0-31 ALL ZERO IN FORMAT 0-5 - ISDA0012 */ 02073000 * /* */ 02074000 * /*********************************************************/ 02075000 * 01S0602 02076000 * IF(ISDAMSCS(1:4)=TEMP4&SUBSENSE=TEMP28) THEN/* SENSE ZERO 02077000 * @ZM30730*/ 02078000 @RC00557 L @07,SENSEPTR(,SDAWKPTR) 01S0602 02079000 CLC ISDAMSCS(4,@07),TEMP4(SDAWKPTR) 01S0602 02080000 BNE @RF00602 01S0602 02081000 CLC SUBSENSE(28,@07),TEMP28(SDAWKPTR) 01S0602 02082000 BNE @RF00602 01S0602 02083000 * I=4; /* SET I -> ISDA0012 @Y30LB55*/ 02084000 LA I,4 01S0603 02085000 * /*********************************************************/ 02086000 * /* */ 02087000 * /* I=5 ISDA0014 INVALID SA FORMAT */ 02088000 * /* CHECK MSS FORMAT 4 SA FORMAT 8-F */ 02089000 * /* CHECK MSS FORMAT 5 SA FORMAT 0-7 */ 02090000 * /* */ 02091000 * /*********************************************************/ 02092000 * ELSE /* CHECK SA FORMATS @Y30LB55*/ 02093000 * IF FORMATNO(5)='1'B&SUBFMTMG<'80'X THEN /*FMT 4@Y30LB55*/ 02094000 B @RC00602 01S0604 02095000 @RF00602 L @07,SENSEPTR(,SDAWKPTR) 01S0604 02096000 TM FORMATNO(@07),B'00001000' 01S0604 02097000 BNO @RF00604 01S0604 02098000 CLI SUBFMTMG(@07),X'80' 01S0604 02099000 BNL @RF00604 01S0604 02100000 * I=5; /* INVALID SA FORMAT @Y30LB55*/ 02101000 LA I,5 01S0605 02102000 * ELSE /* CHECK FORMAT 5 SUBFMT @Y30LB55*/ 02103000 * IF FORMATNO(6)='1'B&SUBFMTMG>'7F'X THEN /* @Y30LB55*/ 02104000 B @RC00604 01S0606 02105000 @RF00604 L @07,SENSEPTR(,SDAWKPTR) 01S0606 02106000 TM FORMATNO(@07),B'00000100' 01S0606 02107000 BNO @RF00606 01S0606 02108000 CLI SUBFMTMG(@07),X'7F' 01S0606 02109000 BNH @RF00606 01S0606 02110000 * I=5; /* INVALID SA FORMAT @Y30LB55*/ 02111000 LA I,5 01S0607 02112000 * ELSE 01S0608 02113000 * ; /* END THIS ROUND OF CHECKS 01S0608 02114000 * @Y30LB55*/ 02115000 @RF00606 DS 0H 01S0609 02116000 * END; /* END MSC RECORD CHECKS @Y30LB55*/ 02117000 * 01S0610 02118000 * /*************************************************************/ 02119000 * /* */ 02120000 * /* 3330 SA TO HOST - BYTES 0-23 ALL ZERO - ISDA0012 */ 02121000 * /* 3330 SA FORMAT NOT 0-7 - ISDA0014 */ 02122000 * /* */ 02123000 * /*************************************************************/ 02124000 * 01S0610 02125000 * ELSE 01S0610 02126000 * DO; /* HOST 3330 @Y30LB55*/ 02127000 B @RC00555 01S0610 02128000 @RF00555 DS 0H 01S0611 02129000 * J=DASDFMTN&'F0'X; /* MASK OFF MESSAGE @Y30LB55*/ 02130000 L @07,SENSEPTR(,SDAWKPTR) 01S0611 02131000 LA J,240 01S0611 02132000 SLR @15,@15 01S0611 02133000 IC @15,DASDFMTN(,@07) 01S0611 02134000 NR J,@15 01S0611 02135000 * IF ISDAMSCS(1:24)=TEMP28(1:24) THEN/* ZERO SENSE @Y30LB55*/ 02136000 CLC ISDAMSCS(24,@07),TEMP28(SDAWKPTR) 01S0612 02137000 BNE @RF00612 01S0612 02138000 * I=4; /* SET I -> ISDA0012 @Y30LB55*/ 02139000 LA I,4 01S0613 02140000 * ELSE 01S0614 02141000 * IF J>'7F'X THEN /* FORMAT 0-7 @Y30LB55*/ 02142000 B @RC00612 01S0614 02143000 @RF00612 CH J,@CH00970 01S0614 02144000 BNH @RF00614 01S0614 02145000 * I=5; /* NO, SET ISDA0014 @Y30LB55*/ 02146000 LA I,5 01S0615 02147000 * ELSE; /* NEXT 3330 CHECK @YD00147*/ 02148000 @RF00614 DS 0H 01S0617 02149000 * END; /* END 3330 CHECKS @Y30LB55*/ 02150000 @RC00612 DS 0H 01S0618 02151000 */* END HOST 3330 CHECKS @Y30LB55*/ 02152000 * 01S0618 02153000 * /*************************************************************/ 02154000 * /* I = 6 */ 02155000 * /* CHECK FOR ZERO STATUS BYTE IN ALL OBR RECORDS - ISDA0015*/ 02156000 * /* */ 02157000 * /*************************************************************/ 02158000 * 01S0618 02159000 * IF I=0&IRECTYPE='O'&STATUS='00'X THEN/* IS OBR STATUS=00 02160000 * @YD00147*/ 02161000 @RC00555 LTR I,I 01S0618 02162000 BNZ @RF00618 01S0618 02163000 CLI IRECTYPE(SDAWKPTR),C'O' 01S0618 02164000 BNE @RF00618 01S0618 02165000 L @07,SENSEPTR(,SDAWKPTR) 01S0618 02166000 CLI STATUS(@07),X'00' 01S0618 02167000 BNE @RF00618 01S0618 02168000 * IF INDEVTYP='S' THEN /* RECORD FROM MSS @ZM31022*/ 02169000 CLI INDEVTYP(SDAWKPTR),C'S' 01S0619 02170000 BNE @RF00619 01S0619 02171000 * I=6; /* YES, SET ISDA0015 @YD00147*/ 02172000 LA I,6 01S0620 02173000 * ELSE; /* NO, 3330 RECORD OK @ZA20267*/ 02174000 @RF00619 DS 0H 01S0622 02175000 * ELSE; /* NO, STATUS NOT ZERO @YD00147*/ 02176000 @RF00618 DS 0H 01S0623 02177000 * IF I=4&INDEVTYP='R' THEN /* REAL 3330 ALL ZERO @ZA09544*/ 02178000 CH I,@CH00101 01S0623 02179000 BNE @RF00623 01S0623 02180000 CLI INDEVTYP(SDAWKPTR),C'R' 01S0623 02181000 BNE @RF00623 01S0623 02182000 * DO; /* YES, IGNORE RECORD @ZA09544*/ 02183000 * I=0; /* RESET ERROR FLAG @ZA09544*/ 02184000 SLR I,I 01S0625 02185000 * USEFLAG(8)='0'B; /* TURN USE FLAG OFF @ZA09544*/ 02186000 NI USEFLAG(SDAWKPTR),B'11111110' 01S0626 02187000 * END; /* END 3330 REAL ZEROS @ZA09544*/ 02188000 * ELSE; /* NOT ZERO 3330 REAL @ZA09544*/ 02189000 @RF00623 DS 0H 01S0629 02190000 * END; /* END CHECK OF SENSE @YD00147*/ 02191000 * ELSE; /* INVALID DATE @ZM31078*/ 02192000 @RF00551 DS 0H 01S0631 02193000 * IF I>0 THEN /* WAS AN ERROR FOUND @Y30LB55*/ 02194000 @RC00551 LTR I,I 01S0631 02195000 BNP @RF00631 01S0631 02196000 * DO; /* YES, SET ERROR MESSAGE WITH I 02197000 * @Y30LB55*/ 02198000 * USEFLAG(8)='0'B; /* TURN USE FLAG OFF @Y30LB55*/ 02199000 NI USEFLAG(SDAWKPTR),B'11111110' 01S0633 02200000 * RETDCNT=RETDCNT+1; /* INC DATA ERRORS COUNT @Y30LB55*/ 02201000 LA @07,1 01S0634 02202000 AH @07,RETDCNT(,SDAWKPTR) 01S0634 02203000 STH @07,RETDCNT(,SDAWKPTR) 01S0634 02204000 * USEFLAG(4)='1'B; /* TURN PRINT ON @Y30LB55*/ 02205000 OI USEFLAG(SDAWKPTR),B'00010000' 01S0635 02206000 * TEMPPTR=ERRDATAP(I); /* SET PTR TO ERROR MESSAGE 01S0636 02207000 * @Y30LB55*/ 02208000 LR @07,I 01S0636 02209000 SLA @07,2 01S0636 02210000 L TEMPPTR,ERRDATAP-4(@07) 01S0636 02211000 * ERRORMSG=ISDA00X1; /* MOVE ERROR MESSAGE @Y30LB55*/ 02212000 MVC ERRORMSG(38,CVTPTR),ISDA00X1(TEMPPTR) 01S0637 02213000 * END; /* END OF ERROR MESSAGE MOVE CODE 02214000 * @Y30LB55*/ 02215000 * ELSE 01S0639 02216000 * ; /* NO ERRORS FOUND @Y30LB55*/ 02217000 @RF00631 DS 0H 01S0640 02218000 * END DATACHEK; /*@Y30LB55*/ 02219000 @EL00002 DS 0H 01S0640 02220000 @EF00002 DS 0H 01S0640 02221000 @ER00002 LM @14,@12,12(@13) 01S0640 02222000 BR @14 01S0640 02223000 * 01S0641 02224000 * /*****************************************************************/ 02225000 * /* */ 02226000 * /* SDAACC00 - CODE TO CALL ACCUMULATORS THIS PROC CHECKS THE */ 02227000 * /* APPROPIATE FLAGS IN RPTTABLE FOR EACH ACCUMULATOR WITH */ 02228000 * /* ISDAPRMS AND THE 3 MASKS BUILT BY SDAFMTCK. THE MODEL */ 02229000 * /* STRUCTURE MRPTTAB IS BASED OFF THE 1ST ENTRY IN RPTTABLE AND */ 02230000 * /* MOVED FROM ENTRY TO ENTRY TO THE END OF THE TABLE. EACH ENTRY */ 02231000 * /* IS CHECKED FOR THE FOLLOWING: WAS REPORT XXX REQUESTED, IF SO */ 02232000 * /* HAS ISDAXXX0 EVER RETURNED AN ERROR CODE OF 4, IF NOT DOES */ 02233000 * /* ISDAXXX0 WANT THIS MSC FORMAT, IF SO DOES ISDAXXX0 WANT THIS */ 02234000 * /* SUBFORMAT, IF SO DOES ISDAXXX0 WANT THIS MESSAGE CODE. IF SO */ 02235000 * /* CALL ISDAXXX0 AND SAVE THE RETURN CODE IN XXXFLAGS. IF NO */ 02236000 * /* ACCUMULATOR WANTS THIS RECORD OR IF ANY ACCUMULATOR REJECTS */ 02237000 * /* THE RECORD THE PRINT FLAG USEFLAG(4) IS SET. USEFLAG(8) WILL */ 02238000 * /* BE 0 IF NO ACCUMULATOR WANTED THE RECORD. */ 02239000 * /* */ 02240000 * /*****************************************************************/ 02241000 * 01S0641 02242000 *SDAACC00: 01S0641 02243000 * PROC; /* CODE TO CALL ACCUMULATORS 02244000 * @Y30LB55*/ 02245000 SDAACC00 STM @14,@12,@SA00003 01S0641 02246000 * MRPTTPTR=ADDR(RPTTABLE); /* INITIALIZE PTR TO RPTTABLE 02247000 * @Y30LB55*/ 02248000 LA MRPTTPTR,RPTTABLE 01S0642 02249000 * USEFLAG(8)='0'B; /* TURN USE FLAG OFF @Y30LB55*/ 02250000 NI USEFLAG(SDAWKPTR),B'11111110' 01S0643 02251000 * DO WHILE(XXX0ADDR^=END0ADDR); /* CALL ACCUMULATOR LOOP @ZD00192*/ 02252000 B @DE00644 01S0644 02253000 @DL00644 DS 0H 01S0645 02254000 * IF CXXX^='00'X&XXXFLAGS^=4&XXX0ADDR^=0 THEN /* @ZD00192*/ 02255000 LR @07,LPARMPTR 01S0645 02256000 AL @07,XXXPADDR(,MRPTTPTR) 01S0645 02257000 CLI CXXX(@07),X'00' 01S0645 02258000 BE @RF00645 01S0645 02259000 LR @07,SDAWKPTR 01S0645 02260000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0645 02261000 CLC XXXFLAGS(2,@07),@CH00101 01S0645 02262000 BE @RF00645 01S0645 02263000 ICM @07,15,XXX0ADDR(MRPTTPTR) 01S0645 02264000 BZ @RF00645 01S0645 02265000 * IF((XXXFMT&FMTCHK)=FMTCHK)&((XXXSUBFG&SUBFMSCK)=SUBFMSCK) THEN 02266000 MVC @TS00001(1),XXXFMT(MRPTTPTR) 01S0646 02267000 NC @TS00001(1),FMTCHK(SDAWKPTR) 01S0646 02268000 CLC @TS00001(1),FMTCHK(SDAWKPTR) 01S0646 02269000 BNE @RF00646 01S0646 02270000 L @07,SUBFMSCK(,SDAWKPTR) 01S0646 02271000 L @05,XXXSUBFG(,MRPTTPTR) 01S0646 02272000 NR @05,@07 01S0646 02273000 CR @05,@07 01S0646 02274000 BNE @RF00646 01S0646 02275000 * DO; /* XXX NEEDS THIS RECORD @Y30LB55*/ 02276000 * 01S0647 02277000 * /*********************************************************/ 02278000 * /* */ 02279000 * /* TRACE PRINTOUT */ 02280000 * /* */ 02281000 * /*********************************************************/ 02282000 * 01S0648 02283000 * IF((CDETAIL&FMTCHK)=FMTCHK)&(CTRACE(8)='1'B) THEN/* WAS 02284000 * CTRACE REQUESTED AND DETAIL 02285000 * PRINT ON FOR THIS FORMAT */ 02286000 MVC @TS00001(1),CDETAIL(LPARMPTR) 01S0648 02287000 NC @TS00001(1),FMTCHK(SDAWKPTR) 01S0648 02288000 CLC @TS00001(1),FMTCHK(SDAWKPTR) 01S0648 02289000 BNE @RF00648 01S0648 02290000 TM CTRACE(LPARMPTR),B'00000001' 01S0648 02291000 BNO @RF00648 01S0648 02292000 * DO; /* YES, PRINT TRACE @Y30LB55*/ 02293000 * ANSI=LSKIP1; /* TRACE @Y30LB55*/ 02294000 MVI ANSI(CVTPTR),C' ' 01S0650 02295000 * LINE=' CALL '; /* TRACE @Y30LB55*/ 02296000 MVI LINE+6(CVTPTR),C' ' 01S0651 02297000 MVC LINE+7(125,CVTPTR),LINE+6(CVTPTR) 01S0651 02298000 MVC LINE(6,CVTPTR),@CC00975 01S0651 02299000 * LINE(7:9)=XXXID; /* TRACE @Y30LB55*/ 02300000 MVC LINE+6(3,CVTPTR),XXXID(MRPTTPTR) 01S0652 02301000 * CALL ISDAPRT0(WORKPTR);/* TRACE @Y30LB55*/ 02302000 LA @07,WORKPTR(,SDAWKPTR) 01S0653 02303000 ST @07,@AL00001 01S0653 02304000 L @15,@CV00900 01S0653 02305000 LA @01,@AL00001 01S0653 02306000 BALR @14,@15 01S0653 02307000 * END; /* END TRACE PRINT @Y30LB55*/ 02308000 * ELSE 01S0655 02309000 * ; /* NO DETAIL, DO NOT PRINT TRACE 02310000 * @Y30LB55*/ 02311000 * 01S0655 02312000 @RF00648 DS 0H 01S0656 02313000 * /*********************************************************/ 02314000 * /* */ 02315000 * /* CALL ACCUMULATOR PROCEDURE */ 02316000 * /* */ 02317000 * /*********************************************************/ 02318000 * 01S0656 02319000 * RFY 01S0656 02320000 * R1 RSTD; /*@Y30LB55*/ 02321000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @Y30LB55*/ 02322000 LA R1,WORKCALL(,CVTPTR) 01S0657 02323000 * CALL ISDAXXX0; /* (WORKPTR) CALL XXX ACCUMULATOR 02324000 * @Y30LB55*/ 02325000 L @15,XXX0ADDR(,MRPTTPTR) 01S0658 02326000 BALR @14,@15 01S0658 02327000 * RFY 01S0659 02328000 * R15 RSTD; /*@Y30LB55*/ 02329000 * XXXFLAGS=R15; /* SAVE RETURN CODE @Y30LB55*/ 02330000 LR @14,SDAWKPTR 01S0660 02331000 AL @14,XXXFLAGP(,MRPTTPTR) 01S0660 02332000 STH R15,XXXFLAGS(,@14) 01S0660 02333000 * RFY 01S0661 02334000 * (R1, 01S0661 02335000 * R15) UNRSTD; /*@Y30LB55*/ 02336000 * IF XXXFLAGS>0 THEN /* ERROR CODE RETURN FROM@Y30LB55 02337000 * ISDAXXX0 @Y30LB55*/ 02338000 * 01S0662 02339000 LR @07,SDAWKPTR 01S0662 02340000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0662 02341000 LH @07,XXXFLAGS(,@07) 01S0662 02342000 LTR @07,@07 01S0662 02343000 BNP @RF00662 01S0662 02344000 * /*******************************************************/ 02345000 * /* */ 02346000 * /* RETURN CODE FROM ISDAXXX0 */ 02347000 * /* */ 02348000 * /*******************************************************/ 02349000 * 01S0663 02350000 * DO; /* PRINT ERROR MESSAGES @Y30LB55*/ 02351000 * IF XXXFLAGS=4 THEN /* NO CORE AVAILABLE FOR XXX0 02352000 * @Y30LB55*/ 02353000 CH @07,@CH00101 01S0664 02354000 BNE @RF00664 01S0664 02355000 * DO; /* PRINT ISDA0006 @Y30LB55*/ 02356000 * LINE=ISDA0006; /* MOVE ISDA0006 @Y30LB55*/ 02357000 MVI LINE+66(CVTPTR),C' ' 01S0666 02358000 MVC LINE+67(65,CVTPTR),LINE+66(CVTPTR) 01S0666 02359000 MVC LINE(66,CVTPTR),ISDA0006 01S0666 02360000 * MSG06ID=XXXID; /* MOVE PGM ID @Y30LB55*/ 02361000 MVC MSG06ID(3,CVTPTR),XXXID(MRPTTPTR) 01S0667 02362000 * ANSI=LSKIP2; /* SET 2 LINE SKIP @Y30LB55*/ 02363000 MVI ANSI(CVTPTR),C'0' 01S0668 02364000 * RFY 01S0669 02365000 * R1 RSTD; /*@Y30LB55*/ 02366000 * R1=ADDR(WORKCALL);/* R1 -> ADDR(WORKPTR) @Y30LB55*/ 02367000 LA R1,WORKCALL(,CVTPTR) 01S0670 02368000 * CALL ISDAPRT0; /* PRINT ISDA0006 @Y30LB55*/ 02369000 L @15,@CV00900 01S0671 02370000 BALR @14,@15 01S0671 02371000 * ANSI=LSKIP1; /* RESET 1 LINE SKIP @Y30LB55*/ 02372000 MVI ANSI(CVTPTR),C' ' 01S0672 02373000 * CALL ISDATYPE; /* WRITE ISDA0006 TO SYSTERM 02374000 * @Y30LB55*/ 02375000 L @15,@CV00904 01S0673 02376000 BALR @14,@15 01S0673 02377000 * RFY 01S0674 02378000 * R1 UNRSTD; /* RELEASE REG 1 @Y30LB55*/ 02379000 * END; /* END XXXFLAGS=4 CODE @Y30LB55*/ 02380000 * ELSE /* XXXFLAGS>4, RECORD REJECTED BY 02381000 * XXX0 @Y30LB55*/ 02382000 * DO; /* SET ERROR FLAGS @Y30LB55*/ 02383000 B @RC00664 01S0676 02384000 @RF00664 DS 0H 01S0677 02385000 * RET8CNT=RET8CNT+1;/* TRACE COUNT @Y30LB55*/ 02386000 LA @07,1 01S0677 02387000 AH @07,RET8CNT(,SDAWKPTR) 01S0677 02388000 STH @07,RET8CNT(,SDAWKPTR) 01S0677 02389000 * IF CTRACE(8)='1'B|XXXFLAGS>16 THEN/* TRACE ON 02390000 * OR ILLEGAL CODE @ZM30730*/ 02391000 TM CTRACE(LPARMPTR),B'00000001' 01S0678 02392000 BO @RT00678 01S0678 02393000 LR @07,SDAWKPTR 01S0678 02394000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0678 02395000 LH @07,XXXFLAGS(,@07) 01S0678 02396000 CH @07,@CH00202 01S0678 02397000 BNH @RF00678 01S0678 02398000 @RT00678 DS 0H 01S0679 02399000 * DO; /* YES, PRINT ISDA0004 @Y30LB55*/ 02400000 * ANSI=LSKIP2;/* SKIP 2 LINES @Y30LB55*/ 02401000 MVI ANSI(CVTPTR),C'0' 01S0680 02402000 * LINE=ISDA0004;/* MOVE MSG04 @Y30LB55*/ 02403000 MVI LINE+39(CVTPTR),C' ' 01S0681 02404000 MVC LINE+40(92,CVTPTR),LINE+39(CVTPTR) 01S0681 02405000 MVC LINE(39,CVTPTR),ISDA0004 01S0681 02406000 * CVD(XXXFLAGS,TEMP8);/* CONVERT RETURN CODE 02407000 * @Y30LB55*/ 02408000 LR @07,SDAWKPTR 01S0682 02409000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0682 02410000 LH @07,XXXFLAGS(,@07) 01S0682 02411000 CVD @07,TEMP8(,SDAWKPTR) 01S0682 02412000 * RCODE04=EDPAT03;/* MOVE EDIT PATTERN @Y30LB55*/ 02413000 MVC RCODE04(4,CVTPTR),EDPAT03 01S0683 02414000 * ED(RCODE04,TEMP78);/* EDIT RETURN CODE 01S0684 02415000 * @Y30LB55*/ 02416000 ED RCODE04(4,CVTPTR),TEMP78(SDAWKPTR) 01S0684 02417000 * IF XXXFLAGS=16 THEN /* REPORT 2 ONLY @ZM30730*/ 02418000 CH @07,@CH00202 01S0685 02419000 BNE @RF00685 01S0685 02420000 * MSG04ID=XXXID2; /* YES, REPORT 2 ID@ZM30730*/ 02421000 MVC MSG04ID(3,CVTPTR),XXXID2(MRPTTPTR) 01S0686 02422000 * ELSE /* NOT ONLY REPORT @ZM30730*/ 02423000 * MSG04ID=XXXID;/* MOVE PGM ID @Y30LB55*/ 02424000 B @RC00685 01S0687 02425000 @RF00685 MVC MSG04ID(3,CVTPTR),XXXID(MRPTTPTR) 01S0687 02426000 * MSG04ID0=ZEROCH;/* SET PGM ID CHAR FOR 01S0688 02427000 * ISDA0004 @Y30LB55*/ 02428000 @RC00685 MVI MSG04ID0(CVTPTR),C'0' 01S0688 02429000 * RFY 01S0689 02430000 * R1 RSTD; /*@Y30LB55*/ 02431000 * R1=ADDR(WORKCALL);/* R1 -> ADDR(WORKPTR) 02432000 * @Y30LB55*/ 02433000 LA R1,WORKCALL(,CVTPTR) 01S0690 02434000 * CALL ISDAPRT0;/* PRINT ISDA0004 @Y30LB55*/ 02435000 L @15,@CV00900 01S0691 02436000 BALR @14,@15 01S0691 02437000 * ANSI=LSKIP1;/* RESET TO 1 LINE SKIP @Y30LB55*/ 02438000 MVI ANSI(CVTPTR),C' ' 01S0692 02439000 * IF RET8CNT<6 THEN/* ONLY TYPE 5 ERRORS 01S0693 02440000 * @Y30LB55*/ 02441000 LH @07,RET8CNT(,SDAWKPTR) 01S0693 02442000 CH @07,@CH00090 01S0693 02443000 BNL @RF00693 01S0693 02444000 * CALL ISDATYPE;/* PRINT ERROR ON SYSTERM 02445000 * @Y30LB55*/ 02446000 L @15,@CV00904 01S0694 02447000 BALR @14,@15 01S0694 02448000 * ELSE 01S0695 02449000 * ; /* SURPRESS OUTPUT TO SYSTERM 02450000 * @Y30LB55*/ 02451000 @RF00693 DS 0H 01S0696 02452000 * RFY 01S0696 02453000 * R1 UNRSTD;/* RELEASE REG 1 @Y30LB55*/ 02454000 * END; /* END TRACE OF RETCODE @Y30LB55*/ 02455000 * ELSE 01S0698 02456000 * ; /* NO TRACE @Y30LB55*/ 02457000 @RF00678 DS 0H 01S0699 02458000 * USEFLAG(4)='1'B;/* SET PRINT FLAG ON @Y30LB55*/ 02459000 OI USEFLAG(SDAWKPTR),B'00010000' 01S0699 02460000 * IF XXXFLAGS=16 THEN /* REPORT 2 ONLY @ZM30730*/ 02461000 LR @07,SDAWKPTR 01S0700 02462000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0700 02463000 CLC XXXFLAGS(2,@07),@CH00202 01S0700 02464000 BNE @RF00700 01S0700 02465000 * XXIDSAVE=XXXID2; /* YES, SAVE RPT 2 ID @ZM30730*/ 02466000 MVC XXIDSAVE(3,SDAWKPTR),XXXID2(MRPTTPTR) 01S0701 02467000 * ELSE /* NOT ONLY REPORT 2 @ZM30730*/ 02468000 * XXIDSAVE=XXXID; /* MOVE PROC NAME @Y30LB55*/ 02469000 B @RC00700 01S0702 02470000 @RF00700 MVC XXIDSAVE(3,SDAWKPTR),XXXID(MRPTTPTR) 01S0702 02471000 * END; /* END REJECT CODE @Y30LB55*/ 02472000 * END; /* END BAD RETURN CODE @Y30LB55*/ 02473000 * ELSE 01S0705 02474000 * USEFLAG(8)='1'B; /* NORMAL RETURN - RESET USE FLAG 02475000 * @Y30LB55*/ 02476000 B @RC00662 01S0705 02477000 @RF00662 OI USEFLAG(SDAWKPTR),B'00000001' 01S0705 02478000 * END; /* END CALL XXX00 CODE @Y30LB55*/ 02479000 * ELSE; /* WRONG DATA FOR XXX @ZM31107*/ 02480000 @RF00646 DS 0H 01S0708 02481000 * ELSE /* CHECK FOR MISSING MOD @ZM31107*/ 02482000 * IF XXX0ADDR=0 THEN /* ISDAXXX0 CODE MISSING @ZM31107*/ 02483000 B @RC00645 01S0708 02484000 @RF00645 ICM @07,15,XXX0ADDR(MRPTTPTR) 01S0708 02485000 BNZ @RF00708 01S0708 02486000 * XXXFLAGS=64; /* SET ERROR CODE 64 @ZM31107*/ 02487000 LR @07,SDAWKPTR 01S0709 02488000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0709 02489000 MVC XXXFLAGS(2,@07),@CH00554 01S0709 02490000 * ELSE; /* XXX NOT REQUESTED @Y30LB55*/ 02491000 @RF00708 DS 0H 01S0711 02492000 * MRPTTPTR=MRPTTPTR+LENGTH(MRPTTAB);/* 01S0711 02493000 * INCREMENT POINTER @Y30LB55*/ 02494000 @RC00645 AH MRPTTPTR,@CH00989 01S0711 02495000 * END; /* END CALL ACCUMULATOR LOOP 02496000 * @Y30LB55*/ 02497000 @DE00644 CLC XXX0ADDR(4,MRPTTPTR),END0ADDR 01S0712 02498000 BNE @DL00644 01S0712 02499000 * LINE=ISDA0008; /* RESTORE ISDA0008 @Y30LB55*/ 02500000 MVI LINE+34(CVTPTR),C' ' 01S0713 02501000 MVC LINE+35(97,CVTPTR),LINE+34(CVTPTR) 01S0713 02502000 MVC LINE(34,CVTPTR),ISDA0008 01S0713 02503000 * ERRORMSG=ISDA0013; /* RESTORE ISDA0013 @Y30LB55*/ 02504000 MVC ERRORMSG(38,CVTPTR),ISDA0013 01S0714 02505000 * ERRMSGID=XXIDSAVE; /* MOVE PROC ID @Y30LB55*/ 02506000 MVC ERRMSGID(3,CVTPTR),XXIDSAVE(SDAWKPTR) 01S0715 02507000 * END SDAACC00; /* RETURN @Y30LB55*/ 02508000 @EL00003 DS 0H 01S0716 02509000 @EF00003 DS 0H 01S0716 02510000 @ER00003 LM @14,@12,@SA00003 01S0716 02511000 BR @14 01S0716 02512000 *DUMPCVT: 01S0717 02513000 * PROC; /* TRACE PROC TO DUMP ISDACVT 02514000 * @Y30LB55*/ 02515000 * 01S0717 02516000 DUMPCVT STM @14,@12,@SA00004 01S0717 02517000 * /*****************************************************************/ 02518000 * /* */ 02519000 * /* TRACE - HEX DUMP OF POINTERS IN ISDACVT */ 02520000 * /* */ 02521000 * /*****************************************************************/ 02522000 * 01S0718 02523000 * IF CTRACE(8)='1'B THEN 01S0718 02524000 TM CTRACE(LPARMPTR),B'00000001' 01S0718 02525000 BNO @RF00718 01S0718 02526000 * DO; /* CTRACE ON @Y30LB55*/ 02527000 * DUMPLEN=LENGTH(CVTPTRS0); /* MOVE LENGTH CVT PTRS @Y30LB55*/ 02528000 MVC DUMPLEN(4,CVTPTR),@CF00914 01S0720 02529000 * LINE=TRACEM01; /* MOVE DUMP MSG @Y30LB55*/ 02530000 MVI LINE+24(CVTPTR),C' ' 01S0721 02531000 MVC LINE+25(107,CVTPTR),LINE+24(CVTPTR) 01S0721 02532000 MVC LINE(24,CVTPTR),TRACEM01 01S0721 02533000 * DUMPADDR=CVTPTR; /* MOVE DUMP ADDRESS @Y30LB55*/ 02534000 ST CVTPTR,DUMPADDR(,CVTPTR) 01S0722 02535000 * DUMPIDNO=99991; /* MOVE DUMP ID @Y30LB55*/ 02536000 MVC DUMPIDNO(4,CVTPTR),@CF00979 01S0723 02537000 * RFY 01S0724 02538000 * R1 RSTD; /*@Y30LB55*/ 02539000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @Y30LB55*/ 02540000 LA R1,WORKCALL(,CVTPTR) 01S0725 02541000 * CALL ISDAHEXP; /* DUMP ISDACVT @Y30LB55*/ 02542000 L @15,@CV00906 01S0726 02543000 BALR @14,@15 01S0726 02544000 * RFY 01S0727 02545000 * R1 UNRSTD; /*@Y30LB55*/ 02546000 * END; /* END TRACE PRINT @Y30LB55*/ 02547000 * ELSE 01S0729 02548000 * ; /* CTRACE NOT ON @Y30LB55*/ 02549000 @RF00718 DS 0H 01S0730 02550000 * END DUMPCVT; /*@Y30LB55*/ 02551000 @EL00004 DS 0H 01S0730 02552000 @EF00004 DS 0H 01S0730 02553000 @ER00004 LM @14,@12,@SA00004 01S0730 02554000 BR @14 01S0730 02555000 * 01S0731 02556000 * /*****************************************************************/ 02557000 * /* */ 02558000 * /* ISDASDA1 - OUTPUT FORMAT PROC THIS PROCEDURE CALL EACH OF THE */ 02559000 * /* OUTPUT FORMAT PROC FOR WHICH INPUT DATA HAS BEEN ACCUMULATED. */ 02560000 * /* */ 02561000 * /*****************************************************************/ 02562000 * 01S0731 02563000 *ISDASDA1: 01S0731 02564000 * PROC; /* OUTPUT FORMAT PROC @Y30LB55*/ 02565000 * 01S0731 02566000 ISDASDA1 STM @14,@12,@SA00005 01S0731 02567000 * /*****************************************************************/ 02568000 * /* */ 02569000 * /* INITIALIZE CONTROL FLAGS AND DATA */ 02570000 * /* */ 02571000 * /*****************************************************************/ 02572000 * 01S0732 02573000 * RETCODE=0; /* SET RETURN CODE @Y30LB55*/ 02574000 * 01S0732 02575000 SLR @07,@07 01S0732 02576000 STH @07,RETCODE(,SDAWKPTR) 01S0732 02577000 * /*****************************************************************/ 02578000 * /* */ 02579000 * /* BUILD SDA OUTPUT HEADER FOR ISDAPRT0 WITH INTERVAL OF THE */ 02580000 * /* INPUT DATA. */ 02581000 * /* */ 02582000 * /*****************************************************************/ 02583000 * 01S0733 02584000 * LINE=''; /* BLANK LEFT HEADER @Y30LB55*/ 02585000 MVI LINE(CVTPTR),C' ' 01S0733 02586000 MVC LINE+1(131,CVTPTR),LINE(CVTPTR) 01S0733 02587000 * MTITLE0=SDAOUTHD; /* MOVE OUTPUT PHASE HEADER 01S0734 02588000 * @Y30LB55*/ 02589000 MVC MTITLE0(9,CVTPTR),SDAOUTHD 01S0734 02590000 * MTITLE=SDAHEADM; /* MOVE MIDDLE HEADER @Y30LB55*/ 02591000 MVC MTITLE(26,CVTPTR),SDAHEADM 01S0735 02592000 * RTITLE=SDAHEADR; /* MOVE RIGHT HEADER @Y30LB55*/ 02593000 MVC RTITLE(8,CVTPTR),SDAHEADR 01S0736 02594000 * UNPK(TEMP7,LOWDATE); /* UNPACK LOW DATE @Y30LB55*/ 02595000 UNPK TEMP7(7,SDAWKPTR),LOWDATE(4,SDAWKPTR) 01S0737 02596000 * HDRSDAY=TEMP7(5:7); /* MOVE LOW DAY @Y30LB55*/ 02597000 MVC HDRSDAY(3,CVTPTR),TEMP7+4(SDAWKPTR) 01S0738 02598000 * HDRSYEAR=TEMP7(3:4); /* MOVE LOW YEAR @Y30LB55*/ 02599000 MVC HDRSYEAR(2,CVTPTR),TEMP7+2(SDAWKPTR) 01S0739 02600000 * UNPK(TEMP7,HIGHDATE); /* UNPACK HIGH DATE @Y30LB55*/ 02601000 UNPK TEMP7(7,SDAWKPTR),HIGHDATE(4,SDAWKPTR) 01S0740 02602000 * HDREDAY=TEMP7(5:7); /* MOVE HIGH DAY @Y30LB55*/ 02603000 MVC HDREDAY(3,CVTPTR),TEMP7+4(SDAWKPTR) 01S0741 02604000 * HDREYEAR=TEMP7(3:4); /* MOVE HIGH YEAR @Y30LB55*/ 02605000 MVC HDREYEAR(2,CVTPTR),TEMP7+2(SDAWKPTR) 01S0742 02606000 * RFY 01S0743 02607000 * R1 RSTD; /*@Y30LB55*/ 02608000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 02609000 LA R1,WORKCALL(,CVTPTR) 01S0744 02610000 * CALL ISDAPRTH; /* PASS HEADER TO ISDAPRT0 01S0745 02611000 * @Y30LB55*/ 02612000 L @15,@CV00902 01S0745 02613000 BALR @14,@15 01S0745 02614000 * ANSI=PSKIP; /* SET PAGE SKIP @Y30LB55*/ 02615000 MVI ANSI(CVTPTR),C'1' 01S0746 02616000 * RFY 01S0747 02617000 * R1 UNRSTD; /* RELEASE REG 1 @Y30LB55*/ 02618000 * 01S0748 02619000 * /*****************************************************************/ 02620000 * /* */ 02621000 * /* THIS SEGMENT CALLS THE CALCULATE PROC, ISDAFSC2. THE OUTPUT */ 02622000 * /* FROM THIS PROC IS THEN PASSED TO ISDASUM1 VIA THE ISDACVT. */ 02623000 * /* ISDAGEN0 IS SHUTOFF. NO CLEANUP REQUIRED. */ 02624000 * /* */ 02625000 * /*****************************************************************/ 02626000 * 01S0748 02627000 * CGEN='00'X; /* TURN OFF CALL FLAG FOR GEN 02628000 * @Y30LB55*/ 02629000 MVI CGEN(LPARMPTR),X'00' 01S0748 02630000 * GENFLAGS=''B; /* RESET GEN RETCODE @ZM31072*/ 02631000 SLR @07,@07 01S0749 02632000 STH @07,GENFLAGS(,SDAWKPTR) 01S0749 02633000 * IF CFSC^='00'X&FSC00PTR^=0 THEN /* WAS FSC REQUESTED @Y30LB55*/ 02634000 CLI CFSC(LPARMPTR),X'00' 01S0750 02635000 BE @RF00750 01S0750 02636000 ICM @07,15,FSC00PTR(CVTPTR) 01S0750 02637000 BZ @RF00750 01S0750 02638000 * DO; /* YES, CALL ISDAFSC2 @Y30LB55*/ 02639000 * MRPTTPTR=ADDR(FSC0ADDR); /* SET PTR TO FSC ENTRY IN 01S0752 02640000 * RPTTABLE @Y30LB55*/ 02641000 LA MRPTTPTR,FSC0ADDR 01S0752 02642000 * XXX2ADDR=ADDR(ISDAFSC2); /* SET CALL ADDR FOR ISADSDA2 02643000 * @Y30LB55*/ 02644000 L @07,@CV00364 01S0753 02645000 ST @07,XXX2ADDR(,SDAWKPTR) 01S0753 02646000 * CALL ISDASDA2; /* CALL CALCULATE CODE @Y30LB55*/ 02647000 BAL @14,ISDASDA2 01S0754 02648000 * END; /* END ISDAFSC2 CODE @Y30LB55*/ 02649000 * ELSE 01S0756 02650000 * ; /*@Y30LB55*/ 02651000 @RF00750 DS 0H 01S0757 02652000 * 01S0757 02653000 * /*****************************************************************/ 02654000 * /* */ 02655000 * /* CALL OUTPUT CODE. THIS CODE USES THE SAVE LOGIC FOR CALLING */ 02656000 * /* THE OUTPUT PROCEDURES AS SDAACC00 USED FOR CALLING THE */ 02657000 * /* ACCUMULATORS. RPTTABLE IS CHECKED TO SEE IF XXX WAS REQUESTED,*/ 02658000 * /* IF SO IS THE DATA POINTER FOR XXX00 IN ISDACVT=0, IF NOT THEN */ 02659000 * /* CALL ISDAXXX1 AND PRINT ANY NON-ZERO RETURN CODE. IF THE */ 02660000 * /* ISDACVT PTR=0 THEN PRINT ISDA0063. */ 02661000 * /* */ 02662000 * /*****************************************************************/ 02663000 * 01S0757 02664000 * ANSI=PSKIP; /* SET PAGE SKIP @Y30LB55*/ 02665000 MVI ANSI(CVTPTR),C'1' 01S0757 02666000 * MRPTTPTR=ADDR(RPTTABLE); /* INITIALZYE TABLE POINTER 01S0758 02667000 * @Y30LB55*/ 02668000 LA MRPTTPTR,RPTTABLE 01S0758 02669000 * DO WHILE(XXX0ADDR^=END0ADDR); /* CALL XXX01 LOOP @ZD00192*/ 02670000 B @DE00759 01S0759 02671000 @DL00759 DS 0H 01S0760 02672000 * IF CXXX^='00'X&XXX1ADDR^=0&XXX0ADDR^=0 THEN /* WAS XXX 01S0760 02673000 * REQUESTED AND CODE OK @ZM31107*/ 02674000 LR @07,LPARMPTR 01S0760 02675000 AL @07,XXXPADDR(,MRPTTPTR) 01S0760 02676000 CLI CXXX(@07),X'00' 01S0760 02677000 BE @RF00760 01S0760 02678000 SLR @07,@07 01S0760 02679000 L @05,XXX1ADDR(,MRPTTPTR) 01S0760 02680000 CR @05,@07 01S0760 02681000 BE @RF00760 01S0760 02682000 C @07,XXX0ADDR(,MRPTTPTR) 01S0760 02683000 BE @RF00760 01S0760 02684000 * IF XXX00PTR^=0 THEN 01S0761 02685000 LR @15,CVTPTR 01S0761 02686000 AL @15,XXXWORKP(,MRPTTPTR) 01S0761 02687000 C @07,XXX00PTR(,@15) 01S0761 02688000 BE @RF00761 01S0761 02689000 * DO; /* YES AND XXX00 WAS CALLED 01S0762 02690000 * @Y30LB55*/ 02691000 * 01S0762 02692000 * /*********************************************************/ 02693000 * /* */ 02694000 * /* CALL OUTPUT PROC ISDAXXX1 */ 02695000 * /* */ 02696000 * /*********************************************************/ 02697000 * 01S0763 02698000 * SDARPTID=XXXID; /* MOVE REPORT ID @ZM30730*/ 02699000 MVC SDARPTID(3,CVTPTR),XXXID(MRPTTPTR) 01S0763 02700000 * RFY 01S0764 02701000 * R1 RSTD; /*@Y30LB55*/ 02702000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @Y30LB55*/ 02703000 LA R1,WORKCALL(,CVTPTR) 01S0765 02704000 * CALL ISDAXXX1; /* (WORKPTR) CALL OUTPUT FORMAT 02705000 * AND PRINT PROC @Y30LB55*/ 02706000 LR @15,@05 01S0766 02707000 BALR @14,@15 01S0766 02708000 * RFY 01S0767 02709000 * R15 RSTD; /*@Y30LB55*/ 02710000 * XXXFLAGS=R15; /* SAVE RETURN CODE @ZD00192*/ 02711000 LR @14,SDAWKPTR 01S0768 02712000 AL @14,XXXFLAGP(,MRPTTPTR) 01S0768 02713000 STH R15,XXXFLAGS(,@14) 01S0768 02714000 * RFY 01S0769 02715000 * (R1, 01S0769 02716000 * R15) UNRSTD; /*@Y30LB55*/ 02717000 * END; /* END CALL OUTPUT CODE @ZD00192*/ 02718000 * ELSE /* REPORT NEVER CALLED @ZD00192*/ 02719000 * XXXFLAGS=8; /* SET NEVER CALLED FLAG @ZD00192*/ 02720000 B @RC00761 01S0771 02721000 @RF00761 LR @07,SDAWKPTR 01S0771 02722000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0771 02723000 MVC XXXFLAGS(2,@07),@CH00066 01S0771 02724000 * ELSE /* CHECK FOR MISSING MOD @ZM31107*/ 02725000 * IF XXX1ADDR=0 THEN /* ISDAXXX1 CODE MISSING @ZM31107*/ 02726000 B @RC00760 01S0772 02727000 @RF00760 ICM @07,15,XXX1ADDR(MRPTTPTR) 01S0772 02728000 BNZ @RF00772 01S0772 02729000 * XXXFLAGS=64; /* SET ERROR CODE 64 @ZM31107*/ 02730000 LR @07,SDAWKPTR 01S0773 02731000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0773 02732000 MVC XXXFLAGS(2,@07),@CH00554 01S0773 02733000 * ELSE; /* XXX NOT REQUESTED @ZD00192*/ 02734000 @RF00772 DS 0H 01S0775 02735000 * MRPTTPTR=MRPTTPTR+LENGTH(MRPTTAB);/* 01S0775 02736000 * INCREMENT POINTER @ZD00192*/ 02737000 @RC00760 AH MRPTTPTR,@CH00989 01S0775 02738000 * END; /* END OF CALL REPORTS @ZD00192*/ 02739000 @DE00759 CLC XXX0ADDR(4,MRPTTPTR),END0ADDR 01S0776 02740000 BNE @DL00759 01S0776 02741000 * SDARPTID=BLANKID; /* BLANK REPORT ID @ZM30730*/ 02742000 MVC SDARPTID(3,CVTPTR),@CC00375 01S0777 02743000 * /*****************************************************************/ 02744000 * /* */ 02745000 * /* LOOP THROUGH THE DISPATCH TABLE AND PRINT MESSAGES FOR ALL */ 02746000 * /* FUNCTIONS THAT RETURNED A NON-ZERO RETURN CODE. */ 02747000 * /* */ 02748000 * /*****************************************************************/ 02749000 * 01S0778 02750000 * ANSI=PSKIP; /* SET PAGE SKIP @ZD00192*/ 02751000 MVI ANSI(CVTPTR),C'1' 01S0778 02752000 * MRPTTPTR=ADDR(RPTTABLE); /* POINT TO START @ZD00192*/ 02753000 LA MRPTTPTR,RPTTABLE 01S0779 02754000 * DO WHILE(XXX0ADDR^=END0ADDR); /* CHECK RETCODE LOOP @ZD00192*/ 02755000 B @DE00780 01S0780 02756000 @DL00780 DS 0H 01S0781 02757000 * RETCODER=XXXFLAGS; /* MOVE RETURN CODE @ZD00192*/ 02758000 LR @07,SDAWKPTR 01S0781 02759000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0781 02760000 LH @07,XXXFLAGS(,@07) 01S0781 02761000 STH @07,RETCODER(,SDAWKPTR) 01S0781 02762000 * IF RETCODER^=0 THEN /* RETCODE SET @ZD00192*/ 02763000 LTR @07,@07 01S0782 02764000 BZ @RF00782 01S0782 02765000 * DO; /* BAD RETURN FROM OUTPUT ROUTINE 02766000 * @Y30LB55*/ 02767000 * IF RETCODER=4 THEN /* NO CORE AVAILABLE FOR OUTPUT 02768000 * XXX1 @Y30LB55*/ 02769000 CH @07,@CH00101 01S0784 02770000 BNE @RF00784 01S0784 02771000 * DO; /* PRINT ISDA0065 @Y30LB55*/ 02772000 * LINE=ISDA0065; /* MOVE ISDA0065 @Y30LB55*/ 02773000 MVI LINE+56(CVTPTR),C' ' 01S0786 02774000 MVC LINE+57(75,CVTPTR),LINE+56(CVTPTR) 01S0786 02775000 MVC LINE(56,CVTPTR),ISDA0065 01S0786 02776000 * MSG65ID=XXXID; /* MOVE PGM ID @Y30LB55*/ 02777000 MVC MSG65ID(3,CVTPTR),XXXID(MRPTTPTR) 01S0787 02778000 * RFY 01S0788 02779000 * R1 RSTD; /*@Y30LB55*/ 02780000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 02781000 LA R1,WORKCALL(,CVTPTR) 01S0789 02782000 * CALL ISDAPRT0; /* PRINT ISDA0065 @ZM30730*/ 02783000 L @15,@CV00900 01S0790 02784000 BALR @14,@15 01S0790 02785000 * ANSI=LSKIP1; /* RESET 1 LINE SKIP @Y30LB55*/ 02786000 MVI ANSI(CVTPTR),C' ' 01S0791 02787000 * CALL ISDATYPE; /* WRITE ISDA0065 TO SYSTERM 02788000 * @ZM30730*/ 02789000 L @15,@CV00904 01S0792 02790000 BALR @14,@15 01S0792 02791000 * RFY R1 UNRSTD; /* RELEASE REG 1 @ZM30730*/ 02792000 * ANSI=LSKIP2; /* RESET 2 LINE SKIP @ZM30730*/ 02793000 MVI ANSI(CVTPTR),C'0' 01S0794 02794000 * END; /* END CODE 4 PRINT @ZM30730*/ 02795000 * ELSE; /* NOT CODE 4 @ZM30730*/ 02796000 @RF00784 DS 0H 01S0797 02797000 * IF CTRACE(8)='1'B|RETCODER>16 THEN /* TRACE ON @Y30LB55*/ 02798000 TM CTRACE(LPARMPTR),B'00000001' 01S0797 02799000 BO @RT00797 01S0797 02800000 LH @07,RETCODER(,SDAWKPTR) 01S0797 02801000 CH @07,@CH00202 01S0797 02802000 BNH @RF00797 01S0797 02803000 @RT00797 DS 0H 01S0798 02804000 * DO; /* YES, PRINT ISDA0004 @Y30LB55*/ 02805000 * LINE=ISDA0004; /* MOVE MSG04 @Y30LB55*/ 02806000 MVI LINE+39(CVTPTR),C' ' 01S0799 02807000 MVC LINE+40(92,CVTPTR),LINE+39(CVTPTR) 01S0799 02808000 MVC LINE(39,CVTPTR),ISDA0004 01S0799 02809000 * CVD(RETCODER,TEMP8); /* CVD RETURN CODE @Y30LB55*/ 02810000 LH @07,RETCODER(,SDAWKPTR) 01S0800 02811000 CVD @07,TEMP8(,SDAWKPTR) 01S0800 02812000 * RCODE04=EDPAT03; /* MOVE EDIT PATTERN @Y30LB55*/ 02813000 MVC RCODE04(4,CVTPTR),EDPAT03 01S0801 02814000 * ED(RCODE04,TEMP78); /* EDIT RETURN CODE @Y30LB55*/ 02815000 ED RCODE04(4,CVTPTR),TEMP78(SDAWKPTR) 01S0802 02816000 * MSG04ID=XXXID; /* MOVE PGM NAME @Y30LB55*/ 02817000 MVC MSG04ID(3,CVTPTR),XXXID(MRPTTPTR) 01S0803 02818000 * MSG04ID0=ONECH; /* SET PGM ID CHAR FOR ISDA0004 02819000 * @Y30LB55*/ 02820000 MVI MSG04ID0(CVTPTR),C'1' 01S0804 02821000 * RFY R1 RSTD; /* GET REG 1 @ZM30730*/ 02822000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @ZM30730*/ 02823000 LA R1,WORKCALL(,CVTPTR) 01S0806 02824000 * CALL ISDAPRT0; /* WRITE ISDA0004 @Y30LB55*/ 02825000 L @15,@CV00900 01S0807 02826000 BALR @14,@15 01S0807 02827000 * ANSI=LSKIP1; /* RESET TO 1 LINE SKIP @Y30LB55*/ 02828000 MVI ANSI(CVTPTR),C' ' 01S0808 02829000 * CALL ISDATYPE; /* PRINT ERROR ON SYSTERM@Y30LB55*/ 02830000 L @15,@CV00904 01S0809 02831000 BALR @14,@15 01S0809 02832000 * RFY R1 UNRSTD; /* RELEASE REG 1 @ZM30730*/ 02833000 * ANSI=LSKIP2; /* RESET 2 LINE SKIP @ZM30730*/ 02834000 MVI ANSI(CVTPTR),C'0' 01S0811 02835000 * END; /* END TRACE @Y30LB55*/ 02836000 * ELSE; /* NO TRACE @Y30LB55*/ 02837000 @RF00797 DS 0H 01S0814 02838000 * 01S0814 02839000 * /***********************************************************/ 02840000 * /* */ 02841000 * /* PRINT REPORT REQUESTED BUT NO INPUT FOUND MESSAGE */ 02842000 * /* FOR RETURN CODES 8, 12, AND 16 */ 02843000 * /* */ 02844000 * /***********************************************************/ 02845000 * 01S0814 02846000 * IF RETCODER>=8&RETCODER<=16 THEN /* NO REPORT @ZM30730*/ 02847000 LA @07,8 01S0814 02848000 LH @05,RETCODER(,SDAWKPTR) 01S0814 02849000 CR @05,@07 01S0814 02850000 BL @RF00814 01S0814 02851000 CH @05,@CH00202 01S0814 02852000 BH @RF00814 01S0814 02853000 * DO; /* PRINT NO DATA MESSAGE @ZD00192*/ 02854000 * LINE=ISDA0063; /* MOVE MESSAGE 63 @Y30LB55*/ 02855000 MVI LINE+51(CVTPTR),C' ' 01S0816 02856000 MVC LINE+52(80,CVTPTR),LINE+51(CVTPTR) 01S0816 02857000 MVC LINE(51,CVTPTR),ISDA0063 01S0816 02858000 * RFY 01S0817 02859000 * R1 RSTD; /*@Y30LB55*/ 02860000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 02861000 LA R1,WORKCALL(,CVTPTR) 01S0818 02862000 * IF (RETCODER=8|RETCODER=12)&CXXX(8)='1'B THEN/*@ZM30730*/ 02863000 CR @05,@07 01S0819 02864000 BE @GL00039 01S0819 02865000 CH @05,@CH00033 01S0819 02866000 BNE @RF00819 01S0819 02867000 @GL00039 LR @07,LPARMPTR 01S0819 02868000 AL @07,XXXPADDR(,MRPTTPTR) 01S0819 02869000 TM CXXX(@07),B'00000001' 01S0819 02870000 BNO @RF00819 01S0819 02871000 * DO; /* REQUESTED REPORT 1 @ZM30730*/ 02872000 * MSG63ID=XXXID; /* MOVE REPORT 1 ID @ZM30730*/ 02873000 MVC MSG63ID(3,CVTPTR),XXXID(MRPTTPTR) 01S0821 02874000 * CVD(XXXNUMB,TEMP8);/* CONVERT REPORT NUMB @ZM30730*/ 02875000 SLR @07,@07 01S0822 02876000 IC @07,XXXNUMB(,MRPTTPTR) 01S0822 02877000 CVD @07,TEMP8(,SDAWKPTR) 01S0822 02878000 * TEMP4=EDPAT03; /* MOVE EDIT PATTERN @ZM30730*/ 02879000 MVC TEMP4(4,SDAWKPTR),EDPAT03 01S0823 02880000 * ED(TEMP4,TEMP78); /* EDIT REPORT NUMBER @ZM30730*/ 02881000 ED TEMP4(4,SDAWKPTR),TEMP78(SDAWKPTR) 01S0824 02882000 * MSG63NUM=TEMP4(3:4);/* MOVE REPORT NUMBER @ZM30730*/ 02883000 MVC MSG63NUM(2,CVTPTR),TEMP4+2(SDAWKPTR) 01S0825 02884000 * CALL ISDAPRT0; /* PRINT ISDA0063 @Y30LB55*/ 02885000 L @15,@CV00900 01S0826 02886000 BALR @14,@15 01S0826 02887000 * ANSI=LSKIP2; /* SET 2 LINE SKIP @ZM30730*/ 02888000 MVI ANSI(CVTPTR),C'0' 01S0827 02889000 * END; /* END REPORT 1 CODE @ZM30730*/ 02890000 * ELSE; /* NOT THIS CASE @ZM30730*/ 02891000 @RF00819 DS 0H 01S0830 02892000 * IF (RETCODER=8|RETCODER=16)&CXXX(7)='1'B THEN/*@ZM30730*/ 02893000 LH @07,RETCODER(,SDAWKPTR) 01S0830 02894000 CH @07,@CH00066 01S0830 02895000 BE @GL00041 01S0830 02896000 CH @07,@CH00202 01S0830 02897000 BNE @RF00830 01S0830 02898000 @GL00041 LR @07,LPARMPTR 01S0830 02899000 AL @07,XXXPADDR(,MRPTTPTR) 01S0830 02900000 TM CXXX(@07),B'00000010' 01S0830 02901000 BNO @RF00830 01S0830 02902000 * DO; /* REQUESTED REPORT 2 @ZM30730*/ 02903000 * MSG63ID=XXXID2; /* MOVE REPORT 2 ID @ZM30730*/ 02904000 MVC MSG63ID(3,CVTPTR),XXXID2(MRPTTPTR) 01S0832 02905000 * I=XXXNUMB+1; /* ADD 1 TO REPORT NUMB @ZM30730*/ 02906000 LA I,1 01S0833 02907000 SLR @07,@07 01S0833 02908000 IC @07,XXXNUMB(,MRPTTPTR) 01S0833 02909000 ALR I,@07 01S0833 02910000 * CVD(I,TEMP8); /* CONVERT REPORT NUMB @ZM30730*/ 02911000 CVD I,TEMP8(,SDAWKPTR) 01S0834 02912000 * TEMP4=EDPAT03; /* MOVE EDIT PATTERN @ZM30730*/ 02913000 MVC TEMP4(4,SDAWKPTR),EDPAT03 01S0835 02914000 * ED(TEMP4,TEMP78); /* EDIT REPORT NUMBER @ZM30730*/ 02915000 ED TEMP4(4,SDAWKPTR),TEMP78(SDAWKPTR) 01S0836 02916000 * MSG63NUM=TEMP4(3:4);/* MOVE REPORT NUMBER @ZM30730*/ 02917000 MVC MSG63NUM(2,CVTPTR),TEMP4+2(SDAWKPTR) 01S0837 02918000 * CALL ISDAPRT0; /* PRINT ISDA0063 @ZM30730*/ 02919000 L @15,@CV00900 01S0838 02920000 BALR @14,@15 01S0838 02921000 * END; /* END REPORT 2 CODE @ZM30730*/ 02922000 * ELSE; /* NOT THIS CASE @ZM30730*/ 02923000 @RF00830 DS 0H 01S0841 02924000 * RFY 01S0841 02925000 * R1 UNRSTD; /*@Y30LB55*/ 02926000 * ANSI=LSKIP2; /* SKIP 2 LINES @Y30LB55*/ 02927000 MVI ANSI(CVTPTR),C'0' 01S0842 02928000 * END; /* END NO INPUT CODE @Y30LB55*/ 02929000 * ELSE /* RETURN CODE 4 OR >16 @ZM31107*/ 02930000 * 01S0844 02931000 * /***********************************************************/ 02932000 * /* */ 02933000 * /* PRINT MISSING CSECT MESSAGE FOR ERROR CODE 64 */ 02934000 * /* */ 02935000 * /***********************************************************/ 02936000 * 01S0844 02937000 * IF RETCODER=64 THEN /* MISSING SOME CODE @ZM31107*/ 02938000 B @RC00814 01S0844 02939000 @RF00814 CLC RETCODER(2,SDAWKPTR),@CH00554 01S0844 02940000 BNE @RF00844 01S0844 02941000 * DO; /* PRINT ISDA0070 @ZM31107*/ 02942000 * LINE=ISDA0070; /* MOVE ISDA0070 @ZM31107*/ 02943000 MVI LINE+94(CVTPTR),C' ' 01S0846 02944000 MVC LINE+95(37,CVTPTR),LINE+94(CVTPTR) 01S0846 02945000 MVC LINE(94,CVTPTR),ISDA0070 01S0846 02946000 * MSG70ID1=XXXID; /* MOVE PGM NAME @ZM31107*/ 02947000 MVC MSG70ID1(3,CVTPTR),XXXID(MRPTTPTR) 01S0847 02948000 * MSG70ID2=XXXID; /* MOVE PGM NAME @ZM31107*/ 02949000 MVC MSG70ID2(3,CVTPTR),XXXID(MRPTTPTR) 01S0848 02950000 * MSG70ID3=XXXID; /* MOVE PGM NAME @ZM31107*/ 02951000 MVC MSG70ID3(3,CVTPTR),XXXID(MRPTTPTR) 01S0849 02952000 * RFY R1 RSTD; 01S0850 02953000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @ZM31107*/ 02954000 LA R1,WORKCALL(,CVTPTR) 01S0851 02955000 * CALL ISDAPRT0; /* PRINT MESSAGE @ZM31107*/ 02956000 L @15,@CV00900 01S0852 02957000 BALR @14,@15 01S0852 02958000 * ANSI=LSKIP1; /* ONE LINE SKIP @ZM31107*/ 02959000 MVI ANSI(CVTPTR),C' ' 01S0853 02960000 * CALL ISDATYPE; /* TYPE MESSAGE @ZM31107*/ 02961000 L @15,@CV00904 01S0854 02962000 BALR @14,@15 01S0854 02963000 * ANSI=LSKIP2; /* SET 2 LINE SKIP @ZM31107*/ 02964000 MVI ANSI(CVTPTR),C'0' 01S0855 02965000 * RFY R1 UNRSTD; 01S0856 02966000 * END; /* END MISSING CSECT @ZM31107*/ 02967000 * ELSE; /* NOT CODE 64 @ZM31107*/ 02968000 @RF00844 DS 0H 01S0859 02969000 * END; /* END NON ZERO RETURN @ZM30730*/ 02970000 * ELSE; /* NO RETURN CODE SET @ZD00192*/ 02971000 @RF00782 DS 0H 01S0861 02972000 * MRPTTPTR=MRPTTPTR+LENGTH(MRPTTAB);/* 01S0861 02973000 * INCREMENT POINTER @Y30LB55*/ 02974000 @RC00782 AH MRPTTPTR,@CH00989 01S0861 02975000 * END; /* END OF CALL OUTPUT PROC LOOP 02976000 * @Y30LB55*/ 02977000 @DE00780 CLC XXX0ADDR(4,MRPTTPTR),END0ADDR 01S0862 02978000 BNE @DL00780 01S0862 02979000 * 01S0863 02980000 * /*****************************************************************/ 02981000 * /* */ 02982000 * /* ISDASDA2 - PROC TO CALL THE CALCULATE PROCEDURES */ 02983000 * /* */ 02984000 * /*****************************************************************/ 02985000 * 01S0863 02986000 *ISDASDA2: 01S0863 02987000 * PROC; /* CALL ISDAXXX2 CODE @Y30LB55*/ 02988000 * 01S0863 02989000 B @PB00006 01S0863 02990000 ISDASDA2 STM @14,@12,@SA00006 01S0863 02991000 * /*****************************************************************/ 02992000 * /* */ 02993000 * /* CALL CALCULATE PROC ISDAXXX2 */ 02994000 * /* */ 02995000 * /*****************************************************************/ 02996000 * 01S0864 02997000 * RFY 01S0864 02998000 * R1 RSTD; /*@Y30LB55*/ 02999000 * R1=ADDR(WORKCALL); /* R1 -> WORKPTR @Y30LB55*/ 03000000 LA R1,WORKCALL(,CVTPTR) 01S0865 03001000 * CALL ISDAXXX2; /* (WORKPTR) CALL CALCULATE PROC 03002000 * @Y30LB55*/ 03003000 L @15,XXX2ADDR(,SDAWKPTR) 01S0866 03004000 BALR @14,@15 01S0866 03005000 * RFY 01S0867 03006000 * R15 RSTD; /*@Y30LB55*/ 03007000 * RETCODER=R15; /* SAVE RETURN CODE @Y30LB55*/ 03008000 STH R15,RETCODER(,SDAWKPTR) 01S0868 03009000 * RFY 01S0869 03010000 * (R1, 01S0869 03011000 * R15) UNRSTD; /*@Y30LB55*/ 03012000 * XXXFLAGS=RETCODER; /* STORE RETURN CODE @ZD00192*/ 03013000 LR @07,SDAWKPTR 01S0870 03014000 AL @07,XXXFLAGP(,MRPTTPTR) 01S0870 03015000 LH @05,RETCODER(,SDAWKPTR) 01S0870 03016000 STH @05,XXXFLAGS(,@07) 01S0870 03017000 * IF RETCODER>0 THEN 01S0871 03018000 LTR @05,@05 01S0871 03019000 BNP @RF00871 01S0871 03020000 * DO; /* BAD RETURN FROM CALCULATE 03021000 * ROUTINE @Y30LB55*/ 03022000 * IF RETCODER=4 THEN /* NO CORE AVAILABLE FOR @Y30LB55 03023000 * CALCULATE XXX2 @Y30LB55*/ 03024000 CH @05,@CH00101 01S0873 03025000 BNE @RF00873 01S0873 03026000 * DO; /* PRINT ISDA0065 @Y30LB55*/ 03027000 * LINE=ISDA0065; /* MOVE ISDA0065 @Y30LB55*/ 03028000 MVI LINE+56(CVTPTR),C' ' 01S0875 03029000 MVC LINE+57(75,CVTPTR),LINE+56(CVTPTR) 01S0875 03030000 MVC LINE(56,CVTPTR),ISDA0065 01S0875 03031000 * MSG65ID=XXXID; /* MOVE PGM ID @Y30LB55*/ 03032000 MVC MSG65ID(3,CVTPTR),XXXID(MRPTTPTR) 01S0876 03033000 * ANSI=LSKIP2; /* SET 2 LINE SKIP @Y30LB55*/ 03034000 MVI ANSI(CVTPTR),C'0' 01S0877 03035000 * RFY 01S0878 03036000 * R1 RSTD; /*@Y30LB55*/ 03037000 * R1=ADDR(WORKCALL); /* R1 -> ADDR(WORKPTR) @Y30LB55*/ 03038000 LA R1,WORKCALL(,CVTPTR) 01S0879 03039000 * CALL ISDAPRT0; /* PRINT ISDA0065 @ZM30730*/ 03040000 L @15,@CV00900 01S0880 03041000 BALR @14,@15 01S0880 03042000 * ANSI=LSKIP1; /* RESET 1 LINE SKIP @Y30LB55*/ 03043000 MVI ANSI(CVTPTR),C' ' 01S0881 03044000 * CALL ISDATYPE; /* WRITE ISDA0065 ON 01S0882 03045000 * SYSTERM @Y30LB55*/ 03046000 L @15,@CV00904 01S0882 03047000 BALR @14,@15 01S0882 03048000 * END; /* END CODE 4 PRINT @ZM30730*/ 03049000 * ELSE; /* NOT CODE 4 @ZM30730*/ 03050000 @RF00873 DS 0H 01S0885 03051000 * IF CTRACE(8)='1'B|RETCODER>16 THEN /* TRACE ON @Y30LB55*/ 03052000 TM CTRACE(LPARMPTR),B'00000001' 01S0885 03053000 BO @RT00885 01S0885 03054000 LH @07,RETCODER(,SDAWKPTR) 01S0885 03055000 CH @07,@CH00202 01S0885 03056000 BNH @RF00885 01S0885 03057000 @RT00885 DS 0H 01S0886 03058000 * DO; /* YES, PRINT ISDA0004 @Y30LB55*/ 03059000 * ANSI=LSKIP2; /* SET 2 LINE SKIP @Y30LB55*/ 03060000 MVI ANSI(CVTPTR),C'0' 01S0887 03061000 * LINE=ISDA0004; /* MOVE MSG04 @Y30LB55*/ 03062000 MVI LINE+39(CVTPTR),C' ' 01S0888 03063000 MVC LINE+40(92,CVTPTR),LINE+39(CVTPTR) 01S0888 03064000 MVC LINE(39,CVTPTR),ISDA0004 01S0888 03065000 * CVD(RETCODER,TEMP8); /* CVD RETURN CODE @Y30LB55*/ 03066000 LH @07,RETCODER(,SDAWKPTR) 01S0889 03067000 CVD @07,TEMP8(,SDAWKPTR) 01S0889 03068000 * RCODE04=EDPAT03; /* MOVE EDIT PATTERN @Y30LB55*/ 03069000 MVC RCODE04(4,CVTPTR),EDPAT03 01S0890 03070000 * ED(RCODE04,TEMP78); /* EDIT RETURN CODE @Y30LB55*/ 03071000 ED RCODE04(4,CVTPTR),TEMP78(SDAWKPTR) 01S0891 03072000 * MSG04ID=XXXID; /* MOVE PGM NAME @Y30LB55*/ 03073000 MVC MSG04ID(3,CVTPTR),XXXID(MRPTTPTR) 01S0892 03074000 * MSG04ID0=TWOCH; /* SET PGM ID CHAR FOR ISDA0004 03075000 * @Y30LB55*/ 03076000 MVI MSG04ID0(CVTPTR),C'2' 01S0893 03077000 * CALL ISDAPRT0; /* WRITE ISDA0004 @Y30LB55*/ 03078000 L @15,@CV00900 01S0894 03079000 BALR @14,@15 01S0894 03080000 * ANSI=LSKIP1; /* RESET TO 1 LINE SKIP @Y30LB55*/ 03081000 MVI ANSI(CVTPTR),C' ' 01S0895 03082000 * CALL ISDATYPE; /* PRINT ERROR ON SYSTERM@Y30LB55*/ 03083000 L @15,@CV00904 01S0896 03084000 BALR @14,@15 01S0896 03085000 * END; /* END TRACE @Y30LB55*/ 03086000 * ELSE 01S0898 03087000 * ; /* NO TRACE @Y30LB55*/ 03088000 @RF00885 DS 0H 01S0899 03089000 * RFY 01S0899 03090000 * R1 UNRSTD; /* RELEASE REG 1 @Y30LB55*/ 03091000 * END; /* END BAD RETURN CODE @Y30LB55*/ 03092000 * ELSE 01S0901 03093000 * ; /* RETURN CODE OK @Y30LB55*/ 03094000 @RF00871 DS 0H 01S0902 03095000 * END ISDASDA2; /* END CALL CALCULATE PROC 01S0902 03096000 * @Y30LB55*/ 03097000 @EL00006 DS 0H 01S0902 03098000 @EF00006 DS 0H 01S0902 03099000 @ER00006 LM @14,@12,@SA00006 01S0902 03100000 BR @14 01S0902 03101000 * END ISDASDA1; /* RETURN TO ISDASDA0 @Y30LB55*/ 03102000 @EL00005 DS 0H 01S0903 03103000 @EF00005 DS 0H 01S0903 03104000 @ER00005 LM @14,@12,@SA00005 01S0903 03105000 BR @14 01S0903 03106000 * END ISDASDA0 /* END OF ISDASDA0 @Y30LB55*/ 03107000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. * 03108000 */*%INCLUDE SYSLIB (ISDACVT ) * 03109000 */*%INCLUDE SYSLIB (ISDAPRMS) * 03110000 */*%INCLUDE SYSLIB (ISDAGHDR) * 03111000 */*%INCLUDE SYSLIB (ISDALOBR) * 03112000 */*%INCLUDE SYSLIB (ISDAMSCS) * 03113000 */*%INCLUDE SYSUT5 (REG1FIX ) * 03114000 */*%INCLUDE SYSUT5 (STARTEND) * 03115000 */*%INCLUDE SYSUT5 (INITRECF) * 03116000 */*%INCLUDE SYSUT5 (OBRMDRCK) * 03117000 */*%INCLUDE SYSUT5 (SDAFMTCK) * 03118000 */*%INCLUDE SYSUT5 (DATEHILO) * 03119000 */*%INCLUDE SYSUT5 (CHECKDT ) * 03120000 */*%INCLUDE SYSUT5 (SSIDCHEK) * 03121000 *; 01S0904 03122000 @DATA DS 0H 03123000 @CH00082 DC H'3' 03124000 @CH00101 DC H'4' 03125000 @CH00175 DC H'5' 03126000 @CH00090 DC H'6' 03127000 @CH00294 DC H'7' 03128000 @CH00066 DC H'8' 03129000 @CH00228 DC H'10' 03130000 @CH00033 DC H'12' 03131000 @CH00202 DC H'16' 03132000 @CH00405 DC H'20' 03133000 @CH00068 DC H'24' 03134000 @CH00989 DC H'32' 03135000 @CH00627 DC H'36' 03136000 @CH00554 DC H'64' 03137000 @CH00915 DC H'104' 03138000 @CH00916 DC H'124' 03139000 @CH00935 DC H'635' 03140000 @CH00970 DC XL2'7F' 03141000 @SM00990 MVC LINE+32(0,CVTPTR),R1PARMS(PARMSAVE) 03142000 @DATD DSECT 03143000 DS 0F 03144000 @SA00001 DS 18F 03145000 @SA00003 DS 15F 03146000 @SA00005 DS 15F 03147000 @SA00006 DS 15F 03148000 @SA00004 DS 0F 03149000 DS 15F 03150000 @AL00001 DS 1A 03151000 ISDASDA0 CSECT 03152000 DS 0F 03153000 @CF00078 DC F'1' 03154000 @CH00078 EQU @CF00078+2 03155000 @CF00097 DC F'2' 03156000 @CH00097 EQU @CF00097+2 03157000 @CF00649 DC F'49' 03158000 @CF00914 DC F'100' 03159000 @CH00914 EQU @CF00914+2 03160000 @CF00979 DC F'99991' 03161000 @CF00919 DC F'99992' 03162000 @CF00921 DC F'99993' 03163000 @CF00911 DC XL4'0000000F' 03164000 @CF00952 DC XL4'8000' 03165000 @CF00966 DC XL4'000F' 03166000 @DATD DSECT 03167000 DS 0D 03168000 L DS F 03169000 @TS00001 DS CL1 03170000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 03171000 @ENDDATD EQU * 03172000 ISDASDA0 CSECT 03173000 DS 0F 03174000 @SIZDATD DC AL1(0) 03175000 DC AL3(@ENDDATD-@DATD) 03176000 @CV00339 DC V(ISDADCS0) 03177000 @CV00340 DC V(ISDAPAD0) 03178000 @CV00341 DC V(ISDASUM0) 03179000 @CV00342 DC V(ISDADHE0) 03180000 @CV00343 DC V(ISDAFSC0) 03181000 @CV00344 DC V(ISDAEQC0) 03182000 @CV00345 DC V(ISDADCK0) 03183000 @CV00346 DC V(ISDACSB0) 03184000 @CV00347 DC V(ISDADAT0) 03185000 @CV00348 DC V(ISDADRC0) 03186000 @CV00349 DC V(ISDAGEN0) 03187000 @CV00350 DC V(ISDAAPR0) 03188000 @CV00352 DC V(ISDADCS1) 03189000 @CV00353 DC V(ISDAPAD1) 03190000 @CV00354 DC V(ISDASUM1) 03191000 @CV00355 DC V(ISDADHE1) 03192000 @CV00356 DC V(ISDAFSC1) 03193000 @CV00357 DC V(ISDAEQC1) 03194000 @CV00358 DC V(ISDADCK1) 03195000 @CV00359 DC V(ISDACSB1) 03196000 @CV00360 DC V(ISDADAT1) 03197000 @CV00361 DC V(ISDADRC1) 03198000 @CV00362 DC V(ISDAAPR1) 03199000 @CV00364 DC V(ISDAFSC2) 03200000 @CV00896 DC V(ISDAPARM) 03201000 @CV00897 DC V(ISDAOPT0) 03202000 @CV00898 DC V(ISDACNFG) 03203000 @CV00899 DC V(ISDACNF1) 03204000 @CV00900 DC V(ISDAPRT0) 03205000 @CV00901 DC V(ISDAPRTO) 03206000 @CV00902 DC V(ISDAPRTH) 03207000 @CV00903 DC V(ISDAPRTC) 03208000 @CV00904 DC V(ISDATYPE) 03209000 @CV00905 DC V(ISDATYPC) 03210000 @CV00906 DC V(ISDAHEXP) 03211000 @CV00907 DC V(ISDAHIST) 03212000 @CV00908 DC V(ISDALOG0) 03213000 @CV00895 DC V(ISDAFREE) 03214000 @CV00893 DC V(ISDAGET0) 03215000 @CV00894 DC V(ISDAGET1) 03216000 DS 0D 03217000 @CC00930 DC C'SDAHISIN' 03218000 @CC00931 DC C'SDALOGIN' 03219000 @CC00975 DC C' CALL ' 03220000 @CC00371 DC C'READ' 03221000 @CC00373 DC C'USED' 03222000 @CC00920 DC C'NONE' 03223000 @CC00375 DC C' ' 03224000 @CC00925 DC C'CNF' 03225000 @CC00941 EQU @CC00930 03226000 @CC00954 EQU @CC00375 03227000 @CB00911 DC X'0000000F' 03228000 @CB00912 DC X'0999999F' 03229000 @CB00932 DC X'00000010' 03230000 @CB00933 DC X'0099999F' 03231000 @CB00955 DC X'00000000' 03232000 @CB00389 DC X'2009' 03233000 @CB00391 DC X'200D' 03234000 @CB00393 DC X'0842' 03235000 @CB00956 EQU @CB00911 03236000 EDPAT03 DC X'40202120' 03237000 EDPAT05 DC X'402020202120' 03238000 SDAHEADL DC CL20'SYSTEM DATA ANALYZER' 03239000 SDAHEADD DC CL40'REPORT 1 - DETAIL PRINT OF INPUT RECORDS' 03240000 SDAVERNO DC CL12'VERSION 2.1 ' 03241000 SDAINHD DC CL9'REQUESTED' 03242000 SDAHEADI DC CL26'CONTROL INPUT' 03243000 SDAHEADM DC CL26'INTERVAL: DDD/YY TO DDD/YY' 03244000 SDAHEADR DC CL8'PAGE 1' 03245000 ISDA0002 DC CL37'ISDA0002 RETURN CODE XXX ON XXXXXXXX' 03246000 ISDA0003 DC CL46' XXXXX RECORDS READ FOR DATES DDD/YY TO DDD/YY' 03247000 ISDA0004 DC CL39'ISDA0004 RETURN CODE XXX FROM ISDAXXX ' 03248000 ISDA0005 DC CL38'00000 RECORDS READ, 00000 RECORDS USED' 03249000 ISDA0006 DC CL66'ISDA0006 NO SPACE AVAILABLE FOR XXX TO CONTINUE ACC03250000 CUMULATING DATA' 03251000 ISDA0008 DC CL34'ISDA0008 COMPLETE INPUT RECORD - ' 03252000 ISDA0009 DC CL38'ISDA0009 INVALID DATE' 03253000 ISDA0010 DC CL38'ISDA0010 NO FORMAT NUMBER' 03254000 ISDA0011 DC CL38'ISDA0011 SUBSYSTEM ID IS INVALID' 03255000 ISDA0012 DC CL38'ISDA0012 SENSE DATA ALL ZERO' 03256000 ISDA0013 DC CL38'ISDA0013 RECORD REJECTED BY' 03257000 ISDA0014 DC CL38'ISDA0014 INVALID SA FORMAT' 03258000 ISDA0015 DC CL38'ISDA0015 INVALID STATUS BYTE' 03259000 ISDA0031 DC CL38'ISDA0031 DDNAMEIN, OPEN FAILED.' 03260000 ISDA0032 DC CL38' DDNAMEIN, END OF FILE.' 03261000 ISDA0033 DC CL38'ISDA0033 DDNAMEIN, READ ERROR.' 03262000 ISDA0034 DC CL38'ISDA0034 DDNAMEIN, NO LOGREC HEADER.' 03263000 ISDA0035 DC CL38' DDNAMEIN, END OF LOGREC.' 03264000 ISDA0036 DC CL38'ISDA0036 DDNAMEIN, NO SPACE FOR I/O' 03265000 ISDA0041 DC CL52'ISDA0041 INPUT PARAMETERS EXCEEDS ISDAPARM TABLE' 03266000 ISDA0042 DC CL52'ISDA0042 READ ERROR ON SYSIN' 03267000 ISDA0043 DC CL52'ISDA0043 SEVERE ERROR IN SDA PARAMETERS' 03268000 ISDA0044 DC CL52'ISDA0044 NO VALID INPUT DATA FOUND' 03269000 ISDA0045 DC CL52'ISDA0045 ABNORMAL TERMINATION OF SDA' 03270000 ISDA0046 DC CL52'ISDA0046 NO SPACE AVAILABLE FOR ISDACNFG' 03271000 ISDA0047 DC CL52'ISDA0047 INVALID OR MISSING INFORMATION IN SDACONFC03272000 G' 03273000 ISDA0048 DC CL52'ISDA0048 READ ERROR ON SDACONFG' 03274000 ISDA0049 DC CL52'ISDA0049 NO CONFIGURATION RECORDS FOUND' 03275000 ISDA0051 DC CL64'ISDA0051 PATH ANALYSIS CANNOT BE RUN WITHOUT CONFIC03276000 GURATION DATA' 03277000 ISDA0099 DC CL14'END OF SDA RUN' 03278000 ISDA0063 DC CL51'REPORT NN - XXX - REQUESTED BUT NO INPUT DATA FOUNDC03279000 ' 03280000 ISDA0065 DC CL56'ISDA0065 NO SPACE AVAILABLE FOR XXX TO PRODUCE A RC03281000 EPORT' 03282000 ISDA0070 DC CL94'*** ERROR *** THE CODE FOR XXX (ISDAXXX0 OR ISDAXXXC03283000 1) IS MISSING FROM THE LOAD MODULE ISDASDA0' 03284000 ISDA0104 DC CL33'ISDA0104 UNABLE TO OPEN SYSPRINT' 03285000 ISDA0112 DC CL33'ISDA0112 WRITE ERROR ON SYSPRINT' 03286000 ISDA0124 DC CL40'ISDA0124 NO SPACE FOR SYSPRINT WORKAREA' 03287000 SDAOUTHD DC CL9' SELECTED' 03288000 TRACEM01 DC CL24'ISDASDA0 TRACE - ISDACVT' 03289000 TRACEM02 DC CL31'ISDASDA0 TRACE - SDA EXEC FIELD' 03290000 TRACEM03 DC CL25'ISDASDA0 TRACE - ISDAPRMS' 03291000 DS CL3 03292000 RPTTABLE DS CL388 03293000 ORG RPTTABLE 03294000 GEN0ADDR DC VL4(ISDAGEN0) 03295000 GEN1ADDR DC VL4(ISDAGEN0) 03296000 GENPADDR DC AL4(CGEN) 03297000 GENWORKP DC AL4(GEN00PTR) 03298000 GENFLAGP DC AL4(GENFLAGS) 03299000 GENINCHK DS FL4 03300000 ORG GENINCHK 03301000 GENFMT DC B'01100100' 03302000 GENID DC CL3'GEN' 03303000 ORG RPTTABLE+24 03304000 GENR2FLG DS FL4 03305000 ORG GENR2FLG 03306000 GENID2 DC CL3'GEN' 03307000 GENNUMB DC AL1(0) 03308000 ORG RPTTABLE+28 03309000 GENSUBFG DS FL4 03310000 ORG GENSUBFG 03311000 GENSUBF DC B'1011000000000000' 03312000 GENMSGCD DC X'FFFF' 03313000 ORG RPTTABLE+32 03314000 SUM0ADDR DC VL4(ISDASUM0) 03315000 SUM1ADDR DC VL4(ISDASUM1) 03316000 SUMPADDR DC AL4(CSUM) 03317000 SUMWORKP DC AL4(SUM00PTR) 03318000 SUMFLAGP DC AL4(SUMFLAGS) 03319000 SUMINCHK DS FL4 03320000 ORG SUMINCHK 03321000 SUMFMT DC B'11111100' 03322000 SUMID DC CL3'SUM' 03323000 ORG RPTTABLE+56 03324000 SUMR2FLG DS FL4 03325000 ORG SUMR2FLG 03326000 SUMID2 DC CL3'SUM' 03327000 SUMNUMB DC AL1(2) 03328000 ORG RPTTABLE+60 03329000 SUMSUBFG DS FL4 03330000 ORG SUMSUBFG 03331000 SUMSUBF DC X'FFFF' 03332000 SUMMSGCD DC X'FFFF' 03333000 ORG RPTTABLE+64 03334000 APR0ADDR DC VL4(ISDAAPR0) 03335000 APR1ADDR DC VL4(ISDAAPR1) 03336000 APRPADDR DC AL4(CAPRSUU) 03337000 APRWORKP DC AL4(APR00PTR) 03338000 APRFLAGP DC AL4(APRFLAGS) 03339000 APRINCHK DS FL4 03340000 ORG APRINCHK 03341000 APRFMT DC B'11111100' 03342000 APRID DC CL3'APR' 03343000 ORG RPTTABLE+88 03344000 APRR2FLG DS FL4 03345000 ORG APRR2FLG 03346000 APRID2 DC CL3'SUU' 03347000 APRNUMB DC AL1(3) 03348000 ORG RPTTABLE+92 03349000 APRSUBFG DS FL4 03350000 ORG APRSUBFG 03351000 APRSUBF DC B'1111100001111010' 03352000 APRMSGCD DC B'1000001111100000' 03353000 ORG RPTTABLE+96 03354000 FSC0ADDR DC VL4(ISDAFSC0) 03355000 FSC1ADDR DC VL4(ISDAFSC1) 03356000 FSCPADDR DC AL4(CFSC) 03357000 FSCWORKP DC AL4(FSC00PTR) 03358000 FSCFLAGP DC AL4(FSCFLAGS) 03359000 FSCINCHK DS FL4 03360000 ORG FSCINCHK 03361000 FSCFMT DC B'01111100' 03362000 FSCID DC CL3'FSC' 03363000 ORG RPTTABLE+120 03364000 FSCR2FLG DS FL4 03365000 ORG FSCR2FLG 03366000 FSCID2 DC CL3'FSC' 03367000 FSCNUMB DC AL1(5) 03368000 ORG RPTTABLE+124 03369000 FSCSUBFG DS FL4 03370000 ORG FSCSUBFG 03371000 FSCSUBF DC B'1111100001110010' 03372000 FSCMSGCD DC X'FFFF' 03373000 ORG RPTTABLE+128 03374000 PAD0ADDR DC VL4(ISDAPAD0) 03375000 PAD1ADDR DC VL4(ISDAPAD1) 03376000 PADPADDR DC AL4(CPAD) 03377000 PADWORKP DC AL4(PAD00PTR) 03378000 PADFLAGP DC AL4(PADFLAGS) 03379000 PADINCHK DS FL4 03380000 ORG PADINCHK 03381000 PADFMT DC B'00001100' 03382000 PADID DC CL3'PAD' 03383000 ORG RPTTABLE+152 03384000 PADR2FLG DS FL4 03385000 ORG PADR2FLG 03386000 PADID2 DC CL3'PAD' 03387000 PADNUMB DC AL1(6) 03388000 ORG RPTTABLE+156 03389000 PADSUBFG DS FL4 03390000 ORG PADSUBFG 03391000 PADSUBF DC B'0111000001110010' 03392000 PADMSGCD DC X'FFFF' 03393000 ORG RPTTABLE+160 03394000 EQC0ADDR DC VL4(ISDAEQC0) 03395000 EQC1ADDR DC VL4(ISDAEQC1) 03396000 EQCPADDR DC AL4(CEQC) 03397000 EQCWORKP DC AL4(EQC00PTR) 03398000 EQCFLAGP DC AL4(EQCFLAGS) 03399000 EQCINCHK DS FL4 03400000 ORG EQCINCHK 03401000 EQCFMT DC B'01111100' 03402000 EQCID DC CL3'EQC' 03403000 ORG RPTTABLE+184 03404000 EQCR2FLG DS FL4 03405000 ORG EQCR2FLG 03406000 EQCID2 DC CL3'EQC' 03407000 EQCNUMB DC AL1(7) 03408000 ORG RPTTABLE+188 03409000 EQCSUBFG DS FL4 03410000 ORG EQCSUBFG 03411000 EQCSUBF DC B'1111110001110010' 03412000 EQCMSGCD DC X'FFFF' 03413000 ORG RPTTABLE+192 03414000 DCK0ADDR DC VL4(ISDADCK0) 03415000 DCK1ADDR DC VL4(ISDADCK1) 03416000 DCKPADDR DC AL4(CDCKTLX) 03417000 DCKWORKP DC AL4(DCK00PTR) 03418000 DCKFLAGP DC AL4(DCKFLAGS) 03419000 DCKINCHK DS FL4 03420000 ORG DCKINCHK 03421000 DCKFMT DC B'00001000' 03422000 DCKID DC CL3'DCK' 03423000 ORG RPTTABLE+216 03424000 DCKR2FLG DS FL4 03425000 ORG DCKR2FLG 03426000 DCKID2 DC CL3'TLX' 03427000 DCKNUMB DC AL1(8) 03428000 ORG RPTTABLE+220 03429000 DCKSUBFG DS FL4 03430000 ORG DCKSUBFG 03431000 DCKSUBF DC B'0000000001000000' 03432000 DCKMSGCD DC X'FFFF' 03433000 ORG RPTTABLE+224 03434000 DRC0ADDR DC VL4(ISDADRC0) 03435000 DRC1ADDR DC VL4(ISDADRC1) 03436000 DRCPADDR DC AL4(CDRC) 03437000 DRCWORKP DC AL4(DRC00PTR) 03438000 DRCFLAGP DC AL4(DRCFLAGS) 03439000 DRCINCHK DS FL4 03440000 ORG DRCINCHK 03441000 DRCFMT DC B'00001000' 03442000 DRCID DC CL3'DRC' 03443000 ORG RPTTABLE+248 03444000 DRCR2FLG DS FL4 03445000 ORG DRCR2FLG 03446000 DRCID2 DC CL3'DRC' 03447000 DRCNUMB DC AL1(10) 03448000 ORG RPTTABLE+252 03449000 DRCSUBFG DS FL4 03450000 ORG DRCSUBFG 03451000 DRCSUBF DC B'0000000000000010' 03452000 DRCMSGCD DC X'FFFF' 03453000 ORG RPTTABLE+256 03454000 DAT0ADDR DC VL4(ISDADAT0) 03455000 DAT1ADDR DC VL4(ISDADAT1) 03456000 DATPADDR DC AL4(CDAT) 03457000 DATWORKP DC AL4(DAT00PTR) 03458000 DATFLAGP DC AL4(DATFLAGS) 03459000 DATINCHK DS FL4 03460000 ORG DATINCHK 03461000 DATFMT DC B'00001000' 03462000 DATID DC CL3'DAT' 03463000 ORG RPTTABLE+280 03464000 DATR2FLG DS FL4 03465000 ORG DATR2FLG 03466000 DATID2 DC CL3'DAT' 03467000 DATNUMB DC AL1(11) 03468000 ORG RPTTABLE+284 03469000 DATSUBFG DS FL4 03470000 ORG DATSUBFG 03471000 DATSUBF DC B'0000000000010000' 03472000 DATMSGCD DC X'FFFF' 03473000 ORG RPTTABLE+288 03474000 DHE0ADDR DC VL4(ISDADHE0) 03475000 DHE1ADDR DC VL4(ISDADHE1) 03476000 DHEPADDR DC AL4(CDHEDHU) 03477000 DHEWORKP DC AL4(DHE00PTR) 03478000 DHEFLAGP DC AL4(DHEFLAGS) 03479000 DHEINCHK DS FL4 03480000 ORG DHEINCHK 03481000 DHEFMT DC B'10000000' 03482000 DHEID DC CL3'DHU' 03483000 ORG RPTTABLE+312 03484000 DHER2FLG DS FL4 03485000 ORG DHER2FLG 03486000 DHEID2 DC CL3'DHE' 03487000 DHENUMB DC AL1(12) 03488000 ORG RPTTABLE+316 03489000 DHESUBFG DS FL4 03490000 ORG DHESUBFG 03491000 DHESUBF DC X'FFFF' 03492000 DHEMSGCD DC B'0000010000000000' 03493000 ORG RPTTABLE+320 03494000 CSB0ADDR DC VL4(ISDACSB0) 03495000 CSB1ADDR DC VL4(ISDACSB1) 03496000 CSBPADDR DC AL4(CCSBCSF) 03497000 CSBWORKP DC AL4(CSB00PTR) 03498000 CSBFLAGP DC AL4(CSBFLAGS) 03499000 CSBINCHK DS FL4 03500000 ORG CSBINCHK 03501000 CSBFMT DC B'00010000' 03502000 CSBID DC CL3'CSB' 03503000 ORG RPTTABLE+344 03504000 CSBR2FLG DS FL4 03505000 ORG CSBR2FLG 03506000 CSBID2 DC CL3'CSF' 03507000 CSBNUMB DC AL1(14) 03508000 ORG RPTTABLE+348 03509000 CSBSUBFG DS FL4 03510000 ORG CSBSUBFG 03511000 CSBSUBF DC X'FFFF' 03512000 CSBMSGCD DC X'FFFF' 03513000 ORG RPTTABLE+352 03514000 DCS0ADDR DC VL4(ISDADCS0) 03515000 DCS1ADDR DC VL4(ISDADCS1) 03516000 DCSPADDR DC AL4(CDCS) 03517000 DCSWORKP DC AL4(DCS00PTR) 03518000 DCSFLAGP DC AL4(DCSFLAGS) 03519000 DCSINCHK DS FL4 03520000 ORG DCSINCHK 03521000 DCSFMT DC B'00001000' 03522000 DCSID DC CL3'DCS' 03523000 ORG RPTTABLE+376 03524000 DCSR2FLG DS FL4 03525000 ORG DCSR2FLG 03526000 DCSID2 DC CL3'DCS' 03527000 DCSNUMB DC AL1(16) 03528000 ORG RPTTABLE+380 03529000 DCSSUBFG DS FL4 03530000 ORG DCSSUBFG 03531000 DCSSUBF DC B'0000000000000100' 03532000 DCSMSGCD DC X'FFFF' 03533000 ORG RPTTABLE+384 03534000 END0ADDR DC XL4'7FFFFFFF' 03535000 ORG RPTTABLE+388 03536000 ERRDATAP DC AL4(ISDA0009) 03537000 DC AL4(ISDA0010) 03538000 DC AL4(ISDA0011) 03539000 DC AL4(ISDA0012) 03540000 DC AL4(ISDA0014) 03541000 DC AL4(ISDA0015) 03542000 ERRINPUT DC AL4(ISDA0031) 03543000 DC AL4(ISDA0032) 03544000 DC AL4(ISDA0033) 03545000 DC AL4(ISDA0034) 03546000 DC AL4(ISDA0035) 03547000 DC AL4(ISDA0036) 03548000 ERRSEVER DC AL4(ISDA0041) 03549000 DC AL4(ISDA0043) 03550000 DC AL4(ISDA0042) 03551000 DC AL4(ISDA0045) 03552000 DC AL4(ISDA0044) 03553000 DC AL4(ISDA0046) 03554000 DC AL4(ISDA0047) 03555000 DC AL4(ISDA0048) 03556000 DC AL4(ISDA0049) 03557000 DC AL4(ISDA0045) 03558000 PATCH DC 50X'00' 03559000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 03560000 @01 EQU 01 03561000 @02 EQU 02 03562000 @03 EQU 03 03563000 @04 EQU 04 03564000 @05 EQU 05 03565000 @06 EQU 06 03566000 @07 EQU 07 03567000 @08 EQU 08 03568000 @09 EQU 09 03569000 @10 EQU 10 03570000 @11 EQU 11 03571000 @12 EQU 12 03572000 @13 EQU 13 03573000 @14 EQU 14 03574000 @15 EQU 15 03575000 K EQU @07 03576000 J EQU @04 03577000 I EQU @05 03578000 TEMPPTR EQU @04 03579000 MRPTTPTR EQU @04 03580000 SDAWKPTR EQU @03 03581000 PARMSAVE EQU @04 03582000 LPARMPTR EQU @06 03583000 CVTPTR EQU @02 03584000 R0 EQU @00 03585000 R1 EQU @01 03586000 R15 EQU @15 03587000 ISDACVT EQU 0 03588000 CVTPTRS0 EQU ISDACVT 03589000 DATAPTR EQU CVTPTRS0 03590000 SDATAPTR EQU CVTPTRS0+4 03591000 PARMPTR EQU CVTPTRS0+8 03592000 SDA00PTR EQU CVTPTRS0+12 03593000 PARM0PTR EQU CVTPTRS0+16 03594000 DCS00PTR EQU CVTPTRS0+40 03595000 PAD00PTR EQU CVTPTRS0+44 03596000 SUM00PTR EQU CVTPTRS0+48 03597000 DHE00PTR EQU CVTPTRS0+52 03598000 FSC00PTR EQU CVTPTRS0+56 03599000 EQC00PTR EQU CVTPTRS0+60 03600000 DCK00PTR EQU CVTPTRS0+64 03601000 CSB00PTR EQU CVTPTRS0+68 03602000 DAT00PTR EQU CVTPTRS0+72 03603000 DRC00PTR EQU CVTPTRS0+76 03604000 APR00PTR EQU CVTPTRS0+80 03605000 CNFG0PTR EQU CVTPTRS0+88 03606000 GEN00PTR EQU CVTPTRS0+92 03607000 WORKCALL EQU CVTPTRS0+96 03608000 GET0CALL EQU ISDACVT+100 03609000 SPNOLEN EQU GET0CALL 03610000 HEXPCALL EQU ISDACVT+108 03611000 DUMPADDR EQU HEXPCALL 03612000 DUMPLEN EQU HEXPCALL+4 03613000 DUMPIDNO EQU HEXPCALL+8 03614000 PRT0CALL EQU ISDACVT+120 03615000 OUTLINE EQU PRT0CALL 03616000 ANSI EQU OUTLINE 03617000 LINE EQU OUTLINE+1 03618000 SDARPTID EQU PRT0CALL+133 03619000 SDADATD EQU ISDACVT+256 03620000 PRTDATD EQU ISDACVT+416 03621000 ISDAPRMS EQU 0 03622000 CINPUT EQU ISDAPRMS 03623000 CLOGIN EQU CINPUT 03624000 CHISTIN EQU CINPUT+1 03625000 CSTART EQU ISDAPRMS+2 03626000 CEND EQU ISDAPRMS+6 03627000 CTYPE EQU ISDAPRMS+11 03628000 CFSCONLY EQU ISDAPRMS+13 03629000 CSSIDF EQU ISDAPRMS+17 03630000 CSERIAL EQU ISDAPRMS+21 03631000 CREPORTS EQU ISDAPRMS+33 03632000 CDCS EQU CREPORTS 03633000 CPAD EQU CREPORTS+1 03634000 CSUM EQU CREPORTS+2 03635000 CDHEDHU EQU CREPORTS+3 03636000 CFSC EQU CREPORTS+4 03637000 CEQC EQU CREPORTS+5 03638000 CDCKTLX EQU CREPORTS+6 03639000 CCSBCSF EQU CREPORTS+7 03640000 CDAT EQU CREPORTS+8 03641000 CDRC EQU CREPORTS+9 03642000 CAPRSUU EQU CREPORTS+10 03643000 CPERIOD EQU ISDAPRMS+45 03644000 CDETAIL EQU ISDAPRMS+46 03645000 CGEN EQU ISDAPRMS+47 03646000 CTRACE EQU ISDAPRMS+48 03647000 ISDAGHDR EQU 0 03648000 GET0SPLN EQU ISDAGHDR+8 03649000 OBRMDR EQU 0 03650000 SCW EQU OBRMDR 03651000 SLENGTH EQU SCW 03652000 CLASRC EQU OBRMDR+4 03653000 SWITCHES EQU OBRMDR+6 03654000 SWITCH0 EQU SWITCHES 03655000 SWITCH1 EQU SWITCHES+1 03656000 SWITCH2 EQU SWITCHES+2 03657000 DATETIME EQU OBRMDR+12 03658000 DATE EQU DATETIME 03659000 DAY EQU DATE+2 03660000 TIME EQU DATETIME+4 03661000 CPUSERID EQU OBRMDR+21 03662000 DEVDEP1 EQU OBRMDR+28 03663000 JOBID EQU DEVDEP1 03664000 DEVTYPE1 EQU JOBID 03665000 MDRCUA EQU DEVTYPE1 03666000 CUA2 EQU JOBID+5 03667000 SDRINF EQU DEVDEP1+8 03668000 DEVDEPC EQU SDRINF+16 03669000 SECUA EQU SDRINF+17 03670000 DEVTYPE2 EQU SDRINF+20 03671000 SDRCNT2 EQU SDRINF+24 03672000 PCUA EQU SDRINF+25 03673000 SENSCNT EQU SDRINF+30 03674000 DEVDEP2 EQU SDRINF+32 03675000 DEVTYPE EQU 0 03676000 OPTFLAGS EQU DEVTYPE+1 03677000 CLASTYPE EQU DEVTYPE+2 03678000 ISDAMSCS EQU 0 03679000 STATUS EQU ISDAMSCS 03680000 SUBSYSID EQU ISDAMSCS+1 03681000 SSIDFLAG EQU SUBSYSID 03682000 SSID EQU SUBSYSID 03683000 SSIDDEVT EQU SSID+1 03684000 FORMATNO EQU ISDAMSCS+3 03685000 SUBSENSE EQU ISDAMSCS+4 03686000 DASDFMTN EQU SUBSENSE+3 03687000 SUBFMTMG EQU SUBSENSE+7 03688000 RUADASD EQU SUBSENSE+20 03689000 R1PARMS EQU 0 03690000 R1PARML EQU R1PARMS 03691000 R1PARMC EQU R1PARMS+2 03692000 VSR1PTR EQU 0 03693000 SDAWORK EQU 0 03694000 SDAWORK1 EQU SDAWORK 03695000 INFLAGS EQU SDAWORK1 03696000 IRECTYPE EQU INFLAGS 03697000 INSOURCE EQU INFLAGS+1 03698000 INDEVTYP EQU INFLAGS+2 03699000 SDAFLAG0 EQU INFLAGS+3 03700000 DLENGTH EQU SDAWORK1+4 03701000 INRECCUA EQU SDAWORK1+6 03702000 CUABYTE1 EQU INRECCUA+1 03703000 NINREC EQU SDAWORK1+8 03704000 NOUTREC EQU SDAWORK1+12 03705000 DEVPTR EQU SDAWORK1+16 03706000 NTEMPREC EQU SDAWORK1+20 03707000 NINRECT EQU SDAWORK1+24 03708000 WORKPTR EQU SDAWORK1+28 03709000 GET0PTR EQU SDAWORK1+32 03710000 LOGPTR EQU SDAWORK1+36 03711000 SENSEPTR EQU SDAWORK1+40 03712000 SUBFMSCK EQU SDAWORK1+44 03713000 SUBFCHK EQU SUBFMSCK 03714000 MSGCDCHK EQU SUBFMSCK+2 03715000 XXX2ADDR EQU SDAWORK1+48 03716000 TODAYDAT EQU SDAWORK1+52 03717000 RETCODE EQU SDAWORK1+56 03718000 RETCODER EQU SDAWORK1+58 03719000 RETCODIN EQU SDAWORK1+60 03720000 RETCODFG EQU SDAWORK1+62 03721000 CLENGTH EQU SDAWORK1+64 03722000 RET8CNT EQU SDAWORK1+66 03723000 RETDCNT EQU SDAWORK1+68 03724000 PGMFLAGS EQU SDAWORK+70 03725000 SUMFLAGS EQU PGMFLAGS 03726000 PADFLAGS EQU PGMFLAGS+2 03727000 DHEFLAGS EQU PGMFLAGS+4 03728000 FSCFLAGS EQU PGMFLAGS+6 03729000 EQCFLAGS EQU PGMFLAGS+8 03730000 DCKFLAGS EQU PGMFLAGS+10 03731000 CSBFLAGS EQU PGMFLAGS+12 03732000 DATFLAGS EQU PGMFLAGS+14 03733000 DRCFLAGS EQU PGMFLAGS+16 03734000 DCSFLAGS EQU PGMFLAGS+18 03735000 GENFLAGS EQU PGMFLAGS+20 03736000 APRFLAGS EQU PGMFLAGS+22 03737000 TEMP28 EQU SDAWORK+96 03738000 TEMP8 EQU TEMP28 03739000 TEMP7 EQU TEMP8 03740000 TEMP4 EQU TEMP7 03741000 TEMP3 EQU TEMP4 03742000 TEMP2 EQU TEMP3 03743000 TEMP1 EQU TEMP2 03744000 SDAWORK2 EQU SDAWORK+124 03745000 LOWDATE EQU SDAWORK2 03746000 LOWDAY EQU LOWDATE+2 03747000 HIGHDATE EQU SDAWORK2+4 03748000 HIGHDAY EQU HIGHDATE+2 03749000 ALOWDATE EQU SDAWORK2+8 03750000 ALOWDAY EQU ALOWDATE+2 03751000 AHIGHDAT EQU SDAWORK2+12 03752000 AHIGHDAY EQU AHIGHDAT+2 03753000 DDNAMEIN EQU SDAWORK2+16 03754000 XXIDSAVE EQU SDAWORK2+24 03755000 USEFLAG EQU SDAWORK2+27 03756000 SUBFSAVE EQU SDAWORK2+28 03757000 FMTCHK EQU SDAWORK2+29 03758000 MRPTTAB EQU 0 03759000 XXX0ADDR EQU MRPTTAB 03760000 XXX1ADDR EQU MRPTTAB+4 03761000 XXXPADDR EQU MRPTTAB+8 03762000 XXXWORKP EQU MRPTTAB+12 03763000 XXXFLAGP EQU MRPTTAB+16 03764000 XXXINCHK EQU MRPTTAB+20 03765000 XXXFMT EQU XXXINCHK 03766000 XXXID EQU XXXINCHK+1 03767000 XXXR2FLG EQU MRPTTAB+24 03768000 XXXID2 EQU XXXR2FLG 03769000 XXXNUMB EQU XXXR2FLG+3 03770000 XXXSUBFG EQU MRPTTAB+28 03771000 CXXX EQU 0 03772000 XXX00PTR EQU 0 03773000 XXXFLAGS EQU 0 03774000 ISDAXXX0 EQU 0 03775000 ISDAXXX1 EQU 0 03776000 ISDAXXX2 EQU 0 03777000 ISDA00X1 EQU 0 03778000 ISDA00X2 EQU 0 03779000 ISDA00X3 EQU 0 03780000 TEMP68 EQU TEMP8+5 03781000 TEMP78 EQU TEMP8+6 03782000 VTITLE EQU LINE+25 03783000 MTITLE EQU LINE+57 03784000 RTITLE EQU LINE+119 03785000 MTITLE0 EQU LINE+47 03786000 HDRSDAY EQU LINE+67 03787000 HDRSYEAR EQU LINE+71 03788000 HDREDAY EQU LINE+77 03789000 HDREYEAR EQU LINE+81 03790000 RCODE02 EQU LINE+21 03791000 MSG02ID EQU LINE+29 03792000 RCMSG03 EQU LINE 03793000 FCMSG03 EQU LINE+15 03794000 LDMSG03 EQU LINE+29 03795000 LYMSG03 EQU LINE+34 03796000 HDMSG03 EQU LINE+39 03797000 HYMSG03 EQU LINE+44 03798000 RCODE04 EQU LINE+21 03799000 MSG04ID EQU LINE+35 03800000 MSG04ID0 EQU LINE+38 03801000 MSG05LOC EQU LINE+40 03802000 TRECM05 EQU LINE+39 03803000 TPRECM05 EQU LINE+59 03804000 MSG06ID EQU LINE+33 03805000 ERRORMSG EQU LINE+34 03806000 ERRMSGID EQU LINE+64 03807000 MSGX2ID EQU LINE+10 03808000 MSG63NUM EQU LINE+7 03809000 MSG63ID EQU LINE+12 03810000 MSG65ID EQU LINE+33 03811000 MSG70ID1 EQU LINE+27 03812000 MSG70ID2 EQU LINE+36 03813000 MSG70ID3 EQU LINE+48 03814000 AGO .@UNREFD START UNREFERENCED COMPONENTS 03815000 XXXMSGCD EQU XXXSUBFG+2 03816000 XXXSUBF EQU XXXSUBFG 03817000 AHIGHYER EQU AHIGHDAT 03818000 ALOWYEAR EQU ALOWDATE 03819000 HIGHYEAR EQU HIGHDATE 03820000 LOWYEAR EQU LOWDATE 03821000 PWRFLAGS EQU PGMFLAGS+24 03822000 CUABYTE0 EQU INRECCUA 03823000 SANOMSCD EQU SUBSENSE+27 03824000 RCYLMSCD EQU SUBSENSE+25 03825000 RUAMSCD EQU SUBSENSE+24 03826000 MSCFSC EQU SUBSENSE+22 03827000 @NM00008 EQU SUBSENSE+21 03828000 DASDFSC EQU SUBSENSE+18 03829000 @NM00007 EQU SUBSENSE+8 03830000 MSGCODEN EQU SUBFMTMG 03831000 SUBFMTNO EQU SUBFMTMG 03832000 SALOWAD2 EQU SUBSENSE+6 03833000 SARETRY EQU SUBSENSE+5 03834000 @NM00006 EQU SUBSENSE+4 03835000 SALOWADD EQU SUBSENSE+2 03836000 SUBSTAT5 EQU SUBSENSE+1 03837000 SUBSTAT4 EQU SUBSENSE 03838000 SSIDLIBN EQU SSID+1 03839000 SSIDTYPE EQU SSID 03840000 UNITTYPE EQU CLASTYPE+1 03841000 DEVCLASS EQU CLASTYPE 03842000 IOFLAGS EQU DEVTYPE 03843000 IORETRY EQU SDRINF+28 03844000 CSW EQU SDRINF+8 03845000 FAILCCW EQU SDRINF 03846000 @NM00005 EQU JOBID+4 03847000 SDRCNT1 EQU OBRMDR+26 03848000 CPUID EQU CPUSERID+3 03849000 CPUSER EQU CPUSERID 03850000 VERNO EQU OBRMDR+20 03851000 TENSHUND EQU TIME+3 03852000 SECOND EQU TIME+2 03853000 MINUTE EQU TIME+1 03854000 HOUR EQU TIME 03855000 YEAR EQU DATE 03856000 RECENTRY EQU OBRMDR+11 03857000 RCDCNT EQU OBRMDR+10 03858000 SWITCH3 EQU SWITCHES+3 03859000 SYSREL EQU OBRMDR+5 03860000 @NM00004 EQU SCW+3 03861000 SCODE EQU SCW+2 03862000 @NM00003 EQU ISDAGHDR+26 03863000 BLOCKCNT EQU ISDAGHDR+24 03864000 BLOCKID EQU ISDAGHDR+20 03865000 LASTPTR EQU ISDAGHDR+16 03866000 NEXTPTR EQU ISDAGHDR+12 03867000 GET0LEN EQU GET0SPLN+1 03868000 GET0SPNO EQU GET0SPLN 03869000 ENDPTR EQU ISDAGHDR+4 03870000 STARTPTR EQU ISDAGHDR 03871000 CPWR EQU CREPORTS+11 03872000 CSERNO EQU CSERIAL+4 03873000 @NM00002 EQU CSERIAL+3 03874000 CIBM EQU CSERIAL 03875000 CRATIO EQU ISDAPRMS+19 03876000 CSSID EQU CSSIDF 03877000 @NM00001 EQU CSSIDF 03878000 CFSC34 EQU CFSCONLY+2 03879000 CFSC12 EQU CFSCONLY 03880000 CSUMMARY EQU ISDAPRMS+10 03881000 CENDDAY EQU CEND+2 03882000 CENDYEAR EQU CEND 03883000 CSTDAY EQU CSTART+2 03884000 CSTYEAR EQU CSTART 03885000 PRTSA001 EQU PRTDATD 03886000 SDATEMPS EQU SDADATD+136 03887000 SDASA002 EQU SDADATD+76 03888000 SDAPC001 EQU SDADATD+72 03889000 SDASA001 EQU SDADATD 03890000 COREADDR EQU GET0CALL+4 03891000 CORELEN EQU SPNOLEN+1 03892000 SPNO EQU SPNOLEN 03893000 PWR00PTR EQU CVTPTRS0+84 03894000 LOG00PTR EQU CVTPTRS0+36 03895000 HIST0PTR EQU CVTPTRS0+32 03896000 PRT00PTR EQU CVTPTRS0+28 03897000 GET00PTR EQU CVTPTRS0+24 03898000 TYPE0PTR EQU CVTPTRS0+20 03899000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 03900000 @RC00174 EQU @RC00173 03901000 @RC00262 EQU @RC00240 03902000 @RC00257 EQU @RC00240 03903000 @RC00290 EQU @RC00279 03904000 @RC00285 EQU @RC00279 03905000 @RC00344 EQU @RC00331 03906000 @RC00585 EQU @RC00576 03907000 @RC00581 EQU @RC00576 03908000 @RC00577 EQU @RC00576 03909000 @RC00593 EQU @RC00592 03910000 @RC00604 EQU @RC00555 03911000 @RC00602 EQU @RC00555 03912000 @RC00552 EQU @RC00551 03913000 @RC00646 EQU @RC00645 03914000 @RC00761 EQU @RC00760 03915000 @RC00814 EQU @RC00782 03916000 @PB00006 EQU @EL00005 03917000 @RC00265 EQU @RC00262 03918000 @RC00295 EQU @RC00290 03919000 @RC00293 EQU @RC00290 03920000 @RC00662 EQU @RC00646 03921000 @RC00664 EQU @RC00662 03922000 @RC00700 EQU @RC00662 03923000 @ENDDATA EQU * 03924000 END ISDASDA0,(C'PLS1755',0701,78044) 03925000