SUM TITLE 'DMMSUM (IPCS) VM/370 - RELEASE 6' 00001000 * 00002000 * MODULE NAME: DMMSUM 00003000 * 00004000 * 00005000 * FUNCTION: UPDATES THE SYMPTOM SUMMARY CTL RECORD FOR A GIVEN 00006000 * PROBLEM OR FINDS A GIVEN PROBLEM'S CONTROL RECORD AND 00007000 * PASSES IT TO THE CALLER. IF AN UPDATE FUNCTION THE 00008000 * ACTIVITY IS POSTED TO THE PROBLEM REPORT ALSO. 00009000 * 00010000 * 00011000 * ATTRIBUTES: NON-REENTRANT 00012000 * NON-REUSABLE 00013000 * 00014000 * 00015000 * ENTRY POINTS: SUMMARY 00016000 * 00017000 * 00018000 * ENTRY CONDITIONS: 00019000 * PARM POINTER PASSED IN R1 IS AS FOLLOWS: 00020000 * 8CHAR NOT USED 00021000 * 8CHAR PRBXXXXX WHERE XXXXX IS THE PROB NUMBER 00022000 * 8CHAR FUNCTION TO BE PERFORMED UPCCCCCC OR FI 00023000 * WHERE CCCCCC IS EG STAT, PTF, OR FUNCT 00024000 * AND UP AND FI STAND FOR UPDATE OR FIND. 00025000 * NCHAR NEW DATA TO BE PUT IN APPROPRIATE FIELD 00026000 * 00027000 * 00028000 * EXIT CONDITIONS: RETURN CODE IN R15 00029000 * 0 NORMAL SUCCESSFUL COMPLETION 00030000 * 4 REQUESTED PROBLEM NOT FOUND 00031000 * 8 UNRECOVERABLE ERROR OCCURRED 00032000 * IF A FIND REQUEST R1 PTR TO PROB CTL RCD 00033000 * 00034000 * 00035000 * CALLS TO OTHER ROUTINES: NONE 00036000 * 00037000 * 00038000 * EXTERNAL REFERENCES: NONE 00039000 * 00040000 * 00041000 * TABLES/WORKAREAS: NUCON (CMS LOW CORE) 00042000 * 00043000 * 00044000 * REGISTER USAGE: R13 SAVEAREA POINTER 00045000 * R12 BASE REGISTER 00046000 * R11 NOT USED 00047000 * R10 NOT USED 00048000 * R9 CURRENT RECORD NUMBER IN SYMPTOM SUMMARY FILE 00049000 * R8 INTERNAL LINK REGISTER 00050000 * R7 SYMPTOM SUMMARY CONTROL RECORD DSECT 00051000 * R6 PASSED PARMS DSECT 00052000 * R5 NOT USED 00053000 * R4 NOT USED 00054000 * R3 WORK 00055000 * R2 WORK 00056000 * 00057000 * 00058000 * NOTES: 00059000 * 00060000 * IN THE DISCUSSION IN 'OPERATION' THE FIELDS 'PTF', 'APAR', 00061000 * 'DUP', AND 'CLOSE REASON' ARE PHYSICALLY THE SAME (AS 00062000 * DESCRIBED BY THE SYMSECT DSECT). 00063000 * 00064000 * 00065000 * OPERATION: 00066000 * 00067000 * I. FI (FIND) REQUEST 00068000 * II. UP (UPDATE) REQUEST 00069000 * 00070000 * THE SECOND PARM PASSED IS CHECKED FOR 'FI' OR 'UP'. 00071000 * 00072000 * I. FI (FIND) REQUEST 00073000 * A. THE FIRST PARM PASSED IS CHECKED FOR A GOOD PROBLEM 00074000 * NUMBER OF THE FORM 'PRBNNNNN'. IF THE PROBLEM NUMBER 00075000 * IS NOT GOOD AN ERROR MESSAGE IS ISSUED AND RETURN CODE 8 00076000 * EXIT IS TAKEN. 00077000 * 00078000 * B. IF THE PROBLEM NUMBER WAS OF THE VALID FORM THE SYMPTOM 00079000 * SUMMARY FILE IS SEARCHED FOR A MATCHING PROBLEM NUMBER. 00080000 * 1. IF THE PROB IS FND IN THE SYMPTOM SUMMARY FILE R1 00081000 * IS LOADED WITH THE ADDRESS OF THE PROBLEM CONTROL RECORD 00082000 * AND THE RETURN CODE 0 EXIT IS TAKEN. 00083000 * 2. IF THE PROB IS NOT FND THE RET CODE 4 EXIT IS TAKEN. 00084000 * 00085000 * II. UP (UPDATE) REQUEST 00086000 * 00087000 * THE LAST 6 BYTES OF THE SECOND PARM PASSED IS CHECKED TO 00088000 * DETERMINE WHAT KIND OF UPDATE FUNCTION IS TO BE PERFORMED. 00089000 * 00090000 * A. STAT (STATUS FIELD UPDATE) 00091000 * B. FUNCT (LAST FUNCTION FIELD UPDATE) 00092000 * C. SEV (SEVERITY FIELD IS TO BE UPDATED) 00093000 * D. PTF (PTF FIELD IS TO BE UPDATED) 00094000 * E. DUP (PROBLEM IS TO BE POSTED AS A DUPLICATE OF ANOTHER) 00095000 * F. APAR (APAR ASSOCIATED WITH PROBLEM IS TO BE POSTED) 00096000 * 00097000 * A. STATUS FIELD UPDATE 00098000 * 1. THE THIRD PARM PASSED IS MOVED INTO THE STATUS FIELD. 00099000 * 2. THE CONTROL RECORD 'LAST' FIELD IS DATE STAMPED. 00100000 * 3. THE STATUS FIELD IS CHECKED FOR 'CLOSED ' 00101000 * A. IF 'CLOSED' IS THE NEW STATUS THE FOURTH PASSED PARM IS 00102000 * CHECKED FOR '1', '2', '3', OR '4'. 00103000 * '1' CLOSE REASON FIELD IS POSTED WITH 'USER' 00104000 * '2' CLOSE REASON FIELD IS POSTED WITH 'UNREPRODUCABLE' 00105000 * '3' CLOSE REASON FIELD IS POSTED WITH 'HARDWARE' 00106000 * '4' CLOSE REASON FIELD IS POSTED WITH 'DOCUMENTATION' 00107000 * B. IF 'OPENIBM ' IS THE NEW STATUS THE LAST FUNCTION FIELD 00108000 * IS POSTED WITH 'REPORTED'. 00109000 * 00110000 * B. LAST FUNCTION FIELD UPDATE. 00111000 * 1. THE 'LAST' FIELD IS DATE STAMPED. 00112000 * 2. THE 3RD PARM IS MOVED INTO THE LAST FUNCTION FIELD. 00113000 * 00114000 * C. SEVERITY FIELD UPDATE. 00115000 * 1. THE 'LAST' FIELD IS DATE STAMPED. 00116000 * 2. THE THIRD PASSED PARM IS MOVED INTO THE SEVERITY FIELD. 00117000 * 00118000 * D. PTF FIELD UPDATE. 00119000 * 1. THE THIRD AND FOURTH PARMS PASSED ARE MOVED INTO THE 00120000 * PTF FIELD (FILENAME FILETYPE). 00121000 * 2. THE 'LAST' FIELD IS DATE STAMPED. 00122000 * 3. THE LAST FUNCTION FIELD IS POSTED WITH 'PTFRCVD' 00123000 * 00124000 * E. DUPLICATE FIELD UPDATE 00125000 * 1. 'DUP OF' IS MOVED TO THE DUPLICATE FIELD. 00126000 * 2. THE THIRD PARM PASSED IS MOVED AFTER 'DUP OF' 00127000 * 00128000 * F. APAR FIELD UPDATE. 00129000 * 1. 'APAR' IS MOVED TO THE APAR FIELD. 00130000 * 2. THE THIRD PARM PASSED IS MOVED AFTER 'APAR' 00131000 * 3. THE 'LAST' FIELD IS DATE STAMPED. 00132000 * 00133000 * AFTER THE UPDATING OF THE CONTROL RCD HAS BEEN DONE THE RCD 00134000 * IS REWRITTEN TO THE SYMPTOM SUMMARY FILE. 00135000 * 00136000 * THE CURRENT STATUS INFO IS NOW APPENDED TO THE PROBLEM REPORT 00137000 * IN THE FORM OF AN 80 BYTE RECORD WITH AN INDICATOR OF: 00138000 * '*** STATUS UPDATED HH:MM:SS MM/DD' 00139000 * 00140000 * ERROR MESSAGES: 00141000 * 00142000 * DMMSUM100S ERROR 'NNN' READING FILE 'SYMPTOM SUMMARY A1' 00143000 * DMMSUM200S ERROR 'NNN' WRITING FILE 'FILENAME FILETYPE FM' 00144000 * DMMSUM501S INVALID PARM 'AAAA' PASSED TO SUMMARY UPDATE PROG 00145000 * DMMSUM502S PROBLEM 'PRBNNNNN' NOT FOUND IN SYMPTOM SUMMARY 00146000 * 00147000 *************************************************************** 00148000 EJECT 00149000 DMMSUM CSECT @VA04250 00150000 USING DMMSUM,R15 TEMPORARY ADDRESSABILITY @VA04250 00151000 B START BRANCH AROUND EYECATCHER @VA04250 00152000 DS 0D @VA04250 00153000 MODNAME DC C'DMMSUM ' MODULE NAME @VA04250 00154000 RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00155000 START STM R14,R12,12(R13) SAVE CALLER'S REGISTERS @VA04250 00156000 LR R12,R15 ESTABLISH OUR BASE REGISTER @VA04250 00157000 DROP R15 @VA04250 00158000 USING DMMSUM,R12 OUR BASE REGISTER @VA04250 00159000 ST R13,SAVEAREA+8 SAVE CALLER'S SAVEAREA POINTER @VA04250 00160000 LA R13,SAVEAREA POINT TO OUT OWN SAVEAREA @VA04250 00161000 LR R6,R1 SAVE PARM POINTER @VA04250 00162000 LA R7,INPUT SYMPTOM SUMMARY CONTROL RCD INPUT@VA04250 00163000 USING NUCON,R0 CMS LOW CORE ADDRESSABILITY @VA04250 00164000 USING SYMSECT,R7 PROBLEM CONTROL RECORD DSECT @VA04250 00165000 USING SUMMPARM,R6 PARAMETER LIST DSECT @VA04250 00166000 CLC PRB,=C'PRB' VALID CALLER? @VA04250 00167000 BE SUMCONT YES DON'T MESS AROUND @VA04250 00168000 MVC MSGPARM1,PROBNUM MOVE BAD PARM TO ERROR MSG @VA04250 00169000 B PARMERR BAD PARAMETER PASSED @VA04250 00170000 *************************************************************** 00171000 * READ THE SYMPTOM SUMMARY FILE AND FIND THE PROBLEM REQUESTED 00172000 *************************************************************** 00173000 SUMCONT LA R2,L'NNNNN CHECK 5 DIGITS FOR NUMERICS @VA04250 00174000 LA R3,NNNNN POINT TO PROBLEM NUMBER @VA04250 00175000 SUMCK1 TM 0(R3),NUMERIC IS THIS BYTE NUMERIC? @VA04250 00176000 BNO SUMERR NO, ERROR @VA04250 00177000 LA R3,ONE(R3) LOOK AT NEXT BYTE @VA04250 00178000 BCT R2,SUMCK1 CONTINUE CHECKING @VA04250 00179000 LA R9,ONE RECORD NUMBER TO BE READ @VA04250 00180000 RDHDR FSREAD 'SYMPTOM SUMMARY A1',BUFFER=(R7),RECNO=(R9),BSIZE=80 00181000 LTR R15,R15 CHECK RETURN CODE @VA04250 00182000 BNZ RDERR NOT ZERO @VA04250 00183000 CLC SYMPNUM,NNNNN FOUND THE PROBLEM NUMBER? @VA04250 00184000 BE UFOUND YES @VA04250 00185000 SR R2,R2 PREPARE FOR IC INSTRUCTION @VA04250 00186000 IC R2,SYMCCNT GET NO. OF RCDS IN SYMPTOM ENTRY @VA04250 00187000 LA R9,ONE(R2,R9) POINT TO NEXT CONTROL RECORD @VA04250 00188000 B RDHDR LOOK THROUGH FILE @VA04250 00189000 SUMERR MVC MSGPARM1,PROBNUM MOVE INVALID PARM TO MESSAGE @VA04250 00190000 B PARMERR GO PUT OUT ERROR MESSAGE @VA04250 00191000 *************************************************************** 00192000 * WE NOW HAVE THE REQUESTED PROBLEM CONTROL RECORD 00193000 *************************************************************** 00194000 UFOUND CLC REQTYPE,=C'UP' UPDATE REQUEST? @VA04250 00195000 BE UUPDT YES @VA04250 00196000 CLC REQTYPE,=C'FI' FIND REQUEST? @VA04250 00197000 BE UGET YES @VA04250 00198000 MVC MSGPARM1,UPFI MOVE INVALID PARM TO ERROR MSG @VA04250 00199000 B PARMERR INVALID REQUEST @VA04250 00200000 *************************************************************** 00201000 * THE REQUEST HAS BEEN FOUND TO BE AN UPDATE OF THE CTL RCD 00202000 *************************************************************** 00203000 UUPDT CLC REQDATA,=C'STAT ' UPDATE STATUS? @VA04250 00204000 BE UUPSTAT YES @VA04250 00205000 CLC REQDATA,=C'FUNCT ' UPDATE LAST FUNCTION? @VA04250 00206000 BE UUFCT YES @VA04250 00207000 CLC REQDATA,=C'SEV ' UPDATE SEVERITY? @VA04250 00208000 BE UUSEV YES @VA04250 00209000 CLC REQDATA,=C'PTF ' UPDATE PTF FIELD? @VA04250 00210000 BE UUPTF YES @VA04250 00211000 CLC REQDATA,=C'DUP ' INDICATE DUPLICATE STATUS? @VA04250 00212000 BE UUDUP YES @VA04250 00213000 CLC REQDATA,=C'APAR ' UPDATE PTF FLD W/APAR NUM? @VA04250 00214000 BE UUAPAR YES @VA04250 00215000 MVC MSGPARM1,UPFI MOVE INVALID PARM TO ERROR MSG @VA04250 00216000 B PARMERR INVALID PARAMETER @VA04250 00217000 *************************************************************** 00218000 * UPDATE THE STATUS FIELD 00219000 *************************************************************** 00220000 UUPSTAT MVC SYMLACT,CURRDATE INDICAT LAST ACTIVITY DATE @VA04250 00221000 MVC SYMSTAT,DATA01 MOVE IN NEW STATUS @VA04250 00222000 CLC SYMSTAT,=C'CLOSED ' PROBLEM BEING CLOSED? @VA04250 00223000 BE UUCLOSE YES @VA04250 00224000 CLC SYMSTAT,=C'OPENIBM ' REPORTING PROBLEM TO IBM? @VA04250 00225000 BNE UUUSER NO @VA04250 00226000 MVC SYMLFCT,=C'REPORTED' INDICATE PROBLEM REPORTED @VA04250 00227000 B UREWRT GO REWRITE CONTROL RECORD @VA04250 00228000 UUUSER CLC SYMSTAT,=C'OPENUSER' PROB BEING POSTED AS USER @VA04250 00229000 BNE UREWRT NO @VA04250 00230000 MVC SYMLFCT,=C'USER ' SET LAST FUNCTION TO USER @VA04250 00231000 B UREWRT GO REWRITE CONTROL RECORD @VA04250 00232000 UUCLOSE MVC SYMLFCT,=C'CLOSE ' LAST FUNCTION OF CLOSE @VA04250 00233000 CLI DATA02,FENCE ANY MORE PARMS PASSED? @VA04250 00234000 BE UREWRT NO @VA04250 00235000 CLI DATA02,USER USER PROBLEM? @VA04250 00236000 BNE UUCLOS2 NO @VA04250 00237000 MVC SYMCLOSE,BLANKS CLEAR CLOSE REASON FIELD @VA04250 00238000 MVC SYMCLOSE(L'CUSER),CUSER INDICATE CLOSE CAUSE @VA04250 00239000 B UREWRT GO REWRITE RECORD @VA04250 00240000 UUCLOS2 CLI DATA02,UNREP UNREPRODUCABLE? @VA04250 00241000 BNE UUCLOS3 NO @VA04250 00242000 MVC SYMCLOSE,BLANKS CLEAR CLOSE REASON FIELD @VA04250 00243000 MVC SYMCLOSE(L'CUNREP),CUNREP POST PROB AS UNREPRO @VA04250 00244000 B UREWRT GO REWRITE RECORD @VA04250 00245000 UUCLOS3 CLI DATA02,HARDWR HARDWARE? @VA04250 00246000 BNE UUCLOS4 NO @VA04250 00247000 MVC SYMCLOSE,BLANKS CLEAR CLOSE REASON FIELD @VA04250 00248000 MVC SYMCLOSE(L'CHARDWR),CHARDWR POST PROB AS HARDWR @VA04250 00249000 B UREWRT GO REWRITE RECORD @VA04250 00250000 UUCLOS4 CLI DATA02,DOC DOCUMENTATION? @VA04250 00251000 BNE UREWRT NO, GO REWRITE RECORD @VA04250 00252000 MVC SYMCLOSE,BLANKS CLEAR CLOSE REASON FIELD @VA04250 00253000 MVC SYMCLOSE(L'CDOC),CDOC POST RESOLUTION AS DOCUM @VA04250 00254000 B UREWRT GO REWRITE RECORD @VA04250 00255000 *************************************************************** 00256000 * UPDATE THE LAST FUNCTION FIELD 00257000 *************************************************************** 00258000 UUFCT MVC SYMLACT,CURRDATE INDICATE LAST ACTIVITY DATE @VA04250 00259000 MVC SYMLFCT,DATA01 INDICATE LAST FUNCTION @VA04250 00260000 B UREWRT GO REWRITE UPDATED RECORD @VA04250 00261000 *************************************************************** 00262000 * UPDATE THE SEVERITY FIELD 00263000 *************************************************************** 00264000 UUSEV MVC SYMLACT,CURRDATE CURRENT DATE STAMP @VA04250 00265000 MVC SYMSEV,DATA01 MOVE NEW SEVERITY TO OUTPUT RCD @VA04250 00266000 B UREWRT GO REWRITE UPDATED RECORD @VA04250 00267000 *************************************************************** 00268000 * UPDATE THE PTF FIELD 00269000 *************************************************************** 00270000 UUPTF MVC SYMPTFFN,DATA01 MOVE IN PTF FILE NAME @VA04250 00271000 MVI SYMPTFDV,BLANK CLEAR THIS BYTE OF ANY TRASH @VA04250 00272000 MVC SYMPTFFT,DATA02 MOVE IN PTF FILE TYPE @VA04250 00273000 MVC SYMLFCT,=C'PTFRCVD ' POST ACTIVITY TO OUTPUT RCD@VA04250 00274000 MVC SYMLACT,CURRDATE DATE STAMP THIS ACTIVITY @VA04250 00275000 B UREWRT GO REWRITE UPDATED OUTPUT RECORD @VA04250 00276000 *************************************************************** 00277000 * UPDATE THE DUPLICATE FIELD 00278000 *************************************************************** 00279000 UUDUP MVC SYMDUP,BLANKS CLEAR FIELD WHERE DUP WILL GO @VA04250 00280000 MVC SYMDUP1,=C'DUP OF ' DUPLICATE INDICATOR @VA04250 00281000 MVC SYMDUP2,DATA01 MOVE DUPLICATE PROBLEM NUMBER OUT@VA04250 00282000 B UREWRT GO REWRITE UPDATED OUTPUT RECORD @VA04250 00283000 *************************************************************** 00284000 * UPDATE THE APAR FIELD 00285000 *************************************************************** 00286000 UUAPAR MVC SYMPTF,BLANKS CLEAR PTF FIELD @VA04250 00287000 MVC SYMAPAR1,=C'APAR' APAR INDICATOR TO CTL RCD @VA04250 00288000 MVC SYMAPAR2,DATA01 MOVE APAR NUM TO CTL RCD @VA04250 00289000 MVC SYMLACT,CURRDATE DATE STAMP FOR THIS ACTIVITY @VA04250 00290000 MVC SYMLFCT,=C'APARED ' POST TYPE OF ACTIVITY @VA04250 00291000 B UREWRT GO REWRITE RECORD @VA04250 00292000 EJECT 00293000 *************************************************************** 00294000 * REWRITE UPDATED SYMPTOM SUMMARY CONTROL RCD FOR THIS PROBLEM 00295000 *************************************************************** 00296000 UREWRT FSCLOSE 'SYMPTOM SUMMARY A1' @VA04250 00297000 FSWRITE 'SYMPTOM SUMMARY A1',RECNO=(9),BUFFER=INPUT,BSIZE=80 00298000 LR R3,R15 SAVE RETURN CODE @VA04250 00299000 FSCLOSE 'SYMPTOM SUMMARY A1' @VA04250 00300000 LTR R3,R3 ERROR ON REWRITE? @VA04250 00301000 BNZ ERRUP YES @VA04250 00302000 *************************************************************** 00303000 * PLACE COPY OF NEW STATUS IN PROBLEM REPORT 00304000 *************************************************************** 00305000 CLC REQDATA,=C'SEV ' WAS THIS A SEVERITY UPDATE? @VA04250 00306000 BNE REPORT1 NO @VA04250 00307000 MVC SEVMSG1,SYMSEV PUT NEW SEVERITY IN OUTPUT @VA04250 00308000 MVC SYMPTF,SEVMSG PUT MESSAGE IN OUTPUT @VA04250 00309000 REPORT1 MVC PROBLEM,PROBNUM MOVE PROBLEM NUMBER TO FILENAME @VA04250 00310000 MVC SYMFAIL,BLANKS BLANK OUT FAILURE FIELD @VA04250 00311000 MVC SYMPNUM,BLANKS BLANK OUT PROBLEM NUMBER @VA04250 00312000 MVC SYMCREAT,BLANKS BLANK OUT CREATION DATE @VA04250 00313000 MVC SYMPLC,BLANKS CLEAR PLC FROM RECORD @VA04250 00314000 MVI SYMSEV,BLANK CLEAR SEVERITY @VA04250 00315000 MVC SYMCREAT(L'CURRTIME),CURRTIME TIME STAMP RCD @VA04250 00316000 LA R2,PROBLEM POINT TO PROBLEM REPORT A1 @VA04250 00317000 FSWRITE (R2),BUFFER=PREFIX,BSIZE=80,NOREC=1 @VA04250 00318000 LR R3,R15 SAVE RETURN CODE @VA04250 00319000 FSCLOSE (R2) CLOSE PROBLEM REPORT FILE @VA04250 00320000 LTR R3,R3 ERROR ON WRITE? @VA04250 00321000 BZ NORMEXIT NO TAKE NORMAL EXIT; WE ARE DONE @VA04250 00322000 B ERRWRT GO PROCESS ERROR @VA04250 00323000 *************************************************************** 00324000 * TERMINAL WRITE 00325000 *************************************************************** 00326000 WRTERM WRTERM (R2),(R3) @VA04250 00327000 BR R8 RETURN TO CALLER @VA04250 00328000 EJECT 00329000 *************************************************************** 00330000 * FIND REQUEST HANDLING 00331000 *************************************************************** 00332000 UGET LA R1,INPUT PASS RECORD BACK TO CALLER @VA04250 00333000 B NORMEXIT TAKE NORMAL EXIT @VA04250 00334000 EJECT 00335000 *************************************************************** 00336000 * ERROR AND EXIT ROUTINES 00337000 *************************************************************** 00338000 PARMERR LA R2,MSGPARM 'INVALID PARM PASSED TO SUMMARY' @VA04250 00339000 LA R3,MSGPARML LENGTH OF MESSAGE @VA04250 00340000 BAL R8,WRTERM GO TELL USER @VA04250 00341000 B RETCOD8 TAKE ERROR EXIT @VA04250 00342000 ERRWRT ST R3,WK RETURN CODE TO WORK AREA @VA04250 00343000 MVC WRFNFTFM(L'PROBLEM),PROBLEM MOVE FN TO ERROR MSG@VA04250 00344000 MVC WRFT+ONE(SEVEN),REPORT DON'T RUN FN FT TOGETHER @VA04250 00345000 MVC WRFM,FILEMODE MOVE IN FILEMODE @VA04250 00346000 B ERRWRT2 CONTINUE @VA04250 00347000 ERRUP ST R3,WK RETURN CODE TO WORK AREA @VA04250 00348000 MVC WRFNFTFM,=C'SYMPTOM SUMMARY A1' FNFTFM TO MSG @VA04250 00349000 ERRWRT2 L R3,WK GET RETURN CODE @VA04250 00350000 CVD R3,WKDWD CONVERT TO DECIMAL IN WORKAREA @VA04250 00351000 UNPK WRCODE,WKDWD+SIX(TWO) UNPACK IT TO MESSAGE @VA04250 00352000 OI WRCODE+TWO,NUMERIC MAKE IT PRINTABLE @VA04250 00353000 LA R2,MSGWRERR POINT TO MESSAGE @VA04250 00354000 LA R3,WRLNTH GET LENGTH @VA04250 00355000 BAL R8,WRTERM GO PRINT IT ON TERMINAL @VA04250 00356000 B RETCOD8 TAKE ERROR EXIT @VA04250 00357000 RDERR CVD R15,WKDWD CONVERT RETURN CODE TO DECIMAL @VA04250 00358000 UNPK RDCODE,WKDWD+SIX(TWO) UNPACK INTO ERR CD IN MSG @VA04250 00359000 OI RDCODE+TWO,NUMERIC MAKE IT PRINTABLE @VA04250 00360000 CLC RDCODE,=C'012' EOF RETURN CODE? @VA04250 00361000 BE RETCOD4 YES TAKE NOT FOUND EXIT @VA04250 00362000 LA R2,MSGRDERR POINT TO READ ERROR MESSAGE @VA04250 00363000 LA R3,RDLNTH GET LENGTH OF MESSAGE @VA04250 00364000 BAL R8,WRTERM GO TELL USER @VA04250 00365000 B RETCOD8 TAKE RETURN CODE 8 ERROR EXIT @VA04250 00366000 RETCOD4 MVC MSGPROB1,PROBNUM MOVE PROBLEM NUMBER TO MSG @VA04250 00367000 LA R2,MSGPROB 'DMMSUM502S PROBLEM 'PRBNNNNN ..'@VA04250 00368000 LA R3,MSGPROBL LENGTH OF MESSAGE @VA04250 00369000 BAL R8,WRTERM GO DISPLAY ERROR MESSAGE @VA04250 00370000 L R13,8(R13) RESTORE CALLER'S SAVEAREA POINTER@VA04250 00371000 LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS @VA04250 00372000 LA R15,4 PROBLEM NOT FOUND RETURN CODE @VA04250 00373000 BR R14 RETURN TO CALLER @VA04250 00374000 RETCOD8 L R13,8(R13) RESTORE CALLER'S SAVEAREA POINTER@VA04250 00375000 LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS @VA04250 00376000 LA R15,8 UNRECOVERABLE ERROR RETURN CODE @VA04250 00377000 BR R14 RETURN TO CALLER @VA04250 00378000 NORMEXIT L R13,8(R13) RESTORE CALLER'S SAVEAREA POINTER@VA04250 00379000 LM R14,R0,12(R13) RESTORE CALLER'S REGISTERS... @VA04250 00380000 LM R2,R12,28(R13) SAVING R1 TO PASS BACK TO CALLER @VA04250 00381000 SR R15,R15 RETURN CODE ZERO (GOOD) @VA04250 00382000 BR R14 RETURN TO CALLER @VA04250 00383000 EJECT 00384000 *************************************************************** 00385000 * SAVEAREAS, CONSTANTS AND EQUATES 00386000 *************************************************************** 00387000 SAVEAREA DS 18F OUR SAVEAREA @VA04250 00388000 SEVMSG DC C'NEW SEVERITY IS ' INDICATOR FOR REPORT UPDATE @VA04250 00389000 SEVMSG1 DC C' ' NEW SEVERITY @VA04250 00390000 PROBLEM DS CL8 PROBLEM NUMBER IN FORM 'PRBNNNNN'@VA04250 00391000 REPORT DC C'REPORT ' @VA04250 00392000 FILEMODE DC C'A1' FILE MODE OF PROBLEM REPORT @VA04250 00393000 ***************************** 00394000 * KEEP THE FOLLOWING TOGETHER 00395000 ***************************** 00396000 PREFIX DC C'*** STATUS UPDATED ' INDICATOR FOR REPT UPDT @VA04250 00397000 INPUT DS CL80 INPUT FOR SYMPTOM SUMMARY RCDS @VA04250 00398000 ***************************** 00399000 WK DS F FULL WORD OF WORK @VA04250 00400000 WKDWD DS D DOUBLE WORD WORK AREA @VA04250 00401000 BLANKS DC 20C' ' BLANKS FOR CLEARING FIELDS @VA04250 00402000 USER EQU X'F1' PROBLEM CLOSED AS USER PROBLEM @VA04250 00403000 UNREP EQU X'F2' PROBLEM CLOSED AS UNREPRODUCABLE @VA04250 00404000 HARDWR EQU X'F3' PROBLEM CLOSED AS HARDWARE @VA04250 00405000 DOC EQU X'F4' PROBLEM CLOSED AS DOCUMENTATION @VA04250 00406000 ONE EQU 1 FOR LA DISPLACEMENTS ETC. @VA04250 00407000 TWO EQU 2 SIZE OF RETURN CODE @VA04250 00408000 SIX EQU 6 WHERE RETURN CODE IS IN WORK AREA@VA04250 00409000 SEVEN EQU 7 USED TO PUT OUT MESSAGE FTYPE @VA04250 00410000 CUSER DC C'USER' CLOSED AS USER ERROR @VA04250 00411000 CUNREP DC C'UNREPRODUCABLE' CLOSED AS UNREPRODUCABLE @VA04250 00412000 CHARDWR DC C'HARDWARE' CLOSED AS HARDWARE ERROR @VA04250 00413000 CDOC DC C'DOCUMENTATION' CLOSED AS DOCUMENTATION @VA04250 00414000 *************************************************************** 00415000 * FILE READ ERROR MESSAGE 00416000 *************************************************************** 00417000 MSGRDERR DC C'DMMSUM100S ERROR ''' @VA04250 00418000 RDCODE DS CL3 RETURN CODE FROM FSREAD @VA04250 00419000 DC C''' READING FILE ''SYMPTOM SUMMARY A1''' @VA04250 00420000 RDLNTH EQU *-MSGRDERR READ ERROR MESSAGE LENGTH @VA04250 00421000 *************************************************************** 00422000 * FILE WRITE ERROR MESSAGE 00423000 *************************************************************** 00424000 MSGWRERR DC C'DMMSUM200S ERROR ''' @VA04250 00425000 WRCODE DS CL3 RETURN CODE FROM FSWRITE @VA04250 00426000 DC C''' WRITING FILE ''' @VA04250 00427000 WRFNFTFM DS 0CL18 FILNAME FILETYPE FILEMODE @VA04250 00428000 WRFN DS CL8 FILENAME @VA04250 00429000 WRFT DS CL8 FILETYPE @VA04250 00430000 WRFM DS CL2 FILEMODE @VA04250 00431000 DC C'''' @VA04250 00432000 WRLNTH EQU *-MSGWRERR LENGTH OF ERROR MESSAGE @VA04250 00433000 *************************************************************** 00434000 * INVALID PARM ERROR MESSAGE 00435000 *************************************************************** 00436000 MSGPARM DC C'DMMSUM501S INVALID PARM ''' @VA04250 00437000 MSGPARM1 DS CL8 INVALID PARM @VA04250 00438000 DC C''' PASSED TO SYMPTOM SUMMARY UPDATE PROGRAM' @VA04250 00439000 MSGPARML EQU *-MSGPARM LENGTH OF MESSAGE @VA04250 00440000 SPACE 1 00441000 MSGPROB DC C'DMMSUM502S PROBLEM ''' @VA04250 00442000 MSGPROB1 DS CL8 PROBLEM NUMBER NOT FOUND @VA04250 00443000 DC C''' NOT FOUND IN SYMPTOM SUMMARY' @VA04250 00444000 MSGPROBL EQU *-MSGPROB LENGTH OF ERROR MESSAGE @VA04250 00445000 SPACE 1 00446000 FENCE EQU X'FF' END OF PASSED PARMS INDICATOR @VA04250 00447000 BLANK EQU X'40' BLANK @VA04250 00448000 NUMERIC EQU X'F0' MASK FOR TEST FOR NUMERICS @VA04250 00449000 PATCH DC 50F'0' PATCH AREA @VA04250 00450000 *************************************************************** 00451000 * PASSED PARMS DSECT 00452000 *************************************************************** 00453000 SUMMPARM DSECT @VA04250 00454000 PROGNAME DS CL8 NAME OF EXECUTING PROGRAM @VA04250 00455000 PROBNUM DS 0CL8 PROBLEM NUMBER IN FORM 'PRBNNNNN'@VA04250 00456000 PRB DS CL3 'PRB' @VA04250 00457000 NNNNN DS CL5 'NNNNN' @VA04250 00458000 UPFI DS 0CL8 'UP' OR 'FI' PLUS DATA @VA04250 00459000 REQTYPE DS CL2 'UP' OR 'FI' @VA04250 00460000 REQDATA DS CL6 TYPE OF UPDATE TO BE MADE @VA04250 00461000 DATA01 DS CL8 FIRST UPDATE DATA PASSED @VA04250 00462000 DATA02 DS CL8 SECOND UPDATE DATA SUPPLIED @VA04250 00463000 *************************************************************** 00464000 SPACE 1 00465000 COPY SYMSECT @VA04250 00466000 NUCON @VA04250 00467000 REGEQU @VA04250 00468000 END 00469000