Dear Reader: Due to a change in the production of the RSTS/E Newsletter, the copy stored on the Newsletter System may be a bit hard to read. However, it is still being provided there for those who want the material "hot off the presses". I suggest subscribing to the combined newsletters as well, however. Terry Kennedy RSTS SIG Newsletter Editor October, 1988 Table of Contents From the Chair. . . . . . . . . . . . . . . . RST-2 From the Editor . . . . . . . . . . . . . . . RST-3 Anaheim Symposium Session List. . . . . . . . RST-3 Useful DIBOL Subroutines. . . . . . . . . . . RST-4 $LINK/RSX/DEBUG Explained . . . . . . . . . . RST-8 CUSP of the Month - CSPCOM. . . . . . . . . . RST-9 The 1987 Nashville/Anaheim RSTS SIG Tape. . . RST-13 _______________________________ FROM THE CHAIR Charles W. Mustain - RSTS SIG Chairman _______________________________ Why upgrade? This is a question I am often asked by users of pre-9.0 versions of RSTS. Since I am the SIG chair, these optimists figure I ought to have an answer. Unfortunately, this is a member of that class of questions which have no single answer. All possible answers I have found begin with a constellation of IFs. Of course, when wearing my official SIG chair hat, the answer comes readily; "Do it because DEC only supports the current version and your support contract funds the continued development of RSTS and its continued support in the field." As an active user of RSTS (5 systems), I am well aware that this is a less than satisfactory answer for most. Rather than try for a definitive answer, let me try to characterize a class of users who should be thinking of moving to the current version. These users: 1. Want and need Software Support from DEC. 2. Wish to take advantage of the lower maintenance cost or features of newer hardware, i.e., faster disks, newer processor, high-density tapes, etc. 3. Will be using a RSTS system in a shop that also includes VMS (VAX). Reasons are similarity of user interface, easier file transfer between systems. 4. Wish to have a RSTS system that can play on the network team with VMS, RSX, Ethernet, terminal servers, etc. 5. Are doing active software development with RSTS and BASIC Plus 2 and wish to take advantage of the larger program space available with I&D space machines (11/45, 11/70, 11/44, 11/84, 11/83). Also, wishes to take advantage of the advanced syntax and vocabulary of latest versions of BP2 and COBOL 81. These newer compilers also feature vastly improved upward compatibility to their VMS counterparts. 6. Do not have a full-time system manager and want a RSTS system that is simpler to install and update. While this list is not exhaustive, it can at least serve as a rough guide to decision making. A yes answer to any of the above is a strong indication you should be thinking update. No doubt readers will think of other items for the list. NEXT MONTH: Some reasons you may not wish to update. _______________________________ FROM THE EDITOR Terry Kennedy - RSTS SIG Newsletter Editor _______________________________ You may have been wondering about the prolonged absence of the RSTS section from this Newsletter. Well, it wasn't because we were mad about the poor print in the May '88 issue! Actually, I've changed jobs within the organization I work for, and I haven't had time to prepare the Newsletter. I looked at my calendar, and this is my last chance to get an issue to you before the Anaheim Symposium, so rather than being mobbed by hundreds of irate RSTS users there, I figured I'd better get an issue out. [Actually, I'd do almost *any- thing* to be mobbed by RSTS users at a Symposium, but that's another issue...] Anyway, we should be back on track for monthly publication as of this month. You will probably have noticed that we are now printed in 'one-up' format, which should make the section easier to read. Additionally, the text is now being prepared on a laser printer. One side effect of this is that all listings will be grouped together in the back of our section, as they are being prepared on a different system. As always, the SIG is looking for articles to print. To submit an article, you may use the following methods: Via US Mail: Via UPS, FedEx, etc.: Terence M. Kennedy Terence M. Kennedy St. Peter's College St. Peter's College Academic Computer Center Academic Computer Center 2641 Kennedy Blvd. 121 Glenwood Avenue Jersey City, N.J. 07306 Jersey City, N.J. 07306 (201) 435-0252 (201) 435-0252 You may electronically submit material by calling the RSTS SIG bulletin board system at (201) 915-9361, or you may reach me as user KENNEDY on both DCS and DECUServe, if you have access to either of those systems. You may submit material on RX50's or RX33's (in RSTS or RT11 format), on 800, 1600, 3200, or 6250 BPI 9-track tape (in DOS, ANSI, BRU, RSTS BACKUP or VMS BACKUP format), or on PC-DOS floppies (5 1/4 or 3 1/2 inch format). If you are really desperate, I can also accept RSTS or RT11 format RL02 and RK07 disks. You may also submit hardcopy documents, but these will take longer to get into print. _______________________________ Anaheim Symposium Session List _______________________________ Session Day Time Title RS006 Mon 12:00 PM RSTS Roadmap RS009 Mon 12:45 PM RSTS Announcements RS014 Mon 1:30 PM RSTS V9.6 Tech Changes RS017 Mon 6:00 PM RSTS Performance Comparison RS001 Mon 7:00 PM RSTS 80th Birthday Preview RS022 Mon 8:00 PM RSTS/E Performance Tuning RS011 Tue 9:00 AM Intro to DECnet/E (why me?) RS010 Tue 10:00 AM Appl. Programming on DECnet/E RS003 Tue 11:00 AM RSTS Tech Tips I (SPR) RS015 Tue 3:00 PM What is LAT/E? RS013 Tue 4:00 PM Modems on RSTS RS016 Tue 5:00 PM RSTS Term Service Internals RS008 Wed 1:00 PM RSTS SIG Wish List I RS019 Wed 2:00 PM Using RSTS Batch Services RS018 Wed 3:00 PM Using RSTS Backup RS007 Wed 4:30 PM RSTS SIG Tape/Library RS023 Wed 5:00 PM Ask the RSTS Experts RS012 Thu 3:30 PM RSTS/VMS Migration - Sys. Mgt. RS021 Thu 5:00 PM Alternatives to VAX Migration RS020 Thu 6:00 PM PDP-11 to VAX: Hardware Issues RS004 Fri 11:30 AM RSTS Tech Tips II (Bits & Bytes) RS002 Fri 12:30 PM RSTS SIG Wish List II RS005 Fri 1:30 PM RSTS SIG Wrap-up Related Sessions of Interest: Session Day Time Title LT075 Mon 11:00 AM PDP-11 Language Status/Futures RX069 Mon 3:00 PM PDP Futures - User's View RX068 Mon 4:30 PM DEC Asks PDP-11 Users HM049 Wed 12:00 PM PDP-11 Upgrade and Migration LT074 Thu 9:00 AM PDP-11/VAX Compatibility Tools LT081 Thu 9:30 AM PDP-11 to VAX Basic Migration LT023 Thu 10:15 AM RSTS/VMS Migration with Basic LT068 Thu 11:00 AM RSTS to VAX Conversion LT071 Thu 1:30 PM Basic-Plus-2 Pitfalls and Hints LT076 Thu 2:30 PM PDP-11 Langs & Layered Prods Q&A _______________________________ Useful Dibol Subroutines Paul Flaherty _______________________________ The following DIBOL subroutine may prove useful to other RSTS/DIBOL users. It allows a running DIBOL program to submit a batch job to PBS without having to do something like chain to a .COM file. It is a plain, vanilla submit, with no parameters, etc., but it is useful in many applications, and perhaps other newsletter readers might want to add some bells and whistles. SUBROUTINE SUBMT ;Author: Paul F. Flaherty, Jr. ; DP Manager ; DANIELS AND CRONIN ; Attorneys at Law ; Three Center Plaza ; Boston, MA 02108-2003 ; (617) 227-5570 ;subroutine which allows a Dibol program ;running under RSTS/E Version 9.x to submit ;a batch job to run under PBS. It is a plain, ;vanilla routine - the equivalent of a DCL ;"SUBMIT" command with no qualifiers - but is ;nevertheless useful in many applications. ;N.B. This subroutines calls other routines ; from LB:UNSUPP.OLB, Digital's ; UNSUPPORTED Dibol subroutines library. ; =========== SUBMIT ,A ;command file name passed from calling routine ERR ,D ;meaningless incoming; outgoing zero if success ;else error code RECORD FIRQB ;the following are for xcall exemt, ;ptfrq, gtfrq FRQ ,2D3 SYS ,30D3 RECORD DUMMY ,D3 UUO ,D6,104066 ;looks decimal, interpreted as octal PROC CLEAR ERR, FIRQB, DUMMY ;initializw some variables ON ERROR ERROR ;set up error trap XCALL FSS (SUBMIT,ERR) ;file string scan to load firqb OFF ERROR IF (ERR) RETURN ;let main routine handle error XCALL GTFRQ (FIRQB,FRQ) ;get the firqb SYS(1) = 6 ;sys call to FIP SYS(2) = -28 ;sub call (UU.SPL) SYS(3) = 0 ;according to Programming Manual SYS(4) = 0 ;ditto SYS(13) = 66 ;"B" SYS(14) = 65 ;"A" FOR DUMMY FROM 15 THRU 30 CLEAR SYS(DUMMY) ;initialize the rest XCALL PTFRQ (FIRQB,FRQ) ;load the FIRQB XCALL EXEMT (ERR,UUO) ;and do it (if error ERR is set) RETURN ;return ERROR, ;general error trap OFF ERROR XCALL ERROR (ERR,DUMMY) ;get the error code RETURN ;and return it END Here are a couple more routines that RSTS/Dibol sites may find useful. The first is a MACRO routine that allows a Dibol program to drop/regain temporary privileges if the privilege bit is set initially. The second is a Dibol routine which allows a Dibol program to check whether or not the job under which it is running has a particular privilege enabled. The code follows. ;+ ; ; File TPRIV.MAC ; ;- .include /SY:[1,2]COMMON.MAC/ .title TPRIV .ident /1.0.0/ .psect $TPRIV ;+ ; ; Author: Paul F. Flaherty, Jr. ; DANIELS & CRONIN ; Three Center Plaza ; Penthouse Mezzanine ; Boston, Massachusetts 02108 USA ; (617) 227-5570 ; ; Date: August 24, 1988. ; ;- ;+ ; ; Program description ; ======= =========== ; ; This is a MACRO-11 subroutine written in conformance with the Digital ; Equipment Corporation document entitled "Writing MACRO Subroutines for ; RSTS/E DIBOL V5.1." ; ; The calls to this routine are made by calling either DPRIV to drop ; temporary privileges, or RPRIV, to restore temporary privileges dropped ; by DPRIV. TPRIV itself is not called. ; ;- ;+ ; ; Revision History ; ======== ======= ; ; When Who What ; ---------------------------------------------------------------------------- ; 24-Jul-1988 PFFJr Initial source ; ;- .MACRO DOXRB, ?A ;clear the xrb and then set jfsys mov #xrb, r3 ;point to the xrb A: clr (r3)+ ;clear a word cmp r3, #xrb+14 ;done yet? blos A ;nope mov #jfsys, xrb+xrlen ;pick the bit .ENDM DOXRB RPRIV:: DOXRB ;set up the XRB .SET ;regain privs rts pc ;return to DIBOL DPRIV:: DOXRB ;set up the XRB .CLEAR ;drop privs rts pc ;return to DIBOL .end ;that's it ****************************************************************************** SUBROUTINE PCHEK ;Author: Paul F. Flaherty, Jr. ; DP Manager ; DANIELS AND CRONIN ; Attorneys at Law ; Three Center Plaza ; Boston, MA 02108-2003 ; (617) 227-5570 ;subroutine which allows a Dibol program ;running under RSTS/E Version 9.x to check ;whether or not the job under which it ;is running has a particular privilege. ;N.B. This subroutines calls other routines ; from LB:UNSUPP.OLB, Digital's ; UNSUPPORTED Dibol subroutines library. ; =========== PNAME ,A ;privilege name STATUS ,D ;meaningless incoming; outgoing 0 = has priv ;1 = no priv RECORD FIRQB ;the following are for xcall exemt, ;ptfrq, gtfrq FRQ ,2D3 SYS ,30D3 RECORD X ,D3 Y ,D3 ERR ,D3 UUO ,D6,104066 ;looks decimal, interpreted as octal PROC IF (PNAME.EQ.' ') GOTO ERROR ;ignore blanks UPCASE PNAME ;make upper case CLEAR ERR, FIRQB, Y, X ;initialize some variables DO INCR X UNTIL (X.GT.6.OR.PNAME(X,X).EQ.' ') ;find first blank X = X - 1 SYS(1) = 6 ;sys call to FIP SYS(2) = 32 ;sub call (UU.CHK) SYS(3) = 1 ;convert priv name to mask code FOR Y FROM 1 THRU X ;convert string to decimal XCALL DECML (PNAME(Y,Y),SYS(Y+6)) XCALL PTFRQ (FIRQB,FRQ) ;load the FIRQB ON ERROR ERROR ;only poss error is rsts error 5 XCALL EXEMT (ERR,UUO) ;and do XCALL GTFRQ (FIRQB,FRQ) ;get the result OFF ERROR STATUS = SYS(3) ;set up the return value RETURN ;return ERROR, STATUS = 1 ;if there's an error tell caller nopriv RETURN ;and return END [Ed. Note: The above routines are available on the Newsletter System as files [49,1]SUBMIT.DBL, [49,1]TPRIV.MAC, and [49,1]PCHEK.DBL, respectively. See Page RST-3 for information on accessing the RSTS SIG Newsletter System.] _______________________________ LINK/RSX/DEBUG Explained Brett Bump _______________________________ This memo is a comment about the letter posted in the February 88 issue of the RSTS SIG newsletter. Mr. Lutz asked whether there is a elegant solution to the DCL LINK command with the debug switch: $ LINK/RSX11/DEBUG/MAP Having been raised on DOS-11 I was forced to learn all of those cryptic commands that developed in RT11, RSX and RSTS. So I must admit that I have rarely used DCL since its addition to the RSTS O/S. I usually talk directly to the source programs (TKB). Mr. Lutz is correct that the problem lies with the temporary command file. Since the dawn of DCL on RSTS there have been additional files that were included with DCL in order for DCL to do its thing. SHOTER was the original show terminal program. DCLUTL and PRELIN still exist. So do the .LNK files located in the LB: account for task building programs. The file LB:RSX11.LNK is a skeleton file which is used to create the TKB.CMD file. This file has not changed (only the version number was changed to protect the corporation) and no, the $LINK/RSX/DEBUG command didn't work in previous versions either. Here is your trivial solution: RUN EDT$:EDT EDT>LB:RSX11.LNK *FIND "UNITS *SUBS/14/12/ *+2 *SUBS/:13:14// *EXIT If this solution is too trivial for a trip to Switzerland how about an invitation to speak at Decus? _______________________________ CSPCOM - CUSP of the Month Brett Bump _______________________________ The CSPCOM program has been on the distribution tapes for many years now. This program has acquired a bad reputation for not working or having enough bugs that many users will not use it. This is too bad. In all of the years that I have used this program I have only found one bug that has cropped up (if you can call it a CSPCOM bug). A system manager usually runs into this bug after compiling the LOGIN.BAS program for V9. When the program is run the following error occurs: ??Memory management trap (Register dump) The error occurs because of the following system call: FOO$=SYS(CHR$(6%)+CHR$(11%))!DEASSIGN LOGICAL NAMES AND DEVICES The fallacy of this bug is that the call in itself is not used. The system call to deassign all logical names and devices is a .ULOG call. Basic-Plus achieves this call by converting the .UUO call into the proper format for the .ULOG call. The format for the .ULOG call must have the XRB clear before executing. Since Basic-Plus programs are interpreted and CSPCOM programs are compiled, the bug in question is not contained within the compiler but within the object library for the compiler. The thread that is called from CSPCOM is called SYS$. This symbol is located within $IESYS in the CSPCOM.OLB file. The problem in the code is one simple programmer mistake and it has been there since 1979. Instead of using the Loop: Clr -(r0) ;r0 starts at 1000 Cmp r0,@#734 ;Does r0=(value in 734) Oops! Bhi Loop ;If not then loop But as you can see one little @ got in by mistake. The outcome of this mistake is to clear low memory until the KEY word is reached effectively trashing the stack and your program. The following patch is provided so that you can get the bug out of there. ! ! CSPCOM.PAT ! ! Oct 1985 ! CSPCOM.OLB ! Bp2 V1.6 Mini Compiler library patch ! ! BY (Brett Bump) Unemployed and available., Chadron, NE. ! ! Patch to fix fip FOO$=SYS(CHR$(6%)+CHR$(11%)) ! ! Thread is Sys$ ! Module is $Iesys ! File to patch? Base address? 107430 Offset address? 0 Base Offset Old New? ?????? 000000 005040 ? ?????? 000002 020037 ? 20027 ?????? 000004 000734 ? ?????? 000006 101374 ? ^C That is for all of you Basic programmers. Now for you macro programmers here is a little something extra to play with. Since many of the newer system calls are not available through the Basic FIP subfunction calls much of your time may be spent hacking the code in macro. I just hate to experiment in macro. If I must write macro code I want all of my system calls debugged first. It's a very simple matter to include the EMT calls within the CSPCOM.OLB library and to do your experimenting from Basic. First we assemble the following file: .PSECT MONITR CALFP:: CALFIP ; Call FIP, with FIRQB loaded RETURN READ:: .READ ; READ RETURN WRITE:: .WRITE ; WRITE RETURN CORE:: .CORE ; Change user memory size RETURN SLEEP:: .SLEEP ; SLEEP job for n seconds RETURN PEEK:: .PEEK ; PEEK at memory RETURN SPEC:: .SPEC ; Special function RETURN TTAPE:: .TTAPE ; Enter TAPE mode RETURN TTECH:: .TTECH ; Enable echo RETURN TTNCH:: .TTNCH ; Disable echo RETURN TTDDT:: .TTDDT ; DDT submode RETURN TTRST:: .TTRST ; Cancel ^O effect RETURN TIME:: .TIME ; Get timing information RETURN POSTN:: .POSTN ; Get device's horizontal position RETURN DATE:: .DATE ; Get current date & time RETURN SET:: .SET ; Set keyword bit(s) RETURN STAT:: .STAT ; Get my statistics RETURN RUN:: .RUN ; RUN a new program RETURN NAME:: .NAME ; Install a new program name RETURN EXIT:: .EXIT ; Exit to default run-time system RETURN RTS:: .RTS ; Change to a new run-time system RETURN ERLOG:: .ERLOG ; Log an error from the run-time system RETURN LOGS:: .LOGS ; Check for logical devices RETURN CLEAR:: .CLEAR ; Clear keyword bit(s) RETURN MESAG:: .MESAG ; Message send/receive RETURN CCL:: .CCL ; CCL checker RETURN FSS:: .FSS ; File String Scanner RETURN UUO:: .UUO ; UUO hook RETURN CHAIN:: .CHAIN ; CHAIN to a new program RETURN PLAS:: .PLAS ; Resident library control RETURN RSX:: .RSX ; Enter RSX emulation RETURN ULOG:: .ULOG ; ASSIGN/REASSIGN/DEASSIGN device/user logical RETURN XPEEK:: .XPEEK ; Extended block-mode PEEK RETURN READA:: .READA ; Asynchronous read RETURN WRITA:: .WRITA ; Asynchronous write RETURN ASTX:: .ASTX ; Exit AST routine RETURN PFB:: .PFB ; PFB Handling Routines RETURN CMDLN:: .CMDLN ; Command line read/write RETURN AST:: .AST ; Disable/Enable AST routine execution RETURN .END RUN $MAC MAC>MONITR=COMMON,MONITR MAC>^Z COMMON.MAC is usually in account SY:[1,2]. Next we insert this object module into the CSPCOM.OLB library: RUN $LBR LBR>CSPCOM/IN=MONITR LBR>^Z CSPCOM.OLB is usually in account [1,2] for V8, UPDATE$: for V9. Then use these routines just as if you were programming in macro: 10 FOO$=SYS(CHR$(6%)+CHR$(-10%)+"FOOBAR") 20 CALL NAME 30 INPUT "Type ^T ";FOO$ 40 END Warning: If you are using VSECT for FIRQB and XRB use a version 8 or older TKB. VSECT will not work with version 9 TKB. _______________________________ The 1987 Nashville/Anaheim RSTS SIG Tape Franklin Mitchell - RSTS SIG Tape Copy Coordinator _______________________________ The 1987 Nashville/Anaheim RSTS SIG tape was produced early this year. It consists of a full 2400' 1600 BPI tape of goodies, games, utilities, DCL examples, etc. (see directory below) that most any RSTS user could use. It is available through LUGs (local user groups), the DECUS Library, from the RSTS SIG Tape Copy Coordinator, and through the newly formed RSTS SIG Tape Copy Distribution Tree (see list below). If you want a copy of the 1987 tape from me, send a NEW tape in a suitable container with return postage or send $10.00 and I'll supply the tape, container, and postage. Send any comments, suggestions, complaints, or other input to me at the address below or via DCS to MITCHELLF. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Please share your RSTS "goodies" with the RSTS SIG. Contribute to the 1988 RSTS SIG Tape Copy process! Preferred tape density/format is 1600 BPI mag tape in DOS format. V9 BACKUP format is also accepted but please, no V8 BACKUP tapes. Other media can be accepted with some delay for conversion. Enclose a DECUS "Tape Copy Release Form" with your submission. A "Tape Copy Release Form" can be found in each Fall/Spring DECUS Symposia announcement or you can get one from me at the address below. Submit your own work. I.E., if you have modified a DEC CUSP, submit only the changes, not the whole CUSP. Send your submission before 1 December 1988 to: Franklin Mitchell RSTS SIG Tape Copy Coordinator Erskine College 1 Washington Street PO Box 86 Due West, SC 29639 (803) 379-2131 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Directory of the 1987 Nashville/Anaheim RSTS SIG Tape: Account Who What ------- --- ---- [87, 0] RSTS SIG This README.1ST + MT.LST directory [87, 1] DEC RSTS Development Team Example .COM files, etc. [87, 2] Erskine College Goodies [87, 3] Mike Mayfield Goodies [87, 4] Brian Nelson, Univ of Toledo Command line editor (CLE) [87, 5] Brian Nelson New CLE [87, 6] The University of Toledo Kermit 11 [87, 7] The University of Toledo Kermit for various PC's [87, 8] Ed Moran, Horace Mann School Pascal library routines for RSTS [87, 9] James B. Wilkinson TYPE [87,10] Terry Kennedy, St Peter's DECUS C [87,11] Terry Kennedy College Fortune Cookie program [87,12] Terry Kennedy Cookie data [87,13] Terry Kennedy Cookie data [87,14] Terry Kennedy Back issues of the RSTS newsletters [87,15] Terry Kennedy System utilities [87,16] Terry Kennedy DEC MAIL utilities [87,17] Terry Kennedy MS DOS Kermit 2.30 [87,18] Terry Kennedy Games [87,19] Gene Alpern Directory of all past RSTS SIG tapes. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Members of the 1988 RSTS SIG Tape Copy Tree: Christian G. Cordova-Rolon Programmer/Analyst Quodata Corporation 266 Pearl Street Hartford, CT 06103 (203) 728-6777 Daniel Stoller Director of Data Processing Natural Country Farms, Inc. 58 West Road PO Box 758 Rockville, CT 06066 (203) 872-8346 Chuck Evans Director of Data Processing Times Publishing Company Times Square West 12th & Sassafras Street Erie, PA 16534 (814) 456-8531 Greg Justice Programmer/Analyst TDIndustries 13737 North Stemmons Dallas, TX 75234 (214) 888-9535 Peter K. Wanger, Jr. Bottom Line Systems 1604 McDonald Way Burlingame, CA 94010 (415) 692-3870 Dale A. Johnson Software Engineer UseWare Software Development, Inc. 2235 Meyers Ave. Escondido, CA 92025-1070 (619) 745-6006 Michael E. Tharp Manager MIS Masoneilan North American Operations 1040 South Vail Ave. Montebello, CA 90640 (213) 722-8670 Robert A. Fidelman RAF Associates 4721 Santa Rosita Ct. Santa Rosa, CA 95405 (707) 538-2820 Paul M. Kvamme Data Processing Manager 16680 So. Spangler Rd. PO Box 69 Beavercreek, OR 97004 (503) 632-3113 Kenneth LeFebvre (TK50 only) Sytek Inc. 19 Church Street PO Box 128 Brea, OH 44017 (216) 243-1613 Eugene W. Alpern Saber Computer Services, Inc. Box 232 Morton Grove, IL. 60053 (312) 998-5950 Randy Chenowith Computer Services Canadian Union College Box 430 College Heights Alberta TOC OZO CANADA (403) 782-3381