Table of Contents

DMKCPR Source

References

Source Listing

DMKCPR.ASSEMBLE.txt
  1. CPS TITLE 'DMKCPR (CP) VM/370 - RELEASE 6' 00001000
  2. *. 00002000
  3. * MODULE NAME - 00003000
  4. * 00004000
  5. * DMKCPR 00005000
  6. * 00006000
  7. * FUNCTION - 00007000
  8. * 00008000
  9. * BRING THE SYSTEM TO AN ORDERLY SHUTDOWN, SAVING SPOOL FILES 00009000
  10. * AND ACCOUNTING INFORMATION. 00010000
  11. * 00011000
  12. * ATTRIBUTES - 00012000
  13. * 00013000
  14. * REENTRANT, PAGEABLE, CALLED VIA SVC 00014000
  15. * 00015000
  16. * ENTRY POINTS 00016000
  17. * 00017000
  18. * DMKCPRSH - BRING THE SYSTEM TO AN ORDERLY SHUTDOWN, SAVING 00018000
  19. * SPOOL FILE AND ACCOUNTING INFORMATION 00019000
  20. * 00020000
  21. * ENTRY CONDITIONS - 00021000
  22. * 00022000
  23. * GPR11 = ADDRESS OF CALLER'S VMBLOK 00023000
  24. * GPR12 = ADDRESS OF ENTRY POINT 00024000
  25. * GPR13 = ADDRESS OF SAVEAREA 00025000
  26. * 00026000
  27. * EXIT CONDITIONS - 00027000
  28. * 00028000
  29. * NONE 00029000
  30. * 00030000
  31. * CALLS TO OTHER ROUTINES - 00031000
  32. * 00032000
  33. * DMKFREE - TO OBTAIN STORAGE 00033000
  34. * DMKFRET - TO RETURN A BLOCK OF STORAGE 00034000
  35. * DMKDSBSD - RECORD 3330/3340/3350/2305 STATISTICAL DATA 00035000
  36. * DMKRSESD - RECORD 3800 STATISTICAL DATA 00036000
  37. * DMKIOESR - SYNCHRONOUS OBR PROCESSING 00037000
  38. * DMKDMPRS - RE-IPL SYSTEM 00038000
  39. * DMKVSPCO - CLOSE FUNCTIONS FOR SPOOLED PRT/PCH 00039000
  40. * DMKPRGMC - ADDR OF MONCOM 00040000
  41. * DMKSPLDL - DELETE SPOOL FILES ON THE 3800 DELAY QUEUE 00041000
  42. * 00042000
  43. * EXTERNAL REFERENCES - 00043000
  44. * 00044000
  45. * NONE 00045000
  46. * 00046000
  47. * TABLES / WORKAREAS - 00047000
  48. * 00048000
  49. * 00049000
  50. * 00050000
  51. * REGISTER USAGE - 00051000
  52. * 00052000
  53. * GPR0 = PARMS PASSED TO CALLED ROUTINES, PSA BASE REG 00053000
  54. * GPR1 = WORK REGESTER 00054000
  55. * GPR2 = PARMS PASSED TO CALLED ROUTINES 00055000
  56. * GPR3 = LENGTH FOR EXECUTED MOVES AND COMPARES 00056000
  57. * GPR4 = INTERNAL LINKAGE (2ND LEVEL) 00057000
  58. * GPR5 = INTERNAL LINKAGE (2ND LEVEL) 00058000
  59. * GPR6 = RCHBLOK BASE 00059000
  60. * GPR7 = RCUBLOK BASE 00060000
  61. * GPR8 = RDEVBLOK BASE 00061000
  62. * GPR9 = WORK REGISTER 00062000
  63. * GPR10 = IOBLOK BASE 00063000
  64. * GPR11 = VMBLOK BASE 00064000
  65. * GPR12 = MODULE BASE 00065000
  66. * GPR13 = SAVEAREA BASE 00066000
  67. * GPR14 = EXTERNAL LINKAGE 00067000
  68. * GPR15 = EXTERNAL LINKAGE 00068000
  69. * 00069000
  70. * OPERATION - 00070000
  71. * 00071000
  72. * THE COMMAND HANDLING ROUTINES IN DMKCPR ARE CALLED FROM DMKCFM 00072000
  73. * AFTER THEIR PRIVILEGE CLASS HAS BEEN VERIFIED 00073000
  74. *. 00074000
  75. EJECT 00075000
  76. *. 00076000
  77. * 00077000
  78. * SUBROUTINE NAME - 00078000
  79. * 00079000
  80. * DMKCPRSH 00080000
  81. * 00081000
  82. * FUNCTION - 00082000
  83. * 00083000
  84. * TO TERMINATE ALL SYSTEM ACTIVITY AND SAVE SYSTEM STATUS FOR A 00084000
  85. * FUTURE WARM START 00085000
  86. * 00086000
  87. * COMMAND LINE FORMAT - 00087000
  88. * 00088000
  89. * +------------+--------------+ 00089000
  90. * | SHUTDOWN | NO OPERAND | 00090000
  91. * | SHUTDOWN | | 00091000
  92. * +------------+--------------+ 00092000
  93. * 00093000
  94. * OPERATION - 00094000
  95. * 00095000
  96. * 1. LOCATE THE CONSOLE VDEVBLOK FOR THE CALLER AND THE 00096000
  97. * OPERATOR, IF AN ACTIVE CONSOLE SPOOL FILE EXIST; CALL 00097000
  98. * DMKVSPCO TO CLOSE AND CHAIN THE SPOOL FILE BLOK. 00098000
  99. * 2. LOCATE RDEVBLOK 00099000
  100. * A. CALL DMKIOESR IF STATISTICAL DATA (OUTBOARD) EXISTS 00100000
  101. * FOR THIS DEVICE,TO PROCESS OBR SYCHRONOUSLY. 00101000
  102. * B. CALL DMKDSBSD TO RECORD STATISTICAL DATA FOR 00102000
  103. * EACH TYPE OF DASD. 00103000
  104. * EACH DASD DEVICE OR DMKRSESD FOR A 3800 PRINTER. 00104000
  105. * C. FOR EACH 3800, DELETE EACH FILE ON ITS 00105000
  106. * DELAYED PURGE QUEUE. 00106000
  107. * IF THE MONITOR IS ACTIVE THEN STOP IT. 00107000
  108. * 3. PLACE THE CHARACTER STRING 'CPCP' IN THE CPID WORD IN PSA. 00108000
  109. * 4. GO TO THE 'RESTART' FUNCTION (DMKDMPRS) IN DMKDMPDK TO 00109000
  110. * RE-IPL THE SYSTEM. CHECKPOINT (DMKCKP) WILL SAVE ALL 00110000
  111. * SPOOLING AND ACCOUNTING INFORMATION, AND PLACE THE 00111000
  112. * STRING 'SHUT' IN CPID TO INDICATE SHUTDOWN COMPLETE. 00112000
  113. * 00113000
  114. * MESSAGES - 00114000
  115. * 00115000
  116. * NONE 00116000
  117. * 00117000
  118. *. 00118000
  119. EJECT 00119000
  120. COPY OPTIONS @VA03757 00120000
  121. COPY LOCAL @VA03757 00121000
  122. EJECT 00122000
  123. PUNCH 'SPB' @VA03757 00123000
  124. DMKCPR CSECT 00124000
  125. MODID DC CL8'DMKCPR' 00125000
  126. SPACE 3 00126000
  127. USING PSA,R0 @VA03757 00127000
  128. USING VMBLOK,R11 @VA03757 00128000
  129. USING SAVEAREA,R13 @VA03757 00129000
  130. SPACE 00130000
  131. ************************************************************** 00131000
  132. * * 00132000
  133. * EXTERNAL SYMBOL TABLE * 00133000
  134. * * 00134000
  135. ************************************************************** 00135000
  136. SPACE 00136000
  137. EXTRN DMKDMPRS @VA03757 00137000
  138. EXTRN DMKSTKCP @V407466 00138000
  139. EXTRN DMKTAPRL TAPE RELEASE EPA @V407466 00139000
  140. EXTRN DMKCVTBD @VA03757 00140000
  141. EXTRN DMKVSPCO @VA03757 00141000
  142. EXTRN DMKDSBSD UNLOAD DASD STAT DATA @VA08187 00142000
  143. EXTRN DMKPRGMC,DMKMNISH @V407595 00143000
  144. EXTRN DMKIOESR SYCHRONOUS OBR PROCESSING @VA03757 00144000
  145. EXTRN DMKSPLDL,DMKCVTAB,DMKSCHST,DMKRSESD 3800 SUPPORT@V60B9BA 00145000
  146. EXTRN DMKSSSDE TO DEMOUNT VOLUME @VA10877 00146000
  147. EXTRN DMKSCNFD Word Scanner HRC002DK 00146300
  148. EXTRN DMKERMSG ERROR MESSAGE ROUTINE HRC002DK 00146600
  149. EJECT 00147000
  150. ************************************************************** 00148000
  151. * * 00149000
  152. * ENTRY POINT FOR DMKCPRSH * 00150000
  153. * * 00151000
  154. ************************************************************** 00152000
  155. SPACE 00153000
  156. DMKCPRSH RELOC SHUTDOWN THE SYSTEM 00154000
  157. L R6,PREFIXA GET ABSOLUTE PSA @VA12314 00154100
  158. TM CPSTAT4-PSA(R6),CPSHUT IS SHUTDOWN IN PROGRESS? @VA12314 00154200
  159. BO EXIT YES...IT'S TOO LATE FOR 2ND CMD @VA12314 00154300
  160. CALL DMKSCNFD HRC002DK 00154306
  161. BNZ NOSHTPRM HRC002DK 00154312
  162. LR R2,R0 HRC002DK 00154318
  163. BCTR R2,0 HRC002DK 00154324
  164. CL R2,F3 HRC002DK 00154330
  165. BL ERRMSG3 HRC002DK 00154336
  166. EX R2,CMPREIPL HRC002DK 00154342
  167. BNZ CHKPOFF HRC002DK 00154348
  168. OI CPSTAT4-PSA(R6),CPREIPL HRC002DK 00154354
  169. B NOSHTPRM HRC002DK 00154360
  170. CHKPOFF EQU * HRC002DK 00154366
  171. EX R2,CMPPOFF HRC002DK 00154372
  172. BNZ ERRMSG3 HRC002DK 00154378
  173. OI CPSTAT4-PSA(R6),CPPWROFF HRC002DK 00154384
  174. NOSHTPRM EQU * HRC002DK 00154390
  175. OI CPSTAT4-PSA(R6),CPSHUT INDICATE SHUTDOWN IN @VA12314 00154400
  176. * PROGRESS 00154500
  177. XC SAVEWRK1(L4),SAVEWRK1 CLEAR FLAG BITS @V407595 00155000
  178. TM APSTAT1,APUOPER IS THE APU OPERATIONAL ? @V407595 00156000
  179. BNO NOAP NO - BYPASS APU PROCESSING @V407595 00157000
  180. OI CPSBITS,APUOPER INDICATE THE APU WAS @V407595 00158000
  181. * OPERATIONAL. 00159000
  182. SWITCH ENSURE RUNNING ON MAIN PROC @V407595 00160000
  183. SIGNAL QUIESCE QUIESCE THE APU @V407595 00161000
  184. SIGNAL SHUTDOWN SET THE APU NOT OPERATIONAL @V407595 00162000
  185. NOAP EQU * @V407595 00163000
  186. SPACE 00164000
  187. ************************************************************** 00165000
  188. * * 00166000
  189. * IF THE MONITOR IS ACTIVE, STOP IT. * 00167000
  190. * * 00168000
  191. ************************************************************** 00169000
  192. SPACE 00170000
  193. L R9,=A(DMKPRGMC) SOME KEY FIELDS IN DMKPRG @VA03757 00171000
  194. L R9,0(R9) PICK UP COMM. AREA ADDRESS @VA03757 00172000
  195. LTR R9,R9 IS THERE ONE @VA03757 00173000
  196. BZ CLOSECON NO, THEN MONITOR IS NOT ACTIVE @VA03757 00174000
  197. SPACE 1 00175000
  198. USING MONCOM,R9 @VA03757 00176000
  199. MVC CPCREG8,ZEROES SHUT OFF EVENT TRACE IMMED. @VA03757 00177000
  200. LCTL C8,C8,ZEROES ... @VA03757 00178000
  201. OI MONFLAG1,CFSTOP INDICATE CONSOLE FUNCTION STOP @VA03757 00179000
  202. TM MONFLAG3,SPOOLED SEE IF SPOOLING @V50A2B5 00180000
  203. BO NOSETUR YES, SKIP NEXT @V50A2B5 00181000
  204. MVC MONUSER,=CL8'SHUTDOWN' SHUTDOWN DID IT @VA03757 00182000
  205. NOSETUR EQU * @V50A2B5 00183000
  206. L R8,MONARDB ADDRESS OF THE RDEVBLOK @VA03757 00184000
  207. USING RDEVBLOK,R8 @VA03757 00185000
  208. L R10,MONAIOB GET THE IOB ADDRESS @VA03757 00186000
  209. USING IOBLOK,R10 @VA03757 00187000
  210. TM MONFLAG3,SPOOLED SEE IF SPOOLING @V50A2B5 00188000
  211. BO NOCHKDV YES, SKIP NEXT @V50A2B5 00189000
  212. TM RDEVSTAT,RDEVNRDY IS THE DEVICE INT REQ? @VA03757 00190000
  213. BO CLOSECON YES, THEN SKIP THE TRAILER @VA03757 00191000
  214. NOCHKDV EQU * @V50A2B5 00192000
  215. LA R0,CPEXSIZE SIZE OF A CPEXBLOK @VA03757 00193000
  216. CALL DMKFREE GET THE BLOCK @VA03757 00194000
  217. USING CPEXBLOK,R1 ADDRESS THE BLOCK @VA03757 00195000
  218. LA R14,CLOSECON ADDRESS OF RETURN POINT @VA03757 00196000
  219. STM R0,R15,CPEXR0 SAVE REGS FOR RETURN FROM MON @VA03757 00197000
  220. ST R1,IOBMISC2 SAVE CPEXBLOK ADDRESS FOR MON @VA03757 00198000
  221. TM MONFLAG3,SPOOLED SEE IF WE ARE SPOOLED @V50A2B5 00199000
  222. BNO CONTIN NO, SKIP NEXT @V50A2B5 00200000
  223. ST R14,CPEXADD STORE AS CPEX ADDR @V50A2B5 00201000
  224. L R2,MONIOBF GET CURRENT IOBUF @V50A2B5 00202000
  225. LTR R2,R2 ANY IO @V50A2B5 00203000
  226. BNZ SENDCP IO ACTIVE, SYSTEM WILL @VA07888 00204000
  227. * SHUTDOWN USING CFSTOP FLAG WHEN I/O COMPLETE 00205000
  228. CALL DMKMNISH YES, CALL SHUTDOWN @V50A2B5 00206000
  229. SENDCP CALL DMKSTKCP STACK CPEXBLOK @V50A2B5 00207000
  230. B GOTODSP GO TO DISPATCHER @V50A2B5 00208000
  231. CONTIN EQU * @V50A2B5 00209000
  232. DROP R1 DEADDRESS THE CPEXBLOK @VA03757 00210000
  233. L R1,MONIOBF GET TAPE BUSY INDICATOR @V407595 00211000
  234. LTR R1,R1 IS TAPE BUSY ? @V407595 00212000
  235. BNZ GOTODSP YES, SKIP MNISH CALL @V407595 00213000
  236. CALL DMKMNISH CALL MNISH TO INITIATE TRAILER @V407595 00214000
  237. GOTODSP GOTO DMKDSPCH MON INT HANDLER WILL RETURN @VA03757 00215000
  238. DROP R8,R9,R10 @VA03757 00216000
  239. EJECT 00217000
  240. ************************************************************** 00218000
  241. * * 00219000
  242. * CLOSE CONSOLE SPOOL FILES FOR OPERATOR AND USER * 00220000
  243. * WHO ISSUED SHUTDOWN. * 00221000
  244. * * 00222000
  245. ************************************************************** 00223000
  246. SPACE 00224000
  247. USING VDEVBLOK,R8 @VA03757 00225000
  248. CLOSECON EQU * SAVE CONSOLE SPOOL FILES @VA03757 00226000
  249. LH R8,VMVTERM CHECK FOR VIRTUAL CONSOLE @VA03757 00227000
  250. LTR R8,R8 IS THERE ONE AT THE MOMENT ? @VA03757 00228000
  251. BM CKOPER NO -- SKIP SPOOL CHECK @VA03757 00229000
  252. AL R8,VMDVSTRT POINT TO THE VDEVBLOK ITSELF @VA03757 00230000
  253. ICM R2,B'1111',VDEVSPL OPEN SPOOL FILE ? @VA03757 00231000
  254. BZ CKOPER NO - @VA03757 00232000
  255. NI VDEVFLAG,255-VDEVCSPL TURN OFF SPOOLING FLAG @VA05613 00233000
  256. SL R8,VMDVSTRT VDEVBLOK DISPLACEMENT @VA03757 00234000
  257. CALL DMKVSPCO,PARM=0 CLOSE FILE @VA03757 00235000
  258. AL R8,VMDVSTRT VDEVBLOK ADDRESS @VA03757 00236000
  259. CKOPER L R2,ASYSOP GET VMBLOK ADDRESS OF OPERATOR @VA03757 00237000
  260. CR R2,R11 IS THIS THE OPERATOR ? @VA03757 00238000
  261. BE RESTVM YES -- RESTORE CALLER VMBLOK @VA03757 00239000
  262. * ADDRESS 00240000
  263. CHARGE SWITCH,(R2) STORE USERS VMTTIME AND SET @V407595 00241000
  264. * OPERATOR'S TO CPU TIMER. 00242000
  265. B CLOSECON CLOSE OPERATOR'S CONSOLE @VA03757 00243000
  266. RESTVM EQU * @V407595 00244000
  267. CHARGE SWITCH,SAVER11 RESUME CHARGING CALLER. @V407595 00245000
  268. DROP R8 @VA03757 00246000
  269. SPACE 00247000
  270. ************************************************************** 00248000
  271. * * 00249000
  272. * RECORD STATISTICAL DATA FOR DASD AND 3800 PRINTER * 00250000
  273. * * 00251000
  274. ************************************************************** 00252000
  275. SPACE 00253000
  276. LA R0,IOBSIZE SIZE OF ONE (1) IOBLOK @VA03757 00254000
  277. CALL DMKFREE @VA03757 00255000
  278. LR R10,R1 IOBLOK ADDRESS INTO R10 @VA03757 00256000
  279. USING IOBLOK,R10 @VA03757 00257000
  280. LA R4,2 INCREMENT FOR BXLE LOOP @VA03757 00258000
  281. SR R1,R1 ZERO CHANNEL INDEX @VA03757 00259000
  282. LA R5,30 END OF INDEX TABLE @VA03757 00260000
  283. DASDCH L R9,ARIOCT ADDRESS OF CHANNEL INDICES @VA03757 00261000
  284. LH R6,0(R1,R9) LOAD INDEX OF NEXT CHANNEL @VA03757 00262000
  285. LTR R6,R6 IS CHANNEL THERE @VA03757 00263000
  286. BM DASDCHI NO, GET NEXT CHANNEL @VA03757 00264000
  287. A R6,ARIOCH ADDRESS OF RCHBLOK IN R6 @VA03757 00265000
  288. USING RCHBLOK,R6 @VA03757 00266000
  289. SR R2,R2 ZERO CONTROL UNIT INDEX COUNT @VA03757 00267000
  290. LA R5,62 END OF CONTROL UNIT INDEX TABLE @VA03757 00268000
  291. DASDCU LH R7,RCHCUTBL(R2) PICK UP INDEX @VA03757 00269000
  292. LTR R7,R7 IS CONTROL UNIT THERE @VA03757 00270000
  293. BM DASDCUI NO, TRY NEXT CU @VA03757 00271000
  294. A R7,ARIOCU ADDRESS OF RCUBLOK TO R7 @VA03757 00272000
  295. USING RCUBLOK,R7 @VA03757 00273000
  296. SR R3,R3 ZERO INDEX FOR DEVICE INDEX @VA03757 00274000
  297. LA R5,30 SET R5 TO END OF DEVICE INDEX @VA03757 00275000
  298. * TABLE 00276000
  299. DASDDEV LH R8,RCUDVTBL(R3) PICK UP INDEX @VA03757 00277000
  300. LTR R8,R8 IS DEVICE THERE @VA03757 00278000
  301. BM DASDDEVI NO, TRY NEXT DEVICE @VA03757 00279000
  302. SLL R8,3(0) CONVERT TO BYTE INDEX @VA03757 00280000
  303. A R8,ARIODV ADDRESS OF RDEVBLOK TO R8 @VA03757 00281000
  304. USING RDEVBLOK,R8 @VA03757 00282000
  305. LR R14,R7 RELOCATE CU ADDR @VA10349 00283000
  306. TM RCUTYPE,RCUSUB SUBORDINATE CU ? @VA10349 00284000
  307. BNO JODEL NO ...CONTINUE @VA10349 00285000
  308. L R14,RCUPRIME YES ..GET THE PRIME CU @VA10349 00286000
  309. JODEL DS 0H 00287000
  310. CL R6,RCUCHA-RCUBLOK(R14) IS THIS PRIME CH - CU @VA10349 00288000
  311. BNE DASDDEVI NO DONT RECORD THIS ONE EITHER @VA10349 00289000
  312. CL R7,RDEVCUA IS THIS THE PRIME DEV - CU @VA10349 00290000
  313. BNE DASDDEVI NO FORGET IT @VA10349 00291000
  314. TESTSDR ICM R15,15,RDEVCTRS PICK UP ADDRESS OF SDRBLOK @VA03757 00292000
  315. * FOR POSSIBLE STATISTICAL DATA RECORDING 00293000
  316. BNP NOCALL NO SDRBLOK, CONTINUE DEVICE LOOP @VA03757 00294000
  317. CALL DMKIOESR GO RECORD OBR SYNCHRONOUSLY @VA03757 00295000
  318. NOCALL EQU * @VA03757 00296000
  319. CLC RDEVTYPC(2),P3800 IS THIS A 3800 ? @V60B9BA 00297000
  320. BE NOCALL3 XFER IF SO @V60B9BA 00298000
  321. NOCALL2 CLI RDEVTYPC,CLASDASD IS DEVICE CLASS DASDI @V60B9BA 00299000
  322. BNE DASDDEVI NO, TRY NEXT DEVICE @VA03757 00300000
  323. NOCALL3 XC IOBLOK(IOBSIZE*8),IOBLOK ZERO OUT IOBLOK @V60B9BA 00301000
  324. ST R10,IOBLINK IOBLOK POINTS TO ITSELF (= @VA03757 00302000
  325. * ORIGINAL COPY) 00303000
  326. OI IOBSPEC,IOBIMSTK INDICATE SHUTDOWN @VA05361 00304000
  327. CLC RDEVTYPC(2),P3800 IS THIS A 3800 ? @V60B9BA 00305000
  328. BE NOCALL3A XFER IF SO @V60B9BA 00306000
  329. CALL DMKDSBSD RECORD STATISTICAL DATA FOR DASD @VA08187 00307000
  330. B DASDDEVI TRY NEXT DEVICE @V60B9BA 00308000
  331. NOCALL3A CALL DMKRSESD RECORD STATISTICAL DATA FOR 3800@V60B9BA 00309000
  332. SPACE 1 00310000
  333. * THE DELAY PURGE QUEUE MUST NOW FINALLY BE PURGED @V60B9BA 00311000
  334. SPACE 1 00312000
  335. LR R9,R7 SAVE R7 FOR NOW @V60B9BA 00313000
  336. TM RDEVSTAT,RDEVDED DEDICATED 3800? @VA10546 00314000
  337. BO NOCALL5 YES, GO TO NEXT DEVICE @VA10546 00315000
  338. NOCALL4 L R7,RDEVDELP GET THE DELAYED PURGE ANCHOR @V60B9BA 00316000
  339. LTR R7,R7 ANYTHING THERE? @VA10546 00317000
  340. BZ NOCALL5 XFER IF NOTHING THERE @V60B9BA 00318000
  341. MVC RDEVDELP,0(R7) NEXT ONE IS NOW FIRST @V60B9BA 00319000
  342. CALL DMKSPLDL GO AND DELETE IT @V60B9BA 00320000
  343. B NOCALL4 DO FOR NEXT ONE ALSO @V60B9BA 00321000
  344. NOCALL5 LR R7,R9 RESTORE R7 @V60B9BA 00322000
  345. DASDDEVI BXLE R3,R4,DASDDEV @VA03757 00323000
  346. LA R5,62 @VA03757 00324000
  347. DASDCUI BXLE R2,R4,DASDCU @VA03757 00325000
  348. LA R5,30 @VA03757 00326000
  349. DASDCHI BXLE R1,R4,DASDCH @VA03757 00327000
  350. EJECT 00328000
  351. ************************************************************** 00329000
  352. * * 00330000
  353. * WHEN HERE - ALL DEVICES HAVE BEEN CHECKED * 00331000
  354. * INDICATE 'CPCP' SHUTDOWN AND GOTO DMKDMPRS * 00332000
  355. * * 00333000
  356. ************************************************************** 00334000
  357. SPACE 00335000
  358. LA R0,IOBSIZE SIZE OF IOBLOK TO FRET @VA03757 00336000
  359. LR R1,R10 FRET THE IOBLOK @VA03757 00337000
  360. CALL DMKFRET @VA03757 00338000
  361. DROP R6,R7,R8,R10 @VA03757 00339000
  362. TM CPSBITS,APUOPER WAS THE APU OPERATIONAL ? @V407595 00340000
  363. BNO NOAP2 NO- BYPASS SET PREFIX @V407595 00341000
  364. SPX ZEROES END OF PREFIXING @V407595 00342000
  365. NOAP2 EQU * @V407595 00343000
  366. MVC CPID(4),=C'CPCP' INDICATE SHUTDOWN TO DMKCKP @VA03757 00344000
  367. GOTO DMKDMPRS GOT TO IT @VA03757 00345000
  368. SPACE 00345100
  369. ERRMSG3 DS 0H HRC002DK 00345110
  370. LA R2,3 HRC002DK 00345120
  371. B ERRRET HRC002DK 00345130
  372. ERRRET DS 0H HRC002DK 00345140
  373. ICM R0,B'1110',DMKCPR+3 HRC002DK 00345150
  374. ICM R2,B'1000',F0 HRC002DK 00345160
  375. CALL DMKERMSG HRC002DK 00345170
  376. EXIT DS 0H @VA12314 00345200
  377. EXIT RETURN TO CALLER @VA12314 00345300
  378. EJECT 00346000
  379. ************************************************************** 00347000
  380. * * 00348000
  381. * DEFINE CONSTANT AND EQUATE POOL * 00349000
  382. * * 00350000
  383. ************************************************************** 00351000
  384. SPACE 00352000
  385. CMPPOFF CLC 0(0,R1),=C'POWEROFF ' HRC002DK 00352300
  386. CMPREIPL CLC 0(0,R1),=C'REIPL ' HRC002DK 00352600
  387. P3800 DC AL1(CLASURO,TYP3800) FOR COMPARISONS @V60B9BA 00353000
  388. L4 EQU 4 LENGTH INDICATOR @V407595 00354000
  389. EJECT 00355000
  390. ************************************************************** 00356000
  391. * * 00357000
  392. * BEGIN LITERAL POOL * 00358000
  393. * * 00359000
  394. ************************************************************** 00360000
  395. SPACE 00361000
  396. LTORG @VA03757 00362000
  397. EJECT 00363000
  398. ************************************************************** 00364000
  399. * * 00365000
  400. * COPY PREDEFINED SOURCE CODING * 00366000
  401. * * 00367000
  402. ************************************************************** 00368000
  403. SPACE 00369000
  404. PSA @VA03757 00370000
  405. COPY DEVTYPES @VA03757 00371000
  406. COPY EQU @VA03757 00372000
  407. COPY IOBLOKS @VA03757 00373000
  408. COPY MONBLOKS @VA03757 00374000
  409. COPY RBLOKS @VA03757 00375000
  410. COPY SAVE @VA03757 00376000
  411. SPACE 2 00377000
  412. CPSBITS EQU SAVEWRK1 @V407466 00378000
  413. SPACE 2 00379000
  414. COPY VBLOKS @VA03757 00380000
  415. COPY VMBLOK @VA03757 00381000
  416. END 00382000