Fall 1985 VAX SIG Submissions from: ---------------------------------- Academic Computing Center University of Wisconsin - River Falls River Falls, Wi 54022 This submission contains a variety of programs and command procedures developed by staff and students. All are provided "as is" and may be used, modified and copied as you wish. All of these items are currently in use under VMS 4.2 but the Univ. of Wis-River Falls assumes no responsibility for the use or reliability of any of this software. Many of the command procedures, programs and help text may reference site-dependent logical names. The logical names, and what they point to, are: ACC_USERUTILITY Location of all utility programs that general users would want to run. These would be those written by us or obtained from other DECUS tapes. Nothing in this area would be designed for operators or system managers. ACC_SYSTEMUTILITY Similar to ACC_USERUTILITY but contains all those programs used by operators and the system manager. ACC_USERCOM Command procedures which can be used by general users. ACC_SYSTEMCOM Command procedures which would be used by operators or the system manager. ACC_FILES Location of data files used by programs and command procedures found in any of the other locations. [.ACCESS] A software package to create and remove usernames. It is especially designed for an academic environment where usernames for students are created and removed frequently. We deal with 800-1000 individual usernames which must be created and removed every 3 months. The Access software allows the computing center to create usernames for students registered for a course and then gives the course instructors control over adding and dropping students. The software is very site-dependent but I think it could be modified with minimal effort for other sites. The software does rely upon the Ingres data base software marketed by Relational Technology Inc. but someone could modify the programs to use any other data base or file structure available. [.CALENDAR] A program which can print calendars for any month and year. The calendar will fit on a single line printer page. You can provide a data file with up to 2 lines of 15 characters each of text information for any date. This text will be printed on the calendar. The calendar pages are also sized to fit on 8.5" x 11" paper if you have a letter quality printer capable of printing at 12 cpi. [.EBS] written by Allen Miller, student programmer Emergency Broadcast System. This program is an alternative to the REPLY command and other such programs which have appeared on past DECUS tapes. We found one very annoying problem with all these commands/programs. The user could prevent the delivery of the message by the terminal broadcast settings or if the terminal was in passall mode (which happens with one of our favorite editors). EBS sends a message to the specified usernames and/or terminals using $QIO so the message will always be delivered (unless terminal has been paused with ctrl-S). It also has a /SELF qualifier that can be used by anyone to send themself a message - useful for notifications from batch jobs. [.FRAGMENTATION] Prints a chart showing the fragmentation levels of a disk. This program reads [000000]BITMAP.SYS. It prints out the size and count of all free space found on a disk. [.LISTER] A program listing program. The main feature of this program is that it will place titles at the top of each page of the listing. By default, the title includes the filespec and the date and time. You can specify the title within the program by enclosing %TITLE command within host-language comment delimiters. Most of the source programs in our submission use this program. It makes it easy to find procedures or program sections in large printouts. The program recognizes host-language comments for Basic, Cobol, Fortran, Macro and Pascal as well as DCL. It has only been used extensively with Pascal and DCL so I can't guarantee anything for the other languages (sorry - we aren't a Cobol shop). [.PEN] Environment files for Pascal. There are many files. Some define DEC run-time library routines, others define routines in our own library, UPL. These environment files are inherited by various programs in this submission. On our system, these files are located in the area pointed to by the logical name SYS$LIBRARY_PASCAL:. [.PRIV] written by Allen Miller Allows a user to set privileges based upon the authorized privileges of your master process. While SET PROCESS/PRIV= works for a main process to enable an authorized privilege not currently held, it doesn't work in subprocesses if your main process did not have an authorized privilege set when the subprocess was spawned. PRIV will let you set the privilege from the subprocess. Requires CMKRNL privilege to run. It should be safe to install with CMKRNL because PRIV makes sure that the privilege a user is requesting is authorized. Use at own risk however! This is a new program for us new and it has not as yet been thoroughly examined from a security stand-point (i.e. redirecting logical names, etc.). [.PROSE] A text formatting program similar to Runoff. We used Prose on a different computer system before we got our VAX. When we were converting we looked at Runoff and discovered that Runoff set limitations on page layouts and many other things which we weren't used to dealing with, so we converted Prose to run on the VAX (it is written in Pascal). I won't claim that this program is for everyone but all the documentation on other programs that are on this submission are set up for use with PROSE so I included it also. PROSE can be frustrating at times; you have to be able to put up with its unfriendlyness. This one program can put the concept of user-friendly back 10 years. We use it in the computing center and students use it for resumes and term papers. The source to Prose is a mess; someday we hope to clean it up. I haven't included it because you really don't want to look at it. If you are interested in using Prose and would like the source contact me directly and maybe something can be worked out. The EXE as included here should be sufficient to print any of our documentation files. PROSE source files have a .PSI type and output files have a .PSO type. [.QUOTA] Reads the disk quota file on a disk using $QIO requests and prints a formatted list showing disk usage information. We use this as a system manager's program to replace the DISKQUOTA SHOW command. It can produced a list in one of several formats and it SORTS the information by identifier name or uic value. One of the output formats will create a listing file in the same format as DISKQUOTA did under VMS 3.x - we needed this to make monthly accounting reports work since they relied upon a DISKQUOTA SHOW output file. Under VMS 4.x, the format of the listing file wasn't as consistent, we also needed the uic numeric value and DISKQUOTA always shows the uic in alpha form. [.RESERVE] A terminal reservation package. We operate a computer terminal lab for students in any course to use. Students can reserve up to 2 half-hour blocks of time a day on any of the terminals in this lab. RESERVE is designed to run from a dedicated terminal in the outer area of our lab. We run it for reserving 18 terminals but it was designed to handle 32. RESERVE works with direct-access and indexed files to keep the reservation data. The Ingres data base software from Relational Technology Inc. includes screen form routines and some of the support programs use these to set-up and initialize the other data files. It would require some modifications by others wishing to use it if you do not have Ingres. All the programs are written in Pascal. [.SCRUNCH] All the command procedures we develop and use on a system-wide basis are heavily commented. This unfortunately slows down execution. SCRUNCH takes as input the file containing the commented command procedure and generates an output file with all comments removed and whitespace and multiple lines condensed. SCRUNCH itself is not highly commented nor elegant because it started out as a test program which has since been inserted into a much larger software package. But it does work. Make sure you keep your original source file around for modifications though! SCRUNCH follows the rules of DCL: if you start a symbol substitution with ', it expects to find a closing ' mark, quotes must be terminated on WRITE commands, etc. If you take advantage of short-cuts in DCL, SCRUNCH may not work properly. [.SETFEEDER] A program to set-up a DIABLO 1630 letter quality printer for use with a cut-sheet feeder. This program sends escape sequences to the terminal port to which the DIABLO is connected. It handles setting page length, margins and cpi. [.SGO] written by Anton Rang, James Miller, students Game of GO. Very GOOD implementation; difficult to beat. Uses SMG$ routines. [.SYSCOM] Command procedures designed for operators or system managers. PRIVCHECK Determines if the caller has the needed privileges. If caller has SETPRV, PRIVCHECK will obtain the needed privileges. This is used by other procedures. WARN Sends warning messages to all users at recurring intervals to inform them of pending backup. This procedure uses the EBS program. It also uses the TIME program from an earlier DECUS tape. This is set up to run as a batch job. [.UPL] User Procedure Library. Routines written as run-time library routines for use in other programs. There are many routines included here, many of which are used by other programs in this submission. We have this set up as a shareable library on our system. There is also a user system services file named ACCUSS which contains two routines needed by EBS. [.USERCOM] Command procedures which can be used by any user; they require no special privileges. EBSALARM, EBSALARM2 written by Anton Rang, student Alarm clock to run as a subprocess. Students use this to remind them when it is time to go to class. Uses the EBS program. INUSE modified by Anton Rang, Harlan Bloom, students Modification of a procedure found in an earlier DECUS. This locks a terminal and displays an inuse message on the screen so that the user can temporarily walk away without fearing for the safety of his files. PROTECT written by Harlan Bloom, student Simplifies use of the SET PROTECTION command. RECOMPILE, RELINK written by Anton Rang Procedures to compile and link portions of a software package only if the source files have changed since the latest object or exe files. RESET written by Anton Rang Simple command procedure that can be used to prevent you from accidentally logging off if you have a subprocess running, such as an editor spawned. SYMBOL_EXTRACT System symbols and message symbols are a great invention. It would be even nicer if they were easier to incorporate into non-macro programs. This procedure provides a way to take such symbols and create a file that can be included by Fortran or Pascal programs. The procedure will even generate either a CONST type include file or a VAR [EXTERNAL,VALUE] type include file for use with Pascal 3.0. This procedure needs SYMBOL_LIST. SYMBOL_LIST Provides a way to list the values associated with any group of symbols, such as $SSDEF, $LIBDEF, etc. It can be called to list user symbols generated from message files also. This routine is also called by SYMBOL_EXTRACT. Also, the program PROSE is used by this procedure to create a nicely formatted symbol listing. TESTFILE Used by some of the other procedures. Returns a status code indicating if a specified file exists or not. USERS written by Anton Rang Program usually run when you log on to tell you who else is also on the system. The usernames you are interested in are contained in a file. XCOMPILE written by Harlan Bloom, student. Performs a compile, link and run. Designed to simplify the program development process for students. This procedure will handle any of the languages: Basic, Cobol, Fortran, Macro and Pascal. It also uses XRUN. XDELETE written by Anton Rang Makes it easy to delete files. You can enter XDELETE TEST and it will get rid of TEST.*;*. XRUN written by Harlan Bloom, student. Runs a user-specified program, directing the output to a disk file. This disk file can then be printed on the line printer. This procedure was designed to make it easy for students to get a hard copy run of their assignments. It doesn't do anything super fancy, just all the usual defines of logical names. The program TRANSFORM from an earlier DECUS is used by this procedure; its purpose is to convert from one type of file carriage control to another. [.VAXGUIDE] This is a copy of our user's guide. It will obviously contain information specific to our site but when we first got our VAX we looked around for something like this as a base from which to start so I thought someone else might benefit from ours. It is designed to be used with PROSE. I have included both the source and the result formatted for a line printer. If you have any questions, problems or comments about any of these submissions you can contact: Marlys A. Nelson Academic Computing Center University of Wisconsin - River Falls River Falls, Wi 54022 (715) 425-3583 For generally simple questions or problems, your best bet is to call. I am usually available to provide quick assistance over the phone. No support of any of these items is promised however. We are a very small operation. Responding to written communications never seems to make it very high on the list of fires to fight but you can try if you want.