========> [VAX84C.BODOH]AAAREADME.TXT;1 <======== EROS DATA CENTER ************************************QREPORT************************************ QREPORT is a disk quota report program. It reports UIC, username, blocks used, % of base quota used, base quota and extended quota for each valid UIC on the current default disk family (SYS$DISK). QREPORT was written for use with the DISKUSE utility found on the fall 83 DECUS tape, but it can be patched to work with the normal VMS quota scheme. The username information is read from the UAF using RMS ISAM. If multiple users have the same UIC, the first user (alphabetically) is reported as the owner. If a UIC cannot be found in the UAF, the user name will be printed as '????????????'. The report is broken up into UIC groups with the exception of the first page, which reports those UIC's having unlimited quotas (signified on our system by having a base quota of 999999). Group totals and grand totals are given. Grand totals do not include the totals for the unlimited quota UIC's. This program assumes that you are using the DISKUSE program found on the Fall 1983 DECUS tape. DISKUSE treats the overdraft quota as the base quota and treats the permanent quota as your extended quota. QREPORT labels the two quotas as if you are using DISKUSE. You can use this program without DISKUSE if you change the following lines; MOVL DQF$L_OVERDRAFT(R11),R2 ; ***** BASE QUOTA ***** MOVL DQF$L_PERMQUOTA(R11),R5 ; ***** EXTENDED QUOTA ***** TO MOVL DQF$L_OVERDRAFT(R11),R5 ; ***** EXTENDED QUOTA ***** MOVL DQF$L_PERMQUOTA(R11),R2 ; ***** BASE QUOTA ***** NOTE: Use of this program requires a system UIC, BYPASS or SYSPRV. It is not a good idea to install it with BYPASS or SYSPRV. NOTE: QREPORT has not been tested under VMS V4.0 and may not run because of the expanded UIC size in V4.0 and possible changes to the UAF. Compile and link thusly; @QREPORT **********************************TREE.COM************************************* Tree.com is a command file which produces a directory tree of a specified disk or disk family. No files or file information is given, only directory names. This command file was written to use BYPASS privilege, but SETPRV will also work. Under V4.0, READALL should work too. To use, type; @TREE diskname: Page 2 or @TREE Omission of a disk name causes TREE to use your current default disk SYS$DISK. Several temporary files are created, but the final output is TREE.DAT in your current directory. A copy is also printed on the system default printer. Since TREE gets its information from the DIRECTORY utility, any V4 changes could change the positioning of certain data within a print line. If this happens, it should be quite simple to fix the problem. **********************************FLIPPER************************************** FLIPPER was designed to give a process an increased percentage of the CPU without locking up the system. If you have a process which is compute bound, and you increase the priority above 4, it will "hog" the system and may force a reboot. FLIPPER runs at priority 5 and flips another jobs priority between 4 and 5 in 1 second intervals. This gives the process a larger percentage of the CPU while still allowing other processes to run. Up to 20 processes can be controlled at one time. When the last process terminates, FLIPPER terminates. Note that FLIPPER is written in C. To run, you must first define a symbol; FLIP :== $disk:[dir]FLIPPER Then you give it the process ids; FLIP 3002a 5001f 70022 ************************************MORE*************************************** MORE emulates the function of the MORE utility of UNIX. It types text much like the TYPE command, but it pauses after each screen of data. This version is designed to work with VT52 and VT100 terminals, as it uses reverse video and cursor positioning. Other terminals could easily be handled by making minor changes. Once MORE pauses, it displays the name of the file and the percentage of the file that has been read. This percentage is not too accurate for small files but is still in the ballpark. At the pause, the user may type the following commands; Advances 1 page (23 lines) Advances 1 line D Advances half a page Q Quits the program MORE does not currently handle wildcarding, but may be changed at some future release. Other handy things which could be added are reverse and search functions. You should define the following symbol; Page 3 MORE :== $disk:[directory]MORE A compile/link command file "MORE.COM" is provided. Note that MORE is written in C. ******************************************************************************* EROS stands for Earth Resources Observation Systems and is not related in any way with the skin mag of the same name. Written and submitted by: Thomas Bodoh U.S.G.S. / EROS data center Mundt Federal Building Sioux Falls, SD 57198 (605) 594-2271 (may change soon, try 594-6581) ========> [VAX84C.BONNER]AAAREADME.TXT;1 <======== BONNER LAB RUNOFF Page 1 AUTHOR: ------- John Clement Bonner Nuclear Lab Rice University Box 1892 Houston Tx, 77251 (713) 527-4018 ABSTRACT Bonner Lab Runoff (RNO) Bonner Lab Runoff is a text formatter which when used with your favorite editor makes a complete word processor. Its syntax is almost a complete emulation of DSR (Digital Standard Runoff) and it is very compatible with previous versions of Runoff. The document and help file for this version can also be used for DSR. The intent of this program is to support com- plete scientific word processing to produce publication quality output. It has been used to produce thesis, progress reports, and scientific pa- pers here at Rice University. This version allows complete control of any special printer available via user definable escape sequences. In addition a macro facility allows text or sequences of commands to be abbreviated to a single label. If the printer has the correct features then variable spacing,subscripting, superscripting, and equation formatting are possible. By properly defin- ing escape sequences the user may support different printers in a tran- sparent fashion. In other words the same input text will print in identical fashion on different printers with different control codes and escape sequences. Table of contents, indexing and sub-indexing are all supported. Multiple table of contents or multiple indexing may be constructed from the avail- able commands. A variety of LAYOUT and STYLE commands may completely change the look of the pages. Table layout is simplified by right justi- fied and 'decimal' justified tabs. Permanent margins which apply to the page headers are available. These simplify the setting of header and text margins. All special characters are redefinable. The user may define new com- mands, and text macros. This allows this version to be customized to resemble other text formatters, or other verstions of RUNOFF. A two pass option allows forward references to symbols defined later in the text. This runs under VMS, RSX, IAS, RT11, TSX, and probably RSTS. RNO occu- pies a minimum of 30 to 37 kbytes depending on the operating system. Page 2 BONNER LAB RUNOFF Page 2 This distribution contains all files necessary for building RNO for any supported operating systems. All file names are 6 characters or less to acommodate all operating systems. Once you have built the executable im- age, you can use it to generate documentation and help files for your operating system. Several files are included to document this version. Instructions for building the program are in the BUILD.DOC file. Bugs that have been fixed are in RNOBUG.DOC. The latest enhancements are in CHANGE.DOC. BRIEF.DOC is a brief version of the full documentation. For VMS users the RNO.EXE is provided as a convenience. BIG ENHANCEMENTS 1. The number of tab stops is unlimited, and ellipses may be speci- fied for each stop independently. In addition stops may right, left, or center justify independently. The ellipses may be specified as a literal. 2. Numbers may be defined and incremented. This allows numbering figures, tables and so on. see: .DEFINE ITEM and .NUMBER ITEM 3. Reference labels to section numbers, chapters, and defined numbers may be defined. This makes possible references to vari- ous sections of the document. see: .DEFINE NUMBER 4. A 2 pass mode allows both forward and backward references. see: /2P option. 5. Parameters may be passed to defined commands. see: .DEFINE COMMAND. 6. All flags may be used in Titles and Subtitles. Extra commands .ENABLE/DISABLE FLAGS may be used to aid in using this feature. 7. .REQUIRE BINARY aids in merging documents and graphics. 8. The hyphenation algorithm has been improved. 9. RNO is more compatible with DSR. DSR compatability The SAVE commands were designed independently from DSR and as such are slightly incompatible with DSR usage. Since I do not have access to the new DSR manuals, I can not say more than this. Hopefully this will not cause users too much grief. ========> [VAX84C.BYTLUG.NRC.AKCOUNT]AAAREADME.TXT;1 <======== AKCOUNT PROGRAM DOCUMENTATION ----------------------------- The AKCOUNT software package is made up of the following files: AAAREADME.TXT -- This file ABSTRACT.TXT -- DECUS required abstract for this kit AKDOC.RNO -- Documentation/installation file, RUNOFF format AKCONFIG.INC -- Configuration file AKCOUNT.COM -- Batch command procedure, site independent AKRUN.COM -- Batch command procedure, site dependent AKBUILD.COM -- AKCOUNT build procedure AKCOUNT.FOR -- AKCOUNT, main program AKDSKUSG.FOR -- AKCOUNT, get disk quota routine AKGETREC.FOR -- AKCOUNT, get account record routine AKPACKET.FOR -- AKCOUNT, do packet type job routine AKPCTTIM.FOR -- AKCOUNT, calc % prime time routine AKSYSUAF.FOR -- AKCOUNT, get username/UIC/account routine AKTOTALS.FOR -- AKCOUNT, write to AKCOUNT.TOT routine AKTRNTIM.FOR -- AKCOUNT, set prime time routine MKGETINFO.MAR -- AKCOUNT, get VMS V3.x info routine AK.INC -- General common area BK.INC -- AKCOUNT, common area MK.INC -- AKCOUNT, common area ACRDEF.INC -- Definition file for system ACR symbols AKREPORT.FOR -- AKREPORT, main program AKADDTOTL.FOR -- AKREPORT, add user costs routine AKCOST.FOR -- AKREPORT, calc user cost routine AKPRINT.FOR -- AKREPORT, print info to terminal routine AKSORT.FOR -- AKREPORT, sort printouts AKSUM.FOR -- AKREPORT, totalize user jobs routine AKSWITCH.FOR -- AKREPORT, determine switches routine AKCONVERT.FOR -- AKCONVERT, main program AKOLDUSG.FOR -- AKCONVERT, get quota data special routine AKTIME.FOR -- AKTIME, main program AKTIMERR.MSG -- AKTIME, error message file QUADMATH.MAR -- General quad math package from DECUS tape SYSTARTUP.TXT -- Include file for AKCOUNT installation Ken Trumbley, Martin Serrer (613) 993-9262 National Research Council, Division of Mechanical Engineering, Systems Laboratory, M3, Montreal Road, Ottawa, Ontario K1A 0R6 ========> [VAX84C.CARLS]AAAREADME.TXT;6 <======== The software in this directory and it's subdirectory are the property of CARL'S GROCERY COMPANY, INC., and is being released to the Digital Equipment Corporation Users' Society for the exclusive use of its members. This software may not be sold. Additionally, Carl's will not be supporting it, nor do we make any claims for it. We release it with the hope that DECUS members may be able to pick and choose that which they want and discard the rest. This software release is authorized by Carl C. Waitz, President, Carl's Grocery Company, Inc., December 6, 1984. To incorporate the included CDD dictionary files, invoke DMU, then... DMU>SET DEFAULT CDD$TOP DMU>CREATE/SUB=:[CARLS]CARLSCDD CDD$TOP.CARLS DMU>CREATE/SUB=:[CARLS.CERT.MAINT]CERT CDD$TOP.CARLS.CERT DMU>CREATE/SUB=:[CARLS.CML.MAINT.CDD]CMLCDD CDD$TOP.CARLS.CML DMU>^Z [.BASICSHOP] BASIC PROGRAMING TEMPLATES & EDTINI I've seen so many EDTINI files that I hesitated to include ours, but it is set up especially for programming in basic, so pick what you want out of it and discard the rest...and send anything you're doing that you like better. Also included are several of our templates. Those with a .PLT extension are our regular templates. Those with a .PKG extension are those templates modified for use with programs which form a software package. In the past, we set up our systems along PLYCOM guidelines. That is, with a root directory for the company, and a subdirectory for each store. Resident in the store directory is an terminal format file, IDEN. which identifies the store. In the root directory is a PARAMETER. file which identifies the company and number of stores, with their subdirectories. Additionally, in the Carl's sytem library, [SYSLIB], is a device file, DEVICES., which contains pointers to the various device locations of different types of files in each system (one record per system). On all our new stuff, we are using DCL logicals, set in the LOGIN.COM in each subdirectory, directory. [.CERT] CERTIFICATES This is a simple little system we have for printing gift certificates. We have included it because... 1. It is a very simple example of a TDMS application. Page 2 2. It is an example of something we are now doing; setting up menu driven programs as foreign commands and using qualifiers to bypass menu levels. 3. It is a nice little program for printing gift certificates, and may be simply modified to print other such jobs or different format certificates. At least run time TDMS is required (as well as the CDD). (We have moved more and more to mnemonic menu selections and we try to allow the operator to bypass menus whenever possible by... 1 making it possible to choose any menu selection from any menu within a program, and 2 and using command qualifiers/parameters to bypass initial menus.) [.CML] BULK MAILING SYSTEM The CML (Customer Mailing List) bulk mailing system was our first TDMS application. There are quite a few changes we would make if we were doing it now. However, the system works very well for bulk mailing. And we are including it since I have not seen any other bulk mailing system for VMS. Simply build your mailing list from CRIS schemes from the Post Office or criss cross directories. The entry program is set up for heavy defaulting and entry can be fairly rapid. One operator can enter several thousand addresses in a day (our record is over 3500). The system really is designed for bulk mailing, and for our own needs. Therefore, there is no phone number field. It would be fairly simple to add one. I haven't because I don't want to mess with redoing the form definitions and we don't need the field at Carl's. The way the system is set up was partly dictated by the way we were doing things at the time. It requires a root directory for the system/company and a seperate subdirectory for each mailing list. Suggestions, comments and questions may be sent to... Buz Waitz Carl's Grocery Company, Inc. 1123 E. 9th St. Mission, Texas 78572 (512)585-4578 ========> [VAX84C.CARLS.BASICSHOP]AAAREADME.TXT;1 <======== The software in this directory and it's subdirectory are the property of CARL'S GROCERY COMPANY, INC., and is being released to the Digital Equipment Corporation Users' Society for the exclusive use of its members. This software may not be sold. Additionally, Carl's will not be supporting it, nor do we make any claims for it. We release it with the hope that DECUS members may be able to pick and choose that which they want and discard the rest. This software release is authorized by Carl C. Waitz, President, Carl's Grocery Company, Inc., December 6, 1984. This directory contains... The AMPERS utility, used for moving all ampersands to no less than column 80. EDTINI file we use...especilly for BASIC programing. Various templates we use to assemble programs. ========> [VAX84C.CARLS.CERT]AAAREADME.TXT;3 <======== The software in this directory and it's subdirectory are the property of CARL'S GROCERY COMPANY, INC., and is being released to the Digital Equipment Corporation Users' Society for the exclusive use of its members. This software may not be sold. Additionally, Carl's will not be supporting it, nor do we make any claims for it. We release it with the hope that DECUS members may be able to pick and choose that which they want and discard the rest. This software release is authorized by Carl C. Waitz, President, Carl's Grocery Company, Inc., December 6, 1984. This is the user directory for the gift certificate printing system. Included is a sample login command file. Once the CERTIFICATES command has been set (be sure to modify CERT.CLD to point to the right image), the program may be invoked using it... COMMAND SYNTAX: CERTIFICATES Command Qualifiers (mutually exclusive) Defaults /BUILD /CREATE /PRINT /MENU /MENU /BUILD Calls the module to build a file of instruction sets. /CREATE Calls the module to create a list of recipient names. /PRINT Calls the module to print certificates. /MENU Invokes the main menu. The program should be substantially self teaching. Each TDMS form contains some instruction, and help is available (help key). A review of the login command file will introduce you to a couple of directory commands that are also available. To use the system, the operator builds an instruction set file. Each record in that file contains instructions for printing a set of gift certificates. A set may refer to a second file, a name file, which contains a list of certificate recipients. When the operator is ready to print the certificates, the system produces a file of printed certificates as well as a ledger file which is a summary of the certificates printed. There is a print command in the login file which is in the form desirable for certificate printing. Page 2 NOTE: The certificate form we use has two stubs at the left of the certificate. ========> [VAX84C.CARLS.CERT.MAINT]AAAREADME.TXT;2 <======== This is the maintenance directory for the certificates system. There are four subdirectories included for maintenance purposes: BAS - source code DDL - record definitions OBJ - object modules RDF - request definitions Also included are... CERT.CLD - definition command file CERT.DIC - cdd subdictionary COMPIT.COM - command proceedure to compile and link program Special note: Included in the source code and object module directories are copies of private library routines for Carls. Rather than include the libraries, we have included only those routines which are accessed. ========> [VAX84C.CARLS.CML]AAAREADME.TXT;3 <======== The software in this directory and it's subdirectory are the property of CARL'S GROCERY COMPANY, INC., and is being released to the Digital Equipment Corporation Users' Society for the exclusive use of its members. This software may not be sold. Additionally, Carl's will not be supporting it, nor do we make any claims for it. We release it with the hope that DECUS members may be able to pick and choose that which they want and discard the rest. This software release is authorized by Carl C. Waitz, President, Carl's Grocery Company, Inc., December 6, 1984. To activate the customer mailing list system you will want to... 1) print out and read the documentation in the [CARLS.CML.MAINT.DOC] directory 2) modify the login file assignments 3) run LOADDEV to set up device file 4) use a text editor to modify PARAMETER. in the root directory 5) create a subdirectory for each list you wish to create 6) run LOADIDEN in each subdirectory 7) create and initialize master files in each subdirectory ========> [VAX84C.CONSAD]AAAREADME.TXT;3 <======== This submission consists of the following directories and contents: o CALLTREE - A program to print the chain of calls for a FORTRAN program and its associated subroutines. Printout is done in a treelike format with each level of CALL indented. o COOKIE - All new fortune cookie program which uses FORTRAN keyed access, and is a lot easier to maintain and update than the old format. o ETAPE - An update of the previously submitted EBCDIC Tape translator program. Now has user callable routines for accessing EBCDIC tapes directly from user programs. o LIBRARY - A library of useful routines written in FORTRAN. o LIST2FORT - Converts an output file or files from non-carriagecontrol format to carriagecontrol format for output on a line printer. Also illustrates use of wildcards on the command line and how to access them from within a FORTRAN program. o SYSMGR - A collection of useful system management stuff, in particular, a backup and restore procedure for small systems. o ST84 - The ULTIMATE Star Trek game. Any questions or comments on any of this stuff should be directed to: Mike Shefler CONSAD Research Corp. 121 N. Highland Ave. Pittsburgh, PA 15206 (412) 363-5500 ========> [VAX84C.CONSAD.CALLTREE]AAAREADME.TXT;4 <======== Description of CALLTREE follows. You can extract this text for insertion in your system help file. ********************************** 1 CALLTREE This program produces a flow chart of subroutine and function calls for a FORTRAN program. It operates off the listing files generated by the FORTRAN compiler. Prior to running the program, you should compile all routines with (at minimum) the FORT/LIST/CROSS command. CALLTREE will prompt for file names; you can enter the names in any order - the extension ".LIS" is automatically appended if not specified. At least one file MUST contain the main program identified in a PROGRAM statement. The output from CALLTREE looks like this: Call tree for program MAIN 2....SUB1 3........SUBSUB2 2....SUB2 2....SUB3 3........SUBSUB4 etc., where each level of indentation implies a lower level of subroutine call. Following that there will be a section listing each file and the names of the routines contained in it. If the filename is "" then that is an unresolved reference (or possibly a system or library call). ************************************ If the output format of the FORTRAN compiler is ever changed, this program will have to be modified. We are running FORTRAN V3.5-62 under VMS 3.7. This program will get exceedingly confused if there are any recursive calls in the FORTRAN programs you are cross-referencing. Even the situation where subprogram A calls another subroutine B which calls C, and C also calls B, but B is clever enough not to call C in that circumstance, will cause CALLTREE to bomb or loop endlessly. Questions and comments should be directed to: Mike Shefler Consad Research Corp. 121 N. Highland Ave. Pittsburgh, PA 15206 (412) 363-5500 ========> [VAX84C.CONSAD.COOKIE]AAAREADME.TXT;1 <======== This directory contains an all-new version of the Cookie monster program, written in FORTRAN. A complete set of fortune cookies is included as the file COOKIE.IDX (indexed by number). This program should be installed as a foreign command, for instance: COOKIE :== $SYS$MANAGER:COOKIE The help file (COOKIE.HLP) and the program listing hsould be read for further information. ========> [VAX84C.CONSAD.ETAPE]AAAREADME.TXT;8 <======== Abstract ======== ETAPE is a general-purpose program for handling EBCDIC tapes. It allows the user to move around at will within the tape, send output to different files, specify different blocksizes and record lengths for different files on the tape, and combine multiple tape files into a single output file. The capability of writing an EBCDIC tape from an ASCII file is also included. It will also handle ASCII to ASCII conversions. ETAPE removes all trailing blanks from tape records after reading them. On output, records will be blank padded and blocked to create fixed length tape blocks. A switch can be set to turn off the EBCDIC translation and allow the translation (or writing) of ASCII tapes. A set of subroutines callable from any higher-level language to perform these tasks is also included. Documentation on these subroutines can be found in the source listings provided. Installation ============ There should be (at least) the following files on the tape: AAAREADME.TXT this file ETAPE.FOR source program ESUBS.FOR callable subroutine package ESUBS.OBJ compiled version of above ETAPE.HLP help file for the program ETAPE.COM procedure to compile, link and install ETAPE ETAPE.EXE executable version After copying the files off the distribution medium, simply @ETAPE to install the program. Then, type "HELP ETAPE" for further information. The installation procedure will attempt to put the callable subroutines in a place called LIB$CONSAD:CONSAD.OLB; if, as is likely, this does not exist on your machine, figure out where you want them to reside and modify ETAPE.COM accordingly. An executable version of the program is included, in case you don't have the VAX FORTRAN compiler. Please direct questions or comments to: Mike Shefler CONSAD Research Corp. 121 N. Highland Ave. Pittsburgh, PA 15206 (412) 363-5500 ========> [VAX84C.CONSAD.LIBRARY]AAAREADME.TXT;3 <======== This directory contains the subroutines included in LIB$CONSAD, which are referenced by other programs in other directories within this submission. The subroutines are grouped into categories as follows: CHARSUBS - Subroutines dealing with CHARACTER strings CLISTS - SUbroutines dealing with lookup lists SORTS - Subroutines dealing with array sorting MISC - Miscellaneous subroutines Also included is our version of FORSYSDEF.TLB, which contains some additional information translated from MACRO-32 definitions, which are used in certain programs (ETAPE, for example). This file should replace the one you have in SYS$LIBRARY. The library subroutines can be placed there also, or you can have them in a separate directory - they are referred to as LIB$CONSAD elsewhere. Further information about them can be found in the file CONSAD.HLP, which is ready-made to be inserted in your system HELP file. The file CONSAD.OLB contains the object modules of all these routines, plus several other modules collected from previous DECUS submissions, for which the source is not included. Note that the ETAPE subroutines (ESUBS) are here also. ========> [VAX84C.CONSAD.LIST2FORT]AAAREADME.TXT;2 <======== This directory contains a program to convert text files (no carriagecontrol specification) into carriagecontrol files for output to a line printer. It was written to try out the wild card file lookup facilities of VMS. More information can be found by listing the program.t should be installed as a foreign command: LIST2FORT :== $SYS$MANAGER:LIST2FORT ========> [VAX84C.CONSAD.ST84]AAAREADME.TXT;3 <======== This directory contains the source, executable and subsidiary files for the ULTIMATE Star Trek game - TREK84. The installation of this game has been left up to the discretion of the reader. The following points should be observed, however: o The sources should not be left where the public can get at them. o The game (TREK84.EXE) accesses several files - the players must have write access to TREK84.DAT (the ratings file) and TREK84.STA (the statistics file). The file TREK84.HLB is used as the game's help library, and players must have read access to it. The program refers to these files through logical names - for a sample setup, refer to file ASSI.COM in this directory. o If the statistics and/or ratings file are destroyed accidentally, you must recreate them using TREK84.FDL and STATS.FDL respectively. o The file CAPTAINS.MEM should be made available to all potential players. It contains the information necessary to play the game. The source and subsidiary files are grouped as follows: o VARDICT.* is a set of files that gives definitions of all the COMMON variables used in the program. These are maintained as a text library. The file VARDICT.LIS is generated from that using: o DCPR.FOR and DCPR.EXE should not have to be used unless you are modifying the program and want to keep track of additional variables. o DICTIN.COM sets up the commands used to access the dictionary: 'var' - adds a variable 'whatis' - tells you what a variable means 'undef' - undefines a variable 'dict' - lists every definition o DEFINE.COM is used to enter each definition (which may be multiline). o All other .FOR files (except DCPR) are sources for the program. o All .FTN files are 'INCLUDE' files for the FORTRAN programs. o TREK%.HLP are the sources for TREK84.HLB o The .FDL files are used to create the data files accessed by the program. o The file 84L.COM is used to link the programs after compilation. ========> [VAX84C.DFWLUG]AAAREADME.TXT;2 <======== The following are submissions from the Dallas/Ft.Worth LUG [DFWLUG.ATTTECH] A new version of a previously submitted Personal Reminder program. Works very well and has many options which make it desirable. [DFWLUG.INTECOM] In the [.EZM] directory, a submission containing a suite of command and help files to allow the novice user/manager to use the Monitor utility easily and quickly. In the [.MGR] directory, a set of command files which: a) create new accounts (newuser.com) b) list user accounts by name or uic (listacnt.com) c) list disk use by username (use1.com -> use5.com) [DFWLUG.MOSTEK] A program which will allow a user on a VAX front-ended by a Micom port selector, to control the Micom from his terminal at his desk. [DFWLUG.SOHIO] In the [.SYSMGR] directory, a collection of command files usefull for the system manager. In the [.UTILITY] directory, a collection of routines which are usefull to the system manager or training personell. [DFWLUG.TECHDEVEL] In the [.IMAGE] directory, a command file which will manage the VAX accounting file in such a manner that you can run it with image accounting turned on, but not suffer the excessive cost in disk usage. This allows you to keep 'n' number of days of image data and a months worth of 'non-image' data. In the [.SAFARI] directory, a re-submission of a command file which will all you to 'search' for the existance of a known file(s) somewhere else on the system and locate them even if they have been renamed. In the [.SNAPSHOT] directory, a re-sumbission of a collection of command files used to automaticly monitor your system and notify a selected person when something out of the ordinary is discovered. Very usefull in helping to plug security leaks. In the [.V4COM] directory, a re-submission of a command file Page 2 which will notify you of what version V3.x command files should be 're-protected' when you upgrade to V4.0. [DFWLUG.UTC] In the [.FTP] directory, a collection of routines which describe file transfer system in use between a VAX 780 and an IBM PC. This file transfer system is compatible with the CP/M MODEM7 file transfer protocols, and was developed in C using the public domain CMODEM program as the basis for the file transfer portion. In the [.OWN] directory, a rewrite of the OWN verb submitted in the spring '84 SIG tape. The program has three parts. (1) Parsing and expanding the file specification entered by the user to include the translated device, default directory + subdirectories if needed. (2) Extracting the lowest parent directory from the expanded string to obtain the correct UIC for changing the files requested by the user. This is explained in detail in the documentation. (3) Changing the UIC in the file(s) requested by the user. In the [.PRINT] directory, an update to the PRINT verb submitted in the spring '84 SIG tape. Some bugs were found and have been fixed. This verb makes remote printing transparent to a user. In the [.WHO] directory, definition of the WHO verb which will allow a user to find the UIC, default device and default directory for a given username on all nodes. ========> [VAX84C.DFWLUG.ATTTECH]AAAREADME.TXT;1 <======== VAX/VMS REMINDER Version 4.2 This is a personal reminder utility capable of remembering hundreds of your most important events and reminding you of them when the time comes. *** THIS IS A MAINTENANCE RELEASE OF REMINDER *** REMINDER 4.2 enhancements: o /LOG option for REMIND ME o Highlighed display of one-shot reminders o Improved command line parsing *** Read INSTALL.MEM for installation instructions *** Your questions or comments are solicited and should be directed to: Stuart Renes, Dept. 4477 AT&T Technologies, Inc. 3000 Skyline Drive Mesquite, Texas 75149 (214) 288-2286 Happy Reminding! ========> [VAX84C.DFWLUG.INTECOM.EZM]AAAREADME.TXT;2 <======== EZMonitor by Kim Cooper and John Mealing InteCom, Inc. 601 Intecom Drive Allen, TX 75002 This submission is a suite of command and help files to allow the novice user/manager to use the Monitor utility easily and quickly. It includes a help library entry, a set of menus to access Monitor for any qualifier of function, and a formatted screen driver. It is really written to run only on a vt100 compatable crt. If anyone wants to add vt52 mode, have at it. Installation consists of adding the ezmonitor.hlp file to the system help library and creating whatever symbol (we use EZM) you want to point to ezmonitor.com. See ezm.doc for more details on using it. We can be contacted at (214)-727-9141. Hope you find it useful. ========> [VAX84C.DFWLUG.INTECOM.MGR]AAAREADME.TXT;2 <======== Jobs by John Mealing InteCom, Inc 601 Intecom Drive Allen, TX 75002 This is a suite of command files to do three system manager functions: a) create new accounts (newuser.com) b) list user accounts by name or uic (listacnt.com) c) list disk use by username (use1.com -> use5.com) All are driven by the job.com command file. There are several specialized features in each of these. NEWUSER allows creation of accounts and makes disk quota entries. It wants a data file containing the account names, disk numbers, and uic groups, but only types this to the screen so that they can be entered manually. It is not at all critical as to format, so make like you want it. NEWUSER will give any one in a selected group (we use 75) a WPS+ account, and calls the WPLINIT command file to do the initializing things. That command file is included in a modified form to map to NEW and block the prompts. Finally, if you haven't proper priviledges, it terminates; and it will NOT create a system acccount or allow any but default privileges. This allows a relatively inexperienced clerk to add accounts in reasonable safety. LISTACNT is a simple thing to do just that, but blocks some system and system manager accounts by checking the UIC. USE is a set command files to get the disk usage info from diskquota and the usernames from authorize and combines them into a formatted report which gives total usage by disk by username and total for each device. There will be some system dependent things like disk names to be customized, but it should run ok. ========> [VAX84C.DFWLUG.MOSTEK]AAAREADME.TXT;1 <======== POKE - port selector communication tool. connect MICOM port selector's console port to a VAX terminal port. Then from your office, logged in to the VAX, you can control the port selector (for example): $ poke ;VMS command (symbol) POKE> sta l1 l2 ;port selector command L001 C000 S ABR T03 I000 LT01 IDLE ;port selector reply L002 C001 S9600 T03 I000 X LT01 CONN 348 ; " " " POKE> msg 0 d Welcome to the CAM port selector. All systems are up. POKE> @pmmess.dat ;indirect command file MSG 0 E MSG 0 Welcome to the CAM port selector. VAX is down for PM, back in afternoon. All other systems are up. MSG 0 C0 POKE> ^Z ;ctrl Z to exit, (or timeout) $ files: AAAREADME.1ST this file POKE.FOR main fortran routine POKESUB.MAR macro subroutines CMNMLB.MAR writer's macro library CMNOLB.OLB writer's object library GETCMDNU1.MOR macro source for routine already in library MMESS.MAR same MMESX.MAR same ZMESZ.MOR same POKEASM.COM assembly command file (use XPOKEASM instead) POKEBLD.COM link command file XPOKEASM.COM my assembly command file XPOKEBLD.COM my link command file (makes an XPOKE, for development) RUNPOKE.COM command file to run it (POKE :== @runpoke.com PSCONFIG.DAT indirect command file we use to set up our port selector In your systartup.com, do $ POKE :== @SOME$DISK:[YOURDIR]RUNPOKE.COM $ SET TERM /PERM /NOBROADCAST /NOINTERACTIVE /SPEED=(9600,9600) ddcu: ddcu: is terminal line to which the port selector command console is connected. Original writer no longer with department, wishes to remain anonymous. Page 2 Try the executable image first, it might work. You may have to $ ASSIGN/SYSTEM ddcu TTJ0 since written for TTJ0: Good luck if you need to rebuild it. All I have done is collected all the pieces, and made a command file to build it. I wanted to make mods, but no luck. Particularily, change the TT: references to SYS$INPUT and SYS$OUTPUT so POKE can be run from command files or batch jobs, but I don't understand IO to TT: vs. IO to SYS$INPUT/OUTPUT yet. Look for rewrite on next tape Currently can only run from interactive terminal, but a command file can be run e.g. POKE> @PSCONFIG Feel free to call or write (I prefer you write) Tom O'Keefe MOSTEK 1215 W. Crosby Road Carrollton, TX 75006 (214) 466-7289 ========> [VAX84C.DFWLUG.SOHIO]AAAREADME.TXT;1 <======== [VAX84?.DFWLUG.SOHIO]AAAREADME.TXT Sohio Petroleum Mid-Continent Division Submitted by: Mike Drabicky Sohio Petroleum Two Lincoln Center 5420 LBJ Freeway Suite 900/LB03 Dallas, TX 75240 (214) 387-5187 This directory contains submissions in two areas: one for system management, the other some utility command procedures. The system management subdirectory has command procedures, manuals and forms that have proven useful to me in managing several VAX systems. The utility command procedures are things that have come in handy from time to time and may be of use to other people. 1. [VAX84?.DFWLUG.SOHIO.SYSMGR] A variety of command procedures and manuals used to deal with VAX system management. 2. [VAX84?.DFWLUG.SOHIO.UTILITY] Command procedures that have proven useful from time to time in using VMS. ========> [VAX84C.DFWLUG.SOHIO.SYSMGR]AAAREADME.TXT;1 <======== [VAX84?.DEFLUG.SOHIO.SYSMGR]AAAREADME.TXT Sohio Petroleum Mid-Continent Division Submitted by: Mike Drabicky Sohio Petroleum Two Lincoln Center 5420 LBJ Freeway Suite 900/LB03 Dallas, TX 75240 (214) 387-5187 There are a series of command procedures here that have helped me a great deal in dealing with system management problems. In particular, I found it hard when I first started in just getting going. There's so much to learn and do that it's hard to say just where to begin. I found particularly offensive the lack of any machine readable examples. I have included some of those here for those of you just starting out managing your system. I hope that they prove useful to you in trying to figure out just what a VAX really is. Actually, there isn't anyone that really knows that but DEC isn't telling! Here's what's in this section: 1. CAI.COM - A common entry point to all DEC computer aided intruction courses. 2. DISABLE.COM - A command procedure to really disable an account. 3. DTRCAI.COM - A companion command procedure for the CAI.COM file that starts up the Datatrieve CAI course. 4. EDTCAI.COM - A companion command procedure for the CAI.COM file that starts up the EDT CAI course. 5. ENABLE.COM - A command procedure that reverses the effects of the DISABLE.COM procedure. 6. LOGIN.COM - A sample system manager's login command procedure. 7. LOGINMSG.COM - A companion command procedure for the SYSLOGIN.COM file that displays the message of the day. 8. MIDNIGHT.COM - A sample command procedure that runs a midnight to do the necessary system management things to your system. 9. REL2SEQ.FDL - The file descriptor language file for converting the reminder program's data file to a sequential file. Page 2 10. REMINDER.COM - A command procedure to send mail to each user with his remiders for the day. It is used with the MIDNIGHT.COM file. 11. SPM.COM - An easier way to run SPMVTDISP. 12. SPM240.COM - An easier way to run the SPMVTDISP on a VT240/241. 13. SYSLOGIN.COM - The system-wide login command file. 14. SYSTARTUP.COM - The system-wide startup command file. 15. VMSCAI.COM - A companion command procedure for the CAI.COM file that starts up the VMS CAI course. ========> [VAX84C.DFWLUG.SOHIO.UTILITY]AAAREADME.TXT;1 <======== [VAX84?.DEFLUG.SOHIO.UTILITY]AAAREADME.TXT Sohio Petroleum Mid-Continent Division Submitted by: Mike Drabicky Sohio Petroleum Two Lincoln Center 5420 LBJ Freeway Suite 900/LB03 Dallas, TX 75240 (214) 387-5187 The files here are a command procedure and some RUNOFF documents. These are things that have come in handy time and time again in orienting users to VAXs and for some system management. They may prove useful to you in running your VAX. 1. JOBDESC.TXT - An RSX RUNOFF version of the job description for both the operator's and system manager's job on a VAX. I found that I had trouble answering the question "What does a system manager do?". The results are this document. I appologize that I didn't have time to convert it to DSR but you'll get the general idea. 2. LORDVAX.RNO - Something all should know about their VAX. 3. REGISTRA.RNO - A user registration form for creating accounts on a VAX system. It should be used in conjunction with the USERORIEN.RNO file below. 4. SPLINE.COM - A handy command procedure to produce splines for the back of three ring notebooks. 5. USERORIEN.RNO - A new user orientation manual. It's slanted to the particular company involved but is easy enough to adapt to fit your particular needs. ========> [VAX84C.DFWLUG.TECHDEVEL.SNAPSHOT]AAAREADME.TXT;2 <======== SNAPSHOT V1.2 June 1, 1984 Written by: Eric S. Zipp Technology Development of California 621 Six Flags Drive Arlington, Tx. 76011 (817) 461-1242 SYSTEM SNAPSHOT Page 1 1.0 SCOPE: ______ There always exists a problem with insuring the security of a processing system and the integrity of the data which is stored on that system. In most cases the responsibility fall on the shoulders of the System Manager to 'insure' that the System is not compromised in any way and even be aware if an attempt has been made to breach the security measures which have been put in place on that System. The problem is compounded when there often exists a need to give a number of users privileges, in support of job related activities, which allow them to circumvent most if not all system level checks and safeguards. SNAPSHOT attempts to act as a passive monitor of the VMS System and checks a number of 'areas of interest' on a regular basis, and reports when it notices that their has been a change since the last time a change was made to that 'area of interest'. 2.0 PROCESSING PHILOSOPHY __________ __________ The philosophy used is to interrogate some areas of VMS and generate a file with the results of that interrogation called SNAPxxx.OLD , where 'xxx' is some mnemonic which is indicative of what you have out there. The command file SNAPSHOT.COM, on my system, is run every night at midnight but its run interval is arbitrary. Each time SNAPSHOT is run is generates a 'current' SNAPxxx.OLD for each area of interest interrogated. The system utility DIFFERENCES is then run comparing the 'current' file against the 'previous' file. If there were no differences recorded, the 'current' SNAPxxx.OLD file is deleted. If, however, there were differences, a message is sent to SNAP$RECIPIENT, normally 'SYSTEM', via the MAIL utility with the SNAPxxx.DIF as the text of the message, where SNAPxxx.DIF is the output of the DIFFERENCES comparison along with a note at the bottom which tells you the creation date of both files. The 'previous' SNAPxxx.OLD file is then deleted and the 'current' file with the changes becomes the one to check against. The command file which does the checking and notifying is called SNAPCHECK.COM as is designed to compare two 'P1'.OLD files and as such can be used to check and 'new' areas of interest that need to be added to suit your system. 3.0 AREAS OF INTEREST _____ __ ________ A number of Areas within the VMS system are monitored to insure that a change has not be made by someone that should be dealt with. The processing philosophy is modular to allow additional areas to added based on individual needs. SYSTEM SNAPSHOT Page 2 3.1 INSTALLED IMAGES(PROGRAMS) VMS has a large number of installed images which in many cased require privileges to run. In addition 'privileged' users may 'install' programs on the system which even after the 'job related' privileges are removed, a program which they installed could give them whatever 'clout' they desire. As an attempt to identify when an installed image is added or modified, a full listing of all images which are installed on the system as well as what privileges they have are dumped to a file (SNAPINS.OLD). 3.2 SYMBOLS Since Symbols can be used to 're-direct' an operation to another, ie. if a symbol DIRECTORY was set up to preform the function PURGE. When the user asked for a directory listing he would receive something else. All the currently defined Symbols are dumped to a file (SNAPSYM.OLD). 3.3 LOGICAL NAMES Logical assignments are another area which can 're-direct' an operation so as a precaution all the currently defined logical names are dumped to a file (SNAPLOG.OLD). 3.4 DEVICE PROTECTION Each physical device on the system carries with it a access protection scheme which is used to control who has access to what. In order to monitor any changes in that area a list of all devices and their protection are dumped to a file (SNAPDEV.OLD). 3.5 SYSGEN PARAMETERS An obvious area is that of what Sysgen parameters are currently in effect. A full list of System parameter settings are dumped to a file (SNAPGEN.OLD) as well as the /CONFIGURATION and /ADAPTER output. SYSTEM SNAPSHOT Page 3 3.6 SYSUAF ENTRIES Since it would be possible to just be 'up front' and have the SYSUAF.DAT file modified, a dump of all the current SYSUAF entries is made to SNAPUAF.OLD. 3.7 SYSTEM/USER FILE ACCESS Within any system their are files which require controlled access. Setting the VMS file protection on them is fine unless it get changed after the fact. There exists a file called SNAPFIL.LST into which you the user can add any files you wish checked with your system. At present the degree of checking extends to making sure that the file exists and that the protection as well as the files 'revision' date, has not changes since the last 'authorized' change. The command file will read SNAPFIL.LST and create a file with the current file protection and rev-date called SNAPFIL.OLD. The only exception to this rule is the file SYS$SYSTEM:SYSUAF.DAT which, if checked, will not have the 'revision date' written to the SNAPFIL.OLD file. The reason for this is that any 'use' of the MAIL Utility will result in the SYSUAF file being updated which would result in SNAP$RECIPIENT getting a mail every time that SNAPSHOT is run. 3.8 LOG-FAIL ANALYSIS An obvious area to check for attempted entry to your system is the number of log fails which has occurred within a given 'check-interval'. On my system, I have it set up to run SNAPSHOT every night at midnight. The first time this module is run it will create an Index-sequential data file by the name SNAPLFAIL.DAT. This file will hold the date and time of the 'last' check made, as well as an entry for each User which has had log-fails. The procedure will access the current Accounting.dat file for any log-fails this 'check-interval' and write that information to a temporary holding file. The holding file is then accessed and the number of log-fails for a user is compared to the 'average' number of log-fails which is on file for that user. If the actual number of log-fails exceeds the average the User name and log-fail information is sent to the SNAP$RECIPIENT. In an effort to 'clean up' after itself, the procedure will also read all users which are in the SNAPLFAIL.DAT file and access the SYS$SYSTEM:SYSUAF.DAT file to see if they exist on the system. If not, that specific User record in SNAPLFAIL.DAT is removed. A word of caution should be added in that if, on your system, you 'close' your system accounting file and then start up a new version be sure that SNAPSHOT has a chance to run prior to switching over to the new version. SYSTEM SNAPSHOT Page 4 3.9 DECnet RELATED CHECKS DECnet is also an access within the System which should be monitored. At the present time this module is under development and is not ready for the cold cruel world. I would expect that it will make it's appearance in the not too distant future. 4.0 INSTALLATION INSTRUCTION ____________ ___________ o Copy the files into a directory or sub-directory that they will be run from. This location will also be the area that the SNAPxxx.OLD will live. o Define the logical name SYS$SNAP to point to the area that the Snapshot files live. This can be system wide or go into SNAPSHOT.COM as a local definition. o Define the logical name SNAP$RECIPIENT if you wish the MAIL output from SNAPSHOT to be directed to any account other than 'SYSTEM'. The default SNAP$RECIPIENT definition is 'SYSTEM'. o Add any additional file you wish to be monitored by adding the files in SNAPFIL.LST . o The SNAPSHOT system can be run manually or submitted via BATCH to run at some interval that you wish. 5.0 FEEDBACK ________ I would be interested to hear what 'additional' areas of interest or modification have been made to the SNAPSHOT package once it gets out in the world on it's own. To that end, please feel free to give me a call and share whatever you have found,... I shall do the same. ========> [VAX84C.DFWLUG.UTC.FTP]AAAREADME.TXT;1 <======== VAX BASED CP/M 'MODEM7' COMPATIBLE FILE TRANSFER PROGRAMS This document describes the file transfer system in use between a VAX 780 and an IBM PC. This file transfer system is compatible with the CP/M MODEM7 file transfer protocols, and was developed in C using the public domain CMODEM program as the basis for the file transfer portion. Two filter programs are provided in the package to insert/delete CR's in CR/LF combinations to match the VAX conventions on text files. These routines are run on the VAX, and are invoked automatically by the use of the appropriate DCL procedures. These DCL procedures should be used on text files only. FTP should be used directly when transferring binary files. The programs in use are as follows: $ FTP -x FileName This routine handles file sending ('-s'), receiving ('-r'), or appending ('-a') from a remote system. Direction of flow in the above commands is relative to the VAX. On the command line -x is one of the above (-s,-r,-a) and FileName is the file to be sent or received. $ VAX2IBM InFile OutFile Routine to convert LF-only line termination to the CRLF line termination required by CP/M and MS/DOS compatible systems. $ IBM2VAX InFile OutFile Routine to convert CRLF line termination into the LF-only line termination required by the VAX RMS file system. Also removes any CTRL-Z characters found (CP/M EOF marker). The DCL procedures in use are as follows: $ FSEND FileName Invokes VAX2IBM to build a properly formatted text file, then FTP to send that file to the remote system. $ FRECV FileName Invokes FTP to receive a text file from the remote system, then invokes IBM2VAX to properly format that file for VAX RMS. A couple of notes are in order: The FTP routine is set up such that only ONE port is required in Page 2 order to run it, the terminal that issues the FTP command is the same one that sends/receives the file. The use of a simple terminal emulator program to activate the VAX is all that is required. The protocols are set up for this form of delayed synchronization. FTP has been tested at 9600 baud and should not fall behind. When the VAX is heavily loaded, occasional timeouts may occur. These timeouts most often manifest themselves in checksum or other errors. The timeouts are necessary for proper synch of the protocol in case of errors, and may not be disturbed. DEC C runtime will output the LF's to the file during the IBM to VAX conversion. This differs slightly from the way it would appear on the VAX in RMS native form (null characters, with some form of char count as termination). If file is then copied using the DCL COPY command, the LF's are removed, and Null characters and char counts are inserted in their place. The only places I have found where the conversion format will cause a problem is with the DIFF command, and with CMS. With DIFF, use DIFF/IGNORE=SPACING to cause a comparison of file contents only. With CMS, edit the file and save it. The new version will be in the correct format. The original MODEM program was developed by Ward Christensen several years ago, and has undergone extensive modifications in the user interface. The protocol has not changed, except in spin-off versions that play around with CRC instead of simple checksums for verification. These are normally identified as MODEM9 and and above. There may be other (possibly better) protocols around, but this one has become the de facto standard for the micro world. If you have problems, contact me before changing the protocol. I could actually have an implementation bug (shock!). It has been tested fairly extensively with at least two other systems, but bugs are insidious. Bugs, enhancements and any other wild ideas should be reported via mail to LOAFMAN (TCC01 or TCC02), or via phone to: Kenneth W. Loafman work: (214)556-8889 (sometime during the day) home: (214)245-2618 (before 10:00pm weekdays) ========> [VAX84C.DFWLUG.UTC.OWN]AAAREADME.TXT;1 <======== This is a rewrite of the OWN verb submitted in the spring '84 SIG tape. The program has three parts. (1) Parsing and expanding the file specification entered by the user to include the translated device, default directory + subdirectories if needed. (2) Extracting the lowest parent directory from the expanded string to obtain the correct UIC for changing the files requested by the user. This is explained in detail in the documentation. (3) Changing the UIC in the file(s) requested by the user. This program does NOT change the file's UIC to the user's UIC but to the lowest defined directory's UIC. Therefore, you do not have to worry about someone using this verb to gain control of another users directory. We also found a bug in the old version. By setting your default to the directory containing your default directory, as in [000000], a user could change the UIC on anybody's default.DIR to the same UIC value as it's parent . This meant the next time the orginal user of the changed default.DIR logged in he would not own his top level directory and could not access anything. Software support assures me that that file id FID for the top directory is reserved by VMS and would not change between systems. This is true on all of our three systems and the VAX's used by software support. FID == (4,4,0). If in doubt do: DUMP/HEADER DRnn:[000000]*.DIR and look at the first word of the back link file id. If this does not match you'll have to make a modification in the code. The documentation tells you where to do it. I have made an effort to fix the bug in the old version by looking at the FID and DID of each file read before modifing it. If either one contains a value of 4 in the first word ( 3 words long ), I display an error and do no modification. Depending upon how your system and user's top directories are setup, this may or may not solve the problem, but it's better than before and it works for us. Page 2 I used macro instead of fortran since this is a low level RMS change and is harder to follow in a higher level language. I use QIO's whenever possible because it's easier to see whats happening. The RMS fields are all described in the I/O USERS GUIDE VOL.1 CH. 2. INSTALLATION ------------ This verb must be installed with SYSPRV. UNITED TECHNOLOGY BUILDING SYSTEMS 433 Las Colinas Boulevard Irving, Texas 75039 (214) 830 - 7501 Attn: DUANE RIECH ========> [VAX84C.DFWLUG.UTC.PRINT]AAAREADME.TXT;1 <======== INTRODUCTION ------------ This is an update to the PRINT verb submitted in the spring '84 SIG tape. Some bugs were found and have been fixed. This verb makes remote printing transparent to a user. *************************************************** INSTALLATION GUIDE FOR THE PRINT VERB *************************************************** 1. DESCRIPTION OF PROGRAMS a. DECPRINT.COM - This is a command procedure used on a local print. b. DIABLO.COM - This command procedure prints the output file(s) on a local, 80 column, letter quality printer. You may not use this but it must be installed. It creates its own 80 column header page as a replacement for DEC's header page. c. FILTABLE.FOR - A fortran program to add or delete the computer's alternate choices if it determines a node is down. d. PRINTABLE.DAT - The file created by the program FILTABLE.FOR. This file is an indexed file, with one key a character string 15 bytes in length. e. REMDIA.COM - This command procedure is used for a remote print on a high quality printer as described above for DIABLO.COM. f. PRINT.CLD - The command language definition Page 2 file describing the new print verb characteristics. Note that this description is identical to DEC's except for the image activated by the verb. This cld must be executed for each user on login with the "set command" command or better yet at system startup inserting it in the dcltable. g. REMPRT.COM - This command procedure is used for normal printing to a remote node. h. REMPRT.FOR - This is a fortran program which is activated by the print verb. The program must be edited to modify the open statement for PRINTABLE.DAT and the LIB$DO_COMMAND 's to point to the correct device and directory. No other programs are needed to compile and link the program. 2. WHERE TO PUT THEM I would suggest that the programs be put in their own directory . I have kept the working version on the system disk under our library directory : sys$sysroot:[utclib.network] . The directory should contain the following: decprint.com diablo.com printable.dat remdia.com remprt.cld remprt.exe remprt.for (and executable) remprt.com filtable.for (and executable) The default directory for DECnet (ours is [NETUSR]) should contain: remprt.com remdia.com This is repeated all nodes that are to participate in the remote print. 3. COORDINATING THE LOGICAL NAMES BETWEEN NODES Printer's logical names reflect location of the printer within the Page 3 building and not physical devices. This makes any routing by the program transparent to the user. Printer logical names are three characters long with the following syntax : P1A ________||| | _______|| | | | | | v | | Position of printer : Location of printer on a specific | | floor. (A-Z). Could be thought of a the face of a clock | | with A being 12:00 --> L being 6:00 --> Z being 11:59 etc. | | | v | Floor Number : This value specifies which floor the printer is | located on (0-9). | | v Printer type : Type of printer to be used. Currently, the software supports two types : P --> Normal printers D --> Diablo printers (letter quality) At system startup logical names following the syntax just mentioned should be defined. Logical printer names pointing to printers on that system will end with a single colon ":" , signifying a physical device. Logical printer names pointing to remote cpu printers will be defined with the remote cpu DECnet node name, always ending with "::". This is how the image determines if a remote print is needed. SYS$PRINT and SYS$DIABLO are also allowed as correct queue names. Here are some examples. DEFINE/SYSTEM P1A TXD7: This a local cpu print , on a regular DEC printer, 1st floor, location A. DEFINE/SYTEM D6D IRIS:: This is a remote cpu print, on node IRIS:: , on a DIABLO letter quality printer, 6th floor, location D. On the cpu node IRIS however, the definations would be reversed showing P1A as cpu node EAGLE:: DEFINE/SYSTEM P1A EAGLE:: Page 4 and queue D6D as a local print to a physical device. DEFINE/SYSTEM D6D TTB8: ********************************************** If you have any problems feel free to contact me at UNITED TECHNOLOGY BUILDING SYSTEMS 433 Las Colinas Boulevard Irving, Texas 75039 (214) 830 - 7501 Attn: DUANE RIECH ========> [VAX84C.DFWLUG.UTC.WHO]AAAREADME.TXT;1 <======== WHO VERB -------- The WHO verb allows a user to find the UIC, default device and default directory for a given username on all nodes. Format: WHO username Specifies the username to be searched for. The username specified can be complete or a subset such as the following: WHO te This will display all occurances of usernames starting with te. NO wildcard specifications are allowed in the username. /UIC= Allows a search by specifying the UIC instead of the username. The UIC value must follow the standard VMS UIC format of [###,###] but no leading zeros are necessary. Wildcard searches are allowed on either the group number or member number. Such as: WHO/UIC=[20,*] which will find all occurances of a group number of 20 on all nodes. or WHO/UIC=[*,20] which will find all occurances of a member number of 20 on all nodes. The /UIC qualifier cannot be used with a username specified. The WHO verbs works by reading the file SYSUAF.DAT. SYSUAF.DAT supports indexed reads of the username, total UIC and member number of the UIC. It does NOT allow indexed reads of the group number. This requires a sequential read of the file. This would take TOO much time when considering how much SYSUAF.DAT is accessed by the cpu. Because of this, I use a copy of SYSUAF.DAT to do my sequential reads. As part of the nightly operator batch job we copy SYSUAF.DAT into SYSUAF.TMP. Therefore, all queries made on group number will be at most 1 day old. Page 2 Macro program are necessary because the UIC keys are either 2 or 4 byte UNSIGNED values. I'm not aware of a way to declare that in a FORTRAN program. COMPILE AND LINK ---------------- Nothing special about creating the executable. FOR WHO MAC WHOREAD LINK WHO+WHOREAD INSTALLATION ------------ The image must be install with SYSPRV to access the SYSUAF.DAT file. ========> [VAX84C.DUPONTES]AAAREADME.TXT;1 <======== DuPont Experimental Station's Submissions submitted by: Mark D. Oakley DuPont Experimental Station Wilmington, DE (302)772-3522 Two submissions are contained in this direcotry. The author would be interested in hearing of any problems or suggestions which anyone might have regarding these submissions. As usual, this submission was assembled at the last moment. As a result, the documentation may be a bit sketchy. Please feel free to call if you need further information. 1. [.KEYDEF] KEYDEF consists of a DCL command procedure to down-line load the programmable function keys on a VT-240. The user is prompted for key number and character string. On-line help is available. Control characters (carriage return, line feed, etc.) may be stored in a function key using this procedure. 2. [.ZDEC] ZDEC (Zero Device Error Count) is a program to zero out the device error count of a specific device without re-booting the system. Error counts for CPU and memory are not handled. ========> [VAX84C.DUPONTES.KEYDEF]AAAREADME.TXT;1 <======== KEYDEF.COM is a DCL procedure to downline load the programmable function keys on a VT-240. The user is prompted for an appropriate key number, and then a character string to store in the key. The character strings are stored only in the "shifted" key. This procedure does not support any of the locking or unlocking features of the VT-240. On-line help is available by entering a question mark to the prompt for a key number. Control characters can be stored in the keys by using the "caret/character" convention. For example, ^M designated carriage return, ^[ designates escape, ^A designates ascii character "01", etc. ========> [VAX84C.DUPONTES.ZDEC]AAAREADME.TXT;1 <======== ZDEC (Zero-out Device Error Count) sets the error count field in the device UCB (UCB$W_ERRCNT) to 0. This program requires CMKRNL privilege, and executes at elevated IPL to lock the I/O database. To execute this program a symbol should be set as follows: $ ZDEC :== $mydisk:[mydir]ZDEC To run ZDEC, enter: $ ZDEC [/OVERRIDE] device where device designates a device. Logical names are accepted and translated. If the device is allocated (that is, if the owner field in the UCB is non-zero), then ZDEC exits without changing the error count, unless the /OVERRIDE qualifier is used. Note that ZDEC does NOT zero out counts for CPU or MEMORY errors. ZDEC was developed under VMS Version 3, and will probably fail under Version 4. The author plans to support ZDEC and re-submit it when Version 4 is available. ZDEC has proven useful in zeroing out error counts without re-booting the operating system. ========> [VAX84C.FERMILAB]AAAREADME.TXT;6 <======== [VAXF84.FERMILAB]AAAREADME.TXT Fermilab Accelerator Control System Submissions submitted by: Dr. Frank J. Nagy Fermi National Accelerator Laboratory P. O. Box 500 Mail Stop 306, Batavia, IL. 60510 (312)-840-4935 This directory tree is a submission from the Fermilab Accelerator Division. The programs and command procedures in this directory tree are general utilities and system management utilities either written at Fermilab or acquired from DECUS (via a SIG tape or from the library) and modified. In many cases the software can be used at other sites without modification; some of the system management utilities are included as starting points from which sites can produce their custom versions. Each of the next-level subdirectories includes an AAAREADME.TXT file which provides additional details; this file provides an overview of the entire submission. This submission represents files added or changed since the Spring 1984 submission. A complete resubmission has not been made of many of the files to help reduce the size of the SIG tape. To make full use of much of the material in this submission, you must have access to the Spring 1984 SIG tape Fermilab submissions. Access to the Fermilab Accelerator Division submissions on earlier tapes may also be helpful. Questions and comments on these submissions may be directed to the submitter listed above. Fermilab will not provide support for this software on anything other than an informal basis as time allows. [.LIBRARY] This area contains object, macro and text libraries which provide extensions to the system libraries in SYS$LIBRARY:. The sources of new and changed routines are included (see Spring 1984 SIG tape for the remaining sources). A complete copy of the FERMILIB object library and its Help file are included. Page 2 [.PMU] This area includes a set of routines to implement post mortems for detached processes. This is done via condition handlers to catch a severe (fatal) signal and produce the appropriate dumps. Post mortems are meant to provide a means to locate infrequently occurring bugs in otherwise operational software. [.STARTUP] The command procedures in this area illustrate the management of logically disjoint disk sets from a pool of disk drives shared by two or more processors. [.SYSMGR] The command procedures in this area illustrate the implementation of a set of cyclic batch jobs which repeat nightly, weekly and monthly. [.UTILITIES] This area contains two small utility programs. The source (VAX C), build and executable image files are included. Documentation is included as comments in the source files. The GETREMUSR program is used to limit DECnet access to turnkey accounts which have no password and are controlled by their login procedures to limit the actions a user may take. The GETREMUSR program returns the remote user name and DECnet node name when an account is being accessed via a network command terminal (SET HOST at the remote end). The values are returned in local DCL symbols. The login procedure may then test these values to limit access to the account. The TSTUSRPAR program allows the value of the one of the site-specific SYSGEN parameters (USERD1, USERD2, USER3 or USER4) to be returned in local DCL symbols. On the Fermilab Accelerator VAXen, USER4 is used to disable normal timesharing during a startup. Many of the site-specific actions and defintions done by the normal startup are skipped and the interactive login count is set to 0 by using TSTUSRPAR to test the USER4 parameter near the beginning of the SYSTARTUP.COM file. This permits the system to be booted for software upgrades or other standalone work without modifying the extensive startup procedures each time. In addition, by using a SYSGEN parameter, a standalone startup can be made even after the system has been shutdown by using a conversational boot and setting USER4 (to 1) in SYSBOOT. ========> [VAX84C.FERMILAB.LIBRARY]AAAREADME.TXT;10 <======== [VAXF84.FERMILAB.LIBRARY] This submission contains some of the libraries stored under the logical name FERMI$LIB on the Fermilab VAXen. These libraries are meant as extensions to various libraries in SYS$LIBRARY:. Several of the other submissions reference one or more of these libraries. The files in this submission are: AAAREADME.TXT This file. FERMILIB.OLB Object library of general routines for VMS program. Sort of additions to the VMSRTL/STARLET library. FERMILIB.HLP Help on routines in FERMILIB, extracted from header comments in the source code. The following files are sources for the routines in FERMILIB.OLB which have been added or changed since the Spring 84 SIG tape submission: ARGUTILS.MAR Return number of arguments passed to calling routine, check an argument for default. GBLSECUFO.MAR Open a file to create a global (or private) section. GETDSKQUO.C Get information from disk quota file. LIBABSQUE.MAR Absolute queue instructions for HLL's. LIBBITS.MAR Set, clear, test elements of a bit array. LIBFAOOUT.C Combination of $FAO/$FAOL and LIB$PUT_OUTPUT. LIBOPRMSG.C Output a message to operator console via OPCOM. LIBSECUFO.C Enhanced version of GBLSECUFO.MAR. MAPIOSPAC.C Map UNIBUS I/O space (any processor). MTHQDIV.MAR Quadword integer division routines. RMSRENAME.C Interface to RMS $RENAME service to rename a file. ***** NOTE NOTE NOTE NOTE NOTE NOTE NOTE ***** The routines in the LIBABSQUE.MAR module (LIB_INSQUE, LIB_REMQUE, etc.) have had a major bug fixed. This bug affects queues which are accessed by two different asynchronous instruction streams (two separate processes or AST and non-AST code in a single process). This bug was causing queues to become mysteriously garbled in several of the processes in the Fermilab Accelerator Control System. If you are using these routines, please use these new versions! ========> [VAX84C.FERMILAB.PMU]AAAREADME.TXT;11 <======== [VAXF84.FERMILAB.PMU] This submission contains the PMU library and the associate sources, Help and commmand procedures. PMU stands for Post Mortem Utilities. The PMU library contains a set of routines to be used in condition handlers to get post mortem dumps of registers, the stack and portions of memory. This can be useful for detached process which function properly for the most part but sometimes fail due to infrequent bugs or other mysterious problems. It can be very hard to debug such processes (such as network servers) which fail only rarely and only under somewhat non-reproducible circumstances. In such cases, post mortem informat can assist in isolating the problem. The Post Mortem Utilities are a synthesis of several sets of routines written for specific network-based applications at Fermilab. The goal was to produce a more general package of greater applicability and to ease the maintainence for several applications. The package includes utility routines called from condition handlers and a generic post mortem condition handler illustrating the use of the routines. ***** WARNING WARNING WARNING WARNING WARNING ***** The development and testing of these routines is incomplete. The final problem concerns the generic post mortem condition handler and the use of disk files for SYS$OUTPUT and SYS$ERROR output streams from single image (no DCL) detached processes. In particular, although all the routines have been tested and debugged, none have yet been incorporated into any operational application at Fermilab (mostly due to a lack of manpower). So let the programmer beware! ========> [VAX84C.FERMILAB.STARTUP]AAAREADME.TXT;7 <======== [VAXF84.FERMILAB.STARTUP] This submission includes a few of the procedures used in the VMS startup on the on the Fermilab Accelerator Controls VAXen. Each procedure includes comments documenting its usage and actions. The files PUBDSK*.COM and MOUNTDSKS.COM were developed to solve the problem of locating and mounting public disks (mounted /SYSTEM) amoung a set of removeable media disk drives (RM03's and RA60's). The problem was that disk packs could be moved around between shutdown and startup of the system. Our configuration includes a spare disk drive to which a pack may be moved from a failed drive, we wanted a automatic means of configuring the volumes so that no pack was explicitly tied to a drive nor were the accelerator operator's required to perform any special actions to reconfigure (other than to move the disk pack). These same procedures can also assist V3 systems with dual HSC's to make the mounting of public user packs independent of which HSC is to used (assuming the drives are dual-ported to the two HSC's). At Fermilab, if an HSC fails all that is required is to reboot the system and the other HSC will automatically be used. Of the files mentioned above, MOUNTDSKS.COM is specific to Fermilab and only included here is to illustrate the procedures described above. In a similar vein, the procedures DSKCONFIG.COM and SPAREDISK.COM are used to coordinate the usage of a pool of disk drives between multiple processors. The configuration in the Fermilab Accelerator Control System includes RM03 and RM80 disk drives dual-ported between two 780's. This past year, two HSC50's with several RA81 and RA60 disk drives were added. The two systems used are the Operational system used to control the accelerator and, on the backup VAX, the Development system used to develope the software for the control system. The Operational system uses only removeable-media disks for reliability - a pack can be moved from a failed drive to a standby and have the control system in operation after 10 minutes or less. In addition, backups of the Operational disks are done pack-to-pack to provide an extra level of redundancy. The Development system uses only fixed-media drives with backups maintained on tape. The management problems associated with configuration were: 1. Coordinating the identity of the standby RM03 and RA60 drives from the Operational system (given the startup procedures described in the second paragraph, above) to the Development system. 2. Preventing access by users to the RA60 disk drives in actual use by the Operational system. The DSKCONFIG and SPAREDISK procedures were created to automatically enforce this management scheme. The Operational system sets all fixed-media drives to /NOAVAILABLE, the Development system does the same for all removeable- media drives. DECnet is then used to communicate the identity of the standby RM03 and RA60 drives from the Operational system to the Development system so the Development system may use these drives to access offline media. The procedures described above will be upgraded with VMS V4 and used to manage a system consisting of 3 785's configured as a single processor system and a two-processor VAXCluster with both systems accessing logically distinct sets of disks connected via HSC50's. Page 2 ========> [VAX84C.FERMILAB.SYSMGR]AAAREADME.TXT;6 <======== [VAXF84.FERMILAB.SYSMGR] This submission includes a few of the utility procedures used by the system manager on the Fermilab Accelerator Controls VAXen. Each procedure includes comments documenting its usage and actions. These procedures are used at Fermilab to implement a set of cyclic batch jobs which run every night, every week (Monday morning) and on the first day of every month. These batch jobs are then used to schedule other jobs and events for that particular time interval. The EVERY*.JOB files are submitted as the cyclic batch jobs. These files provide for resubmitting the batch job for its next cycle. All other actions of the batch job are handled in the EVERY*.COM procedure so that changes may be made without having to delete and resubmit the batch job (since the VMS batch job controller only remembers files by their file ids, not their file specifications). All the jobs provide a common facility for batch jobs to be submitted for other users (the EVERY* jobs run under the SYSMANAGER user, this is just another [1,4] account but without all the dangerous SYSTEM privileges). The USRSEJOBS.COM procedure implements the scan of the database (see USRSEJOBS.DAT for an example) and uses the SETUSER and GETUAF programs contained in the Fermilab submission for the Spring 1984 VAX SIG tape. With V4, USRSEJOBS.COM will be changed to use the supported SUBMIT qualifier /USERNAME to submit a batch job under another user (replacing at least the SETUSER program). ========> [VAX84C.INTEGRAPH]AAAREADME.TXT;1 <======== HLISP INSTALLATION AND RELEASE NOTES Installation of HLISP is relatively straightforward. The executeable image file is named LISP.EXE, and may reside anywhere appropriate. It is most easily invoked by defining a global symbol (usually in your LOGIN.COM) such as: $ LISP :== $dev:[dir]LISP When HLISP is invoked in this manner, it will prompt for input at the terminal. Input is EVAL'd, and the result is PRINTed. Indirect command files are also supported on both the DCL command line, and during interactive use. Command files may be nested up to three levels, and have a default file type of "LSP". HLISP also has an interactive help facility using a VMS standard help library. The filename for the library is LISP.HLB, and it is accessed by HLISP using the logical name LISPHELP. To make this facility work, the following logical name assignment should be performed: $ ASSIGN dev:[dir]LISP LISPHELP Note that the device and directory default to SYS$HELP if they are not specified in the ASSIGN. To invoke the HLISP help facility interactively from within LISP, evaluate the following form: (HELP) LISP will prompt for additional inputs while in the help mode, just as the VMS HELP command does. An alternate form permits an initial topic to be specified: (HELP ) where is the name (or the first few characters of the name) of a topic in the help library. Further documentation on HLISP is contained in the HLISP Reference Manual, included in the delivery in the file LISP.MEM. Please note that this LISP is intended to be most compatible with Standard LISP as defined by the paper "Standard LISP Report", by J. Marti, et al. It is not yet, nor will it likely ever be a fully compatable implementation of this particular definition, however it is the preferred baseline. This LISP presently implements about three fourhts of this standard, but contains many extensions to make the things I am presently working on easier to do. Copies of this paper are available upon request. PLEASE, give me some feedback on what you like and dislike. I'm afraid I am able to do only limited verification, so I would especially appreciate hearing about any problems. Also any items on your wish list may get added to mine! Below are the release notes for all official releases, in reverse Page 2 chronological order. The trouble report logs are also included in each release as a seperate file. Release Notes Version 6 *** The following new functions have been added: ASPAWN spawn an asynchronous subprocess ATTACH attach the user's terminal to another process (like DCL's) HASHSTR return an integer in a given range, hashed from a string Release Notes Version 5 *** This release is largely a bug fixing release. *** The function SQRT has been added. *** The pretty printer has been modified to be slightly more efficient. Release Notes Version 4 *** A list structure editor has been added. Together with some support routines, it is now possible to edit a list, a function definition (assuming that it is not a compiled or builtin routine), or a variables value. The new functions defined for this new capability are: EDD edit a function definition EDL edit a list EDP edit a variable's property value EDV edit a variable's value EDLAUX auxiliary function used by all of the editor functions EDLNXTCMD auxiliary function EDLNXTVAL auxiliary function These functions are builtin but not compiled. Also, with the addition of these functions, the E function has been deleted. *** The following new functions have been added: COPY returns a copy of its argument (no cyclic structures please) FLAG1 flags a single id GETP get the property list of an id (CDR of an id no longer works) LAST return a list containing the last element of its argument list OUTF redirect output temporarily, evaluate arguments (not compiled) REMFLAG1 removes a flag from a single id In addition, in an effort to migrate more toward the standard, the following functions have also been added: CONSTANTP return T if argument is a constant DIVIDE return quotient and remainder as dotted pair EXPT return arbitrary power of a number FLAG add a flag to a list of ids FLAGP test for the presence of a flag on an id MAX2 return the larger of two values Page 3 MIN2 return the smaller of two values MINUSP return T if argument is a negative number ONEP return T if argument equals 1 (or 1.0) PLUS2 return the sum of two values REMFLAG remove a flag from a list of ids *** The pretty printer routines were made smarter. Improvements were made in the formatting of LISP code (primarily LAMBDA LET LOOP PROG), and in the way quoted items are output. This also resulted in a new auxilliary function (PPAUX2) being defined to assist the other pretty printing routines, and extending the PRLENGTH function to permit it to compute the print-lengths of expressions using the short hand format for quoted items. PPPL was also improved to not produce to PNAME property, which is non-portable. All of the pretty printer routines that the user is likely to invoke interactively have been modified to invoke TERPRI before they terminate. This required adding a new routine PPINT (PPI with no TERPRI call) for use internal to PPAUX... *** In previous versions there was a problem interrupting garbage collection by using a control-C. As a result, garbage collection messages were defaulted on so the user would beware. This has now been changed now so that control-C is disabled during garbage collection, and garbage collection messages are now defaulted off. Note that when garbage collection is in progress, a control-C will be ignored so you may need to try again if LISP fails to respond to your control-C. *** The implementation of function definition storage and lookup has been changed. The functions GETD, PUTD, and REMD must be used to access a function's definition, since the definition is no longer kept on the property list of the id. This change was made primarily for efficiency. Also, the property list may no longer be accessed using CDR. The function GETP has been provided for this purpose. *** The reference manual has been improved by adding more detail to the descriptions. The help library has also been updated and improved. *** Various minor fixes to make function conform more closely to the LISP Standard LISP Report and to improve shortcomings. *** The functions CSET and CSETQ have been deleted, since they are non-standard and add nothing to the implementation, with the possible exception of confusion. *** SETQ was extended to permit multiple assignments in a single invocation. *** The name of the HLISP help library file has been changed from LISPHELP.HLB to LISP.HLB. Release Notes Version 3 *** One of the most significant new features of this release of HLISP is the addition of a reference manual. The manual is still in preliminary form, but anything is better than nothing. Page 4 *** Additional MAP composite functions have been added: MAP apply a function to CDR segments of a list MAPC apply a function to CAR segments of a list MAPCAN build a concatenated list of results from applying a function to successive CAR elements of a list MAPCON build a concatenated list of results from applying a function to successive CDR segments of a list MAPLIST build a constructed list of results from applying a function to successive CDR segments of a list *** Vectors have been added, according to the definitions in the Standard LISP Report. The new functions are: MKVECT create a vector UPBV determine the upper bound of a vector GETV get a vector element PUTV store a vector element Each vector element is initialized to NIL, and may reference an arbitrary S-expression. The vector itself is allocated dynamically as new virtual address space, however S-expressions referenced by it must be allocated from the LISP heap. *** The ability to expand the LISP heap has been provided via the function GROWMEM. *** The builtin LISP condition handler was made a little smarter so that when the user overflows the LISP call stack, the resulting access violation error message also includes an indication of the cause of the problem. The error checking routines used internally by many of the builtin primitives have been made smarter, e.g., the expression (SET !*GC T) will no longer give an access violation if !*GC has no APVAL, but return the normal error message. [This expression should more probably have been (SETQ !*GC T). *** The garbage collector now prints messages at the beginning and ending of the collection process by default. This was found desirable because a control-C during garbage collection tends to leave the system in a rather worthless state. *** The SSPAWN function was modified to return the completion status of the process. This status is an integer, which is a standard VMS completion status. The function GETMSG was added to convert this number into the corresponding system message string. *** The message produced by STATUS was made slightly more self explanitory, and the TERPRI call before the message was made conditional on there actually being something in the output buffer. *** MSG was converted from an FSUBR to an LSUBR so that it formats the output based on the result of the argument after evaluation. *** The function QUIT was added as the standard synonym for EXIT (to exit from LISP to the operating system). *** The function PAIRP was added as the standard synonym for CONSP (to detect dotted pairs). Page 5 *** The function OBLIST replaces the old function SYMLIST to display the ob-list. *** Various minor fixes to make function conform more closely to the LISP Standard Report. Release Notes Version 2 *** READ now supports list syntax using square brackets (aka "super brackets") in addition to parentheses. A right bracket may be used to terminate parenthesized lists early, to any depth. The outermost list is implicitly enclosed in brackets. (Note that these extensions are not supported in LINT.) *** PP.LSP now is much smarter about maximizing the amount of text on a line. PPUAX (the internal smarts used by all of the pretty printer functions) is also smarter about some of the forms it is working with. There are also new functions: PPI Pretty print indented PPPL Pretty print property list in DEFPROP comapatible form E Spawn an edit command line to DCL Note that the E function will probably need to have the command line modified to properly invoke your favorite flavor of editor. PP is now also much faster than in the past due to bringing many of its computational chores into the interpreter as normal primitives. PP is now also builtin, though it is still implemented in LISP. *** The following new functions have been added: APPEND1 append an atom to the end of a list DOWNCASE convert to lower case EXIT exit from LISP to VMS LET define & initialize local variables for a list of forms LOCSTR locate a substring within a string LOOP convenient PROG-like iteration OCML invoke indirect command file programmatically POP pop element from stack POSN return current position on output buffer PRLENGTH return print length of an s-expression PUSH push element onto stack REVERSE return a copy of the input list in reverse order UPCASE convert to upper case See the help file for further information. *** When LISP is initializing, it now checks to see if the logical name LISP_INIT is defined. If it is, its value must be the name of a LISP command file (default type is .LSP). This command file is then executed before control is started at the terminal. E.g., the DCL command line: $ASSIGN PP LISP_INIT will cause LISP to load the PP command file before prompting at the terminal. *** Minor extensions were made to the definitions of the following functions: DEFPROP now handles multiple property-value pairs *** All of the internal calls to builtin LISP functions such as CONS, READ, Page 6 RATOM, PRIN1, TERPRI, etc., have been made non-traced so that it is now easier to debug macros and such by tracing these primitives without having all of the internal calls cluttering up the trace listing. Release Notes Version 1 This release of LISP is now the "official" version 1, dated August 5, 1983. This version and all subsequent versions will have a builtin symbol defining the current version. This symbol is VERSION. It may be PRINTed. This release has many new features and bug fixes. The previous version was considered to be an alpha test version. This version is considered to be a beta test version. The trouble report log for the alpha test (pre-version 1) version is included in the distribution, as it will be for all subsequent releases, for anyone who is interested. This version contains a couple of incompatabilities with the previous version. The DR form for defining readmacros has been changed to DRM, for compatability with other implementations. The trouble report log mentions the other, the special symbol returned by READCH for an end-of-line has changed. Other than these two items, all other changes are believed to be extensions. This version also contains an updated version of PP, and several other tools, as well as an updated version of SIR, and some example rules. Several other LISP goodies are also in the works. A new version of LINT has also been added, with a more convenient command line. ========> [VAX84C.JOHNSON.SYSUTL.DEVTOOL]AAAREADME.TXT;1 <======== DevTool DEVTOOL Is an interface between the VAX operating system and the user. DevTool enables user-assigned default parameters for specific system commands. The user may also define a default filename specification for the entire set of DevTool commands. DevTool is TRANSPARENT to the user. DEVTOOL was originally written in DCL at Milton Bradley Co. This much improved BASIC/DCL version was written at Amherst Associates in order to improve speed, versatility, maintainability, and general operation. DEVTOOL has been extensivly tested and used, in all its incarnations, for several years now so it should be "Bug Free", but as we all know.... DEVTOOL has been tested under VMS V4.0 and works well. A V4.0 version of DEVTOOL is included. To use DEVTOOL under V4.0 simply rename NewDevV4.EXE to NewDev.EXE It is advisable, for speed reasons, that a system-wide logical be set up for the DevTool directory... $ Assign/System Sys$SysRoot:[SysUTL.DevTool] Sys$Devt: ... and that the program NewDev be installed on the system... $ run sys$system:install Sys$Devt:newdev.exe/open/shared/header /exit The program SHDEV.EXE provides a fast way to see what Work_Areas #1-#9 have been set to. Define this in your DevSetUp.com... $ wh :== $Sys$Devt:ShDev If you envoke ShDev with a work_Area on the commandline you will be shown that Work_Area's definition in BOLD. *********************************************************** ***** ***** ***** For more information please read DEVTOOL.DOC. ***** ***** ***** *********************************************************** If you have any questions, Comments, or Suggestions please contact... Page 2 Paul Lind 22 Ward Street Amherst, Ma. 01002 ========> [VAX84C.JOHNSON.SYSUTL.DICT]AAAREADME.TXT;1 <======== ProofRead PROOFREAD is a user-freindly (ugh... that phrase!!) spelling checking program. For Documentation please read PROOFREAD.DOC If you have any questions, Comments, or Suggestions please contact... Paul Lind 22 Ward Street Amherst, Ma. 01002 ========> [VAX84C.JOHNSON.SYSUTL.NAMELIB]AAAREADME.TXT;1 <======== NameLib NameLib is a package of subroutines intended to be used to Parse a forign commandline, to Parse filenames, and to handle default filename fields. NameLib was originally written, by Robert S. Harris at Milton Bradley Co., in PASCAL. It was transported to Amherst Assosiates where for mantianance reasons it was translated into VAX-11 BASIC (Sorry Bob) and somewhat improved. Many of the original bugs, or were they features, have been removed or repaired. To use NameLib include NameLib.Def in your main program. %INCLUDE 'Sys$SysRoot:[SysUTL.NameLib]NameLib.Def' Link your program with Sys$SysRoot:[SysUTL.NameLib]NameLib/LIB. NameLib has been tested under VMS V4.0 and works well. If you have any questions, Comments, or Suggestions please contact... Paul Lind 22 Ward Street Amherst, Ma. 01002 ========> [VAX84C.JOHNSON.SYSUTL.SCANLIB]AAAREADME.TXT;1 <======== ScanLib ScanLib/lib contains a series of subroutines which allow the keyboard to be scaned for input using QIO calls. To use ScanLib include ScanLib.Def in your program... %INCLUDE 'Sys$SysRoot:[SysUTL.ScanLib]ScanLib.DEF' and link your object to ScanLib/LIB For more information see ScanLib.Def. ========> [VAX84C.JOHNSON.SYSUTL.TOOLS]AAAREADME.TXT;1 <======== Directory SYS$SYSROOT:[SYSUTL.TOOLS] CLRTIME A digital clock program... to use just run ClrTime DELTREE.COM A program from the VAX Professional magazine and modified. Deletes entire directory trees. DOWN.COM Yet another set default program. Define Dowm :== @Down and use this program to get to subdirectories. ENCIPHER A program to encrypt text and program source just give it a word to use as a seed... The same word is used to DeCrypt. ESCAPE.COM A program containing VT100 escape sequences to... @ESCAPE CLEAR -- Clear Screen " " SPLIT -- A fun clear screen... try it! " " SMOOTH -- Smooth Scroll " " JERKY -- Jerky Scroll " " RESET -- Reset Terminal " " VT100 -- Set ANSI mode " " VT52 -- Set VT52 mode OUT.COM A terminal lock program. Accepts a Key code and locks the terminal with a message telling folk where you are. On control_Y the program requests a Key Code. If it is correct the terminal is unlocked. REPEATER.COM A program to repeat a single DCL command every N seconds. ********* DECNet programs. ******** NETCOM.COM A program to allow the writing and exicuting of a command file on sequential remote nodes... This program will have to be modified to deal with your sites node names. See NetCom.Hlp for Page 2 more info. TRANSFER.COM A program to allow the transfering of files from or to remote nodes. Will retry the transfer, n times, if the transfer fails. This program will have to be modified to deal with your sites node names. ******* Local Printer Programs ******* VT102, DecPRO, VT200 series Local printer port programs. NOTE: These programs send escape characters for DEC Printers. (LP50, LP100, Etc.) SETPRINT.COM sets printer charateristics accepts 2 peramerters P1 = 80 or 132 sets printer character size for 80 or 132 coloms. P2 = D or L sets for Draft mode or Letter Quality mode. PRINT.COM Sends the specified file to the local printer. FORMPRINT.COM Sends the specified file to the local printer and formats the output with header and page number. ========> [VAX84C.JOHNSON.SYSUTL.VTLIB]AAAREADME.TXT;1 <======== VT1Lib VT1Lib.DEF contains VT100 and VT52 escape sequences for inclusion in VAX-11 Basic programs. VT1Lib.DEF should be fairly self explanitory. ========> [VAX84C.JPM.DECUS]AAAREADME.TXT;1 <======== This directory contains two sub-directories: PDP Contains programs / subroutines for automatically logging into an RSX-11M system from your VAX, and executing commands on the RSX system. COMMANDS Miscellaneous command procedures: CD Another change directory command. DIRCOMP Compare two directories and optionally delete files that are the same. LOSTFILES Find files that are in a directory owned by the someone else. ONLYUSER Ensure that only one user logs into a given account. To be used as part of a captive command procedure. LOGINMSG Display login message to certain classes of users. Messages are given a Start and Stop date/time, so you can enter a message for next months PM to begin the day before PM and end when PM is scheduled. See MSG and CLEANMSG. MSG Enters messages into the message file. CLEANMSG Deletes expired messages. If you have any problems with or corrections with these programs, please let me know. Of course, in the unlikely event that any of them trash your system or do anything else unpleasant, don't blame me. Use them at your own risk. John P. McGrath, Analyst American Newspaper Publishers Association Technical Research Department P.O. Box 17407, Dulles International Airport Washington, D.C. 20041 (703) 620-9500 ========> [VAX84C.HGRAPH]AAAREADME.TXT;1 <======== date: December 7, 1984 to: HGraph DECUS Users from: Dennis V. Jensen Ames Laboratory 310 Metallurgy Ames, Iowa 50011 515/294-4823 subject: HGraf3 - An HGraph DECUS Release for REGIS. The initial DECUS release of HGraph was at the Fall 1983 Symposium. Release one was coded entirely in DEC Fortran 66 compatible code. The second release was distributed at the Spring 1984 symposium. Included in the second release was a new WRTSTR (extracted as WRTST2.*) which would generate characters as vectors (stroke font); it was not dependent on any particular terminal's character generator. Also, included was a cubic spline interpolation line drawing routine (extracted as SMOOTH.*) which was compatible with the DASHLN calling convention. HGR550 files on this distribution are the same as the second release (Hgraf2) files which support the Visual 550 (TEK4014 compatible) and the Bausch and Lomb DMPL plotters. This third release includes support for REGIS compatible terminals. It was initially developed for the VT-125 terminal although it should work with other REGIS compatible terminals. Refer to the VT125.DOC file for information on which modules were modified to adapt Hgraph to this terminal; it includes insights as to the conversion for other terminals if users would like to make changes. The HGR125 files support a REGIS terminal and the Bausch and Lomb DMPL plotters. Hgraph is coded in FLECS. This structured Fortran code is contained in the .FLX files. The FLECS generated Fortran 66 code is in the .FOR files. The HGraph document is in the HGraph.DOC file with the associated Runoff file as HGraph.RNO. An RT-11 FLECS translator FLECS.* (RE: RT SIG Fall 81 Tape) is also included for reference. Refer to the VAX Fall 82 SIG Tape [VAX82B.FORDAERO.UTIL.FORDUTIL] (or something to this effect) for a VMS FLECS translator. Other Flecs translators are available from SIG tapes and the DECUS library. PLOT3D.FOR is included as a separate file. A FLECS version is not included as it does not exist. PLOT3D is known to have bugs, but will work for many of the 3D plots you may wish to do. Although considerable HGraf3 - HGraph DECUS Release - REGIS support. PAGE 2 development is occuring at the Ames Laboratory on the 2D versions of HGraph, no additional work is currently planned for the 3D code; PLOT3D should be treated as unsupported. In general, you will find that the source code is quite transportable to other operating systems, especially if you transport the .FOR files. Hgraph was designed to provide graphics support on small systems but is quite extendable to larger systems. You can look forward to a new interactive graphics editor called UGraph which is based on Hgraph. It is menu driven and requires no programming. It unfortunately is getting larger though and is being developed on the VAX. An overlayed version for small systems may be possible, though. It is running in test mode now and will likely be available in the Spring of 1985. The following notes relate primarily to Hgraph on RT-11 (small) systems. They are included as they may help you isolate setup problems: When using HGRAPH it is common to encounter the message "LINK-F-Library list overflow". Increase the library list size with the /P switch when linking. For example: r link prog/P:400=prog,sy:hgraph A commonly occuring run-time error when using HGRAPH is "?MON-F-Trap to 4 NNNNNN" or "Stack Overflow". This message likely indicates a lack of program stack space. The solution is to increase the amount of program stack space using the /B linker option. For example: r link prog/B:1400/P:400=prog,sy:hgraph The default value of B is 1000 octal. This problem will undoubtedly be encountered when using threaded code. All code included in this distribution is in the public domain and may not be marketed for profit. It may be altered without the explicit permission of the authors. Any corrections or significant modifications to HGraph are of interest to the authors and may be communicated to the address above. The authors and their employers assume no responsibility for the correctness or the appropriatness of the software included in this distribution. ========> [VAX84C.LEVINE]AAAREADME.TXT;1 <======== This submission to the FALL 84 symposium consists of two subdirectories, each of which contains a fuller description of the programs. [.INDEX] FORTRAN Cross Referencer and Flow Chart Generator [.MISC] Assorted tools FRAG Files-11 Level 2 disk fragmentation statistics DIR Disk Directory Structure SYS Who is doing what on the system. ========> [VAX84C.LEVINE.INDEX]AAAREADME.TXT;3 <======== INDEX FORTRAN Cross Referencer and Flow Chart Generator INDEX is a FORTRAN source cross-referenceing and flow charting utility that allows the user to look at individual source files (optionally saveing the data for an overall SUPER INDEX) and determine what variables are used on what lines and how they are used. furthermore the user can select for display only variables or COMMON blocks with the characteristics that he is interested in-global/local, assigned value/not assigned value, used/unused, imported/exported, etc in any combination. Also available is the optional ability to show the variable storage information (local, in COMMON, passed by argument, etc) and useage in FUNCTION/SUBROUTINE calls (routine used in and argument number) in both the basic and SUPER INDEX. If selected, the user may at the same time generate a flow chart of the source file currently being cross-referenced. In addition the user can also save the selected variable/COMMON block names (with optional user specified tags for further identification and/or variable storage location information ) or entry point information from multiple files and output the accumlated data as a super index (with a great deal of user control over the form of the data display) or as an entry point cross reference showing who calls who and is called by who (with optional graphical tree output). Before building, the system manager should read the last half of the document INDEX.DOC generated by the command @DOCUMENT. ========> [VAX84C.LEVINE.MISC]AAAREADME.TXT;2 <======== FRAG.MAR Reads the specified disk's [000000]BITMAP.SYS (requires read access to that file) and outputs the disk free space fragmentation. Information includes distribution of free fragment size as an absolute value, as a percent of disk total free space and of disk total space. Just needs to be assembled and linked. Uses LIB$GET_FOREIGN so it can be set up in the global symbol table as FRAG :== $FRAG and run $ FRAG DRA0: This program based on one of the same name found on various RSX SIG Tapes. DIR.COM Requires BYPASS priv. Runs through the current SYS$DISK outputing to the terminal and to the file DIRECTORY.MAP a map of all the directories and subdirectories on the disk, also the number of files and blocks they contain. SYS.COM Requires SETPRV or WORLD and GROUP priv. and a VT100. Modified from an example in the "Guide to Useing Command Procedures" in Vol 2B. Shows who is doing what in the system. ========> [VAX84C.LJK.DECUS.PAGESWAP]AAAREADME.TXT;3 <======== submitted by: Lawrence J. Kilgallen Box 81, MIT Station Cambridge, MA 02139-0901 Copies of Pageswappers published since the last tape. ========> [VAX84C.MADISONDE.MICRO]AAAREADME.TXT;1 <======== Madison Wisconsin Local Users Group Submissions submitted by: Michael K. Mansfield William T. Patterson University of Wisconsin Almark Enterprises, Inc. 302 Hiram Smith Hall 6425 Odana Road Madison, WI 53706 Madison, WI 53719 (608)262-7730 (608)274-3140 Enclosed is some of the more useful public domain software for personal computers that we have gathered from various sources. Most of this software has come from various Fidonet BBS systems and Digital's LCG Market system. The latest versions are available on Michael's Fido BBS system ((608) 233-8449). We would like to thank Prof. Murray Thompson, Director of the University of Wisconsin's Physical Sciences Lab (PSL), for sharing his VAXcluster with us to make this submission possible. [.CPMRB] CP/M-86/80 programs for the Rainbow. [.FIDONET] Rainbow versions of Fidonet BBS software. [.KERMIT] MS-DOS (PC-DOS) versions of Kermit for the Rainbow, IBM-PC, and Wang-PC. [.MISC] Miscellaneous information. [.MSRB] MS-DOS programs that are Rainbow specific. Page 2 [.MSDOS] General MS-DOS that should run on most computers running a version of MS-DOS or PC-DOS. ========> [VAX84C.MADISONDE.MICRO.CPMRB]AAAREADME.TXT;1 <======== Madison Wisconsin Local Users Group Submissions submitted by: Michael K. Mansfield William T. Patterson University of Wisconsin Almark Enterprises, Inc. 302 Hiram Smith Hall 6425 Odana Road Madison, WI 53706 Madison, WI 53719 (608)262-7730 (608)274-3140 This subdirectory contains Rainbow Specific CP/M-86/80 programs. [.CPMRB] DOSFLX.CMD;1 Access MS-DOS and PC-DOS disk files (from DEC) PACMAN.CMD;1 Demo (try this on MS-DOS with AME86) SETPORT.CMD;1 Set printer/comm. port parameters (from DEC) ========> [VAX84C.MADISONDE.MICRO.FIDONET]AAAREADME.TXT;1 <======== Madison Wisconsin Local Users Group Submissions submitted by: Michael K. Mansfield William T. Patterson University of Wisconsin Almark Enterprises, Inc. 302 Hiram Smith Hall 6425 Odana Road Madison, WI 53706 Madison, WI 53719 (608)262-7730 (608)274-3140 Rainbow versions of Fidonet BBS software. The latest version is obtained by calling a Fidonet node (see NODELIST in [.MISC]) and downloading it. Use the LU.EXE utility to unpack the libraries and the USQ.EXE utility to unsqeeze the *.*q* modules. [.FIDONET] BBSFILS.LBR BBS-FILS.LBR file for version 9K distribution FIDO10A.LBR Version 10A update to files in FIDO9K.LBR FIDO9K.LBR Version 9K Fidonet distibution FIDOHLP.LBR Distributed with version 9K. ========> [VAX84C.MADISONDE.MICRO.KERMIT]AAAREADME.TXT;1 <======== Madison Wisconsin Local Users Group Submissions submitted by: Michael K. Mansfield William T. Patterson University of Wisconsin Almark Enterprises, Inc. 302 Hiram Smith Hall 6425 Odana Road Madison, WI 53706 Madison, WI 53719 (608)262-7730 (608)274-3140 MS-DOS versions of Kermit. Get the latest version from DEC's LCG system (see [.MISC]). [.KERMIT] MSIBMPC.EXE IBM-PC version MSKERMIT.DOC Documentation MSRB100.EXE Rainbow version MSWANG.EXE Wang version ========> [VAX84C.MADISONDE.MICRO.MISC]AAAREADME.TXT;1 <======== Madison Wisconsin Local Users Group Submissions submitted by: Michael K. Mansfield William T. Patterson University of Wisconsin Almark Enterprises, Inc. 302 Hiram Smith Hall 6425 Odana Road Madison, WI 53706 Madison, WI 53719 (608)262-7730 (608)274-3140 This subdirectory contains some miscellaneous information. There is a demo session linking to Digital's LCG Market system, the VAX-11 FORTRAN source for a VAX XMODEM implementation, a listing of DEC micro user groups, and a listing of Fidonet nodes. [.MISC] AREAS.TXT LCG file areas COMMANDS.TXT LCG commands DECUSERS.DOC DEC micro users groups DEMO.LCG Log of LCG session with added comments FIND.TXT LCG aid to finding files KERMIT.HLP LCG help using Kermit LENGTH.TXT LCG help in estimating file size NODELIST.DOC List of Fidonet nodes VAXVMS.LBR VAX-11 FORTRAN implementation of XMODEM protocal ========> [VAX84C.MADISONDE.MICRO.MSDOS]AAAREADME.TXT;1 <======== Madison Wisconsin Local Users Group Submissions submitted by: Michael K. Mansfield William T. Patterson University of Wisconsin Almark Enterprises, Inc. 302 Hiram Smith Hall 6425 Odana Road Madison, WI 53706 Madison, WI 53719 (608)262-7730 (608)274-3140 Here is a collection of useful MS-DOS modules. The modules in libraries (*.LBR) must be extracted with the LU.EXE utility. The documentation for LU is in LU.DOC. Any module with a "Q" in the second character position of the filename extension (i.e. SAMPLE.DQC) has been "squeezed" so that it takes up less space (and costs you less to download it). It has to be "unsqueezed" to be used. Look at the documention for USQ.EXE in USQ.LBR. [.MSDOS] ALTER.DOC Alter directory attributes of a file ALTER.EXE AME86.LBR Allow CP/M-86 program to run under MS-DOS ASCII.LBR Print table ASCII/Hex/Decimal/Octal characters ASK.COM Yes/No batch prompting program ASK.DOC ASMGEN.COM Dissassembler ASMGEN.DOC CALC.EXE Reverse-Polish notation desk calculator CC.C C language checker CC.EXE CHMOD.EXE Change directory attributes of a file CLIP.COM Change disk volume label COMSPEC.ASM Patch COMSPEC parameter COMSPEC.COM COREWARS.LBR Game from Scientfic American CV.COM Create disk volume labels CV.DOC CWEEP.DOC SWEEP file utility CWEEP.EXE DELBR11.EXE Another library utility, v1.1 6/6/84 DELETE.COM Wildcard file delete with prompt DELETE.DOC DIAL.COM Dialer DIAL.HLP DIRFIND.ASM Directory search function for C86 DOS2.DOC MS-DOS "Hints and Kinks" DOSTIPS.DOC FDATE.COM Alters a file's date FDIR.COM Fast directory display Page 2 FGREP.DOC;1 UNIX like pattern match utility FGREP.EXE FILT.C Text filter FILT.EXE FLY100.EXE Cessna 152 flight simulator FREE.COM Display available disk space INDEX.DOC Text file index generator INDEX.EXE INUSE.COM Displays "INUSE", requires password to continue INUSE.PAS LOOK.COM Byte search program LU.DOC Librarian utility for maintaining *.LBR files LU.EXE MAKE.LBR UNIX-style "MAKE" utility MAKEDB.C Programmer's tool - converts binary file to DB MAKEDB.DOC MICROLIN.C Control codes for Microlin printers MICROLIN.DOC MICROLIN.EXE NRO.DOC Environment type text formatter NRO.LBR NUSQ.COM New file squeezer utility (small and fast) NUSQ.DOC RAMDISK.DOC RAM disk for MS-DOS 2.xx RAMDISK.SYS RENDIR.COM Rename subdirectory SCAVENG2.COM MS-DOS 2.00 bad sector mapper SCRUB.C Text file filter SCRUB.EXE SD.COM Sorted directory listing utility SD.DOC SQ.COM File squeezer utility. SYSCALL.DOC MS-DOS 2.00 system calls TEXTFORM.C Text formatter (prints Wordstar format files) TEXTFORM.DOC TEXTFORM.EXE TIDY.ASM Creates new alphabetized directories TIDY.DOC TOUCH.COM Set directory date/time of file entry to current TOUCH.DOC TPRINT.C Print utility (useful for listing C programs) TPRINT.DOC TPRINT.EXE TREEDIR.COM Display tree directory structure TREEDIR.DOC USQ.DOC Unsqueeze utility (use with *.*Q* files) USQ.EXE USQ.LBR UTILITY.DOC MS-DOS utility extensions documentation VDEL.COM Delete with verify VDEL.DOC VECTS.EXE Display MS-DOS interrupt vectors in use WASH.DOC Disk management tool WASH20.COM XLISP.LBR Experimental object-oriented language Z.COM Switch directory/pathnames ZAPLOAD.DOC Converts binary file to Intel hax format Page 3 ZAPLOAD.EXE ========> [VAX84C.MADISONDE.MICRO.MSRB]AAAREADME.TXT;1 <======== Madison Wisconsin Local Users Group Submissions submitted by: Michael K. Mansfield William T. Patterson University of Wisconsin Almark Enterprises, Inc. 302 Hiram Smith Hall 6425 Odana Road Madison, WI 53706 Madison, WI 53719 (608)262-7730 (608)274-3140 These MS-DOS files will work only on a Rainbow. The *.LBR files must be processed by the library utility LU.EXE in [-.MSDOS]. [.MSRB] MS-DOS programs that are Rainbow specific. CLRDTR.ASM Clears the Rainbow Comm. port DTR CYCLE.LBR Color graphics demo DESIGN.BAS Another graphics demo, use with GWBASIC DIAL.SCR Dialing example script file for LCTERM IO20501.LBR Update for MS-DOS IO.SYS, speeds screen I/O LCTERM.EXE Kermit and XMODEM transfer program version 3.30 LCTERM.MEM PTPDEMO.LBR Demo of PTP editor from Newline Software RBDOS.TXT Notes on undocumeted MS-DOS calls RBLCTERM.C Latest source we can find for LCTERM v2.26 RBLCTERM.DOC SCROLLCK.ASM ???? SETPORT.EXE Sets Rainbow printer/comm. ports (from DEC) VIEW.EXE Fast text file display (from DEC) VT100.BAS VT100 screen functions in Basic ========> [VAX84C.MILLER.VAXNET]AAAREADME.TXT;1 <======== Free software BY Project Software & Development, Inc. This software is furnished for free and may be used and copied as desired. This software or any other copies thereof may be provided or otherwise made available to any other person. No title to and ownership of the software is hereby transferred or allowed. The information in this software is subject to change without notice and should not be construed as a commitment by PROJECT SOFTWARE AND DEVELOPMENT, INC. PROJECT SOFTWARE assumes no responsibility for the use or reliability of this software on any equipment whatsoever. Project Software & Development, Inc. 14 Story St. Cambridge, Ma. 02138 617-661-1444 Now residing at: Nothern Telecom Inc. Airport Road Concord, New Hampshire 03301 (603) 224-6511 X2024 Program: VAXNET Author: Robin Miller Date: Fall 1984 Description: VAXNET is a program which allows communcations between two computers using an asynchronous terminal port. The systems can be connected either directly using a null modem cable or via a dialup modem. Communications with the remote system is accomplished using a second port on the local system. This is the 6th submission of VAXNET. Sorry but there still isn't a User's Manual available although the help file has been updated. I hope to have a manual put together by the Spring DECUS. This is VAXNET Version 8.6 which has the following new features: o The SHOW SIGNALS command has been updated to show modem signals both asserted and not asserted. o A SNDRCV program was written in TECO to allow file transfers with systems supporting TECO. The unsquished TECO macro (SNDRCV.TES) contains excellent documentation on the VAXNET protocol. o Minor bug fixes. Page 2 Program Features: o Virtual Terminal Mode. VAXNET runs in virtual terminal mode at any baud rate. I've run at 19.2K baud without loosing characters as long as the remote system responds to the XON / XOFF flow control protocol. Running a slower baud rates does not require this support since incoming characters can be processed fast enough. o Log File Capability. By using the log file capability, all output from the remote system can be written to a disk file on the local system. The log file is later reformatted using the REF utility and can then be edited and/or printed. This capability is very useful for generating documentation or for tracking changes you've made at a remote site (such as patches). o Support Multiple Protocols. Current the original VAXNET protocol and the XMODEM protocol are supported. The KERMIT protocol will be added in a future release. o File Mishing Utility. The MISH program is used to convert any type of file into printable ASCII for file transmission. The program uses HASP data compression and stores the file attributes in a header record which is later used to convert the file back into it's original format. o Autodial Modem Support. Currently the DEC DF03 and RIXON R212 autodial modems are supported. The next release will support two types of VADIC modems, the HAYES Smartmodem, and the US Robotics autodial modem. o Dump Mode Operation. The DUMP command is used to send files to a system which doesn't have the SNDRCV or VMODEM programs for transferring files with error checking. This capability used in conjunction with the log file feature is an alternate method of transferring ASCII files between systems. This is the method used for bootstrapping a system which doesn't have one of the file transfer programs. o Script Mode Operation. In script mode, a remote terminal session can be driven by commands in a script file on the local system. This file contains the prompts to expect from the remote and commands to send when these prompts are received. o Batch Mode Operation. Using an autodial modem, the auto- login capability, and a script file, you can automatically send files to another system. These features have been used to succesfully send TELEX's or MAILGRAM's via the EASYLINK system and to send mail between VMS systems. Future Features: Page 3 o Additional autodial modem support. You will also be able to specify multiple autodial modem ports to automatically select the first free modem available. o The next version will also allow you to set the remote terminal parity to either EVEN, ODD, or NONE. o Partial support for a SLAVE command has been added. This will allow you to transfer bulk ASCII data from the remote system to a local disk file or line printer without the overhead of virtual terminal mode. For example, a spooled terminal port on the remote system can send it's output to a local printer. o Support for the KERMIT protocol. Although a VMS version of KERMIT exists (the one I was using was written in BLISS) VAXNET supports features unavailable in KERMIT. Problems: Software overrun errors will occur at high baud rates unless the alternate typeahead buffer is enabled for the remote port. The system manager must allow read, write, and logical I/O operations to the remote terminal port. This is done using the DCL "SET PROT=(,,,RWL)/DEVICE device:" command. Build Procedures: The executables are available and are ready to go when you are. If you should need to rebuild it, the following command files are available: VAXNET.COM Compiles all the FORTRAN modules. VAXNETLBR.COM Generates the VAXNET object module library. VAXNETBLD.COM Generates the VAXNET executable via LINK. COMP.COM This command file is used to compile and replace individual modules in the library. [VAXNET.SNDRCV] Contains the files for the VAX and RSX SNDRCV program and a SNDRCV TECO macro for systems which supports TECO. This TECO macro has been used on RSX-11M/M+, VAX/VMS, and RT11 running version 36 of TECO. [VAXNET.RSXNET] Contains the files for the RSXNET program. This is a subset of the VAXNET program which runs on RSX-11M/M+. [VAXNET.MISH] Contains the files for the file mishing utility. This program is used to convert any type of file into an ASCII format for file transmission. After the mished file is received on the remote Page 4 system this program converts the file back into it's original format with attributes retained. [VAXNET.REF] Contains the files for the reformatting utility. This program is used to reformat the log files generated by the VAXNET/RSXNET programs. It also has useful features such as EBCDIC to ASCII translation. [VAXNET.VMODEM] Contains the files for the VMODEM program which supports the XMODEM protocol. The UNIX version also available in this directory. ========> [VAX84C.MILLER.VAXNET.MISH]AAAREADME.TXT;1 <======== Free software BY Project Software & Development, Inc. This software is furnished for free and may be used and copied as desired. This software or any other copies thereof may be provided or otherwise made available to any other person. No title to and ownership of the software is hereby transferred or allowed. The information in this software is subject to change without notice and should not be construed as a commitment by PROJECT SOFTWARE AND DEVELOPMENT, INC. PROJECT SOFTWARE assumes no responsibility for the use or reliability of this software on any equipment whatsoever. Project Software & Development, Inc. 14 Story St. Cambridge, Ma. 02138 617-661-1444 Program: MISH Author: Robin Miller / Gary Larsen Date: Fall 1984 Description: This program is used to compress and convert input files into a printable ASCII format. The file attributes are stored in a header record which is used when decompressing to restore the file to its' original file format. This mished file format is useful for any communication program which transfers ASCII files. A special version of the MISH program called MISHALL is available to aid in bootstraping the SNDRCV program. This source file has all analyze code and comments removed to reduce the size. The using the DUMP command in RSXNET/VAXNET, the program can be sent to a remote system where it can be assembled and taskbuilt. A mished version of the SNDRCV program is then dumped to the remote system, decompressed by MISHALL, and you are ready to transfer files with the remote. ****************************************************************************** Example: >dir mish.tsk Directory DB0:[263,70] 3-DEC-84 15:50 MISH.TSK;1 60. C 14-AUG-84 10:24 Total of 60./60. blocks in 1. file >mish MISH>/he Page 2 MISH is a program used to compress and convert input files into printable ASCII files. These files can be submitted on HASP reader streams and can be transmitted using VAXNET/RSXNET. After the file is received at the remote system, MISH is then used to decompress the files back into their original file format. All file attributes are restored using the header record from the compressed file. Command line format: input_file/switches output_file/switches Where switches are: /ANALYZE - Used to analyze the header record and/or data of a file which has been compressed. Additional sub-switches that can be used are /DATA, /OCTAL, & /REVERSE. /COMPRESS - Used to compress files. This is the default mode. /DECOMPRESS - Used to decompress files into their original file format. MISH>mish.tsk mish.mis File: MISH.MIS, total number of blocks = 60, total number of records = 474 MISH>^Z > >dir mish.mis Directory DB0:[263,70] 3-DEC-84 15:50 MISH.MIS;1 68. 03-DEC-84 15:45 Total of 68./68. blocks in 1. file ************************************************************ * The /ANALYZE switch displays the file header. * ************************************************************ >mish MISH>mish.mis/anal $*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$* MISH FILE HEADER File name: MISH.TSK Owner UIC: [263,070] Protection: System: R, Owner: R, Group: R, World: R Mished Date: 3-DEC-84 Contiguity Options: contiguous FCS/RMS FILE ATTRIBUTES: File Organization: sequential Record Format: fixed Record Attributes: Maximum Record Size: 512 Page 3 Longest Record: 512 Blocks To Allocate: 60, Default Extend Size: 0 End-of-file VBN: 61, Offset: 0 $*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$*$* MISH>^Z > ************************************************************ * The mished file is then transferred to the remote * * system using the RSXNET and SNDRCV programs where * * it is decompressed back into it's original format. * ************************************************************ >mish MISH>mish/decompress File: MISH.TSK, total number of blocks = 60, total number of records = 474 MISH>^Z > ========> [VAX84C.MILLER.VAXNET.REF]AAAREADME.TXT;1 <======== Free software BY Project Software & Development, Inc. This software is furnished for free and may be used and copied as desired. This software or any other copies thereof may be provided or otherwise made available to any other person. No title to and ownership of the software is hereby transferred or allowed. The information in this software is subject to change without notice and should not be construed as a commitment by PROJECT SOFTWARE AND DEVELOPMENT, INC. PROJECT SOFTWARE assumes no responsibility for the use or reliability of this software on any equipment whatsoever. Project Software & Development, Inc. 14 Story St. Cambridge, Ma. 02138 617-661-1444 Program: REF Author: Gary Larsen / Robin Miller Date: Fall 1984 Description: REFormat is a program used to convert input files into variable length output files with implied carriage control. During this conversion, the control characters NULL, XON, XOFF, and DELETE are stripped. The program will also optionally do ASCII to EBCDIC and EBCDIC to ASCII conversions. This program is generally used to reformat the RSXNET & VAXNET log files. Command line format: input_file/switches output_file/switches Where switches are: /ASCII - Convert input file from ASCII to EBCDIC. /EBCDIC - Convert input file from EBCDIC to ASCII. /VFU - Input file contains line printer Vertical Format Control. /TOTAL - Output number of records and bytes written to output file. /BACK (D) - Remove delete sequences from the input file. /ESC (D) - Break output records on cursor positioning escape sequences. /NAME (D) - Output the name of the reformatted output file. Switches can be negated by prefixing the switch with a '-' or 'NO'. ========> [VAX84C.MILLER.VAXNET.RSXNET]AAAREADME.TXT;1 <======== Free software BY Project Software & Development, Inc. This software is furnished for free and may be used and copied as desired. This software or any other copies thereof may be provided or otherwise made available to any other person. No title to and ownership of the software is hereby transferred or allowed. The information in this software is subject to change without notice and should not be construed as a commitment by PROJECT SOFTWARE AND DEVELOPMENT, INC. PROJECT SOFTWARE assumes no responsibility for the use or reliability of this software on any equipment whatsoever. Project Software & Development, Inc. 14 Story St. Cambridge, Ma. 02138 617-661-1444 Program: RSXNET Author: Robin Miller / Gary Larsen Date: Fall 1984 Description: RSXNET is a program which allows asynchronous communcations between two computers (systems). Communications can be either directly between the computers using a null modem patch cable (see "HELP PATCH" for the wiring diagram), or over a dialup line (modem). Communications with the remote system (the system you want to talk to) is accomplished using a second port (asynchronous line) on the local system. RSXNET is a sub-set of the VAXNET program which runs on VAX/VMS. The VAXNET program is being submitted to the VMS SIG tape for those who may be interested. Program Features: o Virtual terminal support with no speed limitations. The remote system must use the XOFF/XON flow control protocol to run at high baud rates (typically greater than 1200 baud) or a loss of characters will result. o Logging of the remote terminal session to a disk file. After exiting from RSXNET, a program called REFormat is used to create an output file which can then be printed/edited without problems. o File transfers to a remote system. The SNDRCV program (either FORTRAN or TECO version) is used to transfer files to a remote system with error checking. When this program is unavailable, the DUMP command within RSXNET can be used to send ASCII text to the remote system running any program which accepts input (such as an editor). Page 2 o Ability to transfer binary files. The MISH program converts any type of file to a printable ASCII format (also compressed) which can be transferred to the remote then converted back into its' original file format. ========> [VAX84C.MILLER.VAXNET.SNDRCV]AAAREADME.TXT;1 <======== Free software BY Project Software & Development, Inc. This software is furnished for free and may be used and copied as desired. This software or any other copies thereof may be provided or otherwise made available to any other person. No title to and ownership of the software is hereby transferred or allowed. The information in this software is subject to change without notice and should not be construed as a commitment by PROJECT SOFTWARE AND DEVELOPMENT, INC. PROJECT SOFTWARE assumes no responsibility for the use or reliability of this software on any equipment whatsoever. Project Software & Development, Inc. 14 Story St. Cambridge, Ma. 02138 617-661-1444 Program: SNDRCV Author: Robin Miller Date: Fall 1984 Description: The SNDRCV program is used on a remote system to transfer files ASCII files with either the RSXNET or VAXNET communication programs. There are three versions of SNDRCV in this directory; an RSX version written in FORTRAN, and VMS version written in FORTRAN, and a TECO version which runs on any system which supports TECO. The version of TECO used when testing was version 36 on an RT11 system. ========> [VAX84C.MILLER.VAXNET.VMODEM]AAAREADME.TXT;1 <======== Free software BY Project Software & Development, Inc. This software is furnished for free and may be used and copied as desired. This software or any other copies thereof may be provided or otherwise made available to any other person. No title to and ownership of the software is hereby transferred or allowed. The information in this software is subject to change without notice and should not be construed as a commitment by PROJECT SOFTWARE AND DEVELOPMENT, INC. PROJECT SOFTWARE assumes no responsibility for the use or reliability of this software on any equipment whatsoever. Project Software & Development, Inc. 14 Story St. Cambridge, Ma. 02138 617-661-1444 Program: VMODEM Author: Robin Miller Date: Fall 1984 Description: VMODEM is the VMS version of the UMODEM program which uses the XMODEM protocol used on many micros. I've included this program because the VAXNET program now supports this protocol and you may wish to use this program instead of the SNDRCV program for file transfers. The XMODEM protocol has better error checking than the SNDRCV protocol but only allows sending or receiving a single file at a time. It also has the advantage of running on UNIX where the SNDRCV program does not. WARNING: Receiving files from the VMODEM program works just fine (doing a VAXNET GET command). But sending files to VMODEM has lots of overhead since it does single character reads. At slow baud rates this isn't too bad but at higher baud rates it eats up VMS. ========> [VAX84C.MILLER.VTL]AAAREADME.TXT;1 <======== Free software BY Project Software & Development, Inc. This software is furnished for free and may be used and copied as desired. This software or any other copies thereof may be provided or otherwise made available to any other person. No title to and ownership of the software is hereby transferred or allowed. The information in this software is subject to change without notice and should not be construed as a commitment by PROJECT SOFTWARE AND DEVELOPMENT, INC. PROJECT SOFTWARE assumes no responsibility for the use or reliability of this software on any equipment whatsoever. Project Software & Development, Inc. 14 Story St. Cambridge, Ma. 02138 617-661-1444 Now residing at: Nothern Telecom Inc. Airport Road Concord, New Hampshire 03301 (603) 224-6511 X2024 Program: VTL Author: Robin Miller Date: Fall 1984 Description: This program is used to list file(s) on a VT100 family terminal. The file(s) are displayed one screen at a time for easy viewing. Various commands can be entered to change listing parameters or to position to a particular portion of the file. Many of the commands are the same as the Digital editor EDT. Commands can be entered either by using keys on the VT100 keypad, or by entering commands to the prompt at the bottom of the screen. Some of the major features of the program are outlined below: o CTRL/C detection for aborting searches, etc. o Delete the file being displayed. o Display a ruler along the top of the file. o Display the next file or next the directory. o Display record numbers along the left margin. o Display the file header of file being displayed. o Print the file being displayed. o Search (forward only) for a specified string. o Shift the display window left or right. o Split screen mode to display two files. o Teco compatible see-all mode. o Write portions of the file being displayed. Page 2 The maximum record size that can be displayed is 512 characters. All commands have a repetition count of one. Relative and indexed files are not supported. The special wildcard characters "* and %" can be used with VTL on RSX-11M using FCS for I/O instead of RMS. Previously these were only valid on VMS since a native image was being called to lookup files. The Digital files ASCR50.MAC and PARSFN.MAC were modifed to allow this type of wildcard lookup. Unfortunatly, since they are Digital source files I can't submit them to the SIG Tape. I hope to submit an article on this to the RSX News Letter in the near future. These modified modules are in the object library (VTL.OLB) and can be extracted an used with other programs. Refer to module VTLOPE for further information on using these (must save the file name block). [ File "VTL.MEM" contains full documentation for this program. ] VT100 File Listing Utility -------------------------- NEW VERSION: This is the second version of the VTL program. The new features added are listed below: o Multiple files seperated by commas can now be specified on VMS. For example: $ VTL [miller...]*.com,home:login.com,t.dat o The Find and Page commands will now search backwards through the file. The Find and Find Next commands display the direction of the search if the search string if not found. o The Page, Find, Number, and Bottom commands now display a working message every two seconds. The current record number is also displayed along with the working message to let you know how far through the file you are. o The control keys are now recognized. Control keys defined are: CTRL/U and CTRL/C deletes the command line and/or aborts a prompt, CTRL/R and CTRL/W refresh the screen, backspace backs up one line, and the delete key deletes the last character. o The return key no longer terminates the search string prompt. This was done to allow searching for carriage returns within the file. o The Print command now works on VMS. The compatibility mode print routine previously used doesn't work with RA81/RA60 disks. The print command is now performed by spawned the PRINT command to DCL. Only the logical names are copied during the spawn process. o The program no longer exits automatically at the end of file as you are scrolling through the file. You must use the EXIT/NEXT command or CTRL/Z to exit the program or display the next file. Page 3 o Messages are now displayed if you try to scroll past the top or bottom of the file. o The margin indentation is now displayed when it is automatically indented to display a search string which is off the screen. The command "SHOW MARGIN" can also be used to display the indentation. o The program now presumes the terminal has the Advanced Video Option (AVO). This only affects files displayed in 132 column mode since only 14 lines can be displayed. If your terminal doesn't have the AVO option you must specify a /NOAVO switch on the command line or use the "SET NOAVO" command when you're displaying a file. o The ruler is now displayed properly if the line numbers are being displayed for each record. o The "SET LINES n" command allows a low limit of 2 lines to display. This is the smallest scrolling region that can be set on the VT100. o The "SHOW SECTION" command displays the current section size. This is the number of lines scrolled forward/backward when the keypad key 8 is pressed. Note that this size can be changed with the "SET SECTION size" command. By changing this to a large value, you can move through the file in large sections (i.e., every 100 lines). o The keyword ALL (same as WHOLE) can be used with the WRITE command to write the entire file to an output file. ========> [VAX84C.NSWC]AAAREADME.TXT;4 <======== [VAX84C.NSWC]AAAREADME.TXT PARMQUAL PROGRAM ---------------- The PARMQUAL program is designed to be used inside command procedures. It parses the arguments passed to the procedure (the DCL Symbols P1 through P8), which are assumed to be in the format of DCL command parameters and qualifiers, and sets local symbols to the values derived from the arguments. For instance, if: P1 = "AAA/BBB/CCC" P2 = "DDD" P3 thru P8 = "" Then PARMQUAL sets the following symbols: PARM1 = "AAA" PARM2 = "DDD" PARM3 = "" QUAL1 = "/AAA" QUAL2 = "/BBB" QUAL3 = "" Thus the procedure does not need a lot of statements to cor- rectly split symbols into atomic parts, and to discriminate parameters from qualifiers. PARALLEL COMMAND ---------------- The PARALLEL command appends two files side by side, instead of end to end, as the VMS command APPEND does. This can be used, for instance, to annotate and print a report or document file with remarks without placing permanent remarks within the file. See PARALLEL.HLP for more information. These programs were developed and run under VMS V3.7; it is not known if they still work under V4.0. ------------------------------------------------------------------ Submitted by: Alan L. Zirkle Naval Surface Weapons Center Code N41 Fall 1984 Dahlgren, Virginia 22448 Page 2 ========> [VAX84C.RECOVER2]AAAREADME.TXT;2 <======== Recover2 ODS-2 Disk Recovery Tools Anthony E. Scandora, Jr. 921 E. Parkway Drive Wheaton, IL 60187 One Friday afternoon, I got a phone call from a poor soul who had initialized the wrong disk in a cluster, was sorry, and wanted it back. The volume was mounted on another CPU, but VMS let it be initialized, anyway. The system's TU77 had been busted for a few weeks, so the only tape backup was too old to be useful. I looked at Mike Higgins' and Phil Cannon's disk recovery tools from old RSX SIG tapes, but they assumed that the index file was still available. Unlike RSX, which creates a reasonably sized index file by default, VMS just creates a little index file by default and extends it a lot. Fortunately, the initialize command had no arguments in it (except, of course, the wrong device name), so all we had to do was find all of the blocks that were in the old index file and use them to recover their files. What does an index file block look like? I looked in starlet.mlb for a macro describing it, but I couldn't find one (now I feel stupid for forgetting to look in lib.mlb). TSC had a huge manual on the subject, but they didn't want to read it to me over the phone. A long time ago, an ancient ODS-2 document for the PDP-11 fell into my hands. It was worth a shot. Sure enough, it still describes ODS-2. It even names the macro fhdo2$, which is in rsxmac.sml. I translated that macro to VAX macro, and we were in business. I wrote scan2 to read every block on a disk, decide if it could have been in the index file, and if so, write some of the fields (see indexf.dtr) into a file called indexf.seq on a good disk. Then I converted it to indexf.idx, and let Datatrieve analyze it. Good old ODS-2 has back file pointers, which point to files' directory files. We had Datatrieve write a report sorted by back file pointer and file name, which produced a great sigh of relief. The other half of the program, recover2, reads every record in indexf.idx, and for each record that is marked to be recovered, reads a file header by LBN from the dead disk and restores the file to the directory logically named recovered:. That program is driven by recover2.com, which takes two arguments: a directory name and its FID on the dead disk. It calls Datatrieve to mark all files whose back file Recover2 ODS-2 Disk Recovery Tools Page 2 pointer matches the directory's FID to be recovered, creates the destinatation directory and assigns the logical "recovered" to it, runs recover2, and calls Datatrieve again to change the status of all of the files to be recovered to done. Finally, we marked all unprocessed files to be recovered, and let recover2 put them in syslost. They only had an ancient PDP-11 DTR, which appears to read commands from its terminal, so I had to "mcr dtr @file" to call it. The Datatrieve procedures could be a lot better for VAX Datatrieve. The old DTR uses the size of the pic to decide if comp fields are words or longs. There were no multi-header files on the disk, so recover2 doesn't do them. It could be added. I started to have it create the file with XABs, but it got too complicated. I commented out that code and had it write the header. I think there is code in there for more than 64K files. The high byte of the relative volume is the high byte of a three byte file number. To do it right, the program should be changed to swap the bytes of the relative volume number and use that as the high word of a long file number. This was done on a commercial system, so this SIG tape submission does not contain any of their directories. ========> [VAX84C.RIT]AAAREADME.TXT;1 <======== these directories contains a bunch of simple (and somtimes useful) utilities. Questions concerning these submissions should be directed to: Andrew W. Potter Rochester Inst. of Techology ISC-Technical Support One Lomb Mem. Drive Rochester NY. 14623 Phone (716) 475-6994 programs are: NEWS A general news utility that runs when users login and gives them a brief listing of all unread news. When the user reads the news in full, the login message is removed for that user. A nice alternative to a lengthy SYS$WELCOME file. The program must be installed with SYSPRV and SYSLCK CD A fast unix(tm) like chdir written entirely in fortran (no dcl) FINGER a utility to finger a user in sysuaf...safe enough to be installed with SYSPRV. Tells you more if you have OPER GMAIL A general purpose public bulletin board facility. KILL a rewritten version of an earlier submission which now uses CLDs, error definitions and has force image exit opt. NETCOPY A preprocessor for copy which uses getjpi to get a username and inquires for the password separately(noecho)... (The username can still be specified explicitly) NETUSERS a graphic program which (on a GIGI or VT-125) will display in colered bar graph form the user and batch job counts on up to 5 decnet nodes. NODESHOW a utility which will allow users to look at other DECNET nodes without actually logging on to them. WHERE The result of playing with SYS$FAO...gives a 2 line summary of the local system load and shows where and who you are...(handy for login.coms) ========> [VAX84C.RIT.CD]AAAREADME.TXT;1 <======== CD This is yet another CHDIR program. however it offers the following features: 1) it is written entirely in a high level lang..not DCL hence it is much faster. 2) it supports 2 syntaxes ...one for the UNIX (tm) diehards and one that has cropped up in many DCL versions. the following 3 commands are the same. $ SET DEFAULT [--.FOO.BAR.SUB] $ cd ../../foo/bar/sub $ cd ^^foo.bar.sub 3) cd checks to see if the target directory is accessable and issues an error if it is not...hence you cannot cd into nonexistant or protected directories. 3) cd has a built in help which is invoked by: $ cd ? 4) Cd has a mechanism to allow for simple hopping about in system directory...it translates the logical names SYS$SYSROOT and SYS$SYSDEVICE so these commands will work on any normal VMS rooted system directory tree on any system device. CD ? will list the system tree commands disadvantages: 1) it must be defined as a foreign command. (CLD definitions work poorly because DCL has special interpretations of the "/" character. place the following line in SYLOGIN.COM or individual LOGIN.COM routines. cd == "$disk:[directory]cd" ! where ever you put cd 2) It has a site specific syntax to change directory to a volume called "LIB$DISK" (this can be changed inthe source) required files: CD.FOR source CDMESS.MSG error message definition CD.RNO, CD.MEM User guide MAKCD.COM Routine to compile and link CD ========> [VAX84C.RIT.FINGER]AAAREADME.TXT;1 <======== FINGER FINGER a fortran program to read the system authorization file and read a user record by either uic or username install with sysprv... if the calling account has oper priv then finger will supply the entire owner field, priv mask, login.com and default device and directory. Finger is designed to run in an academic environment. Therefore non prived users (those without OPER) cannot call finger from a command procedure or a subprocess. (an attempt to keep users (students) from running brute force programs to determine the username of every user on our 14,000 user systems Since our site keeps the users SSN in the first 9 chars of the owner field FINGER will mask first 9 chars of the owner to non prived users if the first 9 chars are all numeric...if they are non-numeric then finger will output the entire field. FINGERBLD.COM builds the image from FINGER.FOR and FINGERMSG.MSG INSFINGER.COM will install the FINGER program in sys$system and update the System DCL tables as well as the system help help file ========> [VAX84C.RIT.GMAIL]AAAREADME.TXT;1 <======== INTRO: Bulletin Board Mail Program (GMAIL) Written By: Matthew W. Goheen Date: June 8, 1983 USAGE. This uses a keyed file for the storage of messages. This file is stored in the directory defined by the LOGICAL name. GML$DIR. If the file does not exist then the program will attempt to create the file in that directory. The user account that creates the data base file will be considered the MASTER gmail account and will be authorized to perform master account operations within GMAIL. (deleting other users messages, BROADCASTing a header message, and no message limits) To compile gml: $ fortran/nodeb/nocheck=all gml $ link gml/nodeb/notrace if you do not have fortran then the .EXE supplied should work... To start GMAIL up do the following: From a Privileged account issue the following command $ define /system GML$DIR disk:[gmaildir] ! wherever you put it then: log on to the account which will be the master GMAIL account and will have write access to the gmail directory (this account does not need any special vms privileges) $ set prot=(g:e,w:e) disk:[000000]gmaildir.dir $ run gml$dir:gml BROADCAST GENERAL MAIL IS NOW UP { or whatever } EXIT $ set protection=(w:rw) gml$dir:gmail.dat $ set prot=w:e gml$dir:gml.exe Put the following line in you system startup routine $ define /system GML$DIR disk:[gmaildir] ! wherever you put it Page 2 users can now access gml and post messages by typing: $ RUN GML$DIR:GML PURPOSE: This program was written to try to take some of the strain off of the regular MAIL program (strain meaning wasted disk blocks sending general MAIL to users who don't want or need it). My thanks to Andy for his helpful hints and ideas that made this a better (looking) program. To all of you out there who are snickering at this code, let me say just two things: 1) I DON'T CARE!! 2) Go ahead and make it better. GENERAL: Currently, this program uses a keyed file with two keys defined. The first key (primary key) is simply a (hopefully) unique integer that each message is assigned. The second key is USERNAME which is used mainly for two procedures (CHECK and LIST). There are three SPECIAL records. The primary keys for these records are, 1, 0, and -1. Each of these records has a special function, described as follows: 1: Contains the broadcast message, see section on special commands for the MASTER account. 0: Contains information about the data base. Most of this information may or may not be actually correct. When I began to write this program, it was my idea to store all critical information in this record. This turns out to be very problematic. As it stands now, record zero contains the MASTER account name and that's about it. It USED to contain the date and time of the most recently sent massage along with the primary key to that record. This proved to be very difficult to main- tain during muli-user operation. Therefore, it was replaced by two procedures (INIT and GETCURR). These seem to work much more reliably although quite a bit slower. ========> [VAX84C.RIT.KILL]AAAREADME.TXT;1 <======== Kill is a revision of an earlier DECUS submission which now: Uses a command language definition (CLD). Allows a user to FORCE an image exit on a process using the SYS$FORCEX system service (KILL/FORCE). Allows a user to kill a processes of his own without having to answer a verification and without having a brodcast sent to the target process (KILL/SILENT) (useful for indirect command files). Has a help file documentation entry. restriction on a specific range of UIC ... useful to prevent KILL from being run from a class or another public account. currently coded to prevent uic group range 60 to 67 from running KILL but easily changed in the source parameter definition No restriction on uics less than 16 (parametered)(for privileged users) Error messages are now implemented using the system error message facility. KILLBLD.COM compiles the FORTRAN source and error message definion files. INSKILL.COM installs KILL, the help and the and CLD out in the system. (users must log out and back in for the updated DCL tables to take effect. ========> [VAX84C.RIT.NETCOPY]AAAREADME.TXT;1 <======== NETCOPY supplied files. NETCOPY.FOR fortran source NETMESS.MSG error message source. NETCOPY.CLD DCL command definition NETINS.COM Command procedure to install NETCOPY in sys$sytem NETCOPY.HLP HELP definition file NETCOPY.ABS Abstract NWTCOPY.MEM User guide ========> [VAX84C.RIT.NETUSERS]AAAREADME.TXT;1 <======== NETUSERS authors: Andrew W Potter ! network object stuff Terry Peploski ! REGIS graphics Rochester Institute of Technology 20 April 1984 permission is hereby granted to copy, distribute, modify, repair (but not sell) this software provided that some mention of the original authors remains. (if anyone makes it better then we would like to see it) This program generates a graphic display of the user and batch job count on up to 5 decnet systems. currently this program looks at decnet nodes named vaxa,vaxb,vaxc,vaxd, and vaxe. (this can be changed by assigning logical names for these names) The display runs continiously updating itself every 5 seconds until a ctrl /c is hit (which attempts to get you out of graphics mode) This program will run on either a GIGI (VK-100) or a VT-125 If you have a vt-241 then issue the following command before running $ SET TERM/DEV=VT125 to run this program the following environment must be set up: 1) On the system that this program will be run the following logical names must be defined. (if you want to make it available to all users then place the logical names in the system table.) $ define vaxa _node1:: $ define vaxb _node2:: $ define vaxc _node3:: $ define vaxd _node4:: $ define vaxe _node5:: Do this for each of your nodes (up to 5 max) Where "_node1::" thru "_node5::" are the decnet names for your nodes. The program will run if there is at least one node name logically defined. 2) Place the following files in the default DECnet account on each system that will be monitored by netusers Page 2 SYS$SYSDEVICE::[DECNET]NETUSE.COM;1 which contains: $ define/user sys$output sys$net $ run sys$login:usecont and: USER:[DECNET]USECONT.EXE;1 this program (supplied in this directory) reads the system values for IJOBCNT and BJOBCNT and dumps them into standard output (which is defined to be SYS$NET) If you are running vms v3.4 or later then protect the default DECNET account from owner access (W:E) and make the directory and the above files belong to SYSTEM. (this will keep the NETSERVER.LOG files out of the default directory.) If you want, you can make NETUSE a known decnet object and place the above files in SYS$SYSTEM. (i didn't bother) If have non-VMS decnet nodes that you wish NETUSERS to report from, then a network object similar to USECONT must be developed for that node. Currently only a VMS version of the USECONT object is supplied. NOTE: While netusers is running, there will be one link established to each of the nodes that it is monitoring (2 to the local node if it is included in the list) ========> [VAX84C.RIT.NEWS]AAAREADME.TXT;1 <======== NEWS program To install: $ create/dir/prot=w/own=[1,4] sys$sysdevice:[news] $ copy *.* sys$sysdevice:[news] !copy all these files $ set default sys$sysdevice:[news] $ @MAKENEWS ! (if you have fortran, If not then the ! executable files provided should work) $ @INSNEWS ! Installs news in the system. This package of programs allows for the display of system news to users. yet relieves the user of the problems of have screen fulls of stuff forced on him each time the log in. news is divided in to 4 programs. (one run by users and 3 by the system manager) NEWS.EXE This program is the one run by users to read all unread news. the NEWS commands cause this program to be run Install only this program (/SHARE/PRIV=(SYSPRV,SYSLCK)) $ NEWS ! reads unread news and updates user ! entry in NEWSUSERS.DAT to point to ! the last read message number (This ! command will remove all news login ! messages until a new message is added $ NEWS/LOGIN/BRIEF ! lists the first line of all unread ! news messages with a message to enter ! "NEWS" to read the messages in full. $ NEWS/ALL ! Displays ALL news messages in full ! regardless of whether the user has ! has read them or not. $ NEWS/ALL/BRIEF ! Displays the first line of ALL the news ! messages. $ NEWS # ! reads news item number specified by "#" ! "NEWS 2" reads the 2nd news item NEWSINIT.EXE (management program run by system manager) $ NEWS/INIT ! initializes Both NEWSTEXT.DAT and ! NEWSUSERS.DAT (makes new versions) ! this program requires the files: ! NEWSUSER.FDL and NEWSTEXT.FDL reside ! in NEWS$DIR: Page 2 NEWSUPD.EXE (management program run by system manager) $ NEWS/ADD filename ! Adds filename as the latest news item $ NEWS/DELETE # ! removes news item specified by "#" ! news/del 2 removes the 2nd item from news $ NEWS/UPDATE=# filename ! replaces News item specifed by "#" with ! the contents of "filename" $ NEWS/EXTRACT=# filename ! extracts entry "#" from NEWSTEXT and ! stores it in a text file specified by ! "filename" NEWSDIS.EXE (Management program run by system manager) $ NEWS/DIS=username ! causes "username" to not be considered ! as a news user and hence will not get ! news login messages. NOTE if "username" ! enters "NEWS" he will be put back in ! to the news system. $ NEWS/DISABLE=SYSTEM $ NEWS/DISABLE=DECNET $ NEWS/DISABLE=MYACCOUNT Below is listed a sample news item. The First line MUST be non blank because that line is the one displayed in "NEWS/BRIEF operations" the maximum record length is 72 characters ***************************************************************************** ***************************************************************************** 14-AUG-84 - A system wide purge of user accounts on VAXA - VAXD. On the weekend of August 18th, a system-wide purge of all accounts will occur. This consists of the deletion of VMS mail files (MAIL.MAI) from all student accounts, the removal of all but the latest version of files from faculty, staff and student accounts and the deletion of all object files (.OBJ) from student and staff accounts. If you have an object file that you do not want deleted then use the RENAME command to save the file. Example: $ RENAME SPECIAL.OBJ SPECIAL.SAV The purpose of this purge is to return much needed disk space to the systems. Page 3 IMPORTANT NOTE Due to the increased user load on the VAX/VMS systems, a similar file purge will be performed on the first weekend after final exams of each quarter. ***************** end of sample news item ***************************** ************************************************************************ ****** news documented in "HELP NEWS" ========> [VAX84C.RIT.NODESHOW]AAAREADME.TXT;1 <======== nodeshow: a utility that activates simple network objects some objects are included more complete documentation on how to set up a CLD definition or how to modify the system SHOW command cld as well as how to set up your network objects in your default network accounts is described in the fortran source file: NODESHOW.FOR It is recommended to place the CLD in the system dcl tables to make them known to the system. Be sure you have edited the CLD file to reflect the proper place for the image. $ SET COMMAND/OUTPUT=SYS$LIBRARY:DCLTABLES - /TABLES=SYS$LIBRARY:DCLTABLES NODESHOW.CLD OR: (to install the NODESHOW as a modification to vms "SHOW") $ SET COMMAND/DELETE=SHOW/TABLES=SYS$LIBRARY:DCLTABLES - /INPUT=SYS$LIBRARY:DCLTABLES SHOW.CLD Note: it is recommended that you be running at least VMS version 3.4 to allow no owner write access to the default network directories thereby keeping netserver.log files out of the way The subdirectory [.objects] contains a few DCL network objects that can be placed in the default network account ========> [VAX84C.RIT.NODESHOW.OBJECTS]AAAREADME.TXT;1 <======== This directory contains a bunch simple objects that can be put out in the default decnet directory. It is recommended that one creates the default decnet directory with system ownership proctected with world read + execute access These object files can be placed in the directory with w:re protection and belonging to system. this scheme offers the following advantages: users cannot delete or change the objects via the default network account. netserver.log files will never be created. you must be running at least vms v3.4 to do this!! these objects can then be accessed from any DECnet node via the NODESHOW program or the dcl command: $ TYPE NODE::"TASK=object" ========> [VAX84C.RIT.WHERE]AAAREADME.TXT;1 <======== This is a simple program to output who you are, where you are, what you are and what the user load is on your system in just 2 lines to compile $ fort/nodeb where $ link/nodeb/notrace where,sys$system:sys.stb/sel the output in interactive mode looks like: User: AWPSYS logged on to VAXD, terminal TTB1: (VT102) Load on Friday, April 27, 1984 4:47 PM is: 9 users, 0 batch jobs. in batch it will look like: User: AWPSYS (Dept: 754-TS) running on VAXD. Load on Friday, April 27, 1984 4:47 PM is: 9 users, 0 batch jobs. ========> [VAX84C.RMA.DECUS]AAAREADME.TXT;1 <======== AAAREADME.1ST------------------------------------------------------------------ Unless otherwise noted, all programs provided are for the VAX 11/780. See files with the extension INS for installation instructions. This directory contains the following programs: KERMIT - This is a file transfer program. The protocol was developed by Columbia University Computer Center. This is a partial implementation of version 5. Also provided are a version for the DEC-10 (partial version 5) in the subdirectory DEC10 and a version for the Z100 (version 2) in the subdirectory Z100. The file KERMIT.DOC contains the locally written version 3 documentation and KERMIT5.DOC contains the locally written version 5 documentation (this is a prerelease of KERMIT5.DOC). SCOOP - This is a program to handle entry and updating of the system login messages ( ANNOUNCE.TXT & NOTICE.TXT ). Automatic expiration of scoops and flashes is provided. The unprivileged mode allows display of scoops without the ability to modify them. COMMENT - This is a program used by users to make comments and complaints to the staff. It also allows properly privileged processes to view, purge, and output comments. SYSTAT - This is a program used to display information about processes on the system in a variety of orders. Limited wildcarding is also available. See SYSTAT.HLP for more information. PATH - This is a program used to change default device and directory during a login session. It performs the same function as SET DEFAULT in addition to providing extra facilities such as path existance checking and named paths. TAIL - This is a program used to type the last 22 lines of a text file on a DEC compatible scope terminal. CRT - This is a program used to type a text file 22 lines at a time to a DEC compatible terminal. The program will pause at the end of each page and give the user the option of going to the next page or returning to DCL. The output may start at any line in the file. The number of pages to be output may also be specified if a starting line number is given. FINDER - This is a program used to find all the files owned by a given UIC on the disk which is the current default no matter which directory they are in (provided the user has read access to the directory). ========> [VAX84C.RMA.DECUS.Z100]AAAREADME.TXT;1 <======== This version of KERMIT for the Z100 implements version 2 of the KERMIT protocal. The files are: KERMIT.ASM - Source code. Just assemble it with MASM (or whatever whoever calls it) and LINK it. It is complete unto itself. KERMIT.HLP - This is the help file given out with this version of KERMIT. It is just a document and is not used by the program at all. KERMIT.EXE - This is the executable KERMIT. It was not munged into the easily transported form that the micro KERMITs on the distribution tapes are usually in. ========> [VAX84C.SHEAPDUMP]AAAREADME.TXT;1 <======== Pro Computing 222 Third Street Cambridge, Ma 02142 Jared M. Spool & John Dunning SHEAP - SuperHeap for Pro Pascal. The SHeap is a way to allow your Pro Pascal programs to get more memory. It deals with a data structure called a super pointer which is 32 bits big. The first 16 bits are the region number and the last 16 bits are the pointer within the region. When you create a region, it creates a region with the name SHPxxx, where xxx is the number of the region that it created. If you are multi-tasking, you can have one task send a pointer to another task, and connect to it, thus sharing data. There are three files in this directory: 1. SHEAP.MAC - The source file. Just PMA this and then link the OBJ into your task image. 2. SHEAP.DOC - This describes all of the calls, and also some symbol definitions you need to include in your PAB command file. 3. SHEAP.INC - This is an include file for your Pascal programs. The functions are self explanatory. ========> [VAX84C.SSG.GLG.MTEXCH]AAAREADME.TXT;1 <======== MTEXCH is a utility for processing foreign tapes under VMS, and has previously been submitted to the VAX Tape Copy. This submission contains the two most recent versions of MTEXCH. The newest version has been modified to properly handle VMS V4.0 file specs. The following files are included: BLDMTEXCH.COM;1 Command procedure to build MTEXCH DESCRIP.MMS;6 MMS make file to build MTEXCH MTEXCH.HLP;3 Help file for MTEXCH MTEXCH.MAR;8 VMS V3.7 version of MTEXCH MTEXCH.RNO;1 Source for MTEXCH documentation. MTXMSG.MSG;1 Message source for MTEXCH SMAC.MAR;14 Source for macro library used with MTEXCH SMAC.MLB;9 Macro library needed to build MTEXCH V4MTEXCH.MAR;1 VMS V4.0 version of MTEXCH Questions or comments can be addressed to me at: Gary Grebus Battelle Columbus Labs 505 King Avenue Columbus, OH 43201 (614)424-7156 ========> [VAX84C.SYSUT.DECUS]AAAREADME.TXT;1 <======== System Availability Report Writer and Downtime Log Manager The availability program allows a system manager to keep track of downtime and to generate a report on the performance of the system. The report lists such items as scheduled downtime, unscheduled downtime, percentage availability, and mean time between unscheduled downtimes. The format of the report is up to the user. Many different breakpoints and output formats can be specified. DEFINE.COM contains the necessary logical name to run the package. See the users manual (MANUAL.MEM) for more information. If any problems contact: John Scheibe and Jeff Belvill Pacific Lutheran University Computer Center Tacoma, WA 98447 (206) 535-7527 ========> [VAX84C.SYSUT.DECUS.DEMO]AAAREADME.TXT;1 <======== This DEMO directory contains a partial CRASHED.SYS downtime log, and some examples of a listing and reports. LIST.LIS contains a listing of everything in the downtime log. It was generated by using the list module with a file name of LIST.LIS and ALL data (hit return at beginning time prompt). REPORT.LIS is an annual report for the period March, 1982, to March, 1983. It was broken down by months with the data specified in hours and minutes. It was generated using the REPORT module, output file name of LIST.LIS, the system base date (the first date in the log), and 1-MAR-1983 as the ending date. All other prompts were defaulted (i.e. just hit return). REPORT2.LIS is similar to REPORT except that the ending date was 1-JUN-1982 and it was generated by week, with the data in hours and minutes. The CRASHED.SYS downtime log is just included for demo purposes. It's intent is to allow you to experiment with the system as soon as you get it off of tape without having to type in extensive data, and without worrying about ruining your data. To use it, just copy it to wherever you have AVAIL$DIR defined. If you decide to use the system for real data, just delete CRASHED.SYS in AVAIL$DIR and start from scratch. ========> [VAX84C.USERLIB.CPM.XMODEM]AAAREADME.TXT;1 <======== This is USERLIB subdirectory .CPM.XMODEM Here is a Fortran version of XMODEM for CP/M file transfer using Ward Christensen protocol, runable on VAX/VMS V3.0 and higher. Current version XMODEM 5.53 June 23,1984 All timeouts implemented, supporting BATCH (multiple file transfer) and internal TEXT conversion. See XMODEMFOR.DOC and XMODEM.HLP . The files in the package are: AAAREADME.DOC This document ABSTRACT.DOC DECUS Library abstract XBUILD.COM FORTRAN and LINK the programs XMODEM.FOR Equivalent to CPM's XMODEM 5.0: binary files, with checksum or CRC, most timeouts, and with BATCH, in VAX Fortran (special I/O dependency encapsulated in two subroutines so it should be translatable to other Fortrans that can do 8-bit I/O with timeouts). works up to 9600 baud on a moderately loaded VAX 11/780 running VMS version 3.0 or higher. XMODEMFOR.DOC Another version of this document TOXMOD.FOR Converts VAX text file (variable length records with no CRLF) into CP/M compatible file for transfer by XMODEM (fixed length 128 byte records with CRLF at ends of lines). FROMXMOD.FOR Similarly converts CP/M file from the form received by XMODEM.FOR to a VAX text file. EXETOXMOD.FOR Converts .EXE file (512 byte fixed length) to 128 byte records. XMODTOEXE.FOR Converts 128 byte record file to .EXE file (512 byte records) You should probably COPY/CONTIGUOUS the .EXE file afterword so it is not too fragmented. XMODEM.HLP A VAX HELP file about the three programs. XMODEM.COM A VAX command procedure file defining XMODEM,TOXMOD,FROMXMOD, XSEND,XREC as foreign commands. QIO.DCK Obsolete include file. BATPROT.COL Describes the batch protocol MODMPROT.COL Describes the Christensen protocol (by Christensen) XMODEM.CRC Failed attempt to use LIB$CRC to calculate CRC XMODEM.BUG Known bugs in XMODEM. XMODEM.OLD An old version of XMODEM.FOR. *.EXE Coresponding executables for the *.FOR programs. The normal file format received by XMODEM is 128 byte fixed length records. These files may PRINT and TYPE reasonably, but to edit them on your VAX they must be converted to ordinary VAX text files by FROMXMOD. If you forget which files have been converted by TOXMOD or FROMXMOD, just do a DIRECTORY/FULL to see the file format on the VAX. Similarly XMODEM will only send text files reasonably using the TEXT option or if they have been converted to CP/M form by TOXMOD, otherwise the FORTRAN input statements in XMODEM will append Page 2 lots of blanks to each line of text and no carriage returns will be sent. Problems: Batch mode: Long VAX filenames are truncated at 8 characters before the type. CP/M filename characters converted to "A" if invalid on VAX. Sometimes it may be advisable to DEFINE SYS$ERROR filename to get error messages that may not go into XMODEM.LOG when XMODEM crashes due to unexpected system error such as divide by zero, file open failure, etc. during a file transfer. Since XMODEM.LOG is kept in current directory, S *.* will crash XMODEM when it tries to send XMODEM.LOG since it is open for write already. A version of MODEM7 for the VAX is also available. If anyone hears of XMODEM or MODEM7 available for other MAINFRAMES I would like to hear about them. Send mail to me at the address below. History: I translated TMODEM.C ( a Unix C language version of XMODEM ) into Fortran then used the XMODEM.ASM version 5.0 8080 source code as a guide for timeouts and error handling, and translated the specific CRC algorithm used there to Fortran. Richard Conn added my CP/M - VAX text conversion routines to XMODEM.FOR . I speeded up SEND by making it do a single QIO per block. Steve Gill completed timeout implementation. The program has been in use for over 2 years here and on several other VAXes scattered across the country. It is VAX-96 in the DECUS (DEC User's Society) library. There is an old version on the DECUS Users group VAX tape for Fall 1983. Another on SIG/M library. J. James (Jim) Belonis II Computer Cost Center Manager Physics Hall FM-15 University of Washington Seattle, Washington 98195 (206)-545-8695 ========> [VAX84C.VASSAR]AAAREADME.TXT;1 <======== Fall 1984 DECUS submission from Vassar College. This submission contains two directories: [.spell] This directory contains the files for a comprehensive spelling checker which can correct files containing text and embedded commands for a number of different word processors. All necessary files are provided, including dictionaries. The checker includes guessing algorithms which may optionally be invoked if a wrongly spelled word is encountered, a facility for creating personal dictionaries, and provision for the automatic submission of words not found in the dictionaries to a maintenance person so that the main dictionaries may be periodically updated. The checker creates a corrected file as output, and optionally also produces a log file showing all changes made. It is a new submission for this DECUS tape. [.reserve] This is a re-submission of the RESERVE program that appeared on the Fall 1983 SIG tape. Functionally, the program remains the same, but two important bugs have been fixed, one created by a bug in the PASCAL V2.5 compiler (as yet unfixed by DEC) and the other a date problem which did not come to light until 1-JAN-1984! RESERVE is an on-line terminal reservation system suitable for use on VAXen which have hard-wired terminals - i.e. not port-switched or network terminals. Submitted by: Mark Resmer, Vassar College, Poughkeepsie NY 12601 (914) 452-7000 Ext 2437 (RESMER@VASSAR on CCnet and BITnet). ========> [VAX84C.VASSAR.RESERVE]AAAREADME.TXT;3 <======== The files in this submission constitute an on-line terminal reservation system for use under VMS V3.0 or higher. Full details of the system are given in the Implementor's Notes (IMPLEMENT.TXT), the descriptive file (RESERVE.DOC) and the Help Menus displayed by the system when running. This submission is an updated version of the program which was originally submitted to the DECUS Fall 1983 SIG tape. The only differences are a re-coding of the MACRO routine into PASCAL, and two minor bug fixes, one of which caused the program to fail in January and the other of which caused an access violation under Pascal V2.3 and higher. It is to be hoped that the program will continue to run under V4.0, if not then it will be updated and resubmitted to DECUS. The program is written in VAX Pascal Version 2.5. The sources are fully commented, and modifications should be relatively trivial. Author: Mark Resmer Box 248 Academic Computer Center Vassar College Poughkeepsie NY 12601 (914) 452-7000 Ext 2437 RESMER@VASSAR (BITnet or CCnet) ========> [VAX84C.VASSAR.SPELL]AAAREADME.TXT;3 <======== This directory contains the files for a comprehensive spelling checker which can correct files containing text and embedded commands for a number of different word processors. All necessary files are provided, including dictionaries. This file contains a full description of the program and installation instructions. Files: ***** AAAREADME.TXT - this file BUILD.COM - installation procedure COMMONWRD.DAT - sequential file of most common words LEXIC08.DAT - main dictionary for words of <8 letters - indexed file LEXIC16.DAT - main dictionary for words of <16 letters - indexed file LEXIC32.DAT - main dictionary for words of <32 letters - indexed file NEWGOOD.TXT - new word file - indexed SPELL.EXE - SPELL program compiled under VMS v3.7 SPELL.HLP - HELP library module for SPELL SPELL.OBJ - object file of SPELL SPELL.PAS - VMS Pascal source text of SPELL Total of 12 files, 4263/4343 blocks. Functionality: ************* SPELL reads standard VMS text files - such as those created by EDT, and will recognize the syntax for embedded commands in RUNOFF, TeX and SCRIBE word processor input files, thus preventing many spurious "errors" from being registered. The program makes extensive use of VT100 screen formatting abilities, and as supplied, can only be used on VT100-compatible terminals. The entire program is written in Pascal, and should be readily modifiable for other terminals, or if additional functionality is required. The checker includes guessing algorithms which may optionally be invoked if a wrongly spelled word is encountered, a facility for creating personal dictionaries, and provision for the automatic submission of words not found in the dictionaries to a maintenance person so that the main dictionaries may be periodically updated. The checker creates a corrected file as output, and optionally also produces a log file showing all changes made. Installation: ************ There is an installation procedure in this submission which should make installation relatively painless. Unlike SPELL, it is not extensively error-trapped, so be careful when using it - hopefully, you will only need to use it once! To use this procedure, copy all the files in this directory to an empty directory on your system (not necessarily on your system disk), set your default to that directory, and invoke the procedure with an @BUILD command. Re-installation: *************** Page 2 If you ever need to re-install SPELL (for instance because of an operating system upgrade), do NOT use the BUILD procedure provided without looking through it carefully, and commenting out any sections which deal with updating the dictionary files. Unless you do this, you will create new copies of the dictionaries, and will lose all the site-specific words that you have added since you first installed the program! This caveat also applies to sites running the Temple PROOFREAD program (see "Origins" below). Internals: ********* Spell operates by constructing an ordered tree of all new words as they are encountered in a document. Any word in the document is first checked against this tree, and if it is already in the tree, it is copied intact. If the word under test is not in the tree, and it is not one of a small number of very common words which are held in an array in memory, one of the three indexed files which constitute the main dictionary is searched, depending on the length of the word. If the word is still not found, an optional personal dictionary in the user's default directory is searched, and failing this, the list of words which users have marked as "right" but which have not yet been checked by the dictionary-person. If the word appears in this last list, the user is warned that it may not be correct, and given the opportunity to reject it. If a word is not found in any of these searches, the user is presented with two lines of context, with the word highlighted, and given a number of choices: C - you want to check alternative spellings in the dictionary. I will prompt you for words to check until you find one that is correct or you decide to give up checking. G - you want me to offer you some suggestions about possible spellings. I - you want to ignore the word - for instance an uncommon name. P - you want me to add the word to your Personal Dictionary. Q - you want to quit SPELL without checking any more of the file. R - the word is right and should be added to the main dictionary. W - you agree that the spelling of the word is wrong. I will ask you for the correct spelling or give you the option of asking me to guess. If the result of a "wrong", "guess" or "check" operation is to change the word being questioned by spell, the program will attempt to automatically match upper and lower case to the case of the word being replaced. If this turns out to be impossible, the user is prompted to supply the case. Wrong words are linked into a double tree together with replacements. If they occur again in the file, the user is prompted to decide whether they wish to make the same change again. Right words are added to an indexed file in the system dictionary Page 3 directory, which is automatically accessed when the dictionary person invokes the SPELL/UPDATE command. SPELL writes a workfile called SPELLWRK.TMP, and if the session terminates successfully, and any changes have been made to the file being checked, then the workfile is renamed to the next higher version of the file being checked. The "front-end" of SPELL is a small DFA lexical scanner. This can easily be modified to include support for other word processors. All pre-processing of text is handled by this scanner, including recognition of words, constructs such as apostrophes and quotations, and recognition of embedded word-processor commands. Any word or character which is not recognized as a possible "legitimate" word is simply copied to the output file, and the remaining candidates for testing are made into a simple linked-list which contains some attributes of the words as well as their text, and allows simple manipulation of the text if errors are encountered. As supplied, SPELL operates with Control-Y disabled. This is not strictly necessary, given that an intermediate file is used for output, but in practice, we have found this to be a good idea in avoiding problems with accidental exits from the program. If you don't like this idea, taking out the call to the disabling routine is trivial. Almost all terminal I/O is handled using direct calls to QIO rather than Pascal I/O (sigh) since the latter is generally unsuitable for the types of screen and keyboard operations involved. Origins: ******* The SPELL program is based on a program called PROOFREAD which was written by Matthew Temple of Smith College, Northampton MA. His ideas and permission to use them are gratefully acknowledged. Submitted by: ********* ** Mark Resmer, Vassar College, Poughkeepsie NY 12601 (914) 452-7000 Ext 2437 resmer@vassar on CCnet and BITnet ========> [VAX84C.VEVLE.SOURCE.UAB]AAAREADME.TXT;1 <======== _______ _______ __________________________________ | | | | / \ | | | | / \ | | | | / __ ____________ \ | | | | / / | | \ | | | | | / / | | | | | | | | / / | |____________/ / | | | | / / | / | | | |/ /______| ____________ \ | | | | \ \ | \__________/ | | | | __________ |____________/ | \ / | / \ / | / \____________________________/ |__________________________/ The University of Alabama at Birmingham Submissions for the Fall 1984 VAX SIG tape ------------------------------------------ [...UAB.RMDEMO] -- Update of RMDEMO, a dynamic user display program. Uses the terminal independent screen routines. Has been modified to allow multiple display pages, among other updates and bug fixes. [...UAB.GRADE] -- New submission. A class grading program. Uses the terminal independent screen procedures and the VTxxx line drawing character set. Should be used on a VTxxx terminal. Allows dropping of grades, selectable by the instructor. Calculates scores needed to make A, B, and C. Calculates class overall average as well as class average for each score. Has various types of printouts including some suitable for posting and some suitable for distribution to the student. GRADE will also build a sequential, ASCII file for easy storage and will load from a sequential, ASCII file for easy recall of student information.