IDENT PFLIST1,/COMSPFS/OVLA,PFS,01,00
TITLE PFLIST - LIST PF UTILITY SUMMARY FILE.
ABS
SST
SYSCOM B1
SPACE 4
*COMMENT PFLIST - LIST PF UTILITY SUMMARY FILE.
COMMENT COPYRIGHT CONTROL SYSTEMS INC. 1996.
SPACE 4
*** PFLIST - LIST PF UTILITY SUMMARY FILE.
*
* G. S. YODER 96/04/24.
SPACE 4
*** *PFLIST* IS A PERMANENT FILE UTILITY PROGRAM WHICH GENERATES
* AN OUTPUT LISTING FROM A SUMMARY FILE PRODUCED BY ANOTHER
* PERMANENT FILE UTILITY. *PFLIST* MAY BE CALLED FROM *PFS* OR
* DIRECTLY BY A COMMAND.
SPACE 4
*** DAYFILE MESSAGES.
*
* INFORMATIVE.
*
* * PFLIST COMPLETE.* = PROGRAM COMPLETE.
*
* FATAL SYSTEM ERRORS.
*
* * PFLIST ABORTED.* = ERROR FLAG DETECTED ON CONTROL POINT.
*
* * FORMAT ERROR IN SUMMARY FILE.*
SPACE 4
* COMMON DECKS.
*CALL COMCMAC
*CALL COMCCMD
*CALL COMSMLS
*CALL COMSRPV
*CALL COMSPFM
LIST X
*CALL COMSPFS
LIST *
*CALL COMSPFU
*CALL COMSPRD
*CALL COMSSFM
*CALL COMSVER
TITLE ASSEMBLY CONSTANTS.
* ASSEMBLY CONSTANTS.
DBUFL EQU 1000B SUMMARY FILE DATA BLOCK BUFFER LENGTH
MSFBL EQU 10001B *COMCMSF* SORT FILES BUFFER LENGTH
OUTBL EQU 10001B OUTPUT FILE BUFFER LENGTH
PFLBL EQU 1001B PROCESSED FILES FILE BUFFER LENGTH
SABFL EQU 1000B SUMMARY FILE ASSEMBLY BUFFER LENGTH
SRTBL EQU 20000B SORT BUFFER LENGTH
SUIBL EQU 10001B SUMMARY INPUT FILE BUFFER LENGTH
SUMBL EQU 0 SUMMARY FILE BUFFER LENGTH
* *COMSPFS* EQUIVALENCES.
CPAR EQU /COMSPFS/CPL
IDSA EQU /COMSPFS/PADR
TITLE RESERVED LOCATIONS AND FETS.
SPACE 4
ORG /COMSPFS/OVLA
SPACE 4
** RESERVED LOCATIONS.
* SUMMARY FILE DATA BLOCK STATUS.
BLCW CON 0 BLOCK CONTROL WORD
BLTY CON 0 TYPE OF DATA BLOCK IN BUFFER
SPACE 4
** FETS.
SI BSS 0 SUMMARY INPUT FILE
SUMMARY FILEB SUIB,SUIBL,FET=10D
SPACE 4
** OPERATOR AND DAYFILE MESSAGES.
MSFP DATA C* ?????? FILE! PROCESSED.*
BLNK DATA 30H
SPACE 4
** ERROR MESSAGES.
ERAN DATA C* SF EXCEDES NUMBER OF ARCHIVE FILES.*
ERDS DATA C* DEVICE STATUS BLOCK MISSING.*
ERFE DATA C* FORMAT ERROR IN SUMMARY FILE.*
TITLE MAIN ROUTINES.
PFS SPACE 4,10
** MAIN PROGRAM.
*
* CALLS CFP, CSC, ICI, OAL, OCH, OCI, PRS, RDB, SPA.
*
* EXIT TO *ABT* IF FATAL ERROR.
PFS BSS 0 ENTRY
RJ PRS PRESET PROGRAM
* LOCATE ARCHIVE LABEL BLOCK IF SKIP COUNT SPECIFIED.
SA5 CPAR+/COMSPFS/CPSF
ZR X5,PFS3 IF NO ARCHIVE FILES TO SKIP
PFS1 SA1 BLTY GET BLOCK TYPE
SX1 X1-/COMSPFS/AFSB
NZ X1,PFS2 IF NOT ARCHIVE LABEL BLOCK
ZR X5,PFS5 IF BLOCK FOUND
SX5 X5-1 COUNT BLOCK
PFS2 RJ RDB READ DATA BLOCK
PL X6,PFS1 IF NOT EOR
SB2 ERAN * SF EXCEDES NUMBER OF ARCHIVE FILES.*
EQ ABT ABORT
* READ SUMMARY FILE BLOCK AND CHECK FOR SORTED OUTPUT.
PFS3 RJ RDB
ZR X2,PFS4 IF BLOCK TYPE IS SAME AS PREVIOUS
RJ CSO CHECK FOR SORTED OUTPUT
* EXECUTE BLOCK TYPE PROCESSOR.
PFS4 NG X6,END IF EOR, EOF, OR EOI ENCOUNTERED
SA1 TSIP+X6 GET PROCESSOR ADDRESS
SB2 X1
JP B2 ENTER BLOCK TYPE PROCESSOR
* PROCESS ARCHIVE LABEL BLOCK.
PFS5 SA1 CPAR+/COMSPFS/CPNB
SA2 PFSA
IX1 X2-X1
ZR X1,END IF ARCHIVE FILE COUNT REACHED
SX6 X2+B1
SA6 PFSA COUNT ARCHIVE FILE PROCESSED
MOVE 3,DBUF,AFIB SET ARCHIVE FILE LABEL INFORMATION
RJ OAL OUTPUT ARCHIVE FILE LABEL INFORMATION
EQ PFS3 READ NEXT BLOCK
* PROCESS CATALOG IMAGE RECORD BLOCK.
PFS6 ZR X2,PFS7 IF LAST BLOCK WAS CIR BLOCK
RJ ICI INITIALIZE FOR CIR PROCESSING
PFS7 SA1 BLCW
SX6 DBUF SET CIR BUFFER POINTER
SX7 X1 SET WORD COUNT
RJ OCI OUTPUT CATALOG IMAGE BLOCK
EQ PFS3 READ NEXT BLOCK
* PROCESS CATALOG ENTRIES BLOCK.
PFS8 SA0 DBUF-NWCE-1 INITIALIZE ENTRY ADDRESS
ZR X2,PFS9 IF LAST BLOCK WAS CATALOG ENTRIES
RJ IFL INITIALIZE FOR FILE PROCESSING
PFS9 SA2 BLCW
SA0 A0+NWCE+1 ADVANCE ENTRY ADDRESS
SB2 X2+DBUF
SB2 A0-B2
PL B2,PFS3 IF BLOCK ALL PROCESSED
SB4 A0 SET CATALOG ADDRESS
RJ CSC CHECK SELECTION CRITERIA
ZR X6,PFS9 IF NOT TO PROCESS FILE
SA1 B4+NWCE
BX7 X1
SA7 FLST SET FILE STATUS
RJ CFP COUNT FILE PROCESSED
EQ PFS9 PROCESS NEXT ENTRY
PFSA CON 0 ARCHIVE FILES PROCESSED COUNT
TSIP SPACE 4,10
* TABLE OF SUMMARY INPUT FILE BLOCK PROCESSORS.
TSIP IVFD START OF TABLE
IVFD /COMSPFS/SYSB,(60/SER) SYSTEM
IVFD /COMSPFS/DSSB,(60/PFS3) DEVICE STATUS
IVFD /COMSPFS/AFSB,(60/PFS5) ARCHIVE FILE
IVFD /COMSPFS/CISB,(60/PFS6) CIR
IVFD /COMSPFS/CESB,(60/PFS8) CATALOG ENTRIES
IVFD /COMSPFS/MXSB,(60/PFS3) UNIDENTIFIED
IVFD /COMSPFS/MXSB+1
CSO SPACE 4,15
** CSO - CHECK FOR SORTED OUTPUT.
*
* ENTRY (X3) = PREVIOUS BLOCK TYPE.
* (X6) = CURRENT BLOCK TYPE.
*
* EXIT (X6) = CURRENT BLOCK TYPE.
* (X2) .NE. 0 (NON-MATCHING BLOCK TYPE).
*
* USES X - 1, 2, 6.
* A - 1.
*
* CALLS PSF, PSI.
CSO SUBR ENTRY/EXIT
SX1 X3-/COMSPFS/CISB
NZ X1,CSO1 IF PREVIOUS BLOCK NOT CIR ENTRIES
RJ PSI PROCESS SORTED CIR ENTRIES
EQ CSO2 RESET BLOCK STATUS
CSO1 SX1 X3-/COMSPFS/CESB
NZ X1,CSOX IF PREVIOUS BLOCK NOT CATALOG ENTRIES
RJ PSF PROCESS SORTED CATALOG ENTRIES
CSO2 SA1 BLTY
SX2 B1 INDICATE NON-MATCHING BLOCK TYPE
SX6 X1 RESET BLOCK TYPE
EQ CSOX RETURN
TITLE SUBROUTINES.
APR SPACE 4,10
** APR - ABORT PROCESSOR.
APR SUBR ENTRY/EXIT
EQ APRX RETURN
IFM SPACE 4,10
** IFM - ISSUE FILE COUNT MESSAGES.
*
* EXIT FILE COUNT MESSAGES ISSUED TO DAYFILE.
*
* USES X - 1, 5, 6.
* A - 1, 5.
*
* CALLS IFC.
IFM SUBR ENTRY/EXIT
SA5 IFMA
RJ IFC ISSUE FILE COUNT MESSAGES
EQ IFMX RETURN
IFMA BSS 0 *PFLIST* MESSAGE TABLE
VFD 1/1,1/1,22/0,18/MSFP,18/PRFC
CON 0 END OF TABLE
RDB SPACE 4,20
** RDB - READ DATA BLOCK FROM SUMMARY FILE.
*
* EXIT (X6) = BLOCK TYPE IF BLOCK READ.
* (X6) = -1 IF EOR, EOF, OR EOI ENCOUNTERED ON READ OF
* BLOCK CONTROL WORD.
* (X2) = 0 IF BLOCK TYPE SAME A PREVIOUS BLOCK TYPE.
* (X2) .NE. 0 IF BLOCK TYPE NOT SAME AS PREVIOUS.
* (X3) = PREVIOUS BLOCK TYPE.
* (BLCW) = BLOCK CONTROL WORD IF BLOCK READ.
* (BLTY) = BLOCK TYPE IF BLOCK READ.
* (BLTY) = -1 IF EOR, EOF, OR EOI ENCOUNTERED ON READ OF
* BLOCK CONTROL WORD.
* DATA BLOCK READ TO *DBUF* IF NO ERROR.
* TO *SER* IF ERROR IN SUMMARY FILE BLOCK.
*
* USES X - 1, 2, 3, 6.
* A - 1, 2, 3, 6.
*
* MACROS READW.
RDB SUBR ENTRY/EXIT
* READ BLOCK CONTROL WORD AND DATA.
READW SI,BLCW,1 READ BLOCK CONTROL WORD
SA3 BLCW
SX6 -1 SET EOR, EOF, EOI STATUS
NZ X1,RDB2 IF EOR, EOF, OR EOI ENCOUNTERED
SX1 X3-DBUFL-1
SX6 X3
BX1 -X1+X6
NG X1,SER IF BAD BLOCK LENGTH
READW X2,DBUF,X3 READ DATA BLOCK
NZ X1,SER IF INCOMPLETE READ
* IDENTIFY BLOCK TYPE.
SA1 BLCW
SA2 TSBI-1
MX6 42
BX1 X6*X1 BLOCK IDENTIFIER
RDB1 SA2 A2+B1 GET NEXT ENTRY
SX6 A2-TSBI SET BLOCK TYPE
BX3 X2-X1
ZR X2,RDB2 IF END OF ENTRIES
NZ X3,RDB1 IF NO MATCH
RDB2 SA3 BLTY
SA6 A3 SET NEW BLOCK TYPE
IX2 X6-X3 SET NEW BLOCK TYPE STATUS
EQ RDBX RETURN
RIP SPACE 4,10
** RIP - REPRIEVE INTERRUPT PROCESSOR.
*
* EXIT BUSY FETS SET COMPLETE TO ALLOW TERMINATION
* PROCESSING.
*
* MACROS COMPFET.
RIP SUBR ENTRY/EXIT
COMPFET (O,SU)
EQ RIPX RETURN
SER SPACE 4,10
** SER - PROCESS SUMMARY FILE ERROR.
*
* EXIT TO *ABT*.
*
* USES B - 2.
SER BSS 0 ENTRY
SB2 ERFE * FORMAT ERROR IN SUMMARY FILE.*
EQ ABT ABORT
SPACE 4
** COMMON DECKS.
*CALL COMCCDD
*CALL COMCCIO
*CALL COMCCOD
*CALL COMCCPM
*CALL COMCDXB
*CALL COMCEDT
FCE$ EQU 0
*CALL COMCFCE
CHDR1 EQU /COMCFCE/CHDR1
GMS$ EQU 1 USE SORT KEY MASK
MWK$ EQU 1 ALLOW MULTIPLE WORD SORT KEYS
*CALL COMCGMS
*CALL COMCJCR
*CALL COMCLFM
*CALL COMCMSF
*CALL COMCMVE
LIST X
*CALL COMCPFS
LIST *
*CALL COMCPFU
*CALL COMCRDW
*CALL COMCSCB
*CALL COMCSFN
*CALL COMCSNM
*CALL COMCSYS
*CALL COMCVDT
*CALL COMCWTC
*CALL COMCWTH
*CALL COMCWTO
*CALL COMCWTW
*CALL COMCZTB
TITLE BUFFERS.
USE LITERALS
SPACE 4
** BUFFERS.
* BUFFERS USED BY PRESET.
DBUF BSSZ DBUFL SUMMARY FILE DATA BLOCK BUFFER
SUIB BSSZ SUIBL SUMMARY INPUT FILE BUFFER
OUTB BSSZ OUTBL OUTPUT FILE
* BUFFERS OVERLAYING PRESET.
SUMB EQU OUTB+OUTBL SUMMARY FILE (NOT USED)
PFLB EQU SUMB+SUMBL PROCESSED FILES FILE
MS1B EQU PFLB+PFLBL SORT FILE 1
MS2B EQU MS1B+MSFBL SORT FILE 2
MS3B EQU MS2B+MSFBL SORT FILE 3
MS4B EQU MS3B+MSFBL SORT FILE 4
SRTB EQU MS3B SORT BUFFER (OVERLAYS *MS3B* AND *MS4B*)
ERRNG MSFBL*2-SRTBL SORT BUFFER OVERFLOW
EBUF EQU MS4B+MSFBL+5 END OF BUFFERS
TITLE PFLIST PRESET.
PRS SPACE 4,15
** PRS - PRESET PROGRAM.
*
* EXIT FILES INITIALIZED.
* MESSAGES INITIALIZED.
* SUMMARY FILE SYSTEM BLOCK PROCESSED.
* SUMMARY FILE DEVICE STATUS BLOCK PROCESSED IF PRESENT.
*
* USES A - 1, 2, 6, 7.
* X - 0, 1, 2, 3, 5, 6, 7.
* B - 2, 3, 5, 7.
*
* CALLS IOF, ODV, RPS, RDB, SCB, SNM, ZTB.
*
* MACROS MEMORY, MOVE, REPRIEVE, READ, READW.
PRS SUBR ENTRY/EXIT
SB1 1
MEMORY CM,,R,EBUF REQUEST REQUIRED MEMORY
REPRIEVE RPVB,SET,277B SET EXTENDED REPRIEVE PROCESSING
* READ USER AND FILE NAME SELECTIONS.
SX0 EBUF SET SELECTION BUFFER ADDRESS
RJ RPS READ PERMANENT FILE SELECTIONS
* INITIALIZE SUMMARY INPUT FILE FET AND READ PREFIX TABLE.
SA1 SI SET FILE NAME IN FET
SA2 CPAR+/COMSPFS/CPSI
MX6 -18
BX6 -X6*X1
BX6 X2+X6
SA6 A1
READ SI
READW SI,DBUF,15 READ PREFIX TABLE
NZ X1,SER IF INCOMPLETE READ
SA1 DBUF
SA2 PRSA
BX1 X1-X2
NZ X1,SER IF NOT PREFIX TABLE
* PROCESS SYSTEM BLOCK.
RJ RDB READ SYSTEM BLOCK
SA1 BLCW
SX6 X6-/COMSPFS/SYSB
NZ X6,SER IF NOT SYSTEM BLOCK
SX1 X1-13B
NZ X1,SER IF NOT CORRECT WORD COUNT FOR SYSTEM BLOCK
MOVE 2,PRSB,PGSC SET SUMMARY FILE CREATION TEXT IN PAGE TITL
SA1 DBUF+1
RJ ZTB ENSURE BLANK FILL
SA6 PGSC+2 SET SUMMARY FILE CREATION DATE
SA1 DBUF+2
RJ ZTB ENSURE BLANK FILL
SA6 PGSC+3
SA1 DBUF GET UTILITY NAME
MX6 42
BX1 X6*X1
SA2 TUTA
PRS1 SA2 A2+B1
ZR X2,SER IF END OF UTILITY NAMES
BX3 X6*X2 UTILITY NAME
BX3 X1-X3
NZ X3,PRS1 IF NO MATCH ON UTILITY NAME
LX2 59-0
SX6 A2-TUTA
SA6 OFUC SET UTILITY CODE
PL X2,PRS3 IF UTILITY DOES NOT SUPPORT DEVICE BLOCK
* PROCESS DEVICE STATUS BLOCK.
RJ RDB READ BLOCK
SB2 ERDS * DEVICE STATUS BLOCK MISSING.*
SX6 X6-/COMSPFS/DSSB
NZ X6,ABT IF NOT DEVICE STATUS BLOCK
SA1 DBUF+2
SA2 DBUF
MX6 -6
MX7 42
BX1 -X6*X1 EXTRACT DEVICE NUMBER OF FIRST DEVICE
BX7 X7*X2
SX3 OFFN SELECT FAMILY NAME
NZ X1,PRS2 IF FAMILY DEVICE
SX3 OFPN SELECT PACK NAME
PRS2 SA7 X3 SET FAMILY OR PACK NAME
SA1 DBUF+1
BX6 X1
SA6 OFUN SET USER NAME IF AUXILIARY DEVICE
RJ IOF INITIALIZE OUTPUT FILES
SA1 BLCW
SX6 0 SET END OF DEVICE ENTRIES
SA6 DBUF+X1
SX6 DBUF+2 SET DEVICE STATUS ADDRESS
RJ ODV OUTPUT DEVICE STATUS
EQ PRS4 CHECK ARCHIVE FILE COUNT
* INITIALIZE OUTPUT FILES.
PRS3 RJ IOF INITIALIZE OUTPUT FILES
PRS4 SA1 CPAR+/COMSPFS/CPNB
NZ X1,PRSX IF ARCHIVE FILE COUNT SPECIFIED
SX6 B1
SA6 A1 SET ARCHIVE FILE COUNT = 1
EQ PRSX RETURN
PRSA VFD 12/7700B,12/16B,36/0
PRSB DATA 20HSUMMARY FILE CREATED
TUTA SPACE 4,10
** TUTA - TABLE OF UTILITY ATTRIBUTES.
TUTA IVFD TABLE OF UTILITY NAMES
IVFD /COMSPFS/LDUT,(42/0LPFLOAD,18/1)
IVFD /COMSPFS/DUUT,(42/0LPFDUMP,18/1)
IVFD /COMSPFS/CAUT,(42/0LPFCAT,18/1)
IVFD /COMSPFS/ATUT,(42/0LPFATC,18/0)
IVFD /COMSPFS/COUT,(42/0LPFCOPY,18/0)
IVFD /COMSPFS/RLUT,(42/0LPFREL,18/1)
IVFD /COMSPFS/LIUT,(42/0LPFLIST,18/0)
IVFD /COMSPFS/RSUT,(42/0LPFRES,18/0)
IVFD /COMSPFS/MXUT,(60/0)
IVFD /COMSPFS/MXUT+1
SPACE 4
** PRESET COMMON DECKS.
LIST X
*CALL COMCPFP
LIST *
ERRPL *-EBUF-1 PRESET OVERFLOWS INTO BUFFERS
SPACE 4
END