[352,4]README.1ST - Las Vegas - Fall 1983 - Files submitted by: SRD Working Group Bob Turkelson NASA/Goddard Space Flight Center Mail Code 933 Greenbelt, MD 20771 (301) 344-5003 This UIC contains the files for building SRD V6.4. Many of the important items on the SRD Working Group wish-list were finished by the deadline for this release, although we realized that there was not enough time to complete all of them. At this time we know of no problems with the new features. Any important information we learn about this version will be promptly submitted for publication in the Multi-Tasker. The modifications made by the SRD Working Group since V6.3 are: o Fixed a problem which caused SRD to abort when listing large directories whose contents could not all fit into memory. (I also tried several other versions of SRD from recent SIG tapes and found that they all had the same problem.) When built on RSX-11M V4.0 with dynamic checkpoint allocation, SRD is able to read in a dense directory containing 3360 entries before having to list the directory in sections (2976 entries if built with FCSRES). o Fixed a problem which did not allow SRD to do any listings or selections based upon information contained in the file header if the entire directory did not all into memory (that is, when SRD needs to separate the directory contents into pieces). o Fixed a problem where instead of cancelling directory write- back for directories which could not all fit into memory, SRD wrote back only the last section of it, wiping out most of the directory! This problem probably only showed up when SRD was built without the dynamic checkpoint allocation option, for otherwise it would have aborted anyway due to the error described above in the first modification. Now SRD issues a fatal message informing you that write-back will not be done (and SRD means it). This message is issued before any directory sorting is attempted, so you don't have to wait for sorting the large segment of the directory which did fit into memory. o Fixed a memory protection violation problem than occurred only occasionally with some configurations when listing a dense directory which exactly fills the last block of the directory. o Improved the organization and contents of the documentation to reflect the current state of SRD, while converting to a true RUNOFF format. This work was done by Gerard Stackhouse, who is maintaining the documentation. Any suggestions for improvements may be sent to him at United Telecom Computer Group, United Information Services, Inc., 300 Second Avenue, Waltham, MA 02154 (617-890-6820). o Modified SRD so that it displays the original command line the user entered, before replacement of certain special symbols which may appear in the /SE, /SD, and date switches. o Added new capabilities in specifying the sorting to be done. Sorting by date may now be requested. SRD allows the major and minor sort keys (file name, type, version, date) to be specified in any order in the /SR:x:x:x switch, and also allows the sort to be either ascending or descending sort for any key independently. (To see an unusual looking directory listing, try using Version as the primary key. Or try your own combination.) The sorting by date feature was merged from Henry Tumblin's version of SRD (which is not on the SIG tapes). Allowing sorting to be done ascending or descending was a feature adapted from changes by Dave Sides (Sachs/Freeman Assoc., Inc., c/o JHU/Applied Physics Laboratory), and from the SRD in the U. S. Forest Service collection of programs submitted to the Spring 1982 SIG tape. Ideas for being able to specify the major and minor keys also came from the latter version, although the V6.4 implementation is quite a bit different. Coding changes were required in the sections of the selection/listing routine dealing with the highest and obsolete version selection switches (/SV, /NV, /OV, /PU) since files may be sorted with ascending version numbers. The former code compared each entry in the sorted directory with both the previous entry and the following entry. The current code looks only forward and remembers where it finds a different file name. o Added the /CM:xxx:fffff switch to enable the generation of command files. This feature was merged from the version submitted in the U. S. Forest Service program collection cited above (eliminating a problem that version had in handling null file names). The format and meaning of the switch values are taken from that version. For details see the documentation or help files; the information given there is also from the the earlier program. o Added the /PA switch to pack the files names (removing any blanks between the name and type and between the type and version number). o Added the /TB switch to include in the summary the number of blocks used/allocated even if it would not otherwise appear. For example, /OV/-LI shows only the number of obsolete files, not the total number of blocks. /OV/-LI/TB does show the block total. o Added the /GT:n switch to select files with allocated sizes of at least n. blocks. This is useful for finding large files on user disk packs, as well as easily determining large directory sizes. It may also be useful in obtaining some contiguous disk space. Use /GT and /BE (and perhaps /-SR) to search for large files which existed at the time of the last full disk copy. Rename one such file, then copy it to the original name using PIP /CD (assuming enough free space remains). Then delete the renamed file, which will usually free up contiguous blocks. o Added the /FI:n switch to select the file with File ID n (the sequence number should not be specified). This helps to find a file when a utility such as BRU issues a diagnostic containing the File ID without a file name, or reports the file name from the header, but the file has been renamed. Up to four File IDs may be specified: /FI:n1:n2:n3:n4. o Added the /FO:[g,m] switch to select files with file owner [g,m]. Either the group or member may be specified as a wildcard (* or zero). The UIC of the directory being listed will be the default switch value if /FO is specified without group and member. An alternate form of the switch, /FO:g:m, is supported (but a wildcard must be a zero, not *). The switch may be negated (/-FO:[g,m]) to select files not owned by [g,m]. SRD [*,*]/-FO would list all files not owned by the directory in which they reside. o Added the /ER switch to display files which produce errors when attempting to read their headers. o Added the /NV (new version) switch with the same meaning as /SV. Some other versions of SRD use /NV, and this seems to be a more appropriate name. o Changed the listing of a file's used and allocated blocks to reference the double word values stored in the header instead of single word values. In V6.3 the number of allocated blocks was calculated from the retrieval pointers if the file header showed a value of zero. Now this is also done if the file has multiple headers, which requires SRD to read each header. NOTE: There is a problem in RSX-11M V4.0 and RSX-11M-PLUS V2.0 which does not allow SRD to read an extension header unless your "login UIC" is a privileged UIC or the file owner's UIC (actually the file owner stored in the extension header). To get around this temporarily, SRD ignores such extension header read errors and treats the file as if it were not a multi-header one. DMP shows the same problem. The undocumented SRD switch /H2 inhibits this work around and causes the error message to be displayed - this is for testing purposes. We have learned that this does not show up in RSX-11M V3.2 or V4.1. For our next version we probably will obtain the number of allocated blocks from the statistics block. Until recently we felt there were reasons we could not use the statistics block. o Corrected handling the case when the date stored in the file header is corrupt, by issuing a non-fatal diagnostic message. Previously the same fatal message was issued for this situation as was given for when an invalid date was specified in a date switch in the command line. o Modified the program to use the three letters of the task name in the program prompt and in the error messages. o Modified SRD to make sure /SR (sort switch) is set if /SV, /NV, /OV, or /PU is specified, even if /-SR is specified. The directory needs to be sorted for these functions. o Changed the diagnostic processing so that the UIC and file name are included in the appropriate messages. o Changed the listing routine so that a file with a header read error will never be "selected" (as long as a switch which requires reading headers is specified, of course). In addition, if file selection by date is requested and a corrupt date is detected in the file header, that file will not be "selected." o Modified SRD to assure that the UIC heading line for the directory appears in the listing whenever issuing a diagnostic for a header read error or for a corrupt date in the header. o Correctly terminated each switch value table so that if too many values are specified for a particular switch, a syntax error message is given. With previous versions, extra values on certain switches would clobber fields for other switches. For example, SRD /SV/MI:80:3 would behave as if SRD /SV:3/MI:80 had be specified. o Made a few changes to enable this version of SRD to run on IAS systems. Recently I traced the failure to the method employed by SRD to reuse some of the memory taken by the largest overlay segment (SRDINI) once the routines in that segment have completed. IAS V3.0 is running on the system I was able to use. The current code seems to work OK (testing just a few switches) if SRD is built /-MU and the special dummy PSECTs $$$XX1, $$$XX2, and $$$XX3 are given the RO attribute for IAS systems, so these modifications are in this distribution. Of course this means that the resulting task is not multi-user. By the next SIG tape we plan to get it working as a multi-user task under IAS; there is no time left to make and test such changes before this submission. There were several modifications in the command file for IAS: eliminating certain SYSLIB routine references from the generated ODL file; and, jumping over any the references to the symbol (which is not defined in the version of Indirect on the IAS system I used). o Eliminated the extra 0 byte appearing at the end of the UIC line. o Eliminated the extra 0 byte appearing at the end of a diagnostic message. o Made a few other internal coding changes, documented in the source files. o Kept the help file up to date, added a HELP SRD NEW section to list new switches in V6.4, and changed the HELP SRD SWITCH DEFAULTS section so that it references a file created by the SRD generation command file. o Modified the command file to allow the user to select certain groups of default switches, to eliminate the need to ask as many questions. The *.C64 files are correction files which have already been applied to the V6.3 source files. They are provided here for reference purposes only. (Some sites obtained a pre-released version of the Spring tape - labelled as a pre-release. The SRD on that tape was different from the version on the final tape, even though they both were called V6.3. The date displayed in the V6.3 /ID switch was 01-June-83.) The *.MAC files are those for V6.4. SRD.TSK is a task built with the default switches shown in SRDDEF.HLP;1. It was built for RSX-11M V4.0/V4.1 with dynamic checkpoint allocation. SRDMOD.DOC describes the past changes to this version of SRD. SRDREF. is the text for a two-page SRD Reference Guide showing the available switches. Alan Frisbie sent us a typeset sheet for the version of SRD he was using. Alan plans to have this new version typeset for us to submit to the Multi-Tasker. Please send us any ideas you have for improving its organization and content. We will be updating it for each new version. Procedure: @SRD ! Asks configuration questions and ! builds SRD Copy SRD.HLP and SRDDEF.HLP to [1,2] and refer to SRD.HLP in [1,2]MCR.HLP. HELP SRD NEW will show users a list of the new switches. Note that under RSX-11M V4.0 or later and RSX-11M-PLUS V2.0 or later, the command string interpreter allows wildcards (* and %) anywhere in the file name or type. This eliminates the need for the /SE: switch in most circumstances. For example, SRD *AB%D*.%D* is valid. Specify /-SR whenever you are looking for certain files and do not care in what order they are listed. You will save the time required for sorting the directories. The /CM switch should be used with /NV (or /SV) unless V is specified in the second switch value and all versions are wanted. The value specified in the /GT:n switch is a four-byte integer value on RSX-11M V4.0/V4.1 and RSX-11M-PLUS V2.0/V2.1. It is considered a two-byte integer on V3.2. Its use on V3.2 has not been tested. The additions to the selection/listing overlay segment and the root segment total about 550. words (when built without FCSRES). This reduces the largest directory section that can be handled at one time by two or three blocks (out of about 110 blocks). Each block contains up to 32 file entries. The SRD Working Group plans to make additional modifications before the next SIG tape. Command and help file improvements are planned as well as program changes. We would appreciate hearing from those who have made changes or plan to make changes to this version, so we can continue to improve this useful utility. [352,4]README.1ST - END