Table of Contents

PFILES

Table Of Contents

  • [00022] PFILES - PERMANENT FILE REQUEST PROCESSOR.
  • [00026] PERMANENT FILE MANIPULATOR.
  • [00411] PARAMETER PROCESSING.
  • [00412] PROCESS REQUEST.
  • [00433] ERR - PROCESS ARGUMENT ERROR.
  • [00442] PFL - PROCESS PERMANENT FILE REQUEST.
  • [00559] PNC - PROCESS NEXT COMMAND.
  • [00775] FUNCTION PROCESSORS.
  • [01346] SUBROUTINES.
  • [01348] CES - CHECK ERROR STATUS.
  • [01388] CTJ - CHECK FOR *TXOT* JOB.
  • [01404] CVT - CONVERT ARGUMENT
  • [01434] ESP - ENTER SECURE PASSWORD.
  • [01536] GPN - GET PRIMARY FILE NAME.
  • [01583] IDF - ISSUE DAYFILE MESSAGE.
  • [01609] PAC - PROCESS ALTERNATE CATLIST PERMISSION.
  • [01646] PAL - PROCESS ACCESS LEVEL.
  • [01680] PBR - PROCESS BACKUP REQUIREMENT.
  • [01718] PCT - PROCESS FILE CATEGORY.
  • [01763] PDC - PROCESS DEFAULT CALL.
  • [01810] PMD - PROCESS MODE OF FILE.
  • [01868] PNA - PROCESS *NO ABORT* AND *WAIT BUSY* OPTIONS.
  • [01894] PPX - PROCESS PASSWORD/PERMIT EXPIRATION DATE/TERM.
  • [01977] PRD - PROCESS RESIDENCE DEFINITION.
  • [02013] TDVM - TABLE OF DEVICE MNEMONICS.
  • [02020] TBLM - DEFINE MACRO TO PRODUCE *TDVM* TABLE.
  • [02032] PRE - PROCESS PREFERRED RESIDENCE.
  • [02071] PRT - PROCESS *RT* PARAMETER.
  • [02101] PSR - PROCESS SPECIAL REQUEST SUBFUNCTION.
  • [02125] PSS - PROCESS SUBSYSTEM SELECTION.
  • [02180] RNF - RETURN NON-PRIMARY FILES.

Source Code

PFILES.txt
  1. IDENT PFILES,FWA
  2. ABS
  3. SST
  4. ENTRY APPEND
  5. ENTRY ATTACH
  6. ENTRY CHANGE
  7. ENTRY DEFINE
  8. ENTRY DROPDS
  9. ENTRY GET
  10. ENTRY NEW
  11. ENTRY OLD
  12. ENTRY PACKNAM
  13. ENTRY PERMIT
  14. ENTRY PURGE
  15. ENTRY REPLACE
  16. ENTRY SAVE
  17. ENTRY NPC=
  18. ENTRY RFL=
  19. ENTRY SDM=
  20. ENTRY SSM=
  21. SYSCOM B1 DEFINE (B1) = 1
  22. TITLE PFILES - PERMANENT FILE REQUEST PROCESSOR.
  23. *COMMENT PFILES - PERMANENT FILE MANIPULATOR.
  24. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  25. SPACE 4
  26. *** PFILES - PERMANENT FILE MANIPULATOR.
  27. * J. L. WARDELL. 70/11/03.
  28. * G. R. GREENFIELD 75/02/07. (MODIFIED)
  29. SPACE 4
  30. *** PFILES PROCESSES PERMANENT FILE REQUESTS FOR A JOB.
  31. * TO ACCESS ANY PERMANENT FILES THE USER MUST HAVE DEFINED A
  32. * USER NAME. THIS IS DONE VIA *LOGIN* (FOR INTERACTIVE)
  33. * OR *USER* COMMAND (FOR BATCH). THE USER NAME IS
  34. * A 7 CHARACTER FIELD WHICH REPRESENTS A SPECIFIC CATALOG IN
  35. * THE PERMANENT FILE SYSTEM. UNLESS SPECIFIED VIA AN OPTIONAL
  36. * USER NAME, ALL PERMANENT FILE REQUESTS WILL BE TO THIS
  37. * CATALOG.
  38. * THOSE USER NAMES WITH ASTERISKS (*) REPRESENT USERS WITH
  39. * AUTOMATIC READ ONLY PERMISSION TO CATALOGS OF OTHER USERS
  40. * IF ALL NON-ASTERISK CHARACTERS OF THE TWO USER NAMES MATCH.
  41. *
  42. * EXAMPLE.
  43. * NORMAL USER NAMES.
  44. * KRONOS1
  45. * KRONOS2
  46. * KRONOS3
  47. *
  48. * A USER NAME WITH AUTOMATIC PERMISSION ON ALL FILES
  49. * IN CATALOGS OF
  50. * KRONOS1
  51. * KRONOS2
  52. * KRONOS3
  53. * WOULD BE KRON***
  54. * OR KRONO**
  55. * OR KRONOS*
  56. * OR *RONOS*
  57. *
  58. *
  59. * TWO METHODS OF ACCESS ARE AVAILABLE TO PERMANENT FILES.
  60. *
  61. * 1. DIRECT ACCESS. FILES CAN BE ACCESSED DIRECTLY VIA
  62. * NORMAL I/O PROCEDURES INCLUDING RANDOM READS AND
  63. * WRITES. FILES OF THIS TYPE ARE ALLOCATED IN LARGE
  64. * BLOCKS (SEE *R* OPTION FOR BLOCK SIZES).
  65. *
  66. * 2. INDIRECT ACCESS. FILES CAN BE ACCESSED INDIRECTLY BY
  67. * USING A WORKING COPY OF THE PERMANENT FILE. THIS COPY
  68. * CAN BE GENERATED VIA THE *GET* COMMAND. IF THE USER
  69. * DESIRES THE WORKING COPY TO REMAIN PERMANENT A SPECIFIC
  70. * PERMANENT FILE REQUEST MUST BE MADE AFTER THE FILE
  71. * HAS BEEN ALTERED (SEE SAVE OR REPLACE COMMAND).
  72. * FILES OF THIS TYPE ARE ALLOCATED IN BLOCK SIZES
  73. * OF 64 CM WORDS (640 CHARACTERS).
  74. *
  75. *
  76. * FOR ANY PERMANENT FILE (DIRECT OR INDIRECT) THAT HAS A
  77. * CURRENT COPY ON ALTERNATE STORAGE, THE USER CAN DROP THE
  78. * ASSOCIATED DISK SPACE WITH THE *DROPDS* COMMAND. THIS
  79. * COMMAND WILL ALSO RETURN THE LOCAL FILE IF IT EXISTS.
  80. *
  81. *
  82. *
  83. * PERMANENT FILE COMMAND FORMAT.
  84. *
  85. * THE GENERAL FORMAT FOR A PERMANENT FILE REQUEST IS DESCRIBED
  86. * BELOW. IF SPECIAL OPTIONS ARE DESIRED, THEY MUST FOLLOW ALL
  87. * FILES SPECIFIED AND MUST APPLY TO ALL FILES. THE OPTIONS MUST
  88. * FOLLOW THE /, ARE ORDER-INDEPENDENT, AND ARE INDICATED BY
  89. * THE SPECIFIED KEYWORD.
  90. *
  91. * PFCMD (LFN = PFN / KW1 = OPTION1, . . . , KWN = OPTIONN)
  92. *
  93. * PFCMD
  94. * THE PARTICULAR PERMANENT FILE COMMAND.
  95. * LFN
  96. * THE WORKING FILE NAME USED WHILE ACCESSING
  97. * THE PERMANENT FILE.
  98. * PFN
  99. * THE NAME UNDER WHICH THE FILE IS CATALOGED
  100. * IN THE PERMANENT FILE DIRECTORY. IF THE
  101. * PFN PARAMETER IS NOT PRESENT, LFN IS
  102. * ASSUMED TO BE BE THE PERMANENT FILE NAME.
  103. *
  104. * IN CERTAIN CASES, IF NO LFN IS SPECIFIED, THE USER-S
  105. * PRIMARY FILE IS IMPLIED. THESE ARE DEFAULT CALLS,
  106. * AND OCCUR WHEN THE COMMAND IS *GET*, *PURGE*, *REPLACE*
  107. * OR *SAVE*, AND NO ARGUMENT OR ONE BLANK ARGUMENT IS
  108. * SPECIFIED, I.E. *GET.* OR *SAVE,.*
  109. *
  110. * THE KEYWORDS AND OPTIONS WHICH MAY BE SUPPLIED ARE DESCRIBED
  111. * BELOW:
  112. *
  113. * KEYWORD OPTION DESCRIPTION
  114. *
  115. * UN= USERNAM USER NAME FOR THE FILE. THIS
  116. * PARAMETER IS NECESSARY ONLY IF THE
  117. * PERMANENT FILE INVOLVED RESIDES IN ANOTHER
  118. * USERS CATALOG. TO BE ABLE TO ACCESS OTHER
  119. * FILE CATALOGS, THE USER MUST BE GRANTED
  120. * EXPLICIT PERMISSION (SEE PERMIT COMMAND).
  121. * THE FILE MUST BE A SEMIPRIVATE OR LIBRARY
  122. * FILE, OR THE USER MUST HAVE AUTOMATIC
  123. * PERMISSION (REFER TO THE PREVIOUS
  124. * DESCRIPTION OF USER NAMES).
  125. *
  126. * PW= PASSWRD THE USER HAS THE OPTION OF SPECIFYING A
  127. * SEVEN CHARACTER PASSWORD FOR A FILE. THIS
  128. * PASSWORD MUST BE SPECIFIED WHENEVER
  129. * ALTERNATE USERS ACCESS THE FILE.
  130. *
  131. * PW SPECIFIES USER DESIRES SECURE ENTRY OF
  132. * PASSWORD.
  133. *
  134. * XD= YYMMDD OPTIONAL PASSWORD/PERMIT EXPIRATION DATE
  135. * FOR THE FILE. YYMMDD MUST NOT BE BEFORE
  136. * THE CURRENT DATE. *XD* CANNOT BE
  137. * SPECIFIED TOGETHER WITH *XT*. ON A *SAVE*
  138. * OR *DEFINE*, *XD* CANNOT BE SPECIFIED
  139. * WITHOUT *PW*.
  140. *
  141. * XT= NNNN OPTIONAL PASSWORD/PERMIT EXPIRATION TERM
  142. * WHERE NNNN IS THE NUMBER OF DAYS THAT IS
  143. * ADDED TO THE CURENT DATE AND THEN USED AS
  144. * THE PASSWORD/PERMIT EXPIRATION DATE.
  145. * VALUES MAY RANGE FROM 0 TO 4095 (OR *),
  146. * WHERE 0 SETS THE PASSWORD AS IMMEDIATELY
  147. * EXPIRED, AND 4095 (OR *) IS USED TO SET A
  148. * NON-EXPIRING PASSWORD/PERMIT. *XT* CAN
  149. * NOT BE SPECIFIED TOGETHER WITH *XD*. ON
  150. * A *SAVE* OR *DEFINE*, *XD* CANNOT BE
  151. * SPECIFIED WITHOUT *PW*.
  152. *
  153. * CT= PERMANENT FILE CATEGORY. PERMANENT FILES
  154. * MAY FALL INTO THREE CATEGORIES WHICH
  155. * CONTROL THE METHOD OF ACCESS. THIS
  156. * PARAMETER MUST BE SPECIFIED WHEN THE FILE
  157. * IS SAVED OR DEFINED.
  158. * P - FILES AVAILABLE FOR ACCESS ONLY BY THE
  159. * PRIVATE ORIGINATING USER OR TO THOSE EXPLICITLY
  160. * PR GRANTED PERMISSION. (SEE PERMIT COMMAND.)
  161. *
  162. * S - FILES AVAILABLE FOR ACCESS BY ALL USERS
  163. * SPRIV KNOWING THE FILE NAME, PASSWORD AND USER
  164. * NUMBER. ACCESSES FOR FILES OF THIS
  165. * CATEGORY ARE RECORDED FOR THE ORIGINATOR
  166. * OF THE FILE IN THE PERMIT ENTRIES OF
  167. * THE FILE.
  168. * L - FILES AVAILABLE FOR ACCESS BY ALL USERS
  169. * LIBRARY KNOWING THE FILE NAME, PASSWORD, AND USER
  170. * PUBLIC NUMBER. ACCESSES FOR FILES OF THIS TYPE
  171. * PU ARE NOT RECORDED FOR THE ORIGINATOR OF THE
  172. * FILE.
  173. *
  174. * M= ACCESS MODE (PERMISSION LEVEL)
  175. * W - WRITE, MODIFY, UPDATE, APPEND, READ,
  176. * WRITE EXECUTE AND/OR PURGE
  177. * R - READ AND/OR EXECUTE
  178. * READ
  179. * E - EXECUTE ONLY
  180. * EXECUTE
  181. * A - APPEND ONLY (INDIRECT FILES).
  182. * APPEND APPEND, READ AND EXECUTE (DIRECT FILES).
  183. * N - REMOVE PREVIOUS PERMISSION
  184. * NULL
  185. * M - MODIFY, UPDATE, APPEND, READ AND EXECUTE.
  186. * MODIFY
  187. * RM - READ/ALLOW MODIFY, READ/ALLOW UPDATE,
  188. * READMD READ/ALLOW APPEND, READ AND EXECUTE.
  189. * RA - READ/ALLOW APPEND, READ AND EXECUTE.
  190. * READAP
  191. * U - UPDATE, READ AND EXECUTE.
  192. * UPDATE
  193. * RU - READ/ALLOW UPDATE, READ AND EXECUTE.
  194. * READUP
  195. *
  196. * AL= LEVEL OPTIONAL SECURITY ACCESS LEVEL THAT THE
  197. * FILE IS TO BE CREATED WITH. ONE- TO
  198. * SEVEN-CHARACTER MNEMONIC. IF *AL* IS
  199. * NOT SPECIFIED, THE CURRENT JOB ACCESS
  200. * LEVEL WILL BE USED.
  201. *
  202. * SS= FILE SUBSYSTEM.
  203. * IF *SS* IS OMITTED, NO SUBSYSTEM IS USED
  204. * EXCEPT IN THE CASE OF A *SAVE* OF THE
  205. * PRIMARY FILE. IF *SS* IS USED ALONE, THE
  206. * CURRENT SUBSYSTEM IS FORCED ON ALL FILES
  207. * AFFECTED. IF *SS* IS EQUIVALENCED, THE
  208. * SPECIFIED SUBSYSTEM IS FORCED ON ALL
  209. * FILES AFFECTED. A THREE-CHARACTER
  210. * ABBREVIATION MAY BE USED FOR
  211. * THE SUBSYSTEM NAME.
  212. *
  213. * BR = BACKUP REQUIREMENT (PFDUMP).
  214. * N - NO BACKUP REQUIRED.
  215. * Y - BACKUP ALWAYS REQUIRED.
  216. * MD - (MEDIA DEPENDENT) BACKUP REQUIRED IF FILE
  217. * RESIDES ON DISK, BUT NOT IF FILE
  218. * RESIDES ON MSF.
  219. *
  220. * PR = PREFERRED RESIDENCE (TYPE OF DEVICE).
  221. * L - FILE LOCKED TO DISK (VALIDATION REQUIRED).
  222. * D - DISK RESIDENCE PREFERRED.
  223. * M - CARTRIDGE ALTERNATE STORAGE RESIDENCE
  224. * PREFERRED.
  225. * N - NO PREFERENCE.
  226. * T - TAPE ALTERNATE STORAGE RESIDENCE
  227. * PREFERRED.
  228. *
  229. * R= SPECIFIES TYPE OF DEVICE ON WHICH THE
  230. * PERMANENT FILE RESIDES OR IS TO RESIDE.
  231. * IF NOT REQUIRED FOR THE REQUESTED
  232. * OPERATION, IT IS IGNORED. THIS
  233. * PARAMETER MAY ALSO HAVE BEEN SPECIFIED
  234. * ON A PREVIOUS *PACKNAM* COMMAND.
  235. * IF *R* HAS NOT BEEN SPECIFIED IN
  236. * EITHER FASHION, A SYSTEM DEFAULT (SEE
  237. * *COMSPFM*) WILL BE USED FOR AUXILIARY
  238. * PACK REQUESTS.
  239. *
  240. * DEVICE PRUS/BLOCK CHARS/BLOCK
  241. *
  242. * DE EXTENDED MEMORY 16 10240
  243. * DI 844-21 PACK GROUP 107*N 68480*N
  244. * DIN N = UNIT COUNT
  245. * (1-8,BLANK=1)
  246. * DJ 844-41 PACK GROUP 227*N 145280*N
  247. * DJN N = UNIT COUNT
  248. * (1-8,BLANK=1)
  249. * DK 844-21 FULL TRACK 112*N 71680*N
  250. * DKN N = UNIT COUNT
  251. * (N=1-8,BLANK=1)
  252. * DL 844-4X FULL TRACK 227*N 145280*N
  253. * DLN N = UNIT COUNT
  254. * (N=1-8,BLANK=1)
  255. * DM 885 PACK GROUP 640*N 409600*N
  256. * DMN N = UNIT COUNT
  257. * (1-3,BLANK=1)
  258. * DP EXTENDED MEMORY 16 10240
  259. * DQ 885 FULL TRACK 640*N 409600*N
  260. * DQN N = UNIT COUNT
  261. * (1-3,BLANK=1)
  262. * DV 819 SINGLE DENSITY 620 396800
  263. * DW 819 DOUBLE DENSITY 1240 793600
  264. *
  265. * PN= PACK NAME. UNIQUE SEVEN CHARACTER
  266. * NAME ASSOCIATED WITH A REMOVABLE
  267. * DEVICE. USER CAN SPECIFY THE PACK NAME
  268. * OF THE DEVICE HE WISHES THE PERMANENT
  269. * FILE REQUEST TO GO TO.
  270. *
  271. * NA NO ABORT OPTION. IF SET PROGRAM WILL NOT
  272. * ABORT. IF FILE IS BUSY (ATTACH ONLY)
  273. * THE JOB WILL BE SUSPENDED TILL FILE IS
  274. * AVAILABLE. FOR ALL OTHER CONDITIONS,
  275. * THE ERROR MESSAGE WILL BE ISSUED AND
  276. * THE PROGRAM WILL CONTINUE. *NA* CANNOT BE
  277. * SPECIFIED TOGETHER WITH *WB*.
  278. *
  279. * WB WAIT BUSY OPTION. IF SET, PROGRAM WILL
  280. * WAIT FOR BUSY FILES AND PACK MOUNTS, BUT
  281. * ALL OTHER ERRORS WILL CAUSE ABORTS. *WB*
  282. * CANNOT BE SPECIFIED TOGETHER WITH *NA*.
  283. *
  284. * RT REAL-TIME OPTION. IF SET, PROGRAM WILL
  285. * CONTINUE PROCESSING AFTER A STAGE HAS
  286. * BEEN INITIATED FOR A NON-DISK RESIDENT
  287. * FILE, OR IF A PF UTILITY IS ACTIVE.
  288. * IF NOT SET, PROGRAM WILL WAIT
  289. * UNTIL STAGE IS COMPLETE OR PF UTILITY
  290. * IS NO LONGER ACTIVE, AND FILE
  291. * IS AVAILABLE.
  292. *
  293. * CE CLEAR ERROR STATUS IN THE FILES
  294. * CATALOG ENTRY. THIS OPTION IS ONLY
  295. * PROCESSED BY *CHANGE*, AND CANNOT BE
  296. * SPECIFIED TOGETHER WITH THE *CE* OPTION.
  297. *
  298. * CP RESET THE CHARGE AND PROJECT NUMBERS IN
  299. * THE FILE-S CATALOG ENTRY TO THE CURRENT
  300. * ACTIVE CHARGE AND PROJECT NUMBERS. THIS
  301. * OPTION IS ONLY PROCESSED BY *CHANGE*, AND
  302. * CANNOT BE SPECIFIED TOGETHER WITH THE *CP*
  303. * PARAMETER.
  304. *
  305. * S= SPACE DESIRED. THIS SPECIFIES SPACE
  306. * DESIRED, IN PRUS, FOR ALLOCATION. IF
  307. * SPECIFIED, DEVICE(OF DEVICE TYPE SPECIFIED
  308. * BY *R*) WILL BE ASSIGNED IF THIS MANY
  309. * PRUS ARE AVAILABLE FOR ALLOCATION. NOTE -
  310. * SPACE IS NOT RESERVED BY SPECIFING THIS
  311. * PARAMETER.
  312. *
  313. * ND DO NOT DROP NON-PRIMARY LOCAL FILES AFTER
  314. * PROCESSING FUNCTION.
  315. *
  316. * AC= ALTERNATE CATLIST PERMISSION.
  317. * N - ALTERNATE USERS ARE NOT PERMITTED TO
  318. * CATLIST THE FILE.
  319. * Y - ALTERNATE USERS ARE PERMITTED TO CATLIST
  320. * THE FILE.
  321. *
  322. *
  323. * MULTIPLE FILE REQUESTS
  324. *
  325. * UP TO 20 FILES MAY BE ACCESSED WITH A SINGLE CALL BY USING
  326. * THE FOLLOWING COMMAND FORMAT. IF SPECIAL OPTIONS ARE
  327. * SPECIFIED, THEY APPLY TO ALL FILES.
  328. * NOTE - MULTIPLE FILE REQUESTS ARE NOT PERMITTED ON
  329. * *NEW* OR *OLD* FUNCTIONS.
  330. *
  331. * PFCMD (LFNN = PFNN, LFN2, . . ., LFNN = PFNN) / KW1 =
  332. * OPTION1, . . ., KWN = OPTIONN)
  333. SPACE 4,40
  334. *** DAYFILE MESSAGES.
  335. *
  336. *
  337. * * ERROR IN ALTERNATE CATLIST PERMISSION.* = ALTERNATE CATLIST
  338. * PERMISSION SPECIFIED WAS NOT RECOGNIZED.
  339. *
  340. * * ERROR IN ARGUMENT.* = THE COMMAND IS SYNTACTICALLY
  341. * INCORRECT, OR AN INCORRECT PARAMETER WAS ENTERED
  342. * FOR THE COMMAND.
  343. *
  344. * * ERROR IN BACKUP REQUIREMENT.* = BACKUP REQUIREMENT
  345. * SPECIFIED WAS NOT RECOGNIZED.
  346. *
  347. * * ERROR IN EXPIRATION DATE.* = THE VALUE SPECIFIED
  348. * FOR *XD* WAS NOT A VALID DATE, OR THE VALUE
  349. * SPECIFIED FOR *XT* WAS GREATER THAN 4095.
  350. *
  351. * * ERROR IN FILE CATEGORY.* = FILE CATEGORY SPECIFIED WAS
  352. * NOT RECOGNIZED.
  353. *
  354. * * ERROR IN MODE.* = MODE SPECIFIED WAS NOT RECOGNIZED.
  355. *
  356. * * ERROR IN PREFERRED RESIDENCE.* = PREFERRED RESIDENCE
  357. * SPECIFIED WAS NOT RECOGNIZED.
  358. *
  359. * * ERROR IN RESIDENCE.* = RESIDENCE PARAMETER IS INCORRECT.
  360. *
  361. * * ERROR IN SUBSYSTEM.* = SUBSYSTEM SPECIFIED WAS
  362. * NOT RECOGNIZED.
  363. *
  364. * * INCORRECT PASSWORD.* = AN INCORRECT PASSWORD WAS ENCOUNTERD
  365. * UPON SECURE ENTRY.
  366. *
  367. * * NO PRIMARY FILE.* = AN IMPLIED PRIMARY FILE OPERATION
  368. * (DEFAULT CALL) WAS MADE, BUT NO PRIMARY FILE WAS
  369. * FOUND.
  370. *
  371. * * PARAMETERS CE AND CP ARE MUTUALLY EXCLUSIVE.* = THE
  372. * PARAMETERS *CE* AND *CP* CANNOT BE BOTH BE INCLUDED
  373. * ON THE SAME *CHANGE* COMMAND.
  374. *
  375. * * UNKNOWN ACCESS LEVEL NAME.* = THE VALUE SPECIFIED FOR
  376. * THE *AL* PARAMETER WAS NOT VALID. SEE *COMSMLS*
  377. * FOR A LIST OF VALID ACCESS LEVEL NAMES.
  378. *
  379. * NOTE - SEE *PFM* DOCUMENTATION FOR ADDITIONAL ERROR MESSAGES.
  380. SPACE 4,10
  381. *** OPERATOR MESSAGES.
  382. *
  383. *
  384. * NONE.
  385. SPACE 4
  386. *CALL COMCMAC
  387. *CALL COMCCMD
  388. *CALL COMSLFD
  389. *CALL COMSMLS
  390. *CALL COMSMSP
  391. *CALL COMSPFM
  392. *CALL COMSREM
  393. *CALL COMSTCM (230)
  394. SPACE 4
  395. ** PROGRAM CONSTANTS.
  396.  
  397.  
  398. NFILES EQU 21 MAX NUMBER OF FILES + 1 IN ONE COMMAND
  399. NPC= EQU 0 FORCE OPERATING SYSTEM PARAMETER FORMAT
  400. BUFL EQU NWCE+2 BUFFER LENGTH
  401. SDM= EQU 0 SUPPRESS DAYFILE MESSAGE
  402. SSM= EQU 0 SECURE SYSTEM MEMORY
  403. CCPK EQU 13B PACKNAME COMMAND
  404. CCNW EQU 14B NEW COMMAND
  405. CCOL EQU 15B OLD COMMAND
  406. CCDS EQU 16B DROPDS COMMAND
  407. GFILES EQU 40B NUMBER OF ENTRIES IN GETFNT BUFFER
  408. GLEN EQU GFILES*2 LENGTH OF *GETFNT* BUFFER
  409. * NOTE - SHOULD CONSIDER VALUE OF *RFL=*
  410. PBUFL EQU 100 *PACKNAM* STRING BUFFER LENGTH
  411. TITLE PARAMETER PROCESSING.
  412. ** PFILES - PROCESS REQUEST.
  413.  
  414.  
  415. ORG 125B
  416. FET SPACE 4
  417. FWA BSS 0 DEFINE LOAD ADDRESS
  418.  
  419. F BSS 0
  420. FILE FILEB IBUF,BUFL,(FET=CFLM)
  421. .F BSS 0
  422. ORG F+1 SUPPRESS ADDRESS ON *PFM* ERRORS
  423. VFD 13/0,1/1,22/0,6/CFLM-5,18/IBUF
  424. ORG .F
  425.  
  426. I BSS 0
  427. INPUT FILEB IBUF,BUFL,FET=6
  428.  
  429. O BSS 0
  430. OUTPUT FILEB PMSG,PMSGL+1,FET=6
  431.  
  432. ERR SPACE 4,10
  433. ** ERR - PROCESS ARGUMENT ERROR.
  434. *
  435. * MACROS ABORT, MESSAGE.
  436.  
  437.  
  438. ERR BSS 0 ENTRY
  439. MESSAGE (=C* ERROR IN ARGUMENT.*)
  440. ERR1 ABORT
  441. PFL SPACE 4,10
  442. ** PFL - PROCESS PERMANENT FILE REQUEST.
  443. *
  444. * ENTRY (B7) = COMMAND CODE.
  445. *
  446. * USES X - ALL.
  447. * A - 1, 2, 4, 5, 6.
  448. * B - 1, 2, 3, 4, 5, 6, 7.
  449. *
  450. * CALLS ARG, CTJ, ESP, IDF, PAC, PAL, PBR, PCT, PDC, PMD,
  451. * PNA, PPX, PRE, PRT, PSS.
  452. *
  453. * MACROS CONTROL, MESSAGE.
  454.  
  455.  
  456. PFL SUBR ENTRY/EXIT
  457. SX6 B7+ SAVE COMMAND CODE
  458. SB1 1
  459. SA6 PFLA
  460. RJ IDF ISSUE DAYFILE MESSAGE
  461. SA1 ACTR ARGUMENT COUNT
  462. SA2 PFLA GET COMMAND CODE
  463. SB4 X1
  464. SB7 X2
  465. SB6 60 SET SHIFT COUNT FOR COMMAND
  466. SB6 B6-B7
  467. RJ PDC PROCESS DEFAULT CALL
  468. ZR B2,PFL7 IF DEFAULT AND PRIMARY FOUND
  469.  
  470. * PROCESS FILE NAME LIST.
  471.  
  472. PFL1 SA4 ARGR
  473. MX0 42
  474. SB2 B0 CLEAR FILE COUNT
  475. SX3 PRM17 SET MASK FOR *LFN=PFN* SYNTAX
  476. PFL2 BX6 X0*X4
  477. SX7 X4-1R= CHECK SEPARATOR
  478. SX1 B0 CLEAR PF NAME
  479. ZR X6,ERR IF BLANK NAME
  480. SA6 B2+TSFN SET SYSTEM FILE NAME
  481. NZ X7,PFL3 IF NOT *=*
  482. SB4 B4-B1 DECREMENT ARG. COUNT
  483. SA4 A4+B1 READ NEXT ARG.
  484. ZR B4,ERR IF NO ARG.
  485. BX1 X0*X4
  486. ZR X1,ERR IF BLANK ARG.
  487. SX7 X4-1R=
  488. ZR X7,ERR IF *LFN1=PFN1=*
  489. LX7 X3,B6
  490. PL X7,ERR IF *LFN=PFN* SYNTAX NOT ALLOWED ON COMMAND
  491. PFL3 BX6 X1 SET PF NAME
  492. SA6 B2+TPFN
  493. SX7 B2 SAVE INDEX OF LAST FILE
  494. SA7 PFLB
  495. SB2 B2+B1 ADVANCE FILE COUNT
  496. SB5 B2-NFILES
  497. GT B5,ERR IF TOO MANY FILES
  498. SB3 X4-1R/ CHECK FOR SPECIAL ARG.
  499. SB4 B4-B1 DECREMENT ARG. COUNT
  500. SX6 B0 CLEAR NEXT FILE NAME
  501. SA6 B2+TSFN
  502. SA4 A4+B1 READ NEXT ARG.
  503. EQ B3,PFL4 IF SPECIAL ARG.
  504. NZ B4,PFL2 LOOP FOR NEXT ARG.
  505. EQ PFL7 PROCESS SPECIAL PARAMETERS
  506.  
  507. * PROCESS SPECIAL ARGUMENTS.
  508.  
  509. PFL4 SB5 TARG ARGUMENT TABLE
  510. RJ ARG
  511. NZ X1,ERR IF ERROR
  512.  
  513. * DETERMINE IF PARAMETERS ARE LEGAL FOR COMMAND SPECIFIED.
  514.  
  515. SB2 TPARL
  516. PFL6 SB2 B2-B1
  517. LT B2,PFL7 IF NO MORE PARAMETERS
  518. SA1 B2+TPAR READ ARGUMENT VALIDATION
  519. SA2 B2+TARG
  520. SA2 X2
  521. ZR X2,PFL6 IF ARGUMENT NOT ENTERED
  522. LX1 X1,B6
  523. NG X1,PFL6 IF PARAMETER ALLOWED
  524. EQ ERR ISSUE ERROR
  525.  
  526. * PROCESS SECURE PASSWORD ENTRY.
  527.  
  528. PFL7 SA5 PWD
  529. SB2 X5
  530. SB2 B2-B1
  531. NZ B2,PFL8 IF *PW* NOT ENTERED
  532. MX0 42
  533. BX5 X0*X5
  534. NZ X5,PFL8 IF PASSWORD NOT ENTERED SECURELY
  535. RJ ESP ENTER SECURE PASSWORD
  536. SA6 PWD SET PASSWORD
  537.  
  538. * PROCESS REMAINING PARAMETERS.
  539.  
  540. PFL8 MX0 42
  541. RJ PAC PROCESS ALTERNATE CATLIST
  542. RJ PAL PROCESS ACCESS LEVEL
  543. RJ PBR PROCESS BACKUP REQUIREMENT
  544. RJ PCT PROCESS CATEGORY
  545. SA5 MODE PROCESS MODE
  546. RJ PMD
  547. RJ PNA PROCESS *NO ABORT*/*WAIT BUSY* PARAMETERS
  548. RJ PPX PROCESS PASSWORD/PERMIT EXPIRATION DATE
  549. RJ PRE PROCESS PREFERRED RESIDENCE
  550. RJ PRT PROCESS *REAL-TIME* PARAMETER
  551. RJ PSS PROCESS SUBSYSTEM
  552. RJ PRD PROCESS RESIDENCE DEFINITION
  553. EQ PFLX RETURN
  554.  
  555.  
  556. PFLA CON 0 COMMAND CODE
  557. PFLB CON 0 INDEX OF LAST FILE NAME
  558. PNC SPACE 4,15
  559. ** PNC - PROCESS NEXT COMMAND.
  560. *
  561. * READ AHEAD ON COMMAND FILE, AND PROCESS
  562. * THE NEXT COMMAND IF IT IS A *PFILES* CALL.
  563. *
  564. * EXIT TO FUNCTION PROCESSOR.
  565. *
  566. * USES X - 0, 1, 2, 3, 5, 6.
  567. * A - 1, 2, 5, 6.
  568. * B - 2, 3.
  569. *
  570. * CALLS CTJ.
  571. *
  572. * MACROS CONTROL, ENDRUN, MESSAGE, RECALL.
  573.  
  574.  
  575. PNC BSS 0 ENTRY
  576. SA1 JOPR CHECK FOR *DIS* CALL
  577. LX1 59-19
  578. NG X1,PNC4 IF *DIS* CALL
  579. CONTROL CCDR,RSS
  580. SA5 CCDR
  581. ZR X5,PNC4 IF NO COMMAND PENDING
  582. SA1 ACTR READ PROGRAM NAME
  583. SA2 FWA-1 FIRST ENTRY NAME
  584. MX0 42
  585. BX1 X0*X1
  586. PNC1 NG X2,PNC4 IF END OF ENTRY POINT NAMES
  587. BX3 X0*X2
  588. BX6 X3-X1
  589. SB2 X2
  590. SA2 A2-B1
  591. NZ X6,PNC1 IF NO MATCH
  592. CONTROL CCDR ADVANCE COMMAND
  593. SA1 PGNR
  594. SX6 B0+
  595. ZR X1,ERR1 IF COMMAND LIMIT
  596. SB3 PARML CLEAR PARAMETERS
  597. PNC2 SA6 PARM-1+B3
  598. SB3 B3-B1
  599. NZ B3,PNC2 IF MORE PARAMETERS TO CLEAR
  600. RECALL F
  601. SB3 CFLM-CFCN
  602. PNC3 SA6 F+CFCN-1+B3 CLEAR *PFM* FET PARAMETERS
  603. SB3 B3-B1
  604. NZ B3,PNC3 IF MORE WORDS IN FET
  605. SA1 F+1 CLEAR *EP*, *RT* AND *SP* BITS
  606. SX6 61B
  607. LX6 39-0
  608. BX6 -X6*X1
  609. SA6 A1
  610. SA2 F+4 CLEAR *AL* FIELD IN FET
  611. MX0 -6
  612. LX0 36-0
  613. BX6 X0*X2
  614. SA6 A2
  615. JP B2 PROCESS CALL
  616.  
  617. PNC4 RJ CTJ CHECK FOR *TXOT* JOB
  618. ZR X2,PNC5 IF *TXOT* JOB
  619. MESSAGE (=C*PF REQUEST COMPLETE.*),1
  620. EQ PNC6 END
  621.  
  622. PNC5 SA1 ERRFLG
  623. NZ X1,PNC6 IF ERROR ENCOUNTERED
  624. MESSAGE ZR,1 CLEAR *MS1W*
  625. PNC6 ENDRUN
  626. SPACE 4
  627. * TABLES.
  628.  
  629.  
  630. ZR CON 0 ZERO WORD FOR ARG. DEFAULT
  631. NZ CON 1 NON-ZERO WORD FOR ARG. DEFAULT
  632. CE CON SRCE CLEAR ERROR FUNCTION
  633. CPN CON SRCP RESET CHARGE/PROJECT NUMBERS
  634.  
  635.  
  636. CSV DECMIC CCSV-1
  637. CGT DECMIC CCGT-1
  638. CPG DECMIC CCPG-1
  639. CPM DECMIC CCPM-1
  640. CRP DECMIC CCRP-1
  641. CAP DECMIC CCAP-1
  642. CDF DECMIC CCDF-1
  643. CAT DECMIC CCAT-1
  644. CCG DECMIC CCCG-1
  645. CPK DECMIC CCPK-1
  646. CNW DECMIC CCNW-1
  647. COL DECMIC CCOL-1
  648. CDS DECMIC CCDS-1
  649.  
  650.  
  651. PRM1 SET 1S"CSV"+1S"CGT"+1S"CPG"+1S"CRP"+1S"CAP"+1S"CDF"+1S"CAT"
  652. ,+1S"CCG"+1S"COL" PASSWORD
  653. PRM2 SET 1S"CSV"+1S"CRP"+1S"CDF"+1S"CAT"+1S"CCG" MODE
  654. PRM3 SET 1S"CSV"+1S"CDF"+1S"CCG" FILE CATEGORY
  655. PRM4 SET 1S"CSV"+1S"CGT"+1S"CDF"+1S"CPG"+1S"CPM"+1S"CRP"+1S"CAP"
  656. ,+1S"CAT"+1S"CCG"+1S"COL"+1S"CDS" NO ABORT, WAIT BUSY
  657. PRM5 SET 1S"CGT"+1S"CPG"+1S"CRP"+1S"CAP"+1S"CAT"+1S"COL" UN
  658. PRM6 SET 1S"CSV"+1S"CGT"+1S"CPG"+1S"CPM"+1S"CRP"+1S"CAP"+1S"CDF"
  659. ,+1S"CAT"+1S"CCG"+1S"CPK"+1S"COL"+1S"CDS" PACKNAME, RESIDENCE
  660. PRM7 SET 1S"CDF" SPACE
  661. PRM8 SET 1S"CNW"+1S"COL" NO DROP
  662. PRM9 SET 1S"CGT"+1S"CSV"+1S"CPG"+1S"CRP" NO ARGUMENTS
  663. PRM10 SET 1S"CCG" CLEAR ERROR STATUS
  664. PRM11 SET 1S"CSV"+1S"CCG" SUBSYSTEM
  665. PRM12 SET 1S"CDF"+1S"CCG"+1S"CSV" BACKUP REQUIREMENT
  666. PRM13 SET 1S"CSV"+1S"CDF"+1S"CCG" PREFERRED RESIDENCE
  667. PRM14 SET 1S"CGT"+1S"CAT"+1S"COL" REAL TIME PARAMETER
  668. PRM15 EQU 1S"CCG"+1S"CDF"+1S"CSV"+1S"CPM" PASSWORD/PERMIT EXP
  669. PRM16 EQU 1S"CDF"+1S"CSV" FILE ACCESS LEVEL
  670. PRM17 EQU 1S"CSV"+1S"CGT"+1S"CPM"+1S"CRP"+1S"CDF"+1S"CAT"+1S"CCG"
  671. ,+1S"COL"+1S"CDS" *LFN=PFN* SYNTAX
  672. PRM18 SET 1S"CSV"+1S"CDF"+1S"CCG" ALTERNATE CATLIST PERMISSION
  673. PRM19 SET 1S"CCG" RESET CHARGE/PROJECT NUMBERS
  674.  
  675.  
  676. * NOTE - ENTRIES IN THE NEXT TWO TABLES MUST BE IN
  677. * THE SAME ORDER IN EACH TABLE.
  678.  
  679.  
  680. * TABLE OF LEGAL PARAMETERS FOR COMMANDS.
  681.  
  682. TPAR BSS 0
  683. VFD 42/0,18/PRM8 NO DROP
  684. VFD 42/0,18/PRM1 PASSWORD
  685. VFD 42/0,18/PRM2 MODE
  686. VFD 42/0,18/PRM3 FILE CATEGORY
  687. VFD 42/0,18/PRM6 RESIDENCE
  688. VFD 42/0,18/PRM5 USER NAME
  689. VFD 42/0,18/PRM6 PACKNAME
  690. VFD 42/0,18/PRM4 NO ABORT
  691. VFD 42/0,18/PRM4 WAIT BUSY
  692. VFD 42/0,18/PRM7 SPACE
  693. VFD 42/0,18/PRM10 CLEAR ERROR STATUS
  694. VFD 42/0,18/PRM11 SUBSYSTEM
  695. VFD 42/0,18/PRM12 BACKUP REQUIREMENT
  696. VFD 42/0,18/PRM13 PREFERRED RESIDENCE
  697. VFD 42/0,18/PRM14 REAL-TIME PARAMETER
  698. VFD 42/0,18/PRM15 PASSWORD/PERMIT EXPIRATION DATE
  699. VFD 42/0,18/PRM15 PASSWORD/PERMIT EXPIRATION TERM
  700. VFD 42/0,18/PRM16 FILE ACCESS LEVEL
  701. VFD 42/0,18/PRM18 ALTERNATE CATLIST PERMISSION
  702. VFD 42/0,18/PRM19 RESET CHARGE/PROJECT NUMBERS
  703. TPARL EQU *-TPAR LIMIT OF PARAMETERS
  704.  
  705.  
  706. * TABLE OF KEYWORD/PARAMETER EQUIVALENCES.
  707.  
  708. TARG BSS 0
  709. ND ARG -NZ,NODROP
  710. PW ARG NZ,PWD
  711. M ARG NZ,MODE
  712. CT ARG NZ,CTG
  713. R ARG ZR,RES
  714. UN ARG ZR,USNM
  715. PN ARG ZR,PKNM,400B
  716. NA ARG -NZ,NABT
  717. WB ARG -NZ,WBUSY
  718. S ARG ZR,SPACE
  719. CE ARG -CE,CLRE
  720. SS ARG NZ,SUBSYS
  721. BR ARG NZ,BREQ
  722. PR ARG NZ,PRES
  723. RT ARG -NZ,RTIME
  724. XD ARG NZ,PXD,400B
  725. XT ARG NZ,PXT,400B
  726. AL ARG ZR,FAL,400B
  727. AC ARG ZR,ALCT
  728. CP ARG -CPN,CPNG
  729. ARG
  730.  
  731. TARGP BSS 0 ARGUMENT TABLE FOR *PACKNAM* COMMAND
  732. PN ARG ZR,PKNM
  733. R ARG ZR,RES
  734. ARG
  735. TARGPL EQU *-TARGP-1
  736. SPACE 4,10
  737. ** PARAMETER AREA.
  738.  
  739. PARM BSS 0
  740. NODROP CON 0 NO DROP
  741. PWD CON 0 PASSWORD
  742. MODE CON 0 FILE MODE
  743. CTG CON 0 FILE CATEGORY
  744. RES CON 0 RESIDENCE OF FILE
  745. USNM CON 0 USER NAME
  746. PKNM CON 0 PACKNAME
  747. NABT CON 0 NO ABORT OPTION
  748. WBUSY CON 0 WAIT BUSY OPTION
  749. SPACE CON 0 SPACE
  750. CLRE CON 0 CLEAR ERROR STATUS
  751. SUBSYS CON 0 SUBSYSTEM
  752. BREQ CON 0 BACKUP REQUIREMENT
  753. PRES CON 0 PREFERRED RESIDENCE
  754. ALCT CON 0 ALTERNATE CATLIST PERMISSION
  755. RTIME CON 0 REAL-TIME PARAMETER
  756. PXD CON 0 PASSWORD/PERMIT EXPIRATION DATE
  757. PXT CON 0 PASSWORD/PERMIT EXPIRATION TERM
  758. FAL CON 0 FILE ACCESS LEVEL
  759. CPNG CON 0 RESET CHARGE/PROJECT NUMBERS
  760. SREQ CON 0 SPECIAL REQUEST SUBFUNCTION FOR *CHANGE*
  761. ERRFLG CON 0 NONZERO IF *PFM* ERROR DETECTED
  762. PARML EQU *-PARM
  763.  
  764. * MESSAGE FOR SECURE ENTRY OF PASSWORD.
  765.  
  766. PMSG DATA 10H"EM" PASSWO
  767. DATA 10HRD:"NL" (((
  768. DATA 10H((((("CR" )
  769. DATA 10H)))))))"CR"
  770. DATA 10H MMMMMMMM
  771. DATA 10H"CR" QQQQQQ
  772. DATA 10HQQ"CR" XXXX
  773. DATA 10HXXXX"CR""CB""EL"
  774. PMSGL EQU *-PMSG
  775. TITLE FUNCTION PROCESSORS.
  776. APPEND SPACE 4,15
  777. *** APPEND (P,F1,F2,F3,...,FN/PW,UN,PN,R,NA,WB)
  778. *
  779. * APPEND FILES F1...FN TO PERMANENT FILE.
  780. * EACH FILE *FN* IS APPENDED AT EOI OF *P*.
  781. *
  782. * P = PERMANENT FILE TO BE APPENDED TO.
  783. * FN = FILES TO BE APPENDED.
  784. * PW = FILE PASSWORD.
  785. * UN = USER NAME.
  786. * PN = PACK NAME.
  787. * R = RESIDENCE.
  788. * NA = NO ABORT IF ERROR ENCOUNTERED.
  789. * WB = WAIT FOR PACK MOUNT.
  790.  
  791.  
  792. APPEND BSS 0 ENTRY
  793. SB7 CCAP SET FUNCTION CODE
  794. RJ PFL PROCESS PERMANENT FILE REQUEST
  795. SA1 TSFN SET PERMANENT FILE NAME
  796. BX6 X1
  797. SA6 F+CFPN
  798. SB3 B1 SET TABLE COUNTER
  799. SA5 B3+TSFN
  800. ZR X5,ERR IF NO LOCAL FILE NAME
  801. APP1 SX6 B1 SET LOCAL FILE NAME IN FET
  802. BX6 X6+X5
  803. SA6 F
  804. APPEND F,,USNM,PWD,PKNM,RES
  805. RJ CES CHECK ERROR STATUS
  806. SB3 B3+B1 ADVANCE POINTER
  807. SA5 B3+TSFN
  808. NZ X5,APP1 IF ANOTHER FILE
  809. EQ PNC PROCESS NEXT COMMAND
  810. ATTACH SPACE 4,25
  811. *** ATTACH (F=P/UN,PW,M,PN,R,NA,WB,RT)
  812. *
  813. * ATTACH PERMANENT FILE FOR DIRECT ACCESS USE.
  814. *
  815. * AN ATTEMPT WILL BE MADE FIRST TO ATTACH EACH FILE WITH THE
  816. * *RT* BIT SET IN THE FET. FOR ANY FILE FOR WHICH STAGING WAS
  817. * INITIATED OR A PF UTILITY WAS ACTIVE, ANOTHER *ATTACH* WILL
  818. * BE PERFORMED WITHOUT THE *RT* BIT SET TO ACTUALLY ATTACH
  819. * THE FILE.
  820. *
  821. * F = WORKING FILE NAME
  822. * P = PERMANENT FILE NAME
  823. * UN = USER NAME.
  824. * PW = FILE PASSWORD
  825. * M = MODE OF ACCESS
  826. * PN = PACK NAME.
  827. * R = RESIDENCE.
  828. * NA = NO ABORT IF ERROR ENCOUNTERED. WAIT FOR BUSY
  829. * FILE UNTIL AVAILABLE.
  830. * WB = WAIT FOR PACK MOUNT AND FOR BUSY FILE.
  831. * RT = RETURN CONTROL AFTER STAGE INITIATED OR IF
  832. * PF UTILITY IS ACTIVE. DO NOT
  833. * WAIT FOR FILE TO BE AVAILABLE.
  834. *
  835. * DEFAULT VALUES.
  836. * M = READ.
  837. * PW = 0.
  838. * NA = 0.
  839.  
  840.  
  841. ATTACH BSS 0 ENTRY
  842. SB7 CCAT SET FUNCTION CODE
  843. RJ PFL PROCESS PERMANENT FILE REQUEST
  844. SA1 PFLB GET INDEX OF LAST FILE NAME
  845. SB4 X1+
  846. ATT1 SB3 B0+ GET FIRST FILE NAME
  847. ATT2 SA5 B3+TSFN
  848. ZR X5,ATT5 IF PREVIOUS *ATTACH* OF THIS FILE WORKED
  849. SX6 B1 PROCESS FILE NAME
  850. BX6 X5+X6
  851. SA6 F
  852. ATT3 ATTACH F,B3+TPFN,USNM,PWD,MODE,PKNM,RES
  853. RJ CES CHECK ERROR STATUS
  854. ZR X6,ATT6 IF FILE BUSY
  855. ZR X7,ATT4 IF WAITING STAGING, UTILITY OR INTERLOCK
  856. SX6 B0+ CLEAR FILE NAME
  857. SA6 B3+TSFN
  858. EQ ATT5 CHECK FOR MORE FILES
  859.  
  860. ATT4 SX6 B1+ SET FLAG TO INDICATE RETRY NEEDED
  861. SA6 ATTA
  862. ATT5 SB3 B3+1 CHECK FOR MORE FILES
  863. LE B3,B4,ATT2 IF MORE FILES TO PROCESS
  864. SA1 ATTA
  865. ZR X1,PNC IF NO RETRY NEEDED
  866. BX6 X6-X6 CLEAR FLAG
  867. SA6 A1
  868. SA1 RTIME
  869. NZ X1,PNC IF *RT* PARAMETER SPECIFIED
  870. SA1 F+1 CLEAR REAL-TIME PROCESSING BIT
  871. MX6 1
  872. LX6 43-59
  873. BX6 X1-X6
  874. SA6 A1
  875. EQ ATT1 RETRY WITH *RT* CLEARED
  876.  
  877. ATT6 ROLLOUT ZR ROLL OUT UNTIL FILE AVAILABLE
  878. EQ ATT3 RETRY AFTER ROLLED IN
  879.  
  880.  
  881. ATTA CON 0 NONZERO IF RETRY WITHOUT *RT* REQUIRED
  882. CHANGE SPACE 4,20
  883. *** CHANGE (N=P/PW,CT,M,BR,PR,SS,PN,R,NA,WB,CE,XT,AC,CP)
  884. *
  885. * CHANGE CATALOG ENTRY FOR PERMANENT FILE.
  886. *
  887. * N = NEW FILE NAME.
  888. * P = OLD PERMANENT FILE NAME.
  889. * PW = FILE PASSWORD.
  890. * CT = FILE CATEGORY.
  891. * M = MODE OF ACCESS ALLOWED FOR FILE.
  892. * BR = BACKUP REQUIREMENT.
  893. * PR = PREFERRED RESIDENCE.
  894. * SS = SUBSYSTEM.
  895. * PN = PACK NAME.
  896. * R = RESIDENCE.
  897. * NA = NO ABORT IF ERROR ENCOUNTERED.
  898. * WB = WAIT FOR PACK MOUNT.
  899. * CE = CLEAR ERROR STATUS.
  900. * XT = PASSWORD EXPIRATION DATE OR TERM.
  901. * AC = ALTERNATE CATLIST PERMISSION.
  902. * CP = RESET CHARGE/PROJECT NUMBERS IN PFC.
  903.  
  904.  
  905. CHANGE BSS 0 ENTRY
  906. SB7 CCCG SET FUNCTION CODE
  907. MX6 42 SET PWD DEFAULT TO ALL 7S
  908. SA6 PWD
  909. RJ PFL PROCESS PERMANENT FILE REQUEST
  910. RJ PSR PROCESS SPECIAL REQUEST SUBFUNCTION
  911. SB3 B0
  912. SA5 B3+TSFN
  913. CHG1 SB4 A5
  914. SA1 B3+TPFN
  915. NZ X1,CHG2 IF NAME CHANGE
  916. BX1 X5 SET PERMANENT FILE NAME
  917. SB4 B0 SET NO NEW NAME
  918. CHG2 CHANGE F,X1,B4,PWD,,CTG,MODE,PKNM,RES,,SREQ,SUBSYS,BREQ,PRES,P
  919. ,XT,ALCT
  920. RJ CES CHECK ERROR STATUS
  921. SB3 B3+B1
  922. SA5 B3+TSFN
  923. NZ X5,CHG1 IF ANOTHER FILE
  924. EQ PNC PROCESS NEXT COMMAND
  925. DEFINE SPACE 4,30
  926. *** DEFINE (F=P/PW,CT,M,BR,PR,PN,R,NA,WB,XT,AL,AC)
  927. *
  928. * DEFINE PERMANENT FILE FOR DIRECT ACCESS USAGE.
  929. *
  930. * F = WORKING FILE NAME.
  931. * P = PERMANENT FILE NAME.
  932. * PW = FILE PASSWORD
  933. * CT = FILE CATEGORY.
  934. * M = MODE OF ACCESS ALLOWED FOR SEMI-PRIVATE OR LIBRARY
  935. * BR = BACKUP REQUIREMENT.
  936. * PR = PREFERRED RESIDENCE.
  937. * PN = PACK NAME.
  938. * R = DEVICE TYPE FILE IS TO BE ASSIGNED TO.
  939. * S = SPACE REQUIRED ON DEVICE (PRUS-DECIMAL).
  940. * NA = NO ABORT IF ERROR ENCOUNTERED.
  941. * WB = WAIT FOR PACK MOUNT.
  942. * XT = PASSWORD EXPIRATION DATE OR TERM.
  943. * AL = FILE ACCESS LEVEL.
  944. * AC = ALTERNATE CATLIST PERMISSION.
  945. *
  946. * DEFAULT VALUES.
  947. * PW = 0.
  948. * CT = PRIVATE.
  949. * R = 0 (USES MASTER DEVICE OR DEVICE
  950. * FILE CURRENTLY RESIDES ON).
  951. * M = WRITE.
  952. * S = 0.
  953. * NA = 0.
  954. * AC = NO.
  955.  
  956.  
  957. DEFINE BSS 0 ENTRY
  958. SB7 CCDF SET FUNCTION CODE
  959. RJ PFL PROCESS PERMANENT FILE REQUEST
  960. SA5 SPACE CONVERT SPACE PARAMETER
  961. ZR X5,DEF1 IF NOT SPECIFIED
  962. SB7 B1 SET DECIMAL DEFAULT
  963. RJ DXB
  964. NZ X4,ERR IF ERROR
  965. SA6 F+CFOU
  966. DEF1 SB3 B0
  967. SA5 B3+TSFN SET SYSTEM FILE NAME
  968. DEF2 SX6 B1 SET STATUS COMPLETE
  969. BX6 X5+X6
  970. SA6 F
  971. DEFINE F,B3+TPFN,PWD,,RES,CTG,MODE,PKNM,,,BREQ,PRES,,PXT,FAL,A
  972. ,LCT
  973. RJ CES CHECK ERROR STATUS
  974. SB3 B3+B1 ADVANCE TO NEXT FILE
  975. SA5 B3+TSFN
  976. NZ X5,DEF2 IF ANOTHER FILE TO PROCESS
  977. EQ PNC PROCESS NEXT COMMAND
  978. DROPDS SPACE 4,15
  979. *** DROPDS(F=P/PN,R,NA,WB)
  980. *
  981. * DROP DISK SPACE FOR FILE WITH ALTERNATE STORAGE COPY.
  982. * RETURN LOCAL FILE IF PRESENT.
  983. *
  984. * F = LOCAL FILE NAME.
  985. * P = PERMANENT FILE NAME.
  986. * PN = PACK NAME.
  987. * R = RESIDENCE.
  988. * NA = NO ABORT IF ERROR ENCOUNTERED.
  989. * WB = WAIT FOR PACK MOUNT.
  990.  
  991.  
  992. DROPDS BSS 0 ENTRY
  993. SB7 CCDS
  994. RJ PFL PROCESS PERMANENT FILE REQUEST
  995. SB3 B0
  996. SA5 B3+TSFN
  997. DRO1 SX6 B1
  998. BX6 X5+X6
  999. SA6 F
  1000. RETURN F,R
  1001. SA1 B3+TPFN SET PERMANENT FILE NAME (IF SPECIFIED)
  1002. BX6 X1
  1003. SA6 X2+CFPN
  1004. DROPDS F
  1005. RJ CES CHECK ERROR STATUS
  1006. SB3 B3+B1 ADVANCE TO NEXT FILE
  1007. SA5 B3+TSFN
  1008. NZ X5,DRO1 IF ANOTHER FILE TO PROCESS
  1009. EQ PNC PROCESS NEXT COMMAND
  1010. GET SPACE 4,20
  1011. *** GET (F=P/PW,UN,PN,R,RT,NA,WB)
  1012. *
  1013. * RETRIEVE COPY OF INDIRECT ACCESS PERMANENT FILE.
  1014. *
  1015. * AN ATTEMPT WILL BE MADE FIRST TO GET EACH FILE WITH THE
  1016. * *RT* BIT SET IN THE FET. FOR ANY FILE FOR WHICH STAGING WAS
  1017. * INITIATED OR A PF UTILITY WAS ACTIVE, ANOTHER *GET* WILL BE
  1018. * PERFORMED WITHOUT THE *RT* BIT SET TO ACTUALLY GET THE FILE.
  1019. *
  1020. * F = WORKING FILE NAME.
  1021. * P = PERMANENT FILE NAME
  1022. * PW = FILE PASSWORD
  1023. * UN = USER NAME.
  1024. * PN = PACK NAME.
  1025. * R = RESIDENCE.
  1026. * RT = RETURN CONTROL AFTER STAGE INITIATED OR IF
  1027. * A PF UTILITY IS ACTIVE. DO NOT
  1028. * WAIT FOR FILE TO BE AVAILABLE.
  1029. * NA = NO ABORT IF ERROR ENCOUNTERED.
  1030. * WB = WAIT FOR PACK MOUNT.
  1031.  
  1032.  
  1033. GET BSS 0 ENTRY
  1034. SB7 CCGT SET FUNCTION CODE
  1035. RJ PFL PROCESS PERMANENT FILE REQUEST
  1036. RJ GPN GET PRIMARY FILE NAME
  1037. SA1 PFLB GET INDEX OF LAST FILE NAME
  1038. SB4 X1+
  1039. GET1 SB3 B0+ GET FIRST FILE NAME
  1040. GET2 SA5 B3+TSFN SYSTEM FILE NAME
  1041. ZR X5,GET6 IF PREVIOUS *GET* OF THIS FILE WORKED
  1042. SX6 B1
  1043. BX6 X6+X5
  1044. SA6 F
  1045. SA2 GETTAB+1 CHECK FOR PRIMARY FILE
  1046. BX2 X5-X2
  1047. NZ X2,GET3 IF NOT PRIMARY FILE
  1048. OLD F,B3+TPFN,USNM,PWD,PKNM,RES
  1049. EQ GET4 CHECK FOR NEXT FILE
  1050.  
  1051. GET3 GET F,B3+TPFN,USNM,PWD,PKNM,RES
  1052. GET4 RJ CES CHECK ERROR STATUS
  1053. ZR X7,GET5 IF WAITING STAGING, UTILITY OR INTERLOCK
  1054. SX6 B0+ CLEAR FILE NAME
  1055. SA6 B3+TSFN
  1056. EQ GET6 ADVANCE TO NEXT FILE
  1057.  
  1058. GET5 SX6 B1+ SET FLAG TO INDICATE THAT RETRY NEEDED
  1059. SA6 GETA
  1060. GET6 SB3 B3+1 ADVANCE TO NEXT FILE
  1061. LE B3,B4,GET2 IF ANOTHER FILE TO PROCESS
  1062. SA1 GETA
  1063. ZR X1,PNC IF NO RETRY NEEDED
  1064. BX6 X6-X6 CLEAR FLAG
  1065. SA6 A1
  1066. SA1 RTIME
  1067. NZ X1,PNC IF *RT* PARAMETER SPECIFIED
  1068. SA1 F+1 CLEAR REAL-TIME PROCESSING BIT
  1069. MX6 1
  1070. LX6 43-59
  1071. BX6 X1-X6
  1072. SA6 A1
  1073. EQ GET1 RETRY WITH *RT* CLEARED
  1074.  
  1075.  
  1076. GETA CON 0 NONZERO IF RETRY WITHOUT *RT* REQUIRED
  1077. NEW SPACE 4,10
  1078. *** NEW (F/ND)
  1079. *
  1080. * CREATE A NEW PRIMARY FILE. ANY CURRENT WORKING FILE
  1081. * NAMED F IS RETURNED, AND A NEW (EMPTY) FILE F CREATED
  1082. * AND MADE USER S NEW PRIMARY FILE.
  1083. *
  1084. * F = NEW PRIMARY FILE NAME.
  1085. * ND = IF NOT SPECIFIED, ALL WORKING FILES WILL BE
  1086. * RETURNED (EXCEPT PRIMARY).
  1087.  
  1088.  
  1089. NEW BSS 0 ENTRY
  1090. SB7 CCNW SET FUNCTION CODE
  1091. RJ PFL PROCESS PERMANENT FILE REQUEST
  1092. SX1 B1 INDICATE FILE NOT BUSY
  1093. SA2 TSFN
  1094. SA3 A2+B1
  1095. NZ X3,ERR IF MORE THAN 1 WORKING FILE SPECIFIED
  1096. SA3 TPFN
  1097. NZ X3,ERR IF PERMANENT FILE NAME SPECIFIED
  1098. BX6 X1+X2
  1099. SA6 F
  1100. RETURN A6 RETURN EXISTING PRIMARY FILE
  1101. PRIMARY X2 CREATE NEW PRIMARY FILE
  1102. RJ RNF RETURN NON-PRIMARY FILES
  1103. EQ PNC PROCESS NEXT COMMAND
  1104. OLD SPACE 4,15
  1105. *** OLD (F=P/PW,UN,PN,R,RT,NA,WB,ND)
  1106. *
  1107. * RETRIEVE COPY OF PERMANENT FILE FOR SYSTEM USAGE.
  1108. * INDIRECT ACCESS FILES ONLY.
  1109. * FILE F WILL BE MADE USER S NEW PRIMARY FILE.
  1110. *
  1111. * F = WORKING FILE NAME.
  1112. * P = PERMANENT FILE NAME.
  1113. * PW = FILE PASSWORD.
  1114. * UN = USER NAME.
  1115. * PN = PACK NAME.
  1116. * R = RESIDENCE.
  1117. * RT = RETURN CONTROL AFTER STAGE INITIATED OR IF
  1118. * A PF UTILITY IS ACTIVE. DO NOT
  1119. * WAIT FOR FILE TO BE AVAILABLE.
  1120. * NA = NO ABORT IF ERROR ENCOUNTERED.
  1121. * WB = WAIT FOR PACK MOUNT.
  1122. * ND = IF NOT SPECIFIED, ALL WORKING FILES WILL BE
  1123. * RETURNED (EXCEPT PRIMARY).
  1124.  
  1125.  
  1126. OLD BSS 0 ENTRY
  1127. SB7 CCOL SET FUNCTION CODE
  1128. RJ PFL PROCESS PERMANENT FILE REQUEST
  1129. SX1 B1 INDICATE FILE NOT BUSY
  1130. SA2 TSFN
  1131. SA3 A2+B1
  1132. NZ X3,ERR IF MORE THAN 1 WORKING FILE SPECIFIED
  1133. BX6 X1+X2
  1134. SA6 F
  1135. OLD F,TPFN,USNM,PWD,PKNM,RES
  1136. RJ CES CHECK ERROR STATUS
  1137. RJ RNF RETURN NON-PRIMARY FILES
  1138. EQ PNC PROCESS NEXT COMMAND
  1139. PACKNAM SPACE 4,10
  1140. *** PACKNAM(NAME)
  1141. * PACKNAM(NAME,TYPE)
  1142. * PACKNAM(NAME,R=TYPE)
  1143. * PACKNAM(PN=NAME)
  1144. * PACKNAM(PN=NAME,R=TYPE)
  1145. *
  1146. * SET DEFAULT PACKNAME AND DEVICE TYPE.
  1147. *
  1148. * NAME = PACK NAME.
  1149. * TYPE = DEVICE TYPE.
  1150.  
  1151.  
  1152. PACKNAM BSS 0 ENTRY
  1153. SB1 1
  1154. RJ IDF ISSUE DAYFILE MESSAGE
  1155. SB2 CCDR UNPACK COMMAND TO STRING BUFFER
  1156. RJ USB
  1157. RJ POP SKIP OVER PROGRAM NAME
  1158. ZR B6,PAC2 IF NO ARGUMENTS
  1159. SB2 TARGPL CONVERT POSITIONAL ARGUMENTS
  1160. SB3 TARGP
  1161. SB4 PBUF
  1162. RJ CPA
  1163. NG B5,ERR IF ERRORS IN CONVERSION
  1164. PL X1,PAC2 IF NO ARGUMENTS PROCESSED
  1165. SX6 B5+ PROCESS ARGUMENTS
  1166. SB6 PBUF
  1167. SA6 USBC
  1168. RJ ARM
  1169. NZ X1,ERR IF ARGUMENT ERROR
  1170. RJ PRD PROCESS RESIDENCE DEFINITION
  1171. SA4 RES VALIDATE DEVICE TYPE
  1172. ZR X4,PAC2 IF DEVICE TYPE NOT SPECIFIED
  1173. MX0 -6
  1174. LX4 18
  1175. BX6 -X0*X4
  1176. NZ X6,PAC1 IF THREE CHARACTER DEVICE TYPE SPECIFIED
  1177. SX6 1R1 ADD *1* TO TWO CHARACTER DEVICE TYPE
  1178. BX4 X4+X6
  1179. PAC1 SA1 PKNM
  1180. ZR X1,PAC2 IF *PN* NOT SPECIFIED
  1181. BX6 X1+X4 COMBINE *PN* WITH *R*
  1182. SA6 A1
  1183. PAC2 PACKNAM PKNM ENTER PACK NAME AND PACK TYPE
  1184. EQ PNC PROCESS NEXT COMMAND
  1185. PERMIT SPACE 4,20
  1186. *** PERMIT (P,UN1=M1,UN2=M2,...,UNN=MN/PN,R,NA,WB,XT)
  1187. *
  1188. * PERMIT USER TO ACCESS PERMANENT FILE WITH SPECIFIED MODE.
  1189. *
  1190. * P = PERMANENT FILE NAME.
  1191. * UN = USER NAME TO BE PERMITTED.
  1192. * M = MODE OF ACCESS PERMITTED.
  1193. * W - WRITE, READ, EXECUTE APPEND
  1194. * R - READ, EXECUTE.
  1195. * E - EXECUTE.
  1196. * A - APPEND.
  1197. * N - NULL.
  1198. * PN = PACK NAME.
  1199. * R = RESIDENCE.
  1200. * NA = NO ABORT IF ERROR ENCOUNTERED.
  1201. * WB = WAIT FOR PACK MOUNT.
  1202. * XT = PERMIT EXPIRATION DATE OR TERM.
  1203. *
  1204. * DEFAULT VALUES.
  1205. * M = READ.
  1206.  
  1207.  
  1208. PERMIT BSS 0 ENTRY
  1209. SB7 CCPM SET FUNCTION CODE
  1210. RJ PFL PROCESS PERMANENT FILE REQUEST
  1211. SA1 TSFN SET FILE NAME
  1212. SA2 TPFN CHECK FOR LOCAL FILE NAME
  1213. NZ X2,ERR IF LOCAL FILE SPECIFIED
  1214. SB7 CCPM SET PERMIT FUNCTION
  1215. SX6 B1
  1216. BX6 X6+X1
  1217. SA6 F
  1218. SB3 B1
  1219. SA1 B3+TSFN READ FIRST USER NAME
  1220. ZR X1,ERR IF NO USER SPECIFIED
  1221. PER1 SA5 B3+TPFN MODE
  1222. RJ PMD CONVERT MODE
  1223. PERMIT F,,B3+TSFN,MODE,PKNM,RES,,,PXT
  1224. RJ CES CHECK ERROR STATUS
  1225. SB3 B3+B1 ADVANCE TO NEXT USER
  1226. SA1 B3+TSFN
  1227. NZ X1,PER1 IF ANOTHER USER TO PROCESS
  1228. EQ PNC PROCESS NEXT COMMAND
  1229. PURGE SPACE 4,15
  1230. *** PURGE (P/UN,PW,PN,R,NA,WB)
  1231. *
  1232. * PURGE PERMANENT FILE.
  1233. *
  1234. * P = PERMANENT FILE NAME
  1235. * UN = USER NAME.
  1236. * (USER MUST HAVE WRITE PERMISSION)
  1237. * PW = FILE PASSWORD
  1238. * PN = PACK NAME.
  1239. * R = RESIDENCE.
  1240. * NA = NO ABORT IF ERROR ENCOUNTERED.
  1241. * WB = WAIT FOR PACK MOUNT.
  1242.  
  1243.  
  1244. PURGE BSS 0 ENTRY
  1245. SB7 CCPG SET FUNCTION CODE
  1246. RJ PFL PROCESS PERMANENT FILE REQUEST
  1247. SB3 B0 PROCESS FILE NAME LIST
  1248. SA5 B3+TSFN
  1249. PUR1 SX6 B1
  1250. BX6 X6+X5
  1251. SA6 F
  1252. PURGE F,USNM,PWD,PKNM,RES
  1253. RJ CES CHECK ERROR STATUS
  1254. SB3 B3+B1 ADVANCE TO NEXT FILE
  1255. SA5 B3+TSFN
  1256. NZ X5,PUR1 IF ANOTHER FILE TO PROCESS
  1257. EQ PNC PROCESS NEXT COMMAND
  1258. REPLACE SPACE 4,15
  1259. *** REPLACE (F=P/PW,M,UN,PN,R,NA,WB)
  1260. *
  1261. * REPLACE PERMANENT FILE WITH COPY OF WORKING FILE.
  1262. * INDIRECT ACCESS FILES ONLY.
  1263. *
  1264. * F = WORKING FILE NAME.
  1265. * P = PERMANENT FILE NAME
  1266. * PW = FILE PASSWORD
  1267. * M = MODE OF ACCESS (IF FILE DOES NOT ALREADY EXIST).
  1268. * UN = USER NAME.
  1269. * (USER MUST HAVE WRITE PERMISSION).
  1270. * PN = PACK NAME.
  1271. * R = RESIDENCE.
  1272. * NA = NO ABORT IF ERROR ENCOUNTERED.
  1273. * WB = WAIT FOR PACK MOUNT.
  1274.  
  1275.  
  1276. REPLACE BSS 0 ENTRY
  1277. SB7 CCRP SET FUNCTION CODE
  1278. RJ PFL PROCESS PERMANENT FILE REQUEST
  1279. SB3 B0
  1280. SA5 B3+TSFN SYSTEM FILE NAME
  1281. REP1 SX6 B1
  1282. BX6 X5+X6
  1283. SA6 F
  1284. REPLACE F,B3+TPFN,USNM,PWD,,PKNM,RES,,,MODE
  1285. RJ CES CHECK ERROR STATUS
  1286. SB3 B3+B1 ADVANCE TO NEXT FILE
  1287. SA5 B3+TSFN
  1288. NZ X5,REP1 IF ANOTHER FILE TO PROCESS
  1289. EQ PNC PROCESS NEXT COMMAND
  1290. SAVE SPACE 4,25
  1291. *** SAVE (F=P/PW,CT,M,BR,SS,PR,PN,R,NA,WB,XT,AL,AC)
  1292. *
  1293. * SAVE COPY OF WORKING FILE ON PERMANENT FILES.
  1294. * IF PRIMARY FILE IS SAVED, ASSOCIATED SUBSYSTEM IS
  1295. * SET INTO CATALOG.
  1296. * INDIRECT ACCESS FILES ONLY.
  1297. *
  1298. * F = WORKING FILE NAME.
  1299. * P = PERMANENT FILE NAME
  1300. * PW = FILE PASSWORD
  1301. * CT = FILE CATEGORY
  1302. * M = MODE OF ACCESS
  1303. * BR = BACKUP REQUIREMENT.
  1304. * SS = SUBSYSTEM.
  1305. * PN = PACK NAME.
  1306. * R = RESIDENCE.
  1307. * PR = PREFERRED RESIDENCE.
  1308. * NA = NO ABORT IF ERROR ENCOUNTERED.
  1309. * WB = WAIT FOR PACK MOUNT.
  1310. * XT = PASSWORD EXPIRATION DATE OR TERM.
  1311. * AL = FILE ACCESS LEVEL.
  1312. * AC = ALTERNATE CATLIST PERMISSION.
  1313. *
  1314. * DEFAULT VALUES.
  1315. * PW = 0.
  1316. * CT = PRIVATE.
  1317. * M = WRITE.
  1318. * NA = 0.
  1319. * AC = NO.
  1320.  
  1321.  
  1322. SAVE BSS 0 ENTRY
  1323. SB7 CCSV SET FUNCTION CODE
  1324. RJ PFL PROCESS PERMANENT FILE REQUEST
  1325. RJ GPN GET PRIMARY FILE NAME
  1326. SB3 B0
  1327. SA5 B3+TSFN SYSTEM FILE NAME
  1328. SAV1 SX6 B1
  1329. BX6 X6+X5
  1330. SA6 F
  1331. SA1 SUBSYS
  1332. NZ X1,SAV2 IF *SS* SPECIFIED
  1333. SA1 GETTAB+1 CHECK FOR PRIMARY FILE
  1334. BX1 X1-X5
  1335. NZ X1,SAV2 IF NOT MATCH
  1336. SA2 PSSA GET CURRENT SUBSYSTEM
  1337. BX6 X2
  1338. SA6 SUBSYS
  1339. SAV2 SAVE F,B3+TPFN,PWD,,CTG,MODE,PKNM,RES,,SUBSYS,BREQ,PRES,,PXT
  1340. ,,FAL,ALCT
  1341. RJ CES CHECK ERROR STATUS
  1342. SB3 B3+B1 ADVANCE TO NEXT FILE
  1343. SA5 B3+TSFN
  1344. NZ X5,SAV1 IF ANOTHER FILE TO PROCESS
  1345. EQ PNC PROCESS NEXT COMMAND
  1346. TITLE SUBROUTINES.
  1347. CES SPACE 4,20
  1348. ** CES - CHECK ERROR STATUS.
  1349. *
  1350. * ABORT IF *NA* WAS NOT SPECIFIED, AND AN ERROR OTHER THAN
  1351. * *FILE BUSY*, *FILE INTERLOCKED*, *STAGE INITIATED* OR
  1352. * *PF UTILITY ACTIVE* IS DETECTED.
  1353. *
  1354. * ENTRY (X2) = FET ADDRESS.
  1355. *
  1356. * EXIT (X6) = 0 IF *FILE BUSY* ERROR.
  1357. * (X7) = 0 IF *STAGE INITIATED*, *PF UTILITY ACTIVE*
  1358. * OR *FILE INTERLOCKED*.
  1359. * (ERRFLG) .NE. 0 IF ERROR OTHER THAN *FILE BUSY*,
  1360. * *STAGE INITIATED*, *PF UTILITY ACTIVE* OR
  1361. * *FILE INTERLOCKED*.
  1362. *
  1363. * USES X - 1, 6, 7.
  1364. * A - 1, 6.
  1365. *
  1366. * MACROS ABORT.
  1367.  
  1368.  
  1369. CES SUBR ENTRY/EXIT
  1370. MX6 -8 CHECK ERROR STATUS FIELD
  1371. SA1 X2
  1372. AX1 10
  1373. BX1 -X6*X1
  1374. SX6 X1-/ERRMSG/FBS
  1375. SX7 X1-/ERRMSG/PSI
  1376. ZR X1,CESX IF NO ERROR
  1377. ZR X6,CESX IF *FILE BUSY* STATUS
  1378. ZR X7,CESX IF *STAGE INITIATED* STATUS
  1379. SX7 X1-/ERRMSG/PFA
  1380. ZR X7,CESX IF *PF UTILITY ACTIVE* STATUS
  1381. SX7 X1-/ERRMSG/FIN
  1382. ZR X7,CESX IF *FILE INTERLOCKED* STATUS
  1383. SA6 ERRFLG SAVE ERROR FLAG
  1384. SA1 NABT
  1385. NZ X1,CESX IF *NA* SPECIFIED RATHER THAN *WB* OR *RT*
  1386. ABORT ABORT (ERROR MESSAGE ISSUED BY *PFM*)
  1387. CTJ SPACE 4,9
  1388. ** CTJ - CHECK FOR *TXOT* JOB.
  1389. *
  1390. * EXIT (X2) = 0, IF *TXOT* JOB.
  1391. *
  1392. * USES X - 0, 1.
  1393. * A - 1.
  1394.  
  1395.  
  1396. CTJ SUBR ENTRY/EXIT
  1397. SA1 JOPR FETCH ORIGIN TYPE FROM COMMUNICATION AREA
  1398. LX1 -24
  1399. MX0 -12
  1400. BX1 -X0*X1
  1401. SX2 X1-TXOT
  1402. EQ CTJX EXIT
  1403. CVT SPACE 4,15
  1404. ** CVT - CONVERT ARGUMENT
  1405. *
  1406. * ENTRY (B5) = ADDRESS OF TABLE
  1407. * (X5) = ARGUMENT
  1408. * TABLE OF ARGUMENTS IN FOLLOWING FORMAT.
  1409. *T, 42/ARGUMENT,18/VALUE
  1410. *
  1411. * EXIT (X6) = 0 IF LEGAL ARGUMENT
  1412. * (X7) = EQUIVALENT VALUE (RIGHT JUSTIFIED)
  1413. *
  1414. * CALLS *NONE*
  1415. *
  1416. * USES X - 0, 2, 4, 5, 6, 7.
  1417. * A - 4.
  1418. * B - 5.
  1419.  
  1420.  
  1421. CVT SUBR ENTRY/EXIT
  1422. MX0 42
  1423. MX6 1
  1424. BX5 X0*X5
  1425. CVT1 SA4 B5 READ NEXT TABLE ENTRY
  1426. ZR X4,CVTX IF END OF TABLE
  1427. SB5 B5+B1 ADVANCE TABLE POINTER
  1428. BX2 X0*X4 PICK ARGUMENT
  1429. BX7 -X0*X4 PICK EQUIVALENCE
  1430. IX6 X2-X5
  1431. ZR X6,CVTX IF ARGUMENT FOUND
  1432. EQ CVT1 LOOP FOR NEXT TABLE VALUE
  1433. ESP SPACE 4,25
  1434. ** ESP - ENTER SECURE PASSWORD.
  1435. *
  1436. * THIS SUBROUTINE PROCESSES SECURELY ENTERED PASSWORDS.
  1437. * IF OUTPUT FILE IS ASSIGNED TO A TERMINAL THE MESSAGE
  1438. * *PASSWORD:* ALONG WITH BLANK OUT CHARACTERS FOR SECURE
  1439. * ENTRY OF PASSWORD WILL BE SENT TO THE TERMINAL.
  1440. * FILE *INPUT* WILL THEN BE READ FOR THE PASSWORD.
  1441. * FOR BATCH JOBS FILE *INPUT* IS READ FOR THE PASSWORD.
  1442. *
  1443. * ENTRY (PFLA) = COMMAND CODE.
  1444. *
  1445. * EXIT (X6) = PASSWORD.
  1446. * (B7) = COMMAND CODE.
  1447. * TO *ABT* IF INCORRECT PASSWORD ENCOUNTERED.
  1448. *
  1449. * USES X - ALL.
  1450. * A - 1, 2, 6, 7.
  1451. * B - 2, 3, 4, 5, 6, 7.
  1452. *
  1453. * CALLS STF.
  1454. *
  1455. * MACROS CSET, MESSAGE, READSKP, WRITE.
  1456.  
  1457.  
  1458. ESP SUBR ENTRY/EXIT
  1459. SX2 O SET ADDRESS OF FET
  1460. RJ STF CHECK IF OUTPUT ASSIGNED TO TERMINAL
  1461. NZ X6,ESP1 IF OUTPUT NOT ASSIGNED TO TERMINAL
  1462. SA1 X2+B1 SET BUFFER FULL
  1463. SX7 X1
  1464. SX6 X1+PMSGL
  1465. SA6 A1+B1 SET IN BELOW DATA FOR MESSAGE
  1466. SA7 A6+B1 SET OUT = FIRST
  1467. WRITE X2,* FORCE WRITE BIT SET
  1468. SA1 O
  1469. MX0 42
  1470. BX2 X0*X1 FILE NAME FOR OUTPUT POINTER
  1471. SX1 A1 SET ADDRESS OF FET FOR POINTER
  1472. BX6 X1+X2
  1473. SA6 ARGR FORCE WRITE BEFORE READ ON ROLLOUT
  1474. ESP1 SX2 I SET ADDRESS OF FET
  1475. RJ STF CHECK IF INPUT ASSIGNED TO TERMINAL
  1476. NZ X6,ESP2 IF INPUT NOT ASSIGNED TO TERMINAL
  1477. CSET NORMAL ENSURE TERMINAL IN NORMAL MODE
  1478. ESP2 READSKP I,,R READ INPUT FOR PASSWORD
  1479. SA1 I+2 DETERMINE NUMBER OF WORDS READ
  1480. SA2 A1+B1
  1481. IX6 X1-X2
  1482. ZR X6,ESP10 IF NO DATA ENTERED (NULL PASSWORD)
  1483. SB5 X6
  1484. SB3 B0
  1485. BX5 X5-X5
  1486. BX6 X6-X6
  1487. SB4 60
  1488. SB7 B0
  1489. MX0 -6
  1490. ESP3 SA2 IBUF+B3 PICK UP NEXT DATA WORD
  1491. SB2 B0+
  1492. ESP4 LX2 6
  1493. BX1 -X0*X2 PICK UP CHARACTER TO CHECK
  1494. NZ X1,ESP5 IF CHARACTER NOT ZERO
  1495. NZ X5,ESP10 IF 00 ENCOUNTERED
  1496. SX5 B1+ SET FLAG TO INDICATE 0 ENCOUNTERED
  1497. EQ ESP9 CHECK FOR MORE CHARACTERS
  1498.  
  1499. ESP5 NZ X5,ESP11 IF PREVIOUS CHARACTER = COLON
  1500. ESP6 SB6 X1-1R9
  1501. GT B6,ESP8 IF NOT ALPHANUMERIC CHARACTER
  1502. ESP7 SB4 B4-6
  1503. LX7 X1,B4
  1504. BX6 X7+X6
  1505. SB7 B7+1
  1506. SB6 B7-7
  1507. GT B6,ESP11 IF PASSWORD .GT. SEVEN CHARACTERS
  1508. EQ ESP9 CHECK FOR MORE CHARACTERS
  1509.  
  1510. ESP8 SX4 X1-1R*
  1511. ZR X4,ESP7 IF CHARACTER = *
  1512. SX3 X1-1R
  1513. NZ X3,ESP11 IF CHARACTER NOT BLANK
  1514. ESP9 SB2 B2+B1
  1515. SB6 B2-10
  1516. LT B6,ESP4 IF NOT END OF WORD
  1517. SB3 B3+B1
  1518. SB6 B5-B3
  1519. EQ B6,ESP11 IF TOO MUCH DATA ENTERED
  1520. EQ ESP3 GET NEXT WORD
  1521.  
  1522. ESP10 SA1 I+1
  1523. BX7 X1
  1524. SA7 A1+B1 SET IN = FIRST FOR INPUT BUFFER
  1525. SA1 PFLA RESET (B7) = COMMAND CODE
  1526. SB7 X1
  1527. SA1 =1L0 CHECK FOR *0*
  1528. BX7 X6-X1
  1529. NZ X7,ESPX IF *0* NOT SPECIFIED
  1530. BX6 X7 SET NULL PASSWORD
  1531. EQ ESPX RETURN
  1532.  
  1533. ESP11 MESSAGE (=C* INCORRECT PASSWORD.*)
  1534. ABORT
  1535. GPN SPACE 4,21
  1536. ** GPN - GET PRIMARY FILE NAME.
  1537. * THIS SUBROUTINE IS USED FOR DETERMINING THE NAME OF
  1538. * THE USER S PRIMARY FILE- IF ONE EXISTS.
  1539. *
  1540. * A LFM GETFNT CALL IS MADE, WITH SELECTIVITY OF PRIMARY
  1541. * TYPE ONLY, AND CONTROL BITS SET FOR NORMAL TREATMENT
  1542. * OF CHECKPOINT FILES AND NO MODIFICATION OF FST ENTRIES.
  1543. *
  1544. * ENTRY (GPNB) .NE. 0 IMPLIES PRIMARY HAS ALREADY BEEN
  1545. * FETCHED BY A DEFAULT CALL.
  1546. *
  1547. * EXIT IF (GPNB) = 0,
  1548. * (GETTAB+1) AND (X6) .NE. 0 IMPLIES PRIMARY EXISTS AND
  1549. * CONTAINS NAME (LEFT
  1550. * JUSTIFIED WITH ZERO FILL).
  1551. * (GETTAB+1) AND (X6) = 0 IMPLIES NO PRIMARY EXISTS.
  1552. *
  1553. * USES X - 2, 3, 6, 7.
  1554. * A - 2, 6, 7.
  1555. *
  1556. * MACROS GETFNT.
  1557.  
  1558.  
  1559. GPN SUBR ENTRY/EXIT
  1560. SA2 GPNB
  1561. NZ X2,GPNX IF HAVE ALREADY FETCHED PRIMARY, EXIT
  1562. BX7 X7-X7 CLEAR BUFFER CONTROL WORD
  1563. SA7 GETTAB
  1564. SA2 GPNA
  1565. BX6 X2
  1566. SA6 F+CFPN
  1567. GETFNT F
  1568. BX6 X6-X6 CLEAR PFM LOCATION FET+CFPN
  1569. SA6 F+CFPN
  1570. SA2 GETTAB+1
  1571. MX3 42 MASK OUT ALL BUT NAME OF PRIMARY
  1572. BX6 X2*X3
  1573. SA6 A2
  1574. EQ GPNX EXIT
  1575.  
  1576. * GETFNT CONTROL WORD.
  1577.  
  1578. PRIM DECMIC PTFT
  1579. PMSK EQU 1S"PRIM"
  1580. GPNA VFD 12/1,24/PMSK,6/15B,18/GETTAB
  1581. GPNB DATA 0 PRIMARY FETCHED FLAG
  1582. IDF SPACE 4,10
  1583. ** IDF - ISSUE DAYFILE MESSAGE.
  1584. *
  1585. * ENTRY (CCDR) = COMMAND.
  1586. *
  1587. * USES X - 4, 5.
  1588. * A - 4, 5.
  1589. * B - 2, 6.
  1590. *
  1591. * CALLS CTJ, RSP.
  1592.  
  1593.  
  1594. IDF SUBR ENTRY/EXIT
  1595. SA4 TARG+1 FWA ARGUMENT TABLE
  1596. SB6 TKPR FWA KEYWORD/POSITION TABLE
  1597. SA5 CCDR FWA COMMAND BUFFER
  1598. SB2 1R/ SKIP TO */*
  1599. RJ RSP REMOVE SECURE PARAMETERS FROM COMMAND
  1600. MESSAGE CCDR,0,R ISSUE COMMAND TO DAYFILE
  1601. EQ IDFX RETURN
  1602.  
  1603.  
  1604. TKPR BSS 0 TABLE OF KEYWORDS/POSITIONS TO REMOVE
  1605. CON 2LAL ACCESS LEVEL
  1606. CON 2LPW PASSWORD
  1607. CON 0 END OF TABLE
  1608. PAC SPACE 4,15
  1609. ** PAC - PROCESS ALTERNATE CATLIST PERMISSION.
  1610. *
  1611. * ENTRY (ALCT) = ALTERNATE CATLIST PERMISSION (DISPLAY CODE).
  1612. *
  1613. * EXIT (ALCT) = ALTERNATE CATLIST PERMISSION
  1614. * (NUMERIC EQUIVALENT).
  1615. *
  1616. * USES X - 5, 7.
  1617. * A - 5, 7.
  1618. * B - 5.
  1619. *
  1620. * CALLS CVT.
  1621. *
  1622. * MACROS ABORT, MESSAGE.
  1623.  
  1624.  
  1625. PAC SUBR ENTRY/EXIT
  1626. SA5 ALCT
  1627. ZR X5,PACX IF NOT SPECIFIED
  1628. SB5 TACP
  1629. RJ CVT CONVERT ARGUMENT
  1630. SA7 A5
  1631. ZR X6,PACX IF LEGAL ARGUMENT
  1632. MESSAGE (=C* ERROR IN ALTERNATE CATLIST PERMISSION.*)
  1633. ABORT
  1634.  
  1635.  
  1636. ****
  1637. * TABLE OF ALTERNATE CATLIST PERMISSIONS.
  1638.  
  1639.  
  1640. TACP BSS 0
  1641. VFD 42/0LN,18/ACNO
  1642. VFD 42/0LY,18/ACYS
  1643. CON 0
  1644. ****
  1645. PAL SPACE 4,10
  1646. ** PAL - PROCESS ACCESS LEVEL.
  1647. *
  1648. * EVALUATE IF AN ACCESS LEVEL HAS BEEN SPECIFIED. IF SO,
  1649. * SET ACCESS LEVEL VALUE AND *SP* BIT IN THE FET.
  1650. *
  1651. * ENTRY (FAL) = FILE ACCESS LEVEL.
  1652. *
  1653. * USES X - 1, 2, 6.
  1654. * A - 1, 6.
  1655. * B - 2.
  1656. *
  1657. * CALLS VLC.
  1658. *
  1659. * MACROS ABORT.
  1660.  
  1661.  
  1662. PAL SUBR ENTRY/EXIT
  1663. SA1 FAL
  1664. ZR X1,PALX IF *AL* NOT SPECIFIED
  1665. SB2 B0 SET ACCESS LEVEL FLAG
  1666. RJ VLC VALIDATE ACCESS LEVEL MNEMONIC
  1667. NG X2,PAL1 IF INCORRECT ACCESS LEVEL
  1668. BX6 X2 SET *AL* IN FET
  1669. SA6 FAL
  1670. SA1 F+B1 SET *SP* BIT IN FET
  1671. SX2 B1
  1672. LX2 39-0
  1673. BX6 X1+X2
  1674. SA6 A1
  1675. EQ PALX RETURN
  1676.  
  1677. PAL1 MESSAGE (=C* UNKNOWN ACCESS LEVEL NAME.*)
  1678. ABORT
  1679. PBR SPACE 4,20
  1680. ** PBR - PROCESS BACKUP REQUIREMENT.
  1681. *
  1682. * ENTRY (BREQ) = BACKUP REQUIREMENT (DISPLAY CODE).
  1683. *
  1684. * EXIT (BREQ) = BACKUP REQUIREMENT (NUMERIC EQUIVALENT).
  1685. *
  1686. * USES X - 5.
  1687. * A - 5, 7.
  1688. * B - 5.
  1689. *
  1690. * CALLS CVT.
  1691. *
  1692. * MACROS ABORT, MESSAGE.
  1693.  
  1694.  
  1695. PBR SUBR ENTRY/EXIT
  1696. SA5 BREQ
  1697. ZR X5,PBRX IF NO ARGUMENT SPECIFIED
  1698. SB5 TBREQ
  1699. RJ CVT CONVERT ARGUMENT TO EQUIVALENT
  1700. SA7 A5 SAVE CONVERSION
  1701. ZR X6,PBRX IF LEGAL ARGUMENT
  1702.  
  1703. MESSAGE (=C* ERROR IN BACKUP REQUIREMENT.*)
  1704. ABORT
  1705.  
  1706.  
  1707. ****
  1708. * TABLE OF BACKUP REQUIREMENTS.
  1709.  
  1710.  
  1711. TBREQ BSS 0
  1712. VFD 42/0LN,18/BRNO BACKUP NOT REQUIRED
  1713. VFD 42/0LY,18/BRAL BACKUP ALWAYS REQUIRED
  1714. VFD 42/0LMD,18/BRMD BACKUP REQUIRED UNLESS FILE ON MSF
  1715. CON 0
  1716. ****
  1717. PCT SPACE 4,15
  1718. ** PCT - PROCESS FILE CATEGORY.
  1719. *
  1720. * ENTRY (CTG) = LEFT JUSTIFIED DISPLAY CODED ARGUMENT.
  1721. *
  1722. * EXIT (CTG) = RIGHT JUSTIFIED EQUIVALENT ARGUMENT.
  1723. *
  1724. * USES X - 5, 7.
  1725. * A - 5, 7.
  1726. * B - 5.
  1727. *
  1728. * CALLS CVT.
  1729. *
  1730. * MACROS ABORT, MESSAGE.
  1731.  
  1732.  
  1733. PCT SUBR ENTRY/EXIT
  1734. SA5 CTG
  1735. ZR X5,PCTX IF NO ARGUMENT
  1736. SB5 TCAT
  1737. RJ CVT CONVERT ARGUMENT TO EQUIVALENT
  1738. SX7 X7+40B
  1739. SA7 A5 SAVE CONVERSION
  1740. ZR X6,PCTX IF LEGAL ARGUMENT
  1741.  
  1742. MESSAGE (=C* ERROR IN FILE CATEGORY.*)
  1743. ABORT
  1744.  
  1745.  
  1746. ****
  1747. * TABLE OF FILE CATEGORIES.
  1748.  
  1749.  
  1750. TCAT BSS 0
  1751. VFD 42/0LPRIVATE,18/FCPR
  1752. VFD 42/0LP,18/FCPR
  1753. VFD 42/0LPR,18/FCPR
  1754. VFD 42/0LSPRIV,18/FCSP
  1755. VFD 42/0LS,18/FCSP
  1756. VFD 42/0LLIBRARY,18/FCLI
  1757. VFD 42/0LL,18/FCLI
  1758. VFD 42/0LPUBLIC,18/FCLI
  1759. VFD 42/0LPU,18/FCLI
  1760. CON 0
  1761. ****
  1762. PDC SPACE 4,25
  1763. ** PDC - PROCESS DEFAULT CALL.
  1764. *
  1765. * DETERMINE IF THE COMMAND IS A DEFAULT CALL.
  1766. * THIS IS A *GET*, *PURGE*, *REPLACE*, OR *SAVE*
  1767. * WITH NO ARGUMENTS OR ONE BLANK ARGUMENT.
  1768. *
  1769. * ENTRY (B4) = ARGUMENT COUNT.
  1770. * (B6) = SHIFT COUNT FOR COMMAND.
  1771. * (B7) = COMMAND CODE.
  1772. *
  1773. * EXIT (B2) .NE. 0 IF NOT DEFAULT CALL.
  1774. * ABORT IF DEFAULT AND NO PRIMARY FILE.
  1775. * IF DEFAULT AND PRIMARY FILE FOUND-
  1776. * (B2) = 0
  1777. * (TSFN) = PRIMARY FILE NAME.
  1778. * (GPNB) .NE. 0.
  1779. *
  1780. * USES X - 1, 2, 6.
  1781. * A - 2, 6.
  1782. * B - 2.
  1783. *
  1784. * CALLS GPN.
  1785. *
  1786. * MACROS ABORT, MESSAGE.
  1787.  
  1788.  
  1789. PDC SUBR ENTRY/EXIT
  1790. SB2 B1+ SET NO DEFAULT EXIT
  1791. GT B4,B1,PDCX IF TOO MANY ARGUMENTS
  1792. SX1 PRM9
  1793. LX1 X1,B6
  1794. PL X1,PDCX IF DEFAULT NOT LEGAL FOR COMMAND
  1795. SA2 ARGR
  1796. NZ X2,PDCX IF ARGUMENT NOT BLANK
  1797. RJ GPN GET PRIMARY FILE NAME
  1798. ZR X6,PDC1 IF NO PRIMARY FILE
  1799. SA6 GPNB SET PRIMARY FETCHED FLAG
  1800. SA6 TSFN SET DEFAULT FILE NAME
  1801. SB2 B0 SET DEFAULT EXIT
  1802. BX6 X6-X6
  1803. SA6 TSFN+1 TERMINATE *TSFN* TABLE
  1804. SA6 TPFN
  1805. EQ PDCX RETURN
  1806.  
  1807. PDC1 MESSAGE (=C* NO PRIMARY FILE.*)
  1808. ABORT
  1809. PMD SPACE 4,15
  1810. ** PMD - PROCESS MODE OF FILE.
  1811. *
  1812. * ENTRY (X5) = ACCESS MODE (DISPLAY CODE).
  1813. *
  1814. * EXIT (MODE) = ACCESS MODE (NUMERIC EQUIVALENT).
  1815. *
  1816. * USES X - 5, 7.
  1817. * A - 5, 7.
  1818. * B - 5.
  1819. *
  1820. * CALLS CVT.
  1821. *
  1822. * MACROS ABORT, MESSAGE.
  1823.  
  1824.  
  1825. PMD SUBR ENTRY/EXIT
  1826. NZ X5,PMD2 IF MODE ENTERED
  1827. SX7 PTRD SET DEFAULT MODE (READ MODE)
  1828. PMD1 SA7 MODE
  1829. EQ PMDX
  1830.  
  1831. PMD2 SB5 TMDE
  1832. RJ CVT CONVERT ARGUMENT
  1833. SX7 X7+40B
  1834. ZR X6,PMD1 IF LEGAL ARGUMENT
  1835.  
  1836. MESSAGE (=C* ERROR IN MODE.*)
  1837. ABORT
  1838.  
  1839.  
  1840. ****
  1841. * TABLE OF FILE MODE EQUIVALENCES.
  1842.  
  1843.  
  1844. TMDE BSS 0
  1845. VFD 42/0LWRITE,18/PTWR
  1846. VFD 42/0LW,18/PTWR
  1847. VFD 42/0LREAD,18/PTRD
  1848. VFD 42/0LR,18/PTRD
  1849. VFD 42/0LEXECUTE,18/PTEX
  1850. VFD 42/0LE,18/PTEX
  1851. VFD 42/0LAPPEND,18/PTAP
  1852. VFD 42/0LA,18/PTAP
  1853. VFD 42/0LNULL,18/PTNU
  1854. VFD 42/0LN,18/PTNU
  1855. VFD 42/0LMODIFY,18/PTMD
  1856. VFD 42/0LM,18/PTMD
  1857. VFD 42/0LREADMD,18/PTRM
  1858. VFD 42/0LRM,18/PTRM
  1859. VFD 42/0LREADAP,18/PTRA
  1860. VFD 42/0LRA,18/PTRA
  1861. VFD 42/0LUPDATE,18/PTUP
  1862. VFD 42/0LU,18/PTUP
  1863. VFD 42/0LREADUP,18/PTRU
  1864. VFD 42/0LRU,18/PTRU
  1865. CON 0
  1866. ****
  1867. PNA SPACE 4,10
  1868. ** PNA - PROCESS *NO ABORT* AND *WAIT BUSY* OPTIONS.
  1869. *
  1870. * ENTRY (NABT) .NE. 0 IF *NO ABORT* SPECIFIED.
  1871. * (WBUSY) .NE. 0 IF *WAIT BUSY* REQUESTED.
  1872. *
  1873. * EXIT ERROR PROCESSING BIT SET IF REQUIRED.
  1874. * TO *ERR* IF BOTH *NA* AND *WB* SPECIFIED.
  1875. *
  1876. * USES X - 1, 2, 6.
  1877. * A - 1, 2, 6.
  1878.  
  1879.  
  1880. PNA SUBR ENTRY/EXIT
  1881. SA1 NABT
  1882. SA2 WBUSY
  1883. IX1 X1+X2
  1884. ZR X1,PNAX IF NEITHER *NA* OR *WB* SPECIFIED
  1885. SX1 X1-2
  1886. ZR X1,ERR IF BOTH *NA* AND *WB* SPECIFIED
  1887. SA1 F+1 SET ERROR PROCESSING BIT
  1888. SX6 B1
  1889. LX6 44
  1890. BX6 X1+X6
  1891. SA6 A1
  1892. EQ PNAX RETURN
  1893. PPX SPACE 4,20
  1894. ** PPX - PROCESS PASSWORD/PERMIT EXPIRATION DATE/TERM.
  1895. *
  1896. * ENTRY (B7) = (PFLA) = COMMAND CODE.
  1897. * (PXD) = EXPIRATION DATE (DISPLAY CODE).
  1898. * (PXT) = EXPIRATION TERM (DISPLAY CODE).
  1899. *
  1900. * EXIT (B7) = COMMAND CODE.
  1901. * (PXT) = NUMERIC EXPIRATION DATE/TERM.
  1902. * TO *ERR* IF BOTH *XD* AND *XT* SPECIFIED,
  1903. * OR IF ONE IS SPECIFIED ON A *SAVE OR *DEFINE*
  1904. * WITHOUT *PW*.
  1905. *
  1906. * USES X - 0, 1, 2, 3, 5, 6.
  1907. * A - 1, 2, 3, 6.
  1908. * B - 2, 7.
  1909. *
  1910. * CALLS DXB, VDT.
  1911. *
  1912. * MACROS ABORT, MESSAGE, PDATE.
  1913.  
  1914.  
  1915. PPX6 SA6 PXT SAVE *XT*
  1916. SA1 PFLA RESTORE COMMAND CODE
  1917. SB7 X1
  1918.  
  1919. PPX SUBR ENTRY/EXIT
  1920. SA1 PXT
  1921. SA2 PXD
  1922. SB2 X1
  1923. SB2 X2+B2
  1924. ZR B2,PPXX IF NEITHER *XD* OR *XT* SPECIFIED
  1925. NE B2,B1,ERR IF BOTH *XD* AND *XT* SPECIFIED
  1926. SB2 B7-CCCG
  1927. ZR B2,PPX1 IF *CHANGE* COMMAND
  1928. SB2 B7-CCPM
  1929. ZR B2,PPX1 IF *PERMIT* COMMAND
  1930. SA3 PWD
  1931. ZR X3,ERR IF *PW* NOT ENTERED
  1932. PPX1 MX0 42
  1933. ZR X2,PPX2 IF *XT* SPECIFIED RATHER THAN *XD*
  1934.  
  1935. * PROCESS EXPIRATION DATE.
  1936.  
  1937. BX1 X0*X2
  1938. SX2 B0
  1939. BX3 X1
  1940. LX3 -54
  1941. SX3 X3-1R*
  1942. ZR X3,PPX2.1 IF NON-EXPIRING PASSWORD/PERMIT REQUESTED
  1943. RJ VDT VERIFY DATE SPECIFIED
  1944. NG X1,PPX5 IF DATE ALREADY OCCURRED
  1945. NG X6,PPX5 IF CONVERSION ERROR
  1946. EQ PPX6 SAVE EXPIRATION DATE
  1947.  
  1948. * PROCESS EXPIRATION TERM.
  1949.  
  1950. PPX2 BX1 X0*X1
  1951. BX5 X1
  1952. LX1 -54
  1953. SX2 X1-1R* CHECK FOR *XT* = ASTERISK
  1954. NZ X2,PPX3 IF NOT NON-EXPIRING
  1955. PPX2.1 SX6 7777B
  1956. EQ PPX6 STORE NON-EXPIRING TERM
  1957.  
  1958. PPX3 SX2 X1-1R0 CHECK FOR *XT* = CHARACTER ZERO
  1959. NZ X2,PPX4 IF NOT IMMEDIATELY EXPIRING
  1960. PDATE PPXA SET *XT* = CURRENT DATE
  1961. SA2 PPXA
  1962. AX2 18
  1963. BX6 X2
  1964. EQ PPX6 SAVE CURRENT DATE
  1965.  
  1966. PPX4 ZR X5,PPX5 IF NULL TERM SPECIFIED
  1967. SB7 1 CONVERT DECIMAL NUMBER
  1968. RJ DXB CONVERT DISPLAY CODE TO BINARY NUMBERS
  1969. NZ X4,PPX5 IF CONVERSION ERROR
  1970. SB2 X6-7777B
  1971. LE B2,B0,PPX6 IF TERM DOES NOT EXCEED MAXIMUM
  1972. PPX5 MESSAGE (=C* ERROR IN EXPIRATION DATE.*)
  1973. ABORT
  1974.  
  1975. PPXA DATA 0
  1976. PRD SPACE 4,10
  1977. ** PRD - PROCESS RESIDENCE DEFINITION.
  1978. *
  1979. * ENTRY (RES) = RESIDENCE OF FILE.
  1980. *
  1981. * USES X - 0, 1, 2, 3.
  1982. * A - 2, 3.
  1983. *
  1984. * MACROS ABORT, MESSAGE.
  1985.  
  1986.  
  1987. PRD SUBR ENTRY/EXIT
  1988. SA3 RES
  1989. ZR X3,PRDX IF RESIDENCE NOT DEFINED
  1990. MX0 12
  1991. BX1 X0*X3
  1992. MX2 -6
  1993. LX3 18
  1994. BX2 -X2*X3
  1995. BX0 X0*X3
  1996. NZ X0,PRD3 IF RESIDENCE ENTRY TOO LONG
  1997. ZR X2,PRD1 IF *N* NOT DEFINED
  1998. SX3 X2-1R1
  1999. SX2 X2-1R9
  2000. NG X3,PRD3 IF *N* .LT. 1
  2001. PL X2,PRD3 IF *N* .GT. 8
  2002. PRD1 SA2 TDVM-1
  2003. PRD2 SA2 A2+B1
  2004. BX3 X1-X2
  2005. ZR X3,PRDX IF MATCH ON DEVICE
  2006. NZ X2,PRD2 IF NOT END OF TABLE
  2007. PRD3 MESSAGE PRDA * ERROR IN RESIDENCE.*
  2008. ABORT
  2009.  
  2010.  
  2011. PRDA DATA C* ERROR IN RESIDENCE.*
  2012. TDVM SPACE 4,10
  2013. ** TDVM - TABLE OF DEVICE MNEMONICS.
  2014. *
  2015. *T TDVM 12/MN, 48/0
  2016. *
  2017. * MN = DEVICE MNEMONIC.
  2018.  
  2019.  
  2020. ** TBLM - DEFINE MACRO TO PRODUCE *TDVM* TABLE.
  2021.  
  2022. PURGMAC TBLM
  2023. TBLM MACRO EQ
  2024. VFD 12/2R_EQ,48/0
  2025. ENDM
  2026.  
  2027. LIST G
  2028. TDVM TBL "MSEQ"
  2029. CON 0 END OF TABLE
  2030. LIST -G
  2031. PRE SPACE 4,20
  2032. ** PRE - PROCESS PREFERRED RESIDENCE.
  2033. *
  2034. * ENTRY (PRES) = PREFERRED RESIDENCE (DISPLAY CODE).
  2035. *
  2036. * EXIT (PRES) = PREFERRED RESIDENCE (NUMERIC EQUIVALENT).
  2037. *
  2038. * USES X - 5.
  2039. * A - 5, 7.
  2040. * B - 5.
  2041. *
  2042. * CALLS CVT.
  2043. *
  2044. * MACROS ABORT, MESSAGE.
  2045.  
  2046.  
  2047. PRE SUBR ENTRY/EXIT
  2048. SA5 PRES
  2049. ZR X5,PREX IF NO ARGUMENT SPECIFIED
  2050. SB5 TPRES
  2051. RJ CVT CONVERT ARGUMENT TO EQUIVALENT
  2052. SA7 A5 SAVE CONVERSION
  2053. ZR X6,PREX IF LEGAL ARGUMENT
  2054. MESSAGE (=C*ERROR IN PREFERRED RESIDENCE.*)
  2055. ABORT
  2056.  
  2057.  
  2058. ****
  2059. * TABLE OF PREFERRED RESIDENCES.
  2060.  
  2061.  
  2062. TPRES BSS 0
  2063. VFD 42/0LL,18/RSLK
  2064. VFD 42/0LD,18/RSDS
  2065. VFD 42/0LM,18/RSMS
  2066. VFD 42/0LN,18/RSNP
  2067. VFD 42/0LT,18/RSTP
  2068. CON 0
  2069. ****
  2070. PRT SPACE 4,10
  2071. ** PRT - PROCESS *RT* PARAMETER.
  2072. *
  2073. * ENTRY (RTIME) = 0 IF *RT* NOT SPECIFIED.
  2074. * (PFLA) = COMMAND CODE.
  2075. * (PFLB) = NUMBER OF FILES SPECIFIED - 1.
  2076. *
  2077. * EXIT *RT* BIT SET IN FET IF REQUESTED, OR IF MORE THAN ONE
  2078. * FILE SPECIFIED ON AN *ATTACH* OR *GET* COMMAND.
  2079. *
  2080. * USES X - 1, 6.
  2081. * A - 1, 6.
  2082.  
  2083.  
  2084. PRT SUBR ENTRY/EXIT
  2085. SA1 RTIME
  2086. NZ X1,PRT2 IF *RT* SPECIFIED
  2087. SA1 PFLA
  2088. SX6 X1-CCAT
  2089. ZR X6,PRT1 IF *ATTACH* COMMAND
  2090. SX6 X1-CCGT
  2091. NZ X6,PRTX IF NOT *GET* COMMAND
  2092. PRT1 SA1 PFLB
  2093. ZR X1,PRTX IF ONLY ONE FILE SPECIFIED
  2094. PRT2 SA1 F+1 SET REAL-TIME PROCESSING BIT
  2095. MX6 1
  2096. LX6 43-59
  2097. BX6 X1+X6
  2098. SA6 A1
  2099. EQ PRTX RETURN
  2100. PSR SPACE 4,10
  2101. ** PSR - PROCESS SPECIAL REQUEST SUBFUNCTION.
  2102. *
  2103. * EXIT *SREQ* SET TO *CE* OR *CP* IF EITHER IS PRESENT.
  2104. *
  2105. * USES A - 1, 2, 6.
  2106. * X - 1, 2, 6.
  2107. *
  2108. * MACROS ABORT, MESSAGE.
  2109.  
  2110.  
  2111. PSR SUBR ENTRY/EXIT
  2112. SA1 CLRE ENSURE *CE* AND *CP* NOT BOTH SPECIFIED
  2113. ZR X1,PSR1 IF *CE* PARAMETER NOT PRESENT
  2114. SA2 CPNG GET *CP* PARAMETER
  2115. BX6 X1
  2116. ZR X2,PSR2 IF *CP* PARAMETER NOT PRESENT
  2117. MESSAGE (=C* PARAMETERS CE AND CP ARE MUTUALLY EXCLUSIVE.*)
  2118. ABORT
  2119.  
  2120. PSR1 SA2 CPNG PLACE *CP* INTO *SREQ* (MAY BE ZERO)
  2121. BX6 X2
  2122. PSR2 SA6 SREQ PLACE EITHER *CE* OR *CP* INTO *SREQ*
  2123. EQ PSRX RETURN
  2124. PSS SPACE 4,10
  2125. ** PSS - PROCESS SUBSYSTEM SELECTION.
  2126. *
  2127. * ENTRY (SUBSYS) = VALUE FROM *SS* PARAMETER.
  2128. *
  2129. * EXIT (SUBSYS) = SUBSYSTEM VALUE (IF *SS* SPECIFIED).
  2130. * (PSSA) = CURRENT SUBSYSTEM.
  2131. *
  2132. * USES X - 0, 1, 5, 7.
  2133. * A - 1, 5, 7.
  2134. *
  2135. * CALLS CVT.
  2136.  
  2137.  
  2138. PSS SUBR ENTRY/EXIT
  2139. SA5 SUBSYS GET *SS* PARAMETER VALUE
  2140. GETSS PSSA GET CURRENT SUBSYSTEM
  2141. ZR X5,PSSX IF *SS* NOT SPECIFIED
  2142. MX0 42
  2143. SA1 PSSA
  2144. BX5 X0*X5
  2145. BX7 X1
  2146. ZR X5,PSS1 IF *SS* NOT EQUIVALENCED
  2147. SB5 TSSY
  2148. RJ CVT CONVERT ARGUMENT
  2149. ZR X6,PSS1 IF LEGAL VALUE
  2150. MESSAGE (=C* ERROR IN SUBSYSTEM.*)
  2151. ABORT
  2152.  
  2153. PSS1 SX7 X7+40B SAVE SELECTED SUBSYSTEM
  2154. SA7 SUBSYS
  2155. EQ PSSX RETURN
  2156.  
  2157. PSSA CON 0 CURRENT SUBSYSTEM
  2158.  
  2159.  
  2160. ****
  2161. * TABLE OF SUBSYSTEMS.
  2162.  
  2163.  
  2164. TSSY BSS 0
  2165. VFD 42/0LNULL,18/NULS
  2166. VFD 42/0LNUL,18/NULS
  2167. VFD 42/0LBASIC,18/BASS
  2168. VFD 42/0LBAS,18/BASS
  2169. VFD 42/0LFORTRAN,18/FORS
  2170. VFD 42/0LFOR,18/FORS
  2171. VFD 42/0LFTNTS,18/FTNS
  2172. VFD 42/0LFTN,18/FTNS
  2173. VFD 42/0LEXECUTE,18/EXES
  2174. VFD 42/0LEXE,18/EXES
  2175. VFD 42/0LBATCH,18/BATS
  2176. VFD 42/0LBAT,18/BATS
  2177. CON 0
  2178. ****
  2179. RNF SPACE 4,14
  2180. ** RNF - RETURN NON-PRIMARY FILES.
  2181. * THIS SUBROUTINE USES THE LFM FUNCTION GETFNT TO RETURN ALL
  2182. * FILES CURRENTLY ASSIGNED TO JOB (EXCEPT THE PRIMARY FILE
  2183. * AND ANY FILE WITH *CBST*, *CKST* OR *NDST* STATUS SET).
  2184. *
  2185. * ENTRY NONE.
  2186. *
  2187. * EXIT NONE.
  2188. *
  2189. * USES X - 0, 1, 2, 3, 4, 7.
  2190. * A - 2, 7.
  2191. * B - 3, 4.
  2192. *
  2193. * MACROS GETFNT, RECALL, RETURN.
  2194.  
  2195.  
  2196. RNF SUBR ENTRY/EXIT
  2197. SA2 NODROP
  2198. NZ X2,RNFX IF ND PARAMETER SPECIFIED, EXIT
  2199. BX7 X7-X7 CLEAR BUFFER CONTROL WORD
  2200. SA7 GETTAB
  2201. SA2 RNFA MAKE GETFNT CALL
  2202. BX7 X2
  2203. MX0 42
  2204. RECALL F
  2205. SA7 F+CFPN
  2206.  
  2207. RNF1 GETFNT F
  2208. SB3 B0
  2209. SB4 GLEN
  2210. MX3 -6
  2211.  
  2212. RNF2 SA2 B3+GETTAB+1
  2213. ZR X2,RNFX IF END OF FILES
  2214. BX1 -X3*X2
  2215. SX7 X1-NDST
  2216. ZR X7,RNF3 IF *NDST* FILE
  2217. SX7 X1-CBST
  2218. SX4 X1-CKST
  2219. ZR X7,RNF3 IF CHECKPOINT FILE
  2220. ZR X4,RNF3 IF CHECKPOINT FILE
  2221. BX4 X0*X2
  2222. SX1 B1+ SET COMPLETE BIT
  2223. BX7 X1+X4
  2224. RECALL F
  2225. SA7 F
  2226. RETURN F
  2227.  
  2228. RNF3 SB3 B3+2
  2229. NE B3,B4,RNF2 IF MORE FILES IN GETTAB
  2230. SA2 GETTAB
  2231. NZ X2,RNF1 IF MORE FILES TO PROCESS
  2232. EQ RNFX RETURN
  2233.  
  2234. * GETFNT CONTROL WORD.
  2235.  
  2236. RNFA VFD 12/GFILES,24/-PMSK,6/15B,18/GETTAB
  2237. SPACE 4
  2238. * COMMON DECKS.
  2239.  
  2240. *CALL COMCARM
  2241. *CALL COMCARG
  2242. *CALL COMCCIO
  2243. *CALL COMCCPA
  2244. *CALL COMCCPM
  2245. *CALL COMCDXB
  2246. *CALL COMCLFM
  2247. *CALL COMCPFM
  2248. *CALL COMCPOP
  2249. *CALL COMCRSP
  2250. *CALL COMCSTF
  2251. *CALL COMCSYS
  2252. *CALL COMCUSB
  2253. *CALL COMCVDT
  2254. *CALL COMCVLC
  2255. SPACE 4,10
  2256. * BUFFER DEFINITIONS.
  2257.  
  2258.  
  2259. USE BUFFERS
  2260.  
  2261. TSFN BSSN NFILES SYSTEM FILE NAMES
  2262. TPFN BSSN NFILES PERMANENT FILE NAMES
  2263. IBUF BSSN BUFL INPUT BUFFER
  2264. GETTAB BSSN GLEN+2 *GETFNT* TABLE
  2265. PBUF BSSN PBUFL *PACKNAM* STRING BUFFER
  2266. RFL= BSSN 0
  2267. SPACE 4
  2268. END