cdc:nos2.source:opl871:listlb
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
- 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
cdc/nos2.source/opl871/listlb.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator