Google
 

Trailing-Edge - PDP-10 Archives - TOPS-20_V6.1_DECnetSrc_7-23-85 - mcb/utilities/lbrlib.lst
There is 1 other file named lbrlib.lst in the archive. Click here to see a list.
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page   1
								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (1)

;   0001  0	MODULE LBRLIB (					!Library manipulation
;   0002  0			IDENT = '001030',
;   0003  0			LANGUAGE (BLISS16, BLISS36)
;   0004  0			) =
;   0005  1	BEGIN
;   0006  1	!
;   0007  1	!
;   0008  1	!
;   0009  1	!                    COPYRIGHT (c) 1980, 1981, 1982
;   0010  1	!                    DIGITAL EQUIPMENT CORPORATION
;   0011  1	!                        Maynard, Massachusetts
;   0012  1	!
;   0013  1	!     This software is furnished under a license and may  be  used
;   0014  1	!     and copied only in accordance with the terms of such license
;   0015  1	!     and with the inclusion of the above copyright notice.   This
;   0016  1	!     software  or any other copies thereof may not be provided or
;   0017  1	!     otherwise made available to any other person.  No  title  to
;   0018  1	!     and ownership of the software is hereby transferred.
;   0019  1	!
;   0020  1	!     The information  in  this  software  is  subject  to  change
;   0021  1	!     without  notice  and should not be construed as a commitment
;   0022  1	!     by DIGITAL EQUIPMENT CORPORATION.
;   0023  1	!
;   0024  1	!     DIGITAL assumes no responsibility for the use or reliability
;   0025  1	!     of  its  software  on  equipment  which  is  not supplied by
;   0026  1	!     DIGITAL.
;   0027  1	!
;   0028  1	
;   0029  1	!++
;   0030  1	! FACILITY: LBR20 - Librarian Utility
;   0031  1	!
;   0032  1	! ABSTRACT:
;   0033  1	!
;   0034  1	!
;   0035  1	! This module contains the routines to access and modify the library.
;   0036  1	!
;   0037  1	!
;   0038  1	! ENVIRONMENT: ANY
;   0039  1	!
;   0040  1	! AUTHOR: ALAN D. PECKHAM, CREATION DATE: 6-MAY-80
;   0041  1	!
;   0042  1	! MODIFIED BY:
;   0043  1	!
;   0044  1	!	Alan D. Peckham, : VERSION 01
;   0045  1	! 01	- Restructure file positioning to refer to block/offset.
;   0046  1	!	  Use OBJ_MARK and OBJ_SET routines to mark the beginning
;   0047  1	!	  of an object module and rewind the file to that position.
;   0048  1	!	  Sort the GSD records to the beginning of the module
;   0049  1	!	  by doing two passes on the object module.
;   0050  1	! 02	- Data structure reformation (change from BLOCK_16 to BLOCK structure).
;   0051  1	!	  Add COMPRESS function.
;   0052  1	! 03    - Add support for EPT replacement in FILE_INSERT.
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page   2
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (1)

;   0053  1	!--
;   0054  1	
;   0055  1	!
;   0056  1	! TABLE OF CONTENTS:
;   0057  1	!
;   0058  1	
;   0059  1	FORWARD ROUTINE
;   0060  1	    COPY,					!Copy word to library file
;   0061  1	    ENTRY_DELETE,				!Delete an entry point
;   0062  1	    EPT_INDEX,					!Check if entry exists in EPT
;   0063  1	    EPT_INSERT,					!Insert an entry point
;   0064  1	    EPT_PURGE : NOVALUE,			!Purge module entry points
;   0065  1	    FILE_INSERT,				!Insert modules from a file
;   0066  1	    HDR_DELETE : NOVALUE,			!Mark a module header as deleted.
;   0067  1	    LIBCLS : NOVALUE,				!Close the library
;   0068  1	    LIBUPD : NOVALUE,				!Update HDR, EPT and MNT
;   0069  1	    LIBOPN,					!Open the library
;   0070  1	    MNT_INDEX,					!Check if module exists in MNT
;   0071  1	    MNT_INSERT,					!Insert a module name
;   0072  1	    MNT_PURGE : NOVALUE,			!Purge module name(s)
;   0073  1	    MODULE_DELETE;				!Delete a module
;   0074  1	
;   0075  1	!
;   0076  1	! INCLUDE FILES
;   0077  1	!
;   0078  1	
;   0079  1	LIBRARY 'LBRCOM';				!LBR COMMON DEFINITIONS
;   0080  1	
;   0081  1	!
;   0082  1	! MACROS:
;   0083  1	!
;   0084  1	
;   0085  1	MACRO
; M 0086  1	    CHAR2 (num) =
; M 0087  1		%IF num LEQ 9
; M 0088  1		%THEN '0', %NUMBER (num)
; M 0089  1		%ELSE %NUMBER (num)
;   0090  1		%FI %;
;   0091  1	
;   0092  1	!
;   0093  1	! EQUATED SYMBOLS:
;   0094  1	!
;   0095  1	
;   0096  1	LITERAL
;   0097  1	    BLOCK_SIZE = 512,
;   0098  1	    EPTBUF_SIZE = 2048,
;   0099  1	    MNTBUF_SIZE = 1024;
;   0100  1	
;   0101  1	LITERAL
;   0102  1	    OBJ_LOW = 1,				!Lowest object record type.
;   0103  1	    OBJ_GSD = 1,				!Global Symbol Dictionary.
;   0104  1	    OBJ_END_GSD = 2,				!End of GSD records.
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page   3
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (1)

;   0105  1	    OBJ_TXT = 3,				!TeXT information.
;   0106  1	    OBJ_RLD = 4,				!ReLocation Dictionary.
;   0107  1	    OBJ_ISD = 5,				!Internal Symbol Dictionary.
;   0108  1	    OBJ_END_MOD = 6,				!End of module.
;   0109  1	    OBJ_HIGH = 6,				!Highest object record type.
;   0110  1	    GSD_LOW = 0,				!Lowest GSD record type.
;   0111  1	    GSD_MOD = 0,				!Module name.
;   0112  1	    GSD_CSECT = 1,				!Control section name.
;   0113  1	    GSD_INTERNAL = 2,				!Internal symbol name.
;   0114  1	    GSD_TRANSFER = 3,				!Transfer address.
;   0115  1	    GSD_GLOBAL = 4,				!Global symbol name.
;   0116  1	    GSD_PSECT = 5,				!Program section name.
;   0117  1	    GSD_VERSION = 6,				!Program version identification.
;   0118  1	    GSD_ARRAY = 7,				!Mapped array declaration.
;   0119  1	    GSD_HIGH = 7;				!Highest GSD record type.
;   0120  1	
;   0121  1	!
;   0122  1	! OWN STORAGE:
;   0123  1	!
;   0124  1	
;   0125  1	OWN
;   0126  1	    EPTBUF : BLOCKVECTOR [EPTBUF_SIZE, EPT_LENGTH],
;   0127  1	    EPT_CHANGED,
;   0128  1	    HDR : BLOCK [HDR_LENGTH] FIELD (HDR_FIELDS),
;   0129  1	    HDRBUF : BLOCK [LIB_LENGTH],
;   0130  1	    HDR_CHANGED,
;   0131  1	    LIB_FILBLK,
;   0132  1	    MNTBUF : BLOCKVECTOR [MNTBUF_SIZE, MNT_LENGTH],
;   0133  1	    MNT_CHANGED;
;   0134  1	
;   0135  1	!
;   0136  1	! EXTERNAL REFERENCES:
;   0137  1	!
;   0138  1	
;   0139  1	EXTERNAL ROUTINE
;   0140  1	    CLOSE,					!Close a file.
;   0141  1	    FILNM : NOVALUE,				!Convert file name to ASCII.
;   0142  1	    FILPOS,					!Get the current file position.
;   0143  1	    GETFIL,					!Get a word from the file.
;   0144  1	    GETTIM : NOVALUE,				!Get the current time.
;   0145  1	    OBJ_CLOSE : NOVALUE,			!Close object file
;   0146  1	    OBJ_MARK : NOVALUE,				!Mark current record position
;   0147  1	    OBJ_OPEN,					!Open object file
;   0148  1	    OBJ_RECORD,					!Read length of next record
;   0149  1	    OBJ_SET : NOVALUE,				!Reset to marked position
;   0150  1	    OBJ_WORD,					!Read next word of record
;   0151  1	    OPEN,					!Open a file.
;   0152  1	    POSFIL,					!Position to a word in the file
;   0153  1	    PUTFIL : NOVALUE;				!Put a string to a file opened for output.
;   0154  1	
;   0155  1	EXTERNAL
;   0156  1	    FLAGS : BITVECTOR [M_MAX_BITS],
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page   4
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (1)

;   0157  1	    LIBEPT : REF BLOCKVECTOR [1, EPT_LENGTH] FIELD (EPT_FIELDS),
;   0158  1	    LIBHDR : REF BLOCK [LIB_LENGTH] FIELD (LIB_FIELDS),
;   0159  1	    LIBMNT : REF BLOCKVECTOR [1, MNT_LENGTH] FIELD (MNT_FIELDS),
;   0160  1	    NUMEPT,
;   0161  1	    NUMMNT,
;   0162  1	    SIZFIL;
;   0163  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page   5
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (2)

;   0164  1	ROUTINE COPY (VALUE) =
;   0165  1	
;   0166  1	!++
;   0167  1	! FUNCTIONAL DESCRIPTION:
;   0168  1	!
;   0169  1	!
;   0170  1	!
;   0171  1	!
;   0172  1	! FORMAL PARAMETERS:
;   0173  1	!
;   0174  1	!
;   0175  1	! IMPLICIT INPUTS:
;   0176  1	!
;   0177  1	!	NONE
;   0178  1	!
;   0179  1	! IMPLICIT OUTPUTS:
;   0180  1	!
;   0181  1	!	NONE
;   0182  1	!
;   0183  1	! ROUTINE VALUE:
;   0184  1	!
;   0185  1	!	NONE
;   0186  1	!
;   0187  1	! SIDE EFFECTS
;   0188  1	!
;   0189  1	!	NONE
;   0190  1	!
;   0191  1	!--
;   0192  1	
;   0193  2	    BEGIN
;   0194  2	
;   0195  2	    OWN
;   0196  2		WORD_BUFFER;
;   0197  2	
;   0198  2	    BIND
;   0199  2		WORD_PTR = CH$PTR (WORD_BUFFER,, 18);
;   0200  2	
;   0201  2	    IF .VALUE GEQ 0
;   0202  2	    THEN
;   0203  3		BEGIN
;   0204  3		CH$WCHAR (.VALUE, WORD_PTR);
;   0205  3		PUTFIL (.LIB_FILBLK, WORD_PTR, 1);
;   0206  3		HDR [HDR_SIZE_2] = .HDR [HDR_SIZE_2] + 2;
;   0207  3	
;   0208  3		IF .HDR [HDR_SIZE_2] EQL 0 THEN HDR [HDR_SIZE_1] = .HDR [HDR_SIZE_1] + 1;
;   0209  3	
;   0210  3		IF .LIBHDR [LIB_CONTIGUOUS_1] NEQ 0
;   0211  3		THEN
;   0212  4		    BEGIN
;   0213  4	
;   0214  4		    IF .LIBHDR [LIB_CONTIGUOUS_2] EQL 0
;   0215  4		    THEN
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page   6
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (2)

;   0216  4			LIBHDR [LIB_CONTIGUOUS_1] = .LIBHDR [LIB_CONTIGUOUS_1] - 1;
;   0217  4	
;   0218  4		    LIBHDR [LIB_CONTIGUOUS_2] = .LIBHDR [LIB_CONTIGUOUS_2] - 2;
;   0219  4		    END
;   0220  3		ELSE
;   0221  3	
;   0222  3		    IF .LIBHDR [LIB_CONTIGUOUS_2] NEQ 0
;   0223  3		    THEN
;   0224  3			LIBHDR [LIB_CONTIGUOUS_2] = .LIBHDR [LIB_CONTIGUOUS_2] - 1;
;   0225  3	
;   0226  2		END;
;   0227  2	
;   0228  2	    .VALUE
;   0229  1	    END;					!OF COPY


	TITLE	LBRLIB
	TWOSEG


	.REQUEST  SYS:B362LB.REL


	RELOC	0				;					000000'
EPTBUF: BLOCK	10000				;					000000'
EPT_CHANGED:
	BLOCK	1				;					010000'
HDR:	BLOCK	4				;					010001'
HDRBUF: BLOCK	14				;					010005'
HDR_CHANGED:
	BLOCK	1				;					010021'
LIB_FILBLK:
	BLOCK	1				;					010022'
MNTBUF: BLOCK	4000				;					010023'
MNT_CHANGED:
	BLOCK	1				;					014023'
WORD_BUFFER:
	BLOCK	1				;					014024'


	EXTERN	CLOSE, FILNM, FILPOS, GETFIL, GETTIM, OBJ_CLOSE, OBJ_MARK, OBJ_OPEN, OBJ_RECORD, OBJ_SET
	EXTERN	OBJ_WORD, OPEN, POSFIL, PUTFIL, FLAGS, LIBEPT, LIBHDR, LIBMNT, NUMEPT, NUMMNT, SIZFIL


WORD_PTR=	    <POINT 18,WORD_BUFFER-1,35> ;						00 22 0 00 014023'


AC0=	0
AC1=	1
AC2=	2
AC3=	3
AC4=	4
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page   7
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (2)

AC5=	5
AC6=	6
AC7=	7
AC10=	10
AC11=	11
AC12=	12
AC13=	13
AC14=	14
FP=	15
AC16=	16
SP=	17


	RELOC	400000				;					400000'
COPY:	PUSH	SP,AC16				; SP,AC16				400000' 261 17 0 00 000016		0164
	MOVE	AC16,-2(SP)			; AC16,VALUE				400001' 200 16 0 17 777776		0201
	JUMPL	AC16,L.6			; AC16,L.6				400002' 321 16 0 00 400044'
	MOVE	AC1,C.5				; AC1,[POINT 18,WORD_BUFFER-1,35]  <0,18>
						;					400003' 200 01 0 00 400053'		0204
	IDPB	AC16,AC1			; AC16,AC1				400004' 136 16 0 00 000001
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				400005' 261 17 0 00 010022'		0205
	PUSH	SP,C.5				; SP,[POINT 18,WORD_BUFFER-1,35]  <0,18>400006' 261 17 0 00 400053'
	PUSH	SP,C.6				; SP,[1]				400007' 261 17 0 00 400054'
	PUSHJ	SP,PUTFIL			; SP,PUTFIL				400010' 260 17 0 00 000000*
	LDB	AC1,C.1				; AC1,[POINT 16,HDR+1,17]  <18,16>	400011' 135 01 0 00 400047'		0206
	ADDI	AC1,2				; AC1,2					400012' 271 01 0 00 000002
	DPB	AC1,C.1				; AC1,[POINT 16,HDR+1,17]  <18,16>	400013' 137 01 0 00 400047'
	LDB	AC1,C.1				; AC1,[POINT 16,HDR+1,17]  <18,16>	400014' 135 01 0 00 400047'		0208
	JUMPN	AC1,L.1				; AC1,L.1				400015' 326 01 0 00 400021'
	LDB	AC1,C.2				; AC1,[POINT 16,HDR,35]  <0,16>		400016' 135 01 0 00 400050'
	ADDI	AC1,1				; AC1,1					400017' 271 01 0 00 000001
	DPB	AC1,C.2				; AC1,[POINT 16,HDR,35]  <0,16>		400020' 137 01 0 00 400050'
L.1:	MOVE	AC2,LIBHDR			; AC2,LIBHDR				400021' 200 02 0 00 000000*		0214
	ADDI	AC2,12				; AC2,12				400022' 271 02 0 00 000012
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				400023' 200 01 0 00 000000*		0210
	LDB	AC3,C.3				; AC3,[POINT 16,11(AC1),35]  <0,16>	400024' 135 03 0 00 400051'
	JUMPE	AC3,L.3				; AC3,L.3				400025' 322 03 0 00 400036'
	LDB	AC3,C.4				; AC3,[POINT 16,0(AC2),17]  <18,16>	400026' 135 03 0 00 400052'		0214
	JUMPN	AC3,L.2				; AC3,L.2				400027' 326 03 0 00 400033'
	LDB	AC3,C.3				; AC3,[POINT 16,11(AC1),35]  <0,16>	400030' 135 03 0 00 400051'		0216
	SUBI	AC3,1				; AC3,1					400031' 275 03 0 00 000001
	DPB	AC3,C.3				; AC3,[POINT 16,11(AC1),35]  <0,16>	400032' 137 03 0 00 400051'
L.2:	LDB	AC1,C.4				; AC1,[POINT 16,0(AC2),17]  <18,16>	400033' 135 01 0 00 400052'		0218
	SUBI	AC1,2				; AC1,2					400034' 275 01 0 00 000002
	JRST	L.4				; L.4					400035' 254 00 0 00 400042'
L.3:	LDB	AC1,C.4				; AC1,[POINT 16,0(AC2),17]  <18,16>	400036' 135 01 0 00 400052'		0222
	JUMPE	AC1,L.5				; AC1,L.5				400037' 322 01 0 00 400043'
	LDB	AC1,C.4				; AC1,[POINT 16,0(AC2),17]  <18,16>	400040' 135 01 0 00 400052'		0224
	SUBI	AC1,1				; AC1,1					400041' 275 01 0 00 000001
L.4:	DPB	AC1,C.4				; AC1,[POINT 16,0(AC2),17]  <18,16>	400042' 137 01 0 00 400052'
L.5:	ADJSP	SP,-3				; SP,-3					400043' 105 17 0 00 777775		0203
L.6:	MOVE	AC1,AC16			; AC1,AC16				400044' 200 01 0 00 000016		0164
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page   8
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (2)

	POP	SP,AC16				; SP,AC16				400045' 262 17 0 00 000016
	POPJ	SP,				; SP,					400046' 263 17 0 00 000000
C.1:	POINT	16,HDR+1,17			; 16,HDR+1,17				400047' 22 20 0 00 010002'
C.2:	POINT	16,HDR,35			; 16,HDR,35				400050' 00 20 0 00 010001'
C.3:	POINT	16,11(AC1),35			; 16,11(AC1),35				400051' 00 20 0 01 000011
C.4:	POINT	16,0(AC2),17			; 16,0(AC2),17				400052' 22 20 0 02 000000
C.5:	POINT	18,WORD_BUFFER-1,35		; 18,WORD_BUFFER-1,35			400053' 00 22 0 00 014023'
C.6:	EXP	1				; 1					400054' 000000	000001

; Routine Size:  45 words


;   0230  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page   9
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (3)

;   0231  1	GLOBAL ROUTINE ENTRY_DELETE (NAME) =
;   0232  1	
;   0233  1	!++
;   0234  1	! FUNCTIONAL DESCRIPTION:
;   0235  1	!
;   0236  1	!
;   0237  1	!
;   0238  1	!
;   0239  1	! FORMAL PARAMETERS:
;   0240  1	!
;   0241  1	!
;   0242  1	! IMPLICIT INPUTS:
;   0243  1	!
;   0244  1	!	NONE
;   0245  1	!
;   0246  1	! IMPLICIT OUTPUTS:
;   0247  1	!
;   0248  1	!	NONE
;   0249  1	!
;   0250  1	! ROUTINE VALUE:
;   0251  1	!
;   0252  1	!	NONE
;   0253  1	!
;   0254  1	! SIDE EFFECTS
;   0255  1	!
;   0256  1	!	NONE
;   0257  1	!
;   0258  1	!--
;   0259  1	
;   0260  2	    BEGIN
;   0261  2	
;   0262  2	    MAP
;   0263  2		NAME : REF VECTOR [2];
;   0264  2	
;   0265  2	    LOCAL
;   0266  2		ENTRY_FOUND;
;   0267  2	
;   0268  2	    ENTRY_FOUND = FALSE;
;   0269  2	
;   0270  2	    INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
;   0271  2	
;   0272  2		IF .ENTRY_FOUND
;   0273  2		THEN
;   0274  2	
;   0275  2		    INCR SUB_INDEX FROM 0 TO EPT_LENGTH - 1 DO
;   0276  2			LIBEPT [.INDEX - 1, .SUB_INDEX, 0, %BPVAL, 0] = .LIBEPT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0]
;   0277  2	
;   0278  2		ELSE
;   0279  2	
;   0280  2		    IF .LIBEPT [.INDEX, EPT_NAME_1] EQL .NAME [0] AND .LIBEPT [.INDEX, EPT_NAME_2] EQL .NAME [1]
;   0281  2		    THEN
;   0282  2			ENTRY_FOUND = TRUE;
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  10
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (3)

;   0283  2	
;   0284  2	    IF .ENTRY_FOUND
;   0285  2	    THEN
;   0286  3		BEGIN
;   0287  3		LIBHDR [LIB_EPT_AVAILABLE] = .LIBHDR [LIB_EPT_AVAILABLE] + 1;
;   0288  3		HDR_CHANGED = EPT_CHANGED = TRUE;
;   0289  3	
;   0290  3		IF NOT .FLAGS [M_FAST] THEN LIBUPD ();
;   0291  3	
;   0292  3		TYPLN (0, CH$ASCIZ ('[Entry "%2R" deleted]'), .NAME [0], .NAME [1]);
;   0293  3		TRUE
;   0294  3		END
;   0295  2	    ELSE
;   0296  3		BEGIN
;   0297  3		PUTLN (1, CH$ASCIZ (FATAL, 'No entry point named "%2R"'), .NAME [0], .NAME [1]);
;   0298  3		FALSE
;   0299  3		END
;   0300  3	
;   0301  1	    END;					!OF ENTRY_DELETE


P.AAA:	BYTE	(7)"[","E","n","t","r"		; [Entr					400055' 133 105 156 164 162
	BYTE	(7)"y"," ",042,"%","2"		; y "%2					400056' 171 040 042 045 062
	BYTE	(7)"R",042," ","d","e"		; R" de					400057' 122 042 040 144 145
	BYTE	(7)"l","e","t","e","d"		; leted					400060' 154 145 164 145 144
	BYTE	(7)"]",000,000,000,000		; ]					400061' 135 000 000 000 000
P.AAB:	BYTE	(7)"*","F","A","T","A"		; *FATA					400062' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","N"		; L*  N					400063' 114 052 040 040 116
	BYTE	(7)"o"," ","e","n","t"		; o ent					400064' 157 040 145 156 164
	BYTE	(7)"r","y"," ","p","o"		; ry po					400065' 162 171 040 160 157
	BYTE	(7)"i","n","t"," ","n"		; int n					400066' 151 156 164 040 156
	BYTE	(7)"a","m","e","d"," "		; amed					400067' 141 155 145 144 040
	BYTE	(7)042,"%","2","R",042		; "%2R"					400070' 042 045 062 122 042
	BYTE	(7)000,000,000,000,000		;					400071' 000 000 000 000 000


	EXTERN	TYPLIN, PUTLIN


ENTRY_DELETE::
	PUSH	SP,AC10				; SP,AC10				400072' 261 17 0 00 000010		0231
	PUSH	SP,AC11				; SP,AC11				400073' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				400074' 261 17 0 00 000012
	PUSH	SP,AC13				; SP,AC13				400075' 261 17 0 00 000013
	PUSH	SP,AC14				; SP,AC14				400076' 261 17 0 00 000014
	PUSH	SP,AC16				; SP,AC16				400077' 261 17 0 00 000016
	ADJSP	SP,2				; SP,2					400100' 105 17 0 00 000002
	SETZ	AC16,				; ENTRY_FOUND,				400101' 400 16 0 00 000000		0268
	MOVE	AC2,LIBHDR			; AC2,LIBHDR				400102' 200 02 0 00 000000*		0270
	LDB	AC11,C.7			; AC11,[POINT 16,5(AC2),35]  <0,16>	400103' 135 11 0 00 400226'
	LDB	AC1,C.8				; AC1,[POINT 16,6(AC2),17]  <18,16>	400104' 135 01 0 00 400227'
	SUB	AC11,AC1			; AC11,AC1				400105' 274 11 0 00 000001
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  11
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (3)

	MOVE	AC13,LIBEPT			; AC13,LIBEPT				400106' 200 13 0 00 000000*		0276
	SETO	AC1,				; INDEX,				400107' 474 01 0 00 000000		0270
	JRST	L.10				; L.10					400110' 254 00 0 00 400145'
L.7:	MOVE	AC14,AC1			; AC14,INDEX				400111' 200 14 0 00 000001		0276
	IMULI	AC14,2				; AC14,2				400112' 221 14 0 00 000002
	TRNN	AC16,1				; ENTRY_FOUND,1				400113' 606 16 0 00 000001		0272
	JRST	L.9				; L.9					400114' 254 00 0 00 400134'
	MOVE	AC5,AC1				; AC5,INDEX				400115' 200 05 0 00 000001		0276
	SUBI	AC5,1				; AC5,1					400116' 275 05 0 00 000001
	IMULI	AC5,2				; AC5,2					400117' 221 05 0 00 000002
	SETZ	AC3,				; SUB_INDEX,				400120' 400 03 0 00 000000		0275
L.8:	MOVE	AC4,AC13			; AC4,AC13				400121' 200 04 0 00 000013		0276
	ADD	AC4,AC3				; AC4,SUB_INDEX				400122' 270 04 0 00 000003
	MOVE	AC12,AC4			; AC12,AC4				400123' 200 12 0 00 000004
	ADD	AC12,AC5			; AC12,AC5				400124' 270 12 0 00 000005
	ADD	AC4,AC14			; AC4,AC14				400125' 270 04 0 00 000014
	MOVE	AC10,0(AC4)			; AC10,0(AC4)				400126' 200 10 0 04 000000
	MOVEM	AC10,0(AC12)			; AC10,0(AC12)				400127' 202 10 0 12 000000
	ADDI	AC3,1				; SUB_INDEX,1				400130' 271 03 0 00 000001		0275
	CAIG	AC3,1				; SUB_INDEX,1				400131' 307 03 0 00 000001
	JRST	L.8				; L.8					400132' 254 00 0 00 400121'
	JRST	L.10				; L.10					400133' 254 00 0 00 400145'		0272
L.9:	MOVE	AC4,AC13			; AC4,AC13				400134' 200 04 0 00 000013		0280
	ADD	AC4,AC14			; AC4,AC14				400135' 270 04 0 00 000014
	MOVE	AC3,-11(SP)			; AC3,NAME				400136' 200 03 0 17 777767
	LDB	AC5,C.9				; AC5,[POINT 16,0(AC4),17]  <18,16>	400137' 135 05 0 00 400230'
	CAME	AC5,0(AC3)			; AC5,0(AC3)				400140' 312 05 0 03 000000
	JRST	L.10				; L.10					400141' 254 00 0 00 400145'
	LDB	AC5,C.10			; AC5,[POINT 16,0(AC4),35]  <0,16>	400142' 135 05 0 00 400231'
	CAMN	AC5,1(AC3)			; AC5,1(AC3)				400143' 316 05 0 03 000001
	MOVEI	AC16,1				; ENTRY_FOUND,1				400144' 201 16 0 00 000001		0282
L.10:	ADDI	AC1,1				; INDEX,1				400145' 271 01 0 00 000001		0270
	CAMGE	AC1,AC11			; INDEX,AC11				400146' 315 01 0 00 000011
	JRST	L.7				; L.7					400147' 254 00 0 00 400111'
	MOVE	AC12,-11(SP)			; AC12,NAME				400150' 200 12 0 17 777767		0292
	MOVEI	AC1,-1(SP)			; AC1,PRM_LIST				400151' 201 01 0 17 777777
	MOVE	AC13,AC1			; AC13,AC1				400152' 200 13 0 00 000001
	ADDI	AC13,1				; AC13,1				400153' 271 13 0 00 000001
	MOVE	AC14,AC12			; AC14,AC12				400154' 200 14 0 00 000012
	ADDI	AC14,1				; AC14,1				400155' 271 14 0 00 000001
	TRNN	AC16,1				; ENTRY_FOUND,1				400156' 606 16 0 00 000001		0284
	JRST	L.11				; L.11					400157' 254 00 0 00 400204'
	LDB	AC1,C.8				; AC1,[POINT 16,6(AC2),17]  <18,16>	400160' 135 01 0 00 400227'		0287
	ADDI	AC1,1				; AC1,1					400161' 271 01 0 00 000001
	DPB	AC1,C.8				; AC1,[POINT 16,6(AC2),17]  <18,16>	400162' 137 01 0 00 400227'
	MOVEI	AC1,1				; AC1,1					400163' 201 01 0 00 000001		0288
	MOVEM	AC1,EPT_CHANGED			; AC1,EPT_CHANGED			400164' 202 01 0 00 010000'
	MOVEM	AC1,HDR_CHANGED			; AC1,HDR_CHANGED			400165' 202 01 0 00 010021'
	MOVEI	AC1,40				; AC1,40				400166' 201 01 0 00 000040		0290
	TDNN	AC1,FLAGS			; AC1,FLAGS				400167' 616 01 0 00 000000*
	PUSHJ	SP,LIBUPD			; SP,LIBUPD				400170' 260 17 0 00 000000V
	MOVE	AC1,0(AC12)			; AC1,0(AC12)				400171' 200 01 0 12 000000		0292
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  12
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (3)

	MOVEM	AC1,-1(SP)			; AC1,PRM_LIST				400172' 202 01 0 17 777777
	MOVE	AC1,0(AC14)			; AC1,0(AC14)				400173' 200 01 0 14 000000
	MOVEM	AC1,0(AC13)			; AC1,0(AC13)				400174' 202 01 0 13 000000
	PUSH	SP,C.11				; SP,[0]				400175' 261 17 0 00 400232'
	PUSH	SP,C.12				; SP,[POINT 7,P.AAA-1,34]  <1,7>	400176' 261 17 0 00 400233'
	MOVEI	AC1,-3(SP)			; AC1,PRM_LIST				400177' 201 01 0 17 777775
	PUSH	SP,AC1				; SP,AC1				400200' 261 17 0 00 000001
	PUSHJ	SP,TYPLIN			; SP,TYPLIN				400201' 260 17 0 00 000000*
	MOVEI	AC1,1				; AC1,1					400202' 201 01 0 00 000001		0284
	JRST	L.12				; L.12					400203' 254 00 0 00 400216'
L.11:	MOVE	AC1,0(AC12)			; AC1,0(AC12)				400204' 200 01 0 12 000000		0297
	MOVEM	AC1,-1(SP)			; AC1,PRM_LIST				400205' 202 01 0 17 777777
	MOVE	AC1,0(AC14)			; AC1,0(AC14)				400206' 200 01 0 14 000000
	MOVEM	AC1,0(AC13)			; AC1,0(AC13)				400207' 202 01 0 13 000000
	PUSH	SP,C.6				; SP,[1]				400210' 261 17 0 00 400054'
	PUSH	SP,C.13				; SP,[POINT 7,P.AAB-1,34]  <1,7>	400211' 261 17 0 00 400234'
	MOVEI	AC1,-3(SP)			; AC1,PRM_LIST				400212' 201 01 0 17 777775
	PUSH	SP,AC1				; SP,AC1				400213' 261 17 0 00 000001
	PUSHJ	SP,PUTLIN			; SP,PUTLIN				400214' 260 17 0 00 000000*
	SETZ	AC1,				; AC1,					400215' 400 01 0 00 000000		0284
L.12:	ADJSP	SP,-5				; SP,-5					400216' 105 17 0 00 777773		0260
	POP	SP,AC16				; SP,AC16				400217' 262 17 0 00 000016		0231
	POP	SP,AC14				; SP,AC14				400220' 262 17 0 00 000014
	POP	SP,AC13				; SP,AC13				400221' 262 17 0 00 000013
	POP	SP,AC12				; SP,AC12				400222' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				400223' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				400224' 262 17 0 00 000010
	POPJ	SP,				; SP,					400225' 263 17 0 00 000000
C.7:	POINT	16,5(AC2),35			; 16,5(AC2),35				400226' 00 20 0 02 000005
C.8:	POINT	16,6(AC2),17			; 16,6(AC2),17				400227' 22 20 0 02 000006
C.9:	POINT	16,0(AC4),17			; 16,0(AC4),17				400230' 22 20 0 04 000000
C.10:	POINT	16,0(AC4),35			; 16,0(AC4),35				400231' 00 20 0 04 000000
C.11:	EXP	0				; 0					400232' 000000	000000
C.12:	POINT	7,P.AAA-1,34			; 7,P.AAA-1,34				400233' 01 07 0 00 400054'
C.13:	POINT	7,P.AAB-1,34			; 7,P.AAB-1,34				400234' 01 07 0 00 400061'

; Routine Size:  99 words


;   0302  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  13
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (4)

;   0303  1	ROUTINE EPT_INDEX (NAME) =
;   0304  1	
;   0305  1	!++
;   0306  1	! FUNCTIONAL DESCRIPTION:
;   0307  1	!
;   0308  1	!
;   0309  1	!
;   0310  1	!
;   0311  1	! FORMAL PARAMETERS:
;   0312  1	!
;   0313  1	!
;   0314  1	! IMPLICIT INPUTS:
;   0315  1	!
;   0316  1	!	NONE
;   0317  1	!
;   0318  1	! IMPLICIT OUTPUTS:
;   0319  1	!
;   0320  1	!	NONE
;   0321  1	!
;   0322  1	! ROUTINE VALUE:
;   0323  1	!
;   0324  1	!	NONE
;   0325  1	!
;   0326  1	! SIDE EFFECTS
;   0327  1	!
;   0328  1	!	NONE
;   0329  1	!
;   0330  1	!--
;   0331  1	
;   0332  2	    BEGIN
;   0333  2	
;   0334  2	    MAP
;   0335  2		NAME : REF VECTOR [2];
;   0336  2	
;   0337  2	    INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
;   0338  2	
;   0339  2		IF .LIBEPT [.INDEX, EPT_NAME_1] EQL .NAME [0] AND .LIBEPT [.INDEX, EPT_NAME_2] EQL .NAME [1]
;   0340  2		THEN
;   0341  2		    RETURN .INDEX;
;   0342  2	
;   0343  2	    -1
;   0344  1	    END;					!OF EPT_INDEX


EPT_INDEX:
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				400235' 200 01 0 00 000000*		0337
	LDB	AC5,C.14			; AC5,[POINT 16,5(AC1),35]  <0,16>	400236' 135 05 0 00 400263'
	LDB	AC2,C.15			; AC2,[POINT 16,6(AC1),17]  <18,16>	400237' 135 02 0 00 400264'
	SUB	AC5,AC2				; AC5,AC2				400240' 274 05 0 00 000002
	MOVE	AC2,-1(SP)			; AC2,NAME				400241' 200 02 0 17 777777		0339
	SETO	AC1,				; INDEX,				400242' 474 01 0 00 000000		0337
	JRST	L.14				; L.14					400243' 254 00 0 00 400256'
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  14
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (4)

L.13:	MOVE	AC4,LIBEPT			; AC4,LIBEPT				400244' 200 04 0 00 000000*		0339
	MOVE	AC3,AC1				; AC3,INDEX				400245' 200 03 0 00 000001
	IMULI	AC3,2				; AC3,2					400246' 221 03 0 00 000002
	ADD	AC4,AC3				; AC4,AC3				400247' 270 04 0 00 000003
	LDB	AC3,C.9				; AC3,[POINT 16,0(AC4),17]  <18,16>	400250' 135 03 0 00 400230'
	CAME	AC3,0(AC2)			; AC3,0(AC2)				400251' 312 03 0 02 000000
	JRST	L.14				; L.14					400252' 254 00 0 00 400256'
	LDB	AC3,C.10			; AC3,[POINT 16,0(AC4),35]  <0,16>	400253' 135 03 0 00 400231'
	CAMN	AC3,1(AC2)			; AC3,1(AC2)				400254' 316 03 0 02 000001
	POPJ	SP,				; SP,					400255' 263 17 0 00 000000		0341
L.14:	ADDI	AC1,1				; INDEX,1				400256' 271 01 0 00 000001		0337
	CAMGE	AC1,AC5				; INDEX,AC5				400257' 315 01 0 00 000005
	JRST	L.13				; L.13					400260' 254 00 0 00 400244'
	SETO	AC1,				; AC1,					400261' 474 01 0 00 000000		0303
	POPJ	SP,				; SP,					400262' 263 17 0 00 000000
C.14:	POINT	16,5(AC1),35			; 16,5(AC1),35				400263' 00 20 0 01 000005
C.15:	POINT	16,6(AC1),17			; 16,6(AC1),17				400264' 22 20 0 01 000006

; Routine Size:  24 words
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  15
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (5)

;   0345  1	ROUTINE EPT_INSERT (NAME, BLOCK, OFFSET) =
;   0346  1	
;   0347  1	!++
;   0348  1	! FUNCTIONAL DESCRIPTION:
;   0349  1	!
;   0350  1	!
;   0351  1	!
;   0352  1	!
;   0353  1	! FORMAL PARAMETERS:
;   0354  1	!
;   0355  1	!
;   0356  1	! IMPLICIT INPUTS:
;   0357  1	!
;   0358  1	!	NONE
;   0359  1	!
;   0360  1	! IMPLICIT OUTPUTS:
;   0361  1	!
;   0362  1	!	NONE
;   0363  1	!
;   0364  1	! ROUTINE VALUE:
;   0365  1	!
;   0366  1	!	NONE
;   0367  1	!
;   0368  1	! SIDE EFFECTS
;   0369  1	!
;   0370  1	!	NONE
;   0371  1	!
;   0372  1	!--
;   0373  1	
;   0374  2	    BEGIN
;   0375  2	
;   0376  2	    MAP
;   0377  2		NAME : REF VECTOR [2];
;   0378  2	
;   0379  2	    IF .LIBHDR [LIB_EPT_AVAILABLE] LEQ 0 THEN RETURN FALSE;
;   0380  2	
;   0381  2	    DECR INDEX FROM .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] TO 0 DO
;   0382  3		BEGIN
;   0383  3	
;   0384  3		IF .INDEX GTR 0
;   0385  3		THEN
;   0386  3	
;   0387  3		    INCR SUB_INDEX FROM 0 TO EPT_LENGTH - 1 DO
;   0388  3			LIBEPT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0] = .LIBEPT [.INDEX - 1, .SUB_INDEX, 0, %BPVAL, 0];
;   0389  3	
;   0390  4		IF (.INDEX EQL 0) OR (.LIBEPT [.INDEX, EPT_NAME_1] LSS .NAME [0]) OR (.LIBEPT [.INDEX, EPT_NAME_1] EQL
;   0391  4		    .NAME [0] AND .LIBEPT [.INDEX, EPT_NAME_2] LSS .NAME [1])
;   0392  3		THEN
;   0393  3		    EXITLOOP
;   0394  4			BEGIN
;   0395  4			LIBEPT [.INDEX, EPT_NAME_1] = .NAME [0];
;   0396  4			LIBEPT [.INDEX, EPT_NAME_2] = .NAME [1];
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  16
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (5)

;   0397  4			LIBEPT [.INDEX, EPT_BLOCK] = .BLOCK;
;   0398  4			LIBEPT [.INDEX, EPT_OFFSET] = .OFFSET;
;   0399  3			END;
;   0400  3	
;   0401  2		END;
;   0402  2	
;   0403  2	    LIBHDR [LIB_EPT_AVAILABLE] = .LIBHDR [LIB_EPT_AVAILABLE] - 1;
;   0404  2	    HDR_CHANGED = EPT_CHANGED = TRUE
;   0405  1	    END;					!OF EPT_INSERT


EPT_INSERT:
	PUSH	SP,AC13				; SP,AC13				400265' 261 17 0 00 000013		0345
	PUSH	SP,AC14				; SP,AC14				400266' 261 17 0 00 000014
	PUSH	SP,AC16				; SP,AC16				400267' 261 17 0 00 000016
	MOVE	AC3,LIBHDR			; AC3,LIBHDR				400270' 200 03 0 00 000000*		0379
	LDB	AC2,C.16			; AC2,[POINT 16,6(AC3),17]  <18,16>	400271' 135 02 0 00 400376'
	JUMPG	AC2,L.15			; AC2,L.15				400272' 327 02 0 00 400275'
	SETZ	AC1,				; AC1,					400273' 400 01 0 00 000000
	JRST	L.22				; L.22					400274' 254 00 0 00 400372'
L.15:	LDB	AC1,C.17			; AC1,[POINT 16,5(AC3),35]  <0,16>	400275' 135 01 0 00 400377'		0381
	SUB	AC1,AC2				; AC1,AC2				400276' 274 01 0 00 000002
	AOJA	AC1,L.20			; AC1,L.20				400277' 344 01 0 00 400363'
L.16:	JUMPLE	AC1,L.18			; INDEX,L.18				400300' 323 01 0 00 400321'		0384
	MOVE	AC14,AC1			; AC14,INDEX				400301' 200 14 0 00 000001		0388
	IMULI	AC14,2				; AC14,2				400302' 221 14 0 00 000002
	MOVE	AC2,AC1				; AC2,INDEX				400303' 200 02 0 00 000001
	SUBI	AC2,1				; AC2,1					400304' 275 02 0 00 000001
	IMULI	AC2,2				; AC2,2					400305' 221 02 0 00 000002
	SETZ	AC5,				; SUB_INDEX,				400306' 400 05 0 00 000000		0387
L.17:	MOVE	AC4,LIBEPT			; AC4,LIBEPT				400307' 200 04 0 00 000000*		0388
	ADD	AC4,AC5				; AC4,SUB_INDEX				400310' 270 04 0 00 000005
	MOVE	AC16,AC4			; AC16,AC4				400311' 200 16 0 00 000004
	ADD	AC16,AC14			; AC16,AC14				400312' 270 16 0 00 000014
	ADD	AC4,AC2				; AC4,AC2				400313' 270 04 0 00 000002
	MOVE	AC13,0(AC4)			; AC13,0(AC4)				400314' 200 13 0 04 000000
	MOVEM	AC13,0(AC16)			; AC13,0(AC16)				400315' 202 13 0 16 000000
	ADDI	AC5,1				; SUB_INDEX,1				400316' 271 05 0 00 000001		0387
	CAIG	AC5,1				; SUB_INDEX,1				400317' 307 05 0 00 000001
	JRST	L.17				; L.17					400320' 254 00 0 00 400307'
L.18:	JUMPE	AC1,L.19			; INDEX,L.19				400321' 322 01 0 00 400345'		0390
	MOVE	AC4,LIBEPT			; AC4,LIBEPT				400322' 200 04 0 00 000000*
	MOVE	AC2,AC1				; AC2,INDEX				400323' 200 02 0 00 000001
	IMULI	AC2,2				; AC2,2					400324' 221 02 0 00 000002
	ADD	AC4,AC2				; AC4,AC2				400325' 270 04 0 00 000002
	MOVE	AC2,-6(SP)			; AC2,NAME				400326' 200 02 0 17 777772
	LDB	AC5,C.9				; AC5,[POINT 16,0(AC4),17]  <18,16>	400327' 135 05 0 00 400230'
	CAMGE	AC5,0(AC2)			; AC5,0(AC2)				400330' 315 05 0 02 000000
	JRST	L.19				; L.19					400331' 254 00 0 00 400345'
	MOVE	AC4,LIBEPT			; AC4,LIBEPT				400332' 200 04 0 00 000000*
	MOVE	AC2,AC1				; AC2,INDEX				400333' 200 02 0 00 000001
	IMULI	AC2,2				; AC2,2					400334' 221 02 0 00 000002
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  17
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (5)

	ADD	AC4,AC2				; AC4,AC2				400335' 270 04 0 00 000002
	MOVE	AC2,-6(SP)			; AC2,NAME				400336' 200 02 0 17 777772		0391
	LDB	AC5,C.9				; AC5,[POINT 16,0(AC4),17]  <18,16>	400337' 135 05 0 00 400230'		0390
	CAME	AC5,0(AC2)			; AC5,0(AC2)				400340' 312 05 0 02 000000
	JRST	L.20				; L.20					400341' 254 00 0 00 400363'
	LDB	AC5,C.10			; AC5,[POINT 16,0(AC4),35]  <0,16>	400342' 135 05 0 00 400231'		0391
	CAML	AC5,1(AC2)			; AC5,1(AC2)				400343' 311 05 0 02 000001
	JRST	L.20				; L.20					400344' 254 00 0 00 400363'
L.19:	MOVE	AC5,LIBEPT			; AC5,LIBEPT				400345' 200 05 0 00 000000*		0395
	MOVE	AC2,AC1				; AC2,INDEX				400346' 200 02 0 00 000001
	IMULI	AC2,2				; AC2,2					400347' 221 02 0 00 000002
	ADD	AC5,AC2				; AC5,AC2				400350' 270 05 0 00 000002
	MOVE	AC4,-6(SP)			; AC4,NAME				400351' 200 04 0 17 777772
	MOVE	AC2,0(AC4)			; AC2,0(AC4)				400352' 200 02 0 04 000000
	DPB	AC2,C.18			; AC2,[POINT 16,0(AC5),17]  <18,16>	400353' 137 02 0 00 400400'
	MOVE	AC2,1(AC4)			; AC2,1(AC4)				400354' 200 02 0 04 000001		0396
	DPB	AC2,C.19			; AC2,[POINT 16,0(AC5),35]  <0,16>	400355' 137 02 0 00 400401'
	MOVE	AC2,-5(SP)			; AC2,BLOCK				400356' 200 02 0 17 777773		0397
	DPB	AC2,C.20			; AC2,[POINT 16,1(AC5),17]  <18,16>	400357' 137 02 0 00 400402'
	MOVE	AC2,-4(SP)			; AC2,OFFSET				400360' 200 02 0 17 777774		0398
	DPB	AC2,C.21			; AC2,[POINT 16,1(AC5),35]  <0,16>	400361' 137 02 0 00 400403'
	JRST	L.21				; L.21					400362' 254 00 0 00 400364'		0393
L.20:	SOJGE	AC1,L.16			; INDEX,L.16				400363' 365 01 0 00 400300'		0381
L.21:	LDB	AC1,C.16			; AC1,[POINT 16,6(AC3),17]  <18,16>	400364' 135 01 0 00 400376'		0403
	SUBI	AC1,1				; AC1,1					400365' 275 01 0 00 000001
	DPB	AC1,C.16			; AC1,[POINT 16,6(AC3),17]  <18,16>	400366' 137 01 0 00 400376'
	MOVEI	AC1,1				; AC1,1					400367' 201 01 0 00 000001		0404
	MOVEM	AC1,EPT_CHANGED			; AC1,EPT_CHANGED			400370' 202 01 0 00 010000'
	MOVEM	AC1,HDR_CHANGED			; AC1,HDR_CHANGED			400371' 202 01 0 00 010021'
L.22:	POP	SP,AC16				; SP,AC16				400372' 262 17 0 00 000016		0345
	POP	SP,AC14				; SP,AC14				400373' 262 17 0 00 000014
	POP	SP,AC13				; SP,AC13				400374' 262 17 0 00 000013
	POPJ	SP,				; SP,					400375' 263 17 0 00 000000
C.16:	POINT	16,6(AC3),17			; 16,6(AC3),17				400376' 22 20 0 03 000006
C.17:	POINT	16,5(AC3),35			; 16,5(AC3),35				400377' 00 20 0 03 000005
C.18:	POINT	16,0(AC5),17			; 16,0(AC5),17				400400' 22 20 0 05 000000
C.19:	POINT	16,0(AC5),35			; 16,0(AC5),35				400401' 00 20 0 05 000000
C.20:	POINT	16,1(AC5),17			; 16,1(AC5),17				400402' 22 20 0 05 000001
C.21:	POINT	16,1(AC5),35			; 16,1(AC5),35				400403' 00 20 0 05 000001

; Routine Size:  79 words
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  18
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (6)

;   0406  1	ROUTINE EPT_PURGE (BLOCK, OFFSET) : NOVALUE =
;   0407  1	
;   0408  1	!++
;   0409  1	! FUNCTIONAL DESCRIPTION:
;   0410  1	!
;   0411  1	!
;   0412  1	!
;   0413  1	!
;   0414  1	! FORMAL PARAMETERS:
;   0415  1	!
;   0416  1	!
;   0417  1	! IMPLICIT INPUTS:
;   0418  1	!
;   0419  1	!	NONE
;   0420  1	!
;   0421  1	! IMPLICIT OUTPUTS:
;   0422  1	!
;   0423  1	!	NONE
;   0424  1	!
;   0425  1	! ROUTINE VALUE:
;   0426  1	!
;   0427  1	!	NONE
;   0428  1	!
;   0429  1	! SIDE EFFECTS
;   0430  1	!
;   0431  1	!	NONE
;   0432  1	!
;   0433  1	!--
;   0434  1	
;   0435  2	    BEGIN
;   0436  2	
;   0437  2	    LOCAL
;   0438  2		NEW_COUNT;
;   0439  2	
;   0440  2	    NEW_COUNT = 0;
;   0441  2	
;   0442  2	    INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
;   0443  3		BEGIN
;   0444  3	
;   0445  3		IF .LIBEPT [.INDEX, EPT_BLOCK] NEQ .BLOCK OR .LIBEPT [.INDEX, EPT_OFFSET] NEQ .OFFSET
;   0446  3		THEN
;   0447  4		    BEGIN
;   0448  4	
;   0449  4		    IF .INDEX NEQ .NEW_COUNT
;   0450  4		    THEN
;   0451  4	
;   0452  4			INCR SUB_INDEX FROM 0 TO EPT_LENGTH - 1 DO
;   0453  4			    LIBEPT [.NEW_COUNT, .SUB_INDEX, 0, %BPVAL, 0] = .LIBEPT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0]
;   0454  4	
;   0455  4		    ;
;   0456  4		    NEW_COUNT = .NEW_COUNT + 1;
;   0457  3		    END;
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  19
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (6)

;   0458  3	
;   0459  2		END;
;   0460  2	
;   0461  3	    IF .LIBHDR [LIB_EPT_AVAILABLE] NEQ (.LIBHDR [LIB_EPT_ALLOCATED] - .NEW_COUNT)
;   0462  2	    THEN
;   0463  3		BEGIN
;   0464  3		LIBHDR [LIB_EPT_AVAILABLE] = .LIBHDR [LIB_EPT_ALLOCATED] - .NEW_COUNT;
;   0465  3		HDR_CHANGED = EPT_CHANGED = TRUE;
;   0466  2		END;
;   0467  2	
;   0468  1	    END;					!OF EPT_PURGE


EPT_PURGE:
	PUSH	SP,AC10				; SP,AC10				400404' 261 17 0 00 000010		0406
	PUSH	SP,AC11				; SP,AC11				400405' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				400406' 261 17 0 00 000012
	PUSH	SP,AC13				; SP,AC13				400407' 261 17 0 00 000013
	PUSH	SP,AC14				; SP,AC14				400410' 261 17 0 00 000014
	PUSH	SP,AC16				; SP,AC16				400411' 261 17 0 00 000016
	SETZ	AC1,				; NEW_COUNT,				400412' 400 01 0 00 000000		0440
	MOVE	AC4,LIBHDR			; AC4,LIBHDR				400413' 200 04 0 00 000000*		0442
	LDB	AC2,C.22			; AC2,[POINT 16,5(AC4),35]  <0,16>	400414' 135 02 0 00 400477'
	LDB	AC3,C.23			; AC3,[POINT 16,6(AC4),17]  <18,16>	400415' 135 03 0 00 400500'
	SUB	AC2,AC3				; AC2,AC3				400416' 274 02 0 00 000003
	MOVE	AC12,LIBEPT			; AC12,LIBEPT				400417' 200 12 0 00 000000*		0445
	SETO	AC11,				; INDEX,				400420' 474 11 0 00 000000		0442
	JRST	L.27				; L.27					400421' 254 00 0 00 400454'
L.23:	MOVE	AC14,AC11			; AC14,INDEX				400422' 200 14 0 00 000011		0445
	IMULI	AC14,2				; AC14,2				400423' 221 14 0 00 000002
	MOVE	AC3,AC12			; AC3,AC12				400424' 200 03 0 00 000012
	ADD	AC3,AC14			; AC3,AC14				400425' 270 03 0 00 000014
	LDB	AC5,C.24			; AC5,[POINT 16,1(AC3),17]  <18,16>	400426' 135 05 0 00 400501'
	CAME	AC5,-10(SP)			; AC5,BLOCK				400427' 312 05 0 17 777770
	JRST	L.24				; L.24					400430' 254 00 0 00 400434'
	LDB	AC5,C.25			; AC5,[POINT 16,1(AC3),35]  <0,16>	400431' 135 05 0 00 400502'
	CAMN	AC5,-7(SP)			; AC5,OFFSET				400432' 316 05 0 17 777771
	JRST	L.27				; L.27					400433' 254 00 0 00 400454'
L.24:	CAMN	AC11,AC1			; INDEX,NEW_COUNT			400434' 316 11 0 00 000001		0449
	JRST	L.26				; L.26					400435' 254 00 0 00 400453'
	MOVE	AC13,AC1			; AC13,NEW_COUNT			400436' 200 13 0 00 000001		0453
	IMULI	AC13,2				; AC13,2				400437' 221 13 0 00 000002
	SETZ	AC3,				; SUB_INDEX,				400440' 400 03 0 00 000000		0452
L.25:	MOVE	AC5,AC12			; AC5,AC12				400441' 200 05 0 00 000012		0453
	ADD	AC5,AC3				; AC5,SUB_INDEX				400442' 270 05 0 00 000003
	MOVE	AC16,AC5			; AC16,AC5				400443' 200 16 0 00 000005
	ADD	AC16,AC13			; AC16,AC13				400444' 270 16 0 00 000013
	ADD	AC5,AC14			; AC5,AC14				400445' 270 05 0 00 000014
	MOVE	AC10,0(AC5)			; AC10,0(AC5)				400446' 200 10 0 05 000000
	MOVEM	AC10,0(AC16)			; AC10,0(AC16)				400447' 202 10 0 16 000000
	ADDI	AC3,1				; SUB_INDEX,1				400450' 271 03 0 00 000001		0452
	CAIG	AC3,1				; SUB_INDEX,1				400451' 307 03 0 00 000001
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  20
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (6)

	JRST	L.25				; L.25					400452' 254 00 0 00 400441'
L.26:	ADDI	AC1,1				; NEW_COUNT,1				400453' 271 01 0 00 000001		0456
L.27:	ADDI	AC11,1				; INDEX,1				400454' 271 11 0 00 000001		0442
	CAMGE	AC11,AC2			; INDEX,AC2				400455' 315 11 0 00 000002
	JRST	L.23				; L.23					400456' 254 00 0 00 400422'
	LDB	AC2,C.22			; AC2,[POINT 16,5(AC4),35]  <0,16>	400457' 135 02 0 00 400477'		0461
	SUB	AC2,AC1				; AC2,NEW_COUNT				400460' 274 02 0 00 000001
	LDB	AC3,C.23			; AC3,[POINT 16,6(AC4),17]  <18,16>	400461' 135 03 0 00 400500'
	CAMN	AC3,AC2				; AC3,AC2				400462' 316 03 0 00 000002
	JRST	L.28				; L.28					400463' 254 00 0 00 400470'
	DPB	AC2,C.23			; AC2,[POINT 16,6(AC4),17]  <18,16>	400464' 137 02 0 00 400500'		0464
	MOVEI	AC1,1				; AC1,1					400465' 201 01 0 00 000001		0465
	MOVEM	AC1,EPT_CHANGED			; AC1,EPT_CHANGED			400466' 202 01 0 00 010000'
	MOVEM	AC1,HDR_CHANGED			; AC1,HDR_CHANGED			400467' 202 01 0 00 010021'
L.28:	POP	SP,AC16				; SP,AC16				400470' 262 17 0 00 000016		0406
	POP	SP,AC14				; SP,AC14				400471' 262 17 0 00 000014
	POP	SP,AC13				; SP,AC13				400472' 262 17 0 00 000013
	POP	SP,AC12				; SP,AC12				400473' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				400474' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				400475' 262 17 0 00 000010
	POPJ	SP,				; SP,					400476' 263 17 0 00 000000
C.22:	POINT	16,5(AC4),35			; 16,5(AC4),35				400477' 00 20 0 04 000005
C.23:	POINT	16,6(AC4),17			; 16,6(AC4),17				400500' 22 20 0 04 000006
C.24:	POINT	16,1(AC3),17			; 16,1(AC3),17				400501' 22 20 0 03 000001
C.25:	POINT	16,1(AC3),35			; 16,1(AC3),35				400502' 00 20 0 03 000001

; Routine Size:  63 words


;   0469  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  21
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

;   0470  1	GLOBAL ROUTINE FILE_INSERT (FILBLK, REPLACE, EPT, RG, SS) =
;   0471  1	
;   0472  1	!++
;   0473  1	! FUNCTIONAL DESCRIPTION:
;   0474  1	!
;   0475  1	!
;   0476  1	!
;   0477  1	!
;   0478  1	! FORMAL PARAMETERS:
;   0479  1	!
;   0480  1	!
;   0481  1	! IMPLICIT INPUTS:
;   0482  1	!
;   0483  1	!	NONE
;   0484  1	!
;   0485  1	! IMPLICIT OUTPUTS:
;   0486  1	!
;   0487  1	!	NONE
;   0488  1	!
;   0489  1	! ROUTINE VALUE:
;   0490  1	!
;   0491  1	!	NONE
;   0492  1	!
;   0493  1	! SIDE EFFECTS
;   0494  1	!
;   0495  1	!	NONE
;   0496  1	!
;   0497  1	!--
;   0498  1	
;   0499  2	    BEGIN
;   0500  2	
;   0501  2	    MACRO
; M 0502  2		ABORT (text) =
; M 0503  2		    RETURN
; M 0504  2			BEGIN
; M 0505  2			%IF %NULL (%REMAINING)
; M 0506  2			%THEN
; M 0507  2			    TYPLN (1, CH$ASCIZ (FATAL, text))
; M 0508  2			%ELSE
; M 0509  2			    TYPLN (1, CH$ASCIZ (FATAL, text), %REMAINING)
; M 0510  2			%FI;
; M 0511  2			OBJ_CLOSE ();
; M 0512  2			FALSE
;   0513  2			END %;
;   0514  2	
;   0515  2	    LOCAL
;   0516  2		DELETE_BLOCK,
;   0517  2		DELETE_OFFSET,
;   0518  2		INSERT_BLOCK,
;   0519  2		INSERT_OFFSET,
;   0520  2		MODULE_NAME : VECTOR [2],
;   0521  2		OBJECT_BLOCK,
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  22
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

;   0522  2		OBJECT_OFFSET,
;   0523  2		RECORD_COUNT,
;   0524  2		RECORD_TYPE;
;   0525  2	
;   0526  2	    IF NOT OBJ_OPEN (.FILBLK) THEN RETURN FALSE;
;   0527  2	
;   0528  2	    WHILE TRUE DO
;   0529  3		BEGIN
;   0530  3		!
;   0531  3		! Mark this record position and check for EOF
;   0532  3		!
;   0533  3		OBJ_MARK ();
;   0534  3	
;   0535  3		IF OBJ_RECORD () LSS 0 THEN EXITLOOP;
;   0536  3	
;   0537  3		!
;   0538  3		! Set up the module header
;   0539  3		!
;   0540  4		BEGIN
;   0541  4	
;   0542  4		LOCAL
;   0543  4		    TIME_BLOCK : VECTOR [8];
;   0544  4	
;   0545  4		HDR [HDR_STATUS] = 0;
;   0546  4		HDR [HDR_ATTRIBUTES] = 0;
;   0547  4		HDR [HDR_SS] = .SS;
;   0548  4		HDR [HDR_SIZE_1] = 0;
;   0549  4		HDR [HDR_SIZE_2] = 2 + HDR_SIZE;
;   0550  4		GETTIM (TIME_BLOCK);
;   0551  4		HDR [HDR_YEAR] = .TIME_BLOCK [0];
;   0552  4		HDR [HDR_MONTH] = .TIME_BLOCK [1];
;   0553  4		HDR [HDR_DAY] = .TIME_BLOCK [2];
;   0554  3		END;
;   0555  3		!
;   0556  3		! Set library file insertion position
;   0557  3		!
;   0558  3		INSERT_BLOCK = .LIBHDR [LIB_INSERT_BLOCK];
;   0559  3		INSERT_OFFSET = .LIBHDR [LIB_INSERT_OFFSET];
;   0560  3		POSFIL (.LIB_FILBLK, .INSERT_BLOCK, .INSERT_OFFSET + 2 + HDR_SIZE);
;   0561  3		DELETE_BLOCK = DELETE_OFFSET = 0;
;   0562  3		!
;   0563  3		! Pass 1: Copy GSD records to END GSD record
;   0564  3		!
;   0565  3		!  If module name encountered, insert it in MNT
;   0566  3		!
;   0567  3		!  If entry point encountered, insert it in EPT
;   0568  3		!
;   0569  3		OBJ_SET ();
;   0570  3	
;   0571  3		WHILE TRUE DO
;   0572  4		    BEGIN
;   0573  4	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  23
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

;   0574  4		    IF (RECORD_COUNT = OBJ_RECORD () - 2) LSS 0
;   0575  4		    THEN
;   0576  4			ABORT ('Invalid format for input object file "%@"', FILNM, .FILBLK);
;   0577  4	
;   0578  4		    CASE (RECORD_TYPE = OBJ_WORD ()) FROM OBJ_LOW TO OBJ_HIGH OF
;   0579  4			SET
;   0580  4	
;   0581  4			[OBJ_GSD] :
;   0582  5			    BEGIN
;   0583  5			    COPY (.RECORD_COUNT + 2);
;   0584  5			    COPY (.RECORD_TYPE);
;   0585  5	
;   0586  5			    WHILE (RECORD_COUNT = .RECORD_COUNT - 8) GEQ 0 DO
;   0587  6				BEGIN
;   0588  6	
;   0589  6				LOCAL
;   0590  6				    NAME : VECTOR [2],
;   0591  6				    TYPE;
;   0592  6	
;   0593  6				NAME [0] = COPY (OBJ_WORD ());
;   0594  6				NAME [1] = COPY (OBJ_WORD ());
;   0595  6				TYPE = COPY (OBJ_WORD ());
;   0596  6				COPY (OBJ_WORD ());
;   0597  6	
;   0598  6				CASE .TYPE<8, 8> FROM GSD_LOW TO GSD_HIGH OF
;   0599  6				    SET
;   0600  6	
;   0601  6				    [GSD_MOD] :
;   0602  7					BEGIN
;   0603  7	
;   0604  7					LOCAL
;   0605  7					    INDEX;
;   0606  7	
;   0607  7					MODULE_NAME [0] = .NAME [0];
;   0608  7					MODULE_NAME [1] = .NAME [1];
;   0609  7	
;   0610  7					IF (INDEX = MNT_INDEX (NAME)) GEQ 0
;   0611  7					THEN
;   0612  7	
;   0613  7					    IF .REPLACE
;   0614  7					    THEN
;   0615  8						BEGIN
;   0616  8						DELETE_BLOCK = .LIBMNT [.INDEX, MNT_BLOCK];
;   0617  8						DELETE_OFFSET = .LIBMNT [.INDEX, MNT_OFFSET];
;   0618  8						EPT_PURGE (.DELETE_BLOCK, .DELETE_OFFSET);
;   0619  8						MNT_PURGE (.DELETE_BLOCK, .DELETE_OFFSET);
;   0620  8						END
;   0621  7					    ELSE
; P 0622  7						ABORT ('Duplicate module name "%2R" in library "%@"', .NAME [0],
;   0623  7						    .NAME [1], FILNM, .LIB_FILBLK);
;   0624  7	
;   0625  7					IF NOT MNT_INSERT (NAME, .INSERT_BLOCK, .INSERT_OFFSET)
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  24
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

;   0626  7					THEN
;   0627  7					    ABORT ('MNT exceeded in library "%@"', FILNM, .LIB_FILBLK);
;   0628  7	
;   0629  6					END;
;   0630  6	
;   0631  6				    [GSD_GLOBAL] :
;   0632  6	
;   0633  6					IF .EPT AND .TYPE<3, 1>
;   0634  6					THEN
;   0635  7					    BEGIN
;   0636  7	
;   0637  7	                                    local
;   0638  7	                                         INDEX;
;   0639  7	
;   0640  7					    IF (INDEX = EPT_INDEX (NAME)) GEQ 0
;   0641  7					    THEN
;   0642  8	                                        begin
;   0643  8	
;   0644  8	                                        if .RG
;   0645  8	                                        then
;   0646  9	                                            begin
;   0647  9	                                            LIBEPT [.INDEX, EPT_BLOCK] = .INSERT_BLOCK;
;   0648  9	                                            LIBEPT [.INDEX, EPT_OFFSET] = .INSERT_OFFSET;
;   0649  9	                                            end
;   0650  8	                                        else
; P 0651  8	                                            ABORT ('Duplicate entry point "%2R" in library "%@"',
;   0652  8	                                                   .NAME [0], .NAME [1], FILNM, .LIB_FILBLK);
;   0653  8	
;   0654  8	                                        end
;   0655  7	                                    else
;   0656  7	
;   0657  7	                                       IF NOT EPT_INSERT (NAME, .INSERT_BLOCK, .INSERT_OFFSET)
;   0658  7	                                       THEN
;   0659  7	                                           ABORT ('EPT exceeded in library "%@"', FILNM, .LIB_FILBLK);
;   0660  7	
;   0661  6					    END;
;   0662  6	
;   0663  6				    [GSD_VERSION] :
;   0664  7					BEGIN
;   0665  7					HDR [HDR_IDENT_1] = .NAME [0];
;   0666  7					HDR [HDR_IDENT_2] = .NAME [1];
;   0667  6					END;
;   0668  6	
;   0669  6				    [INRANGE] :
;   0670  6					0;
;   0671  6	
;   0672  6				    [OUTRANGE] :
;   0673  6					ABORT ('Invalid format for input object file "%@"', FILNM, .FILBLK);
;   0674  6				    TES
;   0675  6	
;   0676  5				END;
;   0677  5	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  25
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

;   0678  4			    END;
;   0679  4	
;   0680  4			[INRANGE] :
;   0681  4			    0;
;   0682  4	
;   0683  4			[OBJ_END_GSD] :
;   0684  4			    EXITLOOP
;   0685  5				BEGIN
;   0686  5				COPY (.RECORD_COUNT + 2);
;   0687  5				COPY (.RECORD_TYPE);
;   0688  4				END;
;   0689  4	
;   0690  4			[OUTRANGE] :
;   0691  4			    ABORT ('Invalid format for input object file "%@"', FILNM, .FILBLK);
;   0692  4			TES;
;   0693  4	
;   0694  3		    END;
;   0695  3	
;   0696  3		!
;   0697  3		! Pass 2: Copy non-GSD records to END MOD record
;   0698  3		!
;   0699  3		OBJ_SET ();
;   0700  3	
;   0701  3		WHILE TRUE DO
;   0702  4		    BEGIN
;   0703  4		    RECORD_COUNT = OBJ_RECORD () - 2;
;   0704  4	
;   0705  4		    CASE (RECORD_TYPE = OBJ_WORD ()) FROM OBJ_LOW TO OBJ_HIGH OF
;   0706  4			SET
;   0707  4	
;   0708  4			[OBJ_GSD, OBJ_END_GSD] :
;   0709  4			    0;
;   0710  4	
;   0711  4			[INRANGE] :
;   0712  5			    BEGIN
;   0713  5			    COPY (.RECORD_COUNT + 2);
;   0714  5			    COPY (.RECORD_TYPE);
;   0715  5	
;   0716  5			    WHILE (RECORD_COUNT = .RECORD_COUNT - 2) GEQ 0 DO
;   0717  5				COPY (OBJ_WORD ());
;   0718  5	
;   0719  4			    END;
;   0720  4	
;   0721  4			[OBJ_END_MOD] :
;   0722  4			    EXITLOOP
;   0723  5				BEGIN
;   0724  5				COPY (.RECORD_COUNT + 2);
;   0725  5				COPY (.RECORD_TYPE);
;   0726  4				END;
;   0727  4			TES;
;   0728  4	
;   0729  3		    END;
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  26
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

;   0730  3	
;   0731  3		!
;   0732  3		! Set new insert position
;   0733  3		!
;   0734  4		BEGIN
;   0735  4	
;   0736  4		LOCAL
;   0737  4		    BLOCK,
;   0738  4		    OFFSET;
;   0739  4	
;   0740  4		FILPOS (.LIB_FILBLK, BLOCK, OFFSET);
;   0741  4		LIBHDR [LIB_INSERT_BLOCK] = .BLOCK;
;   0742  4		LIBHDR [LIB_INSERT_OFFSET] = .OFFSET;
;   0743  4		HDR_CHANGED = TRUE;
;   0744  3		END;
;   0745  3		!
;   0746  3		! Write out header record
;   0747  3		!
;   0748  4		BEGIN
;   0749  4	
;   0750  4		LOCAL
;   0751  4		    LENGTH;
;   0752  4	
;   0753  4		POSFIL (.LIB_FILBLK, .INSERT_BLOCK, .INSERT_OFFSET);
;   0754  4		CH$WCHAR (HDR_SIZE, CH$PTR (LENGTH,, 18));
;   0755  4		PUTFIL (.LIB_FILBLK, CH$PTR (LENGTH,, 18), 1);
;   0756  4		PUTFIL (.LIB_FILBLK, CH$PTR (HDR,, 18), HDR_SIZE/2);
;   0757  3		END;
;   0758  3		!
;   0759  3		! Delete replaced module
;   0760  3		!
;   0761  3	
;   0762  3		IF .DELETE_BLOCK NEQ 0 THEN HDR_DELETE (.DELETE_BLOCK, .DELETE_OFFSET);
;   0763  3	
;   0764  3		IF NOT .FLAGS [M_FAST] THEN LIBUPD ();
;   0765  3	
; P 0766  3		TYPLN (0,
; P 0767  3		    (IF .DELETE_BLOCK EQL 0 THEN CH$ASCIZ ('[Module "%2R" inserted]') ELSE CH$ASCIZ (
;   0768  3			    '[Module "%2R" replaced]')), .MODULE_NAME [0], .MODULE_NAME [1]);
;   0769  2		END;
;   0770  2	
;   0771  2	    !
;   0772  2	    ! Finished with object file
;   0773  2	    !
;   0774  2	    OBJ_CLOSE ();
;   0775  2	    TRUE
;   0776  1	    END;					!OF FILE_INSERT


P.AAC:	BYTE	(7)"*","F","A","T","A"		; *FATA					400503' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","I"		; L*  I					400504' 114 052 040 040 111
	BYTE	(7)"n","v","a","l","i"		; nvali					400505' 156 166 141 154 151
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  27
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

	BYTE	(7)"d"," ","f","o","r"		; d for					400506' 144 040 146 157 162
	BYTE	(7)"m","a","t"," ","f"		; mat f					400507' 155 141 164 040 146
	BYTE	(7)"o","r"," ","i","n"		; or in					400510' 157 162 040 151 156
	BYTE	(7)"p","u","t"," ","o"		; put o					400511' 160 165 164 040 157
	BYTE	(7)"b","j","e","c","t"		; bject					400512' 142 152 145 143 164
	BYTE	(7)" ","f","i","l","e"		;  file					400513' 040 146 151 154 145
	BYTE	(7)" ",042,"%","@",042		;  "%@"					400514' 040 042 045 100 042
	BYTE	(7)000,000,000,000,000		;					400515' 000 000 000 000 000
P.AAD:	BYTE	(7)"*","F","A","T","A"		; *FATA					400516' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","D"		; L*  D					400517' 114 052 040 040 104
	BYTE	(7)"u","p","l","i","c"		; uplic					400520' 165 160 154 151 143
	BYTE	(7)"a","t","e"," ","m"		; ate m					400521' 141 164 145 040 155
	BYTE	(7)"o","d","u","l","e"		; odule					400522' 157 144 165 154 145
	BYTE	(7)" ","n","a","m","e"		;  name					400523' 040 156 141 155 145
	BYTE	(7)" ",042,"%","2","R"		;  "%2R					400524' 040 042 045 062 122
	BYTE	(7)042," ","i","n"," "		; " in					400525' 042 040 151 156 040
	BYTE	(7)"l","i","b","r","a"		; libra					400526' 154 151 142 162 141
	BYTE	(7)"r","y"," ",042,"%"		; ry "%					400527' 162 171 040 042 045
	BYTE	(7)"@",042,000,000,000		; @"					400530' 100 042 000 000 000
P.AAE:	BYTE	(7)"*","F","A","T","A"		; *FATA					400531' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","M"		; L*  M					400532' 114 052 040 040 115
	BYTE	(7)"N","T"," ","e","x"		; NT ex					400533' 116 124 040 145 170
	BYTE	(7)"c","e","e","d","e"		; ceede					400534' 143 145 145 144 145
	BYTE	(7)"d"," ","i","n"," "		; d in					400535' 144 040 151 156 040
	BYTE	(7)"l","i","b","r","a"		; libra					400536' 154 151 142 162 141
	BYTE	(7)"r","y"," ",042,"%"		; ry "%					400537' 162 171 040 042 045
	BYTE	(7)"@",042,000,000,000		; @"					400540' 100 042 000 000 000
P.AAF:	BYTE	(7)"*","F","A","T","A"		; *FATA					400541' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","D"		; L*  D					400542' 114 052 040 040 104
	BYTE	(7)"u","p","l","i","c"		; uplic					400543' 165 160 154 151 143
	BYTE	(7)"a","t","e"," ","e"		; ate e					400544' 141 164 145 040 145
	BYTE	(7)"n","t","r","y"," "		; ntry					400545' 156 164 162 171 040
	BYTE	(7)"p","o","i","n","t"		; point					400546' 160 157 151 156 164
	BYTE	(7)" ",042,"%","2","R"		;  "%2R					400547' 040 042 045 062 122
	BYTE	(7)042," ","i","n"," "		; " in					400550' 042 040 151 156 040
	BYTE	(7)"l","i","b","r","a"		; libra					400551' 154 151 142 162 141
	BYTE	(7)"r","y"," ",042,"%"		; ry "%					400552' 162 171 040 042 045
	BYTE	(7)"@",042,000,000,000		; @"					400553' 100 042 000 000 000
P.AAG:	BYTE	(7)"*","F","A","T","A"		; *FATA					400554' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","E"		; L*  E					400555' 114 052 040 040 105
	BYTE	(7)"P","T"," ","e","x"		; PT ex					400556' 120 124 040 145 170
	BYTE	(7)"c","e","e","d","e"		; ceede					400557' 143 145 145 144 145
	BYTE	(7)"d"," ","i","n"," "		; d in					400560' 144 040 151 156 040
	BYTE	(7)"l","i","b","r","a"		; libra					400561' 154 151 142 162 141
	BYTE	(7)"r","y"," ",042,"%"		; ry "%					400562' 162 171 040 042 045
	BYTE	(7)"@",042,000,000,000		; @"					400563' 100 042 000 000 000
P.AAH:	BYTE	(7)"*","F","A","T","A"		; *FATA					400564' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","I"		; L*  I					400565' 114 052 040 040 111
	BYTE	(7)"n","v","a","l","i"		; nvali					400566' 156 166 141 154 151
	BYTE	(7)"d"," ","f","o","r"		; d for					400567' 144 040 146 157 162
	BYTE	(7)"m","a","t"," ","f"		; mat f					400570' 155 141 164 040 146
	BYTE	(7)"o","r"," ","i","n"		; or in					400571' 157 162 040 151 156
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  28
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

	BYTE	(7)"p","u","t"," ","o"		; put o					400572' 160 165 164 040 157
	BYTE	(7)"b","j","e","c","t"		; bject					400573' 142 152 145 143 164
	BYTE	(7)" ","f","i","l","e"		;  file					400574' 040 146 151 154 145
	BYTE	(7)" ",042,"%","@",042		;  "%@"					400575' 040 042 045 100 042
	BYTE	(7)000,000,000,000,000		;					400576' 000 000 000 000 000
P.AAI:	BYTE	(7)"*","F","A","T","A"		; *FATA					400577' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","I"		; L*  I					400600' 114 052 040 040 111
	BYTE	(7)"n","v","a","l","i"		; nvali					400601' 156 166 141 154 151
	BYTE	(7)"d"," ","f","o","r"		; d for					400602' 144 040 146 157 162
	BYTE	(7)"m","a","t"," ","f"		; mat f					400603' 155 141 164 040 146
	BYTE	(7)"o","r"," ","i","n"		; or in					400604' 157 162 040 151 156
	BYTE	(7)"p","u","t"," ","o"		; put o					400605' 160 165 164 040 157
	BYTE	(7)"b","j","e","c","t"		; bject					400606' 142 152 145 143 164
	BYTE	(7)" ","f","i","l","e"		;  file					400607' 040 146 151 154 145
	BYTE	(7)" ",042,"%","@",042		;  "%@"					400610' 040 042 045 100 042
	BYTE	(7)000,000,000,000,000		;					400611' 000 000 000 000 000
P.AAJ:	BYTE	(7)"[","M","o","d","u"		; [Modu					400612' 133 115 157 144 165
	BYTE	(7)"l","e"," ",042,"%"		; le "%					400613' 154 145 040 042 045
	BYTE	(7)"2","R",042," ","i"		; 2R" i					400614' 062 122 042 040 151
	BYTE	(7)"n","s","e","r","t"		; nsert					400615' 156 163 145 162 164
	BYTE	(7)"e","d","]",000,000		; ed]					400616' 145 144 135 000 000
P.AAK:	BYTE	(7)"[","M","o","d","u"		; [Modu					400617' 133 115 157 144 165
	BYTE	(7)"l","e"," ",042,"%"		; le "%					400620' 154 145 040 042 045
	BYTE	(7)"2","R",042," ","r"		; 2R" r					400621' 062 122 042 040 162
	BYTE	(7)"e","p","l","a","c"		; eplac					400622' 145 160 154 141 143
	BYTE	(7)"e","d","]",000,000		; ed]					400623' 145 144 135 000 000


FILE_INSERT::
	PUSH	SP,AC0				; SP,AC0				400624' 261 17 0 00 000000		0470
	PUSH	SP,AC10				; SP,AC10				400625' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				400626' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				400627' 261 17 0 00 000012
	PUSH	SP,AC13				; SP,AC13				400630' 261 17 0 00 000013
	PUSH	SP,AC14				; SP,AC14				400631' 261 17 0 00 000014
	PUSH	SP,AC16				; SP,AC16				400632' 261 17 0 00 000016
	ADJSP	SP,17				; SP,17					400633' 105 17 0 00 000017
	PUSH	SP,-33(SP)			; SP,FILBLK				400634' 261 17 0 17 777745		0526
	PUSHJ	SP,OBJ_OPEN			; SP,OBJ_OPEN				400635' 260 17 0 00 000000*
	ADJSP	SP,-1				; SP,-1					400636' 105 17 0 00 777777
	TRNN	AC1,1				; AC1,1					400637' 606 01 0 00 000001
	JRST	L.46				; L.46					400640' 254 00 0 00 401175'
	MOVEI	AC1,-14(SP)			; AC1,TIME_BLOCK			400641' 201 01 0 17 777764		0552
	MOVE	AC13,AC1			; AC13,AC1				400642' 200 13 0 00 000001
	ADDI	AC13,1				; AC13,1				400643' 271 13 0 00 000001
	MOVEI	AC1,-14(SP)			; AC1,PRM_LIST				400644' 201 01 0 17 777764		0768
	MOVE	AC13,AC1			; AC13,AC1				400645' 200 13 0 00 000001
	ADDI	AC13,1				; AC13,1				400646' 271 13 0 00 000001
	MOVEI	AC1,-16(SP)			; AC1,MODULE_NAME			400647' 201 01 0 17 777762
	ADDI	AC1,1				; AC1,1					400650' 271 01 0 00 000001
	MOVEM	AC1,-1(SP)			; AC1,-1(SP)				400651' 202 01 0 17 777777
L.29:	PUSHJ	SP,OBJ_MARK			; SP,OBJ_MARK				400652' 260 17 0 00 000000*		0533
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  29
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

	PUSHJ	SP,OBJ_RECORD			; SP,OBJ_RECORD				400653' 260 17 0 00 000000*		0535
	JUMPL	AC1,L.60			; AC1,L.60				400654' 321 01 0 00 401351'
	MOVSI	AC1,177777			; AC1,177777				400655' 205 01 0 00 177777		0545
	ANDCAM	AC1,HDR				; AC1,HDR				400656' 412 01 0 00 010001'
	MOVE	AC1,-27(SP)			; AC1,SS				400657' 200 01 0 17 777751		0547
	DPB	AC1,C.26			; AC1,[POINT 1,HDR,9]  <26,1>		400660' 137 01 0 00 401364'
	MOVEI	AC1,177777			; AC1,177777				400661' 201 01 0 00 177777		0548
	ANDCAM	AC1,HDR				; AC1,HDR				400662' 412 01 0 00 010001'
	MOVEI	AC1,22				; AC1,22				400663' 201 01 0 00 000022		0549
	DPB	AC1,C.1				; AC1,[POINT 16,HDR+1,17]  <18,16>	400664' 137 01 0 00 400047'
	MOVEI	AC1,-14(SP)			; AC1,TIME_BLOCK			400665' 201 01 0 17 777764		0550
	PUSH	SP,AC1				; SP,AC1				400666' 261 17 0 00 000001
	PUSHJ	SP,GETTIM			; SP,GETTIM				400667' 260 17 0 00 000000*
	MOVE	AC1,-15(SP)			; AC1,TIME_BLOCK			400670' 200 01 0 17 777763		0551
	DPB	AC1,C.27			; AC1,[POINT 16,HDR+1,35]  <0,16>	400671' 137 01 0 00 401365'
	MOVE	AC1,0(AC13)			; AC1,0(AC13)				400672' 200 01 0 13 000000		0552
	DPB	AC1,C.28			; AC1,[POINT 16,HDR+2,17]  <18,16>	400673' 137 01 0 00 401366'
	MOVE	AC1,-13(SP)			; AC1,TIME_BLOCK+2			400674' 200 01 0 17 777765		0553
	DPB	AC1,C.29			; AC1,[POINT 16,HDR+2,35]  <0,16>	400675' 137 01 0 00 401367'
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				400676' 200 01 0 00 000000*		0558
	LDB	AC10,C.30			; INSERT_BLOCK,[POINT 16,12(AC1),35]  <0,16>
						;					400677' 135 10 0 00 401370'
	LDB	AC14,C.31			; INSERT_OFFSET,[POINT 16,13(AC1),17]  <18,16>
						;					400700' 135 14 0 00 401371'		0559
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				400701' 261 17 0 00 010022'		0560
	PUSH	SP,AC10				; SP,INSERT_BLOCK			400702' 261 17 0 00 000010
	MOVE	AC1,AC14			; AC1,INSERT_OFFSET			400703' 200 01 0 00 000014
	ADDI	AC1,22				; AC1,22				400704' 271 01 0 00 000022
	PUSH	SP,AC1				; SP,AC1				400705' 261 17 0 00 000001
	PUSHJ	SP,POSFIL			; SP,POSFIL				400706' 260 17 0 00 000000*
	SETZB	AC11,-4(SP)			; DELETE_BLOCK,DELETE_OFFSET		400707' 403 11 0 17 777774		0561
	PUSHJ	SP,OBJ_SET			; SP,OBJ_SET				400710' 260 17 0 00 000000*		0569
L.30:	PUSHJ	SP,OBJ_RECORD			; SP,OBJ_RECORD				400711' 260 17 0 00 000000*		0574
	MOVE	AC12,AC1			; RECORD_COUNT,AC1			400712' 200 12 0 00 000001
	SUBI	AC12,2				; RECORD_COUNT,2			400713' 275 12 0 00 000002
	JUMPGE	AC12,L.31			; RECORD_COUNT,L.31			400714' 325 12 0 00 400724'
	MOVEI	AC1,FILNM			; AC1,FILNM				400715' 201 01 0 00 000000*		0576
	MOVEM	AC1,-20(SP)			; AC1,PRM_LIST				400716' 202 01 0 17 777760
	MOVE	AC1,-37(SP)			; AC1,FILBLK				400717' 200 01 0 17 777741
	MOVEM	AC1,0(AC13)			; AC1,0(AC13)				400720' 202 01 0 13 000000
	PUSH	SP,C.6				; SP,[1]				400721' 261 17 0 00 400054'
	PUSH	SP,C.37				; SP,[POINT 7,P.AAC-1,34]  <1,7>	400722' 261 17 0 00 401377'
	JRST	L.34				; L.34					400723' 254 00 0 00 400747'
L.31:	PUSHJ	SP,OBJ_WORD			; SP,OBJ_WORD				400724' 260 17 0 00 000000*		0578
	MOVE	AC0,AC1				; RECORD_TYPE,AC1			400725' 200 00 0 00 000001
	MOVE	AC1,AC0				; AC1,RECORD_TYPE			400726' 200 01 0 00 000000
	SOJL	AC1,L.33			; AC1,L.33				400727' 361 01 0 00 400741'
	CAIGE	AC1,6				; AC1,6					400730' 305 01 0 00 000006
	JRST	L.32(AC1)			; L.32(AC1)				400731' 254 00 0 01 400733'
	JRST	L.33				; L.33					400732' 254 00 0 00 400741'
L.32:	JRST	L.35				; L.35					400733' 254 00 0 00 400755'
	JRST	L.50				; L.50					400734' 254 00 0 00 401207'
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  30
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

	JRST	L.30				; L.30					400735' 254 00 0 00 400711'
	JRST	L.30				; L.30					400736' 254 00 0 00 400711'
	JRST	L.30				; L.30					400737' 254 00 0 00 400711'
	JRST	L.30				; L.30					400740' 254 00 0 00 400711'
L.33:	MOVEI	AC1,FILNM			; AC1,FILNM				400741' 201 01 0 00 000000*		0691
	MOVEM	AC1,-20(SP)			; AC1,PRM_LIST				400742' 202 01 0 17 777760
	MOVE	AC1,-37(SP)			; AC1,FILBLK				400743' 200 01 0 17 777741
	MOVEM	AC1,0(AC13)			; AC1,0(AC13)				400744' 202 01 0 13 000000
	PUSH	SP,C.6				; SP,[1]				400745' 261 17 0 00 400054'
	PUSH	SP,C.38				; SP,[POINT 7,P.AAI-1,34]  <1,7>	400746' 261 17 0 00 401400'
L.34:	MOVEI	AC1,-22(SP)			; AC1,PRM_LIST				400747' 201 01 0 17 777756
	PUSH	SP,AC1				; SP,AC1				400750' 261 17 0 00 000001
	PUSHJ	SP,TYPLIN			; SP,TYPLIN				400751' 260 17 0 00 000000*
	PUSHJ	SP,OBJ_CLOSE			; SP,OBJ_CLOSE				400752' 260 17 0 00 000000*
	ADJSP	SP,-7				; SP,-7					400753' 105 17 0 00 777771
	JRST	L.46				; L.46					400754' 254 00 0 00 401175'
L.35:	MOVE	AC1,AC12			; AC1,RECORD_COUNT			400755' 200 01 0 00 000012		0583
	ADDI	AC1,2				; AC1,2					400756' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				400757' 261 17 0 00 000001
	PUSHJ	SP,COPY				; SP,COPY				400760' 260 17 0 00 400000'
	MOVEM	AC0,0(SP)			; RECORD_TYPE,0(SP)			400761' 202 00 0 17 000000		0584
	PUSHJ	SP,COPY				; SP,COPY				400762' 260 17 0 00 400000'
L.36:	SUBI	AC12,10				; RECORD_COUNT,10			400763' 275 12 0 00 000010		0586
	JUMPL	AC12,L.49			; RECORD_COUNT,L.49			400764' 321 12 0 00 401205'
	PUSHJ	SP,OBJ_WORD			; SP,OBJ_WORD				400765' 260 17 0 00 000000*		0593
	PUSH	SP,AC1				; SP,AC1				400766' 261 17 0 00 000001
	PUSHJ	SP,COPY				; SP,COPY				400767' 260 17 0 00 400000'
	MOVEM	AC1,-22(SP)			; AC1,NAME				400770' 202 01 0 17 777756
	PUSHJ	SP,OBJ_WORD			; SP,OBJ_WORD				400771' 260 17 0 00 000000*		0594
	PUSH	SP,AC1				; SP,AC1				400772' 261 17 0 00 000001
	PUSHJ	SP,COPY				; SP,COPY				400773' 260 17 0 00 400000'
	MOVEM	AC1,0(AC13)			; AC1,0(AC13)				400774' 202 01 0 13 000000
	PUSHJ	SP,OBJ_WORD			; SP,OBJ_WORD				400775' 260 17 0 00 000000*		0595
	PUSH	SP,AC1				; SP,AC1				400776' 261 17 0 00 000001
	PUSHJ	SP,COPY				; SP,COPY				400777' 260 17 0 00 400000'
	MOVE	AC16,AC1			; TYPE,AC1				401000' 200 16 0 00 000001
	PUSHJ	SP,OBJ_WORD			; SP,OBJ_WORD				401001' 260 17 0 00 000000*		0596
	PUSH	SP,AC1				; SP,AC1				401002' 261 17 0 00 000001
	PUSHJ	SP,COPY				; SP,COPY				401003' 260 17 0 00 400000'
	LDB	AC1,C.32			; AC1,[POINT 8,TYPE,27]  <8,8>		401004' 135 01 0 00 401372'		0598
	JUMPL	AC1,L.38			; AC1,L.38				401005' 321 01 0 00 401021'
	CAIGE	AC1,10				; AC1,10				401006' 305 01 0 00 000010
	JRST	L.37(AC1)			; L.37(AC1)				401007' 254 00 0 01 401011'
	JRST	L.38				; L.38					401010' 254 00 0 00 401021'
L.37:	JRST	L.39				; L.39					401011' 254 00 0 00 401030'
	JRST	L.48				; L.48					401012' 254 00 0 00 401203'
	JRST	L.48				; L.48					401013' 254 00 0 00 401203'
	JRST	L.48				; L.48					401014' 254 00 0 00 401203'
	JRST	L.42				; L.42					401015' 254 00 0 00 401115'
	JRST	L.48				; L.48					401016' 254 00 0 00 401203'
	JRST	L.47				; L.47					401017' 254 00 0 00 401177'
	JRST	L.48				; L.48					401020' 254 00 0 00 401203'
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  31
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

L.38:	MOVEI	AC1,FILNM			; AC1,FILNM				401021' 201 01 0 00 000000*		0673
	MOVEM	AC1,-23(SP)			; AC1,PRM_LIST				401022' 202 01 0 17 777755
	MOVE	AC1,-44(SP)			; AC1,FILBLK				401023' 200 01 0 17 777734
	MOVEM	AC1,-22(SP)			; AC1,PRM_LIST+1			401024' 202 01 0 17 777756
	PUSH	SP,C.6				; SP,[1]				401025' 261 17 0 00 400054'
	PUSH	SP,C.39				; SP,[POINT 7,P.AAH-1,34]  <1,7>	401026' 261 17 0 00 401401'
	JRST	L.45				; L.45					401027' 254 00 0 00 401170'
L.39:	MOVE	AC1,-25(SP)			; AC1,NAME				401030' 200 01 0 17 777753		0607
	MOVEM	AC1,-27(SP)			; AC1,MODULE_NAME			401031' 202 01 0 17 777751
	MOVE	AC1,0(AC13)			; AC1,0(AC13)				401032' 200 01 0 13 000000		0608
	MOVEM	AC1,-26(SP)			; AC1,MODULE_NAME+1			401033' 202 01 0 17 777752
	MOVEI	AC1,-25(SP)			; AC1,NAME				401034' 201 01 0 17 777753		0610
	PUSH	SP,AC1				; SP,AC1				401035' 261 17 0 00 000001
	PUSHJ	SP,MNT_INDEX			; SP,MNT_INDEX				401036' 260 17 0 00 000000V
	ADJSP	SP,-1				; SP,-1					401037' 105 17 0 00 777777
	JUMPL	AC1,L.41			; INDEX,L.41				401040' 321 01 0 00 401076'
	MOVEI	AC2,1				; AC2,1					401041' 201 02 0 00 000001		0613
	TDNN	AC2,-43(SP)			; AC2,REPLACE				401042' 616 02 0 17 777735
	JRST	L.40				; L.40					401043' 254 00 0 00 401063'
	MOVE	AC2,LIBMNT			; AC2,LIBMNT				401044' 200 02 0 00 000000*		0616
	IMULI	AC1,2				; INDEX,2				401045' 221 01 0 00 000002
	ADD	AC2,AC1				; AC2,AC1				401046' 270 02 0 00 000001
	LDB	AC11,C.33			; DELETE_BLOCK,[POINT 16,1(AC2),17]  <18,16>
						;					401047' 135 11 0 00 401373'
	LDB	AC1,C.34			; AC1,[POINT 16,1(AC2),35]  <0,16>	401050' 135 01 0 00 401374'		0617
	MOVEM	AC1,-11(SP)			; AC1,DELETE_OFFSET			401051' 202 01 0 17 777767
	MOVEM	AC11,-1(SP)			; DELETE_BLOCK,-1(SP)			401052' 202 11 0 17 777777		0618
	MOVE	AC1,-11(SP)			; AC1,DELETE_OFFSET			401053' 200 01 0 17 777767
	MOVEM	AC1,0(SP)			; AC1,0(SP)				401054' 202 01 0 17 000000
	PUSHJ	SP,EPT_PURGE			; SP,EPT_PURGE				401055' 260 17 0 00 400404'
	MOVEM	AC11,-1(SP)			; DELETE_BLOCK,-1(SP)			401056' 202 11 0 17 777777		0619
	MOVE	AC1,-11(SP)			; AC1,DELETE_OFFSET			401057' 200 01 0 17 777767
	MOVEM	AC1,0(SP)			; AC1,0(SP)				401060' 202 01 0 17 000000
	PUSHJ	SP,MNT_PURGE			; SP,MNT_PURGE				401061' 260 17 0 00 000000V
	JRST	L.41				; L.41					401062' 254 00 0 00 401076'		0613
L.40:	MOVE	AC1,-25(SP)			; AC1,NAME				401063' 200 01 0 17 777753		0623
	MOVEM	AC1,-23(SP)			; AC1,PRM_LIST				401064' 202 01 0 17 777755
	MOVE	AC1,0(AC13)			; AC1,0(AC13)				401065' 200 01 0 13 000000
	MOVEM	AC1,-22(SP)			; AC1,PRM_LIST+1			401066' 202 01 0 17 777756
	MOVEI	AC1,FILNM			; AC1,FILNM				401067' 201 01 0 00 000000*
	MOVEM	AC1,-21(SP)			; AC1,PRM_LIST+2			401070' 202 01 0 17 777757
	MOVE	AC1,LIB_FILBLK			; AC1,LIB_FILBLK			401071' 200 01 0 00 010022'
	MOVEM	AC1,-20(SP)			; AC1,PRM_LIST+3			401072' 202 01 0 17 777760
	PUSH	SP,C.6				; SP,[1]				401073' 261 17 0 00 400054'
	PUSH	SP,C.40				; SP,[POINT 7,P.AAD-1,34]  <1,7>	401074' 261 17 0 00 401402'
	JRST	L.45				; L.45					401075' 254 00 0 00 401170'
L.41:	MOVEI	AC1,-25(SP)			; AC1,NAME				401076' 201 01 0 17 777753		0625
	PUSH	SP,AC1				; SP,AC1				401077' 261 17 0 00 000001
	PUSH	SP,AC10				; SP,INSERT_BLOCK			401100' 261 17 0 00 000010
	PUSH	SP,AC14				; SP,INSERT_OFFSET			401101' 261 17 0 00 000014
	PUSHJ	SP,MNT_INSERT			; SP,MNT_INSERT				401102' 260 17 0 00 000000V
	ADJSP	SP,-3				; SP,-3					401103' 105 17 0 00 777775
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  32
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

	TRNE	AC1,1				; AC1,1					401104' 602 01 0 00 000001
	JRST	L.48				; L.48					401105' 254 00 0 00 401203'
	MOVEI	AC1,FILNM			; AC1,FILNM				401106' 201 01 0 00 000000*		0627
	MOVEM	AC1,-23(SP)			; AC1,PRM_LIST				401107' 202 01 0 17 777755
	MOVE	AC1,LIB_FILBLK			; AC1,LIB_FILBLK			401110' 200 01 0 00 010022'
	MOVEM	AC1,-22(SP)			; AC1,PRM_LIST+1			401111' 202 01 0 17 777756
	PUSH	SP,C.6				; SP,[1]				401112' 261 17 0 00 400054'
	PUSH	SP,C.41				; SP,[POINT 7,P.AAE-1,34]  <1,7>	401113' 261 17 0 00 401403'
	JRST	L.45				; L.45					401114' 254 00 0 00 401170'
L.42:	MOVEI	AC1,1				; AC1,1					401115' 201 01 0 00 000001		0633
	TDNE	AC1,-42(SP)			; AC1,EPT				401116' 612 01 0 17 777736
	TRNN	AC16,10				; TYPE,10				401117' 606 16 0 00 000010
	JRST	L.48				; L.48					401120' 254 00 0 00 401203'
	MOVEI	AC1,-25(SP)			; AC1,NAME				401121' 201 01 0 17 777753		0640
	PUSH	SP,AC1				; SP,AC1				401122' 261 17 0 00 000001
	PUSHJ	SP,EPT_INDEX			; SP,EPT_INDEX				401123' 260 17 0 00 400235'
	ADJSP	SP,-1				; SP,-1					401124' 105 17 0 00 777777
	JUMPL	AC1,L.44			; INDEX,L.44				401125' 321 01 0 00 401152'
	MOVEI	AC2,1				; AC2,1					401126' 201 02 0 00 000001		0644
	TDNN	AC2,-41(SP)			; AC2,RG				401127' 616 02 0 17 777737
	JRST	L.43				; L.43					401130' 254 00 0 00 401137'
	MOVE	AC2,LIBEPT			; AC2,LIBEPT				401131' 200 02 0 00 000000*		0647
	IMULI	AC1,2				; INDEX,2				401132' 221 01 0 00 000002
	ADD	AC2,AC1				; AC2,AC1				401133' 270 02 0 00 000001
	DPB	AC10,C.33			; INSERT_BLOCK,[POINT 16,1(AC2),17]  <18,16>
						;					401134' 137 10 0 00 401373'
	DPB	AC14,C.34			; INSERT_OFFSET,[POINT 16,1(AC2),35]  <0,16>
						;					401135' 137 14 0 00 401374'		0648
	JRST	L.48				; L.48					401136' 254 00 0 00 401203'		0644
L.43:	MOVE	AC1,-25(SP)			; AC1,NAME				401137' 200 01 0 17 777753		0652
	MOVEM	AC1,-23(SP)			; AC1,PRM_LIST				401140' 202 01 0 17 777755
	MOVE	AC1,0(AC13)			; AC1,0(AC13)				401141' 200 01 0 13 000000
	MOVEM	AC1,-22(SP)			; AC1,PRM_LIST+1			401142' 202 01 0 17 777756
	MOVEI	AC1,FILNM			; AC1,FILNM				401143' 201 01 0 00 000000*
	MOVEM	AC1,-21(SP)			; AC1,PRM_LIST+2			401144' 202 01 0 17 777757
	MOVE	AC1,LIB_FILBLK			; AC1,LIB_FILBLK			401145' 200 01 0 00 010022'
	MOVEM	AC1,-20(SP)			; AC1,PRM_LIST+3			401146' 202 01 0 17 777760
	PUSH	SP,C.6				; SP,[1]				401147' 261 17 0 00 400054'
	PUSH	SP,C.42				; SP,[POINT 7,P.AAF-1,34]  <1,7>	401150' 261 17 0 00 401404'
	JRST	L.45				; L.45					401151' 254 00 0 00 401170'
L.44:	MOVEI	AC1,-25(SP)			; AC1,NAME				401152' 201 01 0 17 777753		0657
	PUSH	SP,AC1				; SP,AC1				401153' 261 17 0 00 000001
	PUSH	SP,AC10				; SP,INSERT_BLOCK			401154' 261 17 0 00 000010
	PUSH	SP,AC14				; SP,INSERT_OFFSET			401155' 261 17 0 00 000014
	PUSHJ	SP,EPT_INSERT			; SP,EPT_INSERT				401156' 260 17 0 00 400265'
	ADJSP	SP,-3				; SP,-3					401157' 105 17 0 00 777775
	TRNE	AC1,1				; AC1,1					401160' 602 01 0 00 000001
	JRST	L.48				; L.48					401161' 254 00 0 00 401203'
	MOVEI	AC1,FILNM			; AC1,FILNM				401162' 201 01 0 00 000000*		0659
	MOVEM	AC1,-23(SP)			; AC1,PRM_LIST				401163' 202 01 0 17 777755
	MOVE	AC1,LIB_FILBLK			; AC1,LIB_FILBLK			401164' 200 01 0 00 010022'
	MOVEM	AC1,-22(SP)			; AC1,PRM_LIST+1			401165' 202 01 0 17 777756
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  33
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

	PUSH	SP,C.6				; SP,[1]				401166' 261 17 0 00 400054'
	PUSH	SP,C.43				; SP,[POINT 7,P.AAG-1,34]  <1,7>	401167' 261 17 0 00 401405'
L.45:	MOVEI	AC1,-25(SP)			; AC1,PRM_LIST				401170' 201 01 0 17 777753
	PUSH	SP,AC1				; SP,AC1				401171' 261 17 0 00 000001
	PUSHJ	SP,TYPLIN			; SP,TYPLIN				401172' 260 17 0 00 000000*
	PUSHJ	SP,OBJ_CLOSE			; SP,OBJ_CLOSE				401173' 260 17 0 00 000000*
	ADJSP	SP,-14				; SP,-14				401174' 105 17 0 00 777764
L.46:	SETZ	AC1,				; AC1,					401175' 400 01 0 00 000000
	JRST	L.61				; L.61					401176' 254 00 0 00 401353'
L.47:	MOVE	AC1,-25(SP)			; AC1,NAME				401177' 200 01 0 17 777753		0665
	DPB	AC1,C.35			; AC1,[POINT 16,HDR+3,17]  <18,16>	401200' 137 01 0 00 401375'
	MOVE	AC1,0(AC13)			; AC1,0(AC13)				401201' 200 01 0 13 000000		0666
	DPB	AC1,C.36			; AC1,[POINT 16,HDR+3,35]  <0,16>	401202' 137 01 0 00 401376'
L.48:	ADJSP	SP,-4				; SP,-4					401203' 105 17 0 00 777774		0587
	JRST	L.36				; L.36					401204' 254 00 0 00 400763'		0586
L.49:	ADJSP	SP,-1				; SP,-1					401205' 105 17 0 00 777777		0582
	JRST	L.30				; L.30					401206' 254 00 0 00 400711'		0578
L.50:	MOVE	AC1,AC12			; AC1,RECORD_COUNT			401207' 200 01 0 00 000012		0686
	ADDI	AC1,2				; AC1,2					401210' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				401211' 261 17 0 00 000001
	PUSHJ	SP,COPY				; SP,COPY				401212' 260 17 0 00 400000'
	ADJSP	SP,-1				; SP,-1					401213' 105 17 0 00 777777
	MOVEM	AC0,0(SP)			; RECORD_TYPE,0(SP)			401214' 202 00 0 17 000000		0687
	PUSHJ	SP,COPY				; SP,COPY				401215' 260 17 0 00 400000'
	PUSHJ	SP,OBJ_SET			; SP,OBJ_SET				401216' 260 17 0 00 000000*		0699
L.51:	PUSHJ	SP,OBJ_RECORD			; SP,OBJ_RECORD				401217' 260 17 0 00 000000*		0703
	MOVE	AC12,AC1			; RECORD_COUNT,AC1			401220' 200 12 0 00 000001
	SUBI	AC12,2				; RECORD_COUNT,2			401221' 275 12 0 00 000002
	PUSHJ	SP,OBJ_WORD			; SP,OBJ_WORD				401222' 260 17 0 00 000000*		0705
	MOVE	AC0,AC1				; RECORD_TYPE,AC1			401223' 200 00 0 00 000001
	MOVE	AC1,AC0				; AC1,RECORD_TYPE			401224' 200 01 0 00 000000
	SUBI	AC1,1				; AC1,1					401225' 275 01 0 00 000001
	JRST	L.52(AC1)			; L.52(AC1)				401226' 254 00 0 01 401227'
L.52:	JRST	L.51				; L.51					401227' 254 00 0 00 401217'
	JRST	L.51				; L.51					401230' 254 00 0 00 401217'
	JRST	L.53				; L.53					401231' 254 00 0 00 401235'
	JRST	L.53				; L.53					401232' 254 00 0 00 401235'
	JRST	L.53				; L.53					401233' 254 00 0 00 401235'
	JRST	L.56				; L.56					401234' 254 00 0 00 401254'
L.53:	MOVE	AC1,AC12			; AC1,RECORD_COUNT			401235' 200 01 0 00 000012		0713
	ADDI	AC1,2				; AC1,2					401236' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				401237' 261 17 0 00 000001
	PUSHJ	SP,COPY				; SP,COPY				401240' 260 17 0 00 400000'
	MOVEM	AC0,0(SP)			; RECORD_TYPE,0(SP)			401241' 202 00 0 17 000000		0714
	PUSHJ	SP,COPY				; SP,COPY				401242' 260 17 0 00 400000'
L.54:	SUBI	AC12,2				; RECORD_COUNT,2			401243' 275 12 0 00 000002		0716
	JUMPL	AC12,L.55			; RECORD_COUNT,L.55			401244' 321 12 0 00 401252'
	PUSHJ	SP,OBJ_WORD			; SP,OBJ_WORD				401245' 260 17 0 00 000000*		0717
	PUSH	SP,AC1				; SP,AC1				401246' 261 17 0 00 000001
	PUSHJ	SP,COPY				; SP,COPY				401247' 260 17 0 00 400000'
	ADJSP	SP,-1				; SP,-1					401250' 105 17 0 00 777777
	JRST	L.54				; L.54					401251' 254 00 0 00 401243'		0716
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  34
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

L.55:	ADJSP	SP,-1				; SP,-1					401252' 105 17 0 00 777777		0712
	JRST	L.51				; L.51					401253' 254 00 0 00 401217'		0705
L.56:	MOVE	AC1,AC12			; AC1,RECORD_COUNT			401254' 200 01 0 00 000012		0724
	ADDI	AC1,2				; AC1,2					401255' 271 01 0 00 000002
	PUSH	SP,AC1				; SP,AC1				401256' 261 17 0 00 000001
	PUSHJ	SP,COPY				; SP,COPY				401257' 260 17 0 00 400000'
	ADJSP	SP,-1				; SP,-1					401260' 105 17 0 00 777777
	MOVEM	AC0,0(SP)			; RECORD_TYPE,0(SP)			401261' 202 00 0 17 000000		0725
	PUSHJ	SP,COPY				; SP,COPY				401262' 260 17 0 00 400000'
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401263' 261 17 0 00 010022'		0740
	MOVEI	AC1,-7(SP)			; AC1,BLOCK				401264' 201 01 0 17 777771
	PUSH	SP,AC1				; SP,AC1				401265' 261 17 0 00 000001
	MOVEI	AC1,-11(SP)			; AC1,OFFSET				401266' 201 01 0 17 777767
	PUSH	SP,AC1				; SP,AC1				401267' 261 17 0 00 000001
	PUSHJ	SP,FILPOS			; SP,FILPOS				401270' 260 17 0 00 000000*
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				401271' 200 01 0 00 000000*		0741
	MOVE	AC2,-11(SP)			; AC2,BLOCK				401272' 200 02 0 17 777767
	DPB	AC2,C.30			; AC2,[POINT 16,12(AC1),35]  <0,16>	401273' 137 02 0 00 401370'
	MOVE	AC2,-12(SP)			; AC2,OFFSET				401274' 200 02 0 17 777766		0742
	DPB	AC2,C.31			; AC2,[POINT 16,13(AC1),17]  <18,16>	401275' 137 02 0 00 401371'
	MOVEI	AC1,1				; AC1,1					401276' 201 01 0 00 000001		0743
	MOVEM	AC1,HDR_CHANGED			; AC1,HDR_CHANGED			401277' 202 01 0 00 010021'
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401300' 261 17 0 00 010022'		0753
	PUSH	SP,AC10				; SP,INSERT_BLOCK			401301' 261 17 0 00 000010
	PUSH	SP,AC14				; SP,INSERT_OFFSET			401302' 261 17 0 00 000014
	PUSHJ	SP,POSFIL			; SP,POSFIL				401303' 260 17 0 00 000000*
	MOVEI	AC2,20				; AC2,20				401304' 201 02 0 00 000020		0754
	MOVEI	AC1,-17(SP)			; AC1,LENGTH-1				401305' 201 01 0 17 777761
	HRLI	AC1,2200			; AC1,2200				401306' 505 01 0 00 002200
	IDPB	AC2,AC1				; AC2,AC1				401307' 136 02 0 00 000001
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401310' 261 17 0 00 010022'		0755
	MOVEI	AC1,-20(SP)			; AC1,LENGTH-1				401311' 201 01 0 17 777760
	HRLI	AC1,2200			; AC1,2200				401312' 505 01 0 00 002200
	PUSH	SP,AC1				; SP,AC1				401313' 261 17 0 00 000001
	PUSH	SP,C.6				; SP,[1]				401314' 261 17 0 00 400054'
	PUSHJ	SP,PUTFIL			; SP,PUTFIL				401315' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401316' 261 17 0 00 010022'		0756
	PUSH	SP,C.44				; SP,[POINT 18,HDR-1,35]  <0,18>	401317' 261 17 0 00 401406'
	PUSH	SP,C.45				; SP,[10]				401320' 261 17 0 00 401407'
	PUSHJ	SP,PUTFIL			; SP,PUTFIL				401321' 260 17 0 00 000000*
	JUMPE	AC11,L.57			; DELETE_BLOCK,L.57			401322' 322 11 0 00 401327'		0762
	MOVEM	AC11,-1(SP)			; DELETE_BLOCK,-1(SP)			401323' 202 11 0 17 777777
	MOVE	AC1,-20(SP)			; AC1,DELETE_OFFSET			401324' 200 01 0 17 777760
	MOVEM	AC1,0(SP)			; AC1,0(SP)				401325' 202 01 0 17 000000
	PUSHJ	SP,HDR_DELETE			; SP,HDR_DELETE				401326' 260 17 0 00 000000V
L.57:	MOVEI	AC1,40				; AC1,40				401327' 201 01 0 00 000040		0764
	TDNN	AC1,FLAGS			; AC1,FLAGS				401330' 616 01 0 00 000000*
	PUSHJ	SP,LIBUPD			; SP,LIBUPD				401331' 260 17 0 00 000000V
	MOVE	AC1,-36(SP)			; AC1,MODULE_NAME			401332' 200 01 0 17 777742		0768
	MOVEM	AC1,-34(SP)			; AC1,PRM_LIST				401333' 202 01 0 17 777744
	MOVE	AC2,-21(SP)			; AC2,-21(SP)				401334' 200 02 0 17 777757
	MOVE	AC1,0(AC2)			; AC1,0(AC2)				401335' 200 01 0 02 000000
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  35
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (7)

	MOVEM	AC1,0(AC13)			; AC1,0(AC13)				401336' 202 01 0 13 000000
	SETZM	0(SP)				; 0(SP)					401337' 402 00 0 17 000000
	JUMPN	AC11,L.58			; DELETE_BLOCK,L.58			401340' 326 11 0 00 401343'
	PUSH	SP,C.46				; SP,[POINT 7,P.AAJ-1,34]  <1,7>	401341' 261 17 0 00 401410'
	JRST	L.59				; L.59					401342' 254 00 0 00 401344'
L.58:	PUSH	SP,C.47				; SP,[POINT 7,P.AAK-1,34]  <1,7>	401343' 261 17 0 00 401411'
L.59:	MOVEI	AC1,-35(SP)			; AC1,PRM_LIST				401344' 201 01 0 17 777743
	PUSH	SP,AC1				; SP,AC1				401345' 261 17 0 00 000001
	PUSHJ	SP,TYPLIN			; SP,TYPLIN				401346' 260 17 0 00 000000*
	ADJSP	SP,-22				; SP,-22				401347' 105 17 0 00 777756		0529
	JRST	L.29				; L.29					401350' 254 00 0 00 400652'		0528
L.60:	PUSHJ	SP,OBJ_CLOSE			; SP,OBJ_CLOSE				401351' 260 17 0 00 000000*		0774
	MOVEI	AC1,1				; AC1,1					401352' 201 01 0 00 000001		0470
L.61:	ADJSP	SP,-17				; SP,-17				401353' 105 17 0 00 777761
	POP	SP,AC16				; SP,AC16				401354' 262 17 0 00 000016
	POP	SP,AC14				; SP,AC14				401355' 262 17 0 00 000014
	POP	SP,AC13				; SP,AC13				401356' 262 17 0 00 000013
	POP	SP,AC12				; SP,AC12				401357' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				401360' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				401361' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				401362' 262 17 0 00 000000
	POPJ	SP,				; SP,					401363' 263 17 0 00 000000
C.26:	POINT	1,HDR,9				; 1,HDR,9				401364' 32 01 0 00 010001'
C.27:	POINT	16,HDR+1,35			; 16,HDR+1,35				401365' 00 20 0 00 010002'
C.28:	POINT	16,HDR+2,17			; 16,HDR+2,17				401366' 22 20 0 00 010003'
C.29:	POINT	16,HDR+2,35			; 16,HDR+2,35				401367' 00 20 0 00 010003'
C.30:	POINT	16,12(AC1),35			; 16,12(AC1),35				401370' 00 20 0 01 000012
C.31:	POINT	16,13(AC1),17			; 16,13(AC1),17				401371' 22 20 0 01 000013
C.32:	POINT	8,AC16,27			; 8,TYPE,27				401372' 10 10 0 00 000016
C.33:	POINT	16,1(AC2),17			; 16,1(AC2),17				401373' 22 20 0 02 000001
C.34:	POINT	16,1(AC2),35			; 16,1(AC2),35				401374' 00 20 0 02 000001
C.35:	POINT	16,HDR+3,17			; 16,HDR+3,17				401375' 22 20 0 00 010004'
C.36:	POINT	16,HDR+3,35			; 16,HDR+3,35				401376' 00 20 0 00 010004'
C.37:	POINT	7,P.AAC-1,34			; 7,P.AAC-1,34				401377' 01 07 0 00 400502'
C.38:	POINT	7,P.AAI-1,34			; 7,P.AAI-1,34				401400' 01 07 0 00 400576'
C.39:	POINT	7,P.AAH-1,34			; 7,P.AAH-1,34				401401' 01 07 0 00 400563'
C.40:	POINT	7,P.AAD-1,34			; 7,P.AAD-1,34				401402' 01 07 0 00 400515'
C.41:	POINT	7,P.AAE-1,34			; 7,P.AAE-1,34				401403' 01 07 0 00 400530'
C.42:	POINT	7,P.AAF-1,34			; 7,P.AAF-1,34				401404' 01 07 0 00 400540'
C.43:	POINT	7,P.AAG-1,34			; 7,P.AAG-1,34				401405' 01 07 0 00 400553'
C.44:	POINT	18,HDR-1,35			; 18,HDR-1,35				401406' 00 22 0 00 010000'
C.45:	EXP	10				; 10					401407' 000000	000010
C.46:	POINT	7,P.AAJ-1,34			; 7,P.AAJ-1,34				401410' 01 07 0 00 400611'
C.47:	POINT	7,P.AAK-1,34			; 7,P.AAK-1,34				401411' 01 07 0 00 400616'

; Routine Size:  374 words


;   0777  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  36
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (8)

;   0778  1	ROUTINE HDR_DELETE (BLOCK, OFFSET) : NOVALUE =
;   0779  1	
;   0780  1	!++
;   0781  1	! FUNCTIONAL DESCRIPTION:
;   0782  1	!
;   0783  1	!
;   0784  1	!
;   0785  1	!
;   0786  1	! FORMAL PARAMETERS:
;   0787  1	!
;   0788  1	!
;   0789  1	! IMPLICIT INPUTS:
;   0790  1	!
;   0791  1	!	NONE
;   0792  1	!
;   0793  1	! IMPLICIT OUTPUTS:
;   0794  1	!
;   0795  1	!	NONE
;   0796  1	!
;   0797  1	! ROUTINE VALUE:
;   0798  1	!
;   0799  1	!	NONE
;   0800  1	!
;   0801  1	! SIDE EFFECTS
;   0802  1	!
;   0803  1	!	NONE
;   0804  1	!
;   0805  1	!--
;   0806  1	
;   0807  2	    BEGIN
;   0808  2	    POSFIL (.LIB_FILBLK, .BLOCK, .OFFSET + 2);
;   0809  2	    GETFIL (.LIB_FILBLK, CH$PTR (HDR,, 18), HDR_SIZE/2);
;   0810  2	    HDR [HDR_DELETED] = 1;
;   0811  2	    POSFIL (.LIB_FILBLK, .BLOCK, .OFFSET + 2);
;   0812  2	    PUTFIL (.LIB_FILBLK, CH$PTR (HDR,, 18), HDR_SIZE/2);
;   0813  2	    !
;   0814  2	    ! Add module size to deleted space
;   0815  2	    !
;   0816  3	    BEGIN
;   0817  3	
;   0818  3	    LOCAL
;   0819  3		OLD;
;   0820  3	
;   0821  3	    OLD = .LIBHDR [LIB_DELETED_2];
;   0822  3	    LIBHDR [LIB_DELETED_2] = .LIBHDR [LIB_DELETED_2] + .HDR [HDR_SIZE_2];
;   0823  3	
;   0824  3	    IF .LIBHDR [LIB_DELETED_2] LSS MIN (.OLD, .HDR [HDR_SIZE_2])
;   0825  3	    THEN
;   0826  3		LIBHDR [LIB_DELETED_1] = .LIBHDR [LIB_DELETED_1] + 1;
;   0827  3	
;   0828  3	    LIBHDR [LIB_DELETED_1] = .LIBHDR [LIB_DELETED_1] + .HDR [HDR_SIZE_1];
;   0829  2	    END;
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  37
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (8)

;   0830  2	    HDR_CHANGED = TRUE;
;   0831  1	    END;					!OF HDR_DELETE


HDR_DELETE:
	PUSH	SP,AC16				; SP,AC16				401412' 261 17 0 00 000016		0778
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401413' 261 17 0 00 010022'		0808
	PUSH	SP,-4(SP)			; SP,BLOCK				401414' 261 17 0 17 777774
	MOVE	AC16,-4(SP)			; AC16,OFFSET				401415' 200 16 0 17 777774
	ADDI	AC16,2				; AC16,2				401416' 271 16 0 00 000002
	PUSH	SP,AC16				; SP,AC16				401417' 261 17 0 00 000016
	PUSHJ	SP,POSFIL			; SP,POSFIL				401420' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401421' 261 17 0 00 010022'		0809
	PUSH	SP,C.44				; SP,[POINT 18,HDR-1,35]  <0,18>	401422' 261 17 0 00 401406'
	PUSH	SP,C.45				; SP,[10]				401423' 261 17 0 00 401407'
	PUSHJ	SP,GETFIL			; SP,GETFIL				401424' 260 17 0 00 000000*
	MOVSI	AC1,1				; AC1,1					401425' 205 01 0 00 000001		0810
	IORM	AC1,HDR				; AC1,HDR				401426' 436 01 0 00 010001'
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401427' 261 17 0 00 010022'		0811
	PUSH	SP,-12(SP)			; SP,BLOCK				401430' 261 17 0 17 777766
	PUSH	SP,AC16				; SP,AC16				401431' 261 17 0 00 000016
	PUSHJ	SP,POSFIL			; SP,POSFIL				401432' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401433' 261 17 0 00 010022'		0812
	PUSH	SP,C.44				; SP,[POINT 18,HDR-1,35]  <0,18>	401434' 261 17 0 00 401406'
	PUSH	SP,C.45				; SP,[10]				401435' 261 17 0 00 401407'
	PUSHJ	SP,PUTFIL			; SP,PUTFIL				401436' 260 17 0 00 000000*
	MOVE	AC2,LIBHDR			; AC2,LIBHDR				401437' 200 02 0 00 000000*		0821
	LDB	AC1,C.48			; OLD,[POINT 16,11(AC2),17]  <18,16>	401440' 135 01 0 00 401467'
	LDB	AC3,C.48			; AC3,[POINT 16,11(AC2),17]  <18,16>	401441' 135 03 0 00 401467'		0822
	LDB	AC4,C.1				; AC4,[POINT 16,HDR+1,17]  <18,16>	401442' 135 04 0 00 400047'
	ADD	AC3,AC4				; AC3,AC4				401443' 270 03 0 00 000004
	DPB	AC3,C.48			; AC3,[POINT 16,11(AC2),17]  <18,16>	401444' 137 03 0 00 401467'
	LDB	AC3,C.1				; AC3,[POINT 16,HDR+1,17]  <18,16>	401445' 135 03 0 00 400047'		0824
	CAMLE	AC1,AC3				; AC1,AC3				401446' 313 01 0 00 000003
	LDB	AC1,C.1				; AC1,[POINT 16,HDR+1,17]  <18,16>	401447' 135 01 0 00 400047'
	LDB	AC3,C.48			; AC3,[POINT 16,11(AC2),17]  <18,16>	401450' 135 03 0 00 401467'
	CAML	AC3,AC1				; AC3,AC1				401451' 311 03 0 00 000001
	JRST	L.62				; L.62					401452' 254 00 0 00 401456'
	LDB	AC1,C.49			; AC1,[POINT 16,10(AC2),35]  <0,16>	401453' 135 01 0 00 401470'		0826
	ADDI	AC1,1				; AC1,1					401454' 271 01 0 00 000001
	DPB	AC1,C.49			; AC1,[POINT 16,10(AC2),35]  <0,16>	401455' 137 01 0 00 401470'
L.62:	LDB	AC1,C.49			; AC1,[POINT 16,10(AC2),35]  <0,16>	401456' 135 01 0 00 401470'		0828
	LDB	AC3,C.2				; AC3,[POINT 16,HDR,35]  <0,16>		401457' 135 03 0 00 400050'
	ADD	AC1,AC3				; AC1,AC3				401460' 270 01 0 00 000003
	DPB	AC1,C.49			; AC1,[POINT 16,10(AC2),35]  <0,16>	401461' 137 01 0 00 401470'
	MOVEI	AC1,1				; AC1,1					401462' 201 01 0 00 000001		0830
	MOVEM	AC1,HDR_CHANGED			; AC1,HDR_CHANGED			401463' 202 01 0 00 010021'
	ADJSP	SP,-14				; SP,-14				401464' 105 17 0 00 777764		0807
	POP	SP,AC16				; SP,AC16				401465' 262 17 0 00 000016		0778
	POPJ	SP,				; SP,					401466' 263 17 0 00 000000
C.48:	POINT	16,11(AC2),17			; 16,11(AC2),17				401467' 22 20 0 02 000011
C.49:	POINT	16,10(AC2),35			; 16,10(AC2),35				401470' 00 20 0 02 000010
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  38
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (8)


; Routine Size:  47 words


;   0832  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  39
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (9)

;   0833  1	GLOBAL ROUTINE LIBCLS : NOVALUE =
;   0834  1	
;   0835  1	!++
;   0836  1	! FUNCTIONAL DESCRIPTION:
;   0837  1	!
;   0838  1	!
;   0839  1	!
;   0840  1	!
;   0841  1	! FORMAL PARAMETERS:
;   0842  1	!
;   0843  1	!
;   0844  1	! IMPLICIT INPUTS:
;   0845  1	!
;   0846  1	!	NONE
;   0847  1	!
;   0848  1	! IMPLICIT OUTPUTS:
;   0849  1	!
;   0850  1	!	NONE
;   0851  1	!
;   0852  1	! ROUTINE VALUE:
;   0853  1	!
;   0854  1	!	NONE
;   0855  1	!
;   0856  1	! SIDE EFFECTS
;   0857  1	!
;   0858  1	!	NONE
;   0859  1	!
;   0860  1	!--
;   0861  1	
;   0862  2	    BEGIN
;   0863  2	    LIBMNT = 0;
;   0864  2	    LIBEPT = 0;
;   0865  2	    LIBHDR = 0;
;   0866  2	    CLOSE (.LIB_FILBLK);
;   0867  1	    END;					!OF LIBCLS


LIBCLS::SETZM	LIBMNT				; LIBMNT				401471' 402 00 0 00 000000*		0863
	SETZM	LIBEPT				; LIBEPT				401472' 402 00 0 00 000000*		0864
	SETZM	LIBHDR				; LIBHDR				401473' 402 00 0 00 000000*		0865
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401474' 261 17 0 00 010022'		0866
	PUSHJ	SP,CLOSE			; SP,CLOSE				401475' 260 17 0 00 000000*
	ADJSP	SP,-1				; SP,-1					401476' 105 17 0 00 777777		0862
	POPJ	SP,				; SP,					401477' 263 17 0 00 000000		0833

; Routine Size:  7 words


;   0868  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  40
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (10)

;   0869  1	GLOBAL ROUTINE LIBUPD : NOVALUE =
;   0870  1	
;   0871  1	!++
;   0872  1	! FUNCTIONAL DESCRIPTION:
;   0873  1	!
;   0874  1	!
;   0875  1	!
;   0876  1	!
;   0877  1	! FORMAL PARAMETERS:
;   0878  1	!
;   0879  1	!
;   0880  1	! IMPLICIT INPUTS:
;   0881  1	!
;   0882  1	!	NONE
;   0883  1	!
;   0884  1	! IMPLICIT OUTPUTS:
;   0885  1	!
;   0886  1	!	NONE
;   0887  1	!
;   0888  1	! ROUTINE VALUE:
;   0889  1	!
;   0890  1	!	NONE
;   0891  1	!
;   0892  1	! SIDE EFFECTS
;   0893  1	!
;   0894  1	!	NONE
;   0895  1	!
;   0896  1	!--
;   0897  1	
;   0898  2	    BEGIN
;   0899  2	
;   0900  2	    IF .MNT_CHANGED
;   0901  2	    THEN
;   0902  3		BEGIN
;   0903  3	
;   0904  3		INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
;   0905  4		    BEGIN
;   0906  4		    POSFIL (.LIB_FILBLK, .LIBHDR [LIB_MNT_BLOCK], .INDEX*.LIBHDR [LIB_MNT_SIZE]);
;   0907  4		    PUTFIL (.LIB_FILBLK, CH$PTR (LIBMNT [.INDEX, 0, 0, 0, 0],, 18), MNT_SIZE/2);
;   0908  3		    END;
;   0909  3	
;   0910  3		MNT_CHANGED = FALSE;
;   0911  2		END;
;   0912  2	
;   0913  2	    IF .EPT_CHANGED
;   0914  2	    THEN
;   0915  3		BEGIN
;   0916  3	
;   0917  3		INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
;   0918  4		    BEGIN
;   0919  4		    POSFIL (.LIB_FILBLK, .LIBHDR [LIB_EPT_BLOCK], .INDEX*.LIBHDR [LIB_EPT_SIZE]);
;   0920  4		    PUTFIL (.LIB_FILBLK, CH$PTR (LIBEPT [.INDEX, 0, 0, 0, 0],, 18), EPT_SIZE/2);
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  41
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (10)

;   0921  3		    END;
;   0922  3	
;   0923  3		EPT_CHANGED = FALSE;
;   0924  2		END;
;   0925  2	
;   0926  2	    IF .HDR_CHANGED
;   0927  2	    THEN
;   0928  3		BEGIN
;   0929  3		POSFIL (.LIB_FILBLK, 1, 0);
;   0930  3		PUTFIL (.LIB_FILBLK, CH$PTR (.LIBHDR,, 18), LIB_SIZE/2);
;   0931  3		HDR_CHANGED = FALSE;
;   0932  2		END;
;   0933  2	
;   0934  1	    END;					!OF LIBUPD


LIBUPD::PUSH	SP,AC14				; SP,AC14				401500' 261 17 0 00 000014		0869
	PUSH	SP,AC16				; SP,AC16				401501' 261 17 0 00 000016
	MOVEI	AC1,1				; AC1,1					401502' 201 01 0 00 000001		0900
	TDNN	AC1,MNT_CHANGED			; AC1,MNT_CHANGED			401503' 616 01 0 00 014023'
	JRST	L.65				; L.65					401504' 254 00 0 00 401543'
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				401505' 200 01 0 00 000000*		0904
	LDB	AC14,C.50			; AC14,[POINT 16,7(AC1),35]  <0,16>	401506' 135 14 0 00 401627'
	LDB	AC2,C.51			; AC2,[POINT 16,10(AC1),17]  <18,16>	401507' 135 02 0 00 401630'
	SUB	AC14,AC2			; AC14,AC2				401510' 274 14 0 00 000002
	SETO	AC16,				; INDEX,				401511' 474 16 0 00 000000
	JRST	L.64				; L.64					401512' 254 00 0 00 401537'
L.63:	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401513' 261 17 0 00 010022'		0906
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				401514' 200 01 0 00 000000*
	LDB	AC2,C.52			; AC2,[POINT 16,7(AC1),17]  <18,16>	401515' 135 02 0 00 401631'
	PUSH	SP,AC2				; SP,AC2				401516' 261 17 0 00 000002
	MOVE	AC2,AC16			; AC2,INDEX				401517' 200 02 0 00 000016
	LDB	AC3,C.53			; AC3,[POINT 8,6(AC1),35]  <0,8>	401520' 135 03 0 00 401632'
	IMUL	AC2,AC3				; AC2,AC3				401521' 220 02 0 00 000003
	PUSH	SP,AC2				; SP,AC2				401522' 261 17 0 00 000002
	PUSHJ	SP,POSFIL			; SP,POSFIL				401523' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401524' 261 17 0 00 010022'		0907
	MOVE	AC1,LIBMNT			; AC1,LIBMNT				401525' 200 01 0 00 000000*
	MOVE	AC2,AC16			; AC2,INDEX				401526' 200 02 0 00 000016
	IMULI	AC2,2				; AC2,2					401527' 221 02 0 00 000002
	ADD	AC1,AC2				; AC1,AC2				401530' 270 01 0 00 000002
	MOVEI	AC1,-1(AC1)			; AC1,-1(AC1)				401531' 201 01 0 01 777777
	HRLI	AC1,2200			; AC1,2200				401532' 505 01 0 00 002200
	PUSH	SP,AC1				; SP,AC1				401533' 261 17 0 00 000001
	PUSH	SP,C.56				; SP,[4]				401534' 261 17 0 00 401635'
	PUSHJ	SP,PUTFIL			; SP,PUTFIL				401535' 260 17 0 00 000000*
	ADJSP	SP,-6				; SP,-6					401536' 105 17 0 00 777772		0905
L.64:	ADDI	AC16,1				; INDEX,1				401537' 271 16 0 00 000001		0904
	CAMGE	AC16,AC14			; INDEX,AC14				401540' 315 16 0 00 000014
	JRST	L.63				; L.63					401541' 254 00 0 00 401513'
	SETZM	MNT_CHANGED			; MNT_CHANGED				401542' 402 00 0 00 014023'		0910
L.65:	MOVEI	AC1,1				; AC1,1					401543' 201 01 0 00 000001		0913
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  42
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (10)

	TDNN	AC1,EPT_CHANGED			; AC1,EPT_CHANGED			401544' 616 01 0 00 010000'
	JRST	L.68				; L.68					401545' 254 00 0 00 401604'
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				401546' 200 01 0 00 000000*		0917
	LDB	AC14,C.14			; AC14,[POINT 16,5(AC1),35]  <0,16>	401547' 135 14 0 00 400263'
	LDB	AC2,C.15			; AC2,[POINT 16,6(AC1),17]  <18,16>	401550' 135 02 0 00 400264'
	SUB	AC14,AC2			; AC14,AC2				401551' 274 14 0 00 000002
	SETO	AC16,				; INDEX,				401552' 474 16 0 00 000000
	JRST	L.67				; L.67					401553' 254 00 0 00 401600'
L.66:	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401554' 261 17 0 00 010022'		0919
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				401555' 200 01 0 00 000000*
	LDB	AC2,C.54			; AC2,[POINT 16,5(AC1),17]  <18,16>	401556' 135 02 0 00 401633'
	PUSH	SP,AC2				; SP,AC2				401557' 261 17 0 00 000002
	MOVE	AC2,AC16			; AC2,INDEX				401560' 200 02 0 00 000016
	LDB	AC3,C.55			; AC3,[POINT 8,4(AC1),35]  <0,8>	401561' 135 03 0 00 401634'
	IMUL	AC2,AC3				; AC2,AC3				401562' 220 02 0 00 000003
	PUSH	SP,AC2				; SP,AC2				401563' 261 17 0 00 000002
	PUSHJ	SP,POSFIL			; SP,POSFIL				401564' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401565' 261 17 0 00 010022'		0920
	MOVE	AC1,LIBEPT			; AC1,LIBEPT				401566' 200 01 0 00 000000*
	MOVE	AC2,AC16			; AC2,INDEX				401567' 200 02 0 00 000016
	IMULI	AC2,2				; AC2,2					401570' 221 02 0 00 000002
	ADD	AC1,AC2				; AC1,AC2				401571' 270 01 0 00 000002
	MOVEI	AC1,-1(AC1)			; AC1,-1(AC1)				401572' 201 01 0 01 777777
	HRLI	AC1,2200			; AC1,2200				401573' 505 01 0 00 002200
	PUSH	SP,AC1				; SP,AC1				401574' 261 17 0 00 000001
	PUSH	SP,C.56				; SP,[4]				401575' 261 17 0 00 401635'
	PUSHJ	SP,PUTFIL			; SP,PUTFIL				401576' 260 17 0 00 000000*
	ADJSP	SP,-6				; SP,-6					401577' 105 17 0 00 777772		0918
L.67:	ADDI	AC16,1				; INDEX,1				401600' 271 16 0 00 000001		0917
	CAMGE	AC16,AC14			; INDEX,AC14				401601' 315 16 0 00 000014
	JRST	L.66				; L.66					401602' 254 00 0 00 401554'
	SETZM	EPT_CHANGED			; EPT_CHANGED				401603' 402 00 0 00 010000'		0923
L.68:	MOVEI	AC1,1				; AC1,1					401604' 201 01 0 00 000001		0926
	TDNN	AC1,HDR_CHANGED			; AC1,HDR_CHANGED			401605' 616 01 0 00 010021'
	JRST	L.69				; L.69					401606' 254 00 0 00 401624'
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401607' 261 17 0 00 010022'		0929
	PUSH	SP,C.6				; SP,[1]				401610' 261 17 0 00 400054'
	PUSH	SP,C.11				; SP,[0]				401611' 261 17 0 00 400232'
	PUSHJ	SP,POSFIL			; SP,POSFIL				401612' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				401613' 261 17 0 00 010022'		0930
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				401614' 200 01 0 00 000000*
	MOVEI	AC1,-1(AC1)			; AC1,-1(AC1)				401615' 201 01 0 01 777777
	HRLI	AC1,2200			; AC1,2200				401616' 505 01 0 00 002200
	PUSH	SP,AC1				; SP,AC1				401617' 261 17 0 00 000001
	PUSH	SP,C.57				; SP,[30]				401620' 261 17 0 00 401636'
	PUSHJ	SP,PUTFIL			; SP,PUTFIL				401621' 260 17 0 00 000000*
	SETZM	HDR_CHANGED			; HDR_CHANGED				401622' 402 00 0 00 010021'		0931
	ADJSP	SP,-6				; SP,-6					401623' 105 17 0 00 777772		0928
L.69:	POP	SP,AC16				; SP,AC16				401624' 262 17 0 00 000016		0869
	POP	SP,AC14				; SP,AC14				401625' 262 17 0 00 000014
	POPJ	SP,				; SP,					401626' 263 17 0 00 000000
C.50:	POINT	16,7(AC1),35			; 16,7(AC1),35				401627' 00 20 0 01 000007
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  43
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (10)

C.51:	POINT	16,10(AC1),17			; 16,10(AC1),17				401630' 22 20 0 01 000010
C.52:	POINT	16,7(AC1),17			; 16,7(AC1),17				401631' 22 20 0 01 000007
C.53:	POINT	8,6(AC1),35			; 8,6(AC1),35				401632' 00 10 0 01 000006
C.54:	POINT	16,5(AC1),17			; 16,5(AC1),17				401633' 22 20 0 01 000005
C.55:	POINT	8,4(AC1),35			; 8,4(AC1),35				401634' 00 10 0 01 000004
C.56:	EXP	4				; 4					401635' 000000	000004
C.57:	EXP	30				; 30					401636' 000000	000030

; Routine Size:  95 words


;   0935  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  44
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

;   0936  1	GLOBAL ROUTINE LIBOPN (FILBLK) =
;   0937  1	
;   0938  1	!++
;   0939  1	! FUNCTIONAL DESCRIPTION:
;   0940  1	!
;   0941  1	!
;   0942  1	!
;   0943  1	!
;   0944  1	! FORMAL PARAMETERS:
;   0945  1	!
;   0946  1	!
;   0947  1	! IMPLICIT INPUTS:
;   0948  1	!
;   0949  1	!	NONE
;   0950  1	!
;   0951  1	! IMPLICIT OUTPUTS:
;   0952  1	!
;   0953  1	!	NONE
;   0954  1	!
;   0955  1	! ROUTINE VALUE:
;   0956  1	!
;   0957  1	!	NONE
;   0958  1	!
;   0959  1	! SIDE EFFECTS
;   0960  1	!
;   0961  1	!	NONE
;   0962  1	!
;   0963  1	!--
;   0964  1	
;   0965  2	    BEGIN
;   0966  2	
;   0967  2	    MACRO
; M 0968  2		ABORT (text) =
; M 0969  2		    RETURN
; M 0970  2			BEGIN
; M 0971  2			%IF %NULL (%REMAINING)
; M 0972  2			%THEN
; M 0973  2			    TYPLN (1, CH$ASCIZ (FATAL, text))
; M 0974  2			%ELSE
; M 0975  2			    TYPLN (1, CH$ASCIZ (FATAL, text), %REMAINING)
; M 0976  2			%FI;
; M 0977  2			CLOSE (.LIB_FILBLK);
; M 0978  2			FALSE
;   0979  2			END %;
;   0980  2	
;   0981  2	    LIB_FILBLK = .FILBLK;
;   0982  2	
;   0983  2	    IF .FLAGS [M_CREATE] OR .FLAGS [M_COMPRESS]
;   0984  2	    THEN
;   0985  3		BEGIN
;   0986  3		LIBHDR = HDRBUF;
;   0987  4		BEGIN
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  45
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

;   0988  4		LIBHDR [LIB_TYPE] = LIB_OBJECT;
;   0989  4		LIBHDR [LIB_IDENTIFICATION] = LIB_ID_2;
;   0990  4		LIBHDR [LIB_VERSION_1] = RAD50_WORD (%STRING (%CHAR (LBR_SUPPORT), CHAR2 (LBR_VERSION)));
;   0991  4		LIBHDR [LIB_VERSION_2] = RAD50_WORD (%STRING ('.', CHAR2 (LBR_EDIT)));
;   0992  5		BEGIN
;   0993  5	
;   0994  5		LOCAL
;   0995  5		    TIME_BLOCK : VECTOR [8];
;   0996  5	
;   0997  5		GETTIM (TIME_BLOCK);
;   0998  5		LIBHDR [LIB_YEAR] = .TIME_BLOCK [0];
;   0999  5		LIBHDR [LIB_MONTH] = .TIME_BLOCK [1];
;   1000  5		LIBHDR [LIB_DAY] = .TIME_BLOCK [2];
;   1001  5		LIBHDR [LIB_HOUR] = .TIME_BLOCK [3];
;   1002  5		LIBHDR [LIB_MINUTE] = .TIME_BLOCK [4];
;   1003  5		LIBHDR [LIB_SECOND] = .TIME_BLOCK [5];
;   1004  4		END;
;   1005  4		LIBHDR [LIB_EPT_SIZE] = EPT_SIZE;
;   1006  4		LIBHDR [LIB_EPT_BLOCK] = 2;
;   1007  4		LIBHDR [LIB_EPT_ALLOCATED] = .NUMEPT;
;   1008  4		LIBHDR [LIB_EPT_AVAILABLE] = .NUMEPT;
;   1009  4		LIBHDR [LIB_MNT_SIZE] = MNT_SIZE;
;   1010  4		LIBHDR [LIB_MNT_BLOCK] = .LIBHDR [LIB_EPT_BLOCK] + (EPT_SIZE*.NUMEPT + BLOCK_SIZE - 1)/BLOCK_SIZE;
;   1011  4		LIBHDR [LIB_MNT_ALLOCATED] = .NUMMNT;
;   1012  4		LIBHDR [LIB_MNT_AVAILABLE] = .NUMMNT;
;   1013  4		LIBHDR [LIB_DELETED_1] = 0;
;   1014  4		LIBHDR [LIB_DELETED_2] = 0;
;   1015  4		LIBHDR [LIB_INSERT_BLOCK] = .LIBHDR [LIB_MNT_BLOCK] + (MNT_SIZE*.NUMMNT + BLOCK_SIZE - 1)/BLOCK_SIZE;
;   1016  4		LIBHDR [LIB_INSERT_OFFSET] = 0;
;   1017  4		LIBHDR [LIB_CONTIGUOUS_1] = 0;
;   1018  4		LIBHDR [LIB_CONTIGUOUS_2] = 0;
;   1019  4		HDR_CHANGED = TRUE;
;   1020  3		END;
;   1021  3	
;   1022  3		IF .LIBHDR [LIB_EPT_ALLOCATED] LEQ EPTBUF_SIZE
;   1023  3		THEN
;   1024  3		    LIBEPT = EPTBUF
;   1025  3		ELSE
;   1026  3		    ABORT ('Insufficient buffer space for EPT table');
;   1027  3	
;   1028  3		EPT_CHANGED = FALSE;
;   1029  3	
;   1030  3		IF .LIBHDR [LIB_MNT_ALLOCATED] LEQ MNTBUF_SIZE
;   1031  3		THEN
;   1032  3		    LIBMNT = MNTBUF
;   1033  3		ELSE
;   1034  3		    ABORT ('Insufficient buffer space for MNT table');
;   1035  3	
;   1036  3		MNT_CHANGED = FALSE;
;   1037  3	
;   1038  3		IF NOT OPEN (.LIB_FILBLK, F_UPDATE, F_BINARY)
;   1039  3		THEN
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  46
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

; P 1040  3		    ABORT ('Open failure on library file "%@"', FILNM,
;   1041  3			.LIB_FILBLK);
;   1042  3	
;   1043  3		END
;   1044  2	    ELSE
;   1045  3		BEGIN
;   1046  3	
;   1047  3		IF NOT OPEN (.LIB_FILBLK, F_UPDATE, F_BINARY)
;   1048  3		THEN
;   1049  3	
;   1050  3		    IF OPEN (.LIB_FILBLK, F_READ, F_BINARY)
;   1051  3		    THEN
; P 1052  3			TYPLN (1,
; P 1053  3			    CH$ASCIZ (WARNING,
;   1054  4				'Library file "%@" open for input only%/'), FILNM, .LIB_FILBLK)
;   1055  3		    ELSE
;   1056  3			ABORT ('Open failure on library file "%@"', FILNM, .LIB_FILBLK);
;   1057  3	
;   1058  3		LIBHDR = HDRBUF;
;   1059  4		BEGIN
;   1060  4		POSFIL (.LIB_FILBLK, 1, 0);
;   1061  4		GETFIL (.LIB_FILBLK, CH$PTR (.LIBHDR,, 18), LIB_SIZE/2);
;   1062  4		HDR_CHANGED = FALSE;
;   1063  4	
;   1064  4		IF .LIBHDR [LIB_EPT_ALLOCATED] LEQ EPTBUF_SIZE
;   1065  4		THEN
;   1066  5		    BEGIN
;   1067  5		    LIBEPT = EPTBUF;
;   1068  5	
;   1069  5		    INCR INDEX FROM 0 TO .LIBHDR [LIB_EPT_ALLOCATED] - .LIBHDR [LIB_EPT_AVAILABLE] - 1 DO
;   1070  6			BEGIN
;   1071  6			POSFIL (.LIB_FILBLK, .LIBHDR [LIB_EPT_BLOCK], .INDEX*.LIBHDR [LIB_EPT_SIZE]);
;   1072  6			GETFIL (.LIB_FILBLK, CH$PTR (LIBEPT [.INDEX, 0, 0, 0, 0],, 18), EPT_SIZE/2);
;   1073  5			END;
;   1074  5	
;   1075  5		    EPT_CHANGED = FALSE;
;   1076  5		    END
;   1077  4		ELSE
;   1078  4		    ABORT ('Insufficient buffer space for EPT table');
;   1079  4	
;   1080  4		IF .LIBHDR [LIB_MNT_ALLOCATED] LEQ MNTBUF_SIZE
;   1081  4		THEN
;   1082  5		    BEGIN
;   1083  5		    LIBMNT = MNTBUF;
;   1084  5	
;   1085  5		    INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
;   1086  6			BEGIN
;   1087  6			POSFIL (.LIB_FILBLK, .LIBHDR [LIB_MNT_BLOCK], .INDEX*.LIBHDR [LIB_MNT_SIZE]);
;   1088  6			GETFIL (.LIB_FILBLK, CH$PTR (LIBMNT [.INDEX, 0, 0, 0, 0],, 18), MNT_SIZE/2);
;   1089  5			END;
;   1090  5	
;   1091  5		    MNT_CHANGED = FALSE;
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  47
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

;   1092  5		    END
;   1093  4		ELSE
;   1094  4		    ABORT ('Insufficient buffer space for MNT table');
;   1095  4	
;   1096  3		END;
;   1097  2		END;
;   1098  2	
;   1099  2	    TRUE
;   1100  1	    END;					!OF LIBOPN


P.AAL:	BYTE	(7)"*","F","A","T","A"		; *FATA					401637' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","I"		; L*  I					401640' 114 052 040 040 111
	BYTE	(7)"n","s","u","f","f"		; nsuff					401641' 156 163 165 146 146
	BYTE	(7)"i","c","i","e","n"		; icien					401642' 151 143 151 145 156
	BYTE	(7)"t"," ","b","u","f"		; t buf					401643' 164 040 142 165 146
	BYTE	(7)"f","e","r"," ","s"		; fer s					401644' 146 145 162 040 163
	BYTE	(7)"p","a","c","e"," "		; pace					401645' 160 141 143 145 040
	BYTE	(7)"f","o","r"," ","E"		; for E					401646' 146 157 162 040 105
	BYTE	(7)"P","T"," ","t","a"		; PT ta					401647' 120 124 040 164 141
	BYTE	(7)"b","l","e",000,000		; ble					401650' 142 154 145 000 000
P.AAM:	BYTE	(7)"*","F","A","T","A"		; *FATA					401651' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","I"		; L*  I					401652' 114 052 040 040 111
	BYTE	(7)"n","s","u","f","f"		; nsuff					401653' 156 163 165 146 146
	BYTE	(7)"i","c","i","e","n"		; icien					401654' 151 143 151 145 156
	BYTE	(7)"t"," ","b","u","f"		; t buf					401655' 164 040 142 165 146
	BYTE	(7)"f","e","r"," ","s"		; fer s					401656' 146 145 162 040 163
	BYTE	(7)"p","a","c","e"," "		; pace					401657' 160 141 143 145 040
	BYTE	(7)"f","o","r"," ","M"		; for M					401660' 146 157 162 040 115
	BYTE	(7)"N","T"," ","t","a"		; NT ta					401661' 116 124 040 164 141
	BYTE	(7)"b","l","e",000,000		; ble					401662' 142 154 145 000 000
P.AAN:	BYTE	(7)"*","F","A","T","A"		; *FATA					401663' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","O"		; L*  O					401664' 114 052 040 040 117
	BYTE	(7)"p","e","n"," ","f"		; pen f					401665' 160 145 156 040 146
	BYTE	(7)"a","i","l","u","r"		; ailur					401666' 141 151 154 165 162
	BYTE	(7)"e"," ","o","n"," "		; e on					401667' 145 040 157 156 040
	BYTE	(7)"l","i","b","r","a"		; libra					401670' 154 151 142 162 141
	BYTE	(7)"r","y"," ","f","i"		; ry fi					401671' 162 171 040 146 151
	BYTE	(7)"l","e"," ",042,"%"		; le "%					401672' 154 145 040 042 045
	BYTE	(7)"@",042,000,000,000		; @"					401673' 100 042 000 000 000
P.AAO:	BYTE	(7)"*","W","A","R","N"		; *WARN					401674' 052 127 101 122 116
	BYTE	(7)"I","N","G","*"," "		; ING*					401675' 111 116 107 052 040
	BYTE	(7)" ","L","i","b","r"		;  Libr					401676' 040 114 151 142 162
	BYTE	(7)"a","r","y"," ","f"		; ary f					401677' 141 162 171 040 146
	BYTE	(7)"i","l","e"," ",042		; ile "					401700' 151 154 145 040 042
	BYTE	(7)"%","@",042," ","o"		; %@" o					401701' 045 100 042 040 157
	BYTE	(7)"p","e","n"," ","f"		; pen f					401702' 160 145 156 040 146
	BYTE	(7)"o","r"," ","i","n"		; or in					401703' 157 162 040 151 156
	BYTE	(7)"p","u","t"," ","o"		; put o					401704' 160 165 164 040 157
	BYTE	(7)"n","l","y","%","/"		; nly%/					401705' 156 154 171 045 057
	BYTE	(7)000,000,000,000,000		;					401706' 000 000 000 000 000
P.AAP:	BYTE	(7)"*","F","A","T","A"		; *FATA					401707' 052 106 101 124 101
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  48
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

	BYTE	(7)"L","*"," "," ","O"		; L*  O					401710' 114 052 040 040 117
	BYTE	(7)"p","e","n"," ","f"		; pen f					401711' 160 145 156 040 146
	BYTE	(7)"a","i","l","u","r"		; ailur					401712' 141 151 154 165 162
	BYTE	(7)"e"," ","o","n"," "		; e on					401713' 145 040 157 156 040
	BYTE	(7)"l","i","b","r","a"		; libra					401714' 154 151 142 162 141
	BYTE	(7)"r","y"," ","f","i"		; ry fi					401715' 162 171 040 146 151
	BYTE	(7)"l","e"," ",042,"%"		; le "%					401716' 154 145 040 042 045
	BYTE	(7)"@",042,000,000,000		; @"					401717' 100 042 000 000 000
P.AAQ:	BYTE	(7)"*","F","A","T","A"		; *FATA					401720' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","I"		; L*  I					401721' 114 052 040 040 111
	BYTE	(7)"n","s","u","f","f"		; nsuff					401722' 156 163 165 146 146
	BYTE	(7)"i","c","i","e","n"		; icien					401723' 151 143 151 145 156
	BYTE	(7)"t"," ","b","u","f"		; t buf					401724' 164 040 142 165 146
	BYTE	(7)"f","e","r"," ","s"		; fer s					401725' 146 145 162 040 163
	BYTE	(7)"p","a","c","e"," "		; pace					401726' 160 141 143 145 040
	BYTE	(7)"f","o","r"," ","E"		; for E					401727' 146 157 162 040 105
	BYTE	(7)"P","T"," ","t","a"		; PT ta					401730' 120 124 040 164 141
	BYTE	(7)"b","l","e",000,000		; ble					401731' 142 154 145 000 000
P.AAR:	BYTE	(7)"*","F","A","T","A"		; *FATA					401732' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","I"		; L*  I					401733' 114 052 040 040 111
	BYTE	(7)"n","s","u","f","f"		; nsuff					401734' 156 163 165 146 146
	BYTE	(7)"i","c","i","e","n"		; icien					401735' 151 143 151 145 156
	BYTE	(7)"t"," ","b","u","f"		; t buf					401736' 164 040 142 165 146
	BYTE	(7)"f","e","r"," ","s"		; fer s					401737' 146 145 162 040 163
	BYTE	(7)"p","a","c","e"," "		; pace					401740' 160 141 143 145 040
	BYTE	(7)"f","o","r"," ","M"		; for M					401741' 146 157 162 040 115
	BYTE	(7)"N","T"," ","t","a"		; NT ta					401742' 116 124 040 164 141
	BYTE	(7)"b","l","e",000,000		; ble					401743' 142 154 145 000 000


LIBOPN::PUSH	SP,AC14				; SP,AC14				401744' 261 17 0 00 000014		0936
	PUSH	SP,AC16				; SP,AC16				401745' 261 17 0 00 000016
	ADJSP	SP,10				; SP,10					401746' 105 17 0 00 000010
	MOVE	AC1,-13(SP)			; AC1,FILBLK				401747' 200 01 0 17 777765		0981
	MOVEM	AC1,LIB_FILBLK			; AC1,LIB_FILBLK			401750' 202 01 0 00 010022'
	MOVEI	AC1,3000			; AC1,3000				401751' 201 01 0 00 003000		0983
	TDNN	AC1,FLAGS			; AC1,FLAGS				401752' 616 01 0 00 000000*
	JRST	L.76				; L.76					401753' 254 00 0 00 402130'
	MOVEI	AC1,HDRBUF			; AC1,HDRBUF				401754' 201 01 0 00 010005'		0986
	MOVEM	AC1,LIBHDR			; AC1,LIBHDR				401755' 202 01 0 00 000000*
	MOVSI	AC2,377				; AC2,377				401756' 205 02 0 00 000377		0988
	ANDCAM	AC2,0(AC1)			; AC2,0(AC1)				401757' 412 02 0 01 000000
	MOVEI	AC2,2				; AC2,2					401760' 201 02 0 00 000002		0989
	DPB	AC2,C.58			; AC2,[POINT 8,0(AC1),11]  <24,8>	401761' 137 02 0 00 402347'
	MOVEI	AC2,115317			; AC2,115317				401762' 201 02 0 00 115317		0990
	DPB	AC2,C.59			; AC2,[POINT 16,0(AC1),35]  <0,16>	401763' 137 02 0 00 402350'
	MOVEI	AC2,131724			; AC2,131724				401764' 201 02 0 00 131724		0991
	DPB	AC2,C.60			; AC2,[POINT 16,1(AC1),17]  <18,16>	401765' 137 02 0 00 402351'
	MOVEI	AC1,-7(SP)			; AC1,TIME_BLOCK			401766' 201 01 0 17 777771		0997
	PUSH	SP,AC1				; SP,AC1				401767' 261 17 0 00 000001
	PUSHJ	SP,GETTIM			; SP,GETTIM				401770' 260 17 0 00 000000*
	MOVE	AC3,LIBHDR			; AC3,LIBHDR				401771' 200 03 0 00 000000*		0998
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  49
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

	MOVE	AC1,-10(SP)			; AC1,TIME_BLOCK			401772' 200 01 0 17 777770
	DPB	AC1,C.25			; AC1,[POINT 16,1(AC3),35]  <0,16>	401773' 137 01 0 00 400502'
	MOVE	AC1,-7(SP)			; AC1,TIME_BLOCK+1			401774' 200 01 0 17 777771		0999
	DPB	AC1,C.61			; AC1,[POINT 16,2(AC3),17]  <18,16>	401775' 137 01 0 00 402352'
	MOVE	AC1,-6(SP)			; AC1,TIME_BLOCK+2			401776' 200 01 0 17 777772		1000
	DPB	AC1,C.62			; AC1,[POINT 16,2(AC3),35]  <0,16>	401777' 137 01 0 00 402353'
	MOVE	AC1,-5(SP)			; AC1,TIME_BLOCK+3			402000' 200 01 0 17 777773		1001
	DPB	AC1,C.63			; AC1,[POINT 16,3(AC3),17]  <18,16>	402001' 137 01 0 00 402354'
	MOVE	AC1,-4(SP)			; AC1,TIME_BLOCK+4			402002' 200 01 0 17 777774		1002
	DPB	AC1,C.64			; AC1,[POINT 16,3(AC3),35]  <0,16>	402003' 137 01 0 00 402355'
	MOVE	AC1,-3(SP)			; AC1,TIME_BLOCK+5			402004' 200 01 0 17 777775		1003
	DPB	AC1,C.65			; AC1,[POINT 16,4(AC3),17]  <18,16>	402005' 137 01 0 00 402356'
	MOVEI	AC1,10				; AC1,10				402006' 201 01 0 00 000010		1005
	DPB	AC1,C.66			; AC1,[POINT 8,4(AC3),35]  <0,8>	402007' 137 01 0 00 402357'
	MOVEI	AC1,2				; AC1,2					402010' 201 01 0 00 000002		1006
	DPB	AC1,C.67			; AC1,[POINT 16,5(AC3),17]  <18,16>	402011' 137 01 0 00 402360'
	MOVE	AC1,NUMEPT			; AC1,NUMEPT				402012' 200 01 0 00 000000*		1007
	DPB	AC1,C.17			; AC1,[POINT 16,5(AC3),35]  <0,16>	402013' 137 01 0 00 400377'
	MOVE	AC1,NUMEPT			; AC1,NUMEPT				402014' 200 01 0 00 000000*		1008
	DPB	AC1,C.16			; AC1,[POINT 16,6(AC3),17]  <18,16>	402015' 137 01 0 00 400376'
	MOVEI	AC1,10				; AC1,10				402016' 201 01 0 00 000010		1009
	DPB	AC1,C.68			; AC1,[POINT 8,6(AC3),35]  <0,8>	402017' 137 01 0 00 402361'
	MOVE	AC1,NUMEPT			; AC1,NUMEPT				402020' 200 01 0 00 000000*		1010
	IMULI	AC1,10				; AC1,10				402021' 221 01 0 00 000010
	ADDI	AC1,777				; AC1,777				402022' 271 01 0 00 000777
	IDIVI	AC1,1000			; AC1,1000				402023' 231 01 0 00 001000
	LDB	AC4,C.67			; AC4,[POINT 16,5(AC3),17]  <18,16>	402024' 135 04 0 00 402360'
	ADD	AC1,AC4				; AC1,AC4				402025' 270 01 0 00 000004
	DPB	AC1,C.69			; AC1,[POINT 16,7(AC3),17]  <18,16>	402026' 137 01 0 00 402362'
	MOVE	AC1,NUMMNT			; AC1,NUMMNT				402027' 200 01 0 00 000000*		1011
	DPB	AC1,C.70			; AC1,[POINT 16,7(AC3),35]  <0,16>	402030' 137 01 0 00 402363'
	MOVE	AC1,NUMMNT			; AC1,NUMMNT				402031' 200 01 0 00 000000*		1012
	DPB	AC1,C.71			; AC1,[POINT 16,10(AC3),17]  <18,16>	402032' 137 01 0 00 402364'
	MOVEI	AC1,177777			; AC1,177777				402033' 201 01 0 00 177777		1013
	ANDCAM	AC1,10(AC3)			; AC1,10(AC3)				402034' 412 01 0 03 000010
	MOVSI	AC1,177777			; AC1,177777				402035' 205 01 0 00 177777		1014
	ANDCAM	AC1,11(AC3)			; AC1,11(AC3)				402036' 412 01 0 03 000011
	MOVE	AC1,NUMMNT			; AC1,NUMMNT				402037' 200 01 0 00 000000*		1015
	IMULI	AC1,10				; AC1,10				402040' 221 01 0 00 000010
	ADDI	AC1,777				; AC1,777				402041' 271 01 0 00 000777
	IDIVI	AC1,1000			; AC1,1000				402042' 231 01 0 00 001000
	LDB	AC4,C.69			; AC4,[POINT 16,7(AC3),17]  <18,16>	402043' 135 04 0 00 402362'
	ADD	AC1,AC4				; AC1,AC4				402044' 270 01 0 00 000004
	DPB	AC1,C.72			; AC1,[POINT 16,12(AC3),35]  <0,16>	402045' 137 01 0 00 402365'
	MOVSI	AC1,177777			; AC1,177777				402046' 205 01 0 00 177777		1016
	ANDCAM	AC1,13(AC3)			; AC1,13(AC3)				402047' 412 01 0 03 000013
	MOVEI	AC1,177777			; AC1,177777				402050' 201 01 0 00 177777		1017
	ANDCAM	AC1,11(AC3)			; AC1,11(AC3)				402051' 412 01 0 03 000011
	MOVSI	AC1,177777			; AC1,177777				402052' 205 01 0 00 177777		1018
	ANDCAM	AC1,12(AC3)			; AC1,12(AC3)				402053' 412 01 0 03 000012
	MOVEI	AC1,1				; AC1,1					402054' 201 01 0 00 000001		1019
	MOVEM	AC1,HDR_CHANGED			; AC1,HDR_CHANGED			402055' 202 01 0 00 010021'
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  50
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

	LDB	AC1,C.17			; AC1,[POINT 16,5(AC3),35]  <0,16>	402056' 135 01 0 00 400377'		1022
	CAILE	AC1,4000			; AC1,4000				402057' 303 01 0 00 004000
	JRST	L.70				; L.70					402060' 254 00 0 00 402064'
	MOVEI	AC1,EPTBUF			; AC1,EPTBUF				402061' 201 01 0 00 000000'		1024
	MOVEM	AC1,LIBEPT			; AC1,LIBEPT				402062' 202 01 0 00 000000*
	JRST	L.71				; L.71					402063' 254 00 0 00 402067'		1022
L.70:	PUSH	SP,C.6				; SP,[1]				402064' 261 17 0 00 400054'		1026
	PUSH	SP,C.73				; SP,[POINT 7,P.AAL-1,34]  <1,7>	402065' 261 17 0 00 402366'
	JRST	L.73				; L.73					402066' 254 00 0 00 402101'
L.71:	SETZM	EPT_CHANGED			; EPT_CHANGED				402067' 402 00 0 00 010000'		1028
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				402070' 200 01 0 00 000000*		1030
	LDB	AC2,C.50			; AC2,[POINT 16,7(AC1),35]  <0,16>	402071' 135 02 0 00 401627'
	CAILE	AC2,2000			; AC2,2000				402072' 303 02 0 00 002000
	JRST	L.72				; L.72					402073' 254 00 0 00 402077'
	MOVEI	AC1,MNTBUF			; AC1,MNTBUF				402074' 201 01 0 00 010023'		1032
	MOVEM	AC1,LIBMNT			; AC1,LIBMNT				402075' 202 01 0 00 000000*
	JRST	L.74				; L.74					402076' 254 00 0 00 402103'		1030
L.72:	PUSH	SP,C.6				; SP,[1]				402077' 261 17 0 00 400054'		1034
	PUSH	SP,C.74				; SP,[POINT 7,P.AAM-1,34]  <1,7>	402100' 261 17 0 00 402367'
L.73:	PUSH	SP,C.11				; SP,[0]				402101' 261 17 0 00 400232'
	JRST	L.75				; L.75					402102' 254 00 0 00 402123'
L.74:	SETZM	MNT_CHANGED			; MNT_CHANGED				402103' 402 00 0 00 014023'		1036
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402104' 261 17 0 00 010022'		1038
	PUSH	SP,C.56				; SP,[4]				402105' 261 17 0 00 401635'
	PUSH	SP,C.6				; SP,[1]				402106' 261 17 0 00 400054'
	PUSHJ	SP,OPEN				; SP,OPEN				402107' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					402110' 105 17 0 00 777775
	TRNE	AC1,1				; AC1,1					402111' 602 01 0 00 000001
	JRST	L.89				; L.89					402112' 254 00 0 00 402341'
	MOVEI	AC1,FILNM			; AC1,FILNM				402113' 201 01 0 00 000000*		1041
	MOVEM	AC1,-10(SP)			; AC1,PRM_LIST				402114' 202 01 0 17 777770
	MOVE	AC1,LIB_FILBLK			; AC1,LIB_FILBLK			402115' 200 01 0 00 010022'
	MOVEM	AC1,-7(SP)			; AC1,TIME_BLOCK+1			402116' 202 01 0 17 777771
	PUSH	SP,C.6				; SP,[1]				402117' 261 17 0 00 400054'
	PUSH	SP,C.75				; SP,[POINT 7,P.AAN-1,34]  <1,7>	402120' 261 17 0 00 402370'
	MOVEI	AC1,-12(SP)			; AC1,PRM_LIST				402121' 201 01 0 17 777766
	PUSH	SP,AC1				; SP,AC1				402122' 261 17 0 00 000001
L.75:	PUSHJ	SP,TYPLIN			; SP,TYPLIN				402123' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402124' 261 17 0 00 010022'
	PUSHJ	SP,CLOSE			; SP,CLOSE				402125' 260 17 0 00 000000*
	ADJSP	SP,-5				; SP,-5					402126' 105 17 0 00 777773
	JRST	L.87				; L.87					402127' 254 00 0 00 402336'
L.76:	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402130' 261 17 0 00 010022'		1047
	PUSH	SP,C.56				; SP,[4]				402131' 261 17 0 00 401635'
	PUSH	SP,C.6				; SP,[1]				402132' 261 17 0 00 400054'
	PUSHJ	SP,OPEN				; SP,OPEN				402133' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					402134' 105 17 0 00 777775
	TRNE	AC1,1				; AC1,1					402135' 602 01 0 00 000001
	JRST	L.78				; L.78					402136' 254 00 0 00 402176'
	MOVEI	AC14,FILNM			; AC14,FILNM				402137' 201 14 0 00 000000*		1054
	MOVEM	AC14,-7(SP)			; AC14,PRM_LIST				402140' 202 14 0 17 777771
	MOVEI	AC16,-7(SP)			; AC16,PRM_LIST				402141' 201 16 0 17 777771
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  51
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

	ADDI	AC16,1				; AC16,1				402142' 271 16 0 00 000001
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402143' 261 17 0 00 010022'		1050
	PUSH	SP,C.11				; SP,[0]				402144' 261 17 0 00 400232'
	PUSH	SP,C.6				; SP,[1]				402145' 261 17 0 00 400054'
	PUSHJ	SP,OPEN				; SP,OPEN				402146' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					402147' 105 17 0 00 777775
	TRNN	AC1,1				; AC1,1					402150' 606 01 0 00 000001
	JRST	L.77				; L.77					402151' 254 00 0 00 402163'
	MOVE	AC1,LIB_FILBLK			; AC1,LIB_FILBLK			402152' 200 01 0 00 010022'		1054
	MOVEM	AC1,0(AC16)			; AC1,0(AC16)				402153' 202 01 0 16 000000
	PUSH	SP,C.6				; SP,[1]				402154' 261 17 0 00 400054'
	PUSH	SP,C.76				; SP,[POINT 7,P.AAO-1,34]  <1,7>	402155' 261 17 0 00 402371'
	MOVEI	AC1,-11(SP)			; AC1,PRM_LIST				402156' 201 01 0 17 777767
	PUSH	SP,AC1				; SP,AC1				402157' 261 17 0 00 000001
	PUSHJ	SP,TYPLIN			; SP,TYPLIN				402160' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					402161' 105 17 0 00 777775
	JRST	L.78				; L.78					402162' 254 00 0 00 402176'		1050
L.77:	MOVE	AC1,LIB_FILBLK			; AC1,LIB_FILBLK			402163' 200 01 0 00 010022'		1056
	MOVEM	AC1,0(AC16)			; AC1,0(AC16)				402164' 202 01 0 16 000000
	PUSH	SP,C.6				; SP,[1]				402165' 261 17 0 00 400054'
	PUSH	SP,C.77				; SP,[POINT 7,P.AAP-1,34]  <1,7>	402166' 261 17 0 00 402372'
	MOVEI	AC1,-11(SP)			; AC1,PRM_LIST				402167' 201 01 0 17 777767
	PUSH	SP,AC1				; SP,AC1				402170' 261 17 0 00 000001
	PUSHJ	SP,TYPLIN			; SP,TYPLIN				402171' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402172' 261 17 0 00 010022'
	PUSHJ	SP,CLOSE			; SP,CLOSE				402173' 260 17 0 00 000000*
	ADJSP	SP,-4				; SP,-4					402174' 105 17 0 00 777774
	JRST	L.87				; L.87					402175' 254 00 0 00 402336'
L.78:	MOVEI	AC1,HDRBUF			; AC1,HDRBUF				402176' 201 01 0 00 010005'		1058
	MOVEM	AC1,LIBHDR			; AC1,LIBHDR				402177' 202 01 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402200' 261 17 0 00 010022'		1060
	PUSH	SP,C.6				; SP,[1]				402201' 261 17 0 00 400054'
	PUSH	SP,C.11				; SP,[0]				402202' 261 17 0 00 400232'
	PUSHJ	SP,POSFIL			; SP,POSFIL				402203' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402204' 261 17 0 00 010022'		1061
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				402205' 200 01 0 00 000000*
	MOVEI	AC1,-1(AC1)			; AC1,-1(AC1)				402206' 201 01 0 01 777777
	HRLI	AC1,2200			; AC1,2200				402207' 505 01 0 00 002200
	PUSH	SP,AC1				; SP,AC1				402210' 261 17 0 00 000001
	PUSH	SP,C.57				; SP,[30]				402211' 261 17 0 00 401636'
	PUSHJ	SP,GETFIL			; SP,GETFIL				402212' 260 17 0 00 000000*
	SETZM	HDR_CHANGED			; HDR_CHANGED				402213' 402 00 0 00 010021'		1062
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				402214' 200 01 0 00 000000*		1064
	LDB	AC2,C.14			; AC2,[POINT 16,5(AC1),35]  <0,16>	402215' 135 02 0 00 400263'
	CAILE	AC2,4000			; AC2,4000				402216' 303 02 0 00 004000
	JRST	L.81				; L.81					402217' 254 00 0 00 402260'
	MOVEI	AC3,EPTBUF			; AC3,EPTBUF				402220' 201 03 0 00 000000'		1067
	MOVEM	AC3,LIBEPT			; AC3,LIBEPT				402221' 202 03 0 00 000000*
	MOVE	AC14,AC2			; AC14,AC2				402222' 200 14 0 00 000002		1069
	LDB	AC3,C.15			; AC3,[POINT 16,6(AC1),17]  <18,16>	402223' 135 03 0 00 400264'
	SUB	AC14,AC3			; AC14,AC3				402224' 274 14 0 00 000003
	SETO	AC16,				; INDEX,				402225' 474 16 0 00 000000
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  52
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

	JRST	L.80				; L.80					402226' 254 00 0 00 402253'
L.79:	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402227' 261 17 0 00 010022'		1071
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				402230' 200 01 0 00 000000*
	LDB	AC2,C.54			; AC2,[POINT 16,5(AC1),17]  <18,16>	402231' 135 02 0 00 401633'
	PUSH	SP,AC2				; SP,AC2				402232' 261 17 0 00 000002
	MOVE	AC2,AC16			; AC2,INDEX				402233' 200 02 0 00 000016
	LDB	AC3,C.55			; AC3,[POINT 8,4(AC1),35]  <0,8>	402234' 135 03 0 00 401634'
	IMUL	AC2,AC3				; AC2,AC3				402235' 220 02 0 00 000003
	PUSH	SP,AC2				; SP,AC2				402236' 261 17 0 00 000002
	PUSHJ	SP,POSFIL			; SP,POSFIL				402237' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402240' 261 17 0 00 010022'		1072
	MOVE	AC1,LIBEPT			; AC1,LIBEPT				402241' 200 01 0 00 000000*
	MOVE	AC2,AC16			; AC2,INDEX				402242' 200 02 0 00 000016
	IMULI	AC2,2				; AC2,2					402243' 221 02 0 00 000002
	ADD	AC1,AC2				; AC1,AC2				402244' 270 01 0 00 000002
	MOVEI	AC1,-1(AC1)			; AC1,-1(AC1)				402245' 201 01 0 01 777777
	HRLI	AC1,2200			; AC1,2200				402246' 505 01 0 00 002200
	PUSH	SP,AC1				; SP,AC1				402247' 261 17 0 00 000001
	PUSH	SP,C.56				; SP,[4]				402250' 261 17 0 00 401635'
	PUSHJ	SP,GETFIL			; SP,GETFIL				402251' 260 17 0 00 000000*
	ADJSP	SP,-6				; SP,-6					402252' 105 17 0 00 777772		1070
L.80:	ADDI	AC16,1				; INDEX,1				402253' 271 16 0 00 000001		1069
	CAMGE	AC16,AC14			; INDEX,AC14				402254' 315 16 0 00 000014
	JRST	L.79				; L.79					402255' 254 00 0 00 402227'
	SETZM	EPT_CHANGED			; EPT_CHANGED				402256' 402 00 0 00 010000'		1075
	JRST	L.82				; L.82					402257' 254 00 0 00 402263'		1064
L.81:	PUSH	SP,C.6				; SP,[1]				402260' 261 17 0 00 400054'		1078
	PUSH	SP,C.78				; SP,[POINT 7,P.AAQ-1,34]  <1,7>	402261' 261 17 0 00 402373'
	JRST	L.86				; L.86					402262' 254 00 0 00 402331'
L.82:	MOVE	AC1,LIBHDR			; AC1,LIBHDR				402263' 200 01 0 00 000000*		1080
	LDB	AC2,C.50			; AC2,[POINT 16,7(AC1),35]  <0,16>	402264' 135 02 0 00 401627'
	CAILE	AC2,2000			; AC2,2000				402265' 303 02 0 00 002000
	JRST	L.85				; L.85					402266' 254 00 0 00 402327'
	MOVEI	AC3,MNTBUF			; AC3,MNTBUF				402267' 201 03 0 00 010023'		1083
	MOVEM	AC3,LIBMNT			; AC3,LIBMNT				402270' 202 03 0 00 000000*
	MOVE	AC14,AC2			; AC14,AC2				402271' 200 14 0 00 000002		1085
	LDB	AC3,C.51			; AC3,[POINT 16,10(AC1),17]  <18,16>	402272' 135 03 0 00 401630'
	SUB	AC14,AC3			; AC14,AC3				402273' 274 14 0 00 000003
	SETO	AC16,				; INDEX,				402274' 474 16 0 00 000000
	JRST	L.84				; L.84					402275' 254 00 0 00 402322'
L.83:	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402276' 261 17 0 00 010022'		1087
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				402277' 200 01 0 00 000000*
	LDB	AC2,C.52			; AC2,[POINT 16,7(AC1),17]  <18,16>	402300' 135 02 0 00 401631'
	PUSH	SP,AC2				; SP,AC2				402301' 261 17 0 00 000002
	MOVE	AC2,AC16			; AC2,INDEX				402302' 200 02 0 00 000016
	LDB	AC3,C.53			; AC3,[POINT 8,6(AC1),35]  <0,8>	402303' 135 03 0 00 401632'
	IMUL	AC2,AC3				; AC2,AC3				402304' 220 02 0 00 000003
	PUSH	SP,AC2				; SP,AC2				402305' 261 17 0 00 000002
	PUSHJ	SP,POSFIL			; SP,POSFIL				402306' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402307' 261 17 0 00 010022'		1088
	MOVE	AC1,LIBMNT			; AC1,LIBMNT				402310' 200 01 0 00 000000*
	MOVE	AC2,AC16			; AC2,INDEX				402311' 200 02 0 00 000016
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  53
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

	IMULI	AC2,2				; AC2,2					402312' 221 02 0 00 000002
	ADD	AC1,AC2				; AC1,AC2				402313' 270 01 0 00 000002
	MOVEI	AC1,-1(AC1)			; AC1,-1(AC1)				402314' 201 01 0 01 777777
	HRLI	AC1,2200			; AC1,2200				402315' 505 01 0 00 002200
	PUSH	SP,AC1				; SP,AC1				402316' 261 17 0 00 000001
	PUSH	SP,C.56				; SP,[4]				402317' 261 17 0 00 401635'
	PUSHJ	SP,GETFIL			; SP,GETFIL				402320' 260 17 0 00 000000*
	ADJSP	SP,-6				; SP,-6					402321' 105 17 0 00 777772		1086
L.84:	ADDI	AC16,1				; INDEX,1				402322' 271 16 0 00 000001		1085
	CAMGE	AC16,AC14			; INDEX,AC14				402323' 315 16 0 00 000014
	JRST	L.83				; L.83					402324' 254 00 0 00 402276'
	SETZM	MNT_CHANGED			; MNT_CHANGED				402325' 402 00 0 00 014023'		1091
	JRST	L.88				; L.88					402326' 254 00 0 00 402340'		1080
L.85:	PUSH	SP,C.6				; SP,[1]				402327' 261 17 0 00 400054'		1094
	PUSH	SP,C.79				; SP,[POINT 7,P.AAR-1,34]  <1,7>	402330' 261 17 0 00 402374'
L.86:	PUSH	SP,C.11				; SP,[0]				402331' 261 17 0 00 400232'
	PUSHJ	SP,TYPLIN			; SP,TYPLIN				402332' 260 17 0 00 000000*
	PUSH	SP,LIB_FILBLK			; SP,LIB_FILBLK				402333' 261 17 0 00 010022'
	PUSHJ	SP,CLOSE			; SP,CLOSE				402334' 260 17 0 00 000000*
	ADJSP	SP,-12				; SP,-12				402335' 105 17 0 00 777766
L.87:	SETZ	AC1,				; AC1,					402336' 400 01 0 00 000000
	JRST	L.90				; L.90					402337' 254 00 0 00 402343'
L.88:	ADJSP	SP,-5				; SP,-5					402340' 105 17 0 00 777773		1045
L.89:	ADJSP	SP,-1				; SP,-1					402341' 105 17 0 00 777777		0965
	MOVEI	AC1,1				; AC1,1					402342' 201 01 0 00 000001		0936
L.90:	ADJSP	SP,-10				; SP,-10				402343' 105 17 0 00 777770
	POP	SP,AC16				; SP,AC16				402344' 262 17 0 00 000016
	POP	SP,AC14				; SP,AC14				402345' 262 17 0 00 000014
	POPJ	SP,				; SP,					402346' 263 17 0 00 000000
C.58:	POINT	8,0(AC1),11			; 8,0(AC1),11				402347' 30 10 0 01 000000
C.59:	POINT	16,0(AC1),35			; 16,0(AC1),35				402350' 00 20 0 01 000000
C.60:	POINT	16,1(AC1),17			; 16,1(AC1),17				402351' 22 20 0 01 000001
C.61:	POINT	16,2(AC3),17			; 16,2(AC3),17				402352' 22 20 0 03 000002
C.62:	POINT	16,2(AC3),35			; 16,2(AC3),35				402353' 00 20 0 03 000002
C.63:	POINT	16,3(AC3),17			; 16,3(AC3),17				402354' 22 20 0 03 000003
C.64:	POINT	16,3(AC3),35			; 16,3(AC3),35				402355' 00 20 0 03 000003
C.65:	POINT	16,4(AC3),17			; 16,4(AC3),17				402356' 22 20 0 03 000004
C.66:	POINT	8,4(AC3),35			; 8,4(AC3),35				402357' 00 10 0 03 000004
C.67:	POINT	16,5(AC3),17			; 16,5(AC3),17				402360' 22 20 0 03 000005
C.68:	POINT	8,6(AC3),35			; 8,6(AC3),35				402361' 00 10 0 03 000006
C.69:	POINT	16,7(AC3),17			; 16,7(AC3),17				402362' 22 20 0 03 000007
C.70:	POINT	16,7(AC3),35			; 16,7(AC3),35				402363' 00 20 0 03 000007
C.71:	POINT	16,10(AC3),17			; 16,10(AC3),17				402364' 22 20 0 03 000010
C.72:	POINT	16,12(AC3),35			; 16,12(AC3),35				402365' 00 20 0 03 000012
C.73:	POINT	7,P.AAL-1,34			; 7,P.AAL-1,34				402366' 01 07 0 00 401636'
C.74:	POINT	7,P.AAM-1,34			; 7,P.AAM-1,34				402367' 01 07 0 00 401650'
C.75:	POINT	7,P.AAN-1,34			; 7,P.AAN-1,34				402370' 01 07 0 00 401662'
C.76:	POINT	7,P.AAO-1,34			; 7,P.AAO-1,34				402371' 01 07 0 00 401673'
C.77:	POINT	7,P.AAP-1,34			; 7,P.AAP-1,34				402372' 01 07 0 00 401706'
C.78:	POINT	7,P.AAQ-1,34			; 7,P.AAQ-1,34				402373' 01 07 0 00 401717'
C.79:	POINT	7,P.AAR-1,34			; 7,P.AAR-1,34				402374' 01 07 0 00 401731'
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  54
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (11)

; Routine Size:  281 words


;   1101  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  55
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (12)

;   1102  1	ROUTINE MNT_INDEX (NAME) =
;   1103  1	
;   1104  1	!++
;   1105  1	! FUNCTIONAL DESCRIPTION:
;   1106  1	!
;   1107  1	!
;   1108  1	!
;   1109  1	!
;   1110  1	! FORMAL PARAMETERS:
;   1111  1	!
;   1112  1	!
;   1113  1	! IMPLICIT INPUTS:
;   1114  1	!
;   1115  1	!	NONE
;   1116  1	!
;   1117  1	! IMPLICIT OUTPUTS:
;   1118  1	!
;   1119  1	!	NONE
;   1120  1	!
;   1121  1	! ROUTINE VALUE:
;   1122  1	!
;   1123  1	!	NONE
;   1124  1	!
;   1125  1	! SIDE EFFECTS
;   1126  1	!
;   1127  1	!	NONE
;   1128  1	!
;   1129  1	!--
;   1130  1	
;   1131  2	    BEGIN
;   1132  2	
;   1133  2	    MAP
;   1134  2		NAME : REF VECTOR [2];
;   1135  2	
;   1136  2	    INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
;   1137  2	
;   1138  2		IF .LIBMNT [.INDEX, MNT_NAME_1] EQL .NAME [0] AND .LIBMNT [.INDEX, MNT_NAME_2] EQL .NAME [1]
;   1139  2		THEN
;   1140  2		    RETURN .INDEX;
;   1141  2	
;   1142  2	    -1
;   1143  1	    END;					!OF MNT_INDEX


MNT_INDEX:
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				402375' 200 01 0 00 000000*		1136
	LDB	AC5,C.50			; AC5,[POINT 16,7(AC1),35]  <0,16>	402376' 135 05 0 00 401627'
	LDB	AC2,C.51			; AC2,[POINT 16,10(AC1),17]  <18,16>	402377' 135 02 0 00 401630'
	SUB	AC5,AC2				; AC5,AC2				402400' 274 05 0 00 000002
	MOVE	AC2,-1(SP)			; AC2,NAME				402401' 200 02 0 17 777777		1138
	SETO	AC1,				; INDEX,				402402' 474 01 0 00 000000		1136
	JRST	L.92				; L.92					402403' 254 00 0 00 402416'
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  56
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (12)

L.91:	MOVE	AC4,LIBMNT			; AC4,LIBMNT				402404' 200 04 0 00 000000*		1138
	MOVE	AC3,AC1				; AC3,INDEX				402405' 200 03 0 00 000001
	IMULI	AC3,2				; AC3,2					402406' 221 03 0 00 000002
	ADD	AC4,AC3				; AC4,AC3				402407' 270 04 0 00 000003
	LDB	AC3,C.9				; AC3,[POINT 16,0(AC4),17]  <18,16>	402410' 135 03 0 00 400230'
	CAME	AC3,0(AC2)			; AC3,0(AC2)				402411' 312 03 0 02 000000
	JRST	L.92				; L.92					402412' 254 00 0 00 402416'
	LDB	AC3,C.10			; AC3,[POINT 16,0(AC4),35]  <0,16>	402413' 135 03 0 00 400231'
	CAMN	AC3,1(AC2)			; AC3,1(AC2)				402414' 316 03 0 02 000001
	POPJ	SP,				; SP,					402415' 263 17 0 00 000000		1140
L.92:	ADDI	AC1,1				; INDEX,1				402416' 271 01 0 00 000001		1136
	CAMGE	AC1,AC5				; INDEX,AC5				402417' 315 01 0 00 000005
	JRST	L.91				; L.91					402420' 254 00 0 00 402404'
	SETO	AC1,				; AC1,					402421' 474 01 0 00 000000		1102
	POPJ	SP,				; SP,					402422' 263 17 0 00 000000

; Routine Size:  22 words
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  57
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (13)

;   1144  1	ROUTINE MNT_INSERT (NAME, BLOCK, OFFSET) =
;   1145  1	
;   1146  1	!++
;   1147  1	! FUNCTIONAL DESCRIPTION:
;   1148  1	!
;   1149  1	!
;   1150  1	!
;   1151  1	!
;   1152  1	! FORMAL PARAMETERS:
;   1153  1	!
;   1154  1	!
;   1155  1	! IMPLICIT INPUTS:
;   1156  1	!
;   1157  1	!	NONE
;   1158  1	!
;   1159  1	! IMPLICIT OUTPUTS:
;   1160  1	!
;   1161  1	!	NONE
;   1162  1	!
;   1163  1	! ROUTINE VALUE:
;   1164  1	!
;   1165  1	!	NONE
;   1166  1	!
;   1167  1	! SIDE EFFECTS
;   1168  1	!
;   1169  1	!	NONE
;   1170  1	!
;   1171  1	!--
;   1172  1	
;   1173  2	    BEGIN
;   1174  2	
;   1175  2	    MAP
;   1176  2		NAME : REF VECTOR [2];
;   1177  2	
;   1178  2	    IF .LIBHDR [LIB_MNT_AVAILABLE] LEQ 0 THEN RETURN FALSE;
;   1179  2	
;   1180  2	    DECR INDEX FROM .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] TO 0 DO
;   1181  3		BEGIN
;   1182  3	
;   1183  3		IF .INDEX GTR 0
;   1184  3		THEN
;   1185  3	
;   1186  3		    INCR SUB_INDEX FROM 0 TO MNT_LENGTH - 1 DO
;   1187  3			LIBMNT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0] = .LIBMNT [.INDEX - 1, .SUB_INDEX, 0, %BPVAL, 0];
;   1188  3	
;   1189  4		IF (.INDEX EQL 0) OR (.LIBMNT [.INDEX, MNT_NAME_1] LSS .NAME [0]) OR (.LIBMNT [.INDEX, MNT_NAME_1] EQL
;   1190  4		    .NAME [0] AND .LIBMNT [.INDEX, MNT_NAME_2] LSS .NAME [1])
;   1191  3		THEN
;   1192  3		    EXITLOOP
;   1193  4			BEGIN
;   1194  4			LIBMNT [.INDEX, MNT_NAME_1] = .NAME [0];
;   1195  4			LIBMNT [.INDEX, MNT_NAME_2] = .NAME [1];
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  58
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (13)

;   1196  4			LIBMNT [.INDEX, MNT_BLOCK] = .BLOCK;
;   1197  4			LIBMNT [.INDEX, MNT_OFFSET] = .OFFSET;
;   1198  3			END;
;   1199  3	
;   1200  2		END;
;   1201  2	
;   1202  2	    LIBHDR [LIB_MNT_AVAILABLE] = .LIBHDR [LIB_MNT_AVAILABLE] - 1;
;   1203  2	    HDR_CHANGED = MNT_CHANGED = TRUE
;   1204  1	    END;					!OF MNT_INSERT


MNT_INSERT:
	PUSH	SP,AC13				; SP,AC13				402423' 261 17 0 00 000013		1144
	PUSH	SP,AC14				; SP,AC14				402424' 261 17 0 00 000014
	PUSH	SP,AC16				; SP,AC16				402425' 261 17 0 00 000016
	MOVE	AC3,LIBHDR			; AC3,LIBHDR				402426' 200 03 0 00 000000*		1178
	LDB	AC2,C.71			; AC2,[POINT 16,10(AC3),17]  <18,16>	402427' 135 02 0 00 402364'
	JUMPG	AC2,L.93			; AC2,L.93				402430' 327 02 0 00 402433'
	SETZ	AC1,				; AC1,					402431' 400 01 0 00 000000
	JRST	L.100				; L.100					402432' 254 00 0 00 402530'
L.93:	LDB	AC1,C.70			; AC1,[POINT 16,7(AC3),35]  <0,16>	402433' 135 01 0 00 402363'		1180
	SUB	AC1,AC2				; AC1,AC2				402434' 274 01 0 00 000002
	AOJA	AC1,L.98			; AC1,L.98				402435' 344 01 0 00 402521'
L.94:	JUMPLE	AC1,L.96			; INDEX,L.96				402436' 323 01 0 00 402457'		1183
	MOVE	AC14,AC1			; AC14,INDEX				402437' 200 14 0 00 000001		1187
	IMULI	AC14,2				; AC14,2				402440' 221 14 0 00 000002
	MOVE	AC2,AC1				; AC2,INDEX				402441' 200 02 0 00 000001
	SUBI	AC2,1				; AC2,1					402442' 275 02 0 00 000001
	IMULI	AC2,2				; AC2,2					402443' 221 02 0 00 000002
	SETZ	AC5,				; SUB_INDEX,				402444' 400 05 0 00 000000		1186
L.95:	MOVE	AC4,LIBMNT			; AC4,LIBMNT				402445' 200 04 0 00 000000*		1187
	ADD	AC4,AC5				; AC4,SUB_INDEX				402446' 270 04 0 00 000005
	MOVE	AC16,AC4			; AC16,AC4				402447' 200 16 0 00 000004
	ADD	AC16,AC14			; AC16,AC14				402450' 270 16 0 00 000014
	ADD	AC4,AC2				; AC4,AC2				402451' 270 04 0 00 000002
	MOVE	AC13,0(AC4)			; AC13,0(AC4)				402452' 200 13 0 04 000000
	MOVEM	AC13,0(AC16)			; AC13,0(AC16)				402453' 202 13 0 16 000000
	ADDI	AC5,1				; SUB_INDEX,1				402454' 271 05 0 00 000001		1186
	CAIG	AC5,1				; SUB_INDEX,1				402455' 307 05 0 00 000001
	JRST	L.95				; L.95					402456' 254 00 0 00 402445'
L.96:	JUMPE	AC1,L.97			; INDEX,L.97				402457' 322 01 0 00 402503'		1189
	MOVE	AC4,LIBMNT			; AC4,LIBMNT				402460' 200 04 0 00 000000*
	MOVE	AC2,AC1				; AC2,INDEX				402461' 200 02 0 00 000001
	IMULI	AC2,2				; AC2,2					402462' 221 02 0 00 000002
	ADD	AC4,AC2				; AC4,AC2				402463' 270 04 0 00 000002
	MOVE	AC2,-6(SP)			; AC2,NAME				402464' 200 02 0 17 777772
	LDB	AC5,C.9				; AC5,[POINT 16,0(AC4),17]  <18,16>	402465' 135 05 0 00 400230'
	CAMGE	AC5,0(AC2)			; AC5,0(AC2)				402466' 315 05 0 02 000000
	JRST	L.97				; L.97					402467' 254 00 0 00 402503'
	MOVE	AC4,LIBMNT			; AC4,LIBMNT				402470' 200 04 0 00 000000*
	MOVE	AC2,AC1				; AC2,INDEX				402471' 200 02 0 00 000001
	IMULI	AC2,2				; AC2,2					402472' 221 02 0 00 000002
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  59
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (13)

	ADD	AC4,AC2				; AC4,AC2				402473' 270 04 0 00 000002
	MOVE	AC2,-6(SP)			; AC2,NAME				402474' 200 02 0 17 777772		1190
	LDB	AC5,C.9				; AC5,[POINT 16,0(AC4),17]  <18,16>	402475' 135 05 0 00 400230'		1189
	CAME	AC5,0(AC2)			; AC5,0(AC2)				402476' 312 05 0 02 000000
	JRST	L.98				; L.98					402477' 254 00 0 00 402521'
	LDB	AC5,C.10			; AC5,[POINT 16,0(AC4),35]  <0,16>	402500' 135 05 0 00 400231'		1190
	CAML	AC5,1(AC2)			; AC5,1(AC2)				402501' 311 05 0 02 000001
	JRST	L.98				; L.98					402502' 254 00 0 00 402521'
L.97:	MOVE	AC5,LIBMNT			; AC5,LIBMNT				402503' 200 05 0 00 000000*		1194
	MOVE	AC2,AC1				; AC2,INDEX				402504' 200 02 0 00 000001
	IMULI	AC2,2				; AC2,2					402505' 221 02 0 00 000002
	ADD	AC5,AC2				; AC5,AC2				402506' 270 05 0 00 000002
	MOVE	AC4,-6(SP)			; AC4,NAME				402507' 200 04 0 17 777772
	MOVE	AC2,0(AC4)			; AC2,0(AC4)				402510' 200 02 0 04 000000
	DPB	AC2,C.18			; AC2,[POINT 16,0(AC5),17]  <18,16>	402511' 137 02 0 00 400400'
	MOVE	AC2,1(AC4)			; AC2,1(AC4)				402512' 200 02 0 04 000001		1195
	DPB	AC2,C.19			; AC2,[POINT 16,0(AC5),35]  <0,16>	402513' 137 02 0 00 400401'
	MOVE	AC2,-5(SP)			; AC2,BLOCK				402514' 200 02 0 17 777773		1196
	DPB	AC2,C.20			; AC2,[POINT 16,1(AC5),17]  <18,16>	402515' 137 02 0 00 400402'
	MOVE	AC2,-4(SP)			; AC2,OFFSET				402516' 200 02 0 17 777774		1197
	DPB	AC2,C.21			; AC2,[POINT 16,1(AC5),35]  <0,16>	402517' 137 02 0 00 400403'
	JRST	L.99				; L.99					402520' 254 00 0 00 402522'		1192
L.98:	SOJGE	AC1,L.94			; INDEX,L.94				402521' 365 01 0 00 402436'		1180
L.99:	LDB	AC1,C.71			; AC1,[POINT 16,10(AC3),17]  <18,16>	402522' 135 01 0 00 402364'		1202
	SUBI	AC1,1				; AC1,1					402523' 275 01 0 00 000001
	DPB	AC1,C.71			; AC1,[POINT 16,10(AC3),17]  <18,16>	402524' 137 01 0 00 402364'
	MOVEI	AC1,1				; AC1,1					402525' 201 01 0 00 000001		1203
	MOVEM	AC1,MNT_CHANGED			; AC1,MNT_CHANGED			402526' 202 01 0 00 014023'
	MOVEM	AC1,HDR_CHANGED			; AC1,HDR_CHANGED			402527' 202 01 0 00 010021'
L.100:	POP	SP,AC16				; SP,AC16				402530' 262 17 0 00 000016		1144
	POP	SP,AC14				; SP,AC14				402531' 262 17 0 00 000014
	POP	SP,AC13				; SP,AC13				402532' 262 17 0 00 000013
	POPJ	SP,				; SP,					402533' 263 17 0 00 000000

; Routine Size:  73 words
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  60
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (14)

;   1205  1	ROUTINE MNT_PURGE (BLOCK, OFFSET) : NOVALUE =
;   1206  1	
;   1207  1	!++
;   1208  1	! FUNCTIONAL DESCRIPTION:
;   1209  1	!
;   1210  1	!
;   1211  1	!
;   1212  1	!
;   1213  1	! FORMAL PARAMETERS:
;   1214  1	!
;   1215  1	!
;   1216  1	! IMPLICIT INPUTS:
;   1217  1	!
;   1218  1	!	NONE
;   1219  1	!
;   1220  1	! IMPLICIT OUTPUTS:
;   1221  1	!
;   1222  1	!	NONE
;   1223  1	!
;   1224  1	! ROUTINE VALUE:
;   1225  1	!
;   1226  1	!	NONE
;   1227  1	!
;   1228  1	! SIDE EFFECTS
;   1229  1	!
;   1230  1	!	NONE
;   1231  1	!
;   1232  1	!--
;   1233  1	
;   1234  2	    BEGIN
;   1235  2	
;   1236  2	    LOCAL
;   1237  2		NEW_COUNT;
;   1238  2	
;   1239  2	    NEW_COUNT = 0;
;   1240  2	
;   1241  2	    INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
;   1242  3		BEGIN
;   1243  3	
;   1244  3		IF .LIBMNT [.INDEX, MNT_BLOCK] NEQ .BLOCK OR .LIBMNT [.INDEX, MNT_OFFSET] NEQ .OFFSET
;   1245  3		THEN
;   1246  4		    BEGIN
;   1247  4	
;   1248  4		    IF .INDEX NEQ .NEW_COUNT
;   1249  4		    THEN
;   1250  4	
;   1251  4			INCR SUB_INDEX FROM 0 TO MNT_LENGTH - 1 DO
;   1252  4			    LIBMNT [.NEW_COUNT, .SUB_INDEX, 0, %BPVAL, 0] = .LIBMNT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0]
;   1253  4	
;   1254  4		    ;
;   1255  4		    NEW_COUNT = .NEW_COUNT + 1;
;   1256  3		    END;
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  61
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (14)

;   1257  3	
;   1258  2		END;
;   1259  2	
;   1260  3	    IF .LIBHDR [LIB_MNT_AVAILABLE] NEQ (.LIBHDR [LIB_MNT_ALLOCATED] - .NEW_COUNT)
;   1261  2	    THEN
;   1262  3		BEGIN
;   1263  3		LIBHDR [LIB_MNT_AVAILABLE] = .LIBHDR [LIB_MNT_ALLOCATED] - .NEW_COUNT;
;   1264  3		HDR_CHANGED = MNT_CHANGED = TRUE;
;   1265  2		END;
;   1266  2	
;   1267  1	    END;					!OF MNT_PURGE


MNT_PURGE:
	PUSH	SP,AC10				; SP,AC10				402534' 261 17 0 00 000010		1205
	PUSH	SP,AC11				; SP,AC11				402535' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				402536' 261 17 0 00 000012
	PUSH	SP,AC13				; SP,AC13				402537' 261 17 0 00 000013
	PUSH	SP,AC14				; SP,AC14				402540' 261 17 0 00 000014
	PUSH	SP,AC16				; SP,AC16				402541' 261 17 0 00 000016
	SETZ	AC1,				; NEW_COUNT,				402542' 400 01 0 00 000000		1239
	MOVE	AC4,LIBHDR			; AC4,LIBHDR				402543' 200 04 0 00 000000*		1241
	LDB	AC2,C.80			; AC2,[POINT 16,7(AC4),35]  <0,16>	402544' 135 02 0 00 402627'
	LDB	AC3,C.81			; AC3,[POINT 16,10(AC4),17]  <18,16>	402545' 135 03 0 00 402630'
	SUB	AC2,AC3				; AC2,AC3				402546' 274 02 0 00 000003
	MOVE	AC12,LIBMNT			; AC12,LIBMNT				402547' 200 12 0 00 000000*		1244
	SETO	AC11,				; INDEX,				402550' 474 11 0 00 000000		1241
	JRST	L.105				; L.105					402551' 254 00 0 00 402604'
L.101:	MOVE	AC14,AC11			; AC14,INDEX				402552' 200 14 0 00 000011		1244
	IMULI	AC14,2				; AC14,2				402553' 221 14 0 00 000002
	MOVE	AC3,AC12			; AC3,AC12				402554' 200 03 0 00 000012
	ADD	AC3,AC14			; AC3,AC14				402555' 270 03 0 00 000014
	LDB	AC5,C.24			; AC5,[POINT 16,1(AC3),17]  <18,16>	402556' 135 05 0 00 400501'
	CAME	AC5,-10(SP)			; AC5,BLOCK				402557' 312 05 0 17 777770
	JRST	L.102				; L.102					402560' 254 00 0 00 402564'
	LDB	AC5,C.25			; AC5,[POINT 16,1(AC3),35]  <0,16>	402561' 135 05 0 00 400502'
	CAMN	AC5,-7(SP)			; AC5,OFFSET				402562' 316 05 0 17 777771
	JRST	L.105				; L.105					402563' 254 00 0 00 402604'
L.102:	CAMN	AC11,AC1			; INDEX,NEW_COUNT			402564' 316 11 0 00 000001		1248
	JRST	L.104				; L.104					402565' 254 00 0 00 402603'
	MOVE	AC13,AC1			; AC13,NEW_COUNT			402566' 200 13 0 00 000001		1252
	IMULI	AC13,2				; AC13,2				402567' 221 13 0 00 000002
	SETZ	AC3,				; SUB_INDEX,				402570' 400 03 0 00 000000		1251
L.103:	MOVE	AC5,AC12			; AC5,AC12				402571' 200 05 0 00 000012		1252
	ADD	AC5,AC3				; AC5,SUB_INDEX				402572' 270 05 0 00 000003
	MOVE	AC16,AC5			; AC16,AC5				402573' 200 16 0 00 000005
	ADD	AC16,AC13			; AC16,AC13				402574' 270 16 0 00 000013
	ADD	AC5,AC14			; AC5,AC14				402575' 270 05 0 00 000014
	MOVE	AC10,0(AC5)			; AC10,0(AC5)				402576' 200 10 0 05 000000
	MOVEM	AC10,0(AC16)			; AC10,0(AC16)				402577' 202 10 0 16 000000
	ADDI	AC3,1				; SUB_INDEX,1				402600' 271 03 0 00 000001		1251
	CAIG	AC3,1				; SUB_INDEX,1				402601' 307 03 0 00 000001
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  62
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (14)

	JRST	L.103				; L.103					402602' 254 00 0 00 402571'
L.104:	ADDI	AC1,1				; NEW_COUNT,1				402603' 271 01 0 00 000001		1255
L.105:	ADDI	AC11,1				; INDEX,1				402604' 271 11 0 00 000001		1241
	CAMGE	AC11,AC2			; INDEX,AC2				402605' 315 11 0 00 000002
	JRST	L.101				; L.101					402606' 254 00 0 00 402552'
	LDB	AC2,C.80			; AC2,[POINT 16,7(AC4),35]  <0,16>	402607' 135 02 0 00 402627'		1260
	SUB	AC2,AC1				; AC2,NEW_COUNT				402610' 274 02 0 00 000001
	LDB	AC3,C.81			; AC3,[POINT 16,10(AC4),17]  <18,16>	402611' 135 03 0 00 402630'
	CAMN	AC3,AC2				; AC3,AC2				402612' 316 03 0 00 000002
	JRST	L.106				; L.106					402613' 254 00 0 00 402620'
	DPB	AC2,C.81			; AC2,[POINT 16,10(AC4),17]  <18,16>	402614' 137 02 0 00 402630'		1263
	MOVEI	AC1,1				; AC1,1					402615' 201 01 0 00 000001		1264
	MOVEM	AC1,MNT_CHANGED			; AC1,MNT_CHANGED			402616' 202 01 0 00 014023'
	MOVEM	AC1,HDR_CHANGED			; AC1,HDR_CHANGED			402617' 202 01 0 00 010021'
L.106:	POP	SP,AC16				; SP,AC16				402620' 262 17 0 00 000016		1205
	POP	SP,AC14				; SP,AC14				402621' 262 17 0 00 000014
	POP	SP,AC13				; SP,AC13				402622' 262 17 0 00 000013
	POP	SP,AC12				; SP,AC12				402623' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				402624' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				402625' 262 17 0 00 000010
	POPJ	SP,				; SP,					402626' 263 17 0 00 000000
C.80:	POINT	16,7(AC4),35			; 16,7(AC4),35				402627' 00 20 0 04 000007
C.81:	POINT	16,10(AC4),17			; 16,10(AC4),17				402630' 22 20 0 04 000010

; Routine Size:  61 words


;   1268  1	
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  63
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)

;   1269  1	GLOBAL ROUTINE MODULE_DELETE (NAME) =
;   1270  1	
;   1271  1	!++
;   1272  1	! FUNCTIONAL DESCRIPTION:
;   1273  1	!
;   1274  1	!
;   1275  1	!
;   1276  1	!
;   1277  1	! FORMAL PARAMETERS:
;   1278  1	!
;   1279  1	!
;   1280  1	! IMPLICIT INPUTS:
;   1281  1	!
;   1282  1	!	NONE
;   1283  1	!
;   1284  1	! IMPLICIT OUTPUTS:
;   1285  1	!
;   1286  1	!	NONE
;   1287  1	!
;   1288  1	! ROUTINE VALUE:
;   1289  1	!
;   1290  1	!	NONE
;   1291  1	!
;   1292  1	! SIDE EFFECTS
;   1293  1	!
;   1294  1	!	NONE
;   1295  1	!
;   1296  1	!--
;   1297  1	
;   1298  2	    BEGIN
;   1299  2	
;   1300  2	    MAP
;   1301  2		NAME : REF VECTOR [2];
;   1302  2	
;   1303  2	    LOCAL
;   1304  2		ENTRY_FOUND;
;   1305  2	
;   1306  2	    ENTRY_FOUND = FALSE;
;   1307  2	
;   1308  2	    INCR INDEX FROM 0 TO .LIBHDR [LIB_MNT_ALLOCATED] - .LIBHDR [LIB_MNT_AVAILABLE] - 1 DO
;   1309  2	
;   1310  2		IF .ENTRY_FOUND
;   1311  2		THEN
;   1312  2	
;   1313  2		    INCR SUB_INDEX FROM 0 TO MNT_LENGTH - 1 DO
;   1314  2			LIBMNT [.INDEX - 1, .SUB_INDEX, 0, %BPVAL, 0] = .LIBMNT [.INDEX, .SUB_INDEX, 0, %BPVAL, 0]
;   1315  2	
;   1316  2		ELSE
;   1317  2	
;   1318  2		    IF .LIBMNT [.INDEX, MNT_NAME_1] EQL .NAME [0] AND .LIBMNT [.INDEX, MNT_NAME_2] EQL .NAME [1]
;   1319  2		    THEN
;   1320  3			BEGIN
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  64
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)

;   1321  3			ENTRY_FOUND = TRUE;
;   1322  3			LIBHDR [LIB_MNT_AVAILABLE] = .LIBHDR [LIB_MNT_AVAILABLE] + 1;
;   1323  3			MNT_CHANGED = TRUE;
;   1324  3			EPT_PURGE (.LIBMNT [.INDEX, MNT_BLOCK], .LIBMNT [.INDEX, MNT_OFFSET]);
;   1325  3			HDR_DELETE (.LIBMNT [.INDEX, MNT_BLOCK], .LIBMNT [.INDEX, MNT_OFFSET]);
;   1326  2			END;
;   1327  2	
;   1328  2	    IF .ENTRY_FOUND
;   1329  2	    THEN
;   1330  3		BEGIN
;   1331  3	
;   1332  3		IF NOT .FLAGS [M_FAST] THEN LIBUPD ();
;   1333  3	
;   1334  3		TYPLN (0, CH$ASCIZ ('[Module "%2R" deleted]'), .NAME [0], .NAME [1]);
;   1335  3		TRUE
;   1336  3		END
;   1337  2	    ELSE
;   1338  3		BEGIN
;   1339  3		PUTLN (1, CH$ASCIZ (FATAL, 'No module named "%2R"'), .NAME [0], .NAME [1]);
;   1340  3		FALSE
;   1341  3		END
;   1342  3	
;   1343  1	    END;					!OF MODULE_DELETE


P.AAS:	BYTE	(7)"[","M","o","d","u"		; [Modu					402631' 133 115 157 144 165
	BYTE	(7)"l","e"," ",042,"%"		; le "%					402632' 154 145 040 042 045
	BYTE	(7)"2","R",042," ","d"		; 2R" d					402633' 062 122 042 040 144
	BYTE	(7)"e","l","e","t","e"		; elete					402634' 145 154 145 164 145
	BYTE	(7)"d","]",000,000,000		; d]					402635' 144 135 000 000 000
P.AAT:	BYTE	(7)"*","F","A","T","A"		; *FATA					402636' 052 106 101 124 101
	BYTE	(7)"L","*"," "," ","N"		; L*  N					402637' 114 052 040 040 116
	BYTE	(7)"o"," ","m","o","d"		; o mod					402640' 157 040 155 157 144
	BYTE	(7)"u","l","e"," ","n"		; ule n					402641' 165 154 145 040 156
	BYTE	(7)"a","m","e","d"," "		; amed					402642' 141 155 145 144 040
	BYTE	(7)042,"%","2","R",042		; "%2R"					402643' 042 045 062 122 042
	BYTE	(7)000,000,000,000,000		;					402644' 000 000 000 000 000


MODULE_DELETE::
	PUSH	SP,AC11				; SP,AC11				402645' 261 17 0 00 000011		1269
	PUSH	SP,AC12				; SP,AC12				402646' 261 17 0 00 000012
	PUSH	SP,AC13				; SP,AC13				402647' 261 17 0 00 000013
	PUSH	SP,AC14				; SP,AC14				402650' 261 17 0 00 000014
	PUSH	SP,AC16				; SP,AC16				402651' 261 17 0 00 000016
	ADJSP	SP,2				; SP,2					402652' 105 17 0 00 000002
	SETZ	AC12,				; ENTRY_FOUND,				402653' 400 12 0 00 000000		1306
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				402654' 200 01 0 00 000000*		1308
	LDB	AC14,C.50			; AC14,[POINT 16,7(AC1),35]  <0,16>	402655' 135 14 0 00 401627'
	LDB	AC2,C.51			; AC2,[POINT 16,10(AC1),17]  <18,16>	402656' 135 02 0 00 401630'
	SUB	AC14,AC2			; AC14,AC2				402657' 274 14 0 00 000002
	SETO	AC16,				; INDEX,				402660' 474 16 0 00 000000
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  65
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)

	JRST	L.110				; L.110					402661' 254 00 0 00 402743'
L.107:	MOVE	AC5,LIBMNT			; AC5,LIBMNT				402662' 200 05 0 00 000000*		1314
	MOVE	AC13,AC16			; AC13,INDEX				402663' 200 13 0 00 000016
	IMULI	AC13,2				; AC13,2				402664' 221 13 0 00 000002
	TRNN	AC12,1				; ENTRY_FOUND,1				402665' 606 12 0 00 000001		1310
	JRST	L.109				; L.109					402666' 254 00 0 00 402706'
	MOVE	AC3,AC16			; AC3,INDEX				402667' 200 03 0 00 000016		1314
	SUBI	AC3,1				; AC3,1					402670' 275 03 0 00 000001
	IMULI	AC3,2				; AC3,2					402671' 221 03 0 00 000002
	SETZ	AC1,				; SUB_INDEX,				402672' 400 01 0 00 000000		1313
L.108:	MOVE	AC2,AC5				; AC2,AC5				402673' 200 02 0 00 000005		1314
	ADD	AC2,AC1				; AC2,SUB_INDEX				402674' 270 02 0 00 000001
	MOVE	AC4,AC2				; AC4,AC2				402675' 200 04 0 00 000002
	ADD	AC4,AC3				; AC4,AC3				402676' 270 04 0 00 000003
	ADD	AC2,AC13			; AC2,AC13				402677' 270 02 0 00 000013
	MOVE	AC11,0(AC2)			; AC11,0(AC2)				402700' 200 11 0 02 000000
	MOVEM	AC11,0(AC4)			; AC11,0(AC4)				402701' 202 11 0 04 000000
	ADDI	AC1,1				; SUB_INDEX,1				402702' 271 01 0 00 000001		1313
	CAIG	AC1,1				; SUB_INDEX,1				402703' 307 01 0 00 000001
	JRST	L.108				; L.108					402704' 254 00 0 00 402673'
	JRST	L.110				; L.110					402705' 254 00 0 00 402743'		1310
L.109:	MOVE	AC2,AC5				; AC2,AC5				402706' 200 02 0 00 000005		1318
	ADD	AC2,AC13			; AC2,AC13				402707' 270 02 0 00 000013
	MOVE	AC1,-10(SP)			; AC1,NAME				402710' 200 01 0 17 777770
	LDB	AC3,C.4				; AC3,[POINT 16,0(AC2),17]  <18,16>	402711' 135 03 0 00 400052'
	CAME	AC3,0(AC1)			; AC3,0(AC1)				402712' 312 03 0 01 000000
	JRST	L.110				; L.110					402713' 254 00 0 00 402743'
	LDB	AC3,C.82			; AC3,[POINT 16,0(AC2),35]  <0,16>	402714' 135 03 0 00 403015'
	CAME	AC3,1(AC1)			; AC3,1(AC1)				402715' 312 03 0 01 000001
	JRST	L.110				; L.110					402716' 254 00 0 00 402743'
	MOVEI	AC12,1				; ENTRY_FOUND,1				402717' 201 12 0 00 000001		1321
	MOVE	AC1,LIBHDR			; AC1,LIBHDR				402720' 200 01 0 00 000000*		1322
	LDB	AC3,C.51			; AC3,[POINT 16,10(AC1),17]  <18,16>	402721' 135 03 0 00 401630'
	ADDI	AC3,1				; AC3,1					402722' 271 03 0 00 000001
	DPB	AC3,C.51			; AC3,[POINT 16,10(AC1),17]  <18,16>	402723' 137 03 0 00 401630'
	MOVEI	AC1,1				; AC1,1					402724' 201 01 0 00 000001		1323
	MOVEM	AC1,MNT_CHANGED			; AC1,MNT_CHANGED			402725' 202 01 0 00 014023'
	LDB	AC1,C.33			; AC1,[POINT 16,1(AC2),17]  <18,16>	402726' 135 01 0 00 401373'		1324
	PUSH	SP,AC1				; SP,AC1				402727' 261 17 0 00 000001
	LDB	AC1,C.34			; AC1,[POINT 16,1(AC2),35]  <0,16>	402730' 135 01 0 00 401374'
	PUSH	SP,AC1				; SP,AC1				402731' 261 17 0 00 000001
	PUSHJ	SP,EPT_PURGE			; SP,EPT_PURGE				402732' 260 17 0 00 400404'
	MOVE	AC1,LIBMNT			; AC1,LIBMNT				402733' 200 01 0 00 000000*		1325
	ADD	AC1,AC13			; AC1,AC13				402734' 270 01 0 00 000013
	LDB	AC2,C.60			; AC2,[POINT 16,1(AC1),17]  <18,16>	402735' 135 02 0 00 402351'
	PUSH	SP,AC2				; SP,AC2				402736' 261 17 0 00 000002
	LDB	AC2,C.83			; AC2,[POINT 16,1(AC1),35]  <0,16>	402737' 135 02 0 00 403016'
	PUSH	SP,AC2				; SP,AC2				402740' 261 17 0 00 000002
	PUSHJ	SP,HDR_DELETE			; SP,HDR_DELETE				402741' 260 17 0 00 401412'
	ADJSP	SP,-4				; SP,-4					402742' 105 17 0 00 777774		1320
L.110:	ADDI	AC16,1				; INDEX,1				402743' 271 16 0 00 000001		1308
	CAMGE	AC16,AC14			; INDEX,AC14				402744' 315 16 0 00 000014
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  66
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)

	JRST	L.107				; L.107					402745' 254 00 0 00 402662'
	MOVE	AC16,-10(SP)			; AC16,NAME				402746' 200 16 0 17 777770		1334
	MOVEI	AC1,-1(SP)			; AC1,PRM_LIST				402747' 201 01 0 17 777777
	MOVE	AC14,AC1			; AC14,AC1				402750' 200 14 0 00 000001
	ADDI	AC14,1				; AC14,1				402751' 271 14 0 00 000001
	MOVE	AC13,AC16			; AC13,AC16				402752' 200 13 0 00 000016
	ADDI	AC13,1				; AC13,1				402753' 271 13 0 00 000001
	TRNN	AC12,1				; ENTRY_FOUND,1				402754' 606 12 0 00 000001		1328
	JRST	L.111				; L.111					402755' 254 00 0 00 402774'
	MOVEI	AC1,40				; AC1,40				402756' 201 01 0 00 000040		1332
	TDNN	AC1,FLAGS			; AC1,FLAGS				402757' 616 01 0 00 000000*
	PUSHJ	SP,LIBUPD			; SP,LIBUPD				402760' 260 17 0 00 401500'
	MOVE	AC1,0(AC16)			; AC1,0(AC16)				402761' 200 01 0 16 000000		1334
	MOVEM	AC1,-1(SP)			; AC1,PRM_LIST				402762' 202 01 0 17 777777
	MOVE	AC1,0(AC13)			; AC1,0(AC13)				402763' 200 01 0 13 000000
	MOVEM	AC1,0(AC14)			; AC1,0(AC14)				402764' 202 01 0 14 000000
	PUSH	SP,C.11				; SP,[0]				402765' 261 17 0 00 400232'
	PUSH	SP,C.84				; SP,[POINT 7,P.AAS-1,34]  <1,7>	402766' 261 17 0 00 403017'
	MOVEI	AC1,-3(SP)			; AC1,PRM_LIST				402767' 201 01 0 17 777775
	PUSH	SP,AC1				; SP,AC1				402770' 261 17 0 00 000001
	PUSHJ	SP,TYPLIN			; SP,TYPLIN				402771' 260 17 0 00 000000*
	MOVEI	AC1,1				; AC1,1					402772' 201 01 0 00 000001		1328
	JRST	L.112				; L.112					402773' 254 00 0 00 403006'
L.111:	MOVE	AC1,0(AC16)			; AC1,0(AC16)				402774' 200 01 0 16 000000		1339
	MOVEM	AC1,-1(SP)			; AC1,PRM_LIST				402775' 202 01 0 17 777777
	MOVE	AC1,0(AC13)			; AC1,0(AC13)				402776' 200 01 0 13 000000
	MOVEM	AC1,0(AC14)			; AC1,0(AC14)				402777' 202 01 0 14 000000
	PUSH	SP,C.6				; SP,[1]				403000' 261 17 0 00 400054'
	PUSH	SP,C.85				; SP,[POINT 7,P.AAT-1,34]  <1,7>	403001' 261 17 0 00 403020'
	MOVEI	AC1,-3(SP)			; AC1,PRM_LIST				403002' 201 01 0 17 777775
	PUSH	SP,AC1				; SP,AC1				403003' 261 17 0 00 000001
	PUSHJ	SP,PUTLIN			; SP,PUTLIN				403004' 260 17 0 00 000000*
	SETZ	AC1,				; AC1,					403005' 400 01 0 00 000000		1328
L.112:	ADJSP	SP,-5				; SP,-5					403006' 105 17 0 00 777773		1298
	POP	SP,AC16				; SP,AC16				403007' 262 17 0 00 000016		1269
	POP	SP,AC14				; SP,AC14				403010' 262 17 0 00 000014
	POP	SP,AC13				; SP,AC13				403011' 262 17 0 00 000013
	POP	SP,AC12				; SP,AC12				403012' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				403013' 262 17 0 00 000011
	POPJ	SP,				; SP,					403014' 263 17 0 00 000000
C.82:	POINT	16,0(AC2),35			; 16,0(AC2),35				403015' 00 20 0 02 000000
C.83:	POINT	16,1(AC1),35			; 16,1(AC1),35				403016' 00 20 0 01 000001
C.84:	POINT	7,P.AAS-1,34			; 7,P.AAS-1,34				403017' 01 07 0 00 402630'
C.85:	POINT	7,P.AAT-1,34			; 7,P.AAT-1,34				403020' 01 07 0 00 402635'

; Routine Size:  108 words


;   1344  1	
;   1345  1	END
;   1346  1	
;   1347  0	ELUDOM
LBRLIB								12-Apr-1985 07:12:00	TOPS-20 Bliss-36 4A(225)	    Page  67
001030								30-Dec-1982 17:40:05	DNET61:<DECNET.UTILITIES>LBRLIB.BLI.1 (15)





; Low  segment length:    6165 words
; High segment length:    1553 words




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks          Processing
;	File				     Total    Loaded   Percent      Read           Time
;
;  DNET61:<DECNET.UTILITIES>LBRCOM.L36.2       705        77        10        33	     00:00.1





; Size:		1378 code + 6340 data words
; Run Time:	   00:23.6
; Elapsed Time:	   00:26.8
; Lines/CPU Min:    3420
; Lexemes/CPU-Min: 43545
; Memory Used:	66 pages
; Compilation Complete