MFD is a utility processor whose primary functions are:
1. Read and scan the Master File Directory -- local, shared, or both.
2. Select files based on user criteria, or all files by default.
3. Create output in the form of standard printed reports; or an SDF file containing filename images, SGS images, or customized output. Totals and subtotals may be displayed.
Contact (most recent developer): Les Leist. e-mail: email@example.com
MFD is provided as is; however, comments, questions, and problems may be sent to the above.
This MFD is based on the classic version that has been around for many years, and whose last level was 8.5.x. Although it retains many of the options and selection criteria of that earlier release, there are enough changes, new features, enhancements, and bug fixes to warrant skipping from level 8 to 10. Users are encouraged to read the documentation first.
One example of the changes is the formats of Spec2 and Spec3.
Another is the changing of two options: Z, previously to force Multi-File mode (now the default unless a gen tag is set or a Single-File or F-Cycle mode call is made); and B, previously to sort files by Qualifier*Filename (also now the default). B is now for selecting files on a given backup reel.
When modifying and re-genning MFD, attach the @USE name MFDSYM to the file this release came in; then @ADD MFDSYM.GENADD and use the resulting absolute.
With Multi-File mode as the default, some sites might not want just any user to be able to snap or list the entire directory. To disable this for all but privileged users (D option or DLOC privileges assigned), edit the element MFDDEF and find the tag PRVDGET. Modify this value for the desired effect:
0 - Any user may snap and list the directory. Project IDs and accounts other than the user's own will be slashed. This is the default.
1 - They may snap, but only list files via A, O, P, Q, O, or K option. (This comes closest to the way the old MFD 8.x used to work.)
2 - Non-privileged users may not snap the directory at all. Modify other tags as needed to control such items as C/Y/M option use, or FAS backup reel display. Then regen MFD according to the above instructions.
Element MFDDEF contains EQU tags near the beginning that define additional MFD operating parameters , such as whether to use common banked library calls.
The runstream GENADDNCB may be used to generate MFD-NCB, an absolute identical to the released MFD but using no common-banked libraries.
All parameters are optional. If no selection options or specs are present, MFD will act according to gen tag TPF$SF: it will always list the entire directory (0, the default), or go into Single- or Multi-File mode based on the Z option (1).
If only a filename is given, MFD will print information about that file in Single-File mode (see Section 2.2). Otherwise MFD will snap the entire directory and make file selections based on options and other specifications.
Header lines may be requested to identify output information. The processor termination produces totals for all the files selected.
If MFD receives a "facility unavailable" status when trying to assign the DGET$ directory snap file on fixed disk, an alternate assignment on removable storage may be specified. Prior to the @MFD call, submit a @USE image to provide the equipment type and packid:
Example: @USE $MFDALTEQP,FMD*PACK06
If MFD receives any errors from the MFDSP$ library routine while processing information, it will list them in an alternate print file, $MFDERRS, and inform the user at the end of execution. Usually, these errors can be ignored, since they result from a directory snapshot being taken while in a state of flux. If desired, you can check on the individual files mentioned in the error messages to be sure.
At the end of execution MFD will set T3 of the condition word according to the manner of completion. If there was a syntax error causing immediate termination, T3 will be set to 040. If there were non-fatal errors during execution, T3 will be set to 1. If there were no errors, T3 will be set to 0.
MFD recognizes several types of options:
E - Requests an extra print line for each mass storage file. This line will contain additional information as follows: owner, ACR, initial reserve, and granule counts for each equipment group.
H - In demand, prints the initial heading including the flag letter descriptions. By default, the latter would not be printed in demand; in batch or breakpointed mode, they are always printed. See also the H secondary option.
In batch or breakpointed mode, the H option will print the heading (without flag letters) at every page break. MFD does an ER SYMINFO$ to capture information about current margins and lines per page; so these may be set to any value using @HDG or ER PRTCN$, and MFD will use all available page lines.
HELP - Display summary Help page.
HELPF - Display backup & disabled flags used on S/L option listings.
J - Suppresses all printing except for the I.D. line and the end totals. If used along with the L or S options, prints the file data but not the totals.
L - Produces a long (132-column) listing. This option is assumed for batch and breakpointed demand runs. L or S may also be used to force the printing of data when it would normally be suppressed, such as with the W or J options.
S - Produces a short (79-column) listing. This option is assumed for non-breakpointed demand runs.
In non-breakpointed demand, the listing will pause after every screenful of lines with the following message:
If the list is sorted, "More" is replaced by the number of files remaining.
When the pause line appears, you may reply:
XMIT (Enter) - Continue.
H - Continue, but repeat heading at top of screen. In the case of custom output, this reply is meaningful only if the H custom output option was used to create a heading.
H+ - Same as H, but repeat heading after every pause regardless of reply. This will continue until another 'H' is entered.
Pn - Set pause value to n, where n is a 1-3 digit number.
P - Reset the initial pause value.
P0 - Continue with no further pausing.
N - Continue with no further printing.
B - Suspend printing until end of current BREAK section.
T/J - Continue, but show only totals, not data lines.
Q, X, @, or any @ECL image - Quit immediately. This terminates any internal image generation, such as custom output or DAD SGSs.
If T or N is entered, MFD will finish its listing of the current file (extra lines, SNAPs) before discontinuing the print.
If T is entered, MFD will continue listing filenames if DAD counts are being listed, and showing BREAK totals if selected; if J is entered, all printing will be discontinued except the final totals.
W - Assigns a temporary ASCII SDF file called $MFD into which an entry is written for each file selected. No regular MFD listing will be printed unless other listing options are also used: J (totals only), L or S (data and totals), or J with L or S (data only).
By default, the images generated by the W option take the form Qualifier*Filename(F-Cycle), beginning in column 7. If the system has SHARED configured, or if the @USE name $MFDGET$-SHR is attached to a directory being examined, the filename will be preceded by the directory ID (STD# or SHARED#) unless the W secondary option is used.
If an SGS label is supplied in the element name field of Spec3, the images will take the form
<label> Directory Qualifier Filename F-Cycle
where Directory is STD or SHARED.
X - Omit any extra lines after each file showing additional reels, packids, backup reels, or catalogued tape data.
Z - List entire directory in the absence of other options or specs. Not needed if gen tag TPF$SF is set to 0.
Primary attribute options refer to alphanumeric names in the user's PCT or a file's MFD entry. When Spec1 is present and none of these options is used, Single-File mode is assumed (section 220.127.116.11).
A - Account
F - Filename
O - Owner (userid)
P - Project ID
Q - Default Qualifier (initially project ID, changed by @QUAL,D)
I - Implied Qualifier (initially project ID, changed by @QUAL)
If Spec1 is omitted, one or more of the options may be used to select files that match the user's PCT items denoted by the options. Examples:
@MFD,P -- Select files with user's project ID.
@MFD,AQ -- Select files with user's account or default qualifier.
If Spec1 is a single name in the element field, one or more of the options may be used to select files with any of those items equal to the Spec1 name. (See also Single-File mode, F-Cycle mode, and Masking.) Examples:
@MFD,A ACCT123 -- Select files with account ACCT123.
@MFD,PQ XYZ -- Select files with project or qualifier XYZ.
If Spec1 is in qual*file notation ('QUAL*FILE.', '*FILE.', or 'FILE.'), the filename must be as given and, unless the I option is used, the qualifier must be respectively the one given, the implied qualifier, or the user's default qualifier. This format will usually result in Single-File or F-Cycle mode unless masking is used.
If any of the A, O, or P options are used, the file(s) selected must also match one or more of those PCT items. (See also Single-File Mode and F-Cycle Mode, and Masking.) Examples:
@MFD TEST*PROG. -- List info for this file in Single-File mode.
K - Selects all registered files residing wholly or partly on the removable packid given in Spec1. Unlike @PRT,D it does not require the pack to be mounted, since only the fixed directory items are used. An optional second packid may be included: PACK1/PACK2.
If more than two packids need to be specified, use the RPACK item in Spec4 and beyond.
See also the section on Removable Pack DGETP$ Snapshots for listing packid contents from the directory residing on the pack.
B - Selects all files backed up wholly or partly on the tape number given in Spec1. An optional second reel may be included: REEL1/REEL2.
If more than two reels need to be specified, use the BREEL item in Spec4 and beyond.
The K and B options may not both be used in the same call; however, RPACK and BREEL may.
I - Ignore qualifier when Spec1 is in [qual*]file.. format.
R - Reverse the results of all attribute tests. Files that would have been selected will be rejected, and vice-versa. It is recommended to use this option only with Spec 1.
Spec 1 items and attribute options will all be evaluated first and have the R option applied to them; Spec 4 and beyond will then be evaluated and have the R option applied to them; then the results of both will be ANDed. Since this interrelationship can get complicated, it is best to code more complex tests in Spec 4 and beyond only, using Polish notation, if there is any doubt about R option results.
The following options are used to indicate that Spec1 includes transparent, or wild card characters, and that special masking operations are to be done as part of the primary attribute tests.
C - Allows partial Spec1 checks. Dollar signs ($) within Spec1 are treated as transparent characters, and the match is made on the basis of matching characters in non-transparent character positions. (See Spec2 for redefining the default transparent character.) If Spec1 does not contain a transparent character, it will be reevaluated as though the transparent character were a space. Examples:
@MFD,CA T$$-$$$$$$$$ -- List all files whose account has 'T' as the 1st character and '-' as the 4th character.
@MFD,CQFP PFX -- List all files whose qualifier, filename, or project ID begins with 'PFX'.
Y - Like the C option above, but only relative character positions are counted. The spec in effect is shifted from left to right through the field, and non-transparent character positions are checked at each step. If desired, a rotation count of 1 to 12 may be included to limit the number of positions the desired spec is tested in; the default (and maximum) is 13 minus the spec length (7 - length for single word), ranging from the spec left-justified in the field to right-justifed. Examples:
@MFD,FY SYS$*AP$3--------.,/- -- List all files with qualifier 'SYS$' and 'AP$3' anywhere in the filename. Note how the wild card character is redefined in Spec2.
@MFD,QFY TEST -- List all files that have the word 'TEST' anywhere in the qualifier OR filename.
@MFD,QFY $TEST$$$$$$$(3) -- List all files that have the word 'TEST' in positions 2-5, 3-6, or 4-7 of the qualifier or filename.
@MFD,QFY TEST*TEST. -- List all files that have the word 'TEST' anywhere in both the qualifier AND filename.
If Spec1 is a single name in the element field, C/Y masking is performed on the item or items being selected, as denoted by the A, F, O, P, and Q options. If none of these are set, F is assumed.
If Spec1 is in the form Q*F., masking is performed on the filename if the F option is set, on the qualifier if the Q option is set, or on both if both Q and F are set. Both the qualifier and filename must each pass its test, whether masked or not. This means, for instance, that "@MFD,FY abcd" is not the same as "@MFD,FY abcd." since the use of Q*F. notation in the second example implies an additional test for the user's project ID.
If Spec1 is omitted but one of the A, O, P, or Q options is set, masking is performed on that default PCT item.
To perform tests more complex than those available with Spec1, refer to Spec4 and Advanced Features.
Secondary attribute options refer to broader categories such as file type and unload status or eligibility. They may be combined with other options and each other to force an 'AND' test.
G - Select G-option files.
T - Select tape files.
U - Select unloaded files.
V - Select V-option files.
Example: @MFD,TA -- List all catalogued tapes under my account.
D - Perform an ER MODPS$ to turn on the DLOC privilege bit if it is not on already, and if a DGET$ snap of the directory is to be done. Turn it off at the end if it was set by this option. The user must have the privilege to do this ER or a security error will result. Without this bit set, accounts and project IDs of files will appear as slashes if they do not match the caller's, or if the file is not owned by the caller.
When MFD executes, it normally creates a temporary file called '$MFDGET$' and obtains a copy of the system's master file directory in that file. If the system has a SHARED directory, MFD will create the file '$MFDGET$-SHR' for it. At program termination, the file or files are normally @FREEd, since they may be quite large. The options listed below may be used to control the assigning and freeing of these files.
M - Prevents MFD from freeing its directory file copy(ies) at program termination. If you anticipate doing several calls on MFD in succession, you should use the M option on all but the last one, to avoid having to recreate these file(s). Alternatively, you can set M as a default option by @USEing the name $MFDOPTIONS for M*$. See section below, Setting Default Options.
N - Causes a new copy of the directory(ies) to be created. This is assumed on the first call to MFD. Subsequent calls will re-use the initial copies, if the M option had been set on the previous call.
The above names can be attached as @USE names to directory files from different times or sites for examination. MFD will print a warning if names are cross-@USEd ($MFDGET$ for a shared directory or $MFDGET$-SHR for a local one), but will attempt to handle it.
Note: Directory files are not used at all in Single-File mode, so the M and N options are meaningless.
The @USE names $MFDGET$ and $MFDGET$-SHR may be attached to pre-assigned, catalogued files, and MFD will use them in place of temporary ones. If the N option is set, MFD will reinitialize the files, as it will if an MFDSP$ I/O error occurs. The files may be catalogued without regard to initial reserve or maximum, as MFD will handle that internally. The M option has no effect since MFD will never @FREE such files.
If there are certain options you wish to use on each call to MFD, such as M or any listing options (S,L,J,E,X,H), you can set default options by submitting a @USE image like the following:
where MainExtra are the desired main or extra option characters; and Secondary are any desired secondary option characters. ("Main" options are the processor call options defined earlier, such as listing and attribute options; Extra and Secondary options are described in this section.) Note that a '$' may be used as a placeholder for either the qualifier or the filename field if MainExtra or Secondary is omitted.
Example: @USE $MFDOPTIONS,M3*P46CL
Main options, such as listing or directory disposition, were described earlier. There are extra main options available when using this mechanism. They are invoked by using additional, non-alpha characters in the qualifier:
$ - Ignored; used as placeholder.
- - Do not use the MSCON$ EXIST$ function to list the F-cycles of a file when the F option is used; always use the directory file. This prevents F-Cycle mode.
0 - Do not perform secondary tests when testing or sorting on items with an implied file type: disk (SIZE, INIT, MAX), removable (PACK, NPACKS), tape (REEL, NTR). This may also be accomplished for individual items on an @MFD call by using a negative offset, as in SORTD*SIZE(-0).
1 - Toggle off the default action of assuming a Fieldata value if all digits are entered for an alphanumeric item such as a packid or tape reel. With the option off, you would need to code 'FD' in the version subfield to treat it as Fieldata; with the option on, you would need an 'N' to treat it as numeric. Examples: PACK.03824/FD,REEL.1104/N
2 - Toggle off the default action of treating an ambiguous 6-character date as YYMMDD instead of MMDDYY. A 6-character date is unambiguous if the first or last two digits are 13 or greater.
3 - Toggle demand pausing off in non-breakpointed demand. May be applied to an individual call with the Secondary Option characters P0.
4 - Toggle on the default searching of the implied directory(ies) if none is specified in the Spec2 eltname field.
Secondary options define certain defaults of MFD, mostly related to the standard S & L option listings. The defaults built into MFD may be overridden by three methods, listed below in increasing order of precedence:
1) System Defaults. When copying MFD into the file from which it will be executed, give it a version name equal to the desired defaults. This MFD can still be called as @MFD as long as it's the only MFD in the file; but it cannot be installed by SOLAR because of the version name. Example:
2) Session Defaults. These are established through the @USE name $MFDOPTIONS described above. The secondary options set here will override any system defaults for the duration of the run, or until the @USE is changed.
3) For an individual call, the version field of Spec2 can specify secondary options. They will override both system and session defaults.
Here are listed the available Secondary Options:
When printing short lines (S option), one of several dates may be selected to be printed in that listing's single date field:
B - Backup Date.
C - Catalogued Date.
F - Time of First Write after Backup.
R - Last Reference Date (default).
U - Time of Unload.
Similarly, a selection may be made for the numeric field preceding that date field. These options can apply to either the S- or L-option listing:
A - Assign Count (default).
L - File's Lifespan in days.
M - MUSER$ cell value.
N - Number of backup reels.
O - Over-reserved tracks (initial reserve minus highest track written).
V - Clearance level.
D - When calculating age from a date field to the present, use the date from the directory snapshot header rather than the date of execution. This applies when using any of the Age items in Spec4-n (AGR,AGC,...).
G[n] - Include flag letter descriptions for BREAK headers in addition to printing them at the beginning of the listing. A single digit may follow to specify the highest level for which the descriptions will be printed. n defaults to 1 if not coded, or to 0 if G not used at all.
H - Suppress flag letter descriptions when printing the initial heading.
I - Eject page for the initial heading (after signon).
J[n] - Eject page for BREAK levels beyond 1. A single digit may follow to specify the highest level at which a page eject will occur for a new BREAK. n defaults to 2 if not coded; may also be 1 or 0 (no ejects). If J is not used at all, n defaults to 1 (outermost BREAK level). Note: G and H apply to the classic listing format; I and J apply to batch or breakpointed listings for either classic or custom output. G and I can be useful when creating BREAK listings for distribution.
Pnn - Set the demand pause line count to nn. This will bypass the normal action of doing a forced transmit on a UTS terminal to determine the available screen lines; it will also override the default of 22 for non-UTS terminals. nn should be 2 less than the total screen lines. If less than 10, will assume the default; if 0, will cancel demand pause. Max nn = 999.
S - Force Single-File mode if no attribute or directory options; does not require a filename in Spec1.
Tk - Redefine the transparent character to use for Spec1 C or Y option masking, and Spec4-n C/Y masking, as k, where k may be any character other than the default "$". If k is a dash, it does not need to be preceded by "T".
W - If system has SHARED configured, prevent the default action of including the directory name with each file for @MFD,W output.
Z - Obtain file size from DAD tables rather than file's Main Item. This will add overhead but will be more accurate for files that are updated while assigned. The difference between the true track and granule size and the size obtained by adding the granule counts in Main Item 0 will available in items 'DSZ' and 'DGR', respectively. Using the SORT field "SORT*DSZ/TNZ." will list only those files whose true sizes differed from the original, sorted in ascending order of the difference. The custom output items 'OSZ' and 'OGR' are also available to show a file's original (Main Item) sizes. Using any of these four items will trigger the Z secondary option.
0 - Edit numbers in totals lines with comma separation.
As explained more fully above under Primary Attribute Options, Spec1 may contain a file or PCT item in the element name field; a filename specification in the form QL*FN., *FN., or FN.; one or two packids for the K option; or one or two backup reels for the B option.
If only a filename or @USE name is given in Spec1 and no attribute or Multi-File options are used (AFOPQ, IR, CY, BK, TUVG, MN, Z), Single-File mode is assumed. Only the given file's directory item is read instead of the entire directory, speeding up MFD considerably if all you need is information about one file. Thus, a demand user might use:
to get a quick, short listing for the file PROJ*PF. If you need a heading, use the H option. Totals are not printed unless the J option is used.
If no Spec1 is given and there are no attribute or directory options, MFD will act according to the tag TPF$SF in element MFDDEF. If set to 1, MFD will print Single-File mode information about the user's TPF$; if 0 (the default), MFD will assume Multi-File mode unless the S secondary option was used.
In Single-File mode, MFD will accept additional filenames on data images, one per image. Entering a filename will cause that file to be listed in the same manner as the original file. Entering XMIT with no data will terminate MFD.
If the S secondary option is used (@MFD ,/S) and Spec1 is empty, MFD will not assume TPF$ for the first file but instead go ahead to read or solicit the next one.
Since the files on these images will have a @USE name attached to them, they can include a directory: STD#Q*F or SHARED#Q*F.
On files with a SHARED directory, MFD will look for the file in the caller's implied directory unless a directory is specified in Spec2, a directory ID is included on a solicited image, or the file is a @USE name.
If only a filename or @USE name is given in Spec1 and only the F option is set, MFD will enter F-Cycle mode. It will use the MSCON$ function EXIST$ to retrieve the information for every cycle of the file. As with Single-File mode, MFD does not reference the directory file but searches both directories if SHARED is configured, unless the filename was a @USE name or a directory was specified in Spec2 of the @MFD call. However, no additional images are solicited, and totals are printed.
F-Cycle mode can be prevented by setting the '-' Extra Option described earlier.
This field may be used to specify the directory to search: LOCAL, SHARED, BOTH, IMPLIED, or NONE. Only the first letter is checked. IMPLIED may mean either or both. The default is BOTH on a system with shared, otherwise LOCAL; unless the '4' extra option is set to default to IMPLIED. NONE is provided in case only the DGETP$ directories of removable packs are wanted without either of the fixed directories.
Examples: @MFD ,SHARED
In Multi-File mode, these specifications dictate which directory[ies] MFD will snapshot; in Single-File mode on a system with shared, they determine which directory ID (STD# or SHARED#) will be edited into the @USE image for the file in Spec1 and for files on subsequent input images not having a directory ID.
This field may set specific Secondary Options for a single @MFD call.
@MFD,P ,/B -- Files under my project ID, showing their backup dates.
@MFD,QC PROJ1ZZZ,/TZP16 -- Files whose qualifier begins with PROJ1, followed by any three characters. Pause every 16 lines.
@MFD,FC SYS$*F010L-.,/-C -- Show creation dates for all cycles of both legs of the Log File (F010L1 & F010L2).
This spec may be used to specify either an SGS label for output images, or a file/element containing instructions for customized output. Use of this spec will trigger the W option, which this spec can be regarded as an extension of.
Customized output can be used in Single-File mode. When it is, files will not be sorted unless the S custom option is used or sort fields are coded.
If only the element name field is present, it will be treated as a 1-12 character SGS label for images generated into output file $MFD. Images will be in the following format:
label DIR Qual File Fcycle
where DIR is STD or SHARED. Example: @MFD,P ,,MYFILES
Spec3 may designate an element or SDF file containing instructions for tailoring MFD's output to the $MFD file. A filename (or period for TPF$) is required; an element name is optional; and the version field is used for options applying to the output:
C - Omit the continuation character (;) for list items such as PKL. This is ignored for VOL, since its purpose is to generate ECL.
D - Assume a MaxLth value of the total available demand columns, less 1 for the SOE. This includes terminals wider than the standard 80 columns if in nonbreakpointed demand. If breakpointed or batch, 79 will be used; without D, 132.
E - Echo back input images for custom output.
F - Use the full size (maximum length) for every item. This has the same effect as the H option without the heading, or beginning each field with "!" instead of "".
H - Print a heading at the beginning of the output. This will force all fields to be full size so the output will be lined up in columns. Recommended only for output with a single image per file and little or no extra text, as this will be included in the heading.
I - Same as H, but will print initial heading only, whether in batch, breakpoint, or demand.
L - List the generated output as well as generating it into $MFD. This option will replace the normal L/S option output. Note that if an image length is greater than 132, only the first 132 characters will be listed, unless MaxLth was set to accommodate it or the D option was set to use demand screen width.
N - Do not print the ending "OUTPUT IMAGES IN $MFD" message.
P - Print the @ADD of the automatic custom image file, if one is used.
S - Force default sorting in Single-File mode; filenames will be solicited but not listed until a blank image or @EOF is entered.
T - Include totals in generated images.
W - Wrap and continue images if they exceed MaxLth. Assumed if list item used (PKL, RNL, BKL, VOL).
X - No default sort in Multi-File mode; same as NOSORT*X in Spec4. Assumed unless the S custom option is used or sort fields are coded.
MaxLth may be set to a maximum image length of up to 240 (default=132). Images exceeding this length will be truncated unless the W custom option is set or one of the list items is used (PKL, RNL, BKL, VOL). If MaxLth exceeds 132, or the D option is used on a terminal wider than 132, the PRINT$ width will be expanded with an ER PRTCN$.
The custom output file or element will be @ADDed and read. If the filename is 'READ$', MFD will read images from the runstream, terminated by an @EOF.
The output tailoring instructions are supplied in one or more images containing any number of MFD items as defined above (PROJ, ACCT, SIZE, REF, etc.), plus optional text. Each image, with MFD items filled in, will be generated for each selected file. Note that since custom output images are read as Fieldata, no characters unique to ASCII should be used.
MFD item names are set off from other text by preceding them with a signal character: "" (backslash) to edit the item with only as many characters as needed; or "!" (exclamation mark) to edit the item within the maximum length of the field: left-justified for alphanumeric items and right-justified for numeric items. Only the first three characters of the item name are needed.
If a decimal numeric item to be edited is flagged with an asterisk, as in '*SIZ' or '!*CLV', it will be displayed in octal. If the item is octal, it will be displayed in decimal.
The percent items, PCFULL and PCAVAIL, are an exception to this. When these items are flagged they will display percents as nn.n instead of nn. However, they will always be rounded to whole integers for Spec4-n testing.
If a numeric item would exceed its field size, it will be rounded to the nearest thousand and displayed as "nnnK".
If an alphanumeric or date item is flagged with an asterisk, as in '*REEL' or '*BDT', and that item for an individual file is zero or blank, it will be edited only as spaces, instead of the default "*NONE*", "<NONE>" or "<BL>".
Boolean items (those that can be tested by IF.xxx) can be edited, and they will show as flag characters or blanks, depending on the condition. Examples: 'SHARED' would show as "#" or " "; 'WRN' would show as "W" or " "; 'GOP' would show as "G" or " ".
If a Boolean item is flagged, as in '*BAK' or '*WAD', MFD will edit a "1" if the item is true and a "0" if it is false, thus ensuring some character is always generated. If flagged and the "!" is used, as in '!*WAD', the letters "T" and "F" will be used for true and false. If only the ! is used, as in '!WAD', the letters Y and N will be used for Yes and No.
If an item name is immediately followed by one or two digits, the field size for that item will be changed to that number. This is meaningful only when full field sizes or the H option is being used. Example: SIZE6
Image continuation is denoted by ";".
If the signal character "" is followed by a non-alphanumeric character other than "*" or ";", that character will simply be edited into the text. This allows for two special cases: generating an "@" in column 1 -- the input is @ADDed so it cannot have one there -- or generating a backslash or exclamation mark.
Each catalogued file has four date fields: Last Referenced (REF), Catalogued (CAT), time of Unload (UNL) & time of First Write after backup (FWR), and Backup Date (BKD). Note that UNL and FWR refer to the same field but generate different headings on a custom listing.
For all timestamp fields, MFD will recognize a MODSWTIME$ format if it occurs where a TDATE$ word is expected.
In addition to the basic names listed above, which display only the date, each field has a name by which to reference the time only (RTM, CTM, UTM, FTM, BTM) and a name to reference both the date and time (RDT, CDT, UDT, FDT, BDT). Files may be selected and sorted on date and combined fields, but not on time fields; they are only for custom editing.
There are a variety of ways to display these dates, using combinations of the "", "!", and "*" flag characters; plus selecting the date, time, or combination name for the field. The Last Referenced date will be used in the following list to demonstrate the different formats:
REF - yymmdd *REF - mmddyy !REF - yyyy-mm-dd !*REF - mm/dd/yyyy RDT - yymmdd-hhmm *RDT - mmddyy-hhmm !RDT - yyyy-mm-dd/hhmmss !*RDT - mm/dd/yyyy-hhmmss RTM - hhmm *RTM - hh:mm !RTM - hhmmss !*RTM - hh:mm:ss
Every date field also has a corresponding age field that may be selected or sorted on. It refers to the difference in days and seconds between that date and the present time. The Catalogued age, for example, tells how long the file has been in existence. The age fields are referred to as AGR, AGC, AGU, AGF, and AGB. They may be selected, sorted on, and edited in custom output. The format is AGR/<test>/nDnHnMnS, where any combination of days, hours, minutes, and seconds may be given. This makes age fields better for relative testing than the corresponding date/time fields.
As with the date fields, you may reference the days or time portions individually, using DREF, DCAT, DUNL, DFWR, DBAK; or TREF, TCAT, TUNL, TFWR, TBAK. (Four characters are shown for clarity, but only the first three are needed.) Once again the Last Referenced age will be used to display the available formats:
AGR - dddd/hhmm *AGR - dddd/hh:mm !AGR - dddd/hhmmss !*AGR - dddd/hh:mm:ss TRE - hhmm *TRE - hh:mm !TRE - hhmmss !*TRE - hh:mm:ss DRE - dddd
Note that TRE is treated as an ordinary time field, and DRE is numeric.
Finally, there is the Lifespan field, which is a type of age field denoting the difference between the Last Referenced date and the Catalogued date. Earlier levels of MFD had the LIF item, for Lifespan in days. To this have been added AGL for the complete dddd/hh:mm format of other age fields; and TLI, for the time portion. DLI is a synonym for LIF.
A secondary option, D, may be used to specify, when calculating the age between the current time and a date field, that the timestamp from the directory snapshot header, rather than the time MFD was executed, should be used.
COLnn - Position to column nn of the output image. If the image is already beyond that column the COL will be ignored unless it was flagged to force it: *COLnn.
CL+nn - Advance the column position by nn characters.
Several item names beyond those already defined are available for editing special fields. They are for custom output editing only, and not for testing in Spec4-n.
QFC - Edit Qualifier*Filename(F-Cycle) - maximum length 30.
QFN - Edit Qualifier*Filename - maximum length 25.
DQF - Edit Directory#Qualifier*Filename(F-Cycle) - maximum length 37.
DQN - Edit Directory#Qualifier*Filename - maximum length 32.
If QFC or DQF is preceded with "*" in Multi-File or F-Cycle mode, the filename will be edited with its relative F-Cycle.
UQF - Edit @USE name if given in Single-File mode; else, use QFC.
UQN - Edit @USE name if given in Single-File mode else, use QFN.
UDQ - Edit @USE name if given in Single-File mode; else, use DQF.
UDN - Edit @USE name if given in Single-File mode else, use DQN.
UQF and UDQ may be preceded with "*", just as QFC and DQF.
USE - Edit @USE name given for file in Single-File mode.
DIR - Edit Directory ID: "STD" or "SHARED". Also FDIR.
OPT - Edit file's @ASG/@CAT options (S/L option listing field).
*OPT- Edit file's @CAT options only (no A, X, C, T, etc.).
TYP - Edit file's type. The default size of this field is 1; it will show a space for fixed files, 'R' for removable files, and 'T' for tapes. If the size is changed to 3, it will show spaces, 'REM', or 'TAP'. If size is changed to 5, it will show spaces, 'REMOV', or 'TAPE '.
*TYP- Same as TYP, but show 'F', 'FIX', or 'FIXED' for fixed files.
GRN - Edit file's granularity mnemonic: TRK or POS.
HGU - Edit file's actual highest granule written field. (HGW will show "*UNL*" if the file is unloaded; HGU will show 0.)
HTU - Same as HGU for highest track written.
NGW - Edit file's number of granules written. This will be the highest track or position written plus one, based on the file's granularity, making it suitable to use for an initial reserve. If the file is unloaded, will use the number of backup tape blocks. If the file's track size and number of backup blocks are both zero, the one will not be added, leaving NGW at 0 (empty file).
NTW - Edit file's number of tracks written, regardless of granularity.
OSZ - Edit file's original track size vs. size derived from DAD tables.
OGR - Edit file's original granule count vs. count from DAD tables.
FMT - Tape format: "Q", "6", or nothing for default 8-bit.
BST - Edit file's backup/CAT/DROP/@SYM status: space=current, 'N'=no backup, '<'=non-current backup, 'C'=to be catalogued, 'D'=to be dropped, 'Q'=@SYMmed, 'U'=unloaded.
DST - Edit file's disabled status: space=not disabled, 'W'=warning only, 'H'=hardware, 'B'=bad backup tape, 'D'=data, 'M'=bad Main Item 1. (BST and DST correspond to the fields in the classic listing.)
PST - Edit file's privacy status: PUB, PRV, or SEM.
BKL, PKL, RNL - Edit list of file's backup reels, packids, or catalogued reels. These items are meant to occur last or on separate images, perhaps preceded by a descriptive word or related item like backup date. If the item doesn't apply to the file (e.g., packid list for tapes), the number of items is 0, or the X option is used on the @MFD call, the image will not be generated unless the ! signal character is used to force it ('!RNL').
These list items will continue to the maximum length of the image as needed, separated by commas. If more items remain, a semicolon will follow the last comma on the image and a new image will begin, starting in the same column as the first item.
List items can be used on a second line when the first line included the first one or more of the items, the way the classic S and L option listings list the first packid or reel numbers on their first line. To do this, code a number (1-31) after the item name to indicate which sequence number of the list to begin with.
If the flag character is used (*BKL), the list will be preceded by a label word (e.g., 'BACKUPS:'). The word 'MORE' will be added if the list begins with the 2nd or later item, as in '*BKL2'.
VOL - This provides a way of listing the volume ids of removable files or tapes, as they would be on an ECL image. They are preceded by a comma (unless !VOL is used) and continued if necessary starting in column 2 of additional images. If using this for ECL images, you should use the D option or the MaxLth parameter to limit image size. VOL will generate nothing for fixed files. As with PKL and other list items, VOL should occur last on an image, and will not generate output if the X option is on unless !VOL is used.
NB+, NP+, NT+ - Flag character if a file has more than one backup reel, packid, or catalogued tape reel. These items are intended to go immediately after the first of the respective volumes, as in "BACKUPNB+" or "PACKIDNP+". In a short listing, this would be a convenient way of showing just the first volume of a list, but also indicating that there are more by following it with a "+".
MLT - If BREAKing on a multiple item (RPACK, BREEL, CREEL), this will edit the current value of that item when listing files.
ALT - This is a special field used to provide two or three alternate items for MFD to choose from depending on file type: two for disk or tape files; three (denoted by *ALT) for fixed, removable, or tape files. The alternate items immediately follow the ALT. If headings are created, the heading for the first alternate item will be used. To insert a space for a given item, code a space: *ALT PACKIDEQP.
The field will be assigned the width of the longest of the two or three items supplied. If you wish to set the field size, do so after the last alternate item. Examples:
ALTMAXNTR7 -- Max Granules for disk files, # Reels for tapes. The field size is redefined after the last item.
*ALTEQPPACKIDEQP -- Equipment code for fixed, packid for removable, equipment code for tape.
Several alias item names may be used in either Item.Value or IF.Item but have different meanings depending on where they are used. This means that if they are used in custom output, it can be ambiguous whether the alphanumeric or Boolean item was intended. To clarify this, the list below shows the unambiguous name, the type (A=Alpha, N=Numeric, B=Boolean, D=Date), the ambiguous alias for the item, and the item description.
ACT (N) - ASG - Number of times assigned
AOP (B) - ASG - File is currently @ASG,A
ONM (A) - OWN - File owner (owner name)
OWF (B) - OWN - File is owned
TPC (N) - TIP - TIP cell (type of TIP files if used by TIP)
TPU (B) - TIP - File is in use by TIP
ULD (D) - UNL - Date unloaded
ULF (B) - UNL - File is unloaded
If an ambiguous alias is used in custom output or Item.Value specs, the non-Boolean item will have precedence over the Boolean item.
1. An element called PACK is created in file MYPROGS with these images:
The command "@MFD,P ,,MYPROGS.PACK" can then be used to generate into file $MFD a runstream that will @ASG each file under the user's project ID (to make sure it is not rolled out) and @PACK it, if possible.
2. The element MFDF.FMT2 is created with the following image:
SIZ ASG CDT RDT QFC
The command "@MFD ,,MFDF.FMT2/LH" will create a columnar list of all files in the directory, showing their size, assign count, date/time catalogued, date/time last referenced, and full filename. The list will be generated into the file $MFD and printed at the user's terminal.
3. The SDF file ABCLF. is created with the following image:
THE FILE QFC HAS SIZE TRACKS AND A LIFESPAN OF LIF DAYS.
The command "@MFD,A ABC,,ABCLF." will generate into $MFD a line for each file under account ABC, with a sentence giving its size and lifespan.
The file containing this release of MFD also has three elements that can be used to demonstrate customized listings. CUST-EX-MFDS and CUST-EX-MFDL duplicate the classic S and L option listings, while CUST-EX-MFDF provides a more comprehensive display for a demand terminal.
If you want to use the same customized output images repeatedly, you can establish a custom output file, options, and maxlth to be invoked automatically whenever you call MFD without having to code them in Spec 3. Assign an SDF file called $MFDCUSTOM and edit two images into it: 1) the file or element containing the customized output images and 2) the options to use when invoking it, optionally followed by maxlth. Example:
@ED,I $MFDCUSTOM. PROGFILE.MFDCUSTOM1 LHT 96
This automatic custom output will be used unless the file is @FREEd, another custom output is entered in Spec 3, the @MFD S or L option is used, or the @MFD J or W option is used without S or L. Alternatively, you can treat $MFDCUSTOM as a @USE name that can be attached to any of several files with different custom image specifications. This way, only a @FREE,A of the name needs to be done to stop the automatic custom output.
Spec fields 4 though 63 (a configurable total of 60 specs) may be used to specify extra tests to be performed on each file, in order to further define the set of files to be listed. These specs may take two forms:
The names and possible values for items are presented below, shown with their type (Alphanumeric/Numeric/Date), maximum characters (A) or range (N), and description. Items described as N-Oct are displayed in octal by default.
Alphanumeric items are Fieldata. If the value coded for an alphanumeric item is all digits, it will be treated as Fieldata unless 'N' is coded in the version field or the '1' Extra Option is toggled off to reverse this default and treat it as numeric. If the '1' Extra Option is off, you would need to code 'FD' in the version field to treat such an all-digit value as alphanumeric.
Two-word alphanumeric items may be given an offset to refer to only their first or second word, as in QUAL(0) or FILE(1).
Numeric items are assumed to be decimal unless they have 12 digits or a leading 0 to make them octal.
The three items designated "MLT" are multiple items, for which a file may have one or more occurrences. They are RPACK (packids), BREEL (backup reels), and CREEL (catalogued tape reels). When a multiple item is tested for, as in RPACK.XYZ, a search is made among all the file's occurrences of the item. The test passes if one match is found. Note that for a not-equals test, as in BREEL/TNE.123, it is verified that none of the occurrences match. More than one multiple item may occur on Spec4-n, but only one may appear with BREAK. None may be used on a non-BREAK SORT.
The implied test for most of these items is for equality (TE/DTE). For dates and certain numeric items the default test is based on the configuration tag TESTEQ. If it is set to 1 (the default), the implied test will also be for equality. If TESTEQ is 0, MFD will revert to the previous practice of assuming a default test of TG or TLE, as indicated under Type. To override any default test, just code a different one. Example: SIZE/TG.1000 (See also the Advanced Features chapter.)
When coding these items on the @MFD call, only the first 3 characters are checked.
Item |Type |Chars/Range|Description ---------|-----|-----------|------------------------------------------- +QUAL, | | | +DQUAL, | | | +FQUAL |A |12 |Qualifier (default Qualifier if not specified) +IQUAL |A |12 |Qualifier (implied Qualifier if not specified) FILE, | | | FNAME |A |12 |Filename FSQ |N |0-4095 |File Set Sequence Number (see Name Set section) FCYCLE |N |1-999 |F-Cycle RELFCYC |N |-31 - +1 |Relative F-Cycle. Always 0 for Single-File mode. | | |Ex.: REL.-0 = newest, REL.-31 = oldest; REL.1 => | | |to-be-catalogued +1 cycle (but "+" char. illegal) NCYCLES |N |1-32 |Number of F-Cycles, excluding any to be | | |catalogued or dropped RNGCYC |N |1-32 |Current F-Cycle Range MXCYCLES|N |1-32 |Maximum F-Cycles HICYCLE |N |1-999 |Highest Absolute F-Cycle DIX |N |0-1 |Directory Index (0=STD, 1=SHARED) +PROJ |A |12 |Project ID PSQ |N |0-4095 |Project Set Sequence Number +ACCT |A |12 |Account ASQ |N |0-4095 |Account Set Sequence Number +OWNER, | | | +ONM |A |12 |Owner (Userid) OSQ |N |0-4095 |Owner Set Sequence Number ACR |A |6 |Attached ACR +CLV |N |0-63 |Current Clearance Level RDKEY, | | | FRKEY, | | | FRDKEY |A |6 |Read Key (slashes if user not privileged) WRKEY, | | | FWKEY |A |6 |Write Key (slashes if user not privileged) *PACK |A |6 |First packid for removable disk files. Up to 5 | | |packids from Main Item 1 may be referenced using | | |offsets: PACK, PACK(2), PACK(4), PACK(6), PACK(8). *RPACK |A,MLT|6 |Multiple item for testing all packids *NPACKS |N |1-4095 |Number of packids. *REEL |A |6 |1st reel number for catalogued tape files *RLTWO |A |6 |2nd reel number for catalogued tape files *CREEL |A,MLT|6 |Multiple item for testing all catalogued reels *NTR |N |0-262143 |Number of tape reels for catalogued tape files *XLP |A |6 |Tape translator processor mnemonic *XLT |A |6 |Tape translator tape mnemonic (If generating ECL, | | |use *XLP/*XLT to avoid <NONE> for blank fields.) BACKUP |A |6 |First FAS backup reel BREEL |A,MLT|6 |Multiple item for testing all backup reels BFP |N |1 - 2**35-1|FAS backup file position BTB |N(TG)|0-16777215 |Number of FAS backup tape blocks in tracks BTG |N(TG)|0-262143 |Number of FAS backup tape granules (original cell) NBR |N |0-4095 |Number of FAS backup reels NBW |N |0-4095 |Number of FAS backup words FAS |N-Oct|0-077 |FAS bits BLV |N |0-63 |Current number of FAS backup levels MXB |N |0-63 |Maximum number of FAS backup levels EQUIP, | | | EQP |A |6 |Equipment type *SIZE |N(TG)|0-16777215 |Total size in tracks, loaded or unloaded *SZU |N(TG)|0-16777215 |Total size in tracks, 0 if unloaded *SZG |N(TG)|0-262143 |Total size in granules, loaded or unloaded *SGU |N(TG)|0-262143 |Total size in granules, 0 if unloaded *INIT |N(TG)|0-16777215 |Initial reserve tracks *ING |N(TG)|0-262143 |Initial reserve granules *MAX |N(TG)|0-16777215 |Maximum tracks *MXG |N(TG)|0-262143 |Maximum granules *HTW, | | | *HITRACK |N(TG)|0-16777215 |Highest track written (relative, starts at 0); | | |shows "*UNL*" if unloaded *HGW |N(TG)|0-262143 |Highest granule written, shows "*UNL*" if unloaded *HTA |N(TG)|0-16777215 |Highest track assigned *HGA |N(TG)|0-262143 |Highest granule assigned *DSZ |N(TG)| -16M- +16M|Difference between DAD tbl & MI0 gran tbl size *DGR |N(TG)|-262K-+262K|Difference between DAD tbl & MI0 gran tbl granules *PCFULL, | | | *PCTFULL |N(TG)|0-100 |% of file's tracks full (HITRACK/MAX) *PCAVAIL |N(TG)|0-100 |% of file's tracks available (100-PCFULL) | |0.0-100.0 |(Will display 10ths of % if edited as *PCx) *OVER |N(TG)|0-16777215 |Tracks over-reserved (HITRACK-INIT) *UNDER |N(TG)|0-16777215 |Tracks under-reserved (INIT-HITRACK) REF |Date |yymmdd, |Date last referenced (see also Extra Option 2) |(TLE)|yyyymmdd, |(Specific date or 1-4 digit no. of days, weeks, | |nD,nW,nM,nY| months, or years before today -- see DREF & DCAT) CAT |Date |same as REF|Date catalogued BKD |Date |same as REF|Date backed up *FWRITE |Date |same as REF|Date of 1st write after backup *UNLOAD |Date |same as REF|Date of unload (same cell as FWRITE) ULD | | | RDT,CDT,|Date yymmddhhmmss|Provide a way of sorting or testing both date and BDT,FDT,| | |time for REF, CAT, BKD, FWR, and UNL. UDT | | | LIFESPAN|N(TG)|0-262143 |Lifespan in days (REF minus CAT) AGR,AGC,|Age |nDnHnMnS |Date age: days & seconds from date to present. AGB,AGF | | | AGU | | | | | |(See "Date and Age Fields" section for more.) ASG,ACT |N(TG)|0-262143 |Assign count (no. of times assigned) NASGD |N |0-4095 |Number of current assigns MUSER |N |0-262143 |Site use cell (MUSER$), decimal MUOCT |N |0-0777777 |Site use cell, octal MUALPHA |A |3 |Site use cell, alphanumeric (Fieldata) *TIP,TPC |N |0-63 |TIP usage cell (type of TIP files if used by TIP) *XPID |N-Oct|0-0777777 |XPC ID *XPFLAGS |N-Oct|0-077 |XPC cache flags *XPUFLAGS|N-Oct|0-077 |XPC user flags HOSTASG |N-Oct|0-07777 |Host Assign Mask API |A |12 |Application-Private ID *DTOTALS |N(TG)|0-262143 |Total DADs *DDISK |N(TG)|0-262143 |Total disk DADs *DMEM |N(TG)|0-262143 |Total memory DADs *DHOLES |N(TG)|0-262143 |Total DAD holes ----------------------------------------------------------------------- + - Filled from caller's PCT if value omitted and no SORT or BREAK done. * - Secondary test - see below.
* Items preceded by an asterisk have an implied default secondary test to ensure they are the correct file type. For instance, testing for PACK or NPACKS will verify that the file is removable disk; for REEL or NTR, that the file is tape; for SIZE or FWRITE that the file is disk.
To disable the secondary test for all items when selecting or sorting, use the '0' extra option, described above under Setting Default and Extra Options. To toggle it for an individual item, code a negative offset, using -0 if no actual offset is desired. Example:
It should be noted that selecting or sorting on items contained in directory sectors beyond Lead Item 0, or Main Items 0 or 1, can add overhead to MFD's processing time, since it must retrieve these extra sectors for each file. Examples are Shared File Extension Items (XPID, HOSTASG) and DAD table items.
This format tests files for certain conditions or modes. Using 'IF' will test the file for a TRUE condition; using 'IFNOT' will test for FALSE.
The names of possible conditions to test for and their descriptions are listed below. As with the MFD items, only the first 3 characters are checked.
18.104.22.168. Examples [Top][Contents]
Name |Description ------------|--------------------------------------------------------------- TAPE |Tape file MASS |Mass storage (non-tape) file REMOVABLE |Removable disk file RMP |Removable disk file data is from pack itself (DGETP$) FIXED |Fixed disk file SHARED |File on shared mass storage LOCAL |File on local mass storage OWF |Owned file MYFILE |Owned by caller UNOWNED |Unowned file INFILESET |Member of input file set (see Name Set section) INACCTSET |Member of input account set INPROJSET |Member of input project set INOWNERSET |Member of input owner set UNLOADED,ULF|Unloaded file DISABLED |File disabled in any way HDW |Hardware-disabled file WRN |Warning-only disabled file BBT |File disabled due to bad backup tape DAT |File data disabled BM1 |File with bad main item links SERIOUS |Serious (non-Warning) disable: HDW, BBT, DAT, or BM1 TOBECAT |File to be catalogued DELETED, | DROPPED |File to be deleted (dropped) AOPTION,ASGD|A-option (file currently assigned) GOPTION |G-option (guarded) file VOPTION |V-option (unload inhibit) file XOPTION, | XASG, XUSE |X-option (file assigned exclusively) PUBLIC |Public file PRIVATE,PRV |Private file SEMIPRIVATE |Semiprivate file BAKDUP |File has @FAS backup CURRENT |File has current @FAS backup READONLY |Read-only file WRITEONLY |Write-only file POSITION |Position granularity file TRK |Track granularity file BIGFILE |File with large file bit set (> 262143 tracks) WAD |Word-addressable file CNS |File is assigned to a single Common Name Section WTO |File is being written to XPCCACHED |File is XPC cached SYMMED |File has been @SYMmed (i.e., has a symbiont link) TPU, TIP |File is used for TIP; TIP usage cell is 1, 2, or 3 ILLEGAL |File with illegal characters in the qualifier or filename ILQUAL |File with illegal characters in the qualifier ILFILE |File with illegal characters in the filename ILBOTH |File with illegal characters in both qualifier & filename
The indicated item and value must pass the appropriate test for the file to be selected. When more than one of these specs is given, all of the tests must pass for the file to be selected; in other words, logical 'AND' operations are implied between the tests. Thus,
would list all those files with qualifier MYQUAL which also have the account MYACCT and reside on removable pack MYPACK.
By using the 'ORALL' spec, you can force the default operation among the tests to be 'OR' instead of 'AND'. If you had coded the above example as
you would have listed all files with the account MYACCT, all removable files, and all files on pack MYPACK.
It is possible to use masking, reverse the tests being performed, perform more complex tests, and specify that logical operations other than 'AND' are to be done between the tests. Since these features are more complicated to use, they are covered in the Advanced Features chapter.
The Polish notation available in the spec fields does not easily lend itself to longer selection lists such as a dozen accounts or projects, which would require n-1 ORs preceding the actual list of n items. To alleviate this, a way is provided to input extensive selection lists for four MFD items: Filenames, Accounts, Projects, and Owners. This is accomplished by means of an IF (or IFNOT) test on a special Boolean item created for each of the above four names:
IF.INFILESET -- IF.INACCTSET -- IF.INPROJSET -- IF.INOWNERSET
As with all item names, these Boolean items may be abbreviated to three characters: INF, INA, INP, INO.
Coding IF.IN<name>SET, or IF.INx, on an @MFD call will do two things. It will solicit a list of names from the terminal or an @ADD stream; and it will set this Boolean item TRUE for every file that matches any name in this list, thus selecting the file.
Images will be solicited with the prompt:
NEXT NAME[/M] FOR XXXXXX SET, OR @EOF:
with XXXXXX replaced by FILENM, ACCT, PROJ, or OWNER.
Any number of input images may be entered, and any number of names may be listed on an image, separated by at least one space. Enter @EOF to terminate input; if an "@" or any ECL statement is entered, it will cancel demand pausing. To have this set's input images echoed, code "IF.INx/E".
Note: solicitation of file set images will occur after any custom output images have been read or solicited and terminated with an @EOF.
Each name listed on an image is 1-12 characters. In the case of FILE images, each name consists of a qualifier*filename. Either item may be omitted, indicated by a leading "*" for filename only, or a trailing "*" or nothing for qualifier only. The name is terminated by a space or period.
Each name may include wild cards to represent certain characters:
? - Any character including blank.
% - Any nonblank character.
^ - Blank required in this position.
# - Any digit.
= - Any letter.
! - Any special character.
Each name may also be followed by a slash and a masking option (/M) to indicate if any masking or shifting is to apply to it. Masking options are:
C or L - Left-justified
R - Right-justified
Y - Rotating; i.e., the item may be anywhere in the name.
Wild cards and masking will be taken into account when deciding if a file matches a particular name.
Finally, any name may be preceded by "<", which acts as an exclusion flag. Files which match any of the other names in this set will not be included if they match a name with the exclusion flag.
In addition to the Boolean items defined for each of the four name types, there are corresponding numerical items: FSQ, ASQ, PSQ, OSQ. If a file in the MFD matches one in the list, and is not excluded, it will be selected, and its 'xSQ' cell set to the sequence number of the name it matched in the set list.
The selected files may be displayed together, or you can do a BREAK*xSQ to list files that matched each name. If a file matches more than one name, its 'xSQ' will be set to the first one that it matched. When a BREAK is done on an xSQ cell, it is advisable to code one name per image when inputting the name set, so that the sequence number shown in the BREAK totals matches the sequence number of the listed images.
A single integer n may be placed in the element name field anywhere among Spec4-n (preferably first or last), and MFD will list only the first n files in whatever list it produces. Example:
@MFD ,,,SORTD*SZU.,25 . List the 25 largest loaded files
By default, MFD will sort files by Qualifier*Filename(Rel. F-cycle). If a SHARED directory is configured, Directory ID will be included as a sort field between filename and F-cycle.
It is possible to sort using other key fields, such as project or account; or to suppress sorting altogether. This may be done using special forms of Spec4-n. Each of the items listed above may be designated as a sort key by using the following spec format:
where <sorttype> is one of the following qualifiers specifying the type of sort to be performed:
SORT - normal ascending sort.
SORTD - descending sort on this key.
BREAK - ascending sort, but each time this key field changes, print sub-totals, eject the page, print a new heading, and continue.
BREAKN - same as BREAK, but no page eject or new heading.
BREAKD - same as BREAK, but descending sort.
or BREAKND - same as BREAKD, but no page eject or new heading.
NOSORT - Suppress default sorting by Q*F(C). In the absence of any other parameters, will list files in the order retrieved from the MFD. For this special case, <item> is meaningless; use NOSORT*X. Assumed if data not printed (J without S/L) and no W option.
<Value> is not necessary, but may be included if a test is to be performed on that item as well as a sort. The full test format as described later under Advanced Features may be used:
It is possible to BREAK on an alphanumeric item using a mask that provides greater flexibility than the standard partial word designators:
BREAK*FILE./777777700000 . First 7 characters of filename
BREAK*ACR./777700 . First 4 characters of ACR
This type of mask differs from the octal type used when testing a value. In order to accommodate double-word items, a 7 is used for character positions that are to be masked and a 0 is used for all others.
More than one such key field may be given, by using additional specs of this type. If this is done, each succeeding key field will be assumed to be the next lower in significance. Unless NOSORT was used, qualifier, filename, and F-cycle will be added on as the least significant fields, except for any of them that were specified as fields earlier.
would result in a listing of all the files under project 'MYPROJ' sorted first by account, then by packid, and lastly by qualifier, filename, and F-cycle.
Sophisticated users may use Spec4-n to perform special tests in addition to those already described. This is accomplished through use of an expanded format for these specs:
Item is any of the following:
LI0 - Lead Item sector 0
MI0 - Main Item sector 0
MI1 - Main Item sector 1
It is also possible to use the MFD items listed earlier, such as ACCT or QUAL. An item must be specified. If LI0, MI0, or MI1 is used, the value may be either alpha or numeric; if it is all digits, it will be treated as alpha by default unless followed by '/N', as in 'LI0(3).000000/N'. See also Extra Option 1.
If only sorting on LI0, MI0, or MI1 cells, the sort will default to alphanumeric unless these corresponding names are used to force them to be numeric: L0N, M0N, or M1N.
Offset is a positive decimal or octal integer specifying which word of the item is to be checked. Range: 0-27 (033). Default: 0.
Operation is the test to be performed. May be any of the following:
TZ,TNZ - Zero or non-zero | TG,TL - Greater or less than TP,TN - Positive or negative | TGE - Greater than or equal TE,TNE - Equal or not equal | TLE,TNG - Less than or equal TOP,TEP - Odd or even parity | (not greater) TW,TNW - Within/not within range| DTE - Double Test Equal
If not specified, the default test for the item, usually TE/DTE for alphanumeric items and TG for numeric, will be assumed. (TL and TGE are not actual assembler instructions but are included for convenience.)
Partial may be any of the following partial word designators:
W - Whole word H1, H2 - Half word XH1, XH2 - Half word, sign extended T1, T2, T3 - Third word XT1, XT2, XT3 - Third word, sign extended S1, S2, S3, S4, S5, S6 - Sixth word
May not be used with explicit 'DTE' operation. Whole word (W) is assumed if none is specified. If used with an implied 'DTE' operation (i.e., double-word items like QUAL or ACCT), will treat as a single word using the item's first word.
Note that the third-word fractions (T1, T2, T3) are treated as unsigned because most third-word items in the MFD (packid count, reel count, etc.) are unsigned and can have a maximum of 4095. If you want to sort a third-word field as signed, use XT1, XT2, or XT3. The RELFCYC field is defined as an XTn field.
Value is an octal or decimal number, or Fieldata string, against which the specified word or partial word is to be compared. A leading zero denotes an octal number, and a 12-digit number is assumed to be octal. If all digits are entered for an alphanumeric field, they will be treated as Fieldata by default unless designated as numeric by an 'N' in the version subfield or the '1' Extra Option is used to toggle this default off. Example:
RDK/TNE.050505050505/N - test Read Key not blank.
A value is required for all operations except TZ, TNZ, TP, and TN. For DTE, the value is assumed to be a FIELDATA string.
For TW and TNW, Value is the lower number of the range, although MFD will ensure that both values are in the correct order. MFD will also subtract 1 from the lower value to conform to the TW and TNW instructions.
Value may be a single '$' to enable inputting a value with special wild card characters, as described in the next section.
Mask is an octal number to be AND'ed with the specified directory information before the test is done. If omitted, a mask of all 7's is assumed. Not permitted for 'DTE' test. An 'FD' in this field indicates that, although the <value> is all numeric, it is to be treated as a FIELDATA string.
For alphanumeric items, C/Y masking and rotation counts may be used, similar to the way they are used for Spec1. Mask is the character 'C' or 'Y', optionally followed by a transparent character. For Spec4 and beyond, the character 'R' is also allowed, meaning the same as 'C' except that the item is considered to end with the string rather than begin with it (right-justification). To go along with this, the character 'L' will be allowed as a synonym for 'C', to emphasize the difference between left- and right-justification. 'L' and 'R' may only be used in Spec4 and beyond.
If the transparent character is omitted, the default for Spec1 is assumed: "$", or whatever it may have been redefined as in Spec2. As with Spec1, if this spec's value field does not have any transparent characters, it will be reevaluated as though the transparent character were a space, allowing for tests of items that begin with certain characters.
When C/L/R/Y masking is used, the assumed test is 'DTE' or or 'TE'; the only other meaningful one is 'TNE', which will be interpreted as appropriate for single or double words.
Additional wild card capability is available by coding a single '$' as the spec value. The item will be separately read (or solicited, if nonbreakpointed demand) following custom output images, if any. In this mode, the transparent character is always "?"; the second character in the mask field may be "E", to echo back the solicited fields. "E" is only needed once. Solicited wild card spec items may include these characters:
? - Any character including blank (replaces "$" as default).
% - Any nonblank character.
^ - Blank required in this position.
# - Any digit.
= - Any letter.
! - Any special character.
QUAL.ABC/C -- Qualifier begins with ABC.
FILE/TNE.TIP/Y -- No files with TIP anywhere in Filename.
FILE.$CB/R -- Filename ends with $CB.
OWNER.--MGR-------/C- -- "MGR" in chars. 3-5 of Owner.
PROJ/TE.$NEW$$$$/Y$(3) -- Project no longer than 8 chars., with "NEW" in cols. 2-4, 3-5, or 4-6.
FILE.$/YE -- Wild card input. When solicited, user enters "DMS###", to list files with "DMS" followed by 3 digits anywhere in the filename.
Type is the letters 'FD', to treat a numeric item as Fieldata; or 'N', to treat an alphanumeric item as numeric. Note that Mask, Type, and Value2 are mutually exclusive.
Value2 is the upper range to use for the TW or TNW operators. Examples:
@MFD ,,,QUAL/TW.PROJ1/PROJ5 (1st word only)
If any of the special items (ACCT, PROJ, FCYCLE, etc.) are given, the proper directory item, operation, offset, and partial word are assumed. Thus, 'FCYCLE' assumes 'MI0(17)/TE/T3'. It is possible to override these assumptions, but this should be done with care. Changing the assumed operation, as in 'EQUIP/TNE.035', is never a problem, but the partial word designator should only be overridden if whole word (W) is assumed, as in 'ACCT', 'PACKID', etc. A spec such as 'ACCT(1)/TNE/S2.Q' is thus possible. This particular example would check S2 of the second word of the account, to make sure it is not equal to a 'Q'.
In the case of the date items (REF, CAT, BKD), the implied partial word is H1, meaning only the date is considered. To force both date and time to be used in sorting or breakpointing, code 'W' (whole word) as the partial word designator (as in BREAK*CAT//W.) or use the alternate spellings RDT, CDT, BDT.
The desired test will be performed on every file that passes the tests specified by the primary attribute option. If the test fails, the file will be bypassed. As with the simplified format, several of these tests may be specified at once, in which case logical AND's are implied between them. For example:
would list all G-option files with qualifier 'MYQUAL' which are at least 50 tracks in size, and, in addition, are private files. Note that this illustrates the 'hard' way of testing for a private file.
If the spec 'ORALL' is used before the items, the default operation will be 'OR', in which case the above call would list all files which are either G-option, OR 50 tracks or greater, OR private.
It is possible to specify that logical operations besides 'AND' (or 'OR', if 'ORALL' spec used) are to be performed between the tests. This gets a bit more complicated, since the syntax of spec fields does not lend itself to expressions like (FCYCLE=4 .AND. (QUAL=SYS$ .OR. FILE=PF)) . It is possible to do tests such as this, but they must be coded in the spec fields in a form of Polish notation. Using the above expression as an example, we would have an @MFD call of the following form:
'AND', 'OR', 'XOR', and 'NOT' logical operations are permitted.
The expression is scanned from left to right. When a 'NOT' operation is encountered, it is applied to the following operand. Each time an 'AND', 'OR', or 'XOR' operation is found followed by two operands, this sub-expression is evaluated and becomes an operand itself. When all the intermediate expressions have been evaluated, the final result is either true or false. If true, and the file in question meets the requirements of the normal options and specs, the file will be selected. Otherwise it will be skipped.
Specs which indicate a sort key, but do not perform any tests, are ignored when encountered in the midst of one of these Polish expressions, but for readability's sake it is suggested that these sort-only specs be placed before or after the specs comprising the Polish expression.
If an MFD call containing Polish expressions also has one or more SORTs or BREAKs on items with secondary tests, those fields will have to be treated as operands in the Polish expression. This means that, unless the secondary test is overridden, one or more Polish operators (AND, OR, etc.) may have to be added to fit the SORT or BREAK items into the full expression. Example:
A string of tests with no intervening logical operations is a special case, and is treated as though AND's were specified between each of the tests.
If Spec1 is present, there is an implied AND between it and the final result of the evaluation of Specs 4-n.
Besides the DAD total items described earlier (DTOTALS, DDISK, DMEM, DHOLES), there are other keywords for testing certain DAD table items and selecting files based on those tests. Up to 25 of each item may be listed, using file continuation if desired; a file which passes at least one test for each item represented will be selected.
DRV[-xxxx] - Drive name for one or more fixed drives, and/or option letters to select which types of files to include if they have at least one DAD residing on the specified drive(s). Options are:
F - Fixed
R - Removable
T - Tapes
D - To-be-dropped files (applies to whatever combination of F, R, or T is present)
L - Display all fixed drive LDATs and exit; take no other action. This option is provided to prepare for a call using the LDAT keyword.
None - FRTD assumed
If drives are selected, the MFD call must be made on the system where the drives reside. Examples: DRV.DRV23 ... DRV-FT.FD001,.FD002 ... DRV-L.
LDAT[-xxxx] - Octal LDAT index of FIXED drives. May also be given as an inclusive range. The file type selection options shown for DRV may be included. Examples: LDAT-F.056,.057 ... LDAT.0120/0130
LPAK - Packid for REMOVABLE drives. Example: LPAK.REM001,.REM002,...
DRA - Device Relative Address of FIXED drive. May be given as a single address or an inclusive range. Example: DRA.047320500,.03000000000/03200000000
DFLAG - DAD flag bits as defined in the Exec System Software Administration Reference Manual. Example: DFL.11,.17 . [Corrupted data, bad-spotted]
A complete call might look like this:
Files will be selected if they reside on the fixed drive whose LDAT is 016, if any of their DAD table entries include the device relative addresses 047320500 or 016543200, AND if any of those entries has DAD flag bit 8 or 17 set. Note the use of octal for LDATs and DRAs.
See also "DADLST" and "DADTST in the following section on Snaps.
Spec4-n may be used to request an ER SNAP$ of portions of the directory. The spec format is then:
SNAPL*<item>.[<value>] to force printing of all duplicate lines
where <item> may be any of the following:
LI0 - Lead Item sector 0 for each file listed. * LI1 - Lead Item sector 1. MI0 - Main Item sector 0. MI1 - Main Item sector 1. * MI2 - Main Item sectors 2-n. * SFX - Shared File Extension Item. * RLS - Reel Table Sectors for catalogued tapes. * EXTRA - Extra words maintained internally for file by MFD after MI1 area to contain various flags and values. * DAD - DAD tables for each disk file, plus DAD count summary line. * DADCNT - DAD count summary line only. * DDC - Same as DADCNT. * ALL - All of the above. * ALL.xx - All of a type of item, where xx is any combination of L (Lead), M (Main), X (SFX), R (Reels), E (Extra), or D (DADs). Example: SNAP*ALL.LMX
Items marked with a * are honored for SNAP purposes only; no tests are possible on them.
The <value> is only needed if a test is also to be performed on the item. If any special items are used ('ACCT', 'PACKID', etc.), the directory item in which they reside will be snapped. Remember that some items have implied tests (fixed vs. removable, disk vs. tape) and others are implicitly tested against the user's PCT items if no value is supplied (ACCT, PROJ, QUAL, CLV, OWNER).
The snap output will be done following the listing for the file. In F-Cycle mode, the Lead Item (LI0 and/or LI1) is snapped just once, following the first file of the F-cycle series which has been selected for listing. In all cases, an item will be snapped only if it exists.
If snapping items beyond LI0, MI0, or MI1 in Single-File mode, sorting will be prevented, as the file must be assigned to retrieve these items.
The spec format "DADLST*[label]." may be used to generate the SDF file $MFDDADLIST, containing an SGS image for each DAD, DAD table, and MFD item of every selected file. (A DAD table contains 1-8 DADs.) The default SGS label is whichever of the above qualifiers is used; it may be overridden by supplying a 1-6 character label.
Using "DADSUM" instead of "DADLST" will produce a DAD summary list for each file. An SGS image will be generated showing the total DADs and tracks on each LDAT (packid for removable files) as well as the total Holes and MEM files.
Using "DADTST" instead of "DADLST" will generate images only for each DAD table entry that actually passed a test, rather than for all DAD entries of the file. This refers to the tests listed earlier under "DAD Table Item Testing": LDAT, DRV, LPAK, DRA, and DFLAG.
Even if no drives or LDATs are being selected, the DRV keyword may still be used, with options but no arguments, to select which types of files will be included, as in DRV-FD or DRV-T.
'DADLST' may be followed by option letters to affect image generation:
D - Show device names instead of LDATs for fixed drives. This option is forced if DRV is used as a DAD test item; it is ignored if the directory file is from a different system. MFD will perform an MSALL$ call to ER MSCON$ to associate each LDAT with a drive name.
L - Have MFD list the generated output file $MFDDADLIST before exiting.
N - Exclude the normally included images for DAD tables and MFD items.
S - Produce a DAD summary list instead of listing individual entries.
T - Generate images only for each DAD table entry that passed a test. If used with the S option, only DAD entries that passed a test are included in the summary.
The following list shows the meaning of keywords in terms of DADLST:
DADSUM = DADLSTS
DADTST = DADLSTT
DADPAK = DADSUMD or DADLST-SD
(A dash can be included for separation.)
The format of each DADLST image is as follows:
<label> LDAT DRA/MFD-LINK TRACKS FLAG FILENAME TYPE(FX/RM/TP)
Where: LDAT is the octal logical device index of a fixed drive; the packid of a removable drive; or "*HOLE*" or "*MEM*" to denote those types of non-disk DADs.
DRA/MFD-LINK is the octal device relative address of the DAD, or the MFD link address of the DAD table.
TRACKS is the number of tracks this DAD represents.
FLAG is the octal DAD flag bit cell. Will show "DADTBL" for DAD tables.
FILENAME is the Qualifier*Filename(F-Cycle) of the file, preceded by Directory# if a shared directory is configured or assigned.
TYPE is the letter F, R, or T, indicating the type of file.
The format for the DADSUM image is similar, except that the FLAG column is omitted and the DRA column is replaced by #DADS, showing the total DADs.
The DGP spec allows the user to request that a DGETP$ snapshot be taken of the directory on a removable pack, in addition to the pack data normally obtained from fixed. Up to 16 packids may be listed. Equipment and Shared may be specified and carried over to successive specs with file continuation. Format:
(Default equipment is FMD.)
Only actual packids may be listed; no masking is allowed.
Note that these specs are handled separately and are not part of the Polish testing and selection expressions. In effect, each DGP adds a new directory of files being examined to the pool normally filled by the fixed STD and/or fixed SHARED directories, if used.
In the S/L option listing, the packid for the file will be preceded by '*'. In a custom output listing, the item RMP may be used to edit this character. You can also use IF.RMP to select only such DGETP$ data, but see also the N directory spec.
If you only want the DGETP$ data, use NONE or N in the directory field in Spec to bypass the fixed directories.
@MFD ,N,,DGP.PACK01 -- List the contents of PACK01 from the directory residing on the pack.
@MFD,K PACK01,,,DGP.PACK01 -- List the files on PACK01 from both the fixed MFD and the directory on the pack.
-- List all files on PACK01 or PACK02 whose filenames begin with 'LIB', using both fixed and removable directories.
The default, classic format of MFD's printed output is as follows. Columns are approximate and can vary slightly depending on whether short (S) or long (L) lines are used.
Col. 1-6 For mass storage files, these columns contain the maximum number of granules to which the file can expand, followed by '^' if the granularity is position. For tape files, this field shows "TP:" followed by the number of reels catalogued to the file.
Col. 8-12 Cataloguing options:
G: Guarded (@FAS will not save or unload it)
V: Unload inhibit (@FAS will not unload it)
A: Currently assigned to at least one run
X: Currently assigned exclusively to some run
T: (Single-File mode) temporary file assigned to this run
C|U|D|K: @ASG,C|U|D|K to this run
For tape files, the following option letters also apply:
E: Even parity (7-track only. If this letter does not appear, the tape is odd parity.)
L: 1/2" cartridge (38000 BPI - 18-track)
S: Super density ( 6250 BPI)
V: Very high density ( 1600 BPI)
H: High density ( 800 BPI)
M: Medium density ( 556 BPI - 7-track)
L: Low density ( 200 BPI - 7-track)
I: Software translate
J: No tape label
Col. 13-18 Catalogued equipment type:
For catalogued files, this will be the type mnemonic which was used to create the file. For temporary files, it will be the mnemonic of the specific device type assigned.
For removable disk files, the first packid in the file's pack list will appear in this field. The remaining packs, if any, will appear on additional lines.
Col. 20-25 Number of times the file has been assigned. In S-option listing mode, if the Spec2 version field had L or M, this field will display the file's lifespan in days or MUSER$ cell value.
Col. 27-32 Date (YYMMDD) on which the file was last assigned. In short line mode (S option), if the version field of Spec2 had B, C, or F, this field will display the file's Backup, Catalogue, or Time of First Write, respectively.
Col. 33-40 Highest track referenced. For tape files, this field contains the file's first reel number.
'*UNL*' if the file is currently unloaded.
Col. 41-48 Total tracks allocated. For tape files, this field contains the second reel number, if any. Any remaining reels will appear on additional lines.
If either total tracks or highest track exceeds its column width, it will be rounded to the nearest thousand and shown as "nnnK".
Col. 50 @FAS backup, to-be-catalogued/deleted, or @SYM status, indicated by:
blank: File has current backup.
N: No backup
<: Non-current backup (updated since last backup)
C: File to be catalogued ( @ASG,C|U )
D: File to be deleted (@ASG,D|K; @DELETEd while ASGd to user)
Q: File has been queued (@SYMmed)
Col. 51 File's disabled status, indicated by:
blank: File has no disabled flags.
W: Warning only
B: Bad backup tape
M: Bad Main Item Sector 1 Link
D: Data disabled
H: Hardware disabled
Hardware-disabled status takes precedence over all the others; and bad-backup and bad-main-item-sector-1 take precedence over warning-only, since only one character is printed, and a file may have more than one disable bit set.
Col. 52 # if the file is SHARED, else blank.
Col. 53-82 Qualifier*filename(cycle)
Short listing stops here; long listing continues.
Col. 83-94 Account under which file catalogued (slashed if not caller's and not privileged).
Col. 96-107 Project under which file catalogued (slashed if not caller's and not privileged).
Col. 109-114 Date (YYMMDD) on which the file was catalogued.
Col. 116-121 @FAS backup tape number. If '*NONE*' there are no @FAS backups for this file and the remaining columns will be blank. If the backup spans more than one reel, the remaining reels will appear on additional lines.
Col. 124-127 Date (MMDD) on which the backup was made.
Col. 129-132 Time (HHMM) at which the backup was made.