Trailing-Edge
-
PDP-10 Archives
-
bb-r775d-bm_tops20_ks_upd_4
-
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 5.1(2030) to LINK 6.0(2364)
May 1985
COPYRIGHT (C) 1985 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 5.1(2030) to LINK 6.0 (2364) Page 2
1.0 SUMMARY
LINK is the linking loader for the DECSYSTEM-20. LINK version 6.0 is
a development release designed to provide new features, enhancements
to existing features, internal changes, and support for Fortran-20
version 10. It contains long symbol support, several new REL blocks,
and improved handling of extended programs.
LINK version 6.0 supercedes all previous versions. It runs under
TOPS-20 versions 4.1(KS), 5.1, 6.0, and 6.1. Note TOPS-20 5.1 should
include an addition to the splice fork code. This is edit 3086 and
was shipped on Autopatch tape 8.
Microcode version 326 (or later) should be installed inorder to use
extended addressing
LINK is documented in the LINK Reference Manual. This manual is
available as part of volume 5 of the TOPS-20 Notebooks or separately
as order number AA-41830-TM.
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) 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. Increased reliability of extended addressing support. All
known problems with 30-bit addressing and multisection
programs have been fixed in this version.
2. Part of a program may occupy both section zero and other
sections. This removes a restriction on the previous
version.
3. 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]
CCS 31 31 Cannot create section [octal]
{Detected in module [symbol] from file [file]}
CMP 31 28 Common [symbol] declared in multiple psects
{Detected in module [symbol] from file [file]}
CSP 31 28 Cannot setup UDDT symbol table pointers
{JSYS error text}
COE 8 8 Both CONCATENATE and OVERLAY attributes specified for
psect [name]
CRS 1 1 Creating section [octal]
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
UMF 31 31 Unexpected monitor call failure for [JSYS] at PC [octal]
{JSYS error text}
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 4
The following LINK error messages have been changed to
incorporate TOPS20 standard system error messages:
Suffix Lev Sev Standard Message Text
------ --- --- ---------------------
CLD 31 28 Cannot load DDT
{JSYS error text}
DNA 31 28 DDT not available
{JSYS error text}
IAS 31 31 Error inputting area AS {Status [octal]} for file [file]
{JSYS error text}
IHC 31 31 Error inputting area HC {Status [octal] for file [file]}
{JSYS error text}
ILC 31 31 Error inputting area LC {Status [octal] for file [file]}
{JSYS error text}
ILS 31 31 Error inputting area LS {Status [octal]} for file [file]
{JSYS error text}
ITP 31 31 Error inputting area TP {Status [octal]} for file [file]
{JSYS error text}
OAS 31 31 Error outputting area AS {Status [octal]} for file [file]
{JSYS error text}
OHC 31 31 Error outputting area HC {Status [octal] for file [file]}
{JSYS error text}
OLC 31 31 Error outputting area LC {Status [octal] for file [file]}
{JSYS error text}
OLS 31 31 Error outputting area LS {Status [octal]} for file [file]
{JSYS error text}
OTP 31 31 Error outputting area TP {Status [octal]} for file [file]
{JSYS error text}
4. 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.
5. Improvements to program data vectors including static memory
maps and symbol vectors.
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 5
6. Multi-section FORTRAN common blocks.
7. FORTRAN extended addressing support.
8. New switches:
/NOJOBDAT
Prevents LINK from building a JOBDAT or vestigial JOBDAT area.
/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.
/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.
9. Paging of argument typechecking data so that larger FORTRAN
77 programs may be loaded.
10. 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.
11. 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 -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 6
3.0 INSTALLATION INSTRUCTIONS
To install LINK version 6 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 (to the appropriate save set)
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 (to the appropriate save set)
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.
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
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 7
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 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
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 8
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
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
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 9
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
sections.
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 10
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
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 11
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
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
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 12
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
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.
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 13
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
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
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 14
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
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
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 15
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: 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
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 16
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
2344 Add compiler type for C.
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 17
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.
LINK.DOC -- Changes from LINK 5.1(2030) to LINK 6.0 (2364) Page 18
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 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