README.md
The following describes the enhancements we have made to the RSX11M
operating system which were originally added under V3.0 and have since been
modified to work under V3.1. Most of the corrections are in SLP file format.
I am sorry the documentation file is not in RNO format but I created this
document from an non-RNO documentation system. The name of the files that
implement each described enhancement preceed its description. The software
is provided as-is, and no support is implied although it has been running
with no problems on numerous RSX11M systems at NASA/Ames and is supported
internally by our RSX11M support group. The SLP files will also include
most of the software dispatch patches for that module through NOV 78. If
there are questions I can be reached at (415) 965-5935 during the afternoons
and usually the evenings. All the .TSK files included are built non-
privileged for mapped systems and probably are directly useable.
Greg Thompson
NASA/Ames RSX11M System Enhancements
The following enhancements have been made Revised: 11/07/78
to the RSX11M V3.1 operating system: By: Greg Thompson
TTDRV.COR
Auto baud support is in for DH11 lines at 300, 1200 and 2400
baud. The universal speed character is ctrl-c. (You can't
go 2400 through the digital switch though.) The auto baud
table are at the very start of the TT driver code and are
set up to allow the use of any single character auto baud
algorithm.
Ctrl/o (flush output) will break out of ctrl/s (suspend
output) mode.
The Clear to send (CTS) line is ignored for DH11/DM11 lines.
Since TRAN loops Request To Send (RTS) back to CTS this
generates another interupt when the PDP tries to drop the
line (by dropping RTS and DTR) at which time the old ttdrv
code brought up RTS and DTR causing another interupt and
causing the switch to sometime hang the line (since it
didn't see DTR drop long enough). Ignoring CTS seems to
fix the problem. (TRAN is our EIA RS232 intra-base high
speed time-division multiplexing communication system.)
The ring line is now ignored after the connect sequence is
completed and the carrier line is high. This is in
accordance with the EIA standards and fixes a bug in the TT
driver support of remote terminals.
There is a hardware problem with DL11-A terminal interfaces
which manifests itself my dropping its input interupt enable
bit. To help alleviate this problem the input interupt
enable bit is set anytime anything is written to or received
from the device.
The lower-case flag and buffer size are now not reset when a
DH11 line connects.
Control-Y will abort the task which currently has I/O active
to the terminal. Input is first terminated with a Ctrl-Z.
BROAD.COR
The ALL: and LOG: parameters on the BRO command are now non-
privileged and now includes terminals that have the terminal
attribute in the UCB. Also BRO to not logged-in terminals
is allowed.
DREIF.COR
Allows negative abort codes which indicate no abort messages
are to be written out. Used in implementing Control-Y key.
REQSB.COR
Higher priority tasks which can not fit in memory will no
longer prevent lower priority tasks which can fit from
running.
SYSOV.COR
CLQ is now non-privleged.
TASOV.COR
TAS now has an optional taskname parameter.
SPROV.COR
SDSOV.COR
The slash "/" is optional on SET's keywords.
The SET /UIC=[x,y] command for privileged users will not
change their logged-in UIC anymore. It will still change
their default UIC. This is so a WHO command can identify
users using their logged-in UIC. It doesn't appear to cause
any problems.
There are five new options on the SET command. LOGGED-OUT,
OFFLINE, ABSCAN (Expecting a speed character), DISABLED and
CARRIER-WAIT. Used without an equals sign they present a
list of terminals that have or do not have the specified
mode set. All but CARRIER-WAIT when used (by privileged
terminals) with an equals sign and a device name they set or
clear these modes.
MCRDIS.COR
MC2.MAC
INSPS.COR
INSFL.COR
INSLB.COR
The restriction of only one activation of any given task per
terminal has been removed. You no longer will get Task
Active error messages.
LOG is now allowed in addition to HEL for logging-in.
If MCR receives a command for which it can not find an
installed task that handles it and if the ...MC2 task is
installed then MC2 will pass the command line to this task
and request the task to run. The auxillary command
dispatcher task ...MC2 first checks to see if it is one of
the commands processed internally. These commands are:
DIRectory <filespecs> - equivalent to "PIP <filespecs>/LI".
Switches /BR, /FU and /TB are allowed.
DELete <filespecs> - equivalent to "PIP <filespecs>/DE".
Version numbers are required.
ERAse <filespecs> - equivalent to "PIP <filespecs>/DE".
Version numbers are optional.
If omitted all versions will be deleted.
FREe <device> - equivalent to "PIP <device>/FR".
<device> is optional.
PURge <filespecs> - equivalent to "PIP <filespecs>/PU".
REName <new>=<old> - same as "PIP <new>=<old>/RE".
SPOol <filespecs> - same as "PIP <filespecs>/SP".
TYPe <filespecs> - same as "PIP TI:=<filespecs>".
UIC <grp,mem> - same as "SET /UIC=[grp,mem]".
Example: UIC 6,6 Current setting
displayed if no parameter specified.
If the command is non of the above then ...MC2 looks in
CM:[1,55] for a .TSK or .CMD to process the command. If the
user is a privileged user the CM:[1,56] directory is
examined. If no file is found the search is continued in
the users directory (SY:[grp,mem]). If ...MC2 still has no
success then a "MC2 -- Command not found." error message is
returned to the user. If a .CMD file is found then ...AT.
is envoked. If a .TSK file is found then the task is
installed, marked for removal on exit, and invoked using the
original command line ...MC2 received. This mechanism
allows just the tasks in most frequent use to be normally
installed and other tasks to be installed when necessary
thus conserving pool space.
Also the following commands have been implemented by
indirect command files in CM:[1,55]:
PRO <filespecs> - sets the file(s) protection bits to
[R,R,R,R] (read-only) for everyone.
Uses: "PIP <filespec>/PR:167356"
UPR <filespec> - resets file protection bits to the
system default of [RWED,RWED,RWED,R]
which is system, owner, group have
full access, others read-only.
CRT - Issues a "SET /CRT=TI:" to enable CRT
type character deleting.
LOWER - Issues a "SET /LOWER=TI:" to enable
lower case input and output.
The MCR indirect command processor IND, now allows the
passing of parameters from the command line. The global
string variables $P0, $P1, ... $P9 represent the command
line parameters which must be seperated by one or more
spaces. $P0 represents the name of the file that envoked
IND. $P1 is really the first parameter. Remember to
.ENABLE SUBSTITUTION before you try to use them for
substitution and to .ENABLE GLOBAL before you try to .SETS
them. Only as many of these variables will be defined as
there are parameters for them. You can use .IFNDF or .IFDF
to determine whether or not any given parameter is defined.
To use the IND switches /TR, /DE, or /NOMCR supply them
immediately after the file name with no space between them
and the file name. Example: >DOIT/NOMCR FOO BAR
IND also has new .ENABLE/.DISABLE options. One is called
SILENT and disables the displaying of MCR commands. Since
IND can no longer wait for the command prompt ">" from MCR
after the command has completed, MCR commands should be
followed by a .WAIT on the task that processes the command
if the silent mode is enabled. For example a "DIR [1,24]"
command in a MCR command file should be followed by a .WAIT
PIP when the SILENT mode is enabled. The other new option
is PROMPT which disables or re-enables the displaying of the
MCR ">" prompt after the IND task exits. This is useful
when you want an command file to issue a RUN on another task
and exit and you don't want an command prompt to appear
until the RUNed task exits.
ACNTLG.TSK, ACNTLG.MAC
This task processes login accounting messages from the
...HEL, ...BYE and RSTLOG tasks and reports the logging in
and out and system restarts to the file LG:[1,2]ACOUNT.LOG.
RSTLOG.TSK, RSTLOG.MAC
This task should be run during startup in
LB:[1,2]STARTUP.CMD so that system restarts are recorded in
the account logging file.
HELLO.COR
If the ACNTLG task is installed ...HEL reports the login
(via send-data) to the ACNTLG task who then records it in
the account logging file.
A message telling the user that he has mail is displayed if
mail is found for him in the mail directory. The user should
then issue the MAIL command to deliver his mail.
The user's LOGIN.CMD file is executed without displaying the
"@LOGIN.CMD" message.
BYE.COR
If the ACNTLG task is installed ...BYE reports the logging
out to it.
In addition to nonprivileged tasks bye will abort privileged
tasks whose names are in a table internal to BYE. Currently
CON and RMD are aborted by bye.
ALTOV.COR
The bug involving ALTing tasks with one or two character
tasknames has been corrected.
TKTN.COR
The bug in the queue flushing code has been fixed and TKTN
now always uses IO.WBT to output messages, preventing it
from hanging ...MCR up when it tries to output to a terminal
that is currently inputing.
WHO.MAC
The new command WHO is used to display who is logged into
the system. The command displays the terminal number logged
into, his UIC, last and first names, and the time at which
the user logged in. All task names which are active for the
user are displayed on the next line.
CON.TSK, TELNET.TSK, RTDRV.MAC, RTMANUAL.DOC
This software implements a virtual terminal connection from
one RSX11M computer to another over DECNET V1.2. A version
for DECNET V2 is currently being developed.
ECO.TSK, ECO.MAC
This task simply echos to the terminal its MCR command line.
ATT.TSK, ATT.MAC (From Dan McCoy)
This task takes as its only parameter a filename and permits
the issuer to alter the record (carriage control) attribute
of the file. Switches are:
/CR Give the file the carriage control attribute.
When the file is printed on a record oriented
device (ie a terminal or line printer), a
line feed is printed before each line and a
carriage return is printed after each line.
This switch is the default if no switch is
specified.
/FT Gives the file the Fortran attribute.
When the file is printed on a record oriented
device, the first character of each line is
interpreted as a Fortran carriage control
character.
/-FT Same effect as /CR
/-CR Gives the file no carriage control attribute.
When the file is printed on a record oriented
device, no carriage control is added to the
output; internal carriage control assumed.
HELP.TXT
A tree structured help file for obtaining information about
commands and features of RSX11M.
PSDRV.MAC
Revision H of PSDRV fixes the problem of ABOrting a task
using the picture system. The old PSDRV did nothing at
cancel entry of the driver. The cancel entry is called when
a task is aborted which has a LUN (attached) to the device.
This problem would show up as a task sitting in I/O rundown
(RDN) with the marked for abort bit (ABO) and (HLT) on but
not being able to abort the the task essently knocking out
the tasks memory until a restart. This was especially
annoing to fortran users since fortran aborts the task
automatically when any error occurs. The problem was
basically that in aborting, the PSFIN function was not
occuring. Thus decrementing the I/O count and clearing
various PSDRV variables was not occuring on aborts. The
cancel entry code thus basically does a PSFIN for you. Note
that a normal task exit also causes the cancel entry to be
called therefore a PICSYS user can now leave out the CALL to
PSFIN and not do himself in (although for compatibility,
etc. I would recommend that you leave the calls in.)
LPDRV.COR
The line printer driver is now smarter in that it will
ignore extra form feeds if it knows it already just output a
form feed thus eliminating the extra pages that the print
spooler waists. Unfortunately you can still fake it out if
you use the advance button instead of the form feed button
to advance the paper after a listing is completed. Please
use form feed button to advance paper for now.
The line printer driver also supports an IO.WAL function
which allows a task to use the plotting features of a DEC
LV11 plotter/printer.
The following programs obtained from a previous DECUS tape, were
enhanced:
MAIL.TSK, MAIL.MAC MAIL [user name or uic]
If issued with no parameters it delivers the users mail else
it prompts for the user to enter mail to send to the given
userid. End input with a ctrl-z. After delivering the mail
the user is asked whether he wants to delete the mail, save
it by renaming it to the users directory or retain it by
leaving it in LB:[10,3] to be delivered again by the next
MAIL command. If the rename is unsucessful because the user
does not have a directory on the LB: disk the mail is simply
retained.
FRG.TSK, FRG.MAC FRG ddu:
Displays disk fragmentation characteristics.
It was changed to use double precision arithmetic.
The error messages were enhanced.
It now allows unit number zero as a default.
A size of the largest free block is displayed.
Output is now in lowercase.
The hole ranges were altered to a more logrithmic scale.
Allowed the non-privileged user to use it.
And it was built /PR:0 since it doesn't reference the EXEC.
CMTMO.COR fixes a bug found in DECNET V1.2
P.S. You can create the needed logical devices CM: and LG:
by doing a global ASN in VMR.