Trailing-Edge
-
PDP-10 Archives
-
bb-d549g-sb
-
lnkhst.mac
There are 53 other files named lnkhst.mac in the archive. Click here to see a list.
TITLE LNKHST - REVISION HISTORY OF LINK
SUBTTL D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN 24-Aug-79
;COPYRIGHT (C) 1973, 1979 BY
;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
;
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
;TRANSFERRED.
;
;
;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
;CORPORATION.
;
;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
CUSTVR==0 ;CUSTOMER VERSION
DECVER==4 ;DEC VERSION
DECMVR==1 ;DEC MINOR VERSION
DECEVR==1220 ;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
;1000 to 1077 Reserved for Development.
;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
SUBTTL THE END
END ;OF LNKHST