

; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 1

; Digital Equipment Corporation

;

;	0001	MODULE NCP_EXECUTE (	

;	0002			IDENT = '01 '

;	0003			) =

;	0004	BEGIN

;	0005	

;	0006	!

;	0007	! COPYRIGHT (C) 1977

;	0008	! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

;	0009	!

;	0010	! THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

;	0011	! COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

;	0012	! ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

;	0013	! MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

;	0014	! EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

;	0015	! TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

;	0016	! REMAIN IN DEC.

;	0017	!

;	0018	! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

;	0019	! AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

;	0020	! CORPORATION.

;	0021	!

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

;	0023	! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

;	0024	

;	0025	!++

;	0026	! FACILITY:NETWORK CONTROL PROGRAM

;	0027	!

;	0028	! ABSTRACT:NCP PROVIDE TOOLS FOR LOCAL NETWORK MANAGEMENT.

;	0029	!	AN OPERATOR ENTERS DCLS LIKE COMMANDS

;	0030	!	AND NCP INTERACTS WITH NETACP,NICE, AND CONFIGURATION 

;	0031	!	DATABASE FOR HIM.

;	0032	!

;	0033	! ENVIRONMENT:VAX-11/780

;	0034	!

;	0035	! AUTHOR:TOM DOPIRAK	, CREATION DATE:9/22/77

;	0036	!

;	0037	! MODIFIED BY:

;	0038	!

;	0039	! 	, : VERSION

;	0040	! 01	- 

;	0041	!--



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 2

; Digital Equipment Corporation

;

;	0042	!

;	0043	! TABLE OF CONTENTS:

;	0044	!

;	0045	

;	0046	FORWARD ROUTINE

;	0047	    OPEN_FILE,

;	0048	    LINE_CHARACTER,

;	0049	    FAOOUT;

;	0050	

;	0051	!

;	0052	! INCLUDE FILES:

;	0053	!

;	0054	REQUIRE 'SRC$:NCPPRF.B32';

;	0288	LIBRARY 'SYS$LIBRARY:STARLET.L32';

;	0289	

;	0290	!

;	0291	! MACROS:

;	0292	!

;	0293	

;	0294	MACRO

;	0295	    FILE_SPEC=.FILEFAB[FAB$B_FNS],.FILEFAB[FAB$L_FNA]%,

;	0296	    OLDUSE=((OLDRECORD[0,0,0,0])<0,8>)%,

;	0297	    NEWUSE=((NEWRECORD[0,0,0,0])<0,8>)%;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 3

; Digital Equipment Corporation

;

;	0298	BIND

;	0299	!

;	0300	!ERROR MESSAGES

;	0301	!

;	0302	    ERRMSG_BADDEF=CSTRING('!/!/DEFINED LINE CONFLICTS WITH EXISTING DATABASE ENTRY !/'),

;	0303	    ERRMSG_BADCON=CSTRING('!/!/CANNOT CONNECT TO FILE !AD  !/'),

;	0304	    ERRMSG_BADOPEN=CSTRING('!/!/CANNOT OPEN FILE !AD !/'),

;	0305	    ERRMSG_RMSERR=CSTRING('!/!/RECORD I/O ERROR ON FILE !AD !/'),

;	0306	    ERRMSG_DELERR=CSTRING('!/!/ERROR DELETING FILE !AD  !/'),

;	0307	    ERRMSG_BADFIL=CSTRING('!/!/BADLY FORMATTED FILE !AD!/'),

;	0308	    ERRMSG_LINETYP=CSTRING('!/!/ INVALID LINE TYPE !/'),

;	0309	    ERRMSG_NOREC=CSTRING('!/!/NO ENTRY IN DATABASE !/')  

;	0310	    ;

;	0311	    BIND

;	0312		    LSTOBJ_FORMAT=CSTRING('!/',

;     P 0313					'CONFIGURATION DATABASE OBJECT !AC!/!/',

;     P 0314					'NETWORK WIDE NUMBER:  !UB!/',

;     P 0315					'ASSOCIATED FILE NAME:  !AC!/',

;     P 0316					'ACCESS PRIVILEGES:!/'

;     P 0317					),

;	0318		    LSTNODE_FORMAT=CSTRING('!/',

;     P 0319					'CONFIGURATION DATABASE NODE !AC!/!/',

;     P 0320					'NODE NUMBER: !UW!/',

;     P 0321					'SECONDARY LOADER FILE: !AC!/',

;     P 0322					'TERTIARY LOADER FILE: !AC!/',

;     P 0323					'DOWNLINE LOAD FILE: !AC!/'

;     P 0324					),

;	0325		LSTNODE_FORMA1=CSTRING(

;     P 0326					'DEFAULT NON-PRIVILEGED USERID: !AC!/',

;     P 0327					'DEFAULT NON-PRIVILEGED ACCOUNT NAME: !AC!/',

;     P 0328					'DEFAULT PRIVILEGED USERID: !AC!/',

;     P 0329					'DEFAULT PRIVILEGED ACCOUNT NAME: !AC!/',

;     P 0330					'NSP CONNECT TIMEOUT CONSTANT !UB SECONDS !/'

;     P 0331					),

;	0332		LSTNODE_FORMA2=CSTRING(

;     P 0333				'REMOTES SERVER NODE: !AC!/',

;     P 0334				'SERVERS LINE TO REMOTE: '

;     P 0335				),

;	0336	        LSTNODE_FORMA3=CSTRING(

;     P 0337				'!/REMOTES HOST NODE: !AC!/'

;     P 0338				),

;	0339		    LSTLOCL_FORMAT=CSTRING('!/',

;     P 0340					'CONFIGURATION DATABASE LOCAL NODE!/!/',

;     P 0341					'LOCAL NODE NAME: !AC!/',

;     P 0342					'LOCAL NODE NUMBER: !UW!/',

;     P 0343					'MAXIMUM NUMBER OF LOGICAL LINKS: !UB!/',

;     P 0344					'MAXIMUM NUMBER OF REMOTE NODES: !UB!/'

;     P 0345					),

;	0346		    LSTLINE_FORMAT=CSTRING('!/',

;     P 0347					'CONFIGURATION DATABASE LINE !AC!/!/',

;     P 0348					'DEVICE TYPE: !AC!/',

;     P 0349					'CONTROLLER NUMBER: !UB!/',

;     P 0350					'LINE NUMBER:!UB!/',

;     P 0351					'LINE ADDRESS:!UB!/'),

;	0352			LSTLINE_FORM1=CSTRING(



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 3-1

; Digital Equipment Corporation

;

;     P 0353					'ASSOCIATED NODE: !AC!/',

;     P 0354					'ASSOCIATED BUFFER SIZE: !UW!/',

;     P 0355					'NUMBER OF BUFFERS TO ALLOCATE: !UB!/',

;     P 0356					'CHARACTERISTICS: !AC!/',

;     P 0357					'MOP TIMEOUT CONSTANT:  !UB SECONDS!/'

;     P 0358					);



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 4

; Digital Equipment Corporation

;

;	0359	!

;	0360	! OWN STORAGE:

;	0361	!

;	0362	OWN

;	0363	

;	0364	!+

;	0365	!	OLDRECORD IS THE BUFFER GENERALLY USED TO HOLD DATA

;	0366	!	BOUGHT IN FROM THE CONFIGURATION DATABASE. NEWRECORD

;	0367	!	IS GENERALLY USED TO HOLD DATA THAT WILL BE ADDED TO

;	0368	!	THE DATABASE

;	0369	

;	0370	    OLDRECORD:BLOCK[MAX_RECORDSIZE,BYTE],

;	0371	    NEWRECORD:BLOCK[MAX_RECORDSIZE,BYTE];



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 5

; Digital Equipment Corporation

;

;	0372	GLOBAL

;	0373	!

;	0374	!DATASTRUCTURES FOR ACCESSING DATA BASE

;	0375	!

;	0376	!	ATTRIBUTES FOR THE CONFIGURATION FILES WERE CHOSE

;	0377	    LINE_PRINT_BUF:VECTOR[5,BYTE]INITIAL (BYTE(1,0,0,0,0)),

;	0378	!	TO MINIMIZE THE LIKELIHOOD OF CONFLICTS WHENEVER

;	0379	!	MULTIPLE READERS ARE ACCESSING THE DATABASE WHILE

;	0380	!	ANOTHER IS CHANGING IT.

;	0381		    FILEFAB:$FAB(

;     P 0382			SHR=(GET,UPI),

;     P 0383			RAT=BLK,

;     P 0384			RFM=FIX,

;     P 0385			FAC=(GET,PUT,UPD)

;     P 0386			),

;	0387		    FILERAB:$RAB(

;     P 0388			RAC=SEQ,

;     P 0389			FAB=FILEFAB

;     P 0390			);

;	0391	

;	0392	!

;	0393	! EXTERNAL REFERENCES:

;	0394	!

;	0395	BUILTIN

;	0396	    FFS;

;	0397	

;	0398	EXTERNAL

;	0399	    PRV$AB_NAMES:VECTOR[,BYTE],

;	0400	    FLAGS;

;	0401	EXTERNAL ROUTINE

;	0402	    SYS_SERV_ERR,

;	0403	    EXTEND_BINARY,

;	0404	    BINARY_EXTEND,

;	0405	    MOVEQ,

;	0406	    OUTMESSAGE,

;	0407	    OUT_QUEUE,

;	0408	    WRITE_LINE,

;	0409	    OUTPUT_LINEID,

;	0410	    LIB$TPARSE;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 6

; Digital Equipment Corporation

;

;	0411	    ROUTINE ACCESS_FILE(DESCRIPTOR,RECSIZE)=

;	0412	

;	0413	!++

;	0414	! FUNCTIONAL DESCRIPTION:

;	0415	!

;	0416	!	ACCESS_FILE  ATTEMPTS TO OPEN THE SPECIFIED FILE FOR 

;	0417	!	PROCESSING. IF THE FILE DOESNT EXIST ACCESS_FILE

;	0418	!	CREATES ITS AND LEAVES IT OPEN

;	0419	!

;	0420	! FORMAL PARAMETERS:

;	0421	!

;	0422	!	DESCRIPTOR:ADDRESS OF FILENAME DESCRIPTOR

;	0423	!	RECSIZE:THE LENGTH OF EACH RECORD IN THE FILE

;	0424	!

;	0425	! IMPLICIT INPUTS:

;	0426	!

;	0427	!	NONE

;	0428	!

;	0429	! IMPLICIT OUTPUTS:

;	0430	!

;	0431	!	FILEFAB AND FILERAB INDICATE INFORMATION CONCERNING THE CURRENTLY

;	0432	!	OPEN FILE

;	0433	!

;	0434	! ROUTINE VALUE:

;	0435	! COMPLETION CODES:

;	0436	!

;	0437	!	RETURNS THE VALUE OF THE LAST RMS OPERATION PERFORMED

;	0438	!

;	0439	! SIDE EFFECTS:

;	0440	!

;	0441	!	NONE

;	0442	!

;	0443	!--

;	0444	

;	0445		BEGIN

;	0446		LOCAL

;	0447		    FILE_DESC:REF VECTOR,

;	0448		    STATUS;

;	0449	!GET ADDRESS OF DESCRIPTOR

;	0450	

;	0451	    FILE_DESC=.DESCRIPTOR;

;	0452	

;	0453		FILEFAB[FAB$L_FNA]=.FILE_DESC[1];		!ADDRESS FILENAME 

;	0454		FILEFAB[FAB$B_FNS]=.FILE_DESC[0];		!SIZE OF NAME

;	0455		FILEFAB[FAB$W_MRS]=.RECSIZE;			!MAX SIZ OF A RECORD

;	0456	!

;	0457	!TRY AND OPEN THE SPECIFIED FILE

;	0458	!    IF THE FILE DOESNT EXIST CREATE IT AND

;	0459	!    THEN OPEN IT

;	0460	!

;	0461		STATUS=$OPEN(FAB=FILEFAB);		!OPEN THE FILE

;	0462		SELECTONEU .STATUS OF

;	0463		    SET

;	0464		    [RMS$_FNF]:				!DOESNT EXIST CREATE IT

;	0465			BEGIN



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 6-1

; Digital Equipment Corporation

;

;	0466			IF

;	0467			    NOT(STATUS=$CREATE(FAB=FILEFAB))

;	0468			THEN

;	0469			    BEGIN

;	0470			    FAOOUT(ERRMSG_BADOPEN,FILE_SPEC);

;	0471			    SYS_SERV_ERR(.STATUS);

;	0472			    RETURN .STATUS

;	0473			    END

;	0474			END;

;	0475		    [RMS$_NORMAL]:

;	0476			;

;	0477		    [OTHERWISE]:

;	0478			BEGIN

;	0479			FAOOUT(ERRMSG_BADOPEN,FILE_SPEC);

;	0480			SYS_SERV_ERR(.STATUS);

;	0481			RETURN .STATUS

;	0482			END

;	0483		    TES;

;	0484		IF

;	0485		    NOT(STATUS=$CONNECT(RAB=FILERAB))

;	0486		THEN

;	0487		    BEGIN

;	0488		    FAOOUT(ERRMSG_BADCON,FILE_SPEC);

;	0489		    SYS_SERV_ERR(.STATUS);

;	0490		    $CLOSE(FAB=FILEFAB)

;	0491		    END;

;	0492		RETURN .STATUS

;	0493		END;





							    .TITLE  NCP_EXECUTE

							    .IDENT  \01 \



							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00000 P.AAA:  .ASCII  \SYS$SYSTEM:LOCALNODE.DAT\				      ;

					      00018 P.AAB:  .ASCII  \SYS$SYSTEM:RMTNODE.DAT\				      ;

					      0002E	    .BLKB   2

					      00030 P.AAC:  .ASCII  \SYS$SYSTEM:OBJECT.DAT\				      ;

					      00045	    .BLKB   3

					      00048 P.AAD:  .ASCII  \SYS$SYSTEM:LINE.DAT\				      ;

					      0005B	    .BLKB   1

					      0005C P.AAE:  .LONG   24							      ;

					      00060 	    .ADDRESS  LND$_FILENAME					      ;

					      00064 P.AAF:  .LONG   22							      ;

					      00068 	    .ADDRESS  RND$_FILENAME					      ;

					      0006C P.AAG:  .LONG   21							      ;

					      00070 	    .ADDRESS  ODB$_FILENAME					      ;

					      00074 P.AAH:  .LONG   19							      ;

					      00078 	    .ADDRESS  LID$_FILENAME					      ;

					      0007C P.AAI:  .BYTE   58							      ;

					      0007D 	    .ASCII  \!/!/DEFINED LINE CONFLICTS WITH EXISTING DATABASE ENTR\  ;

					      000B3 	    .ASCII  \Y !/\						      ;

					      000B7	    .BLKB   1

					      000B8 P.AAJ:  .BYTE   34							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 6-2

; Digital Equipment Corporation

;

					      000B9 	    .ASCII  \!/!/CANNOT CONNECT TO FILE !AD  !/\		      ;

					      000DB	    .BLKB   1

					      000DC P.AAK:  .BYTE   27							      ;

					      000DD 	    .ASCII  \!/!/CANNOT OPEN FILE !AD !/\			      ;

					      000F8 P.AAL:  .BYTE   35							      ;

					      000F9 	    .ASCII  \!/!/RECORD I/O ERROR ON FILE !AD !/\		      ;

					      0011C P.AAM:  .BYTE   31							      ;

					      0011D 	    .ASCII  \!/!/ERROR DELETING FILE !AD  !/\			      ;

					      0013C P.AAN:  .BYTE   30							      ;

					      0013D 	    .ASCII  \!/!/BADLY FORMATTED FILE !AD!/\			      ;

					      0015B	    .BLKB   1

					      0015C P.AAO:  .BYTE   25							      ;

					      0015D 	    .ASCII  \!/!/ INVALID LINE TYPE !/\				      ;

					      00176	    .BLKB   2

					      00178 P.AAP:  .BYTE   27							      ;

					      00179 	    .ASCII  \!/!/NO ENTRY IN DATABASE !/\			      ;

					      00194 P.AAQ:  .BYTE   114							      ;

					      00195 	    .ASCII  \!/CONFIGURATION DATABASE OBJECT !AC!/!/NETWORK WIDE NU\  ;

					      001CB 	    .ASCII  \MBER:  !UB!/ASSOCIATED FILE NAME:  !AC!/ACCESS PRIVILE\  ;

					      00201 	    .ASCII  \GES:!/\						      ;

					      00207	    .BLKB   1

					      00208 P.AAR:  .BYTE   -121						      ;

					      00209 	    .ASCII  \!/CONFIGURATION DATABASE NODE !AC!/!/NODE NUMBER: !UW!\  ;

					      0023F 	    .ASCII  \/SECONDARY LOADER FILE: !AC!/TERTIARY LOADER FILE: !AC\  ;

					      00275 	    .ASCII  \!/DOWNLINE LOAD FILE: !AC!/\			      ;

					      00290 P.AAS:  .BYTE   -65							      ;

					      00291 	    .ASCII  \DEFAULT NON-PRIVILEGED USERID: !AC!/DEFAULT NON-PRIVIL\  ;

					      002C7 	    .ASCII  \EGED ACCOUNT NAME: !AC!/DEFAULT PRIVILEGED USERID: !AC\  ;

					      002FD 	    .ASCII  \!/DEFAULT PRIVILEGED ACCOUNT NAME: !AC!/NSP CONNECT TI\  ;

					      00333 	    .ASCII  \MEOUT CONSTANT !UB SECONDS !/\			      ;

					      00350 P.AAT:  .BYTE   50							      ;

					      00351 	    .ASCII  \REMOTES SERVER NODE: !AC!/SERVERS LINE TO REMOTE: \      ;

					      00383	    .BLKB   1

					      00384 P.AAU:  .BYTE   26							      ;

					      00385 	    .ASCII  \!/REMOTES HOST NODE: !AC!/\			      ;

					      0039F	    .BLKB   1

					      003A0 P.AAV:  .BYTE   -96							      ;

					      003A1 	    .ASCII  \!/CONFIGURATION DATABASE LOCAL NODE!/!/LOCAL NODE NAME\  ;

					      003D7 	    .ASCII  \: !AC!/LOCAL NODE NUMBER: !UW!/MAXIMUM NUMBER OF LOGIC\  ;

					      0040D 	    .ASCII  \AL LINKS: !UB!/MAXIMUM NUMBER OF REMOTE NODES: !UB!/\    ;

					      00441	    .BLKB   3

					      00444 P.AAW:  .BYTE   114							      ;

					      00445 	    .ASCII  \!/CONFIGURATION DATABASE LINE !AC!/!/DEVICE TYPE: !AC!\  ;

					      0047B 	    .ASCII  \/CONTROLLER NUMBER: !UB!/LINE NUMBER:!UB!/LINE ADDRESS\  ;

					      004B1 	    .ASCII  \:!UB!/\						      ;

					      004B7	    .BLKB   1

					      004B8 P.AAX:  .BYTE   -111						      ;

					      004B9 	    .ASCII  \ASSOCIATED NODE: !AC!/ASSOCIATED BUFFER SIZE: !UW!/NUM\  ;

					      004EF 	    .ASCII  \BER OF BUFFERS TO ALLOCATE: !UB!/CHARACTERISTICS: !AC!\  ;

					      00525 	    .ASCII  \/MOP TIMEOUT CONSTANT:  !UB SECONDS!/\		      ;

					      0054A	    .BLKB   2



							    .PSECT  $OWN$,NOEXE,2



					      00000 OLDRECORD:



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 6-3

; Digital Equipment Corporation

;

							    .BLKB   195

					      000C3	    .BLKB   1

					      000C4 NEWRECORD:

							    .BLKB   195



							    .PSECT  $GLOBAL$,NOEXE,2



					      00000 LINE_PRINT_BUF::

							    .BYTE   1, 0, 0, 0, 0					      ;

					      00005	    .BLKB   3

					      00008 FILEFAB::

							    .BYTE   3							      ;

					      00009 	    .BYTE   80							      ;

					      0000A 	    .WORD   0							      ;

					      0000C 	    .LONG   0							      ;

					      00010 	    .LONG   0							      ;

					      00014 	    .LONG   0							      ;

					      00018 	    .LONG   0							      ;

					      0001C 	    .WORD   0							      ;

					      0001E 	    .BYTE   11							      ;

					      0001F 	    .BYTE   66							      ;

					      00020 	    .LONG   0							      ;

					      00024 	    .BYTE   0							      ;

					      00025 	    .BYTE   0							      ;

					      00026 	    .BYTE   8							      ;

					      00027 	    .BYTE   1							      ;

					      00028 	    .LONG   0							      ;

					      0002C 	    .LONG   0							      ;

					      00030 	    .LONG   0							      ;

					      00034 	    .LONG   0							      ;

					      00038 	    .LONG   0							      ;

					      0003C 	    .BYTE   0							      ;

					      0003D 	    .BYTE   0							      ;

					      0003E 	    .WORD   0							      ;

					      00040 	    .LONG   0							      ;

					      00044 	    .WORD   0							      ;

					      00046 	    .BYTE   0							      ;

					      00047 	    .BYTE   0							      ;

					      00048 	    .LONG   0							      ;

					      0004C 	    .LONG   0							      ;

					      00050 	    .LONG   0, 0						      ;

					      00058 FILERAB::

							    .BYTE   1							      ;

					      00059 	    .BYTE   68							      ;

					      0005A 	    .WORD   0							      ;

					      0005C 	    .LONG   0							      ;

					      00060 	    .LONG   0							      ;

					      00064 	    .LONG   0							      ;

					      00068 	    .WORD   0, 0, 0						      ;

					      0006E 	    .WORD   0							      ;

					      00070 	    .LONG   0							      ;

					      00074 	    .WORD   0							      ;

					      00076 	    .BYTE   0							      ;

					      00077 	    .BYTE   0							      ;

					      00078 	    .WORD   0							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 6-4

; Digital Equipment Corporation

;

					      0007A 	    .WORD   0							      ;

					      0007C 	    .LONG   0							      ;

					      00080 	    .LONG   0							      ;

					      00084 	    .LONG   0							      ;

					      00088 	    .LONG   0							      ;

					      0008C 	    .BYTE   0							      ;

					      0008D 	    .BYTE   0							      ;

					      0008E 	    .BYTE   0							      ;

					      0008F 	    .BYTE   0							      ;

					      00090 	    .LONG   0							      ;

					      00094 	    .ADDRESS  FILEFAB						      ;

					      00098 	    .LONG   0							      ;



						    LND$_FILENAME=	P.AAA

						    LND$_NAMESIZE=	24

						    RND$_FILENAME=	P.AAB

						    RND$_NAMESIZE=	22

						    ODB$_FILENAME=	P.AAC

						    ODB$_NAMESIZE=	21

						    LID$_FILENAME=	P.AAD

						    LID$_NAMESIZE=	19

						    LND$_DESC=		P.AAE

						    RND$_DESC=		P.AAF

						    ODB$_DESC=		P.AAG

						    LID$_DESC=		P.AAH

						    LINETYPES=		15

						    LINE_BLOCKSIZE=	7

						    ERRMSG_BADDEF=	P.AAI

						    ERRMSG_BADCON=	P.AAJ

						    ERRMSG_BADOPEN=	P.AAK

						    ERRMSG_RMSERR=	P.AAL

						    ERRMSG_DELERR=	P.AAM

						    ERRMSG_BADFIL=	P.AAN

						    ERRMSG_LINETYP=	P.AAO

						    ERRMSG_NOREC=	P.AAP

						    LSTOBJ_FORMAT=	P.AAQ

						    LSTNODE_FORMAT=	P.AAR

						    LSTNODE_FORMA1=	P.AAS

						    LSTNODE_FORMA2=	P.AAT

						    LSTNODE_FORMA3=	P.AAU

						    LSTLOCL_FORMAT=	P.AAV

						    LSTLINE_FORMAT=	P.AAW

						    LSTLINE_FORM1=	P.AAX

							    .GLOBL  PRV$AB_NAMES, FLAGS, SYS_SERV_ERR, EXTEND_BINARY

							    .GLOBL  BINARY_EXTEND, MOVEQ, OUTMESSAGE, OUT_QUEUE, WRITE_LINE

							    .GLOBL  OUTPUT_LINEID, LIB$TPARSE, SYS$OPEN, SYS$CREATE

							    .GLOBL  SYS$CONNECT, SYS$CLOSE



							    .PSECT  $CODE$,NOWRT,2



					 0804 00000 ACCESS_FILE:

							    .WORD   Save R2,R11						      ; 0411

		         5B	0000'  CF  9E 00002 	    MOVAB   FILEFAB+44, R11					      ;

		         50	  04   AC  D0 00007 	    MOVL    DESCRIPTOR, FILE_DESC				      ; 0451

		         6B	  04   A0  D0 0000B 	    MOVL    4(FILE_DESC), FILEFAB+44				      ; 0453



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 6-5

; Digital Equipment Corporation

;

		    08   AB	       60  90 0000F 	    MOVB    (FILE_DESC), FILEFAB+52				      ; 0454

		    0A   AB	  08   AC  B0 00013 	    MOVW    RECSIZE, FILEFAB+54					      ; 0455

				  D4   AB  9F 00018 	    PUSHAB  FILEFAB						      ; 0461

	      00000000G  9F	       01  FB 0001B 	    CALLS   #1, @#SYS$OPEN					      ;

		         52	       50  D0 00022 	    MOVL    R0, STATUS						      ;

	      00018292   8F	       52  D1 00025 	    CMPL    STATUS, #98962					      ; 0462

				       12  12 0002C 	    BNEQ    1$							      ;

				  D4   AB  9F 0002E 	    PUSHAB  FILEFAB						      ; 0467

	      00000000G  9F	       01  FB 00031 	    CALLS   #1, @#SYS$CREATE					      ;

		         52	       50  D0 00038 	    MOVL    R0, STATUS						      ;

		         23	       52  E8 0003B 	    BLBS    STATUS, 3$						      ;

				       09  11 0003E 	    BRB     2$							      ; 0470

	      00010001   8F	       52  D1 00040 1$:     CMPL    STATUS, #65537					      ; 0462

				       18  13 00047 	    BEQL    3$							      ;

				       6B  DD 00049 2$:     PUSHL   FILEFAB+44						      ; 0479

		         7E	  08   AB  9A 0004B 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 0004F 	    PUSHAB  ERRMSG_BADOPEN					      ; 0411

		  0000V  CF	       03  FB 00053 	    CALLS   #3, FAOOUT						      ; 0479

				       52  DD 00058 	    PUSHL   STATUS						      ; 0480

		  0000G  CF	       01  FB 0005A 	    CALLS   #1, SYS_SERV_ERR					      ;

				       30  11 0005F 	    BRB     4$							      ; 0481

				  24   AB  9F 00061 3$:     PUSHAB  FILERAB						      ; 0485

	      00000000G  9F	       01  FB 00064 	    CALLS   #1, @#SYS$CONNECT					      ;

		         52	       50  D0 0006B 	    MOVL    R0, STATUS						      ;

		         20	       52  E8 0006E 	    BLBS    STATUS, 4$						      ;

				       6B  DD 00071 	    PUSHL   FILEFAB+44						      ; 0488

		         7E	  08   AB  9A 00073 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 00077 	    PUSHAB  ERRMSG_BADCON					      ; 0411

		  0000V  CF	       03  FB 0007B 	    CALLS   #3, FAOOUT						      ; 0488

				       52  DD 00080 	    PUSHL   STATUS						      ; 0489

		  0000G  CF	       01  FB 00082 	    CALLS   #1, SYS_SERV_ERR					      ;

				  D4   AB  9F 00087 	    PUSHAB  FILEFAB						      ; 0490

	      00000000G  9F	       01  FB 0008A 	    CALLS   #1, @#SYS$CLOSE					      ;

		         50	       52  D0 00091 4$:     MOVL    STATUS, R0						      ; 0492

					   04 00094 	    RET     							      ; 0411



; Routine Size:  149 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 7

; Digital Equipment Corporation

;

;	0494	    ROUTINE UPDATE_RECORD(BUFFERADDRESS)=

;	0495	

;	0496	!++

;	0497	! FUNCTIONAL DESCRIPTION:

;	0498	!

;	0499	!	UPDATE_RECORD REPLACES THE CURRENT RECORD IN THE ACTIVE

;	0500	!	RMS RECORD STREAM BY THE RECORD SPECIFIED

;	0501	!

;	0502	! FORMAL PARAMETERS:

;	0503	!

;	0504	!	BUFFERADDRESS:THE START OF THE RECORD TO PUT INTO THE FILE

;	0505	!

;	0506	! IMPLICIT INPUTS:

;	0507	!

;	0508	!	NONE

;	0509	!

;	0510	! IMPLICIT OUTPUTS:

;	0511	!

;	0512	!	NONE

;	0513	!

;	0514	! ROUTINE VALUE:

;	0515	! COMPLETION CODES:

;	0516	!

;	0517	!	STATUS OF RMS $UPDATE IS RETURNED

;	0518	!

;	0519	! SIDE EFFECTS:

;	0520	!

;	0521	!	NONE

;	0522	!

;	0523	!--

;	0524	

;	0525		BEGIN

;	0526		LOCAL

;	0527		    STATUS;

;	0528		FILERAB[RAB$L_RBF]=.BUFFERADDRESS;		!ADDRESS OF NEW RECORD

;	0529		FILERAB[RAB$W_RSZ]=.FILEFAB[FAB$W_MRS];;		!SIZE OF NEW RECORD

;	0530		IF 

;	0531		    NOT(STATUS=$UPDATE(RAB=FILERAB))

;	0532		THEN

;	0533		    BEGIN

;	0534		    FAOOUT(ERRMSG_RMSERR,FILE_SPEC);

;	0535		    SYS_SERV_ERR(.STATUS)

;	0536		    END;

;	0537		RETURN .STATUS

;	0538		END;







							    .GLOBL  SYS$UPDATE



					 0804 00095 UPDATE_RECORD:

							    .WORD   Save R2,R11						      ; 0494

		         5B	0000'  CF  9E 00097 	    MOVAB   FILERAB+40, R11					      ;

		         6B	  04   AC  D0 0009C 	    MOVL    BUFFERADDRESS, FILERAB+40				      ; 0528

		    FA   AB	  BE   AB  B0 000A0 	    MOVW    FILEFAB+54, FILERAB+34				      ; 0529



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 7-1

; Digital Equipment Corporation

;

				  D8   AB  9F 000A5 	    PUSHAB  FILERAB						      ; 0531

	      00000000G  9F	       01  FB 000A8 	    CALLS   #1, @#SYS$UPDATE					      ;

		         52	       50  D0 000AF 	    MOVL    R0, STATUS						      ;

		         17	       52  E8 000B2 	    BLBS    STATUS, 1$						      ;

				  B4   AB  DD 000B5 	    PUSHL   FILEFAB+44						      ; 0534

		         7E	  BC   AB  9A 000B8 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 000BC 	    PUSHAB  ERRMSG_RMSERR					      ; 0494

		  0000V  CF	       03  FB 000C0 	    CALLS   #3, FAOOUT						      ; 0534

				       52  DD 000C5 	    PUSHL   STATUS						      ; 0535

		  0000G  CF	       01  FB 000C7 	    CALLS   #1, SYS_SERV_ERR					      ;

		         50	       52  D0 000CC 1$:     MOVL    STATUS, R0						      ; 0537

					   04 000CF 	    RET     							      ; 0494



; Routine Size:  59 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 8

; Digital Equipment Corporation

;

;	0539	      ROUTINE READ_RECORD=

;	0540	

;	0541	!++

;	0542	! FUNCTIONAL DESCRIPTION:

;	0543	!

;	0544	!	READ_RECORD READS THE NEXT RECORD FROM THE CURRENTLY OPENED

;	0545	!	AND CONNECTED FILE.

;	0546	!

;	0547	! FORMAL PARAMETERS:

;	0548	!

;	0549	!	NONE

;	0550	!

;	0551	! IMPLICIT INPUTS:

;	0552	!

;	0553	!	NONE

;	0554	!

;	0555	! IMPLICIT OUTPUTS:

;	0556	!

;	0557	!	OLDRECORD:WILL CONTAIN THE RECORD READ FROM THE DATABASE

;	0558	!

;	0559	! ROUTINE VALUE:

;	0560	! COMPLETION CODES:

;	0561	!

;	0562	!	RETURNS STATUS OF $GET PERFORMED

;	0563	!

;	0564	! SIDE EFFECTS:

;	0565	!

;	0566	!	NONE

;	0567	!

;	0568	!--

;	0569	

;	0570		BEGIN

;	0571		LOCAL

;	0572		    STATUS;

;	0573		MACRO

;	0574		    LAST_BYTE=(OLDRECORD+.FILEFAB[FAB$W_MRS]-1)<0,8>%;

;	0575		FILERAB[RAB$L_UBF]=OLDRECORD;		

;	0576		FILERAB[RAB$W_USZ]=.FILEFAB[FAB$W_MRS];		

;	0577		STATUS=$GET(RAB=FILERAB);

;	0578		IF

;	0579		    .STATUS

;	0580		THEN

;	0581		    !CHECK SECURITY_CODE

;	0582		    IF

;	0583			.LAST_BYTE NEQ SECURITY_CODE

;	0584		    THEN

;	0585		        BEGIN

;	0586			FAOOUT(ERRMSG_BADFIL,FILE_SPEC);

;	0587			STATUS=FALSE

;	0588			END;

;	0589		RETURN .STATUS

;	0590		END;









; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 8-1

; Digital Equipment Corporation

;

							    .GLOBL  SYS$GET



					 0804 000D0 READ_RECORD:

							    .WORD   Save R2,R11						      ; 0539

		         5B	0000'  CF  9E 000D2 	    MOVAB   FILEFAB+54, R11					      ;

		    3E   AB	0000'  CF  9E 000D7 	    MOVAB   OLDRECORD, FILERAB+36				      ; 0575

		    3A   AB	       6B  B0 000DD 	    MOVW    FILEFAB+54, FILERAB+32				      ; 0576

				  1A   AB  9F 000E1 	    PUSHAB  FILERAB						      ; 0577

	      00000000G  9F	       01  FB 000E4 	    CALLS   #1, @#SYS$GET					      ;

		         52	       50  D0 000EB 	    MOVL    R0, STATUS						      ;

		         24	       52  E9 000EE 	    BLBC    STATUS, 1$						      ; 0579

		         50	0000'  CF  9E 000F1 	    MOVAB   OLDRECORD, R0					      ; 0583

		         51	       6B  3C 000F6 	    MOVZWL  FILEFAB+54, R1					      ;

		         50	       51  C0 000F9 	    ADDL2   R1, R0						      ;

		    9B   8F	  FF   A0  91 000FC 	    CMPB    -1(R0), #155					      ;

				       12  13 00101 	    BEQL    1$							      ;

				  F6   AB  DD 00103 	    PUSHL   FILEFAB+44						      ; 0586

		         7E	  FE   AB  9A 00106 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 0010A 	    PUSHAB  ERRMSG_BADFIL					      ; 0539

		  0000V  CF	       03  FB 0010E 	    CALLS   #3, FAOOUT						      ; 0586

				       52  D4 00113 	    CLRL    STATUS						      ; 0587

		         50	       52  D0 00115 1$:     MOVL    STATUS, R0						      ; 0589

					   04 00118 	    RET     							      ; 0539



; Routine Size:  73 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 9

; Digital Equipment Corporation

;

;	0591	    ROUTINE WRITE_RECORD=

;	0592	

;	0593	!++

;	0594	! FUNCTIONAL DESCRIPTION:

;	0595	!

;	0596	

;	0597	!	WRITE_RECORD ADDS A RECORD TO THE END OF THE CURRENTLY

;	0598	!	OPENED AND CONNECTED FILE.

;	0599	!

;	0600	! FORMAL PARAMETERS:

;	0601	!

;	0602	!	NONE

;	0603	!

;	0604	! IMPLICIT INPUTS:

;	0605	!

;	0606	!	NEWRECORD:BUFFER WHICH HOLDS RECORDS TO BE ADDED TO FILE

;	0607	!

;	0608	! IMPLICIT OUTPUTS:

;	0609	!

;	0610	!	NONE

;	0611	!

;	0612	! ROUTINE VALUE:

;	0613	! COMPLETION CODES:

;	0614	!

;	0615	!	RETURN STATUS OF  THE $PUT IT PERFORMS

;	0616	!

;	0617	! SIDE EFFECTS:

;	0618	!

;	0619	!	NONE

;	0620	!

;	0621	!--

;	0622	

;	0623		BEGIN

;	0624		LOCAL

;	0625		    STATUS;

;	0626		FILERAB[RAB$L_RBF]=NEWRECORD;

;	0627		FILERAB[RAB$W_RSZ]=.FILEFAB[FAB$W_MRS];		!SIZE OF NEW RECORD

;	0628		IF

;	0629		    NOT(STATUS=$PUT(RAB=FILERAB))

;	0630		THEN

;	0631		    BEGIN

;	0632		    FAOOUT(ERRMSG_RMSERR,FILE_SPEC);

;	0633		    SYS_SERV_ERR(.STATUS)

;	0634		    END;

;	0635		RETURN .STATUS

;	0636		END;







							    .GLOBL  SYS$PUT



					 0804 00119 WRITE_RECORD:

							    .WORD   Save R2,R11						      ; 0591

		         5B	0000'  CF  9E 0011B 	    MOVAB   FILERAB+40, R11					      ;

		         6B	0000'  CF  9E 00120 	    MOVAB   NEWRECORD, FILERAB+40				      ; 0626



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 9-1

; Digital Equipment Corporation

;

		    FA   AB	  BE   AB  B0 00125 	    MOVW    FILEFAB+54, FILERAB+34				      ; 0627

				  D8   AB  9F 0012A 	    PUSHAB  FILERAB						      ; 0629

	      00000000G  9F	       01  FB 0012D 	    CALLS   #1, @#SYS$PUT					      ;

		         52	       50  D0 00134 	    MOVL    R0, STATUS						      ;

		         17	       52  E8 00137 	    BLBS    STATUS, 1$						      ;

				  B4   AB  DD 0013A 	    PUSHL   FILEFAB+44						      ; 0632

		         7E	  BC   AB  9A 0013D 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 00141 	    PUSHAB  ERRMSG_RMSERR					      ; 0591

		  0000V  CF	       03  FB 00145 	    CALLS   #3, FAOOUT						      ; 0632

				       52  DD 0014A 	    PUSHL   STATUS						      ; 0633

		  0000G  CF	       01  FB 0014C 	    CALLS   #1, SYS_SERV_ERR					      ;

		         50	       52  D0 00151 1$:     MOVL    STATUS, R0						      ; 0635

					   04 00154 	    RET     							      ; 0591



; Routine Size:  60 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 10

; Digital Equipment Corporation

;

;	0637	    GLOBAL ROUTINE MOVEQ_FILLED(DEST_CNT,DEST_ADR):NOVALUE=

;	0638	

;	0639	!++

;	0640	! FUNCTIONAL DESCRIPTION:

;	0641	!

;	0642	!	MOVEQ_FILLED MOVES A COUNTED PARAMETER FROM THE PARAMETER 

;	0643	!	QUEUE TO A SPECIFIED AREA.SHOULD THE PARAMETER BE SHORTER

;	0644	!	THAN THE AREA, THE AREA IS BLANK PADDED.

;	0645	!

;	0646	! FORMAL PARAMETERS:

;	0647	!

;	0648	!	DEST_ADR:THE DESTINATION ADDRESS OF THE COUNTED PARAMETER

;	0649	!	DEST_CNT:THE SIZE OF THE DESTINATION AREA NOT INCLUDING COUNT BYTE

;	0650	!

;	0651	! IMPLICIT INPUTS:

;	0652	!

;	0653	!	QUEUE: THE LONGWORD PARAMETER QUEUE,THE FIRST ENTRY IS 

;	0654	!		THE NUMBER OF  CHARACTERS FOLLOWING IN THE PARAMETER

;	0655	!		QUEUE,IN THE SUCEEDING LONGWORDS ARE THE INDIVIDUAL

;	0656	!		BYTES OF THE PARAMETER

;	0657	!

;	0658	! IMPLICIT OUTPUTS:

;	0659	!

;	0660	!	NONE

;	0661	!

;	0662	! ROUTINE VALUE:

;	0663	! COMPLETION CODES:

;	0664	!

;	0665	!	NONE

;	0666	!

;	0667	! SIDE EFFECTS:

;	0668	!

;	0669	!	NONE

;	0670	!

;	0671	!--

;	0672	

;	0673		BEGIN

;	0674		REGISTER

;	0675		    MSGPTR;

;	0676	        LOCAL

;	0677		    PARAM_COUNT;

;	0678		!+

;	0679		!SAVE POINTER TO AREA

;	0680		MSGPTR=.DEST_ADR;

;	0681	

;	0682		!+

;	0683		!BLANK DESTINATION AREA

;	0684		CH$FILL(0,.DEST_CNT+1,.MSGPTR);

;	0685	

;	0686	 	!+

;	0687		!SAVE PARAMETER COUNT

;	0688		    PARAM_COUNT=OUT_QUEUE();

;	0689		    CH$WCHAR_A(.PARAM_COUNT,MSGPTR);

;	0690		!+

;	0691		!MOVE COUNTED PARAM TO AREA



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 10-1

; Digital Equipment Corporation

;

;	0692	

;	0693		    DECR DEX FROM .PARAM_COUNT TO 1 DO

;	0694			CH$WCHAR_A(OUT_QUEUE(),MSGPTR);

;	0695		RETURN

;	0696		END;











					 007C 00155 	    .ENTRY  MOVEQ_FILLED, Save R2,R3,R4,R5,R6			      ; 0637

		         56	  08   AC  D0 00157 	    MOVL    DEST_ADR, MSGPTR					      ; 0680

	   50	    04   AC	       01  C1 0015B 	    ADDL3   #1, DEST_CNT, R0					      ; 0684

	   00	         6E	       00  2C 00160 	    MOVC5   #0, (SP), #0, R0, (MSGPTR)				      ;

		         66	       50     00164									      ;

		  0000G  CF	       00  FB 00166 	    CALLS   #0, OUT_QUEUE					      ; 0688

		         86	       50  90 0016B 	    MOVB    PARAM_COUNT, (MSGPTR)+				      ; 0689

	   52	         50	       01  C1 0016E 	    ADDL3   #1, PARAM_COUNT, DEX				      ; 0693

				       08  11 00172 	    BRB     2$							      ;

		  0000G  CF	       00  FB 00174 1$:     CALLS   #0, OUT_QUEUE					      ; 0694

		         86	       50  90 00179 	    MOVB    R0, (MSGPTR)+					      ;

		         F5	       52  F5 0017C 2$:     SOBGTR  DEX, 1$						      ; 0693

					   04 0017F 	    RET     							      ; 0637



; Routine Size:  43 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 11

; Digital Equipment Corporation

;

;	0697	ROUTINE LINE_CHARACTER=

;	0698	

;	0699	!++

;	0700	! FUNCTIONAL DESCRIPTION:

;	0701	!

;	0702	!

;	0703	! FORMAL PARAMETERS:

;	0704	!

;	0705	!	NONE

;	0706	!

;	0707	! IMPLICIT INPUTS:

;	0708	!

;	0709	!	NONE

;	0710	!

;	0711	! IMPLICIT OUTPUTS:

;	0712	!

;	0713	!	NONE

;	0714	!

;	0715	! ROUTINE VALUE:

;	0716	! COMPLETION CODES:

;	0717	!

;	0718	!	NONE

;	0719	!

;	0720	! SIDE EFFECTS:

;	0721	!

;	0722	!	NONE

;	0723	!

;	0724	!--

;	0725	

;	0726	BEGIN

;	0727	

;	0728	BIND

;	0729	    FDX_TEXT=CSTRING('FULLDUPLEX'),

;	0730	    HDX_TEXT=CSTRING('HALFDUPLEX'),

;	0731	    SLAVE_TEXT=CSTRING('HALF-DUPLEX SLAVE');

;	0732	SELECTONE  .OLDRECORD[LID$W_CHAR] OF

;	0733	    SET

;	0734	    [0]: RETURN FDX_TEXT;

;	0735	    [LID$M_HDX]: RETURN HDX_TEXT;

;	0736	    [LID$M_HDX+LID$M_SLAVE]: RETURN SLAVE_TEXT;

;	0737	    [OTHERWISE]:;

;	0738	    TES;

;	0739	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      0054C P.AAY:  .BYTE   10							      ;

					      0054D 	    .ASCII  \FULLDUPLEX\					      ;

					      00557	    .BLKB   1

					      00558 P.AAZ:  .BYTE   10							      ;

					      00559 	    .ASCII  \HALFDUPLEX\					      ;

					      00563	    .BLKB   1

					      00564 P.ABA:  .BYTE   17							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 11-1

; Digital Equipment Corporation

;

					      00565 	    .ASCII  \HALF-DUPLEX SLAVE\					      ;

					      00576	    .BLKB   2



						    FDX_TEXT=		P.AAY

						    HDX_TEXT=		P.AAZ

						    SLAVE_TEXT=		P.ABA





							    .PSECT  $CODE$,NOWRT,2



					 0000 00180 LINE_CHARACTER:

							    .WORD   Save nothing					      ; 0697

		         51	0000'  CF  3C 00182 	    MOVZWL  OLDRECORD+28, R1					      ; 0732

				       06  12 00187 	    BNEQ    1$							      ;

		         50	0000'  CF  9E 00189 	    MOVAB   FDX_TEXT, R0					      ; 0697

					   04 0018E 	    RET     							      ; 0734

		         04	       51  B1 0018F 1$:     CMPW    R1, #4						      ; 0732

				       06  12 00192 	    BNEQ    2$							      ;

		         50	0000'  CF  9E 00194 	    MOVAB   HDX_TEXT, R0					      ; 0697

					   04 00199 	    RET     							      ; 0735

		         0C	       51  B1 0019A 2$:     CMPW    R1, #12						      ; 0732

				       06  12 0019D 	    BNEQ    3$							      ;

		         50	0000'  CF  9E 0019F 	    MOVAB   SLAVE_TEXT, R0					      ; 0697

					   04 001A4 	    RET     							      ; 0736

				       50  D4 001A5 3$:     CLRL    R0							      ; 0697

					   04 001A7 	    RET     							      ;



; Routine Size:  40 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 12

; Digital Equipment Corporation

;

;	0740	     ROUTINE MATCHKEY(KEYSIZE,NEWKEY,OLDKEY)=

;	0741	

;	0742	!++

;	0743	! FUNCTIONAL DESCRIPTION:

;	0744	!

;	0745	!	MATCHKEY SELECTS RECORDS FROM THE CONFIGURATION DATABASE 

;	0746	!	FILE BASED UPON THE CONTENTS OF THE RECORD.

;	0747	!	KEYSIZE AND NEWKEY DEFINE THE KEY BEING SOUGHT,

;	0748	!	OLDKEY DENOTES AN ADDRESS WITHIN OLDRECORD THAT IS THE

;	0749	!	START OF THE PARTICULAR DATABASE FIELD BEING EXAMINED.

;	0750	!

;	0751	!	IF KEYSIZE IS 0 THEN MATCHKEY WILL MATCH ANY NON-NULL

;	0752	!	(USE FIELD=1) RECORD.

;	0753	!	NOTE THAT MATCHKEY ASSUMES THAT THE FIRST BYTE OF THE

;	0754	!	CONFIGURATION RECORD IS THE USE BYTE

;	0755	!

;	0756	! FORMAL PARAMETERS:

;	0757	!

;	0758	!	KEYSIZE:THE SIZE OF THE KEY BEING MATCHED

;	0759	!	NEWKEY:THE ADDRESS OF A CHARACTER STRING SUPPLIED BY

;	0760	!		THE CALLER,THIS STRING IS WHAT THE CALLER

;	0761	!		IS LOOKING FOR THE DATABASE

;	0762	!	OLDKEY:AN ADDRESS WITHIN OLDRECORD,WHENEVER A RECORD

;	0763	!		IS READ INTO OLDRECORD THE DATA AT THIS ADDRESS

;	0764	!		IS COMPARED WITH  THE DATA AT NEWKEY IN AN 

;	0765	!		ATTEMPT TO MATCHKEYS

;	0766	!

;	0767	! IMPLICIT INPUTS:

;	0768	!

;	0769	!	NONE

;	0770	!

;	0771	! IMPLICIT OUTPUTS:

;	0772	!

;	0773	!	NONE

;	0774	!

;	0775	! ROUTINE VALUE:

;	0776	! COMPLETION CODES:

;	0777	!

;	0778	!	TRUE IF MATCHKEY FINDS TWO KEYS THAT ARE EQUAL

;	0779	!

;	0780	! SIDE EFFECTS:

;	0781	!

;	0782	!	NONE

;	0783	!

;	0784	!--

;	0785	

;	0786	BEGIN

;	0787	LOCAL

;	0788	    STATUS;

;	0789	LABEL

;	0790	    SELECT_LOOP;

;	0791		WHILE TRUE DO

;	0792		    SELECTONEU (STATUS=READ_RECORD()) OF

;	0793			SET

;	0794	



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 12-1

; Digital Equipment Corporation

;

;	0795			!RECORD SUCESSFULLY RETURNED,

;	0796			!IF RECORD IS ACTIVE(USE NEQ 0) AND

;	0797			!IF NO KEY MATCH SPECIFIED(KEYSIZE=0)

;	0798			!OR THE KEYS MATCH THEN RETURN

;	0799	

;	0800			[RMS$_NORMAL]:

;	0801			SELECT_LOOP:

;	0802			BEGIN

;	0803			    IF

;	0804				NOT .OLDUSE

;	0805			    THEN

;	0806				LEAVE SELECT_LOOP;

;	0807			    IF

;	0808				.KEYSIZE EQL 0

;	0809			    THEN

;	0810				RETURN TRUE;

;	0811			    IF

;	0812				CH$EQL(.KEYSIZE,.NEWKEY,.KEYSIZE,.OLDKEY)

;	0813			    THEN

;	0814				RETURN TRUE

;	0815			END;

;	0816	

;	0817			!END OF FILE REACHED AND PROPER 

;	0818			!RECORD NOT FOUND ,PRINT MESSAGE AND

;	0819			!RETURN FAILURE

;	0820	

;	0821			[RMS$_EOF]:

;	0822			    BEGIN

;	0823			    IF .KEYSIZE NEQ  0 THEN FAOOUT(ERRMSG_NOREC);

;	0824			    RETURN FALSE;

;	0825			    END;

;	0826	

;	0827			!A READ ERROR HAS OCCURRED

;	0828			!RETURN FAILURE

;	0829	

;	0830			[OTHERWISE]:

;	0831			    BEGIN

;	0832			    FAOOUT(ERRMSG_RMSERR,FILE_SPEC);

;	0833			    SYS_SERV_ERR(.STATUS);

;	0834			    RETURN FALSE

;	0835			    END

;	0836			TES;

;	0837	    END;











					 001C 001A8 MATCHKEY:

							    .WORD   Save R2,R3,R4					      ; 0740

		  FF21   CF	       00  FB 001AA 1$:     CALLS   #0, READ_RECORD					      ; 0792

		         54	       50  D0 001AF 	    MOVL    R0, STATUS						      ;

	      00010001   8F	       54  D1 001B2 	    CMPL    STATUS, #65537					      ;

				       17  12 001B9 	    BNEQ    3$							      ;

		         EA	0000'  CF  E9 001BB 	    BLBC    OLDRECORD, 1$					      ; 0804



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 12-2

; Digital Equipment Corporation

;

		         50	  04   AC  D0 001C0 	    MOVL    KEYSIZE, R0						      ; 0808

				       08  13 001C4 	    BEQL    2$							      ;

      0C   BC	    08   BC	       50  29 001C6 	    CMPC3   R0, @NEWKEY, @OLDKEY				      ; 0812

				       DC  12 001CC 	    BNEQ    1$							      ;

		         50	       01  D0 001CE 2$:     MOVL    #1, R0						      ; 0814

					   04 001D1 	    RET     							      ;

	      0001827A   8F	       54  D1 001D2 3$:     CMPL    STATUS, #98938					      ; 0792

				       10  12 001D9 	    BNEQ    4$							      ;

				  04   AC  D5 001DB 	    TSTL    KEYSIZE						      ; 0823

				       24  13 001DE 	    BEQL    5$							      ;

				0000'  CF  9F 001E0 	    PUSHAB  ERRMSG_NOREC					      ; 0740

		  0000V  CF	       01  FB 001E4 	    CALLS   #1, FAOOUT						      ; 0823

				       19  11 001E9 	    BRB     5$							      ; 0824

				0000'  CF  DD 001EB 4$:     PUSHL   FILEFAB+44						      ; 0832

		         7E	0000'  CF  9A 001EF 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 001F4 	    PUSHAB  ERRMSG_RMSERR					      ; 0740

		  0000V  CF	       03  FB 001F8 	    CALLS   #3, FAOOUT						      ; 0832

				       54  DD 001FD 	    PUSHL   STATUS						      ; 0833

		  0000G  CF	       01  FB 001FF 	    CALLS   #1, SYS_SERV_ERR					      ;

				       50  D4 00204 5$:     CLRL    R0							      ; 0740

					   04 00206 	    RET     							      ;



; Routine Size:  95 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 13

; Digital Equipment Corporation

;

;	0838	GLOBAL ROUTINE FAOOUT( STRING , P1 ) =

;	0839	BEGIN

;	0840	

;	0841	!++

;	0842	!

;	0843	! FUNCTIONAL DESCRIPTION:

;	0844	!

;	0845	!	Routine to output a formatted string.

;	0846	!

;	0847	! INPUTS:

;	0848	!

;	0849	!	STRING - address of a counted ASCII FAO control string.

;	0850	!	P1 - the first of possibly several parameters to FAO

;	0851	!

;	0852	! IMPLICIT INPUTS:

;	0853	!

;	0854	!	none

;	0855	!

;	0856	! OUTPUTS:

;	0857	!

;	0858	!	none

;	0859	!

;	0860	! IMPLICIT OUTPUTS:

;	0861	!

;	0862	!	none

;	0863	!

;	0864	! ROUTINE VALUE:

;	0865	!

;	0866	!	none

;	0867	!

;	0868	! SIDE EFFECTS:

;	0869	!

;	0870	!	none

;	0871	!--

;	0872	

;	0873	LOCAL

;	0874		FAODSC: VECTOR[2,LONG] ,		! input descriptor

;	0875		FAOLEN: WORD ,				! FAO return length

;	0876		OUTBUF: VECTOR[512,BYTE] ,		! output buffer

;	0877		OUTDSC: VECTOR[2,LONG] ;		! output buffer descriptor

;	0878	

;	0879	

;	0880	FAODSC[0] = .(.STRING)<0,8> ;			! input string descriptor

;	0881	FAODSC[1] = .STRING+1 ;

;	0882	OUTDSC[0] = 512 ;				! output buffer descriptor

;	0883	OUTDSC[1] = OUTBUF ;

;	0884	$FAOL( CTRSTR = FAODSC , OUTLEN = FAOLEN , OUTBUF = OUTDSC , PRMLST = P1) ;

;	0885	

;	0886	WRITE_LINE(OUTBUF,.FAOLEN)

;	0887	END;







							    .GLOBL  SYS$FAOL





; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 13-1

; Digital Equipment Corporation

;

					 0000 00207 	    .ENTRY  FAOOUT, Save nothing				      ; 0838

		         5E	FDEC   CE  9E 00209 	    MOVAB   -532(SP), SP					      ;

		    F8   AD	  04   BC  9A 0020E 	    MOVZBL  @STRING, FAODSC					      ; 0880

      FC   AD	    04   AC	       01  C1 00213 	    ADDL3   #1, STRING, FAODSC+4				      ; 0881

		    04   AE	0200   8F  3C 00219 	    MOVZWL  #512, OUTDSC					      ; 0882

		    08   AE	  0C   AE  9E 0021F 	    MOVAB   OUTBUF, OUTDSC+4					      ; 0883

				  08   AC  9F 00224 	    PUSHAB  P1							      ; 0884

				  08   AE  9F 00227 	    PUSHAB  OUTDSC						      ;

				  08   AE  9F 0022A 	    PUSHAB  FAOLEN						      ;

				  F8   AD  9F 0022D 	    PUSHAB  FAODSC						      ;

	      00000000G  9F	       04  FB 00230 	    CALLS   #4, @#SYS$FAOL					      ;

		         7E	       6E  3C 00237 	    MOVZWL  FAOLEN, -(SP)					      ; 0886

				  10   AE  9F 0023A 	    PUSHAB  OUTBUF						      ;

		  0000G  CF	       02  FB 0023D 	    CALLS   #2, WRITE_LINE					      ;

					   04 00242 	    RET     							      ; 0838



; Routine Size:  60 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 14

; Digital Equipment Corporation

;

;	0888	    ROUTINE MODIFY_FILE(NEWKEY,OLDKEY,KEYLEN)=

;	0889	

;	0890	!++

;	0891	! FUNCTIONAL DESCRIPTION:

;	0892	!

;	0893	! 	MODIFY_FILE ADDS THE RECORD IN NEWRECORD TO THE

;	0894	!	CURRENTLY OPEN AND CONNECTED FILE. THE CALLER SUPPLIED

;	0895	!	ADDRESS OF A UNIQUE KEY WITHIN NEWRECORD AND THE ADDRESS

;	0896	!	WITHIN OLDRECORD OF THAT KEY. IF MODIFY_FILE CAN MATCH

;	0897	!	THE NEWRECORD KEY TO THAT OF A RECORD WITHIN THE FILE

;	0898	!	THE RECORD IS REPLACED, OTHERWISE THE NEW RECORD IS 

;	0899	!	ADDED TO EITHER THE END FO THE FILE OR OVER ANY 

;	0900	!	ENCOUNTERED EMPTY RECORDS.

;	0901	!	ACTUALLY WHILE READING SEQUENTIALLY THROUGH THE FILE

;	0902	!	THE NEW RECORD IS ADDED TO THE FIRST PLACE THAT IT CAN

;	0903	!	BE(WHETHER EMPTY RECORD,MATCHED KEY OR EOF).

;	0904	!	FI THE RECORD IS ADDED TO AN EMPTY SPACE,

;	0905	!	MODIFY_FILE CONTINUES TO READ THROUGH THE FILE TRYING

;	0906	!	TO FIND A RECORD WHOSE KEY MATCHES, THIS MATCHED OLD

;	0907	!	RECORD HAS ITS USE BYTE CLEARED THUS MAKING IT AN

;	0908	!	EMPTY RECORD.

;	0909	!

;	0910	! FORMAL PARAMETERS:

;	0911	!

;	0912		!NEWKEY-ADDRESS OF KEYWORD FIELD IN NEWRECORD BUFFER

;	0913		!OLDKEY-ADDRESS OF KEYWORD FIELD IN OLDRECORD BUFFER

;	0914		!KEYLEN-LENGTH IN BYTES OF KEYWORD FIELDS

;	0915	!

;	0916	! IMPLICIT INPUTS:

;	0917	!

;	0918	!	NONE

;	0919	!

;	0920	! IMPLICIT OUTPUTS:

;	0921	!

;	0922	!	NONE

;	0923	!

;	0924	! ROUTINE VALUE:

;	0925	! COMPLETION CODES:

;	0926	!

;	0927	!	NONE

;	0928	!

;	0929	! SIDE EFFECTS:

;	0930	!

;	0931	!	NONE

;	0932	!

;	0933	!--

;	0934	

;	0935		BEGIN

;	0936		LOCAL

;	0937		    STATUS;

;	0938		WHILE TRUE DO

;	0939		    SELECTONEU (STATUS=READ_RECORD()) OF

;	0940			SET

;	0941	!++

;	0942	!HAVING READ THROUGH TO THE END OF FILE INDICATES THAT A



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 14-1

; Digital Equipment Corporation

;

;	0943	! RECORD MATCHING (NEWKEY,KEYLEN) IN NEWRECORD HAS NOT BEEN FOUND,

;	0944	! IF THE NEW RECORD HASN'T BEEN ADDED YET OVER AN EMPTY SPACE IN

;	0945	! THE FILE, ADD IT AT THE END OTHERWISE EXIT THE LOOP.

;	0946	!--

;	0947			[RMS$_EOF]:			!EOF FOUND

;	0948		    BEGIN

;	0949	    	    IF .NEWUSE    		

;	0950	    	    THEN

;	0951	    		WRITE_RECORD();

;	0952		    RETURN TRUE

;	0953		    END;

;	0954	!++

;	0955	!A RECORD FROM THE FILE RESIDES IN OLDBUFFER.  

;	0956	!	IF THE RECORD IS BLANK AND THE NEW RECORD HASNT BEEN ADDED

;	0957	!	PLACE IT IN THIS POSITION AND CHANGE THE USE INDICATOR IN

;	0958	!	NEWBUFFER SO THE RECORD WON'T BE ADDED AGAIN.  CONTINUE

;	0959	!	SEARCHING THE FILE FOR A RECORD MATCHING THE NEWRECORDS

;	0960	!	KEYWORD, AS IT IS NOW INVALID, AND MARK IT NOT IN USE.

;	0961	!

;	0962	!	IF THE RECORD IS NOT BLANK AND ITS KEYWORD MATCHES THAT

;	0963	!	IN NEWRECORD THERE ARE 2 POSSIBLE ACTIONS:

;	0964	!	IF THE NEWRECORD HAS ALREADY BEEN ADDED,MARK THIS RECORD EMPTY.

;	0965	!	OTHERWISE ADD THE NEWRECORD OVER THE OLD ONE.

;	0966	!--

;	0967	    	[RMS$_NORMAL]:    		!SUCESSFUL READ OF RECORD

;	0968			!++

;	0969			!CHECKING FOR EMPTY RECORD

;	0970			!++

;	0971	    		IF NOT .OLDUSE    	!IS THIS EMPTY RECORD

;	0972	    		THEN

;	0973			    BEGIN

;	0974			    !++

;	0975			    !SEE IF NEWRECORD STILL NEEDS WRITTEN

;	0976			    !++

;	0977	    		    IF .NEWUSE    	!STILL TO ADD .NEW RECORD

;	0978	    		    THEN

;	0979	    	    		BEGIN

;	0980	    	    		UPDATE_RECORD(NEWRECORD);

;	0981				NEWUSE=FALSE

;	0982	    	    		END

;	0983			    END

;	0984	    		ELSE

;	0985			    !++

;	0986			    !CHECK IF KEYS MATCH

;	0987			    !++

;	0988	    		    IF CH$EQL(.KEYLEN,.OLDKEY,.KEYLEN,.NEWKEY)

;	0989	    		    THEN

;	0990	    	    		BEGIN

;	0991	    	    		UPDATE_RECORD(NEWRECORD);

;	0992				RETURN TRUE

;	0993	    	    		END;

;	0994	!++

;	0995	!ADD THIS SOME SOME ERROR HAS OCCURRED IN READING THE FILE

;	0996	!	STOP PROCESSING AND RETURN THE ERROR

;	0997	!--



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 14-2

; Digital Equipment Corporation

;

;	0998			[OTHERWISE]:

;	0999			    BEGIN

;	1000			    FAOOUT(ERRMSG_RMSERR,FILE_SPEC);

;	1001			    SYS_SERV_ERR(.STATUS);

;	1002			    RETURN .STATUS

;	1003			    END

;	1004			TES

;	1005		END;











					 081C 00243 MODIFY_FILE:

							    .WORD   Save R2,R3,R4,R11					      ; 0888

		         5B	0000'  CF  9E 00245 	    MOVAB   NEWRECORD, R11					      ;

		  FE81   CF	       00  FB 0024A 1$:     CALLS   #0, READ_RECORD					      ; 0939

		         54	       50  D0 0024F 	    MOVL    R0, STATUS						      ;

	      0001827A   8F	       54  D1 00252 	    CMPL    STATUS, #98938					      ;

				       0A  12 00259 	    BNEQ    2$							      ;

		         33	       6B  E9 0025B 	    BLBC    NEWRECORD, 4$					      ; 0949

		  FEB6   CF	       00  FB 0025E 	    CALLS   #0, WRITE_RECORD					      ; 0951

				       2C  11 00263 	    BRB     4$							      ; 0952

	      00010001   8F	       54  D1 00265 2$:     CMPL    STATUS, #65537					      ; 0939

				       27  12 0026C 	    BNEQ    5$							      ;

		         0E	FF3C   CB  E8 0026E 	    BLBS    OLDRECORD, 3$					      ; 0971

		         D4	       6B  E9 00273 	    BLBC    NEWRECORD, 1$					      ; 0977

				       5B  DD 00276 	    PUSHL   R11							      ; 0980

		  FE18   CF	       01  FB 00278 	    CALLS   #1, UPDATE_RECORD					      ;

				       6B  D4 0027D 	    CLRL    NEWRECORD						      ; 0981

				       C9  11 0027F 	    BRB     1$							      ; 0971

      04   BC	    08   BC	  0C   AC  29 00281 3$:     CMPC3   KEYLEN, @OLDKEY, @NEWKEY				      ; 0988

				       C0  12 00288 	    BNEQ    1$							      ;

				       5B  DD 0028A 	    PUSHL   R11							      ; 0991

		  FE04   CF	       01  FB 0028C 	    CALLS   #1, UPDATE_RECORD					      ;

		         50	       01  D0 00291 4$:     MOVL    #1, R0						      ; 0992

					   04 00294 	    RET     							      ;

				0000'  CF  DD 00295 5$:     PUSHL   FILEFAB+44						      ; 1000

		         7E	0000'  CF  9A 00299 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 0029E 	    PUSHAB  ERRMSG_RMSERR					      ; 0888

		  FF60   CF	       03  FB 002A2 	    CALLS   #3, FAOOUT						      ; 1000

				       54  DD 002A7 	    PUSHL   STATUS						      ; 1001

		  0000G  CF	       01  FB 002A9 	    CALLS   #1, SYS_SERV_ERR					      ;

		         50	       54  D0 002AE 	    MOVL    STATUS, R0						      ; 1002

					   04 002B1 	    RET     							      ; 0888



; Routine Size:  111 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 15

; Digital Equipment Corporation

;

;	1006	     ROUTINE OPEN_FILE(DESCRIPTOR)=

;	1007	

;	1008	!++

;	1009	! FUNCTIONAL DESCRIPTION:

;	1010	!

;	1011	!	OPEN_FILE ATTEMPTS TO OPEN AND CONNECT A RECORD STREAM

;	1012	!	TO THE SPECIFIED FILE.

;	1013	!

;	1014	! FORMAL PARAMETERS:

;	1015	!

;	1016	!	DESCRIPTOR:ADDRESS OF A FILENAME DESCRIPTOR

;	1017	!

;	1018	! IMPLICIT INPUTS:

;	1019	!

;	1020	!	NONE

;	1021	!

;	1022	! IMPLICIT OUTPUTS:

;	1023	!

;	1024	!	NONE

;	1025	!

;	1026	! ROUTINE VALUE:

;	1027	! COMPLETION CODES:

;	1028	!

;	1029	!	ROUTINE RETURNS THE STATUS FROM THE LAST

;	1030	!	RMS OPERATION PERFORMED 

;	1031	!

;	1032	! SIDE EFFECTS:

;	1033	!

;	1034	!	NONE

;	1035	!

;	1036	!--

;	1037	

;	1038		BEGIN

;	1039		LOCAL

;	1040		    FILE_DESC:REF VECTOR,

;	1041		    STATUS;

;	1042		!+

;	1043		!POINT TO DESCRIPTOR

;	1044		    FILE_DESC=.DESCRIPTOR;

;	1045	

;	1046		FILEFAB[FAB$L_FNA]=.FILE_DESC[1];

;	1047		FILEFAB[FAB$B_FNS]=.FILE_DESC[0];

;	1048		IF NOT (STATUS=$OPEN(FAB=FILEFAB))

;	1049		THEN

;	1050		    BEGIN

;	1051		    FAOOUT(ERRMSG_BADOPEN,FILE_SPEC);

;	1052		    SYS_SERV_ERR(.STATUS);

;	1053		    RETURN .STATUS

;	1054		    END;

;	1055		IF NOT (STATUS=$CONNECT(RAB=FILERAB))

;	1056		    THEN

;	1057			BEGIN

;	1058			FAOOUT(ERRMSG_BADCON,FILE_SPEC);

;	1059			SYS_SERV_ERR(.STATUS);

;	1060			$CLOSE(FAB=FILEFAB)



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 15-1

; Digital Equipment Corporation

;

;	1061			END;

;	1062		RETURN .STATUS

;	1063		END;











					 0804 002B2 OPEN_FILE:

							    .WORD   Save R2,R11						      ; 1006

		         5B	0000'  CF  9E 002B4 	    MOVAB   FILEFAB+44, R11					      ;

		         50	  04   AC  D0 002B9 	    MOVL    DESCRIPTOR, FILE_DESC				      ; 1044

		         6B	  04   A0  D0 002BD 	    MOVL    4(FILE_DESC), FILEFAB+44				      ; 1046

		    08   AB	       60  90 002C1 	    MOVB    (FILE_DESC), FILEFAB+52				      ; 1047

				  D4   AB  9F 002C5 	    PUSHAB  FILEFAB						      ; 1048

	      00000000G  9F	       01  FB 002C8 	    CALLS   #1, @#SYS$OPEN					      ;

		         52	       50  D0 002CF 	    MOVL    R0, STATUS						      ;

		         18	       52  E8 002D2 	    BLBS    STATUS, 1$						      ;

				       6B  DD 002D5 	    PUSHL   FILEFAB+44						      ; 1051

		         7E	  08   AB  9A 002D7 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 002DB 	    PUSHAB  ERRMSG_BADOPEN					      ; 1006

		  FF23   CF	       03  FB 002DF 	    CALLS   #3, FAOOUT						      ; 1051

				       52  DD 002E4 	    PUSHL   STATUS						      ; 1052

		  0000G  CF	       01  FB 002E6 	    CALLS   #1, SYS_SERV_ERR					      ;

				       30  11 002EB 	    BRB     2$							      ; 1053

				  24   AB  9F 002ED 1$:     PUSHAB  FILERAB						      ; 1055

	      00000000G  9F	       01  FB 002F0 	    CALLS   #1, @#SYS$CONNECT					      ;

		         52	       50  D0 002F7 	    MOVL    R0, STATUS						      ;

		         20	       52  E8 002FA 	    BLBS    STATUS, 2$						      ;

				       6B  DD 002FD 	    PUSHL   FILEFAB+44						      ; 1058

		         7E	  08   AB  9A 002FF 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 00303 	    PUSHAB  ERRMSG_BADCON					      ; 1006

		  FEFB   CF	       03  FB 00307 	    CALLS   #3, FAOOUT						      ; 1058

				       52  DD 0030C 	    PUSHL   STATUS						      ; 1059

		  0000G  CF	       01  FB 0030E 	    CALLS   #1, SYS_SERV_ERR					      ;

				  D4   AB  9F 00313 	    PUSHAB  FILEFAB						      ; 1060

	      00000000G  9F	       01  FB 00316 	    CALLS   #1, @#SYS$CLOSE					      ;

		         50	       52  D0 0031D 2$:     MOVL    STATUS, R0						      ; 1062

					   04 00320 	    RET     							      ; 1006



; Routine Size:  111 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 16

; Digital Equipment Corporation

;

;	1064	ROUTINE PUT_PRIVILEGES=

;	1065	

;	1066	!++

;	1067	! FUNCTIONAL DESCRIPTION:

;	1068	!

;	1069	!	ROUTINE EXAMINES THE PRIVILEGE QUADWORD IN THE 

;	1070	!	OLDRECORD BUFFER AND DISPLAYS THE PRIVILEGE NAMES

;	1071	!	CORRESPONDING TO THE SET BITS OF THE MASK

;	1072	!

;	1073	! FORMAL PARAMETERS:

;	1074	!

;	1075	!	NONE

;	1076	!

;	1077	! IMPLICIT INPUTS:

;	1078	!

;	1079	!	PRV$AB_NAMES:A LIST OF PRIVILEGE NAMES AND

;	1080	!	    BIT NUMBERS DEFINED IN ROUTINE SETPRIV

;	1081	!

;	1082	! IMPLICIT OUTPUTS:

;	1083	!

;	1084	!	NONE

;	1085	!

;	1086	! ROUTINE VALUE:

;	1087	! COMPLETION CODES:

;	1088	!

;	1089	!	NONE

;	1090	!

;	1091	! SIDE EFFECTS:

;	1092	!

;	1093	!	NONE

;	1094	!

;	1095	!--

;	1096	

;	1097	BEGIN

;	1098	BIND

;	1099	    PRIVILEGE_BITS=OLDRECORD[ODB$L_PRIVLOW],

;	1100	    PRIV_NONE=CSTRING('!_!_!_NONE!/'),

;	1101	    PRIV_TEXT=CSTRING('!_!_!_!AC!/');

;	1102	REGISTER

;	1103	    NAME_PTR;

;	1104	MAP

;	1105	    PRIVILEGE_BITS:BITVECTOR[64];

;	1106	OWN

;	1107	    STARTING_BIT:INITIAL(0),

;	1108	    LONGSIZE:BYTE INITIAL(32),

;	1109	    BITPOSITION:LONG;

;	1110	

;	1111	!+

;	1112	!CHECK FOR NON-SPECIFIED PRIVILEGES

;	1113	

;	1114	    IF

;	1115		(.OLDRECORD[ODB$L_PRIVLOW] EQL 0) AND

;	1116		(.OLDRECORD[ODB$L_PRIVHIGH] EQL 0)

;	1117	    THEN

;	1118		BEGIN



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 16-1

; Digital Equipment Corporation

;

;	1119		FAOOUT(PRIV_NONE);

;	1120		RETURN

;	1121		END;

;	1122	

;	1123	!+

;	1124	!PRINT PRIVILEGE NAME CORRESPONDING TO EACH ON BIT

;	1125	!IN THE PRIVILEGE MASK

;	1126	

;	1127	    WHILE TRUE DO

;	1128		BEGIN

;	1129		IF

;	1130		(.OLDRECORD[ODB$L_PRIVLOW] EQL 0) AND

;	1131		(.OLDRECORD[ODB$L_PRIVHIGH] EQL 0)

;	1132		THEN

;	1133		    RETURN;

;	1134	

;	1135		!+

;	1136		!GET THE FIRST SET BIT

;	1137	

;	1138		IF

;	1139		    !+

;	1140		    !LOGICAL FAILURE OF FFS MEANS ACTUAL SUCCESS

;	1141		    FFS(STARTING_BIT,LONGSIZE,OLDRECORD[ODB$L_PRIVLOW],BITPOSITION)

;	1142		THEN

;	1143		    BEGIN

;	1144		    FFS(STARTING_BIT,LONGSIZE,OLDRECORD[ODB$L_PRIVHIGH],BITPOSITION);

;	1145		    BITPOSITION=.BITPOSITION+32

;	1146		    END;

;	1147	

;	1148	        !+

;	1149		!CLEAR PRIVILEGE BIT SO IT WONT BE FOUND AGAIN

;	1150		    PRIVILEGE_BITS[.BITPOSITION]=0;

;	1151		!+

;	1152		!SCAN LIST OF PRIVILEGE NAMES FOR TEXT ASSOCIATED

;	1153		!WITH PRIVILEGE 

;	1154	

;	1155		NAME_PTR=CH$PTR(PRV$AB_NAMES);

;	1156		WHILE TRUE DO

;	1157		    BEGIN

;	1158		    IF

;	1159			CH$RCHAR_A(NAME_PTR) EQL 0

;	1160		    THEN

;	1161			EXITLOOP;

;	1162		    IF

;	1163			CH$RCHAR_A(NAME_PTR) EQLU .BITPOSITION

;	1164		    THEN

;	1165			BEGIN

;	1166			FAOOUT(PRIV_TEXT,.NAME_PTR);

;	1167			EXITLOOP

;	1168			END

;	1169		    ELSE

;	1170			NAME_PTR=.NAME_PTR+CH$RCHAR(.NAME_PTR)+1 

;	1171		    END

;	1172		END

;	1173	    END;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 16-2

; Digital Equipment Corporation

;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00578 P.ABB:  .BYTE   12							      ;

					      00579 	    .ASCII  \!_!_!_NONE!/\					      ;

					      00585	    .BLKB   3

					      00588 P.ABC:  .BYTE   11							      ;

					      00589 	    .ASCII  \!_!_!_!AC!/\					      ;



							    .PSECT  $OWN$,NOEXE,2



					      00187	    .BLKB   1

					      00188 STARTING_BIT:

							    .LONG   0							      ;

					      0018C LONGSIZE:

							    .BYTE   32							      ;

					      0018D	    .BLKB   3

					      00190 BITPOSITION:

							    .BLKB   4



						    PRIVILEGE_BITS=	OLDRECORD+25

						    PRIV_NONE=		P.ABB

						    PRIV_TEXT=		P.ABC





							    .PSECT  $CODE$,NOWRT,2



					 0804 00321 PUT_PRIVILEGES:

							    .WORD   Save R2,R11						      ; 1064

		         5B	0000'  CF  9E 00323 	    MOVAB   BITPOSITION, R11					      ;

				FE89   CB  D5 00328 	    TSTL    OLDRECORD+25					      ; 1115

				       11  12 0032C 	    BNEQ    1$							      ;

				FE8D   CB  D5 0032E 	    TSTL    OLDRECORD+29					      ; 1116

				       0B  12 00332 	    BNEQ    1$							      ;

				0000'  CF  9F 00334 	    PUSHAB  PRIV_NONE						      ; 1064

		  FECA   CF	       01  FB 00338 	    CALLS   #1, FAOOUT						      ; 1119

				       0C  11 0033D 	    BRB     2$							      ; 1120

				FE89   CB  D5 0033F 1$:     TSTL    OLDRECORD+25					      ; 1130

				       09  12 00343 	    BNEQ    3$							      ;

				FE8D   CB  D5 00345 	    TSTL    OLDRECORD+29					      ; 1131

				       03  12 00349 	    BNEQ    3$							      ;

				       50  D4 0034B 2$:     CLRL    R0							      ; 1133

					   04 0034D 	    RET     							      ;

    FE89   CB	    FC   AB	  F8   AB  EA 0034E 3$:     FFS     STARTING_BIT, LONGSIZE, OLDRECORD+25, BITPOSITION	      ; 1141

				       6B     00356									      ;

				       0C  12 00357 	    BNEQ    4$							      ;

    FE8D   CB	    FC   AB	  F8   AB  EA 00359 	    FFS     STARTING_BIT, LONGSIZE, OLDRECORD+29, BITPOSITION	      ; 1144

				       6B     00361									      ;

		         6B	       20  C0 00362 	    ADDL2   #32, BITPOSITION					      ; 1145

	   00	  FE89   CB	       6B  E5 00365 4$:     BBCC    BITPOSITION, PRIVILEGE_BITS, 5$			      ; 1150

		         52	0000G  CF  9E 0036B 5$:     MOVAB   PRV$AB_NAMES, NAME_PTR				      ; 1155

		         50	       82  9A 00370 6$:     MOVZBL  (NAME_PTR)+, R0					      ; 1159

				       CA  13 00373 	    BEQL    1$							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 16-3

; Digital Equipment Corporation

;

		         50	       82  9A 00375 	    MOVZBL  (NAME_PTR)+, R0					      ; 1163

		         6B	       50  D1 00378 	    CMPL    R0, BITPOSITION					      ;

				       0D  12 0037B 	    BNEQ    7$							      ;

				       52  DD 0037D 	    PUSHL   NAME_PTR						      ; 1166

				0000'  CF  9F 0037F 	    PUSHAB  PRIV_TEXT						      ; 1064

		  FE7F   CF	       02  FB 00383 	    CALLS   #2, FAOOUT						      ; 1166

				       B5  11 00388 	    BRB     1$							      ; 1167

		         50	       62  9A 0038A 7$:     MOVZBL  (NAME_PTR), R0					      ; 1170

		         50	       52  C0 0038D 	    ADDL2   NAME_PTR, R0					      ;

	   52	         50	       01  C1 00390 	    ADDL3   #1, R0, NAME_PTR					      ;

				       DA  11 00394 	    BRB     6$							      ; 1156



; Routine Size:  117 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 17

; Digital Equipment Corporation

;

;	1174	GLOBAL ROUTINE MOVE_HOST(NODE_NAME,HOST_POINTER)=

;	1175	

;	1176	!++

;	1177	! FUNCTIONAL DESCRIPTION:

;	1178	!

;	1179	!	ROUTINE IS USED IN THE IMPLEMENTATION OF THE 'LOAD'

;	1180	!	COMMAND. THE DATABASE RECORD ASSOCIATED WITH 'NODE_NAME'

;	1181	!	IS FETCHED AND A POINTER TO ITS 'HOST' FIELD IS RETURNED.

;	1182	!

;	1183	! FORMAL PARAMETERS:

;	1184	!

;	1185	!	NODE_NAME:ADDRESS OF A COUNTED STRING INDICATING NAME OF

;	1186	!		OF TARGET IN DOWN-LINE LOAD

;	1187	!	HOST_POINTER:ADDRESS OF HOST NODE NAME IN  TARGET'S DATABASE

;	1188	!

;	1189	! IMPLICIT INPUTS:

;	1190	!

;	1191	!	NONE

;	1192	!

;	1193	! IMPLICIT OUTPUTS:

;	1194	!

;	1195	!	NONE

;	1196	!

;	1197	! ROUTINE VALUE:

;	1198	! COMPLETION CODES:

;	1199	!

;	1200	!	FALSE IF NO TARGET IS FOUND, OTHERWISE CODE OF LAST RMS

;	1201	!	SERVICE IS RETURNED

;	1202	!

;	1203	! SIDE EFFECTS:

;	1204	!

;	1205	!	NONE

;	1206	!

;	1207	!--

;	1208	

;	1209	BEGIN

;	1210	!

;	1211	!OPEN THE REMOTE NODE FILE

;	1212	!

;	1213	

;	1214	IF

;	1215	    NOT OPEN_FILE(RND$_DESC)

;	1216	THEN

;	1217	    RETURN FALSE;

;	1218	

;	1219	!

;	1220	!LOOKUP TARGET NODE RECORD

;	1221	!

;	1222	

;	1223	IF

;	1224	    MATCHKEY(CH$RCHAR(.NODE_NAME),.NODE_NAME+1,OLDRECORD[RND$T_NAME])

;	1225	THEN

;	1226	    BEGIN

;	1227	    .HOST_POINTER=OLDRECORD[RND$T_HOST];

;	1228	    RETURN $CLOSE(FAB=FILEFAB)



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 17-1

; Digital Equipment Corporation

;

;	1229	    END

;	1230	ELSE

;	1231	    BEGIN

;	1232	    $CLOSE(FAB=FILEFAB);

;	1233	    RETURN FALSE

;	1234	    END

;	1235	END;











					 0800 00396 	    .ENTRY  MOVE_HOST, Save R11					      ; 1174

		         5B 00000000G  9F  9E 00398 	    MOVAB   @#SYS$CLOSE, R11					      ;

				0000'  CF  9F 0039F 	    PUSHAB  RND$_DESC						      ;

		  FF0A   CF	       01  FB 003A3 	    CALLS   #1, OPEN_FILE					      ; 1215

		         2A	       50  E9 003A8 	    BLBC    R0, 2$						      ;

				0000'  CF  9F 003AB 	    PUSHAB  OLDRECORD+2						      ; 1224

	   7E	    04   AC	       01  C1 003AF 	    ADDL3   #1, NODE_NAME, -(SP)				      ;

		         7E	  04   BC  9A 003B4 	    MOVZBL  @NODE_NAME, -(SP)					      ;

		  FDEB   CF	       03  FB 003B8 	    CALLS   #3, MATCHKEY					      ;

		         0E	       50  E9 003BD 	    BLBC    R0, 1$						      ;

		    08   BC	0000'  CF  9E 003C0 	    MOVAB   OLDRECORD+188, @HOST_POINTER			      ; 1227

				0000'  CF  9F 003C6 	    PUSHAB  FILEFAB						      ; 1228

		         6B	       01  FB 003CA 	    CALLS   #1, SYS$CLOSE					      ;

					   04 003CD 	    RET     							      ;

				0000'  CF  9F 003CE 1$:     PUSHAB  FILEFAB						      ; 1232

		         6B	       01  FB 003D2 	    CALLS   #1, SYS$CLOSE					      ;

				       50  D4 003D5 2$:     CLRL    R0							      ; 1223

					   04 003D7 	    RET     							      ; 1174



; Routine Size:  66 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 18

; Digital Equipment Corporation

;

;	1236	    GLOBAL ROUTINE OBJECTLIST=

;	1237	

;	1238	!++

;	1239	! FUNCTIONAL DESCRIPTION:

;	1240	!

;	1241	!	OBJECTLIST RETRIEVES A PARTICULAR RECORD FROM THE OBJECT

;	1242	!	DATABASE AND DISPLAYS IT            

;	1243	!

;	1244	! FORMAL PARAMETERS:

;	1245	!

;	1246	!	NONE

;	1247	!

;	1248	! IMPLICIT INPUTS:

;	1249	!

;	1250	!	NONE

;	1251	!

;	1252	! IMPLICIT OUTPUTS:

;	1253	!

;	1254	!	NONE

;	1255	!

;	1256	! ROUTINE VALUE:

;	1257	! COMPLETION CODES:

;	1258	!

;	1259	!	FALSE IF RMS FAILURE OR RECORD NOT FOUND

;	1260	!

;	1261	! SIDE EFFECTS:

;	1262	!

;	1263	!	NONE

;	1264	!

;	1265	!--

;	1266	

;	1267		BEGIN

;	1268		

;	1269	

;	1270		!PUT OBJECT NAME INTO RECORD STORAGE

;	1271		MOVEQ_FILLED(ODB$S_NAME,NEWRECORD[ODB$B_NAME]);

;	1272	

;	1273	        !OPEN THE PROPER FILE

;	1274	

;	1275		IF 

;	1276		    NOT OPEN_FILE(ODB$_DESC)

;	1277		THEN

;	1278		    RETURN FALSE;

;	1279	

;	1280		!FIND THE RECORD THAT MATCHES THE KEY AT NEWRECORD[ODB$T_NAME]

;	1281	

;	1282		IF MATCHKEY(ODB$S_NAME,NEWRECORD[ODB$T_NAME],OLDRECORD[ODB$T_NAME])

;	1283		THEN

;	1284		    BEGIN

;	1285		    FAOOUT(LSTOBJ_FORMAT,OLDRECORD[ODB$B_NAME],

;	1286				.OLDRECORD[ODB$B_NUMBER],

;	1287				OLDRECORD[ODB$B_FILE]

;	1288				);

;	1289		    PUT_PRIVILEGES();

;	1290		    $CLOSE(FAB=FILEFAB);



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 18-1

; Digital Equipment Corporation

;

;	1291		    RETURN TRUE

;	1292		    END

;	1293		ELSE

;	1294		    BEGIN

;	1295		    $CLOSE(FAB=FILEFAB);

;	1296		    RETURN FALSE

;	1297		    END

;	1298		END;











					 0800 003D8 	    .ENTRY  OBJECTLIST, Save R11				      ; 1236

		         5B 00000000G  9F  9E 003DA 	    MOVAB   @#SYS$CLOSE, R11					      ;

				0000'  CF  9F 003E1 	    PUSHAB  NEWRECORD+1						      ; 1271

				       08  DD 003E5 	    PUSHL   #8							      ;

		  FD69   CF	       02  FB 003E7 	    CALLS   #2, MOVEQ_FILLED					      ;

				0000'  CF  9F 003EC 	    PUSHAB  ODB$_DESC						      ; 1236

		  FEBD   CF	       01  FB 003F0 	    CALLS   #1, OPEN_FILE					      ; 1276

		         3F	       50  E9 003F5 	    BLBC    R0, 2$						      ;

				0000'  CF  9F 003F8 	    PUSHAB  OLDRECORD+2						      ; 1282

				0000'  CF  9F 003FC 	    PUSHAB  NEWRECORD+2						      ;

				       08  DD 00400 	    PUSHL   #8							      ;

		  FDA1   CF	       03  FB 00402 	    CALLS   #3, MATCHKEY					      ;

		         26	       50  E9 00407 	    BLBC    R0, 1$						      ;

				0000'  CF  9F 0040A 	    PUSHAB  OLDRECORD+11					      ; 1287

		         7E	0000'  CF  9A 0040E 	    MOVZBL  OLDRECORD+10, -(SP)					      ; 1285

				0000'  CF  9F 00413 	    PUSHAB  OLDRECORD+1						      ;

				0000'  CF  9F 00417 	    PUSHAB  LSTOBJ_FORMAT					      ; 1236

		  FDE7   CF	       04  FB 0041B 	    CALLS   #4, FAOOUT						      ; 1285

		  FEFC   CF	       00  FB 00420 	    CALLS   #0, PUT_PRIVILEGES					      ; 1289

				0000'  CF  9F 00425 	    PUSHAB  FILEFAB						      ; 1290

		         6B	       01  FB 00429 	    CALLS   #1, SYS$CLOSE					      ;

		         50	       01  D0 0042C 	    MOVL    #1, R0						      ; 1291

					   04 0042F 	    RET     							      ;

				0000'  CF  9F 00430 1$:     PUSHAB  FILEFAB						      ; 1295

		         6B	       01  FB 00434 	    CALLS   #1, SYS$CLOSE					      ;

				       50  D4 00437 2$:     CLRL    R0							      ; 1282

					   04 00439 	    RET     							      ; 1236



; Routine Size:  98 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 19

; Digital Equipment Corporation

;

;	1299	    GLOBAL ROUTINE NODELIST=

;	1300	

;	1301	!++

;	1302	! FUNCTIONAL DESCRIPTION:

;	1303	!

;	1304	!	NODELIST RETRIEVES A PARTICULAR RECORD FROM THE REMOTE

;	1305	!	NODE DATABASE AND DISPLAYS IT.

;	1306	!

;	1307	! FORMAL PARAMETERS:

;	1308	!

;	1309	!	NONE

;	1310	!

;	1311	! IMPLICIT INPUTS:

;	1312	!

;	1313	!	THE COUNTED NODE NAME IS IN QUEUE

;	1314	!

;	1315	! IMPLICIT OUTPUTS:

;	1316	!

;	1317	!	NONE

;	1318	!

;	1319	! ROUTINE VALUE:

;	1320	! COMPLETION CODES:

;	1321	!

;	1322	!	FALSE IF RMS FAILURE OR IF RECORD NOT FOUND

;	1323	!

;	1324	! SIDE EFFECTS:

;	1325	!

;	1326	!	NONE

;	1327	!

;	1328	!--

;	1329	

;	1330		BEGIN

;	1331		LOCAL

;	1332		    NUMBER;

;	1333		

;	1334	

;	1335		!MOVE NODE NAME TO RECORD BUFFER

;	1336		MOVEQ_FILLED(RND$S_NAME,NEWRECORD[RND$B_NAME]);

;	1337	

;	1338	        !OPEN THE PROPER FILE

;	1339	

;	1340		IF 

;	1341		    NOT OPEN_FILE(RND$_DESC)

;	1342		THEN

;	1343		    RETURN FALSE;

;	1344	

;	1345		!FIND THE RECORD THAT MATCHES THE KEY AT NEWRECORD[RND$T_NAME]

;	1346	

;	1347		IF MATCHKEY(RND$S_NAME,NEWRECORD[RND$T_NAME]

;	1348				,OLDRECORD[RND$T_NAME])

;	1349		THEN

;	1350		    BEGIN

;	1351		    EXTEND_BINARY(OLDRECORD[RND$W_NUMBER],NUMBER);

;	1352		    FAOOUT(LSTNODE_FORMAT,OLDRECORD[RND$B_NAME],

;	1353				.NUMBER,



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 19-1

; Digital Equipment Corporation

;

;	1354				OLDRECORD[RND$B_SECLDR],

;	1355				OLDRECORD[RND$B_TERLDR],

;	1356				OLDRECORD[RND$B_DLLFILE],

;	1357				);

;	1358		FAOOUT(LSTNODE_FORMA1,

;	1359				OLDRECORD[RND$B_NONPRVID],

;	1360				OLDRECORD[RND$B_NONPRVACC],

;	1361				OLDRECORD[RND$B_PRVID],

;	1362				OLDRECORD[RND$B_PRVACC],

;	1363				.OLDRECORD[RND$B_CONNECT]

;	1364				);

;	1365		FAOOUT(LSTNODE_FORMA2,OLDRECORD[RND$B_SERVER]);

;	1366		!+

;	1367		!CHECK FOR NO SERVER LINE AND PRINT

;	1368		

;	1369		    IF

;	1370			.OLDRECORD[RND$L_LINE] EQL -1

;	1371		    THEN

;	1372			BEGIN

;	1373			LINE_PRINT_BUF[0]=2;		!TEXT TYPE OF LINE

;	1374			(LINE_PRINT_BUF[1])<0,32>=%X'20202003';  !COUNTED SPACES

;	1375			END

;	1376		    ELSE

;	1377			BEGIN

;	1378			(LINE_PRINT_BUF[1])<0,32>=.OLDRECORD[RND$L_LINE];

;	1379			LINE_PRINT_BUF[0]=1;	!STANDARD NICE LINEID

;	1380			END;

;	1381		OUTPUT_LINEID(LINE_PRINT_BUF[0]);

;	1382		FAOOUT(LSTNODE_FORMA3,OLDRECORD[RND$B_HOST]);

;	1383		    $CLOSE(FAB=FILEFAB);

;	1384		    RETURN TRUE

;	1385		    END

;	1386		ELSE

;	1387		    BEGIN

;	1388		    $CLOSE(FAB=FILEFAB);

;	1389		    RETURN FALSE

;	1390		    END

;	1391		END;











					 0F00 0043A 	    .ENTRY  NODELIST, Save R8,R9,R10,R11			      ; 1299

		         58 00000000G  9F  9E 0043C 	    MOVAB   @#SYS$CLOSE, R8					      ;

		         59	0000'  CF  9E 00443 	    MOVAB   LINE_PRINT_BUF, R9					      ;

		         5A	FDBB   CF  9E 00448 	    MOVAB   FAOOUT, R10						      ;

		         5B	0000'  CF  9E 0044D 	    MOVAB   OLDRECORD+183, R11					      ;

		         5E	       04  C2 00452 	    SUBL2   #4, SP						      ;

				  0E   AB  9F 00455 	    PUSHAB  NEWRECORD+1						      ; 1336

				       06  DD 00458 	    PUSHL   #6							      ;

		  FF4E   CA	       02  FB 0045A 	    CALLS   #2, MOVEQ_FILLED					      ;

				0000'  CF  9F 0045F 	    PUSHAB  RND$_DESC						      ; 1299

		  00AB   CA	       01  FB 00463 	    CALLS   #1, OPEN_FILE					      ; 1341

		         03	       50  E8 00468 	    BLBS    R0, 1$						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 19-2

; Digital Equipment Corporation

;

				     0099  31 0046B 	    BRW     6$							      ;

				FF4B   CB  9F 0046E 1$:     PUSHAB  OLDRECORD+2						      ; 1348

				  0F   AB  9F 00472 	    PUSHAB  NEWRECORD+2						      ; 1347

				       06  DD 00475 	    PUSHL   #6							      ;

		    A1   AA	       03  FB 00477 	    CALLS   #3, MATCHKEY					      ;

		         03	       50  E8 0047B 	    BLBS    R0, 2$						      ;

				     0080  31 0047E 	    BRW     5$							      ;

				       5E  DD 00481 2$:     PUSHL   SP							      ; 1351

				FF51   CB  9F 00483 	    PUSHAB  OLDRECORD+8						      ;

		  0000G  CF	       02  FB 00487 	    CALLS   #2, EXTEND_BINARY					      ;

				       7E  D4 0048C 	    CLRL    -(SP)						      ; 1352

				FF6F   CB  9F 0048E 	    PUSHAB  OLDRECORD+38					      ; 1356

				FF61   CB  9F 00492 	    PUSHAB  OLDRECORD+24					      ; 1355

				FF53   CB  9F 00496 	    PUSHAB  OLDRECORD+10					      ; 1354

				  10   AE  DD 0049A 	    PUSHL   NUMBER						      ; 1352

				FF4A   CB  9F 0049D 	    PUSHAB  OLDRECORD+1						      ;

				0000'  CF  9F 004A1 	    PUSHAB  LSTNODE_FORMAT					      ; 1299

		         6A	       07  FB 004A5 	    CALLS   #7, FAOOUT						      ; 1352

		         7E	  F8   AB  9A 004A8 	    MOVZBL  OLDRECORD+175, -(SP)				      ; 1358

				  E7   AB  9F 004AC 	    PUSHAB  OLDRECORD+158					      ; 1362

				  CD   AB  9F 004AF 	    PUSHAB  OLDRECORD+132					      ; 1361

				  BC   AB  9F 004B2 	    PUSHAB  OLDRECORD+115					      ; 1360

				  A2   AB  9F 004B5 	    PUSHAB  OLDRECORD+89					      ; 1359

				0000'  CF  9F 004B8 	    PUSHAB  LSTNODE_FORMA1					      ; 1299

		         6A	       06  FB 004BC 	    CALLS   #6, FAOOUT						      ; 1358

				  F9   AB  9F 004BF 	    PUSHAB  OLDRECORD+176					      ; 1365

				0000'  CF  9F 004C2 	    PUSHAB  LSTNODE_FORMA2					      ; 1299

		         6A	       02  FB 004C6 	    CALLS   #2, FAOOUT						      ; 1365

	      FFFFFFFF   8F	       6B  D1 004C9 	    CMPL    OLDRECORD+183, #-1					      ; 1370

				       0D  12 004D0 	    BNEQ    3$							      ;

		         69	       02  90 004D2 	    MOVB    #2, LINE_PRINT_BUF					      ; 1373

		    01   A9 20202003   8F  D0 004D5 	    MOVL    #538976259, LINE_PRINT_BUF+1			      ; 1374

				       07  11 004DD 	    BRB     4$							      ; 1369

		    01   A9	       6B  D0 004DF 3$:     MOVL    OLDRECORD+183, LINE_PRINT_BUF+1			      ; 1378

		         69	       01  90 004E3 	    MOVB    #1, LINE_PRINT_BUF					      ; 1379

				       59  DD 004E6 4$:     PUSHL   R9							      ; 1381

		  0000G  CF	       01  FB 004E8 	    CALLS   #1, OUTPUT_LINEID					      ;

				  04   AB  9F 004ED 	    PUSHAB  OLDRECORD+187					      ; 1382

				0000'  CF  9F 004F0 	    PUSHAB  LSTNODE_FORMA3					      ; 1299

		         6A	       02  FB 004F4 	    CALLS   #2, FAOOUT						      ; 1382

				  08   A9  9F 004F7 	    PUSHAB  FILEFAB						      ; 1383

		         68	       01  FB 004FA 	    CALLS   #1, SYS$CLOSE					      ;

		         50	       01  D0 004FD 	    MOVL    #1, R0						      ; 1384

					   04 00500 	    RET     							      ;

				  08   A9  9F 00501 5$:     PUSHAB  FILEFAB						      ; 1388

		         68	       01  FB 00504 	    CALLS   #1, SYS$CLOSE					      ;

				       50  D4 00507 6$:     CLRL    R0							      ; 1347

					   04 00509 	    RET     							      ; 1299



; Routine Size:  208 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 20

; Digital Equipment Corporation

;

;	1392	    GLOBAL ROUTINE LOCALLIST=

;	1393	

;	1394	!++

;	1395	! FUNCTIONAL DESCRIPTION:

;	1396	!

;	1397	!	LOCALLIST DISPLAY INFORMATION FROM THE LOCAL NODE

;	1398	!	CONFIGURATION DATABASE

;	1399	!

;	1400	! FORMAL PARAMETERS:

;	1401	!

;	1402	!	NONE

;	1403	!

;	1404	! IMPLICIT INPUTS:

;	1405	!

;	1406	!	NONE

;	1407	!

;	1408	! IMPLICIT OUTPUTS:

;	1409	!

;	1410	!	NONE

;	1411	!

;	1412	! ROUTINE VALUE:

;	1413	! COMPLETION CODES:

;	1414	!

;	1415	!	FALSE IF RMS FAILURE OR IF NO DATABASE EXISTS

;	1416	!

;	1417	! SIDE EFFECTS:

;	1418	!

;	1419	!	NONE

;	1420	!

;	1421	!--

;	1422	

;	1423		BEGIN

;	1424		LOCAL

;	1425		    NUMBER;

;	1426		

;	1427	

;	1428	

;	1429	        !OPEN THE PROPER FILE

;	1430	

;	1431		IF 

;	1432		    NOT OPEN_FILE(LND$_DESC)

;	1433		THEN

;	1434		    RETURN FALSE;

;	1435	

;	1436	!READ IN THE LOCAL NODE CONFIGURATION RECORD

;	1437	

;	1438		IF READ_RECORD()

;	1439		THEN

;	1440		    BEGIN

;	1441		    EXTEND_BINARY(OLDRECORD[LND$W_NUMBER],NUMBER);

;	1442		    FAOOUT(LSTLOCL_FORMAT,OLDRECORD[LND$B_NAME],

;	1443				.NUMBER,

;	1444				.OLDRECORD[LND$B_MAXLINKS],

;	1445				.OLDRECORD[LND$B_MAXNODES]);

;	1446		    $CLOSE(FAB=FILEFAB);



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 20-1

; Digital Equipment Corporation

;

;	1447		    RETURN TRUE

;	1448		    END

;	1449		ELSE

;	1450		    BEGIN

;	1451		    $CLOSE(FAB=FILEFAB);

;	1452		    RETURN FALSE

;	1453		    END

;	1454		END;











					 0800 0050A 	    .ENTRY  LOCALLIST, Save R11					      ; 1392

		         5B 00000000G  9F  9E 0050C 	    MOVAB   @#SYS$CLOSE, R11					      ;

		         5E	       04  C2 00513 	    SUBL2   #4, SP						      ;

				0000'  CF  9F 00516 	    PUSHAB  LND$_DESC						      ;

		  FD93   CF	       01  FB 0051A 	    CALLS   #1, OPEN_FILE					      ; 1432

		         3F	       50  E9 0051F 	    BLBC    R0, 2$						      ;

		  FBA9   CF	       00  FB 00522 	    CALLS   #0, READ_RECORD					      ; 1438

		         30	       50  E9 00527 	    BLBC    R0, 1$						      ;

				       5E  DD 0052A 	    PUSHL   SP							      ; 1441

				0000'  CF  9F 0052C 	    PUSHAB  OLDRECORD+8						      ;

		  0000G  CF	       02  FB 00530 	    CALLS   #2, EXTEND_BINARY					      ;

		         7E	0000'  CF  9A 00535 	    MOVZBL  OLDRECORD+11, -(SP)					      ; 1442

		         7E	0000'  CF  9A 0053A 	    MOVZBL  OLDRECORD+10, -(SP)					      ;

				  08   AE  DD 0053F 	    PUSHL   NUMBER						      ;

				0000'  CF  9F 00542 	    PUSHAB  OLDRECORD+1						      ;

				0000'  CF  9F 00546 	    PUSHAB  LSTLOCL_FORMAT					      ; 1392

		  FCB8   CF	       05  FB 0054A 	    CALLS   #5, FAOOUT						      ; 1442

				0000'  CF  9F 0054F 	    PUSHAB  FILEFAB						      ; 1446

		         6B	       01  FB 00553 	    CALLS   #1, SYS$CLOSE					      ;

		         50	       01  D0 00556 	    MOVL    #1, R0						      ; 1447

					   04 00559 	    RET     							      ;

				0000'  CF  9F 0055A 1$:     PUSHAB  FILEFAB						      ; 1451

		         6B	       01  FB 0055E 	    CALLS   #1, SYS$CLOSE					      ;

				       50  D4 00561 2$:     CLRL    R0							      ; 1438

					   04 00563 	    RET     							      ; 1392



; Routine Size:  90 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 21

; Digital Equipment Corporation

;

;	1455	    GLOBAL ROUTINE LINELIST=

;	1456	

;	1457	!++

;	1458	! FUNCTIONAL DESCRIPTION:

;	1459	!

;	1460	!	LINELIST DISPLAYS A PARTICULAR RECORD FROM THE 

;	1461	!	CONFIGURATION DATABASE

;	1462	!

;	1463	! FORMAL PARAMETERS:

;	1464	!

;	1465	!	NONE

;	1466	!

;	1467	! IMPLICIT INPUTS:

;	1468	!

;	1469	!	NONE

;	1470	!

;	1471	! IMPLICIT OUTPUTS:

;	1472	!

;	1473	!	NONE

;	1474	!

;	1475	! ROUTINE VALUE:

;	1476	! COMPLETION CODES:

;	1477	!

;	1478	!	FALSE ON RMS FAILURE OR IF NO MATCHING RECORD FOUND

;	1479	!

;	1480	! SIDE EFFECTS:

;	1481	!

;	1482	!	NONE

;	1483	!

;	1484	!--

;	1485	

;	1486		BEGIN

;	1487		

;	1488	

;	1489	

;	1490		!+

;	1491	        !OPEN THE PROPER FILE

;	1492	

;	1493		IF 

;	1494		    NOT OPEN_FILE(LID$_DESC)

;	1495		THEN

;	1496		    RETURN FALSE;

;	1497	

;	1498		!FIND THE RECORD THAT MATCHES THE KEY AT NEWRECORD[LID$T_NAME]

;	1499	

;	1500		IF 

;	1501		

;	1502		!+

;	1503		!2 KINDS OF LINE-ID CAN BE SPECIFIED

;	1504		!1 OR STANDARD AND 2 OR TEXTUAL

;	1505		    CASE OUT_QUEUE() FROM STANDARD_LINEID TO TEXT_LINEID OF

;	1506			SET

;	1507			[STANDARD_LINEID]:

;	1508			

;	1509			    !+



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 21-1

; Digital Equipment Corporation

;

;	1510			    !STANDARD FORMAT LINEID

;	1511	

;	1512			    BEGIN

;	1513			    MOVEQ(4,NEWRECORD[LID$B_CODE]);

;	1514			    MATCHKEY(4,

;	1515					NEWRECORD[LID$B_CODE],

;	1516					OLDRECORD[LID$B_CODE])

;	1517			    END;

;	1518			[TEXT_LINEID]:

;	1519			

;	1520			    !+

;	1521			    !TEXT FORMAT OF LINEID

;	1522	

;	1523			    BEGIN

;	1524			    MOVEQ_FILLED(LID$S_NAME,NEWRECORD[LID$B_NAME]);

;	1525			   MATCHKEY(LID$S_NAME,

;	1526					NEWRECORD[LID$T_NAME],

;	1527					OLDRECORD[LID$T_NAME])

;	1528			    END

;	1529			TES

;	1530		THEN

;	1531		    BEGIN

;	1532		    FAOOUT(LSTLINE_FORMAT,OLDRECORD[LID$B_NAME],

;	1533				OLDRECORD[LID$B_TYPE],

;	1534				.OLDRECORD[LID$B_CNTRL],

;	1535				.OLDRECORD[LID$B_LINE],

;	1536				.OLDRECORD[LID$B_ADDRESS]);

;	1537			FAOOUT(LSTLINE_FORM1,

;	1538				OLDRECORD[LID$B_NODE],

;	1539				.OLDRECORD[LID$W_BUFSIZE],

;	1540				.OLDRECORD[LID$B_NUMBUF],

;	1541				LINE_CHARACTER(),

;	1542				.OLDRECORD[LID$B_TIMEOUT]);

;	1543		    $CLOSE(FAB=FILEFAB);

;	1544		    RETURN TRUE

;	1545		    END

;	1546		ELSE

;	1547		    BEGIN

;	1548		    $CLOSE(FAB=FILEFAB);

;	1549		    RETURN FALSE

;	1550		    END

;	1551		END;











					 0C00 00564 	    .ENTRY  LINELIST, Save R10,R11				      ; 1455

		         5A 00000000G  9F  9E 00566 	    MOVAB   @#SYS$CLOSE, R10					      ;

		         5B	0000'  CF  9E 0056D 	    MOVAB   NEWRECORD+24, R11					      ;

				0000'  CF  9F 00572 	    PUSHAB  LID$_DESC						      ;

		  FD37   CF	       01  FB 00576 	    CALLS   #1, OPEN_FILE					      ; 1494

		         03	       50  E8 0057B 	    BLBS    R0, 1$						      ;

				     0090  31 0057E 	    BRW     7$							      ;

		  0000G  CF	       00  FB 00581 1$:     CALLS   #0, OUT_QUEUE					      ; 1505



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 21-2

; Digital Equipment Corporation

;

	   01	         01	       50  CF 00586 	    CASEL   R0, #1, #1						      ;

		       0017	     0004     0058A 2$:     .WORD   3$-2$,-						      ;

								    4$-2$						      ;

				       5B  DD 0058E 3$:     PUSHL   R11							      ; 1513

				       04  DD 00590 	    PUSHL   #4							      ;

		  0000G  CF	       02  FB 00592 	    CALLS   #2, MOVEQ						      ;

				FF3C   CB  9F 00597 	    PUSHAB  OLDRECORD+24					      ; 1516

				       5B  DD 0059B 	    PUSHL   R11							      ; 1515

				       04  DD 0059D 	    PUSHL   #4							      ; 1514

				       13  11 0059F 	    BRB     5$							      ;

				  E9   AB  9F 005A1 4$:     PUSHAB  NEWRECORD+1						      ; 1524

				       10  DD 005A4 	    PUSHL   #16							      ;

		  FBAA   CF	       02  FB 005A6 	    CALLS   #2, MOVEQ_FILLED					      ;

				FF26   CB  9F 005AB 	    PUSHAB  OLDRECORD+2						      ; 1527

				  EA   AB  9F 005AF 	    PUSHAB  NEWRECORD+2						      ; 1526

				       10  DD 005B2 	    PUSHL   #16							      ; 1525

		  FBEF   CF	       03  FB 005B4 5$:     CALLS   #3, MATCHKEY					      ;

		         4E	       50  E9 005B9 	    BLBC    R0, 6$						      ;

		         7E	FF3F   CB  9A 005BC 	    MOVZBL  OLDRECORD+27, -(SP)					      ; 1532

		         7E	FF3E   CB  9A 005C1 	    MOVZBL  OLDRECORD+26, -(SP)					      ;

		         7E	FF3D   CB  9A 005C6 	    MOVZBL  OLDRECORD+25, -(SP)					      ;

				FF36   CB  9F 005CB 	    PUSHAB  OLDRECORD+18					      ; 1533

				FF25   CB  9F 005CF 	    PUSHAB  OLDRECORD+1						      ; 1532

				0000'  CF  9F 005D3 	    PUSHAB  LSTLINE_FORMAT					      ; 1455

		  FC2B   CF	       06  FB 005D7 	    CALLS   #6, FAOOUT						      ; 1532

		         7E	FF4C   CB  9A 005DC 	    MOVZBL  OLDRECORD+40, -(SP)					      ; 1537

		  FB9A   CF	       00  FB 005E1 	    CALLS   #0, LINE_CHARACTER					      ; 1541

				       50  DD 005E6 	    PUSHL   R0							      ;

		         7E	FF4B   CB  9A 005E8 	    MOVZBL  OLDRECORD+39, -(SP)					      ; 1537

		         7E	FF49   CB  3C 005ED 	    MOVZWL  OLDRECORD+37, -(SP)					      ;

				FF42   CB  9F 005F2 	    PUSHAB  OLDRECORD+30					      ; 1538

				0000'  CF  9F 005F6 	    PUSHAB  LSTLINE_FORM1					      ; 1455

		  FC08   CF	       06  FB 005FA 	    CALLS   #6, FAOOUT						      ; 1537

				0000'  CF  9F 005FF 	    PUSHAB  FILEFAB						      ; 1543

		         6A	       01  FB 00603 	    CALLS   #1, SYS$CLOSE					      ;

		         50	       01  D0 00606 	    MOVL    #1, R0						      ; 1544

					   04 00609 	    RET     							      ;

				0000'  CF  9F 0060A 6$:     PUSHAB  FILEFAB						      ; 1548

		         6A	       01  FB 0060E 	    CALLS   #1, SYS$CLOSE					      ;

				       50  D4 00611 7$:     CLRL    R0							      ; 1500

					   04 00613 	    RET     							      ; 1455



; Routine Size:  176 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 22

; Digital Equipment Corporation

;

;	1552	    GLOBAL ROUTINE  ALLOBJECTLIST=

;	1553	

;	1554	!++

;	1555	! FUNCTIONAL DESCRIPTION:

;	1556	!

;	1557	!	ALLOBJECTLIST DISPLAYS ALL OBJECTS DEFINED IN THE

;	1558	!	CONFIGURATION DATABASE

;	1559	!

;	1560	! FORMAL PARAMETERS:

;	1561	!

;	1562	!	NONE

;	1563	!

;	1564	! IMPLICIT INPUTS:

;	1565	!

;	1566	!	NONE

;	1567	!

;	1568	! IMPLICIT OUTPUTS:

;	1569	!

;	1570	!	NONE

;	1571	!

;	1572	! ROUTINE VALUE:

;	1573	! COMPLETION CODES:

;	1574	!

;	1575	!	FALSE IS RMS FAILURE OR EMPTY CONFIGURATION FILE.

;	1576	!

;	1577	! SIDE EFFECTS:

;	1578	!

;	1579	!	NONE

;	1580	!

;	1581	!--

;	1582	

;	1583		BEGIN

;	1584		

;	1585	        !OPEN THE PROPER FILE

;	1586	

;	1587		IF 

;	1588		    NOT OPEN_FILE(ODB$_DESC)

;	1589		THEN

;	1590		    RETURN FALSE;

;	1591	

;	1592		!+

;	1593		!SCAN THROUGH FILE FOR VALID RECORDS

;	1594	

;	1595		WHILE MATCHKEY(0) DO

;	1596		    BEGIN

;	1597		    FAOOUT(LSTOBJ_FORMAT,OLDRECORD[ODB$B_NAME],

;	1598				.OLDRECORD[ODB$B_NUMBER],

;	1599				OLDRECORD[ODB$B_FILE]

;	1600				);

;	1601		    PUT_PRIVILEGES()

;	1602		    END;

;	1603		$CLOSE(FAB=FILEFAB);

;	1604		RETURN TRUE

;	1605		END;





; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 22-1

; Digital Equipment Corporation

;









					 0000 00614 	    .ENTRY  ALLOBJECTLIST, Save nothing				      ; 1552

				0000'  CF  9F 00616 	    PUSHAB  ODB$_DESC						      ;

		  FC93   CF	       01  FB 0061A 	    CALLS   #1, OPEN_FILE					      ; 1588

		         36	       50  E9 0061F 	    BLBC    R0, 3$						      ;

				       7E  D4 00622 1$:     CLRL    -(SP)						      ; 1595

		  FB7F   CF	       01  FB 00624 	    CALLS   #1, MATCHKEY					      ;

		         1D	       50  E9 00629 	    BLBC    R0, 2$						      ;

				0000'  CF  9F 0062C 	    PUSHAB  OLDRECORD+11					      ; 1599

		         7E	0000'  CF  9A 00630 	    MOVZBL  OLDRECORD+10, -(SP)					      ; 1597

				0000'  CF  9F 00635 	    PUSHAB  OLDRECORD+1						      ;

				0000'  CF  9F 00639 	    PUSHAB  LSTOBJ_FORMAT					      ; 1552

		  FBC5   CF	       04  FB 0063D 	    CALLS   #4, FAOOUT						      ; 1597

		  FCDA   CF	       00  FB 00642 	    CALLS   #0, PUT_PRIVILEGES					      ; 1601

				       D9  11 00647 	    BRB     1$							      ; 1595

				0000'  CF  9F 00649 2$:     PUSHAB  FILEFAB						      ; 1603

	      00000000G  9F	       01  FB 0064D 	    CALLS   #1, @#SYS$CLOSE					      ;

		         50	       01  D0 00654 	    MOVL    #1, R0						      ; 1604

					   04 00657 	    RET     							      ;

				       50  D4 00658 3$:     CLRL    R0							      ; 1552

					   04 0065A 	    RET     							      ;



; Routine Size:  71 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 23

; Digital Equipment Corporation

;

;	1606	    GLOBAL ROUTINE ALLNODELIST=

;	1607	

;	1608	!++

;	1609	! FUNCTIONAL DESCRIPTION:

;	1610	!

;	1611	!	ALLNODELIST DISPLAYS ALL VALID NODE ENTRIES IN THE

;	1612	!	CONFIGURATION DATABASE

;	1613	!

;	1614	! FORMAL PARAMETERS:

;	1615	!

;	1616	!	NONE

;	1617	!

;	1618	! IMPLICIT INPUTS:

;	1619	!

;	1620	!	NONE

;	1621	!

;	1622	! IMPLICIT OUTPUTS:

;	1623	!

;	1624	!	NONE

;	1625	!

;	1626	! ROUTINE VALUE:

;	1627	! COMPLETION CODES:

;	1628	!

;	1629	!	FALSE IF RMS FAILURE OR EMPTY CONFIGURATION FILE

;	1630	!

;	1631	! SIDE EFFECTS:

;	1632	!

;	1633	!	NONE

;	1634	!

;	1635	!--

;	1636	

;	1637		BEGIN

;	1638		LOCAL

;	1639		   NUMBER;

;	1640		

;	1641	        !OPEN THE PROPER FILE

;	1642	

;	1643		IF 

;	1644		    NOT OPEN_FILE(RND$_DESC)

;	1645		THEN

;	1646		    RETURN FALSE;

;	1647	

;	1648		!FIND THE RECORD THAT MATCHES THE KEY AT NEWRECORD[RND$T_NAME]

;	1649	

;	1650		WHILE MATCHKEY(0) DO

;	1651		    BEGIN

;	1652		    EXTEND_BINARY(OLDRECORD[RND$W_NUMBER],NUMBER);

;	1653	

;	1654		    FAOOUT(LSTNODE_FORMAT,OLDRECORD[RND$B_NAME],

;	1655				.NUMBER,

;	1656				OLDRECORD[RND$B_SECLDR],

;	1657				OLDRECORD[RND$B_TERLDR],

;	1658				OLDRECORD[RND$B_DLLFILE],

;	1659				);

;	1660		FAOOUT(LSTNODE_FORMA1,



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 23-1

; Digital Equipment Corporation

;

;	1661				OLDRECORD[RND$B_NONPRVID],

;	1662				OLDRECORD[RND$B_NONPRVACC],

;	1663				OLDRECORD[RND$B_PRVID],

;	1664				OLDRECORD[RND$B_PRVACC],

;	1665				.OLDRECORD[RND$B_CONNECT]

;	1666				);

;	1667			FAOOUT(LSTNODE_FORMA2,OLDRECORD[RND$B_SERVER]);

;	1668		!+

;	1669		!CHECK FOR NO SERVER LINE AND PRINT

;	1670		

;	1671		    IF

;	1672			.OLDRECORD[RND$L_LINE] EQL -1

;	1673		    THEN

;	1674			BEGIN

;	1675			LINE_PRINT_BUF[0]=2;		!TEXT TYPE OF LINE

;	1676			(LINE_PRINT_BUF[1])<0,32>=%X'20202003';  !COUNTED SPACES

;	1677			END

;	1678		    ELSE

;	1679			BEGIN

;	1680			(LINE_PRINT_BUF[1])<0,32>=.OLDRECORD[RND$L_LINE];

;	1681			LINE_PRINT_BUF[0]=1;	!STANDARD NICE LINEID

;	1682			END;

;	1683			OUTPUT_LINEID(LINE_PRINT_BUF[0]);

;	1684			FAOOUT(LSTNODE_FORMA3,OLDRECORD[RND$B_HOST]);

;	1685		    END;

;	1686		$CLOSE(FAB=FILEFAB);

;	1687		RETURN TRUE

;	1688		END;











					 0E00 0065B 	    .ENTRY  ALLNODELIST, Save R9,R10,R11			      ; 1606

		         59	0000'  CF  9E 0065D 	    MOVAB   LINE_PRINT_BUF, R9					      ;

		         5A	FBA1   CF  9E 00662 	    MOVAB   FAOOUT, R10						      ;

		         5B	0000'  CF  9E 00667 	    MOVAB   OLDRECORD+183, R11					      ;

		         5E	       04  C2 0066C 	    SUBL2   #4, SP						      ;

				0000'  CF  9F 0066F 	    PUSHAB  RND$_DESC						      ;

		  00AB   CA	       01  FB 00673 	    CALLS   #1, OPEN_FILE					      ; 1644

		         03	       50  E8 00678 	    BLBS    R0, 1$						      ;

				     0090  31 0067B 	    BRW     5$							      ;

				       7E  D4 0067E 1$:     CLRL    -(SP)						      ; 1650

		    A1   AA	       01  FB 00680 	    CALLS   #1, MATCHKEY					      ;

		         79	       50  E9 00684 	    BLBC    R0, 4$						      ;

				       5E  DD 00687 	    PUSHL   SP							      ; 1652

				FF51   CB  9F 00689 	    PUSHAB  OLDRECORD+8						      ;

		  0000G  CF	       02  FB 0068D 	    CALLS   #2, EXTEND_BINARY					      ;

				       7E  D4 00692 	    CLRL    -(SP)						      ; 1654

				FF6F   CB  9F 00694 	    PUSHAB  OLDRECORD+38					      ; 1658

				FF61   CB  9F 00698 	    PUSHAB  OLDRECORD+24					      ; 1657

				FF53   CB  9F 0069C 	    PUSHAB  OLDRECORD+10					      ; 1656

				  10   AE  DD 006A0 	    PUSHL   NUMBER						      ; 1654

				FF4A   CB  9F 006A3 	    PUSHAB  OLDRECORD+1						      ;

				0000'  CF  9F 006A7 	    PUSHAB  LSTNODE_FORMAT					      ; 1606



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 23-2

; Digital Equipment Corporation

;

		         6A	       07  FB 006AB 	    CALLS   #7, FAOOUT						      ; 1654

		         7E	  F8   AB  9A 006AE 	    MOVZBL  OLDRECORD+175, -(SP)				      ; 1660

				  E7   AB  9F 006B2 	    PUSHAB  OLDRECORD+158					      ; 1664

				  CD   AB  9F 006B5 	    PUSHAB  OLDRECORD+132					      ; 1663

				  BC   AB  9F 006B8 	    PUSHAB  OLDRECORD+115					      ; 1662

				  A2   AB  9F 006BB 	    PUSHAB  OLDRECORD+89					      ; 1661

				0000'  CF  9F 006BE 	    PUSHAB  LSTNODE_FORMA1					      ; 1606

		         6A	       06  FB 006C2 	    CALLS   #6, FAOOUT						      ; 1660

				  F9   AB  9F 006C5 	    PUSHAB  OLDRECORD+176					      ; 1667

				0000'  CF  9F 006C8 	    PUSHAB  LSTNODE_FORMA2					      ; 1606

		         6A	       02  FB 006CC 	    CALLS   #2, FAOOUT						      ; 1667

	      FFFFFFFF   8F	       6B  D1 006CF 	    CMPL    OLDRECORD+183, #-1					      ; 1672

				       0D  12 006D6 	    BNEQ    2$							      ;

		         69	       02  90 006D8 	    MOVB    #2, LINE_PRINT_BUF					      ; 1675

		    01   A9 20202003   8F  D0 006DB 	    MOVL    #538976259, LINE_PRINT_BUF+1			      ; 1676

				       07  11 006E3 	    BRB     3$							      ; 1671

		    01   A9	       6B  D0 006E5 2$:     MOVL    OLDRECORD+183, LINE_PRINT_BUF+1			      ; 1680

		         69	       01  90 006E9 	    MOVB    #1, LINE_PRINT_BUF					      ; 1681

				       59  DD 006EC 3$:     PUSHL   R9							      ; 1683

		  0000G  CF	       01  FB 006EE 	    CALLS   #1, OUTPUT_LINEID					      ;

				  04   AB  9F 006F3 	    PUSHAB  OLDRECORD+187					      ; 1684

				0000'  CF  9F 006F6 	    PUSHAB  LSTNODE_FORMA3					      ; 1606

		         6A	       02  FB 006FA 	    CALLS   #2, FAOOUT						      ; 1684

				     FF7E  31 006FD 	    BRW     1$							      ; 1650

				  08   A9  9F 00700 4$:     PUSHAB  FILEFAB						      ; 1686

	      00000000G  9F	       01  FB 00703 	    CALLS   #1, @#SYS$CLOSE					      ;

		         50	       01  D0 0070A 	    MOVL    #1, R0						      ; 1687

					   04 0070D 	    RET     							      ;

				       50  D4 0070E 5$:     CLRL    R0							      ; 1606

					   04 00710 	    RET     							      ;



; Routine Size:  182 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 24

; Digital Equipment Corporation

;

;	1689	    GLOBAL ROUTINE ALLLINELIST=

;	1690	

;	1691	!++

;	1692	! FUNCTIONAL DESCRIPTION:

;	1693	!

;	1694	!	ALLLINELIST DISPLAYS ALL VALID LINE RECORD IN THE

;	1695	!	CONFIGURATION DATABASE

;	1696	!

;	1697	! FORMAL PARAMETERS:

;	1698	!

;	1699	!	NONE

;	1700	!

;	1701	! IMPLICIT INPUTS:

;	1702	!

;	1703	!	NONE

;	1704	!

;	1705	! IMPLICIT OUTPUTS:

;	1706	!

;	1707	!	NONE

;	1708	!

;	1709	! ROUTINE VALUE:

;	1710	! COMPLETION CODES:

;	1711	!

;	1712	!	FALSE IF RMS FAILURE OF EMPTY CONFIGURATION FILE

;	1713	!

;	1714	! SIDE EFFECTS:

;	1715	!

;	1716	!	NONE

;	1717	!

;	1718	!--

;	1719	

;	1720		BEGIN

;	1721		

;	1722	

;	1723		!+

;	1724	        !OPEN THE PROPER FILE

;	1725	

;	1726		IF 

;	1727		    NOT OPEN_FILE(LID$_DESC)

;	1728		THEN

;	1729		    RETURN FALSE;

;	1730	

;	1731		WHILE MATCHKEY(0) DO

;	1732		    BEGIN

;	1733		    FAOOUT(LSTLINE_FORMAT,OLDRECORD[LID$B_NAME],

;	1734				OLDRECORD[LID$B_TYPE],

;	1735				.OLDRECORD[LID$B_CNTRL],

;	1736				.OLDRECORD[LID$B_LINE],

;	1737				.OLDRECORD[LID$B_ADDRESS]

;	1738				);

;	1739			FAOOUT(LSTLINE_FORM1,

;	1740				OLDRECORD[LID$B_NODE],

;	1741				.OLDRECORD[LID$W_BUFSIZE],

;	1742				.OLDRECORD[LID$B_NUMBUF],

;	1743				LINE_CHARACTER(),



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 24-1

; Digital Equipment Corporation

;

;	1744				.OLDRECORD[LID$B_TIMEOUT])

;	1745		    END;

;	1746		    $CLOSE(FAB=FILEFAB);

;	1747		    RETURN TRUE

;	1748		END;











					 0800 00711 	    .ENTRY  ALLLINELIST, Save R11				      ; 1689

		         5B	0000'  CF  9E 00713 	    MOVAB   OLDRECORD+27, R11					      ;

				0000'  CF  9F 00718 	    PUSHAB  LID$_DESC						      ;

		  FB91   CF	       01  FB 0071C 	    CALLS   #1, OPEN_FILE					      ; 1727

		         54	       50  E9 00721 	    BLBC    R0, 3$						      ;

				       7E  D4 00724 1$:     CLRL    -(SP)						      ; 1731

		  FA7D   CF	       01  FB 00726 	    CALLS   #1, MATCHKEY					      ;

		         3B	       50  E9 0072B 	    BLBC    R0, 2$						      ;

		         7E	       6B  9A 0072E 	    MOVZBL  OLDRECORD+27, -(SP)					      ; 1733

		         7E	  FF   AB  9A 00731 	    MOVZBL  OLDRECORD+26, -(SP)					      ;

		         7E	  FE   AB  9A 00735 	    MOVZBL  OLDRECORD+25, -(SP)					      ;

				  F7   AB  9F 00739 	    PUSHAB  OLDRECORD+18					      ; 1734

				  E6   AB  9F 0073C 	    PUSHAB  OLDRECORD+1						      ; 1733

				0000'  CF  9F 0073F 	    PUSHAB  LSTLINE_FORMAT					      ; 1689

		  FABF   CF	       06  FB 00743 	    CALLS   #6, FAOOUT						      ; 1733

		         7E	  0D   AB  9A 00748 	    MOVZBL  OLDRECORD+40, -(SP)					      ; 1739

		  FA2F   CF	       00  FB 0074C 	    CALLS   #0, LINE_CHARACTER					      ; 1743

				       50  DD 00751 	    PUSHL   R0							      ;

		         7E	  0C   AB  9A 00753 	    MOVZBL  OLDRECORD+39, -(SP)					      ; 1739

		         7E	  0A   AB  3C 00757 	    MOVZWL  OLDRECORD+37, -(SP)					      ;

				  03   AB  9F 0075B 	    PUSHAB  OLDRECORD+30					      ; 1740

				0000'  CF  9F 0075E 	    PUSHAB  LSTLINE_FORM1					      ; 1689

		  FAA0   CF	       06  FB 00762 	    CALLS   #6, FAOOUT						      ; 1739

				       BB  11 00767 	    BRB     1$							      ; 1731

				0000'  CF  9F 00769 2$:     PUSHAB  FILEFAB						      ; 1746

	      00000000G  9F	       01  FB 0076D 	    CALLS   #1, @#SYS$CLOSE					      ;

		         50	       01  D0 00774 	    MOVL    #1, R0						      ; 1747

					   04 00777 	    RET     							      ;

				       50  D4 00778 3$:     CLRL    R0							      ; 1689

					   04 0077A 	    RET     							      ;



; Routine Size:  106 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 25

; Digital Equipment Corporation

;

;	1749	GLOBAL ROUTINE OBJECTDEFINE=

;	1750	

;	1751	!++

;	1752	! FUNCTIONAL DESCRIPTION:

;	1753	!

;	1754	!	OBJECTDEFINE REMOVES DATA FROM THE PARAMETER QUEUE

;	1755	!	,BUILDS AN OBJECT CONFIGURATION RECORD, AND ADDS IT

;	1756	!	TO THE CONFIGURATION DATA BASE

;	1757	!

;	1758	! FORMAL PARAMETERS:

;	1759	!

;	1760	!	NONE

;	1761	!

;	1762	! IMPLICIT INPUTS:

;	1763	!

;	1764	!	NONE

;	1765	!

;	1766	! IMPLICIT OUTPUTS:

;	1767	!

;	1768	!	NONE

;	1769	!

;	1770	! ROUTINE VALUE:

;	1771	! COMPLETION CODES:

;	1772	!

;	1773	!	FAILS ONLY ON AN RMS FAILURE

;	1774	!

;	1775	! SIDE EFFECTS:

;	1776	!

;	1777	!	NONE

;	1778	!

;	1779	!--

;	1780	

;	1781	    BEGIN

;	1782	    LOCAL

;	1783		STATUS;

;	1784	    !+

;	1785	    !MOVE OBJECT NAME TO RECORD BUFFER

;	1786	    MOVEQ_FILLED(ODB$S_NAME,NEWRECORD[ODB$B_NAME]);

;	1787	    !+

;	1788	    !STORE OBJECT NUMBER

;	1789		NEWRECORD[ODB$B_NUMBER]=OUT_QUEUE();

;	1790	    !+

;	1791	    !MOVE FILENAME TO RECORD BUFFER

;	1792	

;	1793		MOVEQ_FILLED(ODB$S_FILE,NEWRECORD[ODB$B_FILE]);

;	1794	!+

;	1795	!MOVE PRIVILEGE QUADWORD TO RECORD

;	1796	

;	1797	    NEWRECORD[ODB$L_PRIVLOW]=OUT_QUEUE();

;	1798	    NEWRECORD[ODB$L_PRIVHIGH]=OUT_QUEUE();

;	1799	!++

;	1800	!ADD THE RECORD IN NEWRECORD TO  OBJECT.DAT

;	1801	!__

;	1802	    NEWRECORD[ODB$B_USE]=TRUE;

;	1803	    NEWRECORD[ODB$B_IDENT]=SECURITY_CODE;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 25-1

; Digital Equipment Corporation

;

;	1804	    IF NOT (STATUS=ACCESS_FILE(ODB$_DESC,ODB$C_SIZE)) 

;	1805	    THEN RETURN .STATUS;

;	1806	    STATUS=MODIFY_FILE(NEWRECORD[ODB$T_NAME],

;	1807				OLDRECORD[ODB$T_NAME],

;	1808				ODB$S_NAME);

;	1809	    $CLOSE(FAB=FILEFAB);

;	1810	    RETURN .STATUS

;	1811	    END;











					 0C04 0077B 	    .ENTRY  OBJECTDEFINE, Save R2,R10,R11			      ; 1749

		         5A	0000G  CF  9E 0077D 	    MOVAB   OUT_QUEUE, R10					      ;

		         5B	0000'  CF  9E 00782 	    MOVAB   NEWRECORD+1, R11					      ;

				       5B  DD 00787 	    PUSHL   R11							      ; 1786

				       08  DD 00789 	    PUSHL   #8							      ;

		  F9C5   CF	       02  FB 0078B 	    CALLS   #2, MOVEQ_FILLED					      ;

		         6A	       00  FB 00790 	    CALLS   #0, OUT_QUEUE					      ; 1789

		    09   AB	       50  90 00793 	    MOVB    R0, NEWRECORD+10					      ;

				  0A   AB  9F 00797 	    PUSHAB  NEWRECORD+11					      ; 1793

				       0D  DD 0079A 	    PUSHL   #13							      ;

		  F9B4   CF	       02  FB 0079C 	    CALLS   #2, MOVEQ_FILLED					      ;

		         6A	       00  FB 007A1 	    CALLS   #0, OUT_QUEUE					      ; 1797

		    18   AB	       50  D0 007A4 	    MOVL    R0, NEWRECORD+25					      ;

		         6A	       00  FB 007A8 	    CALLS   #0, OUT_QUEUE					      ; 1798

		    1C   AB	       50  D0 007AB 	    MOVL    R0, NEWRECORD+29					      ;

		    FF   AB	       01  90 007AF 	    MOVB    #1, NEWRECORD					      ; 1802

		    20   AB	  9B   8F  90 007B3 	    MOVB    #-101, NEWRECORD+33					      ; 1803

				       22  DD 007B8 	    PUSHL   #34							      ; 1804

				0000'  CF  9F 007BA 	    PUSHAB  ODB$_DESC						      ; 1749

		  F83D   CF	       02  FB 007BE 	    CALLS   #2, ACCESS_FILE					      ; 1804

		         52	       50  D0 007C3 	    MOVL    R0, STATUS						      ;

		         1C	       52  E9 007C6 	    BLBC    STATUS, 1$						      ;

				       08  DD 007C9 	    PUSHL   #8							      ; 1806

				FF3D   CB  9F 007CB 	    PUSHAB  OLDRECORD+2						      ; 1807

				  01   AB  9F 007CF 	    PUSHAB  NEWRECORD+2						      ; 1806

		  FA6C   CF	       03  FB 007D2 	    CALLS   #3, MODIFY_FILE					      ;

		         52	       50  D0 007D7 	    MOVL    R0, STATUS						      ;

				0000'  CF  9F 007DA 	    PUSHAB  FILEFAB						      ; 1809

	      00000000G  9F	       01  FB 007DE 	    CALLS   #1, @#SYS$CLOSE					      ;

		         50	       52  D0 007E5 1$:     MOVL    STATUS, R0						      ; 1810

					   04 007E8 	    RET     							      ; 1749



; Routine Size:  110 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 26

; Digital Equipment Corporation

;

;	1812	GLOBAL ROUTINE NODEDEFINE=

;	1813	

;	1814	!++

;	1815	! FUNCTIONAL DESCRIPTION:

;	1816	!

;	1817	!	NODEDEFINE TAKES DATA FROM THE PARAMETER QUEUE

;	1818	!	AND BUILDS A REMOTE NODE CONFIGURATION RECORD.

;	1819	!	THE RECORD IS ADDED TO THE CONFIGURATION FILE

;	1820	!

;	1821	! FORMAL PARAMETERS:

;	1822	!

;	1823	!	NONE

;	1824	!

;	1825	! IMPLICIT INPUTS:

;	1826	!

;	1827	!	NONE

;	1828	!

;	1829	! IMPLICIT OUTPUTS:

;	1830	!

;	1831	!	NONE

;	1832	!

;	1833	! ROUTINE VALUE:

;	1834	! COMPLETION CODES:

;	1835	!

;	1836	!	FAILS ON RMS FAILURE OR CPU VALIDATION FAILURE

;	1837	!

;	1838	! SIDE EFFECTS:

;	1839	!

;	1840	!	NONE

;	1841	!

;	1842	!--

;	1843	

;	1844	    BEGIN

;	1845	    LOCAL

;	1846		STATUS;

;	1847	   

;	1848	

;	1849	    !

;	1850	    !MOVE NODE NAME TO RECORD BUFFER

;	1851	    !

;	1852	

;	1853		MOVEQ_FILLED(RND$S_NAME,NEWRECORD[RND$B_NAME]);

;	1854	

;	1855	    !MOVE NODE NUMBER TO RECORD BUFFER

;	1856	    !

;	1857	

;	1858		NEWRECORD[RND$W_NUMBER]=BINARY_EXTEND(OUT_QUEUE());

;	1859	

;	1860	   !

;	1861	    !MOVE SECONDARY LOADER FILENAME TO RECORD BUFFER

;	1862	    !

;	1863	

;	1864		MOVEQ_FILLED(RND$S_SECLDR,NEWRECORD[RND$B_SECLDR]);

;	1865	

;	1866	    !



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 26-1

; Digital Equipment Corporation

;

;	1867	    !MOVE TERTIARY LOADER FILENAME TO RECORD BUFFER

;	1868	    !

;	1869	  

;	1870		MOVEQ_FILLED(RND$S_TERLDR,NEWRECORD[RND$B_TERLDR]);

;	1871	

;	1872	    !

;	1873	    !MOVE DLL FILE NAME

;	1874	    !

;	1875	    

;	1876		MOVEQ_FILLED(RND$S_DLLFILE,NEWRECORD[RND$B_DLLFILE]);

;	1877	

;	1878	    !

;	1879	    !MOVE UPLINE DUMP FILENAME

;	1880	    !

;	1881	

;	1882		!MOVEQ_FILLED(RND$S_ULDFILE,NEWRECORD[RND$B_ULDFILE]);

;	1883	

;	1884	    !

;	1885	    !VALIDATE BOOTSTRAP TRIGGER PASSWORD

;	1886	    !

;	1887	 

;	1888		MOVEQ_FILLED(RND$S_BOOTPW,NEWRECORD[RND$B_BOOTPW]);

;	1889	

;	1890	    !

;	1891	    !MOVE RECEIVE INIT PASSWORD

;	1892	    !

;	1893	

;	1894		MOVEQ_FILLED(RND$S_RCVPW,NEWRECORD[RND$B_RCVPW]);

;	1895	

;	1896	    !

;	1897	    !MOVE TRANSMIT INIT PASSWORD

;	1898	    !

;	1899	

;	1900		MOVEQ_FILLED(RND$S_XMTPW,NEWRECORD[RND$B_XMTPW]);

;	1901	!

;	1902	!MOVE NON-PRIVILEGED ACCESS INFORMATION

;	1903	!

;	1904	

;	1905	    MOVEQ_FILLED(RND$S_NONPRVID,NEWRECORD[RND$B_NONPRVID]);

;	1906	    MOVEQ_FILLED(RND$S_NONPRVPSW,NEWRECORD[RND$B_NONPRVPSW]);

;	1907	    MOVEQ_FILLED(RND$S_NONPRVACC,NEWRECORD[RND$B_NONPRVACC]);

;	1908	!

;	1909	!FILL IN PRIVILEGED ACCES INFORMATION

;	1910	!

;	1911	    MOVEQ_FILLED(RND$S_PRVID,NEWRECORD[RND$B_PRVID]);

;	1912	    MOVEQ_FILLED(RND$S_PRVPSW,NEWRECORD[RND$B_PRVPSW]);

;	1913	    MOVEQ_FILLED(RND$S_PRVACC,NEWRECORD[RND$B_PRVACC]);

;	1914	!

;	1915	!FILL IN NSP CONNECT TIMEOUT CONSTANT

;	1916	!

;	1917	    NEWRECORD[RND$B_CONNECT]=OUT_QUEUE();

;	1918	!

;	1919	!MOVE NAME OF DLLOAD SERVER NODE

;	1920	

;	1921	    MOVEQ_FILLED(RND$S_SERVER,NEWRECORD[RND$B_SERVER]);



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 26-2

; Digital Equipment Corporation

;

;	1922	

;	1923	!

;	1924	!MOVE NAME  OF SERVERS LINE TO TARGET

;	1925	

;	1926	    IF

;	1927		OUT_QUEUE() EQLU 0

;	1928	    THEN

;	1929		NEWRECORD[RND$L_LINE]=-1

;	1930	    ELSE

;	1931		MOVEQ(4,NEWRECORD[RND$L_LINE]);

;	1932	

;	1933	!

;	1934	!MOVE TARGETS HOST NODE NAME

;	1935	

;	1936	    MOVEQ_FILLED(RND$S_HOST,NEWRECORD[RND$B_HOST]);

;	1937	!++

;	1938	!ADD THE RECORD IN NEWRECORD TO  RMTNODE.DAT

;	1939	!__

;	1940	    NEWRECORD[RND$B_USE]=TRUE;

;	1941	    NEWRECORD[RND$B_IDENT]=SECURITY_CODE;

;	1942	    IF NOT (STATUS=ACCESS_FILE(RND$_DESC,RND$C_SIZE)) 

;	1943	    THEN RETURN .STATUS;

;	1944	    STATUS=MODIFY_FILE(NEWRECORD[RND$T_NAME],

;	1945				OLDRECORD[RND$T_NAME],

;	1946				RND$S_NAME);

;	1947	    $CLOSE(FAB=FILEFAB);

;	1948	    RETURN .STATUS

;	1949	    END;











					 0E04 007E9 	    .ENTRY  NODEDEFINE, Save R2,R9,R10,R11			      ; 1812

		         59	0000G  CF  9E 007EB 	    MOVAB   OUT_QUEUE, R9					      ;

		         5A	F961   CF  9E 007F0 	    MOVAB   MOVEQ_FILLED, R10					      ;

		         5B	0000'  CF  9E 007F5 	    MOVAB   NEWRECORD+183, R11					      ;

				FF4A   CB  9F 007FA 	    PUSHAB  NEWRECORD+1						      ; 1853

				       06  DD 007FE 	    PUSHL   #6							      ;

		         6A	       02  FB 00800 	    CALLS   #2, MOVEQ_FILLED					      ;

		         69	       00  FB 00803 	    CALLS   #0, OUT_QUEUE					      ; 1858

				       50  DD 00806 	    PUSHL   R0							      ;

		  0000G  CF	       01  FB 00808 	    CALLS   #1, BINARY_EXTEND					      ;

		  FF51   CB	       50  B0 0080D 	    MOVW    R0, NEWRECORD+8					      ;

				FF53   CB  9F 00812 	    PUSHAB  NEWRECORD+10					      ; 1864

				       0D  DD 00816 	    PUSHL   #13							      ;

		         6A	       02  FB 00818 	    CALLS   #2, MOVEQ_FILLED					      ;

				FF61   CB  9F 0081B 	    PUSHAB  NEWRECORD+24					      ; 1870

				       0D  DD 0081F 	    PUSHL   #13							      ;

		         6A	       02  FB 00821 	    CALLS   #2, MOVEQ_FILLED					      ;

				FF6F   CB  9F 00824 	    PUSHAB  NEWRECORD+38					      ; 1876

				       0D  DD 00828 	    PUSHL   #13							      ;

		         6A	       02  FB 0082A 	    CALLS   #2, MOVEQ_FILLED					      ;

				  8B   AB  9F 0082D 	    PUSHAB  NEWRECORD+66					      ; 1888

				       04  DD 00830 	    PUSHL   #4							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 26-3

; Digital Equipment Corporation

;

		         6A	       02  FB 00832 	    CALLS   #2, MOVEQ_FILLED					      ;

				  99   AB  9F 00835 	    PUSHAB  NEWRECORD+80					      ; 1894

				       08  DD 00838 	    PUSHL   #8							      ;

		         6A	       02  FB 0083A 	    CALLS   #2, MOVEQ_FILLED					      ;

				  90   AB  9F 0083D 	    PUSHAB  NEWRECORD+71					      ; 1900

				       08  DD 00840 	    PUSHL   #8							      ;

		         6A	       02  FB 00842 	    CALLS   #2, MOVEQ_FILLED					      ;

				  A2   AB  9F 00845 	    PUSHAB  NEWRECORD+89					      ; 1905

				       10  DD 00848 	    PUSHL   #16							      ;

		         6A	       02  FB 0084A 	    CALLS   #2, MOVEQ_FILLED					      ;

				  B3   AB  9F 0084D 	    PUSHAB  NEWRECORD+106					      ; 1906

				       08  DD 00850 	    PUSHL   #8							      ;

		         6A	       02  FB 00852 	    CALLS   #2, MOVEQ_FILLED					      ;

				  BC   AB  9F 00855 	    PUSHAB  NEWRECORD+115					      ; 1907

				       10  DD 00858 	    PUSHL   #16							      ;

		         6A	       02  FB 0085A 	    CALLS   #2, MOVEQ_FILLED					      ;

				  CD   AB  9F 0085D 	    PUSHAB  NEWRECORD+132					      ; 1911

				       10  DD 00860 	    PUSHL   #16							      ;

		         6A	       02  FB 00862 	    CALLS   #2, MOVEQ_FILLED					      ;

				  DE   AB  9F 00865 	    PUSHAB  NEWRECORD+149					      ; 1912

				       08  DD 00868 	    PUSHL   #8							      ;

		         6A	       02  FB 0086A 	    CALLS   #2, MOVEQ_FILLED					      ;

				  E7   AB  9F 0086D 	    PUSHAB  NEWRECORD+158					      ; 1913

				       10  DD 00870 	    PUSHL   #16							      ;

		         6A	       02  FB 00872 	    CALLS   #2, MOVEQ_FILLED					      ;

		         69	       00  FB 00875 	    CALLS   #0, OUT_QUEUE					      ; 1917

		    F8   AB	       50  90 00878 	    MOVB    R0, NEWRECORD+175					      ;

				  F9   AB  9F 0087C 	    PUSHAB  NEWRECORD+176					      ; 1921

				       06  DD 0087F 	    PUSHL   #6							      ;

		         6A	       02  FB 00881 	    CALLS   #2, MOVEQ_FILLED					      ;

		         69	       00  FB 00884 	    CALLS   #0, OUT_QUEUE					      ; 1927

				       50  D5 00887 	    TSTL    R0							      ;

				       05  12 00889 	    BNEQ    1$							      ;

		         6B	       01  CE 0088B 	    MNEGL   #1, NEWRECORD+183					      ; 1929

				       09  11 0088E 	    BRB     2$							      ; 1926

				       5B  DD 00890 1$:     PUSHL   R11							      ; 1931

				       04  DD 00892 	    PUSHL   #4							      ;

		  0000G  CF	       02  FB 00894 	    CALLS   #2, MOVEQ						      ;

				  04   AB  9F 00899 2$:     PUSHAB  NEWRECORD+187					      ; 1936

				       06  DD 0089C 	    PUSHL   #6							      ;

		         6A	       02  FB 0089E 	    CALLS   #2, MOVEQ_FILLED					      ;

		  FF49   CB	       01  90 008A1 	    MOVB    #1, NEWRECORD					      ; 1940

		    0B   AB	  9B   8F  90 008A6 	    MOVB    #-101, NEWRECORD+194				      ; 1941

		         7E	  C3   8F  9A 008AB 	    MOVZBL  #195, -(SP)						      ; 1942

				0000'  CF  9F 008AF 	    PUSHAB  RND$_DESC						      ; 1812

		  FEAB   CA	       02  FB 008B3 	    CALLS   #2, ACCESS_FILE					      ; 1942

		         52	       50  D0 008B8 	    MOVL    R0, STATUS						      ;

		         1D	       52  E9 008BB 	    BLBC    STATUS, 3$						      ;

				       06  DD 008BE 	    PUSHL   #6							      ; 1944

				FE87   CB  9F 008C0 	    PUSHAB  OLDRECORD+2						      ; 1945

				FF4B   CB  9F 008C4 	    PUSHAB  NEWRECORD+2						      ; 1944

		  00EE   CA	       03  FB 008C8 	    CALLS   #3, MODIFY_FILE					      ;

		         52	       50  D0 008CD 	    MOVL    R0, STATUS						      ;

				0000'  CF  9F 008D0 	    PUSHAB  FILEFAB						      ; 1947

	      00000000G  9F	       01  FB 008D4 	    CALLS   #1, @#SYS$CLOSE					      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 26-4

; Digital Equipment Corporation

;

		         50	       52  D0 008DB 3$:     MOVL    STATUS, R0						      ; 1948

					   04 008DE 	    RET     							      ; 1812



; Routine Size:  246 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 27

; Digital Equipment Corporation

;

;	1950	GLOBAL ROUTINE LINEDEFINE=

;	1951	

;	1952	!++

;	1953	! FUNCTIONAL DESCRIPTION:

;	1954	!

;	1955	!	LINEDEFINE  TAKES DATA FROM THE PARAMETER QUEUE AND

;	1956	!	BUILDS A LINE CONFIGURATION RECORD. THE RECORD IS

;	1957	!	THEN ADDED TO THE CONFIGURATION FILE.

;	1958	!

;	1959	! FORMAL PARAMETERS:

;	1960	!

;	1961	!	NONE

;	1962	!

;	1963	! IMPLICIT INPUTS:

;	1964	!

;	1965	!	NONE

;	1966	!

;	1967	! IMPLICIT OUTPUTS:

;	1968	!

;	1969	!	NONE

;	1970	!

;	1971	! ROUTINE VALUE:

;	1972	! COMPLETION CODES:

;	1973	!

;	1974	!	FAILS ONLY ON AN RMS FAILURE

;	1975	!

;	1976	! SIDE EFFECTS:

;	1977	!

;	1978	!	NONE

;	1979	!

;	1980	!--

;	1981	

;	1982	    BEGIN

;	1983	    LOCAL

;	1984		STATUS;

;	1985	     EXTERNAL

;	1986		LINE_CONFIG:BLOCKVECTOR[LINETYPES,LINE_BLOCKSIZE,BYTE];

;	1987	

;	1988	    !

;	1989	    !MOVE LINE NAME

;	1990	    !

;	1991	

;	1992	    MOVEQ_FILLED(LID$S_NAME,NEWRECORD[LID$B_NAME]);

;	1993	

;	1994	!

;	1995	    !VALIDATE LINE TYPE

;	1996	    !

;	1997	    MOVEQ_FILLED(LID$S_TYPE,NEWRECORD[LID$B_TYPE]);

;	1998	    !

;	1999	    !TEXT MUST MATCH LEGAL TYPES OF DEVICE

;	2000	    !

;	2001	 

;	2002	    STATUS=FALSE;		!ASSUME TEXT WILL BE INVALID

;	2003	    INCR DEX FROM 0 TO LINETYPES-1 DO

;	2004		IF



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 27-1

; Digital Equipment Corporation

;

;	2005		    CH$EQL(.NEWRECORD[LID$B_TYPE],

;	2006				NEWRECORD[LID$T_TYPE],

;	2007				.LINE_CONFIG[.DEX,DEVICE_NAMESIZE],

;	2008				LINE_CONFIG[.DEX,DEVICE_NAME])

;	2009		THEN

;	2010		    BEGIN

;	2011		    STATUS=TRUE;

;	2012		    NEWRECORD[LID$B_CODE]=.LINE_CONFIG[.DEX,DEVICE_CODE];

;	2013		    EXITLOOP

;	2014		    END;

;	2015	    IF NOT .STATUS 

;	2016	    THEN

;	2017		BEGIN

;	2018		FAOOUT(ERRMSG_LINETYP);

;	2019		RETURN FALSE

;	2020		END;

;	2021	

;	2022	    !

;	2023	    !+

;	2024	    !MOVE CONTROLLER

;	2025	 

;	2026		NEWRECORD[LID$B_CNTRL]=OUT_QUEUE();

;	2027	    !+

;	2028	    !INITIALIZE LINENUMBER

;	2029	

;	2030		NEWRECORD[LID$B_LINE]=OUT_QUEUE();

;	2031	

;	2032	    !+

;	2033	    !INITIALIZE LINE ADDRESS

;	2034	

;	2035		NEWRECORD[LID$B_ADDRESS]=OUT_QUEUE();

;	2036	

;	2037	

;	2038	    !

;	2039	    !MOVE NODE NAME

;	2040	    !

;	2041	    

;	2042		MOVEQ_FILLED(LID$S_NODE,NEWRECORD[LID$B_NODE]);

;	2043	

;	2044	!+

;	2045	!MOVE BUFFERSIZE

;	2046	

;	2047	    NEWRECORD[LID$W_BUFSIZE]=OUT_QUEUE();

;	2048	

;	2049	!+

;	2050	!MOVE NUMBER OF BUFFERS TO ALLOCATE  

;	2051	

;	2052	    NEWRECORD[LID$B_NUMBUF]=OUT_QUEUE();

;	2053	    !+

;	2054	    !INITIALIZE CHARACTERISTICS

;	2055	

;	2056		NEWRECORD[LID$W_CHAR]=OUT_QUEUE();

;	2057	

;	2058	    !+

;	2059	    !ADD MOP TIMEOUT CONSTANT 



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 27-2

; Digital Equipment Corporation

;

;	2060	

;	2061		NEWRECORD[LID$B_TIMEOUT]=OUT_QUEUE();

;	2062	    !

;	2063	    !ADD THIS RECORD TO FILE

;	2064	    !

;	2065	

;	2066	    NEWRECORD[LID$B_USE]=TRUE;

;	2067	    NEWRECORD[LID$B_IDENT]=SECURITY_CODE;

;	2068	    IF NOT (STATUS=ACCESS_FILE(LID$_DESC,LID$C_SIZE)) 

;	2069	    THEN RETURN .STATUS;

;	2070	

;	2071	!+

;	2072	!ADD NEW RECORD TO DATABASE

;	2073	    STATUS=MODIFY_FILE(NEWRECORD[LID$T_NAME],

;	2074				OLDRECORD[LID$T_NAME],

;	2075				LID$S_NAME);

;	2076	    $CLOSE(FAB=FILEFAB);

;	2077	    RETURN .STATUS

;	2078	    END;







							    .GLOBL  LINE_CONFIG



					 0E7C 008DF 	    .ENTRY  LINEDEFINE, Save R2,R3,R4,R5,R6,R9,R10,R11		      ; 1950

		         59	F870   CF  9E 008E1 	    MOVAB   MOVEQ_FILLED, R9					      ;

		         5A	0000G  CF  9E 008E6 	    MOVAB   OUT_QUEUE, R10					      ;

		         5B	0000'  CF  9E 008EB 	    MOVAB   NEWRECORD+18, R11					      ;

				  EF   AB  9F 008F0 	    PUSHAB  NEWRECORD+1						      ; 1992

				       10  DD 008F3 	    PUSHL   #16							      ;

		         69	       02  FB 008F5 	    CALLS   #2, MOVEQ_FILLED					      ;

				       5B  DD 008F8 	    PUSHL   R11							      ; 1997

				       05  DD 008FA 	    PUSHL   #5							      ;

		         69	       02  FB 008FC 	    CALLS   #2, MOVEQ_FILLED					      ;

				       55  7C 008FF 	    CLRQ    DEX							      ; 2003

		         51	       6B  9A 00901 1$:     MOVZBL  NEWRECORD+18, R1					      ; 2005

	   54	         55	       07  C5 00904 	    MULL3   #7, DEX, R4						      ; 2007

		         50	0000GCF44  9A 00908 	    MOVZBL  LINE_CONFIG+1[R4], R0				      ;

	   00	    01   AB	       51  2D 0090E 	    CMPC5   R1, NEWRECORD+19, #0, R0, LINE_CONFIG+2[R4]		      ; 2005

		  0000GCF44	       50     00913									      ;

				       0C  12 00918 	    BNEQ    2$							      ;

		         56	       01  D0 0091A 	    MOVL    #1, STATUS						      ; 2011

		    06   AB	0000GCF44  90 0091D 	    MOVB    LINE_CONFIG[R4], NEWRECORD+24			      ; 2012

				       04  11 00924 	    BRB     3$							      ; 2013

	   D7	         55	       0E  F3 00926 2$:     AOBLEQ  #14, DEX, 1$					      ; 2003

		         0B	       56  E8 0092A 3$:     BLBS    STATUS, 4$						      ; 2015

				0000'  CF  9F 0092D 	    PUSHAB  ERRMSG_LINETYP					      ; 1950

		  00B2   C9	       01  FB 00931 	    CALLS   #1, FAOOUT						      ; 2018

				       73  11 00936 	    BRB     6$							      ; 2019

		         6A	       00  FB 00938 4$:     CALLS   #0, OUT_QUEUE					      ; 2026

		    07   AB	       50  90 0093B 	    MOVB    R0, NEWRECORD+25					      ;

		         6A	       00  FB 0093F 	    CALLS   #0, OUT_QUEUE					      ; 2030

		    08   AB	       50  90 00942 	    MOVB    R0, NEWRECORD+26					      ;

		         6A	       00  FB 00946 	    CALLS   #0, OUT_QUEUE					      ; 2035

		    09   AB	       50  90 00949 	    MOVB    R0, NEWRECORD+27					      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 27-3

; Digital Equipment Corporation

;

				  0C   AB  9F 0094D 	    PUSHAB  NEWRECORD+30					      ; 2042

				       06  DD 00950 	    PUSHL   #6							      ;

		         69	       02  FB 00952 	    CALLS   #2, MOVEQ_FILLED					      ;

		         6A	       00  FB 00955 	    CALLS   #0, OUT_QUEUE					      ; 2047

		    13   AB	       50  B0 00958 	    MOVW    R0, NEWRECORD+37					      ;

		         6A	       00  FB 0095C 	    CALLS   #0, OUT_QUEUE					      ; 2052

		    15   AB	       50  90 0095F 	    MOVB    R0, NEWRECORD+39					      ;

		         6A	       00  FB 00963 	    CALLS   #0, OUT_QUEUE					      ; 2056

		    0A   AB	       50  B0 00966 	    MOVW    R0, NEWRECORD+28					      ;

		         6A	       00  FB 0096A 	    CALLS   #0, OUT_QUEUE					      ; 2061

		    16   AB	       50  90 0096D 	    MOVB    R0, NEWRECORD+40					      ;

		    EE   AB	       01  90 00971 	    MOVB    #1, NEWRECORD					      ; 2066

		    17   AB	  9B   8F  90 00975 	    MOVB    #-101, NEWRECORD+41					      ; 2067

				       2A  DD 0097A 	    PUSHL   #42							      ; 2068

				0000'  CF  9F 0097C 	    PUSHAB  LID$_DESC						      ; 1950

		  FEAB   C9	       02  FB 00980 	    CALLS   #2, ACCESS_FILE					      ; 2068

		         56	       50  D0 00985 	    MOVL    R0, STATUS						      ;

		         1C	       56  E9 00988 	    BLBC    STATUS, 5$						      ;

				       10  DD 0098B 	    PUSHL   #16							      ; 2073

				FF2C   CB  9F 0098D 	    PUSHAB  OLDRECORD+2						      ; 2074

				  F0   AB  9F 00991 	    PUSHAB  NEWRECORD+2						      ; 2073

		  00EE   C9	       03  FB 00994 	    CALLS   #3, MODIFY_FILE					      ;

		         56	       50  D0 00999 	    MOVL    R0, STATUS						      ;

				0000'  CF  9F 0099C 	    PUSHAB  FILEFAB						      ; 2076

	      00000000G  9F	       01  FB 009A0 	    CALLS   #1, @#SYS$CLOSE					      ;

		         50	       56  D0 009A7 5$:     MOVL    STATUS, R0						      ; 2077

					   04 009AA 	    RET     							      ;

				       50  D4 009AB 6$:     CLRL    R0							      ; 1950

					   04 009AD 	    RET     							      ;



; Routine Size:  207 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 28

; Digital Equipment Corporation

;

;	2079	    GLOBAL ROUTINE LOCALDEFINE=

;	2080	

;	2081	!++

;	2082	! FUNCTIONAL DESCRIPTION:

;	2083	!

;	2084	!	LOCALDEFINE BUILDS A CONFIGURATION RECORD FROM THE

;	2085	!	PARAMETER QUEUE AND ADDS IT TO THE LOCAL NODE

;	2086	!	CONFIGURATION FILE.

;	2087	!

;	2088	! FORMAL PARAMETERS:

;	2089	!

;	2090	!	NONE

;	2091	!

;	2092	! IMPLICIT INPUTS:

;	2093	!

;	2094	!	NONE

;	2095	!

;	2096	! IMPLICIT OUTPUTS:

;	2097	!

;	2098	!	NONE

;	2099	!

;	2100	! ROUTINE VALUE:

;	2101	! COMPLETION CODES:

;	2102	!

;	2103	!	FAILS ONLY ON RMS FAILURE

;	2104	!

;	2105	! SIDE EFFECTS:

;	2106	!

;	2107	!	NONE

;	2108	!

;	2109	!--

;	2110	

;	2111		BEGIN

;	2112		LOCAL

;	2113		    STATUS;

;	2114	!+

;	2115	!MOVE NODE NAME TO RECORD BUFFER

;	2116	!+

;	2117	    MOVEQ_FILLED(LND$S_NAME,NEWRECORD[LND$B_NAME]);

;	2118	!+

;	2119	!MOVE LOCAL NODE NUMBER

;	2120	!+

;	2121	    NEWRECORD[LND$W_NUMBER]=BINARY_EXTEND(OUT_QUEUE());

;	2122	!+

;	2123	!MOVE MAXIMUM NUMBER OF LOGICAL LINES

;	2124	!+

;	2125	    NEWRECORD[LND$B_MAXLINKS]=OUT_QUEUE();

;	2126	!+

;	2127	!MOVE MAX NUMBER NODES CONNECTED

;	2128	!+

;	2129	    NEWRECORD[LND$B_MAXNODES]=OUT_QUEUE();

;	2130	!+

;	2131	!SET THE FILES USE BYTE

;	2132	

;	2133		NEWRECORD[LND$B_USE]=TRUE;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 28-1

; Digital Equipment Corporation

;

;	2134		NEWRECORD[LND$B_IDENT]=SECURITY_CODE;

;	2135	!+

;	2136	!OPEN THE FILE LOCALNODE.DAT

;	2137	!+

;	2138		ACCESS_FILE(LND$_DESC,LND$C_SIZE);

;	2139	!+

;	2140	!

;	2141	!TRY AND READ A RECORD AND UPDATE IT APPROPRIATLY

;	2142	!+

;	2143		SELECTONEU  READ_RECORD() OF

;	2144		    SET

;	2145		    [RMS$_NORMAL]:

;	2146			UPDATE_RECORD(NEWRECORD);

;	2147		    [OTHERWISE]:

;	2148			BEGIN

;	2149			$DISCONNECT(RAB=FILERAB);

;	2150			$CONNECT(RAB=FILERAB);

;	2151			WRITE_RECORD()

;	2152			END;

;	2153		    TES;

;	2154		$DISCONNECT(RAB=FILERAB);

;	2155		$CLOSE(FAB=FILEFAB);

;	2156		RETURN TRUE

;	2157		END;







							    .GLOBL  SYS$DISCONNECT



					 0F04 009AE 	    .ENTRY  LOCALDEFINE, Save R2,R8,R9,R10,R11			      ; 2079

		         58	0000G  CF  9E 009B0 	    MOVAB   OUT_QUEUE, R8					      ;

		         59 00000000G  9F  9E 009B5 	    MOVAB   @#SYS$DISCONNECT, R9				      ;

		         5A	0000'  CF  9E 009BC 	    MOVAB   FILERAB, R10					      ;

		         5B	0000'  CF  9E 009C1 	    MOVAB   NEWRECORD, R11					      ;

				  01   AB  9F 009C6 	    PUSHAB  NEWRECORD+1						      ; 2117

				       06  DD 009C9 	    PUSHL   #6							      ;

		  F785   CF	       02  FB 009CB 	    CALLS   #2, MOVEQ_FILLED					      ;

		         68	       00  FB 009D0 	    CALLS   #0, OUT_QUEUE					      ; 2121

				       50  DD 009D3 	    PUSHL   R0							      ;

		  0000G  CF	       01  FB 009D5 	    CALLS   #1, BINARY_EXTEND					      ;

		    08   AB	       50  B0 009DA 	    MOVW    R0, NEWRECORD+8					      ;

		         68	       00  FB 009DE 	    CALLS   #0, OUT_QUEUE					      ; 2125

		    0A   AB	       50  90 009E1 	    MOVB    R0, NEWRECORD+10					      ;

		         68	       00  FB 009E5 	    CALLS   #0, OUT_QUEUE					      ; 2129

		    0B   AB	       50  90 009E8 	    MOVB    R0, NEWRECORD+11					      ;

		         6B	       01  90 009EC 	    MOVB    #1, NEWRECORD					      ; 2133

		    0C   AB	  9B   8F  90 009EF 	    MOVB    #-101, NEWRECORD+12					      ; 2134

				       0D  DD 009F4 	    PUSHL   #13							      ; 2138

				0000'  CF  9F 009F6 	    PUSHAB  LND$_DESC						      ; 2079

		  F601   CF	       02  FB 009FA 	    CALLS   #2, ACCESS_FILE					      ; 2138

		  F6CC   CF	       00  FB 009FF 	    CALLS   #0, READ_RECORD					      ; 2143

		         52	       50  D0 00A04 	    MOVL    R0, R2						      ;

	      00010001   8F	       52  D1 00A07 	    CMPL    R2, #65537						      ;

				       09  12 00A0E 	    BNEQ    1$							      ;

				       5B  DD 00A10 	    PUSHL   R11							      ; 2146



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 28-2

; Digital Equipment Corporation

;

		  F67E   CF	       01  FB 00A12 	    CALLS   #1, UPDATE_RECORD					      ;

				       13  11 00A17 	    BRB     2$							      ; 2143

				       5A  DD 00A19 1$:     PUSHL   R10							      ; 2149

		         69	       01  FB 00A1B 	    CALLS   #1, SYS$DISCONNECT					      ;

				       5A  DD 00A1E 	    PUSHL   R10							      ; 2150

	      00000000G  9F	       01  FB 00A20 	    CALLS   #1, @#SYS$CONNECT					      ;

		  F6ED   CF	       00  FB 00A27 	    CALLS   #0, WRITE_RECORD					      ; 2151

				       5A  DD 00A2C 2$:     PUSHL   R10							      ; 2154

		         69	       01  FB 00A2E 	    CALLS   #1, SYS$DISCONNECT					      ;

				  B0   AA  9F 00A31 	    PUSHAB  FILEFAB						      ; 2155

	      00000000G  9F	       01  FB 00A34 	    CALLS   #1, @#SYS$CLOSE					      ;

		         50	       01  D0 00A3B 	    MOVL    #1, R0						      ; 2156

					   04 00A3E 	    RET     							      ; 2079



; Routine Size:  145 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 29

; Digital Equipment Corporation

;

;	2158	GLOBAL ROUTINE RECORDPURGE=

;	2159	

;	2160	!++

;	2161	! FUNCTIONAL DESCRIPTION:

;	2162	!

;	2163	!	RECORDPURGE FINDS A PARTICULAR RECORD IN A CONFIGURATION

;	2164	!	FILE AND MARKS IT EMPTY(NOT IN USE).

;	2165	

;	2166	!

;	2167	! FORMAL PARAMETERS:

;	2168	!

;	2169	!	NONE

;	2170	!

;	2171	! IMPLICIT INPUTS:

;	2172	!

;	2173	!	FLAGS:LONGWORD INDICATING PARAMETERS ENCOUNTERED DURING

;	2174	!		PARSE

;	2175	!

;	2176	! IMPLICIT OUTPUTS:

;	2177	!

;	2178	!	NONE

;	2179	!

;	2180	! ROUTINE VALUE:

;	2181	! COMPLETION CODES:

;	2182	!

;	2183	!	FAILS ON RMS FAILURE OR OR ON FAILURE TO FIND 

;	2184	!	DESIRED DATABASE RECORD

;	2185	!

;	2186	! SIDE EFFECTS:

;	2187	!

;	2188	!	NONE

;	2189	!

;	2190	!--

;	2191	    BEGIN

;	2192	    LOCAL

;	2193		FILE_DESC,

;	2194		NEWKEY,

;	2195		OLDKEY,

;	2196		KEYSIZE;

;	2197	

;	2198	    SELECTONEU .FLAGS OF

;	2199		SET

;	2200		[DEF$M_NODE]:

;	2201		    BEGIN

;	2202		    FILE_DESC=RND$_DESC;

;	2203		    NEWKEY=NEWRECORD[RND$T_NAME];

;	2204		    OLDKEY=OLDRECORD[RND$T_NAME];

;	2205		    KEYSIZE=RND$S_NAME;

;	2206	    	    MOVEQ_FILLED(.KEYSIZE,.NEWKEY-1);

;	2207		    END;

;	2208		[DEF$M_LINE]:

;	2209		    BEGIN

;	2210		    FILE_DESC=LID$_DESC;

;	2211	

;	2212		    !+



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 29-1

; Digital Equipment Corporation

;

;	2213		    !DETERMINE TYPE OF LINEID SUPPLIED

;	2214	

;	2215			CASE OUT_QUEUE() FROM STANDARD_LINEID TO TEXT_LINEID OF

;	2216			    SET

;	2217			    [STANDARD_LINEID]:

;	2218				!+

;	2219				!STANDARD LINEID

;	2220	

;	2221				    BEGIN

;	2222				    NEWKEY=NEWRECORD[LID$B_CODE];

;	2223				    OLDKEY=OLDRECORD[LID$B_CODE];

;	2224				    KEYSIZE=4;

;	2225				    MOVEQ(.KEYSIZE,.NEWKEY);

;	2226				    END;

;	2227		    	    [TEXT_LINEID]:

;	2228		    	        !+

;	2229		    	        !TEXT LINEID

;	2230	

;	2231				    BEGIN

;	2232		    		    NEWKEY=NEWRECORD[LID$T_NAME];

;	2233		    		    OLDKEY=OLDRECORD[LID$T_NAME];

;	2234		    		    KEYSIZE=LID$S_NAME;

;	2235				    MOVEQ_FILLED(.KEYSIZE,.NEWKEY-1)

;	2236				    END;

;	2237	 		    TES;

;	2238		        END;

;	2239		[DEF$M_OBJECT]:

;	2240		    BEGIN

;	2241		    FILE_DESC=ODB$_DESC;

;	2242		    NEWKEY=NEWRECORD[ODB$T_NAME];

;	2243		    OLDKEY=OLDRECORD[ODB$T_NAME];

;	2244		    KEYSIZE=ODB$S_NAME;

;	2245	    	    MOVEQ_FILLED(.KEYSIZE,.NEWKEY-1);

;	2246		    END;

;	2247		TES;

;	2248	    IF NOT OPEN_FILE(.FILE_DESC)

;	2249	    THEN

;	2250		  RETURN FALSE;

;	2251	

;	2252	    !

;	2253	    !TRY AND FIND THE RECORD TO DELETE

;	2254	    !

;	2255	

;	2256	    IF

;	2257		MATCHKEY(.KEYSIZE,.NEWKEY,.OLDKEY,)

;	2258	    THEN

;	2259		BEGIN

;	2260		OLDUSE=FALSE;

;	2261		UPDATE_RECORD(OLDRECORD);

;	2262		$CLOSE(FAB=FILEFAB);

;	2263		RETURN TRUE

;	2264		END;

;	2265	    END;







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 29-2

; Digital Equipment Corporation

;







					 087C 00A3F 	    .ENTRY  RECORDPURGE, Save R2,R3,R4,R5,R6,R11		      ; 2158

		         5B	0000'  CF  9E 00A41 	    MOVAB   NEWRECORD+2, R11					      ;

		         56	0000G  CF  D0 00A46 	    MOVL    FLAGS, R6						      ; 2198

		         01	       56  D1 00A4B 	    CMPL    R6, #1						      ;

				       12  12 00A4E 	    BNEQ    1$							      ;

		         55	0000'  CF  9E 00A50 	    MOVAB   RND$_DESC, FILE_DESC				      ; 2158

		         52	       6B  9E 00A55 	    MOVAB   NEWRECORD+2, NEWKEY					      ; 2203

		         53	FF3C   CB  9E 00A58 	    MOVAB   OLDRECORD+2, OLDKEY					      ; 2204

		         54	       06  D0 00A5D 	    MOVL    #6, KEYSIZE						      ; 2205

				       50  11 00A60 	    BRB     6$							      ; 2206

		         02	       56  D1 00A62 1$:     CMPL    R6, #2						      ; 2198

				       36  12 00A65 	    BNEQ    5$							      ;

		         55	0000'  CF  9E 00A67 	    MOVAB   LID$_DESC, FILE_DESC				      ; 2158

		  0000G  CF	       00  FB 00A6C 	    CALLS   #0, OUT_QUEUE					      ; 2215

	   01	         01	       50  CF 00A71 	    CASEL   R0, #1, #1						      ;

		       001B	     0004     00A75 2$:     .WORD   3$-2$,-						      ;

								    4$-2$						      ;

		         52	  16   AB  9E 00A79 3$:     MOVAB   NEWRECORD+24, NEWKEY				      ; 2222

		         53	FF52   CB  9E 00A7D 	    MOVAB   OLDRECORD+24, OLDKEY				      ; 2223

		         54	       04  D0 00A82 	    MOVL    #4, KEYSIZE						      ; 2224

				       52  DD 00A85 	    PUSHL   NEWKEY						      ; 2225

				       54  DD 00A87 	    PUSHL   KEYSIZE						      ;

		  0000G  CF	       02  FB 00A89 	    CALLS   #2, MOVEQ						      ;

				       2C  11 00A8E 	    BRB     7$							      ; 2215

		         52	       6B  9E 00A90 4$:     MOVAB   NEWRECORD+2, NEWKEY					      ; 2232

		         53	FF3C   CB  9E 00A93 	    MOVAB   OLDRECORD+2, OLDKEY					      ; 2233

		         54	       10  D0 00A98 	    MOVL    #16, KEYSIZE					      ; 2234

				       15  11 00A9B 	    BRB     6$							      ; 2235

		         04	       56  D1 00A9D 5$:     CMPL    R6, #4						      ; 2198

				       1A  12 00AA0 	    BNEQ    7$							      ;

		         55	0000'  CF  9E 00AA2 	    MOVAB   ODB$_DESC, FILE_DESC				      ; 2158

		         52	       6B  9E 00AA7 	    MOVAB   NEWRECORD+2, NEWKEY					      ; 2242

		         53	FF3C   CB  9E 00AAA 	    MOVAB   OLDRECORD+2, OLDKEY					      ; 2243

		         54	       08  D0 00AAF 	    MOVL    #8, KEYSIZE						      ; 2244

				  FF   A2  9F 00AB2 6$:     PUSHAB  -1(NEWKEY)						      ; 2245

				       54  DD 00AB5 	    PUSHL   KEYSIZE						      ;

		  F699   CF	       02  FB 00AB7 	    CALLS   #2, MOVEQ_FILLED					      ;

				       55  DD 00ABC 7$:     PUSHL   FILE_DESC						      ; 2248

		  F7EF   CF	       01  FB 00ABE 	    CALLS   #1, OPEN_FILE					      ;

		         2A	       50  E9 00AC3 	    BLBC    R0, 8$						      ;

				       7E  D4 00AC6 	    CLRL    -(SP)						      ; 2257

				       0C  BB 00AC8 	    PUSHR   #^M<R2,R3>						      ;

				       54  DD 00ACA 	    PUSHL   KEYSIZE						      ;

		  F6D7   CF	       04  FB 00ACC 	    CALLS   #4, MATCHKEY					      ;

		         1C	       50  E9 00AD1 	    BLBC    R0, 8$						      ;

				FF3A   CB  D4 00AD4 	    CLRL    OLDRECORD						      ; 2260

				FF3A   CB  9F 00AD8 	    PUSHAB  OLDRECORD						      ; 2261

		  F5B4   CF	       01  FB 00ADC 	    CALLS   #1, UPDATE_RECORD					      ;

				0000'  CF  9F 00AE1 	    PUSHAB  FILEFAB						      ; 2262

	      00000000G  9F	       01  FB 00AE5 	    CALLS   #1, @#SYS$CLOSE					      ;

		         50	       01  D0 00AEC 	    MOVL    #1, R0						      ; 2263

					   04 00AEF 	    RET     							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 29-3

; Digital Equipment Corporation

;

				       50  D4 00AF0 8$:     CLRL    R0							      ; 2158

					   04 00AF2 	    RET     							      ;



; Routine Size:  180 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 30

; Digital Equipment Corporation

;

;	2266	GLOBAL ROUTINE ALLPURGE=

;	2267	

;	2268	!++

;	2269	! FUNCTIONAL DESCRIPTION:

;	2270	!

;	2271	!	ALLPURGE DELETES AN ENTIRE CONFIGURATION FILE

;	2272	

;	2273	!

;	2274	! FORMAL PARAMETERS:

;	2275	!

;	2276	!	NONE

;	2277	!

;	2278	! IMPLICIT INPUTS:

;	2279	!

;	2280	!	FLAGS:LONGWORD INDICATING PARAMETERS ENCOUNTERED PARSE

;	2281	!

;	2282	! IMPLICIT OUTPUTS:

;	2283	!

;	2284	!	NONE

;	2285	!

;	2286	! ROUTINE VALUE:

;	2287	! COMPLETION CODES:

;	2288	!

;	2289	!	FAILS ONLY IF RMS $ERASE FAILS

;	2290	!

;	2291	! SIDE EFFECTS:

;	2292	!	NONE

;	2293	!

;	2294	!--

;	2295	

;	2296	    BEGIN

;	2297	   

;	2298	    LOCAL

;	2299		STATUS;

;	2300	    SELECTONEU .FLAGS OF

;	2301		SET

;	2302		[DEF$M_LOCAL]:

;	2303		    BEGIN

;	2304		    FILEFAB[FAB$L_FNA]=LND$_FILENAME;

;	2305		    FILEFAB[FAB$B_FNS]=LND$_NAMESIZE

;	2306	            END;

;	2307		[DEF$M_NODE]:

;	2308		    BEGIN

;	2309		    FILEFAB[FAB$L_FNA]=RND$_FILENAME;

;	2310		    FILEFAB[FAB$B_FNS]=RND$_NAMESIZE

;	2311	            END;

;	2312		[DEF$M_OBJECT]:

;	2313		    BEGIN

;	2314		    FILEFAB[FAB$L_FNA]=ODB$_FILENAME;

;	2315		    FILEFAB[FAB$B_FNS]=ODB$_NAMESIZE

;	2316	            END;

;	2317		[DEF$M_LINE]:

;	2318		    BEGIN

;	2319		    FILEFAB[FAB$L_FNA]=LID$_FILENAME;

;	2320		    FILEFAB[FAB$B_FNS]=LID$_NAMESIZE



; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 30-1

; Digital Equipment Corporation

;

;	2321	            END;

;	2322		TES;

;	2323		IF

;	2324		    NOT(STATUS=$ERASE(FAB=FILEFAB))

;	2325		THEN

;	2326		    BEGIN

;	2327		    FAOOUT(ERRMSG_DELERR,FILE_SPEC);

;	2328		    SYS_SERV_ERR(.STATUS)

;	2329		    END;

;	2330		RETURN .STATUS

;	2331		END;







							    .GLOBL  SYS$ERASE



					 0804 00AF3 	    .ENTRY  ALLPURGE, Save R2,R11				      ; 2266

		         5B	0000'  CF  9E 00AF5 	    MOVAB   FILEFAB+44, R11					      ;

		         50	0000G  CF  D0 00AFA 	    MOVL    FLAGS, R0						      ; 2300

		         08	       50  D1 00AFF 	    CMPL    R0, #8						      ;

				       0B  12 00B02 	    BNEQ    1$							      ;

		         6B	0000'  CF  9E 00B04 	    MOVAB   LND$_FILENAME, FILEFAB+44				      ; 2266

		    08   AB	       18  90 00B09 	    MOVB    #24, FILEFAB+52					      ; 2305

				       2E  11 00B0D 	    BRB     4$							      ; 2300

		         01	       50  D1 00B0F 1$:     CMPL    R0, #1						      ;

				       0B  12 00B12 	    BNEQ    2$							      ;

		         6B	0000'  CF  9E 00B14 	    MOVAB   RND$_FILENAME, FILEFAB+44				      ; 2266

		    08   AB	       16  90 00B19 	    MOVB    #22, FILEFAB+52					      ; 2310

				       1E  11 00B1D 	    BRB     4$							      ; 2300

		         04	       50  D1 00B1F 2$:     CMPL    R0, #4						      ;

				       0B  12 00B22 	    BNEQ    3$							      ;

		         6B	0000'  CF  9E 00B24 	    MOVAB   ODB$_FILENAME, FILEFAB+44				      ; 2266

		    08   AB	       15  90 00B29 	    MOVB    #21, FILEFAB+52					      ; 2315

				       0E  11 00B2D 	    BRB     4$							      ; 2300

		         02	       50  D1 00B2F 3$:     CMPL    R0, #2						      ;

				       09  12 00B32 	    BNEQ    4$							      ;

		         6B	0000'  CF  9E 00B34 	    MOVAB   LID$_FILENAME, FILEFAB+44				      ; 2266

		    08   AB	       13  90 00B39 	    MOVB    #19, FILEFAB+52					      ; 2320

				  D4   AB  9F 00B3D 4$:     PUSHAB  FILEFAB						      ; 2324

	      00000000G  9F	       01  FB 00B40 	    CALLS   #1, @#SYS$ERASE					      ;

		         52	       50  D0 00B47 	    MOVL    R0, STATUS						      ;

		         16	       52  E8 00B4A 	    BLBS    STATUS, 5$						      ;

				       6B  DD 00B4D 	    PUSHL   FILEFAB+44						      ; 2327

		         7E	  08   AB  9A 00B4F 	    MOVZBL  FILEFAB+52, -(SP)					      ;

				0000'  CF  9F 00B53 	    PUSHAB  ERRMSG_DELERR					      ; 2266

		  F6AB   CF	       03  FB 00B57 	    CALLS   #3, FAOOUT						      ; 2327

				       52  DD 00B5C 	    PUSHL   STATUS						      ; 2328

		  0000G  CF	       01  FB 00B5E 	    CALLS   #1, SYS_SERV_ERR					      ;

		         50	       52  D0 00B63 5$:     MOVL    STATUS, R0						      ; 2330

					   04 00B66 	    RET     							      ; 2266



; Routine Size:  116 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:02:12	DBB3:[NCP.SRC]NCPEXE.B32;13					Page 31

; Digital Equipment Corporation

;

;	2332	END

;	2333	ELUDOM













;				       PSECT SUMMARY

;

;	Name		 Bytes			       Attributes

;

;  $PLIT$         	  1428  NOWRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $OWN$          	   404    WRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $GLOBAL$       	   156    WRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $CODE$         	  2919  NOWRT,  RD ,  EXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)









;				LIBRARY STATISTICS

;

;					     -------- Symbols --------    Blocks

;	File				     Total    Loaded   Percent      Read

;

;  DBA4:[SYSLIB]STARLET.L32;1		      2688        42         1       146











; Size:		2919 code + 1988 data bytes

; Run Time:	01:16.9

; Elapsed Time:	02:15.6

; Memory Used:	251 pages

; Compilation Complete

