The following are the DECUS Canada submisions VD3:[VAX91B.CANADA.AKCOUNT]AAAREADME.FIRST;1 AKCOUNT VAX/VMS V4.x ACCOUNTING SOFTWARE Version: August 1986 Author: K. Trumbley and M. Serrer, National Research Council of Canada, Ottawa, Ontario, Canada. Operating System: VAX/VMS V4.4 Source Language: VAX-11 FORTRAN and VAX-11 MACRO The AKCOUNT software has been designed to provide a VAX computer installation running V4.x of VMS operating system software with all the necessary accounting tools to charge users for resources used. The package includes all the source code, associated help files, command procedures and installation notes. The software in SYSTEMS LABORATORY of NRC has been set up as a batch job to execute every Friday night. When the job runs, the information from the system accounting file, plus listing files from DISKQUOTA and AUTHORIZE are merged together and written to a file "SYS$ACCOUNT:AKCOUNT.TOT". A report generator reads this file and creates detailed or summary type printouts. The latest addition to the AKCOUNT software package is a repair utility. This utility enables the system manager to repair, (both automatically and interactively) and edit records in the AKCOUNT.TOT file. This version of the AKCOUNT software has been upgraded from the version submitted to the DECUS Library, (Date submitted to DECUS -- April 1985), to work on VMS version 4.x systems. Documentation on magnetic media. Ken Trumbley, Martin Serrer (613) 993-9262 National Research Council, Division of Mechanical Engineering, Systems Laboratory, M3, Montreal Road, Ottawa, Ontario K1A 0R6 VD3:[VAX91B.CANADA.HP_CALC]AAAREADME.FIRST;1 A scientific calculator for the VAXStation!! HP_CALCULATOR is a full-functioned scientific calculator for use on any VAXStation running VMS. It has been tested on a VAXStation-II running VMS version 4.5 and VWS version 3.1, and also on a (monochrome) VAXStation-2000. The program was written in VAX "C", but the executable file should run on any VMS system because the run-time library is now distributed to everyone. The program makes a deliberate attempt to mimic the operation of the HP10c pocket calculator (exceptions noted below). This was done so that ANYONE who was familiar with the real calculator could make use of the VAXStation version without any manual or training. Attempts to add extra keys, alphanumeric display, etc. were avoided. If these features are what you require, then use BASIC. The current version does not support keystroke programming. It should be easy to add this in the future, but I am supposed to do some real work as well as 'coffee break' programming. If a key associated with programming is struck (by mistake or because you don't believe me) the calculator program will do nothing more dangerous then terminate numeric data entry, or enable stack lift, or reset the error display, or so on. Definitions of the terms found in the last sentence can be found in the manual for the HP10c. Now for the good stuff. To use the calculator you just have to type RUN HP_CALCULATOR. The program will create a window which contains the calculator keys, and another window which will be used as the calculator display. Two windows are used so that you can position them independently anywhere on the screen (also it was also easier to program). The VAXStation keyboard is attached the the calculator (more on this in a moment), the register display(s) are reset, and the program is ready to use. Dan F. Johnston Div. of Mechanical Engineering, Bldg M-3 National Research Council of Canada Montreal Road Campus Ottawa, Ontario CANADA K1A 0R6 VD3:[VAX91B.CANADA.LEADER91]AAAREADME.FIRST;1 ========> [LEADER91.BYTLUG.QWATCH]AAAREADME.TXT;1 <======== This program is used to watch a process' quota usage. When a valid process id specified, the system will display that process' quotas along with a few other details such as the process state, I/O counts and the image currently being run. The program can be built using the MMS description file DESCRIP.MMS. A C compiler is required. [DECUS Canada Librarian's note: On the VAXstation where I put together these submissions, there was no C compiler. So, if you wish to run this program, but don't have a C compiler, please ask me. I should be able to send you a C-compiled .OBJ or a .EXE file from work. My address is: A. Mahendra Rajah DECUS Canada VAX Tape Librarian Dept of Computing Services University of Regina Regina, Sask. Phone: (306) 585-4496 e-mail: Mahendra @ Meena.CC.URegina.CA (on Internet) ] [Librarian note: I have a C compiler and have supplied compiled files for QWatch. Glenn Everhart.] ========> [LEADER91.DDERRICK.COMS]AAAREADME.TXT;1 <======== This directory contains several useful utilities in DCL: ALLMAIL.COM - Runs ALLMAIL.EXE to check for pending ALL-IN-1 mail messages. AUTHORIZE.COM - Changes default to Sys$System, runs Authorize and changes default back to where we started. BIGDIFF.COM - DIFFERENCEs between all files in this directory and another directory specified in P1. DAYLIGHT_SAVINGS.COM - sets the time for daylight savings and back again. DISKS.COM - Shows or watches disk space. DQ.COM - shows disk quota with totals. EPIPE.COM - pipe with existing filespec list IMS.COM - Manages the different inventory files. It looks almost like All-In-1. LPIPE.COM - linear pipe MAKEMODIFY.COM - makes a command file to modify users that have been added to the UAF MAKEREMOVE.COM - makes a command file to remove users from the UAF MEMORY.COM - show or watch the "interesting" memory stats MENULOGIN.COM - Menu for interactive logins. NODE.COM - converts various forms of decnet node numbers PHN.COM - keep track of long distance phone calls PIPE.COM - command p1 applied to all files in p2 PIPES.COM - pipe by search (not directory) PNAME.FOR - subroutine returns the username and the length of the username of the current process PRIV.COM - set command promt to include new privs RECEIVEPRINT.COM - network print receiver (see sendprint) SAME.COM - This is a difference command that works on sorted files. It will list two files side by side showing the records that are the same. It gets used a lot in merging UAFs to form a cluster. Carefull!! it doesn't always get the last record right SENDPRINT.COM - poorman's DQS. Used with receiveprint.com SORT_US.COM - show users sorted by node TAPES.COM - watch tape drives; like disks.com WHERE.COM - where are we (or another PID) WORKSET.COM - Displays working set information. ZERODISK.COM - fully zero outs a disk that is being traded in ========> [LEADER91.DDERRICK.TPU.ADAM]AAAREADME.TXT;2 <======== ADAM stands for Assistant for Definition and Modification and is an extension to the VMS EVE editor. Its purpose is to make developing programs in to the OCRS standard an easier undertaking. Although several of the functions are designed expressly for the FORTRAN programming environment, ADAM has been developed with the ability to apply all but its variable and subroutine definition functions to DCL and MACRO code as well. ========> [LEADER91.GOLDLUG]AAAREADME.TXT;5 <======== Program : COOKIE.MAR This program produces a random fortune cookie message. The messages are kept in an indexed file. COOKIE.MAR calls a program called RAND which generates a random number between 1 and the maximum number of messages in the COOKIE.DAT file. The random number is used as a key to the indexed file and the record(s) with this key are displayed on the terminal. The COOKIE.DAT file is an indexed file with a maximum record length of 84. The first 4 bytes are the key and are of the format 0000 to 9999. The last 80 bytes are the fortune cookie message. A sample message might look like: 0020 This is a two line 0020 fortune cookie message. Program : RAND.MAR This program uses the date and time as a seed to generate a random number between the two values supplied to it. It is used by COOKIE.MAR. Program : PASSCHK.MAR This program verifies whether a password supplied by a user is valid. It is passed a username and password. It calls SYS$GETUAI to get the hashed password, the hashing algorithm, and the salt for that particular username. It then hashes the supplied password using SYS$HASH_PASSWORD, passing it the algorithm and salt. The two hashed passwords are compared (the one from SYS$GETUAI and the one from SYS$HASH_PWD). If they are equal the supplied password is valid. A value of 1 (success) or 2 (failure) is returned. Program : TESTPWD.COB This is a sample program which calls PASSCHK to verify a password. When the program is run a username and password are prompted for. They are converted to upper case and passed to PASSCHK. The return code is checked and a message is displayed indicating whether the password is valid or not. INSTALL_SPECIAL.COM & MODEM.COM There are two unique parts to INSTALL_SPECIAL.COM. It is recommended that if you are going to use these sections of code, that they be run in your SYSTARTUP.COM just so that you can get consistent LTA numbers. The first shows how to install an outdialing modem (DF224) onto the network. It assumes you are installing it onto port LTA9:, and that on the Terminal Server, you have set the port name to 623_5803. Once this command procedure has been run, you access the modem using MODEM.COM which checks whether or not someone is dialed out or in on the modem, and/or allows you to use the modem appropriately. The second portion of INSTALL_SPECIAL.COM shows how to attach an InterMEC Bar Code printer onto your system. It assumes that you are installing onto port LTA6:, and that the Terminal Server knows this port as BAR_TONY. Once it's there, you have to issue a print command, specifying which print queue, and forms. You are on your own for the internal formats of the Bar Code Tickets. PRINT_QUEUE_MANAGER.COM Simple command procedure which allows our operations staff to change forms on printers. It takes care of all the more detailed internals. We find it convenient to have all our operators define a symbol in their LOGIN.COM specifying the name of the printer which we mount various type of forms on most of the time. In our case this is CAM_PRINTER_2. ABNORMAL_CONDITIONS.COM Updated Version. Used to report problems, and then go back in and modify the report as new information becomes available. Some minor changes have been made over last years version. Assumptions are that you have a logical defined pointing to where ACRs are to live; and you should have at least a null file called ACR:ACR_SUMMARY.FILE, and the procedure will create another called ACR:ACR_SEQUENCE.FILE. After that, these two are updated by the routine. ========> [LEADER91.NAPLUG.BACKUP]AAAREADME.TXT;4 <======== The included files comprise a menu interface for a captive BACKUP account to be used for unattended system backups. The operator has the ability to initialize backup media, and perform daily, weekly or monthly backups which will be run in batch at the end of the day, without operator intervention. The current configuration will perform daily backups to TK50(TK70) and weekly and monthly backups will go to an Exabyte. The primary prerequisite for this application is the creation of a priviledged BACKUP account and modification of the command procedures to suit your own installation. This is far from perfect, but it should provide some ideas. I would love to see any improvements which might be made. John Hale NAPLUG ========> [LEADER91.NAPLUG.OPERATOR]AAAREADME.TXT;2 <======== This saveset comprises a menu driven interface to normal(for us :-)) operator functions. These include the management of user processes, queues, 3780 lines, and plotting. You should probably ignore the plotter and comm functions, but the rest might prove to be useful (or not :-( ). Most of the command procedures are documented and hopefully the code is fairly readable. Thanks go out to Jeff Daley and Ron Rennick who were responsible for dreaming up and writing this utility and it's cousin the backup utility. John Hale NAPLUG ========> [LEADER91.OMNILUG]AAAREADME.TXT;1 <======== Paul T's DECUS Library release - VAX/VMS software September 23, 1991 In seperate directories you will find the following programs, in both executables and source. They were developed from scratch, with minor contributions from outside sources ( books ), which are credited in the source code. The programs were developed on VAX's that belonged to the companies I worked for but on my time, and so I'm sure no one would make any claim to them. I release them for any use, asking only that credit be given were it is due, and changes should be noted. ZAPPER was developed in VAX BASIC, and TETRIS in VAX C. I haven't run ZAPPER much over the last couple of years, but I'm confident it is reliable. The documenation for it is fairly clear. TETRIS is pretty simple and has been used by a number of different users, and no one has reported any bugs, so I'm quite confident that it is okay. Info about me is: Paul Thomsen School Board Information Technology Branch, Ontario Ministry of Education 8th Floor - 480 University Avenue Toronto, Ontario M5G 1V2 (416) 971-4765 (w) (416) 821-9872 (h) (416) 971-6511 (fax) ========> [LEADER91.TRILUG.DIR_STACKS]AAAREADME.TXT;1 <======== Program ID: DIR_STACKS D R A F T Operating System: VAX/VMS V5.x Source Language : Cobol v3.4-49 Key Words: DIRECTORY, STACK, UTILITY, COBOL Submitted by: Jim McDowall,Board of Education for the City of Windsor 451 Park Street West P.O. Box 210 Windsor, Ontario., Canada N9A 6K1 (519)255.3348 Abstract: DIR_STACKS is used to change a process' device & directory default. The program will maintain a stack of defaults set and allow the user to recall this stack and set default to any of the values stored. A maximum of 50 stack positions can be maintained. The user can control the the number of stack positions. It will not allow default setting to any device or directory which does NOT exist or that the process does not have access to because of privilege or protection settings. A process can set default to any user's SYS$LOGIN directory providing the process has the correct privilege and access to said directory. System managers can create users' SYS$LOGIN directorys if one does not exists without having to know the dev:[dir] specification. Knowing the username is all that is needed. Print DIR_SATCKS.DOC for more details and procedure to install DIR_STACKS. ========> [LEADER91.TRILUG.SCREENCTL]AAAREADME.TXT;2 <======== Program ID : SCREENCTL.EXE Written by : Jim McDowall (519)255.3348 Board of Education for the City of Windsor 451 PArk St. W. Box 210 Windsor, Ontario N9A 6K1 Function :This program is used to perform a range of terminal screen attributes and characteristics functions. Such things as drawing lines, boxes, clearing parts or all of the screen, getting user input, and turning on and off the local echo. Listed on the following pages are the various functions performed by this program. Being an executable module, the time required to perform these functions is far less than the time required by a DCL command procedure that does the same task. VD3:[VAX91B.CANADA.LEADER91.BYTLUG]AAAREADME.FIRST;1 This program is used to watch a process' quota usage. When a valid process id specified, the system will display that process' quotas along with a few other details such as the process state, I/O counts and the image currently being run. The program can be built using the MMS description file DESCRIP.MMS. A C compiler is required. [DECUS Canada Librarian's note: On the VAXstation where I put together these submissions, there was no C compiler. So, if you wish to run this program, but don't have a C compiler, please ask me. I should be able to send you a C-compiled .OBJ or a .EXE file from work. My address is: A. Mahendra Rajah DECUS Canada VAX Tape Librarian Dept of Computing Services University of Regina Regina, Sask. Phone: (306) 585-4496 e-mail: Mahendra @ Meena.CC.URegina.CA (on Internet) ] VD3:[VAX91B.CANADA.LEADER91.DDERRICK.COMS]AAAREADME.FIRST;1 This directory contains several useful utilities in DCL: ALLMAIL.COM - Runs ALLMAIL.EXE to check for pending ALL-IN-1 mail messages. AUTHORIZE.COM - Changes default to Sys$System, runs Authorize and changes default back to where we started. BIGDIFF.COM - DIFFERENCEs between all files in this directory and another directory specified in P1. DAYLIGHT_SAVINGS.COM - sets the time for daylight savings and back again. DISKS.COM - Shows or watches disk space. DQ.COM - shows disk quota with totals. EPIPE.COM - pipe with existing filespec list IMS.COM - Manages the different inventory files. It looks almost like All-In-1. LPIPE.COM - linear pipe MAKEMODIFY.COM - makes a command file to modify users that have been added to the UAF MAKEREMOVE.COM - makes a command file to remove users from the UAF MEMORY.COM - show or watch the "interesting" memory stats MENULOGIN.COM - Menu for interactive logins. NODE.COM - converts various forms of decnet node numbers PHN.COM - keep track of long distance phone calls PIPE.COM - command p1 applied to all files in p2 PIPES.COM - pipe by search (not directory) PNAME.FOR - subroutine returns the username and the length of the username of the current process PRIV.COM - set command promt to include new privs RECEIVEPRINT.COM - network print receiver (see sendprint) SAME.COM - This is a difference command that works on sorted files. It will list two files side by side showing the records that are the same. It gets used a lot in merging UAFs to form a cluster. Carefull!! it doesn't always get the last record right SENDPRINT.COM - poorman's DQS. Used with receiveprint.com SORT_US.COM - show users sorted by node TAPES.COM - watch tape drives; like disks.com WHERE.COM - where are we (or another PID) WORKSET.COM - Displays working set information. ZERODISK.COM - fully zero outs a disk that is being traded in VD3:[VAX91B.CANADA.LEADER91.DDERRICK.TPU.ADAM]AAAREADME.FIRST;1 ADAM stands for Assistant for Definition and Modification and is an extension to the VMS EVE editor. Its purpose is to make developing programs in to the OCRS standard an easier undertaking. Although several of the functions are designed expressly for the FORTRAN programming environment, ADAM has been developed with the ability to apply all but its variable and subroutine definition functions to DCL and MACRO code as well. VD3:[VAX91B.CANADA.LEADER91.NAPLUG.BACKUP]AAAREADME.FIRST;1 The included files comprise a menu interface for a captive BACKUP account to be used for unattended system backups. The operator has the ability to initialize backup media, and perform daily, weekly or monthly backups which will be run in batch at the end of the day, without operator intervention. The current configuration will perform daily backups to TK50(TK70) and weekly and monthly backups will go to an Exabyte. The primary prerequisite for this application is the creation of a priviledged BACKUP account and modification of the command procedures to suit your own installation. This is far from perfect, but it should provide some ideas. I would love to see any improvements which might be made. John Hale NAPLUG VD3:[VAX91B.CANADA.LEADER91.NAPLUG.OPERATOR]AAAREADME.FIRST;1 This saveset comprises a menu driven interface to normal(for us :-)) operator functions. These include the management of user processes, queues, 3780 lines, and plotting. You should probably ignore the plotter and comm functions, but the rest might prove to be useful (or not :-( ). Most of the command procedures are documented and hopefully the code is fairly readable. Thanks go out to Jeff Daley and Ron Rennick who were responsible for dreaming up and writing this utility and it's cousin the backup utility. John Hale NAPLUG VD3:[VAX91B.CANADA.OTT91.EARLUG]AAAREADME.FIRST;1 This is a pair co-operating tasks for setting the time of day on an RSX node from the system clock on a VMS system, using DECNET. Of course, most people who want to do this have already figured out how. My excuse, is that I wanted to figure out how too. The VMS side uses non-transparent DECNET. When the RSX system requests a connection, the task on the VMS system rejects the connection request, but returns the time in the 8 words of "reason for rejection" received by the RSX task There is much less overhead involved when no actual connection is created. Of course, since you only do this once in a blue moon, nobody really cares about efficiency, but I wanted to figure out how to do this. I found it difficult to find this information in te VMS manual set (it is there), so perhaps referring to this code will assist others who are attempting something similar. Requirements: The RSX node which makes the request must have an ALIAS defined for MCLOCK to refer to the VMS node running SENDTIME. Assuming that the VMS node was ARTHUR, you would use a command line similar to the following: NCP SET ALIAS MCLOCK DEST ARTHUR Then, simply run GTIM as in: RUN GTIM GTIM exits with success status if it works, otherwise it exits with a status of severe error. If SENDTIME.COM and SENDTIME.EXE are in the default directory of the default DECNET account (usually SYS$SPECIFIC:[DECNET]), then nothing else would be requiired for this to work at boot time. (That is the way that we run it in our shop). If you have proxies enabled on your system, and you desire to run this after the RSX system is running, it will be necessary to either provide a proxy to the account and directory where SENDTIME.* resides, or provide more information in the alias MCLOCK. If you place the SENDTIME.* files in a directory other than that of the default DECNET account, you will have to create a proxy or alias which provides access to the files. Note that at RSX boot time, there is no username, and therefore, a proxy will not work. Rob Brown G. Michaels Consulting Ltd 11211 76th Avenue NW Edmonton, Alberta CANADA T6G 0K2 (403)438-2101 FAX 437-3367 VD3:[VAX91B.CANADA.OTT91.GOLDLUG]AAAREADME.FIRST;1 [.GOLDLUG.BILLING] VAX/VMS Billing System This system suppliments the existing system accounting and disk usage facilities provided by the VAX/VMS operating system. It provides for the charging of connect time, CPU time, and printing to multiple accounts by the same user during a single interactive, batch or remote session. In addition, disk usage is charged by account, rather than by user identification code. Detailed documentation is provided on the functional components and the data structures used by the system. Please view or print BILLING_SYSTEM.MEM for more information. This DECUS Canada Submission is via GOLDlug Users Group, and from Member: Equitable Life Insurance Company of Canada Technical Services Department (519) 886-5110 October 1990 This is provided "AS-IS" with NO warranty expressed or implied. [.GOLDLUG.GRAPHICS] VT320 GRAPHICS CONVERSION ************************* To convert a source file into VT320 graphics set; @GRAPH320 You will be prompted for the source file name and whether you want to view the graphic. The com will run GRAP320.EXE, which is the progam that does the actual conversion. The target file name will be the same as the source file name with a '_320' extension appended. To see this graphic issue a TYPE on the file. The only character in the source file that will be converted is the ampersand (@) character. All other characters are ignored. Sample source and target graphics are provided with this submission. The program is quick, the code isn't fancy (lots of room to be cleaned up), but it works. _____ This DECUS Canada Submission is via GOLDlug Users Group, and from Member: Equitable Life Insurance Company of Canada Technical Services Department (519) 886-5110 October 1990 This is provided "AS-IS" with NO warranty expressed or implied. [.GOLDLUG.MISC] Miscellaneous Submissions ABNORMAL_CONDITIONS.COM -- A specialized command procedure which we use for reporting problems within the company. It generates a custom report, and the procedure has the ability to go back in and modify this report. Requires no special privleges, but you have to create a directory for ACRs, and set up a system logical pointing to it. MAILER.COM -- A command procedure which MAIL$KEYDEF.INI -- The Initalization file for MAILER.COM MAIL.RNO & MAIL.MEM -- A user's guide into the MAIL system. Provides an overview of some of the major functions of MAIL. --------------------------------------------------------------------------- This DECUS Canada Submission is via GOLDlug Users Group, and from Member: Canadian General-Tower Limited 52 Middleton Street, Cambridge, Ontario (519) 623-1630 October 1990 This is provided "AS-IS" with NO warranty expressed or implied. VD3:[VAX91B.CANADA.OTT91.GOLDLUG.BILLING]AAAREADME.FIRST;1 VAX/VMS Billing System ********************** This system suppliments the existing system accounting and disk usage facilities provided by the VAX/VMS operating system. It provides for the charging of connect time, CPU time, and printing to multiple accounts by the same user during a single interactive, batch or remote session. In addition, disk usage is charged by account, rather than by user identification code. Detailed documentation is provided on the functional components and the data structures used by the system. Please view or print BILLING_SYSTEM.MEM for more information. This DECUS Canada Submission is via GOLDlug Users Group, and from Member: Equitable Life Insurance Company of Canada Technical Services Department (519) 886-5110 October 1990 This is provided "AS-IS" with NO warranty expressed or implied. VD3:[VAX91B.CANADA.OTT91.GOLDLUG.GRAPHICS]AAAREADME.FIRST;1 VT320 GRAPHICS CONVERSION ************************* To convert a source file into VT320 graphics set; @GRAPH320 You will be prompted for the source file name and whether you want to view the graphic. The com will run GRAP320.EXE, which is the progam that does the actual conversion. The target file name will be the same as the source file name with a '_320' extension appended. To see this graphic issue a TYPE on the file. The only character in the source file that will be converted is the ampersand (@) character. All other characters are ignored. Sample source and target graphics are provided with this submission. The program is quick, the code isn't fancy (lots of room to be cleaned up), but it works. _____ This DECUS Canada Submission is via GOLDlug Users Group, and from Member: Equitable Life Insurance Company of Canada Technical Services Department (519) 886-5110 October 1990 This is provided "AS-IS" with NO warranty expressed or implied. VD3:[VAX91B.CANADA.OTT91.GOLDLUG.MISC]AAAREADME.FIRST;1 Miscellaneous Submissions ABNORMAL_CONDITIONS.COM -- A specialized command procedure which we use for reporting problems within the company. It generates a custom report, and the procedure has the ability to go back in and modify this report. Requires no special privleges, but you have to create a directory for ACRs, and set up a system logical pointing to it. MAILER.COM -- A command procedure which MAIL$KEYDEF.INI -- The Initalization file for MAILER.COM MAIL.RNO & MAIL.MEM -- A user's guide into the MAIL system. Provides an overview of some of the major functions of MAIL. --------------------------------------------------------------------------- This DECUS Canada Submission is via GOLDlug Users Group, and from Member: Canadian General-Tower Limited 52 Middleton Street, Cambridge, Ontario (519) 623-1630 October 1990 This is provided "AS-IS" with NO warranty expressed or implied. VD3:[VAX91B.CANADA.OTT91.HAMLUG]AAAREADME.FIRST;1 This directory tree contain submissions from members of the HAMLUG. SUS --- More information than the SHOW USERS command. Author: Craig Slattery (416) 335-2000 Define_Help_Lib --------------- by Bob Langford, Fisheries and Oceans This procedure checks for currently defined HLP$LIBRARY_* logicals and assigns P1 parameter as the next available Library number. The logical table can also be defined by specifying the P2 parameter. Check & Mount Disks (CHKMOU_DISK) ---------------------------------- by Keith Weaver, Fisheries and Oceans This command file is used to check the status of all the disks in the cluster and mount any that need to be mounted. Depending on the state the disk may have to be dismounted prior to being mounted. It is relatively generic except for the specific disk labels located at the bottom of the command file in the LIST_OF_DISK_LABELS subroutine. The procedure displays the status of the disks and then is set into verify mode while it dismounts and mounts disks as required. The procedure requires SYSNAM privilege and assigns it to the process at the beginning and removes the privilege upon completion. Check_Login (CHK_LOGIN) ----------------------- by Keith Weaver, Fisheries and Oceans This command file generates a user list using SHOW USER/OUT=file and parses the first few columns and the PIDs from the list. It then uses the pid and f$getjpi to get the Login time and displays both to the screen. You must have WORLD privilege, which the command file will assign for the process and remove on termination. No error checking is done. Example: VAX/VMS User Processes at 31-AUG-1990 17:01:14.44 Total number of users = 6, number of processes = 8 Username Node Process Name PID Login Time BURWS2 _WSA1: 20E00231 31-AUG-1990 15:55:00.24 CORKUM BURCLU CORKUM 2020147A 31-AUG-1990 15:03:47.82 ELNER BURWS2 _LTA58: 20E00230 31-AUG-1990 12:01:50.72 JOHANNSSON BURCLU JOHANNSSON 2020179C 31-AUG-1990 16:18:46.34 TINNEY BURCAH TINNEY 2060051D 29-AUG-1990 15:44:53.12 WEAVER BURCOM WEAVER 210002AD 31-AUG-1990 10:02:34.17 WEAVER BURWS2 WEAVER 20E00232 31-AUG-1990 16:51:29.72 WEAVER BURWS2 WEAVER_1 20E00233 31-AUG-1990 17:01:10.27 Copynode2node (CNN) -------------------- by Keith Weaver, Fisheries and Oceans This command file allows you to copy between DECnet nodes where proxies are not set up and you must use a username and password in the copy command. The terminal is set to NOECHO while prompting for the password, thus allowing for a little security in that your passwords will not be displayed to the screen. Username and Password specifications are prompted for if nodenames are specified in either the P1 or P2 variable. The current process name is used as the default Username. If P2 or P1 and P2 are missing they are prompted for (similar to the COPY command). Example: cnn [weaver]login.com OTTCHS::NL: (OTTCHS) Username [WEAVER_2]: SYSTEM (OTTCHS) Password: Copying... Day_of_Year (DOY) ------------------ by Keith Weaver, Fisheries and Oceans This command file retrieves the system date and calculates the day of the year. It is stored as a logical in the System logical name table if the SYSTEM runs the command file, or in the process logical name table if any other users run it. We have been calling this variable the Julian day (which is incorrect), and thus assigning date and time values in a JJJ HH:MM:SS.SS format. That is the reason for calling the logical "JJJ". ShowNet ------- Author: Steve LaRocque, Southam Computer Group, Hamilton, Ont, Canada This simple command procedure allows DECnet End-nodes to do a "Show Network" command on their router node. It uses DECnet Task-to-Task communication to accomplish this. To install: On the router node: Copy the SHOWNET.COM command procedure into SYS$MANAGER (it only needs World:Execute access) NCP> SET OBJECT SHOWNET FILE SYS$MANAGER:SHOWNET.COM NCP> DEFINE OBJECT SHOWNET FILE SYS$MANAGER:SHOWNET.COM (you may also want to create a network object server UAF account if you don't want to use a default non-privileged DECnet account) On the End-node: Create a symbol for easy access to the procedure in your LOGIN or SYSLOGIN procedure: $ NET :== @SYS$MANAGER:SHOWNET You can now use the command "NET" to display the network. This command will also work at the Router node itself (it checks for this). -- NOTE : This software is distributed free of any license charges on the understanding that no warranty is implied with this software, nor is any liability incurred by the original author nor by any person who has modified the file(s), nor any by person who permits a copy of the software to be made Modifications: -------------- 1-Aug-1990 Brad L. Tinney I added a translation from Area and Node numbers to actual sites and machine descriptions. This should provide most of the information required by the network manager (missing the hops and cost), but finally makes some sense to the general user who wants to know why he or she can't send mail to a remote site. Thanks to Bob Johns, the DECnet task to task stuff works by putting in the command NUMBER 0 in the NCP command line. To configure your site into this procedure, just add definitions of your local nodes to the num2name subroutine. OS/2 Public Domain Desktop Utilities ==================================== The programs in the following 3 directories have been downloaded from CompuServe. These programs have been put into the public domain by the original authors. [DESKTOP] - this program (DESKPIC) provides several interesting features for your OS/2 v1.2 desktop, namely: - loads .BMP & .GIF graphics as a presentation mamager background - provides many animated screen savers - provides serveral animated presentation manager backgrounds, including an animated aquarium [EXTANI] - these files show how to develop your own animated presentation manager backgrounds for DESKPIC [EYECON] - this is an interesting & fun program that creates a presentation manager icon that track your mouse movements. try it you'l like it. John Novak HAMLUG Newsletter Editor NewMailDir ---------- by Steve LaRocque, Southam Computer Group This utility, designed to be run from SYLOGIN, will produce a list of new mail messages for the user much like Mail's DIRECTORY function. It selects all the messages in the NEWMAIL folder rather than going by the new mail count. If there are no new messages or no mail file, the program prints nothing. If new mail messages exist, they are printed in the following format: New Mail Summary You have 3 new mail messages Num Date From Subject -------------------------------------------------------------------------------- 1 1-JUL-1990 VNCVR::STEVE Re: Proposed change to Cluster 2 2-JUL-1990 QUECTY::ANNETTE Layout for new WAN connections 3 2-JUL-1990 HALFAX::SYSTEM Re: DECnet to Calgary (stability) To install the utility, place the program someplace accessible, like Sys$System, and add the following lines to the interactive section of your SYLOGIN: $ Define/User Sys$Input Sys$Command $ Run Sys$System:NewMailDir If you have a lot of logins, you may want to Install it /Open/Header/Shared for faster access. -- NOTE : This software is distributed free of any license charges on the understanding that no warranty is implied with this software, nor is any liability incurred by the original author nor by any person who has modified the file(s), nor any by person who permits a copy of the software to be made Action Keys (Set Keys) ---------------------- Process Permanent Programmable Action Keys by Lee K Gleason From: VAX Professional, February, 1987 This package, described in detail in _VAX Professional_, is an excellent example of setting up "action keys" where, for example, Control-F will display the names of all the files the process currently has open, or toggle the procedure verify bit. Many thanks to the author for sharing his program with us and to _VAX Professional_ for providing the VAX community with gems like this. SQUEEZER - A Memory Economizer ------------------------------ This utility won first prize in the _VAX Professional_ "Call for Papers" on Performance and was published in the December 1989 issue of that journal. Many thanks to the author, Frank Dolatshahi for sharing this excellent program with the general public! This program forces a flush of the working set of idle processes on the system, which can greatly increase your free list size. Full details can be found in the accompanying article in _VAX Professional_. TEXT FILE : READ_ME.1ST Author: Frank Dolatshai Date: 8/24/89 The explanation of Squeezer's parts : ******* Please Note: Squeezer in written to run under VMS 5.0 or higher versions. SQUZ_STRT.COM : This is the start up command procedure. When invoked it checks the size of the data file generated by Squeezer, to make sure that the file is not greater than 200 blocks. If it is the file is deleted. SQUZ_STRT.COM accepts one parameter for the detached process name(the default name is 'Squeeze!!'). It then sets the value for a switch logical ,called SQZ_RUN, to 'OK' in LNM$SYSTEM_TABLE. (OK will be in upper case), and starts a detached process. This procedure can be invoked from the system startup file. It assumes that all of required files are in SYS$SYSDEVICE:[MEMPURGE]. (format of passing a parameter to SQUZ_STRT is $@SQUZ_STRT procname ) SQUZ_STOP.COM : The shutdown procedure assigns a different value than 'OK' to SQZ_RUN. Once you run this procedure the Squeezer will shutdown within the next run cycle. Please note that you must be in a privileged account. IT IS IMPORTANT TO USE THIS PROCEDURE TO SHUTDOWN SQUEEZER RATHER THAN JUST USING 'STOP/ID', THIS WAY SQUEEZER WILL SHUTDOWN PROPERLY AND WILL DEALLOCATE ITS NONPAGED SCRATCH AREA. SQUEEZER.MAR: This is the main part and runs as a detached process. While the program is executing, it checks to make sure that it is operating during the requested operation time. Squeezer checks the logical SQZ_RUN at each run cycle. If the value of SQZ_RUN is set to 'OK' Squeezer continuous to run, otherwise it shuts itself down. When Squeezer approaches the end of the daily operation time it produces a report consisting the number of released pages per hour, and then hibernates until the next day. Squeezer also produces the same kind of report before shutting down. The statistics produced by this program are written to a file with the format of {node-name}_SQUZ.DAT, which will reside in the directory SYS$SYSDEVICE:[MEMPURGE]. Thus it is important to create this directory before starting. Squeezer will append the data to this file. If the file does not exist it is created by Squeezer. Squeezer deallocates the nonpaged memory allocated during the initialization, in case of any errors or if the process shutdown is requested. If any error is detected, the message will be written to a file called PURGE.LOG that explains the error code and/or the location within the program. Following are the error codes: 1110 - The AST routine is not present. (Be sure you have executed SQUZ_AST.COM and rebooted the system without any problem.). 2220 - There was not enough nonpaged memory for squeezer to use as scratch area. (If this happens, check your NPAGEDYN parameter and make sure you have enough free space. Usually this error should not happen since squeezer uses very little nonpaged memory.). 3330 - There was a problem with deallocation of the memory during the process shutdown, or a non-kernel error (this error usually indicates problems with system. Check your system for any memory or cpu problems.) SQUZ_PRM.MAR : This is the only part that you should need to change. It includes the input parameters for the program. These parameters are, CREEP (integer-creep factor), PERIOD (ascii-activation intervals, this value should be a multiple of 5), A_START (an absolute ascii time format for start time), and A_STOP (an absolute ascii time format for stop time). SQUZ_SETUP.COM : This is a command procedure that will compile and link the proper components to produce the main image file, SQUEEZER.EXE. Invoke this procedure every time after you modify SQUZ_PRM.MAR. SQUZ_AST.MAR : This is the AST routine that has the $PURGWS service for address ranges ^X00000000 to ^XFFFFFFFF. SQUZ_AST.COM : This is the procedure that compiles, links, and prepares the AST routine to be loaded into the memory as an executive image. After you run this procedure successfully, you must reboot the system in order to load the AST routine into the memory. INSTALL.TXT : This text file has the steps to install squeezer on your system. SYS$LOCAL.COM ------------- ** NOTE: THE PROCEDURE CONTAINED HEREIN IS NOT RECOGNIZED BY DEC AND IS LIKELY "NOT RECOMMENDED". PLEASE READ AND UNDERSTAND THE PROCEDURES, REQUIREMENTS AND IMPLICATIONS OF THIS PROGRAM BEFORE INSTALLING IT AS THE AUTHOR PROVIDES NO WARRANTY/GUARANTY. ** This procedure, when executed as part of your startup, will install add another root to your SYS$SYSROOT search list. This is intended for use on MI/LAV Clusters where there exists sufficient local disk capacity on the satellite to store SYS$SYSTEM and SYS$LIBRARY and SYS$MESSAGE files (presumably on the same disk as your local page and swap files). This is done to increase performance by reducing the amount of MSCP-served system-disk based image activations. In development or general-use environments there tends to be a fair amount of this. Dedicated single-application machines likely have fewer of these, however, and so won't benifit as much. Basically, what we want to do is change the SYS$SYSROOT logical search list from SYS$SPECIFIC,SYS$COMMON to SYS$SPECIFIC,SYS$LOCAL,SYS$COMMON. This means that when attempting to activate an image, the system will first look in SYS$SYSROOT (MSCP-Served), and normally not find the image, then in SYS$LOCAL (local to the satellite) and find the image, load it and activate it. True,this means that it still first -looks- at the MSCP-served disk, but by placing the SYS$LOCAL in the middle, instead of the front, maintainance is simpler. You know that the [SYSx.SYSEXE] on the Master node's system disk is indeed the first place looked by the software. It also helps when installing new software - some Digital programs assume that the [SYSx.SYSEXE] is the first place looked and the SYS$COMMON:[SYSEXE] is the last. You will want to run this as early as possible in your Startup procedure so that layered software starting up will use the local copy rather than the remote copy in Sys$Common. It is up to YOU to set up and keep up-to-date your SYS$LOCAL directory structure. This means when you update SYS$COMMON files which are duplicated in SYS$LOCAL (such as a new VMS version), you must update your SYS$LOCAL files. The easiest way of doing this is to simply BACKUP the files from SYS$COMMON to SYS$LOCAL. What we do here is this: DISK$LOCALSYS:[LOCALSYS.SYSEXE] <-contains a copy of SYS$COMMON:[SYSEXE]*.EXE DISK$LOCALSYS:[LOCALSYS.SYSLIB] <-contains a copy of SYS$COMMON:[SYSLIB]*.EXE DISK$LOCALSYS:[LOCALSYS.SYSLIB] <-contains a copy of SYS$COMMON:[SYSLIB]*.EXE We are only interested in the .EXE files as they are generally the most frequently accessed files. You should be able to use BACKUP/IGNORE=INTERLOCK to move them over. When you call this procedure from startup, you must provide P1 as the value for SYS$LOCAL. In the case above, this might be expressed as: @Sys$Startup:Sys$Local.Com $2$DUA1:[LOCALSYS.] When the procedure runs, it first defines the new logical (SYS$LOCAL) and then redefines the SYS$SYSROOT search list as SYS$SPECIFIC, SYS$LOCAL and SYS$COMMON. Unfortunately, by the time this procedure runs, most system images that are going to be installed -are- already installed. So the procedure then goes on to INSTALL> REPLACE all the images listed in SYS$MANAGER:VMSIMAGES.DAT. If you make modifications/enhancements to this program, feel free to do so. -- NOTE : This software is distributed free of any license charges on the understanding that no warranty is implied with this software, nor is any liability incurred by the original author nor by any person who has modified the file(s), nor any by person who permits a copy of the software to be made. -- Trimbiont - is a simple piece of code, that strips extraneous spaces from the end of print lines, prior to being sent to the print device. Specifically, when utilized in WAN's (wide-area networks), may reduce over-head(depending of print job) and decrease print time. We found with our application print jobs, we saved an average of 30% savings in print times. Trimbiont.exe must reside in Sys$common:[Sysexe]. To activate, $ Stop/Reset queue_name $ Start/Queue/Processor=Trimbiont queue_name Note: This software is only useful if you have print jobs that do have extraneous spaces at the end of print lines. Note: This software does not have special LAT handling for multiple queues pointing to the same physical device. VD3:[VAX91B.CANADA.OTT91.HAMLUG.CBS]AAAREADME.FIRST;1 Author: Craig Slattery (416) 335-2000 This image uses kernal mode code - use at own risk. To compile and link this program simple use the following: $ MACRO SHUS $ LINK SHUS $ RUN SHUS (from privileged account) This image can also be installed privileged (change mode to kernal) and shared. VD3:[VAX91B.CANADA.OTT91.LIBRARY]AAAREADME.FIRST;1 This directory contains contributions from the DECUS Canada Library group. [.Derrick] contains a collection of DCL routines that I use often at our site. Some of them are obviou and some of them are just plain handy. [.Rajah] MDQ - Program to modify the disk quota for users. [.Tinney] SNAP is a process control program for the system manager. It allows many different kinds of viewing and manipulations on user or system processes. VD3:[VAX91B.CANADA.OTT91.LIBRARY.DERRICK]AAAREADME.FIRST;1 This directory contains a collection of DCL routines that I use often at our site. Some of them are obviou and some of them are just plain handy. Enjoy. David Derrick Ministry of Natural Resouces North York, Ontario M2N 3A1 Tape Copy, Library committee ALLMAIL.COM Check for All-In-One mail ALLMAIL.FOR PNAME.FOR AUTHORIZE.COM used to goto sys$system, run authorize, and go back to where we came BIGDIFF.COM differences between this directory and filespec p1 directory DISKS.COM show or watch disk space DQ.COM show disk quota with totals PIPE.COM A "pipe" utility collection for different cases EPIPE.COM Great for software development LPIPE.COM PIPES.COM PRIV.COM set command promt to include new privs SENDPRINT.COM Send print jobs to a remote node using proxy logins. RECEIVEPRINT.COM Used very sucessfully at ours and a remote site. SORT_US.COM List users on a VAXCluster by node then username TAPES.COM Watch tape drives (like disks) WHERE.COM Where are we (or some one else) VD3:[VAX91B.CANADA.OTT91.LIBRARY.RAJAH]AAAREADME.FIRST;1 MDQ - Modify disk quota of users. Program MDQ allows authorized users to (1) inquire disk quota usage by any user on the sytem on their home device, and (2) modify the permanent quota. We use this program at this University to allow secretaries to modify disk quotas of users upon authorization from the System manager. Files that make up MDQ are: MDQ.FOR - FORTRAN main program GET_MDQ.MAR - MACRO routine that talks to the DISK ACP. MAKE-MDQ.COM - Command file to compile, link and install MDQ.EXE Security: -------- Access to MDQ.EXE is controlled by the Rights identifier ID_MDQ. Those usernames that can run MDQ must be granted this identifier. Authorized usernames are added to the Authorized_users array within the program. The program needs to be installed with SYSPRV which is not enabled until required. Submitted by: A. Mahendra Rajah, System Manager Dept of Computing Services, University of Regina, Regina, Sask. CA*net address: Mahendra @ Meena.CC.URegina.CA If you are having trouble executing this program, I may be able to help! VD3:[VAX91B.CANADA.OTT91.LIBRARY.TINNEY]AAAREADME.FIRST;1 DOCUMENTATION FOR snap BY DANIEL J. GRAHAM SNAP is a process control program for the system manager. It allows many different kinds of viewing and manipulations on user or system processes. SNAP is a very fancy SHOW USERS. it gives a useful screen of information about each user process on the system. (Optionally, it also gives the same stuff about system processes.) You can get a bunch of statistics on the process, you can view what is going on on a terminal or write to that terminal's buffer, you can delete a process, force an image exit on a process, change priority, suspend or resume a process. WARNING: Do not install this program with privs. It is very dangerous and could seriously compromise your system's security if used by someone with intent to do damage. Do not make it available to any but trusted systems people. ----------- Dan Graham Dynamics Research Corporation, Andover, Ma (508) 475-9090 x2352 Internet address: graham@drcvax.af.mil VD3:[VAX91B.CANADA.OTT91.MEZEI]AAAREADME.FIRST;1 ********************** Sounds and Images ************************************* Submitted by: Jean-François Mezei Vaxination Informatique 86 Harwood Gate Beaconsfield, Quebec [.MEZEI]AAAREADME.txt This file... [.MEZEI]MODEM_MNP.TXT A description of the different MNP levels (types) available on modems. [.MEZEI]POSTSCRIPT_QUICK_REF.PS A quick reference card for postscript commands. Produced by U of LOWELL. (2 pages which shoudl be printed 2-sided and folded to make a quick reference card. (source Compuserve) **************** [.MEZEI.IMAGES] *************8000+ blocks***************** Some files, those with names ending in -LZ, in this directory are LZCOMPressed to save space on the tape. Please use the LZDCMP.Exe program in [Ott91.Tools] directory to decompress them. The two *.PS files are in the text library POSTSCRIPT.TLB in DATA reduced format. Use $ Library/Data=Expand POSTSCRIPT.TLB command to expand the library and then extract the two files. [.MEZEI.IMAGES]APOLLO.SIX;5 VT240 format. (from Compuserve) [.MEZEI.IMAGES]VAX-TEMPLE.LA75;1 VAX joke, LA75 format [.MEZEI.IMAGES]VAX-TEMPLE.LN03;1 LN03+ format (sixel) [.MEZEI.IMAGES]VAX-TEMPLE.PS;9 Postscript [.MEZEI.IMAGES]VAX-TEMPLE.TIFF;1 TIFF, B&W (no greyscale) [.MEZEI.IMAGES]VAX-TEMPLE.VT240;5 VT240 (sixel) [.MEZEI.IMAGES]VELODROME.TXT Explanation of VELODROME files [.MEZEI.IMAGES]VELODROME.LN03;1 [.MEZEI.IMAGES]VELODROME.PS;1 [.MEZEI.IMAGES]VELODROME.TIFF;1 [.MEZEI.IMAGES]VELODROME.VT240;1 **************************** [.MEZEI.MACSOUNDS] **********11000+ blocks******* These sounds are all for the MACINTOSH computer. They are all in MACBINARY format. Some of the files contain sounds as resources, others are in standalone files to be used by applications such as SOUND-COP or SOUND-EDIT. Some files, those with names ending in -LZ, in this directory are LZCOMPressed to save space on the tape. Please use the LZDCMP.Exe program in [Ott91.Tools] directory to decompress them. This directory contains [.MEZEI.MACSOUNDS]ALARM_FOUR.SOUND;1 Various Star-Trek alarms [.MEZEI.MACSOUNDS]ALARM_ONE.SOUND;1 [.MEZEI.MACSOUNDS]ALARM_THREE.SOUND;1 [.MEZEI.MACSOUNDS]ALARM_TWO.SOUND;1 [.MEZEI.MACSOUNDS]ALERT_KLAXON.SOUND;1 [.MEZEI.MACSOUNDS]APOLLO_LANDING.RSRC;1 Recordings of the first apollo landing. Such as "The eagle has landed" and "One small step..." [.MEZEI.MACSOUNDS]HAL_COMPLETELY_OPERATIONAL.SOUND;1 Great startup sound. [.MEZEI.MACSOUNDS]HAL_PUZZLING_LET_IT_FAIL_AGAIN.SOUND;1 More of HAL (2001 fame) [.MEZEI.MACSOUNDS]HAL_SORRY_DAVE.SOUND;1 " " " " " [.MEZEI.MACSOUNDS]MISC.SOUNDS;1 All sorts of sounds Some BATMAN music and fights etc etc. [.MEZEI.MACSOUNDS]MISSION.IMPOSSIBLE;1 Theme song from Mission Impossible In compressed format 4:1 (SOUND-EDIT) [.MEZEI.MACSOUNDS]TREK.RESOURCES;1 Various Star Trek Captions from "The Borg" and Star Trek IV. [.MEZEI.MACSOUNDS]TREK_DOOR.;1 Swish ! [.MEZEI.MACSOUNDS]TREK_WHISTLE.;1 Ship's whistle VD3:[VAX91B.CANADA.OTT91.NAPLUG]AAAREADME.FIRST;1 Submissions from NAPLUG. [.KYLE] There are two programs in this directory. SCANP - Scans the system for processes matching a user specified process name. SCANU - Scans the system for processes matching a user specified username. [.YOUNG] Read me first file for login.com stuff.... At our shop we wanted to have each user's process name be their 'real' name so when we are trying to provide support, we can see something other than cryptic usernames like SYS003, ISB032, etc. Unfortunately VMS doesn't provide us with an easy way of doing this (or at least as far as I could tell). So I wrote a short FORTRAN program to extract the needed information. When it is run, it gets the owner name and creates two DCL symbols: LOGIN$PROCNAME = The process name (owner truncated to 15 chars) LOGIN$A1NAME = Called this because we use All-In-1; this is the complete name (32 characters long) There are three files included in this save set (besides this one). They are the following: SAMPLE_LOGIN.COM This is a sample LOGIN command procedure that calls SAMPLE_USER to get the owner of the account. SAMPLE_USER.FOR This FORTRAN program uses the SYS$GETUAI system service to haul out the 'owner' of the current account. This is useful for setting process names and things like that... WRITE_SYMBOL.FOR This subroutine is called to write a value to a symbol. Pretty simple, actually. COMPILING INSTRUCTIONS: ======================= FORTRAN/LIST SAMPLE_USER, WRITE_SYMBOL LINK SAMPLE_USER, WRITE_SYMBOL Any comments/suggestions can be forwarded to: Grant Totten New Brunswick Department of Transportation Information Systems Branch P.O. Box 6000, Suite 630, King's Place Fredericton, N.B. E3B 1H5 (506) 453-2990 VD3:[VAX91B.CANADA.OTT91.NAPLUG.KYLE]AAAREADME.FIRST;1 There are two programs in this directory. SCANP - Scans the system for processes matching a user specified process name. SCANU - Scans the system for processes matching a user specified username. VD3:[VAX91B.CANADA.OTT91.NAPLUG.YOUNG]AAAREADME.FIRST;1 Read me first file for login.com stuff.... At our shop we wanted to have each user's process name be their 'real' name so when we are trying to provide support, we can see something other than cryptic usernames like SYS003, ISB032, etc. Unfortunately VMS doesn't provide us with an easy way of doing this (or at least as far as I could tell). So I wrote a short FORTRAN program to extract the needed information. When it is run, it gets the owner name and creates two DCL symbols: LOGIN$PROCNAME = The process name (owner truncated to 15 chars) LOGIN$A1NAME = Called this because we use All-In-1; this is the complete name (32 characters long) There are three files included in this save set (besides this one). They are the following: SAMPLE_LOGIN.COM This is a sample LOGIN command procedure that calls SAMPLE_USER to get the owner of the account. SAMPLE_USER.FOR This FORTRAN program uses the SYS$GETUAI system service to haul out the 'owner' of the current account. This is useful for setting process names and things like that... WRITE_SYMBOL.FOR This subroutine is called to write a value to a symbol. Pretty simple, actually. COMPILING INSTRUCTIONS: ======================= FORTRAN/LIST SAMPLE_USER, WRITE_SYMBOL LINK SAMPLE_USER, WRITE_SYMBOL Any comments/suggestions can be forwarded to: Grant Totten New Brunswick Department of Transportation Information Systems Branch P.O. Box 6000, Suite 630, King's Place Fredericton, N.B. E3B 1H5 (506) 453-2990 VD3:[VAX91B.CANADA.OTT91.PAXLUG]AAAREADME.FIRST;1 Jean-François Mezei Vaxination Informatique Montréal, Québec, Canada (LUG: PAXLUG) --------------------------------------------------- October 1990 Submission. *.SIX Various sixel files CONVERT.DIR Accented character conversion utilities (MAC-DEC-IBMPC) Tab expansion utility (replaces tabs with blanks) PSPRINT_ALDUS_PREP_FIX.PS Fix to ALDUS PREP for use with DEC's PSPRINT utility SYS_MANAGER.DIR Various utilities for the syustem manager, including a broadcast program to send a long message to a list of terminals. WPSPLUS.DIR Various forms and scripts which allow WPSPLUS to be customized. All C source programs can be compiled on VAX-C without any special include files, and can be linked regularly (with VAXCRTL.EXE). VD3:[VAX91B.CANADA.OTT91.SLUG]AAAREADME.FIRST;1 Are you tired of all your batch jobs executing at once after a reboot or missed executions completely? Or maintaining separate batch definitions on each node? Then DCLSchedule may be for you. 1. Define all your nodes using logical names in Sys_Node_Service_Conig.Com and execute these definitions in SyStartup_V5 -- or you could define them elsewhere. Note that concatination of nodes is possible in ALLVAX. 2. @DCLSchedule_Run.com goes in SyStartup_V5 to start a detached process. 3. Define all repeated batch jobs in DCLSchedule.Dat using the rules at the top of the .Dat file. And you're off. VD3:[VAX91B.CANADA.PVH]AAAREADME.FIRST;1 RAILWAY TRAFFIC SIMULATION SOFTWARE AUTHOR Ms. Pauline Van Havere email: pvh@UReginaV.Bitnet Computer Science Department University of Regina Regina, Saskatchewan S4S 0A2 ABSTRACT This software simulates the bi-directional travel of any number of trains over an east-west track layout consisting of any number of track segments. Trains are assigned a priority rating and track segments can be single or double track, sidings may or may not be present. The first priority in meets and overtakes is given to eastbound trains (traditional in the Canadian system). DOCUMENTATION 1. Simscript Rail Traffic Simulation Technical Report CS-88-04 ISSN 0828-3494 ISBN 0-7731-0134-9 contains: programmer's & user's guides, source code listings. 2. TRACK.FORMAT contains a description of the required format for the track layout data file. 3. TRAIN.FORMAT contains a description of the required format for the train schedule data file. TRAIN.SIM This is a Simscript simulation program designed to simulate the travel of 'n' trains over at 'm' track segments. A train can begin and end in any track segment. Areas of congestion can be isolated by examining wait times for each track segment. New sidings and double track can be added in an attempt to minimize congestion. A train schedule file and a track layout file are required. FILTER.C This is a C pre-processor to convert times in the train schedule file from 24 hour format to that expected by Simscript. RUNTRAIN.COM This command file calls the C pre-processor, defines I/O files, runs the simulation program, and calls "sortit.com", a command file to sort train travel times. TRNSTATS.LIS statistical output of simulation run. TRNTIMES.SRT train travel run times. VIEWTRAIN.DAT pictorial trace of a specified train. VIEWTRACK.DAT pictorial trace of a specified track segment. VD3:[VAX91B.CANADA.SRS]AAAREADME.FIRST;1 Symposium Registration System is designed to store records on Attendees, Payments, Events, Counts and Messages. The information store on Attendees fall under the basic catagories of address/personal data event flag bytes for events attending 1st, 2nd, and 3rd choice event-code names for events attending basic payment details Payment records store basic catagories payment type amount details (additional comments) Events records store basic catagories description date/time cost (pre-registration/walkin) Counts record accumulative totals of attendee transactions and Messages store Names and SRNs for participants who have messages Announcements for activities or special events Each participant will use his DECUS number as his unique Symposium Registration number (SRN). In the event that the attendee does not have a DECUS number, the system will assign a SRN. This number is used as an index key to most data files. A standard FMS form is used throughout the program, for functions which are related to the participant, to query for either the participants SRN or Surname (or part of). The default of to exit, was implemented throughout. Symposium Registration System (SRS) Options 0 - REGISTRATION 6 - REPORTS 1 - PAYMENTS 7 - MESSAGES 2 - PICKUP: 8 - BACKUP (not supported) 3 - EVENTS 9 - BADGES 4 - COUNTS - HELP 5 - RECEIPTS - EXIT Additional programs .. FPLIST The system is initialized via SRS$STARTUP.COM. The components, according to the Main Menu, represent various subdirectories and are pointed to using logicals which are set by SRS_LOGICALS.COM Notable logicals; images reside in SRS$IMAGES data reside in SRS$DATA form libraries in SRS$FORMS Adjustments may be required in the LOGIN.COM file for defining logicals and symbols. A template file is found in [.SETUP] directory. Commands required to run DECUS Symposium Registration System SRS to run the main system this is a symbol that points to the SRS.EXE image located in SRS$IMAGES SRSBCK to backup the .DAT files (transfers files from SRS$DATA directory to SRS$BACKUP directory) this is a symbol that points to the SRSBACKUP.EXE image located in SRS$IMAGES DTR to execute Datatrieve this may be required to get special reports or adjust some fields that are incorrect or have been inadvertently corrupted COUNTS.DAT records must be initialized with key values being 4 letter codes for events that will be registered as well as TOTA - total attending TOTD - total deleted NSRN - next SRN NMES - next message number NPAY - next payment number Data Files required - ATTENDEES.DAT,EVENTS.DAT,COUNTS.DAT MEMBER.DAT,PAYMENTS.DAT,MESSAGES.DAT ANNOUNCEMNT.DAT,HISTORY.DAT,REVENTS.DAT Functions in the Symposium Registration System REGISTRATION Function - adds, cancels, updates data records on registered participants PAYMENTS Function - adds, deletes, updates data records on payment details PICKUP *NOT CURRENTLY SUPPORTED Function - adds additonal information when a registered participant comes in for on-site registration (whether pre-registered or not) (eg. registered with Convention's hotel, Room No.) EVENTS Function - lists, adds, deletes, updates data records on Symposium events COUNTS Function - displays current participant counts for all events including Total attending, Total deleted, and next SRN RECEIPTS Function - Prints the receipt form, according to the data entered by the operator, on an LN03 printer REPORTS Function - Reports on all data that is requiring up to-date listings of current data (standard reports). Data File RPT.COM generated (output file) MESSAGES Function - Post announcements on a monitor for changes in program - Post a message for another participant to be picked up at the Registration Desk or Information Desk BACKUP Function - creates a copy of all data (.DAT) files on SRS$BACKUP subdirectory using VMS BACKUP BADGES Function - create a badge with the participants name, affiliation, city major events attending, and SRN Additional Comments Payment accounting could be more robust Helpful Hints - Registration - You may wish to enter a class code in the field. This will assist you in identifying those people with a special classification (Central Engineering, Library, Board, Planning...) - You CANNOT split 1st,2nd, and 3rd choices for seminars between 2 different days (however, this could be stored in the data record by inputting directly using DTR) Payments - every single payment/refund/credit is one transaction. Use multiple "payments" to adjust your final balance and use the comment field if the entry requires some clarification. Badges - The program is set so that when your doing a batch run (Print ALL unprinted badges) 20 badges are printed at a time. This is to enable the operator to 1) exit or, 2) adjust the Badge paper in case it got misaligned. If you require the Badge_flags in all Attendee records to be cleared use DTR> :clear_badge_flags this procedure will reset all the Badge_flags this may be required if there has been some problem during a batch run or all the badges must be reprinted APPENDIX A --- DATA DICTIONARY DEFINITIONS --- DELETE ACOUNT; REDEFINE DOMAIN ACOUNT USING ACOUNT_REC ON SRS$BACKUP:COUNTS.DAT; DELETE ACOUNT_REC; REDEFINE RECORD ACOUNT_REC USING ALLOCATION IS LEFT_RIGHT 01 ACOUNT_REC. 15 NEXT_COUNT PIC X(4). 15 NXT_CNT REDEFINES NEXT_COUNT. 20 TYPE PIC X. 20 REMAINDER PIC XXX. 15 COUNTS PIC 9(4). ; DELETE ANNOUNCEMENTS; REDEFINE DOMAIN ANNOUNCEMENTS USING ANNOUNCEMENTS_REC ON SRS$BACKUP:ANNONCMNT.DAT; DELETE ANNOUNCEMENTS_REC; REDEFINE RECORD ANNOUNCEMENTS_REC USING ALLOCATION IS LEFT_RIGHT 01 ANNOUNCEMENTS_REC. 15 MESNUM PIC IS X(5). 15 CODE PIC IS X(1). 15 CREATION_TIME PIC IS X(8) QUERY_NAME IS CT. 15 CREATION_DATE PIC IS X(9) QUERY_NAME IS CD. 15 DELETION_TIME PIC IS X(8) QUERY_NAME IS DT. 15 DELETION_DATE PIC IS X(9) QUERY_NAME IS DD. 15 TEXT PIC IS X(300). ; DELETE ATTENDEES; REDEFINE DOMAIN ATTENDEES USING ATTENDEE_REC ON SRS$BACKUP:ATTENDEES.DAT FORM IS ATTENDEE_FRM IN [REGISTRATION.DECUS.FORMS]REGISTER; DELETE ATTENDEE_REC; REDEFINE RECORD ATTENDEE_REC USING ALLOCATION IS LEFT_RIGHT 01 ATTENDEE_REC. 05 DATE_CREATED USAGE IS DATE. 05 LAST_UPDATE USAGE IS DATE. 05 SRN PIC IS 9999. 05 RECORD_STATUS PIC IS X. 05 TYPE_A_REC. 15 CLASS_OPT PIC XXXX. 15 CLASS PIC X. 15 DECUS_NO PIC 9(9). 15 FIRST_NAME PIC X(25). 15 SURNAME PIC X(20). 07 ADDRESS. 15 COMPANY PIC X(30). 15 ADDRESS_1 PIC X(30). 15 ADDRESS_2 PIC X(30). 15 CITY_PROV PIC X(26). 15 PROVINCE PIC X(4). 15 POST_ATTN PIC X(24). 15 POSTAL PIC X(6). 15 TELEPHONE PIC X(10). 15 MAIL_STOP PIC 9999. 05 FLAGS. 15 CLASS_FLAG PIC X. 15 PREREG_FLAG PIC X. 15 LABEL_FLAG PIC X. 15 BADGE_FLAG PIC X. 15 BADGE_FLAG1 PIC X. 05 TYPE_P_REC. 15 PAYABLE PIC S9(8)V99. 15 PAID PIC S9(8)V99. 15 BALANCE PIC S9(8)V99. 15 ACCOM_COMMENTS PIC X(70). 15 ACCOM_PARTS REDEFINES ACCOM_COMMENTS. 20 HOTEL PIC X. 20 COMMENT PIC X(69). 05 TYPE_E_REC. ! 10 REGISTRATION_BEFORE. 15 P1 PIC 9. 15 P2 PIC 9. 15 P3 PIC 9. 15 P4 PIC 9. 15 P5 PIC 9. 15 P6 PIC 9. 15 P7 PIC 9. 15 P8 PIC 9. 15 P9 PIC 9XXX. 15 P10 PIC 9XXX. 15 P11 PIC 9. 15 P12 PIC 9. ! 07 SITE TOUR. 15 P13 PIC 9. ! 07 STUDENTS & DAYS. 15 P14 PIC 9XXX. 15 P15 PIC 9XXX. 15 P16 PIC 9. 15 P17 PIC 9. 15 C_NAME PIC X(40). 15 C_PHONE PIC X(10). ! 07 EXTRA TICKETS. 15 XL PIC 99. 15 XB PIC 99. 15 XR PIC 99. ! 07 MONDAY SEMINARS. 15 MS_1ST_CHOICE PIC XXXX. 15 MS_2ND_CHOICE PIC XXXX. 15 MS_3RD_CHOICE PIC XXXX. ! 07 FRIDAY SEMINARS. 15 FS_1ST_CHOICE PIC XXXX. 15 FS_2ND_CHOICE PIC XXXX. 15 FS_3RD_CHOICE PIC XXXX. ! 07 FRIDAY WORKSHOPS. 15 FW_1ST_CHOICE PIC XXXX. 15 FW_2ND_CHOICE PIC XXXX. 15 FW_3RD_CHOICE PIC XXXX. ! 07 FRIDAY TOURS. 15 FT_1ST_CHOICE PIC XXXX. 15 FT_2ND_CHOICE PIC XXXX. 15 FT_3RD_CHOICE PIC XXXX. ! 07 LIBRARY TAPES. 15 L1 PIC X. 15 L2 PIC X. 15 L3 PIC X. 15 L4 PIC X. ; DELETE CLASS_TABLE; REDEFINE TABLE CLASS_TABLE " ":"Proceedings only", 1:"Day pass FEB. 09", 2:"Day pass FEB. 10", 3:"Day pass FEB. 11", A:"General Attendee", C:"Committee Member", E:"Exhibitor", G:"Guest", H:"Chairman", N:"Non-DECUS member", P:"Participant", S:"Speaker", X:"Executive", ELSE "Not in table" END_TABLE DELETE CLEAR_BADGE_FLAGS; REDEFINE PROCEDURE CLEAR_BADGE_FLAGS READY TMP_A SHARED WRITE FIND TMP_A MODIFY ALL USING BEGIN BADGE_FLAG=" " BADGE_FLAG1=" " END END-PROCEDURE DELETE DECUS; REDEFINE DOMAIN DECUS USING DECUS_MEMBERS ON SRS$DATA:MEMBER.DAT FORM DECUS IN [REGISTRATION.DECUS.FORMS]DECUS; DELETE DECUS_MEMBERS; REDEFINE RECORD DECUS_MEMBERS USING 01 DECUS_REC. 05 DECUS_NO PIC 9(9). 05 M_TYP PIC X. 05 M_STATUS PIC X. 05 M_RATE PIC X. 05 POSTAL PIC X(12). 05 M_COUNTRY PIC XX. 05 M_REGION PIC XX. 05 PROV PIC X(15). 05 NAME PIC X(30). 05 NAME_PTR PIC X. 03 ADDRESS. 05 COMPANY PIC X(30). 05 COMP_PTR PIC X. 05 N1 PIC X(30). 05 ADDRESS_1 PIC X(30). 05 ADDRESS_2 PIC X(30). 05 CITY_PROV PIC X(30). 05 TELEPHONE PIC X(20). 05 FILLER PIC X(211). ; DELETE EVENTS; REDEFINE DOMAIN EVENTS USING EVENT_REC ON SRS$BACKUP:EVENTS.DAT; DELETE EVENTS_TABLE; REDEFINE TABLE EVENTS_TABLE "P1 ":"Seminar only ", "P2 ":"Extra Seminar Supplement", "P3 ":"Seminar/Symposium", "P4 ":"Seminar/Symposium/Workshop", "P5 ":"Seminar/Symposium/Site Tour", "P6 ":"Seminar/Workshop", "P7 ":"Symposium/Site Tour", "P8 ":"Symposium only", "P9 ":"Symposium - 1 Day", "P10 ":"Symposium - 2 Days", "P11 ":"Fri. Workshop - Half Day", "P12 ":"Fri. Workshop - Full Day", "P13 ":"Fri. Site Tour", "P14 ":"Students - 1 Day", "P15 ":"Students - 2 Days", "P16 ":"Students - 3 Days", "P17 ":"Companions' Program", "XL ":"Extra Luncheon Tickets", "XB ":"Extra Banquet Tickets", "XR ":"Extra Reception Tickets", "M1 ":"Making Time Work For You", "M2 ":"RSX Realtime and Performance Issues", "M3 ":"Networks, Communications & Protocols", "M4 ":"Introduction to the C Language", "M5 ":"VMS Performance", "M6 ":"Integrating PCs and LANs with VAX", "M7 ":"Introduction to UNIX", "M8 ":"Building Applications in 4GL and DBMS Environment", "M9 ":"Introduction to VAX/VMS System Management", "F1 ":"Effective Utilization of RMS", "F2 ":"Developing Training Programs for End-Users", "F3 ":"Advanced C Language Tips", "F4 ":"Network Design for PC and Workstations", "F5 ":"Hitchhiker's Guide to VMS Internals", "F6 ":"VAXBI - DEC's High-Performance Bus", "F7 ":"X.25 and PSI Technical Overview", "F8 ":"Advanced Ethernet Concepts and Configurations", "F9 ":"Introduction to VAX/VMS Perfomance Management", "F10 ":"Seminar en Francais" "W1 ":"Workshop 1", "W2 ":"Workshop 2", "W3 ":"Workshop 3", "W4 ":"Workshop 4", "S1 ":"Site Tour 1", "S2 ":"Site Tour 2", "S3 ":"Site Tour 3", "S4 ":"Site Tour 4", "L1 ":"VAX/VMS TK-50 Library Tape", "L2 ":"VAX/VMS 1600 BPI Library Tape", "L3 ":"RSX 1600 BPI Library Tape", "L4 ":"PC/VAXMATE RX-50 Library Tape", "NSRN":"Next available Symposium Registration No.", "NMES":"Next available Message record no.", "NPAY":"Next available Payment record no.", "TOTA":"Total Attendees to-date", "TOTD":"Total Attendee records deleted", ELSE "NOT IN TABLE" END_TABLE DELETE EVENT_REC; REDEFINE RECORD EVENT_REC USING ALLOCATION IS LEFT_RIGHT 01 EVENTS_REC. 15 ASSIGNED_E_CODE PIC 9999. 15 EVENT_CODE PIC XX99. 15 EVENT_CODE_PARTS REDEFINES EVENT_CODE. 25 EVENT_TYPE PIC X. 25 HYPHEN PIC X. 25 EVENT_NUMBER PIC 9. 25 ASSOCIATED_DATE PIC 9. 15 EVENT_DESC PIC X(40). 15 EDATE USAGE IS DATE. 15 COST PIC 9(4)V99 EDIT_STRING $(4).99. 15 TIME_CODE PIC 9999. 15 MAX_NO PIC 999. 15 WALKIN_COST PIC 9(4)V99 EDIT_STRING $(4).99. ; DELETE HOTEL_TABLE; REDEFINE TABLE HOTEL_TABLE "Y":"l'Hotel", "y":"l'Hotel", ELSE "OTHER" END_TABLE DELETE INDEX; REDEFINE PROCEDURE INDEX DECLARE IDX PIC 9999. IDX=0 FOR CURRENT BEGIN IDX=IDX + 1; PRINT IDX, SRN,SURNAME||', '||FIRST_NAME ON *."Output Device" END END-PROCEDURE DELETE LANGUAGE_TABLE; REDEFINE TABLE LANGUAGE_TABLE "X ":"English", " X":"French", "XX":"Eng-Fre", ELSE "Not Specified" END_TABLE DELETE LETTER_LIST; REDEFINE PROCEDURE LETTER_LIST REPORT CURRENT ON LETTER.LIST SET NO REPORT_HEADER SET NO COLUMN_HEADER SET LINES_PAGE = 90000 PRINT COL 1, SURNAME, SKIP, COL 1, FIRST_NAME, SKIP, COL 1, COMPANY, SKIP, COL 1, ADDRESS_1, SKIP, COL 1, ADDRESS_2, SKIP, COL 1, CITY_PROV, COL 1, POSTAL, SKIP, COL 1, "-----------------" END_REPORT END-PROCEDURE DELETE LOCATE; REDEFINE PROCEDURE LOCATE READY ATTENDEES FOR ATTENDEES WITH SURNAME CONTAINING *."Attendee's Surname or part of (ie. BOYD)" BEGIN PRINT FIRST_NAME||" "|SURNAME, HOTEL, COMMENT USING T(23) END END-PROCEDURE DELETE MESSAGES; REDEFINE DOMAIN MESSAGES USING MESSAGES_REC ON [REGISTRATION.DECUS.DATA.BACKUP]MESSAGES.DAT; DELETE MESSAGES_REC; REDEFINE RECORD MESSAGES_REC USING ALLOCATION IS LEFT_RIGHT 01 MESSAGES_REC. 15 MESNUM PIC IS X(5). 15 CODE PIC IS X(1). 15 CREATION_TIME PIC IS X(8) QUERY_NAME IS CT. 15 CREATION_DATE PIC IS X(9) QUERY_NAME IS CD. 15 DELETION_TIME PIC IS X(8) QUERY_NAME IS DT. 15 DELETION_DATE PIC IS X(9) QUERY_NAME IS DD. 15 TEXT PIC IS X(25). ; DELETE MOD_COMMITTEE_FLAG; REDEFINE PROCEDURE MOD_COMMITTEE_FLAG DECLARE TMP PIC X. READY ATTENDEES WRITE FOR ATTENDEES WITH SURNAME STARTING *."SURNAME (or part of)" BEGIN TMP=*."Specific Committee flag" MODIFY USING CLASS=TMP END END-PROCEDURE DELETE PAYMENTS; REDEFINE DOMAIN PAYMENTS USING PAYMENT_REC ON SRS$BACKUP:PAYMENTS.DAT ; DELETE PAYMENT_REC; REDEFINE RECORD PAYMENT_REC USING ALLOCATION IS LEFT_RIGHT 01 PAYMENT_REC. 15 PAY_NUMBER PIC 9(5) QUERY_NAME PN . 15 DATE_CREATED USAGE IS DATE. 15 LAST_UPDATE USAGE IS DATE. 15 SRN PIC 9(4). 15 NAME PIC X(30). 15 PRC_FLAG PIC X. 15 AMOUNT PIC 9(7)V99. 15 CANCEL_FEE PIC 9(7)V99. 15 PFI_FLAG PIC X. 15 PAYMENT_TYPE PIC X. 15 PAYMENT_DETAILS PIC X(60). ; DELETE PAYMENT_TOTALS; REDEFINE PROCEDURE PAYMENT_TOTALS READY PAYMENTS FIND PAYMENTS WITH DATE_CREATED AFTER *."After date: " SORTED BY PRC_FLAG, NAME REPORT ON PAYMENTS.LIS SET COLUMNS_PAGE = 132 SET REPORT_NAME = "PAYMENTS AT THE SYMPOSIUM" AT TOP OF PRC_FLAG PRINT PRC_FLAG VIA PRC_FLAG_TABLE AT BOTTOM OF PRC_FLAG PRINT TOTAL(AMOUNT) PRINT CRN, NAME USING X(15), AMOUNT, PAYMENT_TYPE VIA PAYMENT_TYPE_TABLE, PAYMENT_DETAILS END_REPORT END-PROCEDURE DELETE PAYMENT_TYPE_TABLE; REDEFINE TABLE PAYMENT_TYPE_TABLE 1:"Cash", 2:"VISA", 3:"MASTERCARD", 4:"Business cheque", 5:"Personal cheque", 6:"Traveler's cheque", 7:"Bank Charges", 8:"Other", ELSE "Undefined" END_TABLE DELETE PRC_FLAG_TABLE; REDEFINE TABLE PRC_FLAG_TABLE D:"Discount", G:"Gratis", P:"Payment", R:"Refund", ELSE "Undefined" END_TABLE DELETE TMP; REDEFINE DOMAIN TMP USING ACOUNT_REC ON SRS$DATA:COUNTS.DAT; DELETE TMP_A; REDEFINE DOMAIN TMP_A USING ATTENDEE_REC ON [-.DATA]ATTENDEES.DAT; DELETE TMP_E; REDEFINE DOMAIN TMP_E USING EVENT_REC ON SRS$DATA:EVENTS.DAT; VD3:[VAX91B.CANADA.VANC89.ADD_LIST]AAAREADME.FIRST;1 The command file ADD_LIST.COM will add a definition (P2) to a library list (P1). The ususal library lists are HLP$LIBRARY and LNK$LIBRARY, the only two I have yet encountered that use this method. P2 is defined as the translation (in the JOB table) of the first of the following that is undefined: 'P1' 'P1'_1 'P1'_2 ... Example: HLP$LIBRARY and HLP$LIBRARY_1 are defined. Then the command @ADD_LIST HLP$LIBRARY FOO.BAR will execute the command $ DEFINE HLP$LIBRARY_2 FOO.BAR VD3:[VAX91B.CANADA.VANC89.MUN]AAAREADME.FIRST;1 KEYPAD Programming Kit January 26, 1987 ====================== Prepared by William R. Garland for DECUS. Wm. R. Garland, Manager Computer Services (Medicine) Health Sciences Centre St. John's, Nfld. A1B 3V6 INTRODUCTION The following is a precis of an article from the ------------ MUN Faculty of Medicine Computer Services Newsletter. Those of you who have been around long enough to remember line- oriented editors will remember the great improvement in personal productivity that occurred when keypad editting arrived. People used to the many DIGITAL operating systems (RSTS/E, RSX, RT-11, VMS, TOPS) will know about TECO. TECO, which stands for Text Editor and COrrector, is an editor extraordinaire, which allows one to write editting programs, that is, programs which operate on text files (such as manuscripts, programs, documentation, etc.). One of the fancier features of TECO is VTEDIT, for Video Terminal EDITor, which is a TECO program that made one's screen come alive by providing instant feedback about the content of one's file by always displaying an up-to-date, screen- sized window into the file, and which allowed single keystroke commands to perform editting functions (such as search and replace, cut and paste, advance or backup in the text by a specified entity such as paragraph, sentence, word). There were some technical problems with TECO on the older systems, especially in that it was a resource hog. TECO was, however, a 'freebee', written by dedicated hacks and provided to DECUS members. As such, it was an 'unsupported product'. There were some thirty-five or forty different versions of TECO over the years, and many survive today. Eventually, however, DIGITAL was forced to provide a 'supported' video editor, and they invented EDT, which did many of the things TECO did, although not all, but a few others as well. EDT became the standard text editor, and its most important feature was, again, keypad editting. EDT itself has now become old and is being replaced by TPU, the Text Processing Utility, which is the subject of another article. The point of all this is that the use of the keypad to provide single keystroke commands went a long way towards providing the individual programmer and other users with some of the power of the computer with which to perform editting tasks. The same phenomenon has occurred at the operating system level on VMS. One can now define keys to perform DCL (DIGITAL Command Language) commands, and, now that I am using these features, I wonder how I ever did things before. ..... This programming kit includes the command files and a small patch one must apply to one's LOGIN.COM file in order to do use the keypad effectively. Individuals will want to start with blank files and define keys for themselves as they go. Crucial to the process is the DEFINE/KEY command, which is well DECumented. You should already be beyond the novice stage to use these tools, however, because it is vitally important that you understand fully the steps in the program development cycle and the concepts of symbols and logical names used on VMS. Also, you should be able to invent many new tools of your own to add to the kit. Send me feedback, if you wish. VD3:[VAX91B.CANADA.VANC89.PAXLUG]AAAREADME.FIRST;1 Submissions from PAXLUG Montreal CONVERSION.C - A program to convert French ascii characters between the VAX, IBM PC and MACINTOSH. Uses external conversion tables in files which are assumed to be in the default directory. Submitted by Michel Savoie - Centre de Recherche d'Informatique de Montreal, 1550 de Maisonneuve O. Suite 1000, Montreal H3G 1N2 - 848-3983 PACK2DCL.COM - Command procedure to pack files together in a single container suitable for VMS MAIL. The container file will unpack itself when invoked as a DCL command procedure. Handles various types of binary files (libraries, executables etc.) without a problem and works over PSIMAIL. New version (with bug fixes) of procedures submitted last Year. Invoke without arguments for more info. Submitted by C. Singleton - Tordion Consulting, 2394 Park Row W. Montreal H4B 2G4 (514) 481-7908. VD3:[VAX91B.CANADA.VANC89.UWO]AAAREADME.FIRST;5 UWO VAX ACCOUNTING UTILITY COMPUTING AND COMMUNICATIONS SERVICES THE UNIVERSITY OF WESTERN ONTARIO CHRIS LEE & BRENT STERNER - FEBRUARY 1988 Overview r The "master" accounting system at UWO CCS is written in ACCENT ' r on our DECsystem-10, and will be ported to ACCENT ' on the VAX in the next year. The VAX accounting system described herein provides charging records for, and receives update information from, that master system. The VAX/VMS operating system provides an excellent audit trail which can be used in many ways. After significant effort trying to make an interactive product from another site function, and after considering the merits (and cost) of several commercial products, UWO CCS decided to write its own VAX accounting utility from scratch, using VAX C as the programming language. In summary, the UWO accounting utility tracks the VMS audit trail (ACCOUNTNG.DAT) "live", providing users of the VAX with account balances and session cost information. Shift and holiday discounts are implemented, as are special rates for print and batch queues. The Components There are two discrete software components to the system. - DAEMON processor (the heart of the system) - USER interface (communications to the DAEMON) This product is now running on the VAXcluster (8600 and 8550) in CCS at UWO. The latest efforts have been to stabilize the software and to package it suitably for DECUS distribution. The product was designed to fit our shop's unique circumstances, but should be easily extensible by any site having Digital's VAX C compiler. This is our first effort at writing a large package from scratch using "C", and we welcome suggestions and other comments. The User Interface Utility This component provides communication between users and the DAEMON using VMS mailboxes. Several "commands" have been defined to invoke the DAEMON, including LOGIN (so that the DAEMON knows about a new user), COST (so that the DAEMON can report a session cost to a user), and BYE (so that a user can be presented with a charge on his screen which is guaranteed to match the final session bill). Special privileged functions provide control of the system (for example closing of the charging files at midnight and reading in updated account balances when they are determined daily from the master database). The Accounting Daemon This component is the heart of the centralized accounting product for the VAX. It is initiated with system startup files when VMS is booted. Initialization files define necessary rates, holidays, shift discounts, account balances, and the most recent "snapshot" if a restart of the DAEMON is requested. All elements of the system which are likely to change at our site have been defined in these files, so that rebuilding the utility is not a frequent necessity. Periodically, this module reads (beginning where it previously left off) the VMS system accounting file (ACCOUNTNG.DAT) through to its new end of file, and updates the billing file (which is maintained as a parallel file for downstream input to the master accounting system). The period for this processing is defined in the initialization files (one minute works just fine for our system). At specified times, this component closes both the VMS accounting file and the billing file, keeping them in synchronization. At UWO CCS, this occurs daily at midnight. Periodic snapshots are taken of all system users, consolidating charges for the most recent snapshot period. Charging rates may change at any snapshot boundary. At UWO, rate changes occur on the hour, and snapshots occur every 10 minutes. The initialization files define these time frames. On request from any user (through the user interface), a session cost calculation is performed. All information relating to the session cost, are tallied as dollars and cents, and returned to the user via the user interface. On request (again through the user interface), a "preferred" logout process is performed. This first implements the equivalent of the cost request. Then the daemon stops the process and creates the billing record. The charge displayed to the user in this case is remembered, and propagated to the billing file, guaranteeing consistency. All requests from the user interface are processed with a higher priority than timed events. This was done to prevent unacceptable delays during such events as snapshots. Most user interface requests are processed in less than one second elapsed time. The daemon currently runs with elevated priority as a batch job to ensure timely response to user requests. If a user logs off in some other manner, it is his choice. He loses the logoff display of the session cost, but the VMS session termination entry is eventually cut and processed, and the parallel entry still made in the billing file. In this case, the session cost is determined when the daemon "catches" the VMS entry in ACCOUNTNG.DAT. Futures It would be nice to integrate a modified print symbiont with this system, so that the cost of a print task could be displayed on the trailer page. To date, this is still a dream. VD3:[VAX91B.CANADA.VANC89.WORD11]AAAREADME.FIRST;1 This directory contains three Word-11 extras that were developed by Brad L. Tinney Canadian Hydrographic Service 867 Lakeshore Road Burlington, Ontario L7R 4A6 (416) 336-4728 These are currently running on version 4.1 of Word-11. These items have been placed in the public domain and previous versions have been previously submitted to DECUS. They include a VMS access help file, a startup file memo form for the LN03 laser printer (eg. this page), and an index utility that gives a directory of Word-11 documents that includes the revision date and number of disk blocks as well as the document name and number (output can be sorted by any entry). VD3:[VAX91B.CANADA.VWS_CRIBBS]AAAREADME.FIRST;1 The Screen-Print and Screen-Save Utilities by Steve Cribbs Atomic Energy of Canada Limited Pinawa, Manitoba R0E 1L0 This submission consists of two VWS VAXstation specific programs that make use of the mouse-controlled copy and paste functions. These programs are intended for use only by a user logged in through the VAXstation's windowing interface - don't run them from a terminal. Text file MOUSE_COPY_PASTE.TXT provides a brief explanation of the new VWS mouse features. The Screen-Print program enables users to print a snap-shot of the visible text in any of the windows on their screen. This is similar functionality to that provided by the [Print Screen] key on a DEC VT-200 or VT-300 series terminal which writes to a printer connected directly to the terminal. Screen-Print offers several extended capabilities. With this program, users may route the text snap-shot to any print queue defined for their VAXstation. The text sent to the printer may be part or all of the text visible within a window. Users may also take advantage of any of the VMS PRINT command options - such as specifying a particular output format (eg. /form=LETP1). Several copies of Screen- Print may be running at the same time providing access to multiple print queues and/or various output formats. Screen-Save offers the capability of capturing the text contents of a workstation window into a file. Part or all of the window's text may be written out. The contents of several windows may be combined in a single file. By default, the output file is created in the current directory and is named SCREEN_SAVE.TXT. Users may over-ride that file specification. These two programs are intended as "handy gadgets" that the VAXstation user may call up quickly as a need for them arises. Once you have logged in initially, by responding to the VMS' Username and password prompts, new processes for the same account can be quickly begun. Simply select the "Create new VT220 window" option from the main menu and type either command SPRINT[Return] or SSAVE[Return] when the new window appears. Through this method, Screen-Print and/or Screen- Save may run along with your regular work sessions. They have been designed to automatically shrink to icon size as they start up and then can be conveniently nudged to an unused corner of the screen or pushed into the background. A simple mouse selection action recalls the programs for use when needed. Remember, these utilities are only available to people logged in through the VAXstation's windowing monitor. A more detailed description of operation and optional features is presented on your screen when the programs are started with the following commands: SPRINT HELP[Return] and SSAVE HELP[Return]