Google
 

Trailing-Edge - PDP-10 Archives - FORTRAN-10_Alpha_31-jul-86 - link.doc
There are 32 other files named link.doc in the archive. Click here to see a list.


LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0(2376)
January 1986






























COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1983,  1986.   ALL  RIGHTS
RESERVED.


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                                                        Page 2


LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2376)





1.0  SUMMARY

LINK is the linking loader for the DECsystem-10.  LINK version 6.0  is
a  development  release designed to provide new features, enhancements
to existing features,  internal  changes,  and  support  for  extended
programs.  It contains long symbol support and several new REL blocks.

LINK version 6.0 supercedes all previous versions.  It runs under  all
supported monitors, and has been tested under TOPS-10 7.02 and 7.03.

LINK is documented in the  LINK  Reference  Manual.   This  manual  is
available  as  part of volume 13 of the TOPS-10 Software Notebooks, or
separately as order number AA-0988D-TB.
LINK.DOC                                                        Page 3


2.0  EXTERNAL CHANGES

2.1  Changes To LINK

The following sections contain  summaries  of  all  important  visible
changes that have been made to LINK since version 5.1(2030).  Refer to
the section on internal  changes  for  more  information  on  specific
edits.

     1.  Extended addressing support.

     2.  Better error messages.  The following new messages have  been
         added:


         Suffix Lev Sev Standard Message Text

         CBO    31  31  Cannot build overlays outside section zero

         CCE    8   8   Character Constant not word aligned in call to
                        routine  [routine] called from module [module]
                        at location [address]

         CMP    31  28  Common [symbol] declared  in  multiple  psects
                        {Detected in module [symbol] from file [file]}

         COE    8   8   Both  CONCATENATE   and   OVERLAY   attributes
                        specified for psect [name]

         MMF    31  31  Memory manager failure

         RWA    8   8   Both   READ-ONLY   and   WRITABLE   attributes
                        specified for psect [name]

         STL    31  31  Symbol too long

         UIE    31  31  Unexpected   internal   error   during   error
                        processing

     3.  Support  of  symbols  up  to  72  characters  long  and  case
         differentiation   in   symbols.   This  includes  .REL  block
         support, entry and display at command level, but no  debugger
         support.

     4.  Multi-section FORTRAN common blocks.

     5.  New switches:

         /PSCOMMON:psect:common Cause the FORTRAN  common  having  the
          name  "common"  to  be  loaded into the specified psect.  If
          "common" is omitted the "blank  common"  is  assumed.   This
          switch must precede any attempt to load the specified common
          and must also precede use of the /COMMON switch in declaring
          the size of the common.
LINK.DOC                                                        Page 4


         /REDIRECT:lpsect:hpsect Causes LINK to load low segment  code
          into the psect "lpsect" and high segment code into the psect
          "hpsect".  Either "lpsect" or "hpsect" may be  omitted,  and
          the second colon is optional if "highpsect" is omitted.

     6.  Paging of argument typechecking data so that  larger  FORTRAN
         77 programs may be loaded.

     7.  Long PSECT Names - LINK now supports long  psect  names  with
         the  same restrictions that apply to long symbol names.  This
         feature is supported for switches which require a PSECT  name
         as an argument and with type 1050 REL blocks.

     8.  Map File - This map file format now accommodates long symbols
         and  is therefore slightly different from the format produced
         by LINK version 5.1.




2.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.

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


3.0  INSTALLATION INSTRUCTIONS

To install LINK version 6 on your system,  copy  the  files  LINK.EXE,
LNKSCN.EXE,    LNKLOD.EXE,    LNKMAP.EXE,    LNKXIT.EXE,   LNKOV1.EXE,
LNKOV2.EXE,  LNKERR.EXE,   LNK999.EXE,   AND   OVRLAY.REL   from   the
distribution  tape  to  SYS:,  and  then  copy  the files LINK.HLP and
LINK.DOC from the distribution tape to  HLP: and  DOC:,  respectively.
This  can  be  done by mounting the tape labelled Distribution Tape on
MTA0:, then typing the following commands:

     R BACKUP
     TAPE MTA0:
     REWIND
     DENSITY 1600
     RESTORE SYS:=DSKB:[10,7,LINK]*.EXE, -
     SYS:=DSKB:[10,7,LINK]OVRLAY.REL, -
     HLP:=DSKB:[10,7,LINK]LINK.HLP, -
     DOC:=DSKB:[10,7,LINK]LINK.DOC

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

     R BACKUP
     TAPE MTA0:
     REWIND
     DENSITY 1600
     RESTORE [self]=DSKB:[10,7,LINK]*.*

(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                                                        Page 6


4.0  INTERNAL CHANGES


2200 Expand the address field in the fixup blocks built by  SY.CHP  to
     30  bits.   Make FXSPTR a static array, and make section zero low
     segment code use the extended addressing code.  Keep the LS  area
     chain  seperate from the LC area chains.  Fix type 2 block fixups
     (other than right half) in non-zero sections.  Routines:  LNKPAR,
     LNKLOW, LNKCOR, LNKLOD, LNKNEW, LNKOLD


2201 Use the correct deferred fixup for the fullword replacement store
     operator in the type 11 polish block.  Routine:  LNKOLD


2202 Change the calling convention for the xx.IN and  xx.OUT  routines
     to  use  T1  and  T2  as 30 bit addresses for the lower and upper
     bounds, instead of T1  as  the  lower,,upper  bounds  as  18  bit
     addresses.  Remove the FTFRK2 conditional, as it is always on for
     TOPS-20.   Remove  the  low  segment  global  NONZER,   and   all
     references  to  it.  Use the xx.IN and xx.OUT routines instead of
     bare PMAPs when possible, since these routines know about  fixups
     and  about  section  creation.  Remove code from LH.DMP, since it
     does not need to create sections (they will be created by LC.IN).
     Use  the  TOPS-10 code for initialization for reading the LS area
     for the symbol table, since it is simpler and costs at  most  one
     extra  PMAP.   Add  the LNKCCS cannot create section message, and
     the LNKMMF Memory Manager Failure  message.   Remove  some  error
     messages  which  can no longer occur.  Routines:  LNKD20, LNKT20,
     LNKPAR, LNKLOW, LNKCOR, LNKERR, LNKFIO, LNKLOD,  LNKMAP,  LNKOLD,
     LNKOV1, LNKWLD, LNKXIT


2203 Keep the section numbers of relocated halfwords in  the  type  11
     block.   Clean up the block and remove an offensive "HALT".  Also
     turn on and fix the link (type  12)  store  operator.   Routines:
     LNKLOD, LNKOLD


2204 Don't lose the section  number  when  doing  type  10  fixups  in
     non-zero sections.  Routine:  LNKOLD


2205 Allocate FORTRAN COMMON blocks in the current psect when  loading
     psects.   Load  absolute addresses in a psect if they fit in one.
     Allow common blocks larger than a section, and symbolic  non-zero
     section  addresses.   Affects  the  type 1, 20, 21, 1004, and the
     T.1010-T.1034 blocks.  Routines:  LNKNEW, LNKOLD, LNKWLD


2206 Set read-only attributes correctly for non-zero  section  psects.
     Routine:  LNKXIT


2207 Make psect indices consistent  between  old  and  new  style  REL
LINK.DOC                                                        Page 7


     blocks.  Routines:  LNKINI, LNKOLD


2210 Reserve a static storage area in the low seg to hold long  symbol
     names for calls to TRYSYM.  Routines:  LNKPAR, LNKLOW


2211 Add /NOJOBDAT switch to  suppress  all  of  JOBDAT  (hiseg  too).
     Revise  automatic  JOBDAT suppressor to check FXSBIT, not EXTFLG.
     Routines:  LNKPAR, LNKXIT, LNKLOW, LNKWLD


2212 Fix the type 1072 long polish block.  Routines:  LNKPAR,  LNKERR,
     LNKLOD, LNKNEW, LNKOLD


2213 Fix off by one bug when  setting  the  section  bits  in  FXSBIT.
     Routine:  LNKCOR


2214 Add 30 bit fixups.  Allow fullword chained fixups to use a 30 bit
     address chain.  Fix a bug involving section defaulting of chained
     fixups  in  relocatable  overlays.   Routines:   LNKPAR,  LNKCOR,
     LNKLOD, LNKOLD, LNKOV1


2215 Fix a wrong AC usage and an off by one caused by edit 2202.  Also
     properly  unmap  LS  area pages when printing a load map (affects
     /MAP:NOW) and don't BLT pages to zero  if  they  have  just  been
     unmapped  (performance  improvement).  Routines:  LNKCOR, LNKLOD,
     LNKMAP, LNKOLD


2216 Add or fix long symbol support in TRYSYM, INSRT,  LS.ADD,  SY.QS,
     and  SY.GS.   Make LNKMAP and LNKWLD type long symbols correctly.
     Remove the LNKESN message.  Routines:   LNKERR,  LNKHSH,  LNKLOD,
     LNKLOG, LNKMAP, LNKOLD, LNKWLD


2217 Check  character  constant  descriptors  for  word  aligned  byte
     pointers  and  make sure the section number is added to addresses
     before calls to SGCHK.  in the COESPC routine.  Routine:  LNKLOD


2220 More long symbol support.  Add support for typing long symbols in
     commands.   Fix  all switch processors to handle them.  Make Long
     symbols legal in all routines which can receive them from  switch
     processors.   Fix  the  map to display these correctly.  The long
     symbols supported include globals, common names, and psect names.
     Routines:    LNKPAR,  LNKLOW,  LNKLOD,  LNKMAP,  LNKOLD,  LNKSCN,
     LNKWLD, LNKXIT


2221 Remove a HLL at COESP2+4  so  that  the  section  number  is  not
     destroyed and the call to SGCHK.  works.  Routine:  LNKLOD
LINK.DOC                                                        Page 8


2222 Implement the type 1050, 1051, and 1052 rel  blocks.   Make  LINK
     complain  if conflicting psect attributes are seen.  Fix a bug in
     edit 2220 which causes the attributes to be  set  wrong  for  new
     psects  with the /SET switch.  Routines:  LNKERR, LNKNEW, LNKOLD,
     LNKWLD


2223 Implement /REDIRECT  and  rel  block  1131.   Routines:   LNKPAR,
     LNKLOW, LNKNEW, LNKOLD, LNKWLD


2224 Change QREENT so that an extended addressing program will  get  a
     reentrant  OTS  unless  the  user  explicitly says /OTS:NONSHARE.
     Also don't give a reentrant OTS in section zero if the user typed
     /PVBLOCK:HIGH  even  if  there  is no high segment yet.  Routine:
     LNKLOD


2225 Fix  /PVDATA:VERSION:SYMBOL,  broken  by  edit  2220.    Routine:
     LNKWLD


2226 Fix up support code for long /INCLUDE and /EXCLUDE so long blocks
     get  returned  properly.   Also,  don't do a long compare for the
     title in a type 6 block, since it  is  always  short.   Routines:
     LNKLOD, LNKOLD


2227 Add /PSCOMMON:PSECT:COMMON to allow specification of which  psect
     the  /COMMON  switch  should  place a common block in.  Routines:
     LNKPAR, LNKLOW, LNKLOD, LNKWLD


2230 Check for a common block allocated in a  psect  which  cannot  be
     addressed by a psect which needs it, give ?LNKCMP error if found.
     Routines:  LNKERR, LNKOLD


2231 Fix typo in edit 2223 which causes ?LNKRUM if more than one  type
     1131 block is seen.  Routine:  LNKNEW


2232 Expand edit 2211 to not touch  .JBREL  if  user  said  /NOJOBDAT.
     Routine:  LNKXIT


2233 Make sure that RC.CUR is  non-zero  if  psects  have  been  seen.
     Routine:  LNKOLD


2234 Fix /PVDATA:VERSION:CONSTANT,  broken  by  edit  2220.   Routine:
     LNKWLD


2235 Give a fatal error  if  a  user  attempts  overlays  in  non-zero
LINK.DOC                                                        Page 9


     sections.  Routines:  LNKOV1, LNKCOR, LNKERR


2236 Don't mess up the stack with long names in the type  1131  block.
     Routine:  LNKNEW


2237 Implement PDV memory maps.  Routines:  LNKXIT, LNKLOW, LNKPAR


2240 Don't attempt to merge chains if the old one starts at section,,0
     since it can't be resolved once chained.  Routine:  LNKOLD


2241 Setup P1 and P2 even if /NOJOBDAT was specified.  Affects  DEBUG.
     Routine:  LNKXIT


2242 Create sections for psects, even if nothing has  been  stored  in
     them.  Routines:  LNKCOR, LNKLOD


2243 Fix off-by-one bugs in edit 2242, add code which makes sure  that
     RC.HL is always at least RC.CV.  This is because RC.HL may not be
     updated if using /REDIRECT.  Routine:  LNKLOD


2244 Handle psect breaks which for psects which are over  one  section
     long correctly in the type 23 block.  Routine:  LNKOLD


2245 Implement PDV symbol table vector.   Routines:   LNKXIT,  LNKLOW,
     LNKPAR, LNKWLD


2246 Patch 1070 code so the additive and chained fixups  work  in  all
     cases.  Routine:  LNKNEW


2247 Add code to use SPLFK% JSYS.  Build the program  in  an  inferior
     fork.   Always  use  SSAVE%  on TOPS-20, put the .EXE file writer
     under a TOPS-10 conditional.  Don't use .LOW.  unless code  or  a
     JOBDAT  is  actually  loaded  into  it.   Implement the rules for
     deciding whether  a  JOBDAT  should  exist.   Routines:   LNKLOW,
     LNKCOR,  LNKFIO,  LNKINI, LNKLOD, LNKOLD, LNKOV1, LNKOV2, LNKWLD,
     LNKXIT


2250 Be smarter about PDV space allocation.  Fix  bug  in  memory  map
     which  didn't  set attributes correctly in a certain case.  Don't
     say there's a PDV  when  creating  an  EXE  file  after  the  PDV
     wouldn't  fit.   Fix bug with /NOJOBDAT that deleted execution if
     user program set  .JBERR.   Don't  diddle  .JBCOR  if  /NOJOBDAT.
     Routines:  LNKXIT, LNKPAR, LNKLOW
LINK.DOC                                                       Page 10


2251 Map  out  all  low  segment  pages  after  building  an  overlay.
     Routine:  LNKOV1


2252 Don't overwrite the symbol bits in the switch blocks when storing
     a local switch.  Routine:  LNKWLD


2253 Clear the relocatable bit for .LOW.  when doing a  /SEG:LOW  high
     segment with a FORTRAN style type 3 block.  Routine:  LNKOLD


2254 Change the 18 bit  fields  for  the  next  title  block,  segment
     origins and breaks, and psect pointers to 30 bit fields in the LS
     area.  Change the pointers to these fields to  also  be  30  bits
     wide.   Remove  the  FAIL  block header chain, as it is not used.
     Routines:  LNKPAR, LNKLOW, LNKCOR, LNKINI, LNKMAP, LNKNEW, LNKOLD


2255 Change all pointers to the LS area to be 30 bit.  Replace  LSTSYM
     with  two  words, LSTGBL and LSTLCL, and change all references to
     it.  Don't pass the pointers around in W3, instead get them  from
     the globals.  Make the fixup block have the global pointer in the
     second word and the local pointer in the third  word.   Redo  the
     polish  block  code to store the section number of the LS area in
     the op code, similar to what edit 2203  did  for  memory  fixups.
     Routines:  LNKLOW, LNKCOR, LNKLOD, LNKNEW, LNKOLD, LNKOV1


2256 Make the runtime symbol table module headers  code  use  the  new
     style segment breaks.  Routine:  LNKXIT


2257 Add generic JSYS error handling mechanism (subroutine and macro).
     Routines:  LNKPAR, LNKLOW, LNKLOG, LNKERR


2260 Change various aspects of previous edits per  inspection:   don't
     execute  non-zero (/NOJOBDAT) program if there are errors, always
     make undefined symbol table vector entry  if  there's  a  defined
     table.  Routine:  LNKXIT


2261 Fix off-by-one in non-zero page attribute setting code.  Routine:
     LNKXIT


2262 Implement the type  1160  sparse  data  block.   Don't  create  a
     section  just  because  a  zero length psect is in it.  Routines:
     LNKPAR, LNKLOD, LNKNEW, LNKOLD, LNKOV1


2263 Fix deferred thirty bit additive fixups,  which  are  incorrectly
     treated as chained fixups instead.  Routine:  LNKLOD
LINK.DOC                                                       Page 11


2264 Type the module name in the LNKCCS message.  Fix  up  the  LNKOxx
     and  LNKIxx errors, add JSYS error typeout.  Don't throw away the
     section number of the symbol in the type one block.  Fix up  some
     short  error  texts  in  LNKERR.   Fix a typo in the LNKPMA error
     which caused it  to  type  out  as  LNKPMC.   Routines:   LNKCOR,
     LNKERR, LNKLOD, LNKOLD


2265 Don't set attributes of null read-only psects.  Routine:  LNKXIT


2266 Allow long symbols for argument typechecking.  Routines:  LNKLOD,
     LNKNEW


2267 Fix bug in LNKHSH when short symbol is passed as long.  Don't try
     to compensate for bug in LNKLOD.  Routines:  LNKHSH, LNKLOD


2270 Put argument typechecking blocks in a pagable area.  Fix a bug in
     edit  2262  which  causes bad character fixups in large programs.
     Routines:  LNKPAR, LNKLOW, LNKCOR, LNKLOD, LNKNEW, LNKOV2


2271 Fix default for /ERRORLEVEL with no arguments.  Fix  the  maximum
     values  for  /ERRORLEVEL,  /LOGLEVEL,  and  /SEVERITY.   Routine:
     LNKPAR


2272 Set up defaults for /REDIRECT, in case psect is not specified  in
     the switch or type 1131 block.  Routines:  LNKNEW, LNKOLD, LNKWLD


2273 Fix  type  12  blocks,  make  them  work  in  non-zero  sections.
     Routines:  LNKLOD, LNKOLD



2274 Fix some error messages in LNKXIT.   Also  don't  try  to  SSAVE%
     sections above the highest which exists.  Routine:  LNKXIT


2275 Don't let long  symbol  hash  come  up  with  a  value  of  zero.
     Routine:  LNKHSH


2276 Improve typeout for /COUNTERS so that it tabs  correctly  in  the
     presence of long symbols or big addresses.  Routine:  LNKWLD


2277 Implement new /DEBUG code for extended programs.   Load  XDDT  or
     UDDT  according  to  what the user program looks like.  Routines:
     LNKPAR, LNKLOW, LNKWLD, LNKERR, LNKXIT
LINK.DOC                                                       Page 12


2300 Remove F40 code and long error messages.  Conditional  or  remove
     long  errors  which  are  not  needed.   Fix  a  problem with the
     definition of ERSTR, which is a forward referenced local and also
     a  JSYS  name.   Remove  FTFRK  code.  Routines:  LNKPAR, LNKLOW,
     LNKCOR, LNKINI, LNKLOD, LNKLOG, LNKSUB, LNKWLD


2301 Fix  up  error  messages  involved  in  TOPS-20   native   files.
     Routines:    LNKPAR,  LNKLOW,  LNKCOR,  LNKERR,  LNKFIO,  LNKLOD,
     LNKLOG, LNKNEW, LNKOLD, LNKXIT


2302 Fix off-by-one bugs in LC.IN  and  LC.OUT.   Was  allocating  n-1
     pages in all but boundry cases.  Routine:  LNKCOR


2303 Fix problem with non-symbolic type 1004 blocks in  wake  of  edit
     2262.  Routine:  LNKNEW


2304 Make various changes per inspection:  add long error messages for
     new  DDT  errors,  change  some  labels,  move a macro, use local
     instead of global temporary storage.  Routines:  LNKLOG,  LNKPAR,
     LNKERR, LNKXIT, LNKLOW


2305 Make 1070 blocks  and  1002  blocks  handle  long  symbol  names.
     Allocate  storage  for  a long symbol used as a value.  Routines:
     LNKNEW, LNKLOD, LNKOLD, LNKLOW


2306 Implement long PDV names.  Make /PVDATA:VERSION  take  a  version
     number  word.   Implement  the  EXPORT  keyword  as a synonym for
     START.  Make /PVDATA:MEMORY work.  Put the PDV symbol  vector  in
     the  same  psect  as  the  symbol  table so it's attributes won't
     conflict.  Put the PDV before the symbol table if they are in the
     same  psect.  Use a fullword for the symbol table length.  Create
     a PDV by default for TOPS-20 style programs.  Routines:   LNKPAR,
     LNKLOW, LNKINI, LNKSCN, LNKWLD, LNKXIT


2307 Remove some incorrect tests which generate  LNKPEL  errors.   Fix
     argument typechecking code which could create a bad SIXBIT symbol
     for six character names.  Routines:  LNKNEW, LNKOLD


2310 Implement the type 1074 long common name  rel  block.   Routines:
     LNKLOD, LNKNEW


2311 Fix PDVs in high segment, or with symbol vector in high  segment.
     Set   bit  zero  when  appropriate  for  symbol  vector  pointer.
     Routine:  LNKXIT
LINK.DOC                                                       Page 13


2312 Allow PDV names with $, ., % not in quotes.  Make sure  the  name
     is  ASCIZ.  Make sure the PDV map address is always stored in the
     PDV.  Routines:  LNKSCN, LNKXIT


2313 Make character data (types  1004  and  1160)  work  in  overlays.
     Routine:  LNKNEW


2314 Handle /DEBUG when SPLFK% fails at LNKXIT  time.   Allow  special
     case  of DDTing LINK when user program also wants UDDT in section
     0.  Remove LINK's PDV before GET%ing  user  program.   Clear  PSI
     table  addresses  left  over  from  PA1050  when  exiting to user
     program.  Routines:  LNKPAR, LNKXIT


2315 Add {JSYS error text} for CLD, CSP, and DNA error  documentation.
     Routine:  LNKERR

2316 Fix incorrect test which causes spurious LNKMEF errors.  Routine:
     LNKOV1


2317 Fix edit 2247 to save copy-on-write  page  attributes  correctly.
     Routine:  LNKXIT


2320 Create empty read-only pages when necessary.  Routine:  LNKXIT


2321 Fix a problem with moving the HC area when /SEG:LOW or /REDIRECT.
     Routine:  LNKCOR


2322 Make LNKCCE a fatal error and add  long  error  text.   Routines:
     LNKLOD,LNKERR


2323 Add case sensitive symbol typein and typeout, using "/"  and  "\"
     as case shifters.  Routines:  LNKLOG, LNKSCN


2324 Expand edit 2064 to cover thirty-bit chained fixups.   Supercedes
     edit 2064.  Routine:  LNKOLD,LNKNEW


2325 Add another case to the TOPS-20 editable messages,  and  fix  one
     which is incorrect.  Routine:  LNKLOG


2326 Make    1003    (long    title)    blocks    work.      Routines:
     LNKNEW,LNKLOW,LNKPAR,LNKOLD


2327 Don't convert external psect index to internal  twice.   Routine:
LINK.DOC                                                       Page 14


     LNKNEW


2330 Add TOPS-20 conditionals where needed.  Replace a label which was
     accidentally removed.  Add xx.IN and xx.OUT routines for TOPS-10.
     Add missing angle brackets in LNKERR.  Routines:  LNKLOW, LNKCOR,
     LNKERR, LNKLOG, LNKXIT


2331 When  returning  the  secondary  triplet  after  fixups,  if  the
     secondary  is not the last one move the other secondaries up, and
     return the last one.   This  will  keep  the  remaining  triplets
     contiguous.  Routine:  LNKLOD


2332 Get fullword value for symbol fixups.  Routine:  LNKOLD


2333 Make the 1070 code set the fixup block flags in  all  cases  when
     processing a fixup request.  Routine:  LNKNEW


2334 Fix symbol typein when there is a non-symbolic default.  Use  the
     symbol  typeout  routine for errors.  Fix /PVDATA:VERSION with an
     octal numeric argument.  Routine:  LNKSCN


2335 Don't allocate space for the PDV memory map or symbol  vector  if
     not actually building them.  Re-install some code which is needed
     on TOPS-10.  Use nnnLNK if  no  better  PDV  name  is  available.
     Routine:  LNKXIT


2336 Produce correct symbol vector  when  explicit  /pvdata:memory  is
     seen.  Routine:  LNKXIT


2336 Catch CFORK% JSYS errors.  Routine:  LNKINI


2340 Check for bad psect index in type 1074 block.  Routine:  LNKNEW


2341 Handle strange octal psect origins correctly.  Routine:  LNKWLD


2342 Add LNKPTP long error, fix cases where TP overflow happens or the
     GS  area  moves  while  doing  argument  typechecking.  Routines:
     LNKERR, LNKLOD


2343 Fix some problems with the type 1160 block, add LNKUSD long error
     message.  Routines:  LNKERR, LNKLOD, LNKNEW
LINK.DOC                                                       Page 15


2344 Add compiler type for C.  Routine:  LNKPAR


2345 Clean up and fix 1003 block code.  Routine:  LNKNEW


2346 Don't try to GET% the EXE file if it was  not  written  to  disk.
     Routine:  LNKXIT


2347 Use argument block for COMPT.  which  removes  PA1050.   Routine:
     LNKXIT


2350 Use LC/HC.IN and .OUT properly  to  map  non-existant  read  only
     pages.  Routine:  LNKXIT


2351 Fix E$$UMF routine to print JSYS names.  Routine:  LNKLOG


2352 Don't allocate more pages than will fit in  LC  area  in  STUFDD.
     Routine:  LNKXIT


2353 Remove improper symbols from LNKXIT, move SPLFK%  argument  block
     definitions into LNKPAR.  Routines:  LNKPAR, LNKXIT


2354 Make map file display long symbols - case senstivity -  and  1003
     title block information Routine:LNKMAP


2355 Handle debuggers which don't start at the  normal  start  address
     (such as ALGDDT) properly.  Routine:  LNKXIT


2356 Remove unnecessary TOPS20 conditionals.  Move NAMCMP  to  LNKSUB.
     Fix  overflow  problem  in  exe  file  writer  when more than one
     section of pages has the  same  attributes.   Routines:   LNKLOW,
     LNKLOD, LNKNEW, LNKOLD, LNKSUB, LNKWLD, LNKXIT


2357 Set up correct channel  for  save/get  when  splice  fork  fails.
     Routine:  LNKXIT


2360 Fix problem with edit 2355.  Routine:  LNKXIT


2361 Fix fencepost error in calculation of PDV size.  Routine:  LNKXIT


2362 Fix the /DEBUG:DDT code;  store the DDT start address  in  EXECSW
     when  it  is  stored  in STADDR, since it is calculated after the
LINK.DOC                                                       Page 16


     debugger address table lookup.  Routine:  LNKXIT


2363 Don't use DDT's start address if the user  requested  some  other
     debugger and /TEST:DDT.  Routine:  LNKXIT


2364 Use the correct value (HL.S1) for highest  location  loaded  when
     calculating the number of pages for SSAVE JSYS.  Routine:  LNKXIT


2365 Preserve T4 in NEWSCT to prevent LINK from  dying  after  issuing
     certain  messages  if  logical  name  LOG:  is defined.  Routine:
     LNKCOR


2366 Implement  symbol  and  entry  vectors  for  extended  addressing
     TOPS-10 programs.  Add sparse LC paging on TOPS-10.  Fix extended
     addressing library rule.  Clean up TOPS-20  conditionals.   Don't
     try to keep the overflow file inside of section zero (didn't work
     right  anyways).   Fix  type  1160  block  on  TOPS-10.    Update
     parameter  files.   Routines:   LNKD10,  LNKT10,  LNKPAR, LNKLOW,
     LNKCOR, LNKLOD, LNKOLD, LNKNEW, LNKOV1, LNKWLD, LNKXIT


2367 Fix a TOPS-10 core management  problem  in  wake  of  edit  2366.
     Routine:  LNKOLD


2370 Fix off-by-one when the last page of a segment is  allocated  but
     zero.  Routine:  LNKXIT


2371 Fix exit condition for long symbol names in  1070  code  Routine:
     LNKNEW


2372 Use right half  of  LL.S2  to  calculate  seg  origin.   Routine:
     LNKOLD


2373 Truncate long symbols properly for DDT  undefined  symbol  table.
     Substitute "." for non sixbit characters when writting DDT symbol
     table.  Routine:  LNKXIT


2374 Fix TP paging by adding new global TPPTR to replace TP.PT in type
     checking  code.   Also  don't toss block prematurely in TPREL1 if
     using overlays.  Routines:  LNKCOR,LNKLOD,LNKLOW


2375 Fix bug when reading in symbol table in LNKMAP.  Routine:  LNKMAP


2376 Do Copyrights.
LINK.DOC                                                       Page 17


[End of LINK.DOC]