FLIST 2R2L - The UOM File Lister
FLIST is a processor that generates an @ADD stream, in a file called OUT$$$, that contains all the 2200 ECL images needed to produce a listing of a file.
FLIST can operate in four modes: program file mode, data file mode, arbitrary dump mode, and tape list mode. When the file to be listed is a disk file, FLIST will automatically determine if the file is a program file or a data file. If the file to be listed is a tape file, FLIST will automatically recognize this and operate in tape list mode. If an arbitrary disk dump is desired, the user must specify the O, I, or Q options as described below.
Type @FLIST,HELP for a summary page of basic calls and options.
Call: @FLIST,OPTIONS input-file.,RO-file.,SO-file.
Input-file is the file in which the elements to be listed are located. If this field is not provided, the file TPF$ will be assumed. FLIST can support any type of program file.
RO-file is the file that the relocatable output of any compilation will be directed. If this field is not provided, any relocatable elements will be put in TPF$.
SO-file is the file that the symbolic output will be directed. If this file is not specified TPF$ will be assumed. This field is only generated if the U option is specified on the FLIST card.
Options for program file mode:
A - Do not do a dynamic @ADD of the control stream (OUT$$$.).
*C - Produce a punched copy of the generated control stream.
D - Do not decollate elements by type.
Normally elements are sorted by type, docs first, then PROCS .... Through MAPs last. The D option turns off this feature.
E - @ELT all elements but PROCS. Also, do not decollate by type (assumes D option).
G - Read elements to guess language type.
When the G option is on and FLIST encounters an element whose type is elt or symbolic, FLIST will scan the element in an attempt to determine the language type so that it can produce the proper control card.
If the X option is on in conjunction with the G option, all elements will be scanned to determine their type.
When the Y option is on in conjunction with the G option, FLIST will update the element type in the file.
H - Do not produce @HDG cards.
L - List the generated control stream.
M - Do not @MAP MAP elements (@ELT,L instead).
N - Do not produce processor call cards.
*P - Generate @PCH,S cards for symbolic elements.
R - Produce a cross-reference listing for MASM, MSD, ACOB, FTN, or PLUS elements, by adding the appropriate option to the processor call.
S - Do not sort elements by name and version. The order of elements listed will be the order of their occurrence in the program file.
T - Print a table of contents if the file is a program file.
U - Put a source output field on the processor call card. If the U option is on, FLIST will put the source output in the file specified by field three on the @FLIST card. If field three is not specified and the U option is on, FLIST will direct the symbolic output to TPF$.
PROCS are a special case. If the U option is on the SO Field will come from field three of the @FLIST card. If the U option is not on, the SO Field will come from field two of the @FLIST card.
If there is a file name present in field three, the U option is assumed.
V - Put a standard version name on the RO Or SO Field of the processor call cards.
If the V option is on, FLIST will take the version name from field two of the @FLIST card, and put it on all RO Fields of generated processor call cards. If a version name appears in field three of the @FLIST card and the V option is on, FLIST will put this version name on all SO Fields of the generated processor call cards.
X - If G option, scan all source elements, not just ELT or SYM.
Y - If G option, change each elt to subtype determined by scanning.
* - It is expected that C & P will be obsolete at most sites.
As an example of a FLIST call: @FLIST,RT
Would create a file (OUT$$$) with processor calls, including cross-reference listings, for every symbolic element of the file and then @ADD it.
FLIST can be directed to only list elements that have been created (or updated) since a certain date. To accomplish this use the W option as documented below. All other options documented in section 2.1 Can be used in conjunction with the W option.
W - Use the element and version names of field one as a time specification. Only those elements which have been changed since the specified time will be FLIST'ed. Field one may have one of the following forms:
1). Month/day or day/month
Month specifies the month and is recognized by the first three letters, and day is a one or two digit number representing the day of the month.
Examples: JANUARY/30 or 30/JANUARY
The year is taken to be the current year unless the date specified is later than the current date in which case the previous year is used.
2). 013075
This form of the date specification requires exactly six digits. The first two are the month, the next two are the day, and the last two are the year. Thus 013075 represents january 30, 1975.
3). 5
When less than six digits are given, elements updated within that many days are listed. Thus @FLIST,W 5 requests FLIST to list all elements changed within the last five days.
In the above cases, anything changed since the beginning of the date specified will be listed.
4). No specification (element field empty)
In this case the time and date depends on the file being listed.
A). Catalogued file.
The time and date the file was catalogued is used.
B). Temporary file.
The time and date the current run started is used.
Call: @FLIST,OPTIONS ELT1,ELT2,ELT3,...,ELT10
This mode is identical to the previously described program file mode except that:
1). FLIST will only consider the elements ELT1 through ELT10 for listing. (Note: all elements taken from file in field one)
2). The V option is not allowed.
3). If the W option is used, then field one is still the date field, and ELT1,...,ELT10 are taken from fields two through eleven.
Note that any file names in fields one through four have the same meaning as documented in section 2.1. Elements specified in this mode are assumed to reside in the file specified in field one.
When using FLIST in program file mode with the sort enabled (no S option), the elements will be sorted by type (if no E option) then element name, then version name. If the user wants to change these priorities he should provide field four on the FLIST card in the following format:
@FLIST,OPTIONS ,,,123.
Where (1) specifies element type, (2) specifies element name, and (3) specifies element version. Any combination can be provided, and all three must be given.
Call: @FLIST input-file.
Input-file is the file to be listed.
The allowable options for data file mode are: A,C,H,I,N. These options work in the same way as described for program file mode.
FLIST will operate in arbitrary dump mode when it finds the O, I, or Q options. Only one of the options may appear on the FLIST card. The call for an arbitrary dump is:
@FLIST,OPTION input-file.,max
Input-file is the file to be dumped. Max is an integer number (starting with zero) that represents the maximum track to dump. If max is not given, the entire file is dumped.
The allowable options are:
O - Give an octal dump.
I - Give an integer dump.
Q - Give an alphabetic (FIELDATA) dump.
The arbitrary dump routines will work on disk files in fastrand or disk (word addressable) format.
When the input file to FLIST is tape, FLIST will operate in tape list mode.
Call: @FLIST,OPTIONS input-file.,param,param,..
There are two params currently defined: NF and LPP.
The NF param tells FLIST how many files to process on this tape. If this param is missing, FLIST will continue until reaching a double end-of-file.
The format for this field is: @FLIST tape.,NF/10
(A number by itself in Spec 2 will also be recognized: @FLIST tape.,5)
The LPP param tells FLIST how many lines of text to print before starting a new page when printing a table of contents. LPP should rarely be necessary, since FLIST now uses ER SYMINFO$ to obtain the current page size and margins and calculate the optimum value.
If coded, LPP should be 3 less than the total logical lines per page, to allow for the headers FLIST places at the beginning of every page. Format:
@FLIST tape.,LPP/54 . Set for 66-line page (Assumes M,66,6,3,6.)
@FLIST tape.,LPP/79 . Set for 88-line page (Assumes M,88,3,3,8.)
FLIST will recognize the following tape formats:
Program files in @COPY,G, SOLAR, or @COPOUT format.
Large Program Files; Large Element Files.
EXEC-8 PUNCH$ and PRINT$ files.
FAS backup tape files.
FORTRAN V formatted output files.
FTN, ACOB, and PL/1 direct or sequential formatted output files.
@DATA-created files.
2200 Series boot files.
In the case of a program file, the table of contents of the file is listed (similar to a @PRT,T).
B - Brief listing: only names and types.
F - Print a file separator line vs. page eject for multi-file listings. The filename will also be listed starting in column 1 of the second line, to make FINDing easier. Suitable for breakpoint mode and release tapes.
I - Initial rewind of tape. Compare with W.
N - Summary listing: file header only, no eltname listing.
W - Rewind tape when done.
A - List absolute elements.
R - List relocatable elements.
S - List symbolic elements.
O - List omnibus elements.
T - List symbolic elements with subtype specified in field one.
V - List elements with version names matching field one version.
For every tape FLIST, the temporary file FLIST$FILES is generated, containing one SGS image for every @COPY,G file read. The format of each image is:
FILE Qual File F-Cyc Seq#,G|S,TkBl Trks,Fmt
Where:
Seq# = File sequence number on tape.
G|S = COPYG or SOLAR.
TkBl = Tracks per block.
Trks = Total tracks of file.
Fmt = File format: *PF*, *LPF*, *LEPF*, *SDFF*, AUD-Vn, or EMPTY.
FLIST$FILES should be copied to another file or an element if the SGS images are to be saved and reused.
@FLIST,A T. . List only absolutes in program files on tape
@FLIST,V T./V . List only elements that have version name V
@FLIST,T T.ELT . List only symbolic elements of type 'elt'
FLIST will print the text of the first block of SDF tapes (PRINT$ tapes, FORTRAN formatted tapes, etc) when the L option is specified. The number of lines printed is limited by the size of the first block or the current lines per page (as specified by the LPP specification described above).