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