FORMAT	MACRO M1110  22-AUG-78 02:13

TABLE OF CONTENTS



     1-  300	OBJECT LANGUAGE DEFS

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





    100						.TITLE	FORMAT

    200						.IDENT	/X0300/

    300						.SBTTL	OBJECT LANGUAGE DEFS

FORMAT	MACRO M1110  22-AUG-78 02:13  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.

LIBLI	MACRO M1110  22-AUG-78 02:13  PAGE 4





      1						.TITLE	LIBLI

      2						.IDENT	/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 04

     23					;

     24					; WRITTEN BY:

     25					;	GEORGE W. BERRY

     26					;

     27					; MODIFIED BY:

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

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

     30					;	THOMAS J. MILLER 01-NOV-74

     31					;			18-MAR-75

     32					;			26-FEB-75

     33					;			20-JUN-75

     34					;	K.D. MORSE	24-JAN-77

     35					;		KM001 -- OUPUT ENTRY POINTS IN EVEN COLUMNS

     36					;

     37					;

     38

     39					;

     40					; MACRO CALLS

     41					;

     42

     43						.MCALL	FCSBT$

     44	000000					FCSBT$

     45						.MCALL	FDOFF$

     46	000000					FDOFF$	DEF$L

     47						.MCALL	FILIO$

     48	000000					FILIO$

     49

     50						.MCALL	CLOSE$,PRINT$,QIO$,DIR$

     51

     52

     58

     59

     60					;

     61					; LOCAL DATA

     62					;

LIBLI	MACRO M1110  22-AUG-78 02:13  PAGE 4-1





     63

     64		000004 			LINSIZ=72./S$MXLN		;+++STAR NUMBER OF GLOBAL SYMBOLS PER LINE

     65

     66	000000				SAVR3:	.BLKW	1		;NEEDED TO SAVE R3 DURING EPT LISTING

     67	000002				NXTMNT:	.BLKW	1		;VIRTUAL LOCN OF NEXT MNT ENTRY

     68	000004				TYPASC:				;TABLE OF LIBRARY TYPE MESSAGE POINTERS

     69	000004	000015 				.WORD	OBJSIZ

     70	000006	000453'				.WORD	OBJSTR

     71	000010	000005 				.WORD	MACSIZ

     72	000012	000470'				.WORD	MACSTR

     73

     74

     75	000014				VBLOCK:	.BLKW	2		;+++STAR CMD BLOCK FOR $EDMSG

     76

     77					;

     78					; FORMAT STRINGS FOR DIRECTORY LISTING

     79					;

     80						.NLIST	BEX

     81	000020	   045 	   106 	   045 	HD1:	.ASCIZ	/%F%2NDIRECTORY OF FILE %X%N/

     82	000054	   045 	   126 	   101 	HD2AA:	.ASCIZ	/%VA/		;LIBRARY TYPE MESSAGE

     83	000060	   040 	   114 	   111 	HD2:	.ASCIZ	/ LIBRARY CREATED BY:  LIB V%2R%N/

     84	000121	   114 	   101 	   123 	HD2A:	.ASCIZ	/LAST INSERT OCCURRED %Y AT %3Z%N/

     85		000157'			CRLF	=.-3

     86

     87	000162	   115 	   116 	   124 	HD3:	.ASCIZ	/MNT ENTRIES ALLOCATED: %D; AVAILABLE: %D%N/

     88		000164'			HD3X	=HD3+2

     89	000235	   107 	   123 	   000 	HD4:	.ASCIZ	/GS/

     90	000240	   106 	   111 	   114 	HD5:	.ASCIZ	/FILE SPACE AVAILABLE: /

     91	000267	   122 	   105 	   103 	HD6:	.ASCIZ	/RECOVERABLE DELETED SPACE: /

     92	000323	   040 	   127 	   117 	HD6X:	.ASCIZ	/ WORDS%N/

     93	000334	   045 	   062 	   116 	HD7:	.ASCIZ	/%2N/

     94	000340	   045 	   116 	   052 	MN1:	.ASCIZ	/%N** MODULE:/

     95	000355	   045 	   126 	   101 	MN1X:	.ASCIZ	/%VA/

     96	000361	   040 	   040 	   123 	MN2:	.ASCIZ	/  SIZE:/

     97	000371	   040 	   040 	   111 	MN3:	.ASCIZ	/  INSERTED:%Y/

     98	000407	   040 	   040 	   111 	MN4P:	.ASCII	/  IDENT:%VA/

     99	000422	   045 	   116 	   000 	MN4A:	.ASCIZ	/%N/

    100	000425	   011 	   011 	   040 	OBJATR:	.ASCIZ	<11><11>/  ATTRIB:SS%N/	;SELECTIVE SEARCH OBJECT MODULE

    101	000445	   040 	   040 	   045 	MN4:	.ASCIZ	/  %VA/

    102	000453	   117 	   102 	   112 	OBJSTR:	.ASCII	/OBJECT MODULE/

    103		000015 			OBJSIZ=	.-OBJSTR

    104	000470	   115 	   101 	   103 	MACSTR:	.ASCII	/MACRO/

    105		000005 			MACSIZ=	.-MACSTR

    106	000475	   040 	   040 	   040 	BLANKS:	.ASCII	/              /

    107

    108

    109						.EVEN

    110						.NLIST	BEX

    111

    112

    113					;+

    114					;**-$LIS-LIST DIRECTORY FUNCTION

    115					;

    116					; THIS ROUTINE OUTPUTS A LIBRARY DIRECTORY LISTING

    117					; ON THE SPECIFIED LISTING OUTPUT DEVICE. THERE

    118					; ARE THREE FORMS OF THIS DIRECTORY DEPENDING ON

    119					; WHETHER /EP AND/OR /FU ARE GIVEN, TO INDICATE

LIBLI	MACRO M1110  22-AUG-78 02:13  PAGE 4-2





    120					; THAT ENTRY POINTS AND FULL MODULE IDENTIFICATION

    121					; ARE TO BE LISTED.

    122					;

    123					; INPUTS:

    124					;

    125					;	NONE

    126					;

    127					; OUTPUTS:

    128					;

    129					;	NONE

    130					;

    131					;-

    132	000514				$LIS::	SAVRG			;SAVE R3-R5

    133	000520	012701 	000001 			MOV	#FO.RD,R1	;INDICATE OPEN FOR READ

    134	000524					CALL	$RDHD		;READ LIBRARY HEADER, EPT, & MNT

    135	000530	016700 	000000G			MOV	$LISPT,R0	;OUTPUT ON LISTING DEVICE

    136	000534					CALL	LISOUT		;INIT OUTPUT CO-ROUTINE

    137					;****	OUTPUT HEADER

    138	000540	022700 	000000G			CMP	#LISPT,R0	;CHECK FOR LIST FILE SPECIFIED

    139	000544	001013 				BNE	1$		;BRANCH IF NOT

    140

    141

    148

    149	000546	012701 	000016 			MOV	#FO.WRT,R1	;SPECIFY OPEN FOR WRITE

    150	000552					CALL	$OPEN		;PARSE FILENAME AND OPEN FILE

    151

    152

    154

    155

    156	000556	103006 				BCC	1$		;BRANCH IF OPEN WAS OK

    157	000560	012701 				MOV	(PC)+,R1	;OPEN FAILURE ON FILE

    158	000562	   000G	   000G			.BYTE	E$R11,S$V2

    159	000564	016002 	000000G			MOV	R$NAME(R0),R2

    160	000570	000167 	000000G			JMP	$ERMSG		;FATAL ERROR EXIT

    161

    162	000574	012701 	000020'		1$:	MOV	#HD1,R1		;GET ADDRESS OF FORMAT STRING

    163	000600	010067 	000000G			MOV	R0,$OPNFL	;INDICATE FILE OPEN ON 'LISPT'

    164

    165

    167

    168	000604	001003 				BNE	3$		;SKIP IF NOT QIO OUTPUT TO 'CMO'

    169	000606	012700 	000000G			MOV	#$CMOLN,R0	;PUT LUN IN R0

    170	000612	000406 				BR	5$		;BRANCH TO DO THE ATTACH

    171

    173

    174

    175	000614	132760 	000004 	000017 	3$:	BITB	#FD.TTY,F.RCTL(R0) ;OUTPUTTING TO A TERMINAL DEVICE?

    176	000622	001405 				BEQ	10$		;BRANCH IF NOT

    177	000624	116000 	000042 			MOVB	F.LUN(R0),R0	;PUT LUN IN R0

    178	000630				5$:	CALL	$TTYAT		;ATTACH THE TELETYPE

    179	000634	005721 				TST	(R1)+		;DON'T OUTPUT FORM-FEED

    180	000636	016700 	000000G		10$:	MOV	$LIBPT,R0	;OUTPUT LIBRARY FILENAME

    181	000642	016002 	000000G			MOV	R$NAME(R0),R2	;GET FILE NAME POINTER

    182	000646					CALL	@(SP)+		;CONVERT + OUTPUT

    183	000650	012701 	000054'			MOV	#HD2AA,R1	;POINT TO LIBRARY TYPE MESSAGE

    184	000654	116702 	000000G			MOVB	L$TYP,R2	;PICK UP LIBRARY TYPE

    185	000660	006302 				ASL	R2		;CONVERT TO DOUBLE WORD OFFSET

LIBLI	MACRO M1110  22-AUG-78 02:13  PAGE 4-3





    186	000662	006302 				ASL	R2

    187	000664	062702 	000004'			ADD	#TYPASC,R2	;POINT INTO TABEL

    188	000670					CALL	@(SP)+		;PRINT IT

    189	000672	012702 	000000G			MOV	#L$VER,R2

    190	000676	012701 	000060'			MOV	#HD2,R1		;"CREATED BY LIB VXXX"

    191	000702					CALL	@(SP)+		;CONVERT AND OUTPUT

    192	000704	012701 	000121'			MOV	#HD2A,R1	;"LAST INSERT OCCURRED"

    193	000710	012702 	000000G			MOV	#L$DAT,R2

    194	000714					CALL	@(SP)+		;CONVERT AND OUTPUT

    195	000716	012702 	000000G			MOV	#L$MI,R2

    196	000722	012701 	000162'			MOV	#HD3,R1		;"MNT'S ALLOCATED"

    197	000726					CALL	@(SP)+		;CONVERT AND OUTPUT

    198	000730	012701 	000235'			MOV	#HD4,R1		;"EPT'S ALLOCATED"

    199	000734					CALL	@(SP)+		;CONVERT AND OUTPUT

    200	000736	012701 	000164'			MOV	#HD3X,R1

    201	000742	012702 	000000G			MOV	#L$EI,R2

    202	000746					CALL	@(SP)+

    203	000750	012701 	000240'			MOV	#HD5,R1		;FILE SPACE AVAILABLE

    204	000754					CALL	@(SP)+

    205	000756	012700 	000000G			MOV	#L$LA,R0	;GET ADDRESS OF SPACE AVAILABLE

    206	000762					CALL	WORDS

    207	000766	012701 	000323'			MOV	#HD6X,R1

    208	000772					CALL	@(SP)+		;OUTPUT END OF LINE

    209	000774	012700 	000000G			MOV	#L$LD,R0	;OUTPUT LOGICALLY DELETED SPACE

    210	001000	005720 				TST	(R0)+		;ONLY IF NON-ZERO

    211	001002	001002 				BNE	2$

    212	001004	005710 				TST	(R0)

    213	001006	001412 				BEQ	20$

    214	001010	012701 	000267'		2$:	MOV	#HD6,R1

    215	001014					CALL	@(SP)+

    216	001016	012700 	000000G			MOV	#L$LD,R0	;OUTPUT NON-ZERO DELETED SPACE

    217	001022					CALL	WORDS

    218	001026	012701 	000323'			MOV	#HD6X,R1

    219	001032					CALL	@(SP)+		;OUTPUT IT

    220	001034	012701 	000157'		20$:	MOV	#CRLF,R1	;END OF HEADER

    221	001040					CALL	@(SP)+

    222					;****	END OF HEADER

    223	001042	005003 				CLR	R3		;INIT PARTITION LIST OFFSET TO ZERO

    224	001044	016704 	000000G		21$:	MOV	$MNADR,R4	;GET ADDR OF MNT PARTITION LIST HEADS

    225	001050	060304 				ADD	R3,R4		;POINT R4 TO PROPER LIST HEAD

    226	001052	011401 			22$:	MOV	(R4),R1		;PUT VIRTUAL LOCN OF NEXT MNT ENTRY IN R1

    227	001054	001007 				BNE	23$		;BRANCH IF NOT AT END OF LIST

    228	001056	062703 	000002 			ADD	#2,R3		;UPDATE THE LIST OFFSET

    229	001062	020327 	000000C			CMP	R3,#<NU$PAR*2>-2  ;COMPARE WITH MAXIMUM

    230	001066	003766 				BLE	21$		;+++STAR IF NOT AT END - GET NEXT PARTITION LIST

    231	001070	000167 	000442 			JMP	90$		;+++STAR ELSE, END OF TABLE - JMP

    232	001074				23$:	CALL	$CVRL		;OBTAIN REAL ADDR OF THE MNT ENTRY

    233	001100	010004 				MOV	R0,R4		;COPY IT INTO R4

    234	001102	011067 	176674 			MOV	(R0),NXTMNT	;SAVE VIRTUAL LOCN OF NEXT MNT ENTRY

    235	001106	005760 	000002 			TST	T$HEAD+V$MEML(R0) ;+++STAR EXAMINE ASSOCIATED MODULE HEADER ADDR

    236	001112	001757 				BEQ	22$		;BRANCH IF SYMBOL IS LOGICALLY DELETED

    237	001114	032767 	000000G	000000G		BIT	#LE$SW,$SWTCH	;EPT LISTING DESIRED?

    238	001122	001403 				BEQ	24$		;BRANCH IF NOT

    239	001124	012701 	000340'			MOV	#MN1,R1		;IF TRUE, PROVIDE '** MODULE:'

    240	001130					CALL	@(SP)+

    241

    242	001132	012701 	000355'		24$:	MOV	#MN1X,R1

LIBLI	MACRO M1110  22-AUG-78 02:13  PAGE 4-4





    243	001136	012702 	000016'			MOV	#VBLOCK+2,R2	;+++STAR ADDR OF CMD BLOCK FOR $EDMSG

    244	001142	010412 				MOV	R4,(R2)		;+++STAR CALC ADDR

    245	001144	062712 	000007 			ADD	#T$CHAR+V$MEML,(R2) ;+++STAR   OF NAME

    246	001150	005042 				CLR	-(R2)		;+++STAR ZERO COUNT

    247	001152	116412 	000006 			MOVB	T$SLEN+V$MEML(R4),(R2) ;+++STAR GET NAME LENGTH

    248	001156					CALL	@(SP)+		;OUTPUT MODULE NAME

    249	001160	032767 	000000G	000000G		BIT	#FU$SW,$SWTCH	;FULL MODULE ID NEEDED?

    250	001166	001455 				BEQ	30$		;BRANCH IF NOT

    251	001170	010401 				MOV	R4,R1		;PUT ADDR OF MNT ENTRY IN R1

    252	001172	062701 	000002 			ADD	#T$HEAD+V$MEML,R1 ;+++STAR POINT R1 TO MODULE HEADER ADDR

    253	001176					CALL	$RDMH		;READ THE MODULE HEADER

    254	001202	103006 				BCC	25$

    255	001204	012701 				MOV	(PC)+,R1	;CAN'T READ MODULE HEADER

    256	001206	   000G	   000G			.BYTE	E$R10,S$V2

    257	001210	016002 	000000G			MOV	R$NAME(R0),R2	;PNT R2 TO FILE NAME

    258	001214	000167 	000000G			JMP	$ERMSG		;FATAL ERROR EXIT

    259

    260	001220	012701 	000361'		25$:	MOV	#MN2,R1

    261	001224					CALL	@(SP)+

    262	001226	012700 	000000G			MOV	#$MOSZ,R0

    263	001232					CALL	WORDS		;OUTPUT MODULE SIZE

    264					;****	OUTPUT TYPE DEPENDENT INFORMATION

    265	001236	012701 	000371'			MOV	#MN3,R1

    266	001242	012702 	000000G			MOV	#$MHDA,R2	;POINT TO ARGUMENTS

    267	001246					CALL	@(SP)+

    268	001250	012701 	000422'			MOV	#MN4A,R1	;+++STAR ASSUME MACRO

    269	001254	105767 	000000G			TSTB	L$TYP		;+++STAR IS IT MACRO

    270	001260	001011 				BNE	27$		;+++STAR BR IF YES

    271	001262	012701 	000407'			MOV	#MN4P,R1	;+++STAR POINT TO OUTPUT LINE

    272	001266	010205 				MOV	R2,R5		;+++STAR ADDR OF ID

    273	001270	012702 	000016'			MOV	#VBLOCK+2,R2	;+++STAR ADDR OF CMD BLOCK

    274	001274	010512 				MOV	R5,(R2)		;+++STAR ADDR OF ID

    275	001276	005212 				INC	(R2)		;+++STAR SKIP OVER CHAR COUNT

    276	001300	005042 				CLR	-(R2)		;+++STAR ZERO COUNT WORD

    277	001302	111512 				MOVB	(R5),(R2)	;+++STAR PUT CHAR COUNT IN BLOCK

    278	001304				27$:	CALL	@(SP)+

    279	001306	105767 	000000G			TSTB	$MHAT		;CHECK MODULE ATTRIBUTES

    280	001312	001403 				BEQ	30$		;BRANCH IF NONE PRESENT

    281	001314	012701 	000425'			MOV	#OBJATR,R1	;ONLY ATTRIBUTE IS 'SELECTIVE SEARCH'

    282	001320					CALL	@(SP)+		;ADD IT TO MODULE INFORMATION

    283	001322	012701 	000157'		30$:	MOV	#CRLF,R1

    284	001326					CALL	@(SP)+

    285					;****

    286	001330	032767 	000000G	000000G		BIT	#LE$SW,$SWTCH	;LIST ENTRY POINTS?

    287	001336	001645 				BEQ	22$		;BRANCH IF NO

    288	001340	012701 	000157'			MOV	#CRLF,R1

    289	001344					CALL	@(SP)+		;PUT OUT A BLANK LINE BEFORE EPT

    290	001346	012702 	000000G			MOV	#$EPBLK,R2	;GET PARAMETER BLOCK FOR ASSOCIATIVE SEARCH

    291	001352	016400 	000002 			MOV	T$HEAD+V$MEML(R4),R0 ;+++STAR PUT MODULE HEADER ADDR (VBN ...

    292	001356	016401 	000004 			MOV	T$HEAD+2+V$MEML(R4),R1 ;+++STAR ... AND OFFSET) IN R0-R1

    293	001362					CALL	$FINDC		;START CONTINUOUS ASSOCIATIVE SEARCH

    294	001366	103457 				BCS	50$		;GET NEXT MNT IF NOTHING FOUND

    295	001370	010367 	176404 			MOV	R3,SAVR3	;SAVE R3

    296	001374	005003 				CLR	R3		;R3 KEEPS NUMBER OF EPT'S IN OUTPUT LINE

    297	001376	012701 	000445'		35$:	MOV	#MN4,R1		;OUTPUT NAME

    298	001402	012702 	000016'			MOV	#VBLOCK+2,R2	;+++STAR ADDR OF CMD BLOCK

    299	001406	010012 				MOV	R0,(R2)		;+++STAR PUT ADDR OF NAME

LIBLI	MACRO M1110  22-AUG-78 02:13  PAGE 4-5





    300	001410	062712 	000007 			ADD	#T$CHAR+V$MEML,(R2) ;+++STAR   IN PARM BLOCK

    301	001414	005042 				CLR	-(R2)		;+++STAR ZERO CHAR CNT WORD

    302	001416	116012 	000006 			MOVB	T$SLEN+V$MEML(R0),(R2) ;+++STAR PUT CHAR COUNT IN CMD BLOCK

    303	001422					CALL	@(SP)+		;OUTPUT EPT NAME

    304	001424	012701 	000017 			MOV	#15.,R1		;++KM001 GET MAXIMUM NAME LENGTH

    305	001430	166701 	176360 			SUB	VBLOCK,R1	;++KM001 SUBTRACT ACTUAL NAME LENGTH

    306	001434	003410 				BLE	37$		;++KM001 BRANCH IF NAME NOT <15

    307	001436	012702 	000016'			MOV	#VBLOCK+2,R2	;++KM001 GET DESCRIPTOR ADDRESS

    308	001442	012712 	000475'			MOV	#BLANKS,(R2)	;++KM001 GET ADDRESS OF 14 BLANKS

    309	001446	010142 				MOV	R1,-(R2)	;++KM001 GET NUMBER OF BLANKS TO PRINT

    310	001450	012701 	000355'			MOV	#MN1X,R1	;++KM001 GET ADDR OF COMMAND STRING

    311	001454					CALL	@(SP)+		;++KM001 OUTPUT SPACES FOR EVEN COLUMNS

    312	001456	005203 			37$:	INC	R3		;INCREMENT EP'S PER LINE COUNT

    313	001460	022703 	000004 			CMP	#LINSIZ,R3	;CHECK FOR FULL LINE

    314	001464	001004 				BNE	38$		;BRANCH IF NOT

    315	001466	012701 	000157'			MOV	#CRLF,R1	;OUTPUT THE LINE

    316	001472					CALL	@(SP)+

    317	001474	005003 				CLR	R3		;AND CLEAR FLAG

    318	001476				38$:	CALL	$FINDN		;CONTINUE SEARCH

    319	001502	103335 				BCC	35$		;UNTIL NO MORE FOUND

    320	001504	012701 	000334'			MOV	#HD7,R1		;OUTPUT TWO CRLF'S

    321	001510	005703 				TST	R3		;UNLESS WE'RE ALREADY AT THE

    322									;START OF A LINE

    323	001512	001002 				BNE	40$

    324	001514	012701 	000157'			MOV	#CRLF,R1

    325	001520				40$:	CALL	@(SP)+		;OUTPUT A CR-LF

    326	001522	016703 	176252 			MOV	SAVR3,R3	;RESTORE R3

    327	001526	012704 	000002'		50$:	MOV	#NXTMNT,R4	;PNT R4 TO VIRTUAL LOCN OF NEXT MNT ENTRY

    328	001532	000167 	177314 			JMP	22$		;CONTINUE WITH NEXT MNT ENTRY

    329

    330	001536	012701 	000334'		90$:	MOV	#HD7,R1

    331	001542					CALL	@(SP)+		;OUTPUT A COUPLE CRLF'S TO FINISH

    332	001544	005726 				TST	(SP)+		;FLUSH CO-ROUTINE FROM STACK

    333	001546	032767 	000000G	000000G		BIT	#SP$SW,$SWTCH	;SPOOLING REQUESTED?

    334	001554	001076 				BNE	91$		;BRANCH IF /-SP

    335	001556					PRINT$	$LISPT		;SPOOL OUTPUT IF NEEDED

    336	001752	016700 	000000G		91$:	MOV	$LISPT,R0	;PUT ADDR OF LISTING FDB, ETC IN R0

    337

    338

    340

    341

    342	001756	001407 				BEQ	95$		;SKIP IF OUTPUT TO 'CMO' VIA QIO

    343

    344

    346

    347

    348	001760					CLOSE$	R0		;CLOSE LISTING FILE

    349	001764	005067 	000000G			CLR	$OPNFL		;INDICATE LIBRARY ONLY OPEN FILE

    350	001770	105767 	000000G			TSTB	$ATTFG		;CHECK THE TTY ATTACHED FLAG

    351	001774	001402 				BEQ	100$		;BRANCH TO LEAVE IF NOT ATTACHED

    352	001776				95$:	CALL	$TTYDT		;DETACH THE TELETYPE

    353	002002				100$:	RETURN			;AND EXIT

    354					;+

    355					;

    356					; THIS ROUTINE TAKES A DOUBLE PRECISION VALUE (# OF BYTES)

    357					; AND CONVERTS IT TO A STRING DISPLAYING THE VALUE (DIVIDING THE

    358					; VALUE BY 2 TO DISPLAY # OF WORDS)

LIBLI	MACRO M1110  22-AUG-78 02:13  PAGE 4-6





    359					;

    360					; INPUTS:

    361					;

    362					;	R0 = ADDRESS OF VALUE (IN ADDR AND ADDR+2)

    363					;

    364					; OUTPUTS:

    365					;

    366					;	R0,R1,R2  ARE LOST

    367					;

    368					;-

    369	002004				WORDS:	SAVRG			;SAVE R3-R5

    370	002010	012004 				MOV	(R0)+,R4

    371	002012	011005 				MOV	(R0),R5		;GET DOUBLE PRECISION VALUE

    372	002014					DIV	#20000.,R4	;SPLIT VALUE INTO TWO PARTS

    373	002024	016700 	000000G			MOV	$LIPTR,R0	;POINT R0 TO OUTPUT FDB, ETC

    374	002030	010401 				MOV	R4,R1		;GET HIGH ORDER VALUE

    375	002032	001412 				BEQ	10$		;DON'T OUTPUT IF ZERO

    376	002034	005002 				CLR	R2		;ZERO SUPPRESS

    377	002036					CALL	$CBDMG		;CONVERT VALUE

    378	002042	114046 				MOVB	-(R0),-(SP)	;SAVE LAST CHAR

    379	002044	010702 				MOV	PC,R2		;NON-ZERO VALUE TO ZERO SUPPRESS FLAG

    380	002046					CALL	10$		;GET LOW ORDER STRING

    381	002052	112660 	177773 			MOVB	(SP)+,-5(R0)	;RESET STORED DIGIT

    382	002056					RETURN

    383

    384	002060	006205 			10$:	ASR	R5		;DIVIDE IN HALF FOR WORDS

    385	002062	010501 				MOV	R5,R1

    386	002064					CALL	$CBDMG		;CONVERT VALUE

    387	002070	010067 	000000G			MOV	R0,$LIPTR	;RESTORE $LIPTR

    388	002074					RETURN

    389

    390

    391					;

    392					; LISOUT--LISTING OUTPUT CO-ROUTINE

    393					;

    394

    395	002076				LISOUT:	CALL	$OUT		;INIT MESSAGE OUTPUT ROUTINE

    396	002102				10$:	CALL	@(SP)+		;RETURN VIA CO-ROUTINE CALL

    397	002104					CALL	$OUT1		;CALL MESSAGE OUTPUT ROUTINE

    398	002110	000774 				BR	10$

    399

    400

    401

    402		000001 				.END

LIBLI	MACRO M1110  22-AUG-78 02:13  PAGE 4-7

SYMBOL TABLE



BLANKS  000475R  	FO.WRT= 000016   	G.LUNA= 000000   	MACSIZ= 000005   	PAGALI= 000011

CH.AND= 000001   	FU$SW = ****** GX	G.LUNU= 000002   	MACSTR  000470R  	PAR$$$= 000000

CRLF  = 000157R  	F.ACTL= 000076   	HD1     000020R  	MAXALI= 000011   	PF$GBL= 000020

CTLGRP= 000120   	F.ALOC= 000040   	HD2     000060R  	MHD$MX= 000111   	PF$OVL= 000004

EOM$MX= 000007   	F.BBFS= 000062   	HD2A    000121R  	MH$CPY= 000004   	PF$PIC= 000001

E$OMAD  000003      012	F.BDB = 000070   	HD2AA   000054R  	MH$GTX= 000006   	PF$RD = 000200

E$OMER  000001      012	F.BGBC= 000057   	HD3     000162R  	MH$LNM= 000001   	PF$REL= 000010

E$OMPS  000002      012	F.BKDN= 000026   	HD3X  = 000164R  	MH$MHD= 000000   	PF$SHR= 000040

E$R10 = ****** GX	F.BKDS= 000020   	HD4     000235R  	MH$MTC= 000005   	PF$UNI= 000002

E$R11 = ****** GX	F.BKEF= 000050   	HD5     000240R  	MH$SRC= 000002   	PF$WRT= 000001

FA.APD= 000100   	F.BKP1= 000051   	HD6     000267R  	MH$TTL= 000003   	PF$XEQ= 000100

FA.CRE= 000010   	F.BKST= 000024   	HD6X    000323R  	MN1     000340R  	PSD$MX= 000031

FA.DLK= 001000   	F.BKVB= 000064   	HD7     000334R  	MN1X    000355R  	P$SALI  000002      006

FA.ENB= 100000   	F.CHR = 000075   	IO.ACE= 007400   	MN2     000361R  	P$SALO  000005      006

FA.EXC= 002000   	F.CNTG= 000034   	IO.ACR= 006400   	MN3     000371R  	P$SFL0  000003      006

FA.EXT= 000004   	F.DFNB= 000046   	IO.ACW= 007000   	MN4     000445R  	P$SFL1  000004      006

FA.NSP= 000100   	F.DSPT= 000044   	IO.APC= 014000   	MN4A    000422R  	P$SNAM  000012      006

FA.POS= 010000   	F.DVNM= 000134   	IO.APV= 014010   	MN4P    000407R  	P$SNLN  000011      006

FA.RD = 000001   	F.EFBK= 000010   	IO.ATT= 001400   	MTC$MX= 000213   	Q$$CMO= 000000

FA.RWD= 004000   	F.EFN = 000050   	IO.CLN= 003400   	M$HDMS  000003      003	R$MXLN= 001000

FA.SEQ= 040000   	F.EOBB= 000032   	IO.CRE= 012000   	M$HDNM  000005      003	R$NAME= ****** GX

FA.SHR= 000040   	F.ERR = 000052   	IO.DAC= 010000   	M$HDSL  000002      003	R$$11M= 000000

FA.TMP= 000020   	F.FACC= 000043   	IO.DEL= 012400   	M$HDST  000001      003	R.FIX = 000001

FA.WCK= 020000   	F.FFBY= 000014   	IO.DET= 002000   	M$TCPN  000002      004	R.SEQ = 000003

FA.WRT= 000002   	F.FNAM= 000110   	IO.ENA= 006000   	NB.DEV= 000200   	R.VAR = 000002

FD.BLK= 000010   	F.FNB = 000102   	IO.EXT= 011400   	NB.DIR= 000100   	SAVR3   000000R

FD.CCL= 000002   	F.FTYP= 000116   	IO.FNA= 004400   	NB.NAM= 000004   	SDF$MX= 000032

FD.COM= 020000   	F.FVER= 000120   	IO.KIL= 000012   	NB.SD1= 000400   	SF$DEF= 000002

FD.CR = 000002   	F.HIBK= 000004   	IO.LOV= 001010   	NB.SD2= 001000   	SF$REL= 000010

FD.DIR= 000010   	F.LUN = 000042   	IO.LTK= 000050   	NB.SNM= 000040   	SF$UNI= 000004

FD.FTN= 000001   	F.MBCT= 000054   	IO.RAT= 013000   	NB.STP= 000020   	SF$VAL= 000020

FD.F11= 040000   	F.MBC1= 000055   	IO.RDN= 000022   	NB.SVR= 000010   	SF$WK = 000001

FD.INS= 000010   	F.MBFG= 000056   	IO.RLB= 001000   	NB.TYP= 000002   	SP$SW = ****** GX

FD.ISP= 002000   	F.NRBD= 000024   	IO.RNA= 005400   	NB.VER= 000001   	SRF$MX= 000025

FD.MNT= 100000   	F.NREC= 000030   	IO.RTK= 000060   	NU$PAR= ****** GX	STAGRP= 000000

FD.OSP= 004000   	F.OVBS= 000030   	IO.RVB= 010400   	NXTMNT  000002R  	STOGRP= 000024

FD.PLC= 000004   	F.RACC= 000016   	IO.SET= 000030   	N.DID = 000024   	S$DNAM  000013      011

FD.PRN= 000004   	F.RATT= 000001   	IO.ULK= 005000   	N.DVNM= 000032   	S$DNLN  000012      011

FD.PSE= 010000   	F.RCNM= 000034   	IO.UNL= 000042   	N.FID = 000000   	S$DPSI  000005      011

FD.RAH= 000001   	F.RCTL= 000017   	IO.WAT= 013400   	N.FNAM= 000006   	S$DVAL  000006      011

FD.RAN= 000002   	F.RSIZ= 000002   	IO.WLB= 000400   	N.FTYP= 000014   	S$MXLN= 000017

FD.REC= 000001   	F.RTYP= 000000   	IO.WVB= 011000   	N.FVER= 000016   	S$RNAM  000006      010

FD.RWM= 000001   	F.SEQN= 000100   	IQ.Q  = 000002   	N.NEXT= 000022   	S$RNLN  000005      010

FD.SDI= 000020   	F.SPDV= 000072   	IQ.S  = 000004   	N.STAT= 000020   	S$SDTY  000002      007

FD.SQD= 000040   	F.SPUN= 000074   	IQ.UMD= 000004   	N.UNIT= 000034   	S$SFL0  000003      007

FD.TTY= 000004   	F.STBK= 000036   	IQ.X  = 000001   	OBJATR  000425R  	S$SFL1  000004      007

FD.WBH= 000002   	F.UNIT= 000136   	LE$SW = ****** GX	OBJSIZ= 000015   	S$V2  = ****** GX

FF.CHR= 000005   	F.URBD= 000020   	LINSIZ= 000004   	OBJSTR  000453R  	S$$LIB= 000000

FF.NV = 000003   	F.VBN = 000064   	LISOUT  002076R  	OBJ$SL= 000000   	S.FATT= 000016

FF.POE= 000002   	F.VBSZ= 000060   	LISPT = ****** GX	OB$DBG= 000004   	S.FDB = 000140

FF.RWD= 000001   	GS$ARG= 000003   	L$DAT = ****** GX	OB$EOM= 000003   	S.FNAM= 000006

FF.RWF= 000006   	GS$EPM= 000002   	L$EI  = ****** GX	OB$GSD= 000001   	S.FNB = 000036

FF.SPC= 000004   	GS$PSC= 000000   	L$LA  = ****** GX	OB$HDR= 000000   	S.FNBW= 000017

FO.APD= 000106   	GS$SYM= 000001   	L$LD  = ****** GX	OB$LNK= 000005   	S.FNTY= 000004

FO.MFY= 000002   	G$SDTY  000001      005	L$MI  = ****** GX	OB$TIR= 000002   	S.FTYP= 000002

FO.RD = 000001   	G.LUCW= 000004   	L$TYP = ****** GX	OPRGRP= 000062   	S.NFEN= 000020

FO.UPD= 000006   	G.LUFB= 000003   	L$VER = ****** GX	O$BJTY  000000      002	TIRMAX= 000121

LIBLI	MACRO M1110  22-AUG-78 02:13  PAGE 4-8

SYMBOL TABLE



TYPASC  000004R  	$ATTFG= ****** GX	$LDIV = ****** GX	$OPEN = ****** GX	$TTYDT= ****** GX

T$CHAR= 000005   	$CBDMG= ****** GX	$LIBPT= ****** GX	$OPNFL= ****** GX	$$    = 000001

T$HEAD= 000000   	$CMOLN= ****** GX	$LIPTR= ****** GX	$OUT  = ****** GX	$$S   = 000005

T$SLEN= 000004   	$CVRL = ****** GX	$LIS    000514RG 	$OUT1 = ****** GX	$$$OST= 000014

T$SMBL= 000004   	$DSPAT= ****** GX	$LISPT= ****** GX	$RDHD = ****** GX	$$0   = 000002

VBLOCK  000014R  	$EPBLK= ****** GX	$MHAT = ****** GX	$RDMH = ****** GX	$$1   = 000002

V$MEML= 000002   	$ERMSG= ****** GX	$MHDA = ****** GX	$SAVRG= ****** GX	.CLOSE= ****** G

WORDS   002004R  	$FINDC= ****** GX	$MNADR= ****** GX	$SWTCH= ****** GX	...GBL= 000000

$     = 000000      012	$FINDN= ****** GX	$MOSZ = ****** GX	$TTYAT= ****** GX	...TPC= 000140



. ABS.	000000	   000

      	002112	   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

ERRORS DETECTED:  0



VIRTUAL MEMORY USED:  4200 WORDS  ( 17 PAGES)

DYNAMIC MEMORY:  4884 WORDS  ( 18 PAGES)

ELAPSED TIME:  00:00:21

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

