Table of Contents

CONTROL

Table Of Contents

  • [00038] CONTROL - JOB CONTROL PROCESSOR.
  • [00039] JOB CONTROL PROCESSOR.
  • [00127] FUNCTION PROCESSORS.
  • [00128] DATA LOCATIONS.
  • [00186] TQPW - TABLE OF *QAC* PRESET WORDS.
  • [00206] COMMAND PROCESSORS.
  • [00413] TMAA - TABLE OF VALID ARGUMENTS FOR *MACHINE*.
  • [00451] TMRA - TABLE OF *MFL* AND *RFL* ARGUMENTS.
  • [00722] TPRA - TABLE OF *PROTECT* ARGUMENTS.
  • [00957] TSTJ - TABLE OF SETJOB ARGUMENTS.
  • [00967] TSCD - TABLE OF SETJOB *DC* OPTIONS.
  • [00976] TSOP - TABLE OF SETJOB *OP* OPTIONS.
  • [01122] SUBROUTINES.
  • [01124] CMP - CONVERT MEMORY PARAMETERS.
  • [01175] END - END RUN.
  • [01212] ERR - PROCESS ARGUMENT ERROR.
  • [01233] MCM - MOVE COMMENT MESSAGE.
  • [01280] MDM - MOVE DAYFILE MESSAGE.
  • [01345] PKP - PROCESS KEYWORD OR POSITIONAL ARGUMENTS.
  • [01403] ERL - PROCESS RESOURCE LIMIT ERROR.
  • [01410] PQB - PRESET *QAC* REQUEST BLOCK.
  • [01448] QAC - CALL *QAC*.
  • [01477] SMG - SET MESSAGE IN *TALT*.
  • [01504] SRM - SET RESOURCE LIMIT MESSAGE.
  • [01539] SSC - SET SELECTION CRITERIA.
  • [01574] VJS - VALIDATE JSN.
  • [01631] TCKA - TABLE OF CRACKED ARGUMENT VALUES.
  • [01646] COMMON DECKS.

Source Code

CONTROL.txt
  1. IDENT CONTROL,CONTROL
  2. ABS
  3. SYSCOM B1
  4. SST T1,MCMX
  5. ENTRY CFO
  6. ENTRY COMMENT
  7. ENTRY ERRMSG
  8. ENTRY EXIT
  9. ENTRY FAMILY
  10. ENTRY GO
  11. ENTRY MACHINE
  12. ENTRY MFL
  13. ENTRY MODE
  14. ENTRY NOEXIT
  15. ENTRY NORERUN
  16. ENTRY ONEXIT
  17. ENTRY ONSW
  18. ENTRY OFFSW
  19. ENTRY OPMSG
  20. ENTRY PAUSE
  21. ENTRY PROTECT
  22. ENTRY RERUN
  23. ENTRY RFL
  24. ENTRY ROLLOUT
  25. ENTRY SETASL
  26. ENTRY SETJOB
  27. ENTRY SETJSL
  28. ENTRY SETPR
  29. ENTRY SETTL
  30. ENTRY SHELL
  31. ENTRY SUI
  32. ENTRY SWITCH
  33. ENTRY USECPU
  34. ENTRY RFL=
  35. *COMMENT CONTROL - JOB CONTROL PROCESSOR.
  36. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  37. SPACE 4,10
  38. TITLE CONTROL - JOB CONTROL PROCESSOR.
  39. *** CONTROL - JOB CONTROL PROCESSOR.
  40. * G. R. MANSFIELD. 70/12/06.
  41. SPACE 4,10
  42. *** CONTROL PROVIDES FUNCTIONS FOR JOB CONTROL AS
  43. * LISTED BELOW.
  44. SPACE 4,10
  45. *** NUMERIC ARGUMENTS ARE ASSUMED OCTAL BASE,
  46. * EXCEPT ON SETASL, SETJSL, AND SETTL, WHERE ASSUMED
  47. * BASE IS DECIMAL. NUMBERS MAY BE SUFFIXED BY A
  48. * POST-RADIX OF *B* OR *D*.
  49. SPACE 4,10
  50. *** DAYFILE MESSAGES.
  51. *
  52. *
  53. * * ASL = XXXXXX, JSL = YYYYYY.* = INFORMATIVE MESSAGE
  54. * INDICATING THE CURRENT VALUES OF THE USER-S ACCOUNT
  55. * BLOCK SRU LIMIT (ASL) AND JOB STEP SRU LIMIT (JSL).
  56. *
  57. * * TL = XXXXXX.* = INFORMATIVE MESSAGE INDICATING THE CURRENT
  58. * TIME LIMIT VALUE.
  59. *
  60. * * ERROR IN CONTROL ARGUMENTS.* = AN ARGUMENT TO A CONTROL
  61. * FUNCTION WAS INCORRECT.
  62. * NO MESSAGE WAS SPECIFIED ON A *COMMENT* COMMAND.
  63. * A PARAMETER WAS SPECIFIED ON THE *OPMSG* COMMAND.
  64. *
  65. * * CM OR EC REQUEST EXCEEDS MAXIMUM.* = A RFL/MFL REQUEST
  66. * EXCEEDS THE MAXIMUM ALLOWABLE FIELD LENGTH.
  67. *
  68. * * USER ACCESS NOT VALID.* = THE SRU OR TIME LIMIT
  69. * REQUEST IS OUT OF RANGE.
  70. *
  71. * * MFL REQUEST TOO SMALL, MINIMUM USED.* = REQUESTED
  72. * FIELD LENGTH IS LESS THAN THAT REQUIRED BY *CONTROL*.
  73. *
  74. * * NORERUN/RERUN INCORRECT FROM INTERACTIVE JOBS. * = AN
  75. * INTERACTIVE ORIGIN JOB CANNOT SET OR CLEAR JOB RERUN
  76. * STATUS.
  77. *
  78. * * CONTROL *QAC* ERROR NNN.*
  79. * AN UNEXPECTED *QAC* ERROR STATUS OCCURRED.
  80. *
  81. * * FILE/JOB NOT FOUND.*
  82. * THE SPECIFIED FILE OR JOB WAS NOT IN THE SYSTEM.
  83. *
  84. * * NO JOB CHARACTERISTICS SPECIFIED.* = A *SETJOB* REQUEST
  85. * CONTAINED NO JOB CHARACTERISTICS.
  86. *
  87. * * INCORRECT CPU PRIORITY VALUE.*
  88. * THE CPU PRIORITY VALUE SPECIFIED EXCEEDS THE
  89. * MAXIMUM VALUE ALLOWED.
  90. *
  91. * *INCORRECT PARAMETER.* = A PARAMETER OTHER THAN A, L, G,
  92. * S, T, B, OR C WAS SPECIFIED ON A *SHELL* COMMAND.
  93. *
  94. * *INCORRECT PARAMETER LENGTH OR SEPARATOR.* = A PARAMETER
  95. * WAS LONGER THAN SEVEN CHARACTERS, OR USED AN INCORRECT
  96. * SEPARATOR.
  97. *
  98. * * FAMILY NOT FOUND.*
  99. * THE SPECIFIED FAMILY DOES NOT EXIST.
  100. *
  101. * * DEFAULT FAMILY USED.*
  102. * THE FAMILY SPECIFIED WAS THE SYSTEM DEFAULT FAMILY.
  103. *
  104. * * ONLY CORRECT PARAMETERS ARE *ON* OR *OFF*.* = AN
  105. * UNRECOGNIZABLE PARAMETER WAS SPECIFIED.
  106. *
  107. * * PARAMETER *ON* OR *OFF* REQUIRED.* = NO PARAMETER WAS
  108. * SPECIFIED ON THE COMMAND.
  109. *
  110. * * PARAMETERS *ON* AND *OFF* ARE MUTUALLY EXCLUSIVE.* = BOTH
  111. * *ON* AND *OFF* WERE SPECIFIED. ONLY ONE PARAMETER IS
  112. * ALLOWED ON THE COMMAND.
  113. SPACE 4,10
  114. *** OPERATOR MESSAGES.
  115. *
  116. *
  117. * NONE.
  118. SPACE 4,10
  119. *CALL COMCMAC
  120. *CALL COMCCMD
  121. QUAL EVENT
  122. *CALL COMSEVT
  123. QUAL *
  124. *CALL COMSPRD
  125. *CALL COMSQAC
  126. *CALL COMSZOL
  127. TITLE FUNCTION PROCESSORS.
  128. TITLE DATA LOCATIONS.
  129. ORG 150B
  130. CONTROL BSS 0
  131. QACP SPACE 4,10
  132. ** *QAC* PARAMETER BLOCK.
  133. *
  134. * PREFIX PORTION.
  135.  
  136.  
  137. LOC 0
  138. QFCN VFD 42/0,8/0,9/0,1/0 FUNCTION, STATUS
  139. QFIR VFD 36/0,6/0,18/0 LENGTH, FIRST
  140. QINP VFD 42/0,18/0 IN
  141. QOTP VFD 42/0,18/0 OUT
  142. QLIM VFD 12/0,12/0,12/0,6/0,18/0 LIMIT
  143. SPACE 4,10
  144. ** SELECTION CRITERIA PORTION.
  145.  
  146.  
  147. VFD 60/0
  148. VFD 60/0
  149. QJSN VFD 24/0,36/0
  150. QSEL EQU *-1
  151. QQUE VFD 12/0,48/0
  152. VFD 60/0
  153. VFD 60/0
  154. VFD 60/0
  155. QSPEC EQU * BEGINNING OF FUNCTION SPECIFIC WORDS
  156. SPACE 4,10
  157. ** ALTER FUNCTION.
  158.  
  159.  
  160. QARF EQU 1 ALTER FUNCTION CODE
  161.  
  162. LOC QSPEC
  163. QSSW VFD 6/0,24/0,30/0
  164. QALF EQU *-1
  165. VFD 60/0
  166. VFD 60/0
  167. VFD 60/0
  168. VFD 60/0
  169. QALTL EQU *-QFCN LENGTH OF ALTER REQUEST
  170. SPACE 4,10
  171. ** PEEK FUNCTION.
  172.  
  173.  
  174. QPKF EQU 3 PEEK FUNCTION CODE
  175.  
  176. LOC QSPEC
  177. QCNT VFD 12/0,12/0,12/0,12/0,12/0
  178. QENT VFD 36/0,12/0,12/0
  179. QPIB VFD 60/0
  180. VFD 60/0
  181. QPEKL EQU *-QFCN LENGTH OF PEEK REQUEST
  182.  
  183. LOC *O
  184. ORG CONTROL
  185. TQPW SPACE 4,10
  186. ** TQPW - TABLE OF *QAC* PRESET WORDS.
  187.  
  188.  
  189. TQPW BSS 0
  190. VFD 36/0,6/QALTL-5,18/MSGA
  191. VFD 42/0,18/MSGA
  192. VFD 42/0,18/MSGAE
  193. VFD 36/0,6/QPEKL-5,18/PBUF
  194. VFD 42/0,18/PBUF
  195. VFD 42/0,18/PBUFE
  196. FETS SPACE 4,10
  197. *** FETS.
  198.  
  199.  
  200. SCR FILEB SBUF,1,(FET=8)
  201. SPACE 4,10
  202. ** DATA LOCATIONS.
  203.  
  204.  
  205. ZR CON 0 ZERO WORD FOR ARGUMENT PROCESSING
  206. TITLE COMMAND PROCESSORS.
  207. CFO SPACE 4,10
  208. *** CFO - CFO,JSN.COMMENT
  209. * ENTER COMMENT FROM OPERATOR IN JOB *JSN*.
  210.  
  211.  
  212. CFO BSS 0 ENTRY
  213. SX6 CFAF*10000B SET CFO ALTER FUNCTION
  214. EQ COM1 PROCESS COMMAND
  215. COMMENT SPACE 4,10
  216. *** COMMENT.CCC-CCC
  217. * ENTER COMMENT IN DAYFILE.
  218. *
  219. * COMMENT,JSN.COMMENT
  220. * ENTER COMMENT IN DAYFILE OF JOB *JSN*.
  221.  
  222.  
  223. COMMENT BSS 0 ENTRY
  224. SX6 DYAF*10000B SET COMMENT ALTER FUNCTION
  225. COM1 SB1 1
  226. SA6 COMA
  227. SA2 ACTR CHECK ARGUMENT COUNT
  228. SX2 X2
  229. AX3 X2,B1
  230. ZR X2,END IF LOCAL COMMENT
  231. NZ X3,ERR IF INCORRECT ARGUMENT COUNT
  232. RJ PQB PRESET QAC BLOCK
  233. SA1 ARGR
  234. RJ VJS VERIFY JSN
  235. NZ X2,ERR IF INCORRECT JSN
  236. SB2 0 FLAG EXECUTION QUEUE
  237. SB3 TALT
  238. RJ SSC SET SELECTION CRITERIA
  239. SB2 CCDR GET COMMENT
  240. RJ MCM MOVE COMMENT
  241. RJ SMG SET MESSAGE FOR *QAC*
  242. LT B7,B6,ERR IF NO MESSAGE
  243. SA1 COMA GET ALTER FUNCTION
  244. SA2 TALT+QALF
  245. BX6 X1+X2
  246. SA6 A2
  247. SX6 QARF CALL *QAC*
  248. SB3 TALT
  249. RJ QAC
  250. EQ ENL COMPLETE COMMAND
  251.  
  252. COMA CON 0 ALTER FUNCTION SELECTION
  253. ERRMSG SPACE 4,20
  254. *** ERRMSG(PARAM)
  255. *
  256. * ENABLE OR DISABLE THE ECHOING OF *MS1W*/*MS2W*
  257. * ERROR MESSAGES TO THE TERMINAL BY *1RO*. ERROR MESSAGE
  258. * ECHOING CAN ONLY BE DISABLED FOR THE DURATION OF A
  259. * *CCL* PROCEDURE. ERROR MESSAGE PROCESSING REVERTS TO
  260. * NORMAL AFTER THE *CCL* PROCEDURE IS COMPLETED AND THE
  261. * USER RETURNS TO INTERACTIVE COMMAND MODE.
  262. *
  263. * ERRMSG(PARAM)
  264. *
  265. * PARAM ACTION
  266. *
  267. * OFF DISABLE THE ECHOING OF *MS1W*/*MS2W*
  268. * ERROR MESSAGES TO THE TERMINAL BY *1RO*
  269. * FOR THE DURATION OF A *CCL* PROCEDURE.
  270. *
  271. * ON ENABLE THE ECHOING OF *MS1W*/*MS2W*
  272. * ERROR MESSAGES TO THE TERMINAL BY *1RO*.
  273.  
  274.  
  275. ERRMSG BSS 0 ENTRY
  276. SB1 1
  277. SA1 ACTR
  278. SB4 X1 ARGUMENT COUNT
  279. SA4 ARGR ADDRESS OF FIRST ARGUMENT
  280. SB5 ERMB ADDRESS OF ARGUMENT TABLE
  281. RJ ARG PROCESS ARGUMENTS
  282. ZR X1,ERM1 IF NO ERROR
  283. MESSAGE ERME,,R ONLY CORRECT PARAMETERS ARE *ON* OR *OFF*
  284. ABORT
  285.  
  286. ERM1 SA1 ERMC
  287. SA2 ERMD
  288. ZR X1,ERM2 IF COMMAND IS *ERRMSG,ON*
  289. ZR X2,ERM4 IF COMMAND IS *ERRMSG,OFF.*
  290. MESSAGE ERMF,,R PARAMETER *ON* OR *OFF* REQUIRED
  291. ABORT
  292.  
  293. ERM2 ZR X2,ERM3 IF BOTH *ON* AND *OFF* SPECIFIED
  294. SX6 B0+ ENABLE TERMINAL ERROR MESSAGES
  295. SA6 ERMA
  296. EQ ERM5 CALL *CPM*
  297.  
  298. ERM3 MESSAGE ERMG,,R ONLY ONE PARAMETER ALLOWED
  299. ABORT
  300.  
  301. ERM4 SX6 B1+ DISABLE TERMINAL ERROR MESSAGES
  302. SA6 ERMA
  303. ERM5 SX1 ERMA
  304. SX2 135B DISABLE/ENABLE TERMINAL ERROR MESSAGES
  305. RJ CPM=
  306. ENDRUN END
  307.  
  308.  
  309. ERMA CON 0 *CPM* ARGUMENT WORD
  310.  
  311. ERMB BSS 0 *ERRMSG* CARD ARGUMENT TABLE
  312. ON ARG -ZR,ERMC
  313. OFF ARG -ZR,ERMD
  314. ARG
  315.  
  316. ERMC DATA -1 *ON* PARAMETER
  317. ERMD DATA -1 *OFF* PARAMETER
  318.  
  319. ERME DATA C$ ONLY CORRECT PARAMETERS ARE *ON* OR *OFF*.$
  320. ERMF DATA C$ PARAMETER *ON* OR *OFF* REQUIRED.$
  321. ERMG DATA C$ PARAMETERS *ON* AND *OFF* ARE MUTUALLY EXCLUSIVE.$
  322. EXIT SPACE 4,10
  323. *** EXIT.
  324. * TERMINATE JOB.
  325.  
  326.  
  327. EXIT BSS 0 ENTRY
  328. SB1 1
  329. RETURN SCR,R
  330. ENCSF SCR
  331. EQ END COMPLETE COMMAND
  332. FAMILY SPACE 4,10
  333. *** FAMILY(FAMNAME).
  334. *
  335. * ALTER THE FAMILY NAME FOR THE JOB.
  336. * ONLY VALID FOR *SYOT* JOBS.
  337. * NOT VALID ON SECURED SYSTEM.
  338.  
  339.  
  340. FAMILY BSS 0 ENTRY
  341. SB1 1
  342. SA2 ACTR CHECK PARAMETER COUNT
  343. SB2 X2
  344. ZR B2,FAM1 IF NO PARAMETERS SPECIFIED
  345. GT B2,B1,ERR IF TOO MANY PARAMETERS SPECIFIED
  346. SA1 ARGR GET FAMILY NAME
  347. BX6 X1
  348. SA6 FAMA
  349. FAM1 ENFAM FAMA ENTER FAMILY NAME
  350. SA1 FAMA
  351. MX0 -6
  352. BX5 -X0*X1
  353. LX1 48
  354. NG X1,ERR4 IF INCORRECT FAMILY NAME
  355. ZR X5,FAM2 IF DEFAULT NOT USED
  356. MESSAGE (=C* DEFAULT FAMILY USED.*),3
  357. FAM2 ENDRUN
  358.  
  359. FAMA CON 0 FAMILY NAME
  360. GO SPACE 4,10
  361. ** GO,JSN.
  362. * SEND *GO* TO JOB JSN.
  363.  
  364.  
  365. GO BSS 0 ENTRY
  366. SA0 GOAF*10000B *GO* FLAG
  367. GO1 SB1 1
  368. RJ PQB PRESET REQUEST BLOCK
  369. SA2 ACTR
  370. SA1 ARGR
  371. SB2 X2+
  372. NE B2,B1,ERR IF NOT ONE ARGUMENT
  373. RJ VJS VALIDATE JSN
  374. SB2 0 FLAG EXECUTION QUEUE
  375. NZ X2,ERR IF INCORRECT JSN
  376. SB3 TALT
  377. RJ SSC SET SELECTION CRITERIA
  378. SA2 TALT+QALF SET ALTER FLAG
  379. SX1 A0+
  380. BX7 X2+X1
  381. SA7 A2
  382. SX6 QARF SET ALTER FUNCTION
  383. SB3 TALT
  384. RJ QAC CALL *QAC*
  385. EQ ENL COMPLETE COMMAND
  386. MACHINE SPACE 4,10
  387. *** MACHINE(EP=XX)
  388. * XX=ON/OFF.
  389. *
  390. * SETS OR CLEARS THE STACK PURGING BIT ON THE CYBER 170-8X5
  391. * MAINFRAME. IF THE STACK PURGING BIT IS SET, ALL STORES AND
  392. * CONDITIONAL BRANCHES WILL CAUSE THE STACK TO BE PURGED.
  393.  
  394.  
  395. MACHINE BSS 0 ENTRY
  396. SX6 TMAA ARGUMENT TABLE ADDRESS
  397. SX7 TMAAL
  398. RJ PKP PROCESS KEYBOARD OR POSITIONAL ARGUMENTS
  399. NZ X1,ERR IF NO ARGUMENTS SPECIFIED
  400. SA1 PROA ARGUMENT VALUE
  401. SA2 =2LON
  402. SA3 =3LOFF
  403. BX2 X1-X2
  404. SX4 B1 PRESET FOR PURGE BIT TO BE SET
  405. ZR X2,MAC1 IF PURGE BIT TO BE SET
  406. BX6 X1-X3
  407. NZ X6,ERR IF NEITHER YES OR NO SPECIFIED
  408. MX4 0
  409. MAC1 MODE ,,X4
  410. EQ END COMPLETE COMMAND
  411.  
  412.  
  413. ** TMAA - TABLE OF VALID ARGUMENTS FOR *MACHINE*.
  414. *
  415.  
  416.  
  417. TMAA BSS 0
  418. EP ARG ZR,PROA
  419. ARG
  420. TMAAL EQU *-TMAA-1
  421. MFL SPACE 4,10
  422. *** MFL(NNNNNN,MMMMM)
  423. * MFL(CM=NNNNNN,EC=MMMMM)
  424. * SET MAXIMUM CM FIELD LENGTH (MAXFL(CM)) = NNNNNN.
  425. * SET MAXIMUM EM FIELD LENGTH (MAXFL(ECS)) = MMMMM*1000B.
  426. *
  427. * ARGUMENTS MAY BE ENTERED WITH KEYWORDS OR POSITIONALLY OR
  428. * MIXED. IF MIXED, THOSE WITHOUT KEYWORDS WILL BE EVALUATED
  429. * ACCORDING TO THEIR POSITION AMONG ALL THE ARGUMENTS.
  430.  
  431.  
  432. MFL BSS 0 ENTRY
  433. RJ CMP CONVERT PARAMETERS
  434. ZR X1,MFL2 IF NO CM CHANGE
  435. SX1 X1+
  436. ZR X1,MFL1 IF SET MFL TO MAXFL REQUEST
  437. SX5 RFL=+100B CHECK MFL REQUEST
  438. BX6 X1
  439. AX5 6
  440. AX6 6
  441. IX2 X6-X5
  442. PL X2,MFL1 IF REQUESTED MFL .GE. *CONTROL*S RFL=
  443. MESSAGE (=C* MFL REQUEST TOO SMALL, MINIMUM USED.*)
  444. SX1 RFL= SET MINIMUM MFL VALUE
  445. MFL1 SETMFL X1
  446. MFL2 ZR X3,END IF NO EXTENDED MEMORY CHANGE
  447. SX3 X3
  448. SETMFL ,X3
  449. EQ END COMPLETE COMMAND
  450. TMRA SPACE 4,10
  451. ** TMRA - TABLE OF *MFL* AND *RFL* ARGUMENTS.
  452. * SEE *COMCMAC* MACRO *ARG* FOR FORMAT.
  453.  
  454.  
  455. TMRA BSS 0
  456. CM ARG ZR,TCKA,400B CM FIELD LENGTH
  457. EC ARG ZR,TCKA+1,400B EXTENDED MEMORY FIELD LENGTH
  458. ARG
  459. TMRAL EQU *-TMRA-1 ARGUMENT TABLE LENGTH
  460. MODE SPACE 4,10
  461. *** MODE M,N
  462. * M = PROGRAM ERROR EXIT MODES.
  463. * N = HARDWARE ERROR EXIT MODES.
  464. * SET ERROR EXIT MODE = N00M.
  465.  
  466.  
  467. MODE BSS 0 ENTRY
  468. SA2 ACTR CHECK ARGUMENT COUNT
  469. SB1 1
  470. SX7 X2
  471. SB7 B0 OCTAL BASE
  472. SA5 ARGR ARGUMENT
  473. ZR X7,ERR ERROR IF NO ARGUMENT
  474. SB6 X7 SAVE NUMBER OF PARAMETERS
  475. RJ DXB CONVERT DIGITS
  476. NZ X4,ERR IF ERROR ENCOUNTERED
  477. SX7 X6-20B
  478. PL X7,ERR IF .GT. 20B
  479. BX7 X6
  480. SA5 A5+B1 GET NEXT PARAMETER
  481. SX6 EEMC/1000B DEFAULT HARDWARE MODE BITS (7XXX)
  482. EQ B6,B1,MOD1 IF ONLY 1 PARAMETER
  483. SA7 MODA SAVE FIRST PARAMETER
  484. RJ DXB CONVERT DIGITS
  485. NZ X4,ERR IF ERROR
  486. SX0 X6-10B
  487. PL X0,ERR IF .GT. 7
  488. SA2 MODA RESTORE FIRST PARAMETER
  489. BX7 X2
  490. MOD1 MODE X7,X6
  491. EQ END COMPLETE COMMAND
  492.  
  493. MODA BSS 1 TEMPORARY SAVE
  494. NOEXIT SPACE 4,10
  495. *** NOEXIT.
  496. * SUPPRESS PROCESSING OF *EXIT* COMMAND IF JOB ABORTS.
  497.  
  498.  
  499. NOEXIT BSS 0 ENTRY
  500. SX1 1 SET NO EXIT
  501. NOX1 SA3 ACTR CHECK ARGUMENT COUNT
  502. SB1 1
  503. SX7 X3+
  504. NZ X7,ERR IF ARGUMENTS PRESENT
  505. SX2 7
  506. RJ =XCPM=
  507. EQ END COMPLETE COMMAND
  508. NORERUN SPACE 4,10
  509. *** NORERUN.
  510. * SET INPUT FILE INTO NORERUN STATUS.
  511.  
  512.  
  513. NORERUN BSS 0 ENTRY
  514. RJ VRN VERIFY CALLER
  515. NORERUN SET NO RERUN
  516. EQ END COMPLETE COMMAND
  517. ONEXIT SPACE 4,10
  518. *** ONEXIT.
  519. * RESET PROCESSING OF *EXIT* COMMAND.
  520.  
  521.  
  522. ONEXIT BSS 0 ENTRY
  523. SX1 B0 SET ONEXIT
  524. EQ NOX1 PROCESS COMMAND
  525. ONSW SPACE 4,20
  526. *** ONSW (X1,X2,...XN)
  527. * SET SENSE SWITCHES XN.
  528. * IF XN = 0, ALL SWITCHES WILL BE SET.
  529. *
  530. * ONSW (X1,X2,...XN,JSN)
  531. * SET SENSE SWITCHES XN ON JOB JSN.
  532. * IF XN = 0, ALL SWITCHES WILL BE SET.
  533. * JSN MAY APPEAR ONCE ANYWHERE IN THE LIST.
  534. *
  535. * SWITCH (X1,X2,...XN)
  536. * SET SENSE SWITCHES XN.
  537. * IF XN = 0, ALL SWITCHES WILL BE SET.
  538. *
  539. * SWITCH (X1,X2,...XN,JSN)
  540. * SET SENSE SWITCH XN ON JOB JSN.
  541. * IF XN = 0, ALL SWITCHES WILL BE SET.
  542. * JSN MAY APPEAR ONCE ANYWHERE IN THE LIST.
  543.  
  544.  
  545. ONSW BSS 0 ENTRY
  546. SWITCH BSS 0 ENTRY
  547. SA0 SSAF+DYAF*10000B SET *ONSW* AND DAYFILE MESSAGE FLAGS
  548. ONS1 SA2 ACTR CHECK ARGUMENT COUNT
  549. SB1 1
  550. SB6 X2
  551. SB5 B0
  552. ZR B6,ERR ERROR IF NO ARGUMENTS
  553. SB7 B0 SET OCTAL BASE
  554. SA5 ARGR FIRST ARGUMENT
  555. ONS2 RJ DXB UNPACK OCTAL DIGIT
  556. NZ X4,ONS5 IF INCORRECT NUMBER
  557. SX3 X6-7
  558. PL X3,ONS5 IF INCORRECT SWITCH VALUE
  559. SA2 ONSA
  560. SX1 77B PRESET ALL SWITCHES
  561. ZR X6,ONS3 IF N = 0
  562. SB2 X6 SET SWITCH BIT
  563. MX0 1
  564. LX1 X0,B2
  565. ONS3 BX6 X2+X1 ACCUMULATE SWITCHES
  566. SA6 A2
  567. ONS4 SB6 B6-B1 NEXT ARGUMENT
  568. SA5 A5+B1
  569. NZ B6,ONS2 LOOP FOR ALL ARGUMENTS
  570. SA1 ONSB CHECK FOR LOCAL REQUEST
  571. SX2 A0
  572. LX2 59-11
  573. NZ X1,ONS7 IF NOT LOCAL
  574. NG X2,ONS6 IF LOCAL *OFFSW* COMMAND
  575. ONSW X6
  576. EQ END COMPLETE COMMAND
  577.  
  578. ONS5 BX1 X5 VALIDATE JSN
  579. RJ VJS
  580. NZ X2,ERR IF NOT VALID JSN
  581. SA3 ONSB
  582. BX6 X1
  583. NZ X3,ERR IF JSN ENCOUNTERED BEFORE
  584. SA6 A3
  585. EQ ONS4 PROCESS NEXT PARAMETER
  586.  
  587. ONS6 OFFSW X6
  588. EQ END COMPLETE COMMAND
  589.  
  590. ONS7 RJ PQB PRESET PARAMETER BLOCK
  591. SB2 B0 FLAG EXECUTION QUEUE
  592. SB7 A0
  593. SB3 TALT
  594. SA1 ONSB
  595. RJ SSC SET SELECTION CRITERIA
  596. GETPFP ONSC CHECK IF CALLER IS OPERATOR
  597. SA1 ONSC+2
  598. MX0 -18
  599. BX1 -X0*X1 ISOLATE USER INDEX
  600. SX1 X1-377777B
  601. NZ X1,ONS8 IF CALLER IS NOT OPERATOR
  602. SB2 ONSD SET *FROM OPERATOR* SUFFIX
  603. EQ ONS9 SET UP MESSAGE
  604.  
  605. ONS8 GETJN ONSE+1 GET SENDING JOB-S JSN
  606. SB2 ONSE SET *FROM JOB* SUFFIX
  607. ONS9 RJ MDM MOVE *ONSW*/*OFFSW* MESSAGE
  608. RJ SMG SET MESSAGE FOR *QAC*
  609. SA1 ONSA GET SENSE SWITCHES
  610. SA2 TALT+QSSW STORE SENSE SWITCHES
  611. LX1 59-5
  612. BX6 X1+X2
  613. ERRNZ QSSW-QALF ENSURE ORDER OF BLOCK IS CORRECT
  614. SX7 A0 SENSE SWITCH FUNCTION
  615. BX6 X6+X7 SET ALTER FUNCTION
  616. SA6 A2+
  617. SX6 QARF SET ALTER FUNCTION
  618. SB3 TALT
  619. RJ QAC CALL *QAC*
  620. EQ ENL COMPLETE COMMAND
  621.  
  622. ONSA CON 0 SENSE SWITCH VALUES
  623. ONSB CON 0 SPECIFIED JSN
  624. ONSC BSS 3 *GETPFP* INFORMATION
  625.  
  626. ONSD DATA C* FROM OPERATOR* MESSAGE SUFFIX FOR OPERATOR CALL
  627.  
  628. ONSE DATA H* FROM JOB * MESSAGE SUFFIX FOR USER JOB CALL
  629. CON 0
  630. OFFSW SPACE 4,10
  631. *** OFFSW (X1,X2,...,XN)
  632. * CLEAR SENSE SWITCHES XN.
  633. * IF XN = 0, ALL SWITCHES WILL BE CLEARED.
  634. *
  635. * OFFSW (X1,X2,...XN,JSN)
  636. * CLEAR SENSE SWITCHES XN ON JOB JSN.
  637. * JSN MAY APPEAR ONCE ANYWHERE IN THE LIST.
  638. * IF XN = 0, ALL SWITCHES WILL BE CLEARED.
  639.  
  640.  
  641. OFFSW BSS 0 ENTRY
  642. SA0 CSAF+DYAF*10000B SET *OFFSW* AND DAYFILE MSG FLAGS
  643. EQ ONS1 PROCESS COMMAND
  644. OPMSG SPACE 4,10
  645. *** OPMSG.CCC-CCC
  646. * SEND MESSAGE TO OPERATOR DISPLAY.
  647. * IF NO COMMENT THEN TREAT AS A *NOP*
  648. * ELSE, WAIT FOR OPERATOR REPLY.
  649.  
  650.  
  651. OPMSG BSS 0 ENTRY
  652. SB2 CCDR
  653. SB1 1
  654. SA1 ACTR CHECK IF PARAMETERS SPECIFIED ON COMMAND
  655. SX6 X1
  656. NZ X6,ERR IF INVALID COMMAND
  657. SA6 MSGA
  658. RJ MCM UNPACK MESSAGE
  659. SA1 MSGA
  660. ZR X1,END IF NO MESSAGE
  661. OPMSG MSGA SEND MESSAGE TO OPERATOR DISPLAY
  662. OPM1 SA1 B0
  663. LX1 59-14 POSITION CFO BIT
  664. PL X1,END IF REPLY
  665. RECALL
  666. EQ OPM1 CHECK FOR REPLY
  667. PAUSE SPACE 4,10
  668. *** PAUSE,JSN.
  669. * SET *PAUSE* FLAG ON JOB JSN.
  670.  
  671.  
  672. PAUSE BSS 0 ENTRY
  673. SA0 PAAF*10000B SET *PAUSE* FLAG FOR *QAC* CALL
  674. EQ GO1 PROCESS COMMAND
  675. PROTECT SPACE 4,10
  676. *** PROTECT,O1.
  677. * PROTECT,EC=O1.
  678. * IF O1 = ON, TURN ON JOB CONTROL FOR SPECIFIED ARGUMENT.
  679. * IF O1 = OFF, TURN OFF JOB CONTROL.
  680. *
  681. * ARGUMENTS MAY BE ENTERED WITH KEYWORDS OR POSITIONALLY OR
  682. * MIXED. IF MIXED, THOSE WITHOUT KEYWORDS WILL BE EVALUATED
  683. * ACCORDING TO THEIR POSITION AMONG ALL THE ARGUMENTS.
  684.  
  685.  
  686. PROTECT BSS 0 ENTRY
  687. SX6 TPRA ARGUMENT TABLE ADDRESS
  688. SX7 TPRAL
  689. RJ PKP PROCESS KEYWORD OR POSITIONAL ARGUMENTS
  690. NZ X1,ERR IF NO ARGUMENTS SPECIFIED
  691.  
  692. * FORM BIT FLAGS TO SET/CLEAR.
  693.  
  694. SB7 B0+ SET POSITION IN CRACKED PARAMETER TABLE
  695. PRO1 SA1 TCKA+B7 GET PARAMETER VALUE
  696. ZR X1,PRO4 IF NO VALUE SPECIFIED
  697. SA5 =3LOFF CHECK IF VALUE = *OFF*
  698. SA4 =2LON CHECK IF VALUE = *ON*
  699. BX6 X1-X5
  700. BX7 X1-X4
  701. ZR X6,PRO2 IF *OFF*
  702. NZ X7,ERR IF NOT *ON*
  703. SB6 B7+1 SET SHIFT COUNT
  704. EQ PRO3 POSITION *ON* FLAG
  705.  
  706. PRO2 SB6 B7+13 SET SHIFT COUNT
  707. PRO3 MX6 1 POSITION BIT FLAG
  708. LX6 X6,B6
  709. SA1 PROA
  710. BX7 X1+X6
  711. SA7 A1
  712. PRO4 SB7 B7+1 INCREMENT TABLE POSITION
  713. SB6 B7-TPRAL
  714. NZ B6,PRO1 IF MORE ARGUMENTS TO PROCESS
  715. SA1 PROA
  716. ZR X1,ERR IF NO ARGUMENTS SPECIFIED
  717. PROTECT
  718. EQ END COMPLETE COMMAND
  719.  
  720. PROA CON 0 36/0,12/*OFF* FLAGS,12/*ON* FLAGS
  721. TPRA SPACE 4,10
  722. ** TPRA - TABLE OF *PROTECT* ARGUMENTS.
  723. * SEE *COMCMAC* MACRO *ARG* FOR FORMAT.
  724.  
  725.  
  726. TPRA BSS 0
  727. EC ARG ZR,TCKA PRESERVE EXTENDED MEMORY OVER JOB STEP
  728. ARG
  729. TPRAL EQU *-TPRA-1 ARGUMENT TABLE LENGTH
  730. RERUN SPACE 4,10
  731. *** RERUN.
  732. * SET INPUT FILE FOR POSSIBLE RERUN.
  733.  
  734.  
  735. RERUN BSS 0 ENTRY
  736. RJ VRN VERIFY CALLER
  737. RERUN SET RERUN CAPABLITY ON INPUT FILE
  738. EQ END COMPLETE COMMAND
  739. RFL SPACE 4,10
  740. *** RFL(NNNNNN,MMMMM)
  741. * RFL(CM=NNNNNN,EC=MMMMM)
  742. * SET NOMINAL CM FIELD LENGTH (NFL(CM)) = NNNNNN.
  743. * SET NOMINAL EM FIELD LENGTH (NFL(ECS)) = MMMMM*1000B.
  744. *
  745. * ARGUMENTS MAY BE ENTERED WITH KEYWORDS OR POSITIONALLY OR
  746. * MIXED. IF MIXED, THOSE WITHOUT KEYWORDS WILL BE EVALUATED
  747. * ACCORDING TO THEIR POSITION AMONG ALL THE ARGUMENTS.
  748.  
  749.  
  750. RFL BSS 0 ENTRY
  751. RJ CMP CONVERT PARAMETERS
  752. ZR X1,RFL1 IF NO CM CHANGE
  753. SX1 X1+
  754. SETRFL X1
  755. RFL1 ZR X3,END IF NO EXTENDED MEMORY CHANGE
  756. SX3 X3
  757. SETRFL ,X3
  758. EQ END COMPLETE COMMAND
  759. ROLLOUT SPACE 4,10
  760. *** ROLLOUT.
  761. * ROLLOUT JOB.
  762. *
  763. * ROLLOUT(TTTTTTB)
  764. *
  765. * ROLLOUT THE JOB FOR THE SPECIFIED *TTTTTTB* SCHEDULER
  766. * PERIODS. THE DEFAULT IS DECIMAL TIME ( ASSUME 1 SECOND
  767. * AS THE DEFAULT SCHEDULER INTERVAL ).
  768. * THE MAXIMUM TIME ALLOWED IS 777700B.
  769.  
  770.  
  771. ROLLOUT BSS 0 ENTRY
  772. SA2 ACTR CHECK ARGUMENT COUNT
  773. SB1 1
  774. SB7 X2 ISOLATE COUNT AND SET DEFAULT FOR DXB
  775. NZ B7,ROL1 IF TIME PARAMETER SPECIFIED
  776. ROLLOUT
  777. EQ END COMPLETE COMMAND
  778.  
  779. * PROCESS EXTENDED ROLLOUT.
  780.  
  781. ROL1 NE B1,B7,ERR IF MORE THAN 1 ARGUMENT
  782. SA5 ARGR CONVERT TIME ARGUMENT
  783. RJ DXB DEFAULT DECIMAL CONVERSION
  784. NZ X4,ERR IF ARGUMENT ERROR
  785. SA1 ROLA
  786. *
  787. * COMPENSATE FOR 7777B MULTIPLICATION.
  788. * TIME PARAMETER = XXYYYYB.
  789. * XXYYYYB = XX*10000B + YYYY.
  790. * XXYYYYB = XX*7777B + XX + YYYY.
  791. *
  792. BX2 X6 COMPENSATE FOR 7777B MULTIPLY
  793. AX2 12
  794. IX6 X6+X2
  795. MX0 42 VERIFY TIME ARGUMENT
  796. BX2 X0*X6
  797. NZ X2,ERR IF ARGUMENT .GT. 777700B
  798. BX6 X6+X1 SET EXTENDED TIME EVENT
  799. SA6 A1
  800. ROLLOUT ROLA
  801. EQ END COMPLETE COMMAND
  802.  
  803. ROLA VFD 30/0,18//EVENT/EXTM,12/0
  804. SETPR SPACE 4,10
  805. *** SETPR (NN)
  806. * SET CPU PRIORITY = NN.
  807. * IF NN = *, SET CPU PRIORITY TO SERVICE CLASS VALUE.
  808.  
  809.  
  810. SETPR BSS 0 ENTRY
  811. SA2 ACTR CHECK ARGUMENT COUNT
  812. SB1 1
  813. SX7 X2
  814. SB7 B0 SET OCTAL BASE
  815. SA5 ARGR ARGUMENT
  816. ZR X7,ERR ERROR IF NO ARGUMENT
  817. BX6 X5
  818. LX6 18
  819. SX6 X6-1L*
  820. ZR X6,STP1 IF SET SERVICE CLASS PRIORITY
  821. RJ DXB CONVERT PRIORITY
  822. NZ X4,ERR IF ERROR IN CONVERSION
  823. SX7 X6-MPRS
  824. SX1 X6-LJCS
  825. PL X7,ERR5 IF SPECIFIED PRIORITY TOO HIGH
  826. NG X1,ERR5 IF SPECIFIED PRIORITY TOO LOW
  827. STP1 SETPR X6
  828. EQ END COMPLETE COMMAND
  829. SETTL SPACE 4,10
  830. *** SETTL(NNNNN)
  831. * SET TIME LIMIT TO NNNNN SECONDS.
  832. * IF NNNNN = *, OR NNNNN IS GREATER THAN THE MAXIMUM FOR WHICH
  833. * THE USER IS VALIDATED, THEN THE TIME LIMIT IS SET TO THE
  834. * USER-S VALIDATED MAXIMUM.
  835.  
  836.  
  837. SETTL BSS 0 ENTRY
  838. SB6 B0 FLAG TIME LIMIT
  839. SETL SA2 ACTR CHECK ARGUMENT COUNT
  840. SB1 1
  841. SX7 X2
  842. SB7 1 SET DECIMAL BASE
  843. SA5 ARGR ARGUMENT
  844. ZR X7,ERR ERROR IF NO ARGUMENT
  845. LX5 6
  846. SX4 X5-1R* CHECK FOR (*)
  847. ZR X4,SETL1 IF (*)
  848. LX5 54
  849. RJ DXB CONVERT
  850. NZ X4,ERR IF INCORRECT VALUE
  851. ZR X6,ERR IF ZERO REQUESTED
  852. SX7 100000B
  853. NZ B6,SETL3 IF SRU LIMIT
  854. IX7 X6-X7
  855. NG X7,SETL2 IF ARGUMENT .LT. 77777B
  856. SETL1 NZ B6,SETL4 IF SRU LIMIT
  857. SX6 77777B SET USER TO MAXIMUM
  858. SETL2 SETTL X6 SET TIME LIMIT
  859. GETTL SRMA GET CURRENT TIME LIMIT
  860. SB5 SETB SET IN MESSAGE
  861. SB7 1R$
  862. RJ SRM
  863. MESSAGE SETB
  864. EQ END COMPLETE COMMAND
  865.  
  866. SETL3 LX7 3
  867. IX7 X6-X7
  868. NG X7,SETL5 IF ARGUMENT .LT. 777777B
  869. SETL4 MX6 18 SET USER TO MAXIMUM
  870. LX6 18
  871. SETL5 BX1 X6
  872. EQ B1,B6,SETL6 IF JOB STEP SRU LIMIT
  873. SETASL X1 SET ACCOUNT BLOCK SRU LIMIT
  874. EQ SETL7 OUTPUT LIMITS
  875.  
  876. SETL6 SETJSL X1 SET JOB STEP SRU LIMIT
  877. SETL7 GETASL SRMA GET CURRENT ACCOUNT BLOCK SRU LIMIT
  878. SB5 SETA
  879. SB7 1R$
  880. RJ SRM SET IN MESSAGE
  881. GETJSL SRMA GET CURRENT JOB STEP SRU LIMIT
  882. SB7 1R+
  883. RJ SRM SET IN MESSAGE
  884. MESSAGE SETA
  885. EQ END ENDRUN
  886.  
  887.  
  888. SETA DATA C* ASL = $$$$$$$$$, JSL = +++++++++.*
  889. SETB DATA C* TL = $$$$$$$$$.*
  890. SETASL SPACE 4,10
  891. *** SETASL(NNNNNN)
  892. * SET ACCOUNT BLOCK SRU LIMIT TO NNNNNN UNITS.
  893. * IF NNNNNN = *, OR NNNNNN IS GREATER THAN THE MAXIMUM FOR
  894. * WHICH THE USER IS VALIDATED, THEN THE ACCOUNT BLOCK LIMIT
  895. * IS SET TO THE USER-S VALIDATED MAXIMUM. IF NNNNNN IS LOWER
  896. * THAN THE CURRENT JOB STEP SRU LIMIT, BOTH THE ACCOUNT BLOCK
  897. * AND JOB STEP SRU LIMITS ARE SET TO NNNNNN.
  898.  
  899.  
  900. SETASL BSS 0 ENTRY
  901. SB6 2 SET ACCOUNT BLOCK SRU LIMIT
  902. EQ SETL SET LIMIT
  903.  
  904. SETJOB SPACE 4,15
  905. *** SETJOB(UJN,DC,OP)
  906. * SETJOB(UJN=UJN,DC=DC,OP=OP)
  907. * SET JOB CHARACTERISTICS.
  908. *
  909. * UJN = USER JOB NAME.
  910. * DC = DISPOSITION OF IMPLICIT OUTPUT AT END OF JOB.
  911. * TO = QUEUE TO *TXOT* QUEUE.
  912. * NO = DO NOT QUEUE OUTPUT.
  913. * DF = USE DEFAULT VALUE (DEPENDS ON JOB ORIGIN TYPE).
  914. * OP = END OF JOB OPTIONS.
  915. * SU = SUSPEND JOB (*TXOT* ONLY).
  916. * TJ = TERMINATE JOB.
  917.  
  918.  
  919. SETJOB BSS 0 ENTRY
  920. SX6 TSTJ ARGUMENT TABLE ADDRESS
  921. SX7 TSTJL
  922. RJ PKP PROCESS PARAMETERS
  923. NZ X1,ERR1 IF NO ARGUMENTS
  924. SA1 TCKA PROCESS *DC*
  925. ZR X1,STJ2 IF *DC* NOT SPECIFIED
  926. SA2 TSDC
  927. STJ1 BX3 X1-X2 CHECK NEXT VALID OPTION
  928. ZR X3,STJ2 IF MATCH
  929. SA2 A2+B1
  930. NZ X2,STJ1 IF MORE VALID OPTIONS
  931. EQ ERR PROCESS INCORRECT *DC*
  932.  
  933. STJ2 LX1 -48 PROCESS *OP*
  934. BX6 X1
  935. SA1 A1+B1
  936. ZR X1,STJ4 IF *OP* NOT SPECIFIED
  937. SA2 TSOP
  938. STJ3 BX3 X1-X2 CHECK NEXT VALID OPTION
  939. ZR X3,STJ4 IF MATCH
  940. SA2 A2+B1
  941. NZ X2,STJ3 IF MORE VALID OPTIONS
  942. EQ ERR PROCESS INCORRECT *OP*
  943.  
  944. STJ4 LX1 -36 COMBINE *DC* AND *OP*
  945. BX6 X1+X6
  946. SA1 STJA
  947. BX3 X6+X1
  948. ZR X3,ERR1 IF NO PARAMETER VALUES SPECIFIED
  949. SA6 A1+B1
  950. SETJOB STJA
  951. EQ END COMPLETE COMMAND
  952.  
  953. STJA BSS 0 SETJOB PARAMETER BLOCK
  954. CON 0 *UJN*
  955. CON 0 *OP* /*DC*
  956. TSTJ SPACE 4,10
  957. ** TSTJ - TABLE OF SETJOB ARGUMENTS.
  958.  
  959.  
  960. TSTJ BSS 0
  961. UJN ARG ZR,STJA,400B
  962. DC ARG ZR,TCKA,400B
  963. OP ARG ZR,TCKA+1,400B
  964. ARG
  965. TSTJL EQU *-TSTJ-1
  966. TSDC SPACE 4,10
  967. ** TSCD - TABLE OF SETJOB *DC* OPTIONS.
  968.  
  969.  
  970. TSDC BSS 0
  971. CON 2LTO
  972. CON 2LNO
  973. CON 2LDF
  974. CON 0
  975. TSOP SPACE 4,10
  976. ** TSOP - TABLE OF SETJOB *OP* OPTIONS.
  977.  
  978.  
  979. TSOP BSS 0
  980. CON 2LSU
  981. CON 2LTJ
  982. CON 0
  983. SETJSL SPACE 4,10
  984. *** SETJSL(NNNNNN)
  985. * SET JOB STEP SRU LIMIT TO NNNNNN UNITS.
  986. * IF NNNNNN = *, OR NNNNNN IS GREATER THAN THE MAXIMUM FOR
  987. * WHICH THE USER IS VALIDATED, THEN THE TIME LIMIT IS SET TO
  988. * THE MAXIMUM. IF NNNNNN IS GREATER THAN THE CURRENT ACCOUNT
  989. * BLOCK SRU LIMIT, BOTH THE JOB STEP AND ACCOUNT BLOCK SRU
  990. * LIMITS ARE SET TO NNNNNN.
  991.  
  992.  
  993. SETJSL BSS 0 ENTRY
  994. SB6 1 SET JOB STEP SRU LIMIT
  995. EQ SETL SET LIMIT
  996. SHELL SPACE 4,20
  997. *** SHELL(NAME,E,A,L,G,S,T,B,C)
  998. * SET THE USER-S SHELL PROGRAM CONTROL WORD ACCORDING TO THE
  999. * PARAMETERS INPUT BY THE USER.
  1000. * CONTROL WORD FORMAT =
  1001. * 42/NAME,10/0,1/E,1/A,1/L,1/G,1/S,1/T,1/B,1/C.
  1002. * ALL PARAMETERS ARE ORDER INDEPENDENT EXCEPT FOR *NAME*
  1003. * WHICH MUST BE THE FIRST PARAMETER.
  1004. *
  1005. * PARAMETERS:
  1006. * NAME SHELL PROGRAM NAME.
  1007. * E CLEARS CONTROLS IF SHELL PROGRAM LOAD ERRORS.
  1008. * A CLEARS CONTROLS IF SHELL PROGRAM ABORTS.
  1009. * L LOCAL FILE LOAD OF SHELL ALLOWED.
  1010. * G GLOBAL LIBRARY LOAD OF SHELL ALLOWED.
  1011. * S SYSTEM LIBRARY LOAD OF SHELL ALLOWED.
  1012. * T MONITOR COMMANDS DIRECTLY FROM THE TERMINAL.
  1013. * B MONITOR COMMANDS OUTSIDE PROCEDURE.
  1014. * C MONITOR COMMANDS INSIDE PROCEDURE.
  1015. *
  1016. * A, S AND B ARE SET BY DEFAULT IF NO PARAMETERS ARE SPECIFIED.
  1017. *
  1018. * NOTE TO AVOID PROBLEMS, MAKE SURE TO SPECIFY WHERE TO LOAD
  1019. * THE PROGRAM FROM, AND HOW COMMANDS SHOULD BE MONITORED.
  1020.  
  1021.  
  1022. SHELL BSS 0 ENTRY
  1023. SB1 1
  1024. SA5 CCDR FWA OF COMMAND
  1025. SB7 SHLB FWA OF PARAMETER BLOCK
  1026. RJ UPC UNPACK COMMAND PARAMETERS
  1027. NZ X6,ERR3 IF ERROR DURING UNPACKING
  1028. SB6 B6-B1 DO NOT COUNT *SHELL* AS A PARAMETER
  1029. ZR B6,SHL6 IF NO PARAMETERS, CLEAR CONTROL WORD
  1030.  
  1031. * BUILD SHELL PROGRAM CONTROL WORD FROM PARAMETERS.
  1032.  
  1033. SA2 SHLB+B1 SET PROGRAM NAME
  1034. BX6 X2
  1035. SB6 B6-B1 DECREMENT PARAMETER COUNT
  1036. ZR B6,SHL4 IF PROGRAM NAME IS ONLY PARAMETER
  1037. SA2 A2+B1 CHECK NEXT PARAMETER
  1038. SB4 -B1
  1039. SB5 SHLTL NUMBER OF ACCEPTABLE PARAMETERS
  1040. SX7 -B1
  1041. MX0 42
  1042. SB2 SHLT
  1043. SHL1 SB4 B4+B1 CHECK NEXT VALID PARAMETER
  1044. EQ B4,B5,SHL3 IF NO MATCH ON PARAMETER
  1045. SA3 B2+B4 NEXT VALID PARAMETER IN LIST
  1046. BX4 X0*X3
  1047. BX4 X2-X4 COMPARE PARAMETERS
  1048. NZ X4,SHL1 IF NO MATCH
  1049. BX4 -X0*X3 SET PARAMETER BIT IN CONTROL WORD
  1050. BX6 X6+X4
  1051. SA7 A3 PREVENT DUPLICATE ENTRIES
  1052. SHL2 SB4 -B1 RESET LIST POSITION
  1053. SB6 B6-B1 DECREMENT PARAMETER COUNTER
  1054. ZR B6,SHL5 IF ALL PARAMETERS PROCESSED
  1055. SA2 A2+B1
  1056. EQ SHL1 CHECK NEXT PARAMETER
  1057.  
  1058. SHL3 ZR X2,SHL2 IF ZERO OR NULL PARAMETER
  1059. EQ ERR2 * INCORRECT PARAMETER.*
  1060.  
  1061. * SET SHELL CONTROL WORD.
  1062.  
  1063. SHL4 SX3 112B SET DEFAULT PARAMETERS (A,S,B)
  1064. BX6 X3+X6
  1065. SHL5 SA6 SHLA
  1066. SHL6 SHELL SHLA
  1067. EQ END COMPLETE COMMAND
  1068.  
  1069. SHLA DATA 0 SHELL PROGRAM CONTROL WORD
  1070. SHLB BSSZ 10 PARAMETER BLOCK
  1071. SHLT BSS 0 TABLE OF VALID *SHELL* PARAMETERS
  1072. VFD 42/1LE,18/200B
  1073. VFD 42/1LA,18/100B
  1074. VFD 42/1LL,18/40B
  1075. VFD 42/1LG,18/20B
  1076. VFD 42/1LS,18/10B
  1077. VFD 42/1LT,18/4
  1078. VFD 42/1LB,18/2
  1079. VFD 42/1LC,18/1
  1080. SHLTL EQU *-SHLT TABLE LENGTH
  1081. CON 0 END OF TABLE
  1082. SUI SPACE 4,10
  1083. *** SUI (NNNNNN)
  1084. * SET USER INDEX = NNNNNNN.
  1085. * NOTE - THIS FUNCTION IS LEGAL ONLY FOR SYSTEM JOBS.
  1086.  
  1087.  
  1088. SUI BSS 0 ENTRY
  1089. SA2 ACTR CHECK ARGUMENT COUNT
  1090. SB1 1
  1091. SX7 X2
  1092. SB7 B0 SET OCTAL BASE
  1093. SA5 ARGR ARGUMENT
  1094. ZR X7,ERR ERROR IF NO ARGUMENT
  1095. RJ DXB CONVERT
  1096. NZ X4,ERR
  1097. MX2 43 CHECK ARGUMENT
  1098. BX7 X2*X6
  1099. NZ X7,ERR ERROR IF TOO LARGE
  1100. SETUI X6 REQUEST SET USER INDEX
  1101. EQ END COMPLETE COMMAND
  1102. USECPU SPACE 4,10
  1103. *** USECPU(N)
  1104. * SELECT CPU FOR JOB TO RUN IN.
  1105. * N = 0, USE ANY CPU.
  1106. * N = 1, USE ONLY CPU - 0. (6600 CPU ON 6700)
  1107. * N = 2, USE ONLY CPU - 1, (6400 CPU ON 6700)
  1108.  
  1109.  
  1110. USECPU BSS 0 ENTRY
  1111. SA2 ACTR CHECK ARGUMENT COUNT
  1112. SB1 1
  1113. SB2 X2
  1114. NE B2,B1,ERR IF NOT ONE ARGUMENT
  1115. SA5 ARGR GET ARGUMENT
  1116. RJ DXB CONVERT DIGITS
  1117. NZ X4,ERR
  1118. SX7 X6-3
  1119. PL X7,ERR ERROR IF > 2
  1120. USECPU X6
  1121. EQ END COMPLETE COMMAND
  1122. TITLE SUBROUTINES.
  1123. CMP SPACE 4,20
  1124. ** CMP - CONVERT MEMORY PARAMETERS.
  1125. *
  1126. * EXIT (X1) = 0 IF NO CM PARAMETER.
  1127. * .LT. 0 IF CM PARAMETER IS ZERO.
  1128. * = CM PARAMETER, OTHERWISE.
  1129. * (X3) = 0 IF NO EXTENDED MEMORY PARAMETER.
  1130. * .LT. 0 IF EXTENDED MEMORY PARAMETER IS ZERO.
  1131. * = EXTENDED MEMORY PARAMETER, OTHERWISE.
  1132. *
  1133. * USES A - 1, 3, 5, 6.
  1134. * X - 0, 1, 3, 4, 5, 6, 7.
  1135. * B - 7.
  1136. *
  1137. * CALLS DXB, PKP.
  1138.  
  1139.  
  1140. CMP SUBR ENTRY/EXIT
  1141. SX6 TMRA ARGUMENT TABLE ADDRESS
  1142. SX7 TMRAL
  1143. RJ PKP PROCESS KEYWORD OR POSITIONAL ARGUMENTS
  1144. NZ X1,ERR IF NO ARGUMENTS SPECIFIED
  1145. SB7 B0+ CONVERT ARGUMENTS TO BINARY
  1146. SA5 TCKA
  1147. ZR X5,CMP1 IF NO CM VALUE SPECIFIED
  1148. RJ DXB
  1149. NZ X4,ERR IF CONVERSION ERROR
  1150. MX7 1 SAVE VALUE
  1151. BX6 X6+X7
  1152. SA6 A5+
  1153. CMP1 SA5 TCKA+1
  1154. ZR X5,CMP2 IF NO EXTENDED MEMORY VALUE SPECIFIED
  1155. RJ DXB
  1156. NZ X4,ERR IF CONVERSION ERROR
  1157. MX7 1 SAVE VALUE
  1158. BX6 X6+X7
  1159. SA6 A5+
  1160. CMP2 SA1 TCKA CHECK FOR LEGAL VALUES
  1161. SA3 A1+B1
  1162. MX0 -59
  1163. BX6 -X0*X1
  1164. BX7 -X0*X3
  1165. SX4 77B CHECK CM FL ROUNDED TO NEAREST 100B
  1166. IX6 X6+X4
  1167. AX7 15
  1168. AX6 17
  1169. IX6 X6+X7
  1170. ZR X6,CMP IF CM .LE. 377700B AND EC .LE. 77777B
  1171. MESSAGE (=C* CM OR EC REQUEST EXCEEDS MAXIMUM.*)
  1172. ABORT
  1173. EQ CMPX RETURN
  1174. END SPACE 4,10
  1175. ** END - END RUN.
  1176.  
  1177.  
  1178. END BSS 0 ENTRY
  1179. ENDRUN
  1180. ENL SPACE 4,10
  1181. * ENL - END NON-LOCAL REQUEST.
  1182. *
  1183. * ENTER (X1) = *QAC* REQUEST STATUS.
  1184.  
  1185.  
  1186. ENL BSS 0 ENTRY
  1187. ZR X1,END IF NORMAL STATUS
  1188. SX3 X1-7
  1189. NZ X3,ENL1 IF NOT JOB NOT FOUND
  1190. MESSAGE (=C* FILE/JOB NOT FOUND.*)
  1191. EQ END COMPLETE COMMAND
  1192.  
  1193. ENL1 SX2 070007B
  1194. BX6 X2*X1 LOW ORDER DIGIT
  1195. LX1 6
  1196. BX3 X2*X1 HIGH ORDER DIGIT
  1197. AX2 6
  1198. AX1 3
  1199. BX6 X6+X3
  1200. SA4 ENLB
  1201. BX3 X2*X1 MIDDLE DIGIT
  1202. BX6 X6+X3
  1203. LX6 53-17
  1204. IX6 X6+X4
  1205. SA6 A4+
  1206. MESSAGE ENLA
  1207. ABORT
  1208.  
  1209. ENLA DATA 20H CONTROL *QAC* ERROR
  1210. ENLB DATA 5C 000.
  1211. ERR SPACE 4,10
  1212. ** ERR - PROCESS ARGUMENT ERROR.
  1213.  
  1214.  
  1215. ERR MESSAGE (=C* ERROR IN CONTROL ARGUMENTS.*)
  1216. ABORT
  1217.  
  1218. ERR1 MESSAGE (=C* NO JOB CHARACTERISTICS SPECIFIED.*)
  1219. ABORT
  1220.  
  1221. ERR2 MESSAGE (=C* INCORRECT PARAMETER.*)
  1222. ABORT
  1223.  
  1224. ERR3 MESSAGE (=C* INCORRECT PARAMETER LENGTH OR SEPARATOR.*)
  1225. ABORT
  1226.  
  1227. ERR4 MESSAGE (=C* FAMILY NOT FOUND.*)
  1228. ABORT
  1229.  
  1230. ERR5 MESSAGE (=C* INCORRECT CPU PRIORITY VALUE.*)
  1231. ABORT
  1232. MCM SPACE 4,15
  1233. ** MCM - MOVE COMMENT MESSAGE.
  1234. *
  1235. * ENTER (B2) = FWA OF THE COMMAND.
  1236. *
  1237. * EXIT COMMENT FIELD MOVED TO *MSGA*.
  1238. *
  1239. * USES A - 1,6.
  1240. * X - 1, 2, 3, 6.
  1241. * B - 2, 6.
  1242. *
  1243. * CALLS USB.
  1244.  
  1245.  
  1246. MCM5 SA6 B2+ STORE LAST WORD
  1247.  
  1248. MCM SUBR ENTRY/EXIT
  1249. RJ USB UNPACK COMMAND
  1250. SX2 41B FIND COMMAND TERMINATOR
  1251. LX2 12
  1252. MCM1 SA1 B6 GET NEXT CHARACTER
  1253. SB2 X1
  1254. LX3 X2,B2
  1255. SB6 B6+B1
  1256. GT B6,B7,MCMX IF END OF COMMAND
  1257. PL X3,MCM1 IF NOT TERMINATOR
  1258.  
  1259. * PACK COMMENT IN *MSGA*.
  1260.  
  1261. SB2 MSGA
  1262. MCM2 BX6 X6-X6 CLEAR ASSEMBLY REGISTER
  1263. MX2 10 SET CHARACTER COUNT
  1264. MCM3 SA1 B6 GET NEXT CHARACTER
  1265. LX6 6
  1266. LX2 1
  1267. BX6 X6+X1 MERGE CHARACTER
  1268. SB6 B6+1
  1269. ZR X1,MCM4 IF TERMINATOR
  1270. NG X2,MCM3 IF WORD NOT FILLED
  1271. SA6 B2 STORE WORD
  1272. SB2 B2+B1
  1273. EQ MCM2 START NEXT WORD
  1274.  
  1275. MCM4 PL X2,MCM5 IF WORD FULL
  1276. LX6 6
  1277. LX2 1
  1278. EQ MCM4 CHECK IF WORD LEFT JUSTIFIED
  1279. SPACE 4,15
  1280. ** MDM - MOVE DAYFILE MESSAGE.
  1281. *
  1282. * MOVE *CCDR* MESSAGE TO BUFFER AND APPEND SPECIFIED SUFFIX.
  1283. *
  1284. * ENTRY (B2) = FWA OF SUFFIX.
  1285. *
  1286. * EXIT MESSAGE AND SUFFIX MOVED TO *MSGA*.
  1287. *
  1288. * USES X - 1, 2, 6, 7.
  1289. * A - 1, 6, 7.
  1290. * B - 2, 3, 6.
  1291. *
  1292. * MACROS MOVE.
  1293. *
  1294. * CALLS USB.
  1295.  
  1296.  
  1297. MDM6 SA6 B2
  1298.  
  1299. MDM SUBR ENTRY/EXIT
  1300. RJ USB UNPACK SUFFIX
  1301. SX7 1R. APPEND TERMINATOR
  1302. SA7 B7+1
  1303. MOVE SBUFL,B6,SBUF MOVE UNPACKED CONSTANT TO BUFFER
  1304. MOVE 8,CCDR,MDMA+1
  1305. SB2 MDMA
  1306. RJ USB UNPACK COMMAND
  1307. MDM1 SA1 B6
  1308. SB3 X1-1R.
  1309. ZR B3,MDM2 IF COMMAND TERMINATOR
  1310. SB3 X1-1R)
  1311. ZR B3,MDM2 IF COMMAND TERMINATOR
  1312. SB6 B6+1
  1313. EQ MDM1 CHECK NEXT CHARACTER
  1314.  
  1315. MDM2 SX7 1R ADD ONE BLANK SPACE
  1316. SA7 B7+1
  1317. MOVE SBUFL,SBUF,B7+2
  1318.  
  1319. * PACK COMMENT IN *MSGA*.
  1320.  
  1321. SB2 MSGA
  1322. SB6 USBB+7 RETRIEVE FWA OF COMMAND
  1323. MDM3 BX6 X6-X6 CLEAR ASSEMBLY REGISTER
  1324. MX2 10 SET CHARACTER COUNT
  1325. MDM4 SA1 B6 GET NEXT CHARACTER
  1326. LX6 6
  1327. LX2 1
  1328. BX6 X6+X1 MERGE CHARACTER
  1329. SB6 B6+B1
  1330. ZR X1,MDM5 IF END OF MESSAGE
  1331. NG X2,MDM4 IF WORD NOT FILLED
  1332. SA6 B2
  1333. SB2 B2+B1
  1334. EQ MDM3 START NEXT WORD
  1335.  
  1336. MDM5 PL X2,MDM6 IF WORD FULL
  1337. LX6 6
  1338. LX2 1
  1339. EQ MDM5 CHECK IF WORD LEFT JUSTIFIED
  1340.  
  1341.  
  1342. MDMA DATA A/* / ASSEMBLY BUFFER FOR MESSAGE
  1343. BSSZ 8
  1344. PKP SPACE 4,15
  1345. ** PKP - PROCESS KEYWORD OR POSITIONAL ARGUMENTS.
  1346. *
  1347. * ENTRY (X6) = ARGUMENT TABLE ADDRESS.
  1348. * (X7) = ARGUMENT TABLE LENGTH.
  1349. *
  1350. * EXIT (B1) = 1.
  1351. * (X1) .NE. 0 IF NO ARGUMENTS SPECIFIED.
  1352. * TO *ERR* IF ARGUMENT ERROR.
  1353. *
  1354. * USES A - 1, 2, 6, 7.
  1355. * B - 1, 2, 3, 4, 6.
  1356. * X - 1, 2, 6, 7.
  1357. *
  1358. * CALLS ARM, CPA, USB.
  1359.  
  1360.  
  1361. PKP SUBR ENTRY/EXIT
  1362. SB1 1
  1363. SA6 PKPA SAVE ADDRESS AND LENGTH
  1364. SA7 A6+1
  1365. SB2 CCDR UNPACK COMMAND
  1366. RJ USB
  1367. SA1 A6 ASSURE TERMINATION
  1368. SX6 1R.
  1369. SA6 X1+B1
  1370.  
  1371. * SKIP TO FIRST ARGUMENT.
  1372.  
  1373. PKP1 SA1 B6 SKIP OVER COMMAND NAME
  1374. SB6 B6+B1 ADVANCE CHARACTER ADDRESS
  1375. SB2 X1-1R9-1
  1376. NG B2,PKP1 IF NOT END OF NAME
  1377. SB2 X1-1R
  1378. ZR B2,PKP1 IF A BLANK
  1379. SB3 X1-1R.
  1380. SB4 X1-1R)
  1381. ZR B3,PKPX IF NO ARGUMENTS
  1382. ZR B4,PKPX IF NO ARGUMENTS
  1383.  
  1384. * PROCESS ARGUMENTS.
  1385.  
  1386. SA1 PKPA RETRIEVE ADDRESS AND LENGTH
  1387. SA2 A1+B1
  1388. SB3 X1 ARGUMENT TABLE ADDRESS
  1389. SB2 X2+
  1390. SB4 ABUF CONVERT POSITIONAL ARGUMENTS
  1391. RJ CPA
  1392. NG B5,ERR IF ARGUMENT ERROR
  1393. SX6 B5+ SET LWA OF ARGUMENTS
  1394. SB6 ABUF SET FWA OF ARGUMENTS
  1395. SA6 USBC
  1396. RJ ARM PROCESS ARGUMENTS
  1397. NZ X1,ERR IF ARGUMENT ERROR
  1398. EQ PKPX RETURN
  1399.  
  1400. PKPA CON 0 ARGUMENT TABLE ADDRESS
  1401. CON 0 ARGUMENT TABLE LENGTH
  1402. ERL SPACE 4,10
  1403. ** ERL - PROCESS RESOURCE LIMIT ERROR.
  1404.  
  1405.  
  1406. ERL BSS 0 ENTRY
  1407. MESSAGE (=C* USER ACCESS NOT VALID.*)
  1408. ABORT
  1409. PQB SPACE 4,10
  1410. ** PQB - PRESET *QAC* REQUEST BLOCK.
  1411. *
  1412. * EXIT PARAMETER BLOCKS *TALT* AND *TPEK*
  1413. * ARE PRESET.
  1414. *
  1415. * USES A - 1, 2, 3, 6, 7.
  1416. * X - 1, 2, 3, 6, 7.
  1417. * B - 2.
  1418.  
  1419.  
  1420. PQB SUBR ENTRY/EXIT
  1421. SB2 MSGAE-TALT CLEAR REQUEST SPACE
  1422. SX7 0
  1423. PQB1 SA7 TALT+B2
  1424. SB2 B2-1
  1425. PL B2,PQB1 IF NOT ALL CLEARED
  1426. SA1 TQPW FILL PRESET WORDS
  1427. SA2 A1+B1
  1428. BX7 X1
  1429. SA3 A2+B1
  1430. BX6 X2
  1431. SA7 TALT+QFIR *FIRST*
  1432. SA6 A7+B1 *IN*
  1433. BX7 X3
  1434. SA6 A6+B1 *OUT*
  1435. SA7 A6+B1 *LIMIT*
  1436. SA1 A3+B1
  1437. SA2 A1+B1
  1438. BX7 X1
  1439. SA3 A2+B1
  1440. SA7 TPEK+QFIR *FIRST*
  1441. BX6 X2
  1442. SA6 A7+B1 *IN*
  1443. BX7 X3
  1444. SA6 A6+B1 *OUT*
  1445. SA7 A6+B1 *LIMIT*
  1446. EQ PQBX RETURN
  1447. QAC SPACE 4,15
  1448. ** QAC - CALL *QAC*.
  1449. * SETS THE REQUESTED FUNCTION CODE IN (B3) AND
  1450. * CALLS *QAC*.
  1451. *
  1452. * ENTER (X6) = FUNCTION CODE.
  1453. * (B3) = REQUEST BLOCK ADDRESS.
  1454. *
  1455. * EXIT (X1) = ERROR STATUS.
  1456. *
  1457. * USES A - 1, 7.
  1458. * X - 1, 7.
  1459. *
  1460. * MACROS SYSTEM.
  1461.  
  1462.  
  1463. QAC SUBR ENTRY/EXIT
  1464. SA1 QFCN+B3
  1465. MX7 42 ENTER FUNCTION CODE
  1466. LX6 1
  1467. BX7 X7*X1
  1468. BX7 X7+X6
  1469. SA7 A1+
  1470. SYSTEM QAC,R,A7
  1471. MX7 -8
  1472. SA1 QFCN+B3 GET RESPONSE STATUS
  1473. AX1 10
  1474. BX1 -X7*X1
  1475. EQ QACX RETURN
  1476. SMG SPACE 4,10
  1477. ** SMG - SET MESSAGE IN *TALT*.
  1478. *
  1479. * ENTER MESSAGE STORED IN *MSGA*.
  1480. *
  1481. * EXIT MESSAGE POINTERS SET IN *TALT*.
  1482. * (B7) .LT. (B6), IF NO MESSAGE.
  1483. *
  1484. * USES A - 1, 7.
  1485. * X - 1, 7.
  1486. * B - 6, 7.
  1487.  
  1488.  
  1489. SMG SUBR ENTRY/EXIT
  1490. SB7 MSGAE FIND END OF MESSAGE
  1491. SB6 MSGA
  1492. SMG1 SB7 B7-B1
  1493. LT B7,B6,SMGX IF NO MESSAGE
  1494. SA1 B7
  1495. ZR X1,SMG1 IF EMPTY WORD
  1496. MX7 -12
  1497. BX7 -X7*X1
  1498. ZR X7,SMG2 IF MESSAGE TERMINATOR
  1499. SB7 B7+1 FORCE TERMINATOR
  1500. SMG2 SX7 B7+1 ADJUST *IN* POINTER
  1501. SA7 TALT+QINP
  1502. EQ SMGX RETURN
  1503. SRM SPACE 4,15
  1504. ** SRM - SET RESOURCE LIMIT MESSAGE.
  1505. *
  1506. * ENTRY (B5) = MESSAGE FWA.
  1507. * (B7) = REPLACEMENT CHARACTER.
  1508. * (SRMA) = ACCOUNT BLOCK, JOB STEP SRU, OR TIME LIMIT.
  1509. *
  1510. * EXIT RESOURCE LIMIT OR *UNLIMITED* PLACED IN MESSAGE.
  1511. *
  1512. * USES X - 0, 1.
  1513. * A - 1.
  1514. * B - 2.
  1515. *
  1516. * CALLS CDD, SNM.
  1517.  
  1518.  
  1519. SRM1 RJ CDD CONVERT TO DECIMAL
  1520. SB2 B2-B1 MASK OFF DIGITS
  1521. MX6 1
  1522. AX6 B2
  1523. BX1 X6*X4
  1524. SRM2 SB2 B7
  1525. RJ SNM SET IN MESSAGE
  1526.  
  1527. SRM SUBR ENTRY/EXIT
  1528. SA1 SRMA GET LIMIT
  1529. MX0 -18
  1530. BX0 -X0-X1
  1531. NZ X0,SRM1 IF NOT UNLIMITED
  1532. SA1 SRMB *UNLIMITED*
  1533. EQ SRM2 SET IN MESSAGE
  1534.  
  1535.  
  1536. SRMA CON 0 RESOURCE LIMIT
  1537. SRMB DATA 0LUNLIMITED
  1538. SSC SPACE 4,15
  1539. ** SSC - SET SELECTION CRITERIA.
  1540. *
  1541. * ENTER (X1) = JSN IN BITS 59 - 36.
  1542. * (X1) = 0 IF NO JSN PROVIDED.
  1543. * (B2) .LT. 0 IF ALL QUEUES SELECTED.
  1544. * (B2) .EQ. 0 IF FOR EXECUTION QUEUE ONLY.
  1545. * (B2) .GT. 0 IF SPECIFIC QUEUE SELECTION.
  1546. * (B3) = REQUEST BLOCK ADDRESS.
  1547. *
  1548. * EXIT SELECTION CRITERIA SET IN BLOCK.
  1549. *
  1550. * USES A - 2, 7.
  1551. * X - 2, 6, 7.
  1552.  
  1553.  
  1554. SSC SUBR ENTRY/EXIT
  1555. SA2 QQUE+B3 SET QUEUE SELECTION
  1556. SX7 0037B SELECT ALL QUEUES
  1557. MX6 12
  1558. BX2 -X6*X2
  1559. NG B2,SSC1 IF ALL QUEUES
  1560. SX7 0002B SET EXECTUION QUEUE
  1561. ZR B2,SSC1 IF EXECUTION QUEUE
  1562. SX7 B2+ SPECIAL QUEUE
  1563. SSC1 LX7 59-11
  1564. BX7 X2+X7
  1565. SA7 A2+
  1566. ERRNZ QJSN-QSEL ENSURE ORDER OF BLOCK IS CORRECT
  1567. SX7 1S6+1S2 SET SELECTION FLAGS
  1568. NZ X1,SSC2 IF JSN SUPPLIED
  1569. SX7 1S2 NO JSN SELECTION
  1570. SSC2 BX7 X7+X1
  1571. SA7 QJSN+B3
  1572. EQ SSCX RETURN
  1573. VJS SPACE 4,10
  1574. ** VJS - VALIDATE JSN.
  1575. *
  1576. * ENTRY (X1) = JSN PARAMETER WORD.
  1577. *
  1578. * EXIT (X2) = 0 IF PARAMETER IS VALID.
  1579. * (X1) = JSN IN BITS 59 - 36 IF (X2) = 0.
  1580. *
  1581. * USES X - 1, 2, 3.
  1582.  
  1583.  
  1584. VJS1 SX2 B1 SET INCORRECT PARAMETER
  1585.  
  1586. VJS SUBR ENTRY/EXIT
  1587. MX2 42
  1588. MX3 24
  1589. BX1 X2*X1
  1590. BX2 -X3*X1
  1591. NZ X2,VJSX IF JSN .GT. 4 CHARACTERS
  1592. LX3 -18
  1593. BX3 X3*X1
  1594. NZ X3,VJSX IF FOUR CHARACTER JSN
  1595. MX3 -48
  1596. BX3 -X3*X1
  1597. ZR X3,VJS1 IF JSN .LT. 3 CHARACTERS
  1598. SX3 1R SET FOURTH CHARACTER TO BLANK
  1599. LX3 36
  1600. BX1 X1+X3
  1601. EQ VJSX RETURN
  1602. VRN SPACE 4,15
  1603. ** VRN VERIFY RERUN/NORERUN CALL.
  1604. *
  1605. * ENTRY DIRECT FROM RERUN/NORERUN COMMAND.
  1606. *
  1607. * EXIT NORMAL IF VALID CALLER-ELSE ENDRUN.
  1608. * (B1) = 1
  1609. *
  1610. * CALLS NONE.
  1611. *
  1612. * USES A - 2.
  1613. * X - 2, 3, 4, 6.
  1614. * B - 1, 2.
  1615.  
  1616.  
  1617. VRN SUBR
  1618. SA2 ACTR
  1619. SB1 1
  1620. SB2 X2 NUMBER OF ARGUMENTS
  1621. NE B2,ERR IF ANY ARGUMENTS
  1622. SA2 FWPR VERIFY ORIGIN
  1623. MX3 -6
  1624. AX2 24D
  1625. BX4 -X3*X2 ONLY ORIGIN
  1626. SX6 X4-TXOT
  1627. NZ X6,VRNX IF VALID ORIGIN
  1628. MESSAGE (=C* NORERUN/RERUN INCORRECT FROM INTERACTIVE JOBS.*)
  1629. EQ END COMPLETE COMMAND
  1630. TCKA TITLE TABLE OF CRACKED ARGUMENT VALUES.
  1631. ** TCKA - TABLE OF CRACKED ARGUMENT VALUES.
  1632. *
  1633. * THE ORDER OF THE ARGUMENT VALUES IN THIS TABLE IS DETERMINED
  1634. * BY THE ORDER OF THE ARGUMENTS IN THE INDIVIDUAL ARGUMENT
  1635. * TABLES. THE NUMBER OF VALUES USED IS DETERMINED BY THE
  1636. * LENGTH OF THE ARGUMENT TABLE.
  1637. *
  1638. * THE FOLLOWING ARGUMENT TABLES APPLY -
  1639. * *TMRA*, LENGTH *TMRAL* *MFL* AND *RFL* ARGUMENTS
  1640. * *TPRA*, LENGTH *TPRAL* *PROTECT* ARGUMENTS
  1641. * *TSTJ*, LENGTH *TSTJL* *SETJOB* ARGUMENTS
  1642.  
  1643.  
  1644. TCKAL MAX TMRAL,TPRAL,TSTJL
  1645. TCKA BSSZ TCKAL CRACKED ARGUMENT VALUES
  1646. TITLE COMMON DECKS.
  1647. * COMMON DECKS.
  1648.  
  1649.  
  1650. *CALL COMCARG
  1651. *CALL COMCARM
  1652. *CALL COMCCPA
  1653. *CALL COMCCDD
  1654. *CALL COMCCIO
  1655. *CALL COMCCPM
  1656. *CALL COMCDXB
  1657. *CALL COMCLFM
  1658. *CALL COMCMVE
  1659. *CALL COMCPOP
  1660. *CALL COMCSNM
  1661. *CALL COMCSYS
  1662. *CALL COMCUPC
  1663. *CALL COMCUSB
  1664. SPACE 4,10
  1665. USE //
  1666. SPACE 4,10
  1667. ** BUFFERS.
  1668.  
  1669.  
  1670. SBUFL EQU 15 SCRATCH BUFFER LENGTH
  1671.  
  1672. ABUF EQU * ARGUMENT STRING BUFFER
  1673. SBUF EQU ABUF+200 SCRATCH BUFFER
  1674. RFL= EQU SBUF+SBUFL+8 ALLOW FOR READ AHEAD IN COMMON DECKS
  1675. SPACE 4,10
  1676. ** QAC PARAMETER BLOCK STORAGE.
  1677.  
  1678.  
  1679. TALT EQU * *QAC* ALTER REQUEST BLOCK
  1680. TPEK EQU TALT+QALTL *QAC* PEEK REQUEST BLOCK
  1681. MSGA EQU TPEK+QPEKL MESSAGE BUFER
  1682. MSGAE EQU MSGA+9
  1683. PBUF EQU MSGAE PEEK BUFFER
  1684. PBUFE EQU SBUF
  1685.  
  1686. ERRNG CTFL*100B-RFL= CHANGE *CTFL* DEFINITION IN *COMSZOL*
  1687. SPACE 4
  1688. END