This is an improved version of SRD, dated 3-DEC-1980.

  From: Phil Stephensen-Payne,
        c/o Systime Ltd.,
        Concourse Computer Centre,
        432 Dewsbury Road,
        LEEDS LS11 7DF,
        England.

 This version is intended to combine all the versions of SRD I know of
 (Ray  van  Tassle's,  Bob  Turkelson's  and  my own) into one (easily
 tailorable)  unit,  which  can  then  hopefully be used as a base for
 future  modifications.    The  changes  from 'standard SRD' fall into
 three categories, as follows:-

 1.  Those made by:-

	Ray Van Tassle
	Motorola
	1301 E. Algonquin Rd.
	Room 4135
	Schaumburg, Ill.

 It  has  been  sporadically updated over the last year and a half, so
 long that I  forgot  what  it's  original  base  was.  I think it was
 the version distributed with our IAS V 2.0 system.

 The  original  SRD  had  a  massive number of bugs, the worst one was
 probably  that  it would loose files on a Write-back (but mostly only
 on very large directories) !!!!!!!

 This  version  has had all the bugs I could find fixed, plus a lot of
 enhancements.
 Some of the key things are:
     Write-back works properly, and it also re-tries if it gets an I/O
        error on the write.
     It    will  dynamically  expand  it's  core  buffer  (via  EXTSK$
        directive) if the directory won't fit.
     If  the entire directory won't fit, it will do it in chunks, each
        of which is sorted properly; along with a warning message.
     A trailer line for each directory is given, showing the number of
        files  in  the  UFD,  and  the  number of files selected. If a
        switch  that  causes  the  file header to be read is specified
        (/MI,    /FU,   or  a  date  switch),  the  number  of  blocks
        used/allocated is also given.
     A  "nolist"  switch  is  added,  so you can get the above trailer
        info,  without  getting  a  list of the individual files (very
        handy for scanning an entire disk).
     The user write-up has been re-written.
     On  date  select,  the "before" and "after" dates can now both be
        specified.
     The  format  of  the  output has been slightly modified so that a
        simple  TECO  macro  can  make  a PIP command file to copy (or
        whatever)  the  selected files. Two macros to do just that are
        also on this tape, in my UFD for TECO macros. To use them, do:
		SRD XXX.CMD=????
		TEC XXX.CMD
		*EISTRIP$$
		*EIGET$$
		* (any other edit you may want to do)
		*EX$$
 
 2. Those made by:
 
		BOB TURKELSON
		NASA/GODDARD SPACE FLIGHT CENTER
		CODE 934
		GREENBELT, MARYLAND  20771
		(301) 344-8864
 
		Dave Parker, Henry Tumblin
		Duke University Medical Center
		Box 3181
		Durham, NC 27710
		(919) 684-6804
 
     Support  for /CO/LO/MU switches (to select contiguous, locked, or
        multi-header files).
     Support  selection  of  files created between two dates when both
        /BE and /AF are used in the same command line.
     Yes/No/Quit/Go  responses  for  selective  delete  (obtained from
        another version of SRD).
     Support  /OV:[n]  switch  to  select  obsolete versions of files,
        which  are  those  files which would be deleted if the /PU:[n]
        switch were used, and those which would not be selected if the
        /SV:[n]  switch  were  specified.  This  provides a convenient
        method  for  users to see their obsolete files, and for system
        managers  to  determine  which users are not regularly purging
        their files.
     Fixes  for  a few bugs (including the one reported in the October
        1979 Multi-Tasker).
     Remove the requirement that a period must be included in the /SE:
        switch  file  specification, even if the file searched for has
        the null type.
     If  the  conditional symbol WILD$ is defined in SRDPRE.MAC, treat
        the  file specification string given in the command line as if
        it  has  wild  card  matching  after  the name and type fields
        given,  unless /DE, /SD, or /PU is specified (but never if the
        file  specification  appears  in  an  /SE:  or /SD: switch). A
        previous version of SRD treated any file specification in this
        manner, even if it appeared in the /SE: switch. Thus there was
        no  method  of  obtaining  only *.CM files, if any *.CMD files
        existed,  or  only TALL.* files if any TALLER.* files existed.
        The  version from the New Orleans tape corrected this problem.
        However,  to  list  all  files  beginning  with OMSI, one must
        specify >SRD /SE:OMSI* rather than simply >SRD OMSI . In order
        to  make  SRD  easier  to  use  in  our most common situation,
        without  removing  its  new  capability, we chose to make this
        modification.  If  any  files  are  to  be  deleted, we always
        require  the  stricter  syntax, to help insure that no file is
        deleted  just  because  its name may be similar to those being
        deleted.
     Support  for  the  /ID switch to identify which version of SRD is
        being used. Current version is V5.0.
     Support  for  the /BF switch which displays how much buffer space
        is available for use by SRD to read in the directory file.
     The  code  for  reading  the  directory file into memory has been
        modified  to read in as much of the directory as possible into
        memory, compress the directory, then if there is still more to
        read, attempt to continue reading it in. This seems to work on
        directories which are large but not logically dense. 
     The  dynamic  checkpoint  allocation does not seem to be  working
        properly  and  SRD should not be built with this feature until
        it is resolved.

 3. Those made by me:-

        Phil Stephensen-Payne,
        c/o Systime Ltd.,
        Concourse Computer Centre,
        432 Dewsbury Road,
        LEEDS LS11 7DF,
        England.

     a. Modify SRD.CMD (as developed in 2) to contain all the code for
        building SRD, thus removing SRDASM.CMD.
     b. Set up initial values of switch masks from Task Builder GBLDEF
        statements  (and  add  code  to  SRD.CMD to set them up), thus
        allowing  users  to  configure various aspects of SRD defaults
        (e.g. inclusion/exclusion of [0,0]) as they wish.
     c. Replace  the  conditionalised code under WILD$ (from 2) with a
        pair  of switches /WI and /WD. If /WI is set (by specification
        or  task  builder  parameter)  then FRED implies FRED* (and so
        on).  In  addition  the  switch  /WD  indicates  whether  such
        wild-carding  is valid for delete operations. Note that if /WI
        is  not specified then FRED will still imply FRED.*, but FRED.
        will look only for files with a null extension.
     d. /BF switch (in 2) renamed to /SI (size) to avoid conflict with
        date switches.
     e. /DA,  /AF  and /BE modified to handle inclusion of time and/or
        date.
     f. Date handling extended to cover:-
           /AE = After or on a given date/time.
           /AF = After (but not on) a given date/time.
           /BE = Before or on a given date/time.
           /BF = Before (but not on) a given date/time.
           /DA = On a given date/time.
     g. Added /HE to provide help.
     h. Added  /AT to determine whether or not output device should be
        attached if a terminal.
     i. Added  /M2  to  allow  a  different  flavour  of 'Middle-Sized
        Listing'   (as  developed  in  1).  If  /M2  is  not  set  (by
        specification or TKB) then the format is as defined by Ray van
        Tassle viz:-

            Filename  Creation Date/Time  Revision Date/Time

        If it is set, the format is one I prefer, viz:-

            Filename  Filesize  CLM flags  File ID  Creation Date/Time

     j. Added a /00 switch to specify whether [0,0] should be included
        in [*,*] searches.
     k. Added  a  /SY switch to specify whether system accounts ([0,*]
        to [10,*]) should be included in [*,*] searches.
     l. Modified  output  so  that if /RD (Revision Date selection) is
        specified  with  a date selection or /MI/M2 the date output is
        the revision Date instead of the Creation Date.
     m. Combined   the  methods  of  1  and  2  for  coping  with  big
        directories,  so that now SRD will read the directory a bit at
        a  time  (if necessary), compressing as we go (as in 2) and if
        there  is still insufficient room, will do it in chunks (as in
        1).  As  far  as  I can tell the method works, but I have been
        unable  to test it properly as I cannot now create a directory
        too  big  for it to handle (I gave up after about 1600 files -
        if  you  have  more than that in one directory you've probably
        got problems anyway!).
     n. Updated the version to 6.0.

  For full details on this version of SRD consult SRD.DOC.
