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.