TOOLS
	This directory contains various tools of use in reading
and pulling apart programs from the VAX SIG tapes (and from other
sources).
	There are several categories. The first are tape copiers.
Programs TCOPY.* and TCPY*.* are for tape to tape copies, format
indepentdent. TCOPY is for VAX, native mode, where TCPY is for
RSX or compat mode VMS. These programs just copy one foreign
mounted tape to another, independent of tape format. They will
handle block sizes too large for ANSI tape, so are more useful for
this than the COPY command.
	Second are tape-disk-tape copy programs. These are for use
where you want to do image tape copies with one tape drive, or where
you want to make lots of copies of a tape. They create container files
on disk of all data on a tape, or write the container files to a tape
which is then identical to the original tape. The tapes must be
mounted foreign.
	BIGTPC is the RSX copy program. Use it on PDP11; not on VAX.
VMSTPC is the VMS version. Use it on VMS. Both do several asynchronous
QIO$s and are AST driven, thus extremely fast. The PDP11 version will
handle tape block sizes up to 11,000 bytes; the VAX version will handle
tape blocks up to 32766 bytes (due to RMS limitations). Due to their
great speed, they are better for copying one tape to many if you
have the disk space needed for the container files.

	Next are the LZW compress and decompress programs. These are
compatible with Ui*x Compress also. They are used to compress files
or decompress them. The executables supplied should work OK on all
current VMS versions. The sources have a newly-fatal bug in that
when conditioned for VMS they do a realloc on a memory area that
was not the result of a malloc in the first place. This is easily
fixed (and will be when the current .EXE's stop working), but the
.EXE's here are linked with the object libraries for the old C runtime
which treated this realloc as a malloc and did the right thing.
	If you have a file from a un*x system with .Z at the end, it
is generally compressed; use LZDCMP to decompress it. Frequently Un*x
sites compress TAR images on disk. The practice in VMS land is to
use LZCMP on VMS Backup savesets. Same idea; different tools.
	For VMS V4, the LZCMP/LZDCM programs work and are fairly
clean. For VMS V5, you probably have to use LZCOMP/LZDCMP. There
is a glitch in LZDCMP that may fail to completely decompress a file.
We don't know why this is, but I suggest copying the compressed file
to a longer file, and doing SET FILE/EOF on it prior to the decompress
so that all valid data can be extracted; it seems to be an incorrect
response to end of data, so adding a block or two to the end of the
file should get around the problem.  It only occurs for files from unix,
so a copy of Compress is provided. This should be used instead. To use,
copy or rename what you want decompressed from, say, file.taz to
file.tar_z, define compress as a foreign command (e.g.
$compress:== $sys$disk:[90avaxlt.tools]compress)
 Then use compress -d to decompress, e.g.
$compress -d file.tar
   It will decompress file.tar_z and if it succeeds will delete it and
leave file.tar in your directory. This can be de-TARred with tarread.
   This decompress was provided thanks to Jym Dyer. They work fine
in VMS V5.x.

	To decompress files of type .TAR_Z or .TAR_LZW or .TAZ,
you need to do the following steps:
1. Define COMPRESS and TARREAD23A to execute those images (i.e., 
	make symbols up).
2. Use commands like these:

$ rename file.taz file.tar_z
$ compress -d file.tar
$ assign file.tar tape:
$ tarread23a xv

which will decompress the compressed tar saveset and (in the tarread
step) pull it apart into a directory tree starting at your current
directory).

	The ZOO archiver is fairly heavily used. It creates single
files which contain compressed copies of multiple files. You can
extract one or multiple (or all) files from a ZOO archive, or list
directories of the files, without any extra steps.
   First define the ZOO command. This is done by just defining a symbol
to run ZOO, e.g.
$ ZOO:==$sys$disk:[90avaxlt.tools]zoo
   Then issue commands.

    If file SRC.ZOO exists in a directory the command 
$ ZOO V src
   will list the directory of the archive.
$ ZOO E// src *
   will extract all files from the archive. This form of the
	command will create any needed subdirectories as it goes
	thus recreating the original directory tree.
$ ZOO e src file.doc
   will extract just file.doc out of the archive, writing it to the
	current directory.
$ ZOO ep src file.doc
   will extract file.doc from src.zoo and print it to your terminal
	as it does so.

	This leads us to the last group of tools, the TAR read and write
utilities. These can read or write Un*x TAR format tapes or disk
files, and can be used to pull tar disk images apart on VMS.

	VMS TAR tape readers and writers

These are the TAR handlers you should generally use!
They will read TAR tapes into a directory, creating subdirectories
as needed and massaging filenames to be legal in VMS V4.x.
TARREAD Usage:

$mount/foreign/block=10240/record=512 mta0: tape tape
$assign mta0: tape		
$tarrdr:==$<somewhere>TARREAD
$tarread -xv

The tape will be read and files moved to a VMS directory tree starting
in your current directory tree. Tapes with blocks up to 10240 can be
read as is. The file can easily be edited to read larger tapes.

TARWRITE usage:

Mount the tape the same as for TARREAD.
Assign the logical TAPE to it.
Define TARWRITE symbol to run TARWRITE

$tarwrite -cv [filespec,filespec,,,]
 e.g.
 $tarwrite -cv [...]*.*
  to write a tree to tape in TAR format.


===============================================================
NAMING CONVENTIONS

On the Spring 1990 tape (and succeeding tapes) the following
conventions exist for file names:

file.TAZ or file.TAR_Z or file.TAR_LZW:
  Decompress with COMPRESS, then pull the tar file apart with
  TARREAD23A or other TAR format reader.

file.ext_Z
  Decompress with COMPRESS

file.bck_nnnnn_Z
  Decompress with COMPRESS, then change with FILE to a file of
fixed record length nnnnn. Then use Backup to pull apart the VMS Backup
saveset. This would go something like this, for a file named, for
example, emacs.bck_8192_z:
$ set command [somewhere]file  ! define the FILE command
$ dcm:==$[somewhere]compress -d
$ dcm emacs.bck_8192
$ file/type=fixed/record=8192/attr=noimpliedcc emacs.bck_8192
$ back/list emacs.bck_8192/save
  {generates listing, for example}


file.ext_LZW
  Decompress with LZDCMP

file.ZOO
  Decompress with ZOO

  (note: the ZOO h command lists zoo commands. To pull files apart
use a command like
$ zoo e// file.zoo *

which will pull all files out and put into a directory tree starting
at the current default.)

file.LZH
  Decompress with LHARC (works like ZOO but leave off the // so
just use command
  lharc e file.lzh

