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 - equivalent to "PIP /LI". Switches /BR, /FU and /TB are allowed. DELete - equivalent to "PIP /DE". Version numbers are required. ERAse - equivalent to "PIP /DE". Version numbers are optional. If omitted all versions will be deleted. FREe - equivalent to "PIP /FR". is optional. PURge - equivalent to "PIP /PU". REName = - same as "PIP =/RE". SPOol - same as "PIP /SP". TYPe - same as "PIP TI:=". UIC - 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 - sets the file(s) protection bits to [R,R,R,R] (read-only) for everyone. Uses: "PIP /PR:167356" UPR - 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. INDERR.COR, INDFDC.COR, INDNP1.COR, INDOPN.COR, INDMCR.COR, INDROT.COR, MGCML.COR 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.