P5EOS	MACRO M1110  22-AUG-78 01:55  PAGE 4





      1						.TITLE	P5EOS

      2						.IDENT	/15/

      3					                                                                                ;**-1

      4					;

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

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

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

      8					; COPYRIGHT (C) 1977

      9					;

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

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

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

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

     14					;

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

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

     17					; EQUIPMENT CORPORATION.

     18					;

     19					; DEC  ASSUMES NO  RESPONSIBILITY  FOR  THE  USE  OR RELIABILITY

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

     21					;

     22					; VERSION: 15

     23					;                                                                               ;**-1

     24					; D. N. CUTLER/C. MONIA 27-JAN-74

     25					;

     26					; MODIFICATIONS:

     27					;

     28					; NO.		DATE		PROGRAMMER

     29					; ---		----		----------

     30					;

     31					; 048		09-FEB-76	C. MONIA

     32					; 054		27-MAR-76	C. MONIA

     33					; 052		30-MAR-76	C. MONIA

     34					; 058		22-APR-76	C. MONIA

     35					; 062		31-MAY-76	C. MONIA

     36					; JAK100	29-JAN-77	CHANGES FOR MULTIUSER TASKS

     37					; JAK112	01-DEC-77	OUTPUT ERROR MESSAGE FOR BAD GBLPAT

     38					;

     39					;

     40					; LOCAL MACROS

     41					;

     42

     43	000000					RGDF	,,S

     44	000000					WDBDF	,,S

     45

     46					;

     47					; LOCAL DATA

     48					;

     49					; SYMBOL DATA

     50					;

     51

     52	000000				CRFLG:	.BLKW	1		; SEGMENT FLAGS

     53	000002				CRSYM:	.BLKW	<S$ZSEG/2>+1	; ALLOCATE ROOM FOR SEGMENT DESCRIPTOR

     54	000024				CRWND:	.BLKW	<W$NLGH/2>	; ALLOCATE ROOM FOR WINDOW DESCRIPTOR

     55

     56

     57					;+

P5EOS	MACRO M1110  22-AUG-78 01:55  PAGE 4-1





     58					; **-$P5EOS-PHASE 5 OUTPUT AUTOLOAD VECTORS AND SEGMENT TABLES

     59					;

     60					; THIS ROUTINE IS CALLED AFTER THE PHASE 5 MODULE SCAN TO WRITE

     61					; AUTOLOAD VECTORS AND SEGMENT TABLES INTO THE TASK IMAGE

     62					; AND PROCESS THE PATCH LIST.

     63					;

     64					; INPUTS:

     65					;

     66					;	NONE.

     67					;

     68					; OUTPUTS:

     69					;

     70					;	NONE.

     71					;-

     72

     73	000050				$P5EOS::			;

     74	000050					SAVRG			; SAVE NON-VOLATILE REGISTERS.

     75	000054	032767 	000000G	000000G		BIT	#TS$KF,$SWTCH	; TASK IMAGE FILE SPECIFIED?

     76	000062	001002 				BNE	5$		; IF NE YES

     77	000064	000167 	001062 			JMP	P5EOS2		; ELSE EXIT NOT

     78	000070				5$:				;

     79	000070	022767 	000001 	000000G		CMP	#1,$NUMSG	;MORE THAN ONE SEGMENT?

     80	000076	001406 				BEQ	6$		; IF EQ NO

     81	000100	016700 	000000G			MOV	$TSKPT,R0	; GET ADDRESS OF TASK RECORD BLOCK

     82	000104	032760 	000000G	000000G		BIT	#SW$NH,R$SWTH(R0) ; BUILDING RESIDENT LIBRARY?

     83	000112	001402 				BEQ	7$		; IF EQ NO

     84	000114				6$:				;

     85	000114	000167 	000614 			JMP	80$		; NO SEGMENT TABLES OR A/L VECTORS TO BE WRITTEN

     86	000120				7$:				;

     87	000120	016704 	000000G			MOV	$RTSEG,R4	; GET ADDRESS OF ROOT SEGMENT

     88	000124	010400 				MOV	R4,R0		; GET VIRTUAL ADDRESS OF ROOT

     89	000126					CALL	$ADRST		;SET ADDRESS LIMITS

     90	000132	016703 	000000G			MOV	$CRSEG,R3	; GET ADDRESS OF CURRENT SEGMENT

     91	000136	012705 	000002'			MOV	#CRSYM,R5	; GET ADDRESS OF TEMP BUFFER

     92	000142	016315 	000002 			MOV	S$GBLK(R3),(R5)	; SET BLOCK NUMBER (RELATIVE)

     93	000146	016304 	000000 			MOV	S$GSTS(R3),R4	; GET SEGMENT FLAGS				;JAK100

     94	000152	010467 	177622 			MOV	R4,CRFLG	; SAVE SEGMENT FLAGS				;JAK100

     95	000156	016315 	000002 			MOV	S$GBLK(R3),(R5)	; ASSUME R-W - SET RELATIVE BLK. NUMBER		;JAK100

     96	000162	032767 	000010 	177610 		BIT	#SG$RO,CRFLG	; R-O SEGMENT?					;JAK100

     97	000170	001405 				BEQ	75$		; IF EQ NO					;JAK100

     98	000172	016315 	000004 			MOV	S$GBLK+2(R3),(R5) ; SET R-O RELATIVE BLK NUMBER			;JAK100

     99	000176	052763 	000100 	000000 		BIS	#SG$DSK,S$GSTS(R3); SET NO DISK					;JAK100

    100	000204				75$:										;JAK100

    101

    102						.IF	NDF	R$$11M

    103

    104						SUB	$LBBLK,(R5)	; MAKE BLOCK RELATIVE TO HEADER

    105

    106						.IFF

    107

    108	000204	166715 	000000G			SUB	$HDRBN,(R5)	; MAKE BLOCK RELATIVE TO HEADER

    109

    110						.ENDC

    111

    112	000210	042704 	177417 			BIC	#^C<SG$DES!SG$DSK!SG$MEM!SG$LOD>,R4 ; CLEAR UNWANTED BITS

    113	000214	000304 				SWAB	R4		; POSITION TO HIGH BYTE

    114	000216	050425 				BIS	R4,(R5)+	; SET IN STATUS BITS

P5EOS	MACRO M1110  22-AUG-78 01:55  PAGE 4-2





    115	000220	012700 	000202 			MOV	#S$GSEG,R0	; GET OFFSET TO DESCRIPTOR

    116	000224					CALL	RELOC		; COMPUTE TASK-VIRTUAL ADDRESS

    117	000230	010004 				MOV	R0,R4		; SET ADDRESS

    118	000232	016315 	000006 			MOV	S$GLDA(R3),(R5)	; SET LOAD ADDRESS

    119	000236	066725 	000000G			ADD	$OFFST,(R5)+	; ADD OFFSET BIAS

    120	000242	016325 	000010 			MOV	S$GLNG(R3),(R5)+ ; SET SEGMENT LENGTH

    121	000246	062703 	000012 			ADD	#S$GUP,R3	; POINT TO UP-LINK

    122	000252	012325 				MOV	(R3)+,(R5)+	; GET UP LINK

    123	000254	012325 				MOV	(R3)+,(R5)+	; GET LINK DOWN

    124	000256	012325 				MOV	(R3)+,(R5)+	; GET LINK NEXT

    125	000260	005723 				TST	(R3)+		; STEP PAST LINK-PREVIOUS

    126	000262	012325 				MOV	(R3)+,(R5)+	; GET SEGMENT NAME

    127	000264	012325 				MOV	(R3)+,(R5)+	; ...

    128	000266	005015 				CLR	(R5)		; ASSUME NO DESCRIPTOR TO BE WRITTEN

    129	000270	021367 	000000G			CMP	(R3),$RTWDP	; ROOT WINDOW?

    130	000274	001434 				BEQ	950$		; IF EQ YES

    131	000276	012700 	000206 			MOV	#S$GWND,R0	; GET OFFSET TO WINDOW INFORMATION

    132	000302					CALL	RELOC		; GET TASK IMAGE ADDRESS OF DESCRIPTOR

    133	000306	010025 				MOV	R0,(R5)+	; SET TASK-IMAGE ADDRESS

    134	000310	011301 				MOV	(R3),R1		; GET DESCRIPTOR ADDRESS

    135	000312	032767 	000004 	177460 		BIT	#SG$RES,CRFLG	; SEGMENT RESIDENT?

    136	000320	001422 				BEQ	950$		; IF EQ NO

    137	000322	032767 	000010 	177450 		BIT	#SG$RO,CRFLG		; READ ONLY SEGMENT?			;JAK100

    138	000330	001403 				BEQ	8$			; IF EQ NO				;JAK100

    139	000332	052765 	040000 	000020 		BIS	#TR$DSK,T$RWDP-T$RBLK(R5) ; MARK NO DISK			;JAK100

    140	000340				8$:										;JAK100

    141	000340					CALL	$CVRL		; CONVERT DESCRIPTOR ADDRESS TO REAL

    142	000344	012701 	000012 			MOV	#W$NLGH/2,R1	; GET LENGTH OF WINDOW DESCRIPTOR IN WORDS

    143	000350				9$:				;

    144	000350	012025 				MOV	(R0)+,(R5)+	; COPY WINDOW

    145	000352					SOB	R1,9$		; ...

    146	000356	005045 				CLR	-(R5)		; RESET REGION BACKPOINTER

    147	000360	066767 	000000G	177446 		ADD	$LBOFF,CRWND+W.NOFF ; INCLUDE WINDOW OFFSET INTO REGION

    148	000366				950$:				;

    149

    150					;

    151					; WRITE BLOCK, LOAD ADDRESS, AND LENGTH INTO TASK IMAGE

    152					;

    153

    154	000366	012703 	000003 			MOV	#3,R3		;SET REPEAT COUNT

    155	000372	012705 	000002'			MOV	#CRSYM,R5	; GET ADDRESS OF DESCRIPTOR IMAGE

    156	000376					CALL	WRBLK		; WRITE BLOCK INTO TASK IMAGE

    157

    158					;

    159					; WRITE ADDRESS OF UP, DOWN, AND NEXT INTO TASK IMAGE

    160					;

    161

    162	000402	012703 	000003 			MOV	#3,R3		;SET REPEAT COUNT

    163	000406	012501 			20$:	MOV	(R5)+,R1	;GET ADDRESS OF SEGMENT DESCRIPTOR

    164	000410	001407 				BEQ	30$		;IF EQ NONE

    165	000412					CALL	$CVRL		; CONVERT TO REAL ADDRESS

    166	000416	062700 	000202 			ADD	#S$GSEG,R0	; POINT TO DESCRIPTOR ADDRESS

    167	000422					CALL	RELOC1		; RELOCATE

    168	000426	010001 				MOV	R0,R1		; COPY ADDRESS

    169	000430	010400 			30$:	MOV	R4,R0		;SET VIRTUAL ADDRESS OF WORD

    170	000432					CALL	$WRWRD		;WRITE WORD INTO IMAGE

    171	000436	062704 	000002 			ADD	#2,R4		;ADVANCE VIRTUAL ADDRESS

P5EOS	MACRO M1110  22-AUG-78 01:55  PAGE 4-3





    172	000442					SOB	R3,20$		;REPEAT

    173

    174					;

    175					; WRITE S$GNME INTO TASK IMAGE

    176					;

    177

    178	000446	026727 	000000G	000020 		CMP	$SZSEG,#S$ZSEG	; SEGMENT NAME TO BE WRITTEN?

    179	000454	103437 				BLO	45$		; IF LO NO

    180	000456	012703 	000002 			MOV	#2,R3		;SET REPEAT COUNT

    181	000462					CALL	WRBLK		; WRITE BLOCK INTO TASK IMAGE

    182	000466	005767 	000000G			TST	$TSKWD		; TASK HAVE RESIDENT OVERLAYS?

    183	000472	001430 				BEQ	45$		; IF EQ NO

    184	000474					CALL	WRBLK		; WRITE WINDOW ADDRESS INTO TASK IMAGE

    185	000500	032767 	000004 	177272 		BIT	#SG$RES,CRFLG	; SEGMENT RESIDENT?

    186	000506	001422 				BEQ	45$		; IF EQ NO

    187	000510				42$:				;

    188	000510	016504 	177776 			MOV	-2(R5),R4	; GET TASK IMAGE ADDRESS OF DESCRIPTOR

    189	000514	016500 	000002 			MOV	W.NBAS(R5),R0	; GET BASE VIRTUAL ADDRESS

    190	000520	066700 	000000G			ADD	$OFFST,R0	; ADD OFFSET BIAS

    191	000524	010065 	000002 			MOV	R0,W.NBAS(R5)	; RESET BASE ADDRESS

    192	000530	006300 				ASL	R0		; CONVERT TO APR NUMBER

    193	000532	006100 				ROL	R0		; ...

    194	000534	006100 				ROL	R0		; ...

    195	000536	006100 				ROL	R0		; ...

    196	000540	110065 	000001 			MOVB	R0,W.NAPR(R5)	; SET APR NUMBER

    197	000544	012703 	000012 			MOV	#W$NLGH/2,R3	; GET SIZE OF WINDOW DESCRIPTOR IN WORDS

    198	000550					CALL	WRBLK		; WRITE BLOCK

    199

    200					;

    201					; WRITE AUTOLOAD VECTORS

    202					;

    203

    204	000554				45$:				;

    205	000554	016700 	000000G			MOV	$CRSEG,R0	;GET ADDRESS OF CURRENT SEGMENT

    206	000560	016005 	000156 			MOV	S$GATL(R0),R5	;GET ADDRESS OF FIRST AUTOLOAD ENTRY

    207	000564	001463 				BEQ	80$		;IF EQ NONE

    208	000566	012700 	000172 			MOV	#S$GAUT,R0	; GET OFFSET INTO ENTRY

    209	000572					CALL	RELOC		; RELOCATE AUTOLOAD ENTRIES

    210	000576	010004 				MOV	R0,R4		; SET LOAD ADDRESS

    211	000600	016700 	000000G			MOV	$CRVSG,R0	; GET VIRTUAL ADDRESS OF CURRENT SEGMENT

    212	000604					CALL	$ADRST		;SET ADDRESS LIMITS

    213	000610				50$:				;

    214	000610	016501 	000002 			MOV	2(R5),R1	; GET VIRTUAL ADDRESS OF ENTRY SYMBOL

    215	000614					CALL	$CVRL		; CONVERT TO REAL

    216	000620	012701 	000002'			MOV	#CRSYM,R1	; GET ADDRESS OF LOCAL STORAGE

    217	000624	010103 				MOV	R1,R3		; COPY ADDRESS

    218	000626	012702 	000000C			MOV	#S$YLGH/2,R2	; GET LENGTH OF ENTRY IN WORDS

    219	000632				55$:				;

    220	000632	012021 				MOV	(R0)+,(R1)+	; COPY ENTRY

    221	000634					SOB	R2,55$		; REPEAT

    222	000640	016301 	000000G			MOV	S$YSEG(R3),R1	; GET V/A OF CALLED SEGMENT DESCRIPTOR

    223	000644					CALL	$CVRL		; CONVERT TO REAL ADDRESS

    224	000650	062700 	000202 			ADD	#S$GSEG,R0	; OFFSET TO DESCRIPTOR ADDRESS

    225	000654					CALL	RELOC1		; RELOCATE

    226	000660	010067 	000000G			MOV	R0,$ALADR	; SET AUTOLOAD VECTOR ADDRESS

    227	000664	016301 	000000G			MOV	S$YVAL(R3),R1	; GET SYMBOL VALUE

    228	000670	132763 	000000G	000000G		BITB	#SY$REL,S$YFLG(R3) ; ABS SYMBOL?

P5EOS	MACRO M1110  22-AUG-78 01:55  PAGE 4-4





    229	000676	001402 				BEQ	60$		;IF EQ YES

    230	000700	066701 	000000G			ADD	$OFFST,R1	;ADD OFFSET BIAS

    231	000704				60$:				;

    232	000704	010167 	000002G			MOV	R1,$ALADR+2	; SET AUTOLOAD ENTRY POINT ADDRESS

    233	000710	010546 				MOV	R5,-(SP)	;SAVE R5

    234	000712	012705 	000000G			MOV	#$ALVCT,R5	; GET ADDRESS OF PROTOTYPE VECTOR

    235	000716	012703 	000000C			MOV	#<S$ZATL/2>,R3	; SET REPEAT COUNT

    236	000722				70$:				;

    237	000722					CALL	WRBLK		; WRITE BLOCK INTO TASK IMAGE

    238	000726	012605 				MOV	(SP)+,R5	;RETRIEVE R5

    239	000730	011505 				MOV	(R5),R5		;GET ADDRESS OF NEXT ENTRY

    240	000732	001326 				BNE	50$		;IF NE GO AGAIN

    241	000734				80$:				;

    242	000734	016700 	000000G			MOV	$CRVSG,R0	; GET VIRTUAL ADDRESS OF CURRENT SEGMENT

    243	000740					CALL	$ADRST		;SET ADDRESS LIMITS

    244

    245					;

    246					; PROCESS PATCH LIST

    247					;

    248

    249	000744				P5EOS1:				;

    250	000744	032767 	000000G	000000G		BIT	#TS$KF,$SWTCH	; TASK IMAGE FILE SPECIFIED

    251	000752	001477 				BEQ	P5EOS2		; IF EQ NO

    252	000754	012705 	000000G			MOV	#$PATHD,R5	;GET ADDRESS OF PATCH LISTHEAD

    253	000760	011505 			10$:	MOV	(R5),R5		;GET ADDRESS OF NEXT PATCH BLOCK

    254	000762	001473 				BEQ	P5EOS2		; IF EQ DONE

    255	000764	010504 				MOV	R5,R4		;COPY ADDRESS OF BLOCK

    256	000766	005724 				TST	(R4)+		;POINT TO NUMBER OF PARAMETERS

    257	000770	012403 				MOV	(R4)+,R3	;GET NUMBER OF PARAMETERS

    258	000772	016700 	000000G			MOV	$CRSEG,R0	;GET ADDRESS OF CURRENT SEGMENT

    259	000776	022460 	000022 			CMP	(R4)+,S$GNME(R0);SEGMENT NAME MATCH?

    260	001002	001366 				BNE	10$		;IF NE NO

    261	001004	022460 	000024 			CMP	(R4)+,S$GNME+2(R0);SEGMENT NAME MATCH?

    262	001010	001363 				BNE	10$		;IF NE NO

    263	001012	005724 				TST	(R4)+		;WHAT TYPE OF ENTRY?

    264	001014	001431 				BEQ	30$		;IF EQ ABSOLUTE

    265	001016	010401 				MOV	R4,R1		;COPY ADDRESS OF SYMBOL

    266	001020	162701 	000000G			SUB	#S$YM,R1	;CALCULATE PROPER OFFSET FROM SYMBOL

    267	001024	062700 	000042 			ADD	#S$GSTB,R0	;POINT TO SYMBOL TABLE

    268	001030					CALL	$SRCH		;SEARCH FOR SYMBOL

    269	001034	103440 				BCS	50$		; IF CS SEARCH FAILED				;JAK112

    270	001036	132760 	000000G	000000G		BITB	#SY$IND,S$YFLG(R0);INDIRECT REFERENCE?				;**-1

    271	001044	001345 				BNE	10$		;IF NE YES

    272	001046	132760 	000000G	000000G		BITB	#SY$DEF,S$YFLG(R0);SYMBOL DEFINITION?

    273	001054	001741 				BEQ	10$		;IF EQ NO

    274	001056	022424 				CMP	(R4)+,(R4)+	;POINT TO OFFSET

    275	001060	132760 	000000G	000000G		BITB	#SY$REL,S$YFLG(R0);ABS SYMBOL?

    276	001066	001402 				BEQ	20$		;IF EQ YES

    277	001070	066714 	000000G			ADD	$OFFST,(R4)	;ADD IN OFFSET BIAS

    278	001074	066014 	000000G		20$:	ADD	S$YVAL(R0),(R4)	;ADD IN SYMBOL VALUE

    279	001100	010346 			30$:	MOV	R3,-(SP)	;SET LOOP COUNT

    280	001102	012403 				MOV	(R4)+,R3	;GET PATCH ADDRESS

    281	001104	010300 			40$:	MOV	R3,R0		;SET ADDRESS TO WRITE PATCH

    282	001106	012401 				MOV	(R4)+,R1	;GET WORD TO BE WRITTEN

    283	001110					CALL	$WRWRD		;WRITE WORD INTO IMAGE FILE

    284	001114	062703 	000002 			ADD	#2,R3		;ADVANCE TO NEXT PATCH ADDRESS

    285	001120	005316 				DEC	(SP)		;DECREMENT LOOP COUNT

P5EOS	MACRO M1110  22-AUG-78 01:55  PAGE 4-5





    286	001122	003370 				BGT	40$		;IF GT GO AGAIN

    287	001124	005726 				TST	(SP)+		;CLEAN STACK

    288	001126				45$:										;JAK112

    289	001126	052765 	100000 	000002 		BIS	#100000,2(R5)	; FLAG APPLIED					;JAK112

    290	001134	000711 				BR	10$		; PROCESS NEXT PATCH

    291	001136				50$:										;JAK112

    292	001136	012701 	000000C			MOV	#<S$V0*400!E$R96>,R1	;					;JAK112

    293	001142	010402 				MOV	R4,R2		; GET ADDRESS OF SYMBOL NAME			;JAK112

    294	001144					CALL	$ERMSG		; PRINT ERROR MESSAGE				;JAK112

    295	001150	000766 				BR	45$		; GO MARK SEGMENT FOUND				;JAK112

    296	001152				P5EOS2:				;

    297	001152					RETURN			;

    298

    299					;

    300					; RELOCATE DESCRIPTOR ADDRESS

    301					;

    302					; INPUTS:

    303					;

    304					; ENTRY POINT 'RELOC'

    305					;

    306					;	R0=OFFSET INTO SEGMENT DESCRIPTOR CONTAINING DESCRIPTOR BIAS

    307					;	$CRSEG=REAL ADDRESS OF CURRENT DESCRIPTOR

    308					;

    309					; ENTRY POINT 'RELOC1'

    310					;

    311					;	R0=REAL ADDRESS OF DESCRIPTOR BIAS

    312					;

    313					; OUTPUTS:

    314					;

    315					;	R0=TASK-VIRTUAL ADDRESS OF DESCRIPTOR

    316					;

    317

    318	001154				RELOC:				;

    319	001154	066700 	000000G			ADD	$CRSEG,R0	; POINT TO DESCRIPTOR BIAS

    320	001160				RELOC1:				;

    321	001160	012046 				MOV	(R0)+,-(SP)	; SAVE BIAS

    322	001162	011001 				MOV	(R0),R1		; GET VIRTUAL ADDRESS OF DESCRIPTOR SECTION

    323	001164					CALL	$CVRL		; CONVERT TO REAL

    324	001170	016000 	000000G			MOV	C$SBSE(R0),R0	; GET BASE OF SECTION

    325	001174	066700 	000000G			ADD	$OFFST,R0	; ADD OFFSET BIAS

    326	001200	062600 				ADD	(SP)+,R0	; ADD TASK BIAS

    327	001202					RETURN			;

    328

    329					;

    330					; WRITE BLOCK INTO TASK IMAGE

    331					;

    332					; INPUTS:

    333					;

    334					;	R3=NUMBER OF WORDS  TO WRITE. IF R3 IS LESS THAN OR EQUAL TO

    335					;	   ZERO, A SINGLE WORD IS WRITTEN INTO THE TASK IMAGE.

    336					;	R4=TASK IMAGE ADDRESS

    337					;	R5=ADDRESS OF BLOCK TO BE WRITTEN

    338					;

    339					; OUTPUTS:

    340					;

    341					;	R4=NEXT TASK IMAGE ADDRESS IN SEQUENCE

    342					;	R5=NEXT ADDRESS IN BLOCK

P5EOS	MACRO M1110  22-AUG-78 01:55  PAGE 4-6





    343					;

    344					;	THE SPECIFIED BLOCK CONTENTS ARE WRITTEN INTO THE TASK IMAGE

    345					;	AT THE ADDRESS CONTAINED IN R4.

    346					;

    347

    348	001204				WRBLK:				;

    349	001204	010400 				MOV	R4,R0		; COPY BLOCK ADDRESS

    350	001206	062704 	000002 			ADD	#2,R4		; UPDATE BLOCK ADDRESS

    351	001212	012501 				MOV	(R5)+,R1	; GET DATA TO BE WRITTEN

    352	001214					CALL	$WRWRD		; WRITE A WORD

    353	001220	005303 				DEC	R3		; DECREMENT COUNT

    354	001222	003370 				BGT	WRBLK		; IF GT GO AGAIN

    355	001224					RETURN			;

    356

    357		000001 				.END

P5EOS	MACRO M1110  22-AUG-78 01:55  PAGE 4-7

SYMBOL TABLE



CR    = 000015   	R.GNAM= 000004   	S$GNTB  000040   	T$RDWN  000010   	W.NOFF= 000010

CRFLG   000000R  	R.GPAR= 000010   	S$GNXT  000016   	T$RLDA  000002   	W.NRID= 000006

CRSYM   000002R  	R.GPRO= 000016   	S$GPRV  000020   	T$RLNG  000004   	W.NSIZ= 000004

CRWND   000024R  	R.GSIZ= 000002   	S$GREG  000176   	T$RNME  000014   	W.NSRB= 000016

C$SBSE= ****** GX	R.GSTS= 000014   	S$GRO   000036   	T$RNXT  000012   	W.NSTS= 000014

E$R96 = ****** GX	SG$DES= 000200   	S$GROB  000170   	T$RUP   000006   	$ADRST= ****** GX

FF    = 000014   	SG$DSK= 000100   	S$GRW   000034   	T$RWDP  000020   	$ALADR= ****** GX

HT    = 000011   	SG$GBL= 000001   	S$GSEG  000202   	VT    = 000013   	$ALVCT= ****** GX

LF    = 000012   	SG$LOD= 000040   	S$GSEQ  000212   	WF$LOD= 040000   	$CRSEG= ****** GX

P5EOS1  000744R  	SG$MEM= 000020   	S$GSTB  000042   	WF$MAP= 100000   	$CRVSG= ****** GX

P5EOS2  001152R  	SG$PHY= 000002   	S$GSTS  000000   	WRBLK   001204R  	$CVRL = ****** GX

RELOC   001154R  	SG$RES= 000004   	S$GUND  000144   	WS.CRW= 100000   	$ERMSG= ****** GX

RELOC1  001160R  	SG$RO = 000010   	S$GUP   000012   	WS.DEL= 000010   	$HDRBN= ****** GX

RF$ATT= 100000   	SPA   = 000040   	S$GVAD  000146   	WS.ELW= 020000   	$LBOFF= ****** GX

RS.ATT= 000040   	SW$NH = ****** GX	S$GWDP  000026   	WS.EXT= 000004   	$NUMSG= ****** GX

RS.CRR= 100000   	SY$DEF= ****** GX	S$GWND  000206   	WS.MAP= 000200   	$OFFST= ****** GX

RS.DEL= 000010   	SY$IND= ****** GX	S$V0  = ****** GX	WS.RCX= 000100   	$PATHD= ****** GX

RS.EXT= 000004   	SY$REL= ****** GX	S$YFLG= ****** GX	WS.RED= 000001   	$P5EOS  000050RG

RS.MDL= 000200   	S$GATL  000156   	S$YLGH= ****** GX	WS.RRF= 010000   	$RTSEG= ****** GX

RS.NDL= 000100   	S$GAUT  000172   	S$YM  = ****** GX	WS.UNM= 040000   	$RTWDP= ****** GX

RS.NEX= 000020   	S$GBLK  000002   	S$YSEG= ****** GX	WS.WRT= 000002   	$SAVRG= ****** GX

RS.RED= 000001   	S$GBRO  000004   	S$YVAL= ****** GX	WS.64B= 000400   	$SRCH = ****** GX

RS.UNM= 040000   	S$GCST  000030   	S$ZATL= ****** GX	W$NFLG  000020   	$SWTCH= ****** GX

RS.WRT= 000002   	S$GDWN  000014   	S$ZSEG  000020   	W$NLGH  000024   	$SZSEG= ****** GX

R$GFLG  000020   	S$GELT  000152   	TR$DES= 100000   	W$NREG  000022   	$TSKPT= ****** GX

R$GLGH  000022   	S$GLDA  000006   	TR$DSK= 040000   	W.NAPR= 000001   	$TSKWD= ****** GX

R$SWTH= ****** GX	S$GLGH  000216   	TR$LOD= 020000   	W.NBAS= 000002   	$WRWRD= ****** GX

R$$11M= 000000   	S$GLNG  000010   	TR$MEM= 010000   	W.NID = 000000   	$$    = 000001

R.GID = 000000   	S$GMEM  000164   	TS$KF = ****** GX	W.NLEN= 000012   	$$$   = 000020

R.GLGH= 000020   	S$GNME  000022   	T$RBLK  000000   	W.NLGH= 000020



. ABS.	000216	   000

      	001226	   001

ERRORS DETECTED:  0



VIRTUAL MEMORY USED:  2946 WORDS  ( 12 PAGES)

DYNAMIC MEMORY:  3828 WORDS  ( 14 PAGES)

ELAPSED TIME:  00:00:19

OBJ$:P5EOS,LIS$:P5EOS/-SP=SRC$:MACFLM,PLSDF,SEGDF,P5EOS

