User Tools

Site Tools


cdc:nos2.source:opl871:catlist

CATLIST

Table Of Contents

  • [00010] CATLIST - CATALOG PERMANENT FILES.
  • [00012] CATALOG PERMANENT FILE.
  • [00278] DATA LOCATIONS.
  • [00348] MAIN PROGRAM.
  • [00422] END - END PROCESSING.
  • [00438] PROCESSING ROUTINES.
  • [00440] FAC - FULL ALTERNATE CATALOG LIST.
  • [00477] FFL - FULL LISTING.
  • [00514] FLC - FILE LIST AND CATEGORY SET.
  • [00533] FPD - FULL LIST OF PERMIT DATA.
  • [00619] SPD - SHORT LIST OF PERMIT DATA.
  • [00649] SSL - SHORT SORTED LIST.
  • [00835] GENERAL SUBROUTINES.
  • [00837] AEN - ADVANCE ENTRY NUMBER.
  • [00864] AFS - ACCUMULATE FILE STATISTICS.
  • [00918] ALN - ADVANCE LINE NUMBER.
  • [00957] CFN - CHECK FILENAME IN LIST.
  • [01001] CRS - CHECK RESIDENCE AND FILE TYPE.
  • [01053] CSU - CHECK FOR SPECIAL USER.
  • [01092] DSB - DISPLAY SORT BREAK.
  • [01119] FCB - FILL CATALOG AND PERMIT BUFFER.
  • [01153] GNI - GET NEXT ENTRY INDEX.
  • [01196] GSL - GENERATE ENTRY FOR SHORT LIST.
  • [01286] HDR - HEADERS FOR LISTING CATALOGS AND PERMIT BUFFERS.
  • [01382] LCS - LIST CATEGORY SET FOR FILE.
  • [01448] NIP - NEXT INDEX PRESET (PRESET *GNI*).
  • [01472] PAS - PRINT ACCUMULATED STATISTICS.
  • [01607] PTP - PRINT TITLE PAGE.
  • [01674] RQS - REQUEST STORAGE.
  • [01712] SNP - SET NEXT PAGE.
  • [01813] PRS - PRESET ROUTINE.
  • [02178] IPP - INITIALIZE PAGE PARAMETERS.

Source Code

CATLIST.txt
  1. IDENT CATLIST,I,PRS
  2. *COMMENT CATLIST - CATALOG PERMANENT FILES.
  3. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  4. ABS
  5. ENTRY CATLIST
  6. ENTRY RFL=
  7. ENTRY SSM=
  8. SYSCOM B1
  9. SST
  10. TITLE CATLIST - CATALOG PERMANENT FILES.
  11. SPACE 4,10
  12. *** CATLIST - CATALOG PERMANENT FILE.
  13. * J. L. WARDELL. 71/01/25.
  14. * W. B. CHAPIN. 79/01/31.
  15. * P. C. SMITH. 88/01/22.
  16. SPACE 4,10
  17. * CATLIST IS A UTILITY WHICH ENABLES A USER TO INTERROGATE
  18. * THE PERMANENT FILE SYSTEM.
  19. SPACE 4,10
  20. *** CATLIST (DN,EF,FN,L,LO,NA,PN,R,RS,TY,UN,WB)
  21. *
  22. * KEYWORD OPTION DESCRIPTION
  23. *
  24. * DN DEVICE LIST FILES THAT RESIDE ON THIS DEVICE
  25. * NUMBER NUMBER.
  26. *
  27. * EF FILENAME/FILENAME/.../FILENAME
  28. * EXCLUDED PERMANENT FILE NAME. THIS
  29. * PARAMETER EXCLUDES FROM LISTING THESE
  30. * PERMANENT FILES.
  31. *
  32. * AN ASTERISK (*) PRESENT IN A FILE NAME
  33. * INDICATES THAT A SET OF FILES IS TO BE
  34. * EXCLUDED. FOR EXAMPLE, EF=***OPL WILL
  35. * EXCLUDE ALL THE FILES WITH SIX CHARACTER
  36. * FILE NAMES THAT END IN *OPL*; EF=M******
  37. * WILL EXCLUDE ALL THE FILES WITH FILE
  38. * NAMES THAT START WITH THE LETTER *M*.
  39. *
  40. * MULTIPLE FILE NAMES MAY BE SPECIFIED,
  41. * SEPARATED BY SLASHES; FOR EXAMPLE,
  42. * EF=A******/B******/C****** WILL EXCLUDE
  43. * ALL THE FILES WITH NAMES THAT BEGIN WITH
  44. * THE LETTERS *A*, *B* OR *C*.
  45. *
  46. * THE *EF* PARAMETER MAY BE SPECIFIED
  47. * TOGETHER WITH THE *FN* PARAMETER; FOR
  48. * EXAMPLE, FN=AB*****,EF=ABC**** WILL LIST
  49. * INFORMATION ABOUT ALL FILES WITH NAMES
  50. * THAT START WITH THE LETTERS *AB*, EXCEPT
  51. * FOR THOSE FILES WITH NAMES THAT START
  52. * WITH THE LETTERS *ABC*.
  53. *
  54. * THIS PARAMETER IS NOT ALLOWED WHEN
  55. * LISTING PERMIT INFORMATION (LO=FP,
  56. * LO=P), NOR WHEN LISTING SECURITY ACCESS
  57. * CATEGORIES (LO=X).
  58. *
  59. * FN FILENAME/FILENAME/.../FILENAME
  60. * PERMANENT FILE NAME. THIS PARAMETER
  61. * SPECIFIES THAT CATALOG INFORMATION IS
  62. * DESIRED ONLY FOR THESE PERMANENT FILES.
  63. *
  64. * AN ASTERISK (*) PRESENT IN A FILE NAME
  65. * INDICATES THAT A SET OF FILES IS TO BE
  66. * LISTED. FOR EXAMPLE, FN=***OPL WILL
  67. * LIST ALL THE FILES WITH SIX CHARACTER
  68. * FILE NAMES THAT END IN *OPL*; FN=M******
  69. * WILL LIST ALL THE FILES WITH FILE NAMES
  70. * THAT START WITH THE LETTER *M*.
  71. *
  72. * MULTIPLE FILE NAMES MAY BE SPECIFIED,
  73. * SEPARATED BY SLASHES; FOR EXAMPLE,
  74. * FN=A******/B******/C****** WILL LIST ALL
  75. * THE FILES WITH NAMES THAT BEGIN WITH THE
  76. * LETTERS *A*, *B* OR *C*.
  77. *
  78. * THE *FN* PARAMETER MAY BE SPECIFIED
  79. * TOGETHER WITH THE *EF* PARAMETER; FOR
  80. * EXAMPLE, FN=AB*****,EF=ABC**** WILL LIST
  81. * INFORMATION ABOUT ALL FILES WITH NAMES
  82. * THAT START WITH THE LETTERS *AB*, EXCEPT
  83. * FOR THOSE FILES WITH NAMES THAT START
  84. * WITH THE LETTERS *ABC*.
  85. *
  86. * IF A SINGLE FILE NAME WITH NO ASTERISK
  87. * (*) CHARACTERS IS SPECIFIED TOGETHER
  88. * WITH *LO=0*, A MESSAGE (*FN FOUND.*)
  89. * INDICATES WHETHER OR NOT THE SPECIFIED
  90. * FILE IS FOUND IN THE SPECIFIED CATALOG.
  91. * IF A SUCH A FILE NAME IS SPECIFIED
  92. * TOGETHER WITH *LO=P* AND *UN=USERNAME*,
  93. * A MESSAGE (*USERNAME FOUND.*) INDICATES
  94. * WHETHER OR NOT PERMISSION TO ACCESS THAT
  95. * FILE HAS BEEN GRANTED TO THAT USER NAME.
  96. *
  97. * THIS PARAMETER IS REQUIRED WHEN LISTING
  98. * PERMIT INFORMATION (*LO=FP*, *LO=P*),
  99. * AND WHEN LISTING SECURITY ACCESS
  100. * CATEGORIES (*LO=X*). WHEN *LO=FP*,
  101. * *LO=P* OR *LO=X* IS SPECIFIED, ONLY A
  102. * SINGLE FILE NAME MAY BE SPECIFIED, AND
  103. * NO ASTERISK (*) CHARACTERS MAY BE
  104. * SPECIFIED.
  105. *
  106. * L LFN OUTPUT FILE NAME. THIS IS THE NAME
  107. * OF THE FILE TO WHICH THE CATLIST
  108. * INFORMATION IS WRITTEN.
  109. *
  110. * LO LIST OPTION
  111. * F SELECT FULL LISTING OF CATALOG ENTRY.
  112. * IF THE FILES BEING CATALOGED RESIDE IN
  113. * AN ALTERNATE CATALOG, ONLY PERTINENT
  114. * ACCESS INFORMATION IS LISTED.
  115. *
  116. * FP SELECT FULL LISTING OF FILES PERMIT ENTRIES
  117. * THIS OPTION REQUIRES THAT A FILE NAME
  118. * BE SPECIFIED (FN PARAMETER). ALL PERTINENT
  119. * PERMISSION INFORMATION IS LISTED. IF
  120. * THE USER NAME IS SPECIFIED (UN
  121. * PARAMETER), ONLY PERMISSION DATA
  122. * FOR THAT USER AND THE SPECIFIED
  123. * FILE IS LISTED.
  124. * THE USER NAMES LISTED HERE WILL
  125. * INCLUDE:
  126. * THOSE THAT HAVE BEEN GRANTED
  127. * EXPLICIT PERMISSION.
  128. * THOSE THAT HAVE ACCESSED THE
  129. * FILE BECAUSE OF IMPLICIT
  130. * PERMISSION (SEMI-PRIVATE FILES
  131. * ONLY).
  132. *
  133. * P SELECT SHORT LIST OF PERMIT ENTRIES.
  134. * THIS OPTION IS SIMILAR TO THE *FP*
  135. * OPTION EXCEPT THAT ONLY USER
  136. * NUMBERS ARE LISTED FOR THE PERMIT
  137. * ENTRIES.
  138. *
  139. * X SELECT FULL LISTING OF CATALOG ENTRY,
  140. * INCLUDING THE FILE ACCESS CATEGORY SET.
  141. * THIS OPTION REQUIRES THAT A FILE NAME
  142. * BE SPECIFIED (FN PARAMETER). THIS OPTION
  143. * IS NOT VALID FOR USE ON ALTERNATE USER
  144. * CATALOGS.
  145. *
  146. * FOR SECURITY REASONS, THE SECURITY
  147. * ACCESS CATEGORIES ASSOCIATED WITH A FILE
  148. * WILL NOT BE LISTED UNLESS YOUR CURRENT
  149. * JOB SECURITY ACCESS LEVEL IS AT LEAST AS
  150. * HIGH AS THE CURRENT PERMANENT FILE
  151. * SECURITY ACCESS LEVEL OF THE FILE.
  152. *
  153. * 0 SELECT SHORT LIST OF CATALOG ENTRIES.
  154. * THIS LISTS ONLY THE FILE NAMES FOR THE
  155. * SPECIFIED CATALOG ENTRIES.
  156. *
  157. * NA NO ABORT IF SET, JOB WILL NOT BE ABORTED IF AN
  158. * ERROR IS ENCOUNTERED. *NA* CANNOT BE
  159. * SPECIFIED TOGETHER WITH *WB*.
  160. *
  161. * PN PACKNAM REMOVABLE PACK NAME. THIS PARAMETER
  162. * SPECIFIES THE CATALOG OF THIS DEVICE
  163. * IS DESIRED INSTEAD OF THE USERS
  164. * NORMAL CATALOG. THIS WILL OVERRIDE
  165. * ANY PACK NAME SPECIFIED BY THE PACKNAM
  166. * COMMAND. IF OMITTED THE DEVICE
  167. * CATALOGED IS EITHER THAT SPECIFIED BY
  168. * THE LAST PACKNAM COMMAND OR THE
  169. * USER MASTER CATALOG IF NO PACKNAM
  170. * REQUEST WAS ISSUED.
  171. *
  172. * R RESIDENCE DEVICE TYPE REQUESTED.
  173. *
  174. * RS RESIDENCE OF PERMANENT FILES TO BE
  175. * INCLUDED. SPECIFY ONE OR MORE OR THE
  176. * FOLLOWING CHARACTERS-
  177. *
  178. * C SELECT LISTING OF PERMANENT FILES WHICH
  179. * RESIDE ON CARTRIDGE. THESE FILES MAY
  180. * ALSO RESIDE ON OTHER MEDIA (DISK AND/OR
  181. * TAPE).
  182. *
  183. * D SELECT LISTING OF PERMANENT FILES WHICH
  184. * RESIDE ON DISK. THESE FILES MAY ALSO
  185. * RESIDE ON OTHER MEDIA (CARTRIDGE AND/OR
  186. * TAPE).
  187. *
  188. * T SELECT LISTING OF PERMANENT FILES WHICH
  189. * RESIDE ON TAPE. THESE FILES MAY ALSO
  190. * RESIDE ON OTHER MEDIA (DISK AND/OR
  191. * CARTRIDGE).
  192. *
  193. * TY FILE TYPE. SPECIFY ONE OR MORE OF THE
  194. * FOLLOWING CHARACTERS-
  195. * A SELECT LISTING OF ALL FILE TYPES.
  196. *
  197. * D SELECT LISTING OF DIRECT ACCESS FILES.
  198. *
  199. * I SELECT LISTING OF INDIRECT ACCESS FILES.
  200. *
  201. * UN USERNUM USER NAME. THIS PARAMETER HAS
  202. * TWO PURPOSES:
  203. * 1. FOR L0=F AND L0=0:
  204. * INDICATES THE ALTERNATE
  205. * CATALOG FOR WHICH THE USER
  206. * DESIRES INFORMATION.
  207. * FILE WILL BE LISTED IF
  208. * A. USER IS EXPLICITLY PERMITTED
  209. * TO FILE.
  210. * B. FILE IS A SEMI-PRIVATE OR
  211. * LIBRARY TYPE FILE AND NO
  212. * NO PASSWORD EXISTS FOR FILE.
  213. * 2. FOR L0=FP AND L0=P:
  214. * INDICATES THE SPECIFIC USER
  215. * FOR WHICH PERMIT INFORMATION
  216. * IS DESIRED.
  217. *
  218. * WB WAIT BUSY IF SET, JOB WILL WAIT FOR A PACK MOUNT,
  219. * BUT WILL ABORT ON ALL OTHER ERRORS. *WB*
  220. * CANNOT BE SPECIFIED TOGETHER WITH *NA*.
  221. SPACE 4,10
  222. *** ASSUMED PARAMETERS.
  223. * DN=0
  224. * EF=0
  225. * FN=*******
  226. * L=OUTPUT
  227. * LO=0
  228. * NA=0
  229. * PN=0
  230. * R=0
  231. * RS=0
  232. * RSM=7
  233. * TY=0
  234. * UN=0
  235. * WB=0
  236. SPACE 4,15
  237. *** DAYFILE MESSAGES.
  238. *
  239. * *CATLIST COMPLETE.* = NORMAL TERMINATION WITHOUT ERRORS.
  240. *
  241. * *EMPTY CATALOG.* = NO ENTRIES EXIST FOR OPTIONS SELECTED.
  242. *
  243. * *FILE NAME MISSING.* = *LO=P*, *LO=FP* OR *LO=X* OPTION WAS
  244. * SELECTED BUT NO FILE NAME WAS SPECIFIED.
  245. *
  246. * *INCORRECT LIST OPTION.* = THE OPTION SELECTED IS NOT ALLOWED.
  247. *
  248. * *INCORRECT PARAMETER.* = INCORRECT PARAMETER OR COMBINATION
  249. * OF PARAMETERS WAS SPECIFIED.
  250. *
  251. * *NO FILES FOUND.* = NO FILES EXIST WHICH MATCH THE VALUES
  252. * SPECIFIED FOR THE *FN* AND/OR THE *EF* PARAMETERS.
  253. *
  254. * *NO PERMITS.* = NO PERMIT ENTRIES EXIST FOR THE
  255. * SPECIFIED FILE.
  256. SPACE 4,10
  257. ** COMMON DECKS.
  258.  
  259.  
  260. *CALL COMCMAC
  261. *CALL COMCCMD
  262. *CALL COMSMLS
  263. *CALL COMSPFM
  264. *CALL COMSPRD
  265. *CALL COMSSFM
  266. SPACE 4,10
  267. ** ASSEMBLY CONSTANTS.
  268.  
  269.  
  270. OBFL EQU 1001B OUTPUT BUFFER LENGTH
  271. IBFL EQU 701B INPUT BUFFER LENGTH
  272. SBFL EQU 300B INITIAL SORT BUFFER LENGTH
  273. FLIN EQU 1000B FL INCREMENT FOR SORT BUFFER
  274. LMDL EQU 99999 TERMINAL - LINE MODE DEFAULT SCREEN SIZE
  275. MSBL EQU SBFL+5*FLIN MAXIMUM SORT BUFFER LENGTH
  276. SMDL EQU 24 TERMINAL - SCREEN MODE DEFAULT SCREEN SIZE
  277. SSM= EQU 0 SECURE SYSTEM MEMORY
  278. TITLE DATA LOCATIONS.
  279. ORG 110B
  280. SPACE 4,10
  281. ** FETS.
  282.  
  283.  
  284. I BSS 0
  285. INPUT FILEB IBUF,IBFL,FET=CFLM
  286. .I BSS 0
  287. ORG I+1 SUPPRESS ADDRESS ON *PFM* ERRORS
  288. VFD 13/0,1/1,22/0,6/CFLM-5,18/IBUF
  289. ORG .I
  290.  
  291. O BSS 0
  292. OUTPUT FILEB OBUF,OBFL,EPR,FET=10B
  293.  
  294.  
  295. ** DATA LOCATIONS.
  296.  
  297.  
  298. BL CON 0 BUFFER LENGTH
  299. BLK CON 1L BLANK LINE
  300. BO CON 0,0 BUFFER OFFSETS FOR THIS PAGE AND NEXT PAGE
  301. BOVF CON 0 BUFFER OVERFLOW FLAG
  302. DN CON 0 DEVICE NUMBER
  303. DT CON 0 DEVICE TYPE
  304. ERRF CON 0 *PFM* ERROR FLAG
  305. FILENAM CON 0 FILE NAME (ONLY ONE FILE SPECIFIED)
  306. FLNM BSS 0 SELECTION FILE NAME LIST
  307. CON 7L******* DEFAULT FILE NAME SELECTION MASK
  308. BSSZ 35
  309. EFNM BSS 0 EXCLUSION FILE NAME LIST
  310. BSSZ 36
  311. FCDD CON 0 FILE COUNT (DIRECT ACCESS DISK FILES)
  312. FCID CON 0 FILE COUNT (INDIRECT ACCESS DISK FILES)
  313. FCDA CON 0 FILE COUNT (DAPF-S ON ALTERNATE STORAGE)
  314. FCIA CON 0 FILE COUNT (IAPF-S ON ALTERNATE STORAGE)
  315. FLN CON 0 ENTRY NUMBER (DISPLAY)
  316. FSDD CON 0 FILE SIZE (DIRECT ACCESS DISK FILES)
  317. FSID CON 0 FILE SIZE (INDIRECT ACCESS DISK FILES)
  318. FSDA CON 0 FILE SIZE (DAPF-S ON ALTERNATE STORAGE)
  319. FSIA CON 0 FILE SIZE (IAPF-S ON ALTERNATE STORAGE)
  320. JT CON 0 JOB TYPE
  321. LL CON 0 LINE LIMIT-1 (NUMBER OF LINES ON A PAGE)
  322. LN CON 99999 LINE NUMBER
  323. LO CON 0 LIST OPTION
  324. MODE CON 0 LIST MODE
  325. NABT CON 0 NO ABORT FLAG
  326. NO CON 0 ENTRY NUMBER
  327. NZ CON 1 NONZERO VALUE
  328. PACK CON 0 PACKNAME
  329. PD CON 0 JOB PRINT DENSITY
  330. PG CON 0 PAGE NUMBER
  331. RES CON 0 RESIDENCE
  332. RS CON 0 RESIDENCE OF FILE SELECTION
  333. RSM CON 7 RESIDENCE SELECTION MASK
  334. SSM CON 0 SYSTEM SECURITY MODE
  335. TP CON 0 TITLE PAGE FLAG FOR TERMINAL
  336. TY CON 0 FILE TYPE SELECTION
  337. TYM CON 0 FILE TYPE SELECTION MASK
  338. USER CON 0 USER NAME OF CALLER
  339. USERNUM CON 0 SELECTED USER NAME
  340. WBSY CON 0 WAIT BUSY FLAG
  341.  
  342.  
  343. ** SORT BUFFER CONTROL WORDS.
  344.  
  345. MBS CON MSBL MAXIMUM SORT BUFFER SIZE
  346. CBS CON SBFL CURRENT SORT BUFFER SIZE
  347. CFL CON RFL= CURRENT FL
  348. TITLE MAIN PROGRAM.
  349. CTL SPACE 4,10
  350. ** MAIN ROUTINE.
  351.  
  352.  
  353. CTL BSS 0 ENTRY
  354. RJ FCB FILL CATALOG BUFFER
  355. NG X6,CTL5 IF ERROR RETURN STATUS
  356. SA1 CTLA
  357. NZ X1,CTL9 IF SELECTED FILE LIST
  358. ZR X6,CTL7 IF NO CATALOGS
  359. RJ CSU CHECK FOR SPECIAL USER
  360. CTL1 SA2 MODE PROCESS LIST OPTION
  361. SA2 X2+TLOT
  362. SB2 X2
  363. JP B2 CALL PROCESSOR
  364.  
  365. * RETURN HERE ON NORMAL COMPLETION.
  366.  
  367. CTL3 SA1 DT
  368. ZR X1,CTL4 IF TERMINAL FILE
  369. MESSAGE (=C* CATLIST COMPLETE.*),3
  370. EQ CTL5
  371.  
  372. CTL4 MESSAGE (=C**),1 CLEAR MESSAGE BUFFER
  373.  
  374. * RETURN HERE ON ERRORS.
  375.  
  376. CTL5 WRITER O FLUSH OUTPUT
  377. EQ END ENDRUN/ABORT
  378.  
  379. * NO CATALOG/PERMIT ENTRIES FOUND. ISSUE APPROPRIATE MESSAGE
  380. * TO DAYFILE OR (IF TERMINAL OUTPUT FILE) TO OUTPUT FILE.
  381.  
  382. CTL7 SA2 CTLB MESSAGE ADDRESS
  383. SA1 DT
  384. ZR X1,CTL8 IF TERMINAL FILE
  385. MESSAGE X2,3 ISSUE MESSAGE TO DAYFILE
  386. EQ END ENDRUN/ABORT
  387.  
  388. CTL8 WRITEH O,X2,2 WRITE MESSAGE TO OUTPUT
  389. EQ CTL4 FLUSH OUTPUT AND END
  390.  
  391. CTL9 RJ SFN SPACE FILL ENTRY
  392. LX6 54
  393. SA6 A1
  394. SA1 DT
  395. ZR X1,CTL10 IF TERMINAL FILE
  396. MESSAGE CTLA,3 *(ENTRY) FOUND.*
  397. EQ END ENDRUN
  398.  
  399. CTL10 WRITEC O,CTLA *(ENTRY) FOUND*
  400. EQ CTL4 FLUSH OUTPUT AND END
  401.  
  402. CTLA CON 0 SELECTED ENTRY
  403. CON 6LFOUND.
  404.  
  405. CTLB CON CTLC
  406. CTLC DATA C* EMPTY CATALOG.*
  407. CTLD DATA C* NO PERMITS.*
  408. CTLE DATA C* NO FILES FOUND.*
  409.  
  410.  
  411. TLOT BSS 0 TABLE OF LIST OPTIONS
  412. LOC 0
  413. CON SSL SHORT SORTED FILE LIST
  414. CON FFL FULL FILE LIST
  415. CON FLC FILE LIST AND CATEGORY SET
  416. CON SSL SHORT SORTED ALTERNATE FILE LIST
  417. CON FAC FULL ALTERNATE FILE LIST
  418. CON SPD SHORT PERMIT DATA LIST
  419. CON FPD FULL LIST OF PERMIT DATA
  420. LOC *O
  421. END SPACE 4,10
  422. ** END - END PROCESSING.
  423. *
  424. * USES X - 1.
  425. * A - 1.
  426. *
  427. * MACROS ABORT, ENDRUN.
  428.  
  429.  
  430. END BSS 0 ENTRY
  431. SA1 ERRF
  432. ZR X1,END1 IF NO *PFM* ERROR OCCURRED
  433. SA1 NABT
  434. NZ X1,END1 IF *NA* SPECIFIED RATHER THAN *WB*
  435. ABORT
  436.  
  437. END1 ENDRUN
  438. TITLE PROCESSING ROUTINES.
  439. FAC SPACE 4,10
  440. ** FAC - FULL ALTERNATE CATALOG LIST.
  441.  
  442.  
  443. FAC BSS 0 ENTRY
  444. FAC1 READW I,CBUF,NWCE READ NEXT CATALOG ENTRY
  445. NG X1,FAC2 IF END OF BUFFER
  446. RJ CRS CHECK FILE RESIDENCE AND TYPE
  447. ZR X1,FAC1 IF FILE NOT TO BE LISTED
  448. SA3 CBUF GET FILENAME
  449. SB2 FLNM CHECK INCLUSION LIST
  450. RJ CFN
  451. NZ X6,FAC1 IF FILE NOT IN INCLUSION LIST
  452. SB2 EFNM CHECK EXCLUSION LIST
  453. RJ CFN
  454. ZR X6,FAC1 IF FILE IN EXCLUSION LIST
  455. RJ AEN ADVANCE ENTRY NUMBER
  456. RJ AFS ACCUMULATE FILE STATISTICS
  457. SB2 /COMCFCE/CHDRN+1 ADVANCE LINE COUNT
  458. RJ ALN
  459. SA1 NO
  460. SA3 SSM
  461. EDCAT CBUF,LBUF,X1,1,,X3,1
  462. WRITEH O,LBUF,FCELL FIRST LINE
  463. WRITEH O,LBUF+FCELL,FCELL SECOND LINE
  464. WRITEH O,LBUF+2*FCELL,FCELA THIRD LINE
  465. WRITEH O,LBUF+3*FCELL,FCELB FOURTH LINE
  466. WRITEC O,BLK
  467. EQ FAC1 LOOP FOR NEXT CATALOG ENTRY
  468.  
  469. FAC2 RJ FCB FILL CATALOG BUFFER
  470. NG X6,CTL5 IF ERROR RETURN STATUS
  471. NZ X6,FAC1 IF MORE CATALOGS
  472. SA1 NO NUMBER OF ENTRIES
  473. ZR X1,CTL7 IF NO CATALOGS
  474. RJ PAS PRINT ACCUMULATED STATISTICS
  475. EQ CTL3 COMPLETE PROCESSING
  476. FFL SPACE 4,10
  477. ** FFL - FULL LISTING.
  478.  
  479.  
  480. FFL BSS 0 ENTRY
  481. FFL1 READW I,CBUF,NWCE READ NEXT CATALOG ENTRY
  482. NG X1,FFL2 IF END OF BUFFER
  483. RJ CRS CHECK FILE RESIDENCE AND TYPE
  484. ZR X1,FFL1 IF FILE NOT TO BE LISTED
  485. SA3 CBUF GET FILENAME
  486. SB2 FLNM CHECK INCLUSION LIST
  487. RJ CFN
  488. NZ X6,FFL1 IF FILE NOT IN INCLUSION LIST
  489. SB2 EFNM CHECK EXCLUSION LIST
  490. RJ CFN
  491. ZR X6,FFL1 IF FILE IN EXCLUSION LIST
  492. RJ AEN ADVANCE ENTRY NUMBER
  493. RJ AFS ACCUMULATE FILE STATISTICS
  494. SB2 /COMCFCE/CHDRN+1 ADVANCE LINE COUNT
  495. RJ ALN
  496. SA1 NO
  497. SA3 SSM
  498. EDCAT CBUF,LBUF,X1,1,,X3
  499. WRITEH O,LBUF,FCELL FIRST LINE
  500. WRITEH O,LBUF+FCELL,FCELL SECOND LINE
  501. WRITEH O,LBUF+2*FCELL,FCELA THIRD LINE
  502. WRITEH O,LBUF+3*FCELL,FCELB FOURTH LINE
  503. WRITEC O,BLK
  504. EQ FFL1 PROCESS NEXT CATALOG ENTRY
  505.  
  506. FFL2 RJ FCB FILL CATALOG BUFFER
  507. NG X6,CTL5 IF ERROR RETURN STATUS
  508. NZ X6,FFL1 IF MORE CATALOGS
  509. SA1 NO NUMBER OF ENTRIES
  510. ZR X1,CTL7 IF NO CATALOGS
  511. RJ PAS PRINT ACCUMULATED STATISTICS
  512. EQ CTL3 COMPLETE PROCESSING
  513. FLC SPACE 4,10
  514. ** FLC - FILE LIST AND CATEGORY SET.
  515.  
  516.  
  517. FLC BSS 0 ENTRY
  518. READW I,CBUF,NWCE
  519. RJ AEN ADVANCE ENTRY NUMBER
  520. SB2 /COMCFCE/CHDRN+1 ADVANCE LINE COUNT
  521. RJ ALN
  522. SA1 NO
  523. SA3 SSM
  524. EDCAT CBUF,LBUF,X1,1,,X3
  525. WRITEH O,LBUF,FCELL FIRST LINE
  526. WRITEH O,LBUF+FCELL,FCELL SECOND LINE
  527. WRITEH O,LBUF+2*FCELL,FCELA THIRD LINE
  528. WRITEH O,LBUF+3*FCELL,FCELB FOURTH LINE
  529. WRITEC O,BLK
  530. RJ LCS LIST CATEGORY SET FOR FILE
  531. EQ CTL3 COMPLETE PROCESSING
  532. FPD SPACE 4,10
  533. ** FPD - FULL LIST OF PERMIT DATA.
  534.  
  535.  
  536. FPD BSS 0 ENTRY
  537. FPD1 READW I,CBUF,NWPE READ NEXT PERMIT ENTRY
  538. NG X1,FPD4 IF END OF BUFFER
  539. RJ AEN ADVANCE ENTRY NUMBER
  540. SB2 B1 ADVANCE LINE NUMBER BY 1
  541. RJ ALN
  542. MX0 42 PICK USER NAME
  543. SA5 CBUF
  544. BX1 X0*X5
  545. RJ SFN SPACE FILL NAME
  546. SA1 FLN SET USER NAME COUNT
  547. MX0 30
  548. LX1 30
  549. BX1 X0*X1 PICK FIRST PART OF USER NAME
  550. LX6 24
  551. BX7 -X0*X6
  552. BX7 X7+X1
  553. SA7 LBUF
  554. SA5 CBUF+1 SET USER PERMISSION
  555. MX0 4
  556. LX0 40
  557. BX1 X0*X5
  558. LX1 24
  559. SA1 /COMCFCE/MDTB+X1
  560. LX1 35-59
  561. MX0 18
  562. BX6 X0*X6 PICK LAST 3 CHARACTERS OF USER NAME
  563. BX1 -X0*X1 MERGE WITH PERMISSION
  564. BX6 X6+X1
  565. SA6 LBUF+1
  566. MX0 18 CONVERT ACCESS COUNT
  567. BX1 X0*X5
  568. LX1 18
  569. RJ CDD CONVERT TO DECIMAL
  570. MX0 1 CHECK PERMIT TYPE
  571. LX0 41
  572. BX1 X0*X5
  573. NZ X1,FPD2 IF ACCOUNTING PERMIT
  574. SX1 1R*&1R SET EXPLICIT PERMIT FLAG
  575. LX1 54
  576. BX6 X1-X6
  577. FPD2 SA2 FPDA
  578. SA6 A2+B1 SAVE ACCESS COUNT
  579. ERRNZ FPDB-FPDA-1 CODE DEPENDS ON VALUE
  580. BX6 X2
  581. MX0 1 CHECK IF EXPIRATION DATE IS PRESENT
  582. LX0 42
  583. BX1 X0*X5
  584. ZR X1,FPD3 IF NO EXPIRATION DATE
  585. SA1 CBUF
  586. MX0 -18
  587. BX1 -X0*X1 PICK UP EXPIRATION DATE
  588. ZR X1,FPD3 IF NONEXPIRING PERMIT
  589. EDATE X1 CONVERT DATE
  590. LX6 -6
  591. FPD3 MX0 6 SWITCH AROUND FIRST CHARACTERS
  592. SA4 FPDB
  593. BX2 X0*X6
  594. BX3 X0*X4
  595. BX6 -X0*X6
  596. BX7 -X0*X4
  597. BX6 X3+X6
  598. BX7 X2+X7
  599. SA6 LBUF+2 SET PERMIT TYPE/EXPIRATION DATE
  600. SA7 LBUF+3 SET ACCESS COUNT
  601. BX3 X5 CONVERT DATE AND TIME
  602. RJ /COMCFCE/CDT CONVERT TIME AND DATE
  603. SA6 LBUF+4
  604. BX7 X5
  605. SA7 LBUF+5
  606. WRITEC O,LBUF
  607. EQ FPD1 LIST NEXT PERMIT
  608.  
  609. * READ NEXT BUFFER OF PERMITS.
  610.  
  611. FPD4 RJ FCB FILL BUFFER
  612. NG X6,CTL5 IF ERROR
  613. ZR X6,CTL3 IF END OF PERMITS
  614. EQ FPD1 LIST NEXT PERMIT
  615.  
  616. FPDA DATA 10H BLANK LINE
  617. FPDB CON 0
  618. SPD SPACE 4,10
  619. ** SPD - SHORT LIST OF PERMIT DATA.
  620.  
  621.  
  622. SPD BSS 0 ENTRY
  623. SPD1 READW I,CBUF,NWPE READ NEXT PERMIT ENTRY
  624. NG X1,SPD2 IF BUFFER EMPTY
  625. RJ GSL GENERATE ENTRY FOR SHORT LIST
  626. EQ SPD1 PROCESS NEXT PERMIT ENTRY
  627.  
  628. SPD2 RJ FCB FILL BUFFER
  629. NG X6,CTL5 IF ERROR
  630. NZ X6,SPD1 IF NOT END OF DATA
  631. WRITEC O,LBUF
  632. SA1 NO SET NUMBER OF USERS
  633. SX6 X1-1
  634. NZ X6,SPD3 IF MORE THAN ONE USER FOUND
  635. SA2 SPDB CHANGE SYNTAX OF MESSAGE
  636. BX7 X2
  637. SA7 SPDA+1
  638. SPD3 RJ CDD CONVERT TO DECIMAL
  639. SA6 SPDA
  640. WRITEC O,BLK
  641. WRITEC O,SPDA
  642. EQ CTL3 COMPLETE PROCESSING
  643.  
  644. SPDA CON 0 NUMBER OF USERS
  645. DATA C* USERS*
  646.  
  647. SPDB DATA C* USER*
  648. SSL SPACE 4,15
  649. ** SSL - SHORT SORTED LIST.
  650. *
  651. * USES X - 0, 1, 2, 3, 6, 7.
  652. * A - 0, 1, 2, 3, 6, 7.
  653. * B - 2, 3, 7.
  654. *
  655. * CALLS AFS, ALN, CFN, DSB, FCB, GNI, GSL, PAS, RQS, SNP,
  656. * SST=.
  657. *
  658. * MACROS READW, WRITEC, WRITEH.
  659.  
  660.  
  661. SSL BSS 0 ENTRY
  662. SSL1 SA0 B0 INITIALIZE BUFFER POINTER
  663. SSL2 READW I,CBUF,NWCE
  664. PL X1,SSL4 IF DATA READ
  665. RJ FCB FILL CATALOG BUFFER
  666. NG X6,SSL3 IF ERROR RETURN STATUS
  667. NZ X6,SSL2 IF BUFFER NOT EMPTY
  668. SSL3 BX6 X6-X6 CLEAR BUFFER OVERFLOW FLAG
  669. SA6 BOVF
  670. EQ SSL7 PROCESS SORT OF BUFFER
  671.  
  672. SSL4 RJ CRS CHECK FILE RESIDENCE AND TYPE
  673. ZR X1,SSL2 IF FILE NOT TO BE LISTED
  674. SA3 CBUF GET FILENAME
  675. SB2 FLNM CHECK INCLUSION LIST
  676. RJ CFN
  677. NZ X6,SSL2 IF FILE NOT IN INCLUSION LIST
  678. SB2 EFNM CHECK EXCLUSION LIST
  679. RJ CFN
  680. ZR X6,SSL2 IF FILE IN EXCLUSION LIST
  681. RJ AFS ACCUMULATE STATISTICS (GET TYPE/RESIDENCE)
  682. SA2 CBUF GET FILE NAME
  683. SA3 CBUF+FCEC GET ERROR CODE
  684. MX0 42
  685. LX3 18
  686. MX6 -3
  687. BX2 X0*X2
  688. LX1 57-0 POSITION FILE TYPE FLAG (NONZERO IF DAPF)
  689. BX6 -X6*X3 ERROR CODE
  690. LX2 -6 POSITION FILE NAME
  691. BX6 X6+X1 MERGE IN PF TYPE
  692. ZR B2,SSL6 IF FILE DISK RESIDENT
  693. SX1 10B SET *FILE NOT DISK RESIDENT* FLAG
  694. BX6 X6+X1
  695. SSL6 BX6 X6+X2 MERGE IN FILE NAME
  696. SA6 A0+SBUF
  697. SA1 CBS GET CURRENT BUFFER MAXIMUM
  698. SA0 A0+B1
  699. SX3 A0+B1
  700. IX2 X1-X3
  701. PL X2,SSL2 IF BUFFER NOT FULL
  702. RJ RQS REQUEST MORE BUFFER SPACE
  703. PL X1,SSL2 IF MORE AVAILABLE
  704. SA3 BOVF CHECK IF MESSAGE NEEDED
  705. NZ X3,SSL7 IF MESSAGE PREVIOUSLY OUTPUT
  706. MX6 1 SET BUFFER OVERFLOW FLAG
  707. SB2 B1
  708. SA6 BOVF
  709. RJ ALN ADVANCE LINE NUMBER
  710. WRITEC O,SSLD OUTPUT WARNING MESSAGE
  711. WRITEC O,BLK
  712.  
  713. * SORT DIRECT AND INDIRECT FILES ALPHABETICALLY.
  714.  
  715. SSL7 SX1 A0 NUMBER OF ENTRIES
  716. ZR X1,CTL7 IF NO CATALOGS
  717. SB2 B1
  718. RJ ALN ADVANCE LINE NUMBER
  719. SX1 A0
  720. SB7 SBUF ADDRESS OF BUFFER
  721. RJ SST= SORT ENTRIES
  722. SB2 B0 DETERMINE COUNT OF EACH TYPE
  723. SSL8 SA1 SBUF+B2
  724. LX1 59-57
  725. NG X1,SSL9 IF DIRECT ACCESS FILE
  726. SB2 B2+B1
  727. SB3 A0-B2
  728. NZ B3,SSL8 IF NOT END OF BUFFER
  729. SSL9 SX6 B2 NUMBER OF INDIRECT ACCESS FILES
  730. SA6 SSLA
  731. SX7 A0-B2 NUMBER OF DIRECT ACCESS FILES
  732. SA6 SSLC
  733. SA7 SSLB
  734.  
  735. * LIST INDIRECT ACCESS FILES.
  736.  
  737. SA1 SSLA GET COUNT OF INDIRECT ACCESS FILES
  738. ZR X1,SSL12 IF NO INDIRECT ACCESS FILES
  739. WRITEC O,BLK
  740. WRITEH O,SSLE,SSLEL
  741. WRITEC O,BLK
  742. SB2 B1+B1
  743. RJ ALN ADVANCE LINE NUMBER
  744. SX7 8 SET LINE POSITION
  745. SA7 GSLA
  746. SB2 B1+
  747. RJ ALN
  748. SA1 SSLA GET NUMBER OF INDIRECT FILES
  749. RJ SNP SET NEXT PAGE
  750. SSL10 SA3 BL
  751. SX6 X3-1
  752. SA6 A3+
  753. NG X6,SSL11 IF END OF ENTRIES
  754. RJ GNI GET NEXT ENTRY
  755. SA3 BO CURRENT BUFFER OFFSET
  756. IX1 X1+X3
  757. SA1 X1+SBUF GET ACTUAL ENTRY
  758. LX1 6
  759. BX6 X1
  760. SA6 CBUF
  761. RJ GSL GENERATE ENTRY FOR SHORT LIST
  762. EQ SSL10 GET NEXT ENTRY
  763.  
  764. SSL11 WRITEC O,LBUF LAST LINE OF INDIRECT ACCESS FILES
  765. SA1 SSLA
  766. RJ DSB DISPLAY SORT BREAK
  767. SA1 SSLA
  768. RJ SNP SET NEXT PAGE
  769. NZ X1,SSL10 IF MORE FILES TO LIST
  770.  
  771. * LIST DIRECT ACCESS FILES.
  772.  
  773. SSL12 SA1 SSLB
  774. ZR X1,SSL17 IF NO DIRECT ACCESS FILES
  775. SA1 SSLA CHECK IF ANY INDIRECT ACCESS FILES
  776. ZR X1,SSL13 IF NO INDIRECT ACCESS FILES
  777. WRITEC O,BLK
  778. SB2 B1
  779. RJ ALN ADVANCE LINE NUMBER
  780. SSL13 WRITEH O,SSLF,SSLFL
  781. SB2 B1
  782. RJ ALN ADVANCE LINE NUMBER
  783. SA1 LN CHECK IF HEADER JUST PRINTED
  784. SX2 3
  785. IX1 X2-X1
  786. ZR X1,SSL14 IF HEADER JUST PRINTED
  787. WRITEC O,BLK
  788. SB2 B1
  789. RJ ALN ADVANCE LINE NUMBER
  790. SSL14 SX7 8 RESET LINE POSITION
  791. SA7 GSLA
  792. SA1 SSLB
  793. RJ SNP SET UP NEXT PAGE
  794. SSL15 SA3 BL DECREMENT NUMBER OF DIRECT FILES
  795. SX6 X3-1
  796. SA6 A3+
  797. NG X6,SSL16 IF END OF ENTRIES
  798. RJ GNI GET NEXT ENTRY
  799. SA2 SSLC DETERMINE POSITION IN BUFFER
  800. SA3 BO GET CURRENT BUFFER OFFSET
  801. IX2 X2+X3
  802. SB2 SBUF+X2
  803. SA1 X1+B2 GET ACTUAL ENTRY
  804. LX1 6
  805. BX6 X1
  806. SA6 CBUF
  807. RJ GSL GENERATE ENTRY FOR SHORT LIST
  808. EQ SSL15 GET NEXT ENTRY
  809.  
  810. SSL16 WRITEC O,LBUF LAST LINE
  811. SA1 SSLB
  812. RJ DSB DISPLAY SORT BREAK
  813. SA1 SSLB
  814. RJ SNP SET NEXT PAGE
  815. NZ X1,SSL15 IF MORE FILE NAMES TO LIST
  816. SB2 B1+
  817. RJ ALN
  818. SSL17 SA2 ERRF CHECK ERROR FLAG
  819. NZ X2,SSL18 IF *PFM* ERROR
  820. SA2 BOVF CHECK OVERFLOW FLAG
  821. NZ X2,SSL1 IF OVERFLOW OCCURRED (MORE FILES TO LIST)
  822. SSL18 WRITEC O,BLK
  823. RJ PAS PRINT ACCUMULATED STATISTICS
  824. EQ CTL3 CONTINUE PROCESSING
  825.  
  826.  
  827. SSLA CON 0 NUMBER OF INDIRECT ACCESS FILES
  828. SSLB CON 0 NUMBER OF DIRECT ACCESS FILES
  829. SSLC CON 0 COUNT OF ENTRIES BEFORE DIRECT ACCESS FILE
  830. SSLD DATA C* BUFFER OVERFLOW - ALL FILES LISTED BUT NOT SORTED.*
  831. SSLE DATA C* INDIRECT ACCESS FILES*
  832. SSLEL EQU *-SSLE
  833. SSLF DATA C* DIRECT ACCESS FILES*
  834. SSLFL EQU *-SSLF
  835. TITLE GENERAL SUBROUTINES.
  836. AEN SPACE 4,15
  837. ** AEN - ADVANCE ENTRY NUMBER.
  838. *
  839. * ENTRY (NO) = NUMBER OF FILES.
  840. *
  841. * EXIT (NO) ADVANCED.
  842. * (FLN) = ADVANCED FILE NUMBER IN DISPLAY CODE.
  843. *
  844. * USES X - 0, 1, 6.
  845. * A - 1, 6.
  846. *
  847. * CALLS CDD.
  848.  
  849.  
  850. AEN SUBR ENTRY/EXIT
  851. SA1 NO ADVANCE FILE NUMBER
  852. SX1 X1+B1
  853. BX6 X1
  854. SA6 A1
  855. RJ CDD
  856. SX1 1R. SET PERIOD
  857. MX0 54
  858. LX6 6
  859. BX6 X0*X6
  860. BX6 X1+X6
  861. SA6 FLN
  862. EQ AENX RETURN
  863. AFS SPACE 4,20
  864. ** AFS - ACCUMULATE FILE STATISTICS.
  865. *
  866. * INCREMENT THE FILE COUNT AND TOTAL PRU-S FOR -
  867. * INDIRECT ACCESS FILES ON DISK.
  868. * DIRECT ACCESS FILES ON DISK.
  869. * IAPF-S ON ALTERNATE STORAGE.
  870. * DAPF-S ON ALTERNATE STORAGE.
  871. *
  872. * ENTRY (CBUF) = CATALOG ENTRY.
  873. *
  874. * EXIT COUNTERS UPDATED.
  875. * (X1) = 1 IF DIRECT ACCESS FILE.
  876. * = 0 IF INDIRECT ACCESS FILE.
  877. * (B2) = 0 IF FILE ON DISK.
  878. * = 1 IF FILE ON ALTERNATE STORAGE.
  879. *
  880. * USES X - 1, 2, 3, 6.
  881. * A - 1, 2, 3, 6.
  882. * B - 2.
  883.  
  884.  
  885. AFS SUBR ENTRY/EXIT
  886. SA1 CBUF+FCLF GET LENGTH OF FILE
  887. MX2 -24
  888. BX3 -X2*X1 GET TRACK POINTER
  889. AX3 12
  890. LX1 24
  891. BX6 -X2*X1
  892. LX1 0-11-24+60 CHECK FILE TYPE
  893. MX2 -1
  894. BX1 -X2*X1 (X1)=1 IF DIRECT, 0 IF INDIRECT
  895. ZR X3,AFS2 IF FILE NOT ON DISK
  896. SB2 B0+ SET RESIDENCE TO DISK
  897. SA2 FSID SET COUNTERS FOR INDIRECT ACCESS DISK FILE
  898. SA3 FCID
  899. ZR X1,AFS1 IF INDIRECT ACCESS FILE
  900. SA2 FSDD SET COUNTERS FOR DIRECT ACCESS DISK FILE
  901. SA3 FCDD
  902. AFS1 IX6 X6+X2 INCREMENT ACCUMULATED SIZE
  903. SA6 A2
  904. SX6 X3+B1 INCREMENT FILE COUNT
  905. SA6 A3
  906. EQ AFSX RETURN
  907.  
  908. * FILE ON ALTERNATE STORAGE.
  909.  
  910. AFS2 SB2 B1+ SET RESIDENCE TO ALTERNATE STORAGE
  911. SA2 FSIA SET COUNTERS FOR IAPF ON ALTERNATE STORAGE
  912. SA3 FCIA
  913. ZR X1,AFS1 IF INDIRECT ACCESS FILE
  914. SA2 FSDA SET COUNTERS FOR DAPF ON ALTERNATE STORAGE
  915. SA3 FCDA
  916. EQ AFS1 UPDATE COUNTERS
  917. ALN SPACE 4,15
  918. ** ALN - ADVANCE LINE NUMBER.
  919. *
  920. * ENTRY (LN) = CURRENT PAGE LINE NUMBER.
  921. * (B2) = NUMBER OF LINES TO ADVANCE.
  922. *
  923. * EXIT FILE NUMBER UPDATED IN OUTPUT LINE.
  924. * LINE BUFFER CLEARED.
  925. *
  926. * USES X - 1, 6.
  927. * A - 1, 6.
  928. * B - 2.
  929. *
  930. * CALLS HDR, PTP.
  931.  
  932.  
  933. ALN SUBR ENTRY/EXIT
  934. SA1 LN ADVANCE LINE NUMBER
  935. SX6 X1+B2
  936. SA6 A1
  937. SA1 LL GET LINE LIMIT
  938. IX1 X1-X6
  939. PL X1,ALN2 IF NOT END OF PAGE
  940. SX6 B2
  941. SA6 A6 RESET LINE NUMBER
  942. SA1 DT CHECK DEVICE TYPE
  943. NZ X1,ALN1 IF FILE NOT ASSIGNED TO A TERMINAL
  944. SA1 TP CHECK IF TITLE PAGE ALREADY PRINTED
  945. NZ X1,ALN2 IF TITLE ALREADY PRINTED
  946. ALN1 RJ PTP PRINT TITLE PAGE
  947. SX6 B1 SET TITLE PAGE FLAG FOR TERMINAL
  948. SA6 TP
  949. RJ HDR PRINT HEADER
  950. ALN2 SB2 7 CLEAR LINE BUFFER
  951. SX6 B0
  952. ALN3 ZR B2,ALNX IF END OF LINE BUFFER
  953. SA6 LBUF+B2
  954. SB2 B2-B1
  955. EQ ALN3 CLEAR NEXT WORD
  956. CFN SPACE 4,15
  957. ** CFN - CHECK FILENAME IN LIST.
  958. *
  959. * *CFN* CHECKS A FILE NAME FOR INCLUSION IN A LIST,
  960. * WITH WILDCARD MATCHING.
  961. *
  962. * ENTRY (X3) = FILENAME.
  963. * (B2) = FWA OF LIST.
  964. *
  965. * EXIT (X6) = 0 IF FILE IN LIST.
  966. *
  967. * USES X - 1, 3, 4, 5, 6, 7.
  968. * A - 1, 4, 5.
  969. * B - 2.
  970.  
  971.  
  972. CFN2 SX6 B1+
  973.  
  974. CFN SUBR ENTRY/EXIT
  975. MX7 42
  976. BX3 X7*X3
  977. CFN1 SA4 B2
  978. SB2 B2+B1
  979. ZR X4,CFN2 IF END OF LIST
  980. SA1 CFNA CHARACTER MASK
  981. SA5 CFNB ASTERISKS
  982. BX5 X4-X5
  983. BX6 X1*X5
  984. BX7 -X1*X5
  985. IX6 X1+X6
  986. BX6 X6+X7
  987. BX7 -X1*X6
  988. BX6 X7
  989. LX7 -5
  990. IX7 X6-X7
  991. BX7 X6+X7
  992. BX6 X4-X3
  993. BX6 X7*X6
  994. ZR X6,CFNX IF IN LIST
  995. EQ CFN1 CHECK NEXT ENTRY IN LIST
  996.  
  997.  
  998. CFNA CON 37373737373737000000B
  999. CFNB CON 7L*******
  1000. CRS SPACE 4,15
  1001. ** CRS - CHECK RESIDENCE AND FILE TYPE.
  1002. *
  1003. * *CRS* CHECKS TO SEE IF THE FILE RESIDENCE AND TYPE SELECTED
  1004. * MATCH THE CURRENT FILE RESIDENCE AND TYPE, TO DETERMINE IF
  1005. * THE FILE IS TO BE LISTED.
  1006. *
  1007. * ENTRY (CBUF) = CATALOG ENTRY.
  1008. * (RSM) = FILE RESIDENCE SELECTION MASK.
  1009. * (TYM) = FILE TYPE SELECTION MASK.
  1010. *
  1011. * EXIT (X1) = 0 IF FILE IS NOT TO BE LISTED.
  1012. *
  1013. * USES X - 1, 3.
  1014. * A - 3.
  1015. * B - 3, 6.
  1016.  
  1017.  
  1018. CRS SUBR ENTRY/EXIT
  1019. SB6 CBUF
  1020. SB3 B0 INITIALIZE FILE RESIDENCE
  1021. SA3 B6+FCBT CHECK FOR DISK RESIDENCE
  1022. MX1 -24
  1023. BX3 -X1*X3
  1024. AX3 12 EXAMINE TRACK ONLY
  1025. ZR X3,CRS1 IF NOT DISK RESIDENT
  1026. SB3 B3+4 SET DISK RESIDENT INDICATOR
  1027. CRS1 SA3 B6+FCAA CHECK FOR CARTRIDGE RESIDENCE
  1028. MX1 -36
  1029. BX1 -X1*X3
  1030. ZR X1,CRS2 IF NOT CARTRIDGE RESIDENT
  1031. LX3 59-48 CHECK FOR OBSOLETE FLAG
  1032. NG X3,CRS2 IF CARTRIDGE COPY OBSOLETE
  1033. SB3 B3+B1 SET CARTRIDGE RESIDENCE INDICATOR
  1034. CRS2 SA3 B6+FCTV CHECK FOR TAPE VSN
  1035. MX1 -24
  1036. BX3 -X1*X3
  1037. ZR X3,CRS3 IF NO TAPE VSN
  1038. SB3 B3+2 SET TAPE RESIDENT INDICATOR
  1039. CRS3 SA3 RSM GET FILE RESIDENCE SELECTION MASK
  1040. SX1 B3 GET ACTUAL FILE RESIDENCE
  1041. BX1 X1*X3 COMPARE ACTUAL AND SELECTED RESIDENCE
  1042. ZR X1,CRSX IF FILE FAILED RESIDENCE CRITERIA
  1043. SA1 B6+FCBS CHECK FILE TYPE
  1044. MX3 -1
  1045. LX1 0-11
  1046. BX3 -X3*X1 01 = DIRECT, 00 = INDIRECT
  1047. SX1 X3+B1 10 = DIRECT, 01 = INDIRECT
  1048. SA3 TYM
  1049. ZR X3,CRSX IF FILE TYPE NOT SPECIFIED
  1050. BX1 X1*X3 CHECK FILE TYPE MATCH
  1051. EQ CRSX RETURN
  1052. CSU SPACE 4,15
  1053. ** CSU - CHECK FOR SPECIAL USER.
  1054. *
  1055. * ENTRY (AUSER) = ALTERNATE USER.
  1056. * (USER) = USER NAME OF CALLER.
  1057. *
  1058. * EXIT (MODE) UPDATED TO NON-ALTERNATE CATALOG IF
  1059. * USER REQUESTING CATLIST HAS AUTOMATIC PERMISSION.
  1060. *
  1061. * USES X - 0, 1, 2, 3, 6, 7.
  1062. * A - 1, 2, 6.
  1063. * B - 2.
  1064.  
  1065.  
  1066. CSU SUBR ENTRY/EXIT
  1067. SA2 MODE
  1068. SX2 X2-PMTL
  1069. PL X2,CSUX IF PERMIT DATA REQUEST
  1070. SA2 AUSER
  1071. ZR X2,CSUX IF NO ALTERNATE USER
  1072. SA1 USER
  1073. MX0 -6
  1074. SB2 8
  1075. CSU1 LX1 6 POSITION NEXT CHARACTER
  1076. LX2 6
  1077. SB2 B2-B1
  1078. ZR B2,CSU2 IF USER NAMES MATCH
  1079. BX3 -X0*X1 USER
  1080. BX6 -X0*X2 AUSER
  1081. SX7 X3-1R*
  1082. ZR X7,CSU1 IF CHARACTER = *
  1083. IX6 X3-X6
  1084. ZR X6,CSU1 IF CHARACTERS COMPARE
  1085. EQ CSUX EXIT
  1086.  
  1087. CSU2 SA1 MODE PROCEED AS NON-ALTERNATE CATALOG
  1088. SX6 X1-ALTC
  1089. SA6 A1
  1090. EQ CSUX RETURN
  1091. DSB SPACE 4,15
  1092. ** DSB - DISPLAY SORT BREAK.
  1093. *
  1094. * ENTRY (X1) = TOTAL NUMBER OF FILE NAMES.
  1095. * (BO) = CURRENT BUFFER OFFSET.
  1096. *
  1097. * EXIT SORT-BREAK LINE DISPLAYED.
  1098. *
  1099. * USES X - 2, 3.
  1100. * A - 2.
  1101. * B - 2.
  1102. *
  1103. * CALLS ALN.
  1104. *
  1105. * MACROS WRITEC.
  1106.  
  1107.  
  1108. DSB SUBR ENTRY/EXIT
  1109. SA2 BO+1 GET CURRENT BUFFER OFFSET
  1110. IX3 X2-X1
  1111. ZR X3,DSBX IF NO MORE FILES IN THIS GROUP
  1112. SA2 DT
  1113. NZ X2,DSBX IF NOT TERMINAL FILE
  1114. SB2 1
  1115. RJ ALN ADVANCE LINE NUMBER
  1116. WRITEC O,(=C* ...*)
  1117. EQ DSBX RETURN
  1118. FCB SPACE 4,10
  1119. ** FCB - FILL CATALOG AND PERMIT BUFFER.
  1120. *
  1121. * EXIT (X6) = NUMBER OF WORDS READ.
  1122. * (X6) .LT. 0, IF ERROR DETECTED.
  1123. *
  1124. * USES X - 0, 1, 2, 6.
  1125. * A - 1, 2, 6.
  1126. *
  1127. * MACROS CATLIST.
  1128.  
  1129.  
  1130. FCB1 SA6 ERRF SET *PFM* ERROR FLAG
  1131.  
  1132. FCB SUBR ENTRY/EXIT
  1133. SA1 I CHECK FOR EOI ON LAST READ
  1134. LX1 59-9
  1135. SX6 B0
  1136. NG X1,FCBX IF EOI ENCOUNTERED
  1137. SA2 A1+B1 SET IN = OUT = FIRST
  1138. SX6 X2
  1139. SA6 A2+B1 SET IN
  1140. SA6 A6+B1 SET OUT
  1141. CATLIST A1,,,,,,,DN
  1142. SA1 X2+ CHECK ERROR STATUS
  1143. MX0 -8
  1144. AX1 10
  1145. BX2 -X0*X1
  1146. MX6 1 SET ERROR RETURN CONDITION
  1147. NZ X2,FCB1 IF ERROR RETURN STATUS SET
  1148. SA1 A1+2 SET NUMBER OF WORDS READ
  1149. SA2 A1+B1
  1150. IX6 X1-X2
  1151. EQ FCBX RETURN
  1152. GNI SPACE 4,15
  1153. ** GNI - GET NEXT ENTRY INDEX.
  1154. *
  1155. * ENTRY MUST HAVE GONE TO *NIP* TO PRESET INDEX.
  1156. *
  1157. * EXIT (X1) = INDEX FOR NEXT ENTRY TO PROVIDE A SORTED
  1158. * LIST ORDERED BY COLUMNS.
  1159. *
  1160. * USES X - 1, 2, 3, 4, 6.
  1161. * A - 1, 2, 4, 6.
  1162.  
  1163.  
  1164. GNI3 IX6 X1+X4 ADD INCREMENT
  1165. SA6 GNIB
  1166.  
  1167. GNI SUBR ENTRY/EXIT
  1168. SA2 GNIA
  1169. SX3 7 CHECK LINE LENGTH
  1170. IX4 X2-X3
  1171. PL X4,GNI2 IF END OF LINE
  1172. SA1 A2+B1 GET ENTRY BIAS
  1173. GNI1 SX6 X2+B1 UPDATE COLUMN NUMBER
  1174. SA4 GNID GET REMAINDER
  1175. SA6 A2
  1176. IX3 X2-X4
  1177. SA4 A4-B1 GET INCREMENT
  1178. NG X3,GNI3 IF FULL INCREMENT TO BE USED
  1179. SX4 X4-1
  1180. EQ GNI3 USE INCREMENT-1
  1181.  
  1182. GNI2 SA1 GNIE GET LINE INDEX
  1183. SX6 X1+B1
  1184. MX2 0 CLEAR C0LUMN NUMBER
  1185. BX1 X6
  1186. SA6 A1
  1187. EQ GNI1 SET CELLS FOR NEW LINE
  1188.  
  1189.  
  1190. GNIA CON 0 COLUMN NUMBER
  1191. GNIB CON 0 ENTRY BIAS
  1192. GNIC CON 0 ROW INCREMENT
  1193. GNID CON 0 REMAINDER
  1194. GNIE CON 0 LINE INDEX
  1195. GSL SPACE 4,25
  1196. ** GSL - GENERATE ENTRY FOR SHORT LIST.
  1197. *
  1198. * ENTRY (CBUF) = FILE/USER DESCRIPTOR.
  1199. * FOR *SSL* CALL -
  1200. * 42/PFN,8/0,1/N,3/EC,2/0,1/D,3/0.
  1201. * PFN = PERMANENT FILE NAME.
  1202. * N = 1 IF FILE NOT ON DISK.
  1203. * EC = ERROR CODE FROM PFC.
  1204. * D = 1 IF DIRECT ACCESS FILE.
  1205. * FOR *SPD* CALL -
  1206. * 42/USERNAME,18/0
  1207. *
  1208. * EXIT FILE NAME SET IN OUTPUT LINE.
  1209. * IF FILE ON ALTERNATE STORAGE, FILE NAME IN ( ).
  1210. * IF ERROR CODE PRESENT, LEADING ASTERISK ON FILE NAME.
  1211. *
  1212. * USES X - 0, 1, 2, 3, 4, 5, 6, 7.
  1213. * A - 1, 2, 3, 4, 5, 6.
  1214. * B - 2.
  1215. *
  1216. * CALLS AEN, ALN, MTP, SFN.
  1217. *
  1218. * MACROS WRITEC.
  1219.  
  1220.  
  1221. GSL SUBR ENTRY/EXIT
  1222. SA5 GSLA CHECK LINE FILE COUNT
  1223. SX2 7
  1224. IX2 X2-X5
  1225. NG X2,GSL1 IF FIRST ENTRY
  1226. NZ X2,GSL2 IF NOT END OF LINE
  1227. WRITEC O,LBUF
  1228. GSL1 SB2 B1 ADVANCE LINE NUMBER BY 1
  1229. RJ ALN
  1230. SX5 B0 RESET LINE COUNT
  1231. GSL2 RJ AEN ADVANCE ENTRY NUMBER
  1232. SA3 CBUF PICK ENTRY
  1233. SA4 MODE
  1234. SB2 B0 SET DEFAULT IMAGE PATTERN
  1235. MX0 42
  1236. BX1 X0*X3
  1237. MX6 -3
  1238. SX4 X4-MOSP
  1239. LX3 0-6
  1240. BX6 -X6*X3 EXTRACT ERROR CODE
  1241. LX3 59-9-0+6
  1242. ZR X4,GSL4 IF SHORT PERMIT MODE CATLIST
  1243. ZR X6,GSL3 IF NO ERROR CODE
  1244. SB2 B2+1 SET IMAGE PATTERN FOR ERROR
  1245. GSL3 PL X3,GSL4 IF FILE ON DISK
  1246. SB2 B2+2 SET IMAGE PATTERNS FOR ALTERNATE STORAGE
  1247. GSL4 SA2 GSLB+B2 LOAD IMAGE
  1248. SA4 GSLC =01010101010101010101B
  1249. SX6 B1
  1250. IX3 X1-X6 EXTEND RIGHTMOST BIT
  1251. BX3 X3-X1 REMOVE ALL UNCHANGED BITS
  1252. IX3 X3+X6 SET RIGHTMOST BIT OF FILE NAME
  1253. BX7 X3
  1254. LX7 -6
  1255. IX3 X3-X7 SHIFT 1 AND EXTEND 6 (RIGHTMOST BIT)
  1256. BX3 X4*X3 ISOLATE SINGLE BIT
  1257. LX3 -6 POSITION FOR CHARACTER TO RIGHT
  1258. BX3 X3+X6 ADD IN BOTTOM CHARACTER OF WORD
  1259. BX7 X3
  1260. LX3 6
  1261. IX3 X3-X7 PREPARE MASK OF SURROUNDING CHARACTERS
  1262. BX2 X3*X2 ISOLATE SURROUNDING CHARACTERS
  1263. LX6 6
  1264. IX6 X3-X6 EXTEND MASK OF REMAINING CHARACTERS
  1265. BX6 -X3*X6 FINALIZE MASK
  1266. SA4 GSLD
  1267. BX4 X6*X4 EXTRACT REQUIRED BLANKS
  1268. BX6 X1+X2 MERGE CHARACTERS INTO FINAL ASSEMBLY
  1269. BX6 X6+X4
  1270. LX6 48
  1271. SA6 LBUF+X5
  1272. SX6 X5+B1 ADVANCE LINE FILE COUNT
  1273. SA6 GSLA
  1274. EQ GSLX EXIT
  1275.  
  1276.  
  1277. GSLA CON 8 LINE POSITION
  1278. GSLB BSS 0 IMAGE MAPS
  1279. DATA 10H NO ERROR, FILE ON DISK
  1280. DATA 10H * ERROR, FILE ON DISK
  1281. DATA 10H)))))))) ( NO ERROR, FILE ON ALTERNATE STORAGE
  1282. DATA 10H)))))))) * ERROR, FILE ON ALTERNATE STORAGE
  1283. GSLC DATA 01010101010101010101B
  1284. GSLD EQU GSLB =10H
  1285. HDR SPACE 4,15
  1286. ** HDR - HEADERS FOR LISTING CATALOGS AND PERMIT BUFFERS.
  1287. *
  1288. * ENTRY (MODE) = MODE OF LISTING.
  1289. *
  1290. * EXIT HEADER LINE PLACED IN OUTPUT BUFFER.
  1291. *
  1292. * USES X - 0, 1, 6.
  1293. * A - 1, 6.
  1294. *
  1295. * MACROS WRITEC.
  1296.  
  1297.  
  1298. HDR SUBR ENTRY/EXIT
  1299. SA1 HDRI
  1300. SX0 B0+ INITIALIZE LINE COUNT
  1301. ZR X1,HDR0 IF NO FILE NAMES SPECIFIED
  1302. SX0 B1+B1 INCREMENT LINE COUNT
  1303. WRITEC O,X1 PRINT FILE NAME SUBHEADER
  1304. WRITEC O,BLK
  1305. HDR0 SA1 MODE INDEX INTO HEADER POINTER TABLE
  1306. SA1 X1+HDRB
  1307. ZR X1,HDR2 IF NO HEADER MESSAGE DEFINED
  1308. BX6 X1
  1309. SA6 HDRA SET INDEX BASE OF HEADER MESSAGES FOR MODE
  1310.  
  1311. * LOOP PRINTING HEADER MESSAGE LINES.
  1312.  
  1313. HDR1 SA1 HDRA EXAMINE CURRENT MESSAGE POINTER
  1314. SA1 X1
  1315. ZR X1,HDR2 IF END OF HEADER MESSAGES
  1316. SX6 A1+B1 SET NEXT MESSAGE POINTER
  1317. SA6 HDRA
  1318. SX0 X0+B1 INCREMENT LINE COUNT
  1319. WRITEC O,X1
  1320. EQ HDR1 CONTINUE LOOP
  1321.  
  1322. * COMPLETE HEADER PROCESSING.
  1323.  
  1324. HDR2 WRITEC O,BLK
  1325. SA1 LN INCREMENT LINE COUNT
  1326. IX6 X1+X0
  1327. SX1 B1
  1328. IX6 X6+X1
  1329. SA6 A1
  1330. EQ HDRX RETURN
  1331.  
  1332. * HEADER MESSAGE BASE POINTERS.
  1333.  
  1334. HDRA CON 0
  1335. HDRB CON 0,HDRD,HDRD,0,HDRF,HDRG,HDRH
  1336.  
  1337. * HEADER MESSAGE POINTERS.
  1338.  
  1339. HDRD CON /COMCFCE/CHDR1 FULL FILE LIST
  1340. CON /COMCFCE/CHDR2
  1341. CON /COMCFCE/CHDR3
  1342. CON /COMCFCE/CHDR4
  1343. CON 0
  1344.  
  1345. HDRF CON /COMCFCE/CHDR1 FULL ALTERNATE CATALOG
  1346. CON HDR42
  1347. CON HDR43
  1348. CON HDR44
  1349. CON 0
  1350.  
  1351. HDRG CON HDR51 SHORT PERMIT ENTRIES
  1352. CON 0
  1353.  
  1354. HDRH CON HDR61 FULL PERMIT ENTRIES
  1355. CON 0
  1356.  
  1357. HDRI CON 0 SUBHEADER IF FILE NAMES SPECIFIED
  1358. * CON HDR71 (SINGLE FILE NAME TEMPLATE SPECIFIED)
  1359. * CON HDR72 (MULTIPLE FILE NAMES SPECIFIED)
  1360. CON 0
  1361.  
  1362. * HEADERS.
  1363.  
  1364. HDR42 DATA C* COUNT PERM. SUBSYS DATE/TIME DA
  1365. ,TE/TIME DATE/TIME*
  1366. HDR43 DATA C* PR BR AC RS*
  1367.  
  1368. HDR44 DATA 40C
  1369.  
  1370. HDR51 DATA C* USER NAMES*
  1371.  
  1372. HDR61 DATA C* USER NAME PERM. EXPIRES ACCESSES DATE
  1373. ,TIME*
  1374.  
  1375. HDR71 CON 1H
  1376. CON 10HFILE NAME
  1377. CON 0
  1378.  
  1379. HDR72 CON 1H
  1380. DATA C*SELECTED FILES*
  1381. LCS SPACE 4,15
  1382. ** LCS - LIST CATEGORY SET FOR FILE.
  1383. *
  1384. * ENTRY (CBUF) = CATALOG ENTRY.
  1385. *
  1386. * EXIT FILE-S CATEGORY SET IS SORTED AND LISTED.
  1387. *
  1388. * USES X - 0, 1, 2, 6, 7.
  1389. * A - 0, 1, 2, 6, 7.
  1390. * B - 2, 7.
  1391. *
  1392. * CALLS ALN, GNI, GSL, NIP.
  1393. *
  1394. * MACROS WRITEC, WRITEH.
  1395.  
  1396.  
  1397. LCS SUBR ENTRY/EXIT
  1398. SA1 CBUF+FCFC CATEGORY SET WORD
  1399. MX0 -32
  1400. BX1 -X0*X1
  1401. SB2 32 NUMBER OF CATEGORIES POSSIBLE
  1402. SA0 B0 INITIALIZE CATEGORY SET COUNTER
  1403. MX0 42
  1404. LX1 59-32
  1405. LCS1 SB2 B2-B1
  1406. NG B2,LCS2 IF DONE ANALYZING CATEGORY WORD
  1407. LX1 1
  1408. PL X1,LCS1 IF CATEGORY NOT VALIDATED
  1409. SA2 TACT+B2 SET CATEGORY MNEMONIC IN BUFFER
  1410. BX6 X0*X2
  1411. SA6 SBUF+A0
  1412. SA0 A0+B1
  1413. EQ LCS1 CHECK NEXT CATEGORY
  1414.  
  1415. LCS2 SX1 A0
  1416. ZR X1,LCSX IF NO ACCESS CATEGORY SET ENTRIES
  1417. SB7 SBUF SORT CATEGORY ENTRIES
  1418. RJ SST=
  1419. SX1 A0
  1420. SX6 A0
  1421. SA6 LCSA
  1422. RJ NIP PRESET *GNI*
  1423. WRITEH O,LCSB,LCSBL
  1424. WRITEC O,BLK
  1425. SB2 B1+B1
  1426. RJ ALN ADVANCE LINE NUMBER
  1427. SX7 8
  1428. SA7 GSLA
  1429. LCS3 SA1 LCSA
  1430. SX6 X1-1
  1431. SA6 A1
  1432. NG X6,LCS4 IF END OF ENTRIES
  1433. RJ GNI GET NEXT ENTRY
  1434. SA1 X1+SBUF GET ACTUAL ENTRY
  1435. BX6 X1
  1436. SA6 CBUF
  1437. RJ GSL GENERATE SHORT LIST
  1438. EQ LCS3 GET NEXT CATEGORY ENTRY
  1439.  
  1440. LCS4 WRITEC O,LBUF LAST LINE OF CATEGORY SET
  1441. WRITEC O,BLK
  1442. EQ LCSX RETURN
  1443.  
  1444. LCSA CON 0 NUMBER OF VALIDATED CATEGORY SETS
  1445. LCSB DATA C* FILE ACCESS CATEGORY SET*
  1446. LCSBL EQU *-LCSB
  1447. NIP SPACE 4,10
  1448. ** NIP - NEXT INDEX PRESET (PRESET *GNI*).
  1449. *
  1450. * ENTRY (X1) = ENTRY COUNT.
  1451. *
  1452. * EXIT TEMPORARY CELLS PRESET FOR *GNI*.
  1453. *
  1454. * USES X - 1, 3, 6, 7.
  1455. * A - 6, 7.
  1456.  
  1457.  
  1458. NIP SUBR ENTRY/EXIT
  1459. MX6 0
  1460. SX3 7 LINE LENGTH
  1461. SA6 GNIA
  1462. SA6 GNIB
  1463. SA6 GNIE
  1464. NIP1 IX1 X1-X3 DIVIDE BY 7
  1465. SX6 X6+B1
  1466. PL X1,NIP1 IF NOT POSITION IN ROW
  1467. IX7 X3+X1
  1468. SA6 GNIC
  1469. SA7 GNID
  1470. EQ NIPX RETURN
  1471. PAS SPACE 4,15
  1472. ** PAS - PRINT ACCUMULATED STATISTICS.
  1473. *
  1474. * ENTRY (FCID, FSID) = INDIRECT ACCESS DISK FILE COUNT, SIZE.
  1475. * (FCDD, FSDD) = DIRECT ACCESS DISK FILE COUNT, SIZE.
  1476. * (FCIA, FSIS) = IAPF ON ALTERNATE STORAGE COUNT, SIZE.
  1477. * (FCDA, FSDA) = DAPF ON ALTERNATE STORAGE COUNT, SIZE.
  1478. *
  1479. * USES X - 1, 2.
  1480. * A - 1, 2.
  1481. * B - 2, 3, 5.
  1482. *
  1483. * CALLS ALN, CDD, SNM.
  1484. *
  1485. * MACROS WRITEC.
  1486.  
  1487.  
  1488. PAS SUBR ENTRY/EXIT
  1489. SB2 5 ADVANCE LINE COUNT BY 5
  1490. RJ ALN
  1491.  
  1492. * PRINT STATISTICS FOR INDIRECT ACCESS FILES ON DISK.
  1493.  
  1494. SB5 PASA SET MESSAGE TEMPLATE
  1495. SA1 FCID NUMBER OF INDIRECT ACCESS FILES ON DISK
  1496. SB3 X1
  1497. ZR B3,PAS2 IF NO INDIRECT ACCESS FILES ON DISK
  1498. NE B3,B1,PAS1 IF MORE THAN ONE FILE
  1499. SB5 PASB USE ALTERNATE MESSAGE TEMPLATE
  1500. PAS1 RJ CDD CONVERT FILE COUNT TO DECIMAL
  1501. MX1 -54 CLEAR LEADING BLANK
  1502. BX1 -X1*X6
  1503. LX1 6 LEFT JUSTIFY NINE-DIGIT INTEGER
  1504. SB2 1R#
  1505. RJ SNM SET FILE COUNT INTO MESSAGE
  1506. SA1 FSID TOTAL SIZE OF INDIRECT ACCESS FILES
  1507. RJ CDD CONVERT TO DECIMAL
  1508. MX1 -54 CLEAR LEADING BLANK
  1509. BX1 -X1*X6
  1510. LX1 6 LEFT JUSTIFY NINE-DIGIT INTEGER
  1511. SB2 1R$
  1512. RJ SNM SET TOTAL FILE SIZE INTO MESSAGE
  1513. WRITEC O,B5
  1514.  
  1515. * PRINT STATISTICS FOR DIRECT ACCESS FILES ON DISK.
  1516.  
  1517. PAS2 SB5 PASC SET MESSAGE TEMPLATE
  1518. SA1 FCDD NUMBER OF DIRECT ACCESS FILES ON DISK
  1519. SB3 X1
  1520. ZR B3,PAS4 IF NO DIRECT ACCESS FILES ON DISK
  1521. NE B3,B1,PAS3 IF MORE THAN ONE FILE
  1522. SB5 PASD USE ALTERNATE MESSAGE TEMPLATE
  1523. PAS3 RJ CDD CONVERT FILE COUNT TO DECIMAL
  1524. MX1 -54 CLEAR LEADING BLANK
  1525. BX1 -X1*X6
  1526. LX1 6 LEFT JUSTIFY NINE-DIGIT INTEGER
  1527. SB2 1R#
  1528. RJ SNM SET FILE COUNT INTO MESSAGE
  1529. SA1 FSDD TOTAL SIZE OF DIRECT ACCESS FILES
  1530. RJ CDD CONVERT TO DECIMAL
  1531. MX1 -54 CLEAR LEADING BLANK
  1532. BX1 -X1*X6
  1533. LX1 6 LEFT JUSTIFY NINE-DIGIT INTEGER
  1534. SB2 1R$
  1535. RJ SNM SET TOTAL FILE SIZE INTO MESSAGE
  1536. WRITEC O,B5
  1537.  
  1538. * PRINT STATISTICS FOR IAPF-S ON ALTERNATE STORAGE.
  1539.  
  1540. PAS4 SB5 PASE SET MESSAGE TEMPLATE
  1541. SA1 FCIA NUMBER OF IAPF-S ON ALTERNATE STORAGE
  1542. SB3 X1
  1543. ZR B3,PAS6 IF NO IAPF-S ON ALTERNATE STORAGE
  1544. NE B3,B1,PAS5 IF MORE THAN ONE FILE
  1545. SB5 PASF USE ALTERNATE MESSAGE TEMPLATE
  1546. PAS5 RJ CDD CONVERT FILE COUNT TO DECIMAL
  1547. MX1 -54 CLEAR LEADING BLANK
  1548. BX1 -X1*X6
  1549. LX1 6 LEFT JUSTIFY NINE-DIGIT INTEGER
  1550. SB2 1R#
  1551. RJ SNM SET FILE COUNT INTO MESSAGE
  1552. SA1 FSIA TOTAL SIZE OF IAPF-S ON ALTERNATE STORAGE
  1553. RJ CDD CONVERT TO DECIMAL
  1554. MX1 -54 CLEAR LEADING BLANK
  1555. BX1 -X1*X6
  1556. LX1 6 LEFT JUSTIFY NINE-DIGIT INTEGER
  1557. SB2 1R$
  1558. RJ SNM SET TOTAL FILE SIZE INTO MESSAGE
  1559. WRITEC O,B5
  1560.  
  1561. * PRINT STATISTICS FOR DAPF-S ON ALTERNATE STORAGE.
  1562.  
  1563. PAS6 SB5 PASG SET MESSAGE TEMPLATE
  1564. SA1 FCDA NUMBER OF DAPF-S ON ALTERNATE STORAGE
  1565. SB3 X1
  1566. ZR B3,PAS8 IF NO DAPF-S ON ALTERNATE STORAGE
  1567. NE B3,B1,PAS7 IF MORE THAN ONE FILE
  1568. SB5 PASH USE ALTERNATE MESSAGE TEMPLATE
  1569. PAS7 RJ CDD CONVERT FILE COUNT TO DECIMAL
  1570. MX1 -54 CLEAR LEADING BLANK
  1571. BX1 -X1*X6
  1572. LX1 6 LEFT JUSTIFY NINE-DIGIT INTEGER
  1573. SB2 1R#
  1574. RJ SNM SET FILE COUNT INTO MESSAGE
  1575. SA1 FSDA TOTAL SIZE OF DAPF-S ON ALTERNATE STORAGE
  1576. RJ CDD CONVERT TO DECIMAL
  1577. MX1 -54 CLEAR LEADING BLANK
  1578. BX1 -X1*X6
  1579. LX1 6 LEFT JUSTIFY NINE-DIGIT INTEGER
  1580. SB2 1R$
  1581. RJ SNM SET TOTAL FILE SIZE INTO MESSAGE
  1582. WRITEC O,B5
  1583. PAS8 WRITEC O,BLK
  1584. EQ PASX RETURN
  1585.  
  1586.  
  1587. PASA DATA C* ######### INDIRECT ACCESS FILES ON DISK. TOTAL PRUS
  1588. , = $$$$$$$$$.*
  1589. PASB DATA C* ######### INDIRECT ACCESS FILE ON DISK. TOTAL PRUS
  1590. , = $$$$$$$$$.*
  1591.  
  1592. PASC DATA C* ######### DIRECT ACCESS FILES ON DISK. TOTAL PRUS
  1593. , = $$$$$$$$$.*
  1594. PASD DATA C* ######### DIRECT ACCESS FILE ON DISK. TOTAL PRUS
  1595. , = $$$$$$$$$.*
  1596.  
  1597. PASE DATA C* ######### INDIRECTS ON ALTERNATE STORAGE. TOTAL PRUS
  1598. , = $$$$$$$$$.*
  1599. PASF DATA C* ######### INDIRECT ON ALTERNATE STORAGE. TOTAL PRUS
  1600. , = $$$$$$$$$.*
  1601.  
  1602. PASG DATA C* ######### DIRECTS ON ALTERNATE STORAGE. TOTAL PRUS
  1603. , = $$$$$$$$$.*
  1604. PASH DATA C* ######### DIRECT ON ALTERNATE STORAGE. TOTAL PRUS
  1605. , = $$$$$$$$$.*
  1606. PTP SPACE 4,10
  1607. ** PTP - PRINT TITLE PAGE.
  1608. *
  1609. * ENTRY (PG) = PAGE NUMBER.
  1610. *
  1611. * EXIT TITLE PAGE PRINTED.
  1612. * (LN) RESET TO 2.
  1613. *
  1614. * CALLS CDD.
  1615.  
  1616.  
  1617. PTP SUBR ENTRY/EXIT
  1618. SA1 PG ADVANCE TO NEXT PAGE
  1619. SX1 X1+B1
  1620. BX6 X1
  1621. SA6 A1
  1622. RJ CDD CONVERT TO DECIMAL
  1623. MX0 48
  1624. BX6 -X0*X6
  1625. SA1 PAGE
  1626. BX1 X0*X1
  1627. BX6 X1+X6
  1628. SA6 PAGE
  1629.  
  1630. DATE DATE
  1631. CLOCK TIME
  1632. SB2 6 FOR TELEX ORIGIN JOBS
  1633. SA1 DT
  1634. SX0 B0+ INITIALIZE LINE COUNTER
  1635. ZR X1,PTP1 IF TERMINAL FILE
  1636.  
  1637. SA1 PD
  1638. ZR X1,PTP0 IF *PD* ALREADY PROCESSED
  1639. WRITEC O,A1
  1640. SX6 B0+
  1641. SA6 PD INDICATE *PD* PROCESSED
  1642. PTP0 WRITEH O,PTPA,B1
  1643. SB2 7 FOR NON-TELEX ORIGIN JOBS
  1644. SX0 X0+B1 COUNT PAGE EJECT
  1645. PTP1 WRITEH O,PTPB,B2+ WRITE TITLE LINE
  1646. SX0 X0+B1 COUNT TITLE LINE
  1647. SA1 PTPC WRITE SUB TITLE
  1648. WRITEC O,X1
  1649. SX0 X0+B1 COUNT SUBTITLE LINE
  1650. SA1 LN
  1651. IX6 X1+X0 RESET LINE NUMBER
  1652. SA6 LN
  1653. EQ PTPX EXIT
  1654.  
  1655.  
  1656. PTPA CON 1H1
  1657. PTPB DATA 30H CATALOG OF
  1658. PKNM CON 10H
  1659. DATE CON 0
  1660. TIME CON 0
  1661. PAGE DATA 8L PAGE
  1662.  
  1663. PTPC CON BLK SUBTITLE FLAG
  1664. PTPD CON 1H
  1665. CON 10HFILE NAME
  1666. FILE CON 0
  1667.  
  1668. PTPE CON 1H
  1669. CON 10HALTERNATE
  1670. CON 10HCATALOG
  1671. AUSER CON 0
  1672.  
  1673. RQS SPACE 4,15
  1674. ** RQS - REQUEST STORAGE.
  1675. *
  1676. * ENTRY (X1) = CURRENT BUFFER SIZE.
  1677. *
  1678. * EXIT (X1) = NEGATIVE IF NO MORE STORAGE AVAILABLE.
  1679. * (CFL) = NEW CURRENT FL.
  1680. * (CBS) = NEW CURRENT BUFFER SIZE.
  1681. *
  1682. * USES X - 1, 3, 6.
  1683. * A - 1, 3, 6.
  1684. *
  1685. * MACROS MEMORY.
  1686.  
  1687.  
  1688. RQS SUBR ENTRY/EXIT
  1689. SA3 MBS GET MAXIMUM BUFFER SIZE
  1690. SX6 X1+FLIN ADD POSSIBLE INCREMENT
  1691. IX1 X3-X6
  1692. NG X1,RQSX IF NO MORE SPACE
  1693. SA3 CFL SET POSSIBLE NEW FL
  1694. SX6 X3+FLIN
  1695. SA6 A3
  1696. LX6 30
  1697. SA6 RQSA
  1698. MEMORY CM,RQSA,R,,NA
  1699. SA3 RQSA
  1700. SA1 CFL
  1701. AX3 30
  1702. IX1 X3-X1
  1703. NG X1,RQSX IF NO MORE ALLOCATED
  1704. SA1 CBS UPDATE CURRENT SORT BUFFER SIZE
  1705. SX6 X1+FLIN
  1706. SA6 A1
  1707. EQ RQSX RETURN
  1708.  
  1709.  
  1710. RQSA CON 0 FL CONTROL WORD
  1711. SNP SPACE 4,15
  1712. ** SNP - SET NEXT PAGE.
  1713. *
  1714. * ENTRY (X1) = TOTAL NUMBER OF FILES.
  1715. *
  1716. * EXIT (X1) = 0 IF NO MORE FILES TO PRINT.
  1717. * (BO) = BUFFER OFFSET FOR THIS PAGE.
  1718. * (BL) = BUFFER LENGTH FOR THIS PAGE.
  1719. *
  1720. * USES X - 1, 2, 3, 4, 6, 7.
  1721. * A - 1, 2, 3, 4, 6, 7.
  1722. * B - 2.
  1723. *
  1724. * CALLS ALN, NIP.
  1725. *
  1726.  
  1727.  
  1728. SNP4 MX6 0
  1729. SA6 A2 CLEAR BUFFER OFFSET
  1730. MX1 0 EXIT WITH NO MORE FILES
  1731. SA6 A6-B1
  1732. SNP5 SX7 8 RESET *GSL* LIST ROUTINE
  1733. SA7 GSLA
  1734.  
  1735. SNP SUBR ENTRY/EXIT
  1736. SA2 BO+1
  1737. IX3 X2-X1
  1738. BX6 X2
  1739. ZR X3,SNP4 IF NO MORE FILES TO LIST
  1740. BX7 X1
  1741. SA6 A2-B1 SET UP NEW OFFSET
  1742. SA7 SNPA SAVE (X1)
  1743. SNP1 SA3 LN
  1744. SX6 7 LINE LENGTH
  1745. SA4 LL
  1746. IX7 X4-X3
  1747. NG X7,SNP3 IF END OF PAGE
  1748. ZR X7,SNP3 IF END OF PAGE
  1749. IX6 X6*X7
  1750. SA2 BO+1
  1751. IX7 X6+X2 FORM NEW OFFSET
  1752. SA1 SNPA
  1753. IX4 X1-X7
  1754. PL X4,SNP2 IF MORE THAN ONE PAGE
  1755. IX7 X7+X4
  1756. IX6 X6+X4
  1757. SNP2 SA6 BL COUNT OF FILE NAMES ON PAGE
  1758. SA7 BO+1 OFFSET FOR NEXT PASS
  1759. BX1 X6
  1760. RJ NIP PRESET *GNI*
  1761. SA1 BL EXIT WITH FILE COUNT
  1762. EQ SNP5 RETURN
  1763.  
  1764. SNP3 SB2 B1
  1765. RJ ALN ADVANCE LINE
  1766. EQ SNP1 RETURN TO MAIN LINE
  1767.  
  1768. SNPA CON 0 TEMPORARY STORAGE (TOTAL NUMBER OF FILES)
  1769. SPACE 4,10
  1770. ** COMMON DECKS.
  1771.  
  1772.  
  1773. *CALL COMCCDD
  1774. *CALL COMCCIO
  1775. *CALL COMCCOD
  1776. *CALL COMCCPM
  1777. *CALL COMCDXB
  1778. *CALL COMCEDT
  1779. *CALL COMCLFM
  1780. *CALL COMCPFM
  1781. *CALL COMCRDW
  1782. *CALL COMCSCB
  1783. *CALL COMCSFN
  1784. *CALL COMCSNM
  1785. *CALL COMCSST
  1786. *CALL COMCSYS
  1787. *CALL COMCWTC
  1788. *CALL COMCWTH
  1789. *CALL COMCWTW
  1790. *CALL COMCZTB
  1791. LIST X,F
  1792. *CALL COMCFCE
  1793. LIST *
  1794. SPACE 4,10
  1795. ** EQUIVALENCES.
  1796.  
  1797.  
  1798. FCELL EQU /COMCFCE/FCELL OUTPUT BUFFER LINE LENGTH
  1799. FCELA EQU /COMCFCE/FCELA OUTPUT BUFFER THIRD LINE LENGTH
  1800. FCELB EQU /COMCFCE/FCELB OUTPUT BUFFER FOURTH LINE LENGTH
  1801. SPACE 4
  1802. ** BUFFERS.
  1803.  
  1804.  
  1805. USE LITERALS
  1806. LBUF EQU * OUTPUT LINE BUFFER
  1807. CBUF EQU LBUF+/COMCFCE/CHDRN*FCELL CATALOG READ BUFFER
  1808. IBUF EQU CBUF+NWCE INPUT BUFFER
  1809. OBUF EQU IBUF+IBFL OUTPUT BUFFER
  1810. SBUF EQU OBUF+OBFL CATALOG SORT BUFFER
  1811. RFL= EQU SBUF+SBFL DEFAULT FL
  1812. PRS TITLE PRESET.
  1813. ** PRS - PRESET ROUTINE.
  1814. *
  1815. * EXIT TO MAIN LOOP(CTL)
  1816. * FETS AND BUFFERS SET UP AND COMMAND
  1817. * ARGUMENTS PROCESSED.
  1818. * (MODE) = LIST OPTION.
  1819. * 0 = SHORT FILE LIST.
  1820. * 1 = FULL FILE LIST.
  1821. * 2 = FILE LIST AND CATEGORY SET.
  1822. * 3 = SHORT ALTERNATE CATALOG LIST.
  1823. * 4 = FULL ALTERNATE CATALOG LIST.
  1824. * 5 = SHORT PERMIT DATA LIST.
  1825. * 6 = FULL PERMIT DATA LIST.
  1826. * B1 = 1.
  1827. * DT = 0 IF OUTPUT TO TERMINAL FILE.
  1828. * JT = 0 IF TERMINAL ORIGIN JOB.
  1829. * TITLE LINES PRESET
  1830. * PFM CALL FET PRESET.
  1831. * (CTLA) SET IF SELECTED ENTRY DESIRED.
  1832.  
  1833.  
  1834. CATLIST BSS 0 ENTRY POINT
  1835. PRS BSS 0
  1836. SB1 1
  1837. GETSSM SSM GET SYSTEM SECURITY MODE
  1838. SA4 ACTR
  1839. ZR X4,PRS15 IF NO ARGUMENTS
  1840. SB4 X4 SET ARGUMENT COUNT
  1841. SA4 ARGR GET FIRST ARGUMENT
  1842. SB5 TARG SET ARGUMENT TABLE ADDRESS
  1843. RJ ARG PROCESS ARGUMENTS
  1844. ZR X1,PRS2 IF NO ARGUMENT ERROR
  1845.  
  1846. PRS1 MESSAGE (=C* INCORRECT PARAMETER.*)
  1847. ABORT
  1848.  
  1849. * PROCESS FILE NAME SELECTION PARAMETERS.
  1850.  
  1851. PRS2 SA1 EFNM
  1852. SX7 HDR72 SUBHEADER FOR MULTIPLE FILE NAME TEMPLATES
  1853. NZ X1,PRS2.1 IF *EF* SPECIFIED
  1854. SA1 FLNM+1
  1855. NZ X1,PRS2.1 IF MORE THAN ONE FILE SPECIFIED FOR *FN*
  1856. SA1 FLNM
  1857. SA3 =7L*******
  1858. BX6 X1-X3
  1859. ZR X6,PRS3 IF *FN* NOT SPECIFIED
  1860. BX7 X3-X1 CLEAR * FROM NAME
  1861. SA3 PRSA =37373737373737373737B
  1862. BX6 X3*X7
  1863. BX7 -X3*X7
  1864. IX6 X6+X3
  1865. BX6 X6+X7
  1866. BX7 -X3*X6
  1867. BX6 X7
  1868. LX7 -5
  1869. IX7 X6-X7
  1870. BX7 X6+X7
  1871. SA3 =777777B
  1872. IX4 X7+X3
  1873. MX0 42
  1874. BX6 X0*X1
  1875. ZR X4,PRS2.2 IF NO ASTERISKS IN FILE NAME
  1876. SA6 HDR71+2 SET FILE NAME IN HEADER
  1877. SX7 HDR71 SUBHEADER FOR SINGLE FILE NAME TEMPLATE
  1878. PRS2.1 SA7 HDRI SET SUBHEADER ADDRESS
  1879. SX6 CTLE SET ADDRESS FOR *NO FILES FOUND* MESSAGE
  1880. SA6 CTLB
  1881. EQ PRS3 SET UP OUTPUT FET
  1882.  
  1883. PRS2.2 SA6 FILENAM SET FILE NAME FOR PERMANENT FILE FET
  1884.  
  1885. * SET UP OUTPUT FET.
  1886.  
  1887. PRS3 SA1 O SET STATUS IN OUTPUT FET
  1888. MX0 42
  1889. SX6 B1
  1890. BX2 X0*X1
  1891. ZR X2,PRS1 IF NO FILE NAME
  1892. IX6 X6+X2
  1893. SA6 A1
  1894. SX2 A1 CHECK FOR TERMINAL FILE
  1895. RJ STF
  1896. SA6 DT SET DEVICE TYPE FLAG (0 FOR TYPE *TT*)
  1897. SA1 JOPR SET JOB ORIGIN
  1898. MX0 -12
  1899. LX1 36
  1900. BX1 -X0*X1
  1901. SX6 X1-TXOT
  1902. SA6 JT
  1903.  
  1904. * PROCESS FILE RESIDENCE PARAMETER
  1905.  
  1906. SA1 RS GET FILE RESIDENCE SELECTION PARAM
  1907. NZ X1,PRS3.1 IF FILE RESIDENCE SELECTION NOT 0
  1908. MX6 -3 SET PARAMETER SELECTION FOR 0
  1909. BX6 -X6
  1910. EQ PRS3.5 RESIDENCE SELECTION MASK SET
  1911. PRS3.1 MX0 -6
  1912. BX6 X6-X6 INITIALIZE RESIDENCE SELECTION MASK
  1913. PRS3.2 LX1 6 GET NEXT RESIDENCE SELECTION PARAM
  1914. BX2 -X0*X1
  1915. ZR X2,PRS3.5 IF END OF SELECTIONS
  1916. SA3 PRSE GET VALID RESIDENCE SELECTION OPTIONS
  1917. MX7 1
  1918. PRS3.3 LX3 6 GET NEXT RESIDENCE SELECTION OPTION
  1919. BX4 -X0*X3
  1920. BX5 X2-X4 COMPARE
  1921. ZR X4,PRS3.4 IF END OF VALID OPTIONS
  1922. LX7 1
  1923. NZ X5,PRS3.3 IF NO MATCH
  1924. BX6 X6+X7 ADD VALID SELECTION TO MASK
  1925. EQ PRS3.2 GET NEXT SELECTION
  1926.  
  1927. PRS3.4 MESSAGE (=C* ERROR IN FILE RESIDENCE SELECTION.*)
  1928. ABORT
  1929. PRS3.5 SA6 RSM SAVE RESIDENCE SELECTION MASK
  1930.  
  1931. * PROCESS FILE TYPE PARAMETER.
  1932.  
  1933. SA1 TY GET FILE TYPE SELECTION PARAM
  1934. BX6 X6-X6 INITIALIZE FILE TYPE SELECTION
  1935. ZR X1,PRS3.9 IF NO FILE TYPE SELECTION
  1936. MX0 -6
  1937. PRS3.6 LX1 6 GET NEXT FILE TYPE SELECTION PARAM
  1938. BX2 -X0*X1
  1939. ZR X2,PRS3.9 IF END OF SELECTIONS
  1940. SA3 PRSF GET VALID FILE TYPE OPTIONS
  1941. BX7 X7-X7
  1942. PRS3.7 LX3 6 GET NEXT FILE TYPE OPTION
  1943. BX4 -X0*X3
  1944. BX5 X2-X4 COMPARE
  1945. ZR X4,PRS3.8 IF END OF VALID OPTIONS
  1946. SX7 X7+B1
  1947. NZ X5,PRS3.7 IF NO MATCH
  1948. BX6 X6+X7 ADD VALID SELECTION TO MASK
  1949. EQ PRS3.6 GET NEXT SELECTION
  1950.  
  1951. PRS3.8 MESSAGE (=C* ERROR IN FILE TYPE SELECTION.*)
  1952. ABORT
  1953.  
  1954. PRS3.9 SA6 TYM SAVE FILE TYPE SELECTION MASK
  1955.  
  1956. * PROCESS LIST OPTION.
  1957.  
  1958. MX0 59 SET OPTION
  1959. SA2 LO
  1960. SA1 LOPT
  1961. SB2 B0
  1962. SB3 LOPTL
  1963. SX5 B0
  1964. PRS4 BX4 -X0*X1 PICK SHORT LIST FLAG
  1965. BX1 X0*X1
  1966. IX6 X1-X2
  1967. ZR X6,PRS5 IF OPTION FOUND
  1968. SA1 A1+B1
  1969. SB2 B2+B1
  1970. LE B2,B3,PRS4 IF NOT END OF TABLE
  1971. MESSAGE (=C* INCORRECT LIST OPTION.*)
  1972. ABORT
  1973.  
  1974. * CHECK FOR PARAMETER CONFLICT.
  1975.  
  1976. PRS5 SA1 USERNUM
  1977. SA2 FILENAM
  1978. BX3 X2 SET SELECTED ENTRY FLAG
  1979. SB3 PMTL SET PROPER MODE
  1980. SX6 B0
  1981. SX7 PTPE SUBTITLE FOR ALTERNATE USER
  1982. LT B2,B3,PRS6 IF NOT PERMIT DATA REQUEST
  1983. SX5 B1 SET PERMIT LIST FLAG
  1984. SX7 PTPD SUBTITLE FOR SPECIFIED FILE NAME
  1985. BX3 X1 SET SELECTED ENTRY FLAG
  1986. NZ X2,PRS7 IF FILE NAME SPECIFIED
  1987. PRS5.1 MESSAGE (=C* FILE NAME MISSING.*)
  1988. ABORT
  1989.  
  1990. PRS6 SB3 B2-MOLC
  1991. NZ B3,PRS6.1 IF *LO=X* OPTION NOT SPECIFIED
  1992. SA3 HDRI
  1993. NZ X1,PRS1 IF USER NAME SPECIFIED
  1994. NZ X3,PRS1 IF MULTIPLE FILE NAMES SPECIFIED
  1995. ZR X2,PRS5.1 IF FILE NAME NOT SPECIFIED
  1996. PRS6.1 ZR X1,PRS8 IF USER NAME NOT SPECIFIED
  1997. SX6 ALTC SET ALTERNATE CATALOG MODE
  1998. PRS7 SA7 PTPC SET SUBTITLE FLAG
  1999. PRS8 SX6 X6+B2
  2000. SA6 MODE
  2001. MX0 42
  2002. ZR X4,PRS9 IF NOT SHORT FILE LIST
  2003. BX6 X0*X3 SET SELECTIVE ENTRY FLAG
  2004. SA6 CTLA
  2005.  
  2006. * SET *PFM* FET PARAMETERS.
  2007.  
  2008. PRS9 BX6 X0*X2
  2009. SA6 FILE SET FILE NAME IN SUBTITLE LINE
  2010. BX6 X6+X5
  2011. SA6 I+CFPN
  2012. BX7 X0*X1 SET USER NAME
  2013. SA7 I+CFOU
  2014. SA7 AUSER
  2015. ZR X5,PRS10 IF NOT PERMIT DATA
  2016. SX6 CTLD SET PERMIT MESSAGE ADDRESS
  2017. SA6 CTLB
  2018.  
  2019. * SET USER NAME OR USER INDEX IN TITLE LINE.
  2020.  
  2021. PRS10 GETPFP PRSB
  2022. SA1 PRSB+2 SET USER NAME IN TITLE LINE
  2023. BX6 X0*X1
  2024. SA6 USER
  2025. NZ X6,PRS10.1 IF USER NAME FOUND
  2026. RJ COD SET USER INDEX IN TITLE LINE
  2027. MX7 42
  2028. BX4 X7*X4
  2029. SX6 3RUI/
  2030. BX6 X4+X6
  2031. LX6 -18
  2032. PRS10.1 BX1 X6 SPACE FILL NAME
  2033. RJ SFN
  2034. SB3 PRSC SET CHARACTERS IN BUFFER
  2035. SB7 PTPB
  2036. RJ SCB
  2037.  
  2038. * SET PACKNAME OR FAMILY NAME IN TITLE LINE.
  2039.  
  2040. SA1 PACK
  2041. ZR X1,PRS11 IF NO PACKNAME SPECIFIED
  2042. BX6 X1
  2043. SA6 I+CFPK SET PACKNAME IN FET
  2044. SX7 1R0
  2045. LX7 54
  2046. BX7 X6-X7
  2047. ZR X7,PRS11.1 IF *PN=0* SPECIFIED
  2048. PRS10.2 SX4 3RPN/
  2049. EQ PRS12 SET PACK NAME IN TITLE LINE
  2050.  
  2051. PRS11 SA1 PRSB+1
  2052. ZR X1,PRS11.1 IF NO PACKNAME SET IN CPA
  2053. BX6 X0*X1
  2054. EQ PRS10.2 SET PACKNAME IN TITLE LINE
  2055.  
  2056. PRS11.1 SA1 PRSB SET FAMILY NAME IN TITLE LINE
  2057. SX4 3RFM/
  2058. BX6 X1
  2059. PRS12 BX1 X6+X4 MERGE FAMILY/PACK NAME WITH DESIGNATOR
  2060. LX1 -18
  2061. RJ SFN SPACE FILL NAME
  2062. SA6 PKNM
  2063.  
  2064. * PROCESS *NO ABORT* AND *WAIT BUSY* PARAMETERS.
  2065.  
  2066. SA1 NABT CHECK NO ABORT OPTION
  2067. SA2 WBSY
  2068. IX1 X1+X2
  2069. ZR X1,PRS13 IF NEITHER *NA* NOR *WB* SELECTED
  2070. SX2 X1-2
  2071. ZR X2,PRS1 IF BOTH *NA* AND *WB* SPECIFIED
  2072. SA1 I+1 SET ERROR PROCESSING BIT
  2073. SX6 B1
  2074. LX6 44
  2075. BX6 X1+X6
  2076. SA6 A1
  2077.  
  2078. * PROCESS RESIDENCE.
  2079.  
  2080. PRS13 SA1 RES CHECK RESIDENCE OPTION
  2081. ZR X1,PRS14 IF RESIDENCE NOT SET
  2082. MX0 12
  2083. BX6 X0*X1 SET DEVICE TYPE IN FET+1
  2084. SA2 I+1
  2085. BX5 -X0*X2
  2086. BX6 X5+X6
  2087. SA6 A2
  2088. LX1 12
  2089. BX5 X0*X1
  2090. ZR X5,PRS14 IF NO UNIT NUMBER
  2091. SB7 B1
  2092. RJ DXB CONVERT TO OCTAL
  2093. NZ X4,PRS1 IF ERROR
  2094. SA2 I+CFPK SET UNIT COUNT IN FET+CFPK
  2095. MX0 -12
  2096. BX5 X0*X2
  2097. BX6 X6+X5
  2098. SA6 A2
  2099.  
  2100. * PROCESS DEVICE NUMBER.
  2101.  
  2102. PRS14 SA5 DN CHECK DEVICE NUMBER
  2103. ZR X5,PRS15 IF NOT SET
  2104. SB7 B0
  2105. RJ DXB
  2106. SX2 X6-100B
  2107. NZ X4,PRS1 IF ERROR
  2108. PL X2,PRS1 IF DEVICE NUMBER OUT OF RANGE
  2109. SA5 I+CFOU
  2110. BX1 X6
  2111. LX6 12
  2112. BX6 X6+X5
  2113. SA6 A5
  2114. RJ COD SET DEVICE NUMBER IN TITLE LINE
  2115. MX0 12
  2116. BX4 X0*X4
  2117. SX6 3RDN/
  2118. BX1 X6+X4
  2119. LX1 -18
  2120. RJ SFN
  2121. SB3 PRSD
  2122. SB7 PTPB
  2123. RJ SCB
  2124. PRS15 RJ IPP INITIALIZE PAGE PARAMETERS
  2125. JP CTL
  2126.  
  2127.  
  2128. PRSA DATA 37373737373737373737B
  2129. PRSB BSSZ 3 *GETPFP* PARAMETER BLOCK
  2130. PRSC CFORM 13,9 FIELD IN TITLE FOR USER NAME/USER INDEX
  2131. PRSD CFORM 24,5 FIELD IN TITLE FOR DEVICE NUMBER
  2132. PRSE CON 3LCTD VALID RESIDENCE SELECTION OPTIONS
  2133. PRSF CON 3LIDA VALID FILE TYPE SELECTION OPTIONS
  2134. LOPT SPACE 4,10
  2135. ** LIST OPTIONS.
  2136. * BIT 0 SET IF SHORT LIST OPTION.
  2137. *
  2138. * ANY CHANGES MADE TO THIS TABLE WILL AFFECT THE
  2139. * DOCUMENTATION OF MODE VALUES IN THE *PRS* HEADER,
  2140. * TABLE *TLOT* IN THE MAIN ROUTINE, AND THE PROCESSING
  2141. * FOR HEADERS IN *HDR*.
  2142.  
  2143. LOPT BSS 0 LIST OPTIONS
  2144.  
  2145. LOC 0 CATALOG DATA LISTS
  2146. MOSF VFD 59/0,1/1 SHORT FILE LIST
  2147. MOFL CON 1LF FULL FILE LIST
  2148. MOLC CON 1LX LIST FILE AND CATEGORY SET
  2149.  
  2150. ALTC EQU * ALTERNATE CATALOG DATA LISTS
  2151. MOSA CON 0 SHORT ALTERNATE FILE LIST
  2152. MOFA CON 0 LONG ALTERNATE FILE LIST
  2153.  
  2154. PMTL EQU * PERMIT DATA LISTS
  2155. MOSP VFD 6/0LP,54/1 SHORT PERMIT LIST
  2156. MOFP CON 0LFP FULL PERMIT LIST
  2157.  
  2158. LOPTL EQU * TABLE LENGTH
  2159. LOC *O
  2160.  
  2161. * ARGUMENT TABLE.
  2162.  
  2163. TARG BSS 0
  2164. LO ARG =0,LO
  2165. UN ARG =0,USERNUM,400B
  2166. EF ARG EFNM,EFNM,200B
  2167. FN ARG FLNM,FLNM,200B
  2168. PN ARG =0,PACK,400B
  2169. L ARG =0LOUTPUT,O,400B
  2170. R ARG =0,RES
  2171. NA ARG -NZ,NABT
  2172. RS ARG =0,RS
  2173. WB ARG -NZ,WBSY
  2174. DN ARG =0,DN,400B
  2175. TY ARG =0,TY
  2176. ARG
  2177. IPP SPACE 4,15
  2178. ** IPP - INITIALIZE PAGE PARAMETERS.
  2179. *
  2180. * ENTRY NONE.
  2181. *
  2182. * EXIT JOB DEFAULT PAGE PARAMETERS SET.
  2183. *
  2184. * USES X - 0, 1, 2, 6, 7.
  2185. * A - 1, 2, 6.
  2186. * B - NONE.
  2187. *
  2188. * MACROS GETPP, SETSLM.
  2189.  
  2190.  
  2191. IPP1 SETSLM IPPC GET CURRENT SCREEN DEFINITION
  2192. SA1 IPPC
  2193. MX0 -6
  2194. BX2 -X0*X1 ISOLATE ORDINAL
  2195. LX1 59-6
  2196. SX6 LMDL ASSUME LINE MODE
  2197. PL X1,IPP3 IF LINE MODE
  2198. SA2 IPPB+X2 COMPUTE TABLE OFFSET BY ORDINAL
  2199. SX6 X2 GET LINE LIMIT
  2200. IPP3 SA6 LL INITIALIZE LINE LIMIT
  2201.  
  2202. IPP SUBR ENTRY/EXIT
  2203. SA1 DT
  2204. ZR X1,IPP1 IF TTY OUTPUT FILE
  2205. GETPP IPPA,LL,PD GET PAGE PARAMETERS
  2206. SA1 LL ADJUST LINE LIMIT
  2207. SX6 X1-1
  2208. EQ IPP3 RETURN
  2209.  
  2210. IPPA BSSZ 2 *GETPP* REPLY BUFFER
  2211.  
  2212. * SCREEN SIZE DEFINITIONS.
  2213. *
  2214. * THIS TABLE DEFINES THE NUMBER OF LINES TO OUTPUT TO
  2215. * FILL A SCREEN, BASED ON THE SCREEN TYPE. THIS IS
  2216. * USED IN TERMINAL MODE TO CONTROL OUTPUT OF THE SHORT
  2217. * SORTED LIST, SUCH THAT FILES WILL APPEAR IN
  2218. * ALPHABETICAL ORDER ON A FULL SCREEN.
  2219. *
  2220. *T 60/LC
  2221. *
  2222. * WHERE LC = TERMINAL MODE SCREEN LINE COUNT.
  2223. *
  2224. * NOTE : IF MORE RESIDENT TERMINAL TYPES ARE ADDED
  2225. * TO *COMCGTO*, MORE ENTRIES SHOULD BE ADDED TO THIS
  2226. * TABLE.
  2227. *
  2228.  
  2229. IPPB BSS 0
  2230. VFD 60/LMDL NO SCREEN DEFINED
  2231. VFD 60/SMDL USER DEFINED
  2232. VFD 60/SMDL+6 RESIDENT *721* DEFINED
  2233. CON 0 END OF TABLE
  2234.  
  2235. IPPC CON 0 SETSLM RESPONSE WORD
  2236. SPACE 4,10
  2237. ** PRESET COMMON DECKS.
  2238.  
  2239.  
  2240. *CALL COMCARG
  2241. *CALL COMCSTF
  2242. *CALL COMCVLC
  2243. SPACE 4
  2244. END
cdc/nos2.source/opl871/catlist.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator