File Name
README.md
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