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.