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.

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





      1						.TITLE	LIBDLM

      2						.IDENT	/03/

      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 03

     23					;

     24					; WRITTEN BY:

     25					;	GEORGE W. BERRY

     26					;

     27					; MODIFIED BY:

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

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

     30					;	THOMAS J MILLER 24-JUN-75  (CHANGE TO UPDATE END OF FILE)

     31					;

     32					;

     33

     34					;

     35					; MACRO LIBRARY CALLS

     36					;

     37

     38						.MCALL	FDOFF$,PUT$

     39	000000					FDOFF$	DEF$L

     40

     41					;+

     42					;

     43					; **-$DELM- DELETE SPECIFIED MODULE

     44					;

     45					; THIS ROUTINE DELETES A MODULE AND ALL OF ITS

     46					; EPT ENTRIES.  THE ROUTINE IS CALLED BY $DEL

     47					; AND $INS (REPLACE).

     48					;

     49					; INPUTS:

     50					;

     51					;	R2 = MODULE HEADER ADDRESS POINTER

     52					;

     53					; OUTPUTS:

     54					;

     55					;	NONE

     56					;

     57					;-

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





     58	000000				$DELM::	SAVRG			;SAVE R3 - R5

     59	000004	010204 				MOV	R2,R4		;AND SAVE IT FOR NOW

     60	000006	012200 				MOV	(R2)+,R0	;SET UP KEY FOR ASSOCIATIVE SEARCH

     61	000010	011201 				MOV	(R2),R1

     62	000012	012702 	000000G			MOV	#$EPBLK,R2	;GET ADDRESS OF EPT DESCRIPTOR

     63	000016					CALL	$FINDC		;SEARCH FOR EPT ENTRIES

     64	000022	103413 				BCS	40$		;BRANCH IF NONE FOUND

     65

     66	000024	005060 	000002 		30$:	CLR	T$HEAD+V$MEML(R0) ;+++STAR LOGICALLY DELETE THE GST ENTRY ...

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

     68	000034					CALL	$WRMPG		;MARK THE PAGE DIRTY

     69	000040	005267 	000000G			INC	L$EA		;ONE MORE EPT ENTRY AVAILABLE

     70	000044					CALL	$FINDN		;CONTINUE SEARCH

     71	000050	103365 				BCC	30$		;BRANCH IF ANOTHER ENTRY FOUND

     72

     73	000052	010401 			40$:	MOV	R4,R1		;GET ADDRESS OF MODULE HEADER

     74	000054					CALL	$RDMH		;READ MODULE HEADER

     75	000060	103003 				BCC	50$		;BRANCH IF READ OK

     76	000062	012701 				MOV	(PC)+,R1	;FATAL READ ERROR

     77	000064	   000G	   000G			.BYTE	E$R10,S$V2

     78	000066	000466 				BR	ERRNM

     79

     80	000070	105267 	000000G		50$:	INCB	$MHST		;MARK MODULE DELETED

     81	000074	011401 				MOV	(R4),R1		;GET VBN OF CURRENT MODULE HEADER

     82	000076	016402 	000002 			MOV	2(R4),R2	; " BYTE-IN-BLOCK " " " "

     83	000102					CALL	$NEXT		;COMPUTE ADDRESS OF NEXT HEADER

     84	000106	012703 	000000G			MOV	#L$NX,R3

     85	000112	020123 				CMP	R1,(R3)+	;ARE WE DELETING THE LAST MODULE IN FILE?

     86	000114	001013 				BNE	60$		;BRANCH IF NOT

     87	000116	020213 				CMP	R2,(R3)

     88	000120	001011 				BNE	60$		;BRANCH IF NOT

     89	000122	016413 	000002 			MOV	2(R4),(R3)	;FIX UP L$NX

     90	000126	011367 	000014G			MOV	(R3),LIBPT+F.FFBY ;UPDATE EOF

     91	000132	011443 				MOV	(R4),-(R3)

     92	000134	011367 	000012G			MOV	(R3),LIBPT+F.EFBK+2 ;UPDATE EOF

     93	000140	005004 				CLR	R4		;INDICATE REWRITE OF MODULE HEADER NOT REQUIRED

     94	000142	000402 				BR	65$		;AND ADD MODULE SIZE INTO L$LA

     95

     96	000144	012703 	000004G		60$:	MOV	#L$LD+4,R3	;ADD SIZE INTO LOGICALLY DELETED SPACE

     97

     98	000150	066743 	000002G		65$:	ADD	$MOSZ+2,-(R3)	;RECOMPUTES SIZE IN BYTES

     99	000154	005543 				ADC	-(R3)		;(DOUBLE PRECISION)

    100	000156	066713 	000000G			ADD	$MOSZ,(R3)

    101	000162	005704 				TST	R4		;REWRITE MODULE HEADER?

    102	000164	001421 				BEQ	70$		;IF EQ NO

    103

    104	000166	005001 				CLR	R1		;REWRITE MODULE HEADER

    105	000170	012402 				MOV	(R4)+,R2	;GET BLOCK #

    106	000172	011403 				MOV	(R4),R3		;GET BYTE IN BLOCK

    107	000174					CALL	.POINT		;POSITION FILE

    108	000200	103417 				BCS	PERR

    109	000202	105060 	000001 			CLRB	F.RATT(R0)	;++KM001 CAN CROSS BLOCK BOUNDRIES

    110	000206					PUT$	R0,#$MHST,F.NRBD(R0) ;WRITE OUT HEADER

    111	000226	103401 				BCS	WERR		;BRANCH IF WRITE ERROR

    112	000230				70$:	RETURN

    113

    114

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





    115					;

    116					; ERROR EXIT

    117					;

    118	000232	012701 			WERR:	MOV	(PC)+,R1	;FILE WRITE ERROR

    119	000234	   000G	   000G			.BYTE	E$R02,S$V2

    120	000236	000402 				BR	ERRNM

    121

    122	000240	012701 			PERR:	MOV	(PC)+,R1	;FILE POSITIONING ERROR

    123	000242	   000G	   000G			.BYTE	E$R14,S$V2

    124	000244	016002 	000000G		ERRNM:	MOV	R$NAME(R0),R2	;INDICATE FILE NAME

    125	000250	000167 	000000G		ERROR:	JMP	$ERMSG		;FATAL ERROR EXIT

    126

    127

    128		000001 				.END

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

SYMBOL TABLE



CTLGRP= 000120   	F.HIBK= 000004   	MH$MHD= 000000   	PF$SHR= 000040   	S$$LIB= 000000

EOM$MX= 000007   	F.LUN = 000042   	MH$MTC= 000005   	PF$UNI= 000002   	S.FATT= 000016

ERRNM   000244R  	F.MBCT= 000054   	MH$SRC= 000002   	PF$WRT= 000001   	S.FDB = 000140

ERROR   000250R  	F.MBC1= 000055   	MH$TTL= 000003   	PF$XEQ= 000100   	S.FNAM= 000006

E$OMAD  000003      012	F.MBFG= 000056   	MTC$MX= 000213   	PSD$MX= 000031   	S.FNB = 000036

E$OMER  000001      012	F.NRBD= 000024   	M$HDMS  000003      003	P$SALI  000002      006	S.FNBW= 000017

E$OMPS  000002      012	F.NREC= 000030   	M$HDNM  000005      003	P$SALO  000005      006	S.FNTY= 000004

E$R02 = ****** GX	F.OVBS= 000030   	M$HDSL  000002      003	P$SFL0  000003      006	S.FTYP= 000002

E$R10 = ****** GX	F.RACC= 000016   	M$HDST  000001      003	P$SFL1  000004      006	S.NFEN= 000020

E$R14 = ****** GX	F.RATT= 000001   	M$TCPN  000002      004	P$SNAM  000012      006	TIRMAX= 000121

F.ACTL= 000076   	F.RCNM= 000034   	N.DID = 000024   	P$SNLN  000011      006	T$CHAR= 000005

F.ALOC= 000040   	F.RCTL= 000017   	N.DVNM= 000032   	Q$$CMO= 000000   	T$HEAD= 000000

F.BBFS= 000062   	F.RSIZ= 000002   	N.FID = 000000   	R$MXLN= 001000   	T$SLEN= 000004

F.BDB = 000070   	F.RTYP= 000000   	N.FNAM= 000006   	R$NAME= ****** GX	T$SMBL= 000004

F.BGBC= 000057   	F.SEQN= 000100   	N.FTYP= 000014   	R$$11M= 000000   	V$MEML= 000002

F.BKDN= 000026   	F.SPDV= 000072   	N.FVER= 000016   	SDF$MX= 000032   	WERR    000232R

F.BKDS= 000020   	F.SPUN= 000074   	N.NEXT= 000022   	SF$DEF= 000002   	$     = 000000      012

F.BKEF= 000050   	F.STBK= 000036   	N.STAT= 000020   	SF$REL= 000010   	$DELM   000000RG

F.BKP1= 000051   	F.UNIT= 000136   	N.UNIT= 000034   	SF$UNI= 000004   	$EPBLK= ****** GX

F.BKST= 000024   	F.URBD= 000020   	OBJ$SL= 000000   	SF$VAL= 000020   	$ERMSG= ****** GX

F.BKVB= 000064   	F.VBN = 000064   	OB$DBG= 000004   	SF$WK = 000001   	$FINDC= ****** GX

F.CHR = 000075   	F.VBSZ= 000060   	OB$EOM= 000003   	SRF$MX= 000025   	$FINDN= ****** GX

F.CNTG= 000034   	GS$ARG= 000003   	OB$GSD= 000001   	STAGRP= 000000   	$MHST = ****** GX

F.DFNB= 000046   	GS$EPM= 000002   	OB$HDR= 000000   	STOGRP= 000024   	$MOSZ = ****** GX

F.DSPT= 000044   	GS$PSC= 000000   	OB$LNK= 000005   	S$DNAM  000013      011	$NEXT = ****** GX

F.DVNM= 000134   	GS$SYM= 000001   	OB$TIR= 000002   	S$DNLN  000012      011	$RDMH = ****** GX

F.EFBK= 000010   	G$SDTY  000001      005	OPRGRP= 000062   	S$DPSI  000005      011	$SAVRG= ****** GX

F.EFN = 000050   	LIBPT = ****** GX	O$BJTY  000000      002	S$DVAL  000006      011	$WRMPG= ****** GX

F.EOBB= 000032   	L$EA  = ****** GX	PAGALI= 000011   	S$MXLN= 000017   	$$    = 000001

F.ERR = 000052   	L$LD  = ****** GX	PAR$$$= 000000   	S$RNAM  000006      010	$$S   = 000005

F.FACC= 000043   	L$NX  = ****** GX	PERR    000240R  	S$RNLN  000005      010	$$0   = 000002

F.FFBY= 000014   	MAXALI= 000011   	PF$GBL= 000020   	S$SDTY  000002      007	$$1   = 000002

F.FNAM= 000110   	MHD$MX= 000111   	PF$OVL= 000004   	S$SFL0  000003      007	.POINT= ****** GX

F.FNB = 000102   	MH$CPY= 000004   	PF$PIC= 000001   	S$SFL1  000004      007	.PUT  = ****** G

F.FTYP= 000116   	MH$GTX= 000006   	PF$RD = 000200   	S$V2  = ****** GX	...TPC= 000140

F.FVER= 000120   	MH$LNM= 000001   	PF$REL= 000010



. ABS.	000000	   000

      	000254	   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:  2270 WORDS  ( 9 PAGES)

DYNAMIC MEMORY:  2772 WORDS  ( 10 PAGES)

ELAPSED TIME:  00:00:12

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

