Table of Contents

DMSSET Source

References

Source Listing

DMSSET.ASSEMBLE.txt
  1. SET TITLE 'DMSSET (CMS) VM/370 - RELEASE 6' 00001000
  2. SPACE 2 00002000
  3. *. 00003000
  4. * MODULE NAME - 00004000
  5. * 00005000
  6. * DMSSET 00006000
  7. * 00007000
  8. * FUNCTION - 00008000
  9. * 00009000
  10. * SET COMMAND. THE USER IS ALLOWED TO CHANGE VARIOUS ASPECTS 00010000
  11. * OF THE SYSTEM DURING HIS TERMINAL SESSION 00011000
  12. * 00012000
  13. * ATTRIBUTES - 00013000
  14. * 00014000
  15. * TRANSIENT, NOT REENTRANT, CALLED VIA SVC 202 00015000
  16. * NOTE: SET MUST BE GENMOD'D WITH THE SYSTEM OPTION 00016000
  17. * 00017000
  18. * ENTRY POINTS - 00018000
  19. * 00019000
  20. * SET - SET COMMAND ENTERED FROM THE TERMINAL 00020000
  21. * 00021000
  22. * ENTRY CONDITIONS - 00022000
  23. * 00023000
  24. * SET - 00024000
  25. * GPR1 = A(PLIST) 00025000
  26. * PLIST = CL8 - CALLED ROUTINE 00026000
  27. * CL8 - FUNCTION 00027000
  28. * 00028000
  29. * OPTIONAL - 00029000
  30. * CL8 - ARGUMENT 1 00030000
  31. * CL8 - ARGUMENT 2 00031000
  32. * CL8 - ARGUMENT 3 00032000
  33. * 00033000
  34. * XL8 - FENCE 00034000
  35. * 00035000
  36. * WHERE - 00036000
  37. * FUNCTION = BLIP, RDYMSG, LDRTBLS, RELPAGE, AUTOREAD, 00037000
  38. * INPUT,OUTPUT,ABBREV,IMPCP,IMPEX,SYSNAME, 00038000
  39. * REDTYPE,PROTECT,DOS,DOSPART,NONSHARE,UPSI 00039000
  40. * ARGUMENT 1 = ON, OFF, 'AA...', 'NN' 00040000
  41. * ARGUMENT 2 = 'XX', 'NN' 00041000
  42. * 00042000
  43. * EXIT CONDITIONS - 00043000
  44. * 00044000
  45. * NORMAL 00045000
  46. * GPR15 = 0 00046000
  47. * 00047000
  48. * ERROR 00048000
  49. * GPR15 MESSAGE 00049000
  50. * 24 DMSSET014E INVALID FUNCTION ... 00050000
  51. * 24 DMSSET026E INVALID PARAMETER ... FOR ... FUNCTION 00051000
  52. * 40 DMSSET031E LOADER TABLES CANNOT BE MODIFIED 00052000
  53. * 24 DMSSET047E NO FUNCTION SPECIFIED 00053000
  54. * 24 DMSSET048E INVALID MODE ... 00054000
  55. * 24 DMSSET050E PARAMETER MISSING AFTER ... 00055000
  56. * 24 DMSSET061E NO TRANSLATION CHARACTER SPECIFIED 00056000
  57. * 24 DMSSET070E INVALID PARAMETER ... 00057000
  58. * 4 DMSSET098W CMS OS SIMULATION NOT AVAILABLE 00058000
  59. * 40 DMSSET099E CMS/DOS ENVIRONMENT NOT ACTIVE 00059000
  60. * 4 DMSSET100W SYSTEM NAME ... NOT AVAILABLE 00060000
  61. * 24 DMSSET142S SAVED SYSTEM NAME ... INVALID 00061000
  62. * 44 DMSSET400S SYSTEM ... DOES NOT EXIST 00062000
  63. * 40 DMSSET401S VM SIZE ... CANNOT EXCEED ... START ADDRESS .. 00063000
  64. * 44/171 DMSSET410S CONTROL PROGRAM ERROR INDICATION ... 00064000
  65. * 32 DMSSET444E VOLUME ... IS NOT A DOS SYSRES 00065000
  66. * 00066000
  67. * CALLS TO OTHER ROUTINES - 00067000
  68. * 00068000
  69. * DMSFRE - STORAGE MANAGEMENT 00069000
  70. * DMSERR - OUTPUT MESSAGES TO THE TERMINAL 00070000
  71. * DMSCPF - PASS COMMAND LINE TO CP 00071000
  72. * 00072000
  73. * EXTERNAL REFERENCES - 00073000
  74. * 00074000
  75. * EXTSECT - STORAGE FOR TIMER INTERRUPT 00075000
  76. * NUCON - NUCLEUS CONSTANTS TABLE 00076000
  77. * 00077000
  78. * TABLES / WORKAREAS - 00078000
  79. * 00079000
  80. * MISCELLANEOUS CONSTANTS 00080000
  81. * 00081000
  82. * REGISTER USAGE - 00082000
  83. * 00083000
  84. * GPR1 = A(PLIST) 00084000
  85. * GPR10 = RETURN CODE UNTIL EXIT 00085000
  86. * GPR12 = BASE REGISTER 00086000
  87. * 00087000
  88. * NOTES - 00088000
  89. * 00089000
  90. * NONE 00090000
  91. * 00091000
  92. * OPERATION - 00092000
  93. * 00093000
  94. * 1. DETERMINE WHICH FUNCTION IS BEING SET. 00094000
  95. * IF NOT IN THE CMS FUNCTION TABLE, PREPARE TO SEND 00095000
  96. * THE COMMAND LINE TO CP. 00096000
  97. * 00097000
  98. * BLIP - 00098000
  99. * 1. IF RUNNING IN BATCH MODE, EXIT. 00099000
  100. * 00100000
  101. * 2. IF A COUNT FIELD IS GIVEN, SAVE THE NUMBER OF CHARACTERS 00101000
  102. * WANTED AS BLIP. 00102000
  103. * 00103000
  104. * 3. IF 'OFF' IS SPECIFIED, STORE X'00' AS BLIP. 00104000
  105. * 00105000
  106. * 4. IF THERE'S A FENCE IN THE 00106000
  107. * PLIST, SET THE DEFAULT BLIP. 00107000
  108. * 00108000
  109. * RDYMSG - 00109000
  110. * 1. IF 'LMSG' SPECIFIED, SET 'NORDYMSG', 'NORDYTIM' 00110000
  111. * IN MSGFLAGS OFF. 00111000
  112. * 00112000
  113. * 2. IF 'SMSG' SPECIFIED, SET 'NORDYMSG' OFF, 'NORDYTIM' ON. 00113000
  114. * 00114000
  115. * LDRTBLS - 00115000
  116. * 1. IF FENCE IS SPECIFIED, SET THE NUMBER OF LOADER 00116000
  117. * TABLES TO THE STANDARD NUMBER OF LOADER TABLES. 00117000
  118. * 00118000
  119. * 2. IF NN IS SPECIFIED, SET THE NUMBER OF LOADER TABLES TO NN 00119000
  120. * PROVIDED THE USER HAS ENOUGH CORE. 00120000
  121. * 00121000
  122. * RELPAGE - 00122000
  123. * 1. IF 'ON' SPECIFIED, SET 'NOPAGREL' IN OPTFLAGS OFF. 00123000
  124. * 00124000
  125. * 2. IF 'OFF', SET FLAG SO USER PAGES ARE NOT RELEASED. 00125000
  126. * 00126000
  127. * AUTOREAD - 00127000
  128. * 1. CAUSE A CONSOLE READ TO BE ISSUED AFTER COMMAND EXECUTION. 00128000
  129. * 00129000
  130. * 2. NO CONSOLE READ IS ISSUED AFTER COMMAND EXECUTION. 00130000
  131. * 00131000
  132. * INPUT - 00132000
  133. * 1. IF FENCE IS NOT SPECIFIED, CONVERT HEX CHARACTER 00133000
  134. * TO BINARY. 00134000
  135. * 00135000
  136. * 2. IS THERE A USER INPUT TRANSLATE TABLE ALREADY INUSE? 00136000
  137. * NO, CALL DMSFRE FOR SPACE AND MOVE IN THE STANDARD TRANS- 00137000
  138. * LATE TABLE INTO IT. CONTINUE. 00138000
  139. * YES, STORE THE HEX NO. IN THE TABLE INDEXED BY THE 00139000
  140. * CHARACTER. 00140000
  141. * 00141000
  142. * 3. IF NO CHARACTER WAS SPECIFIED, CALL DMSFRE TO 00142000
  143. * RETURN THE TRANSLATE TABLE SPACE. 00143000
  144. * 00144000
  145. * OUTPUT - 00145000
  146. * 1. IF FENCE IS NOT SPECIFIED, CONVERT HEX CHARACTER 00146000
  147. * TO BINARY. 00147000
  148. * 00148000
  149. * 2. IF THERE IS NOT A TABLE INUSE, CALL DMSFRE TO GET SPACE, 00149000
  150. * AND MOVE IN THE STANDARD TABLE. STORE THE HEX NO. IN 00150000
  151. * TABLE INDEXED BY CHAR. 00151000
  152. * 00152000
  153. * 3. IF THE USER SET UP TABLE MATCHES THE STANDARD TABLE OR 00153000
  154. * IF THE USER SPECIFIED NO CHARACTER, CALL 00154000
  155. * DMSFRE TO RETURN 00155000
  156. * THE SPACE FOR THE TRANSLATE TABLE. 00156000
  157. * 00157000
  158. * ABBREV - 00158000
  159. * 1. IF 'ON' IS SPECIFIED, SET 'ABRVFLG' ON SO THAT 00159000
  160. * ABBREVIATION CHECKING IS NOT INHIBITED. 00160000
  161. * 00161000
  162. * 2. IF 'OFF' IS SPECIFIED, SET 'ABRVFLG' OFF SO THAT 00162000
  163. * ABBREVIATION CHECKING IS INHIBITED. 00163000
  164. * 00164000
  165. * DOS - 00165000
  166. * 1. IF 'ON' SPECIFIED, AND IF DISK MODE IS SPECIFIED, 00166000
  167. * VERIFY THAT THE MODE POINTS TO AN ACCESSED DOS-DISK. 00167000
  168. * ALSO VERIFY THAT THE DOS DISK IS A VALID SYSRES. 00168000
  169. * ENSURE THAT THE CMS/DOS SEGMENT EXISTS AND IF SO, 00169000
  170. * LOAD IT. THEN SET THE DOSMODE AND DOSSVC FLAGS IN 00170000
  171. * NUCON, AND ASSGN SYSLOG TO THE TERMINAL. 00171000
  172. * 00172000
  173. * 2. IF 'OFF' SPECIFIED, RESET FLAGS IN NUCON TO ZERO. 00173000
  174. * ALSO UNASSIGN ALL LOGICAL UNITS, AND PURGE THE 00174000
  175. * CMS/DOS SEGMENT. 00175000
  176. * 00176000
  177. * UPSI - 00177000
  178. * 1. IF 'ON' IMPLIED, SET THE UPSI BYTE IN THE DOS COMM. 00178000
  179. * REGION TO THE CORRESPONDING USER SPECIFIED BITS. 00179000
  180. * 00180000
  181. * 2. IF 'OFF' SPECIFIED, RESET THE UPSI BYTE TO BINARY ZEROS. 00181000
  182. * 00182000
  183. * IMPCP - 00183000
  184. * 1. IF 'ON' IS SPECIFIED, SET NOIMPCP IN OPTFLAGS, OFF. 00184000
  185. * 00185000
  186. * 2. IF 'OFF' IS SPECIFIED, SET NOIMPCP IN OPTFLAGS ON. 00186000
  187. * 00187000
  188. * IMPEX - 00188000
  189. * 1. IF 'ON' IS SPECIFIED, SET 'NOIMPEX' IN OPTFLAGS OFF. 00189000
  190. * 00190000
  191. * 2. IF 'OFF' IS SPECIFIED, SET NOIMPEX IN OPTFLAGS ON. 00191000
  192. * 00192000
  193. * SYSNAME - 00193000
  194. * 1. REPLACE A SAVED SYSTEM NAME IN THE SAVENAMES 00194000
  195. * NUCLEUS TABLE. 00195000
  196. * 00196000
  197. * REDTYPE - 00197000
  198. * 1. IF 'ON' OR FENCE IS SPECIFIED, SET REDERRID IN MSGFLAGS ON 00198000
  199. * 00199000
  200. * 2. IF 'OFF' IS SPECIFIED, SET REDERRID IN MSGFLAGS OFF. 00200000
  201. * 00201000
  202. * PROTECT - 00202000
  203. * 1. IF 'ON' IS SPECIFIED, SET 'PRFPOFF' IN PROTFLAG OFF. 00203000
  204. * SET THE STORAGE KEYS ACCORDING TO THE FREETAB TABLE. 00204000
  205. * USERKEY IF USERCODE, TRNCODE, OR USARCODE. 00205000
  206. * NUCKEY IF NUCCODE OR SYSCODE. 00206000
  207. * 00207000
  208. * 2. IF 'OFF' IS SPECIFIED, SET 'PRFPOFF' IN PROTFLAG ON. 00208000
  209. * SET ALL STORAGE KEYS TO NUCKEY. 00209000
  210. SPACE 1 00210000
  211. * NONSHARE - 00211000
  212. * 1. PERFORM THE CP LOADSYS FUNCTION SPECIFYING THAT 00212000
  213. * THE SYSTEM IS TO BE LOADED AS A NON-SHARED SYSTEM. 00213000
  214. * 00214000
  215. * DOSPART - 00215000
  216. * 1. USE THE NN VALUE SPECIFIED TO SET THE DOS PARTITION 00216000
  217. * SIZE IN K-BYTES. 00217000
  218. * 00218000
  219. * DOSLNCNT - 00219000
  220. * 1. USE THE NN VALUE TO CONTROL THE SYSLST LINES PER 00220000
  221. * PAGE. 00221000
  222. * 00222000
  223. *. 00223000
  224. EJECT 00224000
  225. DMSSET START 0 @V305014 00225000
  226. SET EQU * @V305014 00226000
  227. * 00227000
  228. USING NUCON,R0 @V305114 00228000
  229. USING DMSSET,R12 ADDRESSABILITY FOR ALL @V305014 00229000
  230. USING DMSSET+4096,R11 .... @V305014 00230000
  231. LA R2,4095 .... @V305014 00231000
  232. LA R11,1(R12,R2) .... @V305014 00232000
  233. ST R14,CMSAVE14 SAVE R14 (FOR EVERYBODY) 00233000
  234. USING NUCON,R0 REFERENCE NUCON 00234000
  235. LA R2,8(,R1) POINT TO THE SET FUNCTION 00235000
  236. SR R10,R10 RETURN CODE FOR SUCCESSFUL COMPLETION 00236000
  237. LA R3,8(,R2) ADVANCE POINTER TO ARGUMENT @VA04696 00237000
  238. LM R5,R7,LISTLOOP LOAD LOOP CONTROL REGISTERS @VA04696 00238000
  239. TM BATFLAGS,BATRUN+BATNOEX CMSBATCH RUNNING? V0742 00239000
  240. BC 11,NOTBAT SKIP IF NOT RUNNG OR INITIALIZNG JOBV0742 00240000
  241. LA R5,BATCOM POINT TO BATCH ONLY LIST @VA05126 00241000
  242. NOTBAT EQU * V0742 00242000
  243. * 00243000
  244. FINDCOM EQU * FIND THE SET FUNCTION SPECIFIED 00244000
  245. CLC 0(8,R2),0(R5) DOES ARGUMENT MATCH TABLE ENTRY? @VA04696 00245000
  246. BE 8(,R5) IF SO, R5+8 POINTS TO ROUTINE @VA04696 00246000
  247. BXLE R5,R6,FINDCOM ADVANCE SEARCH THROUGH LIST @VA04696 00247000
  248. * 00248000
  249. TM BATFLAGS,BATRUN+BATNOEX BATCH RUNNING ? @V305014 00249000
  250. BC 11,CPFUNC BR, IF NOT OR INITIALIZING JOB @V305014 00250000
  251. OI BATFLAG2,BATDCMS TELL BATCH WHO'S CALLING @V305014 00251000
  252. L R14,CMSAVE14 SO BATCH RETURNS TO CMS @V305014 00252000
  253. L R15,ABATABND ENTER BATCH AT 'ABEND' POINT @V305014 00253000
  254. BR R15 AND DON'T COME BACK @V305014 00254000
  255. CPFUNC EQU * 00255000
  256. TM OPTFLAGS,NOIMPCP IMPLIED EXEC OFF ? 00256000
  257. BO ERROR014 YES, SIGNAL FUNCTION INVALID 00257000
  258. LA R10,3 PRETEND SVCINT DIDN'T FIND @VA01997 00258000
  259. LNR R10,R10 US, HAVE INT CALL CP @VA01997 00259000
  260. OI MISFLAGS,NEGITS SET FLAG FOR INT TO CALL CP @VA02241 00260000
  261. B EXIT RETURN TO CALLER 00261000
  262. SPACE 2 00262000
  263. FIRSTCOM DS 0F PRECEDES FIRST SET FLAVOR: 00263000
  264. * 00264000
  265. DC CL8'ABEND' ABEND HRC009DS 00264300
  266. B ABEND HRC009DS 00264600
  267. DC CL8'BLIP' BLIP 00265000
  268. B BLIP 00266000
  269. DC CL8'EMSG' EMSG V0019 00267000
  270. B EMSG V0019 00268000
  271. DC CL8'E' V0019 00269000
  272. B EMSG V0019 00270000
  273. DC CL8'IMPCP' IMPCP 00271000
  274. B IMPCP 00272000
  275. DC CL8'INPUT' INPUT 00273000
  276. B HIN 00274000
  277. DC CL8'OUTPUT' OUTPUT 00275000
  278. B HOUT 00276000
  279. DC CL8'AUTOREAD' @V200714 00277000
  280. B AUTRDRTN @V200714 00278000
  281. DC CL8'REDTYPE' REDTYPE 00279000
  282. B HRED 00280000
  283. DC CL8'RELPAGE' RELPAGE 00281000
  284. B RELPAG 00282000
  285. DC CL8'PROTECT' PROTECT 00283000
  286. B PROTECT 00284000
  287. BATCOM DC CL8'ABBREV' ABBREV @V305014 00285000
  288. B ABBREV @V305014 00286000
  289. DC CL8'DOS' DOS @V305014 00287000
  290. B DOS @V305014 00288000
  291. DC CL8'DOSLNCNT' DOS LINE COUNT @V505098 00289000
  292. B LINECT @V505098 00290000
  293. DC CL8'DOSPART' DOSPART @VA04299 00291000
  294. B DOSPART @VA04299 00292000
  295. DC CL8'IMPEX' IMPEX @V305014 00293000
  296. B HIMPEX @V305014 00294000
  297. DC CL8'LDRTBLS' LDRTBLS @V305014 00295000
  298. B LDRTBLS @V305014 00296000
  299. DC CL8'NONSHARE' NONSHARE @V305014 00297000
  300. B NONSHARE @V305014 00298000
  301. DC CL8'RDYMSG' RDYMSG @V305014 00299000
  302. B READY @V305014 00300000
  303. DC CL8'SYSNAME' SAVEDSYS @V305114 00301000
  304. B SAVNAME @V305114 00302000
  305. DC CL8'UPSI' UPSI @V305014 00303000
  306. B UPSISET @V305014 00304000
  307. FENCE DC 8X'FF' FENCE 00305000
  308. B ERROR047 NO FUNCTION SPECIFIED 00306000
  309. AFTRLAST EQU *-12 POINT TO LAST SET FUNCTION FOR BXLE LOOP 00307000
  310. EJECT 00308000
  311. * 00309000
  312. * SET ABBREV ON|OFF 00310000
  313. * 00311000
  314. ABBREV EQU * SET ABBREVIATION FLAG 00312000
  315. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00313000
  316. BE ERROR050 ERROR, IF NOT @VA04696 00314000
  317. CLI 8(R3),X'FF' FENCE ? 00315000
  318. BNE ERROR070 NO, UNEXPECTED PARAMETER 00316000
  319. CLC OFF,0(R3) OFF SPECIFIED 00317000
  320. BNE ABRVON NO 00318000
  321. OI OPTFLAGS,NOABBREV SET ABBREV CHECKING OFF 00319000
  322. B SR1515 EXIT TO CALLER 00320000
  323. ABRVON EQU * ABBREVIATION CHECKING WANTED ? 00321000
  324. CLC ON,0(R3) ON SPECIFIED 00322000
  325. BNE CHARBAD NO, INVALID ARGUMENT 00323000
  326. NI OPTFLAGS,255-NOABBREV SET ABBREV CHECKING ON 00324000
  327. B SR1515 RETURN TO CALLER 00325000
  328. EJECT 00326000
  329. * 00327000
  330. * SET EMSG ON|OFF|CODE|TEXT 00328000
  331. * SET 'UPTMID' IN UPT FOR TSO USER BEFORE PASSING TO CP 00329000
  332. * 00330000
  333. EMSG EQU * V0019 00331000
  334. CLI 08(R2),X'FF' DID USER SUPPLY AN ARGUMENT V0019 00332000
  335. BE CPFUNC NO, LET CP HANDLE THE ERROR V0019 00333000
  336. TSOGET GET POINTER TO TSOBLKS V0019 00334000
  337. USING TSOBLKS,R1 SET UP ADDRESSIBILITY V0019 00335000
  338. CLC ON,08(R2) USER SPECIFY 'ON' V0019 00336000
  339. BE UPTMIDON YES, SET THE FLAG ON V0019 00337000
  340. CLC OFF,08(R2) USER SPECIFY 'OFF' V0019 00338000
  341. BE UPTMIDOF YES, SET THE FLAG OFF V0019 00339000
  342. CLC CODE,08(R2) USER SPECIFY 'CODE' V0019 00340000
  343. BE UPTMIDON YES, SET THE FLAG ON V0019 00341000
  344. CLC TEXT,08(R2) USER SPECIFY 'TEXT' V0019 00342000
  345. BE UPTMIDOF YES, SET THE FLAG OFF V0019 00343000
  346. B CPFUNC LET CP HANDLE UNKNOWN ARGUMENT V0019 00344000
  347. SPACE 1 00345000
  348. UPTMIDON EQU * SET UPTMIDON ON V0019 00346000
  349. OI UPTSWS,UPTMID PRINT IDENTIFIERS WANTED V0019 00347000
  350. B CPFUNC PASS COMMAND LINE TO CP V0019 00348000
  351. SPACE 1 00349000
  352. UPTMIDOF EQU * SET UPTMIDON OFF V0019 00350000
  353. NI UPTSWS,255-UPTMID PRINT IDENTIFIERS NOT WANTED V0019 00351000
  354. B CPFUNC PASS COMMAND LINE TO CP V0019 00352000
  355. EJECT 00353000
  356. * 00354000
  357. * SET INPUT : FREES USER INPUT TRANSLATE TABLE IF ANY 00355000
  358. * SET INPUT A XX : SETS 'A' TO HEX CODE 'XX' UPON INPUT 00356000
  359. * 00357000
  360. HIN EQU * 00358000
  361. L R1,AINTRTBL R1 POINTS TO USER-SET-UP TRANSLATE-TABLE 00359000
  362. CLI 0(R3),X'FF' DOES CALLER WANT TO CANCEL TABLE ? 00360000
  363. BE HIN3 BE IF YES. 00361000
  364. CLI 8(R3),X'FF' ONLY ONE PARM GIVEN @VA01036 00362000
  365. BE ERROR061 TYPE OUT ERROR @VA01036 00363000
  366. CLI 16(R3),X'FF' UNEXPECTED PARMS @VA01036 00364000
  367. BNE ERR070A GIVE IT AS AN ERROR @VA01036 00365000
  368. CLI 2(R3),C' ' MAXIMUM PARM LENGTH EXCEEDED @VA01036 00375000
  369. BNE CHARBAD YES, ERROR @VA01036 00376000
  370. CLI 1(R3),C' ' EBCDIC OR HEX INPUT @VA01036 00377000
  371. BNE RESET RESET FROM EBCDIC INPUT @VA01036 00378000
  372. SR R5,R5 00379000
  373. IC R5,8(R2) CHARACTER TRANSLATION TO BE CHANGED 00380000
  374. B HIN2ND TRANSLATE THE SECOND PARM @VA01036 00381000
  375. RESET BAL R14,HEXBIN TRANSLATE THE FIRST PARM @VA01036 00382000
  376. LR R5,R6 SAVE IN INDEX REG @VA01036 00383000
  377. HIN2ND LA R3,8(R3) POINT TO THE SECOND PARM @VA01036 00384000
  378. BAL R14,HEXBIN TRANSLATE IT @VA01036 00385000
  379. CHKTBL EQU * DOES INPUT TABLE EXIST? @VA09121 00385100
  380. LTR R1,R1 DO WE HAVE A TABLE IN USE? @VA09121 00385200
  381. BP HIN2 BRANCH IF YES @VA09121 00385300
  382. LA R0,INTBLEN INDIC. SIZE OF TRANSL.TBL @VA09121 00385400
  383. DMSFREE DWORDS=(0),TYPE=NUCLEUS,ERR=NOSTORE @VA09121 00385500
  384. ST R1,AINTRTBL STORE ITS ADDRESS @VA09121 00385600
  385. MVC 0(256,R1),ITRTABLE MOVE IN STANDARD TR. TBL @VA09121 00385700
  386. MVC 256(256,R1),OTRTABLE ALSO A 1 FOR 1 TABLE @VA09121 00385800
  387. HIN2 EQU * @VA09121 00385900
  388. STC R6,0(R1,R5) STORE HEX NO. IN TABLE INDEXED BY CHAR. 00386000
  389. STC R6,256(R1,R5) STORE ALSO IN 1 FOR 1 TABLE @VA02244 00387000
  390. CLC 0(256,R1),ITRTABLE IS TABLE BACK TO STANDARD 00388000
  391. BNE SR1515 NOT ZERO, EXIT 00389000
  392. CLC 256(256,R1),OTRTABLE CHECK 1 FOR 1 TABLE TOO @VA05384 00390000
  393. BNE SR1515 EXIT, IF NOT THE SAME @VA05384 00391000
  394. HIN3 LTR R1,R1 MAKE SURE TABLE EXISTS, 00392000
  395. BZ SR1515 EXIT 00393000
  396. LA R0,INTBLEN INDICATE SIZE OF TRANS TABLE @VA04696 00394000
  397. DMSFRET DWORDS=(0),LOC=(1) @VA04696 00395000
  398. SR R1,R1 00396000
  399. ST R1,AINTRTBL CLEAR POINTER THERETO 00397000
  400. B SR1515 EXIT 00398000
  401. EJECT 00399000
  402. * 00400000
  403. * SET OUTPUT : FREES USER OUTPUT TRANSLATE TABLE IF ANY 00401000
  404. * SET OUTPUT XX A : TRANSLATE XX TO A UPON OUTPUT 00402000
  405. * 00403000
  406. HOUT EQU * 00404000
  407. L R1,AOUTRTBL R1 POINTS TO USER OUTPUT TABLE 00405000
  408. CLI 0(R3),X'FF' DOES CALLER WANT TO CANCEL TABLE ? 00406000
  409. BE HOUT3 BE IF YES. 00407000
  410. CLI ARGLEN(R3),FF OUTPUT CHAR SPECIFIED? @VA08706 00407100
  411. BE ERROR061 NO, ERROR @VA08706 00407200
  412. BAL R14,HEXBIN CONVERT HEX CHAR. TO BINARY, IN R6 00408000
  413. SR R5,R5 ZERO R5 00416000
  414. GETCHAR EQU * INSERT THE USER'S TRANSLATION 00419000
  415. LA R3,8(,R3) POINT TO NEXT PARAMETER 00420000
  416. CLI 8(R3),X'FF' FENCE ? 00421000
  417. BNE ERROR070 NO, UNEXPECTED PARAMETER 00422000
  418. CLI 1(R3),C' ' USER SPECIFIED MORE THAN 1 CHAR. 00423000
  419. BNE CHARBAD YES, SIGNAL ERROR 00424000
  420. IC R5,0(R3) INSERT THE TRANSLATE CHAR. 00425000
  421. STC EQU * INSERT THE CHARACTER IN THE TRANSLATE TAB 00426000
  422. LTR R1,R1 DO WE HAVE A TABLE IN USE? @VA09121 00426100
  423. BP HOUT2 BRANCH IF YES @VA09121 00426200
  424. LA R0,OUTBLEN INDIC. SIZE OF TRANSL.TBL @VA09121 00426300
  425. DMSFREE DWORDS=(0),TYPE=NUCLEUS,ERR=NOSTORE @VA09121 00426400
  426. ST R1,AOUTRTBL STORE ITS ADDRESS @VA09121 00426500
  427. MVC 0(256,R1),OTRTABLE MOVE IN STANDARD TR. TBL @VA09121 00426600
  428. HOUT2 EQU * @VA09121 00426700
  429. STC R5,0(R1,R6) STORE THE TRANSLATE CHARACTER 00427000
  430. CLC 0(256,R1),OTRTABLE IS THE TABLE BACK TO STANDARD ? 00428000
  431. BNE SR1515 BNE IF NOT (WE'RE DONE) 00429000
  432. HOUT3 LTR R1,R1 MAKE SURE TABLE EXISTS, 00430000
  433. BZ SR1515 (EXIT IT NOT) 00431000
  434. LA R0,OUTBLEN INDICATE SIZE OF TRANS TABLE @VA04696 00432000
  435. DMSFRET DWORDS=(0),LOC=(1) @VA04696 00433000
  436. SR R15,R15 00434000
  437. ST R15,AOUTRTBL CLEAR POINTER THERETO 00435000
  438. B EXIT THAT'S IT, FINISHED. 00436000
  439. * 00437000
  440. HEXBIN EQU * 00438000
  441. CLI 2(R3),C' ' YUSER SPECIFIED MORE THAN 2 CHAR. 00439000
  442. BNE CHARBAD YES, SIGNAL ERROR 00440000
  443. LR R7,R3 POINT TO CHARACTER TO BE CONVERTED 00441000
  444. LA R9,2 CHECK TWO CHARACTERS 00442000
  445. SR R8,R8 CLEAR R8, 00443000
  446. HEXCHK LR R6,R8 'REMEMBER' R8 IN R6, 00444000
  447. IC R8,0(R7) GET HEX BYTE 00445000
  448. CLI 0(R7),C'A' CHAR. A TO F ? 00446000
  449. BL LESSA BL IF LESS THAN UPPER-CASE "A". 00447000
  450. CLI 0(R7),C'F' ... 00448000
  451. BH CHEK09 IF > F, CHECK FOR 0-9. 00449000
  452. SH R8,ATO10 CONVERT A-F TO 10-15. 00450000
  453. B LA717 AND GO CHECK NEXT CHARACTER. 00451000
  454. * 00452000
  455. LESSA CLI 0(R7),X'81' MAYBE LOWER CASE "A" TO "F" ? 00453000
  456. BL CHARBAD ERROR IF < A 00454000
  457. CLI 0(R7),X'86' ... 00455000
  458. BH CHARBAD ERROR IF > F 00456000
  459. SH R8,LAT10 CONVERT LOWER-CASE A-F TO 10-15. 00457000
  460. B LA717 AND GO CHECK NEXT CHARACTER. 00458000
  461. * 00459000
  462. CHEK09 CLI 0(R7),C'9' ... 00460000
  463. BH CHARBAD ERROR IF > 9. 00461000
  464. SH R8,HC0 SUBTRACT ALPHAMERIC 0 00462000
  465. BM CHARBAD ERROR IF LESS '0'. 00463000
  466. LA717 LA R7,1(,R7) SET TO CHECK NEXT CHARACTER 00464000
  467. BCT R9,HEXCHK AND CHECK IT. 00465000
  468. SLL R6,4 FIRST CHARACTER LEFT FOUR BITS, 00466000
  469. OR R6,R8 'OR' IN SECOND CHARACTER. 00467000
  470. BR R14 EXIT TO CALLER. 00468000
  471. EJECT , HRC009DS 00468020
  472. * HRC009DS 00468040
  473. * SET ABEND COMMAND LINE HRC009DS 00468060
  474. * HRC009DS 00468080
  475. ABEND EQU * HRC009DS 00468100
  476. L R1,ABNCOMND ADDR ABEND COMMAND HRC009DS 00468120
  477. LTR R1,R1 ANY THERE? HRC009DS 00468140
  478. BNP CHKRES NO, SKIP FRET CALL HRC009DS 00468160
  479. LA R0,17 ALWAYS 16 DWORDS HRC009DS 00468180
  480. DMSFRET LOC=(1),DWORDS=(0) HRC009DS 00468200
  481. ST R15,ABNCOMND ZERO OUT BUFFER HRC009DS 00468220
  482. CHKRES CLI 0(R3),X'FF' REQUEST TO RESET? HRC009DS 00468240
  483. BE SR1515 DONE THAT ALREADY HRC009DS 00468260
  484. LA R0,17 GET A BUFFER HRC009DS 00468280
  485. DMSFREE DWORDS=(0),ERR=NOSTORE HRC009DS 00468300
  486. ST R1,ABNCOMND SAVE ADDRESS HRC009DS 00468320
  487. MVI 0(R1),C' ' TO BLANK BUFFER HRC009DS 00468340
  488. MVC 1(135,R1),0(R1) BLANK REST OF IT HRC009DS 00468360
  489. LA R10,14 LOOP COUNT HRC009DS 00468380
  490. LA R1,1(,R1) LENGTH GOES IN FIRST BYTE HRC009DS 00468400
  491. ABNLOOP CLI 0(R3),X'FF' LAST PARM? HRC009DS 00468420
  492. BE LOOPND YES HRC009DS 00468440
  493. MVC 0(8,R1),0(R3) MOVE IN PARM HRC009DS 00468460
  494. MVI 8(R1),C' ' SEPERATE PARMS HRC009DS 00468480
  495. LA R3,8(,R3) NEXT PARM IN SET PLIST HRC009DS 00468500
  496. LA R1,9(,R1) NEXT POSITION IN BUFFER HRC009DS 00468520
  497. BCT R10,ABNLOOP GET SOME MORE HRC009DS 00468540
  498. LOOPND BCTR R1,0 NO BLANK AFTER LAST PARM HRC009DS 00468560
  499. L R3,ABNCOMND START OF BUFFER HRC009DS 00468580
  500. SR R1,R3 GET LENGTH OF COMMAND HRC009DS 00468600
  501. BCTR R1,0 MINUS ONE FOR LENGTH BYTE HRC009DS 00468620
  502. STC R1,0(R3) SAVE LENGTH IN FIRST BYTE HRC009DS 00468640
  503. B SR1515 RETURN HRC009DS 00468660
  504. EJECT 00469000
  505. * 00470000
  506. * SET AUTOREAD ON|OFF 00471000
  507. * 00472000
  508. AUTRDRTN EQU * @VA04696 00473000
  509. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00474000
  510. BE ERROR050 ERROR, IF NOT @VA04696 00475000
  511. CLI 8(R3),X'FF' FENCE AFTER THIS ? @V200714 00476000
  512. BNE ERROR070 NO..UNEXPECTED PARAMETER @V200714 00477000
  513. CLC ON,0(R3) ON WANTED ? @V200714 00478000
  514. BE AUTRDON YES..BR @V200714 00479000
  515. CLC OFF,0(R3) OFF WANTED @V200714 00480000
  516. BE AUTRDOFF YES..BR @V200714 00481000
  517. B CHARBAD ERROR IF NEITHER @V200714 00482000
  518. AUTRDON NI OPTFLAGS,255-NOVMREAD SET FLAG OFF @V200714 00483000
  519. B SR1515 @V200714 00484000
  520. AUTRDOFF OI OPTFLAGS,X'04' SET NUC FLAG ON @V200714 00485000
  521. B SR1515 @V200714 00486000
  522. EJECT 00487000
  523. * 00488000
  524. * SET RDYMSG LMSG|SMSG 00489000
  525. * 00490000
  526. READY EQU * 00491000
  527. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00492000
  528. BE ERROR050 ERROR, IF NOT @VA04696 00493000
  529. CLI 8(R3),X'FF' FENCE ? 00494000
  530. BNE ERROR070 NO, UNEXPECTED PARAMETER 00495000
  531. CLC LMSG,0(R3) LMSG SPECIFIED 00496000
  532. BE READYON YES. 00497000
  533. CLC SMSG,0(R3) SMSG SPECIFIED 00498000
  534. BE READYSHR YES. 00499000
  535. B CHARBAD INVALID ARGUMENT 00500000
  536. READYON EQU * LONG READY MESSAGE WANTED 00501000
  537. NI MSGFLAGS,255-NORDYMSG+NORDYTIM SET THE SWITCH 00502000
  538. B SR1515 EXIT 00503000
  539. READYSHR EQU * SHORT READY MESSAGE WANTED 00504000
  540. OI MSGFLAGS,NORDYTIM SET CONCISE FLAG 00505000
  541. NI MSGFLAGS,255-NORDYMSG SET SWITCH 00506000
  542. B SR1515 EXIT 00507000
  543. EJECT 00508000
  544. * 00509000
  545. * SET RELPAGE ON|OFF 00510000
  546. * SET FOR RELEASING USER PAGES 'ON' OR 'OFF' 00511000
  547. * 'ON' .... RELEASE USER PAGES.... 00512000
  548. * 'OFF' ... DO NOT RELEASE USER PAGES.... 00513000
  549. * 00514000
  550. RELPAG DS 0H 00515000
  551. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00516000
  552. BE ERROR050 ERROR, IF NOT @VA04696 00517000
  553. CLI 8(R3),X'FF' FENCE ? 00518000
  554. BNE ERROR070 NO, UNEXPECTED PARAMETER 00519000
  555. CLC ON,0(R3) ON SPECIFIED 00520000
  556. BE RLPON YES, TRANSFER TO RLPON. 00521000
  557. CLC OFF,0(R3) OFF SPECIFIED 00522000
  558. BE RLPOFF YES, TRANSFER TO RLPOFF 00523000
  559. B CHARBAD INVALID ARGUMENT 00524000
  560. RLPON EQU * 00525000
  561. NI OPTFLAGS,255-NOPAGREL TURN FLAG OFF FOR RELEASE 00526000
  562. B SR1515 GO EXIT.. 00527000
  563. * 00528000
  564. RLPOFF EQU * 00529000
  565. OI OPTFLAGS,NOPAGREL SET FLAG FOR NO RELEASE. 00530000
  566. B SR1515 GO EXIT.. 00531000
  567. EJECT 00532000
  568. * 00533000
  569. * SET IMPEX ON|OFF 00534000
  570. * SET FOR 'IMPLIED EXEC' "ON" OR "OFF" 00535000
  571. * 00536000
  572. * 'IMPEX ON' --> "IMPLIED EXEC" (FROM TERMINAL) IS WANTED 00537000
  573. * (NOTE - DEFAULT VALUE FOR CMS) 00538000
  574. * 00539000
  575. * 'IMPEX OFF' --> "IMPLIED EXEC" (FROM TERMINAL) NOT WANTED 00540000
  576. * (NEW OPTION FOR USERS WHO PREFER TO 00541000
  577. * TYPE IN "EXEC" ON PURPOSE IF THEY WANT IT.) 00542000
  578. * 00543000
  579. HIMPEX EQU * 00544000
  580. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00545000
  581. BE ERROR050 ERROR, IF NOT @VA04696 00546000
  582. CLI 8(R3),X'FF' FENCE ? 00547000
  583. BNE ERROR070 NO, UNEXPECTED PARAMETER 00548000
  584. CLC ON,0(R3) ON SPECIFIED 00549000
  585. BE XON TRF IF YES. 00550000
  586. CLC OFF,0(R3) OFF SPECIFIED 00551000
  587. BE XOFF TRF IF YES. 00552000
  588. B CHARBAD INVALID ARGUMENT 00553000
  589. XON NI OPTFLAGS,255-NOIMPEX IF 'ON' WANTED, RESET 00554000
  590. B SR1515 FLAG-BIT. 00555000
  591. * 00556000
  592. XOFF OI OPTFLAGS,NOIMPEX IF 'OFF' WANTED, 00557000
  593. B SR1515 SET THE FLAG-BIT. 00558000
  594. EJECT 00559000
  595. * 00560000
  596. * SET IMPCP ON|OFF 00561000
  597. * 00562000
  598. IMPCP EQU * 00563000
  599. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00564000
  600. BE ERROR050 ERROR, IF NOT @VA04696 00565000
  601. CLI 8(R3),X'FF' FENCE ? 00566000
  602. BNE ERROR070 NO, UNEXPECTED PARAMETER 00567000
  603. CLC ON,0(R3) ON SPECIFIED 00568000
  604. BE IMPCPON YES 00569000
  605. CLC OFF,0(R3) OFF SPECIFIED 00570000
  606. BE IMPCPOFF YES 00571000
  607. B CHARBAD INVALID ARGUMENT 00572000
  608. IMPCPON EQU * 00573000
  609. NI OPTFLAGS,255-NOIMPCP RESET THE FLAG 00574000
  610. B SR1515 EXIT 00575000
  611. IMPCPOFF EQU * 00576000
  612. OI OPTFLAGS,NOIMPCP SET THE FLAG 00577000
  613. B SR1515 EXIT 00578000
  614. EJECT 00579000
  615. * 00580000
  616. * SET REDTYPE ON|OFF 00581000
  617. * 00582000
  618. HRED EQU * 00583000
  619. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00584000
  620. BE ERROR050 ERROR, IF NOT @VA04696 00585000
  621. CLI 8(R3),X'FF' FENCE ? 00586000
  622. BNE ERROR070 NO, UNEXPECTED PARAMETER 00587000
  623. CLC ON,0(R3) ON SPECIFIED 00588000
  624. BE REDON YES. 00589000
  625. CLC OFF,0(R3) OFF SPECIFIED 00590000
  626. BE REDOFF YES. 00591000
  627. B CHARBAD INVALID CHARACTER 00592000
  628. REDON EQU * 00593000
  629. OI MSGFLAGS,REDERRID PERMIT RED TYPEOUTS 00594000
  630. B SR1515 GO EXIT. 00595000
  631. * 00596000
  632. REDOFF EQU * 00597000
  633. NI MSGFLAGS,255-REDERRID NO NOT PERMIT RED TYPEOUTS 00598000
  634. B SR1515 GO EXIT. 00599000
  635. EJECT 00600000
  636. ********************************************************************* 00601000
  637. * 00602000
  638. * SET LDRTBLS : NUMBER OF PAGES OF LDRTBLS = DEFAULT 00603000
  639. * DEFAULT : 2 PAGES FOR VIRTUAL MACHINES OF @VA11938 00603200
  640. * LESS THAN OR EQUAL TO 384K, OR @VA11938 00603400
  641. * 3 PAGES FOR "LARGE MACHINES". @VA11938 00603600
  642. * SET LDRTBLS NNN : NUMBER OF PAGES OF LDRTBLS = 'NNN' 00604000
  643. * 00605000
  644. * 'LDRTBLS NNN' WHERE NNN IS A DECIMAL NUMBER LESS THAN 127 00606000
  645. * AND WHERE THE USER HAS ENOUGH CORE TO HAVE NNN 00607000
  646. * PAGES OF LOADER TABLES, STORES NNN AS THE NEW 00608000
  647. * VALUE OF LDRTBL IN NUCON 00609000
  648. ********************************************************************* 00610000
  649. SPACE 2 00611000
  650. LDRTBLS EQU * CHANGE THE NUMBER OF LOADER TABLES 00612000
  651. XC GLDR,GLDR ENSURE LDRTBL FIELD REUSABLE @VA06145 00613000
  652. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00614000
  653. BE DEFAULT DEFAULT NUMBER OF LDRTBLS 00615000
  654. CLI 8(R3),X'FF' FENCE ? 00616000
  655. BNE ERROR070 NO, UNEXPECTED PARAMETER 00617000
  656. LR R4,R3 POINT TO ARGUMENT FOR VALIDATION @VA04696 00618000
  657. B NUMCHECK YES, MAKE SURE NUMBER SPECIFIED 00619000
  658. DEFAULT EQU * DEFAULT NUMBER OF LDRTBLS 00620000
  659. CLC SMALLM,VMSIZE IS MACHINE SIZE GT THAN 384K.? @VA11938 00621000
  660. BL BIGM IF NOT A "LARGE MACHINE" @VA11938 00622000
  661. LA R3,2 THE DEFAULT NUMBER OF LDRTBLS IS 2 00623000
  662. B CONT CONTINUE 00624000
  663. BIGM EQU * FOR MACHINE GT 384K @VA11938 00625000
  664. LA R3,3 THE DEFAULT NUMBER OF LDRTBLS IS 3 00626000
  665. B CONT CONTINUE 00627000
  666. KPGNG CLI 3(R3),X'40' KEEP USER HONEST 00628000
  667. BNE CHARBAD ERROR IF NOT JUST 3 DIG 00629000
  668. CLI 1(R3),X'40' JUST ONE DIGIT ? 00630000
  669. BE GO1 YES, GO 00631000
  670. CLI 2(R3),X'40' JUST TWO DIGITS 00632000
  671. BE GO2 YES, GO2 00633000
  672. MVC GLDR+5(3),0(R3) MOVE 3 CHAR. IN. 00634000
  673. B GO 00635000
  674. GO1 MVC GLDR+7(1),0(R3) MOVE 1 CHAR. IN. 00636000
  675. B GO 00637000
  676. GO2 MVC GLDR+6(2),0(R3) MOVE 2 CHAR. IN 00638000
  677. GO PACK PGLDR,GLDR CONVERT NO. TO BINARY 00639000
  678. CVB R4,PGLDR CONVERT TO BINARY @VA04696 00640000
  679. C R4,O127 127 PAGES IS THE MOST ALLOWED @VA04696 00641000
  680. BH CHARBAD INCORRECT IF > 127 @VA04696 00642000
  681. LR R3,R4 R3 = NUMBER OF LOADER TABLES @VA04988 00643000
  682. SPACE 00644000
  683. CONT SR R5,R5 CLEAR REG. BEFOR COMPUTING 00645000
  684. TM DCSSFLAG,DCSSVTLD WAS SVT LOADED? @VA06166 00646000
  685. BZ CONTA1 BRANCH IF NOT @VA06166 00647000
  686. L R0,OSMODLDW GET DOUBLE WORDS FOR SVT @VA06166 00648000
  687. L R1,AOSMODL AND ADDRESS OF SVT @VA06166 00649000
  688. DMSFRET DWORDS=(0),LOC=(1) FREE SVT @VA06166 00650000
  689. SR R0,R0 CLEAR A REGISTER @VA06166 00651000
  690. ST R0,AOSMODL CLEAR SVT ADDRESS(KEEP DWORDS@VA06166 00652000
  691. CONTA1 EQU * @VA06166 00653000
  692. LR R7,R5 00654000
  693. L R5,VMSIZE GET VMSIZE 00655000
  694. L R9,ADMSFRT DMSFRT ADDRESS @VA08493 00655100
  695. USING FRDSECT,R9 ADDRESSABILITY @VA08493 00655200
  696. C R5,FREELOW1 IPL LOADER TABLES @VA08493 00655300
  697. BE GETTBL NO, TRY DMSFREE @VA08493 00655400
  698. SLR R7,R7 CLEAR FOR INSERT @VA08493 00655500
  699. IC R7,ALDRTBLS GET CURRENT NO. LDR TBLS 00656000
  700. SLL R7,12 TIMES X'1000' GIVE NO. PGS. FOR TBLS 00657000
  701. SR R5,R7 GIVES NEC. LOWEXT OF TBLS 00658000
  702. C R5,FREELOWE MUST EQUAL CURRENT LOW EXTENT 00659000
  703. BNE NOTLOWE NO, TRY DMSFREE @VA08493 00660000
  704. LR R7,R3 COMPUTE SAME FOR DESIRED NO. 00661000
  705. SLL R7,12 OF LDR. TBLS 00662000
  706. SR R8,R8 00663000
  707. L R8,VMSIZE 00664000
  708. SR R8,R7 00665000
  709. C R8,MAINHIGH NO. PGS. NEC MUST BE GREATER 00666000
  710. BNH NOTFRET THAN CURRENT MAINHIGH @VA08493 00667000
  711. C R8,LOCCNT ALSO GREATER THAN LOCCNT 00668000
  712. BNH NOTFRET NO, TRY DMSFREE @VA08493 00669000
  713. SPACE 00670000
  714. CR R8,R5 ANY CHANGE? @VA01282 00671000
  715. BE SVTTEST BRANCH IF NOT @VA06297 00672000
  716. ST R8,FREELOW1 MODIFY ORIGINAL FREELOWE @VA01282 00675000
  717. L R9,AFREETAB LOAD FREETAB TABLE ADDRESS @VA01282 00676000
  718. DROP R9 @VA01282 00677000
  719. BL ADDTBLS BRANCH IF MORE PAGES REQUIRED@VA01282 00678000
  720. LR R6,R5 GET CURRENT LOW EXTENT @VA01282 00679000
  721. LR R7,R8 GET FREE START ADDRESS @VA01282 00680000
  722. SR R7,R5 GET SPACE TO BE FREED @VA01282 00681000
  723. SRL R7,12 CONVERT TO PAGES @VA01282 00682000
  724. LA R14,USERCODE GET USER CODE @VA01282 00683000
  725. LA R4,USERKEY SET TO USER KEY @VA01282 00684000
  726. B SETCODE @VA01282 00685000
  727. ADDTBLS EQU * @VA01282 00686000
  728. LA R14,SYSCODE GET SYSTEM CODE @VA01282 00687000
  729. SR R5,R8 GET BYTES REQUIRED @VA01282 00688000
  730. SRL R5,12 NUMBER OF PAGES NEEDED @VA01282 00689000
  731. LR R7,R5 @VA01282 00690000
  732. LR R5,R8 GET BEGINNING ADDRESS @VA01282 00691000
  733. LA R4,NUCKEY SET TO NUCLEUS KEY @VA01282 00692000
  734. LR R6,R8 BEGINNING ADDRESS OF PAGES @VA01282 00693000
  735. SETCODE EQU * @VA01282 00694000
  736. SRL R6,12 NUMBER OF PAGES @VA01282 00695000
  737. LA R9,0(R6,R9) POINT TO PROPER BYTE @VA01282 00696000
  738. LA R6,2048 2K CONSTANT @VA01282 00697000
  739. SETNUC EQU * @VA01282 00698000
  740. EX R14,MVICODE INDICATE TYPE OF PAGE @VA01282 00699000
  741. SSK R4,R5 SET KEY IN FIRST HALF PAGE @VA01282 00700000
  742. AR R5,R6 ADD 2K TO ADDRESS @VA01282 00701000
  743. SSK R4,R5 SET KEY IN LAST HALF PAGE @VA01282 00702000
  744. AR R5,R6 ADD 2K TO ADDRESS @VA01282 00703000
  745. LA R9,1(,R9) POINT TO NEXT BYTE @VA01282 00704000
  746. BCT R7,SETNUC @VA01282 00705000
  747. STC R3,ALDRTBLS STORE NEW NO. LDR TBL. @VA01282 00707000
  748. ST R8,FREELOWE STORE NEW LOW EXT. @VA01282 00708000
  749. SVTTEST EQU * @VA06297 00709000
  750. TM DCSSFLAG,DCSSVTLD WAS SVT LOADED? @VA06166 00710000
  751. BZ SR1515 BRANCH IF NOT @VA06166 00711000
  752. NI DCSSFLAG,255-DCSSVTLD REMOVE SVT LOADED FLAG @VA06166 00712000
  753. L R0,OSMODLDW GET LENGTH OF SVT MODULE @VA06166 00713000
  754. B LOADFREE AND GO RELOAD IT @VA06166 00714000
  755. GETTBL DS 0H @VA08493 00714100
  756. L R1,ALDRTBLS TOP OF LOADER TABLES @VA08493 00714200
  757. SLR R0,R0 CLEAR FOR INSERT @VA08493 00714300
  758. ICM R0,1,ALDRTBLS CURRENT NUMBER OF LDR PAGES @VA08493 00714400
  759. BZ NOTLOWE SKIP FRET IF ZERO @VA08493 00714500
  760. SLL R0,12 TIMES X'1000' @VA08493 00714600
  761. SR R1,R0 BEGINNING OF CURRENT TABLES @VA08493 00714700
  762. SRL R0,3 DOUBLEWORD LENGTH @VA08493 00714800
  763. DMSFRET DWORDS=(0),LOC=(1) FRET OLD TABLES @VA08493 00714900
  764. NOTLOWE DS 0H @VA08493 00715000
  765. LR R7,R3 REQUESTED NUMBER OF TABLES @VA08493 00715100
  766. SLL R7,12 TIMES X'1000' @VA08493 00715200
  767. NOTFRET DS 0H @VA08493 00715300
  768. L R9,ADMSFRT DMSFRT ADDRESS @VA08493 00715400
  769. USING FRDSECT,R9 ADDRESSABILITY @VA08493 00715500
  770. L R5,VMSIZE TOP OF CMS MACHINE @VA08493 00715600
  771. ST R5,FREELOW1 AVAILABLE TO DMSFREE @VA08493 00715700
  772. DROP R9 @VA08493 00715800
  773. LA R9,SVTTEST DMSFREE OK FOR NEW TABLES @VA08493 00715900
  774. FREEOLD DS 0H ERROR ENTRY @VA08493 00716000
  775. LTR R0,R7 REQUESTED SIZE OF TABLES = 0 @VA08493 00716100
  776. BZ NOTABLE YES, DONT FREE SPACE @VA08493 00716200
  777. SRL R0,3 INTO DOUBLE WORDS @VA08493 00716300
  778. DMSFREE DWORDS=(0),AREA=HIGH,TYPE=NUCLEUS,ERR=NOFREE @VA08493 00716400
  779. AR R7,R1 TOP OF NEW TABLES @VA08493 00716500
  780. LR R5,R7 TOP OF LOADER TABLES @VA08493 00716600
  781. NOTABLE DS 0H @VA08493 00716700
  782. ST R5,ALDRTBLS SAVE FOR LOADER @VA08493 00716800
  783. STC R3,ALDRTBLS SAVE NEW LOADER PAGES @VA08493 00716900
  784. BR R9 SVTTEST OR ERROR @VA08493 00717000
  785. NOFREE DS 0H @VA08493 00717100
  786. SLR R7,R7 CLEAR FOR INSERT @VA08493 00717200
  787. IC R7,ALDRTBLS OLD NUMBER OF TABLES @VA08493 00717300
  788. LR R3,R7 SAVE IT @VA08493 00717400
  789. SLL R7,12 TIMES X'1000' @VA08493 00717500
  790. LA R9,ERROR ERROR 031 EXIT @VA08493 00717600
  791. B FREEOLD DMSFREE OLD TABLES @VA08493 00717700
  792. NUMCHECK DS 0H @VA08493 00717800
  793. CLI 0(R4),X'40' CHECK THAT IT IS @VA08493 00717900
  794. BE KPGNG A VALID DECIMAL NUMBER 00718000
  795. CLI 0(R4),C'0' LESS THAN ZERO? 00719000
  796. BL CHARBAD YES, GET OUT 00720000
  797. CLI 0(R4),C'9' GREATER THAN 9? 00721000
  798. BH CHARBAD YES, GET OUT 00722000
  799. LA R4,1(R4) CHECK NEXT DIGIT 00723000
  800. B NUMCHECK 00724000
  801. MVICODE MVI 0(R9),0 SET FREETAB @VA01282 00725000
  802. EJECT 00726000
  803. * 00727000
  804. * SET BLIP ON : BLIP CHARACTER EQUALS DEFAULT 00728000
  805. * SET BLIP OFF : NO BLIP CHARACTER WANTED 00729000
  806. * SET BLIP AAA.. : BLIP CHARACTER = 'AAA..' 00730000
  807. * SET BLIP AAA... (N) : BLIP CHAR.R = AAA... LIMITED TO 'N' CHARACTE 00731000
  808. * 'ON'|'OFF' MAY NOT BE USED AS A BLIP CHARACTER 00732000
  809. * 00733000
  810. BLIP EQU * BLIP 00734000
  811. L R9,AEXTSECT REFERENCE EXTERNAL INTERRUPT INFO. 00735000
  812. USING EXTSECT,R9 ... 00736000
  813. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00737000
  814. BE ERROR050 ERROR, IF NOT @VA04696 00738000
  815. CLC ON,0(R3) BLIP 'ON' SPECIFIED 00739000
  816. BNE BLIP20 NO, TEST 'OFF' 00740000
  817. CLI 8(R3),X'FF' ANY UNEXPECTED PARAMETERS? @VA04696 00741000
  818. BNE ERROR070 YES, SIGNAL ERROR 00742000
  819. MVC TIMCHAR(8),FENCE SET DEFAULT BLIP CHARACTER 00743000
  820. MVC TIMER(4),TIMINIT INITIALIZE TIMER TO 2 SECS. 00744000
  821. B EXIT RETURN TO CALLER 00745000
  822. BLIP20 EQU * SEE IF 'OFF' SPECIFIED 00746000
  823. CLC OFF,0(R3) BLIP 'OFF' 00747000
  824. BNE BLIP30 NO, MUST BE A BLIP CHAR. 00748000
  825. CLI 8(R3),X'FF' ANY UNEXPECTED PARAMETERS? @VA04696 00749000
  826. BNE ERROR070 SIGNAL ERROR IF SO 00750000
  827. MVI TIMCHAR,00 NO BLIP WANTED INDICATOR 00751000
  828. MVC TIMER(4),LARGEPOS SET TIMER TO LARGE POSITIVE NO. 00752000
  829. B EXIT RETURN TO CALLER 00753000
  830. BLIP30 EQU * USER SPECIFIED BLIP CHARACTERS 00754000
  831. CLI 8(R3),C'(' COUNT CHAR. SUPPLIED 00755000
  832. BE BLIP70 YES, GET USER'S COUNT 00756000
  833. CLI 8(R3),X'FF' END OF PLIST 00757000
  834. BNE ERROR070 NO, UNEXPECTED PARM. ENTERED 00758000
  835. BLIP35 EQU * COUNT THE NUMBER OF BLIP CHARS. P0641 00759000
  836. LA R2,8(,R2) POINT TO BLIP CHARACTERS 00760000
  837. LA R4,1 POINT TO FIRST CHARACTER 00761000
  838. LA R6,1 INCREMENT FOR BXLE LOOP 00762000
  839. LA R7,8 MAX. NUMBER OF CHARACTERS ALLOWED 00763000
  840. BLIP40 EQU * COUNT THE NUMBER OF BLIP CHAR. 00764000
  841. CLI 0(R2),C' ' END OF BLIP CHAR ? 00765000
  842. BE BLIP50 YES, SAVE THE COUNT 00766000
  843. LA R2,1(,R2) POINT TO NEXT CHAR. 00767000
  844. BXLE R4,R6,BLIP40 SEE IF THIS IS THE END 00768000
  845. BLIP50 EQU * STORE THE COUNT 00769000
  846. BCTR R4,0 DECREMENT 1 FOR EXACT COUNT 00770000
  847. STC R4,TIMCCW+7 STORE IN THE CCW STRING 00771000
  848. BLIP60 EQU * SAVE THE BLIP CHARACTER 00772000
  849. MVC TIMCHAR(8),16(R1) MOVE TO EXTSECT 00773000
  850. MVC TIMER(4),TIMINIT INITIALIZE THE TIMER TO 2 SEC. 00774000
  851. B EXIT RETURN TO CALLER 00775000
  852. BLIP70 EQU * CHECK THE COUNT CHAR. 00776000
  853. LA R3,16(,R3) POINT TO THE NUMBER 00777000
  854. CLI 0(R3),X'FF' FENCE ? P0641 00778000
  855. BE BLIP35 YES, COUNT CHARACTERS ENTERED P0641 00779000
  856. CLI 0(R3),C'1' LESS THAN ONE 00780000
  857. BL CHARBAD YES, SIGNAL ERROR 00781000
  858. CLI 0(R3),C'8' HIGHER THAN 8 00782000
  859. BH CHARBAD YES, SIGNAL ERROR 00783000
  860. CLI 1(R3),C' ' ONLY ONE DIGIT LEGAL 00784000
  861. BNE CHARBAD IF NOT, SIGNAL ERROR 00785000
  862. CLI 8(R3),X'FF' TOO HURRIED TO CLOSE PARENTHESIS?@VA04696 00786000
  863. BE BLIP80 OKAY, WE'LL HURRY AS WELL @VA04696 00787000
  864. CLI 8(R3),C')' CLOSING PARENTHESIS? @VA04696 00788000
  865. BNE ERROR070 NOTHING ELSE IS ACCEPTABLE @VA04696 00789000
  866. CLI 16(R3),X'FF' ANY ARGUMENTS REMAINING? @VA04696 00790000
  867. BNE ERR070A CANNOT BE CORRECT, IF THERE ARE @VA04696 00791000
  868. BLIP80 EQU * SAVE THE BLIP COUNT 00792000
  869. MVC TIMCCW+7(1),0(R3) MOVE TO EXTSECT 00793000
  870. NI TIMCCW+7,X'0F' CHANGE TO HEX 00794000
  871. B BLIP60 SAVE THE BLIP CHARACTERS 00795000
  872. DROP R9 00796000
  873. * 00797000
  874. EJECT 00798000
  875. * 00799000
  876. * SET PROTECT ON|OFF 00800000
  877. * 00801000
  878. SPACE 00802000
  879. PROTECT EQU * 00803000
  880. CLI 0(R3),X'FF' DOES ARGUMENT FOLLOW FUNCTION? @VA04696 00804000
  881. BE ERROR050 ERROR, IF NOT @VA04696 00805000
  882. CLI 8(R3),X'FF' FENCE ? 00806000
  883. BNE ERROR070 NO, UNEXPECTED PARAMETER 00807000
  884. CLC ON,0(R3) ON SPECIFIED 00808000
  885. BE PROTCTON YES, SET FLAG ON 00809000
  886. CLC OFF,0(R3) OFF SPECIFIED 00810000
  887. BE PROTCTOF YES, SET FLAG OFF 00811000
  888. B CHARBAD INVALID ARGUMENT 00812000
  889. PROTCTON EQU * SET PROTECT ON 00813000
  890. NI PROTFLAG,255-PRFPOFF TURN PRFPOFF OFF 00814000
  891. B SR1515 EXIT WITHOUT ERROR 00815000
  892. PROTCTOF EQU * SET PROTECT OFF 00816000
  893. OI PROTFLAG,PRFPOFF TURN PRFPOFF ON 00817000
  894. B SR1515 EXIT WITHOUT ERROR 00818000
  895. EJECT 00819000
  896. * 00820000
  897. * SET NONSHARE SYSTEMNAME 00821000
  898. * 00822000
  899. SPACE 1 00823000
  900. NONSHARE EQU * @VA04696 00824000
  901. CLC FENCE,0(R3) BETTER BE THERE @V305014 00825000
  902. BE ERROR050 ERROR IF NOT @V305014 00826000
  903. CLC FENCE,8(R3) NOTHING ALLOWED AFTER SYSTEMNAME @V305014 00827000
  904. BNE ERROR070 ERROR IF SO @V305014 00828000
  905. LR R1,R3 SAVE PTR TO SEGMENT NAME @V305066 00829000
  906. SPACE 1 00830000
  907. LA R4,FINDSYS FINDSYS FOR LOCATION CHECK @V305066 00831000
  908. DC X'83340064' @V305014 00832000
  909. BC 2,DOSERRS BR IF FINDSYS ERROR @V305014 00833000
  910. BAL R5,CHKSEG CHECK WHERE SEGMENT SAVED @V305014 00834000
  911. SPACE 1 00835000
  912. LA R3,8(,R2) RESTORE NAME POINTER @V305014 00836000
  913. LA R4,LOADSYS LOADSYS IN NON-SHARED MODE @V305066 00837000
  914. DC X'83340064' @V305014 00838000
  915. BC 2,DOSERRS BR IF LOADSYS ERROR @V305014 00839000
  916. SPACE 1 00840000
  917. L R6,ASYSNAMS POINT TO SYSNAMES TABLE @V305014 00841000
  918. USING SYSNAMES,R6 ..... @V305014 00842000
  919. CLC CMSSEG(8),0(R1) IS THIS THE CMS SEGMENT ? @V305014 00843000
  920. DROP R6 ..... @V305014 00844000
  921. BNE SR1515 NO, ALL DONE @V305014 00845000
  922. SPACE 1 00846000
  923. TM DCSSFLAG,DCSSVTLD DMSSVT TEXT LOADED @V305614 00847000
  924. BNO NOFRET NO, SKIP DMSFRET @V305614 00848000
  925. L R9,OSMODLDW GET OS SIM. LENGTH @VA05055 00849000
  926. L R1,AOSMODL POINT TO DMSSVT TEXT @V305614 00850000
  927. DMSFRET DWORDS=(0),LOC=(1) @V305614 00851000
  928. NI DCSSFLAG,255-DCSSVTLD NO LONGER LOADED @V305614 00852000
  929. SR R1,R1 @VA05055 00853000
  930. ST R1,AOSMODL CLEAR OS SIMUL. ADDR @VA05055 00854000
  931. SPACE 1 00855000
  932. NOFRET OI DCSSFLAG,DCSSJLNS+DCSSLDED DON'T LET INT PURGE @V305014 00856000
  933. ST R3,ACMSSEG SAVE CMSSEG ADDRESS @V305014 00857000
  934. B SR1515 EXECUTION COMPLETE .. @V305014 00858000
  935. EJECT 00859000
  936. * 00860000
  937. * SET DOS ON|OFF <MODE> (VSAM) 00861000
  938. * 00862000
  939. SPACE 1 00863000
  940. DOS EQU * @VA04696 00864000
  941. CLI 0(R3),FF ANYTHING SPECIFIED ? @V305066 00865000
  942. BE ERROR050 ERROR NO PARMS GIVEN @VA07126 00866000
  943. CLC ON,0(R3) ON SPECIFIED ? @V305001 00867000
  944. BE DOSON YES, BRANCH @V305001 00868000
  945. CLC OFF,0(R3) OFF SPECIFIED ? @V305001 00869000
  946. BE DOSOFF YES, BRANCH @V305001 00870000
  947. B CHARBAD ERROR IF NONE @V305001 00871000
  948. SPACE 1 00872000
  949. DOSON LA R3,8(,R3) POINT TO 2ND. ARG @V305001 00873000
  950. CLI 0(R3),FF ANYTHING ELSE SPECIFIED ? @V305666 00874000
  951. BE DOSCONT NO, CONTINUE BELOW @V305001 00875000
  952. CLI 0(R3),OPAREN OPTION SPECIFIED ? @V305114 00876000
  953. BNE DSKMODE NO, MUST BE MODE @V305114 00877000
  954. SPACE 1 00878000
  955. OPTIN LA R3,8(,R3) YES, POINT TO IT @V305114 00879000
  956. CLC 0(8,R3),VSAM HAS TO BE VSAM @V305114 00880000
  957. BNE CHARBAD IF NOT, ERROR @V305114 00881000
  958. SPACE 1 00882000
  959. LA R3,8(,R3) NEXT TOKEN SHOULD BE @V305114 00883000
  960. CLI 0(R3),FF X'FF' @V305666 00884000
  961. BE VSAMOK OR @V305114 00885000
  962. CLI 0(R3),CPAREN C')' @V305114 00886000
  963. BNE CHARBAD IT'S AN ERROR @V305114 00887000
  964. SPACE 1 00888000
  965. LA R3,8(,R3) NEXT TOKEN @V305114 00889000
  966. CLI 0(R3),FF MUST BE A FENCE @V305666 00890000
  967. BNE CHARBAD ELSE IT'S AN ERROR @V305114 00891000
  968. VSAMOK OI DOSFLAGS,DOSVSAM SET VSAM INDICATOR @V305114 00892000
  969. B DOSCONT CONTINUE ... @V305114 00893000
  970. EJECT 00894000
  971. DSKMODE LR R1,R3 SET UP R1 @V305001 00895000
  972. S R1,=F'24' PREPARE FOR ADTLKP @V305001 00896000
  973. L R15,VCADTLKP GET ADTLKP ADDRESS @VM03093 00897000
  974. BALR R14,R15 GO GET ADT FOR DISK MODE @V305001 00898000
  975. LTR R15,R15 ANY ERRORS ? @V305001 00899000
  976. BNZ CHARBAD YES, BRANCH @V305001 00900000
  977. USING ADTSECT,R1 @V305001 00901000
  978. TM ADTFLG2,ADTFDOS IS DISK DOS FORMATTED ? @V305001 00902000
  979. BZ ERROR048 NO, ERROR @V305001 00903000
  980. LA R4,MODETAB GET MODE/PUB TABLE @V305001 00904000
  981. LA R5,EMODTAB GET NUMBER TABLE ENTRIES @V305001 00905000
  982. MODECHK CLC ADTM(1),0(R4) MODE LETTER MATCH ? @V305001 00906000
  983. BE VERRES YES,FOUND AND OK @VA04692 00907000
  984. LA R4,2(,R4) BUMP TO NEXT ENTRY @V305001 00908000
  985. BCT R5,MODECHK KEEP LOOKING.... @V305001 00909000
  986. B ERROR048 ERROR IF HERE @V305001 00910000
  987. * CHECK THAT DOS DISK IS A VALID SYSRES 00911000
  988. * READ THE LABEL INFORMATION CYLINDER 00912000
  989. VERRES EQU * @VA04692 00913000
  990. L R5,ADTDTA GET DEVICE TABLE ADDRESS @VA04692 00914000
  991. LH R9,0(R5) GET CUU @VA04692 00915000
  992. LA R0,LICCW POINT TO CHANNEL PROGRAM @VA04692 00916000
  993. DC X'83900020' DIAG FOR DISK I/O @VA04692 00917000
  994. CLC NIDOS,SETBUFA MUST CONTAIN '$$A$IPL2' @VA04692 00918000
  995. BNE ERROR444 NOT SYSRES @VA04692 00919000
  996. IC R4,1(,R4) GET PUB INDEX FOR THIS MODE @VA04692 00920000
  997. L R5,ABGCOM GET BGCOM ADDRESS @V305001 00921000
  998. USING BGCOM,R5 @V305001 00922000
  999. LH R6,LUBPT GET LUB TABLE POINTER @V305001 00923000
  1000. LA R6,12(,R6) BUMP TO SYSRES LUB @V305001 00924000
  1001. STC R4,0(,R6) SET PUB INDEX INTO LUB @V305001 00925000
  1002. N R4,=X'000000FF' ISOLATE LAST BYTE @V305001 00926000
  1003. SLL R4,3 MULTIPLY INDEX BY 8 @V305001 00927000
  1004. AH R4,PUBPT ADD INDEX TO PUB POINTER @V305001 00928000
  1005. MVC 3(1,R4),ADTM MOVE DISK MODE TO PUB @V305001 00929000
  1006. L R5,ADTDTA GET DEVICE TABLE ADDRESS @V305001 00930000
  1007. MVC 0(2,R4),0(R5) MOVE CUU TO PUB @V305001 00931000
  1008. MVI 4(R4),DOS2314 SET DASD 2314 TYPE IN PUB @V305066 00932000
  1009. CLI 3(R5),CMS2314 IS IT 2314 ? @V305066 00933000
  1010. BE CHKOPT CHECK FOR OPTION @V305114 00934000
  1011. MVI 4(R4),DOS3330 SET DASD 3330 TYPE IN PUB @V305066 00935000
  1012. CLI 3(R5),CMS3330 IS IT 3330 ? @V305066 00936000
  1013. BE CHKOPT CHECK FOR OPTION @V305114 00937000
  1014. MVI 4(R4),DOS333B SET DASD TYPE IN PUB 00938000
  1015. CLI 3(R5),CMS3330 IS IT A 3330-11 ? 00939000
  1016. BE CHKOPT CHECK FOR OPTION 00940000
  1017. MVI 4(R4),DOS3350 SET DASD TYPE IN PUB 00941000
  1018. CLI 3(R5),CMS3350 IS IT AS 3350 ? 00942000
  1019. BE CHKOPT CHECK FOR OPTION 00943000
  1020. MVI 4(R4),DOS3340 MUST BE 3340 TYPE THEN... @V305066 00944000
  1021. CHKOPT LA R3,8(,R3) BUMP COMMAND LINE POINTER @V305114 00945000
  1022. CLI 0(R3),FF ANY OPTIONS ? @V305666 00946000
  1023. BE DOSCONT NO, GET ON WITH IT @V305114 00947000
  1024. CLI 0(R3),OPAREN HAS TO BE OPEN PAREN @V305114 00948000
  1025. BNE CHARBAD ELSE, NO GOOD @V305114 00949000
  1026. B OPTIN GO CHECK OUT OPTION @V305114 00950000
  1027. EJECT 00951000
  1028. DOSCONT EQU * @V305014 00952000
  1029. USING SYSNAMES,R4 @V305014 00953000
  1030. L R4,ASYSNAMS POINT TO SAVED NAME TABLE @V305014 00954000
  1031. LA R3,CMSDOS POINT TO CMSDOS ENTRY @V305014 00955000
  1032. LR R1,R3 JUST IN CASE ERRORS @V305001 00956000
  1033. LA R4,FINDSYS GET FINDSYS CODE @V305066 00957000
  1034. DC X'83340064' ISSUE FINDSYS DIAGNOSE @V305001 00958000
  1035. BZ LOADED BRANCH IF SEG. ALREADY ACTIVE @V305001 00959000
  1036. BM LOADIT BRANCH IF SEG. TO BE LOADED @V305001 00960000
  1037. DOSERRS CH R4,=H'44' R.C. = 44 ? @V305001 00961000
  1038. BE ERROR400 YES, SEGMENT DOES NOT EXIST @V305001 00962000
  1039. B ERROR410 OTHERWISE PAGING ERROR @V305001 00963000
  1040. LOADIT BAL R5,CHKSEG CHECK WHERE SEGMENT SAVED @V305001 00964000
  1041. SR R4,R4 GET LOADSYS SHARED CODE @V305001 00965000
  1042. LR R3,R1 GET SEGMENT NAME @V305001 00966000
  1043. DC X'83340064' ISSUE LOADSYS DIAGNOSE @V305001 00967000
  1044. BP DOSERRS (SHOULD NOT HAPPEN) @V305001 00968000
  1045. LOADED BAL R5,CHKSEG (SHOULD ALWAYS RETURN) @V305001 00969000
  1046. ST R3,ADOSDCSS SAVE CMSDOS SEGMENT START @V305001 00970000
  1047. L R5,ABGCOM GET COM. REGION ADDRESS @V305001 00971000
  1048. ST R5,ASYSREF SAVE IN NUCON (LOC X'14') @V305001 00972000
  1049. XC PPEND(12),PPEND ZERO PPEND, HIPHAS & HIPROG @V305001 00973000
  1050. LH R1,LUBPT GET LUB TABLE POINTER @V305001 00974000
  1051. LA R1,8(,R1) POINT TO SYSLOG LUB ENTRY @V305001 00975000
  1052. MVI 0(R1),HEX00 INITIALIZE LUB INDEX @V305066 00976000
  1053. LH R1,PUBPT GET PUB TABLE POINTER @V305001 00977000
  1054. XC 0(8,R1),0(R1) INITIALIZE CONSOLE PUB ENTRY @V305001 00978000
  1055. L R3,ADEVTAB GET DEVICE TABLE ADDRESS @V305001 00979000
  1056. LH R3,0(,R3) GET CONSOLE CUU @V305001 00980000
  1057. STH R3,0(,R1) SAVE IN PUB ENTRY @V305001 00981000
  1058. L R1,ASYSCOM GET SYSCOM REGION ADDR @V305001 00982000
  1059. ST R1,CPULOG STORE IN NUCON @V305001 00983000
  1060. MVC JOBDATE,CURRDATE SET DATE IN BGCOMRG @VA07188 00984000
  1061. OI DOSFLAGS,DOSMODE+DOSSVC SET FLAGS IN NUCON @V305001 00985000
  1062. ICM R0,15,DOSTRANS TRANS AREA ALREADY ACQUIRED ? @V305101 00986000
  1063. BNZ SR1515 YES, JUST GET OUT @V305101 00987000
  1064. LA R0,CON175 GET $$B (LTA) SIZE @VA08226 00988100
  1065. DMSFREE DWORDS=(0),TYPCALL=BALR,TYPE=NUCLEUS @V305101 00989000
  1066. ST R1,DOSTRANS SAVE DOSTRANS AREA ADDRESS @V305101 00990000
  1067. B SR1515 AND FINALLY, GET OUT @V305101 00991000
  1068. DROP R1 @V305001 00992000
  1069. SPACE 1 00993000
  1070. CHKSEG C R3,VMSIZE WILL SEG OVERLAY USER'S V.M. ? @V305001 00994000
  1071. LA R14,EXIT PROVIDE EXIT FOR ERROR RTN @VM03024 00995000
  1072. BL ERROR401 YES, DO NOT ALLOW @V305001 00996000
  1073. BR R5 RETURN TO CALLER @V305001 00997000
  1074. EJECT 00998000
  1075. DOSOFF CLI 8(R3),FF 2ND. ARG SPECIFIED ? @V305066 00999000
  1076. BNE ERROR070 YES, ERROR @V305001 01000000
  1077. TM DOSFLAGS,DOSMODE CMS/DOS ACTIVE ? @V305001 01001000
  1078. BZ SR1515 NO, JUST GET OUT @V305001 01002000
  1079. USING SYSNAMES,R4 @V305014 01003000
  1080. L R4,ASYSNAMS POINT TO SAVED NAME TABLE @V305014 01004000
  1081. LA R1,CMSDOS POINT TO CMSDOS ENTRY @V305014 01005000
  1082. LA R3,PURGESYS GET PURGESYS CODE @V305066 01006000
  1083. DC X'83130064' ISSUE PURGESYS DIAGNOSE @V305001 01007000
  1084. SPACE 1 01008000
  1085. TM DOSFLAGS,DOSVSAM VSAM INCLUDED ? @V305114 01009000
  1086. BNO CLRDOS NO, SKIP PURGE @V305114 01010000
  1087. LA R1,CMSVSAM POINT TO CMSVSAM ENTRY @V305114 01011000
  1088. LA R3,PURGESYS INDICATE PURGESYS @V305166 01012000
  1089. DC X'83130064' ISSUE PURGESYS DIAGNOSE @V305114 01013000
  1090. NI VSAMFLG1,X'FF'-VSAMRUN RESET VSAM LOAD FLAG @VA11692 01013500
  1091. EJECT 01014000
  1092. CLRDOS MVI DOSFLAGS,HEX00 RESET FLAGS IN NUCON @V305166 01015000
  1093. L R5,ABGCOM GET ADDRESS OF BGCOM AREA @V305101 01016000
  1094. XC PPEND(12),PPEND ZERO PPEND, HIPHAS & HIPROG @V305101 01017000
  1095. XC LTK(2),LTK ZERO LOG. TRANS AREA KEY @V305101 01018000
  1096. XC DOSKPART,DOSKPART ZERO DOS PARTITON SIZE @VA04299 01019000
  1097. MVI UPSI,HEX00 AND THE UPSI BYTE. @VA04299 01020000
  1098. LH R1,PIBPT GET PIB ADDRESS @V305101 01021000
  1099. L R3,ALTASAVE AND LTA SAVE AREA ADDRESS @V305101 01022000
  1100. ST R3,8(,R1) STORE IN ATTN. PIB @V305101 01023000
  1101. L R3,APPSAVE NOW GET PP SAVE AREA ADDRESS @V305101 01024000
  1102. ST R3,20(,R1) AND STORE IN PART. PIB @V305101 01025000
  1103. MVC JCSW3(1),SOB1 NON-STD OPT. BYTE 3 = STD. @V305066 01026000
  1104. MVI JCSW4,OPT NON-STD OPT. BYTE 4 TO ZERO @V305066 01027000
  1105. LH R1,LUBPT NOW GET LUB POINTER @V305001 01028000
  1106. LA R3,LOGUNIT GET NUMBER LOGICAL UNITS @V305066 01029000
  1107. LA R3,LOGUNIT GET NUMBER LOGICAL UNITS @V305066 01030000
  1108. DOSLUP MVI 0(R1),FF UNASSIGN LOGICAL UNIT @V305066 01031000
  1109. LA R1,2(,R1) POINT TO NEXT LOGICAL UNIT @V305001 01032000
  1110. BCT R3,DOSLUP LOPP 'TILL ALL UNASSIGNED @V305001 01033000
  1111. LA R1,SYSREF GET CMS SYSREF ADDR @V305001 01034000
  1112. ST R1,ASYSREF STORE IN NUCON @V305001 01035000
  1113. XC CPULOG(4),CPULOG CLEAR SYSCOM ADDR @V305001 01036000
  1114. ICM R1,15,DOSTRANS GET DOSTRANS AREA ADDRESS @V305101 01037000
  1115. BZ SR1515 IF ZERO, JUST EXIT @V305101 01038000
  1116. LA R0,CON175 $$B (LTA) SIZE @VA09234 01039500
  1117. DMSFRET DWORDS=(0),LOC=(1),TYPCALL=BALR @V305101 01040000
  1118. XC DOSTRANS,DOSTRANS ZERO DOSTRANS AREA @V305101 01041000
  1119. B SR1515 AND FINALLY, GET OUT @V305101 01042000
  1120. DROP R5 @V305001 01043000
  1121. SPACE 2 01044000
  1122. MODETAB DC C'A',X'08' A-DISK MODE AND PUB INDEX @V305001 01045000
  1123. DC C'B',X'09' B-DISK MODE AND PUB INDEX @V305001 01046000
  1124. DC C'C',X'0A' C-DISK MODE AND PUB INDEX @V305001 01047000
  1125. DC C'D',X'0B' D-DISK MODE AND PUB INDEX @V305001 01048000
  1126. DC C'E',X'0C' E-DISK MODE AND PUB INDEX @V305001 01049000
  1127. DC C'F',X'0D' F-DISK MODE AND PUB INDEX @V305001 01050000
  1128. DC C'G',X'0E' G-DISK MODE AND PUB INDEX @V305001 01051000
  1129. DC C'S',X'0F' S-DISK MODE AND PUB INDEX @V305001 01052000
  1130. DC C'Y',X'10' Y-DISK MODE AND PUB INDEX @V305001 01053000
  1131. DC C'Z',X'11' Z-DISK MODE AND PUB INDEX @V305001 01054000
  1132. EMODTAB EQU (*-MODETAB)/2 NUMBER ITEMS IN TABLE @V305001 01055000
  1133. EJECT 01056000
  1134. * 01057000
  1135. * SET DOSPART NN 01058000
  1136. * 01059000
  1137. SPACE 1 01060000
  1138. DOSPART TM DOSFLAGS,DOSMODE IS CMS/DOS MODE ACTIVE ? @VA04299 01061000
  1139. BZ ERROR099 NO, ERROR @VA04299 01062000
  1140. CLI 0(R3),FF ANY SPECIFIED ? @VA04299 01063000
  1141. BE ERROR047 NO, NO ARGUMENT SPECIFIED. @VA04299 01064000
  1142. CLI 8(R3),FF MORE THAN ONE ARGUMENT IN LINE ? @VA04299 01065000
  1143. BNE ERROR070 YES, UNEXPECTED PARAMETER. @VA04299 01066000
  1144. SR R4,R4 CLEAR WORK REGISTER @VA04299 01067000
  1145. CLC 0(4,R3),OFF IS OFF SPECIFIED ? @VA04299 01068000
  1146. BE DOSPART4 YES, SET DOSPART TO 0 @VA04299 01069000
  1147. LR R4,R3 LET R4 POINT TO NO. K @VA04299 01070000
  1148. CLI 6(R4),BLANK SET IF EXCEEDS 5 DIGITS ? @VA04299 01071000
  1149. BNE CHARBAD ERROR IF MORE THAN 5 DIGITS. @VA04299 01072000
  1150. DOSPART2 CLI 0(R4),KBYTE CHECK NUMBER FOR VALID @VA04299 01073000
  1151. BE DOSPART3 DECIMAL VALUE. @VA04299 01074000
  1152. CLI 0(R4),CHAR0 LESS THAN ZERO ? @VA04299 01075000
  1153. BL CHARBAD YES, GIVE ERROR MESSAGE @VA04299 01076000
  1154. CLI 0(R4),CHAR9 GREATER THAN NINE ? @VA04299 01077000
  1155. BH CHARBAD YES, GIVE ERROR MESSAGE @VA04299 01078000
  1156. LA R4,1(,R4) BUMP TO NEXT DIGIT @VA04299 01079000
  1157. B DOSPART2 AND CHECH NEXT DIGIT. @VA04299 01080000
  1158. DOSPART3 SR R4,R3 COMPUTE NUMBER DIGITS. @VA04299 01081000
  1159. BZ CHARBAD IF NO VALUE, ERROR @VA04299 01082000
  1160. BCTR R4,0 LESS ONE FOR EXECUTE @VA04299 01083000
  1161. EX R4,DOSPACK PACK THE NUMBER @VA04299 01084000
  1162. CVB R4,PGLDR AND CONVERT IT TO BINARY. @VA04299 01085000
  1163. LTR R4,R4 IS VALUE ZERO ? @VA04299 01086000
  1164. BZ CHARBAD YES, GIVE ERROR MESSAGE @VA04299 01087000
  1165. L R6,FREELOWE GET UPPER BOUND AS OF THIS TIME @VA04299 01088000
  1166. S R6,AUSRAREA AND COMPUTE TOTAL USER AREA @VA04299 01089000
  1167. LH R5,FRERESPG GET NO. PAGES TO RESERVE FOR CMS @VA04299 01090000
  1168. SLL R5,12 AND CONVERT TO BYTES @VA04299 01091000
  1169. SR R6,R5 COMPUTE DOS POSSIBLE LARGEST PART@VA04299 01092000
  1170. SRL R6,10 NOW CONVERT TO K-BYTES @VA04299 01093000
  1171. CR R4,R6 EXCEEDS MAXIMUM ALLOWED ? @VA04299 01094000
  1172. BH ERRORXXX YES, GIVE ERROR MESSAGE @VA04299 01095000
  1173. DOSPART4 STH R4,DOSKPART STORE NUMBER K-BYTES IN NUCON. @VA04299 01096000
  1174. * 01097000
  1175. * SINCE A NEW PARTITION SIZE IS BEING SPECIFIED BY THE USER, 01098000
  1176. * 'DISABLE' ANY PREVIOUS LOADS OR FETCHES. 01099000
  1177. * 01100000
  1178. STRINIT TYPCALL=SVC @VA04299 01101000
  1179. XC STRTADDR(4),STRTADDR CLEAR STARTING ADDRESS @VA04299 01102000
  1180. XC TBENT(2),TBENT RESET NO. OF LOADER TABLE ENTRIES 01103000
  1181. B SR1515 EXIT WITHOUT ERROR @VA04299 01104000
  1182. SPACE 1 01105000
  1183. DOSPACK PACK PGLDR,0(0,R3) EXECUTED PACK @VA04299 01106000
  1184. EJECT 01107000
  1185. * 01108000
  1186. * SET DOSLNCNT NN WHERE 29<NN<100 01109000
  1187. * 01110000
  1188. SPACE 01111000
  1189. LINECT TM DOSFLAGS,DOSMODE IS CMS/DOS MODE ACTIVE?? @V505098 01112000
  1190. BZ ERROR099 NO, ERROR @V505098 01113000
  1191. CLI 0(R3),FF ANY ARGUMENTS SPECIFIED?? @V505098 01114000
  1192. BE ERROR047 NO, NO ARGUMENTS SPECIFIED?? @V505098 01115000
  1193. CLI 8(R3),FF MORE THAN ONE ARGUMENT IN LINE?? @V505098 01116000
  1194. BNE ERROR070 YES, UNEXPECTED PARAMETER @V505098 01117000
  1195. CLI 2(R3),C' ' IS ARGUMENT TOO LONG?? @V505098 01118000
  1196. BNE CHARBAD YES, INVALID PARAMETER @V505098 01119000
  1197. CLC 0(2,R3),LCLOW IS PARAMETER TOO SMALL?? @V505098 01120000
  1198. BL CHARBAD YES, INVALID PARAMETER @V505098 01121000
  1199. CLC 0(2,R3),LCHIGH IS PARAMETER TOO LARGE?? @V505098 01122000
  1200. BH CHARBAD YES, INVALID PARAMETER @V505098 01123000
  1201. L R1,ABGCOM GET ADDRES OF COMM. REGION @V505098 01124000
  1202. USING BGCOM,R1 SET UP ADDRESSABILITY @V505098 01125000
  1203. PACK DEC(8),0(2,R3) PACK THE LINE COUNT @V505098 01126000
  1204. CVB R3,DEC @V505098 01127000
  1205. STC R3,SYSLINE STORE LINECT IN COMM. REG. @V505098 01128000
  1206. DROP R1 GET RID OF ADDRESSABILITY @V505098 01129000
  1207. B SR1515 EXIT WITHOUT ERROR @V505098 01130000
  1208. EJECT 01131000
  1209. * 01132000
  1210. * SET UPSI NNNNNNNN|OFF 01133000
  1211. * 01134000
  1212. SPACE 1 01135000
  1213. UPSISET TM DOSFLAGS,DOSMODE IS CMS/DOS MODE ACTIVE ? @V305001 01136000
  1214. BZ ERROR099 NO, ERROR @V305001 01137000
  1215. L R1,ABGCOM GET ADDRESS OF COMM. REGION @V305001 01138000
  1216. USING BGCOM,R1 @V305001 01139000
  1217. CLI 0(R3),FF NONE SPECIFIED ? @V305066 01140000
  1218. BE ERROR047 NO, ERROR @V305001 01141000
  1219. CLI 8(R3),FF MORE THAN ONE ARGUMENT ? @V305066 01142000
  1220. BNE ERROR070 YES, GIVE ERROR MSG @V305001 01143000
  1221. CLC OFF,0(R3) UPSI OFF ? @V305001 01144000
  1222. BE UPSIOFF YES, ZERO UPSI BYTE @V305001 01145000
  1223. LR R4,R3 SAVE ARGUMENT POINTER @V305001 01146000
  1224. LA R5,CON128 GET UPSI ON MASK @V305066 01147000
  1225. LCR R6,R5 GET UPSI OFF MASK @V305001 01148000
  1226. BCTR R6,0 ... @V305001 01149000
  1227. LA R7,ARGLEN GET ARGUMENT MAX LENGTH @V305066 01150000
  1228. UPSICHK CLI 0(R4),X IS CHAR. 'X' ? @V305066 01151000
  1229. BE UPSINXT YES, BUMP TO NEXT BYTE @V305001 01152000
  1230. CLI 0(R4),CHAR1 IS CHAR. '1' ? @V305066 01153000
  1231. BE BITON YES, TURN PROPER BIT ON @V305001 01154000
  1232. CLI 0(R4),CHAR0 IS CHAR. '0' ? @V305066 01155000
  1233. BE BITOFF YES, TURN PROPER BIT OFF @V305001 01156000
  1234. CLI 0(R4),BLANK IS THIS ALL ? @V305066 01157000
  1235. BE SR1515 YES, GET OUT @V305001 01158000
  1236. B CHARBAD MUST BE INVALID FUNCTION @V305001 01159000
  1237. SPACE 1 01160000
  1238. BITON EX R5,EXOI TURN PROPER BIT ON @V305001 01161000
  1239. B UPSINXT GO PROCESS NEXT BYTE @V305001 01162000
  1240. BITOFF EX R6,EXNI TURN PROPER BIT OFF @V305001 01163000
  1241. SPACE 1 01164000
  1242. UPSINXT SRA R5,1 SHIFT MASK TO NEXT BIT @V305001 01165000
  1243. SRA R6,1 DITTO..... @V305001 01166000
  1244. LA R4,1(,R4) BUMP TO NEXT BYTE @V305001 01167000
  1245. BCT R7,UPSICHK KEEP CHECKING @V305001 01168000
  1246. B SR1515 ALL DONE HERE @V305001 01169000
  1247. UPSIOFF MVI UPSI,HEX00 SET UPSI BYTE TO ZERO @V305066 01170000
  1248. B SR1515 ALL DONE @V305001 01171000
  1249. SPACE 1 01172000
  1250. EXOI OI UPSI,HEX00 EXECUTED 'OI' @V305066 01173000
  1251. EXNI NI UPSI,HEX00 EXECUTED 'NI' @V305066 01174000
  1252. DROP R1 @V305001 01175000
  1253. EJECT 01176000
  1254. * 01177000
  1255. * SET SYSNAME SNAME NAME 01178000
  1256. * 01179000
  1257. SPACE 1 01180000
  1258. SAVNAME EQU * @V305114 01181000
  1259. CLI 0(R3),FF MUST BE THERE @V305166 01182000
  1260. BE ERROR050 ERROR, IF NOT @V305114 01183000
  1261. SPACE 1 01184000
  1262. LA R4,SAVNAMES POINT TO SAVED SYS NAME TABLE @V305114 01185000
  1263. LA R5,SAVNCNT GET TABLE ENTRY COUNT @V305114 01186000
  1264. L R6,ASYSNAMS POINT TO NUCLEUS TABLE @V305114 01187000
  1265. SPACE 1 01188000
  1266. SYSNSRCH CLC 0(8,R3),0(R4) THIS ENTRY ? @V305114 01189000
  1267. BE SYSNFND YES, BR @V305114 01190000
  1268. LA R4,8(,R4) POINT TO NEXT ENTRY @V305114 01191000
  1269. LA R6,8(,R6) POINT TO NEXT TABLE ENTRY @V305114 01192000
  1270. BCT R5,SYSNSRCH SEARCH TO THE BOTTOM @V305114 01193000
  1271. B ERROR142 ERROR IF NOT FOUND @V305114 01194000
  1272. SPACE 1 01195000
  1273. SYSNFND LA R3,8(,R3) POINT TO SUBSTITUTE @V305114 01196000
  1274. LA R2,8(,R2) POINT TO SYSNAME FOR ERROR MSG @V305114 01197000
  1275. CLI 0(R3),FF MUST BE THERE @V305166 01198000
  1276. BE ERROR050 ERROR, IF NOT @V305114 01199000
  1277. SPACE 1 01200000
  1278. CLI 8(R3),FF THIS MUST BE THE LAST PARAMETER @V305166 01201000
  1279. BNE ERROR070 ERROR, IF NOT @V305114 01202000
  1280. CLC 0(8,R2),SAVNAMES IS THIS THE CMSSEG ENTRY ? @V305614 01203000
  1281. BE SETCMS YES, BR @V305614 01204000
  1282. MVC 0(8,R6),0(R3) ELSE, PLUG NEW SYSTEM NAME @V305114 01205000
  1283. B SR1515 AND LEAVE... @V305114 01206000
  1284. SPACE 1 01207000
  1285. SETCMS L R6,ASYSNAMS POINT TO SYSNAMES TABLE @V305614 01208000
  1286. USING SYSNAMES,R6 ..... @V305614 01209000
  1287. LR R7,R3 ALLOW CODE SHARING @V305614 01210000
  1288. NI DCSSFLAG,255-DCSSAVAL MAY BECOME NOT AVAILABLE @V305614 01211000
  1289. TM DCSSFLAG,DCSSJLNS NON-SHARED CMSSEG ? @V305614 01212000
  1290. BNO NOTNSHR NO, PURGE NOT NECESSARY @V305614 01213000
  1291. SPACE 1 01214000
  1292. LA R4,PURGESYS INDICATE PURGESYS FUNCTION @V305666 01215000
  1293. LA R3,CMSSEG POINT TO OLD CMSSEG ENTRY @V305614 01216000
  1294. DC X'83340064' PURGE OLD SEGMENT @V305614 01217000
  1295. NI DCSSFLAG,255-DCSSJLNS RESET INDICATOR @V305614 01218000
  1296. SPACE 1 01219000
  1297. NOTNSHR MVC CMSSEG(8),0(R7) MOVE IN NEW NAME @V305614 01220000
  1298. LA R3,CMSSEG POINT TO CMSSEG ENTRY @V305614 01221000
  1299. LA R4,FINDSYS INDICATE FINDSYS FUNCTION @V305666 01222000
  1300. DC X'83340064' FINDSYS NEW SEGMENT @V305614 01223000
  1301. BC 2,NOTAVAL INVALID OR CP ERROR @VM03024 01224000
  1302. SPACE 1 01225000
  1303. C R3,VMSIZE WILL SEG OVERLAY VM STORAGE ? @V305614 01226000
  1304. BNL LOADSEG NO, LOAD IT @VM03024 01227000
  1305. LA R1,CMSSEG POINTER FOR MSG SUBSTITUTION @VM03024 01228000
  1306. LA R14,FSYSERR OTHERWISE ISSUE @VM03024 01229000
  1307. B ERROR401 WARNING MESSAGE @VM03024 01230000
  1308. SPACE 1 01231000
  1309. LOADSEG LA R3,CMSSEG POINT TO CMSSEG ENTRY @VM03024 01232000
  1310. SR R4,R4 INDICATE LOADSYS @V305614 01233000
  1311. DC X'83340064' LOADSYS @V305614 01234000
  1312. BNZ NOTAVAL ISSUE MSG IF LOAD ERROR @VM03024 01235000
  1313. SPACE 1 01236000
  1314. TM DCSSFLAG,DCSSVTLD SVT TEXT LOADED ? @V305614 01237000
  1315. BNO SKFRET NO, SKIP DMSFRET @V305614 01238000
  1316. L R0,OSMODLDW GET OS SIM. LENGTH (DWORDS) @VA05055 01239000
  1317. L R1,AOSMODL POINT TO DMSSVT TEXT @V305614 01240000
  1318. DMSFRET DWORDS=(0),LOC=(1) @V305614 01241000
  1319. SR R1,R1 @VA05055 01242000
  1320. ST R1,AOSMODL CLEAR OS SIM ADDR @VA05055 01243000
  1321. SPACE 1 01244000
  1322. SKFRET MVI DCSSFLAG,DCSSAVAL+DCSSLDED AVAIL AND LOADED @VA04737 01245000
  1323. ST R3,ACMSSEG SAVE SEGMENT ADDRESS IN NUCON @VA15001 01245500
  1324. B SR1515 PURGE IS DONE BY DMSINT @V305614 01246000
  1325. SPACE 1 01247000
  1326. NOTAVAL LA R2,CMSSEG GET CMSSEG ENTRY @VM03024 01248000
  1327. DMSERR NUM=100,LET=W,TEXT='SYSTEM NAME ''........'' NOT AVAILAX01249000
  1328. BLE',SUB=(CHARA,(R2)) @VM03024 01250000
  1329. LA R10,FOURBITS SET WARNING RETURN CODE @VM03156 01251000
  1330. SPACE 1 01252000
  1331. FSYSERR LR R8,R15 SAVE FIND/LOADSYS RETURN @VM03024 01253000
  1332. TM DCSSFLAG,DCSSVTLD WAS SVT LOADED ? @VA07273 01254000
  1333. BNO STATSVT NO, LOAD IT @VA07273 01255000
  1334. L R1,AOSMODL GET OS SIMULATION ADDRESS @VA07273 01256000
  1335. L R0,OSMODLDW GET CURRENT LENGTH @VA07273 01257000
  1336. DMSFRET DWORDS=(0),LOC=(1) @VA07273 01258000
  1337. SR R1,R1 CLEAR REG 1 @VA07273 01259000
  1338. ST R1,AOSMODL CLEAR ADDRESS AND @VA07273 01260000
  1339. ST R1,OSMODLDW LENGTH @VA07273 01261000
  1340. STATSVT NI DCSSFLAG,255-DCSSVTLD NO LONGER LOADED @VM03024 01262000
  1341. SPACE 1 01263000
  1342. LA R1,SVTST POINT TO DMSSVT STATE PLIST @VM03024 01264000
  1343. L R15,ASTATE AND GET STATE ENTRY POINT @V305614 01265000
  1344. BALR R14,R15 IS DMSSVT TEXT AVAILABLE ? @V305614 01266000
  1345. BNZ NOSVT NO, GET OUT @V305614 01267000
  1346. L R2,AUSRAREA LOAD AT X'20000' FOR SIZE @VA05055 01268000
  1347. BAL R9,LOADSUB LOAD TO GET SIZE... @VA05055 01269000
  1348. L R2,AUSRAREA WE LOADED AT X'20000'... @VA05055 01270000
  1349. L R3,LOCCNT R3-> LAST LOCATION LOADED... @VA05055 01271000
  1350. SR R3,R2 DIFF = SIZE OF OS SIMUL. @VA05055 01272000
  1351. LA R3,7(,R3) ROUND TO NEXT DWORD... @VA05055 01273000
  1352. SRL R3,3 DIVIDE BY 8 = NO. DWORDS @VA05055 01274000
  1353. ST R3,OSMODLDW KEEP SIZE OF OS SIM(DWORDS) @VA05055 01275000
  1354. LR R0,R3 GET OS SIM. LENGTH(DWORDS) @VA05055 01276000
  1355. LOADFREE EQU * @VA06166 01277000
  1356. DMSFREE DWORDS=(0),AREA=HIGH,TYPE=NUCLEUS,ERR=NOSVT @VA06297 01278000
  1357. ST R1,AOSMODL SAVE FREE STORAGE ADDR @VA05055 01279000
  1358. BYFREE LR R2,R1 R2-> OS SIM STORAGE @VA05055 01280000
  1359. LA R9,FINALOAD DROP THRU THIS TIME... @VA05055 01281000
  1360. SPACE 1 01282000
  1361. LOADSUB EQU * HERE FOR LOADING OS SIM. @VA05055 01283000
  1362. LA R14,MAXORG MAXIMUM ORIGIN LENGTH @V305665 01284000
  1363. LA R1,LOADSTRT+7 POINT TO ORIGIN FIELD @V305665 01285000
  1364. HALFBYTE EQU * @V305665 01286000
  1365. SRDL R2,FOURBITS MOVE HALF BYTE TO R3 @V305665 01287000
  1366. SRL R3,RESTWORD MOVE TO LOW BYTE @V305665 01288000
  1367. STC R3,0(,R1) STORE FULL BYTE IN PLIST @V305665 01289000
  1368. BCTR R1,0 GET LOWER BYTE ADDRESS @V305665 01290000
  1369. BCT R14,HALFBYTE AND LOOP @V305665 01291000
  1370. SPACE 1 01292000
  1371. TR LOADSTRT,HEXTBL TRANSLATE TO EBCDIC @V305665 01293000
  1372. LA R1,LDPLIST POINT TO PLIST @V305665 01294000
  1373. STM R0,R15,RGPRS SAVE REGISTERS @V305665 01295000
  1374. OI MODFLGS,SYSLOAD ALLOW LOAD ABOVE FREELOWE @VA04666 01296000
  1375. SVC 202 LOAD DMSSVT TEXT @V305614 01297000
  1376. DC AL4(*+4) ..... @V305614 01298000
  1377. NI MODFLGS,255-SYSLOAD RESET LOADER FLAG @VA04666 01299000
  1378. LTR R15,R15 ANY ERRORS? @V305665 01300000
  1379. LM R0,R15,RGPRS RESTORE REGISTERS @V305665 01301000
  1380. BNZ NOSVT IF ERROR, CAN'T ISSUE OS SVCS @V305614 01302000
  1381. BR R9 RETURN TO CALLER @VA05055 01303000
  1382. FINALOAD EQU * DROP THRU IF LAST LOAD @VA05055 01304000
  1383. OI DCSSFLAG,DCSSVTLD INDICATE LOADED @V305665 01305000
  1384. B EXIT ALL SET ... @VM03024 01306000
  1385. SPACE 1 01307000
  1386. NOSVT DMSERR NUM=098,LET=W,TEXT='CMS OS SIMULATION NOT AVAILABLE' 01308000
  1387. LA R10,FOURBITS SET WARNING RETURN CODE @VM03156 01309000
  1388. ICM R1,ALL,AOSMODL GET OS SIM ADDR @VA05055 01310000
  1389. BZ BYFRET IF ZERO, DON'T FRET @VA05055 01311000
  1390. L R0,OSMODLDW GET OS SIM LENGTH(DWORDS) @VA05055 01312000
  1391. DMSFRET DWORDS=(0),LOC=(1) @VM03024 01313000
  1392. SR R1,R1 @VA05055 01314000
  1393. ST R1,AOSMODL CLEAR OS SIM ADDR @VA05055 01315000
  1394. BYFRET EQU * @VA05055 01316000
  1395. CH R8,PAGERR WAS THERE A PAGING I/O ERROR ? @VM03024 01317000
  1396. BNE EXIT NO, EXIT @VM03024 01318000
  1397. LR R4,R8 SET UP FOR ERROR410 @VM03024 01319000
  1398. B ERROR410 ISSUE 410S MESSAGE @VM03024 01320000
  1399. DROP R6 @V305614 01321000
  1400. EJECT 01322000
  1401. ERROR014 EQU * 01323000
  1402. DMSERR NUM=14,LET=E,SUB=(CHARA,(R2)),TEXT='INVALID FUNCTION ''+01324000
  1403. ........''' 01325000
  1404. LA R10,24 COMPLETION CODE P0641 01326000
  1405. B EXIT RETURN TO CALLER 01327000
  1406. SPACE 2 01328000
  1407. CHARBAD EQU * 01329000
  1408. DMSERR NUM=26,LET=E,SUB=(CHARA,(R3),CHARA,(R2)),RENT=NO,TEXT='+01330000
  1409. INVALID PARAMETER ''........'' FOR ''........'' FUNCTION+01331000
  1410. ' 01332000
  1411. LA R10,24 RETURN CODE 01333000
  1412. B EXIT RETURN TO CALLER 01334000
  1413. EJECT 01335000
  1414. ERROR EQU * 01336000
  1415. DMSERR NUM=31,LET=E,TEXT='LOADER TABLES CANNOT BE MODIFIED' 01337000
  1416. SR R10,R10 ZERO R10 @VA06297 01338000
  1417. C R10,AOSMODL IS DMSSVT IN CORE @VA06297 01339000
  1418. LA R10,40 SET RETURN CODE @VA06297 01340000
  1419. BNE ERROREND YES IT IS @VA06297 01341000
  1420. NI DCSSFLAG,255-DCSSVTLD REMOVE SVT LOADED FLAG @VA06297 01342000
  1421. L R0,OSMODLDW GET LENGTH OF SVT MODULE @VA06297 01343000
  1422. B LOADFREE AND GO RELOAD IT. @VA06297 01344000
  1423. ERROREND EQU * @VA06297 01345000
  1424. B EXIT EXIT TO CALLER 01346000
  1425. SPACE 01347000
  1426. ERROR047 EQU * 01348000
  1427. DMSERR NUM=47,LET=E,TEXT='NO FUNCTION SPECIFIED' 01349000
  1428. LA R10,24 RETURN CODE 01350000
  1429. TM DCSSFLAG,DCSSVTLD WAS SVT LOADED? @VA06166 01351000
  1430. BZ EXIT BRANCH IF NOT @VA06166 01352000
  1431. NI DCSSFLAG,255-DCSSVTLD REMOVE SVT LOADED FLAG @VA06166 01353000
  1432. L R0,OSMODLDW GET LENGTH OF SVT MODULE @VA06166 01354000
  1433. B LOADFREE AND GO RELOAD IT @VA06166 01355000
  1434. EJECT 01356000
  1435. ERROR061 EQU * P0641 01357000
  1436. DMSERR NUM=61,LET=E, P0641*01358000
  1437. TEXT='NO TRANSLATION CHARACTER SPECIFIED' P0641 01359000
  1438. LA R10,24 COMPLETION CODE P0641 01360000
  1439. B EXIT RETURN TO CALLER P0641 01361000
  1440. SPACE 01362000
  1441. ERR070A LA R3,8(R3) ADJUST TO EXPECTED POSITION @VA01036 01363000
  1442. ERROR070 EQU * 01364000
  1443. LA R3,8(,R3) POINT TO UNEXPECTED PARM. 01365000
  1444. DMSERR NUM=70,LET=E,SUB=(CHARA,(R3)),TEXT='INVALID PARAMETER '+01366000
  1445. '........''' 01367000
  1446. LA R10,24 RETURN CODE 01368000
  1447. B EXIT RETURN TO CALLER @V305001 01369000
  1448. EJECT 01370000
  1449. ERROR048 EQU * INVALID MODE SPECIFIED @V305001 01371000
  1450. DMSERR NUM=48,LET=E,TEXT='INVALID MODE ''....''', @V305001*01372000
  1451. SUB=(CHARA,(R3)) @V305001 01373000
  1452. LA R10,TWENTY4 RETURN CODE @V305066 01374000
  1453. B EXIT RETURN TO CALLER @V305001 01375000
  1454. SPACE 1 01376000
  1455. ERROR050 EQU * MISSING PARAMETER @V305014 01377000
  1456. DMSERR NUM=50,LET=E,SUB=(CHARA,(R2)), @V305001X01378000
  1457. TEXT='PARAMETER MISSING AFTER ........' @V305014 01379000
  1458. LA R10,TWENTY4 RETURN CODE @V305066 01380000
  1459. B EXIT RETURN TO CALLER @V305014 01381000
  1460. EJECT 01382000
  1461. ERRORXXX EQU * DOS PARTITION SIZE TOO LARGE @VA04299 01383000
  1462. DMSERR TEXT='.....K PARTITION TOO LARGE FOR THIS VIRTUAL MACHI*01384000
  1463. NE',SUB=(DEC,(R4)),NUM=333,LET=E @VA04299 01385000
  1464. LA R10,TWENTY4 RETURN CODE @VA04299 01386000
  1465. B EXIT RETURN TO CALLER @VA04299 01387000
  1466. ERROR099 EQU * CMS/DOS NOT ACTIVE @V305001 01388000
  1467. DMSERR TEXT='CMS/DOS ENVIRONMENT NOT ACTIVE',NUM=99,LET=E 01389000
  1468. LA R10,FORTY RETURN CODE = 40 @V305066 01390000
  1469. B EXIT RETURN TO CALLER @V305001 01391000
  1470. EJECT 01392000
  1471. ERROR400 EQU * @V305001 01393000
  1472. DMSERR TEXT='SYSTEM ''........'' DOES NOT EXIST', @V305001*01394000
  1473. NUM=400,LET=S,SUB=(CHARA,(R3)) @V305001 01395000
  1474. LR R10,R4 RETURN CODE TO R10 @V305001 01396000
  1475. B EXIT RETURN TO CALLER @V305001 01397000
  1476. SPACE 1 01398000
  1477. ERROR401 LR R8,R2 SAVE PLIST POINTER @VA04735 01399000
  1478. LR R2,R1 POINT TO SEGMENT NAME @VA04735 01400000
  1479. DMSERR TEXT='V.M. SIZE (.......) CANNOT EXCEED ''........'' ST*01401000
  1480. ART ADDRESS (......)',MF=(E,'SYS'), @V305001*01402000
  1481. NUM=401,LET=S,SUB=(HEXA,VMSIZE,CHARA,(R2),HEX,(R3)) 01403000
  1482. CLC 0(8,R8),=CL8'DOS' WAS THIS A 'SET DOS' FUNCT? @VA04735 01404000
  1483. BNE E401OUT NO, THEN 401S WILL SUFFICE @VA04735 01405000
  1484. TM DOSFLAGS,DOSMODE ARE WE IN DOS ENVIRONMENT? @VA04735 01406000
  1485. BZ ERROR099 NO- THEN SAY CMS/DOS NOT ACT @VA04735 01407000
  1486. E401OUT LA R10,FORTY RETURN CODE TO R10 @VA04735 01408000
  1487. B EXIT RETURN TO CALLER @VA04735 01409000
  1488. EJECT 01410000
  1489. ERROR142 EQU * @V305114 01411000
  1490. DMSERR TEXT='SAVED SYSTEM NAME ''........'' INVALID',NUM=142,LX01412000
  1491. ET=S,SUB=(CHARA,(R3)) @V305114 01413000
  1492. LA R10,TWENTY4 SET RETURN CODE @V305166 01414000
  1493. B EXIT AND RETURN @V305114 01415000
  1494. SPACE 1 01416000
  1495. ERROR410 EQU * @V305001 01417000
  1496. DMSERR TEXT='CONTROL PROGRAM ERROR INDICATION ''....''', *01418000
  1497. NUM=410,LET=S,SUB=(DEC,(R4)) @VM03173 01419000
  1498. LR R10,R4 RETURN CODE TO R10 @V305001 01420000
  1499. B EXIT AND RETURN @VM03024 01421000
  1500. SPACE 01422000
  1501. SR1515 EQU * RETURN TO CALLER 01423000
  1502. SR R10,R10 CLEAR RETURN REGISTER @V305014 01424000
  1503. * 01425000
  1504. EXIT EQU * 01426000
  1505. LR R15,R10 SET RETURN CODE IN R15 01427000
  1506. L R14,CMSAVE14 RESTORE R14 AND 01428000
  1507. BR R14 EXIT TO CALLER. 01429000
  1508. ERROR444 EQU * @VA04692 01430000
  1509. LR R6,R1 LOAD POINTER TO DISK LABEL @VA04692 01431000
  1510. DMSERR TEXT='VOLUME ''......''IS NOT A DOS SYSRES',NUM=444, X01432000
  1511. LET=E,SUB=(CHARA,(R6)) 01433000
  1512. LA R10,THIRTY2 SET RETURN CODE @VA04692 01434000
  1513. B EXIT AND RETURN @VA04692 01435000
  1514. SPACE 1 01436000
  1515. NOSTORE DMSERR TEXT='VIRTUAL STORAGE CAPACITY EXCEEDED', *01437000
  1516. NUM=109,LET=S 01438000
  1517. LA R10,104 SET RETURN CODE @VA04696 01439000
  1518. B EXIT AND RETURN @VA04696 01440000
  1519. EJECT 1 01441000
  1520. * 01442000
  1521. * CONSTANTS AREA 01443000
  1522. * 01444000
  1523. DS 0D 01445000
  1524. * 01446000
  1525. * STANDARD INPUT AND OUTPUT TRANSLATE TABLE 01447000
  1526. * 01448000
  1527. OTRTABLE DC 256AL1(*-OTRTABLE) STANDARD OUTPUT TRANS. TABLE 01449000
  1528. ITRTABLE DC 129AL1(*-ITRTABLE) STANDARD INPUT TRANS. TABLE 01450000
  1529. UPA DC X'C1C2C3C4C5C6C7C8C9' 01451000
  1530. UPAB DC 7AL1(*-UPAB+138) 01452000
  1531. UPJ DC X'D1D2D3D4D5D6D7D8D9' 01453000
  1532. UPJB DC 8AL1(*-UPJB+154) 01454000
  1533. UPS DC X'E2E3E4E5E6E7E8E9' 01455000
  1534. UPSB DC 86AL1(*-UPSB+170) 01456000
  1535. INTBLEN EQU 64 DWORD SIZE OF INPUT TRANS TABLE @VA04696 01457000
  1536. OUTBLEN EQU 32 DWORD SIZE OF OUTPUT TRANS TABLE @VA04696 01458000
  1537. * 01459000
  1538. DEC DS 1D USED FOR NUMBER CONVERSION @V505098 01460000
  1539. * 01461000
  1540. LARGEPOS DC X'00FFFFFF' LARGE POSITIVE NO. FOR TIMER. 01462000
  1541. SMALLM DC X'00060000' SIZE OF MACHINE HAVING 2 LDRTBLS@VA11938 01463000
  1542. LAT10 DC H'0119' CONVERTS LOWER-CASE 'A' TO DECIMAL 10. 01464000
  1543. ATO10 DC H'0183' CONVERTS ALPHAMERIC 'A' TO DECIMAL 10. 01465000
  1544. HC0 DC H'0240' CONVERTS ALPHAMERIC '0' TO BINARY 0. 01466000
  1545. * 01467000
  1546. PAGERR DC H'174' CP PAGING ERROR CODE @V305614 01468000
  1547. GLDR DC D'0' 01469000
  1548. PGLDR DC D'0' 01470000
  1549. CMSAVE14 DC F'0' R14 SAVED HERE. 01471000
  1550. * 01472000
  1551. CPSET DS 0F PASS COMMAND LINE TO CP 01473000
  1552. DC CL8'CP' CALL DMSCPF 01474000
  1553. CPCMND DS CL132 COMMAND LINE 01475000
  1554. DC 4XL1'FF' END OF PLIST TO DMSCPF 01476000
  1555. O127 DC F'127' MAXIMUM FOR LOADER TABLE PAGES @VA04696 01477000
  1556. * 01478000
  1557. LISTLOOP DC AL4(FIRSTCOM,12,AFTRLAST) FUNCTION POINTERS @VA04696 01479000
  1558. * 01480000
  1559. ON DC CL4'ON' 'ON' SPECIFIED 01481000
  1560. OFF DC CL4'OFF' 'OFF' SPECIFIED 01482000
  1561. SMSG DC CL5'SMSG' 'SMSG' SPECIFIED 01483000
  1562. LMSG DC CL5'LMSG' 'LMSG' SPECIFIED 01484000
  1563. * 01485000
  1564. CODE DC CL5'CODE' 'CODE' SPECIFIED V0019 01486000
  1565. TEXT DC CL5'TEXT' 'TEXT' SPECIFIED V0019 01487000
  1566. OPAREN EQU C'(' @V305114 01488000
  1567. CPAREN EQU C')' @V305114 01489000
  1568. VSAM DC CL8'VSAM' @V305114 01490000
  1569. SPACE 1 01491000
  1570. LDPLIST DS 0F PLIST TO LOAD DMSSVT TEXT @V305614 01492000
  1571. DC CL8'LOAD' @V305614 01493000
  1572. DC CL8'DMSSVT' @V305614 01494000
  1573. DC CL8'(' @V305614 01495000
  1574. DC CL8'ORIGIN' @V305614 01496000
  1575. LOADSTRT DC CL8'0' @V305614 01497000
  1576. DC 8X'FF' @V305614 01498000
  1577. SPACE 1 01499000
  1578. SVTST DS 0F PLIST FOR DMSSVT STATE @V305614 01500000
  1579. DC CL8'STATE' @V305614 01501000
  1580. DC CL8'DMSSVT' @V305614 01502000
  1581. DC CL8'TEXT' @V305614 01503000
  1582. DC CL2'*' @V305614 01504000
  1583. DC 6X'00' @V305614 01505000
  1584. DC 8X'FF' @V305614 01506000
  1585. SPACE 1 01507000
  1586. HEXTBL DC C'0123456789ABCDEF' @V305614 01508000
  1587. SPACE 1 01509000
  1588. SAVNAMES DS 0F COMPARE TABLE FOR SAVEDSYS @V305114 01510000
  1589. DC CL8'CMSSEG' @V305114 01511000
  1590. DC CL8'CMSVSAM' @V305114 01512000
  1591. DC CL8'CMSAMS' @V305114 01513000
  1592. DC CL8'CMSDOS' @V305114 01514000
  1593. SAVNEND DS 0F @V305114 01515000
  1594. SAVNCNT EQU (SAVNEND-SAVNAMES)/8 @V305114 01516000
  1595. SPACE 1 01517000
  1596. SVTDWDS DC F'3584' LENGTH IN DWORDS OF DMSSVT LOAD @VM03051 01518000
  1597. SPACE 1 01519000
  1598. RGPRS DC 16F'0' REGISTER SAVE AREA @V305614 01520000
  1599. * CHANNEL PROGRAMS TO READ LABEL INFORMATION CYLINDER OF DOS DISK 01521000
  1600. * READ CYL 0 HEAD 1 RECORD 5 01522000
  1601. DS 0D @VA04692 01523000
  1602. LICCW CCW SEEK,LICNUM,CC+SLI,6 @VA04692 01524000
  1603. CCW SEARCH,LICNUMA,CC+SLI,5 @VA04692 01525000
  1604. CCW TIC,*-8,0,1 @VA04692 01526000
  1605. CCW READDATA,SETBUF,CC+SLI,14 @VA04692 01527000
  1606. CCW NOOP,0,SLI,1 @VA04692 01528000
  1607. SETBUF DC 6X'00' @VA04692 01529000
  1608. SETBUFA DC 8X'00' @VA04692 01530000
  1609. LICNUMA DC X'0000000105' @VA04692 01531000
  1610. LICNUM DC 6X'00' @VA04692 01532000
  1611. NIDOS DC CL8'$$A$IPL2' @VA04692 01533000
  1612. SPACE 1 01534000
  1613. FINDSYS EQU 12 FINDSYS CODE @V305066 01535000
  1614. LOADSYS EQU 4 LOADSYS CODE @V305066 01536000
  1615. FF EQU X'FF' FENCE FOR PLIST @V305066 01537000
  1616. LCLOW DC C'30' LOW VALUE FOR SYSLST LINES/PAGE @V505098 01538000
  1617. LCHIGH DC C'99' HIGH VALUE FOR SYSLST LINES/PAGE @V505098 01539000
  1618. DOS2314 EQU X'62' DOS DEVICE CODE - 2314 @V305066 01540000
  1619. DOS3330 EQU X'63' DOS DEVICE CODE - 3330 @V305066 01541000
  1620. DOS333B EQU X'65' DOS DEVICE CODE - 3330-11 @V505098 01542000
  1621. DOS3350 EQU X'67' DOS DEVICE CODE - 3350 @V505098 01543000
  1622. DOS3340 EQU X'69' DOS DEVICE CODE - 3340 @V305066 01544000
  1623. CMS2314 EQU X'08' ADT DEVICE CODE - 2314 @V305066 01545000
  1624. CMS3330 EQU X'09' ADT DEVICE CODE - 3330 @V305066 01546000
  1625. CMS3350 EQU X'0B' ADT DEVICE CODE - 3350 @V505098 01547000
  1626. HEX00 EQU X'00' ... @V305066 01548000
  1627. PURGESYS EQU 8 PURGESYS CODE @V305066 01549000
  1628. LOGUNIT EQU 256 MAX NUMBER LOGICAL UNITS @V305066 01550000
  1629. CON128 EQU 128 ... @V305066 01551000
  1630. ARGLEN EQU 8 ARGUMENT LENGTH @V305066 01552000
  1631. X EQU C'X' ... @V305066 01553000
  1632. CHAR1 EQU C'1' CHARACTER 1 @V305066 01554000
  1633. CHAR0 EQU C'0' CHARACTER 0 @V305066 01555000
  1634. CHAR9 EQU C'9' CHARACTER 9 @VA04299 01556000
  1635. KBYTE EQU C'K' CHARACTER K @VA04299 01557000
  1636. BLANK EQU C' ' BLANK @V305066 01558000
  1637. TWENTY4 EQU 24 RETURN CODE @V305066 01559000
  1638. THIRTY2 EQU 32 @VA04692 01560000
  1639. FORTY EQU 40 RETURN CODE @VA09121 01561000
  1640. CON175 EQU 175 SIZE OF LTA 1400 BYTES @VA09121 01562000
  1641. OPT EQU X'80' LANGUAGE TRANSLATOR OPTIONS @VA09121 01563000
  1642. MAXORG EQU 8 @V305614 01564000
  1643. FOURBITS EQU 4 @V305614 01565000
  1644. RESTWORD EQU 28 @V305614 01566000
  1645. ALL EQU 15 @VA05055 01567000
  1646. * CHANNEL PROGRAM EQUATES 01568000
  1647. SEEK EQU X'07' @VA04692 01569000
  1648. SEARCH EQU X'B1' @VA04692 01570000
  1649. TIC EQU X'08' @VA04692 01571000
  1650. READDATA EQU X'06' @VA04692 01572000
  1651. NOOP EQU X'03' @VA04692 01573000
  1652. CC EQU X'40' @VA04692 01574000
  1653. SLI EQU X'20' @VA04692 01575000
  1654. SPACE 01576000
  1655. LTORG 01577000
  1656. SPACE 2 01578000
  1657. SPACE 2 01579000
  1658. EJECT 01580000
  1659. NUCON 01581000
  1660. SYSNAMES @V305114 01582000
  1661. DMSFRT @VA00980 01583000
  1662. EXTSECT 01584000
  1663. ADT @V305001 01585000
  1664. BGCOM @V305001 01586000
  1665. REGEQU 01587000
  1666. TSOBLKS V0019 01588000
  1667. END 01589000