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