From:	CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 28-JUL-1989 04:11
To:	MRGATE::"ARISIA::EVERHART"
Subj:	VAX/LT Spring 1989 SIG Tape Reviews - Part 4

Message-Id:  <8907280801.AA05953@crdgw1.ge.com>
Received: From KL.SRI.COM by CRVAX.SRI.COM with TCP; Thu, 27 JUL 89 14:43:33 PDT
Received: from AAMRL.AF.MIL by KL.SRI.COM with TCP; Thu, 27 Jul 89 14:16:14 PDT
Received: from FALCON by AAMRL.AF.MIL; Thu, 27 Jul 89 17:10 EDT
Date: Thu, 27 Jul 89 17:12 EST
From: Ted Nieland <@AAMRL.AF.MIL:TNIELAND@FALCON>
Subject: VAX/LT Spring 1989 SIG Tape Reviews - Part 4
To: info-vax@kl.sri.COM
X-Vms-To: IN%"info-vax@kl.sri.com"


		The Spring 1989 L&T/VAX SIG Tape Reviews


Earle Ake
Science Applications Intl. Corp.

Todd Aven
Computer Associates International

Jack Davis
Phillips Consumer Electronics

Daniel Graham
Dynamics Research Corporation

Rand Hall
Merrimack College

David Hittner
Pioneer Standard Electronics

Ted Nieland
Control Data Corporation

Jon Pinkley
Westinghouse Electric Corporation


This is a review of the VAX89A2 section of Spring 1989 L&T/VAX SIG Tape.  
Due to the large amount of overlap between the L&T and VAX SIG tapes, the
Tape editors decided to combine the tapes into one large tape with no 
overlap.  This SIGs tape contains many useful items for people with VAX 
Computers and people interested in Languages and Tools.

The reviewers have scoured through most of the tape and have jotted down the
following notes on the material that is on the tape.  Not everything on the
tape is reviewed due to the shear volume of material, but it is hoped that
this review will help people in deciding what on the tape might be useful to
them.

The SIG tapes are a project started by the SIGs a while back as a method of 
distributing free software that might be helpful to others.  Not all of the 
material on the tapes are "finished" products.  

The encapsulated reviews are rated on a 1-5 scale with 5 being excellent.

Submission Subdirectory:	[VAX89A2.Games.FCD]
Ease of Installation: 		5
Documentation: 			3
Intended Audience: 		General
Ease of Use: 			3
Usefulness: 			1
Sources Included: 		yes - Macro
Objects Supplied: 		no

Description:
    This is a five-card draw poker game implemented for VT-compatible terminals.

Observations:
    Having violated the prime directive for using new software - DO NOT read
    the documentation, I found that the documentation is confusing - when it
    says "..keys 6 through 0..", it REALLY means it! - 6, 7, 8, 9, and 0!

    Other than the confusing statement in the documentation file, the program
    seems to run just fine.  Since I'm not exactly an avid gambler, (or even
    an occasional gambler), I'm not too well qualified to give an opinion of
    the game's playability or fairness.



Submission Subdirectory:	[VAX89A2.GHC]
Ease of Installation:		4
Documentation:			4
Intended Audience:		General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, FORTRAN
Objects Supplied:		No

"I have modified the source modules PROTOCOL.FOR and XMODEM.FOR, along
with the include file PARAMS.INC of Robin Miller's VAXNET program (version
12.1) to support the XMODEM-CRC protocol.  When sending, CRC usage is
automatic when it is noted that the receiver requests CRC.  When
receiving, an additional prompt is presented to the user after the
RECEIVE command is issued; depending on the users response, VAXNET will
expect CRC. "

     This submission contains modifications to VAXNET as submitted by Robin
Miller on the Fall 1987 VAX SIG tape.  He has included XMODEM-CRC support to
the XMODEM module.  Previously VAXNET would only handle XMODEM-Checksum.
To take advantage of these modifications, you need to get the previous VAXNET
submission and replace the modules contained here.




Submission Subdirectory:	[VAX89A2.GUNTHER]
Ease of Installation:  		
Documentation:  		3
Intended Audience:  		RS/1 users
Ease of Use:  			
Usefulness:  			
Sources/objects Included:  	yes

Description:
This directory contains two RS/1 procedures for producing trilinear 
contourplots, contained in two subdirectories:

		o \TERNARY  Contains a procedure to produce trilinear
                            contourplots as RS/1 CONTOURPLOT objects.

		o \TRILIN   Contains a procedure to produce trilinear 
                            contourplots as RS/1 GRAPH objects.

The first of these is newer and better than the last. However, the older
procedure in the \TRILIN directory has the advantage of not requiring the
RS/1 CONTOURPLOT option to work (if your site does not have the CONTOURPLOT
option, you will have to use the older procedure) as well as not requiring
a graphics terminal or plotter (it can produce usable output on a line
printer.) 

See the individual README.TXT files in each of the above subdirectories
for more information.


Comments:
I'm afraid I don't know what on earth this submission is about.  I have no 
knowledge of RS/1 or whatever trilinear contourplots are.  I hope it is 
useful to SOMEONE.



Submission Subdirectory:	[VAX89A2.INFOVAX.BOSS]
Ease of Installation:		4
Documentation:			4
Intended Audience:		System Managers, General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, C
Objects Supplied:		Yes

BOSS is an interactive job controller.  It lets you run several interactive
jobs simultaneously.

     BOSS allows a user to have more than one interactive job attached to
the terminal at the same time.  It operates like a terminal server does.
BOSS is handy if you want to run several processes at once from the same
terminal but don't want to have subprocesses.  Processes are identified by
single letters and it is very easy to switch between processes.  Handy for
people that can operate more than one terminal at a time.


Submission Subdirectory: 	[VAX89A2.INFOVAX.CVTTIME]
Ease of Installation:		5
Documentation:			1
Intended Audience:		General
Ease of use:			5
Usefulness:			2
Sources included:		Yes, DCL
Objects Supplied:		N/A

     CVTIME.COM is a small command procedure that takes a given date string
and based on a keyword such as LASTYEAR, NEXTMONTH, LASTMONTH, etc. returns
into a global symbol the appropriate date string.  If you pass it the string
"23-JAN-1989" and the keyword "NEXTMONTH", you will get back the string
"1-FEB-1989".


Submission Subdirectory: 	[VAX89A2.INFOVAX.EXEC_BATCH]
Ease of Installation:		5
Documentation:			5
Intended Audience:		General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, C
Objects Supplied:		Yes

Someone recently posted a BATCH.COM command procedure which inputs
commands interactively and submits it to a batch queue.  I have a utility
called EXECUTE, written in C, which does this.  It's advantage is, of course,
being an executable, it runs faster than a command procedure.  It also has the
following added features:  If there is only one command to be executed, that
command can be entered on the EXECUTE command.  The prompting for input lines
is done using SMG$ routines, so that line recall is possible.  Specifying /EDIT
invokes an editor for inputting the commands, rather than prompting line by
line.  The qualifier /QUEUE can be used to specify the batch queue.  Lastly,
there is a /NOBATCH qualifier, so that the commands are executed immediately.
I find this useful for executing a series of commands without having to create
a command procedure (or alternatively typing the commands ahead and hoping that
I've spelled them properly.)

     This is a neat way to submit something to batch.  There have been command
procedures written that submit a one line command to batch, but this is more
than that.  This is written in C so it is fast.  It also uses SMG$ routines
which makes for easy command recall.  It is much easier than editing a file
to submit to batch.  This is worth looking at.


Submission Subdirectory: 	[VAX89A2.INFOVAX.HAYES_DTE]
Ease of Installation:		5
Documentation:			3
Intended Audience:		General
Ease of use:			5
Usefulness:			4
Sources included:		Yes, MACRO
Objects Supplied:		Yes

Here's a modification of Jake VanNoy modification to the examples
DF03 driver.  I changed it for a MT224 (Multitech) modem which i think
is functionally equivalent to a Hayes.

     This is a macro program for use with the SET HOST/DTE/DIAL command
in VMS.  It provides support for the MT224 (Multitech) modem.


Submission Subdirectory: 	[VAX89A2.INFOVAX.KEPT_SUBPRC]
Ease of Installation:		3
Documentation:			2
Intended Audience:		Programmers
Ease of use:			3
Usefulness:			4
Sources included:		Yes, C
Objects Supplied:		Yes

An implementation of subprocess caching.

     This is an example of how to start a subprocess and communicate with
it using mailboxes.  The subprocesses waits until something has been written
to it's mailbox.  The subprocess reads the command, executes it, and returns
the status back to the main program.  Not very useful by itself, but it does
provide a good example of how to use this in other programs.


Submission Subdirectory: 	[VAX89A2.INFOVAX.MAIL_ALIAS]
Ease of Installation:		5
Documentation:			5
Intended Audience:		General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, DCL
Objects Supplied:		N/A

Mail_Alias allows users to have Mail Aliases defined for them via use of
a configuration file and a logical name table that is connected only within
the scope of this program.  This scheme allows the logicals to be defined
at all times, but not to be processed all the time.

     This is a command procedure that will define mail aliases for you.  It
allows you to have the alias file in your SYS$LOGIN: directory or you can
reference a logical name MAIL_ALIASES.  You can define a mail alias such as:

     Stupid:             System

     Every time that you send mail to stupid, it will actually go to SYSTEM.
This is a very handy utility if you are on a network and don't want to go
through typing in a destination string such as:  User%Node1.Node2.Node3@Edu
every time you want to send that user a mail message.


Submission Subdirectory: 	[VAX89A2.INFOVAX.MT_BOT]
Ease of Installation:		5
Documentation:			1
Intended Audience:		Programmers
Ease of use:			5
Usefulness:			3
Sources included:		Yes, C
Objects Supplied:		Yes

I believe batch is the best way to deal with running backup and
receiving "next volume" mount requests, however, there is a way
we have used back in the olden days (pre-VHS tape drives) which
you might find handy. Its a program that is SPAWN/NOWAIT'd from whatever
terminal you are using and it wakes up every 30 seconds and checks the
mag tape device status watching for the MT$_BOT bit to pop up (which
usually means the tape has been rewound and dismounted) causing it to send
a bell code to the terminal. I didn't write it, but here it is if you
want it.

     Well that just about sums it up.  You can start this up as a subprocess
and when the tape drive wants another tape, it rings the bell at the users
terminal.


Submission Subdirectory: 	[VAX89A2.INFOVAX.PASSWORD_SWAP]
Ease of Installation:		5
Documentation:			4 (Comments in code)
Intended Audience:		System Managers
Ease of use:			5
Usefulness:			5
Sources included:		Yes, FORTRAN
Objects Supplied:		No

     There are two FORTRAN files in this directory: PUSH_PASSWORD.FOR and
POP_PASSWORD.FOR.  The purpose of PUSH_PASSWORD.FOR is to extract the hashed
(encrypted) password of a specified VMS username, save it in a file in
SYS$MANAGER:username.PUSHED, and insert a new, known hashed password using
AUTHORIZE.  POP_PASSWORD reverses the process.

     These two programs would be good for the system manager that wants to
do some work for a person and charge it to their account but doesn't know
their password.  The system manager saves the old hashed password, changes
the password to allow him access, then restores the old password for the
user.  Would also be handy for the system manager in debugging a problem
for a user that only occurs under one account.  Rather than having the user
give the password over the phone, the password is changed long enough to
allow access and the password it not compromised.  For security reasons, I
would not suggest leaving this out in the open.


Submission Subdirectory: 	[VAX89A2.INFOVAX.PGFLQUO_SIZER]
Ease of Installation:		5
Documentation:			4
Intended Audience:		System Managers
Ease of use:			5
Usefulness:			5
Sources included:		Yes, DCL
Objects Supplied:		N/A

[Someone] had asked me about some method to help in
determining what PGFLQUOTA would be needed to run programs being created on
his system. He kept bumping into the quota problem as simple program(s) were
'enhanced' into complex programs then into HUGE programs.

To this end, I have enclosed a command procedure which will examine the .EXE
file for the amount of page file usage which MIGHT be used.

     This directory contains a command procedure which looks at an .EXE file
to determine how much PAGEFILE space the program may need when running.
The command procedure reports number of writable pages in the image such as:

     Total number of writable pages for image is: 2240

     From this information, the system manager could be able to size the
PAGEFILE and set PGFLQUOTA to a proper amount.


Submission Subdirectory: 	[VAX89A2.INFOVAX.POKE_BOOTTIME]
Ease of Installation:		5
Documentation:			4
Intended Audience:		System Managers, System Hackers
Ease of use:			5
Usefulness:			4
Sources included:		Yes, FORTRAN, MACRO
Objects Supplied:		Yes

  Here is a SHELL archive containing a program to allow anyone
  with CMKRNL privilege to POKE the system BOOTTIME.  This
  address in system, space (EXE$GQ_BOOTTIME) can sometimes be wrong.
  This causes programs that use the SYS$GETSYI item SYI$_BOOTTIME
  or the lexical function F$GETSYI item BOOTTIME) to be wrong.

  The program will ask for a standard VMS time, convert it to
  binary time and call a kernel mode routine to poke the cell
  in system space.

  This program also serves as a nice template for writing other
  system space poking routines.

     How useful it would be to change the system boottime may be
questionable, but some good examples of how to write system space
poking code is provided here.  There is a good example of how to recover
from an access violation when running in kernel mode.  Code was linked
under V5.x so relink to run under V4.x.


Submission Subdirectory: 	[VAX89A2.INFOVAX.PROFILE]
Ease of Installation:		5
Documentation:			3
Intended Audience:		Programmers
Ease of use:			5
Usefulness:			4
Sources included:		Yes, C
Objects Supplied:		No

     A poorman's PCA.

     Simply call ProfStart when you want profiling to start, ProfPrint
to stop profiling and print results.  If you don't call ProfPrint, it will
be called automatically when the program exits.

I wrote this for use with a particular piece of code I was working on so it
may not be completely general.  I've included one .h file it uses (vms.h,
which provides handy definitions for dealing with VMS), but not a .h file
that is specific to the larger piece of code.  Among other things, it
#include's vms.h, and defines a FILE * named Logger to which output is written
(and a symbol name LOGGER to indicate that the debug code is enabled).  So,
view this as a sketch of how to write this kind of code.

Note that, because the timer AST's are requested in user mode, you will get
distorted readings around system calls.  Still, this will give you some
picture of where your code is spending your time.  (In VMS V5, you can
request that $SETIMR measure CPU time, not elapsed time.  This could give
you more useful information; it's left as an exercise to the reader....)

DEC has a product called PCA (Performance and Coverage Analyzer) that takes
this basic idea and expands it into something much more generally usable -
this profiler requires some wizardry to use.  You might want to look into it.

     This is a way to monitor the amount of CPU time a program is taking.  It
is not extremely general and may take some modifications for your particular
application.  It does give a good example on how to monitor program CPU
consumption.


Submission Subdirectory: 	[VAX89A2.INFOVAX.PTYPE]
Ease of Installation:		5
Documentation:			2
Intended Audience:		General
Ease of use:			5
Usefulness:			2
Sources included:		Yes, DCL
Objects Supplied:		N/A

     PTYPE is a command procedure that aids in the typing of files to remote
printers.  It has the escape characters to put the printer in 132 column mode
or other modes.  This would be handy to use if you wanted to type a file to
a printer but didn't want to take the time to setup a queue and use DECs
queue forms.


Submission Subdirectory: 	[VAX89A2.INFOVAX.SETPORTNAME]
Ease of Installation:		5
Documentation:			3
Intended Audience:		System Managers
Ease of use:			5
Usefulness:			4
Sources included:		Yes, MACRO
Objects Supplied:		Yes

Here's a little toy I wrote yesterday which lets a suitably privileged
(CMKRNL) user manipulate the Access Port Name (DVI$_TT_ACCPORNAM)
field for terminal devices, e.g.

$ Run ACCPORNAM
ACCP> Show TXA0
%ACCP-I-ACCP, Access port name of _TXA0: is set to Operator's room
ACCP> Set TXA0 On the moon
ACCP> Show TXA0
%ACCP-I-ACCP, Access port name of _TXA0: is set to On the moon
ACCP> Exit
$ 

VMS V5.x only;  use it carefully (it doesn't crash my systems, but ...).

     This is a nice little hack for setting the Access port name of a
terminal device such as TXA7:.  Normally, access port names are only
associated with terminal server ports.  You may want to use this to assign
names to ports associated with say a Tektronix workstation or a direct connect
PC to more rapidly identify what that port is or what it's function is.


Submission Subdirectory: 	[VAX89A2.INFOVAX.SETUSER]
Ease of Installation:		5
Documentation:			3
Intended Audience:		System Managers, System Hackers
Ease of use:			5
Usefulness:			5
Sources included:		Yes, MACRO
Objects Supplied:		Yes

        SETUSER a Utility to allow a privileged user to become another user.

        This program allows a privileged user (CMKRNL, PSWAPM, privs plus
        read access to sysuaf) to change his username. It also changes
        the users Account name, UIC, Process name, and Default Directory
        to that of the specified user.

        It now changes the group logical name table and changes the
        owner of the JOB table. (14-Oct-1986).

	NOTE: READ WARNING in SETUSER.MAR!!!!!!!

	Modified to run under VMS V5.0, 5.0-1, 5.0-2 and 5.1 only!

     This is another utility to change your process to that of another
user.  This one differs in that it also changes the group logical name table
and the owner of the job table.  This is important when spawning a subprocess.
Because the author hardcoded some of the addresses into the program, be sure
to read the warning in SET_USER.MAR first before you run this.  Note the
versions of VMS that the author says it will work with.


Submission Subdirectory: 	[VAX89A2.INFOVAX.SHOWDEF]
Ease of Installation:		5
Documentation:			1
Intended Audience:		System Managers
Ease of use:			5
Usefulness:			3
Sources included:		Yes, MACRO
Objects Supplied:		Yes

     Here is a program to find the default directory specification
for any process (i.e., SHOW DEFAULT/ID=pid).

     The program is written in macro and will show the default directory
for any process in the system.


Submission Subdirectory: 	[VAX89A2.INFOVAX.SHOW_DEV]
Ease of Installation:		5
Documentation:			5
Intended Audience:		General
Ease of use:			5
Usefulness:			4
Sources included:		Yes, DCL
Objects Supplied:		N/A

 ShowDev - A command file to show all information about a device.

     SHOWDEV is a command procedure that shows you everything there is to know
about a device, plus some that you forgot about.  Whether all this information 
is useful or not is up to you.  If you should ever need it, it is here.


Submission Subdirectory: 	[VAX89A2.INFOVAX.SMP_PHOTO]
Ease of Installation:		4
Documentation:			5
Intended Audience:		General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, C
Objects Supplied:		Yes

      For those of you who don't know about PHOTO, PHOTO copies all of
the Input/Output (IO) that appears on the terminal to a file.  It is
useful for turning in homework assignments, which do most of their IO to
the terminal.  PHOTO requires that you have installed the latest version
of the PY/TW drivers maintained by Kevin Carosso of NRC (kvc@nrc.com or
kvc@ymir.bitnet, found in the directory [VAX89A2.KVC]; if you are running 
DECWindows, the PY/TW drivers are already installed).

     This is a modification to the photo program enhanced to run on SMP
type processors.  PHOTO copies all the Input/Output to a file for review
later.  This is a lot handier than submitting a job to BATCH to capture the
output since you are still running interactively.


Submission Subdirectory: 	[VAX89A2.INFOVAX.STRIP]
Ease of Installation:		5
Documentation:			2
Intended Audience:		General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, C
Objects Supplied:		Yes

     STRIP performs functions on text files such as removing embedded <CR><LF>,
leading and trailing spaces, conversion to 7 bit ASCII, convert to uppercase or
lowercase, expand tabs, convert spaces to tabs, and so on.  It is one of those
multipurpose utilities that everyone needs every once in a while and usually
just codes up a quick program to take care of it.  Written in C, STRIP takes
it's arguments in a UNIX like fashion so a foreign command must be defined
for it to work.  STRIP is a good utility to keep around.


Submission Subdirectory: 	[VAX89A2.INFOVAX.UAF_PROFILE]
Ease of Installation:		5
Documentation:			3
Intended Audience:		System Managers
Ease of use:			5
Usefulness:			5
Sources included:		Yes, FORTRAN
Objects Supplied:		Yes

      PROFILE is a FORTRAN utility which adds new accounts or modifies existing
accounts by using a screen-oriented interface that allows changes to be made by
moving the cursor to the desired field and entering the changes. Four different
screens can be displayed: main user profile, login flags, primary and secondary
days, access restrictions, and privileges. Cursor movement is accomplished by
using the arrow keys or the Unix 'hjkl' keys. Fields can be changed in the main
user profile screen by typing the "Insert Here" or "Enter" keys to toggle edit
mode. After the text has been entered, Carriage Return or any of the arrow keys
will terminate the input. Login flags, Primary days, and Privileges can be
changed with the "Select" or keypad "Period" keys. Normal or full privileges
can be enabled with the "N" or "A" keys. Access modes can be changed by:
hitting "-" or "Remove" keys to deny total access to an access type; hitting
"+" or "Insert Here" to allow total access to an access type; hitting "Select"
or keypad "Period" keys to selectively allow or deny access on an hourly basis.
The user's top level directory will be created, diskquota will be enabled, and
a sample login procedure will be copied to the user's directory. 

     PROFILE is a very nice utility that DEC should have designed a long time
ago.  It is a way to manipulate the SYSUAF file without having to remember
all that syntax and be able to always see the complete user record after
you make any changes.  I tested this on a V4.x and a V5.x system.  The program
worked well on a V4.x system, but I had to make some minor changes to allow
it to work under V5.x.  The only thing I find a little irritating is the fact
that whenever you make any change to the SYSUAF record, PROFILE updates the
entire record.  If you have AUTHORIZATION FILE audit turned on, any changes
to a record will result in an operator message that indicates the entire
record was changed, not just the one field that was modified.  Other than
that, it is a very useful program.


Submission Subdirectory: 	[VAX89A2.INFOVAX.UNDEL]
Ease of Installation:		5
Documentation:			3 (In source code)
Intended Audience:		System Managers
Ease of use:			3
Usefulness:			5
Sources included:		Yes, FORTRAN, MACRO
Objects Supplied:		Yes

Undelete a file on a FILES-11 disk

Handles disks with any cluster size, and files with any number of
extension headers. Use with caution only when you REALLY need it;
a backup copy is always preferable if you have one. If the file
is really vital, back the disk up before using UNDEL on it.

     For those files that were accidently deleted and it was just before
a backup was done.  As the author points out, use this with extreme caution
and make sure to do a full backup on the disk before the program is run.
If there has not been any disk activity since the file was deleted, you
have a good chance to UNDEL it.  As always with a program such as this, use
at your own risk.


Submission Subdirectory: 	[VAX89A2.INFOVAX.VMS_SHARE]
Ease of Installation:		5
Documentation:			5
Intended Audience:		General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, DCL
Objects Supplied:		N/A

	Packages a series of files into a format suitable for transmission
over electronic mail networks which may mangle the text.

	This directory contains VMS_SHARE V06.10 and PAKMAIL V1.2.  Both
packages are written in DCL and are very useful for sending a series of text
files across electronic mail networks in pieces and then re-assembling the
pieces into the original files.  VMS_SHARE is used to make up the mail files
and then PAKMAIL is used to send all the files out to their destination.
VMS_SHARE uses VAX-TPU and therefore you must be running at least VMS V4.4.


Submission Subdirectory: 	[VAX89A2.INFOVAX.WHAT]
Ease of Installation:		4
Documentation:			5
Intended Audience:		System Managers
Ease of use:			5
Usefulness:			5
Sources included:		Yes, C, MACRO, PASCAL
Objects Supplied:		Yes

 A FAST Cluster and network-wide SHOW USERS (and Much more) type command.

     This is a routine to SHOW USERS and other commands on many nodes of a
network.  This is very much like the FINGER routine that has been submitted
on previous DECUS tapes.  You can show users, show system, and much more.
WHAT uses non-transparent DECnet communications.


Submission Subdirectory: 	[VAX89A2.INFOVAX.ZOO]
Ease of Installation:		5
Documentation:			5
Intended Audience:		General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, C
Objects Supplied:		Yes

	This directory contains ZOO V2.01, BILF V1.0, and FIZ V2.0 ZOO archive
repair utility for VMS.  ZOO is the VMS port of the popular ZOO archive utility
which is in use on personal computers.  ZOO allows the user to compress and
store many files in a single archive.  ZOO is different than 


Submission Subdirectory:        [VAX89A2.IVANOV.CURSES]
Ease of installation:           3
Documentation:                  3
Intended Audience:              C Programmers
Ease of use:                    3
Usefulness:                     4
Sources included:               No
Objects supplied:               Yes

This is an implementation of UNIX Curses for VMS.  This version of CURSES is 
compatible with that of BSD 4.2 Unix.  


Submission Subdirectory:        [VAX89A2.IVANOV.MAKE]
Ease of installation:           3
Documentation:                  3
Intended Audience:              C Programmers
Ease of use:                    3
Usefulness:                     4
Sources included:               Yes, C
Objects supplied:               Yes

This is an implementation of UNIX MAKE for various operating systems, 
including VMS.  This version make also supports MS-DOS and TOPS-20.


Submission Subdirectory:        [VAX89A2.IVANOV.MISC]
Ease of installation:           3
Documentation:                  3
Intended Audience:              C Programmers
Ease of use:                    3
Usefulness:                     3
Sources included:               Yes, C
Objects supplied:               Yes

This directory contains copies of ASCTOBIN and BINTOASC.  These programs are 
used to transfer items from Binary to Ascii and visa-versa.

Submission Subdirectory:        [VAX89A2.IVANOV.VAXCIO]
Ease of installation:           3
Documentation:                  2
Intended Audience:              C Programmers
Ease of use:                    3
Usefulness:                     4
Sources included:               Yes, C
Objects supplied:               Yes

This is an implementation of UNIX system V "termio" for VMS.  



Submission Subdirectory:        [VAX89A2.JSCLUG]
Ease of installation:           2
Documentation:                  3
Intended Audience:              Programmers, System Managers
Ease of use:                    3
Usefulness:                     3
Sources included:               Yes   FORTRAN, Macro
Objects supplied:               Yes

This submission is a conglomeration of utility programs written
at NASA/JSC.  There are three main subdirectories, each
addressing a different need.  Although these programs may be
usable in their present form, I did not try using them because
they are quite site dependent in their help, installation
environment, etc.  Because they will require customization, I
feel programmers and system managers will get the most from this
offering.

The source code is provided and some of the utilities have very
good documentation of the program design and flow.  The CALENDAR
program in LIFENET subdirectory has a whole directory devoted to
program documentation.  A lot of good ideas can be pulled from
the code.

Overview:

[.LIFENET]  This subdirectory has a CALENDAR utility and an RMAIL
    program.  The calendar program is meant to provide a
    "bulletin board" of events.  The RMAIL program is a
    multi-network mailing system, however it will not work with
    VMS V5.x due to changes in the VMS mail interface.

[.TELEMAIL]  This is a set of command procedures and programs
    that will allow a batch job to retrieve and post GTE/Telenet
    mail.  It uses modified VAXNET code to "dial" out to Telenet,
    check for new mail, and post and mail sent by users on the
    local system.  This has a lot of potential if your company
    currently has everyone dialing up for themselves.  I didn't
    try this out, I don't have a GTE/Telenet account.

[.LABSTAR]  This is targeted toward a very narrow audience.  If
    you are using DEC's LABStar system, you will be interested.
    The Labstar system is evidently a VAX based data aquisition
    system that includes A/D converters, etc.  I didn't have the
    necessary equipment to try this out.  There are some sample
    programs providing a screen based user interface to the
    Labstar system.


Submission Subdirectory:	[VAX89A2.KVC.PTY]
Ease of installation: 		5
Documentation: 			3
Intended Audience: 		System Managers, General
Ease of use: 			5
Usefulness: 			4
Sources Included: 		Y (Macro, C)
Objects Supplied: 		Some, not all



This is Kevin Carosso's current version of the PTY drivers.  This code will
work on both VMS 4 and 5.  The PTY drivers are required for some of the other
submissions on this tape (BOSS and PHOTO, for example).  This version of the
PTY drivers is compatible with the DECWindows version, but should not be used 
to replace the DECWindows version.

Submission Subdirectory:	[VAX89A2.KVC.DECWINDOWS]
Ease of installation: 		2
Documentation: 			3
Intended Audience: 		System Managers, DECWindows users
Ease of use: 			3
Usefulness: 			4
Sources Included: 		N/A
Objects Supplied: 		N/A

These are the instructions on how to set up a VAXStation with DECWindows to 
run the DECWindows locally, but to log into another host.  It is basically the 
instructions on how to set up a VAXStation to be a DECWindows terminal (which 
is a good use for old VAXStations).


Submission Subdirectory:	[VAX89A2.LBGS89.BECOME]
Ease of installation: 		5
Documentation: 			3
Intended Audience: 		System Managers
Ease of use: 			5
Usefulness: 			4
Sources Included: 		Y (Macro, Pascal)
Objects Supplied: 		Y

This program when used as a foreign command allows a suitably
privileged user to "BECOME" another user.  This program sets the
following process parameters: UIC, DEFAULT DEVICE & DIRECTORY, PROCESS
NAME, USERNAME, ACCOUNT NAME, PROCESS PRIVS, GROUP LOGICAL NAME TABLE
LNM$GROUP, RIGHTS from RIGHTSLIST.DAT

Works as advertised with V5. It doesn't execute the user's LOGIN.COM
but is useful nonetheless.

Submission Subdirectory:	[VAX89A2.LBGS89.MISC]
Ease of installation: 		3
Documentation: 			2
Intended Audience: 		System Managers
Ease of use: 			3
Usefulness: 			5
Sources Included: 		Y (Bliss)
Objects Supplied: 		Y

This directory contains a group of system programming utilities and
routines. DISKQUOTA-Routine which will allow an application program to
check a user's disk quota before creating a large file. FINDUIC,
FINDACL, FINDLBN-Utilities to search volumes by UIC, ACL, and LBN.
SHOQUOTA- Utility program to provide a real time display of a
process's quotas and limits.

Everything works fine. Shoquota is the gem of the lot. I prefer Joe
Meadows' FIND program to the three separate find utilities here.

Submission Subdirectory:	[VAX89A2.LILUG.closeup]
Ease of installation: 		4
Documentation: 			4
Intended Audience: 		System Managers
Ease of use: 			4
Usefulness: 			3
Sources Included: 		Y (DCL)
Objects Supplied: 		N

These are two command procedures for protecting a networked vax from
attacks directed at the default decnet account. Both of the schemes
embodied in these procedures have been tested and proven successful
against a variety of scenarios. The first procedure selectively allows
access from default DECNET processes only to the objects MAIL, $MOM,
NML, PHONE and if present, FINGER and SEND. The second procedure turns
off all access to FAL and takes the additional step of redirecting all
requests for access to the object TASK, to a different account with a
different default directory.

This subdirectory serves as a good introduction to DECnet security for
the novice system manager.



Submission Subdirectory:	[VAX89A2.MINT]
Ease of Installation:  		2
Documentation:  		3
Intended Audience:  		system managers
Ease of Use:  			
Usefulness:  			
Sources/objects Included:  	yes, MACRO, TPU, PASCAL

MINT is a Mail INTerface program that emulates the MM mail interface from
the TOPS-20 operating system.  MINT requires PMDF (Pascal Memo Distribution
Facility).  This submission also has a copy of the VASSAR Spell program
as part of it.




Submission Subdirectory:	[VAX89A2.MONLATV]
Ease of Installation:  		4
Documentation:  		4
Intended Audience:  		system/network managers
Ease of Use:  			3
Usefulness:  			3
Sources/objects Included:  	yes, VAX MACRO

Description:
The programs in this directory were submitted by DEC.  The programs allow you 
to monitor three different ethernet protocols: LAVC, LAT, and Hardware ID.

NOTE:  MONLAT cannot be run on a machine using LAT
NOTE:  MONLAV cannot be run on a machine that is part of a LAVC.


Comments:
These procedures work as described.  There are rather severe limitations, 
however, that make it difficult to test this software in case your machines 
are all on a LAVC and all use LAT terminal servers.



Submission Subdirectory:	[VAX89A2.NIELAND.bulletin]
Ease of installation: 		4
Documentation: 			5
Intended Audience: 		General Users
Ease of use: 			5
Usefulness: 			5
Sources Included: 		Y (Fortran, Macro)
Objects Supplied: 		Y

Bulletin is a bulletin board-type utility with an interface much like
VMS MAIL's. Privileged users can create messages which are displayed
in full at login. Folders can be created so that messages pertaining
to a single topic can be placed together.  Folders can be made private
so that reading and writing is limited to only users or groups who are
granted access.  Alternatively, folders can be made semi-private in
that everyone is allowed to read them but write access is limited.

Bulletin is very well-documented and is easy to install. It works
enough like VMS MAIL that novice users should be able to learn it
without any problems. This is a very good alternative to ANU-NEWS.

Submission Subdirectory:	[VAX89A2.NIELAND.checkpass]
Ease of installation: 		3
Documentation: 			2
Intended Audience: 		System Managers
Ease of use: 			3
Usefulness: 
Sources Included: 		Partial (Fortran)
Objects Supplied: 		Y

[Submittor's Note:  The CHECK_PASS broke under later versions of
FORTRAN. The following are the diffs needed to fix the program:

************
File DUA6:[VAX89A2.NIELAND.CHECKPASS]CHECK_PASS.FOR;1
   78         INTEGER*2  U , P
******
File DECUS$:[SOURCE.CHECK_PASS]CHECK_PASS.FOR;52
   78         IMPLICIT NONE
   79         INTEGER*2  U , P
************
************
File DUA6:[VAX89A2.NIELAND.CHECKPASS]CHECK_PASS.FOR;1
   82         INTEGER LENSTR, MIN_PASS, I, MAX, STAT
   83   C
******
File DECUS$:[SOURCE.CHECK_PASS]CHECK_PASS.FOR;52
   83         INTEGER LENSTR, MIN_PASS, I, MAX, STAT, SYS$GETUAI, LEN
   84   C
************
************
File DUA6:[VAX89A2.NIELAND.CHECKPASS]CHECK_PASS.FOR;1
  382         INTEGER*2 U, P, T, STAT
  383         CHARACTER PASS*32
  384         DIMENSION CPASS1(2) , CPASS2(2) , ECN(2)
  385         INCLUDE '($UAIDEF)'
******
File DECUS$:[SOURCE.CHECK_PASS]CHECK_PASS.FOR;52
  382         IMPLICIT NONE
  383         INTEGER*2 U, P, T, STAT
  384         CHARACTER PASS*32
  385         INTEGER CPASS1(2) , CPASS2(2) , ECN(2), LGI$HPWD
  386         INCLUDE '($UAIDEF)'
************

Sorry about the problems.]


The Check_Pass utility checks a list of users' passwords against a
large dictionary, flagging usernames with passwords that are in the
dictionary.  You supply the list of usernames, it does the checking.

I could not get this to work. This program is a nice idea but it needs
a lot of work. If a password match is found at the beginning of the
dictionary Check_Pass doesn't quit--it checks the rest of the
dictionary. Sources for HPWD are not included even though there are
legal copies available.


Submission Subdirectory:	[VAX89A2.NIELAND.crypt]
Ease of installation: 		3
Documentation: 			2
Intended Audience: 		General Users
Ease of use: 			3
Usefulness: 			4
Sources Included: 		Y (C)
Objects Supplied: 		Y


Crypt encrypts/decrypts files. Crypt's distinguishing feature is that
the encrypted file is in hex so it can be mailed. Versions, although
not compatible, are included for VMS, UNIX, and DOS.


Submission Subdirectory:	[VAX89A2.NIELAND.TAPES]
Ease of installation: 		varied
Documentation: 			varied	
Intended Audience: 		System Managers, Tape users
Ease of use: 			varied
Usefulness: 			5
Sources Included: 		Y (C, Fortran, Macro)
Objects Supplied: 		Y

This subdirectory branch includes several tape reading utilities.
Utilities are included to deal with the following tape formats: Tar,
EBCDIC, Honeywell GCOS BCD, BRU, RT-11, PIP-10, ANSID, VB. Several
tape copy programs are included as well.

Some of these utilities are amazing. Quality and documentations are
varied but these are must-haves for most shops.

Submission Subdirectory:	[VAX89A2.NIELAND.term_lock]
Ease of installation: 		4
Documentation: 			2
Intended Audience: 		General Users
Ease of use: 			5
Usefulness: 			4
Sources Included: 		Partial (Fortran)
Objects Supplied: 		Y

Termlock is a terminal locking program. I.E., one that prevents use of
your terminal until you supply it with a valid password.

Termlock is one of the nicest programs I've seen of its kind. It
doesn't need to prompt you for an initial password because it uses
your normal password(s) from the UAF.

Submission Subdirectory:	[VAX89A2.NIELAND.uuencode]
Ease of installation: 		3
Documentation: 			2
Intended Audience: 		General Users
Ease of use: 			3
Usefulness: 			2
Sources Included: 		Y (C)
Objects Supplied: 		Y

This is an implementation of UUENCODE/UUDECODE for VMS.

This can be used to transfer binary files suing MAIL.  It does not save file 
attributes.  It is a direct port of the UNIX code and is compatible with the 
UNIX versions.


Submission Subdirectory:	[VAX89A2.NSWC]Modify
Ease of Installation: 		2
Documentation: 			4
Intended Audience: 		Programmers
Ease of Use: 			3
Usefulness: 			5
Sources Included: 		yes - Fortran
Objects Supplied: 		no

Description:
    A program that will process a wildcarded list of files, performing 
    string substitutions.

Observations:
    Unfortunately, this was linked under VMS V5.1 - I'm running V4.7 
    (it's a long story...), and so had to rebuild it so I could try it
    out... and I don't happen to have the Fall 87 VAX sig tape to get
    the library NSWC1LIB.OLB which it links with.

    From the Help file, this looks like a great little program - how often
    have you had to change a variable name in a bunch of related files? - 
    or modify control sequences in a print file (see my comments about
    [VAX89A.NSWC.RNO...]), I just wish I could have tried it out!


Submission Subdirectory:	[VAX89A2.NSWC]Reformat
Ease of Installation: 		2
Documentation: 			4
Intended Audience: 		Programmers
Ease of Use: 			3
Usefulness: 			5
Sources Included: 		yes - Fortran
Objects Supplied: 		no

Description:
    A program to copy a file, changing its attributes.

Observations:
    Unfortunately, this was linked under VMS V5.1 - I'm running V4.7 
    (it's a long story...), and so had to rebuild it so I could try it
    out... and I don't happen to have the Fall 87 VAX sig tape to get
    the library NSWC1LIB.OLB which it links with.

    This is another one that I could (will when I get a runnable version) use
    frequently - I seem to constantly be playing the fun little game of
    'the file contents are right, why won't the program read it?', where
    the program turns out to be bigoted against the file attributes of
    the file in question.  


Submission Subdirectory:	[VAX89A2.NSWC.RNO...]
Ease of Installation: 		1..5
Documentation: 			1..5
Intended Audience: 		General,Programmers,System Managers, etc
Ease of Use: 			1..5
Usefulness: 			1..5
Sources Included: 		yes - Macro and Fortran
Objects Supplied: 		for Fortran files, not for Macro files

Description:
    A much-extended derivative of Bonner Labs Runoff.

Observations:
    The positive side:
	1) Comes with .CLD and .HLP files for the DCL interface.
	2) It contains many capabilities that DSR does not - the ability to 
	    reference DCL symbols to obtain values, the ability to do
	    symbolic references to chapter, page, and other numbers 
	    (including forward references), macro capability, and the 
	    ability to define and incorporate escape sequences to 
	    control your printer.
	3) There are two utilities supplied with it to support two-column
	    indexes, and the use of change bars.

    The negatives:
	1) A quick trial showed that it is not compatible with DSR - there
	    are commands defined in DSR that NSWC RNO fails to understand.
	2) Only partial documentation is supplied.
	3) The documentation supplied is RNO output files - for an
	    unknown printer with embedded escape sequences.  It is not 
	    printable on a conventional line printer, and would take
	    a massive effort to edit so that it could be.
	


Submission Subdirectory:	[VAX89A2.PAVLIN]
Ease Of Installation:		4
Documentation:			3
Intended Audience:		System Programmer
Ease of Use:			3
Usefulness:			5
Sources Included:		Yes, FORTRAN & MACRO
Objects Supplied:		Yes

The [.PAVLIN] submission includes two utilities, DISM32 and ETHERMON. DISM32 is
a disassembler of native VMS images. It has a large table of symbolic
addresses, and disassembled most of the images I fed it. Macro-32 code produced
is fairly readable, although occasionally it reconstituted .ASCxx strings as
multiple .BYTE instructions, making reading difficult. Documentation is good.
Utility of the code depends on your needs. Good for system hackers. ETHERMON
appears to be a good utility from the description. Documentation is missing,
although help files are provided. The purpose of ethermon is to log traffic
that appears on the ethernet. Most ethernet protocols are understood, and it
appears that there is a filtering mechanism so that the user need not pore
over page after page of unwanted ethernet packets. I was not able to get
ethermon running due to insufficient resources. Should be a good utility to
track ethernet [non-]performance.


Submission Subdirectory:	[VAX89A2.qmaster]
Ease of installation: 		4
Documentation: 			4
Intended Audience: 		Operators
Ease of use: 			4
Usefulness: 			4
Sources Included: 		Y (BASIC)
Objects Supplied: 		Y

Qmaster is a screen-oriented program to manipulate VMS print and batch
queues. You can do the following: find out information about an entry,
release an entry, hold an entry, delete an entry, change the form type
of an entry, change the queue priority of an entry.

Qmaster, with a little work, could become a SIG Tape classic. It is
very easy to use, especially with an LK201 keyboard (Select, Do, etc.)
Select a queue and its entries pop up. Select an entry and a list of
options pop up. Select your option and presto. There are a few small
bugs but they should be easy to get rid of.


Submission Subdirectory:	[VAX89A2.RPI]
Ease Of Installation:		4
Documentation:			4
Intended Audience:		System Manager
Ease of Use:			4
Usefulness:			3
Sources Included:		Yes, BLISS, MACRO, PL/I
Objects Supplied:		Yes

The [.RPI] submission contains eight subdirectories, containing CHECKALLOC,
CLAIM, MPMGR, NSQUERY, SDFILTER, SETUP, and WATCHER. CHECKALLOC compares disk
quotas against available space, and lists largest users. CLAIM allows users to
become the owner of files in their directories that they do not own. MPMGR
builds MODPARAMS.DAT files for the entire cluster. NSQUERY interrogates
Internet domain name servers. SDFILTER gives more control over VWS screen
dumps. SETUP centralizes the login setup of applications software. WATCHER is
a flexible idle job killer. Documentation is good.

Submission Subdirectory:	[VAX89A2.SCHAFFRATH]
Ease Of Installation:		3
Documentation:			2
Intended Audience:		System Manager
Ease of Use:			3
Usefulness:			2
Sources Included:		Yes, BASIC, MACRO-32
Objects Supplied:		No

The [.SCHAFFRATH] submission contains eight subdirectories, containing various
odds and ends written as system management aids. There are various .COM
procedures for checking system status, an idle job killer, some macro that
pokes into system security space, a PAK formatter, a screen-oriented mail
facility, routines to allow one to bash PCB's, and stuff to control and format
UAF records. An interesting collection of odds and ends. Would be excellent for
a beginning system manager to learn about various management functions and
abilities. WARNING: This submission does not contain executables or objects.
Most items require a BASIC compiler.


Submission Subdirectory: 	[VAX89A2.SHAPIRO]
Ease of Installation:		5
Documentation:			5
Intended Audience:		General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, TPU
Objects Supplied:		N/A

                       Extensible VAX Editor - EDT Extension
                                     [ EVEDT ]

                            (EVEDT Version V4.0-110188)
                   (For use with VMS 5.x and TPU 2.x and above)

         The NEW EVEDT Editor. More than just an enhanced EVE editor.

                All major EDT keypad functions are IDENTICAL !

EVEDT ADVANTAGES over EDT include:

 1)  No more waiting for the cursor to catch up with you
 2)  Split Screens
 3)  Insert AND Overstrike modes
 4)  Rectangular cut & paste
 5)  Keystroke Learning
 6)  Command Repeat
 7)  Spawn to a subprocess from within the editor
 8)  Execute a DCL command from within the editor
 9)  Context sensitive constructs inserted with a single key sequence
10)  Print a selected range from within a buffer being edited
11)  Translate non-printable or multinational characters for printing
12)  Automatically set matching characters for (),<>,[], etc.
13)  And much, much more!

     This is a real nice EDT-like editor with a lot of handy extensions.  It
combines the features of EDT along with some of the better features of EVE.
Included are good command repeat, rectangular cut & paste, DCL spawn, and
more.  The only catch is that you have to be running VMS V5.0 and TPU V2.0
which is included with VMS V5.0.  All you V4.x users are out of luck on this
one.




Submission Subdirectory: 	[VAX89A2.SPC.COOKIE]
Ease of Installation:		5
Documentation:			2
Intended Audience:		General
Ease of use:			5
Usefulness:			2
Sources included:		Yes, C
Objects Supplied:		Yes

A version of the Cookie program which runs on VAXen under VMS, PDP-11's un-
der RSTS/E and RT-11 (with DECUS C) and IBM PC's (with either Microsoft's C
or Borland's Turbo C compilers).

     A favorite of mine with little or no redeeming social value.  At login
or logout time have COOKIE type out a fortune for you.  Sources included
for a number of operating systems.


Submission Subdirectory: 	[VAX89A2.SPC.FINGER]
Ease of Installation:		4
Documentation:			5
Intended Audience:		System Managers, General
Ease of use:			5
Usefulness:			5
Sources included:		Yes, FORTRAN, MACRO
Objects Supplied:		Yes, object library

     An update to the VMS FINGER utility. This is version V51_1_13 of FINGER.
(Version 51_1_17 is on the final tape.)

     I have been using the FINGER program at this site for some time now.
FINGER allows a user on one node to look at (FINGER) a user on an other node.
A user may also FINGER the system to find out such things as what users are
logged on, operating system version, how long it has been up, and so on.
When a user sends a mail file to an other user, the first user may FINGER
the second to see if he has read the mail message.  Very handy utility to
look at other systems without being logged on.


Submission subdirectory:	[VAX89A2.SPCTELE]
Ease of Installation:  		3
Documentation:  		4
Intended Audience:  		General
Ease of Use:  			3
Usefulness:  			3
Sources/objects Included:  	yes, various languages

Description:

MAILUAF.COM:  modified sys$examples:mailuaf.com to change users 
mail counters and personal name, VMS 4.x only.

Uptime Logger makes a log of system uptime, reason for crash.  At the end
of the month, a report is produced showing number of crashes and shutdowns,
average time to reboot on both and amount of business downtime. 

MON_REPORT:  Works off DEC software in sys$examples MONITOR.COM, MONSUM.COM
and SUBMON.COM to create monitor stats for your machine.  Data is then
automatically plotted weekly using DISPLAA. (if you don't have DISPLAA,
this will at least gather and massage the raw data into form.) 

SUBSCRIB:  Creates listing of who has how many blocks on each disk to see if 
disk is over-subscribed and why.

VWS_GRAPHICS:  Neat graphic tricks for Vax Workstations.


Comments:
These programs do work as described.  A couple are somewhat ho-hum, but 
useful in the right circumstances.  The VWS graphics are nice.




