

; Bliss-32 7.352	Saturday 22-AUG-1978 04:48:12	DBB3:[LINKER.SRC]LNKINI.B32;7					Page 1

; Digital Equipment Corporation

;

;00100  0001	MODULE LNK_INIT (IDENT='X01.05') =

;00200  0002	

;00300  0003	BEGIN

;00400  0004	!

;00500  0005	!

;00600  0006	! Copyright (C) 1976, 1977, 1978

;00700  0007	! Digital Equipment Corporation,  Maynard, Massachusetts  01754

;00800  0008	!

;00900  0009	! This software is furnished under a license for use only on  a

;01000  0010	! single computer system and may be copied only with the inclu-

;01100  0011	! sion of the above copyright notice.  This  software,  or  any

;01200  0012	! other  copies  thereof, may not be provided or otherwise made

;01300  0013	! available to any other person except for use on  such  system

;01400  0014	! and  to  one who agrees to these license terms.  Title to and

;01500  0015	! ownership of the software shall at all times remain in DEC.

;01600  0016	!

;01700  0017	! The information in this software is subject to change without

;01800  0018	! notice and should not be construed as a commitment by Digital

;01900  0019	! Equipment Corporation.

;02000  0020	!

;02100  0021	! DEC assumes no responsibility for the use or  reliability  of

;02200  0022	! its software on equipment which is not supplied by DEC.

;02300  0023	!

;02400  0024	!

;02500  0025	!

;02600  0026	!

;02700  0027	!

;02800  0028	!++

;02900  0029	!

;03000  0030	! MODULE: LNK_INIT

;03100  0031	!

;03200  0032	! FACILITY: LINKER

;03300  0033	!

;03400  0034	! ABSTRACT: INITIALIZATION ROUTINE

;03500  0035	!

;03600  0036	! HISTORY:

;03700  0037	!

;03800  0038	!	VERSION: X01.00

;03900  0039	!

;04000  0040	!	AUTHOR: T.J. PORTER 03-JAN-77

;04100  0041	!

;04200  0042	!	MODIFICATIONS:

;04300  0043	!

;04400  0044	! NO.	DATE		PROGRAMMER	PURPOSE

;04500  0045	! ---	----		----------	-------

;04600  0046	! 001	18-JUL-77	T.J. PORTER	GET STARTING PAGE FAULTS

;04700  0047	! 002	04-JAN-78	T.J. PORTER	CLEAN UP

;04800  0048	! 003	21-APR-78	T.J. PORTER	REQUIRE FILE CLEAN UP

;04810  0049	! 004	07-MAY-78	T.J. PORTER	BUG - STACK SIZE IS A WORD

;04820  0050	! 005	15-MAY-78	T.J. PORTER	TREAT SHAREABLE IMAGES AS CLUSTERS

;04900  0051	!--



; Bliss-32 7.352	Saturday 22-AUG-1978 04:48:12	DBB3:[LINKER.SRC]LNKINI.B32;7					Page 2

; Digital Equipment Corporation

;

;05000  0052	     

;05100  0053	!

;05200  0054	!++

;05300  0055	!

;05400  0056	! FUNCTIONAL DESCRIPTION:

;05500  0057	!

;05600  0058	! ROUTINE WHICH INITIALIZES THE LINKER. IT TAKES NO EXPLICIT

;05700  0059	! INPUT. THE FOLLOWING INITIALIZATION IS DONE, IN ORDER:

;05800  0060	!	1. HASH TABLE ALLOCATED FOR THE SYMBOL TABLE

;05900  0061	!	2. DEFAULT VALUES ESTABLISHED FOR STACK, BASE ADDRESS

;06000  0062	!		AND LINK CONTROL MASK.

;06100  0063	!

;06200  0064	!--

;06300  0065	!

;06310  0066	LIBRARY

;06320  0067		'SYS$LIBRARY:STARLET.L32';

;06400  0068	REQUIRE

;06500  0069		'PREFIX';

;06510  0261	REQUIRE

;06520  0262		'DATBAS';

;06600  0494	!

;06700  0495	EXTERNAL ROUTINE

;06800  0496		LNK$ALLOBLK;			! DYNAMIC MEMORY ALLOCATOR

;06900  0497	!

;07000  0498	EXTERNAL LITERAL

;07100  0499		DEF$C_STACK : SHORT,	! DEFAULT STACK SIZE

;07300  0500		DEF$C_LNKCTL,		! DEFAULT CONTROL MASK

;07400  0501		LNK$_INITFAIL,		! INITIALIZATION FAILURE EXIT CODE

;07500  0502		SYM$C_TBLSIZ : WORDLIT,	! LENGTH IN ENTRIES OF THE HASH TABLE

;07600  0503		SYM$C_SIZE : SHORT;	! SIZE OF HASH TABLE ENTRY = SIZE OF A SYMBOL DESCRIPTOR

;07700  0504	!

;07800  0505	EXTERNAL

;07900  0506		LNK$GL_FVMLST : REF BLOCK[,BYTE],		! HEAD OF FREE VIRTUAL MEMORY LIST

;08000  0507		LNK$GL_CTLMSK,					! LINK CONTROL MASK

;08100  0508		LNK$GW_STACK : WORD,				! STACK SIZE

;08200  0509		SYM$GL_HASHTBL;

;08300  0510	! 

;08400  0511	GLOBAL ROUTINE LNK$INIT : NOVALUE =

;08500  0512	BEGIN

;08600  0513	!

;08700  0514	LOCAL	SYMENTALLO;					! ALLOCATED SIZE FOR SYMBOL TABLE ENTRIES

;08800  0515	!

;08900  0516	SYMENTALLO = (SYM$C_SIZE + 7) AND NOT 7;		! ROUND ALLOCATION SIZE UP

;09000  0517	LNK$ALLOBLK( SYM$C_TBLSIZ*.SYMENTALLO,SYM$GL_HASHTBL);	! ALLOCTE A HASH TABLE

;09100  0518	LNK$GW_STACK = DEF$C_STACK;				! SET DEFAULT STACK SIZE

;09300  0519	LNK$GL_CTLMSK = DEF$C_LNKCTL;				! DEFAULT CONTROL FLAGS

;09310  0520	LNK$ALLOBLK(FVM$C_SIZE,LNK$GL_FVMLST);			! ALLOCATE FIRST FREE MEMORY DESCRIPTOR

;09320  0521	LNK$GL_FVMLST[FVM$L_NXTFVM] = 0;			! POINTS NOWHERE

;09330  0522	LNK$GL_FVMLST[FVM$L_ADDRESS] = 0;			! ASSUME BASE OF PROGRAM REGION

;09340  0523	LNK$GL_FVMLST[FVM$L_BYTES] = CONTROL_REGION;		! AND ALL OF REGION

;09400  0524	RETURN;

;09500  0525	END;





							    .TITLE  LNK_INIT



; Bliss-32 7.352	Saturday 22-AUG-1978 04:48:12	DBB3:[LINKER.SRC]LNKINI.B32;7					Page 2-1

; Digital Equipment Corporation

;

							    .IDENT  \X01.05\



						    SYM$C_MAXLNG==	15

						    FDB$C_SIZE==	75

						    LNK$S_NEWUDF==	0

						    LNK$S_LIBR==	1

						    LNK$S_SHR==		2

						    LNK$S_SELSER==	3

						    LNK$S_OPTION==	4

						    LNK$S_DEBUGER==	5

						    LNK$S_LIBEXTR==	6

						    LNK$S_LIBSRCH==	7

						    LNK$M_NEWUDF==	1

						    LNK$M_LIBR==	2

						    LNK$M_SHR==		4

						    LNK$M_SELSER==	8

						    LNK$M_OPTION==	16

						    LNK$M_DEBUGER==	32

						    LNK$M_LIBEXTR==	64

						    LNK$M_LIBSRCH==	128

						    PMT$L_PSCDES==	0

						    PMT$L_MODCON==	1

						    PMT$L_SYMLST==	1

						    PMT$C_SIZE==	8

						    OMD$C_SIZE==	2080

						    OMD$M_NOPSCT==	1

						    OMD$S_NOPSCT==	0

						    OMD$M_NOBIN==	2

						    OMD$S_NOBIN==	1

						    OMD$M_SHRIMG==	4

						    OMD$S_SHRIMG==	2

						    OMD$M_SELSER==	8

						    OMD$S_SELSER==	3

						    OMD$M_MAPMOD==	16

						    OMD$S_MAPMOD==	4

						    OMD$M_DEBUGER==	32

						    OMD$S_DEBUGER==	5

						    PSC$C_SIZE==	43

						    MPC$C_SIZE==	17

						    LID$C_SIZE==	4

						    CLU$C_SIZE==	55

						    CLU$S_BASED==	0

						    CLU$S_SYMBAS==	1

						    CLU$S_SHRIMG==	2

						    CLU$S_PIC==		3

						    CLU$S_COPY==	4

						    CLU$S_OPEN==	5

						    CLU$S_PENDING==	6

						    FVM$C_SIZE==	12

							    .GLOBL  LNK$ALLOBLK, DEF$C_STACK, DEF$C_LNKCTL, LNK$_INITFAIL

							    .GLOBL  SYM$C_TBLSIZ, SYM$C_SIZE, LNK$GL_FVMLST, LNK$GL_CTLMSK

							    .GLOBL  LNK$GW_STACK, SYM$GL_HASHTBL



							    .PSECT  $CODE$,NOWRT,2





; Bliss-32 7.352	Saturday 22-AUG-1978 04:48:12	DBB3:[LINKER.SRC]LNKINI.B32;7					Page 2-2

; Digital Equipment Corporation

;

					 0000 00000 	    .ENTRY  LNK$INIT, Save nothing				      ; 0511

		         50 00000000*  8F  D0 00002 	    MOVL    #<<SYM$C_SIZE+7>&-8>, SYMENTALLO			      ; 0516

				0000G  CF  9F 00009 	    PUSHAB  SYM$GL_HASHTBL					      ; 0517

	   7E	         50 00000000G  8F  C5 0000D 	    MULL3   #SYM$C_TBLSIZ, SYMENTALLO, -(SP)			      ;

		  0000G  CF	       02  FB 00015 	    CALLS   #2, LNK$ALLOBLK					      ;

		  0000G  CF	       00  9B 0001A 	    MOVZBW  #DEF$C_STACK, LNK$GW_STACK				      ; 0518

		  0000G  CF 00000000G  8F  D0 0001F 	    MOVL    #DEF$C_LNKCTL, LNK$GL_CTLMSK			      ; 0519

				0000G  CF  9F 00028 	    PUSHAB  LNK$GL_FVMLST					      ; 0520

				       0C  DD 0002C 	    PUSHL   #12							      ;

		  0000G  CF	       02  FB 0002E 	    CALLS   #2, LNK$ALLOBLK					      ;

		         50	0000G  CF  D0 00033 	    MOVL    LNK$GL_FVMLST, R0					      ; 0521

				       60  7C 00038 	    CLRQ    (R0)						      ;

		    08   A0 40000000   8F  D0 0003A 	    MOVL    #1073741824, 8(R0)					      ; 0523

					   04 00042 	    RET     							      ; 0511



; Routine Size:  67 bytes





;09600  0526	END ELUDOM













;				       PSECT SUMMARY

;

;	Name		 Bytes			       Attributes

;

;  $CODE$         	    67  NOWRT,  RD ,  EXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)









;				LIBRARY STATISTICS

;

;					     -------- Symbols --------    Blocks

;	File				     Total    Loaded   Percent      Read

;

;  DBA4:[SYSLIB]STARLET.L32;1		      2688         1         0       108











; Size:		67 code + 0 data bytes

; Run Time:	00:11.6

; Elapsed Time:	00:13.5

; Memory Used:	162 pages

; Compilation Complete

