FORMAT	MACRO M1110  22-AUG-78 02:08

TABLE OF CONTENTS



     1-  300	OBJECT LANGUAGE DEFS

FORMAT	MACRO M1110  22-AUG-78 02:08  PAGE 1





    100						.TITLE	FORMAT

    200						.IDENT	/X0300/

    300						.SBTTL	OBJECT LANGUAGE DEFS

FORMAT	MACRO M1110  22-AUG-78 02:08  PAGE 3





      1					; COPYRIGHT (C) 1976, 1977

      2					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

      3					;

      4					; THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

      5					; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

      6					; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

      7					; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

      8					; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

      9					; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

     10					; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

     11					;

     12					; THE INFORMATION IN THIS SOFTWARE  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 OF ITS

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

LIBCD	MACRO M1110  22-AUG-78 02:08  PAGE 4





      1						.TITLE	LIBCD

      2						.IDENT	/X04.04/

      3

      4					; COPYRIGHT (C) 1976, 1977

      5					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

      6					;

      7					; THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

      8					; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

      9					; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

     10					; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

     11					; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

     12					; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

     13					; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

     14					;

     15					; THE INFORMATION IN THIS SOFTWARE  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 OF ITS

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

     21					;

     22					; VERSION X04.04

     23					;

     24					; WRITTEN BY:

     25					;	GEORGE W. BERRY

     26					;

     27					; MODIFIED BY:

     28					;	C.A. D'ELIA	16-MAY-74

     29					;	C.A. D'ELIA	29-JUN-74  (VIRTUAL TABLES)

     30					;	THOMAS J. MILLER 29-OCT-74

     31					;

     32					;	T. J. MILLER 11-JAN-76

     33					;

     34					;		TM001 -- ADDITION OF EXTRACT SWITCH (/EX).

     35					;

     36					;	T. J. MILLER 23-JAN-76

     37					;

     38					;		TM002 -- ADDITION OF ENTRY POINT SWITCH (/EP).

     39					;

     40					;	K. D. MORSE 14-DEC-76

     41					;

     42					;		KM001 -- DEFAULT /SZ TO SET

     43					;

     44					;	K. D. MORSE 21-JAN-77

     45					;

     46					;		KM002 -- FIX BUG ON /SS AND /RP

     47					;			 (IF SPECIFIED ON FIRST INPUT FILE,

     48					;			  SWITCHES WERE APPLYING TO ALL INPUT FILES)

     49					;

     50					;	K.D. MORSE	18-MAY-77

     51					;

     52					;		KM003 -- FIX BUG ON /CO, ONLY CLEAR /SS AND /RP

     53					;			 NOT ALL SWITCH BITS AND CLEAR DEFAULT /SZ

     54					;	K.D. MORSE	19-JAN-78

     55					;

     56					;		KM004 -- FIX BUG ON /EX, ALLOW /DF

     57

LIBCD	MACRO M1110  22-AUG-78 02:08  PAGE 4-1





     58					;

     59					; MACRO LIBRARY CALLS

     60					;

     61

     62						.MCALL	CSI$                                                            ; TM001

     63	000000					CSI$                                                                    ; TM001

     64						.MCALL	FDOFF$

     65	000000					FDOFF$	DEF$L

     66

     67

     74

     75						.MCALL	FCSBT$

     76	000000					FCSBT$

     77

     78

     80

     81

     82					;

     83					; LOCAL DATA

     84					;

     85

     86	000000	000000G			DDBLK:	.WORD	$DEND

     87	000002	000000G				.WORD	$DBLK

     88	000004	000000G				.WORD	$DMN

     89

     90

     91	000006	000000G			DGBLK:	.WORD	$DGEND

     92	000010	000000G				.WORD	$DGBLK

     93	000012	000000 			DGSTRT:	.WORD	0

     94

     95					;                                                                               ; TM001

     96					; SCRATCH STORAGE FOR CSI BLOCK.                                                ; TM001

     97					;                                                                               ; TM001

     98					                                                                                ; TM001

     99	000014				CSIBK:	.BLKB	C.SIZE                                                          ; TM001

    100					                                                                                ; TM001

    101					;

    102					; DEFINE DEFAULT PARAMETERS FOR /CR

    103					;

    104						.MACRO	DEFAULT NAME,SIZ,EPT,MNT,TYP,LIBTYP

    105						.RAD50	/NAME/

    106						.WORD	SIZ		;DEFAULT FOR $SIZ

    107						.WORD	EPT		;DEFAULT FOR $EPT

    108						.WORD	MNT		;DEFAULT FOR $MNT

    109						.WORD	TYP		;DEFAULT FOR $TYP

    110						.PSECT	DFTYP,D,GBL,OVR	;NOTE - THIS PSECT IS ALLOCATED IN THE

    111									;   ROOT.  THE FIRST WORD OF THE PSECT

    112									;   IS ACCESSED THROUGH THE GLOBAL SYMBOL

    113									;   LIBTAB DEFINED IN THE MODULE LIBDF.

    114						.RAD50	/LIBTYP/	;DEFAULT LIBRARY FILE EXTENSION

    115						.PSECT

    116						.ENDM

    117					;

    118					;

    119	000070				DFTAB:

    120	000070					DEFAULT	OBJ,100.,275.,75.,TY$OBJ,OLB

    121		000012 			DFESIZ=	.-DFTAB

LIBCD	MACRO M1110  22-AUG-78 02:08  PAGE 4-2





    122	000102					DEFAULT	MAC,100.,0,275.,TY$MAC,MLB

    123	000114	000000 				.WORD	0		;MARK END OF DEFAULT TABLE

    124

    125					;+

    126					;

    127					; **-$DECD- COMMAND LINE DECODER FOR LIBRARIAN

    128					;

    129					; THIS ROUTINE SCANS THE INPUT COMMAND LINE, SETTING UP

    130					; THE SWITCH OPTION WORD, $SWTCH.  THE LEGALITY AND SYNTAX

    131					; OF THE COMMAND LINE IS ALSO VERIFIED.  ON RETURN, THE

    132					; LIBRARY FILE IS OPEN FOR UPDATE (EXCEPT IF /CR WAS

    133					; SPECIFIED).

    134					;

    135					; INPUTS:

    136					;

    137					;	R1 = ADDRESS OF CSI BLOCK

    138					;	R5 = $SWTCH ADDRESS

    139					;

    140					; OUTPUTS:

    141					;

    142					;	NONE

    143					;

    144					;-

    145

    146	000116				$DECD::	SAVRG			;SAVE R3 - R5

    147					                                                                                ; TM001

    148					;                                                                               ; TM001

    149					; FIRST CHECK FOR /EX BY SCANNING THE FIRST INPUT SPECIFIER USING               ; TM001

    150					; THE SCRATCH CSI BLOCK.  IF /EX IS NOT SPECIFIED, THIS SCAN IS                 ; TM001

    151					; FORGOTTEN SINCE THE REAL CSI BLOCK IS NOT MODIFIED.                           ; TM001

    152					;                                                                               ; TM001

    153					                                                                                ; TM001

    154	000122	016700 	000000G			MOV	$LIBPT,R0	;POINT TO LIB FDB                               ; TM001

    155	000126	010102 				MOV	R1,R2		;COPY POINTER TO REAL CSI BLOCK                 ; TM001

    156	000130	062702 	000054 			ADD	#C.SIZE,R2	;POINT TO END                                   ; TM001

    157	000134	012701 	000070'			MOV	#CSIBK+C.SIZE,R1 ;POINT TO END OF SCRATCH CSI BLOCK             ; TM001

    158	000140	014241 			1$:	MOV	-(R2),-(R1)	;COPY REAL CSI BLOCK                            ; TM001

    159	000142	020127 	000014'			CMP	R1,#CSIBK	;DONE YET?                                      ; TM001

    160	000146	101374 				BHI	1$		;IF HI NO                                       ; TM001

    161	000150					CALL	$SCANI		;SCAN FIRST INPUT SPEC                          ; TM001

    162	000154	103417 				BCS	5$		;IF CS NONE SPECIFIED                           ; TM001

    163	000156	032715 	000000G			BIT	#EX$SW,(R5)	;/EX SPECIFIED?                                 ; TM001

    164	000162	001414 				BEQ	5$		;IF EQ NO                                       ; TM001

    165	000164	032715 	000000C			BIT	#^C<EX$SW!DF$SW>,(R5)	; ANY OTHER SWITCHES SPECIFIED?                  ; KM004

    166	000170	001403 				BEQ	2$		;IF EQ NO                                       ; TM001

    167	000172	012701 				MOV	(PC)+,R1	;ILLEGAL SWITCH COMBINATION                     ; TM001

    168	000174	   000G	   000G			.BYTE	E$R21,S$V2	;                                               ; TM001

    169	000176	000404 				BR	3$		;                                               ; TM001

    170	000200	005700 			2$:	TST	R0		;ANY MORE INPUT FILES?                          ; TM001

    171	000202	001031 				BNE	10$		;IF NE NO                                       ; KM004

    172	000204	012701 				MOV	(PC)+,R1	;TOO MANY INPUT FILES                           ; TM001

    173	000206	   000G	   000G			.BYTE	E$R33,S$V2	;                                               ; TM001

    174	000210	000167 	000502 		3$:	JMP	ERR		;REPORT ERROR                                   ; TM001

    175					                                                                                ; TM001

    176					;                                                                               ; TM001

    177					; /EX WAS NOT SPECIFIED, PROCEED TO EXAMINE FIRST OUTPUT SPEC.                  ; TM001

    178					;                                                                               ; TM001

LIBCD	MACRO M1110  22-AUG-78 02:08  PAGE 4-3





    179					                                                                                ; TM001

    180	000214	012701 	000000G		5$:	MOV	#$CSIBK,R1	;POINT TO CSI BLOCK                             ; TM001

    181	000220	016700 	000000G			MOV	$LIBPT,R0	;SCAN FOR FIRST OUTPUT FILE

    182					;	CLR	(R5)		;++KM002 CLEAR SWITCH VALUE

    183	000224	042715 	000000C			BIC	#SS$SW!RP$SW,(R5) ;++KM003 CLEAR VALUES SET BY INPUT FILE

    184	000230	052715 	000000G			BIS	#SZ$SW,(R5)	;++KM001 SET SQEEZE SWITCH ON BY DEFAULT

    185	000234					CALL	$SCANO

    186	000240	032715 	000000G			BIT	#EX$SW,(R5)	;WAS /EX SPECIFIED ON OUTPUT?                   ; TM001

    187	000244	001076 				BNE	35$		;IF NE YES, ILLEGAL COMBINATION                 ; TM001

    188	000246	103007 				BCC	10$		;BRANCH IF LIBRARY FILE READ

    189	000250	032715 	000000G			BIT	#DF$SW,(R5)	;DEFAULT SWITCH MAY STAND ALONE

    190	000254	001007 				BNE	15$		;BRANCH IF IT IS PRESENT

    191	000256	012701 				MOV	(PC)+,R1	;ERROR-NO LIBRARY SPECIFIED

    192	000260	   000G	   000G			.BYTE	E$R20,S$V2

    193	000262	000167 	000430 			JMP	ERR		;GO TO ERROR EXIT

    194

    195	000266	032715 	000000G		10$:	BIT	#DF$SW,(R5)	;DEFAULT SWITCH SPECIFIED?

    196	000272	001442 				BEQ	32$		;BRANCH IF NOT

    197	000274	006104 			15$:	ROL	R4		;SAVE C-BIT IN R4

    198	000276	005067 	000000G			CLR	DF$TYP		;INITIALLY CLEAR DEFAULT TYPE

    199	000302	012700 	000003G			MOV	#L$BUF+3,R0	;POINT TO DF SWITCH VALUE

    200	000306	105710 				TSTB	(R0)		;NO VALUE SPECIFIED?

    201	000310	001424 				BEQ	30$		;IF SO, LEAVE IT CLEAR (OBJ TYPE)

    202	000312	005001 				CLR	R1		;OTHERWISE SET TO CONVERT VALUE

    203	000314					CALL	$CAT5		;CONVERT TO RAD50 STOPPING ON .OR $

    204	000320	005003 				CLR	R3		;INITIALIZE TABLE POINTER

    205	000322	005763 	000070'		20$:	TST	DFTAB(R3)	;AT END OF TABLE?

    206	000326	001410 				BEQ	25$		;YES, ILLEGAL TYPE

    207	000330	020163 	000070'			CMP	R1,DFTAB(R3)	;COMPARE SWITCH VALUE WITH TYPE IN TABLE

    208	000334	001412 				BEQ	30$		;DONE IF MATCH FOUND

    209	000336	005267 	000000G			INC	DF$TYP		;OTHERWISE BUMP DEFAULT TYPE

    210	000342	062703 	000012 			ADD	#DFESIZ,R3	;...AND TABLE POINTER

    211	000346	000765 				BR	20$		;TRY AGAIN

    212	000350	005067 	000000G		25$:	CLR	DF$TYP		;ERROR, FORCE DEFAULT TYPE TO OBJ

    213	000354	012701 				MOV	(PC)+,R1	;PICK UP ERROR MESSAGE CODE

    214	000356	   000G	   000G			.BYTE	E$R5,S$V2	;ILLEGAL LIBRARY TYPE

    215	000360	000556 				BR	ERR		;BRANCH TO PRINT

    216	000362	006004 			30$:	ROR	R4		;RESTORE SAVED C-BIT

    217	000364	103005 				BCC	32$		;CONTINUE IF LIBRARY FILE WAS SPECIFIED

    218	000366	032715 	000000G			BIT	#EX$SW,(R5)	;TEST FOR EXTRACT SWITCH WITH /DF						;KM004

    219	000372	001002 				BNE	32$		;BRANCH IF /EX SET					;KM004

    220	000374	000167 	000404 			JMP	EXIT		;OTHERWISE GET NEXT COMMAND LINE

    221	000400	016703 	000000G		32$:	MOV	DF$TYP,R3	;PICK UP DEFAULT TYPE

    222	000404	006303 				ASL	R3		;CONVERT TO WORD OFFSET

    223	000406	016367 	000000G	000014G		MOV	LIBTAB(R3),LIBNAM+N.FTYP ;DEFAULT EXTENSION FOR LIBRARY FILE

    224	000414	032715 	000000G			BIT	#EX$SW,(R5)	;/EX SPECIFIED?                                 ; TM001

    225	000420	001020 				BNE	65$		;IF NE YES, PROCESS MODULE NAMES                ; TM001

    226	000422	032715 	000000G			BIT	#CO$SW,(R5)	;COMPRESS OPTION?

    227	000426	001410 				BEQ	60$		;BRANCH IF NOT

    228	000430	042715 	000000G			BIC	#SZ$SW,(R5)	;KM003 ELIMINATE DEFAULT SQUEEZE

    229	000434	032715 	000000G			BIT	#XC$SW,(R5)	;INSURE LEGAL SWITCH COMBINATION

    230	000440	001561 				BEQ	EXIT		;BRANCH TO LEAVE IF ONLY /CO

    231	000442	012701 			35$:	MOV	(PC)+,R1	;ILLEGAL SWITCH COMBINATION

    232	000444	   000G	   000G			.BYTE	E$R21,S$V2

    233	000446	000523 				BR	ERR

    234	000450	052715 	000000G		60$:	BIS	#IN$SW,(R5)	;/IN IS FORCED DEFAULT

    235	000454	032715 	000000G			BIT	#CR$SW,(R5)	;/CR?

LIBCD	MACRO M1110  22-AUG-78 02:08  PAGE 4-4





    236	000460	001013 				BNE	70$		;BRANCH IF /CR

    237	000462	012700 	000000'		65$:	MOV	#DDBLK,R0	;ASSUME /DE OR /EX                              ; TM001

    238	000466					CALL	CSTOR                                                           ;**-1

    239	000472	010067 	177314 			MOV	R0,DGSTRT

    240	000476	012700 	000006'			MOV	#DGBLK,R0	;ASSUME /DG ALSO

    241	000502					CALL	CSTOR

    242	000506					RETURN			;EXIT

    243

    244	000510	032715 	000000G		70$:	BIT	#DL$SW,(R5)	;/DE WITH /CR IS INVALID

    245	000514	001352 				BNE	35$		;BRANCH IF /DE

    246	000516	012700 	000000G			MOV	#L$BUF,R0	;SET UP DEFAULTS

    247	000522	012704 	000070'			MOV	#DFTAB,R4	;BASED ON TYPE

    248	000526	005710 				TST	(R0)		;NULL TYPE IMPLIES DEFAULT

    249	000530	001414 				BEQ	105$

    250	000532	005001 				CLR	R1

    251	000534					CALL	$CAT5		;CONVERT TYPE SPEC. TO RAD50

    252

    253	000540	020114 			22$:	CMP	R1,(R4)		;CHECK FOR MATCH

    254	000542	001417 				BEQ	21$		;BRANCH IF MATCH

    255	000544	062704 	000012 			ADD	#DFESIZ,R4	;GO ON TO NEXT DFTAB ENTRY

    256	000550	005714 				TST	(R4)		;IS IT 0 (END OF TABLE)?

    257	000552	001372 				BNE	22$		;BRANCH IF MORE TO SCAN

    258	000554	012701 				MOV	(PC)+,R1	;ILLEGAL TYPE SPECIFICATION

    259	000556	   000G	   000G			.BYTE	E$R5,S$V2

    260	000560	000456 				BR	ERR		;TAKE ERROR EXIT

    261

    262	000562	016703 	000000G		105$:	MOV	DF$TYP,R3	;PICK UP DEFAULT TYPE

    263	000566	005203 				INC	R3		;MAKE IT A LOOP COUNTER

    264	000570	000402 				BR	115$		;BRANCH TO LOOP TEST

    265	000572	062704 	000012 		110$:	ADD	#DFESIZ,R4	;BUMP TABLE POINTER

    266	000576				115$:	SOB	R3,110$

    267	000602	005724 			21$:	TST	(R4)+		;GET DEFAULTS

    268	000604	012703 	000003 			MOV	#3,R3

    269	000610	012702 	000000G			MOV	#$SIZ,R2

    270	000614	005712 			23$:	TST	(R2)		;DEFAULT NEEDED?

    271	000616	001010 				BNE	26$		;IF NE NO                                       ; TM002

    272	000620	020227 	000000G			CMP	R2,#$EPT	;IS IT THE EPT SPEC?                            ; TM002

    273	000624	001004 				BNE	24$		;IF NE NO                                       ; TM002

    274	000626	032767 	000000G	000000G		BIT	#EP$SW,$SWTCH	;/-EP SPECIFIED?                                ; TM002

    275	000634	001001 				BNE	26$		;IF NE YES                                      ; TM002

    276	000636	011412 			24$:	MOV	(R4),(R2)	;STORE DEFAULT                                  ; TM002

    277	000640	022422 			26$:	CMP	(R4)+,(R2)+	;GET NEXT DEFAULT                               ; TM002

    278	000642					SOB	R3,23$                                                          ;**-3

    279	000646	011403 				MOV	(R4),R3		;PICK UP TYPE

    280	000650	010312 				MOV	R3,(R2)		;STORE IT IN $TYP

    281	000652	006303 				ASL	R3		;CONVERT TYPE TO WORD OFFSET

    282	000654	016367 	000000G	000014G		MOV	LIBTAB(R3),LIBNAM+N.FTYP ;SET DEFAULT EXTENSION FOR LIB FILE

    283

    284	000662	016700 	000000G			MOV	$LIBPT,R0	;OPEN LIBRARY FILE

    285	000666	016760 	000000G	000034 	CREATE:	MOV	$SIZ,F.CNTG(R0)	;SET FILE SIZE (CONTIGUOUS)

    286

    287

    294

    295	000674	012701 	000016 			MOV	#FO.WRT,R1	;SPECIFY OPEN FOR WRITE

    296	000700					CALL	$OPEN		;PARSE FILENAME AND OPEN FILE

    297

    298

LIBCD	MACRO M1110  22-AUG-78 02:08  PAGE 4-5





    300

    301

    302	000704	103037 				BCC	EXIT

    303	000706	012701 			OERR:	MOV	(PC)+,R1	;OPEN FAILURE

    304	000710	   000G	   000G			.BYTE	E$R11,S$V2

    305	000712	016002 	000000G			MOV	R$NAME(R0),R2

    306	000716	000167 	000000G		ERR:	JMP	$ERMSG		;FATAL ERROR EXIT

    307

    308

    309					;+

    310					;

    311					;+++STAR THIS ROUTINE MOVES A LIST OF NAMES INTO

    312					;+++STAR A PRE-ALLOCATED TABLE.

    313					;

    314					; INPUTS:

    315					;

    316					;	R0 = ADDRESS OF PARAMETER BLOCK

    317					;	WHERE THE PARAMETER BLOCK FORMAT IS:

    318					;		.WORD	END-OF-STORAGE-TABLE

    319					;		.WORD	START-OF-NAME-LIST

    320					;		.WORD	START-OF-STORAGE-TABLE

    321					;

    322					; OUTPUTS:

    323					;

    324					;	R0 = NEXT WORD IN STORAGE TABLE

    325					;

    326					;= THIS ROUTINE HAS BEEN REWRITTEN FOR STAR SOFTWARE

    327					;-

    328

    329	000722				CSTOR:

    330	000722					SAVRG			;SAVE R3 - R5

    331	000726	012003 				MOV	(R0)+,R3	;GET ADDR OF END OF OUTPUT TABLE

    332	000730	012004 				MOV	(R0)+,R4	;GET START OF INPUT DATA

    333	000732	011005 				MOV	(R0),R5		;GET ADDR OF OUTPUT TABLE

    334	000734	012700 	000017 			MOV	#S$MXLN,R0	;SET UP MAX LENGHT

    335	000740				10$:

    336	000740	105714 				TSTB	(R4)		;DONE WITH INPUT LIST

    337	000742	001416 				BEQ	40$		;BR IF YES

    338	000744	010002 				MOV	R0,R2		;GET MAX NAME LENGTH

    339	000746	010501 				MOV	R5,R1		;SAVE WHERE TO PUT LENGTH

    340	000750	005205 				INC	R5		;SKIP OVER WHERE LENGTH WILL GO

    341	000752				20$:

    342	000752	105714 				TSTB	(R4)		;DONE WITH NAME

    343	000754	001403 				BEQ	30$		;BR IF YES

    344	000756	112425 				MOVB	(R4)+,(R5)+	;MOVE CHAR

    345	000760					SOB	R2,20$		;LOOP FOR REST

    346	000764				30$:

    347	000764	060204 				ADD	R2,R4		;MOVE R4 TO NEXT SYMBOL

    348	000766	160002 				SUB	R0,R2		;GET NAME LENGTH

    349	000770	005402 				NEG	R2		;MAKE IT POSITIVE

    350	000772	110211 				MOVB	R2,(R1)		;SAVE LENGTH

    351	000774	020305 				CMP	R3,R5		;OUTPUT TABLE OVERFLOW

    352	000776	101360 				BHI	10$		;BR IF NO

    353	001000				40$:

    354	001000	105025 				CLRB	(R5)+		;FLAG END OF OUTPUT TABLE

    355	001002	010500 				MOV	R5,R0		;SET UP NEXT BYTE IN OUTPUT TABLE

    356	001004				EXIT:

LIBCD	MACRO M1110  22-AUG-78 02:08  PAGE 4-6





    357	001004					RETURN

    358		000001 				.END

LIBCD	MACRO M1110  22-AUG-78 02:08  PAGE 4-7

SYMBOL TABLE



CH.AND= 000001   	FA.SEQ= 040000   	F.ERR = 000052   	NB.SD2= 001000   	SS$SW = ****** GX

CO$SW = ****** GX	FA.SHR= 000040   	F.FACC= 000043   	NB.SNM= 000040   	STAGRP= 000000

CREATE  000666R  	FA.TMP= 000020   	F.FFBY= 000014   	NB.STP= 000020   	STOGRP= 000024

CR$SW = ****** GX	FA.WCK= 020000   	F.FNAM= 000110   	NB.SVR= 000010   	SZ$SW = ****** GX

CSIBK   000014R  	FA.WRT= 000002   	F.FNB = 000102   	NB.TYP= 000002   	S$DNAM  000013      011

CSTOR   000722R  	FD.BLK= 000010   	F.FTYP= 000116   	NB.VER= 000001   	S$DNLN  000012      011

CS.DIF= 000002   	FD.CCL= 000002   	F.FVER= 000120   	N.DID = 000024   	S$DPSI  000005      011

CS.DVF= 000004   	FD.COM= 020000   	F.HIBK= 000004   	N.DVNM= 000032   	S$DVAL  000006      011

CS.EQU= 000040   	FD.CR = 000002   	F.LUN = 000042   	N.FID = 000000   	S$MXLN= 000017

CS.INP= 000001   	FD.DIR= 000010   	F.MBCT= 000054   	N.FNAM= 000006   	S$RNAM  000006      010

CS.MOR= 000020   	FD.FTN= 000001   	F.MBC1= 000055   	N.FTYP= 000014   	S$RNLN  000005      010

CS.NMF= 000001   	FD.F11= 040000   	F.MBFG= 000056   	N.FVER= 000016   	S$SDTY  000002      007

CS.OUT= 000002   	FD.INS= 000010   	F.NRBD= 000024   	N.NEXT= 000022   	S$SFL0  000003      007

CS.WLD= 000010   	FD.ISP= 002000   	F.NREC= 000030   	N.STAT= 000020   	S$SFL1  000004      007

CTLGRP= 000120   	FD.MNT= 100000   	F.OVBS= 000030   	N.UNIT= 000034   	S$V2  = ****** GX

C.CMLD= 000002   	FD.OSP= 004000   	F.RACC= 000016   	OBJ$SL= 000000   	S$$LIB= 000000

C.DEVD= 000006   	FD.PLC= 000004   	F.RATT= 000001   	OB$DBG= 000004   	S.FATT= 000016

C.DIRD= 000012   	FD.PRN= 000004   	F.RCNM= 000034   	OB$EOM= 000003   	S.FDB = 000140

C.DSDS= 000006   	FD.PSE= 010000   	F.RCTL= 000017   	OB$GSD= 000001   	S.FNAM= 000006

C.FILD= 000016   	FD.RAH= 000001   	F.RSIZ= 000002   	OB$HDR= 000000   	S.FNB = 000036

C.MKW1= 000024   	FD.RAN= 000002   	F.RTYP= 000000   	OB$LNK= 000005   	S.FNBW= 000017

C.MKW2= 000026   	FD.REC= 000001   	F.SEQN= 000100   	OB$TIR= 000002   	S.FNTY= 000004

C.SIZE= 000054   	FD.RWM= 000001   	F.SPDV= 000072   	OERR    000706R  	S.FTYP= 000002

C.STAT= 000001   	FD.SDI= 000020   	F.SPUN= 000074   	OPRGRP= 000062   	S.NFEN= 000020

C.SWAD= 000022   	FD.SQD= 000040   	F.STBK= 000036   	O$BJTY  000000      002	TIRMAX= 000121

C.TYPR= 000000   	FD.TTY= 000004   	F.UNIT= 000136   	PAGALI= 000011   	TY$MAC= ****** GX

DDBLK   000000R  	FD.WBH= 000002   	F.URBD= 000020   	PF$GBL= 000020   	TY$OBJ= ****** GX

DFESIZ= 000012   	FF.CHR= 000005   	F.VBN = 000064   	PF$OVL= 000004   	T$CHAR= 000005

DFTAB   000070R  	FF.NV = 000003   	F.VBSZ= 000060   	PF$PIC= 000001   	T$HEAD= 000000

DF$SW = ****** GX	FF.POE= 000002   	GS$ARG= 000003   	PF$RD = 000200   	T$SLEN= 000004

DF$TYP= ****** GX	FF.RWD= 000001   	GS$EPM= 000002   	PF$REL= 000010   	T$SMBL= 000004

DGBLK   000006R  	FF.RWF= 000006   	GS$PSC= 000000   	PF$SHR= 000040   	V$MEML= 000002

DGSTRT  000012R  	FF.SPC= 000004   	GS$SYM= 000001   	PF$UNI= 000002   	XC$SW = ****** GX

DL$SW = ****** GX	FO.APD= 000106   	G$SDTY  000001      005	PF$WRT= 000001   	$     = 000000      012

EOM$MX= 000007   	FO.MFY= 000002   	IN$SW = ****** GX	PF$XEQ= 000100   	$CAT5 = ****** GX

EP$SW = ****** GX	FO.RD = 000001   	LIBNAM= ****** GX	PSD$MX= 000031   	$CSIBK= ****** GX

ERR     000716R  	FO.UPD= 000006   	LIBTAB= ****** GX	P$SALI  000002      006	$DBLK = ****** GX

EXIT    001004R  	FO.WRT= 000016   	L$BUF = ****** GX	P$SALO  000005      006	$DECD   000116RG

EX$SW = ****** GX	F.ACTL= 000076   	MAXALI= 000011   	P$SFL0  000003      006	$DEND = ****** GX

E$OMAD  000003      012	F.ALOC= 000040   	MHD$MX= 000111   	P$SFL1  000004      006	$DGBLK= ****** GX

E$OMER  000001      012	F.BBFS= 000062   	MH$CPY= 000004   	P$SNAM  000012      006	$DGEND= ****** GX

E$OMPS  000002      012	F.BDB = 000070   	MH$GTX= 000006   	P$SNLN  000011      006	$DMN  = ****** GX

E$R11 = ****** GX	F.BGBC= 000057   	MH$LNM= 000001   	Q$$CMO= 000000   	$EPT  = ****** GX

E$R20 = ****** GX	F.BKDN= 000026   	MH$MHD= 000000   	RP$SW = ****** GX	$ERMSG= ****** GX

E$R21 = ****** GX	F.BKDS= 000020   	MH$MTC= 000005   	R$MXLN= 001000   	$LIBPT= ****** GX

E$R33 = ****** GX	F.BKEF= 000050   	MH$SRC= 000002   	R$NAME= ****** GX	$OPEN = ****** GX

E$R5  = ****** GX	F.BKP1= 000051   	MH$TTL= 000003   	R$$11M= 000000   	$SAVRG= ****** GX

FA.APD= 000100   	F.BKST= 000024   	MTC$MX= 000213   	R.FIX = 000001   	$SCANI= ****** GX

FA.CRE= 000010   	F.BKVB= 000064   	M$HDMS  000003      003	R.SEQ = 000003   	$SCANO= ****** GX

FA.DLK= 001000   	F.CHR = 000075   	M$HDNM  000005      003	R.VAR = 000002   	$SIZ  = ****** GX

FA.ENB= 100000   	F.CNTG= 000034   	M$HDSL  000002      003	SDF$MX= 000032   	$SWTCH= ****** GX

FA.EXC= 002000   	F.DFNB= 000046   	M$HDST  000001      003	SF$DEF= 000002   	$$    = 000001

FA.EXT= 000004   	F.DSPT= 000044   	M$TCPN  000002      004	SF$REL= 000010   	$$S   = 000005

FA.NSP= 000100   	F.DVNM= 000134   	NB.DEV= 000200   	SF$UNI= 000004   	$$0   = 000002

FA.POS= 010000   	F.EFBK= 000010   	NB.DIR= 000100   	SF$VAL= 000020   	$$1   = 000002

FA.RD = 000001   	F.EFN = 000050   	NB.NAM= 000004   	SF$WK = 000001   	...GBL= 000000

FA.RWD= 004000   	F.EOBB= 000032   	NB.SD1= 000400   	SRF$MX= 000025   	...TPC= 000140

LIBCD	MACRO M1110  22-AUG-78 02:08  PAGE 4-8

SYMBOL TABLE





. ABS.	000000	   000

      	001006	   001

OBJREC	000001	   002

MHDREC	000111	   003

MTCREC	000213	   004

GSDREC	000002	   005

PSDEF 	000031	   006

SYMBOL	000005	   007

SYMREF	000025	   010

SYMDEF	000032	   011

EOMREC	000007	   012

DFTYP 	000004	   013

ERRORS DETECTED:  0



VIRTUAL MEMORY USED:  2961 WORDS  ( 12 PAGES)

DYNAMIC MEMORY:  3828 WORDS  ( 14 PAGES)

ELAPSED TIME:  00:00:17

OBJ$:LIBCD,LIS$:LIBCD/-SP=SRC$:NEWFORMAT.,LIBPRE,LIBCD

