STATEMENT OF POLICY FOR RSX-11M UNSUPPORTED UTILITIES This tape (or disk, or whatever) contains a set of programs and subroutines developed by Phil Stephensen-Payne, c/o Systime Ltd., Concourse Computer Centre, 432 Dewsbury Road, LEEDS LS11 7DF, England. The majority of them are modifications of programs taken from the DECUS library, although some have been written from scratch. All of them are available under the standard DECUS policy that they may be given to or used by anybody as long as they are not sold for profit, and so on. In addition an attempt has been made in all these programs (though not always successfully when modifying other people's programs) to maintain a set of common principles so as to present a common user interface at all levels. The implementation of these is assisted by a set of 'boiler-plate' files - a discussion of which will be found elsewhere. The principles adopted are as follows:- 1. All programs shall run on a standard RSX-11M (V3.2 or later), with the only restrictions being on the selection of various SYSGEN options (e.g. the inclusion of parent/offspring tasking). A number of programs have, in the past, adopted the principle of modifying the Executive to make the programs run better. This, I believe, leads to far more complications and bother than they are worth and all such modifications have been omitted in these programs. 2. All privileged programs shall run on any RSX-11M configuration (restricted as above) without needing to be rebuilt for each system. Standardly privileged programs that reference Executive labels are rebuilt for each system so as to incorporate the new addresses of those symbols. I have, in general, adopted a new (I think) policy of having each program dynamically access LB:[1,54]RSX11M.STB to determine the values of these symbols. This does naturally make the program marginally larger and marginally slower, but means that task images can be transported from system to system - and also that an unwary user, running such a program without rebuilding it, will not crash the system (as usually is the case). 3. It is assumed that most of the programs will be used on 'largish' systems (except, of course, for programs like PIN, whose whole essence is their small size). This means that while size restraints are always borne in mind, it has usually been thought better to have, say, a large number of comprehensive error messages, than to economise on space by using messages like 'ERROR 12'. In addition some of the programs assume various things about their environment (such as the inclusion of parent/offspring tasking) which might be omitted on 'smaller' systems. 4. A standard 'multi-user' utility (like SRD) will have a source file name of xxx.MAC (SRD.MAC) and similar for objects and such-like; will be assembled and built by xxx.CMD (SRD.CMD) which will itself generate any further files needed and will be installed as ...xxx (...SRD). 'Single-user' utilities (like DSRDMP) will follow similar guidelines but will have names of more than three characters and will not be installed as 'multi-user'. 5. Each utility will follow the standard RSX-11M guidelines of allowing it to be invoked by any of:- xxx commandline xxx RUN $xxx and will accept indirect command files as commandlines in any of the forms above. 6. Each utility that prompts the user for input as decribed in 5 will provide help in response to either xxx /HE or HELP xxx The writeup on BOILER.MAC supplies details on this. The help file will be called xxx.HLP. 7. Each utility will (hopefully) be accompanied by a file xxx.DOC which describes its operation and makeup. Part of this document is intended as a User's Guide and part as a guide for anybody wishing to modify the code. 8. Each utility will, as far as is possible, be written in a structured fashion to make future modification simpler. In particular, all programs (whether in Assembler or a High-Level language) will have a comment on every line of code, as well as at the head of each section. 9. All files that form part of any utility or game will be transferrable on magtape via FLX without requiring any special switches. This is rarely important, but occasionally data files are required in a special format that FLX could screw up. 10. Assignments and patches at taskbuild time are kept to a minimum. A common error in a utility that doesn't seem to work is to find out later that it assumed that, say, LUN 1 was assigned to the terminal whereas in fact it was left to default (to SY:). There are some programs (e.g. DSRDMP) which use a unit in such a way that the user needs to be able dynamically to reassign it, and then any default must be specified at taskbuild time - in all other cases such assignments must be 'hard-wired' with an 'Assign LUN' directive. I would be very interested in any comments on any of the above points, or on any of the enclosed programs. The above address should reach me for the foreseeable future.