Google
 

Trailing-Edge - PDP-10 Archives - bb-d549g-sb - link.pco
There are 8 other files named link.pco in the archive. Click here to see a list.
Digital Equipment Corporation       28-AUG-79    Page   1
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -224*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          25-APR-78

[Programmer]            CHEN

[Routines]              LNKLOD

[Key Words]             KL RELS     WRONG MSG

[Source Before Edit]    %4   (000765)

[Source After Edit]     %4A  (000766)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page   2
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     When mixing KI10 and  KL10  compiled  code,  LINK  will
catch  the  conflict  and  give  an  error  message, but the
message will complain about mixing KA10  and  KI10  compiled
code.
 

                        **********


[DIAGNOSIS]
 
     LINK doesn't understand REL files containing  the  KL10
flag.
 

                        **********


[CURE]
 
     Until LINK is taught about KL10 REL files,  just  treat
them like KI10 REL files.
 
 
Digital Equipment Corporation       28-AUG-79    Page   3
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1904 01-Mar-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1932 25-Apr-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	27-FEB-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	17-Mar-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==766		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;START OF VERSION 4A
2)	;766	MCHC	17-MAR-78
2)	;	Store correct KL code(offset calculated by JFFO) for inc
	onsistancy
2)	;	check of modules to come.
2)	;	LNKLOD
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page   4
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1329 08-Mar-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1713 25-Apr-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC	17-Mar-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==766		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;START OF LINK 4A
2)	;766	Return cpu table offset in P2 from routine CPUTST.
2)5	SUBTTL	LOAD CONTROL
**************
1)58		JRST	@CPUTBL(T1)	;[752] DISPATCH TO RIGHT TEST
****
2)58	;**;[766] Insert @ CPUTST+6L	MCHC	17-Mar-78
2)		MOVE	P2,T1		;[766] OFFSET NEEDED IN P2 AFTER
	 RETURNED
2)		JRST	@CPUTBL(T1)	;[752] DISPATCH TO RIGHT TEST
**************
1)58	CPUKA::	TXNN	T4,KIBIT	;CANNOT HAVE BOTH KA10 AND KI10
1)		POPJ	P,		;OK
****
2)58	;**;[766] Change @ CPUKA	MCHC	17-Mar-78
2)	CPUKA::	TXNN	T4,KIBIT!KLBIT	;[766]CANNOT HAVE BOTH KA10 AND
	KI10
2)		POPJ	P,		;OK
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page   5
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -225*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          26-APR-78

[Programmer]            CHEN

[Routines]              LNKOLD

[Key Words]             LOOPING     T.1LOW      BAD AREA N

[Source Before Edit]    %4A  (000766)

[Source After Edit]     %4A  (000767)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page   6
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     When loading a large program, or one containing PSECTs,
LINK can go into a loop.  If /ERR:0 is set, a LNKMOV message
referring to a non-existent or junk area name will  probably
be seen.
 

                        **********


[DIAGNOSIS]
 
     If the first address LINK sees is above 400000, then it
starts  loading  relative  to  the  first address seen in an
attempt to save disk overflow time for speed.  If an address
below  the  first  one is seen later, then LINK gives up and
overflows to disk.
 
     Unfortunately, the disk overflow routine it calls is  a
local  routine  in  LINK's  memory manager that is otherwise
only called when LINK is trying to expand and discovers that
it  must  write  a  new  area to disk in order to do so.  In
fact, the routine assumes that it  was  called  under  those
conditions,  and  makes  other calls to finish the expansion
process that it thought was in progress before returning  to
its caller.
 
     That assumption is not valid in this case, so  none  of
the memory manager's registers etc. are set up.  This causes
the other calls back into the memory manager to "finish" the
expansion to loop.
 

                        **********


[CURE]
 
     Before calling  the  disk  overflow  routine,  set  the
memory  manager's register containing the number of words to
expand to zero,  thus  causing  it  to  return  immediately,
Digital Equipment Corporation       28-AUG-79    Page   7
PCO Log Report


before it gets into trouble.
 
 
Digital Equipment Corporation       28-AUG-79    Page   8
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1932 25-Apr-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 2309 25-Apr-1978
 
1)1	DECEVR==766		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==767		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;767	MCHC	17-MAR-78
2)	;	Clear AC P2(required size) when coing forced dump of LC
	area,
2)	;	which returns through LNKCOR and will cause looping if
2)	;	garbage is in it.
2)	;	LNKOLD
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page   9
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 1835 01-Mar-1978
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 2133 25-Apr-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC	17-Mar-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==767
2)	;LOCAL ACC DEFINITIONS
**************
1)4	COMMENT	\
****
2)4	;START OF LINK V4A
2)	;767	Fix a bug to prevent LINK from looping when forced dump
	of lc is done.
2)	COMMENT	\
**************
1)11		SETZ	P3,		;[732]
1)		PUSHJ	P,LC.DMP##	;[742] FORCE CURRENT WINDOW TO D
	ISK
****
2)11	;**;[767] Change @ T.1LOW+11L	MCHC	17-Mar-78
2)		SETZ	P2,		;[767][732] NO EXPANSION, PREVEN
	T LOOPING
2)		PUSHJ	P,LC.DMP##	;[742] FORCE CURRENT WINDOW TO D
	ISK
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  10
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -226*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          27-APR-78

[Programmer]            CHEN

[Routines]              LNKXIT

[Key Words]             LNKCEF      AFTER LNKS

[Source Before Edit]    %4A  (000767)

[Source After Edit]     %4A  (000770)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  11
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK may fail with the LNKCEF message  at  the  end  of
loading, just after the LNKSST message has been typed.
 

                        **********


[DIAGNOSIS]
 
     If the area into which the undefined symbol table is to
be  loaded  is not paging to disk, and if the area cannot be
expanded enough to contain the first word of  the  undefined
symbol  table  without  overflowing  to disk, then LINK will
fail with the LNKCEF message.  There is simply  no  code  to
start the appropriate area paging at that point.
 

                        **********


[CURE]
 
     Add code to consider the case.
 
 
Digital Equipment Corporation       28-AUG-79    Page  12
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 2309 25-Apr-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1449 27-Apr-1978
 
1)1	DECEVR==767		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==770		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;770	MCHC	17-MAR-78
2)	;	Add code to allow paging for the first time in routine t
	o
2)	;	output undefined symbols(especially if undefined symbol
	table
2)	;	does not begin at end of a chunk of code.)
2)	;	LNKXIT
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  13
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1503 03-Mar-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1445 27-Apr-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	17-Mar-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==770		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;START OF VERSION 4A
2)	;770	Add code to allow first-time paging in und-symbol table
	routine.
2)5	SUBTTL	ENTER HERE
**************
1)10		MOVE	P4,PATSPC	;NEED TO LEAVE A HOLE FOR PATCHI
	NG
****
2)10	;**;[770] Insert @ UDF0A+1L	MCHC	17-Mar-78
2)		PUSHJ	P,CHKPAG	;[770] INCASE PAGE FOR THE FIRST
	 TIME
2)		MOVE	P4,PATSPC	;NEED TO LEAVE A HOLE FOR PATCHI
	NG
**************
1)10		ADD	P2,TAB.LB(R)	;IN CORE
1)		SUB	P2,LW.S0(R)	;REMOVE WINDOW OFFSET
1)		CAMG	P2,TAB.AB(R)	;ENOUGH CORE?
****
2)10	;**;[770] Exchange 2 lines @ UDF0A+6L	MCHC	17-Mar-78
2)		SUB	P2,LW.S0(R)	;[770] REMOVE WINDOW OFFSET
2)		ADD	P2,TAB.LB(R)	;[770] IN CORE
2)		CAMG	P2,TAB.AB(R)	;ENOUGH CORE?
**************
1)10		PUSHJ	P,LNKCOR##	;GET IT
1)		  PUSHJ	P,NO.COR##	;TOTAL FAILURE
1)		SKIPN	TAB.PG(R)	;[570] PAGING?
****
2)10	;**;[770] Replace @ UDF0A+12L	MCHC	17-Mar-78
2)		SETOM	LS.PP		;[770] PREVENT OVERFLOW OF LS AR
	EA
2)		PUSHJ	P,LNKCOR##	;GET IT
2)		  JRST	[MOVE	P2,USYM		;[770] NO CORE, LOOP BAC
	K AND PAGE
Digital Equipment Corporation       28-AUG-79    Page  14
PCO Log Report


2)			JRST	UDF0A]		;[770]
2)		SKIPN	TAB.PG(R)	;[570] PAGING?
**************
1)10	UDF0B:	PUSHJ	P,CHKPAG	;[570] JUST INCASE WE STARTED PA
	GING
1)		MOVE	P2,P4		;RELATIVE
1)		ADD	P2,TAB.LB(R)	;FIX IN CORE
1)		SUB	P2,LW.S0(R)	;REMOVE WINDOW OFFSET
1)	UDF1:	SKIPGE	SYMSEG		;[715] PSECT NAME USED?
1)		JRST	.+3		;[715] YES, JUMP
****
2)10	;**;[770] Delete @ UDF0B	MCHC	17-Mar-78
2)	UDF0B:	MOVE	P2,P4		;RELATIVE
2)		ADD	P2,TAB.LB(R)	;FIX IN CORE
2)		SUB	P2,LW.S0(R)	;REMOVE WINDOW OFFSET
2)	;**;[770] Insert @ UDF1	MCHC	17-Mar-78
 
 
2)	UDF1:	SETZM	LS.PP		;[770] CLEAR IT
2)		SKIPGE	SYMSEG		;[715] PSECT NAME USED?
2)		JRST	.+3		;[715] YES, JUMP
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  15
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -004*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          27-APR-78

[Programmer]            CHEN

[Routines]              LNKCOR

[Key Words]             ILL INST    POP LOOP    MISSING PO

[Source Before Edit]    %4A  (000770)

[Source After Edit]     %4A  (000771)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  16
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Illegal Instruction when  loading  an  extremely  large
program.   This  will  only happen when running a version of
LINK whose high segment starts above 400000, as it  does  on
TOPS-20.
 

                        **********


[DIAGNOSIS]
 
     LINK's POP loop to move memory areas up can only handle
an  area of 377777 words or less.  If one of the areas grows
beyond this, then LINK will split the move up into  multiple
moves.   Unfortunately,  the  code  to do this PUSHes a word
onto the stack that is never POPed back off.
 

                        **********


[CURE]
 
     POP the extra word off at the end of the loop.
 
 
Digital Equipment Corporation       28-AUG-79    Page  17
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1449 27-Apr-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1708 27-Apr-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	17-Mar-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	23-Mar-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==770		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==771		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;771	MCHC	23-MAR-78
2)	;	Fix bug in doing large( > 400000) pop loop in 2 chunks.
2)	;	LNKCOR
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  18
PCO Log Report


[FILCOM]
File 1)	LINK:LNKCOR.MAC[30,4507]  	created: 1959 01-Mar-1978
File 2)	LINK:LNKCOR.MAC[10,645063]	created: 1718 27-Apr-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG	23-Mar-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	SALL
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==771		;DEC EDIT VERSION
2)	SALL
**************
1)4	SUBTTL SIMPLE TESTS FIRST
****
2)3	;771	Fix bug with shuffling large( >400000) core segment.
2)4	SUBTTL SIMPLE TESTS FIRST
**************
1)14		MOVE	T4,TAB.AB(T2)	;TOP
****
2)14	;**;[771] Insert @ MOVUP1+5L	MCHC	23-Mar-78
2)		PUSH	P,T2		;[771] SAVE WHO WE ARE
2)		MOVE	T4,TAB.AB(T2)	;TOP
**************
1)14		CAMN	T2,[CHUNK1,,0]	;[720] DOING 2 STEPS?
****
2)14	;**;[771] Insert @ POPLP+2L	MCHC	23-Mar-78
2)		POP	P,T2		;[771] RESTORE STACK
2)		CAMN	T2,[CHUNK1,,0]	;[720] DOING 2 STEPS?
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  19
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -227*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(770)

[Date Entered]          27-APR-78

[Programmer]            CHEN

[Routines]              LNKXIT

[Key Words]             PAT.. AREA  NOALLOC

[Source Before Edit]    %4A  (000771)

[Source After Edit]     %4A  (000772)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  20
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     If a PSECT is created just to hold  the  symbol  table,
then the PAT..  area will not be allocated.
 

                        **********


[DIAGNOSIS]
 
     This case was never considered.
 

                        **********


[CURE]
 
     Allocate the area.  This edit requires edit 770 to have
been installed.
 
 
Digital Equipment Corporation       28-AUG-79    Page  21
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1708 27-Apr-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1833 27-Apr-1978
 
1)1	DECEVR==771		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==772		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;772	MCHC	23-MAR-78
2)	;	Edit 770 did not adjust start of symbol table that came
	after
2)	;	the undefined symbol table.
2)	;	If /SET:FOO:nnnnnn/SYMSEG:PSECT:FOO is used so that a PS
	ECT
2)	;	was created just for the symbol table, the following sho
	uld
2)	;	happen:
2)	;		PAT..=nnnnnn
2)	;		.JBUSY (117)/	-U,,PAT..+100
2)	;				where U is the length of undefin
	ed symbol table
2)	;		.JBSYM (116)/	-L,,PAR..+100+U
2)	;				where L is the length of the sym
	bol table
2)	;	LNKXIT
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  22
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1445 27-Apr-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1831 27-Apr-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	17-Mar-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	23-Mar-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==770		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==772		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;772	Adjust symbol table pointer to after undefined symbol ta
	ble.
2)5	SUBTTL	ENTER HERE
**************
1)10		ADDB	P4,P2		;SPACE WE NEED
1)	;**;[770] Exchange 2 lines @ UDF0A+6L	MCHC	17-Mar-78
****
2)10	;**;[772] Change @ UDF0A+5L	MCHC	23-Mar-78
2)		ADD	P2,P4		;[772] SPACE WE NEED IN P2
2)	;**;[770] Exchange 2 lines @ UDF0A+6L	MCHC	17-Mar-78
**************
1)11		JRST	GSDLT		;DELETE GLOBAL SYMBOL TABLE
****
2)11	;**;[772] Insert @ UDFDN+10L	MCHC	23-Mar-78
2)		SUB	P4,TAB.LB(R)	;[772] GET VIRTUAL ADDR OF UNDEF
	 TABLE
2)		ADD	P4,LW.S0(R)	;[722] NEED IT LATER FOR SYMBOL
	TABLE
2)		JRST	GSDLT		;DELETE GLOBAL SYMBOL TABLE
**************
1)17		TDZA	P4,P4		;YES, DONE ALREADY
1)		MOVE	P4,PATSPC	;NEED TO LEAVE A HOLE FOR PATCHI
	NG
****
2)17	;**;[772] Replace @ LSREQ1+2L	MCHC	23-Mar-78
2)		JRST	.+3		;[772] YES, AT END OF UND-SYM TA
	BLE
2)		MOVE	P4,PATSPC	;NEED TO LEAVE A HOLE FOR PATCHI
	NG
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  23
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -228*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          30-APR-78

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             LNKPUF      ILL MEM     GS GONE

[Source Before Edit]    %4A  (000772)

[Source After Edit]     %4A  (000773)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  24
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Illegal memory reference or LNKPUF error in LNKXIT when
loading  a  program using overlays, after the LNKCSF message
has been typed.  The LNKCSF  message  will  only  appear  if
/ERR:0 is set.
 

                        **********


[DIAGNOSIS]
 
     If the routine GSDLT is called with the GS area already
gone,  then  it  can  leave the UB pointer of the next lower
area pointing beyond .JBREL.
 

                        **********


[CURE]
 
     Make GSDLT check to see if the GS area is already gone.
 
 
Digital Equipment Corporation       28-AUG-79    Page  25
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1833 27-Apr-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1803 30-Apr-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	23-Mar-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	30-Apr-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==772		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==773		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;773	JNG	30-Apr-78
2)	;	Fix GSDLT in LNKXIT to not leave some area's UB
2)	;	pointing beyond .JBREL if the GS area is already gone.
2)	;	Routines: LNKXIT
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  26
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1831 27-Apr-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1803 30-Apr-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	23-Mar-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	30-Apr-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==772		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==773		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;773	Fix GSDLT in case the GS area is already gone.
2)5	SUBTTL	ENTER HERE
**************
1)14		MOVEM	T2,GS.AB	;RESET TABLE
****
2)14	;**;[773] Insert @ GSDLT+14L	JNG	30-Apr-78
2)		SKIPN	GS.LB		;[773] GS AREA ALREADY GONE?
2)		JRST	GSDLT1		;[773] YES, DON'T RECREATE IT
2)		MOVEM	T2,GS.AB	;RESET TABLE
**************
1)14		MOVEM	T2,TAB.UB(T1)	;RESET HIGHEST FREE LOC AGAIN
1)		SETZM	GS.LB		;SO XX.ZAP CAN WORK
****
2)14	;**;[773] Add label @ GSDLT+18L	JNG	30-Sep-78
2)	GSDLT1:	MOVEM	T2,TAB.UB(T1)	;[773] RESET HIGHEST FREE LOC AG
	AIN
2)		SETZM	GS.LB		;SO XX.ZAP CAN WORK
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  27
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -229*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          30-APR-78

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             ADDR CHECK  ADDI 1

[Source Before Edit]    %4A  (000773)

[Source After Edit]     %4A  (000774)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-25711
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  28
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK can get an address check error  from  the  monitor
when  writing an EXE file.  This will only happen if LINK is
paging to disk.
 

                        **********


[DIAGNOSIS]
 
     LINK's calculation of the new upper window  bound  when
advancing  to  the next window is incorrect, causing a later
OUT UUO to get an address check.
 

                        **********


[CURE]
 
     Correct the calculation to not  add  one  to  a  number
which is already correct.
 
 
Digital Equipment Corporation       28-AUG-79    Page  29
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1803 30-Apr-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1841 30-Apr-1978
 
1)1	DECEVR==773		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==774		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;774	JNG	30-Apr-78	SPR 10-25711
2)	;	Fix bad calculation of UW in EXE file writer.
2)	;	Routines: LNKXIT
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  30
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1803 30-Apr-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1843 30-Apr-1978
 
1)1	DECEVR==773		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==774		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;774	Fix bad calculation of UW in EXE file writer.
2)5	SUBTTL	ENTER HERE
**************
1)56		ADDI	T3,1		;
1)		MOVEM	P3,LW.S0(R)	;[713] RESET BASE TO PROCESS PAG
	E
****
2)56	;**;[774] Delete @ XCMPR4+10L	JNG	30-Apr-78
2)		MOVEM	P3,LW.S0(R)	;[713] RESET BASE TO PROCESS PAG
	E
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  31
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -005*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          02-MAY-78

[Programmer]            D. NEFF

[Routines]              LNKWLD

[Key Words]             START FDDT

[Source Before Edit]    %4A  (000774)

[Source After Edit]     %4A  (000775)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-11396
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  32
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK does not  ignore  the  starting  address  of  the  user's
FORTRAN  program  when  /DEBUG:FORTRAN is specified.  FORDDT always
wants control before the FORTRAN program.
 

                        **********


[DIAGNOSIS]
 
     LINK correctly guarantees that FORDDT is loaded after the file
(if  any)  on  which  /DEBUG:FORTRAN  is  specified,  thus  causing
FORDDT's starting address to override that file's starting address.
But  if any later modules with starting addresses are loaded, these
then override FORDDT.
 

                        **********


[CURE]
 
     Force starting addresses from all  subsequent  modules  to  be
ignored.
 
Digital Equipment Corporation       28-AUG-79    Page  33
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1841 30-Apr-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1541 02-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	30-Apr-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	1-May-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==774		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==775		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;775	DZN	1-May-78	SPR 20-11396
2)	;	Make sure /DEBUG:FORTRAN loads the starting address of
2)	;	FORDDT and not the user's program (unless explicit /STAR
	T).
2)	;	Routines: LNKWLD
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  34
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1436 01-Mar-1978
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1756 02-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	1-May-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	;CALLING SEQUENCE
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==775		;DEC EDIT VERSION
2)	;CALLING SEQUENCE
**************
1)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
****
2)3	;775	Make sure /DEBUG:FORTRAN loads the starting address of F
	ORDDT.
2)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
**************
1)19		CAME	T1,['FORDDT']	;SINCE IT NEED ITS SYMBOLS
1)		PUSHJ	P,%NOLOCAL	;BUT NOT FOR THIS FILE
****
2)19	;**;[775] Replace @ DEBUG1+23L	DZN	1-May-78
2)		CAMN	T1,['FORDDT']	;[775] SINCE IT NEED ITS SYMBOLS
2)		JRST	[MOVSI	T2,L.ISA	;[775] FORCE /NOSTART ON
	 NEW LINES
2)			 IORM	T2,FLAGS	;[775]   ..
2)			 PUSHJ	P,.NOSTART	;[775]   AND ON THIS LIN
	E
2)			 TRZ	FL,R.ISA	;[775]   BUT USE FORDDT'
	S START
2)			 JRST	.+2]		;[775] LOAD FORDDT'S LOC
	ALS
2)		PUSHJ	P,%NOLOCAL	;BUT NOT FOR THIS FILE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  35
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -230*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          04-MAY-78

[Programmer]            D. NEFF

[Routines]              LNKXIT

[Key Words]             /SAV JBVER

[Source Before Edit]    %4A  (000775)

[Source After Edit]     %4A  (000776)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-23733
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  36
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK gets an address check if all of the following  conditions
are met:
 
     1.  Loading a program small enough that LINK doesn't  need  to
         page to disk
 
     2.  Loading no data into pages 0 or 1
 
     3.  Specifying /SAVE to get an EXE file
 
In this case, LINK is also not outputting the  program  version  to
the EXE file.
 

                        **********


[DIAGNOSIS]
 
     The special routine to handle EXE file writing  when  no  data
exists in pages 0 or 1 does not get JOBDAT from the LC area if LINK
didn't have to page to disk.  The resulting dump-mode IOWD to write
JOBDAT to the EXE file causes the address check.
 
     Also, the length in the IOWD is set up to output one word  too
little.   Since  .JBVER  (the  location  in  JOBDAT  containing the
program version) is the last location in  JOBDAT,  it  doesn't  get
written.
 

                        **********


[CURE]
 
     Check if not paging and if so, get JOBDAT from  the  LC  area.
Also  output  all  of  JOBDAT  so the program version gets written.
Note that this edit has been superseded by edit  1134,  and  should
not be installed.
 
Digital Equipment Corporation       28-AUG-79    Page  37
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1541 02-May-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 0938 04-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	1-May-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	4-May-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==775		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==776		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;776	DZN	4-May-78	SPR 10-23733
2)	;	Fix address check and lost .JBVER when loading small pro
	grams
2)	;	with /SAVE and no data in core-image pages 0 or 1.
2)	;	Routines: LNKXIT
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  38
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1843 30-Apr-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1007 04-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	30-Apr-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	4-May-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==774		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==776		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;776	Fix /SAVE of small program with no data in pages 0 or 1.
2)5	SUBTTL	ENTER HERE
**************
1)55	XCMPRJ:	HRR	T1,JOBPTR	;[732] OUTPUT JOBDAT DIRECTLY
1)		SUBI	T1,1		;[732]
1)		HRLI	T1,-.JBDA+1	;[732]
1)		OUT	DC,T1		;OUTPUT PAGE 0
****
2)55	XCMPRJ:	SKIPE	PAG.S1		;[776] PAGING?
2)		SKIPA	T1,JOBPTR	;[776] YES--USE IN-MEMORY COPY O
	F JOBDAT
2)		MOVE	T1,LC.LB	;[776] NO--USE LC AREA STRAIGHT
2)		SUBI	T1,1		;[732]
2)		HRLI	T1,-.JBDA	;[776] DUMP OUT JUST JOBDAT
2)		OUT	DC,T1		;OUTPUT PAGE 0
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  39
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -231*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          18-MAY-78

[Programmer]            D. NEFF

[Routines]              LNKOLD    LNKLOD

[Key Words]             BAD COM LN

[Source Before Edit]    %4A  (000776)

[Source After Edit]     %4A  (000777)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-24008
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  40
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     If a COMMON block is referenced before it is defined (as in an
assembly  program followed by a FORTRAN program), LINK allocates the
size of the COMMON incorrectly.
 

                        **********


[DIAGNOSIS]
 
     After defining the COMMON block, LINK calls  SY.RF  to  update
any  now-definable  symbols.   It then allocates the memory for the
COMMON block from  its  symbol  definition.   Unfortunately,  SY.RF
destroys  the  pointer  to the COMMON block symbol, causing LINK to
get the wrong size.
 

                        **********


[CURE]
 
     Save the  symbol  table  pointer  over  the  SY.RF  call,  and
document SY.RF as not saving P1-P4 to help prevent this kind of bug
in the future.
 
Digital Equipment Corporation       28-AUG-79    Page  41
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 0909 18-May-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 0952 18-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	4-May-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	18-May-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==776		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==777		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;777	DZN	18-May-78	SPR 10-24008
2)	;	Fix allocation of COMMON blocks when a COMMON block is f
	irst
2)	;	referenced but not defined, then later defined. Also doc
	ument
2)	;	SY.RF as destroying P1-P4.
2)	;	Routines: LNKOLD, LNKLOD
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  42
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 1441 26-Apr-1978
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 0936 18-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC	17-Mar-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	18-May-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==767
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==777		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)4	COMMENT	\
****
2)4	;777	Fix allocation of COMMON when a block is referenced firs
	t, defined later.
2)5	COMMENT	\
**************
1)96		PUSH	P,R		;SAVE R OVER SY.RF
****
2)97	;**;[777] Insert before T20UN1+6L	DZN	18-May-78
2)		PUSH	P,P2		;[777] SAVE COMMON SYMBOL OVER S
	Y.RF
2)		PUSH	P,R		;SAVE R OVER SY.RF
**************
1)96		JRST	CPOPJ1		;SKIP RETURN
****
2)97	;**;[777] Insert before T20UN1+9	DZN	18-May-78
2)		POP	P,P2		;[777] RESTORE COMMAND SYMBOL
2)		HRRZ	P1,@HT.PTR	;[777]   AND RECOMPUTE IN CASE I
	T'S MOVED
2)		JRST	CPOPJ1		;SKIP RETURN
**************
 
Digital Equipment Corporation       28-AUG-79    Page  43
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1713 25-Apr-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 0948 18-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC	17-Mar-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	18-May-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==766		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==777		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;777	Comment SY.RF as destroying P1-P4.
2)5	SUBTTL	LOAD CONTROL
**************
1)27	SY.RF::	SOSGE	USYM		;DECREMENT UNDEFINED GLOBAL COUN
	T
****
2)27	;P1-P4 ARE NOT SAVED BY THIS ROUTINE
2)	SY.RF::	SOSGE	USYM		;DECREMENT UNDEFINED GLOBAL COUN
	T
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  44
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -258*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          01-FEB-79

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             BIG EXE     ADDR CHECK

[Source Before Edit]    %4A  (001002)

[Source After Edit]     %4A  (001003)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  45
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK can get an address check error on TOPS-10 or write
a  bad  EXE file that is excessively large on TOPS-20 if all
of the following conditions occur:
 
     1.  The program being loaded contains  no  low  segment
         code  or  PSECTs  other  than  the  job  data area,
         although it may contain high segment code.
 
     2.  The user has requested a runtime DDT  symbol  table
         to  be  loaded  into  the  low segment (this is the
         default on TOPS-20).
 
     3.  LINK is writing an EXE  file,  either  because  the
         program  is  too  large  to  load  into  memory, or
         because the user has requested  it  with  /SAVE  or
         /SSAVE.
 
 

                        **********


[DIAGNOSIS]
 
     In this case, LINK has set its lowest  location  loaded
(LOWLOC)  to  the  base  of  the high segment if there, or a
random positive number if not.  Unfortunately, it  does  not
update  this  quantity  when  it decides to place the symbol
table below anything yet loaded, and the EXE file  generator
believes the incorrect value and blows up.
 

                        **********


[CURE]
 
     When generating the runtime symbol table, check to  see
if  it is being placed below any code yet loaded, and update
LOWLOC if so.
Digital Equipment Corporation       28-AUG-79    Page  46
PCO Log Report


 
     Note that this edit has been superseded by  edit  1132,
and  is  only  being  distributed so that sites encountering
this particular problem can fix it without having to install
all  of  edit  1132.   This  edit will not be present in any
future release of LINK, since  edit  1132  will  be  present
instead.
 
 
Digital Equipment Corporation       28-AUG-79    Page  47
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507,4]	created: 1904 01-Mar-1978
File 2)	LINK:LNKHST.MAC[30,3737]  	created: 1127 01-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	27-FEB-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	1-Feb-79
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==765		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1003		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1003	MCHC/JNG	1-Feb-79	SPR 20-12546
2)	;	Update LOWLOC in GETSST in case symbol table is lowest t
	hing loaded.
2)	;	Routine: LNKXIT
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  48
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507,4]	created: 1503 03-Mar-1978
File 2)	LINK:LNKXIT.MAC[30,3737]  	created: 1120 01-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	1-Feb-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1003		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1003	Avoid address check or large EXE file if symbols only th
	ing in low seg.
2)5	SUBTTL	ENTER HERE
**************
1)15			POP	P,T1		;[727] RESTORE T1
1)			POPJ	P,]		;[715] RETURN FROM HERE
	IF HIGH/LOW
1)		SETZ	R,		;[727] YES, HAVE PSECT NAME
****
2)15	;**;[1003] Replace @ GETSST+7L	JNG	1-Feb-79
2)			JRST	GETS5]		;[1003] GO UPDATE LOWLOC
	 AND RETURN
2)		SETZ	R,		;[727] YES, HAVE PSECT NAME
**************
1)15	GETS3:	MOVE	T1,P4		;[764] GET START OF THE SYMBOL T
	ABLE
1)		TRZ	T1,777		;[764] ROUND DOWN TO PAGE BOUND
****
2)15	;**;[1003] Insert @ GETS3	JNG	1-Feb-79
2)	GETS3:	MOVEI	R,1		;[1003] SET TO LOW SEGMENT
2)	GETS5:	MOVE	T1,P4		;[1003] GET START OF THE SYMBOL
	TABLE
2)		TRZ	T1,777		;[764] ROUND DOWN TO PAGE BOUND
**************
1)15		MOVEI	R,1		;[715] UPDATE SEGMENT#
1)		POP	P,T1		;[715] RESTORE AC'S
****
2)15	;**;[1003] Delete @ GETS3+4L	JNG	1-Feb-79
2)		POP	P,T1		;[715] RESTORE AC'S
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  49
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -232*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) TESTED IN 4(777)

[Date Entered]          29-MAY-78

[Programmer]            D. NEFF

[Routines]              LNKMAP

[Key Words]             MAP IDX DY

[Source Before Edit]    %4A  (000777)

[Source After Edit]     %4A  (001100)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-24042
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  50
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK may die with various memory  management  errors  (illegal
memory  references,  ?LNKRUC,  etc.)  any  time after the map phase
(e.g., in the plotting phase), under the following conditions:
 
     1.  Loading an overlaid program
 
     2.  Giving names to some, but not all, links
 
     3.  Asking for a map
 
 

                        **********


[DIAGNOSIS]
 
     When LINK is finished printing the map, it frees the memory it
used   to  sort  the  index  of  link  names  (module  names  in  a
non-overlaid program).  In freeing  this  memory,  LINK  tells  its
memory  manager  to  free enough words to sort all link (or module)
names.  Unfortunately, the last index printed  in  the  map  of  an
overlaid  program  is that of link names, which may be shorter than
the total number of links loaded if some were not given names.   In
this  case,  LINK  frees  more  words than it originally allocated,
leaving free memory messed up.  Any later routine allocating memory
may thus die with memory management errors.
 

                        **********


[CURE]
 
     Treat the overlay link indexes as special cases, and only free
the last index of module names at the end of the map.
 
Digital Equipment Corporation       28-AUG-79    Page  51
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 0952 18-May-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1005 23-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	18-May-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	23-May-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==777		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1100		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1000 to 1077	Reserved for Development.
2)	;1100	DZN	23-May-78	SPR 10-24042
2)	;	Fix LNKMAP to correctly free the index blocks it uses fo
	r sorting,
2)	;	to keep the integrity of the DY area.
2)	;	Routines: LNKMAP
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  52
PCO Log Report


[FILCOM]
File 1)	LINK:LNKMAP.MAC[30,4507]  	created: 1432 01-Mar-1978
File 2)	LINK:LNKMAP.MAC[10,645063]	created: 1201 23-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG	27-FEG-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	23-May-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1100		;DEC EDIT VERSION
2)	VERSION
**************
1)5		SKIPN	T2,PRGNO	;NO. OF PROGRAMS
1)		JRST	OVMAP1		;NONE
1)		LSH	T2,1		;2 WORDS EACH
1)		HRRZ	T1,MDLIDX	;GIVE BACK TITLE BUFFER
1)		PUSHJ	P,DY.RET##
1)	OVMAP1:	MOVE	P1,LNKNO.
****
2)5	;**;[1100] Delete @ OVMAP0+6L	DZN	23-May-78
2)	OVMAP1:	MOVE	P1,LNKNO.
**************
1)49	MAPEND:
1)	IFN FTOVERLAY,<
****
2)49	;**;[1100] Insert before MAPEND	DZN	23-May-78
2)	MAPEND:	SKIPN	T2,PRGNO	;[1100] NOW DELETE INDEX BLOCK
2)		JRST	MAPND0		;[1100]   BUT NOT IF ZERO
2)		LSH	T2,1		;[1100] TWO ENTRIES PER MODULE
2)		HRRZ	T1,MDLIDX	;[1100] GET ADDRESS OF BLOCK
2)		JUMPE	T1,MAPND0	;[1100]   UNLESS NO SYMBOLS
2)		PUSHJ	P,DY.RET##	;[1100]   AND FREE IT
2)	MAPND0:
2)	IFN FTOVERLAY,<
**************
1)51		JRST	MAPND1
****
2)51	;**;[1100] Insert before OVXHDR+20L	DZN	23-May-78
2)		HRRZ	T1,MDLIDX	;[1100] FREE INDEX BLOCK FOR LIN
	K NAMES
2)		HRRZ	T2,LNMPTR	;[1100] LENGTH OF BLOCK
2)		LSH	T2,1		;[1100]   WITH TWO WORDS PER LIN
	K NAME
2)		PUSHJ	P,DY.RET##	;[1100] DO THE WORK
2)		JRST	MAPND1
Digital Equipment Corporation       28-AUG-79    Page  53
PCO Log Report


**************
1)52		SKIPN	T2,PRGNO	;NOW RESTORE INDEX BLOCK
1)		JRST	MAPRT0		;BUT NOT IF ZERO
1)		LSH	T2,1		;2 WORDS PER ENTRY
1)		HRRZ	T1,MDLIDX	;ADDRESS OF BLOCK
1)		JUMPE	T1,MAPRT0	;WE HAD NO SYMBOLS
1)		PUSHJ	P,DY.RET##
1)	MAPRT0:	MOVE	T1,LS.LB	;NOW TO MAKE SURE LS.PT IS CORRE
	CT
1)		ADD	T1,LSYM		;BASE + LENGTH
****
2)52	;**;[1100] Delete @MAPRET+2L	DZN	23-May-78
 
 
2)		MOVE	T1,LS.LB	;NOW TO MAKE SURE LS.PT IS CORRE
	CT
2)		ADD	T1,LSYM		;BASE + LENGTH
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  54
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -233*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         3A(560), 4(765)

[Date Entered]          30-MAY-78

[Programmer]            GILBERT

[Routines]              LNKOLD    LNKLOD    LNKWLD    LNKLOW

[Key Words]             INDEXED LI  MAKLIB      NO ENTRIES  DECTAPE

[Source Before Edit]    %4A  (001100)

[Source After Edit]     %4A  (001101)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-23623
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  55
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
When searching an indexed library created with MAKLIB,  LINK
can  get an LNKIRB (LNKILI in version 3A and earlier) error.
This is only possible  if  some  module(s)  in  the  indexed
library  contain no entry points.  This error will not occur
if such module(s) are removed, or if the  index  is  created
with FUDGE2.
 

                        **********


[DIAGNOSIS]
 
     When LINK is searching an indexed library,  it  assumes
that  each  module present in the library is also present in
the index.  This was true with libraries created by  FUDGE2,
but  MAKLIB compresses modules that have no entry points out
of the index.
 
     LINK makes this assumption in two ways.   First,  after
loading  some  module, if LINK wants to load the next module
in the index, it assumes that it can just  continue  reading
the  REL file, without doing any positioning.  Second, after
loading some module, if LINK decides NOT to  load  the  next
module  in  the  index, it remembers the address of the next
module anyway, on  the  assumption  that  its  input  stream
pointers  now  point  there,  having  just finished with the
module before it.
 
     Since this assumption is no longer  true  with  MAKLIB,
LINK  can  get confused and start reading at the wrong place
in the library, thus getting LNKIRB errors.
 

                        **********


[CURE]
 
     Remove  all  of  the  special  checks  that  make  this
Digital Equipment Corporation       28-AUG-79    Page  56
PCO Log Report


assumption.  Instead, have the low level input routines keep
track of where LINK is in the current REL file, and make the
indexed library processor use this information.
 
 
Digital Equipment Corporation       28-AUG-79    Page  57
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1005 23-May-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 2200 29-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	23-May-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	29-May-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1100		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1101		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1101	JNG	29-May-78	SPR 10-23623
2)	;	Fix LINK to correctly load indexed libraries that contai
	n modules
2)	;	which have no entry points and thus do not appear in the
	 index
2)	;	when indexed with MAKLIB.
2)	;	Routines: LNKOLD,LNKLOD,LNKWLD,LNKLOW
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  58
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 0936 18-May-1978
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1800 30-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	18-May-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	29-May-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==777		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==1101		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)5	COMMENT	\
****
2)4	;1101	Fix searching indexed libraries that have some modules n
	ot
2)	;	represented in the index.
2)5	COMMENT	\
**************
1)87	T.14I:	POP	P,LSTBLK	;SET UP LSTBLK FOR NEXT PROG
1)		PUSHJ	P,D.IN1##	;READ FIRST WORD
1)		HLRZ	T1,W1		;BLOCK TYPE ONLY
****
2)87	;**;[1101] Delete @ T.14I	JNG	29-May-78
2)	T.14I:	PUSHJ	P,D.IN1##	;READ FIRST WORD
2)		HLRZ	T1,W1		;BLOCK TYPE ONLY
**************
1)88	T.14A:	TRNE	FL,R.INC	;INCLUDE BEING PROCESSED?
1)		JRST	T.14		;PROCESS AS IF NO INDEX
****
2)88	;**;[1101] Insert @ T.14A	JNG	29-May-78
2)	T.14A:	SKIPN	XBUF		;[1101] GIVE ERROR IF ALREADY BE
	EN HERE
2)		TRNE	FL,R.INC	;INCLUDE BEING PROCESSED?
2)		JRST	T.14		;PROCESS AS IF NO INDEX
**************
1)88		MOVEI	T1,1		;START ON BLOCK 1 (DSK)
1)		HRROM	T1,LSTBLK	;BUT INDICATE AN INDEX
1)		MOVEI	T1,DC		;INPUT CHAN #
1)		DEVCHR	T1,
1)		TLNE	T1,(DV.DTA)	;IS IT A DTA?
1)		HRROS	XBUF		;YES, SET SIGNAL
1)	T.14J:	HRRZ	T1,XBUF		;AUX BUFFER
****
2)88	;**;[1101] Delete @ T.14A+5L	JNG	29-May-78
Digital Equipment Corporation       28-AUG-79    Page  59
PCO Log Report


2)	T.14J:	HRRZ	T1,XBUF		;AUX BUFFER
**************
1)88		SETOM	LSTLOD		;AND FAKE LAST PROG READ
1)	T.14B::	ILDB	W3,XBUF+1
****
2)88	;**;[1101] Delete @ T.14J+6L	JNG	29-May-78
2)	T.14B::	ILDB	W3,XBUF+1
**************
1)88		SKIPN	LSTLOD		;WAS LAST PROG LOADED?
1)		JRST	T.14B		;NO
1)		SETZM	LSTLOD		;CLEAR FLAG
1)		SKIPL	XBUF		;ALWAYS SAVE IF DTA???
1)		SKIPL	LSTBLK		;SKIP IF LAST BLOCK WAS AN INDEX
 
 
1)		MOVEM	W3,LSTBLK	;SAVE POINTER FOR CALCULATIONS
1)		JRST	T.14B		;GET NEXT PROG
****
2)88	;**;[1101] Delete @ T.14K+5L	JNG	29-May-78
2)		JRST	T.14B		;GET NEXT PROG
**************
1)89		PUSH	P,T1		;SAVE THIS BLOCK
1)		SKIPE	LSTLOD		;DID WE LOAD LAST  PROG?
1)		JRST	[SKIPGE	LSTBLK	;WAS LAST BLOCK AN INDEX?
1)			JRST	NXTBLK	;YES, SO GET NEXT ONE
1)			POP	P,LSTBLK
1)			JRST	LOAD##]	;NEXT PROG IS ADJACENT
1)		SETOM	LSTLOD
1)		HRRZ	W3,LSTBLK	;GET LAST BLOCK NUMBER
****
2)89	;**;[1101] Delete @ T.14E+10L	JNG	29-May-78
2)		HRRZ	W3,LSTBLK	;GET LAST BLOCK NUMBER
**************
1)89	NXTNDX:	SKIPGE	XBUF		;DIFFERENT TEST FOR DTA
1)		JRST	NXTDTA		;CHECK IF NEXT BUFFER IN CORE
****
2)89	;**;[1101] Change @ NXTNDX	JNG	29-May-78
2)	NXTNDX:	SKIPGE	DTAFLG		;[1101] DIFFERENT TEST FOR DTA
2)		JRST	NXTDTA		;CHECK IF NEXT BUFFER IN CORE
**************
1)90		  JRST	NEWBLK		;IT IS NOW
1)		JRST	D.ERR##		;EOF OR ERROR
1)	NEWBLK:	MOVE	T1,(P)		;GET CURRENT BLOCK
1)		JUMPL	T1,T.14I	;JUST READ AN INDEX
1)		HLRZ	T1,T1		;GET WORD COUNT
1)		JRST	T.14G		;WORD COUNT WILL BE CORRECT
1)	THSBLK:	SUB	T1,LSTBLK	;GET WORD DIFFERENCE
1)		MOVS	T1,T1		;INTO RIGHT HALF
1)	T.14G:	ADDM	T1,DCBUF+1
1)		MOVN	T1,T1
1)		ADDM	T1,DCBUF+2
Digital Equipment Corporation       28-AUG-79    Page  60
PCO Log Report


1)	T.14H:	POP	P,LSTBLK	;STORE THIS AS LAST BLOCK READ
1)		JRST	LOAD##
****
2)90	;**;[1101] Revamp @ NXTBLK+1L	JNG	29-May-78
2)		  JRST	THSBLK		;[1101] IT IS NOW
2)		JRST	D.ERR##		;EOF OR ERROR
2)	;HERE WHEN THE DATA WE WANT IS IN THE CURRENT BUFFER.
2)	;IF WE WERE READING A NEW INDEX (T1.LT.0), THEN GO TO T.14I.
2)	;IF NOT, ADJUST THE BYTE COUNT & PTR TO POINT TO THE START OF
2)	;THE MODULE TO BE LOADED, THEN GO TO LOAD TO LOAD IT.
2)	;T1 CONTAINS MODULE POINTER (WORD,,BLOCK) FOR THIS MODULE.
2)	THSBLK:	HRRZM	T1,LSTBLK	;[1101] WE KNOW WE'RE NOW ON THI
	S BLOCK
2)		JUMPL	T1,T.14I	;[1101] JUMP IF BLOCK CONTAINS A
	N INDEX
2)		HLRZ	T1,T1		;[1101] NOT AN INDEX, GET WORD O
	FFSET
2)		HRRZ	T2,DCBUF	;[1101] CONSTRUCT NEW BYTE POINT
	ER
2)		HLL	T2,DCBUF+1	;[1101] LH=LH(OLD BYTE PTR)
2)		ADDI	T2,1(T1)	;[1101] RH=RH(DCBUF)+OFFSET+1
2)		EXCH	T2,DCBUF+1	;[1101] GET OLD PTR, STORE NEW O
	NE
2)		SUB	T2,DCBUF+1	;[1101] COMPUTE DIFFERENCE TO UP
	DATE COUNT
2)		ADDM	T2,DCBUF+2	;[1101] UPDATE BYTE COUNT
 
 
2)		JRST	LOAD##
**************
1)90		PUSH	P,W3		;STACK THIS BLOCK
1)		HRRZ	W3,LSTBLK	;GET LAST BLOCK
****
2)90	;**;[1101] Replace @ T.14D+2L	JNG	29-May-78
2)		MOVE	T1,W3		;[1101] -1,,BLOCK # INTO T1 FOR
	THSBLK
2)		HRRZ	W3,LSTBLK	;GET LAST BLOCK
**************
 
Digital Equipment Corporation       28-AUG-79    Page  61
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 0948 18-May-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1554 30-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	18-May-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	29-May-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==777		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1101		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1101	Keep LSTBLK (last block read from current file) up to da
	te.
2)5	SUBTTL	LOAD CONTROL
**************
1)86		IN	DC,		;INPUT NEXT BUFFER
1)		  JRST	D.IN1		;AND RETURN
****
2)86	;**;[1101] Replace @ D.INP+2L	JNG	29-May-78
2)		PUSHJ	P,D.CNT		;[1101] DO IN UUO AND COUNT BLOC
	K
2)		  JRST	D.IN1		;AND RETURN
**************
1)86		IN	DC,		;MORE DATA, PLEASE
1)		  JRST	D.RED1		;THAT WAS EASY
****
2)86	;**;[1101] Replace @ D.READ+2L	JNG	29-May-78
2)		PUSHJ	P,D.CNT		;[1101] DO IN UUO AND COUNT BLOC
	K #
2)		  JRST	D.RED1		;THAT WAS EASY
**************
1)87	EOF::	TRZE	FL,R.LOD	;ENS BLOCK SEEN?
****
2)87	;**;[1101] Insert @ D.READ+7L	JNG	29-May-78
2)	;THIS ROUTINE DOES AN IN UUO AND KEEPS TRACK OF THE CURRENT BLOC
	K
2)	;NUMBER.  BLOCK NUMBER IS RELATIVE (LIKE USETI) ON DISK, ABSOLUT
	E
2)	;ON DTA.
2)	;RETURNS +1 IF IN UUO WORKED, +2 IF FAILED (LIKE IN UUO DOES).
2)	;DESTROYS W1 ONLY.
2)	D.CNT:	SKIPN	DTAFLG		;[1101] READING FROM DECtape?
Digital Equipment Corporation       28-AUG-79    Page  62
PCO Log Report


2)		JRST	D.CNT2		;[1101] NO, JUST AOS THE COUNT F
	OR DISK
2)	;HERE ON DECtape
2)		SKIPGE	LSTBLK		;[1101] IS THIS THE FIRST IN FRO
	M DTA?
2)		JRST	D.CNT1		;[1101] YES, MUST GET THE BLOCK
	DIFFERENTLY
2)		MOVE	W1,DCBUF	;[1101] NORMAL CASE, GET PTR TO
	NEXT
2)		LDB	W1,[POINT 18,1(W1),17]	;[1101] OUT OF OLD BUFFE
	R
2)		MOVEM	W1,LSTBLK	;[1101] STORE IN LSTBLK
2)		JRST	D.CNT3		;[1101] SKIP DISK'S AOS, GO DO I
	N UUO
2)	;HERE ON FIRST IN FROM DECtape.  GET FIRST BLOCK NUMBER FROM LOO
	KUP
2)	D.CNT1:	LDB	W1,[POINT 10,FEXT,35]	;[1101] ON FIRST IN,
2)		MOVEM	W1,LSTBLK	;[1101] GET FROM LOOKUP BLOCK
2)		JRST	D.CNT3		;[1101] GO DO IN UUO
2)	;HERE ON DISK
2)	D.CNT2:	AOS	LSTBLK		;[1101] ON DISK, JUST AOS LSTBLK
2)	D.CNT3:	IN	DC,		;[1101] DO THE IN UUO
2)		  POPJ	P,		;[1101] SUCCESS, RETURN
 
 
2)		JRST	CPOPJ1		;[1101] IN UUO SKIPPED, PROPOGAT
	E IT
2)88	EOF::	TRZE	FL,R.LOD	;ENS BLOCK SEEN?
**************
 
Digital Equipment Corporation       28-AUG-79    Page  63
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1756 02-May-1978
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 2153 29-May-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	1-May-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	29-May-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==775		;DEC EDIT VERSION
1)	;CALLING SEQUENCE
****
2)1	DECEVR==1101		;DEC EDIT VERSION
2)	;CALLING SEQUENCE
**************
1)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
****
2)3	;1101	Set LSTBLK and DTAFLG correctly on new input files.
2)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
**************
1)7		JRST	RETFSP		;RETURN SPACE
1)8	;HERE TO MERGE NEW FILE SPEC WITH PREVIOUS ONE
****
2)7	;**;[1101] Insert @ LDFS1+3L	JNG	29-May-78
2)		SETZM	LSTBLK		;[1101] ASSUME BLOCK 0
2)		SETZM	DTAFLG		;[1101] AND ON DISK (NORMAL CASE
	)
2)		MOVE	T1,IO.CHR	;[1101] GET DEV CHARACTERISTICS
2)		TXNN	T1,DV.DTA	;[1101] ON DECtape?
2)		JRST	RETFSP		;RETURN SPACE
2)		SETOM	DTAFLG		;[1101] ON DECtape, REMEMBER THA
	T
2)		SETOM	LSTBLK		;[1101] FLAG FOR D.CNT IN LNKLOD
2)		JRST	RETFSP		;[1101] DONE, GO RETURN SPACE
2)8	;HERE TO MERGE NEW FILE SPEC WITH PREVIOUS ONE
**************
 
Digital Equipment Corporation       28-AUG-79    Page  64
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOW.MAC[30,4507]  	created: 1950 01-Mar-1978
File 2)	LINK:LNKLOW.MAC[10,645063]	created: 2157 29-May-1978
 
1)1	UNIVERSAL	LNKLOW - LOW SEGMENT DATA MODULE FOR LINK-10
1)	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	UNIVERSAL	LNKLOW - LOW SEGMENT DATA MODULE FOR LINK
2)	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC	29-May-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)		LOC	137
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1101		;DEC EDIT VERSION
2)		LOC	137
**************
1)3	SUBTTL	STORAGE
****
2)2	;START OF VERSION 4A
2)	;1101	Delete LSTLOD, add DTAFLG.
2)3	SUBTTL	STORAGE
**************
1)13	LSTLOD::BLOCK	1		;INDEX - LAST PROG WAS LOADED
1)	LSTBLK::BLOCK	1		;INDEX - POINTER TO LAST BLOCK L
	OADED
****
2)13	;**;[1101] Replace @ LSTLOD	JNG	29-May-78
2)	DTAFLG::BLOCK	1		;[1101] INPUT DEVICE IS DECtape
2)	LSTBLK::BLOCK	1		;INDEX - POINTER TO LAST BLOCK L
	OADED
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  65
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -006*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          19-JUN-78

[Programmer]            D. NEFF

[Routines]              LNKLOD

[Key Words]             LC > 512P

[Source Before Edit]    %4A  (001101)

[Source After Edit]     %4A  (001102)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-11085
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  66
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Loading very large programs  can  cause  ?LNKILC  errors  with
status  20016  (end of file) when a request to load a word early in
the program (such as initializing FORTRAN COMMON) is followed by  a
request to load a word within a few pages of 512P.
 

                        **********


[DIAGNOSIS]
 
     In the case above, LINK must move the window into the overflow
file from the beginning of the memory image to somewhere near 512P.
In this case, no check is made to keep the window in bounds.  Since
all  of  LINK's  subsequent  code  depends  on  memory images never
exceeding 512P, it reads in the new window from past the end of the
overflow file.
 

                        **********


[CURE]
 
     If the window is about to cross the 512P  boundary,  slide  it
back so the end of the window just fits inside 512P.
 
Digital Equipment Corporation       28-AUG-79    Page  67
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 2200 29-May-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1725 18-Jun-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	29-May-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	18-Jun-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1101		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1102		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1102	DZN	18-Jun-78	SPR 20-11085
2)	;	Fix paging routines to detect moving a window past 512P.
	 In this
2)	;	case, make the end of the window set right at 512P.
2)	;	Routines: LNKLOD
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  68
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1554 30-May-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1743 18-Jun-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	29-May-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	18-Jun-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1101		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1102		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1102	Keep window into overflow file in section 0.
2)5	SUBTTL	LOAD CONTROL
**************
1)10	;HERE TO MOVE WINDOW DOWN
1)	;FIRST OUTPUT THE WINDOW, THEN READ BACK WHAT WE NEED
1)	;READ BACK ONLY THE SMALLER OF LN.WD OR CURRENT SIZE
1)	;WE CAN ALWAYS EXPAND IF NEED BE
1)	PG.SD:	HRLZ	T1,LW.S0(R)	;SETUP CONTROL WORD
****
2)10	;HERE TO MOVE THE WINDOW EITHER UP OR DOWN, BUT WITH NO OVERLAPI
	NG. FIRST,
2)	;OUTPUT CURRENT WINDOW, THEN READ BACK THE PORTION WE WILL NEED.
	 WINDOW
2)	;(POTENTIALLY) SHRINKS TO SMALLER OF LN.WD OR ITS CURRENT SIZE.
	IF NEW WINDOW
2)	;ORIGIN PLUS LENGTH EXCEEDS 512P IN THE FILE'S ADDRESS SPACE, SL
	IDE THE WINDOW
2)	;DOWN JUST ENOUGH SO IT ENDS AT 512P.
2)	PG.SD:	HRLZ	T1,LW.S0(R)	;SETUP CONTROL WORD
**************
1)10		MOVEM	T2,UW.S0(R)	;[717]
****
2)10	;**;[1102] Insert before PG.SD+13L	DZN	18-Jun-78
2)		TLNE	T2,-1		;[1102] BUT IS WINDOW NOW PAST 5
	12P?
2)		JRST	[SUBI T2,-1		;[1102] YES--COMPUTE HOW
	 MUCH WE'RE OVER
2)			 SUB T2,LW.S0(R)	;[1102] MOVE WINDOW DOWN
	 BY THAT MUCH
2)			 MOVNM T2,LW.S0(R)	;[1102]   ..
2)			 MOVEI T2,-1		;[1102] TOP OF WINDOW IS
Digital Equipment Corporation       28-AUG-79    Page  69
PCO Log Report


	 NOW AT 512P
2)			 JRST .+1]		;[1102] CONTINUE WITH SA
	ME WINDOW SIZE
2)		MOVEM	T2,UW.S0(R)	;[717]
**************
1)10				
1)11	;HERE TO MOVE WINDOW UP IN CORE
****
2)11	;HERE TO MOVE WINDOW UP IN CORE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  70
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -234*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         3A, 4, TESTED IN 4(765)

[Date Entered]          20-JUN-78

[Programmer]            D. NEFF

[Routines]              LNKLOD

[Key Words]             ZRO PRGPTR

[Source Before Edit]    %4A  (001102)

[Source After Edit]     %4A  (001103)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  71
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     The observed symptom was LINK going into a loop after  loading
the  first  link  after  the  root  in an overlaid COBOL version 12
program.  However, a wide  variety  of  errors  are  possible,  all
related  to  LINK's  dynamic  area  free list getting trashed.  The
dependency on COBOL is caused  by  use  of  .REQUEST/.REQUIRE  (REL
block types 16 and 17) which COBOL version 11 did not use.
 

                        **********


[DIAGNOSIS]
 
     At the end of  loading  the  root,  LINK  frees  its  list  of
.REQUEST/.REQUIRE     blocks,     following    their    processing.
Unfortunately, the pointer to the now free list  was  not  cleared,
causing  LINK  to  free the same blocks again at the end of loading
the next link.
 

                        **********


[CURE]
 
     Zero the pointer to the .REQUEST/.REQUIRE list  after  freeing
its contents.
 
Digital Equipment Corporation       28-AUG-79    Page  72
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1725 18-Jun-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1752 19-Jun-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	18-Jun-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	19-Jun-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1102		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1103		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1103	DZN	19-Jun-78
2)	;	See that the list of .REQUEST/.REQUIRE blocks is not fre
	ed twice,
2)	;	to preserve the integrety of the DY area.
2)	;	Routines: LNKLOD
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  73
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1743 18-Jun-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1751 19-Jun-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	18-Jun-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	19-Jun-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1102		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1103		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1103	Zero the .REQUEST/.REQUIRE list pointer after freeing it
	s contents.
2)5	SUBTTL	LOAD CONTROL
**************
1)71	B16NOT:	PJRST	COR.FX		;FIXUP ALL CODE CHAINS
****
2)71	;**;[1103] Insert before B16NOT	DZN	19-Jun-78
2)		SETZM	PRGPTR		;[1103] REMEMBER THAT WE'RE DONE
2)	B16NOT:	PJRST	COR.FX		;FIXUP ALL CODE CHAINS
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  74
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -235*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          20-JUN-78

[Programmer]            GILBERT

[Routines]              LNKCOR

[Key Words]             ADDR CHECK  EDIT 750

[Source Before Edit]    %4A  (001103)

[Source After Edit]     %4A  (001104)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-25712
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  75
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK can get an address check  error  when  loading  an
extremely  large  program,  or  when loading in a restricted
amount of core on TOPS-10.
 

                        **********


[DIAGNOSIS]
 
     When LINK decides to overflow the LC  or  HC  areas  to
disk,  it  tries  to  move  about  half of the area into the
overflow file.  If half of the  area  is  less  than  LINK's
default  internal  window  size,  then LINK tries to move at
least that much into the file.  Unfortunately, if the entire
area  is also smaller than LINK's internal window size, then
LINK tries to shrink the area by more pages  than  the  area
contains.   This results in an OUT UUO with a positive IOWD,
with the resulting address check.
 

                        **********


[CURE]
 
     Remove the code that attempts to do this,  since  there
is  no  harm  in the window being too small (it will grow as
required).  It is necessary to output at least one page, but
this  will  never cause the above problem, since the area to
be output is always at least one page long.
 
     This edit removes part of edit 750,  and  restores  the
affected  area  of code to the way it looked in LINK version
3A and earlier.
 
 
Digital Equipment Corporation       28-AUG-79    Page  76
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1752 19-Jun-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1331 20-Jun-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	19-Jun-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	20-Jun-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1103		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1104		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1104	JNG	20-Jun-78
2)	;	Fix address checks when dumping LC or HC area to disk.
	Remove
2)	;	edit 750 in LH.DMP, so we will never try to shrink the c
	urrent
2)	;	area by more pages than the area has.
2)	;	Routines: LNKCOR
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  77
PCO Log Report


[FILCOM]
File 1)	LINK:LNKCOR.MAC[30,4507]  	created: 1718 27-Apr-1978
File 2)	LINK:LNKCOR.MAC[10,645063]	created: 1337 20-Jun-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG	23-Mar-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG	20-Jun-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==771		;DEC EDIT VERSION
1)	SALL
****
2)1	DECEVR==1104		;DEC EDIT VERSION
2)	SALL
**************
1)4	SUBTTL SIMPLE TESTS FIRST
****
2)3	;1104	Remove part of edit 750 from LH.DMP to fix address check
	s.
2)4	SUBTTL SIMPLE TESTS FIRST
**************
1)61		CAIGE	T2,.IWS		;[750] IN CASE ONLY RESERVE WIND
	OW SIZE
1)		MOVEI	T2,.IWS		;[750]	
1)		SUBI	T1,-1(T2)	;GET NEW BOTTOM WINDOW BOUND
****
2)61	;**;[1104] Change @ LH.SET+1P8L	JNG	20-Jun-78
2)		CAIGE	T2,.IPS		;[1104] IN CASE 1/2 IS .LT. 1 PA
	GE,
2)		MOVEI	T2,.IPS		;[1104]   DUMP ONE PAGE TO MARK
	PAGING
2)		SUBI	T1,-1(T2)	;GET NEW BOTTOM WINDOW BOUND
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  78
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -236*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          20-JUN-78

[Programmer]            GILBERT

[Routines]              LNKFIO

[Key Words]             SFDS

[Source Before Edit]    %4A  (001104)

[Source After Edit]     %4A  (001105)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  79
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK version 4 cannot find input files if  they  appear
in  an  SFD  whose top-level directory is different than the
user's default path.
 

                        **********


[DIAGNOSIS]
 
     Edit 740 destroyed an AC that contained the UFD.   This
AC  is  later  used  to  set  up  a  path  block if the path
specified includes SFDs.
 

                        **********


[CURE]
 
     Move edit 740 up two lines, to before the AC  has  been
set up.
 
 
Digital Equipment Corporation       28-AUG-79    Page  80
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1331 20-Jun-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1534 20-Jun-1978
 
1)1	DECEVR==1104		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1105		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1105	JNG	20-Jun-78
2)	;	Fix edit 740 to not destroy an AC that held the input fi
	le's PPN.
2)	;	This caused LINK to not be able to find a file when the
	user gave
2)	;	an explicit path including SFDs.
2)	;	Routines: LNKFIO
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  81
PCO Log Report


[FILCOM]
File 1)	LINK:LNKFIO.MAC[30,4507]  	created: 1500 03-Mar-1978
File 2)	LINK:LNKFIO.MAC[10,645063]	created: 1512 20-Jun-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH	20-Jun-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	SEGMENT
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1105		;DEC EDIT VERSION
2)	SEGMENT
**************
1)3	SUBTTL	HERE TO SETUP POINTER TO I/O DATA BLOCK
****
2)2	;START OF VERSION 4A
2)	;1105	Fix edit 740 to not destroy the path to the file if it i
	ncludes SFDs.
2)3	SUBTTL	HERE TO SETUP POINTER TO I/O DATA BLOCK
**************
1)7		MOVE	T2,F.DIR(P1)	;DIRECTORY
1)		MOVEM	T2,UFDPPN
1)		MOVE	T2,F.VER(P1)	;[740] VERSION NUMBER SPECIFIED
	FOR INPUT FILE
1)		CAME	T2,[-1,,-1]	;[740] IF -1 MEANS SCAN SAW NOTH
	ING
1)		MOVEM	T2,VERNUM	;[740] USED TO SET GLOBAL DEFAUL
	T VERSION.
1)	IFN LN.DRB,<			;IF ALLOWED FOR SFD'S
****
2)7	;**;[1105] Move up from below @ DVINP.+9L	JNG	20-Jun-7
	8
2)		MOVE	T2,F.VER(P1)	;[1105] VERSION NUMBER SPECIFIED
	 FOR INPUT FILE
2)		CAME	T2,[-1]		;[1105] IF -1 MEANS SCAN SAW NOT
	HING
2)		MOVEM	T2,VERNUM	;[1105] USED TO SET GLOBAL DEFAU
	LT VERSION.
2)		MOVE	T2,F.DIR(P1)	;DIRECTORY
2)		MOVEM	T2,UFDPPN
2)	IFN LN.DRB,<			;IF ALLOWED FOR SFD'S
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  82
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -237*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          27-JUN-78

[Programmer]            GILBERT

[Routines]              LNKLOD

[Key Words]             PSECT       EXE FILE    TOO SHORT

[Source Before Edit]    %4A  (001105)

[Source After Edit]     %4A  (001106)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  83
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     When LINK is asked to write an EXE file, the  last  few
pages  of the low segment may not get written into the file.
This will only happen if the last thing in the  low  segment
is  a  PSECT  that  ends  with a BLOCK statement.  The words
represented by the BLOCK may be lost.
 

                        **********


[DIAGNOSIS]
 
     LINK will only write the low segment as far  as  HL.S1,
the  pointer  to the last location in the low segment, tells
it to.  Unfortunately, this location  is  incorrect  if  the
last thing in the low segment is a PSECT.
 

                        **********


[CURE]
 
     Make sure that this word is at least as big as the  end
of the highest PSECT loaded.
 
 
Digital Equipment Corporation       28-AUG-79    Page  84
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1534 20-Jun-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 0313 27-Jun-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	20-Jun-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	27-Jun-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1105		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1106		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1106	JNG	27-Jun-78	QAR RDH
2)	;	Update HL.S1 from RC.CV of the highest PSECT loaded at t
	he end of
2)	;	loading.  This causes the EXE file generator to allocate
	 all of
2)	;	the pages that it should if the last PSECT ends with a B
	LOCK statement.
2)	;	Routines: LNKLOD
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  85
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1751 19-Jun-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 0317 27-Jun-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	19-Jun-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	27-Jun-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1103		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1106		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1106	Update HL.S1 from RC.CV of the highest PSECT loaded.
2)5	SUBTTL	LOAD CONTROL
**************
1)69	CHKLL1:	MOVE	R2,RC.NO	;[760] USED IN CHKBND FOR LOOP C
	ONTROL
1)	;	JRST	CHKBND		;[760]
****
2)69	;FALL THROUGH TO NEXT PAGE
2)70	;HERE TO UPDATE HL.S1 FROM PSECT INFO, IF NEEDED
2)	;**;[1106] Insert @ CHKLL1	JNG	27-Jun-78
2)	CHKLL1:	MOVE	R,RC.NO		;[1106] POINT TO HIGHEST PSECT
2)	CHKLL2:	MOVE	T1,@RC.TB	;[1106] GET POINTER TO THIS RC B
	LOCK
2)		MOVE	T2,RC.SG(T1)	;[1106] GET SEGMENT NUMBER
2)		CAIN	T2,1		;[1106] LOW SEG?
2)		JRST	CHKLL3		;[1106] GOT HIGHEST PSECT, GO FI
	X HL.S1
2)		SOJGE	R,CHKLL2	;[1106] NO, LOOP OVER OTHER RELO
	C. COUNTERS
2)		JRST	CHKLL4		;[1106] NONE FOUND, DONE
2)	;HERE WHEN WE HAVE FOUND THE HIGHEST RC IN THE LOW SEG (A PSECT)
2)	CHKLL3:	SKIPN	T2,RC.HL(T1)	;[1106] GET HL IF AVAILABLE
2)		MOVE	T2,RC.CV(T1)	;[1106] OR CV IF ITS NOT
2)		CAMLE	T2,HL.S1	;[1106] POINT BEYOND CURRENT HL.
	S1?
2)		MOVEM	T2,HL.S1	;[1106] YES, UPDATE WITH NEW VAL
	UE
2)	CHKLL4:	MOVE	R2,RC.NO	;[1106] USED IN CHKBND FOR LOOP
	CONTROL
2)	;	JRST	CHKBND		;[760]
**************
Digital Equipment Corporation       28-AUG-79    Page  86
PCO Log Report



[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  87
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -239*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          04-AUG-78

[Programmer]            CHEN

[Routines]              LNKWLD

[Key Words]             LNKPOV      BAD NAME    CORE MGMT

[Source Before Edit]    %4A  (001106)

[Source After Edit]     %4A  (001107)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  88
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Could be anything,  including  LNKRUC  errors,  illegal
memory  references,  etc.   The  observed  symptom was a bad
PSECT name typed out as part of the  LNKPOV  message.   This
will  only  happen when loading a program that contains more
than ten PSECTs.
 

                        **********


[DIAGNOSIS]
 
     When LINK's PSECT table fills up, LINK  deallocates  it
and  allocates a new larger one.  Edit 706 (included in LINK
4) added a new PSECT table, thus requiring LINK to  free  up
and  reallocate two tables.  Unfortunately, the new code got
confused, thus freeing up the same block twice.
 

                        **********


[CURE]
 
     Instead  of  doing  two  allocations  followed  by  two
deallocations, do two allocation/deallocation sequences, and
fix the register usage to keep all the required  information
around.
 
 
Digital Equipment Corporation       28-AUG-79    Page  89
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 0313 27-Jun-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1619 03-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	27-Jun-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	3-Aug-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1106		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1107		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)5	;1107	MCHC	3-Aug-78
2)	;	Fix bug in .SETEX--routine to expand RC.TB and RC.NTB ta
	bles
2)	;	in DY area by obtaining bigger spaces, copying the data
	from
2)	;	the old tables, and freeing the old table spaces.
2)	;	The bug was in address calculation in freeing one of the
	 tables.
2)	;	The code is re-arranged to do a DY.GET followed by DY.RE
	T
2)	;	then another DY.GET and DY.RET
2)	;	LNKWLD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  90
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 2153 29-May-1978
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1613 03-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	29-May-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	3-Aug-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1101		;DEC EDIT VERSION
1)	;CALLING SEQUENCE
****
2)1	DECEVR==1107		;DEC EDIT VERSION
2)	;CALLING SEQUENCE
**************
1)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
****
2)3	;1107	Fix bug with .SETEX routine to expand RC.TB and RC.NTB t
	ables
2)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
**************
1)40		POP	P,T2		;[706]
****
2)40	;**;[1107] Insert @ .SETEX+8L	MCHC	3-Aug-78
2)		SUBI	T2,RC.INC(T1)	;[1107] GET OLD LENGTH
2)		MOVE	T3,RC.NTB	;[1107] CURRENT POSITION
2)		HRRM	T1,RC.NTB	;[1107] NEW
2)		HRRZ	T1,T3		;[1107] OLD
2)		PUSHJ	P,DY.RET	;[1107] RETURN SPACE
2)		POP	P,T2		;[706]
**************
1)40		PUSHJ	P,DY.RET	;[706] RETURN SPACE
1)		MOVE	T3,RC.NTB	;[706] CURRENT
1)		HRRM	T1,RC.NTB	;[706] NEW
1)		HRRZ	T1,T3		;[706] OLD
1)		PJRST	DY.RET##	;RETURN SPACE
****
2)40	;**;[1107] Delete @ .SETEX+20L	MCHC	3-Aug-78
2)		PJRST	DY.RET##	;RETURN SPACE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  91
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -238*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          27-JUN-78

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             BETTER MSG  LNKPOV      PSECT NAME

[Source Before Edit]    %4A  (001107)

[Source After Edit]     %4A  (001110)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  92
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     The NPS message does not tell the user  what  PSECT  it
was looking for.
 

                        **********


[DIAGNOSIS]
 
     No code.
 

                        **********


[CURE]
 
     Add the PSECT name to the end of the message.
 
 
Digital Equipment Corporation       28-AUG-79    Page  93
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1619 03-Aug-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1339 07-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	3-Aug-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	7-Aug-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1107		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1110		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1110	MCHC	7-Aug-78
2)	;	Type out the PSECT name as part of the error message whe
	n a
2)	;	non-existent one is used with /SYMSEG in GETSST routine.
2)	;	Don't clear the name from memory cell, loop back without
	 restoring the
2)	;	stack and treat this case as a default case.
2)	;	LNKXIT
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  94
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1007 04-May-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1348 07-Aug-1978
 
1)1	DECEVR==776		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1110		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1110	Output PSECT name as part of error message in GETSST.
2)5	SUBTTL	ENTER HERE
**************
1)15		JRST	[SKIPGE	T1,SYMLIM	;[727] HAVE A DEFAULT LI
	MIT?
1)			HRRZM	T1,SYMLIM	;[727] YES, MAKE IT THE
	LIMIT
****
2)15	;**;[1110] Add label @ GETSST+2L	MCHC	7-Aug-78
2)	GETS0:	JRST	[SKIPGE	T1,SYMLIM	;[1110][727] HAVE A DEFA
	ULT LIMIT?
2)			HRRZM	T1,SYMLIM	;[727] YES, MAKE IT THE
	LIMIT
**************
1)15		.ERR.	(MS,,V%M,L%W,S%W,NPS,<NON-EXISTENT PSECT SPECIFI
	ED>)
1)		SETZM	SSGNAM		;[715]
1)		MOVEI	R,1		;[715] SET TO LOW
1)		MOVEM	SYMSEG		;[715]
1)		POP	P,T1		;[715] RESTORE AC'S
1)		JRST	GETSST+1	;[715] AND LOOP BACK
1)	GETS2:	MOVE	T2,RC.CV(T1)	;[715] GET HIGHEST LOCATION
****
2)15	;**;[1110] Change @ GETS1+7L	MCHC	7-Aug-78
2)		.ERR.	(MS,.EC,V%M,L%W,S%W,NPS,<NON-EXISTENT PSECT SPEC
	IFIED -- >)	;[1110]
2)		.ETC.	(SBX,.EP,,,,SSGNAM)	;[1110] OUTPUT PSECT NAM
	E
2)		MOVEI	R,1		;[715] SET TO LOW
2)		MOVEM	SYMSEG		;[715]
2)		JRST	GETS0		;[1110][715] AND LOOP BACK
2)	GETS2:	MOVE	T2,RC.CV(T1)	;[715] GET HIGHEST LOCATION
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  95
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -240*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(772)

[Date Entered]          15-AUG-78

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             ADDR CHECK  EDIT 772

[Source Before Edit]    %4A  (001110)

[Source After Edit]     %4A  (001111)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page  96
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     When edit 772 is installed, LINK can die  with  I/O  to
unassigned channel errors when writing an EXE file.
 

                        **********


[DIAGNOSIS]
 
     The left half of P2 and P4 are left set up  with  junk,
so address compares fail.
 

                        **********


[CURE]
 
     Zero the left halves.
 
 
Digital Equipment Corporation       28-AUG-79    Page  97
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1339 07-Aug-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1625 07-Aug-1978
 
1)1	DECEVR==1110		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1111		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1111	MCHC	7-Aug-78
2)	;	Fix LNKXIT core management bug introduced by edit 772.
2)	;	LNKXIT
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page  98
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1348 07-Aug-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1617 07-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	4-May-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	7-Aug-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1110		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1111		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1111	Fix core management bug introduced by edit 772.
2)5	SUBTTL	ENTER HERE
**************
1)17		MOVE	P2,P4		;COPY INCASE NOT ENOUGH
****
2)17	;**;[1111] Change @ LSREQ1+5L	MCHC	7-Aug-78
2)		HRRZS	P2,P4		;[1111] COPY RH IN CASE NOT ENOU
	GH
2)		MOVE	P2,P4		;COPY INCASE NOT ENOUGH
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page  99
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -241*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          15-AUG-78

[Programmer]            GILBERT

[Routines]              LNKPAR    LNKMAP

[Key Words]             MAP         FENCEPOST   OFF BY 1

[Source Before Edit]    %4A  (001111)

[Source After Edit]     %4A  (001112)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-25902
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 100
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     If a segment is exactly a multiple of 1000 words  long,
then  the  LINK map will report that it is one P (or K on KA
systems) longer than it really is, and the number  of  words
free in the segment will be reported as 512 instead of zero.
 

                        **********


[DIAGNOSIS]
 
     LINK rounds up to the next 1P boundary by oring in 777,
and  then  adding  one.   This gives incorrect results for a
number already on a page boundary.
 

                        **********


[CURE]
 
     Round up  by  adding  777,  then  truncating  to  a  1P
boundary.
 
 
Digital Equipment Corporation       28-AUG-79    Page 101
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1625 07-Aug-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1427 15-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	7-Aug-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	15-Aug-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1111		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1112		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1112	JNG	15-Aug-78	SPR 10-25902
2)	;	Fix one off bugs in map printing segment lengths in K/P
	and
2)	;	words free.
2)	;	Routines: LNKPAR, LNKMAP
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 102
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPAR.MAC[30,4507]  	created: 1434 01-Mar-1978
File 2)	LINK:LNKPAR.MAC[10,645063]	created: 1422 15-Aug-1978
 
1)1	UNIVERSAL LNKPAR - PARAMETERS FOR LINK-10
1)	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH	27-Feb-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	UNIVERSAL LNKPAR - PARAMETERS FOR LINK
2)	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH	15-Aug-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)		LOC	137	;KEEPS MACRO HAPPY
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1112		;DEC EDIT VERSION
2)		LOC	137	;KEEPS MACRO HAPPY
**************
1)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
****
2)5	;START OF VERSION 4A
2)	;1112	Insert the ADD. macro.
2)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
**************
1)22	 OPDEF	IOR.	[IORI]		;IMMEDIATE MODE
****
2)22	;**;[1112] Insert @ IOR. definition under IFN TOPS20	JNG	
	15-Aug-78
2)	 OPDEF	ADD.	[ADDI]		;[1112] IMMEDIATE MODE
2)	 OPDEF	IOR.	[IORI]		;IMMEDIATE MODE
**************
1)22	 OPDEF	IOR.	[IOR]		;FROM MEMORY
****
2)22	;**;[1112] Insert @ IOR. definition under IFE TOPS20	JNG	
	15-Aug-78
2)	 OPDEF	ADD.	[ADD]		;[1112] FROM MEMORY
2)	 OPDEF	IOR.	[IOR]		;FROM MEMORY
**************
 
Digital Equipment Corporation       28-AUG-79    Page 103
PCO Log Report


[FILCOM]
File 1)	LINK:LNKMAP.MAC[30,4507]  	created: 1201 23-May-1978
File 2)	LINK:LNKMAP.MAC[10,645063]	created: 1408 15-Aug-1978
 
1)1	TITLE	LNKMAP - MAP MODULE FOR LINK-10
1)	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	23-May-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	TITLE	LNKMAP - MAP MODULE FOR LINK
2)	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	15-Aug-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1100		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1112		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	HEADER LINES
****
2)3	;START OF VERSION 4A
2)	;1100	Don't free up a different size title buffer than we allo
	cated.
2)	;1112	Get words free and segment lengths in K/P right in the m
	ap.
2)4	SUBTTL	HEADER LINES
**************
1)6	IFN TOPS20,<
1)		JUMPE	T1,.+3		;LEAVE 0 ALONE
1)		IORI	T1,.PGSIZ	;ALWAYS PAGES
1)		ADDI	T1,1
1)	>
1)	IFE TOPS20,<
1)		MOVE	T2,.PGSIZ	;P OR K BOUND
1)		JUMPE	T1,.+3		;LEAVE 0 ALONE
1)		IOR	T1,T2
1)		ADDI	T1,1
1)		CAIE	T2,777		;PAGES?
****
2)7	;**;[1112] Replace @ SGSTF0+24L	JNG	15-Aug-78
2)		ADD.	T1,.PGSIZ	;[1112] ROUND UP TO NEXT PAGE BO
	UND
2)		ANDCM.	T1,.PGSIZ	;[1112] ..
2)	IFE TOPS20,<
2)		MOVE	T2,.PGSIZ	;[1112] GET THIS SYSTEM'S PAGE S
	IZE
2)		CAIE	T2,777		;PAGES?
**************
1)9	IFN TOPS20,<
1)		JUMPE	T1,.+3		;LEAVE 0 ALONE
1)		IORI	T1,.PGSIZ	;ALWAYS PAGES
Digital Equipment Corporation       28-AUG-79    Page 104
PCO Log Report


1)		ADDI	T1,1
1)	>
1)	IFE TOPS20,<
1)		MOVE	T2,.PGSIZ	;P OR K BOUND
1)		JUMPE	T1,.+3		;LEAVE 0 ALONE
1)		IOR	T1,T2
1)		ADDI	T1,1
1)		CAIE	T2,777		;PAGES?
****
2)10	;**;[1112] Replace @ SEGSTF+21L	JNG	15-Aug-78
2)		ADD.	T1,.PGSIZ	;[1112] ROUND UP TO NEXT PAGE BO
	UND
2)		ANDCM.	T1,.PGSIZ	;[1112] ..
2)	IFE TOPS20,<
 
 
2)		MOVE	T2,.PGSIZ	;[1112] GET THIS SYSTEM'S PAGE S
	IZE
2)		CAIE	T2,777		;PAGES?
**************
1)11		IOR.	T1,.PGSIZ	;ROUND UP TO NEXT P OR K
1)		SUB	T1,HL.S1	;FIND WHATS LEFT
1)		ADDI	T1,1
1)		PUSHJ	P,.TDECW##	;PRINT IN DECIMAL
****
2)12	;**;[1112] Replace @ SEGDN+2L	JNG	15-Aug-78
2)		ADD.	T1,.PGSIZ	;[1112] ROUND UP TO NEXT P OR K
2)		ANDCM.	T1,.PGSIZ	;[1112] ..
2)		SUB	T1,HL.S1	;FIND WHATS LEFT
2)		PUSHJ	P,.TDECW##	;PRINT IN DECIMAL
**************
1)11		IOR.	T1,.PGSIZ	
1)		SUB	T1,HL.S2
1)		ADDI	T1,1
1)		PUSHJ	P,.TDECW##
****
2)12	;**;[1112] Replace @ SEGDN+13L	JNG	15-Aug-78
2)		ADD.	T1,.PGSIZ	;[1112] ROUND UP TO NEXT P OR K
2)		ANDCM.	T1,.PGSIZ	;[1112] ..
2)		SUB	T1,HL.S2
2)		PUSHJ	P,.TDECW##
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 105
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -007*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          30-AUG-78

[Programmer]            D. NEFF

[Routines]              LNKPLT    LNKCOR    LNKXIT    LNKERR

[Key Words]             PLOT        NO LC

[Source Before Edit]    %4A  (001112)

[Source After Edit]     %4A  (001113)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-12001
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 106
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     When loading an overlaid program and asking for a plot of  the
overlay  tree,  LINK  dies  with various errors, usually an illegal
memory reference.  This error is more common when the overlay  tree
is printed in line printer format, or if the tree is very large.
 

                        **********


[DIAGNOSIS]
 
     LINK is trying to expand memory while plotting the  tree,  and
tries to move the LC area for more room.  However, plotting is done
after everything else, so no LC area exists.  On TOPS-20,  this  is
compounded  by LINK's memory manager believing that it has expanded
as much as possible, even though the plotting code has shrunk back.
 

                        **********


[CURE]
 
     Change LINK's memory manager to give LNKCEF if it has expanded
as  much  as  it  can,  and there are no areas that can be moved or
paged out.  On TOPS-20, see that LINK really does not  shrink  back
until  final  program  placement,  so  that  the  memory  manager's
assumptions are true.  Finally,  add  a  new  message,  LNKPOT,  to
inform the user when LINK is plotting the overlay tree.
 
Digital Equipment Corporation       28-AUG-79    Page 107
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1427 15-Aug-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1533 25-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	15-Aug-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	25-Aug-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1112		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1113		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1113	DZN	25-Aug-78	SPR 20-12001
2)	;	Fix memory management problems when plotting the overlay
2)	;	tree. See that LINK never shrinks back on TOPS-20 until
	final
2)	;	placement of the loaded program. Add LNKPOT message to t
	ell user
2)	;	when LINK is plotting the overlay tree.
2)	;	Routines: LNKCOR, LNKXIT, LNKPLT, LNKERR
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 108
PCO Log Report


[FILCOM]
File 1)	LINK:LNKCOR.MAC[30,4507]  	created: 1337 20-Jun-1978
File 2)	LINK:LNKCOR.MAC[10,645063]	created: 1235 30-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG	20-Jun-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/DZN	25-Aug-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1104		;DEC EDIT VERSION
1)	SALL
****
2)1	DECEVR==1113		;DEC EDIT VERSION
2)	SALL
**************
1)4	SUBTTL SIMPLE TESTS FIRST
****
2)3	;1113	Fix memory bugs when writing overlay tree.
2)4	SUBTTL SIMPLE TESTS FIRST
**************
1)41	LCOVF:	MOVE	T1,LC.AB	;[650] FIND SIZE
1)		SUB	T1,LC.LB	;[650]
****
2)41	;**;[1113] Insert before LCOVF	DZN	25-Aug-78
2)	LCOVF:	SKIPN	LC.LB		;[1113] LAST CHANCE--IS THERE AN
	 LC AREA?
2)		JRST	NO.COR		;[1113] NO--JUST RAN OUT OF LUCK
2)		MOVE	T1,LC.AB	;[650] FIND SIZE
2)		SUB	T1,LC.LB	;[650]
**************
 
Digital Equipment Corporation       28-AUG-79    Page 109
PCO Log Report


[FILCOM]
File 1)	LINK:LNKERR.MAC[30,4507]  	created: 1428 01-Mar-1978
File 2)	LINK:LNKERR.MAC[10,645063]	created: 1235 30-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	25-Aug-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1113		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	FIND MESSAGE
****
2)2	;1113	Add long message for LNKPOT.
2)3	SUBTTL	FIND MESSAGE
**************
1)9	PSF	31	31	Polish symbol fixups not yet implemented
****
2)9	POT	 1	 1	Plotting overlay tree
2)	PSF	31	31	Polish symbol fixups not yet implemented
**************
1)10	HASH	PSF,0,<^_
****
2)10	;**;[1113] Insert in long messages before LNKPSF message	
	DZN	25-Aug-78
2)	HASH	POT,0,<^_
2)		LINK is creating your overlay tree file.>
2)	HASH	PSF,0,<^_
**************
 
Digital Equipment Corporation       28-AUG-79    Page 110
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPLT.MAC[30,4507]  	created: 1439 07-Mar-1978
File 2)	LINK:LNKPLT.MAC[10,645063]	created: 1727 25-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	25-Aug-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	SALL
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1113		;DEC EDIT VERSION
2)	SALL
**************
1)3	SUBTTL	BLISS CONVENTIONS
****
2)2	;1113	Don't shrink back on TOPS-20, and add LNKPOT message.
2)3	SUBTTL	BLISS CONVENTIONS
**************
1)5		ZAPTMP			;CLEAR TEMP AREA
****
2)5	;**;[1113] Insert after LNKPLT	DZN	25-Aug-78
2)		.ERR.	(MS,0,V%L,L%I,S%I,POT,<Plotting overlay tree>)
2)		ZAPTMP			;CLEAR TEMP AREA
**************
1)5		CORE	T1,		;CUT BACK
1)		  JFCL			;TOO BAD
1)		MOVE	T1,DY.UB	;PREVIOUS UPPER BOUND
****
2)5	;**;[1113] Insert after LNKPLT+4L	DZN	25-Aug-78
2)	IFN TOPS20,<			;[1113] SHRINK THEN EXPAND TO SA
	ME SIZE ON TOPS-20
2)		MOVE	T2,.JBREL	;[1113] REMEMBER HOW BIG WE ARE
2)		CORE	T1,		;[1113] SHRINK TO KILL PAGES
2)		  JFCL			;[1113]
2)		MOVE	T1,T2		;[1113] NOW GROW TO OLD SIZE WIT
	H EMPTY PAGES
2)	>
2)		CORE	T1,		;[1113] SHRINK ON TOPS-10, GROW
	ON TOPS-20
2)		  JFCL			;TOO BAD
2)		SETZM	CORFUL		;[1113] ALLOW LNKCOR TO WORK HAR
	D FOR US
2)		MOVE	T1,DY.UB	;PREVIOUS UPPER BOUND
**************
 
Digital Equipment Corporation       28-AUG-79    Page 111
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1617 07-Aug-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1709 25-Aug-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	7-Aug-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	25-Aug-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1111		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1113		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1113	See that LINK doesn't shrink on TOPS-20 until really nec
	essary.
2)5	SUBTTL	ENTER HERE
**************
1)14	GSDLT:	SKIPN	.JBDDT(T1)	;SEE IF WE NEED LOCAL SYMBOLS
1)		SKIPE	SYMSEG		;EITHER FOR /DEB OR /SYMSEG
****
2)14	;**;[1113] Change @GSDLT	DZN	25-Aug-78
2)	GSDLT:
2)	IFE TOPS20,<			;[1113] DON'T SHRINK BACK ON TOP
	S-20
2)		SKIPN	.JBDDT(T1)	;SEE IF WE NEED LOCAL SYMBOLS
2)		SKIPE	SYMSEG		;EITHER FOR /DEB OR /SYMSEG
**************
1)14	GSNRED:	PUSHJ	P,GS.ZAP	;GET RID OF GS
****
2)14	;**;[1113] Change @GSNRED	DZN	25-Aug-78
2)	> ;END OF IFE TOPS20
2)	GSNRED:	PUSHJ	P,GS.ZAP	;GET RID OF GS
**************
1)84		CAMG	T1,.JBREL	;DO WE HAVE ENOUGH ALREADY?
****
2)84	;**;[1113] Insert after JBCC+19L	DZN	25-Aug-78
2)	IFE TOPS20,<			;[1113] SEE IF WE CAN EXPAND ON
	TOPS-10
2)		CAMG	T1,.JBREL	;DO WE HAVE ENOUGH ALREADY?
**************
1)84					;FALL INTO JBGC TO READ IN READ
	IN REST OF TEMP FILE
****
2)84	;**;[1113] Insert after JBCC+28L	DZN	25-Aug-78
2)	>
2)	IFN TOPS20,<			;[1113] WE'RE AS BIG AS WE CAN G
Digital Equipment Corporation       28-AUG-79    Page 112
PCO Log Report


	ET ON TOPS-20
2)		CAMLE	T1,.JBREL	;[1113] DO WE HAVE ENOUGH ALREAD
	Y?
2)		JRST	JBNC		;[1113] NO--GO DO IT THE HARD WA
	Y
2)	>
2)					;FALL INTO JBGC TO READ IN READ
	IN REST OF TEMP FILE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 113
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -008*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          01-SEP-78

[Programmer]            D. NEFF

[Routines]              LNKOLD    LNKLOD

[Key Words]             COBOL SYMS  ALGOL OWNS

[Source Before Edit]    %4A  (001113)

[Source After Edit]     %4A  (001114)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-11999
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 114
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK allocates too much  room  for  modules  after  any  COBOL
module  used with /LOCALS or ALGOL module, when all the modules are
in a single REL file that is  not  being  loaded  with  /SEARCH  or
/INCLUDE.  This causes programs to load much larger than necessary.
 

                        **********


[DIAGNOSIS]
 
     COBOL symbols and ALGOL OWNs are not counted  in  the  segment
break in REL block 5 (END), so that LINK must count them separately
and add them in at the end of the module.  Unfortunately, when  the
conditions  above  are  met,  LINK neglects to zero them when it is
through.  Thus, the lengths get added in to each subsequent  module
in the REL file.
 

                        **********


[CURE]
 
     See that the counts get zeroed immediately after use.
 
Digital Equipment Corporation       28-AUG-79    Page 115
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1533 25-Aug-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1643 01-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	25-Aug-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	1-Sep-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1113		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1114		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1114	DZN	1-Sep-78	SPR 20-11999
2)	;	Zero count of COBOL symbol words and ALGOL OWNs loaded w
	hen
2)	;	done loading a module, so they don't get counted in subs
	equent
2)	;	modules in the same file.
2)	;	Routines: LNKOLD, LNKLOD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 116
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 1800 30-May-1978
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1647 01-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	29-May-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	1-Sep-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1101		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==1114		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)5	COMMENT	\
****
2)4	;1114	Zero count of COBOL symbols and ALGOL OWNs in T.5A.
2)5	COMMENT	\
**************
1)48	T.5F40::			;ENTRY FROM LNKF40
****
2)47	;**;[1114] Insert after T.5A+15L	DZN	1-Sep-78
2)		SETZM	LOD37		;[1114] DONE WITH COBOL SYMBOLS
2)		SETZM	OWNLNG		;[1114]   AND ALGOL OWNS
2)	;	SETZM	VARLNG		;[1114]   AND LVARS
2)48	T.5F40::			;ENTRY FROM LNKF40
**************
 
Digital Equipment Corporation       28-AUG-79    Page 117
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 0317 27-Jun-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1654 01-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	27-Jun-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	1-Sep-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1106		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1114		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1114	Don't clear COBOL symbols and ALGOL OWNs in LODTST (move
	d to T.5A).
2)5	SUBTTL	LOAD CONTROL
**************
1)5		SETZM	OWNLNG		;CLEAR ALGOL OWN BLOCK LENGTH
1)		SETZM	LOD37		;COBOL LOCAL SYMBOL SIZE
1)	;	SETZM	VARLNG		;BLOCK TYPE 13 LVARS
1)		TRNN	FL,R.LIB!R.INC	;IN LIBRARY SEARCH MODE OR /INC
	MODE?
****
2)5	;**;[1114] Delete @LODTST+2	DZN	1-Sep-78
2)		TRNN	FL,R.LIB!R.INC	;IN LIBRARY SEARCH MODE OR /INC
	MODE?
**************
1)89		POPJ	P,
****
2)89	;**;[1114] Insert after EOFTS+14L	DZN	1-Sep-78
2)		SETZM	LOD37		;[1114] DONE WITH COBOL SYMBOLS
2)		SETZM	OWNLNG		;[1114]   AND ALGOL OWNS
2)	;	SETZM	VARLNG		;[1114]   AND LVARS
2)		POPJ	P,
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 118
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -009*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          04-SEP-78

[Programmer]            D. NEFF

[Routines]              LNKOLD    LNKERR

[Key Words]             OV HGH COD  LNKHCL

[Source Before Edit]    %4A  (001114)

[Source After Edit]     %4A  (001115)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:20-11997
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 119
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     No complaints from LINK when loading high segment  code  in  a
link  other  than the root in an overlaid program.  This frequently
happens when a user attempts to  build  an  overlaid  program  with
COBOL modules compiled with the /R COBOL switch.
 

                        **********


[DIAGNOSIS]
 
     LINK's overlay facility depends  completely  on  all  code  in
links other than the root residing in the low segment.  However, no
load-time check is made to save  users  much  grief  and  confusion
later.
 

                        **********


[CURE]
 
     Add a check, and new message LNKHCL.
 
Digital Equipment Corporation       28-AUG-79    Page 120
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1643 01-Sep-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1838 02-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	1-Sep-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	2-Sep-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1114		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1115		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1115	DZN	2-Sep-78	SPR 20-11997
2)	;	Add LNKHCL message to complain when loading high segment
	 code
2)	;	into a link other than the root in an overlaid program.
2)	;	Routines: LNKERR, LNKOLD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 121
PCO Log Report


[FILCOM]
File 1)	LINK:LNKERR.MAC[30,4507]  	created: 1235 30-Aug-1978
File 2)	LINK:LNKERR.MAC[10,645063]	created: 1840 02-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	25-Aug-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	2-Sep-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1113		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1115		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	FIND MESSAGE
****
2)2	;1115	Add long message for LNKHCL.
2)3	SUBTTL	FIND MESSAGE
**************
1)9	HSL	31	31	Attempt to set high segment origin too l
	ow
****
2)9	HCL	31	31	High segment code not allowed in an over
	lay link in module [module]
2)	HSL	31	31	Attempt to set high segment origin too l
	ow
**************
1)10	IFE TOPS20,<
****
2)10	;**;[1115] Insert before LNKHSL long message	DZN	2-Sep-78
2)	HASH	HCL,0,<^_
2)		You  have  attempted  to  load  high  segment code into
	an
2)		overlay link other than the root. Any high segment code
	in
2)		an overlaid program must be in the root.>
2)	IFE TOPS20,<
**************
 
Digital Equipment Corporation       28-AUG-79    Page 122
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 1647 01-Sep-1978
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1944 02-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	1-Sep-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	2-Sep-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1114		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==1115		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)5	COMMENT	\
****
2)4	;1115	Add LNKHCL message to complain about loading high seg in
	 non-root link.
2)5	COMMENT	\
**************
1)36	T.3:	HRRZ	W2,W1		;GET WORD COUNT
1)		PUSHJ	P,D.IN1##	;GET A WORD (RELOCATION BYTES)
****
2)36	;**;[1115] Replace @T.3	DZN	2-Sep-78
2)	T.3:
2)	IFN FTOVERLAY,<
2)		TRNN	FL,R.FLS	;[1115] NOT FORCING INTO LOW SEG
	?
2)		SKIPGE	LNKMAX		;[1115]   AND NOT ROOT LINK?
2)		JRST	T.3C		;[1115] NO
2)		.ERR.	(MS,.EC,V%L,L%F,S%F,HCL,<High segment code not a
	llowed in an overlay link in module >)
2)		.ETC.	(SBX,.EP,,,,PRGNAM)
2)	T.3C:
2)	> ;END OF IFN FTOVERLAY
2)		HRRZ	W2,W1		;GET WORD COUNT
2)		PUSHJ	P,D.IN1##	;GET A WORD (RELOCATION BYTES)
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 123
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -010*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          07-SEP-78

[Programmer]            GILBERT

[Routines]              LNKLOD

[Key Words]             LOST CODE   EDIT 716    PSECTS

[Source Before Edit]    %4A  (001115)

[Source After Edit]     %4A  (001116)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 124
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Large areas of the program being loaded will  be  lost;
there  will  be  zeros  where there should be code and data.
This will only happen  when  loading  a  program  that  uses
PSECTs, or any large program that does not load some segment
monotonically (e.g., LOC or RELOC  statements  are  used  to
skip  around  in the address space being loaded).  This will
only happen in LINK version 4 or later.
 

                        **********


[DIAGNOSIS]
 
     Part of edit 716 removed code to read in data that  had
already been loaded above the point where data was currently
being placed.  Unfortunately, if the data is not read in, it
will be lost.
 

                        **********


[CURE]
 
     Remove that portion of edit 716;  replace the  original
code.
 
 
Digital Equipment Corporation       28-AUG-79    Page 125
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1838 02-Sep-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 2135 07-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	2-Sep-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	7-Sep-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1115		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1116		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1116	JNG	7-Sep-78
2)	;	Put back part of the code removed by edit 716.  Performa
	nce
2)	;	improvements are only kosher as long as the code removed
	 is
2)	;	unneeded.
2)	;	Routines: LNKLOD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 126
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1654 01-Sep-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 2141 07-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	1-Sep-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	7-Sep-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1114		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1116		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1116	When expanding a window in PG.SX, read in any data alrea
	dy in the
2)	;	overflow file for the region being created.  Broken by 7
	16.
2)5	SUBTTL	LOAD CONTROL
**************
1)12	;[716]	CAML	T1,HB.S0(R)	;HOWEVER IF EVEN BIGGER HAS BEEN
	 SEEN?
1)		JRST	RPOPJ		;NO, RESTORE R AND RETURN
1)	;[716]	HRLZI	T1,1(T1)	;IT MUST BE ON THE DSK
1)	;[716]	HRR	T1,UW.S0(R)	;SO SETUP TRANSFER REQUEST
1)	;[716]	PUSHJ	P,@[EXP LC.IN##,HC.IN##]-1(R)
1)	;[716]	PJRST	FIXUP		;AND DO ANY FIXUPS
1)13	;SIMILARLY FOR HIGH SEG
****
2)12	;**;[1116] Remove edit 716 @ PG.SX+12L	JNG	7-Sep-78
2)		CAML	T1,HB.S0(R)	;[1116] HOWEVER IF EVEN BIGGER H
	AS BEEN SEEN?
2)		JRST	RPOPJ		;NO, RESTORE R AND RETURN
2)		HRLZI	T1,1(T1)	;[1116] IT MUST BE ON THE DSK
2)		HRR	T1,UW.S0(R)	;[1116] SO SETUP TRANSFER REQUES
	T
2)		PUSHJ	P,@[EXP LC.IN##,HC.IN##]-1(R)	;[1116]
2)		PJRST	FIXUP		;[1116] AND DO ANY FIXUPS
2)13	;SIMILARLY FOR HIGH SEG
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 127
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -242*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765), TESTED IN 4A(1116)

[Date Entered]          21-SEP-78

[Programmer]            D. NEFF

[Routines]              LNKPAR    LNKWLD

[Key Words]             /NOINCLUDE

[Source Before Edit]    %4A  (001116)

[Source After Edit]     %4A  (001117)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-26102
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 128
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
The command string
 
     /INCLUDE:A D.REL
 
does not load module A from D.REL.
 

                        **********


[DIAGNOSIS]
 
There are two operations performed by the /INCLUDE switch.   First,
the switch's arguments (if any) are added to the list of modules to
be loaded when a file is in `include mode'.  Second,  /INCLUDE  may
also set `include mode'.
 
In old versions of LINK, /INCLUDE did both operations all the time.
Thus,
 
     /INCLUDE:(A,B,C) D,E,F
 
loaded only modules A, B and C from REL files  D,  E  and  F.   The
problem  was that if, say, a user wanted all modules in E.REL to be
loaded, there was no way to turn off the `include mode'  action  of
the sticky /INCLUDE.
 
Therefore, an edit was made to partially decouple the  two  actions
of  /INCLUDE, so that specifying /INCLUDE with arguments only added
module names to the list of those  to  include,  but  did  not  set
`include mode'.  A /INCLUDE switch without any arguments would then
set `include mode' for a file.  Thus, in  the  above  example,  one
could type
 
     /INCLUDE:(A,B,C) D/INCLUDE,E,F/INCLUDE
 
and get the desired results of looking for modules A, B  and  C  in
REL files D and F, but loading all modules in E.
 
Unfortunately,  this  action  is  counter-intuitive,  and  required
Digital Equipment Corporation       28-AUG-79    Page 129
PCO Log Report


numerous   and  seemingly  redundant  specifications  of  /INCLUDE.
Another problem was that after the edit,  /INCLUDE  specified  with
arguments  for a specific file (such as D/INCLUDE:A) would also set
`include mode'.   This  made  the  action  of  /INCLUDE  even  more
difficult to understand.  In particular, the obvious case mentioned
in the symptom above no longer worked.
 

                        **********


[CURE]
 
Put /INCLUDE back the way it was so that it  always  sets  `include
mode'  along  with adding any specified module names to the list to
be checked.  However, also add a new switch /NOINCLUDE  which  will
temporarily  turn  off `include mode' without affecting the list of
modules to  include.   To  clarify  the  new  setup,  consider  the
following examples:
 
/INCLUDE:A D
 
          will load only module A from B.REL
 
/INCLUDE:(A,B,C) D,E,F
 
          will load only modules A, B and C from REL files D, E and
          F
 
/INCLUDE:(A,B,C) D,E/NOINCLUDE,F
 
          will load only modules A, B and C from REL files D and F,
          but will load all of E.REL.
 
/INCLUDE:(A,B,C) D,/NOINCLUDE E,F,/INCLUDE G
 
          will load only modules A, B and C from REL files D and G,
          but will load all of REL files E and F
 
Note that /NOINCLUDE takes no arguments;  its only intended use  is
to temporarily turn off `include mode' for certain files.
 
Also, since the switch table in LNKPAR is changed by this edit,  it
is  suggested that all of LINK's modules be recompiled, rather than
just those explicitly edited by the following FILCOM.
 
Digital Equipment Corporation       28-AUG-79    Page 130
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 2135 07-Sep-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1255 14-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	7-Sep-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Sep-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1116		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1117		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1117	DZN	14-Sep-78
2)	;	Make /INCLUDE:args also set include mode, as it did long
	 ago.
2)	;	But also add /NOINCLUDE to turn off include mode but not
2)	;	delete the original args.
2)	;	Routines: LNKPAR, LNKWLD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 131
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPAR.MAC[30,4507]  	created: 1422 15-Aug-1978
File 2)	LINK:LNKPAR.MAC[10,645063]	created: 1259 14-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH	15-Aug-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	14-Sep-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1112		;DEC EDIT VERSION
1)		LOC	137	;KEEPS MACRO HAPPY
****
2)1	DECEVR==1117		;DEC EDIT VERSION
2)		LOC	137	;KEEPS MACRO HAPPY
**************
1)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
****
2)5	;1117	Add /NOINCLUDE switch.
2)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
**************
1)33	SWMAC	SS,NOINITIAL,,0,,3
****
2)33	;;**;[1117] Insert before /NOINITIAL switch in SWTCHS macro	
	DZN	14-Sep-78
2)	SWMAC	SS,NOINCLUDE,,0,,3,.;;		;[1117] TURN OFF STICKY
	/INCLUDE
2)	SWMAC	SS,NOINITIAL,,0,,3
**************
 
Digital Equipment Corporation       28-AUG-79    Page 132
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1613 03-Aug-1978
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1308 14-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	3-Aug-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	14-Sep-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1107		;DEC EDIT VERSION
1)	;CALLING SEQUENCE
****
2)1	DECEVR==1117		;DEC EDIT VERSION
2)	;CALLING SEQUENCE
**************
1)3	;775	Make sure /DEBUG:FORTRAN loads the starting address of F
	ORDDT.
1)	;1101	Set LSTBLK and DTAFLG correctly on new input files.
1)	;1107	Fix bug with .SETEX routine to expand RC.TB and RC.NTB t
	ables
1)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
****
2)3	;START OF VERSION 4A
2)	;775	Make sure /DEBUG:FORTRAN loads the starting address of F
	ORDDT.
2)	;1101	Set LSTBLK and DTAFLG correctly on new input files.
2)	;1107	Fix bug with .SETEX routine to expand RC.TB and RC.NTB t
	ables.
2)	;1117	Add /NOINCLUDE switch and make /INCLUDE:args set include
	 mode.
2)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
**************
1)26		JUMPN	T2,INCL.1	;IF ARGUMENTS, JUST STORE THEM
1)		TDO	FL,[L.INC,,R.INC]	;ELSE /INC MODE ON THIS
	LINE
1)		POPJ	P,		;DONE SINCE NO ARGS TO PROCESS
1)	INCL.1:	MOVSS	EXCPTR		;SWAP PTR TO PUT PERMANENT PART
	INTO RH
1)		MOVSS	INCPTR
1)		PUSHJ	P,%INCLUDE	;STORE NAME
1)		TLNN	FL,L.INC	;UNLESS BY STICKY SWITCH,
1)		TRZ	FL,R.INC	;  NEXT FILE ISN'T IN /INCLUDE
1)		MOVSS	EXCPTR		;SWAP BACK
****
2)26	;**;[1117] Change @.INCLUDE+1L	DZN	14-Sep-78
2)		TDO	FL,[L.INC,,R.INC] ;[1117] ALWAYS SET INCLUDE MOD
	E
2)		SKIPN	T2		;[1117] SEE IF ANY ARGS TO STORE
2)		POPJ	P,		;[1117] NO--JUST RETURN
Digital Equipment Corporation       28-AUG-79    Page 133
PCO Log Report


2)		MOVSS	EXCPTR		;SWAP PTR TO PUT PERMANENT PART
	INTO RH
2)		MOVSS	INCPTR
2)		PUSHJ	P,%INCLUDE	;STORE NAME
2)		MOVSS	EXCPTR		;SWAP BACK
**************
1)27	;ROUTINES TO SEARCH THE INCLUDE/EXCLUDE BLOCKS FOR A MATCH.
****
2)26	;**;[1117] Insert after %INCLUDE+10L	DZN	14-Sep-78
2)	.NOINCLUDE:
2)		TDZ	FL,[L.INC,,R.INC] ;[1117] TURN OFF INCLUDE MODE
2)		POPJ	P,		;[1117] CAN BE TURNED ON BY LATE
	R /INCLUDE
2)	%NOINCLUDE:
2)		TRZ	FL,R.INC	;[1117] TURN OFF LOCAL INCLUDE M
	ODE
2)		POPJ	P,		;[1117] DONE
2)27	;ROUTINES TO SEARCH THE INCLUDE/EXCLUDE BLOCKS FOR A MATCH.
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 134
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -243*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(766) TESTED IN 4(1117)

[Date Entered]          26-SEP-78

[Programmer]            D. NEFF

[Routines]              LNKOLD    LNKLOD    LNKMAP    LNKERR

[Key Words]             CPU TYPES

[Source Before Edit]    %4A  (001117)

[Source After Edit]     %4A  (001120)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-26135
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 135
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
LINK doesn't handle the CPU type bits in the title REL block  (type
6) correctly.  Some of the possible symptoms are:
 
     1.  Saying .DIRECTIVE KA10,KI10 in a MACRO program causes LINK
         to  indicate in the map that the module was built for a KL
         only.
 
     2.  `LNKKIA Cannot mix KI and KA compiled code'  results  even
         when the mismatch is due to a KL specification.
 
Edit 766 only compounded the problem, by treating KIs  and  KLs  as
the same.
 

                        **********


[DIAGNOSIS]
 
The field in the title REL block allows specification of a  set  of
CPUs  on  which  the module may run, not just a single CPU.  LINK's
tables and checks believe that the CPU field is  a  single  number,
one for each CPU type.
 

                        **********


[CURE]
 
Make LINK understand the CPU type bits as defined in the title  REL
block.  This involves a number of changes:
 
     1.  Remove edit 766 if it was installed (the FILCOM shows  the
         removal of edit 766).
 
     2.  Keep a mask of all CPUs on which the program being  loaded
         will run, and update it as modules with CPU specifications
         are read in.  If loading a module with a CPU specification
         keeps  the entire program from running on any type of CPU,
Digital Equipment Corporation       28-AUG-79    Page 136
PCO Log Report


         give the message
 
              ?LNKCCD CPU conflict detected in module [module]
 
     3.  Remove the LNKKIA message.
 
     4.  Print all applicable CPU types specified for a  module  in
         the map (unless all CPUs were specified).
 
     5.  Indicate in the page header of the map after  the  program
         name,  all  CPUs  on  which  the  entire  program will run
         (unless all CPUs).  This is the logical  AND  of  the  CPU
         specifications of all loaded modules.
 
 
Digital Equipment Corporation       28-AUG-79    Page 137
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1255 14-Sep-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1552 22-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Sep-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	22-Sep-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1117		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1120		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1120	DZN	22-Sep-78	SPR 10-26135
2)	;	Fix CPU mismatch checks so that they work. Remove edit 7
	66,
2)	;	revamp all CPU check code to use a bit mask of valid CPU
	s,
2)	;	delete the LNKKIA message and add LNKCCD, and change the
2)	;	map to include the correct information. Also, make the m
	ap
2)	;	show which CPUs the entire program can be run on.
2)	;	Routines: LNKPAR, LNKERR, LNKOLD, LNKLOD, LNKINI, LNKMAP
	, LNKLOW
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 138
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPAR.MAC[30,4507]  	created: 1259 14-Sep-1978
File 2)	LINK:LNKPAR.MAC[10,645063]	created: 1849 25-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	14-Sep-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	22-Sep-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1117		;DEC EDIT VERSION
1)		LOC	137	;KEEPS MACRO HAPPY
****
2)1	DECEVR==1120		;DEC EDIT VERSION
2)		LOC	137	;KEEPS MACRO HAPPY
**************
1)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
****
2)5	;1120	Redefine CPU types to be bits rather than values.
2)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
**************
1)15	;CPUS
1)	DEFINE CPUS<
1)	X UNKNOWN,UNK
1)	X KA10,KA
1)	X KI10,KI
1)	X KL10,KL
1)	>
1)	CP.LEN==0
1)	CP.BIT==1B0
1)	DEFINE X (A,B)<
1)	 CP.'B==CP.LEN
1)	 CP.LEN==CP.LEN+1
1)	 B'BIT==CP.BIT
1)	 CP.BIT==CP.BIT_-1
1)	>
1)	CPUS
1)	IFE CP.BIT,<PRINTX TOO MANY CPUS>
1)	PURGE X,CP.BIT
****
2)15	;**;[1120] Replace @ CPUS definitions	DZN	22-Sep-78
2)	;CPU TYPES. FIRST ARGUMENT TO INTERNAL X MACRO IS THE NAME AS
2)	;IT SHOULE BE PRINTED IN THE MAP. THE SECOND IS A TWO LETTER MNE
	MONIC,
2)	;USED TO BUILD SYMBOLS. THESE ARE CURRENTLY THE SAME.
2)	DEFINE CPUS<
2)	  X KA,KA
2)	  X KI,KI
2)	  X KL,KL
Digital Equipment Corporation       28-AUG-79    Page 139
PCO Log Report


2)	>
2)	CP.MSK==0			;[1120] TO BE MASK OF ALL VALID
	CPUS
2)	CP.BIT==1B35			;[1120] STARTING CPU BIT
2)	DEFINE X(A,B)<
2)	  CP.'B==CP.BIT			;;[1120] ALLOCATE NEXT CPU BIT	
2)	  CP.MSK==CP.MSK!CP.BIT		;;[1120] BUILD MASK OF ALL CPU B
	ITS
2)	  CP.BIT==CP.BIT_1		;;[1121] ADVANCE TO NEXT BIT
2)	>
2)	CPUS
2)	PURGE X,CP.BIT
**************
 
Digital Equipment Corporation       28-AUG-79    Page 140
PCO Log Report


[FILCOM]
File 1)	LINK:LNKERR.MAC[30,4507]  	created: 1840 02-Sep-1978
File 2)	LINK:LNKERR.MAC[10,645063]	created: 1544 22-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	2-Sep-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	22-Sep-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1115		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1120		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	FIND MESSAGE
****
2)2	;1120	Remove LNKKIA and add LNKCCD.
2)3	SUBTTL	FIND MESSAGE
**************
1)9	CEF	31	31	Core expansion failed
****
2)9	CCD	31	31	CPU conflict detected in module [module]
2)	CEF	31	31	Core expansion failed
**************
1)9	KIA	31	31	Cannot mix KI10 and KA10 compiled code
1)	LDS	 1	 1	LOAD segment
****
2)9	LDS	 1	 1	LOAD segment
**************
1)10	HASH	CEF,0,<^_
****
2)10	;**;[1120] Insert before LNKCEF long message	DZN	22-Sep-7
	8
2)	HASH	CCD,0,<^_
2)		You  have  loaded  modules  compiled  with conflicting C
	PU
2)		specifications, such as loading a MACRO  program  compil
	ed
2)		with  the  statement  .DIRECTIVE KA10 and another compil
	ed
2)		with .DIRECTIVE KI10. Recompile the affected modules  wi
	th
2)		compatible CPU specifications.>
2)	HASH	CEF,0,<^_
**************
1)10	HASH	KIA,0,<^_
1)		Some modules loaded were compiled for the KA10	processo
	r,
1)		and  some  for	the KI10 processor.  Recompile so that a
Digital Equipment Corporation       28-AUG-79    Page 141
PCO Log Report


	ll
1)		modules are compiled for the same processor.>
1)	HASH	LDS,0,<^_
****
2)10	;**;[1120] Delete LNKKIA long message	DZN	22-Sep-78
2)	HASH	LDS,0,<^_
**************
 
Digital Equipment Corporation       28-AUG-79    Page 142
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOW.MAC[30,4507]  	created: 2157 29-May-1978
File 2)	LINK:LNKLOW.MAC[10,645063]	created: 1625 22-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC	29-May-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC	22-Sep-78-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1101		;DEC EDIT VERSION
1)		LOC	137
****
2)1	DECEVR==1120		;DEC EDIT VERSION
2)		LOC	137
**************
1)3	SUBTTL	STORAGE
****
2)2	;1120	Delete CPUSN,  add OKCPUS.
2)3	SUBTTL	STORAGE
**************
1)6	CPUSN::	BLOCK	1		;OR OF ALL CPU TYPES SEEN
1)	COREFL::BLOCK	1		;-1 IF LNKCOR SHUFFLED USER CORE
****
2)6	OKCPUS::BLOCK	1		;[1120] BITS ON FOR ALL CPUS PRO
	G WILL RUN ON
2)	COREFL::BLOCK	1		;-1 IF LNKCOR SHUFFLED USER CORE
**************
 
Digital Equipment Corporation       28-AUG-79    Page 143
PCO Log Report


[FILCOM]
File 1)	LINK:LNKINI.MAC[30,4507]  	created: 1949 01-Mar-1978
File 2)	LINK:LNKINI.MAC[10,645063]	created: 1636 22-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	22-Sep-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1120		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	INITIALIZE
****
2)2	;START OF VERSION 4A
2)	;1120	Initialize OKCPUS to all known CPUs.
2)3	SUBTTL	INITIALIZE
**************
1)14	IFL .FORLB,<			;.FORLB=-1 FOR FORSE, 0 FOR FORL
	IB
****
2)14	;**;[1120] Insert after NOLOG+14L	DZN	22-Sep-78
2)		MOVEI	T1,CP.MSK	;[1120] START PROG RUNNABLE ON A
	LL CPU TYPES
2)		MOVEM	T1,OKCPUS	;[1120]   ..
2)	IFL .FORLB,<			;.FORLB=-1 FOR FORSE, 0 FOR FORL
	IB
**************
 
Digital Equipment Corporation       28-AUG-79    Page 144
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 2141 07-Sep-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1814 22-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	7-Sep-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	22-Sep-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1116		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1120		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1120	Remove CPUTST routine (T.6 does it now) and all calls to
	 it.
2)5	SUBTTL	LOAD CONTROL
**************
1)55	DEFINE X(A,B)<
1)	 IF1,<BLOCK	1>
1)	 IF2,<
1)	  IFDEF B'NAM,<
1)		PUSHJ	P,B'NAM
1)	  >
1)	  IFNDEF B'NAM,<
1)		PUSHJ	P,CPUTST
1)	>>>
1)	XALL
1)	CT.NAM::PROCESSORS
****
2)55	;**;[1120] Various changes near CT.NAM	DZN	22-Sep-78
2)	DEFINE X(A,B)<
2)	  IF1,<BLOCK	1>
2)	  IF2,<
2)	    IFDEF B'NAM,<		;;[1120] CALL PROCESSOR ROUTINE
2)		PUSHJ	P,B'NAM
2)	    >
2)	    IFNDEF B'NAM,<
2)		JFCL			;;[1120] NOTHING TO DO
2)	    >
2)	  >
2)	>
2)		XALL
2)	CT.NAM::PROCESSORS
**************
1)55	CT.BIT::	PROCESSORS
Digital Equipment Corporation       28-AUG-79    Page 145
PCO Log Report


1)	CP.BIT::	CPUS
1)	SALL
1)56	;CALLED BY	PUSHJ	P,xxxNAM
****
2)55	CT.BIT::PROCESSORS
2)		SALL
2)56	;CALLED BY	PUSHJ	P,xxxNAM
**************
1)56	;T1 = INDEX TO CT.TAB
1)	;T2 = INDEX TO CP.TAB
1)	;T3 = PROCSN (CT.BIT)
 
 
1)	;T4 = CPUSN (CP.BIT)
1)	;-1(P) = BLANK COMMON
1)	;HERE IF ALGOL MAIN PROGRAM - SETS THIS AS PROGRAM NAME
1)	ALGNAM:	SKIPN	-1(P)		;SEE IF BLANK COMMON SET
1)		JRST	CPUTST		;USES COMMON SIZE AS MAIN PROG M
	ARKER.
1)		SETZM	-1(P)		;CLEAR COMMON SIZE
****
2)56	;	T1/	INDEX TO CT.TAB
2)	;	T2/	PROCSN (CT.BIT)
2)	;	W2/	PROGRAM NAME
2)	;	-1(P)/	BLANK COMMON
2)	;HERE IF ALGOL MAIN PROGRAM - SETS THIS AS PROGRAM NAME
2)	ALGNAM:	SKIPN	-1(P)		;SEE IF BLANK COMMON SET
2)	;**;[1120] Replace @ALGNAM+1L	DZN	22-Sep-78
2)		POPJ	P,		;[1120] USES COMMON SIZE AS MAIN
	 PROG MARKER.
2)		SETZM	-1(P)		;CLEAR COMMON SIZE
**************
1)56		JRST	CPUTST
1)	F40NAM:
****
2)56	;**;[1120] Replace @ALGNAM+5L	DZN	22-Sep-78
2)		POPJ	P,		;[1120] DONE
2)	F40NAM:
**************
1)56			TXNE	T3,F40BIT	;1ST TIME SEEN F40?
1)			JRST	CPUTST		;NO, GO TEST CPU'S
1)			MOVX	W1,PT.SGN!PT.SYM	;YES,
1)			MOVE	W2,['FORSE.']	;REQUEST FORSE., SO
1)			SETZ	W3,		;FORJAK WILL BE LOADED
1)			PUSH	P,T2		;SAVE CPU TYPE
1)			PUSH	P,P1		;SAVE PERM ACS
1)			PUSH	P,P2		;..
1)			PUSHJ	P,SY.RQ##	;GENERATE REQUEST
1)			POP	P,P2		;RESTORE PERM ACS
1)			POP	P,P1		;..
1)			POP	P,T2		;RESTORE FOR CPUTST
Digital Equipment Corporation       28-AUG-79    Page 146
PCO Log Report


1)			JRST	CPUTST]
1)	>				;
1)		TXNN	T3,FORBIT	;CAN NOT HAVE BOTH
1)		JRST	CPUTST		;OK, SO TEST CPU TYPE
1)		JRST	F40ERR		;ERROR
1)	IFN FTOVERLAY,<
****
2)56	;**;[1120] Replace @F40NAM+8L	DZN	22-Sep-78
2)			TXNE	T2,F40BIT	;[1120] 1ST TIME SEEN F4
	0?
2)			POPJ	P,		;[1120] NO, GO TEST CPU'
	S
2)			MOVX	W1,PT.SGN!PT.SYM;[1120] YES,
2)			MOVE	W2,['FORSE.']	;REQUEST FORSE., SO
2)			SETZ	W3,		;FORJAK WILL BE LOADED
2)			PUSH	P,P1		;SAVE PERM ACS
2)			PUSHJ	P,SY.RQ##	;GENERATE REQUEST
2)			POP	P,P1		;..
2)			POPJ	P,]		;[1120] DONE
2)	>				;
2)		TXNE	T2,FORBIT	;[1120] CAN NOT HAVE BOTH
2)		JRST	F40ERR		;ERROR
 
 
2)		POPJ	P,		;[1120] DONE
2)	IFN FTOVERLAY,<
**************
1)57	CBLNAM:	JUMPE	T3,CPUTST	;OK FIRST TIME
1)		TXNE	T3,C74BIT	;TEST FOR OTHER COBOL
1)		JRST	C74ERR		;NOT ALLOWED
1)		TXNE	T3,CBLBIT	;OR IF COBOL ALREADY SEEN
1)		JRST	CPUTST
1)		.ERR.	(MS,0,V%L,L%F,S%F,CMF,<Cobol module must be load
	ed first>)
1)	C74NAM:	JUMPE	T3,CPUTST	;OK FIRST TIME
1)		TXNE	T3,CBLBIT	;TEST FOR OTHER COBOL
1)		JRST	C74ERR		;NOT ALLOWED
1)		TXNE	T3,C74BIT	;OR IF COBOL ALREADY SEEN
1)		JRST	CPUTST
1)		.ERR.	(MS,0,V%L,L%F,S%F,CMF)
****
2)57	;**;[1120] Replace @CBLNAM	DZN	22-Sep-78
2)	CBLNAM:	JUMPE	T2,CPOPJ	;[1120] OK FIRST TIME
2)		TXNE	T2,C74BIT	;[1120] TEST FOR OTHER COBOL
2)		JRST	C74ERR		;NOT ALLOWED
2)		TXNE	T2,CBLBIT	;[1120] OR IF COBOL ALREADY SEEN
2)		POPJ	P,		;[1120] DONE
2)		.ERR.	(MS,0,V%L,L%F,S%F,CMF,<Cobol module must be load
	ed first>)
2)	C74NAM:	JUMPE	T2,CPOPJ	;[1120] OK FIRST TIME
2)		TXNE	T2,CBLBIT	;[1120] TEST FOR OTHER COBOL
Digital Equipment Corporation       28-AUG-79    Page 147
PCO Log Report


2)		JRST	C74ERR		;NOT ALLOWED
2)		TXNE	T2,C74BIT	;[1120] OR IF COBOL ALREADY SEEN
2)		POPJ	P,		;[1120] DONE
2)		.ERR.	(MS,0,V%L,L%F,S%F,CMF)
**************
1)57	;FORTRAN-10
1)	FORNAM:
****
2)57	;**;[1120] Replace @C74ERR+6L	DZN	22-Sep-78
2)	;FORTRAN
2)	FORNAM:
**************
1)57		JRST	FORKLG		;YES>
1)		TXNN	T3,F40BIT
1)		JRST	FORCPU		;SEE IF WE CARE ABOUT CPU
1)	F40ERR:	.ERR.	(MS,0,V%L,L%F,S%F,MSR,</MIXFOR switch required t
	o mix F40 and FORTRAN code>)
1)	IFN FMXFOR,<
1)	FORKLG:	HRRZS	MIXFOR		;MAKE IT POSITIVE>
1)	FORCPU:	PUSHJ	P,CPUTST	;TEST IF CAN LOAD WITH CURRENT P
	ROGS
1)		MOVE	T1,OTSEG	;DID USER SPECIFY NON-REENT OTS?
1)		SOJE	T1,CPOPJ	;YES, SO LOAD TWO SEG CODE IN TW
	O SEGMENTS
****
2)57		JRST	FORKLG		;YES
2)	>
2)		TXNN	T2,F40BIT	;[1120] F40 SEEN ALREADY?
2)		JRST	FORSEG		;[1120] SEE IF WE CARE ABOUT CPU
2)	F40ERR:	.ERR.	(MS,0,V%L,L%F,S%F,MSR,</MIXFOR switch required t
	o mix F40 and FORTRAN code>)
2)	IFN FMXFOR,<
2)	FORKLG:	HRRZS	MIXFOR		;MAKE IT POSITIVE
2)	>
2)	FORSEG:	MOVE	T1,OTSEG	;[1120] DID USER SPECIFY NON-REE
	NT OTS?
 
 
2)		SOJE	T1,CPOPJ	;YES, SO LOAD TWO SEG CODE IN TW
	O SEGMENTS
**************
1)58	DEFINE X(A,B)<
1)		EXP	CPU'B
1)	>
1)	CPUUNK==CPOPJ			;RUNS ON ANY CPU
1)	CPUTBL:	CPUS
1)	CPUTST:	MOVE	T1,T2		;[752] NEED 2 ACS FOR JFFO
1)		JFFO	T1,.+1		;[752] T1 CONTAINS CPU CODE FROM
	 BLOCK 6
1)		SKIPN	T1,T2		;[752] IF NOT ZERO, CONVERT TO T
	ABLE OFFSET
Digital Equipment Corporation       28-AUG-79    Page 148
PCO Log Report


1)		JRST	.+3		;[752]
1)		MOVEI	T1,^D36		;[752]
1)		SUB	T1,T2		;[752] OFFSET IN T1
1)	;**;[766] Insert @ CPUTST+6L	MCHC	17-Mar-78
1)		MOVE	P2,T1		;[766] OFFSET NEEDED IN P2 AFTER
	 RETURNED
1)		JRST	@CPUTBL(T1)	;[752] DISPATCH TO RIGHT TEST
1)	CPUKL:				;[752] MAKE KL TEST SAME AS KI
1)	CPUKI:	TXNE	T4,KABIT	;TEST FOR THE KA BIT
1)		JRST	CPUERR		;CAN NOT MIX KI AND KA
1)		POPJ	P,		;OK
1)	;**;[766] Change @ CPUKA	MCHC	17-Mar-78
1)	CPUKA::	TXNN	T4,KIBIT!KLBIT	;[766]CANNOT HAVE BOTH KA10 AND
	KI10
1)		POPJ	P,		;OK
1)	CPUERR:	.ERR.	(MS,0,V%L,L%F,S%F,KIA,<Cannot mix KI10 and KA10
	compiled code>)
1)59	SUBTTL	MIXFOR FEATURE
****
2)57	;**;[1120] Delete @FORCPU+1P	DZN	22-Sep-78
2)58	SUBTTL	MIXFOR FEATURE
**************
 
Digital Equipment Corporation       28-AUG-79    Page 149
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 1944 02-Sep-1978
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1847 25-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	2-Sep-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	22-Sep-7
	8
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1115		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==1120		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)5	COMMENT	\
****
2)4	;1120	Make T.6 handle mask of CPU bits rather than a single va
	lue.
2)5	COMMENT	\
**************
1)57		HLRZ	T1,0(P)		;GET TYPE
1)		HRRZS	0(P)		;AND CLEAR IT FROM STACK
1)		HRRZ	T2,T1		;GET CPU TYPE
1)		LSH	T2,-^D12	;RIGHT JUSTIFIED (WAS BITS 0-5)
1)		ANDI	T1,7777		;AND CLEAR FROM COMPILER INDEX
1)		CAILE	T1,CT.LEN	;CHECK FOR RANGE
1)		SETZ	T1,		;MAKE IT UNKNOWN
1)		CAILE	T2,CP.LEN	;SAME FOR CPUS
1)		SETZ	T2,		;MAKE ILLEGAL VALUES UNKNOWN
1)		HRLZM	T1,CTYPE	;STORE PROCESSOR CODE
1)		HRRM	T2,CTYPE	;AND CPU TYPE CODE
1)		MOVE	T3,PROCSN	;GET LIST OF DIF PROCESSORS SEEN
1)		MOVE	T4,CPUSN	;AND CPUS
1)		MOVE	P1,T1		;SAFE PLACE
1)		MOVE	P2,T2
1)		XCT	CT.NAM##(T1)	;SEE IF ANYTHING SPECIAL TO DO
1)		MOVE	T3,CT.BIT##(P1)	;GET CORRESPONDING BIT
1)		MOVE	T4,CP.BIT##(P2)	;ALSO FOR CPU
1)		IORM	T3,PROCSN	;SIGNAL WE HAVE SEEN THIS ONE
1)		IORM	T3,LIBPRC	;A NEW MODULE THIS LIBRARY PASS
1)		IORM	T4,CPUSN
1)58	;HERE TO HANDLE BLANK COMMON ARG IN TITLE BLOCK
1)		POP	P,T1		;GET BLANK COMMON BACK
1)		SKIPE	BLCOMM		;SEEN BLANK COMMON BEFORE?
****
2)57	;**;[1120] Replace @T.6OK+1P2L	DZN	22-Sep-78
2)		LDB	T1,[POINT 6,(P),5] ;[1120] GET RUNNABLE CPU BITS
2)		ANDI	T1,CP.MSK	;[1120] CLEAR CPUS WE DON'T KNOW
Digital Equipment Corporation       28-AUG-79    Page 150
PCO Log Report


	 ABOUT
2)		JUMPN	T1,.+2		;[1120] ASKED FOR NONE?
2)		MOVEI	T1,CP.MSK	;[1120] YES--MEANS ALL
2)		HRRZM	T1,CTYPE	;[1120] SAVE WITH COMPILER TYPE
2)		ANDM	T1,OKCPUS	;[1120] ENFORCE CPU FLAGS
2)		SKIPN	OKCPUS		;[1120] CAN PROG RUN AT ALL NOW?
2)		JRST	ERRCCD		;[1120] NO--CPU CONFLICT DETECTE
	D
2)		LDB	T1,[POINT 12,(P),17] ;[1120] NOW GET PROCESSOR T
	YPE
2)		HRRZS	(P)		;[1120] LEAVE JUST BLANK COMMON
	ON STACK
2)		CAILE	T1,CT.LEN	;CHECK FOR RANGE
2)		SETZ	T1,		;[1120] MAKE IT UNKNOWN
2)		HRLM	T1,CTYPE	;[1120] SAVE COMPILER TYPE
 
 
2)		MOVE	T2,PROCSN	;[1120] GET LIST OF PROCS SEEN S
	O FAR
2)		MOVE	P1,T1		;SAFE PLACE
2)		XCT	CT.NAM##(T1)	;[1120] PROC ROUTINES EXPECT MAN
	Y ACS + (P)
2)		MOVE	T1,CT.BIT##(P1)	;[1120] GET CORRESPONDING BIT
2)		IORM	T1,PROCSN	;[1120] SIGNAL WE HAVE SEEN THIS
	 ONE
2)		IORM	T1,LIBPRC	;[1120] A NEW MODULE THIS LIBRAR
	Y PASS
2)		JRST	T.6BLK		;[1120] GO HANDLE BLANK COMMON
2)	ERRCCD:	.ERR.	(MS,.EC,V%L,L%F,S%F,CCD,<CPU conflict detected i
	n module >)
2)		.ETC.	(SBX,.EP,,,,PRGNAM)
2)58	;HERE TO HANDLE BLANK COMMON ARG IN TITLE BLOCK
2)	T.6BLK:	POP	P,T1		;[1120] GET BLANK COMMON BACK
2)		SKIPE	BLCOMM		;SEEN BLANK COMMON BEFORE?
**************
 
Digital Equipment Corporation       28-AUG-79    Page 151
PCO Log Report


[FILCOM]
File 1)	LINK:LNKMAP.MAC[30,4507]  	created: 1408 15-Aug-1978
File 2)	LINK:LNKMAP.MAC[10,645063]	created: 1921 25-Sep-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	15-Aug-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	22-Sep-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1112		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1120		;DEC EDIT VERSION
2)	VERSION
**************
1)4	SUBTTL	HEADER LINES
****
2)3	;1120	Pring correct CPU specifications in the map for module a
	nd program.
2)4	SUBTTL	HEADER LINES
**************
1)26	TTLCPU:	POP	P,W3		;RESTORE CPU BITS
1)	TTLCP1:	TLZ	W3,-1		;ZAP PROCESSOR TYPE BITS
1)		JUMPE	W3,TTLCRE	;IF NOT SPECIFIED, GO PRINT CRE
	STUFF
1)		CAILE	W3,CP.LEN	;IN RANGE?
1)		SETZ	W3,		;NO, MAKE UNKNOWN
1)	IFE TOPS20,<
1)		MOVE	T1,CPUTAB(W3)	;GET ASCII FOR CPU TYPE
1)		PUSHJ	P,.TSTRG##	;OUT IT GOES
1)	> ;END IFE TOPS20
1)		JRST	TTLCRE		;GO PRINT CRE STUFF
****
2)26	;**;[1120] Replace @TTLCPU	DZN	22-Sep-78
2)	TTLCPU:	POP	P,T1		;[1120] RESTORE CPU BITS
2)	TTLCP1:	TLZ	T1,-1		;[1120] ZAP PROCESSOR TYPE BITS
2)		PUSHJ	P,TYPCPU	;[1120] TYPE CPUS FOR THIS MODUL
	E
2)		JRST	TTLCRE		;GO PRINT CRE STUFF
**************
1)26		JRST	TTLCP1		;PRINT CPU BITS
****
2)26	;**;[1120] Insert after TTLCRL+1	DZN	22-Sep-78
2)		HRRZI	T1,(W3)		;[1120] GET CPU BITS
2)		JRST	TTLCP1		;PRINT CPU BITS
**************
1)40		SKIPN	MAPVER		;ONLY PRINT IF NOT ZERO
****
2)40	;**;[1120] Insert after .TYHDR+3L	DZN	22-Sep-78
2)		MOVE	T1,OKCPUS	;[1120] PRINT CPUS FOR PROGRAM
Digital Equipment Corporation       28-AUG-79    Page 152
PCO Log Report


2)		PUSHJ	P,TYPCPU	;[1120]   ..
2)		SKIPN	MAPVER		;ONLY PRINT IF NOT ZERO
**************
1)44	DEFINE X (A,B)<
1)	 IFIDN <A><FORTRAN>,<
1)	  IFE TOPS20,<
1)		[ASCIZ	\A'-10\]
1)	  >
1)	  IFN TOPS20,<
1)		[ASCIZ	\A\]
1)	  >
1)	 >
 
 
1)	 IFDIF <A><FORTRAN>,<
1)	  IFIDN <A><PLI>,<
****
2)44	;**;[1120] Replace @END1+1P0L	DZN	22-Sep-78
2)	DEFINE X (A,B)<
2)	  IFIDN <A><PLI>,<
**************
1)44	   IFIDN <A><CBL74>,<
1)		[ASCIZ	\COBOL-74\]
1)	   >
1)	   IFDIF <A><CBL74>,<
1)	    IFIDN <A><COBOL>,<
1)		[ASCIZ	\COBOL-68\]
1)	    >
1)	    IFDIF <A><COBOL>,<
1)		[ASCIZ	\A\]
1)	>>>>>
1)		[ASCIZ	\LINK\]
****
2)44	    IFIDN <A><CBL74>,<
2)		[ASCIZ	\COBOL-74\]
2)	    >
2)	    IFDIF <A><CBL74>,<
2)	      IFIDN <A><COBOL>,<
2)		[ASCIZ	\COBOL-68\]
2)	      >
2)	      IFDIF <A><COBOL>,<
2)		[ASCIZ	\A\]
2)	      >
2)	    >
2)	  >
2)	>
2)		[ASCIZ	\LINK\]
**************
1)44	IFE TOPS20,<
1)	DEFINE X (A,B)<
1)		[ASCIZ	\ /A\]
Digital Equipment Corporation       28-AUG-79    Page 153
PCO Log Report


1)	>
1)	CPUTAB:	CPUS
1)	> ;END IFE TOPS20
1)		SALL
****
2)44		SALL
2)45	;**;[1120] Revamp @PRCTAB+2L	DZN	22-Sep-78
2)	;ROUTINE TO PRINT CPUS ON WHICH A MODULE OR PROGRAM WILL RUN. IF
	 ALL CPUS
2)	;KNOWN TO LINK ARE ALLOWED, PRINT NOTHING.
2)	;ON CALL:
2)	;	T1/	CP.??? BITS
2)	TYPCPU:	CAIN	T1,CP.MSK	;[1120] RUNNABLE ON ALL CPUS?
2)		POPJ	P,		;[1120] YES--DON'T BOTHER PRINTI
	NG
2)		PUSH	P,P1		;[1120] SAVE SOME VARS
2)		PUSH	P,P2		;[1120]   ..
2)		MOVE	P1,T1		;[1120] SAVE CPU BITS IN SAFE AC
2)		PUSHJ	P,.TSPAC##	;[1120] SEPARATE BY A SPACE
2)		SETZ	P2,		;[1120] START CHECK AT KA
2)	TYPCPL:	JUMPE	P1,TYPCPE	;[1120] ANY CPUS LEFT TO PRINT?
 
 
2)		MOVE	T1,CPUTAB(P2)	;[1120] YES--GET ADDR OF CPU NAM
	E
2)		TXNE	P1,1B35		;[1120] PRINT THIS CPU?
2)		PUSHJ	P,.TSTRG##	;[1120] YES--PRINT IT
2)		LSH	P1,-1		;[1120] ADVANCE TO NEXT CPU
2)		AOJA	P2,TYPCPL	;[1120]   AND LOOP UNTIL DONE
2)	TYPCPE:	POP	P,P2		;[1120] RESTORE VARS
2)		POP	P,P1		;[1120]   ..
2)		POPJ	P,
2)	DEFINE X(A,B)<
2)		[ASCIZ	\/A\]
2)	>
2)		XALL
2)	CPUTAB:	CPUS
2)		SALL
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 154
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -244*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(772)

[Date Entered]          04-OCT-78

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             BAD .JBSYM  EDIT 772

[Source Before Edit]    %4A  (001120)

[Source After Edit]     %4A  (001121)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 155
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     After edit 772 is installed, users will not be able  to
define  undefined  symbols  correctly  with  DDT.   A closer
examination will reveal that the symbol table (pointed to by
.JBSYM)  and  the  undefined  table  (pointed  to by .JBUSY)
overlap.
 

                        **********


[DIAGNOSIS]
 
     After the code rearrangement in edit 772,  the  pointer
to  the  start  of the symbol table is no longer incremented
past the end of the undefined table.
 

                        **********


[CURE]
 
     Re-introduce the increment code.   This  edit  requires
that edits 770 and 772 be installed in LINK first.
 
 
Digital Equipment Corporation       28-AUG-79    Page 156
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1552 22-Sep-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1437 04-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	22-Sep-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	4-Oct-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1120		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1121		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1121	JNG	4-Oct-78	QAR JMF
2)	;	Fix LNKXIT bug so .JBSYM ptr won't include the undefined
	 symbol
2)	;	table.  This was broken by edit 772.
2)	;	Routines: LNKXIT
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 157
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1709 25-Aug-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1531 04-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	25-Aug-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	4-Oct-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1113		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1121		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1121	Fix edit 772 so symbol table and undefined table don't o
	verlap.
2)5	SUBTTL	ENTER HERE
**************
1)10		ADD	P2,P4		;[772] SPACE WE NEED IN P2
1)	;**;[770] Exchange 2 lines @ UDF0A+6L	MCHC	17-Mar-78
****
2)10	;**;[1121] Change @UDF0A+5L	JNG	4-Oct-78
2)		ADDB	P2,P4		;[1121] SPACE WE NEED IN P2 AND
	P4
2)	;**;[770] Exchange 2 lines @ UDF0A+6L	MCHC	17-Mar-78
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 158
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -245*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)+1105

[Date Entered]          08-OCT-78

[Programmer]            D. NEFF

[Routines]              LNKPAR    LNKSCN    LNKWLD    LNKFIO

[Key Words]             /*VERSION

[Source Before Edit]    %4A  (001121)

[Source After Edit]     %4A  (001122)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-26222
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 159
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Version 4 of LINK broke the /VERSION  switch.   If  the  switch  is
specified  on an input file or with no file at all, .JBVER does not
get set.  Also, /VERSION does not override  version  specifications
(by LOCing to .JBVER) in REQUIREd files.
 

                        **********


[DIAGNOSIS]
 
The original problem in version 3A of LINK was that /VERSION had to
be  typed  to  6 characters, since SCAN also had a /VERSION switch.
Development for LINK version 4 attempted to solve  the  problem  by
doing  away  with  LINK's  /VERSION  switch, and trying to grab the
value of SCAN's /VERSION switch at all the right times.
 
There are two problems with this method:
 
     1.  There are many places where LINK internally  creates  SCAN
         blocks  (e.g.,  for REQUEST/REQUIREd files).  All of these
         places need to be changed  to  follow  SCAN's  conventions
         regarding  initial  switch  values (-1), since /VERSION is
         the first SCAN switch  that  LINK  cares  about  in  these
         cases.
 
     2.  SCAN's usage of /VERSION is different from  LINK's.   SCAN
         treats  /VERSION as a file-specific switch, so that typing
         /VERSION in front of a file specification would cause  the
         switch  to  apply  to  all  subsequent  files on the line,
         whether input or output.  However, LINK treats the  switch
         having a meaning only with respect to the file on which it
         is specified.
 
Though the first problem could be solved with a patch,  the  second
is   not  solvable  within  the  current  specifications  of  SCAN.
Therefore, another method is necessary.
 

                        **********
Digital Equipment Corporation       28-AUG-79    Page 160
PCO Log Report


[CURE]
 
Put LINK's own /VERSION switch back in, as it  was  in  version  3A
(i.e., remove edit 740).  However, to solve the original problem of
having to type /VERSION  to  6  characters,  make  LINK's  /VERSION
switch unique in any abbreviation.  Thus, /V, /VE, /VER, /VERS, and
/VERSI are all valid abbreviations of /VERSION.
 
Note that the attached FILCOM shows the edit as if edit  1105  were
installed.  If this is not the case, simply remove the lines marked

                        **********


[740] in the DVINP. routine in LNKFIO.MAC instead of  those  marked

                        **********


[1105].
 
Digital Equipment Corporation       28-AUG-79    Page 161
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1437 04-Oct-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1250 05-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	4-Oct-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	5-Oct-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1121		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1122		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1122	DZN	5-Oct-78	SPR 10-26222
2)	;	Remove edit 740, which attempted to use SCAN's /VERSION
	switch,
2)	;	rather than LINK's. SCAN's switch is a file-specific swi
	tch, which
2)	;	is not the way LINK wants it to work. However, still fix
	 the original
2)	;	problem (having to type /VERSION to 6 characters to work
	) by making
2)	;	LINK's /VERSION switch unique to any abbreviation.
2)	;	Routines: LNKPAR, LNKSCN, LNKWLD, LNKFIO
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 162
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPAR.MAC[30,4507]  	created: 1849 25-Sep-1978
File 2)	LINK:LNKPAR.MAC[10,645063]	created: 1812 05-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	22-Sep-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	5-Oct-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1120		;DEC EDIT VERSION
1)		LOC	137	;KEEPS MACRO HAPPY
****
2)1	DECEVR==1122		;DEC EDIT VERSION
2)		LOC	137	;KEEPS MACRO HAPPY
**************
1)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
****
2)5	;1122	Remove edit 740 and make /VERSION unique in any abbrevia
	tion.
2)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
**************
1)33	IFE TOPS20,<
****
2)33	;;**;[1122] Insert after /VERBOSITY switch	DZN	5-Oct-78
2)	SWMAC	SP,VERSION,,.SWVER,SYM,3,,*	;;[1122]
2)	IFE TOPS20,<
**************
 
Digital Equipment Corporation       28-AUG-79    Page 163
PCO Log Report


[FILCOM]
File 1)	LINK:LNKSCN.MAC[30,4507]  	created: 1438 07-Mar-1978
File 2)	LINK:LNKSCN.MAC[10,645063]	created: 1836 05-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/PAH	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/PAH/DZN	5-Oct-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1122		;DEC EDIT VERSION
2)	VERSION
**************
1)3	;START OF VERSION 3B
1)	;600	Remove call to DEFVALUES macro
****
2)3	;START OF VERSION 4
2)	;600	Remove call to DEFVALUES macro
**************
1)4	SUBTTL	INITIALIZE SCANNER
****
2)3	;START OF VERSION 4A
2)	;1122	Remove edit 740.
2)4	SUBTTL	INITIALIZE SCANNER
**************
1)22	; [ 740 ] Remove .SWVER code.
1)	;ENTRY	.SWVER
1)	;HERE WHEN SWITCH VALUE IS A VERSION NUMBER
1)	;.SWVER::PUSHJ	P,.VERSW##	;GET THE WORD
1)	;	JRST	.SWDPB##	;AND STORE IT
1)23	SUBTTL	STORAGE DATA
****
2)22	;**;[1122] Replace @.SWVER	DZN	5-Oct-78
2)		ENTRY	.SWVER		;[1122]
2)	;HERE WHEN SWITCH VALUE IS A VERSION NUMBER
2)	.SWVER::PUSHJ	P,.VERSW##	;[1122] GET THE WORD
2)		JRST	.SWDPB##	;[1122]   AND STORE IT
2)23	SUBTTL	STORAGE DATA
**************
 
Digital Equipment Corporation       28-AUG-79    Page 164
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1308 14-Sep-1978
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1844 05-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	14-Sep-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	5-Oct-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1117		;DEC EDIT VERSION
1)	;CALLING SEQUENCE
****
2)1	DECEVR==1122		;DEC EDIT VERSION
2)	;CALLING SEQUENCE
**************
1)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
****
2)3	;1122	Remove edit 740.
2)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
**************
1)48	;[ 740 ] Remove %VERSION code
1)	;%VERSION:
1)	;	PUSHJ	P,STRLSW	;WAIT TIL FILE INITED
1)	;	MOVE	T2,2(P2)	;GET VALUE
1)	;	SKIPE	T1,IO.CHN	;GET CURRENT CHAN#
1)	;	CAIN	T1,DC		;IF 0 OR INPUT CHAN
1)	;	JRST	[MOVEM	T2,VERNUM	;STORE VERSION NUMBER
1)	;		POPJ	P,]		;IN CORE
1)	;	MOVE	T1,IO.PTR(T1)	;IF OUTPUT SPEC
1)	;	MOVEM	T2,I.VER(T1)	;SAVE IN DATA BLOCK
1)	;	POPJ	P,
1)49	SUBTTL	OUTPUT DEVICE SWITCHES
****
2)48	;**;[1122] Replace @%VERSION	DZN	5-Oct-78
2)	%VERSION:
2)		PUSHJ	P,STRLSW	;[1122] WAIT TIL FILE INITED
2)		MOVE	T2,2(P2)	;[1122] GET VALUE
2)		SKIPE	T1,IO.CHN	;[1122] GET CURRENT CHAN#
2)		CAIN	T1,DC		;[1122] IF 0 OR INPUT CHAN
2)		JRST	[MOVEM	T2,VERNUM	;[1122] STORE VERSION NU
	MBER
2)			POPJ	P,]		;[1122] IN CORE
2)		MOVE	T1,IO.PTR(T1)	;[1122] IF OUTPUT SPEC
2)		MOVEM	T2,I.VER(T1)	;[1122] SAVE IN DATA BLOCK
2)		POPJ	P,		;[1122]
2)49	SUBTTL	OUTPUT DEVICE SWITCHES
**************
 
Digital Equipment Corporation       28-AUG-79    Page 165
PCO Log Report


[FILCOM]
File 1)	LINK:LNKFIO.MAC[30,4507]  	created: 1512 20-Jun-1978
File 2)	LINK:LNKFIO.MAC[10,645063]	created: 1640 06-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH	20-Jun-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH	5-Oct-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1105		;DEC EDIT VERSION
1)	SEGMENT
****
2)1	DECEVR==1122		;DEC EDIT VERSION
2)	SEGMENT
**************
1)3	SUBTTL	HERE TO SETUP POINTER TO I/O DATA BLOCK
****
2)2	;1122	Remove edit 740.
2)3	SUBTTL	HERE TO SETUP POINTER TO I/O DATA BLOCK
**************
1)7	;**;[1105] Move up from below @ DVINP.+9L	JNG	20-Jun-7
	8
1)		MOVE	T2,F.VER(P1)	;[1105] VERSION NUMBER SPECIFIED
	 FOR INPUT FILE
1)		CAME	T2,[-1]		;[1105] IF -1 MEANS SCAN SAW NOT
	HING
1)		MOVEM	T2,VERNUM	;[1105] USED TO SET GLOBAL DEFAU
	LT VERSION.
1)		MOVE	T2,F.DIR(P1)	;DIRECTORY
****
2)7	;**;[1122] Delete @DVINP.+9L	DZN	6-Oct-78
2)		MOVE	T2,F.DIR(P1)	;DIRECTORY
**************
1)9		MOVE	T1,F.VER(P1)	;[740] USE SPECIFIED VERSION NUM
	BER
1)		CAMN	T1,[-1,,-1]	;[740] -1 MEANS SCAN SAW NOTHING
1)		MOVE	T1,VERNUM	;[740] OR DEFAULT VERSION NUMBER
1)		MOVEM	T1,I.VER(T3)	;[740] IN THE I/O BLOCK
1)		SKIPN	T1,F.PROT(P1)	;PROTECTION CODE
****
2)9	;**;[1122] Delete @DVOUT.+25L	DZN	6-Oct-78
2)		SKIPN	T1,F.PROT(P1)	;PROTECTION CODE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 166
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -246*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) TESTED IN 4(1122)

[Date Entered]          10-OCT-78

[Programmer]            D. NEFF

[Routines]              LNKFIO

[Key Words]             HRL > HRLI

[Source Before Edit]    %4A  (001122)

[Source After Edit]     %4A  (001123)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-26580
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 167
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
None, but if LINK's start  address  were  ever  moved  to  the  low
segment, ENTER error messages would be printed as LOOKUP messages.
 

                        **********


[DIAGNOSIS]
 
Setting up the  flag  meaning  an  ENTER  error  is  done  with  an
erroneous  HRL  instruction.   Currently,  this  loads LINK's start
address from vestigial  JOBDAT.   Since  the  flag  has  the  value
400000,  this  works only as long as LINK's start address is in the
high segment.
 

                        **********


[CURE]
 
Load the flag correctly.
 
Digital Equipment Corporation       28-AUG-79    Page 168
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1250 05-Oct-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1113 10-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	5-Oct-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	10-Oct-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1122		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1123		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1123	DZN	10-Oct-78	SPR 10-26580
2)	;	Use HRLI instead of HRL to load ENTER error flag.
2)	;	Routines: LNKFIO
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 169
PCO Log Report


[FILCOM]
File 1)	LINK:LNKFIO.MAC[30,4507]  	created: 1640 06-Oct-1978
File 2)	LINK:LNKFIO.MAC[10,645063]	created: 1115 10-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH	5-Oct-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH/DZN	10-Oct-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1122		;DEC EDIT VERSION
1)	SEGMENT
****
2)1	DECEVR==1123		;DEC EDIT VERSION
2)	SEGMENT
**************
1)3	SUBTTL	HERE TO SETUP POINTER TO I/O DATA BLOCK
****
2)2	;1123	Use HRLI instead of HRL to load ENTER error flag.
2)3	SUBTTL	HERE TO SETUP POINTER TO I/O DATA BLOCK
**************
1)23		HRL	T1,(%ENT)	;SIGNAL ENTER
1)		PUSH	P,T1
****
2)23	;**;[1123] Replace @ENTERR+1L	DZN	10-Oct-78
2)		HRLI	T1,(%ENT)	;[1123] SIGNAL ENTER
2)		PUSH	P,T1
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 170
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -247*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) TESTED IN 4A(1123)

[Date Entered]          11-OCT-78

[Programmer]            D. NEFF

[Routines]              LNKINI

[Key Words]             EXEC ONLY

[Source Before Edit]    %4A  (001123)

[Source After Edit]     %4A  (001124)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-26712
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 171
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
LINK cannot be run execute-only.  The first time LINK must  type  a
message to the terminal, it blows up with a proprietary violation.
 

                        **********


[DIAGNOSIS]
 
Edit 636 broke the ability of routine TTYIT, which is  in  the  low
segment, to return to a concealed high segment.
 

                        **********


[CURE]
 
Fix TTYIT to return through LINK's standard  return  point  in  the
high segment.
 
Digital Equipment Corporation       28-AUG-79    Page 172
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1113 10-Oct-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1243 11-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	10-Oct-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	11-Oct-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1123		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1124		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1124	DZN	11-Oct-78	SPR 10-26712
2)	;	Edit 636 broke LINK's ability to be run execute-only. Fi
	x
2)	;	this by making the TTY log routine once more return into
	 the
2)	;	potentially execute-only high segment properly.
2)	;	Routine: LNKINI
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 173
PCO Log Report


[FILCOM]
File 1)	LINK:LNKINI.MAC[30,4507]  	created: 1636 22-Sep-1978
File 2)	LINK:LNKINI.MAC[10,645063]	created: 1406 11-Oct-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	22-Sep-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	11-Oct-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1120		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1124		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	INITIALIZE
****
2)2	;1124	Make TTYIT return to a potentially execute-only high seg
	ment again.
2)3	SUBTTL	INITIALIZE
**************
1)30	TTYDMP:	PUSH	P,T1		;SAVE CHAR
1)		PUSHJ	P,TTYOUT	;OUTPUT LINE
1)		POP	P,T1
1)					;NOW TRY
1)	TTYIT:	SOSGE	TTYBUF+2	;ANY SPACE LEFT
****
2)30	;ROUTINE TO LOG A CHARACTER TO THE USER'S TERMINAL. USES A LINE
	BUFFER
2)	;FOR SPEED. TTYIT IS THE ENTRY POINT. SAVES T1.
2)	;**;[1124] Replace @TTYDMP	DZN	11-Oct-78
2)	TTYDMP:	PUSHJ	P,TTYOUT	;[1124] OUTPUT LINE
2)	TTYIT:	SOSGE	TTYBUF+2	;ANY SPACE LEFT
**************
1)30	IFE FTSINGLE,<
1)		JRST	TTYRET		;NO, JUST RETURN
1)	>
1)	IFN FTSINGLE,<
1)		POPJ	P,
1)	>
1)	TTYOUT:	SETZ	T1,
1)		IDPB	T1,TTYBUF+1	;END WITH NULL
****
2)30	;**;[1124] Replace @TTYIT+5L	DZN	11-Oct-78
2)		SKIPA			;[1124] NO--JUST RETURN
2)		PUSHJ	P,TTYOUT	;[1124] YES--DUMP THE LINE FIRST
2)	IFE FTSINGLE,<
2)	TTYRET:	PUSH	P,T1		;[1124] SAVE CHAR IN T1
2)		MOVE	T1,SEGPGN	;[1124] GET SEGMENT ORIGIN
2)		ADDI	T1,%%RET	;[1124] POINT TO WHERE WE WANT T
Digital Equipment Corporation       28-AUG-79    Page 174
PCO Log Report


	O GO
2)		EXCH	T1,0(P)		;[1124] SAVE GOTO ADDR, RESTORE
	T1
2)	>
2)		POPJ	P,		;[1124] RETURN
2)	;LOCAL ROUTINE TO DUMP THE TERMINAL BUFFER WHEN FULL OR END-OF-L
	INE
2)	;CHARACTER IS SEEN. SAVES T1.
2)	TTYOUT:	PUSH	P,T1		;[1124] SAVE PENDING CHAR
2)		SETZ	T1,
2)		IDPB	T1,TTYBUF+1	;END WITH NULL
**************
1)30		POPJ	P,		;[636] RETURN TO TTYDMP
1)	IFE FTSINGLE,<
 
 
1)	TTYRET:
1)		PUSH	P,T1		;[636] SAVE CHAR IN T1
1)		MOVE	T1,SEGPGN	;GET SEGMENT ORIGIN
1)		ADDI	T1,%%RET	;[636] POINT TO WHERE WE WANT TO
	 GO
1)		EXCH	T1,0(P)		;[636] SAVE GOTO ADDR, RESTORE T
	1
1)		POPJ	P,		;[636] GO TO CPOPJ ENTRY
1)	>
1)31	SUBTTL	LOG FILE OUTPUT SUBROUTINE
****
2)30	;**;[1124] Replace @TTYOUT+9L	DZN	11-Oct-78
2)		POP	P,T1		;[1124] RESTORE PENDING CHAR
2)		POPJ	P,		;[1124] RETURN
2)31	SUBTTL	LOG FILE OUTPUT SUBROUTINE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 175
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -248*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          01-NOV-78

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             NNNLHC      /SAVE/DEB   /SAVE/EXEC  RUN UUO

[Source Before Edit]    %4A  (001124)

[Source After Edit]     %4A  (001125)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-26379
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 176
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK fails with an  error  like  "?nnnLHC  not  found".
This  will  only  happen  when loading a two segment program
large enough to force the high segment to overflow to  disk,
and only if the user types /SAVE/EXEC or /SAVE/DEBUG.
 

                        **********


[DIAGNOSIS]
 
     LINK uses the same pointers to store the low  and  high
segment  overflow  file  specs  as  it  does  to  store  the
corresponding save file specs.  This used to  be  OK,  since
LINK would always write a save file for a particular segment
on /SAVE if it overflowed to disk, because that  would  mean
that  it  existed.   With EXE save file generation, however,
both segments are saved into the "low segment" EXE file,  so
that  the  high  segment  pointer  is  left  pointing to the
overflow file if the high segment  code  overflows  to  disk
during the load.
 
     This is a problem because LINK's RUN  UUO  code  always
tries to run the high segment save file, and is only willing
to run the low segment file if  there  is  no  high  segment
file.   If  the  high  segment overflows to disk, this means
that LINK will try to run its temporary overflow file, which
has been deleted.
 

                        **********


[CURE]
 
     If generating EXE save files, always issue a RUN UUO to
the EXE file.
 
 
Digital Equipment Corporation       28-AUG-79    Page 177
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1243 11-Oct-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1426 01-Nov-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	11-Oct-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	1-Nov-78
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1124		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1125		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1125	JNG	1-Nov-78	SPR 10-26379
2)	;	Don't try to run the high segment file on /SAVE/RUN (or
	/SAVE/DEBUG)
2)	;	when generating an EXE file.  This fixes ?nnnLHC.EXE not
	 found when
2)	;	the user types the above switches and the HC area has ov
	erflowed.
2)	;	Routines: LNKXIT
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 178
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1531 04-Oct-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1436 01-Nov-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	4-Oct-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	1-Nov-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1121		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1125		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1125	Don't try to do a RUN UUO to the hiseg file when generat
	ing an EXE file.
2)5	SUBTTL	ENTER HERE
**************
1)75	RUNUU1:	SKIPN	T1,IO.PTR+HC	;GET HIGH SEG POINTER
1)		MOVE	T1,IO.PTR+LC	;SETTLE FOR LOW SEG IF NO HIGH
****
2)76	;**;[1125] Insert @ RUNUU1	JNG	1-Nov-78
2)	RUNUU1:
2)	IFE FTEXE,<
2)		SKIPN	T1,IO.PTR+HC	;[1125] GET HIGH SEG POINTER
2)	> ;END IFE FTEXE
2)		MOVE	T1,IO.PTR+LC	;SETTLE FOR LOW SEG IF NO HIGH
**************
1)75		SKIPN	T1,IO.PTR+LC	;[575] MAKE SURE POINTING AT LOW
	 SEG
1)		JRST	RUNUU3		;[575] HISEG ONLY, USE .LOW
1)		MOVE	T2,I.EXT(T1)	;[575] MAY AS WELL USE KNOWN EXT
1)		TLNN	T2,-1		;[575] EXTENSION KNOWN?
1)	RUNUU3:	MOVSI	T2,'LOW'	;[575] NO, USE .LOW
1)		HLLZM	T2,%RUN+2	;[575] STORE EXTENSION & ZERO DA
	TE
1)		SETZM	%RUN+3		;CLEAR DATE TIME
****
2)76	;**;[1125] Insert @ RUNUU1+6L	JNG	1-Nov-78
2)	IFE FTEXE,<
2)		SKIPN	T1,IO.PTR+LC	;[1125] MAKE SURE POINTING AT LO
	W SEG
2)		JRST	RUNUU3		;[1125] HISEG ONLY, USE .LOW
2)		MOVE	T2,I.EXT(T1)	;[1125] MAY AS WELL USE KNOWN EX
	T
2)		TLNN	T2,-1		;[1125] EXTENSION KNOWN?
2)	RUNUU3:	MOVSI	T2,'LOW'	;[1125] NO, USE .LOW
Digital Equipment Corporation       28-AUG-79    Page 179
PCO Log Report


2)	> ;END IFE FTEXE
2)	IFN FTEXE,<
2)		MOVE	T2,I.EXT(T1)	;[1125] GET EXTENSION OF EXE FIL
	E
2)	> ;END IFN FTEXE
2)		HLLZM	T2,%RUN+2	;[1125] STORE EXTENSION & ZERO D
	ATE
2)		SETZM	%RUN+3		;CLEAR DATE TIME
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 180
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -249*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          07-NOV-78

[Programmer]            GILBERT

[Routines]              LNKINI

[Key Words]             RUN SFDS    ?LNK999.SA  7.01        EX ONLY

[Source Before Edit]    %4A  (001125)

[Source After Edit]     %4A  (001126)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-26433
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 181
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     When LINK is  run  from  an  SFD,  it  will  fail  with
"?LNK999.SAV not found" before printing an askerisk.
 

                        **********


[DIAGNOSIS]
 
     LINK  figures  out  where  to  GETSEG  its  other  high
segments  from  by  asking  the monitor where its first high
segment came from, then GETSEGging the other  high  segments
from  the  same  place.  Unfortunately, in monitors prior to
7.01, the  monitor's  database  that  remembers  where  high
segments  come from does not include SFD information, so the
path that LINK gets from the monitor is  incorrect  if  LINK
was run from an SFD.
 

                        **********


[CURE]
 
     If LINK finds itself running under a monitor  prior  to
7.01,  have  it  GETSEG  its  other  high segments using the
arguments that the user typed in the "R"  or  "RUN"  command
that  invoked  LINK,  and  which  are left in the ACs by the
monitor  when  LINK  starts.   These  arguments  should   be
sufficient  to  find  LINK's other high segments, since they
were sufficient to find LINK itself.   This  means  that  if
LINK  came from an SFD, then it was from some SFD accessible
by specifying the default path, since the monitor's  command
decoder  (and  the  arguments  left in the ACs) do not allow
SFDs to be specified explicitly.
 
     Note  that  this  change  means  that  LINK   will   do
non-physical-only  GETSEGs under monitors prior to 7.01, and
thus will not be secure  if  protected  execute-only.   LINK
will  be  secure under 7.01, because it will continue to ask
Digital Equipment Corporation       28-AUG-79    Page 182
PCO Log Report


the monitor where its original EXE file  came  from  and  do
physical-only  GETSEGs to the resulting full path if running
under a 7.01 or later monitor.
 
 
Digital Equipment Corporation       28-AUG-79    Page 183
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1426 01-Nov-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1722 01-Nov-1978
 
1)1	DECEVR==1125		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1126		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1126	JNG	1-Nov-78	SPR 10-26433
2)	;	If all 7.01 GETTABs to determine where we came from are
	not available,
2)	;	use the contents of the ACs to do GETSEG UUOs.
2)	;	Routines: LNKINI
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 184
PCO Log Report


[FILCOM]
File 1)	LINK:LNKINI.MAC[30,4507]  	created: 1406 11-Oct-1978
File 2)	LINK:LNKINI.MAC[10,645063]	created: 1728 01-Nov-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	11-Oct-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	1-Nov-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1124		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1126		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	INITIALIZE
****
2)2	;1126	Use ACs for GETSEG args if all 7.01 GETTABs are not avai
	lable.
2)3	SUBTTL	INITIALIZE
**************
1)4		MOVEM	R3,FSTSEG	;SAVE SEGMENT NAME
1)		MOVEM	R3,SEGBLK+1	;[600] ALSO FOR RESTART LOGIC
1)		MOVE	T1,[-2,,.GTDEV]	;DEVICE OF HIGH SEG IF SHAREABLE
1)		GETTAB	T1,		;FROM MONITOR TABLES
1)		  SETZ	T1,		;FAILED
1)		JUMPE	T1,[MOVEI T1,<<GETSEG T1,>&777777>
1)			HRRM	T1,NGTSEG	;REMOVE UU.PHY BIT
1)			HRRM	T1,EGTSEG	;FROM GETSEGS
1)			JRST	LINK1A]
1)		MOVE	.SGDEV,T1	;USE DEVICE FROM GETTAB
1)		MOVE	T1,[-2,,.GTPPN]	;IF DEVICE WAS SHAREABLE WE NEED
	 PPN
1)		GETTAB	T1,		;SINCE MOST LIKELY WAS SYS:
1)		  SETZ	T1,		;SHOULD NOT FAIL
1)		SKIPE	T1		;OR BE ZERO
1)		MOVE	.SGPPN,T1	;SO USE [PPN] FROM MONITOR TABLE
	S
1)	LINK1A:	SKIPN	T1,.SGDEV	;ALREADY SETUP BY MONITOR?
1)		MOVSI	T1,'DSK'	;NO, JUST LOADED ASSUME DSK
1)		MOVEM	T1,SEGBLK	;STORE DEVICE
1)		MOVEM	T1,ERRBLK	;FOR LNK999 ALSO
1)		MOVEM	.SGPPN,SEGBLK+4	;AND PPN
1)		MOVEM	.SGPPN,ERRBLK+4
1)		JUMPE	.SGDEV,GETHSO	;IF JUST LOADED, GETTABS POINT T
	O LINK
1)5	;NOW TRY TO GET WHERE WE CAME FROM (INCLUDING SFD'S) VIA GETTAB.
****
2)4	;**;[1126] Revamp @ F1+1P8L	JNG	1-Nov-78
2)	;NOW SET UP THE GETSEG BLOCKS FROM THE ARGUMENTS THE USER TYPED
Digital Equipment Corporation       28-AUG-79    Page 185
PCO Log Report


	TO THE
2)	;RUN COMMAND, WHICH ARE LEFT IN THE ACS.  IF THE .GTR?? GETTABS
	ARE
2)	;AVAILABLE, THE INFORMATION SET UP HERE WILL BE OVERWRITTEN.  IF
	 WE
2)	;ARE RUNNING ON A PRE-7.01 MONITOR, HOWEVER, DOING THE GETSEG ON
	 THE
2)	;SAME ARGS THAT THE USER TYPED WILL MAXIMIZE OUR CHANCES OF FIND
	ING THE
2)	;OTHER SEGMENTS, ESPECIALLY IF SFDS ARE INVOLVED.
2)		MOVEM	.SGDEV,SEGBLK	;[1126] STORE DEVICE THE USER TY
	PED
2)		MOVEM	.SGDEV,ERRBLK	;[1126] AND A COPY FOR LNK999
2)		MOVEM	R3,FSTSEG	;SAVE SEGMENT NAME
2)		MOVEM	R3,SEGBLK+1	;[600] ALSO FOR RESTART LOGIC
2)		MOVEM	.SGPPN,SEGBLK+4	;AND PPN
2)		MOVEM	.SGPPN,ERRBLK+4
2)	;NOW TRY TO GET WHERE WE CAME FROM (INCLUDING SFD'S) VIA GETTAB.
**************
 
 
1)5	SEGLUP:	MOVE	T3,T2		;SETUP FOR NEXT SFD
1)		GETTAB	T3,		;GET IT
1)		  JRST	[TRNN T1,-1	;FAILED, FIRST TIME?
1)			JRST GETHSO	;YES, NOT IMPLEMENTED, GIVE UP
1)			JRST GETUFD]	;NO, IMPLEMENTED, BUT WE RAN OUT
1)		MOVEM	T3,SEGPTH+.PTSFD(T1)	;STORE THIS SFD
1)		ADDI	T2,1		;INCREMENT GETTAB ARG
1)		AOBJN	T1,SEGLUP	;LOOP FOR ALL SFD'S
1)	GETUFD:	SETZM	SEGPTH+.PTSFD(T1)	;FORCE A ZERO AFTER THE
	LAST SFD
****
2)4	;**;[1126] Replace @ SEGLUP	JNG	1-Nov-78
2)	SFDLUP:	MOVE	T3,T2		;[1126] SET UP FOR NEXT SFD
2)		GETTAB	T3,		;GET IT
2)		  JRST	NOSFD		;[1126] GETTAB FAILED, SEE WHY
2)		MOVEM	T3,SEGPTH+.PTSFD(T1)	;STORE THIS SFD
2)		ADDI	T2,1		;INCREMENT GETTAB ARG
2)		AOBJN	T1,SFDLUP	;[1126] LOOP FOR ALL SFD'S
2)		JRST	GETUFD		;[1126] GOT ALL SFDS, NOW FOR UF
	D
2)	;HERE WHEN A GETTAB TO GET AN SFD FAILED.  SEE IF THE MONITOR IS
	 TOO OLD.
2)	NOSFD:	TRNE	T1,-1		;[1126] FAIL FIRST TIME?
2)		JRST	GETUFD		;[1126] NO, GOT SOME SFDS, USE N
	EW DATA
2)		MOVEI	T1,<<GETSEG T1,>&RH.ALF>;[1126] USE DATA ABOVE
2)		HRRM	T1,NGTSEG	;[1126] BUT NEED TO REPLACE GETS
	EGS
2)		HRRM	T1,EGTSEG	;[1126] TO REPLACE PHYSICAL ONLY
	 BIT
Digital Equipment Corporation       28-AUG-79    Page 186
PCO Log Report


2)		JRST	GETHSO		;[1126] GETSEG INFO DONE, PROCEE
	D
2)5	;HERE IF THE 7.01 GETTABS WORK.  FILL IN THE REST OF THE DATA.
2)	GETUFD:	SETZM	SEGPTH+.PTSFD(T1)	;FORCE A ZERO AFTER THE
	LAST SFD
**************
1)5		MOVEI	T1,SEGPTH	;NOW POINT GETSEG BLOCKS TO PATH
	 BLOCK
****
2)5	;**;[1126] Insert @ GETUFD+14L	JNG	1-Nov-78
2)		HRROI	T1,.GTRFN	;[1126] THE FILE NAME WE CAME FR
	OM
2)		GETTAB	T1,		;[1126] GET IT
2)		  JRST	GETHSO		;[1126] CAN'T, LEAVE WELL ENOUGH
	 ALONE
2)		SKIPN	T1		;[1126] RETURN ANYTHING?
2)		  JRST	GETHSO		;[1126] NO, IGNORE IT
2)		MOVEM	T1,FSTSEG	;[1126] OK, STORE IT
2)		MOVEM	T1,SEGBLK+1	;[1126] FOR GETSEGS TOO
2)		MOVEI	T1,SEGPTH	;NOW POINT GETSEG BLOCKS TO PATH
	 BLOCK
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 187
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -250*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          14-NOV-78

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             PAT..       LENGTH

[Source Before Edit]    %4A  (001126)

[Source After Edit]     %4A  (001127)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      A


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 188
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     No symptoms have  been  observed  because  no  programs
require  it,  but the runtime symbol table generated by LINK
does not quite match the spec.   In  particular,  the  title
entry  for the module PAT.. (which is inserted by LINK) does
not have the negative length of PAT..'s symbol table in  the
left half of the value word.
 

                        **********


[DIAGNOSIS]
 
     There is no code to put it out.   It  was  probably  an
oversight.
 

                        **********


[CURE]
 
     Store the negated size of PAT..'s symbol table  in  the
left  half of the value word of the module name entry in the
runtime symbol table.
 
 
Digital Equipment Corporation       28-AUG-79    Page 189
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1722 01-Nov-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1723 14-Nov-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	1-Nov-78
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Nov-7
	8
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==1126		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1127		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1127	JNG	14-Nov-78	QAR DIB
2)	;	Set up the module length for PAT.. in the runtime symbol
	 table.
2)	;	Routine: LNKXIT
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 190
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1436 01-Nov-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1727 14-Nov-1978
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	1-Nov-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	14-Nov-78
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1125		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1127		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1127	Set up the module length for PAT.. in the runtime symbol
	 table.
2)5	SUBTTL	ENTER HERE
**************
1)18		PUSHJ	P,SYMOUT
****
2)18	;**;[1127] Insert @ LSY1+37L	JNG	14-Nov-78
2)		HRLI	W3,-4		;[1127] FOUR WORDS IN PAT..'S TA
	BLE
2)		PUSHJ	P,SYMOUT
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 191
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -251*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          26-JAN-79

[Programmer]            D. NEFF

[Routines]              LNKCOR

[Key Words]             PASS /MAXC

[Source Before Edit]    %4A  (001127)

[Source After Edit]     %4A  (001130)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-27212
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 192
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Edit  650  broke  LINK's  ability  to  load  large  programs  in  a
relatively small amount of memory by specifying /MAXCOR.
 

                        **********


[DIAGNOSIS]
 
If LINK requests memory from an area that is not big  enough,  LINK
tries first to expand it to make the request fit in.  Prior to edit
650, LINK did this, but forgot to take into account the size of the
request  itself,  which  would  then  result  in  a LNKNEC message.
However, edit 650 made LINK always count the size of  the  request,
even  for  pageable  areas.  For these, callers of LNKCOR know that
the request may fail, and will then move the window to the  desired
address,  and  so the added amount of the request can cause LINK to
expand past the /MAXCOR value unnecessarily.
 

                        **********


[CURE]
 
Do not add in the size of the current request if the area for which
the  request  was  made  is  pageable,  i.e., the LC, HC, LS and AS
areas.
 
Digital Equipment Corporation       28-AUG-79    Page 193
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1723 14-Nov-1978
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1317 26-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Nov-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
1)	;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	26-Jan-7
	9
2)	;COPYRIGHT (C) 1973, 1979 BY
2)	;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
**************
1)1	DECEVR==1127		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1130		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1130	DZN	26-Jan-79	SPR 10-27212
2)	;	Make LINK honor /MAXCOR correctly when a request for mem
	ory in a
2)	;	pagable area is made. In this case, edit 650 made LINK c
	ount the
2)	;	memory request toward the /MAXCOR value, even though the
	 window
2)	;	can simply be moved.
2)	;	Routine: LNKCOR
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 194
PCO Log Report


[FILCOM]
File 1)	LINK:LNKCOR.MAC[30,4507]  	created: 1235 30-Aug-1978
File 2)	LINK:LNKCOR.MAC[10,645063]	created: 1324 26-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/DZN	25-Aug-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/DZN	26-Jan-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	LNKCOR
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKCOR
**************
1)1	DECEVR==1113		;DEC EDIT VERSION
1)	SALL
****
2)1	DECEVR==1130		;DEC EDIT VERSION
2)	SALL
**************
1)4	SUBTTL SIMPLE TESTS FIRST
****
2)3	;1130	Don't count memory requests for pagable areas toward /MA
	XCOR.
2)4	SUBTTL SIMPLE TESTS FIRST
**************
1)42		ADD	T1,P2		;[650] COUNT THIS REQUEST TOO
1)		IOR.	T1,.PGSIZ	;GET PAGE BOUND
1)		CAMG	T1,MAXCOR	;TROUBLE IF MAXCOR TOO SMALL
****
2)42	;**;[1130] Replace @CHKMAX+18L	DZN	26-Jan-79
2)		CAIE	P1,LC.IX	;[1130] COUNT THIS REQUEST TOO
2)		CAIN	P1,HC.IX	;[1130]   UNLESS THE REQUEST IS
	FOR
2)		JRST	CHKMX1		;[1130]   A PAGABLE AREA, I.E.,
2)		CAIE	P1,LS.IX	;[1130]   LC, HC, LS OR AS
2)		CAIN	P1,AS.IX	;[1130]   ..
2)		JRST	CHKMX1		;[1130]   ..
2)		ADD	T1,P2		;[1130] NOT PAGABLE--COUNT THIS
	REQUEST TOO
2)	CHKMX1:	IOR.	T1,.PGSIZ	;[1130] GET PAGE BOUND
2)		CAMG	T1,MAXCOR	;TROUBLE IF MAXCOR TOO SMALL
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 195
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -252*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) TESTED IN 4A(1130)

[Date Entered]          26-JAN-79

[Programmer]            D. NEFF

[Routines]              LNKLOD

[Key Words]             FORT /OTS:

[Source Before Edit]    %4A  (001130)

[Source After Edit]     %4A  (001131)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-27123
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 196
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
If the low segment of a FORTRAN or ALGOL program exceeds the origin
of  the associated OTS (object-time system) that will be brought in
at run-time, LINK forces the OTS to be loaded into the low  segment
(if  possible).   However,  this  determination  is made before the
system libraries are searched,  which  could  then  cause  the  low
segment  to  cross  the  OTS  origin.  This causes GETSEG errors or
other problems at run-time.
 

                        **********


[DIAGNOSIS]
 
The decision to load the OTS into the  low  segment  must  be  made
prior to the system library search, since totally different modules
from the library might be required for  the  low  segment  version.
However,  if the decision is made to GETSEG the OTS at run-time but
the low segment then grows past the OTS origin, it is too  late  to
back out to prevent a run-time error.
 

                        **********


[CURE]
 
Change the check so that a low-segment version of the OTS is loaded
if  the  low  segment has grown to within 40 (decimal) pages of the
OTS origin.  This is about  twice  the  size  of  the  low  segment
portion  of the sharable OTS, and will therefore guarantee that the
load will succeed.
 
Note however that this is only a  load-time  decision,  and  it  is
still  possible  for  the  user's  run-time  memory requirements to
exceed the room left below the OTS.  This can  generally  be  found
simply  by  trial  and  error,  and the /OTS switch used to force a
sharable OTS (if less memory is needed) or a  low-segment  OTS  (if
more memory is needed).
 
Digital Equipment Corporation       28-AUG-79    Page 197
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1317 26-Jan-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1433 26-Jan-1979
 
1)1	DECEVR==1130		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1131		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1131	DZN	26-Jan-79	SPR 10-27123
2)	;	Make LINK decide to load a non-sharable OTS if the low s
	egment
2)	;	has grown within 40 pages of the origin of the OTS high
	segment
2)	;	rather than letting the low segment grow past it first.
2)	;	Otherwise, the low segment may cross the beginning of th
	e OTS
2)	;	during the system library search when it is too late to
	fix it.
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 198
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1814 22-Sep-1978
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1529 26-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	22-Sep-7
	8
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	26-Jan-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	LNKLOD
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKLOD
**************
1)1	DECEVR==1120		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1131		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1131	Force non-reentrant OTS sooner, if low segment is within
	 40 pages of 400000.
2)5	SUBTTL	LOAD CONTROL
**************
1)85	QREENT:	HRLZ	T1,HL.S1	;[574] GET CURRENT END OF LOW SE
	G
1)		JUMPGE	T1,QREEN1	;[574] IF .GT. 128K, CAN'T BE SH
	ARABLE
1)		SKIPN	HL.S2		;[574] NON-SHARABLE OTS. HIGH SE
	G EXIST?
****
2)85	;**;[1131] Replace @QREENT	DZN	26-Jan-79
2)	QREENT:	MOVE	T1,HL.S1	;[1131] GET CURRENT END OF LOW S
	EGMENT
2)		CAIGE	T1,400000-50000	;[1131] SEE IF WITHIN 40 DECIMAL
	 PAGES OF HISEG
2)		JRST	QREEN1		;[1131] YES--GO TRY TO FOR NON-S
	HARABLE OTS
2)		SKIPN	HL.S2		;[574] NON-SHARABLE OTS. HIGH SE
	G EXIST?
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 199
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -253*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) + EDIT 1110

[Date Entered]          30-JAN-79

[Programmer]            GILBERT

[Routines]              LNKXIT    LNKOLD    LNKLOD    LNKWLD

[Key Words]             BAD EXE FI  MANY BUGS

[Source Before Edit]    %4A  (001131)

[Source After Edit]     %4A  (001132)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-26576
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 200
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     There are several problems that users may run  into  if
LINK tries to create an EXE file, as follows:
 
     1.  LINK will get an address check if the  low  segment
         ends on the last word of a page, and if the program
         is not so large that  LINK  needs  to  overflow  to
         disk.
 
     2.  LINK will get an address check if loading a PSECTed
         program.  This will occur if the lowest code loaded
         is at 2000 or above, and  the  program  is  not  so
         large that LINK needs to overflow to disk.
 
     3.  Any  absolute   code   loaded   beyond   the   last
         relocatable  code will be lost, and will not appear
         in the EXE file.
 
     4.  LINK will write a bad EXE  directory  when  loading
         overlays  if  the user gives a /SPACE switch with a
         small (less than a page) argument.
 
     5.  LINK will write a bad EXE directory if the  program
         being  loaded  is so complex that the EXE directory
         is longer than two pages.
 
     6.  The EXE file that LINK writes will be  bad  if  the
         user  loads any PSECTs at higher addresses than the
         high segment.  The high  segment  will  be  written
         into the EXE file twice.
 
     7.  LINK can write an EXE file that  does  not  contain
         page 0.  Instead, what should have been page 1 will
         be written as page 0, page 2  will  be  written  as
         page 201 and so on for some or possibly the rest of
         the EXE file.  This will happen if page 202 is  the
         lowest page that the user has loaded anything into.
 
     8.  PSECT attributes  specified  by  the  user  in  the
         source  program  will  be ignored by LINK, and will
         not appear in the EXE directory.
Digital Equipment Corporation       28-AUG-79    Page 203
PCO Log Report


 
     9.  If the user is loading PSECTs and  requests  a  DDT
         symbol table, the symbol table written will contain
         junk.  LINK incorrectly writes each PSECT into  the
         symbol  table  as  a null module name once for each
         module that uses that PSECT.
 
    10.  LINK can get a ?LNKCNW error when loading PSECTs if
         the  user  has  requested a DDT symbol table.  This
         will happen if the last  program  loaded  does  not
         define  any more symbols after the first appearance
         of a PSECT statement for some PSECT that  LINK  has
         never seen before.
 
    11.  LINK can  overwrite  an  overlaid  PSECT  with  the
         symbol  table.   This will happen if the user tells
         LINK to  place  the  DDT  symbol  table  after  the
         overlaid   PSECT,   using   the  /SYMSEG:PSECT:name
         switch.
 
 

                        **********


[DIAGNOSIS]
 
     Several logic errors in the EXE file writing code.
 

                        **********


[CURE]
 
     Rework the faulty routines, as shown  in  the  attached
FILCOM.   Note  that  this  edit  requires  edit  1110,  and
supersedes edits 774 and 776 if installed.
 
 
Digital Equipment Corporation       28-AUG-79    Page 204
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1433 26-Jan-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 0835 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	26-Jan-7
	9
1)	
1)	
1)	;COPYRIGHT (C) 1973, 1979 BY
1)	;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	30-Jan-7
	9
2)	
2)	
2)	;COPYRIGHT (C) 1973, 1978, 1979 BY
2)	;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
**************
1)1	DECEVR==1131		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1132		;DEC EDIT VERSION
2)	
**************
1)5	
1)6		END		;OF LNKHST
****
2)5	;	Routine: LNKLOD
2)	
2)	;1132	JNG	30-Jan-79	SPR 10-26576
2)	;	Re-work EXE file writer to fix several problems, includi
	ng:
2)	;	. PSECTs above the high segment not written properly.
2)	;	. Absolute code not loaded correctly.
2)	;	. Bad EXE directory if loading overlays and small /SPACE
	 switch.
2)	;	. PSECT attributes not written into the EXE file.
2)	;	. Page 1 written into page 0 if page 1 is lowest page co
	ntaining code.
2)	;	. Address checks when writing the EXE file.
2)	;	. Bad EXE file if EXE directory is longer than two pages
	.
2)	;	. ?LNKCNW or bad DDT symbol table when loading PSECTs.
2)	;	Routines: LNKPAR, LNKINI, LNKLOD, LNKOLD, LNKWLD, LNKXIT
	.
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 205
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPAR.MAC[30,4507]  	created: 1812 05-Oct-1978
File 2)	LINK:LNKPAR.MAC[10,645063]	created: 0833 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	5-Oct-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	30-Jan-7
	9
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1978, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
2)	
**************
1)1	DECEVR==1122		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1132		;DEC EDIT VERSION
2)	
**************
1)5	
****
2)5	;1132	Add AT.PS.
2)	
**************
1)16	AT.PA==:1B13	;[722] PAGE ALIGNED
****
2)16	;**;[1132] Insert @ AT.RP definition +1L	JNG	30-Jan-7
	9
2)	AT.PS==:1B1	;[1132] PSECT SEEN (IN THIS MODULE)
2)	AT.PA==:1B13	;[722] PAGE ALIGNED
**************
 
Digital Equipment Corporation       28-AUG-79    Page 206
PCO Log Report


[FILCOM]
File 1)	LINK:LNKINI.MAC[30,4507]  	created: 1728 01-Nov-1978
File 2)	LINK:LNKINI.MAC[10,645063]	created: 1101 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	1-Nov-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	30-Jan-79
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1978, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
2)	
**************
1)1	DECEVR==1126		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1132		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1132	Initialize .LOW.'s RC.AT and RC.HL.
2)	
**************
1)8		SETZM	RC.SG(P1)	;SET TO 0 SEGMENT
1)		HRL	T2,P1		;BUILD BLT POINTER
1)		HRRI	T2,1(P1)	;TO CLEAR ALL OF ABS RC BLOCK
1)		BLT	T2,RC.INC-1(P1)
1)		MOVE	T2,['.ABS. ']	;NAME OF IT
****
2)8	;**;[1132] Change @ CORINI+25L	JNG	30-Jan-79
2)		MOVEI	T2,1		;[1132] SET TO LC AREA
2)		MOVEM	T2,RC.SG(P1)	;[1132]
2)		MOVEI	T2,.JBDA	;[1132] INIT H?.S0 TO SHOW JOBDA
	T LOADED
2)		MOVEM	T2,HC.S0	;[1132] HIGHEST LOCATION NON-ZER
	O
2)		MOVEM	T2,HL.S0	;[1132] HIGHEST LOCATION SEEN
2)		MOVE	T2,['.ABS. ']	;NAME OF IT
**************
1)9		SETZM	RC.OF(P1)	;ZERO RELATIVE TO LC.LB
1)		SETZM	RC.HL(P1)	;HAVEN'T LOADED ANY YET
1)		MOVEI	T2,LC.LB	;POINT TO LOW SEGMENT
****
2)9	;**;[1132] Change @ CORINI+1P13L	JNG	30-Jan-79
2)		MOVEM	T2,RC.HL(P1)	;[1132] ALSO HIGHEST LOADED SO F
Digital Equipment Corporation       28-AUG-79    Page 207
PCO Log Report


	AR
2)		SETZM	RC.OF(P1)	;ZERO RELATIVE TO LC.LB
2)		MOVEI	T2,LC.LB	;POINT TO LOW SEGMENT
**************
 
Digital Equipment Corporation       28-AUG-79    Page 208
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1529 26-Jan-1979
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 0835 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	26-Jan-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	30-Jan-7
	9
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1978, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
2)	
**************
1)1	DECEVR==1131		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1132		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1132	Teach SEGCHK about PSECTs above the high segment.
2)	
**************
1)50	SEGCHK::HRRI	R,2		;ASSUME IN HIGH SEG
1)		SKIPE	LL.S2		;MUST BE LOW IF ONLY ONE SEGMENT
1)		CAMGE	T2,LL.S2	;IN HIGH SEGMENT
1)		HRRI	R,1		;[632] NO, SET R TO LOW SEGMENT
1)		SKIPN	PAG.S0(R)	;[632] IS THIS AREA PAGING?
1)		JRST	SEGCK1		;[632] NO, ADDR CAN'T BE ON DISK
1)	IFN FTOVERLAY,<
1)		TRNN	R,-2		;[632] LOW SEG?
1)		SUB	T2,PH.ADD	;[632] YES, OFFSET IF NOT ROOT
1)	> ;END OF IFN FTOVERLAY
1)		SUB	T2,LL.S0(R)	;[632] CONVERT TO OFFSET IN SEGM
	ENT
1)		CAML	T2,LW.S0(R)	;[632] IS ADDRESS IN CORE?
1)		CAMLE	T2,UW.S0(R)	;[632] MAYBE, IS IT?
1)		TLZA	R,1		;[632] NO, REMEMBER IT (BORROW 1
	B17)
1)		TLO	R,1		;[632] YES, IT IS IN CORE
1)		ADD	T2,LL.S0(R)	;[632] PUT T2 BACK IN CASE WE RE
	TURN
1)	IFN FTOVERLAY,<
Digital Equipment Corporation       28-AUG-79    Page 209
PCO Log Report


1)		TRNN	R,-2		;[632] LOW SEG ADDRESS?
1)		ADD	T2,PH.ADD	;[632] YES, PUT BACK FOR .JDDT O
	R POPJ
1)	> ;END OF IFN FTOVERLAY
1)		TLZN	R,1		;[632] SHOULD WE CONTINUE?
1)		POPJ	P,		;[632] ADDRESS WAS ON DISK, RETU
	RN
1)	
1)	;HERE IF ADDRESS IS DEFINITELY IN CORE. CONVERT TO PHYS. ADDR &
	RETURN.
1)	SEGCK1:	.JDDT	LNKLOD,SEGCK1,<<CAMN T2,$LOCATION>>	;[632]
1)	IFN FTOVERLAY,<
1)		TRNN	R,-2		;[632] IF LOW SEGMENT
1)		SUB	T2,PH.ADD	;[632] MAKE OFFSET FROM START OF
	 LINK
1)	> ;END OF IFN FTOVERLAY
1)		SUB	T2,LL.S0(R)	;[632] MAKE RELATIVE TO SEGMENT
	START
1)		SUB	T2,LW.S0(R)	;[632] RELATIVE TO IN-CORE PART
	OF AREA
****
 
 
2)50	;**;[1132] Replace @ SEGCHK	JNG	30-Jan-79
2)	SEGCHK::
2)		PUSH	P,T2		;[1132] SAVE USER VIRTUAL ADDRES
	S
2)		HRRI	R,2		;ASSUME IN HIGH SEG
2)		SKIPE	LL.S2		;[1132] MUST BE LOW IF ONLY ONE
	SEGMENT
2)		CAMGE	T2,LL.S2	;[1132]  BELOW BOTTOM OF HIGH SE
	GMENT?
2)		SOJA	R,SEGCK2	;[1132] IN LOW SEGMENT
2)		SUB	T2,LL.S2	;[1132] FORM OFFSET INTO HIGH SE
	GMENT
2)		CAMGE	T2,HL.S2	;[1132] BEFORE END OF HIGH SEGME
	NT?
2)		JRST	SEGCK4		;[1132] YES, IN HIGH SEGMENT
2)		MOVE	T2,0(P)		;[1132] RESTORE ADDRESS (OFFSET
	INTO LOW SEG)
2)		HRRI	R,1		;[1132] SET R TO LOW SEGMENT
2)	SEGCK2:				;[1132] HERE IF T2 AND R POINT T
	O LOW SEG
2)	IFN FTOVERLAY,<
2)		SUB	T2,PH.ADD	;[1132] OFFSET INTO LC IF NOT RO
	OT LINK
2)	> ;END IFN FTOVERLAY
2)	
2)	SEGCK4:	SKIPN	PAG.S0(R)	;[1132] IS THIS AREA PAGING?
2)		JRST	SEGCK6		;[1132] NO, ADDR CAN'T BE ON DIS
	K
Digital Equipment Corporation       28-AUG-79    Page 210
PCO Log Report


2)		CAML	T2,LW.S0(R)	;[632] IS ADDRESS IN CORE?
2)		CAMLE	T2,UW.S0(R)	;[632] MAYBE, IS IT?
2)		JRST	[POP P,T2	;[1132] NOT IN CORE, RESTORE CAL
	LER'S T2
2)			POPJ P,]	;[1132] RETURN TO CALLER
2)	
2)	;HERE IF ADDRESS IS DEFINITELY IN CORE.
2)	SEGCK6:	EXCH	T2,0(P)		;[1132] GET PHYSICAL ADDRESS FOR
	 .JDDT
2)		.JDDT	LNKLOD,SEGCK6,<<CAMN T2,$LOCATION>>	;[1132]
2)		POP	P,T2		;[1132] RESTORE OFFSET INTO SEGM
	ENT
2)		SUB	T2,LW.S0(R)	;[632] RELATIVE TO IN-CORE PART
	OF AREA
**************
1)68		MOVE	T1,@RC.TB	;[747] NEXT PSECT ORIGIN MUST BE
	 THE LOWEST LOC
1)		MOVE	W1,RC.IV(T1)	;[747]
****
2)68	;**;[1132] Replace @ CHKLLC+13L	JNG	30-Jan-79
2)		CAMLE	R,RC.NO		;[1132] NEXT PSECT ORG MUST BE L
	OWEST
2)		JRST	[SETZM	LOWLOC	;[1132] NO NEXT, LOWLOC IS ZERO
2)			JRST	CHKLL1]	;[1132] DONE
2)		MOVE	T1,@RC.TB	;[1132] GET POINTER TO RC BLOCK
2)		MOVE	W1,RC.IV(T1)	;[747]
**************
1)88		SETZM	RC.HL(R)	;CLEAR IN EITHER CASE
1)		MOVEI	R,2		;NO FOR HIGH SEGMENT
****
2)88	;**;[1132] Delete @ EOFTS+7L	JNG	30-Jan-79
2)		MOVEI	R,2		;NO FOR HIGH SEGMENT
**************
1)88		SETZM	RC.HL(R)	;CLEAR IN EITHER CASE
1)	;**;[1114] Insert after EOFTS+14L	DZN	1-Sep-78
****
2)88	;**;[1132] Delete @ EOFTS+14L	JNG	30-Jan-79
2)	;**;[1114] Insert after EOFTS+14L	DZN	1-Sep-78
**************
 
Digital Equipment Corporation       28-AUG-79    Page 211
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 1847 25-Sep-1978
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 0834 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	22-Sep-7
	8
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	30-Jan-7
	9
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1978, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
2)	
**************
1)1	DECEVR==1120		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1132		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1132	Check for PSECT seen in this module with AT.PS; preserve
	 RC.HL
2)	
**************
1)42		MOVEI	T2,-.FRESP-1(W1)	;[745] RESERVED SOME FRE
	E SPACE
1)		MOVEM	T2,SYMLIM	;[745] CORRECT SYMBOL TABLE LIMI
	T
1)		MOVEI	R,2		;RELOCATION FOR HIGH SEGMENT
1)		MOVE	R,@SG.TB	;GET BLOCK POINTER
1)		MOVEM	W1,LL.S2	;FOR INPUT ROUTINE ONLY
****
2)42	;**;[1132] Delete @ SETRC+13L	JNG	30-Jan-79
2)		MOVEM	W1,LL.S2	;FOR INPUT ROUTINE ONLY
**************
1)42		MOVEI	T1,2		;SEGMENT NUMBER
****
2)42	;**;[1132] Insert @ SETRC+33L	JNG	30-Jan-79
2)		MOVEM	W1,RC.HL(R)	;[1132] CONSIDER THESE TO BE LOA
	DED
2)		MOVEI	T1,2		;SEGMENT NUMBER
**************
1)42		SETZM	RC.HL(R)
Digital Equipment Corporation       28-AUG-79    Page 212
PCO Log Report


1)		MOVEI	T1,HC.LB
****
2)42	;**;[1132] Delete @ SETRC+36L	JNG	30-Jan-79
2)		MOVEI	T1,HC.LB
**************
1)42	
1)43	;HERE IF DESIRED RC SLOT IS NOT FREE
****
2)43	;HERE IF DESIRED RC SLOT IS NOT FREE
**************
1)48		SETZM	RC.HL(R)	;CLEAR HIGHEST IN PROGRESS
1)		CAMLE	W1,HL.S1	;AND HIGHEST ADDRESS IN THIS SEG
	MENT
****
2)48	;**;[1132] Replace @ T.5LS+6L	JNG	22-Jan-79
2)		MOVEM	W1,RC.HL(R)	;[1132] MAKE SURE HL IS UP TO DA
	TE TOO
2)		CAMLE	W1,HL.S1	;AND HIGHEST ADDRESS IN THIS SEG
	MENT
 
 
**************
1)48		SETZM	RC.HL(R)
1)		MOVE	T1,W2		;GET A COPY
****
2)48	;**;[1132] Replace @ T.5HS+6L	JNG	30-Jan-79
2)		MOVEM	W2,RC.HL(R)	;[1132] MAKE SURE HL IS HIGHEST
	POSSIBLE
2)		MOVE	T1,W2		;GET A COPY
**************
1)49	T.5RET:	SKIPE	UW.LS		;ARE WE PAGING SYMBOLS?
****
2)49	
2)50	T.5RET:	SKIPE	UW.LS		;ARE WE PAGING SYMBOLS?
**************
1)49		SKIPN	T2,RC.HL(T1)	;DID WE LOAD CODE FOR THIS ONE?
1)		JRST	T.5PSB		;NO
1)		MOVE	W2,RC.NM(T1)	;GET NAME
****
2)50	;**;[1132] Change @ T.5PSA+1L	JNG	30-Jan-79
2)		MOVX	T2,AT.PS	;[1132] FLAG FOR PSECT SEEN IN T
	HIS MODULE
2)		TDNN	T2,RC.AT(T1)	;[1132] DID WE SEE THIS PSECT IN
	 THIS MODULE?
2)		JRST	T.5PSB		;NO
2)		ANDCAB	T2,RC.AT(T1)	;[1132] CLEAR FLAG FOR NEXT TIME
2)		MOVE	W2,RC.NM(T1)	;GET NAME
**************
1)49		HLL	T3,RC.AT(T1)	;[722] GET ATTRIBUTE
1)		TXNE	T3,AT.OV	;[722] TO BE OVERLAYED?
1)		JRST	[CAMLE 	T2,RC.CV(T1)	;[757] THIS MODULE CAUSE
Digital Equipment Corporation       28-AUG-79    Page 213
PCO Log Report


	 AN
1)			JRST	T.5PSB		;[757] OVERLAYABLE PSECT
	 TO GROW? NO,
1)			JRST	T.5PSD]		;[757] YES, DON'T UPDATE
	 RC.CV
1)		CAMLE	T2,RC.CV(T1)	;BIGGER THAN WHAT WE HAVE?
1)		MOVEM	T2,RC.CV(T1)	;YES
1)		SETZM	RC.HL(T1)	;[757] CLEAR FOR NEXT MODULE
1)	T.5PSD:	PUSHJ	P,LS.ADD##	;PUT IN LOCAL TABLE
****
2)50	;**;[1132] Change @ T.5PSA+6L	JNG	30-Jan-79
2)		MOVE	T3,RC.HL(T1)	;[1132] GET HIGHEST SEEN
2)		TXNN	T2,AT.OV	;[1132] OVERLAID PSECT?
2)		CAMG	T3,RC.CV(T1)	;[1132] OR LOWER THAN WHAT WE HA
	VE?
2)		JRST	T.5PSD		;[1132] YES, DONE UPDATE RC.CV
2)		MOVEM	T3,RC.CV(T1)	;[1132] UPDATE CV FOR NEXT MODUL
	E
2)	T.5PSD:	PUSHJ	P,LS.ADD##	;PUT IN LOCAL TABLE
**************
1)51			SETZM	RC.HL(R)	;CLEAR HIGHEST IN PROGRE
	SS
1)			CAMLE	W2,HL.S1	;AND HIGHEST ADDRESS IN
	THIS SEGMENT
****
2)52	;**;[1132] Replace @ T.5FL+13L	JNG	30-Jan-79
2)			MOVEM	W2,RC.HL(R)	;[1132] HIGHEST LOCATION
	 LOADED
2)			CAMLE	W2,HL.S1	;AND HIGHEST ADDRESS IN
	THIS SEGMENT
**************
1)51		SETZM	RC.HL(R)	;CLEAR HIGHEST IN PROGRESS
1)		CAMLE	W1,HL.S1	;AND HIGHEST ADDRESS IN THIS SEG
	MENT
****
2)52	;**;[1132] Replace @ T.5FL+21L	JNG	30-Jan-79
2)		MOVEM	W1,RC.HL(R)	;[1132] FOR LNKXIT
2)		CAMLE	W1,HL.S1	;AND HIGHEST ADDRESS IN THIS SEG
	MENT
**************
 
 
1)51	
1)52	;HERE FOR FORCED HIGH SEGMENT
****
2)52	;HERE FOR FORCED HIGH SEGMENT
**************
1)52			SETZM	RC.HL(R)
1)			MOVE	T1,W2		;GET A COPY
****
2)52	;**;[1132] Replace @ T.5FH+13L	JNG	30-Jan-79
Digital Equipment Corporation       28-AUG-79    Page 214
PCO Log Report


2)			MOVEM	W1,RC.HL(R)	;[1132] FOR LNKXIT
2)			MOVE	T1,W2		;GET A COPY
**************
1)52		SETZM	RC.HL(R)
1)		MOVE	T1,W2		;GET A COPY
****
2)52	;**;[1132] Delete @ T.5FH+23L	JNG	30-Jan-79
2)		MOVEM	W2,RC.HL(R)	;[1132] FOR LNKXIT
2)		MOVE	T1,W2		;GET A COPY
**************
1)101	T.24A:	AOS	RC.CUR		;GOES IN NEXT SLOT
1)		MOVE	R,RC.NO		;START AT BACK OF TABLE
****
2)101	;**;[1132] Insert @ T.24A	JNG	30-Jan-79
2)	T.24A:	TXO	W3,AT.PS	;[1132] PSECT SEEN IN THIS MODUL
	E
2)		AOS	RC.CUR		;GOES IN NEXT SLOT
2)		MOVE	R,RC.NO		;START AT BACK OF TABLE
**************
1)101		JRST	[TXZ	W1,AT.RP	;FOUND IT, MUST HAVE ORI
	G ALREADY
1)			IORM	W1,RC.AT(T1)	;UPDATE ATTRIBUTES
1)			JRST	T.24B]		;GO CHECK ORDERING
****
2)101	;**;[1132] Change @ T.24A+4L	JNG	30-Jan-79
2)		JRST	[TXZ	W3,AT.RP	;[1132] FOUND IT, MUST H
	AVE ORIG ALREADY
2)			IORM	W3,RC.AT(T1)	;[1132] UPDATE ATTRIBUTE
	S
2)			JRST	T.24B]		;GO CHECK ORDERING
**************
 
Digital Equipment Corporation       28-AUG-79    Page 215
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1844 05-Oct-1978
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 0834 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	5-Oct-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	30-Jan-7
	9
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1978, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
2)	
**************
1)1	DECEVR==1122		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1132		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1132	Allow loading of PSECTs above the high segment.
2)	
**************
1)40	SET2:	CAMG	R1,RC.NO	;CHECKED ALL WE'VE SET UP?
1)		AOJA	R1,SET1		;NO
1)	SET3:	PUSHJ	P,.SAVE4##	;[714] SAVE P1-P4
1)		MOVX	W1,PT.SGN!PT.SYM	;[714] SET FLAGS
****
2)40	;**;[1132] Change @ SET2	JNG	30-Jan-79
2)	SET2:	CAMGE	R1,RC.NO	;[1132] CHECKED ALL WE'VE SET UP
	?
2)		AOJA	R1,SET1		;NO
2)	SET3:	ADDI	R,1		;[1132] NOT THERE - INSERT IN NE
	XT FREE SLOT
2)		PUSHJ	P,.SAVE4##	;[714] SAVE P1-P4
2)		MOVX	W1,PT.SGN!PT.SYM	;[714] SET FLAGS
**************
1)40	SET4:	MOVEI	T1,1		;ASSUME LOW SEG
1)		SKIPE	LL.S2		;DO WE HAVE A CHOICE?
1)		CAMGE	W3,LL.S2	;YES, BUT IN HIGH SEG?
1)		JRST	SET5		;NOT HIGH SEG
1)		ADDI	T1,1		;HIGH = 2
1)	SET5:	MOVEM	T1,RC.SG(R)	;SEGMENT NUMBER
1)		EXCH	R,T1		;SWAP, PUT SEG # IN R
Digital Equipment Corporation       28-AUG-79    Page 216
PCO Log Report


****
2)40	;**;[1132] Replace @ SET4	JNG	30-Jan-79
2)	SET4:	MOVEI	T1,1		;[1132] ALL PSECTS ARE IN THE LC
	 AREA
2)		MOVEM	T1,RC.SG(R)	;[1132] SEGMENT NUMBER
2)		EXCH	R,T1		;SWAP, PUT SEG # IN R
**************
1)40		MOVE	T2,RC.LB(R)	;BASE OF AREA
****
2)40	;**;[1132] Insert @ SET4+17L	JNG	30-Jan-79
2)		CAMLE	W3,RC.HL(T1)	;[1132] HIGHEST LOCATION SO FAR?
2)		MOVEM	W3,RC.HL(T1)	;[1132] YES, STORE IT
2)		MOVE	T2,RC.LB(R)	;BASE OF AREA
**************
 
 
1)40	SETE:	.ERR.	(MS,,V%L,L%F,S%F,RCF,<Relocation counter table f
	ull>)
1)	
1)	SETL:	.ERR.	(MS,.EC,V%L,L%W,S%W,SRB,<Attempt to set >)
****
2)40	;**;[1132] Delete @ SETE	JNG	30-Jan-79
2)	SETL:	.ERR.	(MS,.EC,V%L,L%W,S%W,SRB,<Attempt to set >)
**************
 
Digital Equipment Corporation       28-AUG-79    Page 217
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1727 14-Nov-1978
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1219 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	14-Nov-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	30-Jan-79
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1978, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
2)	
**************
1)1	DECEVR==1127		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1132		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1132	Teach the EXE file writer about PSECTs above the high se
	gment.
2)	
**************
1)15		SKIPL	SYMSEG		;[715] A PSECT WAS SPECIFIED?
1)	;**;[1110] Add label @ GETSST+2L	MCHC	7-Aug-78
1)	GETS0:	JRST	[SKIPGE	T1,SYMLIM	;[1110][727] HAVE A DEFA
	ULT LIMIT?
1)			HRRZM	T1,SYMLIM	;[727] YES, MAKE IT THE
	LIMIT
1)			SKIPN	HL.S0(R)	;[715] NO, NULL SEGMENT?
1)			ADD	P4,[EXP .JBDA,.JBHDA]-1(R) ;[715] SAVE J
	OBDAT
1)			ADDB	P4,HL.S0(R)	;[715]  HIGHEST LOADED F
	OR SEG
1)			POP	P,T1		;[727] RESTORE T1
1)			POPJ	P,]		;[715] RETURN FROM HERE
	IF HIGH/LOW
1)		SETZ	R,		;[727] YES, HAVE PSECT NAME
1)	GETS1:	MOVE	T1,@RC.TB	;[715]
1)		MOVE	T2,RC.NM(T1)	;[715] GET PSECT NAME
1)		CAMN	T2,SSGNAM	;[715] IS THIS THE ONE?
1)		JRST	GETS2		;[715] YES,
1)		ADDI	R,1		;[715] NEXT ONE
1)		CAMG	R,RC.NO		;[715] ANY MORE?
Digital Equipment Corporation       28-AUG-79    Page 218
PCO Log Report


1)		JRST	GETS1		;[715] YES, LOOP
1)	;**;[1110] Change @ GETS1+7L	MCHC	7-Aug-78
1)		.ERR.	(MS,.EC,V%M,L%W,S%W,NPS,<NON-EXISTENT PSECT SPEC
	IFIED -- >)	;[1110]
1)		.ETC.	(SBX,.EP,,,,SSGNAM)	;[1110] OUTPUT PSECT NAM
	E
1)		MOVEI	R,1		;[715] SET TO LOW
1)		MOVEM	SYMSEG		;[715]
1)		JRST	GETS0		;[1110][715] AND LOOP BACK
1)	
1)	GETS2:	MOVE	T2,RC.CV(T1)	;[715] GET HIGHEST LOCATION
1)		ADDB	P4,T2		;[715] GET SYMBOL START ADDR
1)		CAMLE	P4,HL.S1	;[715] GREATER THAN HIGHT LOCATI
	ON?
1)		MOVEM	P4,HL.S1	;[715] UPDATE IT IN THAT CASE
1)		SKIPLE	SYMLIM		;[727] DO WE HAVE A LIMIT
1)		JRST	GETS3		;[715]  FROM THE LAST CALL TO HE
	RE
1)	GETS4:	ADDI	R,1		;[715] NEXT PSECT
1)		CAMG	R,RC.NO		;[715] SKIP IF NO MORE
 
 
1)		JRST	[MOVE	T1,@RC.TB	;[715] THERE IS ONE
1)			MOVE	T2,RC.IV(T1)	;[715] GET ITS ORIGIN
1)			SUBI	T2,1		;[727] ONE LESS
1)			MOVEM	T2,SYMLIM	;[715] MAKE IT THE SYMBO
	L LIMIT
1)			JRST	GETS3]		;[715]
1)		SETOM	SYMLIM		;[715] NO LIMIT AND BEEN HERE BE
	FORE
1)	GETS3:	MOVE	T1,P4		;[764] GET START OF THE SYMBOL T
	ABLE
1)		TRZ	T1,777		;[764] ROUND DOWN TO PAGE BOUND
1)		CAMGE	T1,LOWLOC	;[764] LOWER THAN ANY CODE?
1)		MOVEM	T1,LOWLOC	;[764] YES, UPDATE LOWEST LOCATI
	ON
1)		MOVEI	R,1		;[715] UPDATE SEGMENT#
1)		POP	P,T1		;[715] RESTORE AC'S
****
2)15	;**;[1132] Revamp @ GETSST+1L	JNG	30-Jan-79
2)		SKIPGE	SYMSEG		;[1132] /SYMSEG TO A PSECT?
2)		JRST	GETS10		;[1132] YES, GO FIND IT
2)	GETS2:	CAIE	R,1		;[1132] /SYMSEG:LOW?
2)		JRST	GETS8		;[1132] NO, MUST BE /SYMSEG:HIGH
2)	
2)		SPUSH	<T2,T3,T4>	;[1132] SAVE SOME ACS FOR LOOP
2)		SETZB	R,T3		;[1132] ON /SYMSEG:LOW, WE WANT
	TO PUT THE
2)	GETS4:	MOVE	T1,@RC.TB	;[1132]   SYMBOLS AFTER THE LAST
	 PSECT, SO WE
2)		MOVE	T2,RC.NM(T1)	;[1132] GET THE NAME OF THIS PSE
Digital Equipment Corporation       28-AUG-79    Page 219
PCO Log Report


	CT
2)		CAMN	T2,['.HIGH.']	;[1132] IS THIS THE HIGH SEG?
2)		JRST	GETS6		;[1132] YES, IT DOESN'T COUNT FO
	R /SYMSEG:LOW
2)		MOVE	T2,RC.HL(T1)	;[1132]   NEED TO FIND THE PSECT
	 THAT ENDS LAST
2)		CAMG	T2,T3		;[1132] HIGHEST SO FAR?
2)		JRST	GETS6		;[1132] NO, CONTINUE
2)		MOVE	T3,T2		;[1132] SAVE NEW BEST
2)		MOVE	T4,R		;[1132] AND WHAT PSECT IT WAS
2)	GETS6:	CAMGE	R,RC.NO		;[1132] ALL DONE?
2)		AOJA	R,GETS4		;[1132] NO, LOOP
2)		MOVE	R,T4		;[1132] YES, SAVE PSECT INDEX OF
	 LAST ONE
2)		SPOP	<T4,T3,T2>	;[1132] RESTORE ACS
2)		JRST	GETS14		;[1132] GO UPDATE THAT PSECT
2)	
2)	GETS8:	MOVE	T1,['.HIGH.']	;[1132] /SYMSEG:HIGH IS JUST LIK
	E A PSECT
2)		MOVEM	T1,SSGNAM	;[1132] STORE
2)	
2)	GETS10:	SETZ	R,		;[727] YES, HAVE PSECT NAME
2)	GETS12:	MOVE	T1,@RC.TB	;[1132]
2)		MOVE	T1,RC.NM(T1)	;[1132] GET PSECT NAME
2)		CAMN	T1,SSGNAM	;[1132] IS THIS THE ONE?
2)		JRST	GETS14		;[1132] YES,
2)		ADDI	R,1		;[715] NEXT ONE
2)		CAMG	R,RC.NO		;[715] ANY MORE?
2)		JRST	GETS12		;[1132] YES, LOOP
2)		.ERR.	(MS,.EC,V%M,L%W,S%W,NPS,<NON-EXISTENT PSECT SPEC
	IFIED -- >)	;[1110]
2)		.ETC.	(SBX,.EP,,,,SSGNAM)	;[1110] OUTPUT PSECT NAM
	E
2)		MOVEI	R,1		;[1132] SET TO LOW
2)		MOVEM	R,SYMSEG	;[1132]
2)		JRST	GETS2		;[1132] AND LOOP BACK
2)	
2)	;FALL INTO NEXT PAGE
2)	
2)16	;FALL IN FROM ABOVE
 
 
2)	
2)	GETS14:	SKIPL	SYMLIM		;[1132] HAVE A LIMIT YET?
2)		JRST	GETS18		;[1132] YES, PROCEED
2)		ADDI	R,1		;[1132] NO, CHECK NEXT PSECT
2)		CAMLE	R,RC.NO		;[1132] IS THERE ONE?
2)		JRST	GETS16		;[1132] NO, USE 777777
2)		MOVE	T1,@RC.TB	;[1132] RC BLOCK FOR NEXT PSECT
2)		MOVE	T1,RC.IV(T1)	;[1132] BOTTOM OF IT
2)		SOSA	T1		;[1132] LIMIT IS ONE BELOW
Digital Equipment Corporation       28-AUG-79    Page 220
PCO Log Report


2)	GETS16:	MOVEI	T1,777777	;[1132] USE 777777 IF NO NEXT PS
	ECT
2)		MOVEM	T1,SYMLIM	;[1132] STORE
2)		SUBI	R,1		;[1132] BACK TO OLD PSECT
2)	
2)	GETS18:	MOVE	T1,@RC.TB	;[1132] THIS PSECT'S RC BLOCK
2)		MOVEM	T1,SYMPSC	;[1132] SAVE FOR SYDONE
2)		ADD	P4,RC.HL(T1)	;[1132] COMPUTE START OF SYMBOL
	TABLE
2)		MOVE	R,RC.SG(T1)	;[1132] SEGMENT SYMBOL TABLE IS
	IN
2)		MOVE	T1,P4		;[1132] GET START OF THE SYMBOL
	TABLE
2)		TRZ	T1,777		;[1132] ROUND DOWN TO PAGE BOUND
2)		CAMGE	T1,LOWLOC	;[1132] LOWER THAN ANY CODE?
2)		MOVEM	T1,LOWLOC	;[1132] YES, UPDATE LOWEST LOCAT
	ION
2)		SUB	P4,LL.S0(R)	;[1132] OFFSET TO SEGMENT START
2)		CAMLE	P4,HL.S0(R)	;[1132] UPDATE HL FOR THAT SEGME
	NT
2)		MOVEM	P4,HL.S0(R)	;[1132] BUT NEVER DECREASE
2)		POP	P,T1		;[715] RESTORE AC'S
**************
1)34		SUBI	T2,0(T3)	;FIND - LENGTH
****
2)35	;**;[1132] Insert @ SYDONE+15L	JNG	30-Jan-79
2)		MOVE	T1,SYMPSC	;[1132] GET POINTER TO /SYMSEG R
	C BLOCK
2)		CAMLE	T3,RC.HL(T1)	;[1132] INCORPORATE SYMBOLS INTO
	 THAT PSECT
2)		MOVEM	T3,RC.HL(T1)	;[1132] BUT NEVER SHRINK A PSECT
2)		SUBI	T2,0(T3)	;FIND - LENGTH
**************
1)35	LTITLE:	PUSHJ	P,SXBR50	;CONVERT TO RADIX-50
1)		TXNE	W1,PT.BLK	;ONLY A FAIL BLOCK HEADER?
****
2)36	;**;[1132] Insert @ LTITLE	JNG	30-Jan-79
2)	LTITLE:	TXNE	W1,PT.PSC	;[1132] JUST A PSECT DEFINITION?
2)		JRST	LSLOOP		;[1132] YES, DON'T PUT IN SYMBOL
	 TABLE
2)		PUSHJ	P,SXBR50	;CONVERT TO RADIX-50
2)		TXNE	W1,PT.BLK	;ONLY A FAIL BLOCK HEADER?
**************
1)41	IFN FTEXE,<JRST	JBEXE>		;SET UP TO WRITE AN EXE FILE
****
2)42	;**;[1132] Insert @ JBSAVE+23L	JNG	30-Jan-79
2)		SKIPL	SYMSEG		;[1132] SYMBOLS IN A PSECT?
2)		JRST	JBSAVX		;[1132] NO, SKIP THIS
2)		HLRE	T1,.JBSYM(P1)	;[1132] YES, GET -LENGTH OF TABL
	E
2)		HRRZ	T2,.JBSYM(P1)	;[1132] GET FIRST ADDR OF TABLE
Digital Equipment Corporation       28-AUG-79    Page 221
PCO Log Report


2)		SUB	T2,T1		;[1132] COMPUTE FIRST FREE AFTER
	 TABLE
2)		CAMLE	T2,HC.S1	;[1132] UPDATE AMOUNT OF CODE IN
	 LC AREA
2)		MOVEM	T2,HC.S1	;[1132] BUT NEVER DECREASE
2)		CAMLE	T2,HL.S1	;[1132] ALSO UPDATE SIZE OF SEGM
	ENT
2)		MOVEM	T2,HL.S1	;[1132] NEVER DECREASE
2)	JBSAVX:
 
 
2)	IFN FTEXE,<JRST	JBEXE>		;SET UP TO WRITE AN EXE FILE
**************
1)51	;HERE FOR EXECUTABLE FILE
1)	;THE ACTIONS IS
1)	;RESERVE SPACE FOR DIRECTORY (1 PAGE)
1)	;WRITE OUT LOW SEGMENT REMOVING ALL ZERO BUT ALLOCATED PAGES
1)	;THEN WRITE OUT THE HIGH SEGMENT THE SAME WAY
1)	;NOW GO BACK AND WRITE THE DIRECTORY
1)	;NOTE, PAGE 0 AND FIRST PAGE OF HIGH SEGMENT ARE ALWAYS WRITTEN
1)	
****
2)52	;HERE TO WRITE THE EXE FILE.
2)	;THE STRATEGY IS:
2)	;RESERVE ONE PAGE FOR THE DIRECTORY.
2)	;WRITE OUT EACH PSECT (POINTED TO BY RC.TB), COMPRESSING OUT ZER
	O PAGES,
2)	;  AND ACCUMULATING THE EXE DIRECTORY IN A BLOCK IN THE DY AREA.
2)	;GO BACK TO THE BEGINNING OF THE FILE AND WRITE OUT THE EXE DIRE
	CTORY.
2)	;NOTES:
2)	;PAGE 0 IS ALWAYS WRITTEN, AND IF A HIGH SEG EXIST, SO IS ITS FI
	RST PAGE.
2)	;IF THE EXE DIRECTORY PAGE IN THE DY AREA OVERFLOWS, LINK WRITES
	 IT OUT
2)	;  AT THE BEGINNING OF THE FILE, THEN FREES UP ANOTHER PAGE IN T
	HE FILE BY
2)	;  MAKING A BACKWARDS PASS OVER THE EXE FILE, MOVING EACH PAGE D
	OWN ONE.
2)	
2)	
**************
1)51		SKIPN	PAG.S1		;READY TO DUMP CORE, FIRST SEE I
	F PAGED?
****
2)52	;**;[1132] Insert @ JBEXEN+3L	JNG	30-Jan-79
2)	
2)53	IFN FTOVERLAY,<
2)	
2)	;IF LOADING OVERLAYS, IT IS THE EXE FILE GENERATOR'S RESPONSIBIL
	ITY
Digital Equipment Corporation       28-AUG-79    Page 222
PCO Log Report


2)	;TO INSERT THE SYMBOLS INTO THE PROGRAM ON THE FLY WHILE IT IS W
	RITING
2)	;THE EXE FILE.  THE SYMBOLS ARE IN THE LS AREA IN RADIX50 FORM.
2)	;THE EXE FILE WRITING LOOP IS VERY PAGE ORIENTED, SO TO MAKE THI
	NGS
2)	;EASIER, WE WILL COPY THE FIRST PARTIAL PAGE OF SYMBOLS INTO THE
2)	;LC AREA HERE.
2)	
2)		SKIPL	LNKMAX		;[1132] LOADING OVERLAYS?
2)		SKIPN	JOB116		;[1132] AND SYMBOLS TO PROCESS?
2)		JRST	JBEXEE		;[1132] NO, SKIP THIS
2)		HRRZ	P3,JOB116	;[1132] GET FIRST ADDRESS TO COP
	Y INTO
2)		HRRZ	P4,P3		;[1132] COMPUTE LAST ADDRESS IN
	P4
2)		ADDI	P4,777		;[1132] ROUND UP TO PAGE BOUND
2)		ANDCMI	P4,777		;[1132] ADDRESS OF FIRST FULL PA
	GE OF SYMS
2)		CAMLE	P4,HL.S1	;[1132] MAKE SURE EXE FILE WRITE
	R GOES THIS FAR
2)		MOVEM	P4,HL.S1	;[1132] SO OVERLAY CODE CAN JUST
	 CONTINUE
2)		MOVEI	R,1		;[1132] POINTER TO .LOW. RC BLOC
	K
2)		MOVE	R,@SG.TB	;[1132] SINCE OVERLAY SYMBOLS AR
	E IN .LOW.
2)		CAMLE	P4,RC.HL(R)	;[1132] UPDATE .LOW. TO SYMBOLS
	WRITTEN HERE
2)		MOVEM	P4,RC.HL(R)	;[1132] BUT NEVER SHRINK IT
2)		ANDI	P3,777		;[1132] OFFSET TO FIRST WORD TO
	WRITE
2)		JUMPE	P3,JBEXEE	;[1132] IF PAGE-ALIGNED, NOTHING
	 TO DO
2)		CAMLE	P4,HC.S1	;[1132] SINCE COPYING SYMS, UPDA
	TE NON-ZERO PTR
2)		MOVEM	P4,HC.S1	;[1132] ALSO REMEMBERS HOW LONG
	LC AREA IS
2)		SKIPE	PAG.S1		;[1132] IS LC AREA PAGING?
 
 
2)		JRST	JBEXEB		;[1132] YES, GO SET ON CORRECT P
	AGE
2)		MOVE	P2,P4		;[1132] EXTEND LC AREA TO WHERE
	SYMS GO
2)		ADD	P2,LC.LB	;[1132] MIGHT BE QUITE A WAY IF
	BIG /SPACE
2)		SUB	P2,LC.AB	;[1132] DISTANCE = LAST ADDR - S
	IZE OF LC AREA
2)		SUBI	P2,1		;[1132] SIZE IS LAST-FIRST+1
2)		JUMPLE	P2,JBEXEC	;[1132] ALREADY THERE
2)		MOVEI	P1,LC.IX	;[1132] TELL LNKCOR TO EXPAND LC
Digital Equipment Corporation       28-AUG-79    Page 223
PCO Log Report


	 AREA
2)		PUSHJ	P,LNKCOR	;[1132] DO IT
2)		  JRST	JBEXEB		;[1132] FAILED, BUT LC AREA IS P
	AGING NOW
2)		JRST	JBEXEC		;[1132] OK, GO DO THE COPY
2)	
2)54	;HERE IF THE LC AREA IS PAGING, EITHER FROM THE START, OR BECAUS
	E
2)	;IT COULDN'T EXPAND FAR ENOUGH.  JUST SET UP A ONE-PAGE WINDOW T
	O
2)	;THE PAGE WE WANT TO COPY INTO.
2)	
2)	JBEXEB:	HRLZ	T1,LW.S1	;[1132] WRITE ENTIRE LC AREA
2)		HRR	T1,UW.S1	;[1132] TO AVOID LOST DATA
2)		PUSHJ	P,LC.OUT##	;[1132] DUMP IT TO THE OVERFLOW
	FILE
2)		MOVE	T1,LC.LB	;[1132] REDUCE LC WINDOW TO ONE
	PAGE
2)		ADDI	T1,777		;[1132] AVOIDS CHECKS FOR OVER 2
	56K
2)		MOVEM	T1,LC.AB	;[1132] AREA IS NOW 1 PAGE
2)		MOVSI	T1,-1000(P4)	;[1132] LOWEST LOCATION TO READ
2)		MOVSM	T1,LW.S1	;[1132] UPDATE LOWER WINDOW
2)		HRRI	T1,-1(P4)	;[1132] HIGHEST LOCATION TO READ
2)		HRRZM	T1,UW.S1	;[1132] UPDATE UPPER WINDOW
2)		PUSHJ	P,LC.IN		;[1132] READ IN CODE IN THAT PAG
	E
2)	
2)	
2)	;HERE WHEN THE LC AREA INCLUDES THE PAGE THAT WE WANT TO UPDATE.
2)	;NOW GET THE PAGE OF SYMBOLS WE WANT TO PUT HERE INTO THE LS ARE
	A.
2)	
2)	JBEXEC:	PUSHJ	P,CHKPAG	;[1132] IN CASE WE JUST STARTED
	PAGING
2)		SKIPN	LW.LS		;[1132] ARE THE FIRST PAGE OF SY
	MBOLS IN?
2)		JRST	JBEXED		;[1132] YES, GO DO THE COPY
2)		MOVE	T1,LW.LS	;[1132] WRITE CURRENT LS WINDOW
2)		ADD	T1,LS.AB	;[1132] SO SYMBOLS WON'T BE LOST
2)		SUB	T1,LS.LB	;[1132] T1 HAS NEW UPPER BOUND
2)		MOVEM	T1,UW.LS	;[1132] STORE IN CASE IT WAS -1
2)		HRL	T1,LW.LS	;[1132] ARG TO LS.OUT
2)		PUSHJ	P,LS.OUT	;[1132] WRITE THE LS AREA OUT
2)		MOVE	T1,LS.LB	;[1132] REDUCE LS WINDOW TO 1 PA
	GE
2)		ADDI	T1,777		;[1132] WILL BE EXPANDED LATER I
	F NEEDED
2)		MOVEM	T1,LS.AB	;[1132] AB IS LB+1P
2)		SETZM	LW.LS		;[1132] WANT FIRST PAGE OF SYMBO
	LS
Digital Equipment Corporation       28-AUG-79    Page 224
PCO Log Report


2)		MOVEI	T1,777		;[1132] FROM 0 TO 777
2)		MOVEM	T1,UW.LS	;[1132] UPDATE UPPER WINDOW
2)		PUSHJ	P,LS.IN		;[1132] READ IN THE SYMBOLS
2)	
2)	
2)	;HERE WHEN BOTH THE LC AND LS AREAS HAVE THE PAGE IN MEMORY THAT
	 WE CARE
2)	;ABOUT.  NOW TO BLT THE FIRST PARTIAL PAGE OF SYMBOLS INTO THE L
	C AREA.
2)	
2)	JBEXED:	MOVE	T3,LC.LB	;[1132] CALCULATE OFFSET FROM VI
	RTUAL
2)		SUB	T3,LW.S1	;[1132]   TO PHYSICAL ADDRESSES
2)		HRRZ	T1,JOB116	;[1132] FIRST VIRTUAL ADDRESS TO
	 WRITE
2)		ADD	T1,T3		;[1132] FIRST PHYSICAL ADDRESS
 
 
2)		HRL	T1,LS.LB	;[1132] FROM START OF LS AREA
2)		MOVE	T2,P4		;[1132] FIRST VIRTUAL ADDRESS NO
	T TO WRITE
2)		ADD	T2,T3		;[1132] FIRST PHYSICAL ADDRESS
2)		BLT	T1,-1(T2)	;[1132] COPY THE SYMBOLS
2)	
2)	JBEXEE:
 
2)	> ;END IFN FTOVERLAY
2)	
2)	;FALL INTO NEXT PAGE
2)	
2)55	;FALL IN FROM ABOVE
2)	
2)		SKIPN	PAG.S1		;READY TO DUMP CORE, FIRST SEE I
	F PAGED?
**************
1)53		ADDI	T2,4		;[744] 1 FOR REMAINDER, 1 FOR EX
	E-DIR, 2 FOR RIBS
1)		MOVEM	T2,I.EST(T1)	;AT LEAST THIS IS ENOUGH
****
2)57	;**;[1132] Change @ EXEINI+18L	JNG	30-Jan-79
2)		ADDI	T2,7		;[1132] 1 FOR REM, 4 FOR EXE DIR
	, 2 FOR RIBS
2)		MOVEM	T2,I.EST(T1)	;AT LEAST THIS IS ENOUGH
**************
1)54	
1)	;here to compress out pages containing all zeros
1)	;uses acc as follows
1)	;t1	iowd -1000,address
1)	;t2	0 (terminator)
1)	;p1	flags,,file page
1)	;p2	repeat count,,process page
Digital Equipment Corporation       28-AUG-79    Page 225
PCO Log Report


1)	;p3	process address
1)	;P4	FLAGS TO DETERMINE WHAT TO DO WITH THE DIRECTORY ENTRY:
1)	;		ZEROF==400000
1)	;		DATAF==200000
1)	;		GAPF==100000
1)	;	
1)	;		ZEROF TO ZEROF :	BUMP REPEAT COUNT
****
2)58	;HERE TO WRITE THE EXE FILE, COMPRESSING OUT ALL-ZERO PAGES
2)	;USES ACS AS FOLLOWS:
2)	;
2)	;P1	FLAGS,,FILE PAGE
2)	;P2	REPEAT COUNT,,PROCESS PAGE
2)	;P3	ADDRESS WITHIN SEGMENT (PROCESS ADDRESS - LL.S0(R))
2)	;P4	FLAGS TO DETERMINE WHAT TO DO WITH THE DIRECTORY ENTRY,,
	FILE PAGE COUNT
2)	;
2)	;		ZEROF TO ZEROF :	BUMP REPEAT COUNT
**************
1)54	;r	index to segment either 1 or 2
1)	;w1	store ptr
1)	
1)	ZEROF==400000			;[704]
1)	DATAF==200000			;[704]
1)	GAPF==100000			;[704]
1)	
1)	XCMPRS:	SETZM	RC.CUR		;[704] INITIALIZE CURRENT PSECT
	INDEX
1)		MOVEI	R,1		;MAKE SURE LOW SEGMENT
1)		MOVEM	R,EXEBLK	;CONVENIENT 1
 
 
1)		USETO	DC,5		;BYPASS DIRECTORY
1)		MOVE	P1,[SV%WRT+1]	;FLAGS AND FILE PAGE FOR PAGE 0
1)		SETZB	P2,P3		;CLEAR PROCESS PAGE #
1)		SETZB	P4,T2		;
1)		MOVSI	W1,-1000	;- LENGTH
1)		HRR	W1,EXEDIR	;AOBJN PTR
1)		MOVE	T3,LOWLOC	;[742] GET LOWEST LOCATION
1)		CAIL	T3,2000		;[742] LOWEST LOCATION IN PAGE0
	OR PAGE 1?
1)		JRST	XCMPRJ		;[742] NO,
1)		MOVE	T1,LC.LB	;[742] YES,
1)		SUBI	T1,1		;[742]
1)		JRST	XCMPRL		;[742]
1)	
1)55	
1)	
1)	;HERE IF THE LOWEST LOCATION IS IN PAGE 2 OR HIGHER.
1)	;MUST OUTPUT JOBDAT FIRST, THEN CHECK TO SEE IF PAGE0 AND PAGE 1
1)	;IS PART OF .LOW.  IF THAT IS THE CASE, OUTPUT A DIRECTORY ENTRY
Digital Equipment Corporation       28-AUG-79    Page 226
PCO Log Report


1)	;TO MAKE THOSE PAGES ALLOCATED.
1)	
1)	XCMPRJ:	SKIPE	PAG.S1		;[776] PAGING?
1)		SKIPA	T1,JOBPTR	;[776] YES--USE IN-MEMORY COPY O
	F JOBDAT
1)		MOVE	T1,LC.LB	;[776] NO--USE LC AREA STRAIGHT
1)		SUBI	T1,1		;[732]
1)		HRLI	T1,-.JBDA	;[776] DUMP OUT JUST JOBDAT
1)		OUT	DC,T1		;OUTPUT PAGE 0
1)		  TLOA	P4,GAPF		;[732] FLAG IT GAP, OUTPUT DIR
	HERE
1)		JRST	XCMPER		;ERROR
1)		USETO	DC,9		;WRITE REST OF PAGE AS 0
1)		DMOVEM	P1,1(W1)	;STORE ENTRIES
1)		HRRI	P1,2		;NEXT FREE FILE PAGE
1)		AOBJN	W1,.+1		;
1)		AOBJN	W1,.+1		;[732] ADJUST DIR PTR BY 2 ALSO
1)		MOVE	T3,HC.S1	;[732] NO CODE IN PAGE0, BUT ANY
	 CODE AT ALL?
1)		CAIG	T3,.JBDA	;[732]
1)		JRST	XCMPR8		;[732] NO, NOW FOR HIGH SEG
1)		MOVE	T2,@RC.TB	;[742] YES,
1)		MOVE	T2,RC.CV(T2)	;[742] PAGE 0 AND PAGE 1 IN .LOW
	.?
1)		CAILE	T2,.JBDA	;[742]
1)		JRST	[PUSHJ	P,XCMPXD	;[742] YES, NEED TO MAKE
	 AN ENTRY
1)			HLLZM	P1,(W1)		;[742] IN EXE DIRECTORY
1)			PUSHJ	P,XCMPXD	;[742]
1)			HRLZ	T2,LOWLOC	;[742] ALLOCATE ALL PAGE
	S UP TO
1)			TLZ	T2,2777		;[742] THAT PAGE THAT CO
	NATAINS LOWLOC
1)			ADDI	T2,1		;[742] BUMP PROCESS PAGE
1)			MOVEM	T2,(W1)		;[742]
1)			JRST 	.+1]		;[742]
1)		MOVE	P3,LOWLOC	;[732] YES, GET LOWEST LOCATION
1)		MOVE	P2,P3		;[732] ALSO UPDATE PROCESS PAGE
1)		LSH	P2,-^D9		;[732]
1)		HRR	T1,LC.LB	;[742] NOW, READY TO DUMP THE AC
	TUAL CORE
1)		SUBI	T1,1		;[742]
1)		HRLI	T1,-1000	;[732] ASSUME AT LEAST A PAGE
1)		JRST	XCMPR4		;[732] AND THAT CORE IS ALREADY
	SETUP
1)	
1)	
 
 
1)56	
1)	XCMPRL:	HRLI	T1,-1000	;SET UP IOWD WORD
Digital Equipment Corporation       28-AUG-79    Page 227
PCO Log Report


1)	XCMPR7:	SETZ	T2,		;MAKE SURE TERMINATOR IS 0
1)		OUT	DC,T1		;ALWAYS OUTPUT PAGES 0 & 400
1)		  TLOA	P4,DATAF	;[704] JUST OUTPUT A DATA PAGE
1)		JRST	XCMPER		;ERROR
1)	XCMPR0:	ADDI	T1,1000		;NEXT PAGE
1)		ADDI	P3,1000		;INCREMENT PROCESS ADDRES
1)		CAILE	P3,777777	;[732] OVERFLOWED INTO LH?
1)		JRST	[PUSHJ	P,XCMPRD	;[732] YES, WRITE DIR EN
	TRY OUT
1)			JRST	XCMPRH]	;[732] TRY HIGH SEG
1)	XCMPR4:	PUSHJ	P,INGAP		;[732] CHECK TO SEE IF IN PSECT
	GAP
1)		  JRST XCMPR0		;[704] YES, SKIP OVER THIS PAGE
1)		MOVEI	T3,1(T1)	;ADDRESS ONLY
1)		CAMG	T3,TAB.AB(R)	;NEXT PAGE IN CORE
1)		JRST	XCMPR1		;YES
1)		CAMLE	P3,HC.S0(R)	;FINISHED?
1)		JRST	[PUSHJ	P,XCMPRD	;NO, WRITE IT OUT
1)			JRST	XCMPRH]		;TRY HIGH SEG
1)		MOVE	T3,TAB.AB(R)	;
1)		SUB	T3,TAB.LB(R)	;GET SIZE
1)	;**;[774] Delete @ XCMPR4+10L	JNG	30-Apr-78
1)		MOVEM	P3,LW.S0(R)	;[713] RESET BASE TO PROCESS PAG
	E
1)		ADD	T3,LW.S0(R)	;[764] GET NEW UPPER WINDOW
1)		CAILE	T3,-1		;[764] MAKE SURE IT DOESN'T OVER
	FLOW
1)		MOVEI	T3,-1		;[764] JUST IN CASE
1)		MOVEM	T3,UW.S0(R)	;[763]
1)		CAMLE	T3,HC.S0(R)	;STILL IN RANGE?
1)		JRST	[MOVE	T3,HC.S0(R)	;NO
1)			IORI	T3,.IPM		;GET PAGE LIMIT
1)			MOVEM	T3,UW.S0(R)	;SET NEW
1)			SUB	T3,LW.S0(R)	;GET LENGTH
1)			ADD	T3,TAB.LB(R)	;
1)			MOVEM	T3,TAB.AB(R)	;RESET TOP
1)			JRST	.+1]		;
1)		HRLZ	T1,LW.S0(R)	;LOWER BOUND
1)		HRR	T1,UW.S0(R)	;TO UPPER BOUND
1)		PUSHJ	P,@[EXP LC.IN##,HC.IN]-1(R)	;READ IN NEW PAG
	E
1)		MOVE	T3,TAB.LB(R)	;RESET INCORE PROCESS ADDRESS
1)		MOVEI	T1,-1(T3)	;RESET IOWD ADDRESS
1)		HRLI	T1,-1000	;AND COUNT
1)	XCMPR1:	MOVEI	T4,(P3)		;[732] MUST USED 2 INSTRS TO DO
	THIS
1)		ADDI	T4,1000		;[732] INCASE OVERFLOW INTO LH
1)		CAMLE	T4,HC.S0(R)	;WHOLE PAGE EXITS?
1)		JRST	[MOVE T4,HC.S0(R)
1)			SUBI	T4,(P3)
1)			MOVN	T4,T4
Digital Equipment Corporation       28-AUG-79    Page 228
PCO Log Report


1)			HRL	T3,T4
1)			HRL	T1,T4
1)			JRST .+2]
1)		HRLI	T3,-1000	;NORMAL AOBJN WORD
1)		SKIPE	(T3)		;LOOK FOR A NON-ZERO
1)		JRST	XCMPR3		;FOUND ONE
1)		AOBJN	T3,.-2		;LOOP FOR ALL OF PAGE
1)		TLNE	P4,ZEROF	;[704] GOT A ZERO PAGE, WAS LAST
	 ONE ALSO ZERO?
1)		JRST	XCMPR2		;[704] LAST ONE WAS ALSO ZERO
 
 
1)		TLNN	P4,DATAF	;[704] NO, WAS LAST ONE DATA?
1)		TLNA	P4,GAPF		;[704] NO, MUST HAVE BEEN GAP, S
	O SKIP
1)		PUSHJ	P,XCMPRD	;[704] YES,IT WAS DATA, GO OUTPU
	T CURRET DIR
1)		TLO	P4,ZEROF	;[704] SET ZEROF
1)		TLZ	P4,DATAF+GAPF	;[704] AND OFF WITH OTHERS
1)		JRST	XCMPR0		;LOOP AGAIN
1)	
1)	
1)	
1)57	;[704] HERE TO SEE OF NEXT PAGE(CORE ADDR IN P3) FALLS IN
1)	;A PSECT GAP.  RETURN IF IN GAP.  SKIP RETURN IF NOT IN A GAP.
1)	
1)	INGAP:	CAILE	R,1		;[713] DOING LOW SEG OR ABS?
1)		JRST	CPOPJ1		;[704] NO, DON'T BOTHER, SKIP RE
	TURN
1)		CAMLE	P3,HC.S1	;[724] EXCEEDED ADDR SPACE?
1)		JRST	CPOPJ1		;[724] YES,
1)		PUSH	P,R		;[704] USES ACS R, T1, AND T2
1)		PUSH	P,T1		;[704]
1)		MOVE	R,RC.CUR	;[704] GET CURRENT PSECT
1)	INGAP1:	MOVE	T1,@RC.TB	;[704] GET RELOC TABLE ADDR FOR
	CURRENT PSECT
1)		MOVE	T2,RC.SG(T1)	;[704] SET SEGMENT NO.
1)		CAILE	T2,1		;[713] LOW SEG?
1)		JRST	INGAP5		;[724] NO, FORGET IT
1)		MOVE	T2,RC.CV(T1)	;[704] GET CURRENT PSECT BREAK
1)		TRO	T2,777		;[704] ROUND UP PSECT BREAK
1)		CAIG	P3,(T2)		;[704] ADDR LARGER THAN THE PSEC
	T BREAK?
1)		JRST	[MOVE	T2,RC.IV(T1)	;[704] MAKE SURE IT IN P
	SECT RANGE
1)			TRZ	T2,777		;[704] ROUND DOWN
1)			CAIGE	P3,(T2)		;[704] IN RANGE?
1)			JRST	INGAP3		;[704] NO, IN GAP
1)			JRST	INGAP5]		;[724] YES, DO SKIP RETU
	RN
1)		ADDI	R,1		;[704] ADDR IS GT CURRENT PSECT
Digital Equipment Corporation       28-AUG-79    Page 229
PCO Log Report


1)		CAMLE	R,RC.NO		;[704] IS THERE A NEXT PSECT?
1)		JRST	INGAP5		;[724] NO, SKIP RETURN
1)		MOVE	T1,@RC.TB	;[704] GET ADDR OF RELOC TABLE
1)		MOVE	T2,RC.IV(T1)	;[704] GET ORIGIN
1)		TRZ	T2,777		;[704] ROUND IT DOWN TO PAGE BOU
	ND
1)		CAIL	P3,(T2)		;[704] ADDR IS LESS THAN THE ORI
	GIN?
1)		JRST	[MOVEM	R,RC.CUR	;[704] UPDATE TO NEXT PS
	ECT
1)			JRST INGAP1]		;[704] AND LOOP FOR ANOT
	HER CHECK
1)	INGAP3:
1)	IFN FTOVERLAY,<			;[724]
1)		SKIPL	LNKMAX		;[724] ANY OVERLAYS (SKIP IF NO)
1)		JRST	INGAP4>		;[724] YES,
1)		HRRZ	T1,JOB116	;[724] CHECK TO SEE IF IT'S IN S
	YMBOL
1)		HLRE	T2,JOB116	;[724]  TABLE RANGE
1)		SUBM	T1,T2		;[724] GET TOP
1)		TRZ	T1,777		;[726] ROUND DOWN LOWER BOUND
1)		TRO	T2,777		;[726] ROUND UP UB OF SYMBOL TAB
	LE
1)		CAML	P3,T1		;[724]
1)		CAMLE	P3,T2		;[724] IN RANGE?
1)		JRST	INGAP4		;[724] NO,
1)	INGAP5:	POP	P,T1		;[724] YES, RESTORE ACS
1)		POP	P,R		;[724]
1)		JRST	CPOPJ1		;[724] SKIP RETURN
1)	
 
 
1)	INGAP4:	POP	P,T1		;[704] YES, IN A GAP, DO NON-SKI
	P RET
1)		POP	P,R		;[704]
1)		TLOE	P4,GAPF		;[704] WE HAVE A GAP, WAS LAST P
	AGE ALSO GAP?
1)		JRST	INGAP2		;[704] BUMP PROCESS PAGE AND RET
	URN
1)		PUSHJ	P,XCMPRD	;[704] NO, WRITE OUT LAST DIR,
1)		TLZ	P4,ZEROF+DATAF	;[704] OFF WITH OTHER FLAGS
1)	INGAP2:	ADDI	P2,1		;[704] BUMP PROCESS PAGE
1)		POPJ	P,		;[704]
1)	
1)	
1)58	
****
2)58	;
2)	;R	INDEX TO SEGMENT EITHER 1 OR 2
2)	;R2	POINTER TO RC BLOCK FOR CURRENT PSECT
2)	;W1	STORE PTR
Digital Equipment Corporation       28-AUG-79    Page 230
PCO Log Report


2)	;W2	IOWD TO DATA NOT YET WRITTEN
2)	;W3	IOWD LIST TERMINATOR (0)
2)	
2)	ZEROF==1B0			;[1132] LAST THING FOUND WAS A Z
	ERO PAGE
2)	DATAF==1B1			;[1132] LAST THING FOUND WAS A N
	ON-ZERO PAGE
2)	GAPF==1B2			;[1132] LAST THING FOUND WAS AN
	INTER-PSECT GAP
2)	
2)	;**;[1132] Revamp @ XCMPRS	JNG	30-Jan-79
2)	XCMPRS:	SETZ	R,		;[1132] START WITH .ABS.
2)		MOVEM	R,RC.CUR	;[1132] STORE CUURENT PSECT INDE
	X IN RC.CUR
2)		MOVEI	T1,1		;[1132] CURRENT BLOCK OF EXE DIR
2)		MOVEM	T1,EXEBLK	;[1132] SAVE FOR XCMPXD
2)		USETO	DC,5		;[1132] START WRITING DATA AT BL
	OCK 5
2)		MOVEI	P1,1		;[1132] NEXT FILE PAGE TO WRITE
	IS 1
2)		MOVE	R2,@RC.TB	;[1132] POINTER TO RC BLOCK FOR
	.ABS.
2)		MOVE	R,RC.SG(R2)	;[1132] KEEP R POINTING TO SEGME
	NT INDEX
2)		MOVE	T1,RC.AT(R2)	;[1132] GET ITS PSECT ATTRIBUTES
2)		TXNN	T1,AT.RO	;[1132] READ-ONLY?
2)		TXO	P1,SV%WRT	;[1132] NO, LOWSEG IS USUALLY WR
	ITABLE
2)		SETZB	P2,P3		;[1132] CORE PAGE 0, CURRENT ADD
	R IS 0
2)		MOVX	P4,GAPF		;[1132] FLAG NO OLD EXE DIR ENTR
	Y TO WRITE
2)		MOVE	R,RC.SG(R2)	;[1132] POINT TO AREA CONTAINING
	 THIS PSECT
2)		MOVSI	W1,-1000	;[1132] W1 IS AOBJN PTR TO COPY
	OF EXE DIR
2)		HRR	W1,EXEDIR	;[1132]   BEING BUILT IN DY AREA
2)		SETZB	W2,W3		;[1132] INIT IOWD
2)		SKIPN	LW.S1		;[1132] IS JOBDAT STILL IN DY AR
	EA?
2)		JRST	XCMLUP		;[1132] NO (NORMAL CASE), GO STA
	RT WRITING
2)	
2)	
2)	;FALL THROUGH TO NEXT PAGE
2)	
2)59	;FALL IN FROM ABOVE
2)	
2)	;HERE IF THE LOWEST LOCATION IS IN PAGE 1 OR HIGHER, AND THE
2)	;LC AREA IS PAGING TO DISK.
2)	;IF THAT IS THE CASE, THEN JOBDAT IS IN A BLOCK IN THE DY AREA
Digital Equipment Corporation       28-AUG-79    Page 231
PCO Log Report


2)	;POINTED TO BY JOBPTR, INSTEAD OF IN THE LC AREA.
2)	;WHAT WE WANT TO DO NOW IS WRITE JOBDAT INTO THE EXE FILE DIRECT
	LY
2)	;FROM THE DY AREA, THEN JUMP INTO THE MAIN LOOP BELOW TO FINISH
	THE SAVE.
2)	
 
 
2)	;**;[1132] Replace XCMPRJ routine	JNG	30-Jan-79
2)	;**;[1132] This supercedes edit 776 if installed.
2)		HRLOI	W2,-.JBDA-1	;[1132] FORM IOWD TO JOBDAT
2)		ADD	W2,JOBPTR	;[1132] ..
2)		OUT	DC,W2		;[1132] WRITE JOBDAT TO THE EXE
	FILE
2)		  TXCA	P4,DATAF!GAPF!1	;[1132] CLEAR GAPF, SET DATAF, 1
	 PAGE WRITTEN
2)		PUSHJ	P,XCMPER	;[1132] I/O ERROR
2)		USETO	DC,9		;[1132] WRITE ZEROS INTO THE RES
	T OF PAGE 0
2)		SETZ	W2,		;[1132] FLAG NO DATA TO WRITE
2)		JRST	XCMADP		;[1132] GO FIND NEXT PSECT
2)	
2)60	;THIS IS THE MAIN LOOP FOR THE EXE FILE WRITER.
2)	;WE GET BACK HERE ON EACH NEW PSECT, ON EACH NEW BLOCK OF PAGES
2)	;READ IN IF AN AREA HAS OVERFLOWED TO DISK, AND ON EACH PAGE OF
2)	;EACH PSECT.
2)	
2)	XCMLUP:	SKIPE	PAG.S0(R)	;[1132] AREA OVERFLOWING TO DISK
2)		CAMG	P3,UW.S0(R)	;[1132]   AND OFF END OF WINDOW?
2)		CAML	P3,HC.S0(R)	;[1132] NO, BUT OFF END OF SEGME
	NT?
2)		JRST	XCMADV		;[1132] OFF END OF SOMETHING
2)		MOVE	T1,RC.HL(R2)	;[1132] FIRST ADDRESS BEYOND PSE
	CT
2)		SUB	T1,LL.S0(R)	;[1132] CONVERT TO OFFSET IN SEG
	MENT, LIKE P3
2)		CAML	P3,T1		;[1132] OFF END OF PSECT?
2)		JRST	XCMADV		;[1132] YES, GO FIND THE NEXT ON
	E
2)	
2)	
2)	;TIME TO SAVE THE PAGE WHOSE ADDRESS IS IN P3.  SEE IF IT'S ALL
	ZERO
2)	
2)		HRRZ	T1,P3		;[1132] OFFSET INTO SEGMENT
2)		SUB	T1,LW.S0(R)	;[1132] OFFSET INTO CURRENT WIND
	OW
2)		ADD	T1,TAB.LB(R)	;[1132] ADDRESS OF PAGE IN LINK'
	S VAS
2)		SKIPN	W2		;[1132] KNOW BASE OF IOWD YET?
2)		MOVEI	W2,-1(T1)	;[1132] NO, SET IT UP NOW
Digital Equipment Corporation       28-AUG-79    Page 232
PCO Log Report


2)		HRLI	T1,-1000	;[1132] SET UP AN AOBJN PTR TO T
	HE PAGE
2)		SKIPN	(T1)		;[1132] NEXT WORD ZERO?
2)		AOBJN	T1,.-1		;[1132] YES, LOOP OVER ALL THE P
	AGES
2)		JUMPGE	T1,XCMZER	;[1132] JUMP IF PAGE IS ALL ZERO
2)	
2)	
2)	;HERE WHEN THE PAGE IS NON-ZERO
2)	
2)		TXON	P4,DATAF	;[1132] FLAG IN REAL DATA, FIRST
	 TIME?
2)		JRST	XCMNWD		;[1132] YES, START A NEW DIRECTO
	RY ENTRY
2)		ADD	W2,[-1000,,0]	;[1132] NO, JUST BUMP OUTPUT IOW
	D
2)		ADDI	P4,1		;[1132] REMEMBER DATA PAGES WRIT
	TEN
2)		ADD	P2,[1B8]	;[1132] AND REPEAT COUNT FOR THI
	S ENTRY
2)		JRST	XCMADP		;[1132] ADVANCE TO THE NEXT PAGE
2)	
2)	XCMNWD:	TXZ	P4,ZEROF	;[1132] NO LONGER IN A ZERO AREA
2)		TXZN	P4,GAPF		;[1132] WERE WE IN A GAP?
2)		PUSHJ	P,XCMPRD	;[1132] NO, WRITE DIR ENTRY OUT
2)		HRRZ	W2,P3		;[1132] START A NEW IOWD
2)		SUB	W2,LW.S0(R)	;[1132] MAKE ADDR INTO OFFSET FR
	OM WINDOW START
2)		ADD	W2,TAB.LB(R)	;[1132] AND THENCE TO ADDR IN LI
	NK
2)		SUB	W2,[1000,,1]	;[1132] CONVERT TO ONE PAGE IOWD
2)		MOVE	P2,P3		;[1132] COMPUTE NEW PROCESS PAGE
 
 
2)		ADD	P2,LL.S0(R)	;[1132] BY FINDING PROCESS ADDRE
	SS
2)		LSH	P2,-9		;[1132] THEN SHIFTING TO GET A P
	AGE NUMBER
2)		ADDI	P4,1		;[1132] WILL WRITE 1 MORE DATA P
	AGE
2)		JRST	XCMADP		;[1132] GO ADVANCE TO NEXT PAGE
2)	
2)61	;HERE ON AN ALL-ZERO PAGE
2)	
2)	XCMZER:	TXON	P4,ZEROF	;[1132] IS THIS THE FIRST ALL-ZE
	RO PAGE?
2)		JRST	XCMNWZ		;[1132] YES, GO SETUP A NEW DIR
	ENTRY
2)		ADD	P2,[1B8]	;[1132] JUST BUMP REPEAT COUNT
2)		JRST	XCMADP		;[1132] ADVANCE TO THE NEXT PAGE
2)	
Digital Equipment Corporation       28-AUG-79    Page 233
PCO Log Report


2)	
2)	;HERE IF THE ALL-ZERO PAGE IS THE FIRST ONE AFTER DATA OR A GAP.
2)	;IF DATA, WRITE IT OUT AND STORE THE DIR ENTRY. ALWAYS SET UP A
	NEW ENTRY.
2)	
2)	XCMNWZ:	TXZ	P4,DATAF	;[1132] NO LONGER WRITING DATA
2)		TXZN	P4,GAPF		;[1132] NOT IN A GAP. WERE WE?
2)		PUSHJ	P,XCMPRD	;[1132] NO, WRITE THE DATA DIR E
	NTRY
2)		ADDI	P1,(P4)		;[1132] BUMP FILE PAGE COUNT
2)		HLLZS	P4		;[1132] CLEAR ACCUMULATED COUNT
2)		SKIPGE	W2		;[1132] SEEN ANY DATA PAGES?
2)		OUT	DC,W2		;[1132] YES, WRITE THEM
2)		TDZA	W2,W2		;[1132] SUCCESS, CLEAR IOWD
2)		JRST	XCMPER		;[1132] I/O ERROR
2)		MOVE	P2,P3		;[1132] SET UP NEW PROCESS PAGE
2)		ADD	P2,LL.S0(R)	;[1132] BY COMPUTING PROCESS ADD
	RESS
2)		LSH	P2,-9		;[1132] THEN SHIFTING TO A PAGE
	NUMBER
2)	
2)	
2)	;HERE TO ADVANCE TO THE NEXT PAGE.
2)	
2)	XCMADP:	ADDI	P3,1000		;[1132] POINT TO NEXT PAGE
2)		JRST	XCMLUP		;[1132] LOOP BACK TO PROCESS IT
2)	
2)62	;HERE WHEN WE RAN OFF THE END OF THE PSECT, THE SEGMENT, OR THE
	WINDOW.
2)	;FIGURE OUT WHAT TO PROCESS NEXT.
2)	
2)	XCMADV:	SKIPGE	W2		;[1132] ANY DATA STILL TO WRITE?
2)		OUT	DC,W2		;[1132] YES, WRITE IT
2)		  TDZA	W2,W2		;[1132] SUCCESS, CLEAR IOWD POIN
	TER
2)		JRST	XCMPER		;[1132] I/O ERROR
2)		CAML	P3,HC.S0(R)	;[1132] OFF THE END OF THE SEGME
	NT?
2)		JRST	XCMBLK		;[1132] YES, GO WRITE ABZ PAGES
	AND ADVANCE
2)		CAML	P3,RC.HL(R2)	;[1132] OFF END OF PSECT?
2)		JRST	XCMNXP		;[1132] YES, GO FIND THE NEXT ON
	E
2)	
2)	
2)	;HERE IF PAGING AND WE RAN OFF THE END OF THE CURRENT LC/HC WIND
	OW.
2)	;ADVANCE THE WINDOW AND LOOP BACK.
2)	
2)		MOVEM	P3,LW.S0(R)	;[1132] STORE NEW LOWER WINDOW B
	OUND
Digital Equipment Corporation       28-AUG-79    Page 234
PCO Log Report


2)		MOVE	T1,P3		;[1132] VIRTUAL ADDRESS OF 1ST W
	ORD TO READ
2)		ADD	T1,TAB.AB(R)	;[1132] CONVERT TO VIRTUAL ADDRE
	SS OF LAST WORD
2)		SUB	T1,TAB.LB(R)	;[1132]   BY ADDING SIZE OF LC/H
	C AREA
2)		MOVEM	T1,UW.S0(R)	;[1132] STORE NEW UPPER WINDOW B
	OUND
 
 
2)		CAMGE	T1,HC.S0(R)	;[1132] DOES THE AREA CONTAIN TH
	AT MUCH?
2)		JRST	XCMRED		;[1132] YES, JUST GO READ IT IN
2)		SUB	T1,HC.S0(R)	;[1132] NO, FIGURE OUT HOW MUCH
	EXTRA WE HAVE
2)		ANDCMI	T1,.IPM		;[1132] PUT ON THE PAGE BOUND
2)		MOVN	T1,T1		;[1132] DECREMENT THE AB OF THE
	AREA
2)		ADDM	T1,TAB.AB(R)	;[1132]   SO EXTRA SPACE IS AVAI
	LABLE TO OTHERS
2)		ADDM	T1,UW.S0(R)	;[1132] AREN'T GOING TO READ THA
	T MUCH AFTER ALL
2)		MOVE	T1,UW.S0(R)	;[1132] LAST ADDRESS TO READ
2)	XCMRED:	HRL	T1,P3		;[1132] FIRST,,LAST
2)		PUSHJ	P,@TB.IN(R)	;[1132] READ IN THE NEXT WINDOW
2)		JRST	XCMLUP		;[1132] LOOP BACK TO PROCESS THE
	 NEXT PAGE
2)	
2)63	;HERE IF WE RAN OFF THE END OF THIS SEGMENT (LC OR HC).  WRITE E
	NOUGH
2)	;ALLOCATED BUT ZERO PAGES INTO THE EXE DIRECTORY TO ALLOCATE THE
	 REST
2)	;OF THE CURRENT PSECT AS ALL ZEROS.
2)	
2)	XCMBLK:	MOVE	R3,RC.HL(R2)	;[1132] GET FIRST WORD BEYOND PS
	ECT END
2)		ADDI	R3,777		;[1132] LAST WORD TO ALLOCATE +
	A PAGE
2)		ANDCMI	R3,777		;[1132] GET START OF THAT PAGE
2)		SUB	R3,P3		;[1132] COMPUTE EXTRA PAGES THAT
	 NEED ALLOCATING
2)		SUB	R3,LL.S0(R)	;[1132] P3 IS AN OFFSET, BUT R3
	IS AN ADDRESS
2)		JUMPLE	R3,XCMNXP	;[1132] NONE, GO FIND THE NEXT P
	SECT TO PROCESS
2)		TXON	P4,ZEROF	;[1132] WERE WE WRITING ZEROS BE
	FORE THIS?
2)		JRST	XCMBL2		;[1132] NO, MUST START A NEW DIR
	 ENTRY
2)		ADD	P3,R3		;[1132] KEEP OFFSET INTO SEGMENT
	 CORRECT
Digital Equipment Corporation       28-AUG-79    Page 235
PCO Log Report


2)		MOVSI	R3,(R3)		;[1132] PUT COUNT WHERE EXE DIR
	ENTRY WANTS IT
2)		ADD	P2,R3		;[1132] JUST BUMP REPEAT COUNT
2)		JRST	XCMNXP		;[1132] AND GO PROCESS THE NEXT
	PSECT
2)	
2)	
2)	;HERE WHEN WE WANT TO WRITE AN ABZ DIRECTORY ENTRY, BUT WE HAVE
	ANOTHER
2)	;TYPE OF ENTRY IN PROGRESS.  WRITE THE CURRENT ENTRY, THEN START
	 A NEW ONE.
2)	
2)	XCMBL2:	TXZ	P4,DATAF	;[1132] REMEMBER NO LONGER WRITI
	NG DATA
2)		TXZN	P4,GAPF		;[1132] WERE WE IN A GAP?
2)		PUSHJ	P,XCMPRD	;[1132] NO, WRITE THE DIRECTORY
	ENTRY
2)		ADDI	P1,(P4)		;[1132] BUMP FILE PAGE POINTER
2)		HLLZS	P4		;[1132] RESET FILE PAGE COUNT
2)		MOVE	P2,P3		;[1132] FIRST OFFSET TO WRITE
2)		ADD	P2,LL.S0(R)	;[1132] FIRST ADDRESS TO WRITE
2)		LSH	P2,-^D9		;[1132] FIRST PAGE NOT YET WRITT
	EN
2)		ADD	P3,R3		;[1132] KEEP OFFSET INTO SEGMENT
	 CORRECT
2)		MOVSI	R3,-1000(R3)	;[1132] PUT COUNT WHERE EXE DIR
	ENTRY WANTS IT
2)		ADD	P2,R3		;[1132] INSERT REPEAT COUNT FROM
	 ABOVE
2)	
2)	
2)	;HERE TO ADVANCE TO THE NEXT PSECT, IF ANY
2)	
2)	XCMNXP:	PUSHJ	P,ADVPSC	;[1132] CALL A SUBROUTINE TO DO
	THE WORK
2)		  JRST	XCMPRX		;[1132] ALL DONE, GO CLOSE THE F
	ILE
2)		JRST	XCMLUP		;[1132] FOUND ANOTHER PSECT, LOO
	P BACK FOR IT
2)	
2)64	;ADVPSC -- SUBROUTINE TO ADVANCE TO THE NEXT PSECT.
2)	;CALL:
2)	;	SET UP P1-P4 AS IN XCMPRS
2)	;	PUSHJ	P,ADVPSC
 
 
2)	;	  ALL DONE
2)	;	ANOTHER PSECT FOUND
2)	;
2)	;ON THE SKIP RETURN, P1-P4 HAVE BEEN SET UP TO POINT TO THE STAR
	T OF
Digital Equipment Corporation       28-AUG-79    Page 236
PCO Log Report


2)	;THE NEXT PSECT, INCLUDING PSECT PROPERTIES IN P1.
2)	;THIS ROUTINE ALSO CHECKS TO SEE IF THE OVERLAY SYMBOL TABLE NEE
	DS TO
2)	;BE APPENDED AFTER THE PSECT OR SEGMENT THAT JUST GOT WRITTEN, A
	ND
2)	;APPENDS IT IF SO.
2)	
2)	
2)	ADVPSC:
2)	IFN FTOVERLAY,<
2)		CAIN	R,1		;[1132] IN LOW SEGMENT?
2)		CAMGE	P3,HL.S1	;[1132] AND JUST FINISHED IT?
2)		JRST	ADVPS1		;[1132] NO, PROCEED
2)		SKIPL	LNKMAX		;[1132] YES, LOADING OVERLAYS?
2)		SKIPN	JOB116		;[1132] AND SYMBOLS NEED INSERTI
	NG?
2)		JRST	ADVPS1		;[1132] NO, PROCEED
2)		PUSHJ	P,XCMPOV	;[1132] YES, PUT SYMBOLS INTO EX
	E FILE
2)	ADVPS1:
2)	> ;END IFN FTOVERLAY
2)	
2)		ADD	P3,LL.S0(R)	;[1132] P3 WILL BE AN ADDRESS FO
	R THIS ROUTINE
2)		AOS	R,RC.CUR	;[1132] GET PSECT INDEX OF NEXT
	PSECT
2)		CAMG	R,RC.NO		;[1132] IS THERE A NEXT ONE?
2)		JRST	ADVPS2		;[1132] YES, GO PROCESS IT
2)		SOS	(P)		;[1132] GIVE NON-SKIP RETURN
2)		JRST	ADVPS6		;[1132] BUT WRITE CURRENT ENTRY
	FIRST
2)	
2)	
2)	;HERE WHEN THERE IS ANOTHER PSECT, AND R CONTAINS ITS INDEX.
2)	;POINT R AND R2 TO IT, THEN SET UP ITS PSECT PROPERTIES IN R3
2)	
2)	ADVPS2:	MOVE	R2,@RC.TB	;[1132] POINT TO RC BLOCK FOR PS
	ECT
2)		MOVE	R,RC.SG(R2)	;[1132] PUT SEGMENT PSECT IS IN
	INTO R
2)		MOVX	R3,SV%WRT	;[1132] GET ASSUMED PSECT PROPER
	TY
2)		MOVE	T1,RC.AT(R2)	;[1132] GET REAL PSECT PROPERTIE
	S
2)		TXNE	T1,AT.RO	;[1132] EXPLICITLY READ-ONLY?
2)		TXZ	R3,SV%WRT	;[1132] YES, CLEAR WRITE BIT
2)		CAIE	R,2		;[1132] IS THIS THE HIGH SEGMENT
	?
2)		JRST	ADVPS4		;[1132] NO, PSECT PROPERTIES OK
	AS THEY ARE
2)	IFE TOPS20,<
Digital Equipment Corporation       28-AUG-79    Page 237
PCO Log Report


2)		TXO	R3,SV%HIS	;[1132] TOPS-10 HIGH SEG, READ-O
	NLY
2)		TXNN	T1,AT.RW	;[1132] EXPLICITLY WRITE-ENABLED
	?
2)		TXZ	R3,SV%WRT	;[1132] NO, WRITE-LOCK IT
2)		MOVE	T1,SSEXT	;[1132] GET SAVE/SSAVE FLAGS
2)		TXNE	T1,SS.SHR	;[1132] USER TYPE /SSAVE?
2)	> ;END IFE TOPS20
2)		TXO	R3,SV%SHR	;[1132] /SSAVE OR TOPS-20, MARK
	SHARABLE
2)	
2)	;FALL INTO NEXT PAGE
2)	
2)65	;HERE WHEN PSECT PROPERTIES COMPUTED IN R3.
2)	;NOW DETERMINE WHETHER TO STORE THIS DIRECTORY ENTRY AND START A
	NOTHER,
2)	;OR TO JUST LET THIS ONE CONTINUE.
2)	;CAN ONLY LET THIS ONE CONTINUE IF NEXT PSECT IS ADJACENT WITH S
	AME PROPERTIES.
 
 
2)	
2)	ADVPS4:	MOVE	T1,RC.IV(R2)	;[1132] GET BOTTOM OF NEW PSECT
2)		ANDCMI	T1,777		;[1132] ROUND DOWN TO PAGE BOUND
2)		CAMLE	T1,P3		;[1132] IS THERE A PSECT GAP HER
	E?
2)		JRST	[MOVE P3,T1	;[1132] YES, START NEXT LOOP AT
	BASE OF NEW ONE
2)			JRST ADVPS6]	;[1132] AND GO DUMP THIS DIRECTO
	RY ENTRY
2)		MOVE	T2,R3		;[1132] COPY OF PSECT PROPERTIES
2)		XOR	T2,P1		;[1132] COMPARE WITH OLD
2)		TXNN	T2,777B8	;[1132] SAME AS LAST TIME?
2)		JRST	ADVPS8		;[1132] YES, CAN CONTINUE CURREN
	T DIR ENTRY
2)	
2)	
2)	;ENTER HERE IF ALL DONE TO WRITE OUT THE LAST DIRECTORY ENTRY AN
	D RETURN.
2)	
2)	ADVPS6:	TXC	P4,DATAF!ZEROF	;[1132] XCMPRD WANTS THE FLAGS R
	EVERSED
2)		TXNN	P4,GAPF		;[1132] IN A GAP FROM LAST TIME?
2)		PUSHJ	P,XCMPRD	;[1132] NO, WRITE CURRENT DIR EN
	TRY
2)		ADDI	P1,(P4)		;[1132] BUMP FILE PAGE COUNT
2)		MOVX	P4,GAPF		;[1132] FLAG NOW IN A GAP, CLEAR
	 RH P4
2)	ADVPS8:	SUB	P3,LL.S0(R)	;[1132] MAKE P3 AN OFFSET INTO N
	EW SEGMENT
2)		TXZ	P1,777B8	;[1132] CLEAR OLD PSECT PROPERTI
Digital Equipment Corporation       28-AUG-79    Page 238
PCO Log Report


	ES
2)		IOR	P1,R3		;[1132] SET NEW PSECT PROPERTIES
2)		JRST	CPOPJ1		;[1132] GIVE GOOD RETURN TO CALL
	ER
2)	
**************
1)58		TLNE	P4,ZEROF	;[704] ZEFO PAGE?
1)		HLLZS	(W1)		;YES, SO NO FILE PAGES
1)		PUSHJ	P,XCMPXD	;SECOND WORD
1)		MOVEM	P2,(W1)		;
1)		LDB	T3,[POINT 9,P2,8]	;GET REPEAT COUNT
1)		TLNE	P4,DATAF	;[704] DATA PAGE?
1)		ADDI	P1,1(T3)	;INCREMENT FILE PTR
1)		ADDI	P2,1(T3)	;AND PROCESS PTR
1)		TXZ	P2,777B8	;CLEAR REPEAT COUNT
1)		POPJ	P,
1)	
1)	;HERE IF WE HAVE A PAGE OF ALLOCATED ZEROES
1)	
1)	XCMPR2:	ADD	P2,[1B8]	;INCREMENT REPEAT COUNT
1)		TLO	P4,ZEROF	;[704] WE GOT A ZERO PAGE
1)		TLZ	P4,DATAF+GAPF	;[704] OFF OTHER FLAGS
1)		JRST	XCMPR0		;GET NEXT PAGE
1)	
1)	;HERE IF NON-ZERO FOUND
1)	;IF WE WERE OUTPUTTING DATA LAST, JUST INCREMENT REPEAT COUNT
1)	;IF NOT, UPDATE DIRECTORY
1)	
1)	XCMPR3:	SETZ	T2,		;MAKE SURE
1)		OUT	DC,T1		;OUTPUT THIS PAGE
1)		  CAIA			;OK
1)		JRST	XCMPER
1)		TLNE	P4,DATAF	;[704] LAST PAGE WAS ALSO DATA?
1)		JRST	[ADD	P2,[1B8]	;[704] BUMP REPEAT COUNT
1)			JRST	XCMPR0]		;[704]
1)		TLNN	P4,GAPF		;[704] NO, LAST PAGE GAP THEN SK
	IP
1)		PUSHJ	P,XCMPRD	;[704] NO, MUST BE ZERO, OUTPUT
	DIR
 
 
1)		TLO	P4,DATAF	;[704] SET DATAF
1)		TLZ	P4,GAPF+ZEROF	;[704] OFF WITH OTHERS
1)		JRST	XCMPR0		;[704] GET NEXT PAGE
1)	
1)	
1)	
1)59	
1)	XCMPRH:	TLNN	T1,777		;A PARTIAL WORD?
1)		JRST	XCMPR8		;NO
1)		MOVE	T1,P1		;GET FILE PTR
Digital Equipment Corporation       28-AUG-79    Page 239
PCO Log Report


1)		LSH	T1,2		;IN BLOCKS
1)		USETO	DC,1(T1)	;ALLOCATE REMAINDER
1)	XCMPR8:	MOVE	T1,HC.S0(R)	;GET HIGHEST DATA LOCATION
1)		MOVE	T3,HL.S0(R)	;AND HIGHEST ALLOCATEDLOCATION
1)		IORI	T1,777		;PUT ON PAGE BOUNDARY
1)		IORI	T3,777		;...
1)		SUB	T3,T1		;SEE IF SAME PAGE
1)		JUMPE	T3,XCMPR9	;YES
1)		HRL	P2,T3		;[733] P2 HAS RIGHT PROCESS PAGE
1)		SUB	P2,[1B8]	;[733] REPEAT COUNT IS ONE LESS
	IN LH
1)		PUSHJ	P,XCMPXD	;SEE IF ENOUGH ROOM
1)		HLLZM	P1,(W1)		;STORE FLAGS
1)		PUSHJ	P,XCMPXD	;
1)		MOVEM	P2,(W1)		;[733] STORE ALLOCATED BUT ZERO
	PAGES
1)	XCMPR9:	SKIPE	PAG.S0(R)	;A TEMP FILE STILL?
1)		PUSHJ	P,@[EXP LC.DLT,HC.DLT]-1(R)	;YES, GET RID OF
	 IT
1)		CAIE	R,1		;JUST DUMPED LOW CORE?
1)		JRST	[CAIE	R,2		;JUST DUMPED HIGH CORE?
1)			JRST XCMPHG		;NO, GO CHECK HIGH
1)			JRST XCMPRX]		;YES, FINISH UP
1)	IFN FTOVERLAY,<
1)		SKIPL	LNKMAX		;YES, SEE IF ANY OVERLAY?
1)		SKIPN	JOB116		;ANY SYMBOLS TO DUMP?
1)		JRST	XCMPHG		;NO, GO CHECK HIGH
1)		JRST	XCMPOV		;YES, GO DUMP OVERLAY SYMBOL
1)	>
1)	
1)	
1)60	IFN FTOVERLAY,<
1)	;HERE IF OVERLAY AND LOCAL SYMBOLS OF ROOT MODULES ARE TO BE DUM
	PED
1)	;FIRST SET UP EXE FILE DIRECTORY ENTRIES FOR THE
1)	;ZERO PAGES BETWEEN LOW CORE AND THE SYMBOL TABLE
1)	;AND THE SYMBOLS.
1)	;ALSO, ZEROS GET PADDED IN FRONT IS LOCAL SYMBOLS DON'T
1)	;START AT A VIRTUAL PAGE BOUND
1)	;
1)	
1)	XCMPOV:	PUSHJ	P,XCMPXD	;INCREMENT W1 AND SEE IF ENOUGH
	ROOM?
1)		HLLZM	P1,(W1)		;FLAGS+0 FILE PAGE
1)		PUSHJ	P,XCMPXD	;ENOUGH ROOM?
1)		MOVEM	P2,0(W1)	;CORE-PAGE
1)		HRRZ	T1,JOB116	;START ADDR. FOR LOCAL SYMBOLS
1)		MOVE	T3,T1
1)		IDIVI	T1,1000		;T1/PAGE #   T2/ZERO WORDS
1)		SUBM	T1,P2		;GET THE NUMBER OF ZERO PAGES
1)		SUBI	P2,1
Digital Equipment Corporation       28-AUG-79    Page 240
PCO Log Report


 
 
1)		DPB	P2,[POINT 9,0(W1),8]	;DEPOSIT AS THE REPEAT C
	OUNT
1)		PUSHJ	P,XCMPXD	;ENOUGH ROOM?
1)		MOVEM	P1,(W1)		;FLAGS+FILE PAGE#
1)		PUSHJ	P,XCMPXD	;ENOUGH ROOM?
1)		MOVEM	T1,0(W1)	;CORE PAGE #
1)		ADD	T3,LSYM		;GET REPEAT COUNT FROM START+LEN
	GTH
1)		LSH	T3,-9		;CONVERT TO PAGE
1)		SUB	T3,T1		;TAKE AWAY STARTING PAGE COUNT
1)		ADD	P1,T3		;[725] INCREMENT PROCESS PAGE
1)		SUBI	T3,1
1)		DPB	T3,[POINT 9,0(W1),8]	;REPEAT COUNT
1)		MOVE	P2,T2		;# OF ZEROS IN FRONT
1)		MOVEI	T2,200		;GET A 200 WORD
1)		PUSHJ	P,DY.GET##	;SCRATCH BLOCK
1)		MOVEM	T1,SCRTCH		;SAVE IT, SO WE CAN GIVE
	 BACK
1)		SUBI	T1,1		;MAKE IT IOWD
1)		HRLI	T1,-200		;
1)		SETZ	T2,
1)	XCMPO1:	CAIGE	P2,200		;MORE THAN 200 ZEROS?
1)		JRST	XCMPO2		;NO,
1)		OUT	DC,T1		;YES, OUTPUT A BLOCK OF ZEROES
1)		JRST	[SUBI P2,200
1)			JRST XCMPO1]
1)		JRST	XCMPER
1)	
1)	
1)	
1)61	
1)	;HERE IF LOCAL SYMBOLS ARE PAGED
1)	;
1)	
1)	XCMPO2:	PUSH	P,T1		;SAVE IOWD TO SCRATCH FOR A WHIL
	E
1)		SKIPN	PAG.LS		;PAGED?
1)		JRST	XCMPLS		;NO
1)		HRLZ	T1,LW.LS	;YES, GO OUTPUT CURRENT WINDOW
1)		HRR	T1,LSYM
1)		PUSHJ	P,LS.OUT##
1)		SETZM	LW.LS		;START AT LOWEST LOCATION
1)		SKIPN	HC.S2		;GET MORE CORE AREA--ANY HIGH?
1)		JRST	XCMPP1		;NO
1)		MOVE	T1,HC.AB	;YES,
1)		MOVEM	T1,HC.UB
1)		JRST 	XCMPP2
1)	XCMPP1:	MOVE	T1,LC.AB
1)		MOVEM	T1,LC.UB
Digital Equipment Corporation       28-AUG-79    Page 241
PCO Log Report


1)	XCMPP2:	ADDI	T1,1
1)		MOVEM	T1,LS.LB	;NEW LOWER BOUND
1)		MOVE	T2,.JBREL	;NEW UPPER BOUND
1)		MOVEM	T2,LS.UB
1)		SUBM	T2,T1		;GET LEGTH OF CORE AVAILABLE
1)		SETZ	R,
1)		MOVEM	T1,UW.LS	;WE HAVE UPPER WINDOW
1)		CAMGE	T1,LSYM		;WINDOW BIG ENOUGH FOR ALL?
1)		JRST	[PUSHJ	P,LS.IN##	;NO, READ IN AS MUCH AS
	WE CAN
1)			JRST XCMPO3]
1)		MOVE	T1,LSYM		;YES, JUST READIN WHAT WE HAVE
 
 
1)		IORI	T1,.IPM
1)		MOVE	T2,T1
1)		ADD	T2,LS.LB	;
1)		MOVEM	T2,LS.AB	;AND UPDATE
1)		PUSHJ	P,LS.IN##
1)		PUSHJ	P,LS.DLT	;GO DELETE THE TMP FILE
1)		JRST	XCMPO3		;GO FIX UP FIRST BLOCK
1)	
1)	;DUMP LOCAL SYMBOLS--HERE ONLY IF NOT PAGED
1)	
1)	XCMPLS:	MOVEI	R,LS.IX-1	;SEE WHO HAS CORE RIGHT BELOW IT
1)		SKIPN	T2,TAB.UB(R)	;LOOK FOR NON-ZERO
1)		SOJGE	R,.-1		;IT'S ZERO, DECREMENT INDEX
1)		SUB	T2,TAB.AB(R)	;GET LENTH OF GAP
1)		SETZ	R,		;KEEP COUNT OF LEGTH OF LS ALREA
	DY OUT
1)		CAMGE	T2,P2		;IS THE GAP BIT ENOUGH?
1)		JRST	XCMPO3		;NO, GO FIXUP FIRST BLOCK
1)		HRLS	P2,P2		;YES, BORROW WHAT WE NEED
1)		MOVE	R,LSYM		;UPDATE R SO WE KNOW ITS END
1)		MOVE	T1,LS.LB	;SET UP IOWD
1)		HLL	T1,JOB116	;IN T1
1)		SUB	T1,P2		;ADJUST BY NUMBER OF ZEROS
1)		SUBI	T1,1
1)		SETZ	T2,		;MAKE SURE ENDS WITH ZERO
1)		JRST	XCMPO4		;GO DO OUTPUT
1)	
1)62	
1)	
1)	XCMPO3:	POP	P,T1		;GET IOWD TO SCRATCH BACK FROM S
	TACK
1)		MOVEI	T2,201(T1)	;USE SCRATCH SPACE
1)		MOVEI	P1,1(T1)	;GET START OF THE AREA
1)		ADD	P1,P2		;GET WHERE DATA SHOULD GO
1)		HRL	P1,LS.LB
1)		BLT	P1,(T2)
1)		MOVE	T4,LS.AB	;
Digital Equipment Corporation       28-AUG-79    Page 242
PCO Log Report


1)		SUB	T4,LS.LB	;LENTH IN CORE
1)		ADDI	T4,1		;NUMBER OF WORDS TO BE READ IN
1)		CAMGE	T4,LSYM		;WOULD WE HAVE READ ALL?
1)		JRST	[MOVNI	T3,-200(T4)	;NO, NUMBER OF WORDS TO
	DUMP
1)			MOVE	R,T4
1)			SUBI	R,(P2)
1)			JRST	XCMPO5]
1)		MOVN	T3,LSYM		;YES, NUMBER OF WORDS TO DUMP
1)		SUBI	T3,-200(P2)	;LESS BY DATA BLT TO SCRATCH BLO
	CK
1)		MOVE	R,LSYM
1)	XCMPO5:	MOVE	T2,LS.LB	;GET BEGINNING OF DATA
1)		SUBI	T2,-200(P2)	;ADJUST IT TO EXCLUDE DATA TO SC
	RATCH
1)		SUBI	T2,1		;1 LESS FOR IOWD
1)		HRL	T2,T3		;MINUS LENGTH IN LH OF IOWD
1)		PUSH	P,T2		;SAVE IOWD, NEED IT LATER IF PAG
	ED
1)		SETZ	T3,		;MAKE SURE LIST END WITH  ZERO
1)	XCMPO4:	OUT	DC,T1
1)		CAIA
1)		JRST	XCMPER
1)		CAML	R,LSYM		;FINISHED?
1)		JRST	[POP	P,0(P)		;YES, RESTORE STACK
 
 
1)			MOVEI	R,1		;INDICATE WE JUST DID LO
	W SEG
1)			MOVE	T1,SCRTCH	;GIVE BACK THE SCRATCH S
	PACE
1)			MOVEI	T2,200		;OF 200 WORDS
1)			PUSHJ	P,DY.RET##
1)			SKIPE	PAG.LS		;STILL A TEMP FILE?
1)			PUSHJ	P,LS.DLT	;YES, DELETE IT
1)			JRST	XCMPHG]		;GO CHECK HIGH CORE
1)	
1)	;FALL THROUGH TO NEXT PAGE
1)	
1)63	;HERE TO DUMP THE NEXT BLOCK OF SYMBOLS, IF NEEDED
1)	
1)		MOVE	T1,LW.LS	;GET LOWER WINDOW
1)		ADDI	T1,-200(T4)	;INCRREMENT IT
1)		MOVEM	T1,LW.LS	;NEW LOWER WINDOW
1)		ADD	T1,T4		;ADD THE NUMBER OF WORDS TO BE R
	EAD
1)		CAML	T1,LSYM		;EXCEEDED THE END?
1)		MOVE	T1,LSYM		;YES, READ ONLY WHAT WE NEED
1)		MOVE	R,T1		;UPDATE R
1)		MOVEM	T1,UW.LS	;UPDATE UPPER WINDOW
1)		HRL	T1,LW.LS	;LOW WINDOW IN LH FOR LS.IN
Digital Equipment Corporation       28-AUG-79    Page 243
PCO Log Report


1)		PUSHJ	P,LS.IN##	;GO READ IT
1)		HRRZ	T1,T1		;GET NEW OUTPUT LENGTH
1)		SUB	T1,LW.LS
1)		ADDI	T1,-200(P2)	;ADJUST IT BY PREVIOUS OUT
1)		MOVN	T3,T1		;NEGATE IT AND SAVE IN CASE  AT
	END
1)		MOVE	T1,LW.LS	;GET LOWER WINDOW
1)		MOVE	T1,0(P)		;GET IOWD FROM STACK
1)		CAML	R,LSYM		;AT END, NEED TO FISUP THE LH
1)		HRL	T1,T3		;YES,
1)		SETZ	T2,	;END LIST WITH ZERO
1)		JRST	XCMPO4		;GO OUTPUT
1)	
1)	>
1)	
1)64	XCMPHG:	SKIPN	HC.LB		;ANY HIGH SEGMENT?
1)		JRST	XCMPRX		;NO, FINISH UP
1)		SKIPN	PAG.S2		;PAGING?
1)		JRST	XCMPRN		;NO,
1)		MOVE	T1,HC.AB	;GET TOP
1)		SUB	T1,HC.LB	;LENTH
1)		ADDI	T1,1		;ROUND UP
1)		ANDCMI	T1,777		;MAKE SURE ON PAGE BOUNDARY
1)		SUBI	T1,1		;GET CORRESPONDING UPPER BOUND
1)		MOVEM	T1,PAG.S2	;RESET WINDOW
1)		ADD	T1,HC.LB	;
1)		MOVEM	T1,HC.AB	;AND CORE BOUND
1)	XCMPRN:	MOVE	T1,SSEXT	;GET TYPE BITS
1)		HRRZ	P1,P1		;CLEAR FLAGS
1)	IFE TOPS20,<
1)		TXO	P1,SV%HIS	;HIGH ALWAYS FOR -10
1)		TXNE	T1,SS.SHR	;SHAREABLE?
1)	> ;END OF IFE TOPS20
1)		TXO	P1,SV%SHR	;YES,
1)		MOVE	T1,HC.LB	;START OF HI SEG
1)		SUBI	T1,1		;IOWD IS 1 LESS
 
 
1)		MOVE	P2,LL.S2	;GET ORIGIN
1)		LSH	P2,-9		;IN PAGES
1)		SETZB	P3,P4		;RESET FLAGS
1)		MOVE	T3,HC.S2	;GET LENGTH OF HI SEG
1)		CAIL	T3,1000		;LESS THAN 1 PAGE
1)		AOJA	R,XCMPRL	;NOW SAVE HIGH SEGMENT
1)		MOVN	T3,T3		;YES, GET ACTUAL WORD COUNT
1)		HRL	T1,T3		;JUST OUTPUT THAT MUCH
1)		AOJA	R,XCMPR7	;OF HIGH SEGMENT
1)	
1)65	
1)	
1)	
Digital Equipment Corporation       28-AUG-79    Page 244
PCO Log Report


1)	XCMPRX:
1)	IFN TOPS20,<
****
2)66	;**;[1132] Change @ XCMPRD+2L	JNG	30-Jan-79
2)		TXNN	P4,ZEROF	;[1132] ZERO PAGE? (FLAGS ALREAD
 
	Y CHANGED)
2)		HLLZS	(W1)		;YES, SO NO FILE PAGES
2)		PUSHJ	P,XCMPXD	;SECOND WORD
2)		MOVEM	P2,(W1)		;[1132]
2)		POPJ	P,		;[1132]
2)	
2)67	;HERE TO ALLOCATE A DIRECTORY ENTRY IF SUFFICIENT ROOM EXISTS.
2)	;IF NOT, EXTEND THE FILE BY ONE PAGE TO MAKE ROOM FOR ANOTHER
2)	;PAGE OF DIRECTORY.
2)	
2)	;**;[1132] Move up from below and revamp	JNG	30-Jan-7
	9
2)	XCMPXD:	AOBJN	W1,CPOPJ	;ALLOCATE IF ENOUGH ROOM
2)	
2)	
2)	;WRITE THE CURRENT PAGE OF THE EXE DIRECTORY TO DISK.
2)	;THEN START FROM THE FRONT OF THE FILE, AND FIX ALL PAGES OF
2)	;EXE DIRECTORY PRESENT, INCLUDING THE ONE WE JUST WROTE.
2)	
2)		HRLOI	T3,-1000-1	;[1132] FORM IOWD TO IN CORE EXE
	 DIRECTORY
2)		ADD	T3,EXEDIR	;[1132] ..
2)		SETZ	T4,		;[1132] TERMINATE IO LIST
2)		USETO	DC,@EXEBLK	;[1132] SET TO LATEST EXE DIRECT
	ORY BLOCK
2)		OUT	DC,T3		;[1132] WRITE THE DIRECTORY
2)		  CAIA			;[1132] SUCCESS
2)		JRST	XCMPER		;[1132] IO ERROR
2)		MOVEI	W1,1		;[1132] NOW LOOP OVER DIR, START
	ING AT BLOCK 1
2)	XCMPXE:	USETI	DC,@W1		;[1132] SET ON NEXT PAGE OF EXE
	DIR
2)		IN	DC,T3		;[1132] READ IT INTO SCRATCH PAG
	E
2)		  CAIA			;[1132] OK
2)		JRST	XCMPER		;[1132] FAILED
2)		MOVE	T2,EXEDIR	;[1132] NOW SETUP AOBJN PTR TO E
	XE DIR PAGE
2)		HRLI	T2,-400		;[1132] COUNT OF DIR ENTRIES THI
	S PAGE
2)	XCMPXF:	MOVE	T1,1(T2)	;[1132] GET 1ST WORD OF NEXT ENT
	RY
2)		TRNE	T1,-1		;[1132] AN ABZ POINTER?
2)		AOS	1(T2)		;[1132] NO, BUMP THE FILE PAGE N
	UMBER
Digital Equipment Corporation       28-AUG-79    Page 245
PCO Log Report


2)		ADDI	T2,1		;[1132] SKIP 2ND WORD OF THIS DI
	R ENTRY
2)		AOBJN	T2,XCMPXF	;[1132] LOOP OVER THE ENTIRE PAG
	E
2)		USETO	DC,@W1		;[1132] POINT TO WHERE WE GOT TH
	E PAGE
2)		OUT	DC,T3		;[1132] PUT IT BACK, SLIGHTLY MO
	DIFIED
 
 
2)		  CAIA			;[1132] OK
2)		JRST	XCMPER		;[1132] I/O ERROR
2)		ADDI	W1,4		;[1132] BLOCK NUMBER OF NEXT PAG
	E
2)		CAMG	W1,EXEBLK	;[1132] MORE DIRECTORY PAGE(S) T
	O PROCESS?
2)		JRST	XCMPXE		;[1132] YES, PROCESS THEM
2)		MOVEM	W1,EXEBLK	;[1132] PAGE WE'RE FREEING UP FO
	R MORE DIRECTORY
2)	
2)68	;FALL IN FROM ABOVE
2)	
2)	;NOW TO LOOP OVER THE FILE BACKWARDS, MOVING ALL OF THE DATA PAG
	ES
2)	;ONE PAGE HIGHER.
2)	
2)		MOVEI	W1,-1(P1)	;[1132] LAST PAGE WRITTEN
2)		ADDI	W1,0(P4)	;[1132] PLUS ANY FOUND IN THIS D
	IR ENTRY
2)		ASHC	W2,-^D27	;[1132] NEED TO LOOK AT IOWD, SI
	NCE PAGES
2)		ADD	W1,W2		;[1132]   IT POINTS TO HAVEN'T B
	EEN WRITTEN
2)		ASHC	W2,^D27		;[1132] RESET IOWD TO PREVIOUS V
	ALUE
2)		SETZ	W3,		;[1132] CLEAR SIGN BIT LEFT FROM
	 ASHC
2)		LSH	W1,2		;[1132] CONVERT PAGE TO BLOCK NU
	MBET
2)		ADDI	W1,1		;[1132] BLOCK NUMBERS START AT 1
2)		MOVEI	T2,10(W1)	;[1132] REMEMBER NEXT BLOCK TO W
	RITE FOR LATER
2)	XCMPXG:	CAMGE	W1,EXEBLK	;[1132] ANY DATA PAGES LEFT TO C
	OPY?
2)		JRST	XCMPXH		;[1132] NO, GO FINISH UP
2)		USETI	DC,@W1		;[1132] POINT TO NEXT DATA PAGE
2)		IN	DC,T3		;[1132] READ IT
2)		  CAIA			;[1132] OK
2)		JRST	XCMPER		;[1132] ERROR
2)		OUT	DC,T3		;[1132] WRITE IT INTO THE NEXT P
	AGE
Digital Equipment Corporation       28-AUG-79    Page 246
PCO Log Report


2)		  CAIA			;[1132] OK
2)		JRST	XCMPER		;[1132] ERROR
2)		SUBI	W1,4		;[1132] BACK UP ONE MORE DATA BL
	OCK
2)		JRST	XCMPXG		;[1132] LOOP OVER ALL DATA PAGES
2)	
2)	
2)	;HERE WHEN THE DIRECTORY AND THE FILE HAVE BEEN UPDATED.
2)	;FIX THE POINTERS THAT OUR CALLERS LOOK AT, THEN RETURN.
2)	
2)	XCMPXH:	USETO	DC,@T2		;[1132] NEXT WRITE TO NEXT FREE
	BLOCK
2)		ADDI	P1,1		;[1132] THIS DIR ENTRY IS ONE OF
	F TOO
2)		MOVE	W1,EXEDIR	;[1132] RESET DIR AOBJN PTR FOR
	NEXT CALL
2)		HRLI	W1,-1000	;[1132] SET UP COUNT FOR INITIAL
	 AOBJN
2)		HRLZ	T1,W1		;[1132] NOW ZERO THE DY AREA BLO
	CK
2)		HRRI	T1,1(W1)	;[1132] ..
2)		SETZM	0(W1)		;[1132] ..
2)		BLT	T1,777(W1)	;[1132] ..
2)		POPJ	P,		;[1132] RETURN TO CALLER
2)	
2)69	IFN FTOVERLAY,<
2)	
2)	;HERE WHEN GENERATING AN EXE FILE FOR THE ROOT OF AN OVERLAID PR
	OGRAM,
2)	;AND IT IS TIME TO INSERT THE LOCAL SYMBOLS FROM THE LS AREA INT
	O THE
2)	;EXE FILE.  ALL ZEROS BEFORE THE SYMBOLS AND THE FIRST PARTIAL P
	AGE OF
2)	;SYMBOLS HAVE ALREADY BEEN COPIED INTO THE EXE FILE, SINCE THEY
	WERE
2)	;PUT INTO THE LC AREA AT JBEXE.
2)	
2)	XCMPOV:	HRRZ	T1,JOB116	;[1132] SYMBOLS ARE NOT PAGE ALI
	GNED IN LS
 
 
2)		ANDI	T1,777		;[1132] SO PUT OFFSET TO FIRST S
	YM IN R3
2)		MOVEI	R3,1000		;[1132] OFFSET IS REST OF PAGE N
	OT COPIED
2)		SUB	R3,T1		;[1132]   AT JBEXE
2)		SETZB	R2,P3		;[1132] ASSUME LS AREA ISN'T PAG
	ING
2)		SKIPN	PAG.LS		;[1132] IS THE LS AREA PAGING?
2)		JRST	XOVDMP		;[1132] NO, JUST DUMP IT TO THE
	EXE FILE
Digital Equipment Corporation       28-AUG-79    Page 247
PCO Log Report


2)		MOVE	T1,LW.LS	;[1132] CALCULATE UPPER WINDOW
2)		ADD	T1,LS.AB	;[1132] FROM LOWER WINDOW + SIZE
2)		SUB	T1,LS.LB	;[1132] SO WE CAN WRITE OUT CURR
	ENT LS AREA
2)		MOVEM	T1,UW.LS	;[1132] SAVE IT IN CASE IT WAS -
	1
2)		HRL	T1,LW.LS	;[1132] FIRST,,LAST FOR LS.OUT
2)		PUSHJ	P,LS.OUT	;[1132] UPDATE THE DISK COPY
2)		PUSHJ	P,FR.CNT##	;[1132] SEE HOW MUCH ROOM IS LEF
	T
2)		MOVE	T2,LSYM		;[1132] COUNT OF WORDS IN THE LS
	 AREA
2)		SUBI	T2,1		;[1132] CONVERT FIRST FREE TO LA
	ST USED
2)		IORI	T2,777		;[1132] ROUND UP TO PAGE END
2)		MOVE	T3,LS.AB	;[1132] FIND CURRENT SIZE OF LS
	AREA
2)		SUB	T3,LS.LB	;[1132] AS END - START
2)		CAMG	T2,T3		;[1132] IS AREA BIG ENOUGH?
2)		JRST	XOVNXW		;[1132] YES, JUST DUMP IT TO THE
	 FILE
2)		SUB	T2,T3		;[1132] EXTRA WE NEED
2)		CAMLE	T1,T2		;[1132] LESS THAN WE HAVE?
2)		MOVE	T1,T2		;[1132] YES, DON'T ASK FOR MORE
	THAN WE NEED
2)		SETOM	LS.PP		;[1132] DON'T PAGE THE LS AREA T
	O SATISFY THIS
2)		SPUSH	<P1,P2>		;[1132] SAVE CURRENT EXE DIR ENT
	RY
2)		MOVEI	P1,LS.IX	;[1132] EXPAND THE LS AREA
2)		MOVE	P2,T1		;[1132] BY THIS MUCH
2)		PUSHJ	P,LNKCOR##	;[1132] GO SHUFFLE
2)		  PUSHJ	P,NO.COR##	;[1132] FR.CNT LIED!!
2)		SPOP	<P2,P1>		;[1132] RESTORE THE SACRED COWS
2)		SETZM	LS.PP		;[1132] LS AREA CAN PAGE NOW
2)	
2)	;FALL INTO NEXT PAGE
2)	
2)70	;FALL IN FROM ABOVE
2)	
2)	;HERE WHEN THE LS AREA IS PAGING TO BRING THE NEXT WINDOW OF SYM
	BOLS
2)	;IN TO BE WRITTEN TO THE EXE FILE.  P3 HAS THE FIRST ADDRESS TO
	READ IN
2)	;STORED IN IT, AND WE WILL PUT THE COUNT OF HOW FAR THIS PASS FA
	ILED TO
2)	;FINISH BY IN R2.
2)	
2)	XOVNXW:	MOVEM	P3,LW.LS	;[1132] INIT LOWER WINDOW
2)		ADD	P3,LS.AB	;[1132] NOW COMPUTE UPPER WINDOW
2)		SUB	P3,LS.LB	;[1132] AS LOWER+SIZE
Digital Equipment Corporation       28-AUG-79    Page 248
PCO Log Report


2)		MOVEM	P3,UW.LS	;[1132] STORE FOR LS.IN
2)		ANDCMI	P3,777		;[1132] FIRST TO READ NEXT TIME
2)		MOVE	R2,LSYM		;[1132] END OF SYMBOLS
2)		SUBI	R2,1		;[1132] LAST WORD CONTAINING SYM
	BOLS
2)		IORI	R2,777		;[1132] THE END OF THAT PAGE
2)		SUB	R2,UW.LS	;[1132] FIND OUT HOW FAR YET TO
	GO
2)		JUMPGE	R2,XOVNX2	;[1132] ALL OK UNLESS THIS TIME
	WILL END IT
2)		ADDM	R2,LS.AB	;[1132] REDUCE SIZE OF WINDOW
2)		ADDM	R2,UW.LS	;[1132] AND LAST ADDRESS IN WIND
	OW
2)	XOVNX2:	HRLZ	T1,LW.LS	;[1132] SET UP LOWEST,,HIGHEST
2)		HRR	T1,UW.LS	;[1132] FOR LS.IN
2)		PUSHJ	P,LS.IN		;[1132] READ IN THE NEXT BLOCK O
	F SYMBOLS
 
 
2)		JUMPLE	R2,XOVDMP	;[1132] IF LAST TIME, WRITE ALL
	OF LS AREA
2)		MOVE	T1,UW.LS	;[1132] NOT LAST TIME, ONLY WRIT
	E THROUGH
2)		ANDCMI	T1,777		;[1132]   FIRST PART OF LAST PAG
	E
2)		TROA	T1,R3		;[1132] WILL GET REST OF THAT PA
	GE NEXT PASS
2)	XOVDMP:	MOVE	T1,LSYM		;[1132] LAST TIME, WRITE THROUGH
	 THE END
2)		MOVE	W2,LW.LS	;[1132] PUT IOWD TO SYMBOLS TO W
	RITE IN W2
2)		ADD	W2,R3		;[1132] DON'T START AT BEGINNING
	 OF LS
2)		SUB	W2,T1		;[1132] -COUNT IS FIRST-LAST
2)		HRLZ	W2,W2		;[1132] -COUNT,,0
2)		HRR	W2,LS.LB	;[1132] -COUNT,,BOTTOM OF LS ARE
	A
2)		ADDI	W2,-1(R3)	;[1132] BUT DON'T START WRITING
	AT START
2)		OUT	DC,W2		;[1132] WRITE THE SYMBOLS
2)		  TDZA	W2,W2		;[1132] CLEAR W2 AGAIN IN CASE D
	ONE
2)		JRST	XCMPER		;[1132] I/O ERROR
2)		JUMPG	R2,XOVNXW	;[1132] IF NOT DONE, LOOP BACK T
	O TRY AGAIN
2)		SKIPE	PAG.LS		;[1132] ALL DONE, ANY TEMP FILE?
2)		PUSHJ	P,LS.DLT	;[1132] YES, DELETE IT
2)		PUSHJ	P,LS.ZAP	;[1132] ALL DONE WITH LS AREA
2)	
2)	;FALL INTO NEXT PAGE
2)	
Digital Equipment Corporation       28-AUG-79    Page 249
PCO Log Report


2)71	;FALL IN FROM ABOVE
2)	
2)	;NOW THAT THE DATA HAS BEEN WRITTEN, UPDATE THE EXE DIRECTORY TO
2)	;REFLECT THE CHANGE.  ALSO ZERO THE REST  OF THE LAST PAGE WITH
	A USETO.
2)	
2)		HRRZ	R3,JOB116	;[1132] START OF SYMBOL TABLE
2)		HLRE	T1,JOB116	;[1132] - COUNT
2)		SUB	R3,T1		;[1132] FIRST WORD BEYOND TABLE
2)		ADDI	R3,777		;[1132] ROUND UP TO NEXT PAGE BO
	UND
2)		ANDCMI	R3,777		;[1132] FIRST PAGE NOW FREE
2)		HRRZ	P3,JOB116	;[1132] FIRST WORD WRITTEN
2)		ADDI	P3,777		;[1132] ROUND UP TO PAGE BOUND
2)		ANDCMI	P3,777		;[1132] SO WE DON'T COUNT SYMS W
	RITTEN AT JBEXE
2)		SUB	R3,P3		;[1132] R3 NOW HAS COUNT OF WORD
	S WRITTEN HERE
2)		HRRZ	T1,P1		;[1132] FIRST DISK PAGE FREE BEF
	ORE XCMPOV
2)		ADDI	T1,(P4)		;[1132] ACCOUNT FOR EXTRA OUTS D
	ONE
2)		MOVE	R2,R3		;[1132] NUMBER OF WORDS WRITTEN
	HERE
2)		LSH	R2,-^D9		;[1132] NUMBER OF PAGES WE ADDED
	 TO THE EXE FILE
2)		ADD	T1,R2		;[1132] NEW FIRST FREE = OLD + C
	OUNT
2)		LSH	T1,2		;[1132] CONVERT TO BLOCKS FOR US
	ETO
2)		USETO	DC,1(T1)	;[1132] SET FILE POINTER TO FIRS
	T FREE BLOCK
2)		TXON	P4,DATAF	;[1132] NOW IN A DATA DIR ENTRY,
	 FIRST TIME?
2)		JRST	XOVNWD		;[1132] YES, GO DUMP OLD DIR ENT
	RY AND START NEW
2)		ADD	P3,R3		;[1132] MAKE P3 BE THE FIRST FRE
	E ADDRESS
2)		MOVSI	R3,(R3)		;[1132] TURN WORD COUNT INTO PAG
	E COUNT IN LH
2)		ADD	P2,R3		;[1132] BUMP COUNT IN DIR ENTRY
2)		ADD	P4,R2		;[1132] COUNT FILE PAGES WRITTEN
	 HERE
2)		POPJ	P,		;[1132] DONE, BACK TO ADVPSC
2)	
2)	
2)	;HERE TO START A NEW EXE DIRECTORY ENTRY
2)	
2)	XOVNWD:	TXZ	P4,ZEROF	;[1132] NO LONGER WRITING AN ABZ
	 ENTRY
2)		TXZN	P4,GAPF		;[1132] NOR IN A GAP. WERE WE?
Digital Equipment Corporation       28-AUG-79    Page 250
PCO Log Report


2)		PUSHJ	P,XCMPRD	;[1132] NO, WRITE CURRENT DIR EN
	TRY
 
 
2)		ADDI	P1,(P4)		;[1132] BUMP FILE PAGE NUMBER
2)		HRR	P4,R2		;[1132] ACCOUNT FOR PAGES WRITTE
	N HERE
2)		MOVE	P2,P3		;[1132] FIRST WORD WE WROTE HERE
2)		LSH	P2,-^D9		;[1132] FIRST PAGE WE WROTE HERE
2)		ADD	P3,R3		;[1132] MAKE P3 POINT TO FIRST W
	ORD BEYOND SYMS
2)		MOVSI	R3,-1000(R3)	;[1132] CONVERT WORD CNT INTO EX
	E DIR PAGE CNT
2)		ADD	P2,R3		;[1132] NOW HAVE A NEW EXE DIR S
	LOT
2)		POPJ	P,		;[1132] DONE
2)	
2)72	;HERE WHEN DONE WRITING THE MEMORY IMAGE TO THE EXE FILE.
2)	;WRITE THE START ADDRESS BLOCK, DELETE THE TEMP FILES, AND
2)	;RETURN THE EXE DIRECTORY STORAGE TO FREE SPACE.
2)	
2)	;**;[1132] Insert @ XCMPRX	JNG	30-Jan-79
2)	XCMPRX:	SKIPE	PAG.S1		;[1132] STILL GOT AN LC TEMP FIL
	E?
2)		PUSHJ	P,LC.DLT	;[1132] YES, DELETE IT
2)		SKIPE	PAG.S2		;[1132] HOW ABOUT AN HC TEMP FIL
	E?
2)		PUSHJ	P,HC.DLT	;[1132] YES, DELETE IT
2)	
2)	IFN TOPS20,<
**************
1)65		USETO	DC,@EXEBLK	;NOW TO WRITE THE DIRECTORY
****
2)72	
2)73		USETO	DC,@EXEBLK	;NOW TO WRITE THE DIRECTORY
**************
1)66	
1)	XCMPXD:	AOBJN	W1,CPOPJ	;ALLOCATE IF ENOUGH ROOM
1)		PUSH	P,T1		;SAVES SPACE TO SAVE IT HERE
1)		USETO	DC,@EXEBLK	;SET ON IT
1)		MOVE	W1,EXEDIR	;PTR TO START
1)		HRLI	W1,-400		;NO. TO TRY
1)		MOVEI	T1,1		;INCREMENT
1)	XCMPXE:	MOVE	T3,1(W1)	;GET FILE PAGE
1)		TRNE	T3,-1		;TEST FOR ALLOCATED BUT ZERO
1)		ADDM	T1,1(W1)	;INCREMENT REAL PAGE
1)		ADDI	W1,1		;
1)		AOBJN	W1,XCMPXE	;LOOP
1)		HRRZ	T1,EXEDIR	;
1)		SUBI	T1,1		;
1)		HRLI	T1,-1000	; FORM IOWD
Digital Equipment Corporation       28-AUG-79    Page 251
PCO Log Report


1)		SETZ	T2,		;MAKE SURE
1)		OUT	DC,T1		;WRITE OUT DIRECTORY
1)		  CAIA			;OK
1)		JRST	XCMPER		;ERROR
1)		MOVEI	T3,4		;NO. OF BLOCKS WE WILL MOVE BY
1)		ADDB	T3,EXEBLK	;WHERE REST OF DIRECTORY WILL GO
1)		LSH	T3,-2		;NO. OF PAGES
1)		SUBI	T3,1(P1)	;- NO. OF PAGES TO COPY
1)		MOVEI	T4,(P1)		;PAGE NO.
1)		LSH	T4,2		;BLOCK NO.
1)		HRL	T4,T3		;AOBJN PTR
1)	XCMPXL:	USETI	DC,1(T4)	;SET ON INPUT BLOCK
1)		IN	DC,T1		;READ FILE BACKWARDS
1)		  CAIA			;OK
1)		JRST	XCMPER		;ERROR
 
 
1)		OUT	DC,T1		;WRITE IT BACK OUT 1 PAGE HIGHER
1)		  CAIA			;OK
1)		JRST	XCMPER		;
1)		HRRI	T4,-5(T4)	;SUBTRACT BUT WORRY ABOUT CARRY
1)		AOBJN	T4,XCMPXL	;LOOP
1)		HRRZ	W1,EXEDIR	;RESET DEPOSIT PTR
1)		HRLI	W1,-1000	;
1)		HRLZ	T1,W1		;
1)		HRRI	T1,1(W1)	;FORM BLT PTR
1)		SETZM	(W1)		;
1)		BLT	T1,777(W1)	;CLEAR DIRECTORY BLOCK
1)		AOS	T1,P1		;NEW FILE PAGE
1)		LSH	T1,2		;BLOCKS
1)		USETO	DC,5(T1)	;RESET OUTPUT PTR
1)		POP	P,T1		;RESTORE
1)		POPJ	P,		;
1)	
1)	XCMPER:	PUSH	P,[DC]
****
2)73	XCMPER:	PUSH	P,[DC]
**************
1)100	U	(SCRTCH)		;POINTER TO A SCRATCH PAGE
1)	
****
2)107	;**;[1132] Replace @ SCRTCH	JNG	30-Jan-79
2)	U	(SYMPSC)		;[1132] RC BLOCK OF /SYMSEG PSEC
	T
2)	
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 252
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -254*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          30-JAN-79

[Programmer]            GILBERT

[Routines]              LNKERR

[Key Words]             LNKSTL      LONG MSG

[Source Before Edit]    %4A  (001132)

[Source After Edit]     %4A  (001133)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-26576
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 253
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     There is no long message for the LNKSTL message.
 

                        **********


[DIAGNOSIS]
 
     Oversight.
 

                        **********


[CURE]
 
     Add an appropriate message.
 
 
Digital Equipment Corporation       28-AUG-79    Page 254
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 0835 30-Jan-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1327 30-Jan-1979
 
1)1	DECEVR==1132		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1133		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1133	JNG	30-Jan-79	SPR 10-26576
2)	;	Add a long message for the LNKSTL message.
2)	;	Routine: LNKERR
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 255
PCO Log Report


[FILCOM]
File 1)	LINK:LNKERR.MAC[30,4507]  	created: 1544 22-Sep-1978
File 2)	LINK:LNKERR.MAC[10,645063]	created: 1309 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	22-Sep-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	30-Jan-79
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1978, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
2)	
**************
1)1	DECEVR==1120		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1133		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1133	Add a long message for the LNKSTL message.
2)	
**************
1)9	T13	31	31	LVAR (type 13) code not implemented
****
2)9	STL	31	31	High segment code too long
2)	T13	31	31	LVAR (type 13) code not implemented
**************
1)10	HASH	T13,0,<^_
****
2)10	;**;[1133] Insert @ the T13 message	JNG	30-Jan-79
2)	HASH	STL,0,<^_
2)		The high segment of your program has overflowed the end
	of
2)		memory.   You  can move the high segment down by using t
	he
2)		/SET:.HIGH.:address switch, or you can force  your  enti
	re
2)		program into the low segment with the /SEGMENT:LOW switc
	h.>
2)	
2)	HASH	T13,0,<^_
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 256
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -255*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          30-JAN-79

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             ADDR CHECK  EDIT 776    EDIT 1132

[Source Before Edit]    %4A  (001133)

[Source After Edit]     %4A  (001134)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-27024
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 257
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK can get an address check if all of  the  following
conditions are met:
 
     1.  The lowest code or data loaded occurs between  2000
         and 377777.
 
     2.  The program being loaded is small  enough  so  that
         LINK does not have to overflow to disk.
 
     3.  LINK is writing an EXE  file,  either  because  the
         program  is  too large to fit in memory, or because
         the user requested an EXE file with /SAVE.
 
 
     Also, LINK will fail to write out  the  correct  .JBVER
(location  137)  if  the  lowest  location loaded is 2000 or
above.
 
     If edit 776 has been installed, users will not see  the
above problems.  Instead, LINK will set up an incorrect page
0 (JOBDAT) when all of the following conditions are met:
 
     1.  LINK has overflowed to  disk,  either  because  the
         program  was too large to fit in memory, or because
         disk overflow was  forced  by  the  first  location
         loaded being above 400000.
 
     2.  The program being loaded is small  enough  so  that
         LINK  is  able  to  read all of it (from the lowest
         location loaded on  up)  back  in  at  the  end  of
         loading.
 
     3.  LINK is writing an EXE file.
 
 

                        **********


[DIAGNOSIS]
Digital Equipment Corporation       28-AUG-79    Page 258
PCO Log Report


 
     LINK always tries to write JOBDAT from  the  DY  buffer
(JOBPTR)  if  the lowest location loaded (LOWLOC) is 2000 or
above, on the assumption  that  disk  overflow  has  already
occurred.   However,  if the program is small enough so that
disk overflow has not occurred, and if disk overflow was not
forced  by  the lowest location being 400000 or higher, then
JOBDAT is in the LC area instead of the DY  area.   In  that
case,  LINK will pick up a zero address and try to write its
own JOBDAT into the EXE file.
 
     The missing .JBVER is due to an erroneous  output  IOWD
in the same area of code.
 
     If edit 776 has been installed, then an error  in  that
edit  will  cause  LINK to write out the page containing the
lowest location  loaded  as  the  JOBDAT  area,  instead  of
writing the correct JOBDAT area.
 

                        **********


[CURE]
 
    Do not try to get JOBDAT out of the DY area unless it is
really there, and correct the output IOWD.
 
     Note that this problem was fixed in LINK by edit  1132,
and  that  this  PCO  is  simply  a  small patch to fix this
particular problem without having to  install  all  of  edit
1132.   This edit will never appear in any future release of
LINK, since edit 1132 will be shipped instead.
 
     This  edit  also  supersedes   LINK   edit   776   (PCO
10-LINK-254),  which  was  an  incorrect  fix  for this same
problem.  Edit 776 should be removed before the installation
of this edit.
 
 
Digital Equipment Corporation       28-AUG-79    Page 259
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507,4,T10]	created: 1904 01-Mar-1978
File 2)	LINK:LNKHST.MAC[30,3737]      	created: 1747 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	27-FEB-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	30-Jan-7
	9
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==765		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1134		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1134	JNG	30-Jan-79	SPR 10-26897
2)	;	Avoid address check in LNKXIT while writing EXE file if
	lowest
2)	;	code loaded is between 2000 and 377777, but the program
	being
2)	;	loaded is not so large that LINK needs to overflow to di
	sk.
2)	;	Routines: LNKXIT
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 260
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507,4,T10]	created: 1503 03-Mar-1978
File 2)	LINK:LNKXIT.MAC[30,3737]      	created: 1824 30-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	30-Jan-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1134		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1134	Avoid address check when not paging but LOWLOC is non-ze
	ro.
2)5	SUBTTL	ENTER HERE
**************
1)54		MOVE	T3,LOWLOC	;[742] GET LOWEST LOCATION
1)		CAIL	T3,2000		;[742] LOWEST LOCATION IN PAGE0
	OR PAGE 1?
1)		JRST	XCMPRJ		;[742] NO,
****
2)54	;**;[1134] Replace @ XCMPRS+9L	JNG	30-Jan-79
2)	;**;[1134] This edit will not appear in any future release of LI
	NK
2)	;**;[1134] This problem has been fixed in a different way by edi
	t 1132
2)	;**;[1134] This edit is solely to avoid having to install all of
	 edit 1132
2)		SKIPE	LW.S1		;[1134] IS JOBDAT IN THE LC OR D
	Y AREAS?
2)		JRST	XCMPRJ		;[742] NO,
**************
1)55		HRLI	T1,-.JBDA+1	;[732]
1)		OUT	DC,T1		;OUTPUT PAGE 0
****
2)55	;**;[1134] Change @ XCMPRJ+2L	JNG	30-Jan-79
2)		HRLI	T1,-.JBDA	;[1134]
2)		OUT	DC,T1		;OUTPUT PAGE 0
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 261
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -256*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) TESTED IN 4A(1134)

[Date Entered]          31-JAN-79

[Programmer]            D. NEFF

[Routines]              LNKLOD

[Key Words]             LOST DATA

[Source Before Edit]    %4A  (001134)

[Source After Edit]     %4A  (001135)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-26792
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 262
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
LINK may lose up to 17 words of data in the program, replacing them
with zeros, if all of the following conditions are met:
 
     1.  The block of data being loaded crosses a page boundary  in
         the loaded program's address space
 
     2.  Data has already been loaded at higher  addresses  in  the
         same segment
 
     3.  The segment is paging to disk
 
 

                        **********


[DIAGNOSIS]
 
When the above conditions are true, LINK's window into the overflow
file  for the segment can become only one page long.  In this case,
an optimization made by edit 716 causes  LINK  not  to  expand  the
window, but just to leave it alone.
 
Those words in the block  following  the  page 263undary  are  then
stored past the end of LINK's window and lost.
 

                        **********


[CURE]
 
Change the optimization check to require the window to be at  least
two pages long if the request crosses a page boundary.
 
Digital Equipment Corporation       28-AUG-79    Page 264
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1937 30-Jan-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1640 31-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	30-Jan-7
	9
1)	;COPYRIGHT (C) 1973, 1978, 1979 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	31-Jan-7
	9
2)	;COPYRIGHT (C) 1973, 1978, 1979 BY
**************
1)1	DECEVR==1134		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1135		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1135	DZN	31-Jan-79	SPR 10-26792
2)	;	Force PG.SU to expand anyway if a request crosses a page
	 boundary
2)	;	and the window is not at least two pages long.
2)	;	Routine: LNKLOD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 265
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 0835 30-Jan-1979
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1336 31-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	30-Jan-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	31-Jan-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978, 1979
1)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
****
2)1	;COPYRIGHT (C) 1973, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
**************
1)1	DECEVR==1132		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1135		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1135	Make PG.SU expand anyway if request crosses page and win
	dow only a page.
2)5	SUBTTL	LOAD CONTROL
**************
1)11	;HERE TO MOVE WINDOW UP IN CORE
1)	;DUMP LOWER PART OF WINDOW, BLT DOWN AND READ IN TOP PART
1)	;THIS PART IS MOST LIKELY ZERO
1)	PG.SU:	CAMG	P2,TAB.HB(R)	;[716] THE HIGH ADDR ALREADY OUT
	 ON DISK?
1)		JRST	PG.SD		;[716] YES, DON'T BOTHER TO EXPA
	ND
1)		PUSHJ	P,FR.CNT##	;SEE HOW MUCH FREE SPACE WE HAVE
1)		ADD	T1,UW.S0(R)	;IF WE GIVE IT ALL TO THIS AREA
****
2)11	;HERE TO MOVE THE WINDOW UP IN MEMORY. IF NECESSARY, DUMP THE LO
	WER PART OF THE
2)	;WINDOW AND MOVE DOWN THE REST. THEN EXPAND THE END OF THE WINDO
	W IF NECESSARY
2)	;AND READ IN THE UPPER PART WHICH IS USUALLY ZERO. TRY TO KEEP T
	HE SIZE OF THE
2)	;WINDOW REASONABLE AS A FIRST APPROXIMATION.
2)	PG.SU:	MOVE	T1,P2		;[1135] SEE IF REQUEST CROSSES A
	 PAGE BOUNDARY
2)		XOR	T1,P3		;[1135]   ..
2)		TXNN	T1,^-<.IPS-1>	;[1135]   ..
Digital Equipment Corporation       28-AUG-79    Page 266
PCO Log Report


2)		JRST	PG.SU1		;[1135] NO--NO SWEAT
2)		MOVE	T1,TAB.AB(R)	;[1135] YES--THEN MAKE SURE AT L
	EAST 2 PAGES
2)		SUB	T1,TAB.LB(R)	;[1135]   IN THE WINDOW
2)		CAIGE	T1,.IPS		;[1135]   ..
2)		JRST	PG.SU2		;[1135] ONLY 1 PAGE--MUST EXPAND
2)	PG.SU1:	CAMG	P2,TAB.HB(R)	;[1135] THE HIGH ADDR ALREADY OU
	T ON DISK?
2)		JRST	PG.SD		;[716] YES, DON'T BOTHER TO EXPA
	ND
2)	PG.SU2:	PUSHJ	P,FR.CNT##	;[1135] SEE HOW MUCH FREE SPACE
	WE HAVE
2)		ADD	T1,UW.S0(R)	;IF WE GIVE IT ALL TO THIS AREA
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 267
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -257*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          31-JAN-79

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             I/O TO UNA  /SAVE       EDIT 1132

[Source Before Edit]    %4A  (001135)

[Source After Edit]     %4A  (001136)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-26518
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 268
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK can get an I/O to unassigned channel  error  while
writing  an  EXE file.  This will happen if the last word of
either the low or high segment (counting the symbol table if
one  is loaded) falls on the last word of a page, and if the
program being loaded is not so large that LINK needs to page
that segment to disk.
 

                        **********


[DIAGNOSIS]
 
     When LINK finishes writing its current  segment  window
into  the  EXE file, it tests to see if it has just finished
with the segment, and if not, assumes that  the  segment  is
paging  and  calls the paging routines to advance the window
to the next piece of the segment.  Unfortunately, the  check
to  see  if the segment is finished is off by one, so if the
segment  ends  on  the  last  word  of  a  page,  LINK  will
erroneously  think  that  it  has  not yet finished with the
segment, and call the paging routines to advance the window.
If  LINK  is  not  paging,  this  will  lead  to  an  I/O to
unassigned channel error, since the overflow files have  not
been opened.
 

                        **********


[CURE]
 
     Correct the test for end of segment, as  shown  in  the
attached FILCOM.
 
     Note that this edit is an extract of part of edit 1132,
and  has  been  made  solely to prevent sites from having to
install all of edit 1132 just to  fix  this  problem.   This
edit will not appear in the next release of LINK, since edit
1132 will be present instead.
Digital Equipment Corporation       28-AUG-79    Page 269
PCO Log Report


 
 
Digital Equipment Corporation       28-AUG-79    Page 270
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507,4]	created: 1904 01-Mar-1978
File 2)	LINK:LNKHST.MAC[30,3737]  	created: 1633 31-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	27-FEB-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	31-Jan-7
	9
2)	;COPYRIGHT (C) 1973, 1978 BY
**************
1)1	DECEVR==765		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1136		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;1136	JNG	31-Jan-79	SPR 10-26518
2)	;	Avoid IO to unassigned channel in LNKXIT while writing a
	n EXE file
2)	;	if segment ends on last word of a page and LINK is not p
	aging to disk.
2)	;	This edit is an extract of part of edit 1132.
2)	;	Routine: LNKXIT
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 271
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507,4]	created: 1503 03-Mar-1978
File 2)	LINK:LNKXIT.MAC[30,3737]  	created: 1528 31-Jan-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	31-Jan-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1136		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1136	Avoid IO to unassigned channel if segment ends on last w
	ord of page.
2)5	SUBTTL	ENTER HERE
**************
1)56		CAMLE	P3,HC.S0(R)	;FINISHED?
1)		JRST	[PUSHJ	P,XCMPRD	;NO, WRITE IT OUT
****
2)56	;**;[1136] Change @ XCMPR4+5L	JNG	31-Jan-79
2)	;**;[1136] This edit will not appear in the next release of LINK
	.
2)	;**;[1136] It is just a small patch to avoid having to install e
	dit 1132.
2)		CAML	P3,HC.S0(R)	;[1136] FINISHED?
2)		JRST	[PUSHJ	P,XCMPRD	;NO, WRITE IT OUT
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 272
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -259*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          01-FEB-79

[Programmer]            GILBERT

[Routines]              LNKOLD

[Key Words]             PSECTS      LOST CODE   BLOCK 24

[Source Before Edit]    %4A  (001136)

[Source After Edit]     %4A  (001137)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 273
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     When loading a module containing mixed low segment  and
PSECT code, LINK will lose any low segment code appearing in
the source file before the first PSECT code.
 

                        **********


[DIAGNOSIS]
 
     A set of REL blocks (type 24) appear early in  a  PSECT
REL  file  to  describe  all  of the PSECTs appearing in the
module.  Unfortunately, one of the things LINK does when  it
sees  a  REL  block  type  24 is perform a set default PSECT
action, as if it had seen a REL block type 22.  If the first
code  (REL  block type 1) appearing in the REL file does not
load into a  PSECT, and  thus  is  not  preceded  by  a  set
default  PSECT  block, then LINK will end up loading it into
whatever PSECT was described by the last REL block  type  24
seen.   The  loaded  code  will then be overwritten when the
code that really belongs in that PSECT is loaded.
 

                        **********


[CURE]
 
     Change the processing of  REL  block  type  24  to  not
change  LINK's  default load PSECT (RC.CUR), as shown in the
attached FILCOM.
 
 
Digital Equipment Corporation       28-AUG-79    Page 274
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1627 31-Jan-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1803 01-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	31-Jan-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	1-Feb-79
2)	
**************
1)1	DECEVR==1136		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1137		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1137	JNG	1-Feb-79	SPR 20-12411
2)	;	Don't change RC.CUR in T.24.  Also set default PSECT nam
	e to left-
2)	;	justified .LOW. (not right-justified) if name not given
	in block.
2)	;	Routine: LNKOLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 275
PCO Log Report


[FILCOM]
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	30-Jan-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	1-Feb-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1132		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==1137		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)5	COMMENT	\
****
2)4	;1137	Don't change RC.CUR in T.24.
2)5	COMMENT	\
**************
1)101		IN ADDITION IT ESTABLISHES THE PSECT ORDERING FOR
1)		THE POLISH FIXUPS TO FOLLOW
1)	*
1)	T.24:	PUSHJ	P,RB.2		;PSECT NAME
1)		  JRST	[MOVEI	T1,24
1)			JRST	ILIERR]
1)		MOVE	W3,W1		;ATTRIBUTE IN W3
1)		HRRZM	W1,RC.CUR	;GET PSECT INDEX(IT'S ONE LESS,
	AOS LATER)
1)		JUMPE	W2,[MOVE	W2,['.LOW.']	;BLANK PSECT
1)			SETZB	W1,RC.CUR		;SHOULD BE AT SL
	OT 1
1)			JRST	T.24A]
1)		JUMPL	W3,[	SETZ	W1,	;JUMP IF RELOCATABLE PSE
	CT AND
1)				JRST	T.24A]	;ZERO ORIGIN AND JUMP
1)		PUSHJ	P,RB.1		;GET ORIGIN
1)		  JRST	[MOVEI	T1,24	
1)			JRST ILIERR]		;ERROR
1)	T.24A:	AOS	RC.CUR		;GOES IN NEXT SLOT
1)		MOVE	R,RC.NO		;START AT BACK OF TABLE
1)		MOVE	T1,@RC.TB	;GET RC BLOCK
1)		CAMN	W2,RC.NM(T1)	;IS THIS THE ONE WE WANT?
1)		JRST	[TXZ	W1,AT.RP	;FOUND IT, MUST HAVE ORI
	G ALREADY
1)			IORM	W1,RC.AT(T1)	;UPDATE ATTRIBUTES
1)			JRST	T.24B]		;GO CHECK ORDERING
1)		SOJG	R,.-3		;NO, TRY AGAIN
1)		EXCH	W1,W3		;.SET0 WANTS ORIGIN IN W3
1)		PUSHJ	P,.SET0##	;GO CREATE A NEW RELOCATION COUN
	TER
Digital Equipment Corporation       28-AUG-79    Page 276
PCO Log Report


1)		MOVE	R,RC.NO		;GET RELOCATION COUNTER NUMBER
1)	T.24B:	CAMN	R,RC.CUR	;WHERE IT SHOULD BE?
1)		JRST	LOAD##		;YES
1)		MOVE	T1,@RC.TB	;NO, GET RC BLOCK
1)		EXCH	R,RC.CUR	;WHERE IT SHOULD BE
1)		EXCH	T1,@RC.TB	;PUT IT THERE
1)		EXCH	R,RC.CUR	;PUT RC.CUR BACK
1)		MOVEM	T1,@RC.TB	;AND OUT OF PLACE BLOCK
****
2)101	*
2)	T.24:	PUSHJ	P,RB.2		;PSECT NAME
2)	;**;[1137] Replace @ T.24+1L	JNG	1-Feb-79
2)	;**;[1137] This edit replaces the T.24 portion of edit 1132 if i
	nstalled.
 
 
2)		  JRST	ILIERR		;[1137] BLOCK TOO SHORT
2)	;**;[1137] Install the next line ONLY if edit 1132 has been inst
	alled.
2)		TXO	W1,AT.PS	;[1137] REMEMBER THIS PSECT SEEN
	 IN THIS MODULE
2)		HLLZ	W3,W1		;[1137] SAVE ATTRIBUTES IN W3
2)		MOVEI	P1,1(W1)	;[1137] SAVE LINK'S PSECT INDEX
	IN P1
2)		SETZ	W1,		;[1137] ASSUME PSECT ORIGIN IS Z
	ERO
2)		JUMPN	W2,T.24A	;[1137] IF NAME SPECIFIED, GO CH
	ECK ORIGIN
2)		MOVEI	P1,1		;[1137] DEFAULT PSECT IS AT SLOT
	 1
2)		MOVE	W2,['.LOW. ']	;[1137] AND ITS NAME IS .LOW.
2)		JRST	T.24B		;[1137] GO SEE IF ITS ORIGIN IS
	CORRECT
2)	T.24A:	JUMPL	W3,T.24B	;[1137] IF NO ORIGIN GIVEN, DON'
	T TRY TO GET IT
2)		PUSHJ	P,RB.1		;[1137] GET ORIGIN FROM THE REL
	FILE
2)		  JRST	ILIERR		;[1137] NOT THERE?
2)	T.24B:	MOVE	R,RC.NO		;[1137] LOOP OVER ALL RC BLOCKS
2)	T.24C:	MOVE	T1,@RC.TB	;[1137] RC BLOCK WHERE THIS PSEC
	T MIGHT BE
2)		CAME	W2,RC.NM(T1)	;[1137] IS IT HERE?
2)		SOJG	R,T.24C		;[1137] NO, LOOP OVER ALL PSECTS
2)		JUMPE	R,T.24D		;[1137] IF NOT FOUND, INSERT A N
	EW RC BLOCK
2)		TXZ	W3,AT.RP	;[1137] WE FOUND IT, SO ALREADY
	HAVE ORIGIN
2)	;***** SHOULD CHECK HERE FOR CONFLICTING PSECT PROPERTIES *****
2)		IORM	W3,RC.AT(T1)	;[1137] ACCUMULATE ATTRIBUTES
2)		JRST	T.24E		;[1137] MAKE SURE IT'S WHERE WE
	EXPECT IT
Digital Equipment Corporation       28-AUG-79    Page 277
PCO Log Report


2)102	T.24D:	EXCH	W1,W3		;[1137] SET ACS FOR .SET0
2)		PUSHJ	P,.SET0##	;[1137] SET UP A NEW RC BLOCK
2)		MOVE	R,RC.NO		;[1137] ITS INDEX IS THE LAST PS
	ECT
2)	T.24E:	CAMN	P1,R		;[1137] IS THE RC BLOCK IN THE R
	IGHT PLACE?
2)		JRST	LOAD##		;[1137] YES, DONE
2)		MOVE	T1,@RC.TB	;[1137] RC BLOCK OF THIS PSECT
2)		EXCH	R,P1		;[1137] POINT TO RC BLOCK IN THE
	 WAY
2)		EXCH	T1,@RC.TB	;[1137] PUT OUR RC BLOCK WHERE I
	T BELONGS
2)		EXCH	R,P1		;[1137] BACK TO WHERE OUR PSECT
	USED TO BE
2)		MOVEM	T1,@RC.TB	;AND OUT OF PLACE BLOCK
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 278
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -260*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          06-FEB-79

[Programmer]            GILBERT

[Routines]              LNKOLD

[Key Words]             LSTSYM      ILL MEM RE  FORTRAN

[Source Before Edit]    %4A  (001137)

[Source After Edit]     %4A  (001140)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-26410
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 279
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK can get an illegal memory reference when loading a
FORTRAN program.  This can happen if the FORTRAN program has
a data element in a COMMON block and an ENTRY  of  the  same
name,  and  if  the  program  is  being loaded without local
symbols (default on TOPS-10).
 

                        **********


[DIAGNOSIS]
 
     In this case, FORTRAN generates three adjacent RADIX-50
symbols  in  a REL block type two in the REL file:  a global
definition for the ENTRY name, a local  definition  for  the
COMMON  data element name, and an external request that adds
the base of the COMMON block to the previous symbol,  namely
the  COMMON  data element name.  When LINK sees the external
request, it checks to see if the symbol it is trying to  fix
up  is  the  same  as  the  last  symbol  loaded, and if so,
processes the fixup.
 
     Unfortunately, when LINK is  not  loading  locals,  the
last  symbol loaded when the external request is seen is the
global definition for the ENTRY name.  Since this symbol has
the  same name as the object symbol of the external request,
LINK thinks all is OK and adds the base of the COMMON  block
to  the  value  of  the entry name.  It then gets an illegal
memory  reference  when  attempting  to   track   down   all
references to the symbol it just defined and fix them up.
 

                        **********


[CURE]
 
     When not loading locals, clear the pointer to the  last
symbol  loaded  every  time  a  local  is  skipped,  so  any
following symbol fixups will be ignored.
Digital Equipment Corporation       28-AUG-79    Page 280
PCO Log Report


 
 
Digital Equipment Corporation       28-AUG-79    Page 281
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1803 01-Feb-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1520 06-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	1-Feb-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	6-Feb-79
2)	
**************
1)1	DECEVR==1137		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1140		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1140	JNG	6-Feb-79	SPR 10-26410
2)	;	Clear LSTSYM when a non-loaded local is encountered.
2)	;	Routine: LNKOLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 282
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 1827 01-Feb-1979
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1523 06-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	1-Feb-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	6-Feb-79
2)	
**************
1)1	DECEVR==1137		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1140		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1140	Clear LSTSYM if a non-loaded local is encountered.
2)	
**************
1)25		TRNN	FL,R.SYM	;IN LOCAL SYMBOL MODE
****
2)25	;**;[1140] Change @ SY.LS+1L	JNG	6-Feb-79
2)		SETZM	LSTSYM		;[1140] IN CASE WE DON'T LOAD TH
	IS SYMBOL
2)		TRNN	FL,R.SYM	;IN LOCAL SYMBOL MODE
**************
1)25	
1)26	SUBTTL	BLOCK TYPE 2 - LOCAL BLOCK HEADER (FAIL)
****
2)26	SUBTTL	BLOCK TYPE 2 - LOCAL BLOCK HEADER (FAIL)
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 283
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -261*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          15-FEB-79

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             BIG EXE     LOWLOC      EDIT 1132

[Source Before Edit]    %4A  (001140)

[Source After Edit]     %4A  (001141)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-26290
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 284
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     After edit 767 is installed, LINK can write  EXE  files
that  contain  extra pages after the end of the low segment.
This can only happen if the lowest  location  loaded  is  at
400000 or higher, e.g.  if PSECTs are being used.
 

                        **********


[DIAGNOSIS]
 
     The  EXE  file  writer  writes  out  the  entire   area
containing  the low segment, on the assumption that the area
contains only enough room  to  hold  the  segment.   If  the
lowest  location  loaded  is  above 400000, however, the low
segment area can  end  up  being  larger  than  the  minimum
necessary to hold the segment.
 

                        **********


[CURE]
 
     Move the EXE file writer's check for end of segment  to
before the check for end of segment area.
 
     This edit is an extract of part of edit 1132,  and  has
been made only to keep users who wish to fix this particular
problem from having to install all of edit 1132.  This  edit
will  not  be  present  in any future release of LINK, since
edit 1132 will be present instead.  Note also that this edit
supercedes  edit  1136 (another extract of edit 1132), which
should  be  removed  if  it  has  been  installed  prior  to
installing this edit.
 
 
Digital Equipment Corporation       28-AUG-79    Page 285
PCO Log Report


[FILCOM]
File 1)	DSKC:LNKHST.MAC[30,4507]	created: 1520 06-Feb-1979
File 2)	DSKC:LNKHST.MAC[30,3737]	created: 1709 15-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	6-Feb-79
1)	;COPYRIGHT (C) 1973, 1978, 1979 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	15-Feb-7
	9
2)	;COPYRIGHT (C) 1973, 1978, 1979 BY
**************
1)1	DECEVR==1140		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1141		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1141	JNG	15-Feb-79	SPR 10-26290
2)	;	Make the EXE file writer stop writing when it passes the
	 size
2)	;	of the user program, instead of writing the entire LC ar
	ea.
2)	;	This edit supercedes edit 1136 and is an extract of edit
	 1132.
2)	;	Routine: LNKXIT
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 286
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507,4]	created: 1503 03-Mar-1978
File 2)	DSKC:LNKXIT.MAC[30,3737]  	created: 1703 15-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	15-Feb-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1141		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1141	Don't make EXE file too big if LC area is larger than ne
	cessary.
2)5	SUBTTL	ENTER HERE
**************
1)56		MOVEI	T3,1(T1)	;ADDRESS ONLY
1)		CAMG	T3,TAB.AB(R)	;NEXT PAGE IN CORE
1)		JRST	XCMPR1		;YES
1)		CAMLE	P3,HC.S0(R)	;FINISHED?
1)		JRST	[PUSHJ	P,XCMPRD	;NO, WRITE IT OUT
1)			JRST	XCMPRH]		;TRY HIGH SEG
1)		MOVE	T3,TAB.AB(R)	;
****
2)56	;**;[1141] Move up from below @ XCMPR4+2L	JNG	15-Feb-7
	9
2)	;**;[1141] This edit will not appear in the next release of LINK
	.
2)	;**;[1141] It is just an extract of part of edit 1132, to avoid
	having
2)	;**;[1141] to install that entire edit.  It also supercedes edit
	 1136,
2)	;**;[1141] (another extract of edit 1132), which should be remov
	ed if installed.
2)		CAML	P3,HC.S0(R)	;[1141] FINISHED?
2)		JRST	[PUSHJ	P,XCMPRD	;[1141] NO, WRITE IT OUT
2)			JRST	XCMPRH]		;[1141] TRY HIGH SEG
2)		MOVEI	T3,1(T1)	;ADDRESS ONLY
2)		CAMG	T3,TAB.AB(R)	;NEXT PAGE IN CORE
2)		JRST	XCMPR1		;YES
2)		MOVE	T3,TAB.AB(R)	;
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 287
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -262*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) + EDIT 1132

[Date Entered]          16-FEB-79

[Programmer]            GILBERT

[Routines]              LNKWLD

[Key Words]             /SET:.HIGH  EDIT 1132

[Source Before Edit]    %4A  (001141)

[Source After Edit]     %4A  (001142)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 288
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Various, including looping, losing the  runtime  symbol
table,  and  writing  a very large overflow file.  This will
only happen if a /SET:.HIGH. switch is  used  after  a  high
segment  already  exists  to change the current value of the
high segment relocation counter, and only if edit  1132  has
been installed.
 

                        **********


[DIAGNOSIS]
 
     An  error  in  edit  1132  caused  the   high   segment
relocation  counter  to  be  pointed to the low segment if a
/SET switch is ever used to change its value.  This confuses
the rest of LINK tremendously, leading to various errors.
 

                        **********


[CURE]
 
     Never cause the  high  segment  relocation  counter  to
point to the low segment.
 
 
Digital Equipment Corporation       28-AUG-79    Page 289
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1709 15-Feb-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1141 16-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	15-Feb-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	16-Feb-7
	9
2)	
**************
1)1	DECEVR==1141		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1142		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1142	JNG	16-Feb-79
2)	;	Fix problems with multiple /SET:.HIGH.s introduced by ed
	it 1132.
2)	;	Routine: LNKWLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 290
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 0834 30-Jan-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1136 16-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	30-Jan-7
	9
1)	
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	16-Feb-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1132		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1142		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1142	Fix problems with /SET introduced by edit 1132.
2)	
**************
1)40	SET3:	ADDI	R,1		;[1132] NOT THERE - INSERT IN NE
	XT FREE SLOT
1)		PUSHJ	P,.SAVE4##	;[714] SAVE P1-P4
1)		MOVX	W1,PT.SGN!PT.SYM	;[714] SET FLAGS
****
2)40	;**;[1142] Move label down @ SET3	JNG	16-Feb-79
2)		ADDI	R,1		;[1142] NOT THERE - INSERT IN NE
	XT FREE SLOT
2)	SET3:	PUSHJ	P,.SAVE4##	;[1142] SAVE P1-P4
2)		MOVX	W1,PT.SGN!PT.SYM	;[714] SET FLAGS
**************
1)40	SET4:	MOVEI	T1,1		;[1132] ALL PSECTS ARE IN THE LC
	 AREA
1)		MOVEM	T1,RC.SG(R)	;[1132] SEGMENT NUMBER
1)		EXCH	R,T1		;SWAP, PUT SEG # IN R
****
2)40	;**;[1142] Move label down @ SET4	JNG	16-Feb-79
2)		MOVEI	T1,1		;[1142] ALL PSECTS ARE IN THE LC
	 AREA
2)		MOVEM	T1,RC.SG(R)	;[1132] SEGMENT NUMBER
2)	SET4:	MOVE	T1,RC.SG(R)	;[1142] FETCH SEGMENT NUMBER
2)		EXCH	R,T1		;SWAP, PUT SEG # IN R
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 291
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -263*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          16-FEB-79

[Programmer]            GILBERT

[Routines]              LNKLOD

[Key Words]             BAD RST     /NOINIT     /SET

[Source Before Edit]    %4A  (001142)

[Source After Edit]     %4A  (001143)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 292
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     The runtime symbol table can end  with  a  symbol  name
rather  than  a module name.  This happens if the user types
/NOINITIAL and then some switch that defines a symbol  (such
as /SET or /COMMON) before loading anything.
 

                        **********


[DIAGNOSIS]
 
     In this case, the switch processing  routines  add  the
symbols to the LS area before JOBDAT or any other module has
been loaded.  When the LS area is scanned backwards to build
the  runtime  symbol  table, the last thing seen is a symbol
rather than a module name.
 

                        **********


[CURE]
 
     If LS.ADD is called  to  insert  a  symbol  before  any
module  names  have  appeared,  generate  a fake module name
using the name of the symbol being inserted.
 
 
Digital Equipment Corporation       28-AUG-79    Page 293
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1141 16-Feb-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1507 16-Feb-1979
 
1)1	DECEVR==1142		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1143		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1143	JNG	16-Feb-79	QAR CKS
2)	;	Make sure symbols never get into the LS area before a mo
	dule name.
2)	;	If they try (/NOINITIAL/SET), dummy up a module name fro
	m the symbol.
2)	;	Routine: LNKLOD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 294
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1336 31-Jan-1979
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1457 16-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	31-Jan-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	16-Feb-7
	9
2)	
**************
1)1	DECEVR==1135		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1143		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1143	Fake a module name if LS.ADD called with a symbol before
	 a module seen.
2)	
**************
1)24	LS.ADD::MOVE	T1,LSYM		;GET SYMBOL TABLE POINTER
1)		HRRM	T1,LSTSYM	;STORE REL POINTER TO NEXT SYMBO
	L
****
2)24	;**;[1143] Insert @ LS.ADD	JNG	16-Feb-79
2)	LS.ADD::SKIPN	@GS.LB		;[1143] USER TYPE /NOINITIAL?
2)		PUSHJ	P,LS.CHK	;[1143] YES, SEE IF NEED A DUMMY
	 MODULE NAME
2)	LSADD:	MOVE	T1,LSYM		;[1143] GET SYMBOL TABLE POINTER
2)		HRRM	T1,LSTSYM	;STORE REL POINTER TO NEXT SYMBO
	L
**************
1)25	LS.ADE::MOVE	T1,LSYM		;SYMBOL TABLE PTR.
1)		HRRM	T1,LSTSYM	;REL PTR. TO NEXT SYMBOL
****
2)25	;**;[1143] Insert @ LS.ADE	JNG	16-Feb-79
2)	LS.ADE::SKIPN	@GS.LB		;[1143] USER TYPE /NOINITIAL?
2)		PUSHJ	P,LS.CHK	;[1143] YES, SEE IF NEED TO FAKE
	 A MODULE NAME
2)		MOVE	T1,LSYM		;SYMBOL TABLE PTR.
2)		HRRM	T1,LSTSYM	;REL PTR. TO NEXT SYMBOL
**************
1)26	SUBTTL	GLOBAL SYMBOL STORE
****
2)25	
2)	;HERE IF USER TYPED /NOINITIAL.  IF USER TYPES /SET, /COMMON, ET
	C. BEFORE
Digital Equipment Corporation       28-AUG-79    Page 295
PCO Log Report


2)	;LOADING ANYTHING, THEN WE NEED TO INSERT A MODULE NAME SO SYMBO
	LS WILL
2)	;NOT OCCUR OUTSIDE OF A MODULE.  USE THE SYMBOL NAME FOR THE MOD
	ULE NAME.
2)	
2)	;**;[1143] Insert @ LS.ADE+14L	JNG	16-Feb-79
2)	LS.CHK:	MOVE	T1,LSYM		;[1143] GET SIZE OF LS AREA SO F
	AR
2)		CAIN	T1,1		;[1143] EMPTY?
2)		TXNN	W1,PT.SYM	;[1143] YES, BUT IS THIS A SYMBO
	L?
2)		POPJ	P,		;[1143] NO, NOT THE SPECIAL CASE
2)		MOVEM	T1,NAMPTR	;[1143] CREATING A NEW MODULE
2)		AOS	PRGNO		;[1143] REMEMBER ONE MORE
2)		SPUSH	<W1,W3,T2>	;[1143] SAVE CALLER'S ARGS
2)		MOVX	W1,PT.SGN!PT.TTL	;[1143] THIS IS A TITLE
2)		SETZ	W3,		;[1143] NO PREVIOUS PTR
2)		PUSHJ	P,LSADD		;[1143] INSERT IN LS AREA
2)		SPOP	<T2,W3,W1>	;[1143] RESTORE ACS
2)		SETZM	LSTSYM		;[1143] SINCE NOT REALLY A SYMBO
	L
2)		POPJ	P,		;[1143] RETURN TO LS.ADD OR LS.A
	DE
 
 
2)	
2)26	SUBTTL	GLOBAL SYMBOL STORE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 296
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -011*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          19-FEB-79

[Programmer]            D. NEFF

[Routines]              LNKERR    LNKLOG    LNKPAR    LNKXIT

[Key Words]             KIL PA1050

[Source Before Edit]    %4A  (001143)

[Source After Edit]     %4A  (001144)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:20-12473
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 297
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
If LINK must run the loaded program from an .EXE file  (either  too
large  or  /SAVE/EXECUTE  specified), PA1050 is left in memory even
though the loaded program does not use TOPS-10 UUOs.
 

                        **********


[DIAGNOSIS]
 
PA1050's simulation of the RUN  UUO  does  not  clear  away  PA1050
itself, under the assumption that pages 700 and up do not matter to
user programs.
 

                        **********


[CURE]
 
Rewrite LINK's run code to not use the RUN UUO, but to do the  work
itself.   Unmap  all  of  memory unless /DEBUG:DDT is specified, in
which case do not unmap UDDT.
 
Note that since universal files are changed as  a  result  of  this
edit,  all  of  the  LINK  sources  must  be  recompiled  following
installation of the edit.
 
Digital Equipment Corporation       28-AUG-79    Page 298
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1507 16-Feb-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 2053 17-Feb-1979
 
1)1	DECEVR==1143		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1144		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1144	DZN	16-Feb-79	SPR 20-12473
2)	;	Clean up code to run the .EXE file so that PA1050 is not
	 left in
2)	;	memory on TOPS-20, and so that more of the final message
	s use .ERR.
2)	;	instead of OUTSTRs.
2)	;	Routines: LNKERR, LNKLOG, LNKLOW, LNKPAR, LNKWLD, LNKXIT
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 299
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPAR.MAC[30,4507]  	created: 0833 30-Jan-1979
File 2)	LINK:LNKPAR.MAC[10,645063]	created: 0052 17-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	30-Jan-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	16-Feb-7
	9
2)	
**************
1)1	DECEVR==1132		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1144		;DEC EDIT VERSION
2)	
**************
1)5	
****
2)5	;1144	Juggle fields in .ERR. and .ETC. words to get more flags
	, add .EN.
2)	
**************
1)12	
1)	
1)13	;FIXUP TYPES
****
2)13	;FIXUP TYPES
**************
1)16	
1)17	SUBTTL	PROTOTYPE SCAN BLOCK
****
2)17	SUBTTL	PROTOTYPE SCAN BLOCK
**************
1)17	
1)18	SUBTTL	PROTOTYPE DATA BLOCK
****
2)18	SUBTTL	PROTOTYPE DATA BLOCK
**************
1)26	
1)27	;MACRO TO INITIALIZE REL FILE INPUT IN LNKNEW
****
2)27	;MACRO TO INITIALIZE REL FILE INPUT IN LNKNEW
**************
1)28	;.ERR. MACRO GENERATES USUAL CALLS TO ERROR/LOG MODULE
1)	;GENERAL FORM IS .ERR.	(TYP,FLG,VER,LVL,SEV,CODE,TXT)
1)	;TYP	IS OFFSET TO LOG/ERROR ENTRY
1)	;FLG	IS SOME FLAGS FOR SPECIAL CASES, SUCH AS
1)	;		.EP	CODE IS POINTER TO ERROR WORD
1)	;		.EC	ERROR OUTPUT IS CONTINUED
Digital Equipment Corporation       28-AUG-79    Page 300
PCO Log Report


1)	;		.EE	ERROR MAY BE EDITED AND JOB CONTINUE
1)	;		.EB	PRINT BLANK LINE IN LOG AFTER THIS MESSA
	GE
1)	
1)	;VER	IS VERBOSITY LEVEL (NOT USED YET)
1)	;LVL	IS ASSIGNED TYPE-OUT LEVEL
1)	;SEV	IS ASSIGNED SEVERITY LEVEL
1)	;CODE	IS ASSIGNED MESSAGE NMEMONIC
1)	;TXT	IS TEXT OF MESSAGE
1)	
1)	DEFINE	.ERR.	(TYP,FLG,VER,LVL,SEV,CODE,TXT)<
1)	 IFL L%MAX-LVL,<LVL=L%MAX>
1)	 %LVL==LVL-.LVL
 
 
1)	 IFGE %LVL,<
1)	  IFL V%MAX-VER,<VER=V%MAX>
1)	  IFL S%MAX-SEV,<SEV=S%MAX>
1)	  IFNB <TYP>,<
1)	   ERRUUO	ER%'TYP
1)	  >
1)	  IFNB <CODE>,<
1)	   IFNB <TXT>,<
1)	   EXP <FLG>+<VER>B<B%VER>+<SEV>B<B%SEV>+<LVL>B<B%LVL>+<[.ER'COD
	E::ASCIZ \CODE \
1)									
	   ASCIZ \TXT\]>>
1)	   IFB <TXT>,<
1)	    IF2,<
1)	    IFNDEF .ER'CODE,<EXTERN .ER'CODE>
1)	    >
1)	   EXP <FLG>+<VER>B<B%VER>+<SEV>B<B%SEV>+<LVL>B<B%LVL>+<.ER'CODE
	>>
1)	  >
1)	  IFB <CODE>,<
1)	   EXP <FLG>+<VER>B<B%VER>+<SEV>B<B%SEV>+<LVL>B<B%LVL>+<[ ASCIZ
	\TXT\]>>
1)	  >
****
2)28	;**;[1144] Replace .ERR. macro	DZN	16-Feb-79
2)	;.ERR. MACRO GENERATES USUAL CALLS TO ERROR/LOG MODULE. GENERAL
	FORM IS:
2)	;
2)	;	.ERR.	(TYP,FLG,VER,LVL,SEV,CODE,TXT)
2)	;	.ETC.	(TYP,FLG,,,,CODE,TXT)
2)	;	...
2)	;
2)	;TYP	TYPE OF ERROR, USED AS DISPATCH, ONE OF:
2)	;	MS	PRINTS SELF-EXPLANATORY MESSAGE
2)	;	LRE	LOOKUP/RENAME/ENTER ERROR, I/O CHANNEL ON STACK,
	 PRINTS REASON
Digital Equipment Corporation       28-AUG-79    Page 301
PCO Log Report


2)	;		AND FILE
2)	;	I	INIT/OPEN ERROR, I/O CHANNEL ON STACK, PRINTS DE
	VICE
2)	;	ST	I/O ERROR, CHANNEL ON STACK, PRINTS STATUS AND F
	ILE
2)	;FLG	LOGICAL 'OR' OF SPECIAL CASE FLAGS, SUCH AS:
2)	;	.EP	CODE IS POINTER TO ERROR WORD
2)	;	.EC	ERROR OUTPUT IS CONTINUED (MORE .ETC.'S COMING)
2)	;	.EE	ERROR MAY BE EDITED AND JOB CONTINUED
2)	;	.EB	PRINT BLANK LINE IN LOG AFTER THIS MESSAGE
2)	;	.EN	.ERR. WITHOUT MESSAGE (JUST CODE)
2)	;VER	VERBOSITY LEVEL, ONE OF:
2)	;	V%S	ONLY PREFIX AVAILABLE (LNKxxx)
2)	;	V%M	PREFIX AND FIRST LINE AVAILABLE
2)	;	V%L	PREFIX, FIRST LINE AND LONG EXPLANATION AVAILABL
	E
2)	;LVL	ASSIGNED TYPE-OUT LEVEL (WHETHER TO PRINT)
2)	;SEV	ASSIGNED SEVERITY LEVEL (WHETHER [, % OR ?)
2)	;CODE	MESSAGE NMEMONIC (THE xxx IN LNKxxx)
2)	;TXT	TEXT OF MESSAGE
2)	
2)	DEFINE	.ERR.(TYP,FLG,VER,LVL,SEV,CODE,TXT)<
2)	  IFL L%MAX-LVL,<LVL=L%MAX>
2)	  %LVL==LVL-.LVL
2)	  IFGE %LVL,<
2)	    IFL V%MAX-VER,<VER=V%MAX>
2)	    IFL S%MAX-SEV,<SEV=S%MAX>
2)	    IFNB <TYP>,<
2)	      ERRUUO ER%'TYP
 
 
2)	    >
2)	    IFNB <CODE>,<
2)	      ..PTR==1			;;[1144] ASSUME POINTER TO MESSA
	GE
2)	      IFNB <TXT>,<..PTR==0>	;;[1144] TEXT SPECIFIED--NO POIN
	TER
2)	      IFN <<FLG>&.EN>,<..PTR==0>;;[1144] TEXT EXPLICTLY MISSING-
	-NO POINTER
2)	      IFE ..PTR,<		;;[1144] GENERATE TEXT HERE
2)	        EXP <FLG>+<VER>B<B%VER>+<SEV>B<B%SEV>+<LVL>B<B%LVL>+<^_
2)	          [
2)	            .ER'CODE::ASCIZ \CODE \
2)	            IFE <<FLG>&.EN>,<ASCIZ \TXT\>
2)	          ]^_
2)	        >
2)	      >
2)	      IFN ..PTR,<		;;[1144] GENERATE POINTER TO MES
	SAGE
2)	        IF2,<
2)	          IFNDEF .ER'CODE,<EXTERN .ER'CODE>
Digital Equipment Corporation       28-AUG-79    Page 302
PCO Log Report


2)	        >
2)	        EXP <FLG>+<VER>B<B%VER>+<SEV>B<B%SEV>+<LVL>B<B%LVL>+<.ER
	'CODE>
2)	      >
2)	      PURGE ..PTR		;;[1144]
2)	    >
2)	    IFB <CODE>,<
2)	      EXP <FLG>+<VER>B<B%VER>+<SEV>B<B%SEV>+<LVL>B<B%LVL>+<[ ASC
	IZ \TXT\]>
2)	    >
2)	  >
**************
1)28	
1)29	;CONTINUED ERROR WORDS HAVE SIMILAR FORM
1)	;DIFFERENCES ARE
1)	;TYP	IS STORED IN LVL FIELD
1)	;VER	IS USUALLY BLANK
1)	;LVL	IS USUALLY BLANK
1)	;SEV	IS USUALLY BLANK
1)	;CODE	IS LOCATION OF ERROR POINTER
1)	;
1)	
****
2)29	;CONTINUED ERROR WORDS HAVE SIMILAR FORM. DIFFERENCES ARE:
2)	;TYP	INTERNALLY STORED IN LVL FIELD, ONE OF:
2)	;	STR	ASCII STRING, TXT IS MESSAGE, OR CODE IS ADDRESS
	 OF IT
2)	;	SBX	CODE IS ADDRESS OF SIXBIT WORD
2)	;	OCT	CODE IS ADDRESS OF OCTAL WORD
2)	;	DEC	CODE IS ADDRESS OF DECIMAL WORD
2)	;	FSP	CODE IS I/O CHANNEL, PRINT THE FILE SPEC
2)	;	ASC	CODE IS ADDRESS OF ASCII CHARACTER
2)	;	COR	CODE IS ADDRESS OF CORE SIZE, PRINT nK OR nP
2)	;	JMP	CODE IS ADDRESS OF NEW LIST OF .ETC.'S
2)	;VER	BLANK
2)	;LVL	BLANK
2)	;SEV	BLANK
2)	;CODE	SET UP ACCORDING TO TYPE ABOVE
2)	;TXT	BLANK, OR ASCII TEXT IF .EP NOT SPECIFIED AND TYP = STR
2)	
**************
1)29	
1)	
 
 
1)	
1)30	;DEFINE ALL MAIN ERROR TYPES
****
2)30	;DEFINE ALL MAIN ERROR TYPES
**************
1)31	;BIT POSITIONS
Digital Equipment Corporation       28-AUG-79    Page 303
PCO Log Report


1)	B%VER==:^D5		;VERBOSITY FIELD
1)	B%SEV==:^D11		;SEVERITY FIELD
1)	B%LVL==:^D17		;LEVEL FIELD
1)	
****
2)31	;**;[1144] Replace @B%VER-1L	DZN	16-Feb-79
2)	;	 0      5 67 8   12 13    17 18                       35
2)	;	!-------------------------------------------------------
	!
2)	;	! Flags  !VB!SEVERE!LOG LVL !    ADDRESS OF ARGUMENT
	!
2)	;	!-------------------------------------------------------
	!
2)	
2)	;FLAGS
2)	.EP==1B0		;[1144] WORD IS A POINTER, **MUST** BE S
	IGN BIT
2)	.EC==1B1		;[1144] WORD IS CONTINUED
2)	.EE==1B2		;[1144] ERROR CAN BE EDITED
2)	.EB==1B3		;[1144] PRINT BLANK LINE IN LOG AFTER TH
	IS MESSAGE
2)	.EN==1B4		;[1144] .ERR. WITHOUT MESSAGE (JUST CODE
	)
2)	
2)	;BIT POSITIONS
2)	B%VER==:^D7		;[1144] VERBOSITY FIELD
2)	B%SEV==:^D12		;[1144] SEVERITY FIELD
2)	B%LVL==:^D17		;LEVEL FIELD
2)	
2)	;MAXIMUM VALUES
2)	V%MAX==:3		;[1144] VERBOSITY FIELD
2)	S%MAX==:37		;[1144] SEVERITY FIELD
2)	L%MAX==:37		;[1144] LEVEL FIELD
2)	
2)	;FIELD POSITIONS
2)	F%VER==:<V%MAX>B<B%VER>	;[1144] VERBOSITY FIELD
2)	F%SEV==:<S%MAX>B<B%SEV>	;[1144] SEVERITY FIELD
2)	F%LVL==:<L%MAX>B<B%LVL>	;[1144] LEVEL FIELD
2)	
**************
1)31	
1)	;SEVERITY
****
2)31	;SEVERITY
**************
1)31	;MAXIMUM VALUES
1)	V%MAX==:3
1)	L%MAX==:37
1)	S%MAX==:37
1)	
1)	DEFINE LEVELS (ITEM,LEVEL)<
Digital Equipment Corporation       28-AUG-79    Page 304
PCO Log Report


****
2)31	;**;[1144] Delete @L%F+2L	DZN	16-Feb-79
2)	DEFINE LEVELS (ITEM,LEVEL)<
**************
1)31	;FLAGS
 
 
1)	.EP==1B0		;WORD IS A POINTER
1)	.EC==1B1		;WORD IS CONTINUED
1)	.EE==1B2		;ERROR CAN BE EDITED
1)	.EB==1B3		;PRINT BLANK LINE IN LOG AFTER THIS MESS
	AGE
1)	
1)	%ENT==1B0		;ENTER ERROR
****
2)31	;**;[1144] Delete @.EP-1L	DZN	16-Feb-79
2)	%ENT==1B0		;ENTER ERROR
**************
1)32	
1)33	DEFINE SWTCHS<
****
2)33	DEFINE SWTCHS<
**************
1)34	
1)	
1)	
1)35	SUBTTL	DEFAULT VALUES
****
2)35	SUBTTL	DEFAULT VALUES
**************
1)36	\
1)	
1)	
1)37	SUBTTL	PRE-DEFINED KEYWORDS
****
2)37	SUBTTL	PRE-DEFINED KEYWORDS
**************
1)39	
1)40	SUBTTL	OVERLAY TYPE KEY WORDS
****
2)40	SUBTTL	OVERLAY TYPE KEY WORDS
**************
1)41	
1)41	
 
Digital Equipment Corporation       28-AUG-79    Page 305
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOW.MAC[30,4507]  	created: 1625 22-Sep-1978
File 2)	LINK:LNKLOW.MAC[10,645063]	created: 0049 17-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC	22-Sep-78-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC/DZN	16-Feb-79
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	
**************
1)1	DECEVR==1120		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1144		;DEC EDIT VERSION
2)	
**************
1)1	
1)	SALL
****
2)1	SALL
**************
1)2	
****
2)2	;1144	Add DDTMAP to flag that DDT has been mapped in.
2)	
**************
1)4	
1)	
1)5	SUBTTL	PAGING DATA
****
2)5	SUBTTL	PAGING DATA
**************
1)5	
1)6	SUBTTL	SYMBOL TABLE DATA
****
2)6	SUBTTL	SYMBOL TABLE DATA
**************
1)9	
1)10	;I/O BUFFER HEADERS
****
2)10	;I/O BUFFER HEADERS
**************
1)11	
Digital Equipment Corporation       28-AUG-79    Page 306
PCO Log Report


1)	
1)12	;FULL WORD SWITCHES
****
2)12	;FULL WORD SWITCHES
**************
1)12	EXECSW::BLOCK	1		;EXECUTION SWITCH
1)	DEBUGSW::BLOCK	1		;-1 IF START AT .JBDDT
1)	DDEBUG::BLOCK	1		;DEFAULT DEBUGGING AID
1)	FORLIB::BLOCK	1		;EITHER FORSE OR FOROTS
****
2)12	;**;[1144] Replace @EXECSW	DZN	16-Feb-79
 
 
2)	EXECSW::BLOCK	1		;[1144] -1,,x IF /EXECUTE, x = A
	DDR TO START
2)	DEBUGSW::BLOCK	1		;[1144] -1,,INDEX IF /DEBUG, 0,,
	INDEX IF /TEST
2)	DDEBUG::BLOCK	1		;DEFAULT DEBUGGING AID
2)	DDTMAP::BLOCK	1		;[1144] -1 IF DDT HAS BEEN MAPPE
	D IN
2)	FORLIB::BLOCK	1		;EITHER FORSE OR FOROTS
**************
1)12	
1)	
1)13	NEGOFF==:400
****
2)13	NEGOFF==:400
**************
1)13	
1)14	SUBTTL	PLOT DATA STORAGE
****
2)14	SUBTTL	PLOT DATA STORAGE
**************
1)15	
1)	
1)16	;DATA REQUIRED FOR OVERLAYS
****
2)16	;DATA REQUIRED FOR OVERLAYS
**************
 
Digital Equipment Corporation       28-AUG-79    Page 307
PCO Log Report


[FILCOM]
File 1)	LINK:LNKERR.MAC[30,4507]  	created: 1309 30-Jan-1979
File 2)	LINK:LNKERR.MAC[10,645063]	created: 0039 17-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	30-Jan-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	16-Feb-79
2)	
**************
1)1	DECEVR==1133		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1144		;DEC EDIT VERSION
2)	
**************
1)1	
1)	
1)2	SUBTTL	REVISION HISTORY
****
2)2	SUBTTL	REVISION HISTORY
**************
1)2	
****
2)2	;1144	Add long messages for LNKNSA, LNKDLT, LNKXCT, LNKDEB and
	 LNKGFE.
2)	
**************
1)4	
1)	
1)	
1)5	SUBTTL	HASH MACROS
****
2)5	SUBTTL	HASH MACROS
**************
1)6	
1)7	SUBTTL	HASH TABLE
****
2)7	SUBTTL	HASH TABLE
**************
1)9	DEB	 *	 1	[name] execution
1)	DLT	 *	 1	Execution deleted
****
2)9	DEB	 *	 1	[Debugger] execution
2)	DLT	 *	 1	Execution deleted
**************
1)9	GSE	31	31	(Indexed file LOOKUP, ENTER, or RENAME e
	rror)
****
2)9	GFE	31	31	GTJFN% JSYS failed for [file]
2)	GSE	31	31	(Indexed file LOOKUP, ENTER, or RENAME e
Digital Equipment Corporation       28-AUG-79    Page 308
PCO Log Report


	rror)
**************
1)9	XCT	 *	 1	[name] Execution
1)	ZSV	 8	 8	Zero switch value illegal
****
2)9	XCT	 *	 1	[Name] execution
2)	ZSV	 8	 8	Zero switch value illegal
**************
1)10	;(There is no long text for the DEB message.)
1)	
1)	;(There is no long text for the DLT message.)
1)	
 
 
****
2)10	;**;[1144] Replace before DNA long message	DZN	16-Feb-7
	9
2)	HASH	DEB,0,<^_
2)		LINK  is beginning program execution at the named debugg
	er
2)		which you have specified.>
2)	
2)	HASH	DLT,0,<^_
2)		Though  you  have asked for program execution, LINK cann
	ot
2)		proceed due to earlier fatal compiler or LINK errors.>
2)	
**************
1)10	HASH	GSE,@
****
2)10	;**;[1144] Insert before LNKGST long message	DZN	16-Feb-7
	8
2)	HASH	GFE,0,<^_
2)		While  attempting to run your program from the named fil
	e,
2)		LINK received an error from the monitor.  This message
	is
2)		not  expected  to  occur.  If  it does, please notify yo
	ur
2)		Software Specialist or send a Software Performance  Repo
	rt
2)		(SPR) to DIGITAL.>
2)	
2)	HASH	GSE,@
**************
1)10	;(There is no long text for the NSA message.)
1)	
****
2)10	;**;[1144] Replace before LNKOAS long message	DZN	16-Feb-7
	9
2)	HASH	NSA,0,<^_
Digital Equipment Corporation       28-AUG-79    Page 309
PCO Log Report


2)		Your  program  does  not have a starting address. This c
	an
2)		happen if you neglect to  load  a  main  program.  Progr
	am
2)		execution,  if  requested,  will  be suppressed unless y
	ou
2)		specified debugger execution.>
2)	
**************
1)10	;(There is no long text for the XCT message.)
1)	
****
2)10	;**;[1144] Replace before LNKZSV long message	DZN	16-Feb-7
	9
2)	HASH	XCT,0,<^_
2)		LINK is beginning execution of your program.>
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 310
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOG.MAC[30,4507]  	created: 1431 01-Mar-1978
File 2)	LINK:LNKLOG.MAC[10,645063]	created: 0045 17-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG	27-Feb-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/DZN	16-Feb-79
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1144		;DEC EDIT VERSION
2)	
**************
1)1	
1)2	SUBTTL	REVISION HISTORY
****
2)2	SUBTTL	REVISION HISTORY
**************
1)3	SUBTTL	ENTER HERE FROM LINK-10
1)	;UUO TYPE IS IN AC T1
****
2)2	;START OF VERSION 4A.
2)	;1144	Support .EN (no message specified with .ETC.).
2)	
2)3	SUBTTL	ENTER HERE FROM LINK
2)	;UUO TYPE IS IN AC T1
**************
1)4		HRRZ	T1,P1		;ADDRESS OF MESSAGE STRING
****
2)4	;**;[1144] Insert before ER.MS+4L	DZN	16-Feb-79
2)		TXNE	P1,.EN		;[1144] SEE IF THERE'S A MESSAGE
	 TO PRINT
2)		JRST	ERRNXT		;[1144] NO--DON'T PRINT ANYTHING
2)		HRRZ	T1,P1		;ADDRESS OF MESSAGE STRING
**************
1)4		LDB	T1,BTHPTR	;GET SEVERITY AND VERBOSITY
1)		AOS	UUOTRAP		;ADVANCE RETURN POINTER
1)		MOVE	P1,@UUOTRAP	;GET ADDRESS OF OUTPUT INFO
Digital Equipment Corporation       28-AUG-79    Page 311
PCO Log Report


1)		DPB	T1,BTHPTR	;STORE SEVERITY AGAIN
1)		TRNN	P1,-1		;IF ZERO , ITS ON THE STACK
****
2)4	;**;[1144] Replace @ERRNXT+2L	DZN	16-Feb-79
2)		LDB	T1,VSPTR	;[1144] GET VERBOSITY AND SEVERI
	TY
2)		AOS	UUOTRAP		;ADVANCE RETURN POINTER
2)		MOVE	P1,@UUOTRAP	;GET ADDRESS OF OUTPUT INFO
2)		DPB	T1,VSPTR	;[1144] STORE VERBOSITY AND SEVE
	RITY AGAIN
2)		TRNN	P1,-1		;IF ZERO , ITS ON THE STACK
**************
1)5	
1)6	;HERE WHEN LOG FILE GETS ERROR
 
 
****
2)6	;HERE WHEN LOG FILE GETS ERROR
**************
1)7	
1)8	ERXIT:	MOVEI	T1,FINMES	;TELL USER WE CLOSED FILE
****
2)8	ERXIT:	MOVEI	T1,FINMES	;TELL USER WE CLOSED FILE
**************
1)8	
1)9	NOERR:	TXNN	P1,.EC		;MORE TO DO?
****
2)9	NOERR:	TXNN	P1,.EC		;MORE TO DO?
**************
1)10		TLNE	P1,(77B<B%SEV>)	;DO WE HAVE SEVERITY?
1)		JRST	ERLRE2		;YES
****
2)10	;**;[1144] Replace @ER.LRE+1L	DZN	16-Feb-79
2)		TXNE	P1,F%SEV	;[1144] DO WE HAVE SEVERITY?
2)		JRST	ERLRE2		;YES
**************
1)10		DPB	T3,[POINT 12,P1,B%LVL]	;STORE SEV AND LEVEL
1)		LDB	T3,SEVPTR	;GET SEVERITY
****
2)10	;**;[1144] Replace @ER.LRE+12L	DZN	16-Feb-79
2)		DPB	T3,SLPTR	;[1144] STORE SEVERITY AND LEVEL
2)		LDB	T3,SEVPTR	;GET SEVERITY
**************
1)10		TLO	P1,(<S%F>B<B%SEV>)	;MARK AS FATAL
1)	ERLRE2:	PUSHJ	P,CHKCHN	;IF EDITABLE, SEE IF FATAL
****
2)10	;**;[1144] Replace @ER.LRE+17L	DZN	16-Feb-79
2)		TXO	P1,F%SEV	;[1144] MARK AS FATAL
2)	ERLRE2:	PUSHJ	P,CHKCHN	;IF EDITABLE, SEE IF FATAL
**************
1)10		HRRZ	T1,P1		;ADDRESS OF MESSAGE
Digital Equipment Corporation       28-AUG-79    Page 312
PCO Log Report


1)		OUTVIA	.TSTRG##	;OUTPUT ON TTY AND/OR LOG
1)		POP	P,T4		;RESTORE CHAN PLUS FLAGS
1)	IFE FTSINGLE,<
****
2)10	;**;[1144] Insert before ERLRE2+3L	DZN	16-Feb-79
2)		TXNE	P1,.EN		;[1144] SEE IF THERE'S TEXT TO P
	RING
2)		JRST	ERLRE3		;[1144] NO--DON'T PRINT ANYTHING
2)		HRRZ	T1,P1		;ADDRESS OF MESSAGE
2)		OUTVIA	.TSTRG##	;OUTPUT ON TTY AND/OR LOG
2)	ERLRE3:	POP	P,T4		;[1144] RESTORE CHAN PLUS FLAGS
2)	IFE FTSINGLE,<
**************
1)11	ERLRE3:	HRRZ	T1,P1		;POINT TO SCAN BLOCK
1)	ERFSPC:	OUTVIA	.TEBLK		;OUTPUT LOOKUP BLOCK
****
2)11	;**;[1144] Replace @ERLRE3	DZN	16-Feb-79
2)		HRRZ	T1,P1		;[1144] POINT TO SCAN BLOCK
2)	ERFSPC:	OUTVIA	.TEBLK		;OUTPUT LOOKUP BLOCK
**************
1)11	
1)	
 
 
1)12	IFE FTSINGLE,<
****
2)12	IFE FTSINGLE,<
**************
1)13		HRRZ	T1,P1		;GET MESSAGE
1)		OUTVIA	.TSTRG##
1)		POP	P,T4		;GET CHAN#
1)		PUSHJ	P,CHKCHN	;SETUP CHAN# IF EDITABLE
****
2)13	;**;[1144] Insert before ER.I+2L	DZN	16-Feb-79
2)		TXNE	P1,.EN		;[1144] ANY MESSAGE TO PRINT?
2)		JRST	ERI1		;[1144] NO--DON'T PRINT ANYTHING
2)		HRRZ	T1,P1		;GET MESSAGE
2)		OUTVIA	.TSTRG##
2)	ERI1:	POP	P,T4		;[1144] GET CHAN#
2)		PUSHJ	P,CHKCHN	;SETUP CHAN# IF EDITABLE
**************
1)13	
1)	
1)14	;STATUS CHECK ERRORS
****
2)14	;STATUS CHECK ERRORS
**************
1)14		HRRZ	T1,P1		;GET MESSAGE
1)		OUTVIA	.TSTRG##
1)		MOVEI	T1,[ASCIZ \ STATUS \]
1)		OUTVIA	.TSTRG##
Digital Equipment Corporation       28-AUG-79    Page 313
PCO Log Report


****
2)14	;**;[1144] Replace @ER.ST+2L	DZN	16-Feb-79
2)		TXNE	P1,.EN		;[1144] ANY MESSAGE TO TYPE?
2)		JRST	ERST1		;[1144] NO--DON'T PRINT ANYTHING
2)		HRRZ	T1,P1		;GET MESSAGE
2)		OUTVIA	.TSTRG##
2)		MOVX	T1," "		;[1144] SEPARATE MESSAGE FROM RE
	ST
2)		OUTVIA	.TCHAR##	;[1144]   ..
2)	ERST1:	MOVEI	T1,[ASCIZ \Status \] ;[1144]
2)		OUTVIA	.TSTRG##
**************
1)14		MOVEI	T1,[ASCIZ \ FOR \]
1)		OUTVIA	.TSTRG##
****
2)14	;**;[1144] Replace @ER.ST+12L	DZN	16-Feb-79
2)		MOVEI	T1,[ASCIZ \for \] ;[1144]
2)		OUTVIA	.TSTRG##
**************
1)14	
1)	
1)15	;INPUT CHAN CHECK
****
2)15	;INPUT CHAN CHECK
**************
1)16	
1)	
1)17	;CORE ARG EITHER K OR P (DECIMAL)
****
2)17	;CORE ARG EITHER K OR P (DECIMAL)
 
 
**************
1)17	
1)18	;RELATIVE POINTER TO TRIPLET(S) IN LS AREA
****
2)18	;RELATIVE POINTER TO TRIPLET(S) IN LS AREA
**************
1)18	
1)19	SUBTTL	USEFUL SUBROUTINES
****
2)19	SUBTTL	USEFUL SUBROUTINES
**************
1)22	
1)	
1)23	;UNSTCK REMOVES TOP DATA ITEM FROM STACK
****
2)23	;UNSTCK REMOVES TOP DATA ITEM FROM STACK
**************
1)23	VERPTR:	POINT	3,P1,B%VER	;VERBOSITY LEVEL
1)	SEVPTR:	POINT	6,P1,B%SEV	;SEVERITY LEVEL
Digital Equipment Corporation       28-AUG-79    Page 314
PCO Log Report


1)	BTHPTR:	POINT	9,P1,B%SEV	;SEVERITY AND VERBOSITY
1)	LVLPTR:	POINT	6,P1,B%LVL	;OUTPUT MESSAGE LEVEL
1)	
1)	
****
2)23	;**;[1144] Replace @VERPTR	DZN	16-Feb-79
2)	VERPTR:	POINTR	P1,F%VER	;[1144] VERBOSITY LEVEL
2)	SEVPTR:	POINTR	P1,F%SEV	;[1144] SEVERITY LEVEL
2)	LVLPTR:	POINTR	P1,F%LVL	;[1144] OUTPUT MESSAGE LEVEL
2)	
2)	VSPTR:	POINTR	P1,<F%VER!F%SEV>;[1144] VERBOSITY AND SEVERITY
2)	SLPTR:	POINTR	P1,<F%SEV!F%LVL>;[1144] SEVERITY AND MESSAGE LEV
	EL
2)	
**************
1)24	
1)25	;.TSBLK --TYPE GETSEG BLOCK (NOT SAME AS .TFBLK##)
****
2)25	;.TSBLK --TYPE GETSEG BLOCK (NOT SAME AS .TFBLK##)
**************
1)25	
1)26	;STANDARD ERROR MESSAGES - USED EVERYWHERE
****
2)26	;STANDARD ERROR MESSAGES - USED EVERYWHERE
**************
1)27	
1)27	
 
Digital Equipment Corporation       28-AUG-79    Page 315
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1136 16-Feb-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 2047 17-Feb-1979
 
1)1	EXTERN	LNKFIO,LNKCOR,LNKLOG,LNKMAP
****
2)1	IFN TOPS20,<SEARCH	MACSYM,MONSYM>
2)	EXTERN	LNKFIO,LNKCOR,LNKLOG,LNKMAP
**************
1)1	DECEVR==1142		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1144		;DEC EDIT VERSION
2)	
**************
1)1	
1)2	SUBTTL	REVISION HISTORY
****
2)2	SUBTTL	REVISION HISTORY
**************
1)3	
****
2)3	;1144	Remember if we mapped in DDT as a result of /DEBUG:DDT o
	n TOPS-20.
2)	
**************
1)4	
1)5	;HERE TO FILL IN DEFAULTS FOR INPUT DEVICE
****
2)5	;HERE TO FILL IN DEFAULTS FOR INPUT DEVICE
**************
1)12	
1)13	;HERE TO HANDLE SWITCHES
****
2)13	;HERE TO HANDLE SWITCHES
**************
1)13	
1)	
1)	
1)	
1)14	;HERE TO STORE SWITCHES THAT CAN NOT BE EXECUTED UNTIL FILE IS O
	PENED
****
2)14	;HERE TO STORE SWITCHES THAT CAN NOT BE EXECUTED UNTIL FILE IS O
	PENED
**************
1)14	
1)	
1)15	SUBTTL	DISPATCH TABLE FOR SWITCHES
****
2)15	SUBTTL	DISPATCH TABLE FOR SWITCHES
Digital Equipment Corporation       28-AUG-79    Page 316
PCO Log Report


**************
1)15	
1)16	SUBTTL SWITCH ACTION
****
2)16	SUBTTL SWITCH ACTION
**************
1)16	
1)17	IFE TOPS20,<
****
2)17	IFE TOPS20,<
**************
1)17	
 
 
1)	
1)18	%COUNTER:
****
2)18	%COUNTER:
**************
1)19		JRST	DDT10X		;SPECIAL FOR TENEX DDT
1)	>
****
2)19	;**;[1144] Replace @DEBUG1+34L	DZN	16-Feb-79
2)		JRST	MAPDDT		;[1144] MAP IN UDDT RIGHT NOW
2)	>
**************
1)19	
1)20	SPCDDT:	SKIPN	MNTYPE		;HAVE WE LOADED A MAIN PROGRAM Y
	ET?
****
2)20	SPCDDT:	SKIPN	MNTYPE		;HAVE WE LOADED A MAIN PROGRAM Y
	ET?
**************
1)21	;HERE FOR TENEX DDT
1)	IFN TOPS20,<
1)	DDT10X:	MOVSI	T1,100001	;
1)		HRROI	T2,[ASCIZ	/SYS:UDDT.EXE/]
1)		GTJFN
1)		  JRST	TXDDTR		;FAILED
1)		PUSH	P,T1		;DDT JFN
1)		MOVEI	T1,400000	;LINK-10 EV
1)		GEVEC
1)		POP	P,T1
1)		PUSH	P,T2
1)		HRLI	T1,400000	;THIS FORK
1)		GET
1)		MOVEI	T1,400000
1)		GEVEC			;DDT'S EV
1)		MOVE	T3,LC.LB	;OFFSET
1)		MOVEM	T2,.JBDDT(T3)
1)		POP	P,T2
Digital Equipment Corporation       28-AUG-79    Page 317
PCO Log Report


1)		SEVEC			;RESTORE LINK-10'S EVEC
1)		TRO	FL,L.SYM	;SHOULD BE ON BY DEFAULT
1)		SETOM	NULSPC
1)		SETZM	F.NAME(P1)
1)		JRST	LNKWLD		;FORGET DDT REQUEST AND GET NEXT
	 FILE
****
2)21	;**;[1144] Revamp @DDT10X	DZN	16-Feb-79
2)	;HERE FOR /DEBUG:DDT ON TOPS-20. SINCE THERE IS NO .REL FILE FOR
	 DDT ON TOPS-20,
2)	;WE MUST MERGE UDDT.EXE RIGHT INTO THE CORE IMAGE. IN THE EVENT
	THAT THE PROGRAM
2)	;LOADS INTO MEMORY, SIMPLY MAP DDT INTO LINK'S ADDRESS SPACE NOW
	 AND IT WILL BE
2)	;PROPERLY PLACED WHEN LOADING IS COMPLETED. IF LINK MUST (OR IS
	REQUESTED TO)
2)	;WRITE AN .EXE FILE, UDDT WILL NOT BE THERE, BUT AN EXEC DDT COM
	MAND WILL THEN
2)	;MERGE IN DDT. IF DDT IS ALREADY MAPPED IN, LEAVE IT ALONE. THIS
	 HAPPENS IF LINK
2)	;IS BEING DEBUGGED.
2)	
2)	IFN TOPS20,<
2)	MAPDDT:	MOVX	T1,<.FHSLF,,770>;[1144] SEE IF PAGE 770 EXISTS
2)		RPACS			;[1144]   ..
2)		TXNN	T2,PA%EX	;[1144]   ..
2)		JRST	MAPDD1		;[1144] NO--CAN'T BE ANY DDT THE
	RE
2)		MOVE	T1,770000	;[1144] SEE IF IT'S DDT THAT'S T
	HERE
 
 
2)		CAMN	T1,[JRST 770002];[1144] CROCK, BUT THIS IS WHAT
	EXEC DOES
2)		JRST	MAPDD2		;[1144] IT'S DDT--DON'T DESTROY
	IT
2)	MAPDD1:	MOVX	T1,GJ%OLD!GJ%SHT;[1144] NO DDT THERE--LOAD IT
2)		HRROI	T2,[ASCIZ /SYS:UDDT.EXE/]
2)		GTJFN			;[1144] FIND UDDT
2)		  ERJMP	TXDDTR		;[1144] FAILED
2)		PUSH	P,T1		;[1144] SAVE JFN FOR UDDT
2)		MOVX	T1,.FHSLF	;[1144] SAVE LINK'S CURRENT ENTR
	Y VECTOR
2)		GEVEC			;[1144]   ..
2)		POP	P,T1		;[1144] GET BACK JFN FOR UDDT
2)		PUSH	P,T2		;[1144] REMEMBER LINK'S ENTRY VE
	CTOR
2)		HRLI	T1,.FHSLF	;[1144] NOW BRING IN UDDT WHICH
2)		GET			;[1144]   DESTROYS LINK'S ENTRY
	VECTOR
2)		MOVX	T1,.FHSLF	;[1144] SO RESTORE LINK'S ENTRY
Digital Equipment Corporation       28-AUG-79    Page 318
PCO Log Report


	VECTOR
2)		POP	P,T2		;[1144]   ..
2)		SEVEC			;[1144]   ..
2)	MAPDD2:	SETOM	NULSPC		;[1144] REMEMBER TO THROW AWAY T
	HIS SPEC
2)		SETZM	F.NAME(P1)	;[1144]   ..
2)		SETOM	DDTMAP		;[1144] REMEMBER THAT WE'VE MAPP
	ED DDT
2)		JRST	LNKWLD		;FORGET DDT REQUEST AND GET NEXT
	 FILE
**************
1)21	
1)22	;TABLE OF NAMES OF DEBUGGING AIDS
****
2)22	;TABLE OF NAMES OF DEBUGGING AIDS
**************
1)25	
1)26	;INCLUDE/EXCLUDE SWITCHES
****
2)26	;INCLUDE/EXCLUDE SWITCHES
**************
1)34	
1)35	.LOCALS:
****
2)35	.LOCALS:
**************
1)38	
1)39	%SET:
****
2)39	%SET:
**************
1)39	
1)40	;**;[1132] Change @ SET2	JNG	30-Jan-79
****
2)40	;**;[1132] Change @ SET2	JNG	30-Jan-79
**************
1)40	
1)41	%SEVERITY:
****
2)41	%SEVERITY:
**************
1)41	
1)42	%SYMSEG:	PUSHJ	P,STRLSW	;[705] WAIT TIL FILE LOA
	DED
****
2)42	%SYMSEG:	PUSHJ	P,STRLSW	;[705] WAIT TIL FILE LOA
	DED
**************
 
 
1)43	
Digital Equipment Corporation       28-AUG-79    Page 319
PCO Log Report


1)44	%SYSLIBRARY:
****
2)44	%SYSLIBRARY:
**************
1)44	
1)45	%USERLIBRARY:
****
2)45	%USERLIBRARY:
**************
1)47	
1)48	;**;[1122] Replace @%VERSION	DZN	5-Oct-78
****
2)48	;**;[1122] Replace @%VERSION	DZN	5-Oct-78
**************
1)50	
1)51	%XPN:
****
2)51	%XPN:
**************
1)51	
1)52	%LOG:
****
2)52	%LOG:
**************
1)54	
1)55	.SKIP:
****
2)55	.SKIP:
**************
1)55	
1)56	.MTAPE:
****
2)56	.MTAPE:
**************
1)56	
1)57	%ZERO:
****
2)57	%ZERO:
**************
1)57	
1)58	CHKLSW:	MOVE	T3,IO.CHN	;GET CHAN
****
2)58	CHKLSW:	MOVE	T3,IO.CHN	;GET CHAN
**************
1)64	
1)65	;ERROR MESSAGES
****
2)65	;ERROR MESSAGES
**************
 
Digital Equipment Corporation       28-AUG-79    Page 320
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1219 30-Jan-1979
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 2146 17-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	30-Jan-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	16-Feb-79
2)	
**************
1)1	EXTERN	LNKCOR,LNKLOG,LNKFIO
****
2)1	IFN TOPS20,<SEARCH	MACSYM, MONSYM>
2)	EXTERN	LNKCOR,LNKLOG,LNKFIO
**************
1)1	DECEVR==1132		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1144		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1144	Zap PA1050 but not DDT on /EXECUTE, /DEBUG when running
	from .EXE file.
2)	
**************
1)8	
1)9	;HERE TO READ IN FIRST 10 WORDS OF HIGH SEGMENT
****
2)9	;HERE TO READ IN FIRST 10 WORDS OF HIGH SEGMENT
**************
1)11	
1)12	UDFGB0:	TXNE	W1,S.LST	;IS THIS THE LAST BLOCK
****
2)12	UDFGB0:	TXNE	W1,S.LST	;IS THIS THE LAST BLOCK
**************
1)19	
1)20	IFN FTOVERLAY,<
****
2)20	IFN FTOVERLAY,<
**************
1)24	
1)	
1)	
1)25	;HERE TO READ MORE SYMBOLS IF THEY ARE ON DSK
****
2)25	;HERE TO READ MORE SYMBOLS IF THEY ARE ON DSK
**************
1)29	
1)30	;HERE WHEN WE HAVE TO OUTPUT CORE
Digital Equipment Corporation       28-AUG-79    Page 321
PCO Log Report


****
2)30	;HERE WHEN WE HAVE TO OUTPUT CORE
**************
1)31	
1)	
1)32	;HERE IF TOP OF SYMBOL TABLE IS ALREADY IN CORE
****
2)32	;HERE IF TOP OF SYMBOL TABLE IS ALREADY IN CORE
**************
1)34	
 
 
1)35	SYDONE:	SKIPE	PAG.S1		;PAGING LOW SEG?
****
2)35	SYDONE:	SKIPE	PAG.S1		;PAGING LOW SEG?
**************
1)35	
1)36	SUBTTL	ROUTINES FOR SYMBOLS
****
2)36	SUBTTL	ROUTINES FOR SYMBOLS
**************
1)47					;NOW SETUP STARTING ADDRESS FOR
	EXECUTION
1)		SETZ	T1,		;INITIALLY ZERO
1)		SKIPE	EXECSW		;GO INTO EXECUTION?
1)		MOVE	T1,STADDR	;YES, ASSUME .JBSA
1)		SKIPGE	DEBUGSW		;UNLESS DEBUG
1)		MOVE	T1,.JBDDT(P1)	;INWHICH CASE ASSUME DDT SETUP
1)		HRRM	T1,EXECSW	;IN ANY CASE STORE BACK IN EXECS
	W
****
2)47	;**;[1144] Replace @JOBST0+3L	DZN	16-Feb-79
2)	
2)	;  ..
2)	
2)48	;  ..
2)	
2)	;COMPUTE ADDRESS AT WHICH TO START PROGRAM. IF A DEBUGGER IS LOA
	DED, THIS IS NOT
2)	;NECESSARILY THE MAIN PROGRAM'S START ADDRESS, BUT DEPENDS ON TH
	E DEBUGGER.
2)	
2)		SETZ	T1,		;[1144] ASSUME WE DON'T START PR
	OGRAM
2)		SKIPE	EXECSW		;GO INTO EXECUTION?
2)		MOVE	T1,STADDR	;YES, ASSUME .JBSA
2)		HRRZ	T2,DEBUGSW	;[1144] IF DEBUGGING, DEBUGGER'S
	 START ADDRESS
2)		SKIPGE	DEBUGSW		;[1144]   TAKES PRIORITY SO
2)		MOVE	T1,@STLOCN(T2)	;[1144]   FIND IT
2)		HRRM	T1,EXECSW	;IN ANY CASE STORE BACK IN EXECS
Digital Equipment Corporation       28-AUG-79    Page 322
PCO Log Report


	W
**************
1)48	;HERE TO SETUP REST OF VESTIGIAL JOBDAT AREA
****
2)48	
2)	DEFINE KEYMAC(A,B)<
2)	  XALL					;;[1144] GIVE A GOOD LIS
	TING
2)	  IFIDN <A><DEB>,<			;;[1144] SELECT ONLY DEB
	UGGING KEYWORDS
2)	    %%1==-1				;;[1144] SKIP DUMMY ENTR
	Y
2)	    IRP B,<				;;[1144] CHECK EACH KEYW
	ORD
2)	      IFGE %%1,<			;;[1144]   THAT IS NOT T
	HE DUMMY
2)	        IFN <%%1&1>,<			;;[1144]   AND IS A DEGU
	GGER NAME
2)	          %%2==0			;;[1144] ASSUME WE WON'T
	 FIND A DEBUGGER
2)	          IFN TOPS20,<			;;[1144] TOPS-20 UDDT IS
	 SPECIAL
2)	            IFIDN <B><DDT>,<		;;[1144] CHECK FOR DDT D
	EBUGGER
2)		[770000]		;UDDT STARTS AT 770000
2)	              %%2==1			;;[1144] REMEMBER WE FOU
	ND A DEBUGGER
2)	            >
2)	          >
2)	          IFIDN <B><FORDDT>,<		;;[1144] FORDDT IS SPECI
	AL
2)		STADDR			;FORDDT FORCES START ADDRESS TO
	ITSELF
2)	            %%2==1			;;[1144] REMEMBER WE FOU
	ND A DEBUGGER
2)	          >
2)	          IFIDN <B><COBDDT>,<		;;[1144] COBDDT IS SPECI
	AL
 
 
2)		STADDR			;COBDDT GETS CONTROL FROM COBOL
	PROGRAM
2)	            %%2==1			;;[1144] REMEMBER WE FOU
	ND A DEBUGGER
2)	          >
2)	          IFE %%2,<			;;[1144] IF IT WASN'T AB
	OVE DEBUGGERS
2)		.JBDDT(P1)		;OTHER DEBUGGERS SET .JBDDT
2)	          >
2)	        >
2)	      >
Digital Equipment Corporation       28-AUG-79    Page 323
PCO Log Report


2)	      %%1==%%1+1			;;[1144] ADVANCE TO NEXT
	 ENTRY
2)	    >
2)	  >
2)	  PURGE %%1,%%2				;;[1144] CLEAN UP AFTERW
	ARD
2)	  SALL					;;[1144]   ..
2)	>
2)	
2)	STLOCN:	KEYWORDS
2)	
2)49	;HERE TO SETUP REST OF VESTIGIAL JOBDAT AREA
**************
1)51	
1)	;HERE TO OPEN XPN FILE (IF NOT PAGING) USING LC
****
2)52	;HERE TO OPEN XPN FILE (IF NOT PAGING) USING LC
**************
1)56	
1)	JBEXEA:	SKIPN	T1,LS.LB	;TO BOTTOM OF LS, IF IT'S THERE
****
2)57	JBEXEA:	SKIPN	T1,LS.LB	;TO BOTTOM OF LS, IF IT'S THERE
**************
1)57	
1)58	;HERE TO WRITE THE EXE FILE, COMPRESSING OUT ALL-ZERO PAGES
****
2)59	;HERE TO WRITE THE EXE FILE, COMPRESSING OUT ALL-ZERO PAGES
**************
1)74	
1)75	;HERE WHEN CURRENT WINDOW IS FULL
****
2)76	;HERE WHEN CURRENT WINDOW IS FULL
**************
1)77	
1)78	;NOW TO MOVE DOWN  THE REMAINING DATA IN THE BUFFER PRIOR TO
****
2)79	;NOW TO MOVE DOWN  THE REMAINING DATA IN THE BUFFER PRIOR TO
**************
1)78	
1)79	SUBTTL	RUN UUO
1)	
****
2)80	SUBTTL	FINAL LOADING CLEAN-UP
2)	
**************
1)79		JRST	ENDSAV		;[616] NO, DO RUN UUO OR EXIT
1)	
****
2)80	;**;[1144] Replace @ENDCMP+19L	DZN	16-Feb-79
2)		JRST	ENDSAV		;[1144] NO, RUN PROGRAM OR EXIT
 
Digital Equipment Corporation       28-AUG-79    Page 324
PCO Log Report


 
2)	
**************
1)79		JRST	RUNUUO		;YES, DO RUN UUO ON FILE
1)		SKIPN	N.ZER##		;RUN SWITCH PENDING?
****
2)80	;**;[1144] Replace @ENDSAV+2L	DZN	16-Feb-79
2)		JRST	RUNEXE		;[1144] YES, RUN THE .EXE FILE
2)		SKIPN	N.ZER##		;RUN SWITCH PENDING?
**************
1)79	
1)80	ENDCLR:	PHASE	0
****
2)81	ENDCLR:	PHASE	0
**************
1)80	
1)81	DEFINE KEYMAC (A,B)<
****
2)82	DEFINE KEYMAC (A,B)<
**************
1)82	;HERE FOR RUN UUO
1)	RUNUUO:	SKIPN	STADDR		;WARN USER IF NO STARTING ADDRES
	S
1)		OUTSTR	[ASCIZ	\[LNKNSA No start address]
1)	\]
1)		SKIPN	STADDR
1)		AOSA	T2,ERRNO	;PREVENT EXECUTION IF NO START A
	DDRESS
1)		MOVE	T2,ERRNO	;SAVE ERROR COUNT, GETS WIPED OU
	T
1)		SKIPL	DEBUGSW		;IF DDT
1)		SKIPA	P1,STADDR	;NO
1)		MOVE	P1,EXECSW	;NEED TO START AT IT
1)		SUB	P1,STADDR	;OFFSET OR 0
1)		MOVE	T1,[%RHIGH,,%RLOW]
1)		BLT	T1,%RUN		;MOVE DOWN RUN UUO
1)		SKIPGE	DEBUGSW		;IF DEBUGGING
1)		JRST	RUNUUD		;YES
1)		JUMPN	T2,RUNUU2	;ERRORS, TOO BAD U LOSE
1)		SKIPN	T2,RUNAME	;GET NAME TO CALL CORE IMAGE
1)		MOVE	T2,LODNAM	;USE DEFAULT IF NOT SET
1)		MOVE	T4,[POINT 7,%DEXM]
1)		SETZ	T1,		;CLEAR RECEIVING AC
1)		LSHC	T1,6		;GET NEXT CHAR
1)		ADDI	T1," "		;INTO ASCII
1)		IDPB	T1,T4
1)		JUMPN	T2,.-4		;MORE TO DO
1)		IDPB	T2,T4		;MAKE SURE A 0 THERE
1)	
1)83	;**;[1125] Insert @ RUNUU1	JNG	1-Nov-78
1)	RUNUU1:
Digital Equipment Corporation       28-AUG-79    Page 325
PCO Log Report


1)	IFE FTEXE,<
1)		SKIPN	T1,IO.PTR+HC	;[1125] GET HIGH SEG POINTER
1)	> ;END IFE FTEXE
1)		MOVE	T1,IO.PTR+LC	;SETTLE FOR LOW SEG IF NO HIGH
1)		MOVE	T2,I.DEV(T1)	;GET DEVICE
1)		MOVEM	T2,%RUN+0	;RUN DEVICE
1)		MOVE	T2,I.NAM(T1)	;FILE NAME
1)		MOVEM	T2,%RUN+1
1)	;**;[1125] Insert @ RUNUU1+6L	JNG	1-Nov-78
 
 
1)	IFE FTEXE,<
1)		SKIPN	T1,IO.PTR+LC	;[1125] MAKE SURE POINTING AT LO
	W SEG
1)		JRST	RUNUU3		;[1125] HISEG ONLY, USE .LOW
1)		MOVE	T2,I.EXT(T1)	;[1125] MAY AS WELL USE KNOWN EX
	T
1)		TLNN	T2,-1		;[1125] EXTENSION KNOWN?
1)	RUNUU3:	MOVSI	T2,'LOW'	;[1125] NO, USE .LOW
1)	> ;END IFE FTEXE
1)	IFN FTEXE,<
1)		MOVE	T2,I.EXT(T1)	;[1125] GET EXTENSION OF EXE FIL
	E
1)	> ;END IFN FTEXE
1)		HLLZM	T2,%RUN+2	;[1125] STORE EXTENSION & ZERO D
	ATE
1)		SETZM	%RUN+3		;CLEAR DATE TIME
1)		SETZM	%RUN+4		;PPN
1)		MOVE	T1,RUNCOR	;CORE FOR RUN UUO IF SET
1)		ADD	T1,RUNCOR+1	;IN CASE LK+HK
1)		MOVEM	T1,%RUN+5
1)		CAIGE	T1,%RUN+7	;USE LARGER OF WHAT WE WANT AND
	WHAT WE NEED
1)		MOVEI	T1,%RUN+7
1)		HRLI	T1,1		;REMOVE HIGH SEG IN EITHER CASE
1)		MOVEI	T2,%RUN		;ADDRESS OF RUN BLOCK
1)		HRL	T2,P1		;GET OFFSET
1)		JRST	%RLOW		;GO TO LOW SEG
1)	
1)	
1)	
1)84	RUNUUD:	MOVE	T1,DEBUGSW	;GET DEB INDEX
1)		DMOVE	T1,@DEBNAM(T1)	;GET NAME (POSSIBLE 6 CHARS  PLU
	S NULL)
1)		DMOVEM	T1,%DEXM	;STORE IT
1)		CAMN	T1,[ASCII \COBDD\]
1)		SETZ	P1,		;START AT MAIN PROG IF COBOL
1)	IFE FTKIONLY,<
1)		MOVE	T1,[ASCIZ \[LNKDEB \]		;
1)		MOVE	T1+1,1+[ASCIZ \[LNKDEB \]	;
1)	> ;END IFE FTKIONLY
Digital Equipment Corporation       28-AUG-79    Page 326
PCO Log Report


1)	IFN FTKIONLY,<
1)		DMOVE	T1,[ASCIZ \[LNKDEB \]		;
1)	> ;END IFN FTKIONLY
1)		DMOVEM	T1,%DEXH
1)		JRST	RUNUU1		;RETURN
1)	
1)	RUNUU2:	OUTSTR	DLTTXT
1)		JRST	ENDZAP		;AND DELETE USER
1)	DLTTXT:	ASCIZ	\?LNKDLT Execution Deleted\
1)	
1)85	;ENTER WITH :-
1)	;T1 = ARG FOR CORE UUO
1)	;T2 = ARG FOR RUN UUO
1)	
1)	%RHIGH:
1)		PHASE	.TEMP
1)	%RLOW:	CORE	T1,
1)		  JFCL
1)		OUTSTR	%DEXH
1)		OUTSTR	%DEXM		;NAME OF DEBUGGER
1)		OUTSTR	%REXM		;TELL USER
1)		RUN	T2,
 
 
1)		  HALT
1)		EXIT
1)	%DEXH:	ASCIZ	\[LNKXCT \
1)	%DEXM:	EXP	0,0
1)	%REXM:	ASCIZ	\ Execution]
1)	\
1)	
1)	%RUN:
1)		DEPHASE
1)	
****
2)83	SUBTTL	RUN THE PROGRAM
2)	
2)	;**;[1144] Revamp @RUNUUO	DZN	16-Feb-79
2)	RUNEXE:	SKIPE	STADDR		;[1144] INFORM USER IF NO START
	ADDRESS
2)		JRST	RUNEX1		;[1144] NO
2)		AOS	ERRNO		;[1144] DON'T START PROGRAM IF N
	O START ADDR
2)		.ERR.	(MS,0,V%L,L%F,S%I,NSA,<No start address>)
2)	RUNEX1:	SKIPE	ERRNO		;[1144] DON'T RUN IF ANY ERRORS
2)		SKIPGE	DEBUGSW		;[1144]   UNLESS DEBUGGING
2)		JRST	RUNEX2		;[1144] DO RUN PROGRAM
2)	RUNDLT:	.ERR.	(MS,0,V%L,L%F,S%F,DLT,<Execution deleted>)
2)		JRST	ENDZAP		;[1144] JUST ZERO MEMORY AND EXI
	T
2)	
Digital Equipment Corporation       28-AUG-79    Page 327
PCO Log Report


2)84	SUBTTL	RUN THE PROGRAM FROM EXE FILE -- TOPS-20
2)	
2)	IFN TOPS20,<
2)	RUNEX2:	MOVE	T1,[R%ACS,,ACS]	;[1144] COPY RUN CODE TO WRITABL
	E PLACE
2)		BLT	T1,ACS+R%17	;[1144]   ..
2)		MOVE	T1,[POINT 7,RUNSPC] ;[1144] BUILD TOPS-20 FILE S
	PEC OF .EXE FILE
2)		MOVE	T4,IO.PTR+LC	;[1144]   ..
2)		MOVE	T2,I.DEV(T4)	;[1144]   COPY DEVICE NAME
2)		PUSHJ	P,SIXTO7	;[1144]     ..
2)		MOVX	T2,":"		;[1144]   COPY DEVICE DELIMITER
2)		IDPB	T2,T1		;[1144]     ..
2)		MOVE	T2,I.NAM(T4)	;[1144]   COPY FILE NAME
2)		PUSHJ	P,SIXTO7	;[1144]     ..
2)		MOVX	T2,"."		;[1144]   COPY FILE TYPE DELIMIT
	ER
2)		IDPB	T2,T1		;[1144]     ..
2)		HLLZ	T2,I.EXT(T4)	;[1144]   COPY FILE TYPE
2)		PUSHJ	P,SIXTO7	;[1144]     ..
2)		SETZ	T2,		;[1144]   TURN INTO ASCIZ STRING
	 WITH A NUL
2)		IDPB	T2,T1		;[1144]     ..
2)		MOVX	T1,GJ%OLD+GJ%SHT;[1144] GO FIND THE FILE
2)		HRROI	T2,RUNSPC	;[1144]   ..
2)		GTJFN			;[1144]   ..
2)		  ERJMP	GFEERR		;[1144] GETJFN FAILED FOR EXE FI
	LE
2)		HRRM	T1,ACS+R%16	;[1144] PUT JFN IN GET JSYS ARGU
	MENT
2)		MOVE	T1,EXECSW	;[1144] GET ADDRESS TO START PRO
	GRAM
2)		HRRM	T1,ACS+R%15	;[1144] STORE IN FINAL JRST
2)		MOVEI	T1,1000		;[1144] ASSUME WE'LL UNMAP ALL M
	EMORY PAGES
2)		SKIPE	DDTMAP		;[1144] SEE IF WE MAPPED IN DDT
	VIA /DEB:DDT
2)		MOVEI	T1,764		;[1144] YES--DON'T UNMAP IT THEN
2)		HRRM	T1,ACS+R%3	;[1144] STORE IN PMAP JSYS ARGUM
	ENT
2)		PUSHJ	P,EXEMES	;[1144] PRINT PROGRAM EXECUTION
	MESSAGE
2)	
 
 
2)	;FINAL EXECUTION. SET PROGRAM NAME, SET NEW SYMBOL TABLE POINTER
	S IF DDT, MOVE
2)	;SUICIDE CODE TO ACS AND JUMP TO IT.
2)	
2)		SKIPN	T1,RUNAME	;[1144] SET PROGRAM NAME
2)		MOVE	T1,LODNAM	;[1144]   ..
Digital Equipment Corporation       28-AUG-79    Page 328
PCO Log Report


2)		SETNM			;[1144]   ..
2)		SKIPN	DDTMAP		;[1144] SEE IF /DEB:DDT SPECIFIE
	D
2)		JRST	RUNEX3		;[1144] NO--DON'T SET UP SYMBOL
	TABLE PTRS
2)		MOVE	T1,JOB116	;[1144] YES--FORCE-FEED SYMBOL T
	ABLE PTRS TO DDT
2)		MOVEM	T1,@770001	;[1144]   AT LAST MINUTE FOR LIN
	K DEBUGGERS
2)		MOVE	T1,JOB117	;[1144]   ..
2)		MOVEM	T1,@770002	;[1144]   ..
2)	RUNEX3:	MOVE	R%17,[ACS,,R%0]	;[1144] COPY POKED CODE TO ACS
2)		BLT	R%17,R%17	;[1144]   ..
2)		JRST	R%4		;[1144] GO UMMAP PAGES, BRING IN
	 PROG AND START
2)	
2)85	;SIXTO7 CONVERTS A SIXBIT WORD TO AN ASCII STRING WITHOUT TRAILI
	NG SPACES.
2)	;CALL:
2)	;	T1/	<BYTE POINTER TO STRING>
2)	;	T2/	<SIXBIT WORD TO CONVERT>
2)	;RETURNS WITH T1 UPDATED, T2 AND T3 DESTROYED.
2)	
2)	SIXTO7:	JUMPE	T2,CPOPJ	;[1144] DONE IF SIXBIT HAS GONE
	TO 0
2)		SETZ	T3,		;[1144] CLEAR DESTINATION AC
2)		ROTC	T2,6		;[1144] EXTRACT NEXT SIXBIT CHAR
	ACTER
2)		ADDI	T3,"A"-'A'	;[1144] CONVERT TO ASCII
2)		IDPB	T3,T1		;[1144] STORE IN DESTINATION STR
	ING
2)		JRST	SIXTO7		;[1144] LOOP UNTIL DONE
2)	
2)	GFEERR:	.ERR.	(MS,.EC,V%L,L%F,S%F,GFE,<GTJFN% JSYS failed for
	>)
2)		.ETC.	(STR,,,,,RUNSPC)
2)	
2)	;FINAL SUICIDE CODE FOR RUNNING A PROGRAM ON TOPS-20.
2)	
2)	R%ACS:	PHASE	0		;[1144] GET INTO THE ACS
2)	R%0:!	0			;[1144] SEED FOR ZEROING ACS WHE
	N DONE
2)	R%1:!	-1			;[1144] PMAP ARGUMENTS TO UNMAP
	ALL OF MEMORY
2)	R%2:!	.FHSLF,,0		;[1144]   ..
2)	R%3:!	PM%CNT+.-.		;[1144]   UNLESS /DEB:DDT THEN D
	ON'T UNMAP UDDT
2)	R%4:!	PMAP			;[1144] BEGINNING OF SUICIDE COD
	E--UNMAP PAGES
2)	R%5:!	MOVE	R%1,R%16	;[1144] LOAD GET ARGUMENT
2)	R%6:!	GET			;[1144] BRING IN PROGRAM
Digital Equipment Corporation       28-AUG-79    Page 329
PCO Log Report


2)	R%7:!	JSYS	147		;[1144] DO RESET JSYS TO CLEAR P
	SI, ETC.
2)	R%10:!	DMOVEM	R%14,.JBBLT	;[1144] MOVE LAST CODE TO JOBDAT
2)	R%11:!	JRST	.JBBLT		;[1144]   AND JUMP TO IT
2)	R%12:!	0			;[1144] UNUSED
2)	R%13:!	0			;[1144] UNUSED
2)	R%14:!	BLT	R%17,R%17	;[1144] CODE IN JOBDAT--CLEAR AL
	L ACS
2)	R%15:!	JRST	.-.		;[1144] POKED TO PROGRAM EXECUTI
	ON ADDRESS
2)	R%16:!	.FHSLF,,.-.		;[1144] POKED TO GET JSYS ARGUME
	NT
2)	R%17:!	R%0,,R%1		;[1144] BLT ARGUMENT TO CLEAR AC
	S
2)		DEPHASE
2)	> ;[1144] END OF IFN TOPS20
2)	
2)86	SUBTTL	RUN THE PROGRAM FROM EXE FILE -- TOPS-10
2)	
 
 
2)	IFE TOPS20,<
2)	RUNEX2:	MOVE	T1,[U%LOW,,LOW]	;[1144] MOVE DOWN FINAL RUN UUO
	CODE
2)		BLT	T1,U%END	;[1144]   ..
2)	IFE FTEXE,<
2)		SKIPN	T1,IO.PTR+HC	;[1144] GET HIGH SEG POINTER
2)	> ;END IFE FTEXE
2)		MOVE	T1,IO.PTR+LC	;[1144] SETTLE FOR LOW SEG IF NO
	 HIGH
2)		MOVE	T2,I.DEV(T1)	;[1144] SET UP RUN UUO DEVICE
2)		MOVEM	T2,U%RUNB+0	;[1144]   ..
2)		MOVE	T2,I.NAM(T1)	;[1144] SET UP FILE NAME
2)		MOVEM	T2,U%RUNB+1	;[1144]   ..
2)	IFE FTEXE,<
2)		SKIPN	T1,IO.PTR+LC	;[1144] MAKE SURE POINTING AT LO
	W SEG
2)		JRST	RUNEX3		;[1144] HISEG ONLY, USE .LOW
2)		MOVE	T2,I.EXT(T1)	;[1144] MAY AS WELL USE KNOWN EX
	T
2)		TLNN	T2,-1		;[1144] EXTENSION KNOWN?
2)	RUNEX3:	MOVSI	T2,'LOW'	;[1144] NO, USE .LOW
2)	> ;END IFE FTEXE
2)	IFN FTEXE,<
2)		MOVE	T2,I.EXT(T1)	;[1144] GET EXTENSION OF EXE FIL
	E
2)	> ;END IFN FTEXE
2)		HLLM	T2,U%RUNB+2	;[1144] STORE EXTENSION
2)		MOVE	T1,RUNCOR	;[1144] LOW SEGMENT SIZE FROM /R
	UNCOR:
2)		ADD	T1,RUNCOR+1	;[1144]   AND HIGH SEG SIZE
Digital Equipment Corporation       28-AUG-79    Page 330
PCO Log Report


2)		MOVEM	T1,U%RUNB+5	;[1144] STORE AS RUN UUO ARGUMEN
	T
2)		CAIGE	T1,U%END	;[1144] PREPARE TO SHRINK MEMORY
	 TO LARGER
2)		MOVEI	T1,U%END	;[1144]   OF WHAT WE NEED AND WH
	AT PROGRAM NEEDS
2)		HRRM	T1,U%CORA	;[1144] STORE AS CORE UUO ARGUME
	NT
2)		HRRZ	T1,EXECSW	;[1144] COMPUTE RUN UUO OFFSET
2)		SUB	T1,STADDR	;[1144]   IN CASE WE START A DEB
	UGGER
2)		HRLM	T1,U%RUNA	;[1144] STORE IN RUN UUO ARGUMEN
	T
2)		PUSHJ	P,EXEMES	;[1144] PRINT PROGRAM EXECUTION
	MESSAGES
2)		JRST	LOW		;[1144] GO SHRINK AND RUN PROGRA
	M
2)	
2)87	;FINAL SUICIDE CODE FOR RUNNING A PROGRAM ON TOPS-10.
2)	
2)	U%LOW:	PHASE	.TEMP		;[1144] LOW MUST BE FIRST IN .TE
	MP
2)		DMOVE	T1,U%CORA	;[1144] LOAD UP CORE AND RUN UUO
	 ARGS
2)		CORE	T1,		;[1144] REMOVE HIGH SEG AND SHRI
	NK LOW SEG
2)		  JFCL			;[1144] DON'T WORRY IF FAILURE
2)		RUN	T2,		;[1144] RUN THE PROGRAM
2)		  HALT			;[1144] CAN'T--MONITOR PRINTS US
	EFUL MESSAGE
2)		EXIT			;[1144] IN CASE USER TYPES CONTI
	NUE
2)	U%RUNB:	.-.			;[1144] RUN UUO DEVICE
2)		.-.			;[1144]   FILE NAME
2)		.-.,,0			;[1144]   EXTENSION
2)		0			;[1144]   UNUSED
2)		0			;[1144]   PPN (FILE WRITTEN ON [
	-])
2)		.-.			;[1144]   MEMORY ARGUMENT
2)	U%CORA:	1,,.-.			;[1144] CORE UUO ARG, POKED WITH
	 LOW SEG SIZE
2)	U%RUNA:	.-.,,U%RUNB		;[1144] RUN UUO ARG, POKED WITH
	RUN OFFSET
2)	U%END=.-1			;[1144] LAST LOCATION IN PHASED
	CODE
2)		DEPHASE			;[1144] BACK TO THE REAL WORLD
2)	LOWLEN==.-U%LOW			;[1144] LENGTH OF PHASED CODE FO
	R LATER
2)	> ;END IFN TOPS10
2)	
 
Digital Equipment Corporation       28-AUG-79    Page 331
PCO Log Report


 
2)88	SUBTTL	RUN THE PROGRAM FROM EXE FILE -- SUBROUTINES
2)	
2)	;TERMES GIVES THE LINK TERMINATION MESSAGE AND CLOSES THE LOG FI
	LE IF ANY. IF
2)	;NECESSARY, THE LOG FILE IS RENAMED TO THE PROPER NAME AS WELL.
2)	
**************
1)86	
****
2)88	;**;[1144] Insert after FINMES+1L	DZN	16-Feb-79
2)	;EXEMES GIVES THE PROGRAM EXECUTION MESSAGE. THIS INCLUDES THE N
	AME OF THE
2)	;PROGRAM, OR THE DEBUGGER IF /DEBUG WAS SPECIFIED.
2)	
2)	EXEMES:	SKIPE	T1,DEBUGSW	;[1144] IF DEBUGGING
2)		JRST	EXEME1		;[1144] THEN [LNKDEB debugger ex
	ecution]
2)		SKIPN	T1,RUNAME	;[1144] ELSE [LNKXIT program exe
	cution]
2)		MOVE	T1,LODNAM	;[1144] GET PROGRAM NAME TO PRIN
	T
2)		.ERR.	(MS,.EC!.EN,V%L,L%F,S%I,XCT)
2)		.ETC.	(SBX,.EC!.EP,,,,T1)
2)		.ETC.	(JMP,.EC,,,,EXEME2)
2)	
2)	EXEME1:	MOVEI	T1,@DEBNAM(T1)	;[1144] LOAD UP ASCIZ DEBUGGER N
	AME
2)		.ERR.	(MS,.EC!.EN,V%L,L%F,S%I,DEB)
2)		.ETC.	(STR,.EC!.EP,,,,T1)
2)	EXEME2:	.ETC.	(STR,,,,,,< execution>)
2)		POPJ	P,		;[1144] DONE
2)	
2)89	
**************
1)91	
1)	
1)92	;HERE TO SEE IF WE CAN GET ENOUGH CORE TO FINISH THIS LOAD
****
2)95	;HERE TO SEE IF WE CAN GET ENOUGH CORE TO FINISH THIS LOAD
**************
1)95	
1)96	JBGCHU:				;HERE TO MOVE HIGH UP
****
2)99	JBGCHU:				;HERE TO MOVE HIGH UP
**************
1)96	
1)97	;HERE TO MOVE WINDOW UP IN EITHER AREA
****
2)100	;HERE TO MOVE WINDOW UP IN EITHER AREA
**************
Digital Equipment Corporation       28-AUG-79    Page 332
PCO Log Report


1)101		MOVE	T1,[DLTTXT,,%TMES]
1)		BLT	T1,%TMES+5
****
2)104	;**;[1144] Replace @JBNEX+4L	DZN	16-Feb-79
2)		MOVE	T1,[[ASCIZ /?LNKDLT Execution Deleted/],,%TMES]
	;[1144]
2)		BLT	T1,%TMES+5
**************
1)102	
1)103	JBEX3:	MOVE	T1,DEBUGSW	;GET INDEX TO DEBUG NAME
****
2)106	JBEX3:	MOVE	T1,DEBUGSW	;GET INDEX TO DEBUG NAME
**************
 
 
1)104	
1)105	%TMES:	ASCIZ	\[LNKXCT \
****
2)108	%TMES:	ASCIZ	\[LNKXCT \
**************
1)105	
1)106	%0:	.-.			;BLT POINTER
****
2)109	%0:	.-.			;BLT POINTER
**************
1)106	
1)107	SUBTTL	DATA AREAS
****
2)110	SUBTTL	DATA AREAS
**************
1)107	U	(LSCNT)			;COUNT OF WORDS LEFT IN THIS 128
	 WORD BLOCK
****
2)110	;**;[1144] Insert before LSCNT	DZN	16-Feb-79
2)	IFE TOPS20,<
2)	U	(LOW,LOWLEN)		;[1144] LOW CODE FOR RUN UUO--MU
	ST BE FIRST
2)	>
2)	IFN TOPS20,<
2)	U	(ACS,20)		;[1144] PLACE TO WORK ON SUICIDE
	 CODE
2)	U	(RUNSPC,4)		;[1144] ASCIZ FILE SPEC FOR EXE
	FILE
2)	> ;END IFN TOPS20
2)	U	(LSCNT)			;COUNT OF WORDS LEFT IN THIS 128
	 WORD BLOCK
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 333
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -012*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)+1144

[Date Entered]          23-FEB-79

[Programmer]            D. NEFF

[Routines]              LNKWLD    LNKXIT

[Key Words]             /DEB BROKE

[Source Before Edit]    %4A  (001144)

[Source After Edit]     %4A  (001145)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 334
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
When LINK edit 1144 is  installed,  the  EXEC's  DEBUG  command  or
explicit  specification  of  /DEBUG:DDT to LINK does not set up the
DDT symbol table pointers or load local symbols.  This only happens
if  LINK  can load the program directly into memory (i.e., does not
have to write an .EXE file).
 

                        **********


[DIAGNOSIS]
 
The method of determining whether DDT was mapped in as a result  of
/DEBUG:DDT  was  changed by edit 1144, but the load-and-go code was
not modified to reflect the change.
 
Also, one too many intructions were removed from the code  to  load
DDT,  causing  LINK  to  forget  to load local symbols for the next
file.
 

                        **********


[CURE]
 
Check properly whether DDT was loaded, and force loading of  locals
for the next file.
 
Digital Equipment Corporation       28-AUG-79    Page 335
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 2053 17-Feb-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1617 22-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	16-Feb-7
	9
1)	;COPYRIGHT (C) 1973, 1978, 1979 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	22-Feb-7
	9
2)	;COPYRIGHT (C) 1973, 1978, 1979 BY
**************
1)1	DECEVR==1144		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1145		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1145	DZN	22-Feb-79
2)	;	Load local symbols and store symbol table pointers on TO
	PS-20 if
2)	;	/DEBUG:DDT and leaving program in memory. Broken by edit
	 1144.
2)	;	Routines: LNKXIT, LNKWLD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 336
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 2047 17-Feb-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1622 22-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	16-Feb-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	22-Feb-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1144		;DEC EDIT VERSION
1)	;CALLING SEQUENCE
****
2)1	DECEVR==1145		;DEC EDIT VERSION
2)	;CALLING SEQUENCE
**************
1)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
****
2)3	;1145	Load locals if /DEBUG:DDT on TOPS-20. Broken by edit 114
	4.
2)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
**************
1)21	MAPDD2:	SETOM	NULSPC		;[1144] REMEMBER TO THROW AWAY T
	HIS SPEC
1)		SETZM	F.NAME(P1)	;[1144]   ..
****
2)21	;**;[1145] Insert @MAPDD2	DZN	22-Feb-79
2)	MAPDD2:	TRO	FL,L.SYM	;[1145] LOAD LOCALS (TURNED OFF
	EARLIER)
2)		SETOM	NULSPC		;[1145] REMEMBER TO THROW AWAY T
	HIS SPEC
2)		SETZM	F.NAME(P1)	;[1144]   ..
**************
 
Digital Equipment Corporation       28-AUG-79    Page 337
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 2146 17-Feb-1979
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1529 22-Feb-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	16-Feb-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	22-Feb-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1144		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1145		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;1145	Set up symbol table pointers on TOPS-20 if no .EXE file
	written; broken by 1144.
2)5	SUBTTL	ENTER HERE
**************
1)102		MOVE	T2,.JBDDT(T1)	;GET DDT ADDRESS
1)	IFN TOPS20,<
1)		HRRZ	T1,T2		;GET ADDRESS
1)		CAIE	T1,770000	;IDDT?
1)		JRST	JBEX1A		;NO
1)		MOVE	T2,LC.LB	;GET BASE
1)		MOVE	T1,.JBSYM(T2)	;
1)		MOVEM	T1,@770001	;GIVE SYMBOLS TO DDT
1)		MOVE	T1,.JBUSY(T2)	;
1)		MOVEM	T1,@770002	;AND UNDEFS
1)		SETZ	T2,		;AND DON'T STORE IN .JBDDT
1)	JBEX1A:>
1)103	;NOW PUT PHASED CODE INTO LOW SEG
****
2)102	;**;[1145] Replace @JBEX10+12L	DZN	22-Feb-79
2)	IFN TOPS20,<
2)		SKIPN	DDTMAP		;[1145] DDT MAPPED FROM /DEBUG:D
	DT?
2)		JRST	JBEX1A		;[1145] NO--NOTHING TO DO
2)		MOVE	T2,.JBSYM(T1)	;[1145] YES--FORCE-FEED SYMBOL T
	ABLE
2)		MOVEM	T2,@770001	;[1145]   TO DDT
2)		MOVE	T2,.JBUSY(T1)	;[1145]   ..
2)		MOVEM	T2,@770002	;[1145]   ..
2)	JBEX1A:
2)	>
2)		MOVE	T2,.JBDDT(T1)	;[1145] GET DEBUGGER ADDRESS
2)103	;NOW PUT PHASED CODE INTO LOW SEG
**************
Digital Equipment Corporation       28-AUG-79    Page 338
PCO Log Report



[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 339
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -264*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) TESTED IN 4A(1145)

[Date Entered]          09-MAR-79

[Programmer]            D. NEFF

[Routines]              LNKXIT    LNKERR

[Key Words]             /SAVE MORE

[Source Before Edit]    %4A  (001145)

[Source After Edit]     %4A  (001146)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-26290
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 340
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Various symptoms are possible.  Some examples are:
 
     1.  When loading a PSECTed program  with  large  gaps  between
         PSECTs,  LINK  will  create  the  pages in the gaps if the
         program is loaded into memory but not if  the  program  is
         written with /SAVE.
 
     2.  `?LNKRME REMAP error' results if the high  segment  origin
         of  a  two-segment  program is set lower than the combined
         length  of  LINK's  low  segment  and  the  program's  low
         segment.
 
 

                        **********


[DIAGNOSIS]
 
 
     1.  LINK cannot in  general  load  a  program  sprinkled  with
         non-existent  pages.   There  is  only monitor support for
         LINK to set up non-existent pages below the  high  segment
         (the   REMAP   UUO).   Programs  with  non-existent  pages
         elsewhere must be written to an .EXE file.
 
     2.  In this case, LINK is requesting that the REMAP  UUO  move
         the  prospective  high segment down.  This is not possible
         since this would overlay the low segment.
 
The common problem is that LINK's checks for deciding to  write  an
.EXE   file   instead  of  loading  the  program  into  memory  are
insufficient.
 

                        **********


[CURE]
 
Digital Equipment Corporation       28-AUG-79    Page 341
PCO Log Report


Restructure the code in LNKXIT so that all checks used to determine
whether to load the program or write an .EXE file are in one place.
Then add the above cases to the checks.  Since these cases are more
general than the current condition of not enough memory, change the
LNKNCL and LNKNCX messages to LNKPCL and LNKPCX.
 
The effect of this edit  is  to  cause  LINK  to  force  .EXE  file
generation  for  those cases in which LINK cannot leave the program
in memory.
 
There are several points to consider when installing this edit.
 
     1.  The FILCOMs show the edit installation assuming that edits
         1113  and  1132 were previously installed.  If this is not
         the case, simply ignore the references to these edits.
 
     2.  The majority of  the  changes  in  LNKXIT.MAC  are  simply
         moving  code around to centralize the checks for a complex
         program.   The  FILCOM  therefore   contains   information
         indicating  how  to move the code around, so that deleting
         and retyping of the moved code should not be necessary.
 
 
Digital Equipment Corporation       28-AUG-79    Page 342
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1617 22-Feb-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1157 08-Mar-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	22-Feb-7
	9
1)	;COPYRIGHT (C) 1973, 1978, 1979 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	8-Mar-79
2)	;COPYRIGHT (C) 1973, 1978, 1979 BY
**************
1)1	DECEVR==1145		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1146		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1146	DZN	8-Mar-79	SPR 10-26290
2)	;	Change the 'Not enough core to load' message to 'Program
	 too complex'.
2)	;	Then cause more cases to force .EXE file generation (e.g
	., PSECTs above
2)	;	high segment, gaps between PSECTS).
2)	;	Routines: LNKPAR, LNKXIT, LNKERR
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 343
PCO Log Report


[FILCOM]
File 1)	LINK:LNKERR.MAC[30,4507]	created: 0039 17-Feb-1979
File 2)	LINK:LNKERR.MAC[12,4700]	created: 1156 08-Mar-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	16-Feb-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	8-Mar-79
2)	
**************
1)1	DECEVR==1144		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1146		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1146	Delete long messages for LNKNCL, LNKNCX; add LNKPCL, LNK
	PCX.
2)	
**************
1)9	NCL	 8	 8	Not enough core to load job, saved as [f
	ile]
1)	NCX	 8	 1	Not enough core to load and  execute  jo
	b,  will
1)				run from  [file]
1)	NEB	 8	 8	No end block seen for [module]
****
2)9	NEB	 8	 8	No end block seen for [module]
**************
1)9	PEF	31	 8	Premature end of file in [file]
****
2)9	PCL	 8	 8	Program too complex to load, saving as [
	file]
2)	PCX	 8	 1	Program too complex to load and execute,
	 will run from [file]
2)	PEF	31	 8	Premature end of file in [file]
**************
1)10	HASH	NCL,0,<^_
1)		Your program is too large to load  from  LINK.	 LINK  h
	as
1)		saved  it  as  an  .EXE file on disk and cleared your us
	er
1)		memory.  You can use a GET or RUN command to load the .E
	XE
1)		file.	If  it	is still too large:  use a larger machin
	e;
1)		obtain	a  larger  core  limit;   or  define  an   overl
	ay
1)		structure for your program.>
Digital Equipment Corporation       28-AUG-79    Page 344
PCO Log Report


1)	
1)	HASH	NCX,0,<^_
1)		Your program is too large to load into memory;	LINK sav
	ed
1)		it  as	an  .EXE  file	on  disk.  LINK will automatical
	ly
1)		execute the program with a RUN monitor call, but the  .E
	XE
1)		file will not be deleted.>
1)	
1)	HASH	NEB,0,<^_
****
2)10	;**;[1146] Delete LNKNCL and LNKNCX long messages	DZN	
	8-Mar-79
2)	HASH	NEB,0,<^_
**************
1)10	HASH	PEF,0,<^_
****
2)10	;**;[1146] Insert LNKPCL and LNKPCX long messages before LNKPEF	
	DZN	8-Mar-79
2)	IFE TOPS20,<
2)	HASH	PCL,0,<^_
2)		Your program is too complex to load into memory for one
	of
2)		the following reasons:
 
 
2)	
2)		1.	There  are  page gaps between PSECTs (except bel
	ow
2)			the high segment).
2)	
2)		2.	There  are  PSECTs  above  the  origin of the hi
	gh
2)			segment.
2)	
2)		3.	Your  program  will  not  fit in memory along wi
	th
2)			LINK's final placement code.
2)	
2)		LINK  has  saved  your program as an .EXE file on disk a
	nd
2)		cleared your user memory.   You  can  use  a  GET  or  R
	UN
2)		command to load the .EXE file.>
2)	
2)	HASH	PCX,0,<^_
2)		Your program is too complex to load into memory for one
	of
2)		the following reasons:
2)	
Digital Equipment Corporation       28-AUG-79    Page 345
PCO Log Report


2)		1.	There  are  page gaps between PSECTs (except bel
	ow
2)			the high segment).
2)	
2)		2.	There  are  PSECTs  above  the  origin of the hi
	gh
2)			segment.
2)	
2)		3.	Your  program  will  not  fit in memory along wi
	th
2)			LINK's final placement code.
2)	
2)		LINK  will  save  your program as an .EXE file on disk a
	nd
2)		automatically run it,  but  the  .EXE  file  will  not
	be
2)		deleted.>
2)	> ;END IFE TOPS20
2)	
2)	IFN TOPS20,<
2)	HASH	PCL,0,<^_
2)		Your program is too complex to load into memory for one
	of
2)		the following reasons:
2)	
2)		1.	There  are  page gaps between PSECTs (except bel
	ow
2)			the high segment).
2)	
2)		2.	There  are  PSECTs  above  the  origin of the hi
	gh
2)			segment.
2)	
2)		3.	Your  program  will  not  fit in memory along wi
	th
2)			LINK's final placement code.
2)	
2)		4.	One or more PSECTs has the read-only attribute.
2)	
2)		LINK  has  saved  your program as an .EXE file on disk a
	nd
2)		cleared your user memory.   You  can  use  a  GET  or  R
	UN
2)		command to load the .EXE file.>
2)	
2)	HASH	PCX,0,<^_
2)		Your program is too complex to load into memory for one
	of
2)		the following reasons:
2)	
 
Digital Equipment Corporation       28-AUG-79    Page 346
PCO Log Report


 
2)		1.	There  are  page gaps between PSECTs (except bel
	ow
2)			the high segment).
2)	
2)		2.	There  are  PSECTs  above  the  origin of the hi
	gh
2)			segment.
2)	
2)		3.	Your  program  will  not  fit in memory along wi
	th
2)			LINK's final placement code.
2)	
2)		4.	One or more PSECTs has the read-only attribute.
2)	
2)		LINK  will  save  your program as an .EXE file on disk a
	nd
2)		automatically run it,  but  the  .EXE  file  will  not
	be
2)		deleted.>
2)	> ;END IFN TOPS20
2)	
2)	HASH	PEF,0,<^_
**************
 
Digital Equipment Corporation       28-AUG-79    Page 347
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]	created: 1529 22-Feb-1979
File 2)	LINK:LNKXIT.MAC[12,4700]	created: 1302 08-Mar-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	22-Feb-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	8-Mar-79
2)	
**************
1)1	DECEVR==1145		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1146		;DEC EDIT VERSION
2)	
**************
1)4	
1)5	SUBTTL	ENTER HERE
****
2)4	;1146	Force writing an .EXE file more often, especially with P
	SECTs.
2)	SUBTTL	ENTER HERE
**************
1)35	SAVTST:	SKIPE	IO.PTR+%VC	;SAVE FILE REQUIRED?
1)		JRST	JBSAVE		;YES
1)		JRST	JBEXIT		;NO, EXECUTE OR FORM CORE IMAGE
1)	
****
2)34	;**;[1146] Replace @REMVLS+15L	DZN	8-Mar-79
2)		JRST	SAVTST		;[1146] DONE WITH SYMBOLS
2)	
**************
1)42	SUBTTL	GENERATE .EXE (OR .XPN/.SHR/.HGH/.LOW) FILE
1)		
1)	;SOME JOBDAT LOCATIONS WE NEED TO KNOW
1)	.JBHSO==75		;PAGE # OF HIGH SEG ORIGIN
1)	.JBSDD==114		;SAVED .JBDDT
1)	.JBS41==122		;SAVED .JB41
1)		EXTERN	.JBREN
1)	JOBHSA==0		;HIGH .JBSA
1)	JOBH41==1		;HIGH .JB41
1)	JOBHRN==3		;HIGH .JBHRL & .JBREN
1)	JOBHSO==7		;PAGE # OF HIGH SEG ORIGIN IN HIGH
1)	
1)	;HERE TO SETUP SAVED LOCATIONS
1)	JBSAVE:	.ERR.	(MS,0,V%L,L%I,S%I,CSF,<Creating saved file>)
1)		SKIPE	PAG.S1		;PAGING?
1)		SKIPA	P1,JOBPTR	;YES
1)		MOVE	P1,LC.LB	;NO, USE INCORE ADDRESS
1)		SKIPE	PAG.S2		;PAGING HIGH SEG?
1)		SKIPA	P2,JBHPTR	;YES, LOAD CORRECT OFFSET
Digital Equipment Corporation       28-AUG-79    Page 348
PCO Log Report


1)		MOVE	P2,HC.LB	;LOAD UP OFFSET
1)	IFE FTEXE,<
1)		MOVE	T2,.JBDDT(P1)	;GET DDT  START
1)		MOVEM	T2,.JBSDD(P1)	;TO SAFE PLACE
1)		MOVE	T2,.JB41(P1)	;SAME FOR UUO HANDLER
1)		MOVEM	T2,.JBS41(P1)
1)	>
1)		PUSHJ	P,JOBSET	;SETUP REST OF JOBDAT
1)		HLRZ	T1,.JBSA(P1)	;ALSO SETUP RIGHT HALF OF .JBCOR
1)	IFN FTOVERLAY,<
 
 
1)		SKIPL	LNKMAX		;SEEN ANY?
1)		SKIPN	JOB116		;YES, AND WANT SYMBOLS?
1)		CAIA			;NO
1)		HLRZ	T1,.JBCOR(P1)	;INCLUDE SYMBOLS
1)	>
1)		IOR.	T1,.PGSIZ	;TO HIGHEST LOC REQUIRED
1)		HRRM	T1,.JBCOR(P1)	;SO SAVE GET WORKS
1)	;**;[1132] Insert @ JBSAVE+23L	JNG	30-Jan-79
1)		SKIPL	SYMSEG		;[1132] SYMBOLS IN A PSECT?
1)		JRST	JBSAVX		;[1132] NO, SKIP THIS
1)		HLRE	T1,.JBSYM(P1)	;[1132] YES, GET -LENGTH OF TABL
	E
1)		HRRZ	T2,.JBSYM(P1)	;[1132] GET FIRST ADDR OF TABLE
1)		SUB	T2,T1		;[1132] COMPUTE FIRST FREE AFTER
	 TABLE
1)		CAMLE	T2,HC.S1	;[1132] UPDATE AMOUNT OF CODE IN
	 LC AREA
1)		MOVEM	T2,HC.S1	;[1132] BUT NEVER DECREASE
1)		CAMLE	T2,HL.S1	;[1132] ALSO UPDATE SIZE OF SEGM
	ENT
1)		MOVEM	T2,HL.S1	;[1132] NEVER DECREASE
1)	JBSAVX:
1)	IFN FTEXE,<JRST	JBEXE>		;SET UP TO WRITE AN EXE FILE
1)	IFE FTEXE,<
1)		SKIPN	HC.LB		;ANYTHING IN HIGH SEG?
1)		JRST	JBNOHI		;NO, JUST SAVE LOW SEG
1)		PUSHJ	P,HJBSET	;SETUP VESTIGIAL JOB DATA AREA (
	HIGH)
1)		SKIPN	PAG.S2		;PAGING HIGH SEG?
1)		JRST	JBSHGH		;NO, JUST SAVE IT
1)	
1)43					;JUST WRITE OUT LAST PAGES
1)					;AND JBHDA (0-7 RELATIVE)
1)					;AND EITHER RENAME OR COPY FILE
1)					;TO RIGHT F/S
1)		HRLZ	T1,LW.S2	;LOWER WINDOW
1)		HRR	T1,UW.S2	;UPPER WINDOW
1)		PUSHJ	P,HC.OUT##	;OUTPUT LAST BLOCKS
1)	
Digital Equipment Corporation       28-AUG-79    Page 349
PCO Log Report


1)		SETZM	LW.S2		;START BACK AT ZERO
1)		MOVEI	T1,.IPM		;READ IN FIRST
1)		PUSHJ	P,HC.IN##	;READ IT BACK
1)		PUSHJ	P,BLTJHA	;COPY FIRST 10 WORDS BACK
1)					;WE NOW HAVE A HIGH SEG FILE ON
	DSK
1)					;BUT IS IT THE RIGHT W/S
1)		MOVE	T2,IO.PTR+%VC	;[606] TO CHANNEL
1)		PUSHJ	P,DVPRO.	;[606] GET THE PROTECTION RIGHT
1)		MOVEI	T1,HC		;FROM HIGH CODE OVERFLOW
1)		MOVEI	T2,%VC		;TO SAVE FILE
1)		PUSHJ	P,DVMOV.	;RENAME OR COPY
1)		JRST	JBSHDL		;RENAMED, REMOVE HC AREA
1)	
1)	;HERE IF NOT PAGING. WRITE OUT THE HIGH SEGMENT FILE.
1)	JBSHGH:	MOVEI	R,2		;POINT TO HIGH SEGMENT
1)		PUSHJ	P,SAVINI	;OPEN SAVE FILE
1)	JBSHG1:	MOVE	T1,HC.AB	;GET LENGTH OF HIGH CODE AREA
1)		SUB	T1,HC.LB
1)		SKIPN	PAG.S2		;PAGING (NOT ALL IN CORE)
1)		SKIPE	.JBDDT(P1)	;OR DDT LOADED?
1)		JRST	JBSHGN		;USE ALL OF AREA
1)		CAMLE	T1,HL.S2	;UNLESS SMALLER THAN HIGHEST LOC
 
 
1)		MOVE	T1,HL.S2	;USE HIGHEST LOC LOADED
1)	JBSHGN:	MOVN	T1,T1		;IOWD IS NEG
1)		HRLZ	T1,T1		;IN LEFT HALF
1)		HRR	T1,HC.LB	;GET ADDRESS OF FIRST WORD
1)		HRRI	T1,-1(T1)	;-1
1)		SETZ	T2,		;TERMINATE LIST
1)		OUT	DC,T1		;DUMP CORE IMAGE AS IS
1)		  JRST	JBSHGR		;OK
1)		PUSH	P,[DC]
1)		.ERR.	(ST,,V%L,L%F,S%F,SOE,<SAVE file output error>)
1)	
1)44	JBSHGR:	MOVEI	T1,DC		;MAKE SURE CHAN# SETUP
1)		MOVEM	T1,IO.CHN
1)		PUSHJ	P,DVRLS.##	;RELEASE DEVICE
1)	
1)	
1)	;HERE AFTER HI SEG SAVED. DELETE POSSIBLE .HGH/.SHR & .LOW FILES
1)	JBSHDL:	MOVEI	T1,TC		;CHAN#
1)		MOVEM	T1,IO.CHN
1)		MOVE	T1,IO.PTR+%VC	;PSEUDO CHAN#
1)		MOVEM	T1,IO.PTR+TC	;INCASE OF ERROR
1)		PUSHJ	P,DVCHN.##	;T1 POINTS TO DATA BLOCK ON RETU
	RN
1)		MOVSI	T2,(Z TC,)	;RESET CHAN # IN AC FIELD
1)		MOVEM	T2,I.CHN(T1)	;SINCE %VC IS THERE CURRENTLY
1)		SKIPE	T2,SSNAME	;GET REQUIRED NAME
Digital Equipment Corporation       28-AUG-79    Page 350
PCO Log Report


1)		JRST	.+3		;USUALLY ITS GIVEN
1)		SKIPN	T2,RUNAME	;IF NOT TRY /RUNAME
1)		MOVE	T2,LODNAM	;DEFAULT AS LAST RESORT
1)		MOVEM	T2,I.NAM(T1)	;DELETE THIS FILE
1)		PUSH	P,T2		;SAVE NAME FOR .LOW
1)		HLLZ	T2,SSEXT	;GET EXT WE WANT
1)		TLC	T2,331732	;DELETE OTHER ONE
1)		MOVEM	T2,I.EXT(T1)
1)		PUSHJ	P,DVOPN.##	;OPEN DEVICE
1)		MOVEI	T1,TC		;SET CHAN#
1)		PUSHJ	P,DVDEL.##
1)		  JFCL
1)		PUSHJ	P,DVCHN.##
1)		POP	P,I.NAM(T1)	;RESTORE NAME
1)		PUSH	P,I.EXT(T1)	;[575] SAVE EXTENSION IN CASE /E
	XEC
1)		HRLZ	T2,SSEXT	;INCASE USER SUPPLIED EXT
1)		SKIPN	T2		;DELETE IT INCASE ONLY HIGH
1)		MOVSI	T2,'LOW'
1)		MOVEM	T2,I.EXT(T1)	;AND DELETE THIS ALSO
1)		PUSHJ	P,DVOPN.##	;OPEN CHAN AGAIN
1)		MOVEI	T1,TC		;SET CHAN#
1)		PUSHJ	P,DVDEL.##
1)		  JFCL
1)	;FALL THROUGH TO NEXT PAGE
1)	
1)45	;HERE TO SETUP LOW SEG FILE SPEC
1)		PUSHJ	P,DVCHN.##	;[575] POINT BACK AT I/O DATA BL
	OCK
1)		POP	P,I.EXT(T1)	;[575] RESTORE EXTENSION IN CASE
	 /EXEC
1)		HRLZ	T1,SSEXT	;INCASE USER SUPPLIED
1)		SKIPN	T1
1)		MOVSI	T1,'LOW'	;IF ANY LOW SEG STUFF
 
 
1)		MOVEM	T1,SSEXT	;EXT IS NOW LOW NOT SAV
1)		MOVEI	T1,HC.IX	;ALL DONE WITH HIGH SEG CODE ARE
	A
1)		PUSHJ	P,XX.ZAP	;SO GET RID OF IT
1)		MOVE	T1,IO.PTR+DC	;BUT SAVE FILE SPEC
1)		MOVEM	T1,IO.PTR+HC	;IN CASE /EXEC
1)		JRST	JBSLOW		;NOW SAVE LOW SEG
1)	JBNOHI:	HRLZ	T1,SSEXT	;INCASE USER SUPPLIED IT
1)		SKIPN	T1
1)	IFE TOPS20,<
1)		MOVSI	T1,'SAV'	;EXT IS NOW SAV NOT LOW
1)	>
1)	IFN TOPS20,<
1)		MOVSI	T1,'EXE'	;EXT IS NOW EXE NOT LOW
1)	>
Digital Equipment Corporation       28-AUG-79    Page 351
PCO Log Report


1)		MOVEM	T1,SSEXT
1)					;FALL INTO JBSLOW
1)	
1)46	;JOBDAT IS NOW SETUP - IF PAGING WRITE OUT REST OF CORE IMAGE
1)	;AND READ IN AS MUCH AS POSSIBLE FOR CORE COMPRESSOR
1)	JBSLOW:	SKIPN	PAG.S1		;PAGING?
1)		JRST	JBSAV3		;NO, JUST OUTPUT CORE IMAGE
1)		HRLZ	T1,LW.S1	;GET LOWER WINDOW
1)		HRR	T1,UW.S1	;TO UPPER
1)		PUSHJ	P,LC.OUT##	;OUTPUT IT ALL
1)	;NOW TO SEE IF WE CAN READ ALL OF CORE FILE BACK INTO CORE
1)	; IF NOT READ IN AS MUCH AS POSSIBLE
1)		SETZM	LW.S1		;START AT LOWEST LOCATION
1)		MOVE	T1,DY.AB	;HIGHEST LOC WE CAN NOT USE
1)		MOVEM	T1,DY.UB	;TELL LNKCOR ABOUT IT
1)		ADDI	T1,1
1)		MOVEM	T1,LC.LB	;BACKUP IF WE CAN
1)		SKIPN	T1,LS.LB	;CAN ONLY USE TO BOTTOM OF LS
1)					;AREA IF IT'S STILL THERE
1)		SKIPA	T1,.JBREL	;IF IT'S NOT, CAN USE ALL OF COR
	E
1)		SUBI	T1,1		;LAST TO USE IS START OF LS - 1
1)		MOVEM	T1,LC.UB	;RESET POINTERS
1)		MOVEM	T1,LC.AB	;FOR CONSISTENCY
1)		SUB	T1,LC.LB	;MINUS WHAT WE ALREADY HAVE
1)		MOVEM	T1,UW.S1	;ASSUME IT WON'T FIT
1)		CAMGE	T1,HC.S1	;ENOUGH EXTRA FOR ALL OF FILE?
1)		JRST	JBSAV1		;NO, DO IT THE HARD WAY
1)		MOVE	T1,HC.S1	;WE NEED ONLY THIS MUCH
1)		IORI	T1,.IPM		;ROUNDED UP
1)		MOVE	T2,T1		;CAN ALSO CUT BACK LC.AB
1)		ADD	T2,LC.LB	;TO WHAT WE ACTUALLY NEED
1)		MOVEM	T2,LC.AB	;TO SAVE TIME
1)		PUSHJ	P,LC.IN##	;READ WHAT WE CAN
1)		PUSHJ	P,LC.DLT	;DELETE LC FILE UNLESS .XPN WANT
	ED
1)		JRST	JBSAV2		;AND COPY 0-137 BACK INTO CORE
1)	
1)	JBSAV1:	PUSHJ	P,LC.IN##	;READ BACK AS MUCH CORE AS WE CA
	N
1)	JBSAV2:	PUSHJ	P,BLTJDA	;BLT .JBDA TO LOW SEG
1)	JBSAV3:	MOVE	T1,LC.LB	;JOBDAT NOW SETUP IN CORE
1)		SKIPN	.JBDDT(T1)	;ALWAYS SAVE IF DDT LOADED
1)		SKIPN	HC.S2		;ANY HIGH SEG (HC.LB IS ZERO BY
	NOW)
1)		JRST	JBSAV4		;NO, SO MUST WANT LOW SEG
 
 
1)		MOVE	T1,HC.S1	;YES, SEE IF LOW SEG CONTAINS DA
	TA
1)		CAIG	T1,.JBDA	;IF .JBCOR GREATER THAN 137
Digital Equipment Corporation       28-AUG-79    Page 352
PCO Log Report


1)		JRST	ENDSAV		;NO, SO NO LOW SEG FILE
1)	JBSAV4:	MOVEI	R,1		;POINT TO LOW SEGMENT
1)		PUSHJ	P,SAVINI	;INIT/ENTER SAV FILE
1)		SKIPE	IO.PTR+%XC	;WANT .XPN FILE?
1)		SKIPE	IO.PTR+LC	;BUT NOT PAGING
1)		JRST	ZCMPRS		;NO, NOW FOR ZERO COMPRESSOR
1)		PUSHJ	P,WRTXPN	;WRITE IT OUT
1)		JRST	ZCMPRS		;AND COMPRESS CORE IMAGE
1)	
1)	> ;END OF IFE FTEXE
1)	
1)47	;HERE TO SETUP REST OF JOBDAT AREA
1)	;ENTER WITH  P1 POINTING TO JOBDAT AREA
1)	;AND P2 TO HIGH DATA AREA (0 IF NO HIGH SEG)
1)	
****
2)41	;**;[1146] Move 5 pages starting at JBSAVE down where indicated
2)	;**;[1146] below. Then insert this code before JOBSET-3L
2)	;**;[1146] DZN	8-Mar-79
2)	SUBTTL	FINISH JOBDAT AND DECIDE TO LOAD OR SAVE
2)	
2)	;DETERMINE IF WE CAN LOAD THE PROGRAM INTO MEMORY OR MUST WRITE
	AN .EXE FILE
2)	;INSTEAD. WE MUST WRITE AN .EXE FILE IF ANY OF THE FOLLOWING ARE
	 SATISFIED:
2)	;
2)	;  1.	USER SPECIFIED /SAVE (SCAN BLOCK ALREADY SET UP).
2)	;  2.	THERE ARE PAGE GAPS BETWEEN PSECTS, EXCEPT BELOW .HIGH.
	(BEWARE THAT
2)	;	OVERLAPS DO NOT COUNT AS GAPS).
2)	;  3.	THERE ARE ANY PSECTS ABOVE THE HIGH SEGMENT.
2)	;  4.	ON TOPS-20, ANY PSECT HAS THE READ-ONLY ATTRIBUTE.
2)	;  5.	THE PROGRAM WILL NOT FIT IN MEMORY WITH LINK'S FINAL PLA
	CEMENT CODE
2)	;	(THIS INCLUDES THE CASE IN WHICH THE REMAP UUO WOULD HAV
	E TO MOVE THE
2)	;	HIGH SEGMENT DOWN).
2)	
2)	SAVTST:	PUSHJ	P,JOBSET	;[1146] FINISH SETTING UP JOBDAT
2)		PUSHJ	P,HJBSET	;[1146]   AND VESTIGIAL JOBDAT
2)		SKIPE	IO.PTR+%VC	;[1146] SAVE FILE REQUIRED?
2)		JRST	JBSAVE		;YES
2)	
2)	;TEST FOR GAPS BETWEEN PSECTS, PSECTS ABOVE THE HIGH SEGMENT AND
	 TOPS-20 WRITE-
2)	;LOCKED PSECTS.
2)	
2)		MOVE	T1,HL.S1	;[1146] SEE IF LOW SEG (CONTAINS
	 ALL PSECTS)
2)		SKIPE	HC.S2		;[1146]   HITS HIGH SEG (IF ANY)
	 WHICH CHECKS
Digital Equipment Corporation       28-AUG-79    Page 353
PCO Log Report


2)		CAMG	T1,LL.S2	;[1146]   FOR PSECTS ABOVE HIGH
	SEG ORIGIN
2)		SKIPA			;[1146] NO--OK SO FAR
2)		JRST	JBCMPX		;[1146] YES--CAN'T LOAD IT
2)		MOVEI	R,0		;[1146] START AT .ABS.
2)		MOVE	W1,@RC.TB	;[1146] GET POINTER TO ITS RELOC
	 BLOCK
2)		MOVE	T1,RC.HL(W1)	;[1146] START WITH ITS HIGH LIMI
	T
2)		ADDI	R,1		;[1146] ADVANCE TO .LOW. FOR CHE
	CKS
2)		MOVX	T4,2		;[1146] # OF SEG CONTAINING ONLY
	 .HIGH.
2)	SAVTS1:	MOVE	W2,@RC.TB	;[1146] GET POINTER TO THIS RELO
	C BLOCK
2)	IFN TOPS20,<
2)		MOVE	T2,RC.AT(W2)	;[1146] CHECK PSECT ATTRIBUTES F
	OR READ-ONLY
 
 
2)		TXNE	T2,AT.RO	;[1146]   ..
2)		JRST	JBCMPX		;[1146] CAN'T SET UP READ-ONLY P
	AGES IN MEMORY
2)	>
2)		CAML	T1,RC.HL(W2)	;[1146] DOES PREVIOUS PSECT ENGU
	LF THIS ONE?
2)		JRST	SAVTS3		;[1146] YES--NO GAP POSSIBLE YET
2)		CAMN	T4,RC.SG(W2)	;[1146] POSSIBLE GAP BELOW .HIGH
	.?
2)		JRST	SAVTS2		;[1146] YES--OK. USUAL CASE
2)		MOVEI	T2,-1(T1)	;[1146] COMPUTE LAST PAGE USED
2)		LSH	T2,-9		;[1146]   ..
2)		LDB	T3,[POINTR RC.IV(W2),^-^O777] ;[1146] GET FIRST
	PAGE USED BY NEXT PSECT
2)		SUB	T3,T2		;[1146] COMPUTE # PAGES BETWEEN
	THIS AND LAST
2)		SOJG	T3,JBCMPX	;[1146] CAN'T LEAVE GAPS IN MEMO
	RY
2)	SAVTS2:	MOVE	T1,RC.HL(W2)	;[1146] SO FAR SO GOOD--ADVANCE
	TO NEXT PSECT
2)	SAVTS3:	MOVE	W1,W2		;[1146] ADVANCE TO NEXT PSECT
2)		CAMGE	R,RC.NO		;[1146] LOOKED AT ALL PSECTS?
2)		AOJA	R,SAVTS1	;[1146] NO--LOOK AT NEXT
2)	
2)	;  ..
2)	
2)42	;  ..
2)	
2)	;COMPUTE HOW MUCH MEMORY IT WILL TAKE TO HOLD THE PROGRAM.
2)	
2)		MOVE	T1,DY.AB	;[1146] START WITH HIGHEST ADDR
Digital Equipment Corporation       28-AUG-79    Page 354
PCO Log Report


	LINK NEEDS
2)		ADD	T1,HC.S1	;[1146] ADD LENGTH OF ACTUALLY L
	OADED CODE
2)		IOR.	T1,.PGSIZ	;[1146]   ..
2)		SKIPE	HC.S2		;[1146] HIGH SEG EXISTS
2)		CAMGE	T1,LL.S2	;[1146]   AND ORIGIN BELOW WHERE
	 WE CAN PUT IT?
2)		SKIPA			;[1146] NO--OK
2)		JRST	JBCMPX		;[1146] YES--REMAP WOULD FAIL SO
	 TOO COMPLEX
2)		SKIPN	PAG.S1		;[1146] PAGING LOW SEGMENT
2)		SKIPE	PAG.S2		;[1146]   OR HIGH SEG?
2)		SKIPA			;[1146] YES--SEE IF ALL WILL FIT
	 IN
2)		JRST	JBLOAD		;[1146] NO--IT FITS NOW SO JUST
	SHUFFLE
2)		ADD	T1,HL.S2	;[1146] ADD LENGTH OF HIGH SEGME
	NT
2)		IOR.	T1,.PGSIZ	;[1146]   ..
2)		TLNE	T1,-1		;[732] OVERFLOWED INTO THE LH?
2)		JRST	JBCMPX		;[1146] YES--CAN'T FIT SO WRITE
	.EXE FILE
2)	IFE TOPS20,<			;[1113] SEE IF WE CAN EXPAND ON
	TOPS-10
2)		CAMG	T1,.JBREL	;DO WE HAVE ENOUGH ALREADY?
2)		JRST	JBLOAD		;[1146] YES, READ IN REST OF TEM
	P FILE
2)		CORE	T1,		;NO TRY FOR IT
2)		  JRST	JBCMPX		;[1146] WON'T FIT--WRITE .EXE FI
	LE
2)		MOVEI	T1,HG.TAB	;OK, BUT DON'T FORGET TO GIVE IT
	 TO SOMEONE
2)		SKIPN	TAB.LB(T1)	;USUAL LOOP
2)		SOJA	T1,.-1
2)		MOVE	T2,.JBREL
2)		MOVEM	T2,TAB.UB(T1)
2)	>
2)	IFN TOPS20,<			;[1113] WE'RE AS BIG AS WE CAN G
	ET ON TOPS-20
2)		CAMLE	T1,.JBREL	;[1113] DO WE HAVE ENOUGH ALREAD
	Y?
2)		JRST	JBCMPX		;[1146] NO--PROGRAM WON'T FIT WI
	TH LINK
2)	>
2)		JRST	JBLOAD		;[1146] PROGRAM WILL FIT--GO BRI
	NG IT IN
2)	
2)43	;HERE TO SET UP THE REST OF THE JOBDAT AREA. ENTER WITH P1 POINT
	ING TO JOBDAT
 
 
Digital Equipment Corporation       28-AUG-79    Page 355
PCO Log Report


2)	;AREA AND P2 TO VESTIGIAL JOBDAT (0 IF NO HIGH SEGMENT).
2)	
**************
1)50	;HERE TO DELETE LC FILE
****
2)46	;**;[1146] Insert before LC.DLT-5L	DZN	8-Mar-79
2)	SUBTTL	FORCE nnnLNK/SAVE
2)	
2)	;HERE IF USER DID NOT SPECIFY /SAVE BUT PROGRAM IS TOO COMPLEX (
	TOO LARGE, PSECT
2)	;GAPS, ETC.) TO LOAD. DUMMY UP A SCAN BLOCK AS IF THE USER TYPED
	 nnnLNK/SAVE,
2)	;PRINT A WARNING AND FALL INTO .EXE WRITING CODE.
2)	
2)	JBCMPX:	MOVEI	T2,F.LEN	;[1146] SET UP FILE SPEC
2)		PUSHJ	P,DY.GET##	;AS THOUGH WE HAD SEEN /SAVE
2)		MOVE	P1,T1		;STORE POINTER TO "SCAN" BLOCK
2)		HLLZ	T2,JOBNUM	;SIXBIT JOBNUMBER
2)		HRRI	T2,'LNK'	;REST OF NAME
2)		MOVEM	T2,F.NAME(T1)
2)		MOVEM	T2,SSNAME	;HERE ALSO
2)	IFE FTEXE,<
2)		MOVSI	T2,'HGH'	;MARK NON-SHAREABLE
2)		SKIPN	HL.S2		;IF NO HIGH
2)		MOVSI	T2,'SAV'	;SO MESSAGE IS CORRECT
2)	>
2)	IFN FTEXE,<
2)		MOVSI	T2,'EXE'	;SO MESSAGE IS CORRECT
2)	>
2)		MOVEM	T2,F.EXT(T1)	
2)		MOVEM	T2,SSEXT	;FOR SAVE FILE
2)		MOVSI	T2,'DSK'	;MAKE SURE IT GOES ON DSK
2)		MOVEM	T2,F.DEV(T1)	;INCASE DEFAULTS SCREWED UP BY N
	OW
2)		PUSHJ	P,DVOUT.##	;SETUP DATA BLOCK
2)		  %VC,,.IODPR		;ON FAKE CHAN IN DUMP MODE
2)		SKIPE	EXECSW		;WANT TO EXECUTE?
2)		JRST	JBCMP1		;[1146] YES--LNKPCX
2)		.ERR.	(MS,.EC,V%L,L%W,S%W,PCL,<Program too complex to
	load, saving as >)
2)		.ETC.	(JMP,.EC,,,,JBCMP2)
2)	JBCMP1:	.ERR.	(MS,.EC,V%L,L%W,S%I,PCX,<Program too complex to
	load and execute, will run from >)
2)	JBCMP2:	.ETC.	(FSP,,,,,%VC)
2)	;	JRST	JBSAVE		;[1146] FALL THROUGH TO WRITE .E
	XE FILE
2)	
2)47	;**;[1146] Place 5 pages here from JBSAVE above. Then make minor
2)	;**;[1146] changes as noted.	DZN	8-Mar-79
2)	SUBTTL	GENERATE .EXE (OR .XPN/.SHR/.HGH/.LOW) FILE
2)		
Digital Equipment Corporation       28-AUG-79    Page 356
PCO Log Report


2)	;SOME JOBDAT LOCATIONS WE NEED TO KNOW
2)	.JBHSO==75		;PAGE # OF HIGH SEG ORIGIN
2)	.JBSDD==114		;SAVED .JBDDT
2)	.JBS41==122		;SAVED .JB41
2)		EXTERN	.JBREN
2)	JOBHSA==0		;HIGH .JBSA
2)	JOBH41==1		;HIGH .JB41
2)	JOBHRN==3		;HIGH .JBHRL & .JBREN
2)	JOBHSO==7		;PAGE # OF HIGH SEG ORIGIN IN HIGH
2)	
2)	;HERE TO SETUP SAVED LOCATIONS
 
 
2)	JBSAVE:	.ERR.	(MS,0,V%L,L%I,S%I,CSF,<Creating saved file>)
2)	;**;[1146] Delete @JBSAVE+1L	DZN	8-Mar-79
2)	IFE FTEXE,<
2)		MOVE	T2,.JBDDT(P1)	;GET DDT  START
2)		MOVEM	T2,.JBSDD(P1)	;TO SAFE PLACE
2)		MOVE	T2,.JB41(P1)	;SAME FOR UUO HANDLER
2)		MOVEM	T2,.JBS41(P1)
2)	>
2)	;**;[1146] Delete @JBSAVE+13L	DZN	8-Mar-79
2)		HLRZ	T1,.JBSA(P1)	;ALSO SETUP RIGHT HALF OF .JBCOR
2)	IFN FTOVERLAY,<
2)		SKIPL	LNKMAX		;SEEN ANY?
2)		SKIPN	JOB116		;YES, AND WANT SYMBOLS?
2)		CAIA			;NO
2)		HLRZ	T1,.JBCOR(P1)	;INCLUDE SYMBOLS
2)	>
2)		IOR.	T1,.PGSIZ	;TO HIGHEST LOC REQUIRED
2)		HRRM	T1,.JBCOR(P1)	;SO SAVE GET WORKS
2)	;**;[1132] Insert @ JBSAVE+23L	JNG	30-Jan-79
2)		SKIPL	SYMSEG		;[1132] SYMBOLS IN A PSECT?
2)		JRST	JBSAVX		;[1132] NO, SKIP THIS
2)		HLRE	T1,.JBSYM(P1)	;[1132] YES, GET -LENGTH OF TABL
	E
2)		HRRZ	T2,.JBSYM(P1)	;[1132] GET FIRST ADDR OF TABLE
2)		SUB	T2,T1		;[1132] COMPUTE FIRST FREE AFTER
	 TABLE
2)		CAMLE	T2,HC.S1	;[1132] UPDATE AMOUNT OF CODE IN
	 LC AREA
2)		MOVEM	T2,HC.S1	;[1132] BUT NEVER DECREASE
2)		CAMLE	T2,HL.S1	;[1132] ALSO UPDATE SIZE OF SEGM
	ENT
2)		MOVEM	T2,HL.S1	;[1132] NEVER DECREASE
2)	JBSAVX:
2)	IFN FTEXE,<JRST	JBEXE>		;SET UP TO WRITE AN EXE FILE
2)	IFE FTEXE,<
2)		SKIPN	HC.LB		;ANYTHING IN HIGH SEG?
2)		JRST	JBNOHI		;NO, JUST SAVE LOW SEG
2)	;**;[1146] Delete @JBSAVX+5L	DZN	8-Mar-79
Digital Equipment Corporation       28-AUG-79    Page 357
PCO Log Report


2)		SKIPN	PAG.S2		;PAGING HIGH SEG?
2)		JRST	JBSHGH		;NO, JUST SAVE IT
2)	
2)48					;JUST WRITE OUT LAST PAGES
2)					;AND JBHDA (0-7 RELATIVE)
2)					;AND EITHER RENAME OR COPY FILE
2)					;TO RIGHT F/S
2)		HRLZ	T1,LW.S2	;LOWER WINDOW
2)		HRR	T1,UW.S2	;UPPER WINDOW
2)		PUSHJ	P,HC.OUT##	;OUTPUT LAST BLOCKS
2)	
2)		SETZM	LW.S2		;START BACK AT ZERO
2)		MOVEI	T1,.IPM		;READ IN FIRST
2)		PUSHJ	P,HC.IN##	;READ IT BACK
2)		PUSHJ	P,BLTJHA	;COPY FIRST 10 WORDS BACK
2)					;WE NOW HAVE A HIGH SEG FILE ON
	DSK
2)					;BUT IS IT THE RIGHT W/S
2)		MOVE	T2,IO.PTR+%VC	;[606] TO CHANNEL
2)		PUSHJ	P,DVPRO.	;[606] GET THE PROTECTION RIGHT
2)		MOVEI	T1,HC		;FROM HIGH CODE OVERFLOW
2)		MOVEI	T2,%VC		;TO SAVE FILE
2)		PUSHJ	P,DVMOV.	;RENAME OR COPY
 
 
2)		JRST	JBSHDL		;RENAMED, REMOVE HC AREA
2)	
2)	;HERE IF NOT PAGING. WRITE OUT THE HIGH SEGMENT FILE.
2)	JBSHGH:	MOVEI	R,2		;POINT TO HIGH SEGMENT
2)		PUSHJ	P,SAVINI	;OPEN SAVE FILE
2)	JBSHG1:	MOVE	T1,HC.AB	;GET LENGTH OF HIGH CODE AREA
2)		SUB	T1,HC.LB
2)		SKIPN	PAG.S2		;PAGING (NOT ALL IN CORE)
2)		SKIPE	.JBDDT(P1)	;OR DDT LOADED?
2)		JRST	JBSHGN		;USE ALL OF AREA
2)		CAMLE	T1,HL.S2	;UNLESS SMALLER THAN HIGHEST LOC
2)		MOVE	T1,HL.S2	;USE HIGHEST LOC LOADED
2)	JBSHGN:	MOVN	T1,T1		;IOWD IS NEG
2)		HRLZ	T1,T1		;IN LEFT HALF
2)		HRR	T1,HC.LB	;GET ADDRESS OF FIRST WORD
2)		HRRI	T1,-1(T1)	;-1
2)		SETZ	T2,		;TERMINATE LIST
2)		OUT	DC,T1		;DUMP CORE IMAGE AS IS
2)		  JRST	JBSHGR		;OK
2)		PUSH	P,[DC]
2)		.ERR.	(ST,,V%L,L%F,S%F,SOE,<SAVE file output error>)
2)	
2)49	JBSHGR:	MOVEI	T1,DC		;MAKE SURE CHAN# SETUP
2)		MOVEM	T1,IO.CHN
2)		PUSHJ	P,DVRLS.##	;RELEASE DEVICE
2)	
Digital Equipment Corporation       28-AUG-79    Page 358
PCO Log Report


2)	
2)	;HERE AFTER HI SEG SAVED. DELETE POSSIBLE .HGH/.SHR & .LOW FILES
2)	JBSHDL:	MOVEI	T1,TC		;CHAN#
2)		MOVEM	T1,IO.CHN
2)		MOVE	T1,IO.PTR+%VC	;PSEUDO CHAN#
2)		MOVEM	T1,IO.PTR+TC	;INCASE OF ERROR
2)		PUSHJ	P,DVCHN.##	;T1 POINTS TO DATA BLOCK ON RETU
	RN
2)		MOVSI	T2,(Z TC,)	;RESET CHAN # IN AC FIELD
2)		MOVEM	T2,I.CHN(T1)	;SINCE %VC IS THERE CURRENTLY
2)		SKIPE	T2,SSNAME	;GET REQUIRED NAME
2)		JRST	.+3		;USUALLY ITS GIVEN
2)		SKIPN	T2,RUNAME	;IF NOT TRY /RUNAME
2)		MOVE	T2,LODNAM	;DEFAULT AS LAST RESORT
2)		MOVEM	T2,I.NAM(T1)	;DELETE THIS FILE
2)		PUSH	P,T2		;SAVE NAME FOR .LOW
2)		HLLZ	T2,SSEXT	;GET EXT WE WANT
2)		TLC	T2,331732	;DELETE OTHER ONE
2)		MOVEM	T2,I.EXT(T1)
2)		PUSHJ	P,DVOPN.##	;OPEN DEVICE
2)		MOVEI	T1,TC		;SET CHAN#
2)		PUSHJ	P,DVDEL.##
2)		  JFCL
2)		PUSHJ	P,DVCHN.##
2)		POP	P,I.NAM(T1)	;RESTORE NAME
2)		PUSH	P,I.EXT(T1)	;[575] SAVE EXTENSION IN CASE /E
	XEC
2)		HRLZ	T2,SSEXT	;INCASE USER SUPPLIED EXT
2)		SKIPN	T2		;DELETE IT INCASE ONLY HIGH
2)		MOVSI	T2,'LOW'
2)		MOVEM	T2,I.EXT(T1)	;AND DELETE THIS ALSO
2)		PUSHJ	P,DVOPN.##	;OPEN CHAN AGAIN
 
 
2)		MOVEI	T1,TC		;SET CHAN#
2)		PUSHJ	P,DVDEL.##
2)		  JFCL
2)	;FALL THROUGH TO NEXT PAGE
2)	
2)50	;HERE TO SETUP LOW SEG FILE SPEC
2)		PUSHJ	P,DVCHN.##	;[575] POINT BACK AT I/O DATA BL
	OCK
2)		POP	P,I.EXT(T1)	;[575] RESTORE EXTENSION IN CASE
	 /EXEC
2)		HRLZ	T1,SSEXT	;INCASE USER SUPPLIED
2)		SKIPN	T1
2)		MOVSI	T1,'LOW'	;IF ANY LOW SEG STUFF
2)		MOVEM	T1,SSEXT	;EXT IS NOW LOW NOT SAV
2)		MOVEI	T1,HC.IX	;ALL DONE WITH HIGH SEG CODE ARE
	A
2)		PUSHJ	P,XX.ZAP	;SO GET RID OF IT
Digital Equipment Corporation       28-AUG-79    Page 359
PCO Log Report


2)		MOVE	T1,IO.PTR+DC	;BUT SAVE FILE SPEC
2)		MOVEM	T1,IO.PTR+HC	;IN CASE /EXEC
2)		JRST	JBSLOW		;NOW SAVE LOW SEG
2)	JBNOHI:	HRLZ	T1,SSEXT	;INCASE USER SUPPLIED IT
2)		SKIPN	T1
2)	IFE TOPS20,<
2)		MOVSI	T1,'SAV'	;EXT IS NOW SAV NOT LOW
2)	>
2)	IFN TOPS20,<
2)		MOVSI	T1,'EXE'	;EXT IS NOW EXE NOT LOW
2)	>
2)		MOVEM	T1,SSEXT
2)					;FALL INTO JBSLOW
2)	
2)51	;JOBDAT IS NOW SETUP - IF PAGING WRITE OUT REST OF CORE IMAGE
2)	;AND READ IN AS MUCH AS POSSIBLE FOR CORE COMPRESSOR
2)	JBSLOW:	SKIPN	PAG.S1		;PAGING?
2)		JRST	JBSAV3		;NO, JUST OUTPUT CORE IMAGE
2)		HRLZ	T1,LW.S1	;GET LOWER WINDOW
2)		HRR	T1,UW.S1	;TO UPPER
2)		PUSHJ	P,LC.OUT##	;OUTPUT IT ALL
2)	;NOW TO SEE IF WE CAN READ ALL OF CORE FILE BACK INTO CORE
2)	; IF NOT READ IN AS MUCH AS POSSIBLE
2)		SETZM	LW.S1		;START AT LOWEST LOCATION
2)		MOVE	T1,DY.AB	;HIGHEST LOC WE CAN NOT USE
2)		MOVEM	T1,DY.UB	;TELL LNKCOR ABOUT IT
2)		ADDI	T1,1
2)		MOVEM	T1,LC.LB	;BACKUP IF WE CAN
2)		SKIPN	T1,LS.LB	;CAN ONLY USE TO BOTTOM OF LS
2)					;AREA IF IT'S STILL THERE
2)		SKIPA	T1,.JBREL	;IF IT'S NOT, CAN USE ALL OF COR
	E
2)		SUBI	T1,1		;LAST TO USE IS START OF LS - 1
2)		MOVEM	T1,LC.UB	;RESET POINTERS
2)		MOVEM	T1,LC.AB	;FOR CONSISTENCY
2)		SUB	T1,LC.LB	;MINUS WHAT WE ALREADY HAVE
2)		MOVEM	T1,UW.S1	;ASSUME IT WON'T FIT
2)		CAMGE	T1,HC.S1	;ENOUGH EXTRA FOR ALL OF FILE?
2)		JRST	JBSAV1		;NO, DO IT THE HARD WAY
2)		MOVE	T1,HC.S1	;WE NEED ONLY THIS MUCH
2)		IORI	T1,.IPM		;ROUNDED UP
2)		MOVE	T2,T1		;CAN ALSO CUT BACK LC.AB
2)		ADD	T2,LC.LB	;TO WHAT WE ACTUALLY NEED
 
 
2)		MOVEM	T2,LC.AB	;TO SAVE TIME
2)		PUSHJ	P,LC.IN##	;READ WHAT WE CAN
2)		PUSHJ	P,LC.DLT	;DELETE LC FILE UNLESS .XPN WANT
	ED
2)		JRST	JBSAV2		;AND COPY 0-137 BACK INTO CORE
2)	
Digital Equipment Corporation       28-AUG-79    Page 360
PCO Log Report


2)	JBSAV1:	PUSHJ	P,LC.IN##	;READ BACK AS MUCH CORE AS WE CA
	N
2)	JBSAV2:	PUSHJ	P,BLTJDA	;BLT .JBDA TO LOW SEG
2)	JBSAV3:	MOVE	T1,LC.LB	;JOBDAT NOW SETUP IN CORE
2)		SKIPN	.JBDDT(T1)	;ALWAYS SAVE IF DDT LOADED
2)		SKIPN	HC.S2		;ANY HIGH SEG (HC.LB IS ZERO BY
	NOW)
2)		JRST	JBSAV4		;NO, SO MUST WANT LOW SEG
2)		MOVE	T1,HC.S1	;YES, SEE IF LOW SEG CONTAINS DA
	TA
2)		CAIG	T1,.JBDA	;IF .JBCOR GREATER THAN 137
2)		JRST	ENDSAV		;NO, SO NO LOW SEG FILE
2)	JBSAV4:	MOVEI	R,1		;POINT TO LOW SEGMENT
2)		PUSHJ	P,SAVINI	;INIT/ENTER SAV FILE
2)		SKIPE	IO.PTR+%XC	;WANT .XPN FILE?
2)		SKIPE	IO.PTR+LC	;BUT NOT PAGING
2)		JRST	ZCMPRS		;NO, NOW FOR ZERO COMPRESSOR
2)		PUSHJ	P,WRTXPN	;WRITE IT OUT
2)		JRST	ZCMPRS		;AND COMPRESS CORE IMAGE
2)	
2)	> ;END OF IFE FTEXE
2)	
2)52	;HERE TO DELETE LC FILE
**************
1)93	SUBTTL	HERE WHEN NOT ENOUGH CORE TO LOAD OR EXECUTE JOB
1)	
1)	;WHEN THERE IS NOT ENOUGH CORE TO LOAD OR EXECUTE JOB
1)	;BUT USER DID NOT SPECIFY A SAV FILE
1)	;GIVE WARNING AND CREATE A SAV FILE
1)	;AND IF /EXECUTE , RUN IT
1)	
1)	JBNC:	MOVEI	T2,F.LEN	;SETUP FAKE FILE SPEC
1)		PUSHJ	P,DY.GET##	;AS THOUGH WE HAD SEEN /SAVE
1)		MOVE	P1,T1		;STORE POINTER TO "SCAN" BLOCK
1)		HLLZ	T2,JOBNUM	;SIXBIT JOBNUMBER
1)		HRRI	T2,'LNK'	;REST OF NAME
1)		MOVEM	T2,F.NAME(T1)
1)		MOVEM	T2,SSNAME	;HERE ALSO
1)	IFE FTEXE,<
1)		MOVSI	T2,'HGH'	;MARK NON-SHAREABLE
1)		SKIPN	HL.S2		;IF NO HIGH
1)		MOVSI	T2,'SAV'	;SO MESSAGE IS CORRECT
1)	>
1)	IFN FTEXE,<
1)		MOVSI	T2,'EXE'	;SO MESSAGE IS CORRECT
1)	>
1)		MOVEM	T2,F.EXT(T1)	
1)		MOVEM	T2,SSEXT	;FOR SAVE FILE
1)		MOVSI	T2,'DSK'	;MAKE SURE IT GOES ON DSK
1)		MOVEM	T2,F.DEV(T1)	;INCASE DEFAULTS SCREWED UP BY N
	OW
Digital Equipment Corporation       28-AUG-79    Page 361
PCO Log Report


1)		PUSHJ	P,DVOUT.##	;SETUP DATA BLOCK
1)		  %VC,,.IODPR		;ON FAKE CHAN IN DUMP MODE
1)		SKIPN	EXECSW		;WANT TO EXECUTE?
1)		TDZA	T1,T1		;NO
 
 
1)		MOVEI	T1,1		;YES
1)		PUSHJ	P,@[EXP JBNCM1,JBNCM2](T1)	;PRINT MESSAGE
1)		JRST	JBSAVE		;AND TREAT AS IF /SAVE SEEN
1)	
1)	JBNCM1:	.ERR.	(MS,.EC,V%L,L%W,S%W,NCL,<Not enough core to load
	 job, saved as >)
1)		.ETC.	(FSP,,,,,%VC)
1)		POPJ	P,
1)	
1)	JBNCM2:	.ERR.	(MS,.EC,V%L,L%W,S%I,NCX,<Not enough core to load
	 and execute job, will run from >)
1)		.ETC.	(FSP,,,,,%VC)
1)		POPJ	P,
1)	
1)94	SUBTTL	HERE TO BLT DOWN AREA AND EITHER GO TO EXECUTION OR  EXI
	T
1)	
1)	;HERE TO CHECK FOR HIGH SEG AND MAKE SURE IT'S ON A K BOUNDARY
1)	JBEXIT:	PUSHJ	P,JOBSET	;SETUP REST OF JOBDAT
1)		PUSHJ	P,HJBSET	;AND VESTIGIAL JOB DATA AREA
1)		SKIPN	PAG.S1		;SEE IF PAGING LOW
1)		SKIPE	PAG.S2		;OR HIGH
1)		PUSHJ	P,JBCC		;YES, SEE IF ENOUGH CORE
1)		SKIPE	IO.PTR+%XC	;DO WE WANT .XPN FILE
1)		SKIPE	IO.PTR+LC	;AND DON'T ALRADY HAVE AN OVERFL
	OW FILE
1)		CAIA			;NOT BOTH TRUE
1)		PUSHJ	P,WRTXPN	;WRITE OUT CURRENT CORE IMAGE
1)		SKIPE	T1,HC.LB	;ANY HIGH SEG CODE
1)	IFN TOPS20,<
1)		TRNN	T1,.PGSIZ	;[650] ON A PAGE BOUND ALREADY?
1)		JRST	JBEX1		;[650] YES, EXPECTED
1)		SUBI	T1,1001		;[650] NO, FIND NEXT LOWER PAGE
1)	> ;END IFN TOPS20
1)	IFE TOPS20,<
1)		TDNN	T1,.PGSIZ	;[650] ON A (K/P) BOUND?
1)		JRST	JBEX1		;[650] YES, WHAT LUCK
1)		SUB	T1,.PGSIZ	;[650] NO, NEXT LOWER PAGE
1)		SUBI	T1,2		;[650] 1 FOR EVEN PAGE, 1 FOR LO
	W END
1)	> ;END OF IFE TOPS20
1)		IOR.	T1,.PGSIZ	;[650] UP TO CORE BLOCK BOUND
1)		CAMGE	T1,LC.AB	;ENOUGH SPARE TO BLT DOWN?
1)		JRST	JBEXUP		;NO MOVE UPWARDS
1)		ADDI	T1,1		;PUT THE 1 BACK
Digital Equipment Corporation       28-AUG-79    Page 362
PCO Log Report


1)		HRL	T1,HC.LB	;FROM,,TO BLT POINTER
1)		MOVE	T2,HC.AB
1)		SUB	T2,HC.LB	;GET LENGTH
1)		ADDI	T2,(T1)		;LAST ADD TO BLT
1)		HRRZM	T1,HC.LB	;NEW LOW BASE
1)		MOVEM	T2,HC.AB	;NEW HIGH BASE
1)		BLT	T1,-1(T2)	;MOVE DATA
1)					;NOW TO ZERO REST OF AREA UP TO
	K BOUND
1)		HRRZI	T1,-1(T2)	;GET TOP DATA WORD
1)		IOR.	T1,.PGSIZ	;[650] UP TO CORE BLOCK BOUND
1)		SETZM	(T2)		;ZERO FIRST WORD
1)		HRLI	T2,1(T2)	;FORM BLT POINTER
1)		MOVS	T2,T2		;RIGHT WAY ROUND
1)		BLT	T2,(T1)		;ZERO JUNK
1)		JRST	JBEX1		;NOW FOR REMAP
1)	
 
 
1)95	;HERE TO SEE IF WE CAN GET ENOUGH CORE TO FINISH THIS LOAD
1)	;IF WE CAN DO SO (UNLESS ALREADY ENOUGH)
1)	;IF NOT CREATE A SAVE FILE AND TRY TO RUN IT
1)	
1)	P0==P1-1			;TO MAKE CODE EASIER TO READ
1)	
1)	JBCC:	MOVE	T1,HL.S2	;GET HIGH SEG STUFF
1)	IFE TOPS20,<
1)		TDZE	T1,.PGSIZ	;BUT MUST BE IN K OR P
1)	>
1)	IFN TOPS20,<
1)		TRZE	T1,.PGSIZ
1)	>
1)		IOR.	T1,.PGSIZ	;SO ROUND UP
1)		ADD	T1,HC.S1	;ADD HIGHEST DATA LOCATION REQUI
	RED
1)		ADD	T1,DY.AB	;TOP OF SPACE WE STILL NEED
1)	IFE TOPS20,<
1)		TDZE	T1,.PGSIZ	;ROUND UP
1)	>
1)	IFN TOPS20,<
1)		TRZE	T1,.PGSIZ
1)	>
1)		IOR.	T1,.PGSIZ	;TO NEXT K OR P
1)		ADDI	T1,1		;UP TO NEXT BLOCK
1)		TLNE	T1,-1		;[732] OVERFLOWED INTO THE LH?
1)		JRST	JBNC		;[732] DO IT THE HARD WAY.
1)	;**;[1113] Insert after JBCC+19L	DZN	25-Aug-78
1)	IFE TOPS20,<			;[1113] SEE IF WE CAN EXPAND ON
	TOPS-10
1)		CAMG	T1,.JBREL	;DO WE HAVE ENOUGH ALREADY?
1)		JRST	JBGC		;YES, READ IN REST OF TEMP FILE
Digital Equipment Corporation       28-AUG-79    Page 363
PCO Log Report


1)		CORE	T1,		;NO TRY FOR IT
1)		  JRST	JBNC		;NO LUCK, DO IT THE HARD WAY
1)		MOVEI	T1,HG.TAB	;OK, BUT DON'T FORGET TO GIVE IT
	 TO SOMEONE
1)		SKIPN	TAB.LB(T1)	;USUAL LOOP
1)		SOJA	T1,.-1
1)		MOVE	T2,.JBREL
1)		MOVEM	T2,TAB.UB(T1)
1)	;**;[1113] Insert after JBCC+28L	DZN	25-Aug-78
1)	>
1)	IFN TOPS20,<			;[1113] WE'RE AS BIG AS WE CAN G
	ET ON TOPS-20
1)		CAMLE	T1,.JBREL	;[1113] DO WE HAVE ENOUGH ALREAD
	Y?
1)		JRST	JBNC		;[1113] NO--GO DO IT THE HARD WA
	Y
1)	>
1)					;FALL INTO JBGC TO READ IN READ
	IN REST OF TEMP FILE
1)	
1)96	;HERE TO READ IN HIGH/LOW TEMP FILES
1)	;IN ORDER TO MINIMIZE DSK TRANSFERES CURRENT CODE WILL NOT
1)	;BE OUTPUT AND REREAD, RATHER WE WILL BLT CODE TO CORRECT PLACE
1)	;AND READ IN REST ARROUND IT
1)	;AT THE END THE TEMP FILES WILL BE DELETED
1)	
1)	JBGC:	DMOVE	P1,LC.LB	;SAVE THE CURRENT LOCATIONS
1)		DMOVE	P3,LC.AB	; SO WE CAN MOVE DATA
1)		MOVE	T1,DY.AB	;TOP OF FIXED AREA
1)		ADDI	T1,1		;NEXT FREE
1)		MOVEM	T1,LC.LB	;MAKE LOWEST FOR LOW CODE
 
 
1)		ADD	T1,HC.S1	;HOW MUCH WE NEED
1)		IORI	T1,.IPM		;BLOCK BOUND
****
2)95	;**;[1146] Delete entire page @JBNC and down through JBEXIT+4L
2)	;**;[1146] on next page. Move JBEXIT+5L through the end of the p
	age
2)	;**;[1146] down where indicated below. Delete entire page @JBCC.
2)	;**;[1146] Then replace @JBGC-6L	DZN	8-Mar-79
2)	SUBTTL	LOAD PROGRAM INTO MEMORY
2)	
2)	;HERE TO BRING THE ENTIRE PROGRAM INTO MEMORY. IF NOT PAGING, TH
	IS ONLY INVOLVES
2)	;COMPACTING THE LC AND HC AREAS DOWN TOWARD 0 AS FAR AS POSSIBLE
	. IF PAGING,
2)	;MINIMIZE DISK TRANSFERS BY MOVING THE WINDOW (VIA BLT OR POP LO
	OP) TO ITS FINAL
2)	;LOCATION, THEN READING IN THE REST OF THE APPROPRIATE OVERFLOW
	FILE AROUND THE
Digital Equipment Corporation       28-AUG-79    Page 364
PCO Log Report


2)	;WINDOW.
2)	
2)	JBLOAD:	DMOVE	P1,LC.LB	;SAVE THE CURRENT LOCATIONS
2)		DMOVE	P3,LC.AB	; SO WE CAN MOVE DATA
2)		MOVE	T1,DY.AB	;TOP OF FIXED AREA
2)		ADDI	T1,1		;NEXT FREE
2)		MOVEM	T1,LC.LB	;MAKE LOWEST FOR LOW CODE
2)		ADD	T1,HC.S1	;HOW MUCH WE NEED
2)	;**;[1146] Insert before JBGC+6L	DZN	8-Mar-79
2)		SUBI	T1,1		;[1146] LB + LENGTH - 1 FOR LAST
	 NEEDED
2)		IORI	T1,.IPM		;BLOCK BOUND
**************
1)96		IORI	T1,.IPM		;BLOCK BOUND
****
2)95	;**;[1146] Insert before JBGC+16L	DZN	8-Mar-79
2)		SUBI	T1,1		;[1146] LB + LENGTH - 1 FOR LAST
	 NEEDED
2)		IORI	T1,.IPM		;BLOCK BOUND
**************
1)97		POPJ	P,		;RETURN
1)	
1)	
1)98	;HERE TO MOVE CODE FOR EITHER SEG AND READ IN DATA
1)	
1)	JBGCMV:	MOVE	T1,TAB.LB(R)	;BASE
1)		ADD	T1,LW.S0(R)	;PLUS WINDOW OFFSET
1)		CAME	T1,P0(R)	;IF WHERE WE SHOULD BE DO NOTHIN
	G
1)		PUSHJ	P,[CAMG	T1,P0(R)	;OTHERWISE MOVE UP OR DO
	WN
1)			JRST	JBGCD	;DOWN
1)			JRST	JBGCU]	;UP
1)					;NOW FOR REST OF CODE
1)		SKIPN	PAG.S0(R)	;HOWEVER IF THIS SEGMENT NOT PAG
	ED
1)		POPJ	P,		;WE MUST BE IN RIGHT PLACE ALREA
	DY
1)		HRRZ	T1,LW.S0(R)	;GET LOWER WINDOW
1)		SOJL	T1,.+3		;DONE IF WAS ZERO
1)		SETZM	LW.S0(R)	;NOW POINT TO BASE
1)		PUSHJ	P,@[EXP LC.IN##,HC.IN##]-1(R)
1)		MOVE	T1,HC.S0(R)	;HIGHEST DATA WE NEED
1)		IORI	T1,.IPM		;UP TO BOUND
1)		CAMG	T1,UW.S0(R)	;IF WE'VE ALREADY GOT IT IN
1)		JRST	.+5		;JUST IGNORE
1)		EXCH	T1,UW.S0(R)	;GET BASE
1)		HRLZI	T1,1(T1)	;FIRST LOC TO READ
1)		HRR	T1,UW.S0(R)	;LAST
 
 
Digital Equipment Corporation       28-AUG-79    Page 365
PCO Log Report


1)		PUSHJ	P,@[EXP LC.IN##,HC.IN##]-1(R)
1)					;NOW TO ZERO JUNK AT TOP
1)		HRRZ	T1,TAB.AB(R)	;TOP IN USE OR KNOWN TO BE ZERO
1)		CAMN	T1,TAB.UB(R)	;ALL TAKEN?
1)		POPJ	P,		;YES
1)		HRLI	T1,1(T1)	;FIRST TO ZERO
1)		SETZM	1(T1)		;CLEAR IT
1)		ADDI	T1,2		;FORM BLT PTR
1)		BLT	T1,@TAB.UB(R)	;ALL THE WAY
1)		POPJ	P,		;ALL DONE
1)	
1)99	JBGCHU:				;HERE TO MOVE HIGH UP
****
2)96	;**;[1146] Replace @JBGCZ1+1L	DZN	8-Mar-79
2)		JRST	JBEXIT		;[1146] PROGRAM NOW ALL IN MEMOR
	Y
2)	
2)97	;**;[1146] Swap pages @JBGCMV and JBGCHU	DZN	8-Mar-79
2)	JBGCHU:				;HERE TO MOVE HIGH UP
**************
1)100	;HERE TO MOVE WINDOW UP IN EITHER AREA
****
2)98	;**;[1146] (Swapped as noted above). Make minor changes below.
2)	;**;[1146] DZN	8-Mar-79
2)	;HERE TO MOVE CODE FOR EITHER SEG AND READ IN DATA
2)	
2)	;**;[1146] Insert before JBCHMV	DZN	8-Mar-79
2)		P0==P1-1		;[1146] USED FOR REFERENCING P1
	OR P2 VIA R
2)	
2)	JBGCMV:	MOVE	T1,TAB.LB(R)	;BASE
2)		ADD	T1,LW.S0(R)	;PLUS WINDOW OFFSET
2)		CAME	T1,P0(R)	;IF WHERE WE SHOULD BE DO NOTHIN
	G
2)		PUSHJ	P,[CAMG	T1,P0(R)	;OTHERWISE MOVE UP OR DO
	WN
2)	;**;[1146] Replace @JBGCMV+4L	DZN	8-Mar-79
2)			   PJRST JBGCD		;[1146] DOWN
2)			   PJRST JBGCU]		;[1146] UP
2)					;NOW FOR REST OF CODE
2)		SKIPN	PAG.S0(R)	;HOWEVER IF THIS SEGMENT NOT PAG
	ED
2)		POPJ	P,		;WE MUST BE IN RIGHT PLACE ALREA
	DY
2)		HRRZ	T1,LW.S0(R)	;GET LOWER WINDOW
2)		SOJL	T1,.+3		;DONE IF WAS ZERO
2)		SETZM	LW.S0(R)	;NOW POINT TO BASE
2)		PUSHJ	P,@[EXP LC.IN##,HC.IN##]-1(R)
2)		MOVE	T1,HC.S0(R)	;HIGHEST DATA WE NEED
2)		IORI	T1,.IPM		;UP TO BOUND
2)		CAMG	T1,UW.S0(R)	;IF WE'VE ALREADY GOT IT IN
Digital Equipment Corporation       28-AUG-79    Page 366
PCO Log Report


2)		JRST	.+5		;JUST IGNORE
2)		EXCH	T1,UW.S0(R)	;GET BASE
2)		HRLZI	T1,1(T1)	;FIRST LOC TO READ
2)		HRR	T1,UW.S0(R)	;LAST
2)		PUSHJ	P,@[EXP LC.IN##,HC.IN##]-1(R)
2)					;NOW TO ZERO JUNK AT TOP
2)		HRRZ	T1,TAB.AB(R)	;TOP IN USE OR KNOWN TO BE ZERO
2)		CAMN	T1,TAB.UB(R)	;ALL TAKEN?
2)		POPJ	P,		;YES
2)		HRLI	T1,1(T1)	;FIRST TO ZERO
2)		SETZM	1(T1)		;CLEAR IT
 
 
2)		ADDI	T1,2		;FORM BLT PTR
2)		BLT	T1,@TAB.UB(R)	;ALL THE WAY
2)		POPJ	P,		;ALL DONE
2)	
2)99	;HERE TO MOVE WINDOW UP IN EITHER AREA
**************
1)101	;HERE TO MOVE CODE UP TO A K BOUND SO REMAP WILL WORK
****
2)100	;**;[1146] Place saved code from JBEXIT here, then make minor ch
	anges
2)	;**;[1146] as indicated.	DZN	8-Mar-79
2)	SUBTTL	HERE TO BLT DOWN AREA AND EITHER GO TO EXECUTION OR EXIT
2)	
2)	;HERE TO CHECK FOR HIGH SEG AND MAKE SURE IT'S ON A K BOUNDARY
2)	JBEXIT:	SKIPE	IO.PTR+%XC	;[1146] DO WE WANT .XPN FILE
2)		SKIPE	IO.PTR+LC	;AND DON'T ALRADY HAVE AN OVERFL
	OW FILE
2)		CAIA			;NOT BOTH TRUE
2)		PUSHJ	P,WRTXPN	;WRITE OUT CURRENT CORE IMAGE
2)		SKIPE	T1,HC.LB	;ANY HIGH SEG CODE
2)	IFN TOPS20,<
2)		TRNN	T1,.PGSIZ	;[650] ON A PAGE BOUND ALREADY?
2)		JRST	JBEX1		;[650] YES, EXPECTED
2)		SUBI	T1,1001		;[650] NO, FIND NEXT LOWER PAGE
2)	> ;END IFN TOPS20
2)	IFE TOPS20,<
2)		TDNN	T1,.PGSIZ	;[650] ON A (K/P) BOUND?
2)		JRST	JBEX1		;[650] YES, WHAT LUCK
2)		SUB	T1,.PGSIZ	;[650] NO, NEXT LOWER PAGE
2)		SUBI	T1,2		;[650] 1 FOR EVEN PAGE, 1 FOR LO
	W END
2)	> ;END OF IFE TOPS20
2)		IOR.	T1,.PGSIZ	;[650] UP TO CORE BLOCK BOUND
2)		CAMGE	T1,LC.AB	;ENOUGH SPARE TO BLT DOWN?
2)		JRST	JBEXUP		;NO MOVE UPWARDS
2)		ADDI	T1,1		;PUT THE 1 BACK
2)		HRL	T1,HC.LB	;FROM,,TO BLT POINTER
2)		MOVE	T2,HC.AB
Digital Equipment Corporation       28-AUG-79    Page 367
PCO Log Report


2)		SUB	T2,HC.LB	;GET LENGTH
2)		ADDI	T2,(T1)		;LAST ADD TO BLT
2)		HRRZM	T1,HC.LB	;NEW LOW BASE
2)		MOVEM	T2,HC.AB	;NEW HIGH BASE
2)		BLT	T1,-1(T2)	;MOVE DATA
2)					;NOW TO ZERO REST OF AREA UP TO
	K BOUND
2)		HRRZI	T1,-1(T2)	;GET TOP DATA WORD
2)		IOR.	T1,.PGSIZ	;[650] UP TO CORE BLOCK BOUND
2)		SETZM	(T2)		;ZERO FIRST WORD
2)		HRLI	T2,1(T2)	;FORM BLT POINTER
2)		MOVS	T2,T2		;RIGHT WAY ROUND
2)		BLT	T2,(T1)		;ZERO JUNK
2)		JRST	JBEX1		;NOW FOR REMAP
2)	
2)101	;HERE TO MOVE CODE UP TO A K BOUND SO REMAP WILL WORK
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 368
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -266*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          14-MAR-79

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             BAD EXE     LOWLOC

[Source Before Edit]    %4A  (001146)

[Source After Edit]     %4A  (001147)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 369
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK  can  write  an  incorrect  EXE  file  under   the
following conditions:
 
     1.  The lowest location loaded is at 400000 or above.
 
     2.  The lowest location loaded  is  not  loaded  first,
         i.e., the load is not monotonic.
 
     3.  LINK is paging to disk.
 
     4.  The last location loaded  is  fairly  near  to  the
         first location loaded.
 

                        **********


[DIAGNOSIS]
 
     Under the above conditions, the lowest location  loaded
will  be  in  the  middle  of  the  LC area window.  If that
happens, LINK will move the bottom of the LC  window  up  to
point  to the lowest location loaded, but will not bother to
adjust the size of the LC area or the top of the window,  so
the  physical  and virtual limits of the LC area disagree as
to how  large  the  area  is.   This  disagreement  violates
assumptions made in the EXE file writer.
 

                        **********


[CURE]
 
     When moving up the bottom of the virtual  window,  move
up  the  bottom  of the area as well by giving the bottom of
the area to the DY area.
 
 
Digital Equipment Corporation       28-AUG-79    Page 370
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1157 08-Mar-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1612 12-Mar-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	8-Mar-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	12-Mar-7
	9
2)	
**************
1)1	DECEVR==1146		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1147		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1147	JNG	12-Mar-79
2)	;	Avoid bad EXE file if lowest location loaded is above 40
	0000, LINK
2)	;	is overflowing to disk, and lowest location loaded was n
	ot the first
2)	;	location loaded (i.e., load was not monotonic).
2)	;	Routine: LNKXIT
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 371
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1302 08-Mar-1979
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1611 12-Mar-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	8-Mar-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	12-Mar-79
2)	
**************
1)1	DECEVR==1146		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1147		;DEC EDIT VERSION
2)	
**************
1)4	SUBTTL	ENTER HERE
****
2)4	;1147	Adjust LC.LB when adjusting LW.S1 in JBEXE.  Broken by 7
	32.
2)	SUBTTL	ENTER HERE
**************
1)58			MOVEM	T1,LW.S1	;[732] NO, START AT LOWE
	ST LOC
****
2)58	;**;[1147] Replace @ JBEXEN+10L	JNG	12-Mar-79
2)	;**;[1147] This is JBEXEE+1P9L if edit 1132 has been installed.
2)			SUB	T1,LW.S1	;[1147] NO, FIND HOW FAR
	 TO SHRINK
2)			ADDM	T1,LW.S1	;[1147] MOVE VIRTUAL WIN
	DOW UP
2)			ADDM	T1,LC.LB	;[1147] GIVE AWAY BOTTOM
	 OF AREA
2)			ADDM	T1,DY.UB	;[1147] GIVE TO AREA JUS
	T BELOW
2)			JRST	JBEXE1]		;[732]
**************
1)95		ADDI	T1,1		;NEXT FREE
****
2)95	;**;[1147] Insert @ JBGC+3L	JNG	12-Mar-79
2)	;**;[1147] This is JBLOAD+3L if edit 1146 has been installed.
2)		MOVEM	T1,DY.UB	;[1147] MAKE SURE UB IS UP TO DA
	TE
2)		ADDI	T1,1		;NEXT FREE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 372
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -265*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) TESTED IN 4A(1147)

[Date Entered]          14-MAR-79

[Programmer]            D. NEFF

[Routines]              LNKINI

[Key Words]             LOG LNKFRE

[Source Before Edit]    %4A  (001147)

[Source After Edit]     %4A  (001150)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-27632
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 373
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
LINK gives the ?LNKFRE message for the  log  file  if  all  of  the
following conditions are met:
 
     1.  The user's default path is in an SFD.
 
     2.  A log device has been  assigned  the  logical  name  LOG:,
         requesting that LINK write a log file.
 
     3.  The /LOG switch is given to LINK to give the  log  file  a
         name.
 
 

                        **********


[DIAGNOSIS]
 
If a log file is requested at LINK start-up time by assigning a log
file device a logical name of LOG:, LINK begins the log file with a
temporary name of nnnLNK.LOG.  If a /LOG switch is later  specifed,
LINK  remembers  to  rename the log file to the correct name at the
end of loading.
 
Unfortunately, LINK's initialization routines create  the  file  by
hand  but  do  not  save the file's path over the ENTER UUO.  Thus,
when LINK attempts to find the file later with the RENAME  UUO,  it
uses  the junk left by the previous ENTER UUO.  This causes LINK to
not find the file.
 

                        **********


[CURE]
 
Change the log file initialization routines to use LINK's own  file
routines  instead  of  doing the work by hand.  These routines save
the path pointer over the ENTER UUO, allowing the subsequent RENAME
UUO to find the log file again.
Digital Equipment Corporation       28-AUG-79    Page 374
PCO Log Report


 
Digital Equipment Corporation       28-AUG-79    Page 375
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1612 12-Mar-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1033 14-Mar-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	12-Mar-7
	9
1)	;COPYRIGHT (C) 1973, 1978, 1979 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Mar-7
	9
2)	;COPYRIGHT (C) 1973, 1978, 1979 BY
**************
1)1	DECEVR==1147		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1150		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1150	DZN	14-Mar-79	SPR 10-27632
2)	;	Make LOGINI in LNKINI.MAC use standard LKNFIO routines t
	o set up the log
2)	;	file, so that the default path of a log file is preserve
	d over the
2)	;	ENTER.
2)	;	Routine: LNKINI
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 376
PCO Log Report


[FILCOM]
File 1)	LINK:LNKINI.MAC[30,4507]  	created: 1101 30-Jan-1979
File 2)	LINK:LNKINI.MAC[10,645063]	created: 1041 14-Mar-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	30-Jan-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	14-Mar-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1132		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1150		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	INITIALIZE
****
2)2	;1150	Call proper LNKFIO routines if a log file is opened at s
	tart-up time.
2)3	SUBTTL	INITIALIZE
**************
1)12		PUSH	P,T1		;SAVE DEVCHR WORD
1)		MOVEI	T2,LN.IO	;SPACE WE NEED
****
2)12	;**;[1150] Delete @LOGINI+26L	DZN	14-Mar-79
2)		MOVEI	T2,LN.IO	;SPACE WE NEED
**************
1)12		MOVEI	T2,.IOASC	;ASCII MODE
****
2)12	;**;[1150] Insert before LOGINI+30L	DZN	14-Mar-79
2)		MOVEI	T2,RC		;[1150] SET UP LOG FILE CHANNEL
2)		MOVEM	T2,IO.CHN	;[1150]   ..
2)		MOVX	T2,<Z RC,>	;[1150]   AND IN FORM WE CAN IOR
	 INTO UUOS
2)		MOVEM	T2,I.CHN(T1)	;[1150]   ..
2)		MOVEI	T2,.IOASC	;ASCII MODE
**************
1)12		HLLZ	T2,JOBNUM	;SIXBIT JOB NUMBER
1)		HRRI	T2,'LNK'	;000LNK AS NAME
1)		MOVEM	T2,I.NAM(T1)
1)		MOVSI	T2,'LOG'	;EXTENSION
1)		MOVEM	T2,I.EXT(T1)
1)		OPEN	RC,@IO.PTR+RC	;OPEN IT
1)		  JRST	OPNERR		;FAILED
1)13	;HERE WITH LOG DEVICE OPENED. CREATE THE FILE.
1)		MOVE	T1,IO.PTR+RC	;GET ADDRESS
1)		ADDI	T1,I.RIB	;GET ENTER BLOCK
1)		POP	P,T2		;GET DEVCHR BACK
1)		TXNN	T2,DV.DSK	;ONLY DO EXTENDED ENTER ON DSK
1)		ADDI	T1,2		;POINT TO NAME
Digital Equipment Corporation       28-AUG-79    Page 377
PCO Log Report


1)		ENTER	RC,(T1)
1)		  JRST	ENTERR		;FAILED
1)		MOVE	T1,IO.PTR+RC	;POINT TO OPEN BLOCK
1)		DEVSIZ	T1,		;GET BUFFER SIZE
1)		  MOVE	T1,[2,,203]	;SHOULD NOT HAPPEN, SO FAKE IT
1)		PUSH	P,T1		;SAVE INFO
1)		HLRZ	T2,T1		;NUMBER OF BUFFERS
1)		HRRZ	T1,T1		;SIZE
1)		IMULI	T2,(T1)		;TOTAL SPACE REQUIRED
1)		PUSHJ	P,DY.GET##
1)		MOVE	T3,IO.PTR+RC	;GET AREA
 
 
1)		POP	P,I.DVZ(T3)	;STORE DEVSIZ WORD
1)		MOVEM	T1,I.RNG(T3)	;POINT TO RING BUFFERS
1)		MOVEM	T1,.JBFF	;NOW TO SETUP BUFFER
1)		MOVSI	T1,(Z RC,)	;CHAN#
1)		MOVEM	T1,I.CHN(T3)	;FOR CLOSE
1)		HLRZ	T2,I.DVZ(T3)	;GET NO. OF BUFFERS
1)		OUTBUF	RC,(T2)		;SET THEM UP
1)		MOVE	T1,.JBREL	;SET .JBFF OUTSIDE CORE RANGE
1)		MOVEM	T1,.JBFF	;INCASE /HELP
1)		MOVEI	T1,LOGIT	;NOW WE CAN POINT TO IT
****
2)12	;**;[1150] Replace @LOGINI+38L	DZN	14-Mar-79
2)		MOVSI	T2,'LOG'	;EXTENSION
2)		MOVEM	T2,I.EXT(T1)
2)		PUSHJ	P,DVNAM.##	;[1150] SET UP DEFAULT FILE NAME
2)		PUSHJ	P,DVCHK.##	;[1150] MAKE SURE DEVICE CAN HAN
	DLE I/O MODE
2)		PUSHJ	P,DVOPN.##	;[1150] OPEN THE LOG FILE
2)		PUSHJ	P,DVENT.##	;[1150] ENTER THE FILE
2)13	;HERE WITH LOG FILE OPENED AND ENTERED. ALLOW LINK TO USE IT FOR
	 LOGGING.
2)		MOVEI	T1,LOGIT	;NOW WE CAN POINT TO IT
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 378
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -267*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          29-MAR-79

[Programmer]            GILBERT

[Routines]              LNKINI

[Key Words]             .JBEDV

[Source Before Edit]    %4A  (001150)

[Source After Edit]     %4A  (001151)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 379
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Users need to be able to reference the symbol .JBEDV as
a JOBDAT symbol, since it has been added to the monitor, but
they can't since it isn't in LINK.
 

                        **********


[DIAGNOSIS]
 
     It was never added.
 

                        **********


[CURE]
 
     Insert it.
 
 
Digital Equipment Corporation       28-AUG-79    Page 380
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1033 14-Mar-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1448 29-Mar-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Mar-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	29-Mar-7
	9
2)	
**************
1)1	DECEVR==1150		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1151		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1151	JNG	29-Mar-79
2)	;	Add the new Job Data Area location .JBEDV to the initial
	 symbols.
2)	;	Routine: LNKINI
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 381
PCO Log Report


[FILCOM]
File 1)	LINK:LNKINI.MAC[30,4507]  	created: 1041 14-Mar-1979
File 2)	LINK:LNKINI.MAC[10,645063]	created: 1450 29-Mar-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	14-Mar-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	29-Mar-79
2)	
**************
1)1	DECEVR==1150		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1151		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1151	Add .JBEDV.
2)	
**************
1)23		.JB	,ERR
****
2)23	;**;[1151] Insert @ %%%BDT+16L	JNG	29-Mar-79
2)23		.JB	,EDV,112	;[1151] VALUE HERE FOR ASSEMBLY
	WITH 6.03A
2)		.JB	,ERR
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 382
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -268*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)+1132

[Date Entered]          03-APR-79

[Programmer]            GILBERT

[Routines]              LNKOV1    LNKXIT

[Key Words]             OVERLAYS    ED 1132

[Source Before Edit]    %4A  (001151)

[Source After Edit]     %4A  (001152)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 383
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Overlaid programs may fail with an illegal UUO or other
error  indicating  that zeros were loaded where code or data
should have gone.  This will only happen after edit 1132 has
been installed in LINK.
 

                        **********


[DIAGNOSIS]
 
     The new EXE file writer looks at RC.HL in the RC  block
to  determine  how  much  to save.  The overlay code in LINK
does not bother to keep it up to date.
 

                        **********


[CURE]
 
     Keep  RC.HL  up  to  date  in  the  overlay  processing
routines.
 
 
Digital Equipment Corporation       28-AUG-79    Page 384
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1448 29-Mar-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1546 03-Apr-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	29-Mar-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	3-Apr-79
2)	
**************
1)1	DECEVR==1151		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1152		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1152	JNG	3-Apr-79
2)	;	Get EXE file right when loading overlays.  Broken by 113
	2.
2)	;	Routines: LNKOV1, LNKXIT
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 385
PCO Log Report


[FILCOM]
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	27-Feb-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	3-Apr-79
2)	
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1152		;DEC EDIT VERSION
2)	
**************
1)3	SUBTTL	ENTRY POINT
****
2)2	;START OF VERSION 4A
2)	;1152	Set up RC.HL correctly on /LINK and /NODE.
2)	
2)3	SUBTTL	ENTRY POINT
**************
1)33		SETZM	RC.HL(R)	;CLEAR
1)		PUSHJ	P,Z.INEX##	;CLEAR INCLUDE/EXCLUDE STORAGE
****
2)33	;**;[1152] Replace @ LNKZA+5L	JNG	3-Apr-79
2)		MOVEM	T1,RC.HL(R)	;[1152] AND AS NEW FIRST FREE
2)		PUSHJ	P,Z.INEX##	;CLEAR INCLUDE/EXCLUDE STORAGE
**************
 
Digital Equipment Corporation       28-AUG-79    Page 386
PCO Log Report


[FILCOM]
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	12-Mar-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	3-Apr-79
2)	
**************
1)1	DECEVR==1147		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1152		;DEC EDIT VERSION
2)	
**************
1)4	SUBTTL	ENTER HERE
****
2)6	;1152	Set RC.HL for .LOW. during initialization when loading o
	verlays.
2)	SUBTTL	ENTER HERE
**************
1)5		JRST	LNKX1		;
****
2)7	;**;[1152] Insert @ LNKX0B+4L	JNG	3-Apr-79
2)		MOVEI	R,1		;[1152] LOW SEGMENT
2)		MOVE	R,@RC.TB	;[1152] POINTER TO RC BLOCK FOR
	LC AREA
2)		HRRZM	T1,RC.CV(R)	;[1152] SAVE AS CURRENT VALUE OF
	 RELOC COUNTER
2)		HRRZM	T1,RC.HL(R)	;[1152] AND FIRST FREE BEYOND RO
	OT
2)		JRST	LNKX1		;
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 387
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -269*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)+E1137

[Date Entered]          13-APR-79

[Programmer]            GILBERT

[Routines]              LNKOLD

[Key Words]             BLOCK 24    LNKIPX

[Source Before Edit]    %4A  (001152)

[Source After Edit]     %4A  (001153)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 388
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     If a PSECT header  REL  block  (type  24)  contains  an
invalid  PSECT  index, LINK will loop, get an illegal memory
reference, or generate a bad program.
 

                        **********


[DIAGNOSIS]
 
     There is no consistency check.  This is a common error,
because  a  PSECT  index  of zero is sufficient to make LINK
fail.
 

                        **********


[CURE]
 
     Give a LNKIPX error in this case.  Note that this  edit
requires edit 1137 to LINK.
 
 
Digital Equipment Corporation       28-AUG-79    Page 389
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1546 03-Apr-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1928 12-Apr-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	3-Apr-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	12-Apr-7
	9
2)	
**************
1)1	DECEVR==1152		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1153		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1153	JNG	12-Apr-79	QAR JBD
2)	;	Give LNKIPX message if a Define PSECT block (type 24) co
	ntains
2)	;	an invalid PSECT index.
2)	;	Routine: LNKOLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 390
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 1448 08-Feb-1979
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1947 12-Apr-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	6-Feb-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	12-Apr-7
	9
2)	
**************
1)1	DECEVR==1140		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1153		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1153	Give LNKIPX if block 24 is illegal.
2)	
**************
1)69	T11IPX:	.ERR.	(MS,,V%M,L%F,S%F,IPX,<Invalid PSECT index>)
1)	
****
2)69	;**;[1153] Change @ T11IPX	JNG	12-Apr-79
2)	T11IPX:	.ERR.	(MS,,V%L,L%F,S%F,IPX,<Invalid PSECT index>)
2)	
**************
1)102		MOVE	T1,@RC.TB	;[1137] RC BLOCK OF THIS PSECT
****
2)102	;**;[1153] Insert @ T.24E+2L	JNG	12-Apr-79
2)		CAILE	P1,1		;[1153] DISALLOW CHANGING .LOW.
	OR BELOW
2)		CAMLE	P1,RC.NO	;[1153] CATCH GARBAGE PSECT INDI
	CES
2)		JRST	T24IPX		;[1153] INDEX IS JUNK, COMPLAIN
2)		MOVE	T1,@RC.TB	;[1137] RC BLOCK OF THIS PSECT
**************
1)103	SUBTTL	BLOCK TYPE 37 - COBOL LOCAL SYMBOLS
****
2)102	
2)	;**;[1153] Insert @ T.24E+8L	JNG	12-Apr-79
2)	;HERE ON AN INVALID PSECT INDEX.
2)	T24IPX:	.ERR.	(MS,.EC,V%L,L%F,S%F,IPX)
2)		.ETC.	(STR,.EC,,,,,< for PSECT >)
2)		.ETC.	(SBX,.EP,,,,W2)
2)	
2)103	SUBTTL	BLOCK TYPE 37 - COBOL LOCAL SYMBOLS
**************
Digital Equipment Corporation       28-AUG-79    Page 391
PCO Log Report


[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 392
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -270*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          13-APR-79

[Programmer]            GILBERT

[Routines]              LNKOLD

[Key Words]             BLOCK 23    REWORK

[Source Before Edit]    %4A  (001153)

[Source After Edit]     %4A  (001154)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 393
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     There are several problems with the PSECT  Break  block
(REL block type 24), as follows:
 
     1.  LINK re-arranges the PSECT indices for  the  module
         being  loaded based on the order of the PSECT Break
         blocks in the REL file, so that if the PSECT  Break
         blocks  are  not  put  into  the REL file sorted by
         PSECT index, then any following  Set  PSECT  blocks
         (type  22)  or  Polish  blocks (type 11) containing
         PSECT indices will get the wrong PSECT.
 
     2.  LINK requires a PSECT Break block with a blank name
         to be the first one seen for each module.
 
     3.  Unlike all of the other REL blocks  that  reference
         defined PSECTs, the PSECT Break block takes a PSECT
         name instead of a PSECT index.
 
     4.  The  PSECT  Break  block  inadvertently  takes  the
         action of a Set PSECT block (i.e., sets the default
         PSECT) during its processing.
 
 

                        **********


[DIAGNOSIS]
 
     The PSECT Break block used to do something else  in  an
early  implementation  of  PSECTs.   It  was  only partially
converted to the final design.
 

                        **********


[CURE]
 
     Re-work the PSECT Break processing code in LINK.   This
Digital Equipment Corporation       28-AUG-79    Page 394
PCO Log Report


REL  block  will now expect a PSECT index instead of a name,
although a name will still work for compatability.
 
 
Digital Equipment Corporation       28-AUG-79    Page 395
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.OLD[30,3737]	created: 2112 12-Apr-1979
File 2)	LINK:LNKHST.MAC[30,3737]	created: 2028 12-Apr-1979
 
1)1	DECEVR==1153		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1154		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1154	JNG	12-Apr-79	QAR JBD
2)	;	Re-write T.23 to fix the following problems:
2)	;	. Don't re-define the PSECT indices in terms of the orde
	r of block 23s.
2)	;	. Don't require a name of zero in the first block 23.
2)	;	. Don't do a set PSECT (block type 22) action on block t
	ype 23.
2)	;	. Expect PSECT index instead of name in first word (name
	 still works).
2)	;	Routine: LNKOLD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 396
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.OLD[30,3737]	created: 2109 12-Apr-1979
File 2)	LINK:LNKOLD.MAC[30,3737]	created: 2033 12-Apr-1979
 
1)1	DECEVR==1153		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1154		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1154	Don't re-order PSECT indices in T.23; general re-write o
	f T.23.
2)	
**************
1)100	;	!  PSECT  NAME  !
1)	;	-----------------
1)	;	! ATTR  ! BREAK !
1)	;	-----------------
1)	COMMENT	*
1)		THIS BLOCK CONSISTS OF :-
1)		PSECT NAME IN SIXBIT
1)		ATTRIBUTES (LHS)
1)		PSECT BREAK (RHS)
1)		IN ADDITION IT ESTABLISHES THE PSECT ORDERING FOR
1)		THE POLISH FIXUPS TO FOLLOW
1)	*
1)	T.23:	PUSHJ	P,RB.1		;PSECT NAME
1)		  JRST	[MOVEI	T1,23
1)			JRST	ILIERR]
1)		SKIPE	W2,W1		;NAMES ALWAYS GO IN W2
1)		JRST	T.23A		;NOTHING SPECIAL
1)		MOVE	W2,['.LOW. ']	;LOW SEG BY DEFAULT
1)		SETZM	RC.CUR		;SHOULD BE AT SLOT 1
1)	T.23A:	AOS	RC.CUR		;GOES IN NEXT SLOT
1)		MOVE	R,RC.NO		;START AT BACK OF TABLE
1)		MOVE	T1,@RC.TB	;GET RC BLOCK
1)		CAMN	W2,RC.NM(T1)	;IS THIS THE ONE WE WANT?
1)		JRST	T.23B		;YES
1)		SOJG	R,.-3		;NO, TRY AGAIN
1)		HALT			;CANNOT HAPEN
1)	
1)	T.23B:	CAMN	R,RC.CUR	;WHERE IT SHOULD BE?
1)		JRST	T.23C		;YES
1)		MOVE	T1,@RC.TB	;NO, GET RC BLOCK
1)		EXCH	R,RC.CUR	;WHERE IT SHOULD BE
1)		EXCH	T1,@RC.TB	;PUT IT THERE
1)		EXCH	R,RC.CUR	;PUT RC.CUR BACK
1)		MOVEM	T1,@RC.TB	;AND OUT OF PLACE BLOCK
1)	T.23C:	PUSHJ	P,RB.1		;NOW GET BREAK CORRECTLY RELOCAT
Digital Equipment Corporation       28-AUG-79    Page 397
PCO Log Report


	ED
1)		  JRST	[MOVEI	T1,23
1)			JRST	ILIERR]		;ERROR
1)		HRRZ	W3,W1		;VALUE IN W3, ATTRIBUTES IN W1
1)		MOVE	R,RC.CUR	;MAKE SURE R IS SETUP
1)		MOVE	R,@RC.TB	;AND POINTING TO RC BLOCK
1)		CAMLE	W3,RC.HL(R)	;USE GREATER
1)		MOVEM	W3,RC.HL(R)	;FIXUP CV AT T.5
1)		SKIPL	RC.AT(R)	;[761] RELOCATABLE PSECT?
1)		TXZ	W1,AT.RP	;[761] NO,
1)		JRST	LOAD##		;DONE
 
 
1)	
****
2)100	;	!  PSECT  INDEX !
2)	;	-----------------
2)	;	!     BREAK     !
2)	;	-----------------
2)	
2)	
2)	;**;[1154] Revamp @ T.23	JNG	12-Apr-79
2)	T.23:	PUSHJ	P,RB.1		;[1154] GET PSECT INDEX
2)		  JRST	ILIERR		;[1154] TOO SHORT
2)		MOVEI	R,1(W1)		;[1154] PUT INTERNAL PSECT INDEX
	 INTO R
2)		TXNN	W1,77B5		;[1154] OLD STYLE (NAME IN SIXBI
	T)?
2)		JRST	T.23B		;[1154] NO, WE HAVE THE PSECT IN
	DEX.
2)	
2)	
2)	;HERE WITH OLD-STYLE NAME IN SIXBIT.  LOOP OVER RC BLOCKS LOOKIN
	G FOR IT.
2)	
2)		MOVE	R,RC.NO		;[1154] START AT THE TOP PSECT
2)	T.23A:	MOVE	T1,@RC.TB	;[1154] POINT TO NEXT RC BLOCK
2)		CAME	W1,RC.NM(T1)	;[1154] IS THIS IT?
2)		SOJG	R,T.23A		;[1154] NO, LOOP
2)		JUMPE	R,[MOVEI T1,23	;[1154] IF NOT FOUND, GO COMPLAI
	N
2)			JRST ILIERR]	;[1154] USUAL MESSAGE
2)	
2)	
2)	;HERE WITH THE INTERNAL PSECT INDEX IN R.  NEED TO PUT THIS IN R
	C.CUR,
2)	;SO CALL TO RB.1 WILL GET BREAK RELOCATED WITH RESPECT TO THIS P
	SECT.
2)	
2)	T.23B:	MOVE	P1,RC.CUR	;[1154] SAVE OVER MUNGING BELOW
2)		MOVE	P2,@RC.TB	;[1154] SAVE ADDRESS OF RC BLOCK
Digital Equipment Corporation       28-AUG-79    Page 398
PCO Log Report


2)		MOVEM	R,RC.CUR	;[1154] SET UP FOR RB.1
2)		PUSHJ	P,RB.1		;[1154] GET BREAK
2)		  JRST	[MOVEI T1,23	;[1154] NOT THERE, COMPLAIN
2)			JRST ILIERR]	;[1154] ..
2)		MOVEM	P1,RC.CUR	;[1154] RESTORE RC.CUR
2)		CAMLE	W1,RC.HL(P2)	;[1154] A NEW RECORD FOR THE BRE
	AK?
2)		MOVEM	W1,RC.HL(P2)	;[1154] YES, SET HL (CV FIXED IN
	 T.5)
2)		JRST	LOAD##		;[1154] DONE, GO GET NEXT BLOCK
2)	
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 399
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -271*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          13-APR-79

[Programmer]            GILBERT

[Routines]              LNKOLD    LNKWLD

[Key Words]             .HIGH.      PSECT

[Source Before Edit]    %4A  (001154)

[Source After Edit]     %4A  (001155)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 400
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     PSECT .HIGH.  is not equivalent to TWOSEG.  If  a  user
tries to specify PSECT .HIGH., LINK gets internal errors.
 

                        **********


[DIAGNOSIS]
 
     The REL file input routines add 400000  to  relocatable
quantities  from this PSECT twice:  once because they are in
a PSECT that starts at 400000, and once because they are  in
the high segment.
 

                        **********


[CURE]
 
     Re-work the REL file input routines  (RB.1)  to  handle
this  case  correctly.   As  part of this edit, preserve the
PSECT attributes for the .HIGH.  PSECT.
 
 
Digital Equipment Corporation       28-AUG-79    Page 401
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 2028 12-Apr-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1307 13-Apr-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	12-Apr-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	13-Apr-7
	9
2)	
**************
1)1	DECEVR==1154		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1155		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1155	JNG	13-Apr-79	QAR JBD
2)	;	Allow PSECT .HIGH. to be synonymous with TWOSEG.
2)	;	Routines: LNKOLD, LNKWLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 402
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 2033 12-Apr-1979
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1422 13-Apr-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	12-Apr-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	13-Apr-7
	9
2)	
**************
1)1	DECEVR==1154		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1155		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1155	Allow PSECT .HIGH. to work as TWOSEG.
2)	
**************
1)110		MOVE	T2,RC.CV(R)	;GET CURRENT VALUE
1)		SKIPN	RC.CUR		;IF NOT PSECT
1)		SUB	T2,RC.IV(R)	;REMOVE BASE ADDRESS
1)		SKIPGE	RC.AT(R)	;[761] RELOCATABLE PSECT?
1)		JRST	R.ERR		;[761] YES, ERROR
1)		ADDI	T1,0(T2)	;GET RELOCATED VALUE
1)		MOVE	T2,RC.SG(R)	;GET SEGMENT #
1)		ADD	T1,LL.S0(T2)	;MAKE RELATIVE TO SEG ORIGIN
1)		HRL	W1,T1		;AND REPLACE IT
1)		MOVSI	R,(1B1)		;CLEAR R BUT REMEMBER RELOCATABL
	E
1)					;INCASE RH SIDE NOT (FOR SYMBOL)
1)	
****
2)110	;**;[1155] Replace @ RWORD5+1L	JNG	13-Apr-79
2)		SKIPGE	RC.AT(R)	;[1155] DOES THIS PSECT HAVE AN
	ORIGIN?
2)		JRST	R.ERR		;[1155] NO, CAN'T USE IT
2)		SKIPE	RC.CUR		;[1155] RELOCATE WRT A PSECT?
2)		JRST	[ADD T1,RC.CV(R);[1155] YES, PSECTS ARE SIMPLE
2)			JRST RWORD4]	;[1155] GO STORE AND CHECK RH RE
	LOCATION
2)		MOVE	T2,RC.SG(R)	;[1155] OLD LOWSEG/HIGHSEG, GET
	SEGMENT #
2)		MOVE	T2,LL.S0(T2)	;[1155] GET ORIGIN OF SEGMENT
2)		ADD	T2,RC.CV(R)	;[1155] ADD CURRENT VALUE OF REL
	OC. COUNTER
2)		SUB	T2,RC.IV(R)	;[1155] T2 NOW HAS RELOCATION FA
Digital Equipment Corporation       28-AUG-79    Page 403
PCO Log Report


	CTOR
2)		ADDI	T1,0(T2)	;[1155] RELOCATE THE HALF WORD
2)	RWORD4:	HRL	W1,T1		;[1155] STORE THE RESULT
2)		MOVX	R,1B1		;[1155] CLEAR R BUT REMEMBER REL
	OCATABLE
2)	
**************
1)111		MOVE	T2,RC.CV(R)	;GET CURRENT VALUE
1)		SKIPN	RC.CUR		;IF DOING PSECT, SKIPE
1)		SUB	T2,RC.IV(R)	;REMOVE BASE ADDRESS
1)		SKIPGE	RC.AT(R)	;[761] RELOCATABLE PSECT?
1)		JRST	R.ERR		;[761] YES, ERROR
1)		ADDI	T1,0(T2)	;GET RELOCATED VALUE
1)		MOVE	T2,RC.SG(R)	;GET SEGMENT #
1)		ADD	T1,LL.S0(T2)	;MAKE RELATIVE TO SEG ORIGIN
1)		HRR	W1,T1		;AND REPLACE IT
1)	CPOPJ1:	AOS	(P)		;SKIP RETURN
****
 
 
2)111	;**;[1155] Replace @ RWORD6+2L	JNG	13-Apr-79
2)		SKIPGE	RC.AT(R)	;[1155] DOES THIS PSECT HAVE AN
	ORIGIN?
2)		JRST	R.ERR		;[1155] NO, CAN'T USE IT
2)		SKIPE	RC.CUR		;[1155] RELOCATE WRT A PSECT?
2)		JRST	[ADD T1,RC.CV(R);[1155] YES, PSECTS ARE SIMPLE
2)			JRST RWORD8]	;[1155] GO STORE
2)		MOVE	T2,RC.SG(R)	;[1155] OLD LOWSEG/HIGHSEG, GET
	SEGMENT #
2)		MOVE	T2,LL.S0(T2)	;[1155] GET ORIGIN OF SEGMENT
2)		ADD	T2,RC.CV(R)	;[1155] ADD CURRENT VALUE OF REL
	OC. COUNTER
2)		SUB	T2,RC.IV(R)	;[1155] T2 NOW HAS RELOCATION FA
	CTOR
2)		ADDI	T1,0(T2)	;[1155] RELOCATE THE HALF WORD
2)	RWORD8:	HRR	W1,T1		;[1155] STORE THE RESULT
2)	CPOPJ1:	AOS	(P)		;SKIP RETURN
**************
 
Digital Equipment Corporation       28-AUG-79    Page 404
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1622 22-Feb-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1348 13-Apr-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	22-Feb-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	13-Apr-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1145		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1155		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1155	Store PSECT properties even if PSECT name is .HIGH.
2)	
**************
1)40			PJRST	SETRC##]
1)		SOSGE	RC.FRE		;ANY FREE SLOTS
****
2)40	;**;[1155] Replace @ SET3+8L	JNG	13-Apr-79
2)			PUSHJ	P,SETRC##	;[1155] SETUP HIGHSEG RC
	 BLOCK ETC.
2)			MOVEI	R,2		;[1155] GET POINTER TO N
	EW RC BLOCK
2)			MOVE	R,@SG.TB	;[1155] ..
2)			MOVE	T1,RC.SET	;[1155] GET ATTRIBUTES
2)			MOVEM	T1,RC.AT(R)	;[1155] STORE
2)			POPJ	P,]		;[1155] RETURN
2)		SOSGE	RC.FRE		;ANY FREE SLOTS
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 405
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -272*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          13-APR-79

[Programmer]            GILBERT

[Routines]              LNKOLD

[Key Words]             BLOCK 5     CLEAR       RC.CUR

[Source Before Edit]    %4A  (001155)

[Source After Edit]     %4A  (001156)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 406
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     The program break in the end block (REL block  type  5)
is  relocated  with respect to whatever PSECT is the current
default.  It should be relocated with respect to .LOW..
 

                        **********


[DIAGNOSIS]
 
     The T.5 routine calls  the  standard  relocating  input
routines, which relocate with respect to the current PSECT.
 

                        **********


[CURE]
 
     Clear the current  PSECT  before  reading  the  program
break.
 
 
Digital Equipment Corporation       28-AUG-79    Page 407
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1307 13-Apr-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1529 13-Apr-1979
 
1)1	DECEVR==1155		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1156		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1156	JNG	13-Apr-79	QAR JBD
2)	;	Relocate the breaks in block type 5 with respect to .LOW
	.
2)	;	every time, even if the current PSECT is not .LOW..
2)	;	Routine: LNKOLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 408
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 1422 13-Apr-1979
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1534 13-Apr-1979
 
1)1	DECEVR==1155		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1156		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1156	Clear RC.CUR before reading data words in T.5.
2)	
**************
1)47	T.5:	SKIPN	POLSTK		;GIVE BACK POLISH STACK IF FINIS
	HED
1)		JRST	T.5A
****
2)47	;**;[1156] Insert @ T.5	JNG	13-Apr-79
2)	T.5:	MOVEI	T1,1		;[1156] BREAKS ARE RELOCATABLE I
	N .LOW.
2)		SKIPE	RC.CUR		;[1156] SO UNLESS NOT LOADING PS
	ECTS,
2)		MOVEM	T1,RC.CUR	;[1156] FORCE RELOCATION TO .LOW
	.
2)		SKIPN	POLSTK		;GIVE BACK POLISH STACK IF FINIS
	HED
2)		JRST	T.5A
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 409
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -273*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          13-APR-79

[Programmer]            GILBERT

[Routines]              LNKWLD

[Key Words]             SUPPRESS    PSECTS      DDT TYPEOU

[Source Before Edit]    %4A  (001156)

[Source After Edit]     %4A  (001157)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 410
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     PSECT names type out too often  when  using  DDT  on  a
program built with PSECTs.
 

                        **********


[DIAGNOSIS]
 
     They  are  defined  as  global  symbols  that  are  not
suppressed to DDT typeout.
 

                        **********


[CURE]
 
     Suppress them.
 
 
Digital Equipment Corporation       28-AUG-79    Page 411
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1529 13-Apr-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1639 13-Apr-1979
 
1)1	DECEVR==1156		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1157		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1157	JNG	13-Apr-79	QAR DZN
2)	;	Suppress the PSECT name global symbols to DDT typeout.
2)	;	Routine: LNKWLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 412
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1348 13-Apr-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1643 13-Apr-1979
 
1)1	DECEVR==1155		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1157		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1157	Suppress the PSECT name global symbols to DDT typeout.
2)	
**************
1)40		MOVX	W1,PT.SGN!PT.SYM	;[714] SET FLAGS
1)		PUSHJ	P,SY.GS##	;[714] ADD TO GLOBAL SYMBOL TABL
	E.
****
2)40	;**;[1157] Change @ SET3+1L	JNG	13-Apr-79
2)		MOVX	W1,PT.SGN!PT.SYM!PS.DDT	;[1157] SET FLAGS
2)		PUSHJ	P,SY.GS##	;[714] ADD TO GLOBAL SYMBOL TABL
	E.
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 413
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -274*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          14-APR-79

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             BAD USY     POLISH

[Source Before Edit]    %4A  (001157)

[Source After Edit]     %4A  (001160)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 414
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Defining an undefined symbol with DDT can cause DDT  to
destroy  random low addresses.  Examination of the undefined
symbol table pointed to by .JBUSY=117 will  reveal  additive
fixups to the locations destroyed.
 
     This will only happen if the symbol  defined  with  DDT
was  used  in  the  source  program  as  part  of  a  Polish
expression.
 

                        **********


[DIAGNOSIS]
 
     LINK is  putting  out  Polish  requests  for  undefined
symbols as if they were additive fixups, with the address to
be added to as the offset to the  Polish  string  in  LINK's
internal  FX  area.   It is doing this because it checks for
some things that  it  doesn't  know  how  to  put  into  the
undefined  table, and avoids them.  When Polish was added to
LINK, this check was not extended, so LINK thinks Polish  is
OK to put out.
 

                        **********


[CURE]
 
     Instead of checking for the things  LINK  doesn't  know
how to put into the undefined table and avoiding them, check
for the few things that LINK does know how to do  and  avoid
everything else.
 
 
Digital Equipment Corporation       28-AUG-79    Page 415
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1639 13-Apr-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1915 14-Apr-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	13-Apr-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Apr-7
	9
2)	
**************
1)1	DECEVR==1157		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1160		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1160	JNG	14-Apr-79	QAR TW/JMF
2)	;	Don't put junk in runtime undefined symbol table for sym
	bols
2)	;	that are used in Polish blocks.
2)	;	Routine: LNKXIT
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 416
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1623 12-Apr-1979
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1916 14-Apr-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	3-Apr-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	14-Apr-79
2)	
**************
1)1	DECEVR==1152		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1160		;DEC EDIT VERSION
2)	
**************
1)6	SUBTTL	ENTER HERE
****
2)6	;1160	Don't put junk in the undefined table when symbol used i
	n Polish.
2)	
2)7	SUBTTL	ENTER HERE
**************
1)13		TXNN	W1,FP.SYM	;ADDITIVE GLOBAL FIXUP?
1)		JRST	UDFGB2		;NO
1)		DMOVE	W2,1(T1)	;GET DATA WORDS
1)		TXNE	W1,FS.FXS	;SYMBOL FIXUP?
1)		JRST	UDFGB2		;*** DON'T KNOW HOW TO DO IT YET
	 ***
1)		PUSHJ	P,SXBR50	;CONVERT TO RADIX-50
****
2)14	;**;[1160] Replace @ UDFGB1+3L	JNG	14-Apr-79
2)		TXNE	W1,FP.SYM	;[1160] FIXUP BASED ON UNDEFINED
	 SYMBOL?
2)		TXNN	W1,FS.FXR!FS.FXL ;[1160] CAN ONLY PUT OUT RH OR
	LH ADDITIVE
2)		JRST	UDFGB2		;[1160] CAN'T OUTPUT POLISH, SYM
	 FIXUPS, ETC.
2)		DMOVE	W2,1(T1)	;GET DATA WORDS
2)		PUSHJ	P,SXBR50	;CONVERT TO RADIX-50
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 417
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -275*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          11-MAY-79

[Programmer]            GILBERT

[Routines]              LNKMAP    LNKSUB

[Key Words]             MAP PSECTS  AESTHETICS

[Source Before Edit]    %4A  (001160)

[Source After Edit]     %4A  (001161)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-27727
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 418
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     The lines in the map that  describe  PSECTs  that  have
been loaded are not lined up, and are not in the same format
as the low segment and high segment lines.
 

                        **********


[DIAGNOSIS]
 
     Nobody noticed the inconsistency.
 

                        **********


[CURE]
 
     Make the PSECT descriptor  lines  look  just  like  the
segment descriptor lines.
 
 
Digital Equipment Corporation       28-AUG-79    Page 419
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1915 14-Apr-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 0052 03-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Apr-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	4-May-79
2)	
**************
1)1	DECEVR==1160		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1161		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1161	JNG	4-May-79	SPR 10-27727
2)	;	Clean up Psect printout in map.
2)	;	Routines: LNKSUB, LNKMAP.
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 420
PCO Log Report


[FILCOM]
File 1)	LINK:LNKMAP.MAC[30,4507]  	created: 1921 25-Sep-1978
File 2)	LINK:LNKMAP.MAC[10,645063]	created: 0103 03-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	22-Sep-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	4-May-79
2)	
**************
1)1	DECEVR==1120		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1161		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1161	Clean up printout of PSECT lengths.
2)	
**************
1)31		MOVEI	T1,[ASCIZ /Psect /]
1)		PUSHJ	P,.TSTRG##
1)		MOVE	T1,1(R)		;NAME
1)		PUSHJ	P,.TSIXN##
1)		MOVEI	T1,[ASCIZ / starts at   /]
****
2)31	;**;[1161] Change @ TTLPSC+5L	JNG	4-May-79
2)		MOVEI	T1,[ASCIZ /	Psect /]	;[1161]
2)		PUSHJ	P,.TSTRG##
2)		MOVE	T1,1(R)		;NAME
2)		PUSHJ	P,.TSIXB##	;[1161] TYPE WITH TRAILING BLANK
	S
2)		MOVEI	T1,[ASCIZ / starts at   /]
**************
1)31		MOVEI	T1,[ASCIZ / (octal), /]
1)		PUSHJ	P,.TSTRG##
1)		POP	P,T1		;LENGTH
1)		PUSHJ	P,.TDECW##
1)		MOVEI	T1,[ASCIZ /, (decimal)/]
1)		PUSHJ	P,.TSTRG##
****
2)31	;**;[1161] Change @ TTLPSC+26L	JNG	4-May-79
2)		MOVEI	T1,[ASCIZ / (octal),/]	;[1161]
2)		PUSHJ	P,.TSTRG##
2)		MOVE	T1,0(P)		;[1161] GET LENGTH AGAIN
2)		PUSHJ	P,.TDSPC	;[1161] ALIGN WORD TO COME
2)		POP	P,T1		;LENGTH
2)		PUSHJ	P,.TDECW##
2)		MOVEI	T1,[ASCIZ /. (decimal)/]	;[1161]
2)		PUSHJ	P,.TSTRG##
Digital Equipment Corporation       28-AUG-79    Page 421
PCO Log Report


**************
 
Digital Equipment Corporation       28-AUG-79    Page 422
PCO Log Report


[FILCOM]
File 1)	LINK:LNKSUB.MAC[30,4507]  	created: 1846 27-Apr-1978
File 2)	LINK:LNKSUB.MAC[10,645063]	created: 0041 03-May-1979
 
1)1	SUBTTL D.M.NIXON/DMN/JBC/JNG	27-Feb-78
1)	
****
2)1	SUBTTL D.M.NIXON/DMN/JBC/JNG	4-May-79
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1978, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
2)	
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1161		;DEC EDIT VERSION
2)	
**************
1)3	;HERE TO GET THE REQUIRED PRIME NUMBER INTO HT.PRM
****
2)2	;START OF VERSION 4A
2)	;1161	Add .TSIXB to .TSUBS
2)	
2)3	;HERE TO GET THE REQUIRED PRIME NUMBER INTO HT.PRM
**************
1)6	ENTRY	.T6OCT,.TFOCT,.T6ZOC,.TDEP,.TOEP
1)	
****
2)6	ENTRY	.T6OCT,.TFOCT,.T6ZOC,.TDEP,.TOEP,.TSIXB
2)	
**************
1)8	
****
2)8	;**;[1161] Insert @ .TOEP+7L	JNG	4-May-79
2)	;TYPE SIXBIT WORD, BLANK FILLED
2)	;CALL:
2)	;	T1/ WORD
2)	;	PUSHJ	P,.TSIXB
2)	;
2)	;USES T1,T2,T3
2)	
2)	.TSIXB::MOVEI	T3,6		;[1161] NUMBER OF CHARACTERS TO
	TYPE
Digital Equipment Corporation       28-AUG-79    Page 423
PCO Log Report


2)		MOVE	T2,T1		;[1161] SIXBIT WORD INTO T2
2)	TSIXB2:	SETZ	T1,		;[1161] CLEAN AC
2)		LSHC	T1,6		;[1161] NEXT CHAR INTO T1
2)		ADDI	T1,"0"-'0'	;[1161] CONVERT TO ASCII
2)		PUSHJ	P,.TCHAR##	;[1161] TYPE IT
2)		SOJG	T3,TSIXB2	;[1161] LOOP OVER SIX CHARACTERS
2)		POPJ	P,		;[1161] RETURN
2)	
2)	
2)	
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 424
PCO Log Report



                   *********************
                   *PCO #:20-LINK  -013*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          03-MAY-79

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             DDT/SYMS    DDT COMMAN  ILL INST

[Source Before Edit]    %4A  (001161)

[Source After Edit]     %4A  (001162)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:20-12825
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 425
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     UDDT cannot find any symbols when a program  is  loaded
with  both  /SAVE  and  /DEBUG in the same command string to
LINK.  Also, the DDT command does not work if the  resulting
EXE  file  is later set up with a GET command.  Instead, the
user will get an illegal instruction at 770000.
 

                        **********


[DIAGNOSIS]
 
     LINK does not set up DDT's symbol table pointers if  is
creating  an  EXE  file.   Instead, it (incorrectly) sets up
.JBDDT.
 

                        **********


[CURE]
 
     Set up the right things at the right times.  Note  that
this  edit  is  an  extract  of edit 1144, and should not be
installed if edit 1144 has been installed.  This  edit  will
not  be  present in any future release of LINK, because edit
1144 will be shipped instead.
 
 
Digital Equipment Corporation       28-AUG-79    Page 426
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.765[30,3737]	created: 0218 03-May-1979
File 2)	LINK:LNKHST.MAC[30,3737]	created: 0219 03-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	27-FEB-7
	8
1)	;COPYRIGHT (C) 1973, 1978 BY
1)	;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH	4-May-79
2)	;COPYRIGHT (C) 1973, 1978, 1979 BY
2)	;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1162		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)5		END		;OF LNKHST
****
2)4	;START OF VERSION 4A
2)	;1162	JNG	4-May-79	SPR 20-12825
2)	;	Set up DDT's symbol table pointers on /DEBUG/SAVE.  This
	 edit is
2)	;	an extract of edit 1144.
2)	;	Routines: LNKXIT
2)5		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 427
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.765[30,3737]	created: 0219 03-May-1979
File 2)	LINK:LNKXIT.MAC[30,3737]	created: 0222 03-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	4-May-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1162		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	ENTER HERE
****
2)4	;START OF VERSION 4A
2)	;1162	Set up UDDT's symbol table pointers on /DEB/SAVE.  Extra
	ct of 1144.
2)5	SUBTTL	ENTER HERE
**************
1)53	EXEINI:	MOVEI	T1,DC		;CHAN#
1)		MOVEM	T1,IO.CHN
****
2)53	;**;[1162] Insert @ EXEINI	JNG	4-May-79
2)	EXEINI:
2)	IFN TOPS20,<
2)		SKIPE	LW.S1		;[1162] PAGE 0 IN CORE?
2)		JRST	EXEIN2		;[1162] NO, FORGET IT
2)		MOVE	T1,LC.LB	;[1162] YES, POINT TO PAGE 0
2)		HRRZ	T2,.JBDDT(T1)	;[1162] GET DDT START ADDRESS
2)		CAIE	T2,770000	;[1162] IS THIS UDDT?
2)		JRST	EXEIN2		;[1162] NO, PROCEED
2)		SETZM	.JBDDT(T1)	;[1162] YES, DON'T WANT .JBDDT N
	ON-ZERO
2)		MOVE	T2,JOB116	;[1162] GET SYMBOL TABLE POINTER
2)		MOVEM	T2,@770001	;[1162] SAVE IN DDT
2)		MOVE	T2,JOB117	;[1162] GET UNDEFINED POINTER
2)		MOVEM	T2,@770002	;[1162] SAVE IN DDT
2)	EXEIN2: > ;END IFN TOPS20
2)		MOVEI	T1,DC		;CHAN#
2)		MOVEM	T1,IO.CHN
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 428
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -276*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1155)

[Date Entered]          08-MAY-79

[Programmer]            GILBERT

[Routines]              LNKWLD

[Key Words]             .HIGH.

[Source Before Edit]    %4A  (001162)

[Source After Edit]     %4A  (001163)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 429
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     With edit 1155 installed, users must specify an  origin
for  the  .HIGH.  psect.  If they don't, LINK fails with the
LNKRPN message.
 

                        **********


[DIAGNOSIS]
 
     LINK sets the flags  in  the  .HIGH.   block  from  the
user's  input.   If  the user didn't specify an origin, then
LINK marks .HIGH.  as not having a known origin.  This is OK
for  most  psects,  but LINK will supply a default value for
.HIGH.'s origin if  the  user  didn't  specify  one,  so  it
doesn't really apply to .HIGH..
 

                        **********


[CURE]
 
     Don't set the  relocatable  psect  bit  in  the  .HIGH.
descriptor block.
 
 
Digital Equipment Corporation       28-AUG-79    Page 430
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 0231 03-May-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1805 08-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	4-May-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	8-May-79
2)	
**************
1)1	DECEVR==1162		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1163		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1163	JNG	8-May-79	QAR DC
2)	;	Never mark .HIGH. as relocatable, since we default its o
	rigin.
2)	;	This was broken by edit 1155.
2)	;	Routine: LNKWLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 431
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1643 13-Apr-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1801 08-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	13-Apr-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	8-May-79
2)	
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1157		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1163		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1163	Fix edit 1155 to not mark .HIGH. as relocatable.
2)	
**************
1)40			MOVEM	T1,RC.AT(R)	;[1155] STORE
****
2)40	;**;[1163] Insert @ SET3+12L	JNG	8-May-79
2)			TXZ	T1,AT.RP	;[1163] .HIGH. ALWAYS HA
	S AN ORIGIN
2)			MOVEM	T1,RC.AT(R)	;[1155] STORE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 432
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -277*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          09-MAY-79

[Programmer]            GILBERT

[Routines]              LNKMAP

[Key Words]             1B11 CLEAR  BAD SYMS    BAD MAP     LS PAGING

[Source Before Edit]    %4A  (001163)

[Source After Edit]     %4A  (001164)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-27598
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 433
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Some symbols may appear in the map and the runtime  DDT
symbol  table  with  incorrect values, typically zero.  This
will only happen to symbols that appear late  in  the  load,
and that are defined in terms of other external symbols.  In
addition, bit 11 of some word in the  program  being  loaded
may get zeroed.
 
     This can only happen under the following circumstances:
 
     1.  The user has requested LINK to print a map.
 
     2.  The program being loaded is so large that LINK  has
         to overflow its LS area to disk.
 
This error is very dependent on memory layout,  and  can  be
made  to  disappear by playing with the /MAXCOR or /HASHSIZE
switches, or by varying the job's virtual limit.
 

                        **********


[DIAGNOSIS]
 
     If the LS area is paging to disk, then LNKMAP reads  it
into  an  internal  window  a  piece  at  a time in order to
process it and print the map.  If  the  last  partial  piece
does  not  take  up  the entire window, then LINK zeroes the
unused part and returns it to free space, so it can be  used
for other purposes.  Unfortunately, the test to check for an
unused part is wrong, so LINK always thinks  that  at  least
the last page of the window is unused.  If the last piece of
the LS  area  exactly  fills  the  window,  then  LINK  will
erroneously  zero  the  first  page of the next area (the FX
area).
 
     Clearing the first page of the FX area  can  obliterate
some  symbol fixups that were destined for the last piece of
the LS area, resulting in symbols with incorrect  values  in
the  map  and  the  DDT  symbol table.  In addition, if LINK
Digital Equipment Corporation       28-AUG-79    Page 434
PCO Log Report


attempts to process an all-zero block as a valid  fixup,  it
will  clear  the undefined bit (1B11) in what it thinks is a
triplet in the LS area, but which is actually some  word  of
the program being loaded.
 

                        **********


[CURE]
 
     Correct the test so that LINK will not try to  zero  or
return  anything if the last piece of the LS area completely
fills the window.
 
 
Digital Equipment Corporation       28-AUG-79    Page 435
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1805 08-May-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 2103 08-May-1979
 
1)1	DECEVR==1163		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1164		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1164	JNG	8-May-79	SPR 10-27598
2)	;	Don't overwrite the first page of the FX area when writi
	ng a map
2)	;	if the LS area is paging and the last piece of the area
	exactly
2)	;	fits into the window.
2)	;	Routine: LNKMAP
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 436
PCO Log Report


[FILCOM]
File 1)	LINK:LNKMAP.MAC[30,4507]  	created: 0103 03-May-1979
File 2)	LINK:LNKMAP.MAC[10,645063]	created: 2056 08-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	4-May-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	8-May-79
2)	
**************
1)1	DECEVR==1161		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1164		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1164	Don't overwrite FX area in SHFSYM if no extra room.
2)	
**************
1)36		CAMG	T3,LSYM		;HAVE WE TOO MUCH ROOM NOW?
****
2)36	;**;[1164] Insert @ SHFSYM+16L	JNG	8-May-79
2)		ANDCMI	T3,.IPM		;[1164] FORM FIRST FREE IN ALL B
	UT LAST PAGE
2)		CAMG	T3,LSYM		;HAVE WE TOO MUCH ROOM NOW?
**************
1)36	SHFSY1:	ADDI	T1,(T2)		;INPUT PTR
****
2)36	;**;[1164] Insert @ SHFSYM+31L	JNG	8-May-79
2)		SUBI	T2,.IPS		;[1164] LAST PAGE HAS ALREADY BE
	EN COUNTED
2)	SHFSY1:	ADDI	T1,(T2)		;INPUT PTR
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 437
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -278*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765) TESTED IN 4A(1164)

[Date Entered]          16-MAY-79

[Programmer]            D. NEFF

[Routines]              LNKLOD

[Key Words]             60,50 FXUP

[Source Before Edit]    %    (000000)

[Source After Edit]     %4A  (001165)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-27925
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 438
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
When  loading  programs  that  contain  complicated  symbol   fixup
requests,  various  internal  errors (such as illegal memory reads)
may occur.  This will happen only when not loading  local  symbols,
or  when  local  symbols  have been removed from the .REL file (via
/NOLOCAL to MAKLIB).
 

                        **********


[DIAGNOSIS]
 
This problem is caused by the way that fixups to partially  defined
symbols  are  done.  A common case is a local symbol defined as the
value of an external symbol plus a constant.  This  is  handled  by
specifying  a  word pair in a symbol .REL block (type 2) that first
defines the local with the value of the constant.  Then IMMEDIATELY
FOLLOWING  this,  another  word  pair  requests the external with a
fixup request to the previous local.  The fixup is  only  valid  if
the  symbol  requested  for fixup was the last symbol definition in
the .REL file.  If it was not, the request should be ignored.
 
Unfortunately, if LINK is not loading locals, one of these  special
fixup  requests  may `see' a very old symbol as the last loaded one
that just happens to match.  LINK  then  believes  that  the  fixup
should be done rather than ignored, usually leading to disaster.
 

                        **********


[CURE]
 
Whenever a check of a  special  fixup  request  matching  the  last
symbol  loaded fails, forget what the last loaded symbol was.  This
is valid since  the  rule  that  the  symbol  definitions  must  be
adjacent cannot be met until another symbol is actually loaded.
 
Digital Equipment Corporation       28-AUG-79    Page 439
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1747 10-May-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1612 15-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	8-May-79
1)	;COPYRIGHT (C) 1973, 1978, 1979 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	15-May-7
	9
2)	;COPYRIGHT (C) 1973, 1978, 1979 BY
**************
1)1	DECEVR==1164		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1165		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1165	DZN	15-May-79	SPR 10-27925
2)	;	Zero LSTSYM whenever a call to SY.RLS says a symbol requ
	ested for symbol
2)	;	table fixup was not the last symbol loaded. This prevent
	s  symbol  fixup
2)	;	requests from finding a long-obsolete symbol in LSTSYM t
	hat just happens
2)	;	to match.
2)	;	Routine:LNKLOD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 440
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1457 16-Feb-1979
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1737 15-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	16-Feb-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	15-May-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1143		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1165		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1165	Zero LSTSYM in SY.RLS if the symbol was rejected.
2)5	SUBTTL	LOAD CONTROL
**************
1)54		JUMPE	T1,[JUMPE T2,CPOPJ	;NO LOCALS, TRY GLOBAL
1)			CAME	W3,1(T2)	;IF IN GLOBAL TABLE
1)			POPJ	P,		;NO MATCH
1)			JRST	SYRLSM]		;GOT IT HERE
1)		CAME	W3,1(T1)	;SAME?
1)		POPJ	P,		;NO
1)	SYRLSM:	MOVE	W3,LSTSYM	;YES, SET POINTER IN W3
****
2)54	;**;[1165] Replace @SY.RLS+7L	DZN	15-May-79
2)		JUMPE	T1,[JUMPE T2,SYRLSZ	;[1165] NO LOCALS, TRY G
	LOBAL
2)			CAME	W3,1(T2)	;IF IN GLOBAL TABLE
2)			JRST	SYRLSZ		;[1165] NO MATCH
2)			JRST	SYRLSM]		;GOT IT HERE
2)		CAME	W3,1(T1)	;SAME?
2)		JRST	SYRLSZ		;[1165] NO
2)	SYRLSM:	MOVE	W3,LSTSYM	;YES, SET POINTER IN W3
**************
1)55	SUBTTL	COMPILER SPECIFIC ROUTINES
****
2)54	;**;[1165] Insert after CPOPJ	DZN	15-May-79
2)	SYRLSZ:	SETZM	LSTSYM		;[1165] DON'T CONFUSE SYMBOLS DO
	WN THE PIKE
2)		POPJ	P,		;[1165]
2)55	SUBTTL	COMPILER SPECIFIC ROUTINES
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 441
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -279*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          17-MAY-79

[Programmer]            GILBERT

[Routines]              LNKOLD

[Key Words]             POLISH      SET PSECT   ILLEGAL BL  LNKIPX

[Source Before Edit]    %4A  (001165)

[Source After Edit]     %4A  (001166)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 442
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     If a Polish block does  not  contain  a  default  PSECT
index  in  the  first halfword, but does contain an embedded
PSECT index later on, LINK  will  take  the  embedded  PSECT
index  as  the  default  PSECT  index.   This is actually an
illegally formatted Polish block, but a plausible one for  a
new compiler to generate.
 

                        **********


[DIAGNOSIS]
 
     LINK identifies the default PSECT for a Polish block as
the   first   set   PSECT  byte  seen  in  the  block.   The
documentation states that a Polish block  that  uses  PSECTs
must have a set PSECT byte as the first half word.
 

                        **********


[CURE]
 
     Identify the default PSECT  for  the  Polish  block  by
checking  the first byte of the Polish block to see if it is
a set PSECT byte, and snarfing it if so.  If  not,  remember
that this Polish block is not allowed to contain PSECTs, and
give the LNKIPX error if a set PSECT byte is seen  later  in
the block.
 
 
Digital Equipment Corporation       28-AUG-79    Page 443
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1612 15-May-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1915 15-May-1979
 
1)1	DECEVR==1165		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1166		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1166	JNG	15-May-79
2)	;	Don't allow PSECT indices in Polish blocks unless the fi
	rst halfword
2)	;	was the default PSECT index for the block.
2)	;	Routine: LNKOLD.
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 444
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 0812 17-Apr-1979
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1934 15-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	13-Apr-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	15-May-7
	9
2)	
**************
1)1	DECEVR==1156		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1166		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1166	Make sure default PSECT index is first half word in T.11
	.
2)	
**************
1)67					;FALL THRU
1)	
****
2)67	
2)	
2)	;FALL INTO NEXT PAGE
2)	
2)68	;**;[1166] Replace @ T.11+19L	JNG	15-May-79
2)		PUSHJ	P,RB.1		;[1166] READ FIRST WORD
2)		  JRST	T.11CS		;[1166] EMPTY?
2)		HLRZ	T1,W1		;[1166] GET FIRST HALF WORD
2)		CAILE	T1,MXPLOP	;[1166] A PSECT INDEX?
2)		CAIL	T1,-STRLEN	;[1166] MAYBE, IS IT?
2)		JRST	T11RD2		;[1166] NO, FORGET IT
2)		MOVEI	P4,-377777(T1)	;[1166] YES, SET IT AS DEFAULT
2)		CAMLE	P4,RC.NO	;[1166] IN RANGE?
2)		JRST	T11IPX		;[1166] NO, ERROR
2)		MOVEM	P4,RC.CUR	;[1166] SET FOR NEXT WORD
2)		JRST	T11RD2		;[1166] ENTER MAIN LOOP
2)	
2)	
**************
1)68		HLRZ	T1,W1		;GET LHS
1)		HRRZ	T2,W1		;GET RHS
****
2)68	;**;[1166] Add label @ T.11RD+2L	JNG	15-May-79
2)	T11RD2:	HLRZ	T1,W1		;[1166] GET LHS
Digital Equipment Corporation       28-AUG-79    Page 445
PCO Log Report


2)		HRRZ	T2,W1		;GET RHS
**************
1)68		CAILE	T1,RC.NO	;MAKE SURE VALID
1)		JRST	T11IPX		;INVALID
1)		MOVEM	T1,RC.CUR	;SET FOR NEXT READ
1)		SKIPN	P4		;ALREADY BEEN SET?
1)		MOVE	P4,T1		;NO, THIS IS FIRST TIME
1)		HRRO	P4,P4
1)	T11RHS:	JUMPE	T2,T11GRF	;18 BIT VALUE FOLLOWING
****
2)68	;**;[1166] Replace @ T.11RD+16L	JNG	15-May-79
2)		CAMLE	T1,RC.NO	;[1166] MAKE SURE VALID
 
 
2)		JRST	T11IPX		;INVALID
2)		MOVEM	T1,RC.CUR	;SET FOR NEXT READ
2)		JUMPE	P4,T11IPX	;[1166] PSECT INDEX ILLEGAL IF 1
	ST BYTE WASN'T
2)		HRRO	P4,P4
2)	
2)	;FALL THROUGH TO NEXT PAGE
2)	
2)69	T11RHS:	JUMPE	T2,T11GRF	;18 BIT VALUE FOLLOWING
**************
1)68		CAILE	T2,RC.NO	;MAKE SURE VALID
1)		JRST	T11IPX		;INVALID
1)		MOVEM	T2,RC.CUR	;SET FOR NEXT READ
1)		SKIPN	P4		;INCASE, THIS IS THE FIRST PSECT
	 INX IN THIS BLK
1)		MOVE	P4,T2		; THEN SAVE IT
1)		HRRO	P4,P4		;SIGNAL MIGHT TAKE TWO WORDS
****
2)69	;**;[1166] Replace @ T11RHS+12L	JNG	15-May-79
2)		CAMLE	T2,RC.NO	;[1166] MAKE SURE VALID
2)		JRST	T11IPX		;INVALID
2)		MOVEM	T2,RC.CUR	;SET FOR NEXT READ
2)		JUMPE	P4,T11IPX	;[1166] ENFORCE DEFAULT PSECT IN
	DEX FIRST BYTE
2)		HRRO	P4,P4		;SIGNAL MIGHT TAKE TWO WORDS
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 446
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -280*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          18-MAY-79

[Programmer]            GILBERT

[Routines]              LNKSCN

[Key Words]             SYMBOL NAM  INITIAL DI

[Source Before Edit]    %4A  (001166)

[Source After Edit]     %4A  (001167)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-Q3081
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 447
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Users can define symbols whose  names  are  all  digits
using  LINK  switches  such as /SET or /DEFINE.  This causes
user confusion when using DDT, and does not catch some  user
errors in commnad strings to LINK.
 

                        **********


[DIAGNOSIS]
 
     LINK's command scanner is too permissive.
 

                        **********


[CURE]
 
     Require symbol names to start with a non-digit.
 
 
Digital Equipment Corporation       28-AUG-79    Page 448
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1915 15-May-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 2155 17-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	15-May-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	17-May-7
	9
2)	
**************
1)1	DECEVR==1166		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1167		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1167	JNG	17-May-79	QAR 10-3081
2)	;	Don't allow symbols typed as switch arguments to begin w
	ith digits.
2)	;	Routines: LNKSCN
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 449
PCO Log Report


[FILCOM]
File 1)	LINK:LNKSCN.MAC[30,4507]  	created: 1836 05-Oct-1978
File 2)	LINK:LNKSCN.MAC[10,645063]	created: 2318 17-May-1979
 
1)1	TITLE	LNKSCN - INTERFACE TO SCAN FOR LINK-10
1)	SUBTTL	D.M.NIXON/DMN/JLd/JNG/PAH/DZN	5-Oct-78
1)	
****
2)1	TITLE	LNKSCN - INTERFACE TO SCAN FOR LINK
2)	SUBTTL	D.M.NIXON/DMN/JLd/JNG/PAH/DZN	17-May-79
2)	
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	
****
2)1	;COPYRIGHT (C) 1973, 1978, 1979 BY DIGITAL EQUIPMENT CORPORATION
	, MAYNARD, MASS.
2)	
**************
1)1	DECEVR==1122		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1167		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1167	Don't allow symbol names to start with digits.
2)	
**************
1)18	SYMS3:	SUBI	C," "-' '	;CONVERT TO SIXBIT
1)		TLNE	T1,(77B5)	;DON'T OVERFLOW
****
2)18	;**;[1167] Insert @ SYMS3	JNG	17-May-79
2)	SYMS3:	JUMPE	N,[CAIL C,"0"	;[1167] IF FIRST CHAR, IS IT A D
	IGIT?
2)			CAILE C,"9"	;[1167] MAYBE, IS IT?
2)			JRST	.+1	;[1167] NO, FIRST CHAR IS OK
2)			POPJ	P,]	;[1167] DON'T ALLOW FIRST CHAR T
	O BE A DIGIT
2)		SUBI	C," "-' '	;CONVERT TO SIXBIT
2)		TLNE	T1,(77B5)	;DON'T OVERFLOW
**************
1)19	SYOS1:	PUSHJ	P,.TICAN##	;SEE IF CHARACTER IS ALPHA-NUMER
	IC
1)		  JRST	[CAIN	C,"#"		;NO, BUT IS IT OCTAL
****
2)19	;**;[1167] Remove label @ SYOS1	JNG	17-May-79
2)		PUSHJ	P,.TICAN##	;[1167] SEE IF CHARACTER IS ALPH
	A-NUMERIC
Digital Equipment Corporation       28-AUG-79    Page 450
PCO Log Report


2)		  JRST	[CAIN	C,"#"		;NO, BUT IS IT OCTAL
**************
1)19			JRST	SYOS2]		;END OF OCTAL NUMBER
1)		TLNN	T1,(77B5)	;SEEN SIX YET?
1)		JRST	SYOS2		;YES, AND ALL NUMERIC, SO MUST B
	E OCTAL
1)		CAIL	C,"0"		;IF ALPHABETIC
1)		CAILE	C,"7"
1)		JRST	SYMS3		;WE'VE GOT A SYMBOL
1)		SUBI	C," "		;CONVERT TO SIXBIT
1)		IDPB	C,T1		;DON'T KNOW WHICH YET
1)		PUSHJ	P,.TIAUC##	;GO GET ANOTHER CHARACTER
1)		JRST	SYOS1		;PROCESS IT
1)	
1)	;HERE WHEN SIXBIT WORD IS OCTAL (THROUGH FIRST SIX CHARS)
1)	;CONVERT SIXBIT SYMBOL INTO RIGHT JUSTIFIED OCTAL
 
 
1)	
1)	SYOS2:	PUSH	P,N+1		;GET A SPARE ACC
1)		LSHC	N,-^D36		;LEFT JUST SYMBOL IN LOWER ACC,
	CLEAR RECEIVING ACC
1)		LSH	N+1,3		;GET RID OF TOP 3 BITS
1)		LSHC	N,3		;SHIFT IN LOWER 3 BITS (OCTAL NU
	MBER)
1)		JUMPN	N+1,.-2		;LOOP FOR ALL SYMBOL
1)		POP	P,N+1		;RESTORE ACC
1)	SYOS3:	CAIL	C,"0"		;SEE IF OCTAL
1)		CAILE	C,"7"
1)		POPJ	P,		;NO, DONE
1)		LSH	N,3		;YES, MULTIPLY NUMBER
1)		ADDI	N,-"0"(C)	;INCORPORATE DIGIT
1)		PUSHJ	P,.TIAUC##	;GET NEXT CHAR
1)		JRST	SYOS3		;LOOP BACK
1)	
****
2)19	;**;[1167] Revamp @ SYOS1+8L	JNG	17-May-79
2)			POPJ	P,]		;[1167] TERMINATOR
2)		CAIL	C,"0"		;[1167] DIGITS?
2)		CAILE	C,"9"		;[1167] ?
2)		JRST	SYMS3		;[1167] NO, MUST BE A SYMBOL
2)		JRST	.OCTNC##	;[1167] OCTAL NUMBER
2)	
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 451
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -281*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)+1146 TESTED IN 4A(1167)

[Date Entered]          21-MAY-79

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             MEM MGT     LNKXIT BUG  NO EXE FIL

[Source Before Edit]    %    (000000)

[Source After Edit]     %4A  (001170)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-27945
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 452
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
There are several problems  with  LINK's  memory  management
near  the end of loading, when LINK is setting up the user's
program in memory.  Note that the errors  listed  below  can
only  happen  if  LINK  is  NOT generating an EXE file.  The
specific symptoms fixed by this edit are as follows:
 
     1.  LINK can leave zeros in place of a large portion of
         the  user's  high segment when it leaves the loaded
         program set up in memory.  This error is much  more
         likely  if  the command string to LINK contains the
         /MAXCOR switch.
 
     2.  If the low segment ends with a module that declares
         a  larger  program  break  than it actually loaded,
         then LINK may load the  program  with  insufficient
         memory  to  run.   This  will  cause illegal memory
         references when the program runs.
 
     3.  LINK can get an illegal memory reference  near  the
         end of loading.  Closer inspection will reveal that
         the failure occurred on a BLT instruction.
 
     4.  After edit 1146 has been installed,  LINK  is  very
         slow  loading  small  programs  on TOPS-20.  It can
         also be slow on TOPS-10 if  the  user  specified  a
         /CORE  switch  with  an argument which was so large
         that LINK was forced to go virtual.
 
 

                        **********


[DIAGNOSIS]
 
     1.  If LINK decides that it has enough memory to  leave
         the  program  loaded  into memory, it will allocate
         two large arrays, one for the low segment  and  one
         for  the  high  segment.  To fill these arrays with
         the program,  it  will  BLT  that  portion  of  the
Digital Equipment Corporation       28-AUG-79    Page 453
PCO Log Report


         program already somewhere in memory into its proper
         place in the array(s).  If either segment is paging
         to  disk, then LINK will fill the rest of the array
         for that segment by reading the data  in  from  the
         overflow file.
 
         The problem arises when LINK  had  to  overflow  an
         area  to  disk earlier in the load, but now decides
         that it will all fit into memory after all (this is
         unlikely   unless   the   user   has   artificially
         restricted the amount of memory available  to  LINK
         via the /MAXCOR switch).  In this case, the portion
         of the segment currently in memory is just a window
         into  the  overflow  file which contains the entire
         segment, and LINK will  try  to  move  this  window
         buffer   into   the  array  at  the  proper  place.
         Unfortunately, the window is  usually  pointing  to
         the  very  end  of  the overflow file, and contains
         several pages that are actually off the end of  the
         file.   This causes a problem because the array was
         allocated based on the actual size of the  overflow
         file,  and  does not provide for the extra pages in
         the window buffer.  When LINK  tries  to  move  the
         entire  window  into the segment array, it will BLT
         past the end of the  array  and  overwrite  several
         pages  following the array, usually either the next
         segment or illegal memory.
 
     2.  LINK is not taking the extra memory into account in
         its  decision to load the program into memory or to
         write an .EXE file.
 
     3.  When LINK allocates an array for the program's high
         segment  as described in (1), it allocates the size
         based on the  entire  size  of  the  high  segment,
         including  any area allocated but not loaded at the
         end of the high segment.  If not  paging  the  high
         segment  to  disk,  it  then  moves the entire high
         segment into its new area with a  BLT  instruction,
         based  on the size of the new area.  Unfortunately,
         the old area that contained the  high  segment  did
         not  include the non-loaded area at the end, so the
         BLT can be moving  more  data  than  the  old  area
         contained.   If  the  old  area was near the top of
         memory (which it usually will be), this excess will
         result in an illegal memory reference.
 
         Illegal memory references can also be  produced  by
         problem (1).
 
     4.  After LINK has finished  moving  both  segments  to
Digital Equipment Corporation       28-AUG-79    Page 454
PCO Log Report


         their  new homes and compressing out the free space
         between them, it tries to reduce the  size  of  the
         low  segment  to  the minimum necessary, then clear
         the last partial-page gaps  remaining  between  the
         segments.   Unfortunately,  the  code to reduce the
         size of LINK's low  segment  is  not  even  reached
         unless the program being loaded has a high segment,
         and even then the test to decide whether to  reduce
         the  low  segment  size  is backwards, so LINK will
         never actually shrink.   This  means  that  it  can
         potentially  end  up  clearing  many "extra" pages,
         instead of just a few partial pages.
 
         This extra clearing will not cause much problem  on
         TOPS-10  systems,  since  the  low  segment usually
         isn't too much bigger than it needs to  be  (unless
         forced  to  be  so  by  the  user  with /CORE).  On
         TOPS-20, however, LINK's low segment starts out  at
         maximum  size,  and  stays  that way throughout the
         load.  Under these conditions, this BLT will  clear
         about  300  extra pages, which can more than triple
         the time needed to load a small program.
 
 

                        **********


[CURE]
 
     1.  Only move the valid portion of  the  window  buffer
         into the segment array.
 
     2.  Modify the memory check to include this case.
 
         Note however that if execution was  also  requested
         in the load but there is still not enough memory to
         run the program, then the monitor message  `?nP  of
         core  needed'  will result.  This can only be fixed
         by increasing the  job's  physical  and/or  virtual
         limits.
 
     3.  Allocate the new high segment array based  only  on
         the  portion  of  the  high segment before the last
         non-loaded part.  This is already the way that  the
         low segment allocation is done.
 
     4.  Fix the flow of control to always get  to  the  low
         segment  reduction check, and then fix the sense of
         the check.
 
Digital Equipment Corporation       28-AUG-79    Page 455
PCO Log Report


 
These problems were all fixed as one edit because  they  are
all  in  the  same  section of code, and could not have been
easily split out into different edits.
 
This edit requires edit 1146 to be installed.
 
 
Digital Equipment Corporation       28-AUG-79    Page 456
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.OLD[30,3737]	created: 1553 29-May-1979
File 2)	LINK:LNKHST.MAC[30,3737]	created: 1547 29-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	15-May-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	23-May-7
	9
2)	
**************
1)1	DECEVR==1167		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1170		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1170	JNG	23-May-79	SPR 10-27945, QAR 10-3070, 10-30
	87
2)	;	Fix some memory management problems in LNKXIT when not w
	riting an
2)	;	EXE file.
2)	;	Routine: LNKXIT
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 457
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[10,400000]	created: 1934 15-May-1979
File 2)	LINK:LNKOLD.MAC[30,3737]  	created: 2159 22-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	15-May-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	23-May-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1166		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==1170		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)5	COMMENT	\
****
2)4	;1170	Set up HC.S2 in SETRC in case hiseg contains only BLOCKs
	.
2)5	COMMENT	\
**************
1)42	IFE TOPS20,<
1)	;	CAIL	W1,400000	;ERROR IF LESS THAN 128K>
1)		CAMG	W1,RC.CV(R)	;BUT MUST BE HIGHER THAN LOW SEG
1)		JRST	T.3F		;TOO LOW
1)	;**;[1132] Delete @ SETRC+13L	JNG	30-Jan-79
****
2)42	;**;[1170] Replace @ SETRC+9L	JNG	23-May-79
2)		CAMG	W1,RC.CV(R)	;BUT MUST BE HIGHER THAN LOW SEG
2)		JRST	T.3F		;TOO LOW
2)		MOVEI	T1,.JBHDA	;[1170] SIZE OF VESTIGIAL JOBDAT
2)		MOVEM	T1,HC.S2	;[1170] STORE IN CASE NOTHING EL
	SE LOADED
2)	;**;[1132] Delete @ SETRC+13L	JNG	30-Jan-79
**************
 
Digital Equipment Corporation       28-AUG-79    Page 458
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[10,400000]	created: 1916 14-Apr-1979
File 2)	LINK:LNKXIT.MAC[30,3737]  	created: 1711 24-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	14-Apr-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	23-May-79
2)	
**************
1)1	DECEVR==1160		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1170		;DEC EDIT VERSION
2)	
**************
1)6	
****
2)6	;1170	Fix core management problems when not writing an EXE fil
	e.
2)	
**************
1)44		SKIPE	HC.S2		;[1146]   HITS HIGH SEG (IF ANY)
	 WHICH CHECKS
1)		CAMG	T1,LL.S2	;[1146]   FOR PSECTS ABOVE HIGH
	SEG ORIGIN
****
2)44	;**;[1170] Change @ SAVTST+9L	JNG	23-May-79
2)		SKIPE	LL.S2		;[1170]   HITS HIGH SEG (IF ANY)
	 WHICH CHECKS
2)		CAMG	T1,LL.S2	;[1146]   FOR PSECTS ABOVE HIGH
	SEG ORIGIN
**************
1)45	;COMPUTE HOW MUCH MEMORY IT WILL TAKE TO HOLD THE PROGRAM.
1)	
****
2)45	;COMPUTE HOW MUCH MEMORY IT WILL TAKE TO HOLD THE PROGRAM DURING
	 THE LAST STAGES
2)	;OF LOADING, AND MAKE SURE THAT WE CAN GET THAT MUCH.  IF  WE  C
	AN'T,  THEN  THE
2)	;PROGRAM IS TOO COMPLEX. THERE ARE TWO SIZES TO WORRY ABOUT:
2)	;
2)	;  1.	LINK'S  LOW SEGMENT + THE PROGRAM'S ACTUALLY LOADED LOW
	SEGMENT (DOESN'T
2)	;	COUNT BLOCK'S AT THE END OF THE LOW SEGMENT) + THE PROGR
	AM'S ACTUALLY
2)	;	LOADED HIGH SEGMENT. THIS IS THE MEMORY REQUIREMENT IN J
	BLOAD.
2)	;
2)	;  2.	THE  PROGRAM'S  ENTIRE  LOW  SEGMENT + HIGH SEGMENT.  TH
	IS IS THE MEMORY
Digital Equipment Corporation       28-AUG-79    Page 459
PCO Log Report


2)	;	REQUIREMENT IN THE FINAL EXIT CODE AT %5.  NOTE THAT  WE
	  MUST  REMEMBER
2)	;	THAT WE HAVE A HIGH SEGMENT NOW BUT WON'T THEN.
2)	
**************
1)45		SKIPE	HC.S2		;[1146] HIGH SEG EXISTS
1)		CAMGE	T1,LL.S2	;[1146]   AND ORIGIN BELOW WHERE
	 WE CAN PUT IT?
****
2)45	;**;[1170] Change @ SAVTS3+1P7L	JNG	23-May-79
2)		SKIPE	LL.S2		;[1170] HIGH SEG EXISTS
2)		CAMGE	T1,LL.S2	;[1146]   AND ORIGIN BELOW WHERE
	 WE CAN PUT IT?
**************
1)45		SKIPN	PAG.S1		;[1146] PAGING LOW SEGMENT
1)		SKIPE	PAG.S2		;[1146]   OR HIGH SEG?
1)		SKIPA			;[1146] YES--SEE IF ALL WILL FIT
	 IN
1)		JRST	JBLOAD		;[1146] NO--IT FITS NOW SO JUST
	SHUFFLE
1)		ADD	T1,HL.S2	;[1146] ADD LENGTH OF HIGH SEGME
	NT
1)		IOR.	T1,.PGSIZ	;[1146]   ..
1)		TLNE	T1,-1		;[732] OVERFLOWED INTO THE LH?
****
2)45	;**;[1170] Replace @SAVTS3+1P11L	DZN	18-May-79
 
 
2)		ADD	T1,HC.S2	;[1170] ADD LENGTH OF HIGH SEGME
	NT
2)		IOR.	T1,.PGSIZ	;[1146]   ..
2)		HRRZ	T2,.JBHRL##	;[1170] DON'T COUNT SIZE OF CURR
	ENT HIGH SEG
2)		SUB	T2,HIORGN	;[1170]   ..
2)		MOVNI	T2,2(T2)	;[1170]   ..
2)		ADD	T2,HL.S1	;[1170] + ENTIRE PROGRAM LOW SEG
2)		IOR.	T2,.PGSIZ	;[1170]   ROUNDED TO A PAGE
2)		ADD	T2,HL.S2	;[1170] + ENTIRE PROGRAM HIGH SE
	G
2)		IOR.	T2,.PGSIZ	;[1170]   ROUNDED TO A PAGE TOO
2)		CAMGE	T1,T2		;[1170] PICK MAX OF TWO
2)		MOVE	T1,T2		;[1170]   ..
2)		TLNE	T1,-1		;[732] OVERFLOWED INTO THE LH?
**************
1)98	JBLOAD:	DMOVE	P1,LC.LB	;SAVE THE CURRENT LOCATIONS
1)		DMOVE	P3,LC.AB	; SO WE CAN MOVE DATA
****
2)98	;**;[1070] Insert @ JBLOAD	JNG	23-May-79
2)	JBLOAD:	MOVE	T1,[HC.IX+1-HG.TAB,,HC.IX+1]	;[1070] AOBJN PT
	R TO AREAS
2)		PUSHJ	P,XX.ZAP	;[1070] CLEAR ALL AREAS ABOVE HC
Digital Equipment Corporation       28-AUG-79    Page 460
PCO Log Report


2)		AOBJN	T1,.-1		;[1070]   SINCE CORE MGT BELOW A
	SSUMES THEM GONE
2)		DMOVE	P1,LC.LB	;SAVE THE CURRENT LOCATIONS
2)		DMOVE	P3,LC.AB	; SO WE CAN MOVE DATA
**************
1)98		JUMPE	P2,[HRRZ T1,.JBREL
1)			MOVEM T1,LC.UB	;IGNORE IF NO HIGH SEG
1)			JRST	JBGCL]		;BUT RESET UPPER LIMIT
1)		ADDI	T1,1		;LOWER BOUND FOR HISEG
1)		MOVEM	T1,HC.LB	;RESET IT
1)		ADD	T1,HL.S2	;HIGHEST LOC WE NEED
1)	;**;[1146] Insert before JBGC+16L	DZN	8-Mar-79
****
2)98	;**;[1170] Change @ JBLOAD+12L	JNG	23-May-79
2)		JUMPE	P2,JBGCL	;[1170] GO MOVE IF NO HI SEG
2)		ADDI	T1,1		;LOWER BOUND FOR HISEG
2)		MOVEM	T1,HC.LB	;RESET IT
2)		ADD	T1,HC.S2	;[1170] HIGHEST LOC WE NEED
2)	;**;[1146] Insert before JBGC+16L	DZN	8-Mar-79
**************
1)99	JBGC1:				;NOW FOR MOVES
1)					;MAKE TWO SIMPLE TESTS FIRST
1)					;THEN MOVE IN HIGH AND LOW CODE
1)		JUMPE	P2,JBGCL	;ONLY LOW CODE TO WORRY ABOUT
1)		CAMGE	P2,HC.LB	;IF BOTTOM OF CODE IS UNDER WHER
	E IT SHOULD BE
1)		JRST	JBGCHU		;MOVE IT UP (TO CORRECT PLACE)
1)		CAMLE	P3,LC.AB	;IF TOP OF LOW IS ABOVE WHERE IT
	 SHOULD BE
1)		JRST	JBGCLD		;MOVE LOWER
1)	
1)	JBGCH:				;NOW FOR HIGH SEG
1)		SKIPN	T1,HC.UB	;FIRST GET RID OF EXCESS CORE IF
	 ANY
1)		MOVE	T1,LC.UB	;NO HIGH USE LOW
1)		CAMLE	T1,.JBREL	;BUT DON'T WASTE TIME IF ALREADY
	 THERE
1)		CORE	T1,
1)		  JFCL			;TOO BAD
1)		JUMPE	P2,JBGCL	;NO HIGH
1)		MOVEI	R,HC.IX		;INDEX TO HIGH
****
 
 
2)99	;FALL IN FROM ABOVE IFF WE HAVE A HIGH SEGMENT (HC AREA)
2)	;NOW DO THE FOLLOWING:
2)	;
2)	; 1.	IF THE LC AREA IS SO HIGH THAT IT MIGHT GET OVERWRITTEN
	WHEN WE MOVE THE
2)	;	HC AREA TO WHERE IT BELONGS, THEN MOVE THE LC AREA DOWN
	OUT OF THE WAY.
Digital Equipment Corporation       28-AUG-79    Page 461
PCO Log Report


2)	; 2.	MOVE THE HC AREA TO WHERE IT BELONGS, AND READ IN ANY DA
	TA STILL OUT IN
2)	;	OVERFLOW FILES.
2)	; 3.	MOVE THE LC AREA TO WHERE IT BELONGS, AND READ IN ANY DA
	TA STILL OUT IN
2)	;	OVERFLOW FILES.
2)	; 4.	DO A CORE UUO TO GET RID OF CORE FOR TABLES NO LONGER NE
	EDED.
2)	; 5.	MAKE SURE THE CORE BETWEEN AREAS IS STILL ZERO AFTER ALL
	 THIS MOVING.
2)	;
2)	;ENTER FROM ABOVE AT JBGCL (STEP 3) IF WE DON'T HAVE A HIGH SEG.
2)	
2)	;**;[1170] Replace @ JBGC1	JNG	23-May-79
2)		MOVEI	R,LC.IX		;[1170] POINT TO LOW SEG FOR JBC
	GM
2)		CAMLE	P3,LC.AB	;[1170] MIGHT LC AREA BE WIPED B
	Y MOVING HC?
2)		PUSHJ	P,JBGCM		;[1170] YES, MOVE LC AREA FIRST
2)		MOVEI	R,HC.IX		;INDEX TO HIGH
**************
1)99					;NOW TO ZERO ALL SPACE NOT USED
****
2)99	;**;[1170] Insert @ JBGCL+3L	JNG	23-May-79
2)		SKIPN	T1,HC.UB	;[1170] GET LAST LOCATION USED
2)		MOVE	T1,LC.UB	;[1170] NO HI SEG, END OF LOW IS
	 LAST USED
2)		IOR.	T1,.PGSIZ	;[1170] UP TO PAGE BOUND IF NEED
	ED
2)		CAME	T1,.JBREL	;[1170] ALREADY THE RIGHT SIZE?
2)		CORE	T1,		;[1170] NO, SHRINK DOWN (OR GROW
	???)
2)		  JFCL			;[1170] ALREADY WAS THE RIGHT SI
	ZE
2)					;NOW TO ZERO ALL SPACE NOT USED
**************
1)99		SETZM	T1,-1(T1)	;CLEAR FIRST WORD
1)		BLT	T1,@TAB.UB(R)	;AND REST
****
2)99	;**;[1170] Change @ JBGCZ+5L	JNG	23-May-79
2)		SETZM	-1(T1)		;[1170] CLEAR FIRST WORD
2)		BLT	T1,@TAB.UB(R)	;AND REST
**************
1)100	;**;[1146] Swap pages @JBGCMV and JBGCHU	DZN	8-Mar-79
1)	JBGCHU:				;HERE TO MOVE HIGH UP
1)					;USUAL REVERSE BLT IN T1-T4
1)		MOVE	T1,HC.LB	;WHERE BOTTOM SHOULD BE
1)		SUBI	T1,(P2)		;WHERE IT NOW IS (GIVES DIFF)
1)		ADD	T1,LW.S2	;ADD IN WINDOW ADDRESS
1)		MOVE	T4,P4		;FIND LENGTH TO MOVE
1)		SUBI	T4,-1(P2)
Digital Equipment Corporation       28-AUG-79    Page 462
PCO Log Report


1)		MOVS	T4,T4		;LENGTH IN LEFT
1)		HRR	T4,P4		;TOP OF OLD DATA
1)		TLO	T4,(1B0)	;PREVENT PDLOV
1)		HRLI	T1,(POP T4,0(T4))
1)		MOVE	T2,[JUMPL T4,T1]
1)		MOVE	T3,[JRST JBGCH]
1)		MOVE	P2,HC.LB	;NOW FIXUP P2
1)		ADD	P2,LW.S2	;SO WE DON'T MOVE THIS STUFF AGA
	IN
1)		JRST	T1		;JUMP INTO FAST LOOP
1)	
 
 
1)	JBGCLD:				;HERE TO MOVE LOW DOWN
1)		MOVE	T1,LC.LB	;START OF WHERE LOW CODE GOES
1)		ADD	T1,LW.S1	;WHERE THIS WINDOW GOES
1)		MOVE	T2,T1		;COPY SO WE CAN END
1)		HRL	T1,P1		;BLT WORD
1)		SKIPN	UW.S1		;MAY NOT BE PAGING
1)		SKIPA	T2,LC.AB	;SO USE ALL OF AVAILABLE CORE
1)		ADD	T2,UW.S1	;WHERE IT SHOULD END
1)		BLT	T1,0(T2)	;MOVE ALL DATA
1)		MOVE	P1,LC.LB	;FIXUP P1 TO REFLECT CHANGE
1)		ADD	P1,LW.S1	;SO WE DON'T MOVE AGAIN
1)		JRST	JBGCH		;NOW DO INTERNAL MOVES
1)	
1)101	;**;[1146] (Swapped as noted above). Make minor changes below.
****
2)100	;**;[1170] Delete @ JBGHCU	JNG	23-May-79
2)	;**;[1146] (Swapped as noted above). Make minor changes below.
**************
1)101		PUSHJ	P,[CAMG	T1,P0(R)	;OTHERWISE MOVE UP OR DO
	WN
1)	;**;[1146] Replace @JBGCMV+4L	DZN	8-Mar-79
1)			   PJRST JBGCD		;[1146] DOWN
1)			   PJRST JBGCU]		;[1146] UP
1)					;NOW FOR REST OF CODE
****
2)100	;**;[1170] Replace @ JBGCMV+3L	JNG	23-May-79
2)		PUSHJ	P,JBGCM		;[1170] MOVE THE AREA, UP OR DOW
	N
2)					;NOW FOR REST OF CODE
**************
1)101		JRST	.+5		;JUST IGNORE
1)		EXCH	T1,UW.S0(R)	;GET BASE
****
2)100	;**;[1170] Replace @ JBGCMV+17L	JNG	23-May-79
2)		POPJ	P,		;[1170] ALL DONE
2)		EXCH	T1,UW.S0(R)	;GET BASE
**************
1)101		PUSHJ	P,@[EXP LC.IN##,HC.IN##]-1(R)
Digital Equipment Corporation       28-AUG-79    Page 463
PCO Log Report


1)					;NOW TO ZERO JUNK AT TOP
1)		HRRZ	T1,TAB.AB(R)	;TOP IN USE OR KNOWN TO BE ZERO
1)		CAMN	T1,TAB.UB(R)	;ALL TAKEN?
1)		POPJ	P,		;YES
1)		HRLI	T1,1(T1)	;FIRST TO ZERO
1)		SETZM	1(T1)		;CLEAR IT
1)		ADDI	T1,2		;FORM BLT PTR
1)		BLT	T1,@TAB.UB(R)	;ALL THE WAY
1)		POPJ	P,		;ALL DONE
1)	
1)102	;HERE TO MOVE WINDOW UP IN EITHER AREA
1)	;ENTER WITH R=1 FOR LOW
1)	;R=2 FOR HIGH
1)	
1)	JBGCU:				;HERE TO MOVE UP
1)					;USUAL REVERSE BLT IN T1-T4
1)		MOVE	T1,TAB.LB(R)	;WHERE BOTTOM SHOULD BE
1)		SUB	T1,P0(R)	;WHERE IT NOW IS (GIVES DIFF)
1)		ADD	T1,LW.S0(R)	;ADD IN WINDOW ADDRESS
1)		MOVE	T4,P2(R)	;FIND LENGTH TO MOVE
 
 
1)		SUB	T4,P0(R)
1)		ADDI	T4,400001	;PREVENT PDLOV, INCREMENT LENGTH
	 CORRECTLY
1)		MOVS	T4,T4		;LENGTH IN LEFT
1)		HRR	T4,P2(R)	;TOP OF OLD DATA
1)		HRLI	T1,(POP T4,0(T4))
1)		MOVE	T2,[JUMPL T4,T1]
1)		MOVSI	T3,(POPJ P,)
1)		PJRST	T1		;JUMP INTO FAST LOOP
1)	
1)	JBGCD:				;HERE TO MOVE DOWN
1)		SKIPN	PAG.S0(R)	;IF NOT PAGED
1)		JRST	JBGCN		;USE DIFFERENT ROUTINE
1)		MOVE	T1,TAB.LB(R)	;START OF WHERE LOW CODE GOES
1)		ADD	T1,LW.S0(R)	;WHERE THIS WINDOW GOES
1)		MOVE	T2,T1		;COPY SO WE CAN END
1)		HRL	T1,P0(R)	;BLT WORD
1)		ADD	T2,UW.S0(R)	;WHERE IT SHOULD END
1)		BLT	T1,0(T2)	;MOVE ALL DATA
1)		POPJ	P,
1)	
1)	JBGCN:				;MOVE DOWN WHEN NOT PAGED
1)		MOVE	T1,TAB.LB(R)	;START OF WHERE LOW CODE GOES
1)		HRL	T1,P0(R)	;WHERE IT IS NOW
1)		BLT	T1,@TAB.AB(R)	;MOVE IT ALL
1)		POPJ	P,
1)	
****
2)100	;**;[1170] Replace @ JBGCMV+19L	JNG	23-May-79
Digital Equipment Corporation       28-AUG-79    Page 464
PCO Log Report


2)		PJRST	@[EXP LC.IN##,HC.IN##]-1(R)	;[1170] READ IT
	IN AND RETURN
2)	
2)101	;**;[1170] Revamp @ JBGCU	JNG	23-May-79
2)	;SUBROUTINE TO MOVE AN AREA TO ITS FINAL RESTING PLACE.
2)	;CALL WITH:
2)	;	R/ INDEX TO SEGMENT, ??.IX
2)	;	P1-P4/ OLD LB/AB OF AREAS
2)	;	??.LB&AB/ NEW LB/AB OF AREAS
2)	;
2)	;UPDATES P1-P4 TO INDICATE THE AREA HAS BEEN MOVED.
2)	;THIS SUBROUTINE USES BLTS, A PIECE AT A TIME IF OVERLAPPING UPW
	ARDS.
2)	
2)	JBGCM:	MOVE	W1,HC.S0(R)	;[1170] FIRST, CALCULATE LAST DE
	ST+1
2)		SUBI	W1,1		;[1170] DEPENDS ON IF PAGING, AN
	D
2)		IORI	W1,.IPM		;[1170]   WHERE WINDOW IS IF SO
2)		SKIPE	PAG.S0(R)	;[1170] PAGING?
2)		CAMG	W1,UW.S0(R)	;[1170] YES, DOES WINDOW POINT T
	O END OF AREA?
2)		  CAIA			;[1170] NOT PAGING OR WINDOW AT
	END
2)		MOVE	W1,UW.S0(R)	;[1170] WINDOW IN MIDDLE, STOP B
	LT AT UW
2)		ADDI	W1,1		;[1170] CONVERT LAST DEST TO FIR
	ST NOT TOUCHED
2)		ADD	W1,TAB.LB(R)	;[1170] FORM ABSOLUTE ADDRESS
2)		MOVE	T1,TAB.LB(R)	;[1170] NOW CALCULATE FIRST DEST
	INATION ADDR
2)		ADD	T1,LW.S0(R)	;[1170] WHERE CURRENT WINDOW GOE
	S IN NEW LC AREA
2)		MOVE	T3,W1		;[1170] T1 GETS TOTAL LENGTH TO
	MOVE
2)		SUB	T3,T1		;[1170] LAST+1-FIRST IS LENGTH
2)		MOVE	T4,T1		;[1170] T4 GETS OFFSET (HOW FAR
	TO MOVE)
2)		SUB	T4,P0(R)	;[1170] THIS IS ALSO CHUNK SIZE
	IF OVERLAPS UP
2)		SKIPG	T4		;[1170] MOVE DOWN OR IN PLACE?
 
 
2)		MOVE	T4,T3		;[1170] YES, MOVE ENTIRE THING I
	N ONE PIECE
2)		HRLS	T4		;[1170] FORM CHUNK SIZE,,CHUNK S
	IZE (FOR BLT AC)
2)		MOVEI	W3,-1(W1)	;[1170] W1 GETS LAST DEST
2)		MOVE	T2,P0(R)	;[1170] T2 GETS LAST SOURCE + 1
2)		ADD	T2,T3		;[1170] FOR LH OF W1 AS PROTOTYP
	E BLT POINTER
Digital Equipment Corporation       28-AUG-79    Page 465
PCO Log Report


2)		HRLM	T2,W1		;[1170] W1/ LAST SRC+1,,LAST DST
	+1
2)		MOVEM	T1,P0(R)	;[1170] UPDATE P1/P2 SO WE KNOW
	WE DID THIS
2)	
2)		;  ..
2)	
2)102		;  ..
2)	
2)	;LOOP BACK HERE TO DO EACH NEW PIECE OF THE BLT. THIS CODE USES
	ACS AS FOLLOWS:
2)	;
2)	;	T3/	TOTAL # WORDS LEFT TO MOVE
2)	;	T4/	CHUNK SIZE,,CHUNK SIZE (.GT. T3 IF LAST OR ONLY
	TIME)
2)	;	W1/	LAST SRC+1,,LAST DEST+1 FOR NEXT BLT
2)	;	W2/	SCRATCH AC FOR BLT
2)	;	W3/	LAST DEST FOR NEXT BLT
2)	;
2)	;W1 AND W3 ARE DECREMENTED BY CHUNK SIZE WITH EACH BLT UNTIL DON
	E.
2)	
2)	JBGCM6:	CAIGE	T3,(T4)		;[1170] LAST (OR ONLY) TIME?
2)		JRST	JBGCM8		;[1170] YES, GO ADJUST CHUNK SIZ
	E ETC.
2)		SUB	W1,T4		;[1170] DECREMENT PROTOTYPE BLT
	POINTER
2)		MOVE	W2,W1		;[1170] SCRATCH COPY FOR BLT
2)		BLT	W2,(W3)		;[1170] BLT NEXT PIECE
2)		SUBI	W3,(T4)		;[1170] DECREMENT LAST BLT ADDRE
	SS
2)		SUBI	T3,(T4)		;[1170] DECREMENT TOTAL LEFT TO
	DO
2)		JRST	JBGCM6		;[1170] LOOP BACK
2)	
2)	
2)	;HERE THE LAST TIME
2)	
2)	JBGCM8:	JUMPE	T3,CPOPJ	;[1170] ALL DONE?
2)		MOVE	T4,T3		;[1170] DO WHAT'S LEFT
2)		HRLS	T4		;[1170] SET NEW CHUNK SIZE
2)		JRST	JBGCM6		;[1170] BACK THROUGH THE LOOP, O
	NE MORE TIME
2)	
**************
1)103	;HERE TO CHECK FOR HIGH SEG AND MAKE SURE IT'S ON A K BOUNDARY
1)	JBEXIT:	SKIPE	IO.PTR+%XC	;[1146] DO WE WANT .XPN FILE
****
2)103	JBEXIT:	SKIPE	IO.PTR+%XC	;[1146] DO WE WANT .XPN FILE
**************
1)103		SKIPE	T1,HC.LB	;ANY HIGH SEG CODE
Digital Equipment Corporation       28-AUG-79    Page 466
PCO Log Report


1)	IFN TOPS20,<
1)		TRNN	T1,.PGSIZ	;[650] ON A PAGE BOUND ALREADY?
1)		JRST	JBEX1		;[650] YES, EXPECTED
1)		SUBI	T1,1001		;[650] NO, FIND NEXT LOWER PAGE
1)	> ;END IFN TOPS20
1)	IFE TOPS20,<
1)		TDNN	T1,.PGSIZ	;[650] ON A (K/P) BOUND?
1)		JRST	JBEX1		;[650] YES, WHAT LUCK
1)		SUB	T1,.PGSIZ	;[650] NO, NEXT LOWER PAGE
1)		SUBI	T1,2		;[650] 1 FOR EVEN PAGE, 1 FOR LO
	W END
 
 
1)	> ;END OF IFE TOPS20
1)		IOR.	T1,.PGSIZ	;[650] UP TO CORE BLOCK BOUND
1)		CAMGE	T1,LC.AB	;ENOUGH SPARE TO BLT DOWN?
1)		JRST	JBEXUP		;NO MOVE UPWARDS
1)		ADDI	T1,1		;PUT THE 1 BACK
1)		HRL	T1,HC.LB	;FROM,,TO BLT POINTER
1)		MOVE	T2,HC.AB
1)		SUB	T2,HC.LB	;GET LENGTH
1)		ADDI	T2,(T1)		;LAST ADD TO BLT
1)		HRRZM	T1,HC.LB	;NEW LOW BASE
1)		MOVEM	T2,HC.AB	;NEW HIGH BASE
1)		BLT	T1,-1(T2)	;MOVE DATA
1)					;NOW TO ZERO REST OF AREA UP TO
	K BOUND
1)		HRRZI	T1,-1(T2)	;GET TOP DATA WORD
1)		IOR.	T1,.PGSIZ	;[650] UP TO CORE BLOCK BOUND
1)		SETZM	(T2)		;ZERO FIRST WORD
1)		HRLI	T2,1(T2)	;FORM BLT POINTER
1)		MOVS	T2,T2		;RIGHT WAY ROUND
1)		BLT	T2,(T1)		;ZERO JUNK
1)		JRST	JBEX1		;NOW FOR REMAP
1)	
1)104	;HERE TO MOVE CODE UP TO A K BOUND SO REMAP WILL WORK
1)	
1)	JBEXUP:	MOVE	T4,HC.AB	;TOP
1)		SUB	T4,HC.LB	;MINUS BOTTOM GIVES LENGTH
1)		MOVE	T1,LC.AB	;GET TO OF CURRENT AREA
1)		IOR.	T1,.PGSIZ	;[650] PUT ON BLOCK BOUND
1)		ADD	T1,T4		;GET NEW TOP
1)		CAMG	T1,HC.UB	;WILL IT FIT?
1)		JRST	JXUP1		;YES
1)		CORE	T1,		;EXPAND
1)		  PUSHJ	P,NO.COR##	;SHOULD NEVER GET HERE
1)		MOVE	T1,.JBREL	;GET NEW TOP
1)		MOVEM	T1,HC.UB	;SET IT
1)		JRST	JBEXUP		;RESET T4
1)	
1)	JXUP1:	MOVE	T3,T4		;GET A COPY
Digital Equipment Corporation       28-AUG-79    Page 467
PCO Log Report


1)		HRL	T4,T4		;IN BOTH HALVES
1)		ADD	T4,HC.LB	;TOP OF DATA
1)		TLO	T4,(1B0)	;PREVENT PDLOV
1)		MOVE	T1,HC.LB	;GET CURRENT BOTTOM
1)		IOR.	T1,.PGSIZ	;[650] UP TO BLOCK BOUND
1)		ADDI	T1,1		;STARTS ON NEXT WORD
1)		MOVE	T2,T1		;GET COPY
1)		SUB	T1,HC.LB	;GET OFFSET
1)		HRLI	T1,(POP T4,0(T4))
1)		PUSH	P,HC.LB		;SAVE OLD BASE
1)		MOVEM	T2,HC.LB	;RESET BASE
1)		ADDI	T3,(T2)		;START + LENGTH
1)		MOVEM	T3,HC.AB	;AND TOP
1)		MOVE	T2,[JUMPL T4,T1]	;LOAD INST
1)		MOVSI	T3,(POPJ P,)	;RETURN
1)		PUSHJ	P,T1		;JUMP INTO CODE IN ACCS
1)		POP	P,T1		;GET OLD HC.LB
1)		SETZM	(T1)		;ZERO FIRST WORD
1)		HRL	T1,T1
 
 
1)		ADDI	T1,1		;BLT PTR
1)		MOVE	T2,HC.LB	;NEW LOWER BOUND
1)		BLT	T1,-1(T2)	;CLEAR JUNK WE LEFT BEHIND
1)					;FALL INTO JBEX1
1)	
1)105	JBEX1:	SKIPE	STADDR		;WARN USER IF NO STARTING ADDRES
	S
1)		JRST	JBEX10		;IS A STARTING ADDRESS, KEEP GOI
	NG
****
2)103	;**;[1170] Delete @ JBEXIT+4L	JNG	23-May-79
2)		SKIPE	STADDR		;WARN USER IF NO STARTING ADDRES
	S
2)		JRST	JBEX10		;IS A STARTING ADDRESS, KEEP GOI
	NG
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 468
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -282*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          21-MAY-79

[Programmer]            GILBERT

[Routines]              LNKXIT

[Key Words]             LNKPCL      TOPS-10     PSECT PROP

[Source Before Edit]    %4A  (001170)

[Source After Edit]     %4A  (001171)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-Q3049
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 469
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Even after edit 1146 is installed, the TOPS-10  version
of  LINK  will  not  say LNKPCL and write an EXE file if the
user requests a write-enabled high segment or a write-locked
low segment.  The monitor group suggests that these might be
implemented some day, and requests that  LINK  not  disallow
such a construct.
 

                        **********


[DIAGNOSIS]
 
     Edit 1146 didn't think PSECT attributes  were  relevant
to TOPS-10.
 

                        **********


[CURE]
 
     Remove the TOPS-20 conditional,  and  special-case  the
TOPS-10 high segment.
 
 
Digital Equipment Corporation       28-AUG-79    Page 470
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1547 29-May-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 0023 30-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	23-May-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	30-May-7
	9
2)	
**************
1)1	DECEVR==1170		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1171		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1171	JNG	30-May-79	QAR 10-3049
2)	;	Fix edit 1146 to say LNKPCL even on TOPS-10 if it doesn'
	t like
2)	;	the PSECT attributes.
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 471
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1711 24-May-1979
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 0010 30-May-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	23-May-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	30-May-79
2)	
**************
1)1	DECEVR==1170		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1171		;DEC EDIT VERSION
2)	
**************
1)6	
****
2)6	;1171	Fix edit 1171 to say LNKPCL if bad PSECT properties, eve
	n on TOPS-10.
2)	
**************
1)44	;TEST FOR GAPS BETWEEN PSECTS, PSECTS ABOVE THE HIGH SEGMENT AND
	 TOPS-20 WRITE-
1)	;LOCKED PSECTS.
1)	
****
2)44	;TEST FOR GAPS BETWEEN PSECTS, PSECTS ABOVE THE HIGH SEGMENT AND
	 PSECT
2)	;PROPERTIES THAT WE CAN'T HANDLE EXCEPT IN AN EXE FILE.
2)	
**************
1)44	SAVTS1:	MOVE	W2,@RC.TB	;[1146] GET POINTER TO THIS RELO
	C BLOCK
1)	IFN TOPS20,<
1)		MOVE	T2,RC.AT(W2)	;[1146] CHECK PSECT ATTRIBUTES F
	OR READ-ONLY
1)		TXNE	T2,AT.RO	;[1146]   ..
1)		JRST	JBCMPX		;[1146] CAN'T SET UP READ-ONLY P
	AGES IN MEMORY
1)	>
1)		CAML	T1,RC.HL(W2)	;[1146] DOES PREVIOUS PSECT ENGU
	LF THIS ONE?
1)		JRST	SAVTS3		;[1146] YES--NO GAP POSSIBLE YET
1)		CAMN	T4,RC.SG(W2)	;[1146] POSSIBLE GAP BELOW .HIGH
	.?
1)		JRST	SAVTS2		;[1146] YES--OK. USUAL CASE
1)		MOVEI	T2,-1(T1)	;[1146] COMPUTE LAST PAGE USED
****
2)44		; ..
2)	
Digital Equipment Corporation       28-AUG-79    Page 472
PCO Log Report


2)45		; ..
2)	
2)	;BACK HERE FOR EACH NEW PSECT.
2)	
2)	SAVTS1:	MOVE	W2,@RC.TB	;[1146] GET POINTER TO THIS RELO
	C BLOCK
2)	;**;[1171] Replace @ SAVTS1+1L	JNG	30-May-79
2)		MOVE	T2,RC.AT(W2)	;[1171] GET THIS PSECT'S ATTRIBU
	TES
2)	
2)	IFE TOPS20,<
2)		CAMN	T4,RC.SG(W2)	;[1171] TOPS-10 HIGH SEGMENT?
2)		JRST	[TXNE T2,AT.RW	;[1171] YES, USER ASKED FOR WRIT
	EABLE?
2)			JRST JBCMPX	;[1171] YES, LET MONITOR FIGURE
	IT OUT
2)			JRST SAVTS2]	;[1171] NO, ATTRIBUTES ARE OK
2)	> ;END IFE TOPS20
2)	
2)		TXNE	T2,AT.RO	;[1171] NON-HI SEG PAGE TO BE RE
	AD ONLY?
2)		JRST	JBCMPX		;[1171] YES, WE CAN'T HANDLE IT
 
 
2)	SAVTS2:	CAML	T1,RC.HL(W2)	;[1171] DOES PREVIOUS PSECT ENGU
	LF THIS ONE?
2)		JRST	SAVTS6		;[1171] YES--NO GAP POSSIBLE YET
2)		CAMN	T4,RC.SG(W2)	;[1146] POSSIBLE GAP BELOW .HIGH
	.?
2)		JRST	SAVTS5		;[1171] YES--OK. USUAL CASE
2)		MOVEI	T2,-1(T1)	;[1146] COMPUTE LAST PAGE USED
**************
1)44	SAVTS2:	MOVE	T1,RC.HL(W2)	;[1146] SO FAR SO GOOD--ADVANCE
	TO NEXT PSECT
1)	SAVTS3:	MOVE	W1,W2		;[1146] ADVANCE TO NEXT PSECT
1)		CAMGE	R,RC.NO		;[1146] LOOKED AT ALL PSECTS?
1)		AOJA	R,SAVTS1	;[1146] NO--LOOK AT NEXT
1)	
1)	;  ..
1)	
1)45	;  ..
1)	
****
2)45	;**;[1171] Change @ SAVTS2	JNG	30-May-79
2)	SAVTS5:	MOVE	T1,RC.HL(W2)	;[1171] SO FAR SO GOOD--ADVANCE
	TO NEXT PSECT
2)	SAVTS6:	MOVE	W1,W2		;[1171] ADVANCE TO NEXT PSECT
2)		CAMGE	R,RC.NO		;[1146] LOOKED AT ALL PSECTS?
2)		AOJA	R,SAVTS1	;[1146] NO--LOOK AT NEXT
2)		;  ..
2)	
Digital Equipment Corporation       28-AUG-79    Page 473
PCO Log Report


2)46		;  ..
2)	
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 474
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -283*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1160), DON'T INSTALL!

[Date Entered]          09-JUN-79

[Programmer]            GILBERT

[Routines]              LNKPAR    LNKLOW    LNKINI    LNKXIT

[Key Words]             DDT SYMS    GEN RST     BIG REWORK

[Source Before Edit]    %4A  (001171)

[Source After Edit]     %4A  (001172)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 475
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     The routines in LNKXIT.MAC having to do with generation
of  the  runtime  symbol  table  and  the  associated memory
management are some of the worst in  LINK.   They  are  very
difficult  to  understand  and maintain, are poorly written,
and have been the source  of  many  edits  to  correct  bugs
reported  via  SPRs  (including 8 new edits in the year that
LINK v4 has been out).
 
     This PCO is a re-work of that section of LNKXIT.MAC  in
LINK   in   an   attempt  to  improve  its  reliability  and
maintainability.  Some of the specific  problems  that  have
been fixed by this edit are as follows:
 
     1.  If LINK does not have sufficient room to generate a
         complete  runtime symbol table (and thus issues the
         LNKISS message), then the table generated  will  be
         incorrect.   The last word of the table will not be
         a module name,  and  there  will  therefore  be  no
         linked list of module names in the symbol table.
 
     2.  Field image LINK will not allocate a patch area  if
         the  user  asks (via /SYMSEG) for the symbols to go
         into a psect that is empty except for the  symbols.
         Edit  772  fixed  this  problem, but introduced the
         problem  that  the  contents  of  .JBUSY  will   be
         incorrect  if  the  program  contains any undefined
         symbols.   Edit  1121  fixed  this   problem,   but
         re-introduced the original problem.
 
     3.  LINK ignores other psects and the /UPTO switch when
         writing  the  undefined  symbol  table.  This means
         that the undefined  table  can  overwrite  whatever
         follows  it,  or can cause LINK to blow up if there
         are so many undefined symbols  that  the  undefined
         symbol table extends beyond 777777.
 
     4.  LINK can generate a bad runtime  symbol  table  for
         some  links  of an overlaid program if loading in a
         restricted amount of memory.
 
Digital Equipment Corporation       28-AUG-79    Page 476
PCO Log Report


     5.  The contents of the left half of .JBCOR  (the  last
         location   loaded   with   non-zero  data)  can  be
         incorrect if the symbols are appended to  a  psect.
         The symbols will not be counted as non-zero data.
 
     6.  Any code or data immediately beyond the end of  the
         runtime  symbol  table  can be lost up to the first
         page boundary beyond the end of the  symbol  table.
         This  can  only occur if the segment into which the
         symbol table is being inserted  has  overflowed  to
         disk.
 
     7.  The segment containing the symbol table will be too
         long  if  the  program  contains  undefined symbols
         requiring additive fixups, and if the  symbols  are
         appended  to a psect.  The segment will be extended
         by  two  words  for  each  additive  fixup  request
         appearing in the undefined table.
 
     8.  After edit 1132 has been installed, LINK  will  get
         an  I/O  error  to  its  low  segment overflow file
         (nnnLLC.TMP) if the LC area is overflowing to disk,
         LINK  is  writing  an EXE file, and location 777777
         has been loaded with non-zero data (e.g., the  last
         word of the symbol table).
 
     9.  LINK will write an incorrect, very small .SYM  file
         if  the  user  asks for a new-style symbol file via
         /SYFILE:TRIPLET, and LINK's internal  LS  area  has
         NOT overflowed to disk.
 
    10.  LINK will not allocate a patch area in an  overlaid
         program,  despite  code in LNKOV1 which attempts to
         do so.  Even when this is fixed, the runtime symbol
         table LINK generates for overlaid programs does not
         contain the PAT..  module or symbol, so  the  patch
         area cannot be found.
 
    11.  The left half of the value word of the first module
         in  the runtime symbol table will contain zero.  It
         should contain the negated number of words  in  the
         part of the symbol table describing that module.
 
    12.  After edit 770 has been installed, the contents  of
         .JBUSY  and  possibly other JOBDAT locations can be
         incorrect.  This will only happen  if  the  program
         being  loaded contains undefined symbols, a runtime
         symbol table is being generated, and  the  LC  area
         overflows to disk at the wrong time.
 
    13.  When LINK is writing the runtime symbol  table,  it
Digital Equipment Corporation       28-AUG-79    Page 477
PCO Log Report


         thinks  it  has  run  out of room and truncates the
         table one location before  it  has  to.   In  other
         words,  it  always  leaves  a  zero  word after the
         runtime symbol table, even if it  has  to  truncate
         the table to do so.
 
    14.  After edit  1132  has  been  installed,  LINK  will
         truncate  the runtime symbol table too soon or skip
         writing it entirely in certain instances  of  psect
         overlap.   The  cases  that fail occur when another
         psect starts in the middle of the  psect  to  which
         symbols are being appended.
 
    15.  If LINK  comes  close  to  running  into  the  high
         segment  when  writing the runtime symbol table, it
         will stop and truncate the table 100  words  before
         it has to.  It will not do this if the symbol table
         threatens  to  overlap  any  psect  but  the   high
         segment.
 
    16.  The /UPTO switch can cause problems when loading an
         overlaid program.  LINK tries to ignore this switch
         for overlaid programs,  since  the  runtime  symbol
         table  is placed at runtime by the overlay handler.
         However, the switch is not completely  ignored,  so
         that LINK will stop generating symbols for any link
         whose symbol table size exceeds the argument to the
         /UPTO switch.  For example, /UPTO:10 will guarantee
         that the overlay file will not contain more than 10
         words of symbol table information for any link.
 
    17.  LINK will leave a temporary file  names  nnnLAS.TMP
         in  the  user's  default  path  if  the  AS  (Algol
         symbols) area  overflows  to  disk,  but  the  user
         prevents  generation  of  an Algol .SYM file (e.g.,
         via /SYFILE:RADIX50).
 
    18.  The LNKXIT module is much larger than it  needs  to
         be,  and  frequently reveals bugs related to memory
         management  when  generating  the  runtime   symbol
         table.
 
 

                        **********


[DIAGNOSIS]
 
     1.  When LINK runs out of  room  to  write  the  symbol
         table, it just stops, without any attempt to insure
Digital Equipment Corporation       28-AUG-79    Page 478
PCO Log Report


         that the table is terminated by a module name.
 
     2.  The same register  (P2)  is  assumed  to  hold  two
         different numbers, depending on whether the program
         being    loaded    contains    psects    or    not.
         Unfortunately, some places still want the non-psect
         number, even when psects are  being  loaded.   This
         doesn't  work,  since  the  number  is  not  in the
         register, and was never stored anywhere else.
 
     3.  The undefined symbol table  writer  does  not  call
         SYMOUT  (which  checks  psect  bounds  and  /UPTO).
         Instead, it simply stores the symbol table data  by
         hand, without making any of the necessary checks.
 
     4.  When LNKOV2 calls LSLOOP in LNKXIT  to  generate  a
         runtime symbol table for each link, it insures that
         the LC area has not overflowed to  disk.   However,
         if  the  overflow occurs during LSLOOP's execution,
         LNKOV2 will ignore it and take  whatever  data  has
         not  been  paged  out  as the entire runtime symbol
         table for the link.
 
     5.  LINK does not update its internal  pointer  to  the
         last   location   containing   non-zero  data  when
         appending the runtime  symbol  table  to  a  psect.
         This is apparently because the number needed is not
         conveniently available at that point in LNKXIT.
 
     6.  LINK assumes that it is appending the symbol  table
         to the end of a segment, and that there can thus be
         nothing in the overflow file for the segment beyond
         the  symbol  table.   It  therefore writes pages of
         symbols out to the overflow file without trying  to
         save   the   old   contents  of  the  pages.   This
         assumption fails when using psects, since the psect
         to  which  the  symbol  table is being appended can
         appear anywhere within the segment.
 
     7.  LINK estimates the length of  the  undefined  table
         before  writing  it,  and  if  the  table  is being
         appended to  a  segment,  it  updates  the  segment
         length  by  the  size  of the table.  This estimate
         does not include additive fixups, however, and when
         LINK   finds   one  of  these,  it  goes  back  and
         increments   the    segment    length    by    two.
         Unfortunately,  the  segment  length  should not be
         incremented when the undefined  symbols  are  being
         appended  to  a psect in the middle of the segment,
         so  the  segment  length   is   being   incorrectly
         incremented in this case.
Digital Equipment Corporation       28-AUG-79    Page 479
PCO Log Report


 
     8.  The .EXE file writer assumes that  the  pointer  to
         the first free word beyond the program is a pointer
         to  the  last  used  word  of  the   program   when
         processing  overflow files.  This causes it to call
         the paging routines  with  a  request  for  a  page
         beyond  777 if the last used word in the program is
         777777.  This large page number causes  the  paging
         routines  to  issue an invalid IN UUO, resulting in
         an I/O error.
 
     9.  When the LS area has not overflowed to  disk,  LINK
         deletes  it  as  it scans through it generating the
         runtime symbol table.  Unfortunately, the  contents
         of  this  area are needed for the sixbit .SYM file,
         which is not  generated  until  after  the  runtime
         symbol table has been completed.
 
    10.  LNKOV1 does not update enough pointers to  get  the
         patch  area allocated.  Even if it did, the code to
         generate the PAT..   symbol  is  not  reached  when
         generating   the   symbol  table  for  an  overlaid
         program.
 
    11.  LNKXIT's internal pointer to the last  module  name
         written   to  the  symbol  table  (TTLPTR)  is  not
         initialized correctly before generating the  symbol
         tables for overlay links.
 
    12.  Edit 770 removed a necessary call to CHKPAG,  which
         checks  to see if JOBDAT has been paged out, and if
         so, puts it into a buffer in the DY area.  If  this
         is  missed,  LINK will store into what it thinks is
         JOBDAT, but is actually some random place in LINK's
         low segment.
 
    13.  The truncation check is off by one.
 
    14.  LINK assumes that the psect with  the  next  higher
         psect  origin  beyond  the one to which symbols are
         being appended is the  one  to  use  as  a  cutoff.
         However, if the next higher psect starts within the
         psect to which symbols  are  being  appended,  then
         LINK  will think that it has run out of room before
         writing anything.
 
    15.  There was apparently some attempt  to  implement  a
         100  word  gap area after the runtime symbol table.
         However, the implementation was  not  complete,  so
         the  relevant  code is only reached if the limiting
         psect is .HIGH..
Digital Equipment Corporation       28-AUG-79    Page 480
PCO Log Report


 
    16.  Since the runtime symbols for an  overlaid  program
         are  put into the overlay file and not into memory,
         LNKXIT loads them into a  dummy  area  starting  at
         address  0.   However,  the  symbol deposit routine
         still looks at /UPTO, so  it  will  stop  when  its
         internal   "fake"   address   reaches   the   /UPTO
         parameter.
 
    17.  LINK never tries to delete the nnnLAS.TMP file.  It
         will  only go away if is renamed to be a .SYM file,
         which will only happen if the user wants  an  Algol
         .SYM file.
 
    18.  LNKXIT does much of its own memory  management  and
         disk  overflow  handling  when creating the runtime
         symbol table.  This causes LNKXIT to  be  huge  and
         complex,  and  leads to bugs when it does decide to
         call LNKCOR for some  action,  because  the  memory
         management  data  base  maintained by LNKCOR is not
         always updated correctly when LNKXIT does things by
         hand.
 
 

                        **********


[CURE]
 
     Re-work the runtime symbol generation code  in  LNKXIT,
maintaining  existing  routines or code where possible.  The
specific fixes to each problem (where applicable) are listed
below.
 
     1.  Reserve the last two words of the symbol table  for
         the  last  module name, and, if the symbol table is
         about to be truncated, skip ahead  until  a  module
         name  is found, so that the table can be terminated
         properly.
 
     2.  Re-work that section of  code  so  that  everything
         always  looks  like  a  psect,  thus  removing many
         special case checks and the need  to  carry  around
         two sets of numbers.
 
     3.  Generalize SYMOUT  so  that  the  undefined  symbol
         table  generator  can  call it, and then make every
         place that wants to write something to  the  symbol
         table go through it.
 
Digital Equipment Corporation       28-AUG-79    Page 481
PCO Log Report


     4.  Check for the LC  area  overflowing  to  disk  when
         generating  the  symbol  table for an overlay link,
         and complain to the  user  of  insufficient  memory
         (the ?LNKCEF error) if this occurs.
 
     5.  Move the update of  .JBCOR  to  after  all  of  the
         symbols  have  been  written,  so  that the data is
         always  available,  and  so  that  the  psect   and
         non-psect  cases  need  not  be  distinguished  and
         handled differently.
 
     6.  Check the size of the overflow file,  and  read  in
         any  valid  data  beyond  the  symbol  table before
         generating the symbol table.
 
     7.  Don't update the segment  length  until  after  the
         entire  symbol  table has been written, so that the
         exact length can be computed.
 
     8.  Subtract one from  the  first-free  pointer  before
         using it as a last-used pointer.
 
     9.  Do not delete the LS area until  after  the  sixbit
         .SYM file (if any) has been written.
 
    10.  Allocate the area, and make the code  that  inserts
         PAT..   into  the symbol table a subroutine, so the
         overlay symbol table generator can call it.
 
    11.  Initialize TTLPTR correctly.
 
    12.  Re-work the code so that LINK cannot possibly start
         to page at that point.
 
    13.  Correct the test to not be off by one.
 
    14.  Change the routine that decides how far the runtime
         symbol  table  can  be  allowed to extend.  The new
         algorithm looks for the  first  psect  origin  that
         lies  beyond  where  the  symbol  table starts, and
         ignores zero length psects during its search.
 
    15.  Remove the code to reserve 100 words beyond the end
         of  the  symbol  table.   The symbol table will now
         always be allowed to run right  up  into  (but  not
         overlap) the next psect.
 
    16.  Initialize the /UPTO parameter to  a  large  number
         before writing the overlay symbol tables.
 
    17.  Insert code to delete the nnnLAS.TMP  file  if  the
Digital Equipment Corporation       28-AUG-79    Page 482
PCO Log Report


         user does not want it.
 
    18.  Remove the routines  to  do  memory  management  by
         hand,  and  replace  them by calls to LNKCOR except
         where absolutely necessary to do something by hand.
 
 
     This PCO has been made for informational purposes only.
Due  to  the  size  and  complexity of this edit, no attempt
should be made to install it as a patch to LINK  version  4.
This  edit  requires  edits  770,  772, 773, 774, 776, 1110,
1111, 1113, 1121, 1127, 1132, 1144, 1145, 1146, 1152,  1155,
and 1160 to have been previously installed.
 
 
Digital Equipment Corporation       28-AUG-79    Page 483
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 0023 30-May-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 2222 08-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	30-May-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	5-Jun-79
2)	
**************
1)1	DECEVR==1171		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1172		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1172	JNG	5-Jun-79
2)	;	Fix many memory management problems when writing a runti
	me symbol
2)	;	table, especially when psects are involved.
2)	;	Routines: LNKPAR, LNKINI, LNKOV1, LNKOV2, LNKWLD, LNKXIT
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 484
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPAR.MAC[30,4507]  	created: 0052 17-Feb-1979
File 2)	LINK:LNKPAR.MAC[10,645063]	created: 0230 09-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	16-Feb-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	5-Jun-79
2)	
**************
1)1	DECEVR==1144		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1172		;DEC EDIT VERSION
2)	
**************
1)3	ND .OVPSP,0		;DEFAULT PATCH SPACE IN LINKS OTHER THAN
	 ROOT
1)	ND LN.OVL,^D128*^D10*2	;MAX. NO. OF OVERLAYS ALLOWED
****
2)3	;**;[1172] Delete @ .OVPSP	JNG	5-Jun-79
2)	ND LN.OVL,^D128*^D10*2	;MAX. NO. OF OVERLAYS ALLOWED
**************
1)3	ND .FRESP,100		;[727] LENGTH TO LEAVE AFTER SYMBOL TABL
	E
1)	ND .SYLIM,777777	;[745] DEFAULT SYMBOL TABLE LIMIT
1)	ND .LLOC,200000		;[732] INITIAL VALUE FOR LOWEST LOCATION
1)	
****
2)3	;**;[1172] Delete @ .FRESP	JNG	5-Jun-79
2)	
**************
1)5	
****
2)5	;1172	Delete .FRESP, .SYLIM, .OVPSP, and .LLOC.
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 485
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOW.MAC[30,4507]  	created: 0049 17-Feb-1979
File 2)	LINK:LNKLOW.MAC[10,645063]	created: 2146 08-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC/DZN	16-Feb-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC/DZN	5-Jun-79
2)	
**************
1)1	DECEVR==1144		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1172		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1172	Add PATLOC.
2)	
**************
1)3	
****
2)3	;**;[1172] Insert @ POPOFS+1L	JNG	5-Jun-79
2)	PATLOC:	BLOCK	1		;[1172] LOCATION OF PAT.. AREA
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 486
PCO Log Report


[FILCOM]
File 1)	LINK:LNKINI.MAC[30,4507]  	created: 0232 05-Apr-1979
File 2)	LINK:LNKINI.MAC[10,645063]	created: 1301 07-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	29-Mar-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	5-Jun-79
2)	
**************
1)1	DECEVR==1151		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1172		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1172	Don't initialize SYMLIM.
2)	
**************
1)7		MOVSI	T1,.LLOC	;[732] INITIALIZE LOWEST LOCATIO
	N
1)		MOVEM	T1,LOWLOC	;[732]
****
2)7	;**;[1172] Change @ PJLOOP+25L	JNG	5-Jun-79
2)		MOVX	T1,.INFIN	;[1172] NO LOWEST LOCATION YET S
	EEN
2)		MOVEM	T1,LOWLOC	;[732]
**************
1)11		MOVEI	T1,.SYLIM	;[727] SET DEFAULT SYMBOL TABLE
	LIMIT
1)		TXO	T1,1B0		;[727] TO HIGH SEG ORIGIN (ON WI
	TH 1B0)
1)		MOVEM	T1,SYMLIM	;[727]
1)	
****
2)11	;**;[1172] Delete @ CORINI+3P29L	JNG	5-Jun-79
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 487
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1801 08-May-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1208 07-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	8-May-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	5-Jun-79
2)	
**************
1)1	DECEVR==1163		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1172		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1172	Don't change SYMLIM on /SET to .HIGH..
2)	
**************
1)40			MOVEI	W3,-.FRESP-1(W3)	;[727] LESS FREE
	 SPACE AT END
1)			HRRM	W3,SYMLIM	;[727] ADJUST SYMLIM TO
	NEW HI ORG
1)			MOVE	W3,W1		;[727]
1)	;**;[1155] Replace @ SET3+8L	JNG	13-Apr-79
****
2)40	;**;[1172] Delete @ SET3+6L	JNG	5-Jun-79
2)	;**;[1155] Replace @ SET3+8L	JNG	13-Apr-79
**************
 
Digital Equipment Corporation       28-AUG-79    Page 488
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOV1.MAC[30,4507]  	created: 1547 03-Apr-1979
File 2)	LINK:LNKOV1.MAC[10,645063]	created: 2144 08-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	3-Apr-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	5-Jun-79
2)	
**************
1)1	DECEVR==1152		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1172		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1172	Allocate PAT.. in the root.
2)	
**************
1)11			JRST LNKT0B]	;CONTINUE
1)		JUMPN	T2,LNKT0B	;OK IF USER ALREADY SAID /SYMSEG
1)		SKIPN	.JBDDT(T1)	;IS DDT LOADED
1)		JRST	LNKT0B		;NO, CONTINUE
1)		MOVEI	T2,$SEGLOW	;SYMBOLS IN LOW SEG INDEX
1)		MOVEM	T2,SYMSEG	;SET VALUE SO WE CAN SAVE SYMBOL
	S
1)		MOVE	T2,['.LOW. ']	;NAME OF SYMSEG PSECT
1)		MOVEM	T2,SSGNAM	;STORE FOR LNKXIT
1)	
1)	LNKT0B:	MOVE	T2,.JBVER(T1)	;GET VERSION N0.
1)		SKIPN	VERNUM
****
2)11	;**;[1172] Replace @ LNKT0A+5L	JNG	5-Jun-79
2)			JRST LNKT0C]	;[1172] CONTINUE
2)		JUMPN	T2,LNKT0B	;OK IF USER ALREADY SAID /SYMSEG
2)		SKIPN	.JBDDT(T1)	;IS DDT LOADED
2)		JRST	LNKT0C		;[1172] NO, CONTINUE
2)		MOVEI	T2,$SEGLOW	;SYMBOLS IN LOW SEG INDEX
2)		MOVEM	T2,SYMSEG	;SET VALUE SO WE CAN SAVE SYMBOL
	S
2)	
2)	
2)	;HERE IF WE'RE GOING TO HAVE A RUNTIME SYMBOL TABLE.  ALLOCATE P
	AT..
2)	;AT THE END OF THE ROOT.
2)	
2)	LNKT0B:	MOVE	T2,SYMSEG	;[1172] GET INDEX TO SYMBOL SEGM
	ENT
2)		SKIPN	T3,PATSPC	;[1172] GET PATCHING SPACE
Digital Equipment Corporation       28-AUG-79    Page 489
PCO Log Report


2)		MOVEI	T3,PATSP.	;[1172] DEFAULT
2)		EXCH	T3,HL.S0(T2)	;[1172] GET LOCATION OF PAT..
2)		MOVEM	T3,PATLOC	;[1172] SAVE FOR LSOVX
2)		ADDM	T3,HL.S0(T2)	;[1172] ALLOCATE THE PAT.. AREA
2)		; ..
2)	
2)12		; ..
2)	
2)	LNKT0C:	MOVE	T2,.JBVER(T1)	;[1172] GET VERSION N0.
2)		SKIPN	VERNUM
**************
1)13	LNKT1B:	SKIPE	CS.NUM		;ROOT IS SPECIAL
1)		SMOVE	T1,.OVPSP	;PATCH SPACE IF NOT ROOT
 
 
1)		MOVEI	T1,PATSP.	;PATCH SPACE IF ROOT
1)		SKIPN	PATSPC
1)		MOVEM	T1,PATSPC	;SETUP IF NOT ALREADY
1)		SKIPN	T1,HL.S1	;GET CURRENT HIGHEST LOC
1)		JRST	[SKIPN	T1,PH.ADD	;NEVER SETUP, SO NO LOW
	SEG
****
2)14	;**;[1172] Delete @ LNKT1B	JNG	5-Jun-79
2)	LNKT1B:	SKIPN	T1,HL.S1	;GET CURRENT HIGHEST LOC
2)		JRST	[SKIPN	T1,PH.ADD	;NEVER SETUP, SO NO LOW
	SEG
**************
 
Digital Equipment Corporation       28-AUG-79    Page 490
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOV2.MAC[30,4507]  	created: 1433 01-Mar-1978
File 2)	LINK:LNKOV2.MAC[10,645063]	created: 2238 08-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JNG/MCHC	27-Feb-78
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JNG/MCHC	5-Jun-79
2)	
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1172		;DEC EDIT VERSION
2)	
**************
1)3	SUBTTL	DEFINITIONS
****
2)2	;START OF VERSION 4A
2)	;1172	Call LSLOOP correctly.
2)	
2)3	SUBTTL	DEFINITIONS
**************
1)22	;HERE TO CHECK IF SYMBOLS NEEDED, AND READ THEM IN IF SO.
1)	
****
2)22	;**;[1172] Add comment @ OVR6H+1P	JNg	5-Jun-79
2)	;HERE TO CHECK IF SYMBOLS NEEDED, AND READ THEM IN IF SO.
2)	;WE DO THIS BY FILLING THE LS AREA WITH TRIPLETS, CLEARING THE L
	C AREA,
2)	;AND CALLING LSLOOP IN LNKXIT TO GENERATE A RUNTIME SYMBOL TABLE
	 IN THE
2)	;LC AREA.  WE DON'T ALLOW EITHER AREA TO PAGE.
2)	
**************
1)22	;THIS CODE SHOULD BE REWRITTEN TO PAGE IF NECESSARY!!!
1)		USETI	OC,(T1)		;SET ON SYMBOL BLOCK
****
2)22	;**;[1172] Delete @ OVR6S+6L	JNG	5-Jun-79
2)		USETI	OC,(T1)		;SET ON SYMBOL BLOCK
**************
1)22		MOVE	T2,T1
1)		IORI	T2,.IPM		;MAKE SURE ON BLOCK BOUND
1)		SUBI	T2,(T1)		;FIND WHATS FREE
1)		MOVEM	T2,LS.FR	;AND STORE IT
1)		MOVEI	T1,.IPS		;SIZE WE CARE ABOUT
1)		SUB	T1,T2		;MINUS FREE
1)		PUSHJ	P,LSOVX##	;STORE WHATS LEFT FOR LNKXIT
1)	
Digital Equipment Corporation       28-AUG-79    Page 491
PCO Log Report


****
2)22	;**;[1172] Delete @ OVR6S1+21L	JNG	5-Jun-79
2)	
**************
1)23		MOVEI	T1,.IPS		;NO. OF FREE WORDS
1)		MOVEM	T1,TAB.FR(R)	;IN THIS BLOCK
1)		MOVE	P3,PH.ADD	;SYMBOL TABLE STARTS AT REL 0
****
2)23	;**;[1172] Delete @ OVR6S1+1P12L	JNG	5-Jun-79
2)		MOVE	P3,PH.ADD	;SYMBOL TABLE STARTS AT REL 0
**************
 
 
1)23	OVR6L:	PUSHJ	P,LSLOOP##	;YES
1)		MOVE	T2,TAB.PT(R)	;FINAL LENGTH
****
2)23	;**;[1172] Insert @ OVR6L	JNG	5-Jun-79
2)	OVR6L:	PUSHJ	P,LSOVX##	;[1172] INITIALIZE LNKXIT FOR LS
	LOOP CALL
2)		PUSHJ	P,LSLOOP##	;YES
2)		MOVE	T2,TAB.PT(R)	;FINAL LENGTH
**************
 
Digital Equipment Corporation       28-AUG-79    Page 492
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[10,400000]	created: 0010 30-May-1979
File 2)	LINK:LNKXIT.MAC[30,3737]  	created: 1544 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	30-May-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	5-Jun-79
2)	
**************
1)1	DECEVR==1171		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1172		;DEC EDIT VERSION
2)	
**************
1)6	;1171	Fix edit 1171 to say LNKPCL if bad PSECT properties, eve
	n on TOPS-10.
1)	
****
2)6	;1171	Fix edit 1146 to say LNKPCL if bad PSECT properties, eve
	n on TOPS-10.
2)	;1172	Fix many problems with runtime symbol table generator.
2)	
**************
1)10		JRST	UDF0		;NOW FOR UNDEFINED SYMBOLS
1)	
****
2)10	;**;[1172] Change @ RDJBDA+7L	JNG	5-Jun-79
2)		JRST	CHKRST		;[1172] NOW GO DO RUNTIME SYMBOL
	 TABLE
2)	
**************
1)12	SUBTTL	UNDEFINED SYMBOLS
1)	
1)	;HERE TO PUT UNDEFINED GLOBALS INTO UNDEF TABLE IN CORE
1)	;THIS IS OLD FORMAT (2 WORD SYMBOLS)
1)	UDF0:	SKIPN	R,SYMSEG	;LOAD OFFSET TO EITHER LC OR HC
1)		MOVEI	R,LC.IX		;ASSUME LOWSEG FOR SYMBOLS
1)		SKIPN	NOSYMS		;DON'T WANT UNDEFS IF /NOSYM
1)		SKIPN	P2,USYM		;ANY UNDEFINED SYMBOLS?
1)		JRST	NOUNDF		;NO, GET RID OF AREA
1)					;BUT DO WE REALLY NEED UNDEFS?
1)		SKIPE	PAG.S1		;PAGING?
1)		SKIPA	T1,JOBPTR	;YES, LOAD CORRECT POINTER
1)		MOVE	T1,LC.LB	;NO
1)		SKIPN	.JBDDT(T1)	;JOBDDT NON-ZERO
1)		SKIPE	SYMSEG		;OR SYMBOLS REQUESTED
1)		JRST	UDF0A		;YES
1)		SKIPE	IO.PTR+%SC	;BUT DO WE WANT SYMBOL FILE
1)		SKIPL	SYMFRM		; OLD STYLE?
Digital Equipment Corporation       28-AUG-79    Page 493
PCO Log Report


1)		JRST	NOUNDF		;NO, GET RID OF THEM
1)	UDF0A:	LSH	P2,1		;2 WORDS PER SYMBOL
1)	;**;[770] Insert @ UDF0A+1L	MCHC	17-Mar-78
1)		PUSHJ	P,CHKPAG	;[770] INCASE PAGE FOR THE FIRST
	 TIME
1)		MOVE	P4,PATSPC	;NEED TO LEAVE A HOLE FOR PATCHI
	NG
1)		PUSHJ	P,GETSST	;[715] GET FINAL SYMBOL START AD
	DR
1)		SKIPE	PAG.S0(R)	;PAGING?
1)		PUSHJ	P,LSYP		;YES, GET RIGHT PAGE IN CORE
1)	;**;[772] Change @ UDF0A+5L	MCHC	23-Mar-78
1)	;**;[1121] Change @UDF0A+5L	JNG	4-Oct-78
1)		ADDB	P2,P4		;[1121] SPACE WE NEED IN P2 AND
	P4
1)	;**;[770] Exchange 2 lines @ UDF0A+6L	MCHC	17-Mar-78
 
 
1)		SUB	P2,LW.S0(R)	;[770] REMOVE WINDOW OFFSET
1)		ADD	P2,TAB.LB(R)	;[770] IN CORE
1)		CAMG	P2,TAB.AB(R)	;ENOUGH CORE?
1)		JRST	UDF1		;YES,
1)		SUB	P2,TAB.AB(R)	;GET EXTRA WE NEED
1)		MOVEI	P1,(R)		;FROM WHERE
1)	;**;[770] Replace @ UDF0A+12L	MCHC	17-Mar-78
1)		SETOM	LS.PP		;[770] PREVENT OVERFLOW OF LS AR
	EA
1)		PUSHJ	P,LNKCOR##	;GET IT
1)		  JRST	[MOVE	P2,USYM		;[770] NO CORE, LOOP BAC
	K AND PAGE
1)			JRST	UDF0A]		;[770]
1)		SKIPN	TAB.PG(R)	;[570] PAGING?
1)		JRST	UDF0B		;[570] NO, SKIP THIS
1)		MOVE	T1,P4		;[570] YES, UPDATE UW
1)		IORI	T1,.IPM		;[570] SINCE PAGING ROUTINES DON
	'T
1)		MOVEM	T1,TAB.UW(R)	;[570] WHEN MAKING WINDOW BIGGER
1)	;**;[770] Delete @ UDF0B	MCHC	17-Mar-78
1)	UDF0B:	MOVE	P2,P4		;RELATIVE
1)		ADD	P2,TAB.LB(R)	;FIX IN CORE
1)		SUB	P2,LW.S0(R)	;REMOVE WINDOW OFFSET
1)	;**;[770] Insert @ UDF1	MCHC	17-Mar-78
1)	UDF1:	SETZM	LS.PP		;[770] CLEAR IT
1)		SKIPGE	SYMSEG		;[715] PSECT NAME USED?
1)		JRST	.+3		;[715] YES, JUMP
1)		MOVEM	P4,HC.S0(R)	;FOR .JBCOR
1)	
1)13	;NOW LOOP THROUGH GS AREA LOOKING FOR UNDEFINED SYMBOLS
1)	
1)		EXCH	P4,HL.S0(R)	;GET BASE OF UNDFS
1)		MOVN	T2,USYM		;NUMBER OF UNDEF SYMBOLS
Digital Equipment Corporation       28-AUG-79    Page 494
PCO Log Report


1)		MOVMM	T2,JOB117	;WILL FIX IT LATER, JUST NO. NOW
1)		HRL	P4,T2		;AOBJN POINTER TO UNDEFS
1)		LSH	T2,^D18+1	;PUT 2*COUNT IN LEFT HALF
1)		HRR	T2,P4		;ADDRESS
1)		ADD	T2,LL.S0(R)	;+OFFSET
1)		SKIPE	PAG.S1		;PAGING?
1)		SKIPA	T1,JOBPTR	;YES, LOAD CORRECT OFFSET
1)		MOVE	T1,LC.LB	;CODE OFFSET
1)		MOVEM	T2,.JBUSY(T1)	;FIXUP POINTER
1)		ADD	P4,TAB.LB(R)	;FIX IN CORE
1)		SUB	P4,LW.S0(R)	;REMOVE WINDOW OFFSET
1)		MOVE	P2,HT.PRM	;GET HASH SIZE
1)		SKIPE	T1,@HT.PTR	;GET POINTER IF NON-ZERO
1)		JRST	UDFTRY		;SEE IF A REQUEST
1)	UDFNXT:	SOJGE	P2,.-2		;MORE?
1)		JRST	UDFDN		;NO
1)	
1)	UDFTRY:	ADD	T1,GS.LB	;ADD IN BASE
1)		MOVE	W1,(T1)		;GET FLAGS
1)		TXNN	W1,PS.REQ	;GLOBAL REQUEST
1)		JRST	UDFNXT		;NO, TRY NEXT SYMBOL
1)		DMOVE	W2,1(T1)	;GET SIXBIT SYMBOL & VALUE (REQU
	EST POINTER)
1)		PUSHJ	P,SXBR50	;CONVERT TO SIXBIT
1)		TXO	W2,R5.GLB	;MAKE GLOBAL DEFINITION
1)		ADDI	P4,1		;WILL BUMP LOCATION BY 2 (LATER)
1)		HRRZ	T1,P4		;ADDRESS ONLY
 
 
1)		CAMLE	T1,TAB.AB(R)	;WILL IT FIT IN WHAT WE HAVE?
1)		PUSHJ	P,UDFEXP	;NO, EXPAND AREA
1)		DMOVEM	W2,-1(P4)	;STORE NAME & VALUE
1)		TXNE	W1,PS.FXP	;ANY ADDITIVE GLOBAL FIXUPS
1)		JRST	UDFGB		;YES, RECREATE THE REQUESTS
1)	UDFLUP:	AOBJN	P4,UDFNXT	;AND COUNT BY 1
1)	UDFDN:				;UNLESS FINISHED
1)		SKIPE	PAG.S1		;PAGING?
1)		SKIPA	T1,JOBPTR	;YES, LOAD CORRECT OFFSET
1)		MOVE	T1,LC.LB	;CODE OFFSET
1)		MOVE	T2,JOB117	;GET NUMBER OF UNDEFS
1)		LSH	T2,1		;2 WORDS PER SYMBOL
1)		MOVN	T2,T2
1)		HRLM	T2,.JBUSY(T1)	;FIXUP POINTER
1)		MOVE	T2,.JBUSY(T1)	;GET A COPY
1)		MOVEM	T2,JOB117	;FOR LATER
1)	;**;[772] Insert @ UDFDN+10L	MCHC	23-Mar-78
1)		SUB	P4,TAB.LB(R)	;[772] GET VIRTUAL ADDR OF UNDEF
	 TABLE
1)		ADD	P4,LW.S0(R)	;[722] NEED IT LATER FOR SYMBOL
	TABLE
1)		JRST	GSDLT		;DELETE GLOBAL SYMBOL TABLE
Digital Equipment Corporation       28-AUG-79    Page 495
PCO Log Report


1)	
1)14	UDFGB0:	TXNE	W1,S.LST	;IS THIS THE LAST BLOCK
1)		JRST	UDFLUP		;YES
1)		ADDI	T1,.L		;NO, GET NEXT TRIPLET
1)	UDFGB:	HRRZ	T1,@HT.PTR	;GET POINTER AGAIN
1)		ADD	T1,GS.LB	;ADD IN BASE
1)		SKIPG	W1,.L(T1)	;GET NEXT FLAG WORD
1)		JRST	UDFERR		;MUST HAVE SIGN BIT ON
1)		TXNN	W1,S.FXP	;AND A FIXUP
1)		JRST	UDFGB0		;NOT YET
1)		MOVE	W3,.L+2(T1)	;GET VALUE
1)		MOVE	T1,W3
1)	UDFGB1:	ADD	T1,FX.LB	;RELOCATE IN FIXUP TABLE
1)		SKIPL	W1,0(T1)	;GET FLAGS
1)		JRST	UDFERR		;JUST INCASE
1)	;**;[1160] Replace @ UDFGB1+3L	JNG	14-Apr-79
1)		TXNE	W1,FP.SYM	;[1160] FIXUP BASED ON UNDEFINED
	 SYMBOL?
1)		TXNN	W1,FS.FXR!FS.FXL ;[1160] CAN ONLY PUT OUT RH OR
	LH ADDITIVE
1)		JRST	UDFGB2		;[1160] CAN'T OUTPUT POLISH, SYM
	 FIXUPS, ETC.
1)		DMOVE	W2,1(T1)	;GET DATA WORDS
1)		PUSHJ	P,SXBR50	;CONVERT TO RADIX-50
1)		TXO	W2,R5.GLB	;MAKE INTO A GLOBAL DEFINITION
1)		TXO	W3,R5.FXA	;AND TURN ON ADDITIVE BIT
1)		TXNE	W1,FS.FXL	;LEFT HALF?
1)		TXO	W3,R5.FXL	;YES
1)		ADDI	P4,2		;USES 2 WORDS
1)		HRRZ	T1,P4		;ADDRESS ONLY
1)		CAMLE	T1,TAB.AB(R)	;WILL IT FIT
1)		PUSHJ	P,UDFEXP	;NO
1)		DMOVEM	W2,-1(P4)	;STORE
1)		AOS	JOB117		;COUNT 1 MORE WORD PAIR
1)		SKIPGE	SYMSEG		;[715]
1)		JRST	UDFGB2		;[715] JUMP IF PSECT SPCIFIED
1)		MOVEI	T1,2		;AND INCLUDE IN SPACE ASSIGNED
1)		ADDM	T1,HL.S0(R)	;SINCE WE DIDN'T ACCOUNT FOR IT
	EARLIER
1)	
 
 
1)	;FALL THROUGH TO NEXT PAGE
1)	;	JRST	UDFGB2
1)	
1)15	;FALL IN FROM PREVIOUS PAGE
1)	
1)	UDFGB2:	HRRZ	T1,W1		;GET POINTER
1)		JUMPE	T1,UDFLUP	;ALL DONE IF ZERO
1)		JRST	UDFGB1		;GET NEXT BLOCK
1)	
Digital Equipment Corporation       28-AUG-79    Page 496
PCO Log Report


1)	UDFEXP:	PUSH	P,P2		;SAVE P2 BEFORE EXPANDING CORE
1)		MOVEI	P1,(R)
1)		MOVEI	P2,2		;AT LEAST 2 WORDS EXTRA
1)		SUB	P4,TAB.LB(R)	;REMOVE BASE INCASE WE MOVE
1)		ADD	P4,LW.S0(R)	;INCASE PAGES CHANGE
1)		PUSHJ	P,LNKCOR##
1)		  PUSHJ	P,NO.COR##	;FAILED
1)		SKIPN	TAB.PG(R)	;[570] PAGING THIS AREA?
1)		JRST	UDFEX1		;[570] NO, FORGET IT
1)		MOVE	T1,P4		;[570] YES, MUST UPDATE UW OURSE
	LVES
1)		IORI	T1,.IPM		;[570] ONLY EXPANDED TO THIS PAG
	E
1)		MOVEM	T1,TAB.UW(R)	;[570] UPDATE THE WORD
1)	UDFEX1:	PUSHJ	P,CHKPAG	;[570] INCASE WE STARTED PAGING
1)		SUB	P4,LW.S0(R)	;BACK AS IT WAS
1)		ADD	P4,TAB.LB(R)
1)		POP	P,P2		;RESTORE P2 TO BEFORE UDFEXP
1)		POPJ	P,
1)	
1)	UDFERR:	JRST	UDFLUP		;SYMBOL TABLE FOULED UP
1)	
1)16	;HERE TO GET RID OF GLOBAL TABLE AND IF POSSIBLE CUT BACK CORE
1)	NOUNDF:	SETZM	USYM		;MAKE SURE ITS CLEAR
1)		SKIPE	PAG.S1		;PAGING?
1)		SKIPA	T1,JOBPTR	;YES, LOAD CORRECT OFFSET
1)		MOVE	T1,LC.LB	;BASE OF LOW SEG
1)		SETZM	.JBUSY(T1)	;CLEAR UNDF POINTER
1)	;**;[1113] Change @GSDLT	DZN	25-Aug-78
1)	GSDLT:
1)	IFE TOPS20,<			;[1113] DON'T SHRINK BACK ON TOP
	S-20
1)		SKIPN	.JBDDT(T1)	;SEE IF WE NEED LOCAL SYMBOLS
1)		SKIPE	SYMSEG		;EITHER FOR /DEB OR /SYMSEG
1)		JRST	GSNRED		;YES, DON'T CUT BACK CORE YET
1)		MOVEI	T1,GS.IX-1	;START AT AREA JUST LOWER
1)		SKIPN	TAB.LB(T1)	;FIND HIGHEST AREA IN USE
1)		SOJA	T1,.-1		;WILL GET THERE EVENTUALLY
1)		MOVE	T2,TAB.AB(T1)	;GET HIGHEST LOC IN USE IN IT
1)		IORI	T2,1777		;K BOUND
1)		ADDI	T2,2000		;EXTRA K FOR SAFETY
1)		CAML	T2,.JBREL	;ANYTHING TO GIVE BACK?
1)		JRST	GSNRED		;NO, REDUCED ALREADY
1)		CORE	T2,		;DELETE TOP PART
1)		  JRST	GSNRED		;NEVER CAN HAPPEN
1)		MOVE	T2,.JBREL	;GET NEW TOP
1)	;**;[773] Insert @ GSDLT+14L	JNG	30-Apr-78
1)		SKIPN	GS.LB		;[773] GS AREA ALREADY GONE?
1)		JRST	GSDLT1		;[773] YES, DON'T RECREATE IT
1)		MOVEM	T2,GS.AB	;RESET TABLE
 
Digital Equipment Corporation       28-AUG-79    Page 497
PCO Log Report


 
1)		MOVEM	T2,GS.UB
1)		CAMLE	T2,GS.LB	;INCASE WE REDUCED IT ALL
1)		JRST	GSRED		;NO, ALL IS WELL
1)	;**;[773] Add label @ GSDLT+18L	JNG	30-Sep-78
1)	GSDLT1:	MOVEM	T2,TAB.UB(T1)	;[773] RESET HIGHEST FREE LOC AG
	AIN
1)		SETZM	GS.LB		;SO XX.ZAP CAN WORK
1)	GSRED:	.ERR.	(MS,.EC,V%L,L%I,S%I,RED,<Reducing low segment to
	 >)
1)		.ETC.	(COR,.EP,,,,.JBREL)
1)	;**;[1113] Change @GSNRED	DZN	25-Aug-78
1)	> ;END OF IFE TOPS20
1)	GSNRED:	PUSHJ	P,GS.ZAP	;GET RID OF GS
1)		JRST	LSY0		;[715] GO DO LOCAL SYMBOLS
1)	
1)17	
1)	;HERE TO SETUP THE SPECIFIED PSECT FOR SYMBOL TABLE
1)	
1)	GETSST:	PUSH	P,T1		;[727]
1)	;**;[1132] Revamp @ GETSST+1L	JNG	30-Jan-79
1)		SKIPGE	SYMSEG		;[1132] /SYMSEG TO A PSECT?
1)		JRST	GETS10		;[1132] YES, GO FIND IT
1)	GETS2:	CAIE	R,1		;[1132] /SYMSEG:LOW?
1)		JRST	GETS8		;[1132] NO, MUST BE /SYMSEG:HIGH
1)	
1)		SPUSH	<T2,T3,T4>	;[1132] SAVE SOME ACS FOR LOOP
1)		SETZB	R,T3		;[1132] ON /SYMSEG:LOW, WE WANT
	TO PUT THE
1)	GETS4:	MOVE	T1,@RC.TB	;[1132]   SYMBOLS AFTER THE LAST
	 PSECT, SO WE
1)		MOVE	T2,RC.NM(T1)	;[1132] GET THE NAME OF THIS PSE
	CT
1)		CAMN	T2,['.HIGH.']	;[1132] IS THIS THE HIGH SEG?
1)		JRST	GETS6		;[1132] YES, IT DOESN'T COUNT FO
	R /SYMSEG:LOW
1)		MOVE	T2,RC.HL(T1)	;[1132]   NEED TO FIND THE PSECT
	 THAT ENDS LAST
1)		CAMG	T2,T3		;[1132] HIGHEST SO FAR?
****
2)12	;**;[1172] Replace @ BLTJBL+1P	JNG	5-Jun-79
2)	SUBTTL	RUNTIME SYMBOL TABLE GENERATION
2)	
2)	;HERE TO DECIDE IF WE WANT TO PUT A RUNTIME SYMBOL TABLE INTO TH
	E
2)	;IMAGE, AND IF SO, TO DO IT.  WE WANT A RUNTIME SYMBOL TABLE IF
	ANY
2)	;OF THE FOLLOWING CONDITIONS ARE TRUE:
2)	;
2)	; 1.	C(.JBDDT) IS NONZERO
2)	; 2.	USER SAID /SYMSEG
Digital Equipment Corporation       28-AUG-79    Page 498
PCO Log Report


2)	; 3.	USER SAID /SYFILE:RADIX50
2)	;
2)	;IF THE USER SAID /NOSYMBOLS, WE NEVER WANT A RUNTIME SYMBOL TAB
	LE.
2)	
2)	CHKRST:	SKIPE	PAG.S1		;[1172] FIND JOBDAT
2)		SKIPA	T1,JOBPTR	;[1172] IN DY IF PAGING
2)		MOVE	T1,LC.LB	;[1172] IN LC AREA IF NOT
2)		SETZM	.JBSYM(T1)	;[1172] ASSUME NO SYMBOLS
2)		SETZM	.JBUSY(T1)	;[1172]   ..
2)		SKIPE	NOSYMS		;[1172] /NOSYMBOLS?
2)		JRST	NORST		;[1172] YES, FORGET IT
2)		SKIPN	.JBDDT(T1)	;[1172] C(.JBDDT) <> 0?
2)		SKIPE	SYMSEG		;[1172] OR USER SAY /SYMSEG?
2)		JRST	DORST		;[1172] YES, GO DO IT!
2)		SKIPL	SYMFRM		;[1172] /SYFILE:RADIX50?
 
 
2)		JRST	NORST		;[1172] NOPE, NO SYMBOL TABLE
2)	
2)	
2)	;HERE TO GENERATE A RUNTIME SYMBOL TABLE.
2)	;FIRST, MAKE SURE THE AREA (LC/HC) THAT THE SYMBOLS ARE GOING
2)	;INTO IS BIG ENOUGH, OR IS PAGING AND THE RIGHT PAGE IS IN.
2)	
2)	DORST:
2)	IFN FTOVERLAY,<
2)		SKIPL	LNKMAX		;[1172] LOADING OVERLAYS?
2)		JRST	OVLRST		;[1172] YES, THINGS ARE DIFFEREN
	T
2)	> ;END IFN FTOVERLAY
2)	
2)		.ERR.	(MS,0,V%L,L%I,S%I,SST,<Sorting symbol table>)
2)		PUSHJ	P,GETSST	;[1172] FIND BASE OF SYMBOLS, SE
	T R AND P4
2)		SKIPE	PAG.S0(R)	;[1172] SYMBOL SEGMENT PAGING?
2)		JRST	DORST2		;[1172] YES, GO GET THE RIGHT PA
	GE INTO MEMORY
2)		MOVE	P2,RC.HL(P4)	;[1172] GET FIRST WORD OF TABLE
2)		SUB	P2,LL.S0(R)	;[1172] CONVERT TO OFFSET IN SEG
	MENT
2)		SUB	P2,LW.S0(R)	;[1172] THENCE TO OFFSET IN WIND
	OW
2)		ADD	P2,TAB.LB(R)	;[1172] FIRST ADDRESS WE'RE GOIN
	G TO STORE INTO
2)		CAMG	P2,TAB.AB(R)	;[1172] IS THE AREA BIG ENOUGH?
2)		JRST	DORST4		;[1172] YES, GO FILL IT IN
2)		MOVE	P1,R		;[1172] WHICH AREA TO EXPAND
2)		SUB	P2,TAB.AB(R)	;[1172] HOW MUCH WE NEED
2)		PUSHJ	P,LNKCOR	;[1172] EXPAND THE AREA
2)		  JRST	DORST2		;[1172] FINE, JUST START PAGING
Digital Equipment Corporation       28-AUG-79    Page 499
PCO Log Report


2)		JRST	DORST3		;[1172] GO CHECK PAGING FOR THE
	FIRST TIME
2)	
2)13	;HERE IF PAGING TO BRING THE RIGHT LC/HC PAGE INTO MEMORY.
2)	
2)	DORST2:	PUSHJ	P,LSYP		;[1172] NOW PAGING, GET RIGHT PA
	GE IN MEMORY
2)	DORST3:	PUSHJ	P,CHKPAG	;[1172] SEE IF WE JUST STARTED P
	AGING
2)	DORST4:	MOVE	T1,RC.HL(P4)	;[1172] NOW TO SET UP XX.PT
2)		SUB	T1,LL.S0(R)	;[1172] FIRST ADDRESS TO STORE I
	NTO
2)		SUB	T1,LW.S0(R)	;[1172] CONVERT TO OFFSET IN ARE
	A
2)		ADD	T1,TAB.LB(R)	;[1172] ADDRESS IN AREA
2)		MOVEM	T1,TAB.PT(R)	;[1172] STORE FOR SYMOUT
2)	
2)	
2)	;OK, EVERYTHING IS INITIALIZED.  NOW WRITE OUT THE SYMBOL TABLE(
	S).
2)	
2)		SKIPE	USYM		;[1172] ANY UNDEFINED SYMBOLS?
2)		PUSHJ	P,DOUDFS	;[1172] YES, WRITE THEM OUT
2)		PUSHJ	P,GSDLT		;[1172] DELETE THE GS AREA
2)		SKIPN	SYMFUL		;[1172] IF ANY ROOM LEFT
2)		PUSHJ	P,DOLOCS	;[1172] WRITE THE LOCAL SYMBOLS
	OUT
2)	
2)	
2)	;THE SYMBOLS HAVE BEEN WRITTEN.  NOW UPDATE THE HL/HC WORDS, THE
	N GO CLEAN UP.
2)	
2)		MOVE	T1,TAB.PT(R)	;[1172] NEXT FREE WORD
2)		SUB	T1,TAB.LB(R)	;[1172] OFFSET IN WINDOW
2)		ADD	T1,LW.S0(R)	;[1172] OFFSET IN SEGMENT
2)		CAMLE	T1,HL.S0(R)	;[1172] BIGGEST WE'VE SEEN?
2)		MOVEM	T1,HL.S0(R)	;[1172] YES, STORE IT
 
 
2)		CAMLE	T1,HC.S0(R)	;[1172] BIGGEST LOADED LOC?
2)		MOVEM	T1,HC.S0(R)	;[1172] YES, STORE IT
2)		ADD	T1,LL.S0(R)	;[1172] FORM VIRTUAL ADDRESS
2)		CAMLE	T1,RC.HL(P4)	;[1172] BIGGEST YET FOR THIS PSE
	CT?
2)		MOVEM	T1,RC.HL(P4)	;[1172] YES, REMEMBER IT
2)		SKIPGE	SYMFRM		;[1172] OLD STYLE SYMBOL FILE WA
	NTED?
2)		PUSHJ	P,OLDSYM	;[1172] YES, WRITE IT OUT
2)		.ERR.	(MS,0,V%L,L%I,S%I,STC,<Symbol table completed>)
2)		JRST	FINRST		;[1172] GO JOIN COMMON CLEAN UP
	CODE
Digital Equipment Corporation       28-AUG-79    Page 500
PCO Log Report


2)	
2)14	;HERE WHEN LOADING OVERLAYS.
2)	
2)	IFN FTOVERLAY,<
2)	OVLRST:	HLRE	T2,PH.RDX	;[1172] GET - NO. OF SYMBOLS
2)		MOVM	T3,T2		;[1172] +
2)		ADD	T3,HL.S1	;[1172] HIGHEST LOCATION
2)		ADD	T3,SPACE	;[1172] PLUS BUFFER SPACE
2)		IOR.	T3,.PGSIZ	;[1172] UP TO PAGE BOUND
2)		ADDI	T3,1		;[1172] NEXT FREE
2)		ADD	T3,T2		;[1172] START OF SYMBOLS
2)		HLL	T3,PH.RDX	;[1172] - COUNT
2)		MOVEM	T3,JOB116	;[1172] STORE IN INTERNAL PTR
2)		MOVEM	T3,.JBSYM(T1)	;[1172] STORE SYMBOL TABLE PTR
2)	> ;END IFN FTOVERLAY
2)	
2)	
2)	;HERE IF NOT WRITING A RUNTIME SYMBOL TABLE.  JUST DELETE LINK'S
	 TABLES.
2)	
2)	NORST:	PUSHJ	P,GSDLT		;[1172] GET RID OF THE GS AREA
2)		; ..
2)	
2)15		; ..
2)	
2)	;ALL PATHS REJOIN HERE.  DELETE TABLES, SET UP JOBDAT, AND EXIT.
2)	
2)	FINRST:	SKIPLE	T1,SYMFRM	;[1172] WANT NEW STYLE SYMBOL FI
	LE?
2)		PUSHJ	P,SAVSYM	;[1172] YES, WRITE IT OUT
2)		PUSHJ	P,AS.ZAP	;[1172] DONE WITH AS AREA
2)		MOVEI	T1,AC		;[1172] ALGOL SYMS CHANNEL
2)		SKIPE	PAG.AS		;[1172] AREA PAGING?
2)		PUSHJ	P,DVDEL.##	;[1172] YES, DELETE OVERFLOW FIL
	E
2)		  JFCL			;[1172] DON'T CARE
2)		PUSHJ	P,FX.ZAP	;[1172] DONE WITH FX AREA
2)	
2)	IFN FTOVERLAY,<
2)		SKIPL	LNKMAX		;[1172] LOADING OVERLAYS?
2)		JRST	FINRS2		;[1172] YES, SAVE LS AREA
2)	> ;END IFN FTOVERLAY
2)	
2)		PUSHJ	P,LS.ZAP	;[1172] KILL OFF THE LS AREA
2)		MOVEI	T1,SC		;[1172] LS OVERFLOW CHANNEL
2)		SKIPE	PAG.LS		;[1172] LS AREA PAGING?
2)		PUSHJ	P,DVDEL.##	;[1172] YES, DELETE OVERFLOW FIL
	E
2)		  JFCL			;[1172] WASN'T PAGING
2)	
2)	
Digital Equipment Corporation       28-AUG-79    Page 501
PCO Log Report


 
 
2)	;NOW UPDATE JOBDAT, THEN EXIT VIA SAVTST.
2)	
2)	FINRS2:	SKIPE	PAG.S1		;[1172] LC AREA PAGING?
2)		SKIPA	P1,JOBPTR	;[1172] YES, JOBDAT IS IN DY
2)		MOVE	P1,LC.LB	;[1172] NO, IT'S IN LC
2)		SKIPE	PAG.S2		;[1172] HC AREA?
2)		SKIPA	P2,JBHPTR	;[1172] YES, FETCH DY PTR
2)		MOVE	P2,HC.LB	;[1172] NO, FETCH HC PTR (OR 0)
2)		PUSHJ	P,JOBSET	;[1172] SET UP JOBDAT
2)		PUSHJ	P,HJBSET	;[1172] VESTIGAL JOBDAT
2)		JRST	SAVTST		;[1172] DONE WITH CHKRST, GO CHE
	CK /SAVE
2)	
2)16	;GETSST - ROUTINE TO FIGURE OUT WHERE THE SYMBOL TABLE GOES
2)	;CALLED ONLY WHEN A RUNTIME SYMBOL TABLE IS DEFINITELY NEEDED.
2)	;RETURNS WITH:
2)	;
2)	;	SSGNAM/		NAME (SIXBIT) OF PSECT TO APPEND SYMBOLS
	 TO
2)	;	R/		AREA PSECT IS IN, LC.IX OR HC.IX
2)	;	P4/		POINTER TO RC BLOCK OF PSECT NAMED IN SS
	GNAM
2)	;	RC.HL(P4)/	FIRST ADDRESS TO STORE A SYMBOL IN
2)	;	SYMLIM/		LAST ADDRESS TO STORE A SYMBOL IN
2)	;
2)	;ALSO UPDATES LOWLOC IF NECESSARY.
2)	
2)	GETSST:	SKIPGE	R,SYMSEG	;[1172] /SYMSEG TO A PSECT?
2)		JRST	GETS10		;[1132] YES, GO FIND IT
2)	GETS2:	CAIN	R,2		;[1172] /SYMSEG:HIGH?
2)		JRST	GETS8		;[1172] YES, TREAT IT LIKE /SYMS
	EG:PSECT:.HIGH.
2)	
2)	
2)	;HERE IF /SYMSEG:LOW OR NO /SYMSEG (E.G., C(.JBDDT<>0).
2)	;WE WANT TO APPEND PAT.. AND THE SYMBOL TABLE TO THE LAST PSECT
	IN THE IMAGE.
2)	;OUR FIRST MISSION IS TO FIND THAT PSECT...
2)	
2)		SETZB	R,T3		;[1172] INIT HIGHEST ADDR AND PS
	ECT IDX
2)	GETS4:	MOVE	T1,@RC.TB	;[1172] GET POINTER TO RC BLOCK
	OF NEXT PSECT
2)		MOVE	T2,RC.SG(T1)	;[1172] GET THE SEGMENT THAT THI
	S PSECT IS IN
2)		CAIE	T2,1		;[1172] IN THE LOW SEGMENT?
2)		JRST	GETS6		;[1172] NO, IT DOESN'T COUNT FOR
	 /SYMSEG:LOW
2)		MOVE	T2,RC.HL(T1)	;[1172] GET THE FIRST FREE AFTER
Digital Equipment Corporation       28-AUG-79    Page 502
PCO Log Report


	 THIS PSECT
2)		CAMG	T2,T3		;[1132] HIGHEST SO FAR?
**************
1)17	GETS6:	CAMGE	R,RC.NO		;[1132] ALL DONE?
****
2)16	;**;[1172] Insert @ GETS4+9L	JNG	5-Jun-79
2)		MOVE	T2,RC.NM(T1)	;[1172] GET THE WINNER'S NAME
2)		MOVEM	T2,SSGNAM	;[1172] STORE FOR ERROR MESSAGES
2)	GETS6:	CAMGE	R,RC.NO		;[1132] ALL DONE?
**************
1)17		SPOP	<T4,T3,T2>	;[1132] RESTORE ACS
1)		JRST	GETS14		;[1132] GO UPDATE THAT PSECT
1)	
****
2)16	;**;[1172] Delete @ GETS6+3L	JNG	5-Jun-79
2)		JRST	GETS14		;[1132] GO UPDATE THAT PSECT
2)	
 
 
2)17	;HERE ON /SYMSEG:HIGH.  FAKE /SYMSEG:PSECT:.HIGH. AND FALL INTO
	PSECT CODE.
2)	
**************
1)17	GETS10:	SETZ	R,		;[727] YES, HAVE PSECT NAME
****
2)17	
2)	;HERE ON /SYMSEG:PSECT:xxxxxx.  FIND THE PSECT IN THE RC TABLES.
2)	
2)	GETS10:	SETZ	R,		;[727] YES, HAVE PSECT NAME
**************
1)17	;FALL INTO NEXT PAGE
1)	
1)18	;FALL IN FROM ABOVE
1)	
1)	GETS14:	SKIPL	SYMLIM		;[1132] HAVE A LIMIT YET?
1)		JRST	GETS18		;[1132] YES, PROCEED
1)		ADDI	R,1		;[1132] NO, CHECK NEXT PSECT
1)		CAMLE	R,RC.NO		;[1132] IS THERE ONE?
1)		JRST	GETS16		;[1132] NO, USE 777777
1)		MOVE	T1,@RC.TB	;[1132] RC BLOCK FOR NEXT PSECT
1)		MOVE	T1,RC.IV(T1)	;[1132] BOTTOM OF IT
1)		SOSA	T1		;[1132] LIMIT IS ONE BELOW
1)	GETS16:	MOVEI	T1,777777	;[1132] USE 777777 IF NO NEXT PS
	ECT
1)		MOVEM	T1,SYMLIM	;[1132] STORE
1)		SUBI	R,1		;[1132] BACK TO OLD PSECT
1)	
1)	GETS18:	MOVE	T1,@RC.TB	;[1132] THIS PSECT'S RC BLOCK
1)		MOVEM	T1,SYMPSC	;[1132] SAVE FOR SYDONE
1)		ADD	P4,RC.HL(T1)	;[1132] COMPUTE START OF SYMBOL
	TABLE
Digital Equipment Corporation       28-AUG-79    Page 503
PCO Log Report


1)		MOVE	R,RC.SG(T1)	;[1132] SEGMENT SYMBOL TABLE IS
	IN
1)		MOVE	T1,P4		;[1132] GET START OF THE SYMBOL
	TABLE
1)		TRZ	T1,777		;[1132] ROUND DOWN TO PAGE BOUND
1)		CAMGE	T1,LOWLOC	;[1132] LOWER THAN ANY CODE?
1)		MOVEM	T1,LOWLOC	;[1132] YES, UPDATE LOWEST LOCAT
	ION
1)		SUB	P4,LL.S0(R)	;[1132] OFFSET TO SEGMENT START
1)		CAMLE	P4,HL.S0(R)	;[1132] UPDATE HL FOR THAT SEGME
	NT
1)		MOVEM	P4,HL.S0(R)	;[1132] BUT NEVER DECREASE
1)		POP	P,T1		;[715] RESTORE AC'S
1)		POPJ	P,		;[715]
1)	
1)19	SUBTTL	LOCAL SYMBOLS
1)	
1)	;IF LOCAL SYMBOLS AREA REQUIRED IN CORE STORE THEM  ON TOP
1)	; OF LOW SEG OR HIGH SEG CODE
1)	;IF LOWSEG LEAVE A GAP (PATSPC) FOR MORE SYMBOLS OR PATCHING
1)	; IF HIGH PUT AGAINST PAGE BOUND (0.5K)
1)	;
1)	;IF LOCAL SYMBOLS NOT REQUIRED JUST FLUSH SPACE
1)	;IF SYMBOLS ON DSK READ BACK IN FIRST
1)	
1)	LSY0:	SKIPE	PAG.S1		;PAGING?
1)		SKIPA	T1,JOBPTR	;YES, LOAD CORRECT OFFSET
1)		MOVE	T1,LC.LB	;LOAD UP OFFSET
1)		SKIPN	T2,VERNUM	;GET VERSION# SET BY SWITCH
1)		SKIPA	T2,.JBVER(T1)	;GET VERSION FROM LOC .JBVER
1)		MOVEM	T2,.JBVER(T1)	;STORE BACK IN CORE IMAGE
 
 
1)		MOVEM	T2,VERNUM	;SAVE FOR .RBVER OF FILES
1)		SKIPE	NOSYMS		;NOT IF /NOSYMS
1)		JRST	LSY00
1)		SKIPN	.JBDDT(T1)	;IF DDT WE NEED LOCALS
1)		SKIPE	SYMSEG		;OR IF USER SPECIFIED WHERE TO P
	UT THEM
1)		JRST	LSREQ		;YES,
1)	LSY00:	SETZM	.JBSYM(T1)	;CLEAR POINTER
1)		SKIPE	IO.PTR+%SC	;HOWEVER IF WE WANT OLD SYMBOL F
	ILE
1)		SKIPL	SYMFRM		;WE STILL NEED TO CONVERT SYMBOL
	S
1)		JRST	NOLOCS		;NO, DONT BOTHER
1)	
1)20	;HERE IF /SYMSEG, /SYFILE:RADIX50, OR C(.JBDDT) <> 0.
1)	;CONVERT THE SYMBOLS IN THE LS AREA TO RADIX50 AND PUT THEM IN C
	ORE.
1)	
Digital Equipment Corporation       28-AUG-79    Page 504
PCO Log Report


1)	LSREQ:
1)	IFN FTOVERLAY,<
1)		SKIPL	LNKMAX		;DID WE SEE ANY OVERLAYS?
1)		JRST	LSOVS		;YES, SPECIAL
1)	>
1)		.ERR.	(MS,0,V%L,L%I,S%I,SST,<Sorting symbol table>)
1)		PUSHJ	P,SYMINI	;DO THE MAGIC TO MOVE SYMBOLS UP
	 IN CORE
1)	LSREQ1:	PUSHJ	P,CHKPAG	;[645] INCASE PAGE FOR THE FIRST
	 TIME
1)		SKIPE	USYM		;IF NO UNDEFINED SYMBOLS
1)	;**;[772] Replace @ LSREQ1+2L	MCHC	23-Mar-78
1)		JRST	.+3		;[772] YES, AT END OF UND-SYM TA
	BLE
1)		MOVE	P4,PATSPC	;NEED TO LEAVE A HOLE FOR PATCHI
	NG
1)		PUSHJ	P,GETSST	;[715] GET FINAL SYMBOL START AD
	DR
1)	;**;[1111] Change @ LSREQ1+5L	MCHC	7-Aug-78
1)		HRRZS	P2,P4		;[1111] COPY RH IN CASE NOT ENOU
	GH
1)		MOVE	P2,P4		;COPY INCASE NOT ENOUGH
1)		SKIPE	PAG.S0(R)	;PAGING THIS AREA?
1)		SKIPE	USYM		;YES, BUT ALREADY SETUP IF UNDEF
	S
1)		CAIA			;DON'T HAVE TO WORRY
1)		PUSHJ	P,LSYP		;YES, GET RIGHT PAGES IN CORE
1)		SUB	P2,LW.S0(R)	;REMOVE PAGED BASE
1)		ADD	P2,TAB.LB(R)	;IN CORE
1)		CAMG	P2,TAB.AB(R)	;ENOUGH CORE?
1)		JRST	LSY1		;YES,
1)		SUB	P2,TAB.AB(R)	;GET EXTRA WE NEED
1)		MOVEI	P1,(R)		;FROM WHERE
1)		SETOM	LS.PP		;[754] PROHIBIT PAGING OF SYMBOL
	S
1)		PUSHJ	P,LNKCOR##	;GET IT
1)		  JRST	LSREQ1		;[645] NO CORE, LOOP BACK AND PA
	GE
1)		SKIPN	TAB.PG(R)	;[570] PAGING?
1)		JRST	LSREQ0		;[570] NO, FORGET IT
1)		MOVE	T1,P4		;[570] YES, UPDATE UW
1)		IORI	T1,.IPM		;[570] FROM MAX VIRT ADDR, IN P4
1)		MOVEM	T1,TAB.UW(R)	;[570]
1)	
1)21	LSREQ0:	MOVE	P2,P4		;[570] RELATIVE
1)		SUB	P2,LW.S0(R)	;REMOVE PAGED BASE
1)		ADD	P2,TAB.LB(R)	;FIX IN CORE
1)	LSY1:	SETZM	LS.PP		;[754]
1)		SKIPGE	SYMSEG		;[715]
1)		JRST	.+3		;[715] JUMP IF PSECT SPCIFIED
1)		MOVEM	P4,HC.S0(R)	;FOR .JBCOR
Digital Equipment Corporation       28-AUG-79    Page 505
PCO Log Report


 
 
1)		EXCH	P4,HL.S0(R)	;GET BASE OF UNDFS
1)		SKIPE	PAG.S1		;PAGING?
1)		SKIPA	T1,JOBPTR	;YES, LOAD CORRECT OFFSET
1)		MOVE	T1,LC.LB	;CODE OFFSET
1)		ADD	P4,LL.S0(R)	;PLUS STARTING OFFSET
1)		HRRZM	P4,.JBSYM(T1)	;FIXUP POINTER (ADDRESS ONLY)
1)		HRRZM	P4,JOB116	;AND FOR .SYM FILE
1)		MOVEI	T1,.IPS		;SIZE WE CARE ABOUT
1)		SUB	T1,LS.FR	;MINUS FREE
1)		MOVEM	T1,LSCNT	;LEFT IN THIS BLOCK
1)		SKIPGE	SYMSEG		;[715] PSECT NAME USED?
1)		SKIPA	T1,P4		;[715] YES, USED P4 INSTEAD
1)		MOVE	T1,HL.S0(R)	;SETUP CORE POINTER
1)		MOVEI	T2,2(T1)	;REL ADDRESS OF "TITLE" FOR PAT.
	.
1)		MOVEM	T2,TTLPTR
1)		SUB	T1,LW.S0(R)	;REMOVED PAGED BASE
1)		ADD	T1,TAB.LB(R)	;ADD FIXED BASE
1)		MOVEM	T1,TAB.PT(R)	;ABS POINTER TO NEXT FREE LOC
1)	
1)	
1)	;NOW OUTPUT THE SYMBOL PAT.. IN MODULE PAT.. AS THE LAST SYMBOL
1)	
1)		MOVE	W2,[RADIX50 04,PAT..]	;BE COMPATIBLE (ALMOST)
1)		SKIPGE	SYMSEG		;[715] PSECT NAME USED?
1)		SKIPA	W3,P4		;[715] YES, USE P4 INSTEAD
1)		HRRZ	W3,HL.S0(R)	;VALUE
1)		SUB	W3,PATSPC	;POINT TO BOTTOM OF AREA
1)		HLRE	T1,JOB117	;BUT TAKE INTO ACCOUNT UNDEFINED
	 SYMBOLS
1)		ADD	W3,T1		;WHICH ARE BETWEEN PAT.. AND .JB
	SYM
1)		ADD	W3,LL.S0(R)	;ADD IN OFFSET TO SEGMENT
1)		PUSHJ	P,SYMOUT	;LAST SYMBOL
1)		  JRST	SYDONE		;[715] EXCEEDED SPACE, ALL DONE
1)		TLZ	W2,740000	;MAKE RADIX50 0,PAT.. BE THE TIT
	LE
1)	;**;[1127] Insert @ LSY1+37L	JNG	14-Nov-78
1)		HRLI	W3,-4		;[1127] FOUR WORDS IN PAT..'S TA
	BLE
1)		PUSHJ	P,SYMOUT
1)		  SKIPA			;[715] EXCEEDED SPACE, ALL DONE
1)		PUSHJ	P,LSLOOP	;READ ALL OF SYMBOLS
1)		JRST	SYDONE		;ALL DONE
1)	
1)22	IFN FTOVERLAY,<
1)	LSOVX::	MOVEM	T1,LSCNT	;STORE WORDS LEFT IN THIS BLOCK
1)		SETZM	TTLPTR		;START AFRESH
1)		POPJ	P,
Digital Equipment Corporation       28-AUG-79    Page 506
PCO Log Report


1)	
1)	LSOVS:	HLRE	T2,PH.RDX	;GET - NO. OF SYMBOLS
1)		MOVM	T3,T2		;+
1)		ADD	T3,HL.S1	;HIGHEST LOCATION
1)		ADD	T3,SPACE	;PLUS BUFFER SPACE
1)		ADD	T3,PATSPC	;AND PATCHING SPACE
1)		IOR.	T3,.PGSIZ	;UP TO PAGE BOUND
1)		ADDI	T3,1		;NEXT FREE
1)		ADD	T3,T2		;START OF SYMBOLS
1)		HLL	T3,PH.RDX	;- COUNT
1)		MOVEM	T3,JOB116
1)		MOVEM	T3,.JBSYM(T1)	;STORE SYMBOL TABLE PTR
 
 
1)		JRST	NOLOCS		;BUT DON'T READ IN
1)	>
1)	
1)23	;HERE TO SETUP CORRECT LC/HC PAGES
1)	;WRITE OUT ALL OF CURRENT (UPTO START OF LAST LOC IN USE)
1)	;ALLOCATE INITIALLY 1 BLOCK (IT WILL EXPAND AS REQUIRED)
1)	
1)	LSYP:	HRLZ	T1,LW.S0(R)	;BASE
1)		HRR	T1,UW.S0(R)	;UPPER LIMIT
1)		PUSHJ	P,@[EXP LC.OUT##,HC.OUT##]-1(R)	;GO TO CORRECT R
	OUTINE
1)		SKIPGE	SYMSEG		;[715] PSECT SPECIFIED?
1)		SKIPA	T2,P4		;[715] YES,
1)		HRRZ	T2,HL.S0(R)	;THIS IS THE LOCATION WE REQUIRE
1)		ANDCMI	T2,.IPM		;WILL BE LOWER PAGE BOUND
1)		MOVEM	T2,LW.S0(R)	;STORE IT NOW
1)		IORI	T2,.IPM		;THENCE UPPER BOUND
1)		EXCH	T2,UW.S0(R)	;SWAP WITH CURRENT
1)		CAME	T2,UW.S0(R)	;IF IDENTICAL
1)		JRST	[MOVE	T1,UW.S0(R)	;GET UPPER LIMIT
1)			HRLI	T1,-.IPM(T1)	;GET LOWER LIMIT FOR THI
	S BLOCK
1)			PUSHJ	P,@[EXP LC.IN##,HC.IN##]-1(R)	;READ IN
	 TOP BLOCK
1)			JRST	LSYP1]		;AND CONTINUE
1)		HRLZ	T2,TAB.AB(R)	;WE MUST BLT DOWN THE LAST BLOCK
1)		TLZ	T2,.IPM		;AS IT MAY CONTAIN DATA
1)		HRR	T2,TAB.LB(R)
1)		MOVEI	T1,.IPS(T2)	;BASE OF FREE
1)		BLT	T2,-1(T1)	;MOVE IT
1)	LSYP1:	HRRZ	T1,TAB.LB(R)	;LOWEST LOC IN CORE
1)		ADDI	T1,.IPS		;FIRST BLOCK NOW CONTAINS DATA
1)		CAML	T1,TAB.AB(R)	;AREA ONLY ONE PAGE LONG?
1)		JRST	LSYP2		;YES, DON'T ZERO NEXT AREA
1)		HRL	T1,T1
1)		SETZM	(T1)		;ZERO IT
1)		ADDI	T1,1		;FORM BLT PTR
Digital Equipment Corporation       28-AUG-79    Page 507
PCO Log Report


1)		BLT	T1,@TAB.AB(R)	;CLEAR ALL OF THIS CORE
1)	
1)24	;NOW GIVE REST TO NEXT LOWER AREA
1)	
1)	LSYP2:	MOVE	T1,TAB.LB(R)	;GET BASE
1)		IORI	T1,.IPM		;MAKE IT ONE BLOCK LONG
1)		MOVEM	T1,TAB.AB(R)	;SO WE CAN CORRECTLY COUNT
1)		MOVEI	T1,-1(R)	;GET INDEX TO NEXT AREA
1)		SKIPN	TAB.LB(T1)	;FIND ONE SETUP (MUST BE)
1)		SOJA	T1,.-1		;SHOULD NEVER GET HERE ANYWAY
1)		MOVE	T2,TAB.AB(T1)	;GET HIGHEST IN USE
1)		ADDI	T2,1		;POINT TO NEXT FREE
1)		CAML	T2,TAB.LB(R)	;ALREADY HERE?
1)		POPJ	P,		;YES, NOTHING WE CAN DO ABOUT IT
1)		SUBI	T2,1		;UPPER LIMIT AGAIN
1)		MOVEM	T2,TAB.UB(T1)	;RESET IT FOR LOWER AREA
1)		HRRZI	T1,1(T2)	;NEXT FREE WHERE BLOCK WILL GOTO
1)		HRL	T1,TAB.LB(R)	;FROM WHERE IN LEFT
1)		HRRZM	T1,TAB.LB(R)	;NOW RESET IT
1)		MOVE	T2,T1		;GET A COPY
1)		BLT	T1,.IPM(T2)	;THIS BLOCK DOWN
1)		MOVS	T2,T2		;PUT FROM ADDR. IN RIGHT
 
 
1)		HRLI	T1,(T2)		;NOW FOR ZERO BLT
1)		HRRI	T1,1(T2)
1)		SETZM	(T2)
1)		TLO	T2,.IPM		;STILL HAVE TO SET TOP INUSE
1)		HLRZM	T2,TAB.AB(R)	;FOR 1 BLOCK
1)		BLT	T1,.IPM(T2)	;THROUGH THIS BLOCK
1)		POPJ	P,
1)	
****
2)18	;**;[1172] Replace @ GETS14	JNG	5-Jun-79
2)	;HERE WITH THE PSECT INDEX TO USE IN R, AND ITS NAME IN SSGNAM.
2)	;WE NOW WANT TO CALCULATE HOW FAR THE SYMBOL TABLE IS ALLOWED TO
	 EXTEND.
2)	;BELIEVE THE USER'S /UPTO SWITCH IF HE GAVE ONE, OTHERWISE STOP
	ONE BELOW
2)	;THE NEXT PSECT ORIGIN WE WOULD CROSS, OR STOP AT 777777 IF NO M
	ORE PSECTS.
2)	
2)	GETS14:	MOVE	P4,@RC.TB	;[1172] POINTER TO THIS PSECT'S
	RC BLOCK
2)		SKIPE	SYMLIM		;[1172] USER TYPE /UPTO?
2)		JRST	GETS20		;[1172] YES, BELIEVE IT
2)		MOVE	T4,RC.HL(P4)	;[1172] ADDR OF START OF PATCH A
	REA
2)		ADDI	R,1		;[1172] START THE SEARCH AT THE
	NEXT PSECT
2)	
Digital Equipment Corporation       28-AUG-79    Page 508
PCO Log Report


2)	
2)	;LOOP BACK HERE ON EACH NEW PSECT, LOOKING FOR ONE WHOSE ORIGIN
2)	;IS .GE. C(T4).
2)	
2)	GETS16:	CAMLE	R,RC.NO		;[1172] CHECKED THEM ALL YET?
2)		JRST	GETS18		;[1172] YES, GO USE 777777
2)		MOVE	T1,@RC.TB	;[1172] GET PSECT'S RC BLOCK
2)		MOVE	T2,RC.IV(T1)	;[1172] GET ORIGIN OF THIS PSECT
2)		CAMGE	T2,T4		;[1172] START ABOVE THE SYMSEG P
	SECT?
2)		AOJA	R,GETS16	;[1172] NO, MUST HAVE BEEN OVERL
	APPING PSECT
2)		MOVE	T3,RC.HL(T1)	;[1172] YES, CHECK FOR ZERO-LENG
	TH PSECT
2)		CAMG	T3,T2		;[1172] WOULD WE OVERWRITE ANYTH
	ING?
2)		AOJA	R,GETS16	;[1172] NO, IGNORE THIS PSECT
2)		SOSA	T2		;[1172] YES, LAST ADDR TO USE IS
	 ONE LESS
2)	GETS18:	MOVEI	T2,777777	;[1172] NO MORE PSECTS, USE END
	OF SECTION 0
2)		MOVEM	T2,SYMLIM	;[1172] STORE NEWLY CALCULATED L
	IMIT
2)	
2)	
2)	;NOW SET UP SOME FINAL THINGS FOR THE REST OF LINK, THEN RETURN.
2)	
2)	GETS20:	MOVE	R,RC.SG(P4)	;[1172] FETCH SEGMENT INDEX FOR
	PSECTS
2)		MOVE	T1,RC.HL(P4)	;[1172] START OF PATCH AREA
2)		MOVEM	T1,PATLOC	;[1172] REMEMBER FOR RST
2)		ADD	T1,PATSPC	;[1172] START OF REAL SYMBOL TAB
	LE
2)		MOVEM	T1,RC.HL(P4)	;[1172] UPDATE SIZE OF PSECT
2)		TRZ	T1,777		;[1172] ROUND DOWN TO PAGE BOUND
2)		CAMGE	T1,LOWLOC	;[1172] LOWEST LOCATION YET LOAD
	ED?
2)		MOVEM	T1,LOWLOC	;[1172] YES, SAVE FOR EXE FILE W
	RITER.
2)		POPJ	P,		;[1172] END OF GETSST
2)	
2)19	;HERE IF PAGING TO SETUP LC/HC AREA TO INSERT SYMBOLS INTO.
2)	;WRITE OUT ENTIRE WINDOW, THEN SET UP LAST PAGE ONLY.
2)	;AREA WILL EXPAND AS REQUIRED IN SYMOUT.
2)	
2)	LSYP:	HRLZ	T1,LW.S0(R)	;[1172] BOTTOM OF WINDOW
 
 
2)		HRR	T1,UW.S0(R)	;[1172] TOP
2)		PUSHJ	P,@TB.OUT##(R)	;[1172] WRITE ENTIRE WINDOW TO D
	ISK
Digital Equipment Corporation       28-AUG-79    Page 509
PCO Log Report


2)		MOVE	T1,TAB.AB(R)	;[1172] REDUCE WINDOW TO ONE PAG
	E
2)		ANDCMI	T1,.IPM		;[1172] NEW BOTTOM OF AREA
2)		SUBI	T1,1		;[1172] FIRST WORD BELOW NEW BAS
	E
2)		CAML	T1,TAB.LB(R)	;[1172] AREA ALREADY ONE PAGE?
2)		PUSHJ	P,GBCK.L##	;[1172] NO, SHRINK IT DOWN
2)		MOVE	T1,RC.HL(P4)	;[1172] GET FIRST ADDR TO STORE
	A SYMBOL IN
2)		SUB	T1,LL.S0(R)	;[1172] RELATIVE TO SEGMENT STAR
	T
2)		ANDCMI	T1,.IPM		;[1172] NEW BOTTOM OF WINDOW
2)		MOVEM	T1,LW.S0(R)	;[1172] STORE
2)		IORI	T1,.IPM		;[1172] NEW TOP OF WINDOW
2)		CAMN	T1,UW.S0(R)	;[1172] WHERE IT WAS ALREADY?
2)		POPJ	P,		;[1172] YES, DONE
2)		MOVEM	T1,UW.S0(R)	;[1172] NO, MUST READ IN THE DAT
	A
2)		HRL	T1,LW.S0(R)	;[1172] FORM TRANSFER WORD
2)		PJRST	@TB.IN(R)	;[1172] READ IN DATA AND RETURN
2)	
2)20	;**;[1172] Move down and change as indicated @ UDF0	JNG	
	5-Jun-79
2)	;HERE TO WRITE THE UNDEFINED SYMBOL TABLE.  THE TABLE IS GENERAT
	ED
2)	;BY SCANNING THE GLOBAL SYMBOL TABLE LOOKING FOR UNDEFINED SYMBO
	LS.
2)	;WE GENERATE ONE RADIX50 PAIR FOR EACH UNDEFINED SYMBOL, AND ADD
	ITIONAL
2)	;PAIRS IF ANY ADDITIVE FIXUPS ARE ENCOUNTERED.
2)	;
2)	;THE ONLY FIXUP TYPES HANDLED ARE ADDITIVE AND RIGHT AND LEFT HA
	LF CHAINED.
2)	;OTHER TYPES, SUCH AS SYMBOL FIXUPS AND POLISH, ARE DISCARDED HE
	RE.  THIS
2)	;IS DUE TO LACK OF A SYMBOL TABLE FORMAT SPEC, AND LACK OF DDT S
	UPPORT.
2)	;
2)	;ENTERED WITH:
2)	;
2)	;	P4/	POINTER TO RC BLOCK OF /SYMSEG PSECT
2)	;	R/	INDEX TO /SYMSEG AREA, LC OR HC
2)	
2)	
2)	;**;[1172] Replace @ UDF0	JNG	5-Jun-79
2)	DOUDFS:	MOVE	T1,TAB.PT(R)	;[1172] LINK'S ADDRESS OF NEXT W
	ORD
2)		SUB	T1,TAB.LB(R)	;[1172] FIND OFFSET IN WINDOW
2)		ADD	T1,LW.S0(R)	;[1172] FIND OFFSET IN SEGMENT
2)		ADD	T1,LL.S0(R)	;[1172] FORM ABSOLUTE ADDRESS
2)		HRLZM	T1,JOB117	;[1172] STORE IN LH(JOB117) FOR
Digital Equipment Corporation       28-AUG-79    Page 510
PCO Log Report


	A WHILE
2)		SETZM	SYMDEW		;[1172] DON'T NEED EXTRA ROOM FR
	OM SYMOUT
2)		MOVE	P2,HT.PRM	;GET HASH SIZE
2)		SKIPE	T1,@HT.PTR	;GET POINTER IF NON-ZERO
2)		JRST	UDFTRY		;SEE IF A REQUEST
2)	UDFNXT:	SOJGE	P2,.-2		;MORE?
2)		JRST	UDFDN		;NO
2)	
2)	UDFTRY:	ADD	T1,GS.LB	;ADD IN BASE
2)		MOVE	W1,(T1)		;GET FLAGS
2)		TXNN	W1,PS.REQ	;GLOBAL REQUEST
2)		JRST	UDFNXT		;NO, TRY NEXT SYMBOL
2)		DMOVE	W2,1(T1)	;GET SIXBIT SYMBOL & VALUE (REQU
	EST POINTER)
2)		PUSHJ	P,SXBR50	;CONVERT TO SIXBIT
2)		TXO	W2,R5.GLB	;MAKE GLOBAL DEFINITION
2)	;**;[1172] Replace @ UDFTRY+7L	JNG	5-Jun-79
2)		PUSHJ	P,SYMOUT	;[1172] STORE W2/W3 IN IMAGE
 
 
2)		  JRST	UDFDN		;[1172] NO MORE ROOM, CLOSE UP S
	HOP
2)		AOS	JOB117		;[1172] ANOTHER ONE STORED, BUMP
	 COUNT
2)		TXNE	W1,PS.FXP	;ANY ADDITIVE GLOBAL FIXUPS
2)		JRST	UDFGB		;YES, RECREATE THE REQUESTS
2)		JRST	UDFNXT		;[1172] NO, LOOK FOR ANOTHER SYM
	BOL
2)	
2)21	;THE LOOP BELOW FINDS THE S.FXP TRIPLET IN THE GS AREA, THEN CHA
	SES
2)	;THE CHAIN OF FIXUPS DEPENDING ON THIS SYMBOL THROUGH THE FX ARE
	A,
2)	;WRITING UNDEFINED SYMBOL TABLE ENTRIES FOR APPLICABLE FIXUPS AS
	 IT GOES.
2)	;
2)	;ENTER AT UDFGB.
2)	
2)	UDFGB0:	TXNE	W1,S.LST	;IS THIS THE LAST BLOCK
2)		JRST	UDFNXT		;[1172] YES
2)		ADDI	T1,.L		;NO, GET NEXT TRIPLET
2)	UDFGB:	HRRZ	T1,@HT.PTR	;GET POINTER AGAIN
2)		ADD	T1,GS.LB	;ADD IN BASE
2)		SKIPG	W1,.L(T1)	;GET NEXT FLAG WORD
2)		JRST	UDFERR		;MUST HAVE SIGN BIT ON
2)		TXNN	W1,S.FXP	;AND A FIXUP
2)		JRST	UDFGB0		;NOT YET
2)	;**;[1172] Replace @ UDFGB+6L	JNG	5-Jun-79
2)		MOVE	T1,.L+2(T1)	;[1172] GET VALUE
2)	UDFGB1:	ADD	T1,FX.LB	;RELOCATE IN FIXUP TABLE
Digital Equipment Corporation       28-AUG-79    Page 511
PCO Log Report


2)		SKIPL	W1,0(T1)	;GET FLAGS
2)		JRST	UDFERR		;JUST INCASE
2)	;**;[1160] Replace @ UDFGB1+3L	JNG	14-Apr-79
2)		TXNE	W1,FP.SYM	;[1160] FIXUP BASED ON UNDEFINED
	 SYMBOL?
2)		TXNN	W1,FS.FXR!FS.FXL ;[1160] CAN ONLY PUT OUT RH OR
	LH ADDITIVE
2)		JRST	UDFGB2		;[1160] CAN'T OUTPUT POLISH, SYM
	 FIXUPS, ETC.
2)		DMOVE	W2,1(T1)	;GET DATA WORDS
2)		PUSHJ	P,SXBR50	;CONVERT TO RADIX-50
2)		TXO	W2,R5.GLB	;MAKE INTO A GLOBAL DEFINITION
2)		TXO	W3,R5.FXA	;AND TURN ON ADDITIVE BIT
2)		TXNE	W1,FS.FXL	;LEFT HALF?
2)		TXO	W3,R5.FXL	;YES
2)	;**;[1172] Replace @ UDFGB1+13L	JNG	5-Jun-79
2)		PUSHJ	P,SYMOUT	;[1172] WRITE W2/W3 INTO THE IMA
	GE
2)		  JRST	UDFDN		;[1172] SPACE EXCEEDED, STOP
2)		AOS	JOB117		;[1172] OK, WROTE ANOTHER ONE
2)	UDFGB2:	HRRZ	T1,W1		;GET POINTER
2)		JUMPE	T1,UDFNXT	;[1172] ALL DONE IF ZERO
2)		JRST	UDFGB1		;GET NEXT BLOCK
2)	
2)	
2)	;HERE WHEN AN UNDEFINED SYMBOL WITH PS.FXP SET IS NOT FOLLOWED B
	Y A
2)	;SECONDARY TRIPLET WITH S.FXP SET.
2)	
2)	UDFERR:	JRST	UDFNXT		;[1172] SYMBOL TABLE FOULED UP
2)	
2)22	;HERE WHEN FINISHED WRITING THE UNDEFINED SYMBOL TABLE.
2)	;SET UP .JBUSY AND RETURN.
2)	
2)	UDFDN:	SKIPE	PAG.S1		;[1172] PAGING?
2)		SKIPA	T1,JOBPTR	;[1172] YES, LOAD CORRECT OFFSET
2)		MOVE	T1,LC.LB	;[1172] CODE OFFSET
 
 
2)		HRRZ	T2,JOB117	;[1172] GET NUMBER OF UNDEFINED
	SYMBOLS
2)		IMULI	T2,-2		;[1172] 2 WORDS/SYMBOL, WANT NEG
	ATIVE
2)		HRRM	T2,JOB117	;[1172] FORM ADDR,,-LEN
2)		MOVSS	T2,JOB117	;[1172] FORM -LEN,,ADDR
2)		MOVEM	T2,.JBUSY(T1)	;[1172] STORE IN IMAGE
2)		POPJ	P,		;[1172] DONE WITH UNDEFINED TABL
	E, RETURN
2)	
2)23	;SUBROUTINE TO DELETE THE GS AREA, AND CUT BACK MEMORY IF POSSIB
	LE.
Digital Equipment Corporation       28-AUG-79    Page 512
PCO Log Report


2)	
2)	;**;[1172] Move down and change as indicated	JNG	5-Jun-79
2)	GSDLT:
2)	IFE TOPS20,<			;[1113] DON'T SHRINK BACK ON TOP
	S-20
2)		SKIPN	.JBDDT(T1)	;SEE IF WE NEED LOCAL SYMBOLS
2)		SKIPE	SYMSEG		;EITHER FOR /DEB OR /SYMSEG
2)		JRST	GSNRED		;YES, DON'T CUT BACK CORE YET
2)		MOVEI	T1,GS.IX-1	;START AT AREA JUST LOWER
2)		SKIPN	TAB.LB(T1)	;FIND HIGHEST AREA IN USE
2)		SOJA	T1,.-1		;WILL GET THERE EVENTUALLY
2)		MOVE	T2,TAB.AB(T1)	;GET HIGHEST LOC IN USE IN IT
2)		IORI	T2,1777		;K BOUND
2)		ADDI	T2,2000		;EXTRA K FOR SAFETY
2)		CAML	T2,.JBREL	;ANYTHING TO GIVE BACK?
2)		JRST	GSNRED		;NO, REDUCED ALREADY
2)		CORE	T2,		;DELETE TOP PART
2)		  JRST	GSNRED		;NEVER CAN HAPPEN
2)		MOVE	T2,.JBREL	;GET NEW TOP
2)	;**;[773] Insert @ GSDLT+14L	JNG	30-Apr-78
2)		SKIPN	GS.LB		;[773] GS AREA ALREADY GONE?
2)		JRST	GSDLT1		;[773] YES, DON'T RECREATE IT
2)		MOVEM	T2,GS.AB	;RESET TABLE
2)		MOVEM	T2,GS.UB
2)		CAMLE	T2,GS.LB	;INCASE WE REDUCED IT ALL
2)		JRST	GSRED		;NO, ALL IS WELL
2)	;**;[773] Add label @ GSDLT+18L	JNG	30-Sep-78
2)	GSDLT1:	MOVEM	T2,TAB.UB(T1)	;[773] RESET HIGHEST FREE LOC AG
	AIN
2)		SETZM	GS.LB		;SO XX.ZAP CAN WORK
2)	GSRED:	.ERR.	(MS,.EC,V%L,L%I,S%I,RED,<Reducing low segment to
	 >)
2)		.ETC.	(COR,.EP,,,,.JBREL)
2)	;**;[1113] Change @GSNRED	DZN	25-Aug-78
2)	> ;END OF IFE TOPS20
2)	GSNRED:	PUSHJ	P,GS.ZAP	;GET RID OF GS
2)	;**;[1172] Replace @ GSNRED+1L	JNG	5-Jun-79
2)		POPJ	P,		;[1172] END OF GSDLT
2)	
2)24	;HERE TO WRITE THE DEFINED SYMBOLS INTO THE IMAGE.
2)	
2)	DOLOCS:	SKIPE	PAG.LS		;[1172] PAGING?
2)		PUSHJ	P,SYMINI	;[1172] YES, SET WINDOW TO END O
	F LS AREA
2)		MOVEI	T1,2		;[1172] NEED ENOUGH WARNING TO P
	UT A TITLE OUT
2)		MOVEM	T1,SYMDEW	;[1172] STORE FOR SYMOUT
2)		MOVE	T1,TAB.PT(R)	;[1172] COMPUTE START OF THIS TA
	BLE
2)		SUB	T1,TAB.LB(R)	;[1172] OFFSET IN WINDOW TO FIRS
	T AFTER USY
Digital Equipment Corporation       28-AUG-79    Page 513
PCO Log Report


2)		ADD	T1,LW.S0(R)	;[1172] OFFSET IN SEGMENT
2)		ADD	T1,LL.S0(R)	;[1172] FORM ABSOLUTE ADDRESS FO
	R RH(.JBSYM)
2)		HRLZM	T1,JOB116	;[1172] STORE IN LH(JOB116) A WH
	ILE
2)		PUSHJ	P,PATOUT	;[1172] WRITE THE PAT.. SYMBOL A
	ND MODULE
 
 
2)		SKIPN	SYMFUL		;[1172] ANY ROOM LEFT?
2)		PUSHJ	P,LSLOOP	;[1172] DO THE WORK
2)	
2)	
2)	;HERE WHEN THE SYMBOLS HAVE BEEN INSERTED INTO THE IMAGE.  UPDAT
	E .JBSYM.
2)	
2)		SKIPE	PAG.S1		;[1172] PAGING?
2)		SKIPA	T1,JOBPTR	;[1172] YES, JOBDAT'S IN DY
2)		MOVE	T1,LC.LB	;[1172] NO, IT'S IN LC
2)		HRRZ	T2,JOB116	;[1172] NUMBER OF WORD PAIRS WRI
	TTEN
2)		IMULI	T2,-2		;[1172] WANT -COUNT
2)		HRRM	T2,JOB116	;[1172] ADDR,,-LEN
2)		MOVSS	T2,JOB116	;[1172] -LEN,,ADDR
2)		MOVEM	T2,.JBSYM(T1)	;[1172] STORE IN JOBDAT
2)		POPJ	P,		;[1172] DONE WITH DOLOCS
2)	
2)25	;HERE TO MOVE SYMBOLS TO TOP OF CORE
2)	;IF SORTING PUT SORT BUFFER IN AREA GS
2)	
2)	;**;[1172] Move up and change as indicated @ SYMINI	JNG	
	5-Jun-79
2)	SYMINI:	SKIPL	UW.LS		;[1172] IF -1 THEN SYMBOL TABLE
	NOT OUTPUT YET
2)		JRST	RDSYM		;JUST READ IT BACK IN
2)		MOVE	T1,LSYM		;ADRESS OF LAST SYMBOL STORED +1
2)		SUBI	T1,1
2)		IORI	T1,.IPM		;BLOCK BOUND
2)		HRL	T1,LW.LS	;FORM  BLT WORD
2)		HRRZM	T1,UW.LS	;SIGNAL ALL OF SYMBOLS ON DSK
2)		PUSHJ	P,LS.OUT##	;AND OUTPUT IT
2)					;FALL INTO RDSYM TO READ IT BACK
2)	
2)	;**;[1172] Replace @ RDSYM	JNG	5-Jun-79
2)	RDSYM:	PUSHJ	P,FR.CNT##	;[1172] SEE HOW MUCH IS FREE
2)		LSH	T1,-1		;[1172] TAKE HALF OF IT FOR LS W
	INDOW
2)		ANDCMI	T1,.IPM		;[1172] KEEP ON A PAGE BOUND
2)		CAIGE	T1,2*.IPS	;[1172] BUT NEED AT LEAST TWO PA
	GES
2)		MOVEI	T1,2*.IPS	;[1172] SO FORCE AT LEAST THAT M
Digital Equipment Corporation       28-AUG-79    Page 514
PCO Log Report


	ANY
2)		MOVE	T2,LS.AB	;[1172] CALCULATE CURRENT SIZE O
	F LS AREA
2)		SUB	T2,LS.LB	;[1172] LAST - FIRST
2)		ADDI	T2,1		;[1172] PLUS 1
2)		CAML	T2,T1		;[1172] HAVE LESS THAN WE WANT?
2)		JRST	RDSYM2		;[1172] ALREADY BIG ENOUGH
2)		SUB	T1,T2		;[1172] HOW MUCH MORE WE NEED
2)		MOVEI	P1,LS.IX	;[1172] ARRANGE TO GET IT
2)		MOVE	P2,T1		;[1172] HOW MUCH TO GET
2)		PUSHJ	P,LNKCOR##	;[1172] SHUFFLE
2)		  PUSHJ	P,NO.COR##	;[1172] CANNOT HAPPEN
2)	
2)	
2)	;NOW READ THE LAST PAGE OF SYMBOLS INTO THE FIRST PAGE OF THE LS
	 AREA.
2)	;LSLOOP WILL QUICKLY FALL OFF THE BOTTOM (READING BACKWARDS), AN
	D
2)	;FILL THE ENTIRE WINDOW WITH THE NEXT LOWER PIECE.
2)	
2)	RDSYM2:	MOVE	T1,LSYM		;[1172] LAST WORD OF SYMBOLS + 1
2)		SUBI	T1,1		;[1172] LAST WORD IN USE
2)		ANDCMI	T1,.IPM		;[1172] BOTTOM OF NEW WINDOW
2)		MOVEM	T1,LW.LS	;[1172] SET FOR PAGING ROUTINES
 
 
2)		ADD	T1,LS.AB	;[1172] ADD WINDOW SIZE
2)		SUB	T1,LS.LB	;[1172] TO GET TOP OF WINDOW
2)		MOVEM	T1,UW.LS	;[1172] STORE FOR PAGING ROUTINE
	S
2)		MOVE	T1,LSYM		;[1172] FIRST UNUSED WORD AGAIN
2)		SUB	T1,LW.LS	;[1172] HOW FAR INTO WINDOW IT I
	S
2)		ADD	T1,LS.LB	;[1172] FIX IN MEMORY
2)		MOVEM	T1,LS.PT	;[1172] SAVE FOR GETSYM
2)		HRLZ	T1,LW.LS	;[1172] NOW FILL BOTTOM PAGE
2)		HRR	T1,LW.LS	;[1172] REST WILL BE FILLED BY P
	AGSYM
2)		IORI	T1,.IPM		;[1172] ROUND UP TO TOP OF PAGE
2)		PJRST	LS.IN##		;[1172] FILL THE WINDOW AND RETU
	RN
2)	
2)26	;LNKOV2 FILLS THE LS AREA WITH SYMBOL TRIPLETS, ZEROES THE LC AR
	EA,
2)	;AND THEN PUSHJ'S DIRECTLY TO LSLOOP TO CONVERT THE SYMBOLS TO
2)	;RADIX50 AND PUT A RUNTIME SYMBOL TABLE INTO THE LC AREA.  IT
2)	;THEN WRITES THE LC AREA TO THE APPROPRIATE PLACE IN THE OVERLAY
	 FILE.
2)	;
2)	;THIS IS AN INITIALIZATION ROUTINE CALLED BY LNKOV2 TO SET THING
	S UP
Digital Equipment Corporation       28-AUG-79    Page 515
PCO Log Report


2)	;BEFORE CALLING LSLOOP.
2)	
2)	IFN FTOVERLAY,<
2)	
2)	LSOVX::	MOVX	T1,.INFIN	;[1172] DON'T STOP FOR A SYMBOL
	LIMIT
2)		MOVEM	T1,SYMLIM	;[1172] SINCE NOT REALLY LOADING
	 INTO MEMORY
2)		SETZM	SYMDEW		;[1172] DON'T NEED ANY WARNING
2)		SETZM	SYMFUL		;[1172] HAVE LOTS OF ROOM FOR SY
	MBOLS
2)		SETZM	JOB116		;[1172] LSLOOP AOSES THIS FOR EV
	ERY SYMBOL
2)		SKIPN	LNKNO.		;[1172] IS THIS THE ROOT?
2)		PJRST	PATOUT		;[1172] YES, WRITE PAT.. AND RET
	URN
2)		MOVNI	T1,2		;[1172] NO, INIT TTLPTR
2)		MOVEM	T1,TTLPTR	;[1172] SO FIRST MODULE WILL BE
	RIGHT
2)		POPJ	P,		;[1172] RETURN TO LNKOV2
2)	> ;END IFN FTOVERLAY
2)	
2)27	;HERE TO WRITE THE PAT.. SYMBOL AND MODULE TO THE SYMBOL TABLE.
2)	
2)	PATOUT:	MOVE	W2,[RADIX50 04,PAT..]	;[1172] NAME
2)		MOVE	W3,PATLOC	;[1172] VALUE
2)		PUSHJ	P,SYMOUT	;[1172] WRITE IT OUT
2)		  JRST	[HRLI W3,-2	;[1172] SYMBOL WON'T FIT, JUST W
	RITE NAME
2)			SETZM SYMDEW	;[1172] IF IT WILL FIT
2)			JRST PATOU2]	;[1172] RE-JOIN COMMON CODE
2)		AOS	JOB116		;[1172] A SYMBOL PAIR SUCCESSFUL
	LY WRITTEN
2)		HRLI	W3,-4		;[1172] FOUR WORDS IN THIS MODUL
	E
2)	PATOU2:	MOVE	T1,TAB.PT(R)	;[1172] BEFORE WRITING THE TITLE
	,
2)		SUB	T1,TAB.LB(R)	;[1172] FIGURE OUT WHERE IT GOES
2)		ADD	T1,LW.S0(R)	;[1172] AS AN OFFSET INTO THE SE
	GMENT
2)		MOVEM	T1,TTLPTR	;[1172] SAVE FOR LTITLE
2)		TLZ	W2,740000	;[1172] MAKE 0,PAT.. BE THE TITL
	E
2)		PUSHJ	P,SYMOUT	;[1172] WRITE THE TITLE
2)		  CAIA			;[1172] OOPS! SEE WHAT WENT WRON
	G
2)		JRST	PATOU4		;[1172] OK, NOW GO WRITE THE REA
	L SYMBOLS
2)		SKIPN	SYMDEW		;[1172] 4,PAT.. FAILED ABOVE? (D
	ON'T USE SYMFUL)
2)		JRST	[SETZM JOB116	;[1172] YES, THERE WON'T BE A SY
Digital Equipment Corporation       28-AUG-79    Page 516
PCO Log Report


	MBOL TABLE
2)			POPJ P,]	;[1172] JUST RETURN
2)		SETZM	SYMDEW		;[1172] USE OUR RESERVE FOR PAT.
	.'S TITLE
 
 
2)		PUSHJ	P,SYMOUT	;[1172] WRITE IT
2)		  JFCL			;[1172] CAN'T HAPPEN
2)	PATOU4:	AOS	JOB116		;[1172] ANOTHER SYMBOL WRITTEN
2)		POPJ	P,		;[1172] DONE
2)	
**************
1)25		TXNE	W1,PT.SYM	;ONLY WANT REAL SYMBOLS
****
2)28	;**;[1172] Insert @ LSLOOP+5L	JNG	5-Jun-79
2)		SKIPE	SYMFUL		;[1172] SKIPPING FOR LAST MODULE
	 NAME?
2)		JRST	LSLOOP		;[1172] YES, REJECT ALL OTHER RA
	NDOM SYMBOLS
2)		TXNE	W1,PT.SYM	;ONLY WANT REAL SYMBOLS
**************
1)25		  POPJ	P,		;[715] EXCEEDED SPACE, RETURN
1)		SKIPGE	LSCNT		;DO WE HAVE SOMETHING TO GIVE BA
	CK?
1)		PUSHJ	P,RDUSYM	;YES, SAFE TO DO SO NOW
1)		JRST	LSLOOP		;AND BACK FOR MORE
1)	
1)	LSLUPC:	PUSHJ	P,SYMOUT	;OUTPUT IT
1)		  POPJ	P,		;[715] EXCEEDED SPACE, RETURN
1)		PUSH	P,W3		;SAVE ADDRESS
****
2)28	;**;[1172] Replace @ LSLUP1+1L	JNG	5-Jun-79
2)		  JRST	[SETZM SYMDEW	;[1172] GO INTO FIND MODULE NAME
	 MODE
2)			JRST LSLOOP]	;[1172] START THE HUNT
2)		AOS	JOB116		;[1172] ANOTHER SYMBOL STORED
2)		JRST	LSLOOP		;AND BACK FOR MORE
2)	
2)	LSLUPC:	MOVEI	T1,4		;[1172] NEED FOUR WORDS OR NOTHI
	NG
2)		MOVEM	T1,SYMDEW	;[1172] SO BUMP WARNING LEVEL
2)		PUSHJ	P,SYMOUT	;OUTPUT IT
2)		  JRST	[SETZM SYMDEW	;[1172] WON'T BOTH FIT
2)			JRST LSLOOP]	;[1172] CLOSE OFF TABLE AND STOP
2)		AOS	JOB116		;[1172] ANOTHER PAIR OUT
2)		MOVEI	T1,2		;[1172] PUT SYMOUT CUTOFF BACK
2)		MOVEM	T1,SYMDEW	;[1172] NEXT PAIR GUARANTEED TO
	FIT
2)		PUSH	P,W3		;SAVE ADDRESS
**************
1)26	;HERE TO GET NEXT SYMBOL BLOCK
Digital Equipment Corporation       28-AUG-79    Page 517
PCO Log Report


****
2)29	;HERE ON A TITLE IN THE LS AREA.
2)	
2)	;**;[1172] Move up and change as indicated	JNG	5-Jun-79
2)	LTITLE:	TXNE	W1,PT.PSC	;[1132] JUST A PSECT DEFINITION?
2)		JRST	LSLOOP		;[1132] YES, DON'T PUT IN SYMBOL
	 TABLE
2)		PUSHJ	P,SXBR50	;CONVERT TO RADIX-50
2)		TXNE	W1,PT.BLK	;ONLY A FAIL BLOCK HEADER?
2)		JRST	BTITLE		;YES
2)		MOVE	T2,TTLPTR	;GET ADDRESS OF LAST PROG
2)		HRRZ	T1,TAB.PT(R)	;GET THIS ADDRESS
2)		SUB	T1,TAB.LB(R)	;MINUS OFFSET
2)		ADD	T1,TAB.LW(R)	;PLUS BASE OF WINDOW
2)		MOVEM	T1,TTLPTR	;SAVE FOR NEXT
2)		SUB	T1,T2		;GET DIFFERENCE
2)		MOVN	T1,T1		;NEGATE
2)		HRL	W3,T1		;FIXUP POINTER
 
 
2)		PUSH	P,W2		;SAVE SYMBOLS
2)		PUSH	P,W3
2)	TTLLUP:	MOVX	T1,S.TTL!S.SEG	;FLAGS
2)		PUSHJ	P,GETAST	;GET EXTENSION TRIPLET
2)		  SETZB	W2,W3		;ONLY HERE IF DEFINED BY /SWITCH
2)		SKIPE	W3		;IF ANY HIGH SEG STUFF
2)		MOVE	W2,W3		;USE IT
2)		POP	P,W3		;GET W3 BACK
2)		HLR	W3,W2		;FIX IT UP
2)		POP	P,W2
2)		PUSHJ	P,SYMOUT	;OUTPUT PSEUDO SYMBOL
2)	;**;[1172] Replace @ TTLLUP+9L	JNG	5-Jun-79
2)		  JRST	[SETZM SYMDEW	;[1172] USE THE RESERVE TO STORE
	 THIS TITLE
2)			JRST .-1]	;[1172] TRY AGAIN
2)		AOS	JOB116		;[1172] COUNT ANOTHER SYMBOL PAI
	R
2)		SKIPE	SYMFUL		;[1172] WAS THIS OUR LAST TITLE?
2)		POPJ	P,		;[1172] YES, QUIT, SINCE NO MORE
	 ROOM
2)		JRST	LSLOOP		;RETURN
2)	
2)	
2)	
2)	BTITLE:	SKIPE	SYMFUL		;[1172] ROOM FOR THIS?
2)		JRST	LSLOOP		;[1172] NO, DON'T STORE IT
2)		TXO	W2,R5.LCL!R5.GLB	;MAKE RADIX50 14,SYM
2)		HRRZ	W3,W3		;BLOCK LEVEL ONLY
2)		JRST	LSLUP1		;AND TREAT AS LOCAL SYMBOL
2)	
2)30	;HERE TO GET NEXT SYMBOL BLOCK
Digital Equipment Corporation       28-AUG-79    Page 518
PCO Log Report


**************
1)26		MOVNI	T1,3
1)		ADDB	T1,LSCNT	;REDUCE COUNT IN THIS BLOCK
1)		JRST	CPOPJ1		;SKIP RETURN
1)	
1)	;HERE TO GIVE BACK TOP BLOCK OF SYMBOLS
1)	;CAN ONLY BE DONE IF WE HAVE FINISHED WITH CURRENT SYMBOL
1)	;AND ITS SECONDARY TRIPLETS
1)	;SPECIFICALLY TITLE SECONDARIES MUST NOT BE DELETED UNTIL
1)	;TITLE IS OUTPUT
1)	
1)	RDUSYM:	MOVE	T1,LS.PT	;GET LOWEST ADDRESS WE STILL NEE
	D
1)		IORI	T1,.IPM		;FORM BLOCK BOUND
1)		MOVE	T2,LS.AB	;PREV TOP
1)		SUBI	T2,(T1)		;LENGTH
1)		JUMPE	T2,CPOPJ	;JUST IN CASE
1)		HRLZ	T3,T1		;FORM BLT PTP
1)		HRRI	T3,1(T1)
1)		SETZM	(T1)		;CLEAR FIRST WORD
1)		EXCH	T1,LS.AB	;SET IT SO
1)		BLT	T3,(T1)
1)		MOVEI	T1,.IPS		;RESET COUNT
1)		ADDM	T2,LSCNT	;RESET WORD COUNT
1)		MOVN	T2,T2		;NEGATE IT
1)		SKIPE	UW.LS		;LEAVE ALONE IF NOT PAGING
1)		ADDM	T2,UW.LS	;ADJUST UPPER WINDOW
1)		POPJ	P,
1)	
 
 
****
2)30	;**;[1172] Delete @ GETSYM+6L	JNG	5-Jun-79
2)		JRST	CPOPJ1		;SKIP RETURN
2)	
**************
1)27		SKIPE	T1,FX.LB	;ANY FIXUPS LEFT
1)		SOJA	T1,.+2		;YES, BETTER LEAVE AREA WHERE IT
	 IS
1)		MOVE	T1,.JBREL	;MOVE LAST BLOCK TO A SAFE PLACE
1)		MOVE	T2,T1		;GET A COPY FOR END OF BLT
1)		ANDCMI	T1,.IPM		;AT TOP OF CORE
1)		CAMG	T1,LS.LB	;SAME AREA BLT FROM/TO?
1)		JRST	PAGSY2		;YES, DON'T CLEAR IT!
1)		MOVEI	T3,-1(T1)	;END OF VACATED AREA
1)		CAMLE	T3,LS.AB	;CLEAR ALL OF IT?
1)		MOVE	T3,LS.AB	;NO, JUST PART NOT DONE
1)		HRL	T1,LS.LB	;SO WE HAVE THE HOLE IN THE MIDD
	LE
1)		BLT	T1,(T2)		;GO
1)		HRRZ	T1,LS.LB	;NOW TO ZERO THE JUNK WE LEFT BE
Digital Equipment Corporation       28-AUG-79    Page 519
PCO Log Report


	HIND
1)		SETZM	(T1)		;FIRST WORD
1)		HRL	T1,T1
1)		ADDI	T1,1		;BLT PTR
1)		BLT	T1,(T3)		;CLEAR 200 WORDS (USUALLY)
1)	PAGSY2:	MOVE	T1,T2		;
1)		MOVEM	T1,LS.UB	;ABSOLUTE NEW TOP
1)		MOVEM	T1,LS.AB	;NO FREE SPACE (AB SAME)
1)		SUB	T1,LS.LB	;+DIFF (TOTAL AREA - 1)
1)		ANDCMI	T1,.IPM		;DON'T COUNT PART IN USE
1)		ADDM	T1,LS.LB	;FIXUP PTRS
1)		ADDM	T1,LS.PT
1)		MOVEI	T1,LS.IX	;ACCOUNT FOR NEW FREE SPACE
1)		PUSHJ	P,ADJ.L		;BY GIVING IT TO NEXT LOWER AREA
1)	
1)28	;NOW CHECK TO SEE IF AREA IS BIG ENOUGH
1)	
1)	PAGSY1:	PUSHJ	P,FR.CNT##	;SEE WHATS FREE
1)		LSH	T1,-1		;CUT IN HALF
1)		ANDCMI	T1,.IPM		;BUT KEEP ON A BLOCK BOUND
1)		JUMPE	T1,[MOVEI T1,(R)	;AREA
1)			MOVEI	T2,2*.IPS	;SIZE
1)			PUSHJ	P,EXPSYM	;INCREASE SYMBOL SIZE
1)			MOVNI	T1,2*.IPS	;NOW GIVE BACK SPACE
1)			ADDM	T1,TAB.AB(R)
1)			JRST	PAGSY1]		;AND TRY AGAIN
1)		CAMLE	T1,LW.LS	;DO WE NEED ALL OF THIS SPACE
1)		MOVE	T1,LW.LS	;NO, JUST USE ENOUGH
1)		MOVN	T1,T1		;-INCREASE IN SIZE
1)		ADDM	T1,LS.LB	;ADJUST LOWER BOUND
1)		MOVEI	T2,LS.IX-1	;NOW TO FIND NEXT LOWER BOUND
1)		SKIPN	TAB.LB(T2)	;IN USE
1)		SOJA	T2,.-1
1)		MOVE	T3,TAB.AB(T2)	;GET UPPER BOUND OF NEXT LOWER
1)		CAML	T3,LS.LB	;IS THERE ENOUGH ROOM?
1)		AOJA	T3,[SPUSH <P1,P2>	;SAVE
1)			MOVEI	P1,LS.IX	;AREA TO EXPAND
1)			MOVM	P2,T1		;  AND SIZE
1)			ADDM	P2,LS.LB	;ADD BACK
 
 
1)			PUSHJ	P,LNKCOR##	;GET THE SPACE
1)			  PJRST	NO.COR##	;SHOULD NEVER OCCUR
1)			SPOP	<P2,P1>		;RESTORE
1)			PJRST	PAGSYM]		;GO GET SYMBOLS
1)		MOVE	T3,LS.LB	;BOTTOM OF THIS AREA
1)		SUBI	T3,1		;-1 IS TOP OF NEXT
1)		MOVEM	T3,TAB.UB(T2)	;TAKE IT ALL (SHUFFLER WILL GET
	US OUT OF TROUBLE)
1)		ADDM	T1,LW.LS	;BACKUP WINDOW
1)		HRLZ	T1,LW.LS	;FORM INPUT PTR
Digital Equipment Corporation       28-AUG-79    Page 520
PCO Log Report


1)		HRR	T1,UW.LS	;LOWER ,, UPPER
1)		PUSHJ	P,LS.IN##	;INPUT AREA
1)		JRST	CPOPJ1		;SKIP RETURN
1)	
****
2)31	;**;[1172] Replace @ PAGSYM+3L	JNG	5-Jun-79
2)		HRLZ	T1,LS.LB	;[1172] MOVE FIRST BLOCK OF SYMB
	OLS
2)		HRR	T1,LS.AB	;[1172]   UP TO LAST BLOCK OF LS
	 AREA
2)		ANDCMI	T1,.IPM		;[1172] NOW HAVE SRC,,DEST
2)		BLT	T1,@LS.AB	;[1172] MOVE THE DATA
2)		MOVE	T1,LS.AB	;[1172] CHECK TO SEE IF LAST TIM
	E
2)		ANDCMI	T1,.IPM		;[1172] ACCOUNT FOR PAGE WE KEPT
2)		MOVEI	T2,.IPM		;[1172] MASK FOR PAGE OFFSET
2)		ANDM	T2,LS.PT	;[1172] OFFSET TO CURRENT SYMBOL
2)		ADDM	T1,LS.PT	;[1172] MOVE POINTER TO LAST PAG
	E OF AREA
2)		SUB	T1,LW.LS	;[1172] BOTTOM ADDR IF WE FINISH
	ED THIS TIME
2)		SUBI	T1,1		;[1172] GET LOCATION BELOW FIRST
	 USED
2)		CAML	T1,LS.LB	;[1172] LS AREA TOO BIG (LAST TI
	ME)?
2)		PUSHJ	P,GBCK.L##	;[1172] YES, GET RID OF BOTTOM P
	ART
2)		MOVE	T1,LW.LS	;[1172] GET OLD LOWER WINDOW ADD
	RESS
2)		IORI	T1,.IPM		;[1172] THE END OF THAT PAGE
2)		MOVEM	T1,UW.LS	;[1172] FORM NEW UPPER WINDOW
2)		ADD	T1,LS.LB	;[1172] SUBTRACT LENGTH OF AREA
2)		SUB	T1,LS.AB	;[1172] TO FORM LOWER WINDOW
2)		MOVEM	T1,LW.LS	;[1172] STORE FOR PAGING ROUTINE
	S
2)		HRLZ	T1,T1		;[1172] NOW TO READ IN THE DATA
2)		HRR	T1,UW.LS	;[1172] TRANSFER WORD TO WHOLE A
	REA
2)		SUBI	T1,.IPS		;[1172] BUT WE ALREADY HAVE LAST
	 PAGE
2)		PUSHJ	P,LS.IN		;[1172] FILL UP THE AREA
2)		JRST	CPOPJ1		;[1172] SKIP RETURN
2)	
**************
1)30	SYMOUT:	AOS	T1,TAB.PT(R)	;SEE IF ENOUGH TO STORE 2 WORDS
1)		SKIPG	T2,SYMLIM	;[715] IS IT LIMITED BY NEXT PSE
	CT?
1)		JRST	SYMO4		;[715] NO,
1)		PUSH	P,T1		;[715] YES, SAV T1
1)		SUB	T1,LC.LB	;[715] MINUS WINDOW
1)		ADD	T1,LW.LC	;[715] CONVERT TO VIRTUAL ADDR
Digital Equipment Corporation       28-AUG-79    Page 521
PCO Log Report


1)		CAMGE	T1,SYMLIM	;[715] EXCEEDED THE LIMIT
1)		JRST	[POP	P,T1		;[715] RESTURE T1
1)			JRST	SYMO4]	;[715] AND RETURN
1)		SKIPN	SSGNAM		;[727] HAVE A NAME TO OUTPUT?
1)		JRST	SYMOE1		;[727] NO, JUMP OVER OUTPUTTING
	NAME
1)		.ERR.	(MS,.EC,V%L,L%W,S%W,ISS,<Insufficient space for
	symbol table>)
****
2)33	;**;[1172] Move up @ SXBR50	JNG	5-Jun-79
2)	;SXBR50 -- SUBROUTINE TO CONVERT SIXBIT TO RADIX-50
 
 
2)	;CALLED BY
2)	;	MOVE	W2,SIXBIT WORD
2)	;	PUSHJ	P,SXBR50
2)	;RETURN
2)	;	RADIX-50 IN W2
2)	;USES T1, T2
2)	
2)	SXBR50:	MOVE	T2,W2		;GET SIXBIT SYMBOL
2)		SETZ	W2,		;WHERE TO STORE RADIX50 SYMBOL
2)		SETZ	T1,		;CLEAR RECEIVING ACC
2)		LSHC	T1,6		;GET NEXT CHAR
2)		IMULI	W2,50		;MULTIPLE BY 50
2)		ADD	W2,SXBTAB(T1)	;ADD IN NEW CHAR
2)		JUMPN	T2,.-4		;NOT DONE YET
2)		POPJ	P,
2)	
2)	DEFINE SXBCHR (CHR)<
2)	 IRPC CHR,<
2)	  RADIX50 0,CHR
2)	>>
2)	
2)		XALL
2)	SXBTAB:	SXBCHR (    $%        . 0123456789       ABCDEFGHIJKLMNO
	PQRSTUVWXYZ     )
2)		SALL
2)	
2)34	;HERE TO WRITE THE RADIX-50 SYMBOL IN W2/W3 TO THE IMAGE.
2)	;RETURNS NON-SKIP, MESSAGE PRINTED, IF SYMBOL WON'T FIT BELOW SY
	MLIM.
2)	;SYMBOL WON'T FIT IF IT IS WITHIN C(SYMDEW) WORDS OF PASSING SYM
	LIM.
2)	
2)	;**;[1172] Replace @ SYMOUT	JNG	5-Jun-79
2)	SYMOUT:	MOVE	T1,TAB.PT(R)	;[1172] ADDRESS TO STORE INTO NE
	XT
2)		AOS	T2,T1		;[1172] LAST ADDRESS THIS SYMBOL
	 WILL USE
2)		SUB	T2,TAB.LB(R)	;[1172] CONVERT TO OFFSET IN SEG
Digital Equipment Corporation       28-AUG-79    Page 522
PCO Log Report


	MENT
2)		ADD	T2,TAB.LW(R)	;[1172] (USUALLY SAME AS VIRTUAL
	 ADDRESS)
2)		ADD	T2,LL.S0(R)	;[1172] MAKE SURE IT'S A VIRTUAL
	 ADDRESS
2)		ADD	T2,SYMDEW	;[1172] RESPECT DISTANT EARLY WA
	RNING FACTOR
2)		CAMG	T2,SYMLIM	;[1172] WOULD WE STORE BEYOND LE
	GAL BOUNDS?
2)		JRST	SYMOU2		;[1172] NO, CONTINUE
2)		SKIPE	SYMFUL		;[1172] ALREADY ISSUED A MESSAGE
	?
2)		POPJ	P,		;[1172] YES, DONT SAY IT AGAIN
2)		SETOM	SYMFUL		;[1172] REMEMBER FOR NEXT TIME &
	 CALLERS
2)		.ERR.	(MS,.EC,V%L,L%W,S%W,ISS,<Insufficient space for
	symbol table>)
**************
1)30		JRST	SYMOE2		;[727]
1)	SYMOE1:	.ERR.	(MS,.EC,V%L,L%W,S%W,ISS)
1)		.ETC.	(STR,,,,,,<--table truncated>)
1)	SYMOE2:	SOS	TAB.PT(R)	;[727] DECREMENT ONE
1)		POP	P,T1		;[715]
1)		POPJ	P,		;[715] ERROR RETURN
1)	SYMO4:	CAMG	T1,TAB.AB(R)
1)		JRST	SYMO1		;YES
1)					;SEE IF WE CAN JUST EXPAND
1)		CAML	T1,TAB.UB(R)	;INTO FREE SPACE?
1)		JRST	SYMO2		;NO, EXPAND OR WRITE PAGE OUT
1)		MOVEI	T2,.IPS		;PAGE SIZE
1)		ADDM	T2,TAB.AB(R)	;ACCOUNT FOR IT
 
 
1)		SKIPE	UW.S0(R)	;IF PAGING THIS SEGMENT
1)		ADDM	T2,UW.S0(R)	;INCREASE WINDOW
1)					;FALL INTO SYMO1
1)	
1)	SYMO1:	AOS	T1,TAB.PT(R)	;POINT TO NEXT FREE
1)		DMOVEM	W2,-2(T1)	;STORE SYMBOL & VALUE
1)	IFN FTOVERLAY,<
****
2)34	;**;[1172] Replace @ SYMOE1-1L	JNG	5-Jun-79
2)		POPJ	P,		;[1172] ERROR RETURN
2)	
2)35	;HERE IF NOT PAST SYMLIM.  CHECK TO SEE IF THE AREA/WINDOW IS BI
	G ENOUGH.
2)	
2)	SYMOU2:	CAMG	T1,TAB.AB(R)	;[1172] STILL ROOM IN THE AREA?
2)		AOJA	T1,SYMOU8	;[1172] YES, GO STORE THE SYMBOL
2)		SETOM	LS.PP		;[1172] DON'T SHRINK THE LS AREA
2)		MOVE	P1,R		;[1172] SEGMENT TO EXPAND
Digital Equipment Corporation       28-AUG-79    Page 523
PCO Log Report


2)		MOVEI	P2,.IPS		;[1172] BY ONE PAGE
2)		PUSHJ	P,LNKCOR##	;[1172] EXPAND
2)		  PUSHJ	P,NO.COR##	;[1172] SHOULD NEVER GET HERE
2)		SETZM	LS.PP		;[1172] RESTORE
2)	
2)	IFN FTOVERLAY,<
2)		SKIPL	LNKMAX		;[1172] LSLOOP CALLED FROM LNKOV
	2?
2)		SKIPN	PAG.S0(R)	;[1172] AND LNKCOR STARTED AREA
	PAGING?
2)		CAIA			;[1172] NO
2)		PUSHJ	P,NO.COR##	;[1172] YES, LNKOV2 CAN'T HANDLE
	 THAT
2)	> ;END IFN FTOVERLAY
2)	
2)		PUSHJ	P,CHKPAG	;[1172] FIX JOBDAT IF JUST START
	ED PAGING
2)		SKIPN	TAB.PG(R)	;[1172] AREA NOW PAGING?
2)		JRST	SYMOUT		;[1172] NO, GO TRY AGAIN
2)		MOVE	T1,LW.S0(R)	;[1172] YES, MUST UPDATE UW
2)		ADD	T1,TAB.AB(R)	;[1172] LNKCOR SOMETIMES DOES
2)		SUB	T1,TAB.LB(R)	;[1172] BUT SOMETIMES IT DOESN'T
2)		MOVEM	T1,UW.S0(R)	;[1172] SO MAKE SURE IT'S RIGHT
2)		ANDCMI	T1,.IPM		;[1172] FIRST ADDRESS IN PAGE WE
	 JUST ADDED
2)		CAML	T1,HC.S0(R)	;[1172] ANY DATA FURTHER ON IN O
	VERFLOW FILE?
2)		JRST	SYMOUT		;[1172] NO, JUST LEAVE NEW PAGE
	ZERO
2)		HRLZ	T1,T1		;[1172] YES, MUST FILL IN NEW PA
	GE
2)		HRR	T1,UW.S0(R)	;[1172] OTHERWISE WE LOSE DATA
2)		PUSHJ	P,@TB.IN(R)	;[1172] DO THE I/O
2)		JRST	SYMOUT		;[1172] AND TRY AGAIN
2)	
2)	
2)	;HERE WHEN ALL IS OK TO STORE THE NEW SYMBOL.
2)	
2)	SYMOU8:	DMOVEM	W2,-2(T1)	;[1172] DO THE STORE
2)		MOVEM	T1,TAB.PT(R)	;[1172] UPDATE THE PT FOR NEXT T
	IME
2)	
2)	IFN FTOVERLAY,<
**************
1)30		POPJ	P,
1)	
1)	;HERE WHEN NOT ENOUGH ROOM
1)	SYMO2:	SKIPE	PAG.S0(R)	;PAGING?
 
 
1)		JRST	SYMO3		;YES, NOT WORTH EXPANDING, JUST
Digital Equipment Corporation       28-AUG-79    Page 524
PCO Log Report


	OUTPUT IT
1)		MOVE	T1,R		;EITHER LC.IX OR HC.IX
1)		MOVEI	T2,.IPS		;EXPAND THIS MUCH
1)		PUSHJ	P,EXPSYM	;GET SPACE
1)		JRST	SYMO1		;AND STORE
1)	
1)31	;SUBROUTINE TO EXPAND CORE, BUT NOT TO PAGE SYMBOLS
1)	;USUALLY CALLED TO CAUSE OTHER AREA TO START PAGING
1)	;CALLED BY
1)	;	MOVEI	T1,AREA
1)	;	MOVEI	T2,SIZE
1)	;	PUSHJ	P,EXPSYM
1)	
1)	EXPSYM:	PUSHJ	P,.SAVE2##	;USES P1, P2
1)		SETOM	LS.PP		;PROHIBIT PAGING OF SYMBOLS
1)		DMOVE	P1,T1		;GET ARGS
1)		PUSHJ	P,LNKCOR##	;MUST BE ABLE TO GET IT
1)		  JRST	NO.COR##	;SHOULD NEVER HAPPEN
1)	
1)	
****
2)35	;**;[1172] Delete @ SYMOU2-3L	JNG	5-Jun-79
2)	
2)36	;**;[1172] Move up OLDSYM, SAVSYM, WRTSYM, JOBSET, and HJBSET	
	JNG	5-Jun-79
2)	;HERE FOR OLD FORM SYMBOLS (RADIX-50)
2)	;IF IN CORE WRITE THEM OUT WITH THREE INFORMATION WORDS AT FRONT
2)	;HEADER, .JBSYM (116) AND .JBUSY (117)
2)	;HEADER IS 776(TYPE) ,, LENGTH
2)	;OTHER TWO WORDS ARE RELATIVE TO ZERO
2)	;.JBSYM MUST HAVE A NEGATIVE LEFT HALF
2)	;.JBUSY IS ZERO IF NO UNDEFINED SYMBOLS
2)	
2)	OLDSYM:	MOVEI	T1,MC		;USE MAP CHAN INCASE PAGING LC
2)		MOVEM	T1,IO.CHN
2)		MOVE	T1,IO.PTR+%SC	;POINT TO CORRECT DATA
2)		MOVEM	T1,IO.PTR+MC
2)		PUSHJ	P,DVCHN.##
2)		MOVSI	T2,(Z MC,)	;RESET CHAN #
2)		MOVEM	T2,I.CHN(T1)	;SINCE %SC IS THERE CURRENTLY
2)		HLRO	T2,JOB116	;NUMBER OF SYMBOLS
2)		MOVM	T2,T2
2)		LSH	T2,-.DBS2W	;[650] INTO BLOCKS (ASSUME FEW U
	NDEFS)
2)		MOVEM	T2,I.EST(T1)
2)		MOVE	T2,VERNUM	;GET VERSION OF CORE IMAGE
2)		SKIPN	I.VER(T1)	;SKIP IF SET BY SWITCH
2)		MOVEM	T2,I.VER(T1)	;NO, SO SET IT
2)		PUSHJ	P,DVNAM.##	;MAKE SURE NAME SETUP
2)		PUSHJ	P,DVOPN.##	;INIT DEV
2)		PUSHJ	P,DVENT.##	;DO ENTER
Digital Equipment Corporation       28-AUG-79    Page 525
PCO Log Report


2)					;NOW TO STORE THREE INFO WORDS
2)		HLRE	T1,JOB116	;NO. OF DEFINED SYMBOLS
2)		HLRE	T2,JOB117	;NO. OF UNDEFS
2)		MOVM	T1,T1		;+
2)		MOVM	T2,T2
2)		ADDI	T2,2(T1)	;PLUS TWO EXTRA WORDS
2)		HRLI	T2,776		;BLOCK TYPE FOR LINK
 
 
2)		SKIPN	T1,JOB117	;.JBUSY IF NON-ZERO
2)		MOVE	T1,JOB116	;OTHERWISE .JBSYM
2)		HRRZ	T1,T1		;REMOVE NEG LEFT HALF
2)		SUB	T1,LL.S0(R)	;REMOVE ORIGIN
2)		SUB	T1,LW.S0(R)	;INCASE PAGING
2)		ADD	T1,TAB.LB(R)	;FIX IN CORE
2)	
2)37	;NOW PUT HEADER WORDS IN CORE IMAGE SO WE CAN DUMP IT ALL WITH
2)	;ONE IOWD. PUSH REAL CONTENTS OF THOSE LOCATIONS (USUALLY 0) FIR
	ST,
2)	;THEN RESTORE THEM LATER
2)	
2)		SUBI	T1,3		;BACKUP 3
2)		PUSH	P,0(T1)		;SAVE WORDS INCASE NOT ZERO
2)		PUSH	P,1(T1)
2)		PUSH	P,2(T1)
2)		MOVEM	T2,0(T1)	;SAVE HEADER
2)		HLLZ	T2,JOB117	;COPY  INFO WORDS
2)		MOVEM	T2,2(T1)	;TO NEXT 2 LOCS
2)		HLRE	T2,T2		;GET - LENGTH (OR 0)
2)		MOVM	T2,T2		;+
2)		HLL	T2,JOB116	;-LENGTH,,OFFSET
2)		MOVEM	T2,1(T1)	;FIRST INFO WORD
2)		HLRE	T2,JOB116	;FIND TOTAL LENGTH TO OUTPUT
2)		HLRE	T3,JOB117	;.JBSYM+.JBUSY
2)		ADD	T2,T3
2)		SUBI	T2,3		;+3 INFO WORDS
2)		HRLZ	T2,T2		;-LENGTH
2)		HRRI	T2,-1(T1)	;IOWD LENGTH,ADDRESS
2)		SETZ	T3,		;TERMINATE
2)		OUT	MC,T2		;DUMP IT
2)		  JRST	[POP	P,2(T1)		;RESTORE DATA
2)			POP	P,1(T1)
2)			POP	P,0(T1)
2)			PJRST	DVRLS.##]	;CLOSE FILE
2)		POP	P,2(T1)		;RESTORE DATA
2)		POP	P,1(T1)
2)		POP	P,0(T1)
2)		PUSH	P,[MC]
2)		.ERR.	(ST,,V%L,L%W,S%W,OES,<Output error on symbol fil
	e, file closed, job continuing>)
2)		POPJ	P,
Digital Equipment Corporation       28-AUG-79    Page 526
PCO Log Report


2)	
2)	
2)38	;HERE TO SAVE NEW FORM SYMBOL TABLE
2)	;IF ALL IN CORE JUST OPEN AND WRITE OUT
2)	;IF ON DSK EITHER RENAME OR COPY THEM
2)	
2)	SAVSYM:	PUSHJ	P,.SAVE1##	;NEED AN AC
2)		CAIN	T1,1		;SIXBIT SYM FILE WANTED?
2)		MOVEI	P1,LS.IX	;YES, STORED IN LS AREA
2)		CAIN	T1,2		;HOW ABOUT ALGOL .SYM FILE?
2)		MOVEI	P1,AS.IX	;YES, USE AS AREA INSTEAD
2)		SKIPN	TAB.UW(P1)	;PAGING?
2)		JRST	WRTSYM		;NO
2)		MOVE	T1,TAB.AB(P1)	;MAKE SURE UW.XX IS OK
2)		SUB	T1,TAB.LB(P1)	;MIGHT BE -1 IF LS AREA
2)		ADD	T1,TAB.LW(P1)	;NOW HAVE HIGHEST LOC IN CORE
 
 
2)		MOVEM	T1,TAB.UW(P1)	;UPDATE UW.XX
2)		SETCM	T1,TAB.LB(P1)	;ALSO MAKE SURE DISK FILE IS OK
2)		ADD	T1,TAB.PT(P1)	;IN CASE NEVER OUTPUT BEFORE
2)		JUMPE	T1,.+4		;FORGET IT IF NOTHING TO OUTPUT
2)		ADD	T1,TAB.LW(P1)	;NOTE WE'RE GETTING EXACT WORD C
	NT
2)		HRL	T1,TAB.LW(P1)	;ALGOL 7 NEEDS .RBSIZ EXACT
2)		PUSHJ	P,@TB.OUT##(P1)	;SO USE XX.PT INSTEAD OF XX.AB
2)		MOVE	T1,TAB.AB(P1)	;NOW READ IN FRONT OF FILE
2)		SUB	T1,TAB.LB(P1)	;SO CAN SET UP 10??,,COUNT
2)		SETZM	TAB.LW(P1)	;?W.?S MUST BE UP TO DATE
2)		MOVEM	T1,TAB.UW(P1)	;FOR FOLLOWING CALL
2)		PUSHJ	P,@TB.IN##(P1)	;AS FIRST WORD OF FILE
2)		CAIE	P1,AS.IX	;ALGOL?
2)		  JRST	SAVSY0		;NO, DO IT FOR LS AREA
2)		MOVE	T2,ASYM		;YES, GET SYMBOL COUNT
2)		HRLI	T2,1044		;AND BLOCK TYPE
2)		JRST	SAVSY1		;AND CONTINUE
2)	SAVSY0:	MOVE	T2,LSYM		;COUNT FOR LS AREA
2)		HRLI	T2,1700		;AND BLOCK TYPE
2)	SAVSY1:	SUBI	T2,1		;WORDS FOLLOWING IS 1 LESS
2)		MOVEM	T2,@TAB.LB(P1)	;STORE COUNT WORD
2)		PUSHJ	P,@TB.OUT##(P1)	;AND UPDATE FILE
2)		MOVEI	T1,SC		;FROM CHAN#
2)		CAIN	P1,AS.IX	;UNLESS AS AREA
2)		MOVEI	T1,AC		;IN WHICH CASE ALGOL CHANNEL
2)		MOVE	T2,IO.PTR+%SC	;TO CHANNEL
2)		PUSHJ	P,DVPRO.	;GET PROTECTION RIGHT
2)		MOVEI	T2,%SC		;TO CHAN#
2)		MOVE	T3,IO.PTR+%SC	;GET POINTER TO NEW FILE
2)		MOVE	T4,VERNUM	;GET VERSION OF PROGRAM
2)		SKIPN	I.VER(T3)	;UNLESS ALREADY SET BY SWITCH...
2)		MOVEM	T4,I.VER(T3)	;SAVE FOR ENTER
Digital Equipment Corporation       28-AUG-79    Page 527
PCO Log Report


2)		PJRST	DVMOV.		;GO COPY PAGED FILE TO SYMBOL FI
	LE
2)	
2)39	WRTSYM:	MOVEI	T1,DC		;USE THIS CHAN
2)		MOVEM	T1,IO.CHN
2)		MOVE	T1,IO.PTR+%SC	;HIDE DATA BLOCK HERE
2)		MOVEM	T1,IO.PTR+DC	;NOW BRING IT FORTH
2)		PUSHJ	P,DVCHN.##	;PUT ADDRESS OF BLOCK IN T1
2)		MOVSI	T2,(Z DC,)	;RESET CHAN # IN AC FIELD
2)		MOVEM	T2,I.CHN(T1)	;SINCE %SC IS THERE CURRENTLY
2)		CAIE	P1,AS.IX	;ALGOL?
2)		  JRST	WRTSY0		;NO, SETUP 1ST WORD FOR LS
2)		MOVE	T3,ASYM		;YES, SETUP COUNT WORD
2)		HRLI	T3,1044		;AND BLOCK TYPE
2)		JRST	WRTSY1		;CONTINUE
2)	WRTSY0:	MOVE	T3,LSYM		;LS AREA COUNT
2)		HRLI	T3,1700		;BLOCK TYPE FOR TRIPLET SYMBOLS
2)	WRTSY1:	HRRZ	T2,T3		;SAVE COUNT FOR ESTIMATE
2)		SUBI	T3,1		;WORDS FOLLOWING IS 1 LESS
2)		MOVEM	T3,@TAB.LB(P1)	;SAVE WORD COUNT IN AREA
2)		LSH	T2,-.DBS2W	;[650] INTO BLOCKS
2)		MOVEM	T2,I.EST(T1)	;WE NEED THIS MUCH
2)		MOVE	T2,VERNUM	;GET VERSION OF CORE IMAGE
2)		SKIPN	I.VER(T1)	;SKIP IF SET BY SWITCH
2)		MOVEM	T2,I.VER(T1)	;NO, SO SET IT
 
 
2)		PUSHJ	P,DVNAM.##	;MAKE SURE NAME IS SET UP
2)		PUSHJ	P,DVOPN.##	;INIT DEVICE
2)		PUSHJ	P,DVENT.##	;ENTER FILE
2)					;NOW FOR OUTPUT
2)	WRTSY2:	MOVE	T1,TAB.LB(P1)	;GET BOTTOM ADDR IN CORE
2)		SUB	T1,TAB.PT(P1)	;-LENGTH
2)		HRLZ	T1,T1		;-LENGTH,,0
2)		HRR	T1,TAB.LB(P1)	;FIRST ADDR OF BUFFER
2)		HRRI	T1,-1(T1)	;-LENGTH,,ADDR-1
2)		SETZ	T2,
2)		OUT	DC,T1		;OUTPUT IT
2)		PJRST	DVRLS.##	;PAGING NO LONGER HANDLED HERE
2)		PUSH	P,[DC]
2)		.ERR.	(ST,,V%L,L%W,S%W,OES)
2)		POPJ	P,
2)	
2)40	;HERE TO SET UP THE REST OF THE JOBDAT AREA. ENTER WITH P1 POINT
	ING TO JOBDAT
2)	;AREA AND P2 TO VESTIGIAL JOBDAT (0 IF NO HIGH SEGMENT).
2)	
2)	JOBSET:	SKIPE	T2,HC.S1	;GET HIGHEST DATA LOCATION LOADE
	D
2)		SUBI	T2,1		;MAKE IT HIGHEST LOC LOADED
2)	IFN FTOVERLAY,<
Digital Equipment Corporation       28-AUG-79    Page 528
PCO Log Report


2)		SKIPL	LNKMAX		;LOADED ANY OVERLAYS?
2)		SKIPN	T1,JOB116	;AND SAVED SYMBOLS?
2)		JRST	.+4		;NO
2)		HLRE	T2,T1		;-LENGTH
2)		MOVM	T2,T2
2)		ADDI	T2,-1(T1)	;HIGHEST LOCATION
2)	>
2)		HRLZM	T2,.JBCOR(P1)	;PUT  HIGHEST LOC IN LEFT HALF
2)		HRRZ	T2,HL.S1	;GET HIGHEST LOC REQUIRED
2)		HRL	T2,STADDR	;GET STARTING ADDRESS
2)		MOVSM	T2,.JBSA(P1)	;SET .JBSA AND .JBFF
2)		HRRZM	T2,.JBFF(P1)	;INCASE RESET NOT DONE FIRST
2)		IOR.	T2,.PGSIZ	;INCLUDE ALL OF THIS PAGE
2)		HRRZM	T2,.JBREL(P1)	;SET .JBREL
2)		MOVSI	T2,(HALT)	;PUT A HALT IN .JB41
2)		SKIPN	.JB41(P1)	;UNLESS ALREADY SETUP
2)		MOVEM	T2,.JB41(P1)
2)		MOVE	T2,.JBSYM(P1)	;GET SYMBOL TABLE POINTER
2)		HRRZ	T1,T2		;GET POINTER
2)		JUMPE	P2,JOBST0	;NO HIGH SEG POSSIBLE
2)		CAML	T1,LL.S2	;SEE IF IN HIGH SEG
2)		MOVEM	T2,.JBHSM(P2)	;STORE IN HIGH SEG DATA AREA
2)		SKIPE	T1,HL.S2	;GET HIGHEST LOC +1
2)		SUBI	T1,1		;HIGHEST LEGAL ADDRESS
2)		ADD	T1,LL.S2	;PLUS ORIGIN
2)		IOR.	T1,.PGSIZ	;PUT ON PAGE BOUND
2)		SKIPN	T2,HL.S2	;[650] LENGTH TO SAVE
2)		JRST	JOBST1		;[650] NONE?
2)		SKIPN	.JBDDT##(P1)	;[650] DDT LOADED?
2)		JRST	JOBST1		;[650] NO, NUMBER IS OK
2)		SUBI	T2,1		;[650] YES, BE LIKE MONITOR
2)		IOR.	T2,.PGSIZ	;[650] ROUND UP TO TOP OF PAGE
2)		ADDI	T2,1		;[650] THENCE TO BOTTOM OF NEXT
2)	JOBST1:	HRL	T1,T2		;[650] LENGTH TO SAVE,,HIGHEST A
	DDR
 
 
2)		MOVEM	T1,.JBHRL(P1)	;LENGTH,,HIGHEST ADDRESS
2)	JOBST0:	MOVE	T1,.JBERR	;GET  NO OF PREVIOUS ERRORS
2)		MOVEM	T1,.JBERR(P1)	;COUNT AS EXECUTION ERRORS
2)		MOVEM	T1,ERRNO	;PROHIBIT EXECUTION IF NON-ZERO
2)	;**;[1144] Replace @JOBST0+3L	DZN	16-Feb-79
2)	
2)	;  ..
2)	
2)41	;  ..
2)	
2)	;COMPUTE ADDRESS AT WHICH TO START PROGRAM. IF A DEBUGGER IS LOA
	DED, THIS IS NOT
2)	;NECESSARILY THE MAIN PROGRAM'S START ADDRESS, BUT DEPENDS ON TH
	E DEBUGGER.
Digital Equipment Corporation       28-AUG-79    Page 529
PCO Log Report


2)	
2)		SETZ	T1,		;[1144] ASSUME WE DON'T START PR
	OGRAM
2)		SKIPE	EXECSW		;GO INTO EXECUTION?
2)		MOVE	T1,STADDR	;YES, ASSUME .JBSA
2)		HRRZ	T2,DEBUGSW	;[1144] IF DEBUGGING, DEBUGGER'S
	 START ADDRESS
2)		SKIPGE	DEBUGSW		;[1144]   TAKES PRIORITY SO
2)		MOVE	T1,@STLOCN(T2)	;[1144]   FIND IT
2)		HRRM	T1,EXECSW	;IN ANY CASE STORE BACK IN EXECS
	W
2)		POPJ	P,
2)	
2)42	;TABLE OF WHERE TO START FOR EACH DEBUGGER.
2)	
2)	DEFINE KEYMAC(A,B)<
2)	  XALL					;;[1144] GIVE A GOOD LIS
	TING
2)	  IFIDN <A><DEB>,<			;;[1144] SELECT ONLY DEB
	UGGING KEYWORDS
2)	    %%1==-1				;;[1144] SKIP DUMMY ENTR
	Y
2)	    IRP B,<				;;[1144] CHECK EACH KEYW
	ORD
2)	      IFGE %%1,<			;;[1144]   THAT IS NOT T
	HE DUMMY
2)	        IFN <%%1&1>,<			;;[1144]   AND IS A DEGU
	GGER NAME
2)	          %%2==0			;;[1144] ASSUME WE WON'T
	 FIND A DEBUGGER
2)	          IFN TOPS20,<			;;[1144] TOPS-20 UDDT IS
	 SPECIAL
2)	            IFIDN <B><DDT>,<		;;[1144] CHECK FOR DDT D
	EBUGGER
2)		[770000]		;UDDT STARTS AT 770000
2)	              %%2==1			;;[1144] REMEMBER WE FOU
	ND A DEBUGGER
2)	            >
2)	          >
2)	          IFIDN <B><FORDDT>,<		;;[1144] FORDDT IS SPECI
	AL
2)		STADDR			;FORDDT FORCES START ADDRESS TO
	ITSELF
2)	            %%2==1			;;[1144] REMEMBER WE FOU
	ND A DEBUGGER
2)	          >
2)	          IFIDN <B><COBDDT>,<		;;[1144] COBDDT IS SPECI
	AL
2)		STADDR			;COBDDT GETS CONTROL FROM COBOL
	PROGRAM
2)	            %%2==1			;;[1144] REMEMBER WE FOU
Digital Equipment Corporation       28-AUG-79    Page 530
PCO Log Report


	ND A DEBUGGER
2)	          >
2)	          IFE %%2,<			;;[1144] IF IT WASN'T AB
	OVE DEBUGGERS
2)		.JBDDT(P1)		;OTHER DEBUGGERS SET .JBDDT
2)	          >
2)	        >
2)	      >
2)	      %%1==%%1+1			;;[1144] ADVANCE TO NEXT
	 ENTRY
2)	    >
2)	  >
2)	  PURGE %%1,%%2				;;[1144] CLEAN UP AFTERW
	ARD
2)	  SALL					;;[1144]   ..
 
 
2)	>
2)	
2)	STLOCN:	KEYWORDS
2)	
2)43	;HERE TO SETUP REST OF VESTIGIAL JOBDAT AREA
2)	;ENTER WITH  P1 POINTING TO JOBDAT AREA
2)	
2)	HJBSET:	JUMPE	P2,CPOPJ	;DON'T NEED TO DO THIS IF NO HIG
	H SEG
2)		HRRZ	T1,HL.S2	;GET HIGHEST HIGH SEG LOCATION+1
2)		SKIPE	.JBDDT(P1)	;IF DDT LOADED
2)		SOJA	T1,[IOR. T1,.PGSIZ	;INCLUDE ALL OF THIS PAG
	E
2)			AOJA	T1,.+1]		;IN LENGTH
2)		HRL	T1,.JBREN(P1)	;GET .JBREN
2)		MOVSM	T1,JOBHRN(P2)	;SET BOTH HALVES OF JOBHRN
2)		MOVE	T1,.JBSA(P1)	;PUT .JBSA
2)		MOVEM	T1,JOBHSA(P2)	;IN HIGH SEG
2)		MOVE	T1,.JB41(P1)
2)		MOVEM	T1,JOBH41(P2)
2)		MOVS	T1,.JBCOR(P1)
2)		SKIPN	.JBDDT(P1)	;TEST FOR RARE CASE OF DDT, SYMB
	OLS AND CODE
2)		JRST	.+3		; ALL IN HIGH SEGMENT
2)		TRNN	T1,-140		;TRUE IF HIGHEST LOC IS 137 OR L
	ESS
2)		ADDI	T1,1		;IF SO MAKE IT 140 IN HIGH SEG
2)		MOVSM	T1,.JBHCR(P2)	; SO WE LOAD LOW
2)		MOVE	T1,.JBVER(P1)
2)		MOVEM	T1,.JBHVR(P2)
2)		SKIPE	T1,RUNAME	;GET PROGNAM
2)		JRST	.+3		;SET
2)		SKIPN	T1,SSNAME	;IF NOT TRY SAVE FILE NAME
2)		MOVE	T1,LODNAM	;USE DEFAULT IF NOT SET
Digital Equipment Corporation       28-AUG-79    Page 531
PCO Log Report


2)		MOVEM	T1,.JBHNM(P2)	;INTO HIGH SEG
2)		MOVE	T1,HL.S1	;HIGHEST LOC +1 IN LOW SEG
2)		SUBI	T1,1
2)		IOR.	T1,.PGSIZ	;ROUND UP TO PAGE BOUNDARY
2)		ADDI	T1,1		;NEXT PAGE
2)		CAMGE	T1,LL.S2	;GREATER THAN HI-ORG?
2)		MOVE	T1,LL.S2	;NO
2)		LSH	T1,-9		;PAGE #
2)		HRLZM	T1,JOBHSO(P2)	;STORE IN HIGH
2)		HRRZM	T1,.JBHSO(P1)	;AND STORE
2)		POPJ	P,
2)	
**************
1)31		CAIA
1)		PUSHJ	P,RDJBH		;SET UP JOBDAT IN HIGH
1)		SETZM	LS.PP		;BACK AS BEFORE
1)		POPJ	P,
1)	
1)32	;HERE WHEN WE HAVE TO OUTPUT CORE
1)	;THERE IS NO NEED TO KEEP ANY OF IT SO OUTPUT IT ALL
1)	
1)	SYMO3:	AOS	T1,TAB.PT(R)	;POINT TO NEXT FREE
1)		TRNE	T1,1		;SEE IF 1 FREE LOC
1)		MOVEM	W2,-2(T1)	;YES, OUTPUT HALF OF SYMBOL
1)		HRLZ	T1,LW.S0(R)	;OUTPUT ALL OF WINDOW
1)		HRR	T1,UW.S0(R)
 
 
1)		PUSHJ	P,@[EXP LC.OUT##,HC.OUT##]-1(R)	;GO TO CORRECT R
	OUTINE
1)		SKIPGE	SYMFRM		;NEED OLD SYMBOLS (RADIX50)
1)		PUSHJ	P,OLDSYM	;YES
1)		HRRZ	T1,TAB.LB(R)	;NOW TO CLEAR JUNK
1)		HRLI	T1,(T1)
1)		ADDI	T1,1		;LOW,,LOW+1
1)		SETZM	-1(T1)
1)		BLT	T1,@TAB.AB(R)	;TO HIGH
1)		MOVE	T1,UW.S0(R)	;PREVIOUS HIGH WINDOW
1)		ADDI	T1,1		;NEW LOW
1)		MOVEM	T1,LW.S0(R)
1)		IORI	T1,.IPM		;NEW HIGH IS END OF PAGE
1)		MOVEM	T1,UW.S0(R)
1)		MOVE	T1,TAB.PT(R)	;GET POINTER (JUST BEYOND END OF
	 CORE)
1)		ANDI	T1,.IPM		;SO JUST KEEP OFFSET IN THIS PAG
	E
1)		IOR	T1,TAB.LB(R)	;ADD IN BASE
1)		MOVEM	T1,TAB.PT(R)	;AND STORE
1)		TRNN	T1,1		;DID WE STORE 1 WORD BEFORE?
1)		MOVEM	W2,-2(T1)	;NO, DO SO NOW
1)		MOVEM	W3,-1(T1)
Digital Equipment Corporation       28-AUG-79    Page 532
PCO Log Report


1)		IORI	T1,.IPM		;LAST ADDRESS IN BLOCK
1)		MOVEM	T1,TAB.AB(R)	;NOW WINDOWS MATCH
1)		JRST	CPOPJ1		;[715] SKIP RETURN
1)	
****
2)44	;**;[1172] Replace @ CHKPAG+6L	JNG	5-Jun-79
2)		POPJ	P,		;[1172] DONE
2)		PUSHJ	P,RDJBH		;SET UP JOBDAT IN HIGH
2)		POPJ	P,
2)	
**************
1)33	;HERE TO MOVE SYMBOLS TO TOP OF CORE
1)	;IF SORTING PUT SORT BUFFER IN AREA GS
1)	
1)	SYMINI:	SKIPE	FX.LB		;ANY FIXUPS LEFT?
1)		PUSHJ	P,MOVFX		;YES, MUST MOVE THEM UP
1)		SKIPN	UW.LS		;IF LOCAL SYMBOLS ON DSK?
1)		PJRST	MOVSYM		;NO, JUST MOVE UP
1)	;	PJRST	LKPSYM		;READ BACK INTO CORE
1)	
1)	;HERE TO WRITE OUT END OF SYMBOL TABLE AND SET IT UP FOR SORTING
1)	LKPSYM:	SKIPL	UW.LS		;IF -1 THEN SYMBOL TABLE NOT OUT
	PUT YET
1)		JRST	RDSYM		;JUST READ IT BACK IN
1)		MOVE	T1,LSYM		;ADRESS OF LAST SYMBOL STORED +1
1)		SUBI	T1,1
1)		IORI	T1,.IPM		;BLOCK BOUND
1)		HRL	T1,LW.LS	;FORM  BLT WORD
1)		HRRZM	T1,UW.LS	;SIGNAL ALL OF SYMBOLS ON DSK
1)		PUSHJ	P,LS.OUT##	;AND OUTPUT IT
1)					;FALL INTO RDSYM TO READ IT BACK
1)	
1)	
1)	RDSYM:	PUSHJ	P,MOVSYM	;MOVE WHAT WE HAVE UP IN CORE
1)					;AT THIS POINT THERE IS NO NEED
	TO READ
1)					;MORE SYMBOLS, THAT WILL HAPPEN
	NEXT TIME ANYWAY
1)					;UNLESS WE ONLY HAVE ONE BLOCK I
	N CORE
 
 
1)					;THIS CASES PROBLEMS SO READ IN
	MORE
1)		MOVE	T1,UW.LS	;UPPER LIMIT
1)		ANDCMI	T1,.IPM		;START OF THIS PAGE
1)		CAME	T1,LW.LS	;IS IT THE LOWER PAGE BOUND?
1)		POPJ	P,		;NO, JUST RETURN
1)		MOVEI	T1,LS.IX-1	;YES, SEE HOW MUCH SPACE WE HAVE
	 WITHOUT SHUFFLING
1)		SKIPN	TAB.LB(T1)	;USUAL LOOK FOR LOWER AREA
Digital Equipment Corporation       28-AUG-79    Page 533
PCO Log Report


1)		SOJA	T1,.-1
1)		MOVE	T2,LS.LB	;WHERE WE START AT
1)		SUB	T2,TAB.AB(T1)	;MINUS WHATS IN USE
1)		SUBI	T2,1		;COUNT OF WHATS FREE
1)		LSH	T2,-1		;CUT IN HALF
1)		ANDCMI	T2,.IPM		;ON BLOCK BOUND
1)		CAMLE	T2,LW.LS	;BUT DON'T GET TOO MUCH
1)		MOVE	T2,LW.LS	;IF WE DON'T HAVE ENOUGH SYMBOLS
1)		MOVN	T2,T2		;GET NEG SO WE CAN BACKUP
1)		ADDM	T2,LS.LB	;MOVE DOWN IN CORE
1)		ADDM	T2,TAB.UB(T1)	;AND TAKE THIS SPACE
1)		ADDM	T2,LW.LS	;OPEN WINDOW WIDER
1)		MOVE	T1,UW.LS	;GET TOP OF WINDOW
1)		SUBI	T1,.IPS		;BUT WE ALREADY HAVE THIS PAGE
1)		HRL	T1,LW.LS	;FORM TRANS WORD
1)		PJRST	LS.IN##		;READ IT IN
1)	
1)34	;HERE IF TOP OF SYMBOL TABLE IS ALREADY IN CORE
1)	;HOWEVER IT IS NOT AT TOP OF CORE WHERE WE WOULD LIKE IT
1)	;THEREFOR MOVE ALL LS UP TO .JBREL
1)	;USE REVERSE BLT IN ACCS
1)	
1)	MOVSYM:
1)	IFN FTOVERLAY,<
1)		SKIPLE	LNKMAX		;ANY OVERLAYS
1)		SKIPN	LNKNO.		;BUT NOT ROOT
1)		JRST	.+3		;NO
1)		MOVE	T1,LS.UB	;CAN NOT USE TOP OF CORE
1)		JRST	.+4
1)	>
1)		SKIPE	T1,FX.LB	;STILL FIXUPS TO DO?
1)		SOJA	T1,.+2		;YES, MAKE T1 POINT TO HIGHEST F
	REE
1)		MOVE	T1,.JBREL	;NO, GET TOP OF CORE
1)		CAMN	T1,LS.AB	;AT ACTUAL TOP OF LS?
1)		POPJ	P,		;YES, JUST RETURN
1)		MOVEM	T1,LS.UB	;MAKE IT TOP
1)		SUB	T1,LS.AB	;GET DIFFERENCE = OFFSET
1)		PUSH	P,T1		;SAVE OFFSET
1)		MOVE	T4,LS.AB	;TOP
1)		SUB	T4,LS.LB	;-BOTTOM
1)		ADDI	T4,400001	;400000+LENGTH
1)		MOVS	T4,T4
1)		HRR	T4,LS.AB	;TOP OF OLD DATA
1)		HRLI	T1,(POP T4,0(T4))
1)		MOVE	T2,[JUMPL T4,T1]
1)		MOVSI	T3,(POPJ P,)	;REVERSE BLT NOW SET UP
1)		PUSHJ	P,T1		;DO IT
1)		MOVE	T2,LS.AB	;[647]
1)		MOVE	T1,LS.UB
 
Digital Equipment Corporation       28-AUG-79    Page 534
PCO Log Report


 
1)		MOVEM	T1,LS.AB	;SET BOUNDS THE SAME
1)		POP	P,T1		;OFFSET
1)		ADD	T1,LS.LB	;NEW BASE
1)		SUBI	T1,1		;HIGHEST TO GIVE BACK
1)		HRL	T1,T2		;[647] HIGHEST ADDR TO ZERO
1)		PUSHJ	P,GBCK.L##
1)		MOVE	T1,LSYM		;NOW RESET LS.PT TO POINT TO LAS
	T SYMBOL
1)		SUB	T1,LW.LS	;MINUS WINDOW BASE
1)		ADD	T1,LS.LB	;PLUS OFFSET IN CORE
1)		MOVEM	T1,LS.PT	;OK NOW
1)		POPJ	P,
1)	
1)35	;HERE TO ADD FREE SPACE TO NEXT LOWEST AREA IN USE
1)	;CALLED BY
1)	;	MOVEI	T1,THIS AREA
1)	;	PUSHJ	P,ADJ.L
1)	;USES T1, T2
1)	
1)	ADJ.L:	MOVE	T2,TAB.LB(T1)	;GET CURRENT LOWEST SIZE
1)		SUBI	T2,1		;THIS IS NOW UPPER OF NEXT LOWER
1)		SKIPN	TAB.LB-1(T1)	;FIND ONE
1)		SOJA	T1,.-1		;EVENTUALLY
1)		MOVEM	T2,TAB.UB-1(T1)
1)		POPJ	P,		;RETURN
1)	
1)36	;HERE IF WE HAVE TO MOVE FIXUP AREA (IT MAY CONTAIN SYMBOL FIXUP
	S)
1)	;MOVE UP TO VERY TOP OF CORE, OUT OF WAY OF  SYMBOLS
1)	;USE REVERSE BLT IN ACCS
1)	
1)	MOVFX:	MOVE	T1,.JBREL	;GET TOP OF CORE
1)		CAMN	T1,FX.AB	;AT ACTUAL TOP OF FIXUPS?
1)		POPJ	P,		;YES, JUST RETURN
1)		MOVEM	T1,FX.UB	;MAKE IT TOP
1)		SUB	T1,FX.AB	;GET DIFFERENCE = OFFSET
1)		PUSH	P,T1		;SAVE OFFSET
1)		MOVE	T4,FX.AB	;TOP
1)		SUB	T4,FX.LB	;-BOTTOM
1)		ADDI	T4,400001	;400000+LENGTH
1)		MOVS	T4,T4
1)		HRR	T4,FX.AB	;TOP OF OLD DATA
1)		HRLI	T1,(POP T4,0(T4))
1)		MOVE	T2,[JUMPL T4,T1]
1)		MOVSI	T3,(POPJ P,)	;REVERSE BLT NOW SET UP
1)		PUSHJ	P,T1		;DO IT
1)		MOVE	T1,FX.UB
1)		MOVEM	T1,FX.AB	;SET BOUNDS THE SAME
1)		POP	P,T1		;OFFSET
1)		ADDM	T1,FX.PT
Digital Equipment Corporation       28-AUG-79    Page 535
PCO Log Report


1)		ADD	T1,FX.LB	;NEW BASE
1)		SUBI	T1,1		;HIGHEST LOC TO GIVE AWAY
1)		PJRST	GBCK.L##	;TO NEXT LOWER
1)	
1)37	SYDONE:	SKIPE	PAG.S1		;PAGING LOW SEG?
1)		SKIPA	P1,JOBPTR	;YES, LOAD CORRECT OFFSET
1)		MOVE	P1,LC.LB	;LOAD UP OFFSET
1)		SKIPE	PAG.S2		;PAGING HIGH SEG?
 
 
1)		SKIPA	P2,JBHPTR	;YES, LOAD CORRECT OFFSET
1)		MOVE	P2,HC.LB	;LOAD UP OFFSET
1)		MOVE	T2,.JBSYM(P1)	;GET ADDRESS OF BASE OF SYMBOLS
1)		HRRZ	T3,TAB.PT(R)	;AND CURRENT TOP
1)		SUB	T3,TAB.LB(R)	;REMOVE OFFSET
1)		ADD	T3,LW.S0(R)	;BUT ADD IN BASE OF INCORE WINDO
	W
1)		CAMG	T3,HC.S0(R)	;[715] PSECT NAME USED?
1)		JRST	.+3		;[715] YES,  DON'T UPDATE
1)		MOVEM	T3,HC.S0(R)	;RESET HIGHEST LOC IN USE COUNTE
	RS
1)		MOVEM	T3,HL.S0(R)	;SO WE WILL PRESERVE THE SYMBOLS
1)		ADD	T3,LL.S0(R)	;ADD IN SEGMENT OFFSET
1)	;**;[1132] Insert @ SYDONE+15L	JNG	30-Jan-79
1)		MOVE	T1,SYMPSC	;[1132] GET POINTER TO /SYMSEG R
	C BLOCK
1)		CAMLE	T3,RC.HL(T1)	;[1132] INCORPORATE SYMBOLS INTO
	 THAT PSECT
1)		MOVEM	T3,RC.HL(T1)	;[1132] BUT NEVER SHRINK A PSECT
1)		SUBI	T2,0(T3)	;FIND - LENGTH
1)		HRLM	T2,.JBSYM(P1)	;FIXUP SYMBOL TABLE POINTER
1)		HRLM	T2,JOB116	;AND FOR .SYM FILE
1)		SKIPGE	SYMFRM		;OLD STYLE SYMBOL FILE REQUIRED?
1)		PUSHJ	P,OLDSYM	;YES, WRITE OR COMPLETE IT
1)		.ERR.	(MS,0,V%L,L%I,S%I,STC,<Symbol table completed>)
1)		JRST	REMVLS		;SETUP REST AND DELETE LS AREA
1)	
1)	NOLOCS:	SKIPE	PAG.S1		;PAGING LOW SEG?
1)		SKIPA	P1,JOBPTR	;YES, LOAD CORRECT OFFSET
1)		MOVE	P1,LC.LB	;LOAD UP OFFSET
1)		SKIPE	PAG.S2		;PAGING HIGH SEG?
1)		SKIPA	P2,JBHPTR	;YES, LOAD CORRECT OFFSET
1)		MOVE	P2,HC.LB	;LOAD UP OFFSET
1)	
1)	REMVLS:
1)		SKIPLE	T1,SYMFRM	;NEW STYLE SYMBOL FILE NEEDED?
1)		PUSHJ	P,SAVSYM	;YES, OUTPUT THEM NOW
1)		PUSHJ	P,AS.ZAP	;DONE WITH ALGOL SYMBOLS
1)		PUSHJ	P,FX.ZAP	;ALSO DONE WITH FIXUP BY NOW
1)	IFN FTOVERLAY,<
1)		SKIPL	LNKMAX		;OVERLAYS?
Digital Equipment Corporation       28-AUG-79    Page 536
PCO Log Report


1)		JRST	SAVTST		;KEEP UNTIL SAV FILE MADE
1)	>
1)		PUSHJ	P,LS.ZAP	;GET RID OF LS
1)		SKIPN	PAG.LS		;IF NOT PAGING
1)		JRST	SAVTST		;DON'T DELETE LS FILE
1)		MOVEI	T1,SC		;CAN DELETE CHAN# NOW
1)		PUSHJ	P,DVDEL.##
1)		  JFCL
1)	;**;[1146] Replace @REMVLS+15L	DZN	8-Mar-79
1)		JRST	SAVTST		;[1146] DONE WITH SYMBOLS
1)	
1)38	SUBTTL	ROUTINES FOR SYMBOLS
1)	
1)	
1)	;**;[1132] Insert @ LTITLE	JNG	30-Jan-79
1)	LTITLE:	TXNE	W1,PT.PSC	;[1132] JUST A PSECT DEFINITION?
1)		JRST	LSLOOP		;[1132] YES, DON'T PUT IN SYMBOL
	 TABLE
1)		PUSHJ	P,SXBR50	;CONVERT TO RADIX-50
1)		TXNE	W1,PT.BLK	;ONLY A FAIL BLOCK HEADER?
 
 
1)		JRST	BTITLE		;YES
1)		MOVE	T2,TTLPTR	;GET ADDRESS OF LAST PROG
1)		HRRZ	T1,TAB.PT(R)	;GET THIS ADDRESS
1)		SUB	T1,TAB.LB(R)	;MINUS OFFSET
1)		ADD	T1,TAB.LW(R)	;PLUS BASE OF WINDOW
1)		MOVEM	T1,TTLPTR	;SAVE FOR NEXT
1)		SUB	T1,T2		;GET DIFFERENCE
1)		MOVN	T1,T1		;NEGATE
1)		JUMPE	T2,.+2		;IGNORE IF FIRST TIME
1)		HRL	W3,T1		;FIXUP POINTER
1)		PUSH	P,W2		;SAVE SYMBOLS
1)		PUSH	P,W3
1)	TTLLUP:	MOVX	T1,S.TTL!S.SEG	;FLAGS
1)		PUSHJ	P,GETAST	;GET EXTENSION TRIPLET
1)		  SETZB	W2,W3		;ONLY HERE IF DEFINED BY /SWITCH
1)		SKIPE	W3		;IF ANY HIGH SEG STUFF
1)		MOVE	W2,W3		;USE IT
1)		POP	P,W3		;GET W3 BACK
1)		HLR	W3,W2		;FIX IT UP
1)		POP	P,W2
1)		PUSHJ	P,SYMOUT	;OUTPUT PSEUDO SYMBOL
1)		  POPJ	P,		;[715] EXCEEDED SPACE, RETURN
1)		JRST	LSLOOP		;RETURN
1)	
1)	
1)	
1)	BTITLE:	TXO	W2,R5.LCL!R5.GLB	;MAKE RADIX50 14,SYM
1)		HRRZ	W3,W3		;BLOCK LEVEL ONLY
1)		JRST	LSLUP1		;AND TREAT AS LOCAL SYMBOL
Digital Equipment Corporation       28-AUG-79    Page 537
PCO Log Report


1)	
1)39	;SXBR50 -- SUBROUTINE TO CONVERT SIXBIT TO RADIX-50
1)	;CALLED BY
1)	;	MOVE	W2,SIXBIT WORD
1)	;	PUSHJ	P,SXBR50
1)	;RETURN
1)	;	RADIX-50 IN W2
1)	;USES T1, T2
1)	
1)	SXBR50:	MOVE	T2,W2		;GET SIXBIT SYMBOL
1)		SETZ	W2,		;WHERE TO STORE RADIX50 SYMBOL
1)		SETZ	T1,		;CLEAR RECEIVING ACC
1)		LSHC	T1,6		;GET NEXT CHAR
1)		IMULI	W2,50		;MULTIPLE BY 50
1)		ADD	W2,SXBTAB(T1)	;ADD IN NEW CHAR
1)		JUMPN	T2,.-4		;NOT DONE YET
1)		POPJ	P,
1)	
1)	DEFINE SXBCHR (CHR)<
1)	 IRPC CHR,<
1)	  RADIX50 0,CHR
1)	>>
1)	
1)		XALL
1)	SXBTAB:	SXBCHR (    $%        . 0123456789       ABCDEFGHIJKLMNO
	PQRSTUVWXYZ     )
1)		SALL
1)	
 
 
1)40	;HERE FOR OLD FORM SYMBOLS (RADIX-50)
1)	;IF IN CORE WRITE THEM OUT WITH THREE INFORMATION WORDS AT FRONT
1)	;HEADER, .JBSYM (116) AND .JBUSY (117)
1)	;HEADER IS 776(TYPE) ,, LENGTH
1)	;OTHER TWO WORDS ARE RELATIVE TO ZERO
1)	;.JBSYM MUST HAVE A NEGATIVE LEFT HALF
1)	;.JBUSY IS ZERO IF NO UNDEFINED SYMBOLS
1)	
1)	OLDSYM:	MOVEI	T1,MC		;USE MAP CHAN INCASE PAGING LC
1)		MOVEM	T1,IO.CHN
1)		MOVE	T1,IO.PTR+%SC	;POINT TO CORRECT DATA
1)		MOVEM	T1,IO.PTR+MC
1)		PUSHJ	P,DVCHN.##
1)		MOVSI	T2,(Z MC,)	;RESET CHAN #
1)		MOVEM	T2,I.CHN(T1)	;SINCE %SC IS THERE CURRENTLY
1)		HLRO	T2,JOB116	;NUMBER OF SYMBOLS
1)		MOVM	T2,T2
1)		LSH	T2,-.DBS2W	;[650] INTO BLOCKS (ASSUME FEW U
	NDEFS)
1)		MOVEM	T2,I.EST(T1)
1)		MOVE	T2,VERNUM	;GET VERSION OF CORE IMAGE
Digital Equipment Corporation       28-AUG-79    Page 538
PCO Log Report


1)		SKIPN	I.VER(T1)	;SKIP IF SET BY SWITCH
1)		MOVEM	T2,I.VER(T1)	;NO, SO SET IT
1)		PUSHJ	P,DVNAM.##	;MAKE SURE NAME SETUP
1)		PUSHJ	P,DVOPN.##	;INIT DEV
1)		PUSHJ	P,DVENT.##	;DO ENTER
1)					;NOW TO STORE THREE INFO WORDS
1)		HLRE	T1,JOB116	;NO. OF DEFINED SYMBOLS
1)		HLRE	T2,JOB117	;NO. OF UNDEFS
1)		MOVM	T1,T1		;+
1)		MOVM	T2,T2
1)		ADDI	T2,2(T1)	;PLUS TWO EXTRA WORDS
1)		HRLI	T2,776		;BLOCK TYPE FOR LINK
1)		SKIPN	T1,JOB117	;.JBUSY IF NON-ZERO
1)		MOVE	T1,JOB116	;OTHERWISE .JBSYM
1)		HRRZ	T1,T1		;REMOVE NEG LEFT HALF
1)		SUB	T1,LL.S0(R)	;REMOVE ORIGIN
1)		SUB	T1,LW.S0(R)	;INCASE PAGING
1)		ADD	T1,TAB.LB(R)	;FIX IN CORE
1)	
1)41	;NOW PUT HEADER WORDS IN CORE IMAGE SO WE CAN DUMP IT ALL WITH
1)	;ONE IOWD. PUSH REAL CONTENTS OF THOSE LOCATIONS (USUALLY 0) FIR
	ST,
1)	;THEN RESTORE THEM LATER
1)	
1)		SUBI	T1,3		;BACKUP 3
1)		PUSH	P,0(T1)		;SAVE WORDS INCASE NOT ZERO
1)		PUSH	P,1(T1)
1)		PUSH	P,2(T1)
1)		MOVEM	T2,0(T1)	;SAVE HEADER
1)		HLLZ	T2,JOB117	;COPY  INFO WORDS
1)		MOVEM	T2,2(T1)	;TO NEXT 2 LOCS
1)		HLRE	T2,T2		;GET - LENGTH (OR 0)
1)		MOVM	T2,T2		;+
1)		HLL	T2,JOB116	;-LENGTH,,OFFSET
1)		MOVEM	T2,1(T1)	;FIRST INFO WORD
1)		HLRE	T2,JOB116	;FIND TOTAL LENGTH TO OUTPUT
1)		HLRE	T3,JOB117	;.JBSYM+.JBUSY
 
 
1)		ADD	T2,T3
1)		SUBI	T2,3		;+3 INFO WORDS
1)		HRLZ	T2,T2		;-LENGTH
1)		HRRI	T2,-1(T1)	;IOWD LENGTH,ADDRESS
1)		SETZ	T3,		;TERMINATE
1)		OUT	MC,T2		;DUMP IT
1)		  JRST	[POP	P,2(T1)		;RESTORE DATA
1)			POP	P,1(T1)
1)			POP	P,0(T1)
1)			PJRST	DVRLS.##]	;CLOSE FILE
1)		POP	P,2(T1)		;RESTORE DATA
1)		POP	P,1(T1)
Digital Equipment Corporation       28-AUG-79    Page 539
PCO Log Report


1)		POP	P,0(T1)
1)		PUSH	P,[MC]
1)		.ERR.	(ST,,V%L,L%W,S%W,OES,<Output error on symbol fil
	e, file closed, job continuing>)
1)		POPJ	P,
1)	
1)	
1)42	;HERE TO SAVE NEW FORM SYMBOL TABLE
1)	;IF ALL IN CORE JUST OPEN AND WRITE OUT
1)	;IF ON DSK EITHER RENAME OR COPY THEM
1)	
1)	SAVSYM:	PUSHJ	P,.SAVE1##	;NEED AN AC
1)		CAIN	T1,1		;SIXBIT SYM FILE WANTED?
1)		MOVEI	P1,LS.IX	;YES, STORED IN LS AREA
1)		CAIN	T1,2		;HOW ABOUT ALGOL .SYM FILE?
1)		MOVEI	P1,AS.IX	;YES, USE AS AREA INSTEAD
1)		SKIPN	TAB.UW(P1)	;PAGING?
1)		JRST	WRTSYM		;NO
1)		MOVE	T1,TAB.AB(P1)	;MAKE SURE UW.XX IS OK
1)		SUB	T1,TAB.LB(P1)	;MIGHT BE -1 IF LS AREA
1)		ADD	T1,TAB.LW(P1)	;NOW HAVE HIGHEST LOC IN CORE
1)		MOVEM	T1,TAB.UW(P1)	;UPDATE UW.XX
1)		SETCM	T1,TAB.LB(P1)	;ALSO MAKE SURE DISK FILE IS OK
1)		ADD	T1,TAB.PT(P1)	;IN CASE NEVER OUTPUT BEFORE
1)		JUMPE	T1,.+4		;FORGET IT IF NOTHING TO OUTPUT
1)		ADD	T1,TAB.LW(P1)	;NOTE WE'RE GETTING EXACT WORD C
	NT
1)		HRL	T1,TAB.LW(P1)	;ALGOL 7 NEEDS .RBSIZ EXACT
1)		PUSHJ	P,@TB.OUT##(P1)	;SO USE XX.PT INSTEAD OF XX.AB
1)		MOVE	T1,TAB.AB(P1)	;NOW READ IN FRONT OF FILE
1)		SUB	T1,TAB.LB(P1)	;SO CAN SET UP 10??,,COUNT
1)		SETZM	TAB.LW(P1)	;?W.?S MUST BE UP TO DATE
1)		MOVEM	T1,TAB.UW(P1)	;FOR FOLLOWING CALL
1)		PUSHJ	P,@TB.IN##(P1)	;AS FIRST WORD OF FILE
1)		CAIE	P1,AS.IX	;ALGOL?
1)		  JRST	SAVSY0		;NO, DO IT FOR LS AREA
1)		MOVE	T2,ASYM		;YES, GET SYMBOL COUNT
1)		HRLI	T2,1044		;AND BLOCK TYPE
1)		JRST	SAVSY1		;AND CONTINUE
1)	SAVSY0:	MOVE	T2,LSYM		;COUNT FOR LS AREA
1)		HRLI	T2,1700		;AND BLOCK TYPE
1)	SAVSY1:	SUBI	T2,1		;WORDS FOLLOWING IS 1 LESS
1)		MOVEM	T2,@TAB.LB(P1)	;STORE COUNT WORD
1)		PUSHJ	P,@TB.OUT##(P1)	;AND UPDATE FILE
1)		MOVEI	T1,SC		;FROM CHAN#
1)		CAIN	P1,AS.IX	;UNLESS AS AREA
 
 
1)		MOVEI	T1,AC		;IN WHICH CASE ALGOL CHANNEL
1)		MOVE	T2,IO.PTR+%SC	;TO CHANNEL
1)		PUSHJ	P,DVPRO.	;GET PROTECTION RIGHT
Digital Equipment Corporation       28-AUG-79    Page 540
PCO Log Report


1)		MOVEI	T2,%SC		;TO CHAN#
1)		MOVE	T3,IO.PTR+%SC	;GET POINTER TO NEW FILE
1)		MOVE	T4,VERNUM	;GET VERSION OF PROGRAM
1)		SKIPN	I.VER(T3)	;UNLESS ALREADY SET BY SWITCH...
1)		MOVEM	T4,I.VER(T3)	;SAVE FOR ENTER
1)		PJRST	DVMOV.		;GO COPY PAGED FILE TO SYMBOL FI
	LE
1)	
1)43	WRTSYM:	MOVEI	T1,DC		;USE THIS CHAN
1)		MOVEM	T1,IO.CHN
1)		MOVE	T1,IO.PTR+%SC	;HIDE DATA BLOCK HERE
1)		MOVEM	T1,IO.PTR+DC	;NOW BRING IT FORTH
1)		PUSHJ	P,DVCHN.##	;PUT ADDRESS OF BLOCK IN T1
1)		MOVSI	T2,(Z DC,)	;RESET CHAN # IN AC FIELD
1)		MOVEM	T2,I.CHN(T1)	;SINCE %SC IS THERE CURRENTLY
1)		CAIE	P1,AS.IX	;ALGOL?
1)		  JRST	WRTSY0		;NO, SETUP 1ST WORD FOR LS
1)		MOVE	T3,ASYM		;YES, SETUP COUNT WORD
1)		HRLI	T3,1044		;AND BLOCK TYPE
1)		JRST	WRTSY1		;CONTINUE
1)	WRTSY0:	MOVE	T3,LSYM		;LS AREA COUNT
1)		HRLI	T3,1700		;BLOCK TYPE FOR TRIPLET SYMBOLS
1)	WRTSY1:	HRRZ	T2,T3		;SAVE COUNT FOR ESTIMATE
1)		SUBI	T3,1		;WORDS FOLLOWING IS 1 LESS
1)		MOVEM	T3,@TAB.LB(P1)	;SAVE WORD COUNT IN AREA
1)		LSH	T2,-.DBS2W	;[650] INTO BLOCKS
1)		MOVEM	T2,I.EST(T1)	;WE NEED THIS MUCH
1)		MOVE	T2,VERNUM	;GET VERSION OF CORE IMAGE
1)		SKIPN	I.VER(T1)	;SKIP IF SET BY SWITCH
1)		MOVEM	T2,I.VER(T1)	;NO, SO SET IT
1)		PUSHJ	P,DVNAM.##	;MAKE SURE NAME IS SET UP
1)		PUSHJ	P,DVOPN.##	;INIT DEVICE
1)		PUSHJ	P,DVENT.##	;ENTER FILE
1)					;NOW FOR OUTPUT
1)	WRTSY2:	MOVE	T1,TAB.LB(P1)	;GET BOTTOM ADDR IN CORE
1)		SUB	T1,TAB.PT(P1)	;-LENGTH
1)		HRLZ	T1,T1		;-LENGTH,,0
1)		HRR	T1,TAB.LB(P1)	;FIRST ADDR OF BUFFER
1)		HRRI	T1,-1(T1)	;-LENGTH,,ADDR-1
1)		SETZ	T2,
1)		OUT	DC,T1		;OUTPUT IT
1)		PJRST	DVRLS.##	;PAGING NO LONGER HANDLED HERE
1)		PUSH	P,[DC]
1)		.ERR.	(ST,,V%L,L%W,S%W,OES)
1)		POPJ	P,
1)	
1)44	;**;[1146] Move 5 pages starting at JBSAVE down where indicated
****
2)45	;**;[1172] Delete and move up @ SYMINI	JNG	5-Jun-79
2)	;**;[1146] Move 5 pages starting at JBSAVE down where indicated
**************
Digital Equipment Corporation       28-AUG-79    Page 541
PCO Log Report


1)44	SUBTTL	FINISH JOBDAT AND DECIDE TO LOAD OR SAVE
1)	
****
 
 
2)45	SUBTTL	DECIDE TO LOAD OR SAVE
2)	
**************
1)44	;  4.	ON TOPS-20, ANY PSECT HAS THE READ-ONLY ATTRIBUTE.
1)	;  5.	THE PROGRAM WILL NOT FIT IN MEMORY WITH LINK'S FINAL PLA
	CEMENT CODE
****
2)45	;  4.	ANY PSECT HAS NON-DEFAULT WRITEABILITY.
2)	;  5.	THE PROGRAM WILL NOT FIT IN MEMORY WITH LINK'S FINAL PLA
	CEMENT CODE
**************
1)44	SAVTST:	PUSHJ	P,JOBSET	;[1146] FINISH SETTING UP JOBDAT
1)		PUSHJ	P,HJBSET	;[1146]   AND VESTIGIAL JOBDAT
1)		SKIPE	IO.PTR+%VC	;[1146] SAVE FILE REQUIRED?
1)		JRST	JBSAVE		;YES
****
2)45	;**;[1172] Delete @ SAVTST	JNG	5-Jun-79
2)	SAVTST:	SKIPE	IO.PTR+%VC	;[1146] SAVE FILE REQUIRED?
2)		JRST	JBSAVE		;YES
**************
1)47	;HERE TO SET UP THE REST OF THE JOBDAT AREA. ENTER WITH P1 POINT
	ING TO JOBDAT
1)	;AREA AND P2 TO VESTIGIAL JOBDAT (0 IF NO HIGH SEGMENT).
1)	
1)	JOBSET:	SKIPE	T2,HC.S1	;GET HIGHEST DATA LOCATION LOADE
	D
1)		SUBI	T2,1		;MAKE IT HIGHEST LOC LOADED
1)	IFN FTOVERLAY,<
1)		SKIPL	LNKMAX		;LOADED ANY OVERLAYS?
1)		SKIPN	T1,JOB116	;AND SAVED SYMBOLS?
1)		JRST	.+4		;NO
1)		HLRE	T2,T1		;-LENGTH
1)		MOVM	T2,T2
1)		ADDI	T2,-1(T1)	;HIGHEST LOCATION
1)	>
1)		HRLZM	T2,.JBCOR(P1)	;PUT  HIGHEST LOC IN LEFT HALF
1)		HRRZ	T2,HL.S1	;GET HIGHEST LOC REQUIRED
1)		HRL	T2,STADDR	;GET STARTING ADDRESS
1)		MOVSM	T2,.JBSA(P1)	;SET .JBSA AND .JBFF
1)		HRRZM	T2,.JBFF(P1)	;INCASE RESET NOT DONE FIRST
1)		IOR.	T2,.PGSIZ	;INCLUDE ALL OF THIS PAGE
1)		HRRZM	T2,.JBREL(P1)	;SET .JBREL
1)		MOVSI	T2,(HALT)	;PUT A HALT IN .JB41
1)		SKIPN	.JB41(P1)	;UNLESS ALREADY SETUP
1)		MOVEM	T2,.JB41(P1)
1)		MOVE	T2,.JBSYM(P1)	;GET SYMBOL TABLE POINTER
Digital Equipment Corporation       28-AUG-79    Page 542
PCO Log Report


1)		HRRZ	T1,T2		;GET POINTER
1)		JUMPE	P2,JOBST0	;NO HIGH SEG POSSIBLE
1)		CAML	T1,LL.S2	;SEE IF IN HIGH SEG
1)		MOVEM	T2,.JBHSM(P2)	;STORE IN HIGH SEG DATA AREA
1)		SKIPE	T1,HL.S2	;GET HIGHEST LOC +1
1)		SUBI	T1,1		;HIGHEST LEGAL ADDRESS
1)		ADD	T1,LL.S2	;PLUS ORIGIN
1)		IOR.	T1,.PGSIZ	;PUT ON PAGE BOUND
1)		SKIPN	T2,HL.S2	;[650] LENGTH TO SAVE
1)		JRST	JOBST1		;[650] NONE?
1)		SKIPN	.JBDDT##(P1)	;[650] DDT LOADED?
1)		JRST	JOBST1		;[650] NO, NUMBER IS OK
1)		SUBI	T2,1		;[650] YES, BE LIKE MONITOR
1)		IOR.	T2,.PGSIZ	;[650] ROUND UP TO TOP OF PAGE
 
 
1)		ADDI	T2,1		;[650] THENCE TO BOTTOM OF NEXT
1)	JOBST1:	HRL	T1,T2		;[650] LENGTH TO SAVE,,HIGHEST A
	DDR
1)		MOVEM	T1,.JBHRL(P1)	;LENGTH,,HIGHEST ADDRESS
1)	JOBST0:	MOVE	T1,.JBERR	;GET  NO OF PREVIOUS ERRORS
1)		MOVEM	T1,.JBERR(P1)	;COUNT AS EXECUTION ERRORS
1)		MOVEM	T1,ERRNO	;PROHIBIT EXECUTION IF NON-ZERO
1)	;**;[1144] Replace @JOBST0+3L	DZN	16-Feb-79
1)	
1)	;  ..
1)	
1)48	;  ..
1)	
1)	;COMPUTE ADDRESS AT WHICH TO START PROGRAM. IF A DEBUGGER IS LOA
	DED, THIS IS NOT
1)	;NECESSARILY THE MAIN PROGRAM'S START ADDRESS, BUT DEPENDS ON TH
	E DEBUGGER.
1)	
1)		SETZ	T1,		;[1144] ASSUME WE DON'T START PR
	OGRAM
1)		SKIPE	EXECSW		;GO INTO EXECUTION?
1)		MOVE	T1,STADDR	;YES, ASSUME .JBSA
1)		HRRZ	T2,DEBUGSW	;[1144] IF DEBUGGING, DEBUGGER'S
	 START ADDRESS
1)		SKIPGE	DEBUGSW		;[1144]   TAKES PRIORITY SO
1)		MOVE	T1,@STLOCN(T2)	;[1144]   FIND IT
1)		HRRM	T1,EXECSW	;IN ANY CASE STORE BACK IN EXECS
	W
1)		POPJ	P,
1)	
1)	
1)	DEFINE KEYMAC(A,B)<
1)	  XALL					;;[1144] GIVE A GOOD LIS
	TING
1)	  IFIDN <A><DEB>,<			;;[1144] SELECT ONLY DEB
Digital Equipment Corporation       28-AUG-79    Page 543
PCO Log Report


	UGGING KEYWORDS
1)	    %%1==-1				;;[1144] SKIP DUMMY ENTR
	Y
1)	    IRP B,<				;;[1144] CHECK EACH KEYW
	ORD
1)	      IFGE %%1,<			;;[1144]   THAT IS NOT T
	HE DUMMY
1)	        IFN <%%1&1>,<			;;[1144]   AND IS A DEGU
	GGER NAME
1)	          %%2==0			;;[1144] ASSUME WE WON'T
	 FIND A DEBUGGER
1)	          IFN TOPS20,<			;;[1144] TOPS-20 UDDT IS
	 SPECIAL
1)	            IFIDN <B><DDT>,<		;;[1144] CHECK FOR DDT D
	EBUGGER
1)		[770000]		;UDDT STARTS AT 770000
1)	              %%2==1			;;[1144] REMEMBER WE FOU
	ND A DEBUGGER
1)	            >
1)	          >
1)	          IFIDN <B><FORDDT>,<		;;[1144] FORDDT IS SPECI
	AL
1)		STADDR			;FORDDT FORCES START ADDRESS TO
	ITSELF
1)	            %%2==1			;;[1144] REMEMBER WE FOU
	ND A DEBUGGER
1)	          >
1)	          IFIDN <B><COBDDT>,<		;;[1144] COBDDT IS SPECI
	AL
1)		STADDR			;COBDDT GETS CONTROL FROM COBOL
	PROGRAM
1)	            %%2==1			;;[1144] REMEMBER WE FOU
	ND A DEBUGGER
1)	          >
1)	          IFE %%2,<			;;[1144] IF IT WASN'T AB
	OVE DEBUGGERS
1)		.JBDDT(P1)		;OTHER DEBUGGERS SET .JBDDT
1)	          >
1)	        >
1)	      >
1)	      %%1==%%1+1			;;[1144] ADVANCE TO NEXT
	 ENTRY
1)	    >
1)	  >
1)	  PURGE %%1,%%2				;;[1144] CLEAN UP AFTERW
	ARD
 
 
1)	  SALL					;;[1144]   ..
1)	>
1)	
Digital Equipment Corporation       28-AUG-79    Page 544
PCO Log Report


1)	STLOCN:	KEYWORDS
1)	
1)49	;HERE TO SETUP REST OF VESTIGIAL JOBDAT AREA
1)	;ENTER WITH  P1 POINTING TO JOBDAT AREA
1)	
1)	HJBSET:	JUMPE	P2,CPOPJ	;DON'T NEED TO DO THIS IF NO HIG
	H SEG
1)		HRRZ	T1,HL.S2	;GET HIGHEST HIGH SEG LOCATION+1
1)		SKIPE	.JBDDT(P1)	;IF DDT LOADED
1)		SOJA	T1,[IOR. T1,.PGSIZ	;INCLUDE ALL OF THIS PAG
	E
1)			AOJA	T1,.+1]		;IN LENGTH
1)		HRL	T1,.JBREN(P1)	;GET .JBREN
1)		MOVSM	T1,JOBHRN(P2)	;SET BOTH HALVES OF JOBHRN
1)		MOVE	T1,.JBSA(P1)	;PUT .JBSA
1)		MOVEM	T1,JOBHSA(P2)	;IN HIGH SEG
1)		MOVE	T1,.JB41(P1)
1)		MOVEM	T1,JOBH41(P2)
1)		MOVS	T1,.JBCOR(P1)
1)		SKIPN	.JBDDT(P1)	;TEST FOR RARE CASE OF DDT, SYMB
	OLS AND CODE
1)		JRST	.+3		; ALL IN HIGH SEGMENT
1)		TRNN	T1,-140		;TRUE IF HIGHEST LOC IS 137 OR L
	ESS
1)		ADDI	T1,1		;IF SO MAKE IT 140 IN HIGH SEG
1)		MOVSM	T1,.JBHCR(P2)	; SO WE LOAD LOW
1)		MOVE	T1,.JBVER(P1)
1)		MOVEM	T1,.JBHVR(P2)
1)		SKIPE	T1,RUNAME	;GET PROGNAM
1)		JRST	.+3		;SET
1)		SKIPN	T1,SSNAME	;IF NOT TRY SAVE FILE NAME
1)		MOVE	T1,LODNAM	;USE DEFAULT IF NOT SET
1)		MOVEM	T1,.JBHNM(P2)	;INTO HIGH SEG
1)		MOVE	T1,HL.S1	;HIGHEST LOC +1 IN LOW SEG
1)		SUBI	T1,1
1)		IOR.	T1,.PGSIZ	;ROUND UP TO PAGE BOUNDARY
1)		ADDI	T1,1		;NEXT PAGE
1)		CAMGE	T1,LL.S2	;GREATER THAN HI-ORG?
1)		MOVE	T1,LL.S2	;NO
1)		LSH	T1,-9		;PAGE #
1)		HRLZM	T1,JOBHSO(P2)	;STORE IN HIGH
1)		HRRZM	T1,.JBHSO(P1)	;AND STORE
1)		POPJ	P,
1)	
1)50	;**;[1146] Insert before LC.DLT-5L	DZN	8-Mar-79
****
2)48	;**;[1172] Move up JOBSET and HJBSET	JNG	5-Jun-79
2)	;**;[1146] Insert before LC.DLT-5L	DZN	8-Mar-79
**************
1)69		ANDCMI	T1,.IPM		;[1132] PUT ON THE PAGE BOUND
****
Digital Equipment Corporation       28-AUG-79    Page 545
PCO Log Report


2)67	;**;[1172] Insert @ XCMADV+21L	JNG	5-Jun-79
2)		ADDI	T1,1		;[1172] SUBTRACTED ONE TOO MUCH,
	 HC IS FF FORMAT
2)		ANDCMI	T1,.IPM		;[1132] PUT ON THE PAGE BOUND
**************
1)85	ZCMP9A:	SKIPE	T1,LSTPAG	;NOW CUT BACK CORE
****
 
 
2)83		; ..
2)	
2)84		; ..
2)	ZCMP9A:	SKIPE	T1,LSTPAG	;NOW CUT BACK CORE
**************
1)88	DEBNAM:	KEYWORDS
1)	
****
2)87		XALL
2)	DEBNAM:	KEYWORDS
2)		SALL
2)	
**************
1)99	;**;[1070] Insert @ JBLOAD	JNG	23-May-79
1)	JBLOAD:	MOVE	T1,[HC.IX+1-HG.TAB,,HC.IX+1]	;[1070] AOBJN PT
	R TO AREAS
1)		PUSHJ	P,XX.ZAP	;[1070] CLEAR ALL AREAS ABOVE HC
1)		AOBJN	T1,.-1		;[1070]   SINCE CORE MGT BELOW A
	SSUMES THEM GONE
1)		DMOVE	P1,LC.LB	;SAVE THE CURRENT LOCATIONS
1)		DMOVE	P3,LC.AB	; SO WE CAN MOVE DATA
****
2)98	;**;[1172] Delete @ JBLOAD	JNG	5-Jun-79
2)	JBLOAD:	DMOVE	P1,LC.LB	;SAVE THE CURRENT LOCATIONS
2)		DMOVE	P3,LC.AB	; SO WE CAN MOVE DATA
**************
1)112	U	(LSCNT)			;COUNT OF WORDS LEFT IN THIS 128
	 WORD BLOCK
1)	U	(TTLPTR)		;BACK POINTER TO LAST SUBPROGRAM
1)	U	(LCSIZE)		;SIZE OF LOCAL SYMBOL FILE
1)	U	(JOBPTR)		;POINTER TO COPY OF JOBDAT AREA
1)	U	(JBHPTR)		;DITTO FOR HIGH SEG
1)	U	(LSTPAG)		;-1 WHEN LAST PAGE IS IN CORE
1)	U	(ERRNO)			;.JBERR COUNT
****
2)111	;**;[1172] Replace @ LSCNT	JNG	5-Jun-79
2)	U	(TTLPTR)		;BACK POINTER TO LAST SUBPROGRAM
2)	U	(JOBPTR)		;POINTER TO COPY OF JOBDAT AREA
2)	U	(JBHPTR)		;DITTO FOR HIGH SEG
2)	IFE FTEXE,<
2)	U	(LSTPAG)		;-1 WHEN LAST PAGE IS IN CORE
2)	> ;END IFE FTEXE
Digital Equipment Corporation       28-AUG-79    Page 546
PCO Log Report


2)	U	(ERRNO)			;.JBERR COUNT
**************
1)112	;**;[1132] Replace @ SCRTCH	JNG	30-Jan-79
1)	U	(SYMPSC)		;[1132] RC BLOCK OF /SYMSEG PSEC
	T
1)	
****
2)111	;**;[1172] Replace @ SYMPSC	JNG	5-Jun-79
2)	U	(SYMDEW)		;[1172] RESERVE SPACE IN SYMBOL
	TABLE
2)	U	(SYMFUL)		;[1172] SYMOUT HAS NON-SKIPPED O
	NCE
2)	
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 547
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -284*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          10-JUN-79

[Programmer]            GILBERT

[Routines]              LNKWLD

[Key Words]             /COMMON     NOALLOC     RC.HL

[Source Before Edit]    %4A  (001172)

[Source After Edit]     %4A  (001173)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 548
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK can forget to allocate pages containing  a  common
block  declared  with  the  /COMMON  switch.  This will only
occur if no modules are loaded after the /COMMON switch, and
only if LINK is writing an EXE file.
 

                        **********


[DIAGNOSIS]
 
     The /COMMON switch updates the  current  value  of  the
.LOW.  relocation counter, but not the highest location ever
loaded.  If no other module is ever seen, then  the  highest
location loaded counter will remain incorrect.
 

                        **********


[CURE]
 
     Update the  highest  location  loaded  (RC.HL)  in  the
/COMMON switch processor.
 
 
Digital Equipment Corporation       28-AUG-79    Page 549
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 2222 08-Jun-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1557 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	5-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	10-Jun-7
	9
2)	
**************
1)1	DECEVR==1172		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1173		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1173	JNG	10-Jun-79
2)	;	Update RC.HL on /COMMON.
2)	;	Routine: LNKWLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 550
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1208 07-Jun-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1558 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	5-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	10-Jun-7
	9
2)	
**************
1)1	DECEVR==1172		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1173		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1173	Update RC.HL on /COMMON.
2)	
**************
1)16		CAML	T2,HL.S1	;NEVER DECREASE HL.S1
****
2)16	;**;[1173] Insert @ .COMMON+3L	JNG	10-Jun-79
2)		CAMLE	T2,RC.HL(T1)	;[1173] NEVER DECREASE
2)		MOVEM	T2,RC.HL(T1)	;[1173] UPDATE HIGHEST LOCATION
	IN THIS PSECT
2)		CAML	T2,HL.S1	;NEVER DECREASE HL.S1
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 551
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -285*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)+766 THRU 1173 TESTED IN 4A(1173)

[Date Entered]          12-JUN-79

[Programmer]            D. NEFF

[Routines]              ALL!

[Key Words]             ALL MESAGS

[Source Before Edit]    %    (000000)

[Source After Edit]     %4A  (001174)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-12548
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 552
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
LINK's error message facility has a number of problems:
 
     1.  Specifying /VERBOSITY:SHORT can result  in  a  variety  of
         fatal  memory  errors  following  a  message  that, in its
         medium form, prints a large amount of variable text.
 
     2.  After edit 1144, defining the logical name  LOG:  as  TTY:
         results in an address check.
 
     3.  Various messages added to LINK by the  psect  project  for
         version  4  did  not include long messages (available with
         the /VERBOSITY:LONG switch) to explain them.  This has the
         additional  side  effect  that  the  LINK  manual does not
         explain these messages, since the appendix describing  all
         messages was generated directly from LINK's sources.
 
     4.  The listing of LNKERR, which lists all messages  in  LINK,
         does not agree with the actual messages in LINK.  As noted
         above, this has adversely affected the LINK manual.
 
     5.  LINK's messages,  especially  the  ones  that  cannot  use
         LINK's  internal  message facility, are in general hard to
         find when debugging and when  attempting  to  keep  LNKERR
         up-to-date.
 
     6.  LINK is missing first line messages and long  explanations
         for  the  more  recent  LOOKUP/RENAME/ENTER  error  codes.
         Again, this has impacted the LINK manual.
 
     7.  Several of  LINK's  messages  print  the  module  or  file
         associated  with  a particular error, but not both.  Also,
         many messages that ought to include  this  information  do
         not.
 
     8.  After edit 1144, the blank line in the log file  following
         the  processing  of  a  link  in  an  overlaid  program is
         missing.
 
     9.  The  code  to  handle  common   portions   of   the   long
         LOOKUP/RENAME/ENTER   messages  was  put  under  REPEAT  0
Digital Equipment Corporation       28-AUG-79    Page 553
PCO Log Report


         (turned off)  without  including  the  text  in  the  long
         messages.
 
    10.  Several of LINK's messages do not get written to  the  log
         file as they should, or are not under control of the /LOG,
         /LOGLEVEL,  /ERRORLEVEL  or  /VERBOSITY  switches.    Some
         examples   are  the  LNKUGS,  LNKRER,  LNKRLC  and  LNKLSS
         messages.
 
    11.  Long (multi-line) messages are not very  readable  in  the
         log  file.  Typically, the heading of a list does not line
         up with the data under it.
 
 

                        **********


[DIAGNOSIS]
 
 
     1.  If a JMP code is used in an  .ETC.  macro  representing  a
         non-fatal  error,  LINK is supposed to follow the JMP to a
         message continuation  list  and  subsequent  return  after
         printing  the  message.   However, if the /VERBOSITY:SHORT
         switch is specified, LINK attempts to speed error  message
         processing  by skipping any .ETC. codes.  This causes LINK
         to return to a random word following the message.
 
     2.  Edit 1144 made log file initialization always  use  LINK's
         generalized  file initialization routines.  Unfortunately,
         edit 604 made these routines fail for terminals other than
         the controlling one.
 
     3.  The long messages were inadvertently left out.
 
     4&5.The difficulty of finding LINK's messages in  the  sources
         has generally led to LNKERR getting out of date.
 
     6.  LINK's table must be periodically updated as  new  monitor
         error codes are added.
 
     7.  There is no  general  facility  to  print  common  message
         segments,  so  each  maintainer  or  developer  has had to
         remember to include the module and file in all appropriate
         messages.   This  has  made  it difficult to keep all such
         messages consistent.
 
     8.  The feature that printed a blank  line  in  the  log  file
         relied  on  a bug in LINK that was fixed by edit 1144.  In
         particular, the blank line feature required a  bit  to  be
Digital Equipment Corporation       28-AUG-79    Page 554
PCO Log Report


         saved  by a byte pointer that was not intended to save it.
         Since edit 1144 caused the byte pointer to save only  what
         it was supposed to, the blank line bit got lost.
 
     9.  The  common  message  feature  was  turned   off   without
         realizing its effect on the long LOOKUP/RENAME/ENTER text.
 
    10.  The affected messages do not use LINK's  internal  message
         facility,  but  instead  do  everything  by  hand.   These
         messages neglect to take the  log  file  into  account  if
         necessary.
 
    11.  Many of LINK's more complex messages contain imbedded tabs
         to  line  up  columns of data.  This works on the terminal
         because each new line starts at a tab stop.  However,  the
         combination  of the time-stamp, level and severity numbers
         and error code in the log file does not end on a tab stop.
         Thus, subsequent tabs in the text do not line up.
 
 

                        **********


[CURE]
 
 
     1.  Make LINK's error message routines only ignore those .ETC.
         codes that do not affect program control.
 
     2.  Fix  LINK's  file  initialization  routines  to  correctly
         detect the job's controlling terminal.
 
     3.  Include long message text for all messages.  This  affects
         the following messages:
 
                LNKDEB  LNKDLT  LNKEGD  LNKELF  LNKIMI  LNKIMM
                LNKIRC  LNKIRR  LNKISS  LNKIUU  LNKLFC  LNKLFI
                LNKLNS  LNKLSS  LNKNSA  LNKONS  LNKRER  LNKRLC
                LNKRME  LNKUGS  LNKVAL  LNKXCT
 
     4&5.Label all  of  LINK's  error  messages  with  well-defined
         labels.   Also, use a special OPDEF in place of OUTSTR for
         those  messages  that  cannot  use  the  regular   message
         facility.   This  makes  all messages easy to find both in
         the listing and in  debugging  versions  of  LINK.   Then,
         update LNKERR so that it agrees with the real messages.
 
     6.  Update   LINK's   tables   to    include    all    current
         LOOKUP/RENAME/ENTER  errors.   This  affects the following
         messages:
Digital Equipment Corporation       28-AUG-79    Page 555
PCO Log Report


 
                LNKFEE  LNKFLE  LNKFRE  LNKGSE
 
     7.  Add a facility to print common segments of  messages,  and
         use  it  to  print  the  module  and  file currently being
         processed wherever possible.  This affects  the  following
         messages:
 
                LNKAIC  LNKB4R  LNKCCD  LNKCMC  LNKCMF  LNKDRC
                LNKDSC  LNKDSL  LNKDSO  LNKFCD  LNKFOV  LNKFSF
                LNKHCL  LNKHSL  LNKI4D  LNKI4S  LNKI4T  LNKICB
                LNKIPO  LNKIPX  LNKIRB  LNKIRC  LNKIRR  LNKISD
                LNKISN  LNKISO  LNKMDS  LNKMSR  LNKOFN  LNKPBI
                LNKRBS  LNKSRB  LNKSRP  LNKSTL  LNKT13  LNKTMA
                LNKUAR  LNKURC
 
     8.  Add a new function to .ETC. to print a blank line  in  the
         log file, since the bit used before cannot work.
 
     9.  Include    the    common    portions    of    the     long
         LOOKUP/RENAME/ENTER messages directly in the long text for
         each  separate  message.   This  affects   the   following
         messages:
 
                LNKFEE  LNKFLE  LNKFRE  LNKGSE
 
    10.  Make the following messages use  LINK's  internal  message
         facility  so  that  these  messages get written to the log
         file when necessary:
 
                LNKEGD  LNKLFB  LNKLFC  LNKLFI  LNKLIN  LNKLSS
                LNKRER  LNKRLC  LNKUGS
 
 
    11.  Restructure the log file format slightly so that the  text
         portion of each message begins on a tab stop.
 
As a result of a general clean-up  of  LINK's  messages  also  done
along with this edit, the following message mnemonics were changed:
 
       LNKIBC, LNKTEC --> LNKAIC        LNKEOI, LNKEID --> LNKEIF
       LNKANC --> LNKANM        LNKCEF --> LNKMEF
       LNK999 --> LNKEGD        LNKICI --> LNKIMI
       LNKITT --> LNKICB        LNKIFD --> LNKOFD
       LNKIPL --> LNKIRR        LNKLIM --> LNKLIN
       LNKLNC --> LNKLNM        LNKODV --> LNKOFS
       LNKSLS --> LNKOSL        LNLRPN --> LNKSRP
       LNKRUC --> LNKRUM
 
Also, the following messages were deleted:
 
Digital Equipment Corporation       28-AUG-79    Page 556
PCO Log Report


       LNKPOO   LNKPSF
 
Digital Equipment Corporation       28-AUG-79    Page 557
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1557 10-Jun-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1633 10-Jun-1979
 
1)1	;COPYRIGHT (C) 1973, 1978, 1979 BY
1)	;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
****
2)1	;COPYRIGHT (C) 1973, 1979 BY
2)	;DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
**************
1)1	DECEVR==1173		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1174	DZN	10-Jun-79	SPRs 20-12548, 20-12244, QAR 10-
	03199
2)	;	Revamp all error messages.
2)	;	. Label  all messages with E$$xxx:: or Ennxxx:: so messa
	ges can be found
2)	;	  when debugging. E$$xxx should be  the  label  of  the
	 .ERR.  (or  its
2)	;	  preceeding  PUSH  P,[channel])  that  defines  the  .E
	Rxxx text block.
2)	;	  Ennxxx should be the label of all other .ERR.s with th
	e same  assigned
2)	;	  mnemonic, with nn starting at 01.
2)	;	. Include the module and file name in which an error was
	 detected in all
2)	;	  applicable messages.
2)	;	. Make  .OERR.  synonamous  with OUTSTR for use in place
	 of .ERR. when a
2)	;	  message must be printed with an OUTSTR, so that all su
	ch messages  can
2)	;	  be found easily.
2)	;	. Make  the  list  of  messages  and  long text in LNKER
	R and the actual
2)	;	  messages in LINK agree.
2)	;	. Fix log device being a terminal other than the control
	ling one.
2)	;	. Clean up the wording of all messages to be more consis
	tent.
2)	;	Routines: All
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 558
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPAR.MAC[30,4507]  	created: 0230 09-Jun-1979
File 2)	LINK:LNKPAR.MAC[10,645063]	created: 1652 11-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	5-Jun-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	10-Jun-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978, 1979
1)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
****
2)1	;COPYRIGHT (C) 1973,  1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
**************
1)1	DECEVR==1172		;DEC EDIT VERSION
1)		LOC	137	;KEEPS MACRO HAPPY
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)		LOC	137	;KEEPS MACRO HAPPY
**************
1)5	;1172	Delete .FRESP, .SYLIM, .OVPSP, and .LLOC.
1)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
****
2)5	;1172	Delete .FRESP, .SYLIM, .OVPSP, AND .LLOC.
2)	;1174	Label and clean up all error messages.
2)6	SUBTTL	STANDARD MNEMONICS--REGISTERS, BITS, UUOS
**************
1)10	PT.FAK==:1B7		;TITLE DEFINED BY LINK-10 NOT USER
1)	PT.BLK==:1B8		;FAIL LOCAL BLOCK
****
2)10	PT.FAK==:1B7		;TITLE DEFINED BY LINK NOT USER
2)	PT.BLK==:1B8		;FAIL LOCAL BLOCK
**************
1)26	    T.'X,,T.ERR
1)	  >>
****
2)26	    T.'X,,E$$IRB	;;[1174]
2)	  >>
**************
1)26	    T.ERR,,T.'Y
1)	   >
1)	   IFNDEF T.'Y,<
1)	    T.ERR,,T.ERR
1)	>>>>
****
2)26	    E$$IRB,,T.'Y	;;[1174]
2)	   >
2)	   IFNDEF T.'Y,<
Digital Equipment Corporation       28-AUG-79    Page 559
PCO Log Report


2)	    E$$IRB,,E$$IRB	;;[1174]
2)	>>>>
**************
1)28	;	.ERR.	(TYP,FLG,VER,LVL,SEV,CODE,TXT)
1)	;	.ETC.	(TYP,FLG,,,,CODE,TXT)
1)	;	...
****
2)28	;	.ERR.   (TYP,FLG,VER,LVL,SEV,CODE,TXT)
2)	;	.ETC.   (TYP,FLG,,,,CODE,TXT)
2)	;	...
 
 
**************
1)28	;	.EE	ERROR MAY BE EDITED AND JOB CONTINUED
1)	;	.EB	PRINT BLANK LINE IN LOG AFTER THIS MESSAGE
****
2)28	;	.EB	PRINT BLANK LINE IN LOG AFTER THIS MESSAGE
**************
1)28	DEFINE	.ERR.(TYP,FLG,VER,LVL,SEV,CODE,TXT)<
****
2)28	;
2)	;THE .ERR. CALL (OR THE PUSHJ P,[CHANNEL] THAT PRECEEDS IT) THAT
	 DEFINES TXT (OR
2)	;THAT USES THE .EN FLAG IN ITS PLACE) SHOULD HAVE THE LABEL E$$x
	xx::, WHERE xxx
2)	;IS THE CODE ARGUMENT. ALL OTHER .ERR.'S THAT USE THE SAME CODE
	SHOULD HAVE
2)	;LABELS OF Ennxxx, WHERE nn BEGINS WITH 01 AND INCREASES BY 1 FO
	R EACH USE.
2)	;REALLY FATAL ERRORS THAT CANNOT USE .ERR. SHOULD USE .OERR. WIT
	H THE SAME LABEL
2)	;CONVENTIONS.
2)29	DEFINE	.ERR.(TYP,FLG,VER,LVL,SEV,CODE,TXT)<
**************
1)28	            .ER'CODE::ASCIZ \CODE \
1)	            IFE <<FLG>&.EN>,<ASCIZ \TXT\>
1)	          ]^_
****
2)29	            .ER'CODE::ASCIZ \CODE\	;;[1174]
2)	            IFE <<FLG>&.EN>,<ASCIZ \TXT\>
2)		    IFN <<FLG>&.EN>,<0>		;;[1174] NULL TEXT
2)	          ]^_
**************
1)29	;CONTINUED ERROR WORDS HAVE SIMILAR FORM. DIFFERENCES ARE:
****
2)29	SYN	OUTSTR,.OERR.		;[1174] USED FOR MESSAGES LNKLOG
	 CAN'T HANDLE
2)30	;CONTINUED ERROR WORDS HAVE SIMILAR FORM. DIFFERENCES ARE:
**************
1)29	;VER	BLANK
****
Digital Equipment Corporation       28-AUG-79    Page 560
PCO Log Report


2)30	;	RTN	RETURN FROM PREVIOUS JMP
2)	;	NLN	PRINT A NEW LINE WITH CORRECT INDENTATION
2)	;	XCT	CODE IS ADDRESS OF INSTRUCTION TO XCT, SKIP ALLO
	WED
2)	;	BKL	PRINT A BLANK IN THE LOG FILE ONLY, AND ONLY IF
	REAL LOG FILE
2)	;	DAT	PRINT TODAY'S DATE
2)	;	NOP	NO OPERATION (GOOD FOR JMPING TO)
2)	;VER	BLANK
**************
1)29	DEFINE	.ETC.	(TYP,FLG,VER,LVL,SEV,CODE,TXT)<
1)	 IFGE %LVL,<
****
2)30	DEFINE	.ETC.(TYP,FLG,VER,LVL,SEV,CODE,TXT)< ;;[1174]
2)	 IFGE %LVL,<
**************
1)29	   IFNB <TXT>,<
1)	    EXP <FLG>+<ET%'TYP>B<B%LVL>+<[ ASCIZ \TXT\]>
1)	   >
1)	   IFB <TXT>,<
1)	    EXP <FLG>+<ET%'TYP>B<B%LVL>
****
2)30	;;**;[1174] Replace in .ETC. macro	DZN	3-Jun-79
2)	   IFIDN <TYP><STR>,<			;;[1174]
2)	    EXP <FLG>+<ET%'TYP>B<B%LVL>+<[ ASCIZ \TXT\]>
 
 
2)	   >
2)	   IFDIF <TYP><STR>,<			;;[1174]
2)	    EXP <FLG>+<ET%'TYP>B<B%LVL>
**************
1)30	IFN .NWBLK,<
****
2)31	 XXX	(RTN);;[1174]	RETURN FROM LAST JMP
2)	 XXX	(NLN);;[1174]	NEW LINE
2)	 XXX	(XCT);;[1174]	XCT AN INSTRUCTION
2)	 XXX	(BKL);;[1174]	BLANK LINE IN LOG FILE (OLD .EB FLAG)
2)	 XXX	(DAT);;[1174]	PRINT TODAY'S DATE
2)	 XXX	(NOP);;[1174]	NO OPERATION
2)	IFN .NWBLK,<
**************
1)31	.EE==1B2		;[1144] ERROR CAN BE EDITED
1)	.EB==1B3		;[1144] PRINT BLANK LINE IN LOG AFTER TH
	IS MESSAGE
1)	.EN==1B4		;[1144] .ERR. WITHOUT MESSAGE (JUST CODE
	)
1)	;BIT POSITIONS
****
2)32	.EN==1B2		;[1174] .ERR. WITHOUT MESSAGE (JUST CODE
	)
2)	;BIT POSITIONS
Digital Equipment Corporation       28-AUG-79    Page 561
PCO Log Report


**************
1)31	S%I==:1			;INFORMATION ONLY
****
2)32	;**;[1174] Insert before S%I	DZN	29-May-79
2)	S%D==:0			;[1174] DEFERRED (SEVERITY DEPENDS ON LO
	OKUP/ENTER CODE)
2)	S%I==:1			;INFORMATION ONLY
**************
1)31	S%F==:37		;ALWAYS FATAL
1)	;LOG LEVEL CUTOFF
1)	L%I==:1			;INFORMATION ONLY
****
2)32	S%C==:^D28		;[1174] FATAL (?) BUT CONTINUE ANYWAY
2)	S%F==:37		;ALWAYS FATAL
2)	;LOG LEVEL CUTOFF
2)	;**;[1174] Insert before L%I	DZN	29-May-79
2)	L%D==:0			;[1174] DEFERRED (LEVEL DEPENDS ON LOOKU
	P/ENTER CODE)
2)	L%I==:1			;INFORMATION ONLY
**************
 
Digital Equipment Corporation       28-AUG-79    Page 562
PCO Log Report


[FILCOM]
File 1)	LINK:LNK999.MAC[30,4507]  	created: 1428 01-Mar-1978
File 2)	LINK:LNK999.MAC[10,645063]	created: 1639 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JBC/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JBC/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	LNK999
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNK999
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	EMERGENCY GETSEG
****
2)2	;START OF VERSION 4A
2)	;1174	Label and clean up error messages.
2)3	SUBTTL	EMERGENCY GETSEG
**************
1)3		.ERR.	(MS,,V%L,L%I,S%I,999,<Emergency GETSEG done>)
1)		HRRZ	T1,SEGBLK+2	;GET ERROR CODE
****
2)3	E$$EGD::.ERR.	(MS,,V%L,L%I,S%I,EGD,<Emergency GETSEG done>)
2)		HRRZ	T1,SEGBLK+2	;GET ERROR CODE
**************
1)3	LNKDIE:	PUSH	P,[0]		;GETSEG ON CHAN 0
1)		.ERR.	(LRE,,V%L,L%F,S%F,GSE)
****
2)3	E01GSE::PUSH	P,[0]		;[1174] GETSEG ON CHAN 0
2)		.ERR.	(LRE,,V%L,L%F,S%F,GSE)
**************
1)4		JUMPE	T1,LNKDIE	;NO CORE AVAILABLE
1)		MOVE	P2,T1		;TRY FOR THIS
****
2)4		JUMPE	T1,E01GSE	;[1174] NO MEMORY AVAILABLE
2)		MOVE	P2,T1		;TRY FOR THIS
**************
1)4		PUSH	P,[0]		;GETSEG ON CHAN 0
Digital Equipment Corporation       28-AUG-79    Page 563
PCO Log Report


1)		.ERR.	(LRE,,V%L,L%W,S%W,GSE)
****
2)4	E02GSE::PUSH	P,[0]		;[1174] GETSEG ON CHAN 0
2)		.ERR.	(LRE,,V%L,L%W,S%W,GSE)
**************
1)4	END
 
Digital Equipment Corporation       28-AUG-79    Page 564
PCO Log Report


[FILCOM]
File 1)	LINK:LNKCOR.MAC[30,4507]  	created: 1324 26-Jan-1979
File 2)	LINK:LNKCOR.MAC[10,645063]	created: 1640 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/DZN	26-Jan-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1130		;DEC EDIT VERSION
1)	SALL
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	SALL
**************
1)4	SUBTTL SIMPLE TESTS FIRST
****
2)3	;1174	Label and clean up all error messages.
2)4	SUBTTL SIMPLE TESTS FIRST
**************
1)6		.ERR.	(MS,.EC,V%L,L%I3,S%I,EXP,<Expanding low segment
	to >)
1)		.ETC.	(COR,.EP,,,,.JBREL)
****
2)6	E$$EXP::.ERR.	(MS,.EC,V%L,L%I3,S%I,EXP,<Expanding low segment
	to >) ;[1174]
2)		.ETC.	(COR,.EP,,,,.JBREL)
**************
1)7		.ERR.	(MS,.EC,V%L,L%I3,S%I,EXP)
1)		.ETC.	(COR,.EP,,,,.JBREL)
****
2)7	E01EXP::.ERR.	(MS,.EC,V%L,L%I3,S%I,EXP) ;[1174]
2)		.ETC.	(COR,.EP,,,,.JBREL)
**************
1)7	NO.COR::.ERR.	(MS,0,V%L,L%F,S%F,CEF,<Core expansion failed>)
1)8	;WE HAVE ENOUGH CORE SOMEWHERE BUT IS IT ABOVE WHERE WE ARE?
****
2)7	E$$MEF::.ERR.	(MS,0,V%L,L%F,S%F,MEF,<Memory expansion failed>)
	 ;[1174]
2)8	;WE HAVE ENOUGH CORE SOMEWHERE BUT IS IT ABOVE WHERE WE ARE?
**************
1)8		.ERR.	(MS,.EC,V%L,L%I,S%I,MOV,<Moving low segment to e
	xpand area >)
1)		.ETC.	(STR,.EP,,,,T1)
****
2)8	E$$MOV::.ERR.	(MS,.EC,V%L,L%I,S%I,MOV,<Moving low segment to e
	xpand area >) ;[1174]
2)		.ETC.	(STR,.EP,,,,T1)
**************
1)17		  PUSHJ P,PAGERR	;[650] DIDN'T MAKE IT
Digital Equipment Corporation       28-AUG-79    Page 565
PCO Log Report


1)		MOVSI	T3,-LN.PAG	;[650] RESTORE AOBJN POINTER TO
	GOODNESS
****
2)17		  PUSHJ P,E$$PUF	;[1174] DIDN'T MAKE IT
2)		MOVSI	T3,-LN.PAG	;[650] RESTORE AOBJN POINTER TO
	GOODNESS
**************
1)17	PAGERR:	.ERR.	(MS,.EC,V%L,L%F,S%F,PUF,<PAGE. UUO Failed, error
	 code was >)
1)		.ETC.	(OCT,.EP,,,,T3)
****
2)17	E$$PUF::.ERR.	(MS,.EC,V%L,L%F,S%F,PUF,<PAGE. UUO failed, error
	 code was >) ;[1174]
2)		.ETC.	(OCT,.EP,,,,T3)
**************
1)20		.ERR.	(MS,,V%L,L%F,S%F,AZW,<Allocating zero words>)
1)	GETWDS:	CAMLE	T2,TB.FSP(P1)	;SEE IF ENOUGH TOTAL FREE SPACE
****
 
 
2)20	E$$AZW::.ERR.	(MS,,V%L,L%F,S%F,AZW,<Allocating zero words>) ;[
	1174]
2)	GETWDS:	CAMLE	T2,TB.FSP(P1)	;SEE IF ENOUGH TOTAL FREE SPACE
**************
1)22		  JRST	NO.COR		;FAILED
1)		POP	P,P2		;RESTORE P2
****
2)22		  JRST	E$$MEF		;[1174] FAILED
2)		POP	P,P2		;RESTORE P2
**************
1)23		  PUSHJ	P,NO.COR
1)		MOVNI	T1,.IPS		;WE MUST HAVE GOT THE SPACE
****
2)23		  PUSHJ	P,E$$MEF	;[1174]
2)		MOVNI	T1,.IPS		;WE MUST HAVE GOT THE SPACE
**************
1)26		PUSHJ	P,RETSPE	;ITS NOT, GIVE ERROR
1)		CAIGE	T2,.IPS		;IF MORE THAN 1 BLOCK
****
2)26		PUSHJ	P,E$$RUM	;[1174] IT'S NOT, GIVE ERROR
2)		CAIGE	T2,.IPS		;IF MORE THAN 1 BLOCK
**************
1)26	RETSPE:	.ERR.	(MS,,V%L,L%F,S%F,RUC,<Returning unavailable core
	>)
1)27	ADDWD1:	MOVEI	T4,TB.LNK(P1)	;START OF CHAIN
****
2)26	E$$RUM::.ERR.	(MS,,V%L,L%F,S%F,RUM,<Returning unavailable memo
	ry>) ;[1174]
2)27	ADDWD1:	MOVEI	T4,TB.LNK(P1)	;START OF CHAIN
**************
1)37		
Digital Equipment Corporation       28-AUG-79    Page 566
PCO Log Report


1)38	SUBTTL	DSK OVERFLOW ROUTINES
****
2)38	SUBTTL	DSK OVERFLOW ROUTINES
**************
1)41		JRST	NO.COR		;[1113] NO--JUST RAN OUT OF LUCK
1)		MOVE	T1,LC.AB	;[650] FIND SIZE
****
2)41		JRST	E$$MEF		;[1174] NO--JUST RAN OUT OF LUCK
2)		MOVE	T1,LC.AB	;[650] FIND SIZE
**************
1)42		.ERR.	(MS,.EC,V%L,L%W,S%W,MSS,<MAXCOR set too small, e
	xpanding to >)
1)		.ETC.	(COR,.EP,,,,T1)
****
2)42	E$$MSS::.ERR.	(MS,.EC,V%L,L%W,S%W,MSS,</MAXCOR: set too small,
	 expanding to >) ;[1174]
2)		.ETC.	(COR,.EP,,,,T1)
**************
1)44		PUSH	P,[CHAN]		;STACK ERROR CHAN
1)		.ERR.	(ST,0,V%L,L%F,S%F,O'%AREA,<Error outputting area
	 %AREA>)
****
2)44	;;**;[1174] Replace @%AREA'.OUT+16L	DZN	4-Jun-79
2)	E$$O'%AREA::PUSH	P,[CHAN]		;[1174] STACK ER
	ROR CHAN
2)		.ERR.	(ST,0,V%L,L%F,S%F,O'%AREA,<Error outputting area
	 %AREA>)
**************
1)49	%OK:	HLRZ	T2,T1		;GET FIRST ADDRESS
1)		LSH	T2,-.DBS2W	;[650] INTO 128 WORD BLOCKS
****
2)49	;**;[1174] Replace @%AREA'.IN+7L	DZN	4-Jun-79
2)	%OK:!	HLRZ	T2,T1		;[1174] GET FIRST ADDRESS
 
 
2)		LSH	T2,-.DBS2W	;[650] INTO 128 WORD BLOCKS
**************
1)49		PUSH	P,[CHAN]		;SAVE ERROR CHAN
1)		.ERR.	(ST,0,V%L,L%F,S%F,I'%AREA,<Error inputting area
	%AREA>)
****
2)49	;;**;[1174] Replace @%AREA'.IN+24L	DZN	4-Jun-79
2)	E$$I'%AREA::PUSH	P,[CHAN]		;[1174] SAVE ERR
	OR CHAN
2)		.ERR.	(ST,0,V%L,L%F,S%F,I'%AREA,<Error inputting area
	%AREA>)
**************
1)55		.ERR.	(MS,0,V%L,L%I,S%I,PLS,<Area LS overflowing to DS
	K>)
1)		SKIPLE	T1,SYMFRM	;[604] USER REQUESTING A SYMBOL
	FILE?
Digital Equipment Corporation       28-AUG-79    Page 567
PCO Log Report


****
2)55	E$$PLS::.ERR.	(MS,0,V%L,L%I,S%I,PLS,<Area LS overflowing to di
	sk>) ;[1174]
2)		SKIPLE	T1,SYMFRM	;[604] USER REQUESTING A SYMBOL
	FILE?
**************
1)55		  PUSHJ	P,CLSERR	;ERROR
1)56	;NOW FOR OUTPUT, SETUP IOWD FOR ALL SYMBOLS NOT IN CURRENT PROG
****
2)55		  PUSHJ	P,E$$ELS	;[1174] ERROR
2)56	;NOW FOR OUTPUT, SETUP IOWD FOR ALL SYMBOLS NOT IN CURRENT PROG
**************
1)56	CLSERR:	PUSH	P,[SC]
1)		.ERR.	(LRE,0,V%L,L%F,S%F,ELS,<Error creating overflow
	file for area LS -
1)		>)
1)		POPJ	P,
****
2)56	E$$ELS::PUSH	P,[SC]		;[1174]
2)		.ERR.	(LRE,0,V%L,L%F,S%F,ELS,<Error creating area LS o
	verflow file>) ;[1174]
2)		POPJ	P,
**************
1)57		.ERR.	(MS,0,V%L,L%I,S%I,PAS,<Area AS overflowing to DS
	K>)
1)		SKIPLE	T1,SYMFRM	;[604] USER WANT ALGOL SYFILE?
****
2)57	E$$PAS::.ERR.	(MS,0,V%L,L%I,S%I,PAS,<Area AS overflowing to di
	sk>) ;[1174]
2)		SKIPLE	T1,SYMFRM	;[604] USER WANT ALGOL SYFILE?
**************
1)57		  PUSHJ	P,CASERR	;ERROR CREATING AS AREA FILE
1)58		MOVE	T1,AS.PT	;FIGURE SIZE OF AS AREA
****
2)57		  PUSHJ	P,E$$EAS	;[1174] ERROR CREATING AS AREA F
	ILE
2)58		MOVE	T1,AS.PT	;FIGURE SIZE OF AS AREA
**************
1)58	CASERR:	PUSH	P,[AC]		;INDICATE WHICH CHANNEL
1)		.ERR.	(LRE,0,V%L,L%F,S%F,EAS,<Error creating overflow
	file for area AS - >)
1)		POPJ	P,		;NEVER GET HERE
****
2)58	E$$EAS::PUSH	P,[AC]		;[1174] INDICATE WHICH CHANNEL
2)		.ERR.	(LRE,0,V%L,L%F,S%F,EAS,<Error creating area AS o
	verflow file>) ;[1174]
2)		POPJ	P,		;NEVER GET HERE
**************
1)59	LC.DMP::.ERR.	(MS,0,V%L,L%I,S%I,PLC,<Area LC overflowing to DS
	K>)
1)		PUSH	P,R		;SAVE R
Digital Equipment Corporation       28-AUG-79    Page 568
PCO Log Report


****
2)59	LC.DMP::			;[1174]
2)	E$$PLC::.ERR.	(MS,0,V%L,L%I,S%I,PLC,<Area LC overflowing to di
	sk>) ;[1174]
2)		PUSH	P,R		;SAVE R
 
 
**************
1)59	HC.DMP::.ERR.	(MS,0,V%L,L%I,S%I,PHC,<Area HC overflowing to DS
	K>)
1)		PUSH	P,R
****
2)59	HC.DMP::			;[1174]
2)	E$$PHC::.ERR.	(MS,0,V%L,L%I,S%I,PHC,<Area HC overflowing to di
	sk>) ;[1174]
2)		PUSH	P,R
**************
1)60		  PUSHJ	P,@[EXP CLCERR,CHCERR]-1(R)
1)61	;NOW FOR OUTPUT, SETUP IOWD FOR DATA TO BE OUTPUT
****
2)60		  PUSHJ	P,@[EXP E$$ELC,E$$EHC]-1(R) ;[1174]
2)61	;NOW FOR OUTPUT, SETUP IOWD FOR DATA TO BE OUTPUT
**************
1)62	CLCERR:	PUSH	P,[LC]
1)		.ERR.	(LRE,0,V%L,L%F,S%F,ELC,<Error creating overflow
	file for area LC -
1)		>)
1)		POPJ	P,
1)	CHCERR:	PUSH	P,[HC]
1)		.ERR.	(LRE,0,V%L,L%F,S%F,EHC,<Error creating overflow
	file for area HC -
1)		>)
1)		POPJ	P,
****
2)62	E$$ELC::PUSH	P,[LC]		;[1174]
2)		.ERR.	(LRE,0,V%L,L%F,S%F,ELC,<Error creating area LC o
	verflow file>) ;[1174]
2)		POPJ	P,
2)	E$$EHC::PUSH	P,[HC]		;[1174]
2)		.ERR.	(LRE,0,V%L,L%F,S%F,EHC,<Error creating area HC o
	verflow file>) ;[1174]
2)		POPJ	P,
**************
1)70		.ERR.	(MS,0,V%L,L%W,S%W,SFU,<Symbol table fouled up>)	
	;OUCH!
1)		POP	P,T1		;RECOVER FIXUP POINTER
****
2)70	E$$SFU::.ERR.	(MS,0,V%L,L%W,S%W,SFU,<Symbol table fouled up>)	
	;[1174] OUCH!
2)		POP	P,T1		;RECOVER FIXUP POINTER
**************
Digital Equipment Corporation       28-AUG-79    Page 569
PCO Log Report


 
Digital Equipment Corporation       28-AUG-79    Page 570
PCO Log Report


[FILCOM]
File 1)	LINK:LNKCST.MAC[30,4507]  	created: 1435 07-Mar-1978
File 2)	LINK:LNKCST.MAC[10,645063]	created: 1641 10-Jun-1979
 
1)1	TITLE LNKCST - LOAD CUSTOMER LINK ITEMS MODULE FOR LINK-10
1)	SUBTTL	D.M.NIXON/DMN/JBC/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	TITLE LNKCST - LOAD CUSTOMER LINK ITEMS MODULE FOR LINK
2)	SUBTTL	D.M.NIXON/DMN/JBC/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	LNKCST
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKCST
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1174		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)2	SUBTTL	REVISION HISTORY
****
2)1	SALL
2)2	SUBTTL	REVISION HISTORY
**************
1)3	SUBTTL	DISPATCH TABLES FOR CUSTOMER TYPES
****
2)2	;START OF VERSION 4A
2)	;1174	Label and clean up all error messages.
2)3	SUBTTL	DISPATCH TABLES FOR CUSTOMER TYPES
**************
1)4		JRST	T.ERR##		;NEW BLOCK TYPES NOT IMPLEMENTED
1)	> ;END IFE .NWBLK
****
2)4		JRST	E$$IRB##	;[1174] NEW BLOCK TYPES NOT IMPL
	EMENTED
2)	> ;END IFE .NWBLK
**************
1)4		JRST	T.ERR##		;SNH,GIVE ERROR MESSAGE
1)		HRREI	T2,-<2000+CDSTL3>(T1)	;OFFSET TYPE
****
2)4		JRST	E$$IRB##	;[1174] SNH,GIVE ERROR MESSAGE
2)		HRREI	T2,-<2000+CDSTL3>(T1)	;OFFSET TYPE
Digital Equipment Corporation       28-AUG-79    Page 571
PCO Log Report


**************
 
Digital Equipment Corporation       28-AUG-79    Page 572
PCO Log Report


[FILCOM]
File 1)	LINK:LNKERR.MAC[30,4507]  	created: 1156 08-Mar-1979
File 2)	LINK:LNKERR.MAC[10,645063]	created: 1720 11-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	8-Mar-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978, 1979
1)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
1)	ENTRY	LNKERR
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKERR
**************
1)1	DECEVR==1146		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
**************
1)2	SUBTTL	REVISION HISTORY
****
2)1	LRELEN==:42		;[1174] **MUST** AGREE WITH LNKLOG
2)2	SUBTTL	REVISION HISTORY
**************
1)2	;1113	Add long message for LNKPOT.
****
2)3	;START OF VERSION 4A
2)	;1113	Add long message for LNKPOT.
**************
1)3	SUBTTL	FIND MESSAGE
****
2)3	;1174	Label and clean up all error messages.
2)4	SUBTTL	FIND MESSAGE
**************
1)8	VIATBL	(FEE,-1,32)
1)	VIATBL	(FLE,0,32)
1)	VIATBL	(FRE,0,32)
1)	VIATBL	(GSE,0,32)
1)9	.HWFRMT		;SAVE SPACE
1)	COMMENT	\
1)	SHORT LEVEL MESSAGE
1)	THESE ARE INCORE AT ALL TIMES (IN OTHER SEGMENTS)
1)	CODE	LVL	SEV	MESSAGE
1)	ABT	31	31	Load aborted due to %LNKTMA errors, max.
	 /ARSIZE
1)				needed was  [decimal]
Digital Equipment Corporation       28-AUG-79    Page 573
PCO Log Report


1)	AMP	 8	 8	ALGOL main program not loaded
1)	ANC	31	31	Address not in core
1)	ARL	 8	 8	Ambiguous request in link [decimal] for
	[symbol]
1)				defined in links  [decimal]
1)	AZW	31	31	Allocating zero words
1)	B4R	 8	 8	Bad F40 produced .REL file for [name]
1)	CCD	31	31	CPU conflict detected in module [module]
1)	CEF	31	31	Core expansion failed
1)	CLF	 1	 1	Closing LOG file, continuing on [file]
1)	CMC	31	31	Cannot mix COBOL-68 and COBOL-74 compile
	d code
1)				Error detected in module [module] from	
	[file]
 
 
1)	CMF	31	31	COBOL module must be loaded first
1)	CNW	31	31	Code not yet written at [label]
1)	CSF	 1	 1	Creating saved file
1)	DEB	 *	 1	[Debugger] execution
1)	DLT	 *	 1	Execution deleted
1)	DNA	31	31	DDT not available
1)	DNS	 8	 8	Device not specified for /[switch]
1)	DRC	 8	 8	Decreasing  relocation	counter  [symbol
	]   from
1)				[octal] to  [octal]
1)	DSC	31	31	Data store to COMMON [symbol] not in lin
	k number
1)				[decimal] for  [module] in [file]
1)	DSL	31	31	Data store  to	location  [octal]  not	
	in  link
1)				number [decimal] for  [module] in [file]
1)	DSO	31	31	Data statement overflow in module [name]
1)	DUZ	31	31	Decreasing undefined symbol count below
	zero
1)	EAS	31	31	Error creating overflow file for area AS
1)	ECE	31	31	Error creating .EXE file
1)	EHC	31	31	Error creating overflow file for area HC
1)	EID	31	31	Error on input device status [status] fo
	r [file]
1)	ELC	31	31	Error creating overflow file for area LC
1)	ELF	 1	 1	End of LOG file
1)	ELN	 7	 1	End of link number [number], name [name]
1)	ELS	31	31	Error creating overflow file for area LS
1)	EMS	 1	 1	End of MAP segment
1)	EOE	31	31	.EXE file output error
1)	EOI	31	31	Error on input status [status] for [file
	]
1)	EOO	31	31	Error on output status [status] for [fil
	e]
1)	EOV	31	31	Error creating overlay file for [file]
Digital Equipment Corporation       28-AUG-79    Page 574
PCO Log Report


1)	ESN	31	31	Extended symbol not expected
1)	EXP	 4	 1	Expanding low segment to [decimal]P
1)	EXS	 1	 1	EXIT segment
1)	FCD	31	31	FORTRAN confused about data statements i
	n module
1)				[name]
1)	FCF	 1	 1	Final code fixups
1)	FEE	31	31	(Indexed file LOOKUP, ENTER, or RENAME e
	rror)
1)	FIN	 1	 1	LINK finished
1)	FLE	31	31	(Indexed file LOOKUP, ENTER, or RENAME e
	rror)
1)	FOV	31	31	Cannot overlay F40 compiled code in [mod
	ule]
1)	FRE	31	31	(Indexed file LOOKUP, ENTER, or RENAME e
	rror)
1)	FSF	 8	 8	FORTRAN subroutine [name] not in expecte
	d  form,
1)				MIXFOR fixup not  done
1)	FSI	 8	 8	FORTRAN requires FOROTS, /FORSE switch i
	gnored
1)	FSN	31	31	FUNCT. subroutine not loaded
1)	GFE	31	31	GTJFN% JSYS failed for [file]
1)	GSE	31	31	(Indexed file LOOKUP, ENTER, or RENAME e
	rror)
1)	HCL	31	31	High segment code not allowed in an over
	lay link in module [module]
1)	HSL	31	31	Attempt to set high segment origin too l
	ow
1)	HTL	31	31	Symbol hash table too large
1)	IAS	31	31	Error inputting area AS
1)	I4D	31	31	Illegal F40 DATA code [octal] in module
	[name]
1)	I4S	31	31	Illegal F40 sub-block [octal] in module
	[name]
1)	I4T	31	31	Illegal F40 table entry [octal] in modul
	e [name]
1)	IBC	31	31	Attempt to increase size of  blank  COMM
	ON  from
1)				[decimal] to  [decimal]
1)	ICI	31	31	Insufficient core to initialize LINK
1)	IDM	31	31	Illegal data mode for device
 
 
1)	IFD	31	31	INIT failure for device [device]
1)	IHC	31	31	Error inputting area HC
1)	ILC	31	31	Error inputting area LC
1)	ILS	31	31	Error inputting area LS
1)	IMA	 8	 8	Incremental maps not yet available
1)	IMM	 *	 1	[number] included  modules  missing  (fr
	om  file
Digital Equipment Corporation       28-AUG-79    Page 575
PCO Log Report


1)				[file])
1)	INS	31	31	I/O data block not set up
1)	IOV	31	31	Input error for overlay file
1)	IPO	31	31	Invalid Polish operator [octal]
1)	IPX	31	31	Invalid PSECT index
1)	IRB	31	31	Illegal REL Block Type [octal] for  [mod
	ule]  in
1)				[file]
1)	ISD	 8	 8	Inconsistent symbol definition for [symb
	ol]
1)	ISN	31	31	Illegal symbol name
1)	ISO	31	31	Invalid store operator [octal]
1)	ISP	31	31	Incorrect symbol pointer
1)	ISS	 8	 8	Insufficient space for symbol table (aft
	er PSECT
1)				[name])--table truncated
1)	IST	31	31	Inconsistency in switch table
1)	ITT	 8	 8	Illegal type 12 link number  [octal]  in
	  module
1)				[name]
1)	IUU	 *	31	Illegal user UUO at PC [octal]
1)	IVC	31	31	Index validation check failed at [addres
	s]
1)	LDS	 1	 1	LOAD segment
1)	LFC	 1	 1	LOG file continuation
1)	LFI	 1	 1	LOG file initilaization
1)	LII	 8	 1	Library index inconsistent, continuing
1)	LIM	 1	 1	LINK initialization
1)	LMN	 6	 1	Loading module [module]
1)	LNA	 8	 8	Link name [name] already assigned to lin
	k number
1)				[decimal]
1)	LNC	31	31	Link number [decimal] not in core
1)	LNL	 8	 8	Link number [decimal] not loaded
1)	LNN	 8	 8	Link name [name] not assigned
1)	LSM	 8	 8	/LINK switch missing while loading  link
	  number
1)				[decimal]  --  /LINK assumed
1)	LSS	 *	 1	Library Search Symbols (Entry points)
1)	MDS	31	 8	Multiply-Defined  Global  symbol   [symb
	ol]   in
1)				module	[name]	defined  value	= [octal
	],  this
1)				value = [octal]
1)	MOV	 1	 1	Moving low segment to expand area [area]
1)	MPS	 1	 1	MAP segment
1)	MRN	 1	 1	Multiple regions not yet implemented
1)	MSN	 8	 8	MAP sorting not yet implemented
1)	MSR	31	31	/MIXFOR switch required to mix F40  and
	 FORTRAN
1)				code
Digital Equipment Corporation       28-AUG-79    Page 576
PCO Log Report


1)	MSS	 8	 8	MAXCOR set too small, increasing to [dec
	imal]P
1)	MTB	 8	 8	MAXCOR too big, [decimal]P used
1)	MTS	 8	 8	MAXCOR	too  small,  at  least	 [decima
	l]P   is
1)				required
1)	NBR	31	31	Attempt to position to node before root
1)	NEB	 8	 8	No end block seen for [module]
1)	NED	31	24	Non-existent device
1)	NSA	 *	 1	No start address
1)	OAS	31	31	Error outputting area AS
 
 
1)	ODV	31	31	Overlay file must be created on a file s
	tructure
1)	OEL	 8	 8	Output error  on  LOG  file,  file  clos
	ed,  job
1)				continuing
1)	OEM	 8	 8	Output error  on  MAP  file,  file  clos
	ed,  job
1)				continuing
1)	OES	 8	 8	Output error on symbol file,  file  clos
	ed,  job
1)				continuing
1)	OEX	 8	 8	Output error  on  XPN  file,  file  clos
	ed,  job
1)				continuing
1)	OFN	31	31	Old FORTRAN (F40) module not available
1)	OHC	31	31	Error outputting area HC
1)	OHN	31	31	Overlay handler not loaded
1)	OLC	31	31	Error outputting area LC
1)	OLS	31	31	Error outputting area LS
1)	OMB	31	31	/OVERLAY switch must be first
1)	ONS	 8	 1	Overlays not supported in this version o
	f LINK
1)	OOV	31	31	Output error for overlay  file	status	
	[status]
1)				for [file]
1)	OS2	 1	 1	Overlay segment phase 2
1)	PAS	 1	 1	Area AS overflowing to DSK
1)	PBI	 8	 8	Program break [octal] invalid in [name]
1)	PCL	 8	 8	Program too complex to load, saving as [
	file]
1)	PCX	 8	 1	Program too complex to load and execute,
	 will run from [file]
1)	PEF	31	 8	Premature end of file in [file]
1)	PHC	 1	 1	Area HC overflowing to DSK
1)	PLC	 1	 1	Area LC overflowing to DSK
1)	PLS	 1	 1	Area LS overflowing to DSK
1)	POO	 8	 8	PSECT overlay occurred--[name],[name]
1)	POT	 1	 1	Plotting overlay tree
Digital Equipment Corporation       28-AUG-79    Page 577
PCO Log Report


1)	PSF	31	31	Polish symbol fixups not yet implemented
1)	PUF	31	31	PAGE. UUO failed, error code was [octal]
1)	RBS	31	31	REL Block Type [octal] too short for [fi
	le]
1)	RCU	31	31	Relocation counter [symbol]  undefined,
	 set  to
1)				[symbol]
1)	RED	 1	 1	Reducing low segment to [decimal]P
1)	RER	 *	 1	Request External  References  (Inter-Lin
	k  Entry
1)				Points)
1)	RGS	 1	 1	Rehashing Global symbol table from [deci
	mal]  to
1)				[decimal]
1)	RLC	 *	 1	Reloc ctr.  initial value current value
	[octal]
1)	RUC	31	31	Returning unavailable core
1)	SFU	 8	 8	Symbol table fouled up
1)	SIF	31	31	Symbol insert failure, non-zero hole fou
	nd
1)	SLS	 8	 8	Symbols must be in low segment
1)	SMP	 8	 8	SIMULA main program not loaded
1)	SNC	31	31	Symbol [symbol]  already  defined,  but
	 not  as
1)				COMMON
1)	SNL	 1	 1	Scanning new command line
1)	SNP	 8	 8	Subroutine [symbol] in link number [deci
	mal] not
1)				on path for call from link number  [deci
	mal]
1)	SOE	31	31	Saved file output error - status [status
	]
1)	SRB	 8	 8	Attempt to set relocation counter  [name
	]  below
1)				initial value of  [octal]
1)	SSN	 8	 8	Symbol table sorting not yet implemented
1)	SST	 1	 1	Sorting symbol table
1)	STC	 1	 1	Symbol table completed
 
 
1)	STL	31	31	High segment code too long
1)	T13	31	31	LVAR (type 13) code not implemented
1)	TDS	 8	 8	Too late to delete initial symbols
1)	TEC	31	31	Trying to expand COMMON [symbol] from  [
	decimal]
1)				to [decimal] in module	[name]
1)	TMA	31	 8	Too many ambiguous requests  in  link  [
	number],
1)				use  /ARSIZE:[decimal]
1)	TTF	 8	 8	Too many titles found
1)	UAR	 8	 8	Undefined assign for [symbol] in [file]
Digital Equipment Corporation       28-AUG-79    Page 578
PCO Log Report


1)	UGS	 *	 1	Undefined global symbols
1)	UNS	31	31	Universal files not supported loading [f
	ile]
1)	URC	31	 1	Unknown Radix-50 symbol code
1)	USA	 8	 8	Undefined start address [symbol]
1)	USC	31	 8	Undefined subroutine  [name]  called  fr
	om  link
1)				number [decimal]
1)	VAL	 *	 1	[symbol] [value] [type]
1)	XCT	 *	 1	[Name] execution
1)	ZSV	 8	 8	Zero switch value illegal
1)	END OF COMMENT \
1)10	SUBTTL	LONG MESSAGES
****
2)9	VIATBL	(FEE,-1,LRELEN)
2)	VIATBL	(FLE,0,LRELEN)
2)	VIATBL	(FRE,0,LRELEN)
2)	VIATBL	(GSE,0,LRELEN)
2)10	SUBTTL	CODE LVL  SEV	FIRST LINE MESSAGE
2)	COMMENT	\
2)	CODE LVL  SEV	MESSAGE
2)	ABT   31   31	Load aborted due to %LNKTMA errors, max. /ARSIZE
	: needed was [decimal]
2)	AIC   31   31	Attempt to increase size of {blank   common} fro
	m [decimal] to [decimal]
2)				   		    {common [symbol}
2)			{Detected in module [symbol] from file [file]}
2)	AMP    8    8	ALGOL main program not loaded
2)	ANM   31   31	Address not in memory
2)	ARL    8    8	Ambiguous request in link [decimal] {name [name]
	} for [symbol] defined in
2)			links [decimal], [decimal], ...
2)	AZW   31   31	Allocating zero words
2)	B4R    8    8	Bad F40 produced REL file
2)			{Detected in module [symbol] from file [file]}
2)	CCD   31   31	CPU conflict
2)			{Detected in module [symbol] from file [file]}
2)	CLF    1    1	Closing log file, continuing on file [file]
2)	CMC   31   31	Cannot mix COBOL-68 and COBOL-74 compiled code
2)			{Detected in module [symbol] from file [file]}
2)	CMF   31   31	COBOL module must be loaded first
2)			{Detected in module [symbol] from file [file]}
2)	CNW   31   31	Code not yet written at [label]
2)	CSF    1    1	Creating saved file
2)	DEB   31    1	[Name] execution
2)	DLT   38    1	Execution deleted
2)	DNA   31   31	DDT not available
2)	DNS    8    8	Device not specified for switch [switch]
2)	DRC    8    8	Decreasing relocation counter [symbol] from [oct
	al] to [octal]
2)			{Detected im module [symbol] from file [file]}
Digital Equipment Corporation       28-AUG-79    Page 579
PCO Log Report


2)	DSC   31   31	Data store to common [symbol] not in link number
	 [decimal]
2)			{Detected in module [symbol] from file [file]}
 
 
2)	DSL   31    *	Data store to location [octal] not in link numbe
	r [decimal]
2)			{Detected in module [symbol] from file [file]}
2)	DSO   31   31	Data statement overflow
2)			{Detected in module [symbol] from file [file]}
2)	DUZ   31   31	Decreasing undefined symbol count below zero
2)	EAS   31   31	Error creating area AS overflow file [reason] [f
	ile]
2)	ECE   31   31	Error creating EXE file [reason] [file]
2)	EGD    1    1	Emergency GETSEG done
2)	EHC   31   31	Error creating area HC overflow file [reason] [f
	ile]
2)	EIF   31   31	Error for input file Status [octal] for file [fi
	le]
2)	ELC   31   31	Error creating area LC overflow file [reason] [f
	ile]
2)	ELF    1    1	End of log file
2)	ELN    7    1	End of link number [decimal] {name [name]}
2)	ELS   31   31	Error creating area LS overflow file [reason] [f
	ile]
2)	EMS    1    1	End of MAP segment
2)	EOE   31   31	EXE file output error Status [octal] for file [f
	ile]
2)	EOI   31   31	Error on input Status [octal] for file [file]
2)	EOO   31   31	Error on output Status [octal] for file [file]
2)	EOV   31   31	Error creating overlay file [reason] [file]
2)	ESN   31   31	Extended symbol not expected
2)	EXP    3    1	Expanding low segment to [memory]
2)	EXS    1    1	EXIT segment
2)	FCD   31   31	F40 confused about data statements
2)			{Detected in module [symbol] from file [file]}
2)	FCF    1    1	Final code fixups
2)	FEE   31   31	ENTER error [reason] [file]
2)	FIN    1    1	LINK finished
2)	FLE   31   31	LOOKUP error [reason] [file]
2)	FOV   31   31	Cannot overlay F40 compiled code
2)			{Detected in module [symbol] from file [file]}
2)	FRE   31   31	RENAME error [reason] [file]
2)	FSF    8    8	FORTRAN subroutine not in expected format, /MIXF
	OR fixup not done
2)			{Detected in module [symbol] from file [file]}
2)	FSI    8    8	FORTRAN requires FOROTS, /FORSE switch ignored
2)	FSN   31   31	FUNCT. subroutine not loaded
2)	GFE   31   31	GTJFN% JSYS failed for file [file]
2)	GSE    *    *	GETSEG error [reason] [file]
2)	HCL   31   31	High segment code not allowed in an overlay link
Digital Equipment Corporation       28-AUG-79    Page 580
PCO Log Report


2)			{Detected in module [symbol] from file [file]}
2)	HSL   31   31	Attempt to set high segment origin too low
2)			{Detected in module [symbol] from file [file]}
2)	HTL   31   31	Symbol hash table too large
2)	IAS   31   31	Error inputting area AS Status [octal] for file
	[file]
2)	I4D   31   31	Illegal F40 data code [octal]
2)			{Detected in module [symbol] from file [file]}
2)	I4S   31   31	Illegal F40 sub-block [octal]
2)			{Detected in module [symbol] from file [file]}
2)	I4T   31   31	Illegal F40 table entry [octal]
2)			{Detected in module [symbol] from file [file]}
2)	ICB    8    8	Invalid chain REL block (type 12) link number [o
	ctal]
2)			{Detected in module [symbol] from file [file]}
2)	IDM   31   31	Illegal data mode for device [device]
2)	IHC   31   31	Error inputting area HC Status [octal] for file
	[file]
2)	ILC   31   31	Error inputting area LC Status [octal] for file
	[file]
2)	ILS   31   31	Error inputting area LS Status [octal] for file
	[file]
2)	IMA    8    8	Incremental maps not yet available
 
 
2)	IMI   31   31	Insufficient memory to initialize LINK
2)	IMM    *    1	[Decimal] included modules missing {from file [f
	ile]}
2)	INS   31   31	I/O data block not set up
2)	IOV   31   31	Input error for overlay file Status [octal] for
	file [file]
2)	IPO   31   31	Invalid polish operator [octal]
2)			{Detected in module [symbol] from file [file]}
2)	IPX   31   31	Invalid psect index {for psect [symbol]}
2)			{Detected in module [symbol] from file [file]}
2)	IRB   31   31	Illegal REL block type [octal]
2)			{Detected in module [symbol] from file [file]}
2)	IRC   31   31	Illegal relocation counter
2)			{Detected in module [symbol] from file [file]}
2)	IRR    8    8	Illegal request/require block
2)			{Detected in module [symbol] from file [file]}
2)	ISD    8    8	Inconsistent symbol definition for symbol [symbo
	l]
2)			{Detected in module [symbol] from file [file]}
2)	ISN   31   31	Illegal symbol name [symbol]
2)			{Detected in module [symbol] from file [file]}
2)	ISO   31   31	Invalid polish store operator [octal]
2)			{Detected in module [symbol] from file [file]}
2)	ISP   31   31	Incorrect symbol pointer
2)	ISS    8    8	Insufficient space for symbol table after psect
	[symbol] -- table truncated
Digital Equipment Corporation       28-AUG-79    Page 581
PCO Log Report


2)	IST   31   31	Inconsistency in switch table
2)	ITB   31   31	Invalid text in ASCII block from file [file]
2)	IUU    *   31	Illegal user UUO at PC [octal]
2)	IVC   31   31	Index validation check failed at [address]
2)	LDS    1    1	LOAD segment
2)	LFB    1    1	LINK log file begun on [date]
2)	LFC    1    1	Log file continuation
2)	LFI    1    1	Log file initialization
2)	LII    8    1	Library index inconsistent, continuing
2)	LIN    1    1	LINK initialization
2)	LMN    6    1	Loading module [symbol]
2)	LNA    8    8	Link name [name] already assigned to link number
	 [decimal]
2)	LNL    8    8	Link number [decimal] not loaded
2)	LNM   31   31	Link number [decimal] not in memory
2)	LNN    8    8	Link name [name] not assigned
2)	LNS   31    8	Low segment data base not same size
2)	LSM    8    8	/LINK switch missing while loading link number [
	decimal] -- assumed
2)	LSS   31    1	{No} Library search symbols (entry points)
2)			{[symbol]	[octal]
2)			  . . .		 . . . }
2)	MDS    8    8	Multiply-defined global symbol [symbol]
2)			{Detected in module [symbol] from file [file]}
2)			Defined value = [octal], this value = [octal]
2)	MEF   31   31	Memory expansion failed
2)	MOV    1    1	Moving low segment to expand area [area]
2)	MPS    1    1	MAP segment
2)	MRN    1    1	Multiple regions not yet implemented
2)	MSN    8    8	Map sorting not yet implemented
2)	MSR   31   31	/MIXFOR switch required to mix F40 and FORTRAN c
	ode
2)			{Detected in module [symbol] from file [file]}
2)	MSS    8    8	/MAXCOR: set too small, expanding to [memory]
2)	MTB    8    8	/MAXCOR: too big, [memory] used
2)	MTS    8    8	/MAXCOR: too small, at least [memory] is require
	d
2)	NBR   31   31	Attempt to position to node before the root
 
 
2)	NEB    8    8	No end block seen
2)			{Detected in module [symbol] from file [file]}
2)	NED   31   24	Non-existent device [device]
2)	NPS    8    8	Non-existent psect [symbol] specified for symbol
	 table
2)	NSA   31    1	No start address
2)	OAS   31   31	Error outputting area AS Status [octal] for file
	 [file]
2)	OEL    8    8	Output error on log file, file closed, load cont
	inuing {Status [octal] for
2)			file [file]}
Digital Equipment Corporation       28-AUG-79    Page 582
PCO Log Report


2)	OEM    8    8	Output error on map file, file closed, load cont
	inuing Status [octal] for
2)			file [file]
2)	OES    8    8	Output error on symbol file, file closed, load c
	ontinuing Status [octal] for
2)			file [file]
2)	OEX    8    8	Output error on XPN file, file closed, load cont
	inuing Status [octal] for
2)			file [file]
2)	OFD   31   31	OPEN failure for device [device]
2)	OFN   31   31	Old FORTRAN (F40) module not available
2)			{Detected in module [symbol] from file [file]}
2)	OFS   31   31	Overlay file must be created on a file structure
2)	OHC   31   31	Error outputting area HC Status [octal] for file
	 [file]
2)	OHN   31   31	Overlay handler not loaded
2)	OLC   31   31	Error outputting area LC Status [octal] for file
	 [file]
2)	OLS   31   31	Error outputting area LS Status [octal] for file
	 [file]
2)	OMB   31   31	/OVERLAY switch must be first
2)	ONS    8    1	Overlays not supported in this version of LINK
2)	OOV   31   31	Output error for overlay file Status [octal] for
	 file [file]
2)	OS2    1    1	Overlay segment phase 2
2)	OSL    8    8	Overlaid program symbols must be in low segment
2)	PAS    1    1	Area AS overflowing to disk
2)	PBI    8    8	Program break [octal] invalid
2)			{Detected in module [symbol] from file [file]}
2)	PCL    8    8	Program too complex to load, saving as file [fil
	e]
2)	PCX    8    1	Program too complex to load and execute, will ru
	n from file [file]
2)	PEF   31    8	Premature end of file from file [file]
2)	PHC    1    1	Area HC overflowing to disk
2)	PLC    1    1	Area LC overflowing to disk
2)	PLS    1    1	Area LS overflowing to disk
2)	POT    1    1	Plotting overlay tree
2)	POV    8    8	Psects [symbol] and [symbol] overlap from [addre
	ss] to [address]
2)	PUF   31   31	PAGE. UUO failed, error code was [octal]
2)	RBS   31   31	REL block type [octal] too short
2)			{Detected in module [symbol] from file [file]}
2)	RED    1    1	Reducing low segment to [memory]
2)	RER    *    1	{No} Request external references (inter-link ent
	ry points)
2)			{[symbol]	[octal]
2)			  . . .		 . . .}
2)	RGS    1    1	Rehashing global symbol table from [decimal] to
	[decimal]
2)	RLC   31    1	Reloc ctr.	initial value	current value
Digital Equipment Corporation       28-AUG-79    Page 583
PCO Log Report


2)			[symbol]	[octal]		[octal]
2)			{. . .		 . . .		 . . .}
2)	RME   31    *	REMAP error{, high segment origin may be incorre
	ct}
2)	RUM   31   31	Returning unavailable memory
2)	SFU    8    8	Symbol table fouled up
2)	SIF   31   31	Symbol insert failure, non-zero hole found
2)	SMP    8    8	SIMULA main program not loaded
2)	SNC   31   31	Symbol [symbol] already defined, but not as comm
	on
2)			{Detected in module [symbol] from file [file]}
 
 
2)	SNL    1    1	Scanning new command line
2)	SNP    8    8	Subroutine [symbol] in link number [decimal] not
	 on path for call from link
2)			number [decimal] {name [name]}
2)	SOE   31   31	Saved file output error Status [octal] for file
	[file]
2)	SRB    8    8	Attempt to set relocation counter [symbol] below
	 initial value of [octal]
2)			{Detected in module [symbol] from file [file]}
2)	SRP   31   31	/SET: switch required for psect [symbol]
2)			{Detected in module [symbol] from file [file]}
2)	SSN    8    8	Symbol table sorting not yet implemented
2)	SST    1    1	Sorting symbol table
2)	STC    1    1	Symbol table completed
2)	STL   31   31	High segment code too long
2)			{Detected in module [symbol] from file [file]}
2)	T13   31   31	LVAR REL block (type 13) not implemented
2)			{Detected in module [symbol] from file [file]}
2)	TDS    8    8	Too late to delete initial symbols
2)	TMA   31    8	Too many ambiguous requests in link [decimal] {n
	ame [name]}, use
2)			/ARSIZE:[decimal]
2)			{Detected in module [symbol] from file [file]}
2)	TTF    8    8	Too many titles found
2)	UAR    8    8	Undefined assign for [symbol]
2)			{Detected in module [symbol] from file [file]}
2)	UGS    *    1	{No} Undefined global symbols
2)			{[symbol]	[octal]
2)			  . . .		 . . .}
2)	UNS   31   31	Universal file REL block (type 777) not supporte
	d
2)			from file [file]
2)	URC   31    1	Unknown radix-50 symbol code [octal] [symbol]
2)			{Detected in module [symbol] from file [file]}
2)	USA    8    8	Undefined start address [symbol]
2)			{Detected in module [symbol] from file [file]}
2)	USC   31    8	Undefined subroutine [symbol] called from link n
	umber [decimal] {name
Digital Equipment Corporation       28-AUG-79    Page 584
PCO Log Report


2)			[name]}
2)	USI    8   16	Undefined symbol [symbol] illegal in switch [swi
	tch]
2)	VAL   31    1	Symbol [symbol] [octal] [type]
2)	XCT   31    1	[Name] execution
2)	ZSV    8    8	Zero switch value illegal
2)	END   OF   COMMENT \
2)11	SUBTTL	LONG MESSAGES
**************
1)10	HASH	AMP,0,<^_
****
2)11	HASH	AIC,0,<^_
2)		FORTRAN  common  areas  cannot  be  expanded once define
	d.
2)		Either load the module with the largest definition  firs
	t,
2)		or use the /COMMON: switch to reserve the needed space.>
2)	HASH	AMP,0,<^_
**************
1)10	HASH	ANC,0,<^_
1)		LINK expected a particular user address to be  in  memor
	y,
****
2)11	HASH	ANM,0,<^_
2)		LINK expected a particular user address to be  in  memor
	y,
**************
1)10	;**;[1120] Insert before LNKCEF long message	DZN	22-Sep-7
	8
1)	HASH	CCD,0,<^_
 
 
****
2)11	HASH	CCD,0,<^_
**************
1)10	HASH	CEF,0,<^_
1)		LINK cannot expand core further.  All permitted  overflo
	ws
1)		to  disk  have	been  tried, but your program is still t
	oo
1)		large for available memory.  A probable cause is  a  lar
	ge
1)		global symbol table, which cannot be overflowed to disk.
	>
1)	HASH	CLF,0,<^_
1)		You have changed the log file device.  The old log file
	is
1)		closed;   further  log	entries are written in the new l
	og
1)		file.>
1)	HASH	CMC,0,<^_
Digital Equipment Corporation       28-AUG-79    Page 585
PCO Log Report


****
2)11	HASH	CLF,0,<^_
2)		You  have changed the log file specification.  The old l
	og
2)		file is closed;  further log entries are  written  in  t
	he
2)		new log file.>
2)	HASH	CMC,0,<^_
**************
1)10		LINK is generating your .EXE file.>
1)	;**;[1144] Replace before DNA long message	DZN	16-Feb-7
	9
1)	HASH	DEB,0,<^_
1)		LINK  is beginning program execution at the named debugg
	er
1)		which you have specified.>
1)	HASH	DLT,0,<^_
1)		Though  you  have asked for program execution, LINK cann
	ot
1)		proceed due to earlier fatal compiler or LINK errors.>
1)	HASH	DNA,0,<^_
1)		A monitor call for SYS:UDDT.EXE failed.>
1)	HASH	DNS,0,<^_
****
2)11		LINK is generating your executable (EXE) file.>
2)	HASH	DEB,0,<^_
2)		LINK is beginning program execution at the named debugge
	r.>
2)	HASH	DLT,0,<^_
2)		Though  you  have asked for program execution, LINK cann
	ot
2)		proceed due to earlier  fatal  compiler  or  LINK  error
	s.
2)		Your program is left in memory or in an executable file.
	>
2)	IFN TOPS20,<
2)	HASH	DNA,0,<^_
2)		A  monitor  call  to obtain SYS:UDDT.EXE failed.  This c
	an
2)		happen if you have redefined the  logical  name  SYS:  a
	nd
2)		neglected to include any directory that contains UDDT.EX
	E.>
2)	> ;END IFN TOPS20
2)	HASH	DNS,0,<^_
**************
1)10		You loaded a FORTRAN-compiled  file  with  DATA  stateme
	nt
1)		assignments  to a COMMON area.	The COMMON area is alrea
	dy
1)		defined in an ancestor link.>
Digital Equipment Corporation       28-AUG-79    Page 586
PCO Log Report


1)	HASH	DSL,0,<^_
****
2)11		You loaded a FORTRAN-compiled module with  DATA  stateme
	nt
2)		assignments  to a common area.	The common area is alrea
	dy
2)		defined in an ancestor link.  Restructure the load so th
	at
2)		the  DATA  statements  are  loaded in the same link as t
	he
 
 
2)		common area to which they refer.>
2)	HASH	DSL,0,<^_
**************
1)10		    If [octal] is less	than  140,  this  message  has
1)		    level 8 and severity 8.
****
2)11		    If the location is less than 140, this message has
2)		    level 8 and severity 8.
**************
1)10	HASH	EHC,0,<^_
****
2)11	HASH	EGD,0,<^_
2)		LINK has expanded its low segment so large that one of i
	ts
2)		larger high segments will not now  fit  in  memory.   LI
	NK
2)		will  attempt  to  shrink  its internal tables so that t
	he
2)		GETSEG will succeed and loading continue.>
2)	HASH	EHC,0,<^_
**************
1)10	HASH	EID,0,<^_
1)		A read error has occurred on the input device.	Use of t
	he
1)		device is terminated and the file is released.	The stat
	us
1)		is represented by the right half of the file status  wor
	d.
****
2)11	HASH	EIF,0,<^_
2)		A  read  error has occurred on the input file.  Use of t
	he
2)		file is terminated and the file is released.   The  stat
	us
2)		is represented by the right half of the file status  wor
	d.
**************
1)10	HASH	EID,0,<^_
1)		A read error has occurred on the input device.	Use of t
Digital Equipment Corporation       28-AUG-79    Page 587
PCO Log Report


	he
1)		device is terminated and the file is released.>
1)	> ;END IFN TOPS20
****
2)11	HASH	EIF,0,<^_
2)		A  read  error has occurred on the input file.  Use of t
	he
2)		file is terminated and the file is released.>
2)	> ;END IFN TOPS20
**************
1)10	;(There is no long text for the ELF message.)
1)	HASH	ELN,0,<^_
****
2)11	HASH	ELF,0,<^_
2)		LINK  has  finished  writing  your  log file.  The file
	is
2)		closed.>
2)	HASH	ELN,0,<^_
**************
1)10	HASH	EOE,0,<^_
1)		LINK could not write the saved	file  on  the  disk.   Y
	ou
1)		could  be  over your disk quota, or the disk could be fu
	ll
1)		or have errors.>
1)	IFE TOPS20,<
****
2)11	IFE TOPS20,<
2)	HASH	EOE,0,<^_
2)		LINK  could  not  write  the  saved file on the disk.  T
	he
2)		status is represented by the left half of the file  stat
	us
 
 
2)		word.    Refer  to  the DECsystem-10 Monitor Calls for t
	he
2)		explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	EOE,0,<^_
2)		LINK could not write the saved file on the disk.>
2)	> ;END IFN TOPS20
2)	IFE TOPS20,<
**************
1)10	HASH	EOV,0,<^_
1)		LINK cannot write the overlay file on disk.   You  may	
	be
1)		over  your disk quota;	the disk may be full;  or the di
	sk
1)		may have errors.>
Digital Equipment Corporation       28-AUG-79    Page 588
PCO Log Report


1)	HASH	ESN,0,<^_
****
2)11	IFE TOPS20,<
2)	HASH	EOV,0,<^_
2)		LINK  could  not  write the overlay file on the disk.  T
	he
2)		status is represented by the left half of the file  stat
	us
2)		word.    Refer  to  the DECsystem-10 Monitor Calls for t
	he
2)		explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	EOV,0,<^_
2)		LINK could not write the saved file on the disk.>
2)	> ;END IFN TOPS20
2)	HASH	ESN,0,<^_
**************
1)10	HASH	EXP,0,<^_
1)		LINK is expanding memory to the specified amount.  You c
	an
1)		speed  up  future loads of this program by using the /CO
	RE
1)		switch to allocate the required core.>
1)	HASH	EXS,0,<^_
1)		LINK is in the last stages of loading  your  program  (f
	or
1)		example,  creating  .EXE  and  symbol files, preparing f
	or
1)		execution if requested).>
****
2)11	IFE TOPS20,<
2)	HASH	EXP,0,<^_
2)		LINK is expanding memory to the specified amount.  You c
	an
2)		speed  up future loads of this program by using the /COR
	E:
2)		switch to allocate the required memory.>
2)	> ;END IFE TOPS20
2)	HASH	EXS,0,<^_
2)		LINK is in the last stages of loading  your  program  (f
	or
2)		example,  creating  EXE  and  symbol  files, preparing f
	or
2)		execution if requested).>
**************
1)10		subroutine.>
1)	HASH	FSI,0,<^_
1)		You gave the /FORSE switch while loading  FORTRAN-compil
	ed
1)		code.>
Digital Equipment Corporation       28-AUG-79    Page 589
PCO Log Report


1)	HASH	FSN,0,<^_
****
2)11		subroutine.  This message is not expected to occur.  If
	it
2)		does,  please  notify  your  Software Specialist or send
	 a
 
 
2)		Software Performance Report (SPR) to DIGITAL.>
2)	HASH	FSI,0,<^_
2)		You gave the /FORSE switch while loading  FORTRAN-compil
	ed
2)		code.  LINK ignored the switch and will  use  the  FORTR
	AN
2)		run-time system.>
2)	HASH	FSN,0,<^_
**************
1)10	;**;[1144] Insert before LNKGST long message	DZN	16-Feb-7
	8
1)	HASH	GFE,0,<^_
****
2)11	HASH	GFE,0,<^_
**************
1)10	;**;[1115] Insert before LNKHSL long message	DZN	2-Sep-78
1)	HASH	HCL,0,<^_
****
2)11	HASH	HCL,0,<^_
**************
1)10	HASH	IAS,0,<^_
1)		An error  occurred  while  reading  in	the  ALGOL  symb
	ol
1)		table.>
1)	HASH	I4D,0,<^_
****
2)11	IFE TOPS20,<
2)	HASH	IAS,0,<^_
2)		An error  occurred  while  reading  in	the  ALGOL  symb
	ol
2)		table.  The status is represented by the right half of t
	he
2)		file status word.  Refer to the DECsystem-10 Monitor Cal
	ls
2)		for the explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	IAS,0,<^_
2)		An error  occurred  while  reading  in  the  ALGOL  symb
	ol
2)		table.>
2)	> ;END IFN TOPS20
2)	HASH	I4D,0,<^_
Digital Equipment Corporation       28-AUG-79    Page 590
PCO Log Report


**************
1)10	HASH	IBC,0,<^_
1)		A blank COMMON	area  cannot  be  expanded  once  define
	d.
1)		Either	load the module with the largest definition firs
	t,
1)		or use the /COMMON switch to reserve the needed space.>
1)	HASH	ICI,0,<^_
1)		LINK needs more memory than is available.>
1)	HASH	IDM,0,<^_
****
2)11	HASH	ICB,0,<^_
2)		REL   block  type  12  (chain),  generated  by  the  MAC
	RO
2)		pseudo-op .LINK and .LNKEND, must contain a number from
	 1
2)		to  100  (octal)  in  its  first  word.   The link word
	is
2)		ignored.>
2)	HASH	IDM,0,<^_
**************
1)10	HASH	IFD,0,<^_
1)		An OPEN or INIT monitor  call  for  the  specified  devi
	ce
1)		failed.  The device may be under another user's control.
	>
1)	HASH	IHC,0,<^_
****
 
 
2)11	IFE TOPS20,<
2)	HASH	IHC,0,<^_
2)		An error  occurred  while  reading  in	your  high-segme
	nt
2)		code.  The status is represented by the right half of  t
	he
2)		file status word.  Refer to the DECsystem-10 Monitor Cal
	ls
2)		for the explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	IHC,0,<^_
**************
1)10	HASH	ILC,0,<^_
1)		An error occurred while reading in your low-segment code
	.>
1)	HASH	ILS,0,<^_
****
2)11	> ;END IFN TOPS20
2)	IFE TOPS20,<
2)	HASH	ILC,0,<^_
Digital Equipment Corporation       28-AUG-79    Page 591
PCO Log Report


2)		An  error occurred while reading in your low-segment cod
	e.
2)		The status is represented by the right half  of  the  fi
	le
2)		status  word.  Refer to the DECsystem-10 Monitor Calls f
	or
2)		the explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	ILC,0,<^_
2)		An error occurred while reading in your low-segment code
	.>
2)	> ;END IFN TOPS20
2)	IFE TOPS20,<
2)	HASH	ILS,0,<^_
2)		An error occurred  while  reading  in  your  local  symb
	ol
2)		table.  The status is represented by the right half of t
	he
2)		file status word.  Refer to the DECsystem-10 Monitor Cal
	ls
2)		for the explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	ILS,0,<^_
**************
1)10	HASH	IMA,0,<^_
1)		The INCREMENTAL keyword for /MAP is not implemented.   T
	he
1)		switch is ignored.>
1)	;(There is no long text for the IMM message.)
1)	HASH	INS,0,<^_
****
2)11	> ;END IFN TOPS20
2)	HASH	IMA,0,<^_
2)		The  INCREMENTAL  keyword  for  the  /MAP:  switch  is n
	ot
2)		implemented.  The switch is ignored.>
2)	HASH	IMI,0,<^_
2)		LINK needs more memory than is available.>
2)	HASH	IMM,0,<^_
2)		You  have  requested  with  the  /INCLUDE: switch that t
	he
2)		named  modules  (if  any)  be   loaded.     Specify  fil
	es
2)		containing these modules.>
2)	HASH	INS,0,<^_
**************
1)10		REL  Block  Type  11  (POLISH).   This is an internal LI
	NK
1)		error.	This message is not  expected  to  occur.   If	
Digital Equipment Corporation       28-AUG-79    Page 592
PCO Log Report


	it
 
 
1)		does,  please  notify  your  Software Specialist or send
	 a
1)		Software Performance Report (SPR) to DIGITAL.>
1)	HASH	IPX,0,<^_
1)		A REL block contains a reference to a  nonexistent  PSEC
	T.
1)		This  error  is probably caused by a fault in the langua
	ge
1)		translator used for the program.>
1)	HASH	IRB,0,<^_
****
2)11		REL  block type 11 (polish).  This message is not expect
	ed
2)		to  occur.   If  it  does,  please  notify  your  Softwa
	re
2)		Specialist or send a Software Performance Report (SPR)
	to
2)		DIGITAL.>
2)	HASH	IPX,0,<^_
2)		A REL block contains a reference to a  nonexistent  psec
	t.
2)		This  error  is probably caused by a fault in the langua
	ge
2)		translator used  for  the  program.   This  error  is  n
	ot
2)		expected  to  occur.   If  it  does,  please  notify  yo
	ur
2)		Software Specialist or send a Software Performance  Repo
	rt
2)		(SPR) to DIGITAL.>
2)	HASH	IRB,0,<^_
**************
1)10		recognize, or it may be an ASCII or .EXE file.>
1)	HASH	ISD,0,<^_
****
2)11		recognize, or it may be an ASCII or EXE file.>
2)	IFN .NWBLK,<
2)	HASH	IRC,0,<^_
2)		One  of  the  new  style  1000+ block types has an illeg
	al
2)		relocation  counter.   This  message  is  not  expected
	to
2)		occur.  If it does, please notify your Software Speciali
	st
2)		or send a Software Performance Report (SPR) to DIGITAL.>
2)	HASH	IRR,0,<^_
2)		One  of  the  REL block types 1042 or 1043 is in the wro
	ng
Digital Equipment Corporation       28-AUG-79    Page 593
PCO Log Report


2)		format. This message is not  expected  to  occur.   If
	it
2)		does,  please  notify  your  Software Specialist or send
	 a
2)		Software Performance Report (SPR) to DIGITAL.>
2)	> ;END IFN .NWBLK
2)	HASH	ISD,0,<^_
**************
1)10		symbol.   This is an internal LINK error.  This message
	is
1)		not expected to occur.	If it  does,  please  notify  yo
	ur
1)		Software  Specialist or send a Software Performance Repo
	rt
1)		(SPR) to DIGITAL.>
****
2)11		symbol.   This  error  can  be  caused  by  a fault in t
	he
2)		language translator used for the program.  This message
	is
2)		not  expected  to  occur.   If it does, please notify yo
	ur
2)		Software Specialist or send a Software Performance  Repo
	rt
2)		(SPR) to DIGITAL.>
**************
1)10		REL  Block  Type  11  (POLISH).   This is an internal LI
	NK
1)		error.	This message is not  expected  to  occur.   If	
	it
1)		does,  please  notify  your  Software Specialist or send
	 a
1)		Software Performance Report (SPR) to DIGITAL.>
1)	HASH	ISP,0,<^_
1)		There is an  error  in	the  global  symbol  table.   Th
	is
 
 
1)		message  is  not  expected  to	occur.	If it does, plea
	se
1)		notify	your  Software	Specialist  or	send  a   Softwa
	re
1)		Performance Report (SPR) to DIGITAL.>
1)	;(There is no long text for the ISS message.)
1)	HASH	IST,0,<^_
1)		LINK has found errors in the switch table passed from  t
	he
1)		SCAN  module.	This message is not expected to occur.	
	If
1)		it does, please notify your Software Specialist or send
	 a
Digital Equipment Corporation       28-AUG-79    Page 594
PCO Log Report


1)		Software Performance Report (SPR) to DIGITAL.>
1)	HASH	ITT,0,<^_
1)		REL Block Type 12 (CHAIN) must contain a number from 1	
	to
1)		100 (octal) in its first word.>
1)	;(There is no long text for the IUU message.)
1)	HASH	IVC,0,<^_
****
2)11		REL block type 11 (polish).  This error can be caused by
	 a
2)		fault in the language translator  used  for  the  progra
	m.
2)		This message is not expected to occur.  If it does, plea
	se
2)		notify  your  Software  Specialist  or  send  a   Softwa
	re
2)		Performance Report (SPR) to DIGITAL.>
2)	HASH	ISP,0,<^_
2)		There  is an error in the global symbol table.  This is
	an
2)		internal LINK error.  This  message  is  not  expected
	to
2)		occur.  If it does, please notify your Software Speciali
	st
2)		or send a Software Performance Report (SPR) to DIGITAL.>
2)	HASH	ISS,0,<^_
2)		There  is  insufficient address space for the symbol tab
	le
2)		between the named psect and the next higher one or the e
	nd
2)		of  the  address  space.  Restructure your psect layout
	to
2)		allow sufficient room for the symbol table.>
2)	HASH	IST,0,<^_
2)		LINK has found errors in the switch table passed from  t
	he
2)		SCAN  module.  This is an internal error.  This message
	is
2)		not expected to occur.	If it  does,  please  notify  yo
	ur
2)		Software Specialist or send  a Software Performance Repo
	rt
2)		(SPR) to DIGITAL.>
2)	HASH	ITB,0,<^_
2)		LINK  has  failed  to  complete the processing of an ASC
	II
2)		text REL block from the named file.  This is  an  intern
	al
2)		error.   This  message  is  not  expected to occur.  If
	it
2)		does, please notify your Software  Specialist  or  send
Digital Equipment Corporation       28-AUG-79    Page 595
PCO Log Report


	 a
2)		Software Performance Report (SPR) to DIGITAL.>
2)	HASH	IUU,0,<^_
2)		LINK's  user  UUO  (LUUO)  handler has detected an illeg
	al
2)		UUO.  This is an internal  error.   This  message  is  n
	ot
2)		expected  to  occur.   If  it  does,  please  notify  yo
	ur
2)		Software Specialist or send a Software Performance  Repo
	rt
2)		(SPR) to DIGITAL.>
2)	HASH	IVC,0,<^_
**************
1)10		at which failure occurred.  This message is  not  expect
	ed
1)		to  occur.   If  it  does,  please  notify  your  Softwa
	re
1)		Specialist or send a Software Performance Report (SPR)	
	to
1)		DIGITAL.>
1)	;**;[1120] Delete LNKKIA long message	DZN	22-Sep-78
1)	HASH	LDS,0,<^_
 
 
1)		The LINK module LNKLOD is beginning its processing.>
1)	;(There is no long text for the LFC message.)
1)	;(There is no long text for the LFI message.)
1)	HASH	LII,0,<^_
1)		A REL Block Type 14 (INDEX) for a MAKLIB or FUDGE2 libra
	ry
1)		file  is  inconsistent.   The library is searched, but t
	he
1)		index is ignored.>
1)	HASH	LIM,0,<^_
1)		LINK is ready for your input.>
1)	HASH	LMN,0,<^_
****
2)11		at which failure occurred.  This  is  an  internal  erro
	r.
2)		This message is not expected to occur.  If it does, plea
	se
2)		notify  your  Software  Specialist  or  send  a   Softwa
	re
2)		Performance Report (SPR) to DIGITAL.>
2)	HASH	LDS,0,<^_
2)		The LINK module LNKLOD is beginning its processing.>
2)	HASH	LFB,0,<^_
2)		LINK is creating your log file as a result of defining t
	he
2)		logical name LOG:.>
Digital Equipment Corporation       28-AUG-79    Page 596
PCO Log Report


2)	HASH	LFC,0,<^_
2)		LINK  is  continuing your log file as a result of the /L
	OG
2)		switch.>
2)	HASH	LFI,0,<^_
2)		LINK  is  beginning  your log file as a result of the /L
	OG
2)		switch.>
2)	HASH	LII,0,<^_
2)		A  REL  block  type  14  (index)  for  a  MAKLIB or FUDG
	E2
2)		generated library file is inconsistent.   The  library
	is
2)		searched, but the index is ignored.>
2)	HASH	LIN,0,<^_
2)		LINK  is  beginning  its  processing  by  initializing i
	ts
2)		internal tables and variables.>
2)	HASH	LMN,0,<^_
**************
1)10	HASH	LNC,0,<^_
1)		LINK cannot find the named link in memory.   This  messa
	ge
1)		is  not expected to occur.  If it does, please notify yo
	ur
1)		Software Specialist or send a Software Performance  Repo
	rt
1)		(SPR) to DIGITAL.>
1)	HASH	LNL,0,<^_
****
2)11	HASH	LNL,0,<^_
**************
1)10	HASH	LNN,0,<^_
****
2)11	HASH	LNM,0,<^_
2)		LINK  cannot  find  the  named link in memory.  This is
	an
2)		internal error.  This message is not  expected  to  occu
	r.
2)		If it does, please notify your Software Specialist or se
	nd
2)		a Software Performance Report (SPR) to DIGITAL.>
2)	HASH	LNN,0,<^_
**************
1)10	HASH	LSM,0,<^_
****
2)11	IFE FTSINGLE,<
 
 
2)	HASH	LNS,0,<^_
2)		The  length  of LINK's low segment differs from the leng
Digital Equipment Corporation       28-AUG-79    Page 597
PCO Log Report


	th
2)		stored in the current LINK high segment.  This  occurs
	if
2)		some  but  not  all  of LINK's EXE files have been updat
	ed
2)		after rebuilding LINK from sources.  Update all of  LINK
	's
2)		EXE files.>
2)	> ;END OF IFE FTSINGLE
2)	HASH	LSM,0,<^_
**************
1)10	;(There is no long text for the LSS message.)
1)	HASH	MDS,0,<^_
1)		The named module contains a new definition of  an  alrea
	dy
1)		defined  global symbol.  The new definition is used.  Ma
	ke
1)		the definitions consistent and reload.>
1)	HASH	MOV,0,<^_
1)		LINK is rearranging the low segment to make more room  f
	or
1)		the  specified	area.	area  is  one  of  the	followin
	g:
1)		AS=ALGOL symbol table, BG=bound global symbols, DY=dynam
	ic
1)		free  core, FX=fixup area, GS=global symbol table, HC=yo
	ur
1)		high-segment  code,  LC=your  low-segment  code,  LS=loc
	al
1)		symbol tables, RT=relocation tables.>
1)	HASH	MPS,0,<^_
****
2)11	HASH	LSS,0,<^_
2)		The  listed  symbols  and  their values (if any) are tho
	se
2)		that are library search entry points.>
2)	HASH	MDS,0,<^_
2)		The named module contains a new definition of  an  alrea
	dy
2)		defined  global symbol.  The old definition is used.  Ma
	ke
2)		the definitions consistent and reload.>
2)	HASH	MEF,0,<^_
2)		LINK   cannot   expand   memory  further.    All permitt
	ed
2)		overflows to disk have been tried,  but  your  program
	is
2)		still too large for available memory.  A probable cause
	is
2)		a large global symbol table, which cannot be overflowed
	to
Digital Equipment Corporation       28-AUG-79    Page 598
PCO Log Report


2)		disk.>
2)	HASH	MOV,0,<^_
2)		LINK is rearranging its low segment to make more room  f
	or
2)		the  specified	area.	Area  is  one  of  the	followin
	g:
2)		AS=ALGOL symbol table, BG=bound global symbols, DY=dynam
	ic
2)		free   memory,  FX=fixup  area,  GS=global  symbol  tabl
	e,
2)		HC=your  high-segment  code,  LC=your  low-segment   cod
	e,
2)		LS=local symbol tables, RT=relocation tables.>
2)	HASH	MPS,0,<^_
**************
1)10		Overlay structures consisting of more than one region  a
	re
1)		not supported.>
1)	HASH	MSN,0,<^_
****
2)11		The  REGION  keyword  for  the  /OVERLAY:  switch  is  n
	ot
2)		implemented.  The argument is ignored.>
2)	HASH	MSN,0,<^_
**************
1)10		must precede any module names or filenames.>
1)	HASH	MSS,0,<^_
****
 
 
2)11		must precede any file specifications.>
2)	HASH	MSS,0,<^_
**************
1)10		setting the /MAXCOR switch to this expanded  size  at  t
	he
1)		beginning of the load.>
1)	HASH	MTB,0,<^_
1)		You are attempting to set MAXCOR so  large  that  the  l
	ow
1)		segment cannot fit before the high segment.  LINK will u
	se
1)		only the core indicated.>
1)	HASH	MTS,0,<^_
1)		LINK needs more space  than  you  gave	with  the  /MAXC
	OR
1)		switch.   Give	a  new	/MAXCOR  switch  with at least t
	he
1)		required size.>
****
2)11		setting the /MAXCOR: switch to this expanded size  at  t
	he
Digital Equipment Corporation       28-AUG-79    Page 599
PCO Log Report


2)		beginning of the load.>
2)	HASH	MTB,0,<^_
2)		You are attempting to specify the /MAXCOR: switch so lar
	ge
2)		that  the  low segment cannot fit before the high segmen
	t.
2)		LINK will use only the core indicated.>
2)	HASH	MTS,0,<^_
2)		LINK needs more space than  you  gave  with  the  /MAXCO
	R:
2)		switch.   Give  a  new /MAXCOR:  switch  with at least t
	he
2)		required size.>
**************
1)10	;**;[1146] Delete LNKNCL and LNKNCX long messages	DZN	
	8-Mar-79
1)	HASH	NEB,0,<^_
1)		No REL Block Type 5 (END) was found in the  named  modul
	e.
1)		This  will  happen  if LINK finds two Type 6 Blocks (NAM
	E)
1)		without an intervening END, or if an end-of-file is  fou
	nd
1)		before	the  END.   Fatal  messages  usually  follow  th
	is
1)		message.>
1)	HASH	NED,0,<^_
****
2)11	HASH	NEB,0,<^_
2)		No REL block type 5 (end) was found in the  named  modul
	e.
2)		This  will  happen  if LINK finds two type 6 blocks (nam
	e)
2)		without an intervening end, or if an end-of-file is  fou
	nd
2)		before  the end block is seen.  LINK simulates the missi
	ng
2)		end block.  However, fatal messages usually  follow  thi
	s,
2)		since this condition usually indicates a bad REL file.>
2)	HASH	NED,0,<^_
**************
1)10	;**;[1144] Replace before LNKOAS long message	DZN	16-Feb-7
	9
1)	HASH	NSA,0,<^_
****
2)11	HASH	NPS,0,<^_
2)		You  have  specified  the name of a psect after which LI
	NK
2)		should append the symbol table, but  no  psect  with  th
	at
Digital Equipment Corporation       28-AUG-79    Page 600
PCO Log Report


2)		name  was  loaded.   Load  the  named  psect or specify
	an
2)		existing psect for the symbols.>
2)	HASH	NSA,0,<^_
**************
1)10	HASH	OAS,0,<^_
1)		An error occurred  while  writing  out	the  ALGOL  symb
	ol
1)		table.>
 
 
1)	HASH	ODV,0,<^_
1)		Specify a disk device for the overlay file.>
1)	IFE TOPS20,<
****
2)11	IFE TOPS20,<
2)	HASH	OAS,0,<^_
2)		An error occurred  while  writing  out	the  ALGOL  symb
	ol
2)		table.  The status is represented by the right half of t
	he
2)		file status word.  Refer to the DECsystem-10 Monitor Cal
	ls
2)		for the explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	OAS,0,<^_
2)		An error occurred  while  writing  out  the  ALGOL  symb
	ol
2)		table.>
2)	> ;END IFN TOPS20
2)	IFE TOPS20,<
**************
1)10	HASH	OEX,0,<^_
****
2)11	IFE TOPS20,<
2)	HASH	OEX,0,<^_
**************
1)10	IFE TOPS20,<
****
2)11	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	OEX,0,<^_
2)		An error has occurred on the output file.  The output fi
	le
2)		is closed at the end of the last data successfully outpu
	t.>
2)	> ;END IFN TOPS20
2)	HASH	OFD,0,<^_
2)		An OPEN or INIT monitor  call  for  the  specified  devi
	ce
Digital Equipment Corporation       28-AUG-79    Page 601
PCO Log Report


2)		failed.  The device may be under another user's control.
	>
2)	IFE TOPS20,<
**************
1)10	HASH	OHC,0,<^_
1)		An error occurred  while  writing  out	your  high-segme
	nt
1)		code.>
1)	HASH	OHN,0,<^_
****
2)11	HASH	OFS,0,<^_
2)		Specify a disk device for the overlay file.>
2)	IFE TOPS20,<
2)	HASH	OHC,0,<^_
2)		An error occurred  while  writing  out	your  high-segme
	nt
2)		code.   The status is represented by the right half of t
	he
2)		file status word.  Refer to the DECsystem-10 Monitor Cal
	ls
2)		for the explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	OHC,0,<^_
2)		An error occurred  while  writing  out  your  high-segme
	nt
2)		code.>
2)	> ;END IFN TOPS20
2)	HASH	OHN,0,<^_
 
 
**************
1)10	HASH	OLC,0,<^_
****
2)11	IFE TOPS20,<
2)	HASH	OLC,0,<^_
2)		An error  occurred  while  writing  out  your  low-segme
	nt
2)		code.  The status is represented by the right half of  t
	he
2)		file status word.  Refer to the DECsystem-10 Monitor Cal
	ls
2)		for the explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	OLC,0,<^_
**************
1)10	HASH	OLS,0,<^_
****
2)11	> ;END IFN TOPS20
2)	IFE TOPS20,<
Digital Equipment Corporation       28-AUG-79    Page 602
PCO Log Report


2)	HASH	OLS,0,<^_
2)		An error occurred while  writing  out  your  local  symb
	ol
2)		table.  The status is represented by the right half of t
	he
2)		file status word.  Refer to the DECsystem-10 Monitor Cal
	ls
2)		for the explanation of the file status bits.>
2)	> ;END IFE TOPS20
2)	IFN TOPS20,<
2)	HASH	OLS,0,<^_
**************
1)10	HASH	OMB,0,<^_
1)		The /OVERLAY switch must appear before you can use any	
	of
1)		the  following	switches:   /ARSIZE,  /LINK, /NODE, /PLO
	T,
1)		/SPACE.  (It is sufficient that the /OVERLAY switch appe
	ar
1)		on the same line as the first of these switches you use.
	)>
1)	;(There is no long text for the ONS message.)
1)	IFE TOPS20,<
****
2)11	> ;END IFN TOPS20
2)	HASH	OMB,0,<^_
2)		The /OVERLAY switch must appear before you can use any	
	of
2)		the  following	switches:   /ARSIZE:, /LINK, /NODE, /PLO
	T,
2)		/SPACE.  (It is sufficient that the /OVERLAY switch appe
	ar
2)		on the same line as the first of these switches you use.
	)>
2)	HASH	ONS,0,<^_
2)		LINK  handles overlays with its LNKOV1 and LNKOV2 module
	s.
2)		Your installation has substituted dummy versions of thes
	e.
2)		You  should  request  that  your installation rebuild LI
	NK
2)		with the real LNKOV1 and LNKOV2 modules.>
2)	IFE TOPS20,<
**************
1)10	HASH	PAS,0,<^_
1)		The job is too large to fit into the  allowed  memory  a
	nd
1)		the ALGOL symbol table is being moved to disk.>
****
2)11	HASH	OSL,0,<^_
2)		You  have  specified  /SYMSEG:HIGH  or /SYMSEG:PSECT: wh
Digital Equipment Corporation       28-AUG-79    Page 603
PCO Log Report


	en
2)		loading an  overlay  structure.   Specify  /SYMSEG:LOW
	or
2)		/SYMSEG:DEFAULT.>
2)	HASH	PAS,0,<^_
 
 
2)		The load is too large to fit into the allowed  memory  a
	nd
2)		the ALGOL symbol table is being moved to disk.>
**************
1)10	;**;[1146] Insert LNKPCL and LNKPCX long messages before LNKPEF	
	DZN	8-Mar-79
1)	IFE TOPS20,<
****
2)11	IFE TOPS20,<
**************
1)10		1.	There  are  page gaps between PSECTs (except bel
	ow
1)			the high segment).
1)		2.	There  are  PSECTs  above  the  origin of the hi
	gh
1)			segment.
****
2)11		1.	There  are  page gaps between psects (except bel
	ow
2)			the high segment).
2)		2.	There  are  psects  above  the  origin of the hi
	gh
2)			segment.
**************
1)10		LINK  has  saved  your program as an .EXE file on disk a
	nd
1)		cleared your user memory.   You  can  use  a  GET  or  R
	UN
1)		command to load the .EXE file.>
1)	HASH	PCX,0,<^_
****
2)11		4.	Your  program's  low  segment  has  the  read-on
	ly
2)			attribute, or the high segment has  the  read  a
	nd
2)			write attribute.
2)		LINK  has  saved  your  program as an EXE file on disk a
	nd
2)		cleared your user memory.   You  can  use  a  GET  or  R
	UN
2)		command to load the EXE file.>
2)	HASH	PCX,0,<^_
**************
1)10		1.	There  are  page gaps between PSECTs (except bel
Digital Equipment Corporation       28-AUG-79    Page 604
PCO Log Report


	ow
1)			the high segment).
1)		2.	There  are  PSECTs  above  the  origin of the hi
	gh
1)			segment.
****
2)11		1.	There  are  page gaps between psects (except bel
	ow
2)			the high segment).
2)		2.	There  are  psects  above  the  origin of the hi
	gh
2)			segment.
**************
1)10		LINK  will  save  your program as an .EXE file on disk a
	nd
1)		automatically run it,  but  the  .EXE  file  will  not
	be
1)		deleted.>
****
2)11		4.	Your  program's  low  segment  has  the  read-on
	ly
2)			attribute, or the high segment has  the  read  a
	nd
2)			write attribute.
2)		LINK  will  save  your  program as an EXE file on disk a
	nd
2)		automatically run  it,  but  the  EXE  file  will  not
	be
2)		deleted.>
**************
1)10		1.	There  are  page gaps between PSECTs (except bel
	ow
1)			the high segment).
1)		2.	There  are  PSECTs  above  the  origin of the hi
	gh
1)			segment.
 
 
****
2)11		1.	There  are  page gaps between psects (except bel
	ow
2)			the high segment).
2)		2.	There  are  psects  above  the  origin of the hi
	gh
2)			segment.
**************
1)10		4.	One or more PSECTs has the read-only attribute.
1)		LINK  has  saved  your program as an .EXE file on disk a
	nd
1)		cleared your user memory.   You  can  use  a  GET  or  R
	UN
Digital Equipment Corporation       28-AUG-79    Page 605
PCO Log Report


1)		command to load the .EXE file.>
1)	HASH	PCX,0,<^_
****
2)11		4.	One or more psects has the read-only attribute.
2)		LINK  has  saved  your  program as an EXE file on disk a
	nd
2)		cleared your user memory.   You  can  use  a  GET  or  R
	UN
2)		command to load the EXE file.>
2)	HASH	PCX,0,<^_
**************
1)10		1.	There  are  page gaps between PSECTs (except bel
	ow
1)			the high segment).
1)		2.	There  are  PSECTs  above  the  origin of the hi
	gh
1)			segment.
****
2)11		1.	There  are  page gaps between psects (except bel
	ow
2)			the high segment).
2)		2.	There  are  psects  above  the  origin of the hi
	gh
2)			segment.
**************
1)10		4.	One or more PSECTs has the read-only attribute.
1)		LINK  will  save  your program as an .EXE file on disk a
	nd
1)		automatically run it,  but  the  .EXE  file  will  not
	be
1)		deleted.>
****
2)11		4.	One or more psects has the read-only attribute.
2)		LINK  will  save  your  program as an EXE file on disk a
	nd
2)		automatically run  it,  but  the  EXE  file  will  not
	be
2)		deleted.>
**************
1)10		LINK found an end-of-file inside a REL Block (that is, t
	he
1)		word   count   for   the   block   extended   beyond   t
	he
1)		end-of-file).>
1)	HASH	PHC,0,<^_
1)		The job is too large to fit into the  allowed  memory  a
	nd
1)		your high-segment code is being moved to disk.>
1)	HASH	PLC,0,<^_
1)		The job is too large to fit into the  allowed  memory  a
	nd
Digital Equipment Corporation       28-AUG-79    Page 606
PCO Log Report


1)		your low-segment code is being moved to disk.>
1)	HASH	PLS,0,<^_
1)		The job is too large to fit into the  allowed  memory  a
	nd
1)		your local symbol tables are being moved to disk.>
1)	;(There is no long text for the POO message.)
1)	;**;[1113] Insert in long messages before LNKPSF message	
	DZN	25-Aug-78
1)	HASH	POT,0,<^_
1)		LINK is creating your overlay tree file.>
1)	HASH	PSF,0,<^_
1)		The feature you requested is not available.>
 
 
1)	HASH	PUF,0,<^_
****
2)11		LINK found an end-of-file inside a REL block (that is, t
	he
2)		word   count   for   the   block   extended   beyond   t
	he
2)		end-of-file).   This error can be caused by a fault in t
	he
2)		language translator used for the program.>
2)	HASH	PHC,0,<^_
2)		The load is too large to fit into the allowed  memory  a
	nd
2)		your high-segment code is being moved to disk.>
2)	HASH	PLC,0,<^_
2)		The load is too large to fit into the allowed  memory  a
	nd
2)		your low-segment code is being moved to disk.>
2)	HASH	PLS,0,<^_
2)		The load is too large to fit into the allowed  memory  a
	nd
2)		your local symbol tables are being moved to disk.>
2)	HASH	POT,0,<^_
2)		LINK is creating your overlay tree file.>
2)	HASH	POV,0,<^_
2)		The named psects overlap each other in the indicated ran
	ge
2)		of  addresses.   If  you  do  not  expect  this   messag
	e,
2)		restructure   your  psect  origins  with  the  /SET:PSEC
	T:
2)		switch.>
2)	IFE TOPS20,<
2)	HASH	PUF,0,<^_
**************
1)10		the /CORE and /MAXCOR switches.  This is an internal  LI
	NK
1)		error.	 This  message	is  not  expected to occur.  If
Digital Equipment Corporation       28-AUG-79    Page 607
PCO Log Report


	it
1)		does, please notify your Software  Specialist  or  send
	 a
1)		Software Performance Report (SPR) to DIGITAL.>
1)	HASH	RBS,0,<^_
1)		The REL Block is inconsistent.	 This  may  be	caused	
	by
1)		incorrect  output  from a translator (for example, missi
	ng
1)		argument for an END  block).   Recompile  the  module  a
	nd
1)		reload.>
1)	HASH	RCU,0,<^_
1)		The global symbol you gave with the  /SET  switch  is  n
	ot
1)		defined.  Load a module that defines the symbol.>
1)	HASH	RED,0,<^_
****
2)11		the /CORE: and /MAXCOR: switches.   This  is  an  intern
	al
2)		LINK error.  This message is not expected to occur.  If
	it
2)		does, please notify your Software  Specialist  or  send
	 a
2)		Software Performance Report (SPR) to DIGITAL.>
2)	> ;END IFE TOPS20
2)	HASH	RBS,0,<^_
2)		The REL block is inconsistent.	 This  may  be	caused	
	by
2)		incorrect  output  from a translator (for example, missi
	ng
2)		argument for an end  block).   Recompile  the  module  a
	nd
2)		reload.>
2)	HASH	RED,0,<^_
**************
1)10	;(There is no long text for the RER message.)
1)	HASH	RGS,0,<^_
1)		LINK is expanding the global  symbol  table  either  to
	 a
1)		prime  number larger than your /HASHSIZE switch requeste
	d,
1)		or by about 50 percent.  You can speed up future loads	
	of
 
 
1)		this  program  by  setting  /HASHSIZE  this  large  at t
	he
1)		beginning of the load.>
1)	;(There is no long text for the RLC message.)
1)	HASH	RUC,0,<^_
Digital Equipment Corporation       28-AUG-79    Page 608
PCO Log Report


1)		LINK attempted to return memory to the memory manager, b
	ut
1)		the  specified	memory	was  never  allocated to this jo
	b.
1)		This message is not expected to occur.	If it does, plea
	se
1)		notify	 your  Software  Specialist  or  send  a  Softwa
	re
1)		Performance Report (SPR) to DIGITAL.>
1)	HASH	SFU,0,<^_
****
2)11	HASH	RER,0,<^_
2)		The  listed  symbols  and  their values (if any) represe
	nt
2)		subroutine entry points in the current link.>
2)	HASH	RGS,0,<^_
2)		LINK is expanding the global  symbol  table  either  to
	 a
2)		prime number larger than your /HASHSIZE: switch requeste
	d,
2)		or by about 50 percent.  You can speed up future loads	
	of
2)		this  program  by  setting  /HASHSIZE:  this  large at t
	he
2)		beginning of the load.>
2)	HASH	RLC,0,<^_
2)		The  listed  symbols  and  values  represent  the  curre
	nt
2)		placement of psects in your address space.>
2)	HASH	RME,0,<^_
2)		The  REMAP  UUO  to  place your program's high segment h
	as
2)		failed.  This message is not expected  to  occur.   If
	it
2)		does,  please  notify  your  Software Specialist or send
	 a
2)		Software Performance Report (SPR) to DIGITAL.>
2)	HASH	RUM,0,<^_
2)		LINK attempted to return memory to the memory manager, b
	ut
2)		the specified memory was not previously  allocated.   Th
	is
2)		is an internal error.  This message  is  not  expected
	to
2)		occur.  If it does, please notify your Software Speciali
	st
2)		or send a Software Performance Report (SPR) to DIGITAL.>
2)	HASH	SFU,0,<^_
**************
1)10		control section lengths.  This message is not expected	
	to
Digital Equipment Corporation       28-AUG-79    Page 609
PCO Log Report


1)		occur.	If it does, please notify your Software Speciali
	st
1)		or send a Software Performance Report (SPR) to DIGITAL.>
1)	HASH	SIF,0,<^_
****
2)11		control section lengths.  This is an internal error.  Th
	is
2)		message  is  not  expected  to  occur.  If it does, plea
	se
2)		notify  your  Software  Specialist  or  send  a   Softwa
	re
2)		Performance Report (SPR) to DIGITAL.>
2)	HASH	SIF,0,<^_
**************
1)10		load your files in a different order.  This message is n
	ot
1)		expected  to  occur.   If  it  does,  please  notify  yo
	ur
1)		Software Specialist or send a Software Performance  Repo
	rt
1)		(SPR) to DIGITAL.>
1)	HASH	SLS,0,<^_
1)		You have  specified  /SYMSEG:HIGH  or  /SYMSEG:PSECT  wh
	en
1)		loading  an  overlay  structure.   Specify  /SYMSEG:LOW
	or
1)		/SYMSEG:DEFAULT.>
1)	HASH	SMP,0,<^_
 
 
****
2)11		load your files in a different order.  This is an intern
	al
2)		error.   This  message  is  not  expected to occur.  If
	it
2)		does, please notify your Software  Specialist  or  send
	 a
2)		Software Performance Report (SPR) to DIGITAL.>
2)	HASH	SMP,0,<^_
**************
1)10		You defined a COMMON  symbol  with  the  same  name  as
	 a
1)		non-COMMON  symbol.   You must decide which definition y
	ou
1)		want.  If you want the COMMON definition, load the  COMM
	ON
1)		area first.>
****
2)11		You defined a FORTRAN common  area with the same name as
	 a
2)		non-common  symbol.   You must decide which definition y
Digital Equipment Corporation       28-AUG-79    Page 610
PCO Log Report


	ou
2)		want.  If you want the common definition, load the  comm
	on
2)		area first.>
**************
1)10		An error occurred in outputting the .EXE file.	 The  fi
	le
1)		was  closed  after the last successful output.	The stat
	us
1)		is represented by the right half of the file status  wor
	d.
****
2)11		An error occurred in outputting the EXE file.  The  stat
	us
2)		is represented by the right half of the file status  wor
	d.
**************
1)10		An error occurred in outputting the .EXE file.	 The  fi
	le
1)		was closed after the last successful output.>
1)	> ;END IFN TOPS20
1)	HASH	SRB,0,<^_
1)		You cannot /SET the named  relocation  counter	below  i
	ts
1)		initial value.	The attempt is ignored.>
1)	HASH	SSN,0,<^_
****
2)11		An error occurred in outputting the .EXE file.>
2)	> ;END IFN TOPS20
2)	HASH	SRB,0,<^_
2)		You   cannot  use  the  /SET:  switch  to  set  the  nam
	ed
2)		relocation counter below its initial value.   The  attem
	pt
2)		is ignored.>
2)	HASH	SRP,0,<^_
2)		Relocatable  psects are not implemented;  you must speci
	fy
2)		an explicit absolute origin with  the  /SET:PSECT:  swit
	ch
2)		for the named psect.>
2)	HASH	SSN,0,<^_
**************
1)10		indicated on the /SYMSEG, /SYMBOL, or /DEBUG switch.>
1)	HASH	STC,0,<^_
1)		The symbol table has been sorted and  moved  according	
	to
1)		the /SYMSEG, /SYMBOL, or /DEBUG switch.>
1)	;**;[1133] Insert @ the T13 message	JNG	30-Jan-79
1)	HASH	STL,0,<^_
****
Digital Equipment Corporation       28-AUG-79    Page 611
PCO Log Report


2)11		indicated on the /SYMSEG, /SYFILE, or /DEBUG switch.>
2)	HASH	STC,0,<^_
2)		The symbol table has been sorted and  moved  according	
	to
2)		the /SYMSEG, /SYFILE, or /DEBUG switch.>
2)	HASH	STL,0,<^_
 
 
**************
1)10		REL Block Type 13  (LVAR)  is  obsolete.   Use	the  MAC
	RO
1)		pseudo-op TWOSEG.>
****
2)11		REL block type 13  (LVAR)  is  obsolete.   Use	the  MAC
	RO
2)		pseudo-op TWOSEG.>
**************
1)10	HASH	TEC,0,<^_
1)		You cannot expand an already defined  COMMON  area.   Lo
	ad
1)		the  largest  definition of a given named COMMON first,
	or
1)		use the /COMMON switch to reserve space for it.   You  c
	an
1)		define a new COMMON area with a new name any time.>
1)	HASH	TMA,0,<^_
****
2)11	HASH	TMA,0,<^_
**************
1)10		is in error.  This message is not expected to  occur.	
	If
1)		it  does, please notify your Software Specialist or send
	 a
1)		Software Performance Report (SPR) to DIGITAL.>
1)	HASH	UAR,0,<^_
1)		The named symbol was referenced in an  .ASSIGN	pseudo-o
	p,
1)		but  the  symbol  is  undefined.  The .ASSIGN pseudo-op
	is
1)		ignored.  You  should  load  a	module	that  defines  t
	he
1)		symbol.>
1)	;(There is no long text for the UGS message.)
1)	HASH	UNS,0,<^_
****
2)11		is in error.  This is an internal error.  This  message
	is
2)		not  expected  to  occur.   If it does, please notify yo
	ur
2)		Software Specialist or send a Software Performance  Repo
	rt
Digital Equipment Corporation       28-AUG-79    Page 612
PCO Log Report


2)		(SPR) to DIGITAL.>
2)	HASH	UAR,0,<^_
2)		The  named  symbol  was referenced in a REL block type 1
	00
2)		(ASSIGN), but the symbol is undefined.  This  is generat
	ed
2)		with  the  MACRO  pseudo-op  .ASSIGN.   The assignment
	is
2)		ignored.   You  should  load  a  module  that  defines t
	he
2)		symbol.>
2)	HASH	UGS,0,<^_
2)		The  listed  symbols  and  their values (if any) represe
	nt
2)		symbols not yet defined by any module.  Each value is  t
	he
2)		first  address in a chain of references for the associat
	ed
2)		symbol.
2)		If  this  message  resulted  automatically  at  the end
	of
2)		loading, this is a user error.  In  this  case,  the  lo
	ad
2)		will   continue,   leaving  references  to  these  symbo
	ls
2)		unresolved.>
2)	HASH	UNS,0,<^_
**************
1)10		In a REL Block Type 2 (SYMBOLS), the first 4 bits of  ea
	ch
1)		word  pair  contain  the Radix-50 symbol code.	LINK fou
	nd
1)		one or more invalid codes in the block.>
1)	HASH	USA,0,<^_
****
2)11		In a REL block type 2 (symbols), the first 4 bits of  ea
	ch
2)		word  pair  contain  the Radix-50 symbol code.	LINK fou
	nd
2)		one or more invalid codes in the block.  This error can
	be
 
 
2)		caused  by a fault in the language translator used for t
	he
2)		program.>
2)	HASH	USA,0,<^_
**************
1)10	;(There is no long text for the VAL message.)
1)	;**;[1144] Replace before LNKZSV long message	DZN	16-Feb-7
	9
Digital Equipment Corporation       28-AUG-79    Page 613
PCO Log Report


1)	HASH	XCT,0,<^_
****
2)11	HASH	USI,0,<^_
2)		You  have  specified  an undefined symbol to a switch th
	at
2)		can only take a defined symbol or a number.   Specify  t
	he
2)		correct switch value.>
2)	HASH	VAL,0,<^_
2)		LINK  has  printed the specified symbol, its value and i
	ts
2)		attributes as requested.>
2)	HASH	XCT,0,<^_
**************
1)11		1.  The filename given was illegal.
1)		2.  When updating a file, the filename given did not mat
	ch
1)		    the file to be updated.
1)		3.  The RENAME monitor call following a LOOKUP monitor c
	all
1)		    failed.>
1)	INDEX	<FLE,GSE>,0,0,<^_
1)		The file requested by the user was not  found.   The  us
	er
1)		should respecify the correct filename.>
1)	INDEX	<FEE,FLE,FRE,GSE>,1,0,<^_
1)		The directory does not exist on the named file  structur
	e,
1)		or the project-programmer number given was incorrect.>
1)	INDEX	<FEE,FLE,FRE,GSE>,2,0,<^_
1)		The user does not have the correct  privileges  to  acce
	ss
1)		the named file.>
1)	INDEX	FEE,-1,0,<^_
1)		The directory on the DECtape has no room for the file.>
1)	INDEX	<FEE,FLE,FRE,GSE>,3,0,<^_
1)		Another user is currently modifying the named  file.   T
	he
1)		user should try accessing the file later.>
1)	INDEX	<FEE,FLE,FRE,GSE>,4,0,<^_
1)		The specified filename  already  exists,  or  a  differe
	nt
1)		filename was given  on  the ENTER monitor call following
	 a
1)		LOOKUP monitor call.>
1)	INDEX	<FEE,FLE,FRE,GSE>,5,%SPR,<^_
1)		The user specified an illegal sequence  of  monitor  cal
	ls
1)		(e.g., a RENAME without a preceding LOOKUP or ENTER, or
	 a
1)		LOOKUP after an ENTER).>
Digital Equipment Corporation       28-AUG-79    Page 614
PCO Log Report


1)	INDEX	<FEE,FLE,FRE,GSE>,6,0,<^_
1)		One of the following conditions occurred:
1)		1.  Transmission, device, or  data  error  occurred  whi
	le
1)		    attempting to read the UFD or RIB.
1)		2.  A hardware-detected device or data error was  detect
	ed
1)		    while reading the UFD RIB or UFD data block.
1)		3.  A  software-detected  data  inconsistency  error   w
	as
1)		    detected while reading the UFD RIB or file RIB.>
1)	INDEX	<FEE,FLE,FRE,GSE>,7,%NPOS,<^_
1)		The named file is not a saved file.>
1)	INDEX	<FEE,FLE,FRE,GSE>,10,%NPOS,<^_
1)		The system cannot supply enough memory to use  as  buffe
	rs
 
 
1)		or to read in a program.>
1)	INDEX	<FEE,FLE,FRE,GSE>,11,%NPOS,<^_
1)		The  device  indicated  by  the  user  is  currently   n
	ot
1)		available.>
1)	INDEX	<FEE,FLE,FRE,GSE>,12,%NPOS,<^_
1)		The device specified by the user  does  not  exist.>
1)	INDEX	<FEE,FLE,FRE,GSE>,13,%NPOS,<^_
1)		The  machine  does  not  have  a  two-register  relocati
	on
1)		capability.>
1)	INDEX	<FEE,FLE,FRE,GSE>,14,0,<^_
1)		There is no room on the file structure for the named fil
	e,
1)		or  the  user's  quota  on  the  file  structure  would
	be
1)		exceeded if the file were placed on the structure.>
1)	INDEX	<FEE,FLE,FRE,GSE>,15,0,<^_
1)		The user cannot write on the specified device  because
	it
1)		is write-locked.>
1)	INDEX	<FEE,FLE,FRE,GSE>,16,0,<^_
1)		There is not enough table space in  the  monitor's  4-WO
	rd
1)		blocks for the specified file. The user should try runni
	ng
1)		the job at a later time.>
1)	INDEX	<FEE,FLE,FRE,GSE>,17,0,<^_
1)		Because of the user's quota or the available space on  t
	he
1)		device,  the total number of blocks requested could not
	be
1)		allocated and a partial allocation was given.>
Digital Equipment Corporation       28-AUG-79    Page 615
PCO Log Report


1)	INDEX	<FEE,FLE,FRE,GSE>,20,%NPOS,<^_
1)		The block required by LINK is not available for allocati
	on.>
1)	INDEX	<FEE,FLE,FRE,GSE>,21,0,<^_
1)		The user attempted to  supersede  an  existing  director
	y.>
1)	INDEX	<FEE,FLE,FRE,GSE>,22,%NPOS,<^_
1)		The user attempted to delete  a  directory  that  was  n
	ot
1)		empty.>
1)	INDEX	<FEE,FLE,FRE,GSE>,23,0,<^_
1)		The required sub-file directory in the specified path  w
	as
1)		not found.>
1)	INDEX	<FEE,FLE,FRE,GSE>,24,0,<^_
1)		A LOOKUP and ENTER monitor call was performed  on  gener
	ic
1)		device DSK and the search list is empty.>
1)	INDEX	<FEE,FLE,FRE,GSE>,25,0,<^_
1)		An attempt was made to create a subfile  directory  nest
	ed
1)		deeper  than  the maximum level allowed.>
1)	INDEX	<FEE,FLE,FRE,GSE>,26,0,<^_
1)		No file structure in the job's search list  has  both  t
	he
1)		no-create bit and the write-lock bit equal to zero and h
	as
1)		the UFD or SFD specified by the default or explicit path
	.>
1)	INDEX	<FEE,FLE,FRE,GSE>,27,%NPOS,<^_
1)		A GETSEG monitor call was issued from a locked low segme
	nt
1)		to a high segment which is not a  dormant, active, or id
	le
1)		segment.>
1)	INDEX	<FEE,FLE,FRE,GSE>,30,0,<^_
1)		A LOOKUP and ENTER monitor call  was  given  to  update
	 a
1)		file, but the file  cannot  be  updated  for  some  reas
	on
1)		(e.g., another user is superseding  it  or  the  file  w
	as
1)		deleted between the time of the LOOKUP and the ENTER).>
****
2)12		1.  The specified file name was illegal.
2)		2.  When updating a file, the specified file name did  n
	ot
 
 
2)		    match the file being updated.
2)		3.  The RENAME monitor call  following  a  LOOKUP  monit
Digital Equipment Corporation       28-AUG-79    Page 616
PCO Log Report


	or
2)		    call failed.>
2)	INDEX	<FLE,GSE>,0,0,<^_
2)		The named file was not found.  Specify an existing file.
	>
2)	INDEX	<FEE,FLE,FRE,GSE>,1,0,<^_
2)		The named directory does  not  exist  on  the  named  fi
	le
2)		structure,  or  the  project-programmer  number  given w
	as
2)		incorrect.>
2)	INDEX	<FEE,FLE,FRE,GSE>,2,0,<^_
2)		You do not have sufficient access privileges  to  use  t
	he
2)		named file.>
2)	INDEX	FEE,-1,0,<^_
2)		The directory on the DECtape has no  room  for  the  fil
	e.
2)		Delete  some  files  from  the  DECtape or specify anoth
	er
2)		device.>
2)	INDEX	<FEE,FLE,FRE,GSE>,3,0,<^_
2)		Another job is currently modifying the  named  file.   T
	ry
2)		accessing the file later.>
2)	INDEX	<FEE,FLE,FRE,GSE>,4,0,<^_
2)		The named file already exists, or  a  different  file  w
	as
2)		specified  on  the  ENTER  monitor call following a LOOK
	UP
2)		monitor call.>
2)	INDEX	<FEE,FLE,FRE,GSE>,5,%SPR,<^_
2)		LINK has specified an illegal sequence  of  monitor  cal
	ls
2)		(e.g.,  a  RENAME  without  a  preceding  LOOKUP  or ENT
	ER
2)		monitor call, or a LOOKUP after an  ENTER).   This  is
	an
2)		internal  error.   This  message is not expected to occu
	r.
2)		If it does, please notify your Software Specialist or se
	nd
2)		a Software Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,6,0,<^_
2)		One of the following conditions occurred:
2)		1.  A transmission, device or data  error  occurred  whi
	le
2)		    attempting  to  read  the  directory or the RIB of t
	he
2)		    named file.
2)		2.  A hardware-detected device or data error was  detect
Digital Equipment Corporation       28-AUG-79    Page 617
PCO Log Report


	ed
2)		    while reading the named directory's RIB or data bloc
	k.
2)		3.  A  software-detected  data  inconsistency  error   w
	as
2)		    detected while reading the named directory's or file
	's
2)		    RIB.>
2)	INDEX	<FEE,FLE,FRE,GSE>,7,%NPOS,<^_
2)		The named file is not a  saved  file.   This  message  c
	an
2)		never  occur  and is included only for completeness of t
	he
2)		LOOKUP, ENTER and RENAME error codes.  This message is n
	ot
2)		expected  to  occur.   If  it  does,  please  notify  yo
	ur
2)		Software Specialist or send a Software Performance  Repo
	rt
2)		(SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,10,%NPOS,<^_
2)		The system cannot supply enough memory to use  as  buffe
	rs
2)		or to read in a program.  This message can never occur a
	nd
2)		is included only for completeness of the LOOKUP, ENTER a
	nd
2)		RENAME  error  codes.   This  message  is  not expected
	to
2)		occur.  If it does, please notify your Software Speciali
	st
2)		or send a Software Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,11,%NPOS,<^_
2)		The named device is currently not available.  This messa
	ge
 
 
2)		can  never  occur and is included only for completeness
	of
2)		the LOOKUP, ENTER and RENAME error codes.  This message
	is
2)		not  expected  to  occur.   If it does, please notify yo
	ur
2)		Software Specialist or send a Software Performance  Repo
	rt
2)		(SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,12,%NPOS,<^_
2)		The named device dies not exist.  This message  can  nev
	er
2)		occur and is included only for completeness of the LOOKU
	P,
Digital Equipment Corporation       28-AUG-79    Page 618
PCO Log Report


2)		ENTER  and  RENAME  error  codes.   This  message  is  n
	ot
2)		expected  to  occur.   If  it  does,  please  notify  yo
	ur
2)		Software Specialist or send a Software Performance  Repo
	rt
2)		(SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,13,%NPOS,<^_
2)		The  machine  does  not  have  a  two-register  relocati
	on
2)		capability.   This message can never occur and is includ
	ed
2)		only for completeness of  the  LOOKUP,  ENTER  and  RENA
	ME
2)		error  codes.   This message is not expected to occur.
	If
2)		it does, please notify your Software Specialist or send
	 a
2)		Software Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,14,0,<^_
2)		You have exceeded the quota of the named directory, or t
	he
2)		entire capacity of the file structure.  Delete some file
	s,
2)		or specify a directory or structure with sufficient spac
	e.>
2)	INDEX	<FEE,FLE,FRE,GSE>,15,0,<^_
2)		The named device is write-locked.  Specify a write-enabl
	ed
2)		device  or  ask  the  operator  to  write-enable the nam
	ed
2)		device.>
2)	INDEX	<FEE,FLE,FRE,GSE>,16,0,<^_
2)		There is not enough internal monitor table space  for  t
	he
2)		named file.  Try the load at a later time.>
2)	INDEX	<FEE,FLE,FRE,GSE>,17,0,<^_
2)		Because of the named directory's quota  or  the  availab
	le
2)		space  on  the  file structure, the total number of bloc
	ks
2)		requested could not be allocated.   A  partial  allocati
	on
2)		was given.>
2)	INDEX	<FEE,FLE,FRE,GSE>,20,%NPOS,<^_
2)		The  block  required  by  LINK  is   not   available   f
	or
2)		allocation.   This message can never occur and is includ
	ed
2)		only for completeness of  the  LOOKUP,  ENTER  and  RENA
	ME
Digital Equipment Corporation       28-AUG-79    Page 619
PCO Log Report


2)		error  codes.   This message is not expected to occur.
	If
2)		it does, please notify your Software Specialist or send
	 a
2)		Software Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,21,0,<^_
2)		You have attempted to supercede the named directory.>
2)	INDEX	<FEE,FLE,FRE,GSE>,22,%NPOS,<^_
2)		You have attempted to  delete  a  directory  that  is  n
	ot
2)		empty.   This message can never occur and is included on
	ly
2)		for completeness of the LOOKUP,  ENTER  and  RENAME  err
	or
2)		codes.   This  message  is  not  expected to occur.  If
	it
2)		does, please notify your Software  Specialist  or  send
	 a
2)		Software Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,23,0,<^_
2)		One of the sub-file directories in the named path was  n
	ot
2)		found.>
2)	INDEX	<FEE,FLE,FRE,GSE>,24,0,<^_
2)		A LOOKUP or ENTER monitor call was  performed  on  gener
	ic
 
 
2)		device DSK:  and the search list is empty.>
2)	INDEX	<FEE,FLE,FRE,GSE>,25,0,<^_
2)		You have attempted to create a sub-file  directory  nest
	ed
2)		deeper than the maximum level allowed.>
2)	INDEX	<FEE,FLE,FRE,GSE>,26,0,<^_
2)		No file structure in your job's search list has  both  t
	he
2)		no-create  bit  and  the write-lock bit equal to zero, a
	nd
2)		has the named directory.>
2)	INDEX	<FEE,FLE,FRE,GSE>,27,%NPOS,<^_
2)		A GETSEG monitor call was issued from a locked low segme
	nt
2)		to  a  high segment which is not a dormant, active or id
	le
2)		segment.  This message can never  occur  and  is  includ
	ed
2)		only  for  completeness  of  the  LOOKUP, ENTER and RENA
	ME
2)		error codes.  This message is not expected to  occur.
	If
2)		it  does, please notify your Software Specialist or send
Digital Equipment Corporation       28-AUG-79    Page 620
PCO Log Report


	 a
2)		Software Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,30,0,<^_
2)		A LOOKUP and ENTER monitor call  was  given  to  update
	 a
2)		file,  but  the  file  cannot  be  updated for some reas
	on
2)		(e.g., another user is superceding  it  or  the  file  w
	as
2)		deleted between the time of the LOOKUP and the ENTER).>
**************
1)11		This message indicates that a  LOOKUP,  ENTER,  or  RENA
	ME
1)		error  occurred which was larger in number than the erro
	rs
1)		LINK knows about.>
1)	IF2,<	PURGE N,M>
****
2)12		An  attempt  has  been  made  to  run  a  program  from
	 a
2)		not-logged-in  job.   This  message can never occur and
	is
2)		included only for completeness of the  LOOKUP,  ENTER  a
	nd
2)		RENAME  error  codes.   This  message  is  not expected
	to
2)		occur.  If it does, please notify your Software Speciali
	st
2)		or send a Software Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,33,%NPOS,<^_
2)		The  ENQ/DEQ  facility  has  been  used  for  simultaneo
	us
2)		updating  of the named file, but some ENQ/DEQ requests a
	re
2)		still outstanding and the file  cannot  be  closed.   Th
	is
2)		message   can   never  occur  and  is  included  only  f
	or
2)		completeness of the LOOKUP, ENTER and RENAME error  code
	s.
2)		This message is not expected to occur.  If it does, plea
	se
2)		notify  your  Software  Specialist  or  send  a   Softwa
	re
2)		Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,34,%NPOS,<^_
2)		The named file has  a  bad  EXE  format  directory.   Th
	is
2)		message   can   never  occur  and  is  included  only  f
	or
2)		completeness of the LOOKUP, ENTER and RENAME error  code
Digital Equipment Corporation       28-AUG-79    Page 621
PCO Log Report


	s.
2)		This message is not expected to occur.  If it does, plea
	se
2)		notify  your  Software  Specialist  or  send  a   Softwa
	re
2)		Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,35,%SPR,<^_
2)		An attempt has been made to run an EXE-format file with
	 a
2)		non-.EXE  extension.   EXE  format  files  (those  with
	an
2)		internal directory) must have the  extension  .EXE.   Th
	is
2)		message  is  not  expected  to  occur.  If it does, plea
	se
2)		notify  your  Software  Specialist  or  send  a   Softwa
	re
2)		Performance Report (SPR) to DIGITAL.>
 
 
2)	INDEX	<FEE,FLE,FRE,GSE>,36,0,<^_
2)		An attempt has been made to run an EXE-format file with
	 a
2)		directory  that  is  too  large for the monitor to handl
	e.
2)		This message can never occur  and  is  included  only  f
	or
2)		completeness  of the LOOKUP, ENTER and RENAME error code
	s.
2)		This message is not expected to occur.  If it does, plea
	se
2)		notify   your  Software  Specialist  or  send  a  Softwa
	re
2)		Performance Report (SPR) to DIGITAL.>
2)	INDEX	<FEE,FLE,FRE,GSE>,37,0,<^_
2)		The monitor's ability to accept another network connecti
	on
2)		has been exceeded.>
2)	INDEX	<FEE,FLE,FRE,GSE>,40,0,<^_
2)		The named task is not available.  Specify an existing ta
	sk
2)		name.>
2)	INDEX	<FEE,FLE,FRE,GSE>,41,0,<^_
2)		You have specified a network node  that  does  not  exis
	t.
2)		Wait  for  the  node  to  come  up  or specify an existi
	ng
2)		network node.>
2)	INDEX	<FEE,FLE,FRE,GSE>,42,%SPR,<^_
2)		This message indicates that  a  LOOKUP,  ENTER  or  RENA
	ME
Digital Equipment Corporation       28-AUG-79    Page 622
PCO Log Report


2)		monitor  call  error occurred with an error code larger
	in
2)		number than the errors LINK knows about.  This message
	is
2)		not  expected  to  occur.   If it does, please notify yo
	ur
2)		Software Specialist or send a Software Performance  Repo
	rt
2)		(SPR) to DIGITAL.>
2)	IF2,<	PURGE N,M>
**************
1)12		the job is too large to fit into the  allowed  memory  a
	nd
1)		the named area is being moved to disk (LC=user low segme
	nt
****
2)13		The load is too large to fit into the allowed  memory  a
	nd
2)		the named area is being moved to disk (LC=user low segme
	nt
**************
1)12		Performance Report (SPR) to DEC.>
1)13	ERRLIT:
1)	END	LNKERR
****
2)13		Performance Report (SPR) to DIGITAL.>
2)14	ERRLIT:
2)	END	LNKERR
**************
 
Digital Equipment Corporation       28-AUG-79    Page 623
PCO Log Report


[FILCOM]
File 1)	LINK:LNKEXO.MAC[30,4507]  	created: 1436 07-Mar-1978
File 2)	LINK:LNKEXO.MAC[10,645063]	created: 1643 10-Jun-1979
 
1)1	SUBTTL D.M.NIXON/DMN/JBC/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL D.M.NIXON/DMN/JBC/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	.JBHSA==0		;STARTING ADDRESS IN HIGH SEGMENT
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	.JBHSA==0		;STARTING ADDRESS IN HIGH SEGMENT
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	SEGMENT
1)2	SUBTTL	REVISION HISTORY
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1174		;DEC EDIT VERSION
2)	SEGMENT
2)	SALL
2)2	SUBTTL	REVISION HISTORY
**************
1)3	SUBTTL	HERE FOR EXECUTE ONLY ENTRY
****
2)2	;START OF VERSION 4A
2)	;1174	Label and clean up all error messages.
2)3	SUBTTL	HERE FOR EXECUTE ONLY ENTRY
**************
1)3		OUTSTR	[ASCIZ/%LNKLNS	Low seg data base not same size/
	]	;[600]
1)		SKIPE T3,-.JBHDA+.JBHSM(T2)	;[600] MONITOR BUG
****
2)3	;**;[1174] Replace @+4L	DZN	7-Jun-79
2)	E$$LNS::.OERR.	[ASCIZ /%LNKLNS	Low segment data base not same s
	ize/]	;[1174]
2)		SKIPE T3,-.JBHDA+.JBHSM(T2)	;[600] MONITOR BUG
**************
 
Digital Equipment Corporation       28-AUG-79    Page 624
PCO Log Report


[FILCOM]
File 1)	LINK:LNKF40.MAC[30,4507]  	created: 1436 07-Mar-1978
File 2)	LINK:LNKF40.MAC[10,645063]	created: 1646 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG	20-Jun-76
1)	;***COPYRIGHT 1973, 1974, 1975, 1976  DIGITAL EQUIPMENT CORP., M
	AYNARD, MASS.***
1)	ENTRY	LNKF40
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/DZN	10-Jun-79
2)	;***COPYRIGHT 1973, 1979  DIGITAL EQUIPMENT CORP., MAYNARD, MASS
	.***
2)	ENTRY	LNKF40
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	SEGMENT
1)	LNKF40:			;ENTRY POINT TO FORCE LOADING
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1174		;DEC EDIT VERSION
2)	SEGMENT
2)	SALL
2)	LNKF40:			;ENTRY POINT TO FORCE LOADING
**************
1)1		SALL
1)	DEFINE	LOADRC	<MOVE	R,SAVERC>
****
2)1	DEFINE	LOADRC	<MOVE	R,SAVERC>
**************
1)3	SUBTTL	INITIALIZE TABLES
****
2)2	;START OF VERSION 4A
2)	;1174	Label and clean up all error messages.
2)3	SUBTTL	INITIALIZE TABLES
**************
1)4		.ERR.	(MS,.EC,V%L,L%F,S%F,I4S,<Illegal F40 sub-block >
	)
1)		.ETC.	(OCT,.EC!.EP,,,,W1)	;
1)	TYPMOD:	.ETC.	(STR,.EC,,,,,< in module >)	;
1)		.ETC.	(SBX,.EP,,,,PRGNAM)	;
1)5	SUBTTL	PROCESS TABLE ENTRIES
****
2)4	;**;[1174] Replace @HEADER+16L	DZN	29-May-79
2)	E$$I4S::.ERR.	(MS,.EC,V%L,L%F,S%F,I4S,<Illegal F40 sub-block >
	) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,W1)	;
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)5	SUBTTL	PROCESS TABLE ENTRIES
**************
1)12		PUSHJ	P,BADFILE	;REPORT ERROR
Digital Equipment Corporation       28-AUG-79    Page 625
PCO Log Report


1)		PUSHJ	P,R50T6##	;CONVERT TO 6BIT
****
2)12	;**;[1174] Replace @COMTOP+4L	DZN	29-May-79
2)		PUSHJ	P,E$$B4R	;[1174] REPORT ERROR
2)		PUSHJ	P,R50T6##	;CONVERT TO 6BIT
**************
1)13		PUSHJ	P,BADFILE	;REPORT ERROR
1)		TRNE	W1,1		;DEFENSIVE CHECK FOR PAIRS
1)		JRST	[PUSHJ	P,BADFILE	;REPORT ERROR
1)			AOJA	W1,.+1]		;MAKE EVEN
****
2)13	;**;[1174] Replace @GSWDPR+1L	DZN	29-May-79
2)		PUSHJ	P,E$$B4R	;[1174] REPORT ERROR
 
 
2)		TRNE	W1,1		;DEFENSIVE CHECK FOR PAIRS
2)	;**;[1174] Replace @GSWDPR+3L	DZN	29-May-79
2)		JRST	[PUSHJ	P,E$$B4R	;[1174] REPORT ERROR
2)			AOJA	W1,.+1]		;MAKE EVEN
**************
1)14		PUSHJ	P,BADFILE	;REPORT ERROR
1)		PUSHJ	P,DY.GET##	;FROM DY AREA
****
2)14	;**;[1174] Replace @FSWD+2L	DZN	29-May-79
2)		PUSHJ	P,E$$B4R	;[1174] REPORT ERROR
2)		PUSHJ	P,DY.GET##	;FROM DY AREA
**************
1)14		PUSHJ	P,BADFILE	;REPORT ERROR
1)		TRNE	W1,1		;DEFENSIVE CHECK FOR PAIRS
1)		JRST	[PUSHJ	P,BADFILE	;REPORT ERROR
1)			AOJA	W1,.+1]		;MAKE EVEN
****
2)14	;**;[1174] Replace @DYSWDP+1L	DZN	29-May-79
2)		PUSHJ	P,E$$B4R	;[1174] REPORT ERROR
2)		TRNE	W1,1		;DEFENSIVE CHECK FOR PAIRS
2)		JRST	[PUSHJ	P,E$$B4R	;[1174] REPORT ERROR
2)			AOJA	W1,.+1]		;MAKE EVEN
**************
1)16	STOP:	.ERR.	(MS,.EC,V%L,L%F,S%F,I4T,<Illegal F40 table entry
	 >)
1)		.ETC.	(OCT,.EC!.EP,,,,W1)	;
1)		.ETC.	(JMP,.EC,,,,TYPMOD)	;
1)	TABDIS:	PPLT			;PROGRAMMER LABELS
1)		PATO			;ARRAYS OFFSET
1)		STOP
1)		STOP
1)		STOP
1)		PST			;SCALARS
****
2)16	;**;[1174] Replace @STOP	DZN	29-May-79
2)	E$$I4T::.ERR.	(MS,.EC,V%L,L%F,S%F,I4T,<Illegal F40 table entry
Digital Equipment Corporation       28-AUG-79    Page 626
PCO Log Report


	 >) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,W1)	;
2)		.ETC.	(JMP,,,,,.ETIMF##)	;[1174]
2)	TABDIS:	PPLT			;PROGRAMMER LABELS
2)		PATO			;ARRAYS OFFSET
2)		E$$I4T			;[1174]
2)		E$$I4T			;[1174]
2)		E$$I4T			;[1174]
2)		PST			;SCALARS
**************
1)16		STOP
1)		PCONS			;CONSTANTS
1)		STOP
1)		PPT			;PERMANENT TEMPORARIES
1)		PTT			;TEMPORARY TEMPORARIES
1)		STOP
1)		PMLT			;MADE LABELS
****
2)16		E$$I4T			;[1174]
2)		PCONS			;CONSTANTS
2)		E$$I4T			;[1174]
2)		PPT			;PERMANENT TEMPORARIES
 
 
2)		PTT			;TEMPORARY TEMPORARIES
2)		E$$I4T			;[1174]
2)		PMLT			;MADE LABELS
**************
1)20		.ERR.	(MS,.EC,V%L,L%F,S%F,I4D,<Illegal F40 DATA code >
	)
1)		.ETC.	(OCT,.EC!.EP,,,,T1)	;
1)		.ETC.	(JMP,.EC,,,,TYPMOD)	;
1)21	INNER:	HRRZ	T1,@LOCA;		GET ADDRESS
****
2)20	;**;[1174] Replace @LOOP+16L	DZN	29-May-79
2)	E$$I4D::.ERR.	(MS,.EC,V%L,L%F,S%F,I4D,<Illegal F40 data code >
	) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,T1)	;
2)		.ETC.	(JMP,,,,,.ETIMF##)	;[1174]
2)21	INNER:	HRRZ	T1,@LOCA;		GET ADDRESS
**************
1)21		JUMPE	T1,FORCNF
1)		SUB	T1,PT1;		SUBTRACT INDUCTION NUMBER
****
2)21	;**;[1174] Replace @INNER+3L	DZN	29-May-79
2)		JUMPE	T1,E$$FCD;	[1174]
2)		SUB	T1,PT1;		SUBTRACT INDUCTION NUMBER
**************
1)23	DATAOV:	.ERR.	(MS,.EC,V%L,L%F,S%F,DSO,<Data statement overflow
	>)
1)		.ETC.	(JMP,.EC,,,,TYPMOD)	;
Digital Equipment Corporation       28-AUG-79    Page 627
PCO Log Report


1)	FORCNF:	.ERR.	(MS,.EC,V%L,L%F,S%F,FCD,<FORTRAN confused about
	data statements>)
1)		.ETC.	(JMP,.EC,,,,TYPMOD)	;
1)	BADFIL:	.ERR.	(MS,.EC,V%M,L%W,S%W,B4R,<Bad F40 produced REL fi
	le for >)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)		POPJ	P,
****
2)23	;**;[1174] Replace @DATAOV	DZN	29-May-79
2)	E$$DSO::.ERR.	(MS,.EC,V%L,L%F,S%F,DSO,<Data statement overflow
	>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##)	;[1174]
2)	E$$FCD::.ERR.	(MS,.EC,V%L,L%F,S%F,FCD,<F40 confused about data
	 statements>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##)	;[1174]
2)	E$$B4R::.ERR.	(MS,.EC,V%L,L%W,S%W,B4R,<Bad F40 produced REL fi
	le>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##)	;[1174]
2)		POPJ	P,
**************
1)25		JRST	DATAOV		;AND GIVE ERROR ELSE PDLOV WILL
	OCCUR
1)		POP	W1,(W1);	SUBTRACT ONE FROM BOTH HALFS
****
2)25	;**;[1174] Replace @DREAD+8L	DZN	29-May-79
2)		JRST	E$$DSO		;[1174] AND GIVE ERROR ELSE PDLO
	V WILL OCCUR
2)		POP	W1,(W1);	SUBTRACT ONE FROM BOTH HALFS
**************
 
Digital Equipment Corporation       28-AUG-79    Page 628
PCO Log Report


[FILCOM]
File 1)	LINK:LNKFIO.MAC[30,4507]  	created: 1115 10-Oct-1978
File 2)	LINK:LNKFIO.MAC[10,645063]	created: 1647 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH/DZN	10-Oct-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	LNKFIO
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKFIO
**************
1)1	DECEVR==1123		;DEC EDIT VERSION
1)	SEGMENT
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	SEGMENT
**************
1)3	SUBTTL	HERE TO SETUP POINTER TO I/O DATA BLOCK
****
2)2	;1174	Label and clean up all error messages.
2)3	SUBTTL	HERE TO SETUP POINTER TO I/O DATA BLOCK
**************
1)3		.ERR.	(MS,0,V%L,L%F,S%F,INS,<I/O data block not set up
	>)
1)	;HERE TO DO DEVCHR FOR DEVICE
****
2)3	;**;[1174] Replace @DVCHN.+3L	DZN	29-May-79
2)	E$$INS::.ERR.	(MS,0,V%L,L%F,S%F,INS,<I/O data block not set up
	>) ;[1174]
2)	;HERE TO DO DEVCHR FOR DEVICE
**************
1)3		JUMPE	T2,NSDERR	;NO SUCH DEVICE
1)		MOVEI	T2,DV.M0	;MODE BIT
****
2)3	;**;[1174] Replace @DVCHK.+4L	DZN	29-May-79
2)		JUMPE	T2,E01NED	;[1174] NO SUCH DEVICE
2)		MOVEI	T2,DV.M0	;MODE BIT
**************
1)3		PUSH	P,IO.CHN	;SAVE CHAN
1)		.ERR.	(I,0,V%L,L%F,S%F,IDM,<Illegal data mode for devi
	ce >)
****
2)3	;**;[1174] Replace @DVCHK.+11L	DZN	29-May-79
2)	E$$IDM::PUSH	P,IO.CHN	;[1174] SAVE CHAN
Digital Equipment Corporation       28-AUG-79    Page 629
PCO Log Report


2)		.ERR.	(I,0,V%L,L%F,S%F,IDM,<Illegal data mode for devi
	ce >)
**************
1)4		  JRST	OPNERR		;FAILED
1)	;HERE TO ALLOCATE SPACE FOR BUFFERS
****
2)4		  JRST	E01OFD		;[1174] FAILED
2)	;HERE TO ALLOCATE SPACE FOR BUFFERS
**************
1)4		HRLI	T2,.IBR		;NO, USE LINK-10 DEFAULT
1)	DVNDC:>;END IFE TOPS20
****
2)4		HRLI	T2,.IBR		;[1174] NO, USE TOPS-10 LINK DEF
	AULT
2)	DVNDC:>;END IFE TOPS20
**************
 
 
1)6		TLC	T2,-1-<(DV.TTA)>	;[604] NUL: ISN'T A TTY
1)		TLCE	T2,-1-<(DV.TTA)>	;[604]
1)		TXNN	T2,DV.TTY	;[604] IS IT A TTY
1)		  CAIA			;[604] NO, PROCEED
1)		JRST	DVTTY		;YES
1)		MOVE	T2,I.DVZ(T1)	;GET BACK DEVSIZ INFO
****
2)6		TXC	T2,DV.TTA!DV.TTY;[1174] MUST BE CONTROLLING TTY:
	 (NUL: ISN'T)
2)		TXCN	T2,DV.TTA!DV.TTY;[1174]   ..
2)		  JRST	DVTTY		;[1174] YES
2)		MOVE	T2,I.DVZ(T1)	;GET BACK DEVSIZ INFO
**************
1)16		  JRST	OPNERR		;SHOULD NEVER HAPPEN FOR DSK
1)		HRRI	T2,I.RIB(T1)	;POINT TO LOOKUP/ENTER BLOCK
****
2)16	;**;[1174] Replace @DVUPD.+7L	DZN	29-May-79
2)		  JRST	E01OFD		;[1174] SHOULD NEVER HAPPEN FOR
	DSK
2)		HRRI	T2,I.RIB(T1)	;POINT TO LOOKUP/ENTER BLOCK
**************
1)20		PUSHJ	P,NO.COR##	;[604] NO, ERROR
1)		HRL	T2,T1		;[604] YES, FORM BLT PTR TO IO.E
	MG AREA
****
2)20		PUSHJ	P,E$$MEF##	;[1174] NO, ERROR
2)		HRL	T2,T1		;[604] YES, FORM BLT PTR TO IO.E
	MG AREA
**************
1)23	;ERROR MESSAGES
1)	OPNERR:	PUSH	P,IO.CHN	;PUT ON STACK
1)		.ERR.	(I,0,V%L,L%F,S%F,IFD)
1)	NSDERR:	MOVE	T1,IO.CHN	;GET CHAN #
Digital Equipment Corporation       28-AUG-79    Page 630
PCO Log Report


1)		PUSH	P,T1		;STACK CHAN #
1)		CAIN	T1,DC		;SEE IF INPUT CHAN
1)		JRST	NSDDC		;YES, THIS IS RECOVERABLE
1)		.ERR.	(I,0,V%L,L%F,S%F,NED)
1)	NSDDC:	.ERR.	(I,0,V%L,L%F,S%E,NED)
1)		POPJ	P,		;RECOVER IF WE CAN
1)	ENTERR:	MOVE	T1,IO.CHN
****
2)23	SUBTTL	ERROR MESSAGES
2)	E01OFD::PUSH	P,IO.CHN	;[1174] PUT CHANNEL ON STACK
2)		.ERR.	(I,0,V%L,L%F,S%F,OFD) ;[1174]
2)	;**;[1174] Replace @NSDERR	DZN	29-May-79
2)	E01NED::PUSH	P,T1		;[1174] PUT CHANNEL ON STACK FOR
	 LNKLOG
2)		.ERR.	(I,0,V%L,L%F,S%E,NED)
2)		POPJ	P,		;[1174] RETURNS IF CHAN WAS DC;
	TRY NOW
2)	ENTERR:	MOVE	T1,IO.CHN
**************
1)23		PUSH	P,T1
1)		MOVE	T2,IO.CHR	;GET DEVCHR WORD
1)		TXNE	T2,DV.DTA	;DTA MIGHT BE SPECIAL
1)		JRST	[MOVE	T1,IO.PTR(T1)	;GET DATA BLOCK POINTER
1)			HRRZ	T2,I.EXT(T1)	;IF ERROR WAS 2
1)			CAIN	T2,2		;AS IT MEANS DIRECTORY F
	ULL
1)			HLLOS	I.EXT(T1)	;SIGNAL BY -1
1)			JRST	.+1]
1)		.ERR.	(LRE,,V%L,0,0,FEE)
1)		POPJ	P,
 
 
1)	LKPERR::PUSH	P,IO.CHN	;REMEMBER WHAT # FAILED
1)		.ERR.	(LRE,,V%L,0,0,FLE)
1)		POPJ	P,
1)	ODVERR::.ERR.	(MS,0,V%M,L%F,S%F,ODV,<Overlay file must be crea
	ted on a file structure>)
1)	FIOLIT:
1)	END
****
2)23		MOVE	T2,IO.CHR	;GET DEVCHR WORD
2)		TXNE	T2,DV.DTA	;DTA MIGHT BE SPECIAL
2)		JRST	[MOVE	T2,IO.PTR(T1)	;[1174] GET DATA BLOCK P
	OINTER
2)			HRRZ	T3,I.EXT(T2)	;[1174] IF ERROR WAS ERP
	RT%
2)			CAXN	T3,ERPRT%	;[1174] AS IT MEANS DIRE
	CTORY FULL
2)			HLLOS	I.EXT(T2)	;[1174] SIGNAL BY -1
2)			JRST	.+1]
2)	E01FEE::PUSH	P,T1		;[1174] SAVE CHANNEL FOR LNKLOG
Digital Equipment Corporation       28-AUG-79    Page 631
PCO Log Report


2)		.ERR.	(LRE,,V%L,S%D,L%D,FEE) ;[1174]
2)		POPJ	P,
2)	E01FLE::PUSH	P,IO.CHN	;[1174] REMEMBER WHAT # FAILED
2)		.ERR.	(LRE,,V%L,S%D,L%D,FLE) ;[1174]
2)		POPJ	P,
2)	FIOLIT:
2)	END
**************
 
Digital Equipment Corporation       28-AUG-79    Page 632
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHSH.MAC[30,4507]  	created: 1437 07-Mar-1978
File 2)	LINK:LNKHSH.MAC[10,645063]	created: 1648 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	TRYSYM
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	TRYSYM
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	SALL
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1174		;DEC EDIT VERSION
2)	SALL
**************
1)3	SUBTTL	SYMBOL TABLE HASH SEARCH
****
2)2	;START OF VERSION 4A
2)	;1174	Label and clean up all error messages.
2)3	SUBTTL	SYMBOL TABLE HASH SEARCH
**************
1)4		JUMPE	W2,ILLSYM	;0 IS ILLEGAL SYMBOL
1)	TRYS1H:	PUSHJ	P,HASH		;INITIALIZE FOR SEARCH
****
2)4	;**;[1174] Replace @TRYSYM+2L	DZN	3-Jun-79
2)		JUMPE	W2,E$$ISN	;[1174] 0 IS ILLEGAL SYMBOL
2)	TRYS1H:	PUSHJ	P,HASH		;INITIALIZE FOR SEARCH
**************
1)5		.ERR.	(MS,,V%L,L%F,S%F,ESN,<Extended symbol not expect
	ed>)>
1)	IFN .EXSYM,<
****
2)5	;**;[1174] Replace @COMPAR+16L	DZN	3-Jun-79
2)	E$$ESN::.ERR.	(MS,,V%L,L%F,S%F,ESN,<Extended symbol not expect
	ed>) ;[1174]
2)	>
2)	IFN .EXSYM,<
**************
1)6		.ERR.	(MS,,V%L,L%F,S%F,ESN)>
1)	IFN .EXSYM,<
Digital Equipment Corporation       28-AUG-79    Page 633
PCO Log Report


****
2)6	;**;[1174] Replace @HASH+4L	DZN	3-Jun-79
2)	E02ESN::.ERR.	(MS,,V%L,L%F,S%F,ESN) ;[1174]
2)	>
2)	IFN .EXSYM,<
**************
1)7		.ERR.	(MS,.EC,V%L,L%I,S%I,RGS,<Rehashing Global symbol
	 table from >)
1)		.ETC.	(DEC,.EC!.EP,,,,T1)
****
2)7	;**;[1174] Replace @REHASH+21L	DZN	3-Jun-79
2)	E$$RGS::.ERR.	(MS,.EC,V%L,L%I,S%I,RGS,<Rehashing global symbol
	 table from >) ;[1174]
2)		.ETC.	(DEC,.EC!.EP,,,,T1)
**************
 
 
1)8		.ERR.	(MS,,V%L,L%F,S%F,ESN)>
1)		HRRZ	W3,T1		;POINT TO SYMBOL
****
2)8	;**;[1174] Replace @REHSH1+13L	DZN	3-Jun-79
2)	E03ESN::.ERR.	(MS,,V%L,L%F,S%F,ESN) ;[1174]
2)	>
2)		HRRZ	W3,T1		;POINT TO SYMBOL
**************
1)9	ILLSYM:	.ERR.	(MS,.EC,V%L,L%F,S%F,ISN,<Illegal symbol name >)
1)		.ETC.	(SBX,.EP,,,,W2)
1)	END
****
2)9	;**;[1174] Replace @ILLSYM	DZN	3-Jun-79
2)	E$$ISN::.ERR.	(MS,.EC,V%L,L%F,S%F,ISN,<Illegal symbol name >)
	;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)	END
**************
 
Digital Equipment Corporation       28-AUG-79    Page 634
PCO Log Report


[FILCOM]
File 1)	LINK:LNKINI.MAC[30,4507]  	created: 1301 07-Jun-1979
File 2)	LINK:LNKINI.MAC[10,645063]	created: 1743 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	5-Jun-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/RKH/SRM/JBC/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978, 1979
1)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
****
2)1	;COPYRIGHT (C) 1973, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
**************
1)1	ENTRY	LINK10
1)	SEARCH	LNKPAR,LNKLOW,MACTEN,UUOSYM,SCNMAC
****
2)1	ENTRY	LINK
2)	SEARCH	LNKPAR,LNKLOW,MACTEN,UUOSYM,SCNMAC
**************
1)1	DECEVR==1172		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	INITIALIZE
1)	;HERE AFTER START,  RUN, EXECUTE, LOAD OR RUN UUO
1)	LINK10:	PORTAL	.+2		;EXECUTE ONLY
1)		PORTAL	.+2		;CCL
****
2)2	;1174	Label and clean up all error messages.
2)3	SUBTTL	INITIALIZE
2)	;HERE AFTER START,  RUN, EXECUTE, LOAD OR RUN UUO
2)	LINK:	PORTAL	.+2		;EXECUTE ONLY
2)		PORTAL	.+2		;CCL
**************
1)3		  JRST	NOCORE		;YOU LOSE
1)		MOVEM	P1,OFFSET	;SAFE TO STORE OFFSET NOW
****
2)3	;**;[1174] Replace @F1+4L	DZN	5-Jun-79
2)		  JRST	E$$IMI		;[1174] YOU LOSE
2)		MOVEM	P1,OFFSET	;SAFE TO STORE OFFSET NOW
**************
1)7		  JRST	NOCORE		;SHOULD NEVER HAPPEN
1)	>
****
2)7	;**;[1174] Replace @PJLOOP+16L	DZN	5-Jun-79
2)		  JRST	E$$IMI		;[1174] SHOULD NEVER HAPPEN
Digital Equipment Corporation       28-AUG-79    Page 635
PCO Log Report


2)	>
**************
1)7		MOVX	T1,.INFIN	;[1172] NO LOWEST LOCATION YET S
	EEN
1)		MOVEM	T1,LOWLOC	;[732]
****
2)7		MOVX	T1,.INFIN	;[1172] INITIALIZE LOWEST LOCATI
	ON
2)		MOVEM	T1,LOWLOC	;[732]
**************
1)10		  JRST	NOCORE		;YOU LOSE
 
 
1)	>;END IFE TOPS20
****
2)10	;**;[1174] Replace @**somewhere**	DZN	5-Jun-79
2)		  JRST	E$$IMI		;[1174] YOU LOSE
2)	>;END IFE TOPS20
**************
1)12		MOVEI	T1,S%F		;AND FATALITY
1)		SKIPE	BATCH		;HOWEVER IN BATCH MODE
****
2)12		MOVEI	T1,S%C		;[1174] SET UP DEFAULT SEVERITY
2)		SKIPE	BATCH		;HOWEVER IN BATCH MODE
**************
1)12		MOVSI	T1,'LOG'	;SEE IF WE ALREADY HAVE A LOG DE
	VICE
****
2)12	;**;[1174] Revamp @LOGINI+11L	DZN	5-Jun-79
2)		MOVE	T1,[LOGIT,,TTYIT] ;[1174] IN CASE /LOG LATER
2)		MOVEM	T1,LOWSUB	;[1174] SO WE CAN FIND ROUTINES
2)		MOVEI	T1,V%M		;[1174] GET DEFAULT VALUE
2)		MOVEM	T1,VERLVL	;[1174] SAVE IT
2)		MOVSI	T1,'LOG'	;SEE IF WE ALREADY HAVE A LOG DE
	VICE
**************
1)12			PUSHJ	P,.ERLOG	;OUTPUT HEADER LINE
1)			MOVEI	T1,[ASCIZ \[LNK\]
1)			PUSHJ	P,.TSTRG##	;INITIALIZATION CODE
1)			MOVEI	T1,.ERLIM
1)			PUSHJ	P,.TSTRG##	;AND SPECIFIC CODE
1)			MOVEI	T1,.ERLIM+1	;TEXT STRING
1)			PUSHJ	P,.TSTRG##
1)			PUSHJ	P,CLSSQB	;END INFO STRING
1)			JRST	NOLOG]
1)	;**;[1150] Delete @LOGINI+26L	DZN	14-Mar-79
****
2)12			JRST	LOGMSG]	;[1174] GO PRINT START OF LOG MS
	G
2)	;**;[1150] Delete @LOGINI+26L	DZN	14-Mar-79
**************
Digital Equipment Corporation       28-AUG-79    Page 636
PCO Log Report


1)13		PUSHJ	P,.ERLOG	;HEADER
1)		MOVE	T1,TIMEON	;GET TIME WE STARTED
1)		PUSHJ	P,.TTIME##	;INITIAL TIME STAMP
1)		MOVEI	T1,ER000A	;GET SEVERITY CODE ETC
1)		PUSHJ	P,.TSTRG##	;ON LOG DEV IF NOT TTY
1)		MOVEI	T1,.ERLIM	;GET CODE
1)		PUSHJ	P,.TSTRG##
1)	LOGIT1:	MOVEI	T1,.ERLIM+1	;MESSAGE
1)		PUSHJ	P,.TSTRG##
1)		MOVEI	T1,CRLF		;END LINE
1)		PUSHJ	P,.TSTRG##
1)	;	JRST	NOLOG		;NOW DO OTHER THINGS
1)14	;HERE TO INITIALIZE OTHER ODD ITEMS
1)	NOLOG:	MOVE	T1,[LOGIT,,TTYIT]	;INCASE /LOG LATER
1)		MOVEM	T1,LOWSUB	;SO WE CAN FIND ROUTINES
1)		MOVEI	T1,V%M		;GET DEFAULT VALUE
1)		MOVEM	T1,VERLVL	;SAVE IT
1)		MOVEI	T1,OPENBL	;PUT ADDRESS OF INPUT I/O BLOCK
****
2)13	LOGMSG:
2)	E$$LFB::.ERR.	(MS,.EC,V%L,L%I,S%I,LFB,<LINK log file begun on
	>) ;[1174]
 
 
2)		.ETC.	(DAT)		;[1174]
2)	;	JRST	NOLOG		;NOW DO OTHER THINGS
2)14	;HERE TO INITIALIZE OTHER ODD ITEMS
2)	NOLOG:
2)	E$$LIN::.ERR.	(MS,,V%L,L%I,S%I,LIN,<LINK initialization>) ;[11
	74] NO POINT TIL NOW
2)		MOVEI	T1,OPENBL	;PUT ADDRESS OF INPUT I/O BLOCK
**************
1)18	ER000A:	ASCIZ	/  1  1 /
1)	.ERLIM:	ASCIZ	/LIM /
1)		.ASCIZ	<LINK initialization>
1)	CRLF:	ASCIZ	/
1)	/
1)	NOCORE:	OUTSTR	[ASCIZ	\?LNKICI	Insufficient core to ini
	tialize LINK\]
1)		EXIT
1)	OPNERR:	PUSH	P,[RC]		;PUT CHAN. INDEX ON STACK
1)		.ERR.	(I,0,V%L,L%I,S%I,IFD)
1)		JRST	NOLOG		;DO WITHOUT LOG FILE NOW
1)	ENTERR:	PUSH	P,[%ENT+RC]	;CHAN INDEX
1)		.ERR.	(LRE,0,0,0,0,FEE)
1)		JRST	NOLOG
1)	.ERLOG:	MOVEI	T1,[ASCIZ \	[LINK LOG file	\]
1)		PUSHJ	P,.TSTRG##	;HEADER
1)		PUSHJ	P,.TDATN##	;WITH DATE
1)	CLSSQB:	MOVEI	T1,[ASCIZ	\]
1)	\]
Digital Equipment Corporation       28-AUG-79    Page 637
PCO Log Report


1)		PJRST	.TSTRG##	;END LINE
1)	CPOPJ:	POPJ	P,		;SOMEWHERE TO PUT IT
****
2)18	;**;[1174] Replace @.ERLIM	DZN	30-May-79
2)	E$$IMI::.OERR.	[ASCIZ \?LNKIMI	Insufficient memory to initializ
	e LINK
2)	\]
2)		EXIT
2)	;**;[1174] Delete @OPNERR	DZN	30-May-79
2)	CPOPJ:	POPJ	P,		;SOMEWHERE TO PUT IT
**************
1)28		OUTSTR	UUOMES		;ILL UUO
1)		SOS	T2,UUOTRAP	;PC+1
****
2)28	;**;[1174] Replace @UUOHANDLER+10L	DZN	7-Jun-79
2)	E$$IUU::.OERR.	[ASCIZ /?LNKIUU	Illegal user UUO at PC /] ;[1174
	]
2)		SOS	T2,UUOTRAP	;PC+1
**************
1)28	UUOMES:	.ASCIZ	<?LNKIUU Illegal user UUO at PC >
1)29	SUBTTL	ENTER DDT
****
2)29	SUBTTL	ENTER DDT
**************
1)31		OUTSTR	.EROEL		;WILL USE .ERR. IN FUTURE
1)	IFE FTSINGLE,<
****
2)31	;**;[1174] Replace @LOGDMP+6L	DZN	7-Jun-79
2)	E01OEL::.OERR.	.EROEL		;[1174] LNKOEL
2)	IFE FTSINGLE,<
**************
1)31	.EROEL:	.ASCIZ	<%LNKOEL Output error on log file, file closed,
	job continuing.
1)	>
 
 
****
2)31	.EROEL:	.ASCIZ	<%LNKOEL	Output error on log file, file c
	losed, load continuing
2)	>
**************
1)32		MOVEI	T1,LINK10	;GET ORIGINAL START ADDRESS
1)		HRRM	T1,.JBSA	;RESET IT
****
2)32		MOVEI	T1,LINK		;GET ORIGINAL START ADDRESS
2)		HRRM	T1,.JBSA	;RESET IT
**************
1)32	END	LINK10
****
2)32	END	LINK
**************
Digital Equipment Corporation       28-AUG-79    Page 638
PCO Log Report


 
Digital Equipment Corporation       28-AUG-79    Page 639
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1737 15-May-1979
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1938 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	15-May-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	10-Jun-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1165		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1174	Label and clean up all error messages.
2)5	SUBTTL	LOAD CONTROL
**************
1)5		.ERR.	(MS,0,V%L,L%I,S%I,LDS,<LOAD segment>)
1)	LODNXT:	HLR	FL,FL		;CLEAR TEMP FLAGS AND SET FROM G
	LOBAL ONES
****
2)5	E$$LDS::.ERR.	(MS,0,V%L,L%I,S%I,LDS,<LOAD segment>) ;[1174]
2)	LODNXT:	HLR	FL,FL		;CLEAR TEMP FLAGS AND SET FROM G
	LOBAL ONES
**************
1)6	T.ERR::	.ERR.	(MS,.EC,V%L,L%F,S%F,IRB,<Illegal REL Block Type
	>)
1)		.ETC.	(OCT,.EP!.EC,,,,T1)
1)		.ETC.	(STR,.EC,,,,,< for >)
1)		.ETC.	(SBX,.EC!.EP,,,,PRGNAM)
1)		.ETC.	(STR,.EC,,,,,< in >)
1)		.ETC.	(FSP,0,,,,DC)
1)7	SUBTTL	CLEAR INCLUDE/EXCLUDE STORAGE
****
2)6	E$$IRB::.ERR.	(MS,.EC,V%L,L%F,S%F,IRB,<Illegal REL block type
	>) ;[1174]
2)		.ETC.	(OCT,.EP!.EC,,,,T1)
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)7	SUBTTL	CLEAR INCLUDE/EXCLUDE STORAGE
**************
1)12		  PUSHJ	P,NO.COR##	;NOT POSSIBLE
1)		POP	P,P2		;RESTORE
****
2)12		  PUSHJ	P,E$$MEF##	;[1174] NOT POSSIBLE
2)		POP	P,P2		;RESTORE
Digital Equipment Corporation       28-AUG-79    Page 640
PCO Log Report


**************
1)19		.ERR.	(MS,0,V%L,L%I,S%I,FCF,<Final core fixups>)
1)	CORFXL:				;HERE FOR LOW SEGMENT
****
2)19	E$$FCF::.ERR.	(MS,0,V%L,L%I,S%I,FCF,<Final code fixups>) ;[117
	4]
2)	CORFXL:				;HERE FOR LOW SEGMENT
**************
1)21		  PUSHJ	P,ANCERR	;WE ONLY GET HERE WHEN PAGE IS I
	N CORE
1)		HRRZ	T1,(T2)		;GET RIGHT HALF VALUE
****
2)21	;**;[1174] Replace @PFF.AR+2L	DZN	30-May-79
2)		  PUSHJ	P,E$$ANM	;[1174] WE ONLY GET HERE WHEN PA
	GE IS IN CORE
2)		HRRZ	T1,(T2)		;GET RIGHT HALF VALUE
**************
1)21		  PUSHJ	P,ANCERR	;WE ONLY GET HERE WHEN PAGE IS I
	N CORE
 
 
1)		HLRZ	T1,(T2)		;GET LEFT HALF VALUE
****
2)21	;**;[1174] Replace @PFF.AL+2L	DZN	30-May-79
2)		  PUSHJ	P,E$$ANM	;[1174] WE ONLY GET HERE WHEN PA
	GE IS IN CORE
2)		HLRZ	T1,(T2)		;GET LEFT HALF VALUE
**************
1)21		  PUSHJ	P,ANCERR	;WE ONLY GET HERE WHEN PAGE IS I
	N CORE
1)		ADDM	T1,W3		;PLUS DEFINED SYMBOL
****
2)21	;**;[1174] Replace @PFF.AF+2L	DZN	30-May-79
2)		  PUSHJ	P,E$$ANM	;[1174] WE ONLY GET HERE WHEN PA
	GE IS IN CORE
2)		ADDM	T1,W3		;PLUS DEFINED SYMBOL
**************
1)22	ANCERR:	.ERR.	(MS,,V%L,L%F,S%F,ANC,<Address not in core>)
1)23	;REPLACEMENTS
****
2)22	;**;[1174] Replace @ANCERR	DZN	30-May-79
2)	E$$ANM::.ERR.	(MS,,V%L,L%F,S%F,ANM,<Address not in memory>)
2)23	;REPLACEMENTS
**************
1)23		  PUSHJ	P,ANCERR	;WE ONLY GET HERE WHEN PAGE IS I
	N CORE
1)		HRRM	W3,(T2)		;JUST REPLACE WHATS THERE
****
2)23	;**;[1174] Replace @PFF.RR+2L	DZN	30-May-79
2)		  PUSHJ	P,E$$ANM	;[1174] WE ONLY GET HERE WHEN PA
	GE IS IN CORE
Digital Equipment Corporation       28-AUG-79    Page 641
PCO Log Report


2)		HRRM	W3,(T2)		;JUST REPLACE WHATS THERE
**************
1)23		  PUSHJ	P,ANCERR	;WE ONLY GET HERE WHEN PAGE IS I
	N CORE
1)		HRLM	W3,(T2)
****
2)23	;**;[1174] Replace @PFF.RL+2L	DZN	30-May-79
2)		  PUSHJ	P,E$$ANM	;[1174] WE ONLY GET HERE WHEN PA
	GE IS IN CORE
2)		HRLM	W3,(T2)
**************
1)23		  PUSHJ	P,ANCERR	;WE ONLY GET HERE WHEN PAGE IS I
	N CORE
1)		MOVEM	W3,(T2)		;REPLACE VALUE
****
2)23	;**;[1174] Replace @PFF.RF+2L	DZN	30-May-79
2)		  PUSHJ	P,E$$ANM	;[1174] WE ONLY GET HERE WHEN PA
	GE IS IN CORE
2)		MOVEM	W3,(T2)		;REPLACE VALUE
**************
1)24		  PUSHJ	P,NO.COR##	;CANNOT EXPAND ANY MORE
1)		POP	P,T2
****
2)24		  PUSHJ	P,E$$MEF##	;[1174] CANNOT EXPAND ANY MORE
2)		POP	P,T2
**************
1)26		JRST	INSRTF		;NO, ERROR, SHOULD NEVER HAPPEN
1)	INSRT0:	AOS	GSYM		;COUNT SYMBOL
****
2)26	;**;[1174] Replace @INSRT+1L	DZN	30-May-79
2)		JRST	E$$SIF		;[1174] NO, ERROR, SHOULD NEVER
	HAPPEN
2)	INSRT0:	AOS	GSYM		;COUNT SYMBOL
**************
1)26	INSRTF:	.ERR.	(MS,0,V%L,L%F,S%F,SIF,<Symbol insert failure, no
	n-zero hole found>)
1)27	SUBTTL	SATISFY GLOBAL REQUESTS
 
 
****
2)26	;**;[1174] Replace @INSRTF	DZN	30-May-79
2)	E$$SIF::.ERR.	(MS,0,V%L,L%F,S%F,SIF,<Symbol insert failure, no
	n-zero hole found>) ;[1174]
2)27	SUBTTL	SATISFY GLOBAL REQUESTS
**************
1)27		PUSHJ	P,DUZERR	;BUT NOT TOO FAR
1)		TRNE	FL,R.FHS	;ARE RC TABLES SCREWED UP?
****
2)27	;**;[1174] Replace @SY.RF+1L	DZN	30-May-79
2)		PUSHJ	P,E$$DUZ	;[1174] BUT NOT TOO FAR
2)		TRNE	FL,R.FHS	;ARE RC TABLES SCREWED UP?
Digital Equipment Corporation       28-AUG-79    Page 642
PCO Log Report


**************
1)27	DUZERR:	.ERR.	(MS,,V%L,L%F,S%F,DUZ,<Decreasing undefined symbo
	l count below zero>)
1)	SY.FHS:	SKIPA	T1,[1]		;LOW SEG HAS BEEN FAKED
****
2)27	;**;[1174] Replace @DUZERR	DZN	30-May-79
2)	E$$DUZ::.ERR.	(MS,,V%L,L%F,S%F,DUZ,<Decreasing undefined symbo
	l count below zero>) ;[1174]
2)	SY.FHS:	SKIPA	T1,[1]		;LOW SEG HAS BEEN FAKED
**************
1)28	ISPERR:	.ERR.	(MS,,V%L,L%F,S%F,ISP,<Incorrect symbol pointer>)
1)29	SY.RF5:	POP	P,P1
****
2)28	;**;[1174] Replace @ISPERR	DZN	30-May-79
2)	E$$ISP::.ERR.	(MS,,V%L,L%F,S%F,ISP,<Incorrect symbol pointer>)
	 ;[1174]
2)29	SY.RF5:	POP	P,P1
**************
1)33		PUSHJ	P,ISPERR	;NO???
1)		HRL	W3,2(T1)	;RESET REAL POINTER
****
2)33	;**;[1174] Replace @SYSTF1+7L	DZN	30-May-79
2)		PUSHJ	P,E$$ISP	;[1174] NO???
2)		HRL	W3,2(T1)	;RESET REAL POINTER
**************
1)33		PUSHJ	P,ISPERR	;NO, NO PVS TRIPLET???
1)	SYSTF3:	ADDI	T1,.L		;LOOK AT NEXT TRIPLET
1)		SKIPG	T3,0(T1)	;PICK UP FLAGS
1)		PUSHJ	P,ISPERR	;MUSN'T BE PRIMARY
1)		TXNN	T3,S.PVS	;FOUND THE PVS TRIPLET?
****
2)33	;**;[1174] Replace @SYSTF2+1L	DZN	30-May-79
2)		PUSHJ	P,E$$ISP	;[1174] NO, NO PVS TRIPLET???
2)	SYSTF3:	ADDI	T1,.L		;LOOK AT NEXT TRIPLET
2)		SKIPG	T3,0(T1)	;PICK UP FLAGS
2)	;**;[1174] Replace @SYSTF3+2L	DZN	30-May-79
2)		PUSHJ	P,E$$ISP	;[1174] MUSN'T BE PRIMARY
2)		TXNN	T3,S.PVS	;FOUND THE PVS TRIPLET?
**************
1)34		PUSHJ	P,DUZERR	;BUT NOT TOO FAR
1)		MOVE	W3,2(T1)	;GET NOW-DEFINED VALUE
****
2)34	;**;[1174] Replace SYSTF3+1P21L DZN	30-May-79
2)		PUSHJ	P,E$$DUZ	;[1174] BUT NOT TOO FAR
2)		MOVE	W3,2(T1)	;GET NOW-DEFINED VALUE
**************
1)40		  PUSHJ	P,ANCERR	;WE ONLY GET HERE WHEN PAGE IS I
	N CORE
1)		MOVEM	W3,(T2)		;REPLACE VALUE
 
 
Digital Equipment Corporation       28-AUG-79    Page 643
PCO Log Report


****
2)40	;**;[1174] Replace @RP.CHF+2L	DZN	30-May-79
2)		  PUSHJ	P,E$$ANM	;[1174] WE ONLY GET HERE WHEN PA
	GE IS IN CORE
2)		MOVEM	W3,(T2)		;REPLACE VALUE
**************
1)41		.ERR.	(MS,.EC,V%L,L%F,S%F,IVC,<Index validation check
	failed at >)
1)		.ETC.	(OCT,.EP,,,,T1)
****
2)41	;**;[1174] Replace @INVIDX+2L	DZN	30-May-79
2)	E$$IVC::.ERR.	(MS,.EC,V%L,L%F,S%F,IVC,<Index validation check
	failed at >) ;[1174]
2)		.ETC.	(OCT,.EP,,,,T1)
**************
1)43		.ERR.	(MS,.EC,V%L,L%W,S%W,MDS,<Multiply-Defined Global
	 symbol >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)	;SYMBOL IN W2
1)		.ETC.	(STR,.EC,,,,,<, in module >)
1)		.ETC.	(SBX,.EC!.EP,,,,PRGNAM)
1)		.ETC.	(STR,.EC,,,,,<
1)		defined value = >)
1)		.ETC.	(OCT,.EC!.EP,,,,T1)	;CURRENT VALUE
1)		.ETC.	(STR,.EC,,,,,<, this value = >)
1)		.ETC.	(OCT,.EP,,,,W3)		;IN W3
1)		SETZM	LSTSYM		;SO WE DON'T DO FIXUPS?
****
2)43	;**;[1174] Replace @SY.MDF+5L	DZN	30-May-79
2)	E$$MDS::.ERR.	(MS,.EC,V%L,L%W,S%W,MDS,<Multiply-defined global
	 symbol >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)	;SYMBOL IN W2
2)		.ETC.	(JMP,.EC,,,,.ETIMF##) ;[1174] PRINT OFFENDING MO
	DULE
2)		.ETC.	(NLN,.EC)	;[1174]
2)		.ETC.	(STR,.EC,,,,,<Defined value = >) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,T1)	;CURRENT VALUE
2)		.ETC.	(STR,.EC,,,,,<, this value = >)
2)		.ETC.	(OCT,.EP,,,,W3)	;[1174]
2)		SETZM	LSTSYM		;SO WE DON'T DO FIXUPS?
**************
1)44		PUSHJ	P,DUZERR	;BUT NOT TOO FAR
1)		MOVX	T3,PS.REQ	;IF NOW FULLY DEFINED
****
2)44	;[1174] Replace @SY.AS0+9L	DZN	30-May-79
2)		PUSHJ	P,E$$DUZ	;[1174] BUT NOT TOO FAR
2)		MOVX	T3,PS.REQ	;IF NOW FULLY DEFINED
**************
1)45		PUSHJ	P,ISPERR
1)		TXNN	T2,S.LST	;GOT THERE YET
****
2)45	;**;[1174] Replace @SY.ZS1+5L	DZN	30-May-79
Digital Equipment Corporation       28-AUG-79    Page 644
PCO Log Report


2)		PUSHJ	P,E$$ISP	;[1174]
2)		TXNN	T2,S.LST	;GOT THERE YET
**************
1)49		PUSHJ	P,ISPERR	;SHOULD NEVER HAPPEN
1)		ADDI	T2,.L		;ADVANCE PAST
****
2)49	;**;[1174] Replace @SYCHK2+1L	DZN	30-May-79
2)		PUSHJ	P,E$$ISP	;[1174] SHOULD NEVER HAPPEN
2)		ADDI	T2,.L		;ADVANCE PAST
**************
1)56		JRST	F40OVE		;YES
 
 
1)	>				;
****
2)56	;**;[1174] Replace @F40NAM+3L	DZN	30-May-79
2)		JRST	E$$FOV		;[1174] YES
2)	>				;
**************
1)56		JRST	F40ERR		;ERROR
1)		POPJ	P,		;[1120] DONE
1)	IFN FTOVERLAY,<
1)	F40OVE:	.ERR.	(MS,.EC,V%L,L%F,S%F,FOV,<Cannot overlay F40 comp
	iled code in >)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)	>
1)57	;**;[1120] Replace @CBLNAM	DZN	22-Sep-78
****
2)56	;**;[1174] Replace @F40NAM+20L	DZN	30-May-79
2)		JRST	E$$MSR		;[1174] ERROR
2)		POPJ	P,		;[1120] DONE
2)	IFN FTOVERLAY,<
2)	;**;[1174] Replace @F40OVE	DZN	30-May-79
2)	E$$FOV::.ERR.	(MS,.EC,V%L,L%F,S%F,FOV,<Cannot overlay F40 comp
	iled code>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]>
2)57	;**;[1120] Replace @CBLNAM	DZN	22-Sep-78
**************
1)57		JRST	C74ERR		;NOT ALLOWED
1)		TXNE	T2,CBLBIT	;[1120] OR IF COBOL ALREADY SEEN
1)		POPJ	P,		;[1120] DONE
1)		.ERR.	(MS,0,V%L,L%F,S%F,CMF,<Cobol module must be load
	ed first>)
1)	C74NAM:	JUMPE	T2,CPOPJ	;[1120] OK FIRST TIME
1)		TXNE	T2,CBLBIT	;[1120] TEST FOR OTHER COBOL
1)		JRST	C74ERR		;NOT ALLOWED
1)		TXNE	T2,C74BIT	;[1120] OR IF COBOL ALREADY SEEN
1)		POPJ	P,		;[1120] DONE
1)		.ERR.	(MS,0,V%L,L%F,S%F,CMF)
1)	C74ERR:	.ERR.	(MS,.EC,V%L,L%F,S%F,CMC,<Cannot mix COBOL-68 and
	 COBOL-74 compiled code
Digital Equipment Corporation       28-AUG-79    Page 645
PCO Log Report


1)		Error detected in module >)
1)		.ETC.	(SBX,.EC!.EP,,,,PRGNAM)
1)		.ETC.	(STR,.EC,,,,,< from >)
1)		.ETC.	(FSP,,,,,DC)
1)	;**;[1120] Replace @C74ERR+6L	DZN	22-Sep-78
****
2)57	;**;[1174] Replace @CBLNAM+2L	DZN	30-May-79
2)		JRST	E$$CMC		;[1174] NOT ALLOWED
2)		TXNE	T2,CBLBIT	;[1120] OR IF COBOL ALREADY SEEN
2)		POPJ	P,		;[1120] DONE
2)	E$$CMF::.ERR.	(MS,0,V%L,L%F,S%F,CMF,<COBOL module must be load
	ed first>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)	C74NAM:	JUMPE	T2,CPOPJ	;[1120] OK FIRST TIME
2)		TXNE	T2,CBLBIT	;[1120] TEST FOR OTHER COBOL
2)	;**;[1174] Replace @C74NAM+2L	DZN	30-May-79
2)		JRST	E$$CMC		;[1174] NOT ALLOWED
2)		TXNN	T2,C74BIT	;[1174] OR IF COBOL ALREADY SEEN
2)		JRST	E$$CMF		;[1174]
2)	;**;[1174] Replace @C74ERR	DZN	30-May-79
2)	E$$CMC::.ERR.	(MS,.EC,V%L,L%F,S%F,CMC,<Cannot mix COBOL-68 and
	 COBOL-74 compiled code>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)	;**;[1120] Replace @C74ERR+6L	DZN	22-Sep-78
 
 
**************
1)57	F40ERR:	.ERR.	(MS,0,V%L,L%F,S%F,MSR,</MIXFOR switch required t
	o mix F40 and FORTRAN code>)
1)	IFN FMXFOR,<
****
2)57	;**;[1174] Replace @F40ERR	DZN	30-May-79
2)	E$$MSR::.ERR.	(MS,0,V%L,L%F,S%F,MSR,</MIXFOR switch required t
	o mix F40 and FORTRAN code>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)	IFN FMXFOR,<
**************
1)60		JRST	MXFERR		;NO, SO GIVE UP
1)	MXFOR3:	PUSHJ	P,ADCKMX	;GET NEXT DATA WORD
****
2)60	;**;[1174] Replace @MXFR2A+6L	DZN	30-May-79
2)		JRST	E$$FSF		;[1174] NO, SO GIVE UP
2)	MXFOR3:	PUSHJ	P,ADCKMX	;GET NEXT DATA WORD
**************
1)60		JRST	MXFERR		;ERROR
1)		MOVSI	T1,(SOJA 16,)	;CHANGE INST TO SOJA 16,.JRA16##
****
2)60	;**;[1174] Replace @MXFOR3+14L	DZN	30-May-79
2)		JRST	E$$FSF		;[1174] ERROR
2)		MOVSI	T1,(SOJA 16,)	;CHANGE INST TO SOJA 16,.JRA16##
**************
Digital Equipment Corporation       28-AUG-79    Page 646
PCO Log Report


1)61	;	JRST	MXFERR		;SHOULD HAVE FOUND IT BY NOW
1)62	;HERE IF SUBROUTINE IS NOT STANDARD FORM
1)	MXFERR:	.ERR.	(MS,.EC,V%L,L%W,S%W,FSF,<Fortran subroutine >)
1)		.ETC.	(SBX,.EC!.EP,,,,PRGNAM)
1)		.ETC.	(STR,,,,,,< not in expected form, MIXFOR fixup n
	ot done>)
1)		JRST	MXFOR5		;TRY NEXT
****
2)61	;**;[1174] Replace @MXFOR9+7L	DZN	30-May-79
2)	;	JRST	E$$FSF		;[1174] SHOULD HAVE FOUND IT BY
	NOW
2)62	;HERE IF SUBROUTINE IS NOT STANDARD FORM
2)	;**;[1174] Replace @MXFERR	DZN	30-May-79
2)	E$$FSF::.ERR.	(MS,.EC,V%L,L%W,S%W,FSF,<FORTRAN subroutine not
	in expected format, /MIXFOR fixup not done>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174] RETURNS WHEN MODULE A
	ND FILE PRINTED
2)		JRST	MXFOR5		;TRY NEXT
**************
1)66	GOSTER:	PUSHJ	P,STARTU##	;UNDEFINED MESSAGE
1)		SETZM	STADDR		;CLEAR ADDRESS
****
2)66	;**;[1174] Replace @GOSTER	DZN	3-Jun-79
2)	GOSTER:	PUSHJ	P,E$$USA##	;[1174] UNDEFINED MESSAGE
2)		SETZM	STADDR		;CLEAR ADDRESS
**************
1)67		PUSHJ	P,[PUSHJ P,.SAVE4##	;INCASE WE NEED THEM
1)			HRRZ	T1,LOWSUB	;[605] ON TTY ONLY
1)			PUSHJ	P,.TYOCH##	;INITIALIZE
1)			PUSH	P,T1		;STORE OLD
1)			MOVEI	T1,[ASCIZ	\?LNKUGS \]	;FATAL F
	OR BATCH
1)			SETZ	P2,		;NO TERMINATOR
1)			PJRST	UNDEF1##]	;AND JOIN OUTPUT ROUTINE
1)		HLRZ	P1,INCPTR	;GET GLOBAL INCLUDE POINTER
****
2)67		PUSHJ	P,LODUGS	;[1174] PRINT UNDEFINED GLOBALS
	MESSAGE
2)		HLRZ	P1,INCPTR	;GET GLOBAL INCLUDE POINTER
 
 
**************
1)68	;[704] HERE TO SORT THE PSECT RELOCATION TABLES BY ORDER OF
****
2)67	LODUGS:	MOVE	T1,[PUSHJ P,UNDNXT##] ;[1174] SET UP NEXT SYMBOL
	 ROUTINE
2)		MOVEM	T1,NXTGLB	;[1174]   ..
2)		MOVE	W3,HT.PRM	;[1174] SET UP INDEX TO HASH TAB
	LE
2)		ADDI	W3,1		;[1174] START 1 UP FOR SOSGE IN
	UGSNXT
Digital Equipment Corporation       28-AUG-79    Page 647
PCO Log Report


2)	E01UGS::.ERR.	(MS,.EC,V%L,L%F,S%C,UGS) ;[1174]
2)		.ETC.	(JMP,,,,,.ETUGS##) ;[1174] PRINT UNDEF'ED GLOBAL
	S AND RETURN
2)68	;[704] HERE TO SORT THE PSECT RELOCATION TABLES BY ORDER OF
**************
1)70		.ERR.	(MS,.EC,V%L,L%W,S%W,POV,<PSECTs overlapped:  >)
1)		.ETC.	(OCT,.EC!.EP,,,,W1)
1)		.ETC.	(STR,.EC,,,,,< to >)
1)		.ETC.	(OCT,.EC!.EP,,,,W2)
1)		.ETC.	(STR,.EC,,,,,< PSECTS  >)
1)		.ETC.	(SBX,.EC!.EP,,,,T1)
1)		.ETC.	(STR,.EC,,,,,< and >)
1)		.ETC.	(SBX,.EP,,,,T2)
1)	CHKBN2:	JUMPG	R,CHKBN1	;[760] LOOP DOWN IF MORE IN THIS
	 SWEEP
****
2)70	;**;[1174] Replace @CHKBN1+11L	DZN	30-May-79
2)	E$$POV::.ERR.	(MS,.EC,V%L,L%W,S%W,POV,<Psects >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,T1) ;[1174]
2)		.ETC.	(STR,.EC,,,,,< and >)
2)		.ETC.	(SBX,.EC!.EP,,,,T2) ;[1174]
2)		.ETC.	(STR,.EC,,,,,< overlap from >) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,W1) ;[1174]
2)		.ETC.	(STR,.EC,,,,,< to >)
2)		.ETC.	(OCT,.EP,,,,W2) ;[1174]
2)	CHKBN2:	JUMPG	R,CHKBN1	;[760] LOOP DOWN IF MORE IN THIS
	 SWEEP
**************
1)83		.ERR.	(MS,0,V%L,L%W,S%W,FSI,<FORTRAN-10 requires FOROT
	S, /FORSE switch ignored>)
1)	FORL02:	SETZM	FORLIB		;IGNORE STUPID USER REQUEST
****
2)83	;**;[1174] Replace @FOR.L2+5L	DZN	30-May-79
2)	E$$FSI::.ERR.	(MS,0,V%L,L%W,S%W,FSI,<FORTRAN requires FOROTS,
	/FORSE switch ignored>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)	FORL02:	SETZM	FORLIB		;IGNORE STUPID USER REQUEST
**************
1)83		.ERR.	(MS,0,V%L,L%W,S%W,FSI)
1)		SETZM	FORLIB
****
2)83	;**;[1174] Replace @FOR.L1+2L	DZN	30-May-79
2)	E01FSI::.ERR.	(MS,0,V%L,L%W,S%W,FSI) ;[1174]
2)		.ETC.	(STR,,,,,.ETIMF##) ;[1174]
2)		SETZM	FORLIB
**************
1)85		.ERR.	(MS,,V%L,L%W,S%W,AMP,<ALGOL main program not loa
	ded>)
1)	ALG.L2:	MOVE	P1,['ALGLIB']
****
2)85	;**;[1174] Replace @ALG.L1+2L	DZN	30-May-79
Digital Equipment Corporation       28-AUG-79    Page 648
PCO Log Report


2)	E$$AMP::.ERR.	(MS,,V%L,L%W,S%W,AMP,<ALGOL main program not loa
	ded>) ;[1174]
2)	ALG.L2:	MOVE	P1,['ALGLIB']
**************
1)85		.ERR.	(MS,,V%L,L%W,S%W,SMP,<SIMULA main program not lo
	aded>)
 
 
1)	SIM.L0:	MOVE	P1,['SIMLIB']
****
2)85	;**;[1174] Replace @SIM.L1+2L	DZN	30-May-79
2)	E$$SMP::.ERR.	(MS,,V%L,L%W,S%W,SMP,<SIMULA main program not lo
	aded>) ;[1174]
2)	SIM.L0:	MOVE	P1,['SIMLIB']
**************
1)86		PUSH	P,[DC]		;SAVE CHAN#
1)		.ERR.	(ST,0,V%L,L%F,S%F,EID,<Error on input device>)
1)	;THESE ROUTINES ARE LIKE THE CORRESPONDING D.IN? ROUTINES, EXCEP
	T
****
2)86	;**;[1174] Replace @D.ERR+2L	DZN	30-May-79
2)	E01EIF::PUSH	P,[DC]		;[1174] SAVE CHANNEL FOR LNKLOG
2)		.ERR.	(ST,0,V%L,L%F,S%F,EIF) ;[1174]
2)	;THESE ROUTINES ARE LIKE THE CORRESPONDING D.IN? ROUTINES, EXCEP
	T
**************
1)88		PUSHJ	P,EOFTS		;NO GIVE WARNING
1)		POP	P,(P)		;POP OFF RETURN
****
2)88	;**;[1174] Replace @EOF+1L	DZN	30-May-79
2)		PUSHJ	P,E$$NEB	;[1174] NO GIVE WARNING
2)		POP	P,(P)		;POP OFF RETURN
**************
1)88	EOFTS::	.ERR.	(MS,.EC,V%L,L%W,S%W,NEB,<No end block seen for >
	)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)		MOVEI	R,1		;NOW TRY TO FIXUP RELOC TABLES
****
2)88	E$$NEB::.ERR.	(MS,.EC,V%L,L%W,S%W,NEB,<No end block seen>) ;[1
	174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		MOVEI	R,1		;NOW TRY TO FIXUP RELOC TABLES
**************
 
Digital Equipment Corporation       28-AUG-79    Page 649
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOG.MAC[30,4507]  	created: 0045 17-Feb-1979
File 2)	LINK:LNKLOG.MAC[10,645063]	created: 1729 11-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/DZN	16-Feb-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1144		;DEC EDIT VERSION
1)	SEGMENT
1)	;USES T1-T4 ONLY (PLUS PUSHDOWN STACK)
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	SEGMENT
2)	SALL
2)	;USES T1-T4 ONLY (PLUS PUSHDOWN STACK)
**************
1)3	SUBTTL	ENTER HERE FROM LINK
1)	;UUO TYPE IS IN AC T1
1)	IFN FTSINGLE,<
****
2)2	;1174	Label and clean up all error messages. Remove most of ed
	it 1144. Support
2)	;	.ETC. codes RTN, NLN, XCT, BKL, DAT and NOP. Support S%C
	. Clean  up  the
2)	;	listing.
2)3	SUBTTL	DISPATCH TABLES FOR MESSAGE CLASSES
2)	;DISPATCH  TABLE  FOR  MAIN  MESSAGE TYPE.  THE MESSAGE TYPE IS
	SPECIFIED IN THE
2)	;FIRST ARGUMENT TO THE .ERR. MACRO.
2)	DEFINE	XXX(TYPE)<
2)		EXP	ER.'TYPE
2)	>
2)		XALL
2)	TYPTAB:	ERRTYPE
2)	;DISPATCH  TABLE  FOR  CONTINUATION  MESSAGE  TYPE.  THE  CONTIN
	UATION  TYPE  IS
2)	;SPECIFIED IN THE FIRST ARGUMENT TO THE .ETC. MACRO.
2)	DEFINE	XXX(TYPE)<
2)	  ..CTRL==<<IFIDN <TYPE><JMP>,<1>>!<IFIDN <TYPE><RTN>,<1>>>
2)	  IFN ..CTRL,<
2)		XWD	1B18,ER'TYPE	;FLOW OF CONTROL ONLY
2)	  >
2)	  IFE ..CTRL,<
2)		EXP	ER'TYPE		;PRINT TEXT
2)	  >
2)	>
2)	ER.TAB:	ETCTYPE
2)	ERLEN==.-ER.TAB
Digital Equipment Corporation       28-AUG-79    Page 100
PCO Log Report


2)		SALL
2)4	SUBTTL	ENTRY FROM ERRUUO AND MESSAGE DISPATCH
2)	IFN FTSINGLE,<
**************
1)3		JRST	@TYPTAB(T1)
1)	DEFINE XXX (TYPE) <
1)		EXP	ER.'TYPE
1)	>
1)	TYPTAB:	ERRTYPE
1)	SALL
1)4	;ENTRY POINT FOR ASCII STRING
1)	;CALLED BY
1)	;	ERRUOO	MS
 
 
1)	;	ARGS
1)	ER.MS:	PUSHJ	P,CHKLVL	;OUTPUT %,? OR TIME STAMP ETC
1)		  JRST	NOERR		;NOTHING TO OUTPUT
1)		MOVE	T1,VERLVL	;GET VERBOSITY LEVEL
1)		SOJE	T1,ERRLV1	;END NOW IF /VER:SHORT
1)	;**;[1144] Insert before ER.MS+4L	DZN	16-Feb-79
1)		TXNE	P1,.EN		;[1144] SEE IF THERE'S A MESSAGE
	 TO PRINT
1)		JRST	ERRNXT		;[1144] NO--DON'T PRINT ANYTHING
1)		HRRZ	T1,P1		;ADDRESS OF MESSAGE STRING
1)		OUTVIA	.TSTRG##	;OUTPUT MESSAGE
1)	ERRNXT:	TXNN	P1,.EC		;MORE TO DO?
1)		JRST	ERRFIN		;NO, END LINE
1)	;**;[1144] Replace @ERRNXT+2L	DZN	16-Feb-79
1)		LDB	T1,VSPTR	;[1144] GET VERBOSITY AND SEVERI
	TY
1)		AOS	UUOTRAP		;ADVANCE RETURN POINTER
1)		MOVE	P1,@UUOTRAP	;GET ADDRESS OF OUTPUT INFO
1)		DPB	T1,VSPTR	;[1144] STORE VERBOSITY AND SEVE
	RITY AGAIN
1)		TRNN	P1,-1		;IF ZERO , ITS ON THE STACK
1)		PUSHJ	P,UNSTCK	;GET IT
1)		HRRZ	T1,P1		;GET VALUE
1)		TXNN	P1,.EP		;ONLY A POINTER?
1)		JRST	.+4		;NO, ALL SET
1)		CAIG	T1,P1		;IS IT ONE OF THE SAVED ONES?
1)		SKIPA	T1,SAVEAC(T1)	;YES, GET FROM SAVED SET
1)		MOVE	T1,(T1)		;NO, GET REAL VALUE
1)		LDB	T2,LVLPTR	;GET TYPE
1)		JRST	@ER.TAB(T2)	;DO CORRECT FUNCTION
1)	ERRFIN:	MOVE	T1,VERLVL	;GET WHAT USER WANTS
1)		CAIGE	T1,V%L		;DOES HE WANT LONG?
1)		JRST	ERRFN0		;NO
****
2)4		JRST	@TYPTAB(T1)	;[1174] ROUTINES RETURN TO ERRFI
	N BELOW
Digital Equipment Corporation       28-AUG-79    Page 101
PCO Log Report


2)	ERRFIN:	SKIPGE	PRTMSG		;[1174] DID WE PRINT ANYTHING AT
	 ALL?
2)		JRST	ERRET		;[1174] NO--NO LINE TO FINISH OF
	F THEN
2)		MOVE	T1,VERLVL	;[1174] DID USER REQUEST LONG ME
	SSAGE?
2)		CAIGE	T1,V%L		;[1174]   ..
2)		JRST	ERRFN0		;NO
**************
1)4		CAIL	T2,S%W		;WAS IT
****
2)4		CAMGE	T2,SEVLVL	;[1174] SUPPRESS ] IF MESSAGE FO
	RCED TO FATAL
2)		CAIL	T2,S%W		;WAS IT
**************
1)4		TXNE	P1,.EB		;BLANK LINE NEEDED?
1)		SKIPN	LOGSUB		;YES, BUT HAVE A LOG FILE?
1)		  CAIA			;NO TO EITHER
1)		PUSHJ	P,.TCRLF##	;YES, BLANK LINE IN LOG ONLY
1)5	;HERE WHEN THE MESSAGE HAS BEEN TYPED. SHOULD WE CONTINUE?
****
2)4	;  ..
2)5	;  ..
2)	;HERE WHEN THE MESSAGE HAS BEEN TYPED. SHOULD WE CONTINUE?
**************
1)5		JRST	ERXIT		;NO
1)		HRRZS	LOGSUB		;CLEAR FLAG
1)		CAIL	T1,S%E		;DO WE NEED TO EDIT THIS ERROR F
	IRST
 
 
1)		JRST	EDITER		;YES, FATAL  IF WE DON'T
****
2)5		CAXN	T1,S%C		;[1174]   ..
2)		  SKIPA			;[1174] YES--RETURN TO CALLER
2)		JRST	ERXIT		;[1174] NO--GO EXIT
2)		HRRZS	LOGSUB		;CLEAR FLAG
2)		CAIN	T1,S%E		;[1174] DO WE NEED TO EDIT THIS
	ERROR FIRST
2)		JRST	EDITER		;YES, FATAL  IF WE DON'T
**************
1)6	;HERE WHEN LOG FILE GETS ERROR
1)	;FINISH ORIGINAL MESSAGE THEN OUTPUT LOG ERROR MESSAGE
1)	REPEAT 0,<			;NOT YET WORKING
1)	ERRLOG:	POP	P,T1		;GET RETURN OFF STACK
1)		PUSH	P,UUOTRAP	;SAVE REAL RETURN ADDRESS
1)		PUSH	P,T1		;STACK RETURN
1)		MOVEI	T1,LOGERR-1	;FAKE RETURN
1)		HRRM	T1,UUOTRAP	;SO WE CAN TYPE 2ND MESSAGE
1)		POPJ	P,		;IF NOTHING MORE IMPORTANT OCCUR
	S
Digital Equipment Corporation       28-AUG-79    Page 102
PCO Log Report


1)	LOGERR:	PUSH	P,[RC]		;CHAN#
1)		.ERR.	(ST,0,V%M,L%W,S%W,OEL,<Output error on LOG file,
	 file closed, job continuing.>)
1)		POP	P,T1		;GET ORIGINAL RETURN
1)		JRSTF	@T1		;RETURN
1)	>;END OF REPEAT 0
1)7	;HERE TO "EDIT" THE ERRONEOUS FILE SPEC
1)	;STORE CURRENT STRING IN F.EDIT
1)	;AND GO TO SCAN
1)	EDITER:	MOVEI	T2,1		;GET A WORD TO HOLD FL
****
2)5	;HERE TO "EDIT" THE ERRONEOUS FILE SPECIFICATION.  THIS OCCURS W
	HEN A MESSAGE OF
2)	;SEVERITY S%E IS PRINTED UNDER TIMESHARING. STORE THE STILL PEND
	ING LIST OF SCAN
2)	;BLOCKS IN F.EDIT, AND RETURN TO THE LNKSCN FOR THE CORRECTION L
	INE.
2)	EDITER:	MOVEI	T2,1		;GET A WORD TO HOLD FL
**************
1)7	EDTMES:	ASCIZ	\[	Please retype the incorrect parts of the
	 file specification]
1)	\
1)8	ERXIT:	MOVEI	T1,FINMES	;TELL USER WE CLOSED FILE
****
2)5	EDTMES:	.ASCIZ	<[	Please retype the incorrect parts of the
	 file specification]
2)	>
2)6	;HERE WHEN LOG FILE GETS ERROR
2)	;FINISH ORIGINAL MESSAGE THEN OUTPUT LOG ERROR MESSAGE
2)	REPEAT 0,<			;NOT YET WORKING
2)	ERRLOG:	POP	P,T1		;GET RETURN OFF STACK
2)		PUSH	P,UUOTRAP	;SAVE REAL RETURN ADDRESS
2)		PUSH	P,T1		;STACK RETURN
2)	;**;[1174] Replace @ERRLOG+3L	DZN	4-Jun-79
2)		MOVEI	T1,E$$OEL-1	;[1174] FAKE RETURN
2)		HRRM	T1,UUOTRAP	;SO WE CAN TYPE 2ND MESSAGE
2)		POPJ	P,		;IF NOTHING MORE IMPORTANT OCCUR
	S
2)	;**;[1174] Replace @LOGERR	DZN	4-Jun-79
2)	E$$OEL::PUSH	P,[RC]		;CHANNNEL #
2)		.ERR.	(ST,0,V%L,L%W,S%W,OEL,<Output error on log file,
	 file closed, load continuing>)
2)		POP	P,T1		;GET ORIGINAL RETURN
2)		JRSTF	@T1		;RETURN
2)	>;END OF REPEAT 0
2)7	SUBTTL	FATAL ERROR FINAL CLEAN-UP AND EXIT
 
 
2)	;HERE IF FATAL NON-CONTINUABLE (E.G., NOT EDITABLE) ERROR OCCURS
	, AFTER PRINTING
2)	;THE MESSAGE.  CLOSE THE LOG FILE AND DELETE ALL OF LINK'S .TMP
Digital Equipment Corporation       28-AUG-79    Page 103
PCO Log Report


	FILES.  IF WE'RE
2)	;UNDER  BATCH, FORCE OUT THE LONG MESSAGE IF APPLICABLE.  OTHERW
	ISE, MERELY GIVE
2)	;THE USER A HINT THAT THE LONG MESSAGE MAY BE TYPED IF DESIRED.
2)	ERXIT:	MOVEI	T1,FINMES	;TELL USER WE CLOSED FILE
**************
1)8	FINMES:	.ASCIZ	<	[END OF LOG FILE]
1)	>
1)9	NOERR:	TXNN	P1,.EC		;MORE TO DO?
1)		JRST	ERRET		;NO, END LINE
1)		LDB	T1,SEVPTR	;GET SEVERITY
1)		AOS	UUOTRAP		;ADVANCE RETURN POINTER
1)		MOVE	P1,@UUOTRAP	;GET ADDRESS OF OUTPUT INFO
1)		DPB	T1,SEVPTR	;STORE SEVERITY AGAIN
1)		TRNN	P1,-1		;IF ZERO , ITS ON THE STACK
1)		PUSHJ	P,UNSTCK	;GET IT
1)		JRST	NOERR		;SEE IF END
1)	;HERE IF /VER:SHORT
1)	;WE MUST REMOVE ALL ITEMS FROM STACK
1)	;SET SEVERITY LEVEL
1)	;AND CLOSE OPEN ] ETC
1)	ERRLV1:	TXNN	P1,.EC		;MORE TO DO?
1)		JRST	ERRFN0		;NO, END LINE
1)		LDB	T1,SEVPTR	;GET SEVERITY
1)		AOS	UUOTRAP		;ADVANCE RETURN POINTER
1)		MOVE	P1,@UUOTRAP	;GET ADDRESS OF OUTPUT INFO
1)		DPB	T1,SEVPTR	;STORE SEVERITY AGAIN
1)		TRNN	P1,-1		;IF ZERO , ITS ON THE STACK
1)		PUSHJ	P,UNSTCK	;GET IT
1)		JRST	ERRLV1		;SEE IF END
1)10	;HERE FOR LOOKUP/ENTER/RENAME ERROR
****
2)7	FINMES:	.ASCIZ	<	[End of log file]
2)	>
2)8	SUBTTL	MAIN ERROR MESSAGE SUBROUTINES
2)	;ENTRY POINT FOR ASCII STRING
2)	;CALLED BY
2)	;	ERRUUO	ER%MS
2)	;	ARGS
2)	ER.MS:	PUSHJ	P,CHKLVL	;OUTPUT %,? OR TIME STAMP ETC
2)		  JRST	ERRNXT		;[1174] NOTHING TO OUTPUT
2)		HRRZ	T1,P1		;ADDRESS OF MESSAGE STRING
2)		OUTVIA	.TSTRG##	;OUTPUT MESSAGE
2)		JRST	ERRNXT		;[1174] GO PROCESS .ETC. WORDS
2)	;HERE FOR LOOKUP/ENTER/RENAME ERROR
**************
1)10	;	ERRUUO	LRE
1)	;	ARGS
1)	ER.LRE:	MOVE	T4,0(P)		;GET CHAN#
1)	;**;[1144] Replace @ER.LRE+1L	DZN	16-Feb-79
****
Digital Equipment Corporation       28-AUG-79    Page 104
PCO Log Report


2)8	;	ERRUUO	ER%LRE
2)	;	ARGS
2)	ER.LRE:	POP	P,ERCHAN	;[1174] RESCUE CHANNEL FROM STAC
	K
2)		MOVE	T4,ERCHAN	;[1174] GET CHANNEL WHERE CHKCHN
	 LIKES IT
2)	;**;[1144] Replace @ER.LRE+1L	DZN	16-Feb-79
 
 
**************
1)10	ERLRE2:	PUSHJ	P,CHKCHN	;IF EDITABLE, SEE IF FATAL
1)		PUSHJ	P,CHKLVL	;OUTPUT TIME ETC
1)		  JRST	ERRET1		;NOTHING TO DO
1)	;**;[1144] Insert before ERLRE2+3L	DZN	16-Feb-79
1)		TXNE	P1,.EN		;[1144] SEE IF THERE'S TEXT TO P
	RING
1)		JRST	ERLRE3		;[1144] NO--DON'T PRINT ANYTHING
1)		HRRZ	T1,P1		;ADDRESS OF MESSAGE
1)		OUTVIA	.TSTRG##	;OUTPUT ON TTY AND/OR LOG
1)	ERLRE3:	POP	P,T4		;[1144] RESTORE CHAN PLUS FLAGS
1)	IFE FTSINGLE,<
****
2)8	;  ..
2)9	;  ..
2)	ERLRE2:	PUSHJ	P,CHKCHN	;IF EDITABLE, SEE IF FATAL
2)		PUSHJ	P,CHKLVL	;OUTPUT TIME ETC
2)		  JRST	ERRNXT		;[1174] NOTHING TO DO
2)	;**;[1144] Insert before ERLRE2+3L	DZN	16-Feb-79
2)		HRRZ	T1,P1		;ADDRESS OF MESSAGE
2)		OUTVIA	.TSTRG##	;OUTPUT ON TTY AND/OR LOG
2)	ERLRE3:	MOVE	T4,ERCHAN	;[1174] RESTORE CHAN PLUS FLAGS
2)	IFE FTSINGLE,<
**************
1)11	ERRET1:	POP	P,T1		;REMOVE CHAN#
1)		JRST	ERRET		;AND RETURN
1)12	IFE FTSINGLE,<
****
2)10	IFE FTSINGLE,<
**************
1)13	;	ERRUUO	I
1)	;	ARGS
1)	ER.I:	PUSHJ	P,CHKLVL	;OUTPUT % OR ?
1)		  JRST	ERRET1		;NOTHING TO DO
1)	;**;[1144] Insert before ER.I+2L	DZN	16-Feb-79
1)		TXNE	P1,.EN		;[1144] ANY MESSAGE TO PRINT?
1)		JRST	ERI1		;[1144] NO--DON'T PRINT ANYTHING
1)		HRRZ	T1,P1		;GET MESSAGE
1)		OUTVIA	.TSTRG##
1)	ERI1:	POP	P,T4		;[1144] GET CHAN#
1)		PUSHJ	P,CHKCHN	;SETUP CHAN# IF EDITABLE
****
Digital Equipment Corporation       28-AUG-79    Page 105
PCO Log Report


2)11	;	ERRUUO	ER%I
2)	;	ARGS
2)	ER.I:	POP	P,ERCHAN	;[1174] RESCUE CHANNEL FROM STAC
	K
2)		PUSHJ	P,CHKLVL	;OUTPUT % OR ?
2)		  JRST	ERRNXT		;[1174] NOTHING TO DO
2)	;**;[1144] Insert before ER.I+2L	DZN	16-Feb-79
2)		HRRZ	T1,P1		;GET MESSAGE
2)		OUTVIA	.TSTRG##
2)	ERI1:	MOVE	T4,ERCHAN	;[1174] GET CHANNEL FOR CHKCHN
2)		PUSHJ	P,CHKCHN	;SETUP CHAN# IF EDITABLE
**************
1)14	;	ERRUUO	ST
1)	;	ARGS
1)	ER.ST:	PUSHJ	P,CHKLVL	;OUTPUT % OR ?
1)		  PJRST	ERRET1		;NOTHING TO DO
 
 
1)	;**;[1144] Replace @ER.ST+2L	DZN	16-Feb-79
1)		TXNE	P1,.EN		;[1144] ANY MESSAGE TO TYPE?
1)		JRST	ERST1		;[1144] NO--DON'T PRINT ANYTHING
1)		HRRZ	T1,P1		;GET MESSAGE
****
2)12	;	ERRUUO	ER%ST
2)	;	ARGS
2)	ER.ST:	POP	P,ERCHAN	;[1174] RESCUE CHANNEL FROM STAC
	K
2)		PUSHJ	P,CHKLVL	;OUTPUT % OR ?
2)		  PJRST	ERRNXT		;[1174] NOTHING TO DO
2)	;**;[1144] Replace @ER.ST+2L	DZN	16-Feb-79
2)		HRRZ	T1,P1		;GET MESSAGE
**************
1)14		HRLZ	T1,(P)		;GET CHAN#
1)		LSH	T1,5		;PUT IN AC FIELD
****
2)12		HRLZ	T1,ERCHAN	;[1174] GET CHANNEL FOR GETSTS
2)		LSH	T1,5		;PUT IN AC FIELD
**************
1)14		MOVEI	T1,[ASCIZ \for \] ;[1144]
1)		OUTVIA	.TSTRG##
1)		POP	P,T4		;GET CHAN#
1)		PUSHJ	P,CHKCHN	;SETUP CHAN# IF EDITABLE
****
2)12		MOVEI	T1,[ASCIZ \ for file \] ;[1144]
2)		OUTVIA	.TSTRG##
2)		MOVE	T4,ERCHAN	;[1174] GET CHANNEL NUMBER FOR C
	HKCHN
2)		PUSHJ	P,CHKCHN	;SETUP CHAN# IF EDITABLE
**************
1)16	SUBTTL	CONTINUATION DISPATCH
1)	DEFINE	XXX (TYPE)<
Digital Equipment Corporation       28-AUG-79    Page 106
PCO Log Report


1)		EXP	ER'TYPE
1)	>
1)		XALL
1)	ER.TAB:	ETCTYPE		;GENERATE DISPATCHES
1)	ERLEN==.-ER.TAB		;LENGTH OF TABLE
1)		SALL
1)	;ASCII LINE
1)	ERSTR:	OUTVIA	.TSTRG##
1)		JRST	ERRNXT		;SEE IF MORE
1)	ERSBX:	OUTVIA	.TSIXN##
1)		JRST	ERRNXT
1)	EROCT:	OUTVIA	.TOCTW##
1)		JRST	ERRNXT
1)	ERDEC:	OUTVIA	.TDECW##
1)		JRST	ERRNXT
1)	;FILE SPECS
1)	ERFSP:	HRR	P1,IO.PTR(P1)	;GET ADDRESS
****
2)14	SUBTTL	CONTINUATION OF FIRST LINE DISPATCH
2)	;HERE AFTER PROCESSING AN .ETC. FUNCTION.  IF THERE ARE NO MORE
	LEFT, RETURN VIA
2)	;ERRFIN.  OTHERWISE, PROCESS THE NEXT .ETC. FUNCTION ONLY IF THE
	 FIRST  LINE  OF
2)	;THE MESSAGE SHOULD BE PRINTED OR IF THE .ETC. REPRESENTS FLOW-O
	F-CONTROL RATHER
2)	;THAN TEXT.
2)	ERRNXT:	TXNN	P1,.EC		;MORE TO DO?
2)		JRST	ERRFIN		;NO, END LINE
 
 
2)	;**;[1144] Replace @ERRNXT+2L	DZN	16-Feb-79
2)		LDB	T1,VSPTR	;[1144] GET VERBOSITY AND SEVERI
	TY
2)		AOS	UUOTRAP		;ADVANCE RETURN POINTER
2)		MOVE	P1,@UUOTRAP	;GET ADDRESS OF OUTPUT INFO
2)		DPB	T1,VSPTR	;[1144] STORE VERBOSITY AND SEVE
	RITY AGAIN
2)		SKIPLE	PRTMSG		;[1174] ARE WE SUPPOSED TO PRINT
	 FIRST LINE?
2)		JRST	ERRNX1		;[1174] YES--GO STRAIGHT TO IT
2)		LDB	T1,LVLPTR	;[1174] NO--ONLY PROCESS CONTROL
	 .ETC. WORDS
2)		SKIPL	ER.TAB(T1)	;[1174] ONE THAT PRINTS TEXT?
2)		JRST	ERRNXT		;[1174] NO--IGNORE IT AND GET NE
	XT
2)	ERRNX1:	HRRZ	T1,P1		;[1174] GET VALUE
2)		TXNN	P1,.EP		;ONLY A POINTER?
2)		JRST	.+4		;NO, ALL SET
2)		CAIG	T1,P1		;IS IT ONE OF THE SAVED ONES?
2)		SKIPA	T1,SAVEAC(T1)	;YES, GET FROM SAVED SET
2)		MOVE	T1,(T1)		;NO, GET REAL VALUE
Digital Equipment Corporation       28-AUG-79    Page 107
PCO Log Report


2)		LDB	T2,LVLPTR	;[1174] GET .ETC. TYPE CODE
2)		JRST	@ER.TAB(T2)	;DO CORRECT FUNCTION
2)	;PRINT ASCII TEXT IN ASCIZ FORMAT.
2)	ERSTR:	OUTVIA	.TSTRG##
2)		JRST	ERRNXT		;SEE IF MORE
2)	;PRINT A SIXBIT WORD WITHOUT TRAILING SPACES.
2)	ERSBX:	OUTVIA	.TSIXN##
2)		JRST	ERRNXT
2)	;PRINT AN OCTAL FULL WORD WITHOUT LEADING ZEROS.
2)	EROCT:	OUTVIA	.TOCTW##
2)		JRST	ERRNXT
2)15	;PRINT A SIGNED DECIMAL VALUE.
2)	ERDEC:	OUTVIA	.TDECW##
2)		JRST	ERRNXT
2)	;PRINT A FILE SPECIFICATION. THE ARGUMENT IS LINK'S INTERNAL CHA
	NNEL NUMBER.
2)	ERFSP:	HRR	P1,IO.PTR(P1)	;GET ADDRESS
**************
1)16	;ASCII CHARACTER
1)	ERASC:	OUTVIA	.TCHAR##
1)		JRST	ERRNXT
1)17	;CORE ARG EITHER K OR P (DECIMAL)
1)	ERCOR:	ADDI	T1,1		;ROUND UP TO 1000 OR 2000
1)	IFE TOPS20,<
1)		MOVE	T2,.PGSIZ	;GET PAGE SIZE
1)		CAIE	T2,777		;P OR K
1)		JRST	[MOVEI	T2,"K"		;K
1)			LSH	T1,-^D10	;CONVERT TO K
1)			JRST	ERCOR1]
1)	>;END IFE TOPS20
1)		MOVEI	T2,"P"		;PAGES
1)		LSH	T1,-9		;GET INTO PAGES
1)	ERCOR1:	PUSH	P,T2		;SAVE CHAR
1)		OUTVIA	.TDECW##	;DECIMAL NUMBER
1)		POP	P,T1		;AND LETTER
1)		OUTVIA	.TCHAR##
1)		JRST	ERRNXT
1)	;GOTO WORD
1)	ERJMP:	SUBI	P1,1		;BACKUP SO AOS WILL GET RIGHT LO
	C
1)		HRRM	P1,UUOTRAP	;STORE GOTO ADDRESS
1)		JRST	ERRNXT
 
 
1)18	;RELATIVE POINTER TO TRIPLET(S) IN LS AREA
1)	IFN .NWBLK,<
****
2)15	;PRINT A SINGLE ASCII CHARACTER.
2)	ERASC:	OUTVIA	.TCHAR##
2)		JRST	ERRNXT
2)	;MEMORY SIZE ARGUMENT. PRINT MEMORY SIZE IN K FOR KA'S, PAGES FO
Digital Equipment Corporation       28-AUG-79    Page 108
PCO Log Report


	R ALL OTHERS.
2)	ERCOR:	ADD.	T1,.PGSIZ	;[1174] ROUND UP TO MONITOR'S PA
	GE SIZE
2)		ANDCM.	T1,.PGSIZ	;[1174]   ..
2)		OUTVIA	.TCORW##	;[1174] .TOUTS HAS THE SMARTS
2)		JRST	ERRNXT		;[1174] DONE
2)	;JUMP TO A CONTINUATION LIST OF .ETC. MACROS. CONTROL RETURNS FR
	OM LNKLOG TO THE
2)	;INSTRUCTIONS AFTER THE CONTINUATION LIST, NOT THE OLD LIST.  WE
	 ALSO  SAVE  THE
2)	;ADDRESS OF THE CURRENT .ETC. WORD SO RTN BELOW CAN USE IT.
2)	ERJMP:	HRRZ	T2,UUOTRAP	;[1174] GET ADDRESS OF CURRENT .
	ETC.
2)		MOVEM	T2,RTNPC	;[1174] SAVE IN CASE RTN NEEDS I
	T
2)		SUBI	T1,1		;[1174] LOOK LIKE WE JUST PROCES
	SED PREVIOUS WORD
2)		HRRM	T1,UUOTRAP	;[1174]   ..
2)		TXO	P1,.EC		;[1174] IMPLIED CONTINUATION FOR
	 JMP'S
2)		JRST	ERRNXT		;[1174]
2)	;RETURN FROM PREVIOUS JUMP.  NOTE THAT THE .EC FLAG OF THE JUMP
	THAT GOT US HERE
2)	;CONTROLS  WHETHER  THERE  ARE ANY MORE .ETC. WORDS, NOT THE .EC
	 FLAG OF THE RTN
2)	;FUNCTION.
2)	ERRTN:	ADD	T1,RTNPC	;[1174] FOR CPOPJ1, ETC.
2)		HRRM	T1,UUOTRAP	;[1174] LOOK LIKE WE JUST PROCES
	SED LAST JMP
2)		LDB	T2,VSPTR	;[1174] SAVE ORIGINAL VERBOSITY,
	 SEVERITY
2)		MOVE	P1,(T1)		;[1174] FINISH LOOKING LIKE THE
	JMP
2)		DPB	T2,VSPTR	;[1174] RESTORE ORIGINAL VERBOSI
	TY AND SEVERITY
2)		JRST	ERRNXT		;[1174] DONE
2)16	;PRINT A NEW LINE.  THIS PRINTS A CRLF FOLLOWED BY THE RIGHT IND
	ENTATION FOR THE
2)	;DESTINATION.  FOR A REAL LOG FILE, THIS INCLUDES THE  TIME  STA
	MP  PLUS  LEVEL,
2)	;SEVERITY AND MESSAGE PREFIX.  FOR A REAL TERMINAL, THIS INCLUDE
	S A TAB FOR NOW,
2)	;BUT SHOULD OPTIONALLY BE 2 SPACES IF LINK EVER LOOKS AT THE JOB
	'S MESSAGE BITS.
2)	ERNLN:	MOVEI	T1,[ASCIZ /
2)				/]	;[1174] INDENT PAST TIME STAMP I
	N LOG FILE
2)		SKIPE	LOGSUB		;[1174] REAL LOG FILE?
2)		PUSHJ	P,.TSTRG##	;[1174] YES--PRINT IT TO JUST LO
	G FILE
2)		SKIPN	LOGTTY		;[1174] NOW, OUTPUT GOING TO TER
Digital Equipment Corporation       28-AUG-79    Page 109
PCO Log Report


	MINAL?
2)		SKIPG	LOGSUB		;[1174]   ..
2)		  SKIPA			;[1174] YES
2)		JRST	ERRNXT		;[1174] NO--DONE
2)		SKIPL	LOGTTY		;[1174] TERMINAL A LOG FILE?
2)		JRST	ERNLN1		;[1174] NO--DO IT THE HARD WAY
2)		MOVEI	T1,[ASCIZ /
2)		/]			;[1174] YES--LOWSUB ALREADY POIN
	TS TO TTYIT
2)		PUSHJ	P,.TSTRG##	;[1174] SEND NEW LINE AND INDENT
	ATION
2)		JRST	ERRNXT		;[1174] DONE
2)	ERNLN1:	MOVE	T1,TTYSUB	;[1174] NEW LINE ON TERMINAL--SE
	T TO JUST TERMINAL
2)		PUSHJ	P,.TYOCH##	;[1174]   ..
2)		PUSH	P,T1		;[1174] SAVE LOG FILE ROUTINE
2)		MOVEI	T1,[ASCIZ /
2)		/]			;[1174] JUST A TAB FOR NOW
2)		PUSHJ	P,.TSTRG##	;[1174]   ..
2)		POP	P,T1		;[1174] RESTORE LOG FILE ROUTINE
2)		PUSHJ	P,.TYOCH##	;[1174]   ..
2)		JRST	ERRNXT		;[1174] DONE
 
 
2)	;RELATIVE POINTER TO TRIPLET(S) IN LS AREA.
2)	IFN .NWBLK,<
**************
1)19	SUBTTL	USEFUL SUBROUTINES
1)	;ROUTINE CHKLVL - CHECKS THE MESSAGE TO SEE IF IT SHOULD
1)	;GO TO LOG FILE, TTY, OR BOTH.
1)	;ALSO OUTPUTS TIME STAMP AND EITHER % OR ? IF REQUIRED
1)	;ENTER WITH LOGSUB AND LOGTTY SET UP AS
1)	;LOGSUB NON-ZERO IF LOG DEVICE EXISTS AND IS NOT TTY
1)	;LOGTTY = -1 IF LOG DEVICE IS TTY
1)	;CHKLVL CHANGES THESE TO BE
1)	;LOGSUB <-1,,NON-ZERO> IF BOTH  LOG AND TTY OUTPUT REQUIRED
1)	;LOGTTY <0,,NON-ZERO> IF TTY BUT NOT LOG AND TTY NOT = LOG
1)	CHKLVL:	LDB	T1,LVLPTR	;GET LIST LEVEL
****
2)17	;EXECUTE  AN INSTRUCTION.  THIS IS USEFUL WHEN THE SET-UP PERFOR
	MED BY LNKLOG IS
2)	;DESIRED, BUT A COMPLEX MESSAGE IS NEEDED.
2)	ERXCT:	XCT	(T1)		;[1174] EXECUTE THE INSTRUCTION
2)		  JRST	ERRNXT		;[1174] NON-SKIP--CONTINUE NORMA
	L FLOW
2)		AOS	UUOTRAP		;[1174] SKIP--SKIP NEXT .ETC.
2)		JRST	ERRNXT		;[1174] DONE
2)	;BLANK  LINE IN THE LOG FILE.  THIS IS USEFUL FOR SEPARATING SEC
	TIONS OF THE LOG
2)	;FILE, AS BETWEEN OVERLAY LINKS.
2)	ERBKL:	SKIPE	LOGSUB		;[1174] REAL LOG FILE?
Digital Equipment Corporation       28-AUG-79    Page 110
PCO Log Report


2)		PUSHJ	P,.TCRLF##	;[1174] YES--SEND A CRLF
2)		JRST	ERRNXT		;[1174] DONE
2)	;PRINT TODAY'S DATE.
2)	ERDAT:	OUTVIA	.TDATN##	;[1174] PRINTS TODAY'S DATE
2)		JRST	ERRNXT		;[1174] DONE
2)	;NO OPERATION. THIS FUNCTION IS GOOD FOR NOTHING.
2)	ERNOP:	JRST	ERRNXT		;[1174] DONE
2)18	SUBTTL	USEFUL SUBROUTINES
2)	;CHKLVL  CHECKS  TO  SEE  IF  THE  CURRENT  MESSAGE  SHOULD  GO
	TO LOG FILE, THE
2)	;TERMINAL, OR BOTH.  IF THE MESSAGE IS DESTINED TO THE LOG FILE,
	 A TIME STAMP IS
2)	;PRINTED,  AND IF THE MESSAGE IS DESTINED FOR THE TERMINAL THEN
	THE PROPER ERROR
2)	;CHARACTER ("?", "%" OR "[") PLUS THE LNK??? PREFIX IS PRINTED.
2)	;
2)	;CALL:
2)	;	LOGSUB/	NON-ZERO IF REAL NON-CONTROLLING TERMINAL LOG FI
	LE
2)	;	LOGTTY/	-1 IF LOG FILE IS THE CONTROLLING TERMINAL
2)	;SKIP RETURNS IF FIRST LINE MESSAGE SHOULD REALLY BE PRINTED SOM
	EWHERE, WITH:
2)	;	LOGSUB/	<-1,,NON-ZERO> IF BOTH LOG AND TERMINAL OUTPUT R
	EQUIRED
2)	;	LOGTTY/	<0,,NON-ZERO> IF TERMINAL BUT NOT LOG FILE OUTPU
	T REQUIRED
2)	;	PRTMSG/	-1: PRINT NOTHING; 0: ONLY PREFIX; 1: PRINT FIRS
	T LINE TEXT
2)	;	P1/	<ADDRESS OF FIRST LINE TEXT>
2)	CHKLVL:	LDB	T1,LVLPTR	;GET LIST LEVEL
**************
1)19		JRST	[AOS	(P)		;SKIP RET
1)			JRST	CHKLV4]		;OUTPUT % OR ? AND CODE
1)		SKIPN	LOGSUB		;DO WE REALLY HAVE A LOG DEVICE?
1)		JRST	CHKLV2		;NO, JUST TRY TTY
1)	CHKLV1:	AOS	(P)		;SET FOR SKIP RETURN
1)		PUSHJ	P,TSTAMP	;PUT TIME STAMP ON LOG FILE
****
2)18		JRST	[MOVEI T1,1		;[1174] POSITIVE FOR FIR
	ST LINE
2)			 MOVEM T1,PRTMSG	;[1174]   ..
 
 
2)			 JRST CHKLV4]		;OUTPUT [, % OR ? AND CO
	DE
2)		SKIPN	LOGSUB		;DO WE REALLY HAVE A LOG DEVICE?
2)		JRST	CHKLV2		;NO, JUST TRY TTY
2)	;HERE FOR A REAL NON-CONTROLLING TERMINAL LOG FILE.  PRINT THE T
	IME STAMP IN THE
2)	;LOG FILE ONLY.  THEN SEE IF THE TERMINAL SHOULD SEE THE  MESSAG
	E  TOO.  IF  SO,
Digital Equipment Corporation       28-AUG-79    Page 111
PCO Log Report


2)	;PRINT THE PREFIX THERE AND CAUSE THE OUTVIA MACRO TO PRINT ALL
	TEXT TO BOTH.
2)		MOVEI	T1,1		;[1174] MARK THAT WE SHOULD PRIN
	T THE MESSAGE
2)		MOVEM	T1,PRTMSG	;[1174]   ..
2)		PUSHJ	P,TSTAMP	;PUT TIME STAMP ON LOG FILE
**************
1)19		PUSHJ	P,SEVTST	;USE TTY TO OUTPUT % OR ?
1)		POP	P,T1		;GET OUTPUT ROUTINE BACK
****
2)18		PUSHJ	P,SEVTST	;USE TTY TO OUTPUT [, % OR ?
2)		POP	P,T1		;GET OUTPUT ROUTINE BACK
**************
1)20	;HERE WHEN NO LOG DEVICE. CHECK FOR TTY OUTPUT.
1)	CHKLV2:	LDB	T1,LVLPTR	;GET ERROR LEVEL
1)		CAMGE	T1,ERRLVL	;TO GO TO TTY?
1)	CPOPJ:	POPJ	P,		;NOTHING TO DO AT ALL
1)		AOS	(P)		;SKIP RETURN
1)		SKIPE	LOGTTY		;LOG = TTY?
1)		JRST	CHKLV4		;YES, JUST PRINT CODE AND RETURN
1)	CHKLV3:	HRRZ	T1,LOWSUB	;[605] SET FOR TTY OUTPUT ONLY
1)		PUSHJ	P,.TYOCH	;GET OLD RETURN
1)		HRRZM	T1,LOGTTY	;STORE OLD RETURN
1)	CHKLV4:	PUSHJ	P,SEVTST	;OUTPUT % OR ?
1)	CHKLV5:	MOVE	T1,(P1)		;GET CODE
1)		TRZ	T1,<BYTE (7) 0,0,0,177,177>
1)		MOVEM	T1,ERRCOD	;INCASE MORE MESSAGE REQUIRED
1)		MOVE	T1,VERLVL	;IF /VER:SHORT
1)		SOJE	T1,CHKLV6	;DON'T OUTPUT SPACE AFTER 3 CHAR
	S
1)		HRRZ	T1,P1		;GET ERROR CODE ADDRESS
1)		OUTVIA	.TSTRG##
1)		AOJA	P1,CPOPJ	;RETURN WITH P1 POINTING TO REST
	 OF MESS
1)	CHKLV6:	MOVEI	T1,ERRCOD	;JUST 3 CHARS
1)		OUTVIA	.TSTRG##
1)		AOJA	P1,CPOPJ
1)21	;ROUTINE SEVTST CHECKS ERROR FOR FATAL OR NOT
1)	;AND OUTPUTS EITHER % OR ? ON TTY ONLY
1)	SEVTST:	LDB	T2,SEVPTR	;GET SEVERITY
****
2)19	;HERE  WHEN  THERE  IS  NO REAL LOG FILE, OR THE MESSAGE TO IT I
	S CUT OFF DUE TO
2)	;/LOGLEVEL:.  CHECK FOR TERMINAL OUTPUT.  IF THE MESSAGE SHOULD
	GO THERE,  CHECK
2)	;FOR THE SPECIAL CASE OF THE TERMINAL BEING THE LOG FILE (TO PRE
	VENT TIME STAMPS
2)	;ON THE TERMINAL) THEN  PRINT  THE  ERROR  CHARACTER  AND  THE
	MESSAGE  PREFIX.
2)	;OTHERWISE, GIVE NON-SKIP RETURN SINCE NOTHING SHOULD GET PRINTE
	D. NOTE THAT THE
Digital Equipment Corporation       28-AUG-79    Page 112
PCO Log Report


2)	;PREFIX MUST END WITH A TAB SO THAT MESSAGES WITH IMBEDDED TABS
	LOOK THE SAME ON
2)	;THE TERMINAL AND IN THE LOG FILE.
2)	CHKLV2:	LDB	T1,LVLPTR	;GET ERROR LEVEL
2)		CAMGE	T1,ERRLVL	;TO GO TO TTY?
2)		JRST	[SETOM PRTMSG		;[1174] NO--REMEMBER NOT
	HING TO DO
2)			 JRST CHKLV6]		;[1174] GO RETURN
2)		MOVEI	T1,1		;[1174] YES--THEN REMEMBER SOMET
	HING TO PRINT
2)		MOVEM	T1,PRTMSG	;[1174]   ..
2)		SKIPE	LOGTTY		;LOG = TTY?
 
 
2)		JRST	CHKLV4		;YES, JUST PRINT CODE AND RETURN
2)		HRRZ	T1,LOWSUB	;[1174] SET FOR TTY OUTPUT ONLY
2)		PUSHJ	P,.TYOCH	;GET OLD RETURN
2)		HRRZM	T1,LOGTTY	;STORE OLD RETURN
2)	;HERE WHEN LOG FILE IS THE USER'S TERMINAL.
2)	CHKLV4:	PUSHJ	P,SEVTST	;OUTPUT [, % OR ?
2)	;HERE  TO  PRINT  THE MESSAGE PREFIX TO POTENTIALLY BOTH THE USE
	R'S TERMINAL AND
2)	;THE LOG FILE.
2)	CHKLV5:	MOVE	T1,(P1)		;[1174] GET MESSAGE PREFIX
2)		MOVEM	T1,ERRCOD	;SAVE IN CASE LONG MESSAGE REQUI
	RED LATER
2)		MOVEI	T1,ERRCOD	;[1174] PRINT THE PREFIX
2)		OUTVIA	.TSTRG##	;[1174]   ..
2)		MOVE	T1,VERLVL	;[1174] SEE IF /VERBOSITY:SHORT
2)		SOJE	T1,[SETZM PRTMSG	;[1174] YES--NO FIRST LI
	NE MSG
2)			    JRST CHKLV6]	;[1174] GO RETURN
2)		MOVX	T1,.CHTAB	;[1174] PRINT TAB AFTER PREFIX
2)		OUTVIA	.TCHAR##	;[1174]   ..
2)	CHKLV6:	ADDI	P1,1		;[1174] POINT TO BEGINNING OF FI
	RST LINE TEXT
2)		SKIPLE	PRTMSG		;[1174] SHOULD FIRST LINE BE PRI
	NTED?
2)	CPOPJ1:	AOS	(P)		;[1174] YES--SKIP RETURN
2)	CPOPJ:	POPJ	P,		;[1174] NO--NON-SKIP RETURN
2)20	;SEVTST  PRINTS  THE  PROPER  ERROR  CHARACTER  [, % OR ? BASED
	ON THE MESSAGE'S
2)	;ASSIGNED SEVERITY AND THE USER'S /SEVERITY: SWITCH.  IF THE MES
	SAGE  IS  FATAL,
2)	;CLEAR  TYPE-AHEAD  FIRST.  FINALLY, PRINT THE FIRST PART OF THE
	 MESSAGE PREFIX.
2)	;SEVTST ASSUMES THAT IT WILL ONLY PRINT TO THE USER'S TERMINAL.
2)	SEVTST:	LDB	T2,SEVPTR	;GET SEVERITY
**************
1)22		LDB	T1,LVLPTR	;GET PRINT LEVEL
****
Digital Equipment Corporation       28-AUG-79    Page 113
PCO Log Report


2)21		PUSHJ	P,.TSPAC##	;[1174] ANOTHER SPACE
2)		LDB	T1,LVLPTR	;GET PRINT LEVEL
**************
1)22		LDB	T1,SEVPTR	;ERR LEVEL
****
2)21		PUSHJ	P,.TSPAC##	;[1174] ANOTHER SPACE
2)		LDB	T1,SEVPTR	;ERR LEVEL
**************
1)22		PJRST	.TSPAC##	;FINISH WITH A SPACE
1)23	;UNSTCK REMOVES TOP DATA ITEM FROM STACK
1)	;AND PUT RH IN P1 AND T1
1)	UNSTCK:	POP	P,T3		;GET RETURN ADDRESS
1)		POP	P,T2		;MAIN RETURN
1)		POP	P,T1		;WHAT WE WANT
1)		PUSH	P,T2		;RESTACK
1)		HRR	P1,T1		;GET A COPY
1)		JRSTF	@T3		;RETURN
1)	;**;[1144] Replace @VERPTR	DZN	16-Feb-79
****
2)21		MOVEI	T1,[ASCIZ /   /];[1174] FINISH WITH 3 SPACES
2)		PJRST	.TSTRG##	;[1174]   ..
2)22	;**;[1144] Replace @VERPTR	DZN	16-Feb-79
**************
1)24	;.TEBLK --TYPE LOOKUP/ENTER/RENAME BLOCK (NOT SAME AS .TFBLK##)
****
2)23	SUBTTL	EXTENSIONS TO SCAN'S .TOUTS SUBROUTINES
2)	;.TEBLK --TYPE LOOKUP/ENTER/RENAME BLOCK (NOT SAME AS .TFBLK##)
 
 
**************
1)26	;STANDARD ERROR MESSAGES - USED EVERYWHERE
1)	.ERFEE::ASCIZ	\FEE \
1)		.ASCIZ	<ENTER error >;;[564]
1)	.ERFLE::ASCIZ	\FLE \
1)		.ASCIZ	<LOOKUP error >
1)	.ERFRE::ASCIZ	\FRE \
1)		.ASCIZ	<RENAME error >
1)	.ERGSE::ASCIZ	\GSE \
1)		.ASCIZ	<GETSEG error >
1)	.ERNED::ASCIZ	\NED \
1)		.ASCIZ	<Non-existent device >
1)	.ERIFD::ASCIZ	\IFD \
1)		.ASCIZ	<INIT failure for device >
1)		.ERR.	(,0,V%L,L%F,S%F,,<(2) directory full >)
****
2)25	SUBTTL	COMMON .ERR. SUBROUTINES
2)	;**;[1174] Replace @.ERFEE	DZN	30-May-79
2)	.ERFEE::ASCIZ	\FEE\
2)		.ASCIZ	<ENTER error >;;[564]
2)	.ERFLE::ASCIZ	\FLE\
2)		.ASCIZ	<LOOKUP error >
Digital Equipment Corporation       28-AUG-79    Page 114
PCO Log Report


2)	.ERFRE::ASCIZ	\FRE\
2)		.ASCIZ	<RENAME error >
2)	.ERGSE::ASCIZ	\GSE\
2)		.ASCIZ	<GETSEG error >
2)	.ERNED::ASCIZ	\NED\
2)		.ASCIZ	<Non-existent device >
2)	.EROFD::ASCIZ	\OFD\
2)		.ASCIZ	<OPEN failure for device >
2)	.EREIF::ASCIZ	\EIF\
2)		.ASCIZ	<Error for input file >
2)	.ERCNW::ASCIZ	\CNW\
2)		.ASCIZ	<Code not yet written at >
2)26	SUBTTL	DEFERRED SEVERITY AND LEVEL TABLE FOR INDEXED FILE ERROR
	S
2)		.ERR.	(,0,V%L,L%F,S%F,,<(2) directory full >)
**************
1)26	LRELEN==.-LRETAB
1)	LREDEF:	.ERR.	(,0,V%L,L%F,S%F,,<) Unknown cause >)
1)	.ERCNW::ASCIZ	\CNW \
1)		.ASCIZ	<Code not yet written at >
1)27	LOGLIT:
1)	END
****
2)26	;**;[1174] Insert before LRELEN	DZN	30-May-79
2)		.ERR.	(,0,V%L,L%F,S%F,,<(32) RUN not allowed when not
	logged in >) ;[1174]
2)		.ERR.	(,0,V%L,L%F,S%F,,<(33) file still has outstandin
	g ENQ/DEQ locks >) ;[1174]
2)		.ERR.	(,0,V%L,L%F,S%F,,<(34) bad EXE file directory fo
	rmat >) ;[1174]
2)		.ERR.	(,0,V%L,L%F,S%F,,<(35) EXE format files must hav
	e .EXE extension >) ;[1174]
2)		.ERR.	(,0,V%L,L%F,S%F,,<(36) EXE file directory is too
	 big >) ;[1174]
2)		.ERR.	(,0,V%L,L%F,S%F,,<(37) network capability exceed
	ed for TSK: >) ;[1174]
2)		.ERR.	(,0,V%L,L%F,S%F,,<(40) task is not available >)
	;[1174]
2)		.ERR.	(,0,V%L,L%F,S%F,,<(41) undefined network node fo
	r TSK: >) ;[1174]
2)	LRELEN==:.-LRETAB	;[1174] **MUST** AGREE WITH LNKERR
2)	LREDEF:	.ERR.	(,0,V%L,L%F,S%F,,<) Unknown cause >)
2)27	SUBTTL	COMMON .ETC. SUBROUTINES
 
 
2)	;PRINT 'DETECTED IN MODULE [SYMBOL] FROM FILE [FILE]' IF WE'RE C
	URRENTLY LOADING
2)	;A MODULE. CALLED FROM  ALL  ERROR  MESSAGES  THAT  POTENTIALLY
	 PERTAIN  TO  A
2)	;PATICULAR MODULE.
2)	.ETIMF::.ETC.	(XCT,.EC,,,,<[TRNN FL,R.LOD]>) ;[1174]
Digital Equipment Corporation       28-AUG-79    Page 115
PCO Log Report


2)		.ETC.	(RTN)		;[1174] NO MODULE, MAYBE A SWITC
	H
2)		.ETC.	(NLN,.EC)	;[1174]
2)		.ETC.	(STR,.EC,,,,,<Detected in module >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,PRGNAM) ;[1174]
2)		.ETC.	(STR,.EC,,,,,< from file >) ;[1174]
2)		.ETC.	(FSP,.EC,,,,DC) ;[1174]
2)		.ETC.	(RTN) ;[1174]
2)	IFN .NWBLK,<
2)	.ETNMF::.ETC.	(XCT,.EC,,,,<[TRNN FL,R.LOD]>) ;[1174]
2)		.ETC.	(RTN)		;[1174] NO MODULE, MAYBE A SWITC
	H
2)		.ETC.	(NLN,.EC)	;[1174]
2)		.ETC.	(STR,.EC,,,,,<Error detected in module >) ;[1174
	]
2)		.ETC.	(LSP,.EC!.EP,,,,NAMPTR) ;[1174]
2)		.ETC.	(STR,.EC,,,,,< from file >) ;[1174]
2)		.ETC.	(FSP,.EC,,,,DC) ;[1174]
2)		.ETC.	(RTN) ;[1174]
2)	> ;[1174] END OF IFN .NWBLK
2)	IFN FTOVERLAY,<
2)	;PRINT ' LINK NUMBER n[, NAME x]'.
2)	.ETLNN::.ETC.	(STR,.EC,,,,,< link number >) ;[1174]
2)		.ETC.	(DEC,.EC!.EP,,,,CS.NUM) ;[1174]
2)		.ETC.	(XCT,.EC,,,,<[SKIPN CS.LNM]>) ;[1174]
2)		.ETC.	(RTN)		;[1174] DON'T PRINT NAME IF NONE
2)		.ETC.	(STR,.EC,,,,,< name >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,CS.LNM) ;[1174]
2)		.ETC.	(RTN)
2)	>
2)28	;PRINT SYMBOLS WITH VALUES.  THIS IS CALLED FROM VARIOUS PLACES,
	 SUCH AS /ENTRY,
2)	;/REQUEST, /UNDEFINED.  THIS IS A LOOP THAT PRINTS ALL APPLICABL
	E SYMBOLS  UNTIL
2)	;DONE.
2)	;
2)	;CALL:
2)	;	W1/	SIXBIT SYMBOL NAME
2)	;	W2/	OCTAL SYMBOL VALUE
2)	;	NXTGLB/	<PUSHJ P,LOCN>, WHERE LOCN IS NEXT SYMBOL ROUTIN
	E
2)	;W3  IS SAVED AND CAN BE USED FOR DATA.  THE ROUTINE REFERENCED
	IN NXTGLB SHOULD
2)	;GIVE A NON-SKIP RETURN IF THERE ARE NO MORE SYMBOLS.  OTHERWISE
	, IT SHOULD GIVE
2)	;A SKIP RETURN WITH W1-W3 SET UP AS ABOVE.
2)	.ETSAV::.ETC.	(NLN,.EC)	;[1174] NEW LINE FOR NEXT SYMBOL
2)		.ETC.	(SBX,.EC!.EP,,,,W1) ;[1174] PRINT SYMBOL NAME
2)		.ETC.	(ASC,.EC,,,,.CHTAB) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,W2) ;[1174] PRINT SYMBOL VALUE
2)		.ETC.	(XCT,.EC,,,,NXTGLB) ;[1174] FETCH NEXT SYMBOL
Digital Equipment Corporation       28-AUG-79    Page 116
PCO Log Report


2)		  .ETC.	(JMP,.EC,,,,.ETDON) ;[1174] NO MORE LEFT
2)		.ETC.	(JMP,.EC,,,,.ETSAV) ;[1174] LOOP FOR THIS ONE
2)	.ETDON::.ETC.	(NOP)		;[1174] DONE
2)		POPJ	P,		;[1174] ALL DONE
2)29	SUBTTL	THE END
2)	LOGLIT:
2)	END
**************
 
Digital Equipment Corporation       28-AUG-79    Page 117
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOW.MAC[30,4507]  	created: 2146 08-Jun-1979
File 2)	LINK:LNKLOW.MAC[10,645063]	created: 1804 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC/DZN	5-Jun-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1172		;DEC EDIT VERSION
1)		LOC	137
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)		LOC	137
**************
1)3	SUBTTL	STORAGE
****
2)2	;1174	Add NXTGLB, RTNPC and ERCHAN.
2)3	SUBTTL	STORAGE
**************
1)3	PATLOC:	BLOCK	1		;[1172] LOCATION OF PAT.. AREA
1)4	SUBTTL	PER SEGMENT DATA
****
2)3	PATLOC::BLOCK	1		;[1172] LOCATION OF PAT.. AREA
2)4	SUBTTL	PER SEGMENT DATA
**************
1)6	IFN .NWBLK,<
****
2)6	;**;[1174] Insert after ENTPTR	DZN	5-Jun-79
2)	NXTGLB::BLOCK	1		;[1174] PUSHJ P,LOCN FOR /ENTRY,
	 /U, ETC.
2)	IFN .NWBLK,<
**************
1)13	NEGOFF==:400
****
2)12	RTNPC::	BLOCK	1		;[1174] ADDR OF LAST JMP .ETC. F
	OR RTN
2)	ERCHAN::BLOCK	1		;[1174] CHANNEL FOR FILE-RELATED
	 ERRORS
2)	PRTMSG::BLOCK	1		;[1174] FLAG FOR HOW MUCH OF MES
	SAGE TO PRINT
2)13	NEGOFF==:400
**************
 
Digital Equipment Corporation       28-AUG-79    Page 118
PCO Log Report


[FILCOM]
File 1)	LINK:LNKMAP.MAC[30,4507]  	created: 2056 08-May-1979
File 2)	LINK:LNKMAP.MAC[10,645063]	created: 1656 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	8-May-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1164		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
**************
1)4	SUBTTL	HEADER LINES
1)	LNKMAP:	JFCL	.+1		;INCASE CCL
1)		.ERR.	(MS,0,V%L,L%I,S%I,MPS,<MAP segment>)
1)		ZAPTMP			;CLEAR DATA AREA
****
2)3	;1174	Label and clean up all error messages.
2)4	SUBTTL	HEADER LINES
2)	LNKMAP:	JFCL	.+1		;INCASE CCL
2)	;**;[1174] Replace @LNKMAP+1L	DZN	31-May-79
2)	E$$MPS::.ERR.	(MS,0,V%L,L%I,S%I,MPS,<MAP segment>) ;[1174]
2)		ZAPTMP			;CLEAR DATA AREA
**************
1)8		  PUSHJ	P,NO.COR##
1)		PUSHJ	P,LOGBCK	;BUT ALL OTHERS IN MAP
****
2)8		  PUSHJ	P,E$$MEF##	;[1174]
2)		PUSHJ	P,LOGBCK	;BUT ALL OTHERS IN MAP
**************
1)9			PJRST	ER.IOV##]	;GO REPORT INPUT ERROR
1)		ILDB	T1,P1		;GET FIRST #
****
2)9	;**;[1174] Replace @**somewhere**+1P9L	DZN	1-Jun-79
2)			   PJRST E$$IOV##]	;[1174] GO REPORT INPUT
	ERROR
2)		ILDB	T1,P1		;GET FIRST #
**************
1)9			PJRST	ER.IOV##]	;INPUT ERROR
1)		ROT	T1,-1		;USUAL WAY TO ADDRESS 1/2 WORD
****
2)9	;**;[1174] Replace @OVMAP6+9L	DZN	1-Jun-79
2)			   PJRST E$$IOV##]	;[1174] INPUT ERROR
2)		ROT	T1,-1		;USUAL WAY TO ADDRESS 1/2 WORD
**************
1)11		PUSHJ	P,ER.IOV##	;INPUT ERROR
1)		MOVEM	T1,MAPVER
Digital Equipment Corporation       28-AUG-79    Page 119
PCO Log Report


****
2)11	;**;[1174] Replace @RDVER+15L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174] INPUT ERROR
2)		MOVEM	T1,MAPVER
**************
1)11		PUSH	P,[LC]		;CHAN #
1)		.ERR.	(ST,,V%L,L%F,S%F,ILC)
****
2)11	;**;[1174] Replace @RDVER1+23L	DZN	31-May-79
2)	E01ILC::PUSH	P,[LC]		;[1174] CHAN #
 
 
2)		.ERR.	(ST,,V%L,L%F,S%F,ILC)
**************
1)23		JRST	TTLTTF		;NO, MUST BE ERROR
1)	;CONTINUED ON NEXT PAGE
****
2)23	;**;[1174] Replace @TTLBLK+33L	DZN	31-May-79
2)		JRST	E$$TTF		;[1174] NO, MUST BE ERROR
2)	;CONTINUED ON NEXT PAGE
**************
1)32	TTLTTF:	.ERR.	(MS,,V%L,L%W,S%W,TTF,<Too many titles found>)
1)		JRST	NXTSYM		;IGNORE, BUT TRY TO COMPLETE MAP
****
2)32	;**;[1174] Replace @TTLTTF	DZN	31-May-79
2)	E$$TTF::.ERR.	(MS,,V%L,L%W,S%W,TTF,<Too many titles found>) ;[
	1174]
2)		JRST	NXTSYM		;IGNORE, BUT TRY TO COMPLETE MAP
**************
1)34		  PUSHJ	P,NO.COR##	;CANNOT HAPPEN
1)		PUSHJ	P,LOGBCK	;RESTORE MAP DEVICE
****
2)34		  PUSHJ	P,E$$MEF##	;[1174] CANNOT HAPPEN
2)		PUSHJ	P,LOGBCK	;RESTORE MAP DEVICE
**************
1)39		PUSH	P,[MC]		;ERROR, SAVE CHAN
1)		.ERR.	(ST,0,V%L,L%W,S%W,OEM,<Output error on MAP file,
	 file closed, job continuing>)
1)		CLOSE	MC,
****
2)39	;**;[1174] Replace @MAPDMP+3L	DZN	31-May-79
2)	E$$OEM::PUSH	P,[MC]		;ERROR, SAVE CHAN
2)		.ERR.	(ST,,V%L,L%W,S%W,OEM,<Output error on map file,
	file closed, load continuing>) ;[1174]
2)		CLOSE	MC,
**************
1)54		.ERR.	(MS,0,V%L,L%I,S%I,EMS,<End of MAP segment>)
1)	;**;[1100] Delete @MAPRET+2L	DZN	23-May-78
****
2)54	;**;[1174] Replace @MAPRET+1L	DZN	31-May-79
2)	E$$EMS::.ERR.	(MS,0,V%L,L%I,S%I,EMS,<End of MAP segment>) ;[11
Digital Equipment Corporation       28-AUG-79    Page 120
PCO Log Report


	74]
2)	;**;[1100] Delete @MAPRET+2L	DZN	23-May-78
**************
 
Digital Equipment Corporation       28-AUG-79    Page 121
PCO Log Report


[FILCOM]
File 1)	LINK:LNKNEW.MAC[30,4507]  	created: 1437 07-Mar-1978
File 2)	LINK:LNKNEW.MAC[10,645063]	created: 1657 10-Jun-1979
 
1)1	TITLE LNKNEW - LOAD NEW BLOCKS MODULE FOR LINK-10
1)	SUBTTL	D.M.NIXON/DMN/JLd/TXR/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	TITLE LNKNEW - LOAD NEW BLOCKS MODULE FOR LINK
2)	SUBTTL	D.M.NIXON/DMN/JLd/TXR/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	LNKNEW
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKNEW
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1174		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)2	SUBTTL	REVISION HISTORY
****
2)1	SALL
2)2	SUBTTL	REVISION HISTORY
**************
1)3	SUBTTL BLOCK DISPATCH TABLES
****
2)2	;START OF VERSION 4A
2)	;1174	Label and clean up all error messages.
2)3	SUBTTL BLOCK DISPATCH TABLES
**************
1)4		JRST	T.ERR##		;NO, NOT YET AVAILABLE
1)		TRNE	FL,R.LIB	;IN LIBRARY SEARCH MODE?
****
2)4		JRST	E$$IRB##	;[1174] NO, NOT YET AVAILABLE
2)		TRNE	FL,R.LIB	;IN LIBRARY SEARCH MODE?
**************
1)6	T.1001==T.ERR##				;ILLEGAL IF NOT THERE
1)	> ;END IFE .NWBLK
****
2)6	T.1001==E$$IRB##			;[1174] ILLEGAL IF NOT T
	HERE
2)	> ;END IFE .NWBLK
Digital Equipment Corporation       28-AUG-79    Page 122
PCO Log Report


**************
1)8	T.1002=T.ERR##				;ERROR UNLESS FIXED
1)	> ;END IFE .NWBLK
****
2)8	T.1002==E$$IRB##		;[1174] ERROR UNLESS FIXED
2)	> ;END IFE .NWBLK
**************
1)12	T.1003==T.ERR##
1)	>
****
2)12	T.1003==E$$IRB##
2)	>
 
 
**************
1)15		JRST	T.ERR##		;SO WARN THE USER
1)	;HERE IF /SEG:HIGH. MAKE SURE HIGH SEG EXISTS, THEN FAKE THE RC
	TABLES.
****
2)15		JRST	E$$IRB##	;[1174] SO WARN THE USER
2)	;HERE IF /SEG:HIGH. MAKE SURE HIGH SEG EXISTS, THEN FAKE THE RC
	TABLES.
**************
1)20		JRST	TELLOD		;YES, BROADCAST ITS NAME AND RET
	URN
1)		PUSH	P,W2		;SAVE OVER CALLS TO LNKOLD
****
2)20	;**;[1174] Replace @NAMRED+1L	DZN	31-May-79
2)		JRST	E01LMN		;[1174] YES, BROADCAST ITS NAME
	AND RETURN
2)		PUSH	P,W2		;SAVE OVER CALLS TO LNKOLD
**************
1)20	TELLOD:	.ERR.	(MS,.EC,V%L,L%I5,S%I,LMN)	;TELL WHAT WE'RE
	 LOADING
1)		.ETC.	(LSP,.EP,,,,NAMPTR)
****
2)20	;**;[1174] Replace @TELLOD	DZN	31-May-79
2)	E01LMN::.ERR.	(MS,.EC,V%L,L%I5,S%I,LMN) ;[1174] TELL WHAT WE'R
	E LOADING
2)		.ETC.	(LSP,.EP,,,,NAMPTR)
**************
1)23		  JRST	T1042E		;ERROR - NOT ENOUGH DATA WORDS
1)	T1042A:	MOVEI	T2,R.LEN	;LENGTH OF A REQUEST/REQUIRE BLO
	CK
****
2)23	;**;[1174] Replace @T.1043+3L	DZN	1-Jun-79
2)		  JRST	E$$IRR		;[1174] ERROR - NOT ENOUGH DATA
	WORDS
2)	T1042A:	MOVEI	T2,R.LEN	;LENGTH OF A REQUEST/REQUIRE BLO
	CK
**************
Digital Equipment Corporation       28-AUG-79    Page 123
PCO Log Report


1)23		  JRST	T1042E		;ERROR
1)		MOVEM	W1,R.PPN(T1)	;REMEMBER IT
****
2)23	;**;[1174] Replace @T.1042A+7L	DZN	1-Jun-79
2)		  JRST	E$$IRR		;[1174] ERROR
2)		MOVEM	W1,R.PPN(T1)	;REMEMBER IT
**************
1)23		  JRST	T1042E		;NONE THERE, COUNT LIED
1)		MOVEM	W1,R.SFD(T2)	;STORE THIS SFD
****
2)23	;**;[1174] Replace @T1042L+1L	DZN	1-Jun-79
2)		  JRST	E$$IRR		;[1174] NONE THERE, COUNT LIED
2)		MOVEM	W1,R.SFD(T2)	;STORE THIS SFD
**************
1)23	T1042E:	.ERR.	(MS,.EC,V%L,L%W,S%W,IPL,<Illegal request block i
	n module >)
1)	TYPFIL:	.ETC.	(LSP,.EP!.EC,,,,NAMPTR)
1)		.ETC.	(STR,.EC,,,,,< from >)
1)		.ETC.	(FSP,,,,,DC)
1)		JRST	LOAD##		;NOT ALWAYS A FATAL ERROR
****
2)23	;**;[1174] Replace @T1042E	DZN	1-Jun-79
2)	E$$IRR::.ERR.	(MS,.EC,V%L,L%W,S%W,IRR,<Illegal request/require
	 block>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETNMF##) ;[1174]
2)		JRST	LOAD##		;NOT ALWAYS A FATAL ERROR
**************
1)26		  PUSHJ	P,NO.COR##	;CAN'T???
1)		JRST	T1044P		;NOW GO PUT THE SYMBOL INTO THE
	FILE
****
 
 
2)26		  PUSHJ	P,E$$MEF##	;[1174] CAN'T???
2)		JRST	T1044P		;NOW GO PUT THE SYMBOL INTO THE
	FILE
**************
1)27	T.1060:	JRST	T.ERR##		;SHOULD PUT INFO IN LS FOR MAP
1)	> ;END IFN .NWBLK
****
2)27	T.1060:	JRST	E$$IRB##	;[1174] SHOULD PUT INFO IN LS FO
	R MAP
2)	> ;END IFN .NWBLK
**************
1)32		  JRST	TOSHRT		;WORD COUNT WAS WRONG
1)		AOBJN	WC,DRELN	;GO RELOCATE UNLESS NEED NEW SUB
	-BLOCK
****
2)32	;**;[1174] Replace @D.REL1+3L	DZN	1-Jun-79
2)		  JRST	E$$PEF		;[1174] WORD COUNT WAS WRONG
2)		AOBJN	WC,DRELN	;GO RELOCATE UNLESS NEED NEW SUB
Digital Equipment Corporation       28-AUG-79    Page 124
PCO Log Report


	-BLOCK
**************
1)32	;	JRST	RELERR		;RELOCATED TO SEGMENT NOT SET UP
1)	;********* ADD MORE CODE HERE ********************************
1)	RELERR:	.ERR.	(MS,.EC,V%L,L%F,S%F,IRC,<Illegal relocation coun
	ter in module >)
1)		.ETC.	(JMP,,,,,TYPFIL)
1)	> ;END IFN .NWBLK
****
2)32	;**;[1174] Replace @DRELN+4L	DZN	1-Jun-79
2)	;	JRST	E$$IRC		;[1174] RELOCATED TO SEGMENT NOT
	 SET UP
2)	;********* ADD MORE CODE HERE ********************************
2)	E$$IRC::.ERR.	(MS,.EC,V%L,L%F,S%F,IRC,<Illegal relocation coun
	ter>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETNMF##)
2)	> ;END IFN .NWBLK
**************
1)33		  JRST	TOSHRT		;PREMATURE END OF FILE
1)		AOJA	WC,CPOPJ1	;COUNT WORD & GIVE GOOD RETURN
****
2)33	;**;[1174] Replace @D.GET1+3L	DZN	1-Jun-79
2)		  JRST	E$$PEF		;[1174] PREMATURE END OF FILE
2)		AOJA	WC,CPOPJ1	;COUNT WORD & GIVE GOOD RETURN
**************
1)33	TOSHRT:	.ERR.	(MS,.EC,V%L,L%F,S%W,PEF,<Premature end of file i
	n >)
1)		.ETC.	(FSP,,,,,DC)
****
2)33	;**;[1174] Replace @TOSHRT	DZN	1-Jun-79
2)	E$$PEF::.ERR.	(MS,.EC,V%L,L%F,S%W,PEF,<Premature end of file f
	rom file >) ;[1174]
2)		.ETC.	(FSP,,,,,DC)
**************
 
Digital Equipment Corporation       28-AUG-79    Page 125
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 2159 22-May-1979
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1406 11-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	23-May-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	10-Jun-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978, 1979
1)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
****
2)1	;COPYRIGHT (C) 1973, 1979
2)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
**************
1)1	DECEVR==1170		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)2	SUBTTL	REVISION HISTORY
****
2)1	SALL
2)2	SUBTTL	REVISION HISTORY
**************
1)5	COMMENT	\
****
2)4	;1174	Label and clean up all error messages.
2)5	COMMENT	\
**************
1)8		JRST	T.ERR##		;NO, GIVE ERROR MESSAGE
1)		HRREI	T2,-<700+FDISPL>(T1)	;GET OFFSET TYPE
****
2)8		JRST	E$$IRB##	;[1174] NO, GIVE ERROR MESSAGE
2)		HRREI	T2,-<700+FDISPL>(T1)	;GET OFFSET TYPE
**************
1)8		JRST	T.ERR##		;NO, ILLEGAL
1)9	;HERE IF IN LIBRARY SEARCH MODE - TEST FOR BLOCK TYPE 4, 6, 14
****
2)8		JRST	E$$IRB##	;[1174] NO, ILLEGAL
2)9	;HERE IF IN LIBRARY SEARCH MODE - TEST FOR BLOCK TYPE 4, 6, 14
**************
1)15		JUMPL	P3,T1HSTL	;ERROR
1)		CAMLE	P2,HL.S2	;RESET HIGHEST LOCATION COUNTER
****
2)15	;**;[1174] Replace @T.1H+4L	DZN	1-Jun-79
2)		JUMPL	P3,E$$STL	;[1174] ERROR
Digital Equipment Corporation       28-AUG-79    Page 126
PCO Log Report


2)		CAMLE	P2,HL.S2	;RESET HIGHEST LOCATION COUNTER
**************
1)15	T1HSTL:	.ERR.	(MS,,V%L,L%F,S%F,STL,<High segment code too long
	>)
1)16	;HERE IF FIRST WORD IS A SYMBOL
****
2)15	;**;[1174] Replace @T1HSTL	DZN	1-Jun-79
2)	E$$STL::.ERR.	(MS,.EC,V%L,L%F,S%F,STL,<High segment code too l
	ong>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)16	;HERE IF FIRST WORD IS A SYMBOL
**************
1)16		JRST	T.ERR##		;GIVE ERROR MESSAGE
 
 
1)		PUSHJ	P,R50T6		;SIXBITIZE IT
****
2)16		JRST	E$$IRB##	;[1174] GIVE ERROR MESSAGE
2)		PUSHJ	P,R50T6		;SIXBITIZE IT
**************
1)17		.ERR.	(MS,.EC,V%L,L%F,S%F,DSC,<Data store to common >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)
****
2)17	;**;[1174] Replace @T.1SE+2L	DZN	1-Jun-79
2)	E$$DSC::.ERR.	(MS,.EC,V%L,L%F,S%F,DSC,<Data store to common >)
	 ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)
**************
1)17		.ERR.	(MS,.EC,V%L,L%F,S%F,DSL,<Data store to location
	>)
1)	T.1OVF:	.ETC.	(OCT,.EC!.EP,,,,P3)
****
2)17	;**;[1174] Replace @T.1OVE+3L	DZN	1-Jun-79
2)	E$$DSL::.ERR.	(MS,.EC,V%L,L%F,S%F,DSL,<Data store to location
	>) ;[1174]
2)	T.1OVF:	.ETC.	(OCT,.EC!.EP,,,,P3)
**************
1)17		.ETC.	(STR,.EC,,,,,< for >)
1)		.ETC.	(SBX,.EC!.EP,,,,PRGNAM)
1)		.ETC.	(STR,.EC,,,,,< in >)
1)		.ETC.	(FSP,,,,,DC)
1)		JRST	T.0C		;GET RID OF BLOCK
1)	T.1OVW:	SOS	LNKMAX		;PUT LINK # BACK
1)		.ERR.	(MS,.EC,V%L,L%F,S%W,DSL)
1)		.ETC.	(JMP,.EC,,,,T.1OVF)
****
2)17	;**;[1174] Replace @T.1OVG+2L	DZN	1-Jun-79
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		JRST	T.0C		;GET RID OF BLOCK
2)	T.1OVW:	SOS	LNKMAX		;PUT LINK # BACK
2)	E01DSL::.ERR.	(MS,.EC,V%L,L%F,S%W,DSL) ;[1174]
Digital Equipment Corporation       28-AUG-79    Page 127
PCO Log Report


2)		.ETC.	(JMP,.EC,,,,T.1OVF)
**************
1)17		.ERR.	(MS,.EC,V%L,L%F,S%F,CNW)
1)		.ETC.	(STR,,,,,,<T.1UN+1>)
****
2)17	;**;[1174] Replace @T.1UN+1L	DZN	1-Jun-79
2)	E01CNW::.ERR.	(MS,.EC,V%L,L%F,S%F,CNW) ;[1174]
2)		.ETC.	(STR,,,,,,<T.1UN+1>)
**************
1)20	T.2TAB::T.2R5U			; 0 - 00 NAME (SHOULD NEVER HAPP
	EN)
1)		SY.GS			; 1 - 04 GLOBAL DEFINITION
****
2)20	;**;[1174] Replace @T.2TAB	DZN	1-Jun-79
2)	T.2TAB::E$$URC			;[1174]  0 - 00 NAME (SHOULD NEV
	ER HAPPEN)
2)		SY.GS			; 1 - 04 GLOBAL DEFINITION
**************
1)20		T.2R5U			; 4 - 20
1)		SY.DGR			; 5 - 24 GLOBAL DEFINITION DEFER
	ED RIGHT HALF
1)		T.2R5U			; 6 - 30
1)		T.2R5U			; 7 - 34
1)		T.2R5U			;10 - 40
1)		SY.GSS			;11 - 44 GLOBAL DEF. (SUPPRESSED
	) ! LEFT DEFERED
1)		SY.LSS			;12 - 50 LOCAL DEF. (SUPPRESSED)
 
 
1)		T.2R5U			;13 - 54
1)		SY.RQ			;14 - 60 GLOBAL REQUEST
1)		SY.DGL			;15 - 64 GLOBAL DEFERED DEF (RH)
	 SUPP. ! LEFT HALF
1)		T.2R5U			;16 - 70
1)	;	T.2R5U			;17 - 74
1)	T.2R5U:	.ERR.	(MS,.EC,V%L,L%F,S%I,URC,<Unknown radix-50 symbol
	 code  >)
1)		.ETC.	(OCT,.EC!.EP,,,,P1)
****
2)20		E$$URC			;[1174]  4 - 20
2)		SY.DGR			; 5 - 24 GLOBAL DEFINITION DEFER
	ED RIGHT HALF
2)		E$$URC			;[1174]  6 - 30
2)		E$$URC			;[1174]  7 - 34
2)		E$$URC			;[1174] 10 - 40
2)		SY.GSS			;11 - 44 GLOBAL DEF. (SUPPRESSED
	) ! LEFT DEFERED
2)		SY.LSS			;12 - 50 LOCAL DEF. (SUPPRESSED)
2)		E$$URC			;[1174] 13 - 54
2)		SY.RQ			;14 - 60 GLOBAL REQUEST
2)		SY.DGL			;15 - 64 GLOBAL DEFERED DEF (RH)
Digital Equipment Corporation       28-AUG-79    Page 128
PCO Log Report


	 SUPP. ! LEFT HALF
2)		E$$URC			;[1174] 16 - 70
2)	;	E$$URC			;[1174] 17 - 74
2)	;**;[1174] Replace @T.2R5U	DZN	1-Jun-79
2)	E$$URC::.ERR.	(MS,.EC,V%L,L%F,S%I,URC,<Unknown radix-50 symbol
	 code >) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,P1)
**************
1)20		.ETC.	(STR,.EC,,,,,< in >)
1)		.ETC.	(SBX,.EC!.EP,,,,PRGNAM)
1)		.ETC.	(STR,.EC,,,,,< in >)
1)		.ETC.	(FSP,,,,,DC)
1)		POPJ	P,		;BUT CONTINUE
****
2)20		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		POPJ	P,		;BUT CONTINUE
**************
1)22	;CODE INLINE FOR EXTRA SPEED SINCE LINK-10 SPENDS ABOUT 10% OF
1)	;ITS TIME IN THIS LOOP.
****
2)22	;CODE INLINE FOR EXTRA SPEED SINCE LINK SPENDS ABOUT 10% OF
2)	;ITS TIME IN THIS LOOP.
**************
1)26		JRST	T.5SER		;NO
1)		MOVE	T2,LSYM		;GET CURRENT VALUE
****
2)26	;**;[1174] Replace @SY.BH+11L	DZN	1-Jun-79
2)		JRST	E02SFU		;[1174] NO
2)		MOVE	T2,LSYM		;GET CURRENT VALUE
**************
1)27		JRST	SY.DG2		;[567] INCONSISTENT SYMBOL DEFIN
	ITION
1)	;HERE TO PUT REQUEST IN GLOBAL TABLE
****
2)27	;**;[1174] Replace @SY.DGR+11L	DZN	1-Jun-79
2)		JRST	E$$ISD		;[1174] INCONSISTENT SYMBOL DEFI
	NITION
2)	;HERE TO PUT REQUEST IN GLOBAL TABLE
**************
1)28		JRST	SY.DG2		;YES, SECOND PARTIAL DEFINITION
1)		MOVEI	T1,.L		;NEED 1 EXTRA TRIPLET
****
 
 
2)28	;**;[1174] Replace @SY.DG1+6L	DZN	1-Jun-79
2)		JRST	E$$ISD		;[1174] YES, SECOND PARTIAL DEFI
	NITION
2)		MOVEI	T1,.L		;NEED 1 EXTRA TRIPLET
**************
1)28	SY.DG2:	.ERR.	(MS,.EC,V%L,L%W,S%W,ISD,<Inconsistent symbol def
	inition for >)
Digital Equipment Corporation       28-AUG-79    Page 129
PCO Log Report


1)		.ETC.	(SBX,.EP,,,,W2)
1)		SETZM	LSTSYM		;SO WE IGNORE SYMBOL FIXUP FOLLO
	WING
****
2)28	;**;[1174] Replace @SY.DG2	DZN	1-Jun-79
2)	E$$ISD::.ERR.	(MS,.EC,V%L,L%W,S%W,ISD,<Inconsistent symbol def
	inition for symbol >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		SETZM	LSTSYM		;SO WE IGNORE SYMBOL FIXUP FOLLO
	WING
**************
1)31		.ERR.	(MS,,V%L,L%F,S%F,ESN)>
1)		HRRZ	W3,T2		;POINT TO SYMBOL
****
2)31	;[1174] Replace @SYADSS-2L	DZN	1-Jun-79
2)	E01ESN::.ERR.	(MS,,V%L,L%F,S%F,ESN) ;[1174]
2)	>
2)		HRRZ	W3,T2		;POINT TO SYMBOL
**************
1)35		JRST	SY.RUH		;NOT THE RIGHT SORT OF EXTENDED
	TRIPLET
1)		TXNN	W1,S.FXP	;IS THIS THE ONE
****
2)35	;**;[1174] Replace @SY.RUC+2L	DZN	1-Jun-79
2)		JRST	E02CNW		;[1174] NOT THE RIGHT SORT OF EX
	TENDED TRIPLET
2)		TXNN	W1,S.FXP	;IS THIS THE ONE
**************
1)35	SY.RUH:	.ERR.	(MS,.EC,V%L,L%F,S%F,CNW)
1)		.ETC.	(STR,,,,,,<SY.RUH>)
****
2)35	;**;[1174] Replace @SY.RUH	DZN	1-Jun-79
2)	E02CNW::.ERR.	(MS,.EC,V%L,L%F,S%F,CNW) ;[1174]
2)		.ETC.	(STR,,,,,,<SY.RUH>)
**************
1)36		.ERR.	(MS,.EC,V%L,L%F,S%F,HCL,<High segment code not a
	llowed in an overlay link in module >)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)	T.3C:
****
2)36	;**;[1174] Replace @T.3+5L	DZN	1-Jun-79
2)	E$$HCL::.ERR.	(MS,.EC,V%L,L%F,S%F,HCL,<High segment code not a
	llowed in an overlay link>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)	T.3C:
**************
1)37		.ERR.	(MS,0,V%L,L%I,S%I,SFU)
1)		JRST	LOAD##		;TRY TO CONTINUE
****
2)37	;**;[1174] Replace @T.3SER+1L	DZN	1-Jun-79
Digital Equipment Corporation       28-AUG-79    Page 130
PCO Log Report


2)	E01SFU::.ERR.	(MS,0,V%L,L%I,S%I,SFU) ;[1174]
2)		JRST	LOAD##		;TRY TO CONTINUE
**************
1)40	T.3TSO:	.ERR.	(MS,.EC,V%L,L%F,S%F,TSO,<Cannot load a two segme
	nt module in one segment >)
1)		.ETC.	(FSP,0,,,,DC)
1)41	;HERE IF LOW SEGMENT LENGTH GIVEN (FORTRAN-10)
****
 
 
2)41	;HERE IF LOW SEGMENT LENGTH GIVEN (FORTRAN-10)
**************
1)41		PUSHJ	P,T.3F		;NO, GIVE FATAL ERROR
1)		HRRZM	W1,SO.S2	;OFFSET FOR RELOCATION
****
2)41	;**;[1174] Replace @T.3L+2L	DZN	1-Jun-79
2)		PUSHJ	P,E$$HSL	;[1174] NO, GIVE FATAL ERROR
2)		HRRZM	W1,SO.S2	;OFFSET FOR RELOCATION
**************
1)42		JRST	T.3F		;TOO LOW
1)		MOVEI	T1,.JBHDA	;[1170] SIZE OF VESTIGIAL JOBDAT
****
2)42	;**;[1174] Replace @SETRC+12L	DZN	1-Jun-79
2)		JRST	E$$HSL		;[1174] TOO LOW
2)		MOVEI	T1,.JBHDA	;[1170] SIZE OF VESTIGIAL JOBDAT
**************
1)44		  PUSHJ	P,NO.COR##
1)		MOVNI	T1,2*.IPS	;BUT LC.AB WAS INCREMENTED
****
2)44		  PUSHJ	P,E$$MEF##	;[1174]
2)		MOVNI	T1,2*.IPS	;BUT LC.AB WAS INCREMENTED
**************
1)44	T.3F:	.ERR.	(MS,,V%L,L%F,S%F,HSL,<Attempt to set high segmen
	t origin too low>)
1)45	SUBTTL	BLOCK TYPE 4 - ENTRIES
****
2)44	;**;[1174] Replace @T.3F	DZN	1-Jun-79
2)	E$$HSL::.ERR.	(MS,.EC,V%L,L%F,S%F,HSL,<Attempt to set high seg
	ment origin too low>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)45	SUBTTL	BLOCK TYPE 4 - ENTRIES
**************
1)47			JRST	ILIERR]
1)		TLNE	W1,-1		;MAKE SURE VALID
1)		PUSHJ	P,T.5W1		;NOT
1)		TLNE	W2,-1
1)		PUSHJ	P,T.5W2		;SAME FOR W2
1)		SKIPE	W3,LOD37	;COBOL LOCAL SYMBOLS
****
2)47	;**;[1174] Replace @T.5A+6L	DZN	1-Jun-79
2)			 JRST	E$$RBS]		;[1174]
Digital Equipment Corporation       28-AUG-79    Page 131
PCO Log Report


2)		TLNE	W1,-1		;MAKE SURE VALID
2)	;**;[1174] Replace @T.5A+8L	DZN	1-Jun-79
2)		PUSHJ	P,E$$PBI	;[1174] NOT
2)		TLNE	W2,-1
2)		PUSHJ	P,E01PBI	;[1174] SAME FOR W2
2)		SKIPE	W3,LOD37	;COBOL LOCAL SYMBOLS
**************
1)49		JRST	T.5SER		;ERROR
1)		MOVE	T2,LSYM		;POINT TO END (NEXT FILE)
****
2)49	;**;[1174] Replace @T.5END+7L	DZN	1-Jun-79
2)		JRST	E02SFU		;[1174] ERROR
2)		MOVE	T2,LSYM		;POINT TO END (NEXT FILE)
**************
1)49		JRST	T.5SER
1)		TXNN	T2,S.SEG	;SEG BLOCK?
****
 
 
2)49	;**;[1174] Replace @T.5LP+7L	DZN	1-Jun-79
2)		JRST	E02SFU		;[1174]
2)		TXNN	T2,S.SEG	;SEG BLOCK?
**************
1)55	T.5SER:	.ERR.	(MS,0,V%L,L%W,S%W,SFU)	;
1)		JRST	T.5RET		;TRY TO CONTINUE
1)	;HERE WHEN PROGRAM BREAK IS INCORRECT, ZERO BREAK AND CONTINUE
1)	T.5W1:	.ERR.	(MS,.EC,V%L,L%W,S%W,PBI,<Program break >)
1)		.ETC.	(OCT,.EP!.EC,,,,W1)
1)		.ETC.	(STR,.EC,,,,,< invalid in >)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)		SETZ	W1,		;CLEAR AND CONTINUE
1)		POPJ	P,
1)	T.5W2:	.ERR.	(MS,.EC,V%L,L%W,S%W,PBI)
1)		.ETC.	(OCT,.EP!.EC,,,,W2)
1)		.ETC.	(STR,.EC,,,,,< invalid in >)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)		SETZ	W2,		;CLEAR AND CONTINUE
****
2)55	;**;[1174] Replace @T.5SER	DZN	1-Jun-79
2)	E02SFU::.ERR.	(MS,0,V%L,L%W,S%W,SFU)	;[1174]
2)		JRST	T.5RET		;TRY TO CONTINUE
2)	;HERE WHEN PROGRAM BREAK IS INCORRECT, ZERO BREAK AND CONTINUE
2)	;**;[1174] Replace @T.5W1	DZN	1-Jun-79
2)	E$$PBI::.ERR.	(MS,.EC,V%L,L%W,S%W,PBI,<Program break >) ;[1174
	]
2)		.ETC.	(OCT,.EP!.EC,,,,W1)
2)		.ETC.	(STR,.EC,,,,,< invalid>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		SETZ	W1,		;CLEAR AND CONTINUE
2)		POPJ	P,
2)	;**;[1174] Replace @T.5W2	DZN	1-Jun-79
Digital Equipment Corporation       28-AUG-79    Page 132
PCO Log Report


2)	E01PBI::.ERR.	(MS,.EC,V%L,L%W,S%W,PBI) ;[1174]
2)		.ETC.	(OCT,.EP!.EC,,,,W2)
2)		.ETC.	(STR,.EC,,,,,< invalid>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		SETZ	W2,		;CLEAR AND CONTINUE
**************
1)56		PUSHJ	P,EOFTS##	;NO, PREMATURE END OF MODULE
1)		TRNE	FL,R.FHS	;NEED TO ADJUST THE RELOC TABLES
	?
****
2)56	;**;[1174] Replace @T.6+1L	DZN	30-May-79
2)		PUSHJ	P,E$$NEB##	;[1174] NO, PREMATURE END OF MOD
	ULE
2)		TRNE	FL,R.FHS	;NEED TO ADJUST THE RELOC TABLES
	?
**************
1)56			JRST	ILIERR]
1)		PUSH	P,W1		;SAVE VALUE
****
2)56	;**;[1174] Replace @T.6+6L	DZN	1-Jun-79
2)			 JRST	E$$RBS]		;[1174]
2)		PUSH	P,W1		;SAVE VALUE
**************
1)56		.ERR.	(MS,.EC,V%L,L%I5,S%I,LMN,<Loading module >)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
****
2)56	;**;[1174] Replace @T.OK+6L	DZN	1-Jun-79
2)	E$$LMN::.ERR.	(MS,.EC,V%L,L%I5,S%I,LMN,<Loading module >) ;[11
	74]
 
 
2)		.ETC.	(SBX,.EP,,,,PRGNAM)
**************
1)57		JRST	ERRCCD		;[1120] NO--CPU CONFLICT DETECTE
	D
1)		LDB	T1,[POINT 12,(P),17] ;[1120] NOW GET PROCESSOR T
	YPE
****
2)57	;**;[1174] Replace @??????+1P11L	DZN	1-Jun-79
2)		JRST	E$$CCD		;[1174] NO--CPU CONFLICT DETECTE
	D
2)		LDB	T1,[POINT 12,(P),17] ;[1120] NOW GET PROCESSOR T
	YPE
**************
1)57	ERRCCD:	.ERR.	(MS,.EC,V%L,L%F,S%F,CCD,<CPU conflict detected i
	n module >)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)58	;HERE TO HANDLE BLANK COMMON ARG IN TITLE BLOCK
****
2)57	;**;[1174] Replace @ERRCCD	DZN	1-Jun-79
2)	E$$CCD::.ERR.	(MS,.EC,V%L,L%F,S%F,CCD,<CPU conflict>) ;[1174]
Digital Equipment Corporation       28-AUG-79    Page 133
PCO Log Report


2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)58	;HERE TO HANDLE BLANK COMMON ARG IN TITLE BLOCK
**************
1)61		.ERR.	(MS,.EC,V%L,L%F,S%F,IBC,<Attempt to increase siz
	e of blank common from >)
1)		.ETC.	(DEC,.EC!.EP,,,,T2)
1)		.ETC.	(STR,.EC,,,,,< to >)
1)		.ETC.	(DEC,.EP,,,,T1)
1)62	;HERE TO PUT THE REL FILE DESCRIPTOR INFO INTO THE LS AREA
****
2)61	;**;[1174] Replace @T.6BC+3L	DZN	1-Jun-79
2)	E$$AIC::.ERR.	(MS,.EC,V%L,L%F,S%F,AIC,<Attempt to increase siz
	e of >) ;[1174]
2)		.ETC.	(STR,.EC,,,,,<blank common>) ;[1174]
2)	.ETAIC:	.ETC.	(STR,.EC,,,,,< from >) ;[1174]
2)		.ETC.	(DEC,.EC!.EP,,,,T2)
2)		.ETC.	(STR,.EC,,,,,< to >)
2)		.ETC.	(DEC,.EC!.EP,,,,T1) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)62	;HERE TO PUT THE REL FILE DESCRIPTOR INFO INTO THE LS AREA
**************
1)64			JRST	ILIERR]
1)		TRNE	FL,R.LSO!R.HSO	;SELECTIVE LOADING?
****
2)64	;**;[1174] Replace @T.7+4L	DZN	1-Jun-79
2)			 JRST	E$$RBS]		;[1174]
2)		TRNE	FL,R.LSO!R.HSO	;SELECTIVE LOADING?
**************
1)64		JRST	T.ERR##		;GIVE ERROR MESSAGE
1)		PUSHJ	P,R50T6		;SIXBITIZE IT
****
2)64		JRST	E$$IRB##	;[1174] GIVE ERROR MESSAGE
2)		PUSHJ	P,R50T6		;SIXBITIZE IT
**************
1)66		  JRST	T.10TS		;SHOULD NOT HAPPEN
1)		HRRZ	W3,W1		;[565] VALUE OF SYMBOL
****
2)66	;**;[1174] Replace @T.10L+1L	DZN	1-Jun-79
2)		  JRST	[MOVEI T1,10		;[1174] BLOCK TYPE 10 TO
	O SHORT
2)			 JRST E$$RBS]		;[1174]
2)		HRRZ	W3,W1		;[565] VALUE OF SYMBOL
**************
1)66	T.10TS:	.ERR.	(MS,.EC,V%L,L%W,S%W,RBS,<REL Block Type >)
 
 
1)		.ETC.	(OCT,.EC,,,,10)
1)		.ETC.	(STR,.EC,,,,,< too short for >)
1)		.ETC.	(FSP,,,,,DC)
1)		JRST	LOAD##		;TRY TO CONTINUE
1)67	SUBTTL	BLOCK TYPE 11 - POLISH FIXUPS (FAIL)
Digital Equipment Corporation       28-AUG-79    Page 134
PCO Log Report


****
2)67	SUBTTL	BLOCK TYPE 11 - POLISH FIXUPS (FAIL)
**************
1)68		JRST	T11IPX		;[1166] NO, ERROR
1)		MOVEM	P4,RC.CUR	;[1166] SET FOR NEXT WORD
****
2)68	;**;[1174] Replace @T.11+1P9L	DZN	1-Jun-79
2)		JRST	E$$IPX		;[1174] NO, ERROR
2)		MOVEM	P4,RC.CUR	;[1166] SET FOR NEXT WORD
**************
1)68		JRST	T11IPX		;INVALID
1)		MOVEM	T1,RC.CUR	;SET FOR NEXT READ
1)		JUMPE	P4,T11IPX	;[1166] PSECT INDEX ILLEGAL IF 1
	ST BYTE WASN'T
1)		HRRO	P4,P4
****
2)68	;**;[1174] Replace @T11RD2+17L	DZN	1-Jun-79
2)		JRST	E$$IPX		;[1174] INVALID
2)		MOVEM	T1,RC.CUR	;SET FOR NEXT READ
2)		JUMPE	P4,E$$IPX	;[1174] PSECT INDEX ILLEGAL IF 1
	ST BYTE WASN'T
2)		HRRO	P4,P4
**************
1)69		JRST	T11IPX		;INVALID
1)		MOVEM	T2,RC.CUR	;SET FOR NEXT READ
1)		JUMPE	P4,T11IPX	;[1166] ENFORCE DEFAULT PSECT IN
	DEX FIRST BYTE
1)		HRRO	P4,P4		;SIGNAL MIGHT TAKE TWO WORDS
****
2)69	;**;[1174] Replace @T11RHS+14L	DZN	1-Jun-79
2)		JRST	E$$IPX		;[1174] INVALID
2)		MOVEM	T2,RC.CUR	;SET FOR NEXT READ
2)		JUMPE	P4,E$$IPX	;[1174] ENFORCE DEFAULT PSECT IN
	DEX FIRST BYTE
2)		HRRO	P4,P4		;SIGNAL MIGHT TAKE TWO WORDS
**************
1)69	;**;[1153] Change @ T11IPX	JNG	12-Apr-79
1)	T11IPX:	.ERR.	(MS,,V%L,L%F,S%F,IPX,<Invalid PSECT index>)
1)70	;HERE TO FIND THE STORE OPERATOR AND CHECK TO SEE IF WE WANT IT.
****
2)69	;**;[1174] Replace @T11IPX	DZN	1-Jun-79
2)	E$$IPX::.ERR.	(MS,.EC,V%L,L%F,S%F,IPX,<Invalid psect index>) ;
	[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)70	;HERE TO FIND THE STORE OPERATOR AND CHECK TO SEE IF WE WANT IT.
**************
1)70		JRST	T11SPE		;NO
1)	;FALL THROUGH TO NEXT PAGE
****
2)70	;**;[1174] Replace @T.11SP+8L	DZN	1-Jun-79
2)		JRST	E$$ISO		;[1174] NO
Digital Equipment Corporation       28-AUG-79    Page 135
PCO Log Report


2)	;FALL THROUGH TO NEXT PAGE
**************
1)72	T11SPE:	.ERR.	(MS,.EC,V%L,L%F,S%F,ISO,<Invalid store operator
	>)
1)		.ETC.	(OCT,.EP,,,,T1)
1)74	;HERE IF GLOBAL SYMBOL NOT IN GLOBAL SYMBOL TABLE YET
 
 
****
2)72	;**;[1174] Replace @T11SPE	DZN	1-Jun-79
2)	E$$ISO::.ERR.	(MS,.EC,V%L,L%F,S%F,ISO,<Invalid polish store op
	erator >) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,T1) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)74	;HERE IF GLOBAL SYMBOL NOT IN GLOBAL SYMBOL TABLE YET
**************
1)75		JRST	T11DFE		;PRIMARY OR NO FLAGS SET
1)		TXNN	W1,S.FXP	;IS THIS THE ONE
****
2)75	;**;[1174] Replace @T.11DF+2L	DZN	1-Jun-79
2)		JRST	E$$ISP##	;[1174] PRIMARY OR NO FLAGS SET
2)		TXNN	W1,S.FXP	;IS THIS THE ONE
**************
1)75		JRST	T11DFE
1)		HRLI	W1,(FP.SGN!FP.SYM!FP.PTR!FP.POL)	;
****
2)75	;**;[1174] Replace @T.11DF+6L	DZN	1-Jun-79
2)		JRST	E$$ISP##	;[1174]
2)		HRLI	W1,(FP.SGN!FP.SYM!FP.PTR!FP.POL)	;
**************
1)75	T11DFE:	.ERR.	(MS,,V%L,L%F,S%F,ISP)
1)76	;HERE TO EVALUATE POLISH FIXUP
****
2)75	;**;[1174] Delete @T11DFE	DZN	1-Jun-79
2)76	;HERE TO EVALUATE POLISH FIXUP
**************
1)76		JRST	T11RPE
1)		PUSH	W3,W1		;SAVE OPERATOR ON STACK
****
2)76	;**;[1174] Replace @T.11RP+9L	DZN	1-Jun-79
2)		JRST	E$$IPO		;[1174]
2)		PUSH	W3,W1		;SAVE OPERATOR ON STACK
**************
1)76	T11RPE:	.ERR.	(MS,.EC,V%L,L%F,S%F,IPO,<Invalid polish operator
	 >)
1)		.ETC.	(OCT,.EP,,,,W1)
1)77	;HANDLE OPERANDS
****
2)76	;**;[1174] Replace @T11RPE	DZN	1-Jun-79
2)	E$$IPO::.ERR.	(MS,.EC,V%L,L%F,S%F,IPO,<Invalid polish operator
	 >) ;[1174]
Digital Equipment Corporation       28-AUG-79    Page 136
PCO Log Report


2)		.ETC.	(OCT,.EC!.EP,,,,W1) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)77	;HANDLE OPERANDS
**************
1)80		 JRST	ILIERR
1)		MOVEI	T1,(W1)		;NUMBER OF WORDS TO SKIP
****
2)80	;**;[1174] Replace @SKENEW+3L	DZN	1-Jun-79
2)		 JRST	E$$RBS		;[1174]
2)		MOVEI	T1,(W1)		;NUMBER OF WORDS TO SKIP
**************
1)81		JRST	T11STE		;NO
1)		ILDB	T2,W2		;[572]  GET CORE ADDR OR GS POIN
	TER
****
2)81	;**;[1174] Replace @T.11ST	DZN	1-Jun-79
2)		JRST	E01IPO		;[1174] NO
 
 
2)		ILDB	T2,W2		;[572]  GET CORE ADDR OR GS POIN
	TER
**************
1)81	T11STE:	.ERR.	(MS,.EC,V%L,L%F,S%F,IPO)
1)		.ETC.	(OCT,.EP,,,,T2)
1)82	;HERE TO DISPATCH FOR SYMBOL TABLE FIXUPS
****
2)81	;**;[1174] Replace @T11STE	DZN	1-Jun-79
2)	E01IPO::.ERR.	(MS,.EC,V%L,L%F,S%F,IPO) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,T2) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)82	;HERE TO DISPATCH FOR SYMBOL TABLE FIXUPS
**************
1)82	T11PSF:	.ERR.	(MS,,V%L,L%W,S%W,PSF,<Polish symbol fixups not y
	et implemented>)
1)		SETZ	W1,		;NO-OP
1)		POPJ	P,		;CONTINUE
1)	REPEAT 0,<			;[735]
****
2)82	REPEAT 0,<			;[735]
**************
1)82		 AOJA	W2,T11STE	;RANGE CHECK
1)		XCT	T2		;STORE W3
****
2)82	;**;[1174] Replace @T11LNK+11L	DZN	1-Jun-79
2)		 AOJA	W2,E01IPO	;[1174] RANGE CHECK
2)		XCT	T2		;STORE W3
**************
1)83	;HERE IF FAIL INNER BLOCK LABELED LITERALS
1)	;HERE TO SEE IF REQUESTED BLOCK HAS BEEN LOADED FOR THIS PROGRAM
1)	T11FBH:	SKIPN	T1,FBHPTR	;GET POINTER TO BLOCK HEADERS
1)		POPJ	P,		;NONE LOADED
Digital Equipment Corporation       28-AUG-79    Page 137
PCO Log Report


1)		HRRZ	T1,NAMPTR	;GET POINTER TO LOCAL SYMBOL
1)		CAIA			;ALREADY IN T1 FIRST TIME
1)	T11FBL:	HLRZ	T1,2(T1)	;GET POINTER TO BLOCK HEADER
1)		JUMPE	T1,CPOPJ	;END OF CHAIN
1)		CAMGE	T1,LW.LS	;IN CORE?
1)		JRST	T11PSF		;NOT AVAILABLE YET
1)		SUB	T1,LW.LS	;GET ADDRESS IN CORE
1)		ADD	T1,LS.LB
1)		SKIPGE	T2,(T1)		;MUST BE PRIMARY
1)		TXNN	T2,PT.TTL	;AND A TITLE BLOCK
1)		JRST	T.5SER		;NO
1)		CAME	W2,1(T1)	;SEE IF THIS IS THE BLOCK
1)		JRST	T11FBL		;NOT YET
1)		MOVE	W2,W3		;PUT SYMBOL WE WANT IN W2
1)	T11FBS:	ADDI	T1,.L		;ADVANCE
1)		CAML	T1,LS.AB	;MAKE SURE WE DON'T GO TOO FAR
1)		POPJ	P,		;DIDN'T FIND IT
1)		SKIPLE	T2,(T1)		;ONLY WANT PRIMARIES (OR 0)
1)		JRST	T11FBS		;IGNORE ALL SECONDARY STUFF
1)		JUMPE	T2,.+2		;0 MARKS END
1)		TXNE	T2,PT.TTL	;STOP AT NEXT BLOCK
1)		POPJ	P,
1)		TXNE	T2,PT.SYM	;MUST BE A SYMBOL
1)		CAME	W2,1(T1)	;YES, BUT IS IT ONE WE WANT?
1)		JRST	T11FBS		;NO REQUIRED SYMBOL
1)		SUB	T1,LS.LB	;RELATIVE-IZE THIS POINTER
 
 
1)		ADD	T1,LW.LS
1)		SETZ	T2,		;CLEAR GLOBAL SYMBOL PTR
1)		JRST	CPOPJ1		;OK RETURN
1)84	SUBTTL	BLOCK TYPE 12 - LINK (FAIL)
****
2)83	SUBTTL	BLOCK TYPE 12 - LINK (FAIL)
**************
1)84		AOJA	W2,T.12I	;ILLEGAL LINK #
1)		TLNN	W1,-1		;THIRD ARG SPECIFIED?
****
2)83	;**;[1174] Replace @T.12A+9L	DZN	1-Jun-79
2)		AOJA	W2,E$$ICB	;[1174] ILLEGAL LINK #
2)		TLNN	W1,-1		;THIRD ARG SPECIFIED?
**************
1)85		AOJA	W2,T.12I	;ILLEGAL
1)		HRLM	W1,@LINKTB	;SAVE END OF LINK INFO
1)		JRST	T.12A		;BACK FOR MORE
1)	T.12I:	.ERR.	(MS,.EC,V%L,L%W,S%W,ITT,<Illegal type 12 link nu
	mber >)
1)		.ETC.	(OCT,.EP,.EC,,,,W2)
1)		.ETC.	(STR,.EC,,,,,< in module >)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)		JRST	T.12A		;TRY TO CONTINUE
Digital Equipment Corporation       28-AUG-79    Page 138
PCO Log Report


****
2)84	;**;[1174] Replace @T.12E+3L	DZN	1-Jun-79
2)		AOJA	W2,E$$ICB	;[1174] ILLEGAL
2)		HRLM	W1,@LINKTB	;SAVE END OF LINK INFO
2)		JRST	T.12A		;BACK FOR MORE
2)	;**;[1174] Replace @T.12I	DZN	1-Jun-79
2)	E$$ICB::.ERR.	(MS,.EC,V%L,L%W,S%W,ICB,<Invalid chain REL block
	 (type 12) link number >) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,.EC,,,,W2) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		JRST	T.12A		;TRY TO CONTINUE
**************
1)86	T.13:	.ERR.	(MS,0,V%L,L%F,S%F,T13,<LVAR (type 13) code not i
	mplemented>)
1)87	SUBTTL	BLOCK TYPE 14 - INDEX
****
2)85	T.13:
2)	E$$T13::.ERR.	(MS,.EC,V%L,L%F,S%F,T13,<LVAR REL block (type 13
	) not implemented>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)86	SUBTTL	BLOCK TYPE 14 - INDEX
**************
1)87		.ERR.	(MS,,V%L,L%W,S%I,LII,<Library index inconsistent
	, continuing>)
1)		JRST	LOAD##		;AND CONTINUE
****
2)86	;**;[1174] Replace @T.14ER+3L	DZN	1-Jun-79
2)	E$$LII::.ERR.	(MS,,V%L,L%W,S%I,LII,<Library index inconsistent
	, continuing>) ;[1174]
2)		JRST	LOAD##		;AND CONTINUE
**************
1)91			JRST	ILIERR]
1)		MOVEI	R,1		;MUST GO TO LOW SEG
****
2)90	;**;[1174] Replace @T.15+2L	DZN	1-Jun-79
2)			 JRST	E$$RBS]		;[1174]
2)		MOVEI	R,1		;MUST GO TO LOW SEG
**************
1)95		JRST	T.20NC		;NO, ERROR
 
 
1)		HRRZ	T1,P1		;GET COPY
****
2)94	;**;[1174] Replace @T.COMM+6L	DZN	1-Jun-79
2)		JRST	E$$SNC		;[1174] NO, ERROR
2)		HRRZ	T1,P1		;GET COPY
**************
1)95		.ERR.	(MS,.EC,V%L,L%F,S%F,TEC,<Trying to expand common
	 >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)
1)		.ETC.	(STR,.EC,,,,,< from >)
Digital Equipment Corporation       28-AUG-79    Page 139
PCO Log Report


1)		.ETC.	(DEC,.EC!.EP,,,,T1)
1)		.ETC.	(STR,.EC,,,,,< to >)
1)		.ETC.	(DEC,.EC!.EP,,,,T2)
1)		.ETC.	(STR,.EC,,,,,< in module >)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)	T.20NC:	.ERR.	(MS,.EC,V%L,L%F,S%F,SNC,<Symbol >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)
1)		.ETC.	(STR,,,,,,< already defined, but not as common>)
1)96	;HERE TO PUT SYMBOL IN TABLE AND GENERATE SPACE
****
2)94	;**;[1174] Replace @T.20ER+1L	DZN	1-Jun-79
2)		EXCH	T1,T2		;[1174] SWAP FOR .ETAIC ROUTINE
2)	E01AIC::.ERR.	(MS,.EC,V%L,L%F,S%F,AIC) ;[1174]
2)		.ETC.	(STR,.EC,,,,,<common >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)
2)		.ETC.	(JMP,.EC,,,,.ETAIC) ;[1174]
2)	E$$SNC::.ERR.	(MS,.EC,V%L,L%F,S%F,SNC,<Symbol >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)
2)		.ETC.	(STR,.EC,,,,,< already defined, but not as commo
	n>)
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)95	;HERE TO PUT SYMBOL IN TABLE AND GENERATE SPACE
**************
1)97		JRST	T.20NC		;SHOULD NOT HAPPEN
1)		PUSHJ	P,SY.CHK##	;SEE HOW LONGG CURRENT SYMBOL IS
****
2)96	;**;[1174] Replace @T.20UN+2L	DZN	1-Jun-79
2)		JRST	E$$SNC		;[1174] SHOULD NOT HAPPEN
2)		PUSHJ	P,SY.CHK##	;SEE HOW LONGG CURRENT SYMBOL IS
**************
1)99			JRST ILIERR]	;ERROR
1)		MOVE	W3,W1		;STORE VALUE IN SAFE PLACE
****
2)98	;**;[1174] Replace @T.22+2L	DZN	1-Jun-79
2)			 JRST E$$RBS]		;[1174] ERROR
2)		MOVE	W3,W1		;STORE VALUE IN SAFE PLACE
**************
1)99		JRST	T11IPX		;[763] MAKE SURE THIS PSECT EXIS
	T
1)		MOVEM	W2,RC.CUR	;[763] SWITCH CURRENT RELOC COUN
	TER TO IT
****
2)98	;**;[1174] Replace @T.22C+2L	DZN	1-Jun-79
2)		JRST	E$$IPX		;[1174] MAKE SURE THIS PSECT EXI
	ST
2)		MOVEM	W2,RC.CUR	;[763] SWITCH CURRENT RELOC COUN
	TER TO IT
**************
1)100		  JRST	ILIERR		;[1154] TOO SHORT
1)		MOVEI	R,1(W1)		;[1154] PUT INTERNAL PSECT INDEX
	 INTO R
Digital Equipment Corporation       28-AUG-79    Page 140
PCO Log Report


****
2)99	;**;[1174] Replace @T.23+1L	DZN	1-Jun-79
 
 
2)		  JRST	E$$RBS		;[1174] TOO SHORT
2)		MOVEI	R,1(W1)		;[1154] PUT INTERNAL PSECT INDEX
	 INTO R
**************
1)100			JRST ILIERR]	;[1154] USUAL MESSAGE
1)	;HERE WITH THE INTERNAL PSECT INDEX IN R.  NEED TO PUT THIS IN R
	C.CUR,
****
2)99	;**;[1174] Replace @T.23A+4L	DZN	1-Jun-79
2)			   JRST E$$RBS]		;[1174] USUAL MESSAGE
2)	;HERE WITH THE INTERNAL PSECT INDEX IN R.  NEED TO PUT THIS IN R
	C.CUR,
**************
1)100			JRST ILIERR]	;[1154] ..
1)		MOVEM	P1,RC.CUR	;[1154] RESTORE RC.CUR
****
2)99	;**;[1174] Replace @T.23B+5L	DZN	1-Jun-79
2)			 JRST E$$RBS]		;[1174]   ..
2)		MOVEM	P1,RC.CUR	;[1154] RESTORE RC.CUR
**************
1)101		  JRST	ILIERR		;[1137] BLOCK TOO SHORT
1)	;**;[1137] Install the next line ONLY if edit 1132 has been inst
	alled.
****
2)100	;**;[1174] Replace @T.24+3L	DZN	1-Jun-79
2)		  JRST	E$$RBS		;[1174] BLOCK TOO SHORT
2)	;**;[1137] Install the next line ONLY if edit 1132 has been inst
	alled.
**************
1)101		  JRST	ILIERR		;[1137] NOT THERE?
1)	T.24B:	MOVE	R,RC.NO		;[1137] LOOP OVER ALL RC BLOCKS
****
2)100	;**;[1174] Replace @T.24A+2L	DZN	1-Jun-79
2)		  JRST	E$$RBS		;[1174] NOT THERE?
2)	T.24B:	MOVE	R,RC.NO		;[1137] LOOP OVER ALL RC BLOCKS
**************
1)102		JRST	T24IPX		;[1153] INDEX IS JUNK, COMPLAIN
1)		MOVE	T1,@RC.TB	;[1137] RC BLOCK OF THIS PSECT
****
2)101	;**;[1174] Replace @T.24E+5L	DZN	4-Jun-79
2)		JRST	E01IPX		;[1174] INDEX IS JUNK, COMPLAIN
2)		MOVE	T1,@RC.TB	;[1137] RC BLOCK OF THIS PSECT
**************
1)102	;**;[1153] Insert @ T.24E+8L	JNG	12-Apr-79
1)	;HERE ON AN INVALID PSECT INDEX.
1)	T24IPX:	.ERR.	(MS,.EC,V%L,L%F,S%F,IPX)
1)		.ETC.	(STR,.EC,,,,,< for PSECT >)
Digital Equipment Corporation       28-AUG-79    Page 141
PCO Log Report


1)		.ETC.	(SBX,.EP,,,,W2)
1)103	SUBTTL	BLOCK TYPE 37 - COBOL LOCAL SYMBOLS
****
2)101	;**;[1174] Replace @T24IPX-2L	DZN	4-Jun-79
2)	;HERE ON AN INVALID PSECT INDEX WHEN W2 CONTAINS SIXBIT PSECT NA
	ME.
2)	E01IPX::.ERR.	(MS,.EC,V%L,L%F,S%F,IPX) ;[1174]
2)		.ETC.	(STR,.EC,,,,,< for psect >)
2)		.ETC.	(SBX,.EC!.EP,,,,W2) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)102	SUBTTL	BLOCK TYPE 37 - COBOL LOCAL SYMBOLS
**************
1)104		.ERR.	(MS,.EC,V%L,L%W,S%W,UAR,<Undefined assign for >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)
1)		.ETC.	(STR,.EC,,,,,< in >)
 
 
1)		.ETC.	(FSP,0,,,,DC)
1)	T.100R:	PUSHJ	P,RB.1		;IGNORE REST OF BLOCK
****
2)103	;**;[1174] Replace @T.100E+1L	DZN	1-Jun-79
2)	E$$UAR::.ERR.	(MS,.EC,V%L,L%W,S%W,UAR,<Undefined assign for sy
	mbol >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)	T.100R:	PUSHJ	P,RB.1		;IGNORE REST OF BLOCK
**************
1)105		JRST	LKPERR##	;WILL DO FOR NOW
1)		PUSHJ	P,DVOPN.##	;OPEN DEVICE
1)		LOOKUP	TC,I.RIB(T1)
1)		  JRST	LKPERR##	;FAILED
1)106	;HERE WHEN FILE OPENED. ALLOCATE A 1P BUFFER AND READ IT.
****
2)104	;**;[1174] Replace @T.776+23L	DZN	30-May-79
2)		JRST	E01FLE##	;[1174] WILL DO FOR NOW
2)		PUSHJ	P,DVOPN.##	;OPEN DEVICE
2)		LOOKUP	TC,I.RIB(T1)
2)		  JRST	E01FLE##	;[1174] FAILED
2)105	;HERE WHEN FILE OPENED. ALLOCATE A 1P BUFFER AND READ IT.
**************
1)107		JRST	T776TC		;HANDLE ERROR
1)		JUMPN	R3,T776RD	;DONE UNLESS LAST TIME
****
2)106	;**;[1174] Replace @T776R2+10L	DZN	30-May-79
2)		JRST	E02EIF		;[1174] HANDLE ERROR
2)		JUMPN	R3,T776RD	;DONE UNLESS LAST TIME
**************
1)107	T776TC:	PUSH	P,[TC]		;INDICATE ERROR ON CHANNEL TC
1)		.ERR.	(ST,0,V%L,L%F,S%F,EID)	;'ERROR ON INPUT DEVICE'
1)108	;HERE ON A "TITLE" (RADIX50 CODE 0)
****
Digital Equipment Corporation       28-AUG-79    Page 142
PCO Log Report


2)106	E02EIF::PUSH	P,[TC]		;[1174] INDICATE ERROR ON CHANNE
	L TC
2)		.ERR.	(ST,0,V%L,L%F,S%F,EIF) ;[1174] 'ERROR ON INPUT F
	ILE'
2)107	;HERE ON A "TITLE" (RADIX50 CODE 0)
**************
1)108		.ERR.	(MS,.EC,V%L,L%I5,S%I,LMN)	;GIVE INFO MESSA
	GE
1)		.ETC.	(SBX,.EP,,,,PRGNAM)	;FOR LINK DEBUGGERS
****
2)107	;**;[1174] Replace @T776OK+1	DZN	1-Jun-79
2)	E02LMN::.ERR.	(MS,.EC,V%L,L%I5,S%I,LMN) ;[1174] GIVE INFO MESS
	AGE
2)		.ETC.	(SBX,.EP,,,,PRGNAM)	;FOR LINK DEBUGGERS
**************
1)109	T.777:	.ERR.	(MS,.EC,V%L,L%F,S%F,UNS,<Universal files not sup
	ported loading >)
1)		.ETC.	(FSP,,,,,DC)
****
2)108	T.777:
2)	E$$UNS::.ERR.	(MS,.EC,V%L,L%F,S%F,UNS,<Universal file REL bloc
	k (type 777) not supported>) ;[1174]
2)		.ETC.	(NLN,.EC)	;[1174]
2)		.ETC.	(STR,.EC,,,,,<from file >) ;[1174]
2)		.ETC.	(FSP,,,,,DC)
**************
1)111		.ERR.	(MS,.EC,V%M,L%F,S%F,RPN,<Relocatable PSECTs not
	implemented>)
1)		.ETC.	(STR,.EC,,,,,<--/SET switch required for PSECT:
	 >)
1)		.ETC.	(SBX,.EP,,,,T1)
 
 
1)112	;CHKSEG - ROUTINE TO SEE IF ADDRESS IS REQUIRED OR NOT
****
2)110	;**;[1174] Replace @R.ERR+1L	DZN	1-Jun-79
2)	E$$SRP::.ERR.	(MS,.EC,V%L,L%F,S%F,SRP,</SET: switch required f
	or psect >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,T1) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)111	;CHKSEG - ROUTINE TO SEE IF ADDRESS IS REQUIRED OR NOT
**************
1)112	ILIERR:	.ERR.	(MS,.EC,V%L,L%F,S%F,RBS)
1)		.ETC.	(OCT,.EC!.EP,,,,T1)
1)		.ETC.	(STR,.EC,,,,,< too short for >)
1)		.ETC.	(FSP,,,,,DC)
1)	IFN DEBSW,<
****
2)111	;**;[1174] Replace @ILIERR	DZN	1-Jun-79
2)	E$$RBS::.ERR.	(MS,.EC,V%L,L%F,S%F,RBS,<REL block type >) ;[117
	4]
Digital Equipment Corporation       28-AUG-79    Page 143
PCO Log Report


2)		.ETC.	(OCT,.EC!.EP,,,,T1)
2)		.ETC.	(STR,.EC,,,,,< too short>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)	IFN DEBSW,<
**************
 
Digital Equipment Corporation       28-AUG-79    Page 144
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOV1.MAC[30,4507]  	created: 2144 08-Jun-1979
File 2)	LINK:LNKOV1.MAC[10,645063]	created: 1810 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC	5-Jun-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	LNKOV1
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKOV1
**************
1)1	DECEVR==1172		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	ENTRY POINT
****
2)2	;1174	Label and clean up all error messages.
2)3	SUBTTL	ENTRY POINT
**************
1)6		.ERR.	(MS,.EC,V%L,L%W,S%W,LNA,<Link name >)
1)		.ETC.	(SBX,.EC!.EP,,,,P1)
****
2)6	;**;[1174] Replace @LNKLNA+1L	DZN	1-Jun-79
2)	E$$LNA::.ERR.	(MS,.EC,V%L,L%W,S%W,LNA,<Link name >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,P1)
**************
1)7		JRST	ZSVERR##	;ZERO IS ILLEGAL
1)		SETZ	W3,		;VALUE
****
2)7	;**;[1174] Replace @.NOENTRY+4L	DZN	3-Jun-79
2)		JRST	E$$ZSV##	;[1174] ZERO IS ILLEGAL
2)		SETZ	W3,		;VALUE
**************
1)7		JRST	ZSVERR##	;ZERO IS ILLEGAL
1)		SETZ	W3,		;VALUE
****
2)7	;**;[1174] Replace @.NOREQUEST+4L	DZN	3-Jun-79
2)		JRST	E$$ZSV##	;[1174] ZERO IS ILLEGAL
2)		SETZ	W3,		;VALUE
**************
1)7		.ERR.	(MS,0,V%L,L%I,S%I,MRN,<Multiple regions not yet
Digital Equipment Corporation       28-AUG-79    Page 145
PCO Log Report


	implemented>)
1)		POPJ	P,
****
2)7	;**;[1174] Replace @%REGION+2L	DZN	1-Jun-79
2)	E$$MRN::.ERR.	(MS,0,V%L,L%I,S%I,MRN,<Multiple regions not yet
	implemented>) ;[1174]
2)		POPJ	P,
**************
1)8		PUSHJ	P,.SAVE4##	;SAVE P1-P4
1)		MOVE	P2,HT.PRM	;GET INDEX INTO HASH TABLE
1)		HRRZ	T1,LOWSUB	;[605] TTY TYPEOUT ROUTINE
1)		PUSHJ	P,.TYOCH##	;TYPE-OUT ON TTY ONLY
1)		PUSH	P,T1		;SAVE IT
 
 
1)		PUSH	P,[-1]		;MARKER FOR NO REQUESTS
1)	REQST1:	SKIPN	P3,@HT.PTR	;GET POINTER TO SYMBOL
1)		JRST	REQST3		;NO POINTER, NO SYMBOL
1)		ADD	P3,GS.LB	;ADD IN BASE
1)		MOVE	T1,0(P3)	;GET FLAGS
1)		TXNE	T1,PT.SYM	;WE ONLY WANT SYMBOLS
1)		TXNN	T1,PS.ENT	;SEE IF AN ENTRY
1)		JRST	REQST3		;NO
1)		TXNN	T1,PS.NRQ	;NOT WANTED?
1)		SKIPN	2(P3)		;OR ZERO VALUE (I.E. NOT A CALL
	FOO)
1)		JRST	REQST3		;DO NOT LIST
1)		AOSE	(P)		;FIRST TIME?
1)		JRST	REQST2		;NO
1)		MOVEI	T1,REQHDR
1)		PUSHJ	P,.TSTRG##		;YES. OUTPUT HEADER LINE
1)		MOVEI	T1,REQMES
1)		PUSHJ	P,.TSTRG##
1)	REQST2:	PUSHJ	P,.TTABC##
1)		MOVE	T1,1(P3)	;GET SYMBOL
1)		PUSHJ	P,.TSIXN##	;SIXBIT WORD
1)		PUSHJ	P,.TTABC##	;TAB
1)		MOVE	T1,2(P3)	;VALUE
1)		PUSHJ	P,.TOCTW##	;IN OCTAL
1)		PUSHJ	P,.TCRLF##	;NEW LINE
1)	REQST3:	SOJGE	P2,REQST1	;LOOP IF MORE SYMBOLS TO LOOK AT
1)		SKIPL	(P)		;-1 IF NONE SEEN
1)		JRST	REQST4
1)		MOVEI	T1,REQHDR
1)		PUSHJ	P,.TSTRG##
1)		MOVEI	T1,[ASCIZ	\No \]
1)		PUSHJ	P,.TSTRG##	;FAILED TO FIND ANY
1)		MOVEI	T1,REQMES	;REST OF MESSAGE
1)		PUSHJ	P,.TSTRG##
1)	REQST4:	POP	P,T1		;CLEAR STACK
1)		POP	P,T1		;RESTORE OLD TYPE-OUT ROUTINE
Digital Equipment Corporation       28-AUG-79    Page 146
PCO Log Report


1)		PJRST	.TYOCH##	;AND RETURN
1)9	REQHDR:	ASCIZ	\[LNKRER \
****
2)8		MOVE	T1,[PUSHJ P,REQNXT] ;[1174] SET UP NEXT SYMBOL R
	OUTINE
2)		MOVEM	T1,NXTGLB	;[1174]   ..
2)		MOVE	W3,HT.PRM	;[1174] SET UP HASH TABLE INDEX
2)		ADDI	W3,1		;[1174] START UP BY 1 FOR SOSGE
	BELOW
2)		PUSHJ	P,REQNXT	;[1174] GET NEXT (FIRST) ENTRY
2)		  PJRST	E01RER		;[1174] NONE--GO SAY SO SPECIALL
	Y
2)	E$$RER::.ERR.	(MS,.EC!.EN,V%L,L%F,S%I,RER) ;[1174]
2)		.ETC.	(STR,.EC,,,,,<Request external references (inter
	 link entry points)>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETSAV##) ;[1174] GO PRINT THE LIST
2)	;REQNXT RETURNS THE NEXT INTER-LINK ENTRY POINT FOR USE BY THE A
	BOVE .ERR..
2)	;
2)	;CALL:
2)	;	W3/	NEXT HASH TABLE INDEX TO CHECK
2)	;RETURNS  WITH  A NON-SKIP RETURN IF THERE ARE NO MORE SUCH SYMB
	OLS.  OTHERWISE,
2)	;GIVES A SKIP RETURN WITH:
2)	;	W1/	NEXT SYMBOL
2)	;	W2/	OCTAL VALUE
2)	;	W3/	UPDATED
 
 
2)	REQNXT:	PUSHJ	P,.SAVE4##	;[1174] SAVE LNKLOG'S P ACS
2)	REQLUP:	SOSGE	P2,W3		;[1174] CHECK NEXT HASH TABLE EN
	TRY
2)		POPJ	P,		;[1174] NONE LEFT--GIVE NON-SKIP
	 RETURN
2)		SKIPN	P3,@HT.PTR	;[1174] IGNORE IF NO SYMBOL HERE
2)		JRST	REQLUP		;[1174]   ..
2)		ADD	P3,GS.LB	;[1174] RELOCATE IN CASE GS AREA
	 MOVED
2)		MOVE	T1,0(P3)	;[1174] MUST BE UNDEFINED LINK E
	NTRY SYMBOL
2)		TXNE	T1,PT.SYM	;[1174]   ..
2)		TXNN	T1,PS.ENT	;[1174]   ..
2)		JRST	REQLUP		;[1174] NO--TRY NEXT
2)		TXNN	T1,PS.NRQ	;[1174] DID USER SAY NO FOR THIS
	 SYMBOL?
2)		SKIPN	2(P3)		;[1174]   OR ZERO VALUE (I.E. NO
	T A CALL FOO)
2)		JRST	REQLUP		;[1174] YES--TRY NEXT
2)		MOVE	W1,1(P3)	;[1174] NO--A WINNER! LOAD UP SY
	MBOL AND VALUE
2)		MOVE	W2,2(P3)	;[1174]   ..
Digital Equipment Corporation       28-AUG-79    Page 147
PCO Log Report


2)		JRST	CPOPJ1		;[1174] DONE--GIVE SKIP RETURN
2)	E01RER::.ERR.	(MS,.EC,V%L,L%F,S%I,RER) ;[1174]
2)		.ETC.	(STR,,,,,,<No request external references (inter
	-link entry points)>) ;[1174]
2)		POPJ	P,		;[1174]
2)9	REQHDR:	ASCIZ	\[LNKRER \
**************
1)10		  JRST	LNKFSN		;OVRLAY NEEDS IT, MUST BE THERE
1)		MOVX	W1,PT.SGN!PT.SYM	;
****
2)10	;**;[1174] Replace @LNKT0+8L	DZN	1-Jun-79
2)		  JRST	E$$FSN		;[1174] OVRLAY NEEDS IT, MUST BE
	 THERE
2)		MOVX	W1,PT.SGN!PT.SYM	;
**************
1)10		  JRST	LNKOHN		;MUST BE THERE
1)		  JRST	LNKOHN		;BUT WARN USER
1)		MOVE	T1,2(P1)	;GET ADDRESS
****
2)10	;**;[1174] Replace @LNKT0+13L	DZN	1-Jun-79
2)		  JRST	E$$OHN		;[1174] MUST BE THERE
2)		  JRST	E$$OHN		;[1174] BUT WARN USER
2)		MOVE	T1,2(P1)	;GET ADDRESS
**************
1)10		  JRST	LNKOHN
1)		  JRST	LNKOHN
1)11	;HERE TO SET UP FRONT OF OVERLAY FILE.
****
2)10	;**;[1174] Replace @LNKT0+20L	DZN	1-Jun-79
2)		  JRST	E$$OHN		;[1174]
2)		  JRST	E$$OHN		;[1174]
2)11	;HERE TO SET UP FRONT OF OVERLAY FILE.
**************
1)12		  JRST	LNKOHN
1)		  JRST	LNKOHN
1)		HRRZ	P2,2(P1)	;GET ADDRESS
****
2)12	;**;[1174] Replace @LNKT0B+21L	DZN	1-Jun-79
2)		  JRST	E$$OHN		;[1174]
2)		  JRST	E$$OHN		;[1174]
2)		HRRZ	P2,2(P1)	;GET ADDRESS
**************
1)18		PUSHJ	P,ER.OOV##	;OUTPUT ERROR
 
 
1)19	LNKT4D:	SKIPE	PAG.S1		;[666] PAGING?
****
2)18	;**;[1174] Replace @LNKT4G+6L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] OUTPUT ERROR
2)19	LNKT4D:	SKIPE	PAG.S1		;[666] PAGING?
**************
Digital Equipment Corporation       28-AUG-79    Page 148
PCO Log Report


1)20		  PUSHJ	P,NO.COR##	;TOO BAD
1)	LNKT5E:	SETZM	LW.LS		;START BACK AT FRONT OF FILE
****
2)20		  PUSHJ	P,E$$MEF##	;[1174] TOO BAD
2)	LNKT5E:	SETZM	LW.LS		;START BACK AT FRONT OF FILE
**************
1)20		  PUSHJ	P,NO.COR##	;TOO BAD
1)	> ;END IFL .IPS-2*.DBS
****
2)20		  PUSHJ	P,E$$MEF##	;[1174] TOO BAD
2)	> ;END IFL .IPS-2*.DBS
**************
1)21		PUSHJ	P,ER.OOV##	;OUTPUT ERROR
1)22	LNKT5C:	SKIPE	PAG.LS		;PAGING?
****
2)21	;**;[1174] Replace @LNKT5H+6L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] OUTPUT ERROR
2)22	LNKT5C:	SKIPE	PAG.LS		;PAGING?
**************
1)23		PUSHJ	P,ER.OOV##
1)		SKIPN	RBGPTR		;ANY OTHER RELOCATION
****
2)23	;**;[1174] Replace @LNKT6+23L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174]
2)		SKIPN	RBGPTR		;ANY OTHER RELOCATION
**************
1)26		PUSHJ	P,ER.OOV##
1)27	RT.DPB:	SOSL	RT.FR		;ANY ROOM
****
2)26	;**;[1174] Replace @LNKT6Z+17L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174]
2)27	RT.DPB:	SOSL	RT.FR		;ANY ROOM
**************
1)27		  PUSHJ	P,NO.COR##
1)		SPOP	<P2,P1,T1>
****
2)27		  PUSHJ	P,E$$MEF##	;[1174]
2)		SPOP	<P2,P1,T1>
**************
1)28		PUSHJ	P,ER.OOV##	;OUTPUT ERROR
1)	;HERE TO OUTPUT PREAMBLE - MUST BE LAST
****
2)28	;**;[1174] Replace @LNKT7+19L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] OUTPUT ERROR
2)	;HERE TO OUTPUT PREAMBLE - MUST BE LAST
**************
1)28		PUSHJ	P,ER.OOV##	;OUTPUT ERROR
1)	LNKT9:	MOVE	T1,CS.NUM	;GET THIS LINK
****
2)28	;**;[1174] Replace @LNKT8+5L	DZN	1-Jun-79
 
Digital Equipment Corporation       28-AUG-79    Page 149
PCO Log Report


 
2)		PUSHJ	P,E$$OOV##	;[1174] OUTPUT ERROR
2)	LNKT9:	MOVE	T1,CS.NUM	;GET THIS LINK
**************
1)31			  PUSHJ	P,NO.COR##
1)			MOVNI	T1,.IPS		;NOW TAKE BACK EXTRA
****
2)31			  PUSHJ	P,E$$MEF##	;[1174]
2)			MOVNI	T1,.IPS		;NOW TAKE BACK EXTRA
**************
1)32		  PUSHJ	P,NO.COR##	;TOO BAD
1)		MOVNI	T1,.IPS
****
2)32		  PUSHJ	P,E$$MEF##	;[1174] TOO BAD
2)		MOVNI	T1,.IPS
**************
1)33		  PUSHJ	P,NO.COR##	;FAILED
1)	LNKZB1:	MOVE	T1,GS.LB	;GET BASE
****
2)33		  PUSHJ	P,E$$MEF##	;[1174] FAILED
2)	LNKZB1:	MOVE	T1,GS.LB	;GET BASE
**************
1)34		SKIPN	CS.LNM		;DOES THIS LINK HAVE A NAME?
1)		JRST	LNKZNN		;NO
1)		.ERR.	(MS,.EC!.EB,V%L,L%I6,S%I,ELN,<End of link number
	 >)	;
1)		.ETC.	(DEC,.EC!.EP,,,,CS.NUM)	;
1)		.ETC.	(STR,.EC,,,,,<, name >)	;
1)		.ETC.	(SBX,.EP,,,,CS.LNM)	;
1)		JRST	LNKZA		;JOIN COMMON CODE
1)	LNKZNN:	.ERR.	(MS,.EC!.EB,V%L,L%I6,S%I,ELN)	;
1)		.ETC.	(DEC,.EP,,,,CS.NUM)	;
1)	LNKZA:	MOVEI	R,1		;POINT TO RELOC TABLE 1
****
2)34	;**;[1174] Replace @LNKZB1+1P1L	DZN	1-Jun-79
2)	E$$ELN::.ERR.	(MS,.EC,V%L,L%I6,S%I,ELN,<End of>) ;[1174]
2)		.ETC.	(JMP,.EC,,,,.ETLNN##) ;[1174]
2)		.ETC.	(BKL)		;[1174] BLANK LINE IN THE LOG FI
	LE
2)	LNKZA:	MOVEI	R,1		;POINT TO RELOC TABLE 1
**************
1)36	LKSTER:	PUSHJ	P,STARTU##	;UNDEFINED MESSAGE
1)		SETZM	STADDR		;CLEAR ADDRESS
****
2)36	;**;[1174] Replace @LKSTER	DZN	3-Jun-79
2)	LKSTER:	PUSHJ	P,E$$USA##	;[1174] UNDEFINED MESSAGE
2)		SETZM	STADDR		;CLEAR ADDRESS
**************
1)37		  PJRST	ODVERR##	;DEV IS NOT A DSK, DIE
1)		MOVE	T1,IO.PTR+OC	;RESTORE THE I/O DATA
****
Digital Equipment Corporation       28-AUG-79    Page 150
PCO Log Report


2)37	;**;[1174] Replace @OC.OPN+22L	DZN	30-May-79
2)		  PJRST	E$$OFS		;[1174] DEV IS NOT A DSK, DIE
2)		MOVE	T1,IO.PTR+OC	;RESTORE THE I/O DATA
**************
1)37		  JRST	ER.EOV		;FAILED
1)		POPJ	P,
1)	ER.EOV:	PUSH	P,IO.CHN	;[631] TELL ERROR ROUTINE CHANNE
	L NUMBER
1)		.ERR.	(LRE,.EC,V%L,L%F,S%F,EOV,<Error creating overlay
	 file >)
 
 
1)		.ETC.	(FSP,,,,,OC)
1)38	SUBTTL	RESET SWITCH
****
2)37	;**;[1174] Replace @OC.OPN+37L	DZN	30-May-79
2)		  JRST	E$$EOV		;[1174] FAILED
2)		POPJ	P,
2)	;**;[1174] Replace @ER.EOV	DZN	30-May-79
2)	E$$OFS::.ERR.	(MS,0,V%M,L%F,S%F,OFS,<Overlay file must be crea
	ted on a file structure>) ;[1174]
2)	E$$EOV::PUSH	P,IO.CHN	;[1174] TELL ERROR ROUTINE CHANN
	EL NUMBER
2)		.ERR.	(LRE,.EC,V%L,L%F,S%F,EOV,<Error creating overlay
	 file>) ;[1174]
2)38	SUBTTL	RESET SWITCH
**************
1)38			.ERR.	(MS,.EC,V%L,L%W,S%W,LSM,</LINK switch mi
	ssing while loading link number >) ;
1)			.ETC.	(DEC,.EC!.EP,,,,P2) ;LINK NUM
****
2)38	;**;[1174] Replace @%RESET+6L	DZN	1-Jun-79
2)		E$$LSM::.ERR.	(MS,.EC,V%L,L%W,S%W,LSM,</LINK switch mi
	ssing while loading link number >) ;[1174]
2)			.ETC.	(DEC,.EC!.EP,,,,P2) ;LINK NUM
**************
1)38		JRST	RSTNE		;NO
1)		MOVEM	T2,CS.NUM	;NO, STORE SO WE KNOW WHO TO LIN
	K TO
****
2)38	;**;[1174] Replace @RSTA+3L	DZN	1-Jun-79
2)		JRST	E$$LNL		;[1174] NO
2)		MOVEM	T2,CS.NUM	;NO, STORE SO WE KNOW WHO TO LIN
	K TO
**************
1)41		  PUSHJ	P,ER.LNC##	;MUST BE INCORE
1)		MOVE	P1,1(P1)	;GET PREVIOUS
****
2)41	;**;[1174] Replace @RST2A+2L	DZN	1-Jun-79
2)		  PUSHJ	P,E$$LNM##	;[1174] MUST BE IN MEMORY
2)		MOVE	P1,1(P1)	;GET PREVIOUS
Digital Equipment Corporation       28-AUG-79    Page 151
PCO Log Report


**************
1)41		PUSHJ	P,ER.LNC##	;MUST BE INCORE
1)		TLNN	T2,-1		;FORWARD PTR?
****
2)41	;**;[1174] Replace @RST2B+15L	DZN	1-Jun-79
2)		PUSHJ	P,E$$LNM##	;[1174] MUST BE IN MEMORY
2)		TLNN	T2,-1		;FORWARD PTR?
**************
1)43		PUSHJ	P,ER.IOV##	;INPUT ERROR
1)		HRRZ	P1,P2		;INDEX INTO BRANCH TABLES
****
2)43	;**;[1174] Replace @RST3H+12L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174] INPUT ERROR
2)		HRRZ	P1,P2		;INDEX INTO BRANCH TABLES
**************
1)43		  PUSHJ	P,NO.COR##
1)		POP	P,P2
****
2)43		  PUSHJ	P,E$$MEF##	;[1174]
2)		POP	P,P2
**************
1)44		PUSHJ	P,ER.IOV##	;INPUT ERROR
1)		HRRZ	P1,P2		;TO HOLD BRN DEPTH
****
 
 
2)44	;**;[1174] Replace @RST3J+6L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174] INPUT ERROR
2)		HRRZ	P1,P2		;TO HOLD BRN DEPTH
**************
1)45		JRST	RSTRPR		;YES - ERROR
1)		MOVS	T1,LSTPTR	;MUST BACKUP BY ONE LEVEL
****
2)45	;**;[1174] Replace @RSTN+2L	DZN	1-Jun-79
2)		JRST	E$$NBR		;[1174] YES - ERROR
2)		MOVS	T1,LSTPTR	;MUST BACKUP BY ONE LEVEL
**************
1)45		JUMPE	T1,RSTLE	;ERROR
1)	RSTLA:	CAMN	T2,(T1)		;IS THIS IT
****
2)45	;**;[1174] Replace @RSTL+1L	DZN	1-Jun-79
2)		JUMPE	T1,E$$LNN	;[1174] ERROR
2)	RSTLA:	CAMN	T2,(T1)		;IS THIS IT
**************
1)45	RSTLE:	.ERR.	(MS,.EC,V%L,L%W,S%W,LNN,<Link name >)
1)		.ETC.	(SBX,.EC!.EP,,,,T2)
****
2)45	;**;[1174] Replace @RSTLE	DZN	1-Jun-79
2)	E$$LNN::.ERR.	(MS,.EC,V%L,L%W,S%W,LNN,<Link name >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,T2)
**************
Digital Equipment Corporation       28-AUG-79    Page 152
PCO Log Report


1)45	RSTNE:	.ERR.	(MS,.EC,V%L,L%W,S%W,LNL,<Link number >)
1)		.ETC.	(DEC,.EC!.EP,,,,T2)
****
2)45	;**;[1174] Replace @RSTNE	DZN	1-Jun-79
2)	E$$LNL::.ERR.	(MS,.EC,V%L,L%W,S%W,LNL,<Link number >) ;[1174]
2)		.ETC.	(DEC,.EC!.EP,,,,T2)
**************
1)45	RSTRPR:	.ERR.	(MS,,V%L,L%F,S%F,NBR,<Attempt to position to nod
	e before ROOT>)	;
1)46	;HERE IF RESET IS ALL THE WAY BACK TO THE ROOT
****
2)45	;**;[1174] Replace @RSTRPR	DZN	1-Jun-79
2)	E$$NBR::.ERR.	(MS,,V%L,L%F,S%F,NBR,<Attempt to position to nod
	e before the root>) ;[1174]
2)46	;HERE IF RESET IS ALL THE WAY BACK TO THE ROOT
**************
1)46		  PUSHJ	P,ER.LNC##	;MUST BE INCORE
1)	RST02:	HRRZ	T1,@BRNTBL	;GET ORIGIN OF TABLE
****
2)46	;**;[1174] Replace @RST01+6L	DZN	1-Jun-79
2)		  PUSHJ	P,E$$LNM##	;[1174] MUST BE IN MEMORY
2)	RST02:	HRRZ	T1,@BRNTBL	;GET ORIGIN OF TABLE
**************
1)47		PUSHJ	P,ER.IOV##	;INPUT ERROR
1)48	SUBTTL	COMMON SUBROUTINES
****
2)47	;**;[1174] Replace @RST06+8L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174] INPUT ERROR
2)48	SUBTTL	COMMON SUBROUTINES
**************
1)50		JRST	RSTRPR		;ERROR
1)		HRLM	T1,LSTPTR	;BACK UP
****
 
 
2)50	;**;[1174] Replace @BKPBRN+3L	DZN	1-Jun-79
2)		JRST	E$$NBR		;[1174] ERROR
2)		HRLM	T1,LSTPTR	;BACK UP
**************
1)50		PUSHJ	P,ER.LNC##	;MUST BE INCORE
1)51	SUBTTL	SEARCH BOUND GLOBALS
****
2)50	;**;[1174] Replace @DLTBRN+13L	DZN	1-Jun-79
2)		PUSHJ	P,E$$LNM##	;[1174] MUST BE IN MEMORY
2)51	SUBTTL	SEARCH BOUND GLOBALS
**************
1)51		  PUSHJ	P,ER.LNC##	;MUST BE INCORE
1)		ADD	T2,BG.LB	;ADD IN BASE
****
2)51	;**;[1174] Replace @TRYBG1+8L	DZN	1-Jun-79
2)		  PUSHJ	P,E$$LNM##	;[1174] MUST BE IN MEMORY
Digital Equipment Corporation       28-AUG-79    Page 153
PCO Log Report


2)		ADD	T2,BG.LB	;ADD IN BASE
**************
1)59	LNKOHN:	.ERR.	(MS,,V%L,L%F,S%F,OHN,<Overlay handler not loaded
	>)
1)	LNKFSN:	.ERR.	(MS,,V%L,L%F,S%F,FSN,<FUNCT. subroutine not load
	ed>)
1)	OV1LIT:
1)	END	LNKOV1
****
2)59	;**;[1174] Replace @LNKOHN	DZN	1-Jun-79
2)	E$$OHN::.ERR.	(MS,,V%L,L%F,S%F,OHN,<Overlay handler not loaded
	>) ;[1174]
2)	E$$FSN::.ERR.	(MS,,V%L,L%F,S%F,FSN,<FUNCT. subroutine not load
	ed>) ;[1174]
2)	OV1LIT:
2)	END	LNKOV1
**************
 
Digital Equipment Corporation       28-AUG-79    Page 154
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOV2.MAC[30,4507]  	created: 2238 08-Jun-1979
File 2)	LINK:LNKOV2.MAC[10,645063]	created: 1831 10-Jun-1979
 
1)1	TITLE LNKOV2 - PHASE 2 OVERLAY MODULE FOR LINK-10
1)	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JNG/MCHC	5-Jun-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	TITLE LNKOV2 - PHASE 2 OVERLAY MODULE FOR LINK
2)	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JNG/MCHC/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	LNKOV2
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKOV2
**************
1)1	DECEVR==1172		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	DEFINITIONS
****
2)2	;1174	Label and clean up all error messages.
2)3	SUBTTL	DEFINITIONS
**************
1)4		.ERR.	(MS,,V%L,L%I,S%I,OS2,<Overlay segment phase 2>)
1)		MOVE	T1,SYMSEG	;GET /SYMSEG VALUE
****
2)4	;**;[1174] Replace @LNKOV2+1L	DZN	1-Jun-79
2)	E$$OS2::.ERR.	(MS,,V%L,L%I,S%I,OS2,<Overlay segment phase 2>)
	;[1174]
2)		MOVE	T1,SYMSEG	;GET /SYMSEG VALUE
**************
1)5		  PUSHJ	P,NO.COR##
1)		SKIPA	T1,GS.AB	;GS.AB IS NOW SETUP CORRECTLY
****
2)5		  PUSHJ	P,E$$MEF##	;[1174]
2)		SKIPA	T1,GS.AB	;GS.AB IS NOW SETUP CORRECTLY
**************
1)6		  PUSHJ	P,NO.COR##
1)	OVR3A:	AOS	P1,LNKNO.	;PICKUP LINK #
****
2)6		  PUSHJ	P,E$$MEF##	;[1174]
2)	OVR3A:	AOS	P1,LNKNO.	;PICKUP LINK #
**************
Digital Equipment Corporation       28-AUG-79    Page 155
PCO Log Report


1)7		  PUSHJ	P,NO.COR##
1)		JRST	OVR3I		;TRY AGAIN
****
2)7		  PUSHJ	P,E$$MEF##	;[1174]
2)		JRST	OVR3I		;TRY AGAIN
**************
1)8			  PUSHJ	P,NO.COR##	;NOT 1 WORD ????!!!!!!
1)			JRST	.+1]		;REJOIN MAIN STREAM
****
2)8			  PUSHJ	P,E$$MEF##	;[1174] NOT 1 WORD ????!
	!!!!!
2)			JRST	.+1]		;REJOIN MAIN STREAM
**************
 
 
1)11		  JRST	OVR6CU
1)		  JRST	OVR6CU
1)		MOVE	T2,EI.FLG(P1)	;GET LINK#
****
2)11	;**;[1174] Replace @OVR6C+2L	DZN	1-Jun-79
2)		  JRST	E$$USC		;[1174]
2)		  JRST	E$$USC		;[1174]
2)		MOVE	T2,EI.FLG(P1)	;GET LINK#
**************
1)11			PUSHJ	P,ER.LNC##]	;BUT!!!
1)		HLRZ	T1,P1		;GET POINTER
****
2)11	;**;[1174] Replace @OVR6C+13L	DZN	1-Jun-79
2)			  PUSHJ P,E$$LNM##]	;[1174] BUT!!!
2)		HLRZ	T1,P1		;GET POINTER
**************
1)12	OVR6CU:	.ERR.	(MS,.EC,V%L,L%F,S%W,USC,<Undefined subroutine >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)
1)		.ETC.	(STR,.EC,,,,,< called from link number >)
1)		.ETC.	(DEC,.EP,,,,CS.NUM)
1)	OVR6CE:	MOVE	T1,ADDOVU	;ADDRESS OF UNDEFINED ROUTINE
****
2)12	;**;[1174] Replace @OVR6CU	DZN	1-Jun-79
2)	E$$USC::.ERR.	(MS,.EC,V%L,L%F,S%W,USC,<Undefined subroutine >)
	 ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)
2)		.ETC.	(STR,.EC,,,,,< called from>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETLNN##) ;[1174]
2)	OVR6CE:	MOVE	T1,ADDOVU	;ADDRESS OF UNDEFINED ROUTINE
**************
1)12		.ERR.	(MS,.EC,V%L,L%W,S%W,SNP,<Subroutine >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)
****
2)12	;**;[1174] Replace @OVR6CN+1L	DZN	1-Jun-79
2)	E$$SNP::.ERR.	(MS,.EC,V%L,L%W,S%W,SNP,<Subroutine >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)
Digital Equipment Corporation       28-AUG-79    Page 156
PCO Log Report


**************
1)12		.ETC.	(STR,.EC,,,,,< not on path for call from link nu
	mber >)
1)		.ETC.	(DEC,.EP,,,,CS.NUM)
1)		MOVE	P1,P3		;RESTORE P1
****
2)12		.ETC.	(STR,.EC,,,,,< not on path for call from>) ;[117
	4]
2)		.ETC.	(JMP,,,,,.ETLNN##) ;[1174]
2)		MOVE	P1,P3		;RESTORE P1
**************
1)13			PUSHJ	P,ER.LNC##]	;BUT!
1)		HLRZ	T1,P1		;GET POINTER
****
2)13	;**;[1174] Replace @OVR6M+8L	DZN	1-Jun-79
2)			    PUSHJ P,E$$LNM##]	;[1174] BUT!
2)		HLRZ	T1,P1		;GET POINTER
**************
1)15		.ERR.	(MS,.EC,V%L,L%W,S%W,ARL,<Ambiguous request in li
	nk >)
1)		.ETC.	(DEC,.EC!.EP,,,,CS.NUM)
1)		.ETC.	(STR,.EC,,,,,< for >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)
****
 
 
2)15	;**;[1174] Replace @OVR6MG+27L	DZN	1-Jun-79
2)	E$$ARL::.ERR.	(MS,.EC,V%L,L%W,S%W,ARL,<Ambiguous request in>)
	;[1174]
2)		.ETC.	(JMP,.EC,,,,.ETLNN##) ;[1174]
2)		.ETC.	(STR,.EC,,,,,< for symbol >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)
**************
1)18		  PUSHJ	P,NO.COR##	;[635] TOO BAD
1)		SPOP	<P2,P1,T2,T1>	;[635] RESTORE NEEDED ACCS
****
2)18		  PUSHJ	P,E$$MEF##	;[1174] TOO BAD
2)		SPOP	<P2,P1,T2,T1>	;[635] RESTORE NEEDED ACCS
**************
1)18		.ERR.	(MS,.EC,V%L,L%F,S%W,TMA,<Too many ambiguous requ
	ests in link >)
1)		.ETC.	(DEC,.EC!.EP,,,,CS.NUM)
1)		.ETC.	(STR,.EC,,,,,<, use /ARSIZE:>)
****
2)18	;**;[1174] Replace @OVR6FC+3L	DZN	1-Jun-79
2)	E$$TMA::.ERR.	(MS,.EC,V%L,L%F,S%W,TMA,<Too many ambiguous requ
	ests in>) ;[1174]
2)		.ETC.	(JMP,.EC,,,,.ETLNN##) ;[1174]
2)		.ETC.	(STR,.EC,,,,,<, use /ARSIZE:>)
**************
1)20		PUSHJ	P,ER.OOV##	;OUTPUT ERROR
Digital Equipment Corporation       28-AUG-79    Page 157
PCO Log Report


1)21	OVR6H:	SKIPE	T1,RT.PT	;RELOC TABLE TO PUT OUT?
****
2)20	;**;[1174] Replace @OVR6GC+15L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] OUTPUT ERROR
2)21	OVR6H:	SKIPE	T1,RT.PT	;RELOC TABLE TO PUT OUT?
**************
1)21		PUSHJ	P,ER.OOV##	;[573] THIS IS AN OUTPUT ERROR
1)22	;**;[1172] Add comment @ OVR6H+1P	JNg	5-Jun-79
1)	;HERE TO CHECK IF SYMBOLS NEEDED, AND READ THEM IN IF SO.
****
2)21	;**;[1174] Replace @OVR6H+28L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] THIS IS AN OUTPUT ERROR
2)22	;**;[1172] Add comment @OVR6H+1P	JNg	5-Jun-79
2)	;HERE TO CHECK IF SYMBOLS NEEDED, AND READ THEM IN IF SO.
**************
1)22	;**;[1172] Delete @ OVR6S+6L	JNG	5-Jun-79
1)		USETI	OC,(T1)		;SET ON SYMBOL BLOCK
****
2)22	;**;[1172] Delete @OVR6S+6L	JNG	5-Jun-79
2)		USETI	OC,(T1)		;SET ON SYMBOL BLOCK
**************
1)22		  PUSHJ	P,NO.COR##	;TOO BAD
1)	OVR6S1:	HLRE	T1,PH.SYM	;GET -LENGTH AGAIN
****
2)22		  PUSHJ	P,E$$MEF##	;[1174] TOO BAD
2)	OVR6S1:	HLRE	T1,PH.SYM	;GET -LENGTH AGAIN
**************
1)22		PUSHJ	P,ER.IOV##	;ERROR
1)		SUB	T1,LW.LS	;SHOULD BE 0
****
2)22	;**;[1174] Replace @OVR6S1+17L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174] ERROR
2)		SUB	T1,LW.LS	;SHOULD BE 0
**************
 
 
1)23		PUSHJ	P,ER.OOV##	;FAILED
1)24	OVR6R:	SKIPE	T1,RT.PT	;ANY RELOCATION TABLES?
****
2)23	;**;[1174] Replace @OVR6L+16L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] FAILED
2)24	OVR6R:	SKIPE	T1,RT.PT	;ANY RELOCATION TABLES?
**************
1)24		PUSHJ	P,ER.OOV##	;ERROR
1)25	OVR6P:	HLRZ	T1,OVLBLK	;BLOCK # OF PREAMBLE
****
2)24	;**;[1174] Replace @OVR6R+18L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] ERROR
2)25	OVR6P:	HLRZ	T1,OVLBLK	;BLOCK # OF PREAMBLE
**************
1)25		PUSHJ	P,ER.OOV##	;OUTPUT ERROR
Digital Equipment Corporation       28-AUG-79    Page 158
PCO Log Report


1)	OVR6X:	SKIPN	PH.RDX		;ANY RADIX-50 SYMBOLS
****
2)25	;**;[1174] Replace @OVR6Z+2L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] OUTPUT ERROR
2)	OVR6X:	SKIPN	PH.RDX		;ANY RADIX-50 SYMBOLS
**************
1)25		PUSHJ	P,ER.IOV##
1)		MOVE	T2,PH.RDX	;GET SYMBOL TABLE PTR
****
2)25	;**;[1174] Replace @OVR6X+18L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174]
2)		MOVE	T2,PH.RDX	;GET SYMBOL TABLE PTR
**************
1)25		PUSHJ	P,ER.OOV##
1)26	OVR7:	SKIPN	TMAMAX		;[635] ANY %LNKTMA MESSAGES OUTP
	UT?
1)		JRST	OVR7C		;[635] NO, CONTINUE
1)		.ERR.	(MS,.EC,V%L,L%F,S%F,ABT,<Load aborted due to %LN
	KTMA errors, max. /ARSIZE needed was >)
1)		.ETC.	(DEC,.EP,,,,TMAMAX)
****
2)25	;**;[1174] Replace @OVR6X+25L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174]
2)26	OVR7:	SKIPN	TMAMAX		;[635] ANY %LNKTMA MESSAGES OUTP
	UT?
2)		JRST	OVR7C		;[635] NO, CONTINUE
2)	;**;[1174] Replace @OVR7+2L	DZN	1-Jun-79
2)	E$$ABT::.ERR.	(MS,.EC,V%L,L%F,S%F,ABT,<Load aborted due to %LN
	KTMA errors, max. /ARSIZE: needed was >) ;[1174]
2)		.ETC.	(DEC,.EP,,,,TMAMAX)
**************
1)26		PUSHJ	P,ER.OOV##	;OUTPUT ERROR
1)		MOVN	T1,L.MAX	;GET MAX LINKS ALLOWED
****
2)26	;**;[1174] Replace @OVR7C+10L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] OUTPUT ERROR
2)		MOVN	T1,L.MAX	;GET MAX LINKS ALLOWED
**************
1)26		PUSHJ	P,ER.OOV##	;OUTPUT ERROR
1)27	;NOW FOR LINK NAMES, THERE WILL BE AT LEAST ONE (ROOT)
****
2)26	;**;[1174] Replace @OVR7C+18L	DZN	1-Jun-79
2)		PUSHJ	P,E$$OOV##	;[1174] OUTPUT ERROR
2)27	;NOW FOR LINK NAMES, THERE WILL BE AT LEAST ONE (ROOT)
**************
 
 
1)27		PUSHJ	P,ER.OOV##	;ERROR
1)		HLRE	T2,T1		;GET BACK LENGTH
****
2)27	;**;[1174] Replace @OVR7B+4L	DZN	1-Jun-79
Digital Equipment Corporation       28-AUG-79    Page 159
PCO Log Report


2)		PUSHJ	P,E$$OOV##	;[1174] ERROR
2)		HLRE	T2,T1		;GET BACK LENGTH
**************
1)28		  PUSHJ	P,NO.COR##	;TOO BAD
1)29	OVR8A:	MOVE	T2,LS.UB	;GET TOP
****
2)28		  PUSHJ	P,E$$MEF##	;[1174] TOO BAD
2)29	OVR8A:	MOVE	T2,LS.UB	;GET TOP
**************
1)29		PUSHJ	P,ER.IOV##	;ERROR
1)	OVR8B:	MOVEI	T1,LS.IX	;NOW DELETE LOCAL SYMBOLS
****
2)29	;**;[1174] Replace @OVR8A+23L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174] ERROR
2)	OVR8B:	MOVEI	T1,LS.IX	;NOW DELETE LOCAL SYMBOLS
**************
1)30		PUSHJ	P,ER.IOV##	;INPUT ERROR
1)		ADD	T3,LC.LB	;POINT TO FIRST CS WORD
****
2)30	;**;[1174] Replace @RDCST+18L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174] INPUT ERROR
2)		ADD	T3,LC.LB	;POINT TO FIRST CS WORD
**************
1)31		  PUSHJ	P,NO.COR##
1)		HLRZ	T1,R1		;RESET EXCESS SIZE
****
2)31		  PUSHJ	P,E$$MEF##	;[1174]
2)		HLRZ	T1,R1		;RESET EXCESS SIZE
**************
1)31		PUSHJ	P,ER.IOV##	;INPUT ERROR
1)	CPOPJ:	POPJ	P,
****
2)31	;**;[1174] Replace @CPOPJ1+1L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174] INPUT ERROR
2)	CPOPJ:	POPJ	P,
**************
1)31		PUSHJ	P,ER.IOV##	;INPUT ERROR
1)32	RDREL:	MOVE	T1,RT.LB	;MAKE RT.PT SAME AS RT.LB
****
2)31	;**;[1174] Replace @INPH+10L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IOV##	;[1174] INPUT ERROR
2)32	RDREL:	MOVE	T1,RT.LB	;MAKE RT.PT SAME AS RT.LB
**************
1)32		PJRST	ER.IOV##	;I/O ERROR
1)33	OV2LIT:
1)	END	LNKOV2
****
2)32	;**;[1174] Replace @RDREL1+5L	DZN	1-Jun-79
2)		PJRST	E$$IOV##	;[1174] I/O ERROR
2)33	OV2LIT:
2)	END	LNKOV2
Digital Equipment Corporation       28-AUG-79    Page 160
PCO Log Report


**************
 
Digital Equipment Corporation       28-AUG-79    Page 161
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOVS.MAC[30,4507]  	created: 1439 07-Mar-1978
File 2)	LINK:LNKOVS.MAC[10,645063]	created: 1659 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JBC/JNG	27-Feb-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JBC/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	TR.WLK
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	TR.WLK
**************
1)1	DECMVR==0		;DEC MINOR VERSION
1)	DECEVR==765		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECMVR==1		;DEC MINOR VERSION
2)	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
**************
1)3	SUBTTL	TREE WALK ROUTINE
****
2)2	;START OF VERSION 4A
2)	;1174	Label and clean up all error messages.
2)3	SUBTTL	TREE WALK ROUTINE
**************
1)6		  PUSHJ	P,NO.COR##	;SHOULD NOT HAPPEN
1)		HRLI	T1,(POINT 2)	;RESET BYTE PTR
****
2)6		  PUSHJ	P,E$$MEF##	;[1174] SHOULD NOT HAPPEN
2)		HRLI	T1,(POINT 2)	;RESET BYTE PTR
**************
1)7	ER.IOV::PUSH	P,[OC]
1)		.ERR.	(ST,,V%L,L%F,S%F,IOV,<Input error for overlay fi
	le>)
1)	ER.OOV::PUSH	P,[OC]
1)		.ERR.	(ST,,V%L,L%F,S%F,OOV,<Output error for overlay f
	ile>)
1)	ER.LNC::.ERR.	(MS,.EC,V%L,L%F,S%F,LNC,<Link number >)
1)		.ETC.	(DEC,.EC!.EP,,,,P2)
1)		.ETC.	(STR,,,,,,< not in core>)
1)	END
****
2)7	;**;[1174] Replace @ER.IOV	DZN	1-Jun-79
2)	E$$IOV::PUSH	P,[OC]		;[1174]
Digital Equipment Corporation       28-AUG-79    Page 162
PCO Log Report


2)		.ERR.	(ST,,V%L,L%F,S%F,IOV,<Input error for overlay fi
	le>)
2)	E$$OOV::PUSH	P,[OC]		;[1174]
2)		.ERR.	(ST,,V%L,L%F,S%F,OOV,<Output error for overlay f
	ile>)
2)	E$$LNM::.ERR.	(MS,.EC,V%L,L%F,S%F,LNM,<Link number >) ;[1174]
2)		.ETC.	(DEC,.EC!.EP,,,,P2)
2)		.ETC.	(STR,,,,,,< not in memory>) ;[1174]
2)	END
**************
 
Digital Equipment Corporation       28-AUG-79    Page 163
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPLT.MAC[30,4507]  	created: 1727 25-Aug-1978
File 2)	LINK:LNKPLT.MAC[10,645063]	created: 1700 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	25-Aug-78
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
1)	ENTRY	LNKPLT,GETSON
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKPLT,GETSON
**************
1)1	DECEVR==1113		;DEC EDIT VERSION
1)	SALL
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	SALL
**************
1)3	SUBTTL	BLISS CONVENTIONS
****
2)2	;1174	Label and clean up all error messages.
2)3	SUBTTL	BLISS CONVENTIONS
**************
1)5	;**;[1113] Insert after LNKPLT	DZN	25-Aug-78
1)		.ERR.	(MS,0,V%L,L%I,S%I,POT,<Plotting overlay tree>)
1)		ZAPTMP			;CLEAR TEMP AREA
****
2)5	;**;[1174] Replace @LNKPLT+1L	DZN	1-Jun-79
2)	E$$POT::.ERR.	(MS,0,V%L,L%I,S%I,POT,<Plotting overlay tree>) ;
	[1174]
2)		ZAPTMP			;CLEAR TEMP AREA
**************
 
Digital Equipment Corporation       28-AUG-79    Page 164
PCO Log Report


[FILCOM]
File 1)	LINK:LNKSCN.MAC[30,4507]  	created: 2318 17-May-1979
File 2)	LINK:LNKSCN.MAC[10,645063]	created: 1743 11-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/PAH/DZN	17-May-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/PAH/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978, 1979 BY DIGITAL EQUIPMENT CORPORATION
	, MAYNARD, MASS.
1)	ENTRY	LNKSCN
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKSCN
**************
1)1	DECEVR==1167		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
**************
1)4	SUBTTL	INITIALIZE SCANNER
****
2)3	;1174	Label and clean up all error messages.
2)4	SUBTTL	INITIALIZE SCANNER
**************
1)4		.ERR.	(MS,0,V%L,L%I,S%I,SNL,<Scanning new command line
	>)
1)		SETZ	T1,		;SCAN CAN USE TTCALLS
****
2)4	;**;[1174] Replace @LNKSCN+15L	DZN	1-Jun-79
2)	E$$SNL::.ERR.	(MS,,V%L,L%I,S%I,SNL,<Scanning new command line>
	) ;[1174]
2)		SETZ	T1,		;SCAN CAN USE TTCALLS
**************
1)10		PUSHJ	P,SWTERR	;NO, ERROR IN SWITCH MACRO
1)		SUBI	T2,2(T3)	;YES, T2 GETS WORDS LEFT OVER
****
2)10	;**;[1174] Replace @**somewhere**+1P6L	DZN	1-Jun-79
2)		PUSHJ	P,E$$IST	;[1174] NO, ERROR IN SWITCH MACR
	O
2)		SUBI	T2,2(T3)	;YES, T2 GETS WORDS LEFT OVER
**************
1)11	SWTERR:	.ERR.	(MS,,V%L,L%F,S%F,IST,<Inconsistency in switch ta
	ble>)
1)12	SUBTTL	GENERATE SWITCH TABLES
****
2)11	;**;[1174] Replace @SWTERR	DZN	1-Jun-79
Digital Equipment Corporation       28-AUG-79    Page 165
PCO Log Report


2)	E$$IST::.ERR.	(MS,,V%L,L%F,S%F,IST,<Inconsistency in switch ta
	ble>) ;[1174]
2)12	SUBTTL	GENERATE SWITCH TABLES
**************
1)15	TXTERR:	.ERR.	(MS,.EC,V%L,L%F,S%F,ITB,<Invalid text in ASCII B
	lock in file >)
1)		.ETC.	(FSP,,,,,DC)
****
2)15	;**;[1174] Replace @TXTERR	DZN	1-Jun-79
2)	E$$ITB::.ERR.	(MS,.EC,V%L,L%F,S%F,ITB,<Invalid text in ASCII b
	lock from file >) ;[1174]
2)		.ETC.	(FSP,,,,,DC)
**************
1)16		JUMPE	C,TXTERR	;IF SCAN STILL WANTS MORE, GIVE
	UP
1)		POPJ	P,		;ELSE RETURN IT THE CHARACTER
****
2)16	;**;[1174] Replace @TXTKOM+6L	DZN	1-Jun-79
2)		JUMPE	C,E$$ITB	;[1174] IF SCAN STILL WANTS MORE
	, GIVE UP
 
 
2)		POPJ	P,		;ELSE RETURN IT THE CHARACTER
**************
 
Digital Equipment Corporation       28-AUG-79    Page 166
PCO Log Report


[FILCOM]
File 1)	LINK:LNKSUB.MAC[30,4507]  	created: 0041 03-May-1979
File 2)	LINK:LNKSUB.MAC[10,645063]	created: 1702 10-Jun-1979
 
1)1	SUBTTL D.M.NIXON/DMN/JBC/JNG	4-May-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL D.M.NIXON/DMN/JBC/JNG/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	;COPYRIGHT (C) 1973, 1978, 1979
1)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
1)	SEARCH LNKLOW,LNKPAR
1)	CUSTVR==0		;CUSTMER VERSIN
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	SEARCH LNKLOW,LNKPAR
2)	ENTRY	NPRIME
2)	EXTERN	LNKLOG
2)	CUSTVR==0		;CUSTMER VERSIN
**************
1)1	DECEVR==1161		;DEC EDIT VERSION
1)	SEGMENT
1)	ENTRY	NPRIME
1)	EXTERN	LNKLOG
1)	SALL
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	SEGMENT
2)	SALL
**************
1)3	;HERE TO GET THE REQUIRED PRIME NUMBER INTO HT.PRM
****
2)2	;1174	Label and clean up all error messages.
2)3	;HERE TO GET THE REQUIRED PRIME NUMBER INTO HT.PRM
**************
1)3		JUMPE	T1,PRMERR	;NONE THERE (0 IS END MARKER)
1)		SKIPE	HASHSZ		;SKIP IF NO USER SIZE REQUEST
****
2)3	;**;[1174] Replace @NPRIME+4L	DZN	1-Jun-79
2)		JUMPE	T1,E$$HTL	;[1174] NONE THERE (0 IS END MAR
	KER)
2)		SKIPE	HASHSZ		;SKIP IF NO USER SIZE REQUEST
**************
1)3	PRMERR:	.ERR.	(MS,0,V%L,L%F,S%F,HTL,<Symbol hash table too lar
	ge>)
1)4	SUBTTL	TABLE OF PRIME NUMBER STORED 2 PER WORD
****
2)3	;**;[1174] Replace @PRMERR	DZN	1-Jun-79
2)	E$$HTL::.ERR.	(MS,0,V%L,L%F,S%F,HTL,<Symbol hash table too lar
Digital Equipment Corporation       28-AUG-79    Page 167
PCO Log Report


	ge>) ;[1174]
2)4	SUBTTL	TABLE OF PRIME NUMBER STORED 2 PER WORD
**************
1)9	TITLE LNK000 - DUMMY LINK10
1)	SUBTTL D.M.NIXON/DMN	27-OCT-72
1)	ENTRY	LINK10
1)	SEARCH	LNKPAR,LNKLOW
1)	SEGMENT
1)	LINK10:
1)	IFE FTSINGLE,<
****
2)10	TITLE LNK000 - DUMMY LINK
2)	SUBTTL D.M.NIXON/DMN/DZN	8-Jun-79
 
 
2)	ENTRY	LINK			;[1174]
2)	SEARCH	LNKPAR,LNKLOW
2)	SEGMENT
2)	LINK:				;[1174]
2)	IFE FTSINGLE,<
**************
1)9	SUBTTL	D.M.NIXON/DMN/JNG	10-Apr-77
1)	SEARCH	LNKPAR,LNKLOW
****
2)19	SUBTTL	D.M.NIXON/DMN/JNG/DZN	8-Jun-79
2)	SEARCH	LNKPAR,LNKLOW
**************
1)9	ENTRY	ER.IOV
1)	RT.INC:: LINKGO:: INPH:: RDCST:: ER.IOV:
1)	RT.T2F:: RT.T2R:: RT.T2L:: RT.P3:: RT.P2:: RT.FX::
****
2)19	;**;[1174] Replace @ER.IOV-1L	DZN	1-Jun-79
2)	ENTRY	E$$IOV			;[1174]
2)	RT.INC:: LINKGO:: INPH:: RDCST:: E$$IOV: ;[1174]
2)	RT.T2F:: RT.T2R:: RT.T2L:: RT.P3:: RT.P2:: RT.FX::
**************
1)9		.ERR.	(MS,,V%M,L%W,S%I,ONS,<OVERLAYS not supported in
	this version of LINK>)
1)	> ;END OF IFE FTOVERLAY
1)	IFN FTOVERLAY,<
1)		.ERR.	(MS,,V%L,L%F,S%F,OMB,</OVERLAY switch must be fi
	rst>)
1)	> ;END OF IFN FTOVERLAY
****
2)19	;**;[1174] Replace @RT.T2F+1L	DZN	1-Jun-79
2)	E$$ONS::.ERR.	(MS,,V%L,L%W,S%I,ONS,<Overlays not supported in
	this version of LINK>) ;[1174]
2)	> ;END OF IFE FTOVERLAY
2)	IFN FTOVERLAY,<
2)	E$$OMB::.ERR.	(MS,,V%L,L%F,S%F,OMB,</OVERLAY switch must be fi
	rst>) ;[1174]
Digital Equipment Corporation       28-AUG-79    Page 168
PCO Log Report


2)	> ;END OF IFN FTOVERLAY
**************
1)9	SUBTTL	D.M.NIXON/DMN/JNG	17-Jul-75
1)	ENTRY	LNKF40
****
2)21	SUBTTL	D.M.NIXON/DMN/JNG/DZN	8-Jun-79
2)	ENTRY	LNKF40
**************
1)9		JRST	F40OVR		;YES, GIVE BETTER MESSAGE
1)	>
1)		.ERR.	(MS,0,V%L,L%F,S%F,OFN,<Old FORTRAN (F40) module
	not available.>)
1)	IFN FTOVERLAY,<
1)	F40OVR:	.ERR.	(MS,.EC,V%L,L%F,S%F,FOV)
1)		.ETC.	(SBX,.EP,,,,PRGNAM)
1)	>
1)	END
****
2)21	;**;[1174] Replace @T.401+4L	DZN	1-Jun-79
2)		JRST	E$$FOV##		;[1174] YES, GIVE BETTER
	 MESSAGE
2)	>
2)	E$$OFN::.ERR.	(MS,.EC,V%L,L%F,S%F,OFN,<Old FORTRAN (F40) modul
	e not available>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)	END
**************
 
Digital Equipment Corporation       28-AUG-79    Page 169
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1558 10-Jun-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1614 11-Jun-1979
 
1)1	;COPYRIGHT (C) 1973, 1978, 1979
1)	;BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
1)	ENTRY	LNKWLD
****
2)1	;COPYRIGHT (C) 1973, 1979 BY DIGITAL EQUIPMENT CORPORATION, MAYN
	ARD, MASS.
2)	ENTRY	LNKWLD
**************
1)1	EXTERN	LNKFIO,LNKCOR,LNKLOG,LNKMAP
1)	CUSTVR==0		;CUSTOMER VERSION
****
2)1	EXTERN	LNKFIO,LNKCOR,LNKLOG,LNKMAP,TTYCHK
2)	CUSTVR==0		;CUSTOMER VERSION
**************
1)1	DECEVR==1173		;DEC EDIT VERSION
1)	;CALLING SEQUENCE
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	;CALLING SEQUENCE
**************
1)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
****
2)3	;1174	Label and clean up all error messages.
2)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
**************
1)7		  PUSHJ	P,LKPERR##	;GIVE ERROR MESSAGE
1)	;**;[1101] Insert @ LDFS1+3L	JNG	29-May-78
****
2)7	;**;[1174] Replace @LDFS1+2L	DZN	30-May-79
2)		  PUSHJ	P,E01FLE##	;[1174] GIVE ERROR MESSAGE
2)	;**;[1101] Insert @ LDFS1+3L	JNG	29-May-78
**************
1)17		JRST	CORE3		;[650] OK, TELL USER
1)		MOVE	T2,T1		;[650] NOW TRY VIRTUALLY
****
2)17	;**;[1174] Replace @%CORE+12L	DZN	3-Jun-79
2)		JRST	E02EXP		;[1174] OK, TELL USER
2)		MOVE	T2,T1		;[650] NOW TRY VIRTUALLY
**************
1)17	CORE3:	.ERR.	(MS,.EC,V%L,L%I,S%I,EXP)
1)		.ETC.	(COR,.EP,,,,.JBREL)
****
2)17	;**;[1174] Replace @CORE3	DZN	3-Jun-79
2)	E02EXP::.ERR.	(MS,.EC,V%L,L%I,S%I,EXP) ;[1174]
2)		.ETC.	(COR,.EP,,,,.JBREL)
**************
1)18	%COUNTER:
Digital Equipment Corporation       28-AUG-79    Page 170
PCO Log Report


****
2)18	SUBTTL	SWITCH ACTION -- /COUNTER
2)	;/COUNTER  CAUSES LINK TO PRINT A LIST OF ALL CURRENT RELOCATION
	 COUNTERS, THEIR
2)	;INITIAL VALUES AND THEIR CURRENT VALUES.  THIS IS DONE BY USING
	 A  .ETC.  MACRO
2)	;LOOP TO PRINT EACH COUNTER LINE.
2)	%COUNTER:
**************
1)18		HRRZ	T1,LOWSUB	;[605] TTY OUTSTR ROUTINE
1)		PUSHJ	P,.TYOCH##	;ONLY ON TTY
1)		PUSH	P,T1		;SAVE IT
 
 
1)		MOVEI	R1,1		;START AT 1 (COUNTER .LOW.)
1)		MOVEI	T1,[ASCIZ \[LNKRLC Reloc. CTR.	initial value	
	current value (octal)]
1)	\]
1)		PUSHJ	P,.TSTRG##	;OUTPUT HEADER
1)	COUNT1:	SKIPN	R2,@RC.TB	;SEE IF ANYTHING THERE?
1)		JRST	COUNT3		;NO
1)		PUSHJ	P,.TTABC##
1)		MOVE	T1,RC.NM(R2)	;GET NAME
1)		PUSHJ	P,.TSIXN##	;YES
1)		PUSHJ	P,.TTABC##	;TAB TO SEPARATE
1)		PUSHJ	P,.TTABC##
1)	COUNT2:	MOVE	T1,RC.IV(R2)	;INITIAL VALUE
1)		PUSHJ	P,.T6OCT##
1)		PUSHJ	P,.TTABC##
1)		PUSHJ	P,.TTABC##
1)		MOVE	T1,RC.AT(R2)	;[755] GET PSECT ATTRIBUTE
1)		TXNE	T1,AT.OV	;[755] HAVE AN OVERLAYABLE PSECT
	?
1)		SKIPN	T1,RC.HL(R2)	;[755] YES, USE HIGHEST LOCATION
	 INSTEAD
1)		MOVE	T1,RC.CV(R2)	;CURRENT VALUE
1)		PUSHJ	P,.T6OCT##
1)		PUSHJ	P,.TCRLF##	;CLOSE LINE
1)		CAMGE	R1,RC.NO	;ALL DONE?
1)		AOJA	R1,COUNT1	;NO
1)	COUNT3:	POP	P,T1		;GET BACK TYPE  OUT ROUTINE
1)		PJRST	.TYOCH##	;RETURN
1)	%CPU:
****
2)18	;**;[1174] Revamp @.COUNTER+1L	DZN	3-Jun-79
2)		MOVEI	R,1		;[1174] START AT 1 (COUNTER .LOW
	.)
2)	E$$RLC::.ERR.	(MS,.EC,V%L,L%F,S%I,RLC,<Reloc. ctr.	initial
	value	current value>) ;[1174]
2)	COUNEX:	.ETC.	(XCT,.EC,,,,<[PUSHJ P,COUNGT]>) ;[1174] ANY MORE
	 TO PRINT?
Digital Equipment Corporation       28-AUG-79    Page 171
PCO Log Report


2)		.ETC.	(JMP,.EC,,,,COUNDN) ;[1174] NO--DONE
2)		.ETC.	(NLN,.EC)	;[1174] YES--NEW LINE FOR IT
2)		.ETC.	(SBX,.EC!.EP,,,,W1) ;[1174] RELOCATION COUNTER N
	AME
2)		.ETC.	(STR,.EC,,,,,<		>) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,W2) ;[1174] INITIAL VALUE
2)		.ETC.	(STR,.EC,,,,,<		>) ;[1174]
2)		.ETC.	(OCT,.EC!.EP,,,,W3) ;[1174] CURRENT VALUE
2)		.ETC.	(JMP,.EC,,,,COUNEX) ;[1174] LOOP FOR REST
2)	COUNDN:	.ETC.	(STR,,,,,<>)	;[1174] JUST A DUMMY TO JUMP TO
2)		POPJ	P,		;[1174] DONE
2)	;COUNGT  IS  CALLED  FROM  THE  ABOVE LNKRLC MESSAGE TO FIND THE
	 NEXT RELOCATION
2)	;COUNTER VALUES, IF ANY.
2)	;
2)	;CALL:
2)	;	R/	RELOCATION COUNTER TO CHECK
2)	;RETURNS NON-SKIP IF NO MORE, OR SKIP WITH:
2)	;	W1/	NAME OF RELOCATION COUNTER
2)	;	W2/	INITIAL VALUE
2)	;	W3/	CURRENT VALUE
2)	;	R/	INCREMENTED FOR NEXT TIME
2)	COUNGT:	CAMG	R,RC.NO		;[1174] ANY MORE?
2)		SKIPN	R2,@RC.TB	;[1174]   ..
2)		POPJ	P,		;[1174] NO--NON-SKIP RETURN
2)		MOVE	W1,RC.NM(R2)	;[1174] FETCH RELOCATION COUNTER
	 NAME
2)		MOVE	W2,RC.IV(R2)	;[1174] FETCH INITIAL VALUE
 
 
2)		MOVE	T1,RC.AT(R2)	;[1174] IF OVERLAID PSECT
2)		TXNE	T1,AT.OV	;[1174]   ..
2)		SKIPN	W3,RC.HL(R2)	;[1174] THEN TRY HIGHEST SEEN SO
	 FAR
2)		MOVE	W3,RC.CV(R2)	;[1174] ELSE JUST USE CURRENT VA
	LUE
2)		AOJA	R,CPOPJ1	;[1174] ADV TO NEXT AND GIVE SKI
	P RETURN
2)19	SUBTTL	SWITCH ACTION -- /CPU:, /CRLF:
2)	%CPU:
**************
1)21		  ERJMP	TXDDTR		;[1144] FAILED
1)		PUSH	P,T1		;[1144] SAVE JFN FOR UDDT
****
2)22	;**;[1174] Replace @MAPDD1+3L	DZN	3-Jun-79
2)		  ERJMP	E$$DNA		;[1174] FAILED
2)		PUSH	P,T1		;[1144] SAVE JFN FOR UDDT
**************
1)21	TXDDTR:	.ERR.	(MS,,V%L,L%F,S%F,DNA,<DDT not available>)
1)	>
****
Digital Equipment Corporation       28-AUG-79    Page 172
PCO Log Report


2)22	;**;[1174] Replace @TXDDTR	DZN	3-Jun-79
2)	E$$DNA::.ERR.	(MS,,V%L,L%F,S%F,DNA,<DDT not available>) ;[1174
	]
2)	>
**************
1)22	DEBTBL:	KEYWORDS
1)	;HERE FOR /DDEBUG
****
2)23	;**;[1174] Replace @DEBTBL-1L	DZN	5-Jun-79
2)		XALL			;[1174]
2)	DEBTBL:	KEYWORDS
2)		SALL			;[1174]
2)	;HERE FOR /DDEBUG
**************
1)23		JRST	ZSVERR		;ZERO IS INVALID
1)		MOVE	W3,3(P2)	;AND VALUE
****
2)24	;**;[1174] Replace @%DEFINE+4L	DZN	3-Jun-79
2)		JRST	E$$ZSV		;[1174] ZERO IS INVALID
2)		MOVE	W3,3(P2)	;AND VALUE
**************
1)24		PUSHJ	P,.SAVE4##	;SAVE P1-P4
1)		MOVE	P2,HT.PRM	;GET INDEX INTO HASH TABLE
1)		HRRZ	T1,LOWSUB	;[605] TTY OUTSTR ROUTINE ADDRES
	S
1)		PUSHJ	P,.TYOCH##	;TYPE-OUT ON TTY ONLY
1)		PUSH	P,T1		;SAVE IT
1)		PUSH	P,[-1]		;MARKER FOR NO ENTRIES
1)	ENTRY1:	SKIPN	P3,@HT.PTR	;GET POINTER TO SYMBOL
1)		JRST	ENTRY3		;NO POINTER, NO SYMBOL
1)		ADD	P3,GS.LB	;ADD IN BASE
1)		MOVE	T1,0(P3)	;GET FLAGS
1)		TXNE	T1,PT.SYM	;WE ONLY WANT SYMBOLS
1)		TXNN	T1,PS.ENT	;SEE IF AN ENTRY
1)		JRST	ENTRY3		;NO
1)		AOSE	(P)		;FIRST TIME
1)		JRST	ENTRY2		;NO
1)		MOVEI	T1,ENTHDR
1)		PUSHJ	P,.TSTRG##	;YES, OUTPUT HEADER LINE
1)		MOVEI	T1,ENTMES
 
 
1)		PUSHJ	P,.TSTRG##
1)	ENTRY2:	PUSHJ	P,.TTABC##
1)		MOVE	T1,1(P3)	;GET SYMBOL
1)		PUSHJ	P,.TSIXN##	;SIXBIT WORD
1)		PUSHJ	P,.TTABC##	;TAB
1)		MOVE	T1,2(P3)	;VALUE
1)		PUSHJ	P,.TOCTW##	;IN OCTAL
1)		PUSHJ	P,.TCRLF##	;NEW LINE
1)	ENTRY3:	SOJGE	P2,ENTRY1	;LOOP IF MORE SYMBOLS TO LOOK AT
Digital Equipment Corporation       28-AUG-79    Page 173
PCO Log Report


1)		SKIPL	(P)		;-1 IF NONE SEEN
1)		JRST	ENTRY4
1)		MOVEI	T1,ENTHDR
1)		PUSHJ	P,.TSTRG##
1)		MOVEI	T1,[ASCIZ	\No \]
1)		PUSHJ	P,.TSTRG##	;FAILED TO FIND ANY
1)		MOVEI	T1,ENTMES	;REST OF MESSAGE
1)		PUSHJ	P,.TSTRG##
1)	ENTRY4:	POP	P,T1		;CLEAR STACK
1)		POP	P,T1		;RESTORE OLD TYPE-OUT ROUTINE
1)		PJRST	.TYOCH##	;AND RETURN
1)	ENTHDR:	ASCIZ	\[LNKLSS \
1)	ENTMES:	ASCIZ	\Library Search Symbols (Entry points)]
1)	\
1)25	%ESTIMATE:
****
2)25	;**;[1174] Revamp @.ENTRY+1L	DZN	5-Jun-79
2)		MOVE	T1,[PUSHJ P,ENTNXT] ;[1174] SET UP NEXT SYMBOL R
	OUTINE
2)		MOVEM	T1,NXTGLB	;[1174]   ..
2)		MOVE	W3,HT.PRM	;[1174] GET INDEX TO HASH TABLE
2)		ADDI	W3,1		;[1174] START 1 UP FOR SOSGE BEL
	OW
2)		PUSHJ	P,ENTNXT	;[1174] GET NEXT (FIRST) ENTRY P
	OINT
2)		  PJRST	E01LSS		;[1174] NONE THERE--GO SAY SO
2)	E$$LSS::.ERR.	(MS,.EC!.EN,V%L,L%F,S%I,LSS) ;[1174]
2)		.ETC.	(STR,.EC,,,,,<Library search symbols (entry poin
	ts)>) ;[1174]
2)		.ETC.	(JMP,.EC,,,,.ETSAV##) ;[1174] GO PRINT SYMBOLS A
	ND VALUES
2)	;ENTNXT IS CALLED FROM THE ABOVE .ERR. TO RETURN THE NEXT ENTRY
	POINT SYMBOL AND
2)	;VALUE.
2)	;
2)	;CALL:
2)	;	W3/	NEXT HASH TABLE INDEX TO LOOK AT
2)	;RETURNS WITH NON-SKIP IF NO MORE, OTHERWISE SKIP RETURN WITH:
2)	;	W1/	NAME OF NEXT ENTRY POINT
2)	;	W2/	VALUE OF ABOVE
2)	;	W3/	UPDATED
2)	ENTNXT:	PUSHJ	P,.SAVE4##	;[1174] SAVE LNKLOG'S P ACS
2)	ENTLUP:	SOSGE	P2,W3		;[1174] ANY MORE TABLE TO CHECK?
2)		POPJ	P,		;[1174] NO--DONE WITH NON-SKIP R
	ETURN
2)		SKIPN	P3,@HT.PTR	;[1174] GET POINTER TO GS TRIPLE
	T
2)		JRST	ENTLUP		;[1174] NONE THERE--TRY NEXT POI
	NTER
2)		ADD	P3,GS.LB	;[1174] RELOCATE IN CASE IT MOVE
	D
Digital Equipment Corporation       28-AUG-79    Page 174
PCO Log Report


2)		MOVE	T1,0(P3)	;[1174] DO FLAGS SAY SYMBOL AND
	ENTRY?
2)		TXNE	T1,PT.SYM	;[1174]   ..
2)		TXNN	T1,PS.ENT	;[1174]   ..
2)		JRST	ENTLUP		;[1174] NO--TRY NEXT POINTER
2)		MOVE	W1,1(P3)	;[1174] YES--A WINNER! SET UP SY
	MBOL NAME
2)		MOVE	W2,2(P3)	;[1174]   AND VALUE
 
 
2)		JRST	CPOPJ1		;[1174] DONE WITH SKIP RETURN
2)	E01LSS::.ERR.	(MS,.EC,V%L,L%F,S%I,LSS) ;[1174]
2)		.ETC.	(STR,,,,,,<No library search symbols (entry poin
	ts)>) ;[1174]
2)		POPJ	P,		;[1174] DONE
2)26	%ESTIMATE:
**************
1)26		JRST	ZSVERR		;ZERO IS INVALID
1)		MOVEI	T1,EXCPTR	;GET INITIAL POINTER
****
2)27	;**;[1174] Replace @%EXCLUDE+2L	DZN	3-Jun-79
2)		JRST	E$$ZSV		;[1174] ZERO IS INVALID
2)		MOVEI	T1,EXCPTR	;GET INITIAL POINTER
**************
1)31		JRST	MAXERR		;AND IGNORE IF TOO SMALL
1)		MOVEM	T2,MAXCOR	;STORE MAXIMUM INCORE SIZE
****
2)32	;**;[1174] Replace @MAXCORE+28L	DZN	3-Jun-79
2)		JRST	E$$MTS		;[1174] AND IGNORE IF TOO SMALL
2)		MOVEM	T2,MAXCOR	;STORE MAXIMUM INCORE SIZE
**************
1)31		.ERR.	(MS,.EC,V%L,L%W,S%W,MTB,<MAXCOR too big, >)
1)		.ETC.	(COR,.EC!.EP,,,,T2)
****
2)32	;**;[1174] Replace @MAXCORE+35L	DZN	3-Jun-79
2)	E$$MTB::.ERR.	(MS,.EC,V%L,L%W,S%W,MTB,</MAXCOR: too big, >) ;[
	1174]
2)		.ETC.	(COR,.EC!.EP,,,,T2)
**************
1)31	MAXERR:	.ERR.	(MS,.EC,V%L,L%W,S%W,MTS,<MAXCOR too small, at le
	ast >)
1)		.ETC.	(COR,.EC!.EP,,,,T1)
****
2)32	;**;[1174] Replace @MAXERR	DZN	3-Jun-79
2)	E$$MTS::.ERR.	(MS,.EC,V%L,L%W,S%W,MTS,</MAXCOR: too small, at
	least >) ;[1174]
2)		.ETC.	(COR,.EC!.EP,,,,T1)
**************
1)34		JRST	TDS		;TOO LATE TO CHANGE NOW
1)	;RESET GLOBAL SPACE
****
Digital Equipment Corporation       28-AUG-79    Page 175
PCO Log Report


2)35	;**;[1174] Replace @%NOINITIAL+9L	DZN	3-Jun-79
2)		JRST	E$$TDS		;[1174] TOO LATE TO CHANGE NOW
2)	;RESET GLOBAL SPACE
**************
1)34	TDS:	.ERR.	(MS,,V%L,L%W,S%W,TDS,<Too late to delete initial
	 symbols>)
1)		POPJ	P,
****
2)35	;**;[1174] Replace @TDS	DZN	3-Jun-79
2)	E$$TDS::.ERR.	(MS,,V%L,L%W,S%W,TDS,<Too late to delete initial
	 symbols>) ;[1174]
2)		POPJ	P,
**************
1)36		JRST	ZSVERR		;ZERO IS INVALID
1)		SETZ	W3,		;ZERO VALUE FOR DUMMY REQUEST
****
2)37	;**;[1174] Replace @%REQUIRE+4L	DZN	3-Jun-79
2)		JRST	E$$ZSV		;[1174] ZERO IS INVALID
2)		SETZ	W3,		;ZERO VALUE FOR DUMMY REQUEST
**************
1)39		  JRST	SETU		;NOT DEFINED
 
 
1)		  JRST	SETU
1)		MOVE	W2,W3		;RECOVER W2
****
2)40	;**;[1174] Replace @.SET0+8L	DZN	3-Jun-79
2)		  JRST	SETUND		;[1174] NOT DEFINED
2)		  JRST	SETUND		;[1174]
2)		MOVE	W2,W3		;RECOVER W2
**************
1)39		JRST	SETL		;YES, DO NOT ALLOW IT
1)		MOVE	W1,RC.CV(R2)	;GET VALUE
1)		.ERR.	(MS,.EC,V%L,L%W,S%W,DRC,<Decreasing relocation c
	ounter >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)
****
2)40	;**;[1174] Replace @SET1+12L	DZN	3-Jun-79
2)		JRST	E$$SRB		;[1174] YES, DO NOT ALLOW IT
2)		MOVE	W1,RC.CV(R2)	;GET VALUE
2)	E$$DRC::.ERR.	(MS,.EC,V%L,L%W,S%W,DRC,<Decreasing relocation c
	ounter >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)
**************
1)39		.ETC.	(OCT,.EP,,,,W3)
1)		JRST	SET4		;AND CONTINUE
****
2)40		.ETC.	(OCT,.EC!.EP,,,,W3) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		JRST	SET4		;AND CONTINUE
**************
Digital Equipment Corporation       28-AUG-79    Page 176
PCO Log Report


1)40	;**;[1172] Delete @ SET3+6L	JNG	5-Jun-79
1)	;**;[1155] Replace @ SET3+8L	JNG	13-Apr-79
****
2)41	;**;[1172] Delete @SET3+6L	JNG	5-Jun-79
2)	;**;[1155] Replace @ SET3+8L	JNG	13-Apr-79
**************
1)40	SETU:	.ERR.	(MS,.EC,V%L,L%F,S%F,RCU,<Relocation counter >)
1)		.ETC.	(SBX,.EC!.EP,,,,W3)
1)		.ETC.	(STR,.EC,,,,,< undefined, set to >)
1)		.ETC.	(SBX,.EP,,,,W2)
1)	;**;[1132] Delete @ SETE	JNG	30-Jan-79
1)	SETL:	.ERR.	(MS,.EC,V%L,L%W,S%W,SRB,<Attempt to set >)
1)		.ETC.	(SBX,.EC!.EP,,,,W2)	;
1)		.ETC.	(STR,.EC,,,,,< below initial value of >)
1)		.ETC.	(OCT,.EP,,,,W1)		;
1)		POPJ	P,		;IGNORE SWITCH
****
2)41	;**;[1174] Replace @SETU	DZN	3-Jun-79
2)	SETUND:	MOVEI	T1,[ASCIZ /SET:/] ;[1174] SIGNAL UNDEFINED SYMBO
	L ERROR
2)		JRST	E$$USI		;[1174]   ..
2)	;**;[1132] Delete @ SETE	JNG	30-Jan-79
2)	;**;[1174] Replace @SETL	DZN	3-Jun-79
2)	E$$SRB::.ERR.	(MS,.EC,V%L,L%W,S%W,SRB,<Attempt to set relocati
	on counter >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2)	;
2)		.ETC.	(STR,.EC,,,,,< below initial value of >)
2)		.ETC.	(OCT,.EC!.EP,,,,W1) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		POPJ	P,		;IGNORE SWITCH
**************
1)41		  JRST	STARTU		;NO
 
 
1)		  JRST	STARTU		;UNDEFINED
1)		MOVE	T2,2(P1)	;GET VALUE
****
2)42	;**;[1174] Replace @STARTS+4L	DZN	3-Jun-79
2)		  JRST	E$$USA		;[1174] NO
2)		  JRST	E$$USA		;[1174] UNDEFINED
2)		MOVE	T2,2(P1)	;GET VALUE
**************
1)41	STARTU::.ERR.	(MS,.EC,V%L,L%W,S%W,USA,<Undefined start address
	 >)
1)		.ETC.	(SBX,.EP,,,,W2)
1)		POPJ	P,
****
2)42	;**;[1174] Replace @STARTU	DZN	3-Jun-79
2)	E$$USA::.ERR.	(MS,.EC,V%L,L%W,S%W,USA,<Undefined start address
	 >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2) ;[1174]
Digital Equipment Corporation       28-AUG-79    Page 177
PCO Log Report


2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		POPJ	P,
**************
1)42		.ERR.	(MS,,V%M,L%W,S%W,SLS,<Symbols must be in low seg
	ment>)
1)		MOVEI	T2,$SEGLOW	;PUT THEM IN LOW SEG
****
2)43	;**;[1174: Replace @.SYMSEG+6L	DZN	3-Jun-79
2)	E$$OSL::.ERR.	(MS,,V%L,L%W,S%W,OSL,<Overlaid program symbols m
	ust be in low segment>) ;[1174]
2)		MOVEI	T2,$SEGLOW	;PUT THEM IN LOW SEG
**************
1)43	%UNDEFINED:
****
2)44	SUBTTL	SWITCH ACTION -- /UNDEFINED
2)	%UNDEFINED:
**************
1)43		PUSHJ	P,.SAVE4##	;INCASE WE NEED THEM
1)		HRRZ	T1,LOWSUB	;[605] ON TTY ONLY
1)		PUSHJ	P,.TYOCH##	;INITIALIZE
1)		PUSH	P,T1		;STORE OLD
1)		MOVEI	T1,[ASCIZ	\[LNKUGS \]
1)		MOVEI	P2,"]"
1)	UNDEF1::PUSHJ	P,.TSTRG##	;TYPE IDENTIFIER
1)		MOVE	P1,USYM		;GET NUMBER OF UNDEFS IN A PRESE
	RVED AC
1)		SKIPE	T1,P1		;WHERE SCAN EXPECTS NUMBER
1)		PUSHJ	P,.TDECW##	;TYPE NO. UNLESS 0
1)		MOVE	T1,P1		;GET UNDEFS AGAIN
1)		CAILE	T1,2		;LEAVE 0 OR 1 ALONE
1)		MOVEI	T1,2		;SET INDEX TO 0,1, OR 2
1)		MOVE	T1,UNDTAB(T1)	;GET ADDRESS
1)		PUSHJ	P,.TSTRG##	;OUTPUT MESSAGE
1)		SKIPE	T1,P2		;GET TERMINATOR
1)		PUSHJ	P,.TCHAR##	;CLOSE IF "]"
1)		PUSHJ	P,.TCRLF##	;AND CR-LF
1)		JUMPE	P1,UNDF3	;DONE IF NONE LEFT
1)		SKIPA	P2,HT.PRM	;GET INDEX INTO HASH TABLE
1)	UNDF1:	SKIPN	P3,@HT.PTR	;GET POINTER TO SYMBOL
1)		JRST	UNDF2		;NO POINTER, NO SYMBOL
1)		ADD	P3,GS.LB	;ADD IN BASE
1)		MOVE	T1,0(P3)	;GET FLAGS
1)		TXNE	T1,PT.SYM	;WE ONLY WANT SYMBOLS
1)		TXNN	T1,PS.UDF!PS.REQ	;SEE IF UNDEFINED STILL
 
 
1)		JRST	UNDF2		;NO
1)		PUSHJ	P,.TTABC##	;OFFSET EACH LINE
1)		MOVE	T1,1(P3)	;GET SYMBOL
1)		PUSHJ	P,.TSIXN##	;SIXBIT WORD
1)		PUSHJ	P,.TTABC##	;TAB
Digital Equipment Corporation       28-AUG-79    Page 178
PCO Log Report


1)		MOVE	T1,2(P3)	;VALUE
1)		PUSHJ	P,.TOCTW##	;IN OCTAL
1)		PUSHJ	P,.TCRLF##	;NEW LINE
1)	IFE DEBSW,<			;IF DEBUGGING SCAN ALL OF TABLE
1)		SOJLE	P1,UNDF3	;DONE IF NO MORE UNDFS
1)					;INCASE COUNT OFF>
1)	UNDF2:	SOJGE	P2,UNDF1	;LOOP IF MORE SYMBOLS TO LOOK AT
1)	UNDF3:	POP	P,T1		;RESTORE OLD TYO ROUTINE
1)		PJRST	.TYOCH##
1)	UNDTAB:	[ASCIZ	/No undefined global symbols/]
****
2)44	;**;[1174] Revamp @.UNDEFINED+1L	DZN	6-Jun-79
2)		MOVE	T1,[PUSHJ P,UNDNXT] ;[1174] SET UP NEXT SYMBOL R
	OUTINE
2)		MOVEM	T1,NXTGLB	;[1174]   ..
2)		MOVE	W3,HT.PRM	;[1174] SET UP INDEX TO HASH TAB
	LE
2)		ADDI	W3,1		;[1174] SET UP BY 1 FOR SOSGE BE
	LOW
2)	E$$UGS::.ERR.	(MS,.EC!.EN,V%L,L%F,S%I,UGS) ;[1174]
2)	.ETUGS::.ETC.	(XCT,.EC,,,,<[PUSHJ P,UNDHDR]>) ;[1174] PRINT HE
	ADER AND SEE IF ANY SYMBOLS
2)		  .ETC.	(JMP,.EC,,,,.ETDON##) ;[1174] NO UNDEFINED SYMBO
	LS
2)		.ETC.	(JMP,,,,,.ETSAV##) ;[1174] GO PRINT SYMBOLS AND
	VALUES
2)	;UNDHDR  PRINTS THE APPROPRIATE HEADER FOR THE LNKUGS MESSAGE (E
	ITHER NO, 1 OR N
2)	;UNDEFINED GLOBALS).  THE CARDINALITY OF THE HEADER IS DETERMINE
	D BY LOOKING  AT
2)	;USYM,  WHICH  SOMETIMES  GETS OUT OF SYNC WITH THE ACTUAL GS TA
	BLE.  BUT UNDNXT
2)	;(BELOW) PRINTS ALL UNDEFINED GLOBALS REGARDLESS.
2)	UNDHDR:	SKIPN	T1,USYM		;[1174] ANY SYMBOLS TO PRINT?
2)		JRST	UNDHD1		;[1174] NO--PRINT 'NO' INSTEAD O
	F '0'
2)		OUTVIA	.TDECW##	;[1174] PRINT NUMBER OF UNDEFINE
	D GLOBALS
2)	UNDHD1:	MOVE	T1,USYM		;[1174] GET NUMBER OF UNDEFS BAC
	K
2)		CAILE	T1,2		;[1174] TURN MANY INTO 2 FOR HEA
	DER MESSAGE
2)		MOVEI	T1,2		;[1174]   ..
2)		MOVE	T1,UNDTAB(T1)	;[1174] GET PROPER HEADER MESSAG
	E
2)		OUTVIA	.TSTRG##	;[1174] PRINT IT
2)		PJRST	UNDNXT		;[1174] RETURN, SETTING UP FIRST
	 SYMBOL
2)45	;UNDNXT RETURNS THE NEXT UNDEFINED SYMBOL AND ITS VALUE.
2)	;
2)	;CALL:
Digital Equipment Corporation       28-AUG-79    Page 179
PCO Log Report


2)	;	W3/	NEXT HASH TABLE INDEX TO CHECK
2)	;RETURNS  WITH  A  NON-SKIP RETURN IF NO MORE SYMBOLS. OTHERWISE
	, RETURNS WITH A
2)	;SKIP RETURN WITH:
2)	;	W1/	SIXBIT SYMBOL NAME
2)	;	W2/	OCTAL VALUE
2)	;	W3/	UPDATED
2)	UNDNXT::PUSHJ	P,.SAVE4##	;[1174] SAVE LNKLOG'S P ACS
2)	UGSLUP:	SOSGE	P2,W3		;[1174] ANY MORE SYMBOLS TO CHEC
	K?
2)		POPJ	P,		;[1174] NO--NON-SKIP RETURN
2)		SKIPN	P3,@HT.PTR	;[1174] ANY SYMBOL HERE?
2)		JRST	UGSLUP		;[1174] NO--TRY NEXT
2)		ADD	P3,GS.LB	;[1174] YES--RELOCATE SO WE CAN
	LOOK AT IT
2)		MOVE	T1,0(P3)	;[1174] GET SYMBOL'S FLAGS
2)		TXNE	T1,PT.SYM	;[1174] MUST BE A SYMBOL AND UND
	EFINED
2)		TXNN	T1,PS.UDF!PS.REQ;[1174]   ..
 
 
2)		JRST	UGSLUP		;[1174] NO--TRY NEXT
2)		MOVE	W1,1(P3)	;[1174] YES--A WINNER!! SET UP S
	YMBOL'S NAME
2)		MOVE	W2,2(P3)	;[1174]   AND VALUE
2)		JRST	CPOPJ1		;[1174] DONE--GIVE SKIP RETURN
2)	UNDTAB:	[ASCIZ	/No undefined global symbols/]
**************
1)47	%VALUE:
****
2)49	SUBTTL	/VALUE:SYMBOL
2)	;/VALUE:SYMBOL  PRINTS  THE  VALUE OF THE SYMBOL (IF IT HAS ONE
	YET), ALONG WITH
2)	;SOME STATUS INFORMATION (E.G., COMMON).
2)	%VALUE:
**************
1)47		PUSHJ	P,.SAVE4##	;SAVE P1-P4
1)		MOVX	W1,PT.SGN!PT.SYM	;SET FLAGS
1)		SKIPN	W2,T2		;SYMBOL
1)		JRST	ZSVERR		;ZERO IS INVALID
1)		SETZ	W3,		;[605] VALUE 0 UNLESS LONG SYMBO
	L
1)		HRRZ	T1,LOWSUB	;[605] USE OUTSTR'S
1)		PUSHJ	P,.TYOCH##	;INIT TTY
1)		PUSH	P,T1		;SAVE OLD ROUTINE
1)		MOVEI	T1,[ASCIZ	\[LNKVAL	\]
1)		PUSHJ	P,.TSTRG##
1)		MOVE	T1,W2		;SYMBOL
1)		PUSHJ	P,.TSIXN##	;IN SIXBIT
1)		PUSHJ	P,.TTABC##	;SEPARATED BY TAB
1)		PUSHJ	P,TRYSYM##	;SEE IF IN TABLE
Digital Equipment Corporation       28-AUG-79    Page 180
PCO Log Report


1)		  JRST	UNVALU		;SYMBOL UNKNOWN
1)		  JRST	UDVALU		;SYMBOL UNDEFINED
1)		MOVE	T1,2(P1)	;GET VALUE
1)		PUSHJ	P,.TOCTW##	;TYPE IN OCTAL
1)		MOVE	T1,0(P1)	;GET PRIMARY FLAGS
1)		TXNE	T1,PS.COM	;COMMON?
1)		JRST	CMVALU		;YES
1)		MOVEI	T1,[ASCIZ /	defined]/]
1)	VALOUT:	PUSHJ	P,.TSTRG##	;AND DEFINED MESSAGE
1)		PUSHJ	P,.TCRLF##	;FINISH WITH A CR-LF
1)		POP	P,T1		;RESTORE OLD
1)		PJRST	.TYOCH##
1)	CMVALU:	MOVEI	T1,[ASCIZ	/	common, length	/]
1)		PUSHJ	P,.TSTRG##
1)		MOVE	T1,.L+2(P1)	;LENGTH
1)		PUSHJ	P,.TDECW##	;IN DECIMAL
1)		MOVEI	T1,[ASCIZ	\ (decimal)]\]
1)		JRST	VALOUT		;INFORM USER
1)	UNVALU:	MOVEI	T1,[ASCIZ	/unknown]/]
1)		JRST	VALOUT
1)	UDVALU:	MOVE	T1,2(P1)	;GET VALUE
1)		PUSHJ	P,.TOCTW##	;IN OCTAL
1)		MOVEI	T1,[ASCIZ	/	undefined]/]
1)		JRST	VALOUT
1)48	;**;[1122] Replace @%VERSION	DZN	5-Oct-78
****
2)49	;**;[1174] Revamp @.VALUE+1L	DZN	3-Jun-79
2)		MOVX	W1,PT.SGN!PT.SYM	;SET FLAGS
2)		SKIPN	W2,T2		;[1174] SET UP SYMBOL FOR TRYSYM
	 AND CHECK FOR 0
 
 
2)		JRST	E$$ZSV		;[1174] ZERO IS INVALID
2)		SETZ	W3,		;[605] VALUE 0 UNLESS LONG SYMBO
	L
2)	E$$VAL::.ERR.	(MS,.EC,V%L,L%F,S%I,VAL,<Symbol >) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2) ;[1174]
2)		.ETC.	(ASC,.EC,,,,.CHTAB) ;[1174]
2)		.ETC.	(XCT,,,,,<[PUSHJ P,VALOUT]>) ;[1174] THE REST IS
	 COMPLEX
2)		POPJ	P,		;[1174] DONE
2)	;VALOUT  IS  CALLED  FROM  THE  MIDDLE  OF  THE ABOVE .ERR. MESS
	AGE TO PRINT THE
2)	;VARIABLE PORTION OF THE MESSAGE.
2)	VALOUT:	PUSHJ	P,.SAVE4##	;[1174] SAVE LNKLOG'S P ACX
2)		PUSHJ	P,TRYSYM##	;SEE IF IN TABLE
2)		  JRST	VALOND		;[1174] SYMBOL NEVER DEFINED
2)		  JRST	VALOUN		;[1174] SYMBOL UNDEFINED
2)		MOVE	T1,2(P1)	;[1174] PRINT VALUE IN OCTAL
2)		OUTVIA	.TOCTW##	;[1174]   ..
2)		MOVE	T1,0(P1)	;[1174] CHECK FOR COMMON BLOCKS
Digital Equipment Corporation       28-AUG-79    Page 181
PCO Log Report


2)		TXNE	T1,PS.COM	;[1174]   ..
2)		JRST	VALOCM		;[1174] GO PRINT LENGTH OF COMMO
	N
2)		MOVEI	T1,[ASCIZ /	defined/] ;[1174] OTHERWISE JUST
	 ORDINARY SYMBOL
2)	VALOST:	OUTVIA	.TSTRG##	;[1174] PRINT STATUS OF SYMBOL
2)		POPJ	P,		;[1174] DONE
2)	VALOCM:	MOVEI	T1,[ASCIZ /	common, length /] ;[1174] START
	STATUS OF SYMBOL
2)		OUTVIA	.TSTRG##	;[1174]   ..
2)		MOVE	T1,.L+2(P1)	;[1174] PRINT LENGTH IN DECIMAL
2)		OUTVIA	.TDECW##	;[1174]   ..
2)		MOVEI	T1,[ASCIZ /./]	;[1174] A DOT TO INDICATE DECIMA
	L
2)		PJRST	VALOST		;[1174] GO PRINT STATUS AND RETU
	RN
2)	VALOND:	MOVEI	T1,[ASCIZ /unknown/] ;[1174] HAVEN'T SEEN THE SY
	MBOL YET
2)		PJRST	VALOST		;[1174] GO PRINT STATUS AND RETU
	RN
2)	VALOUN:	MOVE	T1,2(P1)	;[1174] PRINT VALUE IN OCTAL
2)		OUTVIA	.TOCTW##	;[1174]   ..
2)		MOVEI	T1,[ASCIZ /	undefined/] ;[1174] ONLY SEEN RE
	FERENCES SO FAR
2)		PJRST	VALOST		;[1174] GO PRINT STATUS AND RETU
	RN
2)50	;**;[1122] Replace @%VERSION	DZN	5-Oct-78
**************
1)51		.ERR.	(MS,0,V%L,L%W,S%W,IMA,<Incremental maps not yet
	available>)
1)	MAPOK:	MOVSI	T1,'MAP'	;DEFAULT EXT
****
2)53	;**;[1174] Replace @%MAP+5L	DZN	3-Jun-79
2)	E$$IMA::.ERR.	(MS,0,V%L,L%W,S%W,IMA,<Incremental maps not yet
	available>) ;[1174]
2)	MAPOK:	MOVSI	T1,'MAP'	;DEFAULT EXT
**************
1)52	LOG1:	PUSHJ	P,LOG99		;OUTPUT INFO MESSAGE
1)		SETZM	LOGTTY		;CLEAR IT
****
2)54	;**;[1174] Replace @LOG1	DZN	3-Jun-79
2)	LOG1:	PUSHJ	P,E$$CLF	;[1174] OUTPUT INFO MESSAGE
2)		SETZM	LOGTTY		;CLEAR IT
**************
1)52		JUMPL	P2,LOG2A	;BEEN INITIALIZED ONCE
1)		.ERR.	(MS,0,V%L,L%I,S%I,LFI,<LOG file initialization>)
1)		PJRST	LOG0		;AND REMOVE DATA BLOCK
1)	LOG2A:	.ERR.	(MS,0,V%L,L%I,S%I,LFC,<LOG file continuation>)
1)		PJRST	LOG0
****
2)54	;**;[1174] Replace @LOG2+11L	DZN	3-Jun-79
Digital Equipment Corporation       28-AUG-79    Page 182
PCO Log Report


 
 
2)		JUMPL	P2,E$$LFC	;[1174] BEEN INITIALIZED ONCE
2)	E$$LFI::.ERR.	(MS,0,V%L,L%I,S%I,LFI,<Log file initialization>)
	 ;[1174]
2)		PJRST	LOG0		;AND REMOVE DATA BLOCK
2)	;**;[1174] Replace @LOG2A	DZN	3-Jun-79
2)	E$$LFC::.ERR.	(MS,0,V%L,L%I,S%I,LFC,<Log file continuation>) ;
	[1174]
2)		PJRST	LOG0
**************
1)53		JUMPL	P2,LOG4B	;BEEN INITIALIZED
1)		.ERR.	(MS,0,V%L,L%I,S%I,LFI)
1)		JRST	RESTP1		;AND RETURN
1)	LOG4B:	.ERR.	(MS,0,V%L,L%I,S%I,LFC)
1)		PJRST	RESTP1
1)	LOG5:	PUSHJ	P,LOG99		;OUTPUT MESSAGE
1)		RELEASE	RC,
****
2)55	;**;[1174] Replace @LOG4+13L	DZN	3-Jun-79
2)		JUMPL	P2,E01LFC	;[1174] BEEN INITIALIZED
2)	E01LFI::.ERR.	(MS,0,V%L,L%I,S%I,LFI) ;[1174]
2)		JRST	RESTP1		;AND RETURN
2)	;**;[1174] Replace @LOG4B	DZN	3-Jun-79
2)	E01LFC::.ERR.	(MS,0,V%L,L%I,S%I,LFC) ;[1174]
2)		PJRST	RESTP1
2)	LOG5:	PUSHJ	P,E$$CLF		;[1174] OUTPUT MESSAGE
2)		RELEASE	RC,
**************
1)53	LOG99:	.ERR.	(MS,.EC,V%L,L%I,S%I,CLF,<Closing LOG file, conti
	nuing on >)
1)		.ETC.	(FSP,,,,,%RC)
****
2)55	;**;[1174] Replace @LOG99	DZN	3-Jun-79
2)	E$$CLF::.ERR.	(MS,.EC,V%L,L%I,S%I,CLF,<Closing log file, conti
	nuing on file >) ;[1174]
2)		.ETC.	(FSP,,,,,%RC)
**************
1)57		JRST	DNSERR		;NO CHAN# NO DEVICE!
1)		MOVE	T1,IO.PTR(T1)	;POINT TO DATA BLOCK
****
2)59	;**;[1174] Replace @DNSCHK+1L	DZN	3-Jun-79
2)		JRST	E$$DNS		;[1174] NO CHAN# NO DEVICE!
2)		MOVE	T1,IO.PTR(T1)	;POINT TO DATA BLOCK
**************
1)57		JRST	DNSERR		;NO, DON'T ALLOW DSK BY DEFAULT
1)		HRLZ	T1,IO.CHN	;GET LAST I/O CHAN INITED
****
2)59	;**;[1174] Replace @DNSCHK+5L	DZN	3-Jun-79
2)		JRST	E$$DNS		;[1174] NO, DON'T ALLOW DSK BY D
	EFAULT
Digital Equipment Corporation       28-AUG-79    Page 183
PCO Log Report


2)		HRLZ	T1,IO.CHN	;GET LAST I/O CHAN INITED
**************
1)57	DNSERR:	.ERR.	(MS,.EC,V%L,L%F,S%F,DNS,<Device not specified fo
	r />)
1)		.ETC.	(STR,.EP,,,,T2)
****
2)59	;**;[1174] Replace @DNSERR	DZN	3-Jun-79
2)	E$$DNS::.ERR.	(MS,.EC,V%L,L%F,S%F,DNS,<Device not specified fo
	r switch />) ;[1174]
2)		.ETC.	(STR,.EP,,,,T2)
**************
1)64		.ERR.	(MS,0,V%L,L%W,S%W,MSN,<MAP sorting not yet imple
	mented>)
1)	$MPSUNSORTED:
****
 
 
2)66	;**;[1174] Replace @MPSNUMERICAL+1L	DZN	3-Jun-79
2)	E$$MSN::.ERR.	(MS,0,V%L,L%W,S%W,MSN,<Map sorting not yet imple
	mented>) ;[1174]
2)	$MPSUNSORTED:
**************
1)64		.ERR.	(MS,0,V%L,L%W,S%W,SSN,<Symbol table sorting not
	yet implemented>)
1)	$SYSUNSORTED:
****
2)66	;**;[1174] Replace @SYSNUMERICAL+1L	DZN	3-Jun-79
2)	E$$SSN::.ERR.	(MS,0,V%L,L%W,S%W,SSN,<Symbol table sorting not
	yet implemented>) ;[1174]
2)	$SYSUNSORTED:
**************
1)65	ZSVERR::.ERR.	(MS,0,V%M,L%W,S%W,ZSV,<Zero switch value illegal
	>)
1)		POPJ	P,
1)	WLDLIT:
1)	END
****
2)67	;**;[1174] Replace @ZSVERR	DZN	3-Jun-79
2)	E$$ZSV::.ERR.	(MS,0,V%L,L%W,S%W,ZSV,<Zero switch value illegal
	>) ;[1174]
2)		POPJ	P,
2)	E$$USI::.ERR.	(MS,.EC,V%L,L%F,S%B,USI,<Undefined symbol >) ;[1
	174]
2)		.ETC.	(SBX,.EC!.EP,,,,W2) ;[1174]
2)		.ETC.	(STR,.EC,,,,,< illegal in switch />) ;[1174]
2)		.ETC.	(STR,.EP,,,,T1) ;[1174]
2)		POPJ	P,		;[1174] RETURNS IF NOT BATCH
2)	WLDLIT:
2)	END
**************
 
Digital Equipment Corporation       28-AUG-79    Page 184
PCO Log Report


[FILCOM]
File 1)	LINK:LNKXIT.MAC[30,4507]  	created: 1544 10-Jun-1979
File 2)	LINK:LNKXIT.MAC[10,645063]	created: 1941 10-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	5-Jun-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	10-Jun-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1172		;DEC EDIT VERSION
1)	VERSION
1)	SEGMENT
1)	;LOCAL ACC DEFINITION
1)	R==R1
1)	SALL
1)2	SUBTTL	REVISION HISTORY
****
2)1	DECEVR==1174		;DEC EDIT VERSION
2)	VERSION
2)	SEGMENT
2)	SALL
2)	;LOCAL ACC DEFINITION
2)	R==R1
2)2	SUBTTL	REVISION HISTORY
**************
1)7	SUBTTL	ENTER HERE
1)	LNKXIT:	JFCL	.+1		;IN CASE CCL ENTRY
1)		.ERR.	(MS,0,V%L,L%I,S%I,EXS,<EXIT segment>)
1)		ZAPTMP			;CLEAR ALL TEMP SPACE
****
2)6	;1174	Label and clean up all error messages.
2)7	SUBTTL	ENTER HERE
2)	LNKXIT:	JFCL	.+1		;IN CASE CCL ENTRY
2)	E$$EXS::.ERR.	(MS,0,V%L,L%I,S%I,EXS,<EXIT segment>) ;[1174]
2)		ZAPTMP			;CLEAR ALL TEMP SPACE
**************
1)8		PUSHJ	P,ER.IOV##	;INPUT ERROR
1)		HRRZM	T1,HL.S1	;
****
2)8		PUSHJ	P,E$$IOV##	;[1174] INPUT ERROR
2)		HRRZM	T1,HL.S1	;
**************
1)9		PUSHJ	P,ER.IOV##
1)		SUB	T1,LC.LB
****
2)9		PUSHJ	P,E$$IOV##	;[1174]
2)		SUB	T1,LC.LB
**************
1)11		PUSH	P,[HC]
1)		.ERR.	(ST,,V%L,L%F,S%F,IHC)
Digital Equipment Corporation       28-AUG-79    Page 185
PCO Log Report


1)	;HERE IF LOWSEG PAGED, WE NEED BOTH ENDS OF FILE AT ONCE
****
2)11		PUSHJ	P,E$$IHC##	;[1174] DIE WITH ERROR
2)	;HERE IF LOWSEG PAGED, WE NEED BOTH ENDS OF FILE AT ONCE
**************
1)11		PUSH	P,[LC]
1)		.ERR.	(ST,,V%L,L%F,S%F,ILC)
1)	;HERE TO JUST BLT JOBDAT AREA TO SAFE PLACE
****
 
 
2)11		PUSHJ	P,E$$ILC##	;[1174] DIE WITH ERROR
2)	;HERE TO JUST BLT JOBDAT AREA TO SAFE PLACE
**************
1)12		.ERR.	(MS,0,V%L,L%I,S%I,SST,<Sorting symbol table>)
1)		PUSHJ	P,GETSST	;[1172] FIND BASE OF SYMBOLS, SE
	T R AND P4
****
2)12	E$$SST::.ERR.	(MS,0,V%L,L%I,S%I,SST,<Sorting symbol table>) ;[
	1174]
2)		PUSHJ	P,GETSST	;[1172] FIND BASE OF SYMBOLS, SE
	T R AND P4
**************
1)13		.ERR.	(MS,0,V%L,L%I,S%I,STC,<Symbol table completed>)
1)		JRST	FINRST		;[1172] GO JOIN COMMON CLEAN UP
	CODE
****
2)13	E$$STC::.ERR.	(MS,0,V%L,L%I,S%I,STC,<Symbol table completed>)
	;[1174]
2)		JRST	FINRST		;[1172] GO JOIN COMMON CLEAN UP
	CODE
**************
1)17		.ERR.	(MS,.EC,V%M,L%W,S%W,NPS,<NON-EXISTENT PSECT SPEC
	IFIED -- >)	;[1110]
1)		.ETC.	(SBX,.EP,,,,SSGNAM)	;[1110] OUTPUT PSECT NAM
	E
1)		MOVEI	R,1		;[1132] SET TO LOW
****
2)17	E$$NPS::.ERR.	(MS,.EC,V%L,L%W,S%W,NPS,<Non-existent psect >)	
	;[1110] ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,SSGNAM)	;[1174] OUTPUT PSECT NAM
	E
2)		.ETC.	(STR,,,,,,< specified for symbol table>) ;[1174]
2)		MOVEI	R,1		;[1132] SET TO LOW
**************
1)23		JRST	GSRED		;NO, ALL IS WELL
1)	;**;[773] Add label @ GSDLT+18L	JNG	30-Sep-78
****
2)23		JRST	E$$RED		;[1174] NO, ALL IS WELL
2)	;**;[773] Add label @ GSDLT+18L	JNG	30-Sep-78
**************
Digital Equipment Corporation       28-AUG-79    Page 186
PCO Log Report


1)23	GSRED:	.ERR.	(MS,.EC,V%L,L%I,S%I,RED,<Reducing low segment to
	 >)
1)		.ETC.	(COR,.EP,,,,.JBREL)
****
2)23	E$$RED::.ERR.	(MS,.EC,V%L,L%I,S%I,RED,<Reducing low segment to
	 >) ;[1174]
2)		.ETC.	(COR,.EP,,,,.JBREL)
**************
1)25		  PUSHJ	P,NO.COR##	;[1172] CANNOT HAPPEN
1)	;NOW READ THE LAST PAGE OF SYMBOLS INTO THE FIRST PAGE OF THE LS
	 AREA.
****
2)25		  PUSHJ	P,E$$MEF##	;[1174] CANNOT HAPPEN
2)	;NOW READ THE LAST PAGE OF SYMBOLS INTO THE FIRST PAGE OF THE LS
	 AREA.
**************
1)32		.ERR.	(MS,.EC,V%L,L%F,S%F,CNW)
1)		.ETC.	(STR,,,,,,<FNDNIC>)
****
2)32	E03CNW::.ERR.	(MS,.EC,V%L,L%F,S%F,CNW) ;[1174]
2)		.ETC.	(STR,,,,,,<FNDNIC>)
**************
1)34		.ERR.	(MS,.EC,V%L,L%W,S%W,ISS,<Insufficient space for
	symbol table>)
1)		.ETC.	(STR,.EC,,,,,< after PSECT >)
1)		.ETC.	(SBX,.EP!.EC,,,,SSGNAM)
1)		.ETC.	(STR,,,,,,<--Table truncated>)
1)	;**;[1172] Replace @ SYMOE1-1L	JNG	5-Jun-79
****
2)34	E$$ISS::.ERR.	(MS,.EC,V%L,L%W,S%W,ISS,<Insufficient space for
	symbol table after psect >) ;[1174]
2)		.ETC.	(SBX,.EP!.EC,,,,SSGNAM)
 
 
2)		.ETC.	(STR,,,,,,< -- table truncated>)
2)	;**;[1172] Replace @ SYMOE1-1L	JNG	5-Jun-79
**************
1)35		  PUSHJ	P,NO.COR##	;[1172] SHOULD NEVER GET HERE
1)		SETZM	LS.PP		;[1172] RESTORE
****
2)35		  PUSHJ	P,E$$MEF##	;[1174] SHOULD NEVER GET HERE
2)		SETZM	LS.PP		;[1172] RESTORE
**************
1)35		PUSHJ	P,NO.COR##	;[1172] YES, LNKOV2 CAN'T HANDLE
	 THAT
1)	> ;END IFN FTOVERLAY
****
2)35		PUSHJ	P,E$$MEF##	;[1174] YES, LNKOV2 CAN'T HANDLE
	 THAT
2)	> ;END IFN FTOVERLAY
**************
Digital Equipment Corporation       28-AUG-79    Page 187
PCO Log Report


1)37		PUSH	P,[MC]
1)		.ERR.	(ST,,V%L,L%W,S%W,OES,<Output error on symbol fil
	e, file closed, job continuing>)
1)		POPJ	P,
****
2)37	E$$OES::PUSH	P,[MC]		;[1174]
2)		.ERR.	(ST,,V%L,L%W,S%W,OES,<Output error on symbol fil
	e, file closed, load continuing>)
2)		POPJ	P,
**************
1)39		PUSH	P,[DC]
1)		.ERR.	(ST,,V%L,L%W,S%W,OES)
****
2)39	E01OES::PUSH	P,[DC]		;[1174]
2)		.ERR.	(ST,,V%L,L%W,S%W,OES)
**************
1)48		JRST	JBCMP1		;[1146] YES--LNKPCX
1)		.ERR.	(MS,.EC,V%L,L%W,S%W,PCL,<Program too complex to
	load, saving as >)
1)		.ETC.	(JMP,.EC,,,,JBCMP2)
1)	JBCMP1:	.ERR.	(MS,.EC,V%L,L%W,S%I,PCX,<Program too complex to
	load and execute, will run from >)
1)	JBCMP2:	.ETC.	(FSP,,,,,%VC)
****
2)49	;**;[1174] Replace @JBCMPX+21L	DZN	3-Jun-79
2)		JRST	E$$PCX		;[1174] YES--LNKPCX
2)	E$$PCL::.ERR.	(MS,.EC,V%L,L%W,S%W,PCL,<Program too complex to
	load, saving as file >) ;[1174]
2)		.ETC.	(JMP,.EC,,,,JBCMP2)
2)	E$$PCX::.ERR.	(MS,.EC,V%L,L%W,S%I,PCX,<Program too complex to
	load and execute, will run from file >) ;[1174]
2)	JBCMP2:	.ETC.	(FSP,,,,,%VC)
**************
1)49	JBSAVE:	.ERR.	(MS,0,V%L,L%I,S%I,CSF,<Creating saved file>)
1)	;**;[1146] Delete @JBSAVE+1L	DZN	8-Mar-79
****
2)50	;**;[1174] Replace @JBSAVE	DZN	3-Jun-79
2)	JBSAVE:				;[1174] WRITE A SAVED FILE
2)	E$$CSF::.ERR.	(MS,0,V%L,L%I,S%I,CSF,<Creating saved file>) ;[1
	174]
2)	;**;[1146] Delete @JBSAVE+1L	DZN	8-Mar-79
**************
1)50		PUSH	P,[DC]
1)		.ERR.	(ST,,V%L,L%F,S%F,SOE,<SAVE file output error>)
1)51	JBSHGR:	MOVEI	T1,DC		;MAKE SURE CHAN# SETUP
****
2)51	;**;[1174] Replace @JBSHGN+7L	DZN	3-Jun-79
2)	E$$SOE::PUSH	P,[DC]		;[1174]
 
 
2)		.ERR.	(ST,,V%L,L%F,S%F,SOE,<Saved file output error>)
Digital Equipment Corporation       28-AUG-79    Page 188
PCO Log Report


	;[1174]
2)52	JBSHGR:	MOVEI	T1,DC		;MAKE SURE CHAN# SETUP
**************
1)56		PUSHJ	P,XPNERR
1)		PUSHJ	P,DVRLS.##	;RELEASE DEV
1)		PJRST	DVZAP.##	;FORGET ABOUT .XPN FILE NOW
1)	XPNERR:	PUSH	P,[LC]
1)		.ERR.	(ST,,V%L,L%W,S%W,OEX,<Output error on XPN file,
	file closed, job continuing>)
1)		POPJ	P,
****
2)57	;**;[1174] Replace @WRTXPN+9L	DZN	3-Jun-79
2)		PUSHJ	P,E$$OEX	;[1174]
2)		PUSHJ	P,DVRLS.##	;RELEASE DEV
2)		PJRST	DVZAP.##	;FORGET ABOUT .XPN FILE NOW
2)	;**;[1174] Replace @XPNERR	DZN	3-Jun-79
2)	E$$OEX::PUSH	P,[LC]	 ;[1174]
2)		.ERR.	(ST,,V%L,L%W,S%W,OEX,<Output error on XPN file,
	file closed, load continuing>) ;[1174]
2)		POPJ	P,
**************
1)62		JRST	[PUSH	P,[DC]		;FATAL CHAN
1)			.ERR.	(LRE,0,V%L,L%F,S%F,ECE,<Error creating E
	XE file - >)]
1)		SKIPE	IO.PTR+%XC	;WANT .XPN FILE?
****
2)63	;**;[1174] Replace @EXEINI+27L	DZN	3-Jun-79
2)		  JRST	E$$ECE		;[1174] CAN'T
2)		SKIPE	IO.PTR+%XC	;WANT .XPN FILE?
**************
1)64		PUSHJ	P,XCMPER	;[1132] I/O ERROR
1)		USETO	DC,9		;[1132] WRITE ZEROS INTO THE RES
	T OF PAGE 0
****
2)65	;**;[1174] Replace @	DZN	3-Jun-79
2)		PUSHJ	P,E$$EOE	;[1174] I/O ERROR
2)		USETO	DC,9		;[1132] WRITE ZEROS INTO THE RES
	T OF PAGE 0
**************
1)65	;THIS IS THE MAIN LOOP FOR THE EXE FILE WRITER.
****
2)65	;**;[1174] Insert after **somewhere**+1P18L	DZN	3-Jun-79
2)	E$$ECE::PUSH	P,[DC]		;[1174] GIVE OFFENDING CHANNEL T
	O LNKLOG
2)		.ERR.	(LRE,0,V%L,L%F,S%F,ECE,<Error creating EXE file>
	) ;[1174]
2)66	;THIS IS THE MAIN LOOP FOR THE EXE FILE WRITER.
**************
1)66		JRST	XCMPER		;[1132] I/O ERROR
1)		MOVE	P2,P3		;[1132] SET UP NEW PROCESS PAGE
****
Digital Equipment Corporation       28-AUG-79    Page 189
PCO Log Report


2)67	;**;[1174] Replace @XCMNWZ+8L	DZN	3-Jun-79
2)		JRST	E$$EOE		;[1174] I/O ERROR
2)		MOVE	P2,P3		;[1132] SET UP NEW PROCESS PAGE
**************
1)67		JRST	XCMPER		;[1132] I/O ERROR
1)		CAML	P3,HC.S0(R)	;[1132] OFF THE END OF THE SEGME
	NT?
****
2)68	;**;[1174] Replace @XCMADV+3L	DZN	3-Jun-79
2)		JRST	E$$EOE		;[1174] I/O ERROR
2)		CAML	P3,HC.S0(R)	;[1132] OFF THE END OF THE SEGME
	NT?
**************
1)72		JRST	XCMPER		;[1132] IO ERROR
 
 
1)		MOVEI	W1,1		;[1132] NOW LOOP OVER DIR, START
	ING AT BLOCK 1
****
2)73	;**;[1174] Replace @XCMPXD+13L	DZN	3-Jun-79
2)		JRST	E$$EOE		;[1174] IO ERROR
2)		MOVEI	W1,1		;[1132] NOW LOOP OVER DIR, START
	ING AT BLOCK 1
**************
1)72		JRST	XCMPER		;[1132] FAILED
1)		MOVE	T2,EXEDIR	;[1132] NOW SETUP AOBJN PTR TO E
	XE DIR PAGE
****
2)73	;**;[1174] Replace @XCMPXE+3L	DZN	3-Jun-79
2)		JRST	E$$EOE		;[1174] FAILED
2)		MOVE	T2,EXEDIR	;[1132] NOW SETUP AOBJN PTR TO E
	XE DIR PAGE
**************
1)72		JRST	XCMPER		;[1132] I/O ERROR
1)		ADDI	W1,4		;[1132] BLOCK NUMBER OF NEXT PAG
	E
****
2)73	;**;[1174] Replace @XCMPXF+8L	DZN	3-Jun-79
2)		JRST	E$$EOE		;[1174] I/O ERROR
2)		ADDI	W1,4		;[1132] BLOCK NUMBER OF NEXT PAG
	E
**************
1)73		JRST	XCMPER		;[1132] ERROR
1)		OUT	DC,T3		;[1132] WRITE IT INTO THE NEXT P
	AGE
1)		  CAIA			;[1132] OK
1)		JRST	XCMPER		;[1132] ERROR
1)		SUBI	W1,4		;[1132] BACK UP ONE MORE DATA BL
	OCK
****
2)74	;**;[1174] Replace @XCMPXG+5L	DZN	3-Jun-79
Digital Equipment Corporation       28-AUG-79    Page 190
PCO Log Report


2)		JRST	E$$EOE		;[1174] ERROR
2)		OUT	DC,T3		;[1132] WRITE IT INTO THE NEXT P
	AGE
2)		  CAIA			;[1132] OK
2)		JRST	E$$EOE		;[1174] ERROR
2)		SUBI	W1,4		;[1132] BACK UP ONE MORE DATA BL
	OCK
**************
1)74		  PUSHJ	P,NO.COR##	;[1132] FR.CNT LIED!!
1)		SPOP	<P2,P1>		;[1132] RESTORE THE SACRED COWS
****
2)75		  PUSHJ	P,E$$MEF##	;[1174] FR.CNT LIED!!
2)		SPOP	<P2,P1>		;[1132] RESTORE THE SACRED COWS
**************
1)75		JRST	XCMPER		;[1132] I/O ERROR
1)		JUMPG	R2,XOVNXW	;[1132] IF NOT DONE, LOOP BACK T
	O TRY AGAIN
****
2)76	;**;[1174] Replace @XOVDMP+9L	DZN	3-Jun-79
2)		JRST	E$$EOE		;[1174] I/O ERROR
2)		JUMPG	R2,XOVNXW	;[1132] IF NOT DONE, LOOP BACK T
	O TRY AGAIN
**************
1)78		JRST	XCMPER		;ERROR
1)		CAIE	T3,1		;WAS IT JUST SIMPLE CASE?
****
2)79	;**;[1174] Replace @**somewhere**+7L	DZN	3-Jun-79
2)		JRST	E$$EOE		;[1174] ERROR
2)		CAIE	T3,1		;WAS IT JUST SIMPLE CASE?
**************
1)78			JRST	XCMPER]		;ERROR
1)		MOVE	T1,EXEDIR	;GET BASE AGAIN
****
 
 
2)79	;**;[1174] Replace @**somewhere**+1P18L	DZN	3-Jun-79
2)			JRST	E$$EOE]		;[1174] ERROR
2)		MOVE	T1,EXEDIR	;GET BASE AGAIN
**************
1)78	XCMPER:	PUSH	P,[DC]
1)		.ERR.	(ST,,V%L,L%F,S%F,EOE,<EXE FILE OUTPUT ERROR>)
1)	>;END OF IFN FTEXE
****
2)79	;**;[1174] Replace @XCMPER	DZN	3-Jun-79
2)	E$$EOE::PUSH	P,[DC]		;[1174]
2)		.ERR.	(ST,,V%L,L%F,S%F,EOE,<EXE file output error>) ;[
	1174]
2)	>;END OF IFN FTEXE
**************
1)80		  PUSHJ	P,NO.COR##	;CANNOT HAPPEN
1)		POP	P,P2		;RESTORE RELATIVE ADDRESS
Digital Equipment Corporation       28-AUG-79    Page 191
PCO Log Report


****
2)81		  PUSHJ	P,E$$MEF##	;[1174] CANNOT HAPPEN
2)		POP	P,P2		;RESTORE RELATIVE ADDRESS
**************
1)82	ZCMP7E:	PUSH	P,[DC]
1)		.ERR.	(ST,,V%L,L%F,S%F,SOE)
1)83	;NOW TO MOVE DOWN  THE REMAINING DATA IN THE BUFFER PRIOR TO
****
2)83	;**;[1174] Replace @ZCMPR7+10L	DZN	3-Jun-79
2)		JRST	E$$SOE		;[1174] PRINT ERROR AND DIE
2)84	;NOW TO MOVE DOWN  THE REMAINING DATA IN THE BUFFER PRIOR TO
**************
1)83		; ..
1)84		; ..
1)	ZCMP9A:	SKIPE	T1,LSTPAG	;NOW CUT BACK CORE
****
2)84	ZCMP9A:	SKIPE	T1,LSTPAG	;NOW CUT BACK CORE
**************
1)85		  JRST	OVRENE		;[616] REPORT RENAME ERROR
1)		SKIPE	PLOTSW		;WANT PLOT PACKAGE?
****
2)85	;**;[1174] Replace @ENDCMP+16L	DZN	3-Jun-79
2)		  JRST	E01FRE		;[1174] REPORT RENAME ERROR
2)		SKIPE	PLOTSW		;WANT PLOT PACKAGE?
**************
1)85	OVRENE:	PUSH	P,[%OC]		;[616] SET UP CORRECT CHANNEL
1)		.ERR.	(LRE,,V%L,L%F,S%F,FRE)	;[616] GIVE A FATAL ERRO
	R
****
2)85	;**;[1174] Replace @OVRENE	DZN	3-Jun-79
2)	E01FRE::PUSH	P,[%OC]		;[1174] SET UP CORRECT CHANNEL
2)		.ERR.	(LRE,,V%L,L%F,S%F,FRE)	;[616] GIVE A FATAL ERRO
	R
**************
1)87		XALL
1)	DEBNAM:	KEYWORDS
1)		SALL
1)88	SUBTTL	RUN THE PROGRAM
****
2)87	DEBNAM:	KEYWORDS
2)88	SUBTTL	RUN THE PROGRAM
**************
1)88		.ERR.	(MS,0,V%L,L%F,S%I,NSA,<No start address>)
 
 
1)	RUNEX1:	SKIPE	ERRNO		;[1144] DON'T RUN IF ANY ERRORS
****
2)88	;**;[1174] Replace @RUNEXE+3L	DZN	3-Jun-79
2)	E$$NSA::.ERR.	(MS,0,V%L,L%F,S%I,NSA,<No start address>) ;[1174
	]
2)	RUNEX1:	SKIPE	ERRNO		;[1144] DON'T RUN IF ANY ERRORS
Digital Equipment Corporation       28-AUG-79    Page 192
PCO Log Report


**************
1)88	RUNDLT:	.ERR.	(MS,0,V%L,L%F,S%F,DLT,<Execution deleted>)
1)		JRST	ENDZAP		;[1144] JUST ZERO MEMORY AND EXI
	T
****
2)88	;**;[1174] Replace @RUNDLT	DZN	3-Jun-79
2)	E$$DLT::.ERR.	(MS,0,V%L,L%F,S%W,DLT,<Execution deleted>) ;[117
	4]
2)		JRST	ENDZAP		;[1144] JUST ZERO MEMORY AND EXI
	T
**************
1)90	GFEERR:	.ERR.	(MS,.EC,V%L,L%F,S%F,GFE,<GTJFN% JSYS failed for
	>)
1)		.ETC.	(STR,,,,,RUNSPC)
****
2)90	;**;[1174] Replace @GFEERR	DZN	3-Jun-79
2)	E$$GFE::.ERR.	(MS,.EC,V%L,L%F,S%F,GFE,<GTJFN% JSYS failed for
	file >) ;[1174]
2)		.ETC.	(STR,,,,,RUNSPC)
**************
1)93	TERMES:	.ERR.	(MS,0,V%L,L%I,S%I,FIN,<LINK finished>)
1)		MOVEI	T1,FINMES	;TELL USER WE'VE CLOSE LOG FILE
1)		SKIPE	LOGSUB		;BUT ONLY IF A REAL LOG FILE
1)		PUSHJ	P,.TSTRG##
1)		SKIPN	IO.PTR+RC	;SEE IF A LOG FILE?
****
2)93	;**;[1174] Replace @TERMES	DZN	3-Jun-79
2)	TERMES:
2)	E$$FIN::.ERR.	(MS,0,V%L,L%I,S%I,FIN,<LINK finished>) ;[1174]
2)	E$$ELF::.ERR.	(MS,,V%L,L%I,S%I,ELF,<End of log file>) ;[1174]
2)		SKIPN	IO.PTR+RC	;SEE IF A LOG FILE?
**************
1)93		PUSH	P,[%RC]		;[616] CHANNEL FOR ERROR
1)		.ERR.	(LRE,,V%L,L%F,S%F,FRE)	;[616] SEND THE MESSAGE
1)	FINMES:	ASCIZ	\[LNKELF	End of log file]
1)	\
1)	;**;[1144] Insert after FINMES+1L	DZN	16-Feb-79
****
2)93	;**;[1174] Replace @TERMES+13L	DZN	3-Jun-79
2)	E02FRE::PUSH	P,[%RC]		;[1174] CHANNEL FOR ERROR
2)		.ERR.	(LRE,,V%L,L%F,S%F,FRE)	;[616] SEND THE MESSAGE
2)	;**;[1144] Insert after FINMES+1L	DZN	16-Feb-79
**************
1)93		SKIPN	T1,RUNAME	;[1144] ELSE [LNKXIT program exe
	cution]
1)		MOVE	T1,LODNAM	;[1144] GET PROGRAM NAME TO PRIN
	T
1)		.ERR.	(MS,.EC!.EN,V%L,L%F,S%I,XCT)
1)		.ETC.	(SBX,.EC!.EP,,,,T1)
****
2)93		SKIPN	T1,RUNAME	;[1144] ELSE [LNKXCT program exe
Digital Equipment Corporation       28-AUG-79    Page 193
PCO Log Report


	cution]
2)		MOVE	T1,LODNAM	;[1144] GET PROGRAM NAME TO PRIN
	T
2)	;**;[1174] Replace @EXEMES+4L	DZN	3-Jun-79
2)	E$$XCT::.ERR.	(MS,.EC!.EN,V%L,L%F,S%I,XCT) ;[1174]
2)		.ETC.	(SBX,.EC!.EP,,,,T1)
**************
1)93		.ERR.	(MS,.EC!.EN,V%L,L%F,S%I,DEB)
1)		.ETC.	(STR,.EC!.EP,,,,T1)
 
 
****
2)93	;**;[1174] Replace @EXEME1+1L	DZN	3-Jun-79
2)	E$$DEB::.ERR.	(MS,.EC!.EN,V%L,L%F,S%I,DEB) ;[1174]
2)		.ETC.	(STR,.EC!.EP,,,,T1)
**************
1)94		PUSH	P,IO.CHN	;SAVE CHANNEL FOR LNKLOG
1)		.ERR.	(LRE,,V%L,L%F,S%F,FRE)	;
****
2)94	;**;[1174] Replace @DVMOV.+12L	DZN	3-Jun-79
2)	E03FRE::PUSH	P,IO.CHN	;[1174] SAVE CHANNEL FOR LNKLOG
2)		.ERR.	(LRE,,V%L,L%F,S%F,FRE)	;
**************
1)94		  JRST	LKPERR##	;???
1)		MOVE	T3,I.SIZ(T1)	;GET INPUT FILE SIZE FOR LATER
****
2)94	;**;[1174] Replace @DVCOPY+5L	DZN	30-May-79
2)		  JRST	E01FLE##	;[1174] ???
2)		MOVE	T3,I.SIZ(T1)	;GET INPUT FILE SIZE FOR LATER
**************
1)95		  JRST	INERR		;ERROR, GIVE UP
1)		MOVE	T3,I.SIZ(P1)	;RETRIEVE FILE SIZE
****
2)95	;**;[1174] Replace @DVMOV1+5L	DZN	3-Jun-79
2)		  JRST	E$$EOI		;[1174] ERROR, GIVE UP
2)		MOVE	T3,I.SIZ(P1)	;RETRIEVE FILE SIZE
**************
1)95		JRST	DVMOV4		;OH WELL, GIVE ERROR
1)	DVMOV2:	PUSHJ	P,DY.RET##	;DONE WITH THE BUFFER, SO FREE I
	T
****
2)95	;**;[1174] Replace @DVMOV1+13L	DZN	3-Jun-79
2)		JRST	E$$EOO		;[1174]OH WELL, GIVE ERROR
2)	DVMOV2:	PUSHJ	P,DY.RET##	;DONE WITH THE BUFFER, SO FREE I
	T
**************
1)96	DVMOV4:	PUSH	P,[TC]		;TELL WHICH CHANNEL HAD THE ERRO
	R
1)		.ERR.	(ST,,V%L,L%F,S%F,EOO,<Error on output>)	;
1)	INERR:	.ERR.	(ST,,V%L,L%F,S%F,EOI,<Error on input>)	;
1)97	;HERE TO GET PROTECTION CODE RIGHT
Digital Equipment Corporation       28-AUG-79    Page 194
PCO Log Report


****
2)96	;**;[1174] Replace @DVMOV4	DZN	3-Jun-79
2)	E$$EOO::PUSH	P,[TC]		;[1174] TELL WHICH CHANNEL HAD T
	HE ERROR
2)		.ERR.	(ST,,V%L,L%F,S%F,EOO,<Error on output>)	;
2)	E$$EOI::;PUSH	P,IO.CHN	;[1174] CHANNEL ALREADY ON STACK
2)		.ERR.	(ST,,V%L,L%F,S%F,EOI,<Error on input>)	;
2)97	;HERE TO GET PROTECTION CODE RIGHT
**************
1)103		OUTSTR	[ASCIZ	\[LNKNSA No start address]
1)	\]
****
2)104	E01NSA::.OERR.	[ASCIZ	\[LNKNSA No start address]
2)	\]
**************
1)105		MOVE	T1,[[ASCIZ /?LNKDLT Execution Deleted/],,%TMES]
	;[1144]
1)		BLT	T1,%TMES+5
****
2)107		MOVE	T1,[[ASCIZ /%LNKDLT	Execution deleted/],,%TM
	ES] ;[1144]
2)		BLT	T1,%TMES+5
 
 
**************
1)107		MOVE	T1,[ASCIZ \[LNKDEB \]		;
1)		MOVE	T1+1,1+[ASCIZ \[LNKDEB \]	;
1)	> ;END IFE FTKIONLY
1)	IFN FTKIONLY,<
1)		DMOVE	T1,[ASCIZ \[LNKDEB \]		;
1)	> ;END IFN FTKIONLY
****
2)109		MOVE	T1,[ASCIZ \[LNKDEB	\]		;
2)		MOVE	T1+1,1+[ASCIZ \[LNKDEB	\]	;
2)	> ;END IFE FTKIONLY
2)	IFN FTKIONLY,<
2)		DMOVE	T1,[ASCIZ \[LNKDEB	\]		;
2)	> ;END IFN FTKIONLY
**************
1)108		OUTSTR	%TMES		;INFO INDICATOR
1)	%DDMES:	OUTSTR	%DTXT		;NAME OF DEBUGGER
****
2)110	E01XCT::			;[1174]
2)	E01DEB::.OERR.	%TMES		;[1174] LNKDEB OR LNKXCT
2)	%DDMES:	OUTSTR	%DTXT		;NAME OF DEBUGGER
**************
1)109	%TMES:	ASCIZ	\[LNKXCT \
1)	%DTXT:	EXP	0,0		;ENOUGH FOR 6 CHARS PLUS NULL
1)	%RTXT:	ASCIZ	\ Execution]
1)	\
1)	REMERR:	TLZN	T2,-1		;REMAP FOR V/M?
Digital Equipment Corporation       28-AUG-79    Page 195
PCO Log Report


1)		JRST	REMER1		;NO, OR FAILED TWICE
1)		HRRZS	%1		;MAKE SURE CORE UUO IN BOUNDS
****
2)111	%TMES:	ASCIZ	\[LNKXCT	\
2)	%DTXT:	EXP	0,0		;ENOUGH FOR 6 CHARS PLUS NULL
2)	%RTXT:	ASCIZ	\ execution]
2)	\
2)	REMERR:	TLZN	T2,-1		;REMAP FOR V/M?
2)	;**;[1174] Replace @REMERR+1L	DZN	7-Jun-79
2)		JRST	E01RME		;[1174] NO, OR FAILED TWICE
2)		HRRZS	%1		;MAKE SURE CORE UUO IN BOUNDS
**************
1)109		OUTSTR	%VMRERR		;WARN USER
1)		JRST	%REMAP		;NOW TRY AGAIN
1)	REMER1:	OUTSTR	%RMPE		;ERROR MESSAGE
1)		EXIT
****
2)111	;**;[1174] Replace @REMERR+6L	DZN	7-Jun-79
2)	E$$RME::.OERR.	%VMRERR		;[1174] LNKRME
2)		JRST	%REMAP		;NOW TRY AGAIN
2)	E01RME::.OERR.	%RMPE		;[1174] LNKRME
2)		EXIT
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 650
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -286*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          13-JUN-79

[Programmer]            GILBERT

[Routines]              LNKLOD    LNKWLD    LNKERR

[Key Words]             /UPTO:      SYMBOL      /START

[Source Before Edit]    %4A  (001174)

[Source After Edit]     %4A  (001175)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 651
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK will accept /UPTO:symbol, but will ignore it.
 

                        **********


[DIAGNOSIS]
 
     The switch tables say it will take a symbol  name,  but
there is no support code anywhere else to implement it.
 

                        **********


[CURE]
 
     Add the support code, including the new LNKUUA message.
As  part of this edit, /START:symbol was made to not look up
the symbol until LINK  sees  /GO,  in  case  the  symbol  is
defined in a later module.  Also, a bug that caused LINK not
to define the symbol %OWN for Algol programs if LINK  issued
the LNKUSA message has been fixed.
 
     This edit requires edit 1174, and thus  should  NOT  be
installed as a patch.
 
 
Digital Equipment Corporation       28-AUG-79    Page 652
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKHST.MAC[30,3737,LINK]	created: 1633 10-JUNE-1979
File 2)	DSKB:LNKHST.MAC[30,3737,LINK,NEW]	created: 0115 12-JUNE-19
	79
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	10-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	12-Jun-7
	9
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1175		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1175	JNG	12-Jun-79
2)	;	Fix /START and /UPTO with symbols as arguments.
2)	;	Routines: LNKLOD, LNKWLD, LNKERR
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 653
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKLOD.MAC[30,3737,LINK]	created: 1938 10-JUNE-1979
File 2)	DSKB:LNKLOD.MAC[30,3737,LINK,NEW]	created: 0109 12-JUNE-19
	79
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	10-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	12-Jun-7
	9
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1175		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1175	Fix /UPTO with a symbolic argument.
2)	
**************
1)66		JRST	GOUSYM		;NO
1)		MOVX	W1,PT.SGN!PT.SYM	;
1)		PUSHJ	P,TRYSYM##	;SEE IF DEFINED BY NOW
1)		  JRST	GOSTER		;CANNOT HAPPEN
1)		  JRST	GOSTER		;UNDEFINED
1)		MOVE	T1,2(P1)	;GET VALUE
****
2)66	;**;[1175] Change @ GOSTRT+1L	JNG	12-Jun-79
2)		JRST	GOUPTO		;[1175] NO
2)		MOVX	W1,PT.SGN!PT.SYM	;
2)		PUSHJ	P,TRYSYM##	;SEE IF DEFINED BY NOW
2)		  JRST	E$$USA		;[1175] UNDEFINED
2)		  JRST	E$$USA		;[1175] UNDEFINED
2)		MOVE	T1,2(P1)	;GET VALUE
**************
1)66	GOUSYM:	SKIPN	USYM		;STILL SOME UNDEFS?
****
2)66	;**;[1175] Replace @ GOSTRT+9L	JNG	12-Jun-79
2)		JRST	GOUPTO		;[1175] GO CHECK /UPTO
2)	
2)	
2)	;HERE WHEN THE START ADDRESS IS UNDEFINED.
2)	
2)	E$$USA::.ERR.	(MS,.EC,V%L,L%W,S%W,USA,<Undefined start address
	 >) ;[1174]
2)		.ETC.	(SBX,.EP,,,,W2) ;[1174]
2)		SETZM	STADDR		;[1175] CLEAR ADDRESS
Digital Equipment Corporation       28-AUG-79    Page 654
PCO Log Report


2)		SETZM	STADDR+1	;[1175] ...
2)	
2)	
2)	;NOW TO CHECK THE /UPTO SYMBOL, IF ANY
2)	
2)	GOUPTO:	MOVE	W2,SYMLIM	;[1175] GET /UPTO VALUE
2)		TXNN	W2,77B5		;[1175] SYMBOLIC?
2)		JRST	GOUSYM		;[1175] NO
2)		MOVX	W1,PT.SGN!PT.SYM	;[1175] FLAGS
2)		PUSHJ	P,TRYSYM##	;[1175] SEE IF DEFINED
2)		  JRST	E$$UUA		;[1175] NO
2)		  JRST	E$$UUA		;[1175] NO
2)		MOVE	T1,2(P1)	;[1175] YES, FETCH VALUE
 
 
2)		MOVEM	T1,SYMLIM	;[1175] STORE FOR LNKXIT
2)		JRST	GOUSYM		;[1175] GO CHECK UNDEFINED SYMBO
	LS
2)	
2)	
2)	;HERE IF THE /UPTO ADDRESS IS UNDEFINED.
2)	
2)	E$$UUA::.ERR.	(MS,.EC,V%L,L%W,S%W,UUA,<Undefined /UPTO: addres
	s >)
2)		.ETC.	(SBX,.EP,,,,W2)	;[1175]
2)		SETZM	SYMLIM		;[1175] NO LIMIT
2)		; ..
2)	
2)67		; ..
2)	
2)	;HERE TO MAKE A LAST-DITCH TRY AT DEFINING THE LAST UNDEFINED SY
	MBOL.
2)	
2)	GOUSYM:	SKIPN	USYM		;STILL SOME UNDEFS?
**************
1)66		JRST	LODXIT		;EXIT
1)	
1)	;**;[1174] Replace @GOSTER	DZN	3-Jun-79
1)	GOSTER:	PUSHJ	P,E$$USA##	;[1174] UNDEFINED MESSAGE
1)		SETZM	STADDR		;CLEAR ADDRESS
1)		SETZM	STADDR+1	;...
1)	;	JRST	LODXIT
1)	
****
2)67	;**;[1175] Delete @ GOSTER	JNG	12-Jun-79
2)	
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 655
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKWLD.MAC[30,3737,LINK]	created: 2313 11-JUNE-1979
File 2)	DSKB:LNKWLD.MAC[30,3737,LINK,NEW]	created: 0137 12-JUNE-19
	79
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	10-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	12-Jun-7
	9
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1175		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1175	Don't lookup symbolic argument to /START until /GO, move
	 USA message.
2)	
**************
1)42		TLNE	T2,770000	;CHECK FOR SYMBOLIC ADDRESS
1)		JRST	STARTS		;IS SYMBOLIC
1)	%START:
****
2)42	;**;[1175] Delete @ .START+1L	JNG	12-Jun-79
2)	
2)	%START:
**************
1)42		TLNN	T2,770000	;SYMBOLIC IS LEFT JUSTIFIED
1)		JRST	STARTO		;OCTAL ONLY
1)		PUSHJ	P,STRLSW	;WAIT TIL FILE IS LOADED INCASE
	IT CONTAINS ADDRESS
1)		MOVE	T2,2(P2)	;GET SYMBOL AGAIN
1)	STARTS:	PUSHJ	P,.SAVE4##	;SAVE P1-P4
1)		MOVE	W2,T2		;SYMBOL
1)		SETZB	W1,W3		;NO VALUE
1)		PUSHJ	P,TRYSYM##	;SEE IF DEFINED
1)	;**;[1174] Replace @STARTS+4L	DZN	3-Jun-79
1)		  JRST	E$$USA		;[1174] NO
1)		  JRST	E$$USA		;[1174] UNDEFINED
1)		MOVE	T2,2(P1)	;GET VALUE
1)	STARTO:	MOVEM	T2,STADDR	;USE THIS AS STARTING ADDRESS
1)		SETZB	T2,STADDR+1	;CLEAR ADDRESS
1)		SETZM	STANAM		;[655] DON'T KNOW MODULE NAME
1)		PJRST	.NOSTART	;AND IGNORE ALL OTHER  STARTING
	ADDRESSES
Digital Equipment Corporation       28-AUG-79    Page 656
PCO Log Report


1)	
1)	;**;[1174] Replace @STARTU	DZN	3-Jun-79
1)	E$$USA::.ERR.	(MS,.EC,V%L,L%W,S%W,USA,<Undefined start address
	 >) ;[1174]
1)		.ETC.	(SBX,.EC!.EP,,,,W2) ;[1174]
1)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
1)		POPJ	P,
1)	
****
2)42	;**;[1175] Replace @ %START+5L	JNG	12-Jun-79
2)		SETZ	T3,		;[1175] ASSUME SYMBOL NAME IS ZE
	RO
2)		TXNE	T2,77B5		;[1175] SYMBOL OR ADDRESS?
2)		EXCH	T2,T3		;[1175] SYMBOL, MAKE OFFSET BE Z
	ERO
2)		DMOVEM	T2,STADDR	;[1175] STORE FOR END OF LOADING
2)		SETZM	STANAM		;[655] DON'T KNOW MODULE NAME
2)		PJRST	.NOSTART	;AND IGNORE ALL OTHER  STARTING
	ADDRESSES
 
 
2)	;**;[1175] Move E$$USA to LNKLOD	JNG	12-Jun-79
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 657
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKERR.MAC[30,3737,LINK]	created: 1720 11-JUNE-1979
File 2)	DSKB:LNKERR.MAC[30,3737,LINK,NEW]	created: 0116 12-JUNE-19
	79
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	10-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	12-Jun-79
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1175		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1175	Add the LNKUUA message.
2)	
**************
1)10			{Detected in module [symbol] from file [file]}
1)	USC   31    8	Undefined subroutine [symbol] called from link n
	umber [decimal] {name
****
2)10	USC   31    8	Undefined subroutine [symbol] called from link n
	umber [decimal] {name
**************
1)10	VAL   31    1	Symbol [symbol] [octal] [type]
****
2)10	UUA    8    8	Undefined /UPTO: address [symbol]
2)	VAL   31    1	Symbol [symbol] [octal] [type]
**************
1)11	HASH	VAL,0,<^_
****
2)11	HASH	UUA,0,<^_
2)		You gave the named symbol as an  argument  to  the  /UPT
	O:
2)		switch,  but  the symbol was never defined.  Load a modu
	le
2)		that defines the symbol, or change your  argument  to  t
	he
2)		/UPTO: switch.>
2)	
2)	HASH	VAL,0,<^_
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 658
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -287*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          13-JUN-79

[Programmer]            GILBERT

[Routines]              LNKWLD

[Key Words]             /SYMSEG:PS  /OVERLAY    LNKXIT BUG

[Source Before Edit]    %4A  (001175)

[Source After Edit]     %4A  (001176)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 659
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK allows /SYMSEG:PSECT:  without complaint, but then
blows up in LNKXIT.
 

                        **********


[DIAGNOSIS]
 
     This was never intended to work, but the  only  keyword
/SYMSEG:  disallows is HIGH.
 

                        **********


[CURE]
 
     Disallow   all   keywords   except   /SYMSEG:LOW    and
/SYMSEG:NONE.
 
 
Digital Equipment Corporation       28-AUG-79    Page 660
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKHST.175[30,3737,LINK,NEW]	created: 0231 12-JUNE-19
	79
File 2)	DSKB:LNKHST.MAC[30,3737,LINK,NEW]	created: 0159 12-JUNE-19
	79
 
1)1	DECEVR==1175		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1176		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1176	JNG	12-Jun-79
2)	;	Disallow /SYMSEG:PSECT:name with /OVERLAY.
2)	;	Routine: LNKWLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 661
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKWLD.175[30,3737,LINK,NEW]	created: 0229 12-JUNE-19
	79
File 2)	DSKB:LNKWLD.MAC[30,3737,LINK,NEW]	created: 0225 12-JUNE-19
	79
 
1)1	DECEVR==1175		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1176		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1176	Disallow /SYMSEG:PSECT:name if loading overlays.
2)	
**************
1)43	%SYMSEG:	PUSHJ	P,STRLSW	;[705] WAIT TIL FILE LOA
	DED
1)	.SYMSEG:			;[705]
****
2)43	%SYMSEG:PUSHJ	P,STRLSW	;[705] WAIT TIL FILE LOADED
2)	.SYMSEG:			;[705]
**************
1)43		SKIPL	LNKMAX		;LOADED ANY OVERLAYS?
1)		CAIE	T2,$SEGHIGH	;CANNOT LOAD SYMBOLS IN HIGH SEG
1)		JRST	%SYMSG		;NO
1)	;**;[1174: Replace @.SYMSEG+6L	DZN	3-Jun-79
1)	E$$OSL::.ERR.	(MS,,V%L,L%W,S%W,OSL,<Overlaid program symbols m
	ust be in low segment>) ;[1174]
****
2)43	;**;[1176] Replace @ .SYMSEG+3L	JNG	12-Jun-79
2)		SKIPN	OVERLW		;[1176] USER TYPE /OVERLAY?
2)		JRST	%SYMSG		;[1176] NO, PROCEED
2)		CAIE	T2,$SEGLOW	;[1176] USER WANT LOW SEGMENT?
2)		CAIN	T2,$SEGNONE	;[1176] OR NO SYMBOLS?
2)		JRST	%SYMSG		;[1176] YES, ONLY POSSIBILITIES
	WITH OVERLAYS
2)	;**;[1174] Replace @.SYMSEG+6L	DZN	3-Jun-79
2)	E$$OSL::.ERR.	(MS,,V%L,L%W,S%W,OSL,<Overlaid program symbols m
	ust be in low segment>) ;[1174]
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 662
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -288*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         3A(560), 4A(1122)

[Date Entered]          13-JUN-79

[Programmer]            GILBERT

[Routines]              LNKPAR    LNKWLD

[Key Words]             /VERSION    LOST /SW

[Source Before Edit]    %4A  (001176)

[Source After Edit]     %4A  (001177)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 663
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     If a command string to  LINK  contains  /VERSION  in  a
global  context, then any local switches associated with the
same file spec will be lost.  This  will  only  happen  with
LINK  3A or earlier, or with LINK 4 after edit 1122 has been
installed.
 

                        **********


[DIAGNOSIS]
 
     The /VERSION switch  processing  routine  always  calls
STRLSW,  which  is  not  legal for switches seen in a global
context.
 

                        **********


[CURE]
 
     Add a new entry to the /VERSION processing routine that
does not call STRLSW, and get to it if /VERSION is seen in a
global context.
 
     This edit requires edit 1122.
 
 
Digital Equipment Corporation       28-AUG-79    Page 664
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKHST.176[30,3737,LINK,NEW]	created: 0239 12-JUNE-19
	79
File 2)	DSKB:LNKHST.MAC[30,3737,LINK,NEW]	created: 0247 12-JUNE-19
	79
 
1)1	DECEVR==1176		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1177		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1177	JNG	12-Jun-79
2)	;	Make /VERSION in global context not lose local switches.
2)	;	Routines: LNKPAR, LNKWLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 665
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKPAR.174[30,3737,LINK,NEW]	created: 0244 12-JUNE-19
	79
File 2)	DSKB:LNKPAR.MAC[30,3737,LINK,NEW]	created: 0244 12-JUNE-19
	79
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	10-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	12-Jun-7
	9
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1177		;DEC EDIT VERSION
2)	
**************
1)5	
****
2)5	;1177	Add a global entry point for /VERSION in SWTCHS macro.
2)	
**************
1)34	;;**;[1122] Insert after /VERBOSITY switch	DZN	5-Oct-78
1)	SWMAC	SP,VERSION,,.SWVER,SYM,3,,*	;;[1122]
1)	IFE TOPS20,<
****
2)34	;;**;[1177] Change @ /VERSION switch	JNG	12-Jun-79
2)	SWMAC	SP,VERSION,,.SWVER,SYM,3,.,*	;;[1177]
2)	IFE TOPS20,<
**************
 
Digital Equipment Corporation       28-AUG-79    Page 666
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKWLD.176[30,3737,LINK,NEW]	created: 0239 12-JUNE-19
	79
File 2)	DSKB:LNKWLD.MAC[30,3737,LINK,NEW]	created: 0242 12-JUNE-19
	79
 
1)1	DECEVR==1176		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1177		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1177	Make global /VERSION not lose local switches.
2)	
**************
1)50		MOVE	T2,2(P2)	;[1122] GET VALUE
****
2)50	;**;[1177] Insert @ %VERSION+2L	JNG	12-Jun-79
2)	.VERSION:
2)		MOVE	T2,2(P2)	;[1122] GET VALUE
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 667
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -289*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          13-JUN-79

[Programmer]            GILBERT

[Routines]              LNKLOD

[Key Words]             FOROTS V6   SEARCH FOR  /SEG:LOW

[Source Before Edit]    %4A  (001177)

[Source After Edit]     %4A  (001200)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 668
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     In order to support concealed mode,  FOROTS  version  6
needs  LINK  to  search  SYS:FORLIB  in /SEGMENT:LOW mode if
loading in /OTS:SHARABLE mode.
 

                        **********


[DIAGNOSIS]
 
     It's in the design spec.
 

                        **********


[CURE]
 
     Implement it.  Note that this edit requires edit 1201.
 
 
Digital Equipment Corporation       28-AUG-79    Page 669
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 0702 12-Jun-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1332 13-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	12-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	13-Jun-7
	9
2)	
**************
1)1	DECEVR==1177		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1200		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1200	JNG	13-Jun-79
2)	;	If loading reentrant FOROTS, search SYS:FORLIB/SEGMENT:L
	OW.
2)	;	This is required for FOROTS version 6 and later.
2)	;	Routine: LNKLOD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 670
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1118 13-Jun-1979
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1317 13-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	12-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	13-Jun-7
	9
2)	
**************
1)1	DECEVR==1175		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1200		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1200	If loading reentrant FOROTS, search SYS:FORLIB/SEGMENT:L
	OW.
2)	
**************
1)83	FOR.L1:	SKIPL	FORLIB		;TEST FOR USER SCREW-UP
****
2)83	;**;[1200] Insert @ FOR.L1	JNG	13-Jun-79
2)		PUSHJ	P,FOR.L1	;[1200] PUT FORLIB IN LIST OF LI
	BRARIES
2)		; ..
2)	
2)84	;SINCE WE'RE LOADING REENTRANT FOROTS, LOAD SYS:FORLIB/SEGMENT:L
	OW.
2)	;THIS IS REQUIRED BY FOROTS VERSION 6 AND LATER.
2)	
2)		MOVE	P2,F.NXZR	;[1200] LAST LIBRARY PUT ON LIST
2)		CAMN	P1,F.NAME(P2)	;[1200] WAS IT FORLIB?
2)		SKIPE	F.SWP(P2)	;[1200] WITH NO SWITCHES YET?
2)		POPJ	P,		;[1200] NO, RETURN FROM FOR.L0
2)		MOVEI	T2,3		;[1200] YES, ALLOCATE A SWITCH B
	LOCK
2)		PUSHJ	P,DY.GET##	;[1200] IN DY AREA
2)		MOVEM	T1,F.SWP(P2)	;[1200] PUT SWITCH IN FILE BLOCK
2)		HRLZM	T2,0(T1)	;[1200] STORE BLOCK SIZE
2)		DMOVE	T2,[EXP %SEG%,$SEGLOW]	;[1200] SWITCH AND ARGUM
	ENT
2)		DMOVEM	T2,1(T1)	;[1200] STORE IN SWITCH BLOCK
2)		POPJ	P,		;[1200] DONE
2)	
2)	
2)	;DEFINE %SEG%.  MUST CALL SWTCHS MACRO.
Digital Equipment Corporation       28-AUG-79    Page 671
PCO Log Report


2)	
2)		..SEG==0
2)	
2)	DEFINE	SWMAC(A,B,C,D,E,F,G,H,I)<
2)	
2)		IFIDN <B>,<SEGMENT>,<%SEG%==..SEG>
2)		..SEG==..SEG+1>
2)	
2)		SWTCHS			;[1200] LOOK FOR /SEGMENT
2)	
2)	
2)	;HERE WHEN FORTRAN CODE IS SEEN, BUT NO MAIN PROGRAM.
2)	
2)	FOR.L1:	SKIPL	FORLIB		;TEST FOR USER SCREW-UP
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 672
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -290*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1200)

[Date Entered]          13-JUN-79

[Programmer]            GILBERT

[Routines]              LNKPAR    LNKLOD    LNKWLD    LNKOV1

[Key Words]             /SEG:PSECT  %LNKNEB

[Source Before Edit]    %4A  (001200)

[Source After Edit]     %4A  (001201)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-27815
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 673
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK  accepts  /SEGMENT:PSECT,  but  blows  up   during
loading.
 

                        **********


[DIAGNOSIS]
 
     The  PSECT  keyword   to   /SEGMENT   was   implemented
accidentally  when /SYMSEG:PSECT was implemented, since both
switches use the same keyword  list.   The  /SEGMENT  switch
processing  routine  is  not  expecting  this,  however, and
destroys the flag word when it sees it.
 

                        **********


[CURE]
 
     Split the switch keywords into two different lists.
 
 
Digital Equipment Corporation       28-AUG-79    Page 674
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1332 13-Jun-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1626 13-Jun-1979
 
1)1	DECEVR==1200		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1201		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1201	JNG	13-Jun-79
2)	;	Disallow /SEGMENT:PSECT, which worked because it used th
	e same
2)	;	keyword table as /SYMSEG.
2)	;	Routines: LNKPAR, LNKLOD, LNKOV1, LNKOV2, LNKWLD
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 675
PCO Log Report


[FILCOM]
File 1)	LINK:LNKPAR.MAC[30,4507]  	created: 0244 12-Jun-1979
File 2)	LINK:LNKPAR.MAC[10,645063]	created: 1622 13-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	12-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	13-Jun-7
	9
2)	
**************
1)1	DECEVR==1177		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1201		;DEC EDIT VERSION
2)	
**************
1)5	
****
2)5	;1201	Split out the /SEGMENT and /SYMSEG keywords; disallow /S
	EGMENT:PSECT.
2)	
**************
1)34	SWMAC	SL,SYMSEG,,SEGK,2,4,.,,.SWSYM	;[721]
1)	SWMAC	SL,SYSLIBRARY,,LIBK,1,3,.
****
2)34	;**;[1201] Change @ /SYMSEG in SWMAC	JNG	13-Jun-79
2)	SWMAC	SL,SYMSEG,,SSGK,2,4,.,,.SWSYM	;[1201]
2)	SWMAC	SL,SYSLIBRARY,,LIBK,1,3,.
**************
1)37	KEYMAC	SEG,<DEFAULT,LOW,HIGH,NONE,PSECT>
1)	KEYMAC	SYM,<RADIX50,TRIPLET,ALGOL>;	;;ADD ALGOL KEYWORD
****
2)37	;**;[1201] Replace @ SEG KEYMAC macro	JNG	13-Jun-79
2)	KEYMAC	SEG,<LOW,HIGH,DEFAULT,NONE>	;[1201]
2)	KEYMAC	SSG,<LOW,HIGH,NONE,PSECT,DEFAULT> ;[1201] LOW & HIGH MUS
	T BE FIRST 2
2)	KEYMAC	SYM,<RADIX50,TRIPLET,ALGOL>;	;;ADD ALGOL KEYWORD
**************
1)38	 IFIDN <A><SEG>,<
1)	  %%==0
1)	  IRP B,<
****
2)38	;;**;[1201] Replace in KEYMAC macro	JNG	13-Jun-79
2)	 IFIDN <A><SSG>,<
2)	  %%==1
2)	  IRP B,<
**************
 
Digital Equipment Corporation       28-AUG-79    Page 676
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1317 13-Jun-1979
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1539 13-Jun-1979
 
1)1	DECEVR==1200		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1201		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1201	Change reference to $SEGLOW to LC.IX.
2)	
**************
1)66		CAIN	T1,$SEGNONE	;USER GIVE /SYMSEG:NONE?
1)		JRST	[SETZM	SYMSEG	;YES, TELL LNKXIT
****
2)66	;**;[1201] Replace @ GO+3L	JNG	13-Jun-79
2)		CAIN	T1,$SSGNONE	;[1201] USER GIVE /SYMSEG:NONE?
2)		JRST	[SETZM	SYMSEG	;YES, TELL LNKXIT
**************
1)66		MOVEI	T1,$SEGLOW	;OTHERWISE, DEFAULT TO LOW
1)		MOVEM	T1,SYMSEG	;STORE FOR LNKXIT
1)		MOVE	T1,['.LOW. ']	;PSECT NAME
1)		MOVEM	T1,SSGNAM	;STORE
1)	> ;END IFN TOPS20
****
2)66	;**;[1201] Replace @ GO+8L	JNG	13-Jun-79
2)		MOVEI	T1,$SSGLOW	;[1201] OTHERWISE, DEFAULT TO LO
	W
2)		MOVEM	T1,SYMSEG	;STORE FOR LNKXIT
2)	> ;END IFN TOPS20
**************
1)84		DMOVE	T2,[EXP %SEG%,$SEGLOW]	;[1200] SWITCH AND ARGUM
	ENT
1)		DMOVEM	T2,1(T1)	;[1200] STORE IN SWITCH BLOCK
****
2)84	;**;[1201] Change @ FOR.L0+1P11L	JNG	13-Jun-79
2)		DMOVE	T2,[EXP %SEG%,$SSGLOW]	;[1201] SWITCH AND ARGUM
	ENT
2)		DMOVEM	T2,1(T1)	;[1200] STORE IN SWITCH BLOCK
**************
 
Digital Equipment Corporation       28-AUG-79    Page 677
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 0951 12-Jun-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 1617 13-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	12-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	13-Jun-7
	9
2)	
**************
1)1	DECEVR==1177		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1201		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1201	Change $SEGxxx to $SSGxxx.
2)	
**************
1)39	SEGTAB:	R.FLS!R.FHS,,R.FNS	;0
1)		R.FNS!R.FHS,,R.FLS	;1
1)		R.FNS!R.FLS,,R.FHS	;2
1)		R.FLS!R.FHS,,R.FNS	;3
1)	
****
2)39	;**;[1201] Re-arrange @ SEGTAB	JNG	12-Jun-79
2)	SEGTAB:	R.FNS!R.FHS,,R.FLS	;[1201] LOW
2)		R.FNS!R.FLS,,R.FHS	;[1201] HIGH
2)		R.FLS!R.FHS,,R.FNS	;[1201] DEFAULT
2)		R.FLS!R.FHS,,R.FNS	;[1201] NONE
2)	
**************
1)43		SUBI	T2,1		;DEFAULT IS 1
1)	IFN FTOVERLAY,<
****
2)43	;**;[1201] Replace @ .SYMSEG+1L	JNG	13-Jun-79
2)		CAIN	T2,$SSGDEFAULT	;[1201] /SYMSEG:DEFAULT?
2)		JRST	[SETZM	SYMSEG	;[1201] YES, DO IT
2)			POPJ	P,]	;[1201] GET OUT
2)	IFN FTOVERLAY,<
**************
1)43		CAIE	T2,$SEGLOW	;[1176] USER WANT LOW SEGMENT?
1)		CAIN	T2,$SEGNONE	;[1176] OR NO SYMBOLS?
1)		JRST	%SYMSG		;[1176] YES, ONLY POSSIBILITIES
	WITH OVERLAYS
****
2)43	;**;[1201] Change @ .SYMSEG+4L	JNG	13-Jun-79
Digital Equipment Corporation       28-AUG-79    Page 678
PCO Log Report


2)		CAIE	T2,$SSGLOW	;[1201] USER WANT LOW SEGMENT?
2)		CAIN	T2,$SSGNONE	;[1201] OR NO SYMBOLS?
2)		JRST	%SYMSG		;[1176] YES, ONLY POSSIBILITIES
	WITH OVERLAYS
**************
1)43		MOVEI	T2,$SEGLOW	;PUT THEM IN LOW SEG
1)	%SYMSG:>
1)		CAIN	T2,$SEGPSECT	;[721] A PSECT SPECIFIED?
1)		JRST	SYMS1		;[721]
1)		MOVEM	T2,SYMSEG	;STORE INDEX TO EITHER LC OR HC
1)		CAIE	T2,$SEGHIGH	;[727] WANT SYMBOLS IN HIGH SEGM
	ENT?
1)		JRST	[PUSH P,[SIXBIT/.LOW./]	;[727] SAVE SEGMENT NAME
1)			POP	P,SSGNAM	;[727]
 
 
1)			POPJ	P,]		;[727]
1)		SETZM	SYMLIM		;[727] CLEAR DEFAULT SYMBOL LIMI
	T
1)		PUSH	P,[SIXBIT/.HIGH./]	;[727] SAVE SEGMENT NAME
1)		POP	P,SSGNAM	;[727]
1)		SKIPE	HC.LB		;YES, IS IT SET UP YET?
****
2)43	;**;[1201] Change @ %SYMSG+1L	JNG	13-Jun-79
2)		MOVEI	T2,$SSGLOW	;[1201] PUT THEM IN LOW SEG
2)	%SYMSG:>
2)		CAIN	T2,$SSGPSECT	;[1201] A PSECT SPECIFIED?
2)		JRST	SYMS1		;[721]
2)		MOVEM	T2,SYMSEG	;STORE INDEX TO EITHER LC OR HC
2)		CAIE	T2,$SSGHIGH	;[1201] WANT SYMBOLS IN HIGH SEG
	MENT?
2)		POPJ	P,		;[1201] NO, DONE
2)		SKIPE	HC.LB		;YES, IS IT SET UP YET?
**************
 
Digital Equipment Corporation       28-AUG-79    Page 679
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOV1.MAC[30,4507]  	created: 1810 10-Jun-1979
File 2)	LINK:LNKOV1.MAC[10,645063]	created: 1510 13-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	10-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	13-Jun-79
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1201		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1201	Change $SEGxxx to $SSGxxx.
2)	
**************
1)11		CAIE	T2,$SEGNONE	;USER SAYS NO?
1)		SKIPE	NOSYMS		;HOWEVER IF USER SAID NO
****
2)11	;**;[1201] Replace @ LNKT0A+2L	JNG	13-Jun-79
2)		CAIE	T2,$SSGNONE	;[1201] USER SAYS NO?
2)		SKIPE	NOSYMS		;HOWEVER IF USER SAID NO
**************
1)11		MOVEI	T2,$SEGLOW	;SYMBOLS IN LOW SEG INDEX
1)		MOVEM	T2,SYMSEG	;SET VALUE SO WE CAN SAVE SYMBOL
	S
****
2)11	;**;[1201] Insert @ LNKT0B+9L	JNG	13-Jun-79
2)		MOVEI	T2,$SSGLOW	;[1201] SYMBOLS IN LOW SEG INDEX
2)		MOVEM	T2,SYMSEG	;SET VALUE SO WE CAN SAVE SYMBOL
	S
**************
 
Digital Equipment Corporation       28-AUG-79    Page 680
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOV2.MAC[30,4507]  	created: 1831 10-Jun-1979
File 2)	LINK:LNKOV2.MAC[10,645063]	created: 1540 13-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JNG/MCHC/DZN	10-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JNG/MCHC/DZN	13-Jun-79
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1201		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1201	Change references to $SEGxxx to $SSGxxx.
2)	
**************
1)4		CAIE	T1,$SEGNONE	;USER SAY NO?
1)		SKIPE	NOSYMS		; . . . ?
****
2)4	;**;[1201] Replace @ E$$OS2+2L	JNG	13-Jun-79
2)		CAIE	T1,$SSGNONE	;[1201] USER SAY NO?
2)		SKIPE	NOSYMS		; . . . ?
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 681
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -291*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1174)

[Date Entered]          15-JUN-79

[Programmer]            GILBERT

[Routines]              LNKPAR    LNKFIO    LNKLOG    LNKXIT

[Key Words]             BAD 1174    TOPS-20

[Source Before Edit]    %4A  (001201)

[Source After Edit]     %4A  (001202)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 682
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     After edit 1172, /VERSION no longer sets .JBVER.  Also,
after edit 1174, LINK will no longer assemble on TOPS-20.
 

                        **********


[DIAGNOSIS]
 
     Errors in the above edits.
 

                        **********


[CURE]
 
     Fix them.
 
 
Digital Equipment Corporation       28-AUG-79    Page 683
PCO Log Report


[FILCOM]
File 1)	DSK:LNKHST.201[4,327]	created: 1226 13-Jun-1979
File 2)	DSK:LNKHST.MAC[4,327]	created: 0213 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	13-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Jun-7
	9
2)	
**************
1)1	DECEVR==1201		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1202		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1202	JNG	14-Jun-79
2)	;	Fix /VERSION after 1172, and make LINK assemble on TOPS-
	20
2)	;	after edit 1174.
2)	;	Routines: LNKPAR, LNKFIO, LNKLOG, LNKXIT.
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 684
PCO Log Report


[FILCOM]
File 1)	DSK:LNKPAR.201[4,327]	created: 1222 13-Jun-1979
File 2)	DSK:LNKPAR.MAC[4,327]	created: 0205 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	13-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/SRM/JBC/JNG/MCHC/PAH/DZN	14-Jun-7
	9
2)	
**************
1)1	DECEVR==1201		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1202		;DEC EDIT VERSION
2)	
**************
1)5	
****
2)5	;1202	Make assemble on TOPS-20 after edit 1174.
2)	
**************
1)29	SYN	OUTSTR,.OERR.		;[1174] USED FOR MESSAGES LNKLOG
	 CAN'T HANDLE
1)	
****
2)29	;**;[1202] Replace @ .OERR.	JNG	14-Jun-79
2)	IFE TOPS20,<
2)		SYN	OUTSTR,.OERR.	;[1174] USED FOR MESSAGES LNKLOG
	 CAN'T HANDLE
2)	> ;END IFE TOPS20
2)	
2)	
2)	IFN TOPS20,<
2)		DEFINE	.OERR.(TEXT)<
2)		HRROI	1,TEXT;;	;[1202] SAME AS OUTSTR DEF BELOW
2)		PSOUT
2)		>
2)	> ;END IFN TOPS20
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 685
PCO Log Report


[FILCOM]
File 1)	DSK:LNKFIO.174[4,327]	created: 1247 10-Jun-1979
File 2)	DSK:LNKFIO.MAC[4,327]	created: 1455 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH/DZN	10-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/PAH/DZN	14-Jun-79
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1202		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1202	Make LNKNED message be potentially editable after 1174.
2)	
**************
1)23	;**;[1174] Replace @NSDERR	DZN	29-May-79
1)	E01NED::PUSH	P,T1		;[1174] PUT CHANNEL ON STACK FOR
	 LNKLOG
1)		.ERR.	(I,0,V%L,L%F,S%E,NED)
****
2)23	;**;[1202] Replace @E$$NSD	DZN	14-Jun-79
2)	E01NED::PUSH	P,IO.CHN	;[1174] PUT CHANNEL ON STACK FOR
	 LNKLOG
2)		.ERR.	(I,0,V%L,L%F,S%E,NED)
**************
 
Digital Equipment Corporation       28-AUG-79    Page 686
PCO Log Report


[FILCOM]
File 1)	DSK:LNKLOG.174[4,327]	created: 1329 11-Jun-1979
File 2)	DSK:LNKLOG.MAC[4,327]	created: 1452 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/DZN	10-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/DZN	14-Jun-79
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1202		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1202	Make S%E severity on code I messages work after edit 117
	4.
2)	
**************
1)8	ER.MS:	PUSHJ	P,CHKLVL	;OUTPUT %,? OR TIME STAMP ETC
1)		  JRST	ERRNXT		;[1174] NOTHING TO OUTPUT
****
2)8	;**;[1202] Replace @ER.MS	DZN	14-Jun-79
2)	ER.MS:	SETOM	ERCHAN		;[1202] SIGNAL NO CHANNEL INVOLV
	ED
2)		PUSHJ	P,CHKLVL	;OUTPUT %,? OR TIME STAMP ETC
2)		  JRST	ERRNXT		;[1174] NOTHING TO OUTPUT
**************
1)8		MOVE	T4,ERCHAN	;[1174] GET CHANNEL WHERE CHKCHN
	 LIKES IT
1)	;**;[1144] Replace @ER.LRE+1L	DZN	16-Feb-79
****
2)8	;**;[1202] Replace @ER.LRE+1L	DZN	14-Jun-19
2)		MOVE	T4,ERCHAN	;[1174] GET CHANNEL
2)	;**;[1144] Replace @ER.LRE+1L	DZN	16-Feb-79
**************
1)9	ERLRE2:	PUSHJ	P,CHKCHN	;IF EDITABLE, SEE IF FATAL
1)		PUSHJ	P,CHKLVL	;OUTPUT TIME ETC
1)		  JRST	ERRNXT		;[1174] NOTHING TO DO
****
2)9	;**;[1202] Replace @ERLRE2	DZN	14-Jun-79
2)	
2)	ERLRE2:	PUSHJ	P,CHKLVL	;[1202] OUTPUT TIME ETC
2)		  JRST	ERRNXT		;[1174] NOTHING TO DO
**************
1)9	ERLRE3:	MOVE	T4,ERCHAN	;[1174] RESTORE CHAN PLUS FLAGS
1)	IFE FTSINGLE,<
****
Digital Equipment Corporation       28-AUG-79    Page 687
PCO Log Report


2)9	;**;[1202] Replace @ERLRE3	DZN	14-Jun-79
2)		MOVE	T4,ERCHAN	;[1202] RESTORE CHAN PLUS FLAGS
2)	IFE FTSINGLE,<
**************
1)11	ERI1:	MOVE	T4,ERCHAN	;[1174] GET CHANNEL FOR CHKCHN
1)		PUSHJ	P,CHKCHN	;SETUP CHAN# IF EDITABLE
1)		HRRZ	T4,IO.PTR(T4)	;GET IO POINTER
****
2)11	;**;[1202] Replace @ERI1	DZN	14-Jun-79
2)		MOVE	T4,ERCHAN	;[1202] GET CHANNEL
2)		HRRZ	T4,IO.PTR(T4)	;GET IO POINTER
**************
 
 
1)12	ERST1:	MOVEI	T1,[ASCIZ \Status \] ;[1144]
1)		OUTVIA	.TSTRG##
****
2)12	;**;[1202] Replace @ERST1	DZN	14-Jun-79
2)		MOVEI	T1,[ASCIZ \Status \] ;[1144]
2)		OUTVIA	.TSTRG##
**************
1)12		MOVE	T4,ERCHAN	;[1174] GET CHANNEL NUMBER FOR C
	HKCHN
1)		PUSHJ	P,CHKCHN	;SETUP CHAN# IF EDITABLE
1)		HRRZ	T1,IO.PTR(T4)	;GET IO POINTER
1)		JRST	ERFSPC		;REST OF FILE SPEC
1)	
1)13	;INPUT CHAN CHECK
1)	;CALLED BY
1)	;	MOVE	T4,CHAN#
1)	;	PUSHJ	P,CHKCHN
1)	
1)	CHKCHN:	HRRZ	T4,T4		;CHAN # ONLY
1)		LDB	T1,SEVPTR	;GET SEVERITY
1)		CAIN	T1,S%E		;EDITABLE?
1)		CAIN	T4,DC		;BUT ONLY IF INPUT
1)		POPJ	P,		;YES
1)		MOVEI	T1,S%F		;NOT EDITABLE YET
1)		DPB	T1,SEVPTR	;SO MAKE FATAL
1)		POPJ	P,
1)	
****
2)12	;**;[1202] Replace @ERST1+11L	DZN	14-Jun-79
2)		MOVE	T4,ERCHAN	;[1202] GET CHANNEL NUMBER
2)		HRRZ	T1,IO.PTR(T4)	;GET IO POINTER
2)		JRST	ERFSPC		;REST OF FILE SPEC
2)	;**;[1202] Delete CHKCHN routine	DZN	14-Jun-79
2)	
**************
1)18	CHKLVL:	LDB	T1,LVLPTR	;GET LIST LEVEL
1)		CAMGE	T1,LOGLVL	;ABOVE CUTOFF?
Digital Equipment Corporation       28-AUG-79    Page 688
PCO Log Report


****
2)17	;**;[1202] Replace @CHKLVL	DZN	14-Jun-79
2)	CHKLVL:	SKIPGE	T1,ERCHAN	;[1202] I/O ERROR?
2)		JRST	CHKLV1		;[1202] NO--SKIP EDITABLE TEST
2)		HRRZS	T1		;[1202] CLEAR FLAGS IN LH
2)		LDB	T2,SEVPTR	;[1202] GET SEVERITY
2)		CAXN	T2,S%E		;[1202] EDITABLE?
2)		CAXN	T1,DC		;[1202]   AND NOT INPUT REL FILE
	 CHANNEL?
2)		JRST	CHKLV1		;[1202] YES--LEAVE EDITABLE
2)		MOVX	T2,S%F		;[1202] NO--NOT EDITABLE FOR NOW
	, MAKE FATAL
2)		DPB	T2,SEVPTR	;[1202] STORE SEVERITY BACK
2)	CHKLV1:	LDB	T1,LVLPTR	;[1202] GET LIST LEVEL
2)		CAMGE	T1,LOGLVL	;ABOVE CUTOFF?
**************
 
Digital Equipment Corporation       28-AUG-79    Page 689
PCO Log Report


[FILCOM]
File 1)	DSK:LNKXIT.174[4,327]	created: 1541 10-Jun-1979
File 2)	DSK:LNKXIT.MAC[4,327]	created: 0212 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	10-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	14-Jun-79
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1202		;DEC EDIT VERSION
2)	
**************
1)6	
****
2)6	;1202	Fix problems introduced by edits 1172 and 1174.
2)	
**************
1)12		SETZM	.JBSYM(T1)	;[1172] ASSUME NO SYMBOLS
****
2)12	;**;[1202] Insert @ CHKRST+3L	JNG	14-Jun-79
2)		SKIPN	T2,VERNUM	;[1202] /VERSION? (CHECK NOW FOR
	 OLDSYM)
2)		SKIPA	T2,.JBVER(T1)	;[1202] NO, FETCH FROM .JBVER
2)		MOVEM	T2,.JBVER(T1)	;[1202] OVERRIDE IF /VERSION
2)		MOVEM	T2,VERNUM	;[1202] STORE FOR SYMBOL FILES
2)		SETZM	.JBSYM(T1)	;[1172] ASSUME NO SYMBOLS
**************
1)89		  ERJMP	GFEERR		;[1144] GETJFN FAILED FOR EXE FI
	LE
1)		HRRM	T1,ACS+R%16	;[1144] PUT JFN IN GET JSYS ARGU
	MENT
****
2)89	;**;[1202] Replace @ RUNEX2+19L	JNG	14-Jun-79
2)		  ERJMP	E$$GFE		;[1202] GETJFN FAILED FOR EXE FI
	LE
2)		HRRM	T1,ACS+R%16	;[1144] PUT JFN IN GET JSYS ARGU
	MENT
**************
1)93	E$$ELF::.ERR.	(MS,,V%L,L%I,S%I,ELF,<End of log file>) ;[1174]
****
2)93	;**;[1202] Insert @ E$$FIN+1L	JNG	14-Jun-79
2)		SKIPN	IO.PTR+RC	;[1202] A REAL LOG FILE?
2)		SKIPGE	LOGTTY		;[1202] OR USER'S TERMINAL?
2)		  JRST	E$$ELF		;[1202] YES, TYPE MESSAGE
2)		POPJ	P,		;[1202] NO, DONE
2)	E$$ELF::.ERR.	(MS,,V%L,L%I,S%I,ELF,<End of log file>) ;[1174]
**************
Digital Equipment Corporation       28-AUG-79    Page 690
PCO Log Report



[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 691
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -292*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1174)

[Date Entered]          15-JUN-79

[Programmer]            GILBERT

[Routines]              LNKPAR    LNKMAP    LNKWLD    LNKLOD

[Key Words]             EX FORTRAN

[Source Before Edit]    %4A  (001202)

[Source After Edit]     %4A  (001203)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 692
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK 4A needs to support Extended FORTRAN.
 

                        **********


[DIAGNOSIS]
 
     The FORTRAN development group needs it.
 

                        **********


[CURE]
 
     Add the support.  Extended FORTRAN is compiler type  23
(octal).  This edit adds the LNKCMX and LNKSNS messages.
 
 
Digital Equipment Corporation       28-AUG-79    Page 693
PCO Log Report


[FILCOM]
File 1)	DSK:LNKHST.202[4,327]	created: 0213 14-Jun-1979
File 2)	DSK:LNKHST.MAC[4,327]	created: 0709 14-Jun-1979
 
1)1	DECEVR==1202		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1203		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1203	JNG	14-Jun-79
2)	;	Add support for Extended FORTRAN.
2)	;	Routines: LNKPAR, LNKMAP, LNKLOD, LNKERR
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 694
PCO Log Report


[FILCOM]
File 1)	DSK:LNKPAR.202[4,327]	created: 0205 14-Jun-1979
File 2)	DSK:LNKPAR.MAC[4,327]	created: 0828 14-Jun-1979
 
1)1	DECEVR==1202		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1203		;DEC EDIT VERSION
2)	
**************
1)5	
****
2)5	;1203	Add support for extended FORTRAN.
2)	
**************
1)14	DEFINE PROCESSORS<
1)	X UNKNOWN,UNK
1)	X F40,F40
1)	X COBOL,CBL
1)	X ALGOL,ALG
1)	X NELIAC,NLI
1)	X PLI,PLI
1)	X BLISS,BLI
1)	X SAIL,SAI
1)	X FORTRAN,FOR
1)	X MACRO,MAC
1)	X FAIL,FAI
1)	X BCPL,BCP
1)	X MIDAS,MID
1)	X SIMULA,SIM
1)	X CBL74,C74
1)	X CBL79,C79
1)	X BLS36,B36
1)	X BASIC,BAS
1)	>
****
2)14	;**;[1203] Replace @ PROCESSORS macro	JNG	14-Jun-79
2)	DEFINE PROCESSORS<
2)	X UNKNOWN,UNK,<Unknown>
2)	X F40,F40,<F40>
2)	X COBOL,CBL,<COBOL-68>
2)	X ALGOL,ALG,<Algol>
2)	X NELIAC,NLI,<NELIAC>
2)	X PLI,PLI,<PL/I>
2)	X BLISS,BLI,<BLISS-10>
2)	X SAIL,SAI,<SAIL>
2)	X FORTRAN,FOR,<FORTRAN>
2)	X MACRO,MAC,<MACRO>
2)	X FAIL,FAI,<FAIL>
2)	X BCPL,BCP,<BCPL>
2)	X MIDAS,MID,<MIDAS>
Digital Equipment Corporation       28-AUG-79    Page 695
PCO Log Report


2)	X SIMULA,SIM,<SIMULA>
2)	X CBL74,C74,<COBOL-74>
2)	X CBL80,C80,<COBOL-80>
2)	X BLS36,B36,<BLISS-36>
2)	X BASIC,BAS,<BASIC>
2)	X SITGO,STG,<SITGO>
2)	X FORTRAN,XFR,<Extended FORTRAN>
2)	>
**************
 
 
1)14	DEFINE X (A,B)<
1)	 CT.'B==CT.LEN
****
2)14	;**;[1203] Change @ X macro	JNG	14-Jun-79
2)	DEFINE X (A,B,C)<
2)	 CT.'B==CT.LEN
**************
1)37	KEYMAC	DEB,<,MACRO,DDT,*FORTRAN,FORDDT,*COBOL,COBDDT,SAIL,SDDT,
	FAIL,SDDT,SIMULA,SIMDDT,CBL74,COBDDT>
1)	>
1)	IFN FTMANTIS,<
1)	KEYMAC	DEB,<,MACRO,DDT,*FORTRAN,MANTIS,*COBOL,COBDDT,SAIL,SDDT,
	FAIL,SDDT,SIMULA,SIMDDT,CBL74,COBDDT>
1)	>
****
2)37	;;**;[1203] Replace in KEYWORDS macro	JNG	14-Jun-79
2)	KEYMAC	DEB,<,MACRO,DDT,*FORTRAN,FORDDT,*COBOL,COBDDT,SAIL,SDDT^
	_
2)	,FAIL,SDDT,SIMULA,SIMDDT>
2)	>
2)	IFN FTMANTIS,<
2)	KEYMAC	DEB,<,MACRO,DDT,*FORTRAN,MANTIS,*COBOL,COBDDT,SAIL,SDDT^
	_
2)	,FAIL,SDDT,SIMULA,SIMDDT>
2)	>
**************
1)37	KEYMAC	LIB,<ANY,F40,COBOL,ALGOL,NELIAC,PL1,BLISS,SAIL,FORTRAN,M
	ACRO^_
1)	,FAIL,BCPL,MIDAS,SIMULA,CBL74>
1)	KEYMAC	MAP,<END,NOW,ERROR,INCREMENTAL>
****
2)37	;**;[1203] Replace in KEYWORDS macro	JNG	14-Jun-79
2)	KEYMAC	LIB,<ANY,F40,COBOL,ALGOL,NELIAC,PL1,BLISS,SAIL,*FORTRAN,
	MACRO^_
2)	,FAIL,BCPL,MIDAS,SIMULA,CBL74,CBL79,BLS36,BASIC,SITGO,FORTRAN>
2)	KEYMAC	MAP,<END,NOW,ERROR,INCREMENTAL>
**************
1)39	DEFINE X (A,B)<
1)	 IFIDN <B><UNK>,<
****
Digital Equipment Corporation       28-AUG-79    Page 696
PCO Log Report


2)39	;**;[1203] Replace in X macro above $LIBDEFAULT	JNG	14-Jun-7
	9
2)	DEFINE X (A,B,C)<
2)	 IFIDN <B><UNK>,<
**************
1)39	 $LIB'A==B'BIT
1)	>
****
2)39	;;**;[1203] Replace in X macro below $LIBDEFAULT	JNG	
	14-Jun-79
2)	 $LIB'B==B'BIT
2)	>
**************
 
Digital Equipment Corporation       28-AUG-79    Page 697
PCO Log Report


[FILCOM]
File 1)	DSK:LNKLOD.201[4,327]	created: 1139 13-Jun-1979
File 2)	DSK:LNKLOD.MAC[4,327]	created: 0749 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	13-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	14-Jun-7
	9
2)	
**************
1)1	DECEVR==1201		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1203		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1203	Support extended FORTRAN.
2)	
**************
1)55	;**;[1120] Various changes near CT.NAM	DZN	22-Sep-78
1)	DEFINE X(A,B)<
1)	  IF1,<BLOCK	1>
****
2)55	;**;[1203] Changes near CT.NAM	JNG	14-Jun-79
2)	DEFINE X(A,B,C)<
2)	  IF1,<BLOCK	1>
**************
1)55	DEFINE X(A,B)<
1)		B'BIT
****
2)55	DEFINE X(A,B,C)<
2)		B'BIT
**************
1)56		TXNE	T2,FORBIT	;[1120] CAN NOT HAVE BOTH
****
2)56	;**;[1203] Insert @ F40NAM+19L	JNG	14-Jun-79
2)		TXNN	T2,XFRBIT	;[1203] EXTENDED FORTRAN?
2)		TXNE	T2,FORBIT	;[1120] CAN NOT HAVE BOTH
**************
1)57	;**;[1120] Replace @C74ERR+6L	DZN	22-Sep-78
****
2)58	
2)	;**;[1120] Replace @C74ERR+6L	DZN	22-Sep-78
**************
1)57	FORNAM:
1)	IFN FMXFOR,<
****
Digital Equipment Corporation       28-AUG-79    Page 698
PCO Log Report


2)58	;**;[1203] Insert @ FORNAM	JNG	12-Jun-79
2)	XFRNAM:	TXNE	T2,FORBIT	;[1203] SEEN OTHER FORTRAN?
2)		JRST	E$$CMX		;[1203] YES, ERROR
2)		JRST	FOROK		;[1203] NO, PROCEED
2)	FORNAM:	TXNE	T2,XFRBIT	;[1203] OTHER FORTRAN?
2)		JRST	E$$CMX		;[1203] YES, COMPLAIN
2)	FOROK:
2)	IFN FMXFOR,<
**************
1)57	;**;[1120] Delete @FORCPU+1P	DZN	22-Sep-78
1)	
 
 
****
2)58	;**;[1203] Insert @ FORSEG+11L	JNG	14-Jun-79
2)	
2)	
2)	E$$CMX::.ERR.	(MS,.EC,V%L,L%F,S%F,CMX,<Cannot mix Extended FOR
	TRAN compiled code with FORTRAN compiled code>)
2)		.ETC.	(JMP,,,,,.ETIMF##)	;[1203]
2)	;**;[1120] Delete @FORCPU+1P	DZN	22-Sep-78
2)	
2)59	;SITGO
2)	
2)	STGNAM:
2)	E$$SNS::.ERR.	(MS,.EC,V%L,L%F,S%F,SNS,<SITGO not supported>)
2)		.ETC.	(JMP,,,,,.ETIMF##)	;[1203]
2)	
**************
1)81	DEFINE X(A,B)<
1)	 IF1,<
****
2)83	;**;[1203] Change @ REMLIB+1P	JNG	14-Jun-79
2)	DEFINE X(A,B,C)<
2)	 IF1,<
**************
1)81	DEFINE X(A,B)<
1)	 IF1,<
****
2)83	;**;[1203] Change @ MNTBL+3L	JNG	14-Jun-79
2)	DEFINE X(A,B,C)<
2)	 IF1,<
**************
1)82		TXNE	T1,FORBIT	;HAVE WE SEEN ANY FORTRAN-10 COD
	E?
****
2)84	;**;[1203] Insert @ F40.L0+4L	JNG	14-Jun-79
2)		TXNN	T1,XFRBIT	;[1203] EXTENDED FORTRAN CODE?
2)		TXNE	T1,FORBIT	;HAVE WE SEEN ANY FORTRAN-10 COD
	E?
**************
Digital Equipment Corporation       28-AUG-79    Page 699
PCO Log Report


1)84	
****
2)86	;**;[1203] Insert @ FORL10+2L	JNG	14-Jun-79
2)	
2)	
2)	;HERE WHEN EXTENDED FORTRAN IS SEEN.  SAME AS FORTRAN.
2)	
2)		XFR.L0==FOR.L0		;[1203] MAIN PROGRAM ENTRY
2)		XFR.L1==FOR.L1		;[1203] ANY CODE SEEN ENTRY
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 700
PCO Log Report


[FILCOM]
File 1)	DSK:LNKWLD.201[4,327]	created: 1217 13-Jun-1979
File 2)	DSK:LNKWLD.MAC[4,327]	created: 0823 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	13-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	14-Jun-7
	9
2)	
**************
1)1	DECEVR==1201		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1203		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1203	Add support for extended FORTRAN.
2)	
**************
1)61	KEYTBL	<CPU,DEF,HYL,LIB,MAP,MPS,SYM,SYS,VER>
1)	SALL
1)	
****
2)61	;**;[1203] Change @ CHKRSW+1P20L	JNG	14-Jun-79
2)	KEYTBL	<CPU,DEF,HYL,MAP,MPS,SYM,SYS,VER>
2)	SALL
2)	
2)	DEFINE X(A,B,C)<
2)		EXP	$LIB'B
2)	>
2)		XALL			;[1203] EXPAND LISTING
2)		EXP	$LIBDEFAULT	;[1203] -1 ENTRY
2)	LIBTBL:	PROCESSORS		;[1203] GET LIB TABLE
2)		SALL			;[1203] BACK TO NORMAL
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 701
PCO Log Report


[FILCOM]
File 1)	DSK:LNKMAP.174[4,327]	created: 1256 10-Jun-1979
File 2)	DSK:LNKMAP.MAC[4,327]	created: 0628 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	10-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/SRM/JBC/RKH/JNG/DZN	14-Jun-79
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1203		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1203	Add support for extended FORTRAN.
2)	
**************
1)44	;**;[1120] Replace @END1+1P0L	DZN	22-Sep-78
1)	DEFINE X (A,B)<
1)	  IFIDN <A><PLI>,<
1)		[ASCIZ	\PL/I\]
1)	  >
1)	  IFDIF <A><PLI>,<
1)	    IFIDN <A><CBL74>,<
1)		[ASCIZ	\COBOL-74\]
1)	    >
1)	    IFDIF <A><CBL74>,<
1)	      IFIDN <A><COBOL>,<
1)		[ASCIZ	\COBOL-68\]
1)	      >
1)	      IFDIF <A><COBOL>,<
1)		[ASCIZ	\A\]
1)	      >
1)	    >
1)	  >
1)	>
****
2)44	;**;[1203] Replace @ END1+1P0L	JNG	14-Jun-79
2)	DEFINE X (A,B,C)<
2)		[ASCIZ	\C\]
2)	>
**************
 
Digital Equipment Corporation       28-AUG-79    Page 702
PCO Log Report


[FILCOM]
File 1)	DSK:LNKERR.175[4,327]	created: 2116 11-Jun-1979
File 2)	DSK:LNKERR.MAC[4,327]	created: 0715 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	12-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	14-Jun-79
2)	
**************
1)1	DECEVR==1175		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1203		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1203	Add the LNKCMX and LNKSNS messages.
2)	
**************
1)10	CNW   31   31	Code not yet written at [label]
****
2)10	CMX   31   31	Cannot mix Extended FORTRAN compiled code with F
	ORTRAN compiled code
2)			{Detected in module [symbol] from file [file]}
2)	CNW   31   31	Code not yet written at [label]
**************
1)10	SOE   31   31	Saved file output error Status [octal] for file
	[file]
****
2)10	SNS   31   31	SITGO not supported
2)			{Detected in module [symbol] from file [file]}
2)	SOE   31   31	Saved file output error Status [octal] for file
	[file]
**************
1)11	HASH	CNW,0,<^_
****
2)11	HASH	CMX,0,<^_
2)		You cannot load modules produced by FORTRAN  with  modul
	es
2)		produced by Extended FORTRAN.  Compile all FORTRAN modul
	es
2)		the same way, then reload.>
2)	
2)	HASH	CNW,0,<^_
**************
1)11	IFE TOPS20,<
****
2)11	HASH	SNS,0,<^_
2)		LINK does not support the .REL file format produced by t
Digital Equipment Corporation       28-AUG-79    Page 703
PCO Log Report


	he
2)		SITGO compiler.  Load your program by using SITGO.>
2)	
2)	IFE TOPS20,<
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 704
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -293*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1174)

[Date Entered]          15-JUN-79

[Programmer]            GILBERT

[Routines]              LNKOLD    LNKLOD    LNKOV1    LNKWLD

[Key Words]             .GT. 77777  LNKPTL

[Source Before Edit]    %4A  (001203)

[Source After Edit]     %4A  (001204)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 705
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     If a user loads a program that extends beyond  location
777777,   then  LINK  will  not  issue  any  error  message.
Instead, LINK  will  produce  a  bad  image  with  no  error
message, loop, or fail with an illegal memory reference.
 

                        **********


[DIAGNOSIS]
 
     There are no checks for this anywhere in LINK.   It  is
difficult to check, since addresses are truncated to 18 bits
in the lowest level input routine.
 

                        **********


[CURE]
 
     Make the low-level routine  save  the  full-word  value
that  it  read,  and then use this value check for loading a
program that extends beyond 777777.  If  this  is  detected,
LINK will issue the new LNKPTL message.
 
 
Digital Equipment Corporation       28-AUG-79    Page 706
PCO Log Report


[FILCOM]
File 1)	DSK:LNKHST.203[4,327]	created: 0709 14-Jun-1979
File 2)	DSK:LNKHST.MAC[4,327]	created: 0913 14-Jun-1979
 
1)1	DECEVR==1203		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1204		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1204	JNG	14-Jun-79
2)	;	Check for programs that extend beyond location 777777, a
	nd
2)	;	issue the LNKPTL message.
2)	;	Routines: LNKLOW, LNKOLD, LNKLOD, LNKERR
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 707
PCO Log Report


[FILCOM]
File 1)	DSK:LNKLOW.174[4,327]	created: 1404 10-Jun-1979
File 2)	DSK:LNKLOW.MAC[4,327]	created: 0832 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC/DZN	10-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/JNG/MCHC/DZN	14-Jun-79
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1204		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1204	Add LSTRRV.
2)	
**************
1)3	
****
2)3	;**;[1204] Insert @ PATLOC+1L	JNG	14-Jun-79
2)	LSTRRV::BLOCK	1		;[1204] LAST RIGHT RELOCATABLE V
	ALUE FROM RB.1
2)	
**************
 
Digital Equipment Corporation       28-AUG-79    Page 708
PCO Log Report


[FILCOM]
File 1)	DSK:LNKLOD.203[4,327]	created: 0749 14-Jun-1979
File 2)	DSK:LNKLOD.MAC[4,327]	created: 0859 14-Jun-1979
 
1)1	DECEVR==1203		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1204		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1204	Complain if any Psects are too long.
2)	
**************
1)72		MOVE	W1,RC.IV(T1)	;[746] GET THE ORIGIN
****
2)72	;**;[1204] Insert @ CHKBND+2L	JNG	14-Jun-79
2)		MOVSI	T2,-1		;[1204] ILLEGAL BITS
2)		TDNN	T2,RC.HL(T1)	;[1204] SET?
2)		TDNE	T2,RC.CV(T1)	;[1204] ANYPLACE?
2)		PUSHJ	P,E$$PTL##	;[1204] YES, DIE
2)		MOVE	W1,RC.IV(T1)	;[746] GET THE ORIGIN
**************
 
Digital Equipment Corporation       28-AUG-79    Page 709
PCO Log Report


[FILCOM]
File 1)	DSK:LNKOLD.174[4,327]	created: 1006 11-Jun-1979
File 2)	DSK:LNKOLD.MAC[4,327]	created: 1238 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	10-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	14-Jun-7
	9
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1204		;DEC EDIT VERSION
2)	
**************
1)4	
****
2)4	;1204	Give LNKPTL message if program exceeds 777777, remove LN
	KHSL.
2)	
**************
1)11	T.1AD:	MOVE	P2,W1		;GET LOCATION REQUIRED
1)		.JDDT	LNKOLD,T.1AD,<<CAML P2,$LOCATION##>,<CAMLE P3,$L
	OCATION>,<JRST .+3>,<SKIPE $LOCATION>>;;	;
****
2)11	;**;[1204] Insert @ T.1AD	JNG	14-Jun-79
2)	T.1AD:	MOVE	T1,LSTRRV	;[1204] GET LAST RH WORD
2)		TLNN	T1,-1		;[1204] WAS IT TOO BIG?
2)		TLNE	W1,-1		;[1204] OR IS LAST ADDRESS TOO B
	IG?
2)		PUSHJ	P,E$$PTL	;[1204] YES, ERROR
2)		MOVE	P2,W1		;GET LOCATION REQUIRED
2)		.JDDT	LNKOLD,T.1AD,<<CAML P2,$LOCATION##>,<CAMLE P3,$L
	OCATION>,<JRST .+3>,<SKIPE $LOCATION>>;;	;
**************
1)15	;**;[1174] Replace @T.1H+4L	DZN	1-Jun-79
1)		JUMPL	P3,E$$STL	;[1174] ERROR
1)		CAMLE	P2,HL.S2	;RESET HIGHEST LOCATION COUNTER
****
2)15	;**;[1204] Delete @ T.1H+4L	JNG	14-Jun-79
2)		CAMLE	P2,HL.S2	;RESET HIGHEST LOCATION COUNTER
**************
1)15	;**;[1174] Replace @T1HSTL	DZN	1-Jun-79
1)	E$$STL::.ERR.	(MS,.EC,V%L,L%F,S%F,STL,<High segment code too l
	ong>) ;[1174]
1)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
1)	
****
Digital Equipment Corporation       28-AUG-79    Page 710
PCO Log Report


2)15	;**;[1204] Replace @ E$$STL	JNG	14-Jun-79
2)	E$$PTL::.ERR.	(MS,.EC,V%L,L%F,S%F,PTL,<Program too long>)
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1204]
2)	
**************
1)47		PUSHJ	P,RB.2		;GET BOTH WORDS
1)		  JRST	[MOVEI	T1,5
1)	;**;[1174] Replace @T.5A+6L	DZN	1-Jun-79
1)			 JRST	E$$RBS]		;[1174]
1)		TLNE	W1,-1		;MAKE SURE VALID
****
2)47	;**;[1204] Replace @ T.5A+4L	JNG	14-Jun-79
2)		PUSHJ	P,RB.1		;[1204] GET FIRST WORD
2)		JRST	[MOVEI	T1,5	;[1204] NOT THERE, ILLEGAL
2)			JRST	E$$RBS]	;[1204] GO COMPLAIN
2)		MOVE	T1,LSTRRV	;[1204] GET THE TRUE VALUE
 
 
2)		TLNE	T1,-1		;[1204] OVERFLOW?
2)		PUSHJ	P,E$$PTL	;[1204] YES, COMPLAIN
2)		MOVE	W2,W1		;[1204] NO, SAVE FIRST WORD
2)		PUSHJ	P,RB.1		;[1204] GET SECOND WORD
2)		JRST	[MOVEI	T1,5	;[1204] DON'T LIKE THIS EITHER
2)			JRST	E$$RBS]	;[1204] COMPLAIN
2)		MOVE	T1,LSTRRV	;[1204] TRUE VALUE
2)		TLNE	T1,-1		;[1204] LEGAL?
2)		PUSHJ	P,E$$PTL	;[1204] NO, DIE
2)		TLNE	W1,-1		;MAKE SURE VALID
**************
1)93		PUSHJ	P,R50T6		;CONVERT TO SIXBIT
****
2)93	;**;[1204] Insert @ T.20+3L	JNG	14-Jun-79
2)		TRNE	W3,-1		;[1204] SMALL ENOUGH?
2)		PUSHJ	P,E$$PTL	;[1204] NO, COMPLAIN
2)		PUSHJ	P,R50T6		;CONVERT TO SIXBIT
**************
1)99		MOVEM	P1,RC.CUR	;[1154] RESTORE RC.CUR
****
2)99	;**;[1204] Insert @ T.23B+6L	JNG	14-Jun-79
2)		MOVE	T1,LSTRRV	;[1204] GET TRUE VALUE
2)		TLNE	T1,-1		;[1204] IN BOUNDS?
2)		PUSHJ	P,E$$PTL	;[1204] NO, COMPLAIN
2)		MOVEM	P1,RC.CUR	;[1154] RESTORE RC.CUR
**************
1)110	RWORD3:	LSHC	R,1		;GET RIGHT RELOCATION
1)		TRNN	R,-1		;SEE IF RELOCATABLE
****
2)110	;**;[1204] Insert @ RWORD3	JNG	14-Jun-79
2)	RWORD3:	SETZM	LSTRRV		;[1204] ASSUME ABSOLUTE
2)		LSHC	R,1		;GET RIGHT RELOCATION
2)		TRNN	R,-1		;SEE IF RELOCATABLE
Digital Equipment Corporation       28-AUG-79    Page 711
PCO Log Report


**************
1)110		ADDI	T1,0(T2)	;[1155] RELOCATE THE HALF WORD
1)	RWORD8:	HRR	W1,T1		;[1155] STORE THE RESULT
1)	CPOPJ1:	AOS	(P)		;SKIP RETURN
****
2)110	;**;[1204] Change @ RWORD8-1L	JNG	14-Jun-79
2)		ADD	T1,T2		;[1204] COMPUTE FULL-WORD RESULT
2)	RWORD8:	MOVEM	T1,LSTRRV	;[1204] STORE FOR BREAK CHECKS
2)		HRR	W1,T1		;[1155] STORE THE RESULT
2)	CPOPJ1:	AOS	(P)		;SKIP RETURN
**************
 
Digital Equipment Corporation       28-AUG-79    Page 712
PCO Log Report


[FILCOM]
File 1)	DSK:LNKOV1.201[4,327]	created: 1110 13-Jun-1979
File 2)	DSK:LNKOV1.MAC[4,327]	created: 1250 14-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	13-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN	14-Jun-79
2)	
**************
1)1	DECEVR==1201		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1204		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1204	Say LNKPTL if /SPACE or /PATCHSIZE exceeds 777777.
2)	
**************
1)17		MOVEM	T1,PH.NFL	;FOR NEXT LINK
****
2)17	;**;[1204] Insert @ LNKT4A+8L	JNG	14-Jun-79
2)		TLNE	T1,-1		;[1204] STILL IN BOUNDS?
2)		PUSHJ	P,E$$PTL##	;[1204] NO, COMPLAIN
2)		MOVEM	T1,PH.NFL	;FOR NEXT LINK
**************
 
Digital Equipment Corporation       28-AUG-79    Page 713
PCO Log Report


[FILCOM]
File 1)	DSK:LNKWLD.203[4,327]	created: 0823 14-Jun-1979
File 2)	DSK:LNKWLD.MAC[4,327]	created: 1222 14-Jun-1979
 
1)1	DECEVR==1203		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1204		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1204	Check for program growing too far and give LNKPTL.
2)	
**************
1)16		PUSHJ	P,T.COMR##	;STORE IN GLOBAL TABLE
****
2)16	;**;[1204] Insert @ .COMMON+5L	JNG	14-Jun-79
2)		TRNE	W3,-1		;[1204] MORE THAN 777777?
2)		PUSHJ	P,E$$PTL##	;[1204] YES, COMPLAIN
2)		PUSHJ	P,T.COMR##	;STORE IN GLOBAL TABLE
**************
 
Digital Equipment Corporation       28-AUG-79    Page 714
PCO Log Report


[FILCOM]
File 1)	DSK:LNKERR.203[4,327]	created: 0715 14-Jun-1979
File 2)	DSK:LNKERR.MAC[4,327]	created: 1239 14-Jun-1979
 
1)1	DECEVR==1203		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1204		;DEC EDIT VERSION
2)	
**************
1)3	
****
2)3	;1204	Add the LNKPTL message, and delete the STL message.
2)	
**************
1)10	PUF   31   31	PAGE. UUO failed, error code was [octal]
****
2)10	PTL   31   31	Program too long
2)			{Detected in module [symbol] from file [file]}
2)	PUF   31   31	PAGE. UUO failed, error code was [octal]
**************
1)10	STL   31   31	High segment code too long
1)			{Detected in module [symbol] from file [file]}
1)	T13   31   31	LVAR REL block (type 13) not implemented
****
2)10	T13   31   31	LVAR REL block (type 13) not implemented
**************
1)11	IFE TOPS20,<
****
2)11	HASH	PTL,0,<^_
2)		Your program extends beyond location 777777, which is  t
	he
2)		highest location that LINK is capable of loading.  You m
	ay
2)		be able to make your program fit by moving psect  origin
	s,
2)		lowering  the  high  segment origin, loading into a sing
	le
2)		segment, reducing the size of arrays in your  program,
	or
2)		using the overlay facility.>
2)	
2)	IFE TOPS20,<
**************
1)11	HASH	STL,0,<^_
1)		The high segment of your program has overflowed the end
	of
1)		memory.   You  can move the high segment down by using t
	he
1)		/SET:.HIGH.:address switch, or you can force  your  enti
	re
Digital Equipment Corporation       28-AUG-79    Page 715
PCO Log Report


1)		program into the low segment with the /SEGMENT:LOW switc
	h.>
1)	
1)	HASH	T13,0,<^_
****
2)11	HASH	T13,0,<^_
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 716
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -294*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4(765)

[Date Entered]          15-JUN-79

[Programmer]            GILBERT

[Routines]              LNKOV1

[Key Words]             BIG OVL FI  BGR TH 3A

[Source Before Edit]    %4A  (001204)

[Source After Edit]     %4A  (001205)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-27954
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 717
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     The  overlay  files  created  by  LINK  version  4  are
appreciably  larger  than  those created by LINK version 3A.
The extra disk space just contains zero.
 

                        **********


[DIAGNOSIS]
 
     Between LINK 3A and 4, LINK's internal  page 718ze  was
changed   from   200   words  to  1000  words.   However,  a
calculation of required disk space in LNKOV1 referenced  the
symbol  for the internal page size, assuming that it was the
same as the disk block size.  Since this is no longer  true,
the rounding being performed uses unneeded disk blocks.
 

                        **********


[CURE]
 
     Correct the rounding to use the symbol for  disk  block
size.   Note that even with this edit installed, the overlay
file will not be of identical size,  since  some  of  LINK's
internal  tables  that  get  stored in the overlay file have
changed in size since LINK 3A.
 
 
Digital Equipment Corporation       28-AUG-79    Page 719
PCO Log Report


[FILCOM]
File 1)	DSK:LNKHST.204[4,327]	created: 1526 14-Jun-1979
File 2)	DSK:LNKHST.MAC[4,327]	created: 1829 14-Jun-1979
 
1)1	DECEVR==1204		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1205		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1205	JNG/DZN	14-Jun-79	SPR 10-27954
2)	;	Re-claim some wasted blocks in .OVL files.
2)	;	Routine: LNKOV1
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 720
PCO Log Report


[FILCOM]
File 1)	DSK:LNKOV1.204[4,327]	created: 1250 14-Jun-1979
File 2)	DSK:LNKOV1.MAC[4,327]	created: 1830 14-Jun-1979
 
1)1	DECEVR==1204		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1205		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1205	Don't waste blocks in the overlay file.
2)	
**************
1)28		MOVEI	T2,.IPS(T1)
1)		LSH	T2,-.DBS2W	;[650]
****
2)28	;**;[1205] Replace @ LNKT7+8L	JNG	14-Jun-79
2)		ADDI	T1,1		;[1205] SIZE REQUIRED
2)		MOVEI	T2,.DBM(T1)	;[1205] ROUND UP TO BLOCK BOUND
2)		LSH	T2,-.DBS2W	;[650]
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 721
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -295*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1174)

[Date Entered]          15-JUN-79

[Programmer]            GILBERT

[Routines]              LNK999

[Key Words]             BAD999

[Source Before Edit]    %4A  (001205)

[Source After Edit]     %4A  (001206)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 722
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     After edit 1174 is installed, the LNK999  high  segment
of multi-segment LINK will no longer load correctly.
 

                        **********


[DIAGNOSIS]
 
     The LNK999 module contains an external reference to the
symbol NO.COR, which was deleted by edit 1174.
 

                        **********


[CURE]
 
     Correct the reference.
 
 
Digital Equipment Corporation       28-AUG-79    Page 723
PCO Log Report


[FILCOM]
File 1)	DSKB:LNKHST.OLD[30,3737,LINK,NEW]	created: 0836 15-JUNE-19
	79
File 2)	DSKB:LNKHST.MAC[30,3737,LINK,NEW]	created: 0836 15-JUNE-19
	79
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	14-Jun-7
	9
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	15-Jun-7
	9
2)	
**************
1)1	DECEVR==1205		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1206		;DEC EDIT VERSION
2)	
**************
1)6		END		;OF LNKHST
****
2)5	;1206	JNG	15-Jun-79
2)	;	Fix a NO.COR in LNK999 that edit 1174 missed.
2)	;	Routine: LNK999
2)	
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 724
PCO Log Report


[FILCOM]
File 1)	DSKB:LNK999.OLD[30,3737,LINK,NEW]	created: 0832 15-JUNE-19
	79
File 2)	DSKB:LNK999.MAC[30,3737,LINK,NEW]	created: 0832 15-JUNE-19
	79
 
1)1	SUBTTL	D.M.NIXON/DMN/JBC/JNG/DZN	10-Jun-79
1)	
****
2)1	SUBTTL	D.M.NIXON/DMN/JBC/JNG/DZN	15-Jun-79
2)	
**************
1)1	DECEVR==1174		;DEC EDIT VERSION
1)	
****
2)1	DECEVR==1206		;DEC EDIT VERSION
2)	
**************
1)2	
****
2)2	;1206	Fix a NO.COR that edit 1174 missed.
2)	
**************
1)4		  JRST	NO.COR##	;CAN NOT FAIL
1)	REDCR2:	POP	P,MAXCOR	;RESTORE FORMER LIMIT
****
2)4	;**;[1206] Replace @ REDCOR+27L	JNG	15-Jun-79
2)		  JRST	E$$MEF##	;[1206] CAN NOT FAIL
2)	REDCR2:	POP	P,MAXCOR	;RESTORE FORMER LIMIT
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 725
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -296*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1203)

[Date Entered]          29-JUN-79

[Programmer]            GILBERT

[Routines]              LNKLOD

[Key Words]             LNKCMX

[Source Before Edit]    %4A  (001206)

[Source After Edit]     %4A  (001207)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 726
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     LINK will stop loading if it detects mixed FORTRAN  and
Extended  FORTRAN,  but  some  users  may  want  to  do this
deliberately.
 

                        **********


[DIAGNOSIS]
 
     LINK assumed that this would never work.
 

                        **********


[CURE]
 
     If this is detected, print a question  mark  for  batch
and stop execution, but leave the program set up in memory.
 
 
Digital Equipment Corporation       28-AUG-79    Page 727
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 0836 15-Jun-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1554 29-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	15-Jun-7
	9
1)	;COPYRIGHT (C) 1973, 1979 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	29-Jun-7
	9
2)	;COPYRIGHT (C) 1973, 1979 BY
**************
1)1	DECEVR==1206		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1207		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1207	JNG	29-Jun-79
2)	;	Make the LNKCMX message continue loading, so the user ca
	n run
2)	;	the program if he wants to.
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 728
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 0554 15-Jun-1979
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1556 29-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	14-Jun-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	29-Jun-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1204		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1207		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1207	Make the LNKCMX message continue loading.
2)5	SUBTTL	LOAD CONTROL
**************
1)58	E$$CMX::.ERR.	(MS,.EC,V%L,L%F,S%F,CMX,<Cannot mix Extended FOR
	TRAN compiled code with FORTRAN compiled code>)
1)		.ETC.	(JMP,,,,,.ETIMF##)	;[1203]
1)	;**;[1120] Delete @FORCPU+1P	DZN	22-Sep-78
****
2)58	;**;[1207] Change @ E$$CMX	JNG	29-Jun-79
2)	E$$CMX::.ERR.	(MS,.EC,V%L,L%F,S%C,CMX,<Cannot mix Extended FOR
	TRAN compiled code with FORTRAN compiled code>)
2)		.ETC.	(JMP,,,,,.ETIMF##)	;[1203]
2)		AOS	.JBERR			;[1207] STOP EXECUTION
2)		JRST	FOROK			;[1207] BUT KEEP LOADING
2)	;**;[1120] Delete @FORCPU+1P	DZN	22-Sep-78
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 729
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -297*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1203)

[Date Entered]          29-JUN-79

[Programmer]            GILBERT

[Routines]              LNKOLD

[Key Words]             LNKPBI      ALGOL       SAIL        BLOCK 5

[Source Before Edit]    %4A  (001207)

[Source After Edit]     %4A  (001210)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-Q3307
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 730
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     After edit 1203 has been installed, LINK will not allow
block type 5s (Program End block) that contain only one data
word.  This type of block is generated by the Algol and SAIL
compilers.   Also,  LINK  thinks  that  a  program  break of
exactly 1,,0 is illegal.
 

                        **********


[DIAGNOSIS]
 
     Before edit 1203, LINK read the block  type  5  with  a
call  to  RB.2.   This routine (1) just assumed zero for the
second data word if it wasn't there, and (2) never  returned
a  program  break  of  1,,0.   Edit 1203 changed this to two
calls to RB.1, both of which went to the LNKRBS error if the
data  word  was not present.  In addition, some new code was
added to let a program break of 1,,0 through, but this break
is then disallowed by an immediately following check for the
LNKPBI message.
 

                        **********


[CURE]
 
     Just assume zero if the  second  call  to  RB.1  fails.
Also,  make  the LNKPBI check on the original data word from
the REL file, not the newly-created full word quantity.
 
 
Digital Equipment Corporation       28-AUG-79    Page 731
PCO Log Report


[FILCOM]
File 1)	LINK:LNKOLD.MAC[30,4507]  	created: 0551 15-Jun-1979
File 2)	LINK:LNKOLD.MAC[10,645063]	created: 1708 29-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	14-Jun-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/DZN	29-Jun-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1204		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==1210		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)5	COMMENT	\
****
2)4	;1210	Allow 1 word block 5, allow break of exactly 1,,0 (reloc
	ated).
2)5	COMMENT	\
**************
1)47		MOVE	W2,LSTRRV	;[1204] GET TRUE VALUE
****
2)47	;**;[1210] Replace @ T.5A+8L	JNG	29-Jun-79
2)		TLNE	W1,-1		;[1210] BREAK OK IN REL FILE?
2)		JRST	E$$PBI		;[1210] NO, GO COMPLAIN
2)		MOVE	W2,LSTRRV	;[1204] GET TRUE VALUE
**************
1)47		PUSHJ	P,RB.1		;[1204] GET SECOND WORD
1)		JRST	[MOVEI	T1,5	;[1204] DON'T LIKE THIS EITHER
1)			JRST	E$$RBS]	;[1204] COMPLAIN
1)		MOVE	W1,LSTRRV	;[1204] TRUE VALUE
****
2)47	;**;[1210] Replace @ T.5A+11L	JNG	29-Jun-79
2)	T.5PBI:	PUSHJ	P,RB.1		;[1210] GET SECOND WORD
2)		JRST	[SETZ	W1,	;[1210] OK, JUST USE ZERO
2)			JRST	T.5BR]	;[1210] WE'VE GOT THE BREAKS
2)		TLNE	W1,-1		;[1210] INVALID?
2)		JRST	E01PBI		;[1210] YES, GO COMPLAIN
2)		MOVE	W1,LSTRRV	;[1204] TRUE VALUE
**************
1)47		TLNE	W1,-1		;MAKE SURE VALID
1)	;**;[1174] Replace @T.5A+8L	DZN	1-Jun-79
1)		PUSHJ	P,E$$PBI	;[1174] NOT
1)		TLNE	W2,-1
1)		PUSHJ	P,E01PBI	;[1174] SAME FOR W2
1)		SKIPE	W3,LOD37	;COBOL LOCAL SYMBOLS
1)					;BUT IF THEY'RE LOADED
Digital Equipment Corporation       28-AUG-79    Page 732
PCO Log Report


****
2)47	;**;[1210] Replace @ T.5A+17L	JNG	29-Jun-79
2)	T.5BR:	SKIPE	W3,LOD37	;[1210] COBOL LOCAL SYMBOLS
2)					;BUT IF THEY'RE LOADED
**************
1)55		SETZ	W1,		;CLEAR AND CONTINUE
1)		POPJ	P,
1)	;**;[1174] Replace @T.5W2	DZN	1-Jun-79
1)	E01PBI::.ERR.	(MS,.EC,V%L,L%W,S%W,PBI) ;[1174]
1)		.ETC.	(OCT,.EP!.EC,,,,W2)
1)		.ETC.	(STR,.EC,,,,,< invalid>) ;[1174]
1)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
 
 
1)		SETZ	W2,		;CLEAR AND CONTINUE
1)		POPJ	P,
1)56	SUBTTL	BLOCK TYPE 6 - NAME
****
2)55	;**;[1210] Replace @ E$$PBI+4L	JNG	29-Jun-79
2)		SETZ	W2,		;[1210] CLEAR AND CONTINUE
2)		JRST	T.5PBI		;[1210] GO READ SECOND WORD
2)	;**;[1210] Replace @ E01PBI	JNG	29-Jun-79
2)	E01PBI::.ERR.	(MS,.EC,V%L,L%W,S%W,PBI) ;[1174]
2)		.ETC.	(OCT,.EP!.EC,,,,W1)	;[1210] TYPE INVALID BRE
	AK
2)		.ETC.	(STR,.EC,,,,,< invalid>) ;[1174]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
2)		SETZ	W1,		;[1210] CLEAR INVALID BREAK
2)		JRST	T.5BR		;[1210] CONTINUE
2)56	SUBTTL	BLOCK TYPE 6 - NAME
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 733
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -298*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1174)

[Date Entered]          01-JUL-79

[Programmer]            GILBERT

[Routines]              LNKWLD

[Key Words]             LNKDRC      ILL UUO     ED 1174

[Source Before Edit]    %4A  (001210)

[Source After Edit]     %4A  (001211)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-Q3033
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 734
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     After edit 1174 has been installed, LINK will fail with
an  illegal UUO immediately after issuing the LNKDRC warning
message.
 

                        **********


[DIAGNOSIS]
 
     An error in that edit causes LINK  to  start  executing
its  error  codes  as if they were instructions.  Since they
aren't, an illegal UUO soon follows.
 

                        **********


[CURE]
 
     Correct that part of edit 1174.
 
 
Digital Equipment Corporation       28-AUG-79    Page 735
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 1709 29-Jun-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 2230 29-Jun-1979
 
1)1	DECEVR==1210		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1211		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1211	JNG	29-Jun-79	QAR 10-3303
2)	;	Fix typo in LNKDRC message, avoid Illegal UUO.  Broken b
	y 1174.
2)	;	Routine: LNKWLD
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 736
PCO Log Report


[FILCOM]
File 1)	LINK:LNKWLD.MAC[30,4507]  	created: 1623 14-Jun-1979
File 2)	LINK:LNKWLD.MAC[10,645063]	created: 2234 29-Jun-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	14-Jun-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/MCHC/PAH/DZN	29-Jun-7
	9
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1204		;DEC EDIT VERSION
1)	;CALLING SEQUENCE
****
2)1	DECEVR==1211		;DEC EDIT VERSION
2)	;CALLING SEQUENCE
**************
1)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
****
2)3	;1211	Fix typo in LNKDRC.
2)4	SUBTTL	ENTER HERE  FROM LNKLOD TO GET A FILE TO LOAD
**************
1)40		.ETC.	(OCT,.EP!.EP,,,,W3) ;[1174]
1)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
****
2)40	;**;[1211] Change @ E$$DRC+5L	JNG	29-Jun-79
2)		.ETC.	(OCT,.EC!.EP,,,,W3) ;[1211]
2)		.ETC.	(JMP,,,,,.ETIMF##) ;[1174]
**************

[End PCO Write-up]
Digital Equipment Corporation       28-AUG-79    Page 737
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -299*
                   *********************


[Program Data]          System:   LINK
                        Component:LINK

[Validity]         4A(1211) DO NOT INSTALL!!

[Date Entered]          05-JUL-79

[Programmer]            D. NEFF

[Routines]              LNKERR    LNKLOG    LNKLOD    LNKNEW

[Key Words]             MORE E1174

[Source Before Edit]    %    (000000)

[Source After Edit]     %4A  (001212)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   Y
                        SER/SPR Number:10-Q03311
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       28-AUG-79    Page 738
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
Various loose ends following the error  message  clean-up  of  edit
1174:
 
     1.  The LNKAIC and RLC  messages  are  not  very  readable  in
         LNKERR.MAC.
 
     2.  The  LNKGFE  long  message  should  be  in   IFN   TOPS-20
         conditionals.
 
     3.  References in LNKERR  to  the  message  segment  [address]
         should be [octal], and the associated messages should tell
         the user that these quantities are addresses.
 
     4.  Indexed message 7 refers to a SAV file, even  though  .EXE
         files have been around a long time.
 
     5.  The changing of references of `core'  to  `memory'  missed
         the one in indexed message 10.
 
     6.  LNKERR.MAC incorrectly states that  the  messages  LNKFEE,
         LNKFLE  and  LNKFRE  are  unconditionally  of level 31 and
         severity 31.
 
     7.  Some messages resulting from  the  failure  of  a  LOOKUP,
         ENTER, RENAME, RUN or GETSEG UUO are missing a space.
 
     8.  The TOPS-20 long message for LNKEOV refers  to  the  saved
         file, when the failure was actually for the overlay file.
 
     9.  Some labels inside of unsupported  conditionals  were  not
         changed to the new format.
 
 
This edit should not be installed in the field, since  it  requires
nearly every other LINK edit to be installed first.
 

                        **********
Digital Equipment Corporation       28-AUG-79    Page 739
PCO Log Report


[DIAGNOSIS]
 
These problems were missed during the work for edit 1174.
 

                        **********


[CURE]
 
Clean up the loose ends as noted above.
 
Digital Equipment Corporation       28-AUG-79    Page 740
PCO Log Report


[FILCOM]
File 1)	LINK:LNKHST.MAC[30,4507]  	created: 2230 29-Jun-1979
File 2)	LINK:LNKHST.MAC[10,645063]	created: 1718 04-Jul-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	29-Jun-7
	9
1)	;COPYRIGHT (C) 1973, 1979 BY
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN	4-Jul-79
2)	;COPYRIGHT (C) 1973, 1979 BY
**************
1)1	DECEVR==1211		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==1212		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
1)6		END		;OF LNKHST
****
2)5	;1212	DZN	4-Jun-79
2)	;	Fix various typos and other loose ends in the aftermath
	of 1174.
2)6		END		;OF LNKHST
**************
 
Digital Equipment Corporation       28-AUG-79    Page 741
PCO Log Report


[FILCOM]
File 1)	LINK:LNKERR.MAC[30,4507]  	created: 1640 14-Jun-1979
File 2)	LINK:LNKERR.MAC[10,645063]	created: 1734 04-Jul-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	14-Jun-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/SRM/JBC/JNG/DZN	4-Jul-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1204		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1212		;DEC EDIT VERSION
2)	VERSION
**************
1)4	SUBTTL	FIND MESSAGE
****
2)3	;1212	Make sure messages here really agree with the rest of LI
	NK.
2)4	SUBTTL	FIND MESSAGE
**************
1)10	AIC   31   31	Attempt to increase size of {blank   common} fro
	m [decimal] to [decimal]
1)				   		    {common [symbol}
1)			{Detected in module [symbol] from file [file]}
****
2)10	AIC   31   31	Attempt to increase size of {blank common} {comm
	on [symbol]} from [decimal] to [decimal]
2)			{Detected in module [symbol] from file [file]}
**************
1)10	FEE   31   31	ENTER error [reason] [file]
1)	FIN    1    1	LINK finished
1)	FLE   31   31	LOOKUP error [reason] [file]
1)	FOV   31   31	Cannot overlay F40 compiled code
1)			{Detected in module [symbol] from file [file]}
1)	FRE   31   31	RENAME error [reason] [file]
1)	FSF    8    8	FORTRAN subroutine not in expected format, /MIXF
	OR fixup not done
****
2)10	FEE    *    *	ENTER error [reason] [file]
2)	FIN    1    1	LINK finished
2)	FLE    *    *	LOOKUP error [reason] [file]
2)	FOV   31   31	Cannot overlay F40 compiled code
2)			{Detected in module [symbol] from file [file]}
2)	FRE    *    *	RENAME error [reason] [file]
2)	FSF    8    8	FORTRAN subroutine not in expected format, /MIXF
	OR fixup not done
**************
1)10	IVC   31   31	Index validation check failed at [address]
1)	LDS    1    1	LOAD segment
Digital Equipment Corporation       28-AUG-79    Page 742
PCO Log Report


****
2)10	IVC   31   31	Index validation check failed at address [octal]
2)	LDS    1    1	LOAD segment
**************
1)10	POV    8    8	Psects [symbol] and [symbol] overlap from [addre
	ss] to [address]
1)	PTL   31   31	Program too long
****
2)10	POV    8    8	Psects [symbol] and [symbol] overlap from addres
	s [octal] to [octal]
2)	PTL   31   31	Program too long
**************
1)10			[symbol]	[octal]		[octal]
1)			{. . .		 . . .		 . . .}
1)	RME   31    *	REMAP error{, high segment origin may be incorre
	ct}
****
 
 
2)10			{[symbol]	[octal]		[octal]
2)			  . . .		 . . .		 . . .}
2)	RME   31    *	REMAP error{, high segment origin may be incorre
	ct}
**************
1)11	IFN TOPS20,<
1)	HASH	EOV,0,<^_
1)		LINK could not write the saved file on the disk.>
1)	> ;END IFN TOPS20
****
2)11	;**;[1212] Replace below in TOPS-20 EOV long message	DZN	
	4-Jul-79
2)	IFN TOPS20,<
2)	HASH	EOV,0,<^_
2)		LINK could not write the overlay file on the disk.>
2)	> ;END IFN TOPS20
**************
1)11	HASH	GFE,0,<^_
****
2)11	IFN TOPS20,<
2)	HASH	GFE,0,<^_
**************
1)11	HASH	GSE,@
****
2)11	> ;END IFN TOPS20
2)	HASH	GSE,@
**************
 
Digital Equipment Corporation       28-AUG-79    Page 743
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOD.MAC[30,4507]  	created: 1556 29-Jun-1979
File 2)	LINK:LNKLOD.MAC[10,645063]	created: 1726 04-Jul-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	29-Jun-7
	9
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE/MCHC/DZN	4-Jul-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1207		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==1212		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;1212	Make LNKIVC and LNKPOV consistent with other messages.
2)5	SUBTTL	LOAD CONTROL
**************
1)41	;**;[1174] Replace @INVIDX+2L	DZN	30-May-79
1)	E$$IVC::.ERR.	(MS,.EC,V%L,L%F,S%F,IVC,<Index validation check
	failed at >) ;[1174]
1)		.ETC.	(OCT,.EP,,,,T1)
****
2)41	;**;[1212] Replace @E$$IVC	DZN	4-Jul-79
2)	E$$IVC::.ERR.	(MS,.EC,V%L,L%F,S%F,IVC,<Index validation check
	failed at address >) ;[1212]
2)		.ETC.	(OCT,.EP,,,,T1)
**************
1)72	;**;[1174] Replace @CHKBN1+11L	DZN	30-May-79
1)	E$$POV::.ERR.	(MS,.EC,V%L,L%W,S%W,POV,<Psects >) ;[1174]
****
2)72	E$$POV::.ERR.	(MS,.EC,V%L,L%W,S%W,POV,<Psects >) ;[1174]
**************
1)72		.ETC.	(STR,.EC,,,,,< overlap from >) ;[1174]
1)		.ETC.	(OCT,.EC!.EP,,,,W1) ;[1174]
****
2)72	;**;[1212] Replace @E$$POV+4L	DZN	4-Jul-79
2)		.ETC.	(STR,.EC,,,,,< overlap from address >) ;[1212]
2)		.ETC.	(OCT,.EC!.EP,,,,W1) ;[1174]
**************
 
Digital Equipment Corporation       28-AUG-79    Page 744
PCO Log Report


[FILCOM]
File 1)	LINK:LNKLOG.MAC[30,4507]  	created: 1853 14-Jun-1979
File 2)	LINK:LNKLOG.MAC[10,645063]	created: 1742 04-Jul-1979
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/DZN	14-Jun-79
1)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JNG/DZN	4-Jul-79
2)	;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
**************
1)1	DECEVR==1202		;DEC EDIT VERSION
1)	SEGMENT
****
2)1	DECEVR==1212		;DEC EDIT VERSION
2)	SEGMENT
**************
1)3	SUBTTL	DISPATCH TABLES FOR MESSAGE CLASSES
****
2)2	;1212	Make indexed LRE messages 7 and 10 consistent with other
	s, fix missing
2)	;	space in LRE messages.
2)3	SUBTTL	DISPATCH TABLES FOR MESSAGE CLASSES
**************
1)9	;**;[1202] Replace @ERLRE3	DZN	14-Jun-79
1)		MOVE	T4,ERCHAN	;[1202] RESTORE CHAN PLUS FLAGS
****
2)9	;**;[1212] Insert after ERLRE2+4L	DZN	4-Jul-79
2)		OUTVIA	.TSPAC##	;[1212] PRINT SPACE BETWEEN FAIL
	URE AND REASON
2)		MOVE	T4,ERCHAN	;[1202] RESTORE CHAN PLUS FLAGS
**************
1)24		.ASCIZ	<ENTER error >;;[564]
1)	.ERFLE::ASCIZ	\FLE\
1)		.ASCIZ	<LOOKUP error >
1)	.ERFRE::ASCIZ	\FRE\
1)		.ASCIZ	<RENAME error >
1)	.ERGSE::ASCIZ	\GSE\
1)		.ASCIZ	<GETSEG error >
1)	.ERNED::ASCIZ	\NED\
****
2)24	;**;[1212] Replace @.ERFEE+1L	DZN	4-Jul-79
2)		.ASCIZ	<ENTER error>	;[1212]
2)	.ERFLE::ASCIZ	\FLE\
2)		.ASCIZ	<LOOKUP error>	;[1212]
2)	.ERFRE::ASCIZ	\FRE\
2)		.ASCIZ	<RENAME error>	;[1212]
2)	.ERGSE::ASCIZ	\GSE\
2)		.ASCIZ	<GETSEG error>	;[1212]
2)	.ERNED::ASCIZ	\NED\
**************
1)25		.ERR.	(,0,V%L,L%F,S%F,,<(7) not a SAV file >)
Digital Equipment Corporation       28-AUG-79    Page 745
PCO Log Report


1)		.ERR.	(,0,V%L,L%F,S%F,,<(10) not enough core >)
1)		.ERR.	(,0,V%L,L%F,S%F,,<(11) device not available >)
****
2)25	;**;[1212] Replace @LRETAB+7L	DZN	4-Jul-79
2)		.ERR.	(,0,V%L,L%F,S%F,,<(7) not a saved file >)
2)		.ERR.	(,0,V%L,L%F,S%F,,<(10) not enough memory >)
2)		.ERR.	(,0,V%L,L%F,S%F,,&l