Table of Contents

DMMSUM Source

References

Source Listing

DMMSUM.ASSEMBLE.txt
  1. SUM TITLE 'DMMSUM (IPCS) VM/370 - RELEASE 6' 00001000
  2. * 00002000
  3. * MODULE NAME: DMMSUM 00003000
  4. * 00004000
  5. * 00005000
  6. * FUNCTION: UPDATES THE SYMPTOM SUMMARY CTL RECORD FOR A GIVEN 00006000
  7. * PROBLEM OR FINDS A GIVEN PROBLEM'S CONTROL RECORD AND 00007000
  8. * PASSES IT TO THE CALLER. IF AN UPDATE FUNCTION THE 00008000
  9. * ACTIVITY IS POSTED TO THE PROBLEM REPORT ALSO. 00009000
  10. * 00010000
  11. * 00011000
  12. * ATTRIBUTES: NON-REENTRANT 00012000
  13. * NON-REUSABLE 00013000
  14. * 00014000
  15. * 00015000
  16. * ENTRY POINTS: SUMMARY 00016000
  17. * 00017000
  18. * 00018000
  19. * ENTRY CONDITIONS: 00019000
  20. * PARM POINTER PASSED IN R1 IS AS FOLLOWS: 00020000
  21. * 8CHAR NOT USED 00021000
  22. * 8CHAR PRBXXXXX WHERE XXXXX IS THE PROB NUMBER 00022000
  23. * 8CHAR FUNCTION TO BE PERFORMED UPCCCCCC OR FI 00023000
  24. * WHERE CCCCCC IS EG STAT, PTF, OR FUNCT 00024000
  25. * AND UP AND FI STAND FOR UPDATE OR FIND. 00025000
  26. * NCHAR NEW DATA TO BE PUT IN APPROPRIATE FIELD 00026000
  27. * 00027000
  28. * 00028000
  29. * EXIT CONDITIONS: RETURN CODE IN R15 00029000
  30. * 0 NORMAL SUCCESSFUL COMPLETION 00030000
  31. * 4 REQUESTED PROBLEM NOT FOUND 00031000
  32. * 8 UNRECOVERABLE ERROR OCCURRED 00032000
  33. * IF A FIND REQUEST R1 PTR TO PROB CTL RCD 00033000
  34. * 00034000
  35. * 00035000
  36. * CALLS TO OTHER ROUTINES: NONE 00036000
  37. * 00037000
  38. * 00038000
  39. * EXTERNAL REFERENCES: NONE 00039000
  40. * 00040000
  41. * 00041000
  42. * TABLES/WORKAREAS: NUCON (CMS LOW CORE) 00042000
  43. * 00043000
  44. * 00044000
  45. * REGISTER USAGE: R13 SAVEAREA POINTER 00045000
  46. * R12 BASE REGISTER 00046000
  47. * R11 NOT USED 00047000
  48. * R10 NOT USED 00048000
  49. * R9 CURRENT RECORD NUMBER IN SYMPTOM SUMMARY FILE 00049000
  50. * R8 INTERNAL LINK REGISTER 00050000
  51. * R7 SYMPTOM SUMMARY CONTROL RECORD DSECT 00051000
  52. * R6 PASSED PARMS DSECT 00052000
  53. * R5 NOT USED 00053000
  54. * R4 NOT USED 00054000
  55. * R3 WORK 00055000
  56. * R2 WORK 00056000
  57. * 00057000
  58. * 00058000
  59. * NOTES: 00059000
  60. * 00060000
  61. * IN THE DISCUSSION IN 'OPERATION' THE FIELDS 'PTF', 'APAR', 00061000
  62. * 'DUP', AND 'CLOSE REASON' ARE PHYSICALLY THE SAME (AS 00062000
  63. * DESCRIBED BY THE SYMSECT DSECT). 00063000
  64. * 00064000
  65. * 00065000
  66. * OPERATION: 00066000
  67. * 00067000
  68. * I. FI (FIND) REQUEST 00068000
  69. * II. UP (UPDATE) REQUEST 00069000
  70. * 00070000
  71. * THE SECOND PARM PASSED IS CHECKED FOR 'FI' OR 'UP'. 00071000
  72. * 00072000
  73. * I. FI (FIND) REQUEST 00073000
  74. * A. THE FIRST PARM PASSED IS CHECKED FOR A GOOD PROBLEM 00074000
  75. * NUMBER OF THE FORM 'PRBNNNNN'. IF THE PROBLEM NUMBER 00075000
  76. * IS NOT GOOD AN ERROR MESSAGE IS ISSUED AND RETURN CODE 8 00076000
  77. * EXIT IS TAKEN. 00077000
  78. * 00078000
  79. * B. IF THE PROBLEM NUMBER WAS OF THE VALID FORM THE SYMPTOM 00079000
  80. * SUMMARY FILE IS SEARCHED FOR A MATCHING PROBLEM NUMBER. 00080000
  81. * 1. IF THE PROB IS FND IN THE SYMPTOM SUMMARY FILE R1 00081000
  82. * IS LOADED WITH THE ADDRESS OF THE PROBLEM CONTROL RECORD 00082000
  83. * AND THE RETURN CODE 0 EXIT IS TAKEN. 00083000
  84. * 2. IF THE PROB IS NOT FND THE RET CODE 4 EXIT IS TAKEN. 00084000
  85. * 00085000
  86. * II. UP (UPDATE) REQUEST 00086000
  87. * 00087000
  88. * THE LAST 6 BYTES OF THE SECOND PARM PASSED IS CHECKED TO 00088000
  89. * DETERMINE WHAT KIND OF UPDATE FUNCTION IS TO BE PERFORMED. 00089000
  90. * 00090000
  91. * A. STAT (STATUS FIELD UPDATE) 00091000
  92. * B. FUNCT (LAST FUNCTION FIELD UPDATE) 00092000
  93. * C. SEV (SEVERITY FIELD IS TO BE UPDATED) 00093000
  94. * D. PTF (PTF FIELD IS TO BE UPDATED) 00094000
  95. * E. DUP (PROBLEM IS TO BE POSTED AS A DUPLICATE OF ANOTHER) 00095000
  96. * F. APAR (APAR ASSOCIATED WITH PROBLEM IS TO BE POSTED) 00096000
  97. * 00097000
  98. * A. STATUS FIELD UPDATE 00098000
  99. * 1. THE THIRD PARM PASSED IS MOVED INTO THE STATUS FIELD. 00099000
  100. * 2. THE CONTROL RECORD 'LAST' FIELD IS DATE STAMPED. 00100000
  101. * 3. THE STATUS FIELD IS CHECKED FOR 'CLOSED ' 00101000
  102. * A. IF 'CLOSED' IS THE NEW STATUS THE FOURTH PASSED PARM IS 00102000
  103. * CHECKED FOR '1', '2', '3', OR '4'. 00103000
  104. * '1' CLOSE REASON FIELD IS POSTED WITH 'USER' 00104000
  105. * '2' CLOSE REASON FIELD IS POSTED WITH 'UNREPRODUCABLE' 00105000
  106. * '3' CLOSE REASON FIELD IS POSTED WITH 'HARDWARE' 00106000
  107. * '4' CLOSE REASON FIELD IS POSTED WITH 'DOCUMENTATION' 00107000
  108. * B. IF 'OPENIBM ' IS THE NEW STATUS THE LAST FUNCTION FIELD 00108000
  109. * IS POSTED WITH 'REPORTED'. 00109000
  110. * 00110000
  111. * B. LAST FUNCTION FIELD UPDATE. 00111000
  112. * 1. THE 'LAST' FIELD IS DATE STAMPED. 00112000
  113. * 2. THE 3RD PARM IS MOVED INTO THE LAST FUNCTION FIELD. 00113000
  114. * 00114000
  115. * C. SEVERITY FIELD UPDATE. 00115000
  116. * 1. THE 'LAST' FIELD IS DATE STAMPED. 00116000
  117. * 2. THE THIRD PASSED PARM IS MOVED INTO THE SEVERITY FIELD. 00117000
  118. * 00118000
  119. * D. PTF FIELD UPDATE. 00119000
  120. * 1. THE THIRD AND FOURTH PARMS PASSED ARE MOVED INTO THE 00120000
  121. * PTF FIELD (FILENAME FILETYPE). 00121000
  122. * 2. THE 'LAST' FIELD IS DATE STAMPED. 00122000
  123. * 3. THE LAST FUNCTION FIELD IS POSTED WITH 'PTFRCVD' 00123000
  124. * 00124000
  125. * E. DUPLICATE FIELD UPDATE 00125000
  126. * 1. 'DUP OF' IS MOVED TO THE DUPLICATE FIELD. 00126000
  127. * 2. THE THIRD PARM PASSED IS MOVED AFTER 'DUP OF' 00127000
  128. * 00128000
  129. * F. APAR FIELD UPDATE. 00129000
  130. * 1. 'APAR' IS MOVED TO THE APAR FIELD. 00130000
  131. * 2. THE THIRD PARM PASSED IS MOVED AFTER 'APAR' 00131000
  132. * 3. THE 'LAST' FIELD IS DATE STAMPED. 00132000
  133. * 00133000
  134. * AFTER THE UPDATING OF THE CONTROL RCD HAS BEEN DONE THE RCD 00134000
  135. * IS REWRITTEN TO THE SYMPTOM SUMMARY FILE. 00135000
  136. * 00136000
  137. * THE CURRENT STATUS INFO IS NOW APPENDED TO THE PROBLEM REPORT 00137000
  138. * IN THE FORM OF AN 80 BYTE RECORD WITH AN INDICATOR OF: 00138000
  139. * '*** STATUS UPDATED HH:MM:SS MM/DD' 00139000
  140. * 00140000
  141. * ERROR MESSAGES: 00141000
  142. * 00142000
  143. * DMMSUM100S ERROR 'NNN' READING FILE 'SYMPTOM SUMMARY A1' 00143000
  144. * DMMSUM200S ERROR 'NNN' WRITING FILE 'FILENAME FILETYPE FM' 00144000
  145. * DMMSUM501S INVALID PARM 'AAAA' PASSED TO SUMMARY UPDATE PROG 00145000
  146. * DMMSUM502S PROBLEM 'PRBNNNNN' NOT FOUND IN SYMPTOM SUMMARY 00146000
  147. * 00147000
  148. *************************************************************** 00148000
  149. EJECT 00149000
  150. DMMSUM CSECT @VA04250 00150000
  151. USING DMMSUM,R15 TEMPORARY ADDRESSABILITY @VA04250 00151000
  152. B START BRANCH AROUND EYECATCHER @VA04250 00152000
  153. DS 0D @VA04250 00153000
  154. MODNAME DC C'DMMSUM ' MODULE NAME @VA04250 00154000
  155. RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00155000
  156. START STM R14,R12,12(R13) SAVE CALLER'S REGISTERS @VA04250 00156000
  157. LR R12,R15 ESTABLISH OUR BASE REGISTER @VA04250 00157000
  158. DROP R15 @VA04250 00158000
  159. USING DMMSUM,R12 OUR BASE REGISTER @VA04250 00159000
  160. ST R13,SAVEAREA+8 SAVE CALLER'S SAVEAREA POINTER @VA04250 00160000
  161. LA R13,SAVEAREA POINT TO OUT OWN SAVEAREA @VA04250 00161000
  162. LR R6,R1 SAVE PARM POINTER @VA04250 00162000
  163. LA R7,INPUT SYMPTOM SUMMARY CONTROL RCD INPUT@VA04250 00163000
  164. USING NUCON,R0 CMS LOW CORE ADDRESSABILITY @VA04250 00164000
  165. USING SYMSECT,R7 PROBLEM CONTROL RECORD DSECT @VA04250 00165000
  166. USING SUMMPARM,R6 PARAMETER LIST DSECT @VA04250 00166000
  167. CLC PRB,=C'PRB' VALID CALLER? @VA04250 00167000
  168. BE SUMCONT YES DON'T MESS AROUND @VA04250 00168000
  169. MVC MSGPARM1,PROBNUM MOVE BAD PARM TO ERROR MSG @VA04250 00169000
  170. B PARMERR BAD PARAMETER PASSED @VA04250 00170000
  171. *************************************************************** 00171000
  172. * READ THE SYMPTOM SUMMARY FILE AND FIND THE PROBLEM REQUESTED 00172000
  173. *************************************************************** 00173000
  174. SUMCONT LA R2,L'NNNNN CHECK 5 DIGITS FOR NUMERICS @VA04250 00174000
  175. LA R3,NNNNN POINT TO PROBLEM NUMBER @VA04250 00175000
  176. SUMCK1 TM 0(R3),NUMERIC IS THIS BYTE NUMERIC? @VA04250 00176000
  177. BNO SUMERR NO, ERROR @VA04250 00177000
  178. LA R3,ONE(R3) LOOK AT NEXT BYTE @VA04250 00178000
  179. BCT R2,SUMCK1 CONTINUE CHECKING @VA04250 00179000
  180. LA R9,ONE RECORD NUMBER TO BE READ @VA04250 00180000
  181. RDHDR FSREAD 'SYMPTOM SUMMARY A1',BUFFER=(R7),RECNO=(R9),BSIZE=80 00181000
  182. LTR R15,R15 CHECK RETURN CODE @VA04250 00182000
  183. BNZ RDERR NOT ZERO @VA04250 00183000
  184. CLC SYMPNUM,NNNNN FOUND THE PROBLEM NUMBER? @VA04250 00184000
  185. BE UFOUND YES @VA04250 00185000
  186. SR R2,R2 PREPARE FOR IC INSTRUCTION @VA04250 00186000
  187. IC R2,SYMCCNT GET NO. OF RCDS IN SYMPTOM ENTRY @VA04250 00187000
  188. LA R9,ONE(R2,R9) POINT TO NEXT CONTROL RECORD @VA04250 00188000
  189. B RDHDR LOOK THROUGH FILE @VA04250 00189000
  190. SUMERR MVC MSGPARM1,PROBNUM MOVE INVALID PARM TO MESSAGE @VA04250 00190000
  191. B PARMERR GO PUT OUT ERROR MESSAGE @VA04250 00191000
  192. *************************************************************** 00192000
  193. * WE NOW HAVE THE REQUESTED PROBLEM CONTROL RECORD 00193000
  194. *************************************************************** 00194000
  195. UFOUND CLC REQTYPE,=C'UP' UPDATE REQUEST? @VA04250 00195000
  196. BE UUPDT YES @VA04250 00196000
  197. CLC REQTYPE,=C'FI' FIND REQUEST? @VA04250 00197000
  198. BE UGET YES @VA04250 00198000
  199. MVC MSGPARM1,UPFI MOVE INVALID PARM TO ERROR MSG @VA04250 00199000
  200. B PARMERR INVALID REQUEST @VA04250 00200000
  201. *************************************************************** 00201000
  202. * THE REQUEST HAS BEEN FOUND TO BE AN UPDATE OF THE CTL RCD 00202000
  203. *************************************************************** 00203000
  204. UUPDT CLC REQDATA,=C'STAT ' UPDATE STATUS? @VA04250 00204000
  205. BE UUPSTAT YES @VA04250 00205000
  206. CLC REQDATA,=C'FUNCT ' UPDATE LAST FUNCTION? @VA04250 00206000
  207. BE UUFCT YES @VA04250 00207000
  208. CLC REQDATA,=C'SEV ' UPDATE SEVERITY? @VA04250 00208000
  209. BE UUSEV YES @VA04250 00209000
  210. CLC REQDATA,=C'PTF ' UPDATE PTF FIELD? @VA04250 00210000
  211. BE UUPTF YES @VA04250 00211000
  212. CLC REQDATA,=C'DUP ' INDICATE DUPLICATE STATUS? @VA04250 00212000
  213. BE UUDUP YES @VA04250 00213000
  214. CLC REQDATA,=C'APAR ' UPDATE PTF FLD W/APAR NUM? @VA04250 00214000
  215. BE UUAPAR YES @VA04250 00215000
  216. MVC MSGPARM1,UPFI MOVE INVALID PARM TO ERROR MSG @VA04250 00216000
  217. B PARMERR INVALID PARAMETER @VA04250 00217000
  218. *************************************************************** 00218000
  219. * UPDATE THE STATUS FIELD 00219000
  220. *************************************************************** 00220000
  221. UUPSTAT MVC SYMLACT,CURRDATE INDICAT LAST ACTIVITY DATE @VA04250 00221000
  222. MVC SYMSTAT,DATA01 MOVE IN NEW STATUS @VA04250 00222000
  223. CLC SYMSTAT,=C'CLOSED ' PROBLEM BEING CLOSED? @VA04250 00223000
  224. BE UUCLOSE YES @VA04250 00224000
  225. CLC SYMSTAT,=C'OPENIBM ' REPORTING PROBLEM TO IBM? @VA04250 00225000
  226. BNE UUUSER NO @VA04250 00226000
  227. MVC SYMLFCT,=C'REPORTED' INDICATE PROBLEM REPORTED @VA04250 00227000
  228. B UREWRT GO REWRITE CONTROL RECORD @VA04250 00228000
  229. UUUSER CLC SYMSTAT,=C'OPENUSER' PROB BEING POSTED AS USER @VA04250 00229000
  230. BNE UREWRT NO @VA04250 00230000
  231. MVC SYMLFCT,=C'USER ' SET LAST FUNCTION TO USER @VA04250 00231000
  232. B UREWRT GO REWRITE CONTROL RECORD @VA04250 00232000
  233. UUCLOSE MVC SYMLFCT,=C'CLOSE ' LAST FUNCTION OF CLOSE @VA04250 00233000
  234. CLI DATA02,FENCE ANY MORE PARMS PASSED? @VA04250 00234000
  235. BE UREWRT NO @VA04250 00235000
  236. CLI DATA02,USER USER PROBLEM? @VA04250 00236000
  237. BNE UUCLOS2 NO @VA04250 00237000
  238. MVC SYMCLOSE,BLANKS CLEAR CLOSE REASON FIELD @VA04250 00238000
  239. MVC SYMCLOSE(L'CUSER),CUSER INDICATE CLOSE CAUSE @VA04250 00239000
  240. B UREWRT GO REWRITE RECORD @VA04250 00240000
  241. UUCLOS2 CLI DATA02,UNREP UNREPRODUCABLE? @VA04250 00241000
  242. BNE UUCLOS3 NO @VA04250 00242000
  243. MVC SYMCLOSE,BLANKS CLEAR CLOSE REASON FIELD @VA04250 00243000
  244. MVC SYMCLOSE(L'CUNREP),CUNREP POST PROB AS UNREPRO @VA04250 00244000
  245. B UREWRT GO REWRITE RECORD @VA04250 00245000
  246. UUCLOS3 CLI DATA02,HARDWR HARDWARE? @VA04250 00246000
  247. BNE UUCLOS4 NO @VA04250 00247000
  248. MVC SYMCLOSE,BLANKS CLEAR CLOSE REASON FIELD @VA04250 00248000
  249. MVC SYMCLOSE(L'CHARDWR),CHARDWR POST PROB AS HARDWR @VA04250 00249000
  250. B UREWRT GO REWRITE RECORD @VA04250 00250000
  251. UUCLOS4 CLI DATA02,DOC DOCUMENTATION? @VA04250 00251000
  252. BNE UREWRT NO, GO REWRITE RECORD @VA04250 00252000
  253. MVC SYMCLOSE,BLANKS CLEAR CLOSE REASON FIELD @VA04250 00253000
  254. MVC SYMCLOSE(L'CDOC),CDOC POST RESOLUTION AS DOCUM @VA04250 00254000
  255. B UREWRT GO REWRITE RECORD @VA04250 00255000
  256. *************************************************************** 00256000
  257. * UPDATE THE LAST FUNCTION FIELD 00257000
  258. *************************************************************** 00258000
  259. UUFCT MVC SYMLACT,CURRDATE INDICATE LAST ACTIVITY DATE @VA04250 00259000
  260. MVC SYMLFCT,DATA01 INDICATE LAST FUNCTION @VA04250 00260000
  261. B UREWRT GO REWRITE UPDATED RECORD @VA04250 00261000
  262. *************************************************************** 00262000
  263. * UPDATE THE SEVERITY FIELD 00263000
  264. *************************************************************** 00264000
  265. UUSEV MVC SYMLACT,CURRDATE CURRENT DATE STAMP @VA04250 00265000
  266. MVC SYMSEV,DATA01 MOVE NEW SEVERITY TO OUTPUT RCD @VA04250 00266000
  267. B UREWRT GO REWRITE UPDATED RECORD @VA04250 00267000
  268. *************************************************************** 00268000
  269. * UPDATE THE PTF FIELD 00269000
  270. *************************************************************** 00270000
  271. UUPTF MVC SYMPTFFN,DATA01 MOVE IN PTF FILE NAME @VA04250 00271000
  272. MVI SYMPTFDV,BLANK CLEAR THIS BYTE OF ANY TRASH @VA04250 00272000
  273. MVC SYMPTFFT,DATA02 MOVE IN PTF FILE TYPE @VA04250 00273000
  274. MVC SYMLFCT,=C'PTFRCVD ' POST ACTIVITY TO OUTPUT RCD@VA04250 00274000
  275. MVC SYMLACT,CURRDATE DATE STAMP THIS ACTIVITY @VA04250 00275000
  276. B UREWRT GO REWRITE UPDATED OUTPUT RECORD @VA04250 00276000
  277. *************************************************************** 00277000
  278. * UPDATE THE DUPLICATE FIELD 00278000
  279. *************************************************************** 00279000
  280. UUDUP MVC SYMDUP,BLANKS CLEAR FIELD WHERE DUP WILL GO @VA04250 00280000
  281. MVC SYMDUP1,=C'DUP OF ' DUPLICATE INDICATOR @VA04250 00281000
  282. MVC SYMDUP2,DATA01 MOVE DUPLICATE PROBLEM NUMBER OUT@VA04250 00282000
  283. B UREWRT GO REWRITE UPDATED OUTPUT RECORD @VA04250 00283000
  284. *************************************************************** 00284000
  285. * UPDATE THE APAR FIELD 00285000
  286. *************************************************************** 00286000
  287. UUAPAR MVC SYMPTF,BLANKS CLEAR PTF FIELD @VA04250 00287000
  288. MVC SYMAPAR1,=C'APAR' APAR INDICATOR TO CTL RCD @VA04250 00288000
  289. MVC SYMAPAR2,DATA01 MOVE APAR NUM TO CTL RCD @VA04250 00289000
  290. MVC SYMLACT,CURRDATE DATE STAMP FOR THIS ACTIVITY @VA04250 00290000
  291. MVC SYMLFCT,=C'APARED ' POST TYPE OF ACTIVITY @VA04250 00291000
  292. B UREWRT GO REWRITE RECORD @VA04250 00292000
  293. EJECT 00293000
  294. *************************************************************** 00294000
  295. * REWRITE UPDATED SYMPTOM SUMMARY CONTROL RCD FOR THIS PROBLEM 00295000
  296. *************************************************************** 00296000
  297. UREWRT FSCLOSE 'SYMPTOM SUMMARY A1' @VA04250 00297000
  298. FSWRITE 'SYMPTOM SUMMARY A1',RECNO=(9),BUFFER=INPUT,BSIZE=80 00298000
  299. LR R3,R15 SAVE RETURN CODE @VA04250 00299000
  300. FSCLOSE 'SYMPTOM SUMMARY A1' @VA04250 00300000
  301. LTR R3,R3 ERROR ON REWRITE? @VA04250 00301000
  302. BNZ ERRUP YES @VA04250 00302000
  303. *************************************************************** 00303000
  304. * PLACE COPY OF NEW STATUS IN PROBLEM REPORT 00304000
  305. *************************************************************** 00305000
  306. CLC REQDATA,=C'SEV ' WAS THIS A SEVERITY UPDATE? @VA04250 00306000
  307. BNE REPORT1 NO @VA04250 00307000
  308. MVC SEVMSG1,SYMSEV PUT NEW SEVERITY IN OUTPUT @VA04250 00308000
  309. MVC SYMPTF,SEVMSG PUT MESSAGE IN OUTPUT @VA04250 00309000
  310. REPORT1 MVC PROBLEM,PROBNUM MOVE PROBLEM NUMBER TO FILENAME @VA04250 00310000
  311. MVC SYMFAIL,BLANKS BLANK OUT FAILURE FIELD @VA04250 00311000
  312. MVC SYMPNUM,BLANKS BLANK OUT PROBLEM NUMBER @VA04250 00312000
  313. MVC SYMCREAT,BLANKS BLANK OUT CREATION DATE @VA04250 00313000
  314. MVC SYMPLC,BLANKS CLEAR PLC FROM RECORD @VA04250 00314000
  315. MVI SYMSEV,BLANK CLEAR SEVERITY @VA04250 00315000
  316. MVC SYMCREAT(L'CURRTIME),CURRTIME TIME STAMP RCD @VA04250 00316000
  317. LA R2,PROBLEM POINT TO PROBLEM REPORT A1 @VA04250 00317000
  318. FSWRITE (R2),BUFFER=PREFIX,BSIZE=80,NOREC=1 @VA04250 00318000
  319. LR R3,R15 SAVE RETURN CODE @VA04250 00319000
  320. FSCLOSE (R2) CLOSE PROBLEM REPORT FILE @VA04250 00320000
  321. LTR R3,R3 ERROR ON WRITE? @VA04250 00321000
  322. BZ NORMEXIT NO TAKE NORMAL EXIT; WE ARE DONE @VA04250 00322000
  323. B ERRWRT GO PROCESS ERROR @VA04250 00323000
  324. *************************************************************** 00324000
  325. * TERMINAL WRITE 00325000
  326. *************************************************************** 00326000
  327. WRTERM WRTERM (R2),(R3) @VA04250 00327000
  328. BR R8 RETURN TO CALLER @VA04250 00328000
  329. EJECT 00329000
  330. *************************************************************** 00330000
  331. * FIND REQUEST HANDLING 00331000
  332. *************************************************************** 00332000
  333. UGET LA R1,INPUT PASS RECORD BACK TO CALLER @VA04250 00333000
  334. B NORMEXIT TAKE NORMAL EXIT @VA04250 00334000
  335. EJECT 00335000
  336. *************************************************************** 00336000
  337. * ERROR AND EXIT ROUTINES 00337000
  338. *************************************************************** 00338000
  339. PARMERR LA R2,MSGPARM 'INVALID PARM PASSED TO SUMMARY' @VA04250 00339000
  340. LA R3,MSGPARML LENGTH OF MESSAGE @VA04250 00340000
  341. BAL R8,WRTERM GO TELL USER @VA04250 00341000
  342. B RETCOD8 TAKE ERROR EXIT @VA04250 00342000
  343. ERRWRT ST R3,WK RETURN CODE TO WORK AREA @VA04250 00343000
  344. MVC WRFNFTFM(L'PROBLEM),PROBLEM MOVE FN TO ERROR MSG@VA04250 00344000
  345. MVC WRFT+ONE(SEVEN),REPORT DON'T RUN FN FT TOGETHER @VA04250 00345000
  346. MVC WRFM,FILEMODE MOVE IN FILEMODE @VA04250 00346000
  347. B ERRWRT2 CONTINUE @VA04250 00347000
  348. ERRUP ST R3,WK RETURN CODE TO WORK AREA @VA04250 00348000
  349. MVC WRFNFTFM,=C'SYMPTOM SUMMARY A1' FNFTFM TO MSG @VA04250 00349000
  350. ERRWRT2 L R3,WK GET RETURN CODE @VA04250 00350000
  351. CVD R3,WKDWD CONVERT TO DECIMAL IN WORKAREA @VA04250 00351000
  352. UNPK WRCODE,WKDWD+SIX(TWO) UNPACK IT TO MESSAGE @VA04250 00352000
  353. OI WRCODE+TWO,NUMERIC MAKE IT PRINTABLE @VA04250 00353000
  354. LA R2,MSGWRERR POINT TO MESSAGE @VA04250 00354000
  355. LA R3,WRLNTH GET LENGTH @VA04250 00355000
  356. BAL R8,WRTERM GO PRINT IT ON TERMINAL @VA04250 00356000
  357. B RETCOD8 TAKE ERROR EXIT @VA04250 00357000
  358. RDERR CVD R15,WKDWD CONVERT RETURN CODE TO DECIMAL @VA04250 00358000
  359. UNPK RDCODE,WKDWD+SIX(TWO) UNPACK INTO ERR CD IN MSG @VA04250 00359000
  360. OI RDCODE+TWO,NUMERIC MAKE IT PRINTABLE @VA04250 00360000
  361. CLC RDCODE,=C'012' EOF RETURN CODE? @VA04250 00361000
  362. BE RETCOD4 YES TAKE NOT FOUND EXIT @VA04250 00362000
  363. LA R2,MSGRDERR POINT TO READ ERROR MESSAGE @VA04250 00363000
  364. LA R3,RDLNTH GET LENGTH OF MESSAGE @VA04250 00364000
  365. BAL R8,WRTERM GO TELL USER @VA04250 00365000
  366. B RETCOD8 TAKE RETURN CODE 8 ERROR EXIT @VA04250 00366000
  367. RETCOD4 MVC MSGPROB1,PROBNUM MOVE PROBLEM NUMBER TO MSG @VA04250 00367000
  368. LA R2,MSGPROB 'DMMSUM502S PROBLEM 'PRBNNNNN ..'@VA04250 00368000
  369. LA R3,MSGPROBL LENGTH OF MESSAGE @VA04250 00369000
  370. BAL R8,WRTERM GO DISPLAY ERROR MESSAGE @VA04250 00370000
  371. L R13,8(R13) RESTORE CALLER'S SAVEAREA POINTER@VA04250 00371000
  372. LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS @VA04250 00372000
  373. LA R15,4 PROBLEM NOT FOUND RETURN CODE @VA04250 00373000
  374. BR R14 RETURN TO CALLER @VA04250 00374000
  375. RETCOD8 L R13,8(R13) RESTORE CALLER'S SAVEAREA POINTER@VA04250 00375000
  376. LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS @VA04250 00376000
  377. LA R15,8 UNRECOVERABLE ERROR RETURN CODE @VA04250 00377000
  378. BR R14 RETURN TO CALLER @VA04250 00378000
  379. NORMEXIT L R13,8(R13) RESTORE CALLER'S SAVEAREA POINTER@VA04250 00379000
  380. LM R14,R0,12(R13) RESTORE CALLER'S REGISTERS... @VA04250 00380000
  381. LM R2,R12,28(R13) SAVING R1 TO PASS BACK TO CALLER @VA04250 00381000
  382. SR R15,R15 RETURN CODE ZERO (GOOD) @VA04250 00382000
  383. BR R14 RETURN TO CALLER @VA04250 00383000
  384. EJECT 00384000
  385. *************************************************************** 00385000
  386. * SAVEAREAS, CONSTANTS AND EQUATES 00386000
  387. *************************************************************** 00387000
  388. SAVEAREA DS 18F OUR SAVEAREA @VA04250 00388000
  389. SEVMSG DC C'NEW SEVERITY IS ' INDICATOR FOR REPORT UPDATE @VA04250 00389000
  390. SEVMSG1 DC C' ' NEW SEVERITY @VA04250 00390000
  391. PROBLEM DS CL8 PROBLEM NUMBER IN FORM 'PRBNNNNN'@VA04250 00391000
  392. REPORT DC C'REPORT ' @VA04250 00392000
  393. FILEMODE DC C'A1' FILE MODE OF PROBLEM REPORT @VA04250 00393000
  394. ***************************** 00394000
  395. * KEEP THE FOLLOWING TOGETHER 00395000
  396. ***************************** 00396000
  397. PREFIX DC C'*** STATUS UPDATED ' INDICATOR FOR REPT UPDT @VA04250 00397000
  398. INPUT DS CL80 INPUT FOR SYMPTOM SUMMARY RCDS @VA04250 00398000
  399. ***************************** 00399000
  400. WK DS F FULL WORD OF WORK @VA04250 00400000
  401. WKDWD DS D DOUBLE WORD WORK AREA @VA04250 00401000
  402. BLANKS DC 20C' ' BLANKS FOR CLEARING FIELDS @VA04250 00402000
  403. USER EQU X'F1' PROBLEM CLOSED AS USER PROBLEM @VA04250 00403000
  404. UNREP EQU X'F2' PROBLEM CLOSED AS UNREPRODUCABLE @VA04250 00404000
  405. HARDWR EQU X'F3' PROBLEM CLOSED AS HARDWARE @VA04250 00405000
  406. DOC EQU X'F4' PROBLEM CLOSED AS DOCUMENTATION @VA04250 00406000
  407. ONE EQU 1 FOR LA DISPLACEMENTS ETC. @VA04250 00407000
  408. TWO EQU 2 SIZE OF RETURN CODE @VA04250 00408000
  409. SIX EQU 6 WHERE RETURN CODE IS IN WORK AREA@VA04250 00409000
  410. SEVEN EQU 7 USED TO PUT OUT MESSAGE FTYPE @VA04250 00410000
  411. CUSER DC C'USER' CLOSED AS USER ERROR @VA04250 00411000
  412. CUNREP DC C'UNREPRODUCABLE' CLOSED AS UNREPRODUCABLE @VA04250 00412000
  413. CHARDWR DC C'HARDWARE' CLOSED AS HARDWARE ERROR @VA04250 00413000
  414. CDOC DC C'DOCUMENTATION' CLOSED AS DOCUMENTATION @VA04250 00414000
  415. *************************************************************** 00415000
  416. * FILE READ ERROR MESSAGE 00416000
  417. *************************************************************** 00417000
  418. MSGRDERR DC C'DMMSUM100S ERROR ''' @VA04250 00418000
  419. RDCODE DS CL3 RETURN CODE FROM FSREAD @VA04250 00419000
  420. DC C''' READING FILE ''SYMPTOM SUMMARY A1''' @VA04250 00420000
  421. RDLNTH EQU *-MSGRDERR READ ERROR MESSAGE LENGTH @VA04250 00421000
  422. *************************************************************** 00422000
  423. * FILE WRITE ERROR MESSAGE 00423000
  424. *************************************************************** 00424000
  425. MSGWRERR DC C'DMMSUM200S ERROR ''' @VA04250 00425000
  426. WRCODE DS CL3 RETURN CODE FROM FSWRITE @VA04250 00426000
  427. DC C''' WRITING FILE ''' @VA04250 00427000
  428. WRFNFTFM DS 0CL18 FILNAME FILETYPE FILEMODE @VA04250 00428000
  429. WRFN DS CL8 FILENAME @VA04250 00429000
  430. WRFT DS CL8 FILETYPE @VA04250 00430000
  431. WRFM DS CL2 FILEMODE @VA04250 00431000
  432. DC C'''' @VA04250 00432000
  433. WRLNTH EQU *-MSGWRERR LENGTH OF ERROR MESSAGE @VA04250 00433000
  434. *************************************************************** 00434000
  435. * INVALID PARM ERROR MESSAGE 00435000
  436. *************************************************************** 00436000
  437. MSGPARM DC C'DMMSUM501S INVALID PARM ''' @VA04250 00437000
  438. MSGPARM1 DS CL8 INVALID PARM @VA04250 00438000
  439. DC C''' PASSED TO SYMPTOM SUMMARY UPDATE PROGRAM' @VA04250 00439000
  440. MSGPARML EQU *-MSGPARM LENGTH OF MESSAGE @VA04250 00440000
  441. SPACE 1 00441000
  442. MSGPROB DC C'DMMSUM502S PROBLEM ''' @VA04250 00442000
  443. MSGPROB1 DS CL8 PROBLEM NUMBER NOT FOUND @VA04250 00443000
  444. DC C''' NOT FOUND IN SYMPTOM SUMMARY' @VA04250 00444000
  445. MSGPROBL EQU *-MSGPROB LENGTH OF ERROR MESSAGE @VA04250 00445000
  446. SPACE 1 00446000
  447. FENCE EQU X'FF' END OF PASSED PARMS INDICATOR @VA04250 00447000
  448. BLANK EQU X'40' BLANK @VA04250 00448000
  449. NUMERIC EQU X'F0' MASK FOR TEST FOR NUMERICS @VA04250 00449000
  450. PATCH DC 50F'0' PATCH AREA @VA04250 00450000
  451. *************************************************************** 00451000
  452. * PASSED PARMS DSECT 00452000
  453. *************************************************************** 00453000
  454. SUMMPARM DSECT @VA04250 00454000
  455. PROGNAME DS CL8 NAME OF EXECUTING PROGRAM @VA04250 00455000
  456. PROBNUM DS 0CL8 PROBLEM NUMBER IN FORM 'PRBNNNNN'@VA04250 00456000
  457. PRB DS CL3 'PRB' @VA04250 00457000
  458. NNNNN DS CL5 'NNNNN' @VA04250 00458000
  459. UPFI DS 0CL8 'UP' OR 'FI' PLUS DATA @VA04250 00459000
  460. REQTYPE DS CL2 'UP' OR 'FI' @VA04250 00460000
  461. REQDATA DS CL6 TYPE OF UPDATE TO BE MADE @VA04250 00461000
  462. DATA01 DS CL8 FIRST UPDATE DATA PASSED @VA04250 00462000
  463. DATA02 DS CL8 SECOND UPDATE DATA SUPPLIED @VA04250 00463000
  464. *************************************************************** 00464000
  465. SPACE 1 00465000
  466. COPY SYMSECT @VA04250 00466000
  467. NUCON @VA04250 00467000
  468. REGEQU @VA04250 00468000
  469. END 00469000