Table of Contents

DMSBTB Source

References

Source Listing

DMSBTB.ASSEMBLE.txt
  1. BTB TITLE 'DMSBTB (CMS) VM/370 - RELEASE 6' 00001000
  2. SPACE 2 00002000
  3. * 00003000
  4. * MODULE NAME: 00004000
  5. * 00005000
  6. * DMSBTB - CMS BATCH BOOTSTRAP ROUTINE 00006000
  7. * 00007000
  8. * FUNCTION: 00008000
  9. * 00009000
  10. * TO LOAD THE BATCH PROCESSOR ROUTINE (DMSBTP) AND USER 00010000
  11. * EXIT ROUTINES (IF THEY EXIST) INTO FREE STORAGE 00011000
  12. * 00012000
  13. * ATTRIBUTES: 00013000
  14. * 00014000
  15. * DISK RESIDENT IN NON-RELOCATABLE (CMS MODULE) FORM 00015000
  16. * 00016000
  17. * ENTRY POINTS: 00017000
  18. * 00018000
  19. * DMSBTB - SEE FUNCTION DESCRIPTION 00019000
  20. * 00020000
  21. * ENTRY CONDITIONS: 00021000
  22. * 00022000
  23. * GPR1 POINTS TO COMMAND LINE 00023000
  24. * 00024000
  25. * EXIT CONDITIONS: 00025000
  26. * 00026000
  27. * GPR15 = 0 - DMSBTP LOADED SUCCESSFULLY 00027000
  28. * GPR15 = 40 - NO DMSBTP TEXT FOUND 00028000
  29. * GPR15 = 88 - EITHER CMSBATCH COMMAND NOT ISSUED IN RESPONSE 00029000
  30. * TO FIRST CMS READ (I.E.IMMEDIATELY AFTER IPL) 00030000
  31. * OR TROUBLE LOADING DMSBTP 00031000
  32. * 00032000
  33. * CALLS TO OTHER ROUTINES: 00033000
  34. * 00034000
  35. * DMSSTT - VERIFY EXISTENCE OF DMSBTP TEXT 00035000
  36. * DMSLDR - LOAD DMSBTP INTO FREE STORAGE 00036000
  37. * 00037000
  38. * EXTERNAL REFERENCES: 00038000
  39. * 00039000
  40. * DMSKEY - FOR CORRECT PROTECT KEY 00040000
  41. * DMSERR - FOR CMS ERROR MESSAGES 00041000
  42. * DMSFREE - FOR NUCLEUS FREE STORAGE 00042000
  43. * REGEQU - FOR SYMBOLIC REGISTER NAMES 00043000
  44. * NUCON - FOR NUCLEUS STORAGE AREA DSECT 00044000
  45. * FVS - FOR STATE FST DSECT 00045000
  46. * 00046000
  47. * TABLES/WORKAREAS: 00047000
  48. * 00048000
  49. * NONE 00049000
  50. * 00050000
  51. * REGISTER USAGE: 00051000
  52. * 00052000
  53. * GPR8 - FVSECT 00053000
  54. * GPR12 - DMSBTB ADDRESSABILITY 00054000
  55. * 00055000
  56. * NOTES: 00056000
  57. * 00057000
  58. * NONE 00058000
  59. * 00059000
  60. * OPERATION: 00060000
  61. * 00061000
  62. * DMSBTB FIRST INSURES THAT DMSINS (CMS 00062000
  63. * INITIALIZATION) HAS SET ON THE BM FLAGS BATRUN AND BATLOAD 00063000
  64. * IN THE CMS NUCLEUS CONSTANT AREA SHOWING THAT AN EXPLICIT 00064000
  65. * BATCH IPL HAS BEEN ISSUED OR THAT THE CMSBATCH COMMAND HAS 00065000
  66. * BEEN ISSUED IMMEDIATELY AFTER IPL. IF NOT, AN ERROR MESSAGE 00066000
  67. * (DMSBTB101E) IS GENERATED AND THE BM CONSOLE RETURNS TO A 00067000
  68. * NORMAL CMS INTERACTIVE ENVIRONMENT. 00068000
  69. *  00069000
  70. * STATE (DMSSTT) IS THEN CALLED TO CONFIRM THE 00070000
  71. * EXISTENCE OF THE BM PROCESSOR FILE (DMSBTP TEXT). IF THE 00071000
  72. * FILE DOES NOT EXIST AN ERROR MESSAGE (DMSBTB100E) IS ISSUED 00072000
  73. * AND THE BM CONSOLE RETURNS TO CMS INTERACTIVE ENVIRONMENT. 00073000
  74. *  00074000
  75. * USING THE 'STATE' COPY OF THE FILE STATUS TABLE 00075000
  76. * (FST) FOR DMSBTP, DMSBTB COMPUTES THE SIZE OF DMSBTP TEXT BY 00076000
  77. * MULTIPLYING THE LOGICAL RECORD LENGTH BY THE NUMBER OF 00077000
  78. * LOGICAL RECORDS (NO DS CONSTANTS). A FREE STORAGE REQUEST IS 00078000
  79. * MADE FOR THE SIZE OF DMSBTP AND THE ADDRESS OF THE ROUTINE 00079000
  80. * IS THEN STORED AT ABATPROC IN THE NUCON AREA OF THE CMS 00080000
  81. * NUCLEUS. 00081000
  82. * STATE'S ARE ALSO ISSUED FOR THE USER EXITS AND, IF 00082000
  83. * THEY EXIST, THEIR SIZES ARE INCLUDED IN THE REQUEST. 00083000
  84. *  00084000
  85. * THIS FREE STORAGE ADDRESS IS TRANSLATED INTO 00085000
  86. * PRINTABLE HEXADECIMAL FORMAT AND THE CMS LOAD COMMAND IS 00086000
  87. * ISSUED TO LOAD DMSBTP TEXT FILE INTO THE RESERVED FREE 00087000
  88. * STORAGE AREA. ALSO LOADED AT THIS TIME ARE THE USER EXIT 00088000
  89. * ROUTINES, BATEXIT1 TEXT AND BATEXIT2 TEXT. IF THESE FILES DO 00089000
  90. * NOT EXEIST, AN UNRESOLVED EXTERNAL REFERENCE ERROR CODE IS 00090000
  91. * RETURNED BY THE LOADER BUT IT IS IGNORED BY DMSBTB SINCE 00091000
  92. * THESE ROUTINES ARE INSTALLATION OPTIONS. IF AN ERROR (OTHER 00092000
  93. * THAN UNRESOLVED NAMES) OCCURS, A MESSAGE (DMSBTB101E) IS 00093000
  94. * ISSUED AND THE BM CONSOLE RETURNS TO THE CMS INTERACTIVE 00094000
  95. * ENVIRONMENT. 00095000
  96. *  00096000
  97. * THE LOADER TABLES ARE THEN SEARCHED FOR THE 00097000
  98. * ADDRESS OF THE ABEND ENTRY POINT DMSBTPAB IN THE LOADED 00098000
  99. * BATCH PROCESSOR. WHEN THE ENTRY IS FOUND ITS ADDRESS AND 00099000
  100. * THAT OF ENTRY DMSBTPLM ARE STORED IN ABATABND AND ABATLIMT 00100000
  101. * REPECTIVELY IN THE NUCON AREA OF THE CMS NUCLEUS. IF THE 00101000
  102. * ABEND ENTRY POINT IS NOT FOUND IN THE TABLES, AN ERROR 00102000
  103. * MESSAGE (DMSBTB101E) IS ISSUED AND THE BM CONSOLE RETURNS TO 00103000
  104. * THE CMS INTERACTIVE MODE. 00104000
  105. *  00105000
  106. * THE BATLOAD FLAG IS SET OFF TO SHOW THAT DMSBTP 00106000
  107. * HAS BEEN LOADED, THE BATNOEX FLAG IS SET ON TO PREVENT USER 00107000
  108. * JOB EXECUTION UNTIL DMSBTP ENCOUNTERS A /JOB CARD AND 00108000
  109. * FINALLY, CONTROL IS RETURNED TO CMS (DMSITS). 00109000
  110. *  00110000
  111. * _N_O_T_E: IF AN ERROR MESSAGE IS ISSUED, DMSERR 00111000
  112. * TYPES THE MESSAGE, THE BM FLAGS BATRUN AND BATLOAD ARE SET 00112000
  113. * OFF BEFORE CONTROL IS RETURNED TO CMS. THIS ALLOWS THE 00113000
  114. * NORMAL CMS INTERACTION TO RESUME. 00114000
  115. * 00115000
  116. *. 00116000
  117. EJECT 00117000
  118. DMSBTB START 00118000
  119. LR R12,R15 00119000
  120. USING DMSBTB,R12 00120000
  121. USING NUCON,R0 00121000
  122. ST R14,SAVE14 00122000
  123. DMSKEY NUCLEUS 00123000
  124. TM BATFLAGS,BATUSEX IS USER RUNNING? @VA02821 00123100
  125. BZ CONTPROC NOPE, CONTINUE AS USUAL @VA02821 00123200
  126. OI BATFLAG2,BATDCMS OTHERWISE, MUST ABEND @VA02821 00123300
  127. DMSKEY RESET @VA02821 00123400
  128. L R15,ABATABND GET BATCH ABEND ROUTINE @VA02821 00123500
  129. BR R15 BRANCH TO IT @VA02821 00123600
  130. CONTPROC TM BATFLAGS,BATRUN+BATLOAD INITIALIZED BY DMSINS? @VA02821 00124100
  131. BNO NOLOAD ERROR IF NOT 00125000
  132. LA R3,3 STATE THREE FILES 00126000
  133. LA R4,LOAD+8 USE NAMES IN LIST 00127000
  134. XR R5,R5 R5 WILL CONTAIN TOTAL BYTES NEEDED 00128000
  135. LA R1,STATE 00129000
  136. SVC 202 CALL FOR BATCH PROCESSOR 00130000
  137. DC AL4(NOFILE) 00131000
  138. B FSTCOPY IT'S THERE, NOW GET SIZE 00132000
  139. SPACE 00133000
  140. USREXITS EQU * STATE THE USER EXIT ROUTINES 00134000
  141. LA R4,8(,R4) NEXT NAME 00135000
  142. MVC STATE+8(8),0(R4) PREP STATE PLIST 00136000
  143. SVC 202 STATE THE FILE 00137000
  144. DC AL4(LASTCHK) IF NOT THERE, DON'T COMPUTE 00138000
  145. SPACE 00139000
  146. FSTCOPY EQU * COMPUTE SIZE OF TEXT FILE 00140000
  147. L R8,AFVS GET STATE COPY OF FST 00141000
  148. USING FVSECT,R8 00142000
  149. L R2,FVSFSTIL LOAD LRECL FOR FILE 00143000
  150. MH R2,FVSFSTIC LRECL X N'RECS = STORAGE SIZE 00144000
  151. AR R5,R2 KEEP TALLY OF BYTES NEEDED 00145000
  152. LASTCHK BCT R3,USREXITS LOOP THRU FOR ALL FILES NEEDED 00146000
  153. LA R0,7(,R5) ROUND TO NEXT DWORD 00147000
  154. SRA R0,3 DIVIDE FOR NO. DWORDS 00148000
  155. DMSFREE DWORDS=(0),TYPE=NUCLEUS 00149000
  156. ST R1,ABATPROC KEEP BATCH ADDR IN NUCON 00150000
  157. ST R1,ADPACK 00151000
  158. UNPK ADUNPACK(9),ADPACK(5) UNPACK BATCH ADDR 00152000
  159. TR ADUNPACK(8),CHARTAB AND TRANSLATE FOR 'LOAD' 00153000
  160. MVC LOADAD(6),ADUNPACK+2 GET TRANSLATED ADDR. @VA02965 00154100
  161. SPACE 1 00155000
  162. LA R1,LOAD 00156000
  163. SVC 202 LOAD BATCH PROCESSOR (DMSBTP) 00157000
  164. DC AL4(*+4) 00158000
  165. MVC LOCCNT,AUSRAREA 00159000
  166. LTR R15,R15 CHECK RETURN CODE 00160000
  167. BZ LOADED DROP IF O.K. 00161000
  168. CH R15,=H'4' ANYBODY UNRESOLVED? 00162000
  169. BH NOLOAD ERROR ONLY IF WORSE THAN THAT 00163000
  170. LOADED EQU * 00164000
  171. LA R2,20 SIZE OF LDR TABLE ENTRIES 00165000
  172. L R3,ALDRTBLS ADDR OF LDR TABLES 00166000
  173. LH R4,TBENT NO. TABLE ENTRIES 00167000
  174. CKENTRY EQU * 00168000
  175. SR R3,R2 POINT TO NEXT ENTRY 00169000
  176. CLC 0(8,R3),=CL8'DMSBTPAB' 00170000
  177. BE STABEND FOUND IT...GO SAVE IT 00171000
  178. BCT R4,CKENTRY OTHERWISE, CONTINUE 00172000
  179. B NOLOAD ERROR IF NO ENTRIES LEFT 00173000
  180. STABEND EQU * 00174000
  181. MVC ABATABND(4),12(R3) KEEP BATCH ABEND ENTRY IN NUCON 00175000
  182. SR R3,R2 SLIDE DOWN THE LOADER TABLES 00176000
  183. MVC ABATLIMT(4),12(R3) STORE BATCH JOB LIMIT TABLE ADDR 00177000
  184. OI BATFLAGS,BATNOEX SUPPRESS USER EXECUTION 00178000
  185. NI BATFLAGS,255-BATLOAD BATCH LOAD COMPLETE 00179000
  186. DMSKEY RESET 00180000
  187. L R14,SAVE14 00181000
  188. BR R14 RETURN TO CMS 00182000
  189. EJECT 00183000
  190. STATE DS 0D 00184000
  191. DC CL8'STATE' 00185000
  192. DC CL8'DMSBTP' 00186000
  193. DC CL8'TEXT' 00187000
  194. DC CL8'*' 00188000
  195. DC 8X'FF' 00189000
  196. * 00190000
  197. LOAD DC CL8'LOAD' 00191000
  198. DC CL8'DMSBTP' 00192000
  199. DC CL8'BATEXIT1' USER CONTROL CARD EXIT 00193000
  200. DC CL8'BATEXIT2' USER '/JOB' CARD EXIT 00194000
  201. DC CL8'(' 00195000
  202. DC CL8'ORIGIN' 00196000
  203. LOADAD DC CL8' ' 00197000
  204. DC 8X'FF' 00198000
  205. * 00199000
  206. SPACE 3 00200000
  207. NOFILE EQU * 00201000
  208. DMSERR NUM=100,LET=E,TEXT='NO BATCH PROCESSOR AVAILABLE' 00202000
  209. LA R5,40 00203000
  210. B ERRORS 00204000
  211. * 00205000
  212. NOLOAD EQU * 00206000
  213. DMSERR NUM=101,LET=E,TEXT='BATCH NOT LOADED' 00207000
  214. LA R5,88 00208000
  215. * 00209000
  216. ERRORS NI BATFLAGS,255-BATRUN-BATLOAD BATCH NOT RUNNING 00210000
  217. DMSKEY RESET 00211000
  218. LR R15,R5 00212000
  219. BR R14 RETURN TO NORMAL CMS ENVIRONS 00213000
  220. SPACE 1 00214000
  221. SAVE14 DC F'0' 00215000
  222. ADPACK DC 5X'00' 00216000
  223. ADUNPACK DC 9X'00' 00217000
  224. DS 0F 00218000
  225. DC C'0123456789ABCDEF' 00219000
  226. CHARTAB EQU *-X'FF'-1 00220000
  227. EJECT 00221000
  228. REGEQU 00222000
  229. NUCON 00223000
  230. FVS 00224000
  231. END 00225000