Google
 

Trailing-Edge - PDP-10 Archives - BB-H138C-BM - 5-documentation/link.doc
There are 32 other files named link.doc in the archive. Click here to see a list.


LINK.DOC -- Changes from LINK 4A(1220) to LINK 5(1466)
12 April 1982






























COPYRIGHT (C) 1982 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.


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.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)       Page 2


1.0  SUMMARY

LINK is the linking loader  for  the  DECsystem-10  and  DECSYSTEM-20.
LINK  5  is  a  development  release of LINK including a number of new
features, internal changes, and bug fixes.

LINK 5 supercedes all previous versions.  It runs under all  supported
monitors,  and  has  been tested under TOPS-10 7.01, and under TOPS-20
releases 4 and 5.

LINK is documented in the  LINK  Reference  Manual.   This  manual  is
available  to  DECsystem-10  sites as part of volume 11 of the TOPS-10
Software  Notebooks,  or  separately  as  order  number   AA-0988C-TB.
DECSYSTEM-20  sites  can  find  this manual in volume 4 of the TOPS-20
Software Notebooks, or it can be ordered separately  as  order  number
AA-4183B-TM.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)       Page 3


2.0  EXTERNAL CHANGES

2.1  Changes To LINK

The following sections contain summaries  of  all  externally  visible
changes  that have been made to LINK since version 4A(1220).  Refer to
the file LINK.PCO for more information on specific edits and  LINK.DOC
for descriptions of new features.



2.1.1  Program Data Vectors - LINK-20 V5 implements two new  switches,
/PVBLOCK and /PVDATA, to enable loading a program data vector into the
user's program.



2.1.2  Performance Improvements - Large programs will load from 10  to
25% faster with LINK 5 than with LINK 4A.



2.1.3  /MAXNODE Switch - The /MAXNODE switch has been added to  permit
creating overlay structures with more than 128 links.



2.1.4  /NOREQUESTS Switch Changes - The /NOREQUESTS switch now accepts
the full radix-50 character set.



2.1.5  /SEVERITY Switch Changes - The  /SEVERITY  switch  no  waccepts
decimal rather than octal numbers.



2.1.6  /CPU Switch Changes. - Legal     keywords      now      include
KA10,KI10,KL10, and KS10.  Multiple CPU specifications are accepted.



2.1.7  Overlays And /SEGMENT - The  default  condition  for   non-root
overlay links is /SEGMENT:LOW.



2.1.8  High Segment Above 700000 - If  a  high  segment  begins  above
700000 LINK-20 will always generate an .EXE file for the load to avoid
having the Compatibility Package overwrite itself.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)       Page 4


2.1.9  /SYMSEG:HIGH - The command /SYMSEG:HIGH  no  longer  creates  a
high segment at 400000 if no high seg code has been seen.



2.1.10  Monitor Commands - The syntax ".R  LINK  commands"  or  "@LINK
commands" will result in the commands being passed to LINK.



2.1.11  Creation Time In .EXE Files - The proper creation time is  now
set for .EXE files.



2.1.12  PSECT Names - Forward references  to  PSECT  names  as  global
symbols are now allowed.



2.1.13  /SYMSEG Defaults - The  /SYMSEG   switch   now   defaults   to
/SYMSEG:LOW rather than /SYMSEG:HIGH.



2.1.14  Unresolved Start Addresses - If in library mode,  /START:LABEL
will cause the label to be searched for if undefined.



2.1.15  LNKCMX Message - The LNKCMX message will print only once.



2.1.16  DEBUG Switch - ALGOL is now a legal keyword, and  /DEBUG:ALGOL
will start ALGDDT.



2.1.17  /SET Switch - The /SET switch can be used  to  move  down  the
relocation counters for the .LOW.  and .HIGH.  segments.



2.1.18  /LIMIT Switch - The /LIMIT switch has been added.  This switch
permits  bounding  a  PSECT and prevents looping from accidental PSECT
overlaps.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)       Page 5


2.1.19  /MESSAGE Switch - The /MESSAGE switch in SCAN  works  in  LINK
now.



2.1.20  LNKLMN Message - The LNKLMN message now includes a filename.



2.1.21  /SUPPRESS Switch - This new  switch  is  used  to  undefine  a
previously defined global.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)       Page 6


2.2  Changes To The Overlay Handler

The following sections contain summaries  of  all  externally  visible
changes  that  have  been made to OVRLAY (the runtime overlay handler)
since  version  4A(50).   Refer  to  the  file  OVRLAY.PCO  for   more
information  on  specific  edits  and  LINK.DOC for information on new
features.



2.2.1  Writable Overlays - Overlay handler routines SAVOV.  and CLROV.
have been added to permit explicit saving of impure overlay links.



2.2.2  Bugfixes - Several minor bugfixes have been made.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)       Page 7


3.0  KNOWN BUGS AND DEFICIENCIES

The following list  includes  all  known  problems  with  LINK  as  of
3-Nov-81.  The list is divided into two parts.  The first is a list of
those bugs for which a solution is not currently known.  These will be
fixed  roughly in order of their importance, and the patches published
in the appropriate Software Dispatch.  The second part is  a  list  of
those problems for which there are no current plans to fix.  These are
restrictions in the product.



3.1  Problems To Be Fixed In The Near Future



3.1.1  /OVERLAY/SYMSEG - Specifying a /SYMSEG switch when building
an overlaid program may cause "I-O to Unassigned Channel" errors.



3.1.2  Inter-section Address References - In some instances the
section number of an inter-section address reference may be lost.



3.1.3  ASCII REL files - Reading ASCII .REL files may cause an
illegal memory reference.



3.1.4  Extended Addressing Restrictions -- DDT may not be loaded
into a nonzero section via /TEST, /DEBUG or /DDEBUG.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)       Page 8


3.2  Problems For Which No Solution Is Currently Planned.

     1.  If code or  data  that  contains  fixups  (external,  Polish,
         inter-psect  references,  etc.)  is overwritten at load time,
         LINK can get an illegal memory reference or go into  a  loop.
         This  can  happen  if  psects  overlap,  or  if  LOC or RELOC
         statements are used incorrectly in a MACRO program.  This  is
         a  restriction.   However,  see the description of the /LIMIT
         switch  for  methods  of  detecting   and   preventing   this
         situation.

     2.  Generation of  a  symbol  file  via  /SYFILE:  requires  that
         symbols be loaded with the program.  This is a restriction.

     3.  LINK does not read SWITCH.INI on a LOAD-class command.   This
         is a SCAN restriction.

     4.  On TOPS-20, logical names pointing  to  files  do  not  work.
         This is a restriction.

     5.  The switch /ONLY can cause ill-mem-refs  (  or  writing  into
         random  places  during fixup chain processing ) when a symbol
         is referenced in both low & high segments  and  /ONLY:LOW  is
         specified.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)       Page 9


4.0  INSTALLATION INSTRUCTIONS

To install LINK version 5 on your system, copy the files LINK.EXE  and
OVRLAY.REL  from the distribution tape to SYS:, and then copy the file
LINK.HLP from the distribution tape to HLP:.   This  can  be  done  by
mounting the tape labelled Distribution Tape on MTA0:, then typing the
following commands:

     R DUMPER
     TAPE MTA0:
     REWIND
     DENSITY 1600-BPI
     SKIP 2
     RESTORE DSK*:<*>LINK.EXE (TO) SYS:*.*.-1, -
     DSK*:<*>OVRLAY.REL (TO) SYS:*.*.-1, -
     DSK*:<*>LINK.HLP (TO) HLP:*.*.-1
     REWIND

To rebuild LINK from sources, mount  the  tape  labelled  Distribution
Tape on MTA0:, then type the following commands:

     R DUMPER
     TAPE MTA0:
     REWIND
     DENSITY 1600-BPI
     SKIP 3
     RESTORE DSK*:<*>*.*.* (TO) <self>*.*.*
     REWIND
     CTRL/C
     !At this point, you should TYPE LINK.CTL to see what it does.
     SUBMIT LINK.CTL/TIME/RESTART

The batch control file LINK.CTL contains the procedures  necessary  to
rebuild  LINK  and  OVRLAY  from  sources.  It may have to be modified
slightly to run at your installation, so you should  type  it  to  see
what it does before typing the SUBMIT command above.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 10


5.0  INTERNAL CHANGES

5.1  Changes To LINK

All changes  made  to  LINK  4A(1220)  to  produce  LINK  5(1466)  are
summarized  below.



1221     Allow monitor commands to include LINK commands, in the form
         .R LINK (commands) or @LINK commands.
         Routine: LNKSCN

1222     Allow the full Radix-50 character set in the argument of the
         /NOREQUESTS: switch.
         Routine: LNKPAR

1223     Make the argument to /SEVERITY: be decimal instead of octal. This is
         more consistent with the other message controlling switches, and the
         LINK manual.
         Routine: LNKPAR

1224     Check the format of polish blocks more carefully, complaining about
         invalid formats. Add the LNKNSO, LNKISM, LNKNAP and LNKJPB messages,
         remove the LNKISO message. LNKJPB is a warning so that FAIL programs
         will load.
         Routines: LNKOLD, LNKERR

1225     Force /UPTO: just below the high segment origin of the runtime OTS
         (unless user has specified /UPTO:). This keeps the symbol table (if
         one is loaded) from growing into the area of memory that the OTS will
         try to go. The program will still not be runnable but the user will get
         the correct message. Make the OTS origins compiler-specific instead of
         hard-wired 400000.
         Routine: LNKLOD

1226     Default /SEGMENT:LOW in all non-root overlay links. This keeps users
         from having to type it all the time, especially if /OTS:NONSHAR was
         specified (/OTS:NONSHAR defaults to /SEGMENT:DEFAULT for Fortran
         programs, frequently causing high segment code in non-root links).
         Routines: LNKOV1, LNKLOD

1227     Allow multiple COBOL-74 modules to be loaded without receiving an
         erroneous LNKCMC message. Broken by edit 1174.
         Routine: LNKLOD

1230     Rewrite DVSUP. to handle the complete problem of initializing an
         overflow file in the same area (structure and path) as its associated
         output file. Then make the area overflow routines use DVSUP. properly.
         This solves the problem of overflow and output files ending up on the
         wrong (and potentially non-existent) area.
         Routines: LNKFIO, LNKCOR, LNKOV1, LNKLOD, LNKPAR, LNKWLD

1231     Make sure the high segment is properly accounted for if only
         /SET:.HIGH.:n is seen, so that .JBHRL is properly set up.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 11


         Routine: LNKOLD

1232     See that overlay links do not lose their start addresses when symbolic.
         Broken by edit 1175.
         Routines: LNKLOD, LNKOV1

1233     See that RC.CV is not reset to RC.HL after a module if /SET:
         sets the relocation counter down.
         Routine: LNKOLD

1234     If there are multiple overlapped PSECTs, one PSECT name will be
         printed as garbage in some LNKPOV messages.
         Routine: LNKLOD

1235     Clear LOGSUB to avoid possible IO TO UNASSIGNED CHANNEL when
         the log file has already been closed.
         Routine: LNKXIT

1236     Teach LINK about KS10 CPUs.
         Routine: LNKPAR

1237     Make LNKCCD Message 'Fatal but continues', instead of 'Fatal'
         Routine: LNKOLD

1240     Fix the /CPU switch, broken since KL CPU was added. Make it
         accept multiple CPUs, and add error LNKCPU. Make switch
         available on TOPS-20.
         Routines: LNKPAR, LNKOLD, LNKWLD, LNKERR

1241     Make the /SET switch give the LNKZSV error if given with no
         arguments, instead of the fatal LNKISN error.
         Routine: LNKWLD

1242     Test for High Seg above 700000 on TOPS-20, and make LINK
         generate an EXE file if it is. This prevents LINK from
         trying to make PA1050 overwrite itself during the REMAP.
         Routines: LNKPAR, LNKXIT

1243     Make LINK handle left half fixups to a global symbol
         correctly (this case is confused with a global suppressed
         symbol).  No longer generates an LNKISP message when trying 
         to resolve the fixup.
         Routines: LNKPAR, LNKOLD

1244     Remove PA1050 from memory if user program is going to be run but
         is not in a .EXE file. Simulate the CORE UUO in the accumulators
         with a PMAP% JSYS, and PMAP PA1050 away in the phased code.
         Remove edit 644, which should not be in phased code.
         Routines: LNKPAR, LNKXIT

1245     Fix Typo in edit 1224
         Routine: LNKOLD

1246     Prevent a default high segment being generated if a /SYMSEG:HIGH
         appears before any high segment code. Programs which have high
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 12


         segments at other than 400000 will then load correctly.
         Routines: LNKLOD, LNKWLD

1247     Print LNKOSL message if /SYMSEG:HIGH or /SYMSEG:PSECT:
         appear before the /OVERLAY switch.
         Note: This edit requires edit 1246.
         Routine: LNKOV1

1250     Clear the date and time bits in the extended lookup/enter
         blocks in DVUPD. this keeps PA1050 from using the bits
         to set the time last written. (TOPS-20 only)
         Routine: LNKFIO

1251     Fix test in PG.SU so LINK will not attempt to expand windows
         beyond available memory.
         Routine LNKLOD

1252     Remove edit 1221 on TOPS-20. Rescan will not work because of
         a SCAN restriction.

1253     Remove edit 1233, which breaks COBOL programs.
         Routine: LNKOLD

1254     Update X macro in MAKLIB macro to use arguments C and D
         Since PROCESSORS macro now expects them.

1255     Make /SET: and rel block type 24 work when the PSECT name has
         been forward referenced as a global symbol.

1256     Add code to put processor type in P4 before QREENT is called in
         overlayed programs. Eliminates wrong decisions, possible
         ILL-MEM-REFs.

1257     If a program is overlaid, reset RC.HL for .ABS. to the highest
         absolute location in the root node. This solves problems when
         writing .EXE files.
         Routines: LNKLOW, LNKOV1, LNKXIT

1260     /SYMSEG with no argument (a non-preferred usage) should default
         to /SYMSEG:LOW, but defaults to /SYMSEG:HIGH after edit 1201
         Routines: LNKPAR

1261     If LINK determines that a program is too complex and needs an
         EXE file, many errors can occur, including bad a JOBDAT area,
         or an OPEN error on the EXE file.
         Routine: LNKXIT

1262     Make LNKCMX print once only.
         Routines: LNKLOD, LNKLOW

1263     Make expressions of the form: ABC=:XYZ## work when
         loaded in an overlay.
         Routine: LNKOV1
         
1264     Fix LINK so that /PLOT will not cause %LNKDLT error, or
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 13


         other problems. Broken by edit 1144
         Routines: LNKLOW, LNKPAR, LNKPLT, PLTGBL

1265     Make ALGDDT work with overlays by putting the .SYM file
         name in the first OWN block of an overlaid program.
         Routines: LNKLOD, LNKOV1

1266     Correct code so LINK won't loop infinitely when an overlay
         has a local symbol table so long LINK must read it in pieces.
         Routine: LNKOV1

1267     Teach LINK about /DEBUG:ALGOL and about ALGDDT.
         Routines: LNKPAR, LNKWLD, LNKXIT

1270     Put in a request for the start address if it is a symbol so
         it will be loaded if the module is loaded in /SEARCH mode.
         Routine: LNKWLD

1271     Make FORLIB load into the low segment by default if the main
         program is not a FORTRAN program.
         Routine: LNKLOD

1272     Fix bug in Edit 1244 which causes the PMAP% which is supposed
         to remove PA1050 to fail if the users program ends on the end
         of a page.
         Routine: LNKXIT

1273     Cause RC.HL in .HIGH. and .LOW. to refer to the highest
         addresses loaded in the current module, rather than the
         highest addresses loaded in the segment. Keep the highest
         location loaded in HP.S1 and HP.S2. Then at LNKXIT
         time, set RC.HL to be the highest address in the segment
         to be consistent for the .EXE file writer. This causes
         the current high and low segment values to be the highest
         in the module, rather than the highest in the segment,
         allowing users to /SET the LOW or HIGH segments down
         without disturbing REL files which count on the T.5LS
         and T.5THS adjustments. This edit supercedes edits
         1233 and 1253.
         Routines: LNKOLD, LNKLOW, LNKXIT

1274     Add code to expand the Polish stack if it is not
         large enough for a given Polish expression.
         Routines: LNKLOW, LNKOLD

1275     Fix core management bug which occurs if an area has
         overflowed to disk, has no pages in memory, and is
         being expanded on a VM system. This happens to the
         Algol symbols area if it has overflowed, causing
         the first AS area page to be swapped with the first
         LS area page, producing %LNKSFU errors.
         Routine: LNKCOR

1276     If a .REL file is being loaded /SEARCH and /SEG:HIGH,
         Don't set up the RC.TB tables for a second high segment
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 14


         in T.6 until sure the module will be loaded.
         Routine: LNKOLD

1277     If a /LINK switch is seen ending an overlay link, and
         no /NODE switch is seen before the next module is loaded
         print a fatal "LNKNSM /NODE switch missing" error.

1300     Implement the /LIMIT switch, as /LIMIT:NAME:ADDRESS
         where NAME is a psect name and ADDRESS is the upper
         bound of the psect, i.e. the first address where it
         is not legal to load the psect. If a psect  exceeds
         it's bounds,  inhibit  chained  fixups so that LINK
         will not hang if psects overlap unexpectedly.
         Routines: LNKPAR,LNKERR,LNKINI,LNKLOD,LNKLOW,LNKOLD
                   LNKWLD,LNKXIT

1301     Make the /VERBOSITY switch use the same flags as the
         /MESSAGE switch in SCAN. Add code to handle the case
         of /MESSAGE:NOPREFIX. Also change some messages at
         exit time to look at the verbosity bits.
         Routines: LNKPAR,LNKERR,LNKINI,LNKLOG,LNKLOW,LNKPAR
                   LNKSCN,LNKWLD,LNKXIT

1302     Fix problem with edit 1273 which makes LINK hang if
         no files are loaded.
         Routine: LNKXIT

1303     Change the LNKLMN message to include the file name.
         Routines: LNKOLD, LNKNEW

1304     Make TWOSEG work with Psects.
         Routines: LNKINI, LNKLOW, LNKOLD, LNKWLD

1305     Fix problem with edit 1273 which could cause low seg
         code not to be written to .EXE file if low seg overflows
         to disk.
         Routines: LNKLOD, LNKXIT

1306     Output LNKMPT error if psects and twoseg code mixed in
         the same module. 
         Routines: LNKLOW, LNKOLD, LNKERR

1307     Implement the /SUPPRESS switch. /SUPPRESS:SYMBOL will
         cause that symbol to be undefined even if it has been
         previously defined.
         Routine: LNKWLD

1310     Make the LNKOFS message use the long error text.
         Routine: LNKOV1

1311     Fix bug in edit 1301.

1312     Load a nonsharable OTS, default segment, if user
         specified /SYMSEG:HIGH
         Routine: LNKLOD
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 15



1313     Fix edit 730 so that LINK will not lose the /LINK
         switch or produce a fatal error message if the
         /DEBUG switch is not local to the same file as
         the /LINK switch or if the /LINK switch is global.
         Routine: LNKWLD

1314     If a program has more than 400 contiguous non-zero pages, and
         LINK has enough memory to keep more than 400 pages in core, it
         will not write these pages into the EXE file because the dump
         mode IOWD in the EXE file writer will go positive.
         Routine: LNKXIT

1315     Fix the MAKLIB macro to use bits for language types so that
         FORTRAN and Extended FORTRAN will work properly.
         Routines: LNKINI, LNKLOD

1316     With Edit 1305 installed, TWOSEG root nodes of overlaid
         programs will not be written to the .EXE file correctly.
         Routine: LNKOV2

1317     Fix calculation of .JBCOR which will be off by one page if
         the program low segment ends on a page boundary.
         Routine: LNKXIT

1320     Fix code at T3HOLD to know about new rel blocks and
         about ASCII text blocks. This allows compilers to
         generate code with new rel blocks or ASCII text blocks
         and to have it loaded /SEG:LOW even if they do not
         produce a high segment break in the type 3 block.
         Routine: LNKLOD

1321     Make SIMDDT work like ALGDDT. This means not loading
         a SIMDDT.REL, and starting the program at the re-enter
         address if a /DEBUG:SIMULA or /DEBUG:SIMDDT switch
         is seen. This edit requires edit 1267.
         Routines: LNKWLD, LNKXIT

1322     Remove a HALT from LNKMAP, which occurs if a PSECT
         description crosses the end of a window and the LS area
         has overflowed. Handle this case by moving the window.
         Routine: LNKMAP

1322-1377        Reserved for Maintenance.

1400     Implement writable overlays for Fortran SAVE statement.
         . Use OVRPAR.MAC for overlay file definitions.
         . Add DI.WPT, DI.FLG to overlay file directory, CS.OVL to control
           section.
         . Add writable link table to the overlay file.

1401     Performance enhancements to overflow and .EXE file handling.
         Routines: LNKPAR,LNKLOW,LNKOLD,LNKLOD,LNKCOR,LNKXIT

1402     Performance enhancements to .REL file handling.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 16


         Routines: LNKOLD,LNKLOD,LNKLOW

1403     Streamline the initialization code on Tops-20.
         Routine: LNKINI

1404     New .REL block types T.1120-T.1137 for load-time arg type checking.
         Routines: LNKNEW,LNKLOD

1405     New .REL block types T.1010-T.1034.
         Routine: LNKNEW

1406     Remember to get and store the .REL file's creation time and date for
         /MAP. Broken in edit 1402.
         Routine: LNKFIO

1407     Fix the opening of overlay files, broken in edit 1401.  Also fix
         PPNs in command lines, broken in the same edit.
         Routine: LNKFIO

1410     Clear T3 before the GETJI in LNKINI added in edit 1403.
         Routine: LNKINI

1411     Add AT.NC and AT.NC PSECT attributes for extended addressing.
         Routine: LNKPAR

1412     Make file overflow routines use nonzero sections if the user's
         program is being loaded into nonzero sections.
         Routine: LNKCOR,LNKOLD,LNKNEW

1413     Add code in LNKMAP to handle native overflow files properly.
         Routine: LNKMAP


1415     Write ALGOL .SYM files on channel TC, not channel DC.
         Routine: LNKXIT

1416     Put an ERJMP after the GTFDB in DVLKP. so asking for files
         on NUL: doesn't cause an illegal instruction trap.
         Routine: LNKFIO

1417     For TOPS-20, skip T.14 block correctly instead of clearing
         buffer.
         Routine: LNKOLD

1420     Save the address in T2 accross a call to the E$$FTH error.
         Routine: LNKLOD

1421     Display the creation date for the .REL file correctly in
         maps -- broken when nativizing .REL file input.
         Routine: LNKOLD

1422     Add PASCAL to the list of supported libraries.
         Routines: LNKPAR

1423     Implement Program Data Vectors.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 17


         Routines: LNKPAR,LNKLOW,LNKWLD,LNKOLD,LNKXIT,LNKNEW

1424     Implement /MAXNODE.
         Routines: LNKPAR,LNKWLD,LNKOV1

1425     Extended addressing support code under FTFRK2 feature test.
         Routines: LNKOLD,LNKXIT,LNKCOR,LNKINI

1426     Order the routines in LNKNEW correctly and delete duplicate T.1042-
         T.1044 introduced during a merge.

1427     Put an ERJMP after the PDVOP% JSYS to remove LINK's own PDV to
         avoid ?Illegal instruction... on pre-Release 5 TOPS-20 systems.
         Routines: LNKXIT

1430     Remove .NWBLK conditional code forcing an error from type 1060
         MAKLIB trace blocks.
         Routines: LNKNEW

1431     Correct typo in comparisons at PDV2:, preventing correct handling
         of /PVDATA:PROGRAM, /PVDATA:CBLOCK and /PVDATA:START.
         Routines: LNKWLD

1432     Make ?LNKNSM /NODE SWITCH MISSING AFTER /LINK a warning, not an
         error -- some programs that loaded perfectly well before are
         prevented from doing so by making this an error.
         Routines: LNKERR, LNKLOD

1433     Distinguish COBOL-68,COBOL-74 and new COBOL for possible future
         COBOL release.
         Routines: LNKLOD,LNKERR,LNKPAR

1434     New Blocktype 1004 for byte pointer initialization.
         Routines: LNKLOW,LNKLOD,LNKNEW,LNKERR

1435     PASCAL library search and debugger support.
         Routines: LNKPAR,LNKLOD,LNKLOW,LNKERR,LNKWLD

1436     Use the connected directory, not the logged-in directory,
         in the MYPPN global under TOPS-20. Fixes ALGOL symbol file
         lookup, which was broken by edit 1407.
         Routines: LNKINI

1437     Defer detroying the LC overflow file under TOPS-20 until the
         last possible moment.
         Routines: LNKXIT

1440     Apply edits 1120,1237 and 1240 to blocks in LNKNEW.
         Routines: LNKNEW

1441     Now that LNKNSM is a nonfatal error be sure it returns properly.
         Routines: LNKLOD

1442     Prevent the attempt to write out section-zero pages on the first
         call to LC.OUT when a nonzero-section program is being loaded.
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 18


         Also enforce some restrictions on nonzero-section programs.
         Routines: LNKCOR,LNKWLD,LNKLOW,LNKOLD
1443	Make sure LINK-10 doesn't have the program data vector .REL
	block code.
	Routines: LNKNEW

1444	Make sure all new n-bit relocation blocks coexist with .HIGH.
	and .LOW. correctly.
	Routines: LNKNEW

1445	Correct typo in POINT pseudo-op under T.1004 block support.

1446	Fix bad dates in MAP files on the -20.

1447	Move /MAXCODE code into LNKWLD so the -10 multiseg LINK
	builds again.

1450	Define PRGFRK symbol for fork handle, build nonzero sections
	in own fork.

1451	When searching PASLIB force load to low segment as default.


1452	Lengthen LITYPE dispatch table to include all the new blocks.
	Also handle TWOSEG programs correctly if the highseg is
	considered to have psect index 2 in the new blocks.

1453	Fix calculation of data block length in T.11XX.

1454	Calculate default SYMLIM correctly.

1455	Fix infinite loop in TTLLUP in LNKXIT.
	Modules: LNKXIT

1456	Change to T.112X and T.113X block definition: only one
	relocation block word, since only three data words are
	relocatable.
	Modules: LNKNEW

1457	LINK-10 edit.


1460	Turn off UUO simulation for programs in nonzero sections to avoid
	troubles with START and DDT EXEC commands and prevent any JOBDAT
	initialization.
	Modules: LNKXIT

1461	Don't do an OPENF on the .EXE file JFN if an SSAVE JSYS is going
	to use it.
	Modules: LNKFIO

1462	Add JOVIAL to list of known processors.
	Modules: LNKPAR

1463	Restructure reading of the FXSPTR section-specific fixup data.
	Also don't lose the section number in doing Type 11 polish stores.
	Modules: LNKLOD, LNKOLD

1464	Get the right window for the PDV when putting one in a non-zero
	section.
	Modules: LNKXIT

1465	Change "Extended Fortran" to "G-Floating Fortran" in .MAP
	file output.
	Modules: LNKPAR

1466	Don't lose section numbers in inter-psect references.
	Modules: LNKOLD
LINK.DOC --    Changes from LINK 4A(1220) to LINK 5(1466)      Page 19


5.2  Changes To OVRLAY

All changes made  to  OVRLAY  4A(50)  to  produce  OVRLAY  5(101)  are
summarized  below.   Refer  to  the  file OVRLAY.PCO for more detailed
information on specific edits.


51       Fix forward reference to local label TIME, which subsequently drags
         in and defines the TIME JSYS.

52-54    Superceded in Edit 5(100).

55       Fix off-by-one bug when relocating overlays which have pointers to
         other nodes which are not relocated.

56-100   Reserved for maintenance.

100      Implement writable overlays.
         . On initialization, detect a potentially writable overlaid program and
           open nnnOVL.TMP.
         . Move overlay file definitions to OVRPAR.MAC for use by OVRLAY and
           LINK.
         Bugs fixes as a consequence of this edit:
         . File names, extensions, or SFD names longer than 6 characters in calls
           to INIOVL or LOGOVL could result in a badly parsed file specification
           or worse.
         . Closing the log file with CALL LOGOVL() never freed the buffer space
           because ROT was used as the FUNCT. function code rather than F.ROT.
         . [0,0] is not suppressed when a file specification is printed.
         . On TOPS-20, a CORE UUO is done even if UUO simulation is completely
           turned off.

101      Save and restore T0 over the I/O call just before RP1.