P3PRE	MACRO M1110  22-AUG-78 01:53  PAGE 2





      1						.TITLE	P3PRE

      2						.IDENT	/05/

      3

      4					;

      5					; COPYRIGHT   1976,  DIGITAL  EQUIPMENT  CORP.,  MAYNARD,   MASS.

      6					;

      7					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE

      8					; ON A SINGLE COMPUTER SYSTEM  AND  CAN BE COPIED (WITH INCLUSION

      9					; OF DEC'S COPYRIGHT NOTICE)  ONLY FOR USE IN SUCH SYSTEM, EXCEPT

     10					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.

     11					;

     12					; THE INFORMATION IN  THIS DOCUMENT IS  SUBJECT TO CHANGE WITHOUT

     13					; NOTICE AND SHOULD NOT  BE CONSTRUED AS  A COMMITMENT BY DIGITAL

     14					; EQUIPMENT CORPORATION.

     15					;

     16					; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY

     17					; OF ITS  SOFTWARE  ON  EQUIPMENT  WHICH IS NOT  SUPPLIED BY DEC.

     18					;

     19					; VERSION 05

     20					;

     21					; C. MONIA 05-FEB-76

     22					;

     23					; PERFORM PRELIMINARY SYMBOL TABLE PROCESSING

     24					;

     25					; LOCAL MACROS

     26					;

     27					; DEFINE CANNED SECTION TABLE ENTRIES

     28					;

     29					; SECTN	NAME,FLAGS,SEG

     30					;

     31					; WHERE:

     32					;

     33					;	NAME=SECTION NAME

     34					;	OFFSET=OFFSET IN SEGMENT DESCRIPTOR TO RECEIVE SECTION ADDRESS.

     35					;	       BLANK IF NONE.

     36					;	FLAGS=SECTION FLAGS BYTE CONTENTS

     37					;	SEG='ROOT' IF SECTION IS DEFINED IN ROOT SEGMENT ONLY

     38					;

     39

     40						.MACRO	SECTN	NAME,FLAGS,OFFSET,SEG

     41					.=.-2

     42					$$0=.

     43						.WORD	0

     44						.WORD	0

     45					$$$=.

     46					.=.-4

     47						.RAD50	/NAME/

     48					.=$$$

     49						.BYTE	FLAGS

     50						.IF B	SEG

     51						.BYTE	0

     52						.IFF

     53						.BYTE	-1

     54						.ENDC

     55						.IF NB	OFFSET

     56						.WORD	OFFSET

     57						.IFF

P3PRE	MACRO M1110  22-AUG-78 01:53  PAGE 2-1





     58						.WORD	0

     59						.ENDC

     60					SCTLGH=.-$$0

     61						.WORD	0

     62						.ENDM

     63

     64					;

     65					; LOCAL DATA

     66					;

     67					; COMMON STORAGE SHARED WITH MODULE 'PRCLM'

     68					;

     69					;	*** NOTE ***

     70					;

     71					; THE CONTENTS OF THE SECTION DEFINED BELOW MUST MATCH

     72					; THE SECTION CONTENTS SPECIFIED IN MODULE 'PRCLM'.

     73					;

     74

     75	000000					.PSECT	PRCL$D,D,OVR

     76

     77	000000				CRSCT:	.BLKW	10.		; CURRENT SECTION DATA

     78	000024				CRVSC:	.BLKW	1		; VIRTUAL ADDRESS OF CURRENT SEGMENT

     79	000026	125257 	003340 		LOADNM:	.RAD50	/$LOAD/		; NAME OF MANUAL LOAD ROUTINE

     80	000032				MODN:	.BLKW	1		; FIRST HALF OF MODULE NAME

     81	000034				LCLSYM:	.BLKW	8.		; LOCAL SYMBOL STORAGE

     82	000054				SRCPF:	.BLKW	1		; SEARCH PATH FLAG

     83	000056				SRVSG:	.BLKW	1		; VIRTUAL ADDRESS OF SEARCH SEGMENT

     84	000060				SYDEF:	.BLKW	1		; SYMBOL DEFINITION FLAG

     85	000062				SYENT:	.BLKW	1		; SYMBOL ENTRY ADDRESS

     86	000064				SYFLG:	.BLKW	1		; CURRENT SYMBOL FLAGS

     87

     88	000000					.PSECT

     89

     90					;

     91					; GSD DISPATCH VECTOR TABLE

     92					;

     93					; THIS TABLE CONTAINS THE ADDRESS OF SUBROUTINES WITHIN MODULE

     94					; 'PRCLM' THAT PROCESS SPECIFIED GSD RECORD TYPES. PRIOR TO

     95					; ISSUING A SUBROUTINE CALL TO ANY OF THESE ENTRY POINTS, THE

     96					; FOLLOWING MUST BE SETUP:

     97					;

     98					; INPUTS:

     99					;

    100					;	R0=REAL ADDRESS OF SEGMENT DESCRIPTOR

    101					;	R1=ADDRESS OF LOCAL SYMBOL DESCRIPTOR (LCLSYM)

    102					;	R4=ADDRESS OF DUMMY ELEMENT DECRIPTOR

    103					;	R5=REAL ADDRESS OF SEGMENT DESCRIPTOR

    104					;	CRSCT=CURRENT SECTION DATA (SETUP BY PSTNME OR SCTNME)

    105					;	MODN=NAME OF SEGMENT BEING PROCESSED

    106					;	$CRELM=ADDRESS OF DUMMY ELEMENT DESCRIPTOR

    107					;	$CRSEG=REAL ADDRSS OF SEGMENT DESCRIPTOR

    108					;	$CRVEL=0 (VIRTUAL ADDRESS OF CURRENT ELEMENT DESCRIPTOR)

    109					;	$CRVSG=VIRTUAL ADDRESS OF SEGMENT DESCRIPTOR

    110					;

    111					;

    112					;	*** NOTE ***

    113					;

    114					; THE CONTENTS OF THIS TABLE ARE ESTABLISHED BY MODULE 'PRCLM'.

P3PRE	MACRO M1110  22-AUG-78 01:53  PAGE 2-2





    115					; ANY CHANGE IN THAT MODULE MUST BE REFLECTED HEREIN.

    116					;

    117

    118	000000					.PSECT	GSDV$D,D,OVR

    119

    120	000000				MODNME:	.BLKW	1		; MODULE NAME

    121	000002				SCTNME:	.BLKW	1		; SECTION NAME

    122	000004				INTSYM:	.BLKW	1		; INTERNAL SYMBOL

    123	000006				XFRADR:	.BLKW	1		; TRANSFER ADDRESS

    124	000010				SYMDCL:	.BLKW	1		; SYMBOL DECLARATION

    125	000012				PSTNME:	.BLKW	1		; PROGRAM SECTION NAME

    126	000014				VIDENT:	.BLKW	1		; VERSION IDENTIFICATION

    127	000016				VSTNME:	.BLKW	1		; VIRTUAL ARRAY NAME

    128

    129	000000					.PSECT

    130

    131					;

    132					; DUMMY ELEMENT DESCRIPTOR

    133					;

    134

    135	000000	000000 			DUMMY:	.WORD	0		; LINK TO NEXT

    136	000002					.BLKW	1		; ADDRESS OF CMT TABLE

    137	000004					.BLKW	1		; HIGHEST SECTION NUMBER

    138	000006	000000 				.WORD	0		; ELEMENT SWITCH WORD

    139	000010	000000 				.WORD	0		; MODULE IDENTIFICATION

    140	000012	000000 				.WORD	0		; ...

    141	000014	000000 				.WORD	0		; MODULE NAME

    142	000016	000000 				.WORD	0		; ...

    143	000020	000000 				.WORD	0		; VIRTUAL ADDRESS OF CMT TABLE

    144

    145					;

    146					; SYMBOL ENTRY FOR OVERLAY CONTROL ROUTINE

    147					;

    148

    149	000022	125311 			MARKS:	.RAD50	/$MA/		; FIRST HALF OF NAME

    150	000024					.BLKW	1		; SECOND HALF OF NAME

    151	000026					.BLKB	1		; FLAGS

    152	000027	   000 				.BYTE	0		; UNUSED

    153

    154					;

    155					; SECTION ENTRY LIST

    156					;

    157					; THE SECTIONS DESIGNATED AS 'ROOT' ARE INCLUDED IN THE MAIN

    158					; ROOT SEGMENT ONLY. ALL OTHERS ARE INCLUDED IN EACH SEGMENT OF

    159					; THE TASK.

    160					;

    161

    162	000030	000000 			SCTNM:	.WORD	0				; DUMMY ZERO AT START OF TABLE

    163

    164	000032					SECTN	$$ALVC,<CS$REL!CS$TYP>,S$GAUT+2	; AUTOLOAD VECTOR SPACE

    165	000042					SECTN	$$RGDS,<CS$REL!CS$TYP>,S$GREG+2,ROOT ; REGION DESCRIPTOR

    166	000052				RTSPC:	SECTN	$$RTS,<CS$ALO!CS$GBL!CS$REL>	; GLOBAL SEGMENT RETURN POINT

    167	000062					SECTN	$$SGD0,<CS$ALO!CS$REL!CS$TYP>,,ROOT ; DELIMITING SECTION FOR SEGMENT TABLES

    168	000072					SECTN	$$SGD1,<CS$REL!CS$TYP>,S$GSEG+2,ROOT ; SEGMENT DESCRIPTORS

    169	000102					SECTN	$$SGD2,<CS$ALO!CS$REL!CS$TYP>,,ROOT ; DELIMITING SECTION FOR SEGMENT DESCRIPTORS

    170	000112					SECTN	$$WNDS,<CS$REL!CS$TYP>,S$GWND+2,ROOT ; WINDOW DESCRIPTORS

    171

P3PRE	MACRO M1110  22-AUG-78 01:53  PAGE 2-3





    172					;

    173					; TASK SWITCH WORD

    174					;

    175

    176	000122				TSKSW:	.BLKW	1		;

    177

    178					;

    179					; VIRTUAL ARRAY WINDOW INCREMENT

    180					;

    181

    182	000124	000000 			$VSWND::.WORD	0		;

    183

    184					;+

    185					; **-$P3PRE-PERFORM PHASE 3 PRELIMINARY PROCESSING

    186					;

    187					; THIS SUBROUTINE IS CALLED PRIOR TO PHASE 3 ELEMENT PROCESSING

    188					; TO INITIALIZE THE SYMBOL TABLES WITH THE FOLLOWING ENTRIES:

    189					;

    190					;	. GLOBAL SEGMENT NAMES

    191					;	. GLOBAL REFERENCES

    192					;	. PROGRAM SECTION ENTRIES FOR AUTOLOAD VECTORS, SEGMENT

    193					;	  TABLES, SEGMENT RETURN POINT, WINDOW DESCRIPTORS  AND

    194					;	  REGION DESCRIPTORS.

    195					;

    196					; THESE ENTRIES ARE MADE THROUGH CALLS TO SUBROUTINES WITHIN MODULE

    197					; 'PRCLM'. THE INPUTS ARE SETUP TO SIMULATE THOSE FROM AN ACTUAL MODULE.

    198					;

    199					;-

    200

    201	000126				$P3PRE::			;

    202	000126	026727 	000000G	000001 		CMP	$NUMSG,#1	; TASK OVERLAID?

    203	000134	001416 				BEQ	10$		; IF EQ NO

    204	000136	016701 	000000G			MOV	$TSKNM,R1	; GET ADDRESS OF TASK FILE NAME BLOCK

    205	000142					CALL	$CVRL		; CONVERT TO REAL

    206	000146	016067 	000000G	177746 		MOV	E$LSWT(R0),TSKSW ; COPY TASK FILE SWITCH WORD

    207	000154	005001 				CLR	R1		; SET TO INITIALIZE ALLOCATOR

    208	000156					CALL	$ALSVB		; INITIALIZE SMALL BLOCK ALLOCATION

    209	000162	012700 	000174'			MOV	#P3PRE,R0	; GET ADDRESS OF PHASE CONTROL ROUTINE

    210	000166					CALL	$PCTRL		; CALL PHASE CONTROL ROUTINE

    211	000172				10$:				;

    212	000172					RETURN			;

    213

    214					;

    215					; PERFORM PHASE DEPENDANT PRE-PROCESSING

    216					;

    217

    218	000174				P3PRE:				;

    219	000174					SAVRG			; SAVE THE NONVOLATILE REGISTERS

    220	000200					CALL	$WSINI		; INITIALIZE SEARCH ALGORITHM

    221	000204	016701 	000000G			MOV	$CRVSG,R1	; GET VIRTUAL ADDRESS OF SEGMENT DESCRIPTOR

    222	000210					CALL	$WRMPG		; WRITE-MARK THE PAGE

    223	000214	016705 	000000G			MOV	$CRSEG,R5	; GET REAL ADDRESS OF SEGMENT

    224	000220	020167 	000000G			CMP	R1,$RTSEG	; AT MAIN ROOT?

    225	000224	001070 				BNE	9$		; IF NE NO

    226	000226	010500 				MOV	R5,R0		; COPY ADDRESS OF SEGMENT

    227	000230	062700 	000000G			ADD	#S$GSTB,R0	; POINT TO SYMBOL TABLE

    228	000234	012701 	000000C			MOV	#MARKS-S$YM,R1	; GET ADDRESS OF DESCRIPTOR LESS OFFSET

P3PRE	MACRO M1110  22-AUG-78 01:53  PAGE 2-4





    229	000240	012761 	071113 	000002G		MOV	#^RRKS,S$YM+2(R1) ; SET SECOND HALF OF NAME

    230	000246	112702 	000000G			MOVB	#SY$GBL,R2	; ASSUME NOT BUILDING LIBRARY

    231	000252	026727 	000000G	000002G		CMP	$SZSEG,#S$ZSEG+2 ; TASK HAVE RESIDENT OVERLAYS

    232	000260	103403 				BLO	5$		; IF LO NO

    233	000262	012761 	071112 	000002G		MOV	#^RRKR,S$YM+2(R1) ; RESET NAME

    234	000270				5$:				;

    235	000270	032767 	000000G	177624 		BIT	#SW$NH,TSKSW	; TASK HAVE HEADER?

    236	000276	001402 				BEQ	6$		; IF EQ YES

    237	000300	152702 	000000G			BISB	#SY$WK,R2	; SET WEAK QUALIFIER

    238	000304				6$:				;

    239	000304	110261 	000000G			MOVB	R2,S$YFLG(R1)	; SET FLAGS

    240	000310					CALL	$SRCH		; SEARCH FOR SYMBOL

    241	000314	103034 				BCC	9$		; IF C/C HAVE ENTRY

    242	000316	012701 	000000G			MOV	#S$YLGH,R1	; GET LENGTH OF ENTRY

    243	000322					CALL	$ALSVB		; ALLOCATE SMALL BLOCK

    244	000326	016760 	000000G	000000G		MOV	$ASCT,S$YCMT(R0) ; SET SECTION ADDRESS

    245	000334	012702 	000022'			MOV	#MARKS,R2	; POINT TO LOCAL DESCRIPTOR LESS OFFSET

    246	000340	005720 				TST	(R0)+		; POINT TO NAME

    247	000342	012220 				MOV	(R2)+,(R0)+	; SETUP NAME

    248	000344	012220 				MOV	(R2)+,(R0)+	; ...

    249	000346	011210 				MOV	(R2),(R0)	; SETUP FLAGS

    250	000350	132710 	000000G			BITB	#SY$WK,(R0)	; WEAK REFERENCE?

    251	000354	001004 				BNE	7$		; IF NE YES

    252	000356	005265 	000000G			INC	S$GUND(R5)	; INCREMENT SEGMENT UNDEFINED COUNT

    253	000362	005267 	000000G			INC	$MSYMC		; INCREMENT MASTER UNDEFINED COUNT

    254	000366				7$:				;

    255	000366	016700 	000000G			MOV	$CRVSG,R0	; GET VIRTUAL ADDRESS OF CURRENT SEGMENT

    256	000372	062700 	000000C			ADD	#S$GSTB/2,R0	; POINT TO SYMBOL

    257	000376					CALL	$SRCHI		; SEARCH FOR INSERTION

    258	000402					CALL	$ISYM		; INSERT SYMBOL

    259	000406				9$:				;

    260	000406	012700 	000032'			MOV	#MODN,R0	; POINT TO MODULE NAME

    261	000412	016520 	000000G			MOV	S$GNME(R5),(R0)+ ; SET NAME OF SEGMENT

    262	000416	016510 	000002G			MOV	S$GNME+2(R5),(R0) ; ...

    263	000422	012704 	000000'			MOV	#DUMMY,R4	; GET ADDRESS OF DUMMY ELEMENT DESCRIPTOR

    264	000426	005064 	000000G			CLR	E$LCMT(R4)	; CLEAR ADDRESS OF CMT TABLE

    265	000432	012764 	177777 	000000G		MOV	#-1,E$LNUM(R4)	; RESET NUMBER OF HIGHEST SECTION

    266	000440	010467 	000000G			MOV	R4,$CRELM	; SET ADDRESS OF DUMMY DESCRIPTOR

    267	000444	005067 	000000G			CLR	$CRVEL		; CLEAR VIRTUAL DESCRIPTOR ADDRESS

    268	000450	012703 	000030'			MOV	#SCTNM,R3	; POINT TO SECTION NAME LIST

    269	000454				10$:				;

    270	000454					CALL	INSCT		; INSERT SECTION IN SEGMENT

    271	000460	103423 				BCS	20$		; IF C/S NO MORE TO INSERT

    272	000462	020327 	000060'			CMP	R3,#RTSPC+SCTLGH-2 ; INSERTED AUTO RETURN POINT?

    273	000466	001372 				BNE	10$		; IF NE NO

    274	000470	132765 	000000G	000000G		BITB	#SG$GBL,S$GSTS(R5) ; GLOBAL SEGMENT NAME?

    275	000476	001766 				BEQ	10$		; IF EQ NO

    276	000500	012700 	000036'			MOV	#LCLSYM+2,R0	; POINT TO LOCAL DESCRIPTOR

    277	000504	016520 	000000G			MOV	S$GNME(R5),(R0)+ ; INSERT NAME

    278	000510	016520 	000002G			MOV	S$GNME+2(R5),(R0)+ ; ...

    279	000514	012720 	000000C			MOV	#<SY$DEF!SY$GBL!SY$REL>,(R0)+ ; SET FLAGS

    280	000520	005010 				CLR	(R0)		; OFFSET INTO SECTION IS ZERO

    281	000522					CALL	INSYM		; INSERT SYMBOL IN SEGMENT

    282	000526	000752 				BR	10$		; GO AGAIN

    283	000530				20$:				;

    284	000530	012700 	000000'			MOV	#DUMMY,R0	; GET ADDRESS OF DUMMY ELEMENT DESCR.

    285	000534					CALLR	$DLCMT		; RETURN CMT TABLE TO POOL

P3PRE	MACRO M1110  22-AUG-78 01:53  PAGE 2-5





    286

    287					;

    288					; INSERT SECTION ENTRY IN R3 INTO TABLE

    289					;

    290

    291	000540				INSCT:				;

    292	000540	000261 				SEC			; ASSUME NO MORE ENTRIES IN SECTION LIST

    293	000542	012700 	000036'			MOV	#LCLSYM+2,R0	; POINT TO LOCAL DESCRIPTOR

    294	000546	012320 				MOV	(R3)+,(R0)+	; COPY SECTION NAME

    295	000550	001434 				BEQ	30$		; IF EQ AT END OF LIST

    296	000552	012320 				MOV	(R3)+,(R0)+	; COPY SECOND HALF OF NAME

    297	000554	012320 				MOV	(R3)+,(R0)+	; COPY FLAGS

    298	000556	005010 				CLR	(R0)		; CLEAR LENGTH

    299	000560	105740 				TSTB	-(R0)		; ROOT SEGMENT ONLY?

    300	000562	001404 				BEQ	10$		; IF EQ NO

    301	000564	026767 	000000G	000000G		CMP	$CRVSG,$RTSEG	; AT ROOT?

    302	000572	001022 				BNE	20$		; IF NE NO

    303	000574				10$:				;

    304	000574	105010 				CLRB	(R0)		; CLEAR HIGH FLAGS BYTE

    305	000576	032767 	000000G	177316 		BIT	#SW$NH,TSKSW	; BUILDING RESIDENT LIBRARY?

    306	000604	001402 				BEQ	15$		; IF EQ NO

    307	000606	112710 	000000G			MOVB	#CS$RES,(R0)	; FLAG SECTION AS TASK-RESIDENT

    308	000612				15$:				;

    309	000612	010500 				MOV	R5,R0		; COPY REAL ADDRESS OF SEGMENT

    310	000614	012701 	000034'			MOV	#LCLSYM,R1	; GET ADDRESS OF LOCAL DESCRIPTOR

    311	000620					CALL	@PSTNME		; ENTER SECTION IN TABLES

    312	000624	010500 				MOV	R5,R0		; GET ADDRESS OF SEGMENT DESCRIPTOR

    313	000626	061300 				ADD	(R3),R0		; OFFSET TO PROPER SLOT IN DESCRIPTOR

    314	000630	020005 				CMP	R0,R5		; NO OFFSET?

    315	000632	001402 				BEQ	20$		; IF EQ NO OFFSET TO BE SETUP

    316	000634	016710 	000024'			MOV	CRVSC,(R0)	; STORE SECTION ADDRESS

    317	000640				20$:				;

    318	000640	005723 				TST	(R3)+		; CLEAR C, ADVANCE TO NEXT ENTRY

    319	000642				30$:				;

    320	000642					RETURN			;

    321

    322					;

    323					; INSERT A GLOBAL SYMBOL IN SEGMENT.

    324					;

    325					; LOCAL SYMBOL DESCRIPTOR AND CURRENT SECTION MUST BE SETUP

    326					;

    327

    328	000644				INSYM:				;

    329	000644	012701 	000034'			MOV	#LCLSYM,R1	; GET ADDRESS OF LOCAL DESCRIPTOR

    330	000650	010500 				MOV	R5,R0		; COPY ADDRESS OF SEGMENT DESCRIPTOR

    331	000652					CALLR	@SYMDCL		; ENTER SYMBOL IN TABLE

    332

    333		000001 				.END

P3PRE	MACRO M1110  22-AUG-78 01:53  PAGE 2-6

SYMBOL TABLE



CR    = 000015   	LF    = 000012   	SYDEF   000060R     002	S$YFLG= ****** GX	$ISYM = ****** GX

CRSCT   000000R     002	LOADNM  000026R     002	SYENT   000062R     002	S$YLGH= ****** GX	$MSYMC= ****** GX

CRVSC   000024R     002	MARKS   000022R  	SYFLG   000064R     002	S$YM  = ****** GX	$NUMSG= ****** GX

CS$ALO= ****** GX	MODN    000032R     002	SYMDCL  000010R     003	S$ZSEG= ****** GX	$PCTRL= ****** GX

CS$GBL= ****** GX	MODNME  000000R     003	SY$DEF= ****** GX	TSKSW   000122R  	$P3PRE  000126RG

CS$REL= ****** GX	PSTNME  000012R     003	SY$GBL= ****** GX	VIDENT  000014R     003	$RTSEG= ****** GX

CS$RES= ****** GX	P3PRE   000174R  	SY$REL= ****** GX	VSTNME  000016R     003	$SAVRG= ****** GX

CS$TYP= ****** GX	RTSPC   000052R  	SY$WK = ****** GX	VT    = 000013   	$SRCH = ****** GX

DUMMY   000000R  	R$$11M= 000000   	S$GAUT= ****** GX	XFRADR  000006R     003	$SRCHI= ****** GX

E$LCMT= ****** GX	SCTLGH= 000010   	S$GNME= ****** GX	$ALSVB= ****** GX	$SZSEG= ****** GX

E$LNUM= ****** GX	SCTNM   000030R  	S$GREG= ****** GX	$ASCT = ****** GX	$TSKNM= ****** GX

E$LSWT= ****** GX	SCTNME  000002R     003	S$GSEG= ****** GX	$CRELM= ****** GX	$VSWND  000124RG

FF    = 000014   	SG$GBL= ****** GX	S$GSTB= ****** GX	$CRSEG= ****** GX	$WRMPG= ****** GX

HT    = 000011   	SPA   = 000040   	S$GSTS= ****** GX	$CRVEL= ****** GX	$WSINI= ****** GX

INSCT   000540R  	SRCPF   000054R     002	S$GUND= ****** GX	$CRVSG= ****** GX	$$    = 000001

INSYM   000644R  	SRVSG   000056R     002	S$GWND= ****** GX	$CVRL = ****** GX	$$$   = 000114R

INTSYM  000004R     003	SW$NH = ****** GX	S$YCMT= ****** GX	$DLCMT= ****** GX	$$0   = 000110R

LCLSYM  000034R     002



. ABS.	000000	   000

      	000656	   001

PRCL$D	000066	   002

GSDV$D	000020	   003

ERRORS DETECTED:  0



VIRTUAL MEMORY USED:  1173 WORDS  ( 5 PAGES)

DYNAMIC MEMORY:  2772 WORDS  ( 10 PAGES)

ELAPSED TIME:  00:00:10

OBJ$:P3PRE,LIS$:P3PRE/-SP=SRC$:MACFLM,P3PRE

