.NONUMBER .LM 0 ^PY^- .PAGE SIZE 58,85 .LM 10 .RM 75 .NO FILL .NO JUSTIFY # .SKIP 5 .CENTER The RSX Multi-Tasker .CENTER January, 1987 .SKIP .CENTER ^IS144^G"Illegitimus Non Carborundum Est"^IS204^G .SKIP .CENTER Fine Realtime Commentary Since 1975 .SKIP 6 .CENTER ^&Table of Contents\& .SKIP 2 .TAB STOPS 60 Food for Thought RSX-1 The Editor's Corner RSX-1 Licensing to Kill RSX-2 Submitting Articles to the Multi-Tasker RSX-3 And That's The Way Things Are RSX-3 Idle Loop Lights for PDP-11/84s RSX-4 An RSX Message System RSX-5 Solution to the RSX Brain Teaser RSX-13 Spring 1986 "Woods" Meeting Report RSX-17 1986 Multi-Tasker Index RSX-21 Data Caching RSX-22 .JUSTIFY .FILL .PAGE .COMMENT .COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .COMMENT Food for Thought .COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .COMMENT # .SKIP 7 .AUTOPARAGRAPH .CENTER ^&Food for Thought\& .SKIP "As a living thing man may be coerced, i.e. his body or anything else may be brought under the power of others; but the free will cannot be coerced at all, except in so far as it fails to withdraw itself out of the external object in which it is held fast, or rather out of the idea of that object. Only the will which allows itself to be coerced can in any way be coerced." .SKIP 2 .INDENT 30 ^IS144^G- Georg Hegel^IS204^G .INDENT 30 ^IS144^G##The Philosophy of Right^IS204^G .COMMENT .COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .COMMENT The Editor's Corner .COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .COMMENT .SKIP 9 .CENTER ^&The Editor's Corner\& .SKIP .CENTER Bruce R. Mitchell .SKIP At long last, gentle readers ... the results from the puzzle contest are to be found in this issue. Greetings once again, folks, from Byron, Minnesota, the Rutabaga Capitol of the World. It's so cold here, as I write, that even the little LEDs on the front of the 11/60 are turning blue. And it's really hard to get the ice cubes to go down the drain after taking a shower. As this issue goes to press, in late November, there is a great furor in progress over Digital's new policy on software licensing. Nobody seems to be quite sure what is going on. We may hope to see some sort of order emerge from this madness. As things stand right now, though, it appears to be the entire user community - including DECUS - against DEC. In this issue, we have a neat little patch for those of you who own 11/84s and would like rotating console lights. An article on a message system will be of use to those users without DECnet and the SIG tape MAIL package. To round out the issue, there is the report on the Spring 1986 (yes that's right) Woods meeting and copies of the handouts on disk caching from the Fall 1986 Symposium. from the Symposium session on ACDs. Oh, yes. And an index to all the articles in the Multi-Tasker for 1986. I almost forgot that. Again, the editor thanks each and every respondent to the continuing call for more articles. Keep them coming; I've got a little something for all submittors. Sometimes it may even be useful. And - oh yes, if you don't want to ^&write\& an article, at least drop a line telling what kind of articles you'd like to ^&see\& in the Multi-Tasker. And, once again, ladies and gentlemen, we pour the water into the acid. Justin, take it away. .TEST PAGE 5 .SKIP 2 .CENTER ----- Licensing to Kill ----- Attendees at the Fall DECUS in San Francisco who attended the notorious session on Digital's new software licensing policy were privileged to see Digital do one of the quickest policy about-faces in recent history. ^&As announced at that session\&, all CPU licenses would die with the sale of the host CPU. No upgrade credit. No transfers. Not even when the CPU was traded in on a bigger CPU within the same organization. Imagine the potential cost to a company upgrading from an 8650 to an 8800! As howls of outrage from the user community reportedly caused cancellation of megabucks of orders, DEC wasted no time in disowning its new policy in regard to CPU upgrades. No, that wasn't what was meant; no, not at all, and we're sorry you got that impression, dear users. It's interesting, however, that DEC seems to be sticking with its intent to make licenses die when a CPU is sold outside an organization. And, in the opinion of this writer, this is only slightly less offensive than abolition of credit for software licensing when a CPU is upgraded. Consider an extreme case. A company buys a MicroVaxII, licenses it, uses it for a year, outgrows it, and sells it. Another company buys it, licenses it, uses it for a year, outgrows it, and sells it. This could conceivably happen five or more times over the useful lifetime of that CPU. That CPU could sell six VMS licenses. It's unreasonable to charge full boat for the license after the first one. And, even so, it's unreasonable for Digital to transfer that VMS license without charge - which is what they have done to date, as a courtesy to users. It ^&would\& be reasonable for Digital to charge a license transfer fee for software licenses. Ten to twenty percent of the license cost is a fair amount; it covers Digital's overhead in transferring the license, and reminds the purchaser that software is a commodity, not a right ... ... whereas, the current policy is licensing to kill. Kill the used machine market, that is. Hmmm ... might that have been Digital's intent all along? .SKIP .INDENT 35 Yr obd't servant, .INDENT 35 ^IS144^GJustin L. Hewser^IS204^G (And, just as we go to press, the November 24th issue of ^&Digital Review\& reports Ken Olsen holding the opinion that "... we don't charge enough for software.") .TEST PAGE 5 .SKIP 2 .CENTER ----- Submitting Articles to the Multi-Tasker ----- Please submit machine readable media when possible. RX01, RX02, RX50, or 9 channel magtape at 800 or 1600 BPI are best. Any RSX volume format is acceptable except ROLLIN or PRESRV. ANSI, BRU and DOS FLX formats are well-liked by the Editor's tape drive. Submissions which aren't machine readable take longer to get into print. The editor is lazy and types mass quantities only once a month when progress reports are due. If you preformat a submission in RUNOFF format, please set page size 58,80; left margin 10; right margin 75; and, when changing margins, use incremental changes rather than absolute. The editor blesses you for the consideration. Send all submissions to: .SKIP .NO FILL .NO JUSTIFY Bruce R. Mitchell Machine Intelligence and Industrial Magic PO Box 816 Byron, MN 55920 .JUSTIFY .FILL .TEST PAGE 5 .SKIP 2 .CENTER ----- And That's The Way Things Are ----- _... this month in Pool Lowbegone, where the programmers' drink is strong, the Ziglet is good-looking, and the Files-11 ACP LRU count is above average. .COMMENT .COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .COMMENT Idle Loop Lights for PDP-11/84s .COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .COMMENT .TEST PAGE 15 .SKIP 6 .CENTER ^&Idle Loop Lights for PDP-11/84s\& .SKIP .CENTER Donald Arrowsmith .CENTER MS20, Naval Air Propulsion Center .CENTER Box 7176 .CENTER Trenton, NJ###08628 .SKIP Most of us who have used machines such as the 11/45 and 11/70, with the full display front panels, are comforted by the rotating light pattern when RSX is running. Just seeing the repetitive pattern appear is an indication that RSX is alive and well and living inside the box. DEC unfortunately gave up the full switch register front panels some time ago, but somewhat the same effect ^&can\& be achieved on an 11/84 with a little (very little) effort. A SYSGEN is required since Executive modifications are necessary. For RSX-11M, edit the RSXMC.MAC generated by SYSgen to include the line "P$$P45=0". Then apply the following SLP patch file to RSX-11M V4.2 executive module [11,10]SYSXT.MAC. The patch causes the diagnostic register to increment once every 30 passes through the idle routine. This happens twice per second on a 60Hz machine with no activity. .SKIP 2 .NO FILL .NO JUSTIFY -794,798* MOV _#30., $IDLCT ; Reset the count DEC (R1) ; Actually increments the lights MOV (R1), @_#177524 ; Put it into the diagnostic LEDs 45$: .JUSTIFY .FILL .SKIP ^IS144^GDonald didn't supply a patch for M-Plus, but if you feel bold, the following patch ^&may\& work. #---#The Editor^IS204^G .SKIP For M-Plus, P$$P45 is statically defined. No patches to RSXMC.MAC are necessary. Patch [11,10]SYSXT.MAC as follows before doing SYSgen. Note that this ^&hasn't\& been tested! .SKIP 2 .NO FILL .NO JUSTIFY IDLE: CACHE$ RESTOR ;RESTORE CACHE TO NON-BYPASS MOV (R1)+,(R1) ;RESTORE IDLE PATTERN DECB $IDLCT ;TIME TO MOVE PATTERN? BGE 45$ ;IF GE NO MOV _#30., $IDLCT ; Reset the count DEC (R1) ; Actually increments the lights MOV (R1), @_#177524 ; Put it into the diagnostic LEDs 45$: MOV (R1), R0 ;PUT IT WHERE IT CAN BE SEEN MOV R0,-(R1) ;SAVE IT FOR NEXT TIME WAIT .JUSTIFY .FILL .COMMENT .COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .COMMENT An RSX Message System .COMMENT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .COMMENT .TEST PAGE 15 .SKIP 6 .CENTER ^&An RSX Message System\& .SKIP .CENTER James M. Rengel .CENTER University of Kansas Medical Center .CENTER M.R.R.C., Bldg. 37, Rm. 24 .CENTER 39th St. _& Rainbow Blvd. .CENTER Kansas City, KS###66103 .SKIP .HL 1 Description MESSAGE allows an individual to create and send messages to another user on the same computer. The messages are displayed when the receiver logs on to the computer. Messages are sent by entering "MES" on a terminal. The command is intercepted by DECUS CCL and runs the Indirect Command File MESSAGE.CMD located in a UFD dedicated to the MESSAGE system. A prompt is displayed requesting either the last name of the individual to receive the message, "ESCAPE" key for a list of names, or "CONTROL Z" to exit. If a last name is input, MESSAGE.CMD scans an ACCOUNT.DAT file located in the MESSAGE "home" UFD. ACCOUNT.DAT contains all names and corresponding UICs of individuals with accounts on the system. When the name is found, the first and last names are displayed with a query asking if this name is correct. This allows for identical last names to exist in the ACCOUNT.DAT file. If the first occurrence of a duplicate last name was not the correct individual, MESSAGE.CMD continues scanning for the next occurrence. If the last name is not found, the prompt is again displayed at which point either another last name may be entered or other option may be selected. If the "ESCAPE" key is pressed, a list of the first and last names in the ACCOUNT.DAT file is displayed. If "CONTROL Z" is entered the command file exits. If the correct name is found, MESSAGE prompts for input line by line. Line width is limited to 72 columns and is terminated by a "RETURN". Messages can be any length. Editing of a message during input is limited to the current line, using only the "DELETE" key. Editing of a previous line is not possible. Accidental use of editing commands and keystrokes appropriate to EDI, TECO, KED or EDT generally cause havoc with the message being created. First and last name of sender, first and last name of receiver, date, and time are automatically included in each message as a header. If a message is sent from a UIC which does not exist in the ACCOUNT.DAT file, the sender is shown in the message header as from "THE UNKNOWN". This label is easily modified. Blank lines within a message are created by entering a space or tab on that line. MESSAGE input is terminated by entering a "RETURN" twice in succession. A "UIC".MES file containing messages is created for each receiver/UIC. All subsequent messages sent to the same receiver are appended to the first message, each with a new header. In other words, files are created only when messages are sent, and then only one file per receiver. When the receiver logs on to the system, a LOGIN.CMD file located in the receiver's UFD initiates READMES.CMD located in the MESSAGE home UFD. READMES.CMD transforms the receiver's UIC into "UIC".MES and tests the MESSAGE UFD for the presence of a file matching "UIC".MES. If the "UIC".MES file does not exist, for example no message waiting, READMES.CMD exits. If the "UIC".MES file does exist, the file is displayed on the terminal. After displaying the message, the receiver is queried for one of the following options: .SKIP "D"elete, "S"ave, "R"edisplay, or "P"rint message on LP:? If a message extends past 24 lines, the first portion of the message is scrolled off the screen; these options enable the receiver to redisplay or to obtain a hardcopy of the message. In addition, the receiver may save the message to again be displayed when logging on. This option may be useful as a reminder or tickler since it is possible to send messages to yourself. .HL 1 Compatibility The MESSAGE system is written with RSX11M V3.2 INDirect language on a PDP-11/34. It has also been installed and tested on a PDP-11/73 running M-Plus V2.1. The MESSAGE system can be easily tailored to meet specific needs and should run on any computer with RSX11M. In addition to using INDirect, DECUS CCL is utilized to enable a user to access the MESSAGE system by simply entering "MES". Other command line interpreters may be used in place of DECUS CCL to perform this same function. .HL 1 Installation Throughout the MESSAGE system, ME0: is used as a pseudodevice name in place of a physical disk device name, and [100,001] is used as the MESSAGE UFD. These designations can be changed to meet system specific requirements. The MESSAGE home UFD can be located on any disk and functions without problem across disk boundaries. Use the following command to assign the pseudo disk device name ME0: to the physical disk device name ddn: on which the MESSAGE system will reside: .SKIP ASN ddn:=ME0:/GBL .SKIP This command should be added to either the STARTUP.CMD file or to the system command file used when saving the system. Set up a UFD to contain MESSAGE.CMD, READMES.CMD, ACCOUNT.DAT, and "UIC".MES files with the following command: .SKIP UFD ME0:[100,001]/PRO=[RWED,RWED,RWED,RWED] .SKIP Note that this UFD has all privileges set in order to permit all privileged and non-privileged users to have Read, Write, Extend, and Delete (WORLD:RWED) access in the UFD. Choose a UFD group number which previously has not been issued. This maintains the Write, Extend, and Delete protection (WORLD:R) of these three files, unless the default protection settings (WORLD:R) of the disk were changed during disk initialization. It is necessary for the "UIC".MES files to be unprotected for the MESSAGE system to work. A "UIC".MES file has all privileges set (WORLD:RWED) by the MESSAGE.CMD file the first time the file is opened. Copy MESSAGE.CMD and READMES.CMD to the MESSAGE UFD. Using an editor, create an ACCOUNT.DAT file in this UFD. This file contains the names and corresponding UICs of all individuals participating in the MESSAGE system. Total length of first and last name, including a separation space, should not exceed 26 characters, and there should be no spaces or tabs trailing any of the entries. There is no limit to the number of individuals that can reside in the file, however, there is a noticable time delay while MESSAGE.CMD is searching for a name when ACCOUNT.DAT contains forty individuals. If entries are in alphabetical order, the names will be displayed in alphabetical order when the "ESCAPE" option is chosen. Entries must start with line one, column one of the file. Following is an example of the ACCOUNT.DAT file structure. .SKIP .NO FILL .NO JUSTIFY [1,2] Standard UIC format with no leading zeroes. SYSTEM First name of user, upper case only. MANAGER Last name of user, upper case only. [101,101] Next user LON AMICK [301,34] Next user JAMES RENGEL Last entry must have no trailing blank lines. .JUSTIFY .FILL .SKIP In a privileged UFD, create a LOGIN.CMD file containing the following command: .SKIP @ME0:[100,001]READMES.CMD .SKIP Copy LOGIN.CMD to all UFDs to be apart of the MESSAGE system with the following command: .SKIP PIP ddn:[grp,mem]=LOGIN.CMD .SKIP This file will have a privileged status and cannot be deleted from non-privileged UFDs. If necessary to prevent the LOGIN.CMD file from being superseded, the file can be renamed with a version number of 77777. The 77777 version number will prevent creation of a LOGIN.CMD file with a higher version number. If a LOGIN.CMD file already exists in a UFD, this command can be incorporated into the existing file. Some of this may not be necessary, but for the message system to be effective, all users on a computer system must participate. MESSAGE may be initiated through DECUS CCL or through another command line interpreter. If using DECUS CCL, modify the SYSCCL.CCL file with the following command sequence: .SKIP $3700MESSAGE .BREAK *@ME0:[100,001]MESSAGE.CMD %$ .HL 1 Summary The MESSAGE system is neither VMS ALL-IN-ONE Electronic Mail nor is it DECmail-11, however, it is effective, simple, and free. There is a certain amount of overhead associated with it for the system manager and for the users. The ACCOUNT.DAT file requires updating when individuals come and go, and all participating UFDs require the LOGIN.CMD file. I would appreciate receiving comments and modifications. If you have a problem with the MESSAGE system, please contact me by mail at the address above with a ^&detailed\& description of the problem and a phone number. .SKIP 4 .NO FILL .NO JUSTIFY _.; Command file - MESSAGE.CMD _.; Enables display of ACCOUNT.DAT and creation of "UIC".MES _.; file in the MESSAGE UFD for a user in file ACCOUNT.DAT. _.; .ENABLE GLOBAL .ENABLE SUBSTITUTION .ENABLE ESCAPE .DISABLE LOWERCASE _.101: ; Enter one of the following: ; Last name of individual to receive message. ; "ESCAPE" key for list of names. ; "CONTROL Z" to exit. .ASKS NAME .IFT .SETS NAME "" .IFT .GOSUB NAMLST .IF NAME EQ "" .GOTO 101 .OPENR _#0 ME0:[100,001]ACCOUNT.DAT .SETS TONAME "" .SETS FRNAME "" .SETF CORNAM _.102: .SETS $UIC "" .SETS FSTNAM "" .SETS LSTNAM "" .READ _#0 $UIC .READ _#0 FSTNAM .READ _#0 LSTNAM _.; If not available, change following to . .IF EQ $UIC .SETS FRNAME FSTNAM+" "+LSTNAM .IFT CORNAM .GOTO 103 .IF NAME EQ LSTNAM .GOSUB FILNAM .IF NAME EQ LSTNAM .SETS TONAME FSTNAM+" "+LSTNAM .IF NAME EQ LSTNAM .ASK CORNAM Is 'TONAME' correct name _.103: .IFF .GOTO 102 .CLOSE _#0 .IFF CORNAM .GOTO 101 .IF FRNAME EQ "" .SETS FRNAME "THE UNKNOWN" _.; The following line contains 26 blanks between double quotes .SETS SPACE " " .TEST TONAME .SETS SPACE1 SPACE[1:32-] .TEST FRNAME .SETS SPACE2 SPACE[1:32-] .ENABLE LOWERCASE .SETT PROTEC .TESTFILE ME0:[100,001]'$FILNM'.MES .IF EQ 1. .SETF PROTEC .OPENA _#1 ME0:[100,001]'$FILNM'.MES _.; The following line contains a space and two "CONTROL G" codes .DATA _#1  .DATA _#1 To: 'TONAME' .DATA _#1 From: 'FRNAME' .DATA _#1 At: '' '