IDENT LISTLB,FETS
ABS
ENTRY LISTLB
ENTRY RFL=
ENTRY ARG=
SYSCOM B1
*COMMENT LISTLB - LIST MAGNETIC TAPE LABELS.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE LISTLB - LIST MAGNETIC TAPE LABELS.
SPACE 4
*** LISTLB - LIST MAGNETIC TAPE LABELS.
* W. E. GOEBEL. 74/01/21.
* R. L. MUELLER. 75/10/15.
* L. C. HAAS. 76/09/21. RESEQUENCE.
SPACE 4
*** LISTLB READS ANSI LABELS ON A SPECIFIED TAPE FILE
* AND LISTS THE DESIRED LABELS ON AN OUTPUT FILE.
*
* IF LISTLB IS ABORTED, THE OUTPUT BUFFER IS FLUSHED.
*
* THE COMMAND.
*
* LISTLB(LFN,P1=VAL1,P2=VAL2,...,PN=VALN)
*
* ARGUMENT PARAMETERS.
*
* LFN NAME OF THE TAPE FILE.
*
* SI=SETID OR MULTI-FILE TAPE PARAMETER AND USED IN
* M=SETID CONJUNCTION WITH THE QN(OR P) PARAMETER
* AS FOLLOWS-
* 1. SI .NE. 0 AND QN = 0 - LIST THE LABELS
* OF ALL FILES IN THE MULTI-FILE SET
* WITH SET IDENTIFIER = *SETID*.
* 2. SI .NE. 0 AND QN = N - LIST ONLY THE
* LABELS FOR FILE N OF THE MULTI-FILE SET.
* 3. SI = 0 AND QN .NE. 0 - INCORRECT COM-
* BINATION - JOB WILL BE ABORTED.
*
* QN=SEQNO OR MULTI-FILE TAPE PARAMETER AND USED IN
* P=SEQNO CONJUNCTION WITH THE SI(OR M) PARAMETER.
* (SEE ABOVE)
*
* LO=AROVHFEU A - LIST ALL LABELS.
* R - LIST ALL REQUIRED LABELS.
* VOL1,HDR1,EOF1,EOV1.
* O - LIST ALL OPTIONAL LABELS.
* VOL2-9,HDR2-9,EOF2-9,EOV2-9,
* UVLN,UHLX,UTLX.
* V - LIST ALL VOLN LABELS.
* H - LIST ALL HDRN LABELS.
* F - LIST ALL EOFN LABELS.
* E - LIST ALL EOVN LABELS.
* U - LIST ALL UVL,UHL,UTL LABELS.
*
* L=FILENAM LIST LABELS ON FILE FILENAM.
*
* DEFAULTS LFN = TAPE
* LO = A
* L = OUTPUT
SPACE 10
*** DAYFILE MESSAGES.
*
* * COMMAND ERROR.* = UNABLE TO INTERPRET COMMAND.
*
* * FILE NAME ERROR.* = FILE NAME IS TOO LONG.
*
* * INCORRECT PARAMETER.* = PARAMETER IS IN ERROR.
*
* * INCORRECT COMBINATION OF QN/SI.* = PLEASE SPECIFY *SETID*.
*
* * LISTLB ABORT.* = CHECK DAYFILE FOR REASON.
*
* * NO HDR1 LABEL RETURNED ON OPEN.* = NOTIFY CDC ANALYST.
*
* * LISTLB COMPLETE.*
TITLE ASSEMBLY CONSTANTS AND FETS.
*CALL COMCMAC
*CALL COMCCMD
**** ASSEMBLY CONSTANTS.
TBUFL EQU 1*9+9*9+9*9+64*9+1
OBUFL EQU 1001B
****
ORG 110B
* FETS.
FETS BSS 0
T BSS 0 TAPE FILE
TAPE FILEB TBUF,TBUFL,(FET=10),XL,UPR
O BSS 0 LIST FILE
OUTPUT FILEB OBUF,OBUFL,(FET=8)
TITLE MAIN ROUTINE.
LISTLB SPACE 4
** LISTLB - MAIN ROUTINE.
LISTLB BSS 0
RJ PRS
MX6 0 CLEAR XL BUFFER
SA6 TBUF
SA1 QN
NZ X1,LIS1 IF MULTI-FILE AND 1 FILE WANTED
OPEN T,ALTER,R OPEN FILE - GET HEADER GROUP LABELS
SA1 SI CHECK FOR MULTI-FILE
ZR X1,LIS2 IF NOT MULTI-FILE TAPE
RJ FHR FIND *HDR1* LABEL
SA1 TBUF+B2+4 GET FILE SEQUENCE NUMBER
MX0 24
LX1 6
BX5 X0*X1
SB7 B1
RJ DXB CONVERT TO BINARY
SA6 SN
EQ LIS2 PRINT LABELS FROM XL BUFFER
LIS1 RJ SHD SET UP *HDR1* LABEL IN EXTENDED BUFFER
MX2 1 CLEAR *UP* BIT TO ALLOW AUTO REEL SWAP
SA1 T+1
LX2 45+1
BX6 -X2*X1
SA6 A1
SA1 T+1 SET *EPR* BIT IN FET
MX6 1
LX6 44-59 SET EPR BIT
BX6 X6+X1
SA6 A1 STORE BACK IN FET
POSMF T,R POSITION FILE - GET HEADER LABELS
SA1 T+1 CLEAR *EPR* BIT IN FET
MX6 1
LX6 44-59 CLEAR EPR BIT
BX6 -X6*X1
SA6 A1 STORE BACK IN FET
SA1 A1-B1 CHECK FET STATUS
AX1 9
MX2 -5
BX1 -X2*X1 GET FET STATUS BITS 13-9
SX2 X1-21B CHECK FOR END-OF-SET
ZR X2,LIS5 IF END-OF-MULTIFILE SET
NZ X1,LIS6 IF ANY OTHER ERROR
MX2 1 NOW RESET *UP* BIT
SA1 T+1
LX2 45+1
BX6 X1+X2
SA6 A1
LIS2 RJ PXL PRINT LABELS FROM XL BUFFER
SA1 TF
ZR X1,LIS4 IF IGNORE TRAILER LABELS
SKIPEI T,R SKIP TO EOI
SX5 TBUF-9
SA1 T CHECK FOR END-OF-REEL
LX1 59-10
PL X1,LIS3 IF NOT AT END-OF-REEL
CLOSER T,,R CLOSE REEL - GET TRAILER LABELS
RJ PXL PRINT LABELS FROM XL BUFFER
OPEN T,REELNR,R OPEN NEXT REEL - GET HEADER LABELS
EQ LIS2
LIS3 CLOSE T,NR,R CLOSE FILE - GET TRAILER LABELS
RJ PXL PRINT LABELS FROM XL BUFFER
LIS4 SA1 SI CHECK FOR SETID
ZR X1,LIS5 IF NO SET ID SPECIFIED
SA1 QN NUMBER OF DESIRED FILE
NZ X1,LIS5 IF ONLY ONE FILE WANTED
SA1 SN INCREMENT SEQUENCE NUMBER
SX6 X1+1
SA6 A1
EQ LIS1 GO PROCESS MORE LABELS
LIS5 SA1 LR LABELS READ
RJ CDD
SA6 LBR
SA1 LP LABELS PRINTED
RJ CDD
SA6 LBP
WRITEW O,LRP,LRPL
WRITER X2
SA1 EF
NZ X1,LIS7 IF ERROR FLAG SET
MESSAGE (=C* LISTLB COMPLETE.*)
ENDRUN
* ENTER HERE AFTER ERROR CONDITION
LIS6 SX6 B1 SET ERROR FLAG
SA6 EF
EQ LIS5
LIS7 MESSAGE (=C* LISTLB ABORT.*)
ABORT
TITLE SUBROUTINES.
** COV - CONVERT OCTAL NUMBER TO DECIMAL DISPLAY CODE
*
* ENTRY (X1) = OCTAL NUMBER.
*
* EXIT (X6) = DISPLAY CODE VALUE RIGHT JUSTIFIED WITH
* LEADING ZEROS (4 DIGITS ONLY).
*
* USES X - 0, 1, 2, 3, 6.
* B - 4.
* A - NONE.
*
* CALLS CDD.
COV SUBR ENTRY/EXIT
RJ CDD CONVERT VALUE TO DISPLAY CODE
LX6 36
BX1 X6
MX6 0
MX2 -6
SB4 4
COV1 LX6 6
LX1 6
BX3 -X2*X1 MASK OFF A CHARACTER
SX0 X3-1R CHECK FOR SPACE (BLANK)
NZ X0,COV2 IF NO SPACE
SX3 1R0 REPLACE WITH 0
COV2 BX6 X6+X3
SB4 B4-B1
NZ B4,COV1 IF MORE CHARACTERS TO DO
EQ COVX RETURN
FHR SPACE 4,10
** FHR - SEARCH LABEL BUFFER FOR *HDR1* LABEL.
*
* ENTRY TBUF CONTAINS HEADER GROUP LABELS.
*
* EXIT (B2) = INDEX IN TBUF OF *HDR1* LABEL.
*
* USES X - 0, 1, 2, 3.
* B - 2, 7.
* A - 1, 2, 3.
FHR SUBR ENTRY/EXIT
SB2 B0
MX0 24
SA3 =4LHDR1
FHR1 SA1 TBUF+B2 GET CHARACTER COUNT
MX2 -12
BX1 -X2*X1
ZR X1,FHR2 IF NO *HDR1* LABEL
SA2 A1+B1 GET LABEL ID
BX2 X0*X2
BX2 X2-X3 CHECK IF *HDR1*
ZR X2,FHRX IF FOUND *HDR1* LABEL
SX1 X1+9 CALCULATE WORD COUNT OF LABEL
SX2 10
IX1 X1/X2
SB2 B2+B1 INCREMENT TO FIRST WORD OF LABEL
SB2 B2+X1 INCREMENT TO CHARACTER COUNT OF NEXT LABEL
EQ FHR1 LOOP
FHR2 MESSAGE (=C* NO HDR1 LABEL RETURNED ON OPEN.*)
EQ LIS6 TERMINATE JOB
SPACE 4
** FLT - FIND LABEL TYPE.
*
* ENTRY (X5) = ADDRESS OF FIRST WORD OF LABEL.
*
* EXIT (B4) = POSITION OF LABEL TYPE IN TABLE.
* (B4) = 0 IF LABEL TYPE NOT FOUND.
*
* USES X - 1, 2, 3.
* B - 3, 4, 6, 7.
* A - 1, 2.
FLT SUBR ENTRY/EXIT
SA1 X5+B1
SB3 TLAB
SB4 B0
SB6 TLABA
SB7 TLABL-1
FLT1 SB4 B4+B1
SA2 B3+B4
BX3 X1-X2
AX3 36
ZR X3,FLTX IF MATCH ON FOUR CHARACTERS
LT B4,B6,FLT1 IF NOT END OF FOUR CHARACTER ENTRIES
FLT2 SB4 B4+B1
SA2 B3+B4
BX3 X1-X2
AX3 42
ZR X3,FLTX IF MATCH ON THREE CHARACTERS - RETURN
LT B4,B7,FLT2 IF NOT END OF TABLE
SB4 B0
EQ FLTX ERROR EXIT
PHE SPACE 4
** PHE - PROCESS HDR1, EOF1, EOV1 PARAMETERS.
*
* ENTRY (LAB - LAB+7) = EIGHT WORD LABEL BLOCK.
*
* EXIT (HEP - HEP+9) = OUTPUT LINE WITH PARAMETERS MERGED IN.
*
* USES X - 0, 1, 2, 3, 4, 6, 7.
* B - 6, 7.
* A - 1, 2, 3, 4, 6, 7.
PHE BSS 0 ENTRY
SA1 LAB MOVE LABEL PARAMETERS TO OUTPUT LINE
SA3 HEP
MX0 -36
SA2 A1+B1
BX1 -X0*X1
BX3 X0*X3
LX7 X2 CHARACTERS 7-16 FILE IDENTIFIER
BX6 X3+X1 MERGE CHARACTERS 1-6 FILE IDENTIFIER
SA1 A2+B1
SA7 A3+B1
SA6 A3
SA3 A7+B1
MX0 6
BX6 X0*X1
BX3 -X0*X3
SA4 A3+B1
BX3 X6+X3 MERGE CHARACTER 17 FILE IDENTIFIER
LX1 30
MX0 -24
BX6 -X0*X1
BX3 X0*X3
MX0 12
BX6 X6+X3 MERGE CHARACTERS 1-4 SET IDENTIFIER
SA6 A7+B1
BX4 -X0*X4
BX7 X0*X1
AX1 30
SA2 A1+B1
BX4 X4+X7 MERGE CHARACTERS 5-6 SET IDENTIFIER
MX0 -18
BX1 -X0*X1
BX4 X0*X4
BX7 X4+X1 MERGE CHARACTERS 1-3 SECTION NUMBER
SA7 A6+B1
MX0 6
SA3 A4+B1
BX6 X0*X2
BX3 -X0*X3
LX2 30
BX3 X3+X6 MERGE CHARACTER 4 SECTION NUMBER
MX0 -24
BX6 -X0*X2
SA4 A3+B1
BX3 X0*X3
MX0 24
BX6 X3+X6 MERGE SEQUENCE NUMBER
BX7 X0*X2
SA6 A3
LX0 -24
SA3 A4+B1
LX7 -24
SA1 A2+B1
BX4 -X0*X4
MX0 6
BX7 X4+X7 MERGE GENERATION NUMBER
LX2 24
SA7 A6+B1
BX6 X0*X1
BX2 X0*X2
MX0 12
LX2 6
BX6 X6+X2
LX0 -12
LX6 42
BX3 -X0*X3
LX1 6
MX0 6
BX3 X3+X6 MERGE GENERATION VERSION NUMBER
AX3 6
SA2 A1+B1
BX0 X0*X1
BX6 X0+X3 MERGE CHARACTER 1 CREATION DATE
SA4 A3+B1
LX6 6
MX0 30
SA6 A7+B1
BX4 -X0*X4
LX1 6
SA3 A4+B1
BX7 X0*X1
MX0 36
BX7 X4+X7 MERGE CHARACTERS 2-6 CREATION DATE
AX1 12
BX3 -X0*X3
SA7 A6+B1
SA4 A3+B1
MX0 18
BX6 X0*X2
LX0 18
BX1 X0*X1
MX0 6
BX6 X6+X1
LX6 42
BX6 X6+X3 MERGE EXPIRATION DATE
LX0 -6
BX4 -X0*X4
LX2 12
SA6 A7+B1
BX2 X0*X2
BX7 X2+X4 MERGE FILE ACCESSIBILITY
SA7 A6+B1
SB6 HEP-1
SB7 HEPL+1
EQ PRL4 RETURN
PRL SPACE 4
** PRL - PRINT LABEL.
*
* ENTRY (A0) = POSITION OF LABEL TYPE IN TABLE.
* (B4) = (A0) = POSITION OF LABEL TYPE IN TLAB.
* (X5) = POSITION OF LABEL IN BUFFER.
*
* EXIT NONE.
*
* USES X - 0, 1, 2, 3, 6, 7.
* B - 2, 4, 5, 6, 7.
* A - 1, 2, 3, 6, 7.
*
* CALLS MVE=, PHE, PVE, WHL, WTW=.
PRL SUBR ENTRY/EXIT
SA1 A0+TLAB ENTER LABEL TYPE
SA2 LIN+1
MX0 4*6
BX2 -X0*X2
BX1 X0*X1
BX6 X1+X2
SA6 A2
MOVE 8,X5+B1,LAB
SA2 LC
SA3 A2+B1
IX3 X2-X3
NG X3,PRL1 IF NOT END OF PAGE
RJ WHL PROCESS END OF PAGE
PRL1 SA2 LC
SX6 X2+2
SA6 A2
SB4 A0
SA3 TITL+5 BLANK WORD
NZ B4,PRL2 IF STANDARD LABEL TYPE
SA3 NSL
PRL2 BX6 X3
SA6 LIN
WRITEW O,A6,LINL
SB4 A0+
SB5 10B
GT B4,B5,PRLX IF NO MORE LABEL PROCESSING
ZR B4,PRLX IF NO MORE LABEL PROCESSING
SA1 A0+TLAB CHECK SPECIAL PROCESSING REQUIRED
LX1 59-35+18
SB2 X1 ADDRESS OF LABEL PRINT PROCESSOR
ZR B2,PRLX IF NO SPECIAL PROCESSING REQUIRED
JP B2 GO TO CORRECT PROCESSOR
PRL4 BSS 0 RETURN HERE
SA2 LC
SA1 A2+B1
IX6 X2-X1
NG X6,PRL5 IF NOT END OF PAGE
SX6 B6
SX7 B7
SA6 PRLA SAVE (B6)
SA7 A6+B1 SAVE (B7)
RJ WHL WRITE HEADER LINE
SA1 PRLA RESTORE (B6) AND (B7)
SA2 A1+B1
SB6 X1
SB7 X2
PRL5 SA3 LC INCREMENT LINE COUNT
SX6 X3+2
SA6 A3
WRITEW O,B6,B7 WRITE PARAMETER LINE
EQ PRLX RETURN
PRLA BSS 2 REGISTER SAVE AREA
PVE SPACE 4
** PVE - PROCESS VOL1 PARAMETERS.
*
* ENTRY (LAB - LAB+7) = EIGHT WORD LABEL BLOCK.
*
* EXIT (VEP - VEP+4) = OUTPUT LINE WITH PARAMETERS MERGED IN.
*
* USES X - 0, 1, 2, 3, 4, 6, 7.
* B - 2, 6, 7.
* A - 1, 2, 3, 4, 6, 7.
PVE BSS 0 ENTRY
SA1 LAB MOVE LABEL PARAMETERS TO OUTPUT LINE
MX0 -30
SB2 B1+B1
SA2 A1+B1
SA3 VEP
LX1 -6
SA4 A3+B1
BX3 X0*X3
BX6 -X0*X1
MX0 6
BX6 X6+X3 MERGE CHARACTERS 1-5 VSN
BX4 -X0*X4
SA6 A3
BX1 X0*X1
BX2 X0*X2
LX0 -36
BX4 X1+X4 MERGE CHARACTER 6 VSN
LX2 -36
BX4 -X0*X4
SA1 A2+B2
BX7 X4+X2 MERGE ACCESSIBILITY
SA3 A4+B1
SA2 A1+B1
SA7 A6+B1
MX0 -18
BX7 X2 CHARACTERS 4-13 OWNER IDENTIFIER
BX1 -X0*X1
SA4 A3+B2
BX6 X0*X3
MX0 6
BX6 X6+X1 MERGE CHARACTERS 1-3 OWNER IDENTIFIER
SA1 A2+B1
SA6 A7+B1
SA7 A6+B1
BX4 -X0*X4
BX1 X0*X1
LX0 18
SA2 A1+B2
BX6 X4+X1 MERGE CHARACTER 14 OWNER IDENTIFIER
LX2 12
BX6 -X0*X6
BX2 X0*X2
BX6 X6+X2 MERGE LABEL STANDARD LEVEL
SA6 A7+B1
SB6 VEP-1
SB7 VEPL+1
EQ PRL4 RETURN
PXL SPACE 4
** PXL - PRINT LABELS FROM XL BUFFER.
*
* ENTRY (LR) = NUMBER OF LABELS READ SO FAR.
* (LP) = NUMBER OF LABELS PRINTED SO FAR.
*
* EXIT (LR), (LP) UPDATED.
* XL BUFFER CLEARED.
*
* USES X - 1, 4, 5, 6.
* A - 0, 1, 4, 6.
*
* CALLS FLT, PRL.
PXL2 SX6 B0+ CLEAR XL BUFFER
SA6 TBUF
PXL SUBR ENTRY/EXIT
SX5 TBUF-9 PRESET XL BUFFER ADDRESS
PXL1 SX5 X5+9 INCREMENT BUFFER ADDRESS
SA1 LR
SA4 X5 READ BUFFER ENTRY
SX6 X1+B1
ZR X4,PXL2 IF END OF LABELS IN BUFFER
SA6 LR INCREMENT LABELS READ
RJ FLT FIND LABEL TYPE
SA0 B4 SET POSITION OF LABEL IN TABLE
SA1 B4+TLAB
LX1 59-0
PL X1,PXL1 IF NOT PERMITTED TO PRINT THIS TYPE
SA1 LP INCREMENT LABELS PRINTED
SX6 X1+B1
SA6 A1
RJ PRL PRINT LABEL
EQ PXL1 LOOP FOR NEXT LABEL
SHD SPACE 4
** SHD - SET UP *HDR1* LABEL IN EXTENDED LABEL BUFFER.
*
* ENTRY (SI) = SET IDENTIFIER.
* (QN) = SEQUENCE NUMBER FROM COMMAND.
* (SN) = SEQUENCE NUMBER TO BE USED IN *HDR1* LABEL.
*
* EXIT *HDR1* LABEL TYPE, SET ID, AND SEQUENCE NUMBER SET
* IN EXTENDED LABEL BUFFER.
*
* USES X - 1, 2, 5, 6, 7.
* B - NONE.
* A - 1, 5, 6, 7.
SHD SUBR ENTRY/EXIT
SX6 80 SET LENGTH OF LABEL IN CHARACTERS
SA6 TBUF
SX1 3RHDR SET *HDR1*
SX6 1R1
LX1 6
BX6 X1+X6 *HDR1*
LX6 36
SA6 TBUF+1+0
MX6 0 CLEAR OUT FI FIELD IN XL BUFFER
SA6 TBUF+1+1
SA5 SI SET SETID IN XL BUFFER
BX6 X5
SA6 TBUF+1+2
SA1 SN SEQUENCE NUMBER
RJ COV CONVERT TO DISPLAY CODE
MX2 -24
BX6 -X2*X6
LX6 30
SA6 TBUF+1+3 SET SEQUENCE NUMBER IN XL BUFFER
SX2 4
MX6 0
SHD1 SA6 TBUF+1+X2 ZERO REMAINING PORTION OF *HDR1* LABEL
SX2 X2+1
SX3 X2-9
NZ X3,SHD1 IF MORE TO CLEAR
EQ SHDX
SPACE 4
** WHL - WRITE HEADER LINE.
*
* ENTRY (PN) = PAGE NUMBER.
*
* EXIT (PN) = (PN) + 1.
* (LC) = 3.
*
* USES X - 0, 1, 6.
* B - 3.
* A - 1, 6.
*
* CALLS CDD.
*
* MACROS WRITEW.
WHL SUBR ENTRY/EXIT
SA1 PN INCREMENT PAGE NUMBER
SX6 X1+B1
BX1 X6
SA6 PN
RJ CDD CONVERT PAGE NUMBER TO DISPLAY CODE
SB3 B2-47
SA1 PAGE
LX6 12
MX0 1
SB3 -B3
AX0 X0,B3
BX6 -X0*X6
BX1 X0*X1
BX6 X1+X6
SA6 A1
WRITEW O,TITL,TITLL
SX6 3 SET LINE COUNT
SA6 LC
EQ WHLX RETURN
TITLE CONSTANTS AND VARIABLES.
** CONSTANTS AND VARIABLES.
** TLAB FIELD DEFENITION.
*T,TLAB VFD 24/LABEL IDENTIFIER
*T, VFD 18/ADDRESS OF LABEL PRINT PROCESSOR
*T, VFD 17/NOT USED
*T, VFD 1/LABEL TYPE MAY BE PRINTED
TLAB BSS 0
LOC 0
VFD 24/4LDARD,18/0,18/0 UNIDENTIFIED LABEL
VOL1 VFD 24/4LVOL1,18/PVE,18/0 VOL1
HDR1 VFD 24/4LHDR1,18/PHE,18/0 HDR1
EOF1 VFD 24/4LEOF1,18/PHE,18/0 EOF1
EOV1 VFD 24/4LEOV1,18/PHE,18/0 EOV1
TLABA EQU *-VOL1 NUMBER OF REQUIRED LABELS
VOL VFD 24/4LVOLN,18/0,18/0 VOL2-9
HDR VFD 24/4LHDRN,18/0,18/0 HDR2-9
EOF VFD 24/4LEOFN,18/0,18/0 EOF2-9
EOV VFD 24/4LEOVN,18/0,18/0 EOV2-9
UVL VFD 24/4LUVLX,18/0,18/0 UVLX
UHL VFD 24/4LUHLX,18/0,18/0 UHLX
UTL VFD 24/4LUTLX,18/0,18/0 UTLX
LOC *O
TLABL EQU *-TLAB
QN CON 0 FILE SEQUENCE NUMBER
SN CON 1 SEQUENCE NUMBER TO USE IN *HDR1* LABEL
CR CON 0 CLOSE REEL FLAG
EF CON 0 SAVE ERROR FLAG HERE
TF CON 0 0=DO NOT READ TRAILER LABELS
* 1=READ TRAILER LABELS
SI CON 0 SET IDENTIFIER
PN BSSZ 1 PAGE NUMBER
LC BSSZ 2 LINE COUNT
LL EQU LC+1 LINE LIMIT
LR BSSZ 1 LABELS READ
LP BSSZ 1 LABELS PRINTED
TLOF VFD 12/0,18/TLOF+1,30/1
CON 3 SETLOF FLUSH TABLE
VFD 42/6LOUTPUT,18/O
CON 0 END OF SETLOF TABLE
NSL DATA 10H NON-STAN
LIN DATA 10H LABEL OUTPUT LINE
DATA 6A LABEL
DATA 10H READ:
LAB BSS 8
DATA 8L
DATA 8L
LINL EQU *-LIN
DATA 10H HDR1,EOF1,EOV1 PARAMETER OUTPUT LINE
HEP DATA 10H FI=......
DATA 10H..........
DATA 10H., SI=....
DATA 10H.., SN=...
DATA 10H., QN=....
DATA 10H, G=....,
DATA 10HE=.., CR=.
DATA 10H....., RT=
DATA 10H......, FA
DATA 3L=..
DATA 2L
HEPL EQU *-HEP
DATA 10H VOL1 PARAMETER OUTPUT LINE
VEP DATA 10H VSN=.....
DATA 10H., VA=., O
DATA 10HWNERID=...
DATA 10H..........
DATA 10H., LSL=..
DATA 8L
DATA 2L
VEPL EQU *-VEP
TITL DATA 10H
DATA 40H LISTLB - LIST MAGNETIC TAPE LABELS.
DATA 40H
DATE DATA 10H
TIME DATA 10H
DATA 4APAGE
PAGE DATA 8L
DATA 2L
DATA 2L
TITLL EQU *-TITL
LRP DATA 10H LABELS READ AND PRINTED
LBR DATA 10H
DATA 10H LABELS RE
DATA 10HAD.
LBP DATA 10H
DATA 10H LABELS PR
DATA 6LINTED.
LRPL EQU *-LRP
COMC SPACE 4
** CALL COMMON DECKS.
*CALL COMCCDD
*CALL COMCCIO
*CALL COMCLFM
*CALL COMCMVE
*CALL COMCSYS
*CALL COMCWTW
EJECT
USE //
SEG
BUFS BSS 0
TBUF EQU *
OBUF EQU TBUF+TBUFL
RFL= EQU OBUF+OBUFL+4
ARG= EQU *
TITLE PRESET.
PRS SPACE 4
ORG BUFS
** THE FOLLOWING CODE IS OVERLAYED BY TLAB THE TABLE OF LABELS
* READ FROM THE TAPE.
** PRS - PRESET.
*
* USES X - 0, 1, 3, 4, 5, 6.
* A - 1, 4, 5, 6.
* B - 2, 3, 4.
*
* CALLS IPP, KWD, PER, POP, USB, WHL.
*
* MACROS CLOCK, DATE, REWIND.
PRS SUBR ENTRY/EXIT
SB1 1
SB2 CCDR UNPACK COMMAND
RJ USB
SA5 PRSA
PRS0 RJ POP PICK OUT PARAMETER
NG B5,PRS6 IF COMMAND ERROR
BX3 X6-X5
NZ X3,PRS0 IF NOT PROGRAM NAME
RJ POP
NG B5,PRS6 IF COMMAND ERROR
SA4 A1
SX5 X6
SX3 X4-1R=
ZR X3,PRS2 IF NO TAPE FILE SPECIFIED
NZ X5,PRS8 IF INCORRECT PARAMETER
SA1 T PLACE USER SPECIFIED FILE NAME IN FET
SX1 X1
BX6 X1+X6
SA6 T
* RETURN FROM ARGUMENT PROCESSORS.
PRS1 RJ POP GET NEXT PARAMETER
SA4 A1+
NG B5,PRS6 IF COMMAND ERROR
PRS2 SX3 X4-1R=
NZ X3,PRS6 IF NOT *=*
ZR X2,PRS8 IF INCORRECT TERMINATOR
RJ KWD
ZR B3,PRS6 IF INCORRECT KEYWORD
RJ POP
NG B5,PRS8 IF INCORRECT PARAMETER
JP B3 JUMP TO ELEMENT PROCESSOR
PRS3 SA1 SI CHECK FOR *SETID*
NZ X1,PRS4 IF *SET ID* SPECIFIED
SA1 QN SEQUENCE NUMBER
ZR X1,PRS4 IF FILE SEQUENCE NUMBER SPECIFIED
SX1 QNS INCORRECT COMBINATION OF PARAMETERS
JP PER
PRS4 REWIND T,R
CLOCK TIME
DATE DATE
RJ IPP INITIALIZE PAGE PARAMETERS
RJ WHL WRITE HEADER LINE
SX1 TBUFL SET EXTENDED LABEL BUFFER LENGTH AND
* ADDRESS
SX6 TBUF
LX1 18
BX6 X6+X1
SA6 T+9
MX0 1 SET FLUSH BIT IN LIST OUTPUT FET
LX0 36-59
SA1 O+1
BX6 X0+X1
SA6 A1
MX0 42 MOVE LIST OUTPUT LFN TO SETLOF TABLE
SA1 A1-B1
BX1 X0*X1
SX6 O
BX6 X1+X6
SA6 TLOF+2
SETLOF TLOF SET FLUSH BIT TABLE POINTER
SA1 LO
NZ X1,PRSX IF LO PROCESSED
SB4 TLABL
SX5 B1
SB3 B0
PRS5 SA1 TLAB+B3 SET PERMISION TO PRINT ALL LABELS
SB3 B3+B1
BX6 X1+X5
SA6 A1+
LT B3,B4,PRS5 IF NOT END OF LABEL TABLE
SX6 B1 SET READ TRAILER LABELS FLAG
SA6 TF
JP PRSX RETURN
PRS6 ZR B6,PRS3 IF END OF PARAMETERS
SX1 CCE COMMAND ERROR
JP PER
PRS7 SX1 FNE FILE NAME ERROR
JP PER
PRS8 SX1 IPE INCORRECT PARAMETER ERROR
JP PER
PRSA CON 0LLISTLB
IPP SPACE 4,15
** IPP - INITIALIZE PAGE PARAMETERS.
*
* EXIT (LL) = LINE LIMIT.
*
* USES X - 1, 2, 6.
* A - 1, 6.
*
* CALLS STF.
*
* MACROS GETPP, WRITEC.
IPP SUBR ENTRY/EXIT
GETPP IPPA,LL,IPPA GET PAGE SIZE PARAMETERS
SX2 O
RJ STF
ZR X6,IPPX IF TERMINAL PRINT FILE
WRITEC X2,IPPA
SA1 =10H1
BX6 X1 FORCE PAGE EJECT
SA6 TITL
EQ IPPX RETURN
IPPA BSS 2 PAGE SIZE PARAMETERS
KWD SPACE 4
** KWD - KEYWORD VERIFIER.
*
* ENTRY (X6) = KEYWORD.
*
* EXIT (B3) = ADDRESS OF KEYWORD PROCESSOR.
* (B3) = 0, IF KEYWORD NOT FOUND.
*
* USES A - 1, 7.
* X - 0, 1, 7.
KWD SUBR ENTRY/EXIT
BX1 X6
AX1 59
SA1 X1+TKWD-1
KWD1 SA1 A1+B1
BX0 X6-X1
SB3 X1 ADDRESS OF KEYWORD PROCESSOR
AX0 48
ZR X1,KWDX IF END OF TABLE
NZ X0,KWD1 IF NO MATCH
MX7 -1 ENABLE/DISABLE LITERAL PROCESSING
LX1 0-18
BX7 -X7*X1
SA7 LIT
JP KWDX RETURN
** TKWD - TABLE OF KEYWORDS.
*
*T 12/ARGUMENT,29/0,1/LA,18/ARGUMENT PROCESSOR
* LA = 0 IF LITERALS ARE ALLOWED
* LA = 1 IF LITERALS ARE NOT ALLOWED
TKWD BSS 0
VFD 12/0LL,29/0,1/0,18/PLP
VFD 12/0LLO,29/0,1/0,18/PLO
VFD 12/0LSI,29/0,1/1,18/PSI
VFD 12/0LM,29/0,1/1,18/PSI
VFD 12/0LQN,29/0,1/0,18/PQN
VFD 12/0LP,29/0,1/0,18/PQN
CON 0 END OF TABLE
PER SPACE 4
** PER - PROCESS ERRORS.
*
* ENTRY (X1) = ADDRESS OF ERROR MESSAGE.
PER BSS 0
MESSAGE X1
ABORT
CCE DATA C* COMMAND ERROR.*
FNE DATA C* FILE NAME ERROR.*
IPE DATA C* INCORRECT PARAMETER.*
QNS DATA C* INCORRECT COMBINATION OF QN/SI.*
TITLE ARGUMENT PROCESSORS.
** PLO - PROCESS LO PARAMETER.
*
* ENTRY (X6) = LIST OPTIONS.
PLO BSS 0 ENTRY
MX0 -6
BX1 -X0*X6
NZ X1,PRS8 IF TOO MANY LIST OPTIONS
PLO1 LX6 6
SX5 1RA
BX1 -X0*X6
ZR X1,PLO4 IF END OF LIST OPTIONS - RETURN
BX1 X1-X5
ZR X1,PRS1 IF *A* LIST OPTION
SX5 B1 PRINT LABEL BIT
SA1 TPLO-1
PLO2 SA1 A1+B1
BX3 X6-X1
ZR X1,PRS8 IF LIST OPTION NOT IN TABLE
BX3 -X0*X3
NZ X3,PLO2 IF NO MATCH
MX3 -4
SA2 TF
NZ X2,PLO3 IF READ TRAILER LABEL FLAG ALREADY SET
BX2 -X0*X1 CHECK OPTIONS
SX7 X2-1RH
ZR X7,PLO3 IF *H* OPTION SELECTED
SX7 X2-1RV
ZR X7,PLO3 IF *V* OPTION SELECTED
SX7 B1 SET READ TRAILER LABELS FLAG
SA7 A2
PLO3 LX1 4
BX4 -X3*X1
ZR X4,PLO1 IF DONE PROCESSING THIS LIST OPTION
SA4 X4+TLAB
BX7 X4+X5
SA7 A4
EQ PLO3
PLO4 SA6 LO SET LIST OPTIONS PROCESSED
EQ PRS1 GET NEXT PARAMETER
LO CON 0
TPLO BSS 0
VFD 4/VOL1,4/HDR1,4/EOF1,4/EOV1,4/VOL,4/HDR,4/EOF,4/EOV
VFD 4/UVL/,4/UHL,4/UTL,10/0,6/1RA A - OPTION
VFD 4/VOL1,4/HDR1,4/EOF1,4/EOV1,38/0,6/1RR R - OPTION
VFD 4/VOL,4/HDR,4/EOF,4/EOV,4/UVL,4/UHL,4/UTL,26/0
VFD 6/1RO O - OPTION
VFD 4/VOL1,4/VOL,46/0,6/1RV V - OPTION
VFD 4/HDR1,4/HDR,46/0,6/1RH H - OPTION
VFD 4/EOF1,4/EOF,46/0,6/1RF F - OPTION
VFD 4/EOV1,4/EOV,46/0,6/1RE E - OPTION
VFD 4/UVL,4/UHL,4/UTL,42/0,6/1RU U - OPTION
CON 0 END OF TABLE
PLP SPACE 4
** PLP - PROCESS L PARAMETER.
*
* ENTRY (X6) = OUTPUT FILE NAME.
PLP BSS 0 ENTRY
MX0 42
BX0 -X0*X6
SA1 O
NZ X0,PRS7 IF FILE NAME TOO LONG
SX1 X1
BX6 X6+X1
SA6 A1
JP PRS1 GET NEXT PARAMETER
PSI SPACE 4
** PSI - PROCESS SI PARAMETER.
*
* ENTRY (X6) = SET IDENTIFIER.
PSI BSS 0 ENTRY
MX0 6*6
BX0 -X0*X6
NZ X0,PRS8 IF SET IDENTIFIER TOO LONG
BX1 X6
RJ SFN SPACE FILL NAME
MX0 6*6
BX6 X0*X6
LX6 54
SA6 SI
JP PRS1 GET NEXT PARAMETER
PQN SPACE 4
** PQN - PROCESS QN PARAMETER.
*
* ENTRY (X6) = FILE SEQUENCE NUMBER.
PQN BSS 0 ENTRY
MX0 4*6
BX5 X6
BX0 -X0*X6
NZ X0,PRS8 IF FILE SEQUENCE NUMBER TOO LONG
SB7 B1
RJ DXB CONVERT TO BINARY
SA6 SN
SA6 QN
JP PRS1 GET NEXT PARAMETER
SPACE 4
** COMMON DECKS.
*CALL COMCCPM
*CALL COMCDXB
LIT CON 0 DEFINE LITERAL PROCESSING
*CALL COMCPOP
*CALL COMCSFN
*CALL COMCSTF
*CALL COMCUSB
*CALL COMCWTC
SPACE 4
END