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 , 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.