Table of Contents

LISTLB

Table Of Contents

  • [00009] LISTLB - LIST MAGNETIC TAPE LABELS.
  • [00011] LIST MAGNETIC TAPE LABELS.
  • [00077] ASSEMBLY CONSTANTS AND FETS.
  • [00102] MAIN ROUTINE.
  • [00104] MAIN ROUTINE.
  • [00200] SUBROUTINES.
  • [00201] COV - CONVERT OCTAL NUMBER TO DECIMAL DISPLAY CODE
  • [00233] FHR - SEARCH LABEL BUFFER FOR *HDR1* LABEL.
  • [00266] FLT - FIND LABEL TYPE.
  • [00299] PHE - PROCESS HDR1, EOF1, EOV1 PARAMETERS.
  • [00416] PRL - PRINT LABEL.
  • [00487] PVE - PROCESS VOL1 PARAMETERS.
  • [00547] PXL - PRINT LABELS FROM XL BUFFER.
  • [00583] SHD - SET UP *HDR1* LABEL IN EXTENDED LABEL BUFFER.
  • [00625] WHL - WRITE HEADER LINE.
  • [00661] CONSTANTS AND VARIABLES.
  • [00781] PRESET.
  • [00789] PRS - PRESET.
  • [00890] IPP - INITIALIZE PAGE PARAMETERS.
  • [00916] KWD - KEYWORD VERIFIER.
  • [00944] TKWD - TABLE OF KEYWORDS.
  • [00960] PER - PROCESS ERRORS.
  • [00974] ARGUMENT PROCESSORS.
  • [00975] PLO - PROCESS LO PARAMETER.
  • [01033] PLP - PROCESS L PARAMETER.
  • [01048] PSI - PROCESS SI PARAMETER.
  • [01065] PQN - PROCESS QN PARAMETER.

Source Code

LISTLB.txt
  1. IDENT LISTLB,FETS
  2. ABS
  3. ENTRY LISTLB
  4. ENTRY RFL=
  5. ENTRY ARG=
  6. SYSCOM B1
  7. *COMMENT LISTLB - LIST MAGNETIC TAPE LABELS.
  8. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  9. TITLE LISTLB - LIST MAGNETIC TAPE LABELS.
  10. SPACE 4
  11. *** LISTLB - LIST MAGNETIC TAPE LABELS.
  12. * W. E. GOEBEL. 74/01/21.
  13. * R. L. MUELLER. 75/10/15.
  14. * L. C. HAAS. 76/09/21. RESEQUENCE.
  15. SPACE 4
  16. *** LISTLB READS ANSI LABELS ON A SPECIFIED TAPE FILE
  17. * AND LISTS THE DESIRED LABELS ON AN OUTPUT FILE.
  18. *
  19. * IF LISTLB IS ABORTED, THE OUTPUT BUFFER IS FLUSHED.
  20. *
  21. * THE COMMAND.
  22. *
  23. * LISTLB(LFN,P1=VAL1,P2=VAL2,...,PN=VALN)
  24. *
  25. * ARGUMENT PARAMETERS.
  26. *
  27. * LFN NAME OF THE TAPE FILE.
  28. *
  29. * SI=SETID OR MULTI-FILE TAPE PARAMETER AND USED IN
  30. * M=SETID CONJUNCTION WITH THE QN(OR P) PARAMETER
  31. * AS FOLLOWS-
  32. * 1. SI .NE. 0 AND QN = 0 - LIST THE LABELS
  33. * OF ALL FILES IN THE MULTI-FILE SET
  34. * WITH SET IDENTIFIER = *SETID*.
  35. * 2. SI .NE. 0 AND QN = N - LIST ONLY THE
  36. * LABELS FOR FILE N OF THE MULTI-FILE SET.
  37. * 3. SI = 0 AND QN .NE. 0 - INCORRECT COM-
  38. * BINATION - JOB WILL BE ABORTED.
  39. *
  40. * QN=SEQNO OR MULTI-FILE TAPE PARAMETER AND USED IN
  41. * P=SEQNO CONJUNCTION WITH THE SI(OR M) PARAMETER.
  42. * (SEE ABOVE)
  43. *
  44. * LO=AROVHFEU A - LIST ALL LABELS.
  45. * R - LIST ALL REQUIRED LABELS.
  46. * VOL1,HDR1,EOF1,EOV1.
  47. * O - LIST ALL OPTIONAL LABELS.
  48. * VOL2-9,HDR2-9,EOF2-9,EOV2-9,
  49. * UVLN,UHLX,UTLX.
  50. * V - LIST ALL VOLN LABELS.
  51. * H - LIST ALL HDRN LABELS.
  52. * F - LIST ALL EOFN LABELS.
  53. * E - LIST ALL EOVN LABELS.
  54. * U - LIST ALL UVL,UHL,UTL LABELS.
  55. *
  56. * L=FILENAM LIST LABELS ON FILE FILENAM.
  57. *
  58. * DEFAULTS LFN = TAPE
  59. * LO = A
  60. * L = OUTPUT
  61. SPACE 10
  62. *** DAYFILE MESSAGES.
  63. *
  64. * * COMMAND ERROR.* = UNABLE TO INTERPRET COMMAND.
  65. *
  66. * * FILE NAME ERROR.* = FILE NAME IS TOO LONG.
  67. *
  68. * * INCORRECT PARAMETER.* = PARAMETER IS IN ERROR.
  69. *
  70. * * INCORRECT COMBINATION OF QN/SI.* = PLEASE SPECIFY *SETID*.
  71. *
  72. * * LISTLB ABORT.* = CHECK DAYFILE FOR REASON.
  73. *
  74. * * NO HDR1 LABEL RETURNED ON OPEN.* = NOTIFY CDC ANALYST.
  75. *
  76. * * LISTLB COMPLETE.*
  77. TITLE ASSEMBLY CONSTANTS AND FETS.
  78.  
  79. *CALL COMCMAC
  80. *CALL COMCCMD
  81.  
  82. **** ASSEMBLY CONSTANTS.
  83.  
  84.  
  85. TBUFL EQU 1*9+9*9+9*9+64*9+1
  86. OBUFL EQU 1001B
  87.  
  88.  
  89. ****
  90.  
  91. ORG 110B
  92.  
  93. * FETS.
  94.  
  95. FETS BSS 0
  96.  
  97. T BSS 0 TAPE FILE
  98. TAPE FILEB TBUF,TBUFL,(FET=10),XL,UPR
  99.  
  100. O BSS 0 LIST FILE
  101. OUTPUT FILEB OBUF,OBUFL,(FET=8)
  102. TITLE MAIN ROUTINE.
  103. LISTLB SPACE 4
  104. ** LISTLB - MAIN ROUTINE.
  105.  
  106.  
  107. LISTLB BSS 0
  108. RJ PRS
  109. MX6 0 CLEAR XL BUFFER
  110. SA6 TBUF
  111. SA1 QN
  112. NZ X1,LIS1 IF MULTI-FILE AND 1 FILE WANTED
  113. OPEN T,ALTER,R OPEN FILE - GET HEADER GROUP LABELS
  114. SA1 SI CHECK FOR MULTI-FILE
  115. ZR X1,LIS2 IF NOT MULTI-FILE TAPE
  116. RJ FHR FIND *HDR1* LABEL
  117. SA1 TBUF+B2+4 GET FILE SEQUENCE NUMBER
  118. MX0 24
  119. LX1 6
  120. BX5 X0*X1
  121. SB7 B1
  122. RJ DXB CONVERT TO BINARY
  123. SA6 SN
  124. EQ LIS2 PRINT LABELS FROM XL BUFFER
  125.  
  126. LIS1 RJ SHD SET UP *HDR1* LABEL IN EXTENDED BUFFER
  127. MX2 1 CLEAR *UP* BIT TO ALLOW AUTO REEL SWAP
  128. SA1 T+1
  129. LX2 45+1
  130. BX6 -X2*X1
  131. SA6 A1
  132. SA1 T+1 SET *EPR* BIT IN FET
  133. MX6 1
  134. LX6 44-59 SET EPR BIT
  135. BX6 X6+X1
  136. SA6 A1 STORE BACK IN FET
  137. POSMF T,R POSITION FILE - GET HEADER LABELS
  138. SA1 T+1 CLEAR *EPR* BIT IN FET
  139. MX6 1
  140. LX6 44-59 CLEAR EPR BIT
  141. BX6 -X6*X1
  142. SA6 A1 STORE BACK IN FET
  143. SA1 A1-B1 CHECK FET STATUS
  144. AX1 9
  145. MX2 -5
  146. BX1 -X2*X1 GET FET STATUS BITS 13-9
  147. SX2 X1-21B CHECK FOR END-OF-SET
  148. ZR X2,LIS5 IF END-OF-MULTIFILE SET
  149. NZ X1,LIS6 IF ANY OTHER ERROR
  150. MX2 1 NOW RESET *UP* BIT
  151. SA1 T+1
  152. LX2 45+1
  153. BX6 X1+X2
  154. SA6 A1
  155. LIS2 RJ PXL PRINT LABELS FROM XL BUFFER
  156. SA1 TF
  157. ZR X1,LIS4 IF IGNORE TRAILER LABELS
  158. SKIPEI T,R SKIP TO EOI
  159. SX5 TBUF-9
  160. SA1 T CHECK FOR END-OF-REEL
  161. LX1 59-10
  162. PL X1,LIS3 IF NOT AT END-OF-REEL
  163. CLOSER T,,R CLOSE REEL - GET TRAILER LABELS
  164. RJ PXL PRINT LABELS FROM XL BUFFER
  165. OPEN T,REELNR,R OPEN NEXT REEL - GET HEADER LABELS
  166. EQ LIS2
  167.  
  168. LIS3 CLOSE T,NR,R CLOSE FILE - GET TRAILER LABELS
  169. RJ PXL PRINT LABELS FROM XL BUFFER
  170. LIS4 SA1 SI CHECK FOR SETID
  171. ZR X1,LIS5 IF NO SET ID SPECIFIED
  172. SA1 QN NUMBER OF DESIRED FILE
  173. NZ X1,LIS5 IF ONLY ONE FILE WANTED
  174. SA1 SN INCREMENT SEQUENCE NUMBER
  175. SX6 X1+1
  176. SA6 A1
  177. EQ LIS1 GO PROCESS MORE LABELS
  178.  
  179. LIS5 SA1 LR LABELS READ
  180. RJ CDD
  181. SA6 LBR
  182. SA1 LP LABELS PRINTED
  183. RJ CDD
  184. SA6 LBP
  185. WRITEW O,LRP,LRPL
  186. WRITER X2
  187. SA1 EF
  188. NZ X1,LIS7 IF ERROR FLAG SET
  189. MESSAGE (=C* LISTLB COMPLETE.*)
  190. ENDRUN
  191.  
  192. * ENTER HERE AFTER ERROR CONDITION
  193.  
  194. LIS6 SX6 B1 SET ERROR FLAG
  195. SA6 EF
  196. EQ LIS5
  197.  
  198. LIS7 MESSAGE (=C* LISTLB ABORT.*)
  199. ABORT
  200. TITLE SUBROUTINES.
  201. ** COV - CONVERT OCTAL NUMBER TO DECIMAL DISPLAY CODE
  202. *
  203. * ENTRY (X1) = OCTAL NUMBER.
  204. *
  205. * EXIT (X6) = DISPLAY CODE VALUE RIGHT JUSTIFIED WITH
  206. * LEADING ZEROS (4 DIGITS ONLY).
  207. *
  208. * USES X - 0, 1, 2, 3, 6.
  209. * B - 4.
  210. * A - NONE.
  211. *
  212. * CALLS CDD.
  213.  
  214.  
  215. COV SUBR ENTRY/EXIT
  216. RJ CDD CONVERT VALUE TO DISPLAY CODE
  217. LX6 36
  218. BX1 X6
  219. MX6 0
  220. MX2 -6
  221. SB4 4
  222. COV1 LX6 6
  223. LX1 6
  224. BX3 -X2*X1 MASK OFF A CHARACTER
  225. SX0 X3-1R CHECK FOR SPACE (BLANK)
  226. NZ X0,COV2 IF NO SPACE
  227. SX3 1R0 REPLACE WITH 0
  228. COV2 BX6 X6+X3
  229. SB4 B4-B1
  230. NZ B4,COV1 IF MORE CHARACTERS TO DO
  231. EQ COVX RETURN
  232. FHR SPACE 4,10
  233. ** FHR - SEARCH LABEL BUFFER FOR *HDR1* LABEL.
  234. *
  235. * ENTRY TBUF CONTAINS HEADER GROUP LABELS.
  236. *
  237. * EXIT (B2) = INDEX IN TBUF OF *HDR1* LABEL.
  238. *
  239. * USES X - 0, 1, 2, 3.
  240. * B - 2, 7.
  241. * A - 1, 2, 3.
  242.  
  243.  
  244. FHR SUBR ENTRY/EXIT
  245. SB2 B0
  246. MX0 24
  247. SA3 =4LHDR1
  248. FHR1 SA1 TBUF+B2 GET CHARACTER COUNT
  249. MX2 -12
  250. BX1 -X2*X1
  251. ZR X1,FHR2 IF NO *HDR1* LABEL
  252. SA2 A1+B1 GET LABEL ID
  253. BX2 X0*X2
  254. BX2 X2-X3 CHECK IF *HDR1*
  255. ZR X2,FHRX IF FOUND *HDR1* LABEL
  256. SX1 X1+9 CALCULATE WORD COUNT OF LABEL
  257. SX2 10
  258. IX1 X1/X2
  259. SB2 B2+B1 INCREMENT TO FIRST WORD OF LABEL
  260. SB2 B2+X1 INCREMENT TO CHARACTER COUNT OF NEXT LABEL
  261. EQ FHR1 LOOP
  262.  
  263. FHR2 MESSAGE (=C* NO HDR1 LABEL RETURNED ON OPEN.*)
  264. EQ LIS6 TERMINATE JOB
  265. SPACE 4
  266. ** FLT - FIND LABEL TYPE.
  267. *
  268. * ENTRY (X5) = ADDRESS OF FIRST WORD OF LABEL.
  269. *
  270. * EXIT (B4) = POSITION OF LABEL TYPE IN TABLE.
  271. * (B4) = 0 IF LABEL TYPE NOT FOUND.
  272. *
  273. * USES X - 1, 2, 3.
  274. * B - 3, 4, 6, 7.
  275. * A - 1, 2.
  276.  
  277.  
  278. FLT SUBR ENTRY/EXIT
  279. SA1 X5+B1
  280. SB3 TLAB
  281. SB4 B0
  282. SB6 TLABA
  283. SB7 TLABL-1
  284. FLT1 SB4 B4+B1
  285. SA2 B3+B4
  286. BX3 X1-X2
  287. AX3 36
  288. ZR X3,FLTX IF MATCH ON FOUR CHARACTERS
  289. LT B4,B6,FLT1 IF NOT END OF FOUR CHARACTER ENTRIES
  290. FLT2 SB4 B4+B1
  291. SA2 B3+B4
  292. BX3 X1-X2
  293. AX3 42
  294. ZR X3,FLTX IF MATCH ON THREE CHARACTERS - RETURN
  295. LT B4,B7,FLT2 IF NOT END OF TABLE
  296. SB4 B0
  297. EQ FLTX ERROR EXIT
  298. PHE SPACE 4
  299. ** PHE - PROCESS HDR1, EOF1, EOV1 PARAMETERS.
  300. *
  301. * ENTRY (LAB - LAB+7) = EIGHT WORD LABEL BLOCK.
  302. *
  303. * EXIT (HEP - HEP+9) = OUTPUT LINE WITH PARAMETERS MERGED IN.
  304. *
  305. * USES X - 0, 1, 2, 3, 4, 6, 7.
  306. * B - 6, 7.
  307. * A - 1, 2, 3, 4, 6, 7.
  308.  
  309.  
  310. PHE BSS 0 ENTRY
  311. SA1 LAB MOVE LABEL PARAMETERS TO OUTPUT LINE
  312. SA3 HEP
  313. MX0 -36
  314. SA2 A1+B1
  315. BX1 -X0*X1
  316. BX3 X0*X3
  317. LX7 X2 CHARACTERS 7-16 FILE IDENTIFIER
  318. BX6 X3+X1 MERGE CHARACTERS 1-6 FILE IDENTIFIER
  319. SA1 A2+B1
  320. SA7 A3+B1
  321. SA6 A3
  322. SA3 A7+B1
  323. MX0 6
  324. BX6 X0*X1
  325. BX3 -X0*X3
  326. SA4 A3+B1
  327. BX3 X6+X3 MERGE CHARACTER 17 FILE IDENTIFIER
  328. LX1 30
  329. MX0 -24
  330. BX6 -X0*X1
  331. BX3 X0*X3
  332. MX0 12
  333. BX6 X6+X3 MERGE CHARACTERS 1-4 SET IDENTIFIER
  334. SA6 A7+B1
  335. BX4 -X0*X4
  336. BX7 X0*X1
  337. AX1 30
  338. SA2 A1+B1
  339. BX4 X4+X7 MERGE CHARACTERS 5-6 SET IDENTIFIER
  340. MX0 -18
  341. BX1 -X0*X1
  342. BX4 X0*X4
  343. BX7 X4+X1 MERGE CHARACTERS 1-3 SECTION NUMBER
  344. SA7 A6+B1
  345. MX0 6
  346. SA3 A4+B1
  347. BX6 X0*X2
  348. BX3 -X0*X3
  349. LX2 30
  350. BX3 X3+X6 MERGE CHARACTER 4 SECTION NUMBER
  351. MX0 -24
  352. BX6 -X0*X2
  353. SA4 A3+B1
  354. BX3 X0*X3
  355. MX0 24
  356. BX6 X3+X6 MERGE SEQUENCE NUMBER
  357. BX7 X0*X2
  358. SA6 A3
  359. LX0 -24
  360. SA3 A4+B1
  361. LX7 -24
  362. SA1 A2+B1
  363. BX4 -X0*X4
  364. MX0 6
  365. BX7 X4+X7 MERGE GENERATION NUMBER
  366. LX2 24
  367. SA7 A6+B1
  368. BX6 X0*X1
  369. BX2 X0*X2
  370. MX0 12
  371. LX2 6
  372. BX6 X6+X2
  373. LX0 -12
  374. LX6 42
  375. BX3 -X0*X3
  376. LX1 6
  377. MX0 6
  378. BX3 X3+X6 MERGE GENERATION VERSION NUMBER
  379. AX3 6
  380. SA2 A1+B1
  381. BX0 X0*X1
  382. BX6 X0+X3 MERGE CHARACTER 1 CREATION DATE
  383. SA4 A3+B1
  384. LX6 6
  385. MX0 30
  386. SA6 A7+B1
  387. BX4 -X0*X4
  388. LX1 6
  389. SA3 A4+B1
  390. BX7 X0*X1
  391. MX0 36
  392. BX7 X4+X7 MERGE CHARACTERS 2-6 CREATION DATE
  393. AX1 12
  394. BX3 -X0*X3
  395. SA7 A6+B1
  396. SA4 A3+B1
  397. MX0 18
  398. BX6 X0*X2
  399. LX0 18
  400. BX1 X0*X1
  401. MX0 6
  402. BX6 X6+X1
  403. LX6 42
  404. BX6 X6+X3 MERGE EXPIRATION DATE
  405. LX0 -6
  406. BX4 -X0*X4
  407. LX2 12
  408. SA6 A7+B1
  409. BX2 X0*X2
  410. BX7 X2+X4 MERGE FILE ACCESSIBILITY
  411. SA7 A6+B1
  412. SB6 HEP-1
  413. SB7 HEPL+1
  414. EQ PRL4 RETURN
  415. PRL SPACE 4
  416. ** PRL - PRINT LABEL.
  417. *
  418. * ENTRY (A0) = POSITION OF LABEL TYPE IN TABLE.
  419. * (B4) = (A0) = POSITION OF LABEL TYPE IN TLAB.
  420. * (X5) = POSITION OF LABEL IN BUFFER.
  421. *
  422. * EXIT NONE.
  423. *
  424. * USES X - 0, 1, 2, 3, 6, 7.
  425. * B - 2, 4, 5, 6, 7.
  426. * A - 1, 2, 3, 6, 7.
  427. *
  428. * CALLS MVE=, PHE, PVE, WHL, WTW=.
  429.  
  430.  
  431. PRL SUBR ENTRY/EXIT
  432. SA1 A0+TLAB ENTER LABEL TYPE
  433. SA2 LIN+1
  434. MX0 4*6
  435. BX2 -X0*X2
  436. BX1 X0*X1
  437. BX6 X1+X2
  438. SA6 A2
  439. MOVE 8,X5+B1,LAB
  440. SA2 LC
  441. SA3 A2+B1
  442. IX3 X2-X3
  443. NG X3,PRL1 IF NOT END OF PAGE
  444. RJ WHL PROCESS END OF PAGE
  445. PRL1 SA2 LC
  446. SX6 X2+2
  447. SA6 A2
  448. SB4 A0
  449. SA3 TITL+5 BLANK WORD
  450. NZ B4,PRL2 IF STANDARD LABEL TYPE
  451. SA3 NSL
  452. PRL2 BX6 X3
  453. SA6 LIN
  454. WRITEW O,A6,LINL
  455. SB4 A0+
  456. SB5 10B
  457. GT B4,B5,PRLX IF NO MORE LABEL PROCESSING
  458. ZR B4,PRLX IF NO MORE LABEL PROCESSING
  459. SA1 A0+TLAB CHECK SPECIAL PROCESSING REQUIRED
  460. LX1 59-35+18
  461. SB2 X1 ADDRESS OF LABEL PRINT PROCESSOR
  462. ZR B2,PRLX IF NO SPECIAL PROCESSING REQUIRED
  463. JP B2 GO TO CORRECT PROCESSOR
  464.  
  465. PRL4 BSS 0 RETURN HERE
  466. SA2 LC
  467. SA1 A2+B1
  468. IX6 X2-X1
  469. NG X6,PRL5 IF NOT END OF PAGE
  470. SX6 B6
  471. SX7 B7
  472. SA6 PRLA SAVE (B6)
  473. SA7 A6+B1 SAVE (B7)
  474. RJ WHL WRITE HEADER LINE
  475. SA1 PRLA RESTORE (B6) AND (B7)
  476. SA2 A1+B1
  477. SB6 X1
  478. SB7 X2
  479. PRL5 SA3 LC INCREMENT LINE COUNT
  480. SX6 X3+2
  481. SA6 A3
  482. WRITEW O,B6,B7 WRITE PARAMETER LINE
  483. EQ PRLX RETURN
  484.  
  485. PRLA BSS 2 REGISTER SAVE AREA
  486. PVE SPACE 4
  487. ** PVE - PROCESS VOL1 PARAMETERS.
  488. *
  489. * ENTRY (LAB - LAB+7) = EIGHT WORD LABEL BLOCK.
  490. *
  491. * EXIT (VEP - VEP+4) = OUTPUT LINE WITH PARAMETERS MERGED IN.
  492. *
  493. * USES X - 0, 1, 2, 3, 4, 6, 7.
  494. * B - 2, 6, 7.
  495. * A - 1, 2, 3, 4, 6, 7.
  496.  
  497.  
  498. PVE BSS 0 ENTRY
  499. SA1 LAB MOVE LABEL PARAMETERS TO OUTPUT LINE
  500. MX0 -30
  501. SB2 B1+B1
  502. SA2 A1+B1
  503. SA3 VEP
  504. LX1 -6
  505. SA4 A3+B1
  506. BX3 X0*X3
  507. BX6 -X0*X1
  508. MX0 6
  509. BX6 X6+X3 MERGE CHARACTERS 1-5 VSN
  510. BX4 -X0*X4
  511. SA6 A3
  512. BX1 X0*X1
  513. BX2 X0*X2
  514. LX0 -36
  515. BX4 X1+X4 MERGE CHARACTER 6 VSN
  516. LX2 -36
  517. BX4 -X0*X4
  518. SA1 A2+B2
  519. BX7 X4+X2 MERGE ACCESSIBILITY
  520. SA3 A4+B1
  521. SA2 A1+B1
  522. SA7 A6+B1
  523. MX0 -18
  524. BX7 X2 CHARACTERS 4-13 OWNER IDENTIFIER
  525. BX1 -X0*X1
  526. SA4 A3+B2
  527. BX6 X0*X3
  528. MX0 6
  529. BX6 X6+X1 MERGE CHARACTERS 1-3 OWNER IDENTIFIER
  530. SA1 A2+B1
  531. SA6 A7+B1
  532. SA7 A6+B1
  533. BX4 -X0*X4
  534. BX1 X0*X1
  535. LX0 18
  536. SA2 A1+B2
  537. BX6 X4+X1 MERGE CHARACTER 14 OWNER IDENTIFIER
  538. LX2 12
  539. BX6 -X0*X6
  540. BX2 X0*X2
  541. BX6 X6+X2 MERGE LABEL STANDARD LEVEL
  542. SA6 A7+B1
  543. SB6 VEP-1
  544. SB7 VEPL+1
  545. EQ PRL4 RETURN
  546. PXL SPACE 4
  547. ** PXL - PRINT LABELS FROM XL BUFFER.
  548. *
  549. * ENTRY (LR) = NUMBER OF LABELS READ SO FAR.
  550. * (LP) = NUMBER OF LABELS PRINTED SO FAR.
  551. *
  552. * EXIT (LR), (LP) UPDATED.
  553. * XL BUFFER CLEARED.
  554. *
  555. * USES X - 1, 4, 5, 6.
  556. * A - 0, 1, 4, 6.
  557. *
  558. * CALLS FLT, PRL.
  559.  
  560.  
  561. PXL2 SX6 B0+ CLEAR XL BUFFER
  562. SA6 TBUF
  563.  
  564. PXL SUBR ENTRY/EXIT
  565. SX5 TBUF-9 PRESET XL BUFFER ADDRESS
  566. PXL1 SX5 X5+9 INCREMENT BUFFER ADDRESS
  567. SA1 LR
  568. SA4 X5 READ BUFFER ENTRY
  569. SX6 X1+B1
  570. ZR X4,PXL2 IF END OF LABELS IN BUFFER
  571. SA6 LR INCREMENT LABELS READ
  572. RJ FLT FIND LABEL TYPE
  573. SA0 B4 SET POSITION OF LABEL IN TABLE
  574. SA1 B4+TLAB
  575. LX1 59-0
  576. PL X1,PXL1 IF NOT PERMITTED TO PRINT THIS TYPE
  577. SA1 LP INCREMENT LABELS PRINTED
  578. SX6 X1+B1
  579. SA6 A1
  580. RJ PRL PRINT LABEL
  581. EQ PXL1 LOOP FOR NEXT LABEL
  582. SHD SPACE 4
  583. ** SHD - SET UP *HDR1* LABEL IN EXTENDED LABEL BUFFER.
  584. *
  585. * ENTRY (SI) = SET IDENTIFIER.
  586. * (QN) = SEQUENCE NUMBER FROM COMMAND.
  587. * (SN) = SEQUENCE NUMBER TO BE USED IN *HDR1* LABEL.
  588. *
  589. * EXIT *HDR1* LABEL TYPE, SET ID, AND SEQUENCE NUMBER SET
  590. * IN EXTENDED LABEL BUFFER.
  591. *
  592. * USES X - 1, 2, 5, 6, 7.
  593. * B - NONE.
  594. * A - 1, 5, 6, 7.
  595.  
  596.  
  597. SHD SUBR ENTRY/EXIT
  598. SX6 80 SET LENGTH OF LABEL IN CHARACTERS
  599. SA6 TBUF
  600. SX1 3RHDR SET *HDR1*
  601. SX6 1R1
  602. LX1 6
  603. BX6 X1+X6 *HDR1*
  604. LX6 36
  605. SA6 TBUF+1+0
  606. MX6 0 CLEAR OUT FI FIELD IN XL BUFFER
  607. SA6 TBUF+1+1
  608. SA5 SI SET SETID IN XL BUFFER
  609. BX6 X5
  610. SA6 TBUF+1+2
  611. SA1 SN SEQUENCE NUMBER
  612. RJ COV CONVERT TO DISPLAY CODE
  613. MX2 -24
  614. BX6 -X2*X6
  615. LX6 30
  616. SA6 TBUF+1+3 SET SEQUENCE NUMBER IN XL BUFFER
  617. SX2 4
  618. MX6 0
  619. SHD1 SA6 TBUF+1+X2 ZERO REMAINING PORTION OF *HDR1* LABEL
  620. SX2 X2+1
  621. SX3 X2-9
  622. NZ X3,SHD1 IF MORE TO CLEAR
  623. EQ SHDX
  624. SPACE 4
  625. ** WHL - WRITE HEADER LINE.
  626. *
  627. * ENTRY (PN) = PAGE NUMBER.
  628. *
  629. * EXIT (PN) = (PN) + 1.
  630. * (LC) = 3.
  631. *
  632. * USES X - 0, 1, 6.
  633. * B - 3.
  634. * A - 1, 6.
  635. *
  636. * CALLS CDD.
  637. *
  638. * MACROS WRITEW.
  639.  
  640.  
  641. WHL SUBR ENTRY/EXIT
  642. SA1 PN INCREMENT PAGE NUMBER
  643. SX6 X1+B1
  644. BX1 X6
  645. SA6 PN
  646. RJ CDD CONVERT PAGE NUMBER TO DISPLAY CODE
  647. SB3 B2-47
  648. SA1 PAGE
  649. LX6 12
  650. MX0 1
  651. SB3 -B3
  652. AX0 X0,B3
  653. BX6 -X0*X6
  654. BX1 X0*X1
  655. BX6 X1+X6
  656. SA6 A1
  657. WRITEW O,TITL,TITLL
  658. SX6 3 SET LINE COUNT
  659. SA6 LC
  660. EQ WHLX RETURN
  661. TITLE CONSTANTS AND VARIABLES.
  662. ** CONSTANTS AND VARIABLES.
  663.  
  664.  
  665. ** TLAB FIELD DEFENITION.
  666. *T,TLAB VFD 24/LABEL IDENTIFIER
  667. *T, VFD 18/ADDRESS OF LABEL PRINT PROCESSOR
  668. *T, VFD 17/NOT USED
  669. *T, VFD 1/LABEL TYPE MAY BE PRINTED
  670.  
  671.  
  672. TLAB BSS 0
  673. LOC 0
  674. VFD 24/4LDARD,18/0,18/0 UNIDENTIFIED LABEL
  675. VOL1 VFD 24/4LVOL1,18/PVE,18/0 VOL1
  676. HDR1 VFD 24/4LHDR1,18/PHE,18/0 HDR1
  677. EOF1 VFD 24/4LEOF1,18/PHE,18/0 EOF1
  678. EOV1 VFD 24/4LEOV1,18/PHE,18/0 EOV1
  679. TLABA EQU *-VOL1 NUMBER OF REQUIRED LABELS
  680. VOL VFD 24/4LVOLN,18/0,18/0 VOL2-9
  681. HDR VFD 24/4LHDRN,18/0,18/0 HDR2-9
  682. EOF VFD 24/4LEOFN,18/0,18/0 EOF2-9
  683. EOV VFD 24/4LEOVN,18/0,18/0 EOV2-9
  684. UVL VFD 24/4LUVLX,18/0,18/0 UVLX
  685. UHL VFD 24/4LUHLX,18/0,18/0 UHLX
  686. UTL VFD 24/4LUTLX,18/0,18/0 UTLX
  687. LOC *O
  688. TLABL EQU *-TLAB
  689.  
  690. QN CON 0 FILE SEQUENCE NUMBER
  691. SN CON 1 SEQUENCE NUMBER TO USE IN *HDR1* LABEL
  692. CR CON 0 CLOSE REEL FLAG
  693. EF CON 0 SAVE ERROR FLAG HERE
  694. TF CON 0 0=DO NOT READ TRAILER LABELS
  695. * 1=READ TRAILER LABELS
  696. SI CON 0 SET IDENTIFIER
  697. PN BSSZ 1 PAGE NUMBER
  698. LC BSSZ 2 LINE COUNT
  699. LL EQU LC+1 LINE LIMIT
  700. LR BSSZ 1 LABELS READ
  701. LP BSSZ 1 LABELS PRINTED
  702.  
  703. TLOF VFD 12/0,18/TLOF+1,30/1
  704. CON 3 SETLOF FLUSH TABLE
  705. VFD 42/6LOUTPUT,18/O
  706. CON 0 END OF SETLOF TABLE
  707.  
  708. NSL DATA 10H NON-STAN
  709. LIN DATA 10H LABEL OUTPUT LINE
  710. DATA 6A LABEL
  711. DATA 10H READ:
  712. LAB BSS 8
  713. DATA 8L
  714. DATA 8L
  715. LINL EQU *-LIN
  716.  
  717. DATA 10H HDR1,EOF1,EOV1 PARAMETER OUTPUT LINE
  718. HEP DATA 10H FI=......
  719. DATA 10H..........
  720. DATA 10H., SI=....
  721. DATA 10H.., SN=...
  722. DATA 10H., QN=....
  723. DATA 10H, G=....,
  724. DATA 10HE=.., CR=.
  725. DATA 10H....., RT=
  726. DATA 10H......, FA
  727. DATA 3L=..
  728. DATA 2L
  729. HEPL EQU *-HEP
  730.  
  731. DATA 10H VOL1 PARAMETER OUTPUT LINE
  732. VEP DATA 10H VSN=.....
  733. DATA 10H., VA=., O
  734. DATA 10HWNERID=...
  735. DATA 10H..........
  736. DATA 10H., LSL=..
  737. DATA 8L
  738. DATA 2L
  739. VEPL EQU *-VEP
  740.  
  741. TITL DATA 10H
  742. DATA 40H LISTLB - LIST MAGNETIC TAPE LABELS.
  743. DATA 40H
  744. DATE DATA 10H
  745. TIME DATA 10H
  746. DATA 4APAGE
  747. PAGE DATA 8L
  748. DATA 2L
  749. DATA 2L
  750. TITLL EQU *-TITL
  751.  
  752. LRP DATA 10H LABELS READ AND PRINTED
  753. LBR DATA 10H
  754. DATA 10H LABELS RE
  755. DATA 10HAD.
  756. LBP DATA 10H
  757. DATA 10H LABELS PR
  758. DATA 6LINTED.
  759. LRPL EQU *-LRP
  760. COMC SPACE 4
  761. ** CALL COMMON DECKS.
  762.  
  763.  
  764. *CALL COMCCDD
  765. *CALL COMCCIO
  766. *CALL COMCLFM
  767. *CALL COMCMVE
  768. *CALL COMCSYS
  769. *CALL COMCWTW
  770. EJECT
  771. USE //
  772. SEG
  773. BUFS BSS 0
  774.  
  775. TBUF EQU *
  776.  
  777. OBUF EQU TBUF+TBUFL
  778.  
  779. RFL= EQU OBUF+OBUFL+4
  780. ARG= EQU *
  781. TITLE PRESET.
  782. PRS SPACE 4
  783. ORG BUFS
  784.  
  785.  
  786. ** THE FOLLOWING CODE IS OVERLAYED BY TLAB THE TABLE OF LABELS
  787. * READ FROM THE TAPE.
  788.  
  789. ** PRS - PRESET.
  790. *
  791. * USES X - 0, 1, 3, 4, 5, 6.
  792. * A - 1, 4, 5, 6.
  793. * B - 2, 3, 4.
  794. *
  795. * CALLS IPP, KWD, PER, POP, USB, WHL.
  796. *
  797. * MACROS CLOCK, DATE, REWIND.
  798.  
  799. PRS SUBR ENTRY/EXIT
  800. SB1 1
  801. SB2 CCDR UNPACK COMMAND
  802. RJ USB
  803. SA5 PRSA
  804. PRS0 RJ POP PICK OUT PARAMETER
  805. NG B5,PRS6 IF COMMAND ERROR
  806. BX3 X6-X5
  807. NZ X3,PRS0 IF NOT PROGRAM NAME
  808. RJ POP
  809. NG B5,PRS6 IF COMMAND ERROR
  810. SA4 A1
  811. SX5 X6
  812. SX3 X4-1R=
  813. ZR X3,PRS2 IF NO TAPE FILE SPECIFIED
  814. NZ X5,PRS8 IF INCORRECT PARAMETER
  815. SA1 T PLACE USER SPECIFIED FILE NAME IN FET
  816. SX1 X1
  817. BX6 X1+X6
  818. SA6 T
  819.  
  820. * RETURN FROM ARGUMENT PROCESSORS.
  821.  
  822. PRS1 RJ POP GET NEXT PARAMETER
  823. SA4 A1+
  824. NG B5,PRS6 IF COMMAND ERROR
  825. PRS2 SX3 X4-1R=
  826. NZ X3,PRS6 IF NOT *=*
  827. ZR X2,PRS8 IF INCORRECT TERMINATOR
  828. RJ KWD
  829. ZR B3,PRS6 IF INCORRECT KEYWORD
  830. RJ POP
  831. NG B5,PRS8 IF INCORRECT PARAMETER
  832. JP B3 JUMP TO ELEMENT PROCESSOR
  833.  
  834. PRS3 SA1 SI CHECK FOR *SETID*
  835. NZ X1,PRS4 IF *SET ID* SPECIFIED
  836. SA1 QN SEQUENCE NUMBER
  837. ZR X1,PRS4 IF FILE SEQUENCE NUMBER SPECIFIED
  838. SX1 QNS INCORRECT COMBINATION OF PARAMETERS
  839. JP PER
  840.  
  841. PRS4 REWIND T,R
  842. CLOCK TIME
  843. DATE DATE
  844. RJ IPP INITIALIZE PAGE PARAMETERS
  845. RJ WHL WRITE HEADER LINE
  846. SX1 TBUFL SET EXTENDED LABEL BUFFER LENGTH AND
  847. * ADDRESS
  848. SX6 TBUF
  849. LX1 18
  850. BX6 X6+X1
  851. SA6 T+9
  852. MX0 1 SET FLUSH BIT IN LIST OUTPUT FET
  853. LX0 36-59
  854. SA1 O+1
  855. BX6 X0+X1
  856. SA6 A1
  857. MX0 42 MOVE LIST OUTPUT LFN TO SETLOF TABLE
  858. SA1 A1-B1
  859. BX1 X0*X1
  860. SX6 O
  861. BX6 X1+X6
  862. SA6 TLOF+2
  863. SETLOF TLOF SET FLUSH BIT TABLE POINTER
  864. SA1 LO
  865. NZ X1,PRSX IF LO PROCESSED
  866. SB4 TLABL
  867. SX5 B1
  868. SB3 B0
  869. PRS5 SA1 TLAB+B3 SET PERMISION TO PRINT ALL LABELS
  870. SB3 B3+B1
  871. BX6 X1+X5
  872. SA6 A1+
  873. LT B3,B4,PRS5 IF NOT END OF LABEL TABLE
  874. SX6 B1 SET READ TRAILER LABELS FLAG
  875. SA6 TF
  876. JP PRSX RETURN
  877.  
  878. PRS6 ZR B6,PRS3 IF END OF PARAMETERS
  879. SX1 CCE COMMAND ERROR
  880. JP PER
  881.  
  882. PRS7 SX1 FNE FILE NAME ERROR
  883. JP PER
  884.  
  885. PRS8 SX1 IPE INCORRECT PARAMETER ERROR
  886. JP PER
  887.  
  888. PRSA CON 0LLISTLB
  889. IPP SPACE 4,15
  890. ** IPP - INITIALIZE PAGE PARAMETERS.
  891. *
  892. * EXIT (LL) = LINE LIMIT.
  893. *
  894. * USES X - 1, 2, 6.
  895. * A - 1, 6.
  896. *
  897. * CALLS STF.
  898. *
  899. * MACROS GETPP, WRITEC.
  900.  
  901.  
  902. IPP SUBR ENTRY/EXIT
  903. GETPP IPPA,LL,IPPA GET PAGE SIZE PARAMETERS
  904. SX2 O
  905. RJ STF
  906. ZR X6,IPPX IF TERMINAL PRINT FILE
  907. WRITEC X2,IPPA
  908. SA1 =10H1
  909. BX6 X1 FORCE PAGE EJECT
  910. SA6 TITL
  911. EQ IPPX RETURN
  912.  
  913.  
  914. IPPA BSS 2 PAGE SIZE PARAMETERS
  915. KWD SPACE 4
  916. ** KWD - KEYWORD VERIFIER.
  917. *
  918. * ENTRY (X6) = KEYWORD.
  919. *
  920. * EXIT (B3) = ADDRESS OF KEYWORD PROCESSOR.
  921. * (B3) = 0, IF KEYWORD NOT FOUND.
  922. *
  923. * USES A - 1, 7.
  924. * X - 0, 1, 7.
  925.  
  926.  
  927. KWD SUBR ENTRY/EXIT
  928. BX1 X6
  929. AX1 59
  930. SA1 X1+TKWD-1
  931. KWD1 SA1 A1+B1
  932. BX0 X6-X1
  933. SB3 X1 ADDRESS OF KEYWORD PROCESSOR
  934. AX0 48
  935. ZR X1,KWDX IF END OF TABLE
  936. NZ X0,KWD1 IF NO MATCH
  937. MX7 -1 ENABLE/DISABLE LITERAL PROCESSING
  938. LX1 0-18
  939. BX7 -X7*X1
  940. SA7 LIT
  941. JP KWDX RETURN
  942.  
  943.  
  944. ** TKWD - TABLE OF KEYWORDS.
  945. *
  946. *T 12/ARGUMENT,29/0,1/LA,18/ARGUMENT PROCESSOR
  947. * LA = 0 IF LITERALS ARE ALLOWED
  948. * LA = 1 IF LITERALS ARE NOT ALLOWED
  949.  
  950.  
  951. TKWD BSS 0
  952. VFD 12/0LL,29/0,1/0,18/PLP
  953. VFD 12/0LLO,29/0,1/0,18/PLO
  954. VFD 12/0LSI,29/0,1/1,18/PSI
  955. VFD 12/0LM,29/0,1/1,18/PSI
  956. VFD 12/0LQN,29/0,1/0,18/PQN
  957. VFD 12/0LP,29/0,1/0,18/PQN
  958. CON 0 END OF TABLE
  959. PER SPACE 4
  960. ** PER - PROCESS ERRORS.
  961. *
  962. * ENTRY (X1) = ADDRESS OF ERROR MESSAGE.
  963.  
  964.  
  965. PER BSS 0
  966. MESSAGE X1
  967. ABORT
  968.  
  969.  
  970. CCE DATA C* COMMAND ERROR.*
  971. FNE DATA C* FILE NAME ERROR.*
  972. IPE DATA C* INCORRECT PARAMETER.*
  973. QNS DATA C* INCORRECT COMBINATION OF QN/SI.*
  974. TITLE ARGUMENT PROCESSORS.
  975. ** PLO - PROCESS LO PARAMETER.
  976. *
  977. * ENTRY (X6) = LIST OPTIONS.
  978.  
  979.  
  980. PLO BSS 0 ENTRY
  981. MX0 -6
  982. BX1 -X0*X6
  983. NZ X1,PRS8 IF TOO MANY LIST OPTIONS
  984. PLO1 LX6 6
  985. SX5 1RA
  986. BX1 -X0*X6
  987. ZR X1,PLO4 IF END OF LIST OPTIONS - RETURN
  988. BX1 X1-X5
  989. ZR X1,PRS1 IF *A* LIST OPTION
  990. SX5 B1 PRINT LABEL BIT
  991. SA1 TPLO-1
  992. PLO2 SA1 A1+B1
  993. BX3 X6-X1
  994. ZR X1,PRS8 IF LIST OPTION NOT IN TABLE
  995. BX3 -X0*X3
  996. NZ X3,PLO2 IF NO MATCH
  997. MX3 -4
  998. SA2 TF
  999. NZ X2,PLO3 IF READ TRAILER LABEL FLAG ALREADY SET
  1000. BX2 -X0*X1 CHECK OPTIONS
  1001. SX7 X2-1RH
  1002. ZR X7,PLO3 IF *H* OPTION SELECTED
  1003. SX7 X2-1RV
  1004. ZR X7,PLO3 IF *V* OPTION SELECTED
  1005. SX7 B1 SET READ TRAILER LABELS FLAG
  1006. SA7 A2
  1007. PLO3 LX1 4
  1008. BX4 -X3*X1
  1009. ZR X4,PLO1 IF DONE PROCESSING THIS LIST OPTION
  1010. SA4 X4+TLAB
  1011. BX7 X4+X5
  1012. SA7 A4
  1013. EQ PLO3
  1014.  
  1015. PLO4 SA6 LO SET LIST OPTIONS PROCESSED
  1016. EQ PRS1 GET NEXT PARAMETER
  1017.  
  1018. LO CON 0
  1019.  
  1020. TPLO BSS 0
  1021. VFD 4/VOL1,4/HDR1,4/EOF1,4/EOV1,4/VOL,4/HDR,4/EOF,4/EOV
  1022. VFD 4/UVL/,4/UHL,4/UTL,10/0,6/1RA A - OPTION
  1023. VFD 4/VOL1,4/HDR1,4/EOF1,4/EOV1,38/0,6/1RR R - OPTION
  1024. VFD 4/VOL,4/HDR,4/EOF,4/EOV,4/UVL,4/UHL,4/UTL,26/0
  1025. VFD 6/1RO O - OPTION
  1026. VFD 4/VOL1,4/VOL,46/0,6/1RV V - OPTION
  1027. VFD 4/HDR1,4/HDR,46/0,6/1RH H - OPTION
  1028. VFD 4/EOF1,4/EOF,46/0,6/1RF F - OPTION
  1029. VFD 4/EOV1,4/EOV,46/0,6/1RE E - OPTION
  1030. VFD 4/UVL,4/UHL,4/UTL,42/0,6/1RU U - OPTION
  1031. CON 0 END OF TABLE
  1032. PLP SPACE 4
  1033. ** PLP - PROCESS L PARAMETER.
  1034. *
  1035. * ENTRY (X6) = OUTPUT FILE NAME.
  1036.  
  1037.  
  1038. PLP BSS 0 ENTRY
  1039. MX0 42
  1040. BX0 -X0*X6
  1041. SA1 O
  1042. NZ X0,PRS7 IF FILE NAME TOO LONG
  1043. SX1 X1
  1044. BX6 X6+X1
  1045. SA6 A1
  1046. JP PRS1 GET NEXT PARAMETER
  1047. PSI SPACE 4
  1048. ** PSI - PROCESS SI PARAMETER.
  1049. *
  1050. * ENTRY (X6) = SET IDENTIFIER.
  1051.  
  1052.  
  1053. PSI BSS 0 ENTRY
  1054. MX0 6*6
  1055. BX0 -X0*X6
  1056. NZ X0,PRS8 IF SET IDENTIFIER TOO LONG
  1057. BX1 X6
  1058. RJ SFN SPACE FILL NAME
  1059. MX0 6*6
  1060. BX6 X0*X6
  1061. LX6 54
  1062. SA6 SI
  1063. JP PRS1 GET NEXT PARAMETER
  1064. PQN SPACE 4
  1065. ** PQN - PROCESS QN PARAMETER.
  1066. *
  1067. * ENTRY (X6) = FILE SEQUENCE NUMBER.
  1068.  
  1069.  
  1070. PQN BSS 0 ENTRY
  1071. MX0 4*6
  1072. BX5 X6
  1073. BX0 -X0*X6
  1074. NZ X0,PRS8 IF FILE SEQUENCE NUMBER TOO LONG
  1075. SB7 B1
  1076. RJ DXB CONVERT TO BINARY
  1077. SA6 SN
  1078. SA6 QN
  1079. JP PRS1 GET NEXT PARAMETER
  1080. SPACE 4
  1081. ** COMMON DECKS.
  1082.  
  1083. *CALL COMCCPM
  1084. *CALL COMCDXB
  1085. LIT CON 0 DEFINE LITERAL PROCESSING
  1086. *CALL COMCPOP
  1087. *CALL COMCSFN
  1088. *CALL COMCSTF
  1089. *CALL COMCUSB
  1090. *CALL COMCWTC
  1091. SPACE 4
  1092. END