Trailing-Edge
-
PDP-10 Archives
-
BB-4157F-BM_1983
-
documentation/link.bwr
There are 17 other files named link.bwr in the archive. Click here to see a list.
LINK.BWR: LINK Version 5.1(2030) 1 Feb 83
Copyright (C) 1983 Digital Equipment Corporation, Maynard,
MA.
This software is furnished under a license and may be used
and copied only in accordance with the terms of such license
and with the inclusion of the above copyright notice. This
software or any other copies thereof may not be provided or
otherwise made available to any other person. No title to
and ownership of the software is hereby transferred.
The information in this software is subject to change
without notice and should not be construed as a commitment
by Digital Equipment Corporation.
Digital assumes no responsibility for the use or reliability
of its software on equipment which is not supplied by
Digital.
Page 2
The following two problems will be fixed in a future
AUTOPATCH tape. If you patch the LINK sources keep an
unmodified copy as AUTOPATCHing LINK requires the use of
standard sources. The patches described here can also be
installed using DDT.
1. When loading a FORTRAN program containing SAVE
statements or blank COMMONs LINK will open
SYS:OVRLAY.REL whether or not /OVERLAY has been
specified. The following patch solves this problem
as well as a variety of other reported problems
(notably problems in loading DBMS) and we strongly
recommend its installation:
[Symptom]
When loading FORTRAN programs containing SAVE statements or blank
COMMONs:
1. LINK opens SYS:OVRLAY.REL even if the program being loaded doesn't
use overlays.
2. LINK gets an illegal memory reference while loading DBMS.
3. Spurious error messages mentioning overlays may be issued by LINK
even though the program being loaded doesn't use overlays.
[Diagnosis]
In order to be certain that variables in COMMON are preserved, even
for overlaid programs, the FORTRAN compiler always includes a Type
1045 block in the FORTRAN object code. LINK interprets this block as
a request for writable overlays and sets the "writable overlay" flag
in the global OVERLW.
[Cure]
LINK should not set the bit in OVERLW when a type 1045 block is seen
unless OVERLW is already nonzero ( i.e., that /OVERLAY has been seen. )
[FILCOM]
File 1) L5D:LNKHST.MAC[4,377] created: 1818 20-Jan-1983
File 2) DSK:LNKHST.MAC[4,77] created: 1424 27-Jan-1983
1)1 SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN/PY/MFB 6-Jan-83
1)
****
2)1 SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN/PY/MFB 27-Jan-83
2)
**************
1)1 DECEVR==2030 ;DEC EDIT VERSION
1)
****
2)1 DECEVR==2031 ;DEC EDIT VERSION
Page 3
2)
**************
1)5
****
2)5 ;2031 PY 27-Jan-83
2) ; Don't set the writable overlay bit when processing type 1045
2) ; blocks (FORTRAN SAVE statement) unless actually doing an
2) ; overlay load. Prevents undesirable searching of OVRLAY.REL
2) ; Routine: LNKNEW
2)
2)
**************
File 1) L5D:LNKNEW.MAC[4,377] created: 1739 06-Jan-1983
File 2) DSK:LNKNEW.MAC[4,77] created: 1419 27-Jan-1983
1)1 SUBTTL D.M.NIXON/DMN/JLd/TXR/JNG/DZN/PAH/PY 6-Jan-83
1)
****
2)1 SUBTTL D.M.NIXON/DMN/JLd/TXR/JNG/DZN/PAH/PY 27-Jan-83
2)
**************
1)1 DECEVR==2026 ;DEC EDIT VERSION
1)
****
2)1 DECEVR==2031 ;DEC EDIT VERSION
2)
**************
1)2
1)
****
2)2 ;2031 Don't set the writable bit in OVERLW unless actually doing overlays.
2)
**************
1)31 IORM T1,OVERLW ;[1704] REMEMBER THIS
****
2)31 ;**;[2031] Insert 1 Line after T.1045+4 Lines PY 27-Jan-83
2) SKIPE OVERLW ;[2031] DON'T SET UNLESS DOING OVERLAYS
2) IORM T1,OVERLW ;[1704] REMEMBER THIS
**************
========
The following DDT patch accomplishes the same thing. Note
that the character "$" is actually an altmode or escape.
The expression "$<" causes DDT to enter patch insertion mode
and terminating each line with a linefeed will automatically
open the next word of the patch area. After the terminating
"$>" DDT will type out the instructions automatically
inserted in the body of the code to transfer to the patch.
@
@GET SYS:LINK.EXE
Page 4
@INFORMATION VERSION
KL2137 - Gus The Languages System, TOPS-20 Monitor 5.1(5101)
TOPS-20 Command processor 5(712)
Program is LINK, version is 5.1(2030)
PDVs: Program name LINK, version 5.1(2030)
@DDT
DDT
T.1045+4/ IORM 1,OVERLW $<
PAT../ 0 SKIPE OVERLW <CR>
$>
^Z
@SAVE SYS:LINK.EXE 0 700
LINK.EXE.2 Saved
@
Page 5
2. Overlay users should be aware of the following problem
and include this patch if the problem is observed:
[Symptom]
LINK builds bad .EXE files when loading certain overlay programs. The
bad files are much smaller than a correct .EXE would be.
[Diagnosis]
A call to LS.IN is needed to map pages of the LC overflow file before
trying to write these pages.
[Cure]
Insert the call.
[FILCOM]
File 1) LDV:LNKHST.MAC[4,151] created: 1424 27-Jan-1983
File 2) DSK:LNKHST.MAC[4,77] created: 1403 04-Feb-1983
1)1 SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN/PY/MFB 27-Jan-83
1)
****
2)1 SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN/PY/MFB 3-Feb-83
2)
**************
1)1 DECEVR==2031 ;DEC EDIT VERSION
1)
****
2)1 DECEVR==2032 ;DEC EDIT VERSION
2)
**************
1)5
****
2)5 ;2032 PY 3-Feb-83
2) ; Allocate space in the LC overflow file before reading the
2) ; root node back in under TOPS-20.
2)
2)
**************
File 1) L5D:LNKXIT.MAC[4,377] created: 0955 07-Jan-1983
File 2) DSK:LNKXIT.MAC[4,77] created: 1348 04-Feb-1983
1)1 SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN/MFB/PAH/PY/HD 6-Jan-83
1)
****
2)1 SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN/MFB/PAH/PY/HD 3-Feb-83
2)
**************
1)1 DECEVR==2027 ;DEC EDIT VERSION
1)
Page 6
****
2)1 DECEVR==2032 ;DEC EDIT VERSION
2)
**************
1)6
****
2)6 ;2032 Allocate space with LC.IN before reading area from .OVL file.
2)
**************
1)9 LNKX0D: MOVN T1,T1
1) HRLZ T1,T1
****
2)9 ;**;[2032] Replace at LNKX0D PY 3-Feb-82
2) LNKX0D: ;[2032]
2) IFN TOPS20,< ;[2032]
2) PUSH P,T1 ;[2032] SAVE THE AC
2) MOVE T1,UW.LC ;[2032] GET THE UPPER BOUND
2) HRL T1,LW.LC ;[2032] GET THE LOWER BOUND
2) PUSHJ P,LC.IN## ;[2032] MAP IN THE WINDOW
2) POP P,T1 ;[2032] RESTORE THE AC
2) >;[2032] IFN TOPS20
2) MOVN T1,T1 ;[2032]
2) HRLZ T1,T1
**************
1)9 CAMG T1,PH+PH.LLN ;[1400] REACHED END YET?
****
2)9 ;**;[2032] Insert after LNKX0D+9 Lines PY 3-Feb-82
2) IFE TOPS20,< ;[2032] DON'T BLT ON THE -20
2) CAMG T1,PH+PH.LLN ;[1400] REACHED END YET?
**************
1)9 LNKX0E: HRL T1,LW.S1 ;ORIGIN
****
2)9 ;**;[2032] Insert before LNKX0E PY 3-Feb-82
2) >;[2032] END IFE TOPS20
2) LNKX0E: HRL T1,LW.S1 ;ORIGIN
**************
========
The following DDT patch accomplishes the same thing. Note
that the character "$" is actually an altmode or escape.
The expression "$<" causes DDT to enter patch insertion mode
and terminating each line with a linefeed will automatically
open the next word of the patch area. After the terminating
"$>" DDT will type out the instructions automatically
inserted in the body of the code to transfer to the patch.
@
@GET SYS:LINK
@INFORMATION VERSION
KL2137 - Gus The Languages System, TOPS-20 Monitor 5.1(5101)
TOPS-20 Command processor 5(712)
Program is LINK, version is 5.1(2030)
PDVs: Program name LINK, version 5.1(2030)
Page 7
@DDT
DDT
LNKX0D/ MOVN 1,1 $<
PAT../ 0 PUSH P,T1<LF>
PAT..+1/ 0 MOVE T1,UW.LC<LF>
PAT..+2/ 0 HRL T1,LW.LC<LF>
PAT..+3/ 0 PUSHJ P,LC.IN<LF>
PAT..+4/ 0 POP P,T1<LF>
PAT..+5/ 0 $>
LNKX0D#+12/ CAMG 1,PH+12 JFCL<LF>
LNKX0D#+13/ PJRST LNKX0E JFCL<LF>
LNKX0D#+14/ MOVE 1,PH+12 JFCL<LF>
LNKX0D#+15/ IOR. 1,IO.PTR+16 JFCL<LF>
LNKX0D#+16/ MOVE 2,1 JFCL<LF>
LNKX0D#+17/ SUB 2,LW.LC JFCL<LF>
LNKX0D#+20/ ADD 2,LC.LB JFCL<LF>
LNKX0D#+21/ CAMN 2,LC.UB JFCL<LF>
LNKX0D#+22/ PJRST LNKX0E JFCL<LF>
LNKX0D#+23/ MOVEM 2,LC.AB JFCL<LF>
LNKX0D#+24/ SETZM 1(2) JFCL<LF>
LNKX0D#+25/ HRLI 2,1(2) JFCL<LF>
LNKX0D#+26/ HRRI 2,2(2) JFCL<LF>
LNKX0D#+27/ BLT 2,@LC.UB JFCL<CR>
^Z
@SAVE LINK.EXE 0 700
LINK.EXE.3 Saved
@