I N F O - V A X C O L L E C T I O N At the Fall 88 Symposium I volunteered to keep an archive of useful goodies posted on INFO-VAX (an internet mailing list.) I've built everything but the things that have `include-type' files missing so those without the needed compilers won't miss out on anything. I intentionally omitted material I KNEW would be submitted by their authors (Meadows, Everhart, et al...) The comments below come mostly from the postings themselves. Rand P. Hall Director, Academic Computing Merrimack College 300 Turnpike St. N. Andover, MA 01845 [.boss] BOSS is an interactive job controller. It lets you run several interactive jobs simultaneously. [.cvtime] A time conversion command procedure. [.exec_batch] 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.) [.hayes_dte] 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. [.KEPT_SUBPRC] An implementation of subprocess caching. [.mail_alias] Joel Snyder brought up an interesting point regarding LNM$FILE_DEV usage for mail aliases. So, i decided that i would write the program he is afraid to show (because of it's DCL grossness) and here it is... It uses a /usr/lib/aliases style configuration file referenced by MAIL_ALIASES (default SYS$LOGIN:.DAT) and keeps track of the file to reload it if it changes (either by name or revision) The Logicals are stored in an alternate table that is connected in /user mode in LNM$FILE_DEV prior to invoking the mail command. This also supports the command line interface to MAIL ($ Mail [file] [to]) The format for MAIL_ALIASES.DAT is [alias : equivalence ] [! comments] E.G. ! Mail Aliases File People: Manny,Moe,Jack ! 3 people Everyone: People, @other_guys, ! all the people here Over_There: REMNOD::Hey_You ! remote node person [.mt_bot] I believe batch is the best way to deal with running backup and recieving "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. [.password_swap] This module is a companion to POP_PASSWORD. Its purpose 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. [.pgflquo_sizer] [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. The comment [.poke_boottime] 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 kernal mode routine to poke the cell in system space. This program also serves as a nice template for writing other system space poking routines. [.profiler] A poorman's PCA. [.ptype] Command file to aid in typing files on remote printers (DEC compat. terms.) [.setportname] Here's a little [Ed. neat] 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. [.setuser] 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. [.showdef] Here is a program to find the default directory specification for any process (i.e., SHOW DEFAULT/ID=pid). [.showdev] ShowDev - A command file to show all information about a device. [.smp_photo] Photo with SMP support. 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. [.strip] options: -f remove embedded carriage returns and linefeeds like and when using EDT. (default option) -t remove trailing spaces -l remove leading spaces -a convert to 7 bit ascii -u convert to uppercase -d convert to lowercase -e[#] expand tabs to # spaces (default is 7 spaces) -c[#] convert # contigious spaces to a tab (default is 7 spaces) -k[#] Insert a newline every # (def is 80) characters. -m[#] Truncate every line after # (80) characters. [.uaf_profile] 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. [.undel] 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. [.vms_share] Packages a series of files into a format suitable for transmission over electronic mail networks which may mangle the text. [.what] A FAST Cluster and network-wide SHOW USERS (and Much more) type command. [.zoo] Zoo is used to create and maintain collections of files in compressed form. It uses a Lempel-Ziv compression algorithm that gives space savings in the range of 20% to 80% depending on the type of file data. Zoo can store and selectively extract multiple generations of the same file.