FORMAT	MACRO M1110  22-AUG-78 02:10

TABLE OF CONTENTS



     1-  300	OBJECT LANGUAGE DEFS

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





    100						.TITLE	FORMAT

    200						.IDENT	/X0300/

    300						.SBTTL	OBJECT LANGUAGE DEFS

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

LIBDL	MACRO M1110  22-AUG-78 02:10  PAGE 4





    100						.TITLE	LIBDL

    200						.IDENT	/04/

    300

    400					; COPYRIGHT (C) 1976, 1977

    500					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

    600					;

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

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

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

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

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

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

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

   1400					;

   1500					; THE INFORMATION IN THIS SOFTWARE  IS  SUBJECT TO CHANGE WITHOUT

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

   1700					; EQUIPMENT CORPORATION.

   1800					;

   1900					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS

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

   2100					;

   2200					; VERSION 04

   2300					;

   2400					; WRITTEN BY:

   2500					;	GEORGE W. BERRY

   2600					;

   2700					; MODIFIED BY:

   2800					;	C.A. D'ELIA	08-MAY-74

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

   3000					;	THOMAS J. MILLER 07-NOV-74

   3100					;	H.B. BOSWELL	28-JUL-76	STAR

   3200					;

   3300					;

   3400

   3500

   3600					;

   3700					; MACRO LIBRARY CALLS

   3800					;

   3900

   4000						.MCALL	PUT$

   4100

   4200					;

   4300					; DELETION MESSAGE

   4400					;

   4500

   4600	000000	   045 	   116 	   115 	DMD:	.ASCIZ	/%NMODULES DELETED:%N/

	000003	   117 	   104 	   125

	000006	   114 	   105 	   123

	000011	   040 	   104 	   105

	000014	   114 	   105 	   124

	000017	   105 	   104 	   072

	000022	   045 	   116 	   000

   4700	000025	   045 	   116 	   107 	DGD:	.ASCIZ	/%NGLOBAL SYMBOLS DELETED:%N/ ;+++STAR

	000030	   114 	   117 	   102

	000033	   101 	   114 	   040

	000036	   123 	   131 	   115

	000041	   102 	   117 	   114

LIBDL	MACRO M1110  22-AUG-78 02:10  PAGE 4-1





	000044	   123 	   040 	   104

	000047	   105 	   114 	   105

	000052	   124 	   105 	   104

	000055	   072 	   045 	   116

	000060	   000

   4800	000061	   045 	   126 	   101 	DNAME:	.ASCIZ	/%VA%N/		;+++STAR

	000064	   045 	   116 	   000

   4900						.EVEN

   5000	000070				VBLOCK:	.BLKW	2		;+++STAR CMD BLOCK FOR $EDMSG

   5100

   5200

   5300					;+

   5400					;

   5500					; **-$DEL- DELETE FUNCTION

   5600					;

   5700					; THIS ROUTINE DELETES NAMED MODULES FROM THE LIBRARY.

   5800					;

   5900					; INPUTS:

   6000					;

   6100					;+++STAR MODULE NAMES ARE STORED IN '$DMN' AS BYTE COUNT FOLLOWED

   6200					;+++STAR BY 'N' ASCII CHARS, TERMINATED BY A BYTE OF ZERO.

   6300					;

   6400					; OUTPUTS:

   6500					;

   6600					;	NONE

   6700					;

   6800					;-

   6900

   7000	000074				$DEL::	SAVRG			;SAVE R3-R5

   7100	000100	012705 	000000G			MOV	#$DMN,R5	;SET UP POINTER TO NAMES TO DELETE

   7200	000104	012701 	000000G			MOV	#FO.UPD,R1	;SPECIFY OPEN FOR UPDATE

   7300	000110					CALL	$RDHD		;READ HEADER, EPT AND MNT

   7400

   7500

   8200

   8300	000114	005000 				CLR	R0		;OUTPUT TO CMD OUTPUT

   8400

   8500

   8700

   8800

   8900	000116					CALL	$OUT		;INIT OUTPUT ROUTINE

   9000	000122	105715 				TSTB	(R5)		;+++STAR CHECK FOR ANY /DE

   9100	000124	001446 				BEQ	DG		;+++STAR BRANCH IF NONE

   9200	000126	012701 	000000'			MOV	#DMD,R1		;SEND INITIAL MESSAGE

   9300	000132	005002 				CLR	R2

   9400	000134				5$:	CALL	$OUT1

   9500	000140				10$:

   9600	000140	105715 				TSTB	(R5)		;+++STAR ANY MORE NAMES

   9700	000142	001437 				BEQ	DG		;+++STAR BR IF NO

   9800	000144	010500 				MOV	R5,R0		;+++STAR SET UP FOR $FINDA

   9900	000146	012702 	000000G			MOV	#$MNBLK,R2

  10000	000152					CALL	$FINDA		;FIND THE NAMED MODULE

  10100	000156	103003 				BCC	20$		;BRANCH IF MODULE FOUND

  10200	000160	012701 				MOV	(PC)+,R1	;CAN'T FIND MODULE

  10300	000162	   000G	   000G			.BYTE	E$R18,S$V2

  10400	000164	000470 				BR	ERR.0

  10500

LIBDL	MACRO M1110  22-AUG-78 02:10  PAGE 4-2





  10600	000166	052767 	000000G	000002G	20$:	BIS	#LB$DTY,$SWTCH+2 ;INDICATE MODIFICATION

  10700	000174	062700 	000004 			ADD	#T$HEAD+2+V$MEML,R0 ;+++STAR POINT R0 AT BYTE IN BLOCK

  10800	000200	011046 				MOV	(R0),-(SP)	;SAVE BLOCK OFFSET POINTER ...

  10900	000202	014046 				MOV	-(R0),-(SP)	;... AND VBN OF ASSOCIATED MODULE

  11000	000204	010602 				MOV	SP,R2		;POINT R2 TO THE INFORMATION

  11100	000206	005267 	000000G			INC	L$MA		;INCREMENT MNT'S AVAILABLE COUNT

  11200	000212	005020 				CLR	(R0)+		;LOGICALLY DELETE THE MNT ENTRY ...

  11300	000214	005010 				CLR	(R0)		;... BY CLEARING IT'S MODULE ADDRESS

  11400	000216					CALL	$WRMPG		;MARK THE PAGE DIRTY

  11500	000222					CALL	$DELM		;DELETE THE MODULE

  11600	000226	022626 				CMP	(SP)+,(SP)+	;CLEAN THE STACK

  11700	000230					CALL	$WTHD		;REWRITE FILE HEADER, EPT, MNT

  11800	000234					CALL	MSGUPD		;+++STAR WRITE OUT DELETED NAME AND UPDATE R5

  11900	000240	000735 				BR	5$

  12000

  12100	000242				DG:

  12200	000242	005205 				INC	R5		;+++STAR SKIP ZERO END FLAG

  12300	000244	105715 				TSTB	(R5)		;+++STAR ANY GLOBAL NAMES TO DELETE

  12400	000246	001464 				BEQ	EXIT		;BRANCH IF NONE

  12500	000250	012701 	000025'			MOV	#DGD,R1

  12600	000254	005002 				CLR	R2

  12700	000256				5$:	CALL	$OUT1		;"ENTRY POINTS DELETED:"

  12800	000262				10$:

  12900	000262	105715 				TSTB	(R5)		;+++STAR ANY MORE

  13000	000264	001455 				BEQ	EXIT		;EXIT IF END OF LIST

  13100	000266	010500 				MOV	R5,R0		;+++STAR SET UP FOR $FINDA

  13200	000270	012702 	000000G			MOV	#$EPBLK,R2	;GET EPT DESCRIPTOR

  13300	000274					CALL	$FINDA		;FIND ENTRY POINT

  13400	000300	103420 				BCS	20$		;BRANCH IF NOT FOUND

  13500

  13600	000302	052767 	000000G	000002G		BIS	#LB$DTY,$SWTCH+2 ;INDICATE MODIFICATION

  13700	000310	005060 	000002 			CLR	T$HEAD+V$MEML(R0) ;+++STAR LOGICALLY DELETE THE GST ENTRY ...

  13800	000314	005060 	000004 			CLR	T$HEAD+2+V$MEML(R0) ;+++STAR ... BY CLEARING ITS MODULE ADDRESS

  13900	000320					CALL	$WRMPG		;MARK THE PAGE DIRTY

  14000	000324	005267 	000000G			INC	L$EA		;ONE MORE EP SLOT AVAILABLE

  14100	000330					CALL	$WTHD		;REWRITE FILE HEADER

  14200	000334					CALL	MSGUPD		;+++STAR PRINT DELETED NAME AND UPDATE R5

  14300	000340	000746 				BR	5$		;CONTINUE DELETE

  14400

  14500	000342	012701 			20$:	MOV	(PC)+,R1

  14600	000344	   000G	   000G			.BYTE	E$R22,S$V2

  14700	000346				ERR.0:

  14800	000346	012702 	000072'			MOV	#VBLOCK+2,R2	;+++STAR GET PARM BLOCK ADDR

  14900	000352	010512 				MOV	R5,(R2)		;+++STAR PUT ADDR OF SYMBOL IN BLOCK

  15000	000354	005212 				INC	(R2)		;+++STAR SKIP OVER COUNT

  15100	000356	005042 				CLR	-(R2)		;+++STAR CLEAR OUT THE COUNT

  15200	000360	111512 				MOVB	(R5),(R2)	;+++STAR MOVE IN THE LENGTH OF THE NAME

  15300	000362	000167 	000000G		ERROR:	JMP	$ERMSG		;FATAL ERROR EXIT

  15400

  15500					;

  15600					; ROUTINE TO OUTPUT DELETED NAME AND UPDATE R5

  15700					;

  15800

  15900	000366				MSGUPD:

  16000	000366	012702 	000070'			MOV	#VBLOCK,R2	;+++STAR ADDR OF CMD BLOCK

  16100	000372	111512 				MOVB	(R5),(R2)	;PUT COUNT IN CMD BLOCK

  16200	000374	010562 	000002 			MOV	R5,2(R2)	;+++STAR PUT ADDR OF NAME IN BLOCK

LIBDL	MACRO M1110  22-AUG-78 02:10  PAGE 4-3





  16300	000400	005262 	000002 			INC	2(R2)		;+++STAR SKIP COUNT

  16400	000404	012701 	000061'			MOV	#DNAME,R1	;+++STAR ADDR OF CMD STRING

  16500	000410	111504 				MOVB	(R5),R4		;+++STAR GET LENGTH

  16600	000412	060405 				ADD	R4,R5		;+++STAR MOVE R5 TO NEXT NAME (THIS IS AN ADD BYTE)

  16700	000414	005205 				INC	R5		;+++STAR ADD 1 FOR COUNT

  16800	000416					RETURN			;+++STAR

  16900

  17000	000420	052767 	000000G	000002G	EXIT:	BIS	#LB$DTY,$SWTCH+2 ;SET DIRTY FLAG TO INSURE HEADER WILL

  17100									 ;BE REWRITTEN AFTER L$LA IS RECOMPUTED

  17200	000426					RETURN

  17300

  17400

  17500		000001 				.END

LIBDL	MACRO M1110  22-AUG-78 02:10  PAGE 4-4

SYMBOL TABLE



CTLGRP= 000120   	MAXALI= 000011   	OPRGRP= 000062   	SF$DEF= 000002   	T$SLEN= 000004

DG      000242R  	MHD$MX= 000111   	O$BJTY  000000      002	SF$REL= 000010   	T$SMBL= 000004

DGD     000025R  	MH$CPY= 000004   	PAGALI= 000011   	SF$UNI= 000004   	VBLOCK  000070R

DMD     000000R  	MH$GTX= 000006   	PF$GBL= 000020   	SF$VAL= 000020   	V$MEML= 000002

DNAME   000061R  	MH$LNM= 000001   	PF$OVL= 000004   	SF$WK = 000001   	$     = 000000      012

EOM$MX= 000007   	MH$MHD= 000000   	PF$PIC= 000001   	SRF$MX= 000025   	$DEL    000074RG

ERROR   000362R  	MH$MTC= 000005   	PF$RD = 000200   	STAGRP= 000000   	$DELM = ****** GX

ERR.0   000346R  	MH$SRC= 000002   	PF$REL= 000010   	STOGRP= 000024   	$DMN  = ****** GX

EXIT    000420R  	MH$TTL= 000003   	PF$SHR= 000040   	S$DNAM  000013      011	$EPBLK= ****** GX

E$OMAD  000003      012	MSGUPD  000366R  	PF$UNI= 000002   	S$DNLN  000012      011	$ERMSG= ****** GX

E$OMER  000001      012	MTC$MX= 000213   	PF$WRT= 000001   	S$DPSI  000005      011	$FINDA= ****** GX

E$OMPS  000002      012	M$HDMS  000003      003	PF$XEQ= 000100   	S$DVAL  000006      011	$MNBLK= ****** GX

E$R18 = ****** GX	M$HDNM  000005      003	PSD$MX= 000031   	S$MXLN= 000017   	$OUT  = ****** GX

E$R22 = ****** GX	M$HDSL  000002      003	P$SALI  000002      006	S$RNAM  000006      010	$OUT1 = ****** GX

FO.UPD= ****** GX	M$HDST  000001      003	P$SALO  000005      006	S$RNLN  000005      010	$RDHD = ****** GX

GS$ARG= 000003   	M$TCPN  000002      004	P$SFL0  000003      006	S$SDTY  000002      007	$SAVRG= ****** GX

GS$EPM= 000002   	OBJ$SL= 000000   	P$SFL1  000004      006	S$SFL0  000003      007	$SWTCH= ****** GX

GS$PSC= 000000   	OB$DBG= 000004   	P$SNAM  000012      006	S$SFL1  000004      007	$WRMPG= ****** GX

GS$SYM= 000001   	OB$EOM= 000003   	P$SNLN  000011      006	S$V2  = ****** GX	$WTHD = ****** GX

G$SDTY  000001      005	OB$GSD= 000001   	Q$$CMO= 000000   	S$$LIB= 000000   	$$    = 000001

LB$DTY= ****** GX	OB$HDR= 000000   	R$MXLN= 001000   	TIRMAX= 000121   	$$S   = 000005

L$EA  = ****** GX	OB$LNK= 000005   	R$$11M= 000000   	T$CHAR= 000005   	$$0   = 000002

L$MA  = ****** GX	OB$TIR= 000002   	SDF$MX= 000032   	T$HEAD= 000000   	$$1   = 000002



. ABS.	000000	   000

      	000430	   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:  1240 WORDS  ( 5 PAGES)

DYNAMIC MEMORY:  2772 WORDS  ( 10 PAGES)

ELAPSED TIME:  00:00:08

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

