Table of Contents

CATALOG

Table Of Contents

  • [00008] CATALOG - CATALOG FILE.
  • [00012] CATALOG FILES.
  • [00134] READW - REDEFINE READ WORDS MACRO TO USE CONTROL WORDS.
  • [00149] STORAGE ASSIGNMENT.
  • [00224] MAIN PROGRAM.
  • [00226] MAIN PROGRAM.
  • [00340] EOF - PROCESS END OF FILE.
  • [00405] LRS - LIST RECORD STATUS.
  • [00695] ABS - PROCESS ABS ENTRY POINTS.
  • [00766] CAP - PROCESS CAPSULE GROUP NAMES.
  • [00797] OPL - PROCESS OPL LIST.
  • [00881] RDA - READ DATA.
  • [00947] RDR - READ RECORD.
  • [01038] REL - PROCESS RELOCATABLE LIST.
  • [01106] TXT - PROCESS TEXT LIST.
  • [01206] ULB - PROCESS USER LIBRARY.
  • [01218] SUBROUTINES.
  • [01220] WOF - WRITE LINE TO OUTPUT.
  • [01292] PRS - PRESET PROGRAM.
  • [01403] CDT - CHECK DEVICE TYPE.

Source Code

CATALOG.txt
  1. IDENT CATALOG,FETS
  2. ABS
  3. ENTRY CATALOG
  4. ENTRY RFL=
  5. ENTRY SSM=
  6. SST
  7. SYSCOM B1 DEFINE (B1) = 1
  8. TITLE CATALOG - CATALOG FILE.
  9. *COMMENT CATALOG - CATALOG FILE.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11. SPACE 4
  12. *** CATALOG - CATALOG FILES.
  13. * G. R. MANSFIELD. 70/12/20.
  14. SPACE 4
  15. *** CATALOG LISTS PERTINENT INFORMATION ABOUT EACH RECORD
  16. * OF A BINARY MEDIUM.
  17. *
  18. * THIS INFORMATION INCLUDES -
  19. *
  20. * 1) THE RECORD NUMBER COUNTING FROM THE BEGINNING OF THE FILE.
  21. * 2) THE NAME FROM THE FIRST WORD OF THE RECORD OR THE SECOND
  22. * WORD OF THE *77* TABLE IF IT IS PRESENT.
  23. * 3) THE RECORD TYPE.
  24. * 4) LENGTH OF THE PARTICULAR RECORD ( EXCLUDING THE *77*
  25. * TABLE ).
  26. * 5) CHECKSUM OF THE RECORD, EXCLUDING *77* TABLE, IF PRESENT.
  27. * 6) CONTENTS OF THE *77* TABLE, IF ANY.
  28. * 7) OTHER PERTINENT INFORMATION, ACCORDING TO RECORD TYPE.
  29. *
  30. *
  31. * THE FOLLOWING RECORD TYPES ARE RECOGNIZED.
  32. *
  33. * TYPE DESCRIPTION
  34. *
  35. * TEXT UNIDENTIFIED AS ANY OTHER TYPE.
  36. * PP 6000, CYBER 72/73/74, CYBER 170 PP PROGRAM.
  37. * REL RELOCATABLE CENTRAL PROGRAM.
  38. * OVL ABSOLUTE OVERLAY PROGRAM, NO ENTRY POINTS DEFINED.
  39. * ULIB USER LIBRARY TYPE RECORD.
  40. * OPL MODIFY PROGRAM LIBRARY DECK RECORD.
  41. * OPLC MODIFY PROGRAM LIBRARY COMMON DECK RECORD.
  42. * OPLD MODIFY PROGRAM LIBRARY DIRECTORY.
  43. * ABS ABSOULTE OVERLAY PROGRAM, WITH ENTRY POINTS DEFINED.
  44. * PPU 7600, CYBER 76 TYPE PPU PROGRAM.
  45. * CAP FAST DYNAMIC LOAD CAPSULE.
  46. * PROC PROCEDURE TYPE RECORD.
  47. * PPL 16-BIT PP PROGRAM.
  48. *
  49. *
  50. * A RECORD OF *REL* FORMAT WILL HAVE THE ENTRY POINTS LISTED.
  51. *
  52. * A RECORD OF *TEXT* FORMAT WILL BE LISTED IN ITS ENTIRETY IF
  53. * THE *T* OPTION IS ENABLED AND IT IS A DEADSTART RECORD
  54. * (APRDECK, CMRDECK, EQPDECK, IPRDECK, OR LIBDECK).
  55. *
  56. * A RECORD OF *TEXT* FORMAT WILL HAVE ITS FIRST LINE LISTED IF
  57. * ITS NAME IS *OVERLAY*, REGARDLESS OF THE *T* OPTION.
  58. *
  59. * A RECORD OF *OPL* OR *OPLC* FORMAT WILL HAVE THE MODIFIERS
  60. * AND THEIR *YANK* STATUS LISTED. IF SELECTED THE
  61. * CHARACTER SET OF THE INDIVIDUAL OPL/OPLC WILL BE
  62. * LISTED IMMEDIATELY FOLLOWING THE RECORD TYPE.
  63. *
  64. * A RECORD OF *ULIB* FORMAT WILL SUPPRESS LISTING OF FOLLOWING
  65. * RECORDS IN *REL* FORMAT UNLESS -U- OPTION IS USED.
  66. SPACE 4
  67. *** CONTROL CARD CALL.
  68. *
  69. *
  70. * CATALOG (FNAME,P1,P2,...,PN)
  71. *
  72. * FNAME NAME OF FILE TO BE CATALOGED.
  73. *
  74. * *PN* ONE OF THE FOLLOWING -
  75. *
  76. * N CATALOG TO EOI.
  77. * N=0 CATALOG TO EMPTY FILE.
  78. * N=X CATALOG *X* FILES.
  79. *
  80. * L=LFN LIST OUTPUT ON FILE *LFN*.
  81. *
  82. * T SELECT DETAILED *TEXT* RECORD LIST.
  83. *
  84. * U SELECT DETAILED USER LIBRARY LIST.
  85. *
  86. * D DESELECT DETAILED LIST. THE DETAILED LIST IS
  87. * AUTOMATICALLY DESELECTED IF THE OUTPUT FILE IS
  88. * ASSIGNED TO A TERMINAL.
  89. *
  90. * R REWIND *FNAME* FILE BEFORE AND AFTER CATALOG.
  91. *
  92. * CS DE-SELECT CHARACTER SET LIST FOR OPL/OPLC RECORDS.
  93. *
  94. *
  95. * ASSUMED OPTIONS -
  96. *
  97. * OPT VALUE
  98. *
  99. * FNAME FILE.
  100. * N 1.
  101. * L OUTPUT.
  102. * T *NOT SELECTED*.
  103. * U *NOT SELECTED*.
  104. * D *NOT SELECTED*.
  105. * R *NOT SELECTED*.
  106. * CS *SELECTED*.
  107. SPACE 4,10
  108. *** DAYFILE MESSAGES.
  109. *
  110. *
  111. * * CATALOG ARGUMENT ERROR.* - THE CONTROL STATEMENT IS
  112. * SYNTACTICALLY INCORRECT.
  113. *
  114. * * CATALOG COMPLETE.* - INFORMATIVE MESSAGE INDICATING THAT
  115. * CATALOGING IS COMPLETE.
  116. *
  117. * * CATALOG FILE NAME CONFLICT.* - THE NAME OF THE FILE TO BE
  118. * CATALOGED AND THE NAME OF THE FILE TO RECEIVE OUTPUT ARE
  119. * THE SAME.
  120. SPACE 4
  121. **** ASSEMBLY CONSTANTS.
  122.  
  123.  
  124. FETODL EQU 16
  125. FBUFL EQU 30061B FILE BUFFER LENGTH
  126. OBUFL EQU 2001B OUTPUT BUFFER LENGTH
  127. ****
  128. SPACE 4,10
  129. ** SPECIAL ENTRY POINT.
  130.  
  131.  
  132. SSM= EQU 0 SUPPRESS DUMPS OF FIELD LENGTH
  133. READW SPACE 4
  134. ** READW - REDEFINE READ WORDS MACRO TO USE CONTROL WORDS.
  135.  
  136.  
  137. PURGMAC READW
  138.  
  139. READW MACRO F,S,N
  140. R= B6,S
  141. R= B7,N
  142. R= X2,F
  143. RJ RDA
  144. ENDM
  145. SPACE 4
  146. *CALL COMCCMD
  147. *CALL COMCMAC
  148. *CALL COMSSRT
  149. TITLE STORAGE ASSIGNMENT.
  150. ** FETS.
  151.  
  152.  
  153. ORG 110B
  154. FETS BSS 0
  155.  
  156. O BSS 0
  157. OUTPUT FILEC OBUF,OBUFL,FET=7,EPR
  158.  
  159. CON 0 WORDS REMAINING IN BLOCK (F)
  160. CON 0 EOR FLAG
  161. F BSS 0
  162. FILE FILEB FBUF,FBUFL,(FET=10)
  163. FETOD BSSZ FETODL
  164. SPACE 4
  165. * COMMON DATA.
  166.  
  167.  
  168. RW CON 0 REWIND FLAG
  169. CW CON 0 CONTROL WORD FLAG (1 = CONTROL WORDS)
  170. FC CON 0L1 FILE COUNT
  171. EF CON 0 EMPTY FILE FLAG
  172. NSFF CON 0 NONSTANDARD FILE FLAG
  173. RN CON 0 RECORD NUMBER
  174. FN CON 1 FILE NUMBER
  175. CS CON 0 CHECKSUM
  176. RL CON 0 RECORD LENGTH
  177. CON 0 ZERO RECORD SUBTOTAL
  178. CON 0 FILE LENGTH
  179. NM CON 0 RECORD NAME
  180. TY CON 0 RECORD TYPE
  181. UL CON 0 USER LIBRARY LIST FLAG
  182. LN CON 1 LIBRARY NUMBER
  183.  
  184. * LIST DATA.
  185.  
  186. SL CON 0 SHORT LIST FLAG
  187. LC CON 99999,0 LINE COUNT
  188. LL EQU LC+1 LINE LIMIT
  189. PD CON 0 PRINT DENSITY FORMAT CONTROL
  190. PN CON 1 PAGE NUMBER
  191. CSM CON 1 OPL CHARACTER SET LIST FLAG
  192. TF CON 0 TERMINAL FLAG
  193.  
  194. PGEJ DATA 1L1 PAGE EJECT
  195.  
  196. TITL DATA 1H1
  197. DATA 10HCATALOG OF
  198. DATA 1H
  199. DATA 4AFILE
  200. DATA 6A1
  201. DATA 10H
  202. TITLA DATA 10H
  203. DATE DATA 1H
  204. TIME DATA 1H
  205. DATA 4APAGE
  206. PAGE DATA 8L
  207. TITLL EQU *-TITL
  208.  
  209.  
  210. SBTL DATA 6AREC
  211. DATA 4HNAME
  212. DATA 5HTYPE
  213. DATA 6ALENGTH
  214. DATA 7ACKSUM
  215. DATA 7ADATE
  216. SBTLA DATA 8ACOMMENTS
  217. DATA 0
  218. DATA 2L
  219. SBTLL EQU *-SBTL
  220.  
  221. FLS CON 3 AUTO-FLUSH TABLE
  222. CON 0
  223. CON 0
  224. TITLE MAIN PROGRAM.
  225. CATALOG SPACE 4
  226. ** CATALOG - MAIN PROGRAM.
  227.  
  228.  
  229. CATALOG SB1 1 (B1) = 1
  230. RJ PRS PRESET PROGRAM
  231. WRITE O,* PRESET *CIO* FUNCTION
  232. SA3 TF
  233. WRITEW O,PD,X3 CONDITIONALLY WRITE FORMAT EFFECTOR
  234. SA1 RW
  235. ZR X1,CAT0.1 IF NO REWIND
  236. REWIND F
  237.  
  238. CAT0.1 SA1 CW
  239. ZR X1,CAT1.1 IF NOT CONTROL WORDS
  240. MX6 1 SET FIRST READ FLAG
  241. SA6 F-2
  242. READCW F,17B
  243. JP CAT1.2
  244.  
  245. CAT1 SA1 CW
  246. NZ X1,CAT1.2 IF CONTROL WORDS
  247. CAT1.1 READ F
  248. CAT1.2 BSS 0
  249. SA1 RN ADVANCE RECORD NUMBER
  250. SX6 X1+B1
  251. MX7 0 CLEAR LENGTH
  252. SA6 A1
  253. SA7 RL
  254. SA7 CS CLEAR CHECKSUM
  255. RJ RDR READ RECORD
  256. SA4 RL ADVANCE SUBTOTAL
  257. NZ X4,CAT1.3 IF NONZERO RECORD
  258. NG X1,CAT3 IF EOF
  259. CAT1.3 SA2 A4+B1
  260. SA3 A2+B1 ADVANCE FILE TOTAL
  261. IX6 X2+X4
  262. SA6 A2
  263. IX7 X3+X4
  264. SA7 A3+
  265. BX6 X6-X6
  266. SA2 TY CHECK TYPE
  267. SB2 X2-ODRT
  268. SA1 ULBA
  269. NZ B2,CAT1.4 IF NOT *OPLD*
  270. SA6 ULBB CLEAR *SEARCHING FOR OPLD* FLAG
  271. ZR X1,CAT2 IF LISTING USER LIBRARY
  272. SA6 A1+ CLEAR USER LIBRARY FLAG
  273. EQ CAT1 READ NEXT RECORD
  274.  
  275. CAT1.4 NZ X1,CAT1 IF NO LIST OF USER LIBRARY SET
  276.  
  277. CAT2 RJ LRS LIST RECORD STATUS
  278. SA1 TY PROCESS OTHER LIST
  279. MX7 0 CLEAR EOF FLAG
  280. SB7 X1
  281. SA7 EF
  282. JP CATB+B7
  283.  
  284. CAT3 SX1 X1+B1
  285. BX5 -X1 PROCESS END OF FILE
  286. RJ EOF
  287. NZ X5,CAT5 IF EOI
  288. SA1 FC CHECK FILE COUNT
  289. NZ X1,CAT4 IF NOT EMPTY FILE REQUEST
  290. SA2 EF CHECK EOF
  291. NZ X2,CAT5 IF EMPTY FILE
  292. SX6 X2+B1 SET EOF FLAG
  293. SA6 A2
  294. JP CAT0.1
  295.  
  296. CAT4 SX2 1 DECREMENT FILE COUNT
  297. IX6 X1-X2
  298. SA6 A1
  299. NZ X6,CAT0.1 IF MORE FILES REQUESTED
  300.  
  301. CAT5 SA1 PN CHECK PAGE NUMBER
  302. LX1 59
  303. NG X1,CAT6 IF PAGE NUMBER EVEN
  304. WRITEC O,PGEJ PAGE EJECT
  305. CAT6 WRITER O
  306. SA1 RW
  307. ZR X1,CAT7 IF NO REWIND
  308. REWIND F
  309. CAT7 MESSAGE (=C* CATALOG COMPLETE.*)
  310. ENDRUN
  311.  
  312. CATA DATA 10HCATALOGING
  313. DATA 0
  314.  
  315. CATB BSS 0
  316. LOC 0
  317. EQ TXT TEXT
  318. EQ CAT1 PP
  319. EQ TXT UNDEFINED RECORD TYPE
  320. EQ REL REL
  321. EQ CAT1 OVL
  322. EQ ULB ULIB
  323. EQ OPL OPL
  324. EQ OPL OPLC
  325. EQ CAT1 OPLD
  326. EQ ABS ABS
  327. EQ CAT1 PPU
  328. EQ TXT UNDEFINED RECORD TYPE
  329. EQ TXT UNDEFINED RECORD TYPE
  330. EQ TXT UNDEFINED RECORD TYPE
  331. EQ CAP CAP
  332. EQ TXT UNDEFINED RECORD TYPE
  333. EQ TXT PROC
  334. EQ TXT UNDEFINED RECORD TYPE
  335. EQ TXT UNDEFINED RECORD TYPE
  336. EQ TXT UNDEFINED RECORD TYPE
  337. EQ CAT1 PPL
  338. LOC *O
  339. EOF SPACE 4
  340. ** EOF - PROCESS END OF FILE.
  341.  
  342.  
  343. EOF PS ENTRY/EXIT
  344. SA2 ULBB
  345. ZR X2,EOF0 IF *OPLD* FOUND
  346. BX6 X6-X6
  347. SA6 A2 CLEAR *SEARCHING FOR OPLD* FLAG
  348. SX1 EOFC LIST *OPLD MISSING* MESSAGE
  349. SA6 ULBA CLEAR USER LIBRARY FLAG
  350. RJ WOF
  351. EOF0 SA2 NSFF CHECK FOR NONSTANDARD FILE
  352. ZR X2,EOF0.1 IF NOT NONSTANDARD FILE
  353. BX6 X6-X6
  354. SX1 EOFB LIST *EOR MISSING* MESSAGE
  355. SA6 A2
  356. RJ WOF
  357. EOF0.1 SX1 =C* * LIST BLANK LINE
  358. RJ WOF
  359. ZR X5,EOF1 IF EOF
  360. SA1 =10H
  361. BX6 X1
  362. EQ EOF2
  363.  
  364. EOF1 SA1 RN CONVERT RECORD NUMBER
  365. RJ CDD
  366. EOF2 LX6 18
  367. SA6 SBUF
  368. SA1 X5+EOFA
  369. SA2 =6ASUM =
  370. BX6 X1
  371. LX7 X2
  372. SA6 A6+B1
  373. SA7 A6+B1
  374. SA1 RL+2 CONVERT TOTAL LENGTH
  375. RJ COD
  376. MX7 0
  377. SA6 A7+B1
  378. SA7 A6+B1
  379. SX1 SBUF
  380. RJ WOF
  381. SA1 FN ADVANCE FILE NUMBER
  382. SX6 99999 FORCE PAGE EJECT
  383. SX7 X1+B1
  384. SA6 LC
  385. SA7 A1
  386. SX1 X1+B1 CONVERT NUMBER
  387. RJ CDD
  388. LX6 5*6
  389. SX7 B0 CLEAR LENGTHS
  390. SA6 TITL+4
  391. SA7 RL+1
  392. SA7 A7+B1
  393. SX6 B1 RESET LIBRARY NUMBER
  394. SA7 RN CLEAR RECORD NUMBER
  395. SA6 LN
  396. EQ EOF RETURN
  397.  
  398.  
  399. EOFA DATA 10H* EOF *
  400. DATA 10H* EOI *
  401.  
  402. EOFB DATA C+ *EOR MISSING*+
  403. EOFC DATA C+ *OPLD MISSING*+
  404. LRS SPACE 4,20
  405. ** LRS - LIST RECORD STATUS.
  406. *
  407. * ENTRY (BUF) = FIRST BLOCK OF RECORD.
  408. * (NM) = RECORD NAME.
  409. * (TY) = RECORD TYPE.
  410. * (RN) = RECORD NUMBER.
  411. * (RL) = RECORD LENGTH.
  412. * (CS) = CHECK SUM.
  413. * (LN) = LIBRARY NUMBER.
  414. *
  415. * EXIT (LN) = (LN)+1 IF ZERO LENGTH RECORD ENCOUNTERED.
  416. *
  417. * USES X - ALL.
  418. * A - 1, 2, 3, 4, 5, 6, 7.
  419. * B - 3, 6, 7.
  420. *
  421. * CALLS CDD, COD, CPT, WOF, ZTB.
  422.  
  423.  
  424. LRS PS ENTRY/EXIT
  425. SA1 RN CONVERT RECORD NUMBER
  426. RJ CDD
  427. LX6 18
  428. SA6 SBUF
  429. SA1 RL CHECK RECORD LENGTH
  430. NZ X1,LRS1 IF NOT ZERO RECORD
  431.  
  432. * PROCESS ZERO LENGTH RECORD.
  433.  
  434. SA1 =4H(00) ENTER ZERO RECORD
  435. SA2 =6ASUM =
  436. BX6 X1
  437. LX7 X2
  438. SA6 A6+B1
  439. SA7 A6+B1
  440. SA1 RL+1 ENTER SUBTOTAL
  441. RJ COD
  442. SA6 A7+B1
  443. MX7 0 CLEAR SUBTOTAL
  444. SA7 A1
  445. SA2 =9ALIBRARY =
  446. SA1 LN INCREMENT LIBRARY NUMBER
  447. BX6 X2
  448. SX7 X1+B1
  449. SA6 A6+B1
  450. SA7 A1
  451. RJ CDD DISPLAY LIBRARY NUMBER
  452. LX6 6
  453. SA6 A6+B1
  454. BX7 X7-X7 TERMINATE LINE
  455. SA7 A6+B1
  456. SX1 SBUF
  457. RJ WOF
  458. SX1 =C* *
  459. RJ WOF
  460. EQ LRS RETURN
  461.  
  462. LRS1 SA1 NM SPACE FILL NAME
  463. RJ ZTB
  464. SA6 A6+B1
  465. SA1 TY SET TYPE
  466. SB7 X1
  467. SA2 LRSA+X1
  468. BX6 X2
  469. SA6 A6+B1
  470. SA1 RL CONVERT LENGTH
  471. RJ COD
  472. SA6 A6+B1
  473.  
  474. * PROCESS CHECKSUM.
  475.  
  476. SA2 CS FOLD CHECKSUM
  477. MX3 -12
  478. BX1 -X3*X2
  479. AX2 12
  480. BX6 -X3*X2
  481. IX1 X1+X6
  482. AX2 12
  483. BX6 -X3*X2
  484. IX1 X1+X6
  485. AX2 12
  486. BX6 -X3*X2
  487. IX1 X1+X6
  488. AX2 12
  489. BX6 -X3*X2
  490. IX1 X1+X6
  491. IX7 X1+X3
  492. BX4 -X3*X7
  493. SX1 X4+10000B
  494. RJ COD
  495. SX2 1R -1R1
  496. LX2 24
  497. IX6 X6+X2
  498. LX6 12
  499. SA6 A6+B1
  500.  
  501. * COPY 7700 TABLE.
  502.  
  503. SA1 BUF
  504. RJ CPT
  505. JP B7+LRSB PROCESS TYPE
  506.  
  507. LRS4 SA1 SL CHECK SHORT LIST FLAG
  508. ZR X1,LRS5 IF NOT SET
  509. SX6 B0+ TERMINATE LIST
  510. SA6 SBUF+6
  511. EQ LRS5.1 WRITE OUTPUT LINE
  512.  
  513. LRS5 SA2 SBUF+13 INSURE END OF LINE
  514. MX0 2*6
  515. BX6 X0*X2
  516. SA6 A2+
  517. LRS5.1 SX1 SBUF
  518. RJ WOF
  519. EQ LRS RETURN
  520.  
  521.  
  522. * PROCESS *OPL* AND *OPLC* RECORDS.
  523.  
  524. LRS5.2 SA1 CSM CHARACTER SET LIST MODE FLAG
  525. SA2 B7+LRSA SET RECORD TYPE
  526. SA4 =5R PRESET LIST
  527. ZR X1,LRS5.4 IF NO CHARACTER SET LIST SET
  528. SA3 BUF+16B CHECK OPL/OPLC CHARACTER SET
  529. MX7 -6
  530. BX4 -X7*X3 LOWER 6 BITS OF HEADER+16B
  531. SB3 X4-63B CHECK PL CHARACTER SET
  532. EQ B3,B1,LRS5.3 IF 64 CHARACTER SET
  533. SB3 0 SET 63 CHARACTER SET ORDINAL
  534. LRS5.3 AX3 5 EXTRACT ASCII FLAG * 2
  535. MX4 -6
  536. LX4 1
  537. BX3 -X4*X3
  538. SX3 X3+B3
  539. SA4 X3+LRSCS LIST RECORD STATUS (CHARACTER SET)
  540. LRS5.4 BX6 X2+X4
  541. SA6 SBUF+2 SET IN OUTPUT LINE
  542. * EQ LRS6
  543.  
  544. LRS6 SA1 LC CHECK LINE COUNT
  545. SX1 X1+2
  546. SA2 A1+B1 GET LINE LIMIT
  547. IX7 X1-X2
  548. NG X7,LRS4 IF ROOM FOR TWO LINES
  549. SX6 99999 FORCE EJECT
  550. SA6 A1
  551. EQ LRS4
  552.  
  553. * PROCESS PP LOAD ADDRESS.
  554.  
  555. LRS7 SA2 BUF+B3 FIRST WORD OF PROGRAM
  556. SX3 10000B
  557. AX2 24 SET LOAD ADDRESS
  558. SX4 X2
  559. SA5 LRSA+B7
  560. ZR X4,LRS8 IF LOCATION FREE
  561. SX4 X4+5
  562. LRS8 IX1 X4+X3 CONVERT LOAD ADDRESS
  563. MX0 -24
  564. RJ COD
  565. BX3 -X0*X6 MERGE WITH TYPE
  566. LX3 12
  567. BX6 X5+X3
  568. SA6 SBUF+2
  569. EQ LRS4 LIST LINE
  570.  
  571. * PROCESS OVERLAY LEVEL NUMBERS.
  572.  
  573. LRS9 SA2 BUF+B3 EXTRACT LEVEL NUMBERS FROM 5000 TABLE
  574. LX2 24
  575. MX0 -12
  576. SX1 X2+10000B CONVERT LEVEL NUMBERS
  577. RJ COD
  578. SA1 LRSA+B7 MERGE LEVEL AND TYPE
  579. BX2 -X0*X6
  580. LX2 6
  581. IX1 X1+X2
  582. AX6 12
  583. BX2 -X0*X6
  584. LX2 24
  585. IX6 X1+X2
  586. SA6 SBUF+2
  587. EQ LRS4 LIST LINE
  588.  
  589. * PROCESS PPU NUMBER.
  590.  
  591. LRS11 SA2 BUF+B3 FIRST WORD OF PROGRAM
  592. LX2 24
  593. SB6 X2-100B
  594. SA5 LRSA+B7
  595. NG B6,LRS12 IF PPU @ 77
  596. SA5 LRSC
  597. LRS12 SX1 X2+10000B CONVERT PPU NUMBER
  598. RJ COD
  599. LX6 6
  600. PL B6,LRS13 IF PPU > 77
  601. LX6 12
  602. LRS13 IX6 X6+X5
  603. SA6 SBUF+2
  604. EQ LRS4 LIST LINE
  605.  
  606. * PROCESS USER LIBRARY.
  607.  
  608. LRS14 SA1 UL
  609. ZR X1,LRS4 IF NO USER LIBRARY LIST
  610. SX6 99999 FORCE PAGE EJECT
  611. SA6 LC
  612. EQ LRS4 LIST LINE
  613.  
  614. * PROCESS PPL LOAD ADDRESS.
  615.  
  616. LRS15 SA2 BUF+B3 FIRST WORD OF PROGRAM
  617. SX3 B1+
  618. LX3 3*5
  619. MX4 -16
  620. AX2 16 SET LOAD ADDRESS
  621. BX4 -X4*X2
  622. SA5 LRSA+B7
  623. IX1 X4+X3 CONVERT LOAD ADDRESS
  624. MX0 -6*5
  625. RJ COD
  626. SA1 SBUF+3 GET LENGTH
  627. BX3 -X0*X6 MERGE WITH TYPE
  628. BX6 X5+X3
  629. SX3 1R)&1R INSERT RIGHT PAREN
  630. SA6 A1-B1
  631. LX3 -6
  632. BX6 X1-X3
  633. SA6 A1
  634. EQ LRS4 LIST LINE
  635.  
  636. LRSA BSS 0
  637. LOC 0
  638. CON 10HTEXT
  639. VFD 24/4LPP (,24/0,12/2L)
  640. CON 10H
  641. CON 10HREL
  642. VFD 24/4LOVL ,12/0,6/1L,,12/0,6/1L
  643. CON 10HULIB
  644. CON 5LOPL
  645. CON 5LOPLC
  646. CON 10HOPLD
  647. CON 10HABS
  648. CON 8HPPU ( )-8A100
  649. CON 10H
  650. CON 10H
  651. CON 10H
  652. CON 10HCAP
  653. CON 10H
  654. CON 10HPROC
  655. CON 10H
  656. CON 10H
  657. CON 10H
  658. CON 5LPPL (
  659. LOC *O
  660.  
  661. LRSB BSS 0
  662. LOC 0
  663. EQ LRS4 TEXT
  664. EQ LRS7 PP
  665. EQ LRS4 UNDEFINED RECORD TYPE
  666. EQ LRS6 REL
  667. EQ LRS9 OVL
  668. EQ LRS14 ULIB
  669. EQ LRS5.2 OPL
  670. EQ LRS5.2 OPLC
  671. EQ LRS4 OPLD
  672. EQ LRS6 ABS
  673. EQ LRS11 PPU
  674. EQ LRS4 UNDEFINED RECORD TYPE
  675. EQ LRS4 UNDEFINED RECORD TYPE
  676. EQ LRS4 UNDEFINED RECORD TYPE
  677. EQ LRS6 CAP
  678. EQ LRS4 UNDEFINED RECORD TYPE
  679. EQ LRS4 PROC
  680. EQ LRS4 UNDEFINED RECORD TYPE
  681. EQ LRS4 UNDEFINED RECORD TYPE
  682. EQ LRS4 UNDEFINED RECORD TYPE
  683. EQ LRS15 PPL
  684. LOC *O
  685.  
  686. LRSC CON 10HPPU ( )-6A1
  687.  
  688. LRSCS CON 5R(63) DISPLAY CODE 63 CHARACTER SET
  689. CON 5R(64) DISPLAY CODE 64 CHARACTER SET
  690. CON 5R(A63) 6/12 ASCII CODE 63 CHARACTER SET
  691. CON 5R(A64) 6/12 ASCII CODE 64 CHARACTER SET
  692. LRSD CON 0
  693. DATA C* MORE ENTRY POINTS NOT LISTED*
  694. ABS SPACE 4,10
  695. ** ABS - PROCESS ABS ENTRY POINTS.
  696. *
  697. * ENTRY (BUF) = FIRST BLOCK OF RECORD.
  698. *
  699. * USES X - 0, 1, 2, 3, 5, 6, 7.
  700. * A - 1, 2, 5, 6, 7.
  701. * B - 2, 7.
  702. *
  703. * CALLS CDD, COD, WOF, ZTB.
  704.  
  705.  
  706. ABS SA1 BUF CHECK FIRST WORD
  707. LX1 18
  708. MX2 -12
  709. SX6 X1-770000B
  710. NZ X6,CAT1 RETURN IF NO 7700 TABLE
  711. LX1 6 SKIP 7700 TABLE
  712. SB2 X1+B1
  713. SA1 A1+B2
  714. LX1 12
  715. BX3 -X2*X1
  716. SX6 X3-5100B
  717. LX1 -12
  718. SB7 B1+ SET INDEX TO ENTRY POINTS
  719. ZR X6,ABS1 IF 5100 TABLE
  720. SX6 X3-5300B
  721. BX1 -X1
  722. ZR X6,ABS1 IF 5300 TABLE
  723. BX1 -X1
  724. SX6 X3-5400B
  725. SB7 8
  726. NZ X6,CAT1 IF NOT 5400 TABLE
  727. ABS1 SX0 X1 SET ENTRY COUNT
  728. ZR X0,CAT1 IF NO ENTRIES
  729. SA5 A1+B7 FIRST ENTRY POINT NAME
  730. SA2 =1H CLEAR SCRATCH BUFFER
  731. BX6 X2
  732. MX7 0
  733. SA6 SBUF
  734. SA7 SBUF+3
  735. SX2 BUF+BUFL CALCULATE MAXIMUM ENTRY POINT COUNT
  736. SX3 A5
  737. IX3 X2-X3
  738. IX2 X0-X3
  739. NG X2,ABS2 IF NO EXCESS ENTRY POINTS
  740. BX0 X3 SET MAXIMUM ENTRY POINT COUNT
  741. BX1 X2 ADD UNLISTED ENTRY POINT COUNT TO MESSAGE
  742. RJ CDD
  743. SA6 LRSD
  744. ABS2 MX2 42 SPACE FILL NAME
  745. BX1 X2*X5
  746. RJ ZTB
  747. LX6 -6
  748. BX1 -X2*X5
  749. SA6 SBUF+1
  750. RJ COD CONVERT ENTRY POINT ADDRESS
  751. LX6 18
  752. SA6 SBUF+2
  753. SX1 SBUF LIST ENTRY
  754. RJ WOF
  755. SA5 A5+B1 NEXT ENTRY
  756. SX0 X0-1
  757. NZ X0,ABS2 IF NOT END OF ENTRIES
  758. SA1 LRSD
  759. ZR X1,CAT1 IF NO EXCESS ENTRY POINTS
  760. SX1 LRSD ISSUE EXCESS ENTRY POINT MESSAGE
  761. RJ WOF
  762. SX6 B0+
  763. SA6 LRSD
  764. EQ CAT1 RETURN
  765. CAP SPACE 4,10
  766. ** CAP - PROCESS CAPSULE GROUP NAMES.
  767. *
  768. * ENTRY (BUF) = FIRST BLOCK OF RECORD.
  769. *
  770. * USES X - 0, 1, 2, 6.
  771. * A - 1, 6.
  772. * B - 2.
  773. *
  774. * CALLS WOF, ZTB.
  775.  
  776.  
  777. CAP SA1 BUF CHECK FIRST WORD
  778. LX1 18
  779. MX2 -12
  780. SX6 X1-770000B
  781. NZ X6,CAT1 IF NO 7700 TABLE
  782. LX1 6 SKIP 7700 TABLE
  783. SB2 X1+2
  784. MX0 42
  785. SA1 A1+B2
  786. BX1 X0*X1
  787. RJ ZTB SPACE FILL NAME
  788. LX6 -6
  789. SA6 CAPA+1
  790. SX1 CAPA LIST GROUP NAME
  791. RJ WOF
  792. EQ CAT1 RETURN
  793.  
  794. CAPA DIS 2,
  795. DATA C* (GROUP NAME)*
  796. OPL SPACE 4,10
  797. ** OPL - PROCESS OPL LIST.
  798. *
  799. * ENTRY (BUF) = FIRST BLOCK OF RECORD.
  800. * (TF) = TERMINAL FLAG.
  801. *
  802. * USES X - ALL.
  803. * A - 0, 1, 2, 3, 4, 6.
  804. * B - 2, 6, 7.
  805. *
  806. * CALLS WOF, ZTB.
  807.  
  808.  
  809. OPL SA1 BUF CHECK FIRST WORD
  810. LX1 18
  811. SB7 B0
  812. SB2 X1-770000B
  813. NZ B2,CAT1 RETURN IF NO 7700 TABLE
  814. LX1 6 SKIP 7700 TABLE
  815. SB2 X1+B1
  816. SA1 A1+B2
  817. SX5 X1
  818. ZR X5,CAT1 RETURN IF NO MODIFIERS
  819. SB6 BUFL
  820. SB5 X5+20B
  821. LE B5,B6,OPL1 IF BUFFER NOT FULL
  822. SX5 BUFL-20B SET NUMBER OF MODIFIERS TO MAXIMUM
  823. SX7 B1+ SET BUFFER FULL FLAG
  824. SA7 OPLB
  825. OPL1 SA3 TF CHECK FOR TERMINAL
  826. NZ X3,OPL2 IF NOT TERMINAL FILE
  827. SB7 -6 CHANGE LINE LENGTH FOR TERMINAL FILE
  828. OPL2 SA2 =1H CLEAR SCRATCH BUFFER
  829. SA0 A1+B1 FIRST MODIFIER
  830. BX6 X2
  831. SA6 SBUF
  832. MX0 42
  833. OPL3 SB6 -12
  834. ZR X5,OPL7 IF END OF MODIFIERS
  835. OPL4 ZR X5,OPL6 IF END OF TABLE
  836. SA4 A0 SPACE FILL NAME
  837. BX1 X0*X4
  838. RJ ZTB
  839. LX4 59-16 CHECK YANK BIT
  840. SA0 A0+B1
  841. PL X4,OPL5 IF NOT SET
  842. SA1 OPLA ADD ()
  843. IX6 X6+X1
  844. OPL5 LX6 -6 STORE NAME
  845. SA6 SBUF+13+B6
  846. SB6 B6+B1
  847. SX5 X5-1 ADVANCE TABLE
  848. NE B6,B7,OPL4 IF NOT END OF LINE
  849. MX6 0 LIST LINE
  850. SA6 A6+B1
  851. SX1 SBUF
  852. RJ WOF
  853. EQ OPL3 LOOP
  854.  
  855.  
  856. OPL6 MX6 0 LIST PARTIAL LINE
  857. SA6 A6+B1
  858. SX1 SBUF
  859. RJ WOF
  860. OPL7 SA3 OPLB
  861. ZR X3,OPL8 IF BUFFER NOT FULL
  862. SX1 =C* *
  863. RJ WOF
  864. SX1 OPLC * ADDITIONAL MODIFIERS NOT LISTED *
  865. RJ WOF
  866. SX7 B0+ CLEAR BUFFER FULL FLAG
  867. SA7 OPLB
  868. OPL8 SA1 LC CHECK LINE COUNT
  869. SA3 A1+B1
  870. IX7 X1-X3
  871. PL X7,CAT1 IF BOTTOM OF PAGE REACHED
  872. SX1 =2L
  873. RJ WOF
  874. EQ CAT1 RETURN
  875.  
  876. OPLA VFD 60/3A) (-1H
  877. OPLB CON 0 FULL BUFFER FLAG
  878. OPLC DATA 5H
  879. DATA C$*** ADDITIONAL MODIFIERS NOT LISTED ***$
  880. RDA SPACE 4
  881. ** RDA - READ DATA.
  882. * PROCESSES CALLS TO READ WORDS (RDW=).
  883. * DEBLOCKS DATA IF CONTROL WORD READS.
  884.  
  885. * ENTRY/EXIT CONDITIONS ARE IDENTICAL WITH THOSE FOR COMCRDW.
  886.  
  887.  
  888. RDA5 SX6 B5-B7 UPDATE WORDS REMAINING
  889. SA6 A1
  890.  
  891. RDA6 RJ RDW= READ WORDS
  892.  
  893. RDA PS ENTRY/EXIT
  894. SA1 CW CHECK IF CONTROL WORDS LEGAL
  895. ZR X1,RDA6 IF CONTROL WORD READS NOT LEGAL
  896. SA0 B6
  897. RDA1 SA1 X2-2 GET NUMBER OF WORDS BEFORE CONTROL WORD
  898. SB5 X1+
  899. PL X1,RDA2 IF NOT FIRST READ
  900. SX7 B7+ SET WORDS NEEDED
  901. SA7 RDAA
  902. JP RDA4
  903.  
  904. RDA2 GE B5,B7,RDA5 IF ENOUGH DATA TO FILL BUFFER
  905. SA3 X2-1 CHECK EOR FLAG
  906. PL X3,RDA3 IF NOT EOR ON FILE
  907. MX6 1 SET NEW READ FLAG
  908. SB7 B5+B1 SET WORDS TO READ
  909. SA6 A3
  910. SA6 A1
  911. RJ RDW= READ WORDS
  912. SA1 B6-B1 CHECK CONTROL WORD
  913. AX1 48
  914. SX6 X1-17B
  915. MX1 -1
  916. SB6 B6-B1 BACK UP LAST WORD ADDRESS
  917. ZR X6,RDA IF *EOF* CONTROL WORD
  918. SX1 B6 SET *EOR* INDICATION
  919. JP RDA RETURN
  920.  
  921. RDA3 SX6 B7-B5 SAVE ADDITIONAL WORDS NEEDED
  922. SA6 RDAA
  923. SB7 B5+B1 SET WORDS TO TRANSFER
  924. RJ RDW= READ WORDS
  925. SB7 A0-B6
  926. ZR B7,RDA IF EOR, RETURN
  927. SB6 B6-1 BACK UP OVER LAST CONTROL WORD
  928. RDA4 SB7 B1 READ CONTROL WORD
  929. RJ RDW=
  930. NG X1,RDA IF EOF/EOI
  931. SB6 B6-B1 BACK UP WORKING BUFFER
  932. SA1 B6 CONTROL WORD
  933. SX7 5
  934. SX4 X1+4 ROUND UP
  935. AX1 36 EXTRACT BLOCK SIZE
  936. SX3 X1
  937. IX7 X4/X7 WORDS IN BLOCK
  938. IX6 X7-X3 SAVE EOR FLAG
  939. SA7 X2-2 STORE WORD COUNT
  940. SA6 X2-1 EOR FLAG
  941. SA1 RDAA RESET WORDS NEEDED
  942. SB7 X1
  943. JP RDA1 LOOP
  944.  
  945. RDAA CON 0
  946. RDR SPACE 4
  947. ** RDR - READ RECORD.
  948. *
  949. * EXIT (X1) = -1 IF EOF.
  950. * (RL) = RECORD LENGTH.
  951. * (CS) = CHECK SUM.
  952. * (TY) = RECORD TYPE.
  953. * (NM) = RECORD NAME.
  954. * (NSFF) .NE. 0, IF NONSTANDARD RECORD ENCOUNTERED
  955. * (DATA WITH NO EOR).
  956. *
  957. * USES A - 1, 2, 3, 4, 6, 7.
  958. * B - 2, 3, 4.
  959. * X - 1, 2, 3, 4, 6, 7.
  960. *
  961. * CALLS SRT.
  962. *
  963. * MACROS MESSAGE, READW.
  964.  
  965.  
  966. RDR PS ENTRY/EXIT
  967. READW F,BUF,BUFL
  968. BX6 X1 SAVE STATUS
  969. SA6 RDRA
  970. SB2 B6-BUF
  971. SX1 B6 LWA+1 OF DATA FOR SRT CALL
  972. NZ B2,RDR0 IF DATA TRANSFERRED
  973. PL X6,RDR0 IF NOT EOF/EOI
  974. SX1 BUF
  975. RDR0 SX2 BUF
  976. RJ SRT
  977. SA6 TY SET TYPE
  978. SA7 NM SET NAME
  979. LX7 -6 ENTER NAME N MESSAGE
  980. SX3 1R ENTER NAME IN MESSAGE
  981. LX3 59-5
  982. BX7 X3+X7
  983. SA7 RDRB+1
  984. MESSAGE A7-B1,1 ISSUE CONSOLE MESSAGE
  985. SA1 RDRA
  986. SB2 BUFL
  987. SB3 BUF
  988. ZR X1,RDR1 IF NOT EOR/EOF
  989. SB2 B6-BUF
  990. ZR B2,RDR RETURN IF ZERO LENGTH RECORD
  991. PL X1,RDR1 IF NOT NONSTANDARD RECORD
  992. SX6 B1+ SET NONSTANDARD FILE FLAG
  993. SA6 NSFF
  994. RDR1 SA2 TY EXCLUDE RECORD TYPES WITHOUT 7700 TABLE
  995. SX2 X2
  996. ERRNZ TXRT CODE ASSUMES VALUE
  997. ZR X2,RDR2 IF RECORD TYPE *TEXT*
  998. SA2 B3 CHECK FIRST WORD
  999. LX2 18
  1000. SX6 X2-770000B
  1001. NZ X6,RDR2 IF NO 7700 TABLE
  1002. LX2 6 SKIP 7700 TABLE
  1003. SB4 X2+B1
  1004. SB3 B3+B4
  1005. SB2 B2-B4
  1006. LE B2,RDR IF 77 TABLE ONLY OR ERROR IN LENGTH
  1007.  
  1008. RDR2 SA2 RL ADVANCE RECORD LENGTH
  1009. SA3 CS ADVANCE CHECKSUM
  1010. SX7 B2
  1011. SA4 B3
  1012. BX6 X3
  1013. IX7 X2+X7
  1014. RDR3 BX6 X6-X4
  1015. SB2 B2-B1
  1016. SA4 A4+B1
  1017. LX6 1
  1018. NZ B2,RDR3
  1019. SA6 A3
  1020. SA7 A2
  1021. NZ X1,RDR RETURN IF EOR/EOF
  1022. READW F,SBUF,SBUFL
  1023. SB2 SBUFL
  1024. SB3 SBUF
  1025. ZR X1,RDR2 IF NOT EOR/EOF
  1026. SB2 B6-SBUF
  1027. PL X1,RDR4 IF NOT NONSTANDARD RECORD
  1028. SX6 B1+ SET NONSTANDARD FILE FLAG
  1029. SA6 NSFF
  1030. RDR4 NZ B2,RDR2 IF NOT EMPTY BUFFER
  1031. EQ RDR RETURN
  1032.  
  1033. RDRA DATA 0
  1034.  
  1035. RDRB DATA 10HCATALOGING
  1036. DATA 0
  1037. REL SPACE 4,10
  1038. ** REL - PROCESS RELOCATABLE LIST.
  1039. *
  1040. * ENTRY (BUF) = FIRST BLOCK OF RECORD.
  1041. *
  1042. * USES X - 0, 1, 2, 5, 6, 7.
  1043. * A - 1, 2, 5, 6, 7.
  1044. * B - 2.
  1045. *
  1046. * CALLS CDD, WOF, ZTB.
  1047.  
  1048.  
  1049. REL SA1 BUF CHECK FIRST WORD
  1050. LX1 18
  1051. SB2 X1-770000B
  1052. NZ B2,CAT1 RETURN IF NO 7700 TABLE
  1053. LX1 6 SKIP 7700 TABLE
  1054. SB2 X1+B1
  1055. SA1 A1+B2
  1056. LX1 12
  1057. SB2 X1-7000B
  1058. NZ B2,REL1 IF NOT 7000 TABLE
  1059. LX1 12 SKIP 7000 TABLE
  1060. SB2 X1+B1
  1061. SA1 A1+B2
  1062. LX1 12
  1063. REL1 SB2 X1-3400B
  1064. NZ B2,CAT1 RETURN IF NO 3400 TABLE
  1065. LX1 12 SKIP 3400 TABLE
  1066. SB2 X1+B1
  1067. SA1 A1+B2
  1068. LX1 12
  1069. SB2 X1-3600B
  1070. NZ B2,CAT1 RETURN IF NO 3600 TABLE
  1071. LX1 12
  1072. SX0 X1-1
  1073. SA5 A1+B1 FIRST ENTRY POINT
  1074. SA2 =1H CLEAR SCRATCH BUFFER
  1075. BX6 X2
  1076. MX7 0
  1077. SA6 SBUF
  1078. SA7 SBUF+2
  1079. SX2 BUF+BUFL CALCULATE MAXIMUM ENTRY POINT COUNT
  1080. SX7 A5
  1081. IX7 X2-X7
  1082. IX2 X0-X7
  1083. NG X2,REL2 IF NO EXCESS ENTRY POINTS
  1084. SX0 X7-1 SET MAXIMUM ENTRY POINT COUNT
  1085. SX1 X2+1 ADD UNLISTED ENTRY POINT COUNT TO MESSAGE
  1086. LX1 -1
  1087. RJ CDD
  1088. SA6 LRSD
  1089. REL2 BX1 X5 SPACE FILL NAME
  1090. RJ ZTB
  1091. LX6 -6
  1092. SA6 SBUF+1
  1093. SX1 SBUF LIST ENTRY POINT
  1094. RJ WOF
  1095. SA5 A5+2 NEXT ENTRY POINT
  1096. SX0 X0-2
  1097. PL X0,REL2 LOOP FOR ALL ENTRY POINTS
  1098. SA1 LRSD
  1099. ZR X1,CAT1 IF NO EXCESS ENTRY POINTS
  1100. SX1 LRSD ISSUE EXCESS ENTRY POINT MESSAGE
  1101. RJ WOF
  1102. SX6 B0+
  1103. SA6 LRSD
  1104. EQ CAT1 RETURN
  1105. TXT SPACE 4
  1106. ** TXT - PROCESS TEXT LIST.
  1107.  
  1108.  
  1109. TXT SA1 NM READ NAME
  1110. SA2 TXTB SET TABLE ADDRESS FOR *OVERLAY* ONLY
  1111. SA3 TXTD
  1112. ZR X3,TXT0 IF NOT LISTING *TEXT* RECORDS
  1113. SA2 TXTA SET TABLE ADDRESS FOR ALL TEXT RECORDS
  1114. TXT0 MX4 1
  1115. SB2 X2
  1116. MX0 42
  1117. BX6 X0*X2
  1118. TXT1 AX3 X4,B2 SET MASK
  1119. BX7 X1-X6
  1120. BX6 X3*X7
  1121. SA2 A2+B1
  1122. ZR X6,TXT2 IF MATCH ON NAME
  1123. ZR X2,CAT1 IF END OF TABLE
  1124. SB2 X2
  1125. BX6 X0*X2
  1126. EQ TXT1 LOOP
  1127.  
  1128. TXT2 SA0 BUF
  1129. SX6 A2-TXTB-1 SET *OVERLAY* FLAG
  1130. SA6 TXTC
  1131. SA1 =1H
  1132. BX6 X1
  1133. SB2 B0
  1134. SA6 SBUF
  1135. MX0 -12
  1136. SA6 A6+B1
  1137. SA5 RL
  1138. SX7 X5-BUFL
  1139. SA7 TXTE
  1140. MI X7,TXT3 IF LESS THAN FULL BUFFER OF TEXT
  1141. SX5 BUFL RESET LENGTH OF RECORD
  1142. TXT3 SX5 X5-1
  1143. NG X5,TXT4 IF END OF COPY
  1144. SA1 A0 MOVE WORD
  1145. LX6 X1
  1146. SA6 SBUF+2+B2
  1147. SA0 A0+B1
  1148. BX7 -X0*X1
  1149. SB2 B2+B1
  1150. NZ X7,TXT3 LOOP TO END OF LINE
  1151. SX1 SBUF LIST LINE
  1152. RJ WOF
  1153. SA2 TXTC
  1154. ZR X2,CAT1 IF *OVERLAY* RECORD
  1155. SB2 B0
  1156. EQ TXT3 LOOP
  1157.  
  1158. TXT4 SA1 TXTE
  1159. NG X1,TXT5 IF NOT FULL BUFFER
  1160. SX1 =C* *
  1161. RJ WOF
  1162. SX1 TXTF * ADDITIONAL TEXT NOT LISTED *
  1163. RJ WOF
  1164. TXT5 SX1 =C* *
  1165. RJ WOF
  1166. EQ CAT1 RETURN
  1167.  
  1168.  
  1169.  
  1170. **** TABLE OF SPECIAL *TEXT* RECORD NAMES.
  1171. *
  1172. * IF THE *T* OPTION IS SELECTED, THE ENTIRE TABLE WILL BE
  1173. * SEARCHED. OTHERWISE, ONLY *OVERLAY* WILL BE RECOGNIZED.
  1174. *
  1175. * ENTRY FORMAT -
  1176. *
  1177. *T 42/ SPECIAL RECORD NAME SKELETON, 18/ BITS-1 IN MASK
  1178. *
  1179. * TABLE IS TERMINATED BY A ZERO WORD.
  1180.  
  1181.  
  1182. TXTA BSS 0
  1183.  
  1184. * PATTERNS SEARCHED IF *T* OPTION ENABLED.
  1185.  
  1186. VFD 42/0LAPRD,18/24-1 *APRDECK* PATTERNS
  1187. VFD 42/0LAPR0,18/24-1
  1188. VFD 42/0LCMRD,18/24-1 *CMRDECK* PATTERN
  1189. VFD 42/0LEQPD,18/24-1 *EQPDECK* PATTERN
  1190. VFD 42/0LIPRD,18/24-1 *IPRDECK* PATTERN
  1191. VFD 42/0LLIBD,18/24-1 *LIBDECK* PATTERN
  1192.  
  1193. * UNCONDITIONALLY SEARCHED PATTERNS.
  1194.  
  1195. TXTB VFD 42/0LOVERLAY,18/42-1 *OVERLAY* PATTERN
  1196.  
  1197. CON 0 END OF TABLE
  1198. ****
  1199.  
  1200. TXTC CON 0 *OVERLAY* RECORD FLAG
  1201. TXTD CON 0 LIST *TEXT* RECORDS FLAG
  1202. TXTE CON 0 BUFFER FULL FLAG
  1203. TXTF DATA 20H
  1204. DATA C$*** ADDITIONAL TEXT NOT LISTED ***$
  1205. ULB SPACE 4
  1206. ** ULB - PROCESS USER LIBRARY.
  1207.  
  1208.  
  1209. ULB SA1 UL
  1210. SX6 B1+
  1211. SA6 ULBB SET *SEARCHING FOR OPLD* FLAG
  1212. NZ X1,CAT1 IF USER LIBRARY LIST REQUESTED
  1213. SA6 ULBA SET NO LIST
  1214. EQ CAT1 RETURN
  1215.  
  1216. ULBA CON 0 *USER LIBRARY FOUND AND NO ULIB LIST* FLAG
  1217. ULBB CON 0 *SEARCHING FOR OPLD* FLAG
  1218. TITLE SUBROUTINES.
  1219. WOF SPACE 4
  1220. ** WOF - WRITE LINE TO OUTPUT.
  1221. *
  1222. * ENTRY (X1) = FWA LINE.
  1223. *
  1224. * USES X - 1, 2, 3, 6, 7.
  1225. * A - 1, 2, 3, 6, 7.
  1226. *
  1227. * CALLS CDD.
  1228. *
  1229. * MACROS WRITEC.
  1230.  
  1231.  
  1232. WOF PS ENTRY/EXIT
  1233. SA3 LC ADVANCE LINE COUNT
  1234. SX6 X3+B1
  1235. SA6 A3
  1236. SA2 A3+B1 GET LINE LIMIT
  1237. IX7 X6-X2
  1238. NG X7,WOF1 IF BOTTOM OF PAGE NOT REACHED
  1239. SX6 3 RESET LINE COUNT
  1240. BX7 X1 SAVE REQUEST
  1241. SA6 A3
  1242. SA1 PN ADVANCE PAGE NUMBER
  1243. SA7 WOFA
  1244. SX6 X1+B1
  1245. SA6 A1
  1246. RJ CDD CONVERT PAGE NUMBER
  1247. MX1 48
  1248. LX6 18 STORE PAGE NUMBER
  1249. BX6 X1*X6
  1250. SA6 PAGE
  1251. WRITEC O,TITL
  1252. WRITEC X2,SBTL
  1253. WRITEC X2,(=C* *)
  1254. SA1 WOFA RESTORE REQUEST
  1255. WOF1 WRITEC O,X1
  1256. SA1 SL CHECK LIST FLAG
  1257. ZR X1,WOF RETURN IF NOT SHORT LIST
  1258. MX6 0 CLEAR LINE COUNT
  1259. SA6 LC
  1260. EQ WOF RETURN
  1261.  
  1262. WOFA CON 0
  1263. SPACE 4
  1264. * COMMON DECKS.
  1265.  
  1266.  
  1267. *CALL COMCCDD
  1268. *CALL COMCCOD
  1269. *CALL COMCCPT
  1270. *CALL COMCSRT
  1271. *CALL COMCRDW
  1272. *CALL COMCWTC
  1273. *CALL COMCWTW
  1274. *CALL COMCCIO
  1275. *CALL COMCSYS
  1276. *CALL COMCZTB
  1277. BUFFERS SPACE 4
  1278. ** BUFFERS.
  1279.  
  1280.  
  1281. USE //
  1282. SEG
  1283. BUFL EQU 10002B WORKING BUFFER
  1284. SBUFL EQU 100B SCRATCH BUFFER
  1285.  
  1286. BUF BSS BUFL
  1287. SBUF BSS SBUFL
  1288. FBUF BSS FBUFL
  1289. OBUF BSS OBUFL
  1290. RFL= BSS 0
  1291. PRS SPACE 4,10
  1292. ** PRS - PRESET PROGRAM.
  1293. *
  1294. * USES X - ALL.
  1295. * A - 1, 2, 4, 5, 6, 7.
  1296. * B - 1, 4, 5, 7.
  1297. *
  1298. * CALLS ARG, CDT, DXB, STF, ZTB.
  1299. *
  1300. * MACROS ABORT, CLOCK, DATE, GETPP, MESSAGE, OPEN, SETLOF.
  1301.  
  1302.  
  1303. ORG BUF
  1304. PRS PS ENTRY/EXIT
  1305. SB1 1
  1306. DATE DATE
  1307. GETPP OBUF,LL,PD GET PAGE SIZE PARAMETERS
  1308. CLOCK TIME
  1309. SA1 ACTR CHECK ARGUMENT COUNT
  1310. SB4 X1
  1311. MX0 42
  1312. ZR B4,PRS2 IF NO ARGUMENTS
  1313. SA4 ARGR SET FILE NAME
  1314. BX6 X0*X4
  1315. ZR X6,PRS1 IF FILE NAME BLANK
  1316. SX2 3
  1317. IX6 X6+X2
  1318. SA6 F
  1319. PRS1 SB4 B4-B1
  1320. ZR B4,PRS2 IF END OF ARGUMENTS
  1321. SA4 A4+B1 PROCESS SPECIAL ARGUMENTS
  1322. SB5 PRSA
  1323. RJ ARG
  1324. NZ X1,PRS4 IF ARGUMENT ERROR
  1325. PRS2 SA5 FC CHECK FILE COUNT
  1326. ZR X5,PRS3 IF NO CONVERSION REQUIRED
  1327. SB7 B1
  1328. RJ DXB
  1329. SA6 FC
  1330. NZ X4,PRS4 IF CONVERSION ERROR
  1331. PRS3 SA1 F ENTER FILE NAME IN TITLE
  1332. MX0 42
  1333. BX1 X0*X1
  1334. RJ ZTB
  1335. LX6 -6
  1336. SA6 TITL+2
  1337. MX1 1 SET FLUSH BIT IN FET
  1338. SA2 O SET UP AUTO-FLUSH TABLE
  1339. LX1 36-59
  1340. SA4 A2+B1
  1341. SX3 O
  1342. BX7 X4+X1
  1343. SA7 A4
  1344. BX2 X0*X2
  1345. BX6 X2+X3
  1346. SA6 FLS+1
  1347. SETLOF PRSG
  1348. SA1 O CHECK FILE NAMES
  1349. SA2 F
  1350. BX6 X1-X2
  1351. BX7 X0*X6
  1352. ZR X7,PRS5 IF SAME NAME
  1353. SX2 O CHECK IF TERMINAL FILE
  1354. RJ STF
  1355. SA6 TF
  1356. NZ X6,PRS3.1 IF NOT TERMINAL FILE
  1357. SX6 B1 SET SHORT LIST FLAG
  1358. SA6 SL
  1359. SA2 =1H DELETE EJECT
  1360. BX7 X7-X7
  1361. BX6 X2
  1362. SA7 TITLA
  1363. SA7 SBTLA
  1364. SA7 PGEJ
  1365. SA6 TITL
  1366. PRS3.1 SX2 F ADDRESS OF FET
  1367. SA3 PRSH ADDRESS OF OD FET EXTENSION AND LENGTH
  1368. RJ SOE SET FET EXTENSION IF OPTICAL DISK FILE
  1369. OPEN X2,READNR,R CHECK IF CONTROL WORDS MAY BE USED
  1370. SA1 F+1
  1371. RJ CDT CHECK DEVICE TYPE
  1372. ZR X7,PRS IF CONTROL WORDS NOT ALLOWABLE
  1373. SX7 1 SET CONTROL WORDS LEGAL
  1374. SA7 CW SET CONTROL WORD FLAG
  1375. EQ PRS RETURN
  1376.  
  1377. PRS4 MESSAGE PRSB
  1378. ABORT
  1379.  
  1380. PRS5 MESSAGE PRSC
  1381. ABORT
  1382. *CALL COMCSOE
  1383.  
  1384. PRSA BSS 0
  1385. L ARG O,O OUTPUT FILE NAME
  1386. N ARG PRSD,FC NUMBER OF FILE TO CATALOG
  1387. T ARG -*,TXTD LIST *TEXT* RECORDS OPTION
  1388. U ARG -*,UL LIST *ULIB* OPTION
  1389. D ARG PRSF,SL DE-SELECT DETAILED LIST OPTION
  1390. R ARG -*,RW REWIND BEFORE AND AFTER
  1391. CS ARG -=0,CSM LIST CHARACTER SET FOR *OPL* AND *OPLC*
  1392. ARG
  1393.  
  1394. PRSB DATA C* CATALOG ARGUMENT ERROR.*
  1395. PRSC DATA C* CATALOG FILE NAME CONFLICT.*
  1396.  
  1397. PRSD CON 0L999999
  1398. PRSF CON 0L0
  1399.  
  1400. PRSG VFD 12/0,18/FLS,29/0,1/1 AUTO-FLUSH TABLE POINTER
  1401. PRSH VFD 36/,6/FETODL,18/FETOD POINTER TO EXTENSION BUFFER
  1402. CDT SPACE 4,15
  1403. ** CDT - CHECK DEVICE TYPE.
  1404. *
  1405. * ENTRY (X1) = (FET+1).
  1406. *
  1407. * EXIT (X7)= 0 IF CONTROL WORD READ/WRITE NOT SUPPORTED ON
  1408. * DEVICE.
  1409. *
  1410. * USES B - NONE.
  1411. * A - 2.
  1412. * X - 0,1,2,6,7.
  1413. *
  1414. * CALLS NONE.
  1415.  
  1416.  
  1417. CDT2 LX1 12 CHECK *TT*
  1418. BX6 -X0*X1
  1419. SX7 X6-2RTT
  1420.  
  1421. CDT PS ENTRY/EXIT
  1422. MX0 -12
  1423. PL X1,CDT2 IF ALLOCATABLE
  1424. LX1 12
  1425. SA2 CDTA SEARCH DEVICE TABLE
  1426. SX7 0 ASSUME NO FIND
  1427. CDT1 ZR X2,CDT RETURN - IF NOT FOUND
  1428. BX6 X1-X2
  1429. AX2 12
  1430. BX6 X2*X6
  1431. SA2 A2+B1
  1432. NZ X6,CDT1 IF NOT MATCH
  1433. SX7 1 INDICATE CONTROL WORD POSSIBLE
  1434. JP CDT RETURN
  1435.  
  1436. CDTA VFD 36/,12/7703B,12/4002B
  1437. VFD 36/,12/7703B,12/4102B
  1438. VFD 36/,12/7777B,12/2RMT+4000B
  1439. VFD 36/,12/7777B,12/2RNT+4000B
  1440. VFD 36/,12/7777B,12/2RCT+4000B
  1441. VFD 36/,12/7777B,12/2RAT+4000B
  1442. CON 0
  1443. SPACE 4
  1444. * COMMON DECKS.
  1445.  
  1446.  
  1447. *CALL COMCARG
  1448. *CALL COMCCPM
  1449. *CALL COMCDXB
  1450. *CALL COMCLFM
  1451. *CALL COMCSTF
  1452. SPACE 4
  1453. END