1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-03-01 09:21:15 +00:00
Files
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

4674 lines
146 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
TITLE LNKHST - REVISION HISTORY OF LINK
SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN/PY/MFB/JBS/HD/RJF 5-Feb-88
SEARCH LNKPAR ;[2030]
TWOSEG %HISEG ;[2030]
;[2030] One-line copyright for executable files
ASCIZ /
COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1973,1988. ALL RIGHTS RESERVED.
/ ;[2403][2417]
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1973,1986,1988.
; 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.
;
CUSTVR==0 ;CUSTOMER VERSION
DECVER==6 ;DEC VERSION
DECMVR==0 ;DEC MINOR VERSION
DECEVR==2420 ;DEC EDIT VERSION
LNKVER==:<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
LOC 137
.JBVER: EXP LNKVER
RELOC
SUBTTL REVISION HISTORY
;START OF VERSION 1A
;37 ADD GARBAGE COLLECTOR AT CLANS
;40 ADD GENERAL GARBAGE COLLECTOR
;41 ADD LNKFSI MESSAGE
;42 TAB.PT NOT REDUCED WHEN CORE GIVEN BACK
;43 FORTRAN-10 LOCAL SYMBOLS IN COMMON NOT FIXED UP CORRECTLY
;44 REMOVE ALL REFERENCES TO XF (INDEX CONTAINING DY.LB)
;45 HASH INITIAL SYMBOLS AT ASSEMBLY TIME
;46 ADD KLUDGE FEATURE
;47 INTEGRATE WITH SCAN %4, ADD DATE75 HACK
;50 HANDLE PAGING DURING LOCAL SYMBOL OUTPUT CORRECTLY
;51 FIX BUG IF UNDEF SYMBOLS BUT DON'T WANT TO KEEP LOCAL SYMS
;52 ADD ASCII TEXT BLOCK
;53 FIX RETURNS FROM DVMOV. ROUTINE
;54 ADD KIONLY D.P. INST.
;55 STORE VERSION NUMBER (.JBVER) IN .RBVER OF SAVE FILE
;56 FIX LOOP AT JBEX2A IF CORE IMAGE IS MULTIPLE OF 2000
;57 SETUP VESTIGIAL JOB DATA AREA EVEN IF NOT A SAVE FILE
;60 ADD /VERSION SWITCH
;61 ADD STORE CODE IN CORE FOR T.3 TWOSEG FIXUPS
;62 FIX BUG IN BLOCK TYPE 11 (POLISH FOR FORTRAN-10)
;63 REMOVE MULTIPLY-DEFINED SYMBOLS FROM SYMBOL TABLE (IN CORE)
;64 REDUCE CORE SIZE IF ALL OF CORE IS TAKEN
;65 TENEX SPEEDUPS
;66 SAVE JOB DATA AREA ON /SAVE IF DDT, SYMBOLS AND ALL CODE IN HIGH SEG
;67 PUT ADDITIVE GLOBAL REQUESTS IN UNDEF TABLE
;70 FIX ADDRESS CHECK PROBLEM
;71 MAKE ALL INFO MESSAGES STANDARD FORM
;72 (11315) CTYPE NOT CLEARED ON UNKNOWN COMPILER TYPE
;73 (11314) PREVENT EXECUTION IF UNDEF SYMBOLS
;74 (11389) FIX ILL MEM REF ON FILE/SYSLIB
;75 FIX ALGOL OWN BLOCK, CALL ADCHK. ROUTINE
;76 FIX BUG IF DWFS. PAGES FOR FIRST TIME
;77 RESET VERBOSITY IF LNKERR GETSEG FAILS
;100 FIX ILL MEM REL ON /SAVE IF LAST BLOCK FILLS ALL OF CORE
;101 FIXES FOR FAIL CODE WITH UNDEF GLOBALS IN BLOCK 11
;102 TEST FOR MISSING END BLOCK (TYPE 5)
;103 SAVE AND RESTORE BOTH HALVES OF FL ON EDITED LOOKUP ERROR
;104 PUT FAIL BLOCKS IN MAP OUTPUT AND SYMBOL TABLE
;105 MAKE BLOCK TYPE 12 WORK
;106 ALLOW HIGH SEG CODE TO BE LOADED AT ADDRESS OTHER THAT 400000
;107 CHANGE KLUDGE TO MIXFOR (SEE EDIT #46)
;110 (11889) /BACK:1 GOT ILL MEM REF (SOSJ _ SOJG)
;111 MAKE MIXFOR WORK EVEN IF NOT IN /SEARCH MODE
;112 CHECK FOR PER FILE /SEARCH AT LODTST
;113 MAKE MIXFOR KNOW ABOUT F40 ARRAY REFERENCES IN ARGS
;114 FIX LOG FILE TO DSK (NOT ASSIGNED AS LOG)
;115 MAKE /NOSYMS WORK CORRECTLY
;116 FIX UNDEFINED SYMBOL COUNT IN FAIL BLOCKS
;START OF VERSION 1B
;117 (12058) ADD MISSING POPJ P, AT FORKI+2
;120 /SYMSEG:HIGH WITH NO HIGH CODE GIVES ILL MEM REF
;121 (12145) .VERSW DOESN'T PRESERVE P4, /VER:1(20) FAILS
;122 (11940) MAKE /MAP/SAVE PRODUCE BOTH FILES NOT JUST THE LAST ONE
;123 MAKE LOADING OF VERY LARGE (GT. 128K) MUCH EASIER
;124 ADD /ONLY SWITCH (ARGS ARE BOTH, LOW, HIGH)
;125 WRITE MAPS WITH 2 SYMBOLS PER LINE
;126 CHANGE CALLING SEQUENCE FOR T.1STR AND PG.LSG, PG.HSG TO BE P2 & P3
;127 (12311) BUGS IN FORCED LOAD OF F40 CODE TO HIGH SEGMENT
;130 (12315) NOT ALL SYMBOL COPIED WHEN PREVIOUSLY REQUESTED COMMON IS DEFINED
;131 CHANGE JOBDAT SYMBOLS FOR V/M, ADD V/M FEATURES
;132 FIX BUG IN EDIT #122
;133 BUG IN LOADING LIBSAI IN T.11EV RETURN
;134 (12431) ABS SYMBOLS OCCASIONALLY SHOW AS REL IN MAP
;START OF VERSION 2
;135 ADD OVERLAY CAPABILITY (LNKOV1,LNKOV2,LNKOVS)
;136 FIX VARIOUS BUGS
;137 ADD SUPPORT FOR PLOTTER PACKAGE
;140 (12617) FIX ?IO TO UNASSIGNED CHANNEL WITH /SYMBOL:TRIPLET
;141 TURN ON ASCII TEXT BLOCK AND FIX BUGS IN IT
;142 (12520) FIX BUG IF PROGRAM LARGER THAN 36*128 WORDS
;143 MAKE /INCLUDE WORK BETTER (DOCUMENTATION CHANGE ALSO)
;144 (12772) FIX LOOP IN LNKMAP IF EVEN NO. OF SFDS
;145 IMPLEMENT USER LIBRARIES & /USELIB SWITCH
;146 (12860) MAKE S%E ENTER ERRORS FATAL (S%F)
;147 TURN ON MIXFOR FEATURE
;150 REMOVE EDIT #71 (PEF MESSAGE)
;151 (12491) CALL OSCAN CORRECTLY
;152 FIX LOOP IF /NOINIT AND UNDEFINED SYMBOLS
;153 FIX BUG IN EDITS 122 AND 132
;154 (12991) ONLY LOOK AT RIGHT HALF OF .JBERR TO DELETE EXECUTION
;155 (12988) FIX TEST FOR COBDDT AT RUN UUO TIME
;156 MAKE FOO/DEBUG WORK CORRECTLY
;157 (12640) IF .FORLB=-1 DO NOT WARN USER IF F10 CODE LOADED
;160 (12736) ADD WORDS FREE IN EACH SEGMENT TO MAP OUTPUT
;161 ADD LANGUAGE TYPE TO /USERLIB SWITCH
;162 USE W3 RATHER THAN W1 IN INDEXED LIBRARIES
;163 MAKE /ONLY WITH F-10 CODE NOT DEFAULT TO BOTH SEGS IN LOW
;164 MAKE CPU TEST OF REL FILES MORE GENERAL
;165 INTEGRATE WITH SCAN %5(356)
;166 READ BACK THE RADIX50 SYMBOLS OUTPUT BY /SYMBOL
;167 CHANGE ARGUMENTS TO /OTS SWITCH
;170 INTEGRATE WITH BLISS PLOTTER SUBROUTINES
;171 (13234) FIX BUG IF FORTRAN-10 PROG TOO BIG
;172 (13243) BUG IF MORE THAN 1 BLOCK TYPE 16 (OR 17) SEEN
;173 TEST ASCIZ BLOCK TYPE FOR VALID FIRST CHAR
;174 FIX RELOCATABLE OVERLAY BUGS
;175 CHANGE /RESET TO /NODE
;176 MAKE START BLOCK (7) BE TWO WORDS LONG
;177 FIX ADDRESS CHECK BUG IN LNKXIT IF PAGING SYMBOLS
;200 LOAD REENTRANT OVERLAY HANDLER
;201 MAKE FORDDT LOAD CORRECTLY
;202 REMOVE CORE UUO BEFORE GETSEG
;203 LINK ALL DDT SYMBOL TABLES IN OVERLAYS CORRECTLY
;204 FIX VARIOUS SFU AND EXPANSION BUGS
;205 LIST NO. OF GLOBALS AND MIN. HASH SIZE IN MAP
;206 FIX GLOBAL CHAINS IN UNDEF AND NOT ALL IN CORE
;207 MAKE OVERLAY OVERHEAD TABLES SMALLER
;210 (13461) MORE OF #172, HANDLE TYPE 16 CORRECTLY
;211 FIX ZEROS IN MONITOR SYMBOL TABLE
;212 YET ANOTHER ZEROS IN SYMBOL TABLE BUG
;213 (12531) LOW SEG OF TWOSEG CORE IMAGE BAD
;214 (12939) CORE EXP BUG IN F40 CODE IF EXPANDS IN MIDDLE OF DATAS
;215 ADD TEXT FOR OVRLAY MESSAGES TO LNKERR
;216 (13559) ADD ZSV ERROR MESSAGE
;217 FIX PDLOV IN BLOCK TYPE 11 CODE IF CORE MOVES
;220 HANDLE COMMON REFERENCED BEFORE BEING DEFINED CORRECTLY
;221 GET THE PROTECTION CODE OF XPN FILES CORRECT
;222 (12773) DO UPDATE MODE RIGHT FOR SFD DEFAULT PATHS
;START OF VERSION 2A
;244 DATE75 FIX TO MAKE LOW SEG FILE HAVE CORRECT DATE (ALSO LISTED BELOW)
;START OF VERSION 2B
;223 FIXUP PRIMARY TRIPLET AFTER ADDITIVE FIXUPS HAVE BEEN DONE
;224 PUT SECOND SYMBOL FOR COMMON BLOCK IN RADIX50 SYMBOL TABLE
;225 ADD SUPPORT FOR PSECT (MACRO VERSION 51)
;226 FIX UNDEFINED SYMBOL PROBLEM (117 NOT SET UP)
;227 (13779) TEST TEMP LOCAL SWITCH AT T.37 (COBOL CODE)
;230 ADD CHECK THAT LOW SEG DATA BASE IS SAME SIZE IN EACH SEGMENT
;231 (13869) P1 NOT RESTORED IN TIME IN XX.INI
;232 (13920) UNRELOCATE POLISH POINTER TO FIXUP AREA
;233 (13932) INFINITE LOOP IF UNDEF SYMBOLS AND TYPE 16 BLOCKS
;234 NUL:/SAVE CAUSES PAGING ON NUL: DEVICE, USE DSK INSTEAD
;235 (13845) ERRONEOUS SAVE FILE IF PAGED AND READING ZEROS
;236 CORE EXP BUG AT SY.RUA, P1 IS DESTROYED BEFORE STORE
;237 (13931) CHANGE RPR ERROR TO NBR
;240 FIX I/O TO UNASSIGNED CHAN IF /SAVE AND HIGH FILE ALREADY EXISTS
;241 SEPARATE LOW SEG REL CODE FROM ABS CODE FOR HIGHEST LOC CALCULATIONS
;242 HANDLE USER PAGE FAULT HANDLER CORRECTLY
;243 ADD SIMULA TO KNOWN PROCESSORS
;244 DATE75 FIX TO MAKE LOW SEG FILE HAVE CORRECT DATE
;245 JLd 31-Oct-74 SPR 10-14009
; Make the overlay file stay on same structure on supersede
; Routines: LNKOV1, LNKFIO, LNKWLD, LNKERR
;246 JLd 18-Nov-74 SPR 10-14212
; Fix problems with the core overflow expansion calc.
; which cause inefficient use of core.
; Routines: LNKCOR
;247 JLd 11-Dec-74 SPR 10-14344
; Fix the debug switch to load the debugger specified, and
; symbols for the main program when switch follows main.
; Routines: LNKWLD, LNKXIT.
;250 JLd 13-Dec-74 SPR 10-14363
; Change generation of fixups for map routine so will store
; the address limits.
; Routine: LNKOLD
;251 JLd 19-Dec-74 SPR 10-14366
; Fix /SEG:LOW to create the FX area if necessary
; when saving high segment code.
; Routine: LNKLOD
;252 JLd 24-Dec-74 SPR 10-14538
; Fix problem with /INCLUDE with /SEARCH when loading an
; indexed library.
; Routine: LNKOLD
;253 JLd 28-Dec-74 SPR 10-14535
; Correct several problems with ASCII test blocks:
; . make ASCII blocks work with CCL entry
; . make multi-line blocks work
; . give error message if SCAN can't finsih block
; Routines: LNKNEW, LNKSCN, LNKWLD, LNKERR
;254 JLd 28-Dec-74 SPR 10-14674
; Switches which are deferred until after the file is
; opened must be disconnected from the file spec block to
; prevent double dispatching (2nd time with invalid code)
; whenever the file spec. is edited.
; Routine: LNKWLD
;255 JLd 2-Jan-75 SPR 10-14669
; Prevent type ahead from causing a halt in SCAN.
; Stop clearing to end of line when end-of-line found.
; Routine: SCAN (SCAN Edit 524)
;256 JLd 2-Jan-75 SPR 10-14669
; Make "/<switch>:" without a key word legal
; Routine: LNKWLD
;257 JLd 9-Jan-75
; Restore the proper P1 when creating FX -- cancel edit 231
; Routine: LNKCOR
;260 JLd 9-Jan-75 SPR 10-14872
; Fix to load large F40 programs in small core
; Routine: LNKF40
;261 JLd 24-Jan-75 SPR 10-15063
; Correct problems with loading a null overlay structure
; (root only), and /PLOTing it.
; Routines: LNKOV2, LNKPLT
;262 JLd 6-Feb-75 SPR 10-15063
; React gracefully when /LINK switch is omitted
; Routnies: LNKOV1, LNKLOW, LNKWLD, LNKERR
;263 JLd 6-Feb-75 SPR 10-15063
; Increase the /PLOT stack size for large overlay structures
; Routine: LNKPLT
;264 JLd 13-Feb-75 SPR 10-15135
; Deal with file specification errors correctly when
; processing commands from an indirect file.
; Routines: LNKSCN, SCAN (v. 6)
;265 DMN 17-Feb-75
; Implement EXE files (new SAVE format)
; Routines: LNKPAR, LNKXIT, LNKSCN, LNKWLD
;266 JLd 22-Feb-75 SPR 10-15226
; Load symbols correctly when overflow to DSK.
; Routine: LNKXIT
;267 JLd 23-Feb-75 SPR 10-15226
; Take window into account when calc. offset for
; module header (type 0) symbol in DDT symbol table
; Routine: LNKXIT
;270 JLd 24-Feb-75 SPR 10-15248
; Fix initialization of high segment Job Data Area
; when done after disk overflow
; Routine: LNKXIT
;271 JLd 27-Feb-75 SPR 10-15255
; Suppress searching Bound Globals during symbol table
; rehash.; keep the PDL in bounds.
; Routine: LNKHSH
;272 JLd 27-Feb-75 SPR 10-15255
; Make the force rehashing for /HASHSIZE work.
; Routines: LNKWLD, LNKHSH
;273 DMN/JLd 27-Feb-75 SPR 10-15273
; Fix up disk overflow decision making
; Routine: LNKCOR
;274 JLd/DMN 3-Mar-75 SPR 10-15263
; Allow COMMON in the HIGH segment to be loaded with DATA
; defined in a module loaded in the LOW segment
; Routines: LNKF40, LNKOLD, LNKPAR
;275 DMN 6-Mar-75 NONE
; Add the rest of the code necessary to support SIMULA
; finish edit 243.
; Routines: LNKLOD, LNKERR
;276 DMN/ILG 7-Mar-75 SPR 10-15507
; Fix MULTIPLY-DEFINED GLOBALS when a .REQUIRES
; in one .REQUIRED file .REQUIRES another.
; Routines: LNKOLD
;277 JLd 13-Mar-75 SPR 10-15405
; Allow editing of file spec. when LOOKUP error while
; loading from default libraries.
; Routines: LNKLOW, LNKWLD
;300 JLd 30-Mar-75 SPR 10-15706
; Correct problem with /OVERLAY not working unless first
; switch, and make permanent excludes work.
; Routine: LNKOV1
;301 JLd 30-Mar-75 SPR 10-15706
; Issue proper error message when no more room
; during DSK overflow.
; Routine: LNKCOR
;305 JLd 21-Apr-75 SPR 10-15843
; Correct the mixed CPU test to give the message
; at the right time.
; Routine: LNKLOD
;317 RKH 25-Apr-75 SPR 10-15716
; Correct initialization before call to TRYSYM to
; search symbol table
; Routine: LNKOLD
;320 RKH 25-Apr-75 SPR 10-15858
; Reinitialize user virtual address before call to
; page in segment
; Routine: LNKOLD
;322 JLd 1-May-75
; Set up LSYM and other control variables so LNKCOR will
; handle symbols properly.
; Routines: LNKOV2, LNKXIT
;324 JLd 8-May-75
; Don't deallocate the channel and area for LS until
; no longer needed.
; Routine: LNKXIT
;325 JLd 13-May-75
; Fix special case of TWOSEG code forced into one
; segment when high segment break is same as start
; (length of zero).
; Routines: LNKLOD, LNKOLD
;326 JLd 19-May-75
; Fix more normal case broken by edit 252 of loading
; indexed library with /INCLUDE specified, and more than
; one file being loaded.
; Routine: LNKOLD
;330 JLd 19-May-75
; Make symbol channel go away after loading symbols into
; the root of an overlay program.
; Routine: LNKXIT
;331 JLd 19-May-75
; Don't loose the Control Section, EXTTAB's and ENTTAB's;
; count them in occupied core.
; Routine: LNKOV1
;
;332 RKH 20-May-75
; Restore base of GS area before processing
; Routine: LNKOV2
;
;333 RKH 21-May-75
; Isert code to handle successful zero return of GETTAB
; Routine: LNKINI
;
;334 RKH 28-May-75
; Change dispatch AC so that LINK item type is saved
; Routine: LNKOLD
;335 JLd 30-May-75
; Fix problems with size of symbols in root of
; program with overlays. prevent confusing LNKCOR
; Routine: LNKXIT
;
;336 RKH 31-MAY-75
; Fix /RUN switch to work properly
; Routine: LNKXIT
;
;337 RKH 31-May-75
; Isert check for no core to zero before BLT
; and prevent possible ILL MEM REF
; Routine: LNKXIT
;340 DMN 6-Jun-75
; Change name of duplicate flag from S.NAM to S.LNM
; Routines: LNKPAR,LNKHST,LNKNGW,LNKHSH,LNKOLD
;341 JBC 26-Jun-75
; Include edit 327 in maintenance sources. Label edits 223,232,233
; Routine: LNKLOD
;342 SRM 26-Jun-75
; Include edit 315 in maintenance sources
; Routine: LNKPLT
;343 SRM 26-Jun-75
; Include edits 302,307 in maintenance sources
; Routine: LNKWLD
;344 SRM 26-Jun-75
; Include edit 304 in maintenance sources
; Routine: LNKMAP
;345 SRM 26-Jun-75
; Include edit 303 in maintenance sources. Label edit 230
; Routine: LNKPAR
;346 SRM 26-Jun-75
; Include edit 302 in maintenance sources. Label edit 230
; Routine: LNKINI
;347 JBC 26-Jun-75
; Include edits 303,310,311 in maintenance sources. Label edits 227,236,241
; Routine: LNKOLD
;350 JBC 26-Jun-75
; Remove references to RSYM
; Routines: LNKLOW,LNKOLD
;351 SRM 26-Jun-75
; Label edit 237
; Routine: LNKERR
;352 SRM 26-Jun-75
; Label edit 237
; Routine: LNKOV1
;353 JBC 26-Jun-75
; Remove edit 225
; Routines: LNKINI,LNKLOW,LNKMAP,LNKOLD,LNKPAR,LNKWLD,LNKXIT
;354 JBC 26-Jun-75
; Label edit 234
; Routine: LNKCOR
;355 JBC 26-Jun-75
; Label edit 230
; Routine: LNKEXO
;356 JBC 26-Jun-75
; Label edit 240
; Routine: LNKFIO
;357 JBC 26-Jun-75
; Label edits 224,226,234,235,241,242
; Routine: LNKXIT
;360 JBC 27-Jun-75
; Remove edit 336
; Routine: LNKXIT
;361 JNG 2-Jul-75
; Fix ill mem ref caused by edit 274
; Routine: LNKF40
;362 JNG 2-Jul-75
; Always set up the preamble area at OVR8, since edit
; 322 made LNKXIT not set it up.
; Routine: LNKOV2
;363 JBC 2-Jul-75
; Update minor version #
; Routines: LNK999,LNKCST,LNKEXO,LNKMAP,LNKOVS,LNKPAR,LNKSUB
;364 JNG 9-Jul-75 SPR 10-16732
; Generate a fixup instead of giving up if the TITLE
; block has been paged out when a HISEG block is encountered.
; Routines: LNKPAR,LNKCOR,LNKOLD
;365 JNG 10-Jul-75
; Give an error message if an invalid fixup is encountered.
; Routines: LNKCOR
;366 DMN 10-Jul-75
; Only use 18 bit addresses to call CHKSEG from T.2CHK
; Routine: LNKOLD
;367 DMN 10-Jul-75
; Keep correct W3 on Polish fixups when symbol just defined
; Routine: LNKLOD
;370 DMN 10-Jul-75
; Fix LNKINS error detect
; Routine: LNKFIO
;371 JNG 10-Jul-75
; Move definition of .ERSFU to avoid undefined global.
; Routines: LNKCOR,LNKOLD
;372 JNG 11-Jul-75
; Don't print the path of an overlay on /MAP:NOW, since
; the information is not yet set up and would be hard to find.
; Routines: LNKMAP
;373 JNG 16-Jul-75
; Load COMMON correctly on a /SEGMENT:HIGH.
; Routines: LNKOLD
;374 JNG 17-Jul-75 SPR 10-16727
; Avoid ILL MEM REF in LNKLOD because of edit 273.
; Routines: LNKCOR
;375 JNG 17-Jul-75 SPR 10-16557
; T.COMM sometimes inserts COMMON into the local symbol
; table. Since everybody that calls T.COMM also inserts COMMON
; into the local symbol upon return, it sometimes gets in twice.
; Solution: Make T.COMM always insert COMMON into the local
; symbol table, and don't insert it when T.COMM returns.
; Routines: LNKOLD,LNKLOD,LNKF40
;376 JNG 18-Jul-75 SPR 10-16500
; Do not try to overlay F40 code, since this is not
; supported and doesn't work anyway.
; Routines: LNKLOD,LNKSUB
;377 JNG 18-Jul-75 SPR 10-16728
; Fix several bugs involving the /SET switch.
; Add new error message if trying to /SET below a segment origin.
; Routines: LNKWLD,LNKERR
;400 JNG 20-Jul-75 SPR 10-16638
; Do defaulting of output paths right and support SFD's.
; Routines: LNKPAR,LNKLOW,LNKWLD,LNKFIO
;401 JNG 22-Jul-75
; Remove hack to give same checksums on save files as 5.06.
; Routines: LNKXIT
;402 JNG 22-Jul-75
; Make /TEST again unique to one character.
; (It conflicts with /TMPCOR in SCAN 7).
; Routines: LNKPAR
;403 JNG 24-Jul-75
; Fix HALT in LNKXIT if generating new style symbol file.
; Routines: LNKXIT
;404 JNG 31-Jul-75
; Replace edits 316,323,334, and 340, which got lost.
; Routines: LNKOLD,LNKOV1,LNKERR,LNKNEW,LNKPAR,LNKHSH
;405 JNG 3-Aug-75
; Recover if EOF is encountered while reading ASCII text.
; Routines: LNKLOD,LNKNEW
;
;406 RKH 9-Aug-75
; Made DDT default if no argument
; to /TEST or /DEBUG switches.
; Routine: LNKWLD
;
;407 RKH 11-Aug-75
; Correct problem with /NODE:-1 to prevent
; node before root and give error message.
;410 JNG 11-Aug-75
; Avoid ?LNKISN if a node has no internal symbols.
; Edit 261 tried, but didn't do the whole job.
; Routines: LNKHST, LNKOV2
;411 JNG 14-Aug-75
; Fix problems when processing multiple line ASCII text
; containing file specs. Note: until SCAN is fixed,
; LINK will have the /K switch, which is a complete no-op
; and meant for internal use only.
; Routines: LNKPAR,LNKLOW,LNKSCN,LNKWLD,LNKNEW
;412 RKH 18-Aug-75
; Preserve W3 when doing fixups to prevent problems when
; loading block type 21.
; Routines: LNKLOD
;413 JNG 18-Aug-75
; Fix some small bugs in the handling of ELN message.
; Routines: LNKOV1
;414 JNG 18-Aug-75
; Make sure FUNCT. gets loaded somewhere in the root.
; Modules: LNKOV1
;415 JNG 19-Aug-75
; Keep LSYM and NAMPTR up to date in LNKOV2 to avoid
; ?ILL MEM REF when trying to expand LS area.
; Routines: LNKOV2,LNKCOR
;416 JNG 20-Aug-75
; Update GS.FR instead of GS.PT when copying global
; symbol table into bound global area to prevent lost globals.
; Routines: LNKOV1
;417 JNG 21-Aug-75
; Remove the LNKF40 portion of edit 274 pending a rewrite
; of this section of code, since it broke more than it fixed.
; Routines: LNKF40
;420 JNG 21-Aug-75
; Always print a "]" on informational messages to TTY.
; Routines: LNKLOG
;421 JNG 26-Aug-75 SPR 10-17000
; Always give %LNKMSN and %LNKSSN when a user requests
; an unimplemented function.
; Routines: LNKWLD
;422 JNG 27-Aug-75 SPR 10-17225
; Temporarily shut off /SEG: while processing fixups to
; prevent confusion, esp. when loading F10 code.
; Routines: LNKLOD
;423 JNG 31-Aug-75 SPR 10-15734
; Prevent ?ILL ADDR IN UUO in LNKXIT when loading overlays
; in a small amount of core and loading local symbols.
; Routines: LNKOV2,LNKXIT
;424 JNG 2-Sept-75 SPR 10-15734
; Improve the long message for the FSN error.
; Routines: LNKERR
;425 JNG 2-Sep-75 SPR 10-15734
; Do not require FUNCT. to be loaded into the root if there
; are no requests for it (user wrote own overlay handler).
; Routines: LNKOV1
;426 JNG 2-Sep-75 SPR 10-15844
; Do not output prompt characters while processing ASCII text.
; Routines: LNKSCN
;427 JNG 2-Sep-75
; Don't destroy SCAN's ACs while processing ASCII text.
; Routines: LNKSCN
;430 JNG 2-Sep-75
; Don't zap F.ASCI in TXTKOM.
; Routines: LNKSCN
;431 JNG 2-Sep-75
; Make the /ESTIMATE switch work.
; Routines: LNKWLD
;432 JNG 2-Sep-75
; Fix a typo in edit 417.
; Routines: LNKF40
;433 JNG 3-Sep-75
; Support the /RUN switch correctly, i.e. ignore it unless
; execution has not been requested.
; Routines: LNKSCN,LNKXIT
;434 JNG 4-Sep-75
; Don't clear OFFSET and OSCANF just before doing an
; edit correction since this confuses .TYPRE in SCAN.
; Routines: LNKLOG
;435 RKH 4-Sep-75
; Keep HC.S0 up to date when loading F40 code to prevent the code
; from being zeroed in LNKXIT.
; Routines: LNKF40
;436 JNG 4-Sep-75
; Clear ^O when prompting the user to make sure the "*" gets out.
; Routines: LNKSCN
;
;START OF VERSION 2C
;
;437 RKH 22-Sep-75
; Prevent LNKDUZ errors when processing redundant right
; hand fixups by flushing the request.
; Routine: LNKOLD
;440 RKH 23-Sep-75
; Change macro in LNKPAR so /ONLY can be a global switch
; Routine: LNKPAR
;441 RKH 25-Sep-75
; Correct loading of COMMON when /SEGMENT:HIGH
; IS USED. PREVENT COMMON size from increasing by 1
; (caused by edit 373) and improper loading (caused
; by edit 241).
; Routine: LNKOLD
;442 JNG 10-Oct-75 SPR 10-16809
; Add a general routine to move some data by either RENAME
; or copy. Call this routine from several places in LNKXIT
; to prevent doing the wrong thing or getting ?LNKCNW messages.
; Routines: LNKERR,LNKXIT
;443 JNG 21-Oct-75 SPR 10-17617
; Avoid losing some of the local symbols if loading them into
; core or into the .SAV file and symbol segment is paging.
; Routines: LNKXIT
;444 JNG 21-Oct-75 SPR 17618/17686
; Don't lose libraries defined with the USELIB macro.
; Routines: LNKINI
;450 RKH 14-Nov-75
; Correct code to give error when FORTRAN code is loaded
; then F40 code and /MIXFOR is not set.
; Routine: LNKLOD
;451 RKH 14-Nov-75 SPR 10-17881
; Insert error message to identify file and module
; when LNKFON is given.
; Routine: LNKLOD
;452 RKH 14-Nov-75 SPR 10-17882
; Prevent only the module name from being printed on top
; of page when the astrisk seperators were printed on the
; preceding page.
; Routine: LNKMAP
;453 RKH 18-Nov-75 SPR 10-17637
; Correct listing of map index to prevent repeating names
; and losing others.
; Routine: LNKMAP
;454 JNG 21-Nov-75
; Allow (but ignore) block type 1060 (trace blocks) for MAKLIB.
; Routines: LNKPAR, LNKNEW
;455 RKH 10-Dec-75
; Do not bomb on absolute code seen after a HISEG
; pseudo-op (Link item type 3). Broken by edit 441
; Routines: LNKOLD
;456 JNG 9-Jan-76 SPR 16640
; Fix forced loading of F40 programs, as edits 274, 361, 417,
; and 432 attempted to do. Allow DATA statements in one
; segment to initialize COMMON defined in another segment.
; Shrink LNKF40 by 3 pages of code.
; Routines: LNKF40, LNKLOD
;457 JNG 10-Jan-76 SPR 17194
; Load FORJAK properly on /MIXFOR even if one flavor
; of FORTRAN isn't seen until libraries are searched.
; Routines: LNKLOD, LNKOLD, LNKLOW
;460 JNG 11-Jan-76 SPR 17100
; Don't generate a bad EXTTAB if multiple ambiguous requests
; in the same link.
; Routines: LNKOV2
;461 JNG 11-Jan-76
; Prevent loop in LNKCOR when loading overlays.
; Routines: LNKOV2
;462 JNG 16-Jan-76 SPR 17774
; Prevent EOF error in LNKXIT when /MIXFOR and paging
; by restoring R in .MXFOR after SEGCHK wipes it.
; Routines: LNKLOD
;463 JNG 16-Jan-76 SPR 17774
; Avoid losing symbols after printing a map.
; Routines: LNKMAP
;464 JNG 17-Jan-76 SPR 17814
; Implement the /MISSING switch and LNKIMM message.
; Routines: LNKPAR,LNKERR,LNKWLD,LNKLOD,LNKLOG
;465 JNG 17-Jan-76 SPR 17880
; Redo block type dispatch, since it thinks block type 100 is
; reserved for customers when it is reserved for DEC. Move
; the code to handle .ASSIGN (block type 100) out of LNKCST
; and into LNKOLD. The block types are defined as follows:
; 0 37 Reserved for DEC (LNKOLD)
; 40 77 Reserved for customers (LNKCST)
; 100 377 Reserved for DEC (LNKOLD)
; 400 401 Reserved for DEC (LNKF40)
; 402 577 Reserved for customers (LNKCST)
; 600 677 Reserved for customer special file types (LNKCST)
; 700 777 Reserved for DEC special file types (LNKOLD)
; 1000 1677 Reserved for DEC (LNKNEW)
; 1700 1777 Reserved for DEC special file types (LNKNEW)
; 2000 3777 Reserved for customers (LNKCST)
; 4000 777777 Reserved for ASCII text (LNKNEW)
; Note that this contradicts the software notebooks in that DEC
; has now reserved types 700-777, since type 776 was already
; RADIX50 symbol files, and type 777 was MACRO universal files.
; Routines: LNKLOD,LNKOLD,LNKCST
;466 JNG 4-Feb-76 SPR 18030
; Prevent a loop in LNKOV1 on a /NODE switch when loading
; relocatable overlays, esp. in small amounts of core.
; Routines: LNKOV1
;467 JNG 5-Feb-76 SPR 18030
; Set RC.PT to relocatable zero instead of absolute zero
; when the RC area is set up but the current overlay has
; no relocation info. This prevents ?ADDRESS CHECK in LNKOV2.
; Routines: LNKCOR, LNKOV2, LNKXIT
;470 JNG 9-Feb-76 SPR 18030
; Preserve left half of R when filling in global requests so
; relocatable overlays will work (relocation tables will be right)
; Routines: LNKLOD
;471 DGS/JNG 13-Feb-76
; Add code to support ALGOL debugging system.
; Routines: LNKPAR,LNKLOW,LNKCOR,LNKLOD,LNKOLD,LNKXIT,LNKNEW,LNKWLD,LNKERR
;472 JNG 20-Feb-76 SPR 18161
; Update hl.s1 on a /COMMON switch in case nothing more
; is loaded. Make COMMON defined by switch only appear in
; the map once.
; Routines: LNKWLD
;473 JNG 21-Feb-76 SPR 18455
; Delete all .TMP files when exiting due to a fatal error.
; Routines: LNKLOG
;474 JNG 21-Feb-76 SPR 18453
; Print the module name that caused the error in all F40
; produced error messages.
; Routines: LNKF40,LNKERR
;475 JNG 21-Feb-76 SPR 18452
; Replace all calls to .TYVER in LNKSUB with calls
; to .TVERW in SCAN to save space.
; Routines: LNKSUB,LNKMAP
;476 JNG 21-Feb-76 SPR 18558
; Insert missing FTOVERLAY conditionals.
; Routines: LNKHSH,LNKXIT
;477 JNG 28-Feb-76 QAR EG&G
; Count bound globals in global symbol table size when rehashing
; to avoid later ?LNKSIF errors.
; Routines: LNKHSH
;500 JNG 28-Feb-76 QAR RDH
; Fix bugs when reading in RADIX-50 symbol files, and
; allow /INCLUDE & /EXCLUDE to work with them.
; Routines: LNKOLD
;501 JNG 29-Feb-76
; Support SFD's on input symbol files and output overlay
; files. LINK could not find symbol files in the default
; path, and HALTed in LNKXIT when loading overlays.
; Routines: LNKFIO
;502 JNG 29-Feb-76
; Increase PDL size from 40 to 60, to avoid ?PDL OV error
; when indirect file went away during a switch.
; Routines: LNKPAR
;503 JNG 1-Mar-76 QAR BYU
; Fix bug in map routines printing index header at bottom of
; previous page instead of top of new page, caused by page output
; routine allowing pages to be LN.LPP+1 lines long, instead
; of LN.LPP lines. Since pages have been 56 lines long
; all this time anyway, increase LN.LPP to 56 to do it right.
; Routines: LNKPAR, LNKMAP
;504 JNG 8-Mar-76 QAR BYU
; Don't zero every 200'th word of the LS area when loading
; overlays.
; Routines: LNKOV1
;505 JNG 8-Mar-76 QAR EG&G
; Avoid ?LNKISN due to truncated EXTTAB.
; Routines: LNKOV1
;506 JNG 8-Mar-76 QAR EG&G
; Don't pull global symbols defined in a higher link into the
; current symbol table when searching a library containing
; alternate definitions for those symbols.
; Routines: LNKOLD
;507 JNG 9-Mar-76 QAR EG&G
; Avoid informational messages in map file when using /ERR:0
; Routines: LNKMAP
;510 JNG 11-Mar-76 QAR EG&G
; Generate correct fixup for relocatable symbols in LS area.
; Routines: LNKPAR,LNKLOD,LNKCOR
;511 JNG 13-Mar-76 QAR EG&G
; Make sure LS area fixups get done properly on /LINK.
; Routines: LNKCOR,LNKOV1
;512 DMN/JNG 15-Mar-76 QAR JMF/DLM
; Don't lose fixups when a chained request for a symbol is seen
; and an earlier request exists but is now completely paged out.
; Routines: LNKLOD
;513 JNG 15-Mar-76
; Combine common functions of T.776 and T.6 into subroutines.
; Routines: LNKOLD
;514 JNG 15-Mar-76
; Setup LH(R) correctly in RB.1 for relocatable overlays.
; Routines: LNKOLD
;515 JNG 17-Mar-76 QAR EG&G
; Prevent total confusion in overlay file when the LC area
; overflows to the disk in other than the root link. Respect
; PH.ADD always when paging and doing fixups. Make sure the
; ?W.S1 pointers always have PH.ADD subtracted from them.
; Routines: LNKOLD,LNKLOD
;516 JNG 21-Mar-76 QAR EG&G
; Correctly handle the case of LS area completely full, LNKCOR
; call is to expand LS area, and more of LS must be paged out
; to satisfy the request. This avoids %LNKSFU errors.
; Routines: LNKCOR
;517 JNG 21-Mar-76
; Make the first word of new symbol files (ALGOL) be
; type,,count. Also, change ABLLEN to LN.ABL.
; Routines: LNKPAR,LNKOLD,LNKNEW,LNKCOR,LNKXIT,LNKLOD
;520 JNG 21-Mar-76
; Delete LNKTMP as a module of LINK.
; Routines: LNKTMP
;521 JNG 21-Mar-76 QAR EG&G
; Initialize library searching data on /LINK so default
; libraries will be searched in overlays.
; Routines: LNKOV1
;522 JNG 22-Mar-76 QAR EG&G
; Get relocation bits right when filling in chained page fault
; fixups (PFF.xx).
; Routines: LNKLOD
;523 JNG 28-Mar-76 QAR NIH
; Cut disk overhead to 15% of current when high segment paging.
; This was broken by edit 320.
; Routines: LNKOLD
;524 JNG 28-Mar-76 QAR BYU
; Don't zero random words if symseg area reduced to one page.
; Routines: LNKXIT
;525 JNG 28-Mar-76 QAR RAP
; Avoid ?LNKCEF when core available by reducing wrong segment.
; Routines: LNKCOR
;526 JNG 29-Mar-76 QAR JMT
; Don't set reloc bits unless loading reloc overlays.
; This is a fix to edit 522.
; Routines: LNKLOD
;527 JNG 4-Apr-76
; Save R1 over TTLREL call in 776 processor.
; Routines: LNKOLD
;530 JNG 4-Apr-76
; Change triplet flag bit definitions to their true values and
; use the TXxx macros from C to reference them. This makes
; it much easier to re-arrange them later.
; Routines: LNKPAR,LNKINI,LNKWLD,LNKLOD,LNKHSH,LNKOLD,LNKF40,
; LNKCOR,LNKMAP,LNKXIT,LNKOV1,LNKOV2,LNKNEW
;531 JNG 13-Apr-76 SPR 18744
; Redo file type dispatch, and give a better error messgae if
; the user attempts to load a MACRO Universal file.
; Routines: LNKOLD,LNKERR
;532 JNG 1-May-76
; Get usage of CTYPE, MNTYPE, and various triplets in the
; LS area coordinated to fix several small bugs with library
; searching and printing maps when paging.
; Routines: LNKOLD,LNKLOD,LNKMAP
;533 JNG 4-May-76 SPR 19053
; Prevent LNKI4T message when loading large F40 programs
; due to incorrect byte count in BITC.
; Routines: LNKF40
;534 JNG 5-May-76 SPR 18399
; Correct several problems while command scanning:
; . Don't print a "*" if .OSCAN finds a SWITCH.INI entry
; . Put all file specs from the same .TEXT block in order
; . Don't apply switches from lines other than the first of one
; .TEXT block to the current file
; . Get sticky switches right on all command lines
; . Add a /CRLF switch to reset defaults as if a CRLF was seen
; . Allow multiple /LINK switches on one line
; Routines: LNKSCN,LNKWLD,LNKPAR,LNKLOW,LNKNEW,LNKOV1
;535 JNG 7-May-76 SPR 18774
; Don't forget to search user libraries on the next link after
; one for which one library pass loaded enough modules (at least
; one) to satisfy all remaining undefined globals.
; Routines: LNKLOD
;536 JNG 7-May-76
; Define the temporary symbol bits in LNKOV2 so that they
; will not conflict with the link number field of the symbol entry
; Routines: LNKOV2
;537 JNG 8-May-76 SPR 19226
; Put both high and low files in user's default path on /SAVE.
; Routines: LNKFIO
;540 JNG 8-May-76 SPR 19288
; Get the map right on /ONLY:HIGH and with zero length modules.
; Routines: LNKOLD,LNKMAP
;541 JNG 9-May-76 SPR 19325
; Fixup all call by name F40 subroutine prologue instructions
; [PUSH 0,N(16)] when loading with /MIXFOR.
; Routines: LNKLOD
;542 JNG 14-May-76 SPR 19689
; Make subroutine entry points be defined correctly after MIXFOR
; fixup when the LC area is paging.
; Routines: LNKLOD
;543 JNG 17-May-76 SPR 19335
; Fix LNKDUZ error when real definition supercedes partial
; definition, and make library searching smarter about already
; having partial definitions.
; Routines: LNKLOD, LNKOLD, LNKCOR, LNKPAR
;544 JNG 23-May-76
; SOUP in LINK version 3 stuff for TOPS-20
; Routines: LNKCOR,LNKPAR,LNKOLD,LNKLOD,LNKWLD,LNKXIT,LNKERR
;545 JNG 23-May-76 QAR RDH
; Make the .LINK pseudo op work when paging.
; Routines: LNKPAR, LNKOLD
;546 JNG 25-May-76
; Delete an extra instruction inserted by SOUP in edit 544.
; Routines: LNKOLD
;547 JNG 26-May-76
; Make LINK assemble with MACRO 51.
; Routines: LNKXIT
;550 JNG 27-May-76 QAR DLM
; Prevent ILL UUO on polish fixup to non-loaded local.
; Routines: LNKOLD
;551 JNG 27-May-76
; Change /SYMBOL to /SYFILE
; Routines: LNKPAR,LNKWLD
;552 JNG 27-May-76
; Organize .REQUEST/.REQUIRE data base & define offsets properly.
; Routines: LNKPAR,LNKOLD
;553 JNG 27-May-76
; Put edit 302 in once again (lost long ago).
; Routines: LNKOLD
;554 JNG 28-May-76
; Prevent ILL MEM REF on switches like /SAVE which have
; multi-word values.
; Routines: LNKPAR,LNKSCN
;555 JNG 19-Jun-76 QAR E.S.E
; Fix some bugs relating to ALGOL 7 support:
; . Always load global symbols into core (low seg) for ALGOL
; . Make the ALGOL symbol files have .RBSIZ exactly right
; Routines: LNKLOD,LNKXIT
;556 JNG 19-Jun-76
; Temporarily solve problem of HALT in LNKCOR when paging
; caused by edit 543 by checking in paging routines for existence
; of GS area and bypassing some code if no GS area. This
; can cause DDT symbol tables in core to be slightly wrong, but
; the real solution - re-doing part of LNKXIT so that the GS
; area can be kept around longer - is far too complex to do for
; the 2C/3A release of LINK.
; Routines: LNKCOR
;557 JNG 19-Jun-76
; Clean up the listing for release.
; Routines: Almost all of them
;START OF VERSION 3
;445 DMN 5-Nov-75
; include previous edits to fix polish symbol table fixups
; routine: LNKOLD, LNKLOD
;446 DMN 5-nov-75
; change switches and defaults to more useful values under TOPS20
; routine: LNKPAR, LNKWLD, LNKXIT, LNKERR, LNKCOR
;
;447 DMN 7-nov-75
; add 3 new polish operators
; routine: LNKOLD
;START OF VERSION 3A
;560 JNG 20-Jun-76
; Release on both TOPS-10 and TOPS-20 as LINK version 3A(560)
; Routines: All.
;START OF VERSION 4
;561 DCE 19-Jul-76 SPR 20359
; Fix up returns from F10 subroutines when MIXFOR set
; Routine: LNKLOD
;562 JNG 20-Jul-76 QAR CSM
; Prevent ?ILL MEM REF when searching an indexed library if an
; entry point is encountered that is already partially defined.
; Routines: LNKOLD
;563 JNG 20-Jul-76 QAR U. Chicago
; Prevent erroneous ?LNKIMM message when a module is indeed
; loaded, but not as a result of a /INCLUDE switch (user loaded
; it directly, or it contained entry point(s) which satisfied
; some undefined globals in /SEARCH mode).
; Routines: LNKOLD
;564 JNG 20-Jul-76
; Make LINK assemble properly with MACRO 52.
; Routines: LNKERR, LNKLOG
;565 DCE 21-Jul-76 SPR 20150
; Prevent LINK from doing bad things when loading
; block type 10 with the /ONLY:LOW switch set.
; ROUTINE: LNKOLD
;566 JNG 21-Jul-76 QAR EVS
; Prevent incorrect symbol tables in user's core image and maps
; that indicate that modules end at zero when paging.
; Routines: LNKCOR
;567 JNG 21-Jul-76 QAR SRM
; Prevent ?LNKISP message when a deferred global
; definition is seen for a symbol that is already defined.
; Routines: LNKOLD,LNKLOW
;570 JNG 22-Jul-76 QAR EVS
; Prevent loss of local symbols in DDT symbol table when
; some undefined symbols are present and the LS area is paging.
; Routines: LNKXIT
;571 JNG 19-Sep-76 QAR U. Ill.
; Prevent ?ILL MEM REF when one require file requires another.
; Routines: LNKOLD
;572 JNG 20-Sep-76 QAR EVS
; Make sure LS addr in core before doing POLISH symbol fixup.
; Routines: LNKLOD,LNKOLD
;573 JNG 21-Sep-76 QAR EG&G
; Prevent random USETO when ROOT of a relocatable overlay
; structure has no external symbols.
; Routines: LNKOV2
;574 JNG 30-Sep-76 SPR 20115
; Load OTS into low seg if no high seg exists yet and low
; seg is larger than 128K (256P).
; Routines: LNKLOD
;575 JNG 6-Oct-76 SPR 19781
; On /SAVE/EXECUTE, always specify extension of .LOW to
; the RUN UUO if a two-segment program so the monitor will
; ignore any .EXE file of the same name.
; Routines: LNKXIT
;576 JNG 2-Dec-76
; Correct usage of PT.SGN & PT.OTH in INTTAB hash table.
; Routines: LNKOV2
;577 JNG 6-Dec-76 SPR 21566
; Generate a fixup instead of HALTing when local block names
; are encountered and the LS area is paging to disk.
; Routines: LNKPAR,LNKOLD,LNKCOR
;600 JNG 17-Dec-76
; Change LNKHST &LNKLOW to load with each segment rather than
; assembling with each file. This saves much re-assembling when
; LNKHST is changed. Also change to use REL:SCAN.REL.
; Routines: LNKHST,LNKPAR,LNKLOW,LNKEXO,LNKSCN,LNKINI,*.CCL
;601 JNG 19-Dec-76 SPR 10-21427
; Print the correct version in the map if a /VERSION switch
; has been seen.
; Routines: LNKMAP
;602 JNG 19-Dec-76 SPR 10-21535
; Ignore ASCII text in non-loaded library modules.
; Routines: LNKNEW
;603 JNG 19-Dec-76
; Delete redundant assembly parameter PPDL, use LN.PPD
; everywhere.
; Routines: LNKPAR,LNKOLD
;604 JNG 20-Dec-76 QAR LSS
; Handle device NUL: correctly in all cases.
; Routines: LNKCOR,LNKFIO,LNKINI,LNKMAP
;605 JNG 21-Dec-76 QAR EJW
; Use OUTSTR's instead of OUTCHR's to TTY whenever possible.
; Routines: LNKLOD,LNKLOG,LNKOV1,LNKWLD
;606 JNG 21-Dec-76
; Get the protection of .HGH and .XPN files right.
; Routines: LNKXIT
;607 JNG 7-Jan-77 QAR PMH
; Make /HELP work on TOPS-20.
; Routines: LNKINI
;610 JNG 15-Jan-77 SPR 10-21730
; Modify file spec defaulting routines to handle ersatz devices
; correctly (e.g. [1,2,3]/DEFAULT:INPUT, then REL:HELPER
; as an explicit file spec).
; Routines: LNKFIO,LNKWLD
;611 DMN 21-Jan-77
; Add support for COBOL-74.
; Routines: LNKPAR,LNKMAP,LNKLOD,LNKERR
;612 JNG 22-Jan-77 QAR JBS
; Fix various polish bugs when a symbol is defined via a
; polish string, esp. if it is then referenced in another.
; Routines: LNKOLD,LNKLOD
;613 JNG 23-Jan-77 SPR 10-21868
; Load all user-defined default libraries before considering
; system default libraries so FOROTS will always go into the
; right segment.
; Routines: LNKLOD
;614 JNG 23-Jan-77
; Re-search FORLIB if more FORTRAN code is seen in ALGLIB.
; Routines: LNKLOD.
;615 JNG 23-Jan-77
; Never load blank file specs (broken by edit 610).
; Routines: LNKWLD
;616 JNG 23-Jan-77 SPR 10-21881
; Give a better error message than HALT if RENAMEs fail
; in LNKXIT.
; Routines: LNKXIT
;617 JNG 5-Feb-77
; Fix .REQUEST/.REQUIRE and /OVERLAY (broken by 610 and 615).
; Routines: LNKWLD
;620 JNG 6-Feb-77
; When merging a corrected file spec, don't overwrite the old
; device unless a new device was specified.
; Routines: LNKWLD
;621 MCHC 1-NOV-76
; /SAVE and /SSAVE switches generate an EXE file.
; /SAVE and /SSAVE no longer takes any argument.
; The code for generating .SHR/.HGH/.LOW is
; under conditional assembly FTEXE==0.
;622 MCHC 21-JAN-77
; Don't do HJBSET if there is no high seg.
; LNKXIT
;623 JNG 7-Feb-77 SPR 10-21908
; Don't blow up on two /PLOT switches
; Routines: LNKOV1
;624 JNG 23-Feb-77 SPR 10-21900
; Add a long message for ?LNKKIA.
; Routines: LNKERR
;625 JNG 24-Feb-77 SPR 10-21899
; Print an extra blank line in the log file after the ELN message.
; Routines: LNKPAR,LNKLOG,LNKOV1
;626 JNG 25-Feb-77 SPR 10-21898
; Don't search bound globals when a partial definition is seen
; Routines: LNKOLD
;627 JNG 27-Feb-77 SPR 10-21896
; Always type entire list of defining link numbers on %LNKARL
; message, even if list takes more than 5 character to type.
; Routines: LNKOV2
;630 JNG 27-Feb-77 SPR 10-21895
; Don't forget INCLUDEd or EXCLUDEd files after asking
; the user to correct an incorrect file specification.
; Routines: LNKLOD
;631 JNG 27-Feb-77 SPR 10-21894
; Print the correct file spec in the LNKEOV message.
; Routines: LNKOV1
;632 JNG 28-Feb-77
; Fix $LOCATION to always work, and add $FIXUP.
; Routines: LNKCOR,LNKLOD,LNKOLD,LNKOV1
;633 JNG 14-Mar-77
; Don't point any fixups at a Polish string until we're sure
; we want the Polish (might be /ONLY, non-loaded local, etc.)
; Routines: LNKOLD
;634 JNG 7-Apr-77 SPR 10-22464
; Never delete the user's input file on a fatal error, even
; if its extension is .TMP.
; Routines: LNKLOG
;635 JNG 10-Apr-77 SPR 10-22351
; Handle too many %LNKARL messages gracefully. This edit
; adds the /ARSIZE switch and the %LNKTMA and ?LNKABT
; messages.
; Routines: LNKPAR,LNKLOW,LNKINI,LNKOV1,LNKOV2,LNKSUB,LNKERR
;636 JNG 17-Apr-77
; Make TTYIT preserve T1, avoid ^H's to the TTY.
; Routines: LNKINI
;637 JNG 17-Apr-77
; Always give batch jobs the continuation error text on fatal
; errors, since there is no user to type "continue".
; Routines: LNKLOG
;640 JNG 17-Apr-77
; Avoid further disk overflow in LNKMAP if possible.
; Routines: LNKMAP,LNKCOR
;641 MCHC 10-FEB-77
; Always do HC.OUT of what's in core to ensure updated vestigial
; JOBDAT before generating an EXE file.
; LNKXIT
;642 MCHC 11-FEB-77
; Uses EXE file extension for the disk file generated as result of
; not having enough core (in JBNC).
; LNKXIT
;643 MCHC 15-FEB-77
; Fix bug with switch settings of P4, used to indicated an
; EXE directory entry whould be output in XCMPRL routine.
;644 MCHC 15-FEB-77
; Don't do JSYS 147(RESET) if EXIT rather than START is requested.
; This prevent PA1050 to come back into core.
; LNKXIT (TOPS20==1)
;645 MCHC 10-MAR-77
; While expanding LC to accomodate the symbol table at end
; and there is no more core (error return from LNKCOR) and no paging yet
; in LSREQ, page out to disk for the first time.
; LNKXIT.
;646 MCHC 10-MAR-77
; Dont touch a high seg page after the high seg is removed in %LOW
; LNKXIT
;647 MCHC 26-Apr-77
; Don't clear unneeded memory in LNKXIT (better VM performance)
; Routines: LNKXIT
;650 JNG 28-Apr-77
; Use VM on TOPS-10 if available under FTVM.
; Routines: LNKPAR,LNKLOW,LNKINI,LNKCOR,LNKOLD,LNKLOG,LNKMAP,
; LNKERR,LNKOV1,LNKOV2,LNKXIT,LNKWLD
;651 JNG 2-May-77 SPR 10-22609
; Put the overlay file where the user specifies.
; Routines: LNKOV1
;652 JNG 13-Jun-77 SPR 10-22456
; Avoid bad .SAV file when paging to disk. Much of user's
; program will be overwritten with some word from the program.
; Routines: LNKXIT
;653 JNG 13-Jun-77 SPR 10-22957
; Fix /SYSLIB with an argument. Broken by edit 457.
; Routines: LNKWLD
;654 JNG 15-Jun-77 SPR 10-22528
; Don't lose common block names from local symbol table.
; Routines: LNKLOD,LNKOLD
;655 JNG/JLd 24-Jun-77 SPR 10-23152
; Don't print an erroneous module name in the map when the start
; address is specified with a switch.
; Routines: LNKWLD
;656 JNG 11-Jul-77 QAR JMF
; Don't try to supercede an old output file if we find it
; on the user's library.
; Routines: LNKFIO
;657 JNG 12-Jul-77 QAR JMF
; Don't blow up while trying to delete temp files on a fatal
; error if IO.EMG area doesn't exist.
; Routines: LNKLOG
;660 JNG 12-Jul-77 QAR DMN
; Clear all .LINK storage at the end of each overlay.
; Routines: LNKOV1
;661 JNG 13-Jul-77 QAR BLISS-36
; Make the %LNKMDS message only a warning level (L%W).
; Routines: LNKLOD,LNKERR
;662 JNG 14-Jul-77 QAR DZN
; Update NAMPTR in T.776 so block-structured symbol
; files will work.
; Routines: LNKOLD
;663 JNG 30-Sep-77 SPR 10-24037
; Save GS.FR over LNKCOR call in LNK999.
; Routines: LNK999
;664 JNG 6-Oct-77 QAR Gene Spadi
; Don't destroy last word of bound globals on /NODE:0.
; Routines: LNKOV1
;665 JNG 7-Oct-77
; Fix core management bug with overlays. Broken by edit 650.
; Routines: LNKOV1
;666 JNG 24-Oct-77
; Fix edits 650 and 665, this time for sure.
; Routines: LNKOV1
;667 JNG 25-Oct-77
; Call correct paging routine to move window way up.
; Routines: LNKLOD
;670 JNG 25-Oct-77
; Don't overwrite DY.LNK in core shuffler.
; Routines: LNKCOR
;671 JNG 25-Oct-77 SPR 10-24076
; Don't leave a bad relocation table pointer lying around
; if an overlay has no relocation table or "other" relocation
; table, but the previous overlay did.
; Routines: LNKOV1
;672 JNG 25-Oct-77 QAR JLd
; Handle PPN's in request/require blocks correctly.
; Routines: LNKLOD
;673 JNG 25-Feb-78
; Update all of LINK's error messages to reflect the latest
; LINK manual. The FON, ILI, and LIT messages have been
; replaced by the MSR, IRB, and RBS messages. All of the
; long messages in LNKERR have been replaced by the
; explanation of the error from appendix B of the LINK manual.
; Routines: LNKERR,LNKOLD,LNKLOD
;674 JNG 26-Feb-78
; GETTAB the full path that LINK was run from so we can
; GETSEG our other high segments, even if we were run
; from an SFD. Requires TOPS-10 6.04 or later.
; Routines: LNKPAR,LNKLOW,LNKINI
;675 (Withdrawn)
;676 JNG 26-Feb-78
; Move the POPLP routine from LNKLOW to LNKINI.
; Routines: LNKLOW, LNKINI, LNKCOR
;677 JNG 27-Feb-78
; On TOPS-20, don't load symbols by default if loading
; overlays, since they cause much overhead at runtime.
; They will still be loaded on /SYMSEG or /DEBUG or /TEST.
; Routines: LNKINI,LNKLOD,LNKOV1,LNKOV2,LNKWLD
;700 MCHC 6-MAY-77
; Put in PSECT index check in polish block handling.
; LNKOLD
;701 MCHC 26-May-77
; Check for libaray search processing in block type 100.
; LNKOLD
;702 MCHC 26-May-77
; Save AC R on stack before a PUSHJ @ in Type 776 processing.
; LNKOLD
;703 MCHC 26-May-77
; Add CBL79, BLISS36, and BASIC-2 to list of compiler types.
;704 MCHC 5-JUL-77
; Don't write out EXE-dir for non-existant pages.
; LNKLOD, LNKXIT
;705 MCHC 6-JUL-77
; Wait for the file to be loaded before doing /SYMSEG.
; LNKWLD
;706 MCHC 26-JUL-77
; Add RC.NTB which contains a pointer to relocation tables that
; are ordered by the order seen by LINK. This is the permanent
; order that will be kept throughout the entire load.
; Any delayed fixups containing PSECT index must be converted
; to the permanent index number by this table.
; LNKLOW, LNKINI, LNKWLD, LNKOLD
;707 MCHC 2-AUG-77
; Keep global fixup chains separate if the first chain doesn't
; come before the new chain.
; LNKOLD
;710 MCHC 2-AUG-77
; Move hiseg to begin at 540000.
; LNKPAR
;711 MCHC 8-AUG-77
; Fix bug in MAP when only 1 PSECT in a module.
; LNKOLD, LNKMAP
;712 MCHC 8-AUG-77
; Add a check for PSECT index when a global is defined and
; stored fixups are being checked.
; LNKLOD
;713 MCHC 12-AUG-77
; Fix bug with a sparse EXE-directory.
; LNKXIT
;714 MCHC 16-AUG-77
; Add PSECT-name as a global symbol having
; origin as its value.
; LNKWLD
;715 MCHC 1-SEP-77
; Modify SYMSEG to to take PSECT name.
; LNKPAR, LNKLOW, LNKWLD, LNKXIT
;716 MCHC 9-SEP-77
; Performance improvements for loading large PSECTed programs:
; 1. When moving the window down, write out what we have
; and read in only as much as LN.WD.
; 2. When moving the window up, and the addr is already
; out on disk, don't bother to expand, just write
; out what we have and read in as much as LN.WD.
; LNKLOD
;717 MCHC 19-SEP-77
; Setup correct LINK addr to give back when reading from disk
; is less than current core size.
; LNKLOD
;720 MCHC 19-SEP-77
; Allow moving up of a block larger than 400000 by separating
; it into two steps.
; Also do the reverse BLT(POP loop) in memory rather than in the
; ACs on -20.
; LNKLOW, LNKCOR
;721 MCHC 19-SEP-77
; Change /SYMSEG to /SYMSEG:PSECT:psectname for taking
; PSECTNAME.
; LNKPAR, LNKWLD
;722 MCHC 20-SEP-77
; Implement PSECT attributes.
; LNKPAR, LNKOLD, LNKXIT
;723 MCHC 20-SEP-77
; Add /UPTO:octalnumber to allow user specification of
; symbol table upper limit.
; If not specified limit default to next PSECT origin.
; If limit .GT. next-PSECT-origin, overlaying will occur.
; LNKPAR, LNKWLD, LNKXIT
;724 MCHC 23-SEP-77
; Check for symbol table range in INGAP routine.
; LNKXIT
;725 MCHC 26-SEP-77
; Fix bug with incrementing process page when writing out
; overlay symbol table into EXE file.
; LNKXIT
;726 MCHC 20-OCT-77
; Fix bug in INGAP routine in LNKXIT.
;727 MCHC 3-NOV-77
; Give "Insufficient space" error message when symbol table
; has to be truncated to avoid overlay into high segment.
; LNKINI, LNKWLD,LNKXIT
;730 MCHC 10-NOV-77
; Allow proper loading of /DEBUG:XXX with /LINK.
; LNKLOW, LNKWLD, LNKOV1
;731 MCHC 17-NOV-77 QAR 10-02191(Stevens)
; Replace SEARCH C with SEARCH MACTEN, UUOSYM.
; Use symbols .SVXXX from UUOSYM.
; LNKPAR, LNKXIT
;732 MCHC 29-NOV-77
; Fix bugs related to loading code into the last page 777.
; LNKPAR, LNKLOW, LNKINI, LNKOLD, LNKXIT
;733 MCHC 30-NOV-77
; Fix bug with allocated high seg pages generating bad EXE format.
; LNKXIT
;734 MCHC 12-DEC-77 Stevens(QAR 10-02197)
; Add KL in CPUs. Do mix code check for KL & KA, and KL & KI.
; LNKPAR, LNKLOD
;735 MCHC 12-DEC-77 Stevens(QAR 10-02198)
; Remove REPEAT 0 around polish operators:
; MAX(20), MIM(21), EQ(22), LNK(23), DEF(24)
; and polish store operators: MOVEM(-7)
; LNKOLD
;736 MCHC 12-DEC-77 Stevens(QAR 10-02203)
; Change overflow file protection to standard protection.
; LNKCOR
;737 MCHC 15-DEC-77
; Clear link list pointer after it's given back
; LNKLOD
;740 PAH 17-DEC-77 Worcester Tech(QAR 10-02183)
; Remove /VERSION switch handling. Add handling of
; F.VER SCAN block field to DVOUT. and DVINP.
; LNKPAR, LNKSCN, LNKWLD, LNKFIO
;741 MCHC 29-DEC-77
; After a new segment is read in core from disk, and fixup chain
; is traversed for possible fixups in to the new segment,
; compare the fixup address with the window range.
; LNKLOD
;742 MCHC 30-DEC-77
; Don't force dump of one page unless first code is over 128k.
; LNKOLD, LNKXIT
;743 MCHC 10-JAN-78 EG&G(QAR 10-02217)
; When calculating offset relative to a block, use symbol .DBM
; LNKOV2
;744 MCHC 10-JAN-78 Worcester Tech(QAR 10-02244)
; Fix bug with EXE-file size calculation for LINK to
; pre-allocate enough blocks.
; LNKXIT
;745 MCHC 11-JAN-78
; Set default symbol table limit to 777777. If .HIGH. encountered,
; the defualt symbol table limit is adjusted to .FRESP+1 words
; before high segment origin.
; LNKPAR, LNKOLD
;746 MCHC 11-JAN-78
; Add a CHKBND routine to check for PSECT overlap right before
; going to LNKXIT.
; LNKLOD
;747 MCHC 18-JAN-78
; After relocation table is sorted, make sure LOWLOC is updated,
; especially if there was no code in .LOW. but space allocated,
; before going to LNKXIT.
; LNKLOD
;750 MCHC 24-JAN-78
; Reserve 2 page windows to allow code to come in that spans
; the page boundary.
; LNKPAR, LNKINI, LNKCOR
;751 MCHC 25-JAN-78
; Fix bug with calculation of space to give back in PG.SD.
; LNKLOD
;752 MCHC 26-JAN-78
; Add code in CPUTST routine to convert a CPU-code from Block 6
; into correct dispatch table offset for inconsistency check
; routines. Also, remove part of edit 734, and make KL check
; same as KI.
; LNKLOD
;753 MCHC 20-FEB-78
; Fix bug in routine SETRCY--save current RC slot, and move to new
; place.
; LNKOLD
;754 MCHC 20-FEB-78
; When LC(or HC) needs to be paged for the first time for adding
; symbol table at end, prevent overflow of LS area.
; LNKXIT
;755 MCHC 22-FEB-78
; Add a table TAB.ZE and some code to allow zeroing of free space
; (the space between TAB.AB and TAB.UB) for only the areas needed,
; meaning either the AB or the UB value was changed. This prevents
; unnecessary BLTs and improves loading performance for medium
; to large programs.
; LNKLOW, LNKCOR
;756 MCHC 22-FEB-78
; Fix bug in PSECT attribute bit definitions.
; LNKPAR
;757 MCHC 22-FEB-78
; Type out value of RC.HL(highest location) rather than RC.CV
; (current value) for overlayable PSECT when doing /COUNTER.
; Dont'clear RC.HL for overlayable PSECTs in Block 5 processing.
; LNKWLD, LNKOLD
;760 MCHC 22-FEB-78
; Expand PSECT overlap checks to check each PSECT with all others.
; LNKXIT
;761 MCHC 22-FEB-78
; Define a relocatable PSECT bit in PSECT attribute. Give error
; if code is generated into PSECT of unknown origin(relocatable
; PSECT not implemented in this version).
; LNKPAR, LNKLOW, LNKWLD, LNKOLD
;762 MCHC 25-FEB-78
; When paging occurs with high LOWLOC value(lowest code addr.),
; read in the right pages at the start of EXE file generation.
; LNKXIT
;763 MCHC 28-FEB-78
; Add block 24 so that:
;
; Block 22 SET PSECT block
; Contains PSECT index(or PSECT name if block 24 not used).
; Used to set the current relocation counters.
; Interspersed in block 1s and block 2s.
; Block 23 PSECT end block
; Contains PSECT name and break.
; A set of block 23s appears at end of a load module.
; Maybe used to order PSECTs, if block 24s are not used.
; Block 24 PSECT header block
; Contains PSECT name, attributes, PSECT index and origin.
; A set of block 24s appears at the start of a load module.
; Creates a relocation counter if needed for this PSECT.
; Orders the PSECTs of a module.
; If block 24s are not used: Block 22 must supply the PSECT name, and
; block 23s are used for ordering. A zero origin in block 22 is
; assumed to be a relocatable PSECT. Thus, /SET switch is required
; to set origin.
; LNKWLD, LNKOLD
;764 MCHC 28-FEB-78
; Update LOWLOC (the lowest location) in GETSST(get start of symbol
; table) routine incase symbol table is lower than code.
; LNKXIT
;765 MCHC 28-FEB-78
; Release on both TOPS-10 and TOPS-20 as LINK version 4(765)
; Routines: All.
;START OF VERSION 4A
;766 MCHC 17-MAR-78
; Store correct KL code(offset calculated by JFFO) for inconsistancy
; check of modules to come.
; LNKLOD
;767 MCHC 17-MAR-78
; Clear AC P2(required size) when coing forced dump of LC area,
; which returns through LNKCOR and will cause looping if
; garbage is in it.
; LNKOLD
;770 MCHC 17-MAR-78
; Add code to allow paging for the first time in routine to
; output undefined symbols(especially if undefined symbol table
; does not begin at end of a chunk of code.)
; LNKXIT
;771 MCHC 23-MAR-78
; Fix bug in doing large (.GT. 400000) pop loop in 2 chunks.
; LNKCOR
;772 MCHC 23-MAR-78
; Edit 770 did not adjust start of symbol table that came after
; the undefined symbol table.
; If /SET:FOO:nnnnnn/SYMSEG:PSECT:FOO is used so that a PSECT
; was created just for the symbol table, the following should
; happen:
; PAT..=nnnnnn
; .JBUSY (117)/ -U,,PAT..+100
; where U is the length of undefined symbol table
; .JBSYM (116)/ -L,,PAR..+100+U
; where L is the length of the symbol table
; LNKXIT
;773 JNG 30-Apr-78
; Fix GSDLT in LNKXIT to not leave some area's UB
; pointing beyond .JBREL if the GS area is already gone.
; Routines: LNKXIT
;774 JNG 30-Apr-78 SPR 10-25711
; Fix bad calculation of UW in EXE file writer.
; Routines: LNKXIT
;775 DZN 1-May-78 SPR 20-11396
; Make sure /DEBUG:FORTRAN loads the starting address of
; FORDDT and not the user's program (unless explicit /START).
; Routines: LNKWLD
;776 DZN 4-May-78 SPR 10-23733
; Fix address check and lost .JBVER when loading small programs
; with /SAVE and no data in core-image pages 0 or 1.
; Routines: LNKXIT
;777 DZN 18-May-78 SPR 10-24008
; Fix allocation of COMMON blocks when a COMMON block is first
; referenced but not defined, then later defined. Also document
; SY.RF as destroying P1-P4.
; Routines: LNKOLD, LNKLOD
;START OF LINK 5I
;1000 MCHC 14-Mar-78
; Support block type 1070 -- long symbol names.
; Set assembly switches for extended symbols and new blocks:
; .EXSYM==-1
; .NWBLK==-1
; LNKPAR, LNKLOW, LNKOLD, LNKNEW,LNKMAP,LNKWLD
;1001 MCHC 5-May-78
; Add block type 1072 -- Polish block supporting long names.
; LNKOLD, LNKNEW
;1002 MCHC 8-Jun-78
; Add code to do insert of long name plus a fixup triplet.
; LNKNEW, LNKOLD
;1100 DZN 23-May-78 SPR 10-24042
; Fix LNKMAP to correctly free the index blocks it uses for sorting,
; to keep the integrity of the DY area.
; Routines: LNKMAP
;1101 JNG 29-May-78 SPR 10-23623
; Fix LINK to correctly load indexed libraries that contain modules
; which have no entry points and thus do not appear in the index
; when indexed with MAKLIB.
; Routines: LNKOLD,LNKLOD,LNKWLD,LNKLOW
;1102 DZN 18-Jun-78 SPR 20-11085
; Fix paging routines to detect moving a window past 512P. In this
; case, make the end of the window set right at 512P.
; Routines: LNKLOD
;1103 DZN 19-Jun-78
; See that the list of .REQUEST/.REQUIRE blocks is not freed twice,
; to preserve the integrety of the DY area.
; Routines: LNKLOD
;1104 JNG 20-Jun-78
; Fix address checks when dumping LC or HC area to disk. Remove
; edit 750 in LH.DMP, so we will never try to shrink the current
; area by more pages than the area has.
; Routines: LNKCOR
;1105 JNG 20-Jun-78
; Fix edit 740 to not destroy an AC that held the input file's PPN.
; This caused LINK to not be able to find a file when the user gave
; an explicit path including SFDs.
; Routines: LNKFIO
;1106 JNG 27-Jun-78 QAR RDH
; Update HL.S1 from RC.CV of the highest PSECT loaded at the end of
; loading. This causes the EXE file generator to allocate all of
; the pages that it should if the last PSECT ends with a BLOCK statement.
; Routines: LNKLOD
;1107 MCHC 3-Aug-78
; Fix bug in .SETEX--routine to expand RC.TB and RC.NTB tables
; in DY area by obtaining bigger spaces, copying the data from
; the old tables, and freeing the old table spaces.
; The bug was in address calculation in freeing one of the tables.
; The code is re-arranged to do a DY.GET followed by DY.RET
; then another DY.GET and DY.RET
; LNKWLD
;1110 MCHC 7-Aug-78
; Type out the PSECT name as part of the error message when a
; non-existent one is used with /SYMSEG in GETSST routine.
; Don't clear the name from memory cell, loop back without restoring the
; stack and treat this case as a default case.
; LNKXIT
;1111 MCHC 7-Aug-78
; Fix LNKXIT core management bug introduced by edit 772.
; LNKXIT
;1112 JNG 15-Aug-78 SPR 10-25902
; Fix one off bugs in map printing segment lengths in K/P and
; words free.
; Routines: LNKPAR, LNKMAP
;1113 DZN 25-Aug-78 SPR 20-12001
; Fix memory management problems when plotting the overlay
; tree. See that LINK never shrinks back on TOPS-20 until final
; placement of the loaded program. Add LNKPOT message to tell user
; when LINK is plotting the overlay tree.
; Routines: LNKCOR, LNKXIT, LNKPLT, LNKERR
;1114 DZN 1-Sep-78 SPR 20-11999
; Zero count of COBOL symbol words and ALGOL OWNs loaded when
; done loading a module, so they don't get counted in subsequent
; modules in the same file.
; Routines: LNKOLD, LNKLOD
;1115 DZN 2-Sep-78 SPR 20-11997
; Add LNKHCL message to complain when loading high segment code
; into a link other than the root in an overlaid program.
; Routines: LNKERR, LNKOLD
;1116 JNG 7-Sep-78
; Put back part of the code removed by edit 716. Performance
; improvements are only kosher as long as the code removed is
; unneeded.
; Routines: LNKLOD
;1117 DZN 14-Sep-78
; Make /INCLUDE:args also set include mode, as it did long ago.
; But also add /NOINCLUDE to turn off include mode but not
; delete the original args.
; Routines: LNKPAR, LNKWLD
;1120 DZN 22-Sep-78 SPR 10-26135
; Fix CPU mismatch checks so that they work. Remove edit 766,
; revamp all CPU check code to use a bit mask of valid CPUs,
; delete the LNKKIA message and add LNKCCD, and change the
; map to include the correct information. Also, make the map
; show which CPUs the entire program can be run on.
; Routines: LNKPAR, LNKERR, LNKOLD, LNKLOD, LNKINI, LNKMAP, LNKLOW
;1121 JNG 4-Oct-78 QAR JMF
; Fix LNKXIT bug so .JBSYM ptr won't include the undefined symbol
; table. This was broken by edit 772.
; Routines: LNKXIT
;1122 DZN 5-Oct-78 SPR 10-26222
; Remove edit 740, which attempted to use SCAN's /VERSION switch,
; rather than LINK's. SCAN's switch is a file-specific switch, which
; is not the way LINK wants it to work. However, still fix the original
; problem (having to type /VERSION to 6 characters to work) by making
; LINK's /VERSION switch unique to any abbreviation.
; Routines: LNKPAR, LNKSCN, LNKWLD, LNKFIO
;1123 DZN 10-Oct-78 SPR 10-26580
; Use HRLI instead of HRL to load ENTER error flag.
; Routines: LNKFIO
;1124 DZN 11-Oct-78 SPR 10-26712
; Edit 636 broke LINK's ability to be run execute-only. Fix
; this by making the TTY log routine once more return into the
; potentially execute-only high segment properly.
; Routine: LNKINI
;1125 JNG 1-Nov-78 SPR 10-26379
; Don't try to run the high segment file on /SAVE/RUN (or /SAVE/DEBUG)
; when generating an EXE file. This fixes ?nnnLHC.EXE not found when
; the user types the above switches and the HC area has overflowed.
; Routines: LNKXIT
;1126 JNG 1-Nov-78 SPR 10-26433
; If all 7.01 GETTABs to determine where we came from are not available,
; use the contents of the ACs to do GETSEG UUOs.
; Routines: LNKINI
;1127 JNG 14-Nov-78 QAR DIB
; Set up the module length for PAT.. in the runtime symbol table.
; Routine: LNKXIT
;1130 DZN 26-Jan-79 SPR 10-27212
; Make LINK honor /MAXCOR correctly when a request for memory in a
; pagable area is made. In this case, edit 650 made LINK count the
; memory request toward the /MAXCOR value, even though the window
; can simply be moved.
; Routine: LNKCOR
;1131 DZN 26-Jan-79 SPR 10-27123
; Make LINK decide to load a non-sharable OTS if the low segment
; has grown within 40 pages of the origin of the OTS high segment
; rather than letting the low segment grow past it first.
; Otherwise, the low segment may cross the beginning of the OTS
; during the system library search when it is too late to fix it.
; Routine: LNKLOD
;1132 JNG 30-Jan-79 SPR 10-26576
; Re-work EXE file writer to fix several problems, including:
; . PSECTs above the high segment not written properly.
; . Absolute code not loaded correctly.
; . Bad EXE directory if loading overlays and small /SPACE switch.
; . PSECT attributes not written into the EXE file.
; . Page 1 written into page 0 if page 1 is lowest page containing code.
; . Address checks when writing the EXE file.
; . Bad EXE file if EXE directory is longer than two pages.
; . ?LNKCNW or bad DDT symbol table when loading PSECTs.
; Routines: LNKPAR, LNKINI, LNKLOD, LNKOLD, LNKWLD, LNKXIT.
;1133 JNG 30-Jan-79 SPR 10-26576
; Add a long message for the LNKSTL message.
; Routine: LNKERR
;1134 JNG 30-Jan-79 SPR 10-27024
; Avoid address check in LNKXIT while writing EXE file if lowest
; code loaded is between 2000 and 377777, but the program being
; loaded is not so large that LINK needs to overflow to disk.
; This edit is an extract of part of edit 1132.
; Routines: LNKXIT
;1135 DZN 31-Jan-79 SPR 10-26792
; Force PG.SU to expand anyway if a request crosses a page boundary
; and the window is not at least two pages long.
; Routine: LNKLOD
;1136 JNG 31-Jan-79 SPR 10-26518
; Avoid IO to unassigned channel in LNKXIT while writing an EXE file
; if segment ends on last word of a page and LINK is not paging to disk.
; This edit is an extract of part of edit 1132.
; Routine: LNKXIT
;1137 JNG 1-Feb-79 SPR 20-12411
; Don't change RC.CUR in T.24. Also set default PSECT name to left-
; justified .LOW. (not right-justified) if name not given in block.
; Routine: LNKOLD
;1140 JNG 6-Feb-79 SPR 10-26410
; Clear LSTSYM when a non-loaded local is encountered.
; Routine: LNKOLD
;1141 JNG 15-Feb-79 SPR 10-26290
; Make the EXE file writer stop writing when it passes the size
; of the user program, instead of writing the entire LC area.
; This edit supercedes edit 1136 and is an extract of edit 1132.
; Routine: LNKXIT
;1142 JNG 16-Feb-79
; Fix problems with multiple /SET:.HIGH.s introduced by edit 1132.
; Routine: LNKWLD
;1143 JNG 16-Feb-79 QAR CKS
; Make sure symbols never get into the LS area before a module name.
; If they try (/NOINITIAL/SET), dummy up a module name from the symbol.
; Routine: LNKLOD
;1144 DZN 16-Feb-79 SPR 20-12473
; Clean up code to run the .EXE file so that PA1050 is not left in
; memory on TOPS-20, and so that more of the final messages use .ERR.
; instead of OUTSTRs.
; Routines: LNKERR, LNKLOG, LNKLOW, LNKPAR, LNKWLD, LNKXIT
;1145 DZN 22-Feb-79
; Load local symbols and store symbol table pointers on TOPS-20 if
; /DEBUG:DDT and leaving program in memory. Broken by edit 1144.
; Routines: LNKXIT, LNKWLD
;1146 DZN 8-Mar-79 SPR 10-26290
; Change the 'Not enough core to load' message to 'Program too complex'.
; Then cause more cases to force .EXE file generation (e.g., PSECTs above
; high segment, gaps between PSECTS).
; Routines: LNKPAR, LNKXIT, LNKERR
;1147 JNG 12-Mar-79
; Avoid bad EXE file if lowest location loaded is above 400000, LINK
; is overflowing to disk, and lowest location loaded was not the first
; location loaded (i.e., load was not monotonic).
; Routine: LNKXIT
;1150 DZN 14-Mar-79 SPR 10-27632
; Make LOGINI in LNKINI.MAC use standard LKNFIO routines to set up the log
; file, so that the default path of a log file is preserved over the
; ENTER.
; Routine: LNKINI
;1151 JNG 29-Mar-79
; Add the new Job Data Area location .JBEDV to the initial symbols.
; Routine: LNKINI
;1152 JNG 3-Apr-79
; Get EXE file right when loading overlays. Broken by 1132.
; Routines: LNKOV1, LNKXIT
;1153 JNG 12-Apr-79 QAR JBD
; Give LNKIPX message if a Define PSECT block (type 24) contains
; an invalid PSECT index.
; Routine: LNKOLD
;1154 JNG 12-Apr-79 QAR JBD
; Re-write T.23 to fix the following problems:
; . Don't re-define the PSECT indices in terms of the order of block 23s.
; . Don't require a name of zero in the first block 23.
; . Don't do a set PSECT (block type 22) action on block type 23.
; . Expect PSECT index instead of name in first word (name still works).
; Routine: LNKOLD
;1155 JNG 13-Apr-79 QAR JBD
; Allow PSECT .HIGH. to be synonymous with TWOSEG.
; Routines: LNKOLD, LNKWLD
;1156 JNG 13-Apr-79 QAR JBD
; Relocate the breaks in block type 5 with respect to .LOW.
; every time, even if the current PSECT is not .LOW..
; Routine: LNKOLD
;1157 JNG 13-Apr-79 QAR DZN
; Suppress the PSECT name global symbols to DDT typeout.
; Routine: LNKWLD
;1160 JNG 14-Apr-79 QAR TW/JMF
; Don't put junk in runtime undefined symbol table for symbols
; that are used in Polish blocks.
; Routine: LNKXIT
;1161 JNG 4-May-79 SPR 10-27727
; Clean up Psect printout in map.
; Routines: LNKSUB, LNKMAP.
;1162 JNG 4-May-79 SPR 20-12825
; Set up DDT's symbol table pointers on /DEBUG/SAVE. This edit is
; an extract of edit 1144.
; Routines: LNKXIT
;1163 JNG 8-May-79 QAR DC
; Never mark .HIGH. as relocatable, since we default its origin.
; This was broken by edit 1155.
; Routine: LNKWLD
;1164 JNG 8-May-79 SPR 10-27598
; Don't overwrite the first page of the FX area when writing a map
; if the LS area is paging and the last piece of the area exactly
; fits into the window.
; Routine: LNKMAP
;1165 DZN 15-May-79 SPR 10-27925
; Zero LSTSYM whenever a call to SY.RLS says a symbol requested for symbol
; table fixup was not the last symbol loaded. This prevents symbol fixup
; requests from finding a long-obsolete symbol in LSTSYM that just happens
; to match.
; Routine:LNKLOD
;1166 JNG 15-May-79
; Don't allow PSECT indices in Polish blocks unless the first halfword
; was the default PSECT index for the block.
; Routine: LNKOLD.
;1167 JNG 17-May-79 QAR 10-3081
; Don't allow symbols typed as switch arguments to begin with digits.
; Routines: LNKSCN
;1170 JNG 23-May-79 SPR 10-27945, QAR 10-3070, 10-3087
; Fix some memory management problems in LNKXIT when not writing an
; EXE file.
; Routine: LNKXIT
;1171 JNG 30-May-79 QAR 10-3049
; Fix edit 1146 to say LNKPCL even on TOPS-10 if it doesn't like
; the PSECT attributes.
;1172 JNG 5-Jun-79
; Fix many memory management problems when writing a runtime symbol
; table, especially when psects are involved.
; Routines: LNKPAR, LNKINI, LNKOV1, LNKOV2, LNKWLD, LNKXIT
;1173 JNG 10-Jun-79
; Update RC.HL on /COMMON.
; Routine: LNKWLD
;1174 DZN 10-Jun-79 SPRs 20-12548, 20-12244, QAR 10-03199
; Revamp all error messages.
; . Label all messages with E$$xxx:: or Ennxxx:: so messages can be found
; when debugging. E$$xxx should be the label of the .ERR. (or its
; preceeding PUSH P,[channel]) that defines the .ERxxx text block.
; Ennxxx should be the label of all other .ERR.s with the same assigned
; mnemonic, with nn starting at 01.
; . Include the module and file name in which an error was detected in all
; applicable messages.
; . Make .OERR. synonamous with OUTSTR for use in place of .ERR. when a
; message must be printed with an OUTSTR, so that all such messages can
; be found easily.
; . Make the list of messages and long text in LNKERR and the actual
; messages in LINK agree.
; . Fix log device being a terminal other than the controlling one.
; . Clean up the wording of all messages to be more consistent.
; Routines: All
;1175 JNG 12-Jun-79
; Fix /START and /UPTO with symbols as arguments.
; Routines: LNKLOD, LNKWLD, LNKERR
;1176 JNG 12-Jun-79
; Disallow /SYMSEG:PSECT:name with /OVERLAY.
; Routine: LNKWLD
;1177 JNG 12-Jun-79
; Make /VERSION in global context not lose local switches.
; Routines: LNKPAR, LNKWLD
;1200 JNG 13-Jun-79
; If loading reentrant FOROTS, search SYS:FORLIB/SEGMENT:LOW.
; This is required for FOROTS version 6 and later.
; Routine: LNKLOD
;1201 JNG 13-Jun-79
; Disallow /SEGMENT:PSECT, which worked because it used the same
; keyword table as /SYMSEG.
; Routines: LNKPAR, LNKLOD, LNKOV1, LNKOV2, LNKWLD
;1202 JNG 14-Jun-79
; Fix /VERSION after 1172, and make LINK assemble on TOPS-20
; after edit 1174.
; Routines: LNKPAR, LNKFIO, LNKLOG, LNKXIT.
;1203 JNG 14-Jun-79
; Add support for Extended FORTRAN.
; Routines: LNKPAR, LNKMAP, LNKLOD, LNKERR
;1204 JNG 14-Jun-79
; Check for programs that extend beyond location 777777, and
; issue the LNKPTL message.
; Routines: LNKLOW, LNKOLD, LNKLOD, LNKERR
;1205 JNG/DZN 14-Jun-79 SPR 10-27954
; Re-claim some wasted blocks in .OVL files.
; Routine: LNKOV1
;1206 JNG 15-Jun-79
; Fix a NO.COR in LNK999 that edit 1174 missed.
; Routine: LNK999
;1207 JNG 29-Jun-79
; Make the LNKCMX message continue loading, so the user can run
; the program if he wants to.
; Routine: LNKLOD
;1210 JNG 29-Jun-79
; Allow 1-word block type 5's, so SAIL output will load. Also
; allow a program break of exactly 1,,0 (bypass the LNKPBI check).
; Routine: LNKOLD
;1211 JNG 29-Jun-79 QAR 10-3303
; Fix typo in LNKDRC message, avoid Illegal UUO. Broken by 1174.
; Routine: LNKWLD
;1212 DZN 4-Jul-79
; Fix various typos and other loose ends in the aftermath of 1174.
; Routines: LNKERR, LNKLOD, LNKLOG, LNKNEW, LNKXIT
;1213 JNG 5-Jul-79
; Eliminate the ISD message; on multiple partial definitions, just
; ignore them if their values agree, and give the MDS message if
; they don't.
; Routines: LNKPAR, LNKOLD, LNKLOD, LNKERR
;1214 DZN 9-Jul-79 QAR 10-03315
; Fix mismatched angle brackets so PIP's /V switch doesn't complain.
; Comments should not contain angle brackets unless they actually
; terminate conditionals, repeats, etc.
; Routines: LNKHST, LNKCOR, LNKOV1, LNKXIT
;1215 JNG 23-Jul-79 QAR R.ACE
; Use RC.HL for .ABS. and .LOW. for LOWLOC update at CHKLLC, since
; RC.CV may not be correct. In particular, RC.CV for .ABS. is always
; zero.
; Routine: LNKLOD
;1216 JNG 23-Jul-79 QAR CKS
; Preserve P1/P2 in SYMOUT, avoid illegal memory reference if
; undefined symbols exist.
; Routine: LNKXIT
;1217 DZN 25-Jul-79
; Clean up the listings for release. Update all copyright notices.
; Remove all editing lines. Break pages in good places.
; Routines: All
;1220 DZN 24-Aug-79
; Release on both TOPS-10 and TOPS-20 as version 4A(1220).
; Routines: All
;START OF VERSION 5
;1221 DZN 1-Oct-79
; Allow monitor commands to include LINK commands, in the form
; .R LINK (commands) or @LINK commands.
; Routine: LNKSCN
;1222 DZN 1-Oct-79
; Allow the full Radix-50 character set in the argument of the
; /NOREQUESTS: switch.
; Routine: LNKPAR
;1223 DZN 2-Oct-79
; 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 DZN 19-Oct-79 QAR 10-03507
; Check the format of polish blocks more carefully, complaining about
; invalid formats. Add the LNKNSO, LNKISM, LNKNAP and LNKJPB messages, and
; remove the LNKISO message. LNKJPB is a warning so that FAIL programs
; will load.
; Routines: LNKOLD, LNKERR
;1225 DZN 25-Oct-79 SPR 20-13384
; 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 DZN 12-Nov-79 SPR 20-13384
; 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 DZN 8-Jan-80
; Allow multiple COBOL-74 modules to be loaded without receiving an
; erroneous LNKCMC message. Broken by edit 1174.
; Routine: LNKLOD
;1230 DZN 24-Jan-80 SPRs 10-28964, 10-28965
; 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 DZN 28-Jan-80 SPR 10-29122
; Make sure the high segment is properly accounted for if only
; /SET:.HIGH.:n is seen, so that .JBHRL is properly set up.
; Routine: LNKOLD
;1232 DZN 29-Feb-80 SPR 10-29203
; See that overlay links do not lose their start addresses when symbolic.
; Broken by edit 1175.
; Routines: LNKLOD, LNKOV1
;1233 PY 29-Feb-80 SPR 10-29290
; See that RC.CV is not reset to RC.HL after a module if /SET:
; sets the relocation counter down.
; Routine: LNKOLD
;1234 PY 5-Mar-80
; If there are multiple overlapped PSECTs, one PSECT name will be
; printed as garbage in some LNKPOV messages.
; Routine: LNKLOD
;1235 MFB 5-Mar-80
; Clear LOGSUB to avoid possible IO TO UNASSIGNED CHANNEL when
; the log file has already been closed.
; Routine: LNKXIT
;1236 PY 6-Mar-80
; Teach LINK about KS10 CPUs.
; Routine: LNKPAR
;1237 PY 7-Mar-80
; Make LNKCCD Message 'Fatal but continues', instead of 'Fatal'
; Routine: LNKOLD
;1240 PY 13-Mar-80
; 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 PY 21-Mar-80
; Make the /SET switch give the LNKZSV error if given with no
; arguments, instead of the fatal LNKISN error.
; Routine: LNKWLD
;1242 PY 3-Apr-80
; 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 MFB 9-Apr-80 SPR 10-29396
; 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 PY 16-Apr-80
; 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 PY 23-Apr-80
; Fix Typo in edit 1224
; Routine: LNKOLD
;1246 PY 25-Apr-80
; Prevent a default high segment being generated if a /SYMSEG:HIGH
; appears before any high segment code. Programs which have high
; segments at other than 400000 will then load correctly.
; Routines: LNKLOD, LNKWLD
;1247 PY 25-Apr-80
; Print LNKOSL message if /SYMSEG:HIGH or /SYMSEG:PSECT:
; appear before the /OVERLAY switch.
; Note: This edit requires edit 1246.
; Routine: LNKOV1
;1250 PY 28-Apr-80 SPR 20-14184
; 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 PY 29-Apr-80
; Fix test in PG.SU so LINK will not attempt to expand windows
; beyond available memory.
; Routine LNKLOD
;1252 PY 5-May-80
; Remove edit 1221 on TOPS-20. Rescan will not work because of
; a SCAN restriction.
;1253 PY 14-May-80
; Remove edit 1233, which breaks COBOL programs.
; Routine: LNKOLD
;1254 PY 21-May-80
; Update X macro in MAKLIB macro to use arguments C and D
; Since PROCESSORS macro now expects them.
;1255 PY 23-May-80
; Make /SET: and rel block type 24 work when the PSECT name has
; been forward referenced as a global symbol.
;1256 PY 28-May-80
; Add code to put processor type in P4 before QREENT is called in
; overlayed programs. Eliminates wrong decisions, possible
; ILL-MEM-REFs.
;1257 PY 3-Jun-80
; 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 PY 5-Jun-80
; /SYMSEG with no argument (a non-preferred usage) should default
; to /SYMSEG:LOW, but defaults to /SYMSEG:HIGH after edit 1201
; Routines: LNKPAR
;1261 PY 5-Jun-80
; 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 PY 13-Jun-80
; Make LNKCMX print once only.
; Routines: LNKLOD, LNKLOW
;1263 PY 30-Jun-80
; Make expressions of the form: ABC=:XYZ## work when
; loaded in an overlay.
; Routine: LNKOV1
;1264 PY 09-Jul-80
; Fix LINK so that /PLOT will not cause %LNKDLT error, or
; other problems. Broken by edit 1144
; Routines: LNKLOW, LNKPAR, LNKPLT, PLTGBL
;1265 PY 09-Aug-80
; Make ALGDDT work with overlays by putting the .SYM file
; name in the first OWN block of an overlaid program.
; Routines: LNKLOD, LNKOV1
;1266 PY 31-Aug-80
; 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 PY 31-Aug-80
; Teach LINK about /DEBUG:ALGOL and about ALGDDT.
; Routines: LNKPAR, LNKWLD, LNKXIT
;1270 PY 4-Sep-80
; 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 PY 7-Oct-80
; Make FORLIB load into the low segment by default if the main
; program is not a FORTRAN program.
; Routine: LNKLOD
;1272 PY 30-Oct-80
; 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 PY 2-Dec-80 SPR 20-14571, 10-30269
; 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 PY SPR 10-30464
; Add code to expand the Polish stack if it is not
; large enough for a given Polish expression.
; Routines: LNKLOW, LNKOLD
;1275 PY SPR 10-30508
; 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 PY SPR 10-30571
; If a .REL file is being loaded /SEARCH and /SEG:HIGH,
; Don't set up the RC.TB tables for a second high segment
; in T.6 until sure the module will be loaded.
; Routine: LNKOLD
;1277 PY SPR 20-15585
; 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 PY 27-Feb-81
; 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 PY 12-Mar-81 SPR 10-30667
; 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 PY 12-Mar-81
; Fix problem with edit 1273 which makes LINK hang if
; no files are loaded.
; Routine: LNKXIT
;1303 PY 17-Mar-81
; Change the LNKLMN message to include the file name.
; Routines: LNKOLD, LNKNEW
;1304 PY 20-Mar-81
; Make TWOSEG work with Psects.
; Routines: LNKINI, LNKLOW, LNKOLD, LNKWLD
;1305 PY 20-Mar-81
; 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 PY 30-Mar-81
; Output LNKMPT error if psects and twoseg code mixed in
; the same module.
; Routines: LNKLOW, LNKOLD, LNKERR
;1307 PY 13-Apr-81
; Implement the /SUPPRESS switch. /SUPPRESS:SYMBOL will
; cause that symbol to be undefined even if it has been
; previously defined.
; Routine: LNKWLD
;1310 PY 13-Apr-81
; Make the LNKOFS message use the long error text.
; Routine: LNKOV1
;1311 PY 13-Apr-81
; Fix bug in edit 1301.
;1312 PY 21-Apr-81
; Load a nonsharable OTS, default segment, if user
; specified /SYMSEG:HIGH
; Routine: LNKLOD
;1313 PY 4-May-81
; 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 PY 9-Jun-81
; 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 PY 17-Jun-81
; Fix the MAKLIB macro to use bits for language types so that
; FORTRAN and Extended FORTRAN will work properly.
; Routines: LNKINI, LNKLOD
;1316 PY 1-Jul-81
; With Edit 1305 installed, TWOSEG root nodes of overlaid
; programs will not be written to the .EXE file correctly.
; Routine: LNKOV2
;1317 PY 14-Jul-81
; Fix calculation of .JBCOR which will be off by one page if
; the program low segment ends on a page boundary.
; Routine: LNKXIT
;1320 PY 14-Jul-81
; 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 PY 20-Aug-81
; 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 PY 8-Sep-81
; 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
;1323 PY 13-Nov-81
; Fix a bug with edit 1244 which may cause pages to be
; lost when loading a large program with a low high segment
; origin and not requesting a .EXE file.
; Routine: LNKXIT
;1324 PY 15-Nov-81
; Make /USERLIB also use bits for the compiler type.
; Routine: LNKWLD
;1325 PY 19-Nov-81
; If an undefined symbol has secondary right half chained
; fixups, output them for DDT.
; Routine: LNKXIT
;1326 PY 26-Jan-82
; Use the new COMPT. UUO which will remove PA1050 without
; affecting the users vestigial JOBDAT area. This fixes
; problems with TOPS-20 CCOC words. (TOPS-20 ONLY)
; Routines: LNKPAR, LNKXIT
;1327 PY 3-Feb-82
; Fix a case of left half additive fixup missed by edit
; 1243. This case occurs if the defining global is loaded
; before the left half request.
;1330 PY 10-Feb-81
; Add the following to the legal Radix-50 codes for the Type 2
; block:
;
; 30 Global left half deferred symbol definition
; 34 Global both halves deferred symbol definition
; 70 Global left half deferred DDT suppressed symbol definition
; 74 Global both halves deferred DDT suppressed symbol definition
;
; These are intended to replace the 44 and 64 codes for these
; functions. The 44 and 64 blocks will mean:
;
; 44 Global DDT suppressed definition, not deferred
; 64 Global right half deferred DDT suppressed symbol definition
;
; This will solve problems with the 44 and 64 functions which have
; never completely worked, and allow compilers to specifiy whether
; left half global definitions should be DDT suppressed or not.
; Routine: LNKOLD
; 1331 PY SPR 20-17252
; Certain messages such as LNKELN may print an extra CRLF on the
; terminal before the right bracket. Fix this so the extra CRLF
; only goes to the log file.
;1331-1400 Maintenance edits to LINK V4A.
;1400 DZN 2-Mar-80
; 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 PAH
; Performance enhancements to overflow and .EXE file handling.
; Routines: LNKPAR,LNKLOW,LNKOLD,LNKLOD,LNKCOR,LNKXIT
;1402 PAH
; Performance enhancements to .REL file handling.
; Routines: LNKOLD,LNKLOD,LNKLOW
;1403 PAH
; Streamline the initialization code on Tops-20.
; Routine: LNKINI
;1404 PAH
; New .REL block types T.1120-T.1137 for load-time arg type checking.
; Routines: LNKNEW,LNKLOD
;1405 PAH
; New .REL block types T.1010-T.1034.
; Routine: LNKNEW
;1406 PAH
; Remember to get and store the .REL file's creation time and date for
; /MAP. Broken in edit 1402.
; Routine: LNKFIO
;1407 PAH 23-Dec-80
; Fix the opening of overlay files, broken in edit 1401. Also fix
; PPNs in command lines, broken in the same edit.
; Routine: LNKFIO
;1410 PAH 23-Dec-80
; Clear T3 before the GETJI in LNKINI added in edit 1403.
; Routine: LNKINI
;1411 PAH 12-Jan-81
; Add AT.NC and AT.NC PSECT attributes for extended addressing.
; Routine: LNKPAR
;1412 PAH 20-Jan-81
; Make file overflow routines use nonzero sections if the user's
; program is being loaded into nonzero sections.
; Routine: LNKCOR,LNKOLD,LNKNEW
;1413 PAH 26-Jan-81
; Add code in LNKMAP to handle native overflow files properly.
; Routine: LNKMAP
;1415 PAH 2-Feb-81
; Write ALGOL .SYM files on channel TC, not channel DC.
; Routine: LNKXIT
;1416 PAH 16-Mar-81
; Put an ERJMP after the GTFDB in DVLKP. so asking for files
; on NUL: doesn't cause an illegal instruction trap.
; Routine: LNKFIO
;1417 PAH 14-Apr-81
; For TOPS-20, skip T.14 block correctly instead of clearing
; buffer.
; Routine: LNKOLD
;1420 PAH 27-Apr-81
; Save the address in T2 accross a call to the E$$FTH error.
; Routine: LNKLOD
;1421 PAH 4-May-81
; Display the creation date for the .REL file correctly in
; maps -- broken when nativizing .REL file input.
; Routine: LNKOLD
;1422 PAH 5-May-81
; Add PASCAL to the list of supported libraries.
; Routines: LNKPAR
;1423 PAH 5-May-81
; Implement Program Data Vectors.
; Routines: LNKPAR,LNKLOW,LNKWLD,LNKOLD,LNKXIT,LNKNEW
;1424 PAH 10-May-81
; Implement /MAXNODE.
; Routines: LNKPAR,LNKWLD,LNKOV1
;1425 PAH 10-Jun-81
; Extended addressing support code under FTFRK2 feature test.
; Routines: LNKOLD,LNKXIT,LNKCOR,LNKINI,LNKWLD
;1426 PAH 4-Aug-81
; Order the routines in LNKNEW correctly and delete duplicate T.1042-
; T.1044 introduced during a merge.
;1427 PAH 5-Aug-81
; 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 PAH 5-Aug-81
; Remove .NWBLK conditional code forcing an error from type 1060
; MAKLIB trace blocks.
; Routines: LNKNEW
;1431 PAH 2-Oct-81
; Correct typo in comparisons at PDV2:, preventing correct handling
; of /PVDATA:PROGRAM, /PVDATA:CBLOCK and /PVDATA:START.
; Routines: LNKWLD
;1432 PAH 2-Oct-81
; 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 DMN 2-Oct-81
; Distinguish COBOL-68,COBOL-74 and new COBOL for possible future
; COBOL release.
; Routines: LNKLOD,LNKERR,LNKPAR
;1434 DMN 2-Oct-81
; New Blocktype 1004 for byte pointer initialization.
; Routines: LNKLOW,LNKLOD,LNKNEW,LNKERR
;1435 DMN 2-Oct-81
; PASCAL library search and debugger support.
; Routines: LNKPAR,LNKLOD,LNKLOW,LNKERR,LNKWLD
;1436 PAH 2-Oct-81
; 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 PAH 7-Oct-81
; Defer detroying the LC overflow file under TOPS-20 until the
; last possible moment.
; Routines: LNKXIT
;1440 PAH 12-Oct-81
; Apply edits 1120,1237 and 1240 to blocks in LNKNEW.
; Routines: LNKNEW
;1441 PAH 14-Oct-81
; Now that LNKNSM is a nonfatal error be sure it returns properly.
; Routines: LNKLOD
;1442 PAH 19-Oct-81
; Prevent the attempt to write out section-zero pages on the first
; call to LC.OUT when a nonzero-section program is being loaded.
; Also enforce some restrictions on nonzero-section programs.
; Routines: LNKCOR,LNKWLD,LNKLOW,LNKOLD,LNKLOD
;1443 PAH 28-Oct-81
; Make sure LINK-10 doesn't have the program data vector .REL
; block code.
; Routines: LNKNEW
;1444 PAH 29-Oct-81
; Make sure all new n-bit relocation blocks coexist with .HIGH.
; and .LOW. correctly.
; Routines: LNKNEW
;1445 PAH/DMN 3-Nov-81
; Correct typo in POINT pseudo-op under T.1004 block support.
;1446 PAH 16-Nov-81
; Fix bad dates in MAP files on the -20.
;1447 PAH 30-Nov-81
; Move /MAXCODE code into LNKWLD so the -10 multiseg LINK
; builds again.
;1450 PAH 30-Nov-81
; Define PRGFRK symbol for fork handle, build nonzero sections
; in own fork.
;1451 PAH 8-Dec-81
; When searching PASLIB force load to low segment as default.
;1452 PAH 10-Dec-81
; 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 PAH 17-Dec-81
; Fix calculation of data block length in T.11XX.
;1454 PAH 21-Dec-81
; Calculate default SYMLIM correctly.
;1455 PAH 21-Dec-81
; Fix infinite loop in TTLLUP in LNKXIT.
; Modules: LNKXIT
;1456 PAH 8-Jan-82
; Change to T.112X and T.113X block definition: only one
; relocation block word, since only three data words are
; relocatable.
; Modules: LNKNEW
;1457 PAH 15-Feb-82
; Renamed to Edit 1470.
;
;1460 PAH 16-Jan-82
; 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 PAH 19-Feb-82
; Don't do an OPENF on the .EXE file JFN if an SSAVE JSYS is going
; to use it.
; Modules: LNKFIO
;1462 PAH 22-Feb-82
; Add JOVIAL to list of known processors.
; Modules: LNKPAR
;1463 PAH 24-Feb-82
; 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 PAH 25-Feb-82
; Get the right window for the PDV when putting one in a non-zero
; section.
; Modules: LNKXIT
;1465 PAH 22-Mar-82
; Change "Extended Fortran" to "G-Floating Fortran" in .MAP
; file output.
; Modules: LNKPAR
;1466 PAH 24-Mar-82
; Don't lose section numbers in inter-psect references.
; Modules: LNKOLD
; Start of Version 5A
;1467 PAH 22-Feb-82
; Correct typo at T1004C -- change D.IN1 call to D.CNT.
; Make D.CNT global.
; Modules: LNKNEW,LNKLOD
;1470 PAH 15-Feb-82
; Prevent the address calculation in T.1S6 from turning on
; index register bits of a byte pointer if the address overflows.
; Also correct some stack discipline troubles in T.1004 block
; processing.
; Modules: LNKNEW
;1471 PAH 24-Mar-82
; Remove use of PB.1 and T.11XX code from 1130 block support.
; Also restructure use of T.11XX coroutine for typechecking blocks,
; which have only one relocation word.
; Modules: LNKNEW
;1472 PAH 2-Apr-82
; Don't truncate the last character of a six-character function
; name, and don't lose the char count.
; Modules: LNKNEW,LNKPAR
;1473 PAH 14-May-82
; Make sure IFE/IFN FTFRK2 angle bracking is done to exclude
; extended addressing-related code on -10s and Model A -20s.
; Modules: LNKOLD
;1474 PAH 9-Apr-82
; Count 2ndary argument descriptors properly when processing
; arg lists in ARGSCN.
; Modules: LNKLOD
;1475 PAH 9-Apr-82
; Don't mark unknown subroutine or function names as global
; requests when storing the 2ndary symbol triplets for argchecking.
; Modules: LNKLOD
;1477 PAH 16-Apr-82
; Bugfixes for special character fixup handling in typechecking code.
; Rewrite SY.TY2 to pick up the right descriptors, also save R in
; TMATCH.
; Modules: LNKLOD
;1500-1677 Maintenance-related Edits
;
;1500 PAH 12-May-82
; Compute correct .REL file length if file size is given in
; less than 36-bit bytes.
; Modules: LNKFIO
;1501 PAH 14-May-82
; Don't lose section number for PSECT relocation in T.11EV.
; Modules: LNKOLD
;1502 AHM 17-May-82
; Suppress typeout of garbage symbol names in the %LNKFTH
; message.
; Modules: LNKOLD
;1503 AHM 17-May-82
; Do thirty-bit relocation, not eighteen-bit relocation,
; on start addresses in type 1010-1034 blocks.
; Modules: LNKNEW
;1504 PAH 18-May-82
; Fix typo at T.2+2 in LNKOLD that ruins 30-bit relocation of
; symbols.
; Modules: LNKOLD
;1505 AHM 18-May-82
; Set correct upper bound for psects that can cross section
; boundaries -- currently off by one.
; Modules: LNKWLD
;1506 HD 27-May-82
; Conditionalize UUOs and add JSYS calls where needed for handling
; the LS overflow and EXE files when building an overlay program.
; Modules: LNKXIT,LNKOV1
;1507 PAH 2-Jun-82
; Correct typo under TOPS20 conditional in DVCLS.
; Modules: LNKFIO
;1510 HD/PY 7-Jun-82
; Test for include mode as well as library mode at LNKNEW+4.
; Modules: LNKNEW
;1511 HD 7-Jun-82
; Don't destroy T1 unnecessarily.
; Modules: LNKFIO
;1512 AHM 16-Jun-82
; Prevent MACRO programs with concatenated PSECTs from overlaying
; if the last selected default PSECT before the end of module is 0.
; Module: LNKOLD
;1513 HD 23-Jun-82
; Don't destroy T1 at DVDLF. either.
; Modules: LNKFIO
;1514 HD 1-Jul-82
; On the -20, don't BLT out mapped pages when shrinking area LC --
; unmap them.
; Modules: LNKOV1
;1515 PAH 26-Jul-82
; Bracket out .NWBLK code in LNKMAP at TTLSRC until the problem with
; typeout of symbols for empty modules can be identified and fixed.
; Module: LNKMAP
;1516 PAH 27-Jul-82
; Fix bad test at CHKRS0+3.
; Module: LNKXIT
;1517 PAH 27-Jul-82
; Yank edit 1512, has bad side-effects.
; Module: LNKOLD
;1520 PY 29-JUL-82
; Remove IFE TOPS20 Conditional around call to GBCK.L at LSREDU+17
; to prevent certain large program form looping. This edit will be
; installed as a maintenance edit at a later date and given a
; maintenance edit number.
; Module: LNKCOR
;1521 HD 12-Aug-82
; Get all of overlay links symbol table in .EXE file.
; Module: LNKXIT
;1522 PAH 16-Aug-82
; Change JBGCM/JBGCMV to PMAP segments into place, instead of doing
; BLTs, on the -20. Cures missing pages when loading large programs.
; Module: LNKXIT
;1523 PAH 25-Aug-82
; Remove code that sets PASDT% to zero before PASLIB search.
; Module: LNKLOD
;1524 PAH 25-Aug-82
; Be sure PASDDT gets an entry in STLOCN specifying STADDR as the
; start address for PASCAL programs being debugged.
; Module: LNKXIT
;1525 PY 10-Sep-82
; Adjust TAB.PT when overflowing LC or HC to disk. Solves problems
; if these areas overflow while symbols are being written.
; Module: LNKCOR
;1526 PY 28-Sep-82
; Rewrite the TOPS-20 feature test files. Add edit history,
; remove debug switch from production version, add extended
; addressing and new rel block switches to debug version, and
; remove overlay feature test since it's the default.
; Modules: LNKT20, LNKD20
;1527 PAH 9-Sept-82 FORTRAN ALPHA TEST QAR #20-03010
; Save IO.CHN over the call to DY.GET in DVVRG2 so testing to see if
; the file being opened is an .EXE by checking IO.CHN still works.
; If paging begins during the DY.GET call, IO.CHN may get smashed and
; the bad channel number causes an ?I-O to Unassigned Channel error.
; Module: LNKFIO
;1530 PAH 15-Sept-82 FORTRAN ALPHA TEST QAR #20-0301?
; Use stack temporary space rather than asking for DY area space
; when constructing file names to avoid running out of storage when
; opening overflow files ( causing pushdown stack overflow.
; Module: LNKFIO
;1531 HD 7-Oct-82 FORTRAN ALPHA TEST QAR #20-03028
; Check to see if the address being written to the .EXE file
; is before the current window and if so unmap the current
; window and map in the previous window. ** maintenance edit 1527 **
; Modules: LNKXIT
;1532 PAH/HD 20-Oct-82 LINK 5.1 FIELD TEST QAR #10-04002
; When shrinking a window remap the upper half of the window, not
; the lower half. Since this increases the odds of having written
; the JOBDAT into the .TMP overflow file but having some other part
; of the program mapped by the time the .EXE file writer is invoked,
; be sure to test JOBPTR, not LW.S1, when deciding whether to write
; the JOBDAT at XCMPRS.
; Modules: LNKXIT,LNKCOR
;1533 PY 22-Oct-82
; Call LS.OUT to unmap LS pages when bringing in a new window
; in LNKMAP. Also remove code which BLTs the unused part of
; the window to zero. This prevents zeroing part of the LS
; overflow file. (TOPS-20 only).
; Module: LNKMAP
;1534 PAH 11-Nov-82
; Save and refix TAB.PT(R) over the call to LNKCOR in SYMOU2. It
; is not updated correctly in LNKCOR if the area overflows and
; low free core makes it necessary to shrink the window. Edit 1525
; cured most but not all of these cases.
; Module: LNKXIT
;1535 PAH 10-Dec-82
; Complete the missing bits to implement the ERROR keyword to
; the /MAP switch: put a test in LNKLOG before giving up on
; fatal errors and fix LNKMAP so it doesn't simply EXIT when
; MAPSW=$MAPERR
; Modules: LNKMAP,LNKLOG
;1536 PAH 21-Dec-82
; Have LINK-20 handle multi-section LS areas correctly, doing
; 30-bit arithmetic and comparisons when writing and reading
; .TMP files.
; Modules: LNKCOR, LNKXIT, LNKOLD.
;1537 PAH 21-Dec-82
; Correct typo in edit 1506.
; Cures ?Illegal instruction on PMAPs.
; Modules: LNKOV1.
;1540 PY 22-Dec-82
; Another case of zeroing the LS overflow file when
; generating a map.
; Routine: LNKMAP
;1541 PY 28-Dec-82
; Fix some overlay related problems. Unmap and close
; overflow files when deleting them. Handle more than
; 400000 octal words of symbols in an overlay better.
; Routines: LNKFIO, LNKMAP, LNKOV1
;1542 PAH 25-Jan-83
; Don't add NONZER into a 30-bit address.
; Module: LNKCOR
;1543 PAH 25-Jan-83
; LS.IN and LS.OUT should not use EXTFLG, it causes
; ?LNKMEF and attempts to create section 0 when programs
; are loaded into nonzero sections and the LS area overflows.
; Module: LNKCOR
;1544 HD 28-Jan-83
; When sending overlay plots to LPT: correct calculations for
; end of a buffer. Change SETZ DIGITS to SETZM DIGITS
; at DECPLT
; Module: PLTIO
;1545 PY 1-Feb-83
; Add couple missing continuation bits to errors which reference
; .ETIMF so the module name will be typed out on those errors.
; Routine: LNKLOD
;1546 HD 3-Feb-83
; Change the macro for user defined libraries at SETUSE+17 so that
; it use a compiler type bit and not a compiler type code.
; Routine: LNKINI
;1547 PAH 14-Mar-83 SPR #20-18906
; Replaces edit 1500. Fixes two cases edit 1500 did not handle
; right: zero bytesize and bytesizes that don't divide into
; 36 neatly.
;1700 PAH 17-May-82
; Move FOROTS origin to 500000 for FORTRAN V6 and beyond.
; Modules: LNKPAR
;1701 PAH 19-May-82
; Correct typo introduced during merge of V5A sources in T.1130.
; Modules: LNKNEW
;1702 HD 19-May-82
; Don't put a triplet with a spurious value into the LS area
; when a previously-unknown symbol is seen in association with
; a typechecking block.
; Modules: LNKLOD
;1703 PAH 27-May-82
; Deallocate unneeded typechecking triplets. Also permit searching
; bound globals for overlaid programs doing typechecking.
; Modules: LNKLOD
;1704 PAH 2-Jun-82
; Add code to handle type 1045 blocks and to write the writable
; overlay table in the .OVL file.
; Modules: LNKOV1,LNKOV2,LNKNEW,LNKLOW
;1705 PAH 2-Jun-82
; Treat /DEBUG:PASDDT like /DEBUG:FORDDT.
; Modules: LNKWLD
;1706 PAH 7-Jun-82
; Accept COMMONs in type 1045 blocks and set all ancestral links
; writable.
; Modules: LNKNEW
;1707 PAH 8-Jun-82
; Correct typo in edit 1706.
; Modules: LNKNEW
;1710 PAH 8-Jun-82
; Don't miss marking the last writable link in a load.
; Modules: LNKOV1
;1711 PAH 10-Jun-82
; Put CHKCHX routine under the FTFRK2 conditional.
; Modules: LNKLOD
;1712 PAH 16-Jun-82
; Call WRTPTR not WRTDAT at T1045C+3.
; Modules: LNKNEW
;1713 AHM 16-Jun-82
; Add long explanation for the LNKNHN message.
; Modules: LNKERR
;1714 AHM 16-Jun-82
; Defer updating RC.CV until end of module.
; Modules: LNKNEW
;1715 AHM 16-Jun-82
; Avoid exceeding a PSECT limit.
; Modules: LNKOLD
;1716 AHM 16-Jun-82
; Correct type 1070 block relocation. Also speed up the loops.
; Modules: LNKNEW, LNKOLD
;1717 AHM 16-Jun-82
; Correctly relocate Type 1070 symbol definitions.
; Modules: LNKOLD
;1720 AHM 16-Jun-82
; Correct typo at REL.TB+2L causing wild transfer of control.
; Modules: LNKNEW
;1721 AHM 16-Jun-82
; Streamline space allocation for PSECTs being loaded using
; Type 101X blocks.
; Modules: LNKNEW
;1722 AHM 16-Jun-82
; Don't lose right half relocation when the left half of the
; data word is absolute, at RLADD.
; Modules: LNKNEW
;1723 PAH 17-Jun-82
; Don't typecheck on nonexistent arguments if there's a mismatch
; between caller and function in number of arguments but this
; isn't to be treated as an error.
; Modules: LNKLOD
;1724 PAH 18-Jun-82
; Add a new action code to the coercion block handling. Code 4 is
; a no-op and suppresses even information-class messages about a
; particular attribute mismatch.
; Modules: LNKLOD
;1725 PAH 19-Jun-82
; Change references to Extended FORTRAN to be GFloating FORTRAN.
; Modules: LNKLOD,LNKERR
;1726 AHM 19-Jun-82
; Don't lose the last word in a 1010 block. Also minor changes
; for speed.
; Modules: LNKNEW
;1727 AHM 19-Jun-82
; Use RC.CV not RC.IV of the relocation block when calculating
; the first address into which data should be loaded.
; Modules: LNKNEW
;1730 PAH 22-Jun-82
; Add code to type 101X block processing to deal with overlays
; and to test limits.
; Modules: LNKNEW
;1731 PAH 22-Jun-82
; Make TOOBIG and T.1OVE global so they can be called from LNKNEW.
; Edit 1730 needs this edit.
; Modules: LNKOLD
;1732 AHM 22-Jun-82
; Fix ?LNKIVC that may occur when processing deferred fixups for
; a nonzero section.
; Modules: LNKLOD
;1733 AHM 22-Jun-82
; Suppress unnecessary typeout of ?LNKFTH message for section-local
; references and don't miss truncation of negative numbers with
; more than a halfword of precision.
; Modules: LNKLOD
;1734 PAH 23-Jun-82
; Edit 1733 put a free -1 in the left half for all deferred right
; half fixups...this edit corrects that.
; Modules: LNKLOD
;1735 PAH 23-Jun-82
; Correct typo introduced installing edit 1733.
; Modules: LNKLOD
;1736 PAH 25-Jun-82
; Strip all FMXFOR code, this is desupported.
; Modules: LNKPAR,LNKOLD,LNKWLD,LNKLOW,LNKLOD,LNKINI
;1737 AHM 25-Jun-82
; Some final fixups in nonzero sections which have been deferred
; because the chain wanders out of the window are never done.
; Modules: LNKLOD
;1740 AHM 25-Jun-82
; Don't try to create the lower section if the window falls across
; a section boundary when doing fixups.
; Modules: LNKLOD
;1741 AHM 25-Jun-82
; Don't add in a section number if the address already has one at
; SEGCK4.
; Modules: LNKLOD
;1742 AHM 25-Jun-82
; Don't lose the section number when doing type 1004 blocks.
; Modules: LNKNEW
;1743 PAH 29-Jun-82
; Correct typo in edit 1724.
; Modules: LNKLOD
;1744 hd 8-JUL-82
; Suppress loading if there are compilation errors
; with the EXECUTE command
; Modules: LNKINI
;1745 PAH 12-Jul-82
; In T.1045, preserve the contents of T4 across the call to DY.GET.
; Modules: LNKNEW
;1746 PAH 12-Jul-82
; Don't give an error message if, while doing a type 3 character fixup
; for typechecking, it is noticed that the argument is a character
; expression or variable.
; Module: LNKLOD
;1747 HD 13-JUL-82
; Reserve 10(octal) location at GLBBEG for global symbols needed for
; maintenance edits
; Module: LNKLOW
;1750 PAH 15-Jul-82
; Move origin of LINK-10 up to 540000.
; Module: LNKPAR
;1751 PAH 19-Jul-82
; Type out argument number in decimal for all the typechecking
; messages.
; Module: LNKLOD
;1752 HD 21-JUL-82
; Have map file state if an overlay is Relocatable, Absolute, Writable.
; Module: LNKMAP
;1753 PAH 21-Jul-82
; Make the error LNKCMX into a warning.
; Module: LNKLOD,LNKERR
;1754 PAH 27-Jul-82
; Type 1072 block support.
; Module: LNKNEW,LNKPAR,LNKLOW
;1755 PAH 28-JUL-82
; Put back -10 specific code at LHSET0 cures an ?ill mem ref
; from GBCK.L. But put a loop test in GBCK.L to prevent this
; kind of failure anyway
; Module: LNKCOR
;1756 AHM 29-JUL-82
; Make PSECT breaks keep their section number during relocation
; Module: LNKOLD
;
;1757 AHM 29-JUL-82
; Correct an off by one error in the calculation of the last word of
; PDV in edit 1423
; Module: LNKXIT
;1760 AHM 29-JUL-82
; Keep the section number in the last word of the PDV
; Module: LNKXIT
;1761 AHM 29-JUL-82
; Keep the section number of start addresses during relocation
; Module:LNKOLD
;1762 AHM 29-JUL-82
; Don't throw away PDV prematurely so that start address for programs in
; non-zero sections get set correctly
; Module: LNKXIT
;1763 AHM 29-JUL-82
; Add one to the size of the fixup chain table when it is being
; deallocated.
; Module: LNKCOR
;1764 AHM 29-JUL-82
; Make entry vectors work in non-zero sections
; Module: LNKOLD,LNKLOW,LNKXIT
;1765 PAH 2-Aug-82
; Put the non-extended-addressing code back at T.7 ( was removed
; by edit 1764 ).
; Module: LNKOLD
;1766 HD 11-Aug-82
; Remove a line of code at T.23+3 that was inserted in edit 1715.
; Module: LNKOLD
;1770 HD 11-Aug-82
; Change a JRST CPOPJ to a POPJ P, at TSTSEG+5
; Module: LNKNEW
;1771 HD 11-Aug-82
; Add 1 to T2 at to get the last word of the fixup chain table
; corrects a deficiency in edit 1763
; Module: LNKCOR
;1772 HD 11-AUG-82
; Make conditionals inserted in 1765 TOPS20 not FTFRK2 conditionals
; Modules:LNKOLD, LNKLOW
;1773 HD 12-AUG-82
; Supply the start address for XSVEC% in JBEX1A
; Modules:LNKXIT
;1774 PAH 12-Aug-82
; Turn .NWBLK conditional in LNKPAR on by default.
; Modules: LNKPAR
;1775 HD 13-Aug-82
; fix edit 1764 so that absolute start addresses work
; Modules: LNKOLD
;1776 PAH 20-Aug-82
; Restructure T.1AD and those routines using it.
; Modules: LNKOLD,LNKNEW
;1777 HD 15-Sept-82
; Fix type checking for case where caller's argument descriptor and
; function argument descriptor are not both in LINK's current window.
; Modules: LNKLOD
;2000 PAH 6-Oct-82
; Do not try to return the storage pointed to by PDVPRV if there
; is none. Cures ?LNKRUM from nonzero-section programs without
; program data vectors.
; Modules: LNKXIT
;2001 PAH 12-Oct-82
; Make sure T3 contains the pointer to the right typechecking triplet
; before calling RTSECT to return it. Cures return to free storage of
; formal descriptors, which should never happen.
; Modules: LNKLOD
;2002 PY 13-Oct-82
; Implement the /PLTTYP switch to allow selection of printer
; or plotter style overlay plots.
; Routines: LNKPAR, LNKLOW, LNKOV1, LNKPLT
;2003 PAH
; Make ?LNKCCD a warning, not an error.
; Routines: LNKOLD
;2004 PY/PAH
; Add rewritten LNKD20 and LNKT20 parameter files.
; Routines: LNKD20,LNKT20
;2005 PY 1-Nov-82
; Improve argument checking and coercion. Add code to type
; the caller's module name in errors. Rework error code, add
; LNKAMM, LNKLMM, LNKNVR, LNKPMA, LNKTMM, LNKURV, and LNKWNA
; messages to specify the type of mismatch. Add code to handle
; secondary descriptors. Special case return values which must
; only be checked against other return values. Add an implicit
; bit needed by FORTRAN. Comment the offsets in the parameter
; file. Add supporting code for variable severity messages.
; Routines: LNKPAR, LNKERR, LNKLOD, LNKLOG, LNKNEW
;2006 PY 8-Nov-82
; Fix a few problems related to PDVs, entry vectors, and
; extended addressing. Allow PDVs to cross page boundaries.
; Use a SEVEC instead of an XSVEC% in section zero. Use a length
; of 1 instead of JRST as default when not in section zero. Zero
; the entry vector length when using the /START switch.
; Routines: LNKWLD, LNKXIT
;2007 PY 9-Nov-82
; Add long error messages for LNKFTH, LNKTML, LNKUCB.
; Routines: LNKERR, LNKLOD, LNKNEW, LNKOV1
;2010 PY 9-Nov-82
; Fix incorrect byte pointer parameter which causes
; errors when type checking secondary descriptors.
; Routine: LNKPAR
;2011 PY 9-Nov-82
; Move /PLTTYP to LNKWLD so it can be used before /PLOT.
; Routines: LNKOV1, LNKWLD
;2012 PY 9-Nov-82
; Although formal,,actual do not mean much when referring
; to a function return, make the coersion block use the
; order called-routine,,caller to be consistent. Also
; handle -1 properly.
; Routine: LNKLOD
;2013 PY 10-Nov-82
; Fix /NOSYSLIB, broken by edit 1225.
; Routine: LNKLOD
;2014: PY 11-Nov-82
; Fix NUL:
; Routine: LNKFIO
;2015 PY 12-Nov-82
; Preserve the length of the function name accross calls
; to TMATCH, since it clobbers it but needs it correct
; every time it's called.
; Routine: LNKLOD
;2016 PY 12-Nov-82
; Fix /PVBLOCK:HIGH, and cases where the PDV contains the
; only non-zero words on the page.
; Routine: LNKXIT
;2017 PY 18-Nov-82
; Add parameter which indicates the number of words to allocate
; for the ASCIZ representation of a TOPS-10 filespec on TOPS-20.
; Routines: LNKPAR, LNKFIO
;2020 PY 7-Dec-82
; Instead of using one GS secondary triplett for each typechecking
; block, chain them together and use only one GS secondary for all
; typechecking for a symbol. Reduces fragmenting of the GS area.
; Routines: LNKPAR, LNKLOD, LNKNEW
;2021 PY 13-Dec-82
; If the LC or HC areas overflow but a .EXE file is not needed
; make the pages in the overflow file private.
; Routine: LNKXIT
;2022 PAH 28-Dec-82
; Tighten up termination conditions for the loop at T1045C in LNKNEW.
; Cures ?Ill mem reads amd writes when FORTRAN overlays are built.
; Routine: LNKNEW.
;2023 HD 29-Dec-82
; If a PMAP fails with a Quota Exceeded violation try expunging the
; directory and the retry the PMAP.
; routines:LNKCOR,LNKXIT.
;2024 HD 6-Jan-83
; Fix edit 2024 and typo in edit 1536.
; Routines: LNKCOR,LNKXIT
;2025 PAH 6-Jan-83
; At FOR.L0, define FOROT% as 400010 rather than using the
; OTSTBL value for FORTRAN. Fortran v6 and v7 FORLIB doesn't
; use this symbol for an OTS transfer vector base, but FORTRAN
; v5A libraries need it.
; Routines: LNKLOD
;2026 PAH 6-Jan-83
; Clean up the listings for release. Update all copyright notices.
; Remove all edit banners.
; Routines: All
;2027 HD 7-Jan-83
; Conditionalize PMAP error code in LNKXIT
; Routines: LNKXIT
;2030 PAH 20-Jan-83
; Shorten copyright statement in executable files and
; move it to the high segment.
;2031 PY 27-Jan-83
; Don't set the writable overlay bit when processing type 1045
; blocks (FORTRAN SAVE statement) unless actually doing an
; overlay load. Prevents undesirable searching of OVRLAY.REL
; Routine: LNKNEW
;2032 PY 3-Feb-83
; Allocate space in the LC overflow file before reading the
; root node back in under TOPS-20.
; Routine: LNKXIT
;2033 PY 14-Feb-83
; Allow a page, rather than a disk block of overlap when
; Copying the LS overflow area into the overlay temporary
; file under TOPS-20, since the core manager no longer
; allows LW.LS to be on a disk block boundary.
; Routine: LNKOV1
;2034 PY 17-Feb-83
; Fix bug in TOPS-20 code which tests for .IODMP instead
; of .IODPR, and remove edit 1531 which attempted to fix
; the symptoms of this problem.
; Routines: LNKFIO, LNKXIT
;2035 PY 17-Feb-83
; Don't map in non-existant pages at JBGMV0 copy-on-write,
; because then they cannot be created as private pages.
; Fixes Illegal memory READ at JBGMV1.
; Routine: LNKXIT
;2036 PY 28-Feb-83
; Fix up support for JOVIAL compiler type, add ADA compiler
; type.
; Routine: LNKPAR
;2037 PY 12-Apr-83 SPR 10-33725
; Fix an ILL-MEM-REF when there is no additive fixup, and
; there is an extended symbol which is the last thing in
; the GS area.
; Routine: LNKLOD
;2040 PY 13-Apr-83
; If LSYM is on a page boundary, and the LS area is
; paging, SYMINI can get confused because LSYM is
; pointing to a page which has never been written.
; It will try to LS.OUT out the wrong pages, and will
; PMAP away everything from the top of the LS area to
; the end of section zero (and part of section one).
; Routine: LNKXIT
;2041 PY 22-Apr-83
; Increase LN.FL, which is the size of an ASCIZ
; filespec. Prevents clobbering the stack when an
; explicit PPN is given which translates to a very
; long directory specification.
; Routine: LNKPAR
;2042 PY 2-Jun-83 SPR 10-33916
; Protect pointers to the LC and GS areas when
; calling TR.WLK, since that routine calls DY.GET
; which may move those areas.
; Routine: LNKOV2
;2043 HD 12-Jul-83 SPR 20-19327
; Prevent JBEXE1 form calling BLTJDA if JOBPTR is zero. BLTJDA tries
; to return DY area that it doesn't have causing LINK to die with a
; LNKRUM error.
; Routine: LNKXIT
;2044 PY 13-Jul-83 SPR 20-19374
; Always map out the window in CNA.LS under TOPS-20.
; It is always mapped when expanding the LS area
; during the LNKCOR call. Also, map the page after
; top of the area, not the top page of the area.
; Routine: LNKCOR
;2045 PY 24-Jul-83 SPR 20-19403
; Fix typechecking code to not destroy the first
; secondary triplet if it is not an argchecking
; triplet.
; Routine: LNKLOD
;2046 PY 24-Jul-83
; Occasionally garbage collect the DY area if
; many typechecking blocks have been returned.
; Routines: LNKPAR, LNKLOW, LNKLOD
;2047 PY 29-Aug-83
; Remove some code which tries to force common block
; data into the high segment when loading /SEG:HIGH.
; It will go there if it is supposed to because the
; address of the common block will be in the high seg.
; Routine: LNKOLD
;2050 JBS 6-Oct-83
; Make ?LNKSUP message appear in column 1 for batch jobs.
; Fix to edit 1744.
; Routine: LNKINI
;2051 JBS 31-Oct-83
; Fix bug where if user didn't have access to first directory in
; DSK:, LINK would say "send an SPR".
; Routine: LNKCOR
;2052 JBS 1-Nov-83
; Don't die when making the .EXE file if LINK doesn't have write
; access to the directory.
; Routine: LNKXIT
;2053 PY 8-Nov-83
; Make argument checking and the character fixup work
; across overlays and segments.
; Routines: LNKPAR, LNKLOW, LNKLOD, LNKOV1, LNKOV2
;2054 PY 16-Nov-83
; Don't forget the LS overflow area just because it all fits
; in memory, as it may be mapped on the -20.
; Routine: LNKXIT
;2055 PY 16-Nov-83
; Put the number of words desired in the correct accumulator
; before calling DY.GET. Eliminates potential ?LNKRUM
; Routine: LNKXIT
;2056 JBS 2-Dec-83
; Print LNKXCT message when executing programs in non-zero sections.
; Routine: LNKXIT
;2057 JBS 25-Jan-84
; Don't go into infinite loop if symbol table is fouled up at T.5LP.
; Routine: LNKOLD
;2060 HD 1-Feb-84 SPR# 10-34488
; Set up PPN and PATH, block if necessary, for RUN UUO at RUNEX2. Store
; information where it won't get lost when core shrinks.
; Routine: LNKXIT
;2061 HD 13-Feb-84
; Fix typo in edit 2060.
; Routine: LNKXIT
;2062 PY 6-Mar-84
; Set up dummy entries for TYP.BG and COEOVL for multiple high segment
; LINK.
; Routine: LNKSUB
;2063 HD 6-Mar-84
; Increase the value of .TLEN to 100 so that .TEMP will be large enough
; to hold a path block.
; Routine: LNKLOW
;2064 PAH 23-Mar-84 SPR #10-34493
; Zero P1 in T11CHR/T11CHL/T11CHF before calling SY.CHR/SY.CHL/SY.CHF
; from the T.11 code to avoid HALT from testing flag bits in a
; nonexistent fixup block in RT.FX when loading relocatable overlays.
; Routine: LNKOLD
;2065 PY 28-Mar-84 SPR 10-34610
; Test RC.HL for .ABS. against zero, not 140 when computing the correct
; value for LOWLOC in CHKLLC.
; Routine: LNKLOD
;2066 JBS 7-May-84
; Fix 2060 to get PPN from right place and check for default [0,0].
; Routine: LNKXIT
;2067 JBS 10-May-84
; Fix edit 2014 for NUL:. Was POPJing to data and blowing up.
; Routine: LNKFIO
;2070 HD 17-May-84
; Check only the right half of .JBERR to determine whether or not to
; suppress loading. Conditionalize .SGNAM.
; Routines: LNKINI, LNKXIT
;2071 JBS 21-May-84
; Remove OPDEFs of JSYSes and .GTxxx bits, remove definitions of PDV
; entry names (all of these are in .UNV files).
; Routines: LNKPAR, LNKSCN
;2072 PAH 19-Jul-84
; Fix two bugs in the 102X block processor: first, skip the first
; relocation byte in a 102X block when picking up the relocation
; for the start address and subsequent data. Second, fix a typo
; that stores the relocated data in the wrong halfword.
; Routines: LNKNEW
;2073 PY 20-Jul-84 SPR 20-20272
; Add the table base, not the pointer to it, when doing
; FORTRAN save. Eliminates LNKPEL, LNKOLC, and other
; errors in programs with more than 18 overlays.
; Routine: LNKNEW
;2074 PY 14-Aug-84
; Calculate the window size correctly when the window
; crosses a page in PG.MOV.
; Routine: LNKLOD
;2075 HD 12-Sept-84
; Remove .SGNAM, .SGPPN, and .SGDEV from the code and add a fatal
; error message if the GETTAB fails.
; Routine: LNKINI
;2076 HD 8-Oct-84 SPR# 10-34915
; Fix check in %PLOT for previously seen file spec so that LNKINS error
; does not occur if /MAP and /PLOT occcur on the same command line.
; Routine: LNKOV1
;2077 HD 2-Nov-84 SPR# 10-34930
; Set RC.HL during processing of /NEWPAGE so PAT.. and/or symbol table
; starts on page boundary.
; Routine: LNKWLD
;2100 HD 10-Dec-84
; Add long error text for LNKUSB error.
; Routine: LNKERR
;2101 JBS 17-Dec-84
; Fix off-by-one loop bug in "DVDPB.".
; Routine: LNKFIO
;2102 PAH (Superceded in LINK 6.0)
; Fix off-by-one byte pointer that results in bad FORTRAN character
; data initialization if the string in the .REL file falls exactly
; on a multiple of ten pages.
; Routine: LNKNEW
;2103 PAH 8-Feb-85
; Detect structure mismatches when typechecking.
; Routines: LNKPAR, LNKLOD
; Start of Version 6
;2200 PY 22-Nov-83
; 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 PY 30-Nov-83
; Use the correct deferred fixup for the fullword replacement
; store operator in the type 11 polish block.
; Routine: LNKOLD
;2202 PY 8-Dec-83
; 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 PY 14-Dec-83
; 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 PY 16-Dec-83
; Don't lose the section number when doing type 10 fixups in
; non-zero sections.
; Routine: LNKOLD
;2205 PY 20-Dec-83
; 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 JBS 27-Dec-83
; Set read-only attributes correctly for non-zero section psects.
; Routine: LNKXIT
;2207 PY 27-Dec-83
; Make psect indices consistent between old and new style REL blocks.
; Routines: LNKINI, LNKOLD
;2210 HD 4-Jan-84
; Reserve a static storage area in the low seg to hold long symbol names
; for calls to TRYSYM.
; Routines: LNKPAR, LNKLOW
;2211 JBS 4-Jan-84
; 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 PY 9-Jan-84
; Fix the type 1072 long polish block.
; Routines: LNKPAR, LNKERR, LNKLOD, LNKNEW, LNKOLD
;2213 PY 10-Jan-84
; Fix off by one bug when setting the section bits in FXSBIT.
; Routine: LNKCOR
;2214 PY 11-Jan-84
; 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 PY 13-Jan-84
; 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 PY/HD 18-Jan-84
; 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 HD 26-Jan-84
; 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 PY 26-Jan-84
; 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 HD 27-Jan-84
; Remove a HLL at COESP2+4 so that the section number is not destroyed
; and the call to SGCHK. works.
; Routine: LNKLOD
;2222 PY 30-Jan-84
; 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 PY 1-Feb-84
; Implement /REDIRECT and rel block 1131.
; Routines: LNKPAR, LNKLOW, LNKNEW, LNKOLD, LNKWLD
;2224 PY 7-Feb-84
; 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 PY 7-Feb-84
; Fix /PVDATA:VERSION:SYMBOL, broken by edit 2220.
; Routine: LNKWLD
;2226 PY 10-Feb-84
; 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 PY 14-Feb-84
; 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 PY 15-Feb-84
; 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 PY 16-Feb-84
; Fix typo in edit 2223 which causes ?LNKRUM if more than one
; type 1131 block is seen.
; Routine: LNKNEW
;2232 JBS 22-Feb-84
; Expand edit 2211 to not touch .JBREL if user said /NOJOBDAT.
; Routine: LNKXIT
;2233 PY 22-Feb-84
; Make sure that RC.CUR is non-zero if psects have been seen.
; Routine: LNKOLD
;2234 PY 23-Feb-84
; Fix /PVDATA:VERSION:CONSTANT, broken by edit 2220.
; Routine: LNKWLD
;2235 PY 23-Feb-84
; Give a fatal error if a user attempts overlays in non-zero
; sections.
; Routines: LNKOV1, LNKCOR, LNKERR
;2236 PY 24-Feb-84
; Don't mess up the stack with long names in the type
; 1131 block.
; Routine: LNKNEW
;2237 JBS 24-Feb-84
; Implement PDV memory maps.
; Routines: LNKXIT, LNKLOW, LNKPAR
;2240 PY 1-Mar-84
; 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 JBS 7-Mar-84
; Setup P1 and P2 even if /NOJOBDAT was specified. Affects DEBUG.
; Routine: LNKXIT
;2242 PY 28-Mar-84
; Create sections for psects, even if nothing has been
; stored in them.
; Routines: LNKCOR, LNKLOD
;2243 PY 5-Apr-84
; 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 PY 6-Apr-84
; Handle psect breaks which for psects which are over one
; section long correctly in the type 23 block.
; Routine: LNKOLD
;2245 JBS 10-Apr-84
; Implement PDV symbol table vector.
; Routines: LNKXIT, LNKLOW, LNKPAR, LNKWLD
;2246 HD 12-Apr-84
; Patch 1070 code so the additive and chained fixups work in all cases.
; Routine: LNKNEW
;2247 PY 20-Apr-84
; 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 JBS 25-Apr-84
; 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
;2251 PY 8-May-84
; Map out all low segment pages after building an overlay.
; Routine: LNKOV1
;2252 PY 9-May-84
; Don't overwrite the symbol bits in the switch blocks
; when storing a local switch.
; Routine: LNKWLD
;2253 PY 10-May-84
; Clear the relocatable bit for .LOW. when doing a /SEG:LOW
; high segment with a FORTRAN style type 3 block.
; Routine: LNKOLD
;2254 PY 17-May-84
; 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 PY 18-May-84
; 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 PY 21-May-84
; Make the runtime symbol table module headers code
; use the new style segment breaks.
; Routine: LNKXIT
;2257 JBS 22-May-84
; Add generic JSYS error handling mechanism (subroutine and macro).
; Routines: LNKPAR, LNKLOW, LNKLOG, LNKERR
;2260 JBS 24-May-84
; 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 JBS 29-May-84
; Fix off-by-one in non-zero page attribute setting code.
; Routine: LNKXIT
;2262 PY 31-May-84
; 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 PY 31-May-84
; Fix deferred thirty bit additive fixups, which are
; incorrectly treated as chained fixups instead.
; Routine: LNKLOD
;2264 PY 1-Jun-84
; 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 JBS 7-Jun-84
; Don't set attributes of null read-only psects.
; Routine: LNKXIT
;2266 PY 7-Jun-84
; Allow long symbols for argument typechecking.
; Routines: LNKLOD, LNKNEW
;2267 PY 8-Jun-84
; Fix bug in LNKHSH when short symbol is passed as long.
; Don't try to compensate for bug in LNKLOD.
; Routines: LNKHSH, LNKLOD
;2270 PY 12-Jun-84
; 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 PY 13-Jun-84
; Fix default for /ERRORLEVEL with no arguments. Fix
; the maximum values for /ERRORLEVEL, /LOGLEVEL, and
; /SEVERITY.
; Routine: LNKPAR
;2272 PY 14-Jun-84
; Set up defaults for /REDIRECT, in case psect is not
; specified in the switch or type 1131 block.
; Routines: LNKNEW, LNKOLD, LNKWLD
;2273 PY 14-Jun-84
; Fix type 12 blocks, make them work in non-zero sections.
; Routines: LNKLOD, LNKOLD
;2274 PY 14-Jun-84
; Fix some error messages in LNKXIT. Also don't
; try to SSAVE% sections above the highest which
; exists.
; Routine: LNKXIT
;2275 PY 15-Jun-84
; Don't let long symbol hash come up with a value of zero.
; Routine: LNKHSH
;2276 PY 15-Jun-84
; Improve typeout for /COUNTERS so that it tabs correctly
; in the presence of long symbols or big addresses.
; Routine: LNKWLD
;2277 JBS 18-Jun-84
; 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 PY 19-Jun-84
; 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 PY 20-Jun-84
; Fix up error messages involved in TOPS-20 native files.
; Routines: LNKPAR, LNKLOW, LNKCOR, LNKERR, LNKFIO, LNKLOD,
; LNKLOG, LNKNEW, LNKOLD, LNKXIT
;2302 JBS 26-Jun-84
; Fix off-by-one bugs in LC.IN and LC.OUT. Was allocating n-1 pages
; in all but boundry cases.
; Routine: LNKCOR
;2303 PY 2-Jul-84
; Fix problem with non-symbolic type 1004 blocks in wake
; of edit 2262.
; Routine: LNKNEW
;2304 JBS 3-Jul-84
; 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 HWD 6-July-84
; 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 PY 6-Jul-84
; 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 PY 6-Jul-84
; 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 PY 10-Jul-84
; Implement the type 1074 long common name rel block.
; Routines: LNKLOD, LNKNEW
;2311 PY 10-Jul-84
; Fix PDVs in high segment, or with symbol vector in high
; segment. Set bit zero when appropriate for symbol vector
; pointer.
; Routine: LNKXIT
;2312 PY 11-Jul-84
; 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 PY 11-Jul-84
; Make character data (types 1004 and 1160) work
; in overlays.
; Routine: LNKNEW
;2314 JBS 13-Jul-84
; 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 JBS 13-Jul-84
; Add {JSYS error text} for CLD, CSP, and DNA error documentation.
; Routine: LNKERR
;2316 PY 13-Jul-84
; Fix incorrect test which causes spurious LNKMEF errors.
; Routine: LNKOV1
;2317 JBS 16-Jul-84
; Fix edit 2247 to save copy-on-write page attributes correctly.
; Routine: LNKXIT
;2320 JBS 16-Jul-84
; Create empty read-only pages when necessary.
; Routine: LNKXIT
;2321 PY 16-Jul-84
; Fix a problem with moving the HC area when /SEG:LOW
; or /REDIRECT.
; Routine: LNKCOR
;2322 HD 17-Jul-84
; Make LNKCCE a fatal error and add long error text.
; Routines: LNKLOD,LNKERR
;2323 PY 19-Jul-84
; Add case sensitive symbol typein and typeout, using
; "/" and "\" as case shifters.
; Routines: LNKLOG, LNKSCN
;2324 PAH 19-Jul-84
; Expand edit 2064 to cover thirty-bit chained fixups.
; Supercedes edit 2064.
; Routine: LNKOLD,LNKNEW
;2325 PY 19-Jul-84
; Add another case to the TOPS-20 editable messages,
; and fix one which is incorrect.
; Routine: LNKLOG
;2326 HD 19-Jul-84
; Make 1003 (long title) blocks work.
; Routines: LNKNEW,LNKLOW,LNKPAR,LNKOLD
;2327 PY 20-Jul-84
; Don't convert external psect index to internal twice.
; Routine: LNKNEW
;2330 PY 8-Aug-84
; 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 PY 23-Aug-84
; 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 PY 28-Aug-84
; Get fullword value for symbol fixups.
; Routine: LNKOLD
;2333 HD 28-Aug-84
; Make the 1070 code set the fixup block flags in all cases when
; processing a fixup request.
; Routine: LNKNEW
;2334 PY 22-Oct-84
; 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 PY 23-Oct-84
; 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 PY 24-Oct-84
; Produce correct symbol vector when explicit
; /pvdata:memory is seen.
; Routine: LNKXIT
;2337 JBS 5-Dec-84
; Catch CFORK% JSYS errors.
; Routine: LNKINI
;2340 PY 7-Dec-84
; Check for bad psect index in type 1074 block.
; Routine: LNKNEW
;2341 PY 7-Dec-84
; Handle strange octal psect origins correctly.
; Routine: LNKWLD
;2342 PY 7-Dec-84
; Add LNKPTP long error, fix cases where TP overflow
; happens or the GS area moves while doing argument
; typechecking.
; Routines: LNKERR, LNKLOD
;2343 PY 7-Dec-84
; Fix some problems with the type 1160 block, add
; LNKUSD long error message.
; Routines: LNKERR, LNKLOD, LNKNEW
;2344 PY 11-Dec-84
; Add compiler type for C.
; Routine: LNKPAR
;2345 HD 7-Dec-84
; Clean up and fix 1003 block code.
; Routine: LNKNEW
;2346 PY 12-Dec-84
; Don't try to GET% the EXE file if it was not
; written to disk.
; Routine: LNKXIT
;2347 PY 14-Dec-84
; Use argument block for COMPT. which removes
; PA1050.
; Routine: LNKXIT
;2350 PY 14-Dec-84
; Use LC/HC.IN and .OUT properly to map non-existant
; read only pages.
; Routine: LNKXIT
;2351 JBS 17-Dec-84
; Fix E$$UMF routine to print JSYS names.
; Routine: LNKLOG
;2352 PY 9-Jan-85
; Don't allocate more pages than will fit in LC area in
; STUFDD.
; Routine: LNKXIT
;2353 PY 10-Jan-85
; Remove improper symbols from LNKXIT, move SPLFK%
; argument block definitions into LNKPAR.
; Routines: LNKPAR, LNKXIT
;2354 HD 11-Feb-85
; Make map file display long symbols - case senstivity - and 1003
; title block information
; Routine:LNKMAP
;2355 PY 11-Feb-85
; Handle debuggers which don't start at the normal start
; address (such as ALGDDT) properly.
; Routine: LNKXIT
;2356 PY 11-Feb-85
; 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 PY 12-Feb-85
; Set up correct channel for save/get when splice fork
; fails.
; Routine: LNKXIT
;2360 PY 13-Feb-85
; Fix problem with edit 2355.
; Routine: LNKXIT
;2361 PY 19-Feb-85
; Fix fencepost error in calculation of PDV size.
; Routine: LNKXIT
;2362 PY 20-Feb-85
; 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 PY 26-Mar-85
; Don't use DDT's start address if the user requested
; some other debugger and /TEST:DDT.
; Routine: LNKXIT
;2364 HD 28-Mar-85
; Use the correct value (HL.S1) for highest location loaded when
; calculating the number of pages for SSAVE JSYS.
; Routine: LNKXIT
;2365 HD 17-Jul-85
; Preserve T4 in NEWSCT to prevent LINK from dying after issuing certain
; messages if logical name LOG: is defined.
; Routine: LNKCOR
;2366 PY 9-Sep-85
; 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 PY 14-Oct-85
; Fix a TOPS-10 core management problem in wake of edit 2366.
; Routine: LNKOLD
;2370 PY 14-Oct-85
; Fix off-by-one when the last page of a segment is allocated
; but zero.
; Routine: LNKXIT
;2371 HD 10-Dec-85
; Fix exit condition for long symbol names in 1070 code
; Routine: LNKNEW
;2372 HD 10-Dec-85
; Use right half of LL.S2 to calculate seg origin.
; Routine: LNKOLD
;2373 HD 10-Dec-85
; Truncate long symbols properly for DDT undefined symbol table.
; Substitute "." for non sixbit characters when writting DDT symbol
; table.
; Routine: LNKXIT
;2374 HD 18-Dec-85 SPR #20-21027
; 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 HD 23-Dec-85
; Fix bug when reading in symbol table in LNKMAP.
; Routine: LNKMAP
;2376 HD 17-Apr-86
; Fix Long symbol code, an off by one bug in INSRTZ calculation for
; a BLT and the execution message if the program name is a long name.
; Routines: LNKLOD,LNKOLD
;2377 HD 5-May-86
; Make 1045 blocks handle long names.
; Routine: LNKNEW
;2400 HD 12-May-86
; Fix bug in 1003 blocks where W2 is changed if REDIRECT is being used.
; Routine: LNKNEW
;2401 HD 16-May-86
; Fix problem in 1002 blocks for long names
; Routine: LNKNEW
;2402 HD 22-May-86
; On TOPS-10 version have LINK print the first six characters of a long
; program name with the LNKXCT message.
; Routine: LNKXIT
;2403 HD 28-May-86
; New corporate Copywrite statement.
; Routines: ALL
;2404 HD 24-Jun-86
; Truncate long program name to first six characters for Control T
; message and store long load name in PRGBLK because NAMBLK gets over
; written by each new 1003 block.
; Routines: LNKLOW, LNKOLD, LNKXIT
;2405 RJF 4-Mar-87 SPR:10-35689
; Protect W3 value across calls that may cause the TP area to move
; during typechecking.
;2406 RJF 13-MAR-87 SPR:10-35621
; RDBACK in LNKLOD got messed up when the area size was bigger than
; the the remainder of user core to read back in. Then edit 2202
; made edit 1740 not work at all. Fix: remove edit 1740 and rework
; the code to handle the section change correctly.
;2407 RJF 1-APR-87 RAW SPR
; Edit 2406 still used some code that assumed section-0. Fix
; RDBACK one more time, to do half-word calculations within the
; current section.
; [LNKLOD]
;2410 RJF 21-JUL-87 SPR:10-36037
; Routine X160SS for Type 1160 blocks, updated TAB.UW(R) "same
; as PAG.S0(R)", even if the area wasn't being paged. A Type-1
; block comes and we think we have to read in a window.
; "IO to unassigned channel" follows. Fix: don't update TAB.UW
; if not already paging.
; [LNKNEW]
;2411 RJF/DE 22-JUL-87 SPR:20-21647
; FORTRAN always puts a zero word at the end of long entries.
; This can screw us up no end. Fix: account for this.
; Also, fix some other coding errors.
; [LNKOLD][LNKNEW]
;2412 RJF 31-JUL-87 RAW SPR
; Add code to check for PSECT overlap while loading code,
; and setting PSECT origins.
; [LNKOLD][LNKPAR][LNKERR]
;2413 RJF 14-AUG-87 RAW SPR
; Psect info got all messed up when the LS area was paging.
; Fix TTLPSC to page in psect info, from nnnLLS.TMP correctly.
; [LNKMAP]
;2414 RJF 21-AUG-87
; Fix SETNH to check for the same relocation pointer in RC.TB twice.
; Fortran programs and /REDIRECT can cause this.
; [LNKOLD]
;2415 RJF 21-SEP-87 RAW SPR
; Lower %HISEG for TOPS-20 again since SCAN changed. TOPS-20 needs
; this symbol defined in LNKPAR and in L2PLNK.CCL. Currently 520000.
; [LNKPAR]
;2416 RJF 19-NOV-87 SPR:20-21698
; AN incorrect length calculation at OVR6GC+11 caused one too
; many blocks to be written if the length of the area was exactly
; 128 words.
; [LNKOV2]
;2417 RJF 5-FEB-88
; Update COPYRIGHT to 1988.
; [All .MAC files]
;2420 DE/RJF 1-Apr-88 SPR:10-36101
; Reset the LC.UP block number pointer when a .TMP file is discarded.
; [LNKOV1]
END ;OF LNKHST