Fall 1981 [312,315] Collection There are several different programs here: DISASM - from the RSX11D version from the DECUS library of a few years back, but with the task readin section altered to handle RSX11M task images. The disassembler reads and displays disassemblies of task images. Some new code for improving the readability of output files is included as well. Note that DDT may be used as a symbolic patcher in assembly language for task images on disk in the event this tool points up some areas where change is wanted. Outputs from DISASM are not directly compatible with MACRO-11, though they may of course be edited. CAM - another task disassembler from the Amsterdam DECUS tapes (a concatinated file). Simpler to use, less features... BASH11M - A program that will patch an RSX11M or RSX11M+ system to allow tasks to enter a mode where they are run in User mode with previous mode Kernel. (Can also restore the system to normal). Only programs where initial PS is set this way, or that bash the PSW on the stack during AST or SST processing are so affected. This allows the MTPI/MFPI or MTPD/MFPD instructions to access all of kernel space including the I/O page, even for a nonprivileged task. Note that if the initial PS is set to previous kernel via ZAP of disk image after a task is installed, all RSX or IAS systems run in previous kernel mode for awhile. However, SST or AST processing can alter this. The patch ensures this state can continue, or be entered from SST/AST. (In RSX11M+ even unpatched, you can enter previous super mode by bashing a PS on the stack in an AST.) A routine to enter previous kernel mode is provided too. Normal system operation is unaffected by these patches and can continue indefinitely with them in place. For data gathering activities, this access to I/O page can be useful. The package does no more to destroy system security than installing a common in the I/O page does (since explicit PS access can also get into this mode), but makes it easier to access kernel structures and to use HOLs for privileged tasks. ALTWND - A subroutine providing access, on a system patched by BASH11M, to anywhere in memory. This is somewhat specialized and is designed to allow access for brief periods to buffers "somewhere" without losing address space. CSIOPS - A CSI parser skeleton in MACRO that gets a command line, parses it, opens files, and returns with files open. Useful as a skeleton for MACRO applications (with related routines in GETSTR and GTLIN) where a command line parser is desired that will do all the file opening overhead for you. Does not have logic for wildcards, but can handle multiple input and output files. Will need to be edited for any given application however. DDT22 - A revised DDT, with ability to work from another task or within a task. Includes new logic to decompose internal symbols in .STB files having them, and to pick them out by module name. Also comes with a new FDTSYM that uses its method of output of module name to disambiguate FORTRAN symbols for its symbol table file output (3rd output) that DDT uses. DDTKNL and DDTMU are the other parts of the package, for the 2 task DDT, and the DDTBLD file is updated and improved with a few other improvements. To use this feature with something real, a version of FDTSYM (the FDT pre-processor) has been included that will generate module names before the global symbol records it creates. To access a symbol within a particular module, set MDLCTL to -1 in DDT and fill in the 2 word area named MODULE within DDT (using $UV if needed to address DDT space, then $UM to address target space) with the RAD50 representation of the module name desired ("$'rad' enters "rad" in RAD50 at the open location, for instance). Then the symbols will not be displayed unless they are in the named module. Setting MDLCTL to 1 only selects internal symbols this way, and setting it 0 performs no module selection. FDTSYM - A revised version of FDTSYM, the preprocessor for FDT, which can create .STB files for use with DDT that have the module names preserved for dis-ambiguation by DDT as described above. FLTIBM and IBMFLT - A pair of routines (.MAC for PDP11, .MAR for VAX) which are FORTRAN callable to convert IBM to PDP11 floating point (single precision) numbers or PDP11 to IBM. They are valid FORTRAN functions, though they will work from assembler also. XMITR and ITTOUR - Two routines to update the version of XMITR submitted in [312,315] in Spring 81. These remove a couple of extra waits for significant event that slowed file transmission, without turning XMITR again into a CPU hog. FPEM - A new release of the RSX11M floating point emulator adapted from the Los Alamos original for RSX11D. Differs from the old one only in that it can use STOP instead of SUSEND, so can be run with high priority in RSX11S systems. This emulator does NOT require a sysgen and indeed assumes RSX does not know about floating point. It must be immovable in memory, which means fixing it AND placing it in a dedicated partition or at the BOTTOM of GEN (to avoid movement by shuffling). To use with F4P, you will have to replace F4PEIS in your runtime system, as RSX will not give floating ASTs to any tasks unless it thinks there is floating point. Tasks must be built with the /FP switch, and RSX must NOT execute any floating point code. If RSX executes F.P. code, the system crashes! So generate for no FPU unless you have the hardware, and use this if you don't. DSO and TRN - These tasks (DiSOwn and Task ReName) operate on all tasks running at the TI: of the caller. TRN just renames all tasks to unique names (guaranteed not to have embedded spaces in them so they can be aborted from the console, a useful feature if you use the modified MCR dispatcher for 11M+ in the Spring 81 tape) and leaves them at the console. This allows one to run multiple copies of MAC, F4P, TKB, etc., without change to RSX. It works on M or M+. Assemble and build as a normal privileged task for each. DSO will also change names (though it will assign different names from TRN), but it moves all tasks except itself to CO: so you can log off without aborting any disowned tasks. This will leave copies of AT. or PIN unable to run any more tasks, of course, but normal tasks will work fine (and the COLOG program can even log the task output!) These programs are normally built with a 64 word stack and priority 70; checkpointable if desired (I have them checkpointable). They need SUPERMAC to assemble correctly; see previous RSX SIG tapes for SUPERMAC. You can figure out how to make straight MACRO easily though -- an exercise for the reader... FFL - This version handles label records up to 20 bytes long and permits you to ignore tape errors. This is to read copies of FLX tapes produced at installations incapable of making 14 byte label records (e.g. the Structured Languages SIG's). LISTRS - This new version of LST, the multi-column listing utility adds a switch to permit output to be right shifted on the page by up to 31 columns, to give a right margin to it. BIGTPC.DOC - Documentation for BIGTPC (and a version merging Phil Stephenson's corrections to TPC with the other versions) as suggested by Phil Cannon in Spring 81. [312,316] PLOTA PLOTA is a plot package to plot histograms (or more primitive objects) on either HP 4 or 8 color plotters and/or Printronix printers with the aid of PLXY11 (available separately from DEC). Calls are very simple and permit linear or log plots, with numerous options, of positive integers. Scales, colors, etc., are all user settable. A runtime assigmnent can determine whether the plot goes to Printronix (LXY11) printer (in B&W) or to the HP color plotter. Compatible device independent calls are provided. Glenn C. Everhart