Table of Contents

     From the Editor . . . . . . . . . . . . . . . RST-2
     Letters to the Editor . . . . . . . . . . . . RST-3
     Hardware Update Bulletin. . . . . . . . . . . RST-7
     Software Update Bulletin. . . . . . . . . . . RST-9
     Software Performance Report (SPR) Log . . . . RST-9
     Version 9.4 Monitor Internals Update. . . . . RST-9
     CUSP of the Month - DISPLY. . . . . . . . . . RST-15








===============================================================

                        From the Editor
                         Terry Kennedy

     Well,  I'm still recovering from the Fall Symposium  as  I 
write this.  It was a pleasure to meet some of the people  I've 
communicated  with  over the Bulletin Board system  in  person. 
Thank you all for your comments and suggestions.

      We had a full schedule of RSTS sessions, which were  well 
attended.  In addition to DEC's presentations, we had many user 
presentations.   It  is good to see so many sessions  given  by 
users.   DEC  had a number of sessions where you could  get  an 
advance  peek  at  some of the ongoing  issues  affecting  RSTS 
users. Among there were a RSTS/VMS compatibility session  where 
pre-release  copies  of the RSTS/VMS Compatibility  Guide  were 
given  out.  There  was also a  session  on  Operator  Services 
Futures,  where DEC gave an outline of a  hypothetical  package 
which,  if  implemented,  could replace OPSER  and  give  added 
functionality to PBS.  Most of our sessions were taped, so  you 
can order the tapes if you missed the session or didn't get  to 
go at all.

     It is good to see so many contributions this month.  There 
should  be  something  for  everyone in  this  issue,  from  an 
entertaining 'snake' game to some complex modifications to  the 
DISPLY program.

     Since  the  how-to form has been removed, here is  how  to 
contact me for submissions, etc.:

     Via US Mail:                   Via UPS, FedEx, etc.:

     Terence M. Kennedy             Terence M. Kennedy               
     St. Peter's College            St. Peter's College              
     Department of Comp. Science    Department of Comp. Science   
     2641 Kennedy Blvd.             121 Glenwood Avenue              
     Jersey City, N.J. 07306        Jersey City, N.J. 07306          
     (201) 435-1890                 (201) 435-1890                   

     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 (54 or 32 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.

===============================================================

                     Letters to the Editor

Otto W Lutz                                  Dec 20th, 1987
PO Box 236
CH-8402 Winterthur
Switzerland
                                        To 
                                        Terence M Kennedy
                                        St Peter's College
                                        Dpt Computer Science
                                        2641 Kennedy Blvd
                                        Jersey City, NJ 07306
                                        U S A

Re:     RSTS Newsletter

Dear Terry,

     Sorry  for the delay in my response to the fresh wind  you 
brought into the Newsletter. I know the problem for I've  tried 
the same for the Swiss Newsletter for more than a year now.

     I  include the Reader Survey form hereafter; a modest  try 
of  a contribution I have sent earlier through  the  Newsletter 
Dialup System.

     I  have  tried  again to communicate  through  the  Dialup 
System using the new number and got quite well into the system. 
Once  in  the MAIL program however there was no ways  to  reach 
NEWS  as described in the October NEWSLETTER. The  system  kept 
answering  me  "%No  such user as news". Do I  need  a  private 
account for a more successful communication? [Ed: No, there was 
a  problem that the "NEWS" nickname went away when I  installed 
the  DECmail  update. I have now made NEWS a real  username  so 
this won't happen again.]       

     Thanks again and best regards

                                        Otto W Lutz

Att: Article

ODT with RSTS-DCL

The  following  question I owe to Adrian Coughlan  and  Malcolm 
Nicholas  of  the  DEC  Training  Center  in  Reading.  I  have 
submitted it to the Swiss Newsletter earlier, amazingly with no 
visible response. I therefore dare repeating it here hoping for 
more  success.  If  it  really were trivial I  bet  a  trip  to 
Switzerland  to the one who explains a solution to  me  (joke). 
Here it comes:

When  using the On-line Debugging Tool in  developing  Macro-11 
programs  you may encounter a slightly confusing  message  from 
the system as the following sequence of events shows.

According to the manuals the procedure is as follows:

$ MACRO/LIST file-spec.MAC      -->     produces: file-spec.OBJ
                                                  file-spec.LST

$ LINK/RSX11/DEBUG/MAP file-spec -->              file-spec.TSK
        ^                                         file-spec.MAP
        this qualifier asks for the               CMD00x.TMP
        RSX-type linker under RSTS                ODL00x.TMP
        DCL (see $ HELP LINK)   

$ RUN file-spec

?Illegal I/O channel

You  receive  the above message and consequently you  won't  be 
able to start the debugging run.

The problem most probably lies with the temporary  command-file 
created by the linker, which looks like this:

;  TKB .CMD file created by DCL LINK  V9.3-18   12-Jul-87   20:35   
SY:[1,3]TEST1/FP/DA,TEST1=ODL002.TMP/MP
UNITS   =14
ASG     =SY:1:2:3:4:5:6:7
ASG     =SY:8:9:10:11:12:13:14
//

The  command  file specifies 14 (I/O) units  while  RSTS/E  can 
handle  only  12 of them. Therefore you are stuck,  unless  you 
either design assembler programs that do not need any debugging 
- without the "DEBUG"-qualifier the above procedure works  fine 
-  or you refrain from using the elegance of  the  DCL-language 
and call the task builder directly instead of the the DCL  LINK 
step above:

$ TKB file-spec/DA,file-spec=file-spec
$ RUN file-spec
_ODT:file-spec
_ ...

This  way you can run the debugging in the usual i.e. the  RSX-
way.

It would be interesting to learn from the readers whether  they 
have  heard of the problem, which most probably has its  origin 
in the fact that the command-file meant 14 (octal) which  could 
be  handled  by  the RSTS-monitor or whether there  is  a  more 
elegant solution to work around it.

Otto Lutz, PO Box 236, CH-8402 Winterthur, Switzerland

                       ****************

Dear Terry,

     Recently I picked up SCAN from your system.  It's a useful 
program,  but  I found a few limitations  that  had  relatively 
simple  fixes, so I'm offering you a revised version  with  the 
following  changes:   matching  a string  that  spans  a  block 
boundary,  matching all occurrences of the string  (instead  of 
just  the first one), removing some unused code, and  replacing 
your octal print routine with one I'd previously designed which 
is about as fast as possible in a dialect of BASIC.  Since this 
program doesn't print many octal numbers, it's not so important 
here, but people might find other situations where it would  be 
of use, so I offer it in this context.

     Feel  free  to  share  this  with  anyone  who  might   be 
interested. [Ed: This program is available on the SIG  bulletin 
board system as file [49,1]SCAN2.BAS]

                Kelvin Smith
                Financial Computer Systems, Inc.
                1 Strawberry Hill Ct.
                Stamford, CT  06902

Att: Program

1000    EXTEND
1010    ON ERROR GOTO 32000 &
        \ PRINT "Binary file search 1.20 - 16-Nov-87 KS" &
        \ PRINT
1020    PRINT "File";
1030    INPUT LINE F1$ &
        \ F1$=MID(F1$,1%,LEN(F1$)-2%)
1040    PRINT "Search string"; &
\       INPUT LINE S$ &
\       S$ = LEFT(S$, LEN(S$) - 2%)
1050    OPEN F1$ FOR INPUT AS FILE #1%, RECORDSIZE 1024%
1060    FIELD #1, 511% + LEN(S$) AS I1$ &
        \ I%=1%
1070    GET #1%, BLOCK I% &
\       ST% = 1%
1075    BYT%=INSTR(ST%,I1$,S$) &
        \ GOTO 1080 IF BYT%=0% &
        \ PRINT "Found in block ";NUM1$(I%);" ("; &
        \ F.NUM% = I% - 1% &
        \ GOSUB 11000 &
        \ F.NUM% = BYT% - 1% &
        \ PRINT "), offset ";NUM1$(F.NUM%);" ("; &
        \ GOSUB 11000 &
        \ PRINT ")." &
        \ ST% = BYT% + LEN(S$) &
        \ GOTO 1075
1080    I%=I%+1% &
        \ GOTO 1070 &

11000   REM SUBROUTINE TO PRINT IN OCTAL
11010   IF F.NUM% < 0% &
           THEN F.I$ = "1" &
           ELSE F.I$ = "0" &

11020   F.I$ = F.I$ &
          + CHR$( (((F.NUM% AND 16384%) <> 0%) AND 4%) &
                 +(((F.NUM% AND  8192%) <> 0%) AND 2%) &
                 +(((F.NUM% AND  4096%) <> 0%) AND 1%) + 48%) &
          + CHR$( (((F.NUM% AND  2048%) <> 0%) AND 4%) &
                 +(((F.NUM% AND  1024%) <> 0%) AND 2%) &
                 +(((F.NUM% AND   512%) <> 0%) AND 1%) + 48%) &
          + CHR$( (((F.NUM% AND   256%) <> 0%) AND 4%) &
                 +(((F.NUM% AND   128%) <> 0%) AND 2%) &
                 +(((F.NUM% AND    64%) <> 0%) AND 1%) + 48%) &
          + CHR$( (((F.NUM% AND    32%) <> 0%) AND 4%) &
                 +(((F.NUM% AND    16%) <> 0%) AND 2%) &
                 +(((F.NUM% AND     8%) <> 0%) AND 1%) + 48%) &
          + CHR$(   (F.NUM% AND     7%)          + 48%) &
\       PRINT F.I$; &
        \ RETURN &

32000   IF ERL=1050 THEN PRINT "?That file does not exist -"+ &
          "try again..." &
        \ RESUME 1020
32010   IF ERL=1070 THEN PRINT "Done..." &
        \RESUME 32767
32020   IF ERL=1020 THEN RESUME 32767
32030   IF ERL=1030 THEN RESUME 32767
32040   IF ERL=1040 THEN RESUME 32767
32050   PRINT "Received error ";NUM1$(ERR);" at line "; &
          NUM1$(ERL);"." &
        \ RESUME 32767 &

32767 END

                       ****************

Dear Mr. Kennedy:

In Issue 12 of TUG lines, The Journal of the Turbo User  Group, 
Re`ne  H.  Ritter provided the Turbo Pascal source code  for  a 
Snake Game. This game is said to be well known to VAX users.

After  getting it up and running on my PC and adding color  and 
various  bells and whistles, I decided to try to "port"  it  to 
RSTS. A "port" to Oregon Pascal-2 "worked" except I was  unable 
to get the time between "moves" to less than 1-second -- a  no-
wait or very short wait read proved to be beyond my programming 
capabilities  in Pascal or MACRO-11. However, BASIC-PLUS-2  has 
some  nice features:  dummy = ONECHR(1) \ GET #1,  RECORD  8192 
either  gets  a character or generates a  trappable  error,  so 
"real-time" screen handling is feasible.

I hereby submit SNAKE.B2S for possible publication in the  RSTS 
Newsletter.  It  is written in BASIC-Plus-2 as  implemented  in 
version  2.4. [Ed: The program in both .B2S and .TSK format  is 
available  in account [49,1] on the SIG bulletin board  system. 
It  is 7 pages long, so it hasn't been reprinted here - if  you 
cannot access the BBS for some reason and want a copy, drop  me 
a note and I'll see what can be done.]

NOTES:
     1. The Direct cursor addressing functions are specific  to 
     terminal  types  used  at our site  and  will  undoubtedly 
     require  modification at other sites for  terminals  other 
     than VT-102 & VT-220.
     2.  The existence or protection code of  file  GM:SNAKE.OK 
     determines whether the program runs.
     3.  To be fun, SNAKE should be run when you are  alone  on 
     the  system -- it uses all the cycles it can get.  Running 
     SNAKE at ZERO priority when someone else might want to  do 
     something on the system is NOT advised.

                         Sincerely,
                         Larry Ingersoll
                         System Programmer
     
                         Tri-State University
                         Angola, Indiana 46703-0307

===============================================================

                   Hardware Update Bulletin

     At  the  Symposium  I received a number  of  requests  for 
information  about  the  current  revision  level  of   various 
hardware devices found on RSTS systems. Here is a "dump" of  my 
information  so far.  If you have information on a  device  not 
listed, please send it in so I can publish it.

     Please  note  - only experienced users should  attempt  to 
determine  board revisions by opening the CPU  cabinet.  System 
damage  caused  by  users will generally not be  covered  by  a 
service   contract.  When  in  doubt,  contact   your   service 
representative to check these revision levels.

     J-11 based systems (11/53, 73, 83, 84, and assorted third-
party products) - The minimum revision of the J-11 to work with 
a  floating point chip is Rev. 8. The J-11 is the  large  white 
chip with two gold squares on it, found on the CPU board. There 
is  a  part number stamped on the white space between  the  two 
gold  squares. The part number is in the form xx-xxxxx-xx.  The 
last two digits are the revision level.  The companion revision 
to  this for the floating point chip is 5. The  floating  point 
chip is a smaller brownish-purple chip on the same board as the 
J-11 chip. It also uses the same part-numbering system, but the 
last  two  digits should be 05 or higher.  Rumor  has  it  that 
11/84 systems need a Rev. 9 or higher J11 for proper operation. 
A  quick  test to see if you have a floating point chip  is  to 
boot  your  system  and type HA LI at  the  Start  timesharing? 
question. If your system responds with the text "FPU with  FPA" 
you  have a floating point chip at the correct revision  level. 
If  you  only get the "FPU" part, your system does not  have  a 
floating point chip installed.

     11/44 systems - The latest revision of the CPU that I know 
of prints "(Console V3.40C)" when powered on. If you don't  get 
this  message, or if you have the "user hostile"  console  that 
prints "?01 SYN" whenever you make a typo, you should see about 
getting the updates installed.

     TU-80  tape  subsystem  -  Early  revisions  of  the  TU80 
controller  cannot read data blocks of less that 14 bytes,  nor 
can  they do a read reverse with an odd byte count.   Very  few 
users will ever experience either of these problems, but if you 
are  trying to read foreign tapes or are writing your own  tape 
handling  utilities, this can affect you.  The way to  tell  if 
this  revision  is installed in your system is to look  on  the 
tape  controller card in the CPU (handle code M7454). If it  is 
installed,  there  will be a ROM part number  278F3  at  either 
location  E95 or location 3A. If you need the upgrade, the  DEC 
part number for the kit is EQ-01349-01.

     LP-11  printer controller - There is a timing  problem  on 
some controller cards when used with LP25 or LP26 printers. The 
symptom  can be a '?Device hung or write locked'  message  even 
though  the  printer  is on-line and  ready.  Also,  other  odd 
problems can occur.  Field Service generally will approach  the 
problem  as  a "static problem", which it is not.  The  printer 
controller in the CPU (handle code M7258) should be revision  T 
or  higher. The quick way to check for this is to look  at  the 
card  (the  side with the parts on it) and see if there  are  2 
wires running from near the top right of the card to the bottom 
of the card.

     RQDX1  disk  controller  (found  in  older  Micro   PDP-11 
systems)  - There are a number of problems with early  RQDX1's. 
Symptoms can include odd system hangs, logging errors each time 
the  system is booted, etc.  To check revision levels, look  at 
the  controller card (handle code M8639) [Note - there are  two 
different  boards  with  this code - only  the  RQDX1  has  the 
problem - the RQDX1 can be identified by a board color that  is 
mustard-yellow. The RQDX2 board is dark brown]. Look at the two 
socketed  parts on the left side of the board. They  should  be 
labeled  172E5 and 173E5. If they are not, the upgrade  kit  is 
DEC part number EQ-01361-01. 

===============================================================

                   Software Update Bulletin

     Several  software  updates  have arrived  since  the  last 
issue.  DECmail-11 V3.1 and Basic-Plus-2 V2.5 both arrived  and 
installed with no difficulty.  If you have received an  update, 
please call the Bulletin Board system and post the  information 
so it can be distributed to others.

===============================================================

               Software Problem Report (SPR) Log

     Please send the newsletter editor copies of any SPR's (and 
Digital's   answer)  on  RSTS/E,  DECNET/E,  or  RSTS   layered 
products.  We will print any that are of general interest.  The 
reason for this is that many SPR's are answered with a patch or 
a notice of restriction, but due to space considerations,  they 
are  not  published  in the  Software  Dispatch.   Since  we're 
desperate  for material, this should be useful information  and 
we will print it.

     The Newsletter system will be expanded in the near  future 
to  allow bulletin-board style messages to be posted for  users 
to  exchange this information, which should make it  much  more 
timely.

===============================================================

RSTS/E Monitor Internals V9.4 Update - Session Notes

     The  following slides are from Mike  Mayfield's  excellent 
session on "RSTS/E Monitor Internals - V9.4 Update" at the Fall 
Symposium.   These  slides  may  be  used  to  supplement   the 
information  in  the DEC RSTS/E Internals and  Data  Structures 
manual  (DEC order no. AA-CL35B-TC), which is now somewhat  out 
of  date.  The change bars in the right margin  indicate  areas 
changed from those described in the DEC manual.







                     JOB DATA BLOCK (JDB)
          +----------------------------------------+   
          |             POINTER TO IOB             | 0  JDIOB
          |----------------------------------------|
          |         PRIMARY JOB STATUS FLAGS       | 2  JDFLG
          |----------------------------------------|
JDPOST  5 |     POSTING MASK   |  IOSTS FOR JOB    | 4  JDIOST
          |----------------------------------------|
          |    POINTER TO JOB'S WORK BLOCK (WRK)   | 6  JDWORK
          |----------------------------------------|
          | POINTER TO JOB'S JBPPN TABLE ENTRY -30 | 10 JDJDB2 |
          |----------------------------------------|
JDJBNO 13 |   JOB NUMBER *2    | 2ND JOB STAT FLGS | 12 JDFLG2
          |----------------------------------------|
          |     POINTER TO JOB'S RTS DESCRIPTOR    | 14 JDRTS
          |----------------------------------------|
          |           RESIDENCY QUANTUM            | 16 JDRESQ
          |----------------------------------------|
          |                                        | 20 JDMCTL
          |                                        |
          |        MEMORY CONTROL SUB-BLOCK        | 22
          |                                        |
          |                                        | 24
          |                    +-------------------|
          |                    |     JOB SIZE      | 26 JDSIZE
          |                    +-------------------|
          |                                        | 30
          |----------------------------------------|
          |       L3Q BIT TO SET ON RESIDENCY      | 32 JDRESB |
          |----------------------------------------|
          |          THIRD JOB STATUS FLAGS        | 34 JDFLG3 |
          |----------------------------------------|
          |         FOURTH JOB STATUS FLAGS        | 36 JDFLG4 |
          +----------------------------------------+
                   
                PRIMARY JOB STATUS FLAGS (JDFLG)

<0>  JFPOST    UPDATE FIRQB OR XRB USING JDPOST
<1>  JFIOKY    UPDATE KEYWORD AND POST JDIOST TO FIRQB
<2>  JFCEMT    LET COMPLEX EMT HANDLING CATCH JOB POSTING
<3>  JFCC      ^C HAS BEEN TYPED
<4>  JF2CC     AT LEAST 2 ^C'S HAVE BEEN TYPED
<5>  JFFPT     TAKE FLOATING POINT EXCEPTION TRAP (P.FPP)
<6>  JFGO      IGNORE JFREDO
<7>  JFREDO    JOB IS STALLED WAITING ON I/O COMPLETION
<8>  JFSYST    JOB MAY USE TEMPORARY PRIVILEGES
<9>  JFFPP     SAVE FPU HARDWARE REGISTERS WITH JOB CONTEXT
<10> JFPRIV    JOB IS LOGGED INTO A PRIVILEGED ACCOUNT
<11> JFSYS     JOB IS CURRENTLY USING TEMPORARY PRIVILEGES
<12> JFRSTD    JOB HAS AN AST COMPLETION RTNE DELIVERY PENDING |
<13> JFBIG     JOB CAN EXCEED ITS PRIVATE MEMORY SIZE MAXIMUM
<14> JFLOCK    JOB IS LOCKED IN MEMORY
<15> JFSPCL    CHECK JDFLG2 FOR SPECIAL PROCESSING REQUIREMENTS
                   JOB STATUS FLAGS (JDFLG2)

<0>  JFCTXT    THE JOB'S CONTEXT SHOULD BE SAVED
<1>  JFPRTY    A MEMORY PARITY ERROR OCCURRED
<2>  JFRUN     A NEW PROGRAM RUN EREQUEST OCCURRED
<3>  JFSWPR    A RTS OR RESIDENT LIBRARY LOAD FAILURE OCCURRED
<4>  JFSTAK    A STACK OVERFLOW OCCURRED
<5>  JFSWPE    A SWAP ERROR OCCURRED
<6>  JFDINI    THE JOB'S D-SPACE AREA NEEDS TO BE INITIALIZED  |
<7>  JFKILL    THE JOB SHOULD BE KILLED

                   JOB STATUS FLAGS (JDFLG3)

<0>  J2FSPW    JOB IS BEING SPAWNED (LOGGED IN)                |
<1>  J2BAT     THIS IS A BATCH JOB (PBS)                       |
<2>  J2NET     THIS IS A NETWORK JOB (NPKDVR)                  |
<3>  J2KIL2    LOGOUT COMPLETE FOR JOB KILL                    |
<4>  J2IHDR    JOB'S HEADER NEEDS INITIALIZATION               |
<5>  J2CAPT    RUNNING IN A CAPTIVE ACCOUNT                    |
<6>  J2PRVP    PRIVILEGED PROGRAM RUNNING (JFSYS IS/WAS SET)   |
<7>  J2ICF     EXECUTING FROM AN INDIRECT COMMAND FILE         |
<8>  J2VFY     VERIFY MODE IS IN EFFECT IN DCL                 |
<9>  J2NDAT    NO-DATA MODE IS IN EFFECT IN DCL                |
<10> J2SYSV    SYSTEM PASSWORD HAS BEEN VALIDATED              |
<11> J2ASTA    AST POSTING ROUTINE IS CURRENTLY ACTIVE         |
<12> J2ASTD    AST POSTING IS DISABLED                         |
<13> J2NCHO    NO-ECHO MODE IS IN EFFECT IN DCL                |
<14> J2NERR    NO-ERROR MODE IS IN EFFECT IN DCL               |
<15> J2LOG     DCL LOG FILE IS ENABLED                         |

                   JOB STATUS FLAGS (JDFLG4)

<0>    JDFSTM  USE MAPPING DESCRIPTOR ENTRIES                  |
<1:4>          UNUSED
<5:15> J2SLAP  POINTER TO JOB'S SLA LIBRARY (BITS 0:4 ARE 0)   |

                    JOB CONTROL REGION (JCR)
          +----------------------------------------+   
          |   SAVED PC FOR COMPLEX EMT HANDLING    | 0  JCCEPC
          |----------------------------------------|
          |   SAVED R1 FOR COMPLEX EMT HANDLING    | 2  JCCER1
          |----------------------------------------|
          |  SAVED APRS FOR COMPLEX EMT HANDLING   | 4  JCCEAP
          |----------------------------------------|
          |             CPU TIME (LSB)             | 6  JCCPU
          |----------------------------------------|
          |              CONNECT TIME              | 10 JCCCON
          |----------------------------------------|
          |          KILO-CORE TICKS (LSB)         | 12 JCKCT
          |----------------------------------------|
          |              DEVICE TIME               | 14 JCDEV
          |----------------------------------------|
JCCPUM 17 |   CPU TIME (MSB)   |      KCT (MSB)    | 16 JCKCTM
          |----------------------------------------|
          |                                        | 20 JCNAME
          |         PROGRAM NAME (IN RAD50)        |
          |                                        | 22
          |----------------------------------------|
          |         POINTER TO DEFAULT RTS         | 24 JCDTRS
          |----------------------------------------|
          |                                        | 26 JCPRIV
          |                                        |
          |           CURRENT PRIVILEGES           | 30
          |                                        |
          |                                        | 32
          |----------------------------------------|
          |                                        | 34 JCSPRV
          |                                        |
          |            SAVED PRIVILEGES            | 36
          |                                        |
          |                                        | 40
          |----------------------------------------|
          |                                        | 42 JCAPRV
          |                                        |
          |          AUTHORIZED PRIVILEGES         | 44
          |                                        |
          |                                        | 46
          |----------------------------------------|
          |                                        | 50 JCALPV
          |                                        |
          | ALTERNATE PRIVILEGES FOR PRIV. CHECKS  | 52
          |                                        |
          |                                        | 54
          |----------------------------------------|
          |   ALTERNATE PPN FOR PRIVILEGE CHECKS   | 56 JCALPP
          |----------------------------------------|
          |      RESERVED      |   NEW JOB SIZE    | 60 JCSIZN
          |--------------------+-------------------|
JCBRST 63 |      RUN BURST     |     PRIORITY      | 62 JCPRI 
          |--------------------+-------------------|
JCSWAP 65 |  SWAP SLOT NUMBER  |  MAXIMUM MEMORY   | 64 JCSIZM
          |----------------------------------------|
          |      POINTER TO RECEIVER ID (RIB)      | 66 JCMPTR
          |----------------------------------------|
JCDSIZ 71 | D-SPACE ALLOCATION | I-SPACE ALLOCATION| 70 JCISIZ
          |----------------------------------------|
          |     DCN OF FIRST UFD BLOCK ON SY0:     | 72 JCUFDR
          |----------------------------------------|
          |   POINTER TO WINDOW DESCRIPTOR (WDB)   | 74 JCWPTR
          |----------------------------------------|
JCEXST 77 |     EXIT STATUS    |    HEADER SIZE    | 76 JCHDRS
          |----------------------------------------|
          |                                        | 100 JCPFB
          |                                        | 
          : POINTERS TO WINDOW CNTRL BLOCKS (WCBS) :
          :      FOR 16 PERMANENT DCL FILES        :
          |                                        | 136
          |----------------------------------------|
          |   POINTER TO FIRST PENDING AST BLOCK   | 140 JCASTQ
          |----------------------------------------|
          |   POINTER TO LAST PENDING AST BLOCK    | 142 JCASTT
          |----------------------------------------|
          | POINTER TO AST BLK FOR SIMULATED ASYNC | 144 JCASTS
          |----------------------------------------|
          |                SLEEP TIME              | 146 JCCLOK
          |----------------------------------------|
          |             DCL CONTEXT WORD           | 150 JCDCLW
          |----------------------------------------|
          | POINTER TO SPAWN PROCESS CONTROL AREA  | 152 JCSPWN
          |----------------------------------------|
          |  POINTER TO EMT LOGGER MESSAGE PACKET  | 154 JCEMLP
          |----------------------------------------|
          |               ^T CPU TIME              |    JCCPUI
          |----------------------------------------|
          | MAXIMUM ADDRESS (-1) OF JOB'S CUR. RTS |    JCMHGH |
          |----------------------------------------|
          |  MAXIMUM ADDRESS OF JOB'S I-SPACE SEG  |    JCMLOW |
          |----------------------------------------|
          |  MAXIMUM ADDRESS OF JOB'S D-SPACE SEG  |    JCMDLO |
          |----------------------------------------|
          |          MEMORY MAPPING FLAGS          |    JCMFLG |
          |----------------------------------------|
          |                                        |    JCMDE+ |
          : JOB'S USER I-SPACE MAPPING DESC ENTRIES:    MOUSRI |
          |                                        |
          |----------------------------------------|
          |                                        |    JCMDE+ |
          : JOB'S USER D-SPACE MAPPING DESC ENTRIES:    MOUSRD |
          |                                        |
          |----------------------------------------|
          |                                        |    JCMDE+ |
          : JOB'S SUPR I-SPACE MAPPING DESC ENTRIES:    MOSUPI |
          |                                        |
          +----------------------------------------+

                 MAPPING DESCRIPTOR ENTRY (MDE)
          +----------------------------------------+   
          |   POINTER TO BASE ADDRESS FOR SEGMENT  | 0  MDADDR
          |----------------------------------------|
          |  OFFSET FROM BASE TO BEGINNING OF SEG  | 2  MDOFF
          |----------------------------------------|
          |   PAGE DESCRIPTOR VALUE FOR THIS SEG   | 4 MDDESC
          +----------------------------------------+

                    QUOTA BLOCK (QTB) BUFFER
                     (POINTED TO BY DSKQPT)
          +----------------------------------------+   
          |                                        | 0
          |                                        |
          |          LARGE BUFFER HEADER           | 4
          |                                        |
          |                                        | 6
          |----------------------------------------|
          |        POINTER TO NEXT QTB BUFFER      | 10
          |----------------------------------------|
          |                                        | 12
          :                 QTB #1                 :
          |                                        | 32
          |----------------------------------------|
          |                                        | 34
          :                 QTB #2                 :
          |                                        | 54
          |----------------------------------------|
          |                                        | 56
          :                 QTB #3                 :
          |                                        | 76
          +----------------------------------------+

                    QUOTA TABLE BLOCK (QTB)
          +----------------------------------------+   
          |                   PPN                  | 0  QTBPPN
          |----------------------------------------|
QTBDJB  3 | DETACHED JOB QUOTA |       FLAGS       | 2  QTBFLG
          |----------------------------------------|
          |          LOGGED OUT QUOTA (LSB)        | 4  QTBLOL
          |----------------------------------------|
          |          LOGGED IN QUOTA (LSB)         | 6  QTBLIL
          |----------------------------------------|
QTBLOM 11 | LOGGED OUT Q (MSB) | LOGGED IN Q (MSB) | 10 QTBLIM
          |--------------------+-------------------|
QTBCRM 13 | CURR BLK CNT (MSB) | RESERVE QTA (MSB) | 12 QTBRSM
          |----------------------------------------|
          |           RESERVE QUOTA (LSB)          | 14 QTBRSL
          |----------------------------------------|
          |        CURRENT BLOCK COUNT (LSB)       | 16 QTBCRL
          +----------------------------------------+

                 MEMORY CONTROL SUB-BLOCK (MCB)
          +----------------------------------------+   
          |    POINTER TO PREVIOUS MCB (@M.PNXT)   | 0  M.PPRV
          |----------------------------------------|
          |          POINTER TO NEXT MCB           | 2  M.PNXT 
          |----------------------------------------|
          |    SIZE OF CURRENT ITEM PLUS UNUSED    | 4  M.TSIZ
          |----------------------------------------|
M.CTRL  7 |        STATUS      | CURRENT ITEM SIZE | 6  M.SIZE
          |----------------------------------------|
          |    BASE ADDRESS OF THIS MEMORY ITEM    | 10 M.PHYA
          +----------------------------------------+

                 MEMORY CONTROL STATUS (M.CTRL)

<8>       REQ       RESIDENCY REQUESTED BY JOB SWAPPING OUT
<9>       OUT       SWAP DIRECTION IS "OUT"
<10>      IN        SWAP DIRECTION IS "IN"
<11>      SWP       A SWAP IS DESIRED OUT/IN SPECIFY DIRECTION |
<12:15>   MC.LCK    NUMBER OF OUTSTANDING I/O'S (LOCKED)       |

                     FIXED MEMORY LOCATIONS

1000      DATE      CURRENT DATE
1002      TIME      CURRENT TIME
1004      TIMSEC    SECONDS UNTIL NEXT MINUTE
1005      TIMCLK    CLOCK TICKS UNTIL NEXT SECOND
1006      JOB       JOB NUMBER (TIMES 2) OF CURRENT JOB
1007      NEXT      JOB NUMBER (TIMES 2) OF NEXT JOB TO RUN
1010      JOBDA     POINTER TO JOB'S DESCRIPTOR BLOCK (JDB)
1012      JDBF      POINTER TO JOB'S PRIMARY FLAGS (JDFLG)
1014      IOSTS     POINTER TO JOB'S I/O STATUS (JDIOST)
1016      JOBWRK    POINTER TO JOB'S WORK BLOCK (WRK)
1020      JOBJD2    POINTER TO JOB'S JBPPN ENTRY AT OFFSET -30 |
1022      JOBRTS    POINTER TO JOB'S RUN-TIME SYSTEM BLOCK (RTS)
1024      CPUTIM    POINTER TO JOB'S CPU TIME BUCKET (JBTICK)  |
1026      JOBWDB    POINTER TO JOB'S WINDOW DESCRIPTOR (WDB)
1030      JOBJCR    POINTER TO JOB'S JOB CONTROL REGION (JCR)  |
1032      JOBJC6    MMU ADDRESS TO MAP JOB'S JCR ENTRY         |
1034      JOBF3     POINTER TO JOB'S THIRD FLAG WORD (JDFLG3)  |

===============================================================

                       CUSP of the Month

     Every  month,  we'll  pick a CUSP  (Commonly  Used  System 
Program)  and  show you new things to do with it. This  may  be 
either  in the form of patches, or simply a new way to use  it.  
When we provide modifications to the source, we will only  show 
the lines which need to be changed.  If you decide you want the 
patch,  edit a COPY of the program (NOT the  original).  Please 
remember  that  Digital  can't  be  responsible  for   modified 
programs.

     This  month's  victim is DISPLY.BAS.  DISPLY  is  a  handy 
program  which shows some of SYSTAT's information on a  screen, 
updating  the information at regular intervals.  DISPLY  hasn't 
received much attention from RSTS Development in recent  years, 
though.  It still outputs in VT52 mode, for example.  This  can 
become quite annoying, because it leaves a VT100-type  terminal 
in  VT52  mode  when it is done.   Therefore,  I  modified  the 
program  to  output in VT100 mode.  Of course, this  means  you 
can't  run  it  on  a VT52 anymore,  so  you  should  keep  the 
unmodified  original  around, too.  The first  set  of  changes 
below,   which  are  optional,  modify  some  of  the   display 
parameters for neater formatting or minor enhancements. Each of 
the  changes  may  be  applied individually,  or  all  of  them 
applied,  at your discretion.  The second set of changes  below 
shows  the necessary modifications for VT100 mode output.   All 
of the changes must be applied for the alterations to  function 
properly.

     Having moved the program to VT100 mode, I thought "why  not 
use 132-column mode to display more information?"  The third set 
of  changes below shows the (extensive) modifications  for  wide 
terminal  output.  if you have a "real" VT100, you may need  the 
Advanced Video Option to display 24 lines of 132 columns.  Newer 
DEC  terminals  (VT102,  VT2xx, VT3xx) have AVO  as  a  standard 
feature.   Once  the  changes are made, the  program  will  only 
display  in  132-column mode, so you should  keep  an  80-column 
version  around, too.  The changes also set the  maximum  screen 
height to 66 lines, so if you have a full-page display, you  can 
see everything on one screen.  Again, all of the changes must be 
applied for the modification to work properly.  A sample  screen 
is shown below the third set of changes.

     Please bear in mind that as more information is  displayed 
on  the  screen, the CPU usage of the  program  will  increase. 
There are two ways to deal with this, however. The first is  to 
change to a longer re-display interval. This way you can 'tune' 
the  program to whatever level of CPU usage you can allow.  The 
second  is a matter of adjusting to the additional  information 
presented - you will no longer have to sign on and do a  SYSTAT 
to see more detailed information.

     Editor's  note - I had hoped to provide these  changes  in 
CPATCH  format  because of the huge  number  of  modifications. 
However,  CPATCH command file format eludes me at  the  moment. 
Therefore, the instructions are still given 'the old way'. Some 
lines  have  been truncated or wrapped to  fit  the  Newsletter 
margin settings. Any line ending with "..." is either a  "don't 
care" or a "copy identically from the old line".

     How to re-compile the program with BP2:

$ SWITCH BP2
SCALE 0
OLD DISPLY.BAS
COMPILE DISPLY.OBJ/OBJ/CHA/LIN/NODEB/WOR/NOCRO/NOLIS/FLAG:NODEC
$ SW DCL
$ TKB
DISPLY.TSK/FP=DISPLY.OBJ,LB:BP2OTS.OLB/LB
/
UNITS=13
ASG=SY:5:6:7:8:9:10:11:12
EXTTSK=512
LIBR=CSPLIB:RO
//
$ DELETE/NOLOG DISPLY.OBJ

Section 1 - Optional cosmetic changes

1A - Change default order of items from bsy-dsk-rts-msg-buf-lib 
to buf-bsy-dsk-rts-msg-lib.

Modify line 1040 as indicated:
  Old:  \ W%(T%)=T% FOR T%=1% TO 9% &
  New:  \ W%(1%)=5% &
        \ W%(2%)=1% &
        \ W%(3%)=2% &
        \ W%(4%)=3% &
        \ W%(5%)=4% &
        \ W%(6%)=6% &
        \ W%(T%)=T% FOR T%=7% TO 9% &

1B - Display total CPU time instead of increment by default.

Modify line 1040 as indicated:
  Old:  \ O%=2%+16384% &
  New:  \ O%=0%+16384% &

1C - Fix spacing in CPU %'s when monitor statistics enabled.

Modify line 1510 as indicated:
  Old:  \ PRINT #1%, "   "; &
        FNU$(H(0%,1%)-H(1%,1%)-H(2%,1%)-H(3%,1%)-H(4%,1%)); &
        "User,  "; &
        FNU$(H(1%,1%));"I/O,   "; &
        FNU$(H(3%,1%));"Exec,"; &
        "  ";FNU$(H(4%,1%));"Idle,  "; &
        FNU$(H(2%,1%));"Lost";CHR$(13%); &
  New:  \ PRINT #1%, "   "; &
        FNU$(H(0%,1%)-H(1%,1%)-H(2%,1%)-H(3%,1%)-H(4%,1%)); &
        " User, "; &
        FNU$(H(1%,1%));" I/O, "; &
        FNU$(H(3%,1%));" Exec, "; &
        FNU$(H(4%,1%));" Idle, "; &
        FNU$(H(2%,1%));" Lost";CHR$(13%); &

Modify line 15180 as indicated:
  Old:  \ T$="   "+NUM$(100.*T/H(0%,1%)+.05) &
        \ FNU$=MID(T$,INSTR(1%,T$,".")-3%,5%)+"%" &
  New:  \ T$=NUM$(100.*T/H(0%,1%)+.05) &
        \ FNU$=MID(T$,1%,INSTR(1%,T$,".")+1%)+"%" &

1D  -  Change time display from hours:minutes:seconds  to  days 
hours:minutes:seconds.

Modify line 15000 as indicated:
  Old:  \       FNT$=FNT0$(3600.)+FNT0$(60.)+FNT0$(1.)
  New:  \ T$="" &
        \ Z9%=T/86400. &
        \ T$=NUM1$(Z9%)+" " IF Z9%>=1% &
        \ T=T-(Z9%*86400.) &
        ! DAYS &
        \ Z9%=T/3600. &
        \ T$=T$+RIGHT(NUM1$(Z9%+100%),2%)+":" &
        \ T=T-(Z9%*3600.) &
        ! HOURS &
        \ Z9%=T/60. &
        \ T$=T$+RIGHT(NUM1$(Z9%+100%),2%)+":" &
        \ T=T-(Z9%*60.) &
        \ T$=T$+RIGHT(NUM1$(INT(T+100%)),2%) &
        ! SECONDS (TEMP) &
        \ FNT$=T$ &

1E - Display cpu usage as mmm:ss.t instead of mm:ss.t

Modify line 15080 as indicated:
  Old:  \ IF T<0. OR T>=36000. THEN &
                FNT1$="??:??.?" &
  New:  \ IF T<0. OR T>=600000. THEN &
                FNT1$="???:??.?" &

1F - Prompt with program name as part of 'Continue' message.

Modify line 19140 as indicated:
  Old:  \ INPUT "Continue";T$ &
  New:  \ INPUT "Continue (DISPLY)";T$ &

Section 2 - Change to ANSI mode output

Modify line 19110 as indicated:
  Old:  V0$+"[?2l"+V0$+"\"+V0$+"G"+V0$+"H"+V0$+"J"+ &
  New:  V0$+"<"+V0$+"[1;1H"+V0$+"[2J"+ &

Modify line 20020 as indicated:
  Old:  \ V4$=V4$+V0$+"A" FOR T%=0% TO ROWS%  !default to TAB &
        \ V6$ = V0$ + "Y"                     !default to DCA &
        \ V2$=V2$+V0$+"C" FOR T%=0% TO COL% &
  New:  \ V4$=V4$+V0$+"[1A" FOR T%=0% TO ROWS%!default to TAB &
        \ V6$ = V0$ + "["                     !default to DCA &
        \ V2$=V2$+V0$+"[1C" FOR T%=0% TO COL% &

Modify line 20100 as indicated:
  Old:  \ V$=V0$+"[?2l"+V0$+"\"+V0$+"G"+V0$+"H"+V0$+"J" &
  New:  \ V$=V0$+"<"+V0$+"[1;1H"+V0$+"[2J" &

Modify line 200200 as indicated:
  Old:  20200   V$=V0$+"K" IF LEN(V$)=0% AND V1%<=COL% &
  New:  20200   V$=V0$+"[0K" IF LEN(V$)=0% AND V1%<=COL% &

Modify line 20400 as indicated:
  Old:  20400   V$=V0$+"H" &
  New:  20400   V$=V0$+"[1;1H" &

Modify line 20520 as indicated:
  Old:  V$=V$+V6$+CHR$(32%+T0%)+CHR$(32%+T%) &
  New:  V$=V$+V6$+NUM1$(T0%+1%)+";"+NUM1$(T%+1%)+"H" &

Modify line 20550 as indicated:
  Old:  V$=V$+LEFT(V2$,T%+T%-V1%-V1%) &
  New:  V$=V$+LEFT(V2$,(T%-V1%)*4%) &

Modify line 20580 as indicated:
  Old:  V$=V$+LEFT(V4$,V2%+V2%-T0%-T0%) &
  New:  V$=V$+LEFT(V4$,(V2%-T0%)*4%) &

Modify line 20700 as indicated:
  Old:  20700   V$=V0$+"J" &
  New:  20700   V$=V0$+"[0J" &

Section 3 - Change to 132-column output

First, perform all of the Section 2 modifications.

Modify line 910 as indicated:
  Old:  910     DIM B%(19,2), D%(19,8), M%(19,4), R%(39,6), &
                C%(4), H(4,1), &
                H0%(30), H1%(30), H2%(30%), &
                J%(20,8), R(63), I(63), &
                R0%(39,1), &
                L0%(10), T%(1), W%(9) &
  New:  910     DIM B%(19,4), D%(19,11), M%(19,4), R%(39,8), &
                C%(4), H(4,1), &
                H0%(30), H1%(30), H2%(30%), &
                J%(20,12), R(63), I(63), &
                R0%(39,1), &
                L0%(10), T%(1), W%(9), AN$(20) &

Modify line 910 as indicated (at end of comments):
  Old:  &
  New:  ! &
        ! AN$() - USED TO STORE THE ACCOUNT NAMES OF ACTIVE &
        !       JOBS DISPLAYED ON THE SCREEN. &
        &

Modify line 1120 as indicated:
  Old:  \ T%=FNV%(10%,1%,T$) &
  New:  \ T%=FNV%(15%,1%,T$) &

Modify line 1210 as indicated:
  Old:  T%=FNV%(0%,W%,SPACE$(45%)) &
  New:  T%=FNV%(0%,W%,SPACE$(72%)) &

Modify line 1400 as indicated:
  Old:  \               T%=FNV%(45%,Z0%-1%,N$) IF Z0%<>2%
  New:  \               T%=FNV%(72%,Z0%-1%,N$) IF Z0%<>2%

Modify line 1440 as indicated:
  Old:  1440    T%=FNV%(45%,Z%,N$) FOR Z%=L0%(0%) TO Z0%-1% &
                STEP -1% &
  New:  1440    T%=FNV%(72%,Z%,N$) FOR Z%=L0%(0%) TO Z0%-1% &
                STEP -1% &

Modify line 1450 as indicated:
  Old:  TIME$(T%(1%))+"  Up:") &
  New:  TIME$(T%(1%))+"    Last restarted on "+ &
        DATE$(PEEK(36%))+B$+TIME$(PEEK(38%))+"    Up:") &

Modify line 1480 as indicated:
  Old:  \ T%=FNV%(63%+16384%,0%,FNT$(((PEEK(512%)-PEEK(...
  New:  \ T%=FNV%(105%+16384%,0%,FNT$(((PEEK(512%)-PEEK(...

Modify line 1490 as indicated:
  Old:  \               T%=FNV%(10%,1%,T$) &
  New:  \               T%=FNV%(15%,1%,T$) &

Modify line 2070 as indicated:
  Old:  !       3       P (PRIORITY INSTEAD OF +-) &
        !       4       L (LOGICAL DEVICE NAME) &
  New:: !       3       UNUSED (WAS P[RIORITY]) &
        !       4       UNUSED (WAS L[OGNAM]) &
  Old:  !       11      N   (RTS INSTEAD OF 'WHAT') &
  New:  !       11      UNUSED (WAS N [RTS INSTEAD OF 'WHAT'])&

Modify line 2160 as indicated:
  Old:  !       W,L,K,P,O OR I &
  New:  !       W,K,O OR I &
  Old:  !               BIT 3   P &
        !               BIT 4   L &
        !               BIT 14  I &
        !               K,N AND O REMAIN UNTOUCHED. &
  New:  !               BIT 14  I &
        !               K AND O REMAIN UNTOUCHED. &
  Old:  !               BIT 11  N &
        !               OTHERS REMAIN AS THEY ARE. &
  New:  !               OTHERS REMAIN AS THEY ARE. &

Modify line 9400 as indicated:
  Old:  9400    DATA    W,1,0,          P,8,0, &
                        L,16,0,         O,0,32, &
                        K,0,64,         I,16384,0, &
                        N,0,2048,       *E*,0,0 &
  New:  9400    DATA    W,1,0,          O,0,32, &
                        K,0,64,         I,16384,0, &
                        *E*,0,0 &

Modify  line 10000 as indicated (enter the new line all on  the 
same line):
  Old:  "Job  Who  Where  What Size State Run-time Pr ") &
  New:  "Job  Who   Name           Where What Size State Run-
        time Pri/RB RTS") &

Delete the entire text of line 10055.

Modify line 10090 as indicated:
  Old:  ! IF THE PPN HAS CHANGED THEN &
  New:  \       AN$(L%)=FNACCOUNT.NAME$(PN%)+B$+B$ &
        \       T%=FNV3%(11%,AN$(L%)) &
        ! IF THE PPN HAS CHANGED THEN &

Add the following comments to the end of line 10090:
  New:  !       STORE NEW USER NAME DATA IN AN$ &
        !       AND DISPLAY IT &

Modify line 10110 as indicated:
  Old:  \ T%=FNV3%(11%,FNJ2$(T$,6%)) &
  New:  \ T%=FNV3%(26%,FNJ2$(T$,6%)) &

Modify line 10120 as indicated:
  Old:  \ NAM%=27% IF (O% AND 2048%) &
        \ J1%=SWAP%(CVT$%(MID(UU.SYS0$,NAM%,2%))) &
  New:  \ J1%=SWAP%(CVT$%(MID(UU.SYS0$,NAM%,2%))) &
  Old:  \       T%=FNV3%(17%,RAD$(C%)) &
        ! PREPARE TO CHECK PROGRAM NAME - REPLACE WITH RTS...
        ! APPROPRIATE. &
  New:  \       T%=FNV3%(32%,RAD$(C%)) &
        ! PREPARE TO CHECK PROGRAM NAME &

Modify line 10130 as indicated:
  Old:  \       T%=FNV3%(20%,RAD$(C%)) &
  New:  \       T%=FNV3%(35%,RAD$(C%)) &

Modify line 10140 as indicated:
  Old:  \       T%=FNV3%(23%,FNJ$(C%,3%)) &
  New:  \       T%=FNV3%(38%,FNJ$(C%,3%)) &

Modify line 10220 as indicated:
  Old:  \ T%=FNV3%(26%,B$+MID(H$,SWAP%(C%) AND 255%,2%)+T$) &
  New:  \ T%=FNV3%(41%,B$+MID(H$,SWAP%(C%) AND 255%,2%)+T$) &

Modify line 10270 as indicated:
  Old:  \       T%=FNV3%(33%,FNJ0$(T$,8%)) &
  New:  \       T%=FNV3%(48%,FNJ0$(T$,8%)) &

Modify line 10280 as indicated:
  Old:  \ C%=C% OR 256% IF (O% AND 8%) &
        \ IF FNC%(J%(L%,8%),C%)=0% THEN &
                GOTO 10300 &
        ELSE    J%(L%,8%)=C% &
        \       T%=C% AND 255% &
        \       T%=T%-256% IF T%>127% &
        \       T%=(T% AND (NOT 7%))/8% &
        \       IF (C% AND 256%) THEN &
                        T%=FNV3%(41%,FNJ$(T%,3%)+B$) &
        \               GOTO 10300 &
        ! GET THE PRIORITY FROM JDPRI. &
        ! IF +P HAS BEEN SPECIFIED THEN &
        !       ADJUST PRIORITY TO INDICATE THIS &
        ! IF THE PRIORITY HASN'T BEEN CHANGED THEN &
        !       GO ON TO NEXT JOB &
        ! ELSE  GET THE EXACT PRIORITY &
        !       MAKE ADJUSTMENT FOR NEGATIVE PRIORITY &
        !       FORCE TO MULTIPLE OF 8 &
        !       IF +P SPECIFIED THEN &
        !               PRINT THE EXACT PRIORITY (+n,0,-n) &
        !               GO TO THE NEXT JOB &
  New:  \ IF FNC%(J%(L%,8%),C%)=0% THEN &
                GOTO 10285 &
        ELSE    J%(L%,8%)=C% &
        \       T$=NUM1$(C%*256%/256%)+"/" &
        \       T%=FNV3%(56%,FNJ0$(T$,5%)) &
        ! GET THE PRIORITY FROM JDPRI. &
        ! IF THE PRIORITY HASN'T BEEN CHANGED THEN &
        !       GO ON TO RUNBURST &

Delete the entire text of line 10290.

Add the following new lines:
10285   C%=ASCII(MID(UU.SYS1$,18%,1%)) &
        \ IF FNC%(J%(L%,9%),C%)=0% THEN &
                GOTO 10295 &
        ELSE    J%(L%,9%)=C% &
        \       T$=NUM1$(C%)+B$ &
        \       T%=FNV3%(61%,T$) &
        ! GET THE RUNBURST FROM JDBRST. &
        ! IF IT HASN'T CHANGED THEN GO ON &
        !       TO NEXT JOB &

10295   NAM%=27% &
        \ J1%=SWAP%(CVT$%(MID(UU.SYS0$,NAM%,2%))) &
        \ IF FNC%(J%(L%,10%),J1%) THEN &
                J%(L%,10%)=C% &
        \       T%=FNV3%(64%,RAD$(C%)) &
        ! PREPARE TO CHECK RTS NAME &
        ! IF THE 1ST 3 CHARACTERS OF THE NAME HAVE CHANGED &
        ! THEN &
        !       SAVE THE NEW CHARACTERS &
        !       PRINT THEM &

10296   NAM%=NAM%+2% &
        \ J1%=SWAP%(CVT$%(MID(UU.SYS0$,NAM%,2%))) &
        \ IF FNC%(J%(L%,11%),J1%) THEN &
                J%(L%,11%)=C% &
        \       T%=FNV3%(67%,RAD$(C%)) &
        ! DO THE SAME WITH THE 2ND 3 CHARACTERS &

Modify line 10310 as indicated:
  Old:  NUM1$(STK%)+"K)",45%)) &
        \ J%(T0%,T%)=-1% FOR T%=0% TO 8% FOR T0%=0% TO 20% &
  New:  NUM1$(STK%)+"K) ['*'=RTS, '-'=LIB, ' '=JOB]",72%)) &
        \ J%(T0%,T%)=-1% FOR T%=0% TO 12% FOR T0%=0% TO 20% &

Modify line 10380 as indicated:
  Old:  \               IF J0%<=7% THEN 10410 &
  New:  \               IF J0%<=11% THEN 10410 &

Modify line 10415 as indicated:
  Old:  \       WHILE J0%<=7% &
  New:  \       WHILE J0%<=11% &

Modify line 10440 as indicated:
  Old:  10440   IF J%(L%,8%)<>STK%+L%*8% THEN &
                        J%(L%,8%),T%=STK%+L%*8% &
  New:  10440   IF J%(L%,12%)<>STK%+L%*12% THEN &
                        J%(L%,12%),T%=STK%+L%*12% &

Modify line 10460 as indicated:
  Old:          \ IF L%*8%+J0%+STK%=KSZ% THEN &
                        T$="END" &
                ELSE    IF L%*8%+J0%+STK%>KSZ% THEN &
                        T$=" . " &
  New:          \ IF L%*12%+J0%+STK%=KSZ% THEN &
                        T$="END" &
                ELSE    IF L%*12%+J0%+STK%>KSZ% THEN &

Modify line 10500 as indicated:
  Old:  \       T%=FNV3%(44%,B$) IF J0%=7% &
  New:  \       T%=FNV3%(64%,"       ") IF J0%=11% &

Modify line 10520 as indicated:
  Old:  \ IF J0%<=7% THEN &
  New:  \ IF J0%<=11% THEN &

Modify line 13000 as indicated:
  Old:  T%=FNV8%("      Busy devices") &
  New:  T%=FNV8%("                    Busy devices") &

Modify line 13020 as indicated:
  Old:  \ T%=FNV1%(0%,N$) IF B%(L%,0%)<>-1% IF (L% AND 1%) &
        \ T%=FNV0%(16384%,0%,"      *** None ***") &
                IF L%=0% AND B%(0%,0%)<>-1% &
        \ B%(T%,0%)=-1% FOR T%=L% TO 19% &
        \ L%=1%+(L%+1%)/2% &
  New:  \ T%=FNV1%(0%,N$) IF B%(L%,0%)<>-1% IF (L% AND 3%) &
        \ T%=FNV0%(16384%,0%, &
          "                    *** None ***") &
                IF L%=0% AND B%(0%,0%)<>-1% &
        \ B%(T%,0%)=-1% FOR T%=L% TO 19% &
        \ L%=1%+(L%+3%)/4% &

Modify line 13050 as indicated:
  Old:  \       T%=FNV0%(16384%,0%,"Dev Job Why  Dev Job Why")&
  New:  \       T%=FNV0%(16384%,0%, &
                        "Dev Job Why   Dev Job Why   "+ &
                        "Dev Job Why   Dev Job Why") &

Modify line 13080 as indicated:
  Old:  \ T%=FNV1%(7%-(16384%*((L% AND 1%)<>0%)),B$+T$+B$) &
  New:  \ T%=FNV1%(7%-(16384%*((L% AND 3%)=3%)),B$+T$+B$+B$) &

Modify line 13110 as indicated:
  Old:  T%=FNV8%("      Disk Structure") &
  New:  T%=FNV8%("                   Disk structure") &

Modify line 13130 as indicated:
  Old:  \ SIXTH$="Comments" &
        \ SIXTH$="Name" IF (O% AND 16%) &
        \ T%=FNV0%(16384%,0%,"Dsk Open    Free Clu  Err "+ &
          SIXTH$) &
  New:  \ T%=FNV0%(16384%,0%, &
                "Dsk Open    Size      Free   Clu  Err Name"+ &
                "      Comments") &
  Old:  \ UNTERR%=H2%(23%) &
  New:  \ SATEND%=H2%(7%) &
        \ UNTERR%=H2%(23%) &

Add the following new line:
13145   IF FNC%(D%(L%,2%),PEEK(SATCTL%+FUN%)) OR &
                FNC%(D%(L%,3%),PEEK(SATCTM%+FUN%)) &
            THEN &
                PCS%=UNTCLU.ENTRY% &
        \       T9=FNDISKSIZE(PCS%,PEEK(SATEND%+FUN%), &
                PEEK(DEVCLU%+FUN%) AND 255%) &
        \       T%=FNV2%(8%,FNJ$(T9,8%)) &
        ! &
        !       COMPUTE THE DISK SIZE AND DISPLAY &

Modify line 13150 as indicated:
  Old:  \               T%=FNV2%(8%,FNJ$(T,8%)) &
  New:  \               T%=FNV2%(16%,FNJ$(T,8%)) &
        \               T8=INT((T/T9)*100%) IF T9>0. &
        \               T%=FNV2%(24%,FNJ$(T8,3%)+"%") IF T9>0.&
        ! &

Add the following comment at the end of line 13150:
  New:  !       CALCULATE THE FREE SPACE AS A PERCENTAGE AND &
        !       DISPLAY &

Modify line 13160 as indicated:
  Old:  \               T%=FNV2%(16%,FNJ$(D%(L%,4%),3%)) &
  New:  \               T%=FNV2%(28%,FNJ$(D%(L%,4%),4%)) &

Modify line 13170 as indicated:
  Old:  \       T%=FNV2%(19%,FNJ$(PEEK(UNTERR%+FUN%),6%)) &
  New:  \       T%=FNV2%(32%,FNJ$(PEEK(UNTERR%+FUN%),5%)) &

Add the following new line:
13175   IF (FNC%(D%(L%,9%),PEEK(DSKLOG.PTR%)) &
                OR FNC%(D%(L%,10%),PEEK(DSKLOG.PTR%+2%)) &
                OR FNC%(D%(L%,11%),PEEK(DSKLOG.PTR%+4%)))=0% &
            THEN &
                GOTO 13180 &
            ELSE &
                D%(L%,9%)=PEEK(DSKLOG.PTR%) &
        \       D%(L%,10%)=PEEK(DSKLOG.PTR%+2%) &
        \       D%(L%,11%)=PEEK(DSKLOG.PTR%+4%) &
        \       T$="*******" &
        \       T$=RAD$(D%(L%,9%)) &
                  +RAD$(D%(L%,10%)) &
                  +RAD$(D%(L%,11%)) UNLESS &
                  (UNTCNT.ENTRY% AND 4096%) &
        \       T%=FNV2%(37%,B$+T$) &
        !       IF NONE OF THE PARTS OF THE LOGICAL NAME HAS &
        !       CHANGED THEN &
        !               SKIP THIS ROUTINE &
        !          ELSE SAVE THE NEW PARTS &
        !               SET THE DEFAULT STRING TO "*" &
        !               RESET TO REAL NAME IF NOT OPENED &
        !               NON-FILE STRUCTURED &
        !               AND PRINT IT &

Modify line 13180 as indicated:
  Old:  13180           IF (O% AND 16%)=0% &
                          THEN &
                            IF FNC%(D%(L%,5%),SWAP%(...
  New:  13180           IF FNC%(D%(L%,5%),SWAP%(...
  Old:  !       IF LOGICAL NAMES NOT REQUESTED THEN &
        !           IF NONE OF THE BIT FLAGS IN THE...
  New:  !           IF NONE OF THE BIT FLAGS IN THE...

Delete the entire text of line 13190.

Modify line 13200 as indicated:
  Old:  13200           T%=FNV2%(16384%+25%,B$+T$) &
  New:  13200           T%=FNV2%(16384%+47%,B$+T$) &

Modify line 13250 as indicated:
  Old:  T%=FNV8%("     Run-time systems") &
  New:  T%=FNV8%("                  Run-time systems") &

Modify line 13370 as indicated:
  Old:  \ IF F% THEN &
                T%=FNV8%("    Message receivers") &
  New:  \ NSP%=0% &
        \ IF F% THEN &
                T%=FNV8%("      Message receivers") &

Modify line 13400 as indicated:
  Old:  ! IGNORE THIS ENTRY IF NULL ENTRY OR NO ROOM ...
  New:  \       T%=PEEK(J0%+8%) AND 255% &
        \       T$=LEFT(T$,3%) IF (T% AND 1%) &
        \       T$=FNN$(2%,T%/2%)+B$ UNLESS (T% AND 1%) &
        \       T%=FNV2%(6%,B$+B$+T$+ &
                    FNJ$((SWAP%(PEEK(J0%+10%)) AND 255%),3%)+ &
                    FNJ$((SWAP%(PEEK(J0%+8%)) AND 255%),4%)) &
        ! IGNORE THIS ENTRY IF NULL ENTRY OR NO ROOM ...

Delete the entire text of lines 13410 through 13440

Add the following new lines:
13420   IF FNC%(M%(L%,4%),PEEK(J0%+14%)) THEN &
                M%(L%,4%)=C% &
        \       T%=FNV2%(18%,FNJ$(SWAP%(C%) AND 255%,3%)+ &
                "/"+NUM1$(C% AND 255%)) &
        \       IF (C% AND 255%)<10% THEN &
                        T%=FNV2%(23%,B$) &
        ! IF THE # OF MSG'S QUEUED OR THE DECLARED MAX HAS &
        ! CHANGED THEN &
        !       SAVE/PRINT THE INFO &

13425   IF FNC%(M%(L%,3%),(PEEK(J0%+10%) AND 255%))=0% THEN &
                GOTO 13430 &
        ELSE    M%(L%,3%)=C% &
        \       C%=(C% AND (NOT 1%)) IF (C% AND 2%)<>0% &
        \       T$=N$ &
        \       T$=T$+", "+ &
                CVT$$(MID("LclPrvNetOneNcs   Evt", &
                  I%*3%+1%,3%),2%) &
                        IF ((C% AND 2%^I%)<>0%) AND (I%<>5%) &
                                FOR I%=6% TO 0% STEP -1% &
        \       T$="  None" IF T$="" &
        \       T%=FNV2%(16384%+24%,B$+B$+RIGHT(T$,3%)) &
        ! IF THE TYPE OF SENDERS ALLOWED HAS CHANGED THEN &
        !       SAVE THE INFO &
        !       SET DEFAULT STRING TO INDICATE PRIVE SENDERS &
        !       RESET IF NECESSARY &

13430   L%=L%+1%
13435   J0%=PEEK(J0%) &
        \ IF J0%=0% AND NSP%=0% THEN &
                J0%=PEEK(SWAP%(CVT$%(MID(SYS(CHR$(6%)+ &
                  CHR$(22%)+CHR$(-24%)+CHR$(3%)),9%,2%)))) &
        \       NSP%=-1% &
        ! PICK UP NEXT RIB. IF NONE INDICATED AND HAVEN'T &
        ! DONE NSP, SELECT NSP. &

13440   NEXT &

13445   T%=FNV0%(16384%,0%,"      ***** None ******") &
                IF L%=0% AND M%(0%,0%)<>-1% &
        \ M%(T%,0%)=-1% FOR T%=L% TO 19% &
        \ L%=1% UNLESS L% &
        \ T$=N$ &
        \ RETURN &
        ! IF WE'VE HIT THE END OF THE TABLE (-1) THEN &
        !       PRINT APPROPRIATE MSG IF NO RECEIVERS &
        !       FLAG NON-PRINTED ENTRIES &
        !       BUMP 'PRINTED' COUNTER IF 'NONE' PRINTED &

Modify line 13450 as indicated:
  Old:  \ T%=FNV8%(" Gen FIP  Jobs  TTY  Err") &
        \ T%=FNV0%(16384%,0%,"   0   0   0/0    0    0") &
  New:  \ T%=FNV8%(" Gen buf  FIP buf  Jobs/Jobmax  Hung "+ &
            "TTY's  Errors") &
        \ T%=FNV0%(16384%,0%,"     0        0       0/0"+ &
            "            0         0") &

Modify line 13470 as indicated:
  Old:  \       T%=FNV2%(0%,FNJ$(C%,4%)) &
  New:  \       T%=FNV2%(0%,FNJ$(C%,6%)) &

Modify line 13480 as indicated:
  Old:  \       T%=FNV2%(4%,FNJ$(C%,4%)) &
  New:  \       T%=FNV2%(6%,FNJ$(C%,9%)) &

Modify line 13490 as indicated:
  Old:  \       T%=FNV2%(8%,FNJ0$(NUM1$(C% AND 255%) &
                +"/"+NUM1$(SWAP%(C%) AND 255%),6%)) &
  New:  \       T%=FNV2%(15%,FNJ0$(NUM1$(C% AND 255%) &
                +"/"+NUM1$(SWAP%(C%) AND 255%),11%)) &

Modify line 13500 as indicated:
  Old:  \       T$=FNJ$(C%(3%),5%) IF C%(3%)>=0% AND ...
        \       V$=" *****" &
        \       V$=FNJ$(SAV.ERR-C%(3%),6%) IF C%(3%)>=0% &
        \       T%=FNV2%(16384%+14%,T$+V$) &
  New:  \       T$=FNJ$(C%(3%),11%) IF C%(3%)>=0% AND ...
        \       V$=" ****" &
        \       V$=FNJ$(SAV.ERR-C%(3%),11%) IF C%(3%)>=0% &
        \       T%=FNV2%(16384%+26%,T$+V$) &

Modify line 13530 as indicated:
  Old:          T%=FNV8%("    Resident Libraries") &
  New:          T%=FNV8%("          Resident Libraries") &

Add the following new line:
15110   DEF* FNDISKSIZE(PACK.CLU.SIZ%,HI.PCN%,DEV.CLU.SIZ%) &
        \ DSIZE=HI.PCN% &
        \ DSIZE=DSIZE+65536. IF DSIZE<0. &
        \ FNDISKSIZE=((DSIZE+1.)*PACK.CLU.SIZ%)+DEV.CLU.SIZ% &
        \ FNEND &
        ! &
        ! FIND THE MAXIMUM SIZE (IN BLOCKS) FOR A DISK DEVICE &

Modify line 15220 as indicated:
  Old:  15220 DEF* FNV0%(T%,T0%,T$)=FNV%(T%+45%,T0%+1%+L0%(...
  New:  15220 DEF* FNV0%(T%,T0%,T$)=FNV%(T%+72%,T0%+1%+L0%(...

Modify line 15230 as indicated:
  Old:  \ T%=T%+13% IF (L% AND 1%) &
        \ FNV1%=FNV%(T%+45%,2%+L0%(W%)+L%/2%,T$) &
  New:  \ T%=T%+(14%*(L% AND 3%)) &
        \ FNV1%=FNV%(T%+72%,2%+L0%(W%)+L%/4%,T$) &

Modify line 15260 as indicated:
  Old:  15260   DEF* FNV2%(T%,T$)=FNV%(T%+45%,1%+L0%(W%)+...
  New:  15260   DEF* FNV2%(T%,T$)=FNV%(T%+72%,1%+L0%(W%)+...

Modify line 15280 as indicated:
  Old:  15280   DEF* FNV8%(T$)=FNV%(16384%+45%,L0%(W%),T$) &
  New:  15280   DEF* FNV8%(T$)=FNV%(16384%+72%,L0%(W%),T$) &

Modify line 17270 as indicated:
  Old:  ! INIT POINTER &
  New:  \ DKBM.PTR%=PEEK(H1%(15%)-2%) &
        ! INIT POINTER &

Modify line 17280 as indicated:
  Old:  \       T%=FNV2%(0%,RAD$(R%(L2%,0%))+RAD$(C%)) &
  New:  \       T%=FNV2%(0%,RAD$(R%(L2%,0%))+RAD$(C%)+B$+B$) &

Add the following new line:
17290   GOTO 17305 IF A% &
        \ IF FNC0%(R%(L2%,7%),PEEK(R%+6%)) THEN &
                R%(L2%,7%)=PEEK(R%+6%) &
        \       T%=FNV2%(8%,RAD$(R%(L2%,7%))) &
        ! IF IN RTS DISPLAY AND IF THE RTS DEFAULT EXTENSION &
        ! HAS CHANGED THEN PRINT IT &

Modify line 17300 as indicated:
  Old:  \       T%=FNV2%(6%,FNJ$(C%,4%)+"K") &
        ! IF THE SIZE OF THE MODULE, IN K (R.KSIZ) HAS &
        ! CHANGED THEN &
        !       SAVE/PRINT IT &
  New:  \       T%=FNV2%(11%,FNJ0$(NUM1$(C%)+"("+ &
                NUM1$(PEEK(R%+28%) AND 255%)+")K",9%))

Add the following new lines:
17302   GOTO 17310 &
        ! IF THE SIZE OF THE MODULE, IN K (R.KSIZ) HAS &
        ! CHANGED THEN &
        !       SAVE/PRINT MODULE/USER SIZES &

17305   IF FNC%(R%(L2%,8%),SWAP%(PEEK(R%+28%)) AND 255%) THEN &
                R%(L2%,8%)=SWAP%(PEEK(R%+28%)) AND 255% &
        \       T%=FNV2%(6%,"  <"+FNN$(3%,R%(L2%,8%))+">") &
        ! IF THE PROTECTION CODE OF THE LIBRARY HAS &
        ! CHANGED THEN &
        !       SAVE/PRINT IT &

17308   IF FNC%(R%(L2%,2%),PEEK(R%+14%) AND 255%) THEN &
                R%(L2%,2%)=C% &
        \       T%=FNV2%(13%,FNJ$(C%,4%)+"K") &
        ! IF THE SIZE OF THE MODULE, IN K (R.KSIZ) HAS &
        ! CHANGED THEN &
        !       SAVE/PRINT IT &

Modify line 17310 as indicated:
  Old:  17310   IF FNC%(R%(L2%,3%),PEEK(R%+26%) AND 255%) THEN&
                R%(L2%,3%)=C% &
        \       T%=FNV2%(11%,FNJ$(C%,4%)) &
  New:  17310   P%=18% &
        \ P%=20% UNLESS A% &
        \ IF FNC%(R%(L2%,3%),PEEK(R%+26%) AND 255%) THEN &
                R%(L2%,3%)=C% &
        \       T%=FNV2%(P%,FNJ$(C%,4%)) &

Modify line 17320 as indicated:
  Old:  ELSE    T$="Tmp" &
        \       T$="Prm" IF J1%<0% &
        \       T$="Mon" IF ( PEEK(R%+14%) AND 255% )=0% &
  New:  ELSE    T$="Temp" &
        \       T$="Perm" IF J1%<0% &
        \       T$="Monitor" IF ( PEEK(R%+14%) AND 255% )=0% &

Delete the entire text of line 17330.

Add the following new lines:
17330   P%=22% &
        \ P%=24% UNLESS A% &
        \ T%=PEEK(R%+16%) &
        \ T$=T$+", Addr:"+NUM1$(FNSHFT.RGT%(T%,5%)) IF T%<>0% &
        \ IF (J0% AND 256%) THEN &
                T$=T$+", DF KBM" IF DKBM.PTR%=R% UNLESS A% &
        \       T$=T$+", KBM" IF DKBM.PTR%<>R% UNLESS A%
17340   T$=T$+", "+MID("1USR/WNERRemCSZ",(I%-9%)*3%+1%,3%) &
                IF (J0% AND 2%^I%) FOR I%=9% TO 13% UNLESS A% &
        \ T$=T$+", "+MID("1USR/WNERRem",(I%-9%)*3%+1%,3%) &
                IF (J0% AND 2%^I%) FOR I%=9% TO 12% IF A% &
        \ T$=T$+", DYN" IF (PEEK(R%+28%) AND 192%) = 192% &
        \ T$=T$+", E:"+NUM1$(J0% AND 255%) IF J0%<0% &
        \ T%=FNV2%(16384%+P%,B$+B$+LEFT(T$,31%)) &
        \ GOTO 17280 &

Modify line 17360 as indicated:
  Old:  T%=FNV0%(16384%,0%,"    ****** None ******") &
  New:  T%=FNV0%(16384%,0%,"          ****** None ******") &

Add the following new lines:
17500   DEF* FNN$(S%,N%) &
        \ S$=NUM1$((N% EQV 32767%)+32768.) &
        \ FNN$=SPACE$(S%-LEN(S$))+S$ &
        \ FNEND &
        ! LEFT PAD A NUMBER TO SPECIFIED LENGTH &
        &

17510   DEF* FNACCOUNT.NAME$(PN%) &
        \ ON ERROR GOTO 17520 &
        \ Z$=SPACE$(13%) &
        \ LSET Z$="<No name>" &
        \ LSET Z$="<Logged out>" IF PN%=0% &
        \ LSET Z$=CVT$$(MID(SYS(CHR$(6%)+CHR$(-25%)+ &
                  CHR$(-1%)+CHR$(5%)+CHR$(PN%)+ &
                  CHR$(SWAP%(PN%))+STRING$(16%,0%)+"SY"+ &
                  STRING$(2%,0%)),8%,13%),5%) UNLESS PN%=0% &
        \ GOTO 17530 &

17520   RESUME 17530 &

17530   FNACCOUNT.NAME$=Z$ &
        \ ON ERROR GOTO 19000 &
        \ FNEND &
        ! RETURN THE ACCOUNT NAME BLOCKETTE DATA &

17600  DEF* FNSHFT.RGT%(X%,Y%)= &
       (X% AND 32767%)/(2%^Y%) OR ((2%^(15%-Y%)) AND (X%<0%)) &
       &
       ! FUNCTION TO SHIFT A 16-BIT INTEGER X%, BY Y% BITS. &

19045   IF ERL=13435 THEN &
                NSP%=-1% &
        \       RESUME 13440 &
        ! IF DECNET/E NOT PRESENT THEN &
        !       SAY WE ALREADY DID IT AND SKIP &

Modify line 19100 as indicated:
  Old:  \       GOSUB 20100 &
  New:  \       GOSUB 20110 &

Modify line 20020 as indicated:
  Old:  20020   COL%=80%-1%     !default to 80 columns &
  New:  20020   COL%=132%-1%    !default to 132 columns &

Modify line 20055 as indicated:
  Old:  \       IF (V3% < 11%) OR (V3% > 24%) THEN &
        PRINT "%Row specification must be between 12 and 24" &
                \       EFLAG%=1% &
                \       GOTO 20095 &
        ! ROWS MAY RANGE BETWEEN 12 (VT50) AND 24 (VT52). &

  New:  \       IF (V3% < 11%) OR (V3% > 66%) THEN &
        PRINT "%Row specification must be between 12 and 66" &
                \       EFLAG%=1% &
                \       GOTO 20095 &
        ! ROWS MAY RANGE BETWEEN 12 (VT50) AND 66 (FULL-PAGE) &

Modify line 20100 as indicated:
  Old:  \ V$=V0$+"<"+V0$+[1;1H"+V0$+"[2J"
  New:  \ V$=V0$+"<"+V0$+"[?3h"+V0$+"[1;1H"+V0$+"[2J" &
        \ GOTO 20120 &

Add the following new line:
20110   V8%=0% &
        \ V$=V0$+"<"+V0$+"[?3l"+V0$+"[1;1H"+V0$+"[2J" &

Modify line 20540 as indicated:
  Old:          IF (T%-V1%)/8% AND (T%<=71%) THEN &
  New:          IF (T%-V1%)/8% AND (T%<=72%) THEN &

     If  you suffer through entering all of the above, here  is 
what you can expect to see when you run it:

RSTS V9.5-08 SPCCSPDP/RED    Status on 03-Dec-87 07:52 PM    Last restarted on 20-Nov-87 12:22 AM    Up: 13 19:30:23       19:54

Job  Who   Name           Where What Size State Run-time Pri/RB RTS      Gen buf  FIP buf  Jobs/Jobmax  Hung TTY's  Errors
 1   1,2   (SYSTEM)       Det   ERRCPY  5 SR        26.4   0/6  ...RSX     619      368       9/63          1          1
 2   1,2   (SYSTEM)       Det   NPKDVR  9 SL      1:16.7  -8/6  ...RSX
 3   1,2   (SYSTEM)       Det   PBS... 19 SL      7:15.2  -8/6  ...RSX                      Busy devices
 4   1,2   (SYSTEM)       Det   EVTLOG 18 SL      8:33.3  -8/6  ...RSX  Dev Job Why   Dev Job Why   Dev Job Why   Dev Job Why
 5   1,2   (SYSTEM)       Det   MAILQ  32 SR        16.8 -16/6  ...RSX  KB1   8 Open
 6   1,2   (SYSTEM)       Det   ...KIL  3 SL    215:21.6  -8/6  ...RSX
 7   1,254 Terry Kennedy  KB27* DIS132 18 RN        16.9  -8/6  ...RSX                     Disk structure
 8   1,3   Operator       Det   DIS132 18 SL    ???:??.?  -8/6  ...RSX  Dsk Open    Size      Free   Clu  Err Name      Comments
 9 108,15  ADA RIVERA     KB26* GAMES   2 ^C         6.3  -8/6  BASIC   DV0    0    1200     223 18%   1    0 SYSTMP    Pri,DLW
                                                                        DM0    0   53765   50536 93%   4    0 SYSWK2    Pri,DLW
                                                                        DM1    0   53765   46556 86%   4    0 SYSWK3    Pri,DLW
                                                                        DB0   40  340664  185808 54%   8    0 SYSRES    Pub,DLW
                                                                        DB4    0  340664  312248 91%   8    0 SYSWK1    Pri,DLW

                                                                                          Run-time systems
                                                                        ...RSX  TSK   0(64)K   8  Monitor, KBM
                                                                        DCL     COM   24(8)K   0  Temp, Addr:87, DF KBM
                                                                        RT11    SAV   4(28)K   0  Temp, Addr:124, KBM, CSZ, E:255
                                                                        RSX     TSK   1(28)K   0  Non-res, KBM
                                                                        BASIC   BAC  16(16)K   1  Temp, Addr:189, KBM, CSZ
                                                                        TECO    TEC  10(20)K   0  Temp, Addr:259, KBM
                                                                        PASCAL  SAV   4(28)K   0  Non-res, NER, E:255    
                                                                        APL     APC  16(16)K   0  Non-res, KBM           
                                                                        BP2            1(1)K   0  Non-res, KBM           
                                                                        BASDEB  BAC  16(16)K   0  Non-res, KBM, CSZ      
                                                                        CLE     CLE    3(1)K   0  Non-res, KBM, NER      
                                                                                                                         
                                                                              Message receivers                          
                                                                        ERRLOG   1   0   1  0/40  Prv                    
                                                                        NWPK02   2   0  23  0/16  Net                    
                                                                        QM$CMD   3   1   3  0/20  Prv                    
                                                                        QM$SRV   3   2   4  0/30  Prv                    
                                                                        QM$URP   3   3   5  0/10  Lcl                    
                                                                        PR$03A   3  17  65  0/5   Prv                    
                                                                        PR$03B   3  25  65  0/5   Prv                    
                                                                        BA$03A   3  41  66  0/5   Prv                    
                                                                        BA$03B   3  49  66  0/5   Prv           
                                                                        BA$03C   3  57  66  0/5   Prv           
                                                                        EVTLOG   4   0   0  0/32  Evt, Prv      
                                                                        EVTLSN   4   1  26  0/16  Net, Prv      
                                                                        MAILQ    5   0   0  0/1   Lcl           
                                                                        NSP     NSP  0   0  0/0   None          
                                                                                                                
                                                                                  Resident Libraries            
                                                                        CSPLIB  < 42>   8K   5  Temp, Addr:116  
                                                                        EDT     < 42>  39K   0  Temp, Addr:308  
                                                                        RMSRES  < 42>   4K   1  Temp, Addr:1660 
                                                                        RMSLBA  < 42>   4K   1  Temp, Addr:155  
                                                                        RMSLBB  < 42>   3K   1  Temp, Addr:148  
                                                                        RMSLBC  < 42>   3K   1  Non-res               
                                                                        RMSLBD  < 42>   2K   1  Temp, Addr:159        
                                                                        RMSLBE  < 42>   3K   1  Temp, Addr:141        
                                                                        RMSLBF  < 42>   4K   1  Temp, Addr:144        
                                                                        DAPRES  < 42>  10K   0  Temp, Addr:1650       
                                                                        BP2RES  < 42>  17K   0  Non-res, Addr:89      
                                                                        B25SHR  < 42>   4K   0  Temp, Addr:128        
                                                                        B25SH1  < 42>   4K   0  Temp, Addr:132        
                                                                        CBLIB   <  0>   3K   0  Perm, Addr:1647, R/W  
                                                                        CBCODE  < 42>  18K   0  Perm, Addr:983        























��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������