Table of Contents

CPM

Table Of Contents

  • [00008] CPM - CONTROL POINT MANAGER.
  • [00010] CONTROL POINT MANAGER.
  • [00304] MACRO DEFINITIONS.
  • [00306] ABORT - ERROR PROCESSING MACRO.
  • [00326] ENTRY - DEFINE OVERLAY ENTRY POINT.
  • [00346] FCN - DEFINE FUNCTION PROCESSOR.
  • [00372] OVERLAY - GENERATE OVERLAY CONSTANTS.
  • [00401] SCLASS - DEFINE SERVICE CLASS TABLE.
  • [00428] SUBSYST - GENERATE SUBSYSTEM TABLE.
  • [00452] MAIN PROGRAM.
  • [00454] MAIN PROGRAM.
  • [00478] ERROR PROCESSOR.
  • [00480] ERR - ERROR PROCESSOR.
  • [00508] RESIDENT ROUTINES.
  • [00510] CFN - COMPARE NAMES.
  • [00533] CJR - CHECK IF THE JOB IS ROLLABLE.
  • [00570] CKA - CHECK ADDRESS.
  • [00597] RCL - RECALL *CPM*.
  • [00615] UFC - UPDATE FAMILY ACTIVITY COUNTS.
  • [00670] FUNCTION PROCESSORS.
  • [02515] SUBROUTINES.
  • [02517] PMP - PROCESS MEMORY PARAMETERS.
  • [02607] PRESET.
  • [02609] PRS - PRESET CONTROL POINT MANAGER.
  • [02706] TFCN - TABLE OF FUNCTION CODE PROCESSORS.
  • [02852] ERR - PROCESS ERROR.
  • [04148] SUBROUTINES.
  • [04150] CSU - CHECK SECONDARY USER COMMAND.
  • [04240] GPV - GET PARAMETERS FOR VALIDATE USER COMMAND FUNCTION.
  • [04306] PIU - PROCESS INCORRECT USER COMMAND.
  • [04388] PSV - PROCESS SECURITY VALIDATIONS.
  • [04496] RPE - RETURN PASSWORD EXPIRATION DATE.
  • [04522] RUB - RETURN USER BLOCK.
  • [04620] RUI - READ USER IDENTIFICATION WORD.
  • [04650] VPW - VALIDATE PASSWORD.
  • [05332] TODO - TABLE OF OUTPUT DISPOSITION OPTIONS.
  • [05513] SUBROUTINES.
  • [05515] CUF - CHECK FOR PROFILE FILE UPDATE FAILURE.
  • [05540] DAM - DISPLAY ACCOUNT MESSAGES.
  • [05567] IAM - ISSUE ACCOUNT FILE MESSAGES FOR END OF ACCOUNT BLOCK.
  • [05752] RIS - READ INPUT FILE SYSTEM SECTOR.
  • [05783] SAL - SET ACCOUNT BLOCK LIMIT.
  • [05812] SCM - STORE CONVERSIONS IN MESSAGE.
  • [05834] SPP - SET PROFILE PARAMETERS.
  • [05925] UPF - UPDATE PROJECT PROFILE FILE USING OVERLAY *0AU*.
  • [06151] LSR - LIBRARY SET RETURN.
  • [06819] TSCM - TABLE OF SERVICE CLASS MNEMONICS.
  • [07246] SUBROUTINES.
  • [07248] CBA - CHECK INTER-CONTROL POINT BUFFER ADDRESS.
  • [07281] LBD - SEARCHES THE LIBRARY DIRECTORY FOR A SPECIAL ENTRY.
  • [07329] RLN - RETURN LIBRARY NAME TO USER PROGRAM.
  • [07360] RLW - READ LIBRARY NAME FROM USER PROGRAM.
  • [07765] CKR - CHECK IF BUFFER IN USER-S FL WITHIN RANGE.
  • [07784] DJI - DETERMINE IF CALLING JOB HAS *L* DISPLAY INTERLOCKED.

Source Code

CPM.txt
  1. IDENT CPM,CPM
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. SYSCOM
  6. *COMMENT CPM - CONTROL POINT MANAGER.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. TITLE CPM - CONTROL POINT MANAGER.
  9. SPACE 4,10
  10. *** CPM - CONTROL POINT MANAGER.
  11. * G. R. MANSFIELD. 70/10/20.
  12. * M. E. MADDEN. 73/04/24.
  13. * R. A. JAPS. 76/12/03. (RESEQUENCED)
  14. SPACE 4,10
  15. *** *CPM* IS A GENERAL PP PROGRAM TO BE USED BY CPU
  16. * PROGRAMS TO REFERENCE OR ALTER JOB CONTROL INFORMATION IN
  17. * THE CONTROL POINT AREA.
  18. SPACE 4,10
  19. *** CALL.
  20. *
  21. *
  22. *T 18/ *CPM*,6/ AR,12/ CODE,24/ PARAM
  23. * AR AUTO RECALL
  24. * CODE FUNCTION CODE
  25. * PARAM PARAMETER FOR FUNCTION
  26. *
  27. * NOTE - *CPUMTR* WILL PROCESS THE FOLLOWING *CPM* FUNCTIONS-
  28. * 16, 24, 25, 32, 33, 37, 43, 45, 50, 55, 61 - 72.
  29. SPACE 4,10
  30. *** DAYFILE MESSAGES.
  31. *
  32. *
  33. * * CM NOT VALIDATED.* = AN ATTEMPT WAS MADE TO CHANGE THE JOB
  34. * CM LIMIT OUTSIDE OF THE USER-S LEGAL BOUNDS.
  35. *
  36. *
  37. * * CM RANGE EXIT MODE NOT DESELECTABLE.* = USER
  38. * SELECTION/DESELECTION OF *CM RANGE* MODE ERRORS IS NOT
  39. * POSSIBLE ON THE CYBER 176.
  40. *
  41. *
  42. * * CPM - ACCESS LEVEL NOT VALID FOR JOB.*
  43. * A USER ATTEMPTED TO CHANGE THE JOB ACCESS LEVEL TO A VALUE
  44. * FOR WHICH THE JOB IS NOT VALIDATED.
  45. *
  46. *
  47. * * CPM - ARGUMENT ERROR.*
  48. * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS -
  49. * 1. ADDRESS OUT OF RANGE.
  50. * 2. INCORRECT EXIT MODE SPECIFIED. (FUNCTION 2).
  51. * 3. EVENT DESCRIPTOR SPECIFIED HAS EST ORDINAL GREATER THAN
  52. * 777B, OR A MULTIPLIER GREATER THAN 77B. (FUNCTION 6).
  53. * 4. USER INDEX IS OUT OF RANGE. (FUNCTION 21).
  54. * 5. INCORRECT SUBSYSTEM SPECIFIED. (FUNCTION 26).
  55. * 6. INCORRECT CPU SELECTION. (FUNCTION 31).
  56. * 7. INCORRECT BYTE COUNT, INCORRECT BYTE POSITION OR INCORRECT
  57. * BUFFER ADDRESS TO RECEIVE VERSION NAME. (FUNCTION 44).
  58. * 8. CM REQUESTED WAS MORE THAN 377700B WORDS.
  59. * (FUNCTIONS 23 AND 52).
  60. * 9. USER JOB NAME, OUTPUT DISPOSITION OPTION, OR
  61. * END OF JOB OPTION INCORRECT.
  62. * 10. INCORRECT SUBFUNCTION SPECIFIED. (FUNCTION 107)
  63. *
  64. *
  65. * * CPM - INCORRECT PACKNAME.*
  66. * 1. AN INCORRECT PACKNAM HAS BEEN SPECIFIED.
  67. * 2. AN INCORRECT DEVICE TYPE HAS BEEN ENTERED ON A *PACKNAM*.
  68. *
  69. *
  70. * * CPM - INCORRECT REQUEST.*
  71. * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS -
  72. * 1. INCORRECT SUBFUNCTION. (FUNCTION 3).
  73. * AN *SSM=* JOB ATTEMPTED TO CLEAR THE SECURE
  74. * SYSTEM MEMORY FLAG.
  75. *
  76. *
  77. * * CPM - INCORRECT *SHELL* FILE.*
  78. * 1. *SHELL* FILE NOT ON MASS STORAGE.
  79. * 2. *SHELL* FILE NOT FOUND IN THE LOCAL FNT AND THE LOCAL
  80. * FILE LOAD OPTION WAS SELECTED.
  81. *
  82. *
  83. * * CPM - USER ACCESS NOT VALID.*
  84. * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS -
  85. * 1. USER NOT VALIDATED FOR SPECIFIED SUBSYSTEM (FUNCTION 26).
  86. * 2. USER NOT VALIDATED TO PROTECT EXTENDED MEMORY
  87. * (FUNCTION 75).
  88. * 3. USER NOT VALIDATED TO SET PAUSE BIT (FUNCTION 100).
  89. * 4. USER DOES NOT HAVE SYSTEM ORIGIN PRIVILEGES - NO STATUS
  90. * REQUESTED (FUNCTION 101).
  91. * 5. THE *L* DISPLAY JSN FIELD IS NOT INTERLOCKED
  92. * (FUNCTIONS 102 AND 103).
  93. *
  94. *
  95. * * CPM - LIBRARY NOT FOUND = LNAME.*
  96. * THE INDICATED LIBRARY *LNAME* WAS NOT FOUND IN THE
  97. * SYSTEM DIRECTORY OR IN THE LOCAL FNT OF THE CALLER.
  98. *
  99. *
  100. * * CPM - MASS STORAGE ERROR.*
  101. * A MASS STORAGE ERROR WAS ENCOUNTERED WHEN PERFORMING I/O
  102. * ON A DEVICE.
  103. *
  104. *
  105. * * CPM - MISSING *SHELL* LOAD OPTION.*
  106. * WHEN SETTING THE *SHELL* CONTROL FIELD IN NFL AT LEAST
  107. * ONE LOAD OPTION FLAG MUST BE SET.
  108. *
  109. *
  110. * * CPM - EPILOGUE AND SHELL CONFLICT.*
  111. * AN EPILOGUE WAS PENDING AT THE TIME AN ATTEMPT WAS MADE TO
  112. * ACTIVATE A *SHELL* PROGRAM WITH THE NO-ABORT OPTION SET.
  113. *
  114. *
  115. * * CPM - SYSTEM ERROR.*
  116. * 1. *CPM* WAS UNABLE TO READ THE JOB INPUT FILE.
  117. * (FUNCTION 106 - SET JOB CHARACTERISTICS).
  118. * 2. *CPM* ENCOUNTERED A PROBLEM (OTHER THAN A READ) WITH THE
  119. * SYSTEM SECTOR.
  120. *
  121. *
  122. * * EC NOT VALIDATED.* = AN ATTEMPT WAS MADE TO CHANGE THE JOB
  123. * EC LIMIT OUTSIDE OF THE USER-S LEGAL BOUNDS.
  124. *
  125. *
  126. * * ERROR ON FILE - PROFILX.* = ONE OF THE FOLLOWING OCCURRED-
  127. * 1) BAD PROFILE FILE LEVEL-3 BLOCK RANDOM ADDRESS.
  128. * 2) PROFILE FILE NOT FOUND.
  129. * (THIS MESSAGE ALSO ISSUED TO ERROR LOG).
  130. *
  131. *
  132. * * INCORRECT APPLICATION ACCOUNTING REQUEST.*
  133. * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS, ALL
  134. * ARE FROM FUNCTION 77 -
  135. * 1. NOT CALLED FROM VALID PROGRAM.
  136. * 2. INCORRECT PARAMETER WORD.
  137. *
  138. *
  139. * * INCORRECT USER COMMAND.*
  140. * AN ATTEMPT WAS MADE TO ENTER A SECONDARY USER COMMAND
  141. * TO A DIFFERENT FAMILY WHEN SUCH COMMANDS WERE DISABLED,
  142. * OR AN INCORRECT OR EXPIRED PASSWORD WAS ENTERED.
  143. *
  144. *
  145. * * INCORRECT END OF JOB OPTION SPECIFIED.*
  146. * A BATCH JOB ENTERED A *SETJOB,OP=SU.*. OP=SU
  147. * IS INCORRECT FOR NON-INTERACTIVE JOBS. THIS IS A
  148. * NON-FATAL ERROR. NO CHANGES ARE MADE TO ANY
  149. * ARGUMENTS (UJN, DC, OP).
  150. *
  151. *
  152. * * MFL REQUEST TOO SMALL, MINIMUM USED.*
  153. * AN ATTEMPT WAS MADE TO *SETMFL* TO A FIELD LENGTH SMALLER
  154. * THAN *CTFL*, THE FIELD LENGTH OF *CONTROL*. *CTFL* WAS USED
  155. * INSTEAD.
  156. *
  157. *
  158. * * RFL BEYOND MFL.* = RFL REQUEST EXCEEDS MFL.
  159. *
  160. *
  161. * * STACK PURGING NOT DESELECTABLE.*
  162. * STACK PURGING IS SELECTABLE/DESELECTABLE ONLY ON CYBER
  163. * 170-8X5 MAINFRAMES.
  164. *
  165. *
  166. * * TL NOT VALIDATED.* = AN ATTEMPT WAS MADE TO CHANGE THE JOB
  167. * TIME LIMIT OUTSIDE OF THE USER-S LEGAL BOUNDS.
  168. *
  169. *
  170. * * USER SECURITY COUNT EXHAUSTED.*
  171. * THE USER HAS EXCEEDED THE SECURITY COUNT. THE USER MUST
  172. * CONTACT SITE PERSONNEL TO HAVE THE SECURITY COUNT RESET.
  173. * THE USER WILL NOT BE ALLOWED ACCESS TO THE SYSTEM UNTIL
  174. * THE SECURITY COUNT IS RESET.
  175. SPACE 4,10
  176. *** ACCOUNT FILE MESSAGES -
  177. *
  178. *
  179. * *UDOD, 000000.000KUNS.* = OPTICAL DISK ACTIVITY (KILO-UNITS).
  180. *
  181. * *UDAC, 000000.000UNTS.* = APPLICATION UNIT CHARGE (UNITS).
  182. *
  183. * *UDMP, 000000.000KUNS.* = MAP III ACTIVITY (KILO-UNITS).
  184. *
  185. * *UDCO, 000000.000KCHS.* = TERMINAL CHARACTERS OUTPUT.
  186. *
  187. * *UDCI, 000000.000KCHS.* = TERMINAL CHARACTERS INPUT.
  188. *
  189. * *UDCT, 000000.000KCHS.* = TOTAL TERMINAL CHARACTERS.
  190. *
  191. * *UDAD, 000000.000KUNS.* = APPLICATION UNITS (KILO-UNITS).
  192. *
  193. * *UDPF, 000000.000KUNS.* = PERMANENT FILE ACTIVITY(KILO-UNITS)
  194. *
  195. * *UDMT, 000000.000KUNS.* = MAGNETIC TAPE ACTIVITY (KILO-UNITS).
  196. *
  197. * *UDMS, 000000.000KUNS.* = MASS STORAGE ACTIVITY (KILO-UNITS).
  198. *
  199. * *UDCP, 000000.000SECS.* = ACCUMULATED CP TIME (SECONDS).
  200. *
  201. * *ACSR, 000000.000UNTS.* = ACCUMULATED SRUS (UNITS).
  202. *
  203. * NOTE - THE PRECEDING MESSAGES ARE ISSUED IN THE ABOVE ORDER.
  204. *
  205. *
  206. * *ABCN, CHARGENUMBER, PROJECTNUMBER.* = BEGINNING OF A
  207. * CHARGE SEQUENCE.
  208. *
  209. * *ACCN, CHARGENUMBER, PROJECTNUMBER.* = CHANGE OF CHARGE.
  210. *
  211. * *ACSC, SC, NEWJSN, SRUUNITS.* = SERVICE CLASS CHANGE.
  212. * NEWJSN IS PRESENT IF CHANGING FROM SUBSYSTEM SERVICE CLASS.
  213. *
  214. * *APPN, PACKNAM.* = DEFAULT PACK NAME ENTERED.
  215. *
  216. * *APPN.* = DEFAULT PACK NAME CLEARED.
  217. *
  218. * *AUSR, 000000.000UNTS.* = ACCUMULATED SRU-S (UNITS) NOT
  219. * UPDATED INTO PROJECT PROFILE FILE.
  220. *
  221. * *MJJI, OLDLEVEL, NEWLEVEL.* = DENOTES AN INCORRECT ATTEMPT
  222. * BY THE USER TO CHANGE THE JOB ACCESS LEVEL FROM LEVEL
  223. * *OLDLEVEL* TO LEVEL *NEWLEVEL*.
  224. *
  225. * *SIUN, USERNUM.* = AN ATTEMPT WAS MADE TO ENTER A
  226. * SECONDARY USER COMMAND WHEN DISALLOWED, OR THE
  227. * ACCOUNT/PASSWORD WAS INCORRECT.
  228. *
  229. * *UBAU, XXXX.* = BEGIN APPLICATION ACCOUNTING FOR
  230. * APPLICATION XXXX.
  231. SPACE 4,10
  232. *** ERROR LOG MESSAGES.
  233. *
  234. * *MAINTENANCE ACCESS BY UN = XXXXXXX.* = A USER HAS LOGGED IN
  235. * WITH MAINTENANCE PRIVILEGES.
  236. SPACE 4,10
  237. *** OPERATOR MESSAGES.
  238. *
  239. *
  240. * +REQUEST *K* DISPLAY.+ = B-DISPLAY MESSAGE INDICATING
  241. * THAT CONTROL POINT IS REQUESTING OPERATOR TO ASSIGN THE
  242. * K-DISPLAY TO THE CONTROL POINT.
  243. SPACE 4,10
  244. ** ROUTINES CALLED.
  245. *
  246. *
  247. * 0AU - ACCOUNTING UPDATE.
  248. * 0AV - ACCOUNT VALIDATION.
  249. SPACE 4,10
  250. ** COMMON DECKS.
  251.  
  252.  
  253. *CALL COMPMAC
  254. *CALL COMSACC
  255. QUAL BIO
  256. *CALL COMSBIO
  257. QUAL *
  258. *CALL COMSCPS
  259. *CALL COMSEJT
  260. QUAL EVENT
  261. *CALL COMSEVT
  262. QUAL *
  263. *CALL COMSJCE
  264. *CALL COMSMLS
  265. *CALL COMSMSC
  266. *CALL COMSMSP
  267. *CALL COMSLFD
  268. *CALL COMSPIM
  269. *CALL COMSPRD
  270. *CALL COMSPRO
  271. *CALL COMSREM
  272. *CALL COMSSSE
  273. *CALL COMSSSJ
  274. *CALL COMSVER
  275. *CALL COMSZOL
  276. SPACE 4,10
  277. **** DIRECT LOCATION ASSIGNMENTS.
  278.  
  279.  
  280. PA EQU T1 POT ADDRESS
  281. T8 EQU 16 SCRATCH
  282. T9 EQU 17 SCRATCH
  283. CN EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
  284. OT EQU 25 JOB ORIGIN TYPE
  285. SM EQU 26 SYSTEM SECURITY MODE
  286. FN EQU 30 - 34 FAMILY NAME (5 LOCATIONS)
  287. PP EQU FN+3 POT POINTER
  288. TN EQU FN+4 TERMINAL NUMBER
  289. TT EQU 35 TERMINAL TABLE ADDRESS (FOR STA)
  290. TA EQU 36 IAF RA (FOR STA)
  291. UN EQU 40 - 44 USER NAME (5 LOCATIONS)
  292. EP EQU 57 ENTRY POINTS
  293. BA EQU 60 - 64 SCRATCH
  294. RC EQU 65 RECALL COUNT
  295. FA EQU RC LOCAL FNT POINTER
  296. RI EQU 66 - 67 PROFILE FILE RANDOM ADDRESS
  297.  
  298.  
  299. ** ASSEMBLY CONSTANTS.
  300.  
  301.  
  302. MRCL EQU 5 MAXIMUM RECALL COUNT (MUST BE .LT. 100B)
  303. ****
  304. TITLE MACRO DEFINITIONS.
  305. ABORT SPACE 4,10
  306. ** ABORT - ERROR PROCESSING MACRO.
  307. *
  308. * ABORT PARAM
  309. *
  310. * ENTRY PARAM = 6/DFOP, 12/ADDR.
  311. * DFOP = 0 FOR MESSAGE TO USER AND SYSTEM
  312. * DAYFILE.
  313. * = *ERLN* FOR MESSAGE TO ERROR LOG,
  314. * USER, AND SYSTEM DAYFILE.
  315. * ADDR = DAYFILE MESSAGE ADDRESS.
  316.  
  317.  
  318. PURGMAC ABORT
  319.  
  320. ABORT MACRO A
  321. MACREF ABORT
  322. LDC A
  323. LJM ERR
  324. ENDM
  325. ENTRY SPACE 4,10
  326. ** ENTRY - DEFINE OVERLAY ENTRY POINT.
  327. *
  328. *
  329. * ENTRY NAME
  330. * ENTRY *NAME* = NAME OF ENTRY ADDRESS.
  331.  
  332.  
  333. PURGMAC ENTRY
  334.  
  335. MACRO ENTRY,NAME
  336. MACREF ENTRY
  337. IF -MIC,.M
  338. NAME EQU *
  339. ELSE
  340. QUAL
  341. NAME EQU *+1R".M"*10000
  342. QUAL ".O"
  343. ENDIF
  344. ENDM
  345. FCN SPACE 4,10
  346. ** FCN - DEFINE FUNCTION PROCESSOR.
  347. *
  348. *
  349. * CODE FCN NAME,(JOB CODES),SSJ
  350. * ENTRY *CODE* = OPTIONAL FUNCTION CODE SYMBOL TO BE DEFINED.
  351. * *NAME* = NAME OF FUNCTION PROCESSOR.
  352. * *JOB CODES* IF USED, FUNCTION IS ALLOWED BY ONLY
  353. * THOSE JOB TYPES.
  354. * *SSJ* IF USED, FUNCTION IS ALLOWED BY ONLY THOSE
  355. * JOBS WITH *SSJ=* ENTRY POINTS OR
  356. * SUBSYSTEM ID-S.
  357.  
  358.  
  359. .3 SET 0
  360. MACRO FCN,F,A,B,C
  361. LOC .3/3
  362. F CON A/10000B,A-A/10000B*10000B
  363. .1 SET 0
  364. IFC NE,$B$$,1
  365. .1 BITSET (B)
  366. IFC NE,$C$$,1
  367. .1 SET .1+4000
  368. CON .1
  369. .3 SET .3+3
  370. ENDM
  371. OVERLAY SPACE 4,10
  372. ** OVERLAY - GENERATE OVERLAY CONSTANTS.
  373. *
  374. *
  375. * OVERLAY (TEXT)
  376. * ENTRY *TEXT* = TEXT OF SUBTITLE.
  377.  
  378.  
  379. .N SET 0
  380. OVLB MICRO 1,, 3C BASE OVERLAY NAME
  381.  
  382.  
  383. PURGMAC OVERLAY
  384.  
  385. OVERLAY MACRO TEXT
  386. QUAL
  387. .N SET .N+1
  388. .M MICRO .N,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
  389. .O MICRO 1,3, "OVLB"".M"
  390. QUAL ".O"
  391. TTL CPM/".O" - TEXT
  392. TITLE
  393. IDENT ".O",OVL TEXT
  394. *COMMENT CPM - TEXT
  395. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  396. ORG OVL
  397. LJM *
  398. UJN *-2
  399. ENDM
  400. SCLASS SPACE 4,15
  401. ** SCLASS - DEFINE SERVICE CLASS TABLE.
  402. *
  403. * SCLASS NM,MN,DF,ST,TX
  404. *
  405. * ENTRY *NM* = SERVICE CLASS NAME.
  406. * *MN* = TWO CHARACTER MNEMONIC.
  407. * *DF* = DAYFILE MESSAGE CHARACTER.
  408. * *ST* = SHORT TEXT FOR *QFTLIST*.
  409. * *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE.
  410. *
  411. * NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
  412. * THIS MACRO.
  413.  
  414.  
  415. PURGMAC SCLASS
  416.  
  417. SCLASS MACRO NM,MN,DF,ST,TX
  418. .SCL RMT
  419. INDEX NM,2R_MN TX
  420. .SCL RMT
  421. .A IFC NE,$NM$SSSC$
  422. .SCLVSP RMT
  423. INDEX NM,MN_MK TX
  424. .SCLVSP RMT
  425. .A ENDIF
  426. SCLASS ENDM
  427. SUBSYST SPACE 4,10
  428. ** SUBSYST - GENERATE SUBSYSTEM TABLE.
  429. *
  430. * SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT,CPU
  431.  
  432.  
  433. PURGMAC SUBSYST
  434.  
  435. SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB,CPU
  436. LOCAL C
  437. .SUB RMT
  438. C SET 0
  439. IFC NE,$CPU$$,1
  440. C SET 1
  441. INDEX (ID-LSSI),(C)
  442. .SUB RMT
  443. SUBSYST ENDM
  444. SPACE 4,10
  445. * COMMON DECKS.
  446.  
  447.  
  448. SCL$ EQU 0 ONLY PROCESS CLASSES WITH JCB-S
  449. *CALL COMSSCD
  450. SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO CALLS
  451. *CALL COMSSSD
  452. TITLE MAIN PROGRAM.
  453. CPM SPACE 4,10
  454. ** CPM - MAIN PROGRAM.
  455.  
  456.  
  457. ORG PPFW
  458.  
  459.  
  460. CPM RJM PRS PRESET CONTROL POINT MANAGER
  461. LDC 0
  462. CPMA EQU *-1 (OVERLAY NAME)
  463. ZJN CPM1 IF NO OVERLAY NAME
  464. LMC 2L"OVLB" LOAD OVERLAY
  465. RJM EXR
  466. CPM1 LDN 0 CLEAR ADDRESS WORD COUNT
  467. STD T1
  468. LJM *
  469. CPMB EQU *-1 (ENTRY ADDRESS FOR FUNCTION)
  470.  
  471. CPMX MONITOR DPPM DROP PP
  472. LJM PPR EXIT TO PP RESIDENT
  473. SPACE 4,10
  474. ** PROGRAMMING NOTE.
  475. *
  476. * (T1) = 0, ON ENTRY TO ALL FUNCTION PROCESSORS TO ASSURE
  477. * THE ROUTINE *CKA* WILL CHECK THE PROPER CM ADDRESSES.
  478. TITLE ERROR PROCESSOR.
  479. ERR SPACE 4,10
  480. ** ERR - ERROR PROCESSOR.
  481. *
  482. * ENTRY (A) = 6/ DFOP, 12/ ADDR
  483. *
  484. * DFOP = DAYFILE OPTION.
  485. * = 0 FOR MESSAGE TO USER AND SYSTEM DAYFILE.
  486. * = *ERLN* FOR MESSAGE TO ERROR LOG, USER, AND
  487. * SYSTEM DAYFILES.
  488. *
  489. * ADDR = ADDRESS OF MESSAGE.
  490. *
  491. * (ERRA) = RESOURCE TYPE FOR *ERNV* MESSAGE.
  492. *
  493. * EXIT ERROR PROCESSOR OVERLAY EXECUTED.
  494. * (CN) = ERROR MESSAGE ADDRESS.
  495. *
  496. * USES CN.
  497.  
  498.  
  499. ERR BSS 0 ENTRY
  500. STD CN SET ERROR MESSAGE ADDRESS
  501. SHN -14 SET DAYFILE OPTION
  502. STD CN+1
  503. LDC 0 SET RESOURCE TYPE
  504. ERRA EQU *-1 (RESOURCE TYPE)
  505. STD CN+2
  506. EXECUTE 3CA
  507. LJM /3CA/ERR PROCESS ERROR
  508. TITLE RESIDENT ROUTINES.
  509. CFN SPACE 4,10
  510. ** CFN - COMPARE NAMES.
  511. *
  512. * ENTRY (FN - FN+4) = REQUESTED NAME.
  513. * (CN - CN+4) = LEGAL NAME.
  514. *
  515. * EXIT (A) = 0 IF MATCH.
  516.  
  517.  
  518. CFN SUBR ENTRY/EXIT
  519. LDD FN
  520. LMD CN
  521. NJN CFNX IF NO MATCH
  522. LDD FN+1
  523. LMD CN+1
  524. NJN CFNX IF NO MATCH
  525. LDD FN+2
  526. LMD CN+2
  527. NJN CFNX IF NO MATCH
  528. LDD FN+3
  529. LMD CN+3
  530. SCN 77
  531. UJN CFNX RETURN
  532. CJR SPACE 4,20
  533. ** CJR - CHECK IF THE JOB IS ROLLABLE.
  534. *
  535. * AN I/O ERROR WAS ENCOUNTERED ON A MASS STORAGE DEVICE. THE
  536. * JOB IS ROLLABLE IS IT IS NOT A SUBSYSTEM, THE I/O ERROR IS
  537. * RECOVERABLE, AND THERE IS NOT AN ERROR FLAG IN THE CONTROL
  538. * POINT AREA.
  539. *
  540. * ENTRY (T5) = EST ORDINAL.
  541. * (RDCT) = RECOVERABLE ERROR STATUS (BIT 2**10 CLEAR IF
  542. * RECOVERABLE ERROR).
  543. *
  544. * EXIT TO *1RJ* IF THE JOB IS ROLLABLE.
  545. * TO *CPMX* IF ERROR FLAG SET.
  546. * OTHERWISE, TO CALLER.
  547. *
  548. * USES IR+4, CM - CM+4.
  549. *
  550. * MACROS EXECUTE, PAUSE.
  551.  
  552.  
  553. CJR SUBR ENTRY/EXIT
  554. LDD CP CHECK IF SUBSYSTEM CALLER
  555. ADK JCIW
  556. CRD CM
  557. LDD CM+2
  558. SBK LSSI+1
  559. PJN CJRX IF SUBSYSTEM
  560. LDM RDCT
  561. SHN 21-12
  562. MJN CJRX IF ERROR NOT RECOVERABLE
  563. PAUSE
  564. LDD CM+1
  565. NJP CPMX IF ERROR FLAG SET
  566. LDD T5 SET EST ORDINAL
  567. STD IR+4
  568. EXECUTE 1RJ RECALL JOB
  569. CKA SPACE 4,10
  570. ** CKA - CHECK ADDRESS.
  571. *
  572. * ENTRY (IR+3 - IR+4) = ADDRESS.
  573. * (T1) = WORD COUNT MINUS ONE.
  574. *
  575. * EXIT (A) = ABSOLUTE ADDRESS.
  576.  
  577.  
  578. CKA2 LDD IR+3 LOAD ABSOLUTE ADDRESS
  579. SHN 6
  580. ADD RA
  581. SHN 6
  582. ADD IR+4
  583.  
  584. CKA SUBR ENTRY/EXIT
  585. LDD IR+3
  586. SCN 37
  587. NJN CKA1 IF OUT OF RANGE
  588. LDD IR+3
  589. SHN 14
  590. LMD IR+4
  591. ADD T1
  592. SHN -6
  593. SBD FL
  594. MJN CKA2 IF < FL - WORD COUNT
  595. CKA1 ABORT ERAE * CPM - ARGUMENT ERROR.*
  596. RCL SPACE 4,10
  597. ** RCL - RECALL *CPM*.
  598. *
  599. * ENTRY (IR - IR+4) = *CPM* REQUEST.
  600. *
  601. * USES CM - CM+4.
  602. *
  603. * MACROS MONITOR.
  604.  
  605.  
  606. RCL BSS 0
  607. LDN ZERL RECALL REQUEST
  608. CRD CM
  609. LDD MA
  610. CWM IR,ON
  611. CWD CM
  612. MONITOR RECM
  613. LJM PPR EXIT
  614. UFC SPACE 4,10
  615. ** UFC - UPDATE FAMILY ACTIVITY COUNTS.
  616. *
  617. * ENTRY (CN+3) = CURRENT FAMILY EST ORDINAL.
  618. * (T2) = NEW FAMILY EST ORDINAL.
  619. *
  620. * EXIT CURRENT FAMILY ACTIVITY COUNT DECREMENTED.
  621. * NEW FAMILY ACTIVITY COUNT INCREMENTED.
  622. * *PUCN* CLEARED IF FAMILY CHANGED.
  623. *
  624. * USES CM - CM+4.
  625.  
  626.  
  627. UFC SUBR ENTRY/EXIT
  628. LDD CN+3 CHECK OLD = NEW
  629. LMD T2
  630. ZJN UFCX IF OLD = NEW
  631. LDD CN+3 DECREMENT OLD FAMILY ACTIVITY COUNT
  632. STD CM+1
  633. LMN NEEQ CHECK FOR NULL FAMILY
  634. ZJN UFC1 IF NULL FAMILY
  635. LDN DFCS
  636. STD CM+3
  637. MONITOR SMDM
  638. UFC1 LDD T2 INCREMENT NEW FAMILY ACTIVITY COUNT
  639. STD CM+1
  640. LDN IFCS
  641. STD CM+3
  642. MONITOR SMDM
  643. LDN ZERL CLEAR *PUCN*
  644. CRD CM
  645. NFA PUCN
  646. CWD CM
  647. UJN UFCX RETURN
  648. SPACE 4,10
  649. ** COMMON DECKS NOT TO BE OVERLAID.
  650.  
  651.  
  652. TLI$ SET 1 SELECT TIME LIMIT INDEX CONVERSION
  653. CLI$ SET 1 SELECT CONVERSION FROM INDEX TO COUNT
  654. SLI$ SET 1 SELECT SRU LIMIT CONVERSION
  655. *CALL COMPCVI
  656. EJT$ EQU 1 DEFINE EJT PROCESSOR
  657. FNT$ EQU 1 DEFINE SYSTEM FNT PROCESSOR
  658. IFP$ EQU 1 DEFINE REMOTE INITIALIZATION CODE
  659. JCB$ EQU 1 DEFINE JCB PROCESSOR
  660. *CALL COMPGFP
  661. *CALL COMPRJC
  662. *CALL COMPRSS
  663. *CALL COMPVFN
  664. SPACE 4,10
  665. ** OVERLAY DEFINITIONS.
  666.  
  667.  
  668. OVL EQU *+5 OVERLAY LOAD ADDRESS
  669. L0AV EQU BFMS-ZAVL LOAD ADDRESS FOR *0AV*
  670. TITLE FUNCTION PROCESSORS.
  671. SPR SPACE 4,10
  672. *** FUNCTION 1.
  673. * SET CPU PRIORITY = PARAMETER.
  674. *
  675. * ENTRY (IR+4) = REQUESTED CPU PRIORITY IF .NE. 0.
  676. * (IR+4) = 0 TO SET CPU PRIORITY TO SERVICE CLASS VALUE.
  677.  
  678.  
  679. SPR ENTRY
  680. LDD OT CHECK ORIGIN TYPE
  681. LMK SYOT
  682. ZJN SPR1 IF SYSTEM ORIGIN JOB
  683. LDD EP CHECK FOR SSJ= JOB
  684. SHN 21-2
  685. PJN SPR4 IF NOT SSJ=
  686. SPR1 LDD IR+4
  687. ZJN SPR3 IF SET PRIORITY TO SERVICE CLASS VALUE
  688. SBK LJCS
  689. PJN SPR1.1 IF REQUESTED PRIORITY NOT TOO LOW
  690. LDN LJCS SET LOWEST JOB PRIORITY
  691. UJN SPR3 SET PRIORITY
  692.  
  693. SPR1.1 SBK LSCS-LJCS
  694. MJN SPR2 IF REQUESTED PRIORITY NOT TOO HIGH
  695. LDN LSCS-1 SET HIGHEST USER JOB PRIORITY
  696. UJN SPR3 SET PRIORITY
  697.  
  698. SPR2 LDD IR+4 SET PRIORITY
  699. SPR3 STD CM+4
  700. LDN CPRS SELECT CPU PRIORITY
  701. STD CM+1
  702. MONITOR SJCM
  703. SPR4 LJM CPMX RETURN
  704. SEM SPACE 4,20
  705. *** FUNCTION 2.
  706. * SET EXIT MODE.
  707. *
  708. * ENTRY (IR+3) = 12/ MASK.
  709. * (IR+4) = 12/ MODE.
  710. * WHERE - MASK DEFINES BIT POSITIONS TO BE CHANGED
  711. * IN WORD 3 OF THE EXCHANGE PACKAGE.
  712. * - MODE DEFINES THE NEW VALUES.
  713. *
  714. * EXIT EXIT MODE CHANGED.
  715. *
  716. * USES CM - CM+4.
  717. *
  718. * CALLS DFM.
  719. *
  720. * MACROS ABORT.
  721.  
  722.  
  723. SEM ENTRY
  724. LDK MABL CHECK MAINFRAME TYPE
  725. CRD CM
  726. LDD CM+1
  727. SHN -11
  728. LMN 7
  729. ZJN SEM1 IF CYBER 176 MAINFRAME
  730. LDD IR+3 CLEAR UNDERFLOW MASK
  731. SCN 10
  732. UJN SEM3 PROCESS NON C176
  733.  
  734. SEM1 LDD IR+3
  735. LPN 1
  736. ZJN SEM2 IF CM RANGE MASK NOT SET
  737. LDD IR+4
  738. LPN 1
  739. NJN SEM2 IF CM RANGE NOT DESELECTED
  740. LDC =C* CM RANGE EXIT MODE NOT DESELECTABLE.*
  741. RJM DFM
  742. SEM2 LDD IR+4 REPOSITION UNDERFLOW BIT
  743. LPN 10
  744. SHN -3
  745. STD T1
  746. LDD IR+4
  747. SCN 11
  748. LMD T1
  749. STD IR+4
  750. LDD IR+3 REPOSITION UNDERFLOW MASK BIT
  751. LPN 10
  752. SHN -3
  753. STD T1
  754. LDD IR+3
  755. SCN 11
  756. LMD T1
  757. SEM3 STD IR+3
  758. LPN 20
  759. ZJN SEM5 IF NOT CHANGING THE PURGING BIT
  760. LDK MABL
  761. CRD CM
  762. LDD CM+1
  763. SHN 21-13
  764. PJN SEM5 IF CYBER 170-8X5 MAINFRAME
  765. LDC =C* STACK PURGING NOT DESELECTABLE.*
  766. RJM DFM PROCESS DAYFILE MESSAGE
  767. LDD IR+3 CLEAR STACK PURGING MASK
  768. SCN 20
  769. UJN SEM6 PROCESS EXIT MODE BITS
  770.  
  771. SEM4 ABORT ERAE * CPM - ARGUMENT ERROR.*
  772.  
  773. SEM5 LDD IR+3 MASK OF BITS TO BE CHANGED
  774. NJN SEM6 IF EXIT MODE MASK SPECIFIED
  775. LDN 7 DEFAULT MASK
  776. SEM6 LPN 27
  777. RAM SEMB
  778. LPN 27 RETRIEVE MASK
  779. RAM SEMA
  780. LDD IR+3 ORIGINAL MASK
  781. LPC 750
  782. NJN SEM4 IF NOT CHANGING LEGAL EXIT MODE BITS
  783. LDD CP GET CURRENT EXIT MODE
  784. ADN 3 READ MODE
  785. CRD CM
  786. LDD CM CURRENT MODE
  787. SEMA SCN 0 CLEAR THOSE BITS CHANGING
  788. STD CM
  789. LDD IR+4 NEW VALUE FOR THOSE BITS CHANGING
  790. SEMB LPN 0 EXTRACT THOSE BITS CHANGING
  791. ADD CM FORM NEW EXIT MODE
  792. LPC 0777 CLEAR HARDWARE MODE BITS
  793. LMC 7000 FORCE HARDWARE MODE BITS ON
  794. STD CM
  795. LDN 0 CLEAR UNPROCESSED *PSD* ERRORS
  796. STD CM+1
  797. LDD CP
  798. ADN 3
  799. CWD CM WRITE NEW EXIT MODE
  800. LJM CPMX EXIT
  801. SDA SPACE 4,20
  802. *** FUNCTION 5.
  803. * SET *K* DISPLAY CONTROLS.
  804. *
  805. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER WORD IF TO
  806. * ACTIVATE *K* DISPLAY.
  807. * = 0 IF TO DEACTIVATE *K* DISPLAY.
  808. *
  809. *T,ADDR 1/0,1/U,1/0,1/S,2/0,18/ KB,18/ RS,18/ LS
  810. *
  811. * U = 1, IF UPDATE OF STATUS WORD IS NOT REQUIRED
  812. * S = 1, IF K-DISPLAY INPUT TO BE SUPPRESSED FROM DAYFILE
  813. * KB KEYBOARD BUFFER ADDRESS
  814. * RS RIGHT SCREEN BUFFER ADDRESS
  815. * LS LEFT SCREEN BUFFER ADDRESS
  816. *
  817. * EXIT *K* DISPLAY CONTROLS UPDATED.
  818.  
  819.  
  820. SDA ENTRY
  821. LDD IR+3 CHECK PARAMETER
  822. LPN 37
  823. SHN 14
  824. LMD IR+4
  825. NJN SDA1 IF AN ADDRESS WAS SPECIFIED
  826. LDK ZERL
  827. LJM SDA6 CLEAR DISPLAY REGISTER (DBAW)
  828.  
  829. SDA1 LDK PPCP CHECK IF K-DISPLAY IS ACTIVE
  830. CRD CN
  831. LDD CN+4
  832. ADN 10
  833. CRD CN READ *DSD*-S INPUT REGISTER
  834. LDD CN+2
  835. SHN -6
  836. LMN 1RK
  837. ZJN SDA2 IF K-DISPLAY IS UP ON THE LEFT SCREEN
  838. LDD CN+2
  839. LPN 77
  840. LMN 1RK
  841. NJN SDA3 IF K-DISPLAY IS NOT UP
  842. LDN 1
  843. SDA2 STD T2 GET EJTO FROM *DSD*-S INPUT REGISTER
  844. LDM CN+3,T2
  845. ZJN SDA3 IF DISPLAY IS NOT ASSIGNED TO A JOB
  846. STD T2
  847. LDD CP READ THE CALLER-S EJTO
  848. ADK TFSW
  849. CRD CN
  850. LDD CN
  851. LMD T2
  852. ZJN SDA5 IF K-DISPLAY IS ASSIGNED TO THIS JOB
  853. SDA3 LDD OT CHECK ORIGIN TYPE
  854. LMK SYOT
  855. NJN SDA4 IF NOT SYSTEM ORIGIN
  856. LDC SDAB FLASH *REQUEST *K* DISPLAY.* MESSAGE
  857. STM SDAC
  858. SDA4 LDD CP CONSOLE MESSAGE = * REQUEST *K* DISPLAY.*
  859. ADN MS2W
  860. CWM SDAA,TR
  861. SDAC EQU *-1
  862. SDA5 RJM CKA CHECK ADDRESS
  863. SDA6 CRD CN READ DISPLAY REGISTER
  864. LDD CP STORE DISPLAY REGISTER
  865. ADC DBAW
  866. STD T1
  867. CRD CM PRESERVE SSM STATUS
  868. LDD CN
  869. LMD CM
  870. LPC 2477
  871. LMD CM
  872. STD CN
  873. LDD T1 UPDATE DBAW
  874. CWD CN
  875. LJM CPMX EXIT
  876.  
  877. SDAA DATA C+REQUEST *K* DISPLAY.+
  878. SDAB DATA C+$REQUEST *K* DISPLAY.+
  879. ROC SPACE 4,20
  880. *** FUNCTION 6.
  881. * ROLLOUT JOB.
  882. * IF PARAMETER .NE 0 PERFORM TIMED/EVENT ROLLOUT WITH
  883. * (RA + PARAMETER) OF FOLLOWING FORMAT -
  884. *
  885. *T 27/ 0,21/ EVENT DESCRIPTOR,12/ TIME
  886. *
  887. * EVENT DESCRIPTOR FORMAT -
  888. *
  889. * 9/ *EQ* DESCRIPTOR.
  890. * 12/ *EVD* (EVENT CODE) DESCRIPTOR.
  891. *
  892. * IF THE USER ENTERS AN EVENT DESCRIPTOR, THE EVENT TIME
  893. * MUST ALSO BE ENTERED OR A SYSTEM DEFAULT WILL BE USED.
  894. *
  895. * ERROR TO *ERR*.
  896. *
  897. * CALLS CKA.
  898. *
  899. * MACROS MONITOR.
  900.  
  901.  
  902. ROC ENTRY
  903. LDD IR+3 CHECK IF USER PARAMETERS SPECIFIED
  904. LPN 77
  905. ADD IR+4
  906. ZJN ROC1 IF NO USER PARAMETERS SPECIFIED
  907.  
  908. * CHECK USER ROLLOUT PARAMETER WORD.
  909.  
  910. RJM CKA SET PARAMETER WORD ADDRESS
  911. CRD CM READ PARAMETER WORD
  912. LDD CP READ TIMED/EVENT CONTROL WORD *TERW*
  913. ADK TERW
  914. CRD CN
  915. LDD CM+2 CHECK USER *EQ* DESCRIPTOR
  916. LPC 777
  917. NJN ROC4 IF NON-SYSTEM EVENT
  918. LDD CM+3 CHECK *EVD* DESCRIPTOR
  919. NJN ROC4 IF SYSTEM EVENT
  920. LDD CM+4 CHECK IF TIME SPECIFIED
  921. NJN ROC5 IF TIMED ROLLOUT
  922.  
  923. * PROCESS ZERO PARAMETER WORD ROLLOUT.
  924.  
  925. LDD CN+2 CHECK FOR EVENT IN *TERW*
  926. LPN 77
  927. ADD CN+3
  928. ADD CN+4
  929. ZJN ROC1 IF NO EVENT WAITING IN *TERW*
  930. LJM ROC12 ISSUE TIMED/EVENT ROLLOUT
  931.  
  932. * ROLLOUT JOB TO JOB SCHEDULER QUEUE.
  933.  
  934. * LDK ROSR SELECT JOB SCHEDULER ROLLOUT
  935. ERRNZ ROSR CODE DEPENDS ON VALUE
  936. ROC1 LJM ROC13 ISSUE ROLLOUT REQUEST
  937.  
  938. * PROCESS ARGUMENT ERROR.
  939.  
  940. ROC3 LDC ERAE * CPM - ARGUMENT ERROR.*
  941. LJM ERR PROCESS ERROR
  942.  
  943. * PROCESS EVENT ROLLOUT.
  944.  
  945. ROC4 LDD CM+2 CHECK *EQ* DESCRIPTOR
  946. SBK /EVENT/EXTM/10000
  947. ZJN ROC6 IF EXTENDED TIME ROLLOUT
  948. LDN ESTP CHECK FOR INCORRECT EST ORDINAL
  949. CRD T0
  950. LDD CM+2
  951. SBD T0+2
  952. PJN ROC3 IF INCORRECT *EQ* DESCRIPTOR
  953. ROC5 UJN ROC7 SET ROLLOUT TIME
  954.  
  955. * PROCESS EXTENDED TIME ROLLOUT.
  956.  
  957. ROC6 LDD CM+4 SAVE ADD-ON TIME
  958. STD T0
  959. ADD CM+3
  960. ZJN ROC1 IF NO TIMES SPECIFIED
  961. LDD CM+3 SET CYCLE MULTIPLIER
  962. STD CM+4
  963. SHN 0-6 CHECK VALUE
  964. NJN ROC3 IF MULTIPLIER .GT. 77
  965. LDD T0 SET ADD-ON TIME
  966. STD CM+3
  967. NJN ROC9 IF NONZERO
  968. LCN 0 ADJUST ADD-ON TIME FOR *1SJ*
  969. STD CM+3
  970. SOD CM+4 ADJUST CYCLE MULTIPLIER FOR *1SJ*
  971. UJN ROC10 SET TIME AND EVENT
  972.  
  973. * SELECT, VALIDATE, AND ADJUST ROLLOUT TIME VALUE.
  974.  
  975. ROC7 LDD CM+4 CHECK TIME SPECIFIED
  976. NJN ROC8 IF NONZERO
  977. LDD CN+2 CHECK FOR TIME IN *TERW*
  978. SHN 21-5
  979. SCN 77
  980. LMD CN+3
  981. SHN 0-11
  982. NJN ROC11 IF TIME IN *TERW*
  983. LDK CRT SELECT DEFAULT TIME
  984. UJN ROC10 SET TIME AND EVENT
  985.  
  986. ROC8 SHN 0-11 VALIDATE TIME SPECIFIED
  987. ZJN ROC9 IF .LE. 777
  988. LDC 777 SELECT MAXIMUM ROLLOUT TIME
  989. UJN ROC10 SET TIME AND EVENT
  990.  
  991. ROC9 LDD CM+4 SELECT TIME SPECIFIED
  992. * UJN ROC10 SET TIME AND EVENT
  993.  
  994. * SET ROLLOUT TIME IN *TERW* IMAGE.
  995. *
  996. * (A) = ROLLOUT TIME.
  997.  
  998. ROC10 SHN 21-10 INSERT LOWER 3 BITS OF TIME
  999. LMD CN+3 MERGE WITH EVENT DESCRIPTOR
  1000. LPC 777000
  1001. LMD CN+3
  1002. STD CN+3
  1003. SHN 5-21 INSERT UPPER 6 BITS OF TIME
  1004. LMD CN+2
  1005. LPN 77
  1006. LMD CN+2
  1007. STD CN+2
  1008. LDD CM+2 CHECK FOR A NEW EVENT DESCRIPTOR
  1009. ADD CM+3
  1010. ZJN ROC12 IF NO EVENT SPECIFIED
  1011.  
  1012. * SET ROLLOUT EVENT.
  1013.  
  1014. ROC11 LDD CN+3 SET *EQ* DESCRIPTOR
  1015. LPC 7000
  1016. LMD CM+2
  1017. STD CN+3
  1018. LDD CM+3 SET *EVD* DESCRIPTOR
  1019. STD CN+4
  1020. ROC12 LDD CN+2 SET UP *ROCM* PARAMETERS
  1021. LPN 77
  1022. SHN 14
  1023. LMD CN+3
  1024. SHN -11
  1025. STD CN+2
  1026. LDD CN+3
  1027. LPC 777
  1028. STD CN+3
  1029. LDD MA WRITE *ROCM* PARAMETER WORD TO MB
  1030. CWD CN
  1031.  
  1032. * ROLLOUT JOB TO TIMED/EVENT QUEUE.
  1033.  
  1034. LDK ROTE SELECT TIMED/EVENT ROLLOUT OPTION
  1035.  
  1036. * ISSUE MONITOR REQUEST TO ROLLOUT JOB.
  1037. *
  1038. * (A) = ROLLOUT OPTION.
  1039.  
  1040. ROC13 STD CM+1 SET REQUEST OPTION
  1041. MONITOR ROCM ISSUE MONITOR REQUEST
  1042. LJM CPMX EXIT
  1043. NEX SPACE 4,10
  1044. *** FUNCTION 7.
  1045. * NOEXIT.
  1046. * SUPPRESS PROCESSING OF *EXIT* COMMAND IF JOB ABORTS.
  1047. * ONEXIT.
  1048. * RESET PROCESSING OF *EXIT* COMMAND.
  1049.  
  1050.  
  1051. NEX ENTRY
  1052. LDD CP READ ENTRY/EXIT CONTROL
  1053. ADN EECW
  1054. CRD CM
  1055. LDD CM ENSURE *NOEXIT* FLAG CLEAR
  1056. LPC 3777
  1057. STD CM
  1058. LDD IR+4 CHECK INPUT PARAMETER
  1059. ZJN NEX1 IF ONEXIT
  1060. LDC 4000 SET *NOEXIT* FLAG
  1061. NEX1 RAD CM
  1062. LDD CP STORE ENTRY/EXIT CONTROL
  1063. ADN EECW
  1064. CWD CM
  1065. LJM CPMX EXIT
  1066. SSM SPACE 4,10
  1067. *** FUNCTION 10.
  1068. * SET/CLEAR SECURE SYSTEM MEMORY FLAG.
  1069.  
  1070.  
  1071. SSM ENTRY
  1072. LDD CP READ CP AREA WORD *DBAW*
  1073. ADC DBAW
  1074. STD T2
  1075. CRD CN
  1076. LDD IR+4 CHECK OPTION
  1077. NJN SSM1 IF SET REQUEST
  1078. STM SSMA
  1079. LDD EP
  1080. LPN 1
  1081. ZJN SSM1 IF NOT SSM=
  1082. ABORT ERIR * CPM - INCORRECT REQUEST.*
  1083.  
  1084. SSM1 LDD CN SET/CLEAR SECURE SYSTEM MEMORY BIT
  1085. LPC 3777
  1086. LMC 4000
  1087. * LMC 0
  1088. SSMA EQU *-1
  1089. STD CN WRITE *DBAW*
  1090. LDD T2
  1091. CWD CN
  1092. LJM CPMX EXIT
  1093. ONS SPACE 4,10
  1094. *** FUNCTION 11.
  1095. * TURN ON SENSE SWITCHES FOR BITS 0 - 5 IN PARAMETER.
  1096.  
  1097.  
  1098. ONS ENTRY
  1099. LDD IR+4 SET SWITCH BITS
  1100. SHN 6
  1101. STD T1
  1102. ONS1 LDD IR+4 FORM SWITCH MASK
  1103. LPN 77
  1104. SHN 6
  1105. LMC -0
  1106. STM ONSA
  1107. LDD CP READ SWITCH WORD
  1108. ADN SNSW
  1109. CRD CM
  1110. LDD CM+4 CLEAR/SET SENSE SWITCHES
  1111. LPC *
  1112. ONSA EQU *-1
  1113. LMD T1
  1114. STD CM+4
  1115. LDD CP STORE SWITCH WORD
  1116. ADN SNSW
  1117. CWD CM
  1118. LDD RA STORE SWITCHES IN (RA)
  1119. SHN 6
  1120. CRD CN READ (RA)
  1121. LDD CN+4 SET NEW SENSE SWITCHES
  1122. LMD CM+4
  1123. LPN 77
  1124. LMD CM+4
  1125. STD CN+4
  1126. LDD RA STORE (RA)
  1127. SHN 6
  1128. CWD CN
  1129. LJM CPMX EXIT
  1130. OFS SPACE 4,10
  1131. *** FUNCTION 12.
  1132. * TURN OFF SENSE SWITCHES FOR BITS 0 - 5 IN PARAMETER.
  1133.  
  1134.  
  1135. OFS ENTRY
  1136. LDN 0 CLEAR SWITCH BITS
  1137. STD T1
  1138. LJM ONS1
  1139. RJN SPACE 4,10
  1140. *** FUNCTION 13.
  1141. * READ JSN TO (PARAMETER).
  1142. *
  1143. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER WORD.
  1144. *
  1145. * EXIT JOB SEQUENCE NUMBER RETURNED IN FORMAT -
  1146. *T ADDR 24/ JSN, 36/ 0
  1147.  
  1148.  
  1149. RJN ENTRY
  1150. LDD CP GET JOB EJT ORDINAL
  1151. ADN TFSW
  1152. CRD CM
  1153. SFA EJT,CM GET JSN
  1154. ERRNZ JSNE CHECK IF WORD 0 IF EJT ENTRY
  1155. CRD CM
  1156. LDN ZERL
  1157. CRD CM+2
  1158. UJN RPR1 RETURN JSN
  1159. RPR SPACE 4,10
  1160. *** FUNCTION 15.
  1161. * READ CPU PRIORITY TO (PARAMETER).
  1162.  
  1163.  
  1164. RPR ENTRY
  1165. LDN ZERL
  1166. CRD CM
  1167. LDD CP
  1168. ADN CWQW GET CPU PRIORITY
  1169. CRD CN
  1170. LDD CN GET JOB CPU PRIORITY
  1171. SHN -3
  1172. LPC 177
  1173. STD CM+4
  1174. RPR1 RJM CKA CHECK PARAMETER ADDRESS
  1175. CWD CM STORE RESPONSE
  1176. LJM CPMX EXIT
  1177. EDI SPACE 4,10
  1178. *** FUNCTION 20.
  1179. * ENTER DEMAND FILE RANDOM INDEX.
  1180. *
  1181. * ENTRY (IR+3 - IR+4) = DEMAND FILE RANDOM INDEX.
  1182. *
  1183. * CALLER MUST HAVE SSJ= ENTRY POINT SET.
  1184.  
  1185.  
  1186. EDI ENTRY
  1187. LDD CP READ DEMAND FILE INDEX WORD
  1188. ADN RFCW
  1189. CRD CN
  1190. LDD IR+3
  1191. LMD CN+3
  1192. LPN 77
  1193. LMD CN+3
  1194. STD CN+3
  1195. LDD IR+4
  1196. STD CN+4
  1197. LDD CP UPDATE DEMAND FILE INDEX WORD
  1198. ADN RFCW
  1199. CWD CN
  1200. LJM CPMX RETURN
  1201. SLC SPACE 4,10
  1202. *** FUNCTION 22.
  1203. * SET LOADER CONTROL WORD.
  1204.  
  1205.  
  1206. SLC ENTRY
  1207. RJM CKA CHECK ADDRESS
  1208. CRD CM READ CONTROL WORD
  1209. LDD CP STORE CONTROL WORD
  1210. ADC LB1W
  1211. CWD CM
  1212. LJM CPMX EXIT
  1213. RFL SPACE 4,10
  1214. *** FUNCTION 23.
  1215. * SET LAST RFL = PARAMETER.
  1216. *
  1217. * ENTRY (IR+3, IR+4) = RFL REQUEST.
  1218. * BIT 2**11 IN IR+3 IS SET FOR EXTENDED MEMORY REQUEST
  1219. * AND ZERO FOR CM REQUEST. EXTENDED MEMORY REQUESTS
  1220. * ARE MULTIPLES OF 1000B.
  1221.  
  1222.  
  1223. RFL ENTRY
  1224. RJM PMP PROCESS ARGUMENT
  1225. STD CM+1 SET NFL
  1226. LDD CM
  1227. SBD CM+1
  1228. MJN RFL1 IF NFL .GT. MFL
  1229. LDD T7 WRITE FL CONTROL WORD
  1230. CWD CM
  1231. LJM CPMX EXIT
  1232.  
  1233. RFL1 ABORT ERFL * RFL BEYOND MFL.*
  1234. SSB SPACE 4,10
  1235. *** FUNCTION 26.
  1236. * SET SUBSYSTEM FLAG = PARAMETER.
  1237.  
  1238.  
  1239. SSB ENTRY
  1240. LDD IR+3 CHECK SUBSYSTEM INDEX
  1241. NJN SSB1 IF INCORRECT PARAMETER
  1242. LDD IR+4
  1243. SBN MSYS
  1244. PJN SSB1 IF INCORRECT SUBSYSTEM
  1245. ADN MSYS
  1246. RJM SSF SET SUBSYSTEM FLAG
  1247. MJN SSB2 IF NOT VALIDATED
  1248. LJM CPMX RETURN
  1249.  
  1250. SSB1 ABORT ERAE * CPM ARGUMENT ERROR.*
  1251.  
  1252. SSB2 ABORT ERIU * CPM - USER ACCESS NOT VALID.*
  1253. ROT SPACE 4,10
  1254. *** FUNCTION 27.
  1255. * READ ORIGIN TYPE TO (PARAMETER).
  1256. *
  1257. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER WORD.
  1258. *
  1259. * EXIT JOB ORIGIN TYPE (OT) RETURNED IN FORMAT -
  1260. *T ADDR 54/0, 6/OT
  1261.  
  1262.  
  1263. ROT ENTRY
  1264. ROT1 LDD CP GET JOB EJT ORDINAL
  1265. ADN TFSW
  1266. CRD CM
  1267. SFA EJT,CM SET ORIGIN TYPE
  1268. ADN SCLE
  1269. CRD CM
  1270. LDD CM
  1271. LPN 17 MASK ORIGIN TYPE
  1272. * SCN 60 USED BY FUNCTION 111
  1273. ROTA EQU *-1
  1274. STD CM+4
  1275. LDN ZERL
  1276. CRD CM-1
  1277. RJM CKA CHECK ADDRESS
  1278. CWD CM STORE ORIGIN TYPE
  1279. LJM CPMX EXIT
  1280. SCP SPACE 4,10
  1281. *** FUNCTION 31.
  1282. * SELECT CPU(S) ALLOWABLE FOR JOB TO USE.
  1283. * PARAM = 0, RUN JOB IN ANY CPU.
  1284. * PARAM = 1,RUN JOB IN CPU - 0 ONLY. (6600 CPU ON 6700)
  1285. * PARAM = 2, RUN JOB IN CPU - 1 ONLY.
  1286. * IF THE CPU SELECTED IS NOT AVAILABLE, THEN NO SELECTION
  1287. * IS PERFORMED, AND THE JOB IS ALLOWED TO CONTINUE.
  1288. *
  1289. * NOTE - ON A DUAL CPU MACHINE WITH CACHE, CERTAIN SUBSYSTEMS
  1290. * MAY ONLY RUN IN CPU 0. FOR THESE SUBSYSTEMS, THIS REQUEST
  1291. * WILL BE IGNORED.
  1292.  
  1293.  
  1294. SCP ENTRY
  1295. LDN EIBP
  1296. CRD CM
  1297. LDD CM
  1298. SHN 21-12
  1299. PJN SCP1 IF NOT A DUAL CPU MACHINE WITH CACHE
  1300. LDD CP
  1301. ADK JCIW
  1302. CRD CM
  1303. LDD CM+2
  1304. ADK -LSSI
  1305. MJN SCP1 IF NOT A SUBSYSTEM
  1306. STD T1
  1307. LDM SCPA,T1
  1308. NJN SCP2 IF JOB MUST RUN IN CPU 0, IGNORE REQUEST
  1309. SCP1 LDN CPUS SELECT CPU(S) ALLOWABLE FOR JOB EXECUTION
  1310. STD CM+1
  1311. LDD IR+4 CHECK LEGAL CPU SELECTION
  1312. STD CM+4
  1313. SBN 3
  1314. PJN SCP3 IF INCORRECT REQUEST
  1315. MONITOR SJCM
  1316. SCP2 LJM CPMX EXIT
  1317.  
  1318. SCP3 ABORT ERAE * CPM - ARGUMENT ERROR.*
  1319.  
  1320.  
  1321. SCPA INDEX TABLE OF SUBSYSTEMS FORCED INTO CPU 0
  1322. .SUB HERE
  1323. INDEX MXSI-LSSI
  1324. EET SPACE 4,10
  1325. *** FUNCTION 34.
  1326. * ENTER EVENT IN SYSTEM EVENT TABLE.
  1327.  
  1328.  
  1329. EET ENTRY
  1330. LDN 0
  1331. STD CM+1
  1332. LDD IR+3
  1333. STD CM+3
  1334. LDD IR+4
  1335. STD CM+4
  1336. MONITOR EATM ENTER EVENT
  1337. LDD CM+1
  1338. NJP RCL IF EVENT TABLE IS FULL
  1339. LJM CPMX RETURN
  1340. SPN SPACE 4,10
  1341. *** FUNCTION 35.
  1342. * SET PACKNAME AND PACK TYPE.
  1343. *
  1344. * ENTRY (IR+3 - IR+4) = ADDRESS OF PACKNAME PARAMETER WORD.
  1345. *
  1346. *T ADDR 42/NAME,18/TYPE
  1347. * WHERE *NAME* IS A LEFT-JUSTIFIED PACKNAME WITH ZERO FILL,
  1348. * AND *TYPE* IS A DISPLAY CODE PACK TYPE (E.G. *DI3*).
  1349.  
  1350.  
  1351. SPN ENTRY
  1352. RJM CKA CHECK ADDRESS
  1353. CRD FN READ UP PACK NAME
  1354. LDD FN+3
  1355. SCN 77
  1356. ADD FN+2
  1357. ADD FN+1
  1358. ADD FN
  1359. ZJN SPN2 IF NO PACK NAME
  1360. RJM VFN VERIFY PACK NAME
  1361. NJN SPN3 IF LEGAL PACK NAME
  1362. SPN1 ABORT ERPN * CPM - INCORRECT PACK NAME.*
  1363.  
  1364. SPN2 LDN ZERL CLEAR PACK TYPE
  1365. CRD FN
  1366. SPN3 LDD FN+3 VERIFY PACK TYPE
  1367. LPN 77
  1368. SHN 14
  1369. ADD FN+4
  1370. ZJN SPN4 IF PACK TYPE NOT SPECIFIED
  1371. LPN 77 CHECK NUMBER OF SPINDLES
  1372. SBN 1R0
  1373. MJN SPN1 IF LAST CHARACTER NOT NUMERIC
  1374. SBN 1R9-1R0+1
  1375. PJN SPN1 IF LAST CHARACTER NOT NUMERIC
  1376. LDD FN+4
  1377. SHN -6
  1378. ZJN SPN1 IF SECOND CHARACTER MISSING
  1379. SBN 1R0
  1380. PJN SPN1 IF SECOND CHARACTER NOT ALPHABETIC
  1381. LDD FN+3
  1382. LPN 77
  1383. ZJN SPN1 IF FIRST CHARACTER MISSING
  1384. SBN 1R0
  1385. PJN SPN1 IF FIRST CHARACTER NOT ALPHABETIC
  1386.  
  1387. * ENTER PACK NAME AND TYPE INTO CONTROL POINT AREA.
  1388.  
  1389. SPN4 LDD CP
  1390. ADC PKNW
  1391. CWD FN
  1392.  
  1393. * ISSUE ACCOUNT FILE MESSAGE.
  1394.  
  1395. LDC SPNA+2
  1396. STD T1
  1397. LDD FN
  1398. ZJN SPN5 IF PACKNAME NOT SPECIFIED
  1399. LDN 0 SET EOL ON PACKNAME
  1400. STD FN+4
  1401. LDD FN+3
  1402. SCN 77
  1403. STD FN+3
  1404. LDC =C*, * ADD COMMA TO MESSAGE
  1405. RJM ACS
  1406. LDN FN SET PACKNAME IN MESSAGE
  1407. RJM ACS
  1408. SPN5 LDC =C*.* TERMINATE MESSAGE
  1409. RJM ACS
  1410. LDC SPNA+ACFN
  1411. RJM DFM ISSUE MESSAGE TO ACCOUNT FILE
  1412. LJM CPMX EXIT
  1413.  
  1414.  
  1415. SPNA DATA C*APPN*
  1416. BSSZ 6
  1417. RPN SPACE 4,10
  1418. *** FUNCTION 36.
  1419. * RETURN PACKNAME AND PACK TYPE.
  1420. *
  1421. * ENTRY (IR+3 - IR+4) = ADDRESS TO RETURN PACKNAME TO.
  1422. *
  1423. * EXIT CURRENT CONTROL POINT VALUE RETURNED IN FORMAT -
  1424. *
  1425. *T ADDR 42/ PACK NAME,18/ PACK TYPE
  1426.  
  1427.  
  1428.  
  1429. RPN ENTRY
  1430. LDD CP RETURN PACKNAME AND PACK TYPE
  1431. ADC PKNW
  1432. CRD CM
  1433. RJM CKA CHECK ADDRESS
  1434. CWD CM
  1435. LJM CPMX EXIT
  1436. RVN SPACE 4,15
  1437. *** FUNCTION 44.
  1438. * RETURN VERSION NAME.
  1439. *
  1440. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER WORD.
  1441. *
  1442. *T ADDR 1/ F, 11/ BC, 12/ SB, 12/ BP, 6/ 0, 18/ WADDR
  1443. *
  1444. * F = 0, TO RETURN VERSION NAME (*SVNL*) FROM SOURCE FIELD.
  1445. * = 1, TO RETURN VERSION NAME(*SVNL*) AND SYSTEM TITLE LINE
  1446. * (*SYTL*) FROM SOURCE FIELD.
  1447. *
  1448. * BC = NUMBER OF BYTES TO RETURN FROM SOURCE FIELD.
  1449. * IF F=0, 1 - 10D BYTES.
  1450. * IF F=1, 1 - 30D BYTES.
  1451. *
  1452. * SB = BYTE IN SOURCE FIELD AT WHICH TO BEGIN TRANSFER.
  1453. * IF F=0, BYTE 0 - 9D. (BC + SB .LT. 11D)
  1454. * IF F=1, BYTE 0 - 29D. (BC + SB .LT. 31D)
  1455. *
  1456. * BP = BYTE POSITION WITHIN RECEIVING FIELD (WADDR) AT
  1457. * WHICH TO BEGIN TRANSFER. (BYTE 0 - 4)
  1458. *
  1459. * WADDR = BEGINNING ADDRESS OF BLOCK TO RECEIVE DATA.
  1460. *
  1461. * EXIT IF F=0, VERSION NAME IS TRANSFERRED FROM CMR TO
  1462. * SPECIFIED ADDRESS.
  1463. * IF F=1, SYSTEM TITLE LINE AND VERSION NAME ARE BOTH
  1464. * TRANSFERRED FROM CMR TO SPECIFIED ADDRESS.
  1465.  
  1466.  
  1467. RVN ENTRY
  1468. RJM CKA READ PARAMETER WORD
  1469. CRD CM
  1470. LDN 2
  1471. STD T1 SAVE WORD COUNT
  1472. LDD CM
  1473. SHN 21-13
  1474. PJN RVN1 IF FLAG NOT SET
  1475. LDN 6
  1476. STD T1 SAVE WORD COUNT
  1477. RVN1 LDD CM+3 VALIDATE RETURN ADDRESS
  1478. LPN 77
  1479. STD CM+3
  1480. SHN 14
  1481. LMD CM+4
  1482. MJN RVN2 IF ADDRESS OUT OF RANGE
  1483. ADD T1 ADD WORD COUNT
  1484. SHN -6
  1485. SBD FL
  1486. MJN RVN3 IF .LT. FL - WORD COUNT
  1487. RVN2 ABORT ERAE * CPM - ARGUMENT ERROR.*
  1488.  
  1489. RVN3 LDD CM+2 VALIDATE BYTE POSITION
  1490. SBN 5
  1491. PJN RVN2 IF INCORRECT BYTE POSITION
  1492. LDD CM VALIDATE BYTE COUNT
  1493. SHN 21-13
  1494. MJN RVN4 IF FLAG SET
  1495. SHN 13-21
  1496. ZJN RVN2 IF INCORRECT BYTE COUNT
  1497. SBN 11D
  1498. PJN RVN2 IF INCORRECT BYTE COUNT
  1499. LDD CM
  1500. ADD CM+1
  1501. SBN 11D
  1502. PJN RVN2 IF INCORRECT COMBINATION
  1503. LDN SVNL
  1504. UJN RVN5 READ VERSION NAME
  1505.  
  1506. RVN4 SHN 13-21
  1507. LPC 3777 CLEAR FLAG
  1508. STD CM
  1509. ZJN RVN2 IF INCORRECT BYTE COUNT
  1510. SBN 31D
  1511. PJN RVN2 IF INCORRECT BYTE COUNT
  1512. LDD CM
  1513. ADD CM+1
  1514. SBN 31D
  1515. PJP RVN2 IF INCORRECT COMBINATION
  1516. LDN SYTL READ SYSTEM TITLE AND VERSION NAME
  1517. RVN5 CRM RVNA,T1
  1518. AOD T1
  1519. LDD CM+3 READ RETURN FIELD
  1520. SHN 6
  1521. ADD RA
  1522. SHN 6
  1523. ADD CM+4
  1524. CRM RVNB,T1
  1525.  
  1526. * MERGE VERSION NAME WITH RETURN FIELD.
  1527.  
  1528. RVN6 SOD CM DECREMENT BYTE COUNT
  1529. MJN RVN10 IF MERGE COMPLETE
  1530. LDM RVNA,CM+1 CHECK FOR ZERO CHARACTERS
  1531. STM RVNB,CM+2
  1532. ZJN RVN7 IF ZERO BYTE
  1533. LPN 77
  1534. NJN RVN9 IF NO ZERO CHARACTER
  1535. LDM RVNA,CM+1 BLANK FILL ZERO CHARACTERS
  1536. LMN 1R
  1537. UJN RVN8 CONTINUE
  1538.  
  1539. RVN7 LDC 2R BLANK FILL ZERO CHARACTERS
  1540. RVN8 STM RVNB,CM+2
  1541. RVN9 AOD CM+1 INCREMENT INDICES
  1542. AOD CM+2
  1543. UJN RVN6 CHECK NEXT BYTE
  1544.  
  1545. * REWRITE MERGED RETURN FIELD.
  1546.  
  1547. RVN10 LDD CM+3
  1548. SHN 6
  1549. ADD RA
  1550. SHN 6
  1551. ADD CM+4
  1552. CWM RVNB,T1
  1553. LJM CPMX RETURN
  1554. RAC SPACE 4,30
  1555. *** FUNCTION 51.
  1556. * RETURN JOB ACTIVITY INFORMATION.
  1557. *
  1558. * ENTRY (IR+3 - IR+4) = ADDRESS FOR RETURN OF A ONE WORD
  1559. * REPLY BLOCK.
  1560. *
  1561. * EXIT PARAMETER BLOCK RETURNED IN THE FOLLOWING FORMAT.
  1562. *
  1563. *T ADDR 12/SHORT , 1/L , 23/0 , 12/INS , 12/0
  1564. *
  1565. * SHORT SHORT TERM ACTIVITY COUNTS. INCREMENTED BY ONE
  1566. * FOR EACH OF THE FOLLOWING.
  1567. * PPU ACTIVITY, NOT INCLUDING *DIS* FLAG.
  1568. * *RECW* REQUESTS (INCLUDES PPU IN RECALL AND TAPE
  1569. * ACTIVITY).
  1570. * ROLLOUT REQUESTED.
  1571. * SCP WAIT RESPONSE INDICATORS.
  1572. * TERMINAL OUTPUT FET ADDRESS PRESENT.
  1573. * TERMINAL INPUT FET ADDRESS PRESENT.
  1574. * L LONG TERM ACTIVITY COUNTS. FIELD IS ONE IF ANY OF
  1575. * THE FOLLOWING CONDITIONS ARE MET.
  1576. * *K* OR *L* DISPLAY INTERFACE ACTIVE.
  1577. * *CFO* ENTRY ENABLED.
  1578. * SCP LONG TERM CONNECTION ESTABLISHED.
  1579. * *DIS* PACKAGE ENABLED.
  1580. * INS RESERVED FOR INSTALLATIONS.
  1581. *
  1582. * USES T1, T3 - T7, BA - BA+4, CM - CM+4,
  1583. * CN - CN+4, FN - FN+4, UN - UN+4.
  1584. *
  1585. * CALLS CKA.
  1586.  
  1587.  
  1588. RAC ENTRY
  1589. LDN ZERL PRESET REPLY WORD
  1590. CRD CN
  1591.  
  1592. * COMPUTE SHORT TERM ACTIVITIES.
  1593.  
  1594. LDD CP READ CONTROL POINT AREA WORDS
  1595. ADN STSW READ PPU AND TAPE ACTIVITY
  1596. CRD CM
  1597. ADN JCIW-STSW READ JOB CONTROL INFORMATION
  1598. CRD T3
  1599. ADN TIOW-JCIW READ TERMINAL OUTPUT FET ADDRESS
  1600. CRD UN
  1601. ADN TINW-TIOW READ TERMINAL INPUT FET ADDRESS
  1602. CRD FN
  1603. ADN SSCW-TINW READ WAIT RESPONSE INDICATORS
  1604. CRD BA
  1605. LDD T3+3 CHECK *DIS* FLAG
  1606. SHN -11 RIGHT JUSTIFY *DIS* BIT
  1607. LPN 1
  1608. STD T3
  1609. LDD CM CHECK PPU ACTIVITY
  1610. LPN 37
  1611. SBD T3 SUBTRACT OFF *DIS* ACTIVITY
  1612. SBN 1 COMPENSATE FOR THIS PPU
  1613. ZJN RAC1 IF NO PPU ACTIVITY
  1614. AOD CN INCREMENT SHORT TERM ACTIVITY COUNT
  1615. RAC1 LDD CM+4 CHECK FOR *RECW* REQUESTS
  1616. SHN -4
  1617. LPN 17
  1618. ZJN RAC2 IF NO RECALL/TAPE ACTIVITY
  1619. AOD CN INCREMENT SHORT TERM ACTIVITY COUNT
  1620. RAC2 LDD CM+2 READ ROLLOUT FLAG
  1621. LPN 1 INCREMENT SHORT TERM ACTIVITY IF SET
  1622. RAD CN
  1623. LDN 5 CHECK WAIT RESPONSE INDICATORS
  1624. STD T1
  1625. RAC3 SOD T1
  1626. MJN RAC4 IF CHECK COMPLETE
  1627. LDM BA,T1
  1628. LPN 7 CHECK WAIT RESPONSE INDICATOR
  1629. ZJN RAC3 IF NO WAIT RESPONSE SET
  1630. AOD CN INCREMENT SHORT TERM ACTIVITY COUNT
  1631. RAC4 LDD UN+3 CHECK TERMINAL OUTPUT FET ADDRESS
  1632. LPN 37
  1633. ADD UN+4
  1634. ZJN RAC5 IF NO TERMINAL OUTPUT
  1635. AOD CN INCREMENT SHORT TERM ACTIVITY COUNT
  1636. RAC5 LDD FN+3 CHECK TERMINAL INPUT FET ADDRESS
  1637. SCN 77
  1638. SHN 6
  1639. LMD FN+2
  1640. ZJN RAC6 IF NO TERMINAL INPUT
  1641. AOD CN INCREMENT SHORT TERM ACTIVITY COUNT
  1642.  
  1643. * COMPUTE LONG TERM ACTIVITIES.
  1644.  
  1645. RAC6 LDD T3 CHECK *DIS* FLAG
  1646. NJP RAC9 IF *DIS* PACKAGE ENABLED
  1647. LDD CP READ CONTROL POINT AREA WORDS
  1648. ADC DBAW READ *K* DISPLAY INTERFACE WORD
  1649. CRD CM
  1650. LDD CM CHECK FOR *K* DISPLAY ACTIVITY
  1651. LPN 77
  1652. ADD CM+1
  1653. ADD CM+2
  1654. ADD CM+3
  1655. ADD CM+4
  1656. NJN RAC8 IF *K* DISPLAY ACTIVITY
  1657. LDN 4 CHECK LONG TERM CONNECTION SET
  1658. STD T1
  1659. LDC LDSP GET FWA *L* DISPLAY BUFFER
  1660. CRD CM
  1661. LDD CM+2 GET *L* DISPLAY JOB INTERLOCK
  1662. SHN 14
  1663. ADD CM+3
  1664. CRD CM
  1665. LDD CM
  1666. ZJN RAC7 IF NO JOB ASSIGNED TO *L* DISPLAY
  1667. LDD CP GET JOB EJT ORDINAL
  1668. ADN TFSW
  1669. CRD FN
  1670. SFA EJT,FN GET JOB SEQUENCE NUMBER
  1671. ERRNZ JSNE CODE DEPENDS ON VALUE
  1672. CRD FN
  1673. LDD CM COMPARE JOB SEQUENCE NUMBERS
  1674. LMD FN
  1675. NJN RAC7 IF THIS JOB NOT ASSIGNED TO *L* DISPLAY
  1676. LDD CM+1
  1677. LMD FN+1
  1678. ZJN RAC9 IF THIS JOB IS ASSIGNED TO *L* DISPLAY
  1679. RAC7 LDM BA,T1
  1680. LPC 4210
  1681. RAC8 NJN RAC9 IF LONG TERM CONNECTION SET
  1682. SOD T1
  1683. NJN RAC7 IF CHECK NOT COMPLETE
  1684. LDD RA CHECK *CFO* ENABLED
  1685. SHN 6
  1686. * ADN 0 READ RA+0
  1687. CRD CM
  1688. LDD CM+3
  1689. SHN 21-2
  1690. PJN RAC10 IF *CFO* ENTRY NOT ENABLED
  1691. RAC9 LDC 4000 SET LONG TERM ACTIVITY INDICATION
  1692. STD CN+1
  1693.  
  1694. * RETURN RESPONSE TO CALLER.
  1695.  
  1696. RAC10 LDN 0 WORD COUNT - 1
  1697. STD T1
  1698. RJM CKA CHECK FOR VALID PARAMETER ADDRESS
  1699. CWD CN RETURN ACTIVITY INFORMATION TO CALLER
  1700. LJM CPMX EXIT
  1701. MFL SPACE 4,10
  1702. *** FUNCTION 52.
  1703. * SET MFL = PARAMETER.
  1704. *
  1705. * ENTRY (IR+3, IR+4) = RFL REQUEST.
  1706. * BIT 2**11 IN IR+3 IS SET FOR EXTENDED MEMORY REQUEST
  1707. * AND ZERO FOR CM REQUEST. EXTENDED MEMORY REQUESTS
  1708. * ARE MULTIPLES OF 1000B.
  1709.  
  1710.  
  1711. MFL ENTRY
  1712. LDC NJNI-UJNI SET ZERO CM PARAMETER CHECK
  1713. RAM PMPA
  1714. RJM PMP PROCESS ARGUMENT
  1715. NJN MFL1 IF MFL ARGUMENT NON-ZERO
  1716. LDD CM+2 SET MFL TO MAX FL
  1717. MFL1 STD CM SET MFL
  1718. LDD CM+2
  1719. SBD CM
  1720. MJN MFL4 IF MFL .GT. MAX FL
  1721. LDD IR+3
  1722. SHN 21-13
  1723. MJN MFL2 IF PROCESSING EXTENDED MEMORY MFL
  1724. LDD CM
  1725. SBN CTFL
  1726. PJN MFL2 IF MFL VALID
  1727. LDN CTFL
  1728. STD CM
  1729. AOM MFLA SET *ISSUE MESSAGE* FLAG
  1730. MFL2 LDN 0 CLEAR *RFL* VALUE
  1731. STD CM+1
  1732. LDD T7 WRITE FL CONTROL WORD
  1733. CWD CM
  1734. LDN 0
  1735. * LDN 1 (MFL .LT. *CTFL* REQUESTED)
  1736. MFLA EQU *-1
  1737. ZJN MFL3 IF NO MESSAGE TO BE ISSUED
  1738. LDC =C* MFL REQUEST TOO SMALL, MINIMUM USED.*
  1739. RJM DFM ISSUE DAYFILE MESSAGE
  1740. MFL3 LJM CPMX EXIT
  1741.  
  1742. MFL4 ABORT ERNV * XX NOT VALIDATED.*
  1743. CSC SPACE 4,10
  1744. *** FUNCTION 53.
  1745. * ENABLE/DISABLE SRU CALCULATION.
  1746. *
  1747. * ENTRY (IR+3 - IR+4) = 12/FLAG,12/PARAM
  1748. *
  1749. * FLAG = 0 IF DISABLE REQUESTED.
  1750. * .NE. 0 IF ENABLE REQUESTED.
  1751. *
  1752. * PARAM = UNIT CHARGE.
  1753.  
  1754.  
  1755. CSC ENTRY
  1756. LDD CP CLEAR DISABLE SRU CALCULATION
  1757. ADN MP3W
  1758. CRD CN
  1759. STD T1
  1760. LDD CN CLEAR DISABLE FLAG
  1761. LPC 3777
  1762. STD CN
  1763. LDD T1
  1764. CWD CN
  1765. LDD IR+4 CHECK INCREMENT
  1766. ZJN CSC1 IF NO INCREMENT REQUESTED
  1767. STM CSCA+4 STORE INCREMENT
  1768. LDD MA
  1769. CWM CSCA,ON
  1770. LDN 1
  1771. STD CM+1
  1772. STD CM+2
  1773. MONITOR UADM
  1774. CSC1 LDD IR+3
  1775. NJN CSC2 IF ENABLE REQUESTED
  1776. LDC 4000 SET DISABLE
  1777. RAD CN
  1778. LDD T1
  1779. CWD CN
  1780. CSC2 LJM CPMX EXIT
  1781.  
  1782. CSCA CON AIAD SUBFUNCTION
  1783. CON ADAW WORD TO UPDATE
  1784. CON 0D*100+20D FIELD POSITION AND WIDTH
  1785. CON 0
  1786. CON 0 INCREMENT VALUE
  1787. GPF SPACE 4,15
  1788. *** FUNCTION 57.
  1789. * GET PERMANENT FILE PARAMETERS FROM CONTROL POINT AREA.
  1790. *
  1791. * ENTRY (IR+3 - IR+4) = ADDRESS *ADDR* OF 3 WORD BLOCK FOR
  1792. * RESPONSE.
  1793. *
  1794. * EXIT CURRENT CONTROL POINT PARAMETERS RETURNED IN FORMAT -
  1795. *
  1796. *T ADDR 42/ FAMILY NAME,18/ 0
  1797. *T, 42/ PACK NAME,18/ PACK TYPE
  1798. *T, 42/ USER NAME,18/ USER INDEX
  1799.  
  1800.  
  1801. GPF ENTRY
  1802. LDD CP READ PF CONTROL WORD
  1803. ADN PFCW
  1804. CRD CM
  1805. ADN UIDW-PFCW READ USER NAME AND USER INDEX
  1806. CRD UN
  1807. ADN PKNW-UIDW READ PACKNAME AND PACK TYPE
  1808. CRD CN
  1809.  
  1810. * GET FAMILY NAME.
  1811.  
  1812. SFA EST,CM+3
  1813. ADK EQDE
  1814. CRD CM
  1815. LDD CM+4 READ FAMILY NAME
  1816. SHN 3
  1817. ADN PFGL
  1818. CRD FN
  1819.  
  1820. * SET UP WORDS FOR PARAMETER BLOCK.
  1821.  
  1822. LDN 0 CLEAR LOWER PORTION OF FAMILY NAME WORD
  1823. STD FN+4
  1824. LDD FN+3
  1825. SCN 77
  1826. STD FN+3
  1827. LDD UN+3 SET USER INDEX
  1828. SCN 40
  1829. STD UN+3
  1830.  
  1831. * WRITE WORDS TO PARAMETER BLOCK.
  1832.  
  1833. LDN 2 CHECK ADDRESS
  1834. STD T1
  1835. RJM CKA
  1836. CWD FN WRITE FAMILY NAME
  1837. ADN 1 WRITE PACKNAME AND PACK TYPE
  1838. CWD CN
  1839. ADN 1 WRITE USER NAME AND USER INDEX
  1840. CWD UN
  1841. LJM CPMX EXIT
  1842. JCI SPACE 4,30
  1843. *** FUNCTION 74.
  1844. * JOB CONTROL INFORMATION.
  1845. *
  1846. * ENTRY (IR+3 - IR+4) = 6/FN,1/0,17/ADDRESS OF PARAMETER BLOCK
  1847. * FN = 0 FOR GETJCI
  1848. * FN = 1 FOR SETJCI
  1849. *
  1850. * EXIT TWO-WORD PARAMETER BLOCK CONTAINS
  1851. *
  1852. *T, 6/EFG,18/REG,12/CCL,12/EM,6/SSW,6/0
  1853. *T, 6/EF,18/R3,18/R2,18/R1
  1854. * WHERE
  1855. * EFG = GLOBAL ERROR FLAG.
  1856. * REG = GLOBAL REGISTER.
  1857. * CCL = RESERVED FOR CCL USE.
  1858. * EM = EXIT MODE.
  1859. * SSW = SENSE SWITCHES.
  1860. * EF = LAST ERROR FLAG ENCOUNTERED.
  1861. * R3 = JOB CONTROL REGISTER 3.
  1862. * R2 = JOB CONTROL REGISTER 2.
  1863. * R1 = JOB CONTROL REGISTER 1.
  1864. *
  1865. * USES EP, IR+3, T1, BA - BA+4, CM - CM+4, CN - CN+4,
  1866. * FN - FN+4.
  1867. *
  1868. * CALLS CKA.
  1869.  
  1870. JCI ENTRY
  1871. LDD IR+3 SAVE SUBFUNCTION CODE
  1872. STD EP
  1873. LPN 77 CLEAR OUT SUBFUNCTION CODE
  1874. STD IR+3
  1875. LDN 2 WORD COUNT
  1876. STD T1
  1877. RJM CKA CHECK ADDRESS
  1878. CRD FN
  1879. CRD BA
  1880. ADN 1 READ SECOND WORD
  1881. CRD CN
  1882. LDD EP CHECK FOR SUBFUNCTION
  1883. SHN -6
  1884. ZJN JCI1 IF GET JOB CONTROL INFORMATION
  1885. LJM JCI2 SET JOB CONTROL INFORMATION
  1886.  
  1887. * GET JOB CONTROL INFORMATION TO RETURN TO USER.
  1888.  
  1889. JCI1 LDD CP GET JOB CONTROL INFORMATION
  1890. ADC JCDW
  1891. CRM TJCI,T1
  1892. LDD CP GET EXIT MODE FROM EXCHANGE PACKAGE
  1893. ADN 3
  1894. CRD CN
  1895. ADN SNSW-3 GET SENSE SWITCHES
  1896. CRD CM
  1897. LDD CN
  1898. STM TJCI+3
  1899. LDD CM+4
  1900. SCN 77
  1901. STM TJCI+4
  1902.  
  1903. * RETURN PARAMETER BLOCK TO SPECIFIED ADDRESS.
  1904.  
  1905. RJM CKA GET ADDRESS
  1906. CWM TJCI,T1
  1907. LJM CPMX
  1908.  
  1909. * RETURN JOB CONTROL INFORMATION.
  1910.  
  1911. JCI2 LDD CP SET SENSE SWITCHES
  1912. ADN SNSW
  1913. CRD CM
  1914. LDD CM+4
  1915. LPN 77
  1916. STD CM+4
  1917. LDD FN+4
  1918. SCN 77
  1919. RAD CM+4
  1920. LDD CP REWRITE WORD SNSW
  1921. ADN SNSW
  1922. CWD CM
  1923. ADN SEPW-SNSW GET SPECIAL ENTRY POINT WORD
  1924. CRD CM
  1925. ADN JCRW-SEPW REPLACE JOB CONTROL REGISTERS
  1926. CWD CN
  1927. SBN JCRW-JCDW GET JOB CONTROL DATA
  1928. CRD CN
  1929. LDD FN REPLACE GLOBAL ERROR FLAG
  1930. STD CN
  1931. LDD FN+1 REPLACE GLOBAL REGISTER
  1932. STD CN+1
  1933. LDD CM CHECK IF SSJ=
  1934. SHN 21-2
  1935. PJN JCI3 IF NOT *SSJ=*
  1936. LDD FN+2 SET CCL DATA
  1937. STD CN+2
  1938. JCI3 LDD CP REPLACE WORD *JCDW*
  1939. ADC JCDW
  1940. CWD CN
  1941. LJM CPMX RETURN
  1942.  
  1943. TJCI BSS 2*5
  1944. PRO SPACE 4,15
  1945. *** FUNCTION 75.
  1946. * *PROTECT* MACRO PROCESSOR TO SET/CLEAR JOB CONTROL FLAGS
  1947. * IN WORD *JCIW* OF THE CONTROL POINT AREA.
  1948. *
  1949. * ENTRY (IR+3 - IR+4) = 6/ , 6/OFF , 6/ , 6/ ON
  1950. * OFF = FLAGS TO CLEAR IN JOB CONTROL FIELD OF *JCIW*.
  1951. * ON = FLAGS TO SET IN JOB CONTROL FIELD OF *JCIW*.
  1952. *
  1953. * USES CM - CM+4, CN - CN+4.
  1954. *
  1955. * MACROS ABORT, MONITOR.
  1956.  
  1957.  
  1958. PRO ENTRY
  1959. LDD IR+4 CHECK FOR ECS PROTECTION REQUEST
  1960. LPN 1
  1961. ZJN PRO1 IF NOT EXTENDED MEMORY PROTECTION
  1962. LDD CP READ ACCOUNT ACCESS CONTROL WORD
  1963. ADK AACW
  1964. CRD CN
  1965. LDD CN+3 CHECK PROTECT FUNCTION VALIDATION
  1966. SHN 21-2
  1967. MJN PRO1 IF USER VALIDATED TO PROTECT ECS
  1968. ABORT ERIU * CPM - USER ACCESS NOT VALID.*
  1969.  
  1970. * CLEAR JOB CONTROL FLAGS IN *JCIW*.
  1971.  
  1972. PRO1 LDD IR+3
  1973. LPN 77
  1974. ZJN PRO2 IF NO CLEAR REQUEST
  1975. STD CM+4
  1976. LDN CCTS SELECT CLEAR JOB CONTROL FLAG(S)
  1977. STD CM+1
  1978. MONITOR SJCM
  1979.  
  1980. * SET JOB CONTROL FLAGS IN *JCIW*.
  1981.  
  1982. PRO2 LDD IR+4
  1983. LPN 77
  1984. ZJN PRO3 IF NO SET REQUEST
  1985. STD CM+4
  1986. LDN SCTS SELECT SET JOB CONTROL FLAG(S)
  1987. STD CM+1
  1988. MONITOR SJCM
  1989. PRO3 LJM CPMX DROP PP AND EXIT TO PP RESIDENT
  1990. SOV SPACE 4,10
  1991. *** FUNCTION 76.
  1992. * SET/CLEAR *OVERRIDE* REQUIRED TO DROP JOB FLAG.
  1993. * CALLER MUST HAVE SSJ= ENTRY POINT.
  1994. *
  1995. * ENTRY (IR+4) = 0, IF CLEAR *OVERRIDE* FLAG, .NE. 0, IF
  1996. * SET *0VERRIDE* FLAG.
  1997. *
  1998. * USES CN - CN+4.
  1999.  
  2000.  
  2001. SOV ENTRY
  2002. LDD CP READ *SNSW* WORD FROM CPA
  2003. ADN SNSW
  2004. CRD CN
  2005. LDD CN CLEAR *OVERRIDE* FLAG
  2006. LPC 6777
  2007. STD CN
  2008. LDD IR+4 CHECK OPTION
  2009. ZJN SOV1 IF CLEAR REQUEST
  2010. LDD TH SET *OVERRIDE* FLAG
  2011. RAD CN
  2012. SOV1 LDD CP WRITE *SNSW*
  2013. ADN SNSW
  2014. CWD CN
  2015. LJM CPMX EXIT
  2016. RNR SPACE 4,10
  2017. *** FUNCTION 107.
  2018. * SET ROLLOUT ALLOWED OR ROLLOUT INHIBITED.
  2019. *
  2020. * CALLER MUST HAVE *SSJ=* ENTRY POINT.
  2021. *
  2022. * ENTRY (IR+4) = 0 IF JOB ROLLOUT TO BE ALLOWED.
  2023. * = 1 IF JOB ROLLOUT TO BE INHIBITED.
  2024. * = 2 IF OPERATOR ROLLOUT TO BE ALLOWED.
  2025.  
  2026.  
  2027. RNR ENTRY
  2028. LDD IR+4 VALIDATE SUBFUNCTION
  2029. SBN TRNRL
  2030. MJN RNR1 IF LEGAL SUBFUNCTION
  2031. ABORT ERAE * CPM - ARGUMENT ERROR.*
  2032.  
  2033. RNR1 LDD CP GET SUBSYSTEM IDENTIFICATION
  2034. ADN JCIW
  2035. CRD CM
  2036. LDN TRNRL CHECK FOR CURRENT ID IN TABLE
  2037. STD T1
  2038. RNR2 SOD T1
  2039. MJN RNR3 IF END OF TABLE
  2040. LDM TRNR,T1
  2041. LMD CM+2
  2042. NJN RNR2 IF NO MATCH
  2043. LDM TRNR,IR+4 GET NEW SUBSYSTEM IDENTIFICATION
  2044. STD CM+4
  2045. LDN SSIS CHANGE SUBSYSTEM ID
  2046. STD CM+1
  2047. MONITOR SJCM
  2048. RNR3 LJM CPMX EXIT
  2049.  
  2050.  
  2051. TRNR BSS 0 TABLE OF ROLL/NO ROLL IDENTIFICATIONS
  2052. LOC 0
  2053. CON 0 ALLOW JOB ROLLOUT
  2054. CON IRSI INHIBIT JOB ROLLOUT
  2055. CON ORSI ALLOW OPERATOR ROLLOUT
  2056. LOC *O
  2057. TRNRL EQU *-TRNR TABLE LENGTH
  2058. GSI SPACE 4,10
  2059. *** FUNCTION 110.
  2060. * GET SUBSYSTEM ID.
  2061. *
  2062. * ENTRY (IR+3 - IR+4) = 7/0, 17/ ADDRESS OF PARAMETER WORD.
  2063. *
  2064. * EXIT PARAMETER WORD CONTAINS -
  2065. *T 48/0, 12/ SSID
  2066. * SSID = SUBSYSTEM ID (VALUES DEFINED IN *COMSSSD*).
  2067.  
  2068.  
  2069. GSI ENTRY
  2070. LDD CP GET SUBSYSTEM ID
  2071. ADN JCIW
  2072. CRD CM+2
  2073. LDN ZERL
  2074. CRD CM-1
  2075. LDN 1 SET WORD COUNT OF PARAMETER BLOCK
  2076. STD T1
  2077. RJM CKA GET ADDRESS OF PARAMETER WORD
  2078. CWD CM
  2079. LJM CPMX RETURN
  2080. RSO SPACE 4,15
  2081. *** FUNCTION 111.
  2082. *
  2083. * READ SERVICE CLASS AND ORIGIN TYPE TO (PARAMETER).
  2084. *
  2085. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMTER WORD.
  2086. *
  2087. * EXIT SERVICE CLASS (SC) AND ORIGIN TYPE (OT) RETURNED
  2088. * IN THE FORMAT -
  2089. *T ADDR 48/0, 6/SC, 6/OT
  2090. * SC JOB SERVICE CLASS.
  2091. * OT JOB ORIGIN TYPE.
  2092.  
  2093.  
  2094. RSO ENTRY
  2095. LDC SCNI+60
  2096. STM ROTA
  2097. LJM ROT1 BEGIN PROCESSING
  2098. GAL SPACE 4,20
  2099. *** FUNCTION 116.
  2100. *
  2101. * RETURN JOB ACCESS LEVEL AND ACCESS LEVEL LIMITS
  2102. * TO THE CALLING PROGRAM.
  2103. *
  2104. * ENTRY (IR+3 - IR+4) = ADDR (ADDRESS OF REPLY WORD).
  2105. *
  2106. * EXIT REPLY WORD UPDATED.
  2107. *
  2108. *T ADDR 42/ , 6/ LAL, 6/ UAL, 6/ JAL.
  2109. * LAL = JOB LOWER ACCESS LEVEL LIMIT.
  2110. * UAL = JOB ACCESS LEVEL UPPER LIMIT.
  2111. * JAL = JOB ACCESS LEVEL.
  2112. *
  2113. * USES BA - BA+4, CM - CM+4, CN - CN+4.
  2114. *
  2115. * CALLS CKA.
  2116. *
  2117. * MACROS SFA.
  2118.  
  2119.  
  2120. GAL ENTRY
  2121. LDN ZERL CLEAR REPLY WORD
  2122. CRD CM
  2123. LDD CP
  2124. ADK TERW GET EJT ORDINAL
  2125. CRD BA
  2126. ADK JSCW-TERW READ SECURITY CONTROL WORD
  2127. CRD CN
  2128. SFA EJT,BA GET JOB ACCESS LEVEL LIMITS
  2129. ADK PRFE
  2130. CRD BA
  2131. LDD BA+2 EXTRACT JOB ACCESS LEVEL UPPER LIMIT
  2132. LPN 7
  2133. SHN 6
  2134. STD CM+4
  2135. LDD BA+2 EXTRACT JOB ACCESS LEVEL LOWER LIMIT
  2136. SHN -3
  2137. LPN 7
  2138. STD CM+3
  2139. LDD CN+1 GET JOB ACCESS LEVEL
  2140. SHN -11
  2141. RAD CM+4
  2142. RJM CKA WRITE REPLY WORD
  2143. CWD CM
  2144. LJM CPMX RETURN
  2145. SAL SPACE 4,20
  2146. *** FUNCTION 117.
  2147. *
  2148. * SETS THE JOB ACCESS LEVEL TO THE VALUE REQUESTED.
  2149. *
  2150. * ENTRY (IR+3 - IR+4) = ADDR (ADDRESS OF REQUEST WORD).
  2151. *
  2152. *T ADDR 57/0, 3/AL
  2153. * AL = ACCESS LEVEL.
  2154. *
  2155. * EXIT JOB ACCESS LEVEL RESET IF VALID.
  2156. * *SVET* ERROR CODE SET IF INCORRECT AND JOB ABORTED.
  2157. *
  2158. * USES T1, CM - CM+4, CN - CN+4.
  2159. *
  2160. * CALLS ACS, CKA, DFM.
  2161. *
  2162. * MACROS ABORT, MONITOR.
  2163.  
  2164.  
  2165. SAL ENTRY
  2166. RJM CKA READ REQUEST WORD
  2167. CRD CM
  2168. LDD CM+4 GET LEVEL REQUESTED
  2169. SBN 10
  2170. MJN SAL1 IF LEVEL IN RANGE 0-7
  2171. ABORT ERAE * CPM - ARGUMENT ERROR.*
  2172.  
  2173. SAL1 LDD SM
  2174. NJN SAL2 IF SYSTEM IN SECURE MODE
  2175. LJM CPMX RETURN
  2176.  
  2177. * VALIDATE ACCESS LEVEL OF JOB.
  2178.  
  2179. SAL2 LDK VJAS SET SUBFUNCTION CODE
  2180. STD CM+1
  2181. MONITOR VSAM VALIDATE AND SET JOB ACCESS LEVEL
  2182. LDD CM+1
  2183. NJN SAL3 IF SECURITY VIOLATION
  2184. LJM CPMX RETURN
  2185.  
  2186. * SET ERROR FLAG AND ABORT.
  2187.  
  2188. SAL3 LDC SALA+3 SET POINTER TO END OF ERROR MESSAGE
  2189. STD T1
  2190. LDD CP READ JOB SECURITY PARAMETERS
  2191. ADC JSCW
  2192. CRD CN
  2193. LDD CN+1 GET CURRENT ACCESS LEVEL
  2194. SHN -7
  2195. LPN 34
  2196. ADC TALV FORM INDEX INTO LEVEL STRING TABLE
  2197. RJM ACS APPEND STRING TO MESSAGE
  2198. LDC =C*, * APPEND COMMA AND SPACE TO MESSAGE
  2199. RJM ACS
  2200. LDD CM+4 GET REQUESTED ACCESS LEVEL
  2201. SHN 2 FORM INDEX INTO LEVEL STRING TABLE
  2202. ADC TALV
  2203. RJM ACS APPEND STRING TO MESSAGE
  2204. LDC =C*. * APPEND PERIOD TO MESSAGE
  2205. RJM ACS
  2206. LDC SALA+ACFN ISSUE ACCOUNT FILE MESSAGE
  2207. RJM DFM
  2208. LDN SVET SET SECURITY VIOLATION ERROR FLAG
  2209. ERRPL PPET-SVET *SVET* MUST BE HIGHER PRIORITY THAN *PPET*
  2210. STD CM+1
  2211. MONITOR CEFM
  2212. ABORT ERIJ *CPM - INCORRECT JOB ACCESS LEVEL.*
  2213.  
  2214. SALA DATA C*MJJI, *
  2215. SALB BSSZ 9D
  2216. USV SPACE 4,20
  2217. *** FUNCTION 120.
  2218. *
  2219. * RETURNS CONTROL POINT AREA WORD *JSCW* TO THE REQUESTING
  2220. * PROGRAM. THE CALLER MUST HAVE AN SSJ= ENTRY POINT OR
  2221. * A SUBSYSTEM ID.
  2222. *
  2223. * ENTRY (IR+3 - IR+4) = ADDRESS OF REPLY WORD.
  2224. *
  2225. * EXIT (REPLY WORD) = CONTROL POINT WORD *JSCW*.
  2226. *
  2227. * USES CM - CM+4.
  2228. *
  2229. * CALLS CKA.
  2230. *
  2231. * MACROS ABORT.
  2232.  
  2233.  
  2234. USV ENTRY
  2235. LDD CP READ *JSCW*
  2236. ADC JSCW
  2237. CRD CM
  2238. RJM CKA SET ADDRESS
  2239. CWD CM WRITE REPLY WORD
  2240. LJM CPMX RETURN
  2241. IPD SPACE 4,10
  2242. *** FUNCTION 121.
  2243. *
  2244. * INCREMENT CURRENT PACKED DATE BY SPECIFIED TERM.
  2245. *
  2246. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER WORD.
  2247. *T ADDR 48/0, 12/ TERM
  2248. *
  2249. * EXIT NEW PACKED DATE SET IN PARAMETER WORD.
  2250. *T ADDR 42/0, 18/ DATE
  2251.  
  2252.  
  2253. IPD ENTRY
  2254. RJM CKA
  2255. CRD CM READ PARAMETER WORD
  2256. LDN RIDS
  2257. STD CM+1
  2258. MONITOR RDCM REQUEST DATA CONVERSION
  2259. LDD MA RETURNED UPDATED DATE
  2260. CRD CN
  2261. RJM CKA
  2262. CWD CN
  2263. LJM CPMX EXIT
  2264. EPW SPACE 4,10
  2265. *** FUNCTION 122.
  2266. *
  2267. * ENCRYPT PASSWORD.
  2268. *
  2269. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER WORD.
  2270. *T ADDR 60/ PASSWORD
  2271. *
  2272. * EXIT
  2273. *T ADDR 60/ ENCRYPTED PASSWORD
  2274.  
  2275.  
  2276. EPW ENTRY
  2277. RJM CKA READ PASSWORD
  2278. CRD CM
  2279. LDD MA SET *RDCM* PARAMETERS
  2280. CWD CM
  2281. LDN ZERL
  2282. CRD CM
  2283. LDN REPS
  2284. STD CM+1
  2285. MONITOR RDCM REQUEST DATA CONVERSION
  2286. LDD MA RETURN ENCRYPTED PASSWORD
  2287. CRD CM
  2288. RJM CKA
  2289. CWD CM
  2290. LJM CPMX EXIT
  2291. LOG SPACE 4,10
  2292. *** FUNCTION 132.
  2293. *
  2294. * PROCESS LOGOUT.
  2295. *
  2296. * ENTRY (IR+3 - IR+4) = PARAMETER WORD ADDRESS.
  2297. *
  2298. *T PARAM 42/ANAME, 18/
  2299. * ANAME = NEXT NAM APPLICATION NAME.
  2300. *
  2301. * EXIT LOGOUT REQUEST SENT TO *IAF* IF JOB ONLINE.
  2302.  
  2303.  
  2304. LOG ENTRY
  2305. RJM CKA READ APPLICATION NAME
  2306. CRD BA
  2307. LDD CP READ TERMINAL NUMBER
  2308. ADN TTNW
  2309. CRD CN
  2310. ADN TFSW-TTNW READ EJT ORDINAL
  2311. CRD CM
  2312. SFA EJT,CM READ CONNECTION STATUS
  2313. ADK JSNE
  2314. CRD CM
  2315. LDD CM+4
  2316. SHN -7
  2317. LPN 17
  2318. LMN OLCS
  2319. NJP CPMX IF NOT ONLINE CONNECTION STATUS
  2320. LDC VCPT*200+FLSW SET *IAF* RA
  2321. CRD FN+3
  2322. LDN ZERL
  2323. CRD CM
  2324. CRD FN
  2325. LDC VTLF SET LOGOUT REQUEST
  2326. STD FN
  2327. LDD CN+1 SET TERMINAL NUMBER
  2328. STD TN
  2329. LOG1 LDN 1 SET POTS REQUIRED COUNT
  2330. STD CM+1
  2331. MONITOR TGPM MAKE POT REQUEST
  2332. LDD CM+1
  2333. ZJP LOG5 IF *IAF* NOT ACTIVE
  2334. LMC 7777
  2335. NJN LOG3 IF POTS AVAILABLE
  2336. LDC 600 SET DELAY
  2337. STD T1
  2338. LOG2 DELAY
  2339. SOD T1
  2340. NJN LOG2 IF DELAY NOT COMPLETE
  2341. UJN LOG1 REISSUE REQUEST
  2342.  
  2343. LOG3 LDD CM+1 SET POT POINTER
  2344. STD PP
  2345. RJM PIR PRESET WITH IAF R-REGISTER
  2346. RJM SRR SET R-REGISTER TO IAF RA
  2347. RJM SPA SET POT ADDRESS
  2348. CWD BA
  2349. RJM RRR RESTORE R-REGISTER
  2350. LOG4 LDD MA
  2351. CWD FN
  2352. LDK ZERL
  2353. CRD CM
  2354. MONITOR TSEM ENTER *IAF* REQUEST
  2355. LDD CM+1
  2356. LOG5 ZJN LOG7 IF *IAF* NOT ACTIVE
  2357. LMC 7777
  2358. NJN LOG7 IF REQUEST ENTERED
  2359. PAUSE ST
  2360. LDC 600 SET DELAY TIME
  2361. STD T1
  2362. LOG6 DELAY
  2363. SOD T1
  2364. NJN LOG6 IF DELAY NOT COMPLETE
  2365. UJN LOG4 REISSUE REQUEST
  2366.  
  2367. LOG7 LJM CPMX EXIT
  2368. GLV SPACE 4,10
  2369. *** FUNCTION 133.
  2370. * GET SYSTEM PSR LEVEL.
  2371. *
  2372. * ENTRY (IR+3 - IR+4) = ADDRESS OF WORD TO RECEIVE LEVEL.
  2373. *
  2374. * EXIT SYSTEM PSR LEVEL SET IN SPECIFIED WORD
  2375. * (RIGHT JUSTIFIED, ZERO FILLED).
  2376.  
  2377.  
  2378. GLV ENTRY
  2379. LDN ZERL
  2380. CRD CM
  2381. LDC NOSLVL GET SYSTEM PSR LEVEL
  2382. STD CM+4
  2383. GLV1 RJM CKA RETURN LEVEL TO CALLER
  2384. CWD CM
  2385. LJM CPMX EXIT
  2386. SPACE 4,30
  2387. *** FUNCTION 134.
  2388. *
  2389. * RETURN REPRIEVE INFORMATION.
  2390. *
  2391. * ENTRY (IR+3 -IR+4) = PARAMETER WORD ADDRESS.
  2392. *
  2393. * EXIT THE FOLLOWING INFORMATION WILL BE RETURNED.
  2394. *
  2395. *T PARAM 5/FLAGS,19/0,12/MASK,6/0,18/ADDR
  2396. *
  2397. * FLAGS = ZERO, IF NO REPRIEVE CONDITION SET.
  2398. * = BIT 59 SET, IF *EREXIT* SET
  2399. * (*EECW* BITS 58 AND 46-36 ZERO, BITS 17-0 NONZERO).
  2400. * = BIT 58 SET, IF NORMAL REPRIEVE CONDITIONS SET
  2401. * (*EECW* BITS 58 AND 47 NOT SET, BITS 46-36 NONZERO).
  2402. * = BIT 57 SET, IF EXTENDED REPRIEVE CONDITIONS SET
  2403. * (*EECW* BIT 58 SET, BIT 57 NOT SET).
  2404. * = BIT 56 SET, IF NORMAL REPRIEVE IN PROGRESS
  2405. * (*EECW* BIT 58 NOT SET, BIT 47 SET, AND BITS 46-36
  2406. * NONZERO).
  2407. * = BIT 55 SET, IF EXTENDED REPRIEVE IN PROGRESS
  2408. * (*EECW* BITS 58 AND 57 SET).
  2409. * MASK = NORMAL REPRIEVE MASK BITS (IF NORMAL REPRIEVE
  2410. * CONDITION SET).
  2411. * = ZERO (OTHERWISE).
  2412. * ADDR = ADDRESS OF EXTENDED REPRIEVE PARAMETER BLOCK
  2413. * (IF EXTENDED REPRIEVE CONDITION SET).
  2414. * = ERROR EXIT RETURN ADDRESS (IF NORMAL REPRIEVE
  2415. * CONDITION SET OR *EREXIT* SET).
  2416. * = ZERO (OTHERWISE).
  2417.  
  2418.  
  2419. RRI ENTRY
  2420. LDD CP READ *EECW*
  2421. ADN EECW
  2422. CRD CM
  2423. LDD CM ISOLATE EXTENDED REPRIEVE FLAG
  2424. SHN 21-12
  2425. MJN RRI5 IF EXTENDED REPRIEVE SET
  2426. LDD CM+1 ISOLATE REPRIEVE MASK
  2427. SHN 21-13
  2428. MJN RRI1 IF NORMAL REPRIEVE IN PROGRESS
  2429. ZJN RRI2 IF MASK ZERO
  2430. RRI1 LJM RRI9 PROCESS NORMAL REPRIEVE CONDITION
  2431.  
  2432. RRI2 LDD CM+3 TEST REPRIEVE ADDRESS
  2433. LPN 37
  2434. STD CM+3 CLEAN UP REPRIEVE ADDRESS
  2435. ADD CM+4
  2436. ZJN RRI3 IF NO REPRIEVE ADDRESS
  2437.  
  2438. * PROCESS ERROR CONDITION SET.
  2439.  
  2440. LDC 4000 SET BIT 59
  2441. STD CM
  2442. UJN RRI4 RETURN INFORMATION
  2443.  
  2444. * PROCESS NO REPRIEVE CONDITION.
  2445.  
  2446. RRI3 LDN ZERL RETURN A WORD OF ZERO
  2447. CRD CM
  2448.  
  2449. * RETURN INFORMATION.
  2450.  
  2451. RRI4 RJM CKA CHECK PARAMETER ADDRESS
  2452. CWD CM WRITE WORD
  2453. LJM CPMX EXIT
  2454.  
  2455. * PROCESS EXTENDED REPRIEVE CONDITION SET.
  2456.  
  2457. RRI5 LDD CM CHECK FOR EXTENDED REPRIEVE IN PROGRESS
  2458. SHN 21-11
  2459. MJN RRI7 IF EXTENDED REPRIEVE IN PROGRESS
  2460. LDD CM+3
  2461. LPN 37
  2462. STD CM+3 CLEAN UP REPRIEVE ADDRESS
  2463. LDC 1000 SET BIT 57
  2464. STD CM
  2465. RRI6 LDN 0
  2466. STD CM+1 CLEAR CM+1 - CM+2
  2467. STD CM+2
  2468. UJN RRI4 RETURN INFORMATION
  2469.  
  2470. * PROCESS EXTENDED REPRIEVE IN PROGRESS.
  2471.  
  2472. RRI7 LDC 200 SET BIT 55
  2473. STD CM
  2474. RRI8 LDN 0
  2475. STD CM+3 CLEAR CM+3 - CM+4
  2476. STD CM+4
  2477. UJN RRI6 RETURN INFORMATION
  2478.  
  2479. * PROCESS NORMAL REPRIEVE CONDITION SET.
  2480.  
  2481. RRI9 MJN RRI10 IF NORMAL REPRIEVE IN PROGRESS
  2482. LDD CM+3
  2483. LPN 37
  2484. STD CM+3 CLEAN UP REPRIEVE ADDRESS
  2485. LDD CM+1
  2486. STD CM+2 SAVE MASK IN NEW BYTE
  2487. LDN 0
  2488. STD CM+1 CLEAR CM+1
  2489. LDC 2000 SET BIT 58
  2490. STD CM
  2491. LJM RRI4 RETURN INFORMATION
  2492.  
  2493. * PROCESS NORMAL REPRIEVE IN PROGRESS.
  2494.  
  2495. RRI10 LDC 400 SET BIT 56
  2496. STD CM
  2497. UJN RRI8 RETURN INFORMATION
  2498. RCT SPACE 4,10
  2499. *** FUNCTION 137.
  2500. * RETURN CONSOLE TYPE.
  2501. *
  2502. * ENTRY (IR+3 - IR+4) = PARAMETER WORD ADDRESS.
  2503. *
  2504. * EXIT CONSOLE TYPE RETURNED TO PARAMETER WORD ADDRESS.
  2505.  
  2506.  
  2507. RCT ENTRY
  2508. LDN DSEQ FETCH EST ENTRY FOR DISPLAY
  2509. SFA EST
  2510. ADK EQAE CONSOLE TYPE TO (CM)
  2511. CRD T6
  2512. LDN ZERL INSERT TRAILING ZERO FILL
  2513. CRD CM+1
  2514. UJP GLV1 RETURN TYPE TO CALLER
  2515. TITLE SUBROUTINES.
  2516. PMP SPACE 4,20
  2517. ** PMP - PROCESS MEMORY PARAMETERS.
  2518. *
  2519. * ENTRY (IR+3 - IR+4) = RFL REQUEST.
  2520. * BIT 2**11 IN IR+3 IS SET FOR EXTENDED MEMORY REQUEST
  2521. * AND ZERO FOR CM REQUEST. EXTENDED MEMORY REQUESTS
  2522. * ARE MULTIPLES OF 1000B.
  2523. *
  2524. * EXIT (A) = FL REQUEST (CM/100B OR EM/*UEBS*).
  2525. * (CM - CM+4) = FL CONTROL WORD (FLCW OR ELCW).
  2526. * (T7) = ADDRESS OF FL CONTROL WORD TO UPDATE.
  2527. * (ERRA - ERRA+1) = REQUEST TYPE.
  2528. *
  2529. * ERROR TO *ERR*, IF ARGUMENT ERROR.
  2530. *
  2531. * USES T6, T7, CM - CM+4, CN - CN+4.
  2532. *
  2533. * MACROS ABORT.
  2534.  
  2535.  
  2536. PMP2 ABORT ERNV * XX NOT VALIDATED.*
  2537.  
  2538. PMP3 LDC 2REC SET *EC* RESOURCE TYPE
  2539. STM ERRA
  2540. LDD CP READ EXTENDED MEMORY FL CONTROL WORD
  2541. ADN ELCW
  2542. STD T7
  2543. CRD CM
  2544. LDN 17 ROUND BY BLOCKING FACTOR
  2545. PMPB SHN 0
  2546. * SHN UESC-4
  2547. ADD IR+4
  2548. STD T6
  2549. SHN -14
  2550. ADD IR+3
  2551. LPN 37
  2552. SHN 14
  2553. LMD T6
  2554. PMPC SHN 0
  2555. * SHN -UESC
  2556. STD T6
  2557. SHN -13
  2558. PMP4 NJN PMP2 IF .GT. 3777B BLOCKS
  2559. PMP5 LDD T6
  2560.  
  2561. PMP SUBR ENTRY/EXIT
  2562. LDD IR+3 CHECK IF CM OR EXTENDED MEMORY REQUEST
  2563. SHN 21-13
  2564. MJN PMP3 IF EXTENDED MEMORY REQUEST
  2565. LDC 2RCM SET *CM* RESOURCE TYPE
  2566. STM ERRA
  2567. LDD CP READ CM FL CONTROL WORD
  2568. ADN FLCW
  2569. STD T7
  2570. CRD CM
  2571. SBN FLCW-ECSW READ EXTENDED MEMORY STATUS WORD
  2572. CRD CN
  2573. LDD IR+3 ROUND CM FL REQUEST
  2574. LPN 37
  2575. SHN 14
  2576. LMD IR+4
  2577. ADN 77
  2578. MJN PMP4 IF CM FL REQUEST TOO LARGE
  2579. SHN -6
  2580. STD T6
  2581. LDD CN+4
  2582. ZJN PMP5 IF NO EXTENDED MEMORY CURRENTLY ASSIGNED
  2583. LDD T6
  2584. PMPA UJN PMP1 PROCESS *RFL* PARAMETER
  2585. * NJN PMP1 (PROCESS *MFL* NON-ZERO PARAMETER)
  2586. LDD CM+2 CHECK MAXFL
  2587. PMP1 ADC -MCMX/100
  2588. PJN PMP5 IF AT LEAST *MCMX* WORDS REQUESTED
  2589. LDC MCMX/100 SET *MCMX* WORDS
  2590. STD T6
  2591. LJM PMPX RETURN
  2592. SPACE 4,10
  2593. ** COMMON DECKS.
  2594.  
  2595.  
  2596. *CALL COMPACS
  2597. VAL$ EQU 1
  2598. *CALL COMPVLC
  2599. SPACE 4,10
  2600. ** BUFFER DEFINITIONS.
  2601.  
  2602.  
  2603. USE BUFFERS
  2604.  
  2605. RVNA EQU * VERSION NAME
  2606. RVNB EQU RVNA+6*5 RECEIVING FIELD
  2607. TITLE PRESET.
  2608. PRS SPACE 4,10
  2609. ** PRS - PRESET CONTROL POINT MANAGER.
  2610. *
  2611. * EXIT (CN - CN+4) = (JCIW) = JOB CONTROL INFORMATION.
  2612. * (EP) = SPECIAL ENTRY POINT FLAGS.
  2613. * (OT) = JOB ORIGIN TYPE.
  2614. * (SM) = SYSTEM SECURITY MODE.
  2615. *
  2616. * ERROR TO *ERR*, IF INCORRECT REQUEST.
  2617. *
  2618. * MACROS ABORT.
  2619.  
  2620.  
  2621. PRS SUBR ENTRY/EXIT
  2622. LDK MEFL PRESET SHIFT INSTRUCTIONS
  2623. CRD CM
  2624. LDD CM+2
  2625. SHN -11
  2626. STD T0
  2627. ADC SHNI+77-4
  2628. STM PMPB
  2629. LDC SHNI+77
  2630. SBD T0
  2631. STM PMPC
  2632. LDD CP READ SPECIAL ENTRY POINT WORD
  2633. ADN STSW CHECK ERROR FLAG
  2634. CRD CM
  2635. ADN SEPW-STSW
  2636. CRD CN
  2637. LDD CM+1
  2638. SBN SPET
  2639. MJN PRS0 IF NOT SPECIAL ERROR FLAG
  2640. LJM CPMX EXIT *CPM*
  2641.  
  2642. PRS0 LDD CN SAVE ENTRY POINTS
  2643. STD EP
  2644. LDD IR+2
  2645. LMC ACPF
  2646. ZJN PRS0.1 IF ASSIGN CIO PPU FUNCTION
  2647. RJM CRS CHECK RECALL STATUS
  2648. ZJN PRS1 IF NO AUTO RECALL
  2649. PRS0.1 RJM IFP INITIALIZE MANAGED TABLE PROCESSORS
  2650. LDD CP FETCH EJT ORDINAL
  2651. ADN TFSW
  2652. CRD CM
  2653. SFA EJT,CM CALCULATE EJT ENTRY ABSOLUTE ADDRESS
  2654. ADN SCLE GET JOB ORIGIN TYPE
  2655. CRD CM
  2656. LDD CM
  2657. LPN 17
  2658. STD OT
  2659. LDD IR+2 CHECK FUNCTION CODE
  2660. SHN 1
  2661. ADD IR+2
  2662. STD T7
  2663. ADC -TFCNL
  2664. MJN PRS2 IF LEGAL CODE
  2665. PRS1 ABORT ERIR * CPM - INCORRECT REQUEST.*
  2666.  
  2667. PRS2 LDM TFCN+1,T7
  2668. ZJN PRS1 IF UNDEFINED FUNCTION CODE
  2669. STM CPMB SAVE THE ADDRESS OF FUNCTION
  2670. LDD CP READ JOB CONTROL INFORMATION
  2671. ADK JCIW
  2672. CRD CN
  2673. LDM TFCN+2,T7 CHECK ORIGIN CONTROL
  2674. LPC 3777
  2675. ZJN PRS3 IF NO CONTROL BITS
  2676. STD T1
  2677. LCN 0 SET BIT SHIFT
  2678. LMD OT
  2679. RAM PRSA
  2680. LDD T1 CHECK BITS
  2681. PRSA SHN 21
  2682. MJN PRS4 IF LEGAL FUNCTION FOR JOB ORIGIN TYPE
  2683. LDM TFCN+2,T7 GET FUNCTION PROCESSOR ADDRESS
  2684. SHN 21-13
  2685. MJN PRS3.1 IF *SSJ=* REQUIRED
  2686. UJN PRS1 ABORT
  2687.  
  2688. PRS3 LDM TFCN+2,T7 GET FUNCTION PROCESSOR ADDRESS
  2689. SHN 21-13
  2690. PJN PRS4 IF SSJ= NOT REQUIRED
  2691. PRS3.1 LDD EP CHECK *SSJ=* ENTRY POINT
  2692. SHN 21-2
  2693. MJN PRS4 IF *SSJ=*
  2694. LDD CN+2
  2695. ADK -LSSI
  2696. MJP PRS1 IF NOT SUBSYSTEM
  2697. PRS4 LDK SSML GET SYSTEM SECURITY MODE
  2698. CRD CM
  2699. LDD CM
  2700. LPN 3
  2701. STD SM
  2702. LDM TFCN,T7 SET OVERLAY NAME
  2703. STM CPMA
  2704. LJM PRSX RETURN
  2705. TFCN SPACE 4,15
  2706. ** TFCN - TABLE OF FUNCTION CODE PROCESSORS.
  2707. * ENTRY = 3 WORDS.
  2708. *
  2709. *T, 12/ NAME , 12/ ADDR , 12/ BITS
  2710. *
  2711. * NAME OVERLAY NAME
  2712. * ADDR ADDRESS OF FUNCTION PROCESSOR
  2713. * BITS BITS FOR JOB ORIGIN CONTROL
  2714. * BIT MEANING
  2715. * 11 SET IF SSJ= ENTRY POINT REQUIRED.
  2716. * 10 - 0 SET IF CORRESPONDING ORIGIN TYPE REQUIRED.
  2717.  
  2718.  
  2719. TFCN BSS 0
  2720.  
  2721. FCN PRS1 SET QUEUE PRIORITY (SUPPORT REMOVED)
  2722. FCN SPR SET CPU PRIORITY
  2723. FCN SEM SET EXIT MODE
  2724. FCN SLL SET LIMIT
  2725. FCN SEE SET ERROR EXIT ADDRESS
  2726. FCN SDA SET *K* DISPLAY CONTROLS
  2727. FCN ROC ROLLOUT JOB
  2728. FCN NEX NOEXIT
  2729. FCN SSM SECURE SYSTEM MEMORY
  2730. FCN ONS TURN ON SENSE SWITCHES
  2731. FCN OFS TURN OFF SENSE SWITCHES
  2732. FCN RJN READ JSN
  2733. FCN PRS1 GET QUEUE PRIORITY (SUPPORT REMOVED)
  2734. FCN RPR READ CPU PRIORITY
  2735. FCN PRS1 READ EXIT MODE
  2736. FCN RLM RETRIEVE LIMIT
  2737. FCN EDI,,SSJ ENTER DEMAND INDEX
  2738. FCN SUI,(SYOT) SET USER INDEX
  2739. FCN SLC SET LOADER CONTROL WORD
  2740. FCN RFL SET LAST RFL
  2741. FCN PRS1 READ JOB CONTROL WORD
  2742. FCN PRS1 SET JOB CONTROL WORD
  2743. FCN SSB SET SUBSYSTEM FLAG
  2744. FCN ROT READ JOB ORIGIN
  2745. FCN RAI READ ACCOUNTING INFORMATION
  2746. FCN SCP SELECT CPU TO RUN IN
  2747. FCN PRS1 RETURN USER NAME
  2748. FCN PRS1 READ FL CONTROL WORD
  2749. FCN EET,(SYOT),SSJ ENTER EVENT IN SYSTEM EVENT TABLE
  2750. FCN SPN SET PACKNAME
  2751. FCN RPN RETURN PACKNAME
  2752. FCN PRS1 GET SUBSYSTEM FLAG
  2753. FCN VAN,,SSJ VALIDATE ACCOUNT NUMBER
  2754. FCN FAM,(SYOT) ENTER FAMILY NAME
  2755. FCN BAB,,SSJ BEGIN ACCOUNT BLOCK
  2756. FCN PRS1 DISABLE SSJ=
  2757. FCN RVN RETURN VERSION NAME
  2758. FCN PRS1 GET LOADER CONTROL WORD
  2759. FCN GLS GET GLOBAL LIBRARY SET
  2760. FCN SLS SET GLOBAL LIBRARY SET
  2761. FCN PRS1 RETURN MACHINE ID
  2762. FCN RAC RETURN JOB ACTIVITY INFORMATION
  2763. FCN MFL SET MAXIMUM FIELD LENGTH
  2764. FCN CSC,,SSJ TOGGLE SRU CALCULATION
  2765. FCN PRS1 RESERVED
  2766. FCN PRS1 READ EXTENDED MEMORY FL CONTROL WORD
  2767. FCN VAL VALIDATE USER
  2768. FCN GPF GET PERMANENT FILE PARAMETERS
  2769. FCN SPF,,SSJ SET PERMANENT FILE PARAMETERS
  2770. FCN CKA1 GET LIST OF FILES ADDRESS
  2771. FCN CKA1 SET LIST OF FILES ADDRESS
  2772. FCN PRS1 GET END OF JOB INFORMATION
  2773. FCN CKA1,,SSJ INCREMENT AUC ACCUMULATOR
  2774. FCN PRS1 SET/CLEAR *UTL=* ENTRY POINT
  2775. FCN PRS1 RESERVED FOR CPUMTR
  2776. FCN PRS1 RESERVED FOR CPUMTR
  2777. FCN PRS1 RESERVED FOR CPUMTR
  2778. FCN PRS1 RESERVED FOR CPUMTR
  2779. FCN PRS1 RESERVED FOR CPUMTR
  2780. FCN DFC,(SYOT) DECREMENT FAMILY USER COUNT
  2781. FCN JCI JOB CONTROL INFORMATION
  2782. FCN PRO SET/CLEAR JOB CONTROL FLAGS
  2783. FCN SOV,,SSJ SET/CLEAR *OVERRIDE* FLAG
  2784. FCN IAA INITIATE APPLICATION ACCOUNTING
  2785. FCN SPB SET PAUSE BIT
  2786. FCN SPS SYSTEM ORIGIN PRIVILEGES STATUS
  2787. FCN TDC TRANSFER *L* DISPLAY DATA TO CMR
  2788. FCN TDU TRANSFER *L* DISPLAY COMMAND TO USER-S FL
  2789. FCN SPC,,SSJ SET PROLOGUE/EPILOGUE CONTROLS
  2790. FCN PRS1 RESERVED
  2791. FCN SJB SET JOB CHARACTERISTICS
  2792. FCN RNR,,SSJ SET ROLL/NO ROLL
  2793. FCN GSI GET SUBSYSTEM ID
  2794. FCN RSO READ SERVICE CLASS AND JOB ORIGIN
  2795. FCN SOD SET OPERATOR DISPLAY MESSAGE
  2796. FCN SSC SET *SHELL* CONTROL
  2797. FCN SCC,,SSJ DECREMENT SECURITY COUNT
  2798. FCN UCS,,SSJ UPDATE USER ACCESS WORDS
  2799. FCN GAL GET JOB ACCESS LEVEL LIMITS
  2800. FCN SAL SET JOB ACCESS LEVEL
  2801. FCN USV,,SSJ GET USER SECURITY VALIDATION
  2802. FCN IPD INCREMENT PACKED DATE
  2803. FCN EPW,,SSJ ENCRYPT PASSWORD
  2804. FCN RSC RETURN SERVICE CLASS INFORMATION
  2805. FCN CSV CHANGE SERVICE CLASS
  2806. FCN PRS1 RESERVED
  2807. FCN RUA,,SSJ RETURN USER ACCOUNT BLOCK
  2808. FCN GPG GET PAGE PARAMETERS
  2809. FCN SPG SET PAGE PARAMETERS
  2810. FCN GPS,,SSJ GET PROLOGUE/EPILOGUE STATUS
  2811. FCN LOG,,SSJ PROCESS LOGOUT
  2812. FCN GLV GET SYSTEM PSR LEVEL
  2813. FCN RRI RETURN REPRIEVE INFORMATION
  2814. FCN ERM ENABLE/DISABLE TERMINAL ERROR MESSAGES
  2815. FCN GCN GET CHARGE NUMBER
  2816. FCN RCT RETURN CONSOLE TYPE
  2817. ACPF FCN ACP ASSIGN A CONCURRENT PP
  2818. FCN PAM PRIVILEGED ANALYST STATUS
  2819. FCN GSL GET SYSTEM LIBRARY STATUS
  2820. FCN GSC GET *SHELL* CONTROLS
  2821. FCN SIC SET INTER-CP COMMUNICATION CONTROLS
  2822. FCN GTD GET TAPE DEFAULTS
  2823. FCN STD SET TAPE DEFAULTS
  2824. FCN GFN,,SSJ GET FAMILY NAME AND FAMILY ORDINAL
  2825. FCN PRS1 (150) RESERVED FOR CDC
  2826. FCN PRS1 (151) RESERVED FOR INSTALLATION
  2827. FCN PRS1 (152) RESERVED FOR INSTALLATION
  2828. FCN PRS1 (153) RESERVED FOR INSTALLATION
  2829. FCN PRS1 (154) RESERVED FOR INSTALLATION
  2830. FCN PRS1 (155) RESERVED FOR INSTALLATION
  2831. FCN PRS1 (156) RESERVED FOR INSTALLATION
  2832. FCN PRS1 (157) RESERVED FOR INSTALLATION
  2833. FCN PRS1 (160) RESERVED FOR INSTALLATION
  2834. LOC *O
  2835. TFCNL EQU *-TFCN
  2836.  
  2837.  
  2838. IFP HERE GLOBAL FNT PROCESSORS INITIALIZATION CODE
  2839. SPACE 4,10
  2840. ** COMMON DECKS.
  2841.  
  2842.  
  2843. PIR$ EQU 1 SELECT ASSEMBLY OF *PIR* FOR IAF R-REG
  2844. *CALL COMPSRR
  2845. *CALL COMPCRS
  2846. *CALL COMPSPA
  2847. *CALL COMPSSF
  2848. SPACE 4,10
  2849. OVERFLOW
  2850. OVERLAY (ERROR PROCESSOR.)
  2851. ERR SPACE 4,10
  2852. ** ERR - PROCESS ERROR.
  2853. *
  2854. * ENTRY (CN) = ERROR MESSAGE ADDRESS.
  2855. * (CN+1) = DAYFILE OPTION.
  2856. * = 0 FOR MESSAGE TO USER AND SYSTEM
  2857. * DAYFILE.
  2858. * = *ERLN* FOR MESSAGE TO ERROR LOG,
  2859. * USER, AND SYSTEM DAYFILE.
  2860. * (CN+2) = RESOURCE TYPE FOR *ERNV* MESSAGE.
  2861. *
  2862. * EXIT TO PPR.
  2863. *
  2864. * CALLS DFM.
  2865. *
  2866. * MACROS MONITOR.
  2867.  
  2868.  
  2869. ERR BSS 0 ENTRY
  2870. LDD CN CHECK MESSAGE TYPE
  2871. LMC ERNV
  2872. NJN ERR1 IF NOT VALIDATION ERROR MESSAGE
  2873. LDD CN+2 SET RESOURCE TYPE
  2874. SHN 6
  2875. LMN 1R
  2876. STM ERNV+1
  2877. SHN 6
  2878. STM ERNV
  2879. ERR1 LDD CN ISSUE DAYFILE MESSAGE
  2880. RJM DFM
  2881. LDD CN+1 CHECK ERROR LOG OPTION
  2882. ZJN ERR2 IF NO MESSAGE TO ERROR LOG
  2883. SHN 14 ISSUE ERROR LOG MESSAGE
  2884. LMD CN
  2885. RJM DFM
  2886. ERR2 MONITOR ABTM
  2887. LJM PPR EXIT
  2888.  
  2889.  
  2890. * ERROR MESSAGES.
  2891.  
  2892.  
  2893. QUAL
  2894.  
  2895. ERAE DATA C* CPM - ARGUMENT ERROR.*
  2896. ERFL DATA C* RFL BEYOND MFL.*
  2897. ERIR DATA C* CPM - INCORRECT REQUEST.*
  2898. ERNV DATA C* XX NOT VALIDATED.*
  2899. ERIJ DATA C* CPM - ACCESS LEVEL NOT VALID FOR JOB.*
  2900. ERIU DATA C* CPM - USER ACCESS NOT VALID.*
  2901. ERMS DATA C* CPM - MASS STORAGE ERROR.*
  2902. ERPN DATA C* CPM - INCORRECT PACK NAME.*
  2903. ERPV DATA C* CPM - INCORRECT PAGE VALUE.*
  2904. EREF DATA C* ERROR ON FILE - "PPFN".*
  2905. ERAU DATA C* INCORRECT APPLICATION ACCOUNTING REQUEST.*
  2906. ERSY DATA C* CPM - SYSTEM ERROR.*
  2907. ERSC DATA C$ CPM - MISSING *SHELL* LOAD OPTION.$
  2908. ERSE DATA C* CPM - EPILOGUE AND SHELL CONFLICT.*
  2909. ERSF DATA C$ CPM - INCORRECT *SHELL* FILE.$
  2910. ERCI DATA C* CPM - HARDWARE DOES NOT SUPPORT CPP-S.*
  2911.  
  2912. QUAL *
  2913. OVERLAY (USER VALIDATION FUNCTIONS.)
  2914. SUI SPACE 4,10
  2915. *** FUNCTION 21.
  2916. * SET USER INDEX = PARAMETER.
  2917. * SYSTEM ORIGIN ONLY.
  2918. * ON A SECURED SYSTEM, MUST BE CALLED BY *SSJ=* PROGRAM.
  2919.  
  2920.  
  2921. SUI ENTRY
  2922. LDD SM
  2923. ZJN SUI1 IF SYSTEM UNSECURED
  2924. LDD EP
  2925. SHN 21-2
  2926. MJN SUI1 IF CALLER HAS *SSJ=* ENTRY POINT
  2927. LDD IR+3
  2928. SHN 14
  2929. LMD IR+4
  2930. ZJN SUI2 IF USER INDEX OF ZERO SPECIFIED
  2931. ABORT ERIR * CPM - INCORRECT REQUEST.*
  2932.  
  2933. SUI1 LDD IR+3 CHECK USER INDEX
  2934. SCN 37
  2935. ZJN SUI2 IF NOT OUT OF RANGE
  2936. ABORT ERAE * CPM - ARGUMENT ERROR.*
  2937.  
  2938. SUI2 LDN ZERL SET USER INDEX
  2939. CRD CM
  2940. CRD CN
  2941. LDD IR+3
  2942. STD CM+3
  2943. LDD IR+4
  2944. STD CM+4
  2945. LDD CP STORE USER IDENTIFICATION
  2946. ADN UIDW
  2947. CWD CM
  2948. ADN PKNW-UIDW CLEAR PACK NAME AND TYPE
  2949. CWD CN
  2950. LJM CPMX RETURN
  2951. VAN SPACE 4,60
  2952. *** FUNCTION 40.
  2953. * VALIDATE USER/ACCOUNT COMMAND.
  2954. * THE CALLER MUST HAVE AN *SSJ=* ENTRY POINT SPECIFYING A
  2955. * PARAMETER BLOCK.
  2956. *
  2957. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER BLOCK.
  2958. *
  2959. *T ADDR+0 42/ USER NAME ,18/
  2960. *T,ADDR+1 42/ PASSWORD ,14/ ,1/U ,1/N ,1/ ,1/P
  2961. *T,ADDR+2 42/ FAMILY NAME ,18/
  2962. *T,ADDR+3 60/
  2963. *T,ADDR+4 60/
  2964. *T,ADDR+5 60/
  2965. *T,ADDR+6 60/
  2966. *T,ADDR+7 60/
  2967. *T,ADDR+10 60/
  2968. *T,ADDR+11 60/
  2969. *T,ADDR+12 60/
  2970. *
  2971. * WHERE -
  2972. * U=1, IF USER NAMES FOR USER INDEXES .GE. *AUIMX* ARE
  2973. * TO BE ALLOWED (FOR *SYOT* CALLERS ONLY).
  2974. * N=1, IF JOB IS NOT TO BE ABORTED.
  2975. * P=1, IF PASSWORD IS NOT TO BE VALIDATED.
  2976. *
  2977. * EXIT PARAMETER BLOCK IS RETURNED AS FOLLOWS.
  2978. *
  2979. *T ADDR+0 42/ USER NAME ,18/ USER INDEX
  2980. *T,ADDR+1 18/ ,18/ PED ,6/ ,18/ UNCHANGED
  2981. *T,ADDR+2 42/ FAMILY NAME ,6/ SC,6/ ,3/EC ,1/ ,1/C,1/S
  2982. *T,ADDR+3 60/ (ALMW)
  2983. *T,ADDR+4 60/ (ACLW)
  2984. *T,ADDR+5 60/ (AACW)
  2985. *T,ADDR+6 60/ (APRN)
  2986. *T,ADDR+7 60/ (APJN)
  2987. *T,ADDR+10 60/ (APJ1)
  2988. *T,ADDR+11 60/ (ACGN)
  2989. *T,ADDR+12 42/ TERMINAL NAME, 18/ TERMINAL NUMBER
  2990. *
  2991. * WHERE -
  2992. * USER INDEX = 0, IF USER NAME NOT VALID.
  2993. * PED = PASSWORD EXPIRATION DATE.
  2994. * FAMILY NAME = PREVIOUS FAMILY NAME.
  2995. * SC = SERVICE CLASS.
  2996. * EC = ERROR CODE IF NOT USER NAME VALIDATION ERROR.
  2997. * = 1 IF SECONDARY *USER* COMMAND AND CHARGE
  2998. * REQUIRED.
  2999. * = 2 IF SECONDARY *USER* COMMAND, SECONDARY *USER*
  3000. * COMMANDS DISABLED, AND NOT SECURE MODE.
  3001. * = 3 IF ALTERNATE FAMILY SPECIFIED ON SECONDARY
  3002. * *USER* COMMAND AND USER NOT VALIDATED FOR
  3003. * ALTERNATE FAMILY SPECIFICATION.
  3004. * = 4 IF ALTERNATE USER NAME SPECIFIED ON SECONDARY
  3005. * *USER* COMMAND AND USER NOT VALIDATED FOR
  3006. * ALTERNATE USER NAME SPECIFICATION.
  3007. * C = 1, IF SECURITY COUNT EXHAUSTED.
  3008. * S = 1, IF SECONDARY USER COMMAND.
  3009. * SEE *PPCOM* AND *COMSACC* FOR DEFINITIONS OF THE
  3010. * OTHER WORDS.
  3011. *
  3012. * THE JOB WILL BE ABORTED FOR THE FOLLOWING REASONS -
  3013. * 1) THE SPECIFIED USER NAME/PASSWORD IS NOT VALID, UNLESS
  3014. * *N* HAS BEEN SPECIFIED.
  3015. * 2) A MASS STORAGE ERROR WAS ENCOUNTERED.
  3016.  
  3017.  
  3018. VAN ENTRY
  3019. RJM GPV GET PARAMETERS
  3020. ZJN VAN3 IF NOT SECONDARY USER COMMAND
  3021. RJM CSU CHECK SECONDARY USER COMMAND
  3022. ZJN VAN3 IF NO ERROR
  3023. VAN1 LDN 1 SET ERROR TYPE
  3024. VAN2 LJM PIU PROCESS ERROR
  3025.  
  3026. * VALIDATE USER AND FAMILY NAMES.
  3027.  
  3028. VAN3 RJM SFE SET FAMILY EST ORDINAL
  3029. NJN VAN2 IF FAMILY NOT FOUND
  3030. LDD CP SET CURRENT FAMILY EST ORDINAL
  3031. ADN PFCW
  3032. CRD CN
  3033. RJM UFC UPDATE FAMILY ACTIVITY COUNT
  3034. LDD T2 SAVE FAMILY EST ORDINAL
  3035. STM VANB
  3036. RJM RUB RETURN USER BLOCK
  3037. ZJN VAN1 IF INCORRECT USER
  3038. PJN VAN3.1 IF NO MASS STORAGE ERROR ENCOUNTERED
  3039. ABORT ERMS * CPM - MASS STORAGE ERROR.*
  3040.  
  3041. VAN3.1 LDD T4
  3042. ZJN VAN4 IF USER INDEX .LT. *AUIMX*
  3043. VANA LDN 0
  3044. * LDN 10 (SPECIAL USER NAMES OK FOR SYOT)
  3045. ZJN VAN1 IF SPECIAL USER NAME FLAG NOT SET
  3046. LDD OT
  3047. LMK SYOT
  3048. NJN VAN2 IF NOT *SYOT*
  3049. VAN4 LDN VANE-VAND SET ADDRESS OF USER BLOCK WORDS
  3050. STD T1
  3051. VAN5 LDD T3 SET ADDRESS
  3052. RAM VAND,T1
  3053. LCN 2
  3054. RAD T1
  3055. PJN VAN5 IF MORE ADDRESSES TO SET
  3056. LDN VANK-VANJ SET ADDRESS OF USER BLOCK WORDS
  3057. STD T1
  3058. VAN5.1 LDD T3 SET ADDRESS
  3059. RAM VANJ,T1
  3060. LCN 2
  3061. RAD T1
  3062. PJN VAN5.1 IF MORE ADDRESSES TO SET
  3063. LDC ** RESTORE FAMILY EST ORDINAL
  3064. VANB EQU *-1
  3065. * LDC (EQ) (FAMILY EST ORDINAL)
  3066. STD T5
  3067. LDD BA+4 SET STATUS FLAGS
  3068. STD FN+4
  3069. LDD BA+3
  3070. LMD FN+3
  3071. LPN 77
  3072. LMD FN+3
  3073. STD FN+3
  3074. LDN 11
  3075. STD T1
  3076. RJM CKA
  3077. ADN 2 RETURN FAMILY NAME AND STATUS FLAGS
  3078. CWD FN
  3079. SBN 1 READ PASSWORD
  3080. CRD FN
  3081.  
  3082. * IF THE CURRENT USER NAME IS ALREADY NONZERO ON A PRIMARY
  3083. * USER COMMAND, THE PASSWORD HAS ALREADY BEEN VALIDATED BY
  3084. * *0VJ*, *NVF* OR *1TA* (AND SHOULD NOT BE VALIDATED NOW).
  3085. * HOWEVER, FOR SOME *SYOT* JOBS (SUCH AS *DIS* AND *PTFS*),
  3086. * THE PASSWORD FOR THE PRIMARY USER COMMAND MUST BE VALIDATED
  3087. * AT THIS TIME.
  3088.  
  3089. LDM VANC
  3090. NJN VAN6 IF NOT FIRST USER COMMAND
  3091. LDM RUIA
  3092. NJN VAN9 IF USER NONZERO (PASSWORD ALREADY CHECKED)
  3093. VAN6 LDD OT
  3094. LMK IAOT
  3095. ZJN VAN7 IF INTERACTIVE JOB
  3096. LDC APSW*5 USE BATCH PASSWORD
  3097. STM VPWA
  3098. VAN7 RJM VPW VALIDATE PASSWORD
  3099. NJN VAN8 IF INCORRECT PASSWORD
  3100. LDD CN+3 SAVE PASSWORD EXPIRATION DATE
  3101. STM PESS
  3102. LDD CN+4
  3103. STM PESS+1
  3104. LDD T6 CHECK SECURITY COUNT
  3105. NJN VAN9 IF SECURITY COUNT NOT YET EXHAUSTED
  3106. VAN8 LJM VAN2 PROCESS ERROR
  3107.  
  3108. VAN9 LDM AHFC*5,T3 SAVE PERMANENT FILE VALIDATIONS
  3109. STD T2
  3110. LDC 0
  3111. * LDC 1 (SECONDARY USER COMMAND)
  3112. VANC EQU *-1 (VALUE OF PRIMARY USER FLAG)
  3113. NJN VAN10 IF SECONDARY USER COMMAND
  3114. LJM VAN11 PROCESS PRIMARY USER COMMAND
  3115.  
  3116. * UPDATE PARAMETER BLOCK FOR SECONDARY USER COMMAND.
  3117.  
  3118. VAN10 LDM APRN*5+3,T3
  3119. LPN 77
  3120. SBN SSPMN
  3121. MJN VAN10.1 IF NO SECURITY SYSTEM PROLOGUE
  3122. LJM VAN1 PROCESS ERROR
  3123.  
  3124. VAN10.1 NFA SSJN+ALMS GET CURRENT USER LIMITS
  3125. CRM ALMT,TR
  3126. LDM AAWC*5+4,T3 SET NEW *CCNR*/*CSPF*/*CLPF*/*CPWC* VALUES
  3127. LMM AACT+4
  3128. LPC 215
  3129. LMM AACT+4
  3130. STM AACT+4
  3131. LDM AAWC*5+3,T3 SET NEW *COPR*/*CNRD* VALUES
  3132. LMM AACT+3
  3133. LPC 6000
  3134. LMM AACT+3
  3135. STM AACT+3
  3136. LDM AAWC*5+2,T3 SET NEW *CRAF*/*CRAU* VALUES
  3137. LMM AACT+2
  3138. LPC 140
  3139. LMM AACT+2
  3140. STM AACT+2
  3141. LDN 12
  3142. STD T1
  3143. RJM CKA SET PARAMETER BLOCK ADDRESS
  3144. ADN 3 RETURN *ALMW*, *ACLW*, AND UPDATED *AACW*
  3145. CWM ALMT,TR
  3146. LJM VAN12 RETURN FIELDS FROM VALIDATION BLOCK
  3147.  
  3148. * UPDATE NFL AND PARAMETER BLOCK FOR PRIMARY USER COMMAND.
  3149.  
  3150. VAN11 LDM ACGN*5,T3
  3151. ZJN VAN11.0 IF NO DEFAULT CHARGE
  3152. NFA CHGN SET DEFAULT CHARGE AND PROJECT IN NFL
  3153. CWM ACGN*5,ON
  3154. VANJ EQU *-1
  3155. CWM APJN*5,ON
  3156. CWM APJ1*5,ON
  3157. VANK EQU *-1
  3158. VAN11.0 LDM RUIA
  3159. NJN VAN11.1 IF USER NAME NONZERO (*JSCW* ALREADY SET)
  3160. RJM PSV PROCESS SECURITY VALIDATIONS
  3161. NJP VAN2 IF ERROR
  3162. VAN11.1 LDD T3
  3163. ADN AHFC*5
  3164. RJM CLI CONVERT COUNTING LIMITS
  3165. LDN 12
  3166. STD T1
  3167. RJM CKA SET ADDRESS
  3168. ADN 12 RETURN TERMINAL NAME
  3169. CWM TNSS,ON
  3170. ADK 3-13 RETURN ALMW, ACLW, AND AACW TO CALLER
  3171. CWM AHMT*5,ON
  3172. VAND EQU *-1
  3173. CWM AHDS*5,ON
  3174. CWM AAWC*5,ON
  3175. VAN12 CWM APRN*5,ON
  3176. CWM APJN*5,ON
  3177. CWM APJ1*5,ON
  3178. CWM ACGN*5,ON
  3179. VANE EQU *-1
  3180. SBN 11 SET PASSWORD EXPIRATION DATE
  3181. CRD FN
  3182. LDM PESS
  3183. STD FN+1
  3184. LDM PESS+1
  3185. STD FN+2
  3186. RJM CKA RETURN PASSWORD EXPIRATION DATE
  3187. ADN 1
  3188. CWD FN
  3189. SBN 1 RETURN USER NAME AND USER INDEX
  3190. CWD UN
  3191. ADN 3 READ *ALMW*, *ACLW*, AND *AACW*
  3192. CRM ALMT,TR
  3193.  
  3194. * SET VALIDATION PARAMETERS.
  3195.  
  3196. LDD CP READ *AALW*
  3197. ADK AALW
  3198. CRD CM
  3199. STD CN SAVE ADDRESS
  3200. LDD CM+4 CLEAR OLD APPLICATION ACCESS LEVEL
  3201. SCN 77
  3202. STD CM+4
  3203. LDM APRN*5+4,T3 GET NEW APPLICATION ACCESS LEVEL
  3204. SHN -6
  3205. RAD CM+4
  3206. LDD CN UPDATE *AALW*
  3207. CWD CM
  3208. LDD CP READ PERMANENT FILE CONTROLS
  3209. ADN PFCW
  3210. CRD CN
  3211. ADN CSPW-PFCW READ PRIMARY USER COMMAND FLAG
  3212. CRD CM
  3213. LDD T5 SET FAMILY EST ORDINAL
  3214. STD CN+3
  3215. LDD T2 SET PERMANENT FILE CONTROLS
  3216. STD CN+4
  3217. LDM AAWC*5+4,T3 GET *CCNR* ACCESS PRIVILEGE FLAG
  3218. SHN 2-7
  3219. LPN 4
  3220. LMN 6 SET PRIMARY USER AND CHARGE REQUIRED FLAGS
  3221. LMD CM
  3222. LPN 6
  3223. LMD CM
  3224. STD CM
  3225. LDD CP WRITE PERMANENT FILE CONTROLS
  3226. ADN PFCW
  3227. CWD CN
  3228. ADN CSPW-PFCW WRITE USER AND CHARGE COMMAND FLAGS
  3229. CWD CM
  3230. NFA SSJN+UIDS SET VALIDATION WORDS IN SSJ= BLOCK
  3231. CWD UN
  3232. ADN ALMS-UIDS
  3233. CWM ALMT,TR
  3234.  
  3235. * SET SERVICE CLASS VALIDATION MASK.
  3236.  
  3237. LDM VANC
  3238. NJN VAN12.1 IF SECONDARY USER COMMAND
  3239. LDD T3 SET ADDRESS OF VALIDATION MASK
  3240. ADK ASCV*5
  3241. STM VANI
  3242. NFA SCVN
  3243. CWM **,ON
  3244. VANI EQU *-1 (ADDRESS OF VALIDATION MASK)
  3245.  
  3246. * CHECK FOR *SHELL* CONTROL.
  3247.  
  3248. VAN12.1 LDM ASHN*5,T3
  3249. ZJN VAN14 IF NO *SHELL* CONTROL
  3250. LDM AAWC*5+3,T3
  3251. SHN 21-7
  3252. PJN VAN13 IF NOT *CMNT* ACCESS
  3253. LDN SSTL
  3254. CRD CM
  3255. LDD CM+3
  3256. SHN 21-7
  3257. PJN VAN14 IF PRIVILEGED *RDF* ENABLED
  3258. VAN13 LDD T3 SET *SHELL* CONTROL
  3259. ADN ASHN*5
  3260. STM VANF
  3261. NFA SHCN
  3262. CWM **,ON
  3263. VANF EQU *-1
  3264.  
  3265. * CHECK *CMNT* ACCESS.
  3266.  
  3267. VAN14 LDM AAWC*5+3,T3
  3268. SHN 21-7
  3269. PJN VAN15 IF NOT *CMNT* ACCESS
  3270. LDN UN SPACE FILL USER NAME
  3271. RJM SFN
  3272. LDD UN+3
  3273. LMN 1R.&1R
  3274. STD UN+3
  3275. LDN 0
  3276. STD UN+4
  3277. LDD MA SET USER NAME IN MESSAGE
  3278. CWD UN
  3279. CRM VANH,ON
  3280. LDC VANG+MDON ISSUE MESSAGE TO SYSTEM DAYFILE ONLY
  3281. RJM DFM
  3282. VAN15 LJM CPMX EXIT
  3283.  
  3284.  
  3285. VANG DATA H*MAINTENANCE ACCESS BY UN = *
  3286. VANH BSS 5
  3287. FAM SPACE 4,15
  3288. *** FUNCTION 41.
  3289. * ENTER FAMILY.
  3290. *
  3291. * ENTRY (IR+3 - IR+4) = ADDRESS OF FAMILY NAME.
  3292. * IF FAMILY NAME = 0, THE DEFAULT WILL BE USED.
  3293. *
  3294. * EXIT ((IR+3 - IR+4)) = 48/OLD FAMILY NAME,12/FLAG.
  3295. * FLAG .EQ. 0 IF DEFAULT FAMILY NOT USED.
  3296. * .LT. 0 IF FAMILY NOT FOUND.
  3297. * .GT. 0 IF SAME AS SYSTEM DEFAULT FAMILY.
  3298. *
  3299. * MUST BE CALLED BY SYSTEM ORIGIN JOB.
  3300. * ON A SECURED SYSTEM, MUST BE CALLED BY *SSJ=* PROGRAM.
  3301.  
  3302.  
  3303. FAM ENTRY
  3304. LDD SM
  3305. ZJN FAM0 IF SYSTEM UNSECURED
  3306. LDD EP
  3307. SHN 21-2
  3308. MJN FAM0 IF CALLER HAS *SSJ=* ENTRY POINT
  3309. ABORT ERIR * CPM - INCORRECT REQUEST.*
  3310.  
  3311. FAM0 RJM CKA READ FAMILY NAME
  3312. CRD FN
  3313. LDC PFNL READ DEFAULT FAMILY NAME
  3314. CRD CN
  3315. LDD CN+3
  3316. STD T5
  3317. LDD FN CHECK ENTERED FAMILY
  3318. NJN FAM1 IF FAMILY SPECIFIED
  3319. LDD T5 SET SYSTEM DEFAULT FAMILY
  3320. STD T2
  3321. STD FN+3
  3322. UJN FAM3
  3323.  
  3324. FAM1 RJM SFE SET FAMILY EST ORDINAL
  3325. SBN 2
  3326. MJN FAM2 IF FAMILY FOUND
  3327. LCN 0 SET FAMILY NOT FOUND STATUS
  3328. STD FN+4
  3329. LJM FAM5 RETURN STATUS
  3330.  
  3331. FAM2 LDN 0 SET FAMILY FOUND STATUS
  3332. STD FN+4
  3333. LDD T2 CHECK DEFAULT FAMILY
  3334. SBD T5
  3335. NJN FAM4 IF NOT DEFAULT FAMILY
  3336. FAM3 LDN 1 SET DEFAULT FAMILY STATUS
  3337. STD FN+4
  3338. FAM4 LDD CP
  3339. ADN PFCW SET FAMILY EST ORDINAL AND RETURN
  3340. CRD CN
  3341. RJM UFC UPDATE FAMILY COUNT
  3342. LDD CN+3
  3343. STD T3 SAVE OLD FAMILY EST ORDINAL
  3344. LDD T2 INSERT NEW FAMILY EST ORDINAL
  3345. STD CN+3
  3346. LDD CP
  3347. ADN PFCW
  3348. CWD CN
  3349. LDD FN+4
  3350. STD T4
  3351. SFA EST,T3 READ OLD FAMILY EST ENTRY
  3352. ADK EQDE
  3353. CRD CN
  3354. LDD CN+4
  3355. SHN 3
  3356. ADN PFGL
  3357. CRD FN READ OLD FAMILY NAME
  3358. LDD T4
  3359. STD FN+4 RESET STATUS
  3360. FAM5 LDN 0 SET RETURN ADDRESS
  3361. STD T1
  3362. RJM CKA
  3363. CWD FN
  3364. LJM CPMX RETURN
  3365. VAL SPACE 4,50
  3366. *** FUNCTION 56.
  3367. * VALIDATE USER.
  3368. * MUST BE CALLED FROM SYSTEM ORIGIN OR *SSJ=* JOB.
  3369. *
  3370. * ENTRY (IR+3 - IR+4) = ADDRESS OF CALL BLOCK *ADDR*.
  3371. *
  3372. *T ADDR 42/ FAMILY NAME, 15/ 0, 1/R, 1/E, 1/D
  3373. *T, 42/ PASSWORD, 15/ , 1/ B, 1/ I, 1/ P
  3374. *T, 42/ USER NAME, 17/ ,1/ U
  3375. *T, 42/ APPLICATION NAME, 18/ 0
  3376. *T, 60/
  3377. *T, 60/
  3378. *T, 60/
  3379. *T, 60/
  3380. *T, 60/
  3381. *T, 60/
  3382. *T, 60/
  3383. *T, 60/
  3384. *T, 60/
  3385. *
  3386. * FAMILY NAME = FAMILY NAME OR 0, THE SYSTEM DEFAULT FAMILY
  3387. * WILL BE RETURNED IF NO FAMILY NAME IS SUPPLIED.
  3388. * R = 1, IF JOB SHOULD NOT BE ROLLED ON A MASS STORAGE ERROR.
  3389. * E = 1, IF THE PED FIELD TO BE RETURNED.
  3390. * D = 1, IF THE PID FIELD TO BE RETURNED.
  3391. * PASSWORD = OPTIONAL PASSWORD FOR VALIDATION.
  3392. * B = 1, IF PASSWORD IS TO BE VALIDATED FOR BATCH ACCESS.
  3393. * I = 1, IF INCREMENT OF FAMILY ACTIVITY COUNT IS REQUIRED.
  3394. * P = 1, IF PASSWORD NOT TO BE VALIDATED.
  3395. * USER NAME = USER NAME TO VALIDATE.
  3396. * U = 1, IF USER NAME FOR USER INDEXES .GE. *AUIMX* ARE
  3397. * TO BE ALLOWED.
  3398. * APPLICATION NAME = 0 OR DESIRED APPLICATION NAME.
  3399. *
  3400. * EXIT THE PARAMETER BLOCK IS RETURNED AS FOLLOWS.
  3401. *
  3402. *T ADDR 42/FAMILY NAME, 3/, 9/FO, 5/ST, 1/C
  3403. *T, 42/ PASSWORD, 16/ 0, 1/ I, 1/ P
  3404. *T, 42/ USER NAME, 18/ USER INDEX
  3405. *T, 42/ APPLICATION NAME, 18/ 0
  3406. *T, 54/ 0, 6/ AL
  3407. *T, 60/ *AHMT*
  3408. *T, 60/ *AHDS*
  3409. *T, 60/ *AAWC*
  3410. *T, 60/ *ATPA*
  3411. *T, 60/ *AAVW*
  3412. *T, 60/ *ACGN*
  3413. *T, 60/ *APJN*
  3414. *T, 60/ *APJ1*
  3415. *T, 60/ PERSONAL IDENTIFICATION PART 1 (*APID*)
  3416. *T, 60/ PERSONAL IDENTIFICATION PART 2 (*API2*)
  3417. *T, 42/ 0, 18/ PASSWORD EXPIRATION DATE
  3418. *
  3419. * FO = EST ORDINAL OF FAMILY.
  3420. * ST = STATUS-
  3421. * BIT 0 = 0 VALID FAMILY, USER NAME, PASSWORD
  3422. * BIT 0 = 1 INCORRECT LOGIN (OTHER BITS UNDEFINED)
  3423. * BIT 1 = 0 SECURITY COUNT OK
  3424. * BIT 1 = 1 SECURITY COUNT EXHAUSTED
  3425. * BIT 2 = 0 NO MASS STORAGE ERROR ENCOUNTERED
  3426. * BIT 2 = 1 MASS STORAGE ERROR ENCOUNTERED
  3427. * C = COMPLETION BIT.
  3428. * USER INDEX = RETURNED USER INDEX ON VALID LOGIN.
  3429. * AL = APPLICATION ACCESS LEVEL.
  3430. * PERSONAL IDENTIFICATION = RETURNED IF VALID LOGIN AND D = 1.
  3431. * PASSWORD EXPIRATION DATE = EXPIRATION DATE OF THE PASSWORD
  3432. * BEING VALIDATED, RETURNED IF VALID PASSWORD AND E = 1.
  3433. *
  3434. * IF A NON-SUBSYSTEM JOB ENCOUNTERED A RECOVERABLE READ/WRITE
  3435. * ERROR ON THE DEVICE, THE JOB IS ROLLED OUT TO WAIT FOR THE
  3436. * DEVICE TO BECOME ACCESSIBLE.
  3437. *
  3438. *
  3439. * THE FAMILY ACTIVITY COUNT IS NOT INCREMENTED (EVEN
  3440. * IF *I* IS ONE) IF VALIDATION IS NOT SUCCESSFUL OR THE
  3441. * SECURITY COUNT IS EXHAUSTED.
  3442.  
  3443.  
  3444. VAL ENTRY
  3445. LDD OT
  3446. LMK SYOT
  3447. ZJN VAL1 IF SYSTEM ORIGIN
  3448. LDD EP
  3449. SHN 21-2
  3450. MJN VAL1 IF *SSJ=* JOB
  3451. ABORT ERIR * CPM - INCORRECT REQUEST.*
  3452.  
  3453. VAL1 LDN 10 CHECK PARAMETER ADDRESS
  3454. STD T1
  3455. RJM CKA
  3456. CRD FN READ FAMILY NAME
  3457. CRD BA
  3458. ADN 2
  3459. CRD UN READ USER NAME
  3460. LDD UN+4 SAVE SPECIAL USER NAMES ALLOWED FLAG
  3461. LPN 1
  3462. RAM VALA
  3463. LDD FN+4 SAVE ROLL/PID/PED FLAGS
  3464. LPN 77
  3465. RAM VALH
  3466.  
  3467. * VALIDATE USER AND FAMILY.
  3468.  
  3469. LDN 0 SET VALIDATE USER FUNCTION FOR *0AV* CALL
  3470. STD UN+4
  3471. STD BA+4
  3472. LDD UN+3
  3473. SCN 77
  3474. STD UN+3
  3475. EXECUTE 0AV,L0AV VALIDATE USER
  3476. PJN VAL2 IF NO MASS STORAGE ERROR ENCOUNTERED
  3477. LDM VALH CHECK ROLLOUT INHIBIT FLAG
  3478. LPN 4
  3479. NJN VAL1.1 IF NOT TO ROLL JOB ON MASS STORAGE ERROR
  3480. RJM CJR CHECK IF JOB IS ROLLABLE
  3481. VAL1.1 LDN 10-2
  3482. RAM VALG
  3483. UJN VAL4 RETURN ERROR TO CALLER
  3484.  
  3485. VAL2 LDD T4
  3486. ZJN VAL3 IF USER INDEX .LT. *AUIMX*
  3487. VALA LDN 0
  3488. * LDN 1 (SPECIAL USER NAMES ALLOWED)
  3489. ZJN VAL4 IF SPECIAL USER NAMES NOT ALLOWED
  3490. VAL3 LDD T1
  3491. SHN 14
  3492. LMD T2
  3493. NJN VAL5 IF LEGAL USER NAME
  3494. VAL4 LJM VAL11 TERMINATE REQUEST
  3495.  
  3496. VAL5 STD UN+4 ENTER USER INDEX IN PARAMETER BLOCK
  3497. SHN -14
  3498. RAD UN+3
  3499. LDD T3 SAVE ADDRESS OF ACCOUNT BLOCK
  3500. STM VALD
  3501. RAM VALI
  3502. LDN VALC-VALB SET ADDRESSES OF USER BLOCK WORDS
  3503. STD T1
  3504. VAL6 LDD T3 SET ADDRESS
  3505. RAM VALB,T1
  3506. LCN 2
  3507. RAD T1
  3508. PJN VAL6 IF MORE ADDRESSES TO SET
  3509. RJM SFE SET FAMILY EST ORDINAL
  3510. NJP VAL4 IF FAMILY NOT FOUND
  3511.  
  3512. * RETURN USER RECORD PARAMETERS.
  3513.  
  3514. LDD MA TRANSFER (FN - FN+4) TO (BA - BA+4)
  3515. CWD FN RETURN FAMILY NAME
  3516. CRD BA
  3517. LDD FN+4 SET FAMILY EST ORDINAL FOR *STBM*
  3518. STM VALF
  3519. SHN 6
  3520. STD BA+4
  3521. SHN -14 INSERT REMAINING BITS IN (BA+3)
  3522. RAD BA+3
  3523. LDN 14 SET WORD COUNT
  3524. STD T1
  3525. RJM CKA
  3526. ADN 1
  3527. CRD FN
  3528. ADN 5-1
  3529. CWM AHMT*5,ON
  3530. VALB EQU *-1
  3531. CWM AHDS*5,ON
  3532. CWM AAWC*5,ON
  3533. CWM ATPA*5,ON
  3534. CWM AAVW*5,ON
  3535. CWM ACGN*5,ON
  3536. CWM APJN*5,ON
  3537. CWM APJ1*5,ON
  3538. VALC EQU *-1
  3539. LDD FN+4 SAVE PARAMETER FLAGS
  3540. STM VALE
  3541.  
  3542. * EXPANDED BLOCK PERSONAL IDENTIFICATION.
  3543.  
  3544. VALH LDN ** EXPANDED BLOCK FLAGS
  3545. LPN 1
  3546. ZJN VAL6.1 IF PERSONAL ID BIT NOT SET
  3547. LDN 2
  3548. STD T2
  3549. RAD T1
  3550. RJM CKA SET PARAMETER ADDRESS
  3551. ADN 15
  3552. CWM APID*5,T2 RETURN PERSONAL IDENTIFICATION
  3553. VALI EQU *-1 (ADDR. OF PERSONAL ID IN VALIDATION BLOCK)
  3554.  
  3555. * VALIDATE PASSWORD.
  3556.  
  3557. VAL6.1 LDC ** SET ACCOUNT BLOCK ADDRESS
  3558. VALD EQU *-1 (ADDRESS OF ACCOUNT BLOCK)
  3559. STD T3
  3560. LDD FN+4
  3561. SHN 21-2
  3562. PJN VAL7 IF NOT TO USE BATCH PASSWORD
  3563. LDC APSW*5 USE BATCH PASSWORD
  3564. STM VPWA
  3565. STM RPEA
  3566. VAL7 RJM VPW VALIDATE PASSWORD
  3567. NJP VAL11 IF PASSWORD NOT VALID
  3568.  
  3569. * EXPANDED BLOCK PASSWORD EXPIRATION DATE.
  3570.  
  3571. LDM VALH EXPANDED BLOCK FLAGS
  3572. LPN 2
  3573. ZJN VAL8 IF PASSWORD EXPIRATION BIT NOT SET
  3574. AOD T1
  3575. RJM RPE RETURN PASSWORD EXPIRATION DATE
  3576. RJM CKA SET PARAMETER ADDRESS
  3577. ADD T1
  3578. CWD CM SET PASSWORD EXPIRATION DATE
  3579.  
  3580. * CHECK SECURITY COUNT.
  3581.  
  3582. VAL8 LDD T6 CHECK SECURITY COUNT
  3583. NJN VAL9 IF SECURITY COUNT NOT EXHAUSTED
  3584. LDN 4
  3585. RAD BA+4 SET SECURITY EXHAUSTION FLAG
  3586. UJN VAL10 TERMINATE REQUEST
  3587.  
  3588. * INCREMENT FAMILY ACTIVITY COUNT.
  3589.  
  3590. VAL9 LDC * CHECK FAMILY COUNT INCREMENT FLAG
  3591. VALE EQU *-1
  3592. LPN 2
  3593. ZJN VAL10 IF NO FAMILY COUNT INCREMENT
  3594. LDN IFCS INCREMENT FAMILY ACTIVITY COUNT
  3595. STD CM+3
  3596. LDC * SET FAMILY EST ORDINAL
  3597. VALF EQU *-1 (EST ORDINAL OF FAMILY)
  3598. STD CM+1
  3599. MONITOR SMDM
  3600.  
  3601. * TERMINATE REQUEST.
  3602.  
  3603. VAL10 AOD BA+4 SET COMPLETION BIT
  3604. RJM CKA
  3605. ADN 4
  3606. CRD FN
  3607. LDM VASS+APRN*5+4 APPLICATION ACCESS LEVEL
  3608. SCN 77
  3609. STD FN+4
  3610. RJM CKA CHECK CENTRAL ADDRESS
  3611. CWD BA
  3612. ADN 2
  3613. CWD UN
  3614. ADN 2
  3615. CWD FN
  3616. LJM CPMX RETURN
  3617.  
  3618. VAL11 LDN 0 CLEAR USER INDEX
  3619. STD UN+4
  3620. LDD UN+3
  3621. SCN 77
  3622. STD UN+3
  3623. LDN 2 SET INCORRECT LOGIN FLAG
  3624. * LDN 10 (MASS STORAGE ERROR)
  3625. VALG EQU *-1
  3626. RAD BA+4
  3627. UJN VAL10 RETURN ERROR TO CALLER
  3628. SPF SPACE 4,25
  3629. *** FUNCTION 60.
  3630. * SET PERMANENT FILE PARAMETERS IN CONTROL POINT AREA.
  3631. * MUST BE CALLED BY SYSTEM ORIGIN JOB.
  3632. *
  3633. * ENTRY (IR+3 - IR+4) = ADDRESS *ADDR* OF PARAMETER BLOCK
  3634. * WHICH HAS THE FOLLOWING FORMAT -
  3635. *
  3636. *T ADDR 42/ FAMILY NAME,14/ ,4/ FG
  3637. *T, 42/ PACK NAME,18/ PACK TYPE
  3638. *T, 42/ USER NAME,1/ ,17/ USER INDEX
  3639. * FG = FLAG BITS DENOTING WHICH FIELDS TO SET.
  3640. * BIT 3 - FAMILY NAME.
  3641. * BIT 2 - PACKNAME.
  3642. * BIT 1 - USER NAME.
  3643. * BIT 0 - USER INDEX.
  3644. *
  3645. * EXIT PARAMETERS SET IN CONTROL POINT AREA IF FLAGGED.
  3646. * STATUS OF SPECIFIED FAMILY RETURNED AS FOLLOWS -
  3647. *
  3648. *T ADDR 42/ FAMILY NAME,6/ ST,8/ 0,4/ FG
  3649. * ST = 0 IF FAMILY NAME SET IN CONTROL POINT AREA.
  3650. * = 1 IF SPECIFIED FAMILY WAS NOT FOUND (CURRENT FAMILY
  3651. * REMAINS UNCHANGED).
  3652.  
  3653.  
  3654. SPF ENTRY
  3655. LDN 2 CHECK PARAMETER BLOCK ADDRESS
  3656. STD T1
  3657. RJM CKA
  3658. CRD FN READ FAMILY NAME
  3659. LDD CP READ PF CONTROL WORD
  3660. ADN PFCW
  3661. CRD UN
  3662. LDD FN+4 CHECK FAMILY NAME BIT
  3663. STD T7
  3664. SHN 21-3
  3665. PJN SPF2 IF NO FAMILY NAME CHANGE
  3666.  
  3667. * FIND EST ORDINAL OF SPECIFIED FAMILY.
  3668.  
  3669. RJM SFE SET FAMILY EST ORDINAL
  3670. ZJN SPF0 IF FAMILY FOUND
  3671. LDN 1 SET FAMILY NOT FOUND STATUS
  3672. SPF0 STD T3
  3673. NJN SPF1 IF FAMILY NOT FOUND
  3674.  
  3675. * SET FAMILY ORDINAL IN CONTROL POINT AREA.
  3676.  
  3677. LDD UN+3 SET OLD FAMILY EST ORDINAL FOR *UFC*
  3678. STD CN+3
  3679. LDD T2
  3680. STD UN+3
  3681. RJM UFC UPDATE FAMILY COUNTS
  3682. LDD CP UPDATE FAMILY ORDINAL IN CPA
  3683. ADN PFCW
  3684. CWD UN
  3685.  
  3686. * SET STATUS OF SPECIFIED FAMILY NAME.
  3687.  
  3688. SPF1 LDD FN+3 ADD STATUS TO NAME
  3689. SCN 77
  3690. LMD T3
  3691. STD FN+3
  3692. LDD T7 RESET FLAG BITS
  3693. STD FN+4
  3694. LDN 2 SET STATUS IN BLOCK
  3695. STD T1
  3696. RJM CKA
  3697. CWD FN
  3698.  
  3699. * CHANGE PACKNAME.
  3700.  
  3701. SPF2 LDD T7 CHECK PACK NAME FLAG
  3702. SHN 21-2
  3703. PJN SPF3 IF NO PACK NAME CHANGE
  3704. RJM CKA READ PACKNAME AND PACK TYPE
  3705. ADN 1
  3706. CRD FN
  3707. LDD CP UPDATE PACK NAME AND TYPE IN CPA
  3708. ADC PKNW
  3709. CWD FN
  3710.  
  3711. * READ USER NAME AND USER INDEX.
  3712.  
  3713. SPF3 RJM CKA READ USER NAME AND USER INDEX
  3714. ADN 2
  3715. CRD UN
  3716. CRD CM
  3717. LDD CP READ CONTROL POINT AREA PARAMETERS
  3718. ADN UIDW
  3719. CRD FN
  3720.  
  3721. * CHANGE USER NAME.
  3722.  
  3723. LDD T7 CHECK USER NAME FLAG
  3724. SHN 21-1
  3725. PJN SPF4 IF USER NAME FLAG NOT SET
  3726. LDD CM+3 SET NEW USER NAME
  3727. SCN 77
  3728. STD CM+3
  3729. LDD FN+3
  3730. LPN 77
  3731. LMD CM+3
  3732. STD CM+3
  3733. LDD FN+4
  3734. STD CM+4
  3735. LDD MA RESET CONTROL POINT AREA WORD
  3736. CWD CM
  3737. CRD FN
  3738.  
  3739. * CHANGE USER INDEX.
  3740.  
  3741. SPF4 LDD T7 CHECK USER INDEX FLAG
  3742. SHN 21-0
  3743. PJN SPF5 IF USER INDEX FLAG NOT SET
  3744. LDD FN+3 SET NEW USER INDEX
  3745. SCN 37
  3746. STD FN+3
  3747. LDD UN+3
  3748. LPN 37
  3749. LMD FN+3
  3750. STD FN+3
  3751. LDD UN+4
  3752. STD FN+4
  3753.  
  3754. * SET NEW USER NAME AND USER INDEX.
  3755.  
  3756. SPF5 LDD CP WRITE NEW PARAMETERS
  3757. ADN UIDW
  3758. CWD FN
  3759. LJM CPMX EXIT
  3760. DFC SPACE 4,10
  3761. *** FUNCTION 73.
  3762. * DECREMENT FAMILY USER COUNT (*SYOT* ONLY).
  3763. *
  3764. * ENTRY (IR+3 - IR+4) = ADDRESS OF FAMILY DESCRIPTOR WORD.
  3765. *
  3766. *T, 42/ FAMILY NAME, 17/ 0, 1/ 0
  3767. *
  3768. * EXIT FAMILY DESCRIPTOR WORD UPDATED.
  3769. *T, 42/ , 6/ RES, 11/ STATUS, 1/ C
  3770. *
  3771. * STATUS = NON-ZERO IF FAMILY NOT FOUND.
  3772. * C = COMPLETION BIT. (ZERO ON REQUEST, ONE ON REPLY)
  3773. * RES = RESERVED FOR CDC.
  3774.  
  3775.  
  3776. DFC ENTRY
  3777. RJM CKA CHECK PARAMETER ADDRESS
  3778. CRD FN READ FAMILY NAME
  3779. LDN 20 SET RETURN STATUS FOR FAMILY NOT FOUND
  3780. STD FN+4
  3781. RJM SFE SET FAMILY EST ORDINAL
  3782. SBN 2
  3783. PJN DFC1 IF FAMILY NOT FOUND
  3784. LDN 0 SET RETURN STATUS FOR FAMILY FOUND
  3785. STD FN+4
  3786. LDD T2
  3787. STD CM+1 SET FAMILY EST ORDINAL
  3788. LDN DFCS DECREMENT FAMILY USER COUNT
  3789. STD CM+3
  3790. MONITOR SMDM
  3791. DFC1 LDD FN+3 CLEAR RESERVED BITS
  3792. SCN 77
  3793. STD FN+3
  3794. AOD FN+4 SET COMPLETE BIT
  3795. LDN 0
  3796. STD T1
  3797. RJM CKA
  3798. CWD FN WRITE STATUS
  3799. LJM CPMX RETURN
  3800. SPC SPACE 4,20
  3801. *** FUNCTION 104.
  3802. * SET PROLOGUE/EPILOGUE CONTROLS.
  3803. * CALLER MUST HAVE *SSJ=* ENTRY POINT.
  3804. *
  3805. * ENTRY (IR+3 - IR+4) = ADDRESS *ADDR* OF PARAMETER BLOCK.
  3806. *
  3807. *T ADDR 32/ , 1/E, 3/TO, 18/ FL
  3808. *
  3809. * E = EPILOGUE PENDING FLAG. THE CHARGE REQUIRED FLAG
  3810. * IS CLEARED IF CLEARING EPILOGUE PENDING FLAG.
  3811. * TO = SYSTEM/PROJECT PROLOGUE/EPILOGUE TERMINATION OPTION
  3812. * (SEE *COMSJCE*).
  3813. * FL = OPTIONAL PROCESSING FLAGS.
  3814. * BIT 1 = SET/CLEAR EPILOGUE PENDING FLAG.
  3815. * BIT 0 = SET/CLEAR PROLOGUE/EPILOGUE TERMINATION OPTION.
  3816.  
  3817.  
  3818. SPC ENTRY
  3819. RJM CKA READ PARAMETER WORD
  3820. CRD BA
  3821. LDD CP READ PROLOGUE/EPILOGUE CONTROL
  3822. ADN EOJW
  3823. CRD CM
  3824. ADN CSPW-EOJW READ EPILOGUE PENDING AND CHARGE REQUIRED
  3825. CRD FN
  3826. ADN JCDW-CSPW READ PROCEDURE NESTING LEVEL
  3827. CRD UN
  3828. LDD BA+4
  3829. SHN 21-0
  3830. PJN SPC1 IF NOT TO SET/CLEAR TERMINATION OPTION
  3831. LDD CM+2 SAVE CURRENT OPTION
  3832. LPC 700
  3833. STD T1
  3834. LDD BA+3 SET TERMINATION OPTION
  3835. LPC 700
  3836. LMD CM+2
  3837. LMD T1
  3838. STD CM+2
  3839. LPC 700
  3840. ZJN SPC0.1 IF CLEARING OPTION, CLEAR NESTING LEVEL
  3841.  
  3842. * IF A TERMINATION OPTION IS SET ON ENTRY AND IS NOT BEING
  3843. * CLEARED, A PROJECT PROLOGUE IS TO BE EXECUTED FOLLOWING A
  3844. * SYSTEM PROLOGUE IN THE PROLOGUE SEQUNCING PROCEDURE. IN THIS
  3845. * CASE, THE NESTING LEVEL CONTROL WILL NOT BE CHANGED.
  3846.  
  3847. LDD T1
  3848. NJN SPC1 IF ALREADY SEQUENCING PROLOGUES
  3849. LDD UN+2 SET NESTING LEVEL CONTROL
  3850. SPC0.1 LMD CM+2
  3851. LPN 77
  3852. LMD CM+2
  3853. STD CM+2
  3854. SPC1 LDD BA+4
  3855. SHN 21-1
  3856. PJN SPC2 IF NOT PROCESS EPILOGUE PENDING
  3857. LDD BA+3
  3858. SHN -6
  3859. LPN 10
  3860. LMD FN
  3861. LPN 10
  3862. LMD FN
  3863. STD FN
  3864. LPN 10
  3865. NJN SPC2 IF SET EPILOGUE PENDING
  3866. LDD FN
  3867. SCN 4 CLEAR CHARGE REQUIRED
  3868. STD FN
  3869. SPC2 LDD CP WRITE PROLOGUE/EPILOGUE CONTROL
  3870. ADN EOJW
  3871. CWD CM
  3872. ADN CSPW-EOJW WRITE EPILOGUE PENDING AND CHARGE REQUIRED
  3873. CWD FN
  3874. LJM CPMX RETURN
  3875. SCC SPACE 4,40
  3876. *** FUNCTION 114.
  3877. *
  3878. * DECREMENT SECURITY COUNT (MUST BE CALLED FROM AN *SSJ=*
  3879. * PROGRAM). IF THE SECURITY COUNT IS UNLIMITED OR IF A MASS
  3880. * STORAGE ERROR IS ENCOUNTERED, THE SECURITY COUNT WILL NOT BE
  3881. * DECREMENTED.
  3882. *
  3883. * ENTRY (IR+3 - IR+4) = ADDRESS OF THE 3-WORD BLOCK *ADDR*.
  3884. *
  3885. *T ADDR 42/ USER NAME, 18/
  3886. *T, 42/, 14/, 1/D, 3/
  3887. *T, 42/ FAMILY NAME, 18/
  3888. *
  3889. * USER NAME IS SUPPLIED BY THE CALLER, IF D=0.
  3890. * FAMILY NAME = 0, IF DEFAULT FAMILY USED.
  3891. * D = 0, IF PARAMETER BLOCK PROVIDED BY CALLER.
  3892. * D = 1, IF PARAMETER BLOCK MUST BE BUILT FROM
  3893. * THE CONTROL POINT AREA.
  3894. *
  3895. * EXIT THE PARAMETER BLOCK IS RETURNED AS FOLLOWS.
  3896. *
  3897. *T ADDR 42/ USER NAME, 18/
  3898. *T, 42/, 14/, 1/, 1/S, 2/
  3899. *T, 42/ FAMILY NAME, 18/
  3900. *
  3901. * S = 1, IF SECURITY COUNT EXHAUSTED.
  3902. *
  3903. * THE JOB IS ROLLED OUT TO WAIT FOR THE DEVICE TO BECOME
  3904. * ACCESSIBLE IF A NON-SUBSYSTEM JOB ENCOUNTERED A
  3905. * RECOVERABLE READ/WRITE ERROR ON THE DEVICE.
  3906.  
  3907.  
  3908. SCC ENTRY
  3909. LDN 2 CHECK PARAMETER ADDRESS
  3910. STD T1
  3911. RJM CKA
  3912. CRD UN READ USER NAME
  3913. ADN 1
  3914. CRD CM READ SECOND WORD
  3915. ADN 1
  3916. CRD FN READ FAMILY NAME
  3917. LDD CM+4
  3918. SHN 21-3
  3919. PJN SCC1 IF NOT TO USE CONTROL POINT AREA
  3920. LDN 0 SET DEFAULT FAMILY NAME
  3921. STD FN
  3922. LDD CP READ USER NAME
  3923. ADN UIDW
  3924. CRD UN
  3925.  
  3926. * DECREMENT SECURITY COUNT.
  3927.  
  3928. SCC1 LDN 1 SET REQUEST TO DECREMENT SECURITY COUNT
  3929. STD UN+4
  3930. EXECUTE 0AV,L0AV DECREMENT SECURITY COUNT
  3931. PJN SCC1.1 IF NO MASS STORAGE ERROR ENCOUNTERED
  3932. RJM CJR CHECK IF THE JOB IS ROLLABLE
  3933. UJN SCC2 IGNORE CALL
  3934.  
  3935. SCC1.1 RJM SFE SET FAMILY EST ORDINAL
  3936. ZJN SCC3 IF FAMILY FOUND
  3937. SCC2 LJM CPMX IGNORE CALL
  3938.  
  3939.  
  3940. * CHECK SECURITY COUNT.
  3941.  
  3942. SCC3 LDN ZERL
  3943. CRD CM
  3944. LDD T6 CHECK SECURITY COUNT
  3945. NJN SCC4 IF SECURITY COUNT NOT EXHAUSTED
  3946. LDN 4 SET COUNT EXHAUSTED FLAG
  3947. STD CM+4
  3948. SCC4 LDN 2
  3949. STD T1
  3950. RJM CKA SET PARAMETER ADDRESS
  3951. CWD UN RETURN USER NAME
  3952. ADN 1
  3953. CWD CM RETURN STATUS
  3954. ADN 1
  3955. CWD FN RETURN FAMILY NAME
  3956. UJN SCC2 RETURN
  3957. UCS SPACE 4,15
  3958. *** FUNCTION 115.
  3959. *
  3960. * UPDATE USER ACCESS WORDS IN CONTROL POINT AREA
  3961. * AND THE SSJ= BLOCK IN NFL.
  3962. *
  3963. * ENTRY (IR+3 - IR+4) = ADDRESS OF 3-WORD PARAMETER
  3964. * BLOCK *ADDR*.
  3965. *
  3966. *T ADDR 60/ NEW *ALMW*
  3967. *T, 60/ NEW *ACLW*
  3968. *T, 60/ NEW *AACW*
  3969. *
  3970. * EXIT (ALMW) = *ALMW* FROM PARAMETER BLOCK.
  3971. * (ACLW) = *ACLW* FROM PARAMETER BLOCK.
  3972. * (AACW) = *AACW* FROM PARAMETER BLOCK.
  3973.  
  3974.  
  3975. UCS ENTRY
  3976. LDN 2 SET LENGTH OF BLOCK
  3977. STD T1
  3978. RJM CKA CHECK ADDRESS
  3979. ERRNZ ACLW-ALMW-1 CODE REQUIRES CONTIGUOUS WORDS
  3980. ERRNZ AACW-ACLW-1
  3981. CRM ALMT,TR
  3982. LDD CP SET WORDS IN CONTROL POINT AREA
  3983. ADN ALMW
  3984. CWM ALMT,TR
  3985. NFA SSJN+ALMS SET WORDS IN NFL
  3986. CWM ALMT,TR
  3987. LJM CPMX RETURN
  3988. RUA SPACE 4,15
  3989. *** FUNCTION 126.
  3990. * RETURN USER ACCOUNT BLOCK.
  3991. *
  3992. * ENTRY (IR+3 - IR+4) = FWA OF PARAMETER REPLY BLOCK.
  3993. *
  3994. * EXIT IF THERE ARE NO ERRORS, THE USER ACCOUNT BLOCK IS
  3995. * WRITTEN TO THE PARAMETER REPLY BLOCK.
  3996. *
  3997. * IF THE SPECIFIED USER NAME IS NOT FOUND, THE PARAMETER
  3998. * BLOCK IS CLEARED.
  3999. *
  4000. * IF A NON-SUBSYSTEM JOB ENCOUNTERED A RECOVERABLE
  4001. * READ/WRITE ERROR ON THE DEVICE, THE JOB IS ROLLED TO
  4002. * WAIT FOR THE DEVICE TO BECOME ACCESSIBLE. OTHERWISE,
  4003. * THE PARAMETER BLOCK IS CLEARED.
  4004.  
  4005.  
  4006. RUA ENTRY ENTRY/EXIT
  4007. LDK ARBS
  4008. STD T1
  4009. RJM CKA VALIDATE PARAMETER BLOCK ADDRESS
  4010. RJM RUI GET USER NAME
  4011. NJN RUA1 IF USER COMMAND FOUND
  4012. LJM RUA3 CLEAR PARAMETER BLOCK
  4013.  
  4014. RUA1 LDK ZERL SET FAMILY NAME
  4015. CRD FN
  4016. LDD MA SET USER NAME
  4017. CWD CM
  4018. CRD UN
  4019. LDD UN+3
  4020. SCN 77
  4021. STD UN+3
  4022. LDN 0 VALIDATE USER NAME FUNCTION
  4023. STD UN+4
  4024. EXECUTE 0AV,L0AV
  4025. PJN RUA1.1 IF NO MASS STORAGE ERROR ENCOUNTERED
  4026. RJM CJR CHECK IF THE JOB IS ROLLABLE
  4027. UJN RUA3 CLEAR THE PARAMETER BLOCK
  4028.  
  4029. RUA1.1 LDD T1
  4030. LPN 37
  4031. SHN 14
  4032. LMD T2
  4033. ZJN RUA3 IF USER NAME NOT FOUND
  4034.  
  4035. * WRITE DATA TO PARAMETER BLOCK.
  4036.  
  4037. LDD T3 FWA OF USER ACCOUNT BLOCK
  4038. STM RUAA
  4039. LDK ARBS NUMBER OF CM WORDS TO WRITE
  4040. STD T1
  4041. RJM CKA GET PARAMETER BLOCK ADDRESS
  4042. CWM **,T1 WRITE USER ACCOUNT BLOCK
  4043. RUAA EQU *-1
  4044. RUA2 LJM CPMX RETURN
  4045.  
  4046. * CLEAR PARAMETER BLOCK.
  4047.  
  4048. RUA3 LDK ZERL
  4049. CRD CM
  4050. LDK ARBS-1 LWA OF PARAMETER BLOCK
  4051. STD T1
  4052. RUA4 RJM CKA GET PARAMETER BLOCK ADDRESS
  4053. ADD T1
  4054. CWD CM
  4055. SOD T1
  4056. PJN RUA4 IF MORE WORDS TO CLEAR
  4057. UJN RUA2 RETURN
  4058. GPS SPACE 4,20
  4059. *** FUNCTION 131.
  4060. * GET PROLOGUE/EPILOGUE STATUS.
  4061. * CALLER MUST HAVE *SSJ=* ENTRY POINT.
  4062. *
  4063. * ENTRY (IR+3 - IR+4) = ADDRESS *ADDR* OF PARAMETER BLOCK.
  4064. *
  4065. *T ADDR 60/
  4066. *
  4067. * EXIT
  4068. *
  4069. *T ADDR 2/PR, 1/S, 32/0, 1/I, 24/RI
  4070. *
  4071. * PR = 0 IF NO SYSTEM/PROJECT PROLOGUE OR EPILOGUE
  4072. * ACTIVE.
  4073. * = 1 IF IN SYSTEM/PROJECT PROLOGUE OR EPILOGUE
  4074. * SEQUENCING PROCEDURE.
  4075. * = 2 IF IN SYSTEM/PROJECT PROLOGUE OR EPILOGUE.
  4076. * S = 1 IF SHELL PROGRAM LOAD CANNOT BE SUSPENDED IN
  4077. * PROLOGUE OR EPILOGUE.
  4078. * I = ENTRY INDEX IN PROFILE LEVEL-3 BLOCK IF PROJECT
  4079. * EPILOGUE PENDING.
  4080. * RI = RANDOM INDEX OF PROFILE LEVEL-3 BLOCK IF PROJECT
  4081. * EPILOGUE PENDING.
  4082.  
  4083.  
  4084. GPS ENTRY
  4085. RJM CKA READ PARAMETER WORD
  4086. CRD BA
  4087. LDN ZERL
  4088. CRD CN
  4089. LDD CP READ PROLOGUE/EPILOGUE CONTROL
  4090. ADN EOJW
  4091. CRD CM
  4092. ADN CSPW-EOJW READ EPILOGUE PENDING AND CHARGE REQUIRED
  4093. CRD FN
  4094. ADN JCDW-CSPW READ PROCEDURE NESTING LEVEL
  4095. CRD UN
  4096. LDD CM+2
  4097. LPC 777
  4098. ZJN GPS2 IF NO PROLOGUE OR EPILOGUE ACTIVITY
  4099. ADN 1
  4100. LMD UN+2
  4101. LPN 77
  4102. ZJN GPS1 IF IN SEQUENCING PROCEDURE
  4103. LDC 6000 SET NOT IN SEQUENCING PROCEDURE
  4104. GPS1 LMC 2000 SET SEQUENCING FLAGS
  4105. STD CN
  4106. GPS2 NFA SHCN READ SHELL CONTROL
  4107. CRD CM
  4108. LDD CM
  4109. ZJN GPS3 IF NO SHELL PROGRAM ACTIVE
  4110. LDD CM+4
  4111. SHN 21-6
  4112. MJN GPS3 IF SHELL CONTROLS SUSPENDABLE (*A* OPTION)
  4113. LDC 1000 SET NON-SUSPENDABLE SHELL CONTROLS
  4114. RAD CN
  4115. GPS3 LDD FN
  4116. SHN 21-3
  4117. PJN GPS4 IF NO EPILOGUE REQUIRED
  4118. LDD CP
  4119. ADN FPFW READ PROFILE FILE POINTERS
  4120. CRD T3
  4121. LDD T3 RETURN ENTRY INDEX
  4122. SHN 0-12
  4123. LPN 1
  4124. STD CN+2
  4125. SFA FNT,T5 GET PROFILE FILE FST INFORMATION
  4126. ADN FSTG
  4127. CRD CM
  4128. LDD CM EQUIPMENT NUMBER
  4129. STD T5
  4130. LDD CM+1
  4131. RJM SRA SET RANDOM ADDRESS
  4132. NJN GPS6 IF TRACK/SECTOR NOT ON TRACK CHAIN
  4133. STD T1 SET *CKA* WORD COUNT
  4134. LDD RI RETURN RANDOM ADDRESS
  4135. STD CN+3
  4136. LDD RI+1
  4137. STD CN+4
  4138. GPS4 RJM CKA CHECK PARAMETER ADDRESS
  4139. CWD CN
  4140. GPS5 LJM CPMX RETURN
  4141.  
  4142. GPS6 LDK SWET SET ERROR FLAG
  4143. STD CM+2
  4144. LDC * SET ADDRESS WHERE ERROR DETECTED
  4145. STD CM+1
  4146. MONITOR CHGM CONDITIONAL HANG
  4147. UJN GPS5 RETURN
  4148. TITLE SUBROUTINES.
  4149. CSU SPACE 4,20
  4150. ** CSU - CHECK SECONDARY USER COMMAND.
  4151. *
  4152. * ENTRY (SM) = SECURITY MODE.
  4153. * (CN - CN+4) = *CSPW*.
  4154. * (UN - UN+4) = WORD 0 OF PARAMETER BLOCK.
  4155. * (BA - BA+4) = WORD 2 OF PARAMETER BLOCK WITH STATUS
  4156. * FLAGS SET BY *GVP*.
  4157. *
  4158. * EXIT (A) = 0 IF SECONDARY USER COMMAND ALLOWED.
  4159. * (A) .NE. 0 IF NOT SYSTEM ORIGIN JOB AND SYSTEM IS
  4160. * OPERATING IN SECURED MODE.
  4161. * TO *CPMX* WITH ERROR CODE SET IN CALL BLOCK IF
  4162. * SECONDARY USER COMMAND DISALLOWED AND SYSTEM IS NOT
  4163. * OPERATING IN SECURED MODE.
  4164. *
  4165. * USES BA+4, CM - CM+4, CN - CN+4, T4 - T7.
  4166. *
  4167. * CALLS CKA, CFN, RUI, SFE.
  4168. *
  4169. * MACROS NFA.
  4170.  
  4171.  
  4172. CSU SUBR
  4173. LDD CN
  4174. SHN 3-2
  4175. LPN 10
  4176. NJN CSU1 IF CHARGE REQUIRED SET
  4177. LDD OT CHECK ORIGIN TYPE
  4178. LMK SYOT
  4179. ZJN CSUX IF SYSTEM ORIGIN JOB
  4180. LDD SM
  4181. NJN CSUX IF SYSTEM OPERATING IN SECURE MODE
  4182. LDN SSTL CHECK IF SECONDARY USER COMMANDS ENABLED
  4183. CRD CM
  4184. LDD CM+1
  4185. LPN 20
  4186. CSU1 NJN CSU2 IF SECONDARY USER COMMANDS DISABLED
  4187. NFA SSJN+AACS READ USER ACCESS WORD
  4188. CRD T4
  4189.  
  4190. * CHECK ALTERNATE FAMILY.
  4191.  
  4192. LDD T4+3
  4193. SHN 21-11
  4194. MJN CSU3 IF VALIDATED FOR ALTERNATE FAMILY
  4195. RJM SFE SET (FN - FN+3) IF FAMILY DEFAULTED
  4196. LDD CP READ FAMILY EST POINTER
  4197. ADN PFCW
  4198. CRD CM
  4199. SFA EST,CM+3 GET MST ADDRESS
  4200. ADK EQDE
  4201. CRD CM
  4202. LDD CM+4 SET FAMILY ADDRESS
  4203. SHN 3
  4204. ADN PFGL
  4205. CRD CN
  4206. RJM CFN COMPARE FAMILIES
  4207. ZJN CSU3 IF ALTERNATE FAMILY NOT SPECIFIED
  4208. LDN 30 SET ALTERNATE FAMILY NOT ALLOWED ERROR
  4209. CSU2 UJN CSU6 SET ERROR CODE
  4210.  
  4211. * CHECK ALTERNATE USER NAME.
  4212.  
  4213. CSU3 LDD T4+2
  4214. LPN 20 *CSAU* BIT
  4215. LMN 20
  4216. CSU4 ZJP CSUX IF VALIDATED FOR ALTERNATE USER NAME
  4217. RJM RUI GET CURRENT USER NAME
  4218. LMD UN
  4219. NJN CSU5 IF NOT SAME USER NAME
  4220. LDD CM+1
  4221. LMD UN+1
  4222. NJN CSU5 IF NOT SAME USER NAME
  4223. LDD CM+2
  4224. LMD UN+2
  4225. NJN CSU5 IF NOT SAME USER NAME
  4226. LDD CM+3
  4227. LMD UN+3
  4228. SCN 77
  4229. ZJN CSU4 IF SAME USER NAME
  4230. CSU5 LDN 40 SET ALTERNATE USER NAME NOT ALLOWED ERROR
  4231.  
  4232. * RETURN ERROR CODE AND EXIT.
  4233.  
  4234. CSU6 RAD BA+4 SET ERROR CODE
  4235. RJM CKA WRITE ERROR STATUS
  4236. ADN 2
  4237. CWD BA
  4238. LJM CPMX EXIT
  4239. GPV SPACE 4,20
  4240. ** GPV - GET PARAMETERS FOR VALIDATE USER COMMAND FUNCTION.
  4241. *
  4242. * ENTRY (OT) = ORIGIN TYPE.
  4243. *
  4244. * EXIT (A) = 0 IF NOT SECONDARY USER COMMAND.
  4245. * (CN - CN+4) = *CSPW*.
  4246. * (UN - UN+4) = WORD 0 OF PARAMETER BLOCK.
  4247. * (FN - FN+4) = WORD 2 OF PARAMETER BLOCK.
  4248. * (BA - BA+4) = WORD 2 OF PARAMETER BLOCK WITH STATUS
  4249. * FLAGS SET.
  4250. * (PIUE) RESET IF *NO ABORT* FLAG SET.
  4251. * (VANA) RESET IF *SPECIAL USER NAMES OK* FLAG SET.
  4252. * (VANC) = 1 IF PRIMARY USER COMMAND ALREADY PROCESSED.
  4253. * TO *ERR* IF NO *SSJ=* PARAMETER BLOCK DEFINED.
  4254. *
  4255. * USES T1, BA - BA+4, CM - CM+4, CN - CN+4, FN - FN+4,
  4256. * UN - UN+4.
  4257. *
  4258. * CALLS CKA.
  4259. *
  4260. * MACROS ABORT, SFA.
  4261.  
  4262.  
  4263. GPV SUBR ENTRY/EXIT
  4264. LDD CP
  4265. ADK SEPW
  4266. CRD CM
  4267. LDD CM+3
  4268. LPN 77
  4269. ADD CM+4
  4270. NJN GPV1 IF *SSJ=* BLOCK DEFINED
  4271. ABORT ERIR * CPM - INCORRECT REQUEST.*
  4272.  
  4273. GPV1 LDN 12 CHECK PARAMETER ADDRESS
  4274. STD T1
  4275. RJM CKA
  4276. CRD UN READ USER NAME
  4277. CRM PIUB,ON SET ERROR MESSAGE
  4278. CRD CM READ OPTIONS
  4279. ADN 1
  4280. CRD FN READ FAMILY NAME
  4281. CRD BA
  4282. LDD CM+4 SAVE SPECIAL USER NAMES OK FOR SYOT FLAG
  4283. LPN 10
  4284. RAM VANA
  4285. LDD CM+4 SAVE NO-ABORT OPTION
  4286. LPN 4
  4287. RAM PIUE
  4288. LDD CP READ EJT POINTER
  4289. ADN TFSW
  4290. CRD CM
  4291. ADN CSPW-TFSW READ PRIMARY USER FLAG
  4292. CRD CN
  4293. SFA EJT,CM
  4294. ADN SCLE
  4295. CRD CM
  4296. LDD CM SET SERVICE CLASS
  4297. SHN -6
  4298. RAD BA+3
  4299. LDD CN
  4300. SHN -1
  4301. LPN 1
  4302. STM VANC SAVE PRIMARY USER FLAG
  4303. STD BA+4
  4304. LJM GPVX EXIT WITH SECONDARY USER COMMAND STATUS
  4305. PIU SPACE 4,20
  4306. ** PIU - PROCESS INCORRECT USER COMMAND.
  4307. *
  4308. * ENTRY (A) = 0 IF SECURITY COUNT EXHAUSTED.
  4309. * (BA - BA+4) = STATUS WORD.
  4310. * (UN - UN+4) = USER NAME AND USER INDEX.
  4311. * (VANB) = FAMILY EST ORDINAL.
  4312. *
  4313. * EXIT TO *CPMX*.
  4314. * USER INDEX CLEARED IN PARAMETER BLOCK IF NO ABORT
  4315. * OPTION.
  4316. *
  4317. * USES BA+4, CN+3, T1, T2, T6, FN - FN+4, UN+3 - UN+4.
  4318. *
  4319. * CALLS CKA, DFM, UFC.
  4320. *
  4321. * MACROS MONITOR.
  4322.  
  4323.  
  4324. PIU BSS 0 ENTRY
  4325. STD T6 SAVE (A)
  4326. NJN PIU0.1 IF SECURITY COUNT NOT EXHAUSTED
  4327. LDN 2 SET SECURITY COUNT EXHAUSTED
  4328. RAD BA+4
  4329. PIU0.1 LDM VANB RESET FAMILY EST ORDINAL
  4330. ZJN PIU1 IF NOT SET
  4331. STD CN+3
  4332. LDD CP
  4333. ADN PFCW
  4334. CRD FN
  4335. LDD FN+3 SET NEW FAMILY EST ORDINAL FOR *UFC*
  4336. STD T2
  4337. RJM UFC UPDATE FAMILY COUNT
  4338. PIU1 LDD T6
  4339. ZJN PIU4 IF USER SECURITY COUNT EXHAUSTED
  4340. LDN 0 TERMINATE ACCOUNT FILE MESSAGE
  4341. STM PIUB+4
  4342. LDM PIUB+3
  4343. SCN 77
  4344. STM PIUB+3
  4345. LDC PIUB-1 SET INDEX
  4346. STD T6
  4347. PIU2 AOD T6 FIND END OF MESSAGE
  4348. LDI T6
  4349. ZJN PIU3 IF END ON WORD BOUNDARY
  4350. LPN 77
  4351. NJN PIU2 IF NOT END OF MESSAGE
  4352. LDC 1R.&2R.
  4353. PIU3 LMC 2R. SET PERIOD
  4354. RAI T6
  4355. LDC ACFN+PIUA WRITE MESSAGE TO ACCOUNT FILE
  4356. RJM DFM
  4357. LDC PIUD&PIUC * INCORRECT USER COMMAND.*
  4358. PIU4 LMC PIUC * USER SECURITY COUNT EXHAUSTED.*
  4359. RJM DFM
  4360. PIUE LDN 0
  4361. * LDN 4 (IF JOB IS NOT TO BE ABORTED)
  4362. NJN PIU6 IF JOB IS NOT TO BE ABORTED
  4363. LDN SVET SET ERROR FLAG
  4364. STD CM+1
  4365. MONITOR CEFM
  4366. PIU5 LJM CPMX EXIT
  4367.  
  4368. PIU6 LDN 0 CLEAR USER INDEX
  4369. STD UN+4
  4370. LDD UN+3
  4371. SCN 77
  4372. STD UN+3
  4373. LDN 12 RETURN ERROR STATUS TO CALLER
  4374. STD T1
  4375. RJM CKA
  4376. CWD UN
  4377. ADN 2
  4378. CWD BA
  4379. UJN PIU5 TERMINATE PROGRAM
  4380.  
  4381.  
  4382. PIUA DATA H*SIUN, * ACCOUNT FILE MESSAGE
  4383. PIUB BSSZ 5
  4384.  
  4385. PIUC DATA C* USER SECURITY COUNT EXHAUSTED.*
  4386. PIUD DATA C* INCORRECT USER COMMAND.*
  4387. PSV SPACE 4,15
  4388. ** PSV - PROCESS SECURITY VALIDATIONS.
  4389. *
  4390. * DETERMINE IF THE PRIMARY USER COMMAND CAN BE PROCESSED,
  4391. * GIVEN THE USER-S VALIDATIONS AND THE APPLICABLE ACCESS
  4392. * LEVEL LIMITS. THIS SUBROUTINE IS ONLY NEEDED FOR *SYOT*
  4393. * JOBS (SUCH AS *DIS* AND *PTFS*) WHICH HAVE NOT HAD
  4394. * A *USER* COMMAND VALIDATED BY *0VJ*.
  4395. *
  4396. * ENTRY (T3) = FWA OF VALIDATION BLOCK.
  4397. *
  4398. * EXIT (A) = 0 IF NO ERROR.
  4399. * *JSCW* UPDATED.
  4400. * NEW ACCESS LEVEL LIMITS SET IN EJT.
  4401. *
  4402. * USES CM - CM+4, CN - CN+4.
  4403. *
  4404. * CALLS RUI.
  4405. *
  4406. * MACROS MONITOR, SFA.
  4407.  
  4408.  
  4409. PSV SUBR ENTRY/EXIT
  4410. LDD T3 SET VALIDATION BLOCK ADDRESS
  4411. RAM PSVA
  4412. LDD MA SET UP *VSAM* PARAMETERS
  4413. CWM 5*ASVW,ON
  4414. PSVA EQU *-1 (FWA OF *ASVW* IN VALIDATION BLOCK)
  4415. LDD OT
  4416. STD CM+2
  4417. LDD CP SET JOB ACCESS LEVEL LIMITS
  4418. ADN TFSW
  4419. CRD CN
  4420. SFA EJT,CN
  4421. ADK PRFE
  4422. CRD CN
  4423. LDD CN+2 SET UPPER ACCESS LEVEL LIMIT
  4424. LPN 7
  4425. STD CM+3
  4426. LDD CN+2 SET LOWER ACCESS LEVEL LIMIT
  4427. LPN 70
  4428. SHN -3
  4429. STD CM+4
  4430. LDN VJCS VALIDATE JOB CREATION PARAMETERS
  4431. STD CM+1
  4432. MONITOR VSAM
  4433. LDD CM+1
  4434. NJP PSVX IF JOB MAY NOT BE CREATED
  4435.  
  4436. * UPDATE *JSCW* IN CONTROL POINT AREA.
  4437.  
  4438. LDD CP GET CURRENT JOB ACCESS LEVEL
  4439. ADK JSCW
  4440. CRD CN
  4441. LDD CN+1
  4442. SHN -11
  4443. SBD CM+4
  4444. MJN PSV1 IF CURRENT LEVEL .LT. NEW LOWER LIMIT
  4445. ADD CM+4 KEEP CURRENT VALUE FOR JOB ACCESS LEVEL
  4446. STD CM+4
  4447. PSV1 LDD MA SET UP *JSCW* WORD
  4448. CRD CN
  4449. LDD CM+4 RESET JOB ACCESS LEVEL
  4450. SHN 11
  4451. LMD CN+1
  4452. LPC 7000
  4453. LMD CN+1
  4454. STD CN+1
  4455. LDD CM+3 RESET UPPER ACCESS LEVEL LIMIT
  4456. SHN 11
  4457. LMD CN+2
  4458. LPC 7000
  4459. LMD CN+2
  4460. STD CN+2
  4461. LDD CP RESET *JSCW*
  4462. ADK JSCW
  4463. CWD CN
  4464.  
  4465. * SET NEW JOB ACCESS LEVEL LIMITS IN EJT ENTRY.
  4466.  
  4467. LDN ZERL
  4468. CRD CN
  4469. LDD CM+3 SET UPPER ACCESS LEVEL LIMIT
  4470. STD CN+4
  4471. LDD CM+4 SET LOWER ACCESS LEVEL LIMIT
  4472. SHN 3
  4473. RAD CN+4
  4474. LDC 24D*100 SET FIELD POSITION
  4475. STD CN+1
  4476. LDN 6 SET LENGTH OF ACCESS LEVEL FIELD
  4477. STD CN
  4478. LDD CP GET ADDRESS OF EJT ENTRY
  4479. ADK TFSW
  4480. CRD CM
  4481. SFA EJT,CM
  4482. ADN PRFE
  4483. STD CM+4 SET UP *UTEM* PARAMETERS
  4484. SHN -14
  4485. STD CM+3
  4486. LDN 0
  4487. STD CM+2
  4488. LDN 1
  4489. STD CM+1
  4490. LDD MA
  4491. CWD CN
  4492. MONITOR UTEM UPDATE EJT ENTRY
  4493. LDN 0 RETURN NORMAL STATUS
  4494. LJM PSVX RETURN
  4495. RPE SPACE 4,15
  4496. ** RPE - RETURN PASSWORD EXPIRATION DATE.
  4497. *
  4498. * ENTRY (T3) = FWA OF ACCOUNT BLOCK RECORD.
  4499. *
  4500. * EXIT (CM - CM+4) = 42/0, 18/PASSWORD EXPIRATION DATE.
  4501. *
  4502. * USES T0, CM - CM+4.
  4503.  
  4504.  
  4505. RPE SUBR ENTRY/EXIT
  4506. LDN ZERL CLEAR REPLY WORD
  4507. CRD CM
  4508. LDD T3 SET ADDRESSES
  4509. ADN 3
  4510. ADC APWI*5 INTERACTIVE PASSWORD
  4511. * ADC APSW*5 (BATCH PASSWORD)
  4512. RPEA EQU *-1 (ADDRESS OF PASSWORD IN VALIDATION BLOCK)
  4513. STD T0
  4514. LDI T0 STORE PASSWORD EXPIRATION
  4515. LPN 77
  4516. STD CM+3
  4517. AOD T0
  4518. LDI T0
  4519. STD CM+4
  4520. UJN RPEX RETURN
  4521. RUB SPACE 4,30
  4522. ** RUB - RETURN USER BLOCK.
  4523. *
  4524. * RETURN USER BLOCK BY EITHER READING THE SYSTEM SECTOR
  4525. * OR CALLING *0AV*.
  4526. *
  4527. * ENTRY (UN - UN+3) = USER NAME.
  4528. * (FN - FN+3) = FAMILY NAME.
  4529. *
  4530. * EXIT (A) = 0 IF INCORRECT USER NAME.
  4531. * .LT. 0, IF MASS STORAGE ERROR ENCOUNTERED.
  4532. * (T1 - T2) = USER INDEX.
  4533. * (T3) = FWA OF ACCOUNT RECORD BLOCK.
  4534. * (T4) = 0 IF USER INDEX .LT. *AUIMX*.
  4535. * (T5) = FAMILY EST ORDINAL.
  4536. * (T6) = SECURITY COUNT.
  4537. * (TNSS) = 0, IF SYSTEM SECTOR NOT READ.
  4538. *
  4539. * THE JOB IS ROLLED OUT TO WAIT FOR THE DEVICE TO BECOME
  4540. * ACCESSIBLE IF A NON-SUBSYSTEM JOB ENCOUNTERED A
  4541. * RECOVERABLE READ/WRITE ERROR ON THE DEVICE.
  4542. *
  4543. * USES CM - CM+4, T1 - T7, UN+3 - UN+4.
  4544. *
  4545. * CALLS CJR, RUI, RSS, *0AV*.
  4546. *
  4547. * MACROS ENDMS, EXECUTE, NFA, SETMS.
  4548.  
  4549.  
  4550. RUB SUBR ENTRY/EXIT
  4551. LDN ZERL CLEAR *TNSS*
  4552. CRM TNSS,ON
  4553. LDM VANC
  4554. NJN RUB1 IF SECONDARY USER COMMAND
  4555. RJM RUI READ USER ID WORD
  4556. NJN RUB2 IF FIRST USER COMMAND VALIDATED BY *0VJ*
  4557. RUB1 LJM RUB5 CALL *0AV* TO READ VALIDATION FILE
  4558.  
  4559. * USE VALIDATION BLOCK FROM JOB INPUT FILE SYSTEM SECTOR.
  4560. * SET DIRECT CELLS TO MATCH *0AV* EXIT CONDITIONS.
  4561.  
  4562. RUB2 NFA FNTN+FSTL READ INPUT FILE FST WORD
  4563. CRD T5
  4564. SETMS IO READ JOB INPUT FILE SYSTEM SECTOR
  4565. LDN 0
  4566. RJM RSS
  4567. ZJN RUB2.2 IF SUCCESSFUL READ
  4568. PJN RUB2.1 IF SYSTEM SECTOR ERROR OTHER THAN READ
  4569. RJM CJR CHECK IF THE JOB IS ROLLABLE
  4570. RUB2.1 LCN 0 INDICATE MASS STORAGE ERROR
  4571. LJM RUBX RETURN
  4572.  
  4573. RUB2.2 ENDMS
  4574. LDC VASS SET FWA OF USER ACCOUNT BLOCK
  4575. STD T3
  4576. LDM AUIN*5+4,T3 USER INDEX
  4577. STD T2
  4578. LDM AUIN*5+3,T3
  4579. LPN 77
  4580. STD T1
  4581. LDM AHSC*5+1,T3 SECURITY COUNT
  4582. SHN -6
  4583. STD T6
  4584. LDI T3
  4585. ZJN RUB5 IF NO ACCOUNT RECORD BLOCK
  4586. LDD T1
  4587. SHN 14
  4588. LMD T2
  4589. ADC -AUIMX
  4590. PJN RUB3 IF UI .GE. AUIMX
  4591. LDN 0
  4592. UJN RUB4 SET UI .LT. AUIMX
  4593.  
  4594. RUB3 LDN 1
  4595. RUB4 STD T4
  4596. UJN RUB6 CONTINUE
  4597.  
  4598. * READ USER BLOCK FROM VALIDATION FILE BY CALLING *0AV*.
  4599.  
  4600. RUB5 LDN 0 SET NORMAL *0AV* CALL
  4601. STD UN+4
  4602. LDD UN+3
  4603. SCN 77
  4604. STD UN+3
  4605. EXECUTE 0AV,L0AV
  4606. PJN RUB6 IF NO MASS STORAGE ERROR ENCOUNTERED
  4607. RJM CJR CHECK IF THE JOB IS ROLLABLE
  4608. LCN 0 INDICATE MASS STORAGE ERROR
  4609. UJN RUB7 RETURN
  4610.  
  4611. RUB6 LDD T1 ENTER USER INDEX
  4612. RAD UN+3
  4613. LPN 37
  4614. SHN 14
  4615. LMD T2
  4616. ZJN RUB7 IF INCORRECT USER NAME
  4617. STD UN+4
  4618. RUB7 LJM RUBX RETURN
  4619. RUI SPACE 4,10
  4620. ** RUI - READ USER IDENTIFICATION WORD.
  4621. *
  4622. * EXIT (A) = (RUIA) = FIRST BYTE OF CURRENT USER NAME.
  4623. * (CM - CM+4) = CURRENT USER NAME FROM *SSJ=* BLOCK
  4624. * OR FROM CPA.
  4625. *
  4626. * USES CM - CM+4.
  4627. *
  4628. * MACROS NFA.
  4629.  
  4630.  
  4631. RUI1 LDD CP GET *UIDW* FROM CONTROL POINT AREA
  4632. ADN UIDW
  4633. RUI2 CRD CM READ *UIDW*
  4634. LDD CM
  4635. STM RUIA
  4636.  
  4637. RUI SUBR ENTRY/EXIT
  4638. LDD CP
  4639. ADK SEPW
  4640. CRD CM
  4641. LDD CM+3
  4642. LPN 77
  4643. ADD CM+4
  4644. ZJN RUI1 IF NO *SSJ=* BLOCK
  4645. NFA SSJN+UIDS GET *UIDW* FROM *SSJ=* BLOCK
  4646. UJN RUI2 READ *UIDW*
  4647.  
  4648. RUIA CON 0 FIRST BYTE OF CURRENT USER NAME
  4649. VPW SPACE 4,15
  4650. ** VPW - VALIDATE PASSWORD.
  4651. *
  4652. * ENTRY (T3) = FWA OF ACCOUNT BLOCK RECORD.
  4653. * (FN - FN+4) = WORD 1 OF PARAMETER BLOCK.
  4654. *
  4655. * EXIT (A) = 0 IF LEGAL PASSWORD.
  4656. * (CN+3 - CN+4) = PASSWORD EXPIRATION DATE.
  4657. *
  4658. * USES CM - CM+4, CN - CN+4, FN - FN+4.
  4659. *
  4660. * CALLS CFN.
  4661. *
  4662. * MACROS MONITOR.
  4663.  
  4664.  
  4665. VPW3 LDN 0 INDICATE LEGAL PASSWORD
  4666.  
  4667. VPW SUBR ENTRY/EXIT
  4668. LDK ZERL CLEAR PASSWORD EXPIRATION DATE
  4669. CRD CN
  4670. LDD FN+4
  4671. LPN 1
  4672. NJN VPW3 IF PASSWORD NOT REQUIRED
  4673. LDD T3 SET ADDRESSES
  4674. ADC APWI*5 VALIDATE INTERACTIVE PASSWORD
  4675. * ADC APSW*5 (VALIDATE BATCH PASSWORD)
  4676. VPWA EQU *-1 (ADDRESS OF PASSWORD IN VALIDATION BLOCK)
  4677. STM VPWD
  4678. ADN 3
  4679. STM VPWB
  4680. ADN 1
  4681. STM VPWC
  4682.  
  4683. * PROCESS PASSWORD EXPIRATION DATE.
  4684.  
  4685. LDM * CHECK PASSWORD EXPIRATION DATE
  4686. VPWB EQU *-1 (FWA OF PASSWORD EXPIRATION DATE)
  4687. LPN 77
  4688. STD CM+3
  4689. SHN 14
  4690. LMM *
  4691. VPWC EQU *-1 (FWA+1 OF PASSWORD EXPIRATION DATE)
  4692. ZJN VPW2 IF NONEXPIRING PASSWORD
  4693. STD CM+4
  4694. LDN VEDS VALIDATE EXPIRATION DATE
  4695. STD CM+1
  4696. MONITOR VSAM
  4697. LDD CM+1
  4698. ZJN VPW2 IF PASSWORD NOT EXPIRED
  4699. VPW1 LJM VPWX RETURN
  4700.  
  4701. VPW2 LDN REPS ENCRYPT SUPPLIED PASSWORD
  4702. STD CM+1
  4703. LDD MA
  4704. CWD FN
  4705. MONITOR RDCM
  4706. LDD MA
  4707. CRD FN
  4708. CWM *,ON COPY LEGAL PASSWORD
  4709. VPWD EQU *-1 (FWA OF PASSWORD)
  4710. SBN 1
  4711. CRD CN READ LEGAL PASSWORD
  4712. RJM CFN COMPARE PASSWORDS
  4713. UJN VPW1 RETURN
  4714. SPACE 4,10
  4715. ** COMMON DECKS.
  4716.  
  4717.  
  4718. *CALL COMPSFE
  4719. *CALL COMPSFN
  4720. *CALL COMPSRA
  4721. *CALL COMPSRU
  4722. SPACE 4,10
  4723. ** BUFFERS.
  4724.  
  4725.  
  4726. ALMT EQU * *ALMW*
  4727. ACLT EQU ALMT+5 *ACLW*
  4728. AACT EQU ACLT+5 *AACW*
  4729.  
  4730. BUFL EQU AACT+5 LWA+1 OF OVERLAY
  4731. ERRNG L0AV-5-BUFL OVERFLOW INTO *0AV*
  4732. SPACE 4,10
  4733. OVERFLOW OVL,EPFW
  4734. OVERLAY (USER ACCOUNTING FUNCTIONS.)
  4735. SLL SPACE 4,15
  4736. *** FUNCTION 3.
  4737. * SET TIME AND SRU LIMITS
  4738. *
  4739. * ENTRY (IR+3 - IR+4) = 6/FN,18/PARAM
  4740. * FN = 0 FOR TIME LIMIT
  4741. * FN = 1 FOR SRU JOB STEP LIMIT
  4742. * FN = 2 FOR SRU ACCOUNT BLOCK LIMIT
  4743. * PARAM = SECONDS FOR TIME, UNITS FOR SRU.
  4744. * IF PARAM IS ANY OF THE FOLLOWING:
  4745. * 1. GREATER THAN THE MAXIMUM FOR WHICH
  4746. * THE USER IS VALIDATED,
  4747. * 2. BETWEEN 77770B AND 777777B (TIME
  4748. * LIMIT),
  4749. * 3. GREATER THAN OR EQUAL TO 655400B (SRU
  4750. * LIMIT),
  4751. * THE TIME OR SRU LIMIT WILL BE SET TO THE
  4752. * MAXIMUM FOR WHICH THE USER IS VALIDATED
  4753. * (INFINITE IF UNLIMITED VALIDATION).
  4754. *
  4755. * IF FN=1 AND PARAM IS GREATER THAN THE CURRENT ACCOUNT BLOCK
  4756. * SRU LIMIT, BOTH THE JOB STEP AND ACCOUNT BLOCK SRU LIMITS ARE
  4757. * SET TO PARAM. IF FN=2 AND PARAM IS LESS THAN THE CURRENT JOB
  4758. * STEP SRU LIMIT, BOTH THE ACCOUNT BLOCK AND JOB STEP SRU
  4759. * LIMITS ARE SET TO PARAM.
  4760.  
  4761.  
  4762. SLL ENTRY
  4763. LDD IR+3
  4764. SHN -6
  4765. STD T1
  4766. SBN NOP
  4767. MJN SLL2 IF LEGAL SUB FUNCTION
  4768. ABORT ERIR * CPM - INCORRECT REQUEST.*
  4769.  
  4770. SLL1 ABORT ERNV * XX NOT VALIDATED.*
  4771.  
  4772. SLL2 LDD T1
  4773. ZJN SLL3 IF TIME LIMIT REQUEST
  4774. LDC SHNI+74 *SHN -3*
  4775. STM SLLA
  4776. LDC -5540B *ADC -65540*
  4777. STM SLLD+1
  4778. AOM SLLD
  4779. LDC 2RSL&2RTL SET *SL* RESOURCE TYPE
  4780. SLL3 LMC 2RTL SET RESOURCE TYPE
  4781. STM ERRA
  4782. LDN 0
  4783. STD T2
  4784. STD CM+2
  4785. LDD IR+3 CHECK REQUESTED LIMIT
  4786. LPN 77
  4787. STD CM+3
  4788. SHN 14
  4789. LMD IR+4
  4790. STD CM+4
  4791. ZJN SLL1 IF ZERO LIMIT
  4792. SLLA PSN PASS
  4793. * SHN -3 IF SRU LIMIT PROCESSING
  4794. ADC -77770
  4795. SLLD EQU *-2
  4796. * ADC -65540 (SRU LIMIT PROCESSING)
  4797. MJN SLL5 IF NOT REQUEST FOR VALIDATED MAXIMUM
  4798. SLL4 LCN 0
  4799. STD CM+4
  4800. LPN 77
  4801. STD CM+3
  4802. LDC STDI+CM+4 SET UP TO SAVE VALIDATION LIMIT
  4803. STM STLA
  4804. SBN 1
  4805. STM STLB
  4806.  
  4807. * CHECK AGAINST VALIDATION LIMIT.
  4808.  
  4809. SLL5 LDD CP READ VALIDATION PARAMETERS
  4810. ADN ALMW
  4811. CRD CN
  4812. LDM TOPN,T1 JUMP TO PROCESSOR
  4813. STM SLLB
  4814. LJM *
  4815. SLLB EQU *-1
  4816.  
  4817. * SET TIME LIMIT.
  4818.  
  4819. STL LDC STL4 SET RETURN ADDRESS
  4820. STM SLLC
  4821. LDD CN+2
  4822. RJM TLI CONVERT INDEX TO VALUE
  4823. STL1 MJN STL3 IF UNLIMITED
  4824. SHN 3 MULTIPLY BY 10B
  4825. STD T2 SAVE BOTTOM HALF
  4826. SHN -14
  4827. STD T1 SAVE TOP HALF
  4828. LDD T2
  4829. STLA SBD CM+4
  4830. * STD CM+4 (REQUEST FOR VALIDATED MAXIMUM)
  4831. MJN STL2 IF BORROW NEEDED
  4832. AOD T1
  4833. STL2 SOD T1
  4834. STLB SBD CM+3
  4835. * STD CM+3 (REQUEST FOR VALIDATED MAXIMUM)
  4836. PJN STL3 IF NOT ABOVE USER MAXIMUM
  4837. LDD IR+3 RESTORE RESOURCE TYPE
  4838. SHN -6
  4839. STD T1
  4840. LJM SLL4 PROCESS AS REQUEST FOR VALIDATED MAXIMUM
  4841.  
  4842. STL3 LJM * RETURN TO PROCESSOR
  4843. SLLC EQU *-1
  4844.  
  4845. STL4 LDN RLTL SET TIME LIMIT SUBFUNCTION
  4846. STD CM+1
  4847. MONITOR RLMM
  4848. LJM CPMX EXIT
  4849.  
  4850. * SET JOB STEP LIMIT.
  4851.  
  4852. SJS LDC SJS2
  4853. STM SLLC
  4854. SJS1 LDD CN+2 CHECK VALIDATION LIMIT
  4855. RJM SLI
  4856. UJP STL1 CHECK LIMIT WITHIN ALLOWED RANGE
  4857.  
  4858. SJS2 LDD CP GET LIMIT WORD FROM CONTROL POINT
  4859. ADN STLW
  4860. CRD CN
  4861. LDD CN+1 GET ACCOUNT BLOCK LIMIT IN USABLE FORMAT
  4862. SCN 77
  4863. SHN 6
  4864. LMD CN
  4865. SHN 6
  4866. STD CN
  4867. SHN -14
  4868. SBD CM+3
  4869. MJN SJS3 IF GREATER THAN ACCOUNT BLOCK LIMIT
  4870. NJN SJS4 IF LESS THAN ACCOUNT BLOCK LIMIT
  4871. LDD CN
  4872. SBD CM+4
  4873. PJN SJS4 IF NOT GREATER THAN ACCOUNT BLOCK LIMIT
  4874. SJS3 RJM SAL SET ASL TO REQUESTED JSL FIRST
  4875. SJS4 LDN RLSL SET SRU LIMIT SUBFUNCTION
  4876. STD CM+1
  4877. MONITOR RLMM SET SRU LIMIT
  4878. LJM CPMX
  4879.  
  4880. * SET ACCOUNT BLOCK LIMIT.
  4881.  
  4882. SAB LDC SAB1 SET RETURN ADDRESS
  4883. STM SLLC
  4884. LJM SJS1
  4885.  
  4886. SAB1 LDD CP GET LIMIT WORD FROM CONTROL POINT
  4887. ADN STLW
  4888. CRD CN
  4889. ADN SRJW-STLW
  4890. CRD T1
  4891. LDD T1+2 COMPARE REQUEST TO CURRENT JOB STEP LIMIT
  4892. SCN 77
  4893. SHN 6
  4894. LMD T1+1
  4895. SHN 6
  4896. STD T1+1
  4897. SHN -14
  4898. STD T1
  4899. LDD CM+3 REQUESTED ACCOUNT BLOCK - JOB STEP LIMIT
  4900. SBD T1
  4901. MJN SAB2 IF JOB STEP GREATER THAN REQUEST
  4902. NJN SAB3 IF REQUESTED GREATER THAN JOB STEP
  4903. LDD CM+4
  4904. SBD T1+1
  4905. PJN SAB3 IF REQUESTED GREATER THAN JOB STEP
  4906. SAB2 LDD MA SAVE REQUESTED ACCOUNT BLOCK LIMIT
  4907. CWD CM
  4908. CRD BA
  4909. LDN RLSL SET JSL TO REQUESTED ASL FIRST
  4910. STD CM+1
  4911. MONITOR RLMM
  4912. LDD MA RESTORE REQUESTED ACCOUNT BLOCK LIMIT
  4913. CWD BA
  4914. CRD CM
  4915. SAB3 RJM SAL SET ACCOUNT BLOCK LIMIT
  4916. LJM CPMX RETURN
  4917.  
  4918.  
  4919. TOPN BSS 0 TABLE OF SUB-FUNCTION CODE PROCESSORS
  4920. LOC 0
  4921. CON STL SET TIME LIMIT
  4922. CON SJS SET JOB STEP LIMIT
  4923. CON SAB SET ACCOUNT BLOCK LIMIT
  4924. LOC *O
  4925. NOP EQU *-TOPN
  4926. RLM SPACE 4,10
  4927. *** FUNCTION 17.
  4928. * RETRIEVE LIMIT TO (PARAMETER).
  4929. *
  4930. * ENTRY (IR+3 - IR+4) = 6/FN,18/PARAM
  4931. * FN = 0 FOR TIME LIMIT
  4932. * FN = 1 FOR SRU JOB STEP LIMIT
  4933. * FN = 2 FOR SRU ACCOUNT BLOCK LIMIT
  4934. * PARAM = SECONDS FOR TIME
  4935. * UNITS FOR SRU
  4936.  
  4937.  
  4938. RLM ENTRY
  4939. LDN ZERL
  4940. CRD CM
  4941. LDD IR+3 SET OPTION CODE
  4942. SHN -6
  4943. NJN RLM1 IF NOT TIME
  4944. LDD CP RETURN TIME LIMIT VALUE
  4945. ADN CPJW
  4946. UJN RLM2
  4947.  
  4948. RLM1 SHN -1
  4949. NJN RLM4 IF NOT JOB STEP SRU
  4950. LDD CP RETURN JOB STEP SRU LIMIT
  4951. ADN SRJW
  4952. RLM2 CRD CN
  4953. LDD CN+2
  4954. SCN 77
  4955. SHN 6
  4956. LMD CN+1
  4957. RLM3 SHN 6
  4958. STD CM+4
  4959. SHN -14
  4960. STD CM+3
  4961. LDD IR+3 MAKE ADDRESS LEGAL FOR CKA ROUTINE
  4962. LPN 37
  4963. STD IR+3
  4964. RJM CKA CHECK RETURN ADDRESS
  4965. CWD CM
  4966. LJM CPMX EXIT
  4967.  
  4968. RLM4 LDD CP RETURN ACCOUNT BLOCK LIMIT
  4969. ADN STLW
  4970. CRD CN
  4971. LDD CN+1
  4972. SCN 77
  4973. SHN 6
  4974. LMD CN
  4975. UJN RLM3
  4976. RAI SPACE 4,15
  4977. *** FUNCTION 30.
  4978. * PROVIDE ACCOUNTING INFORMATION.
  4979. *
  4980. * EXIT JOB ACCOUNTING INFORMATION RETURNED TO USER.
  4981. *
  4982. * PARAMETER BLOCK FORMAT -
  4983. *
  4984. *T ADDR 18/ 0,42/ SRU ACCUMULATOR (MICRO UNITS * 10)
  4985. *T, 60/ CP ACCUMULATOR (QUARTER NANOUNITS)
  4986. *T, 20/ MS,20/ MT,20/ PF
  4987. *T, 20/ OD,20/ MP,20/ AA
  4988. *T, 31/ 0, 29/ AC
  4989. * WHERE
  4990. * AA = ACCUMULATED ADDER ACTIVITY.
  4991. * MP = ACCUMULATED MAP ACTIVITY.
  4992. * MS = ACCUMULATED MASS STORAGE ACTIVITY.
  4993. * MT = ACCUMULATED MAGNETIC TAPE ACTIVITY.
  4994. * OD = ACCUMULATED OPTICAL DISK ACTIVITY.
  4995. * PF = ACCUMULATED PERMANENT FILE ACTIVITY.
  4996. * AC = ACCUMULATED APPLICATION UNIT CHARGE ACTIVITY.
  4997.  
  4998.  
  4999. RAI ENTRY
  5000. LDN ACTWL PICK NO OF ACCOUNTING WORDS
  5001. STD T1 NUMBER OF WORDS TO READ
  5002. LDD CP
  5003. ADN ACTW ACCOUNTING INFORMATION
  5004. CRM STMT,T1
  5005. LDD CP READ SECOND ACCOUNTING BLOCK
  5006. ADK AC1W
  5007. CRM STMT+ACTWL*5,ON
  5008. LDN 0 CLEAR ALL BUT ACCUMULATORS
  5009. STM SRUW*5-ACTW*5+STMT LIMIT FLAGS
  5010. LDM ADAW*5-ACTW*5+STMT+3
  5011. LPC 377
  5012. STM ADAW*5-ACTW*5+STMT+3
  5013. LDM SRUW*5-ACTW*5+STMT+1 OVERFLOW FLAGS
  5014. LPN 37
  5015. STM SRUW*5-ACTW*5+STMT+1
  5016. LDN 2 GET MAP AND OPTICAL ACCUMULATORS
  5017. STD T5
  5018. RAI1 LDM MPAW*5-AC1W*5+STMT+ACTWL*5+2,T5
  5019. SHN 21-3
  5020. STM ADAW*5-ACTW*5+STMT,T5
  5021. SHN 13-21
  5022. LPC 7400
  5023. RAM ADAW*5-ACTW*5+STMT+1,T5
  5024. SOD T5
  5025. PJN RAI1 IF NOT LAST MAP/OPTICAL BYTE
  5026. LDM MPAW*5-AC1W*5+STMT+ACTWL*5+1 MOVE FINAL 4 BITS
  5027. SHN 13-3
  5028. LPC 7400
  5029. RAM ADAW*5-ACTW*5+STMT
  5030. LDD CP READ AUC ACCUMULATOR
  5031. ADK AUCW
  5032. CRM STMT+ACTWL*5,ON
  5033. LDN 0 CLEAR ALL BUT ACCUMULATOR
  5034. STM AUCW*5-AC1W*5+STMT+ACTWL*5
  5035. STM AUCW*5-AC1W*5+STMT+ACTWL*5+1
  5036. LDM AUCW*5-AC1W*5+STMT+ACTWL*5+2
  5037. LPN 5
  5038. STM AUCW*5-AC1W*5+STMT+ACTWL*5+2
  5039. AOD T1 SET NUMBER OF WORDS TO WRITE
  5040. RJM CKA
  5041. CWM STMT,T1 WRITE TO CENTRAL
  5042. LJM CPMX
  5043. SCF SPACE 4,40
  5044. *** FUNCTION 42.
  5045. * BEGIN ACCOUNT BLOCK.
  5046. *
  5047. * ENTRY (IR+3 - IR+4) = 6/A, 18/B
  5048. * WHERE
  5049. * A = CPM RECALL COUNT.
  5050. * B = PARAMETER BLOCK ADDRESS.
  5051. *
  5052. * PARAMETER BLOCK FORMAT -
  5053. *
  5054. *T STMT 12/ M1,12/ M2,12/ M3,12/ M4,12/ AD
  5055. *T, 6/ISV, 30/0, 6/A, 18/B
  5056. *T, 60/ CHARGE NUMBER
  5057. *T, 60/ PROJECT NUMBER
  5058. *T, 60/ PROJECT NUMBER
  5059. *T, 60/ ACCOUNT FILE MESSAGE
  5060. *T, 60/ ACCOUNT FILE MESSAGE
  5061. *T, 60/ ACCOUNT FILE MESSAGE
  5062. *T, 60/ ACCOUNT FILE MESSAGE
  5063. *T, 60/ ACCOUNT FILE MESSAGE
  5064. * WHERE
  5065. * M1, M2, M3, M4, AD ARE SRU MULTIPLIERS.
  5066. * ISV = INDEX OF SRU VALIDATION LIMIT.
  5067. * A = 0, IF PROJECT IS FIRST ENTRY IN LEVEL-3 BLOCK.
  5068. * .NE. 0, IF PROJECT IS SECOND ENTRY IN LEVEL-3 BLOCK.
  5069. * B = PROFILE FILE LEVEL-3 BLOCK RANDOM ADDRESS.
  5070. *
  5071. * EXIT ACCOUNT BLOCK BEGUN OR CHANGED.
  5072. * ACCUMULATORS DISPLAYED IN USERS DAYFILE AND ACCOUNT
  5073. * FILE UNLESS FIRST CHARGE COMMAND.
  5074. * CHARGE-PROJECT MESSAGE DISPLAYED IN ACCOUNT FILE.
  5075. * CHARGE REQUIRED CLEARED.
  5076. * ORIGINAL AND CURRENT SRU VALIDATION LIMIT RESET IF
  5077. * NECESSARY.
  5078. * DAF USER COUNT OF OLD PROFILE FAMILY IS DECREMENTED.
  5079. * DAF USER COUNT OF NEW PROFILE FAMILY IS INCREMENTED.
  5080.  
  5081.  
  5082. BAB ENTRY
  5083. LDD IR+3 RECALL COUNT
  5084. STD RC
  5085. LPN 77
  5086. STD IR+3 CREATE VALID ADDRESS FIELD
  5087. LDN 10D
  5088. STD T1
  5089. RJM CKA
  5090. CRM STMT,T1 GET SRU PARAMS AND CHARGE-PROJECT MESSAGE
  5091.  
  5092. * SET VALIDATION PARAMETERS IN CONTROL POINT AREA AND NFL.
  5093.  
  5094. NFA SSJN+ALMS GET SRU VALIDATION LIMIT
  5095. CRD CN
  5096. LDD CN
  5097. SHN -6
  5098. NJN BAB1 IF ORIGINAL SRU VALIDATION LIMIT SET
  5099. LDD CN+2 SET ORIGINAL SRU VALIDATION LIMIT
  5100. LPN 77
  5101. SHN 6
  5102. RAD CN
  5103. BAB1 LDM STMT+1*5 SET SRU VALIDATION LIMIT
  5104. SHN -6
  5105. LMD CN+2
  5106. LPN 77
  5107. LMD CN+2
  5108. STD CN+2
  5109. NFA SSJN+ALMS
  5110. CWD CN
  5111. ADK SSJN-ALMS-CHGN WRITE CHARGE AND PROJECT NUMBER
  5112. CWM STMT+2*5,TR
  5113. LDD CP READ PROFILE PARAMETERS
  5114. ADN FPFW
  5115. CRM L0AU,ON
  5116. ADN CSPW-FPFW-1 CLEAR CHARGE REQUIRED
  5117. CRD BA
  5118. LDD BA
  5119. SCN 4
  5120. STD BA
  5121. LDD CP
  5122. ADN CSPW
  5123. CWD BA
  5124. LDM L0AU+2 SAVE PROFILE FNT ORDINAL
  5125. STM SPPA
  5126. LDM L0AU CHECK IF FIRST CHARGE VALIDATED
  5127. SHN 21-13
  5128. MJN BAB2 IF NOT FIRST CHARGE NUMBER
  5129.  
  5130. * BEGIN ACCOUNT BLOCK.
  5131.  
  5132. LDD MA SET SRU PARAMETERS
  5133. CWM STMT,ON
  5134. LDN ABBF
  5135. STD CM+1 SET *ACTM* SUB-FUNCTION (ABBF)
  5136. MONITOR ACTM BEGIN ACCOUNT BLOCK
  5137. LDC 2RAB
  5138. STM STMT+5*5 CHANGE MESSAGE FROM *ACCN* TO *ABCN*
  5139. UJN BAB3 SET PROFILE PARAMETERS
  5140.  
  5141. * UPDATE PROJECT PROFILE FILE.
  5142.  
  5143. BAB2 RJM UPF UPDATE PROJECT PROFILE FILE
  5144. LDC STMT ADDRESS OF NEW MULTIPLIER INDICES
  5145. RJM IAM ISSUE ACCOUNTING MESSAGES
  5146. STD T1
  5147. RJM CUF CHECK FOR PROFILE FILE UPDATE FAILURE
  5148.  
  5149. * SET PROFILE PARAMETERS AND DISPLAY CHARGE-PROJECT MESSAGE.
  5150.  
  5151. BAB3 RJM SPP SET PROFILE PARAMETERS
  5152. LDC ACFN+STMT+5*5
  5153. RJM DFM ISSUE MESSAGE TO ACCOUNT FILE
  5154. LJM CPMX RETURN
  5155. IAA SPACE 4,25
  5156. *** FUNCTION 77.
  5157. * INITIATE APPLICATION ACCOUNTING.
  5158. *
  5159. * ENTRY (IR+3 - IR+4) = 24/ADDR
  5160. * WHERE
  5161. * ADDR = PARAMETER BLOCK ADDRESS.
  5162. *
  5163. * PARAMETER BLOCK FORMAT -
  5164. *
  5165. *T,ADDR 24/SC, 36/0
  5166. * WHERE
  5167. * SC = 4-CHARACTER ALPHANUMERIC DISPLAY CODE SOFTWARE
  5168. * CODE.
  5169. *
  5170. * EXIT ACCOUNT DAYFILE MESSAGE ISSUED.
  5171. * APPLICATION ACCOUNTING IN PROCESS BIT SET IN CONTROL
  5172. * POINT AREA WORD.
  5173. *
  5174. * USES BA - BA+4, CM - CM+4.
  5175. *
  5176. * CALLS CKA, DFM.
  5177. *
  5178. * MACROS ABORT.
  5179.  
  5180.  
  5181. IAA ENTRY
  5182. LDD CP READ APPLICATION ACCOUNTING CONTROL WORD
  5183. ADN FPFW
  5184. CRD BA
  5185. LDD BA CHECK IF PROGRAM VALIDATED FOR FUNCTIONS
  5186. SHN 21-11
  5187. MJN IAA1 IF APPLICATION ACCOUNTING IN PROCESS
  5188. SHN 11-10
  5189. MJN IAA2 IF PROGRAM VALIDATED FOR FUNCTION
  5190. IAA1 ABORT ERAU * INCORRECT APPLICATION ACCOUNTING CALL.*
  5191.  
  5192. IAA2 RJM CKA CHECK ADDRESS
  5193. CRD CM READ USER PARAMETER WORD
  5194. LDD CM+2 CHECK CONTENTS OF PARAMETER WORD
  5195. ADD CM+3
  5196. ADD CM+4
  5197. NJN IAA1 IF INCORRECT PARAMETER WORD
  5198. LDD CM
  5199. STM IAAA+3 SAVE FOR POSSIBLE MESSAGE
  5200. SHN -6
  5201. ZJN IAA1 IF INCORRECT CHARACTER
  5202. SBN 1R9+1
  5203. PJN IAA1 IF INCORRECT CHARACTER
  5204. LDD CM
  5205. LPN 77
  5206. ZJN IAA1 IF INCORRECT CHARACTER
  5207. SBN 1R9+1
  5208. PJN IAA1 IF INCORRECT CHARACTER
  5209. LDD CM+1
  5210. STM IAAA+4 SAVE FOR POSSIBLE MESSAGE
  5211. SHN -6
  5212. IAA3 ZJN IAA1 IF INCORRECT CHARACTER
  5213. SBN 1R9+1
  5214. IAA4 PJN IAA1 IF INCORRECT CHARACTER
  5215. LDD CM+1
  5216. LPN 77
  5217. ZJN IAA3 IF INCORRECT CHARACTER
  5218. SBN 1R9+1
  5219. PJN IAA4 IF INCORRECT CHARACTER
  5220. LDC ACFN+IAAA ISSUE ACCOUNT FILE MESSAGE
  5221. RJM DFM
  5222. LDD BA SET ACCOUNTING IN PROCESS
  5223. ADC 1000
  5224. STD BA
  5225. LDD CP REWRITE ACCOUNTING CONTROL WORD
  5226. ADN FPFW
  5227. CWD BA
  5228. LJM CPMX EXIT
  5229.  
  5230.  
  5231. * ACCOUNT FILE MESSAGE.
  5232.  
  5233. IAAA DATA C*UBAU, .*
  5234. SJB SPACE 4,20
  5235. *** FUNCTION 106.
  5236. * SET JOB CHARACTERISTICS.
  5237. *
  5238. * ENTRY (IR+3 - IR+4) = ADDRESS OF 2 WORD PARAMETER BLOCK.
  5239. *T 42/ UJN,18/0
  5240. *T, 36/0,12/ OP,12/ DC
  5241. * UJN USER JOB NAME, 1 TO 7 ALPHANUMERIC OR ASTERISK (*)
  5242. * CHARACTERS, LEFT JUSTIFIED WITH BINARY ZERO FILL.
  5243. * IF UJN = 0, NO CHANGE OF USER JOB NAME.
  5244. * OP END OF JOB OPTIONS, SPECIFIED BY 2 DISPLAY
  5245. * CODE CHARACTERS.
  5246. * *SU* = SUSPEND JOB (VALID ONLY FOR TXOT JOBS).
  5247. * *TJ* = TERMINATE JOB.
  5248. * 0 = NO CHANGE TO END OF JOB OPTION.
  5249. * DC DISPOSITION OF OUTPUT AT END OF JOB TIME, SPECIFIED
  5250. * BY 2 DISPLAY CODE CHARACTERS.
  5251. * *TO* = QUEUE OUTPUT TO TXOT QUEUE.
  5252. * *NO* = DO NOT QUEUE OUTPUT FILES.
  5253. * *DF* = QUEUE OUTPUT TO JOB DEFAULT QUEUE.
  5254. * 0 = NO CHANGE TO OUTPUT DISPOSITION OPTION.
  5255. *
  5256. * EXIT THE JOB IS ROLLED OUT TO WAIT FOR THE DEVICE TO BECOME
  5257. * ACCESSIBLE IF A NON-SUBSYSTEM JOB ENCOUNTERED A
  5258. * RECOVERABLE READ/WRITE ERROR ON THE DEVICE.
  5259.  
  5260.  
  5261. SJB ENTRY
  5262. LDN 2 SET WORD COUNT
  5263. STD T1
  5264. RJM CKA CHECK PARAMETER BLOCK ADDRESS
  5265. CRD FN
  5266. ADN 1
  5267. CRD BA
  5268. LDD CP GET END OF JOB OPTIONS
  5269. ADK EOJW
  5270. CRD CM
  5271. LDD BA+3 GET END OF JOB OPTION
  5272. ZJN SJB1 IF NO CHANGE TO END OF JOB OPTION
  5273. LDD CM
  5274. LPC 777
  5275. STD CM
  5276. LDD BA+3
  5277. LMC 2RTJ
  5278. ZJN SJB1 IF TERMINATE JOB OPTION SELECTED
  5279. ERRNZ TJJT CODE DEPENDS ON VALUE
  5280. LMC 2RSU&2RTJ
  5281. NJN SJB3 IF INCORRECT JOB OPTION CODE
  5282. LDD OT
  5283. LMK IAOT
  5284. NJP SJB8 IF NOT INTERACTIVE JOB
  5285. LDC SUJT*1000 SET SUSPEND JOB OPTION
  5286. RAD CM
  5287. SJB1 LDD BA+4
  5288. ZJN SJB5 IF NO CHANGE TO OUTPUT DISPOSITION OPTION
  5289. LDN TODOL
  5290. STD T1
  5291. SJB2 SOD T1
  5292. PJN SJB4 IF NOT END OF TABLE
  5293. SJB3 ABORT ERAE * CPM - ARGUMENT ERROR.*
  5294.  
  5295. SJB4 LDM TODO,T1 CHECK FOR MATCH ON DISPOSITION OPTION
  5296. LMD BA+4
  5297. NJN SJB2 IF NO MATCH
  5298. LDD CM SET NEW QUEUE FILE DISPOSITION
  5299. SHN 0-6+22
  5300. SCN 7
  5301. ADD T1
  5302. SHN 6-0
  5303. STD CM
  5304. SJB5 LDD CP WRITE END OF JOB OPTIONS
  5305. ADK EOJW
  5306. CWD CM
  5307. LDD FN
  5308. ZJN SJB7 IF NO USER JOB NAME CHANGE
  5309. RJM VFN VERIFY USER JOB NAME
  5310. ZJN SJB3 IF INCORRECT USER JOB NAME
  5311. RJM RIS READ INPUT FILE SYSTEM SECTOR
  5312. STD FN+4 WRITE USER JOB NAME TO INPUT SYSTEM SECTOR
  5313. LDD FN+3
  5314. SCN 77
  5315. STD FN+3
  5316. LDD MA
  5317. CWD FN
  5318. CRM JNSS,ON
  5319. SETMS IO,RW UPDATE INPUT FILE SYSTEM SECTOR
  5320. RJM WSS
  5321. PJN SJB6 IF NO MASS STORAGE ERRORS ENCOUNTERED
  5322. RJM CJR CHECK IF THE JOB IS ROLLABLE
  5323. UJN SJB9 EXIT
  5324.  
  5325. SJB6 ENDMS
  5326. SJB7 UJN SJB9 EXIT
  5327.  
  5328. SJB8 LDC =C* INCORRECT END OF JOB OPTION SPECIFIED.*
  5329. RJM DFM ISSUE DAYFILE MESSAGE
  5330. SJB9 LJM CPMX EXIT
  5331. TODO SPACE 4,10
  5332. ** TODO - TABLE OF OUTPUT DISPOSITION OPTIONS.
  5333. *
  5334. * ONE WORD PER ENTRY, INDEXED BY OUTPUT DISPOSITION CODE.
  5335.  
  5336.  
  5337. .TODOL MAX QOJT,NOJT,TTJT
  5338. TODOL EQU .TODOL+1 LENGTH OF TABLE
  5339.  
  5340. TODO INDEX
  5341. INDEX QOJT,2RDF
  5342. INDEX NOJT,2RNO
  5343. INDEX TTJT,2RTO
  5344. INDEX TODOL
  5345. CSV SPACE 4,35
  5346. *** FUNCTION 124.
  5347. * CHANGE SERVICE CLASS.
  5348. *
  5349. * ENTRY (IR+3 - IR+4) = PARAMETER BLOCK ADDRESS.
  5350. *
  5351. * PARAMETER BLOCK FORMAT.
  5352. *
  5353. *T ADDR 48/ 0, 6/ ER, 6/ SC
  5354. *
  5355. * SC = NEW SERVICE CLASS.
  5356. * ER = ERROR STATUS RETURNED ON A SERVICE CLASS CHANGE.
  5357. * = 0 IF NO ERROR.
  5358. * = 1 IF *SC* IS NOT A DEFINED SERVICE CLASS.
  5359. * = 2 IF SERVICE CLASS INCORRECT FOR THE USER.
  5360. * = 3 IF SERVICE CLASS FULL.
  5361. * = 4 IF MASS STORAGE ERROR ENCOUNTERED.
  5362. *
  5363. * EXIT SERVICE CLASS UPDATED IN EJT ENTRY OF JOB AND
  5364. * IN THE INPUT FILE SYSTEM SECTOR.
  5365. *
  5366. * IF A NON-SUBSYSTEM JOB ENCOUNTERED A RECOVERABLE
  5367. * READ/WRITE ERROR ON THE DEVICE, THE JOB IS ROLLED OUT
  5368. * TO WAIT FOR THE DEVICE TO BECOME ACCESSIBLE.
  5369. *
  5370. * USES BA, T1, T3, CM - CM+4, CN - CN+4, FN - FN+4.
  5371. *
  5372. * CALLS CJR, CKA, CSC, RIS, VSP, WSS.
  5373. *
  5374. * MACROS ENDMS, NFA, SETMS, SFA.
  5375.  
  5376.  
  5377. CSV ENTRY ENTRY/EXIT
  5378. CSV0 LDN 0 SET WORD COUNT
  5379. STD T1
  5380. RJM CKA CHECK ADDRESS
  5381. CRM STMT,ON GET PARAMETER WORD
  5382. LDD CP CHECK IF SUBSYSTEM OR SSJ= JOB
  5383. ADN JCIW
  5384. CRD CM
  5385. ADN SEPW-JCIW
  5386. CRD CN
  5387. LDD CM+2
  5388. NJN CSV1 IF SUBSYSTEM
  5389. LDD CN
  5390. LPN 4 SET IF SSJ= JOB
  5391. CSV1 STD T3
  5392. NFA SCVN GET SERVICE CLASS VALIDATION MASK
  5393. CRD CN
  5394. LDM STMT+4
  5395. LPN 77
  5396. STD T7
  5397. RJM VSP VALIDATE SERVICE CLASS
  5398. CSV1.1 STD BA RETURN ERROR STATUS
  5399. SHN 6
  5400. STD T3
  5401. LDD OT
  5402. LMN IAOT
  5403. ZJN CSV1.2 IF INTERACTIVE JOB
  5404. LDD BA
  5405. LMN 3
  5406. NJN CSV1.2 IF NOT SERVICE CLASS FULL ERROR
  5407. SFA JCB,T7
  5408. ADK JCTT
  5409. CRD FN
  5410. LDC SCRT/2 SET JOBS WAITING INDICATOR
  5411. STD FN+1
  5412. SFA JCB,T7
  5413. ADK JCTT
  5414. CWD FN
  5415. CSV1.2 LDM STMT+4
  5416. LPN 77
  5417. LMD T3
  5418. STM STMT+4
  5419. RJM CKA GET ADDRESS OF PARAMETER BLOCK
  5420. CWM STMT,ON RETURN PARAMETER WORD
  5421. LDD BA
  5422. ZJN CSV2 IF NO ERROR
  5423. LJM CPMX RETURN
  5424.  
  5425. CSV2 SFA JCB,T7 GET JCB ADDRESS
  5426. STD CM+4
  5427. SHN -14
  5428. STD CM+3
  5429. LDN 2 SET NUMBER OF REQUESTS
  5430. STD CM+1
  5431. LDD CN SET CURRENT JOB COUNT
  5432. STM CSVA+4
  5433. ADN 1 INCREMENT COUNT
  5434. STM CSVB+4
  5435. LDD MA
  5436. CWM CSVA,CM+1
  5437. MONITOR UTEM
  5438. LDD CM+1
  5439. NJP CSV0 IF FUNCTION NOT COMPLETED
  5440. LDN 1
  5441. STD T6
  5442. LDM STMT+4
  5443. LPN 77
  5444. RJM CSC CHANGE SERVICE CLASS
  5445. RJM RIS READ INPUT FILE SYSTEM SECTOR
  5446. LDD CP UPDATE INFORMATION IN SYSTEM SECTOR
  5447. ADN TFSW
  5448. CRD CM
  5449. SFA EJT,CM
  5450. ADK JSNE
  5451. CRD CM
  5452. ADK SCLE-JSNE
  5453. CRD CN
  5454. LDD CM SET JSN
  5455. STM IOSS
  5456. LDD CM+1
  5457. STM IOSS+1
  5458. LDM IOSS+SCLE*5 SET SERVICE CLASS
  5459. LPN 17
  5460. LMD CN
  5461. LPN 17
  5462. LMD CN
  5463. STM IOSS+SCLE*5
  5464. SETMS IO,RW
  5465. RJM WSS WRITE INPUT FILE SYSTEM SECTOR
  5466. PJN CSV3 IF NO MASS STORAGE ERROR ENCOUNTERED
  5467. RJM CJR CHECK IF THE JOB IS ROLLABLE
  5468. LDN 4 INDICATE MASS STORAGE ERROR ENCOUNTERED
  5469. LJM CSV1.1 RETURN ERROR STATUS
  5470.  
  5471. CSV3 ENDMS
  5472. LJM CPMX RETURN
  5473.  
  5474.  
  5475. CSVA VFD 1/1,5/JCTT,6/12D,6/48D,42/0 VERIFY OLD JOB COUNT
  5476. CSVB VFD 6/JCTT,6/12D,6/48D,42/0 SET NEW JOB COUNT
  5477. GCN SPACE 4,15
  5478. *** FUNCTION 136.
  5479. * GET CHARGE NUMBER INFORMATION.
  5480. *
  5481. * ENTRY (IR+3 - IR+4) = PARAMETER BLOCK ADDRESS *ADDR*.
  5482. *
  5483. * EXIT CURRENT CHARGE AND PROJECT NUMBER INFORMATION
  5484. * RETURNED TO CALLER.
  5485. *
  5486. *T ADDR+0 60/CHARGE NUMBER
  5487. *T, 60/PROJECT NUMBER
  5488. *T, 60/PROJECT NUMBER
  5489. *T, 1/V,59/0
  5490. * WHERE
  5491. * V = VALIDATED CHARGE FLAG.
  5492. * = 0 IF CHARGE AND PROJECT NUMBER NOT VALIDATED.
  5493. * = 1 IF CHARGE AND PROJECT NUMBER VALIDATED.
  5494.  
  5495.  
  5496. GCN ENTRY
  5497. NFA CHGN READ CHARGE AND PROJECT NUMBER
  5498. CRM STMT,TR
  5499. LDD CP READ CHARGE COMMAND PROCESSED FLAG
  5500. ADN FPFW
  5501. CRD CN
  5502. LDN ZERL SET VALIDATED CHARGE FLAG
  5503. CRD CM
  5504. LDD CN
  5505. LPC 4000
  5506. STD CM
  5507. LDN 3 SET WORD COUNT
  5508. STD T1
  5509. RJM CKA VALIDATE PARAMETER BLOCK ADDRESS
  5510. CWM STMT,TR WRITE PARAMETER BLOCK
  5511. CWD CM
  5512. LJM CPMX RETURN
  5513. TITLE SUBROUTINES.
  5514. CUF SPACE 4,15
  5515. ** CUF - CHECK FOR PROFILE FILE UPDATE FAILURE.
  5516. *
  5517. * IF *CPM* COULD NOT MAKE A SUCCESSFUL *0AU* CALL, ANY CONTROL
  5518. * POINT AREA ACCUMULATOR OVERFLOW FLAGS ARE CLEARED (IN
  5519. * ADDITION, IF SRU ACCUMULATOR OVERFLOW, OVERFLOW VALUE
  5520. * MESSAGE ISSUED), AND SRU ACCUMULATOR VALUE MESSAGE ISSUED.
  5521. *
  5522. * ENTRY (CUFA) = *LDN 0*, IF PROFILE FILE UPDATE FAILURE.
  5523. * (T1) = ADDRESS OF *ACSR* ACCOUNT FILE MESSAGE.
  5524. *
  5525. * CALLS DFM.
  5526.  
  5527.  
  5528. CUF SUBR ENTRY/EXIT
  5529. LDN 1
  5530. CUFA EQU *-1
  5531. * LDN 0 (PROFILE FILE UPDATE FAILURE)
  5532. NJN CUFX IF NO UPDATE FAILURE
  5533. LDN 1RU-1RC CHANGE MESSAGE PREFIX TO *AUSR*
  5534. RAI T1
  5535. LDD T1
  5536. ADC ACFN
  5537. RJM DFM ISSUE MESSAGE TO ACCOUNT FILE
  5538. UJN CUFX RETURN
  5539. DAM SPACE 4,10
  5540. ** DAM - DISPLAY ACCOUNT MESSAGES.
  5541. *
  5542. * ENTRY (A) = MESSAGE ADDRESS.
  5543. * (T4) = NUMBER OF MESSAGES TO DISPLAY.
  5544. *
  5545. * USES T4, T5.
  5546. *
  5547. * CALLS DFM.
  5548.  
  5549.  
  5550. DAM SUBR ENTRY/EXIT
  5551. STM DAMA SAVE ADDRESS OF MESSAGE
  5552. DAM1 LDM **,T4 GET MESSAGE ADDRESS
  5553. DAMA EQU *-1
  5554. STD T5
  5555. LDM 3,T5
  5556. ZJN DAM2 IF QUANITY ZERO (NO MESSAGE DISPLAYED)
  5557. LDD T5
  5558. LMC CPON
  5559. RJM DFM DISPLAY IN USERS DAYFILE
  5560. LDD T5
  5561. LMC ACFN
  5562. RJM DFM DISPLAY IN ACCOUNT FILE
  5563. DAM2 SOD T4 DECREMENT MESSAGE COUNT
  5564. PJN DAM1 IF MORE MESSAGES
  5565. UJN DAMX RETURN
  5566. IAM SPACE 4,15
  5567. ** IAM - ISSUE ACCOUNT FILE MESSAGES FOR END OF ACCOUNT BLOCK.
  5568. *
  5569. * ENTRY (A) = ADDRESS OF WORD IN PP CONTAINING NEW SRU
  5570. * MULTIPLIERS IF MULTIPLIERS ARE TO BE CHANGED.
  5571. *T 12/ M1,12/ M2,12/ M3,12/ M4,12/ AD
  5572. * (A) = 0 IF SRU MULTIPLIERS ARE NOT TO BE CHANGED.
  5573. *
  5574. * EXIT (A) = ADDRESS OF *ACSR* SRU MESSAGE DENOTING END OF
  5575. * ACCOUNT BLOCK.
  5576. *
  5577. * USES TN, T3, T4, T5, CM - CM+4, CN - CN+4.
  5578. *
  5579. * CALLS DAM, PIR, RRR, SCM, SRR, STA.
  5580. *
  5581. * MACROS MONITOR, NFA, SFA.
  5582.  
  5583.  
  5584. IAM SUBR ENTRY/EXIT
  5585. ZJN IAM1 IF NO CHANGE TO SRU MULTIPLIERS
  5586. STM IAMA
  5587. LDD MA MOVE SRU MULTIPLIERS TO MESSAGE BUFFER
  5588. CWM **,ON
  5589. IAMA EQU *-1
  5590. LDN ABCF&ABCS SET CHANGE ACCOUNT BLOCK SUBFUNCTION
  5591. IAM1 LMN ABCS SET CLEAR SRU ACCUMULATORS SUBFUNCTION
  5592. STD CM+1
  5593. LDN AC1WL
  5594. STD T4
  5595. LDD CP
  5596. ADK AC1W
  5597. CRM IAMU,T4
  5598. LDN ACTWL
  5599. STD T4
  5600. LDD CP SAVE CPA ACCUMULATORS FOR CONVERSION
  5601. ADN ACTW
  5602. CRM IAMC,T4
  5603. MONITOR ACTM CHANGE ACCOUNT BLOCK/CLEAR ACCUMULATORS
  5604.  
  5605. * CONVERT CPA ACCUMULATORS.
  5606.  
  5607. LDD MA MOVE CPA ACCUMULATORS TO CPA
  5608. CWM IAMC,T4
  5609. LDN ABVF SET CONVERT ACCUMULATORS SUBFUNCTION
  5610. STD CM+1
  5611. MONITOR ACTM
  5612. LDN ABNA-1 SET NUMBER OF CONVERTED ACCUMULATORS
  5613. STD T4
  5614. LDN ABNA-1+2
  5615. STD T5
  5616. IAM2 LDC IAME SET MESSAGE ADDRESS
  5617. RJM SCM
  5618. LDM SCMB
  5619. STD T3
  5620. LDI T3
  5621. NJN IAM3 IF SRU ACCUMULATOR NOT ZERO
  5622. LDD MA
  5623. CWM IAMD,ON
  5624. LDN 0
  5625. STD T4
  5626. UJN IAM2 STORE DISPLAY ZERO IN SRU MESSAGE
  5627.  
  5628. IAM3 LDD CP GET JOB EJT ORDINAL
  5629. ADN TFSW
  5630. CRD CM
  5631. SFA EJT,CM GET FWA EJT ENTRY
  5632. CRD CM
  5633. LDD CM+4 CHECK JOB CONNECTION STATUS
  5634. SHN -7
  5635. LPN 17
  5636. LMN OLCS
  5637. ZJN IAM4 IF ONLINE INTERACTIVE JOB
  5638. NFA RC2N READ CHARACTER COUNTS FROM NFL
  5639. CRD CM
  5640. UJN IAM5 SET COUNTS
  5641.  
  5642. IAM4 LDD CP GET TERMINAL NUMBER
  5643. ADN TTNW
  5644. CRD CM
  5645. LDD CM+1
  5646. STD TN
  5647. RJM PIR PRESET WITH IAF R-REGISTER
  5648. RJM SRR SET R-REGISTER TO IAF RA
  5649. RJM STA SET TERMINAL TABLE ADDRESS
  5650. ADN VFST READ CHARACTER COUNTS FROM TERMINAL TABLE
  5651. CRD CN
  5652. ADN VCHT-VFST
  5653. CRD CM
  5654. RJM RRR RESTORE R-REGISTER
  5655. LDD CN+2
  5656. STD CM+2
  5657. IAM5 LDD CM+4 SET OUTPUT COUNT
  5658. STM IAMN+7
  5659. LDD CM+3 SET INPUT COUNT
  5660. STM IAMM+7
  5661. ADD CM+4 SET COMBINED COUNT
  5662. STM IAML+7
  5663. SHN -14
  5664. ADD CM+2
  5665. STM IAML+6
  5666. LDD MA SET COUNTS FOR CONVERSION
  5667. CWM IAML+3,ON
  5668. CWM IAMM+3,ON
  5669. CWM IAMN+3,ON
  5670. LDN RCIS+3 SET F10.3 FORMAT AND REQUEST COUNT
  5671. STD CM+1
  5672. LDN 0 CLEAR SRU FLAG
  5673. STD CM+2
  5674. MONITOR RDCM CONVERT ACCUMULATORS
  5675. LDD MA
  5676. CRM IAML+3,ON READ CONVERSIONS TO MESSAGES
  5677. CRM IAMM+3,ON
  5678. CRM IAMN+3,ON
  5679. LDN AC1WL
  5680. STD T4
  5681. LDD MA
  5682. CWM IAMU,T4
  5683. LDN ABOF
  5684. STD CM+1
  5685. MONITOR ACTM CONVERT OTHER ACCUMULATORS
  5686. LDN ABNB-1
  5687. STD T4
  5688. LDC IAMO SET MESSAGE ADDRESS
  5689. RJM SCM STORE CONVERTED MESSAGES
  5690.  
  5691. * ISSUE END OF ACCOUNT BLOCK MESSAGES TO USER
  5692. * DAYFILE AND ACCOUNT FILE.
  5693.  
  5694. LDN ABNB-1
  5695. STD T4
  5696. LDC IAMO
  5697. RJM DAM DISPLAY ACCOUNTING MESSAGES
  5698. LDN ABNA+3-1
  5699. STD T4
  5700. LDC IAME
  5701. RJM DAM DISPLAY ACCOUNTING MESSAGES
  5702. LDM IAME+ABSR RETURN ADDRESS OF SRU MESSAGE
  5703. LJM IAMX RETURN
  5704.  
  5705.  
  5706. IAMC BSS ACTWL*5 BUFFER FOR CPA ACCUMULATOR WORDS
  5707.  
  5708. IAMD DATA C* 0.000* DISPLAY ZERO
  5709.  
  5710. * THE MESSAGE ADDRESSES IN THE FOLLOWING TABLE AND THE
  5711. * ACCUMULATORS RETURNED BY *ACTM* SUBFUNCTION *ABVF* ARE
  5712. * MAINTAINED IN THE SAME ORDER TO INSURE THAT THE CORRECT
  5713. * QUANTITY IS STORED IN THE APPROPRIATE MESSAGE. THE MESSAGES
  5714. * ARE DISPLAYED IN THE REVERSE ORDER SO THAT SRUS ARE ALWAYS
  5715. * THE LAST TO BE DISPLAYED TO INDICATE END OF ACCOUNT BLOCK.
  5716.  
  5717. IAME INDEX
  5718. INDEX ABSR,IAMF SRUS
  5719. ERRNZ ABSR SRUS MUST BE DISPLAYED LAST
  5720. INDEX ABCP,IAMG CPU TIME
  5721. INDEX ABMS,IAMH MASS STORAGE ACTIVITY
  5722. INDEX ABMT,IAMI MAGNETIC TAPE ACTIVITY
  5723. INDEX ABPF,IAMJ PERMANENT FILE ACTIVITY
  5724. INDEX ABAD,IAMK SRU ADDER
  5725. INDEX ABNA+0,IAML TOTAL CHARACTERS
  5726. INDEX ABNA+1,IAMM CHARACTERS IN
  5727. INDEX ABNA+2,IAMN CHARACTERS OUT
  5728. INDEX ABNA+3
  5729.  
  5730. IAMF DATA C*ACSR, 000000.000UNTS.*
  5731. IAMG DATA C*UDCP, 000000.000SECS.*
  5732. IAMH DATA C*UDMS, 000000.000KUNS.*
  5733. IAMI DATA C*UDMT, 000000.000KUNS.*
  5734. IAMJ DATA C*UDPF, 000000.000KUNS.*
  5735. IAMK DATA C*UDAD, 000000.000KUNS.*
  5736. IAML DATA 6HUDCT, ,0,0,0,0,0,6HKCHS. ,0
  5737. IAMM DATA 6HUDCI, ,0,0,0,0,0,6HKCHS. ,0
  5738. IAMN DATA 6HUDCO, ,0,0,0,0,0,6HKCHS. ,0
  5739.  
  5740. IAMO INDEX
  5741. INDEX ABMP,IAMP MAP
  5742. INDEX ABAC,IAMQ AUC ACTIVITY
  5743. INDEX ABOD,IAMR OPTICAL DISK ACTIVITY
  5744. INDEX ABNB
  5745.  
  5746. IAMP DATA C*UDMP, 000000.000KUNS.*
  5747. IAMQ DATA C*UDAC, 000000.000UNTS.*
  5748. IAMR DATA C*UDOD, 000000.000KUNS.*
  5749.  
  5750. IAMU BSS AC1WL*5 BUFFER FOR CPA ACCUMULATOR WORDS
  5751. RIS SPACE 4,20
  5752. ** RIS - READ INPUT FILE SYSTEM SECTOR.
  5753. *
  5754. * EXIT (A) = 0.
  5755. * (BFMS) = INPUT FILE SYSTEM SECTOR.
  5756. * (FA) = 0.
  5757. *
  5758. * IF A NON-SUBSYSTEM JOB ENCOUNTERED A RECOVERABLE
  5759. * READ/WRITE ERROR ON THE DEVICE, THE JOB IS ROLLED OUT
  5760. * TO WAIT FOR THE DEVICE TO BECOME ACCESSIBLE.
  5761. *
  5762. * ERROR TO *ERR* IF SYSTEM SECTOR ERROR OTHER THAN READ.
  5763. *
  5764. * USES T5 - T5+4.
  5765. *
  5766. * CALLS CJR, RSS.
  5767. *
  5768. * MACROS ABORT, NFA, SETMS.
  5769.  
  5770.  
  5771. RIS SUBR ENTRY/EXIT
  5772. NFA FNTN+FSTL FETCH INPUT FILE FST
  5773. CRD T5
  5774. SETMS IO
  5775. LDN 0 SET NO FILE NAME VERIFY
  5776. RJM RSS READ SYSTEM SECTOR
  5777. STD FA
  5778. ZJN RISX IF NO ERROR
  5779. PJN RIS1 IF SYSTEM SECTOR ERROR OTHER THAN READ
  5780. RJM CJR CHECK IF THE JOB IS ROLLABLE
  5781. RIS1 ABORT ERSY * CPM - SYSTEM ERROR.*
  5782. SAL SPACE 4,10
  5783. ** SAL - SET ACCOUNT BLOCK LIMIT.
  5784. *
  5785. * ENTRY (CM+3 - CM+4) = ACCOUNT BLOCK SRU LIMIT TO SET.
  5786. *
  5787. * EXIT *STLW* UPDATED.
  5788. *
  5789. * USES CN - CN+4.
  5790.  
  5791.  
  5792. SAL SUBR ENTRY/EXIT
  5793. LDD CP GET CURRENT ACCOUNT BLOCK SRU LIMIT
  5794. ADN STLW
  5795. CRD CN
  5796. LDD CN+1
  5797. LPN 77
  5798. STD CN+1
  5799. LDD CM+3
  5800. SHN 14
  5801. LMD CM+4
  5802. SHN 14
  5803. STD CN
  5804. SHN -6
  5805. SCN 77
  5806. RAD CN+1
  5807. LDD CP STORE NEW LIMIT
  5808. ADN STLW
  5809. CWD CN
  5810. UJN SALX RETURN
  5811. SCM SPACE 4,10
  5812. ** SCM - STORE CONVERSIONS IN MESSAGE.
  5813. *
  5814. * ENTRY (T4) = MESSAGE COUNT.
  5815. * (A) = LOCATION OF MESSAGE.
  5816. *
  5817. * USES T4.
  5818.  
  5819.  
  5820. SCM SUBR ENTRY/EXIT
  5821. STM SCMA SAVE MESSAGE ADDRESS
  5822. SCM1 LDM **,T4 GET MESSAGE ADDRESS
  5823. SCMA EQU *-1
  5824. ADN 3
  5825. STM SCMB
  5826. LDD MA
  5827. ADD T4
  5828. CRM **,ON READ CONVERSIONS
  5829. SCMB EQU *-1
  5830. SOD T4 DECREMENT MESSAGE COUNT
  5831. PJN SCM1 IF MORE ACCUMULATORS
  5832. UJN SCMX RETURN
  5833. SPP SPACE 4,10
  5834. ** SPP - SET PROFILE PARAMETERS.
  5835. *
  5836. * CONTROL POINT AREA *FPFW* WORD IS UPDATED.
  5837. *
  5838. * EXIT TO *ERR1*, IF SYSTEM ERROR.
  5839. *
  5840. * USES T1 - T7, CM - CM+4, CN - CN+4, RI - RI+1.
  5841. *
  5842. * CALLS CRA, DFM, FAT, SLI, SRU.
  5843. *
  5844. * MACROS ABORT, MONITOR, SFA.
  5845.  
  5846.  
  5847. SPP SUBR ENTRY/EXIT
  5848. LDD MA PROFILE FILE NAME
  5849. CWM SPPC,ON
  5850. SBN 1
  5851. CRD CM
  5852. LDD CP FAMILY NAME
  5853. ADN PFCW
  5854. CRD T1
  5855. SFA EST,T4
  5856. ADK EQDE
  5857. CRD CN
  5858. LDD CN+4
  5859. SHN 3
  5860. ADN PFGL
  5861. CRD CN
  5862. RJM FAT SEARCH FOR FAST-ATTACH FILE
  5863. ZJN SPP2 IF PROFILE FILE FOUND
  5864. SPP1 ABORT EREF+ERLN *ERROR ON FILE - "PPFN".*
  5865.  
  5866. SPP2 LDD T1 SET SYSTEM FNT ORDINAL OF *PROFILE* FILE
  5867. STD CN+2
  5868. SFA FNT
  5869. ADN FSTG
  5870. CRD T5
  5871. LDM STMT+10 RANDOM ADDRESS
  5872. LPN 77
  5873. STD RI
  5874. SHN 14
  5875. LMM STMT+11
  5876. STD RI+1
  5877. ZJN SPP3 IF NO RANDOM ADDRESS
  5878. RJM CRA CONVERT RANDOM ADDRESS
  5879. MJN SPP1 IF INCORRECT RANDOM ADDRESS
  5880. LDD T7 SET SECTOR
  5881. STD CN+4
  5882. LDD T6 TRACK
  5883. SPP3 STD CN+3
  5884. LDM STMT+10
  5885. SCN 77
  5886. ZJN SPP4 IF FIRST ENTRY IN LEVEL-3 BLOCK
  5887. LDN 1
  5888. SPP4 ADN 2 SET NOT FIRST CHARGE BIT
  5889. SHN 12
  5890. STD CN
  5891. LDC ** CHECK FOR PROFILE FILE SWITCH
  5892. SPPA EQU *-1 (PROFILE FNT ORDINAL)
  5893. ZJN SPP5 IF NO OLD *CHARGE* COMMAND
  5894. LMD CN+2
  5895. ZJN SPP6 IF SAME FAMILY
  5896. LMD CN+2
  5897. SFA FNT
  5898. ADN FSTG
  5899. CRD CM
  5900. LDD CM SET OLD FAMILY EST ORDINAL
  5901. STM SPPB
  5902. SPP5 LDD T5 INCREMENT DAF COUNT FOR NEW FAMILY
  5903. STD CM+1
  5904. LDN IUCS
  5905. STD CM+3
  5906. MONITOR SMDM
  5907. SPP6 LDD CP
  5908. ADN FPFW
  5909. CWD CN
  5910. LDC 0
  5911. SPPB EQU *-1
  5912. ZJN SPP7 IF NOT DECREMENTING OLD FAMILY DAF COUNT
  5913. STD CM+1
  5914. LDN DUCS DECREMENT DAF COUNT FOR OLD FAMILY
  5915. STD CM+3
  5916. MONITOR SMDM
  5917. SPP7 LDM STMT+5 CONVERT VALIDATION INDEX
  5918. SHN -6
  5919. RJM SLI
  5920. RJM SRU SET VALIDATION LIMITS
  5921. LJM SPPX
  5922.  
  5923. SPPC VFD 42/0L"PPFN" PROFILE FILE NAME
  5924. UPF SPACE 4,25
  5925. ** UPF - UPDATE PROJECT PROFILE FILE USING OVERLAY *0AU*.
  5926. *
  5927. * ENTRY (OVL0 - OVL0+4) = CONTROL POINT AREA *FPFW* WORD.
  5928. * (RC, BITS 6-11) = RECALL COUNT.
  5929. *
  5930. * EXIT TO CALLING ROUTINE, IF ONE OF THE FOLLOWING-
  5931. * 1) SUCCESSFUL *0AU* CALL.
  5932. * 2) PROFILE FILE UPDATE FAILURE AND MAXIMUM
  5933. * RECALL COUNT REACHED.
  5934. * ALSO, (CUFA) = *LDN 0*.
  5935. * 3) ERROR DETECTED BY *0AU*.
  5936. * TO CPMX, IF PROFILE FILE INTERLOCKED IN ROLLABLE MODIFY
  5937. * MODE AND MAXIMUM RECALL COUNT NOT REACHED.
  5938. * RECALL COUNT IS INCREMENTED AND ANOTHER
  5939. * SYSTEM REQUEST ISSUED.
  5940. * IF A NON-SUBSYSTEM JOB ENCOUNTERED A RECOVERABLE
  5941. * READ/WRITE ERROR ON THE DEVICE, THE JOB IS ROLLED OUT
  5942. * TO WAIT FOR THE DEVICE TO BECOME ACCESSIBLE.
  5943. *
  5944. *
  5945. * USES CM - CM+4.
  5946. *
  5947. * CALLS CJR, DFM, *0AU*.
  5948. *
  5949. * MACROS EXECUTE, MONITOR, SFA.
  5950.  
  5951.  
  5952. UPF SUBR ENTRY/EXIT
  5953. LDD CP GET JOB EJT ORDINAL
  5954. ADN TFSW
  5955. CRD CM
  5956. SFA EJT,CM GET JSN
  5957. ERRNZ JSNE CHECK IF WORD 0 OF EJT ENTRY
  5958. CRM AUPB,ON
  5959. ADN SCLE-JSNE-1 GET JOB SERVICE CLASS
  5960. CRM AUPB+4,ON
  5961. LDD CP GET SRU ACCUMULATOR
  5962. ADN SRUW
  5963. CRM AUPB+5,ON
  5964. LDC AUPB
  5965. STM L0AU+1
  5966. EXECUTE 0AU,L0AU+5
  5967. PJN UPF0 IF NO MASS STORAGE ERROR ENCOUNTERED
  5968. RJM CJR CHECK IF THE JOB IS ROLLABLE
  5969. LJM UPF2 SET UPDATE FAILURE FLAG
  5970.  
  5971. UPF0 SBN 2
  5972. NJP UPFX IF NOT ROLLABLE MODIFY INTERLOCK
  5973. LDD RC INCREMENT AND CHECK RECALL COUNT
  5974. ADD HN
  5975. STD IR+3
  5976. SHN -6
  5977. LMN MRCL+1
  5978. ZJN UPF1 IF MAXIMUM RECALL COUNT REACHED
  5979. LDN ZERL ENTER DEFAULT TIMED RECALL
  5980. CRD CM
  5981. LDN PIRR SET PF INTERLOCK REJECT REASON
  5982. STD CM
  5983. LDD MA ENTER PP CALL INTO RECALL STACK
  5984. CWD IR
  5985. ADN 1 STORE RECALL STACK REASON CODE
  5986. CWD CM
  5987. MONITOR RECM
  5988. LJM PPR EXIT TO PP RESIDENT
  5989.  
  5990. UPF1 STM L0AU+3 CLEAR PROFILE FILE PRESENT
  5991. EXECUTE 0AU,L0AU+5
  5992. PJN UPF1.1 IF NO MASS STORAGE ERROR ENCOUNTERED
  5993. RJM CJR CHECK IF THE JOB IS ROLLABLE
  5994. UJN UPF2 SET UPDATE FAILURE FLAG
  5995.  
  5996. UPF1.1 LDM L0AU+4
  5997. SHN 21-0
  5998. PJN UPF2 IF NOT SRU ACCUMULATOR OVERFLOW
  5999. LDC ACFN+UPFA SRU OVERFLOW MESSAGE
  6000. RJM DFM
  6001. UPF2 SOM CUFA SET UPDATE FAILURE FLAG
  6002. LJM UPFX EXIT
  6003.  
  6004.  
  6005. UPFA DATA C*AUSR, 219902.325UNTS.*
  6006. SPACE 4,10
  6007. ** COMMON DECKS.
  6008.  
  6009.  
  6010. QUAL
  6011. AST$ SET 1 ASSEMBLE *SSCT/SSAT* UPDATE CODE
  6012. *CALL COMPAST
  6013. QUAL *
  6014. *CALL COMPCRA
  6015. *CALL COMPCSC
  6016. *CALL COMPFAT
  6017. QUAL
  6018. *CALL COMPSTA
  6019. QUAL *
  6020. QUAL$ EQU 1 SET TO NOT QUALIFY COMMON DECKS
  6021. PIR$ EQU 1 SELECT ASSEMBLY OF *PIR* FOR IAF R-REG
  6022. *CALL COMPSRR
  6023. *CALL COMPSRU
  6024. VFN$ EQU 1 ALLOW ASTERISK (*) IN FILE NAME
  6025. *CALL COMPVFN
  6026. CJL$ EQU 1 CHECK SERVICE CLASS AT JOB LIMIT
  6027. CUV$ EQU 1 CHECK USER VALIDATED FOR SERVICE CLASS
  6028. *CALL COMPVSP
  6029. *CALL COMPWSS
  6030. SPACE 4,10
  6031. USE LITERALS
  6032. SPACE 4,10
  6033. ** BUFFER DEFINITIONS.
  6034.  
  6035.  
  6036. STMT EQU * COMMAND BUFFER
  6037. AUPB EQU STMT+10D*5 *0AU* PARAMETER BLOCK
  6038. L0AU EQU AUPB+2*5 LOAD ADDRESS FOR *0AU*
  6039. ERRNG EPFW-L0AU-ZAUL CHECK LENGTH OF *0AU*
  6040. SPACE 4,10
  6041. OVERFLOW OVL
  6042. OVERLAY (LOADER/MISCELLANEOUS FUNCTIONS.)
  6043. SEE SPACE 4,10
  6044. ** FUNCTION 4.
  6045. * SET ERROR EXIT ADDRESS = PARAMETER.
  6046. *
  6047. * ENTRY (IR+3 - IR+4) = ERROR EXIT ADDRESS.
  6048. *
  6049. * EXIT (EECW) UPDATED TO NEW ERROR EXIT ADDRESS.
  6050. * *OVERRIDE* REQUIRED FLAG CLEARED IN (SNSW).
  6051.  
  6052.  
  6053. SEE ENTRY
  6054. RJM CKA CHECK ERROR EXIT ADDRESS WITHIN FL
  6055. LDD CP READ (SNSW) AND (EECW)
  6056. ADN SNSW
  6057. CRD CN
  6058. ADN EECW-SNSW
  6059. CRD CM
  6060. LDD CM CHECK EXTENDED RPV SET
  6061. SHN 21-12
  6062. PJN SEE1 IF EXTENDED RPV NOT SET
  6063. ABORT ERIR * CPM - INCORRECT REQUEST.*
  6064.  
  6065. SEE1 LDN 0 CLEAR REPRIEVE OPTION
  6066. STD CM+1
  6067. LDD CM+3 SET ERROR EXIT ADDRESS
  6068. LMD IR+3
  6069. SCN 77
  6070. LMD IR+3
  6071. STD CM+3
  6072. LDD IR+4
  6073. STD CM+4
  6074. LDD CN CLEAR *OVERRIDE* REQUIRED BIT
  6075. LPC 6777
  6076. STD CN
  6077. LDD CP
  6078. ADN SNSW
  6079. CWD CN
  6080. ADN EECW-SNSW
  6081. CWD CM
  6082. LJM CPMX EXIT
  6083. GLS SPACE 4,15
  6084. *** FUNCTION 46.
  6085. * GET GLOBAL LIBRARY SET.
  6086. *
  6087. * GET THE LIST OF LIBRARY NAMES FROM THE GLOBAL
  6088. * LIBRARY SET INDICATORS IN *LB1W* THRU *LB3W*.
  6089. *
  6090. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER WORD.
  6091. *T ADDR 6/ ,18/ LIST ,36/0
  6092. * LIST RETURN ADDRESS FOR LIBRARY NAMES.
  6093. *
  6094. * EXIT RETURNS GLOBAL LIBRARY SET NAMES, LEFT JUSTIFIED,
  6095. * ZERO FILLED, STARTING AT *LIST* ADDRESS.
  6096. * EXITS TO LSR.
  6097.  
  6098.  
  6099. GLS ENTRY
  6100. RJM CKA READ PARAMETER WORD
  6101. CRD BA
  6102. LDD CP READ GLOBAL LIBRARY SET
  6103. ADC LB1W
  6104. CRM TLBD,TR
  6105. LDK LBDP READ LBD POINTER
  6106. CRD T0
  6107. LDN 0
  6108. STD T1 CLEAR *TLBD* INDEX
  6109. STD T5 SET BYTE INDICATOR TO UPPER 6 BITS
  6110. UJN GLS2 ENTER LOOP
  6111.  
  6112. GLS1 AOD T5 ADVANCE *TLBD* INDEX
  6113. SHN -1
  6114. STD T1
  6115. GLSA LMN TLBDL-3 CHECK FOR END OF *TLBD*
  6116. * LMN TLBDL-3-5 IF 1 USER LIBRARY
  6117. * LMN TLDBL-3-5-5 IF 2 USER LIBRARIES
  6118. ZJN GLS3 IF END OF LIBRARY INDICATORS
  6119. LDM GLSB SET UP SHN INSTRUCTION
  6120. LMN 71
  6121. STM GLSB
  6122. GLS2 LDM TLBD+3,T1 GET LIBRARY INDEX
  6123. GLSB SHN -6
  6124. * SHN 0 IF LIBRARY INDEX IN LOWER 6 BITS OF BYTE
  6125. LPN 77
  6126. GLS3 ZJN LSR IF END OF LIBRARY INDICATORS
  6127. SBN 77
  6128. ZJN GLS5 IF LOCAL USER LIBRARY INDICATOR
  6129. ADN 76 RESET INDICATOR MINUS 1
  6130. SHN 1 READ LIBRARY FROM LBD
  6131. ADD T3
  6132. SHN 6
  6133. ADD T2
  6134. SHN 14
  6135. GLS4 CRD FN
  6136. RJM RLN RETURN LIBRARY NAME
  6137. UJN GLS1 LOOP FOR NEXT INDICATOR
  6138.  
  6139. * PROCESS LOCAL USER LIBRARY.
  6140.  
  6141. GLS5 SOM GLSC
  6142. LCN 5 UPDATE END CHECK FOR *TLBD*
  6143. RAM GLSA
  6144. LDD CP READ USER LIBRARY NAME
  6145. ADC LB3W+1
  6146. GLSC EQU *-1
  6147. * ADC LB3W IF FIRST USER LIBRARY
  6148. * ADC LB2W IF SECOND USER LIBRARY
  6149. UJN GLS4 RETURN LIBRARY NAME
  6150. LSR SPACE 4,10
  6151. ** LSR - LIBRARY SET RETURN.
  6152. *
  6153. * ENTRY LIBRARY FUNCTION COMPLETED.
  6154. *
  6155. * EXIT PARAMETER WORD RETURNED.
  6156.  
  6157.  
  6158. LSR LDD IR+3 RETURN PARAMETER WORD
  6159. SHN 6
  6160. ADD RA
  6161. SHN 6
  6162. ADD IR+4
  6163. CWD BA
  6164. LJM CPMX EXIT
  6165. SLS SPACE 4,35
  6166. *** FUNCTION 47.
  6167. * SET GLOBAL LIBRARY SET.
  6168. *
  6169. * SET THE GLOBAL LIBRARY SET INDICATORS FROM A LIST
  6170. * OF LIBRARY NAMES.
  6171. *
  6172. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER WORD.
  6173. *T ADDR 6/ 0,18/ LIST ,36/ 0
  6174. * LIST FWA OF LIBRARY NAMES.
  6175. *
  6176. *T LIST 42/LIBRARY NAME 1,18/
  6177. *T LIST+1 42/LIBRARY NAME 2,18/
  6178. * . . .
  6179. *T LIST+N-1 42/LIBRARY NAME N,18/
  6180. *T LIST+N 60/0
  6181. *
  6182. * EXIT TO *LSR*.
  6183. * (LIST) ADVANCED TO END OF TABLE + 1.
  6184. *
  6185. *LB1W 36/NOT CHANGED , 24/GLI
  6186. *LB2W 60/ULN
  6187. *LB3W 60/ULN
  6188. * GLI = GLOBAL LIBRARY SET INDICATORS (6-BIT FIELDS) -
  6189. * 00 END OF LIBRARY SET.
  6190. * 01-76 ORDINAL OF SYSTEM LIBRARY.
  6191. * 77 USER LIBRARY. LOGICAL FILE NAME OF FIRST
  6192. * USER LIBRARY IN *LB3W*, LOGICAL FILE NAME
  6193. * OF SECOND USER LIBRARY IN *LB2W*.
  6194. * ULN = EITHER LOGICAL FILE NAME OF SECOND (*LB2W*) OR
  6195. * FIRST (*LB3W*) USER LIBRARY, OR A COLLECTION OF
  6196. * 6-BIT GLOBAL LIBRARY SET INDICATORS.
  6197. *
  6198. * ERROR (LIST) = ADDRESS OF TABLE ENTRY WHERE ERROR WAS
  6199. * FOUND.
  6200.  
  6201.  
  6202. SLS ENTRY
  6203. RJM CKA READ PARAMETER WORD
  6204. CRD BA
  6205. LDD CP READ FIRST LIBRARY CONTROL WORD
  6206. ADC LB1W
  6207. CRM TLBD,ON
  6208. LDN 2 MAXIMUM NUMBER OF LOCAL USER LIBRARIES
  6209. STD T7
  6210. LDN 3 NUMBER OF LIBRARY WORDS TO WRITE
  6211. STD T3
  6212. LDN 0 CLEAR COUNTER NUMBER OF GLOBAL LIBRARIES
  6213. STD T6
  6214. LDN ZERL CLEAR GLOBAL LIBRARIES
  6215. CRM TLBD+3,ON
  6216. LDN ZERL
  6217. CRM TLBD+3+5,ON
  6218. LDN ZERL
  6219. CRM TLBD+3+12,ON
  6220. LDN 24D MAXIMUM NUMBER OF GLOBAL LIBRARIES
  6221. STD T5
  6222. SLS1 RJM RLW READ LIBRARY WORD
  6223. NJN SLS5 IF NAME FOUND
  6224. LDD CP UPDATE GLOBAL LIBRARY SET
  6225. ADC LB1W
  6226. CWM TLBD,T3
  6227. SOD T3
  6228. ZJN SLS2 IF TWO USER LIBRARIES
  6229. SOD T3
  6230. NJN SLS3 IF NO USER LIBRARIES
  6231. LDD CP STORE ONE USER LIBRARY NAME
  6232. ADC LB3W
  6233. CWM LB2T+5,ON
  6234. UJN SLS3 RETURN
  6235.  
  6236. SLS2 LDN 2 STORE TWO USER LIBRARY NAMES
  6237. STD T5
  6238. LDD CP
  6239. ADC LB2W
  6240. CWM LB2T,T5
  6241. SLS3 LJM LSR RETURN
  6242.  
  6243. * ERROR EXIT, DECREMENT INDEX TO INDICATE BAD LIBRARY NAME.
  6244.  
  6245. SLS4 SOD BA+1
  6246. PJN SLS3 IF NO UNDERFLOW
  6247. AOD BA+1 CORRECT UNDERFLOW CONDITION
  6248. SOD BA
  6249. UJN SLS3 RETURN
  6250.  
  6251. SLS5 SOD T5
  6252. MJN SLS4 IF TOO MANY SYSTEM LIBRARIES
  6253. RJM LBD SEARCH FOR MATCH IN LBD
  6254. NJP SLS7 IF MATCH FOUND
  6255. SOD T7
  6256. MJN SLS4 IF TOO MANY LOCAL USER LIBRARIES
  6257. RJM SAF CHECK LOCAL FILE PRESENT
  6258. NJN SLS5.1 IF FILE FOUND
  6259. STM SLSD,T4 CLEAR ASSEMBLY AREA START
  6260. LDD T4
  6261. ADC SLSD SET ASSEMBLY ADDRESS
  6262. STD T1
  6263. LDN FN ADD FILE NAME
  6264. RJM ACS
  6265. LDC SLSE ADD PERIOD
  6266. RJM ACS
  6267. LDD T8
  6268. ADC SLSC+CPON ISSUE MESSAGE TO CALLER
  6269. RJM DFM
  6270. LJM SLS1 CHECK NEXT ENTRY
  6271.  
  6272. * PROCESS LOCAL USER LIBRARY ENTRY.
  6273.  
  6274. SLS5.1 LCN 10D UPDATE MAXIMUM LIBRARIES ALLOWED
  6275. RAD T5
  6276. MJP SLS4 IF TOO MANY LIBRARIES
  6277. LDN 4
  6278. STD T1
  6279. SLS6 LDM FN,T1
  6280. STM LB2T+5,T1 SAVE *LB3W* WORD
  6281. SLSA EQU *-1
  6282. * STM LB2T,T1 (*LB2W*)
  6283. SOD T1
  6284. PJN SLS6 IF NOT 5 BYTES TRANSFERRED
  6285. LCN 5
  6286. RAM SLSA
  6287. LDN 77 USER LIBRARY INDICATOR
  6288. STD T4
  6289. SOD T3
  6290.  
  6291. * PROCESS SYSTEM USER LIBRARY.
  6292.  
  6293. SLS7 LDD T6 SET UP INDEX IN *TLBD*
  6294. SHN -1
  6295. STD T1
  6296. AOD T6
  6297. LDD T4 ENTER GLOBAL LIBRARY SET INDICATOR
  6298. SLSB SHN 6
  6299. * SHN 0 IF IN BITS 0-5 OF BYTE
  6300. RAM TLBD+3,T1
  6301. LDM SLSB SET UP SHN INSTRUCTION
  6302. LMN 6
  6303. STM SLSB
  6304. LJM SLS1 LOOP TO END OF LIBRARY SET
  6305.  
  6306.  
  6307. SLSC DATA H* CPM - LIBRARY NOT FOUND = *
  6308. SLSD BSS 5 SPACE FOR NAME
  6309. SLSE DATA C*.*
  6310. SLSF DATA H* CPM - LIBRARY INACCESSIBLE = *
  6311. SLSG BSS 7 SPACE FOR NAME, PERIOD
  6312. SPB SPACE 4,10
  6313. *** FUNCTION 100.
  6314. * SET/CLEAR PAUSE BIT.
  6315. *
  6316. * ENTRY (IR+4) = 0, IF TO SET BIT.
  6317. * = 1, IF TO CLEAR BIT.
  6318. *
  6319. * USES CM - CM+4.
  6320. *
  6321. * CALLS CUA.
  6322. *
  6323. * MACROS ABORT.
  6324.  
  6325.  
  6326. SPB ENTRY
  6327. LDD EP CHECK FOR *SSJ=* ENTRY POINT
  6328. SHN 21-2
  6329. MJN SPB1 IF *SSJ=* PROGRAM
  6330. RJM CUA CHECK FOR *SYOT* OR *CSOJ*/*DEBUG*
  6331. ZJN SPB1 IF ACCESS ALLOWED
  6332. RJM VPA VERIFY PRIVILEGED ANALYST
  6333. ZJN SPB1 IF ACCESS ALLOWED
  6334. ABORT ERIU * CPM - USER ACCESS NOT VALID.*
  6335.  
  6336. SPB1 LDD IR+4
  6337. SBN 2
  6338. MJN SPB2 IF LEGAL SUBFUNCTION
  6339. ABORT ERIR *CPM - INCORRECT REQUEST.*
  6340.  
  6341. SPB2 LDD CP READ PAUSE WORD
  6342. ADN SNSW
  6343. CRD CM
  6344. LDD CM+3 SET/CLEAR PAUSE BIT
  6345. SCN 1
  6346. LMN 1
  6347. LMD IR+4
  6348. STD CM+3
  6349. LDD CP
  6350. ADN SNSW
  6351. CWD CM
  6352. LJM CPMX EXIT
  6353. SPS SPACE 4,15
  6354. *** FUNCTION 101.
  6355. * RETURN SYSTEM ORIGIN PRIVILEGES STATUS.
  6356. *
  6357. * ENTRY (IR+3 - IR+4) = STATUS RETURN ADDRESS.
  6358. *
  6359. * EXIT IF STATUS RETURN ADDRESS SPECIFIED -
  6360. * (ADDR) = 48/0, 12/STATUS
  6361. * WHERE STATUS = 0 IF USER HAS PRIVILEGES.
  6362. * .NE. 0 IF USER DOES NOT HAVE PRIVILEGES.
  6363. *
  6364. * IF STATUS RETURN ADDRESS NOT SPECIFIED -
  6365. * TO *CPMX* IF USER HAS PRIVILEGES.
  6366. * ABORT, IF USER DOES NOT HAVE PRIVILEGES.
  6367.  
  6368.  
  6369. SPS ENTRY
  6370. LDN ZERL CLEAR REPLY
  6371. CRD CN
  6372. RJM CUA CHECK USER ACCESS
  6373. STD CN+4 SAVE STATUS
  6374. LDD IR+3
  6375. LPN 37
  6376. SHN 14
  6377. LMD IR+4
  6378. ZJN SPS2 IF NO ADDRESS SPECIFIED
  6379. RJM CKA CHECK ADDRESS
  6380. CWD CN RETURN STATUS
  6381. SPS1 LJM CPMX EXIT
  6382.  
  6383. SPS2 LDD CN+4
  6384. ZJN SPS1 IF USER HAS PRIVILEGES
  6385. ABORT ERIU * CPM - USER ACCESS NOT VALID.*
  6386. GPG SPACE 4,25
  6387. *** FUNCTION 127.
  6388. * GET PAGESIZE INFORMATION.
  6389. *
  6390. * ENTRY (IR+3 - IR+4) = ADDRESS OF 2 WORD BLOCK.
  6391. *
  6392. * EXIT PARAMETER BLOCK RETURNED AS FOLLOWS.
  6393. *
  6394. *T,ADDR 28/RES,4/JPD,8/JPL,8/JPW,11/RES,1/C
  6395. *T 28/RES,4/SPD,8/SPL,8/SPW,12/RES
  6396. *
  6397. * JPD JOB PRINT DENSITY (6 OR 8)
  6398. * JPL JOB PAGE LENGTH
  6399. * JPW JOB PAGE WIDTH
  6400. * C COMPLETE BIT
  6401. * SPD SYSTEM PRINT DENSITY
  6402. * SPL SYSTEM PAGE LENGTH
  6403. * SPW SYSTEM PAGE WIDTH
  6404. * RES RESERVED FIELD
  6405.  
  6406.  
  6407. GPG ENTRY
  6408. NFA JPPN GET JOB PAGE PARAMETERS
  6409. CRD T3
  6410. LDD T7
  6411. SCN 1
  6412. ADN 1 SET COMPLETION BIT
  6413. STD T7
  6414. LDN IPPL GET SYSTEM PAGE PARAMETERS
  6415. CRD CM
  6416. LDN 0
  6417. STD CM CLEAR UNRELATED BYTES
  6418. STD CM+1
  6419. LDN 2 NUMBER OF WORDS TO TRANSFER
  6420. STD T1
  6421. RJM CKA COPY PAGE PARAMETERS
  6422. CWM T3,T1
  6423. LJM CPMX RETURN
  6424. SPG SPACE 4,25
  6425. *** FUNCTION 130.
  6426. * SET PAGESIZE INFORMATION.
  6427. *
  6428. * ENTRY (IR+3 - IR+4) = ADDRESS OF PARAMETER BLOCK.
  6429. *
  6430. *T,ADDR 28/RES,4/JPD,8/JPL,8/JPW,11/RES,1/C
  6431. *
  6432. * JPD JOB PRINT DENSITY (6 OR 8)
  6433. * JPL JOB PAGE LENGTH
  6434. * JPW JOB PAGE WIDTH
  6435. * C COMPLETE BIT
  6436. * RES RESERVED FIELD
  6437. *
  6438. * EXIT PAGE SIZE PARAMETERS SET IN NFL.
  6439.  
  6440. SPG ENTRY
  6441. LDN 1 READ USER DEFINITIONS ONLY
  6442. STD T1
  6443. RJM CKA
  6444. CRD CM READ PAGE SIZE PARAMETERS
  6445. LDD CM+4
  6446. SCN 1
  6447. ADN 1 SET COMPLETE BIT
  6448. STD CM+4
  6449. RJM CKA
  6450. CWD CM SET COMPLETE BIT IN PARAMETER WORD
  6451.  
  6452. * VALIDATE PARAMETERS.
  6453.  
  6454. NFA JPPN
  6455. CRD CN
  6456. LDD CN+2 CLEAR PAGE PARAMETERS
  6457. LPC -377
  6458. STD CN+2
  6459. LDD CM+2 CHECK PRINT DENSITY
  6460. LPC 377
  6461. RAD CN+2
  6462. SHN -4
  6463. LPN 17 CHECK REMAINDER OF BYTE FOR *PD* ONLY
  6464. LMN 6
  6465. ZJN SPG2 IF *PD* IS 6 LPI
  6466. LMN 6&10
  6467. ZJN SPG2 IF *PD* IS 8 LPI
  6468.  
  6469. SPG1 ABORT ERPV * CPM - INCORRECT PAGE VALUES.*
  6470.  
  6471. SPG2 LDD CM+3 CHECK *PW*
  6472. STD CN+3
  6473. LPC 377
  6474. SBN /BIO/PWLL
  6475. MJN SPG1 IF BELOW LOWER LIMIT OF *PW*
  6476. LDD CM+2
  6477. LPN 17 UPPER PORTION OF *PS*
  6478. SHN 14
  6479. LMD CM+3
  6480. SHN -10
  6481. SBN /BIO/PSLL
  6482. MJN SPG1 IF BELOW LOWER LIMIT OF *PS*
  6483. NFA JPPN STORE JOB PAGE PARAMETERS
  6484. CWD CN
  6485. LJM CPMX RETURN
  6486. SOD SPACE 4,10
  6487. *** FUNCTION 112.
  6488. * SET OPERATOR DISPLAY DATA.
  6489. *
  6490. * ENTRY (IR+3 - IR+4) = ADDRESS OF BUFFER CONTAINING
  6491. * DISPLAY DATA.
  6492. *
  6493. * EXIT TO *CPMX* IF FUNCTION ALLOWED AND COMPLETED.
  6494. * TO *RCL* IF *CPM* RECALLED.
  6495. *
  6496. * ERROR TO *ABORT* IF USER NOT VALIDATED FOR FUNCTION.
  6497.  
  6498.  
  6499. SOD ENTRY
  6500. RJM CUA CHECK USER ACCESS
  6501. ZJN SOD1 IF SYSTEM ORIGIN PRIVILEGES
  6502. LDD CM
  6503. ZJN SOD1 IF *CMNT* ACCESS
  6504. LDD CP
  6505. ADK AACW
  6506. CRD CM
  6507. LDD CM+4
  6508. SHN 21-4
  6509. MJN SOD1 IF *CSOJ* PRIVILEGES
  6510. ABORT ERIU * CPM - USER ACCESS NOT VALID.*
  6511.  
  6512. SOD1 LDC LDSP SET BUFFER ADDRESS
  6513. CRD CM+1
  6514. LDD CM+3
  6515. SHN 14
  6516. LMD CM+4
  6517. SBN LODS
  6518. STD CM+4
  6519. STM SODA+1
  6520. STM SODB+1
  6521. SHN -14
  6522. STD CM+3
  6523. RAM SODA
  6524. STM SODB
  6525. LDN 0
  6526. STD CM+2
  6527. STD CM+1
  6528. LDD CP SET JSN
  6529. ADN TFSW
  6530. CRD FN
  6531. SFA EJT,FN
  6532. ERRNZ JSNE IF NOT WORD 0 OF EJT ENTRY
  6533. CRD FN
  6534. MONITOR UTEM INTERLOCK OPERATOR DISPLAY BUFFER
  6535. LDD CM+1
  6536. ZJN SOD2 IF BUFFER INTERLOCKED
  6537. LJM RCL RECALL REQUEST
  6538.  
  6539. SOD2 STD FN+2 SET JSN IN BUFFER
  6540. STD FN+3
  6541. LDN 1
  6542. STD FN+4
  6543. SODA LDC *
  6544. CWD FN
  6545. LDN 7 COPY MESSAGE TO BUFFER
  6546. STD T1
  6547. RJM CKA
  6548. CRM BFMS,T1
  6549. SODB LDC **
  6550. ADN 1
  6551. CWM BFMS,T1
  6552. LDD RA SET *CFO* FLAG IN RA+0
  6553. SHN 6
  6554. CRD CM
  6555. LDD CM+3
  6556. SCN 4
  6557. LMN 4
  6558. STD CM+3
  6559. LDD RA
  6560. SHN 6
  6561. CWD CM
  6562. LDN 1 SET OPERATOR DISPLAY FLAG
  6563. STD CM+1
  6564. LDC OPRL
  6565. STD CM+4
  6566. LDN 0
  6567. STD CM+2
  6568. STD CM+3
  6569. LDD MA
  6570. CWM SODC,ON
  6571. MONITOR UTEM
  6572. LJM CPMX EXIT
  6573.  
  6574.  
  6575. SODC VFD 6/0,6/1,6/59D,42/1 *UTEM* PARAMETER WORD
  6576. SSC SPACE 4,10
  6577. *** FUNCTION 113.
  6578. * SET *SHELL* PROCESSING CONTROLS.
  6579. *
  6580. * THIS FUNCTION SETS THE *SHELL* PROCESSING CONTROLS IN
  6581. * THE USER-S NFL AND RETURNS THE PREVIOUS CONTROLS FROM
  6582. * NFL TO THE USER-S PARAMETER WORD.
  6583. *
  6584. *T,ADDR 42/NAME,6/,1/X,3/,1/E,1/A,1/L,1/G,1/S,1/C,1/O,1/I
  6585. *
  6586. * NAME = 1-7 CHARACTER NAME OF SHELL PROGRAM.
  6587. * X = CURRENTLY EXECUTING UNDER SHELL CONTROL.
  6588. * (IGNORED FOR SETTING NEW CONTROL INFORMATION)
  6589. * E = CLEAR CONTROLS ON SHELL LOAD ERROR.
  6590. * A = CLEAR CONTROLS IF SHELL PROGRAM ABORTS.
  6591. * L = ALLOW SHELL PROGRAM LOAD FROM LOCAL FILE.
  6592. * G = ALLOW SHELL PROGRAM LOAD FROM GLOBAL LIBRARY.
  6593. * S = ALLOW SHELL PROGRAM LOAD FROM SYSTEM LIBRARY.
  6594. * C = CALL SHELL IF NO MORE COMMANDS (INTERACTIVE).
  6595. * O = CALL SHELL FOR COMMANDS OUTSIDE PROCEDURES.
  6596. * I = CALL SHELL FOR COMMANDS INSIDE A PROCEDURE.
  6597. *
  6598. * ENTRY (IR+3 - IR+4) = ADDRESS OF *SHELL* CONTROL.
  6599.  
  6600.  
  6601. SSC6 ABORT ERSC * CPM - MISSING *SHELL* LOAD OPTION.*
  6602.  
  6603. SSC7 ABORT ERSE * EPILOGUE AND SHELL CONFLICT.*
  6604.  
  6605. SSC8 ABORT ERSF * CPM - INCORRECT *SHELL* FILE.*
  6606.  
  6607. SSC ENTRY
  6608. RJM CKA
  6609. CRD FN
  6610. LDD FN
  6611. ZJN SSC3 IF CLEARING CONTROL
  6612. SSC1 LDD FN+4
  6613. LPN 70
  6614. ZJN SSC6 IF LOAD OPTION NOT SPECIFIED
  6615. LDD CP CHECK PROJECT EPILOGUE REQUIRED
  6616. ADN CSPW
  6617. CRD CN
  6618. LDD CN
  6619. SHN 21-3
  6620. PJN SSC2 IF PROJECT EPILOGUE NOT REQUIRED
  6621. LDD FN+4
  6622. SHN 21-6
  6623. PJN SSC7 IF NO ABORT SHELL REQUESTED
  6624. SSC2 LDD FN+4
  6625. LPN 40
  6626. SSC3 ZJN SSC5 IF LOCAL FILE LOAD OPTION NOT SELECTED
  6627. RJM SAF
  6628. SSC4 ZJN SSC8 IF FILE NOT FOUND
  6629. NFA FA,R CHECK FOR FILE ON MASS STORAGE
  6630. ADN FSTL
  6631. CRD CM
  6632. LDD CM
  6633. SFA EST
  6634. ADK EQDE
  6635. CRD CM
  6636. LDD CM
  6637. SHN 0-13
  6638. ZJN SSC4 IF FILE NOT ON MASS STORAGE
  6639. LDD FS+4
  6640. SCN NDST
  6641. LMN NDST
  6642. STD FS+4
  6643. LDD FS+3 SET WRITE LOCKOUT
  6644. SCN 1
  6645. LMN 1
  6646. STD FS+3
  6647. NFA FA,R UPDATE THE FNT ENTRY
  6648. CWD FS
  6649. SSC5 NFA SHCN COPY *SHELL* CONTROL TO NFL
  6650. CRD CN
  6651. CWD FN
  6652. RJM CKA COPY OLD DATA TO USER
  6653. CWD CN
  6654. LJM CPMX EXIT
  6655. RSC SPACE 4,20
  6656. *** FUNCTION 123.
  6657. * RETURN SERVICE CLASS INFORMATION.
  6658. *
  6659. * THIS FUNCTION RETURNS A LIST OF SERVICE CLASSES AND
  6660. * ASSOCIATED PRIORITIES WHICH ARE VALID
  6661. * FOR THE CALLER AND THE SPECIFIED ORIGIN TYPE.
  6662. *
  6663. * ENTRY (IR+3 - IR+4) = PARAMETER BLOCK ADDRESS.
  6664. *
  6665. * PARAMETER BLOCK FORMAT.
  6666. *
  6667. *T ADDR 24/ 0, 12/ OT, 12/ LEN, 11/ STAT, 1/C
  6668. *T,ADDR+1 12/ SC, 12/ 0, 12/ IN, 12/ EX, 12/ OUT
  6669. *T, 60/ .
  6670. *T, 60/ .
  6671. *T, 60/ .
  6672. *T,ADDR+N 12/ SC, 12/ 0, 12/ IN, 12/ EX, 12/ OUT
  6673. *
  6674. * *ADDR* MUST BE SET UP BY THE CALLER. *CPM* WILL UPDATE
  6675. * *ADDR* AND ALSO RETURN *ADDR+1* TO *ADDR+N*.
  6676. *
  6677. * *OT* = ORIGIN TYPE FOR WHICH A LIST OF VALID SERVICE
  6678. * CLASSES IS TO BE RETURNED. *OT* IS REQUIRED.
  6679. * *LEN* = MAXIMUM NUMBER OF SERVICE CLASSES TO RETURN.
  6680. * *CPM* WILL UPDATE THIS FIELD TO THE ACTUAL NUMBER
  6681. * OF SERVICE CLASSES RETURNED.
  6682. * *STAT* = ERROR STATUS. THIS MUST BE ZERO ON THE
  6683. * CALL. VALUES RETURNED BY *CPM* ARE -
  6684. * 0 = NO ERROR.
  6685. * 1 = INCORRECT LENGTH. (LENGTH = 0)
  6686. * 2 = INCORRECT ORIGIN TYPE.
  6687. * 3 = COMPLETE BIT SET.
  6688. * *C* = COMPLETE BIT. MUST BE ZERO ON CALL. *CPM* WILL
  6689. * SET TO ONE ON COMPLETION OF PROCESSING.
  6690. * *SC* = TWO CHARACTER DISPLAY CODE SERVICE CLASS MNEMONIC.
  6691. * *IN* = LOWER BOUND PRIORITY FOR INPUT FILES IN THIS
  6692. * SERVICE CLASS.
  6693. * *EX* = UPPER BOUND PRIORITY FOR EXECUTING JOBS IN THIS
  6694. * SERVICE CLASS.
  6695. * *OUT* = LOWER BOUND PRIOTITY FOR OUTPUT FILES IN THIS
  6696. * SERVICE CLASS.
  6697. *
  6698. * EXIT INFORMATION RETURNED TO PARAMETER BLOCK.
  6699. *
  6700. * USES T3, T4, T5, T6, T7, BA - BA+4, CM - CM+4, CN - CN+4,
  6701. * FN - FN+4.
  6702. *
  6703. * CALLS CKA.
  6704. *
  6705. * MACROS NFA, SFA.
  6706.  
  6707.  
  6708. RSC ENTRY
  6709. LDN 0 GET FIRST WORD OF PARAMETER BLOCK
  6710. STD T1
  6711. RJM CKA CHECK ADDRESS
  6712. CRD CM
  6713. LDD CM+4
  6714. SHN 21-0
  6715. PJN RSC3 IF COMPLETE BIT NOT SET
  6716. LDN 3 SET ERROR STATUS
  6717. RSC1 SHN 1
  6718. ADN 1 SET COMPLETE BIT
  6719. STD CM+4
  6720. RJM CKA UPDATE FIRST WORD OF BLOCK
  6721. CWD CM
  6722. LJM CPMX RETURN
  6723.  
  6724. RSC2 LDN 1 INCORRECT BUFFER LENGTH
  6725. UJN RSC1 SET ERROR STATUS
  6726.  
  6727. RSC3 LDD CM+3 CHECK LENGTH PARAMETER
  6728. ZJN RSC2 IF NO BUFFER SPACE ALLOCATED
  6729. STD T1
  6730. STD T2
  6731. RJM CKA CHECK ADDRESS
  6732. LDD CM+2 CHECK ORIGIN TYPE
  6733. STD T3
  6734. SBN PLSC
  6735. MJN RSC5 IF VALID ORIGIN TYPE
  6736. RSC4 LDN 2
  6737. UJN RSC1 SET ERROR STATUS
  6738.  
  6739. RSC5 LDK JBCP GET *SCT* ENTRY
  6740. CRD CM
  6741. LDD CM
  6742. SHN 14
  6743. ADD CM+1
  6744. ADD T3
  6745. CRD CN
  6746. LDN MXJC SET MAXIMUM NUMBER OF CLASSES TO RETURN
  6747. SBD T2
  6748. PJN RSC6 IF LESS THAN MAXIMUM TO BE RETURNED
  6749. LDN MXJC RESET NUMBER OF SERVICE CLASSES TO RETURN
  6750. STD T2
  6751. RSC6 LDN 0
  6752. STD T3 INITIALIZE SERVICE CLASS INDEX
  6753. STD T6
  6754. LDN 1
  6755. STD T4 INITIALIZE BUFFER INDEX
  6756. LDN 2+1 SET BYTE INDEX FOR VALIDATION MASK
  6757. STD T5
  6758. LCN 12D
  6759. RSC7 ADN 12D RESET SERVICE CLASS INDEX
  6760. RAD T6
  6761. STD T3
  6762. SOD T5
  6763. MJP RSC10 IF END OF MASK
  6764. NFA SCVN GET VALIDATION MASK
  6765. CRD CM
  6766. LDM CN+2,T5 GET BITS FOR VALID SERVICE CLASSES
  6767. STM RSCA
  6768. LDM CM+2,T5
  6769. LPC 0
  6770. RSCA EQU *-1 (*SCT* VALIDATION BITS)
  6771. STD CN
  6772. RSC8 LDD CN
  6773. ZJN RSC7 IF END OF SERVICE CLASSES
  6774. SHN 21
  6775. STD CN
  6776. PJN RSC9 IF SERVICE CLASS NOT ALLOWED
  6777. SFA JCB,T3 GET PRIORITIES
  6778. ADK INQT
  6779. CRD BA
  6780. ADK EXQT-INQT
  6781. CRD FN
  6782. ADN OTQT-EXQT
  6783. CRD UN
  6784. LDN ZERL
  6785. CRD CM
  6786. LDM TSCM,T3 SET SERVICE CLASS
  6787. STD CM
  6788. LDD UN+1 SET OUTPUT FILE PRIORITY
  6789. STD CM+4
  6790. LDD FN+2 SET EXECUTING JOB PRIORITY
  6791. STD CM+3
  6792. LDD BA+1 SET INPUT FILE PRIORITY
  6793. STD CM+2
  6794. RJM CKA ENTER INTO BUFFER
  6795. ADD T4
  6796. CWD CM
  6797. AOD T4 INCREMENT BUFFER INDEX
  6798. LDD T2
  6799. SBD T4
  6800. MJN RSC10 IF BUFFER FULL
  6801. RSC9 AOD T3 INCREMENT SERVICE CLASS INDEX
  6802. SBN MXJC
  6803. MJP RSC8 IF MORE SERVICE CLASSES TO PROCESS
  6804.  
  6805. * COMPLETE PROCESSING.
  6806.  
  6807. RSC10 LDN 0 GET FIRST WORD OF BLOCK
  6808. STD T1
  6809. RJM CKA
  6810. CRD CM
  6811. SOD T4 SET NUMBER OF CLASSES RETURNED
  6812. STD CM+3
  6813. LDN 1 SET COMPLETE BIT / CLEAR ERROR STATUS
  6814. STD CM+4
  6815. RJM CKA
  6816. CWD CM
  6817. LJM CPMX RETURN
  6818. TSCM SPACE 4
  6819. ** TSCM - TABLE OF SERVICE CLASS MNEMONICS.
  6820.  
  6821.  
  6822. TSCM INDEX
  6823. LIST D
  6824. .SCL HERE
  6825. LIST *
  6826. INDEX MXSC
  6827. ERRMSG SPACE 4,20
  6828. *** FUNCTION 135.
  6829. *
  6830. * ENABLE/DISABLE TERMINAL ERROR MESSAGES.
  6831. *
  6832. * ENABLE OR DISABLE THE ECHOING OF *MS1W*/*MS2W*
  6833. * ERROR MESSAGES TO THE TERMINAL BY *1RO*. ERROR MESSAGE
  6834. * ECHOING CAN ONLY BE DISABLED FOR THE DURATION OF A
  6835. * *CCL* PROCEDURE. ERROR MESSAGE PROCESSING REVERTS TO
  6836. * NORMAL AFTER THE *CCL* PROCEDURE IS COMPLETED AND THE
  6837. * USER RETURNS TO INTERACTIVE COMMAND MODE.
  6838. *
  6839. * ENTRY (IR+3 - IR+4) = ADDR.
  6840. *T ADDR 59/0,1/F
  6841. * F=0, IF TERMINAL ERROR MESSAGES TO BE ENABLED.
  6842. * F=1, IF TERMINAL ERROR MESSAGES TO BE DISABLED.
  6843. *
  6844. * EXIT TERMINAL ERROR MESSAGES ENABLED/DISABLED.
  6845. *
  6846. * USES CM - CM+4, CN - CN+4.
  6847. *
  6848. * CALLS CKA.
  6849.  
  6850.  
  6851. ERM ENTRY
  6852. RJM CKA GET ADDRESS OF VALUE
  6853. CRD CM
  6854. LDD CP CLEAR OLD VALUE OF ERROR MESSAGE FLAG
  6855. ADK CSPW
  6856. CRD CN
  6857. LDD CN
  6858. SCN 40
  6859. STD CN
  6860. LDD CM+4 SET NEW VALUE OF ERROR MESSAGE FLAG
  6861. LPN 1
  6862. SHN 5-0
  6863. RAD CN
  6864. LDD CP
  6865. ADK CSPW
  6866. CWD CN
  6867. LJM CPMX RETURN
  6868. ACP SPACE 4,20
  6869. *** FUNCTION 140.
  6870. *
  6871. * ASSIGN A CONCURRENT PP TO THE CONTROL POINT.
  6872. *
  6873. * ENTRY (IR+3 - IR+4) = PARAMETER BLOCK ADDRESS.
  6874. *
  6875. * PARAMETER BLOCK FORMAT.
  6876. *
  6877. *T ADDR 36/ 0, 12/ CCH, 11/ STAT, 1/C
  6878. *T,ADDR+1 60/ RA+1 CALL
  6879. *
  6880. * CCH = CONCURRENT CHANNEL REQUIRED BY THE CPP.
  6881. * STAT = STATUS REPLY,
  6882. * 0, IF CPP ASSIGNED.
  6883. * 1, IF CPP NOT ASSIGNED.
  6884. * C = COMPLETION BIT.
  6885. * RA+1 CALL = CPP *IR* REGISTER IMAGE.
  6886. *
  6887. * USES T1, CM - CM+4, CN - CN+4, FN - FN+4.
  6888. *
  6889. * CALLS CKA.
  6890.  
  6891.  
  6892. ACP4 ABORT ERCI * CPM - HARDWARE DOES NOT SUPPORT CPP-S.*
  6893.  
  6894. ACP ENTRY
  6895. LDK CPPL CHECK FOR CPP-S DEFINED
  6896. CRD CM
  6897. LDD CM+3
  6898. LPN 77
  6899. ZJN ACP4 IF NO CPP-S DEFINED
  6900. LDN 0 READ PARAMETER BLOCK
  6901. STD T1
  6902. RJM CKA
  6903. CRM CN,ON
  6904. CRD FN
  6905. LDD FN+1
  6906. LPN 20
  6907. ZJN ACP1 IF RECALL BIT NOT SET
  6908. LDD FN+1 MOVE RECALL BIT
  6909. SCN 60
  6910. LMN 40
  6911. STD FN+1
  6912. LDD IR+1 CLEAR RECALL BIT FOR *CPM* CALL
  6913. SCN 40
  6914. STD IR+1
  6915. ACP1 LDD MA SET UP CPP CALL
  6916. CWD FN
  6917. LDN 1 SELECT NO QUEUEING
  6918. STD CM+1
  6919. LDD CN+3
  6920. SCN 40
  6921. STD CM+4
  6922. LDN 4 COMPUTE CPP BARREL SELECT
  6923. SBD CM+4
  6924. SHN 0-21
  6925. ADN 2
  6926. STD CM+4
  6927. MONITOR CPRM REQUEST A CONCURRENT PP
  6928. LDD CM+1
  6929. NJN ACP2 IF CPP ASSIGNED
  6930. LDN 2
  6931. RAD CN+4
  6932. UJN ACP3 RETURN ERROR STATUS
  6933.  
  6934. ACP2 LDD IA REWRITE INPUT REGISTER
  6935. CWD IR
  6936. ACP3 AOD CN+4 SET COMPLETE BIT
  6937. RJM CKA RETURN RESPONSE
  6938. CWD CN
  6939. LJM CPMX EXIT
  6940. PAM SPACE 4,20
  6941. *** FUNCTION 141.
  6942. * RETURN PRIVILEGED ANALYST STATUS.
  6943. *
  6944. * ENTRY (IR+3 - IR+4) = STATUS RETURN ADDRESS.
  6945. *
  6946. * EXIT IF STATUS RETURN ADDRESS SPECIFIED -
  6947. * (ADDR) = 48/0, 12/STATUS
  6948. * STATUS = 0, IF USER HAS *CPAM* VALIDATION
  6949. * AND IF *PRIVILEGED ANALYST MODE*
  6950. * IS ENABLED.
  6951. * STATUS .NE. 0 OTHERWISE.
  6952. *
  6953. * IF STATUS RETURN ADDRESS NOT SPECIFIED -
  6954. * USER JOB ABORTED, IF USER DOES NOT HAVE *CPAM*
  6955. * VALIDATION OR IF *PRIVILEGED ANALYST MODE*
  6956. * IS DISABLED.
  6957.  
  6958.  
  6959. PAM ENTRY
  6960. LDN ZERL CLEAR REPLY
  6961. CRD CN
  6962. RJM VPA VALIDATE PRIVILEGED ANALYST
  6963. STD CN+4 SAVE STATUS
  6964. LDD IR+3
  6965. LPN 37
  6966. SHN 14
  6967. LMD IR+4
  6968. ZJN PAM2 IF NO ADDRESS SPECIFIED
  6969. RJM CKA CHECK ADDRESS
  6970. CWD CN RETURN STATUS
  6971. PAM1 LJM CPMX EXIT
  6972.  
  6973. PAM2 LDD CN+4
  6974. ZJN PAM1 IF PRIVILEGED ACCESS ALLOWED
  6975. ABORT ERIU * CPM - USER ACCESS NOT VALID.*
  6976. GSL SPACE 4,20
  6977. *** FUNCTION 142.
  6978. * GET SYSTEM LIBRARY STATUS.
  6979. *
  6980. * ENTRY (IR+3 - IR+4) = PARAMETER WORD ADDRESS.
  6981. * (ADDR) = 42/LIBRARY NAME, 18/0
  6982. *
  6983. * EXIT (ADDR) = 42/LIBRARY NAME, 17/, 1/STATUS
  6984. * STATUS = 1, IF *LIBRARY NAME* IS PRESENT IN
  6985. * SYSTEM LIBRARY DIRECTORY, AND
  6986. * LIBRARY ORDINAL IS IN RANGE.
  6987. * STATUS = 0, OTHERWISE.
  6988.  
  6989.  
  6990. GSL ENTRY
  6991. RJM CKA CHECK ADDRESS
  6992. CRD FN READ LIBRARY NAME
  6993. RJM LBD SEARCH LIBRARY DIRECTORY
  6994. ZJN GSL1 IF NOT VALID LIBRARY
  6995. LDN 1 SET *LIBRARY FOUND* STATUS
  6996. GSL1 STD FN+4 SET STATUS
  6997. RJM CKA CHECK ADDRESS
  6998. CWD FN RETURN STATUS
  6999. LJM CPMX EXIT
  7000. GSC SPACE 4,10
  7001. *** FUNCTION 143.
  7002. * GET *SHELL* PROCESSING CONTROLS.
  7003. *
  7004. * THIS FUNCTION GETS THE *SHELL* PROCESSING CONTROLS FROM
  7005. * THE USER-S NFL AND RETURNS THEM TO THE USER. SEE FUNCTION
  7006. * 113 (*SSC*) FOR THE FORMAT OF *SHELL* PROCESSING CONTROLS.
  7007. *
  7008. * ENTRY (IR+3 - IR+4) = ADDRESS OF WORD TO RECEIVE
  7009. * *SHELL* PROCESSING CONTROLS.
  7010.  
  7011.  
  7012. GSC ENTRY
  7013. NFA SHCN GET *SHELL* CONTROL FROM NFL
  7014. CRD CN
  7015. RJM CKA COPY CONTROLS TO USER
  7016. CWD CN
  7017. LJM CPMX EXIT
  7018. SIC SPACE 4,30
  7019. *** FUNCTION 144.
  7020. * SET INTER-CONTROL POINT COMMUNCIATION CONTROLS.
  7021. *
  7022. * ENTRY (IR+3 - IR+4) = PARAMETER WORD ADDRESS.
  7023. *
  7024. * EXIT INTER-CONTROL POINT COMMUNICATION CONTROLS UPDATED.
  7025. *
  7026. * PARAMETER WORD FORMAT.
  7027. *
  7028. *T ADDR 1/T,11/ RES,6/ LEN0,18/ ADD0,6/ LEN1,12/ ADD1
  7029. *
  7030. * T *TDAM* FUNCTION WRITE CONTROL.
  7031. * 0 = DISABLE *TDAM* WRITES TO SUBSYSTEM.
  7032. * 1 = ENABLE *TDAM* WRITES TO SUBSYSTEM.
  7033. * RES RESERVED FOR CDC.
  7034. * LEN0 LENGTH - 1 OF BUFFER 0.
  7035. * ADD0 ADDRESS OF BUFER 0.
  7036. * LEN1 LENGTH - 1 OF BUFFER 1.
  7037. * ADD1 ADDRESS OF BUFER 1.
  7038.  
  7039.  
  7040. SIC ENTRY
  7041. LDD CP CHECK IF CALLER IS A SUBSYSTEM
  7042. ADK JCIW
  7043. CRD CM
  7044. LDC LSSI
  7045. SBD CM+2
  7046. MJN SIC1 IF SUBSYSTEM
  7047. ABORT ERAE * CPM - ARGUMENT ERROR.*
  7048.  
  7049. SIC1 RJM CKA READ PARAMETER WORD
  7050. CRD CM
  7051. LDN CM+1 SET BUFFER 0
  7052. RJM CBA CHECK BUFFER ADDRESS
  7053. LDN CM+3 SET BUFFER 1
  7054. RJM CBA CHECK BUFFER ADDRESS
  7055. LDD CM
  7056. LPC 4000 SET *TDAM* WRITE CONTROL
  7057. STD CM
  7058. NFA ICAN WRITE INTER-CP CONTROLS TO NFL
  7059. CWD CM
  7060. LJM CPMX EXIT
  7061. GTD SPACE 4,55
  7062. *** FUNCTION 145.
  7063. * GET TAPE DEFAULTS.
  7064. *
  7065. * ENTRY (IR+3 - IR+4) = PARAMETER BLOCK ADDRESS.
  7066. *
  7067. * EXIT TAPE DEFAULT VALUES RETURNED TO PARAMETER BLOCK.
  7068. *
  7069. * PARAMETER BLOCK ON EXIT.
  7070. *
  7071. *T ADDR 30/ RES,3/JCV,2/JD,1/R,3/JMD,3/JND,18/ RES
  7072. *T, 30/ RES,3/SCV,2/SD,1/R,3/SMD,3/SND,18/ RES
  7073. *
  7074. * RES RESERVED FOR CDC.
  7075. * JCV JOB DEFAULT CONVERSION MODE FOR 9 TRACK AND CARTRIDGE
  7076. * TAPE.
  7077. * 2 = ASCII.
  7078. * 3 = EBCDIC.
  7079. * JD JOB DEFAULT TAPE DEVICE TYPE.
  7080. * 0 = MT.
  7081. * 1 = CT.
  7082. * 2 = NT.
  7083. * 3 = AT.
  7084. * JMD JOB DEFAULT MT TAPE DENSITY.
  7085. * 1 = 556 BPI.
  7086. * 2 = 200 BPI.
  7087. * 3 = 800 BPI.
  7088. * RES RESERVED FOR CDC.
  7089. *
  7090. * RES RESERVED FOR CDC.
  7091. * JND JOB DEFAULT NT TAPE DENSITY.
  7092. * 3 = 800 BPI.
  7093. * 4 = 1600 BPI.
  7094. * 5 = 6250 CPI.
  7095. * SCV SYSTEM DEFAULT CONVERSION MODE FOR 9 TRACK AND
  7096. * CARTRIDGE TAPE.
  7097. * 2 = ASCII.
  7098. * 3 = EBCDIC.
  7099. * SD SYSTEM DEFAULT TAPE DEVICE TYPE.
  7100. * 0 = 7 TRACK.
  7101. * 1 = CARTRIDGE.
  7102. * 2 = 9 TRACK.
  7103. * 3 = ACS CARTRIDGE.
  7104. * SMD SYSTEM DEFAULT MT TAPE DENSITY.
  7105. * 1 = 556 BPI.
  7106. * 2 = 200 BPI.
  7107. * 3 = 800 BPI.
  7108. * SND SYSTEM DEFAULT NT TAPE DENSITY.
  7109. * 3 = 800 BPI.
  7110. * 4 = 1600 BPI.
  7111. * 5 = 6250 CPI.
  7112. * RES RESERVED FOR CDC.
  7113.  
  7114.  
  7115. GTD ENTRY
  7116. NFA TDFN GET JOB TAPE DEFAULTS
  7117. CRD CM
  7118. LDK IPRL GET SYSTEM TAPE DEFAULTS
  7119. CRD BA
  7120. LDN ZERL CLEAR ASSEMBLY
  7121. CRD CN
  7122. LDD BA+3
  7123. LPN 7
  7124. SHN 3
  7125. STD CN+2 SET SYSTEM DEFAULT CONVERSION MODE
  7126. LDD BA+4
  7127. LPN 60
  7128. SHN -3
  7129. RAD CN+2 SET SYSTEM DEFAULT DEVICE TYPE
  7130. LDD BA+4
  7131. LPN 3
  7132. SHN 11
  7133. STD CN+3 SET MT TAPE DEFAULT DENSITY
  7134. LDD BA+4
  7135. LPC 700
  7136. RAD CN+3 SET NT TAPE DEFAULT DENSITY
  7137. LDN 1 SET WORD COUNT
  7138. STD T1
  7139. RJM CKA SET PARAMETER BLOCK ADDRESS
  7140. CWD CM WRITE JOB TAPE DEFAULTS
  7141. ADN 1 WRITE SYSTEM TAPE DEFAULTS
  7142. CWD CN
  7143. LJM CPMX EXIT
  7144. STD SPACE 4,30
  7145. *** FUNCTION 146.
  7146. * SET TAPE DEFAULTS FOR JOB.
  7147. *
  7148. * ENTRY (IR+3 - IR+4) = PARAMETER BLOCK ADDRESS.
  7149. *
  7150. * EXIT JOB TAPE DEFAULTS SET.
  7151. *
  7152. * PARAMETER BLOCK FORMAT.
  7153. *
  7154. *T ADDR 30/ RES,3/CVM,2/DT,1/R,3/MTD,3/NTD,18/ RES
  7155. *
  7156. * RES RESERVED FOR CDC.
  7157. * CVM CONVERSION MODE FOR 9 TRACK AND CARTRIDGE TAPE.
  7158. * 2 = ASCII.
  7159. * 3 = EBCDIC.
  7160. * DT TAPE DEVICE TYPE.
  7161. * 0 = 7 TRACK.
  7162. * 1 = CARTRIDGE.
  7163. * 2 = 9 TRACK.
  7164. * 3 = ACS CARTRIDGE.
  7165. * MTD MT TAPE DENSITY.
  7166. * 1 = 556 BPI.
  7167. * 2 = 200 BPI.
  7168. * 3 = 800 BPI.
  7169. * NTD NT TAPE DENSITY.
  7170. * 3 = 800 BPI.
  7171. * 4 = 1600 BPI.
  7172. * 5 = 6250 CPI.
  7173. * RES RESERVED FOR CDC.
  7174.  
  7175.  
  7176. STD ENTRY
  7177. RJM CKA GET PARAMETERS
  7178. CRD CM
  7179. LDN ZERL CLEAR ASSEMBLY
  7180. CRD CN
  7181. LDD CM+2
  7182. LPN 76
  7183. STD CN+2 SET CONVERSION MODE AND DEVICE TYPE
  7184. SHN -3
  7185. SBN 2
  7186. MJN STD1 IF INCORRECT CONVERSION MODE
  7187. SBN 4-2
  7188. PJN STD1 IF INCORRECT CONVERSION MODE
  7189. LDD CM+3
  7190. LPC 7700
  7191. STD CN+3 SET 7 AND 9 TRACK DENSITY
  7192. SHN -11
  7193. ZJN STD1 IF INCORRECT 7 TRACK DENSITY
  7194. SBN 4
  7195. PJN STD1 IF INCORRECT 7 TRACK DENSITY
  7196. LDD CM+3
  7197. SHN -6
  7198. LPN 7
  7199. SBN 3
  7200. MJN STD1 IF INCORRECT 9 TRACK DENSITY
  7201. SBN 6-3
  7202. PJN STD1 IF INCORRECT 9 TRACK DENSITY
  7203. NFA TDFN UPDATE JOB TAPE DEFAULTS
  7204. CWD CN
  7205. LJM CPMX EXIT
  7206.  
  7207. STD1 ABORT ERAE * CPM - ARGUMENT ERROR.*
  7208. GFN SPACE 4,15
  7209. *** FUNCTION 147.
  7210. * GET FAMILY ORDINAL AND FAMILY NAME.
  7211. *
  7212. * ENTRY (IR+3 - IR+4) = STATUS WORD ADDRESS.
  7213. *
  7214. * EXIT FAMILY ORDINAL AND FAMILY NAME RETURNED TO STATUS
  7215. * WORD.
  7216. *
  7217. * STATUS WORD FORMAT.
  7218. *
  7219. *T ADDR 42/ FAMN,6/ 0,12/ FAMO
  7220. *
  7221. * FAMN FAMILY NAME (0 IF NO FAMILY).
  7222. * FAMO FAMILY ORDINAL (0 IF NO FAMILY).
  7223.  
  7224.  
  7225. GFN ENTRY
  7226. LDN ZERL CLEAR FAMILY NAME AND ORDINAL
  7227. CRD FN
  7228. LDD CP
  7229. ADK PFCW GET FAMILY EST ORDINAL
  7230. CRD CM
  7231. LDD CM+3
  7232. ZJN GFN1 IF NO FAMILY
  7233. SFA EST
  7234. ADK EQDE GET MST ADDRESS
  7235. CRD CM
  7236. LDD CM+4
  7237. SHN 3
  7238. ADK PFGL GET FAMILY NAME
  7239. CRD FN
  7240. RJM GFO GET FAMILY ORDINAL
  7241. GFN1 LDN 0 SET WORD COUNT - 1
  7242. STD T1
  7243. RJM CKA CHECK ADDRESS
  7244. CWD FN RETURN FAMILY NAME AND FAMILY ORDINAL
  7245. LJM CPMX EXIT
  7246. TITLE SUBROUTINES.
  7247. CBA SPACE 4,10
  7248. ** CBA - CHECK INTER-CONTROL POINT BUFFER ADDRESS.
  7249. *
  7250. * ENTRY (A) = ADDRESS OF BUFFER POINTERS.
  7251. *
  7252. * EXIT TO CALLER IF NO ERROR.
  7253. * TO *ABT* IF BUFFER POINTER ERROR.
  7254. *
  7255. * USES T1, T2.
  7256. *
  7257. * MACROS ABORT.
  7258.  
  7259.  
  7260. CBA SUBR ENTRY/EXIT
  7261. STD T1 SET BUFFER POINTERS ADDRESS
  7262. LDI T1
  7263. SHN -6
  7264. STD T2 SET BUFFER LENGTH - 1
  7265. LDI T1 SET BUFFER ADDRESS
  7266. LPN 77
  7267. SHN 14
  7268. LMM 1,T1
  7269. ZJN CBA1 IF NO BUFFER DEFINED
  7270. MJN CBA2 IF BUFFER ADDRESS ERROR
  7271. ADD T2
  7272. SHN -6
  7273. SBD FL
  7274. MJN CBAX IF BUFFER WITHIN FL
  7275. UJN CBA2 ABORT
  7276.  
  7277. CBA1 LDD T2
  7278. ZJN CBAX IF NO BUFFER LENGTH DEFINED
  7279. CBA2 ABORT ERAE * CPM - ARGUMENT ERROR.*
  7280. LBD SPACE 4,15
  7281. ** LBD - SEARCHES THE LIBRARY DIRECTORY FOR A SPECIAL ENTRY.
  7282. *
  7283. * ENTRY (FN - FN+4) = LIBRARY NAME LEFT JUSTIFIED.
  7284. *
  7285. * EXIT (A) = NONZERO - MATCH FOUND.
  7286. * (T4) = INDEX + 1 IN LBD.
  7287. * (T4) = 0 - IF NO MATCH.
  7288. * (T4) AND (T8) = ERROR MESSAGE BIAS IF MATCH FOUND BUT
  7289. * ORDINAL OUT OF RANGE.
  7290. *
  7291. * USES T4, T8, CM - CM+4, CN - CN+4.
  7292. *
  7293. * CALLS CFN.
  7294.  
  7295.  
  7296. LBD3 STD T4 CLEAR ENTRY COUNT, ERROR MESSAGE BIAS
  7297. STD T8
  7298.  
  7299. LBD SUBR ENTRY/EXIT
  7300. LDN 1 INITIAL ENTRY COUNT IN *TLBD*
  7301. STD T4
  7302. LDK LBDP READ LBD POINTER
  7303. CRD CM
  7304. LDD CM+2
  7305. UJN LBD2 ENTER LOOP
  7306.  
  7307. LBD1 AOD T4 INCREMENT ENTRY NUMBER
  7308. LDN 2 ADVANCE LBD ADDRESS
  7309. RAD CM+2+1
  7310. SHN -14
  7311. RAD CM+2
  7312. LBD2 SHN 14 READ LBD ENTRY
  7313. ADD CM+2+1
  7314. CRD CN
  7315. LDD CN CHECK FOR MATCH
  7316. ZJN LBD3 IF END OF LBD
  7317. RJM CFN COMPARE FILE NAMES
  7318. NJN LBD1 IF NO MATCH
  7319. LDD T4
  7320. SBN 77
  7321. MJN LBDX IF ORDINAL IN RANGE
  7322. LDN SLSG-SLSD SET ERROR MESSAGE BIAS
  7323. STD T4
  7324. LDN SLSF-SLSC
  7325. STD T8
  7326. LDN 0 SET NO MATCH
  7327. UJN LBDX RETURN
  7328. RLN SPACE 4,10
  7329. ** RLN - RETURN LIBRARY NAME TO USER PROGRAM.
  7330. *
  7331. * ENTRY (BA - BA+1) = RETURN ADDRESS PARAMETER.
  7332. * (FN - FN+4) = LIBRARY NAME.
  7333. *
  7334. * EXIT (BA - BA+1) ADVANCED.
  7335. *
  7336. * MACROS ABORT.
  7337.  
  7338.  
  7339. RLN1 LDD BA RETURN LIBRARY NAME
  7340. LPN 77
  7341. SHN 6
  7342. ADD RA
  7343. SHN 6
  7344. ADD BA+1
  7345. CWD FN
  7346. AOD BA+1 INCREMENT RETURN ADDRESS
  7347. SHN -14
  7348. RAD BA
  7349.  
  7350. RLN SUBR ENTRY/EXIT
  7351. LDD BA VERIFY RETURN ADDRESS
  7352. LPN 77
  7353. SHN 14
  7354. LMD BA+1
  7355. SHN -6
  7356. SBD FL
  7357. MJN RLN1 IF .LT. FL
  7358. ABORT ERAE * CPM - ARGUMENT ERROR.*
  7359. RLW SPACE 4,10
  7360. ** RLW - READ LIBRARY NAME FROM USER PROGRAM.
  7361. *
  7362. * ENTRY (BA - BA+1) = ADDRESS OF NEXT LIBRARY NAME.
  7363. *
  7364. * EXIT (A) = ZERO IF END OF LIBRARY LIST.
  7365. * (BA - BA+1) ADVANCED IF NOT END OF LIST.
  7366. * (FN - FN+4) = LIBRARY NAME.
  7367. *
  7368. * MACROS ABORT.
  7369.  
  7370.  
  7371. RLW1 LDD BA READ LIBRARY NAME
  7372. LPN 77
  7373. SHN 6
  7374. ADD RA
  7375. SHN 6
  7376. ADD BA+1
  7377. CRD FN
  7378. LDD FN
  7379. ZJN RLWX IF END OF LIBRARY LIST
  7380. LDD FN+3 CLEAR UNUSED FIELDS
  7381. SCN 77
  7382. STD FN+3
  7383. LDN 0
  7384. STD FN+4
  7385. AOD BA+1 INCREMENT RETURN ADDRESS
  7386. SHN -14
  7387. RAD BA
  7388. LDD FN
  7389.  
  7390. RLW SUBR ENTRY/EXIT
  7391. LDD BA VERIFY PARAMETER ADDRESS
  7392. LPN 77
  7393. SHN 14
  7394. LMD BA+1
  7395. SHN -6
  7396. SBD FL
  7397. MJN RLW1 IF .LT. FL
  7398. ABORT ERAE * CPM - ARGUMENT ERROR.*
  7399. SPACE 4,10
  7400. ** COMMON DECKS.
  7401.  
  7402.  
  7403. SSJ$ EQU 1 SET *SSJ* CHECKING FOR *COMPCUA*
  7404. QUAL$ EQU 1 SET TO NOT QUALIFY COMMON DECKS
  7405. *CALL COMPACS
  7406. *CALL COMPCUA
  7407. FS EQU UN DEFINE VALUE FOR *COMPSAF*
  7408. *CALL COMPSAF
  7409. GFO$ EQU 1 ASSEMBLE *GFO*
  7410. DFF$ EQU 1 DO NOT ASSEMBLE FOT UPDATE CODE
  7411. *CALL COMPUFT
  7412. *CALL COMPVPA
  7413. SPACE 4,10
  7414. ** BUFFER DEFINITIONS.
  7415.  
  7416.  
  7417. TLBD EQU * LOADER CONTROL/LIBRARY NAMES
  7418. TLBDL EQU 3*5
  7419. LB2T EQU TLBD+TLBDL *LB2W* (SECOND USER LIBRARY)
  7420. LB3T EQU LB2T+5 *LB3W* (FIRST USER LIBRARY)
  7421.  
  7422. BUFL EQU LB3T+5 LWA+1 OF BUFFERS
  7423. ERRNG 7777-BUFL BYTES LEFT IN OVERLAY
  7424. SPACE 4,10
  7425. OVERFLOW OVL
  7426. OVERLAY (*L* DISPLAY FUNCTIONS.)
  7427. SPACE 4,10
  7428. * *DSDOUT*/*DSDINP* STATUS SYMBOLS.
  7429. * (THESE SYMBOLS ARE PROCESSED BY *CPM* FUNCTIONS *TDC* AND
  7430. * *TDU*.)
  7431.  
  7432. NERR EQU 0 NO ERROR
  7433. NBUF EQU 1 NO *L* DISPLAY BUFFER DEFINED IN CMR
  7434. NINL EQU 2 *L* DISPLAY NOT INTERLOCKED
  7435. NDBF EQU 3 DISPLAY BUFFER IN FL TOO LARGE
  7436. NCMD EQU 4 NO COMMAND ENTERED
  7437. NCBF EQU 5 COMMAND BUFFER IN FL TOO SMALL
  7438. SPACE 4,10
  7439. ** DIRECT LOCATION ASSIGNMENTS.
  7440.  
  7441. *CM+5 EQU CM+4+1 SCRATCH
  7442. TDC SPACE 4,30
  7443. *** FUNCTION 102.
  7444. * TRANSFER DATA FROM UTILITY FL TO BUFFER IN CMR.
  7445. *
  7446. * ENTRY (IR+3 - IR+4) = FWA OF DISPLAY BUFFER IN FL OF
  7447. * UTILITY.
  7448. *
  7449. * CALLS CKA, CKR, DJI.
  7450. *
  7451. * THE FORMAT OF THE DISPLAY BUFFER IN THE USER-S FL
  7452. * IS AS FOLLOWS:
  7453. *
  7454. *T 12/N,1/S,1/F,1/A,45/0
  7455. *T, 60/DATA
  7456. *T, 60/DATA
  7457. *T, 60/0
  7458. *
  7459. * CONTROL WORD OPTIONS ARE DEFINED AS FOLLOWS.
  7460. *
  7461. * *N* NUMBER OF WORDS IN THE BUFFER. BUFFER
  7462. * IS TERMINATED WHEN EITHER *N* WORDS ARE
  7463. * TRANSFERRED OR THE ZERO TERMINATOR IS REACHED.
  7464. * *S* CHARACTER SIZE.
  7465. * 0 = SMALL CHARACTER SIZE.
  7466. * 1 = MEDIUM CHARACTER SIZE.
  7467. * *F* DATA FORMAT.
  7468. * 0 = PROGRAM FORMAT.
  7469. * 1 = CODED FORMAT.
  7470. * *A* LINE SPACING.
  7471. * 0 = SINGLE SPACING (10D OR 20D POSITIONS/LINE).
  7472. * 1 = WIDE SPACING (15D OR 30D POSITIONS/LINE).
  7473.  
  7474.  
  7475. TDC ENTRY ENTRY
  7476. RJM CKR CHECK ADDRESS
  7477. LDSY IFEQ LDSY,0
  7478. LDN 2*NBUF+1 SET BUFFER UNDEFINED STATUS
  7479. STD T5
  7480. LDSY ELSE
  7481.  
  7482. TDC1 RJM DJI DETERMINE IF *L* DISPLAY INTERLOCKED
  7483.  
  7484. * TRANSFER DATA FROM USER-S FL.
  7485.  
  7486. LDN 2*NERR+1 SET COMPLETE STATUS
  7487. STD T5
  7488. LDD T1 STORE NUMBER OF WORDS TO TRANSFER
  7489. STD CM
  7490. ZJN TDC3 IF NO WORDS TO TRANSFER
  7491. ADC -LDSY-1
  7492. MJN TDC2 IF DISPLAY BUFFER .GE. WORDS TO TRANSFER
  7493. LDC LDSY
  7494. STD CM
  7495. LDN 2*NDBF+1 SET BUFFER TOO LARGE STATUS
  7496. STD T5
  7497. TDC2 RJM CKA READ BUFFER TO BE DISPLAYED
  7498. ADN 1
  7499. CRM TDCB,CM
  7500. LDD CM SAVE NUMBER OF BYTES TO TRANSFER
  7501. SHN 2
  7502. ADD CM
  7503. TDC3 STD T7
  7504. ADN 2*5 ADD TWO WORDS OF ZEROS
  7505. STD T0
  7506. TDC4 LDN 0
  7507. STM TDCB,T7
  7508. AOD T7
  7509. LMD T0
  7510. NJN TDC4 IF BUFFER NOT ZERO FILLED
  7511.  
  7512. * DETERMINE FWA DISPLAY BUFFER AND WRITE DATA TO CMR.
  7513.  
  7514. LDN 2
  7515. RAD CM ADJUST WORD COUNT FOR TERMINATOR
  7516. LDD CM+3 WRITE DATA TO CMR BUFFER
  7517. SHN 14
  7518. LMD CM+4
  7519. CRD FN SAVE *L* DISPLAY BUFFER CONTROL WORD
  7520. ADN LCOM+1
  7521. CWM TDCB,CM
  7522.  
  7523. * DETERMINE TITLE AND WRITE IT TO CMR.
  7524.  
  7525. RJM CKA GET FWA OF DISPLAY BUFFER
  7526. CRD BA
  7527. LDN 2
  7528. STD T7
  7529. LDD RA GET COMMAND NAME
  7530. SHN 6
  7531. ADK PGNR
  7532. CRM TDCB,ON
  7533. LDM TDCB+3
  7534. SCN 77
  7535. STM TDCB+3
  7536. LDN 0
  7537. STM TDCB+4
  7538. LDD BA+2 CHECK FOR PROGRAM-SUPPLIED TITLE
  7539. LPN 77
  7540. SHN 14
  7541. LMD BA+3
  7542. ZJN TDC4.1 IF NO TITLE
  7543. MJN TDC4.1 IF TITLE ADDRESS IS OUT OF RANGE
  7544. ADN 1
  7545. SHN -6
  7546. SBD FL
  7547. PJN TDC4.1 IF TITLE ADDRESS IS OUT OF RANGE
  7548. LDD BA+2 READ TITLE FROM PROGRAM
  7549. LPN 77
  7550. SHN 6
  7551. ADD RA
  7552. SHN 6
  7553. ADD BA+3
  7554. CRM TDCB,T7
  7555. TDC4.1 LDD CM+3 WRITE TITLE TO CMR BUFFER
  7556. SHN 14
  7557. LMD CM+4
  7558. ADK 1+LCOM+LDSY+2
  7559. CWM TDCB,T7
  7560.  
  7561. * UPDATE *L* DISPLAY CONTROL WORD BITS.
  7562.  
  7563. LDD BA+1 STORE CHARACTER SIZE AND FORMAT
  7564. SHN -12
  7565. STM TDCA+4
  7566. LDD BA+1 STORE LINE SPACING OPTION
  7567. SHN -11
  7568. LPN 1
  7569. STM TDCAA+4
  7570. LDN 4 STORE NUMBER OF OPTIONS TO PROCESS
  7571. STD CM+1
  7572. LDN 0
  7573. STD CM+2
  7574. LDD FN+4 DETERMINE IF *L* DISPLAY DATA AVAILABLE
  7575. SHN 21-3
  7576. PJN TDC5 IF *L* DISPLAY DATA NOT AVAILABLE
  7577. SOD CM+1 STORE NUMBER OF OPTIONS TO PROCESS
  7578. TDC5 LDD MA
  7579. CWM TDCA,CM+1
  7580. MONITOR UTEM UPDATE CONTROL BITS
  7581. LDSY ENDIF
  7582.  
  7583. * STORE STATUS IN USER-S FL.
  7584.  
  7585. RJM CKA
  7586. CWD T1
  7587. LJM CPMX RETURN
  7588. SPACE 4,10
  7589. * *UTEM* BUFFER.
  7590.  
  7591. TDCA VFD 1/0,5/0,6/2,6/1,6/0 SET CHARACTER SIZE AND FORMAT
  7592. CON 0,0,0
  7593. TDCAA VFD 1/0,5/0,6/1,6/6,6/0 SET WIDE LINE SPACING
  7594. CON 0,0,0
  7595. VFD 1/0,5/0,6/1,6/3,6/0 SET DATA AVAILABLE
  7596. CON 0,0,1
  7597. VFD 1/0,5/0,6/1,6/0,6/0 SET *L* DISPLAY REQUESTED
  7598. CON 0,0,1
  7599. SPACE 4,10
  7600. * USE OF THIS BUFFER DESTROYS THE REMAINDER OF THE
  7601. * OVERLAY INCLUDING SOME COMMONLY USED SUBROUTINES.
  7602. SPACE 4,10
  7603. TDCB EQU * *L* DISPLAY DATA TRANSFER BUFFER
  7604.  
  7605. ERRPL TDCB+5*LDSY-7777-5-5 BUFFER OVERFLOW
  7606. TDU SPACE 4,25
  7607. *** FUNCTION 103.
  7608. * TRANSFER DATA FROM CMR BUFFER TO USER-S FL.
  7609. *
  7610. * ENTRY (IR+3 - IR+4) = FWA OF DISPLAY BUFFER IN
  7611. * FL OF UTILITY. IF BIT 11 OF IR+3 IS SET,
  7612. * THEN JSN WILL BE CLEARED.
  7613. *
  7614. * CALLS CKA, CKR, DJI.
  7615. *
  7616. * THE FORMAT OF THE COMMAND BUFFER IN THE USER-S FL
  7617. * IS AS FOLLOWS.
  7618. *
  7619. *T 12/N,48/0
  7620. *T, 60/0
  7621. *T, 60/0
  7622. *T, 60/0
  7623. *
  7624. * CONTROL WORD OPTION IS DEFINED AS FOLLOWS.
  7625. *
  7626. * *N* NUMBER OF WORDS IN THE BUFFER. BUFFER LENGTH
  7627. * MUST BE AT LEAST HALF THE SIZE OF THE CMR COMMAND
  7628. * BUFFER.
  7629.  
  7630.  
  7631. TDU ENTRY ENTRY
  7632. LDD IR+3 STORE CLEAR INTERLOCK FLAG
  7633. STD T6
  7634. LPN 77
  7635. STD IR+3
  7636. RJM CKR CHECK IF ADDRESS IS WITHIN RANGE
  7637. RJM DJI DETERMINE IF *L* DISPLAY INTERLOCKED
  7638. LCOM IFEQ LCOM,0
  7639. LDN 2*NBUF+1 SET BUFFER UNDEFINED STATUS
  7640. LCOM ELSE
  7641. LDD T6 CHECK CLEAR INTERLOCK FLAG
  7642. SHN 21-6
  7643. PJN TDU2 IF NOT CLEARING INTERLOCK
  7644.  
  7645. * CLEAR JSN FIELD, INPUT REQUESTED, AND COMMAND ENTERED BITS.
  7646.  
  7647. LDN 0
  7648. STD CM+2
  7649. LDN 2 STORE NUMBER OF OPTIONS TO PROCESS
  7650. STD CM+1
  7651. LDD MA
  7652. CWM TDUA,CM+1
  7653. MONITOR UTEM
  7654. LDN 2*NERR+1 SET COMPLETE STATUS
  7655. UJN TDU4 RETURN STATUS
  7656.  
  7657. * IF COMMAND NOT ENTERED SET PROGRAM REQUEST INPUT BIT.
  7658.  
  7659. TDU2 LDD BA+4 CHECK IF COMMAND HAS BEEN ENTERED
  7660. SHN 21-5
  7661. MJN TDU3 IF COMMAND ENTERED
  7662. LDN 0 SET COMMAND REQUESTED
  7663. STD CM+2
  7664. LDN 2 STORE NUMBER OF OPTIONS TO PROCESS
  7665. STD CM+1
  7666. LDD MA
  7667. CWM TDUC,CM+1
  7668. MONITOR UTEM
  7669. LDN 2*NCMD+1 SET NO COMMAND STATUS
  7670. UJN TDU4 RETURN STATUS
  7671.  
  7672. * DETERMINE IF USER-S COMMAND BUFFER .GE. *LCOM*/2
  7673.  
  7674. TDU3 LDD T1
  7675. SHN 1
  7676. SBN LCOM
  7677. PJN TDU5 IF USER-S COMMAND BUFFER .GE. *LCOM*/2
  7678. LDN 2*NCBF+1 SET BUFFER TOO SMALL STATUS
  7679. TDU4 LJM TDU8 RETURN STATUS
  7680.  
  7681. * TRANSFER COMMAND BUFFER TO *CPM* BUFFER.
  7682.  
  7683. TDU5 LDN LCOM SET CMR COMMAND BUFFER LENGTH IN BYTES
  7684. STD BA
  7685. LDK LCOM*5
  7686. STD T6
  7687. LDD CM+3 READ UNPACKED DATA FROM CMR BUFFER
  7688. SHN 14
  7689. LMD CM+4
  7690. ADN 1
  7691. CRM CBUF,BA
  7692. LDN ZERL WRITE ZERO TERMINATOR
  7693. CRM CBUF+LCOM*5,ON
  7694.  
  7695. * PACK COMMAND BUFFER.
  7696.  
  7697. LDC CBUF SET ORIGIN ADDRESS
  7698. STD BA
  7699. STD FN SET DESTINATION ADDRESS
  7700. TDU6 LDI BA PACK CHARACTERS
  7701. SHN 6
  7702. LMM 1,BA
  7703. STI FN
  7704. ZJN TDU7 IF END OF DATA
  7705. LDN 2
  7706. RAD BA INCREMENT ORIGIN ADDRESS
  7707. TDU7 AOD FN INCREMENT DESTINATION ADDRESS
  7708. SOD T6
  7709. NJN TDU6 IF MORE DATA TO PACK
  7710.  
  7711. * TRANSFER DATA TO USER-S COMMAND BUFFER.
  7712.  
  7713. LDN LCOM+1
  7714. SHN -1
  7715. STD BA
  7716. RJM CKA WRITE COMMAND TO USER-S FL
  7717. ADN 1
  7718. CWM CBUF,BA
  7719.  
  7720. * CLEAR COMMAND AVAILABLE IN *L* DISPLAY BUFFER CONTROL WORD.
  7721.  
  7722. LDN 0
  7723. STD CM+2
  7724. LDN 1 STORE NUMBER OF OPTIONS TO PROCESS
  7725. STD CM+1
  7726. LDD MA
  7727. CWM TDUD,CM+1
  7728. MONITOR UTEM
  7729.  
  7730. * SEND MESSAGE TO SYSTEM DAYFILE.
  7731.  
  7732. * LDN 0
  7733. STM BUF+30B ASSURE A ZERO BYTE TERMINATOR
  7734. LDC 2RDS PLACE HEADER ON MESSAGE
  7735. STM BUF
  7736. LDC 2R,
  7737. STM BUF+1
  7738. LDC 2RL.
  7739. STM BUF+2
  7740. LDC BUF+NMSN
  7741. RJM DFM SEND MESSAGE TO SYSTEM DAYFILE
  7742.  
  7743. * SET STATUS TO CALLER.
  7744.  
  7745. LDN 2*NERR+1 SET COMPLETE STATUS
  7746. LCOM ENDIF
  7747. TDU8 STD T5
  7748. RJM CKA GET ABSOLUTE ADDRESS
  7749. CWD T1
  7750. LJM CPMX RETURN
  7751. SPACE 4,10
  7752. * *UTEM* BUFFER.
  7753.  
  7754. TDUA VFD 1/0,5/0,6/24D,6/36D,6/0 CLEAR JSN
  7755. CON 0,0,0
  7756. TDUB VFD 1/0,5/0,6/2,6/4,6/0 INPUT REQUEST/COMMAND ENTERED
  7757. CON 0,0,0
  7758. TDUC VFD 1/1,5/0,6/1,6/4,6/0 VERIFY INPUT NOT REQUESTED
  7759. CON 0,0,0
  7760. VFD 1/0,5/0,6/1,6/4,6/0 SET INPUT REQUESTED
  7761. CON 0,0,1
  7762. TDUD VFD 1/0,5/0,6/1,6/5,6/0 SET COMMAND ENTERED
  7763. CON 0,0,0
  7764. CKR SPACE 4,10
  7765. ** CKR - CHECK IF BUFFER IN USER-S FL WITHIN RANGE.
  7766. *
  7767. * ENTRY (IR+3 - IR+4) = ADDRESS OF DISPLAY BUFFER.
  7768. *
  7769. * EXIT (T1 - T5) = FIRST WORD OF USER-S BUFFER.
  7770. *
  7771. * USES T1 - T5.
  7772. *
  7773. * CALLS CKA.
  7774.  
  7775.  
  7776. CKR SUBR ENTRY/EXIT
  7777. LDN 0
  7778. STD T1
  7779. RJM CKA CHECK ADDRESS
  7780. CRD T1
  7781. RJM CKA CHECK ADDRESS
  7782. UJN CKRX RETURN
  7783. DJI SPACE 4,20
  7784. ** DJI - DETERMINE IF CALLING JOB HAS *L* DISPLAY INTERLOCKED.
  7785. *
  7786. * ENTRY (IR+3 - IR+4) = ADDRESS OF DISPLAY BUFFER.
  7787. * (T1 - T5) = FIRST WORD OF USER-S BUFFER.
  7788. *
  7789. * EXIT (BA - BA+4) = FIRST WORD OF CMR BUFFER.
  7790. * (CM+1 - CM+5) = *LDSP* WORD FROM CMR.
  7791. *
  7792. * ERROR TO *ABORT* IF THE USER PROGRAM DOES NOT HAVE THE
  7793. * JSN INTERLOCKED.
  7794. * (T5) = ERROR STATUS IF ERROR.
  7795. *
  7796. * USES T5, BA - BA+4, CM+1 - CM+5, FN - FN+4.
  7797. *
  7798. * CALLS CKA.
  7799. *
  7800. * MACROS ABORT, SFA.
  7801.  
  7802.  
  7803. DJI SUBR ENTRY/EXIT
  7804. LDC LDSP READ POINTER TO *L* DISPLAY BUFFER
  7805. CRD CM+1
  7806. LDD CM+3 READ *L* DISPLAY BUFFER CONTROL WORD
  7807. SHN 14
  7808. LMD CM+4
  7809. CRD BA
  7810. LDD CP READ JSN OF CALLING JOB
  7811. ADN TFSW
  7812. CRD FN
  7813. SFA EJT,FN GET JSN
  7814. ERRNZ JSNE CHECK IF WORD 0 OF EJT ENTRY
  7815. CRD FN
  7816. LDD FN COMPARE JSN
  7817. LMD BA
  7818. NJN DJI1 IF NO MATCH
  7819. LDD FN+1
  7820. LMD BA+1
  7821. ZJN DJIX IF JSN-S MATCH
  7822. DJI1 LDN 2*NINL+1 SET NOT INTERLOCKED STATUS
  7823. STD T5
  7824. RJM CKA
  7825. CWD T1
  7826. ABORT ERIU * CPM - USER ACCESS NOT VALID.*
  7827. SPACE 4,10
  7828. BUF DATA 0,0,0 HEAD ON MESSAGE
  7829. CBUF EQU * INPUT ASSEMBLY BUFFER
  7830.  
  7831. ERRPL CBUF+5*LCOM-7777-5 BUFFER OVERFLOW
  7832. SPACE 4,10
  7833. OVERFLOW OVL
  7834. TTL CPM - CONTROL POINT MANAGER.
  7835. SPACE 4,10
  7836. END