Trailing-Edge
-
PDP-10 Archives
-
bb-bt99e-bb
-
lnklod.c08
There is 1 other file named lnklod.c08 in the archive. Click here to see a list.
REP 2/1 ;08C1
SUBTTL D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN/PAH/PY 24-Jul-83
;COPYRIGHT (C) 1973, 1983 BY
WIT
SUBTTL D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN/PAH/PY 28-Mar-84
;COPYRIGHT (C) 1973, 1984 BY
REP 36/1 ;08C2
DECEVR==2046 ;DEC EDIT VERSION
WIT
DECEVR==2065 ;DEC EDIT VERSION
INS 114/6 ;08C3
;2053 Argcheck the BG area and defer fixups accross overlays.
;2065 Check .ABS. against zero when computing LOWLOC.
REP 13/10 ;08C4
SGCHK.: HRRI R,2 ;[1777] ASSUME HIGH SEG
WIT
;**;[2053] Replace at SGCHK. PY 8-Nov-83
SGCHK.: TRNN FL,R.FLS!R.FHS ;[2053] Forced loading?
PJRST SGCHK0 ;[2053] No, no problem
TRNN FL,R.FLS ;[2053] Which segment has been faked?
SKIPA T1,[1] ;[2053] Low seg has been faked
MOVEI T1,2 ;[2053] High seg faked if /SEG:LOW
HRR R,T1 ;[2053] Setup R For SG.TB; Preserve LH
MOVE T1,@SG.TB ;[2053] Get real value for RC table
EXCH T1,@RC.TB ;[2053] Restore it, get fake value
PUSH P,T1 ;[2053] Save fake value to restore later
PUSH P,R ;[2053] Remember which segment
PUSH P,LL.S2 ;[2053] LL.S2 Was also faked by T.3
HRRZS LL.S2 ;[2053] If we are loading F10, that is
PUSHJ P,SGCHK0 ;[2053] Now do the fixup
POP P,LL.S2 ;[2053] Restore LL.S2
POP P,R ;[2053] Remember which counter we grabbed
POP P,@RC.TB ;[2053] And restore it
POPJ P, ;[2053] Return From SY.RF
SGCHK0: HRRI R,2 ;[2053] ASSUME HIGH SEG
REP 3/66 ;08C5
SY.TYP:: ;[1405] SET UP TYPECHECK BLOCKS IN GS
MOVX W1,PT.SGN ;[1476]
WIT
SY.TYP::
;**;[2053] Insert after SY.TYP PY 8-Nov-83
IFN FTOVERLAY,< ;[2053]
SKIPN OVERLW ;[2053] Overlayed program?
JRST SYTYP ;[2053] No, don't worry about BG area
MOVE T3,ABCNT(W3) ;[2053] Compute ptr to flag word
IDIVI T3,5 ;[2053] Byte count to word count
SKIPE T4 ;[2053] If not exact fit
AOS T3 ;[2053] Count extra in next word
ADDI T3,ABNAM(W3) ;[2053] T3 Points to flag word
MOVE T3,(T3) ;[2053] Flags
TXNN T3,TPWHO ;[2053] Caller?
PUSHJ P,TYP.BG## ;[2053] Callee, typecheck the bound globals
; JRST SYTYP ;[2053] Check the current overlay
>;[2053] IFN FTOVERLAY
SYTYP:: MOVX W1,PT.SGN ;[2053] SET UP TYPECHECK BLOCKS IN GS
REP 12/66 ;08C6
;[1405] HERE TO PUT UNKNOWN SYBOL'S ARGBLK DATA PTR IN GLOBAL TABLE
WIT
;**;[2053] Insert after SY.TY0 PY 8-Nov-83
IFN FTOVERLAY,< ;[2053]
SKIPE ARGOVL ;[2053] Argchecking the BG area?
POPJ P, ;[2053] Yes, don't put it in
>;[2053] IFN FTOVERLAY
;[1405] HERE TO PUT UNKNOWN SYMBOL'S ARGBLK DATA PTR IN GLOBAL TABLE
REP 16/67 ;08C7
SYTY1N: MOVEI T1,.L ;[2020] NO TYPCHECKING YET, NEED EXTRA TRIPLET
WIT
;**;[2053] Replace after SYTY1A+5 Lines PY 8-Nov-83
SYTY1N: ;[2053]
IFN FTOVERLAY,< ;[2053]
SKIPE ARGOVL ;[2053] Typechecking the BG area?
POPJ P, ;[2053] Yes, don't put it in
>;[2053] IFN FTOVERLAY
MOVEI T1,.L ;[2053] NO TYPCHECKING YET, NEED EXTRA TRIPLET
REP 82/70 ;08C8
PUSH P,P3 ;[1777] SAVE IT
WIT
;**;[2053] Insert after COESPC+25 Lines PY 8-Nov-83
IFN FTOVERLAY,< ;[2053]
SKIPE ARGOVL ;[2053] Argchecking the BG area?
JRST COEOVL## ;[2053] Yes, may have to defer this fixup
>;[2053] IFN FTOVERLAY
COESP0::PUSH P,P3 ;[2053] SAVE IT
REP 97/70 ;08C9
POP P,T2 ;[1474] RESTORE OLD T2 VALUE
WIT
;**;[2053] Replace at COESP0+16 Lines. PY 8-Nov-83
COESP1::POP P,T2 ;[2053] RESTORE OLD T2 VALUE
REP 101/70 ;08C10
WIT
REP 35/84 ;08C11
IOR W1,W2 ;[747] ANY THING IN EITHER .ABS. OR .LOW.?
CAILE W1,140 ;[747]
WIT
SKIPN W1 ;[2065] ANYTHING IN .ABS.?
CAILE W2,140 ;[2065] OR IN .LOW.?
SUM 187651