mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-01 09:21:15 +00:00
4674 lines
146 KiB
Plaintext
4674 lines
146 KiB
Plaintext
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
|
||
|