; This file updates SRDROT.MAC;1 from SRD V6.3. SRDROT.MAC;2/AU=SRDROT.MAC;1 \ -/.IDENT/,. .IDENT -6.4- ; DEC-83 .ENABL LC -/CEF001/ -/flattened/+1 ; ; ; VERSION 6.4 - 07-Nov-83 (;BT003 and ;DJS001) ; ; Bob Turkelson ; SRD Working Group ; ; Correct calculation of number of memory blocks to extend ; task so that upper bits are cleared if sign bit propagation ; has occurred. (Previously had memory protection violation ; for a sufficiently large directory since task would shrink.) ; Use additional LUN for reading headers. For directories too ; large to fit into memory, the directory is kept open while ; processing it in pieces. Thus the directory LUN can not be ; re-used for reading the headers. ; Issue a fatal message if write-back is specified and the ; directory is too large to fit into memory. Determined before ; any directory sorting is done, to save the sorting time. ; (Previously a directory write-back cancelled warning was ; issued, but the last piece of the directory was written ; anyway, wiping out most of the directory.) ; Display original command line the user entered, before the ; replacement of certain symbols in the /SE, /SD, and date ; switches. ; Add sort by date capability. Merged from Henry Tumblin's ; version of SRD (which does not appear on the SIG tapes). ; Allow specification of major and minor sort keys in any order ; in the /SR:x:x:x switch, also allowing the sort to be either ; ascending or descending for any key (file name, type, version ; date). Ascending and descending capability adopted from ; changes by Dave Sides (Sachs/Freeman Assoc., Inc., c/o ; JHU/Applied Physics Laboratory)(;DJS001). Ideas for ; specifying sort keys came from the version of SRD in the ; U. S. Forest Service collection of programs appearing on the ; Spring 1982 SIG tape. The implementation here is quite ; different. ; Search forward in the sorted directory to determine the number ; of versions when highest or obsolete version selection is ; required, and remember where a new file name and type is ; found. Necessary to take care of ascending version ; numbers. (Replaces code which compared each entry with ; both the previous and the next entries.) A check for end ; of directory is performed. (Previously possible to get a ; memory protection violation error when checking last entry ; of a dense directory which exactly filled the last block.) ; Do not "CLR (R1)" before returning from SRDCOM (SRDSUB). This ; instruction is no longer necessary. It caused a memory ; protection violation problem when compressing a dense ; directory whose length was six or more blocks if SRD was ; built to use the extend task directive, and the end of the ; SRDLST overlay section ($$$XX3) happened to be on a 64-byte ; boundary, or two bytes before such a boundary (that is, with ; address ending in 00 or 76). ; Added the command file generation switch /CM, taken from the ; version of SRD submitted to the Spring 1982 SIG tape in the ; U. S. Forest Service collection of programs. ; Added the /PA switch to pack the file names (remove any blanks). ; Added the /TB switch to include in the summary the number of ; blocks used/allocated even if it would not otherwise appear. ; Added the /GT:n switch to select files with allocated sizes of ; at least n. blocks. ; Added the /FI:n switch to select by file ID. ; Added the /FO:[g,m] switch to select files by file owner, with ; /FO defaulting to files owned by the directory being listed; ; may be negated to select files with different file owners. ; Added the /ER switch to display files which produce errors ; when attempting to read their headers. ; Created the /NV (new version) switch as a synonym for /SV. ; Reference double word (rather than single word) values in the ; file headers to report a file's used and allocated blocks. ; For files with multiple headers, calculate the number of ; allocated blocks from the retrieval pointers (as has been ; done for any file when the header attributes show zero blocks ; allocated). Read each extension header into a buffer which ; starts at the beginning of the retrieval pointer area of the ; buffer for the first header. Only 51. additional words are ; needed for the buffer since the overlap is 205. words. ; Temporarily do not report errors when reading extension ; headers - treat the file as if it had a single header - unless ; the temporary switch /H2 is specified. A bug in RSX-11M V4.0 ; and RSX-11M-PLUS V2.0 causes a privilege violation reading an ; extension header unless you are in a privileged UIC or in the ; file owner's UIC. We recently determined that this does not ; occur in RSX-11M V3.2, and this problem has been corrected in ; V4.1 and RSX-11M-PLUS V2.1. ; When the date stored in the file header is corrupt, issue 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 the command line.) ; Use three letters of the task name in the program prompt and in ; error messages. ; Set /SR if /SV, /NV, /OV, or /PU is specified (even if /-SR ; is specified) in order to make sure the directory gets sorted ; for these functions. ; Correctly terminate each switch value table. ; Eliminate the extra zero byte appearing at the end of the UIC ; line. ; Eliminate the extra zero byte appearing at the end of a ; diagnostic message. ; In diagnostic messages which refer to specific files include ; the UIC and file name in the message. ; Never "select" a file with a header read error. No further ; selection checks are performed for such a file. ; Do not "select" a file when a corrupt date is detected in ; the file header if file selection by date is requested. ; Make sure the UIC line for the directory appears when issuing ; a diagnostic for a header read error or for a corrupt date ; in the header. ; Set a flag bit in FLAGS$ at the beginning of SRDLST if the ; switches require a header read. Testing this bit where that ; information is needed eliminates duplicate code. ; Form a UIC string when the directory is opened in SRDOPR for ; use in UIC headings and diagnostic messages. ; Move the error message buffer so that it overlaps the prompt- ; for-selective-delete buffer. ; Code for converting the file name to ASCII moved to a new ; routine CVTNAM within SRDLST. ; Removed CLR instructions from SRDINI for those locations ; already cleared in the STACLR:: section of data in SRDATA. ; The check for /WB in SRDINI changed from BITB to BIT. ; For IAS systems define the $$$XX1, $$$XX2, and $$$XX3 dummy ; psects with the RO attribute so that they are located in ; the proper location: after the code in their respective ; overlay segments. ; Calculation of end-of-file block number is done once rather ; than three times. % -,,/;BT003/ /