Table of Contents

DMMPRO Source

References

Source Listing

DMMPRO.ASSEMBLE.txt
  1. PRO TITLE 'DMMPRO (IPCS) VM/370 - RELEASE 6' 00001000
  2. *************************************************************** 00002000
  3. * 00003000
  4. * MODULE NAME: 00004000
  5. * 00005000
  6. * PROB 00006000
  7. * 00007000
  8. * FUNCTION: 00008000
  9. * 00009000
  10. * TO CREATE A PROBLEM REPORT THROUGH USER PROMPTING 00010000
  11. * 00011000
  12. * ATTRIBUTES: 00012000
  13. * 00013000
  14. * NON-REUSABLE 00014000
  15. * NON-REENTRANT 00015000
  16. * 00016000
  17. * ENTRY POINTS: 00017000
  18. * 00018000
  19. * DMMPRO 00019000
  20. * 00020000
  21. * ENTRY CONDITIONS: 00021000
  22. * 00022000
  23. * FROM CMS WHEN PROB COMMAND ISSUED 00023000
  24. * 00024000
  25. * EXIT CONDITIONS: 00025000
  26. * 00026000
  27. * RETURN CODE IN R15 0 NORMAL COMPLETION 00027000
  28. * 4 USER TYPED :HX (HALT EXECUTION) 00028000
  29. * 8 UNRECOVERABLE ERROR OCCURRED 00029000
  30. * 00030000
  31. * CALLS TO OTHER ROUTINES: 00031000
  32. * 00032000
  33. * DMMWRT TO WRITE THE PROBLEM REPORT ON DISK 00033000
  34. * DMMSEA TO LOOK FOR A DUPLICATE OF THIS PROBLEM 00034000
  35. * 00035000
  36. * EXTERNAL REFERENCES: 00036000
  37. * 00037000
  38. * NONE 00038000
  39. * 00039000
  40. * TABLES/WORKAREAS: 00040000
  41. * 00041000
  42. * LOGTBL EACH PROMPT HAS STATUS SAVED HERE FOR REPROMPTING 00042000
  43. * SUPPAREA 5 80 BYTE RCDS FOR SUPPLEMENTARY DATA INFO 00043000
  44. * INTAREA AREA TO STORE INTERNAL DATA FOR OTHER ROUTINES 00044000
  45. * TEXTAREA 20 80 BYTE RECORDS FOR TEXTUAL PROBLEM DESCRIPTION 00045000
  46. * NUCON (CMS LOW CORE DSECT) FOR CURRENT TIME AND DATE 00046000
  47. * 00047000
  48. * REGISTER USAGE: 00048000
  49. * 00049000
  50. * R13 POINTER TO SAVEAREA 00050000
  51. * R12 BASE REG 1 00051000
  52. * R11 BASE REG 2 00052000
  53. * R10 BASE REG 3 00053000
  54. * R9 ADDRESS OF EXECUTING PROMPT. SAVED FOR REPROMPTING 00054000
  55. * R8 INTERNAL LINK REGISTER 00055000
  56. * R7 POINTER TO PROMPTING MESSAGE 00056000
  57. * R6 USUALLY BCT REGISTER USED BY PROMPTING CODE 00057000
  58. * R5 WRTERM RETURN ADDRESS, USUALLY POINTS TO RDTERM 00058000
  59. * R4,R3,R2 WORK REGISTERS 00059000
  60. * R1 POINTER TO START OF DATA ENTERED BY USER 00060000
  61. * R0 LENGTH OF DATA ENTERED BY USER 00061000
  62. * R14,R15,R1 USED AS SHORT TERM WORK REGS WHEN NEEDED 00062000
  63. * 00063000
  64. * NOTES: 00064000
  65. * 00065000
  66. * ALL MESSAGES ISSUED ARE CODED USING A SPECIAL MSGP MACRO. 00066000
  67. * MSGP MACRO PROTOTYPE IS AS FOLLOWS: 00067000
  68. * &NAME MSGP MSG=,MIN=,MAX=,TYPE=,MORE=NO,KEY= 00068000
  69. * MSG MESSAGE TEXT TO APPEAR AT TERMINAL 00069000
  70. * MIN MINIMUM NUMBER OF CHARACTERS ALLOWED ON INPUT 00070000
  71. * MAX MAXIMUM NUMBER OF CHARACTERS ALLOWED ON INPUT 00071000
  72. * TYPE TYPE OF ALLOWED INPUT (HEX,CHAR, OR NUMERIC) 00072000
  73. * MORE WHETHER MORE LINES FOLLOW IN THIS PROMPT BEFORE READ 00073000
  74. * KEY KEYWORD TO BE ASSOCIATED WITH USER RESPONSE 00074000
  75. * 00075000
  76. * 00076000
  77. * OPERATION: 00077000
  78. * 00078000
  79. * I. OLD PROBLEM 00079000
  80. * II. NEW PROBLEM 00080000
  81. * III. WRTERM OPERATION (INTERNAL SUBROUTINE) 00081000
  82. * IV. RDTERM OPERATION (INTERNAL SUBROUTINE) 00082000
  83. * V. KYINSERT OPERATION (INTERNAL SUBROUTINE) 00083000
  84. * 00084000
  85. * THE USER IS FIRST ASKED IF THIS IS AN ADDITIONAL REPORT 00085000
  86. * CONCERNING AN ALREADY EXISTING PROBLEM. 00086000
  87. * 00087000
  88. * I. ADDITIONAL REPORT (OLD PROBLEM) 00088000
  89. * 00089000
  90. * 1. THE USER IS PROMPTED FOR THE PROBLEM NUMBER OF THE OLD 00090000
  91. * PROBLEM. 00091000
  92. * A. THE NUMBER IS TRANSLATED INTO THE FORM 'PRBNNNNN' WHERE 00092000
  93. * NNNNN IS THE RIGHT JUSTIFIED PROBLEM NUMBER WITH LEADING 00093000
  94. * ZEROES. 00094000
  95. * B. THE EXISTANCE OF THE PROBLEM REPORT CORRESPONDING TO THAT 00095000
  96. * PROBLEM NUMBER (PRBNNNNN REPORT A1) IS VERIFIED. 00096000
  97. * C. IF THE REPORT DOES NOT EXIST THE USER IS NOTIFIED AND 00097000
  98. * PROMPTED AGAIN FOR A PROBLEM NUMBER. 00098000
  99. * 00099000
  100. * 2. THE USER IS PROMPTED FOR THE NAMES AND DESCRIPTIONS OF 00100000
  101. * FILES CONTAINING DATA HE HAS COLLECTED TO AID IN DIAGNOSIS 00101000
  102. * OF THE PROBLEM. UP TO 5 OF THESE FILES MAY BE SPECIFIED. 00102000
  103. * 00103000
  104. * 3. THE USER IS PROMPTED FOR A FREE FORM (TEXT) DESCRIPTION 00104000
  105. * OF ANY FURTHER INFORMATION HE HAS CONCERNING THE PROBLEM. 00105000
  106. * 00106000
  107. * 4. THE INFORMATION COLLECTED IS ADDED TO THE END OF THE 00107000
  108. * ORIGINAL PROBLEM REPORT (PRBNNNNN REPORT A1) PRECEDED BY A 00108000
  109. * RECORD OF THE FORM: 00109000
  110. * *** ADDED *** MM/DD/YY HH:MM 00110000
  111. * 00111000
  112. * 5. RETURN TO CALLER 00112000
  113. * 00113000
  114. * 00114000
  115. * 00115000
  116. * II. NEW PROBLEM REPORT 00116000
  117. * 00117000
  118. * 1. THE FILE 'SUMMARY RECORD A1' IS READ TO OBTAIN THE NEXT 00118000
  119. * SEQUENTIAL PROBLEM NUMBER. THIS NUMBER WILL BE ASSOCIATED 00119000
  120. * WITH THIS REPORT. 00120000
  121. * 00121000
  122. * 2. MAINLINE PROMPTING 00122000
  123. * A. ALL PROMPTS THROUGH LABEL 'GETFAIL' ARE EXECUTED FOR 00123000
  124. * EACH REPORT. 00124000
  125. * B. WHEN THE USER HAS SELECTED THE TYPE OF FAILURE AT LABEL 00125000
  126. * 'GETFAIL' THAT PARTICULAR SUBROUTINE IS ENTERED. 00126000
  127. * C. WHEN THE ABOVE SUBROUTINE HAS FINISHED 'TEXTENTR' IS 00127000
  128. * BRANCHED TO AND THE TEXTUAL DESCRIPTION OF THE PROBLEM 00128000
  129. * IS REQUESTED. 00129000
  130. * 00130000
  131. * 3. THE AMOUNT OF DATA COLLECTED IN THE KEYWORD, SUPPORTING 00131000
  132. * AND TEXT AREAS IS CALCULATED AND SAVED. 00132000
  133. * 00133000
  134. * 4. THE USER IS TOLD THE NUMBER ASSIGNED TO THIS PROBLEM 00134000
  135. * AND THE NUMBER INCREMENTED AND WRITTEN BACK OUT TO DISK. 00135000
  136. * 00136000
  137. * 5. A PARM LIST CONTAINING POINTERS TO ALL DATA COLLECTED IS 00137000
  138. * LOADED IN R1 AND DMMWRT IS CALLED TO WRITE THE PROBLEM 00138000
  139. * REPORT ON DISK AND TO ADD THE PROBLEM TO THE SYMPTOM 00139000
  140. * SUMMARY. 00140000
  141. * 00141000
  142. * 6. USING THE SAME PARM LIST AS DMMWRT, DMMSEA IS CALLED TO 00142000
  143. * FIND ANY PREVIOUSLY REPORTED PROBLEMS WHOSE KEYWORD DATA 00143000
  144. * MATCHES THAT OF THE NEW PROBLEM. 00144000
  145. * 00145000
  146. * 7. RETURN TO CALLER 00146000
  147. * 00147000
  148. * 00148000
  149. * 00149000
  150. * III. WRTERM (COMMON TERMINAL WRITE ROUTINE) 00150000
  151. * 1. IF THIS IS A PROMPT MESSAGE REGS 5,6, AND 7 ARE SAVED IN 00151000
  152. * THE LOG TABLE FOR POSSIBLE REPROMPT USE. 00152000
  153. * 00153000
  154. * 2. THE 80 BYTE OUTPUT BUFFER IS CLEARED 00154000
  155. * 00155000
  156. * 3. IF 'ENTSW' IS NOT SET THE LINE NUMBER FOR REPROMPT IS 00156000
  157. * MOVED TO THE FRONT OF THE OUTPUT BUFFER. 00157000
  158. * SWITCH 'ENTSW' IS SET TO ALLOW ONLY THE FIRST LINE OF A 00158000
  159. * MULTI-LINE PROMPT TO EXHIBIT A REPROMPT NUMBER. 00159000
  160. * 00160000
  161. * 4. THE PROMPT MESSAGE LENGTH IS FOUND AND THE MSG TEXT 00161000
  162. * IS MOVED TO THE OUTPUT AREA AND WRITTEN TO THE TERMINAL. 00162000
  163. * 00163000
  164. * 5. THE 'MSGSTOP' FIELD IN THE PROMPT IS TESTED AND IF THERE 00164000
  165. * IS ANOTHER LINE OF PROMPTING MESSAGE RETURN TO 2. IF NOT 00165000
  166. * EXIT ON R9. 00166000
  167. * 00167000
  168. * IV. RDTERM (COMMON TERMINAL READ ROUTINE) 00168000
  169. * 00169000
  170. * 1. A READ IS ISSUED TO THE TERMINAL 00170000
  171. * 00171000
  172. * 2. IF NO INPUT RETURN TO CALLER 00172000
  173. * 00173000
  174. * 3. REMOVE LEADING BLANKS AND CHECK FOR ':HX' (HALT EXEC) 00174000
  175. * ':L' (USER REQUESTING A REPROMPT). IF :HX GO TO HXEXIT. 00175000
  176. * IF :L-- GO TO 5 BELOW. IF NULL EFFECTIVE INPUT RETURN. 00176000
  177. * 00177000
  178. * 4. REMOVE TRAILING BLANKS AND CHECK FOR DATA TYPE AND LNGTH 00178000
  179. * RESTRICTIONS AS SPECIFIED IN THE MSGP MACRO. 00179000
  180. * A. IF FIELD MSGMIN IS NON-ZERO CHECK FOR IMBEDDED BLANKS 00180000
  181. * AND DON'T ACCEPT THE INPUT IF ANY ARE FOUND. IF NO BLANKS 00181000
  182. * ARE FOUND CHECK THE LENGTH OF ENTERED DATA AGAINST THE 00182000
  183. * VALUE IN MSGMIN AND DON'T ACCEPT THE INPUT IF LESS THAN 00183000
  184. * MSGMIN AND FORCE A REPROMPT. IF OK GO TO B. 00184000
  185. * B. IF FIELD MSGMAX IS NON ZERO CHECK THE LENGTH OF INPUT 00185000
  186. * AGAINST MSGMAX AND IF THE LENGTH IS GREATER INFORM THE 00186000
  187. * USER AND REPROMPT HIM. IF OK GO TO C. 00187000
  188. * C. CHECK FOR DATA TYPE RESTRICTIONS (NUM OR HEX) AND IF SO 00188000
  189. * CHECK THE DATA FOR VIOLATIONS. IF INVALID DATA INFORM THE 00189000
  190. * USER AND FORCE A REPROMPT. IF OK RETURN. 00190000
  191. * 5. USER REQUESTED REPROMPT. CHECK TO SEE IF REPROMPTING IS 00191000
  192. * ALREADY IN EFFECT, AND IF SO INFORM THE USER IT IS ILLEGAL 00192000
  193. * AND RETURN TO THE ORIGINAL PROMPT BEFORE THE PREVIOUS 00193000
  194. * REQUEST FOR REPROMPTING. 00194000
  195. * A. SAVE THE CURRENT STATUS (REGS 5-9) 00195000
  196. * B. SEARCH THE LOG TABLE LIFO FOR A MATCHING REPROMPT LINE 00196000
  197. * NUMBER. 00197000
  198. * C. IF NOT FOUND INFORM THE USER AND RESTORE THE STATUS AND 00198000
  199. * DISPLAY THE ORIGINAL PROMPT. 00199000
  200. * D. IF FOUND SET REGS R5-R7 AND BRANCH TO THE REQUESTED 00200000
  201. * PROMPT ROUTINE VIA R5. 00201000
  202. * E. IT IS THE PROMPT ROUTINE'S ROLE TO CAUSE THE PREVIOUS 00202000
  203. * PROMPT'S STATUS TO BE RESTORED IF THE REPROMPT WAS NOT 00203000
  204. * OF A DECISION NATURE. IF A DECISION WAS TO BE MADE 00204000
  205. * ON THE DATA ENTERED THE ROUTINE WILL RESET THE REPROMPT 00205000
  206. * SWITCH AND CONTINUE FROM THAT POINT IN THE PROMPTING 00206000
  207. * LOGIC. 00207000
  208. * 00208000
  209. * 00209000
  210. * 00210000
  211. * V. KYINSERT (INTERNAL SUBROUTINE TO PUT KEYWORDS AND 00211000
  212. * ASSOCIATED DATA IN AN OUTPUT AREA) 00212000
  213. ***** THE DATA WILL BE IN VARIABLE BLOCKED FORMAT 00213000
  214. * 00214000
  215. * |TT00|LL00|..DATA1..|LL00|..DATA2..|...... 00215000
  216. * 4 4 LL-4 4 LL-4 00216000
  217. * 00217000
  218. * WHERE TT IS THE TOTAL LENGTH OF THE BLOCK 00218000
  219. * INCLUDING LENGTH FIELDS, AND EACH LL IS 00219000
  220. * THE LENGTH OF THAT LOGICAL RCD INCLUDING 00220000
  221. * ITS LENGTH FIELD. 00221000
  222. * 00222000
  223. * 00223000
  224. * 1. THE DATA LENGTH IS TESTED AND IF ZERO RETURN TO CALLER 00224000
  225. * 00225000
  226. * 2. THE KEYWORD IS EXTRACTED FROM THE MSGP EXPANSION AND 00226000
  227. * THE OUTPUT KEY AREA IS CHECKED TO SEE IF THE KEYWORD HAS 00227000
  228. * ALREADY BEEN STORED THERE (REPROMPTING MAY CAUSE THIS TO 00228000
  229. * HAPPEN, FOR EXAMPLE). 00229000
  230. * 00230000
  231. * 3. IF THE KEYWORD ALREADY EXISTS IN THE OUTPUT THE LEN OF 00231000
  232. * NEW DATA IS COMPARED TO THE LENGTH OF THE OLD. IF THEY ARE 00232000
  233. * THE SAME GO TO 4. 00233000
  234. * A. IF THE NEW DATA LENGTH IS GREATER ROOM MUST BE MADE FOR 00234000
  235. * IT BY MOVING ANY SUBSEQUENT DATA OUTWARD. GO TO 4. 00235000
  236. * B. IF THE NEW DATA LENGTH IS LESS ANY SUBSEQUENT DATA MUST 00236000
  237. * BE MOVED INWARD. 00237000
  238. * 00238000
  239. * 4. THE KEYWORD AND DATA (PREFIXED BY THE VARIABLE LNGTH 00239000
  240. * RECORD DESCRIPTOR) ARE STORED IN THE OUTPUT AREA. 00240000
  241. * RETURN TO CALLER. 00241000
  242. * 00242000
  243. * ERROR MESSAGES: 00243000
  244. * 00244000
  245. * DMMPRO100S ERROR 'NNN' READING FILE 'FNAME FTYPE FM' 00245000
  246. * DMMPRO200S ERROR 'NNN' WRITING FILE 'FNAME FTYPE FM' 00246000
  247. * 00247000
  248. *************************************************************** 00248000
  249. EJECT 00249000
  250. DMMPRO CSECT @VA04250 00250000
  251. USING DMMPRO,R15 TEMPORARY ADDRESSABILITY @VA04250 00251000
  252. B START GO AROUND EYECATCHER @VA04250 00252000
  253. DS 0D @VA04250 00253000
  254. MODNAME DC C'DMMPRO ' EYECATCHER @VA04250 00254000
  255. RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00255000
  256. START STM R14,R12,12(R13) SAVE CALLER'S REGS @VA04250 00256000
  257. LR R12,R15 SET OUR BASE @VA04250 00257000
  258. DROP R15 @VA04250 00258000
  259. USING DMMPRO,R12 @VA04250 00259000
  260. USING INTSECT,R2 AREA FOR DATE,TIME,CPU, ETC. @VA04250 00260000
  261. USING MSGCNTRL,R7 DSECT DESCRIBING MSGP DATA FORMAT@VA04250 00261000
  262. USING NUCON,R0 CMS LOW CORE DSECT @VA04250 00262000
  263. LR R11,R12 SET UP SECOND BASE @VA04250 00263000
  264. LA R11,TWOK(R11) @VA04250 00264000
  265. LA R11,TWOK(R11) @VA04250 00265000
  266. USING DMMPRO+FOURK,R11 SECOND BASE @VA04250 00266000
  267. LA R10,TWOK(R11) SET UP THIRD BASE @VA04250 00267000
  268. LA R10,TWOK(R10) @VA04250 00268000
  269. USING DMMPRO+EIGHTK,R10 THIRD BASE @VA04250 00269000
  270. ST R13,SAVEBACK SAVE CALLER'S SAVE AREA @VA04250 00270000
  271. LA R13,SAVEAREA POINT TO OUR OWN SAVE AREA @VA04250 00271000
  272. *************************************************************** 00272000
  273. * DETERMINE WHETHER THIS ACTIVITY IS TO REPORT A NEW PROBLEM OR 00273000
  274. * PERTAINS TO AN ALREADY EXISTING PROBLEM. 00274000
  275. *************************************************************** 00275000
  276. EXIST BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00276000
  277. * -------------------------- 00277000
  278. LA R7,MSGEXIST 'THIS PERTAIN TO AN EXISTING PROB@VA04250 00278000
  279. * -------------------------- 00279000
  280. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00280000
  281. MVI ENTSW,ENTON REPROMPT NOT TO BE ALLOWED HERE @VA04250 00281000
  282. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00282000
  283. CLI 0(R1),YES YES? @VA04250 00283000
  284. BE OLDPROB OLD PROBLEM @VA04250 00284000
  285. CLI 0(R1),NO NO? @VA04250 00285000
  286. BNE EXIST NOT A VALID INPUT, GO REPROMPT @VA04250 00286000
  287. MVI DBYTE,NORMAL RESET REPROMPTING IF IT IS ACTIVE@VA04250 00287000
  288. *************************************************************** 00288000
  289. * GET A PROBLEM NUMBER. WE'LL REWRITE IT AT END. 00289000
  290. *************************************************************** 00290000
  291. RPNUM LA R7,SUMMFILE POINT TO FN FT FM OF PROB NUMBER @VA04250 00291000
  292. FSREAD (R7),RECNO=1,ERROR=SUMERRR,BSIZE=80, @VA04250X00292000
  293. BUFFER=PNUMIN @VA04250 00293000
  294. FSCLOSE (R7) @VA04250 00294000
  295. PNRETRY MVC XXXXX(PLENGTH),PNUMIN SAVE REPORT PROBLEM NUMBER@VA04250 00295000
  296. RPNUM2 L R2,INTPT POINT TO INTERNAL DATA AREA @VA04250 00296000
  297. MVC INTPNUM(PLENGTH),XXXXX SAVE PROBLEM NUMBER @VA04250 00297000
  298. LA R7,PRBXXXXX POINT FN FT FM OF REPORT @VA04250 00298000
  299. FSSTATE (R7) DOES THE REPORT ALREADY EXIST? @VA04250 00299000
  300. LTR R15,R15 CHECK RETURN CODE @VA04250 00300000
  301. BNZ MAINLINE CONTINUE IF REPORT DOES NOT EXIST@VA04250 00301000
  302. MVI PNSWITCH,PNSWON INDICATE LOOKING FOR OPEN NUMBER@VA04250 00302000
  303. B PNUPDATE GO UPDATE PROBLEM NUMBER @VA04250 00303000
  304. *************************************************************** 00304000
  305. * MAINLINE PROMPTING ROUTINE 00305000
  306. *************************************************************** 00306000
  307. MAINLINE CLI OLDSW,OLDON PROCESSING AN OLD PROBLEM? @VA04250 00307000
  308. BE GETSDATA YES, GO GET SUPPORTING DATA FIRST@VA04250 00308000
  309. NEWPROB BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00309000
  310. * -------------------------- 00310000
  311. LA R7,MSGPCPU 'PROBLEM OCCUR ON THIS CPU?' @VA04250 00311000
  312. * -------------------------- 00312000
  313. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00313000
  314. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00314000
  315. MVI DBYTE,NORMAL THIS IS A DECISION, DON'T REPRMPT@VA04250 00315000
  316. CLI 0(R1),NO NOT THIS CPU @VA04250 00316000
  317. BE GETCPU GO PROMPT FOR IT @VA04250 00317000
  318. CLI 0(R1),YES YES? @VA04250 00318000
  319. BNE NEWPROB NO, GO FORCE VALID INPUT @VA04250 00319000
  320. *************************************************************** 00320000
  321. * USING STIDP INSTRUCTION GET CPU TYPE AND SERIAL 00321000
  322. *************************************************************** 00322000
  323. STIDP WKDWD GET THIS CPU TYPE AND SERIAL. @VA04250 00323000
  324. L R2,INTPT POINT TO INTERNAL DATA AREA @VA04250 00324000
  325. L R3,WKDWD2 GET TYPE OF CPU. @VA04250 00325000
  326. SRL R3,12 POSITION IT @VA04250 00326000
  327. ST R3,WKDWD2 SET UP FOR UNPACK @VA04250 00327000
  328. OI WKDWDEND,PACKMASK ALL SET NOW @VA04250 00328000
  329. UNPK INTCPUT(THREE),WKDWD+SIX(TWO) GET READABLE TYPE @VA04250 00329000
  330. MVI WKDWD2,PACKMASK PREPARE SERIAL FOR UNPACK @VA04250 00330000
  331. UNPK WKDWD(SEVEN),WKDWD+DISP1(DISP4) GET SERIAL @VA04250 00331000
  332. MVI WKDWD,CHARZERO SIX DIGITS OF SERIAL SO PREFIX @VA04250 00332000
  333. MVC INTSER,WKDWD MOVE SER OUT @VA04250 00333000
  334. B GETSDATA CONTINUE INTERNAL DATA @VA04250 00334000
  335. *************************************************************** 00335000
  336. * PROMPT FOR CPU TYPE AND SERIAL 00336000
  337. *************************************************************** 00337000
  338. GETCPU BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00338000
  339. * -------------------------- 00339000
  340. LA R7,MSGCPU 'ENTER CPU TYPE' @VA04250 00340000
  341. * -------------------------- 00341000
  342. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00342000
  343. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00343000
  344. LTR R0,R0 ANYTHING ENTERED @VA04250 00344000
  345. BZ GETCPU NO, FORCE HIM TO ENTER @VA04250 00345000
  346. L R2,INTPT ADDRESSABILITY FOR INTMNT AREA @VA04250 00346000
  347. MVC INTCPUT,0(R1) MOVE CPU TYPE TO OUTPUT @VA04250 00347000
  348. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00348000
  349. BE RESTORE YES, GO RESTORE @VA04250 00349000
  350. GETSER BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00350000
  351. * -------------------------------- 00351000
  352. LA R7,MSGSER 'ENTER CPU SERIAL' @VA04250 00352000
  353. * -------------------------------- 00353000
  354. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00354000
  355. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00355000
  356. LTR R0,R0 ANYTHING ENTERED? @VA04250 00356000
  357. BZ GETSER FORCE ENTRY @VA04250 00357000
  358. L R2,INTPT ADDRESSABILITY FOR INTSECT @VA04250 00358000
  359. MVC INTSER,0(R1) MOVE IT TO OUTPUT (INTSECT) @VA04250 00359000
  360. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00360000
  361. BE RESTORE YES, GO RESTORE @VA04250 00361000
  362. *************************************************************** 00362000
  363. * GET SUPPLEMENTARY FILES AND DESCRIPTIONS 00363000
  364. *************************************************************** 00364000
  365. GETSDATA BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00365000
  366. SR R2,R2 ZERO WORK @VA04250 00366000
  367. L R3,SUPPLNTH POINT TO CUMMULATIVE OUT LENGTH @VA04250 00367000
  368. STH R2,0(R3) CLEAR IT IN CASE OF REPROMPT @VA04250 00368000
  369. L R2,SUPPPT POINT TO SUPPORTING DATA AREA @VA04250 00369000
  370. LA R3,FIVECARD CLEAR 5 'CARDS' @VA04250 00370000
  371. MVI 0(R2),BLANK BLANK TO FIRST BYTE @VA04250 00371000
  372. GETSCLR MVC DISP1(CARDLEN,R2),0(R2) CLEAR ALL OF 'CARD' @VA04250 00372000
  373. LA R2,CARDLEN(R2) POINT TO NEXT AREA TO BE CLEARED @VA04250 00373000
  374. BCT R3,GETSCLR CLEAR ALL 5 @VA04250 00374000
  375. MVC SUPPCURR,SUPPPT RESET CURR PTR IF REPROMPT @VA04250 00375000
  376. MVC SUPPBACK,SUPPPT RESET TEMP PTR IF REPROMPT @VA04250 00376000
  377. * ---------------------------- 00377000
  378. LA R7,MSGSDATA 'ENTER LOCATION OF SUPPORT DATA' @VA04250 00378000
  379. * ---------------------------- 00379000
  380. LA R9,GETS1 DON'T DO READ YET @VA04250 00380000
  381. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00381000
  382. GETS1 BALR R5,0 RETURN ADDRESS FOR REPROMPT @VA04250 00382000
  383. * ---------------------------- 00383000
  384. LA R7,MSGSDAT2 'ENTER FN FT FM + DESCRIP OR NULL@VA04250 00384000
  385. * ---------------------------- 00385000
  386. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00386000
  387. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00387000
  388. CLI DBYTE,REPROMPT IN REPROMPTING? @VA04250 00388000
  389. BNE SUPPD2 NO @VA04250 00389000
  390. MVC SUPPCURR,SUPPBACK RESET CURRENT PTR TO PREVIOUS @VA04250 00390000
  391. L R2,SUPPCURR POINT TO RECORD @VA04250 00391000
  392. MVI 0(R2),BLANK PREP TO CLEAR LAST ENTERED DATA @VA04250 00392000
  393. MVC DISP1(CARDLEN-DISP1,R2),0(R2) CLEAR IT @VA04250 00393000
  394. SUPPD2 LTR R0,R0 ANYTHING ENTERED? @VA04250 00394000
  395. BNZ SUPPD3 YES @VA04250 00395000
  396. SUPPD4 L R2,SUPPLNTH POINT TO HALFWD LENGTH FIELD @VA04250 00396000
  397. L R3,SUPPPT POINT TO SUPPORTING DATA AREA @VA04250 00397000
  398. L R4,SUPPCURR POINT TO CURRENT POSITION @VA04250 00398000
  399. SR R4,R3 GET LENGTH @VA04250 00399000
  400. STH R4,0(R2) STORE IT FOR LATER @VA04250 00400000
  401. B DBYTECHK GO CHECK IF IN REPROMPT @VA04250 00401000
  402. SUPPD3 LR R2,R0 SAVE LENGTH @VA04250 00402000
  403. L R3,SUPPCURR GET CURRENT SUPP POINTER @VA04250 00403000
  404. BCTR R2,0 FOR EXECUTE @VA04250 00404000
  405. EX R2,SUPPMVC MOVE USER ENTERED DATA TO OUTPUT @VA04250 00405000
  406. MVC SUPPBACK,SUPPCURR SAVE PTR TO THIS FOR REPROMPT @VA04250 00406000
  407. LA R3,CARDLEN(R3) POINT TO NEXT 'CARD' OF OUTPUT @VA04250 00407000
  408. ST R3,SUPPCURR SAVE NEXT AVAIL SLOT FOR OUTPUT @VA04250 00408000
  409. CLI DBYTE,REPROMPT IN REPROMPTING? @VA04250 00409000
  410. BE SUPPD4 YES, GO RESTORE TO PREV PROMPT @VA04250 00410000
  411. L R2,SUPPEND POINT TO END OF SUPP DATA AREA @VA04250 00411000
  412. CR R3,R2 AT END YET? @VA04250 00412000
  413. BL GETS1 NO, ALLOW 5 CARDS OF SUPP DATA @VA04250 00413000
  414. B SUPPD4 GO CLEAN UP @VA04250 00414000
  415. SUPPMVC MVC 0(0,R3),0(R1) SUBJECT OF EXECUTE @VA04250 00415000
  416. DBYTECHK CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00416000
  417. BE RESTORE YES, GO RESTORE @VA04250 00417000
  418. CLI OLDSW,OLDON PROCESSING AN OLD PROBLEM? @VA04250 00418000
  419. BE TEXTENTR YES, GO GET TEXT NEXT @VA04250 00419000
  420. *************************************************************** 00420000
  421. * GET SEVERITY TO BE ASSIGNED TO THIS PROBLEM 00421000
  422. *************************************************************** 00422000
  423. GETSEV BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00423000
  424. * ---------------------------- 00424000
  425. LA R7,MSGSEV 'ENTER SEVERITY CODE (1 TO 4)' @VA04250 00425000
  426. * ---------------------------- 00426000
  427. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00427000
  428. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00428000
  429. L R2,INTPT ADDRESSABILITY FOR INTSECT @VA04250 00429000
  430. LTR R0,R0 ANYTHING ENTERED? @VA04250 00430000
  431. BZ SVDFLT NO, GO USE DEFAULT @VA04250 00431000
  432. CLI 0(R1),FOUR CHECK GT 4 SEVERITY @VA04250 00432000
  433. BH GETSEV THAT'S NO GOOD @VA04250 00433000
  434. CLI 0(R1),ONE CHECK EBCDIC LESS THAN 1 @VA04250 00434000
  435. BL GETSEV THAT'S NO GOOD EITHER @VA04250 00435000
  436. MVC INTSEV,0(R1) STORE IT IN INTERNAL AREA @VA04250 00436000
  437. B SVDB GO CHECK IF REPROMPTING @VA04250 00437000
  438. SVDFLT MVI INTSEV,SEVDFLT DEFAULT SEVERITY OF BLANK @VA04250 00438000
  439. SVDB CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00439000
  440. BE RESTORE YES, GO RESTORE @VA04250 00440000
  441. *************************************************************** 00441000
  442. * ASK WHETHER A BYPASS IS REQUIRED FOR THIS PROBLEM 00442000
  443. *************************************************************** 00443000
  444. GETBYPAS BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00444000
  445. * ---------------------------- 00445000
  446. LA R7,MSGBYPAS 'IS BYPASS REQUESTED? @VA04250 00446000
  447. * ---------------------------- 00447000
  448. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00448000
  449. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00449000
  450. L R2,INTPT ADDRESSABILITY FOR INTSECT @VA04250 00450000
  451. LTR R0,R0 ANYTHING ENTERED? @VA04250 00451000
  452. BZ BYDFLT NO, USE DEFAULT @VA04250 00452000
  453. CLI 0(R1),NO N? (NO?) @VA04250 00453000
  454. BE BYMVC OR @VA04250 00454000
  455. CLI 0(R1),YES Y? (YES?) @VA04250 00455000
  456. BNE GETBYPAS ONLY ARE VALID. @VA04250 00456000
  457. BYMVC MVC INTBYPS,0(R1) MOVE WHAT WAS ENTERED TO INTSECT @VA04250 00457000
  458. B BYDB GO CHECK IF REPROMPTING @VA04250 00458000
  459. BYDFLT MVI INTBYPS,NO DEFAULT OF NO @VA04250 00459000
  460. BYDB CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00460000
  461. BE RESTORE YES, GO RESTORE @VA04250 00461000
  462. *************************************************************** 00462000
  463. * GET COMPONENT ID (EG 5749DMS00) 00463000
  464. *************************************************************** 00464000
  465. GETCID BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00465000
  466. * ---------------------------- 00466000
  467. LA R7,MSGCID 'ENTER COMPONENT ID' @VA04250 00467000
  468. * ---------------------------- 00468000
  469. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00469000
  470. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00470000
  471. BAL R8,KYINSERT PUT CID IN KEYWORDED AREA @VA04250 00471000
  472. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00472000
  473. BE RESTORE YES, GO RESTORE @VA04250 00473000
  474. *************************************************************** 00474000
  475. * GET PLC LEVEL OF SYSTEM 00475000
  476. *************************************************************** 00476000
  477. GETPLC BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00477000
  478. * ---------------------------- 00478000
  479. LA R7,MSGPLC 'ENTER PLC LEVEL' @VA04250 00479000
  480. * ---------------------------- 00480000
  481. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00481000
  482. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00482000
  483. LTR R0,R0 ANYTHING ENTERED? @VA04250 00483000
  484. BZ PLCDBYT NO @VA04250 00484000
  485. LA R2,PLCCNT THREE CHAR PLC LEVEL @VA04250 00485000
  486. CR R2,R0 THREE CHARS ENTERED? @VA04250 00486000
  487. BE PLC3 YES @VA04250 00487000
  488. BCTR R1,0 CHECK FOR TWO THEN @VA04250 00488000
  489. MVI 0(R1),CHARZERO PUT IN LEADING ZERO @VA04250 00489000
  490. BCTR R2,0 SUBTRACT 1 FROM R2 @VA04250 00490000
  491. CR R2,R0 IS IT INDEED 2? @VA04250 00491000
  492. BE PLC1 THAT'S NICE @VA04250 00492000
  493. BCTR R1,0 ONE MORE BYTE IN FRONT OF DATA @VA04250 00493000
  494. MVI 0(R1),CHARZERO INSERT ANOTHER LEADING ZERO @VA04250 00494000
  495. PLC1 LA R0,PLCCNT THE RESULT IS THREE CHARS ALWAYS @VA04250 00495000
  496. PLC3 BAL R8,KYINSERT PUT PLC IN KEYWORDED AREA @VA04250 00496000
  497. L R2,INTPT POINT TO INTERNAL DATA AREA @VA04250 00497000
  498. MVC INTPLC,0(R1) SAVE PLC LEVEL OF SYSTEM @VA04250 00498000
  499. PLCDBYT CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00499000
  500. BE RESTORE YES, GO RESTORE @VA04250 00500000
  501. *************************************************************** 00501000
  502. * GET SCP LEVEL (RELEASE LEVEL) OF SYSTEM 00502000
  503. *************************************************************** 00503000
  504. GETSCPLV BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00504000
  505. * ---------------------------- 00505000
  506. LA R7,MSGSCP 'ENTER SCP LEVEL' @VA04250 00506000
  507. * ---------------------------- 00507000
  508. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00508000
  509. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00509000
  510. LTR R0,R0 ANYTHING ENTERED? @VA04250 00510000
  511. BZ SCPDBYT NO @VA04250 00511000
  512. LA R2,SCPCNT THREE CHARS OF SCP LEVEL DESIRED @VA04250 00512000
  513. CR R0,R2 DID HE ENTER 3 CHARACTERS? @VA04250 00513000
  514. BE SCP3 SURE NUFF @VA04250 00514000
  515. MVI TWO(R1),CHARZERO TRAILING ZERO @VA04250 00515000
  516. BCTR R2,0 SUBTRACT ONE FROM R2 @VA04250 00516000
  517. CR R0,R2 DID HE ENTER 2 CHARACTERS? @VA04250 00517000
  518. BE SCP1 YES @VA04250 00518000
  519. MVI DISP1(R1),CHARZERO ANOTHER TRAILING ZERO @VA04250 00519000
  520. SCP1 LA R0,SCPCNT THE RESULT IS ALWAYS THREE CHARS @VA04250 00520000
  521. SCP3 BAL R8,KYINSERT GO PUT RESULT IN KEYWORDED AREA @VA04250 00521000
  522. SCPDBYT CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00522000
  523. BE RESTORE YES, GO RESTORE @VA04250 00523000
  524. *************************************************************** 00524000
  525. * GET DATE FAILURE OCCURRED 00525000
  526. *************************************************************** 00526000
  527. GETDATE BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00527000
  528. * ---------------------------- 00528000
  529. LA R7,MSGDATE 'ENTER DATE OF FAILURE' @VA04250 00529000
  530. * ---------------------------- 00530000
  531. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00531000
  532. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00532000
  533. LTR R0,R0 ANYTHING ENTERED? @VA04250 00533000
  534. BZ DATDBYT NO @VA04250 00534000
  535. CLI TWO(R1),SLASH FORCE USER TO ENTER MM/DD/YY @VA04250 00535000
  536. BE GETDATE1 HE DID GOOD SO FAR @VA04250 00536000
  537. B GETDERR TELL HIM THE ERROR OF HIS WAYS @VA04250 00537000
  538. GETDATE1 CLI FIVE(R1),SLASH FORMAT SHOULD BE MM/DD/YY @VA04250 00538000
  539. BE GETDATE2 AND A MERRY OLD SOUL WAS HE @VA04250 00539000
  540. GETDERR MVI ENTSW,ENTON INHIBIT REPROMPT NUMBER @VA04250 00540000
  541. * ---------------------------- 00541000
  542. LA R7,MSGERR7 'ENTER EXACTLY AS SHOWN' @VA04250 00542000
  543. * ---------------------------- 00543000
  544. BAL R9,WRTERM GO TELL USER @VA04250 00544000
  545. B GETDATE GO BACK AND ASK AGAIN @VA04250 00545000
  546. GETDATE2 L R2,INTPT ADDRESSABILITY FOR INTSECT @VA04250 00546000
  547. MVC INTED,0(R1) MOVE DATA TO OUTPUT (INTSECT) @VA04250 00547000
  548. DATDBYT CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00548000
  549. BE RESTORE YES, GO RESTORE @VA04250 00549000
  550. *************************************************************** 00550000
  551. * GET MAJOR DESCRIPTION OF FAILURE 00551000
  552. *************************************************************** 00552000
  553. GETFAIL BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00553000
  554. * ---------------------------- 00554000
  555. LA R7,MSGFAIL 'SELECT KEYWORD... MSG ABEND ETC'@VA04250 00555000
  556. * ---------------------------- 00556000
  557. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00557000
  558. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00558000
  559. LTR R0,R0 ANYTHING ENTERED? @VA04250 00559000
  560. BZ GETFAIL USER MUST SELECT SOMETHING @VA04250 00560000
  561. CLI DBYTE,REPROMPT IN REPROMPT? @VA04250 00561000
  562. BNE GETFAIL1 NO @VA04250 00562000
  563. L R2,KYCURRPT GET CURRENT POINTER IN KEY OUTPUT@VA04250 00563000
  564. L R3,KYREST GET VALUE FROM BEFORE @VA04250 00564000
  565. CR R2,R3 SAME? @VA04250 00565000
  566. BE GETFAIL1 YES, NO OUTPUT YET @VA04250 00566000
  567. SR R2,R3 GET DIFFERENCE @VA04250 00567000
  568. BCTR R2,0 SET FOR EXECUTE @VA04250 00568000
  569. EX R2,KYRESET RESET OUTPUT DATA @VA04250 00569000
  570. ST R3,KYCURRPT RESTORE OLD POINTER @VA04250 00570000
  571. GETFAIL1 MVC KYREST,KYCURRPT SAVE LOCATION IN KEY OUT AREA @VA04250 00571000
  572. MVI DBYTE,NORMAL CONTINUE FROM HERE IF REPROMPT @VA04250 00572000
  573. CLC 0(CKLN2,R1),ABEND ABE? (ABEND) @VA04250 00573000
  574. BE ABERTN YES @VA04250 00574000
  575. CLC 0(CKLN2,R1),LOOP LOO? (LOOP) @VA04250 00575000
  576. BE LOORTN YES @VA04250 00576000
  577. CLC 0(CKLN1,R1),MSG MSG? (MESSAGE) @VA04250 00577000
  578. BE MSGRTN YES @VA04250 00578000
  579. CLC 0(CKLN2,R1),INCORR INC? (INCORROUT) @VA04250 00579000
  580. BE INCRTN YES @VA04250 00580000
  581. CLC 0(CKLN2,R1),WAIT WAI? (WAIT) @VA04250 00581000
  582. BE WAIRTN YES @VA04250 00582000
  583. CLC 0(CKLN2,R1),INFORM INF? (INFORMATION) @VA04250 00583000
  584. BE INFRTN YES @VA04250 00584000
  585. CLC 0(CKLN2,R1),DOCUM DOC? (DOCUMENTATION) @VA04250 00585000
  586. BE DOCRTN YES @VA04250 00586000
  587. CLC 0(CKLN2,R1),PERFORM PER? (PERFORMANCE) @VA04250 00587000
  588. BE PERRTN YES @VA04250 00588000
  589. B GETFAIL INVALID INPUT, GO ASK AGAIN @VA04250 00589000
  590. INTMVC MVC 0(0,R4),0(R1) @VA04250 00590000
  591. KYRESET XC 0(0,R3),0(R3) EXECUTED TO CLEAR INVAL KEYS @VA04250 00591000
  592. ************************************************************* 00592000
  593. EJECT 00593000
  594. ************************************************************* 00594000
  595. * ABEND TYPE REPORT 00595000
  596. ************************************************************* 00596000
  597. ABERTN BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00597000
  598. LA R0,L'ABEND LENGTH OF 'ABEND' @VA04250 00598000
  599. LA R1,ABEND POINTER TO CONSTANT OF 'ABEND' @VA04250 00599000
  600. BAL R8,KYINSERT GO PUT 'ABEND' IN VMFAILURE KYWD @VA04250 00600000
  601. * ---------------------------- 00601000
  602. LA R7,MSGENV 'ENTER OPERATING ENVIRONMENT' @VA04250 00602000
  603. * ---------------------------- 00603000
  604. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00604000
  605. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00605000
  606. BAL R8,KYINSERT PUT ENTERED DATA IN KEY AREA @VA04250 00606000
  607. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00607000
  608. BE RESTORE YES, GO RESTORE @VA04250 00608000
  609. ABEABCOD BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00609000
  610. * ---------------------------- 00610000
  611. LA R7,MSGABCOD 'ENTER ABEND CODE. EG 0CX' @VA04250 00611000
  612. * ---------------------------- 00612000
  613. ABEPRMT LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00613000
  614. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00614000
  615. LTR R0,R0 DID USER ENTER ANYTHING? @VA04250 00615000
  616. BZ ABEPRMT NO, FORCE ENTRY OF SOMETHING @VA04250 00616000
  617. S R1,=F'5' WE'LL PREFIX THIS WITH 'ABEND' @VA04250 00617000
  618. MVC 0(L'ABEND,R1),ABEND MOVE IN DATA OF 'ABEND' @VA04250 00618000
  619. A R0,=F'5' INCREASE DATA COUNT BY L'ABEND @VA04250 00619000
  620. BAL R8,KYINSERT GO PUT IN KEY AREA @VA04250 00620000
  621. ABEDB1 CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00621000
  622. BE RESTORE YES, GO RESTORE @VA04250 00622000
  623. ABEFMOD BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00623000
  624. * ---------------------------- 00624000
  625. LA R7,MSGFMOD 'ENTER FAILING MODULE IF KNOWN' @VA04250 00625000
  626. * ---------------------------- 00626000
  627. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00627000
  628. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00628000
  629. BAL R8,KYINSERT GO PUT DATA IN KEY AREA @VA04250 00629000
  630. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00630000
  631. BE RESTORE YES, GO RESTORE @VA04250 00631000
  632. ABEDISP BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00632000
  633. * ---------------------------- 00633000
  634. LA R7,MSGDSP 'ENTER DISPLAC WITHIN FAIL MOD' @VA04250 00634000
  635. * ---------------------------- 00635000
  636. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00636000
  637. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00637000
  638. BAL R8,KYINSERT GO PUT DATA IN KEY AREA @VA04250 00638000
  639. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00639000
  640. BE RESTORE YES, GO RESTORE @VA04250 00640000
  641. ABECALL BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00641000
  642. * ---------------------------- 00642000
  643. LA R7,MSGCALL 'ENTER CALLING MODULE IF KNOWN' @VA04250 00643000
  644. * ---------------------------- 00644000
  645. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00645000
  646. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00646000
  647. BAL R8,KYINSERT GO PUT DATA IN KEY AREA @VA04250 00647000
  648. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00648000
  649. BE RESTORE YES, GO RESTORE @VA04250 00649000
  650. ABECMS BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00650000
  651. * ---------------------------- 00651000
  652. LA R7,MSGCMD 'ENTER COMMAND WHICH CAUSED FAIL'@VA04250 00652000
  653. * ---------------------------- 00653000
  654. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00654000
  655. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00655000
  656. BAL R8,DASHIN INSERT DASHES @VA04250 00656000
  657. BAL R8,KYINSERT GO PUT DATA IN KEY AREA @VA04250 00657000
  658. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00658000
  659. BE RESTORE YES, GO RESTORE @VA04250 00659000
  660. B TEXTENTR GO GET TEXT OF PROBLEM @VA04250 00660000
  661. ************************************************************* 00661000
  662. EJECT 00662000
  663. ************************************************************* 00663000
  664. * MSG KEYWORD PROCESSING 00664000
  665. ************************************************************* 00665000
  666. MSGRTN BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00666000
  667. LA R0,L'MSG LENGTH OF DATA @VA04250 00667000
  668. LA R1,MSG POINT TO DATA @VA04250 00668000
  669. BAL R8,KYINSERT PUT VMFAILURE IN OUTPUT @VA04250 00669000
  670. * ---------------------------- 00670000
  671. LA R7,MSGMSG 'ENTER MESSAGE NUMBER' @VA04250 00671000
  672. * ---------------------------- 00672000
  673. MESPRMT LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00673000
  674. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00674000
  675. LTR R0,R0 ANYTHING ENTERED? @VA04250 00675000
  676. BZ MESPRMT NO, FORCE ENTRY OF MESSAGE @VA04250 00676000
  677. S R1,=F'2' WE'LL PREFIX THIS WITH 'MS' (MSG)@VA04250 00677000
  678. MVC 0(L'MSG,R1),MSG MOVE IN DATA OF 'MS' @VA04250 00678000
  679. A R0,=F'2' INCREASE DATA COUNT BY L'MSG @VA04250 00679000
  680. BAL R8,KYINSERT GO PUT IN KEY AREA @VA04250 00680000
  681. MESDB1 CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00681000
  682. BE RESTORE YES, GO RESTORE @VA04250 00682000
  683. MESENV BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00683000
  684. * ---------------------------- 00684000
  685. LA R7,MSGENV 'ENTER OPERATING ENVIRONMENT' @VA04250 00685000
  686. * ---------------------------- 00686000
  687. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00687000
  688. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00688000
  689. BAL R8,KYINSERT GO PUT IN KEY AREA @VA04250 00689000
  690. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00690000
  691. BE RESTORE YES, GO RESTORE @VA04250 00691000
  692. MESRCODE BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00692000
  693. * ---------------------------- 00693000
  694. LA R7,MSGRCODE 'ENTER RETURN CODE IF APPLICABLE'@VA04250 00694000
  695. * ---------------------------- 00695000
  696. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00696000
  697. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00697000
  698. BAL R8,KYINSERT GO PUT IN KEY AREA @VA04250 00698000
  699. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00699000
  700. BE RESTORE YES, GO RESTORE @VA04250 00700000
  701. MESPREV BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00701000
  702. * ---------------------------- 00702000
  703. LA R7,MSGPREV 'ENTER PREVIOUS MESSAGE NUMBER' @VA04250 00703000
  704. * ---------------------------- 00704000
  705. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00705000
  706. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00706000
  707. BAL R8,KYINSERT GO PUT DATA IN KEY AREA @VA04250 00707000
  708. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00708000
  709. BE RESTORE YES, GO RESTORE @VA04250 00709000
  710. MESCMD BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00710000
  711. * ---------------------------- 00711000
  712. LA R7,MSGCMD 'ENTER CMD WHICH CAUSED FAILURE' @VA04250 00712000
  713. * ---------------------------- 00713000
  714. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00714000
  715. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00715000
  716. BAL R8,DASHIN INSERT DASHES @VA04250 00716000
  717. BAL R8,KYINSERT GO PUT DATA IN KEY AREA @VA04250 00717000
  718. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00718000
  719. BE RESTORE YES, GO RESTORE @VA04250 00719000
  720. B TEXTENTR GO ASK USER FOR TEXTUAL INFO @VA04250 00720000
  721. ************************************************************* 00721000
  722. EJECT 00722000
  723. ************************************************************* 00723000
  724. * DOCUMENTATION TYPE REPORT 00724000
  725. ************************************************************* 00725000
  726. DOCRTN BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00726000
  727. LA R0,L'DOCUM LENGTH OF DATA @VA04250 00727000
  728. LA R1,DOCUM POINTER TO DATA @VA04250 00728000
  729. BAL R8,KYINSERT PUT VMFAILURE=DOCUMENTATION @VA04250 00729000
  730. * ---------------------------- 00730000
  731. LA R7,MSGDOC 'ENTER PUB PLC OR PTF FICHE' @VA04250 00731000
  732. * ---------------------------- 00732000
  733. DOCPRMT LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00733000
  734. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00734000
  735. LTR R0,R0 ANYTHING ENTERED? @VA04250 00735000
  736. BZ DOCPRMT NO, FORCE A CHOICE @VA04250 00736000
  737. BAL R8,KYINSERT PUT IN KEY AREA @VA04250 00737000
  738. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00738000
  739. BE RESTORE YES, GO RESTORE @VA04250 00739000
  740. DOCPUB BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00740000
  741. * ---------------------------- 00741000
  742. LA R7,MSGPUB 'ENTER PUBLICATION NUMBER' @VA04250 00742000
  743. * ---------------------------- 00743000
  744. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00744000
  745. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00745000
  746. BAL R8,KYINSERT GO PUT DATA IN KEY AREA @VA04250 00746000
  747. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00747000
  748. BE RESTORE YES, GO RESTORE @VA04250 00748000
  749. DOCPAGE BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00749000
  750. * ---------------------------- 00750000
  751. LA R7,MSGPAGE 'ENTER PAGE NUMBER' @VA04250 00751000
  752. * ---------------------------- 00752000
  753. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00753000
  754. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00754000
  755. BAL R8,KYINSERT GO PUT KEY AND DATA IN KEY AREA @VA04250 00755000
  756. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00756000
  757. BE RESTORE YES, GO RESTORE @VA04250 00757000
  758. B TEXTENTR GO ASK USER FOR TEXTUAL INFO @VA04250 00758000
  759. ************************************************************* 00759000
  760. EJECT 00760000
  761. ************************************************************* 00761000
  762. * INCORRECT OUTPUT TYPE REPORT 00762000
  763. ************************************************************* 00763000
  764. INCRTN BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00764000
  765. LA R0,L'INCORR LENGTH OF DATA @VA04250 00765000
  766. LA R1,INCORR POINTER TO DATA @VA04250 00766000
  767. BAL R8,KYINSERT VMFAILURE=INCORROUT IN KEY AREA @VA04250 00767000
  768. * ---------------------------- 00768000
  769. LA R7,MSGENV 'ENTER OPERATING ENVIRONMENT' @VA04250 00769000
  770. * ---------------------------- 00770000
  771. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00771000
  772. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00772000
  773. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00773000
  774. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00774000
  775. BE RESTORE YES, GO RESTORE @VA04250 00775000
  776. INCINC BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00776000
  777. * ---------------------------- 00777000
  778. LA R7,MSGINC 'SELECT DUP,MISSING,FUNCT,ETC.' @VA04250 00778000
  779. * ---------------------------- 00779000
  780. INCPRMT LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00780000
  781. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00781000
  782. LTR R0,R0 ANYTHING ENTERED? @VA04250 00782000
  783. BZ INCINC NO, FORCE A CHOICE @VA04250 00783000
  784. LA R2,INCSPELL POINT TO ALLOWED INPUT VALUES @VA04250 00784000
  785. INCLOOP CLC 0(INCLEN,R2),0(R1) VALID INPUT FOUND? @VA04250 00785000
  786. BE INCKYIN YES @VA04250 00786000
  787. LA R2,INCLEN(R2) POINT TO NEXT ALLOWED INPUT VALUE@VA04250 00787000
  788. CLI 0(R2),INCEND ANY MORE VALID ENTRIES? @VA04250 00788000
  789. BE INCINC NO, GO PROMPT AGAIN @VA04250 00789000
  790. B INCLOOP CONTINUE CHECKING @VA04250 00790000
  791. INCKYIN BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00791000
  792. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00792000
  793. BE RESTORE YES, GO RESTORE @VA04250 00793000
  794. INCCMD BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00794000
  795. * ---------------------------- 00795000
  796. LA R7,MSGCMD 'ENTER COMMAND WHICH CAUSED FAIL'@VA04250 00796000
  797. * ---------------------------- 00797000
  798. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00798000
  799. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00799000
  800. BAL R8,DASHIN INSERT DASHES @VA04250 00800000
  801. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00801000
  802. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00802000
  803. BE RESTORE YES, GO RESTORE @VA04250 00803000
  804. INCDEV BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00804000
  805. * ---------------------------- 00805000
  806. LA R7,MSGDEV 'ENTER DEVICE TYPE IF APPLIC' @VA04250 00806000
  807. * ---------------------------- 00807000
  808. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00808000
  809. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00809000
  810. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00810000
  811. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00811000
  812. BE RESTORE YES, GO RESTORE @VA04250 00812000
  813. B TEXTENTR GO ASK USER FOR TEXTUAL INFO @VA04250 00813000
  814. ************************************************************* 00814000
  815. EJECT 00815000
  816. ************************************************************* 00816000
  817. * INFORMATION TYPE REPORT 00817000
  818. ************************************************************* 00818000
  819. INFRTN BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00819000
  820. LA R0,L'INFORM LENGTH OF DATA @VA04250 00820000
  821. LA R1,INFORM POINTER TO DATA @VA04250 00821000
  822. BAL R8,KYINSERT VMFAILURE=INFORMATION TO KEY AREA@VA04250 00822000
  823. B TEXTENTR GO ASK USER FOR TEXTUAL INFO @VA04250 00823000
  824. ************************************************************* 00824000
  825. EJECT 00825000
  826. ************************************************************* 00826000
  827. * LOOP TYPE REPORT 00827000
  828. ************************************************************* 00828000
  829. LOORTN BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00829000
  830. LA R0,L'LOOP LENGTH OF DATA @VA04250 00830000
  831. LA R1,LOOP POINTER TO DATA @VA04250 00831000
  832. BAL R8,KYINSERT VMFAILURE=LOOP TO KEY AREA @VA04250 00832000
  833. * ---------------------------- 00833000
  834. LA R7,MSGENV 'ENTER OPERATING ENVIRONMENT' @VA04250 00834000
  835. * ---------------------------- 00835000
  836. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00836000
  837. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00837000
  838. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00838000
  839. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00839000
  840. BE RESTORE YES, GO RESTORE @VA04250 00840000
  841. LOOSTATE BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00841000
  842. * ---------------------------- 00842000
  843. LA R7,MSGSTATE 'ENTER DISABLED OR ENABLED' @VA04250 00843000
  844. * ---------------------------- 00844000
  845. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00845000
  846. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00846000
  847. CLC STATE1,0(R1) ENABLED? @VA04250 00847000
  848. BE LOOKY YES, O.K. @VA04250 00848000
  849. CLC STATE2,0(R1) DISABLED? @VA04250 00849000
  850. BNE LOOSTATE NO, GO FORCE VALID RESPONSE @VA04250 00850000
  851. LOOKY BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00851000
  852. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00852000
  853. BE RESTORE YES, GO RESTORE @VA04250 00853000
  854. LOOMODS BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00854000
  855. * ---------------------------- 00855000
  856. LA R7,MSGLMOD 'ENTER KNOWN MODULES WITHIN LOOP'@VA04250 00856000
  857. * ---------------------------- 00857000
  858. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00858000
  859. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00859000
  860. BAL R8,DASHIN INSERT DASHES BETWEEN ENTRIES @VA04250 00860000
  861. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00861000
  862. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00862000
  863. BE RESTORE YES, GO RESTORE @VA04250 00863000
  864. L R6,TEXTCURR ADDR OF WHERE LOOP ADDRS WILL GO @VA04250 00864000
  865. LOOADDRS BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00865000
  866. * ---------------------------- 00866000
  867. LA R7,MSGLADDR 'ENTER LOOP ADDRESSES' @VA04250 00867000
  868. * ---------------------------- 00868000
  869. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00869000
  870. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00870000
  871. BAL R8,DASHIN INSERT DASHES BETWEEN ENTRIES @VA04250 00871000
  872. LTR R0,R0 ANYTHING ENTERED? @VA04250 00872000
  873. BZ LOOBYT NO @VA04250 00873000
  874. LR R2,R6 POINTER TO WHERE OUTPUT IS TO GO @VA04250 00874000
  875. MVC 0(FIFTEEN,R2),=C'LOOP ADDRESSES=' @VA04250 00875000
  876. LR R3,R0 GET LENGTH OF DATA @VA04250 00876000
  877. BCTR R3,0 SET FOR EXECUTE @VA04250 00877000
  878. EX R3,LOOMVC DO DATA MOVE @VA04250 00878000
  879. LA R2,CARDLEN(R2) 80 BYTE RECORDS IN TEXT AREA @VA04250 00879000
  880. ST R2,TEXTCURR SAVE NEW CURRENT POINTER @VA04250 00880000
  881. B LOOBYT CONTINUE @VA04250 00881000
  882. LOOMVC MVC FIFTEEN(0,R2),0(R1) SUBJECT OF EXECUTE @VA04250 00882000
  883. LOOBYT CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00883000
  884. BE RESTORE YES, GO RESTORE @VA04250 00884000
  885. L R6,TEXTCURR POINT TO NEXT OUTPUT RECORD @VA04250 00885000
  886. LOOCPSW BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00886000
  887. * ---------------------------- 00887000
  888. LA R7,MSGCPSW 'ENTER CURRENT PSW' @VA04250 00888000
  889. * ---------------------------- 00889000
  890. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00890000
  891. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00891000
  892. LR R2,R6 POINT TO TEXT AREA @VA04250 00892000
  893. LTR R0,R0 ANYTHING ENTERED? @VA04250 00893000
  894. BZ LOODBYT NO @VA04250 00894000
  895. MVC 0(CPSWLN,R2),=C'CURRENT PSW=' @VA04250 00895000
  896. MVC CPSWLN(PSWL,R2),0(R1) MOVE PSW TO TEXT AREA @VA04250 00896000
  897. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00897000
  898. BE RESTORE YES, GO RESTORE @VA04250 00898000
  899. LA R2,CARDLEN(R2) INCREMENT CURRENT TEXT POINTER @VA04250 00899000
  900. ST R2,TEXTCURR SAVE FOR NEXT USER @VA04250 00900000
  901. LOODBYT CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00901000
  902. BE RESTORE YES, GO RESTORE @VA04250 00902000
  903. LOOCMD BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00903000
  904. * ---------------------------- 00904000
  905. LA R7,MSGCMD 'ENTER COMMAND WHICH CAUSED FAIL'@VA04250 00905000
  906. * ---------------------------- 00906000
  907. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00907000
  908. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00908000
  909. BAL R8,DASHIN INSERT DASHES @VA04250 00909000
  910. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00910000
  911. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00911000
  912. BE RESTORE YES, GO RESTORE @VA04250 00912000
  913. B TEXTENTR @VA04250 00913000
  914. ************************************************************* 00914000
  915. EJECT 00915000
  916. ************************************************************* 00916000
  917. * PERFORMANCE TYPE REPORT 00917000
  918. ************************************************************* 00918000
  919. PERRTN BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00919000
  920. LA R0,L'PERFORM LENGTH OF DATA @VA04250 00920000
  921. LA R1,PERFORM POINTER TO DATA @VA04250 00921000
  922. BAL R8,KYINSERT GO PUT KYWD VMFAILURE IN OUTPUT @VA04250 00922000
  923. * ---------------------------- 00923000
  924. LA R7,MSGENV 'ENTER OPERATING ENVIRONMENT' @VA04250 00924000
  925. * ---------------------------- 00925000
  926. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00926000
  927. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00927000
  928. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00928000
  929. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00929000
  930. BE RESTORE YES, GO RESTORE @VA04250 00930000
  931. PERPERF BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00931000
  932. * ---------------------------- 00932000
  933. LA R7,MSGPERF 'ENTER NATURE OF DEGRADATION' @VA04250 00933000
  934. * ---------------------------- 00934000
  935. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00935000
  936. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00936000
  937. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00937000
  938. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00938000
  939. BE RESTORE YES, GO RESTORE @VA04250 00939000
  940. B TEXTENTR GO PROMPT FOR TEXT DESCRIPTION @VA04250 00940000
  941. ************************************************************* 00941000
  942. EJECT 00942000
  943. ************************************************************* 00943000
  944. * WAIT TYPE REPORT 00944000
  945. ************************************************************* 00945000
  946. WAIRTN BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00946000
  947. LA R0,L'WAIT LENGTH OF DATA @VA04250 00947000
  948. LA R1,WAIT POINTER TO DATA @VA04250 00948000
  949. BAL R8,KYINSERT VMFAILURE=WAIT TO KEY AREA @VA04250 00949000
  950. * ---------------------------- 00950000
  951. LA R7,MSGENV 'ENTER OPERATING ENVIRONMENT' @VA04250 00951000
  952. * ---------------------------- 00952000
  953. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00953000
  954. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00954000
  955. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00955000
  956. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00956000
  957. BE RESTORE YES, GO RESTORE @VA04250 00957000
  958. L R6,TEXTCURR POINTER TO NEXT OUTPUT RECORD @VA04250 00958000
  959. WAICPSW BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00959000
  960. * ---------------------------- 00960000
  961. LA R7,MSGCPSW 'ENTER CURRENT PSW' @VA04250 00961000
  962. * ---------------------------- 00962000
  963. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00963000
  964. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00964000
  965. LTR R0,R0 ANYTHING ENTERED? @VA04250 00965000
  966. BZ WAIDBYT NO @VA04250 00966000
  967. LR R2,R6 TEST AREA POINTER FOR THIS @VA04250 00967000
  968. MVC 0(CPSWLN,R2),=C'CURRENT PSW=' @VA04250 00968000
  969. MVC CPSWLN(SIXTEEN,R2),0(R1) MOVE DATA TO TEXT AREA @VA04250 00969000
  970. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00970000
  971. BE RESTORE YES, GO RESTORE @VA04250 00971000
  972. LA R2,CARDLEN(R2) INCREMENT CURRENT TEXT POINTER @VA04250 00972000
  973. ST R2,TEXTCURR SAVE FOR NEXT USER @VA04250 00973000
  974. WAIDBYT CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00974000
  975. BE RESTORE YES, GO RESTORE @VA04250 00975000
  976. WAICMD BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00976000
  977. * ---------------------------- 00977000
  978. LA R7,MSGCMD 'ENTER COMMAND WHICH CAUSED FAIL'@VA04250 00978000
  979. * ---------------------------- 00979000
  980. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 00980000
  981. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 00981000
  982. BAL R8,DASHIN INSERT DASHES @VA04250 00982000
  983. BAL R8,KYINSERT KEY AND DATA TO KEY AREA @VA04250 00983000
  984. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 00984000
  985. BE RESTORE YES, GO RESTORE @VA04250 00985000
  986. B TEXTENTR GO ASK USER FOR TEXTUAL INFO @VA04250 00986000
  987. ************************************************************* 00987000
  988. EJECT 00988000
  989. *************************************************************** 00989000
  990. * READ TEXT PORTION OF REPORT 00990000
  991. *************************************************************** 00991000
  992. TEXTENTR LA R6,MAXLINES ALLOW 20 LINES OF INPUT @VA04250 00992000
  993. MVI TEXTSW,TEXTSWON INDICATE USER ENTERING TEXT @VA04839 00992100
  994. CLC TEXTPT,TEXTCURR ANYBODY BEEN HERE ALREADY @VA04250 00993000
  995. BE TEXTNOD NO @VA04250 00994000
  996. BCTR R6,0 SOMEBODY USED ONE ALREADY @VA04250 00995000
  997. MVC TEXTLAST,TEXTCURR RESET IN CASE OF REPROMPT @VA04250 00996000
  998. MVC TEXTBACK,TEXTCURR RESET IN CASE OF REPROMPT @VA04250 00997000
  999. TEXTNOD BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 00998000
  1000. MVI TEXTSW,TEXTSWON TURN ON TEXT SWITCH IF REPROMP @VA04839 00998100
  1001. MVC TEXTLAST,TEXTBACK RESTORE IN CASE OF REPROMPT @VA04250 00999000
  1002. MVC TEXTCURR,TEXTBACK RESTORE IN CASE OF REPROMPT @VA04250 01000000
  1003. MVI DBYTE,NORMAL RESET REPROMPT IF ACTIVE @VA04250 01001000
  1004. * ---------------------------- 01002000
  1005. LA R7,MSGTEXT 'ENTER TEXT OR NULL' @VA04250 01003000
  1006. * ---------------------------- 01004000
  1007. BAL R9,WRTERM GO ISSUE MESSAGE TO USER @VA04250 01005000
  1008. TEXTWR BALR R5,0 SAVE THIS ADDRESS FOR REPROMPT @VA04250 01006000
  1009. MVI TEXTSW,TEXTSWON TURN ON TEXT SWITCH IF REPROMP @VA04839 01006100
  1010. * ---------------------------- 01007000
  1011. LA R7,MSGTEXT1 'ENTER' @VA04250 01008000
  1012. * ---------------------------- 01009000
  1013. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 01010000
  1014. BAL R8,WRTERM GO WRITE MESSAGE AND READ REPLY @VA04250 01011000
  1015. CLI DBYTE,REPROMPT REPROMPTING? @VA04250 01012000
  1016. BNE TEXTDO NOT IN REPROMPT @VA04250 01013000
  1017. L R2,TEXTLAST WE'LL GET THE LAST RECORD AGAIN @VA04250 01014000
  1018. MVI 0(R2),BLANK CLEAR LAST TEXT ENTRY @VA04250 01015000
  1019. MVC DISP1(CARDLEN-DISP1,R2),0(R2) ALL 80 BYTES OF IT@VA04250 01016000
  1020. ST R2,TEXTCURR CLEAR LAST ENTERED LINE @VA04250 01017000
  1021. MVI DBYTE,NORMAL CLEAR REPROMPT INDICATOR @VA04250 01018000
  1022. TEXTDO LTR R0,R0 USER ENTER NULL? @VA04250 01019000
  1023. BZ TEXTDONE YES @VA04250 01020000
  1024. LR R2,R0 GET LENGTH OF DATA @VA04250 01021000
  1025. BCTR R2,0 FOR EXECUTE @VA04250 01022000
  1026. L R3,TEXTCURR OUTPUT AREA @VA04250 01023000
  1027. ST R3,TEXTLAST PRESERVE THIS POINT @VA04250 01024000
  1028. MVI 0(R3),BLANK CLEAR @VA04250 01025000
  1029. MVC DISP1(CARDLEN-DISP1,R3),0(R3) OUTPUT RECORD @VA04250 01026000
  1030. EX R2,TXTMVC DO MOVE @VA04250 01027000
  1031. LA R3,CARDLEN(R3) OUTPUT POINTER UPDATE @VA04250 01028000
  1032. ST R3,TEXTCURR SAVE IT @VA04250 01029000
  1033. BCT R6,TEXTWR ALLOW 20 LINES TOTAL OF INPUT HER@VA04250 01030000
  1034. TEXTDONE CLI OLDSW,OLDON PROCESSING AN OLD PROBLEM? @VA04250 01031000
  1035. BE OLDADD YES, GO ADD TO EXISTING REPORT @VA04250 01032000
  1036. L R2,KYAREAPT START OF KEY OUTPUT AREA @VA04250 01033000
  1037. L R3,KYCURRPT GET NEXT AVAILABLE AREA @VA04250 01034000
  1038. SR R3,R2 GET TOTAL KEY AREA OUTPUT @VA04250 01035000
  1039. L R4,KYOUTLN GET POINTER TO HALFWORD LENGTH @VA04250 01036000
  1040. LA R3,DISP4(R3) INCLUDE RECORD DESCRIPTOR LENGTH @VA04250 01037000
  1041. STH R3,0(R4) SAVE IT @VA04250 01038000
  1042. L R2,TEXTPT POINTER TO TEXT OUTPUT AREA @VA04250 01039000
  1043. L R3,TEXTCURR POINT TO NEXT AVAILABLE LINE @VA04250 01040000
  1044. SR R3,R2 GET TEXT OUTPUT LENGTH @VA04250 01041000
  1045. L R4,TXTOUTLN POINT TO LENGTH FIELD @VA04250 01042000
  1046. STH R3,0(R4) SAVE IT @VA04250 01043000
  1047. CLI OLDSW,OLDON PROCESSING AN OLD PROBLEM? @VA04250 01044000
  1048. BE OLDADD YES @VA04250 01045000
  1049. B RPTOK CONTINUE @VA04250 01046000
  1050. TXTMVC MVC 0(0,R3),0(R1) SUBJECT OF EXECUTE @VA04250 01047000
  1051. *************************************************************** 01048000
  1052. * TELL USER THE PROBLEM NUMBER, UPDATE IT, AND REWRITE IT. 01049000
  1053. *************************************************************** 01050000
  1054. RPTOK MVC MSGPRB,XXXXX MOVE PROBLEM NUMBER TO PARM LIST @VA04250 01051000
  1055. * ---------------------------- 01052000
  1056. LA R7,MSGTELL 'THIS REPORT ASSIGNED NUMBER NN @VA04250 01053000
  1057. * ---------------------------- 01054000
  1058. LA R6,LMSGTELL LENGTH OF MESSAGE @VA04250 01055000
  1059. WRTERM (R7),(R6) TELL USER @VA04250 01056000
  1060. PNUPDATE PACK ADDSUM(THREE),XXXXX(PLENGTH) PACK CURRENT NUMBER@VA04250 01057000
  1061. AP ADDSUM(THREE),AONE ADD ONE @VA04250 01058000
  1062. UNPK XXXXX(PLENGTH),ADDSUM(THREE) UNPACK BACK @VA04250 01059000
  1063. OI PRBXXXXX+SEVEN,UNPKMASK PRETTY IT UP @VA04250 01060000
  1064. MVI PNUMIN,BLANK CLEAR THE INPUT OF ANY TRASH @VA04250 01061000
  1065. MVC PNUMIN+1(CARDLEN-1),PNUMIN @VA04250 01062000
  1066. * ALL THE REMAINDER OF RECORD IS CLEARED 01063000
  1067. MVC PNUMIN(PLENGTH),XXXXX MOVE NEW NUMBER TO OUTPUT @VA04250 01064000
  1068. CLI PNSWITCH,PNSWON LOOKING FOR OPEN NUMBER? @VA04250 01065000
  1069. BNE REWRTPN NO @VA04250 01066000
  1070. MVI PNSWITCH,PNSWOFF RESET SWITCH @VA04250 01067000
  1071. B PNRETRY GO SEE IF THIS IS ALRIGHT @VA04250 01068000
  1072. REWRTPN LA R7,SUMMFILE POINT TO FILENAME FT FM @VA04250 01069000
  1073. FSWRITE (R7),RECNO=1,ERROR=SUMERRW,BUFFER=PNUMIN, @VA04250X01070000
  1074. BSIZE=80 @VA04250 01071000
  1075. FSCLOSE (R7) @VA04250 01072000
  1076. *************************************************************** 01073000
  1077. * CALL WRITEREC TO WRITE THE PROBLEM REPORT ON DISK AND ADD TO 01074000
  1078. * THE SYMPTOM SUMMARY FILE. 01075000
  1079. *************************************************************** 01076000
  1080. LA R1,WRTPARM PARMS PASSED TO WRITEREC @VA04250 01077000
  1081. L R15,VWRTREC GET ADDRESS OF WRITEREC @VA04250 01078000
  1082. BALR R14,R15 GO WRITE THE RECORD @VA04250 01079000
  1083. B WRETTBL(R15) RETURN CODES OF 0,4, OR 8 LEGAL @VA04250 01080000
  1084. WRETTBL B WRTRECOK GOOD RETURN @VA04250 01081000
  1085. B WRTRECOK NOT VALID FOR WRITEREC @VA04250 01082000
  1086. B RETCOD8 BAD RETURN @VA04250 01083000
  1087. WRTRECOK LA R1,WRTPARM PARM LIST POINTER SAME AS DMMWRT @VA04250 01084000
  1088. ************************************************************** 01085000
  1089. * CALL SEARCH TO FIND POSSIBLE DUPS 01086000
  1090. ************************************************************** 01087000
  1091. SRCHRTN L R15,VSRCH POINT TO SEARCH ROUTINE @VA04250 01088000
  1092. BALR R14,R15 GO TO SEARCH ROUTINE @VA04250 01089000
  1093. B SRCHRTRN(R15) RETURN CODE IN R15 OF 0,4, OR 8 @VA04250 01090000
  1094. SRCHRTRN B NORMEXIT NODUPS FOUND @VA04250 01091000
  1095. B NORMEXIT FOUND SOME DUPS @VA04250 01092000
  1096. B RETCOD8 BAD ERROR @VA04250 01093000
  1097. EJECT 01094000
  1098. *************************************************************** 01095000
  1099. * REPLACE IMBEDDED BLANKS WITH DASHES 01096000
  1100. *************************************************************** 01097000
  1101. DASHIN LR R14,R0 GET LENGTH OF DATA @VA04250 01098000
  1102. LR R15,R1 GET POINTER TO DATA @VA04250 01099000
  1103. LTR R14,R14 ZERO LENGTH? @VA04250 01100000
  1104. BZ DASHEXIT YES, GET OUT @VA04250 01101000
  1105. AR R15,R14 POINT TO END OF ENTERED DATA @VA04250 01102000
  1106. BCTR R15,0 POINT TO LAST BYTE OF DATA @VA04250 01103000
  1107. DASHLP CLI 0(R15),BLANK IS THIS BLANK? @VA04250 01104000
  1108. BNE DASHCONT NO @VA04250 01105000
  1109. MVI 0(R15),DASH REPLACE BLANK WITH DASH @VA04250 01106000
  1110. DASHCONT BCTR R15,0 NEXT BYTE BACK @VA04250 01107000
  1111. BCT R14,DASHLP DO THIS TILL END @VA04250 01108000
  1112. DASHEXIT BR R8 RETURN TO CALLER @VA04250 01109000
  1113. *************************************************************** 01110000
  1114. * RESTORE CONDITIONS AS THEY WERE BEFORE REPROMPTING 01111000
  1115. *************************************************************** 01112000
  1116. RESTORE MVI DBYTE,NORMAL RESET REPROMPT INDICATOR @VA04250 01113000
  1117. LM R5,R9,RD59 RESTORE PRE-REPROMPT STATUS @VA04250 01114000
  1118. BR R5 GO REISSUE ORIGINAL PROMPT @VA04250 01115000
  1119. EJECT 01116000
  1120. *************************************************************** 01117000
  1121. * THIS ACTIVITY IS ASSOCIATED WITH AN ALREADY REPORTED PROBLEM 01118000
  1122. *************************************************************** 01119000
  1123. OLDPROB MVI DBYTE,NORMAL CLEAR REPROMPT INDICATOR @VA04250 01120000
  1124. OLDPROBC EQU * @VA04250 01121000
  1125. BALR R5,0 SAVE ADDRESS FOR REPROMPT @VA04250 01122000
  1126. * ---------------------------- 01123000
  1127. LA R7,MSGPNUM 'ENTER PROBLEM NUMBER' @VA04250 01124000
  1128. * ---------------------------- 01125000
  1129. LA R9,RDTERM FORCE WRTERM TO GO TO RDTERM @VA04250 01126000
  1130. BAL R8,WRTERM GO ISSUE MESSAGE TO USER @VA04250 01127000
  1131. LTR R0,R0 ANYTHING ENTERED? @VA04250 01128000
  1132. BZ OLDPROBC NO, FORCE ENTRY OF SOMETHING @VA04250 01129000
  1133. LR R2,R0 GET COUNT OF DATA ENTERED @VA04250 01130000
  1134. LR R3,R1 DATA POINTER @VA04250 01131000
  1135. LA R3,5 5 INTO R3 @VA04250 01132000
  1136. SR R3,R2 GET DIFERENCE FROM USER DATA COUN@VA04250 01133000
  1137. BCTR R2,0 SET USER ENTERED COUNT FOR EX @VA04250 01134000
  1138. LA R3,XXXXX(R3) POINT TO WHERE DATA SHOULD GO @VA04250 01135000
  1139. EX R2,PNMVC MOVE DIGITS TO FILE NAME @VA04250 01136000
  1140. LA R3,PRBXXXXX POINT TO FNAME FTYPE FM @VA04250 01137000
  1141. FSSTATE (R3) IS THERE A REPORT OUT THERE? @VA04250 01138000
  1142. MVI DBYTE,NORMAL CLEAR POSSIBLE REPROMPT @VA04250 01139000
  1143. LTR R15,R15 FILE EXIST? @VA04250 01140000
  1144. BNZ STATERR ERROR GO CHECK WHY @VA04250 01141000
  1145. *************************************************************** 01142000
  1146. * A PROBLEM REPORT IS KNOWN TO EXIST AT THIS POINT 01143000
  1147. *************************************************************** 01144000
  1148. MVI OLDSW,OLDON INDICATE PROCESSING AN OLD PROB @VA04250 01145000
  1149. B MAINLINE GO TO MAINLINE PROMPTS @VA04250 01146000
  1150. * PROCESSING IS DONE FOR OLD PROBLEM NOW, LET'S OUTPUT THE DATA 01147000
  1151. OLDADD L R2,SUPPCURR GET POINTER TO CURRENT SUPP DATA @VA04250 01148000
  1152. L R4,SUPPPT POINT TO START OF SUPP DATA AREA @VA04250 01149000
  1153. SR R2,R4 GET DIFFERANCE @VA04250 01150000
  1154. MVI OUTPUT,BLANK CLEAR OUTPUT @VA04250 01151000
  1155. MVC OUTPUT+DISP1(L'OUTPUT-DISP1),OUTPUT @VA04250 01152000
  1156. LA R7,PRBXXXXX POINT TO FILE NAME FT FM @VA04250 01153000
  1157. MVC ADDREC(THIRTEEN),=C'*** ADDED ***' @VA04250 01154000
  1158. MVC ADDDATE(FIVE),CURRDATE TODAY'S DATE @VA04250 01155000
  1159. MVC ADDTIME(L'CURRTIME),CURRTIME AND TIME @VA04250 01156000
  1160. LA R6,CARDLEN BUFFER SIZE FOR FSWRITE @VA04250 01157000
  1161. LA R3,OUTPUT POINT TO OUTPUT RECORD @VA04250 01158000
  1162. LA R4,DISP1 WRITE ONE RECORD ONLY @VA04250 01159000
  1163. BAL R8,FSWRITE GO TO COMMON WRITE @VA04250 01160000
  1164. LR R6,R2 SAVE LENGTH FOR FSWRITE @VA04250 01161000
  1165. LTR R3,R2 SET UP FOR DIVIDE @VA04250 01162000
  1166. BZ TXTCHK NO SUPP DATA, GO HANDLE TEXT @VA04250 01163000
  1167. SR R2,R2 CLEAR EVEN REG FOR DIVIDE @VA04250 01164000
  1168. D R2,=F'80' FIND OUT NUMBER OF RECORDS @VA04250 01165000
  1169. LR R4,R3 NUMBER OF RECORDS TO WRITE @VA04250 01166000
  1170. L R3,SUPPPT POINT TO OUTPUT FOR FSWRITE @VA04250 01167000
  1171. BAL R8,FSWRITE GO TO COMMON FSWRITE ROUTINE @VA04250 01168000
  1172. TXTCHK L R2,TEXTCURR CURRENT POINTER IN TEXT AREA @VA04250 01169000
  1173. L R4,TEXTPT START OF TEXT AREA @VA04250 01170000
  1174. SR R2,R4 GET AMOUNT OF DATA @VA04250 01171000
  1175. BZ SUMMUP NO TEXT INFO ENTERED BY USER @VA04250 01172000
  1176. LR R3,R2 SET FOR DIVIDE @VA04250 01173000
  1177. LR R6,R3 SAVE LENGTH OF DATA FOR FSWRITE @VA04250 01174000
  1178. SR R2,R2 CLEAR EVEN REG FOR DIVIDE @VA04250 01175000
  1179. D R2,=F'80' GET NUMBER OF RECORDS @VA04250 01176000
  1180. LR R4,R3 SAVE IT FOR FSWRITE @VA04250 01177000
  1181. L R3,TEXTPT POINT OT OUTPUT AREA @VA04250 01178000
  1182. BAL R8,FSWRITE GO DO FSWRITE @VA04250 01179000
  1183. *************************************************************** 01180000
  1184. * TELL USER WE HAVE APPENDED THE NEW INFO ON PROBLEM REPORT 01181000
  1185. *************************************************************** 01182000
  1186. SUMMUP FSCLOSE (R7) CLOSE THE OUTPUT REPORT FILE @VA04250 01183000
  1187. * ---------------------------- 01184000
  1188. LA R7,MSGDONE 'PROBLEM REPORT APPENDED' @VA04250 01185000
  1189. * ---------------------------- 01186000
  1190. MVC MSGKYWD+DISP1(L'PRBXXXXX),PRBXXXXX PROB NUMBER @VA04250 01187000
  1191. MVI ENTSW,ENTON DON'T ALLOW PROMPT NUM TO PRINT @VA04250 01188000
  1192. BAL R9,WRTERM ISSUE 'ALL DONE' MESSAGE @VA04250 01189000
  1193. B NORMEXIT WE ARE INDEED DONE @VA04250 01190000
  1194. EJECT 01191000
  1195. *************************************************************** 01192000
  1196. * WE HAD AN ERROR FINDING THE PROBLEM REPORT 01193000
  1197. *************************************************************** 01194000
  1198. STATERR ST R15,WKWD STORE RETURN CODE @VA04250 01195000
  1199. CLI WKWD+THREE,FNOTFND SIMPLE FILE NOT FOUND? @VA04250 01196000
  1200. BNE STERR2 NO, GO PUT OUT ERROR MESSAGE @VA04250 01197000
  1201. * ---------------------------- 01198000
  1202. LA R7,MSGNOPRB REQSTD PROB REPORT DOESN'T EXIST @VA04250 01199000
  1203. * ---------------------------- 01200000
  1204. SR R2,R2 CLEAR WORK FOR INSERT CHAR INSTR @VA04250 01201000
  1205. IC R2,MSGLKYWD GET LENGTH OF KEYWORD AREA @VA04250 01202000
  1206. LA R3,MSGLKYWD+TWO(R2) POINT TO MESSAGE DATA @VA04250 01203000
  1207. MVC 0(L'PRBXXXXX,R3),PRBXXXXX MOVE PROB NUM TO MSG @VA04250 01204000
  1208. MVI ENTSW,ENTON DON'T PRINT REPROMPT LINE NUMBER @VA04250 01205000
  1209. BAL R9,WRTERM GO ISSUE THE MESSAGE TO USER @VA04250 01206000
  1210. MVC XXXXX(PLENGTH),FOFO RESET PROB NUMB TO 00000 @VA04250 01207000
  1211. B EXIST GIVE USER ANOTHER CHANCE @VA04250 01208000
  1212. STERR2 CVD R15,WKDWD CONVERT RETURN CODE TO DECIMAL @VA04250 01209000
  1213. UNPK STMSG1,WKDWD+SIX(TWO) UNPK INTO MSG OUTPUT AREA @VA04250 01210000
  1214. OI STMSG1+TWO,UNPKMASK MAKE IT PRINTABLE @VA04250 01211000
  1215. MVC STMSG3(EIGHT),PRBXXXXX MOVE PROB NUMBER TO MSG @VA04250 01212000
  1216. LA R2,STMSGL LENGTH OF MESSAGE @VA04250 01213000
  1217. WRTERM STMSG,(R2) GO TELL USER @VA04250 01214000
  1218. B RETCOD8 TAKE RETURN CODE 8 EXIT @VA04250 01215000
  1219. STMSG DC C'DMMPRO300S ERROR ''' @VA04250 01216000
  1220. STMSG1 DC C' ' @VA04250 01217000
  1221. STMSG2 DC C''' ON FSSTATE ''' @VA04250 01218000
  1222. STMSG3 DC C' REPORT A1''' @VA04250 01219000
  1223. STMSGL EQU *-STMSG @VA04250 01220000
  1224. PNMVC MVC 0(0,R3),0(R1) @VA04250 01221000
  1225. EJECT 01222000
  1226. *************************************************************** 01223000
  1227. * ROUTINE TO DO FSWRITE AND CHECK RETURN CODE 01224000
  1228. * R8 RETURN REGISTER 01225000
  1229. * R7 FILENAME 01226000
  1230. * R6 BSIZE 01227000
  1231. * R3 BUFFER POINTER 01228000
  1232. * R4 NUMBER OF RECORDS TO BE WRITTEN 01229000
  1233. * R1-R3 WORK REGISTERS 01230000
  1234. * 01231000
  1235. * ISSUES APPROPRIATE ERROR MESSAGE DMM200PROS 01232000
  1236. *************************************************************** 01233000
  1237. FSWRITE FSWRITE (R7),BSIZE=(R6),BUFFER=(R3),NOREC=(R4) @VA04250 01234000
  1238. LTR R15,R15 ERROR? @VA04250 01235000
  1239. BZ 0(R8) NO,RETURN @VA04250 01236000
  1240. SUMERRW CVD R15,WKDWD CONVERT RETURN CODE TO DECIMAL @VA04250 01237000
  1241. UNPK ERRMSG1,WKDWD+SIX(TWO) UNPACK INOT ERROR MSG @VA04250 01238000
  1242. OI ERRMSG1+TWO,UNPKMASK MAKE IT PRINTABLE @VA04250 01239000
  1243. MVC ERRMSG2,0(R7) MOVE IN FILE NAME @VA04250 01240000
  1244. MVC ERRMSG3,EIGHT(R7) MOVE IN FILE TYPE @VA04250 01241000
  1245. MVC ERRMSG4,SIXTEEN(R7) MOVE IN FILE MODE @VA04250 01242000
  1246. LA R2,ERRMSG DMM200PROS @VA04250 01243000
  1247. LA R3,ERRMSGL GET LENGTH @VA04250 01244000
  1248. WRTERM (R2),(R3) @VA04250 01245000
  1249. B RETCOD8 TAKE ERROR EXIT @VA04250 01246000
  1250. ERRMSG DC C'DMMPRO200S ERROR ''' @VA04250 01247000
  1251. ERRMSG1 DC C' ' NNN RETURN CODE ON FSWRITE @VA04250 01248000
  1252. DC C''' WRITING FILE ''' @VA04250 01249000
  1253. ERRMSG2 DS CL8 FILE NAME @VA04250 01250000
  1254. DC C' ' @VA04250 01251000
  1255. ERRMSG3 DS CL8 FILE TYPE @VA04250 01252000
  1256. DC C' ' @VA04250 01253000
  1257. ERRMSG4 DS CL2 FILE MODE @VA04250 01254000
  1258. DC C'''' @VA04250 01255000
  1259. ERRMSGL EQU *-ERRMSG @VA04250 01256000
  1260. EJECT 01257000
  1261. *************************************************************** 01258000
  1262. * ROUTINE TO PLACE KEYWORDS AND VALUES IN OUTPUT BUFFER 01259000
  1263. * ENTRY: R7 POINTS TO MESSAGE 01260000
  1264. * R1 POINTS TO DATA TO BE JOINED WITH KEYWORD 01261000
  1265. * R0 CONTAINS LENGTH OF DATA 01262000
  1266. * 01263000
  1267. * CHECK KYWD FOR VMFAILURE OR VMENVIR AND IF SO STORE THE DATA 01264000
  1268. * IN THE INTERNAL DATA AREA (ADDRESSED VIA INTSECT) 01265000
  1269. * 01266000
  1270. * CHECK TO SEE IF THE KEYWD HAS ALREADY BEEN BUT IN THE OUTPUT. 01267000
  1271. * THIS CAN OCCUR IN THE CASE OF A REPROMPT OR IN THE CASE OF 01268000
  1272. * A VMFAILURE WHICH CAUSES THE INITIAL BASE FAILURE TO BE 01269000
  1273. * PUT HERE FIRST. 01270000
  1274. * 01271000
  1275. * IF THE KEYWD DOES NOT EXIST YET ADD IT TO THE OUTPUT KEYAREA 01272000
  1276. * 01273000
  1277. * IF THE KYWD ALREADY EXISTS WE ALLOW FOR THE NEW DATA BEING 01274000
  1278. * A DIFFERENT LENGTH FROM THE OLD. THE KEYDATA FOLLOWING THE 01275000
  1279. * KEYWORD IN QUESTION IS ADJUSTED INWARD OR OUTWARD AS REQUIRED 01276000
  1280. * PRIOR TO THE NEW DATA BEING STORED IN THE OUTPUT. 01277000
  1281. *************************************************************** 01278000
  1282. KYINSERT CLI MSGLKYWD,NOKYWD ANY KEYWORD PRESENT? @VA04250 01279000
  1283. BE KYRETURN NO @VA04250 01280000
  1284. SR R3,R3 PREPARE FOR IC INSTRUCTION @VA04250 01281000
  1285. IC R3,MSGLKYWD GET LENGTH OF KEYWORD + '=' @VA04250 01282000
  1286. BCTR R3,0 FOR EXECUTE @VA04250 01283000
  1287. LA R4,MSGKYWD POINT TO KEYWORD @VA04250 01284000
  1288. LTR R0,R0 ANYTHING ENTERED? @VA04429 01284300
  1289. BZ KYNOTCID NO, DON'T PUT IN INTSECT @VA04429 01284600
  1290. L R2,INTPT ADDRESSABILITY FOR INTSECT @VA04250 01285000
  1291. CLC =C'VMFAILURE',0(R4) MAJOR VMFAILURE KEYWORD? @VA04250 01286000
  1292. BNE KYMX2 CERTAIN VALUES WE TRY TO SAVE FOR@VA04250 01287000
  1293. MVC INTX1,0(R1) LATER TO BE PUT IN THE @VA04250 01288000
  1294. KYMX2 CLC =C'VMENVIR',0(R4) SYMPTOM SUMMARY CNTRL RECORD. @VA04250 01289000
  1295. BNE KYNOTCID NOT ONE WE WANT TO SAVE @VA04250 01290000
  1296. MVC INTX2,0(R1) SAVE IT IN INTERNAL DATA AREA @VA04250 01291000
  1297. KYNOTCID L R2,KYAREAPT BEGINNING OF OUTPUT AREA @VA04250 01292000
  1298. KYNXT LH R6,0(R2) GET LENGTH OF ENTRY @VA04250 01293000
  1299. LTR R6,R6 ZERO? @VA04250 01294000
  1300. BZ KYNOTFND YES, KEY NOT PRESENT IN OUTPUT @VA04250 01295000
  1301. LA R14,DISP4(R2) POINT TO KEY @VA04250 01296000
  1302. EX R3,KYCMPR KEY MATCH WHAT'S ALREADY THERE? @VA04250 01297000
  1303. BE KYFOUND YES @VA04250 01298000
  1304. LA R2,0(R2,R6) POINT TO NEXT ENTRY. @VA04250 01299000
  1305. B KYNXT AND WHERE WE STOP NOBODY KNOWS. @VA04250 01300000
  1306. KYNOTFND LTR R0,R0 NULL INPUT? @VA04250 01301000
  1307. BZ KYRETURN YES @VA04250 01302000
  1308. IC R3,MSGLKYWD GET LENGTH OF KEYWORD + '=' @VA04250 01303000
  1309. AR R3,R0 TOTAL KEY PLUS DATA @VA04250 01304000
  1310. LA R3,DISP4(R3) ADD ON COUNT WORD LENGTH @VA04250 01305000
  1311. STH R3,0(R2) DO IT TO OUTPUT @VA04250 01306000
  1312. LA R6,0(R2,R3) NEXT AVAIL SPOT @VA04250 01307000
  1313. ST R6,KYCURRPT SAVE IT @VA04250 01308000
  1314. KYLEQ LA R2,DISP4(R2) PAST LENGTH FIELDS @VA04250 01309000
  1315. SR R3,R3 DON'T TAKE ANY CHANCES @VA04250 01310000
  1316. IC R3,MSGLKYWD GET LENGTH OF KEYWORD @VA04250 01311000
  1317. BCTR R3,0 WE'RE USING AN EXECUTE SO--- @VA04250 01312000
  1318. EX R3,KYMVC MOVE KEYWORD TO OUTPUT AREA @VA04250 01313000
  1319. LA R2,DISP1(R2,R3) WHERE ACTUAL DATA GOES @VA04250 01314000
  1320. LR R3,R0 DATA LENGTH @VA04250 01315000
  1321. BCTR R3,0 EXECUTE NEEDS THIS @VA04250 01316000
  1322. EX R3,KYDATMVC MOVE DATA AFTER KEYWORD @VA04250 01317000
  1323. B KYRETURN WE'RE DONE HERE FOR NOW @VA04250 01318000
  1324. KYCMPR CLC 0(0,R4),0(R14) NEW KEYWORD MATCH THE OLD? @VA04250 01319000
  1325. KYMVC MVC 0(0,R2),MSGKYWD MOVE KEYWORD TO OUTPUT AREA @VA04250 01320000
  1326. KYDATMVC MVC 0(0,R2),0(R1) MOVE DATA AFTER KEY @VA04250 01321000
  1327. KYFOUND IC R3,MSGLKYWD GET LENGTH OF THE NEW KEYWORD @VA04250 01322000
  1328. S R6,=F'4' SUBTRACT LENGTH OF LENGTH FIELD @VA04250 01323000
  1329. AR R3,R0 TOTAL LENGTH OF ENTRY @VA04250 01324000
  1330. CR R3,R6 NEW TOTAL AGAINST OLD TOTAL @VA04250 01325000
  1331. BE KYLEQ DON'T HAVE TO MONKEY AROUND @VA04250 01326000
  1332. BH KYMVEOUT MUST ADJUST OUTWARD @VA04250 01327000
  1333. KYMVEIN SR R6,R3 DIFFERENCE BETWEEN OLD AND NEW @VA04250 01328000
  1334. L R14,KYCURRPT POINT TO NEXT AVAILABLE AREA @VA04250 01329000
  1335. SR R14,R6 NEW END POINTER @VA04250 01330000
  1336. LTR R0,R0 NULL RESPONSE ENTERED BY USER? @VA04838 01330150
  1337. BNZ KYMVEI2 NO, JUST CHANGE DATA LENGTH @VA04838 01330300
  1338. LA R6,4(R3,R6) GET LENGTH OF DATA+KEY+LEN FIELD @VA04838 01330450
  1339. SR R14,R3 BACK UP TO DELETE THIS ENTRY @VA04838 01330600
  1340. S R14,=F'4' INCLUDE LENGTH FIELD LENGTH @VA04838 01330750
  1341. KYMVEI2 EQU * CALCULATE MOVE BOUNDRIES @VA04838 01330900
  1342. ST R14,KYCURRPT SAVE NEW CALCULATED POINTER @VA04250 01331000
  1343. AR R14,R6 OLD END POINTER AGAIN @VA04250 01332000
  1344. LA R15,DISP4(R3) ADD IN COUNT FIELD LENGTH @VA04250 01333000
  1345. STH R15,0(R2) NEW LENGTH TO OUTPUT @VA04250 01334000
  1346. LA R3,DISP4(R2,R3) END OF NEW ENTRY @VA04250 01335000
  1347. LTR R0,R0 USER DELETING A RESPONSE? @VA04838 01335200
  1348. BNZ KYMVII2 NO, CONTINUE NORMALLY @VA04838 01335400
  1349. LR R3,R2 POINT TO START OF KEY FOR ENTRY @VA04838 01335600
  1350. KYMVII2 EQU * USER CHANGING LENGTH OF INPUT @VA04838 01335800
  1351. LA R4,0(R3,R6) END OF OLD ENTRY @VA04250 01336000
  1352. SR R14,R4 TOTAL TO BE MOVED @VA04250 01337000
  1353. LTR R14,R14 LAST ENTRY AFTER ALL? @VA04250 01338000
  1354. BZ KYCLREND YES @VA04250 01339000
  1355. KYMVIN MVC 0(DISP1,R3),0(R4) ONE BYTE AT A TIME @VA04250 01340000
  1356. LA R3,DISP1(R3) INCREMENT NEW POINTER @VA04250 01341000
  1357. LA R4,DISP1(R4) INCREMENT OLD POINTER @VA04250 01342000
  1358. BCT R14,KYMVIN DO THIS FOR A WHILE @VA04250 01343000
  1359. KYCLREND L R14,KYCURRPT POINT TO NEXT AVAILABLE AREA @VA04250 01344000
  1360. KYCLEAR MVI 0(R14),HEXZERO CLEAR LEFT OVER TRASH @VA04250 01345000
  1361. LA R14,DISP1(R14) NEXT BYTE @VA04250 01346000
  1362. BCT R6,KYCLEAR CLEAR TRASH LEFT OVER AT END @VA04250 01347000
  1363. LTR R0,R0 USER CANCELLING ENTRY? @VA04838 01347330
  1364. BZ KYRETURN YES, RETURN TO PROMPTING @VA04838 01347660
  1365. B KYLEQ BACK TO MOVE IN KEY AND DATA @VA04250 01348000
  1366. KYMVEOUT LA R15,LFLDLEN(R3) ADD LENGTH FIELD LENGTH TO PTR @VA04250 01349000
  1367. STH R15,0(R2) NEW LENGTH IN FRONT OF DATA @VA04250 01350000
  1368. SR R3,R6 DIFFERENCE IN LENGTH OF OLD @VA04250 01351000
  1369. L R14,KYCURRPT POINT TO NEXT AVAILABLE AREA @VA04250 01352000
  1370. AR R14,R3 NEW END POINTER @VA04250 01353000
  1371. ST R14,KYCURRPT SAVE IT FOR NEXT USER @VA04250 01354000
  1372. LA R4,DISP4(R6,R2) OLD END FOR THIS ENTRY @VA04250 01355000
  1373. LR R6,R14 SAVE TOTAL END @VA04250 01356000
  1374. SR R14,R3 OLD END @VA04250 01357000
  1375. LR R3,R14 OLD END @VA04250 01358000
  1376. SR R3,R4 TOTAL TO BE MOVED @VA04250 01359000
  1377. LTR R3,R3 NULL RESULT? @VA04250 01360000
  1378. BZ KYLEQ LAST ENTRY AFTER ALL THIS @VA04250 01361000
  1379. BCTR R6,0 ONE BYTE PAST WHERE WE WANT @VA04250 01362000
  1380. BCTR R14,0 DITTO @VA04250 01363000
  1381. KYMVOUT MVC 0(DISP1,R6),0(R14) ONE BYTE AT A TIME @VA04250 01364000
  1382. BCTR R6,0 DECREMENT OLD POINTER @VA04250 01365000
  1383. BCTR R14,0 DECREMENT NEW POINTER @VA04250 01366000
  1384. BCT R3,KYMVOUT MOVE IT ALL @VA04250 01367000
  1385. B KYLEQ NOW GO PUT IN NEW DATA @VA04250 01368000
  1386. KYRETURN BR R8 BACK TO CALLER @VA04250 01369000
  1387. EJECT 01370000
  1388. *************************************************************** 01371000
  1389. * ROUTINE TO WRITE MESSAGES TO THE TERMINAL 01372000
  1390. * WORK R2,R3,R4,R14 01373000
  1391. * RETURN R9 01374000
  1392. * CALLER R5 01375000
  1393. * MSG R7 01376000
  1394. * MSGOUT R6 WHERE USER INPUT WILL BE PUT 01377000
  1395. *************************************************************** 01378000
  1396. WRTERM SR R14,R14 CLEAR WORK REG @VA04250 01379000
  1397. LR R3,R14 CLEAR ANOTHER @VA04250 01380000
  1398. L R2,LOGPTR ACTIVITY TRACE POINTER @VA04250 01381000
  1399. CLI 0(R2),FENCE NO MORE ENTRIES? @VA04250 01382000
  1400. BE WRNOLOG GUESS NOT, DON'T RECORD THIS @VA04250 01383000
  1401. CLI ENTSW,ENTON INFORMATION MESSAGE ONLY? @VA04250 01384000
  1402. BE WRNOLOG YES @VA04250 01385000
  1403. ST R5,0(R2) ADDRESS TO REEXECUTE THE CALLER @VA04250 01386000
  1404. ST R7,DISP4(R2) MESSAGE POINTER WE'RE RECORDING @VA04250 01387000
  1405. ST R6,EIGHT(R2) SPECIAL CALLER USAGE @VA04250 01388000
  1406. LA R2,TRSIZE(R2) NEXT ENTRY IN TRACE TABLE @VA04250 01389000
  1407. ST R2,LOGPTR SAVE IT @VA04250 01390000
  1408. WRNOLOG LA R2,OUTPUT POINT TO OUTPUT AREA @VA04250 01391000
  1409. MVI OUTPUT,BLANK @VA04250 01392000
  1410. MVC OUTPUT+DISP1(L'OUTPUT-DISP1),OUTPUT CLEAR OUTPUT@VA04250 01393000
  1411. SR R3,R3 CLEAR WORK @VA04250 01394000
  1412. MVC OUTPUT(L'MSGPRMPT),=C'******' IF NO REPROMPT NUM@VA04250 01395000
  1413. CLI ENTSW,ENTON PUT OUT LINE NUMBER 1SR TIME ONLY@VA04250 01396000
  1414. BE WRMSGOUT WE'VE ALREADY PUT OUT LINE NUMBER@VA04250 01397000
  1415. MVC OUTPUT(MSGRLEN),MSGPRMPT PUT REPROMPT IN OUTPUT @VA04250 01398000
  1416. MVI ENTSW,ENTON ONLY ONCE @VA04250 01399000
  1417. WRMSGOUT LA R2,OUTPUT+SEVEN THIS IS WHERE MESSAGE GOES @VA04250 01400000
  1418. LA R4,MSGLKYWD POINT TO KEYWORD LENGTH @VA04250 01401000
  1419. IC R3,0(R4) GET THIS LENGTH @VA04250 01402000
  1420. LA R4,DISP1(R3,R4) POINT TO MSG LENGTH @VA04250 01403000
  1421. IC R3,0(R4) GET LENGTH OF MESSAGE @VA04250 01404000
  1422. LA R14,SEVEN(R3) LENGTH OF TOTAL MESSAGE @VA04250 01405000
  1423. LA R4,DISP1(R4) POINT TO MESSAGE PROPER @VA04250 01406000
  1424. LTR R3,R3 COULD BE ZERO I SUPPOSE @VA04250 01407000
  1425. BZ WRITE IT IS ZERO @VA04250 01408000
  1426. BCTR R3,0 FOR EXECUTE @VA04250 01409000
  1427. EX R3,WRMVCOUT MOVE MESSAGE TO OUTPUT @VA04250 01410000
  1428. LR R3,R14 GET TOTAL LENGTH IN SAFE REGISTER@VA04250 01411000
  1429. WRITE WRTERM OUTPUT,(R3) WRITE ON TERMINAL @VA04250 01412000
  1430. CLI MSGSTOP,MSGLAST LAST MSG IN PROMPT? @VA04250 01413000
  1431. BE WREXIT YES, BRANCH @VA04250 01414000
  1432. IC R3,MSGENT GET LENGTH OF TOTAL MESSAGE @VA04250 01415000
  1433. AR R7,R3 POINT TO NEXT MESSAGE @VA04250 01416000
  1434. B WRNOLOG GO UNTIL LAST MESSAGE IS FOUND @VA04250 01417000
  1435. WREXIT MVI ENTSW,ENTOFF RESET SWITCH @VA04250 01418000
  1436. BR R9 RETURN ON 9 @VA04250 01419000
  1437. WRMVCOUT MVC 0(0,R2),0(R4) MOVE TO OUTPUT AREA @VA04250 01420000
  1438. EJECT 01421000
  1439. *************************************************************** 01422000
  1440. * ROUTINE TO READ FROM TERMINAL AND DO INITIAL LOOKING AT INPUT 01423000
  1441. * REPROMPTING IS ALSO CONTROLLED FROM HERE 01424000
  1442. * R9 USED TO LINK TO WRTERM (SAVED FIRST IF USED) 01425000
  1443. * R5 USED BY REPROMPT TO GET TO ROUTINE TO DO REPROMPT 01426000
  1444. * R8 RETURN ADDRESS OF CALLING ROUTINE 01427000
  1445. * R7 MESSAGE POINTER 01428000
  1446. * R6 POINTER TO WHERE CALLER IS GOING TO PUT USER INPUT 01429000
  1447. * R2,R3,R4,R14 WORK REGS 01430000
  1448. * R1 RDTERM RETURNS ADDRESS OF INPUT TO CALLER HERE 01431000
  1449. * R0 LENGTH OF INPUT RETURNED TO CALLER IN THIS REG 01432000
  1450. *************************************************************** 01433000
  1451. RDTERM RDTERM INPUT READ FROM TERMINAL @VA04250 01434000
  1452. LTR R0,R0 ANYTHING ENTERED? @VA04250 01435000
  1453. BZ RDNULLIN NO RETURN TO CALLER @VA04250 01436000
  1454. LR R2,R0 GET LENGTH OF INPUT @VA04250 01437000
  1455. LA R1,INPUT POINT TO INPUT AREA @VA04250 01438000
  1456. CLI TEXTSW,TEXTSWON IS USER ENTERING TEXT @VA04839 01438100
  1457. BE RDGOTNB YES, SKIP BLANK SUPPRESSION @VA04839 01438200
  1458. RDCKBLNK CLI 0(R1),BLANK BLANK? @VA04250 01439000
  1459. BNE RDGOTNB NO, GOT SOMETHING @VA04250 01440000
  1460. LA R1,DISP1(R1) POINT TO NEXT INPUT BYTE @VA04250 01441000
  1461. BCT R2,RDCKBLNK CHECK NEXT BYTE FOR NON BLANK @VA04250 01442000
  1462. B RDNULLIN NOTHING BUT BLANKS ENTERED @VA04250 01443000
  1463. RDGOTNB LR R0,R2 NEW COUNT @VA04250 01444000
  1464. CLC =C':HX',0(R1) USER WANT TO GIVE UP? @VA04250 01445000
  1465. BE HXEXIT YES @VA04250 01446000
  1466. CLC =C'HX',0(R1) ANOTHER WAY THE USER MAY SAY STOP@VA04250 01447000
  1467. BE HXEXIT YES, THE USER WANTS TO QUIT @VA04250 01448000
  1468. CLC =C':L',0(R1) REPROMPT REQUEST? @VA04250 01449000
  1469. BNE RDNORMAL NO, GO DO SYNTAX CHECKING @VA04250 01450000
  1470. CLI DBYTE,REPROMPT ALREADY REPROMPTING? @VA04250 01451000
  1471. BNE RDREPRMP NO, GO DO REPROMPT @VA04250 01452000
  1472. * ---------------------------- 01453000
  1473. LA R7,MSGERR1 REPROMPT WITHIN REPROMT NOT ALLOW@VA04250 01454000
  1474. * ---------------------------- 01455000
  1475. MVI ENTSW,ENTON DON'T LET WRTERM PUT OUT PROMPT #@VA04250 01456000
  1476. BAL R9,WRTERM GO TELL THE USER @VA04250 01457000
  1477. MVI DBYTE,NORMAL CLEAR REPROMPT INDICATOR @VA04250 01458000
  1478. LM R5,R9,RD59 RESTORE STATUS BEFORE REPROMPT @VA04250 01459000
  1479. B WRTERM TRY ORIGINAL MESSAGE AGAIN @VA04250 01460000
  1480. RDREPRMP STM R5,R9,RD59 SAVE CURRENT STATUS @VA04250 01461000
  1481. XC TEXTSW,TEXTSW TURN OF TEXT ENTRY SWITCH @VA04839 01461100
  1482. LA R2,LOGTBL POINT TO OUR ACTIVITY TRACE @VA04250 01462000
  1483. L R3,LOGPTR POINT TO END OF OUR ACTIVITY @VA04250 01463000
  1484. SH R3,=H'12' BACK UP TO LAST VALID ENTRY @VA04250 01464000
  1485. RDPLOOK L R7,DISP4(R3) POINT TO MESSAGE @VA04250 01465000
  1486. CLC 0(MSGRLEN,R1),MSGPRMPT LINE NUMBERS COMPARE? @VA04250 01466000
  1487. BE RDFOUND YES, LETS REPROMPT @VA04250 01467000
  1488. SH R3,=H'12' NEXT LOG ENTRY @VA04250 01468000
  1489. CR R2,R3 END OF ACTIVITY @VA04250 01469000
  1490. BH RDNOTFND COULDN'T FIND IT @VA04250 01470000
  1491. B RDPLOOK LOOK AT THIS ONE @VA04250 01471000
  1492. * ---------------------------- 01472000
  1493. RDNOTFND LA R7,MSGERR2 REPROMPT REQUEST NOT FOUND @VA04250 01473000
  1494. * ---------------------------- 01474000
  1495. MVI ENTSW,ENTON DON'T LET WRTERM PUT OUT PROMPT #@VA04250 01475000
  1496. BAL R9,WRTERM TELL USER @VA04250 01476000
  1497. LM R5,R9,RD59 RESTORE PREVIOUS STATUS @VA04250 01477000
  1498. BR R5 GO BACK TO CALLER TO REISSUE MSG @VA04250 01478000
  1499. RDFOUND MVI DBYTE,REPROMPT INDICATE REPROMPT IN PROGRESS @VA04250 01479000
  1500. L R6,EIGHT(R3) POINTER WHERE USER PUT OUTPUT @VA04250 01480000
  1501. L R5,0(R3) WHERE THE PROMPT CAME FROM @VA04250 01481000
  1502. BR R5 GO LET HIM DO IT FOR US @VA04250 01482000
  1503. RDNORMAL LA R2,CARDLEN MOST WE WILL ALLOW IS 80 BYTES IN@VA04250 01483000
  1504. CR R0,R2 MORE THAN 80 ENTERED? @VA04250 01484000
  1505. BNH RDNORM2 NO @VA04250 01485000
  1506. LR R0,R2 SET LENGTH READ TO 80 @VA04250 01486000
  1507. RDNORM2 LR R2,R1 GET INPUT POINTER @VA04250 01487000
  1508. AR R2,R0 POINT TO END @VA04250 01488000
  1509. RDLOOP5 BCTR R2,0 POINT TO LAST BYTE @VA04250 01489000
  1510. CLI 0(R2),BLANK BLANK? @VA04250 01490000
  1511. BNE RDNORMZZ NO, CONTINUE WITH OTHER CHECKS @VA04250 01491000
  1512. BCTR R0,0 GO UNTIL WE FIND SOMETHING @VA04250 01492000
  1513. LTR R0,R0 OR UNTIL WE RUN OUT OF AMMO @VA04250 01493000
  1514. BZ RDNULLIN USER PLAYING WITH SPACE BAR @VA04250 01494000
  1515. B RDLOOP5 CONTINUE LOOKING @VA04250 01495000
  1516. RDNORMZZ SR R3,R3 CLEAR WORK @VA04250 01496000
  1517. CLI MSGMIN,MSGNOMIN MINIMUM RESTRICTION? @VA04250 01497000
  1518. BE RDMXCMPR NO, GO SEE IF MAX RESTRICTION @VA04250 01498000
  1519. * INSURE NO IMBEDDED BLANKS WHEN MINIMUM RESTRICTION IN EFFECT 01499000
  1520. RDTOKEN LR R2,R1 GET INPUT POINTER @VA04250 01500000
  1521. RDTLOOP LA R3,1(R3) KEEP TRACK OF HOW MUCH WE HAVE @VA04250 01501000
  1522. CLI DISP1(R2),BLANK AT END? @VA04250 01502000
  1523. BE RDGOTTOK YES WE HAVE ONE 'TOKEN' @VA04250 01503000
  1524. LA R2,DISP1(R2) LOOK AT NEXT BYTE OF INPUT @VA04250 01504000
  1525. B RDTLOOP CONTINUE LOOKING @VA04250 01505000
  1526. RDGOTTOK CR R0,R3 DID USER IMBED A BLANK? @VA04250 01506000
  1527. BE RDGOTTK2 NO @VA04250 01507000
  1528. * ---------------------------- 01508000
  1529. LA R7,MSGERRI 'IMBEDDED BLANKS NOT ALLOWED' @VA04250 01509000
  1530. * ---------------------------- 01510000
  1531. MVI ENTSW,ENTON DON'T LET WRTERM PRINT PROMPT NUM@VA04250 01511000
  1532. BAL R9,WRTERM PRINT ERROR MESSAGE @VA04250 01512000
  1533. BR R5 REPROMPT USER @VA04250 01513000
  1534. RDGOTTK2 SR R3,R3 IC INSTRUCTION COMING UP @VA04250 01514000
  1535. B RDMIN GO DO MINIMUM CHECKING @VA04250 01515000
  1536. RDMXCMPR CLI MSGMAX,MSGNOMAX MAXIMUM CHECKING TO DO? @VA04250 01516000
  1537. BNE RDMAX YES, GO CHECK @VA04250 01517000
  1538. RDTYCMPR CLI MSGTYPE,MSGFREE FREE FORM INPUT ALLOWED? @VA04250 01518000
  1539. BNE RDTYPE NO, GO DO ANALYSIS @VA04250 01519000
  1540. RDRETURN BR R8 CALLER LINK REG @VA04250 01520000
  1541. RDMIN IC R3,MSGMIN GET MINIMUM ALLOWED @VA04250 01521000
  1542. CR R0,R3 CHECK AGAINST AMOUNT ENTERED @VA04250 01522000
  1543. BL RDMINBAD INPUT LESS THAN ALLOWED @VA04250 01523000
  1544. B RDMXCMPR BACK TO FURTHER CHECKING @VA04250 01524000
  1545. RDMAX IC R3,MSGMAX GET MAX ALLOWED @VA04250 01525000
  1546. CR R0,R3 CHECK AGAINST AMOUNT ENTERED @VA04250 01526000
  1547. BH RDMAXBAD TOO MUCH ENTERED @VA04250 01527000
  1548. B RDTYCMPR BACK FOR FURTHER CHECKING @VA04250 01528000
  1549. RDTYPE CLI MSGTYPE,MSGNUM NUMERIC DATA EXPECTED? @VA04250 01529000
  1550. BE RDNUM YES @VA04250 01530000
  1551. CLI MSGTYPE,MSGHEX HEX INPUT EXPECTED? @VA04250 01531000
  1552. BE RDHEX YES @VA04250 01532000
  1553. B RDRETURN WE'VE DONE ALL WE CAN HERE @VA04250 01533000
  1554. RDNUM LR R2,R1 POINT TO INPUT DATA @VA04250 01534000
  1555. LR R3,R0 GET LENGTH OF INPUT @VA04250 01535000
  1556. RDNUM1 TM 0(R2),NUMERIC NUMERIC? @VA04250 01536000
  1557. BO RDUP YES @VA04250 01537000
  1558. CLI 0(R2),BLANK BLANK? @VA04250 01538000
  1559. BE RDUP YES, ACCEPT IT @VA04250 01539000
  1560. * ---------------------------- 01540000
  1561. LA R7,MSGERR5 'NUMERIC INPUT EXPECTED, NON-NUM'@VA04250 01541000
  1562. * ---------------------------- 01542000
  1563. MVI ENTSW,ENTON DON'T ALLOW REPROMPT @VA04250 01543000
  1564. BAL R9,WRTERM GO TELL USER OF INVALID DATA @VA04250 01544000
  1565. BR R5 ISSUE ORIGINAL PROMPT AGAIN @VA04250 01545000
  1566. RDUP LA R2,DISP1(R2) NEXT INPUT BYTE @VA04250 01546000
  1567. BCT R3,RDNUM1 CHECK ALL INPUT @VA04250 01547000
  1568. B RDRETURN GO TO EXIT @VA04250 01548000
  1569. RDHEX LR R2,R1 INPUT POINT @VA04250 01549000
  1570. LR R3,R0 LENGTH @VA04250 01550000
  1571. RDHEX1 TM 0(R2),NUMERIC 0 THROUGH 9? @VA04250 01551000
  1572. BO RDHUP YES @VA04250 01552000
  1573. CLI 0(R2),ALPHAA CHECK A - F NOW. @VA04250 01553000
  1574. BL RDBCHK NOT A - F @VA04250 01554000
  1575. CLI 0(R2),ALPHAF GT F? @VA04250 01555000
  1576. BH RDERR6 YES, NOT A - F @VA04250 01556000
  1577. B RDHUP CONTINUE CHECKING @VA04250 01557000
  1578. RDBCHK CLI 0(R2),BLANK BLANKS ARE CONCEIVABLE @VA04250 01558000
  1579. BNE RDERR6 BUT NOTHING ELSE @VA04250 01559000
  1580. RDHUP LA R2,DISP1(R2) NEXT INPUT BYTE @VA04250 01560000
  1581. BCT R3,RDHEX1 CHECK ALL INPUT @VA04250 01561000
  1582. B RDRETURN WE'RE DONE HERE @VA04250 01562000
  1583. * ---------------------------- 01563000
  1584. RDERR6 LA R7,MSGERR6 'HEX INPUT EXPECTED. NON-HEX FND'@VA04250 01564000
  1585. * ---------------------------- 01565000
  1586. MVI ENTSW,ENTON INHIBIT REPROMT LINE NUMBER @VA04250 01566000
  1587. BAL R9,WRTERM GO TELL USER @VA04250 01567000
  1588. BR R5 GO BACK AND ISSUE PROMPT AGAIN @VA04250 01568000
  1589. * ---------------------------- 01569000
  1590. RDMINBAD LA R7,MSGERR3 NOT ENOUGH INPUT --REENTER-- @VA04250 01570000
  1591. * ---------------------------- 01571000
  1592. MVI ENTSW,ENTON DON'T LET WRTERM PUT OUT PROMPT #@VA04250 01572000
  1593. BAL R9,WRTERM TELL USER @VA04250 01573000
  1594. BR R5 LET CALLER HANDLE REISSUING MESSA@VA04250 01574000
  1595. * ---------------------------- 01575000
  1596. RDMAXBAD LA R7,MSGERR4 'TOO MUCH INPUT --REENTER--' @VA04250 01576000
  1597. * ---------------------------- 01577000
  1598. MVI ENTSW,ENTON DON'T LET WRTERM PUT OUT PROMPT #@VA04250 01578000
  1599. BAL R9,WRTERM GO TELL USER @VA04250 01579000
  1600. BR R5 LET CALLER REISSUE ORIGINAL PROMP@VA04250 01580000
  1601. RDNULLIN SR R0,R0 INSURE ZERO INPUT PASSED TO CALLE@VA04250 01581000
  1602. BR R8 RETURN TO CALLER @VA04250 01582000
  1603. EJECT 01583000
  1604. *************************************************************** 01584000
  1605. * EXIT ROUTINES 01585000
  1606. *************************************************************** 01586000
  1607. NORMEXIT L R13,SAVEBACK RESTORE CALLER'S SAVERAREA PTR @VA04250 01587000
  1608. LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS @VA04250 01588000
  1609. SR R15,R15 RETURN CODE OF 0 @VA04250 01589000
  1610. BR R14 RETURN TO CALLER @VA04250 01590000
  1611. RETCOD8 L R13,SAVEBACK RESTORE CALLER'S SAVEAREA PTR @VA04250 01591000
  1612. LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS @VA04250 01592000
  1613. LA R15,8 RETURN CODE OF 8 @VA04250 01593000
  1614. BR R14 RETURN TO CALLER @VA04250 01594000
  1615. HXEXIT L R13,SAVEBACK RESTORE CALLER'S SAVEAREA PTR @VA04250 01595000
  1616. LM R14,R12,12(R13) RESTORE CALLER'S REGISTERS @VA04250 01596000
  1617. LA R15,4 RETURN CODE OF 4 @VA04250 01597000
  1618. BR R14 BACK TO CALLER @VA04250 01598000
  1619. SUMERRR C R15,=F'1' FILE NOT FOUND? @VA04250 01599000
  1620. BNE SUMERRR2 NO @VA04250 01600000
  1621. MVC XXXXX(PLENGTH),=C'00001' SET PROB NUMBER TO 1 @VA04250 01601000
  1622. B RPNUM2 CONTINUE @VA04250 01602000
  1623. SUMERRR2 CVD R15,WKDWD CONVERT RETURN CODE TO DECIMAL @VA04250 01603000
  1624. UNPK MSGSUME2,WKDWD+FIVE(THREE) @VA04250 01604000
  1625. OI MSGSUME2+TWO,UNPKMASK MAKE THE RCODE PRINTABLE @VA04250 01605000
  1626. LA R3,MSGSUMEL LENGTH OF MESSAGE @VA04250 01606000
  1627. WRTERM MSGSUMER,(R3) TELL USER OF READ ERROR @VA04250 01607000
  1628. B RETCOD8 GO TO RETURN CODE 8 EXIT @VA04250 01608000
  1629. MSGSUMER DC C'DMMPRO100S ERROR ''' @VA04250 01609000
  1630. MSGSUME2 DC C' ' RETURN CODE @VA04250 01610000
  1631. MSGSUME3 DC C''' READING FILE ''SUMMARY RECORD A1''' @VA04250 01611000
  1632. MSGSUMEL EQU *-MSGSUMER LENGTH OF ERROR MESSAGE @VA04250 01612000
  1633. EJECT 01613000
  1634. ************************************************************** 01614000
  1635. * CONSTANTS SAVEAREAS AND EQUATES 01615000
  1636. ************************************************************** 01616000
  1637. DS 0F @VA04250 01617000
  1638. SAVEAREA EQU * THIS PROGRAM'S SAVE AREA @VA04250 01618000
  1639. SAVEUSR DS F USER WORD @VA04250 01619000
  1640. SAVEFWD DS F FORWARD POINTER @VA04250 01620000
  1641. SAVEBACK DS F BACKWARD POINTER @VA04250 01621000
  1642. SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 01622000
  1643. SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 01623000
  1644. SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 01624000
  1645. SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 01625000
  1646. SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 01626000
  1647. SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 01627000
  1648. SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 01628000
  1649. SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 01629000
  1650. SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 01630000
  1651. SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 01631000
  1652. SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 01632000
  1653. SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 01633000
  1654. SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 01634000
  1655. SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 01635000
  1656. SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 01636000
  1657. R1SAVE DS F SAVE AREA FOR R1 @VA04250 01637000
  1658. RD59 DS 5F SAVE AREA FOR R5 THROUGH R9 @VA04250 01638000
  1659. R23 DS 2F SAVE AREA FOR R2 AND R3 @VA04250 01639000
  1660. WKWD DS F ONE WORD OF WORK AREA @VA04250 01640000
  1661. WKDWD DS D DOUBLE WORD OF WORK AREA @VA04250 01641000
  1662. PNUMIN EQU * READ AREA FOR NEW PROBLEM NUMBER @VA04250 01642000
  1663. OUTPUT DS CL80 OUTPUT AREA FOR MESSAGES @VA04250 01643000
  1664. ADDREC EQU OUTPUT OUTPUT AREA FOR ADDED DATA @VA04250 01644000
  1665. ADDDATE EQU OUTPUT+34 OUTPUT AREA FOR ADDED DATE @VA04250 01645000
  1666. ADDTIME EQU OUTPUT+25 OUTPUT AREA FOR ADDED TIME @VA04250 01646000
  1667. INPUT DS CL160 INPUT AREA FOR USER RESPONSES @VA04250 01647000
  1668. TEXTSW DC C' ' 01647100
  1669. TEXTSWON EQU X'FF' 01647200
  1670. SPACE 1 01648000
  1671. ************** SWITCH INDICATING WHETHER OR NOT 01649000
  1672. OLDSW DC X'00' WE ARE PROCESSING AN OLD PROBLEM @VA04250 01650000
  1673. OLDON EQU X'01' PROCESSING DATA FOR AN OLD PROB @VA04250 01651000
  1674. OLDOFF EQU X'00' NEW PROBLEM @VA04250 01652000
  1675. SPACE 1 01653000
  1676. ************** SWITCH INDICATING WHETHER OR NOT 01654000
  1677. DBYTE DC X'00' REPROMPTING IS IN PROGRESS @VA04250 01655000
  1678. REPROMPT EQU X'01' REPROMPTING IS IN PROGRESS @VA04250 01656000
  1679. NORMAL EQU X'00' REPROMPTING NOT IN PROGRESS @VA04250 01657000
  1680. ************** 01658000
  1681. PNSWITCH DC X'00' LOOKING FOR PROBLEM NUMBER SW @VA04250 01659000
  1682. PNSWON EQU X'01' WE ARE LOOKING @VA04250 01660000
  1683. PNSWOFF EQU X'00' NOT LOOKING @VA04250 01661000
  1684. ************** 01662000
  1685. FOFO DC C'00000' X'F0F0F0F0F0' MASK @VA04250 01663000
  1686. ADDSUM DS FL3'0' AREA USED FOR ARITHMATIC @VA04250 01664000
  1687. SPACE 1 01665000
  1688. ************** FIRST TIME SWITCH FOR WRTERM. 01666000
  1689. ENTSW DC X'00' NUMBER WILL BE DISPLAYED. @VA04250 01667000
  1690. ENTON EQU X'01' PROMPT NUMBER ALREADY DISPLAYED @VA04250 01668000
  1691. ENTOFF EQU X'00' PROMPT NUMBER NOT YET DISPLAYED @VA04250 01669000
  1692. ************** 01670000
  1693. AONE DC X'1C' PACKED 1 TO ADD TO PROBLEM NUMBER@VA04250 01671000
  1694. ************** 01672000
  1695. PRBXXXXX DC C'PRB00000' FILE NAME OF PROBLEM REPORT @VA04250 01673000
  1696. XXXXX EQU PRBXXXXX+3 NUMERIC PORTION OF FILENAME @VA04250 01674000
  1697. PLENGTH EQU 5 LENGTH OF NUMERIC PORTION @VA04250 01675000
  1698. ************** 01676000
  1699. PRBFTFN DC C'REPORT A1' PROBLEM RERORT FILETYPE AND MODE @VA04250 01677000
  1700. SUMMFILE DC C'SUMMARY RECORD A1' NEXT PROB NUMBER FILE @VA04250 01678000
  1701. VSRCH DC V(DMMSEA) POINTER TO SEARCH ROUTINE @VA04250 01679000
  1702. VWRTREC DC V(DMMWRT) POINTER TO WRITEREC ROUTINE @VA04250 01680000
  1703. KYREST DC A(KYAREA) SAVE FOR CURRENT KEY POINTER @VA04250 01681000
  1704. LOGPTR DC A(LOGTBL) POINTER TO REPROMPT LOG TABLE @VA04250 01682000
  1705. LOGCURR DC A(LOGTBL) CURRENT LOCATION IN LOG TABLE @VA04250 01683000
  1706. *************************************************************** 01684000
  1707. * FOLLOWING VALUES INSURE CORRECT SPELLING OF MAJOR SYMPTOMS 01685000
  1708. *************************************************************** 01686000
  1709. ABEND DC C'ABEND' @VA04250 01687000
  1710. DC 16C' ' INSURE NO TRASH IF EXTRA DATA @VA04250 01688000
  1711. MSG DC C'MS' @VA04250 01689000
  1712. DC 16C' ' INSURE NO TRASH IF EXTRA @VA04250 01690000
  1713. WAIT DC C'WAIT' @VA04250 01691000
  1714. DC 9C' ' @VA04250 01692000
  1715. LOOP DC C'LOOP' @VA04250 01693000
  1716. DC 9C' ' @VA04250 01694000
  1717. INCORR DC C'INCORROUT' @VA04250 01695000
  1718. DC 3C' ' @VA04250 01696000
  1719. PERFORM DC C'PERFM' @VA04250 01697000
  1720. DC 7C' ' @VA04250 01698000
  1721. INFORM DC C'INFORMATION' @VA04250 01699000
  1722. DC 1C' ' @VA04250 01700000
  1723. DOCUM DC C'DOC' @VA04250 01701000
  1724. DC 10C' ' @VA04250 01702000
  1725. INCSPELL DC CL10'DUPLICATE' @VA04250 01703000
  1726. DC CL10'MISSING' @VA04250 01704000
  1727. DC CL10'OVERLAID' @VA04250 01705000
  1728. DC CL10'GARBLED' @VA04250 01706000
  1729. DC CL10'FORMAT' @VA04250 01707000
  1730. DC CL10'FUNCTION' @VA04250 01708000
  1731. DC CL10'SEQUENCE' @VA04250 01709000
  1732. DC X'FF' MARKS END OF INCORROUT CHECKING @VA04250 01710000
  1733. INCEND EQU X'FF' END OF INCORROUT COMPARE DATA @VA04250 01711000
  1734. INCLEN EQU 10 LENGTH OF EACH ENTRY ABOVE @VA04250 01712000
  1735. STATE1 DC C'ENA' ENABLED STATE VALIDITY CHECK @VA04250 01713000
  1736. STATE2 DC C'DIS' DISABLED STATE VALIDITY CHECK @VA04250 01714000
  1737. *************************************************************** 01715000
  1738. * MESSAGE TO TELL USER PROBLEM NUMBER 01716000
  1739. *************************************************************** 01717000
  1740. MSGTELL DC C'THIS PROBLEM HAS BEEN ASSIGNED NUMBER ' @VA04250 01718000
  1741. MSGPRB DS CL5 PROBLEM NUMBER WILL GO HERE @VA04250 01719000
  1742. LMSGTELL EQU *-MSGTELL LENGTH OF MSGTELL MESSAGE @VA04250 01720000
  1743. EJECT 01721000
  1744. *************************************************************** 01722000
  1745. * ALL MESSAGES ISSUED ARE CODED USING A SPECIAL MSGP MACRO. 01723000
  1746. * MSGP MACRO PROTOTYPE IS AS FOLLOWS: 01724000
  1747. * &NAME MSGP MSG=,MIN=,MAX=,TYPE=,MORE=NO,KEY= 01725000
  1748. * MSG MESSAGE TEXT TO APPEAR AT TERMINAL 01726000
  1749. * MIN MINIMUM NUMBER OF CHARACTERS ALLOWED ON INPUT 01727000
  1750. * MAX MAXIMUM NUMBER OF CHARACTERS ALLOWED ON INPUT 01728000
  1751. * TYPE TYPE OF ALLOWED INPUT (HEX,CHAR, OR NUMERIC) 01729000
  1752. * MORE WHETHER MORE LINES FOLLOW IN THIS PROMPT BEFORE READ 01730000
  1753. * KEY KEYWORD TO BE ASSOCIATED WITH USER RESPONSE 01731000
  1754. *************************************************************** 01732000
  1755. MSGAREA EQU * @VA04250 01733000
  1756. MSGEXIST MSGP MSG='DOES THIS PERTAIN TO AN EXISTING PROBLEM REPORT? (YX01734000
  1757. OR N)',MIN=1,MAX=3 @VA04250 01735000
  1758. MSGPCPU MSGP MSG='DOES PROBLEM PERTAIN TO THIS CPU? (Y OR N)', C01736000
  1759. KEY=VMCPU,MAX=3,MIN=1 @VA04250 01737000
  1760. MSGCPU MSGP MAX=3,TYPE=NUM,MSG='ENTER CPU TYPE. (NNN)', @VA04250X01738000
  1761. MIN=3 @VA04250 01739000
  1762. MSGSER MSGP TYPE=NUM,MSG='ENTER CPU SERIAL. (NNNNN)',MIN=5,MAX=5 01740000
  1763. MSGSDATA MSGP MSG='ENTER LOCATION OF SUPPORTING DATA.' @VA04250 01741000
  1764. MSGSDAT2 MSGP MSG='ENTER FN FT FM PLUS DESCRIPTION OR NULL WHEN DONE' 01742000
  1765. MSGSEV MSGP TYPE=NUM,MAX=1,MSG='ENTER SEVERITY. 1-4 (N)' @VA04250 01743000
  1766. MSGBYPAS MSGP MSG='IS BYPASS FOR PROBLEM REQUESTED? (Y OR N)', X01744100
  1767. MAX=3,MIN=1 @VA05440 01744200
  1768. MSGCID MSGP KEY=VMCOMPID,MAX=10,MSG='ENTER COMPONENT ID IF KNOWN, EGX01745000
  1769. 5749DMK00 (MAX 10 CHAR)',MIN=1 @VA04250 01746000
  1770. MSGPLC MSGP MAX=3,TYPE=NUM,KEY=VMPLC,MSG='ENTER PLC LEVEL. (1-3 CHARC01747000
  1771. -OMIT LEADING ZEROS)',MIN=1 @VA05440 01748100
  1772. MSGSCP MSGP MAX=3,TYPE=NUM,KEY=VMSCPLV,MSG='ENTER SCP LEVEL. (1-3 CHA01749000
  1773. AR-OMIT LEADING ZEROS)',MIN=1 @VA05440 01750100
  1774. MSGDATE MSGP MSG='ENTER DATE OF FAILURE. (MM/DD/YY)',MIN=8, @V4M0224X01751100
  1775. MAX=8 @VA04250 01752000
  1776. MSGFAIL MSGP MORE=YES,MSG='SELECT ONE OF THE FOLLOWING KEYWORDS' 01753000
  1777. MSGFAIL2 MSGP MORE=YES,MSG='MSG ABEND' @VA04250 01754000
  1778. MSGFAIL3 MSGP MORE=YES,MSG='DOC PERFORMANCE (PER)' @VA04250 01755000
  1779. MSGFAIL4 MSGP MORE=YES,MSG='LOOP INCORROUT (INC)' @VA04250 01756000
  1780. MSGFAIL5 MSGP MSG='WAIT INFORMATION (INF)',KEY=VMFAILURE, @VA04250X01757000
  1781. MIN=3 @VA04250 01758000
  1782. MSGENV MSGP MSG='ENTER OPERATING ENVIRONMENT. CP,CMS,RSCS,VS1,VS2,DOX01759000
  1783. S,ETC. (20 CHAR MAX)',KEY=VMENVIR,MAX=20,MIN=1 @VA04250 01760000
  1784. MSGABCOD MSGP MSG='ENTER ABEND CODE. EG 0CX',KEY=VMFAILURE,MAX=10,MIN=X01761000
  1785. 1 @VA04250 01762000
  1786. MSGFMOD MSGP MSG='ENTER FAILING MODULE IF KNOWN. EG DMKPAG (8 CHAR MAC01763000
  1787. X)',MAX=8,KEY=VMMODULE,MIN=1 @VA04250 01764000
  1788. MSGDSP MSGP MSG='ENTER DISPLACEMENT WITHIN FAILING MODULE. (4 CHAR EX01765000
  1789. XACTLY)',KEY=VMDISP,TYPE=HEX,MAX=4,MIN=4 @VA04250 01766000
  1790. MSGCALL MSGP MSG='ENTER CALLING MODULE IF KNOWN (8 CHAR MAX)',MAX=8,KX01767000
  1791. EY=VMCALLER,MIN=1 @VA04250 01768000
  1792. MSGCMD MSGP MSG='ENTER COMMAND WHICH CAUSED FAILURE IF APPLICABLE',KX01769000
  1793. EY=VMCMD,MAX=79 @VA04250 01770000
  1794. MSGDOC MSGP MSG='SELECT ONE OF THE FOLLOWING:',MORE=YES @VA04250 01771000
  1795. MSGDOC2 MSGP MSG='PUB PLC OR PTF FICHE',KEY=VMDOC, @VA04250X01772000
  1796. MAX=5,MIN=3 @VA04250 01773000
  1797. MSGPUB MSGP MSG='ENTER PUBLICATION NUMBER. EG GC20/1820',KEY=VMDOCNOX01774000
  1798. ,MAX=20,MIN=5 @VA04250 01775000
  1799. MSGPAGE MSGP MSG='ENTER PAGE NUMBER IN ERROR',MAX=6,MIN=1, @VA04250X01776000
  1800. KEY=VMPAGE @VA04250 01777000
  1801. MSGDEV MSGP MSG='ENTER DEVICE TYPE IF APPLICABLE',KEY=VMDEVTYPE 01778000
  1802. MSGINC MSGP MSG='SELECT BEST DESCRIPTION FROM FOLLOWING',MORE=YES 01779000
  1803. MSGINC2 MSGP MSG='DUPLICATE,MISSING,OVERLAID,GARBLED,FORMAT,FUNCTION,X01780000
  1804. SEQUENCE',KEY=VMDATA,MAX=10,MIN=6 @VA04250 01781000
  1805. MSGSTATE MSGP MSG='ENTER WHETHER DISABLED OR ENABLED. (DIS OR ENA)',MIN01782000
  1806. N=3,KEY=VMSTATE @VA04250 01783000
  1807. MSGLMOD MSGP MSG='ENTER KNOWN MODULES WITHIN LOOP. EG MOD1,MOD2,MOD3'X01784000
  1808. ,KEY=VMMODULE,MAX=79 @VA04250 01785000
  1809. MSGLADDR MSGP MSG='ENTER UP TO 10 LOOP ADDRESSES. ADDR1,ADDR2,ADDR3..'X01786000
  1810. ,KEY=VMADDR,MAX=79 @VA04250 01787000
  1811. MSGCPSW MSGP MSG='ENTER CURRENT PSW. (XXXXXXXXXXXXXXXX) (16 CHAR EXACX01788000
  1812. TLY)',TYPE=HEX,MAX=16,MIN=16 @VA04250 01789000
  1813. MSGMSG MSGP MSG='ENTER COMPLETE MESSAGE NUMBER. EG DMKAAANNNA',KEY=VX01790000
  1814. MFAILURE,MAX=20,MIN=1 @VA04250 01791000
  1815. MSGRCODE MSGP MSG='ENTER RETURN CODE IF APPLICABLE',KEY=VMRC,MAX=8,MINX01792000
  1816. =1 @VA04250 01793000
  1817. MSGPREV MSGP MSG='ENTER PREVIOUS MESSAGE IF APPLICABLE',KEY=VMPREVMSGX01794000
  1818. ,MAX=20,MIN=1 @VA04250 01795000
  1819. MSGPERF MSGP MSG='ENTER NATURE OF DEGRADATION. EG TOTAL,TP,I/O,VIRTMAC01796000
  1820. CH',KEY=VMDEGRADE,MAX=20 @VA04250 01797000
  1821. MSGPNUM MSGP MSG='ENTER PROBLEM NUMBER. (1-5 DIGITS)',TYPE=NUM,MIN=1,X01798000
  1822. MAX=5 @VA04250 01799000
  1823. MSGNOPRB MSGP MSG='PRBXXXXX REPORT A1 DOES NOT EXIST.' @VA04250 01800000
  1824. MSGTEXT MSGP MSG='ENTER TEXT DESCRIPTION OF PROBLEM OR NULL LINE' 01801000
  1825. MSGTEXT1 MSGP MSG='ENTER TEXT (MAX 80 CHAR/LINE)' @VA04250 01802000
  1826. MSGDONE MSGP MSG='PRBNNNNN REPORT A1 APPENDED' @VA04250 01803000
  1827. MSGERR1 MSGP MSG='REPROMPT WITHIN REPROMPT NOT ALLOWED' @VA04250 01804000
  1828. MSGERR2 MSGP MSG='REQUESTED REPROMPT LINE NOT FOUND' @VA04250 01805000
  1829. MSGERR3 MSGP MSG='MINIMUM INPUT NOT ENTERED --REENTER--' @VA04250 01806000
  1830. MSGERR4 MSGP MSG='MAXIMUM ALLOWED INPUT EXCEEDED --REENTER--' 01807000
  1831. MSGERR5 MSGP MSG='NUMERIC INPUT EXPECTED. NON-NUMERIC FOUND. --REENTEC01808000
  1832. R--' @VA04250 01809000
  1833. MSGERR6 MSGP MSG='HEX INPUT EXPECTED. NON-HEX FOUND. --REENTER--' 01810000
  1834. MSGERR7 MSGP MSG='PLEASE REENTER IN THE EXACT FORMAT SHOWN BETWEEN THX01811000
  1835. E PARENTHESES' @VA04250 01812000
  1836. MSGERRI MSGP MSG='IMBEDDED BLANKS NOT ALLOWED IN THIS REPLY' @VA04250 01813000
  1837. EJECT 01814000
  1838. *************************************************************** 01815000
  1839. * ADCONS POINTING TO DATA AREAS CUT DOWN ON BASE REGISTERS 01816000
  1840. *************************************************************** 01817000
  1841. DS 0F @VA04250 01818000
  1842. WRTPARM EQU * PARMS PASSED TO WRITEREC @VA04250 01819000
  1843. INTPT DC A(INTAREA) POINTER TO INTSECT AREA @VA04250 01820000
  1844. KYOUTLN DC A(KYAREALN) POINTER TO LENGTH OF KY DATA @VA04250 01821000
  1845. TXTOUTLN DC A(TEXTLN2) POINTER TO TEXT LENGTH @VA04250 01822000
  1846. SUPPLNTH DC A(SUPPLN2) PTR TO SUPPLEMENTARY DATA LENGTH @VA04250 01823000
  1847. * END OF PARMS USED BY WRITEREC 01824000
  1848. SUPPCURR DC A(SUPPDATA) CURRENT PTR TO SUPPLEMENTARY DATA@VA04250 01825000
  1849. SUPPPT DC A(SUPPDATA) START OF SUPPLEMENTARY DATA @VA04250 01826000
  1850. SUPPBACK DC A(SUPPDATA) POINTER USED IN REPROMPT @VA04250 01827000
  1851. SUPPEND DC A(SUPPEND1) POINTER TO END OF SUPP DATA AREA @VA04250 01828000
  1852. TEXTPT DC A(TEXTAREA) POINTER TO TEXT I/O AREA @VA04250 01829000
  1853. TEXTCURR DC A(TEXTAREA) CURRENT PTR WITHIN TEXT I/O AREA @VA04250 01830000
  1854. TEXTEND DC A(TEXTEND1) POINTER TO END OF TEXT AREA @VA04250 01831000
  1855. TEXTLAST DC A(TEXTAREA) TO CONTROL REPROMPTS FOR TEXT @VA04250 01832000
  1856. TEXTBACK DC A(TEXTAREA) TO CONTROL REPROMPTS FOR TEXT @VA04250 01833000
  1857. TEXTLNTH DC A(TEXTLN2) POINTER TO LENGTH OF ENTERED TEXT@VA04250 01834000
  1858. KYAREAPT DC A(KYAREA) POINTER TO KEY AREA @VA04250 01835000
  1859. KYCURRPT DC A(KYAREA) CURRENT POINTER INTO KEYAREA @VA04250 01836000
  1860. PATCH DC 80F'0' PATCH AREA @VA04250 01837000
  1861. LTORG @VA04250 01838000
  1862. EJECT 01839000
  1863. *************************************************************** 01840000
  1864. * DATA AREAS. ALL ARE ADDRESSED VIA ADCONS ABOVE 01841000
  1865. *************************************************************** 01842000
  1866. * TRACE TABLE 01843000
  1867. LOGTBL DC 300F'0' TABLE USED TO LOG PROMPTS @VA04250 01844000
  1868. ENDMARK DC X'FF' END OF LOGTABLE INDICATOR @VA04250 01845000
  1869. DS 0F @VA04250 01846000
  1870. INTAREA DC 160C' ' AREA TO CONTAIN INTERNAL DATA @VA04830 01847500
  1871. KYAREALN DC X'00000000' LENGTH OF DATA IN KEYAREA @VA04250 01848000
  1872. KYAREA DC 400X'00' AREA TO CONTAIN KYWDS AND VALUES @VA04250 01849000
  1873. SUPPLN2 DC X'0000' LENGTH OF SUPPLEMENTARY DATA @VA04250 01850000
  1874. SUPPDATA DC 400C' ' AREA TO CONTAIN SUPLEMENTARY DATA@VA04250 01851000
  1875. SUPPEND1 EQU * END OF SUPLEMENTARY DATA @VA04250 01852000
  1876. DC C' ' FOR EASE OF CLEARING SUPPDATA @VA04250 01853000
  1877. TEXTLN2 DC X'0000' LENGTH OF ENTERED TEXT INFO @VA04250 01854000
  1878. TEXTAREA DC 1600C' ' TEXT DESCRIPTION OF PROBLEM @VA04250 01855000
  1879. TEXTEND1 EQU * END OF TEXT AREA @VA04250 01856000
  1880. *************************************************************** 01857000
  1881. * GENERAL EQUATES 01858000
  1882. *************************************************************** 01859000
  1883. PACKMASK EQU X'0F' USED TO MAKE A PACKED VALUE PLUS @VA04250 01860000
  1884. UNPKMASK EQU X'F0' USED TO MAKE UNPKD VALUES PRINT @VA04250 01861000
  1885. BLANK EQU C' ' BLANK @VA04250 01862000
  1886. FNOTFND EQU X'1C' FILE NOT FOUND @VA04250 01863000
  1887. NOKYWD EQU X'00' NO KEYWORD IN MESSAGE @VA04250 01864000
  1888. HEXZERO EQU X'00' VALUE OF HEX 0 @VA04250 01865000
  1889. FENCE EQU X'FF' END OF FIELD INDICATOR @VA04250 01866000
  1890. NUMERIC EQU X'F0' NUMERIC MASK @VA04250 01867000
  1891. ALPHAA EQU C'A' CHARACTER A @VA04250 01868000
  1892. ALPHAF EQU C'F' CHARACTER F @VA04250 01869000
  1893. YES EQU C'Y' USED TO TEST FOR YES @VA04250 01870000
  1894. NO EQU C'N' USED TO TEST FOR NO @VA04250 01871000
  1895. CHARZERO EQU C'0' CHARACTER ZERO @VA04250 01872000
  1896. FOUR EQU C'4' 4 FOR SEVERITY LIMIT CHECKING @VA04250 01873000
  1897. SEVDFLT EQU C' ' SEVERITY DEFAULT OF BLANK @VA04250 01874000
  1898. ONE EQU C'1' 1 FOR SEVERITY LIMIT CHECKING @VA04250 01875000
  1899. SLASH EQU C'/' SLASH FOR DATE FORMAT CHECKING @VA04250 01876000
  1900. DASH EQU C'-' DASH FOR INSERTING IN OUTPUT @VA04250 01877000
  1901. DISP1 EQU 1 INCR OR DECR 1 @VA04250 01878000
  1902. TWO EQU 2 FOR MVC LENGTHS ETC. @VA04250 01879000
  1903. CKLN1 EQU 2 COMPARE LENGTH FOR ABEND TYPE @VA04250 01880000
  1904. THREE EQU 3 FOR MVC LENGTHS ETC. @VA04250 01881000
  1905. CKLN2 EQU 3 COMPARE LENGTH FOR ABEND TYPE @VA04250 01882000
  1906. PLCCNT EQU 3 SIZE OF PLC INFO @VA04250 01883000
  1907. SCPCNT EQU 3 SIZE OF SCP INFO @VA04250 01884000
  1908. DISP4 EQU 4 4 FOR MVC LENGTHS ETC. @VA04250 01885000
  1909. WKDWD2 EQU WKDWD+4 SECOND WORD OF WORD DOUBLE WD @VA04250 01886000
  1910. FIVE EQU 5 FOR MVC LENGTHS ETC. @VA04250 01887000
  1911. FIVECARD EQU 5 NUMBER OF CARDS OF SUPP DATA @VA04250 01888000
  1912. SIX EQU 6 FOR MVC LENGTHS ETC. @VA04250 01889000
  1913. SEVEN EQU 7 FOR MVC LENGTHS ETC. @VA04250 01890000
  1914. WKDWDEND EQU WKDWD+7 LAST BYTE OF WORK DOUBLE WORD @VA04250 01891000
  1915. EIGHT EQU 8 FOR MVC LENGTHS ETC. @VA04250 01892000
  1916. CPSWLN EQU 12 LENGTH OF 'CURRENT PSW =' @VA04250 01893000
  1917. TRSIZE EQU 12 TRACE TABLE ENTRY SIZE @VA04250 01894000
  1918. THIRTEEN EQU 13 LENGTH OF ***ADDED*** LITERAL @VA04250 01895000
  1919. FIFTEEN EQU 15 TO PUT LOOP ADDRESSED IN OUTPUT @VA04250 01896000
  1920. SIXTEEN EQU 16 FOR MVC LENGTH ETC. @VA04250 01897000
  1921. MAXLINES EQU 20 MAX TEXT INPUT ALLOWED @VA04250 01898000
  1922. CARDLEN EQU 80 SIZE OF CARD OF DATA @VA04250 01899000
  1923. TWOK EQU 2048 FOR SETTING UP BASE REGS @VA04250 01900000
  1924. FOURK EQU 4096 FOR SETTING UP BASE REGS @VA04250 01901000
  1925. EIGHTK EQU 8192 FOR SETTING UP BASE REGS @VA04250 01902000
  1926. PSWL EQU 16 LENGTH OF A PSW @VA04250 01903000
  1927. LFLDLEN EQU 4 LENGTH OF LENGTH FIELD (VAR RCD) @VA04250 01904000
  1928. *************************************************************** 01905000
  1929. * EXTERNAL DSECTS AND REGISTER EQUATES 01906000
  1930. *************************************************************** 01907000
  1931. COPY MSGCNTRL @VA04250 01908000
  1932. COPY INTSECT @VA04250 01909000
  1933. COPY SYMSECT @VA04250 01910000
  1934. REGEQU @VA04250 01911000
  1935. NUCON @VA04250 01912000
  1936. END 01913000