Google
 

Trailing-Edge - PDP-10 Archives - ap-c796e-sb - pip33b.bwr
There is 1 other file named pip33b.bwr in the archive. Click here to see a list.
PIP33B.BWR  -  Beware file for users running with NEW enabled   Page 1
February 27, 1975


***Copyright   1975,   Digital   Equipment    Corporation,    Maynard,
Massachusetts***



Version  33B  of  the  Peripheral  Interchange  Program  (PIP)  has  a
characteristic  for  users  who have NEW enabled in their search list.
For all monitors prior to 6.02, a monitor  "feature"  will  cause  all
references  to SYS:  to operate as defined for NEW vs SYS, i.e.  [1,5]
will be  used  for  the  project-programmer  number  whenever  one  is
required.   However DIRECT, and any other program which uses WILD will
use [1,4].  This is due to the fact  that  the  monitor  is  returning
[1,4] on a PATH.  UUO, but [1,5] on a DEVPPN UUO.  Both a PATH.  and a
DEVPPN were tried in PIP.  The supported version on this tape  uses  a
DEVPPN for the following reasons.

First and most important, using the PATH.  UUO makes PIP  inconsistent
within  itself.   Whenever a reference is made to the directory of the
device, either explicitly or implicitly (i.e.  with  wild  cards,  /F,
/L, or with /R, /D), then PIP will use the result of the PATH., [1,4].
Whenever    no    directory    references    are    necessary    (i.e.
TTY:=SYS:NOTICE.TXT),  then  the  monitor's  normal logic will be used
(search [1,5] and then [1,4]).  Because of the sequence of  I/O  UUO's
used,  it  would  take  a rewrite to fix PIP correctly.  Therefore, it
seems more reasonble to be consistent within PIP.

Secondly, there is a bug in all  monitors  (with  FTSFD=1)  when  your
default  path  PPN is not the same as your current logged in PPN.  The
PATH.  incorrectly returns JBTPPN instead of the default path PPN.  It
does not seem reasonable to put in code to determine if this bug still
exists in order to use the correct PPN.

Appended to this file are two possible solutions to this dilemma.  The
first is to use field image PIP and possibly put in the attached patch
to make the PATH.  return the correct PPN so that WILD  will  also  do
the  right thing.  The second is to use the attached patch to PIP, and
the one line patch to the monitor, and live with  the  inconsistencies
in  PIP.   We  recommend  the  first  course,  with the monitor patch,
because that makes everyone consistent and will be the way the monitor
will work in the future.
PIP33B.BWR  -  Beware file for users running with NEW enabled   Page 2
February 27, 1975


The following is the correction to the monitor (FILUUO) for the  PATH.
UUO returning [1,5] instead of [1,4].


1)1             JUMPN   T1,PTHU8C
1)      PTHU8B:
1)      >
1)              SKIPL   P3
1)              SKIPN   T1,@SDVPPN##(P3)
1)              MOVE    T1,T4
1)      PTHU8C: PUSHJ   P,PUTWD1##
****
2)1             JUMPN   T1,PTHU8E
2)      PTHU8B:
2)      >       ;END OF CONDITIONAL ON FTLIB
2)              JUMPL   P3,PTHU8D       ;IF NEGATIVE, THEN NOT ERSATZ
2)              JUMPN   P3,PTHU8C       ;IN NON-ZERO, THEN NOT SYS:
2)              HLRZ    T1,JBTSFD##(J)  ;GET SEARCH LIST SPEC
2)              TRNE    T1,JBPXSY##     ;SEE IF NEW ENABLED
2)              MOVEI   P3,NEWNDX##     ;YES, CHANGE TO NEW:
2)      PTHU8C: SKIPN   T1,@SDVPPN##(P3) ;GET ANY ERSATZ PPN
2)      PTHU8D: MOVE    T1,T4           ;USE ANY DEVICE PPN
2)      PTHU8E: PUSHJ   P,PUTWD1##      ;GIVE PPN TO USER
**************
PIP33B.BWR  -  Beware file for users running with NEW enabled   Page 3
February 27, 1975


The patch to the monitor (FILUUO) to make the PATH.   UUO  not  return
JBTPPN  is  to  change  PTHUU7-4  from  MOVE  T4,JBTPPN##(J)  to PUSHJ
P,SFDPPN.  The change to PIP to make it work like the  current  DIRECT
is as follows.


1)26    ;**; EDIT 237   PSYSP           JNT 11-JAN-75
1)      ;[237 CHANGE];**; EDIT 211      PSYSP  JNT 14-NOV-74
1)      ;[237 CHANGE];[211 CHANGE]PSYSP: SKIPE PP  ;[163] SEE IF PPN
SPECIFIED
1)      ;[237 CHANGE];[211 CHANGE]      POPJ P,  ;[163] YES, DON'T
FIND A NEW ONE
1)      ;[237 CHANGE]PSYSP:     SETZM   DEVPP  ;[211] CLEAR ERSATZ
DEVICE PPN
1)      ;[237 CHANGE]   DEVPPN  0,       ;[163] GET PPN FOR DEVICE IN
0
1)      ;[237 CHANGE]
1)      ;[237 CHANGE];**; EDIT 211      PSYSP+3  JNT 14-NOV-74
1)      ;[237 CHANGE]IFE LEVELC,(         ;[211]
1)      ;[237 CHANGE]     JFCL           ;[211] IGNORE ERRORS
1)      ;[237 CHANGE]);[211] END IFE LEVELC
1)      ;[237 CHANGE]IFN LEVELC,(         ;[211]
1)      ;[237 CHANGE]     PUSHJ P,TRYSYS ;[163] UNSUPPORTED, DO IT THE
HARD WAY
1)      ;[237 CHANGE]);[211] END IFN LEVELC
1)      ;[237 CHANGE];[211 DELETE]      MOVEM 0,PP  ;[163] UPDATE PPN
1)      ;[237 CHANGE]   CAME    0,JOBPTH+2 ;[211] UNLESS DEVICE
DIFFERENT FROM OUR DEFAULT
1)      ;[237 CHANGE]                    ;[211] PATH PPN, IT'S NOT
ERSATZ
1)      ;[237 CHANGE]   MOVEM   0,DEVPP  ;[163] AND ERSATZ DEVICE PPN
1)      ;[237 CHANGE]   POPJ    P,       ;[163]
1)      ;[237 CHANGE]
1)      ;[237 CHANGE];**; EDIT 211      TRYSYS  JNT 14-NOV-74
1)      ;[237 CHANGE]IFN LEVELC,(         ;[211]
1)      ;[237 CHANGE]TRYSYS:    DEVNAM  0,  ;[163] NO DEVPPN, SEE IF
WAS LOGICAL NAME
1)      ;[237 CHANGE]     JFCL           ;[163]
1)      ;[237 CHANGE]   CAMN    0,['SYS   '] ;[163] SEE IF SYS:
1)      ;[237 CHANGE]   SKIPA   T1,SYSPPN ;[163] YES, USE SYS'S PPN
1)      ;[237 CHANGE]   MOVE    T1,JOBPPN ;[163] NO, USE OURS
1)      ;[237 CHANGE]   MOVE    0,T1     ;[163] COPY FOR PSYSP
1)      ;[237 CHANGE]   POPJ    P,       ;[163] AND GO BACK
1)      ;[237 CHANGE]
1)      ;[237 CHANGE];**; EDIT 211      TRYSYS+7 JNT 14-NOV-74
1)      ;[237 CHANGE]);[211] END IFN LEVELC
1)      ;[237 CHANGE]);[163] END IFN FTDSK
1)      PSYSP:  SETZM   DEVPP           ;[237] CLEAR ERSATZ DEVICE PPN
1)              MOVEM   0,CHKPTH        ;[237] SAVE DEVICE NAME FOR
PATH. OR DEVPPN
1)              MOVE    0,[XWD 3,CHKPTH];[237] SET FOR SHORT PATH.
1)              PATH.   0,              ;[237] GET PPN OF DEVICE
1)                JRST  PSYSP2          ;[237] FAILED, GO TRY DEVPPN
1)              MOVE    0,CHKPTH+2      ;[237] GET RETURNED PPN
PIP33B.BWR  -  Beware file for users running with NEW enabled   Page 4
February 27, 1975


1)      PSYSP1: CAME    0,JOBPTH+2      ;[237] COMPARE WITH DEFAULT
PPN SINCE
1)              MOVEM   0,DEVPP         ;[237]  IT'S ONLY ERSATZ IF
DIFFERENT
1)              POPJ    P,              ;[237] RETURN WITH DEVPP ZERO
IF NOT ERSATZ
1)      PSYSP2: MOVE    0,CHKPTH        ;[237] RESTORE DEVICE NAME
1)              DEVPPN  0,              ;[237] TRY A DEVPPN IF PATH.
FAILED
1)      IFE LEVELC,<                    ;[237] MUST WORK IF LEVEL D
1)                JFCL                  ;[237] 
1)              JRST    PSYSP1          ;[237] GO SEE IF SAME AS JOB'S
1)      >;[237] END IFE LEVELC
1)      IFN LEVELC,<                    ;[237] MAY FAIL IF LEVEL C
1)                SKIPA                 ;[237] SKIP TO TRY COMPARE TO
SYS:
1)              JRST    PSYSP1          ;[237] GO SEE IF SAME AS JOB'S
1)              DEVNAM  0,              ;[237] NO DEVPPN, SEE IF IT
WAS LOGICAL NAME
1)                JFCL                  ;[237] DON'T CARE
1)              CAMN    0,[SIXBIT/SYS/] ;[237] SEE IF SYS:
1)              SKIPA   T1,SYSPPN       ;[237] GET PPN OF SYS
1)              MOVE    T1,JOBPPN       ;[237] NOT SYS:, USE OURS
1)              MOVE    0,T1            ;[237] COPY BACK
1)              JRST    PSYSP1          ;[237] GO STORE IN DEVPP
1)      >;[237] END IFN LEVELC
1)      >;[237] END IFN FTDSK
*****************



[End of PIP33B.BWR]