Google
 

Trailing-Edge - PDP-10 Archives - BB-AI48A-BM - dtr20-doc/dtr20.bwr
There are no other files named dtr20.bwr in the archive.


DTR20.BWR -- Beware file for DATATRIEVE-20 V1.0
June-84


                     Copyright (C) 1984 by
             Digital Equipment Corporation, Maynard, Mass.
 
      This software is furnished under a license, and may be used
      or copied only in accordance with the terms of that license.





1.0  INTRODUCTION

This document contains information you should be  aware  of  prior  to
using  DATATRIEVE-20  Version  1.0.  Please read it carefully prior to
installing the software.



2.0  REQUIRED HARDWARE AND SOFTWARE

Please make note of the following requirements for DATATRIEVE-20 V1.0.



2.1  Required Hardware

DATATRIEVE-20 V1.0 uses extended addressing and as a result will  only
execute   on   KL   model   processors   with   extended   addressing.
DATATRIEVE-20 V1.0 will not execute on 2020 or KL model A processors.



2.2  Required Microcode

DATATRIEVE-20 V1.0 requires the use of microcode 326 or later.



2.3  Required Software

DATATRIEVE-20 V1.0 requires TOPS-20 V5.1 or later with  the  following
Monitor  and Exec edits installed.  DATATRIEVE-20 V1.0 requires RMS-20
V2.0.
                                                                Page 2


2.4  Optional Software

If sorting is used, DATATRIEVE-20  V1.0  requires  SORT-20  V5.0.   If
Distributed  DATATRIEVE  is used, DECnet-20 V2.1 or later is required.
If Distributed DATATRIEVE to PDP-11s is used,  DATATRIEVE-11  V3.1  is
required.    If   Distributed  DATATRIEVE  to  VAXs  is  used,  VAX-11
DATATRIEVE V3.0 is required.
                                                                Page 3


3.0  PATCHES TO RELATED PRODUCTS

3.1  TOPS-20 Release 5.1 Monitor

The following  patches  are  required  for  the  TOPS-20  Release  5.1
monitor.   Before installing these patches please check the edit level
of your current Autopatch tape and install only  those  patches  which
are NOT included on the Autopatch tape.
                                                                Page 4


3.1.1  Beware File Patch #1 - Autopatch/Edit Monitor #3043 -


[SYMPTOM]
 
DATATRIEVE must be able to parse a semi-colon.


[DIAGNOSIS]
 
Semi-colons are only treated as beginning a comment. No
code exists to treat it differently.
 
No flag can be set by the user to say "semi-colons do not cause comment"


[CURE]
 
Add CM%NOC which says: "semi-colons do not cause comment"


[EDIT]
 
!DDT PATCH FOR REL 5, AND REL 5.1 (Edit #3043)
 
$GET SYSTEM:MONITR.EXE
$START 140
DDT
 
CMSKSP+4/   CAIN T1,CRSTAD   JRST FFF
FFF/   TLNN 100
FFF+1/   CAIE T1,CRSTAD
FFF+2/   JRST CMSKSP+6
FFF+3/   JRST CMCMT2
FFF+4/   0   FFF:
 
^Z
$SAVE SYSTEM:MONITR.EXE
 SYSTEM:MONITR.EXE.2 Saved
$
                                                                Page 5


3.1.2  Beware File Patch #2 - Autopatch/Edit Monitor #3045 -


[SYMPTOM]
 
"Section greater than 37" errors are sometimes received when
parsing with function .CMNUX in non-zero sections.


[DIAGNOSIS]
 
COMND keeps the following in ac P1:
 
        First function block,,current function block
 
When P1 is used as an index register, it may be  incorrectly
interpreted  as  a  global  index register, depending on the
value of the address in the left half.


[CURE]
 
Use a temporary AC for indexing,  and  keep  the  left  half
zero.
 
 
[EDIT]

!DDT PATCH FOR REL 5, AND REL 5.1 (Edit #3045)
 
$GET SYSTEM:MONITR.EXE
$START 140
DDT
 
CMNUMR+4/   XCTBMU LCOMND#+555        <tab>
LCOMND+555/   LDB T3,LCOMND#+554      <tab>
LCOMND+554/   SKIPL T2,0(P1)   331104,,0
 
CMNUMR+4/   XCTBMU LCOMND#+555  JRST FFF
FFF/   0   HRRZ T4,P1
FFF+1/   0   XCTBMU LCOMND#+555
FFF+2/   0   JRST CMNUMR+5
FFF+3/   0   FFF:
 
^Z
$SAVE SYSTEM:MONITR.EXE
 SYSTEM:MONITR.EXE.2 Saved
$
                                                                Page 6


3.1.3  Beware File Patch #3 - Autopatch/Edit Monitor #3046 -


[SYMPTOM]
 
Job hangs on logout.


[DIAGNOSIS]
 
A job is started via CRJOB and a process is started which maps section
0  to  section  1  and  then continues running in section 1. This will
increment the share count of the PSB. Upon logout, the code at  HLTJB1
clears  the  pages  in  the  process  map and job map but neglects the
section map for the process. The code then waits for the PSB to become
unshared, which it never does, and the process hangs in WTSPTT test.


[CURE]
 
In HLTJB1, before the job and process  maps  are  cleared,  clear  all
non-zero  sections of the section map. This is done by calling CLNZSC.
This routine will have to be made global.


[EDIT]

DDT PATCH FOR VERSIONS 5 AND 5.1 ONLY (Edit #3046):

@ENABLE (CAPABILITIES)
$GET (PROGRAM) SYSTEM:MONITR.EXE
$START (PROGRAM) 140
DDT
HLTJB1+4/   SETZM JOBMAP   $<
FFF/   0   CALL CLNZSC
FFF+1/   0   JFCL
FFF+2/   0   $1>
FFF+2/   0   SETZM JOBMAP
FFF+3/   0   JUMPA T1,HLTJB1#+5
HLTJB1#+4/   SETZM JOBMAP   JUMPA FFF1
^Z
$SAVE (on file) SYSTEM:MONITR.EXE
 PS:<SYSTEM>MONITR.EXE.2 Saved
$DISABLE (CAPABILITIES)
@
                                                                Page 7


3.1.4  Beware File Patch #4 - Autopatch/Edit Monitor #3048 -


[SYMPTOM]
 
     PAGLCK or ILMNRF BUGHLTs, NSKDT2 Bugchks when running SORT or any
user mode program doing extended addressing.


[DIAGNOSIS]
 
     If a page fault occurs and the monitor  does  garbage  collection
and  CPTPGA  is  mapped  and the user is using extended addressing the
monitor will call SECIND which calls SECPTR which trashes the  mapping
of  CPTPGA.   This  is caused by SETCPT giving a "free" call to RELCPT
which unmaps CPTPGA.


[CURE]
 
     Change SECPTR to save/restore mapping of CPTPGA.   Change  SETCPT
to  BUGCHK  instead  of giving a free unmapping.  Change SETMPG to not
expect this "feature" of SETCPT.  The new BUGCHK will be CPTMAP.


[EDIT]

! Edit #3048:

@GET SYSTEM:MONITR
@START (PROGRAM) 140
DDT
SECPTR/   JSP CX,NOSK11
SECPTR+1/   CALL SETCPT   PUSH P,T1
SECPTR#+2/   HRRZS T1   SKIPE T1,PSBM0+CPTPG
SECPTR#+3/   MOVE T1,CPTPGA+540(T1)   CALL RELCPT
SECPTR#+4/   CALL RELCPT   HRLZS T1
SECPTR#+5/   JSP CX,OKSK11   EXCH T1,(P)
SECPTR#+6/   RET   JRST FFF     
FFF/   0   CALL SETCPT
FFF+1/   0   HRRZS T1
FFF+2/   0   MOVE T1,SECADR(T1)
FFF+3/   0   CALL RELCPT
FFF+4/   0   EXCH T1,(P)
FFF+5/   0   SKIPE T1
FFF+6/   0   CALL SETCPT
FFF+7/   0   POP P,T1
FFF+10/   0   JSP CX,OKSK11
FFF+11/   0   RET
FFF+12/   0   FFF:
 
RELP4+11/   HRRZ T3,PSBMAP+1   JRST FFF 
FFF/   0   SKIPE T3,PSBM0+CPTPG
FFF+1/   0   CALL RELCPT
FFF+2/   0   JRST RELP4+12      
                                                                Page 8


FFF+3/   0   FFF:
 
SETCPT+6/   CALL RELCPT   CALL FFF      
FFF/   0   SKIPE PSBM0+CPTPG
FFF+1/   0   XCT FFF+3
FFF+2/   0   JRST RELCPT
FFF+3/   0   CALL BGCCHK
FFF+4/   0   $"/CPTMAP/
FFF+5/   0   FFF:
 
^Z
@SAVE SYSTEM:MONITR.EXE
 <SYSTEM>MONITR.EXE.2 SAVED
                                                                Page 9


3.1.5  Beware File Patch #5 - Autopatch/Edit Monitor #3122 -


[SYMPTOM]
 
     PDVOP% JSYS unable to return the program name  when  used  in  an
extended  section  when IFIW pointer is used.  Datatrieve/DYNLIB wants
this to facilitate dynamic library calls.
 

[DIAGNOSIS]
 
     The code was not made to handle IFIW's.  At the moment it makes a
pointer  of  value  0,,addr  behave  as an IFIW.  Here, we do not want
0,,addr to be interpreted as section relative but as a global  pointer
to section zero.
 
 
[CURE]
 
     Change it to do hardware effective address calculation (excluding
indirection  and  registers).   Only  1B0  will allow section relative
addressing.


[EDIT]

! Edit #3122:

$GET SYSTEM:MONITR.EXE
$START 140
DDT
PONAM+6/   TLNN T1,777777   TLNE T1,400000
^Z
$SAVE SYSTEM:MONITR.EXE
 <SYSTEM>MONITR.EXE.2 SAVED
                                                               Page 10


3.2  TOPS-20 Release 5.1 EXEC

The following patch is required for  the  TOPS-20  Release  5.1  EXEC.
Before  installing  this  patch  please  check  the edit level of your
current Autopatch tape and install  this  patch  ONLY  if  it  is  NOT
included on the Autopatch tape.
                                                               Page 11


3.2.1  Beware File Patch #6 - Autopatch/Edit EXEC #993 -


[SYMPTOM]
 
     The EXEC cannot be run as an inferior to a process in a  detached
job.  DATATRIEVE must be allowed to do this or it can't be shipped.


[DIAGNOSIS]
 
     If a DVCHR jsys is performed for the controlling terminal but the
job  is  detached,  the DVCHR will block until someone attaches to the
job.


[CURE]
 
     If the job is detached, bypass the DVCHR.  This needs to be  done
in the PUSHIO, LTTYMD, and RTTYMD routines.


[EDIT]

DDT PATCH FOR VERSION 5 AND 5.1 EXEC (Edit #993):
 
@ENABLE
$GET SYSTEM:EXEC.EXE.1
$INFORMATION (ABOUT) MEMORY-USAGE
 
100. pages, Entry vector loc 6000 len 3
        (101. pages, Entry vector loc 6000 len 3  --  FOR V5.1 EXEC)
 
  Section 0     R, W, E,  Private
0        PS:<SYSTEM>EXEC.EXE.1  1   R, CW, E
6-150    PS:<SYSTEM>EXEC.EXE.1  2-144   R, E
        (6-151   PS:<SYSTEM>EXEC.EXE.1  2-145   R, E  --  FOR V5.1 EXEC)
$SET PAGE-ACCESS (OF PAGES) 6:150 COPY-ON-WRITE
        ($SET PAGE-ACCESS (OF PAGES) 6:151 COPY-ON-WRITE   --  FOR V5.1
        EXEC)
$DDT
DDT
 
PUSHIO+11/   HRRZ A,CIJFN   JRST PAT..
PAT../   0   GJINF
PAT..+1/   0   HRRZ A,CIJFN
PAT..+2/   0   SKIPGE D         
PAT..+3/   0   CAIE A,.PRIIN            
PAT..+4/   0   SKIPA
PAT..+5/   0   JRST PAT..+10
PAT..+6/   0   HRRZ A,CIJFN
PAT..+7/   0   JRST PUSHIO+12
PAT..+10/   0   MOVE A,TAKCUR   
PAT..+11/   0   JRST PUSHIO+17  
PAT..+12/   0   PAT..:
                                                               Page 12


 
LTTYMD+7/   DVCHR   $<
PAT../   0   GJINF
PAT..+1/   0   JUMPL D,NOTTY1
PAT..+2/   0   MOVEI A,.CTTRM
PAT..+3/   0   $>
PAT..+3/   0   DVCHR
PAT..+4/   0   JUMPA A,LTTYMD+10
PAT..+5/   0   JUMPA B,LTTYMD+11
LTTYMD+7/   DVCHR   JUMPA ENTOV#+43
 
RTTYMD+4/   DVCHR   $<
PAT../   0   GJINF
PAT..+1/   0   JUMPL D,NOTTY2
PAT..+2/   0   MOVEI A,.CTTRM
PAT..+3/   0   $>
PAT..+3/   0   DVCHR
PAT..+4/   0   JUMPA A,RTTYMD+5
PAT..+5/   0   JUMPA B,RTTYMD+6
RTTYMD+4/   DVCHR   JUMPA ENTOV#+51
 
^Z
$SET PAGE-ACCESS (OF PAGES) 6:150 NO WRITE
        ($SET PAGE-ACCESS (OF PAGES) 6:151 NO WRITE  --  FOR V5.1 EXEC)
$SET PAGE-ACCESS (OF PAGES) 6:150 NO COPY-ON-WRITE
        ($SET PAGE-ACCESS (OF PAGES) 6:151 NO COPY-ON-WRITE  --  FOR V5.
        1 EXEC)
$SAVE SYSTEM:EXEC.EXE.2  !New generation! (PAGES FROM) 0 (TO) 150
        ($SAVE SYSTEM:EXEC.EXE.2  !New generation! (PAGES FROM) 0 (TO) 1
        51  --
                                                                 FOR V5.
        1 EXEC)
 SYSTEM:EXEC.EXE.2 Saved
$DISABLE
@
                                                               Page 13


4.0  PRODUCT RESTRICTIONS

The following restrictions apply to DATATRIEVE-20 V1.0:

     1.  When a plot  is  going  to  be  presented,  DATATRIEVE  first
         changes  the  terminals  characteristics  to  allow  for  the
         characters which control plotting to be sent.   The  terminal
         characteristics  are  reset  only after the user enters text,
         such as the next  DATATRIEVE  command  or  statement.   As  a
         result,  a  procedure  or  command  file  which  contains the
         following sequence of commands is not supported:   PLOT  PUSH
         PLOT.  The EXEC can alter the terminal characteristics making
         the display of the second plot fail.

     2.  Hyphens used in path names are converted to underscores.   If
         a  TOPS-20  directory  name contains a hyphen, you cannot use
         that name as part of  an  absolute  or  relative  path  name.
         Instead,  use  a  logical  name,  beginning with CDD$, as the
         absolute path name of the  directory,  or  set  your  default
         directory using the TO option of the SET DICTIONARY command.

     3.  The CONTAINING operator does  not  work  with  a  prompt  for
         remote  domains.   For example, the following PRINT statement
         does not work:

         DTR> PRINT REMOTE_YACHTS WITH BUILDER CONTAINING *.BUILDER

         DATATRIEVE uses a fixed-length field to transmit  the  prompt
         value  to  the  Remote  Server,  and  it fills the field with
         spaces.

     4.  You cannot use a Boolean expression containing the relational
         operators  IN  or ANY in a record selection expression with a
         remote domain or collection as its source.

     5.  You can not use a remote domain  or  collection  in  a  CROSS
         clause.

     6.  You cannot use qualified field names to differentiate  fields
         that  have  the  same  name  and  are part of the same remote
         record definition.  If you plan to use  a  record  definition
         for remote access, give each field a unique name.

     7.  Distributed  DATATRIEVE  does  not  reprompt  for  validation
         errors.   A  validation  error  causes  the  statement  being
         processed to abort.

     8.  You cannot store or modify  hierarchical  records  in  remote
         domains.   If  a remote domain contains a sublist, MODIFY and
         STORE statements can refer only to those fields in the record
         that are not lists.

     9.  In a record selection expression with a remote domain as  its
         source,  you  cannot use a Boolean expression that contains a
         computation involving the remote data.  The  following  PRINT
                                                               Page 14


         statement violates this restriction:

         DTR> PRINT REMOTE_YACHTS WITH PRICE GT DISPLACEMENT * 3

         By contrast, these PRINT statements are legal:

         DTR> PRINT REMOTE_YACHTS WITH PRICE = 15000

         DTR> PRINT REMOTE_YACHTS WITH PRICE GT DISPLACEMENT

    10.  If you have a remote elementary field that is  also  a  list,
         attempting  to  access  it explicitly will generate an error.
         This occurs if the record is defined like:

         06 ABSTRACT PIC X(80) OCCURS 0 TO 10 TIMES.

         If the record is changed to be this, it works:

         06 ABSTRACT OCCURS 0 TO 10 TIMES.
             08 TEXT PIC X(80).

    11.  The use of recursive procedures  is  unsupported.   When  the
         depth of procedures and indirect files reaches 10 the current
         statement is aborted.

    12.  You can not use a qualified field name, such as TYPE.BUILDER,
         to  specify  the name of a REDEFINES field or as the variable
         in an OCCURS DEPENDING ON.

    13.  When nesting FOR statements, it is not possible to use  field
         names   which   reference  domains  used  in  the  outer  FOR
         statements.  Statements  of  this  nature  will  not  compile
         properly.  For example:

         FOR FIRST 1 YACHTS FOR FAMILIES WITH BUILDER = "ALBIN"  PRINT
         "FOO"

    14.  Defining views based on a FIRST  n  clause  or  a  SORTED  BY
         clause is not possible.

    15.  SELECT statement record locking for  multiple  updaters  will
         not work with records from RSEs containing the CROSS CLAUSE.