The file "make-dirs" is a shell file that will make all of the
directories (inside the current directory) to extract this tape.

APL	- APL interpreter

	The APL on this tape was obtained from Yale (Ken Thompson's
version) and modified at Purdue.  This is a preliminary version
and the documentaion may be out of phase with the sources as
this APL is currently under development.  Documentation is in
src/apl/doc.
    Apl will run under seperate I & D space.  This requires
a modified version of the wait() routine, one for zero args
(wait0) and one for one arg (wait1).  Wait() calls nargs()
which fails for split I & D space.  The y.tab.c file requires
the version of the cc command (in src/cc.c) on this tape.
The difference being the original preprocessor blows up
on excessive "#defines".  The Purdue cc command also moves
a.out to the name of the first .c file (with .c removed)
when ld finishes.  A "-m" flag prevents this and leaves
the binary on a.out.  See file src/apl/run for building APL.
APL tries to run "/bin/ned" to enter functions, etc.  You can
use the "xed" editor on this tape instead as xed is upward
compatible with ned.  APL also tries to exec "/usr/bin/aplp" for
label processing.  src/apl/aplp.c is the source for this file.
Aplp is not in the run file so you will have to compile it yourself.


getty.c - Various changes

login.c	- Various changes, uses motd.c for message-of-the-day

motd.c	- Process message-of-the-day

	Motd is run from login and displays the file "/etc/motd"
on the terminal.  Next, any new data in file "/usr/news/banner"
is displayed.  Motd remembers when you have seen the /usr/news/banner
and does not display it for subsequent logins.  One can also
interrupt out of the message-of-the-day.


xed.c	- Extended text editor

	Xed refers to a help file "/usr2/tgi/src/xed.doc", this file
is on this tape as "xed.help" and the regular doc is in "doc/xed".

dump.c	- Filesystem dump.

	Dump is a version (still under modification) of the Unix
filesystem dump program.  It is not compatible with existing
dump format.  There is extra redundant information to aid in file
recovery due to bad tapes, drives, etc.  There is an "l" flag
which allows long tape records to be written, thus saving much
tape for large (RP04) filesystems.  75,000 disk blocks will fit
on a 2400' reel (1600 bpi) in long record mode (25600 byte records)
verses 19,000 blocks for conventional 512 byte tape records.
If the "l" option is used, the "f" option should be used to
explicity specify the dump device (/dev/rmt0) which should be
a raw magtape device.  The "b" option should also be selected
to specify the tape length at 65535 blocks if "l" is used.
Filesystem dumps made with this version of dump.c can only be
reloaded with the version of restor.c, also on this tape.
Both dump and restor currently have a huge buffer declared
with an "int".  This wastes much core if you are not using
the "l" option.  This buffer should probably be obtained
via a sbrk() system call instead.
There is some code in dump/restore to process a verify "v" flag.  This
does not work and has not been completely removed yet.  We always
use the "l" option and haven't had any problems since it was written
about 9 months ago.  This dump will fail if a 65535 block filesystem
is almost completely full and is dumped.  What happens is the extra
header info written on the tape causes the tape address to overflow
65535 and a trashed dump is made.  This can be spotted by noticing
the # of blocks is a very small number after dump scans the i-list
and begins to write on the tape.  Due to the large tape buffer, file-
systems with much over 800 blocks' of i-list (12,800 files) cannot
be dumped as there is no more address space.

restor.c - Reload filesystem dump.

	Restor has been modified to restor tapes made with
the above dump.c program.  If the tape was written with long
records, the "l" option must be specified to restor from it.
If the "l" option is selected, the "f" option should be used to
specify a raw magtape device instead of /dev/mt0 default.  Also
the "i" option is automatically selected if the "l" option is
used because we do not have seeks implemented on raw magtape yet.
This version of restor runs on a system which uses 16 bit user id's
as two 8 bit fields (uid0 and uid1). instead of uid and gid fields
of a standard (ver 6) unix inode.  You will probably have to change
the line containing the "chown" to be the same as the distribution
restor.c.

dcheck.c- Changed to not abort on trashed up directories.

icheck.c- Allows resorting of freelist for faster disk accesses.

tban.c	- Generate large block letters on standard output

help.c	- Browse through Unix documentation or other files

man.c	- shuffle args and call help

splitf.c - Split concatenated fortran program into subroutines

doc.c - Generate program documentation.

acol - fill columns on a page

iota - generate lists of numbers

indx - shell file to do a "ls" and pipe to acol

dino - formatted dump of an inode.

rino - read inode.  Useful for getting back files with no dir entry.

lock - manipulate (chmod) file/directory permissions

rmall - recursively remove files/directories

sh - Yale shell with more features added.

tail - display tail end of file.

prdiff - post processor for diff output

slog - forks editor to maintain log-entry file

sys - See READ_ME file in that directory


*****************************************************************

If you have any questions or comments feel free to contact:

	George Goble            Bill Croft
	EE Computer Network     EE Computer Network
	Electrical Eng. Bldg.	Electrical Eng. Bldg.
	Purdue University	Purdue University
	W. Lafayette, In 47907	W. Lafayette, In 47907
	Phone: 317-493-9479     Same phone
	       317-493-3890
