Table of Contents

TFILES

Table Of Contents

  • [00014] TFILES - TAPE FILE REQUEST PROCESSOR
  • [00265] TAPE FILE REQUEST MACROS
  • [00266] MACROS
  • [00282] SETEA - SET ERROR ADDRESS.
  • [00299] XFER - TRANSFER CHARACTER STRING.
  • [01347] AUDIT ROUTINES.
  • [01349] ADT - AUDIT MAIN CONTROL ROUTINE.
  • [01452] FAD - FULL LIST OF ADMIT DATA
  • [01558] FFL - FULL LISTING
  • [01728] MRF - MACHINE READABLE FILE.
  • [02214] SAD - SHORT ADMIT DATA
  • [02260] SFL - SHORT FILE LIST
  • [02311] SSL - SHORT SORTED LIST.
  • [02471] SUBROUTINES.
  • [02473] AEN - ADVANCE ENTRY NUMBER.
  • [02500] ALN - ADVANCE LINE NUMBER
  • [02600] PAR - PROCESS ARGUMENTS
  • [02707] CBE - CLEAR BLANKS FROM WORD.
  • [02734] CER - CHECK FOR RETURNED ERRORS
  • [02784] CDT - CONVERT TIMES AND DATES TO DISPLAY FORMAT.
  • [02814] CNV - CONVERT PARAMETER TO VALUE
  • [02899] CSU - CHECK FOR SPECIAL USER.
  • [02949] ERR - ERROR MESSAGES.
  • [02989] ESP - ENTER SECURE PASSWORD.
  • [03568] GAL - GENERATE ADMIT LIST.
  • [03621] GSL - GENERATE SHORT LIST.
  • [03698] HDR - GENERATES HEADERS.
  • [03780] IDF - ISSUE DAYFILE MESSAGE.
  • [03815] MCS - MOVE CHARACTER STRING.
  • [03897] PCK - PACK FILE IDENTIFIER (17 CHARACTERS).
  • [03968] PVS - PAD VSN WITH CHARACTER *0*.
  • [04025] PVT - PROCESS *VSN* OR *TFN* LIST.
  • [04057] PTP - PRINT TITLE PAGE.
  • [04117] RQS - REQUEST STORAGE.
  • [04154] SEC - SHORT LIST ERROR CHECK
  • [04202] SST - SHELL SORT TABLE.
  • [04473] ZFD - DISPLAY CODE ZERO FILL WORD. (EXTRACTED FROM PFTRACK)

Source Code

TFILES.txt
  1. IDENT TFILES,FWA
  2. ABS
  3. SST
  4. ENTRY ADMIT
  5. ENTRY AMEND
  6. ENTRY AUDIT
  7. ENTRY RESERVE
  8. ENTRY RELEASE
  9. ENTRY TMSDEF
  10. ENTRY ARG=
  11. ENTRY RFL=
  12. ENTRY SDM=
  13. SYSCOM B1
  14. TITLE TFILES - TAPE FILE REQUEST PROCESSOR
  15. *COMMENT TAPE FILE REQUEST PROCESSOR.
  16. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  17. TFILES SPACE 4,10
  18. ***** TFILES - TAPE FILE REQUEST PROCESSOR
  19. *
  20. * L.A. GILBERTSON. 82/08/04.
  21. SPACE 4,10
  22. *** TFILES PROCESSES THE FOLLOWING TAPE FILE REQUESTS:
  23. * *ADMIT*, *AMEND*, *AUDIT*, *RELEASE* AND *RESERVE*.
  24. SPACE 4,10
  25. *** COMMAND CALL.
  26. *
  27. * THE *ADMIT* COMMAND GRANTS PERMISSION FOR USERS
  28. * OTHER THAN THE FILE ORIGINATOR (ALTERNATE USERS) TO ACCESS
  29. * AND EMPLOY A PRIVATE FILE. BESIDES SPECIFYING WHAT
  30. * ALTERNATE USER NAMES CAN EMPLOY A PRIVATE FILE, THE *ADMIT*
  31. * COMMAND CAN INDICATE THE WAY IN WHICH EACH ALTERNATE
  32. * USER IS ALLOWED TO EMPLOY THE FILE (A FILE MODE RESTRICTION
  33. * MUST BE PLACED ON EACH ALTERNATE USER).
  34. * IN ADDITION, THE *ADMIT* COMMAND CAN BE SUPPLIED TO
  35. * OVERRIDE THE FILE MODE THAT WAS ESTABLISHED WHEN A SEMI-
  36. * PRIVATE FILE WAS ORIGINALLY RESERVED. FOR EXAMPLE, ASSUME
  37. * THAT THE USER RESERVED A FILE IN THE SEMIPRIVATE FILE
  38. * CATEGORY UNDER WRITE MODE. IF THE FILE ORIGINATOR WANTS
  39. * TO GRANT READ PERMISSION (READ MODE) TO ONE SPECIFIC
  40. * USER (CD4567E), HE OR SHE CAN DO SO BY SUPPLYING THE
  41. * FOLLOWING *ADMIT* COMMAND
  42. *
  43. * ADMIT,TFN,CD4567E=R.
  44. *
  45. * ALL OTHER USERS CONTINUE TO BE CONTROLLED BY THE WRITE MODE
  46. * THAT WAS ESTABLISHED WHEN THE SEMIPRIVATE FILE WAS ORIGINALLY
  47. * SAVED.
  48. *
  49. * THE *AMEND* COMMAND ALLOWS THE ORIGINATOR OF A TAPE FILE
  50. * TO CHANGE SOME OF THE PARAMETERS ASSOCIATED WITH THAT FILE,
  51. * WITHOUT HAVING TO REWRITE THE FILE.
  52. *
  53. * THE *AUDIT* COMMAND ENABLES A USER TO OBTAIN INFORMATION
  54. * ABOUT THE FILES THAT RESIDE IN HIS OR HER TAPE FILE CATALOG.
  55. * IN ADDITION, ALTERNATE USERS CAN REQUEST *AUDIT* INFORMATION
  56. * ABOUT THE SPECIFIC FILES THEY ARE PERMITTED TO ACCESS
  57. * IN ALTERNATE USER CATALOGS.
  58. *
  59. * THE *RELEASE* COMMAND RELEASES ONE OR MORE SPECIFIED TAPE
  60. * FILES FROM THE USERS CATALOG. USERS CAN ONLY RELEASE
  61. * CENTER-OWNED RESERVED TAPES AND TAPES THAT ARE RETAINED
  62. * UNDER THE SAME USER NAME.
  63. *
  64. * THE *RESERVE* COMMAND ENABLES A USER TO RESERVE
  65. * A CENTER-OWNED SCRATCH TAPE UNDER THE NOS TAPE MANAGEMENT
  66. * SYSTEM (TMS). THE NOS FAMILY RETAINS THE TAPE UNDER THE
  67. * USERNAME OF THE USER WHO SUPPLIES THE *RESERVE* COMMAND.
  68. *
  69. * THE *TMSDEF* COMMAND ALLOWS THE USER TO DEFINE THE DEFAULT
  70. * VALUES FOR *TMS* PARAMETERS ON THE *LABEL* AND *REQUEST*
  71. * COMMANDS.
  72. *
  73. * TWO TYPES OF ACCESS ARE AVAILABLE FOR TAPE FILES.
  74. *
  75. * 1. TAPE LOGICAL FILE NAME. TAPE FILE NAMES CAN BE
  76. * 1 TO 17 CHARACTERS IN LENGTH AND MUST BE UNIQUE
  77. * WITHIN A USERS CATALOG. (ANALOGOUS TO PERMANENT
  78. * FILE NAMES.) A SPECIFIC TAPE FILE MAY BE FROM
  79. * 1 TO 60 REELS LONG.
  80. *
  81. * 2. VOLUME SERIAL NUMBER. THIS IS THE EXTERNAL
  82. * CENTER-DEFINED SERIAL NUMBER ASSIGNED TO EACH TAPE
  83. * IN THE TAPE POOL. (ONLY THE FIRST VOLUME SERIAL
  84. * NUMBER IN A MULTI-VOLUME SET IS VALID IF THIS TYPE
  85. * OF ACCESS IS CHOSEN.)
  86. *
  87. * COMMAND FORMATS -
  88. *
  89. * ADMIT,TFN,USERNAM1=M1,...,USERNAMN=MN/,S,NA.
  90. *
  91. * AMEND,NFN1=OFN1,...NFNN=OFNN/PW=PSWD,CT=CT,M=MD,UC=UCW,AC=AC,
  92. * CE,AN,S,NA.
  93. *
  94. * AUDIT,TFN,LO=OPT,UN=USERNAM,L=LFN1,SS=LFN2,S.
  95. * AUDIT,LO=OPT,UN=USERNUM,L=LFN1,SS=LFN2.
  96. *
  97. * RELEASE,TFN1,...TFNN/NA.
  98. *
  99. * RESERVE,LFN1,...,LFNN/SS=LFNX,PW=PSWD,CT=CT,M=MD,UC=UCW,NA.
  100. *
  101. * TMSDEF,TO=TOPT.
  102. *
  103. * WHERE:
  104. *
  105. * AC= INDICATES WHETHER OR NOT ALTERNATE USERS CAN
  106. * OBTAIN *AUDIT* INFORMATION ABOUT THE FILE.
  107. * VALID ENTRIES: Y - (YES)
  108. * N - (NO) DEFAULT.
  109. *
  110. * AN IF SPECIFIED, CHANGES THE SPECIFIED TAPES
  111. * CHARGE/PROJECT NUMBER TO THE CURRENT CHARGE/
  112. * PROJECT NUMBER THE USER IS RUNNING UNDER.
  113. *
  114. * CE CLEAR ERROR OPTION. IF TMS DETECTS AN ERROR
  115. * WHEN A USER TRIES TO ACCESS A FILE, A DIAGNOSTIC
  116. * IS ISSUED. IN ADDITION, *AUDIT* OUTPUT WILL PLACE
  117. * AN ASTERISK IN FRONT OF THE NAME OF EACH ERRON-
  118. * EOUS FILE. USERS SHOULD CONTACT *CYBERNET*
  119. * CUSTOMER SERVICE TO DETERMINE THE EXTENT OF
  120. * DAMAGE ON THE ERRONEOUS FILE. IF THE USER STILL
  121. * WANTS TO EMPLOY THE DAMAGED FILE, HE OR SHE
  122. * SHOULD SUPPLY AN *AMEND* COMMAND WITH THE *CE*
  123. * OPTION AND TMS WILL CLEAR THE ERROR BIT.
  124. * SUBSEQUENTLY, USERS WILL BE ALLOWED TO ACCESS THE
  125. * TAPE FILE.
  126. *
  127. * CT FILE ACCESS CATEGORY. IF CT=CT IS OMITTED WHEN THE FILE
  128. * IS CREATED, THE FILE IS PRIVATE. THE FILE CATEGORY
  129. * CAN BE CHANGED LATER.
  130. *
  131. * P OR PR PRIVATE FILES; AVAILABLE FOR ACCESS
  132. * ONLY BY THEIR CREATOR AND BY THOSE
  133. * GRANTED EXPLICIT ACCESS PERMISSION BY
  134. * THE FILE CREATOR(REFER TO THE *ADMIT*
  135. * COMMAND).
  136. *
  137. * S SEMIPRIVATE FILES; AVAILABLE FOR ACCESS
  138. * BY A USER WHO KNOWS THE FILE NAME, USER
  139. * NUMBER, AND FILE PASSWORD AND WHO HAS
  140. * NOT BEEN EXPLICITLY DENIED PERMISSION TO
  141. * THE FILE(I.E. M=N OPTION ON THE *ADMIT*
  142. * COMMAND).
  143. *
  144. * PU PUBLIC FILES; AVAILABLE FOR ACCESS BY AL
  145. * USERS WHO KNOW THE FILE NAME, USER NUMBE
  146. * AND PASSWORD. THE SYSTEM RECORDS THE
  147. * NUMBER OF TIMES THE FILE WAS ACCESSED AN
  148. * THE DATE AND TIME OF THE LAST ACCESS, BU
  149. * DOES NOT RECORD USER NUMBERS.
  150. *
  151. * LFN (*RESERVE* COMMAND) LOCAL FILE NAME.
  152. *
  153. * LFNX (*RESERVE* COMMAND) FILE NAME TO RECEIVE THE
  154. * MACHINE READABLE TAPE FILE STATUS INFORMATION.
  155. *
  156. * MD FILE ACCESS MODE PERMITTED TO OTHER USERS IF THE FILE
  157. * IS PUBLIC OR SEMIPRIVATE, AND IF EXPLICIT ACCESS
  158. * PERMISSION HAS NOT BEEN GRANTED TO THAT USER. IF
  159. * M=M IS OMITTED, M=WRITE IS ASSUMED, EXCEPT FOR *ADMIT*,
  160. * WHERE READ IS THE DEFAULT.
  161. *
  162. * R THIS FILE CAN BE READ.
  163. *
  164. * W THIS FILE CAN BE READ OR WRITTEN ON.
  165. *
  166. * N NO ACCESS IS ALLOWED.
  167. *
  168. * S IF SPECIFIED, THE SYMBOLIC TAPE FILE NAME WAS GIVEN.
  169. *
  170. * NA NO ABORT OPTION. BY DEFAULT, IF NOS ENCOUNTERS
  171. * AN ERROR WHILE PROCESSING A COMMAND,
  172. * IT INITIATES ERROR PROCESSING. HOWEVER, IF THE
  173. * NO-ABORT OPTION IS IN EFFECT AND THE SYSTEM FINDS
  174. * AN ERROR, THE SYSTEM SKIPS THE COMMAND AND
  175. * PROCESSES THE REMAINING COMMANDS IN THE JOB.
  176. *
  177. * OPT *AUDIT* LIST OPTION.
  178. * VALID ENTRIES: F - (FULL LIST)
  179. * M - (FULL MULTIFILE LIST)
  180. * 0 - (ZERO, SHORT LIST) DEFAULT.
  181. * FP- (FULL ADMIT LIST)
  182. * P - (SHORT ADMIT LIST)
  183. *
  184. * TFN TAPE FILE NAME OR VOLUME SERIAL NUMBER.
  185. *
  186. * TOPT THE DEFAULT VALUE FOR THE TAPE OPTION (*TO*) PARAMETER
  187. * ON THE *LABEL* OR *REQUEST* COMMAND.
  188. *
  189. * T SET DEFAULT TO *TO=T* (*TMS* PROCESSING).
  190. *
  191. * F SET DEFAULT TO *TO=F* (NON-*TMS* PROCESSING).
  192. *
  193. * C IF DEFAULT TO *TO=C* (CHECK FOR CATALOG ERROR.)
  194. *
  195. * E IF DEFAULT TO *TO=E* (IGNORE CATALOG ERROR.)
  196. *
  197. * UCW USER CONTROL WORD. (1 TO 10 CHARACTERS)
  198. SPACE 4,10
  199. *** DAYFILE MESSAGES.
  200. *
  201. * *ERROR IN TFILES ARGUMENT.* = AN ARGUMENT TO TAPE FILE
  202. * REQUEST WAS INCORRECT.
  203. *
  204. * *ERROR IN VSN.* = THE SYNTAX OF A SPECIFIED VSN WAS
  205. * INCORRECT.
  206. *
  207. * *NO USERNAME SPECIFIED.* = NO USERNAME WAS SPECIFIED WHEN
  208. * ONE WAS REQUIRED.
  209. *
  210. * *EXCEEDED USERNAME LIMIT.* = TOO MANY USERNAMES ON AN
  211. * *ADMIT* REQUEST. (MAXIMUM OF SEVEN)
  212. *
  213. * *ERROR IN USERNAME.* = SYNTAX ERROR.
  214. *
  215. * *INCORRECT SEPARATOR.*
  216. *
  217. * *INCORRECT FILE MODE.*
  218. *
  219. * *ERROR IN FILENAME.* = SYNTAX ERROR.
  220. *
  221. * *EXCEEDED FILENAME LIMIT.* = EXCEEDED LIMIT OF SEVEN.
  222. *
  223. * *FILENAME MISSING.* = NO FILENAME SPECIFIED WHEN
  224. * ONE WAS REQUIRED.
  225. *
  226. * *INCORRECT FILE CATEGORY.*
  227. *
  228. * *INCORRECT AC PARAMETER.*
  229. *
  230. * *EXCEEDED VSN LIMIT.* = EXCEEDED LIMIT OF SEVEN.
  231. *
  232. * *INCORRECT PASSWORD.*
  233. *
  234. * *CANNOT AMEND VSN NAME.*
  235. *
  236. * *EMPTY CATALOG.*
  237. *
  238. * *REMARK= NOT SUPPORTED AT 1.4D, USE UC=.*
  239. *
  240. * *PFN= NOT SUPPORTED AT 1.4D, IS NOW A NO-OP.*
  241. SPACE 4,10
  242. *** COMMON DECKS.
  243.  
  244. *CALL COMCCMD
  245. *CALL COMCMAC
  246. *CALL COMSSFM
  247. *CALL COMSTCM
  248. *CALL COMSTFM
  249. QUAL TFU
  250. *CALL COMSTFU
  251. QUAL *
  252. SPACE 4
  253. **** ASSEMBLY CONSTANTS.
  254.  
  255. SDM= EQU 0 SUPPRESS DAYFILE MESSAGE
  256. ARG= EQU 0 SUPPRESS SYSTEM CRACKING
  257. OBFL EQU 1001 OUTPUT BUFFER SIZE
  258. IBFL EQU 101B INPUT BUFFER LENGTH
  259. SBFL EQU 300B INITIAL SORT BUFFER LENGTH
  260. FLIN EQU 1000B FL INCREMENT FOR SORT BUFFER
  261. MSBL EQU SBFL+5*FLIN MAXIMUM SORT BUFFER LENGTH
  262. TWBL EQU TSVL*60D+TCEL+2 AUDIT BUFFER SIZE
  263. NWRD EQU 8D FOR 80 CHARACTER OUTPUT
  264. CHDR EQU 3 NUMBER OF HEADER LINES
  265. TITLE TAPE FILE REQUEST MACROS
  266. TITLE MACROS
  267. MOVEIT SPACE 4,15
  268. ** MOVEIT.
  269. *
  270. * THE MOVEIT MACRO IS USED TO CONSTRUCT DIRECTIVES FOR THE MCS
  271. * SUBROUTINE. THE FORMAT AND THE PURPOSE OF THE DIRECTIVE IS
  272. * EXPLAINED IN THE MCS DOCUMENTATION.
  273. *
  274.  
  275.  
  276. PURGMAC MOVEIT
  277.  
  278. MOVEIT MACRO N,L1,C1,L2,C2
  279. VFD 12/N,18/L1,6/C1,6/C2,18/L2
  280. ENDM
  281. SETEA SPACE 4,15
  282. ** SETEA - SET ERROR ADDRESS.
  283. *
  284. * AD = WORD EA OF FET.
  285. * VA = ERROR MESSAGE RETURN BUFFER ADDRESS.
  286.  
  287.  
  288. PURGMAC SETEA
  289.  
  290. SETEA MACRO AD,VA
  291. LOCAL A,B
  292. A BSS 0
  293. B EQU *O
  294. ORG AD
  295. VFD VA
  296. ORG B
  297. ENDM
  298. XFER SPACE 4,10
  299. ** XFER - TRANSFER CHARACTER STRING.
  300. *
  301. * THE *XFER* MACRO ASSEMBLES THE MACRO PARAMETERS INTO
  302. * (X1) AND (X2) FOR THE CALL TO *XFR*. SEE *XFR* FOR
  303. * FOR MORE INFORMATION.
  304.  
  305.  
  306. PURGMAC XFER
  307.  
  308. XFER MACRO SFWA,OFWA,BWP,BCP,SCC,OCC
  309. SX1 SFWA FWA OF SOURCE
  310. SX2 OFWA FWA OF OBJECT
  311. LX1 3
  312. LX2 3
  313. SX3 7B VALIDATE ALL CHARACTERS
  314. BX1 X1+X3
  315. BX2 X2+X3
  316. LX1 9
  317. LX2 9
  318. SX3 BWP BEGINNING WORD POSITION
  319. BX2 X2+X3
  320. LX1 9
  321. LX2 9
  322. SX3 BCP BEGINNING CHARACTER POSITION
  323. BX2 X2+X3
  324. LX1 9
  325. LX2 9
  326. SX3 SCC XFER CHARACTER COUNT
  327. BX1 X1+X3
  328. IFC NE,$OCC$$
  329. SX3 OCC
  330. ELSE
  331. ENDIF
  332. BX2 X2+X3
  333. RJ XFR TRANSFER CHARACTER STRING
  334. ENDM
  335. TFILES TITLE FUNCTION PROCESSORS.
  336. ** FETS.
  337.  
  338. ORG 121B
  339. FWA BSS 0 DEFINE LOAD ADDRESS
  340.  
  341. F BSS 0
  342. TFET FILEB TFWB,TWBL,(FET=20B),EPR
  343.  
  344. TFMSG BSSZ 4 ERROR MESSAGE RETURN
  345. TFWB BSSZ TWBL BUFFER
  346.  
  347. SETEA F+5,(42/0,18/TFMSG)
  348.  
  349. I BSS 0
  350. INPUT FILEB IBUF,101B,FET=6
  351.  
  352. O BSS 0
  353. OUTPUT FILEB OBUF,OBFL,EPR,FET=10B
  354.  
  355. P BSS 0
  356. POUT FILEB PMSG,PMSGL+1,FET=6
  357. SPACE 4
  358. ** WORKING STORAGE.
  359.  
  360. LIT CON 0 PROCESS LITERALS FLAG
  361. INDX BSSZ 1 TABLE POINTER
  362. NARG BSSZ 1 NUMBER OF ARGUMENTS
  363. SAVE BSSZ 1 POSITION IN COMMAND
  364. VSNC VFD 60/3CVSN NON-SYMBOLIC ACCESS FLAG
  365. VSNB CON 4R
  366. NABT CON 0 NO ABORT OPTION
  367. USER CON 0 SELECTED USER NUMBER
  368. PSWD CON 0 PASSWORD
  369. CATG CON 0 FILE CATEGORY
  370. ALAD CON 0 ALTERNATE AUDIT ATTRIBUTE
  371. MODE CON 0 FILE MODE
  372. USCW CON 0 USER CONTROL WORD
  373. CLER CON 0 CLEAR ERROR OPTION
  374. ANCP CON 0 CURRENT CHARGE/PROJECT NUMBER
  375. MCRD CON 0 MACHINE READABLE FILE OPTION
  376. TPFG CON 0 TITLE PAGE FLAG FOR TERMINAL
  377. ENTD CON 0 ENTRY NUMBER(DISPLAY)
  378. LOPT CON 0 LIST OPTION
  379. DTYP CON 0 DEVICE TYPE
  380. PAGE CON 0 PAGE NUMBER
  381. ENTN CON 0 ENTRY NUMBER
  382. SYMB CON 0 SYMBOLIC ACCESS
  383. LINE CON LINP LINE NUMBER
  384. BLNK CON 1L BLANK LINE
  385. CODE CON 0 AUDIT LIST CODE
  386. MULT CON 0 MULTIFILE LIST IDENTIFIER
  387. MXBS CON MSBL MAXIMUM SORT BUFFER SIZE
  388. CSBS CON SBFL CURRENT SORT BUFFER SIZE
  389. CRFL CON RFL= CURRENT FL
  390. PERM CON 0 PFN NO-OP FOR OLD *RESERVE*
  391. REMK CON 0 REMARK PARAMETER FROM OLD *RESERVE*
  392. SPACE 4
  393. ** TABLES.
  394.  
  395. TADM BSS 0 TABLE OF ADMIT PARAMETERS
  396. S ARG -*,SYMB
  397. NA ARG -*,NABT
  398. ARG END OF TABLE
  399.  
  400. TAMD BSS 0 TABLE OF AMEND PARAMETERS
  401. S ARG -*,SYMB
  402. NA ARG -*,NABT
  403. PW ARG =1,PSWD,400B
  404. CT ARG CATG,CATG
  405. AC ARG ALAD,ALAD
  406. M ARG MODE,MODE
  407. UC ARG USCW,USCW,400B,1
  408. CE ARG -*,CLER
  409. AN ARG -*,ANCP
  410. ARG END OF TABLE
  411.  
  412. TAUD BSS 0 TABLE OF AUDIT PARAMETERS
  413. S ARG -*,SYMB
  414. LO ARG LOPT,LOPT
  415. UN ARG USER,USER,400B
  416. L ARG O,O,400B
  417. SS ARG MCRD,MCRD,400B
  418. ARG END OF TABLE
  419.  
  420. TREL BSS 0 TABLE OF RELEASE PARAMETERS
  421. S ARG -*,SYMB
  422. NA ARG -*,NABT
  423. ARG END OF TABLE
  424.  
  425. TRES BSS 0 TABLE OF RESERVE PARAMETERS
  426. PW ARG =1,PSWD,400B
  427. CT ARG CATG,CATG
  428. AC ARG ALAD,ALAD
  429. M ARG MODE,MODE
  430. UC ARG USCW,USCW,400B,1
  431. NA ARG -*,NABT
  432. SS ARG MCRD,MCRD,400B
  433. PF ARG PERM,PERM,400B
  434. RE ARG REMK,REMK,400B,1
  435. ARG END OF TABLE
  436.  
  437. TFIN BSS 0 TABLE OF FILE IDENTIFIERS
  438. BSSZ 14D
  439. TFINL EQU *-TFIN
  440.  
  441. TVSN BSS 0 TABLE OF VOLUME SERIAL NUMBERS
  442. BSSZ 7
  443. TVSNL EQU *-TVSN
  444.  
  445. TARG BSS 0 ARGUMENT TABLE
  446. BSSZ 63B
  447. TARGL EQU *-TARG ARGUMENT TABLE LENGTH
  448.  
  449. ** DEFINE REMOVE SECURE PARAMETERS.
  450.  
  451. RSP1$ BSS 0 TABLE OF KEYWORD EQUIVALENCES
  452.  
  453. RSP2$ BSS 0 TABLE OF SECURE KEYWORDS
  454. VFD 12/0LPW,48/ ALTERNATE USER PASSWORD
  455. VFD 60/0 END OF TABLE
  456. ADMIT SPACE 4,25
  457. *** ADMIT,TFN,USERNAM1=M1,...,USERNAMN=MN/S,NA.
  458. *
  459. * ADMIT GRANTS PERMISSION TO USERS OTHER THAN THE FILE
  460. * ORIGINATOR, TO ACCESS AND EMPLOY A PRIVATE TAPE FILE.
  461. *
  462. * TFN = TAPE FILE IDENTIFIER OR VOLUME SERIAL NUMBER.
  463. * USERNAM = USER THAT WILL BE ALLOWED ACCESS.
  464. * M = MODE IN WHICH THE ALTERNATE USER CAN ACCESS.
  465. * S = SYMBOLIC ACCESS.
  466. *
  467. * ENTRY ADMIT COMMAND HAS BEEN ISSUED.
  468. *
  469. * EXIT ADMIT(S) COMPLETED OR APPROPRIATE ERROR ISSUED.
  470. *
  471. * CALLS BAT, CER, PAR, USB.
  472. *
  473. * MACROS ADMIT, MESSAGE, ENDRUN.
  474.  
  475.  
  476. ADMIT BSS 0
  477. SB1 1
  478. RJ IDF ISSUE DAYFILE MESSAGE
  479. SB2 CCDR LOCATE COMMAND IMAGE
  480. RJ USB UNPACK DATA TO STRING BUFFER
  481. RJ POP PICK OUT *ADMIT* WORD
  482. NZ B5,ERR IF ERROR ENCOUNTERED
  483. ZR B6,ERR1 IF NO ARGUMENTS
  484. SX7 1
  485. SA7 LIT SET PROCESS LITERALS FLAG
  486. SX6 B6
  487. SA6 SAVE
  488. RJ POP PICK OUT NEXT WORD
  489. NG B5,ERR IF ERROR ENCOUNTERED
  490. SB3 X1-1R=
  491. ZR B3,ERR IF *=*, ERROR
  492. SB3 B0
  493. SA5 TFIN
  494. RJ PCK STORE FILE IDENTIFIER
  495. NG X2,ERR3 IF NO USERNAME SPECIFIED
  496. ADM1 RJ POP PICK UP USERNAME
  497. NZ B5,ERR5 IF ERROR ENCOUNTERED
  498. SA3 INDX
  499. SB3 X3
  500. SB7 ADMAL
  501. EQ B3,B7,ERR4 EXCEEDED USERNAME LIMIT
  502. MX0 42
  503. BX3 -X0*X6
  504. NZ X3,ERR5 IF USERNAME .GT. 7 CHARACTERS
  505. SA6 ADMA+B3
  506. SX6 FMRE DEFAULT MODE READ
  507. SB4 X1-1R,
  508. EQ B4,ADM3 IF DELIMITER IS COMMA
  509. SB4 X1-1R/
  510. EQ B4,ADM3 IF DELIMITER IS SLASH
  511. NG X2,ADM3 IF NO MORE ARGUMENTS
  512. SB4 X1-1R=
  513. NZ B4,ERR IF INCORRECT DELIMITER
  514. RJ POP PICK OUT FILE MODE
  515. NZ B5,ERR IF ERROR ENCOUNTERED
  516. ZR X6,ERR IF NO ARGUMENT
  517. SB3 3
  518. SB2 B0
  519. ADM2 SA4 CNVC+B2 CONVERT MODE
  520. MX0 12
  521. BX4 X4*X0
  522. SB2 B2+B1
  523. GT B2,B3,ERR7 IF INCORRECT MODE SPECIFIED
  524. BX4 X6-X4
  525. NZ X4,ADM2 IF MODE NOT FOUND
  526. SB2 B2-B1
  527. SA4 CNVC+B2
  528. MX0 -12
  529. BX6 -X0*X4
  530. ADM3 SA3 INDX
  531. SB3 X3
  532. SA6 ADMB+B3 SAVE FILE MODE
  533. SX6 B3+B1 INCREMENT INDX
  534. SA6 INDX
  535. SB3 X1-1R, CHECK DELIMITER
  536. ZR B3,ADM1 IF MORE USERNAMES SPECIFIED
  537. NG X2,ADM4 IF NO MORE ARGUMENTS
  538. SB3 X1-1R/
  539. NZ B3,ERR6 IF DELIMITER ERROR
  540. RJ BAT BUILD ARGUMENT TABLE
  541. SA2 BATA
  542. SB4 X2
  543. SA4 TARG
  544. SB5 TADM
  545. RJ PAR PROCESS REMAINING ARGUMENTS
  546. NZ X1,ERR IF ARGUMENT ERROR
  547. NZ B6,ERR IF MORE ARGUMENTS
  548. ADM4 SA1 SYMB
  549. NZ X1,ADM5 IF SYMBOLIC ACCESS
  550. SX6 B0
  551. SA6 VSNC SET VSN ACCESS FLAG
  552. MX0 36
  553. SA1 TFIN GET VSN NAME
  554. BX2 -X0*X1
  555. SA3 VSNB
  556. BX2 X2-X3
  557. NZ X2,ERR2 IF VSN .GT. 6 CHARACTERS
  558. BX6 X0*X1
  559. RJ PVS PAD *VSN* WITH *0*
  560. SA6 TVSN
  561. ADM5 SB7 B0
  562. SA3 INDX
  563. SB6 X3
  564. SA3 VSNC
  565. ZR X3,ADM7 IF VSN SPECIFIED
  566. ADM6 ADMIT F,TFIN,,ADMA+B7,ADMB+B7
  567. RJ CER CHECK FOR RETURNED ERRORS
  568. SB7 B7+B1
  569. LT B7,B6,ADM6 IF MORE FILE NAMES
  570. EQ ADM8 PROCESSING COMPLETED
  571.  
  572. ADM7 ADMIT F,,TVSN,ADMA+B7,ADMB+B7
  573. RJ CER CHECK FOR RETURNED ERRORS
  574. SB7 B7+B1
  575. LT B7,B6,ADM7 IF MORE VSNS
  576. ADM8 ENDRUN
  577.  
  578. ADMA BSS 0 STORAGE FOR USERNAMES
  579. BSSZ 7
  580. ADMAL EQU *-ADMA
  581.  
  582. ADMB BSS 0 STORAGE FOR FILE MODES
  583. BSSZ 7
  584. AMEND SPACE 4,25
  585. *** AMEND,NFN1=OFN1,...,NFNN=OFNN/PW,CT,AC,M,UC,CE,AN,S,NA.
  586. *
  587. * THE AMEND COMMAND ALLOWS THE ORIGINATOR OF A TAPE
  588. * FILE TO AMEND SOME OF THE FILE-S PARAMETERS WITHOUT
  589. * HAVING TO REWRITE THE FILE.
  590. *
  591. * NFN = NEW TAPE FILE NAME.
  592. * OFN = OLD TAPE FILE NAME OR VOLUME SERIAL NUMBER.
  593. * PW = FILE PASSWORD.
  594. * CT = FILE CATEGORY.
  595. * AC = ALTERNATE USER AUDITABILITY.
  596. * M = FILE MODE.
  597. * UC = USER CONTROL WORD.
  598. * CE = CLEAR ERROR OPTION.
  599. * AN = CHANGE TO CURRENT CHARGE/PROJECT NO.
  600. * S = SYMBOLIC ACCESS.
  601. * NA = NO ABORT OPTION.
  602. *
  603. * ENTRY AMEND COMMAND HAS BEEN ISSUED.
  604. *
  605. * EXIT ALTER(S) COMPLETED OR APPROPRIATE ERROR ISSUED.
  606. *
  607. * CALLS BAT, CER, CNV, ESP, IDF, PAR, PCK, POP, PVT, USB.
  608. *
  609. * MACROS AMEND, ENDRUN, MESSAGE.
  610.  
  611.  
  612. AMEND BSS 0
  613. SB1 1
  614. RJ IDF ISSUE DAYFILE MESSAGE
  615. SB2 CCDR LOCATE COMMAND IMAGE
  616. RJ USB UNPACK DATA TO STRING BUFFER
  617. RJ POP PICK OUT *AMEND* WORD.
  618. NZ B5,ERR IF ERROR ENCOUNTERED
  619. ZR B6,ERR1 IF NO MORE ARGUMENTS
  620. SX7 1
  621. SA7 LIT SET PROCESS LITERALS FLAG
  622. SX6 B6
  623. SA6 SAVE
  624. RJ POP PICK OUT PARAMETER
  625. NG B5,ERR IF ERROR ENCOUNTERED
  626. ZR B6,ERR1 IF NO MORE ARGUMENTS
  627. SA3 SAVE
  628. SB6 X3
  629. SB3 X1-1R=
  630. ZR B3,AMD1 IF *=*
  631. RJ PVT PROCESS VSN/TFN LIST
  632. NG X2,ERR1 IF NO MORE ARGUMENTS
  633. EQ AMD2 PROCESS REMAINING ARGUMENTS
  634.  
  635. AMD1 RJ POP PICK UP *NFN*
  636. NG B5,ERR8 IF ERROR ENCOUNTERED
  637. SB3 X1-1R=
  638. NZ B3,ERR6 IF DELIMITER NOT *=*
  639. SA3 INDX
  640. SB3 X3
  641. SB7 AMDBL
  642. EQ B3,B7,ERR9 EXCEEDED FILENAM LIMIT
  643. SA5 AMDB
  644. RJ PCK STORE FILENAM
  645. SX6 B6
  646. SA6 SAVE
  647. RJ POP PICK UP *OFN*
  648. NG B5,ERR8 IF ERROR ENCOUNTERED
  649. SA3 INDX
  650. SB3 X3
  651. SA5 TFIN
  652. RJ PCK STORE FILENAM
  653. SX6 B3+B1
  654. SA6 INDX
  655. ZR B6,ERR16 IF NO MORE ARGUMENTS
  656. SB3 X1-1R,
  657. ZR B3,AMD1 IF MORE FILENAMES SPECIFIED
  658. AMD2 SB3 X1-1R/
  659. NZ B3,ERR6 DELIMITER ERROR
  660. SB3 TAMD
  661. RJ BAT BUILD ARGUMENT TABLE
  662. SA2 BATA
  663. SB4 X2
  664. SA4 TARG
  665. SB5 TAMD
  666. RJ PAR PROCESS REMAINING ARGUMENTS
  667. NZ X1,ERR IF ARGUMENT ERROR
  668. SA1 SYMB
  669. NZ X1,AMD4 IF SYMBOLIC ACCESS
  670. SA1 AMDB
  671. NZ X1,ERR16 IF NEW VSN NAME SPECIFIED
  672. SX6 B0
  673. SA6 VSNC SET VSN ACCESS FLAG
  674. SA3 INDX GET NUMBER OF VSNS
  675. SB7 X3
  676. SB6 B0
  677. SB5 B0
  678. AMD3 SA3 TFIN+B5 GET VSN
  679. SA1 VSNB
  680. MX0 36
  681. BX2 -X0*X3
  682. BX2 X2-X1
  683. NZ X2,ERR2 IF VSN .GT. 6 CHARACTERS
  684. BX6 X0*X3
  685. RJ PVS PAD *VSN* WITH *0*
  686. SA6 TVSN+B6 STORE VSN NAME
  687. SB6 B6+B1
  688. SB5 B5+2
  689. LT B5,B7,AMD3 IF MORE VSNS TO STORE
  690. SX6 B6
  691. SA6 INDX
  692. AMD4 RJ CNV CONVERT PARAMETERS TO VALUES
  693. SA5 PSWD CHECK FOR SECURE PASSWORD
  694. SB2 X5
  695. SB2 B2-B1
  696. NZ B2,AMD6 IF *PW* NOT ENTERED
  697. MX0 42
  698. BX5 X0*X5
  699. NZ X5,AMD5 IF PASSWORD NOT ENTERED SECURELY
  700. RJ ESP ENTER SECURE PASSWORD
  701. SA6 PSWD SET PASSWORD
  702. BX5 X6
  703. AMD5 SA1 AMDA CHECK FOR *PW=0*
  704. BX3 X1-X5
  705. MX6 42
  706. NZ X3,AMD6 IF PW=0 WAS NOT SPECIFIED
  707. SA6 PSWD NO MORE FILE PASSWORD
  708. AMD6 SA2 USCW
  709. SA1 AMDA CHECK FOR *UC=0*
  710. BX3 X1-X2
  711. NZ X3,AMD7 IF UC=0 WAS NOT SPECIFIED
  712. MX6 60
  713. SA6 USCW
  714. AMD7 SA1 CLER
  715. ZR X1,AMD8 IF CE NOT SPECIFIED
  716. SX6 B1
  717. LX6 6-0
  718. SA6 F+TFCE
  719. AMD8 SA1 ANCP
  720. ZR X1,AMD9 IF AN NOT SPECIFIED
  721. SX6 B1
  722. SA2 F+TFCE
  723. MX0 -6
  724. BX2 X0*X2
  725. BX6 X6+X2
  726. SA6 A2
  727. AMD9 SB7 B0
  728. SA3 INDX
  729. SB6 X3
  730. SA3 VSNC
  731. ZR X3,AMD12 IF VSN SPECIFIED
  732. AMD10 AMEND F,AMDB+B7,TFIN+B7,,PSWD,CATG,MODE,USCW,ALAD
  733. RJ CER CHECK FOR RETURNED ERRORS
  734. ZR X7,AMD11 IF NO ROLLOUT
  735. SB7 B7-B1
  736. AMD11 SB7 B7+2 INCREMENT FILE NAME POINTER
  737. LT B7,B6,AMD10 IF MORE FILES TO AMEND
  738. EQ AMD13 PROCESSING COMPLETE
  739.  
  740. AMD12 AMEND F,,,TVSN+B7,PSWD,CATG,MODE,USCW,ALAD
  741. RJ CER CHECK FOR RETURNED ERRORS
  742. SB7 B7+B1
  743. LT B7,B6,AMD12 IF MORE VSNS TO AMEND
  744. AMD13 ENDRUN
  745.  
  746.  
  747. AMDA CON 1L0 USED TO CHECK FOR PW=0 OPTION
  748. AMDB BSS 0 STORAGE FOR NEW FILENAMES
  749. BSSZ 14D
  750. AMDBL EQU *-AMDB
  751. AUDIT SPACE 4,25
  752. *** AUDIT,TFN,LO,UN,L,SS,S.
  753. * AUDIT,LO,UN,L,SS,S.
  754. *
  755. * THE AUDIT COMMAND ENABLES A USER TO OBTAIN
  756. * INFORMATION ABOUT THE FILES THAT RESIDE IN HIS OR
  757. * HER TAPE FILE CATALOG, OR ALTERNATE CATALOGS TO WHICH
  758. * THEY HAVE BEEN ADMITTED.
  759. *
  760. * TFN = TAPE FILE NAME OR VOLUME SERIAL NUMBER.
  761. * LO = LIST OPTION.
  762. * UN = USERNAME.
  763. * L = LOCAL FILE TO RECEIVE OUTPUT.
  764. * SS = MACHINE READABLE OUTPUT FILE.
  765. * S = SYMBOLIC ACCESS.
  766. *
  767. * ENTRY AUDIT COMMAND HAS BEEN ISSUED.
  768. *
  769. * EXIT TO MAIN LOOP(ADT)
  770. * FETS AND BUFFERS SET UP AND COMMAND
  771. * ARGUMENTS PROCESSED.
  772. * (CODE) = LIST OPTION
  773. * 0 = SHORT FILE LIST
  774. * 1 = FULL FILE LIST
  775. * 2 = SHORT ALTERNATE CATALOG LIST
  776. * 3 = FULL ALTERNATE CATALOG LIST
  777. * 4 = SHORT ADMIT DATA LIST
  778. * 5 = FULL ADMIT DATA LIST
  779. * B1 = 1.
  780. * DTYP = 0 IF OUTPUT TO TERMINAL FILE.
  781. * TITLE LINES PRESET
  782. * TFM CALL FET PRESET.
  783. * (ADTA) SET IF SELECTED ENTRY DESIRED.
  784. * (O)=0 IF L=0 IS SPECIFIED
  785. * (MCRD)=FILE NAME FOR MACHINE READABLE OUTPUT
  786. * (AUDC)=0 IF NO ADMIT DATA REQUESTED
  787. *
  788. * CALLS ADT, BAT, PAR, PCK, POP, SFN, STF, USB.
  789. *
  790. * MACROS GETPFP, MESSAGE, ABORT, CHARGE, PROJECT,
  791. * DATE, CLOCK, USERNUM.
  792.  
  793.  
  794. AUDIT BSS 0 ENTRY POINT
  795. SB1 1
  796. SX6 1
  797. SA6 NABT SET NO ABORT OPTION
  798. RJ IDF ISSUE DAYFILE MESSAGE
  799. GETPFP AUDG GET FAMILY NAME
  800. SB2 CCDR LOCATE COMMAND IMAGE
  801. RJ USB UNPACK DATA TO STRING BUFFER
  802. RJ POP PICK OUT *AUDIT* WORD
  803. NZ B5,ERR IF ERROR ENCOUNTERED
  804. ZR B6,AUD6 IF NO MORE ARGUMENTS
  805. SX7 1
  806. SA7 LIT SET PROCESS LITERALS FLAG
  807. SX6 B6
  808. SA6 SAVE
  809. RJ POP PICK OUT NEXT WORD
  810. NG B5,ERR IF ERROR ENCOUNTERED
  811. SB3 X1-1R=
  812. ZR B3,AUD1 IF *=*
  813. SB3 B0
  814. SA5 AUDE
  815. RJ PCK STORE TAPE FILE NAME
  816. ZR B6,AUD5 IF NO MORE ARGUMENTS
  817. EQ AUD2 PROCESS REMAINING ARGUMENTS
  818.  
  819. AUD1 SA3 SAVE
  820. SB6 X3
  821. AUD2 RJ BAT BUILD ARGUMENT TABLE
  822. SA2 BATA
  823. SB4 X2
  824. SA4 TARG
  825. SB5 TAUD
  826. RJ PAR PROCESS REMAINING ARGUMENTS
  827. NZ X1,ERR IF ARGUMENT ERROR
  828. SA1 USER
  829. ZR X1,AUD3 IF NO USERNAME SPECIFIED
  830. MX0 42
  831. BX1 -X0*X1
  832. NZ X1,ERR5 IF USER NAME TOO LONG
  833. AUD3 SA1 MCRD
  834. ZR X1,AUD4 IF NO SS FILE SPECIFIED
  835. MX0 42
  836. BX1 -X0*X1
  837. NZ X1,ERR IF SS FILENAME TOO LONG
  838. AUD4 SA1 AUDE
  839. NZ X1,AUD5 IF FILE NAME SPECIFIED
  840. SA1 SYMB
  841. NZ X1,ERR14 IF *S* SPECIFIED, BUT NOT FILE NAME
  842. EQ AUD6 CONTINUE PROCESSING
  843.  
  844. AUD5 SA1 SYMB
  845. NZ X1,AUD6 IF SYMBOLIC ACCESS
  846. SA1 AUDE
  847. MX0 36
  848. BX2 -X0*X1
  849. SA3 VSNB
  850. BX2 X2-X3
  851. NZ X2,ERR2 IF VSN .GT. 6 CHARACTERS
  852. BX6 X0*X1
  853. RJ PVS PAD *VSN* WITH *0*
  854. SA6 AUDE SET PADDED VSN
  855. SA6 F+TFES SET VSN IN FET
  856. AUD6 SA1 O
  857. SB2 B0
  858. LX1 6
  859. SX2 1R0
  860. BX6 X1-X2
  861. NZ X6,AUD7 IF NOT L=0
  862. SA6 A1 SET FLAG FOR NO LISTABLE OUTPUT DESIRED
  863. SA1 MCRD
  864. ZR X1,ADT7 IF NOT MACHINE READABLE
  865. EQ AUD8 SET JOB ORIGIN
  866.  
  867. AUD7 SA1 O
  868. MX0 42
  869. BX2 -X0*X1
  870. MX0 -3
  871. BX2 X0*X2
  872. NZ X2,ERR IF LIST FILENAME TOO LONG
  873. SX6 B1
  874. BX2 X0*X1
  875. ZR X2,ERR14 IF NO FILE NAME
  876. IX6 X6+X2
  877. SA6 A1
  878. SX2 A1 CHECK FOR TERMINAL FILE
  879. RJ STF SET TERMINAL FILE
  880. SA6 DTYP SET DEVICE TYPE FLAG (0 FOR TYPE *TT*)
  881. AUD8 SA2 LOPT
  882. SX4 1RM
  883. LX4 54
  884. IX0 X4-X2
  885. NZ X0,AUD9 IF NOT MULTIFILE
  886. SX6 B1
  887. SA6 MULT
  888. SX6 1RF CHANGE TO FULL LIST FLAG
  889. LX6 54
  890. SA6 LOPT
  891. BX2 X6
  892. SX6 FCEV SET UP MULTIFILE HEADERS
  893. SA6 HDRD+2
  894. SX6 FCET
  895. SA6 HDRF+2
  896. AUD9 MX0 59
  897. SA1 AUDL
  898. SB2 B0
  899. SB3 AUDLL
  900. SX5 B0
  901. AUD10 BX4 -X0*X1 PICK SHORT LIST FLAG
  902. BX1 X0*X1
  903. IX6 X1-X2
  904. ZR X6,AUD11 IF OPTION FOUND
  905. SA1 A1+B1
  906. SB2 B2+B1
  907. LE B2,B3,AUD10 IF NOT END OF TABLE
  908. EQ ERR13 ISSUE ERROR MESSAGE
  909.  
  910. AUD11 SA1 USER
  911. SA2 AUDE
  912. BX3 X2 SET SELECTED ENTRY FLAG
  913. SB3 AUDP SET PROPER MODE
  914. SX6 B0
  915. SX7 PTPK SET SUBTITLE FLAG
  916. LT B2,B3,AUD12 IF NOT ACCESS DATA REQUEST
  917. SX5 B1 SET ADMIT LIST FLAG
  918. SX7 PTPI SUBTITLE FLAG
  919. BX3 X1 SET SELECTED ENTRY FLAG
  920. NZ X2,AUD13 IF FILE NAME SPECIFIED
  921. EQ ERR14 ISSUE ERROR MESSAGE
  922.  
  923. AUD12 ZR X1,AUD14 IF USER NUMBER NOT SPECIFIED
  924. SX6 B1+B1 ADVANCE MODE
  925. AUD13 SA7 PTPH SET SUBTITLE FLAG
  926. AUD14 SX6 X6+B2
  927. SA6 CODE
  928. ZR X4,AUD15 IF NOT SHORT FILE LIST
  929. BX6 X3 SET SELECTIVE ENTRY FLAG
  930. SA6 ADTA
  931. SA3 AUDE+B1
  932. BX6 X3
  933. SA6 ADTA+B1
  934.  
  935. * SET *TFM* FET PARAMETERS.
  936.  
  937. AUD15 ZR X2,AUD16 IF FILENAME NOT SPECIFIED
  938. MX0 42
  939. BX6 X2
  940. SA6 PTPJ
  941. SA6 F+TFID
  942. SA2 A2+B1
  943. BX6 X0*X2
  944. SA6 PTPJ+B1 SET FILE NAME IN SUBTITLE LINE
  945. SA6 F+TFSQ
  946. BX6 X5
  947. SA6 AUDC SET ADMIT FLAG
  948. AUD16 SA1 USER
  949. BX7 X0*X1 SET OPTIONAL USER NUMBER
  950. SA7 F+TFUN
  951. SA7 PTPL
  952. SA1 CODE SET TFM AUDIT CODE
  953. SB2 X1
  954. SB3 3
  955. GT B2,B3,AUD17 IF ADMIT REQUEST
  956. SA2 AUDE
  957. ZR X2,AUD19 IF NOT SELECTIVE REQUEST
  958. SX1 7
  959. EQ AUD19 SET CODE IN FET
  960.  
  961. AUD17 SA2 USER
  962. ZR X2,AUD19 IF NO USERNAME SPECIFIED
  963. SA4 CODE
  964. SX4 X4-5
  965. ZR X4,AUD18 IF NOT SHORT ADMIT LIST
  966. BX1 X2
  967. RJ SFN SPACE FILL USER NAME
  968. SA6 ADTA
  969. BX6 X6-X6
  970. SA6 ADTA+B1 CLEAR SECOND WORD
  971. AUD18 SX1 8
  972. AUD19 SA2 X1+AUDD
  973. BX6 X2
  974. SA6 F+TFPW SET AUDIT TYPE CODE IN FET
  975. SA1 AUDG GET FAMILY NAME
  976. BX6 X1
  977. SX4 3RFM/
  978. LX6 42
  979. LX4 42
  980. BX1 X6+X4
  981. RJ SFN SPACE FILL NAME
  982. SA6 PTPD
  983. SA1 MCRD
  984. ZR X1,ADT IF NOT MACHINE READABLE
  985. DATE PTPE
  986. CLOCK PTPF
  987. USERNUM CUSR GET CURRENT USERNAME
  988. SA1 USER
  989. ZR X1,ADT IF NOT ALTERNATE USER
  990. BX6 X1
  991. SA6 CUSR SET ALTERNATE USERNAME
  992. JP ADT RETURN TO MAIN LOOP
  993.  
  994. AUDC CON 0
  995.  
  996. AUDD BSS 0 TFM AUDIT CODES
  997. LOC 0
  998. CON FCST
  999. CON FCST
  1000. CON FCST
  1001. CON FCST
  1002. CON FAST
  1003. CON FAST
  1004. CON FCST
  1005. CON SCST
  1006. CON SAST
  1007. LOC *O
  1008.  
  1009. AUDE BSSZ 2 FILE IDENTIFIER
  1010.  
  1011. AUDG BSS 3 *GETPFP* PARAMETER BLOCK
  1012.  
  1013. ** LIST OPTIONS
  1014. * BIT 0 SET IF SHORT LIST OPTION.
  1015.  
  1016. AUDL BSS 0 LIST OPTIONS
  1017. LOC 0
  1018. VFD 59/0,1/1 NORMAL CATALOGS
  1019. CON 1LF
  1020. CON 0 ALTERNATE CATALOGS
  1021. CON 0
  1022.  
  1023. AUDP EQU * LIMIT OF CATALOG OPTIONS
  1024.  
  1025. VFD 6/0LP,54/1 ADMIT DATA
  1026. CON 2LFP
  1027. AUDLL EQU *
  1028. LOC *O
  1029.  
  1030. RELEASE SPACE 4,25
  1031. *** RELEASE,TFN1,TFN2,...,TFNN/S,NA.
  1032. * RELEASE,VSN1,VSN2,...,VSNN/NA.
  1033. *
  1034. * RELEASE LOGICAL TAPE FILE OR VSN.
  1035. *
  1036. * TFN = LOGICAL TAPE FILE NAME.
  1037. * VSN = FIRST-REEL VOLUME SERIAL NUMBER.
  1038. * NA = NO ABORT OPTION IF ERROR ENCOUNTERED.
  1039. * S = SYMBOLIC ACCESS.
  1040. *
  1041. *
  1042. * CALLS BAT, CER, PAR, POP, PVT, USB.
  1043. *
  1044. * MACROS ENDRUN, MESSAGE, RELEASE.
  1045.  
  1046.  
  1047. RELEASE BSS 0
  1048. SB1 1
  1049. RJ IDF ISSUE DAYFILE MESSAGE
  1050. SB2 CCDR LOCATE COMMAND IMAGE
  1051. RJ USB UNPACK DATA TO STRING BUFFER
  1052. RJ POP PICK OUT *RELEASE* WORD
  1053. NZ B5,ERR IF ERROR ENCOUNTERED
  1054. ZR B6,ERR1 IF NO MORE ARGUMENTS
  1055. SX7 1
  1056. SA7 LIT SET PROCESS LITERALS FLAG
  1057. SX6 B6
  1058. SA6 SAVE
  1059. RJ PVT PROCESS TFN/VSN LIST
  1060. NG X2,REL1 IF NO MORE ARGUMENTS
  1061. SB3 X1-1R/
  1062. NZ B3,ERR6 ERROR IN DELIMITER
  1063. RJ BAT BUILD ARGUMENT TABLE
  1064. SA2 BATA
  1065. SB4 X2
  1066. SA4 TARG
  1067. SB5 TREL
  1068. RJ PAR PROCESS REMAINING ARGUMENTS
  1069. NZ X1,ERR IF ARGUMENT ERROR
  1070. NZ B6,ERR IF MORE ARGUMENTS
  1071. REL1 SA1 SYMB
  1072. NZ X1,REL3 IF SYMBOLIC ACCESS
  1073. SA1 AMDB
  1074. NZ X1,ERR16 IF NEW VSN NAME SPECIFIED
  1075. SX6 B0
  1076. SA6 VSNC SET VSN ACCESS FLAG
  1077. SA3 INDX GET NUMBER OF VSNS
  1078. SB7 X3
  1079. SB6 B0
  1080. SB5 B0
  1081. REL2 SA3 TFIN+B5 GET VSN
  1082. SA1 VSNB
  1083. MX0 36
  1084. BX2 -X0*X3
  1085. BX2 X2-X1
  1086. NZ X2,ERR2 IF VSN .GT. 6 CHARACTERS
  1087. BX6 X0*X3
  1088. RJ PVS PAD *VSN* WITH *0*
  1089. SA6 TVSN+B6 STORE VSN NAME
  1090. SB6 B6+B1
  1091. SB5 B5+2
  1092. LT B5,B7,REL2 IF MORE VSNS TO STORE
  1093. SX6 B6
  1094. SA6 INDX CHANGE INDX FOR VSNS
  1095. REL3 SB7 B0
  1096. SA3 INDX
  1097. SB6 X3
  1098. SA3 VSNC
  1099. ZR X3,REL6 IF VSN SPECIFIED
  1100. REL4 RELEASE F,TFIN+B7
  1101. RJ CER CHECK FOR RETURNED ERRORS
  1102. ZR X7,REL5 IF NO ROLLOUT
  1103. SB7 B7-B1
  1104. REL5 SB7 B7+2
  1105. LT B7,B6,REL4 IF MORE TO RELEASE
  1106. EQ REL7 PROCESSING COMPLETE
  1107.  
  1108. REL6 RELEASE F,,TVSN+B7
  1109. RJ CER CHECK FOR RETURNED ERRORS
  1110. SB7 B7+B1
  1111. LT B7,B6,REL6 IF MORE TO RELEASE
  1112. REL7 ENDRUN
  1113. RESERVE SPACE 4,25
  1114. *** RESERVE,LFN1,LFN2,...,LFNN/SS,PW,CT,AC,M,UC,NA.
  1115. *
  1116. * RESERVE SCRATCH TAPE.
  1117. *
  1118. * LFN = LOCAL FILE NAME OF TAPE FILE.
  1119. * PW = FILE PASSWORD.
  1120. * SS = MACHINE READABLE OUTPUT FILE.
  1121. * CT = FILE CATEGORY.
  1122. * AC = AUDIT LISTABILITY BY ALTERNATE USERS.
  1123. * M = FILE ACCESS MODE.
  1124. * UC = USER CONTROL WORD.
  1125. * NA = NO ABORT IF ERROR ENCOUNTERED.
  1126. *
  1127. * DEFAULT VALUES.
  1128. * PW = 0. NO PASSWORD
  1129. * CT = P. PRIVATE
  1130. * AC = N. ALTERNATE USER CANNOT
  1131. * OBTAIN AUDIT INFORMATION
  1132. * M = R. READ ONLY ACCESS
  1133. * UC = 0. NO USER CONTROL WORD.
  1134. *
  1135. * CALLS ARG, BAT, CER, CNV, ESP, POP, PRA, USB.
  1136. *
  1137. * MACROS RESERVE, MESSAGE, ENDRUN.
  1138.  
  1139. RESERVE BSS 0
  1140. SB1 1
  1141. RJ IDF ISSUE DAYFILE MESSAGE
  1142. SB2 CCDR LOCATE COMMAND IMAGE
  1143. RJ USB UNPACK DATA TO STRING BUFFER
  1144. RJ POP PICK OUT *RESERVE* WORD
  1145. NG B5,ERR IF ERROR ENCOUNTERED
  1146. ZR B6,ERR1 IF NO ARGUMENTS
  1147. SX7 1
  1148. SA7 LIT SET PROCESS LITERALS FLAG
  1149. RES1 RJ POP PICK OUT LFN NAME
  1150. NG B5,ERR8 IF ERROR ENCOUNTERED
  1151. SA3 INDX
  1152. SB3 X3
  1153. SB7 TVSNL
  1154. EQ B3,B7,ERR9 EXCEEDED LFN LIMIT
  1155. MX0 42
  1156. BX3 -X0*X6
  1157. NZ X3,ERR8 IF LFN .GT. 7 CHARACTERS
  1158. SA6 TVSN+B3 STORE LFN NAME
  1159. SB3 B3+B1 INCREMENT LFN TABLE POINTER
  1160. SX6 B3
  1161. SA6 INDX
  1162. NG X2,RES5 IF NO MORE ARGUMENTS
  1163. SB3 X1-1R, CHECK FOR COMMA
  1164. ZR B3,RES1 GET NEXT LFN NAME
  1165. SB3 X1-1R/
  1166. NZ B3,ERR6 IF DELIMITER ERROR
  1167. RJ BAT BUILD ARGUMENT TABLE
  1168. SA2 BATA
  1169. SB4 X2
  1170. SA4 TARG
  1171. SB5 TRES
  1172. RJ PAR PROCESS ARGUMENTS
  1173. NZ X1,ERR IF ARGUMENT ERROR
  1174. RJ CNV CONVERT PARAMETER TO VALUE
  1175. SA5 REMK
  1176. ZR X5,RES2 IF NO USER REMARK SPECIFIED
  1177. MESSAGE (=C*REMARK= NOT SUPPORTED AT 1.4D, USE UC=.*),0
  1178. SA4 USCW
  1179. NZ X4,ERR IF REM= AND UC= SPECIFIED
  1180. BX6 X5
  1181. SA6 USCW
  1182. RES2 SA5 PERM
  1183. ZR X5,RES3 IF PFN= NOT SPECIFIED
  1184. MESSAGE (=C*PFN= NOT SUPPORTED AT 1.4D, IS NOW A NO-OP.*),0
  1185. RES3 SA5 PSWD CHECK FOR SECURE PASSWORD
  1186. SB2 X5
  1187. SB2 B2-B1
  1188. NZ B2,RES4 IF *PW* NOT ENTERED
  1189. MX0 42
  1190. BX5 X0*X5
  1191. NZ X5,RES4 IF PASSWORD NOT ENTERED SECURELY
  1192. RJ ESP ENTER SECURE PASSWORD
  1193. SA6 PSWD SET PASSWORD
  1194. RES4 SA1 MCRD CHECK MACHINE READABLE FILE OPTION
  1195. ZR X1,RES5 IF NOT SPECIFIED
  1196. SA1 MCRD SET MACHINE READABLE FILE NAME
  1197. SX2 3
  1198. BX6 X1+X2
  1199. SA6 O
  1200. SA1 O+1 SET OUTPUT BUFFER EMPTY
  1201. SX6 X1
  1202. SA6 A1+B1
  1203. SA6 A6+B1
  1204. SX2 O SET DEVICE TYPE
  1205. RJ STF SET TERMINAL FILE
  1206. SA6 DTYP
  1207. GETPFP AUDG GET FAMILY NAME
  1208. USERNUM CUSR GET CURRENT USER
  1209. RES5 SB7 B0
  1210. SA3 INDX
  1211. SB6 X3
  1212. RES6 RESERVE F,TVSN+B7,PSWD,CATG,ALAD,MODE,USCW
  1213. RJ CER CHECK FOR RETURNED ERRORS
  1214. SB7 B7+B1
  1215. NZ X7,RES6 IF ROLLABLE ERROR OCCURRED
  1216. SA1 MCRD
  1217. ZR X1,RES9 IF NO MACHINE READABLE FILE
  1218. SX6 B7
  1219. SA6 RESB SAVE LFN POINTER
  1220. SA1 F RESET INPUT FET(1)
  1221. MX0 51
  1222. BX1 -X0*X1
  1223. MX0 -3
  1224. BX6 X0*X1
  1225. SA6 A1
  1226. MX0 -18
  1227. SA1 A1+B1 GET *FIRST* POINTER
  1228. BX6 -X0*X1
  1229. SA6 A1+B1 SET IN = FIRST
  1230. SA6 A6+B1 SET OUT = FIRST
  1231. SX6 B0 INITIALIZE INPUT FET(6)
  1232. SA6 F+TFRR
  1233. SA6 F+TFPW
  1234. SA6 F+TFUC
  1235. SB7 B7-B1
  1236. RES7 GETVSN F,TVSN+B7 GET TAPE CATALOG IMAGE
  1237. RJ CER CHECK FOR RETURNED ERRORS
  1238. SB7 B7+1
  1239. NZ X7,RES7 IF ROLLABLE ERROR OCCURRED
  1240. SA1 F+2
  1241. SB3 X1 (B3) = IN
  1242. SA1 F+3
  1243. SB4 X1 (B4) = OUT
  1244. EQ B3,B4,ERR17 IF OUT = IN, EMPTY CATALOG
  1245. MOVE TWBL,TFWB,CBUF
  1246. SA1 RESA
  1247. SX6 B1
  1248. SA6 A1 SET RESERVE SS FLAG
  1249. JP MRF4 GENERATE MACHINE READABLE FILE
  1250.  
  1251. RES8 SA1 RESB GET LFN POINTER
  1252. SB7 X1
  1253. SA1 INDX GET NUMBER OF LFN(S)
  1254. SB6 X1
  1255. RES9 LT B7,B6,RES6 IF MORE TO RESERVE
  1256. SA1 MCRD
  1257. ZR X1,RES10 IF NO MACHINE READABLE FILE
  1258. WRITER O FLUSH BUFFER
  1259. RES10 ENDRUN
  1260.  
  1261. RESA CON 0 MACHINE READABLE FLAG
  1262. RESB CON 0 LFN POINTER
  1263. TMSDEF SPACE 4,20
  1264. *** TMSDEF,TO=OPTION.
  1265. *
  1266. * DEFINE DEFAULT *TMS* PARAMETERS FOR *LABEL/REQUEST*.
  1267. *
  1268. * TO = DEFAULT TAPE OPTIONS. STRING CONTAINING ONE OR
  1269. * MORE OF THE FOLLOWING CHARACTERS -
  1270. * *T* IF DEFAULT TO *TO=T* (*TMS* PROCESSING).
  1271. * *F* IF DEFAULT TO *TO=F* (NON-*TMS* PROCESSING).
  1272. * *C* IF DEFAULT TO *TO=C* (CHECK FOR CATALOG
  1273. * ERROR.)
  1274. * *E* IF DEFAULT TO *TO=E* (IGNORE CATALOG ERROR.)
  1275. *
  1276. * USES X - 0, 1, 2, 3, 6, 7.
  1277. * A - 1, 2, 3, 6, 7.
  1278. * B - 2, 3.
  1279. *
  1280. * CALLS ARM, IDF, POP, USB.
  1281. *
  1282. * MACROS ENDRUN, SYSTEM.
  1283.  
  1284.  
  1285. TMSDEF SB1 1 ENTRY
  1286. RJ IDF ISSUE COMMAND TO DAYFILE
  1287. SB2 CCDR
  1288. RJ USB UNPACK STRING BUFFER
  1289. RJ POP PICK OFF PARAMETER
  1290. NG B5,ERR IF ARGUMENT ERROR
  1291. ZR B6,TMD5 IF NO ARGUMENTS
  1292. SB3 TMDA
  1293. RJ ARM PROCESS ARGUMENTS
  1294. NZ X1,ERR IF ARGUMENT ERROR
  1295.  
  1296. * PROCESS *TO* PARAMETER.
  1297.  
  1298. SYSTEM SFM,R,TMDD,GTSF*100B GET TMS STATUS
  1299. SB2 TMDB
  1300. RJ USB UNPACK STRING BUFFER
  1301. SX6 B0 FLAG LAST OPTION
  1302. SA6 B7+B1
  1303. SA1 B6 GET FIRST COMMAND OPTION
  1304. MX0 -12
  1305. SA3 TMDD GET DEFAULT OPTIONS
  1306. SX7 3
  1307. BX7 X7-X3
  1308. TMD1 ZR X1,TMD4 IF NO MORE OPTIONS
  1309. SA2 TMDC GET FIRST OPTION IN TABLE
  1310. TMD2 ZR X2,ERR IF UNKNOWN OPTION
  1311. BX6 -X0*X2
  1312. BX6 X6-X1
  1313. ZR X6,TMD3 IF OPTIONS MATCH
  1314. SA2 A2+B1
  1315. EQ TMD2 CHECK NEXT OPTION IN TABLE
  1316.  
  1317. TMD3 LX2 18 GET SHIFT COUNT
  1318. SB2 X2
  1319. LX2 12 GET SET/CLEAR STATUS
  1320. BX2 -X0*X2
  1321. SX6 B1
  1322. LX2 B2 SET/CLEAR DEFAULT OPTION
  1323. LX6 B2
  1324. BX7 -X6*X7
  1325. BX7 X7+X2
  1326. SA1 A1+B1
  1327. EQ TMD1 CHECK NEXT OPTION ON COMMAND
  1328.  
  1329. TMD4 SA7 A3 SET DEFAULT TAPE OPTION
  1330. SYSTEM TFU,R,TMDD,/TFU/STOF*100B
  1331. TMD5 ENDRUN TERMINATE PROGRAM
  1332.  
  1333. TMDA BSS 0 *TMSDEF* ARGUMENT TABLE
  1334. TO ARG TMDB,TMDB,400B TAPE OPTION
  1335. CON 0 END OF TABLE
  1336.  
  1337. TMDB CON 0 DEFAULT TAPE OPTIONS
  1338.  
  1339. TMDC BSS 0 TABLE OF VALID TAPE OPTIONS
  1340. VFD 18/0,12/0,30/1RF BIT POSITION 0, CLEAR BIT, *TO=F*
  1341. VFD 18/0,12/1,30/1RT BIT POSITION 0, SET BIT, *TO=T*
  1342. VFD 18/1,12/0,30/1RE BIT POSITION 1, CLEAR BIT, *TO=E*
  1343. VFD 18/1,12/1,30/1RC BIT POSITION 1, SET BIT, *TO=C*
  1344. CON 0 END OF TABLE
  1345.  
  1346. TMDD CON 0 DEFAULT TAPE OPTIONS FOR *TFU* CALL
  1347. TITLE AUDIT ROUTINES.
  1348. ADT SPACE 4,25
  1349. ** ADT - AUDIT MAIN CONTROL ROUTINE.
  1350. *
  1351. * ENTRY (CODE) = CODE FOR THE TYPE OF LIST.
  1352. * (MCRD) = FILE NAME FOR MACHINE READABLE OUTPUT.
  1353. * (ADTA) = SET IF SELECTED ENTRY DESIRED.
  1354. *
  1355. * EXIT TO APPROPRIATE LIST ROUTINE.
  1356. *
  1357. * USES ALL.
  1358. *
  1359. * CALLS CBE, CER, CSU, FCB, SFN.
  1360. *
  1361. * MACROS AUDIT, ENDRUN, MESSAGE, WRITEC, WRITER.
  1362.  
  1363.  
  1364. ADT BSS 0 ENTRY
  1365. SA1 O
  1366. ZR X1,MRF IF LISTABLE OUTPUT NOT REQUESTED
  1367. ADT0 AUDIT F
  1368. RJ CER CHECK FOR RETURNED ERRORS
  1369. NZ X7,ADT0 IF ROLLABLE ERROR OCCURRED
  1370. SA1 F+2
  1371. SB3 X1 (B3) = IN
  1372. SA1 F+3
  1373. SB4 X1 (B4) = OUT
  1374. EQ B3,B4,ERR17 IF OUT = IN, PP ERROR
  1375. SA1 ADTA
  1376. NZ X1,ADT8 IF SELECTED FILE LIST
  1377. RJ CSU CHECK FOR SPECIAL USER
  1378. ADT1 SA2 CODE GET LIST CODE
  1379. SA2 X2+ADTB
  1380. SB2 X2
  1381. JP B2 PROCESS LIST OPTION
  1382.  
  1383. ADT2 RJ FCB FILL CATALOG BUFFER
  1384. NG X6,ADT6 IF ERROR RETURN STATUS
  1385. NZ X6,ADT1 IF MORE CATALOGS
  1386. ADT3 SA1 MCRD
  1387. NZ X1,ADT12 IF MACHINE READABLE OPTION
  1388. ADT4 SA1 DTYP
  1389. ZR X1,ADT5 IF TERMINAL FILE
  1390. EQ ADT6
  1391.  
  1392. ADT5 MESSAGE (=C**),1
  1393. ADT6 WRITER O FLUSH OUTPUT
  1394. ADT7 ENDRUN
  1395. ADT8 BX6 X1
  1396. RJ CBE CLEAR BLANKS FROM WORD
  1397. SA6 ADTA
  1398. SA1 ADTA+B1
  1399. BX6 X1
  1400. RJ CBE CLEAR BLANKS FROM WORD
  1401. SA6 ADTA+B1
  1402. RJ SVM SET VARIABLE MESSAGE
  1403. SA1 MCRD
  1404. NZ X1,ADT9 IF MACHINE READABLE FILE
  1405. SA1 DTYP
  1406. ZR X1,ADT11 IF TERMINAL FILE
  1407. MESSAGE ADTA,3 *(ENTRY) FOUND.*
  1408. EQ ADT7
  1409.  
  1410.  
  1411. ADT9 SA1 DTYP
  1412. ZR X1,ADT10 IF TERMINAL FILE
  1413. MESSAGE ADTA,3 *(ENTRY) FOUND.*
  1414. EQ MRF GENERATE THE MACHINE READABLE FILE
  1415.  
  1416. ADT10 WRITEC O,ADTA
  1417. MESSAGE (=C**),1 CLEAR MESSAGE BUFFER
  1418. EQ ADT12 FLUSH OUTPUT BUFFER
  1419.  
  1420. ADT11 WRITEC O,ADTA
  1421. EQ ADT5
  1422.  
  1423. ADT12 WRITER O FLUSH OUTPUT
  1424. EQ MRF MACHINE READABLE FILE
  1425.  
  1426.  
  1427. ADTA BSSZ 4 SELECTED ENTRY
  1428.  
  1429. ADTB BSS 0 TABLE OF LIST OPTIONS
  1430. LOC 0
  1431. CON SSL SHORT SORTED FILE LIST
  1432. CON FFL FULL FILE LIST
  1433. CON SSL SHORT SORTED ALTERNATE FILE LIST
  1434. CON FFL FULL ALTERNATE FILE LIST
  1435. CON SAD SHORT ADMIT DATA LIST
  1436. CON FAD FULL LIST OF ADMIT DATA
  1437. CON MRF MACHINE READABLE FILE
  1438. LOC *O
  1439.  
  1440.  
  1441. ADTC BSS 0 TABLE OF OVERFLOW PROCESSORS
  1442. LOC 0
  1443. CON SFL SHORT FILE LIST
  1444. CON FFL FULL FILE LIST
  1445. CON SFL SHORT ALTERNATE FILE LIST
  1446. CON FFL FULL ALTERNATE FILE LIST
  1447. CON SAD SHORT ADMIT DATA LIST
  1448. CON FAD FULL LIST OF ADMIT DATA
  1449. LOC *O
  1450.  
  1451. FAD SPACE 4,25
  1452. ** FAD - FULL LIST OF ADMIT DATA
  1453. *
  1454. * THIS ROUTINE PROCESSES THE *LO=FP* AUDIT LIST OPTION.
  1455. * FAD GENERATES OUTPUT INFORMATION ABOUT THE ALTERNATE
  1456. * USERS WHO HAVE ACCESSED A SPECIFIC FILE. THE LIST
  1457. * INDICATES HOW MANY TIMES A SPECIFIC ALTERNATE USER
  1458. * HAS ACCESSED THE FILE, WHEN THE LAST ACCESS WAS
  1459. * PERFORMED, AND THE MODE IN WHICH IT CAN BE ACCESSED
  1460. * BY THAT USER. THIS ROUTINE IS CALLED BY *ADT*.
  1461. *
  1462. * ENTRY THE AUDIT COMMAND HAS BEEN CRACKED
  1463. * AND PARAMETERS ARE STORED.
  1464. *
  1465. * EXIT OUTPUT LIST IS COMPLETED.
  1466. * RETURN TO MAIN LOOP (ADT).
  1467. *
  1468. * USES ALL.
  1469. *
  1470. * CALLS AEN, ALN, CDD, CDT, FBA, SFN.
  1471. *
  1472. * MACROS WRITEC, WRITEH.
  1473.  
  1474.  
  1475. FAD BSS 0 ENTRY
  1476. RJ FBA FILL BUFFER FOR ADMIT LIST
  1477. ZR X6,FAD1 IF END OF BUFFER
  1478. RJ AEN ADVANCE ENTRY NUMBER
  1479. SB2 B1 ADVANCE LINE NUMBER BY 1
  1480. RJ ALN ADVANCE LINE NUMBER
  1481. MX0 42 PICK USER NUMBER
  1482. SA5 CBUF+AEUN
  1483. BX1 X0*X5
  1484. RJ SFN SPACE FILL NAME
  1485. SA1 ENTD SET USER NUMBER COUNT
  1486. MX0 30
  1487. LX1 30
  1488. BX1 X0*X1 PICK FIRST PART OF USER NUMBER
  1489. LX6 24
  1490. BX7 -X0*X6
  1491. BX7 X7+X1
  1492. SA7 LBUF
  1493. SA5 CBUF+AEAC SET USER PERMISSION
  1494. MX0 4
  1495. LX0 40
  1496. BX1 X0*X5
  1497. LX1 24
  1498. SB2 X1
  1499. SB3 3
  1500. GT B2,B3,FAD2 IF SPECIAL PERMISSION
  1501. SA1 FADB+X1
  1502. LX1 35-59
  1503. MX0 18
  1504. BX6 X0*X6 PICK LAST 3 CHAR OF USER NUMBER
  1505. BX1 -X0*X1 MERGE WITH PERMISSION
  1506. BX6 X6+X1
  1507. SA6 LBUF+1
  1508. MX0 18 CONVERT ACCESS COUNT
  1509. BX1 X0*X5
  1510. LX1 18
  1511. RJ CDD CONVERT TO DECIMAL
  1512. SA6 LBUF+2 SET ACCESS COUNT/ADMIT TYPE
  1513. BX3 X5
  1514. RJ CDT CONVERT TIME AND DATE
  1515. SA6 LBUF+3
  1516. BX7 X5
  1517. SA7 LBUF+4
  1518. WRITEC O,LBUF
  1519. EQ FAD
  1520.  
  1521. FAD1 SA1 ENTN NUMBER OF ENTRIES
  1522. RJ CDD CONVERT TO DISPLAY CODE
  1523. MX0 -18
  1524. BX6 -X0*X6
  1525. LX6 36D
  1526. MX0 -18
  1527. LX0 36D
  1528. SA2 FADA SET COMPLETION MESSAGE
  1529. BX2 X0*X2
  1530. BX6 X6+X2
  1531. SA6 FADA
  1532. SB2 3
  1533. RJ ALN ADVANCE LINE NUMBER
  1534. WRITEC O,BLNK
  1535. WRITEH O,FADA,FADAL
  1536. WRITEC O,BLNK
  1537. EQ ADT2 RETURN TO MAIN LOOP
  1538.  
  1539. FAD2 SA1 ENTN GET ENTRY NUMBER
  1540. SX6 X1-1
  1541. SA6 A1 RESET ENTRY NUMBER
  1542. SA1 LINE
  1543. SX6 X1-1
  1544. SA6 A1 RESET LINE NUMBER
  1545. EQ FAD PICK UP NEXT ADMIT ENTRY
  1546.  
  1547. FADA DATA C* XXX USER(S).*
  1548. FADAL EQU *-FADA
  1549.  
  1550. FADB BSS 0 DISPLAY CODE OF PERMISSION TYPES
  1551. LOC 0
  1552. CON 10H IMP
  1553. CON 10H READ
  1554. CON 10H WRITE
  1555. CON 10H NULL
  1556. LOC *O
  1557. FFL SPACE 4,20
  1558. ** FFL - FULL LISTING
  1559. *
  1560. * THIS ROUTINE PROCESSES THE *LO=F* AUDIT LIST OPTION.
  1561. * *FFL* GENERATES PERTINENT INFORMATION ABOUT EACH FILE IN
  1562. * THE CATALOG BEING INTERROGATED. THIS ROUTINE IS
  1563. * CALLED BY *ADT*.
  1564. *
  1565. * ENTRY AUDIT COMMAND HAS BEEN CRACKED AND PARAMETERS
  1566. * HAVE BEEN STORED.
  1567. *
  1568. * EXIT LIST IS GENERATED, THEN BACK TO *ADT*.
  1569. *
  1570. * USES ALL.
  1571. *
  1572. * CALLS AEN, ALN, FCB, SCB, SFN.
  1573. *
  1574. * MACROS EDCAT, WRITEH, WRITEC.
  1575.  
  1576.  
  1577. FFL BSS 0 ENTRY
  1578. SB2 B1 SET LIST FLAG
  1579. RJ FCB FILL BUFFER FOR FULL LIST
  1580. ZR X6,FFL14 IF END OF INFORMATION
  1581. RJ AEN ADVANCE ENTRY NUMBER
  1582. SB2 CHDR
  1583. SA5 MULT MULTIFILE LIST INDICATOR
  1584. ZR X5,FFL1 IF NOT MULTIFILE
  1585. SB2 B2+1
  1586. FFL1 RJ ALN ADVANCE LINE NUMBER
  1587. SA1 ENTN
  1588. EDCAT CBUF,LBUF,X1,B1
  1589. WRITEH O,LBUF,NWRD FIRST LINE
  1590. WRITEH O,LBUF+NWRD,NWRD SECOND LINE
  1591. SA5 MULT MULTIFILE LIST INDICATOR
  1592. ZR X5,FFL2 IF NOT MULTIFILE
  1593. WRITEH O,LBUF+NWRD*2,NWRD OPTIONAL LINE
  1594. FFL2 SA1 CBUF+TCEL+1
  1595. MX0 -18
  1596. BX1 -X0*X1
  1597. SX0 TVVS CHECK SITE STATUS
  1598. BX0 X0*X1
  1599. ZR X0,FFL3 IF SITE NOT SET SKIP
  1600. SB2 1
  1601. RJ ALN ADVANCE LINE NUMBER
  1602. WRITEH O,FFLD,FFLDL OPTIONAL LINE
  1603. FFL3 SA1 CBUF+TCEL+1
  1604. MX0 -18
  1605. BX1 -X0*X1 GET VSN STATUS FLAG
  1606. SX0 RTVS CHECK RESERVE STATUS
  1607. BX0 X0*X1
  1608. NZ X0,FFL4 IF RESERVED SKIP
  1609. SB2 1
  1610. RJ ALN
  1611. WRITEH O,FFLE,FFLEL OPTIONAL LINE
  1612. FFL4 SA1 CBUF+CEST
  1613. LX1 59-10
  1614. PL X1,FFL5 IF RECOVER NOT SET
  1615. SB2 1
  1616. RJ ALN
  1617. WRITEH O,FFLF,FFLFL OPTIONAL LINE
  1618. FFL5 SA1 CBUF+CEST
  1619. LX1 59-1
  1620. PL X1,FFL6 IF ERROR NOT SET
  1621. SB2 1
  1622. RJ ALN
  1623. WRITEH O,FFLG,FFLGL OPTIONAL LINE
  1624.  
  1625. * GENERATE VSN OUTPUT LINES
  1626.  
  1627. FFL6 SA2 FCBA
  1628. SB3 B0
  1629. SA1 CBUF+TCEL
  1630. FFL7 MX0 36
  1631. BX1 X1*X0
  1632. BX3 X1-X2
  1633. ZR X3,FFL8 IF EOF
  1634. RJ SFN SPACE FILL VSN
  1635. SA6 FFLT+B3 STORE VSN
  1636. SA1 A1+TSVL
  1637. SB3 B3+B1
  1638. EQ FFL7 GET NEXT VSN
  1639.  
  1640. FFL8 ZR B3,FFL13 IF NO VSN ENTRIES
  1641. SX6 B3
  1642. SA6 FFLN SAVE NO. OF VSNS TO BE WRITTEN
  1643. SX6 B0
  1644. SA6 FFLC
  1645. FFL9 SB2 B1
  1646. RJ ALN ADVANCE LINE NUMBER
  1647. SA2 FFLC
  1648. SA3 X2
  1649. SB2 8
  1650. SB6 B0
  1651. SB7 LBUF
  1652. SA2 FCEB
  1653. BX6 X2
  1654. FFL10 SA6 LBUF+B2 BLANK FILL THE BUFFER
  1655. SB2 B2-B1
  1656. PL B2,FFL10
  1657. FFL11 SA1 FFLT+A3
  1658. BX6 X1
  1659. SB3 VSN0+B6
  1660. RJ SCB SET CHARACTERS IN BUFFER
  1661. SB6 B6+B1
  1662. SA3 A3+B1
  1663. SB4 A3
  1664. SA1 FFLN
  1665. SB2 X1
  1666. EQ B4,B2,FFL12 IF END OF VSN LIST
  1667. SB3 8
  1668. NE B6,B3,FFL11 IF LINE BUFFER IS NOT FULL
  1669. SX6 A3
  1670. SA6 FFLC SAVE FFLT POINTER
  1671. WRITEH O,LBUF,7
  1672. EQ FFL9 GENERATE NEXT OUTPUT LINE
  1673.  
  1674. FFL12 WRITEH O,LBUF,7
  1675. WRITEC O,BLNK
  1676. EQ FFL LOOP FOR NEXT CATALOG ENTRY
  1677.  
  1678. FFL13 SB2 2
  1679. RJ ALN ADVANCE LINE NUMBER
  1680. WRITEH O,FFLB,FFLBL
  1681. WRITEC O,BLNK
  1682. EQ FFL LOOP FOR NEXT CATALOG ENTRY
  1683.  
  1684. FFL14 SA1 ENTN NUMBER OF TAPE FILES
  1685. RJ CDD CONVERT TO DISPLAY CODE
  1686. MX0 -24 SAVE 4 DIGITS
  1687. BX6 -X0*X6
  1688. LX6 30
  1689. LX0 30
  1690. SA2 FFLA GENERATE TERMINATION MESSAGE
  1691. BX2 X0*X2
  1692. BX6 X6+X2
  1693. SA6 FFLA
  1694. SB2 2
  1695. RJ ALN ADVANCE LINE NUMBER
  1696. WRITEH O,FFLA,FFLAL
  1697. WRITEC O,BLNK
  1698. EQ ADT3 RETURN TO MAIN LOOP
  1699.  
  1700. FFLA DATA C* XXXX TAPE FILE(S).*
  1701. FFLAL EQU *-FFLA
  1702. FFLB DATA C* NO VSN ENTRIES.*
  1703. FFLBL EQU *-FFLB
  1704. FFLC CON 0 FFLT POINTER
  1705. FFLD DATA C/ *** TAPE FILE IS OFF-SITE ***/
  1706. FFLDL EQU *-FFLD
  1707. FFLE DATA C/ *** TAPE FILE NOT YET RESERVED ***/
  1708. FFLEL EQU *-FFLE
  1709. FFLF DATA C/ *** TAPE FILE CATALOG RECOVERED ***/
  1710. FFLFL EQU *-FFLF
  1711. FFLG DATA C/ *** TAPE FILE CATALOG ERROR SET ***/
  1712. FFLGL EQU *-FFLG
  1713. FFLN CON 0 NUMBER OF VSNS
  1714. FFLT BSSZ 63D MAX. NUMBER OF VSNS
  1715.  
  1716. * VSN LINE DEFINITION TABLE
  1717.  
  1718. VSNS EQU 0
  1719. VSN0 CFORM VSNS+14,6
  1720. CFORM VSNS+21,6
  1721. CFORM VSNS+28,6
  1722. CFORM VSNS+35,6
  1723. CFORM VSNS+42,6
  1724. CFORM VSNS+49,6
  1725. CFORM VSNS+56,6
  1726. CFORM VSNS+63,6
  1727. MRF SPACE 4,25
  1728. ** MRF - MACHINE READABLE FILE.
  1729. *
  1730. * *MRF* GENERATES THE MACHINE READABLE FILE SPECIFIED BY THE
  1731. * *SS=* OPTION ON THE AUDIT COMMAND. THIS ROUTINE IS
  1732. * CALLED BY *ADT*.
  1733. *
  1734. * ENTRY AUDIT COMMAND IS CRACKED AND PARAMETERS STORED.
  1735. * (AUDC) = 0 IF NO ADMIT DATA REQUESTED.
  1736. * (MCRD) = FILE NAME FOR MACHINE READABLE OUTPUT.
  1737. *
  1738. * EXIT MACHINE READABLE FILE GENERATED.
  1739. *
  1740. * USES ALL.
  1741. *
  1742. * CALLS CBE, CDD, EDT, FBA, FCB, MCS, SFN, STF, ZFD.
  1743. *
  1744. * MACROS RECALL, WRITEC.
  1745.  
  1746.  
  1747. MRF BSS 0
  1748. SA1 F RESET FET(1)
  1749. MX0 51
  1750. BX1 -X0*X1
  1751. MX0 -3
  1752. BX6 X0*X1
  1753. SA6 A1
  1754. MX0 -18
  1755. SA1 A1+B1 GET *FIRST* POINTER
  1756. BX6 -X0*X1
  1757. SA6 A1+B1 SET IN = FIRST
  1758. SA6 A6+B1 SET OUT = FIRST
  1759. SX6 B0 INITIALIZE INPUT FET(6)
  1760. SA6 F+TFRR
  1761. SA1 AUDC INSURE ADMIT FLAG OFF
  1762. ZR X1,MRF1 ADMIT DATA NOT REQUESTED
  1763. BX6 X6-X6
  1764. SA6 F+TFUN
  1765. SX6 SCST
  1766. SA6 F+TFPW
  1767. MRF1 SA1 O
  1768. ZR X1,MRF2 IF NO NEED TO WAIT
  1769. RECALL O WAIT FOR I/O COMPLETION
  1770. MRF2 SA1 MCRD SET MACHINE READABLE FILE NAME
  1771. SX2 3
  1772. BX6 X1+X2
  1773. SA6 O
  1774. SA1 O+1 SET OUTPUT BUFFER EMPTY
  1775. SX6 X1
  1776. SA6 A1+B1
  1777. SA6 A6+B1
  1778. SX2 O SET DEVICE TYPE
  1779. RJ STF SET TERMINAL FILE
  1780. SA6 DTYP
  1781. MRF3 SA1 RESA CHECK FOR RESERVE SS FILE REQUEST
  1782. NZ X1,RES8 IF RESERVE REQUEST, RETURN
  1783. SB2 B1 SET LIST FLAG
  1784. RJ FCB FILL BUFFER FOR FULL LIST
  1785. ZR X6,ADT4 EXIT
  1786. MRF4 SA1 AUDG GET FAMILY NAME
  1787. RJ SFN SPACE FILL NAME
  1788. SA6 AUDG
  1789. SA1 CUSR GET USER NAME
  1790. RJ SFN SPACE FILL NAME
  1791. SA6 CUSR
  1792. SA2 CBUF+CEST CHECK FOR SYMBOLIC NAME
  1793. LX2 59-2
  1794. PL X2,MRF5 IF NOT SYMBOLIC ACCESS
  1795. SA1 CBUF+CELI GET PERMANENT FILE NAME
  1796. RJ SFN SPACE FILL NAME
  1797. SA6 TPFN SET TAPE FILE NAME
  1798. SA1 CBUF+CEST
  1799. MX0 42
  1800. BX1 X0*X1
  1801. RJ SFN SPACE FILL NAME
  1802. SA6 TPFN+B1
  1803. EQ MRF6
  1804.  
  1805. MRF5 SA1 CBUF+CEES GET VSN NAME
  1806. MX0 36
  1807. BX1 X0*X1
  1808. RJ SFN SPACE FILL NAME
  1809. SA6 TPFN SET VSN NAME
  1810. SA1 FCEQ
  1811. BX6 X1
  1812. SA6 TPFN+B1 STORE *NON-SYM*
  1813. MRF6 SA1 CBUF+CEPI GET PHYSICAL FILE NAME
  1814. RJ SFN SPACE FILL NAME
  1815. SA6 PHID
  1816. SA1 CBUF+CESQ
  1817. MX2 42
  1818. BX1 X2*X1
  1819. RJ SFN SPACE FILL NAME
  1820. SA6 PHID+B1 SET PHYSICAL FILE NAME
  1821. SA1 CBUF+CECN GET CHARGE NUMBER
  1822. RJ SFN SPACE FILL
  1823. SA6 CHRG SET CHARGE NUMBER
  1824. SA1 CBUF+CEPN GET PROJECT NUMBER
  1825. RJ SFN SPACE FILL
  1826. SA6 PROJ SET PROJECT NUMBER
  1827. SA1 A1+B1
  1828. RJ SFN SPACE FILL
  1829. SA6 PROJ+1 SET PROJECT NUMBER
  1830. MX0 54
  1831. SA2 CBUF+CEPW GET FILE CATEGORY
  1832. AX2 6
  1833. BX0 -X0*X2
  1834. SX0 X0-1
  1835. SA2 MRFB+X0
  1836. BX6 X2
  1837. SA6 FTYP SET FILE CATEGORY
  1838. SA1 CBUF+CECD GET CREATION DATE
  1839. AX1 18
  1840. SX1 X1
  1841. SA2 =70S12 ADD 1970
  1842. IX1 X1+X2
  1843. SX2 1R/
  1844. RJ EDT EDIT DATE/TIME
  1845. SA6 CDAT SET CREATION DATE
  1846. SA1 CBUF+CECD GET CREATION TIME
  1847. SX1 X1
  1848. SX3 120000B PAD TO ELIMINATE LEAD BLANK
  1849. IX1 X1+X3 TO INSURE LEAD ZERO
  1850. SX2 1R.
  1851. RJ EDT EDIT DATE/TIME
  1852. SA1 =1S48 REMOVE PADDING
  1853. IX6 X6-X1
  1854. SA6 CTIM
  1855. SA1 CBUF+CEMD GET LAST MODIFICATION DATE
  1856. AX1 18
  1857. SX1 X1
  1858. SA2 =70S12 ADD 1970
  1859. IX1 X1+X2
  1860. SX2 1R/
  1861. RJ EDT EDIT DATE/TIME
  1862. SA6 MDAT SET LAST MODIFICATION DATE
  1863. SA1 CBUF+CEMD GET LAST MODIFICATION TIME
  1864. SX1 X1
  1865. SX3 120000B PAD TO ELIMINATE LEAD BLANK
  1866. IX1 X1+X3 TO INSURE LEAD ZERO
  1867. SX2 1R.
  1868. RJ EDT EDIT DATE/TIME
  1869. SA1 =1S48 REMOVE PADDING
  1870. IX6 X6-X1
  1871. SA6 MTIM SET LAST MODIFICATION TIME
  1872. SA1 CBUF+CEAD GET LAST ACCESS DATE
  1873. AX1 18
  1874. SX1 X1
  1875. SA2 =70S12 ADD 1970
  1876. IX1 X1+X2
  1877. SX2 1R/
  1878. RJ EDT EDIT DATE/TIME
  1879. SA6 ADAT SET LAST ACCESS DATE
  1880. SA1 CBUF+CEAD GET LAST ACCESS TIME
  1881. SX1 X1
  1882. SX3 120000B PAD TO ELIMINATE LEAD BLANK
  1883. IX1 X1+X3 TO INSURE LEAD ZERO
  1884. SX2 1R.
  1885. RJ EDT EDIT DATE/TIME
  1886. SA1 =1S48 REMOVE PADDING
  1887. IX6 X6-X1
  1888. SA6 ATIM SET LAST ACCESS TIME
  1889. MX0 54
  1890. SA2 CBUF+CEPW GET PERMISSION MODE
  1891. BX0 -X0*X2
  1892. SX0 X0-1
  1893. SA2 MRFA+X0
  1894. BX6 X2
  1895. SA6 PMOD SET PERMISSION MODE
  1896. SA1 CBUF+CEAD GET ACCESS COUNT
  1897. MX3 24
  1898. BX1 X3*X1
  1899. LX1 24
  1900. RJ CDD CONVERT TO DECIMAL
  1901. RJ CBE CLEAR BLANKS
  1902. RJ ZFD SET DISPLAY CODE ZEROES
  1903. SA6 ACNT SET ACCESS COUNT
  1904. SA1 CBUF+CETD LABEL STATUS
  1905. LX1 1
  1906. MX0 2
  1907. BX1 X0*X1
  1908. LX1 2
  1909. SA2 X1+FCEP
  1910. BX6 X2
  1911. SA6 LBST SET LABEL STATUS
  1912. SA1 CBUF+CETD GET DATA FORMAT
  1913. MX0 54
  1914. AX1 30
  1915. BX0 -X0*X1
  1916. SA1 X0+FCEL
  1917. BX6 X1
  1918. SA6 FRMT SET DATA FRMT
  1919. SA1 CBUF+CETD GET CONVERSION MODE
  1920. MX0 57
  1921. AX1 48
  1922. BX0 -X0*X1
  1923. SA2 X0+FCEN
  1924. BX6 X2
  1925. SA6 CVMD SET CONVERSION MODE
  1926. SA1 CBUF+CETD GET TAPE TYPE
  1927. MX0 -2
  1928. AX1 55
  1929. BX0 -X0*X1
  1930. BX6 X0
  1931. SA6 FCEF SAVE TAPE TYPE FOR DENSITY GENERATION
  1932. SA2 X0+FCEK
  1933. BX6 X2
  1934. SA6 TTYP SET TAPE TYPE MNEMONIC
  1935. SA1 CBUF+CETD GET DENSITY
  1936. MX0 57
  1937. AX1 51
  1938. BX0 -X0*X1
  1939. SA1 FCEF CHECK TAPE TYPE
  1940. ZR X1,MRF7 IF *MT*
  1941. SX0 X0+1 ADJUST FOR DUAL 800-BPI TABLE ENTRIES
  1942. MRF7 SX2 X1-3
  1943. NZ X2,MRF7.1 IF NOT *AT*
  1944. SX0 X0+1 ADJUST FOR DUAL 38000-CPI TABLE ENTRIES
  1945. MRF7.1 SA2 X0+FCEM
  1946. BX6 X2
  1947. SA6 TDEN SAVE DENSITY
  1948. SA1 CBUF+CEPW GET FILE PASSWORD
  1949. MX0 42
  1950. BX1 X0*X1
  1951. RJ SFN BLANK FILL IT
  1952. SA6 PWRD
  1953. SA1 CBUF+CEST CHECK ERROR INDICATOR
  1954. SX3 2
  1955. BX2 X1*X3
  1956. AX2 1
  1957. SA3 MRFE+X2
  1958. BX6 X3
  1959. SA6 ERRI
  1960. SX3 2000B CHECK CATALOG ERROR STATUS
  1961. BX2 X1*X3
  1962. AX2 12B
  1963. SA3 MRFC+X2
  1964. BX6 X3
  1965. SA6 CERR STORE CATALOG ERROR STATUS
  1966. SA1 CBUF+CEUC GET USER CONTROL WORD
  1967. RJ SFN SPACE FILL NAME
  1968. SA6 UWRD
  1969. SA1 DIR1 MOVE DATA TO BASIC FILE BLOCK
  1970. RJ MCS MOVE CHARACTER STRING
  1971. SA1 DIR2
  1972. RJ MCS MOVE CHARACTER STRING
  1973. SA1 CBUF+TCEL GET VSN INFORMATION
  1974. MRF8 SA2 FCBA EOF INDICATOR OF VSN LIST
  1975. MX0 36
  1976. BX1 X0*X1
  1977. BX3 X2-X1
  1978. ZR X3,MRF3 IF END OF VSNS
  1979. RJ SFN SPACE FILL NAME
  1980. SA6 MVSN SAVE VSN
  1981. SA1 A1+B1 GET PHYSICAL REEL NUMBER
  1982. MX2 -18
  1983. BX6 -X2*X1
  1984. SA6 MRFV SAVE STATUS INFORMATION
  1985. MX2 6
  1986. LX2 24D
  1987. BX6 X2*X1 SAVE REEL NUMBER
  1988. AX6 18D
  1989. SA6 MRFK
  1990. BX1 X0*X1
  1991. RJ SFN SPACE FILL NAME
  1992. SA6 MPRN SAVE PHYSICAL REEL NUMBER
  1993. SA1 A1+B1 GET FIRST VSN
  1994. BX1 X0*X1
  1995. RJ SFN SPACE FILL NAME
  1996. SA6 FVSN SAVE FIRST VSN
  1997. SA1 A1+B1
  1998. BX1 X0*X1
  1999. RJ SFN SPACE FILL NAME
  2000. SA6 NVSN SAVE NEXT VSN
  2001. SA1 A1
  2002. MX2 6
  2003. LX2 24D
  2004. BX6 X2*X1 SAVE USAGE COUNT
  2005. AX6 18D
  2006. SA6 MRFL
  2007. SA3 MRFV
  2008. BX1 X3
  2009. SX0 ERVS CHECK ERROR STATUS
  2010. BX2 X0*X1
  2011. AX2 1
  2012. SA3 MRFE+X2
  2013. BX6 X3
  2014. SA6 VERR
  2015. SX0 TVVS CHECK SITE STATUS
  2016. BX2 X0*X1
  2017. AX2 3
  2018. SA3 MRFF+X2
  2019. BX6 X3
  2020. SA6 STAT STORE SITE STATUS
  2021. SX0 RTVS CHECK RESERVE STATUS
  2022. BX2 X0*X1
  2023. AX2 17
  2024. SA3 MRFD+X2
  2025. BX6 X3
  2026. SA6 RESV STORE RESERVE STATUS
  2027. SX0 UOVS CHECK OWNERSHIP STATUS
  2028. BX2 X0*X1
  2029. AX2 12
  2030. SA3 MRFH+X2
  2031. BX6 X3
  2032. SA6 OWNS STORE OWNERSHIP STATUS
  2033. SX0 HMVS CHECK MAINTENANCE FLAG
  2034. BX2 X0*X1
  2035. AX2 16
  2036. SA3 MRFG+X2
  2037. BX6 X3
  2038. SA6 MAIN STORE MAINTENANCE FLAG
  2039. SX6 A1 SAVE VSN POINTER
  2040. SA6 MRFS
  2041. SA1 MRFK CONVERT REEL COUNT
  2042. RJ CDD CONVERT TO DECIMAL
  2043. RJ CBE CLEAR BLANKS
  2044. RJ ZFD SET DISPLAY CODE ZEROS
  2045. SA6 RCNT STORE REEL COUNT
  2046. SA1 MRFL CONVERT USAGE COUNT
  2047. RJ CDD CONVERT TO DECIMAL
  2048. RJ CBE CLEAR BLANKS
  2049. RJ ZFD SET DISPLAY CODE ZEROS
  2050. SA6 USGC STORE USAGE COUNT
  2051. SA1 DIR3
  2052. RJ MCS MOVE CHARACTER STRING
  2053. WRITEC O,BLOCK,23D WRITE DATA BLOCK
  2054. SA1 MRFS
  2055. SA1 X1+B1
  2056. EQ MRF8 GET NEXT VSN
  2057.  
  2058.  
  2059. SPACE 5
  2060. * MACHINE READABLE FILE DATA STORAGE ITEMS
  2061.  
  2062.  
  2063. MRFA CON 6LREAD
  2064. CON 6LWRITE
  2065. CON 6LNULL
  2066.  
  2067. MRFB CON 7LPUBLIC
  2068. CON 7LPRIVATE
  2069. CON 7LSEMI-PR
  2070. CON 7L
  2071.  
  2072. MRFC CON 1LN RECOVERED STATUS
  2073. CON 1LS
  2074.  
  2075. MRFD CON 1LN RESERVED STATUS
  2076. CON 1LR
  2077.  
  2078. MRFE CON 1LC VSN ERROR STATUS
  2079. CON 1LS
  2080.  
  2081. MRFF CON 3LON
  2082. CON 3LOFF
  2083.  
  2084. MRFG CON 5LAVAIL
  2085. CON 5LHOLD
  2086.  
  2087. MRFH CON 6LCENTER
  2088. CON 6LUSER
  2089.  
  2090. MRFK CON 0 REEL COUNT
  2091. MRFL CON 0 USAGE COUNT
  2092. MRFS CON 0 VSN POINTER
  2093. MRFV CON 0 STATUS INFORMATION
  2094. SPACE 4
  2095. * THE FOLLOWING MACRO *MOVEIT* CALLS ARE USED TO SET UP
  2096. * THE OUTPUT BLOCK FOR THE *SS* FILE.
  2097.  
  2098.  
  2099. * DIRECTIVE SET TO FORM COLUMNS 1-60.
  2100.  
  2101. DIR1 MOVEIT 1,VERS,10,BLOCK,1
  2102. MOVEIT 7,AUDG,1,BLOCK,2
  2103. MOVEIT 7,CUSR,1,BLOCK,9
  2104. MOVEIT 7,CHRG,1,BLOCK,16
  2105. MOVEIT 23,PROJ,1,BLOCK,23
  2106. MOVEIT 17,TPFN,1,BLOCK,43
  2107. VFD 60/0
  2108.  
  2109. * DIRECTIVE SET FOR COLUMNS 60-155.
  2110.  
  2111. DIR2 MOVEIT 7,FTYP,1,BLOCK,60
  2112. MOVEIT 2,CDAT,2,BLOCK+6,7
  2113. MOVEIT 2,CDAT,5,BLOCK+6,9
  2114. MOVEIT 2,CDAT,8,BLOCK+6,11
  2115. MOVEIT 2,CTIM,2,BLOCK+6,13
  2116. MOVEIT 2,CTIM,5,BLOCK+6,15
  2117. MOVEIT 2,CTIM,8,BLOCK+6,17
  2118. MOVEIT 2,ADAT,2,BLOCK+6,19
  2119. MOVEIT 2,ADAT,5,BLOCK+6,21
  2120. MOVEIT 2,ADAT,8,BLOCK+6,23
  2121. MOVEIT 2,ATIM,2,BLOCK+6,25
  2122. MOVEIT 2,ATIM,5,BLOCK+6,27
  2123. MOVEIT 2,ATIM,8,BLOCK+6,29
  2124. MOVEIT 2,MDAT,2,BLOCK+6,31
  2125. MOVEIT 2,MDAT,5,BLOCK+6,33
  2126. MOVEIT 2,MDAT,8,BLOCK+6,35
  2127. MOVEIT 2,MTIM,2,BLOCK+6,37
  2128. MOVEIT 2,MTIM,5,BLOCK+6,39
  2129. MOVEIT 2,MTIM,8,BLOCK+6,41
  2130. MOVEIT 6,PMOD,1,BLOCK+6,43
  2131. MOVEIT 10,ACNT,1,BLOCK+6,49
  2132. MOVEIT 2,FRMT,1,BLOCK+6,59
  2133. MOVEIT 2,CVMD,1,BLOCK+12,1
  2134. MOVEIT 2,TTYP,1,BLOCK+12,3
  2135. MOVEIT 2,TDEN,1,BLOCK+12,5
  2136. MOVEIT 3,BLANKS,1,BLOCK+12,7
  2137. MOVEIT 10,UWRD,1,BLOCK+12,10
  2138. MOVEIT 4,BLANKS,1,BLOCK+12,20
  2139. MOVEIT 1,ERRI,1,BLOCK+12,24
  2140. MOVEIT 1,BLANKS,1,BLOCK+12,25
  2141. MOVEIT 7,PWRD,1,BLOCK+12,26
  2142. MOVEIT 3,BLANKS,1,BLOCK+12,33
  2143. VFD 60/0
  2144.  
  2145. * DIRECTIVE SET FOR COLUMNS 159 - 225
  2146.  
  2147. DIR3 MOVEIT 6,MVSN,1,BLOCK+12,36
  2148. MOVEIT 6,MPRN,1,BLOCK+12,42
  2149. MOVEIT 6,FVSN,1,BLOCK+12,48
  2150. MOVEIT 6,NVSN,1,BLOCK+12,54
  2151. MOVEIT 5,MAIN,1,BLOCK+12,60
  2152. MOVEIT 3,STAT,1,BLOCK+18,5
  2153. MOVEIT 6,OWNS,1,BLOCK+18,8
  2154. MOVEIT 1,VERR,1,BLOCK+18,14
  2155. MOVEIT 2,RCNT,9,BLOCK+18,15
  2156. MOVEIT 2,LBST,1,BLOCK+18,17
  2157. MOVEIT 17,PHID,1,BLOCK+18,19
  2158. MOVEIT 2,USGC,9,BLOCK+20,16
  2159. MOVEIT 6,BLANKS,1,BLOCK+20,18
  2160. MOVEIT 1,RESV,1,BLOCK+20,24
  2161. MOVEIT 1,CERR,1,BLOCK+20,25
  2162. MOVEIT 1,BLANKS,1,BLOCK+20,26
  2163. VFD 60/0
  2164.  
  2165. * FOLLOWING ARE THE STORAGE CELLS WHICH ARE FILLED BY *MRF*
  2166. * AND FORMATTED FOR OUTPUT BY THE PREVIOUS *MOVEIT* CALLS.
  2167.  
  2168. VERS VFD 54/0,6/1R2 VERSION
  2169. CHRG BSS 1 CHARGE NUMBER
  2170. PROJ BSS 2 PROJECT NUMBER
  2171. CUSR BSS 1 USER NAME
  2172. TPFN BSS 2 TAPE FILE NAME
  2173. FTYP BSS 1 FILE CATEGORY
  2174. CDAT BSS 1 CREATION DATE
  2175. CTIM BSS 1 CREATION TIME
  2176. ADAT BSS 1 LAST ACCESS DATE
  2177. ATIM BSS 1 LAST ACCESS TIME
  2178. MDAT BSS 1 LAST MODIFY DATE
  2179. MTIM BSS 1 LAST MODIFY TIME
  2180. PMOD BSS 1 FILE PERMISSION MODE
  2181. ACNT BSS 1 ACCESS COUNT
  2182. FRMT BSS 1 FILE FORMAT
  2183. PWRD BSS 1 FILE PASSWORD
  2184. CVMD BSS 1 CONVERSION MODE
  2185. ERRI BSS 1 TAPE FILE ERROR INDICATOR
  2186. TTYP BSS 1 PHYSICAL TAPE TYPE
  2187. TDEN BSS 1 TAPE DENSITY
  2188. UWRD BSS 1 USER CONTROL WORD
  2189. MVSN BSS 1 VOLUME SERIAL NUMBER
  2190. MPRN BSS 1 PHYSICAL REEL NUMBER
  2191. FVSN BSS 1 FIRST VSN
  2192. NVSN BSS 1 NEXT VSN
  2193. MAIN BSS 1 MAINTENANCE FLAG
  2194. STAT BSS 1 SITE STATUS
  2195. OWNS BSS 1 OWNERSHIP TYPE
  2196. VERR BSS 1 VSN ERROR INDICATOR
  2197. RCNT BSS 1 REEL COUNT
  2198. LBST BSS 1 LABEL STATUS
  2199. PHID BSS 2 PHYSICAL ID
  2200. RESV BSS 1 TAPE RESERVED INDICATOR
  2201. CERR BSS 1 CATALOG ERROR INDICATOR
  2202. USGC BSS 1 USAGE COUNT
  2203.  
  2204.  
  2205.  
  2206. BLOCK BSS 23
  2207. VFD 30/0,30/5L
  2208. CON 10H
  2209. CON 10H
  2210. VFD 36/6L ,12/2L ,12/0
  2211. BLANKS CON 10H
  2212. CON 10H
  2213. SAD SPACE 4,15
  2214. ** SAD - SHORT ADMIT DATA
  2215. *
  2216. * THIS ROUTINE PROCESS THE *LO=P* AUDIT LIST OPTION.
  2217. * *SAD* GENERATES A LIST OF ONLY THE USERNAMES OF ALTERNATE
  2218. * USERS WHO HAVE ACCESSED A SPECIFIC FILE. THIS ROUTINE IS
  2219. * CALLED BY *ADT*.
  2220. *
  2221. * ENTRY AUDIT COMMAND HAS BEEN CRACKED AND PARAMETERS STORED.
  2222. *
  2223. * EXIT SHORT ADMIT LIST GENERATED.
  2224. * EXIT TO MAIN LOOP (ADT).
  2225. *
  2226. * USES ALL.
  2227. *
  2228. * CALLS ALN, CDD, FBA, GAL.
  2229. *
  2230. * MACROS WRITEC, WRITEH.
  2231.  
  2232.  
  2233. SAD BSS 0 ENTRY
  2234. RJ FBA FILL BUFFER FOR ADMIT LIST
  2235. ZR X6,SAD1 IF EOI
  2236. RJ GAL GENERATE ADMIT LIST
  2237. EQ SAD
  2238.  
  2239. SAD1 WRITEC O,LBUF
  2240. SA1 ENTN SET NUMBER OF USERS
  2241. RJ CDD CONVERT TO DECIMAL
  2242. MX0 -18
  2243. BX6 -X0*X6
  2244. LX6 36D
  2245. LX0 36D
  2246. SA2 SADA
  2247. BX2 X0*X2
  2248. BX6 X6+X2
  2249. SA6 SADA
  2250. SB2 3
  2251. RJ ALN ADVANCE LINE NUMBER
  2252. WRITEC O,BLNK
  2253. WRITEH O,SADA,SADAL
  2254. WRITEC O,BLNK
  2255. EQ ADT3 RETURN BACK TO MAIN LOOP
  2256.  
  2257. SADA DATA C* XXX USER(S).*
  2258. SADAL EQU *-SADA
  2259. SFL SPACE 4,15
  2260. ** SFL - SHORT FILE LIST
  2261. *
  2262. * *SFL* IS THE OVERFLOW PROCESSOR FOR THE SHORT SORTED FILE
  2263. * LIST (SSL). THIS ROUTINE IS CALLED BY *SSL* THE *LO=0*
  2264. * AUDIT LIST PROCESSOR.
  2265. *
  2266. * ENTRY *SSL* HAS DETERMINED THERE ARE TOO MANY FILE NAMES
  2267. * FOR THE SORT BUFFER.
  2268. *
  2269. * EXIT UNSORTED SHORT LIST HAS BEEN GENERATED.
  2270. * EXIT TO MAIN LOOP (ADT).
  2271. *
  2272. * USES A - 2, 6.
  2273. * B - 2.
  2274. * X - 0, 1, 2, 3, 5, 6.
  2275. *
  2276. * CALLS FCB, GSL, SEC.
  2277. *
  2278. * MACRO WRITEC.
  2279.  
  2280.  
  2281. SFL BSS 0 ENTRY
  2282. SB2 B1 SET LIST FLAG
  2283. RJ FCB FILL BUFFER FOR SHORT LIST
  2284. ZR X6,SFL3 IF EOI ENCOUNTERED
  2285. RJ SEC SHORT LIST ERROR CHECK
  2286. LX2 59-2
  2287. PL X2,SFL1 IF NOT SYMBOLIC ACCESS
  2288. LX2 3 STORE FILE IDENTIFIER
  2289. MX0 42
  2290. BX1 X0*X2
  2291. RJ SFN SPACE FILL NAME
  2292. BX6 X5*X6 SET POSSIBLE RECOVER FLAG
  2293. SA6 A2
  2294. EQ SFL2
  2295.  
  2296. SFL1 SA2 CBUF+CEES EXTRACT VSN
  2297. MX0 36
  2298. BX1 X0*X2
  2299. SA2 FCEQ
  2300. RJ SFN SPACE FILL VSN
  2301. SA6 CBUF
  2302. BX6 X5*X2 SET POSSIBLE RECOVER FLAG
  2303. SA6 A6+B1
  2304. SFL2 RJ GSL GENERATE SHORT LIST
  2305. EQ SFL GET THE NEXT FILE NAME
  2306.  
  2307. SFL3 WRITEC O,LBUF
  2308. WRITEC O,BLNK
  2309. EQ ADT3 RETURN TO MAIN LOOP
  2310. SSL SPACE 4,15
  2311. ** SSL - SHORT SORTED LIST.
  2312. *
  2313. * THIS ROUTINE PROCESSES THE *LO=0* AUDIT LIST OPTION.
  2314. * *SSL* GENERATES A LIST OF THE TAPE FILENAMES IN THE
  2315. * CATALOG BEING INTERROGATED (NO OTHER INFORMATION IS LISTED).
  2316. * IF THE USER IS REQUESTING FILE NAMES IN AN ALTERNATE USER
  2317. * CATALOG, THE USER IS GIVEN ONLY THE NAMES OF FILES THAT
  2318. * HE OR SHE IS ALLOWED ACCESS. THIS ROUTINE IS CALLED BY
  2319. * *ADT*.
  2320. *
  2321. * ENTRY AUDIT COMMAND HAS BEEN CRACKED AND PARAMETERS STORED.
  2322. *
  2323. * EXIT TO OVERFLOW PROCESSOR IF BUFFER IS NOT LARGE
  2324. * ENOUGH TO HOLD ALL ENTRIES. OTHERWISE BACK
  2325. * TO THE MAIN LOOP (ADT).
  2326. *
  2327. * USES X - 0, 1, 2, 3, 6, 7.
  2328. * A - 0, 1, 2, 3, 6, 7.
  2329. * B - 2, 3, 7.
  2330. *
  2331. * CALLS AFS, CSM, FCB, GNI, GSL, HDR, NIP, PAS, RQS, SEC, SST.
  2332. *
  2333. * MACROS READW, WRITEC, WRITEH.
  2334.  
  2335.  
  2336. SSL BSS 0 ENTRY
  2337. SA0 B0 INITIALIZE BUFFER POINTER
  2338. SSL1 SB2 B1 SET LIST FLAG
  2339. RJ FCB FILL BUFFER FOR SHORT LIST
  2340. ZR X6,SSL6 PROCESS SORT OF BUFFER
  2341. RJ SEC SHORT LIST ERROR CHECK
  2342. LX2 59-2
  2343. PL X2,SSL2 IF NOT SYMBOLIC ACCESS
  2344. SA1 CBUF+CELI STORE FILE IDENTIFIER
  2345. BX6 X1
  2346. SA6 A0+SBUF
  2347. SA0 A0+B1
  2348. SA1 CBUF+CEST
  2349. MX0 42D
  2350. BX1 X0*X1
  2351. RJ SFN SPACE FILE NAME
  2352. BX6 X5*X6 SET POSSIBLE RECOVER FLAG
  2353. SA6 A0+SBUF
  2354. EQ SSL3
  2355.  
  2356. SSL2 SA2 CBUF+CEES STORE VSN IN SBUF
  2357. MX0 36D
  2358. BX1 X0*X2
  2359. RJ SFN SPACE FILE NAME
  2360. SA6 A0+SBUF
  2361. SA2 FCEQ
  2362. SA0 A0+B1
  2363. BX6 X5*X2 SET POSSIBLE RECOVER FLAG
  2364. SA6 A0+SBUF
  2365. SSL3 SA1 CSBS GET CURRENT BUFFER MAXIMUM
  2366. SA0 A0+B1
  2367. SX3 A0+B1
  2368. IX2 X1-X3
  2369. PL X2,SSL1 IF BUFFER NOT FULL
  2370. RJ RQS REQUEST MORE BUFFER SPACE
  2371. PL X1,SSL1 IF MORE AVAILABLE
  2372.  
  2373. * SORT BUFFER OVERFLOW.
  2374.  
  2375. SX6 A0+
  2376. AX6 1
  2377. SA6 SSLA STORE COUNT
  2378. SB2 B1+
  2379. RJ ALN ADVANCE LINE NUMBER
  2380. WRITEC O,SSLD OUTPUT WARNING MESSAGE
  2381. WRITEC O,BLNK
  2382. RJ HDR PRINT HEADER
  2383. SB7 B0+
  2384. SA1 SSLA PRESET TERMINATION MESSAGE
  2385. RJ CDD CONVERT TO DISPLAY
  2386. MX0 -24 SAVE 4 DIGITS
  2387. BX6 -X0*X6
  2388. LX6 30
  2389. LX0 30
  2390. SA2 SSLE
  2391. BX2 X0*X2
  2392. BX6 X6+X2
  2393. SA6 SSLE
  2394. SSL4 SA3 SSLA
  2395. SX6 X3-1
  2396. SA6 A3
  2397. NG X6,SSL5 IF END OF ENTRIES
  2398. SA1 SBUF+B7
  2399. BX6 X1
  2400. SA6 CBUF
  2401. SA1 A1+B1
  2402. BX6 X1
  2403. SA6 CBUF+B1
  2404. SX6 B7+ SAVE SORT BUFFER INDEX
  2405. SA6 SSLF
  2406. RJ GSL GENERATE SHORT LIST
  2407. SA2 SSLF RESET SORT BUFFER INDEX
  2408. SB7 X2+2
  2409. EQ SSL4 GET NEXT ENTRY
  2410.  
  2411. SSL5 SA2 CODE
  2412. SA2 X2+ADTC
  2413. SB2 X2
  2414. JP B2 GO TO OVERFLOW PROCESSOR
  2415.  
  2416. * SORT TAPE FILES ALPHABETICALLY.
  2417.  
  2418. SSL6 SX1 A0 NUMBER OF ENTRIES*2
  2419. AX1 1
  2420. BX6 X1
  2421. SA6 SSLA NUMBER OF TAPE FILE ENTRIES
  2422. SB2 B1
  2423. RJ ALN ADVANCE LINE NUMBER
  2424. SX1 A0
  2425. SB7 SBUF ADDRESS OF BUFFER
  2426. RJ SST SORT ENTRIES
  2427. SA1 SSLA PRESET TERMINATION MESSAGE
  2428. RJ CDD CONVERT TO DISPLAY
  2429. MX0 -24 SAVE 4 DIGITS
  2430. BX6 -X0*X6
  2431. LX6 30
  2432. LX0 30
  2433. SA2 SSLE
  2434. BX2 X0*X2
  2435. BX6 X6+X2
  2436. SA6 SSLE
  2437. SB7 B0
  2438.  
  2439. * LIST TAPE FILES
  2440.  
  2441. SSL7 SA3 SSLA
  2442. SX6 X3-1
  2443. SA6 A3+
  2444. NG X6,SSL8 IF END OF ENTRIES
  2445. SA1 B7+SBUF GET ACTUAL ENTRY
  2446. BX6 X1
  2447. SA6 CBUF
  2448. SA1 A1+B1
  2449. BX6 X1
  2450. SA6 CBUF+B1
  2451. SX6 B7+ SAVE SORT BUFFER INDEX
  2452. SA6 SSLF
  2453. RJ GSL GENERATE SHORT LIST
  2454. SA2 SSLF
  2455. SB7 X2+2
  2456. EQ SSL7 GET NEXT FILENAME
  2457.  
  2458. SSL8 WRITEC O,LBUF LAST LINE OF TAPE FILES
  2459. WRITEC O,BLNK
  2460. SB2 2
  2461. RJ ALN ADVANCE LINE NUMBER
  2462. WRITEH O,SSLE,SSLEL
  2463. WRITEC O,BLNK
  2464. EQ ADT3 CONTINUE PROCESSING
  2465.  
  2466. SSLA CON 0 NUMBER OF TAPE FILES
  2467. SSLD DATA C* ALL FILES LISTED BUT NOT SORTED.*
  2468. SSLE DATA C* XXXX TAPE FILE(S).*
  2469. SSLEL EQU *-SSLE
  2470. SSLF CON 0
  2471. TITLE SUBROUTINES.
  2472. AEN SPACE 4,25
  2473. ** AEN - ADVANCE ENTRY NUMBER.
  2474. *
  2475. * ENTRY (ENTN) = NUMBER OF FILES.
  2476. *
  2477. * EXIT (ENTN) = ADVANCED.
  2478. * (ENTD) = ADVANCED FILE NUMBER IN DISPLAY CODE
  2479. *
  2480. * USES X 0, 1, 6.
  2481. * A 1, 6.
  2482. *
  2483. * CALLS CDD.
  2484.  
  2485.  
  2486. AEN SUBR ENTRY/EXIT
  2487. SA1 ENTN ADVANCE FILE NUMBER
  2488. SX1 X1+B1
  2489. BX6 X1
  2490. SA6 A1
  2491. RJ CDD CONVERT TO DISPLAY
  2492. SX1 1R. SET PERIOD
  2493. MX0 54
  2494. LX6 6
  2495. BX6 X0*X6
  2496. BX6 X1+X6
  2497. SA6 ENTD
  2498. EQ AENX RETURN
  2499. ALN SPACE 4,25
  2500. ** ALN - ADVANCE LINE NUMBER
  2501. *
  2502. * ENTRY (LINE) = CURRENT PAGE LINE NUMBER
  2503. * (B2) = NUMBER OF LINES TO ADVANCE
  2504. *
  2505. * EXIT FILE NUMBER UPDATED IN OUTPUT LINE
  2506. * LINE BUFFER CLEARED
  2507. *
  2508. * USES X 1, 6.
  2509. * B 2.
  2510. * A 1, 6.
  2511. *
  2512. * CALLS HDR, PTP.
  2513.  
  2514.  
  2515. ALN SUBR ENTRY/EXIT
  2516. SA1 LINE ADVANCE LINE NUMBER
  2517. SX6 X1+B2
  2518. SA6 A1
  2519. SX1 X6-LINP
  2520. NG X1,ALN2 IF NOT END OF PAGE
  2521. SA1 DTYP CHECK DEVICE TYPE
  2522. NZ X1,ALN1 IF FILE NOT ASSIGNED TO A TERMINAL
  2523. SA1 TPFG CHECK IF TITLE PAGE ALREADY PRINTED
  2524. NZ X1,ALN2 IF TITLE ALREADY PRINTED
  2525. ALN1 RJ PTP PRINT TITLE PAGE
  2526. SX6 B1 SET TITLE PAGE FLAG FOR TERMINAL
  2527. SA6 TPFG
  2528. SA1 CODE
  2529. ZR X1,ALN2 IF SHORT FILE LIST
  2530. RJ HDR PRINT HEADER
  2531. ALN2 SB2 7 CLEAR LINE BUFFER
  2532. SX6 B0
  2533. ALN3 ZR B2,ALNX IF END OF LINE BUFFER
  2534. SA6 LBUF+B2
  2535. SB2 B2-B1
  2536. EQ ALN3 CONTINUE CLEARING LINE BUFFER
  2537. BAT SPACE 4,15
  2538. *** BAT - BUILD ARGUMENT TABLE.
  2539. *
  2540. * BAT BUILDS THE ARGUMENT TABLE WHICH *ARG* USES TO
  2541. * EXTRACT KEYWORDS. THE ARGUMENT TABLE IS NORMALLY
  2542. * DONE BY THE SYSTEM BUT IS SUPPRESSED IN TFILES DUE
  2543. * TO THE 17 CHARACTER FILENAMES AND STRUCTURES OF THE
  2544. * COMMANDS.
  2545. *
  2546. * ENTRY B6 SPECIFIES NEXT POSITION IN THE USB STRING
  2547. * BUFFER TO BE CRACKED.
  2548. *
  2549. * EXIT TARG STORAGE AREA CONTAINS THE ARGUMENT TABLE.
  2550. *
  2551. * USES A - 3, 4, 6, 7.
  2552. * B - 3, 7.
  2553. * X - 3, 4, 5, 6, 7.
  2554. *
  2555. * CALLS POP.
  2556. *
  2557. * MACROS ABORT, MESSAGE.
  2558.  
  2559.  
  2560. BAT SUBR ENTRY/EXIT
  2561. BX6 X6-X6
  2562. SA6 BATA INITIALIZE INDEX TO TARG
  2563. SA6 NARG INITIALIZE ARGUMENT COUNT
  2564. BAT1 RJ POP PICK OUT NEXT PARAMETER
  2565. NG B5,ERR IF ERROR ENCOUNTERED
  2566. ZR B5,BAT2 IF PARAMETER DOES NOT EXCEED ONE WORD
  2567. SA3 BATB
  2568. SA4 TARG+B3-1
  2569. IX6 X3-X4
  2570. NZ X6,ERR IF NOT *REMARK=*
  2571. BAT2 SA3 POPA GET PARAMETER
  2572. BX6 X3
  2573. NG X2,BAT5 IF LAST PARAMETER
  2574. SB3 X1-1R=
  2575. ZR B3,BAT3 PROCESS EQUIVALENCED PARAMETER
  2576. SB3 X1-1R,
  2577. NZ B3,ERR6 IF INCORRECT SEPARATOR
  2578. EQ BAT4 PROCESS NON-EQUIVALENCED PARAMETER
  2579.  
  2580. BAT3 MX5 -6 ZERO-OUT LOWER -6BITS OF PARAMETER WORD
  2581. BX4 X5*X6
  2582. BX6 X4+X1 COMBINE KEYWORD AND *=*
  2583. BAT4 SA3 NARG INCREMENT ARGUMENT COUNT
  2584. SX7 X3+B1
  2585. SA7 NARG
  2586. BAT5 SA3 BATA INCREMENT INDEX TO TARG
  2587. SB3 X3
  2588. SB7 TARGL
  2589. EQ B3,B7,ERR IF EXCEEDED MAX. TARG LENGTH
  2590. SA6 TARG+B3 STORE PARAMETER
  2591. SB3 B3+B1 INCREMENT INDEX TO TARG
  2592. SX6 B3
  2593. SA6 BATA
  2594. NG X2,BAT NO MORE ARGUMENTS
  2595. EQ BAT1 GET NEXT PARAMETER
  2596.  
  2597. BATA CON 0 INDEX TO ARGUMENT TABLE
  2598. BATB VFD 36/0LREMARK,18/0,6/0L=
  2599. PAR SPACE 4,20
  2600. ** PAR - PROCESS ARGUMENTS
  2601. *
  2602. * ENTRY (B1) = 1.
  2603. * (B4) = ARGUMENT COUNT.
  2604. * (A4) = ADDRESS OF FIRST ARGUMENT.
  2605. * (X4) = FIRST ARGUMENT.
  2606. * (B5) = ADDRESS OF ARGUMENT TABLE IN FOLLOWING FORM -
  2607. * 12/OP,18/ASV,9/ST,3/WC,18/ADDR
  2608. * OP = 2 CHARACTER OPTION.
  2609. * ASV = ADDRESS OF ASSUMED VALUE.
  2610. * IF .LT. 0, ARGUMENT MUST BE EQUIVALENCED.
  2611. * ST = STATUS, IF = 400B, A ZERO *0* PARAMETER IS
  2612. * RETAINED AS A DISPLAY ZERO, OTHERWISE A
  2613. * VALUE OF ZERO IS STORED.
  2614. * WC = FULL WORD COUNT.
  2615. * ADDR = ADDRESS TO STORE PARAMETER.
  2616. *
  2617. * EXIT (X1) = ZERO IF NO ERROR DETECTED.
  2618. * (X1) = NON-ZERO IF ANY OF THE FOLLOWING ERRORS
  2619. * ARE FOUND.
  2620. * 1. OPTION NOT FOUND IN TABLE.
  2621. * 2. SINGLE ARGUMENT EQUIVALENCED.
  2622. * 3. INCORRECT RE-ENTRY OF ARGUMENT.
  2623. * 4. PARAMETER TOO LONG.
  2624. *
  2625. * USES X - 0, 1, 2, 3, 4, 5, 6, 7.
  2626. * B - 2, 3, 4.
  2627. * A - 2, 3, 4, 7.
  2628.  
  2629.  
  2630. PAR SUBR
  2631. MX0 42
  2632. SX1 B0
  2633. ZR B4,PARX IF NO ARGUMENTS
  2634. SX1 B1
  2635.  
  2636. * SEARCH FOR MATCH IN ARGUMENT TABLE.
  2637.  
  2638. PAR1 ZR X4,PARX IF NULL ARGUMENT
  2639. SA2 B5-B1
  2640. MX3 12
  2641. PAR2 SA2 A2+B1 GET NEXT OPTION
  2642. ZR X2,PARX IF END OF OPTION TABLE
  2643. BX6 X2*X3 CHECK FOR KEYWORD MATCH
  2644. BX5 X3*X4
  2645. BX7 X5-X6
  2646. NZ X7,PAR2 IF NO MATCH
  2647.  
  2648. * CHECK FOR EQUIVALENCE ALLOWED.
  2649.  
  2650. SX7 X4-1R= CHECK FOR EQUIVALENCE SEPARATOR
  2651. SB2 X2 SET ADDRESS VALUE
  2652. LX2 30 GET ASSUMED STATUS
  2653. SB3 X2
  2654. PL B3,PAR3 IF EQUIVALENCE ALLOWED
  2655. SA3 -B3 SET ASSUMED STATUS ADDRESS
  2656. BX6 -X0*X3 GET ASSUMED STATUS
  2657. SB3 -B3
  2658. NZ X7,PAR5 IF ARGUMENT NOT EQUIVALENCED
  2659. EQ PARX RETURN WITH ERROR
  2660.  
  2661. * PROCESS EQUIVALENCE.
  2662.  
  2663. PAR3 SA3 B3 SET ASSUMED VALUE ADDRESS
  2664. BX6 -X0*X3 SET ASSUMED VALUE
  2665. NZ X7,PAR5 IF ARGUMENT NOT EQUIVALENCED
  2666. SA4 A4+B1 GET PARAMETER
  2667. SB4 B4-B1
  2668. BX3 X4
  2669. AX4 42
  2670. NG X2,PAR4 IF DISPLAY ZERO REQUESTED
  2671. SX2 X4-1L0
  2672. PAR4 ZR X3,PARX IF NULL PARAMETER
  2673. NZ X2,PAR5 IF NOT *0*
  2674. SX3 B0 CLEAR EQUIVALENCE
  2675. SX6 B0 CLEAR STATUS
  2676.  
  2677. * ENTER ARGUMENT.
  2678.  
  2679. PAR5 SA2 A2 GET WORD COUNT OF PARAMETER
  2680. MX0 -3
  2681. AX2 18
  2682. BX2 -X0*X2
  2683. BX7 X3
  2684. NZ X2,PAR6 IF PARAMETER MAY BE FULL WORD
  2685. SA4 A4 GET CURRENT ARGUMENT
  2686. MX0 -6
  2687. LX0 12
  2688. BX2 -X0*X4
  2689. NZ X2,ERR IF PARAMETER TOO LONG
  2690. MX0 42
  2691. BX7 X0*X7
  2692. IX7 X6+X7 MERGE ARGUMENT AND STATUS
  2693. PAR6 SA7 B2 STORE ARGUMENT
  2694. SB3 B2-B3
  2695. NZ B3,PAR7 IF MORE THAN 1 ENTRY ALLOWED
  2696. SA2 A2 GET ENTRY IN ARGUMENT TABLE
  2697. MX3 12
  2698. BX4 -X3*X2
  2699. BX7 X3+X4
  2700. SA7 A2 MASK THIS ENTRY OUT
  2701. PAR7 SB4 B4-B1 DECREMENT ARGUMENT COUNT
  2702. SA4 A4+B1 GET NEXT ARGUMENT
  2703. NZ B4,PAR1 IF MORE ARGUMENTS TO PROCESS
  2704. SX1 B0 CLEAR ERROR
  2705. EQ PARX RETURN WITH ERROR
  2706. CBE SPACE 4,10
  2707. ** CBE - CLEAR BLANKS FROM WORD.
  2708. *
  2709. * ENTRY (X6) = WORD TO BE CLEARED.
  2710. *
  2711. * EXIT (X6) = WORD WITH BLANKS CLEARED.
  2712. *
  2713. * USES X - 0, 2, 3, 4, 5, 6.
  2714.  
  2715.  
  2716. CBE SUBR ENTRY/EXIT
  2717. BX3 X6
  2718. SX2 12B
  2719. MX0 -6
  2720. SX4 55B
  2721. CBE1 BX5 -X0*X3
  2722. BX5 X5-X4
  2723. ZR X5,CBE3 IF BLANK
  2724. LX3 54
  2725. CBE2 SX2 X2-1 DECREMENT CHARACTER COUNT
  2726. NZ X2,CBE1 IF NOT DONE WITH WORD
  2727. BX6 X3
  2728. EQ CBEX RETURN
  2729.  
  2730. CBE3 BX3 X0*X3
  2731. LX3 54
  2732. EQ CBE2 CONTINUE CONVERSION
  2733. CER SPACE 4,15
  2734. ** CER - CHECK FOR RETURNED ERRORS
  2735. *
  2736. * *CER* CHECKS THE ERROR BITS IN THE FET. IF SET,
  2737. * *CER* ISSUES THE MESSAGE SENT BY *TFM*, THEN EITHER
  2738. * ENDS PROCESSING OR ROLLS OUT AND RETURNS TO THE
  2739. * CALLING PROGRAM. UPON ROLLIN, THE CALLING PROGRAM
  2740. * WILL RE-ISSUE THE REQUEST.
  2741. *
  2742. * ENTRY TFM HAS JUST BEEN CALLED.
  2743. *
  2744. * EXIT X7 .NE. 0 IF ROLLOUT.
  2745. * IF OTHER THAN ROLLOUT ERROR, MESSAGE IS ISSUED AND
  2746. * PROCESSING IS STOPPED.
  2747. *
  2748. * USES A - 1.
  2749. * B - 7.
  2750. * X - 0, 1, 6, 7.
  2751. *
  2752. * MACROS ABORT, ENDRUN, MESSAGE, ROLLOUT.
  2753.  
  2754.  
  2755. CER SUBR ENTRY/EXIT
  2756. BX7 X7-X7
  2757. MX0 -8
  2758. LX0 10D
  2759. SA1 F
  2760. BX0 -X0*X1
  2761. ZR X0,CER IF NO ERRORS
  2762. SA2 TFMSG
  2763. MESSAGE A2,0
  2764. SA1 F
  2765. MX0 42
  2766. BX6 X0*X1
  2767. LX1 59-17
  2768. PL X1,CER1 IF NOT ROLLABLE ERROR
  2769. SA6 A1
  2770. SX7 B1
  2771. ROLLOUT
  2772. MESSAGE CERA,1 CLEAR B-DISPLAY MESSAGE
  2773. SB7 B7-B1
  2774. EQ CERX RETURN
  2775.  
  2776. CER1 SA1 NABT CHECK NO-ABORT OPTION
  2777. ZR X1,CER2 IF NA NOT SET
  2778. ENDRUN
  2779.  
  2780. CER2 ABORT
  2781.  
  2782. CERA CON 0 CLEAR B-DISPLAY MESSAGE
  2783. CDT SPACE 4,15
  2784. ** CDT - CONVERT TIMES AND DATES TO DISPLAY FORMAT.
  2785. *
  2786. * ENTRY (X3) = CODED DATE AND TIME.
  2787. *
  2788. * EXIT (X6) = DISPLAY CODED DATE.
  2789. * (X5) = DISPLAY CODED TIME.
  2790. *
  2791. * USES X 0, 1, 6.
  2792. * A 1, 6.
  2793. *
  2794. * CALLS EDT.
  2795. *
  2796. * MACROS EDATE, ETIME.
  2797.  
  2798.  
  2799. CDT SUBR ENTRY/EXIT
  2800. MX0 -18
  2801. BX1 -X0*X3 CONVERT TIME
  2802. BX6 -X0-X1
  2803. BX5 X3
  2804. ZR X6,CDT1 IF BLANK TIME REQUEST
  2805. ETIME X1
  2806. CDT1 AX5 18
  2807. BX1 -X0*X5 CONVERT DATE
  2808. BX5 X6
  2809. BX6 -X0-X1
  2810. ZR X6,CDTX IF BLANK DATE REQUEST
  2811. EDATE X1
  2812. EQ CDTX EXIT
  2813. CNV SPACE 4,20
  2814. ** CNV - CONVERT PARAMETER TO VALUE
  2815. *
  2816. * *CNV* CONVERTS THE ALPHA PARAMETER EQUIVALENCES TO THEIR
  2817. * CORRESPONDING NUMERIC TFM VALUES. THESE VALUES ARE
  2818. * STORED IN THE PARAMETER AREA.
  2819. *
  2820. * ENTRY THE USER GIVEN PARAMETER EQUIVALENCES HAVE BEEN
  2821. * CRACKED AND STORED.
  2822. *
  2823. * EXIT GIVEN PARAMETERS HAVE BEEN CONVERTED. IF ANY WERE
  2824. * INCORRECT, ERROR PROCESSING IS INITIATED.
  2825. *
  2826. * USES A - 1, 2, 6.
  2827. * B - 2, 4.
  2828. * X - 1, 2, 3, 6.
  2829. *
  2830. * CALLS NONE.
  2831.  
  2832.  
  2833. CNV SUBR ENTRY/EXIT
  2834. MX0 12
  2835. SA2 CATG GET FILE CATEGORY
  2836. ZR X2,CNV3 IF NO CATEGORY SPECIFIED
  2837. SB4 4
  2838. SB2 B0
  2839. CNV1 SA1 CNVA+B2
  2840. BX1 X0*X1
  2841. BX3 X2-X1
  2842. SB2 B2+B1
  2843. GT B2,B4,CNV2 IF END OF POSSIBLE CATEGORIES
  2844. NZ X3,CNV1 IF CATEGORY NOT FOUND
  2845. CNV2 NZ X3,ERR10 IF INCORRECT CATEGORY
  2846. SB2 B2-B1
  2847. SA1 CNVA+B2
  2848. MX0 -12
  2849. BX6 -X0*X1
  2850. SA6 A2
  2851. MX0 12
  2852. CNV3 SA2 ALAD GET AC PARAMETER
  2853. ZR X2,CNV6 IF AC PARAMETER NOT SPECIFIED
  2854. SB2 B0
  2855. SB4 2
  2856. CNV4 SA1 CNVB+B2
  2857. BX1 X0*X1
  2858. BX3 X2-X1
  2859. SB2 B2+B1
  2860. GT B2,B4,CNV5 IF END OF AC POSSIBILITIES
  2861. NZ X3,CNV4 IF AC VALUE NOT FOUND
  2862. CNV5 NZ X3,ERR11 IF INCORRECT AC PARAMETER
  2863. SB2 B2-B1
  2864. SA1 CNVB+B2
  2865. MX0 -12
  2866. BX6 -X0*X1
  2867. SA6 A2
  2868. MX0 12
  2869. CNV6 SA2 MODE GET FILE MODE
  2870. ZR X2,CNV9 IF FILE MODE NOT SPECIFIED
  2871. SB2 B0
  2872. SB4 3
  2873. CNV7 SA1 CNVC+B2
  2874. BX1 X0*X1
  2875. BX3 X2-X1
  2876. SB2 B2+B1
  2877. GT B2,B4,CNV8 IF END OF POSSIBLE MODES
  2878. NZ X3,CNV7 IF MODE NOT FOUND
  2879. CNV8 NZ X3,ERR7 IF INCORRECT MODE
  2880. SB2 B2-B1
  2881. SA1 CNVC+B2
  2882. MX0 -12
  2883. BX6 -X0*X1
  2884. SA6 A2
  2885. CNV9 EQ CNVX RETURN
  2886.  
  2887. CNVA VFD 12/0LPU,36/0,12/FCPU
  2888. VFD 6/0LP,42/0,12/FCPR
  2889. VFD 12/0LPR,36/0,12/FCPR
  2890. VFD 6/0LS,42/0,12/FCSP
  2891.  
  2892. CNVB VFD 6/0LY,42/0,12/FAYS
  2893. VFD 6/0LN,42/0,12/FANO
  2894.  
  2895. CNVC VFD 6/0LW,42/0,12/FMWR
  2896. VFD 6/0LR,42/0,12/FMRE
  2897. VFD 6/0LN,42/0,12/FMNA
  2898. CSU SPACE 4,10
  2899. ** CSU - CHECK FOR SPECIAL USER.
  2900. *
  2901. * ENTRY (PTPL) = ALTERNATE USER.
  2902. *
  2903. * EXIT (CODE) UPDATED TO NON-ALTERNATE CATALOG IF
  2904. * USER REQUESTING AUDIT IS THE SAME AS THE ALTERNATE
  2905. * USER. SUBTITLE FOR OUTPUT IS COMPLETED.
  2906. *
  2907. * USES X - 0, 1, 2, 3, 6, 7.
  2908. * B - 2.
  2909. * A - 1, 2, 6.
  2910. *
  2911. * CALLS SFN.
  2912.  
  2913.  
  2914. CSU SUBR ENTRY/EXIT
  2915. USERNUM CSUA GET CURRENT USER NAME
  2916. SA1 CSUA
  2917. RJ SFN SPACE FILL USER NAME
  2918. MX0 6
  2919. LX6 48
  2920. SX4 1RF SET LAST PART OF *OF*
  2921. LX4 54
  2922. BX6 -X0*X6
  2923. BX6 X6+X4
  2924. SA6 PTPC
  2925. SA2 CODE
  2926. SX2 X2-AUDP
  2927. PL X2,CSUX IF ADMIT DATA REQUEST
  2928. SA2 PTPL
  2929. ZR X2,CSUX IF NO ALTERNATE USER
  2930. MX0 -6
  2931. SB2 8
  2932. CSU1 LX1 6 POSITION NEXT CHARACTER
  2933. LX2 6
  2934. SB2 B2-B1
  2935. ZR B2,CSU2 IF USER NUMBERS MATCH
  2936. BX3 -X0*X1 USER
  2937. BX6 -X0*X2 ALTERNATE USER
  2938. IX6 X3-X6
  2939. ZR X6,CSU1 IF CHARACTERS COMPARE
  2940. EQ CSUX RETURN
  2941.  
  2942. CSU2 SA1 MODE PROCEED AS NON-ALTERNATE CATALOG
  2943. SX6 X1-2
  2944. SA6 A1
  2945. EQ CSUX RETURN
  2946.  
  2947. CSUA CON 0 CURRENT USER NAME
  2948. ERR SPACE 4,25
  2949. ** ERR - ERROR MESSAGES.
  2950.  
  2951.  
  2952. ERR MESSAGE (=C*ERROR IN ARGUMENT.*)
  2953. ABORT
  2954. ERR1 MESSAGE (=C*NO ARGUMENTS SPECIFIED.*)
  2955. ABORT
  2956. ERR2 MESSAGE (=C*ERROR IN VSN.*)
  2957. ABORT
  2958. ERR3 MESSAGE (=C*NO USERNAME SPECIFIED.*)
  2959. ABORT
  2960. ERR4 MESSAGE (=C*EXCEEDED USERNAME LIMIT.*)
  2961. ABORT
  2962. ERR5 MESSAGE (=C*ERROR IN USERNAME.*)
  2963. ABORT
  2964. ERR6 MESSAGE (=C*INCORRECT SEPARATOR.*)
  2965. ABORT
  2966. ERR7 MESSAGE (=C*INCORRECT FILE MODE.*)
  2967. ABORT
  2968. ERR8 MESSAGE (=C*ERROR IN FILENAME.*)
  2969. ABORT
  2970. ERR9 MESSAGE (=C*EXCEEDED FILENAME LIMIT.*)
  2971. ABORT
  2972. ERR10 MESSAGE (=C*INCORRECT FILE CATEGORY.*)
  2973. ABORT
  2974. ERR11 MESSAGE (=C*INCORRECT AC PARAMETER.*)
  2975. ABORT
  2976. ERR12 MESSAGE (=C*EXCEEDED VSN LIMIT.*)
  2977. ABORT
  2978. ERR13 MESSAGE (=C*INCORRECT LIST OPTION.*)
  2979. ABORT
  2980. ERR14 MESSAGE (=C*FILE NAME MISSING.*)
  2981. ABORT
  2982. ERR15 MESSAGE (=C*INCORRECT PASSWORD.*)
  2983. ABORT
  2984. ERR16 MESSAGE (=C*CANNOT AMEND VSN NAME.*)
  2985. ABORT
  2986. ERR17 MESSAGE (=C*EMPTY CATALOG.*)
  2987. ABORT
  2988. ESP SPACE 4,20
  2989. ** ESP - ENTER SECURE PASSWORD.
  2990. *
  2991. * THIS SUBROUTINE PROCESSES SECURELY ENTERED PASSWORDS.
  2992. * IF OUTPUT FILE IS ASSIGNED TO A TERMINAL THE MESSAGE
  2993. * *PASSWORD:* ALONG WITH BLANK OUT CHARACTERS FOR SECURE
  2994. * ENTRY OF PASSWORD WILL BE SENT TO THE TERMINAL.
  2995. * FILE *INPUT* WILL THEN BE READ FOR THE PASSWORD.
  2996. * FOR BATCH JOBS FILE *INPUT* IS READ FOR THE PASSWORD.
  2997. *
  2998. * ENTRY NONE.
  2999. *
  3000. * EXIT (X6) = PASSWORD.
  3001. * TO *ABT* IF INCORRECT PASSWORD ENCOUNTERED.
  3002. *
  3003. * USES A - 1, 2, 4, 6.
  3004. * B - 2, 3, 4, 5, 6, 7.
  3005. * X - 0, 1, 2, 3, 5, 6, 7.
  3006. *
  3007. * CALLS STF.
  3008. *
  3009. * MACROS CSET, READSKP, WRITE.
  3010.  
  3011.  
  3012. ESP SUBR ENTRY/EXIT
  3013. SETFET POUT,(LFN==6LOUTPUT)
  3014. SX2 P SET ADDRESS OF FET
  3015. RJ STF CHECK IF OUTPUT ASSIGNED TO TERMINAL
  3016. NZ X6,ESP1 IF OUTPUT NOT ASSIGNED TO TERMINAL
  3017. SA1 X2+B1 SET BUFFER FULL
  3018. SX7 X1
  3019. SX6 X1+PMSGL
  3020. SA6 A1+B1 SET IN BELOW DATA FOR MESSAGE
  3021. SA7 A6+B1 SET OUT = FIRST
  3022. WRITE X2,* FORCE WRITE BIT SET
  3023. SA1 P
  3024. MX0 42
  3025. BX2 X0*X1 FILE NAME FOR OUTPUT POINTER
  3026. SX1 A1 SET ADDRESS OF FET FOR POINTER
  3027. BX6 X1+X2
  3028. SA6 ARGR FORCE WRITE BEFORE READ ON ROLLOUT
  3029. ESP1 SX2 I SET ADDRESS OF FET
  3030. RJ STF CHECK IF INPUT ASSIGNED TO TERMINAL
  3031. NZ X6,ESP2 IF INPUT NOT ASSIGNED TO TERMINAL
  3032. CSET NORMAL ENSURE TERMINAL IN NORMAL MODE
  3033. ESP2 READSKP I,,R READ INPUT FOR PASSWORD
  3034. SA1 I+2 DETERMINE NUMBER OF WORDS READ
  3035. SA2 A1+B1
  3036. IX3 X1-X2
  3037. ZR X3,ERR15 IF NO DATA ENTERED
  3038. SB5 X3
  3039. SB3 B0
  3040. BX6 X6-X6
  3041. SB4 60
  3042. SB7 B0
  3043. MX0 -6
  3044. ESP3 SA2 IBUF+B3 PICK UP NEXT DATA WORD
  3045. SB2 B0+
  3046. ESP4 LX2 6
  3047. BX1 -X0*X2 PICK UP CHARACTER TO CHECK
  3048. NZ X1,ESP5 IF CHARACTER NOT ZERO
  3049. NZ X5,ESP9 IF 00 ENCOUNTERED
  3050. SX5 B1+ SET FLAG TO INDICATE 0 ENCOUNTERED
  3051. EQ ESP8 PROCESS CHARACTER
  3052.  
  3053. ESP5 NZ X5,ERR15 IF PREVIOUS CHARACTER = COLON
  3054. SB6 X1-1R9
  3055. GT B6,ESP7 IF NOT ALPHANUMERIC CHARACTER
  3056. ESP6 SB4 B4-6
  3057. LX7 X1,B4
  3058. BX6 X7+X6
  3059. SB7 B7+1
  3060. SB6 B7-7
  3061. GT B6,ERR15 IF PASSWORD .GT. SEVEN CHARACTERS
  3062. EQ ESP8 PROCESS CHARACTER
  3063.  
  3064. ESP7 SX4 X1-1R*
  3065. ZR X4,ESP6 IF CHARACTER = *
  3066. SX3 X1-1R
  3067. NZ X3,ERR15 IF CHARACTER NOT BLANK
  3068. ESP8 SB2 B2+B1
  3069. SB6 B2-10
  3070. LT B6,ESP4 IF NOT END OF WORD
  3071. SB3 B3+B1
  3072. SB6 B5-B3
  3073. EQ B6,ERR15 IF TOO MUCH DATA ENTERED
  3074. EQ ESP3 PICK UP NEXT WORD
  3075.  
  3076. ESP9 SA1 I+1
  3077. BX7 X1
  3078. SA7 A1+B1 SET IN = FIRST FOR INPUT BUFFER
  3079. EQ ESPX RETURN
  3080.  
  3081. FBA SPACE 4,25
  3082. *** FBA - FILL CBUF BUFFER FOR ADMIT LIST.
  3083. *
  3084. * ENTRY NONE.
  3085. *
  3086. * EXIT (X6) = 0 IF EOI ENCOUNTERED
  3087. *
  3088. * USES A - 1, 3, 6.
  3089. * B - 2, 3, 4, 5.
  3090. * X - 0, 1, 3, 6.
  3091. *
  3092. * CALLS CER.
  3093. *
  3094. * MACRO AUDIT.
  3095.  
  3096.  
  3097. FBA SUBR ENTRY/EXIT
  3098. FBA1 SX6 B1 PRESET EOI FLAG
  3099. SA1 F+1
  3100. SB2 X1 (B2) = FIRST
  3101. SA1 F+2
  3102. SB3 X1 (B3) = IN
  3103. SA1 F+3
  3104. SB4 X1 (B4) = OUT
  3105. SA1 F+4
  3106. SB5 X1-1 (B5) = LIMIT
  3107. NE B4,B3,FBA3 IF OUT .NE. IN
  3108. SA1 F CHECK FOR EOI ON LAST REQUEST
  3109. MX0 -1
  3110. LX0 1
  3111. BX0 -X0*X1
  3112. ZR X0,FBA2 IF NOT *EOI*
  3113. BX6 X6-X6 SET EOI FLAG
  3114. EQ FBAX RETURN
  3115.  
  3116. FBA2 AUDIT F REQUEST MORE INFORMATION
  3117. RJ CER CHECK FOR RETURNED ERRORS
  3118. NZ X7,FBA2 IF ROLLABLE ERROR OCCURRED
  3119. EQ FBA1 FILL CBUF BUFFER
  3120.  
  3121. * MOVE DATA TO CBUF FROM CIRCULAR BUFFER.
  3122.  
  3123. FBA3 SA3 B4 (X3) = DATA WORD
  3124. BX6 X3
  3125. SA6 CBUF STORE FIRST WORD
  3126. NE B4,B5,FBA4 IF OUT .NE. LIMIT
  3127. SB4 B2-B1 SET OUT = FIRST - 1
  3128. FBA4 SB4 B4+B1 INCREMENT OUT
  3129. SA3 B4
  3130. BX6 X3
  3131. SA6 CBUF+B1 STORE SECOND WORD
  3132. NE B4,B5,FBA5 IF OUT .NE. LIMIT
  3133. SB4 B2-B1 SET OUT = FIRST - 1
  3134. FBA5 SX6 B4+B1 RESET OUT
  3135. SA6 F+3
  3136. EQ FBAX RETURN
  3137. FCB SPACE 4,25
  3138. *** FCB - FILL CBUF BUFFER FOR FULL LIST.
  3139. *
  3140. * ENTRY (B2) = 0 SHORT LIST.
  3141. * = 1 FULL LIST.
  3142. *
  3143. * EXIT (X6) = 0 IF EOI ENCOUNTERED
  3144. *
  3145. * USES A - 1, 3, 4, 5, 6.
  3146. * B - 2, 3, 4, 5, 6.
  3147. * X - 0, 1, 3, 4, 5, 6.
  3148. *
  3149. * CALLS CER.
  3150. *
  3151. * MACRO AUDIT.
  3152.  
  3153.  
  3154. FCB SUBR ENTRY/EXIT
  3155. SX6 B2 SAVE LIST FLAG
  3156. SA6 FCBF
  3157. FCB1 SX6 B1 PRESET X6
  3158. SA1 F+1
  3159. SB2 X1 (B2) = FIRST
  3160. SA1 F+2
  3161. SB3 X1 (B3) = IN
  3162. SA1 F+3
  3163. SB4 X1 (B4) = OUT
  3164. SA1 F+4
  3165. SB5 X1-1 (B5) = LIMIT
  3166. NE B4,B3,FCB3 IF OUT .NE. IN
  3167. SA1 F CHECK FOR EOI ON LAST REQUEST
  3168. MX0 -1
  3169. LX0 1
  3170. BX0 -X0*X1
  3171. ZR X0,FCB2 IF NOT *EOI*
  3172. BX6 X6-X6 SET EOI FLAG
  3173. EQ FCBX RETURN
  3174.  
  3175. FCB2 AUDIT F REQUEST MORE INFORMATION
  3176. RJ CER CHECK FOR RETURNED ERRORS
  3177. NZ X7,FCB2 IF ROLLABLE ERROR OCCURRED
  3178. EQ FCB1 FILL CBUF BUFFER
  3179.  
  3180. * MOVE DATA TO CBUF FROM CIRCULAR BUFFER.
  3181.  
  3182. FCB3 SB6 B0 INITIALIZE CBUF POINTER
  3183. SB7 TCEL TAPE CATALOG SIZE
  3184. FCB4 SA3 B4 (X3) = DATA WORD
  3185. BX6 X3
  3186. SA6 CBUF+B6 STORE DATA WORD
  3187. SB6 B6+B1 INCREMENT CBUF POINTER
  3188. NE B4,B5,FCB5 IF OUT .NE. LIMIT
  3189. SB4 B2-B1 SET OUT = FIRST - 1
  3190. FCB5 SB4 B4+B1 INCREMENT OUT
  3191. NE B6,B7,FCB4 IF 23 WORDS OF TAPE CATALOG NOT MOVED
  3192. SA4 FCBA GET EOF POINTER
  3193. SA5 FCBF (X5) = LIST FLAG
  3194. FCB6 SA3 B4 BYPASS VSN LIST
  3195. NE B4,B5,FCB7 IF OUT .NE. LIMIT
  3196. SB4 B2-B1 OUT = FIRST - 1
  3197. FCB7 SB4 B4+B1
  3198. ZR X5,FCB8 IF FULL ADMIT LIST
  3199. BX6 X3
  3200. SA6 CBUF+B6
  3201. SB6 B6+B1
  3202. FCB8 MX0 36
  3203. BX3 X3*X0
  3204. BX0 X3-X4
  3205. NZ X0,FCB6 IF NOT EOF
  3206. MI X0,FCB6 IF NOT EOF
  3207. SX6 B4 RESET OUT
  3208. SA6 F+3
  3209. EQ FCBX RETURN
  3210.  
  3211. FCBA VFD 36/-0,24/0 EOI WORD
  3212. FCBF CON 0 LIST FLAG
  3213. SPACE 2
  3214. FCE SPACE 4,25
  3215. *** FCE - FORMAT CATALOG ENTRY FOR OUTPUT.
  3216. *
  3217. * FCE CONVERTS THE FIELDS OF A TAPE CATALOG ENTRY TO
  3218. * DISPLAY AND FORMATS IT INTO 3 - 80 CHARACTER LINES FOR
  3219. * OUTPUT. HEADER LINES ARE DEFINED WHICH THE CALLING
  3220. * PROGRAM CAN RETRIEVE (FCEY, FCEZ).
  3221. *
  3222. * ENTRY (X7) = LINE NUMBER (4 DECIMAL DIGITS) TO BE
  3223. * ATTACHED TO BEGINNING OF LINE.
  3224. * = 0 - DO NOT ATTACH ANY LINE NUMBER.
  3225. * (B6) = ADDRESS OF CATALOG ENTRY.
  3226. * (B7) = WORK AREA FOR STORAGE OF OUTPUT LINES.
  3227. * BUFFER SIZE IS DETERMINED BY SYMBOLS
  3228. * *CHDR* = NUMBER OF LINES,
  3229. * *NWRD* = NUMBER OF WORDS PER LINE.
  3230. * NO END-OF-LINES ARE INSERTED. USE WRITEH
  3231. * FOR OUTPUT.
  3232. *
  3233. * EXIT OUTPUT LINES WRITTEN TO WORK AREA.
  3234. *
  3235. * USES ALL.
  3236. *
  3237. * CALLS CDD, CDT, COD, EDT, SCB, SFN.
  3238.  
  3239.  
  3240. FCE SUBR ENTRY/EXIT
  3241. SA7 FCED STORE LINE NUMBER
  3242.  
  3243. * INITIALIZE THE OUTPUT WORKING BUFFER.
  3244.  
  3245. SB2 NWRD*3-1 NUMBER OF WORDS TO FILL - 1
  3246. SA1 FCEB BLANK FILL THE BUFFER
  3247. BX6 X1
  3248. FCE1 SA6 B7+B2 BLANK FILL NEXT CELL
  3249. SB2 B2-B1
  3250. PL B2,FCE1 IF NOT BLANK FILLED
  3251.  
  3252. * CONVERT CATALOG FIELDS
  3253.  
  3254. SA3 B6+CEMD MODIFICATION DATE AND TIME
  3255. RJ CDT CONVERT DATE AND TIME
  3256. SB3 MDPS
  3257. RJ SCB SET CHARACTERS IN BUFFER
  3258. BX6 X5
  3259. SB3 MTPS
  3260. RJ SCB SET CHARACTERS IN BUFFER
  3261. SA3 B6+CEAD LAST ACCESS DATE AND TIME
  3262. RJ CDT CONVERT DATE AND TIME
  3263. SB3 ADPS
  3264. RJ SCB SET CHARACTERS IN BUFFER
  3265. BX6 X5
  3266. SB3 ATPS
  3267. RJ SCB SET CHARACTERS IN BUFFER
  3268. SA3 B6+CECD CREATION DATE AND TIME
  3269. RJ CDT CONVERT DATE AND TIME
  3270. SB3 CDPS
  3271. RJ SCB SET CHARACTERS IN BUFFER
  3272. BX6 X5
  3273. SB3 CTPS
  3274. RJ SCB SET CHARACTERS IN BUFFER
  3275. MX0 54 FILE TYPE
  3276. SA2 B6+CEPW
  3277. AX2 6
  3278. BX0 -X0*X2
  3279. SX0 X0-1
  3280. SA2 X0+FCEI
  3281. BX6 X2
  3282. SB3 FTPS
  3283. RJ SCB SET CHARACTERS IN BUFFER
  3284. SA2 B6+CEST LOGICAL FILE NAME
  3285. LX2 59-2
  3286. PL X2,FCE2 IF NOT SYMBOLIC ACCESS
  3287. SA1 B6+CELI STORE FILE NAME
  3288. RJ SFN SPACE FILL NAME
  3289. SB3 FNPS
  3290. RJ SCB SET CHARACTERS IN BUFFER
  3291. SA1 B6+CEST
  3292. MX2 42
  3293. BX1 X2*X1
  3294. RJ SFN SPACE FILL NAME
  3295. SB3 F2PS
  3296. RJ SCB SET CHARACTERS IN BUFFER
  3297. EQ FCE3
  3298.  
  3299. FCE2 SA1 B6+CEES STORE VSN
  3300. MX0 36
  3301. BX1 X0*X1
  3302. RJ SFN SPACE FILL NAME
  3303. SB3 FNPS
  3304. RJ SCB SET CHARACTERS IN BUFFER
  3305. SA1 FCEQ
  3306. BX6 X1
  3307. SB3 F2PS
  3308. RJ SCB SET CHARACTERS IN BUFFER
  3309. FCE3 SA1 FCED LINE NUMBER
  3310. ZR X1,FCE4 IF NO LINE NUMBER
  3311. RJ CDD CONVERT TO DISPLAY
  3312. LX6 59-23 LEFT-JUSTIFY LINE NUMBER
  3313. SB3 NMPS
  3314. RJ SCB SET CHARACTERS IN BUFFER
  3315. FCE4 MX0 54
  3316. SA2 B6+CEPW
  3317. BX0 -X0*X2
  3318. SX0 X0-1
  3319. SA2 X0+FCEJ PERMISSION MODE
  3320. BX6 X2
  3321. SB3 FPPS
  3322. RJ SCB SET CHARACTERS IN BUFFER
  3323. SA5 MULT MULTIFILE LIST INDICATOR
  3324. ZR X5,FSE5 IF NOT MULTIFILE
  3325. SA1 B6+CEVS SECTION NUMBER
  3326. MX2 -18
  3327. BX1 -X2*X1
  3328. RJ CDD CONVERT TO DISPLAY
  3329. LX6 59-23 LEFT-JUSTIFY LINE NUMBER
  3330. SB3 SNPS
  3331. RJ SCB SET CHARACTERS IN BUFFER
  3332. SA1 B6+CESQ SEQUENCE NUMBER
  3333. MX2 -18
  3334. BX1 -X2*X1
  3335. RJ CDD CONVERT TO DISPLAY
  3336. LX6 59-23 LEFT-JUSTIFY LINE NUMBER
  3337. SB3 QNPS
  3338. RJ SCB SET CHARACTERS IN BUFFER
  3339. SA1 B6+CESI MULTI-SET I.D.
  3340. MX2 36
  3341. BX1 X2*X1
  3342. RJ SFN SPACE FILL NAME
  3343. SB3 SIPS
  3344. RJ SCB SET CHARACTERS IN BUFFER
  3345. FSE5 SA1 B6+CEPI PHYSICAL FILE NAME
  3346. RJ SFN SPACE FILL NAME
  3347. SB3 PNPS
  3348. RJ SCB SET CHARACTERS IN BUFFER
  3349. SA1 B6+CESQ
  3350. MX2 42
  3351. BX1 X2*X1
  3352. RJ SFN SPACE FILL NAME
  3353. SB3 P2PS
  3354. RJ SCB SET CHARACTERS IN BUFFER
  3355. SA2 B6+CEAD ACCESS COUNT
  3356. MX1 24
  3357. BX1 X1*X2
  3358. LX1 24
  3359. SA2 FCEG
  3360. BX0 X2-X1
  3361. PL X0,FCE6 IF NOT OVERFLOW ACCESS COUNT
  3362. SA3 FCEH OVERFLOW FLAG
  3363. BX6 X3
  3364. SB3 AFPS
  3365. RJ SCB SET CHARACTER IN BUFFER
  3366. SA1 FCEG
  3367. FCE6 RJ CDD CONVERT TO DISPLAY
  3368. LX6 36D
  3369. SB3 ACPS
  3370. RJ SCB SET CHARACTERS IN BUFFER
  3371. SA2 B6+CEPW PASSWORD
  3372. MX1 42
  3373. BX1 X1*X2
  3374. RJ SFN SPACE FILL NAME
  3375. SB3 PWPS
  3376. RJ SCB SET CHARACTERS IN BUFFER
  3377. SA1 B6+CETD DATA FORMAT
  3378. MX0 54
  3379. AX1 30
  3380. BX0 -X0*X1
  3381. SA1 X0+FCEL
  3382. BX6 X1
  3383. SB3 DFPS
  3384. RJ SCB SET CHARACTERS IN BUFFER
  3385. SA1 B6+CETD LABEL STATUS
  3386. LX1 1
  3387. MX0 2
  3388. BX1 X0*X1
  3389. LX1 2
  3390. SA2 X1+FCEP
  3391. BX6 X2
  3392. SB3 LBPS
  3393. RJ SCB SET CHARACTERS IN BUFFER
  3394. SA1 B6+CETD CONVERSION MODE
  3395. LX1 12D
  3396. MX0 -3
  3397. BX1 -X0*X1
  3398. SA2 X1+FCEN
  3399. BX6 X2
  3400. SB3 CVPS
  3401. RJ SCB SET CHARACTERS IN BUFFER
  3402. SA1 B6+CETD GET TAPE TYPE
  3403. MX0 -2
  3404. AX1 55
  3405. BX0 -X0*X1
  3406. BX6 X0 SAVE TAPE TYPE FOR DENSITY GENERATION
  3407. SA6 FCEF
  3408. SA2 X0+FCEK SET TAPE TYPE MNEMONIC
  3409. BX6 X2
  3410. SB3 TYPS
  3411. RJ SCB SET CHARACTERS IN BUFFER
  3412. SA1 B6+CEST ALTERNATE USER LISTABLE
  3413. MX0 59
  3414. AX1 11
  3415. BX0 -X0*X1
  3416. SA2 X0+FCEO
  3417. BX6 X2
  3418. SB3 AUPS
  3419. RJ SCB SET CHARACTERS IN BUFFER
  3420. SA1 B6+CETD DENSITY
  3421. LX1 9D
  3422. MX0 -3
  3423. BX0 -X0*X1
  3424. SA1 FCEF CHECK TAPE TYPE
  3425. ZR X1,FCE7 IF *MT*
  3426. SX0 X0+1 ADJUST FOR DUAL 800-BPI TABLE ENTRIES
  3427. FCE7 SX2 X1-3
  3428. NZ X2,FCE7.1 IF NOT *AT*
  3429. SX0 X0+1 ADJUST FOR DUAL 38000-CPI TABLE ENTRIES
  3430. FCE7.1 SA2 X0+FCEM
  3431. BX6 X2
  3432. SB3 DNPS
  3433. RJ SCB SET CHARACTERS IN BUFFER
  3434. EQ FCEX RETURN
  3435.  
  3436. FCEB CON 10H
  3437. FCED BSS 1 LINE NUMBER
  3438. FCEF BSSZ 1 TAPE TYPE
  3439. FCEG CON 9999D
  3440. FCEH CON 1L* ACCESS COUNT OVERFLOW FLAG
  3441.  
  3442. * HEADER LINES.
  3443.  
  3444. FCEY DATA 40H FILE-NAME PASSWORD CT MD A
  3445. DATA C*CNT CREATION ACCESS LAST MOD*
  3446. FCEU DATA 30H LOGICAL/PHYSICAL LB TT
  3447. DATA C*F DN CV AC DATE/TIME DATE/TIME DATE/TIME*
  3448. FCEV DATA 30H QN
  3449. DATA C*SN SET ID*
  3450.  
  3451. FCEZ DATA 40H FILE-NAME CT MD A
  3452. DATA C*CNT CREATION ACCESS LAST MOD*
  3453. FCES DATA 30H LOGICAL/PHYSICAL LB TT
  3454. DATA C*F DN CV AC DATE/TIME DATE/TIME DATE/TIME*
  3455. FCET DATA 30H QN
  3456. DATA C*SN SET ID*
  3457.  
  3458.  
  3459. * FIELD EQUIVALENCED CODES
  3460.  
  3461.  
  3462.  
  3463. FCEI BSS 0 FILE TYPES
  3464. LOC 0
  3465. CON 2LPU
  3466. CON 2LPR
  3467. CON 2LSP
  3468. LOC *O
  3469.  
  3470. FCEJ BSS 0 PERMISSION MODES
  3471. LOC 0
  3472. CON 2LRE
  3473. CON 2LWR
  3474. CON 2LNU
  3475. LOC *O
  3476.  
  3477. FCEK BSS 0 TAPE TYPES
  3478. LOC 0
  3479. CON 2LMT SEVEN TRACK TAPE
  3480. CON 2LCT CARTRIDGE TAPE
  3481. CON 2LNT NINE TRACK TAPE
  3482. CON 2LAT ACS CARTRIDGE TAPE
  3483. LOC *O
  3484.  
  3485. FCEL BSS 0 DATA FORMATS
  3486. LOC 0
  3487. CON 2LI INTERNAL
  3488. CON 2LSI SYSTEM INTERNAL
  3489. CON 2LF FOREIGN
  3490. CON 2LS STRANGER
  3491. CON 2LSL LONG STRANGER
  3492. CON 2LLI LONG BLOCK INTERNAL
  3493. LOC *O
  3494.  
  3495. FCEM BSS 0 TAPE DENSITIES
  3496. LOC 0
  3497. CON 0
  3498. CON 2LLO 200-BPI SEVEN TRACK TAPE
  3499. CON 2LHI 556-BPI SEVEN TRACK TAPE
  3500. CON 2LHY 800-BPI SEVEN TRACK TAPE
  3501. CON 2LHD 800-CPI NINE TRACK TAPE
  3502. CON 2LPE 1600-CPI NINE TRACK TAPE
  3503. CON 2LGE 6250-CPI NINE TRACK TAPE
  3504. CON 2LCE 38000-CPI CARTRIDGE TAPE
  3505. CON 2LAE 38000-CPI ACS CARTRIDGE TAPE
  3506. LOC *O
  3507.  
  3508. FCEN BSS 0 CONVERSION MODE
  3509. LOC 0
  3510. CON 0
  3511. CON 2L BCD CONVERSION (7 TRACK)
  3512. CON 2LAS ASCII
  3513. CON 2LEB EBCDIC
  3514. LOC *O
  3515.  
  3516. FCEO BSS 0 ALTERNATE USER AUDIT ATTRIBUTE
  3517. LOC 0
  3518. CON 1LN NOT AUDITABLE BY ALTERNATE USER
  3519. CON 1LY AUDITABLE BY ALTERNATE USER
  3520. LOC *O
  3521.  
  3522. FCEP BSS 0 LABEL STATUS
  3523. LOC 0
  3524. CON 2LKU UNLABELED
  3525. CON 2LNS NON-STANDARD LABEL
  3526. CON 2LKL LABELED
  3527. LOC *O
  3528.  
  3529. FCEQ CON 10HNON-SYM
  3530. FCER CON 1L*
  3531.  
  3532.  
  3533.  
  3534. * LINE DEFINITION TABLE.
  3535. * THE CHARACTER FORMAT OF THE OUTPUT BUFFER IS DEFINED HERE.
  3536.  
  3537. LINE1 EQU 0 STARTING CHARACTER POSITION
  3538. NMPS CFORM LINE1+1,4 NUMBER
  3539. FNPS CFORM LINE1+6,10 FILE NAME
  3540. F2PS CFORM LINE1+16,7 FILE NAME
  3541. PWPS CFORM LINE1+24,7 PASSWORD
  3542. FTPS CFORM LINE1+33,2 FILE CATEGORY
  3543. FPPS CFORM LINE1+36,2 PERMISSION MODE
  3544. ACPS CFORM LINE1+39,4 ACCESS COUNT
  3545. AFPS CFORM LINE1+43,1 ACCESS COUNT FLAG
  3546. CDPS CFORM LINE1+43,9 CREATION DATE
  3547. ADPS CFORM LINE1+53,9 ACCESS DATE
  3548. MDPS CFORM LINE1+63,9 MODIFY DATE
  3549.  
  3550. LINE2 EQU NWRD*10 STARTING CHARACTER POSITION
  3551. PNPS CFORM LINE2+6,10 PHYSICAL FILE NAME
  3552. P2PS CFORM LINE2+16,7 PHYSICAL FILE NAME
  3553. LBPS CFORM LINE2+24,2 LABEL STATUS
  3554. TYPS CFORM LINE2+27,2 TAPE TYPE
  3555. DFPS CFORM LINE2+30,2 DATA FORMAT
  3556. DNPS CFORM LINE2+33,2 DENSITY
  3557. CVPS CFORM LINE2+36,2 CONVERSION MODE
  3558. AUPS CFORM LINE2+39,1 ALTERNATE USER AUDITABILITY
  3559. CTPS CFORM LINE2+43,9 CREATION TIME
  3560. ATPS CFORM LINE2+53,9 ACCESS TIME
  3561. MTPS CFORM LINE2+63,9 MODIFY TIME
  3562.  
  3563. LINE3 EQU NWRD*10*2 STARTING CHARACTER POSITION
  3564. QNPS CFORM LINE3+22,4 SEQUENCE NUMBER
  3565. SNPS CFORM LINE3+28,4 SECTION NUMBER
  3566. SIPS CFORM LINE3+36,6 SET IDENTIFIER
  3567. GAL SPACE 4,25
  3568. ** GAL - GENERATE ADMIT LIST.
  3569. *
  3570. * *GAL* POSITIONS THE USERNAMES IN *LBUF* FOR THE
  3571. * SHORT ADMIT LIST OPTION. *LBUF* IS THEN WRITTEN.
  3572. *
  3573. * ENTRY (CBUF) = ADMIT ENTRY.
  3574. *
  3575. * EXIT THE USERNAME IS IN THE CORRECT POSITION.
  3576. * *LBUF* IS WRITTEN IF LINE IS FULL.
  3577. *
  3578. * USES A - 1, 5, 6.
  3579. * B - 2.
  3580. * X - 0, 1, 2, 5, 6.
  3581. *
  3582. * CALLS AEN, ALN, SFN.
  3583. *
  3584. * MACRO WRITEC.
  3585.  
  3586. GAL SUBR ENTRY/EXIT
  3587. SA5 GALA CHECK LINE FILE COUNT
  3588. SX2 7
  3589. IX2 X2-X5
  3590. NG X2,GAL1 IF FIRST ENTRY
  3591. NZ X2,GAL2 IF NOT END OF LINE
  3592. WRITEC O,LBUF
  3593. GAL1 SB2 B1 ADVANCE LINE NUMBER BY 1
  3594. RJ ALN ADVANCE LINE NUMBER
  3595. SX5 B0 RESET LINE COUNT
  3596. GAL2 RJ AEN ADVANCE ENTRY NUMBER
  3597. SA1 CBUF+AEUN PICK ENTRY
  3598. MX0 42
  3599. BX1 X0*X1
  3600. ZR X1,GALX IF NO NAME
  3601. RJ SFN SPACE FILL NAME
  3602. LX6 48
  3603. SA1 CBUF+AEAC CHECK FOR EXPLICIT USER
  3604. MX0 4
  3605. LX0 40
  3606. BX1 X0*X1
  3607. ZR X1,GAL3 IF IMPLICIT USER
  3608. MX0 54
  3609. BX6 X0*X6
  3610. SA1 GALB
  3611. BX6 X1+X6
  3612. GAL3 SA6 LBUF+X5
  3613. SX6 X5+B1 ADVANCE LINE FILE COUNT
  3614. SA6 GALA
  3615. EQ GALX RETURN
  3616.  
  3617. GALA CON 8 LINE POSITION
  3618.  
  3619. GALB CON 1R*
  3620. GSL SPACE 4,25
  3621. ** GSL - GENERATE SHORT LIST.
  3622. *
  3623. * *GSL* POSITIONS THE 17 CHARACTER FILENAMES IN
  3624. * *LBUF* FOR THE SHORT LIST OPTION. *LBUF* IS
  3625. * WRITTEN WHEN THE LINE IS FULL.
  3626. *
  3627. * ENTRY (CBUF) = CATALOG ENTRY
  3628. *
  3629. * EXIT *LBUF* IS WRITTEN WHEN LINE IS FULL.
  3630. *
  3631. * USES A - 1, 2, 3, 5, 6.
  3632. * B - 2.
  3633. * X - 0, 1, 2, 3, 5, 6.
  3634. *
  3635. * CALLS AEN, ALN, SFN.
  3636. *
  3637. * MACROS WRITEC, XFER.
  3638.  
  3639.  
  3640. GSL SUBR ENTRY/EXIT
  3641. SA5 GSLA CHECK LINE FILE COUNT
  3642. SX2 6
  3643. IX2 X2-X5
  3644. NG X2,GSL1 IF FIRST ENTRY
  3645. NZ X2,GSL2 IF NOT END OF LINE
  3646. WRITEC O,LBUF
  3647. GSL1 SB2 B1 ADVANCE LINE NUMBER BY 1
  3648. RJ ALN ADVANCE LINE NUMBER
  3649. SX5 B0 RESET LINE COUNT
  3650. GSL2 RJ AEN ADVANCE ENTRY NUMBER
  3651. SA1 CBUF PICK ENTRY
  3652. ZR X1,GSLX IF NO NAME
  3653. BX6 X1
  3654. SA6 GSLB
  3655. SX2 X5+B1
  3656. SA1 CBUF+B1
  3657. BX6 X1
  3658. SA6 GSLB+B1
  3659. SX6 X2+B1 ADVANCE LINE FILE COUNT
  3660. SA6 GSLA
  3661. XFER GSLB,LBUF+X5,0,2,18,18
  3662. SA2 GSLA
  3663. SX2 X2-2
  3664. SA3 LBUF+X2
  3665. MX0 6
  3666. BX3 -X0*X3
  3667. SA1 BLNK
  3668. BX6 X1+X3
  3669. SA6 A3
  3670. SA1 GSLB+B1 CHECK FOR SPECIAL CONDITION
  3671. MX0 54
  3672. BX0 -X0*X1
  3673. NZ X0,GSL3 IF SPECIAL CONDITION
  3674. SA1 GSLC
  3675. LX1 54
  3676. MX0 6
  3677. LX0 54
  3678. SA3 LBUF+X2
  3679. BX3 -X0*X3
  3680. BX6 X3+X1
  3681. SA6 A3
  3682. EQ GSLX RETURN
  3683.  
  3684. GSL3 SA1 BLNK
  3685. LX1 54
  3686. MX0 6
  3687. LX0 54
  3688. SA3 LBUF+X2
  3689. BX3 -X0*X3
  3690. BX6 X3+X1
  3691. SA6 A3
  3692. EQ GSLX EXIT
  3693.  
  3694. GSLA CON 8 LINE POSITION
  3695. GSLB BSSZ 2 FILE IDENTIFIER STORAGE
  3696. GSLC CON 1L* SPECIAL CONDITION FLAG
  3697. HDR SPACE 4,15
  3698. ** HDR - GENERATES HEADERS.
  3699. *
  3700. * ENTRY (CODE) = CODE OF LISTING.
  3701. *
  3702. * EXIT HEADER LINE PLACED IN OUTPUT BUFFER.
  3703. *
  3704. * USES A - 1, 6.
  3705. * B - NONE.
  3706. * X - 0, 1, 6.
  3707. *
  3708. * CALLS NONE.
  3709. *
  3710. * MACRO WRITEC.
  3711.  
  3712.  
  3713. HDR SUBR ENTRY/EXIT
  3714. SA1 CODE INDEX INTO HEADER POINTER TABLE
  3715. SA1 X1+HDRB
  3716. BX0 X0-X0 INITIALIZE FOR LINE COUNT
  3717. BX6 X1
  3718. SA6 HDRA SET INDEX BASE OF HEADER MESSAGES FOR MODE
  3719.  
  3720. * LOOP PRINTING HEADER MESSAGE LINES.
  3721.  
  3722. HDR1 SA1 HDRA EXAMINE CURRENT MESSAGE POINTER
  3723. SA1 X1
  3724. ZR X1,HDR2 IF END OF HEADER MESSAGES
  3725. SX6 A1+B1 SET NEXT MESSAGE POINTER
  3726. SA6 HDRA
  3727. SX0 X0+B1 INCREMENT LINE COUNT
  3728. WRITEC O,X1
  3729. EQ HDR1 CONTINUE LOOP
  3730.  
  3731. * COMPLETE HEADER PROCESSING.
  3732.  
  3733. HDR2 WRITEC O,BLNK
  3734. WRITEC O,BLNK
  3735. SA1 LINE INCREMENT LINE COUNT
  3736. IX6 X1+X0
  3737. SX6 X6+2
  3738. SA6 A1
  3739. EQ HDRX RETURN
  3740.  
  3741. * HEADER MESSAGE BASE POINTERS.
  3742.  
  3743. HDRA CON 0
  3744. HDRB CON HDRC,HDRD,HDRE,HDRF,HDRG,HDRH
  3745.  
  3746. * HEADER MESSAGE POINTERS.
  3747.  
  3748. HDRC CON HDRI SHORT FILE LIST
  3749. CON 0
  3750.  
  3751. HDRD CON FCEY FULL FILE LIST
  3752. CON FCEU
  3753. CON 0
  3754. CON 0
  3755.  
  3756. HDRE CON HDRI SHORT ALTERNATE CATALOG
  3757. CON 0
  3758.  
  3759. HDRF CON FCEZ FULL ALTERNATE CATALOG
  3760. CON FCES
  3761. CON 0
  3762. CON 0
  3763.  
  3764. HDRG CON HDRJ SHORT ADMIT ENTRIES
  3765. CON 0
  3766.  
  3767. HDRH CON HDRK FULL ADMIT ENTRIES
  3768. CON 0
  3769.  
  3770. ** HEADERS
  3771.  
  3772. HDRI DATA C* TAPE FILE NAME(S)*
  3773.  
  3774.  
  3775. HDRJ DATA C* USER NAME(S)*
  3776.  
  3777. HDRK DATA C* USER NAME MODE ACCESSES DATE TIME*
  3778. CON 0
  3779. IDF SPACE 4,15
  3780. ** IDF - ISSUE DAYFILE MESSAGE.
  3781. *
  3782. * ENTRY (CCDR) COMMAND IMAGE.
  3783. *
  3784. * EXIT DAYFILE MESSAGE ISSUED.
  3785. *
  3786. * USES A - 1, 4, 5.
  3787. * B - 2, 6.
  3788. * X - 0, 1, 2, 4, 5.
  3789. *
  3790. * CALLS RSP.
  3791. *
  3792. * MACROS MESSAGE, MOVE.
  3793.  
  3794.  
  3795. IDF SUBR ENTRY/EXIT
  3796. MOVE 8,CCDR,IDFA
  3797. SA4 RSP1$ FWA ARGUMENT TABLE
  3798. SB6 RSP2$ FWA KEYWORD/POSITION TABLE
  3799. SA5 IDFA FWA OF RELOCATED COMMAND
  3800. SB2 1R, SKIP TO *,*
  3801. RJ RSP REMOVE SECURE PARAMETERS
  3802. MESSAGE IDFA,0,R ISSUE COMMAND TO DAYFILE
  3803. SA1 JOPR
  3804. LX1 -24
  3805. MX0 -12
  3806. BX1 -X0*X1
  3807. SX2 X1-IAOT
  3808. NZ X2,IDFX IF NOT AN INTERACTIVE JOB
  3809. MESSAGE IDFB,1 CLEAR LINE 1 OF CPA
  3810. EQ IDFX RETURN
  3811.  
  3812. IDFA BSS 8 SECURE PARAMETER BUFFER
  3813. IDFB CON 0 ZERO WORD
  3814. MCS SPACE 4,25
  3815. ** MCS - MOVE CHARACTER STRING.
  3816. *
  3817. * ENTRY (X1) = FIRST DIRECTIVE.
  3818. * (A1) = LOCATION OF FIRST DIRECTIVE.
  3819. *
  3820. * THE CHARACTER STRING TO BE MOVED IS SPECIFIED VIA A
  3821. * DIRECTIVE. THE CONTENT OF A DIRECTIVE HAS THE FOLLOWING
  3822. * FORMAT:
  3823. *
  3824. * BITS 59 - 48 - N
  3825. * BITS 47 - 30 - INPUT WORD LOCATION
  3826. * BITS 29 - 24 - INPUT CHARACTER POSITION (1,2,...,10)
  3827. * BITS 23 - 18 - OUTPUT CHARACTER POSITION (1,2,...,63)
  3828. * BITS 17 - 0 - OUTPUT WORD LOCATION
  3829. *
  3830. * ADDITIONAL CHARACTER STRINGS MAY BE MOVED BY PROVIDING
  3831. * ADDITIONAL DIRECTIVES. A ZERO-WORD TERMINATES THE LIST
  3832. * OF DIRECTIVES. IF THE INDICATED OUTPUT CHARACTER
  3833. * INDEX IS GREATER THAN 10 THE OUTPUT WORD LOCATION
  3834. * IS AUTOMATICALLY ADJUSTED.
  3835. *
  3836. * EXIT SPECIFIED CHARACTER STRING IS MOVED.
  3837. *
  3838. * USES A - 1, 2, 3, 6.
  3839. * B - 1, 2, 3, 4, 5, 6, 7.
  3840. * X - 0, 1, 2, 3, 4, 6, 7.
  3841.  
  3842.  
  3843. MCS SUBR ENTRY/EXIT
  3844. MX0 -6 7777 7777 7777 7777 7700
  3845. MX7 -18 7777 7777 7777 7700 0000
  3846. SB1 1
  3847. MCS1 SX3 6
  3848. SB2 60
  3849. ZR X1,MCS IF END OF DIRECTIVE LIST
  3850. SB7 X1 SET B7 = DESTINATION WORD LOCATION
  3851. AX1 18
  3852. BX2 -X0*X1
  3853. IX2 X2*X3
  3854. SB5 X2
  3855. MCS2 SB5 B5-B2 ADJUST DESTINATION CHARACTER POSITION
  3856. SB7 B7+B1
  3857. NG B5,MCS3 IF ADJUSTED
  3858. ZR B5,MCS3 IF ADJUSTED
  3859. EQ MCS2 CONTINUE
  3860.  
  3861. MCS3 SB5 B5+B2
  3862. SB7 B7-B1
  3863. SB5 B2-B5 SET B5 = DESTINATION CHARACTER POSITION
  3864. AX1 6
  3865. BX2 -X0*X1
  3866. IX2 X2*X3
  3867. SB4 X2 SET B4 = SOURCE CHARACTER POSITION
  3868. AX1 6
  3869. SB6 X1 SET B6 = SOURCE WORD LOCATION
  3870. AX1 18
  3871. MX7 60-12
  3872. BX2 -X7*X1
  3873. SB3 X2+B1 SET B3 = N+1
  3874. SA1 A1+B1 GET NEXT MOVE DIRECTIVE
  3875. MCS4 SB3 B3-B1 DECREMENT N
  3876. ZR B3,MCS1 IF N=0 GET NEXT MOVE DIRECTIVE
  3877. SA2 B6 GET SOURCE WORD
  3878. LX2 X2,B4 POSITION CHARACTER TO LOW ORDER
  3879. BX2 -X0*X2 EXTRACT CHARACTER
  3880. SB4 B4+6 INCREMENT SOURCE CHARACTER POSITION
  3881. SB2 B4-66
  3882. NZ B2,MCS5 IF SAME WORD
  3883. SB4 6 RESET SOURCE CHARACTER POSITION
  3884. SB6 B6+B1 INCREMENT SOURCE WORD LOCATION
  3885. MCS5 SA3 B7 GET DESTINATION WORD
  3886. LX2 X2,B5 POSITION NEW CHARACTER
  3887. LX4 X0,B5 POSITION MASK
  3888. BX3 X4*X3 ERASE OLD CHARACTER
  3889. BX6 X2+X3 INSERT NEW CHARACTER
  3890. SA6 B7 STORE DESTINATION WORD
  3891. SB5 B5-6 DECREMENT DESTINATION CHARACTER POSITION
  3892. PL B5,MCS4 IF SAME WORD
  3893. SB5 54 RESET DESTINATION CHARACTER POSITION
  3894. SB7 B7+B1 INCREMENT DESTINATION WORD LOCATION
  3895. EQ MCS4 CONTINUE MOVE
  3896. PCK SPACE 4,25
  3897. ** PCK - PACK FILE IDENTIFIER (17 CHARACTERS).
  3898. *
  3899. * PCK PICKS UP THE FIRST WORD OF THE FILE IDENTIFIER FROM
  3900. * THE *USB* TABLE. THE FIRST CHARACTER POSITION OF THIS
  3901. * WORD IS STORED IN SAVE. PCK STORES THE TWO WORD FILE
  3902. * IDENTIFIER IN THE STORAGE AREA SPECIFIED BY A5.
  3903. *
  3904. * ENTRY SAVE- FIRST CHARACTER POSITION OF FILENAM.
  3905. * B3 - CURRENT EMPTY POSITION OF TFIN.
  3906. * X6 - LAST WORD OF FILENAME AS RETURNED FROM *POP*.
  3907. * A5 - ADDRESS OF STORAGE AREA
  3908. *
  3909. * EXIT B3 IS INCREMENTED BY ONE WORD AND THE TWO-WORD
  3910. * FILENAME HAS BEEN STORED.
  3911. *
  3912. * USES A - 1, 3, 4, 6, 7.
  3913. * B - 2, 3, 4.
  3914. * X - 1, 3, 4, 6, 7.
  3915. *
  3916. * CALLS SFN.
  3917.  
  3918. PCK5 SA1 PCKB
  3919.  
  3920. PCK SUBR ENTRY/EXIT
  3921. BX7 X1 SAVE DELIMITER
  3922. SA7 PCKB
  3923. GT B5,B1,ERR IF FILENAME .GT. 2 WORDS
  3924. NZ X6,PCK1 IF FILENAME .NE. 20 CHARACTERS
  3925. NZ B5,ERR IF FILENAME .EQ. 20 CHARACTERS
  3926. PCK1 SB2 54D
  3927. BX7 X7-X7
  3928. SB4 B0
  3929. SA4 SAVE
  3930. SA3 PCKD CHECK FOR LITERAL
  3931. SA1 X4
  3932. BX3 X3-X1
  3933. NZ X3,PCK2 IF NOT LITERAL
  3934. SX4 X4+1
  3935. PCK2 ZR X6,PCK3 IF FILENAME .GE. 10 CHARACTERS
  3936. ZR B5,PCK4 IF FILENAME .LT. 10 CHARACTERS
  3937. PCK3 SA3 X4+B4
  3938. LX3 B2
  3939. BX7 X3+X7
  3940. SB2 B2-6
  3941. SB4 B4+B1
  3942. NZ B2,PCK3 IF 10 CHARACTERS NOT YET PACKED
  3943. SA3 X4+B4
  3944. BX7 X3+X7
  3945. SA7 A5+B3
  3946. SB3 B3+B1
  3947. MX0 42
  3948. BX3 -X0*X6
  3949. NZ X3,ERR8
  3950. BX1 X6
  3951. RJ SFN SPACE FILL NAME
  3952. SA6 A5+B3
  3953. EQ PCK5 RESTORE DELIMITER WORD AND RETURN
  3954.  
  3955. PCK4 BX1 X6
  3956. RJ SFN SPACE FILL NAME
  3957. SA6 A5+B3
  3958. SB3 B3+B1
  3959. SA1 PCKA
  3960. BX6 X1
  3961. SA6 A5+B3
  3962. EQ PCK5 RESTORE DELIMITER WORD AND RETURN
  3963.  
  3964. PCKA CON 10L
  3965. PCKB CON 0 STORAGE FOR DELIMITER
  3966. PCKD CON 1R$ LITERAL DESIGNATOR
  3967. PVS SPACE 4,20
  3968. ** PVS - PAD VSN WITH CHARACTER *0*.
  3969. *
  3970. * ENTRY (X6) = LEFT JUSTIFIED UNPADDED VSN.
  3971. *
  3972. * EXIT (X6) = PADDED VSN. CHARACTER *0* INSERTED
  3973. * BEFORE FIRST NUMERIC CHARACTER UNTIL
  3974. * VSN IS SIX CHARACTERS LONG.
  3975. *
  3976. * USES A - 1, 3.
  3977. * B - 2, 3.
  3978. * X - 0, 1, 2, 3, 4, 6, 7.
  3979.  
  3980.  
  3981. PVS SUBR ENTRY/EXIT
  3982. SA3 =1L
  3983. MX0 6 GET LENGTH OF UNPADDED VSN
  3984. BX2 X6
  3985. SX4 B0
  3986. PVS1 BX1 X0*X6 CHECK FOR CHARACTER
  3987. BX7 X1-X3
  3988. ZR X7,PVS2 IF CHARACTER IS A BLANK
  3989. ZR X1,PVS2 IF END OF CHARACTERS
  3990. SX4 X4+B1
  3991. LX6 6
  3992. EQ PVS1 CONTINUE
  3993.  
  3994. PVS2 SX1 6 GET CORRECT NUMBER OF ZEROS
  3995. IX4 X1*X4
  3996. SB2 X4
  3997. SB3 B2-6 SET UP MASK
  3998. AX0 B3,X0
  3999. BX2 X0*X2
  4000. SA1 =36R000000
  4001. AX1 B2
  4002. SB3 60
  4003. MX0 -6
  4004. SX6 B0
  4005. PVS3 BX7 X2 SAVE END OF VSN
  4006. LX2 6 CHECK CHARACTER
  4007. BX3 -X0*X2
  4008. ZR X3,PVS4 IF END OF CHARACTERS
  4009. SX4 X3-1R0
  4010. PL X4,PVS4 IF NUMERIC CHARACTER
  4011. LX6 6 BUILD FIRST PART OF VSN
  4012. BX6 X6+X3
  4013. BX2 X0*X2
  4014. SB3 B3-6
  4015. EQ PVS3 CHECK NEXT CHARACTER
  4016.  
  4017. PVS4 SB2 B2-36 ADD ZEROS TO VSN
  4018. AX6 B2
  4019. BX6 X6+X1
  4020. BX6 X6+X7 ADD END OF VSN
  4021. SB3 B3+B2
  4022. LX6 B3
  4023. EQ PVSX RETURN
  4024. PVT SPACE 4,25
  4025. ** PVT - PROCESS *VSN* OR *TFN* LIST.
  4026. *
  4027. * ENTRY B6 - NEXT CHARACTER POSITION OF *USB* BUFFER
  4028. *
  4029. * EXIT VSN(S) OR TFN(S) ARE STORED IN *TFIN*.
  4030. *
  4031. * USES A - 3, 5, 6.
  4032. * B - 3, 7.
  4033. * X - 3, 5, 6.
  4034. *
  4035. * CALLS PCK, POP.
  4036. *
  4037. PVT SUBR ENTRY/EXIT
  4038. RJ POP PICK OUT NEXT WORD
  4039. NG B5,ERR IF ERROR ENCOUNTERED
  4040. PVT1 SA3 INDX
  4041. SB3 X3
  4042. SB7 TFINL
  4043. EQ B3,B7,ERR9 EXCEEDED FILENAME LIMIT
  4044. SA5 TFIN
  4045. RJ PCK STORE FILENAME
  4046. SX6 B3+B1
  4047. SA6 INDX
  4048. NG X2,PVTX IF NO MORE ARGUMENTS
  4049. SB3 X1-1R, CHECK FOR COMMAS
  4050. NZ B3,PVTX IF END OF FILE NAME LIST
  4051. SX6 B6
  4052. SA6 SAVE
  4053. RJ POP PICK OUT NEXT PARAMETER
  4054. NG B5,ERR8 IF ERROR ENCOUNTERED
  4055. EQ PVT1
  4056. PTP SPACE 4,25
  4057. ** PTP - PRINT TITLE PAGE.
  4058. *
  4059. * ENTRY (PAGE) = PAGE NUMBER
  4060. *
  4061. * EXIT TITLE PAGE PRINTED
  4062. * (LINE) RESET TO 2.
  4063. *
  4064. * USES A - 1, 6.
  4065. * B - 2.
  4066. * X - 0, 1, 6.
  4067. *
  4068. * CALLS CDD.
  4069. *
  4070. * MACROS CLOCK, DATE, WRITEC, WRITEH.
  4071.  
  4072.  
  4073. PTP SUBR ENTRY/EXIT
  4074. SA1 PAGE ADVANCE TO NEXT PAGE
  4075. SX1 X1+B1
  4076. BX6 X1
  4077. SA6 A1
  4078. RJ CDD CONVERT TO DECIMAL
  4079. MX0 48
  4080. BX6 -X0*X6
  4081. SA1 PTPG
  4082. BX1 X0*X1
  4083. BX6 X1+X6
  4084. SA6 PTPG
  4085. DATE PTPE
  4086. CLOCK PTPF
  4087. SB2 6 FOR TELEX ORIGIN JOBS
  4088. SA1 DTYP
  4089. ZR X1,PTP1 IF TERMINAL FILE
  4090. WRITEH O,PTPA,B1
  4091. SB2 7 FOR NON-TELEX ORIGIN JOBS
  4092. PTP1 WRITEH O,PTPB,B2+ WRITE TITLE LINE
  4093. SA1 PTPH WRITE SUB TITLE
  4094. WRITEC O,X1
  4095. SX6 3 RESET LINE NUMBER
  4096. SA6 LINE
  4097. EQ PTPX RETURN
  4098.  
  4099. PTPA CON 1H1
  4100. PTPB CON 10H CATALOG O
  4101. PTPC CON 0
  4102. PTPD CON 10H
  4103. CON 10H
  4104. PTPE CON 0
  4105. PTPF CON 0
  4106. PTPG DATA 8L PAGE
  4107. PTPH CON BLNK
  4108. PTPI CON 1H
  4109. CON 10HFILE NAME
  4110. PTPJ BSSZ 2
  4111.  
  4112. PTPK CON 1H
  4113. CON 10HALTERNATE
  4114. CON 10HCATALOG
  4115. PTPL CON 0
  4116. RQS SPACE 4,25
  4117. ** RQS - REQUEST STORAGE.
  4118. *
  4119. * ENTRY (X1) = CURRENT BUFFER SIZE.
  4120. *
  4121. * EXIT (X1) = NEGATIVE IF NO MORE STORAGE AVAILABLE.
  4122. * (CFL) = NEW CURRENT FL.
  4123. * (CBS) = NEW CURRENT BUFFER SIZE.
  4124. *
  4125. * USES X - 1, 3, 6.
  4126. * A - 1, 3, 6.
  4127. *
  4128. * MACROS MEMORY.
  4129.  
  4130.  
  4131. RQS SUBR ENTRY/EXIT
  4132. SA3 MXBS GET MAXIMUM BUFFER SIZE
  4133. SX6 X1+FLIN ADD POSSIBLE INCREMENT
  4134. IX1 X3-X6
  4135. NG X1,RQSX IF NO MORE SPACE
  4136. SA3 CRFL SET POSSIBLE NEW FL
  4137. SX6 X3+FLIN
  4138. SA6 A3
  4139. LX6 30
  4140. SA6 RQSA
  4141. MEMORY CM,RQSA,R,,NA
  4142. SA3 RQSA
  4143. SA1 CRFL
  4144. AX3 30
  4145. IX1 X3-X1
  4146. NG X1,RQSX IF NO MORE ALLOCATED
  4147. SA1 CSBS UPDATE CURRENT SORT BUFFER SIZE
  4148. SX6 X1+FLIN
  4149. SA6 A1
  4150. EQ RQSX RETURN
  4151.  
  4152. RQSA CON 0 FL CONTROL WORD
  4153. SEC SPACE 4,15
  4154. ** SEC - SHORT LIST ERROR CHECK
  4155. *
  4156. * THIS ROUTINE CHECKS FOR OFF-SITE STATUS, NOT RESERVED
  4157. * STATUS, CATALOG IN RECOVERED MODE, AND CATALOG ERROR
  4158. * SET. THIS ROUTINE IS CALLED BY *SFL* AND *SSL* TO CHECK
  4159. * FOR THESE ERRORS.
  4160. *
  4161. * ENTRY SHORT LIST FLAG SET AND BUFFER FILLED.
  4162. *
  4163. * EXIT (X2) = (CBUF+CEST)
  4164. * (X5) = FILE NAME MASK.
  4165. *
  4166. * USES A - 2.
  4167. * X - 1.
  4168. *
  4169.  
  4170. SEC SUBR ENTRY/EXIT
  4171. MX5 60 PRESET SPECIAL CONDITION FLAG
  4172. SA2 CBUF+TCEL+1
  4173. MX1 -18
  4174. BX2 -X1*X2
  4175. SX1 TVVS CHECK SITE STATUS
  4176. BX1 X2*X1
  4177. ZR X1,SEC1 IF SITE NOT SET SKIP
  4178. MX5 -6
  4179. SA2 CBUF+CEST GET STATUS
  4180. EQ SECX RETURN
  4181.  
  4182. SEC1 SX1 RTVS CHECK RESERVE STATUS
  4183. BX1 X2*X1
  4184. NZ X1,SEC2 IF RESERVE SET SKIP
  4185. MX5 -6
  4186. SA2 CBUF+CEST GET STATUS
  4187. EQ SECX RETURN
  4188.  
  4189. SEC2 SA2 CBUF+CEST GET STATUS
  4190. SX1 2000B
  4191. BX1 X1*X2
  4192. ZR X1,SEC3 IF RECOVER NOT SET
  4193. MX5 -6
  4194. EQ SECX RETURN
  4195.  
  4196. SEC3 SX1 2
  4197. BX1 X1*X2
  4198. ZR X1,SECX IF ERROR NOT SET
  4199. MX5 -6
  4200. EQ SECX RETURN
  4201. SST SPACE 4,15
  4202. ** SST - SHELL SORT TABLE.
  4203. *
  4204. * SST SORTS A TABLE USING A SHELL SORTING TECHNIQUE.
  4205. * THE TABLE IS SORTED IN PLACE INTO ASCENDING ORDER.
  4206. * ALL ELEMENTS SHOULD BE OF THE SAME SIGN.
  4207. *
  4208. * ORIGIN OF TECHNIQUE IS CACM VOL 6 NUMBER 5 MAY 1963, P209.
  4209. * FIRST CODED BY R. HOTCHKISS IN *SORT1*.
  4210. * REVISED BY L. A. LIDDIARD.
  4211. * REVISED BY L. A. GILBERTSON, FOR 17 CHAR. WORD.
  4212. *
  4213. * ENTRY (B1) = 1.
  4214. * (B7) = ADDRESS OF TABLE TO BE SORTED.
  4215. * (X1) = NUMBER OF WORDS IN ARRAY.
  4216. *
  4217. * EXIT TABLE SORTED.
  4218. *
  4219. * USES X - 1, 2, 3, 4, 6, 7.
  4220. * B - 2, 3, 4, 5.
  4221. * A - 1, 2, 6, 7.
  4222. *
  4223. * CALLS NONE.
  4224.  
  4225.  
  4226. SST1 SA7 B5-B4 T(J+K) = S
  4227. BX7 X5
  4228. SA7 A7+B1
  4229. SB2 B2+2 I = I+2
  4230. EQ B2,B3,SST4 IF END OF TABLE
  4231. SST2 SA2 B2 S = T(I)
  4232. SA5 B2+B1
  4233. SB5 B2+B4 J = I-K
  4234. BX7 X2
  4235. SST3 SA1 B5 T(J)
  4236. IX3 X2-X1 COMPARE S AND T(J)
  4237. PL X3,SST1 IF ELEMENTS IN ORDER
  4238. BX6 X1 T(J+K) = T(J)
  4239. SB5 B5+B4 J = J-K
  4240. SA6 A1-B4
  4241. SA1 A1+B1
  4242. BX6 X1
  4243. SA6 A1-B4
  4244. GE B5,B7,SST3 IF J " FIRST
  4245. EQ SST1 MOVE ELEMENT
  4246.  
  4247. SST4 AX4 1 K = K/2
  4248. MX0 -1
  4249. BX4 -X0+X4
  4250. SX3 X4+1
  4251. NZ X3,SST5
  4252. SB4 B0
  4253. EQ SST6
  4254.  
  4255. SST5 SB4 X4 (B4) = -K
  4256. SST6 SB2 B7-B4 I = FIRST+K
  4257. NZ X4,SST2 IF K " 0
  4258.  
  4259. SST SUBR ENTRY/EXIT
  4260. SB3 B7+X1 (B3) = LAST+1
  4261. BX4 -X1
  4262. EQ SST4 ENTER SORT LOOP
  4263. SVM SPACE 4,25
  4264. *** SVM - SET VARIABLE MESSAGE
  4265. *
  4266. * SVM SETS THE VARIABLE AUDIT MESSAGE *XXX FOUND*.
  4267. *
  4268. * ENTRY ADTA = CONTAINS THE NAME, ZERO FILLED.
  4269. *
  4270. * EXIT ADTA CONTAINS THE MESSAGE.
  4271. *
  4272. * USES A - 1.
  4273. * X - 0, 1, 2.
  4274. * B - 2, 3, 4, 5.
  4275. *
  4276. * CALLS NONE.
  4277. *
  4278. * MACROS XFER.
  4279.  
  4280.  
  4281. SVM SUBR ENTRY/EXIT
  4282. MX0 -6
  4283. SB2 B0 WORD COUNT
  4284. SB3 B0 CHARACTER COUNT
  4285. SB4 10D MAXIMUM CHARACTERS
  4286. SA1 ADTA+B1
  4287. ZR X1,SVM1 IF NAME .LE. 10 CHARACTERS
  4288. SB2 B1
  4289. SVM1 SA1 ADTA+B2
  4290. BX2 -X0*X1
  4291. LX0 6
  4292. SB3 B3+B1
  4293. EQ B3,B4,SVM2 IF 10 CHARACTERS PROCESSED
  4294. ZR X2,SVM1 IF ZERO CHARACTER
  4295. NE B1,B3,SVM2 IF NOT AT A WORD BOUNDARY
  4296. SB2 B2+B1 INCREMENT WORD COUNT OFFSET
  4297. SB3 B4+B1 SET ZERO CHARACTER COUNT OFFSET
  4298. SVM2 SB5 B4-B3 SHIFT COUNT
  4299. SB5 B5+B1
  4300. XFER SVMF,ADTA+B2,0,B5,7,7
  4301. EQ SVMX
  4302.  
  4303. SVMF CON 7L FOUND.
  4304. XFR SPACE 4,25
  4305. *** XFR - TRANSFER/VALIDATE CHARACTER STRING.
  4306. *
  4307. * *XFR* PERFORMS A CHARACTER STRING TRANSFER AND VALIDATES
  4308. * EACH CHARACTER MOVED ACCORDING TO THE SETTINGS OF THE
  4309. * VALIDATION FLAGS OF THE SOURCE CONTROL WORD. THE TRANSFER
  4310. * CAN BEGIN AT ANY CHARACTER OF THE SOURCE AND OBJECT FIELDS
  4311. * AND WILL CONTINUE UNTIL *XCC* CHARACTERS OF THE SOURCE
  4312. * HAVE BEEN TRANSFERRED. THE DISPOSITION OF THE LAST OBJECT
  4313. * WORD IS SPACE FILLED IF *XCC* OF THE SOURCE FIELD IS
  4314. * LESS THEN *XCC* OF THE OBJECT FIELD. THE SOURCE CHARACTER
  4315. * STRING WILL BE TRUNCATED IF THE *XCC* OF THE OBJECT IS
  4316. * LESS THEN *XCC* OF THE SOURCE. THE ROUTINE WILL NOT
  4317. * DESTROY ANY OF THE EXISTING INFORMATION OUTSIDE OF THE
  4318. * DEFINED RANGE OF THE TRANSFER.
  4319. *
  4320. * ENTRY (X1) = SOURCE CONTROL WORD.
  4321. * (X2) = OBJECT CONTROL WORD.
  4322. *
  4323. * EXIT (X1) = 0 IF NO ERRORS.
  4324. * (X1) NOT = 0 IF ERRORS.
  4325. *
  4326. * CONTROL WORD FORMAT.
  4327. *
  4328. * VFD 12/0,18/FWA,3/FLG,9/BWP,9/BCP,9/XCC
  4329. *
  4330. * FWA FIRST WORD ADDRESS OF BUFFER.
  4331. * FLG VALIDATION FLAG.
  4332. * 2 VALIDATE NUMERIC CHARACTERS.
  4333. * 4 VALIDATE ALPHABETIC CHARACTERS.
  4334. * 6 VALIDATE ALPA/NUMERIC CHARACTERS.
  4335. * 7 NO VALIDATION.
  4336. * BWP BEGINNING WORD POSITION IN FWA.
  4337. * BCP BEGINNING CHARACTER POSITION IN BWP.
  4338. * XCC TRANSFER CHARACTER COUNT.
  4339. *
  4340. * USES A - 1, 2, 3, 4, 5, 6.
  4341. * X - ALL.
  4342. * B - ALL.
  4343. *
  4344.  
  4345.  
  4346. XFR12 SB4 B7-B4 REMAINING SHIFT COUNT
  4347. LX6 X2,B4 REALIGN LAST WORD
  4348. BX1 X6
  4349. RJ SFN SPACE FILL NAME
  4350. SA6 A2 STORE LAST OBJECT WORD
  4351. ZR X4,XFRX IF NO VALIDATION CHECK
  4352. NG X5,XFRX IF NOT DATA TRANSFER ERROR
  4353. SX1 B1+ SET ERROR FLAG
  4354.  
  4355. XFR SUBR ENTRY/EXIT
  4356. MX0 -9
  4357. BX6 -X0*X1 SOURCE CHARACTER COUNT
  4358. AX1 9
  4359. BX7 -X0*X2 OBJECT CHARACTER COUNT
  4360. SB2 X6 (B2) = SOURCE CHARACTER COUNT
  4361. AX2 9
  4362. IX6 X7-X6
  4363. SB3 X6
  4364. GT B3,XFR0 IF SOURCE < OR = OBJECT
  4365. SX6 B0
  4366. SB2 X7 SOURCE = OBJECT CHARACTER COUNT
  4367. XFR0 SA6 XFRA OBJECT OVERFLOW COUNT
  4368. BX3 -X0*X1
  4369. SB3 X3 (B3)= SOURCE BCP
  4370. AX1 9
  4371. BX3 -X0*X2
  4372. SB4 X3 (B4)= OBJECT BCP
  4373. AX2 9
  4374. BX3 -X0*X1
  4375. SB5 X3 (B5)= SOURCE BWP
  4376. AX1 9
  4377. BX3 -X0*X2
  4378. SB6 X3 (B6)= OBJECT BWP
  4379. BX3 X1
  4380. LX3 59-2
  4381. MX4 0
  4382. PL X3,XFR1 IF NOT ALPHANUMERIC FORMAT
  4383. SA4 XFRB GET ALPHANUMERIC VALIDATION WORD
  4384. XFR1 SA5 XFRC GET NUMERIC VALIDATION WORD.
  4385. LX3 59-58
  4386. PL X3,XFR2 IF NOT NUMERIC FORMAT
  4387. BX4 X4+X5
  4388. XFR2 LX3 59-57-59+58
  4389. PL X3,XFR3 IF NO SPECIAL CHARACTERS ALLOWED
  4390. MX4 60
  4391. XFR3 MX0 -18
  4392. AX1 3
  4393. BX1 -X0*X1
  4394. SA1 X1+B5 (A1)= SOURCE FWA
  4395. AX2 12
  4396. BX2 -X0*X2
  4397. SX6 6 CHARACTER COUNT MULTIPLIER
  4398. SA2 X2+B6 (A2)= OBJECT FWA
  4399. SX7 B3 SOURCE CHARACTER POSITION
  4400. IX7 X6*X7
  4401. SB3 X7 RESET (B3)
  4402. SX7 B4 OBJECT CHARACTER POSITION
  4403. IX7 X6*X7
  4404. SB4 X7 RESET (B4)
  4405. LX1 X1,B3 ALIGN TO FIRST CHARACTER(SOURCE)
  4406. LX2 X2,B4 ALIGN TO FIRST CHARACTER(OBJECT)
  4407. MX0 6 CHARACTER MASK
  4408. SB7 60 SHIFT LIMIT
  4409. XFR4 BX3 X0*X1 SAVE UPPER 6 BITS OF SOURCE
  4410. ZR X4,XFR5 IF NO VALIDATION CHECK
  4411. SB5 6
  4412. LX5 X3,B5
  4413. SB5 X5
  4414. LX5 X4,B5
  4415. PL X5,XFR9 IF INCORRECT CHARACTER
  4416. XFR5 BX2 -X0*X2 CLEAR UPPER 6 BITS OF OBJECT
  4417. BX2 X2+X3 MASK INTO OBJECT WORD
  4418. LX1 59-53
  4419. SB3 B3+6
  4420. EQ B3,B7,XFR7 IF SOURCE SHIFT LIMIT
  4421.  
  4422. XFR6 LX2 59-53
  4423. SB4 B4+6
  4424. SB2 B2-B1
  4425. ZR B2,XFR9 IF LAST CHARACTER TRANSFERRED
  4426. EQ B4,B7,XFR8 IF OBJECT SHIFT LIMIT
  4427. EQ XFR4 GET NEXT CHARACTER
  4428.  
  4429. XFR7 SA1 A1+B1 GET NEXT SOURCE WORD
  4430. SB3 B0 CLEAR SOURCE BCP
  4431. EQ XFR6 CHECK OBJECT SHIFT LIMIT
  4432.  
  4433. XFR8 BX6 X2
  4434. SA6 A2 STORE OBJECT WORD
  4435. SA2 A2+B1 GET NEXT OBJECT WORD
  4436. SB4 B0 CLEAR OBJECT BCP
  4437. EQ XFR4 GET NEXT CHARACTER
  4438.  
  4439. XFR9 SA3 XFRA CHECK FOR UNDERFLOW
  4440. SB2 X3+0 (B2) = UNDERFLOW COUNTER
  4441. SX3 1R
  4442. SX1 B0
  4443. LX3 59-5
  4444. XFR10 ZR B2,XFR12 IF LAST FILL CHARACTER
  4445. EQ B4,B7,XFR11 IF OBJECT SHIFT LIMIT
  4446. BX2 -X0*X2
  4447. SB4 B4+6
  4448. BX2 X2+X3 MASK IN SPACE
  4449. SB2 B2-B1
  4450. LX2 59-53
  4451. EQ XFR10 SPACE FILL NEXT CHARACTER
  4452.  
  4453. XFR11 BX6 X2
  4454. SA6 A2 STORE OBJECT WORD
  4455. SB4 B0 CLEAR OBJECT BCP
  4456. SA2 A2+B1 GET NEXT OBJECT WORD
  4457. EQ XFR10 GET NEXT CHARACTER
  4458.  
  4459.  
  4460. * *XFRB* AND *XFRC* ARE THE ALPHABETIC AND NUMERIC VALIDATION
  4461. * WORDS. EACH BIT SET CORRESPONDS TO THE NUMERICAL DISPLAY
  4462. * CODE VALUE FOR EACH VALID CHARACTER. EACH CHARACTER CAN BE
  4463. * TESTED BY SHIFTING THE VALIDATION WORD LEFT BY THE DISPLAY
  4464. * CODE VALUE AND TESTING FOR THE BIT BEING SET.
  4465. * *XFRB* HAS BEEN PRESET FOR A - Z AND *SPACE*.
  4466. * *XFRC* HAS BEEN PRESET FOR 0 - 9.
  4467.  
  4468. XFRA CON 0 OVERFLOW COUNTER
  4469. XFRB DATA 37777777700000040000B
  4470. XFRC DATA 00000000077760000000B
  4471.  
  4472. ZFD SPACE 4,15
  4473. ** ZFD - DISPLAY CODE ZERO FILL WORD. (EXTRACTED FROM PFTRACK)
  4474. *
  4475. * ENTRY (X6) = WORD WITH BINARY ZEROES.
  4476. *
  4477. * EXIT (X6) = WORD WITH REPLACED DISPLAY CODE ZEROES
  4478. *
  4479. * USES X - 0, 2, 3, 4, 5, 6.
  4480.  
  4481.  
  4482. ZFD SUBR ENTRY/EXIT
  4483. BX3 X6
  4484. SX2 12B
  4485. MX0 -6
  4486. ZFD1 BX5 -X0*X3
  4487. ZR X5,ZFD3 IF BINARY ZERO
  4488. LX3 54
  4489. ZFD2 SX2 X2-1 DECREMENT CHARACTER COUNT
  4490. NZ X2,ZFD1 IF NOT DONE WITH WORD
  4491. BX6 X3
  4492. EQ ZFDX RETURN
  4493.  
  4494. ZFD3 BX3 X0*X3
  4495. SX4 33B
  4496. BX3 X4+X3
  4497. LX3 54
  4498. EQ ZFD2 CONTINUE CONVERSION
  4499.  
  4500.  
  4501. SPACE 4
  4502. *CALL COMCARM
  4503. *CALL COMCCDD
  4504. *CALL COMCCIO
  4505. *CALL COMCCPM
  4506. *CALL COMCEDT
  4507. *CALL COMCMVE
  4508. *CALL COMCPOP
  4509. *CALL COMCRSP
  4510. *CALL COMCSCB
  4511. *CALL COMCSFN
  4512. *CALL COMCSNM
  4513. *CALL COMCSTF
  4514. *CALL COMCSYS
  4515. *CALL COMCUSB
  4516. *CALL COMCWTC
  4517. *CALL COMCWTH
  4518. *CALL COMCWTW
  4519. SPACE 4
  4520. ** BUFFERS.
  4521.  
  4522.  
  4523. USE LITERALS
  4524. LBUF EQU * OUTPUT LINE BUFFER
  4525. CBUF EQU LBUF+CHDR*NWRD CATALOG READ BUFFER
  4526. IBUF EQU CBUF+301D INPUT BUFFER
  4527. OBUF EQU IBUF+IBFL OUTPUT BUFFER
  4528. SBUF EQU OBUF+OBFL CATALOG SORT BUFFER
  4529. RFL= EQU SBUF+SBFL DEFAULT FL
  4530.  
  4531.  
  4532. PMSG BSS 0
  4533. DATA 10H"EM" PASSWO
  4534. DATA 10HRD:"NL" HHH
  4535. DATA 10HHHHHH"CR" I
  4536. DATA 10HIIIIIII"CR"
  4537. DATA 10H ########
  4538. DATA 10H"CR""CB""EL"''''
  4539. PMSGL EQU *-PMSG
  4540.  
  4541. END