 
[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 <DATE> 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

