SRCINS	MACRO M1110  22-AUG-78 02:00  PAGE 2





      1						.TITLE	SRCINS

      2						.IDENT	/08/

      3					                                                                                ;**-1

      4					;

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

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

      7					;

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

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

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

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

     12					;

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

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

     15					; EQUIPMENT CORPORATION.

     16					;

     17					; DEC  ASSUMES NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY

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

     19					;

     20					; VERSION 08

     21					;                                                                               ;**-1

     22					; C. MONIA 13-MAR-74

     23					;

     24					; MODIFICATIONS

     25					;

     26					; NO.		DATE		PROGRAMMER

     27					; ---		----		----------

     28					;

     29					; 038		22-MAR-75	C. MONIA

     30					; 054		01-APR-76	C. MONIA

     31					;

     32					;

     33					; VIRTUAL MEMORY SYMBOL TABLE SEARCH AND INSERT SUBROUTINES

     34					;

     35					; EQUATED SYMBOLS

     36					;

     37

     38		000007 			S$CNT==7			; OFFSET TO HIGH BYTE OF SYMBOL FLAG WORD

     39		000002 			S$YM==2				; OFFSET TO SYMBOL DESCRIPTOR

     40

     41					;

     42					; LOCAL DATA

     43					;

     44					;

     45					; ADJACENCY IS REQUIRED

     46					;

     47

     48

     49	000000				LCOUNT:	.BLKW	1		; LISTHEAD COUNT                                ;**NEW**

     50	000002				LHEAD:	.BLKW	1		; CURRENT LISTHEAD                              ;**NEW**

     51	000004				PVSRC:	.BLKW	1		; VIRTUAL ADDRESS OF NEXT IN LIST

     52	000006	006200 			LIMIT:	.RAD50	/B/		;++038 SUB-LIST LIMITS

     53	000010	014400 				.RAD50	/D/

     54	000012	022600 				.RAD50	/F/

     55	000014	031000 				.RAD50	/H/

     56	000016	037200 				.RAD50	/J/

     57	000020	045400 				.RAD50	/L/

SRCINS	MACRO M1110  22-AUG-78 02:00  PAGE 2-1





     58	000022	053600 				.RAD50	/N/

     59	000024	062000 				.RAD50	/P/

     60	000026	070200 				.RAD50	/R/

     61	000030	076400 				.RAD50	/T/

     62	000032	104600 				.RAD50	/V/

     63	000034	113000 				.RAD50	/X/

     64	000036	121200 				.RAD50	/Z/

     65	000040	124470 				.RAD50	/$C/

     66	000042	124660 				.RAD50	/$F/

     67	000044	125050 				.RAD50	/$I/

     68	000046	125240 				.RAD50	/$L/

     69	000050	125430 				.RAD50	/$O/

     70	000052	125620 				.RAD50	/$R/

     71	000054	126010 				.RAD50	/$U/

     72	000056	126200 				.RAD50	/$X/

     73	000060	126320 				.RAD50	/$Z/

     74	000062	127570 				.RAD50	/.C/

     75	000064	127760 				.RAD50	/.F/

     76	000066	130150 				.RAD50	/.I/

     77	000070	130340 				.RAD50	/.L/

     78	000072	130530 				.RAD50	/.O/

     79	000074	130720 				.RAD50	/.R/

     80	000076	131110 				.RAD50	/.U/

     81	000100	131547 				.RAD50	/..G/

     82	000102	131560 				.RAD50	/..P/

     83	000104	131572 				.RAD50	/..Z/

     84		000040 			L$HCNT==.-LIMIT/2		;++038 LISTHEAD COUNT

     85	000106				LKNXT:	.BLKW	1		; LINK TO NEXT ENTRY

     86	000110				LKPRV:	.BLKW	1		; LINK TO PREVIOUS ENTRY

     87	000112				SYMLOC:	.BLKW	1		; VIRTUAL ADDRESS OF SYMBOL TO INSERT

     88	000114				SYM:	.BLKW	2		; SYMBOL NAME

     89

     90					;

     91					; DATA STRUCTURES

     92					;

     93					; GENERAL SYMBOL TABLE FORMATS

     94					;

     95					;	LISTHEAD: FIRST WORD CONTAINS A COUNT OF THE NUMBER OF

     96					;	          SUBLISTS-1 IN USE. EACH CELL IN THE TABLE REPRESENTS

     97					;		  THE START OF A SUBLIST CONTAINING ALL SYMBOLS WITHIN

     98					;		  THE LEXICAL LIMITS ESTABLISHED BY THE LIMIT TABLE.

     99					;                                                                               ;**-2

    100					;	SYMBOL TABLE ENTRIES:

    101					;

    102					;	SENTRY:	.WORD	LINK	; POINTER TO NEXT ENTRY

    103					;		.WORD	S$YM	; FIRST HALF OF SYMBOL

    104					;		.WORD	S$YM+2	; SECOND HALF OF SYMBOL

    105					;		.WORD	DATA	; ANY DATA

    106					;			.

    107					;			.

    108					;			.

    109					;		.WORD	DATA	; END OF ENTRY

    110					;

    111					; ENTRIES ARE LINKED IN LEXICAL ORDER. A ZERO IN THE LINK

    112					; WORD INDICATES NO FURTHER ENTRIES IN THE LIST.

    113					;

    114					;+

SRCINS	MACRO M1110  22-AUG-78 02:00  PAGE 2-2





    115					; **-$ISYM-INSERT SYMBOL IN LEXICALLY ORDERED LIST

    116					;

    117					; THIS SUBROUTINE IS CALLED TO INSERT A SYMBOL IN

    118					; A LIST STORED IN VIRTUAL MEMORY. A PREVIOUS CALL

    119					; TO $SRCHI IS REQUIRED TO SCAN THE LIST AND SETUP

    120					; LKPRV AND LKNXT WITH THE VIRTUAL ADDRESSES OF THE

    121					; PREDECESSOR AND SUCCESSOR ENTRIES RESPECTIVELY. THE

    122					; ENTRY IS INSERTED AND THE PAGE BUFFERS CONTAINING

    123					; THE PRECEDING AND NEW ENTRIES ARE WRITE MARKED.

    124					;

    125					; INPUTS:

    126					;

    127					;	LKPRV=VIRTUAL ADDRESS OF PRECEDING ENTRY

    128					;	LKNXT=VIRTUAL ADDRESS OF SUCCESSOR TO 'LKPRV'.

    129					;	SYMLOC=VIRTUAL ADDRESS OF SYMBOL TO BE INSERTED

    130					;

    131					; OUTPUTS:

    132					;

    133					;	THE NEW ENTRY IS LINKED TO THE LIST.

    134					;	THE APPROPRIATE PAGE BUFFERS ARE WRITE MARKED

    135					;-

    136

    137	000120				$ISYM::				;

    138	000120	016701 	177766 			MOV	SYMLOC,R1	; GET VIRTUAL ADDRESS OF NEW SYMBOL

    139	000124					CALL	$CVRL		; CONVERT NEW TO REAL ADDRESS

    140	000130					CALL	$WRMPG		; WRITE-MARK PAGE BUFFER

    141	000134	016710 	177746 			MOV	LKNXT,(R0)	; SET LINK TO NEXT

    142	000140	016701 	177744 			MOV	LKPRV,R1	; GET VIRTUAL ADDRESS OF PREVIOUS

    143	000144					CALL	$CVRL		; CONVERT TO REAL ADDRESS

    144	000150					CALL	$WRMPG		; WRITE-MARK PAGE BUFFER

    145	000154	016710 	177732 			MOV	SYMLOC,(R0)	; SET NEW LINK-NEXT

    146	000160					RETURN			;

    147

    148					;+

    149					; **-$SRCHI-SEARCH SYMBOL TABLE FOR INSERT

    150					;

    151					; THIS SUBROUTINE IS CALLED TO SEARCH A SYMBOL TABLE

    152					; IN VIRTUAL MEMORY PRIOR TO PERFORMING AN INSERT.

    153					;

    154					; INPUTS:

    155					;

    156					;	R0=VIRTUAL ADDRESS OF LISTHEAD

    157					;	R1=VIRTUAL ADDRESS OF SYMBOL TO BE INSERTED

    158					;

    159					; OUTPUTS:

    160					;

    161					;	C-SET: SYMBOL NOT IN TABLE

    162					;	       R0 IS CLEARED

    163					;	       R1 IS CLEARED

    164					;

    165					;	C-CLEAR: SYMBOL IS IN TABLE

    166					;	         R0=REAL ADDRESS OF SYMBOL

    167					;		 R1=VIRTUAL ADDRESS OF SYMBOL

    168					;

    169					; IN EITHER CASE 'LKPRV' AND 'LKNXT' CONTAIN

    170					; THE ADDRESS OF THE PRECESSOR AND SUCCESOR EN-

    171					; TRIES AT THE POINT FOR INSERTION.

SRCINS	MACRO M1110  22-AUG-78 02:00  PAGE 2-3





    172					;-

    173

    174	000162				$SRCHI::			;

    175	000162	010546 				MOV	R5,-(SP)	; SAVE R5                                       ;**NEW**

    176	000164	010046 				MOV	R0,-(SP)	;++038 SAVE VIRTUAL ADDRESS OF LISTHEAD

    177	000166	010146 				MOV	R1,-(SP)	;++038 SAVE VIRTUAL ADDRESS OF NEW ENTRY

    178	000170	010001 				MOV	R0,R1		;++038 GET VIRTUAL ADDRESS OF LISTHEAD

    179	000172					CALL	$CVRL		;++038 CONVERT TO REAL

    180	000176	011067 	177576 			MOV	(R0),LCOUNT	; SAVE LIST COUNT

    181	000202	012601 				MOV	(SP)+,R1	; GET ADDRESS OF NEW SYMBOL

    182	000204					CALL	$CVRL		; CONVERT NEW ENTRY TO REAL ADDRESS

    183	000210	010167 	177676 			MOV	R1,SYMLOC	; SAVE VIRTUAL ADDRESS OF NEW

    184	000214	016067 	000002 	177672 		MOV	S$YM(R0),SYM	; SAVE SYMBOL NAME

    185	000222	016067 	000004 	177666 		MOV	S$YM+2(R0),SYM+2 ;

    186	000230	010005 				MOV	R0,R5		; COPY REAL ADDRESS                             ;**NEW**

    187	000232					CALL	FNDSLT		; LOCATE APPROPRIATE SUBLIST                    ;**NEW**

    188	000236	006202 				ASR	R2		; CONVERT TO VIRTUAL OFFSET                     ;**NEW**

    189	000240	012601 				MOV	(SP)+,R1	; RESTORE LISTHEAD ADDRESS                      ;**NEW**

    190	000242	005201 				INC	R1		;++038 POINT TO FIRST SUBLIST

    191	000244	060201 				ADD	R2,R1		; COMPUTE VIRTUAL ADDRESS OF SUBLIST            ;**NEW**

    192	000246				10$:				;                                               ;**-1

    193	000246	010167 	177636 			MOV	R1,LKPRV	; SAVE PREDECESSOR ADDRESS

    194	000252	005002 				CLR	R2		; CLEAR OFFSET TO NEXT

    195	000254					CALL	$GNVI		; GET NEXT ITEM ON LIST

    196	000260	010167 	177622 			MOV	R1,LKNXT	; SAVE LINK TO NEXT

    197	000264	103415 				BCS	30$		; IF C/S END OF LIST

    198	000266	026067 	000002 	177620 		CMP	S$YM(R0),SYM	; COMPARE SYMBOL VALUES

    199	000274	101006 				BHI	20$		; IF HI FOUND PLACE TO INSERT

    200	000276	103763 				BLO	10$		; IF LO CONTINUE SEARCH

    201	000300	026067 	000004 	177610 		CMP	S$YM+2(R0),SYM+2 ; COMPARE SECOND HALF

    202	000306	103757 				BLO	10$		; IF LO CONTINUE SEARCH

    203	000310	001403 				BEQ	30$		; IF EQ HAVE SYMBOL

    204	000312				20$:				;

    205	000312	005000 				CLR	R0		; SET NOT FOUND INDICATORS

    206	000314	005001 				CLR	R1		;

    207	000316	000261 				SEC			;

    208	000320				30$:				;

    209	000320	012605 				MOV	(SP)+,R5	; RESTORE R5                                    ;**NEW**

    210	000322					RETURN			;

    211

    212					;+

    213					; **-$ISED-INITIALIZE SYMBOL TABLE EDIT

    214					;

    215					; THIS CO-ROUTINE IS CALLED TO TO RETRIEVE ENTRIES IN AN

    216					; ORDERED, LINKED LIST STORED IN VIRTUAL MEMORY

    217					;

    218					; INPUTS:

    219					;

    220					;	R0=REAL ADDRESS OF LISTHEAD(ONLY ON FIRST CALL)

    221					;

    222					; OUTPUTS:

    223					;

    224					;	C-SET: NO MORE ENTRIES IN LIST

    225					;

    226					;	C-CLEAR: FOUND NEXT ENTRY

    227					;		 R0=REAL ADDRESS OF ENTRY

    228					;		 R1=VIRTUAL ADDRESS OF ENTRY

SRCINS	MACRO M1110  22-AUG-78 02:00  PAGE 2-4





    229					;		 R2=ADDRESS OF BLOCK CONTAINING THE FOLLOWING DATA

    230					;

    231					;		.WORD	LCOUNT	; CURRENT SUBLIST COUNT

    232					;		.WORD	LHEAD	; ADDRESS OF CURRENT SUBLIST

    233					;		.WORD	NEXT	; VIRTUAL ADDRESS OF NEXT ENTRY

    234					;

    235					;

    236					; ON A SUCCESFUL RETURN A CO-ROUTINE CALL IS MADE

    237					; TO THE CALLER. THE SPECIFIED PAGE IS NOT LOCKED

    238					; IN MEMORY. IF THE SEARCH IS TO BE TERMINATED, THE

    239					; CALLER MUST REMOVE THE RETURN ADDRESS FROM THE

    240					; STACK. WHEN NO MORE SYMBOLS REMAIN '$ISED' PER-

    241					; FORMS AN 'RTS PC' TO THE CALLING ROUTINE.

    242					;-

    243

    244	000324				$ISED::				;

    245	000324	012746 	000362'			MOV	#$ISD,-(SP)	; PUSH ADDRESS OF SCANNING ROUTINE

    246	000330				10$:				;

    247	000330	012702 	000000'			MOV	#LCOUNT,R2	; POINT TO STORAGE BLOCK

    248	000334					CALL	@(SP)+		; CALL SCANNING ROUTINE

    249	000336	012702 	000000'			MOV	#LCOUNT,R2	; RESTORE ADDRESS OF BLOCK

    250	000342	005226 				INC	(SP)+		; CLEAN STACK

    251	000344	103404 				BCS	20$		; IF C/S SCANNED ALL ENTRIES

    252	000346					CALL	@(SP)+		; CALL THE CALLER

    253	000350	012746 	000414'			MOV	#$ISD1,-(SP)	; PUSH CONTINUATION POINT

    254	000354	000765 				BR	10$		; GO AGAIN

    255	000356				20$:				;

    256	000356	010100 				MOV	R1,R0		; PROPAGATE ZERO WORD

    257	000360					RETURN			;

    258

    259					;+

    260					; **-$ISD-RE-ENTRANT ROUTINE TO PERFORM SYMBOL TABLE EDIT

    261					; **-$ISD1-BYPASS SETUP AND PERFORM EDIT

    262					;

    263					; THESE CO-ROUTINES ARE CALLED TO RETRIEVE ENTRIES IN AN ORDERED, LINKED

    264					; LIST USING AN IMPURE STORAGE BLOCK SUPPLIED BY THE CALLER. THE LIST

    265					; IS STORED IN VIRTUAL MEMORY.

    266					;

    267					; INPUTS:

    268					;

    269					; 	ENTRY POINT $ISD:

    270					;

    271					;	R0=REAL ADDRESS OF LISTHEAD ( ON FIRST CALL ONLY ).

    272					;

    273					;	ENTRY POINT $ISD AND $ISD1

    274					;

    275					;	R2=ADDRESS OF THREE-WORD STORAGE BLOCK TO RECEIVE DATA IN

    276					;	   THE FOLLOWING FORMAT:

    277					;

    278					;		.WORD	LCOUNT	; CURRENT LISTHEAD COUNT

    279					;		.WORD	LHEAD	; CURRENT LISTHEAD ADDRESS

    280					;		.WORD	NEXT	; VIRTUAL ADDRESS OF NEXT IN LIST

    281					;

    282					; OUTPUTS:

    283					;

    284					;	C/CLEAR: HAVE NEXT SYMBOL

    285					;

SRCINS	MACRO M1110  22-AUG-78 02:00  PAGE 2-5





    286					;		R0=REAL ADDRESS OF SYMBOL

    287					;		R1=VIRTUAL ADDRESS OF SYMBOL

    288					;

    289					;	C/SET: NO MORE ENTRIES TO BE SCANNED

    290					;

    291					;		R1 = 0

    292					;

    293					; IN EITHER CASE, THIS ROUTINE EXITS VIA A CO-ROUTINE CALL

    294					; TO THE CALLER WITH R2 POINTING TO THE NEXT LOCATION AFTER

    295					; THE STORAGE BLOCK. THE BLOCK IS UPDATED WITH THE CURRENT

    296					; COUNT, LISTHEAD ADDRESS AND VIRTUAL ADDRESS OF NEXT ENTRY.

    297					;

    298					;-

    299

    300						.ENABL	LSB

    301

    302	000362				$ISD::				;

    303	000362	011022 				MOV	(R0),(R2)+	; SET THE INITIAL COUNT

    304	000364				10$:				;

    305	000364	005720 				TST	(R0)+		; POINT TO NEXT LISTHEAD

    306	000366				ISD:				;

    307	000366	010022 				MOV	R0,(R2)+	; SAVE LISTHEAD ADDRESS

    308	000370	011012 				MOV	(R0),(R2)	; SET VIRTUAL ADDRESS OF NEXT

    309	000372				20$:				;

    310	000372	011201 				MOV	(R2),R1		; GET VIRTUAL ADDRESS OF NEXT

    311	000374	001411 				BEQ	40$		; IF EQ LIST EMPTY

    312	000376	010246 				MOV	R2,-(SP)	; SAVE STORAGE POINTER

    313	000400					CALL	$CVRL		; CONVERT TO REAL ADDRESS

    314	000404	012602 				MOV	(SP)+,R2	; RETRIEVE POINTER

    315	000406	011022 				MOV	(R0),(R2)+	; SET ADDRESS OF NEXT

    316	000410	000241 				CLC			; CLEAR CARRY

    317	000412				30$:				;

    318	000412					CALL	@(SP)+		; CALL THE CALLER

    319	000414				$ISD1::				;

    320	000414	022222 				CMP	(R2)+,(R2)+	; POINT TO ADDRESS OF NEXT

    321	000416	000765 				BR	20$		; PROCESS NEXT

    322	000420				40$:				;

    323	000420	014200 				MOV	-(R2),R0	; GET LISTHEAD ADDRESS

    324	000422	005362 	177776 			DEC	-2(R2)		; DECREMENT LISTHEAD COUNT

    325	000426	002356 				BGE	10$		; IF GE MORE TO GO

    326	000430	022222 				CMP	(R2)+,(R2)+	; POINT PAST END OF BLOCK

    327	000432	000261 				SEC			; SET CARRY

    328	000434	000766 				BR	30$		; CALL THE CALLER

    329

    330						.DSABL	LSB

    331

    332

    333					;+

    334					; **-$SRCH-SEARCH A LEXICALLY ORDERED LIST FOR SYMBOL

    335					;

    336					; THIS ROUTINE IS CALLED TO SEARCH A LIST IN VIRTUAL

    337					; MEMORY FOR A SYMBOL. THE LIST MUST BE IN LEXICAL OR-

    338					; DER.

    339					;

    340					; INPUTS:

    341					;

    342					;	R0=REAL ADDRESS OF LISTHEAD

SRCINS	MACRO M1110  22-AUG-78 02:00  PAGE 2-6





    343					;	R1=REAL ADDRESS OF SYMBOL

    344					;

    345					; IT IS ASSUMED THAT THE SYMBOL IS PERMANENTLY RESIDENT

    346					; IN REAL MEMORY.

    347					;

    348					;

    349					; OUTPUTS:

    350					;

    351					;	C-SET:	SYMBOL NOT FOUND

    352					;		R0, R1 CLEARED

    353					;

    354					;	C-CLEAR: SYMBOL FOUND

    355					;		R0=REAL ADDRESS OF SYMBOL

    356					;		R1=VIRTUAL ADDRESS OF SYMBOL

    357					;

    358					;-

    359

    360	000436				$SRCH::				;

    361	000436	010546 				MOV	R5,-(SP)	; SAVE R5

    362	000440	010105 				MOV	R1,R5		; SAVE REAL ADDRESS OF SYMBOL

    363	000442	012067 	177332 			MOV	(R0)+,LCOUNT	;++038 SET LISTHEAD COUNT

    364	000446					CALL	FNDSLT		; LOCATE SUBLIST                                ;**NEW**

    365	000452	060200 				ADD	R2,R0		; COMPUTE SUBLIST ADDRESS                       ;**NEW**

    366	000454	012702 	000000'			MOV	#LCOUNT,R2	; GET ADDRESS OF LOCAL STORE

    367	000460	005022 				CLR	(R2)+		; CLEAR LISTHEAD COUNT

    368	000462	012746 	000366'			MOV	#ISD,-(SP)	; PUSH ADDRESS OF SCANNING ROUTINE

    369	000466				10$:				;                                               ;**-1

    370	000466					CALL	@(SP)+		; GET NEXT SYMBOL

    371	000470	012702 	000000'			MOV	#LCOUNT,R2	; GET ADDRESS OF LOCAL STORAGE

    372	000474	103412 				BCS	20$		; IF C/S END OF LIST

    373	000476	026065 	000002 	000002 		CMP	S$YM(R0),S$YM(R5) ; CHECK FIRST HALF OF SYMBOL

    374	000504	101006 				BHI	20$		; IF HI NOT IN LIST

    375	000506	103767 				BLO	10$		; IF LO CHECK NEXT ITEM

    376	000510	026065 	000004 	000004 		CMP	S$YM+2(R0),S$YM+2(R5) ; CHECK SECOND HALF OF SYMBOL

    377	000516	103763 				BLO	10$		; IF LO CHECK NEXT ITEM

    378	000520	001403 				BEQ	25$		; IF EQ HAVE MATCH

    379	000522				20$:				;

    380	000522	005000 				CLR	R0		; SET NOT-FOUND INDICATORS

    381	000524	005001 				CLR	R1		;

    382	000526	000261 				SEC			;

    383	000530				25$:				;

    384	000530	005226 				INC	(SP)+		; CLEAN STACK

    385	000532				30$:				;

    386	000532	012605 				MOV	(SP)+,R5	; RESTORE R5

    387	000534					RETURN			;

    388					                                                                                ;**NEW**

    389					;                                                                               ;**NEW**

    390					; FIND SYMBOL POSITION WITHIN SUBLISTS                                          ;**NEW**

    391					;                                                                               ;**NEW**

    392					                                                                                ;**NEW**

    393	000536				FNDSLT:				;                                               ;**NEW**

    394	000536	012701 	000006'			MOV	#LIMIT,R1	; GET LIMIT TABLE ADDRESS                       ;**NEW**

    395	000542	005002 				CLR	R2		; CLEAR INDEX                                   ;**NEW**

    396	000544				10$:				;                                               ;**NEW**

    397	000544	022165 	000002 			CMP	(R1)+,S$YM(R5)	; CHECK FIRST HALF OF SYMBOL                    ;**NEW**

    398	000550	103005 				BHIS	30$		;++038 IF HIS FOUND SLOT

    399	000552	020267 	177222 			CMP	R2,LCOUNT	;++038 AT LAST SLOT?

SRCINS	MACRO M1110  22-AUG-78 02:00  PAGE 2-7





    400	000556	103002 				BHIS	30$		;++038 IF HIS YES

    401	000560	005202 				INC	R2		;++038 INCREMENT COUNT

    402	000562	000770 				BR	10$		;++038 GO AGAIN

    403	000564				30$:				;                                               ;**NEW**

    404	000564	006302 				ASL	R2		; CONVERT TO WORD INDEX                         ;**NEW**

    405	000566					RETURN			;                                               ;**NEW**

    406

    407		000001 				.END

SRCINS	MACRO M1110  22-AUG-78 02:00  PAGE 2-8

SYMBOL TABLE



CR    = 000015   	LF    = 000012   	PVSRC   000004R  	S$YM  = 000002 G 	$ISED   000324RG

FF    = 000014   	LHEAD   000002R  	R$$11M= 000000   	VT    = 000013   	$ISYM   000120RG

FNDSLT  000536R  	LIMIT   000006R  	SPA   = 000040   	$CVRL = ****** GX	$SRCH   000436RG

HT    = 000011   	LKNXT   000106R  	SYM     000114R  	$GNVI = ****** GX	$SRCHI  000162RG

ISD     000366R  	LKPRV   000110R  	SYMLOC  000112R  	$ISD    000362RG 	$WRMPG= ****** GX

LCOUNT  000000R  	L$HCNT= 000040 G 	S$CNT = 000007 G 	$ISD1   000414RG 	$$    = 000001



. ABS.	000000	   000

      	000570	   001

ERRORS DETECTED:  0



VIRTUAL MEMORY USED:  740 WORDS  ( 3 PAGES)

DYNAMIC MEMORY:  2772 WORDS  ( 10 PAGES)

ELAPSED TIME:  00:00:09

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

