.comment this document is to be typed using elite character .comment spacing (12 per inch) giving 6.0 inch wide columns. .comment it can be typed using pica character spacing (10 per .comment inch) giving 6.0 inch wide columns if the values of .comment 72, 76 and 78 are changed to 60, 63 and 65 and if the .comment right page offset is changed from 6 to 5 in the lines .comment through that following the reset command. the table .comment of contents will have to be changed to reflect this. . .page width 78.page length 60 .rule 'X',0,78 .nofill .left margin 3 .background'X',0,78,0,0,0,1,1,76,0,0 .figure 1 1. ^^Adjust paper position so that dark frame on this page is copied centered on paper 8.5 inches wide by 11 inches high. 2. Copy all remaining pages of document in same manner. .figure 50 .end object .rule'X',0,78 .reset .page width 72.page length 60.offset right page 6 .top title ' ' .footnote RULE '-' .number footnote .first form .nofill .figure 6 .center no fill ,4 .outline'THEFNDFILUSERSGUIDE',1,1,1,1,1 .letter,3,1;the .squeeze 9,10,26,42,43,60,61 .skip.letter FNDFIL .skip.letter USERS .skip.letter GUIDE .end object.skip 3 .center ,3 The FNDFIL Installation and User's Guide .skip Donald E. Barth .skip 1-Oct-84 .fill .page.initial page.skip left page.initial page .figure 10 .nofill Table of Contents ----- -- -------- .skip2.spacing 2 Introduction . . . . . . . . . . . . . . . 1 Instructions for Using the FNDFIL Program . . . . . 2 Names of the Directory Files and Tapes . . . . . . 10 Instructions for Using the PAKDIR Program . . . . . 13 Using Batch Control Files to Run PAKDIR . . . . . . 16 Resubmitting the Monthly PAKDIR Control File . . . . 17 Instructions for Installation and Testing . . . . . 18 Description of the Compacted Directory Files . . . . 21 List of Files Included in This Package . . . . . . 23 FNDFIL Program Development History . . . . . . . . 25 .fill .spacing 1 .page .left margin 0 .fill .page.initial page.skip left page.initial page .space chapter 0 .number 1 .left top title'>',,'The FNDFIL Installation and User''s Guide' .right top title'Introduction',,'>' .fill .center INTRODUCTION .center ------------ .p0 FNDFIL is a program which can be used to locate old versions of files which have been copied from the disk structures to magnetic tapes at the end of each month, or at times set by some other repeating schedule. The owner of the files specifies whatever is known about the names of the files and about when and where these files existed. Directory files must be available on-line which contain a list of the files which were saved on each of the sets of tapes. The FNDFIL program reads the directory files which list the files saved during the indicated range of dates, or which were on the specified private structures, and reports all of the saved files matching the specifications stated by the user. .p0 A directory file containing a complete list of the files which are on a particular set of tapes can be produced either when the files are saved, or later using the system DIRECT program. However, these directory files contain information which is not needed by FNDFIL as well as extra spaces or tab characters to align the information into columns. A program named PAKDIR is used to extract the information which will be needed by FNDFIL from these directory files. PAKDIR copies this information in a more compact form into files which will be read later each time that FNDFIL is used. The files produced by PAKDIR are stored in a central system disk directory from which they can be accessed from any individual user's account. The compacted directory files can be edited using an interactive text editor, although this is not recommended. .p0 FNDFIL and PAKDIR are DECsystem10 programs which are written in FORTRAN. These programs would have to be modified before they could be used on a DECsystem20 since files and disk directories are named differently on the DECsystem20. .p0 The FNDFIL program was written assuming that files on the public disk structures are saved according to the following schedules. .list.list element All newly modified files are copied onto tape once each day, and these tapes are recycled after a week. There would be at most 7 sets of these tapes, 1 for each day of the week. It does not matter if such tapes are not created on the weekend or on the day when the weekly save tapes are written. .list element All files modified during the past week are copied onto tape at the end of the week, and these tapes are recycled after a month. There would be at most 5 sets of these tapes, 1 for each possible weekend in the month. Following a month which only had 4 weekends, the fifth set of tapes would still contain the files saved during the final weekend of the previous month which had a full 5 weekends. .list element All files, whether recently modified or not, are copied onto tape at the end of each month, and these tapes are kept for several years. There would be 12 sets of these tapes for each year. .list element In addition, the entire contents of each disk pack which can be mounted on the private disk drives are copied onto tape periodically, but no previous sets of these tapes are retained. There would be as many sets of these tapes as there are private packs. This schedule could also be used for private structures which are permanently mounted. .end list.p0 It is assumed that the date when a particular set of monthly tapes will be recycled is based upon the month when that set of tapes was written. January, April, July and October tapes are kept 3 years. February, May, August and November tapes are kept 4 years. March and September tapes are kept 5 years. June and December tapes are kept 10 years. The portion of the FNDFIL program which determines whether a particular set of monthly tapes is still available will have to be changed slightly if the monthly tapes are recycled according to a different schedule. .p0 The PAKDIR program can process directory files written by either the BACKUP program or the DIRECT program. The columns from which PAKDIR extracts the file names, their lengths and their creation dates, and perhaps how PAKDIR evaluates these dates, will have to be changed if the original directory files are written using a different format. The files read by the FNDFIL program must have been produced by the PAKDIR program. FNDFIL cannot read the original directory files written by BACKUP or DIRECT. .skip 2.test page 10 .right top title'Instructions for Using the FNDFIL Program',,'>' .center INSTRUCTIONS FOR USING THE FNDFIL PROGRAM .center ------------ --- ----- --- ------ ------- .p0 The user of the FNDFIL program selects the files which are to be located by specifying whatever is known about their names, the disk structures on which they resided, the disk directories in which they were stored, and the dates when they existed. If the names of the files are not known, then all files can be reported which were stored in the user's disk directories during the requested range of dates. For security reasons, individual users cannot locate files which were stored in disk directories which belonged to programmer numbers which were different than that of the account from which the FNDFIL program is currently being run. However, the members of the computer services staff can locate files which belonged to any user. If it is necessary to locate files which were stored in disk directories having a programmer number to which the user no longer has access, then a member of the computer services staff should be asked to perform the search instead. .p0 FNDFIL can search for a particular file or for a collection of several files. The time which is needed to perform a search is relatively independent of the number of files being located, since the entire directory file for each of the requested dates or for the private disk structures must be read and processed anyway. When specifying the list of files which are to be located, the user can type the file names and the disk structures on which these files resided and the disk directories in which these files were stored together on a single line separated by commas or spaces. Alternatively, the user can type these items one to a line on as many lines as desired. The order in which the file names and disk structures and disk directories are entered does not matter. If 2 or more disk directories are specified, then any of the files which were stored in any of the disk directories are reported. .p0 The user indicates the date when the files probably existed by typing a slash followed by the first 3 letters of the month name, then a colon and the 2 right digits of the year. For example, /JAN:84 would select files which existed at the end of January in the year 1984. Typing two such dates would indicate the first month and the final month when the files are thought to have existed. For example, /JAN:84/JUN:84 would select files which existed at the end of any of the months from January 1984 through and including June 1984. The date or date range can be entered on the same line as the file names and disk structures and disk directories, or on separate lines either before or after the lines containing the file names and disk structures and disk directories. If a date range is entered, then it does not matter which date is typed first, and each of the dates could even be typed on a separate line. The complete month name and all 4 digits of the year can be supplied, but are not necessary. Also, the colon does not have to appear between the month name and the year. The date range selected by the example shown above could just as well have been selected by typing /JUNE1984/JANUARY1984 instead. .p0 If an error is made in typing anything, and if leaving it in the list of items to be matched would cause the wrong files to be reported, then the item which is wrong can be removed from the list by typing the item a second time exactly as it was typed originally. This can be used to cancel disk directories, disk structures, file names, dates and the /SKIM and /OLD commands which are described below. The user finally types /GO to indicate that all of the items identifying the files have been entered and to cause the search to be started. Of course, commands such as /GO, which cause something to be performed immediately, cannot be cancelled by typing them in a second time. .p0 The FNDFIL program displays a single asterisk (*) when it is ready to accept instructions from the user. The user can type as many lines of instructions as desired. Another asterisk will be displayed whenever the program is ready to accept the next line of instructions. However, the user should not type more than 132 characters before ending the line by pressing the RETURN key. If it is likely that FNDFIL will be run on several different occasions to search for the same files, or if the list of files is lengthy or complicated, then what would have been typed directly into the program can instead be placed into a file and the user can type the name of this file together with an at sign (@) to cause FNDFIL to obtain its instructions from this file rather than from the terminal. The at sign can appear immediately before or immediately after the name of the file containing the instructions. If the instruction file includes a line containing a /GO command, then the search will be performed immediately. If the instruction file does not include a line containing a /GO command, then, after processing the instruction file, the FNDFIL program will again display a single asterisk and then will wait for the user to finish entering the instructions. An instruction file can contain only a single set of instructions. Any lines in the instruction file after the line containing the /GO command will be ignored. .p0 The list of files which have been located by FNDFIL is usually written onto the controlling terminal. The list can instead be written to an output file if the user types the name of this file followed by an equal sign (=) character. If a file having this name already exists, then the previous contents of the file will be lost. The equal sign must appear to the right of the name of the output file. The list of files to be located should appear either to the right of the equal sign, or on the lines following that containing the equal sign. .p0 Disk structures and disk directories can be specified for both the instruction file and the output file. If a disk structure is not specified for the instruction file, and if more than 1 file of the indicated name exists, then the instructions will be read from the file which appears first in the search list of the job from which the program is being run. If a disk directory is not specified for the instruction file, then the file will be read from the disk directory which is the path of the current job. If a disk structure is not specified for the output file, then the file will be written onto the disk structure which appears first in the search list of the current job. If a disk directory is not specified for the output file, then the file will be written into the disk directory which is the path of the current job. .p0 If, when specifying the list of files to be located, either the file name is missing, or the disk structure is missing, or the disk directory is missing, then all files are reported which meet the other criteria which have been specified. If no disk structure is specified, then files which are on any of the public disk structures can be reported. If no file name is specified, then files will be reported regardless of their names. If a file name is specified, but is not followed by a period and a 1 to 3 character extension or suffix, then all files having the indicated name are reported regardless of their extension. However, if the disk directory is not stated, and if the program is not being run by a computer services staff member, then the files which will be reported will be those which were stored in disk directories having the same programmer number as the account from which the FNDFIL program is currently being run, or in any of the sub-file-directories (SFDs) belonging to these same disk directories. If the date when the files existed is omitted, then the directories of the tapes containing the daily and weekly incremental saves will be searched instead. .p0 For example, if FNDFIL is being run from the account [123,456] but the user does not explicitly state the disk directory in which the files were stored, then the only files which will be reported will be those which were stored in the [*,456,*] disk directories. (The asterisks here mean that any project number and any SFD are matched for programmer number 456.) .p0 If more than a single file name or more than a single disk structure or more than a single disk directory are specified, then all files which match any combination of these characteristics will be reported. If 3 file names and 2 disk structures are specified, no matter how these where associated when they were typed, then all files matching any of the 3 file names on either of the 2 disk structures would be reported. .p0 File names can consist of 1 to 6 letters or digits, optionally followed by a period and 1 to 3 letters or digits. The portion of the name appearing to the right of the period is called the extension of the file name. If the period is not specified in the file name, then all files which match the first part of the name will be reported, regardless of whether the actual name of the file includes an extension. If the period is specified, but an extension is not specified, then only files which do not have an extension will be reported. If both a period and an extension are specified, then only files which have this particular extension will be reported. .p0 The user can type an asterisk (*) character in place of the portion of the file name to the left of the period, or in place of the extension of the file name, or in place of the project number or programmer number or SFD to indicate that it does not matter how many and what characters appear in that item for the files. If the user types other characters preceding the asterisk in the file name or extension, then the preceding characters must be matched, but it does not matter what characters if any appear at or to the right of the position corresponding to the asterisk. .p0 The user can type a question mark (?) character in the file name or in the disk structure specification where any single character is to be accepted. If the question mark is followed by some character other than a question mark, then this following character must be matched exactly. If a question mark appears at the right end of either portion of the file name, then the preceding characters must still be matched. There can be at most 1 character at the position corresponding to the question mark. Question marks which appear at the right end of either portion of a file name thus indicate the maximum length of an item in which the rightmost characters do not matter. A question mark appearing in either a project number or a programmer number indicates that the value of the digit at this location does not matter. Thus, a question mark appearing at the left end of either of these numbers indicates that it does not matter if the number is large enough to extend into that digit, although the number could not extend still further to the left. .p0 For example, if the 4 files named ABC, ABC.JKL, ABCDEF and ABCDEF.JKL were stored in the disk directory belonging to the account from which the program is being run, then typing the file specifications shown below at the left would cause the files listed at the right to be reported. This table does not include all of the possible combinations of * and _? characters. .nofill .skip.test page 7 .comment 012345678901234567890123456789012345678901234567890 ABC. or ???. gives ABC ABC.JKL or ???.JKL gives ABC.JKL ABC or ABC.* or ???.* gives ABC and ABC.JKL *. or ABC*. or ABC???. gives ABC and ABCDEF *.JKL or ABC*.JKL or ABC???.JKL gives ABC.JKL and ABCDEF.JKL * or *.* or ABC* or ABC*.* gives all 4 files ABC??? or ABC???.* gives all 4 files .fill .left margin 0 .p0 The project numbers and programmer numbers and the SFD names, if any, of the disk directories in which the files are stored must be separated by commas, and must be enclosed between square brackets. Usually, the only files which can be located are those which were stored in disk directories which belonged to the programmer number of the account from which the FNDFIL program is currently being run. However, since programmer numbers of 377 or less are assumed to be used by members of the computer services staff, accounts having these programmer numbers can be used to search for files which were stored in any disk directory. At most one level of sub-file-directory (SFD) can be specified. If an SFD is not specified, then the requested files for the given project and programmer number will be reported regardless of whether these files are in SFDs. Files which are within an SFD within an SFD will be reported as though these files were in the first level of SFD. .p0 For example, if the user having programmer number 56 has accounts for projects 73 and 123, and has files stored in the disk directories .skip.test page 2 .nofill [73,56], [73,56,ONE], [73,56,TWO], [123,56], [123,56,THREE] and [123,56,FOUR], .fill .p0 then typing the specifications shown below at the left would cause the files in the directories listed at the right to be reported. .nofill .skip.test page 14 [73,56,ONE] gives [73,56,ONE] [73,56] gives [73,56], [73,56,ONE], [73,56,TWO] [?3,56] gives [73,56], [73,56,ONE], [73,56,TWO] [??,56] gives [73,56], [73,56,ONE], [73,56,TWO] [123,56] gives [123,56], [123,56,THREE], [123,56,FOUR] [?23,56] gives [123,56], [123,56,THREE], [123,56,FOUR] [??3,56] gives all directories [???,56] gives all directories [*,56] gives all directories [*,56,*] gives all directories [*,56,??] gives no directories [*,56,???] gives [73,56,ONE], [73,56,TWO] [*,56,????] gives [73,56,ONE], [73,56,TWO], [123,56,FOUR] [*,56,?????] gives all directories .fill .comment 012345678901234567890123456789012345678901234567890 .p0 The disk structure upon which the files were stored can be specified by typing the name of the structure followed by a colon. A disk structure might be one of several different private packs which could be mounted when requested, or might be a public structure composed of one or several disk packs which are always available. If the name of a private structure is specified, then files on that structure will be reported. If the name of a private structure is specified, then the contents of the public structures will not be reported unless a date is specified, or unless the /SKIM command described below is issued to search the directories of the incremental tapes, or unless the name of a public structure is also issued. If the name of a public structure is specified, then files on other public structures which are not named will not be reported. .skip.test page 9 For example, if the user types the instruction .skip DSKB:,DSKC:,[100,56],[23,56],ONE,TWO/JUN:84 .skip or .skip /JUN:84 DSKC:ONE[23,56],DSKB:[100,56]TWO .skip or these same specifications in any other order .p0 then all of the files which existed at the end of June of 1984 and which had either of the names ONE or TWO regardless of the suffix and which were on either of the public disk structures DSKB_: or DSKC_: and which were stored in either of the disk directories [23,56] or [100,56] would be reported. .p0 Several commands can be typed along with the file specifications, either to modify how the search will be performed, or to cause something to be done immediately. These commands are preceded by slashes to indicate that they are not themselves part of the file specifications. These commands can be typed either on the same lines as the file specifications or on separate lines. Typically, the user would type the files specifications, and either a /SKIM command and/or 1 or 2 date specifications, then issue a /LIST command to examine the list of specifications. Any item seen to be in error could then be corrected, or additional items could be added to the list of specifications. A /GO command would finally be issued to perform the search when the specifications reported by the /LIST command were seen to be complete and correct. .p0.test page 6 The following commands can be typed along with the file specifications. .left margin 8 .p-8 /MMM:YY or /MMMYY (where MMM is a 3 letter month abbreviation such as JAN or FEB, and YY is the right 2 digits of the year) specifies the date of the earliest or latest monthly save of the public disk structures which is to be searched. For example, /JAN:84 or /JAN84 would specify files which existed at the end of January of 1984. If only a single date is specified, then the directory for only that month is searched. If 2 dates are specified, then these dates define the range of dates of the directories to be searched, and the most recent of these is searched first. .p0 Specifying a date or issuing the /SKIM command implies that the directories of the public structures are to be searched. A date does not need to be specified if the directory of a private structure is to be searched. Such a private structure is indicated merely by typing the name of the structure without a slash but followed by a colon. If both a date and a private structure are specified, then both the directory of the private structure and the directory of the indicated monthly save of the public structures are searched. .p-8 /CANCEL#cancels all specifications given so far. If this is issued by accident, then the specifications can be retrieved by typing the /REPEAT command. The /REPEAT command does not however restore the specification of the output file. If an output file was specified before the /CANCEL command was issued by accident, then the output file should be specified again before the /REPEAT command is issued. .p-8 /EXIT###stops the program and exits to the monitor. .p-8 /GO#####causes the search to be performed when it is typed. All of the file specifications must have been entered correctly before the /GO command is typed. If something is seen to be wrong with the search after it has started, then the user can type control-C twice to stop the program. The 2 control-C characters are obtained by holding down the control key and pressing the C key twice while still holding down the control key. The user can then restart the program by typing START and can retrieve the list of file specifications just entered by typing the /REPEAT command. .p-8 /HELP###displays instructions for running the FNDFIL program on the controlling terminal. .p-8 /LIST###summarizes the specifications which have been entered so far. If any item is seen to be incorrect, then this incorrect item can be cancelled by retyping it in its incorrect form. .p-8 /OLD####allows the directories of monthly saves for which the tapes have since been recycled to be searched. The directories of sets of tapes which are no longer available are not searched unless the /OLD command is issued. The user will still be told which tapes are no longer available. .p-8 /REPEAT#retrieves the specifications which were associated with the last search which was performed during the current running of the program. The list of specifications is normally cancelled when the search is completed. The retrieved specifications can be modified, and then the /GO command can be issued to perform a new search. The /REPEAT command can be issued to restore the previous instructions in any of the following situations. .lm+4.p-4 A.##If the search has been completed so that the FNDFIL program has again displayed an asterisk to indicate that it is ready to accept another set of file specifications. .p-4 B.##If a control-C has been typed twice during the search and then START rather than CONTINUE has been typed to restart the program with the newly modified core image. .p-4 C.##If a /CANCEL command has been issued since the last search was performed. .lm-4 .p0 If some new file specifications or other commands are issued before the /REPEAT command is issued, then these new specifications and commands will be merged with those which are retrieved by the /REPEAT command. However, if a date or date range is given before the /REPEAT command is issued, then the previous date or date range is not restored. The /REPEAT command does not reselect the same output file as was specified for the previous search, since a different file name would have to be used if the results of the previous search are to be kept. If a new output file is not specified before the /REPEAT command is issued, then the results of the new search will be displayed on the controlling terminal. If the results of the new search are to be written into an output file instead, then the new output file should be specified before the /REPEAT command is issued. The command line would be similar to that shown below. .p0 FNDFIL.DIR=/REPEAT .p-8 /SKIM###causes the directories of the current set of daily and weekly skim or incremental tapes to be searched. A skim save tape contains only the most recently created and most recently modified files. If both a date and the /SKIM command are issued, then files on the daily, weekly and monthly tapes will all be reported. .left margin 0 .p0 In the dialog shown below, the user has asked FNDFIL to report all of the files which have names which include the letters ABC, or which have ABC as the file name extension, which were stored in the [1,4] disk directory or which were stored in the disk directories belonging to programmer 56 from March 1984 through June 1984. It is assumed that the program is being run by a member of the computer services staff so that files belonging to any programmer number can be located. Although the /GO command must appear last, the disk directories, dates and files to be located could have been entered in any order and on any convenient number of lines. In this dialog, the user typed the text which appears to the right of the leading asterisks. The user entered an incorrect file name extension in the dialog and then corrected this error. The comments enclosed within parentheses to the right of the dialog describe how this error was corrected. .skip .nofill .test page 5 _.R#FNDFIL FNDFIL#(05/84) Type#/HELP#for#instructions *[1,4],[*,56]ABC*,?ABC*,??ABC*,???ABC,.ABD */LIST Ownr:#1,4,?????? Ownr:#??????,56,?????? File:#ABC???.??? File:#?ABC??.??? File:#??ABC?.??? File:#???ABC.??? File:#??????.ABD###################(this item is wrong) *.ABD##############################(command to remove error) Omit: ??????.ABD###################(confirmation of removal) *.ABC##############################(retyping correct item) */MAR84/JUN:84 */LIST Ownr:#1,4,?????? Ownr:#??????,56,?????? File:#ABC???.??? File:#?ABC??.??? File:#??ABC?.??? File:#???ABC.??? File:#??????.ABC Date:#MAR:84#to#JUN:84 */GO Searching#monthly#full#save#directories #MB0539#DSKA:##ZZZABC.EXE##156#30-MAY-84#[1,4] #MB0539#DSKA:##ZZZABC.CBL##163#30-MAY-84#[7777,56,CBL] #MB0543#DSKB:##GRABC#.RNO###25#29-MAY-84#[26,56] #MB0543#DSKB:##GRABC#.DOC###47#12-JUN-84#[26,56] #MB0544#DSKB:##ABC###.OLD###48#30-APR-84#[7026,56] ########5#Files/#####439#Blocks#found#for#Jun#84 #MB0531#DSKA:##ZZZABC.CBL##163#30-MAY-84#[7777,56,CBL] #MB0531#DSKA:##ZZZABC.BAK##156#30-MAY-84#[7777,56] #MB0535#DSKB:##ZZZABC.REL###25#29-MAY-84#[26,56] #MB0535#DSKB:##ZZZABC.MAP###47#23-MAY-84#[26,56] #MB0535#DSKB:##GRABC#.RNO###25#29-MAY-84#[4713,56] #MB0535#DSKB:##GRABC#.BAK###23#25-MAY-84#[4713,56] #MB0536#DSKB:##GRABC#.DOC###40#25-MAY-84#[4713,56] #MB0536#DSKB:##ABC###.EXE###48#30-APR-84#[7026,56] #MB0538#DSKC:##ABCD##.DAT####2#15-APR-84#[222,56] ########9#Files/#####529#Blocks#found#for#May#84 #MB0525#DSKB:##ABC###.FOR###52#29-APR-84#[7026,56] #MB0525#DSKB:##ABC###.REL###48#30-APR-84#[7026,56] #MB0525#DSKB:##ABC###.EXE###48#30-APR-84#[7026,56] #MB0528#DSKC:##ABCD##.DAT####2#15-APR-84#[222,56] ########4#Files/#####150#Blocks#found#for#Apr#84 ########0#Files/#######0#Blocks#found#for#Mar#84 #######18#Files/####1118#Blocks#total .test page 3 */EXIT EXIT _. .fill .left margin 0 .fill .left margin 0 .skip 2.test page 10 .right top title'Names of the Directory Files and Tapes',,'>' .center NAMES OF THE DIRECTORY FILES AND TAPES .center ----- -- --- --------- ----- --- ----- .skip The PAKDIR program reads the directory files which were produced by the BACKUP program when the contents of the disk structures were written onto tape. PAKDIR extracts the structure names, disk directories, file names, file lengths and file creation dates and writes this information in a more compact form into directory files which will later be read by the FNDFIL program. The directory files which were produced by the BACKUP program are read from the directory of the account used to run the PAKDIR program. The resulting compacted directory files which will later be read by the FNDFIL program are written into a central disk directory which is identified by an array in the block data routine in both programs. The account used to run the PAKDIR program must be able to write files into this central disk directory. .p0 The BACKUP program does not itself assign names to the tapes, so it is the responsibility of the PAKDIR program to keep track of the tapes. It is essential that the computer operators place visually readable labels onto the tape reels, and that the names which appear on these labels are identical to those which the PAKDIR program has assigned. .p0 For example, .lm+8.p-8 TUEC02##would be the second tape in the Tuesday save of the structure named DSKC. .p-8 WKDC02##would be the second tape in the week D (the 4th week in the month) save of the structure named DSKC. .p-8 MB1234##would be the 1234th tape created during all of the monthly saves of all public disk structures. The very first tape which was created the very first time that the monthly saves were performed would have been named MB0001. This tape probably has long since been recycled. The letters MB at the start of these tape names merely stand for Monthly Backup. .p-8 ABCD02##would be the second tape in the save of the private structure named ABCD. .lm-8.p0 The rules by which these names are assigned are described in more detail below. .skip.lm+5.i-5.test page 6 Daily Save Tapes .p0 If daily directories are being compacted, then the PAKDIR program will ask for the name of the day (Sunday, Monday, Tuesday, etc.) during which the contents of the public structures were written to tape. .p0 The names by which FNDFIL will later refer to these tapes are constructed from the following components. .skip.test page 4.lm+4.i-4 1.##The 3 letter abbreviation for the name of the day. .i-4 2.##The 4th letter of the name of the disk structure. .i-4 3.##The 2 digit number of the tape within the current set for this disk structure for this day. .lm-4.p0 The file in which the compacted directories are stored will have as its name the 3 letter abbreviation of the name of the day. For example, the compacted directories for the Tuesday tapes will be written into a file named TUE.FND. .skip.test page 6.i-5 Weekly Save Tapes .p0 If the directories of the weekly saves are being compacted, then the PAKDIR program will ask for the user to type a letter which identifies the week within the month. The letter A would specify the first week in the month. The letter E would specify the fifth week in a month in which 5 weekly saves are performed. .p0 The names by which FNDFIL will later refer to these tapes are constructed from the following components. .skip.test page 5.lm+4.i-4 1.##The letters WK. .i-4 2.##The letter which identifies the week. .i-4 3.##The 4th letter of the name of the disk structure. .i-4 4.##The 2 digit number of the tape within the current set for this disk structure for this week. .lm-4 .p0 The file in which the compacted directories are stored will have a name which consists of the word WEEK followed by the letter which identifies the week. For example, the compacted directories for the second week in the month will be written into a file named WEEKB.FND. .skip.i-5.test page 6 Monthly Save Tapes .p0 If the directories of the monthly saves are being compacted, then the PAKDIR program will ask for the number of the first tape for the current month. This can be a number in the range 1 through 999999. .p0 The names by which FNDFIL will later refer to these tapes are constructed from the following components. .skip.lm+4.i-4.test page 3 1.##The letters MB which stand for Monthly Backup. .i-4 2.##The 4 digit number of the tape within the set of all monthly save tapes ever created. If the tape number is greater than 9999, then the initial letters M and B in the tape name will be replaced by the leading digits of the number. .lm-4.p0 If the number of the first tape is instead specified as zero, then the number which will really be used will be read from a file named PAKDIR.NXT in the central disk directory in which the compacted directory files are stored. PAKDIR will then write the number of the first tape for the following month back into this file after PAKDIR has finished processing of all of the directories for the current month. PAKDIR neither reads nor writes the PAKDIR.NXT file if the request for the tape number is answered by a number which is greater than 0. .p0 PAKDIR assumes that the tapes for a particular month will have been written late in that month or early in the following month. PAKDIR finds the newest file on any of the tapes and assumes that the month for which the tapes were created is the month when the newest file was created if this file was created during the latter half of the month. This would be the case if the save tapes were really created at the end of the month before any new files were created during the following month. PAKDIR assumes that the month for which the tapes were created was the previous month instead if the newest file was created during the first half of the month. This would be the case if a holiday or other delay caused the creation of the save tapes to be delayed beyond the end of the month so that the disk structures contained new files created during the new month. The file in which the compacted directories are stored will have a name which consists of the 3 letter month abbreviation followed by the right 2 digits of the year number. For example, if the newest file was created either in the second half of June of 1984 or the first half of July of 1984, then the file would be named JUN84.FND. .p0 When the directories of a monthly save are being processed, the date of the save is not known for certain until all of the dates of all of the files which have been saved have been evaluated. The compacted file is named PAKDIR.FND while it is being written. The PAKDIR program changes the name of this file to be based upon the date of the most recently created of the saved files after all of the original directory files have been processed. If the computer has itself been restarted sometime during the past with an incorrect date beyond the middle of the next month, then the resulting compacted file will be renamed incorrectly by the PAKDIR program, and will have to be renamed later. For example, if during March 1984 the computer was restarted with the date incorrectly set to March 1985, then the compacted directory file created at the end of March 1984 would incorrectly be named MAR85.FND. The resulting file would have to be renamed MAR84.FND later. .skip.test page 6.i-5 Private Structure Save Tapes .p0 If the directories of private structures are being compacted, then PAKDIR will ask for the name of the private structure. This name should consist of from 1 to 4 characters. .p0 The names by which FNDFIL will later refer to these tapes are constructed from the following components. .skip.lm+4.i-4.test page 3 1.##The 4 character name of the private structure. .i-4 2.##The 2 digit number of the tape within the current set for this disk structure. If the structure name is shorter than 4 characters, then extra zeros will be inserted between the structure name and the following number. .lm-4.p0 The file in which the compacted directories are stored will have the same name as that of the structure. For example, the compacted directories for the private structure named ABCD will be written into a file named ABCD.FND. The FNDFIL program determines whether a disk structure is public or private by checking whether such a file exists in the central disk directory. Therefore, no file should be placed in the central disk directory which has the same name as that of a public disk structure and which has _.FND as the extension or suffix of its file name. .lm-5 .fill .left margin 0 .skip 2.test page 10 .right top title'Instructions for Using the PAKDIR Program',,'>' .center INSTRUCTIONS FOR USING THE PAKDIR PROGRAM .center ------------ --- ----- --- ------ ------- .p0 The PAKDIR program first asks for the user to identify the type of directories which are to be processed. The answer to this question determines how the names used for identifying the individual tapes and how the name of the file which will contain the compacted directories are constructed. These naming conventions are described in detail elsewhere in this manual. The type of directory is selected by typing one of the words .p5 DAY, WEEK, MONTH or PRIVATE .p0 Only the first letter of the word specifying the type of directory is necessary. .p0 If the daily cycle is chosen, then the PAKDIR program will ask for the name of the day of the week. Only the first few letters of the name are needed, but enough of the name should be typed to distinguish it from the other possibilities. .fill .p0 If the weekly cycle is chosen, then the PAKDIR program will ask for the letter which selects the week in the cycle. The letter A would select the first week, the letter B the second, and so on. For a month in which the portion of the week in which the weekly saves are done occurs 5 times, the fifth week would be identified by the letter E. .p0 If the monthly cycle is chosen, then the PAKDIR program will ask for the number of the first tape. This number does not appear in the directory files which will be processed. The number is instead based upon a historical record of how many monthly tapes are already in the library. If the program is to select the next number in the sequence, then the number 0 should be typed. (It should be noted that before the PAKDIR program can be asked to keep track of the number automatically, the number of the next tape must be placed in a file named PAKDIR.NXT in the directory used for storing the compacted directory files. This number should be left justified in the first and only line in this file.) The PAKDIR program cannot handle tape numbers greater than 999999. If the number is greater than 9999, then the initial letters M and B in the tape name will be replaced by the leading digits of the number. .p0 If the directory of a private structure is being processed, then the PAKDIR program will ask for the name of the structure. This cannot be longer than 4 characters. This name obviously should be the same as the name of the disk structure which was saved on the tapes. .p0 The PAKDIR program can process directories created by the DIRECT program or by the BACKUP program. If DIRECT is used to obtain the directory files which are to be compacted, then it is likely that the PAKDIR program will have to be changed to correspond to the line format which is produced by the particular version of DIRECT which is being used. DIRECT could be used to create the directory files if the directories of a pre-existing collection of save tapes are to be made available to the users of FNDFIL. It is usually easier to have the BACKUP program create the directory files of new tapes as these are being written. .p0 The PAKDIR program will increment the tape number whenever the start of the contents of a new tape is indicated in the directory file which is being processed. It does not matter whether the directories of separate tapes appear in separate files or are collected together in a single file. When the processing of the file has been completed, PAKDIR will request the name of the program which created the next directory file, and then will request the name of this directory file. When all of the directory files have been processed, then the request for the name of the program which created the next directory file should be answered with an empty line. .p0 The dialog which is shown below resulted when 2 of the test files which are included with this package were processed as the directories of daily save tapes. The responses typed by the user appear to the right of the question marks. .skip.test page 5 .nofill _.RUN PAKDIR PAKDIR Compacts directories for FNDFIL Period (DAY, WEEK, MONTH) or PRIVATE pack? DAY Day (SUN, MON, etc.)? TUESDAY Author (BACKUP, DIRECT)? BACKUP File? BACKUP.345 Tape TUEA01 contains 89 files Tape TUEA02 contains 13 files Tape TUEA03 contains 22 files Author (BACKUP, DIRECT)? BACKUP File? BACKUP.6 Tape TUEB01 contains 95 files Author (BACKUP, DIRECT)? 219 total files Output file is TUE .FND EXIT .fill .p0 The dialog which is shown below resulted when these same 2 test files were processed as the directories of weekly save tapes. .skip.test page 5 .nofill _.RUN PAKDIR PAKDIR Compacts directories for FNDFIL Period (DAY, WEEK, MONTH) or PRIVATE pack? WEEK Week (A, B, C, D, E)? C Author (BACKUP, DIRECT)? BACKUP File? BACKUP.345 Tape WKCA01 contains 89 files Tape WKCA02 contains 13 files Tape WKCA03 contains 22 files Author (BACKUP, DIRECT)? BACKUP File? BACKUP.6 Tape WKCB01 contains 95 files Author (BACKUP, DIRECT)? 219 total files Output file is WEEKC .FND EXIT .fill .p0 The dialog which is shown below resulted when these same 2 test files were processed as the directories of monthly save tapes. .skip.test page 5 .nofill _.RUN PAKDIR PAKDIR Compacts directories for FNDFIL Period (DAY, WEEK, MONTH) or PRIVATE pack? MONTH First tape number (0 if automatic)? 1003 Author (BACKUP, DIRECT)? BACKUP File? BACKUP.345 Tape MB1003 contains 89 files Tape MB1004 contains 13 files Tape MB1005 contains 22 files Author (BACKUP, DIRECT)? BACKUP File? BACKUP.6 Tape MB1006 contains 95 files Author (BACKUP, DIRECT)? 219 total files Output file is JUN84 .FND EXIT .fill .p0 The dialog which is shown below resulted when one of these same test files was processed as the directory of the save tapes of a private structure. The names assigned to the tapes and the name assigned to the resulting compacted directory file are all based upon the response which is entered when the program asks for the name of the structure. Only one of the test files was processed since each test file contains the directory for a different structure. If both files which were processed in the earlier examples were processed together, then both the tape names and the name of the resulting compacted file would be inconsistent with the original disk location for some of the files described in the compacted directory file. If these were real directory files, of course, then PAKDIR would just be run a second time to process the file containing the directories of the other private disk structure. .skip.test page 5 .nofill _.RUN PAKDIR PAKDIR Compacts directories for FNDFIL Period (DAY, WEEK, MONTH) or PRIVATE pack? PRIVATE Pack name? DSKA Author (BACKUP, DIRECT)? BACKUP File? BACKUP.345 Tape DSKA01 contains 89 files Tape DSKA02 contains 13 files Tape DSKA03 contains 22 files Author (BACKUP, DIRECT)? 124 total files Output file is DSKA .FND EXIT .fill .left margin 0 .skip 2.test page 10 .right top title'Using Batch Control Files to Run PAKDIR',,'>' .center USING BATCH CONTROL FILES TO RUN PAKDIR .center ----- ----- ------- ----- -- --- ------ .p0 A batch control file which could be used to save all of the files on the public structure named DSKA is listed below. .nofill .skip.test page 5 _.DELETE MLYA.DIR _.IF(ERROR) _.MOU MTB:BACKUP/REE:DSKA/VID:"MONTHLY SAVE-DSKA"/WE _.SET DENSITY BACKUP 6250 _.R BACKUP *REWIND *DENSITY 6250 *SORT DIR ALPHA *LIST DSK:MLYA.DIR *SAVE DSKA: _.PRINT MLYA.DIR/NOTE:"MONTHLY DSKA" _.DISMOUNT MTB: .fill .p0 The corresponding batch control file which would save the contents of the public structure named DSKB is listed below. .no fill .skip.test page 5 _.DELETE MLYB.DIR _.IF(ERROR) _.MOU MTB:BACKUP/REE:DSKB/VID:"MONTHLY SAVE-DSKB"/WE _.SET DENSITY BACKUP 6250 _.R BACKUP *REWIND *DENSITY 6250 *SORT DIR ALPHA *LIST DSK:MLYB.DIR *SAVE DSKB: _.PRINT MLYB.DIR/NOTE:"MONTHLY DSKB" _.DISMOUNT MTB: .fill .p0 There would be as many of these batch control files as there are structures to be saved. Keeping the commands for saving each structure in separate control files makes resubmitting them easier in case something goes wrong. .p0 Once all of the files on all of the structures have been saved, the batch control file which is listed below could be used to produce the compacted directories needed by the FNDFIL program. An additional pair of lines specifying that BACKUP was used to create the directory file and specifying the name of the directory file would be inserted for each additional disk structure which has been saved. .no fill .skip.test page 8 _.R PAKDIR *MONTH *0 *BACKUP *MLYA.DIR *BACKUP *MLYB.DIR * .fill .skip 2.test page 10.left margin 0 .fill .right top title'Resubmitting the Monthly PAKDIR Control File',,'>' .center RESUBMITTING THE MONTHLY PAKDIR CONTROL FILE .center ------------ --- ------- ------ ------- ---- .p0 If the batch jobs which run PAKDIR to compact the daily, weekly or private structure directories have to be rerun, then they can merely be resubmitted after correcting whatever went wrong. However, in order for the batch job which compacts the monthly directories to run correctly, a compacted directory file must not already exist for the current month and the tape number of the first tape must be indicated correctly. .p0 The following procedure should be followed if the batch job which compacts the monthly directories has to be resubmitted for any reason. .list.list element If the previous run of the batch job wrote a compacted directory file into the central disk directory, then this file should be deleted or renamed. The compacted file will either have the name PAKDIR.FND or a name of the form MMMYY.FND where MMM is the 3 letter abbreviation for the month which is just ending and YY is the right 2 digits of the year. It is suggested that the file be renamed to have a name of the form MMMYY.001 for the first attempt which fails, MMMYY.002 for the second attempt, and so on. The compacted file might not be present if the previous run of the batch job did not terminate normally. .list element The number in the PAKDIR.NXT file in the central disk directory should be changed back to the value which it had before the batch job which failed was run. If this number has been forgotten, then the log file of the batch job which failed should be consulted to find the number which is embedded in the name of the first tape. Alternatively, the tapes in the actual tape library can be examined to determine the next available tape number. If a line editor is used to modify the PAKDIR.NXT file, then the line sequence numbers must be stripped off when exiting from the editor. .list element Whatever caused the original batch job to fail should be corrected. .list element The log file which was produced by the batch job which failed should be deleted. If this is not done, then the log file for the next batch job will be appended to the end of the existing log file. .list element The batch control file should be resubmitted. .list element Once the new batch job has finished, the log file should be checked to determine whether the job was successful. The dialog with the PAKDIR program should contain one or more sequences similar to the following. .p0.test page 5.left margin +5 .nofill File? MLYA.DIR Tape MB0766 contains 381 files Tape MB0768 contains 10 files Tape MB0769 contains 15 files Tape MB0770 contains 47 files .fill .lm-5.p0 The MLYA.DIR in the above dialog is the response to the PAKDIR program's request for the name of the next file to be processed. MLYA.DIR would be the name of the directory file made by BACKUP when the DSKA structure was saved. There would be similar lines in the dialog for each of the other disk structures. The tape number for the first tape used for each such disk structure should be checked to confirm that it is correct. If a single file which has been copied onto tape is so large that it requires more than one tape just for that file, then some tape numbers (such as MB0767 in the above example) might be missing in the dialog since no file actually starts on that tape. .end list .skip 2.test page 10 .fill .left margin 0 .right top title'Instructions for Installation and Testing',,'>' .center INSTRUCTIONS FOR INSTALLATION AND TESTING .center ------------ --- ------------ --- ------- .p0 The following procedure can be used to install and test the PAKDIR program. .left margin 1.list.list element Change the project and programmer numbers defined in the block data routine in the FNDCOM.FOR file to be those of the central disk directory in which the compacted directories will be stored. A UFD should exist for this central disk directory, and the account from which PAKDIR is run must be able to write into this central disk directory. For the purposes of this test, there should not be any files named MAY84.FND or JUN84.FND in the central disk directory. .list element Load and save PAKDIR using the PAKDIR.CMD command file. .list element Use PAKDIR to process the BACKUP.12 directory file. This should produce a file named MAY84.FND in the central disk directory. The questions should be answered with the responses shown below. The final request for the name of the program which wrote the directory file should be answered by just pressing the RETURN key. .nofill .skip.test page 5 Period (DAY, WEEK, MONTH) or PRIVATE pack? MONTH First tape number (0 if automatic)? 1001 Author (BACKUP, DIRECT)? BACKUP File? BACKUP.12 Author (BACKUP, DIRECT)? .fill .list element Use PAKDIR to process the BACKUP.345 and BACKUP.6 directory files. This should produce a file named JUN84.FND in the central disk directory. The questions should be answered with the responses shown below. The final request for the name of the program which wrote the directory file should be answered by just pressing the RETURN key. .nofill .skip.test page 7 Period (DAY, WEEK, MONTH) or PRIVATE pack? MONTH First tape number (0 if automatic)? 1003 Author (BACKUP, DIRECT)? BACKUP File? BACKUP.345 Author (BACKUP, DIRECT)? BACKUP File? BACKUP.6 Author (BACKUP, DIRECT)? .fill .list element Compare the resulting compacted files with those of the same names which are supplied with this package. If they are different, determine what is wrong, fix it and test the program again. .list element Either use BACKUP to save the contents of a disk structure onto tape and have BACKUP produce a directory file as the tapes are written, or use DIRECT to produce the directory file of a tape which was written earlier. .list element List the newly created directory file and compare its format with that of the test files which are supplied with this package. Check both the columns in which the various items begin, and the header lines. The PAKDIR program must be able to recognize the header lines which start with the characters .skip.indent 5 Start of save set .skip and .skip.indent 5 Continuation of save set .skip in a directory file produced by BACKUP, and the lines which start with the characters .skip.indent 5 Read Density: .skip in a directory file produced by DIRECT. PAKDIR must be able to recognize these lines in order to locate the start of each new tape in the directory files. All other header lines are ignored by PAKDIR and do not have to be recognized. The columns in which the various items start are defined in the BLOCK DATA routine. The character strings are defined in SUBROUTINE LINTYP. The number of characters in each string is defined by the upper bound of the index in the DO loop in which the characters are used. .list element If the format of the newly created directory file is different than that of the test files supplied with this package, change the PAKDIR program to recognize the new format. .list element Use PAKDIR to process the new directory file. If PAKDIR does not report any files at all, then the problem probably is with the column locations. If the tape numbers are wrong, then the problem probably is in the recognition of the header lines. Both the number of leading spaces and the cases of the letters must be exactly correct. .list element If the results appear to be wrong, then fix the PAKDIR program and test it again. .list element Once the PAKDIR program appears to be correctly processing locally produced directory files, move its .EXE file to a directory which can be accessed from the operator's account. .list element Establish the administrative procedures and batch control files which are necessary to produce the compacted directory files on a regular basis. .end list.skip.test page 5.left margin 0 The following procedure can be used to install and test the FNDFIL program. .left margin 1.list.list element Change the project and programmer numbers defined in the block data routine in the FNDCOM.FOR file to be those of the directory in which the compacted directories will be stored. A UFD should exist for this central disk directory, and the accounts from which FNDFIL will be run must be able to read from this central disk directory. .list element Load and save the FNDFIL program using the FNDFIL.CMD command file. .list element Run PAKDIR as indicated above to generate files named MAY84.FND and JUN84.FND in the central disk directory, or move the copies of these files which are supplied with this package into the central disk directory. .list element Run FNDFIL from an account having a programmer number of 377 or less, and issue the command .p5 [*,*]*.*/MAY84/JUN84/OLD/GO .p0 All of the files which appear in the test files BACKUP.12, BACKUP.345 and BACKUP.6 should be listed. The /OLD switch should be included since this test might be performed after the 1984 tapes would have been recycled. .list element Move the compacted directories which PAKDIR produced when processing the locally produced directory files to the central disk directory. .list element Use FNDFIL to access the contents of these locally produced directories. The commands given to FNDFIL will depend upon whether the names of the compacted files are appropriate for the daily, weekly, monthly or private structure saves. .list element If FNDFIL appears to be working properly, move its .EXE file to the system directory from which it can be accessed by any user. .list element Remove the compacted directories which were used to test the FNDFIL program from the central disk directory. .end list.left margin 0 .skip 2.test page 10 .fill .left margin 0 .right top title'Description of the Compacted Directory Files',,'>' .center DESCRIPTION OF THE COMPACTED DIRECTORY FILES .center ----------- -- --- --------- --------- ----- .p0 PAKDIR extracts the structure names, disk directories, file names, file lengths and file creation dates from the directory files produced by either the BACKUP or DIRECT programs. The compacted file produced by the PAKDIR program contains the following information. .list.list element A right square bracket followed by the tape name if the next file starts on a new tape. Nothing else appears on this line. .list element The disk directory specification enclosed between left and right square brackets if the next file was contained in a different disk directory, or within a different sub-file-directory (SFD) than the previous file. If either the project number, programmer number, or SFD name is the same as that for the previous file, then the portion which remains unchanged is represented by an asterisk (*). .list element A colon followed by the structure name if the next file is on a different structure than the previous file. This is separated from the following file creation date by a comma. If both the disk directory and structure differ, then the items appear in the order left square bracket, disk directory specification, colon, structure name and separating comma. The right square bracket is not needed in this case if the colon and structure name immediately follow the disk directory specification. .list element The file creation date as the number of days since January 1, 1964. In calculating this number, it is assumed that all months have 31 days. This date is stored as a 3 digit radix 36 number in which the letter A is used as a numeral with the value of decimal 10, and the letter Z is used as a numeral with the value decimal 35. The maximum 3 digit radix 36 number can be represented as ZZZ. This corresponds to decimal (35x36x36 + 35x36 + 35)/(31x12) years or 125 years. .list element The length of the file as a decimal number. This number will contain as many digits as necessary. .list element The first part of the name of the file. If the file name starts with a digit 0 through 9, then this digit is preceded by an apostrophe (') to mark the end of the number which represents the length of the file. If any other specially interpreted character appears in the file name, then it is similarly preceded by an apostrophe. If the first part of the file name is the same as that of the previous file then it is represented by an asterisk instead. .list element A period if the first part of the file name contains less than 6 characters and if the file name includes a final 1 to 3 character extension. The period is not included if the first part of the file name contains the full 6 characters. The period likewise is not included if either the first part of the file name or the file name extension is the same as that of the previous file and so is represented by an asterisk. .list element The final 1 to 3 characters of the file name if the name includes an extension. If the file name extension is the same as that of the previous file, then it is represented by an asterisk without a preceeding period. .list element A comma if another file name appears to the right on the same line. .end list .p0 The uncompacted directory files produced by the BACKUP program are similar to the one which is listed below. Some unnecessary lines and some blank columns have been removed from this example to permit it to be listed on a page in this manual. File names on the DECsystem10 are not restricted to just alphabetic letters and digits. The asterisks and periods which appear in the example are actually part of the file names. For the purposes of illustration, the file name *.* appears twice in the same disk directory on the same structure. This would not happen in a real directory file. .nofill .skip.test page 5 Start#of#save#set##on#MTB010 #ABCDEF#GHI#1#####<055>##1-Jan-64#DSKA:#[100,56,SPR] #JK#########326###<055>#31-Dec-64 #LMNOPQ#RS##484###<055>##1-Jan-65 #TU#####VWX#51####<055>#31-Dec-65 #ABC####RNO#1#####<055>#20-Jul-83#DSKA:#[100,56] #ABC####DOC#10####<055>#17-Aug-83 #SUMMAR#DOC#29####<055>#12-Sep-83 #SUMMAR#RNO#30####<055>#12-Sep-83 Continuation#of#save#set##on#MTB010 #SUMMAR#RNO#15013#<055>#20-May-84#DSKB:#[100,56] #123456#789#0#####<055>#18-Feb-84#DSKC:#[2300,56,ANIMAL] #A.B.C##.D.#188###<055>#10-Oct-83#DSKC:#[2300,1512,ANIMAL] #MEMO###*###14####<055>#12-Sep-83#DSKC:#[3001,4005] #LETTER#*###21####<055>#13-Sep-83 #*######*###52####<055>#14-Sep-83 #*######*###61####<055>#15-Sep-83 #*######RPT#4#####<055>#16-Sep-83 #REPORT#RPT#102###<055>#17-Sep-83 .fill .p0 The PAKDIR program would convert the directory file shown above into a compacted form similar to that which is shown below. The lines in this example have been split between file specifications to allow the compacted file to be listed in this manual, but the file even with the shorter lines would still be interpreted correctly by the FNDFIL program. .skip.test page 7 .nofill ]MB1001 [100,56,SPR:DSKA,0001ABCDEFGHI,0AB326JK,0AC484LMNOPQRS 0KN51TU.VWX,[**]5M11ABC.RNO,5MT10*DOC,5NJ29SUMMAR*,5NJ30*RNO ]MB1002 :DSKB,5UN15013**,[2300*ANIMAL:DSKC,5S00'123456789 [*1512*]5OC188A'.B'.C.'.D'.,[3001,4005]5NJ14MEMO.'* 5NK21LETTER*,5NL52'**,5NM61**,5NN4*RPT,5NO102REPORT* .fill .p0 A listing similar to that shown below would be produced by FNDFIL if all of the files represented in the above compacted directory file are requested. .skip.test page 5 .nofill MB1001#DSKA:##ABCDEF.GHI####1##1-JAN-64#[100,56,SPR] MB1001#DSKA:##JK####.#####326#31-DEC-64#[100,56,SPR] MB1001#DSKA:##LMNOPQ.RS###484##1-JAN-65#[100,56,SPR] MB1001#DSKA:##TU####.VWX###51#31-DEC-65#[100,56,SPR] MB1001#DSKA:##ABC###.RNO####1#20-JUL-83#[100,56] MB1001#DSKA:##ABC###.DOC###10#17-AUG-83#[100,56] MB1001#DSKA:##SUMMAR.DOC###29#12-SEP-83#[100,56] MB1001#DSKA:##SUMMAR.RNO###30#12-SEP-83#[100,56] MB1002#DSKB:##SUMMAR.RNO15013#20-MAY-84#[100,56] MB1002#DSKC:##123456.789####0#18-FEB-84#[2300,56,ANIMAL] MB1002#DSKC:##A.B.C#..D.##188#10-OCT-83#[2300,1512,ANIMAL] MB1002#DSKC:##MEMO##.*#####14#12-SEP-83#[3001,4005] MB1002#DSKC:##LETTER.*#####21#13-SEP-83#[3001,4005] MB1002#DSKC:##*#####.*#####52#14-SEP-83#[3001,4005] MB1002#DSKC:##*#####.*#####61#15-SEP-83#[3001,4005] MB1002#DSKC:##*#####.RPT####4#16-SEP-83#[3001,4005] MB1002#DSKC:##REPORT.RPT##102#17-SEP-83#[3001,4005] ######17#Files/###16387#Blocks#found#for#May#84 .fill .left margin 0 .skip 2.test page 10 .right top title'List of Files Included in this Package',,'>' .center LIST OF FILES INCLUDED IN THIS PACKAGE .center ---- -- ----- -------- -- ---- ------- .skip The distributed version of the FNDFIL system consists of the following source files. This version is for the DECsystem10 only. .left margin 12 .p-12 FNDCOM.FOR##Block data routine which identifies the disk directory to which PAKDIR writes the compacted directory files and from which these files are read by FNDFIL. This block data routine also specifies the columns containing the various pieces of information in the files which are processed by the PAKDIR program. .p-12 FNDFIL.CMD##The command file used to load the FNDFIL program. This loads the version of the FNDNEW routine contained in the FNDNEW.FOR file. .p-12 FNDFIL.DOC##This instruction manual. This was produced by using the FROFF text processor to format the rough form of the manual contained in the FNDFIL.RNO file. .p-12 FNDFIL.FOR##The FNDFIL program. This must be loaded along with the files FNDCOM.FOR, FNDHLP.FOR, FNDNEW.FOR, FNDSUB.FOR and FNDMAC.MAC. .p-12 FNDFIL.RNO##The rough form of the instruction manual. This is meant to be processed by the FROFF text processor. .p-12 FNDHLP.FOR##The FORTRAN source code which produces the help message which can be typed by the FNDFIL program. This file is produced by using the FORMAT program to process the rough form of the help message in the FNDHLP.RNO file. .p-12 FNDHLP.RNO##The rough form of the help message which can be typed by the FNDFIL program. This must be processed by the FORMAT program to produce FORTRAN source code which can be loaded with the FNDFIL program. .p-12 FNDMAC.MAC##Assembly language version of a routine which returns the project number and the programmer number of the account from which the FNDFIL program is being run. .p-12 FNDNEW.FOR##Subroutine used by FNDFIL to determine whether the tapes for a particular month and year still exist. The version in FNDNE2.FOR can be substituted if all tapes are to be assumed to still exist. .p-12 FNDNE2.FOR##A nonfunctional version of the FNDNEW subroutine. FNDNEW is meant to indicate whether the tapes for a particular month and year still exist. The version in FNDNE2.FOR indicates that these tapes all still exist, regardless of their ages. The version in FNDNEW.FOR should be used instead if the tapes are recycled on a regular schedule. .p-12 FNDSUB.FOR##Subroutines needed by both FNDFIL and PAKDIR. .p-12 PAKDIR.CMD##The command file used to load the PAKDIR program. .p-12 PAKDIR.FOR##The PAKDIR program. This must be loaded along with the files FNDCOM.FOR and FNDSUB.FOR. .left margin 0.p0 The following data files can be used to test the FNDFIL system. .left margin 12 .p-12 BACKUP.12###Sample directory file written by the BACKUP program which contains the directories of 2 tapes for May 1984. .p-12 BACKUP.345##Sample directory file written by the BACKUP program which contains the directories of 3 tapes for June 1984. .p-12 BACKUP.6####Sample directory file written by the BACKUP program which contains the directories of a final tape for June 1984. .p-12 DIRECT.12###Sample directory file written by the DIRECT program which contains the directories of the same 2 tapes as are described in the BACKUP.12 file produced by the BACKUP program. .p-12 DIRECT.345##Sample directory file written by the DIRECT program which contains the directories of the same 3 tapes as are described in the BACKUP.345 file produced by the BACKUP program. .p-12 DIRECT.6####Sample directory file written by the DIRECT program which contains the directory of the same tape as is described in the BACKUP.6 file produced by the BACKUP program. .p-12 MAY84.FND###File which results when the BACKUP.12 or DIRECT.12 file is processed by the PAKDIR program as a monthly cycle directory and the number of the first tape is specified as 1001. .p-12 JUN84.FND###File which results when the BACKUP.345 and BACKUP.6 files or the DIRECT.345 and DIRECT.6 files are processed together by the PAKDIR program as monthly cycle directories and the tape number of the first tape is specified as 1003. .skip 2.test page 10.left margin 0 .fill .right top title'FNDFIL Program Development History',,'>' .center FNDFIL PROGRAM DEVELOPMENT HISTORY .center ------ ------- ----------- ------- .left margin 5 .p-5.test page 5 June 1979 .break Original version. .p-5.test page 5 January 1982 .break (Extension) Support for private structures added. .p-5.test page 5 September 1984 .break (Correction) Number of files which FNDFIL reported as found for the month was instead the total number of files found so far. .p0 (Correction) Directory files being compacted by PAKDIR which did not start with the correct header line were assigned tape numbers which were 1 less than expected. Now, each new file which is processed by PAKDIR is assumed to be the directory of a new tape. .p0 (Correction) File lengths greater than 99999 blocks caused overflow of field into which these were written for files found during a search. Now, large file lengths are divided by 1000 and expressed in K. .p0 (Change) The leading digits of tape numbers which are too large to fit into the space reserved for them now replace the letters at the start of the tape name. .p0 (Extension) /REPEAT command added to allow user to search for the same list of files as were searched for the last time. .p0 (Extension) /OLD command added to allow directories of sets of tapes which have been recycled to be searched. Previously, the files which were on recycled sets of tapes were reported as as if these still existed if the compacted directories were still available. If a set of tapes has been recycled, then FNDFIL will now report that the tapes are no longer available, and will not search the directories of these tapes unless the /OLD command has been issued. .p0 (Extension) /CANCEL command added to cancel a set of specifications just entered. These specifications can then be restored by the /REPEAT command. .p0 (Extension) Double control-C followed by START and then /REPEAT command can stop a search which has been specified incorrectly, and restore the specifications so that these can be corrected. .p0 (Extension) Numbers of blocks in the files located in each set of tapes and overall are now reported. .p0 (Extension) Disk structures and/or disk directories can be specified for instruction files and output files. .left margin 0