Table of Contents

0VJ

Table Of Contents

  • [00008] 0VJ - VERIFY JOB/USER COMMANDS.
  • [00010] VERIFY JOB AND USER COMMANDS.
  • [00174] MACRO DEFINITIONS.
  • [00176] JCARG - JOB COMMAND ARGUMENT TABLE ENTRY MACRO.
  • [00219] PARAM - DEFINE *0VJ*/*0VU* INTERFACE PARAMETER.
  • [00254] SCLASS - DEFINE SERVICE CLASS TABLE.
  • [00278] UCARG - USER COMMAND ARGUMENT TABLE ENTRY MACRO.
  • [00332] MAIN ROUTINE.
  • [00334] RVJ - MAIN ROUTINE.
  • [00341] VUN - VALIDATE USER NAME.
  • [00386] EVU - EXECUTE *0VU*.
  • [00408] VALIDATE JOB COMMAND.
  • [00410] VJC - VALIDATE JOB COMMAND.
  • [00453] JOB COMMAND PROCESSOR.
  • [00455] JCP - JOB COMMAND PROCESSOR.
  • [00588] TJCP - TABLE OF JOB COMMAND ARGUMENT PROCESSORS.
  • [00614] JOB COMMAND ARGUMENT PROCESSORS.
  • [00616] AAL - ASSEMBLE ACCESS LEVEL.
  • [00643] AEF - ASSEMBLE EXTENDED MEMORY FIELD LENGTH.
  • [00676] AFL - ASSEMBLE CM FIELD LENGTH.
  • [00709] AJN - ASSEMBLE JOB NAME.
  • [00741] AST - ASSEMBLE ST (DESTINATION LID).
  • [00774] ASV - ASSEMBLE SERVICE CLASS.
  • [00830] ATL - ASSEMBLE TIME LIMIT.
  • [00852] USER COMMAND PROCESSOR.
  • [00854] UCP - USER COMMAND PROCESSOR.
  • [00941] TUCP - TABLE OF USER COMMAND PARAMETERS.
  • [00970] SUBROUTINES.
  • [00972] AUA - ASSEMBLE *USER* COMMAND ARGUMENTS.
  • [01050] ASD - ASSEMBLE DIGITS.
  • [01182] CTS - CHECK FOR TERMINATOR OR SEPARATOR.
  • [01214] CVS - CHECK FOR VALID SERVICE CLASS.
  • [01237] TCVS - TABLE OF ALLOWED SERVICE CLASS MNEMONICS.
  • [01246] DPW - DELETE PASSWORD FROM INPUT FILE.
  • [01307] ERR - PROCESS JOB COMMAND ERROR.
  • [01331] GNC - GET NEXT NONBLANK CHARACTER.
  • [01360] ISS - INITIALIZE SYSTEM SECTOR.
  • [01416] PAC - PACK CHARACTER STRING.
  • [01463] UCS - UNPACK COMMAND TO STRING BUFFER.
  • [01542] PRESET.
  • [01544] PRS - PRESET.

Source Code

0VJ.txt
  1. IDENT 0VJ,/REL/RVJX
  2. PERIPH J
  3. BASE MIXED
  4. SST
  5. QUAL$ EQU 1
  6. *COMMENT 0VJ - VERIFY JOB/USER COMMANDS.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. TITLE 0VJ - VERIFY JOB/USER COMMANDS.
  9. SPACE 4,10
  10. *** 0VJ - VERIFY JOB AND USER COMMANDS.
  11. * R. A. JAPS. 75/06/24.
  12. * P. C. SMITH. 83/02/11.
  13. SPACE 4,10
  14. *** *0VJ* PROCESSES JOB AND USER COMMANDS FOR AN INPUT PROCESSOR.
  15. *
  16. * THE JOB COMMAND MAY HAVE TWO FORMATS.
  17. *
  18. * THE FIRST FORMAT IS ORDER DEPENDENT. IT IS -
  19. * UJN,SVC,TL,CMFL,ECFL,LID,AL.
  20. * UJN = USER JOB NAME.
  21. * SVC = SERVICE CLASS.
  22. * TL = TIME LIMIT.
  23. * CMFL = CENTRAL MEMORY FIELD LENGTH.
  24. * ECFL = EXTENDED MEMORY FIELD LENGTH.
  25. * LID = LOGICAL ID OF THE MF THE JOB IS TO RUN ON.
  26. * AL = MAXIMUM ACCESS LEVEL THAT JOB MAY RUN WITH.
  27. *
  28. * THE SECOND FORMAT IS NOT ORDER DEPENDENT EXCEPT THAT THE
  29. * JOBNAME MUST APPEAR FIRST. SERVICE CLASS IS DENOTED BY
  30. * *SC* OR *P*, TIME LIMIT BY *T*, CM FIELD LENGTH BY *CM*,
  31. * EM FIELD LENGTH BY *EC*, LID BY *ST*, AND ACCESS LEVEL
  32. * BY *AL*. THESE SYMBOLS MUST PRECEDE THE VALUE.
  33. * FOR CLARITY, IT IS RECOMMENDED THAT THE SYMBOL AND
  34. * THE VALUE BE SEPARATED BY AN EQUAL SIGN (ALTHOUGH
  35. * THIS IS NOT REQUIRED).
  36. *
  37. * THE FORMATS OF THE ARGUMENTS ARE AS FOLLOWS -
  38. *
  39. * JOB NAME - 1 TO 7 ALPHA-NUMERIC CHARACTERS, BEGINNING WITH
  40. * A LETTER.
  41. *
  42. * SERVICE CLASS - TWO ALPHANUMERIC CHARACTERS OR A PRIORITY
  43. * LEVEL NUMBER IN THE RANGE 0 - 7. SERVICE CLASS IS
  44. * DENOTED BY *SC* OR *P*. IF *SC* IS USED, THE
  45. * FOLLOWING VALUES ARE ALLOWED.
  46. * SY SYSTEM
  47. * BC BATCH
  48. * RB REMOTE BATCH
  49. * TS INTERACTIVE
  50. * DI DETACHED INTERACTIVE
  51. * NS NETWORK SUPERVISOR
  52. * MA MAINTENANCE
  53. * CT COMMUNICATION TASK
  54. * I0 INSTALLATION CLASS 0
  55. * I1 INSTALLATION CLASS 1
  56. * I2 INSTALLATION CLASS 2
  57. * I3 INSTALLATION CLASS 3
  58. * IF *P* IS SPECIFIED, THE SERVICE CLASS DEFINED FOR
  59. * THAT PRIORITY LEVEL BY THE SITE (VIA THE *PCLASS*
  60. * COMMAND OR IPRDECK ENTRY) WILL BE USED.
  61. *
  62. * TIME LIMIT - A NUMBER FROM 1 - 262143D (777777B).
  63. * VALUES FROM 32,767D TO 262,143D ARE FORCED
  64. * TO AN UNLIMITED AMOUNT.
  65. *
  66. * FIELD LENGTH - A NUMBER FROM 1 - MAXIMUM SIZE ALLOWED.
  67. * THIS VALUE DEPENDS ON THE ACTUAL SIZE OF CENTRAL
  68. * MEMORY OR THE AMOUNT OF EM AVAILABLE. THE VALUE OF
  69. * CENTRAL MEMORY WILL BE ROUNDED TO THE NEXT HIGHER
  70. * MULTIPLE OF 100B. THE EM MEMORY VALUE IS 5 DIGITS
  71. * OR LESS AND REPRESENTS THE NUMBER OF 1000B WORD BLOCKS.
  72. *
  73. * LID - A 3 CHARACTER LID THAT IDENTIFIES WHAT MAINFRAME
  74. * THIS JOB SHOULD RUN ON.
  75. *
  76. * ACCESS LEVEL - A 1- TO 7-CHARACTER NAME (AS DEFINED IN
  77. * *COMSMLS*) FOR THE MAXIMUM ACCESS LEVEL THE JOB
  78. * WILL BE ALLOWED TO RUN AT. THE USER MUST BE
  79. * VALIDATED TO RUN AT THE SPECIFIED ACCESS LEVEL,
  80. * AND THAT LEVEL MUST BE VALID FOR THE SYSTEM
  81. * AND FOR THE JOB ORIGIN TYPE. IF NO ACCESS LEVEL
  82. * IS SPECIFIED, THE JOB WILL ONLY BE ALLOWED TO
  83. * RUN AT ONE ACCESS LEVEL, AND THAT LEVEL WILL BE
  84. * THE USER-S LOWEST VALIDATED ACCESS LEVEL THAT
  85. * IS ALSO VALID FOR THE SYSTEM AND FOR THE JOB
  86. * ORIGIN TYPE.
  87. *
  88. * THE DEFAULT BASE FOR THE TIME ARGUMENT IS DECIMAL,
  89. * FOR THE FIELD LENGTHS IT IS OCTAL. A
  90. * POST-RADIX OF *B* OR *D* MUST BE SPECIFIED TO ENTER
  91. * A NUMBER WHICH IS NOT IN THE DEFAULT BASE. PRESENCE OF AN
  92. * 8 OR 9 WILL DEFAULT TO DECIMAL. PRESENCE OF AN 8 OR 9
  93. * ALONG WITH A POST-RADIX OF *B* WILL RESULT IN AN ERROR.
  94. * ALL FIELDS MUST BE SEPARATED BY ONE OF THE FOLLOWING
  95. * CHARACTERS:
  96. * +-*/=,($
  97. * THE JOB COMMAND TERMINATES WITH *)* OR *.*
  98. * EMBEDDED SPACES ARE ALLOWED, AND ANY CHARACTER MAY APPEAR
  99. * IN THE COMMENTS FIELD AFTER THE TERMINATOR.
  100. *
  101. * ASSEMBLY CONSTANTS ARE PROVIDED FOR DEFAULT ARGUMENTS.
  102. * THESE VALUES ARE TL=64D, CM=377700B, EC=7777000B.
  103. * THEY ARE DEFINED IN COMMON DECK *COMSJCE*.
  104. *
  105. * THE USER DEFAULT SERVICE CLASS FOR THE ORIGIN TYPE OF THE
  106. * JOB IS USED IF NO *SC* OR *P* ARGUMENT IS SELECTED.
  107. SPACE 4,10
  108. *** ENTRY CONDITIONS.
  109. *
  110. *
  111. * (CN) = FWA OF STATEMENT BUFFER.
  112. * (CN+1) = ATTRIBUTES OF DESTINATION LID.
  113. * (CN+1) = 0 IF DESTINATION LID NOT ALREADY SPECIFIED.
  114. * (CN+2) = 1/N, 1/E, 1/S, 1/D, 5/, 3/AL
  115. * N = NO PASSWORD VALIDATION REQUIRED.
  116. * E = VALIDATE ENCRYPTED PASSWORD (FROM *EPSS*).
  117. * S = JOB WILL BE SYSTEM ORIGIN.
  118. * D = DO NOT DELETE PASSWORD FROM BUFFER.
  119. * AL = ACCESS LEVEL OF LOCAL FILE TO BECOME JOB.
  120. * (OT) = ORIGIN TYPE.
  121. SPACE 4,10
  122. *** EXIT CONDITIONS.
  123. *
  124. *
  125. * (A) .LT. 0 IF VALIDATION FILE DEVICE INACCESSIBLE.
  126. * (T5) = EST ORDINAL OF VALIDATION FILE DEVICE IF INACCESSIBLE.
  127. *
  128. * JOB COMMAND ARGUMENTS SET IN SYSTEM SECTOR BUFFER.
  129. * JOB COMMAND ERROR IS SET IN SYSTEM SECTOR BUFFER (JASS).
  130. * IDIE = ILLEGAL LID SPECIFIED VIA *ST*.
  131. * JCIE = JOB COMMAND ERROR.
  132. * SCIE = INVALID SERVICE CLASS.
  133. * STIE = *ST* SPECIFIED AND USER NOT VALIDATED.
  134. * UCIE = USER SECURITY COUNT EXHAUSTED.
  135. * UNIE = USER NAME/PASSWORD NOT VALID.
  136. * USIE = UNDEFINED SERVICE CLASS.
  137. * (CN) = ATTRIBUTES OF DESTINATION LID, IF SPECIFIED.
  138. * (CN+1) = USER DEFAULT SERVICE CLASS FOR ORIGIN TYPE
  139. * OF INPUT FILE.
  140. * (CN+2 - CN+4) = SERVICE CLASS VALIDATION MASK FOR USER.
  141. * USER/ACCOUNT COMMAND INFORMATION SET IN SYSTEM SECTOR.
  142. * SERVICE CLASS SET IN QFT ENTRY IN SYSTEM SECTOR.
  143. * (JF) = INITIAL JOB FIELD LENGTH.
  144. * (JE) = INITIAL EM JOB FIELD LENGTH/*UEBS*.
  145. * (ER) = ERROR STATUS.
  146. * 0 = NO ERROR ENCOUNTERED.
  147. * 1 = JOB COMMAND ERROR.
  148. * 3 = USER COMMAND ERROR.
  149. *
  150. * NOTES *JOB COMMAND ERROR* STATUS WILL NEVER BE RETURNED
  151. * IF THE JOB IS DESTINED FOR A NON-HOST LID.
  152. *
  153. * IF BOTH A USER COMMAND ERROR AND A JOB COMMAND ERROR
  154. * ARE ENCOUNTERED, *USER COMMAND ERROR* STATUS WILL BE
  155. * RETURNED UNLESS THE JOB COMMAND ERROR CODE IS
  156. * *INVALID LID*.
  157. *
  158. * WHEN VALIDATING THE USER COMMAND, THE PASSWORD ON THE
  159. * USER COMMAND WILL BE VALIDATED EXCEPT IN THE FOLLOWING
  160. * CASES -
  161. *
  162. * 1) IF THE *DO NOT VALIDATE PASSWORD* BIT IS SET, THE
  163. * PASSWORD WILL NOT BE VALIDATED.
  164. *
  165. * 2) IF THE *VALIDATE ENCRYPTED PASSWORD* BIT IS SET,
  166. * THE PASSWORD ON THE USER COMMAND WILL BE VALIDATED
  167. * IF IT EXISTS; OTHERWISE THE ENCRYPTED PASSWORD
  168. * WILL BE VALIDATED.
  169. SPACE 4,10
  170. ** CALLS.
  171. *
  172. * 0AV - ACCOUNT VALIDATION.
  173. * 0VU - VALIDATE USER AND JOB.
  174. TITLE MACRO DEFINITIONS.
  175. JCARG SPACE 4,15
  176. ** JCARG - JOB COMMAND ARGUMENT TABLE ENTRY MACRO.
  177. *
  178. * JCARG A,B,C,D,E
  179. *
  180. * ENTRY A = JOB COMMAND ARGUMENT.
  181. * B = PROCESSOR ADDRESS.
  182. * C = MAXIMUM NUMBER OF DIGITS PLUS ONE.
  183. * D = MAXIMUM DECIMAL VALUE ALLOWED.
  184. * E = DEFAULT BASE.
  185. * *DECIMAL* = DECIMAL BASE.
  186. * OTHER = OCTAL BASE.
  187.  
  188.  
  189. PURGMAC JCARG
  190. JCARG MACRO A,B,C,D,E
  191. .1 MICRO 1,2,$A$
  192. .2 MICCNT .1
  193. .3 DECMIC .2,1
  194. CON ".3"_R_A
  195. CON B
  196. CON C
  197. VFD 24/D
  198. .A IFC EQ,$E$DECIMAL$
  199. CON 1
  200. .A ELSE
  201. CON 0
  202. .A ENDIF
  203. .A IFEQ .2,2
  204. .1 MICRO 1,1,$A$
  205. .3 MICRO 2,1,$A$
  206. .1 MICRO 1,2,$".3"".1"$
  207. .2 MICCNT NMSC
  208. DUP .2/2
  209. .2 SET .2-2
  210. .3 MICRO .2+1,2,$"NMSC"$
  211. .B IFC EQ,$".1"$".3"$
  212. ERR JOB COMMAND KEYWORD/SERVICE CLASS CONFLICT (*".1"*).
  213. STOPDUP
  214. .B ENDIF
  215. ENDD
  216. .A ENDIF
  217. ENDM
  218. PARAM SPACE 4,10
  219. ** PARAM - DEFINE *0VJ*/*0VU* INTERFACE PARAMETER.
  220. *
  221. * TAG PARAM NUM,VAL
  222. *
  223. * ENTRY TAG = SYMBOLIC NAME FOR LOCATION(S).
  224. * NUM = NUMBER OF LOCATIONS TO RESERVE.
  225. * (IF NUM = *FIRST*, INITIALIZE BLOCK;
  226. * IF NUM = *LAST*, TERMINATE BLOCK.)
  227. * VAL = VALUE TO PRESET LOCATION(S) WITH.
  228.  
  229.  
  230. PURGMAC PARAM
  231.  
  232. MACRO PARAM,TAG,NUM,VAL
  233. .A IFC EQ,$VAL$$
  234. .B IFC EQ,$NUM$FIRST$
  235. TAG BSS 0
  236. .1 SET *
  237. .B ELSE
  238. .C IFC EQ,$NUM$LAST$
  239. TAG BSS 0
  240. ERRNZ OVL0-5-* PARAMETER BLOCK LOCATION ERROR
  241. ERRNZ .1+ZVPL-* PARAMETER BLOCK LENGTH ERROR
  242. .C ELSE
  243. ERR MISSING PARAMETER
  244. .C ENDIF
  245. .B ENDIF
  246. .A ELSE
  247. TAG BSS 0
  248. .D DUP NUM
  249. CON VAL
  250. .D ENDD
  251. .A ENDIF
  252. ENDM
  253. SCLASS SPACE 4,15
  254. ** SCLASS - DEFINE SERVICE CLASS TABLE.
  255. *
  256. * SCLASS NM,MN,DF,ST,TX
  257. *
  258. * ENTRY *NM* = SERVICE CLASS NAME.
  259. * *MN* = TWO CHARACTER MNEMONIC.
  260. * *DF* = DAYFILE MESSAGE CHARACTER.
  261. * *ST* = SHORT TEXT FOR *QFTLIST*.
  262. * *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE.
  263. *
  264. * NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
  265. * THIS MACRO.
  266.  
  267.  
  268. PURGMAC SCLASS
  269.  
  270. SCLASS MACRO NM,MN,DF,ST,TX
  271. .A IFC NE,$NM$SSSC$
  272. .SCL RMT
  273. INDEX NM,2R_MN TX
  274. .SCL RMT
  275. .A ENDIF
  276. SCLASS ENDM
  277. UCARG SPACE 4,10
  278. ** UCARG - USER COMMAND ARGUMENT TABLE ENTRY MACRO.
  279. *
  280. * UCARG A,B,C.
  281. *
  282. * ENTRY A = ARGUMENT KEYWORD.
  283. * B = ADDRESS TO ASSEMBLE ARGUMENT.
  284. * C = * IF ASTERISK ALLOWED IN ARGUMENT.
  285.  
  286.  
  287. PURGMAC UCARG
  288. UCARG MACRO A,B,C
  289. LOCAL D
  290. VFD 12/0L_A
  291. CON B
  292. D SET 0
  293. IFC EQ,$C$*$,1
  294. D SET 1R*
  295. VFD 12/D
  296. UCARG ENDM
  297. SPACE 4,10
  298. * COMMON DECKS.
  299.  
  300.  
  301. *CALL COMPMAC
  302. *CALL COMPRLI
  303. *CALL COMSACC
  304. *CALL COMSCPS
  305. *CALL COMSDSP
  306. *CALL COMSJCE
  307. *CALL COMSMLS
  308. *CALL COMSPIM
  309. QUAL REM
  310. *CALL COMSREM
  311. QUAL *
  312. SCL$ EQU 0 ONLY PROCESS CLASSES WITH JCB-S
  313. *CALL COMSSCD
  314. *CALL COMSSSD
  315. *CALL COMSSSE
  316. *CALL COMSZOL
  317. SPACE 4,20
  318. **** DIRECT LOCATION ASSIGNMENTS.
  319.  
  320. T8 EQU 16 TEMPORARY STORAGE
  321. T9 EQU 17 TEMPORARY / ARGUMENT TABLE INDEX
  322. CA EQU 25 CHARACTER ADDRESS
  323. CN EQU 30 - 34 ASSEMBLE BUFFER (5 LOCATIONS)
  324. JF EQU 35 JOB FIELD LENGTH
  325. CB EQU 37 ADDRESS OF NEXT COMMAND IN BUFFER
  326. UN EQU 40 - 44 USER NUMBER (USED BY 0AV)
  327. JE EQU 45 JOB EM FIELD LENGTH/*UEBS*
  328. OT EQU 46 ORIGIN TYPE
  329. ER EQU 47 ERROR STATUS
  330.  
  331. ****
  332. TITLE MAIN ROUTINE.
  333. RVJ SPACE 4,10
  334. ** RVJ - MAIN ROUTINE.
  335.  
  336. ORG 5B
  337.  
  338. RVJ SUBR ENTRY/EXIT
  339. LJM PRS PRESET
  340. VUN SPACE 4,15
  341. ** VUN - VALIDATE USER NAME.
  342. *
  343. * ENTRY (UN - UN+4) = USER NAME.
  344. * (CN - CN+4) = FAMILY NAME.
  345. *
  346. * EXIT TO *EVU* IF VALIDATION FILE ACCESSIBLE.
  347. * TO *RVJX* IF VALIDATION FILE INACCESSIBLE.
  348. *
  349. * USES LA, T6, UN+4.
  350. *
  351. * CALLS EVU.
  352. *
  353. * MACROS EXECUTE.
  354.  
  355.  
  356. VUN BSS 0 ENTRY
  357.  
  358. * GET USER ACCOUNT BLOCK FOR SPECIFIED USER/FAMILY.
  359.  
  360. LDN 0 VALIDATE USER NAME
  361. STD UN+4
  362. LDC OVL0 SET LOAD ADDRESS
  363. RAD LA
  364. EXECUTE 0AV,*
  365. RJM. EXR
  366. MJN RVJX IF VALIDATION FILE INACCESSIBLE
  367. LDD T1 SET *0VU* PARAMETERS
  368. STM UIDX-OVL0
  369. LDD T2
  370. STM UIDX+1-OVL0
  371. LDD T4
  372. STM SPUI-OVL0
  373. LDD T6
  374. STM USCT-OVL0
  375. LDD T3 SET USER BLOCK ADDRESS
  376. STM VUNA-OVL0
  377. LDC 5*ARBS-1 COPY USER BLOCK TO BUFFER
  378. STD T6
  379. VUN1 LDM. *,T6
  380. VUNA EQU *-1
  381. STM UBUF,T6
  382. SOD T6
  383. PJN VUN1 IF MORE BYTES TO MOVE
  384. * UJN EVU EXIT TO *0VU*
  385. EVU SPACE 4,10
  386. ** EVU - EXECUTE *0VU*.
  387. *
  388. * EXIT TO *0VU*.
  389.  
  390.  
  391. EVU BSS 0 ENTRY
  392. EXECUTE 0VU,* VALIDATE USER AND JOB
  393. RJM. EXR
  394. * LJM RVJX RETURN TO CALLER DIRECTLY FROM *0VU*
  395. SPACE 4,10
  396. LIST X
  397. *CALL COMS0VU
  398. LIST *
  399. SPACE 4,10
  400. * OVERLAY/BUFFER ADDRESS ALLOCATION.
  401.  
  402.  
  403. OVL0 EQU *+5 *0AV*/*0VU* LOAD ADDRESS
  404. UBUF EQU ZVJL-ARBS*5 USER BLOCK BUFFER FOR *0AV*/*0VU*
  405.  
  406. ERRNG UBUF-OVL0-ZAVL *0AV* OVERFLOWS INTO *UBUF*
  407. ERRNG UBUF-OVL0-ZVUL *0VU* OVERFLOWS INTO *UBUF*
  408. TITLE VALIDATE JOB COMMAND.
  409. VJC SPACE 4,10
  410. ** VJC - VALIDATE JOB COMMAND.
  411. *
  412. * EXIT TO *VUN* IF NO ERROR IN *USER* COMMAND.
  413. * TO *EVU* IF ERROR IN *USER* COMMAND.
  414. *
  415. * USES CB.
  416. *
  417. * CALLS DPW, EVU, ISS, JCP, UCP, UCS, VUN.
  418.  
  419.  
  420. VJC BSS 0 ENTRY
  421.  
  422. * UNPACK JOB COMMAND.
  423.  
  424. LDD CN
  425. STD CB
  426. RJM UCS UNPACK JOB COMMAND
  427. NJN VJC1 IF NO ERROR
  428. AOM JCEF FLAG ERROR
  429.  
  430. * PROCESS JOB COMMAND.
  431.  
  432. VJC1 RJM JCP PROCESS JOB COMMAND ARGUMENTS
  433.  
  434. * INITIALIZE SYSTEM SECTOR.
  435.  
  436. RJM ISS INITIALIZE SYSTEM SECTOR
  437.  
  438. * UNPACK AND CRACK USER COMMAND.
  439.  
  440. RJM UCS UNPACK USER COMMAND
  441. ZJN VJC4 IF ERROR IN USER COMMAND
  442. RJM UCP PROCESS USER COMMAND
  443. ZJN VJC4 IF ERROR
  444. RJM DPW DELETE PASSWORD FROM INPUT FILE
  445. VJC3 LJM VUN VALIDATE USER NAME
  446.  
  447. * PROCESS ERROR IN *USER* COMMAND.
  448.  
  449. VJC4 AOM UCNV SET *USER* NOT VALID
  450. LDC OVL0 SET *0VU* LOAD ADDRESS
  451. RAD LA
  452. LJM EVU-OVL0 EXIT TO CALL *0VU*
  453. TITLE JOB COMMAND PROCESSOR.
  454. JCP SPACE 4,20
  455. ** JCP - JOB COMMAND PROCESSOR.
  456. *
  457. * ENTRY (CA) = FWA OF CHARACTER STRING.
  458. * (JF) = JOB FIELD LENGTH.
  459. * (JE) = JOB EM FIELD LENGTH.
  460. *
  461. * EXIT (JF) = JOB FIELD LENGTH
  462. * (JE) = JOB EM FIELD LENGTH.
  463. *
  464. * USES LA, T9, CM - CM+4.
  465. *
  466. * CALLS AEF, AFL, AJN, AST, ASV, ATL, CTS, CVS, ERR, GNC.
  467.  
  468.  
  469. JCP SUBR ENTRY/EXIT
  470. LDN ZERL CLEAR JOBNAME BUFFER
  471. CRM. JNSS,ON
  472. RJM AJN ASSEMBLE JOB NAME
  473. RJM CTS CHECK FOR TERMINATOR
  474. MJN JCPX IF TERMINATOR
  475. LDN 0 PRESET TABLE INDEX
  476. STD T9
  477. RJM GNC GET FIRST ARGUMENT CHARACTER
  478. MJN JCPX IF TERMINATOR
  479. ZJN JCP5 IF SEPARATOR
  480. SBN 1R0
  481. PJN JCP5 IF NUMBER (ORDER DEPENDENT JOB COMMAND)
  482. LDD CA SAVE ARGUMENT FWA
  483. STD CM+4
  484. LDI CA CHECK FOR POSSIBLE SERVICE CLASS
  485. SHN 6
  486. STD CM
  487. RJM GNC GET NEXT CHARACTER
  488. MJN JCP2 IF TERMINATOR (NOT SERVICE CLASS)
  489. ZJN JCP2 IF SEPARATOR (NOT SERVICE CLASS)
  490. RAD CM
  491. RJM GNC GET NEXT CHARACTER
  492. MJN JCP1 IF TERMINATOR (POSSIBLE SERVICE CLASS)
  493. NJN JCP2 IF NOT SEPARATOR (NOT SERVICE CLASS)
  494. JCP1 RJM CVS CHECK FOR VALID SERVICE CLASS
  495. ZJN JCP4 IF ORDER DEPENDENT (VALID SERVICE CLASS)
  496. JCP2 LDD CM+4 RESET ARGUMENT ADDRESS
  497. STD CA
  498. LJM JCP9 PROCESS ORDER INDEPENDENT
  499.  
  500. * PROCESS ORDER DEPENDENT ARGUMENTS.
  501.  
  502. JCP3 RJM ERR SET ERROR STATUS
  503. UJP JCPX RETURN
  504.  
  505. JCP4 LDD CM+4 RESET ARGUMENT ADDRESS
  506. STD CA
  507. JCP5 LDM TJCP+1,T9
  508. ZJN JCP3 IF END OF TABLE (TOO MANY ARGUMENTS)
  509. STM JCPB SET PROCESSOR ADDRESS
  510. RJM CTS CHECK FOR SEPARATOR
  511. ZJN JCP6 IF SEPARATOR (NULL ARGUMENT)
  512. LDC. TJCP+2 SET LIMITS
  513. ADD T9
  514. STM JCPA
  515. LDD MA
  516. CWM TJCP+2,ON
  517. JCPA EQU *-1
  518. SBN 1
  519. CRD CM
  520. RJM * PROCESS ARGUMENT
  521. JCPB EQU *-1
  522. RJM CTS CHECK FOR TERMINATOR
  523. MJP JCPX IF TERMINATOR
  524. JCP6 RJM GNC SKIP SEPARATOR
  525. LDN TJCPE INCREMENT INDEX
  526. RAD T9
  527. UJN JCP5 PROCESS NEXT ARGUMENT
  528.  
  529. * PROCESS ORDER INDEPENDENT ARGUMENTS.
  530.  
  531. JCP7 RJM ERR SET ERROR / SKIP TO END OF ARGUMENT
  532. JCP8 LDN 0 PROCESS NEXT ARGUMENT
  533. STD T9
  534. RJM CTS CHECK FOR TERMINATOR
  535. MJP JCPX IF TERMINATOR
  536. RJM GNC SKIP SEPARATOR
  537. JCP9 LDI CA ASSEMBLE ARGUMENT MNEMONIC
  538. STD CM
  539. RJM GNC
  540. MJN JCP7 IF TERMINATOR
  541. SHN 6
  542. RAD CM
  543. JCP10 LDM TJCP,T9
  544. ZJN JCP12 IF ARGUMENT NOT FOUND IN TABLE
  545. LMD CM
  546. ZJN JCP13 IF TWO-CHARACTER ARGUMENT FOUND
  547. LDD CM
  548. LPN 77
  549. LMM TJCP,T9
  550. ZJN JCP14 IF ONE-CHARACTER ARGUMENT FOUND
  551. LDN TJCPE INCREMENT INDEX
  552. RAD T9
  553. UJN JCP10 CHECK NEXT ARGUMENT IN TABLE
  554.  
  555. JCP11 UJP JCP7 PROCESS ERROR
  556.  
  557. JCP12 LDC 2RCS CHECK FOR *SC* IF UNKNOWN ARGUMENT FOUND
  558. LMD CM
  559. NJN JCP11 IF UNKNOWN ARGUMENT NOT *SC*
  560. STD T9 SET TABLE INDEX FOR *P* ARGUMENT
  561. LDM TJCP,T9
  562. LMC 7777
  563. ZJN JCP11 IF *P* OR *SC* ALREADY SPECIFIED
  564. JCP13 RJM GNC GET FIRST CHARACTER OF ARGUMENT VALUE
  565. JCP14 RJM CTS CHECK FOR EQUIVALENCED ARGUMENT
  566. MJN JCP11 IF TERMINATOR
  567. NJN JCP15 IF NOT SEPARATOR
  568. LDI CA
  569. LMN 1R=
  570. NJN JCP11 IF SEPARATOR OTHER THAN EQUAL SIGN
  571. RJM GNC SKIP EQUAL SIGN
  572. JCP15 LDM TJCP+1,T9
  573. STM JCPD
  574. LDC. TJCP+2 SET LIMITS
  575. ADD T9
  576. STM JCPC
  577. LDD MA
  578. CWM TJCP+2,ON
  579. JCPC EQU *-1
  580. SBN 1
  581. CRD CM
  582. LCN 0 SET ARGUMENT PROCESSED
  583. STM TJCP,T9
  584. RJM * PROCESS ARGUMENT
  585. JCPD EQU *-1
  586. LJM JCP8 PROCESS NEXT ARGUMENT
  587. TJCP SPACE 4,30
  588. ** TJCP - TABLE OF JOB COMMAND ARGUMENT PROCESSORS.
  589. *
  590. *T 12/MN
  591. *T, 12/ADDR
  592. *T, 12/DIGITS
  593. *T, 24/VALUE
  594. *T, 12/BASE
  595. *
  596. * MN = MNEMONIC.
  597. * ADDR = ADDRESS.
  598. * DIGITS = MAXIMUM NUMBER OF DIGITS PLUS ONE.
  599. * VALUE = MAXIMUM DECIMAL VALUE.
  600. * BASE = BASE FOR CONVERSION.
  601. * 0 = OCTAL.
  602. * 1 = DECIMAL.
  603.  
  604.  
  605. TJCP BSS 0
  606. JCARG P,ASV,3,7 SERVICE CLASS
  607. TJCPE EQU *-TJCP LENGTH OF ENTRY
  608. JCARG T,ATL,6,32760D,DECIMAL JOB TIME LIMIT PROCESSOR
  609. JCARG MC,AFL,7,131008D JOB FL PROCESSOR
  610. JCARG CE,AEF,6,32760D JOB EM FL PROCESSOR
  611. JCARG TS,AST,4,0 LID PROCESSOR
  612. JCARG LA,AAL,10B,0 ACCESS LEVEL PROCESSOR
  613. CON 0,0 END OF TABLE
  614. TITLE JOB COMMAND ARGUMENT PROCESSORS.
  615. AAL SPACE 4,15
  616. ** AAL - ASSEMBLE ACCESS LEVEL.
  617. *
  618. * ENTRY (CA) = CHARACTER ADDRESS.
  619. *
  620. * EXIT (SCAL - SCAL+4) = ACCESS LEVEL STRING. VALIDATION
  621. * WILL BE DONE IN *0VU*.
  622. *
  623. * USES T1, CM - CM+4.
  624. *
  625. * CALLS ERR, PAC.
  626.  
  627.  
  628. AAL1 RJM ERR SET ERROR STATUS
  629.  
  630. AAL SUBR ENTRY/EXIT
  631. LDN 1R* ALLOW ASTERISK IN ACCESS LEVEL
  632. STD T1
  633. LDN ZERL CLEAR BUFFER
  634. CRD CM
  635. LDN CM GET ACCESS LEVEL STRING
  636. RJM PAC
  637. ZJN AAL1 IF INCORRECT ACCESS LEVEL STRING
  638. LDD MA SAVE ACCESS LEVEL
  639. CWD CM
  640. CRM SCAL,ON
  641. UJN AALX RETURN
  642. AEF SPACE 4,20
  643. ** AEF - ASSEMBLE EXTENDED MEMORY FIELD LENGTH.
  644. *
  645. * ENTRY (CA) = CHARACTER ADDRESS.
  646. * (CM) = MAXIMUM NUMBER OF DIGITS PLUS ONE.
  647. * (CM+1 - CM+2) = MAXIMUM DECIMAL VALUE.
  648. * (CM+3) = BASE FOR CONVERSION.
  649. * (AEFC) = MAXIMUM EM FL/*UEBS*.
  650. *
  651. * EXIT (JE) = EM FIELD LENGTH/*UEBS*.
  652. *
  653. * USES JE.
  654. *
  655. * CALLS ASD, ERR.
  656.  
  657.  
  658. AEF SUBR ENTRY/EXIT
  659. RJM ASD ASSEMBLE DIGITS
  660. MJN AEFX IF ERROR IN ASSEMBLY
  661. AEFA ADN 0
  662. * ADN 17 (ROUND UP TO BLOCKING FACTOR)
  663. AEFB SHN 0
  664. * SHN -UESC
  665. STD JE
  666. LDC * GET MAXIMUM EM FIELD LENGTH
  667. AEFC EQU *-1 (MAXIMUM EM FL)
  668. SBD JE
  669. MJN AEF1 IF INSUFFICIENT ROOM
  670. LDC 3777
  671. SBD JE
  672. PJN AEFX IF FLE .LT. 3777B *UEBS* BLOCKS
  673. AEF1 RJM ERR SET ERROR STATUS
  674. UJN AEFX RETURN
  675. AFL SPACE 4,15
  676. ** AFL - ASSEMBLE CM FIELD LENGTH.
  677. *
  678. * ENTRY (CA) = CHARACTER ADDRESS.
  679. * (CM) = MAXIMUM NUMBER OF DIGITS PLUS ONE.
  680. * (CM+1 - CM+2) = MAXIMUM DECIMAL VALUE.
  681. * (CM+3) = BASE FOR CONVERSION.
  682. * (AFLA) = MAXIMUM CM FL / 100B.
  683. *
  684. * EXIT (JF) = FIELD LENGTH ROUNDED UP TO NEXT MULTIPLE OF 100.
  685. * (CA) = CHARACTER ADDRESS.
  686. *
  687. * USES JF.
  688. *
  689. * CALLS ASD, ERR.
  690.  
  691.  
  692. AFL SUBR ENTRY/EXIT
  693. RJM ASD ASSEMBLE DIGITS
  694. MJN AFLX IF ERROR IN ASSEMBLY
  695. ZJN AFL1 IF ZERO
  696. ADN 77 ROUND TO NEXT 100
  697. SHN -6 SET FIELD LENGTH
  698. STD JF
  699. LDC * GET MAXIMUM FIELD LENGTH
  700. AFLA EQU *-1 (MAXIMUM CM FL)
  701. SBD JF
  702. MJN AFL1 IF INSUFFICIENT ROOM
  703. LDC 3777-MNFL
  704. SBD JF
  705. PJN AFLX IF FL .LT. 377700
  706. AFL1 RJM ERR SET ERROR STATUS
  707. UJN AFLX RETURN
  708. AJN SPACE 4,10
  709. ** AJN - ASSEMBLE JOB NAME.
  710. *
  711. * ENTRY (CA) = CHARACTER ADDRESS.
  712. *
  713. * EXIT (JNSS - JNSS+3) = JOB COMMAND NAME (USER JOB NAME).
  714. * (CA) = CHARACTER ADDRESS.
  715. *
  716. * CALLS ERR, PAC.
  717.  
  718.  
  719. * PROCESS BAD UJN.
  720.  
  721. AJN3 LDN ZERL SET SPECIAL UJN
  722. CRM. JNSS,ON
  723. LDC 2RXX
  724. STM. JNSS
  725. STM. JNSS+1
  726. RJM ERR SET ERROR STATUS
  727.  
  728. AJN SUBR ENTRY/EXIT
  729. LDN 0
  730. STD T1
  731. LDC JNSS ASSEMBLE JOB COMMAND NAME
  732. RJM PAC
  733. ZJN AJN3 IF TOO MANY CHARACTERS
  734. AJN2 LDM. JNSS CHECK FIRST CHARACTER
  735. SHN -6
  736. ZJN AJN3 IF NO CHARACTER
  737. SBN 1R+
  738. MJN AJNX IF ALPHANUMERIC
  739. UJN AJN3 PROCESS BAD UJN
  740. AST SPACE 4,15
  741. ** AST - ASSEMBLE ST (DESTINATION LID).
  742. *
  743. * ENTRY (CA) = CHARACTER ADDRESS.
  744. *
  745. * EXIT (DLID - DLID+1) = LID.
  746. *
  747. * USES T1, CM - CM+4.
  748. *
  749. * CALLS ERR, PAC.
  750.  
  751.  
  752. AST2 LDN 10-3 LID MUST BE 3 CHARACTERS LONG
  753. SBD T3
  754. NJN AST1 IF ILLEGAL LENGTH
  755. LDD CM+1 STORE LID
  756. SCN 77
  757. STM DLID+1
  758. LDD CM
  759. STM DLID
  760.  
  761. AST SUBR
  762. LDN 0 DO NOT ALLOW ASTERISK IN LID
  763. STD T1
  764. LDN ZERL CLEAR BUFFER
  765. CRD CM
  766. LDN CM
  767. RJM PAC PACK LOGICAL ID
  768. NJN AST2 IF OK
  769. AST1 LDN IDIE SET *ILLEGAL LID* ERROR CODE
  770. STM JCEC
  771. RJM ERR SET ERROR STATUS
  772. UJN ASTX RETURN
  773. ASV SPACE 4,15
  774. ** ASV - ASSEMBLE SERVICE CLASS.
  775. *
  776. * ENTRY (CA) = CHARACTER ADDRESS.
  777. *
  778. * EXIT (JCSC) = SERVICE CLASS SELECTED ON JOB COMMAND.
  779. * (JCSC) = 0, IF NO SERVICE CLASS SPECIFIED.
  780. *
  781. * USES T1, T2, CM - CM+4.
  782. *
  783. * CALLS CVS, ERR, PAC.
  784.  
  785.  
  786. ASV4 RJM ERR SET ERROR STATUS
  787. LDK USIE SET UNDEFINED SERVICE CLASS ERROR CODE
  788. STM JCEC
  789.  
  790. ASV SUBR ENTRY/EXIT
  791. LDN ZERL CLEAR BUFFER
  792. CRD CM
  793. LDN 0 DO NOT ALLOW ASTERISK IN SERVICE CLASS
  794. STD T1
  795. LDN CM
  796. RJM PAC PACK CHARACTER STRING
  797. ZJN ASV4 IF ERROR
  798. LDN 10-2
  799. SBD T3
  800. ZJN ASV3 IF SERVICE CLASS SPECIFIED
  801. ADN 1
  802. NJN ASV4 IF NOT PRIORITY LEVEL SERVICE CLASS
  803. LDD CM
  804. SHN -6
  805. SBN 1R0
  806. ASV1 MJN ASV4 IF ALPHABETIC CHARACTER
  807. STD T1
  808. SBN 10
  809. PJN ASV4 IF INVALID PRIORITY LEVEL
  810. LDN 2
  811. STD T2
  812. LDK JBCP GET ADDRESS OF *SCT*
  813. CRD CM
  814. LDD CM GET PRIORITY LEVEL SERVICE CLASS
  815. SHN 14
  816. ADD CM+1
  817. ADN PLSC
  818. CRM SBUF,T2
  819. LDM SBUF,T1
  820. STD CM
  821. NJN ASV3 IF SERVICE CLASS SPECIFIED
  822. ASV2 STM JCSC SELECT USER DEFAULT
  823. UJP ASVX RETURN
  824.  
  825. ASV3 RJM CVS CHECK FOR VALID SERVICE CLASS
  826. MJN ASV1 IF NOT VALID
  827. LDD T2 SET SERVICE CLASS
  828. UJN ASV2 SET SERVICE CLASS
  829. ATL SPACE 4,10
  830. ** ATL - ASSEMBLE TIME LIMIT.
  831. *
  832. * ENTRY (CA) = CHARACTER ADDRESS.
  833. * (CM) = MAXIMUM NUMBER OF DIGITS PLUS ONE.
  834. * (CM+1 - CM+2) = MAXIMUM DECIMAL VALUE.
  835. * (CM+3) = BASE FOR CONVERSION.
  836. *
  837. * EXIT (JTSS - JTSS+1) = JOB STEP TIME LIMIT.
  838. *
  839. * CALLS ASD, ERR.
  840.  
  841.  
  842. ATL1 RJM ERR SET ERROR STATUS
  843.  
  844. ATL SUBR ENTRY/EXIT
  845. RJM ASD ASSEMBLE DIGITS
  846. MJN ATLX IF ERROR IN ASSEMBLY
  847. ZJN ATL1 IF ZERO TIME LIMIT SPECIFIED
  848. STM. JTSS+1 SET JOB STEP TIME LIMIT
  849. SHN -14
  850. STM. JTSS
  851. UJN ATLX RETURN
  852. TITLE USER COMMAND PROCESSOR.
  853. UCP SPACE 4,20
  854. ** UCP - USER COMMAND PROCESSOR.
  855. *
  856. * ENTRY USER COMMAND IN STRING BUFFER.
  857. * (CA) = FWA OF STRING BUFFER.
  858. *
  859. * EXIT (A) = 0, IF ERROR IN USER COMMAND.
  860. * (CN - CN+4) = FAMILY NAME.
  861. * (UN - UN+4) = USER NAME.
  862. * (PSWD - PSWD+3) = PASSWORD.
  863. * (FWPW) = FWA OF PASSWORD IN STRING BUFFER.
  864. * (LWPW) = LWA+1 OF PASSWORD IN STRING BUFFER.
  865. * FAMILY NAME AND USER NAME SET IN SYSTEM SECTOR.
  866. *
  867. * USES CA, T1, T3, CN - CN+4, UN - UN+4.
  868. *
  869. * CALLS CCS, CTS, GNC, PAC.
  870.  
  871.  
  872. UCP10 LDN 0 SET ERROR STATUS
  873.  
  874. UCP SUBR ENTRY/EXIT
  875. LDN ZERL CLEAR ASSEMBLY BUFFERS
  876. CRD CM
  877. CRD UN
  878. CRD CN
  879. CRM PSWD,ON
  880.  
  881. * VALIDATE KEYWORD.
  882.  
  883. LDI CA
  884. LMN 1R$
  885. ZJN UCP1 IF $ PRESENT
  886. LMN 1R$&1R/
  887. NJN UCP2 IF / NOT PRESENT
  888. UCP1 AOD CA SKIP $ OR /
  889. UCP2 LDN 0
  890. STD T1
  891. LDN CM ASSEMBLE COMMAND KEYWORD
  892. RJM PAC
  893. UCP3 ZJN UCPX IF KEYWORD TOO LONG
  894. MJN UCP10 IF TERMINATOR
  895. LDD CM CHECK KEYWORD
  896. LMC 2RUS
  897. NJN UCP5 IF NOT *USER*
  898. LDD CM+1
  899. LMC 2RER
  900. UCP4 NJN UCP10 IF NOT *USER*
  901. LDD CM+2
  902. ZJN UCP6 IF *USER*
  903. UJN UCP4 PROCESS KEYWORD ERROR
  904.  
  905. UCP5 LMC 2RAC&2RUS
  906. NJN UCP4 IF NOT *ACCOUNT*
  907. LDD CM+1
  908. LMC 2RCO
  909. NJN UCP4 IF NOT *ACCOUNT*
  910. LDD CM+2
  911. LMC 2RUN
  912. NJN UCP4 IF NOT *ACCOUNT*
  913. LDD CM+3
  914. LMC 1RT*100
  915. NJN UCP4 IF NOT *ACCOUNT*
  916. UCP6 RJM AUA ASSEMBLE USER COMMAND ARGUMENTS
  917. UCP7 ZJN UCP3 IF ERROR IN ARGUMENTS
  918.  
  919. * PROCESS USER AND FAMILY NAME.
  920.  
  921. LDD UN
  922. ZJN UCP7 IF NO USER NAME
  923. LDD MA SET USER NAME IN SYSTEM SECTOR
  924. CWD UN
  925. CRM. ACSS,ON
  926. LDD CN
  927. ZJN UCP8 IF NO FAMILY NAME
  928. LMC 1R0*100
  929. ZJN UCP8 IF DEFAULT FAMILY PARAMETER
  930. LDD MA SET FAMILY NAME IN SYSTEM SECTOR
  931. CWD CN
  932. CRM. FMSS,ON
  933. UJN UCP9 EXIT
  934.  
  935. UCP8 LDD MA SET DEFAULT FAMILY NAME
  936. CWM. FMSS,ON
  937. SBN 1
  938. CRD CN
  939. UCP9 LJM UCPX EXIT WITH NO ERROR
  940. TUCP SPACE 4,25
  941. ** TUCP - TABLE OF USER COMMAND PARAMETERS.
  942. *
  943. * FORMAT BEFORE PARAMETER PROCESSING -
  944. *
  945. *T 12/ KW
  946. *T, 12/ ADDR
  947. *T, 12/ AST
  948. *
  949. * KW = PARAMETER KEYWORD IF EQUIVALENCED.
  950. * ADDR = ASSEMBLY ADDRESS.
  951. * AST = * IF ASTERISK ALLOWED IN PARAMETER.
  952. * SECURE = *S* IF PARAMETER TO BE REMOVED FROM COMMAND.
  953. *
  954. * FORMAT AFTER PARAMETER PROCESSING -
  955. *
  956. *T 12/0
  957. *T, 12/FWA
  958. *T, 12/LWA+1
  959. *
  960. * FWA = FWA OF PARAMETER IN STRING BUFFER.
  961. * LWA+1 = LWA+1 OF PARAMETER IN STRING BUFFER.
  962.  
  963.  
  964. TUCP BSS 0
  965. UCARG UN,UN,* USER NAME
  966. TUCPE EQU *-TUCP LENGTH OF ENTRY
  967. TUCPA UCARG PW,PSWD PASSWORD
  968. UCARG FM,CN FAMILY NAME
  969. TUCPL EQU *-TUCP LENGTH OF TABLE
  970. TITLE SUBROUTINES.
  971. AUA SPACE 4,10
  972. ** AUA - ASSEMBLE *USER* COMMAND ARGUMENTS.
  973. *
  974. * EXIT (A) = 0 IF ERROR IN *USER* COMMAND.
  975. *
  976. * USES CA, T1, T4, T5, T6, CM - CM+4.
  977. *
  978. * CALLS CTS, PAC.
  979.  
  980.  
  981. AUA7 LDN 0 SET *USER* COMMAND ERROR
  982.  
  983. AUA SUBR ENTRY/EXIT
  984. LDN 0 INITIALIZE PARAMETER INDEX
  985. STD T4
  986. AUA1 AOD CA SKIP SEPARATOR
  987. STD T5 SAVE PARAMETER ADDRESS
  988. LDN 1R* ALLOW ASTERISK
  989. STD T1
  990. LDN ZERL CLEAR ASSEMBLY
  991. CRD CM
  992. LDN CM ASSEMBLE PARAMETER OR KEYWORD
  993. RJM PAC
  994. ZJN AUAX IF PARAMETER TOO LONG
  995. LDI CA
  996. LMN 1R=
  997. ZJN AUA3 IF KEYWORD OF EQUIVALENCED PARAMETER
  998.  
  999. * PROCESS POSITIONAL PARAMETER.
  1000.  
  1001. LDD T4 SET PARAMETER INDEX
  1002. STD T6
  1003. LDD T5 RESET CHARACTER ADDRESS
  1004. STD CA
  1005. LDM TUCP,T6
  1006. AUA2 ZJN AUAX IF PARAMETER ALREADY ENTERED
  1007. LDN 0
  1008. UJN AUA5 SET PARAMETER ENTERED
  1009.  
  1010. * PROCESS EQUIVALENCED PARAMETER.
  1011.  
  1012. AUA3 LDD CM+1
  1013. NJP AUA7 IF NOT 2 CHARACTER KEYWORD
  1014. STD T6 INITIALIZE PARAMETER INDEX
  1015. AOD CA SKIP SEPARATOR
  1016. STD T5 SAVE PARAMETER ADDRESS
  1017. AUA4 LDM TUCP,T6 CHECK NEXT KEYWORD ENTRY
  1018. LMD CM
  1019. ZJN AUA5 IF MATCH
  1020. LDN TUCPE ADVANCE TABLE INDEX
  1021. RAD T6
  1022. LMN TUCPL
  1023. ZJN AUA2 IF END OF TABLE
  1024. UJN AUA4 CHECK NEXT ENTRY
  1025.  
  1026. * ASSEMBLE PARAMETER.
  1027.  
  1028. AUA5 STM TUCP,T6 SET PARAMETER ENTERED
  1029. LDM TUCP+2,T6 SET ASTERISK ALLOWED STATUS
  1030. LPN 77
  1031. STD T1
  1032. LDM TUCP+1,T6 SET ASSEMBLY ADDRESS
  1033. RJM PAC ASSEMBLE PARAMETER
  1034. ZJN AUA2 IF PARAMETER TOO LONG
  1035. LDI CA
  1036. LMN 1R=
  1037. AUA6 ZJN AUA2 IF SEPARATOR IS *=*
  1038. LDD T5 SET PARAMETER FWA
  1039. STM TUCP+1,T6
  1040. LDD CA SET PARAMETER LWA+1
  1041. STM TUCP+2,T6
  1042. RJM CTS
  1043. MJP AUAX IF TERMINATOR
  1044. LDN TUCPE ADVANCE PARAMETER INDEX
  1045. RAD T4
  1046. LMN TUCPL
  1047. ZJN AUA6 IF MAXIMUM PARAMETERS ALREADY ENTERED
  1048. LJM AUA1 PROCESS NEXT PARAMETER
  1049. ASD SPACE 4,25
  1050. ** ASD - ASSEMBLE DIGITS.
  1051. *
  1052. * ENTRY (CA) = CHARACTER ADDRESS.
  1053. * (CM) = MAXIMUM NUMBER OF DIGITS PLUS ONE.
  1054. * (CM+1 - CM+2) = MAXIMUM DECIMAL VALUE.
  1055. * (CM+3) = 0, IF DEFAULT BASE IS OCTAL.
  1056. * = 1, IF DEFAULT BASE IS DECIMAL.
  1057. *
  1058. * EXIT (A) = ASSEMBLED DIGITS.
  1059. * (A) .LT. 0 IF ERROR IN ASSEMBLY.
  1060. * (CA) = UPDATED CHARACTER ADDRESS.
  1061. *
  1062. * USES CM, T1 - T5.
  1063. *
  1064. * CALLS CTS, ERR, GNC.
  1065. *
  1066. * NOTE *ASD* CONVERTS DISPLAY CODE DIGITS TO OCTAL
  1067. * AND DECIMAL VALUES.
  1068. * THE BASE IS DETERMINED AS FOLLOWS -
  1069. * 1) POST RADIX SPECIFICATION (B=OCTAL, D=DECIMAL).
  1070. * 2) IF AN 8 OR 9 IS DETECTED THEN DECIMAL IS ASSUMED.
  1071. * 3) DEFAULT AS SPECIFIED BY CALLING ROUTINE.
  1072.  
  1073.  
  1074. ASD SUBR ENTRY/EXIT
  1075. LDN 0 PRESET TO NO 8/9 ENCOUNTERED
  1076. STM ASDA
  1077. LDN ZERL CLEAR ASSEMBLY REGISTERS
  1078. CRD T1
  1079. ASD1 RJM CTS CHECK FOR TERMINATOR/SEPARATOR
  1080. MJN ASD2 IF TERMINATOR
  1081. NJN ASD8 IF NOT TERMINATOR OR SEPARATOR
  1082.  
  1083. * PROCESS END OF ARGUMENT.
  1084.  
  1085. ASD2 LDD CM+3
  1086. NJN ASD4 IF BASE IS DECIMAL
  1087. ASD3 LDD T2 RETURN OCTAL DIGITS
  1088. SHN 14
  1089. LMD T3
  1090. UJN ASD6 EXIT
  1091.  
  1092. ASD4 LDD CM+1 CHECK FOR DECIMAL MAXIMUM
  1093. SBD T4
  1094. MJN ASD7 IF OVER MAXIMUM
  1095. NJN ASD5 IF UNDER MAXIMUM
  1096. LDD CM+2
  1097. SBD T5
  1098. MJN ASD7 IF OVER MAXIMUM
  1099. ASD5 LDD T4 RETURN DECIMAL DIGITS
  1100. SHN 14
  1101. LMD T5
  1102. ASD6 MJN ASD9 IF NEGATIVE VALUE
  1103. UJN ASDX RETURN
  1104.  
  1105. ASD7 LDD CM+1 SET MAXIMUM VALUE
  1106. SHN 14
  1107. LMD CM+2
  1108. UJN ASD6 EXIT
  1109.  
  1110. * PROCESS NEXT CHARACTER.
  1111.  
  1112. ASD8 LDI CA CHECK FOR POST RADIX
  1113. SBN 1R0
  1114. PJN ASD12 IF NOT ALPHA
  1115. ADN 1R0-1RD CHECK FOR *D*
  1116. NJN ASD10 IF NOT *D*
  1117. RJM GNC ADVANCE CHARACTER
  1118. MJN ASD4 IF TERMINATOR
  1119. ZJN ASD4 IF SEPARATOR
  1120. ASD9 LJM ASD14 PROCESS ERROR
  1121.  
  1122. ASD10 ADN 1RD-1RB CHECK FOR *B*
  1123. NJN ASD9 IF ALPHA OTHER THAN *B* OR *D*
  1124. LDC ** (DECIMAL/OCTAL CONVERSION FLAG)
  1125. ASDA EQU *-1
  1126. * LDC 1 (8 OR 9 HAS BEEN ENCOUNTERED)
  1127. * LDC 0 (NO 8 OR 9 ENCOUNTERED)
  1128. NJN ASD9 IF 8 OR 9 AND *B* PRESENT
  1129. RJM GNC ADVANCE CHARACTER
  1130. MJN ASD11 IF TERMINATOR
  1131. NJN ASD9 IF NOT TERMINATOR OR SEPARATOR
  1132. ASD11 LJM ASD3 RETURN OCTAL DIGITS
  1133.  
  1134. * SET FLAG IF 8 0R 9 FOUND
  1135.  
  1136. ASD12 STD T1 SAVE DIGIT
  1137. SBN 1R8-1R0
  1138. MJN ASD13 IF NOT 8 OR 9
  1139. LDN 1 SET FLAG FOR DECIMAL
  1140. STM ASDA
  1141. STD CM+3
  1142.  
  1143. * ASSEMBLE OCTAL DIGITS.
  1144.  
  1145. ASD13 LDD T2
  1146. SHN 14
  1147. ADD T3
  1148. SHN 3
  1149. ADD T1 ADD NEW DIGIT
  1150. STD T3
  1151. SHN -14
  1152. STD T2
  1153.  
  1154. * ASSEMBLE DECIMAL DIGITS.
  1155.  
  1156. LDD T4
  1157. SHN 14
  1158. ADD T5
  1159. SHN 2+6 (*4)
  1160. ADD T4
  1161. SHN 14
  1162. ADD T5 (*4+1)
  1163. SHN 1 (*4+1)*2
  1164. STD T5 ADD NEW DIGIT
  1165. SHN -14
  1166. STD T4
  1167. LDD T1
  1168. RAD T5
  1169. SHN -14
  1170. RAD T4 ADD CARRY
  1171. RJM GNC GET NEXT CHARACTER
  1172. SOD CM
  1173. ZJN ASD14 IF TOO MANY DIGITS
  1174. LJM ASD1 LOOP
  1175.  
  1176. * PROCESS ERROR IN ASSEMBLY.
  1177.  
  1178. ASD14 RJM ERR SET ERROR STATUS
  1179. LCN 1
  1180. LJM ASDX RETURN
  1181. CTS SPACE 4,15
  1182. ** CTS - CHECK FOR TERMINATOR OR SEPARATOR.
  1183. *
  1184. * ENTRY (CA) = CHARACTER ADDRESS.
  1185. * (LWUC) = LWA+1 OF UNPACKED COMMAND.
  1186. *
  1187. * EXIT (A) = 0 IF SEPARATOR (INCLUDES COLON).
  1188. * (A) .LT. 0 IF TERMINATOR OR END OF LINE.
  1189. * (A) = CHARACTER (FOR ALL OTHER CHARACTERS).
  1190.  
  1191.  
  1192. CTS2 LDI CA SET NORMAL CHARACTER STATUS
  1193.  
  1194. CTS SUBR ENTRY/EXIT
  1195. LDD CA
  1196. SBM LWUC
  1197. PJN CTS1 IF END OF LINE
  1198. LDI CA
  1199. ZJN CTSX IF COLON
  1200. LDN 1R9
  1201. SBI CA
  1202. PJN CTS2 IF NOT SEPARATOR OR TERMINATOR
  1203. LDI CA
  1204. LMN 1R)
  1205. ZJN CTS1 IF TERMINATOR
  1206. LMN 1R.&1R)
  1207. ZJN CTS1 IF TERMINATOR
  1208. LDN 0 SET SEPARATOR STATUS
  1209. UJN CTSX RETURN
  1210.  
  1211. CTS1 LCN 1 SET TERMINATOR STATUS
  1212. UJN CTSX RETURN
  1213. CVS SPACE 4,10
  1214. ** CVS - CHECK FOR VALID SERVICE CLASS.
  1215. *
  1216. * ENTRY (CM) = TWO CHARACTER MNEMONIC TO BE VALIDATED.
  1217. *
  1218. * EXIT (A) = 0, IF SERVICE CLASS IS VALID.
  1219. * (A) .LT. 0, IF NOT VALID.
  1220. * (T2) = SERVICE CLASS VALUE.
  1221. *
  1222. * USES T2.
  1223.  
  1224.  
  1225. CVS SUBR ENTRY/EXIT
  1226. LDN 0 INITIALIZE TABLE INDEX
  1227. STD T2
  1228. CVS1 LDM TCVS,T2
  1229. LMD CM
  1230. ZJN CVSX IF MATCH
  1231. AOD T2
  1232. LDN MXSC
  1233. SBD T2
  1234. MJN CVSX IF END OF TABLE
  1235. UJN CVS1 CONTINUE SEARCH
  1236. TCVS SPACE 4,10
  1237. ** TCVS - TABLE OF ALLOWED SERVICE CLASS MNEMONICS.
  1238.  
  1239.  
  1240. TCVS INDEX
  1241. LIST D
  1242. .SCL HERE
  1243. LIST *
  1244. INDEX MXSC
  1245. DPW SPACE 4,15
  1246. ** DPW - DELETE PASSWORD FROM INPUT FILE.
  1247. *
  1248. * ENTRY (FWPC) = FWA OF PACKED COMMAND.
  1249. * (TUCPA+1) = FWA OF PASSWORD IN STRING BUFFER.
  1250. * (TUCPA+2) = LWA+1 OF PASSWORD IN STRING BUFFER.
  1251. * (CA) = ADDRESS OF TERMINATOR IN STRING BUFFER.
  1252. * (PSWD) = 0 IF NO PASSWORD SPECIFIED.
  1253. *
  1254. * EXIT PASSWORD (IF SPECIFIED) DELETED FROM USER COMMAND,
  1255. * UNLESS THE *DO NOT DELETE PASSWORD* BIT WAS SET.
  1256. * USER COMMAND REPACKED TO INPUT FILE BUFFER.
  1257. *
  1258. * USES T1, T2.
  1259.  
  1260.  
  1261. DPW SUBR ENTRY/EXIT
  1262. LDM PSWD
  1263. ZJN DPWX IF NO PASSWORD SPECIFIED
  1264. LDM ZVJP
  1265. SHN 21-10
  1266. MJN DPWX IF PASSWORD NOT TO BE DELETED
  1267. LDM TUCPA+1 FWA OF PASSWORD
  1268. STD T1
  1269. LDM TUCPA+2 LWA+1 OF PASSWORD
  1270. STD T2
  1271. AOD CA SET TO MOVE TERMINATOR
  1272.  
  1273. * MOVE END OF USER COMMAND DOWN (DELETING PASSWORD).
  1274.  
  1275. DPW1 LDI T2 MOVE CHARACTER
  1276. STI T1
  1277. AOD T1
  1278. AOD T2
  1279. SBD CA
  1280. MJN DPW1 IF NOT TERMINATOR
  1281.  
  1282. * PAD END OF COMMAND WITH BLANKS.
  1283.  
  1284. DPW2 LDN 1R SET BLANK IN BUFFER
  1285. STI T1
  1286. AOD T1
  1287. SBD CA
  1288. MJN DPW2 IF MORE CHARACTERS TO PAD
  1289.  
  1290. * REPACK USER COMMAND TO INPUT FILE BUFFER.
  1291.  
  1292. LDC. CHAR FWA OF UNPACKED COMMAND
  1293. STD T1
  1294. LDM FWPC FWA OF PACKED COMMAND
  1295. STD T2
  1296. DPW3 LDI T1 PACK TWO CHARACTERS
  1297. SHN 6
  1298. LMM 1,T1
  1299. STI T2
  1300. AOD T2
  1301. LDN 2
  1302. RAD T1
  1303. SBM LWUC
  1304. MJN DPW3 IF MORE CHARACTERS TO PACK
  1305. LJM DPWX RETURN
  1306. ERR SPACE 4,10
  1307. ** ERR - PROCESS JOB COMMAND ERROR.
  1308. *
  1309. * ENTRY (CA) = CURRENT CHARACTER ADDRESS.
  1310. *
  1311. * EXIT (CA) ADVANCED TO NEXT SEPARATOR OR TERMINATOR.
  1312. * (JCEF) INCREMENTED.
  1313. *
  1314. * USES CA.
  1315.  
  1316.  
  1317. ERR SUBR ENTRY/EXIT
  1318. AOM JCEF FLAG ERROR
  1319.  
  1320. * SKIP TO END OF CURRENT ARGUMENT.
  1321.  
  1322. ERR1 RJM CTS CHECK FOR TERMINATOR/SEPARATOR
  1323. ERR2 MJN ERRX IF TERMINATOR
  1324. NJN ERR3 IF NOT SEPARATOR
  1325. LDI CA
  1326. LMN 1R=
  1327. NJN ERRX IF NOT EQUAL SIGN
  1328. ERR3 RJM GNC GET NEXT CHARACTER
  1329. UJN ERR2 CONTINUE
  1330. GNC SPACE 4,15
  1331. ** GNC - GET NEXT NONBLANK CHARACTER.
  1332. *
  1333. * ENTRY (CA) = ADDRESS OF CURRENT CHARACTER.
  1334. * (LWUC) = LWA+1 OF UNPACKED COMMAND.
  1335. *
  1336. * EXIT (A) = NEXT NONBLANK CHARACTER.
  1337. * (A) = 0 IF SEPARATOR.
  1338. * (A) = -1 IF TERMINATOR OR END OF LINE.
  1339. * (CA) = ADDRESS OF CHARACTER.
  1340. *
  1341. * USES CA.
  1342. *
  1343. * CALLS CTS.
  1344.  
  1345.  
  1346. GNC2 LCN 1 SET END OF LINE STATUS
  1347.  
  1348. GNC SUBR ENTRY/EXIT
  1349. RJM CTS CHECK FOR TERMINATOR
  1350. MJN GNCX IF ALREADY AT TERMINATOR
  1351. GNC1 AOD CA GET NEXT CHARACTER
  1352. SBM LWUC
  1353. PJN GNC2 IF END OF LINE
  1354. LDI CA
  1355. LMN 1R
  1356. ZJN GNC1 IF BLANK
  1357. RJM CTS CHECK FOR TERMINATOR/SEPARATOR
  1358. UJN GNCX RETURN
  1359. ISS SPACE 4,15
  1360. ** ISS - INITIALIZE SYSTEM SECTOR.
  1361. *
  1362. * ENTRY (JF) = JOB FIELD LENGTH.
  1363. * (CN) = FWA OF STATEMENT BUFFER.
  1364. * (CB) = ADDRESS OF COMMAND AFTER JOB COMMAND.
  1365. * (JTSS - JTSS+1) = JOB STEP TIME LIMIT.
  1366. *
  1367. * EXIT *BFMS* CONTAINS SYSTEM SECTOR.
  1368. *
  1369. * USES CM - CM+4.
  1370. *
  1371. * MACROS SFA.
  1372.  
  1373.  
  1374. ISS SUBR ENTRY/EXIT
  1375.  
  1376. * SET KEY PUNCH MODE.
  1377.  
  1378. LDD CN CHECK LENGTH OF JOB COMMAND
  1379. ADN 80D/2-1
  1380. SBD CB
  1381. PJN ISS1 IF JOB COMMAND .LT. 80 COLUMNS
  1382. LDM. 47,CN
  1383. LMC 2R26
  1384. ZJN ISS3 IF O26
  1385. LMN 2R29&2R26
  1386. ZJN ISS2 IF O29
  1387. ISS1 LDN IPRL GET SYSTEM DEFAULT KEYPUNCH MODE
  1388. CRD CM
  1389. LDD CM+2
  1390. SHN -13
  1391. ZJN ISS3 IF O26
  1392. ISS2 LDN 1
  1393. ISS3 STM. JFSS
  1394. LDN 0 CLEAR VALIDATION BLOCK
  1395. STM. VASS
  1396.  
  1397. * SET ECS AND CM FIELD LENGTHS.
  1398.  
  1399. LDD JE SET JOB COMMAND ECS FIELD LENGTH
  1400. STM. JESS
  1401. LDD JF CHECK JOB FL
  1402. STM. JCSS SET JOB COMMAND FIELD LENGTH
  1403. LDC PFNL SET DEFAULT FAMILY NAME
  1404. CRD CM
  1405. SFA EST,CM+3
  1406. ADK EQDE
  1407. CRD CM
  1408. LDD CM+4
  1409. SHN 3
  1410. ADN PFGL
  1411. CRM. FMSS,ON
  1412. LDN ZERL CLEAR USER NAME
  1413. CRM. ACSS,ON
  1414. LJM ISSX RETURN
  1415. PAC SPACE 4,20
  1416. ** PAC - PACK CHARACTER STRING.
  1417. *
  1418. * ENTRY (CA) = ADDRESS OF START OF CHARACTER STRING.
  1419. * (A) = ADDRESS OF PACK BUFFER (10 CHAR).
  1420. * (T1) = ASTERISK, IF ASTERISK TO BE ALLOWED IN STRING.
  1421. *
  1422. * EXIT (CA) = ADDRESS OF NEXT CHARACTER IN STRING BUFFER.
  1423. * (A) = 0, IF TOO MANY CHARACTERS.
  1424. * (A) = 1. IF SEPARATOR ENCOUNTERED.
  1425. * (A) .LT. 0, IF TERMINATOR ENCOUNTERED.
  1426. * (T3) = 10 - NUMBER OF CHARACTERS.
  1427. *
  1428. * USES CA, T2, T3.
  1429. *
  1430. * CALLS GNC.
  1431.  
  1432.  
  1433. PAC5 LDN 1 SET NO ERROR
  1434.  
  1435. PAC SUBR ENTRY/EXIT
  1436. STD T2
  1437. LDN 10 SET NUMBER OF CHARACTERS TO ASSEMBLE
  1438. STD T3
  1439. SOD CA
  1440. PAC1 RJM GNC GET NEXT CHARACTER
  1441. MJN PACX IF TERMINATOR
  1442. NJN PAC2 IF NOT SEPARATOR
  1443. LDD T1
  1444. ZJN PAC5 IF ASTERISK NOT ALLOWED
  1445. LMI CA
  1446. NJN PAC5 IF SEPARATOR OTHER THAN ASTERISK
  1447. PAC2 SOD T3
  1448. ZJN PACX IF TOO MANY CHARACTERS
  1449. LPN 1
  1450. ZJN PAC3 IF LOWER CHARACTER
  1451. LDI CA SET UPPER CHARACTER
  1452. SHN 6
  1453. STI T2
  1454. UJN PAC1 PACK NEXT CHARACTER
  1455.  
  1456. PAC3 LDI T2 SET LOWER CHARACTER
  1457. SCN 77
  1458. ADI CA
  1459. STI T2
  1460. AOD T2
  1461. UJN PAC1 PACK NEXT CHARACTER
  1462. UCS SPACE 4,15
  1463. ** UCS - UNPACK COMMAND TO STRING BUFFER.
  1464. *
  1465. * ENTRY (CB) = FWA OF PACKED COMMAND.
  1466. *
  1467. * EXIT (A) = 0, IF ERROR ENCOUNTERED.
  1468. * (CB) = FWA OF NEXT COMMAND IN BUFFER.
  1469. * (CA) = FWA OF UNPACKED COMMAND.
  1470. * (FWPC) = FWA OF PACKED COMMAND.
  1471. * (LWUC) = LWA+1 OF UNPACKED COMMAND.
  1472. *
  1473. * USES CA, T1 - T5, CB.
  1474.  
  1475.  
  1476. UCS7 AOD CB
  1477. LDI CB
  1478. ZJN UCS7 IF NOT FWA OF NEXT COMMAND
  1479. UCS8 LDC. CHAR
  1480. STD CA
  1481. ADN 1 SAVE LWA+1 OF UNPACKED COMMAND
  1482. RAD T3
  1483. STM LWUC
  1484. LDN 0 INSURE ZERO FOLLOWS LAST CHARACTER
  1485. STI T3
  1486. LDD T4 RETURN ERROR IF NO TERMINATOR FOUND
  1487.  
  1488. UCS SUBR ENTRY/EXIT
  1489. LDD CB SAVE FWA OF PACKED COMMAND
  1490. STM FWPC
  1491. SOD CB SET INDEX ADDRESSES
  1492. LDN 0
  1493. STD T5
  1494. STD T4 SET TERMINATOR NOT FOUND
  1495. STD T3
  1496. STD T2
  1497. UCS1 AOD CB GET NEXT TWO CHARACTERS
  1498. LDD T5
  1499. SBK CHARL+1
  1500. PJN UCS8 IF TOO MANY CHARACTERS
  1501. AOD T2
  1502. LDI CB
  1503. UCS2 ZJN UCS7 IF END OF COMMAND
  1504. SHN -6
  1505. UCS3 STD T1
  1506. ZJN UCS5 IF ZERO CHARACTER
  1507. LDD T5 RESET *LAST NONZERO CHARACTER* ADDRESS
  1508. STD T3
  1509. LDD T1
  1510. LMN 1R.
  1511. ZJN UCS4 IF TERMINATOR
  1512. LMN 1R)&1R.
  1513. NJN UCS5 IF NOT TERMINATOR
  1514.  
  1515. UCS4 AOD T4 SET *TERMINATOR ENCOUNTERED* FLAG
  1516. UCS5 LDD T1
  1517. STM CHAR,T5 SET CHARACTER
  1518. AOD T5
  1519. LDD T2
  1520. LPN 1
  1521. ZJN UCS1 IF BOTH CHARACTERS PROCESSED
  1522. UCS6 AOD T2
  1523. LDI CB
  1524. LPN 77
  1525. UJN UCS3 CHECK FOR TERMINATOR
  1526. BUFFERS SPACE 4,10
  1527. * BUFFERS.
  1528.  
  1529.  
  1530. SBUFL EQU 12 SCRATCH BUFFER LENGTH (2 CM WORDS)
  1531. CHARL EQU 150D CHARACTER BUFFER LENGTH
  1532.  
  1533. CHAR BSSN CHARL+3 CHARACTER BUFFER
  1534. FWPC BSSN 1 FWA OF PACKED COMMAND
  1535. LWUC BSSN 1 LWA+1 OF UNPACKED COMMAND
  1536. SBUF BSSN SBUFL SCRATCH BUFFER
  1537. LAST BSSN 0
  1538. END BSSN
  1539.  
  1540.  
  1541. ERRNG ZVJL-LAST *0VJ* OVERFLOW
  1542. TITLE PRESET.
  1543. PRS SPACE 4,20
  1544. ** PRS - PRESET.
  1545. *
  1546. * EXIT ADDRESS RELOCATION PERFORMED.
  1547. * (AEFA) = INSTRUCTION TO ADD EM BLOCKING FACTOR.
  1548. * (AEFB) = SHIFT INSTRUCTION FOR EM BLOCK ROUNDING.
  1549. * (AEFC) = MAXIMUM EM FL / 1000B.
  1550. * (AFLA) = MAXIMUM CM FL / 100B.
  1551. * (ASTA) = *PSN* IF DESTINATION LID ALREADY SET.
  1552. * (DLAT) = DESTINATION LID ATTRIBUTES.
  1553. * (JE) = DEFAULT EM FL/*UEBS*.
  1554. * (JF) = DEFAULT CM FL.
  1555. * (JTSS) = DEFAULT JOB STEP TIME LIMIT.
  1556. * (LALL) = LOWER ACCESS LEVEL LIMIT.
  1557. * (ZVJP) = *0VJ* INPUT PARAMETERS.
  1558. * (ZVJR) = *0VJ* RETURN ADDRESS.
  1559. * TO *VJC*.
  1560. *
  1561. * CALLS CMX, ECX, REL.
  1562.  
  1563.  
  1564. PRS BSS 0 ENTRY
  1565. RJM REL RELOCATE ADDRESSES
  1566. LDD LA SET PASSWORD ASSEMBLY ADDRESS
  1567. RAM TUCPA+1
  1568. LDD CN+2 SAVE *0VJ* ENTRY PARAMETERS
  1569. STM ZVJP
  1570. LPN 7 SAVE LOCAL FILE ACCESS LEVEL
  1571. STM LFAL
  1572. LDD CN+1 SAVE DLID ATTRIBUTES
  1573. STM DLAT
  1574. LDN 0 PRESET JOB STEP TIME LIMIT
  1575. STM. JTSS
  1576. LDD HN
  1577. ERRNZ DFJT-100 DFJT MUST EQUAL (HN)
  1578. STM. JTSS+1
  1579. LCN 0 PRESET CM AND EM FIELD LENGTHS
  1580. ERRNZ JPNP-7777 ERROR IF VALUE CHANGES
  1581. STD JF
  1582. STD JE
  1583. LCN 0 CALCULATE MAXIMUM CM FL
  1584. RJM CMX
  1585. STM AFLA
  1586. LDK MEFL GET USER EM SHIFT COUNT (*UESC*)
  1587. CRD CM
  1588. LDD CM+2
  1589. SHN -11
  1590. STD CM+2 SAVE ONLY *UESC*
  1591. LDC SHNI+77
  1592. SBD CM+2
  1593. STM AEFB
  1594. LDC SHNI+73
  1595. ADD CM+2
  1596. STM PRSA
  1597. LDN 17
  1598. PRSA SHN 0
  1599. * SHN UESC-4
  1600. RAM AEFA
  1601. LCN 0 CALCULATE MAXIMUM EM FL
  1602. RJM ECX
  1603. STM AEFC
  1604. LDM RVJ SAVE *0VJ* RETURN ADDRESS
  1605. STM ZVJR
  1606. LDC. UBUF SAVE USER BLOCK BUFFER ADDRESS
  1607. STM UBAD
  1608. LJM VJC VALIDATE JOB COMMAND
  1609. SPACE 4,10
  1610. * PRESET COMMON DECKS.
  1611.  
  1612. *CALL COMPCMX
  1613. CMI$ EQU 1 CENTRAL MEMORY CONVERSION
  1614. ECI$ EQU 1 ECS CONVERSION
  1615. *CALL COMPCVI
  1616. *CALL COMPECX
  1617. SPACE 4,10
  1618. HERE
  1619. SPACE 4,10
  1620. OVERFLOW 5,ZVJL
  1621.  
  1622. END