These directories contain several usefull utilities, as well as example code, and, in a few cases, the very start of a project. I am (once again) disappointed that I have been unable to add all the nifty features I've been wanting to add to some of the older utilities. Even so, some significant forward steps did occur. BITNET : Misc. (old) programs for (a) trapping broadcast messages, and (b) Converting LPUNCH format files into something normal. DECNET : Misc. examples of using the NET ACP QIO functions, also an example multi-threaded server/client pair are included. FILE : This utility allows you to modify file attributes. There are an unlimited number of reasons for wanting to do this, suffice it to say that if you have to muck around with networks, or recover from strange situations, then armed with FILE, and a sufficient understanding of RMS you'll probably be able to get your way out of most anything (well, at lease anything having to do with files..). Recent enhancements to FILE include changing all the qualifiers to be positional, and of course the required changes in program logic to handle that (thanks to Ned Freed). FIND : This utility allows you to do quick searches through the 'index file', which is where all the file headers for a given volume reside. You can do searches based on any criteria found within the file header (including oddities like the placement control maps [LBNs and such]). For an example of its speed, consider the task of trying to find the file 'FLUNKY.STUFF', on an RA90, when you have absolutely no idea where it is. With the DIRECTORY command it could take hours. With FIND it would take minutes. KFE : Short example program to demonstrate going through the "known file" list, that is to say, the list of installed programs. MAIL : Documentation for Callable Mail, and example programs. A couple of cute tidbits - MAILUAF for displaying/modifying user profiles, and CHECKMAIL for displaying new messages in a given users mailfile (or own). MAKE : I provide this because I use it a lot, I didn't write it.. This utility is used to compile all (well, at least most?) of the files in this distribution. I've tried to include complete makefiles in each directory, as well as a COMPILE.COM for those of you who don't want to set this up. MENU : Menu utility (for displaying single columns menus, or free-flow menus). Not the best utility, but actually pretty reasonable. It can interpret menus on the fly, or create compiled versions. MISC : Misc. programs & procedures. I'll let you figure them out for yourself. MONITOR : A project just starting. This does nothing yet, except read monitor data files. It's included in case anyone wants to avoid typing in the monitor file data structures by hand. OBJECT : Extracts symbol definitions from object files. I only use it to extract symbols from symbol tables (i.e. SYS$SYSTEM:SYS.STB). RIGHTS : Misc. (old) fortran programs dealing with rights identifiers. RIGHTSLIST_BY_ID generates a list of all identifers (and holders). RIGHTSLIST_BY_USER generates a list of users, and the rights they hold. RMS : Start of a project to go through indexed files and display all the information available with ANAL/RMS. The idea is to eventually end up with something that could optimize indexed files on the fly. I'm actually hoping an expert system will appear out of nowhere and attach itself to this, but I'm not holding my breath! This currently only displays some information on the keys and the areas. SD : Set Default program - emphasis on simplicity rather than wild features. STATUS : DECnet wide User Process Display (very fancy SHOW USERS/FINGER equivalent). Highly configurable. Wild example of a multi-threaded server/client pair. Can display user selected bits of info from a very wide range of possibilities (quite easy to add others as well). UAF : UAF is a utility for searching through the Authorization file for users based on any of the info stored in the authorization file. I think the only new features include a password guesser (a standalone guesser as well as being integrated with UAF). UNMESSAGE : This utility decompiles message files. Usefull if you need to create a language specific version, or want to play an elaborate April Fools joke. This has been totally rewritten from Macro into C. In so doing I improved its handling of text strings. UNSDL : This utility creates header files from the SDL definitions that DEC provides. This has the advantage over most other methods in that no context information is lost. It has the disadvantage that only modules in STARLET are included, with a few from LIB being included. Currently there is only a C header module, however it's highly documented so that you could easily modify the C version to create some other language (such as Modula) headers. Note when this was created DEC did not ship a version of C that had reasonable header files (actually, there's still a few oddities, but oh well). VERB : This decompiles command tables, into command language definition files that you can then examine, edit, and replace if you so desire. This is an ALL NEW version, rewritten in C (from very ugly spaghetti code). It outputs things in a much more sensible manner, and is quicker. It also fixes one bug (having to do with the handling of the disallows clause) which manifested itself in the VMS 5.3 SET command definition.