

; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 1

; Digital Equipment Corporation

;

;	0001	MODULE NICE_EXECUTE (	

;	0002			IDENT = 'X01 '

;	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:

;	0027	!	

;	0028	!	THE NETWORK CONTROL PROGRAM(NCP)

;	0029	!

;	0030	! ABSTRACT:

;	0031	!	THIS MODULE EXECUTES NCP COMMANDS THAT REQUIRES

;	0032	!	INTERACTIONS WITH A NICE PROTOCOL OBJECT

;	0033	!

;	0034	! ENVIRONMENT:

;	0035	!

;	0036	! AUTHOR: TOM DOPIRAK	, CREATION DATE: NOVEMBER 2,1977

;	0037	!

;	0038	! MODIFIED BY:

;	0039	!

;	0040	! 	, : VERSION

;	0041	! 01	- 

;	0042	!--

;	0043	!

;	0044	! TABLE OF CONTENTS:

;	0045	!

;	0046	

;	0047	FORWARD ROUTINE

;	0048	    DEATTACH_NICE,		!BREAKS LINK BETWEEN NCP AND NICE

;	0049	    NEW_ATTACH,			!CREATES LINK BETWEEN NICE AND NCP

;	0050	    SETSTATE,			!BUILDS AND SENDS NICE 'SETSTATE' MSG

;	0051	    PARSE,			!PARSES NICE DIALOGUE MESSAGES

;	0052	    OUTPUT_LINEID,		!OUTPUTS A NICE LINE IDENTIFIER

;	0053	    MOVEQ_COUNTED,		!MOVES A COUNTED STRING FROM PARAMETER QUEUE TO A BUFFER

;	0054	    NICE_TEXT,			!RETRUNS COUNTED MSG CORRESPONDING TO A NICE ERROR CODE

;	0055	    MSG_SEARCH,			!RETURNS COUNTER TEXT OF A NICE COUNTER TYPE



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 1-1

; Digital Equipment Corporation

;

;	0056	    COUNTS,			!OUTPUTS STANDARD NICE COUNTER DATABLOCK

;	0057	    OUTPUT_COUNTS,		!CONTROLS READING OF COUNTER DATABLOCKS		

;	0058	    COUNTS_HEADER:NOVALUE,	!OUTPUTS 'SHOW COUNTS' HEADING

;	0059	    BUILD_PREFIX,		!BUILDS COMMON PREFIX ON NICE MESSAGES

;	0060	    STATUS_HEADER:NOVALUE,	!OUTPUTS 'SHOW STATUS' HEADER

;	0061	    OUTPUT_STATUS,		!CONTROLS READING OF STATUS DIALOGUE  MSGS

;	0062	    LOCAL_STATUS,		!OUTPUTS local STATUS MESSAGE 

;	0063	    REMOTE_STATUS,		!OUTPUTS REMOTE STATUS MESSAGE

;	0064	    LINE_STATUS,		!OUTPUTS LINE STATUS MESSAGE

;	0065	    EXTEND_BINARY,		!CONVERTS EXTENSIBLE FIELD TO BINARY

;	0066	    CONVERT_STATE,		!CONVERTS NICE STATE CODE TO ASCII

;	0067	    MATCH_LINECODE,

;	0068	    MOVEQ,

;	0069	    SEND_NICE,

;	0070	    GET_NICE,

;	0071	    SYS_SERV_ERR,

;	0072	    MOVE_LINEID,

;	0073	    ATTACH_NICE,

;	0074	    LOCAL_TO_NODE,

;	0075	    SINGLE_NICE,

;	0076	    NICERSP_DECODE

;	0077		;		!

;	0078	

;	0079	!

;	0080	! INCLUDE FILES:

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

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

;	0316	!

;	0317	

;	0318	!

;	0319	! MACROS:

;	0320	!

;	0321	MACRO

;	0322	!

;	0323		ACP_NOT_MOUNTED=BEGIN

;     M 0324				FAOOUT(ERRMSG_NOACP);

;     M 0325				SYS_SERV_ERR(.STATUS);

;     M 0326				RETURN FALSE

;     M 0327				END%,

;	0328	        END_DIALOGUE=BEGIN

;     M 0329			    DEATTACH_NICE();

;     M 0330			     RETURN FALSE

;     M 0331			     END;%;

;	0332	

;	0333	!

;	0334	! EQUATED SYMBOLS:

;	0335	!

;	0336	BIND

;	0337	!

;	0338	!FAO STRINGS 

;	0339	!

;	0340	    UNDERNUM=CSTRING('_!UB'),

;	0341	!

;	0342	!ERROR MESSAGES

;	0343	!



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 1-2

; Digital Equipment Corporation

;

;	0344	    ERRMSG_IOERR=CSTRING('!/NCP/NICE IO ERROR !/'),

;	0345	    ERRMSG_XMTERR=CSTRING('!/LOOP FAILED, !UW MESSAGE!%S NOT SENT !/'),

;	0346	    ERRMSG_INVDBK=CSTRING('!/IMPROPER DIALOGUE MESSAGE RECEIVED !/'),

;	0347	    ERRMSG_INVLID=CSTRING('!/IMPROPER LINE-ID RECEIVED FROM NICE OBJECT!/'),

;	0348	    ERRMSG_INVCOD=CSTRING('!/INVALID NICE LINE DEVICE CODE RECEIVED!/'),

;	0349	    ERRMSG_INVSTA=CSTRING('!/INVALID STATE RECEIVED FROM NICE OBJECT!/'),

;	0350	    ERRMSG_BADACP=CSTRING('!/UNABLE TO START NETWORK ACP !/'),

;	0351	    ERRMSG_NOACP=CSTRING('!/UNABLE TO COMPLETE NETWORK $ASSIGN!/');

;	0352	!

;	0353	! OWN STORAGE:

;	0354	!

;	0355	

;	0356	!

;	0357	! EXTERNAL REFERENCES:

;	0358	!

;	0359	EXTERNAL

;	0360	    FLAGS,

;	0361	    COMMAND_COUNT;

;	0362	

;	0363	EXTERNAL ROUTINE

;	0364	    MOVE_HOST,				!GETS HOST NAME DURING DLLOAD

;	0365	    STACP,

;	0366	    OUT_QUEUE,

;	0367	    FAOOUT,

;	0368	    MOVEQ_FILLED

;	0369	    ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 2

; Digital Equipment Corporation

;

;	0370	LITERAL

;	0371	    MAXNICE=32,		!MAX SIZE OF NICE MESSAGE SENT TO NICE OBJECT

;	0372	    MAXDATA=256;	!MAX SIZE OF DIALOGUE TO BE RECEIVED

;	0373	OWN

;	0374	    NICEMESSAGE:VECTOR[MAXNICE,BYTE],    !NICE MESSAGES BUILT HERE

;	0375	    NICEDATA:VECTOR[MAXDATA,BYTE],        !DIALOGUE READ IN HERE

;	0376	    CHANNEL:WORD INITIAL(0),        !NUMBER OF ACTIVE PATH TO NICE OR NETACP

;	0377	    INSTATUSBLK:VECTOR[2],    !STATUS BLOCK FOR ALL $QIOW INPUTS

;	0378	    OUTSTATUSBLK:VECTOR[2],    !STATUS BLOCK FOR ALL $QIOW OUTPUTS

;	0379	

;	0380	    !STORAGE FOR ACP CONTROL FUNCTIONS

;	0381	

;	0382	    ACP_CHANNEL:WORD,

;	0383	    NFB:VECTOR[5,BYTE] ,

;	0384	    REMOTENODE:VECTOR[RND$S_NAME+1,BYTE],

;	0385	    ACP:VECTOR[2] INITIAL ('NET0',':'),

;	0386	    NFB_DESC:VECTOR[2] INITIAL(5,NFB),

;	0387	    REMOTENODE_DESC:VECTOR[2] INITIAL(0,REMOTENODE),

;	0388	    ACP_DESC:VECTOR[2] INITIAL(5,ACP)

;	0389	    ;

;	0390	GLOBAL

;	0391	    REMOTE_NODENAME:VECTOR[RND$S_NAME+7,BYTE]

;	0392				INITIAL(BYTE(REP RND$S_NAME OF (0),'::"19="')),

;	0393	    DEST_DESC:VECTOR[2] INITIAL(RND$S_NAME+7,REMOTE_NODENAME),

;	0394	

;	0395	!+

;	0396	!LIST OF KNOWN LINE COUNTED DEVICE MNEUMONICS AND THEIR NICE DEVICE

;	0397	!CODES

;	0398	

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

;	0400				INITIAL(BYTE(0,4,'DP11',' ',

;	0401					2,4,'DU11',' ',

;	0402					4,5,'DL11','E',

;	0403					6,4,'DQ11',' ',

;	0404					8,5,'DA11','A',

;	0405					10,5,'DUP1','1',

;	0406					12,5,'DMC1','1',

;	0407					14,5,'DLV1','1',

;	0408					16,5,'DL11','A',

;	0409					18,4,'KL8J',' ',

;	0410					20,5,'DTE2','0',

;	0411					22,4,'DV11',' ',

;	0412					24,4,'DZ11',' ',

;	0413					28,5,'KDP1','1',

;	0414					30,5,'KDZ1','1'

;	0415					));



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 3

; Digital Equipment Corporation

;

;	0416	!+

;	0417	!MACROS REFERENCING OWN STORAGE

;	0418	

;	0419	MACRO

;	0420	    OUTPUT_IOCOUNT=(OUTSTATUSBLK[0])<16,16>%,

;	0421	    INPUT_IOCOUNT=(INSTATUSBLK[0])<16,16>%,

;	0422	    OUTPUT_IOSTATUS=(OUTSTATUSBLK[0])<0,16>%,

;	0423	    INPUT_IOSTATUS=(INSTATUSBLK[0])<0,16>%,

;	0424	    DIALOGUE_MSGS=(NICEDATA[1])<0,16>%;

;	0425	LITERAL

;	0426	    !+

;	0427	    !POSSIBLE DIRECTIVES IN THE CONTROL VECTOR

;	0428		COUNTED_STRING=1,

;	0429		EXTENSIBLE=2,

;	0430		BYTE_LONG=3,

;	0431		WORD_LONG=4,

;	0432		LINE_ID=5,

;	0433		REPEAT_CODE=6,

;	0434		LONGWORD=7,

;	0435		QUAD_LONG=8;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 4

; Digital Equipment Corporation

;

;	0436	GLOBAL ROUTINE LOOP=

;	0437	

;	0438	!++

;	0439	! FUNCTIONAL DESCRIPTION:

;	0440	!

;	0441	!	LOOP IS CALLED FROM THE  PARSE MODULE TO INITIATE A

;	0442	!	REQUEST FOR A LOOPBACK TEST.

;	0443	!

;	0444	!	LOOP BUILDS A NICE 'TEST' MESSAGE AND TRANSFERS IT 

;	0445	!	THE LOCAL NICE OBJECT FOR IMPLEMENTATION.  THIS ROUTINE

;	0446	!	BUILDS 'LOOP LINE' AND 'LOOP NODE' MESSAGES.

;	0447	!	'LOOP LOCAL' IS TRANSLATED INTO 'LOOP NODE' VIA

;	0448	!	THE CONFIGURATION DATABASE

;	0449	!

;	0450	!	THE ROUTINE LOCAL_TO_NODE   PERFORMS THE 

;	0451	!	'TO NODE NAME' TRANSLATION.

;	0452	!

;	0453	! FORMAL PARAMETERS:

;	0454	!

;	0455	!

;	0456	! IMPLICIT INPUTS:

;	0457	!

;	0458	!	PARAMETERS ACQUIRED BY THE PARSE MODULE ARE KEPT IN

;	0459	!	A DATA QUEUE AND RETURNED INDIVIDUALLY BY OUT_QUEUE.

;	0460	!

;	0461	! IMPLICIT OUTPUTS:

;	0462	!

;	0463	!	NONE

;	0464	!

;	0465	! ROUTINE VALUE:

;	0466	! COMPLETION CODES:

;	0467	!

;	0468	!	NONE

;	0469	!

;	0470	! SIDE EFFECTS:

;	0471	!

;	0472	!	NONE

;	0473	!

;	0474	!--

;	0475	

;	0476	BEGIN

;	0477	LITERAL

;	0478	

;	0479	    ONES=1, 			!'WITH' CODE FOR ONES

;	0480	    ZEROS=0,			!'WITH' CODE FOR ZEROS

;	0481	    MIXED=2,			!'WITH CODE FOR MIXED

;	0482	    NICE_CODE=6,		!CODE OF 'TEST' NICE MESSAGE

;	0483	    OPTION_NODE=0,		!NICE OPTION FOR NODE LOOP

;	0484	    MSGSIZE=14,			!MAXIMUM SIZE OF TEST MESSAGE

;	0485	    RSPSIZE=3;			!SIZE OF RESPONSE MESSAGE

;	0486	LOCAL

;	0487	    TEMP,			!PLACEHOLDER

;	0488	    WORDBUF:WORD,		!BUFFER FOR WORD PARAMETER

;	0489	    STATUS;

;	0490	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 4-1

; Digital Equipment Corporation

;

;	0491	

;	0492	REGISTER

;	0493	    MSGPTR;

;	0494	MAP

;	0495	    FLAGS:BLOCK[1] ;

;	0496	    !+

;	0497	    !INITIALIZE CHARACTER POINTERS

;	0498	

;	0499		MSGPTR=CH$PTR(NICEMESSAGE[0]);

;	0500	    !+

;	0501	    !FILL IN MESSAGE CODE AND OPTION

;	0502		CH$WCHAR_A(NICE_CODE,MSGPTR);

;	0503		CH$WCHAR_A(OPTION_NODE,MSGPTR);	!INCLUDE NODE TYPE LOOPBACK

;	0504	

;	0505	    !+

;	0506	    !IF NODE IS SUPPLIED MOVE IT TO NICEMESSAGE BUFFER

;	0507	

;	0508	    IF

;	0509		.FLAGS[DEF$V_NODE]

;	0510	    THEN

;	0511		MSGPTR=MOVEQ_COUNTED(.MSGPTR);

;	0512	

;	0513	    !CHECK FOR 'LOCAL' OPTION

;	0514	

;	0515	    IF

;	0516		.FLAGS[DEF$V_LOCAL]

;	0517	    THEN

;	0518	

;	0519		!LOCAL LOOPBACK,INCLUDE NAME OF LOCAL NODE

;	0520	

;	0521		IF

;	0522		    (MSGPTR=LOCAL_TO_NODE(.MSGPTR)) EQL 0

;	0523	        THEN

;	0524		    RETURN FALSE;

;	0525	

;	0526	!+

;	0527	!    	MOVE "TIMES  TO LOOP" OR COUNT DATA

;	0528	

;	0529	

;	0530	    WORDBUF=OUT_QUEUE();

;	0531	    MSGPTR=CH$MOVE(2,WORDBUF,.MSGPTR);

;	0532	

;	0533	!+

;	0534	!FIND AND STORE TYPE OF TEXT CODE

;	0535	

;	0536	    SELECTONEU OUT_QUEUE() OF

;	0537		SET

;	0538		[ZEROS]:CH$WCHAR_A(ZEROS,MSGPTR);

;	0539		[ONES]:CH$WCHAR_A(ONES,MSGPTR);

;	0540		[MIXED]:CH$WCHAR_A(MIXED,MSGPTR);

;	0541		TES;

;	0542	

;	0543	!+

;	0544	!    SET BLOCKSIZE

;	0545	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 4-2

; Digital Equipment Corporation

;

;	0546	

;	0547	    WORDBUF=OUT_QUEUE();

;	0548	    MSGPTR=CH$MOVE(2,WORDBUF,.MSGPTR);

;	0549	

;	0550	!+

;	0551	!GET PATH TO NICE OBJECT

;	0552	    IF

;	0553		NOT (STATUS=ATTACH_NICE())

;	0554	    THEN

;	0555		ACP_NOT_MOUNTED();

;	0556	

;	0557	    !SEND THE MESSAGE TO THE NICE PROCESS AND WAIT FOR RESPONSE

;	0558	

;	0559	    IF

;	0560	        SINGLE_NICE(CH$DIFF(.MSGPTR,NICEMESSAGE[0]),RSPSIZE)

;	0561	

;	0562	    !TELL THE USER OUTCOME OF TEST

;	0563	

;	0564	    THEN

;	0565		IF

;	0566		    NOT NICERSP_DECODE(RSPSIZE) AND

;	0567		    (.DIALOGUE_MSGS NEQ 0)

;	0568		THEN

;	0569		    FAOOUT(ERRMSG_XMTERR,.DIALOGUE_MSGS);

;	0570	    RETURN

;	0571	    END;





							    .TITLE  NICE_EXECUTE

							    .IDENT  \X01 \



							    .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   4							      ;

					      0007D 	    .ASCII  \_!UB\						      ;

					      00081	    .BLKB   3

					      00084 P.AAJ:  .BYTE   22							      ;

					      00085 	    .ASCII  \!/NCP/NICE IO ERROR !/\				      ;

					      0009B	    .BLKB   1

					      0009C P.AAK:  .BYTE   41							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 4-3

; Digital Equipment Corporation

;

					      0009D 	    .ASCII  \!/LOOP FAILED, !UW MESSAGE!%S NOT SENT !/\		      ;

					      000C6	    .BLKB   2

					      000C8 P.AAL:  .BYTE   39							      ;

					      000C9 	    .ASCII  \!/IMPROPER DIALOGUE MESSAGE RECEIVED !/\		      ;

					      000F0 P.AAM:  .BYTE   46							      ;

					      000F1 	    .ASCII  \!/IMPROPER LINE-ID RECEIVED FROM NICE OBJECT!/\	      ;

					      0011F	    .BLKB   1

					      00120 P.AAN:  .BYTE   42							      ;

					      00121 	    .ASCII  \!/INVALID NICE LINE DEVICE CODE RECEIVED!/\	      ;

					      0014B	    .BLKB   1

					      0014C P.AAO:  .BYTE   43							      ;

					      0014D 	    .ASCII  \!/INVALID STATE RECEIVED FROM NICE OBJECT!/\	      ;

					      00178 P.AAP:  .BYTE   32							      ;

					      00179 	    .ASCII  \!/UNABLE TO START NETWORK ACP !/\			      ;

					      00199	    .BLKB   3

					      0019C P.AAQ:  .BYTE   38							      ;

					      0019D 	    .ASCII  \!/UNABLE TO COMPLETE NETWORK $ASSIGN!/\		      ;

					      001C3	    .BLKB   1



							    .PSECT  $OWN$,NOEXE,2



					      00000 NICEMESSAGE:

							    .BLKB   32

					      00020 NICEDATA:

							    .BLKB   256

					      00120 CHANNEL:.WORD   0							      ;

					      00122	    .BLKB   2

					      00124 INSTATUSBLK:

							    .BLKB   8

					      0012C OUTSTATUSBLK:

							    .BLKB   8

					      00134 ACP_CHANNEL:

							    .BLKB   2

					      00136	    .BLKB   2

					      00138 NFB:    .BLKB   5

					      0013D	    .BLKB   3

					      00140 REMOTENODE:

							    .BLKB   7

					      00147	    .BLKB   1

					      00148 ACP:    .ASCII  \NET0\						      ;

					      0014C 	    .ASCII  \:\<0><0><0>					      ;

					      00150 NFB_DESC:

							    .LONG   5							      ;

					      00154 	    .ADDRESS  NFB						      ;

					      00158 REMOTENODE_DESC:

							    .LONG   0							      ;

					      0015C 	    .ADDRESS  REMOTENODE					      ;

					      00160 ACP_DESC:

							    .LONG   5							      ;

					      00164 	    .ADDRESS  ACP						      ;



							    .PSECT  $GLOBAL$,NOEXE,2



					      00000 REMOTE_NODENAME::

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



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 4-4

; Digital Equipment Corporation

;

					      00006 	    .ASCII  \::"19="\						      ;

					      0000D	    .BLKB   3

					      00010 DEST_DESC::

							    .LONG   13							      ;

					      00014 	    .ADDRESS  REMOTE_NODENAME					      ;

					      00018 LINE_CONFIG::

							    .BYTE   0, 4						      ;

					      0001A 	    .ASCII  \DP11\						      ;

					      0001E 	    .ASCII  \ \							      ;

					      0001F 	    .BYTE   2, 4						      ;

					      00021 	    .ASCII  \DU11\						      ;

					      00025 	    .ASCII  \ \							      ;

					      00026 	    .BYTE   4, 5						      ;

					      00028 	    .ASCII  \DL11\						      ;

					      0002C 	    .ASCII  \E\							      ;

					      0002D 	    .BYTE   6, 4						      ;

					      0002F 	    .ASCII  \DQ11\						      ;

					      00033 	    .ASCII  \ \							      ;

					      00034 	    .BYTE   8, 5						      ;

					      00036 	    .ASCII  \DA11\						      ;

					      0003A 	    .ASCII  \A\							      ;

					      0003B 	    .BYTE   10, 5						      ;

					      0003D 	    .ASCII  \DUP1\						      ;

					      00041 	    .ASCII  \1\							      ;

					      00042 	    .BYTE   12, 5						      ;

					      00044 	    .ASCII  \DMC1\						      ;

					      00048 	    .ASCII  \1\							      ;

					      00049 	    .BYTE   14, 5						      ;

					      0004B 	    .ASCII  \DLV1\						      ;

					      0004F 	    .ASCII  \1\							      ;

					      00050 	    .BYTE   16, 5						      ;

					      00052 	    .ASCII  \DL11\						      ;

					      00056 	    .ASCII  \A\							      ;

					      00057 	    .BYTE   18, 4						      ;

					      00059 	    .ASCII  \KL8J\						      ;

					      0005D 	    .ASCII  \ \							      ;

					      0005E 	    .BYTE   20, 5						      ;

					      00060 	    .ASCII  \DTE2\						      ;

					      00064 	    .ASCII  \0\							      ;

					      00065 	    .BYTE   22, 4						      ;

					      00067 	    .ASCII  \DV11\						      ;

					      0006B 	    .ASCII  \ \							      ;

					      0006C 	    .BYTE   24, 4						      ;

					      0006E 	    .ASCII  \DZ11\						      ;

					      00072 	    .ASCII  \ \							      ;

					      00073 	    .BYTE   28, 5						      ;

					      00075 	    .ASCII  \KDP1\						      ;

					      00079 	    .ASCII  \1\							      ;

					      0007A 	    .BYTE   30, 5						      ;

					      0007C 	    .ASCII  \KDZ1\						      ;

					      00080 	    .ASCII  \1\							      ;



						    LND$_FILENAME=	P.AAA

						    LND$_NAMESIZE=	24

						    RND$_FILENAME=	P.AAB



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 4-5

; Digital Equipment Corporation

;

						    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

						    UNDERNUM=		P.AAI

						    ERRMSG_IOERR=	P.AAJ

						    ERRMSG_XMTERR=	P.AAK

						    ERRMSG_INVDBK=	P.AAL

						    ERRMSG_INVLID=	P.AAM

						    ERRMSG_INVCOD=	P.AAN

						    ERRMSG_INVSTA=	P.AAO

						    ERRMSG_BADACP=	P.AAP

						    ERRMSG_NOACP=	P.AAQ

							    .GLOBL  FLAGS, COMMAND_COUNT, MOVE_HOST, STACP, OUT_QUEUE

							    .GLOBL  FAOOUT, MOVEQ_FILLED



							    .PSECT  $CODE$,NOWRT,2



					 0C7C 00000 	    .ENTRY  LOOP, Save R2,R3,R4,R5,R6,R10,R11			      ; 0436

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

		         5B	0000'  CF  9E 00007 	    MOVAB   NICEMESSAGE, R11					      ;

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

		         56	       6B  9E 0000F 	    MOVAB   NICEMESSAGE, MSGPTR					      ; 0499

		         86	       06  B0 00012 	    MOVW    #6, (MSGPTR)+					      ; 0502

		         0A	0000G  CF  E9 00015 	    BLBC    FLAGS, 1$						      ; 0509

				       56  DD 0001A 	    PUSHL   MSGPTR						      ; 0511

		  0000V  CF	       01  FB 0001C 	    CALLS   #1, MOVEQ_COUNTED					      ;

		         56	       50  D0 00021 	    MOVL    R0, MSGPTR						      ;

	   0C	  0000G  CF	       03  E1 00024 1$:     BBC     #3, FLAGS, 2$					      ; 0516

				       56  DD 0002A 	    PUSHL   MSGPTR						      ; 0522

		  0000V  CF	       01  FB 0002C 	    CALLS   #1, LOCAL_TO_NODE					      ;

		         56	       50  D0 00031 	    MOVL    R0, MSGPTR						      ;

				       74  13 00034 	    BEQL    8$							      ;

		         6A	       00  FB 00036 2$:     CALLS   #0, OUT_QUEUE					      ; 0530

		         6E	       50  B0 00039 	    MOVW    R0, WORDBUF						      ;

	   66	         6E	       02  28 0003C 	    MOVC3   #2, WORDBUF, (MSGPTR)				      ; 0531

		         56	       53  D0 00040 	    MOVL    R3, MSGPTR						      ;

		         6A	       00  FB 00043 	    CALLS   #0, OUT_QUEUE					      ; 0536

				       50  D5 00046 	    TSTL    R0							      ;

				       04  12 00048 	    BNEQ    3$							      ;

				       66  94 0004A 	    CLRB    (MSGPTR)						      ; 0538

				       12  11 0004C 	    BRB     5$							      ;

		         01	       50  D1 0004E 3$:     CMPL    R0, #1						      ; 0536

				       05  12 00051 	    BNEQ    4$							      ;

		         66	       01  90 00053 	    MOVB    #1, (MSGPTR)					      ; 0539

				       08  11 00056 	    BRB     5$							      ;

		         02	       50  D1 00058 4$:     CMPL    R0, #2						      ; 0536

				       05  12 0005B 	    BNEQ    6$							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 4-6

; Digital Equipment Corporation

;

		         66	       02  90 0005D 	    MOVB    #2, (MSGPTR)					      ; 0540

				       56  D6 00060 5$:     INCL    MSGPTR						      ;

		         6A	       00  FB 00062 6$:     CALLS   #0, OUT_QUEUE					      ; 0547

		         6E	       50  B0 00065 	    MOVW    R0, WORDBUF						      ;

	   66	         6E	       02  28 00068 	    MOVC3   #2, WORDBUF, (MSGPTR)				      ; 0548

		         56	       53  D0 0006C 	    MOVL    R3, MSGPTR						      ;

		  0000V  CF	       00  FB 0006F 	    CALLS   #0, ATTACH_NICE					      ; 0553

		         52	       50  D0 00074 	    MOVL    R0, STATUS						      ;

		         12	       52  E8 00077 	    BLBS    STATUS, 7$						      ;

				0000'  CF  9F 0007A 	    PUSHAB  ERRMSG_NOACP					      ; 0436

		  0000G  CF	       01  FB 0007E 	    CALLS   #1, FAOOUT						      ; 0554

				       52  DD 00083 	    PUSHL   STATUS						      ;

		  0000V  CF	       01  FB 00085 	    CALLS   #1, SYS_SERV_ERR					      ;

				       2D  11 0008A 	    BRB     9$							      ;

				       03  DD 0008C 7$:     PUSHL   #3							      ; 0560

		         50	       6B  9E 0008E 	    MOVAB   NICEMESSAGE, R0					      ;

	   7E	         56	       50  C3 00091 	    SUBL3   R0, MSGPTR, -(SP)					      ;

		  0000V  CF	       02  FB 00095 	    CALLS   #2, SINGLE_NICE					      ;

		         1C	       50  E9 0009A 	    BLBC    R0, 9$						      ;

				       03  DD 0009D 	    PUSHL   #3							      ; 0566

		  0000V  CF	       01  FB 0009F 	    CALLS   #1, NICERSP_DECODE					      ;

		         12	       50  E8 000A4 	    BLBS    R0, 9$						      ;

				  21   AB  B5 000A7 	    TSTW    NICEDATA+1						      ; 0567

				       0D  13 000AA 8$:     BEQL    9$							      ;

		         7E	  21   AB  3C 000AC 	    MOVZWL  NICEDATA+1, -(SP)					      ; 0569

				0000'  CF  9F 000B0 	    PUSHAB  ERRMSG_XMTERR					      ; 0436

		  0000G  CF	       02  FB 000B4 	    CALLS   #2, FAOOUT						      ; 0569

				       50  D4 000B9 9$:     CLRL    R0							      ; 0436

					   04 000BB 	    RET     							      ;



; Routine Size:  188 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 5

; Digital Equipment Corporation

;

;	0572	ROUTINE LOCAL_TO_NODE(ADDRESS)=

;	0573	

;	0574	!++

;	0575	! FUNCTIONAL DESCRIPTION:

;	0576	!

;	0577	!	ROUTINE INSERTS THE NAME OF THE LOCAL NODE

;	0578	!	INTO THE CHARACTER STRING DESIGNATED AND

;	0579	!	RETURNS AN UPDATED CHARACTER POINTER

;	0580	!

;	0581	! FORMAL PARAMETERS:

;	0582	!

;	0583	!	ADDRESS:A CHARACTER STRING POINTER,ADDRESS IN WHICH

;	0584	!		TO STORE LOCAL NODE NAME

;	0585	!

;	0586	! IMPLICIT INPUTS:

;	0587	!

;	0588	!	NONE

;	0589	!

;	0590	! IMPLICIT OUTPUTS:

;	0591	!

;	0592	!	NONE

;	0593	!

;	0594	! ROUTINE VALUE:

;	0595	! COMPLETION CODES:

;	0596	!

;	0597	!	AND UPDATED CHARACTER POINTER

;	0598	!

;	0599	! SIDE EFFECTS:

;	0600	!

;	0601	!	NONE

;	0602	!

;	0603	!--

;	0604	

;	0605	BEGIN

;	0606	LOCAL

;	0607	    NODENAME:VECTOR[256,BYTE],

;	0608	    STATUS;

;	0609	OWN

;	0610	    NODENAME_DESC:VECTOR[2] INITIAL(256,0);

;	0611	

;	0612	!+

;	0613	!CONNECT TO NETACP

;	0614	

;	0615	    IF

;	0616		NOT (STATUS=$ASSIGN(CHAN=ACP_CHANNEL,DEVNAM=ACP_DESC))

;	0617	    THEN

;	0618		BEGIN

;	0619		FAOOUT(ERRMSG_NOACP);

;	0620		SYS_SERV_ERR(.STATUS);

;	0621		$DASSGN(CHAN=.ACP_CHANNEL);

;	0622		RETURN 0

;	0623		END;

;	0624	

;	0625	!+

;	0626	!DENOTE ACP FUNCTION IN NFB



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 5-1

; Digital Equipment Corporation

;

;	0627	

;	0628	    NFB[0]=14;

;	0629	

;	0630	!+

;	0631	!SETUP DESCRIPTOR

;	0632	

;	0633	    NODENAME_DESC[1]=NODENAME;

;	0634	!+

;	0635	!REQUEST NODENAMES FROM ACP

;	0636	

;	0637	    IF

;	0638		NOT (STATUS=$QIOW(CHAN=.ACP_CHANNEL,

;     P 0639			FUNC=IO$_ACPCONTROL,

;     P 0640			P1=NFB_DESC,

;     P 0641			IOSB=OUTSTATUSBLK,

;     P 0642			P4=NODENAME_DESC))

;	0643	    THEN

;	0644		BEGIN

;	0645		FAOOUT(ERRMSG_IOERR);

;	0646		SYS_SERV_ERR(.STATUS);

;	0647		$DASSGN(CHAN=.ACP_CHANNEL);

;	0648		RETURN	0

;	0649		END;

;	0650	!+

;	0651	!CHECK IO STATUSBLK FOR FAILURE

;	0652	

;	0653	    IF

;	0654		.OUTPUT_IOSTATUS NEQ SS$_NORMAL

;	0655	    THEN

;	0656		BEGIN

;	0657		FAOOUT(ERRMSG_IOERR);

;	0658		SYS_SERV_ERR(.OUTPUT_IOSTATUS);

;	0659		$DASSGN(CHAN=.ACP_CHANNEL);

;	0660		RETURN 0

;	0661		END;

;	0662	!+

;	0663	!TAKE LOCAL NODE NAME AS FIRST NODE NAME IN RETURNED

;	0664	!BUFFER

;	0665	

;	0666	        ADDRESS=CH$MOVE((.NODENAME<0,8>)+1,NODENAME,.ADDRESS);

;	0667	

;	0668	!+

;	0669	!BREAK LINK TO NETACP

;	0670	

;	0671	    $DASSGN(CHAN=.ACP_CHANNEL);

;	0672	

;	0673	!+

;	0674	!LEAVE ROUTINE RETURN NEW CHARACTER POINTER

;	0675	

;	0676	    RETURN .ADDRESS

;	0677	END;







							    .PSECT  $OWN$,NOEXE,2



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 5-2

; Digital Equipment Corporation

;



					      00168 NODENAME_DESC:

							    .LONG   256, 0						      ;



							    .GLOBL  SYS$ASSIGN, SYS$DASSGN, SYS$QIOW



							    .PSECT  $CODE$,NOWRT,2



					 0C3C 000BC LOCAL_TO_NODE:

							    .WORD   Save R2,R3,R4,R5,R10,R11				      ; 0572

		         5A 00000000G  9F  9E 000BE 	    MOVAB   @#SYS$DASSGN, R10					      ;

		         5B	0000'  CF  9E 000C5 	    MOVAB   ACP_CHANNEL, R11					      ;

		         5E	FF00   CE  9E 000CA 	    MOVAB   -256(SP), SP					      ;

				       7E  7C 000CF 	    CLRQ    -(SP)						      ; 0616

				       5B  DD 000D1 	    PUSHL   R11							      ;

				  2C   AB  9F 000D3 	    PUSHAB  ACP_DESC						      ;

	      00000000G  9F	       04  FB 000D6 	    CALLS   #4, @#SYS$ASSIGN					      ;

		         52	       50  D0 000DD 	    MOVL    R0, STATUS						      ;

		         06	       52  E8 000E0 	    BLBS    STATUS, 1$						      ;

				0000'  CF  9F 000E3 	    PUSHAB  ERRMSG_NOACP					      ; 0572

				       2F  11 000E7 	    BRB     2$							      ; 0619

		    04   AB	       0E  90 000E9 1$:     MOVB    #14, NFB						      ; 0628

		    38   AB	       6E  9E 000ED 	    MOVAB   NODENAME, NODENAME_DESC+4				      ; 0633

				       7E  7C 000F1 	    CLRQ    -(SP)						      ; 0642

				  34   AB  9F 000F3 	    PUSHAB  NODENAME_DESC					      ;

				       7E  7C 000F6 	    CLRQ    -(SP)						      ;

				  1C   AB  9F 000F8 	    PUSHAB  NFB_DESC						      ;

				       7E  7C 000FB 	    CLRQ    -(SP)						      ;

				  F8   AB  9F 000FD 	    PUSHAB  OUTSTATUSBLK					      ;

				       38  DD 00100 	    PUSHL   #56							      ;

		         7E	       6B  3C 00102 	    MOVZWL  ACP_CHANNEL, -(SP)					      ;

				       7E  D4 00105 	    CLRL    -(SP)						      ;

	      00000000G  9F	       0C  FB 00107 	    CALLS   #12, @#SYS$QIOW					      ;

		         52	       50  D0 0010E 	    MOVL    R0, STATUS						      ;

		         0D	       52  E8 00111 	    BLBS    STATUS, 3$						      ; 0638

				0000'  CF  9F 00114 	    PUSHAB  ERRMSG_IOERR					      ; 0572

		  0000G  CF	       01  FB 00118 2$:     CALLS   #1, FAOOUT						      ; 0645

				       52  DD 0011D 	    PUSHL   STATUS						      ; 0646

				       13  11 0011F 	    BRB     4$							      ;

		         01	  F8   AB  B1 00121 3$:     CMPW    OUTSTATUSBLK, #1					      ; 0654

				       1A  13 00125 	    BEQL    5$							      ;

				0000'  CF  9F 00127 	    PUSHAB  ERRMSG_IOERR					      ; 0572

		  0000G  CF	       01  FB 0012B 	    CALLS   #1, FAOOUT						      ; 0657

		         7E	  F8   AB  3C 00130 	    MOVZWL  OUTSTATUSBLK, -(SP)					      ; 0658

		  0000V  CF	       01  FB 00134 4$:     CALLS   #1, SYS_SERV_ERR					      ;

		         7E	       6B  3C 00139 	    MOVZWL  ACP_CHANNEL, -(SP)					      ; 0659

		         6A	       01  FB 0013C 	    CALLS   #1, SYS$DASSGN					      ;

				       19  11 0013F 	    BRB     6$							      ; 0660

		         50	       6E  9A 00141 5$:     MOVZBL  NODENAME, R0					      ; 0666

				       50  D6 00144 	    INCL    R0							      ;

      04   BC	         6E	       50  28 00146 	    MOVC3   R0, NODENAME, @ADDRESS				      ;

		    04   AC	       53  D0 0014B 	    MOVL    R3, ADDRESS						      ;

		         7E	       6B  3C 0014F 	    MOVZWL  ACP_CHANNEL, -(SP)					      ; 0671

		         6A	       01  FB 00152 	    CALLS   #1, SYS$DASSGN					      ;

		         50	  04   AC  D0 00155 	    MOVL    ADDRESS, R0						      ; 0676



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 5-3

; Digital Equipment Corporation

;

					   04 00159 	    RET     							      ;

				       50  D4 0015A 6$:     CLRL    R0							      ; 0572

					   04 0015C 	    RET     							      ;



; Routine Size:  161 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 6

; Digital Equipment Corporation

;

;	0678	GLOBAL ROUTINE DISCONNECT=

;	0679	

;	0680	!++

;	0681	! FUNCTIONAL DESCRIPTION:

;	0682	!

;	0683	!	DISCONNECT FORCES THE BREAKING OF ANY LOGICAL LINK.

;	0684	!	IT IS STARTED USING THE NCP DISCONNECT COMMAND

;	0685	!	"DISCONNECT LINK <LINK#> TO NODE <NODE_NAME>

;	0686	!	THE DISCONNECT IS ACCOMPLISHED VIA NON_TRANSPARENT

;	0687	!	$QIOW WITH THE NETACP

;	0688	!

;	0689	! FORMAL PARAMETERS:

;	0690	!

;	0691	!	NONE

;	0692	!

;	0693	! IMPLICIT INPUTS:

;	0694	!

;	0695	!	THE LINK NUMBER AND THE NODE NAME ARE PASSED TO

;	0696	!	DISCONNECT VIA THE PARAMETER QUEUE

;	0697	!

;	0698	! IMPLICIT OUTPUTS:

;	0699	!

;	0700	!	NONE

;	0701	!

;	0702	! ROUTINE VALUE:

;	0703	! COMPLETION CODES:

;	0704	!

;	0705	!	NONE

;	0706	!

;	0707	! SIDE EFFECTS:

;	0708	!

;	0709	!	NONE

;	0710	!

;	0711	!--

;	0712	

;	0713	BEGIN

;	0714	LOCAL

;	0715	    STATUS;

;	0716	

;	0717	!+

;	0718	!PLACE ACP FUNCTION TYPE INTO NFB

;	0719	

;	0720	    NFB[0]=16;

;	0721	!+

;	0722	!PLACE THE LOGICAL LINK NUMBER INTO THE NFB

;	0723	

;	0724	    (NFB[1])<0,32>=OUT_QUEUE();

;	0725	

;	0726	!+

;	0727	!PLACE NODE NAME INTO P2 DESCRIPTOR BLOCK

;	0728	

;	0729	    MOVEQ_COUNTED(REMOTENODE[0]);

;	0730	    REMOTENODE_DESC[0]=.REMOTENODE[0]+1;

;	0731	

;	0732	!+



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 6-1

; Digital Equipment Corporation

;

;	0733	!ASSIGN TO NETACP

;	0734	

;	0735	    IF      

;	0736		NOT (STATUS=$ASSIGN(CHAN=ACP_CHANNEL,DEVNAM=ACP_DESC))

;	0737	    THEN

;	0738		ACP_NOT_MOUNTED();

;	0739	!+

;	0740	!SEND THE FUNCTION

;	0741	

;	0742	    IF

;	0743		NOT (STATUS=$QIOW(CHAN=.ACP_CHANNEL,

;     P 0744			FUNC=IO$_ACPCONTROL,

;     P 0745			P1=NFB_DESC,

;     P 0746			IOSB=OUTSTATUSBLK,

;     P 0747			P2=REMOTENODE_DESC))

;	0748	    THEN

;	0749		BEGIN

;	0750		FAOOUT(ERRMSG_IOERR);

;	0751		SYS_SERV_ERR(.STATUS);

;	0752		$DASSGN(CHAN=.ACP_CHANNEL);

;	0753		RETURN

;	0754		END;

;	0755	!+

;	0756	!CHECK IO STATUSBLK FOR FAILURE

;	0757	

;	0758	    IF

;	0759		.OUTPUT_IOSTATUS NEQ SS$_NORMAL

;	0760	    THEN

;	0761		BEGIN

;	0762		FAOOUT(ERRMSG_IOERR);

;	0763		SYS_SERV_ERR(.OUTPUT_IOSTATUS)

;	0764		END;

;	0765	

;	0766	!+

;	0767	!BREAK THE ACP_CHANNEL

;	0768	

;	0769	    $DASSGN(CHAN=.ACP_CHANNEL);

;	0770	    RETURN

;	0771	END;











					 0C04 0015D 	    .ENTRY  DISCONNECT, Save R2,R10,R11				      ; 0678

		         5A	0000G  CF  9E 0015F 	    MOVAB   FAOOUT, R10						      ;

		         5B	0000'  CF  9E 00164 	    MOVAB   REMOTENODE_DESC, R11				      ;

		    E0   AB	       10  90 00169 	    MOVB    #16, NFB						      ; 0720

		  0000G  CF	       00  FB 0016D 	    CALLS   #0, OUT_QUEUE					      ; 0724

		    E1   AB	       50  D0 00172 	    MOVL    R0, NFB+1						      ;

				  E8   AB  9F 00176 	    PUSHAB  REMOTENODE						      ; 0729

		  0000V  CF	       01  FB 00179 	    CALLS   #1, MOVEQ_COUNTED					      ;

		         6B	  E8   AB  9A 0017E 	    MOVZBL  REMOTENODE, REMOTENODE_DESC				      ; 0730

				       6B  D6 00182 	    INCL    REMOTENODE_DESC					      ;

				       7E  7C 00184 	    CLRQ    -(SP)						      ; 0736



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 6-2

; Digital Equipment Corporation

;

				  DC   AB  9F 00186 	    PUSHAB  ACP_CHANNEL						      ;

				  08   AB  9F 00189 	    PUSHAB  ACP_DESC						      ;

	      00000000G  9F	       04  FB 0018C 	    CALLS   #4, @#SYS$ASSIGN					      ;

		         52	       50  D0 00193 	    MOVL    R0, STATUS						      ;

		         10	       52  E8 00196 	    BLBS    STATUS, 1$						      ;

				0000'  CF  9F 00199 	    PUSHAB  ERRMSG_NOACP					      ; 0678

		         6A	       01  FB 0019D 	    CALLS   #1, FAOOUT						      ; 0737

				       52  DD 001A0 	    PUSHL   STATUS						      ;

		  0000V  CF	       01  FB 001A2 	    CALLS   #1, SYS_SERV_ERR					      ;

				       4F  11 001A7 	    BRB     5$							      ;

				       7E  7C 001A9 1$:     CLRQ    -(SP)						      ; 0747

				       7E  7C 001AB 	    CLRQ    -(SP)						      ;

				       5B  DD 001AD 	    PUSHL   R11							      ;

				  F8   AB  9F 001AF 	    PUSHAB  NFB_DESC						      ;

				       7E  7C 001B2 	    CLRQ    -(SP)						      ;

				  D4   AB  9F 001B4 	    PUSHAB  OUTSTATUSBLK					      ;

				       38  DD 001B7 	    PUSHL   #56							      ;

		         7E	  DC   AB  3C 001B9 	    MOVZWL  ACP_CHANNEL, -(SP)					      ;

				       7E  D4 001BD 	    CLRL    -(SP)						      ;

	      00000000G  9F	       0C  FB 001BF 	    CALLS   #12, @#SYS$QIOW					      ;

		         52	       50  D0 001C6 	    MOVL    R0, STATUS						      ;

		         0B	       52  E8 001C9 	    BLBS    STATUS, 2$						      ; 0743

				0000'  CF  9F 001CC 	    PUSHAB  ERRMSG_IOERR					      ; 0678

		         6A	       01  FB 001D0 	    CALLS   #1, FAOOUT						      ; 0750

				       52  DD 001D3 	    PUSHL   STATUS						      ; 0751

				       11  11 001D5 	    BRB     3$							      ;

		         01	  D4   AB  B1 001D7 2$:     CMPW    OUTSTATUSBLK, #1					      ; 0759

				       10  13 001DB 	    BEQL    4$							      ;

				0000'  CF  9F 001DD 	    PUSHAB  ERRMSG_IOERR					      ; 0678

		         6A	       01  FB 001E1 	    CALLS   #1, FAOOUT						      ; 0762

		         7E	  D4   AB  3C 001E4 	    MOVZWL  OUTSTATUSBLK, -(SP)					      ; 0763

		  0000V  CF	       01  FB 001E8 3$:     CALLS   #1, SYS_SERV_ERR					      ;

		         7E	  DC   AB  3C 001ED 4$:     MOVZWL  ACP_CHANNEL, -(SP)					      ; 0769

	      00000000G  9F	       01  FB 001F1 	    CALLS   #1, @#SYS$DASSGN					      ;

				       50  D4 001F8 5$:     CLRL    R0							      ; 0678

					   04 001FA 	    RET     							      ;



; Routine Size:  158 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 7

; Digital Equipment Corporation

;

;	0772	GLOBAL ROUTINE SETSTATE_ON=

;	0773	

;	0774	!++

;	0775	! FUNCTIONAL DESCRIPTION:

;	0776	!

;	0777	!	ROUTINE HANDLES SPECIAL OF 'SET STATE LOCAL ON'

;	0778	!	FUNCTION WHERE NETACP HAS NOT BEEN MOUNTED

;	0779	!	YET.  WHEN NETACP ALREADY MOUNTED SETSTATE

;	0780	!	IS CALLED TO INVOKE NICE OBJECT

;	0781	!

;	0782	! FORMAL PARAMETERS:

;	0783	!

;	0784	!	NONE

;	0785	!

;	0786	! IMPLICIT INPUTS:

;	0787	!

;	0788	!	NONE

;	0789	!

;	0790	! IMPLICIT OUTPUTS:

;	0791	!

;	0792	!	NONE

;	0793	!

;	0794	! ROUTINE VALUE:

;	0795	! COMPLETION CODES:

;	0796	!

;	0797	!	NONE

;	0798	!

;	0799	! SIDE EFFECTS:

;	0800	!

;	0801	!	NONE

;	0802	!

;	0803	!--

;	0804	

;	0805	BEGIN

;	0806	LITERAL

;	0807	    TIMES_TO_TRY=30;

;	0808	LOCAL 

;	0809	    STATUS;

;	0810	MACRO

;	0811	    NETACP_MOUNTED=

;     M 0812		($ASSIGN(CHAN=CHANNEL,DEVNAM=DESC) NEQU SS$_DEVNOTMOUNT)%;

;	0813	!+

;	0814	!DEVICE DATA FOR ILLEGAL DEVICE. USED TO DISCOVER IF NETACP

;	0815	!IS MOUNTED WITHOUT CREATING A LOGICAL LINK

;	0816	

;	0817	OWN

;	0818	    WAIT_INTERVAL:VECTOR[2]INITIAL(-10*1000*1000,-1),

;	0819	    BADDEVICE:VECTOR[3,BYTE]INITIAL (BYTE(':::')),

;	0820	    DESC:VECTOR[2] INITIAL(3,BADDEVICE),

;	0821	    CHANNEL:WORD;

;	0822	!+

;	0823	!TRY AND ASSIGN A CHANNEL TO THE NETWORK ACP

;	0824	

;	0825	    IF

;	0826		 NETACP_MOUNTED



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 7-1

; Digital Equipment Corporation

;

;	0827	    THEN

;	0828		RETURN SETSTATE();

;	0829	    IF NOT (STATUS=STACP())

;	0830		THEN

;	0831		    BEGIN

;	0832		    FAOOUT(ERRMSG_BADACP);

;	0833		    SYS_SERV_ERR(.STATUS);

;	0834		    RETURN FALSE

;	0835		    END;

;	0836	!+

;	0837	!WAIT FOR THE NETACP TO COMPLETE THE MOUNT

;	0838	!IF AFTER SOME INTERVAL DEVICE IS STILL NOT MOUNTED

;	0839	!DECLARE AN ERROR

;	0840	

;	0841	    INCR TRIAL FROM 1 TO TIMES_TO_TRY DO

;	0842		BEGIN

;	0843		$SETIMR(EFN=0,DAYTIM=WAIT_INTERVAL);

;	0844		$WAITFR(EFN=0);

;	0845		IF

;	0846		     NETACP_MOUNTED

;	0847		THEN

;	0848		    RETURN SETSTATE()

;	0849		END;

;	0850	

;	0851	!+

;	0852	!THE NETACP HAS NOT  COMPLETED MOUNTING IN THE SPECIFIED TIME

;	0853	    FAOOUT(ERRMSG_BADACP);

;	0854	    SYS_SERV_ERR(SS$_DEVNOTMOUNT);

;	0855	    RETURN FALSE

;	0856	END;







							    .PSECT  $OWN$,NOEXE,2



					      00170 WAIT_INTERVAL:

							    .LONG   -10000000, -1					      ;

					      00178 BADDEVICE:

							    .ASCII  \:::\						      ;

					      0017B	    .BLKB   1

					      0017C DESC:   .LONG   3							      ;

					      00180 	    .ADDRESS  BADDEVICE						      ;

					      00184 CHANNEL:.BLKB   2



							    .GLOBL  SYS$SETIMR, SYS$WAITFR



							    .PSECT  $CODE$,NOWRT,2



					 0C04 001FB 	    .ENTRY  SETSTATE_ON, Save R2,R10,R11			      ; 0772

		         5A 00000000G  9F  9E 001FD 	    MOVAB   @#SYS$ASSIGN, R10					      ;

		         5B	0000'  CF  9E 00204 	    MOVAB   CHANNEL, R11					      ;

				       7E  7C 00209 	    CLRQ    -(SP)						      ; 0825

				       5B  DD 0020B 	    PUSHL   R11							      ;

				  F8   AB  9F 0020D 	    PUSHAB  DESC						      ;

		         6A	       04  FB 00210 	    CALLS   #4, SYS$ASSIGN					      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 7-2

; Digital Equipment Corporation

;

	      0000007C   8F	       50  D1 00213 	    CMPL    R0, #124						      ;

				       45  12 0021A 	    BNEQ    3$							      ;

		  0000G  CF	       00  FB 0021C 	    CALLS   #0, STACP						      ; 0829

		         52	       50  D0 00221 	    MOVL    R0, STATUS						      ;

		         0D	       52  E8 00224 	    BLBS    STATUS, 1$						      ;

				0000'  CF  9F 00227 	    PUSHAB  ERRMSG_BADACP					      ; 0772

		  0000G  CF	       01  FB 0022B 	    CALLS   #1, FAOOUT						      ; 0832

				       52  DD 00230 	    PUSHL   STATUS						      ; 0833

				       44  11 00232 	    BRB     5$							      ;

		         52	       01  D0 00234 1$:     MOVL    #1, TRIAL						      ; 0841

				       7E  7C 00237 2$:     CLRQ    -(SP)						      ; 0843

				  EC   AB  9F 00239 	    PUSHAB  WAIT_INTERVAL					      ;

				       7E  D4 0023C 	    CLRL    -(SP)						      ;

	      00000000G  9F	       04  FB 0023E 	    CALLS   #4, @#SYS$SETIMR					      ;

				       7E  D4 00245 	    CLRL    -(SP)						      ; 0844

	      00000000G  9F	       01  FB 00247 	    CALLS   #1, @#SYS$WAITFR					      ;

				       7E  7C 0024E 	    CLRQ    -(SP)						      ; 0845

				       5B  DD 00250 	    PUSHL   R11							      ;

				  F8   AB  9F 00252 	    PUSHAB  DESC						      ;

		         6A	       04  FB 00255 	    CALLS   #4, SYS$ASSIGN					      ;

	      0000007C   8F	       50  D1 00258 	    CMPL    R0, #124						      ;

				       06  13 0025F 	    BEQL    4$							      ;

		  0000V  CF	       00  FB 00261 3$:     CALLS   #0, SETSTATE					      ; 0848

					   04 00266 	    RET     							      ;

	   CC	         52	       1E  F3 00267 4$:     AOBLEQ  #30, TRIAL, 2$					      ; 0841

				0000'  CF  9F 0026B 	    PUSHAB  ERRMSG_BADACP					      ; 0772

		  0000G  CF	       01  FB 0026F 	    CALLS   #1, FAOOUT						      ; 0853

		         7E	  7C   8F  9A 00274 	    MOVZBL  #124, -(SP)						      ; 0854

		  0000V  CF	       01  FB 00278 5$:     CALLS   #1, SYS_SERV_ERR					      ;

				       50  D4 0027D 	    CLRL    R0							      ; 0772

					   04 0027F 	    RET     							      ;



; Routine Size:  133 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 8

; Digital Equipment Corporation

;

;	0857	GLOBAL ROUTINE SETSTATE_OFF=

;	0858	!++

;	0859	! FUNCTIONAL DESCRIPTION:

;	0860	!

;	0861	!	ROUTINE EXECUTES THE NCP 'SET STATE LOCAL OFF'

;	0862	!	COMMAND. THE COMMAND TO DISMOUNT THE NETWORK

;	0863	!	IS SENT DIRECTLY TO THE NETACP VIA QIO

;	0864	!

;	0865	! FORMAL PARAMETERS:

;	0866	!

;	0867	!	NONE

;	0868	!

;	0869	! IMPLICIT INPUTS:

;	0870	!

;	0871	!	NONE

;	0872	!

;	0873	! IMPLICIT OUTPUTS:

;	0874	!

;	0875	!	NONE

;	0876	!

;	0877	! ROUTINE VALUE:

;	0878	! COMPLETION CODES:

;	0879	!

;	0880	!	NONE

;	0881	!

;	0882	! SIDE EFFECTS:

;	0883	!

;	0884	!	NONE

;	0885	!

;	0886	!--

;	0887	

;	0888	BEGIN

;	0889	LOCAL

;	0890	    STATUS;

;	0891	

;	0892	!+

;	0893	!BREAK LINK TO NICE OBJECT, IF THERE

;	0894	

;	0895	    DEATTACH_NICE();

;	0896	!+

;	0897	!PLACE ACP FUNCTION TYPE INTO NFB

;	0898	

;	0899	    NFB[0]=10;

;	0900	!+

;	0901	!PLACE NEW STATE OF OFF INTO NFB PARAMETER

;	0902	

;	0903	    (NFB[1])<0,32>=1;

;	0904	

;	0905	

;	0906	!+

;	0907	!ASSIGN TO NETACP

;	0908	

;	0909	    IF      

;	0910		NOT (STATUS=$ASSIGN(CHAN=ACP_CHANNEL,DEVNAM=ACP_DESC))

;	0911	    THEN



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 8-1

; Digital Equipment Corporation

;

;	0912		ACP_NOT_MOUNTED();

;	0913	!+

;	0914	!SEND THE FUNCTION

;	0915	

;	0916	    IF

;	0917		NOT (STATUS=$QIOW(CHAN=.ACP_CHANNEL,

;     P 0918			FUNC=IO$_ACPCONTROL,

;     P 0919			P1=NFB_DESC,

;     P 0920			IOSB=OUTSTATUSBLK,

;     P 0921			P2=REMOTENODE_DESC))

;	0922	    THEN

;	0923		BEGIN

;	0924		FAOOUT(ERRMSG_IOERR);

;	0925		SYS_SERV_ERR(.STATUS);

;	0926		$DASSGN(CHAN=.ACP_CHANNEL);

;	0927		RETURN

;	0928		END;

;	0929	!+

;	0930	!CHECK IO STATUSBLK FOR FAILURE

;	0931	

;	0932	    IF

;	0933		.OUTPUT_IOSTATUS NEQ SS$_NORMAL

;	0934	    THEN

;	0935		BEGIN

;	0936		FAOOUT(ERRMSG_IOERR);

;	0937		SYS_SERV_ERR(.OUTPUT_IOSTATUS)

;	0938		END;

;	0939	

;	0940	!+

;	0941	!BREAK THE ACP_CHANNEL

;	0942	

;	0943	    $DASSGN(CHAN=.ACP_CHANNEL);

;	0944	    RETURN

;	0945	END;











					 0C04 00280 	    .ENTRY  SETSTATE_OFF, Save R2,R10,R11			      ; 0857

		         5A	0000G  CF  9E 00282 	    MOVAB   FAOOUT, R10						      ;

		         5B	0000'  CF  9E 00287 	    MOVAB   ACP_CHANNEL, R11					      ;

		  0000V  CF	       00  FB 0028C 	    CALLS   #0, DEATTACH_NICE					      ; 0895

		    04   AB	       0A  90 00291 	    MOVB    #10, NFB						      ; 0899

		    05   AB	       01  D0 00295 	    MOVL    #1, NFB+1						      ; 0903

				       7E  7C 00299 	    CLRQ    -(SP)						      ; 0910

				       5B  DD 0029B 	    PUSHL   R11							      ;

				  2C   AB  9F 0029D 	    PUSHAB  ACP_DESC						      ;

	      00000000G  9F	       04  FB 002A0 	    CALLS   #4, @#SYS$ASSIGN					      ;

		         52	       50  D0 002A7 	    MOVL    R0, STATUS						      ;

		         10	       52  E8 002AA 	    BLBS    STATUS, 1$						      ;

				0000'  CF  9F 002AD 	    PUSHAB  ERRMSG_NOACP					      ; 0857

		         6A	       01  FB 002B1 	    CALLS   #1, FAOOUT						      ; 0911

				       52  DD 002B4 	    PUSHL   STATUS						      ;

		  0000V  CF	       01  FB 002B6 	    CALLS   #1, SYS_SERV_ERR					      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 8-2

; Digital Equipment Corporation

;

				       4E  11 002BB 	    BRB     5$							      ;

				       7E  7C 002BD 1$:     CLRQ    -(SP)						      ; 0921

				       7E  7C 002BF 	    CLRQ    -(SP)						      ;

				  24   AB  9F 002C1 	    PUSHAB  REMOTENODE_DESC					      ;

				  1C   AB  9F 002C4 	    PUSHAB  NFB_DESC						      ;

				       7E  7C 002C7 	    CLRQ    -(SP)						      ;

				  F8   AB  9F 002C9 	    PUSHAB  OUTSTATUSBLK					      ;

				       38  DD 002CC 	    PUSHL   #56							      ;

		         7E	       6B  3C 002CE 	    MOVZWL  ACP_CHANNEL, -(SP)					      ;

				       7E  D4 002D1 	    CLRL    -(SP)						      ;

	      00000000G  9F	       0C  FB 002D3 	    CALLS   #12, @#SYS$QIOW					      ;

		         52	       50  D0 002DA 	    MOVL    R0, STATUS						      ;

		         0B	       52  E8 002DD 	    BLBS    STATUS, 2$						      ; 0917

				0000'  CF  9F 002E0 	    PUSHAB  ERRMSG_IOERR					      ; 0857

		         6A	       01  FB 002E4 	    CALLS   #1, FAOOUT						      ; 0924

				       52  DD 002E7 	    PUSHL   STATUS						      ; 0925

				       11  11 002E9 	    BRB     3$							      ;

		         01	  F8   AB  B1 002EB 2$:     CMPW    OUTSTATUSBLK, #1					      ; 0933

				       10  13 002EF 	    BEQL    4$							      ;

				0000'  CF  9F 002F1 	    PUSHAB  ERRMSG_IOERR					      ; 0857

		         6A	       01  FB 002F5 	    CALLS   #1, FAOOUT						      ; 0936

		         7E	  F8   AB  3C 002F8 	    MOVZWL  OUTSTATUSBLK, -(SP)					      ; 0937

		  0000V  CF	       01  FB 002FC 3$:     CALLS   #1, SYS_SERV_ERR					      ;

		         7E	       6B  3C 00301 4$:     MOVZWL  ACP_CHANNEL, -(SP)					      ; 0943

	      00000000G  9F	       01  FB 00304 	    CALLS   #1, @#SYS$DASSGN					      ;

				       50  D4 0030B 5$:     CLRL    R0							      ; 0857

					   04 0030D 	    RET     							      ;



; Routine Size:  142 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 9

; Digital Equipment Corporation

;

;	0946	GLOBAL ROUTINE SETSTATE=

;	0947	!++

;	0948	! FUNCTIONAL DESCRIPTION:

;	0949	!

;	0950	!	SET CONTROLS THE EXECUTION OF THE  VARIOUS

;	0951	!	'SET STATE' COMMANDS LEGAL FOR NCP.

;	0952	!	'SET STATE LOCAL ON' INITIATES THE MOUNTING OF

;	0953	!	THE NETWORK ACP AND IS DONE WITHIN THE NCP.

;	0954	!	ALL OTHER 'SET STATE' FUNCTIONS ARE CODED INTO NICE

;	0955	!	MESSAGES AND SENT OFF TO THE NICE OBJECT FOR ACTION

;	0956	!

;	0957	! FORMAL PARAMETERS:

;	0958	!

;	0959	!	NONE

;	0960	!

;	0961	! IMPLICIT INPUTS:

;	0962	!

;	0963	!	QUEUE:IN 'SET STATE LINE' THE LINE-ID IS KEPT IN THE

;	0964	!		PARAMETER QUEUE AND IS RETRIEVED BY ROUTINE 

;	0965	!		OUT_QUEUE.

;	0966	!

;	0967	! IMPLICIT OUTPUTS:

;	0968	!

;	0969	!	NONE

;	0970	!

;	0971	! ROUTINE VALUE:

;	0972	! COMPLETION CODES:

;	0973	!

;	0974	!	NONE

;	0975	!

;	0976	! SIDE EFFECTS:

;	0977	!

;	0978	!	NONE

;	0979	!

;	0980	!--

;	0981	

;	0982	BEGIN

;	0983	MAP FLAGS:BLOCK[1];

;	0984	LITERAL

;	0985	    !+

;	0986	    !POSSIBLE NODE OR LINE STATES

;	0987		ON=0,

;	0988		OFF=1,

;	0989		SHUT=2,

;	0990		LOOPBACK=3,

;	0991		MAINTENANCE=4,

;	0992		DEVICE_LOOPBACK=5,

;	0993		MAXMESSAGE=8,

;	0994		NICE_CODE=7,			!CODE OF SET PARAMETER

;	0995		OPTION_LOCAL=5,			!OPTION 'SET LOCAL'

;	0996		OPTION_LINE=8,			!OPTION 'SET LINE'

;	0997		MAXRESPONSE=1;

;	0998	LOCAL

;	0999		STATE,

;	1000		STATUS;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 9-1

; Digital Equipment Corporation

;

;	1001	REGISTER

;	1002		MSGPTR;

;	1003	!+

;	1004	!INITIALIZE CHARACTER POINTER

;	1005	    MSGPTR=CH$PTR(NICEMESSAGE[0]);

;	1006	!*

;	1007	!SET NICE MESSAGE TYPE TO 'SET PARAMETER'

;	1008	    

;	1009	    CH$WCHAR_A(NICE_CODE,MSGPTR);

;	1010	!+

;	1011	!DETERMINE AND SAVE INDICATED NEW STATE 

;	1012	

;	1013	    IF .FLAGS[DEF$V_ON] THEN STATE=ON;

;	1014	    IF .FLAGS[DEF$V_OFF] THEN STATE=OFF;

;	1015	    IF .FLAGS[DEF$V_SHUT] THEN STATE=SHUT;

;	1016	    IF .FLAGS[DEF$V_LOOPBACK] THEN STATE=LOOPBACK;

;	1017	    IF .FLAGS[DEF$V_CTRLLOOP] THEN STATE=DEVICE_LOOPBACK;

;	1018	    IF .FLAGS[DEF$V_MAINTEN] THEN STATE=MAINTENANCE;

;	1019	!+

;	1020	!DISTINGUISH BETWEEN TARGETS 'LOCAL' AND 'LINE'

;	1021	

;	1022	    IF

;	1023		.FLAGS[DEF$V_LOCAL]

;	1024	    THEN

;	1025	

;	1026	    !+

;	1027	    !BUILD 'SET STATE LOCAL' MESSAGE

;	1028	    !+

;	1029	

;	1030		BEGIN

;	1031		CH$WCHAR_A(OPTION_LOCAL,MSGPTR);

;	1032		CH$WCHAR_A(.STATE,MSGPTR);

;	1033		END

;	1034	

;	1035	    ELSE

;	1036	

;	1037	    !+

;	1038	    !BUILD 'SET STATE LINE' MESSAGE

;	1039	    !+

;	1040	 

;	1041		BEGIN

;	1042		CH$WCHAR_A(OPTION_LINE,MSGPTR);

;	1043		MSGPTR=MOVE_LINEID(.MSGPTR);

;	1044		CH$WCHAR_A(.STATE,MSGPTR);

;	1045		IF

;	1046		    .FLAGS[DEF$V_LOOPBACK] OR .FLAGS[DEF$V_CTRLLOOP]

;	1047		THEN

;	1048		    MSGPTR=MOVEQ_COUNTED(.MSGPTR);

;	1049		END;

;	1050	

;	1051	!+

;	1052	!CLEAR ON FLAG SO ATTACH_NICE WONT THINK REMOTE CONNECT

;	1053	

;	1054	    FLAGS[DEF$V_ON]=0;

;	1055	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 9-2

; Digital Equipment Corporation

;

;	1056	!+

;	1057	!ATTACH TO NICE OBJECT

;	1058	

;	1059	    IF

;	1060		NOT(STATUS=ATTACH_NICE())

;	1061	    THEN

;	1062		ACP_NOT_MOUNTED();

;	1063	!+

;	1064	!SEND MESSAGE TO NICE PROCESS

;	1065	    IF

;	1066	        SINGLE_NICE(

;	1067			CH$DIFF(.MSGPTR,NICEMESSAGE[0]),

;	1068			MAXRESPONSE)

;	1069	!+

;	1070	!OUTPUT RESPONSE TO USER

;	1071	

;	1072	    THEN

;	1073	        NICERSP_DECODE(MAXRESPONSE);

;	1074	

;	1075	    RETURN

;	1076	    END;











					 080C 0030E 	    .ENTRY  SETSTATE, Save R2,R3,R11				      ; 0946

		         5B	0000G  CF  9E 00310 	    MOVAB   FLAGS, R11						      ;

		         52	0000'  CF  9E 00315 	    MOVAB   NICEMESSAGE, MSGPTR					      ; 1005

		         82	       07  90 0031A 	    MOVB    #7, (MSGPTR)+					      ; 1009

	   02	    01   AB	       01  E1 0031D 	    BBC     #1, FLAGS+1, 1$					      ; 1013

				       53  D4 00322 	    CLRL    STATE						      ;

		         03	  01   AB  E9 00324 1$:     BLBC    FLAGS+1, 2$						      ; 1014

		         53	       01  D0 00328 	    MOVL    #1, STATE						      ;

	   03	    01   AB	       02  E1 0032B 2$:     BBC     #2, FLAGS+1, 3$					      ; 1015

		         53	       02  D0 00330 	    MOVL    #2, STATE						      ;

		         03	  02   AB  E9 00333 3$:     BLBC    FLAGS+2, 4$						      ; 1016

		         53	       03  D0 00337 	    MOVL    #3, STATE						      ;

	   03	    02   AB	       02  E1 0033A 4$:     BBC     #2, FLAGS+2, 5$					      ; 1017

		         53	       05  D0 0033F 	    MOVL    #5, STATE						      ;

	   03	    02   AB	       01  E1 00342 5$:     BBC     #1, FLAGS+2, 6$					      ; 1018

		         53	       04  D0 00347 	    MOVL    #4, STATE						      ;

	   08	         6B	       03  E1 0034A 6$:     BBC     #3, FLAGS, 7$					      ; 1023

		         82	       05  90 0034E 	    MOVB    #5, (MSGPTR)+					      ; 1031

		         82	       53  90 00351 	    MOVB    STATE, (MSGPTR)+					      ; 1032

				       23  11 00354 	    BRB     9$							      ; 1022

		         82	       08  90 00356 7$:     MOVB    #8, (MSGPTR)+					      ; 1042

				       52  DD 00359 	    PUSHL   MSGPTR						      ; 1043

		  0000V  CF	       01  FB 0035B 	    CALLS   #1, MOVE_LINEID					      ;

		         52	       50  D0 00360 	    MOVL    R0, MSGPTR						      ;

		         82	       53  90 00363 	    MOVB    STATE, (MSGPTR)+					      ; 1044

		         05	  02   AB  E8 00366 	    BLBS    FLAGS+2, 8$						      ; 1046

	   0A	    02   AB	       02  E1 0036A 	    BBC     #2, FLAGS+2, 9$					      ;

				       52  DD 0036F 8$:     PUSHL   MSGPTR						      ; 1048

		  0000V  CF	       01  FB 00371 	    CALLS   #1, MOVEQ_COUNTED					      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 9-3

; Digital Equipment Corporation

;

		         52	       50  D0 00376 	    MOVL    R0, MSGPTR						      ;

		    01   AB	       02  8A 00379 9$:     BICB2   #2, FLAGS+1						      ; 1054

		  0000V  CF	       00  FB 0037D 	    CALLS   #0, ATTACH_NICE					      ; 1060

		         53	       50  D0 00382 	    MOVL    R0, STATUS						      ;

		         12	       53  E8 00385 	    BLBS    STATUS, 10$						      ;

				0000'  CF  9F 00388 	    PUSHAB  ERRMSG_NOACP					      ; 0946

		  0000G  CF	       01  FB 0038C 	    CALLS   #1, FAOOUT						      ; 1061

				       53  DD 00391 	    PUSHL   STATUS						      ;

		  0000V  CF	       01  FB 00393 	    CALLS   #1, SYS_SERV_ERR					      ;

				       1A  11 00398 	    BRB     11$							      ;

				       01  DD 0039A 10$:    PUSHL   #1							      ; 1066

		         50	0000'  CF  9E 0039C 	    MOVAB   NICEMESSAGE, R0					      ; 1067

	   7E	         52	       50  C3 003A1 	    SUBL3   R0, MSGPTR, -(SP)					      ;

		  0000V  CF	       02  FB 003A5 	    CALLS   #2, SINGLE_NICE					      ; 1066

		         07	       50  E9 003AA 	    BLBC    R0, 11$						      ;

				       01  DD 003AD 	    PUSHL   #1							      ; 1073

		  0000V  CF	       01  FB 003AF 	    CALLS   #1, NICERSP_DECODE					      ;

				       50  D4 003B4 11$:    CLRL    R0							      ; 0946

					   04 003B6 	    RET     							      ;



; Routine Size:  169 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 10

; Digital Equipment Corporation

;

;	1077	GLOBAL ROUTINE EXIT=

;	1078	

;	1079	!++

;	1080	! FUNCTIONAL DESCRIPTION:

;	1081	!

;	1082	!	ROUTINE TERMINATES ANY EXISTING ACTIVITY WITHIN

;	1083	!	THE NCP WHEN A USER ENTERS 'EXIT' OR CONTROL C.

;	1084	!

;	1085	! FORMAL PARAMETERS:

;	1086	!

;	1087	!	NONE

;	1088	!

;	1089	! IMPLICIT INPUTS:

;	1090	!

;	1091	!	CHANNEL:THE NICE/NCP CHANNEL NUMBER

;	1092	!

;	1093	! IMPLICIT OUTPUTS:

;	1094	!

;	1095	!	NONE

;	1096	!

;	1097	! ROUTINE VALUE:

;	1098	! COMPLETION CODES:

;	1099	!

;	1100	!	NONE

;	1101	!

;	1102	! SIDE EFFECTS:

;	1103	!

;	1104	!	NONE

;	1105	!

;	1106	!--

;	1107	

;	1108	BEGIN

;	1109	

;	1110	!+

;	1111	!IF A PATH TO A NICE OBJECT EXISTS BREAK IT

;	1112	

;	1113	    IF

;	1114		.CHANNEL NEQ 0

;	1115	    THEN

;	1116		$DASSGN(CHAN=.CHANNEL);

;	1117	END;











					 0000 003B7 	    .ENTRY  EXIT, Save nothing					      ; 1077

				0000'  CF  B5 003B9 	    TSTW    CHANNEL						      ; 1114

				       0C  13 003BD 	    BEQL    1$							      ;

		         7E	0000'  CF  3C 003BF 	    MOVZWL  CHANNEL, -(SP)					      ; 1116

	      00000000G  9F	       01  FB 003C4 	    CALLS   #1, @#SYS$DASSGN					      ;

				       50  D4 003CB 1$:     CLRL    R0							      ; 1077

					   04 003CD 	    RET     							      ;



; Routine Size:  23 bytes



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 10-1

; Digital Equipment Corporation

;







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 11

; Digital Equipment Corporation

;

;	1118	GLOBAL ROUTINE LINKS=

;	1119	

;	1120	!++

;	1121	! FUNCTIONAL DESCRIPTION:

;	1122	!

;	1123	!	LINK IMPLEMENTS THE NCP 'SHOW LINKS' COMMAND.

;	1124	!	LINK SENDS A 'READ INFORMATION' MESSAGE TO THE NICE 

;	1125	!	AND OUTPUTS THE LINK INFORMATION THAT THE NICE

;	1126	!	OBJECT RETURNS

;	1127	!

;	1128	! FORMAL PARAMETERS:

;	1129	!

;	1130	!	NONE

;	1131	!

;	1132	! IMPLICIT INPUTS:

;	1133	!

;	1134	!	NONE

;	1135	!

;	1136	! IMPLICIT OUTPUTS:

;	1137	!

;	1138	!	NONE

;	1139	!

;	1140	! ROUTINE VALUE:

;	1141	! COMPLETION CODES:

;	1142	!

;	1143	!	NONE

;	1144	!

;	1145	! SIDE EFFECTS:

;	1146	!

;	1147	!	NONE

;	1148	!

;	1149	!--

;	1150	

;	1151	BEGIN

;	1152	BIND

;	1153	    LINKS_PARSE_VEC=UPLIT BYTE(6,

;	1154				COUNTED_STRING,		!NODE NAME

;	1155				BYTE_LONG,		!TYPE OF LINKS CODE

;	1156				WORD_LONG,		!NUMBER OF LINKS RETURNED

;	1157				REPEAT_CODE,

;	1158				WORD_LONG,		!LINK NUMBER

;	1159				LONGWORD),		!PID

;	1160	    NOLINKS=CSTRING('!/!_NONE'),

;	1161	    LINK_REC_HEADER=CSTRING('!/NODE=!AC'),

;	1162	    LINK_HEADER=CSTRING('!/LINKS FOR LOCAL AS OF !%D');

;	1163	LITERAL

;	1164	    VAX_LINK_MSG=1,

;	1165	    NICE_CODE=8,

;	1166	    OPTION_LINK=7,

;	1167	    MAXOUT=2,

;	1168	    MAXBACK=3,

;	1169	    MAXDATA=512;

;	1170	REGISTER

;	1171	    MSGPTR;

;	1172	BIND



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 11-1

; Digital Equipment Corporation

;

;	1173	    CRLFMSG=CSTRING('!/!_'),

;	1174	    LINKMESSAGE=CSTRING('!_!UW/!XL');

;	1175	LOCAL

;	1176	    

;	1177	    LINK_NUMBER,

;	1178	    PROCESS_ID,

;	1179	    STATUS,

;	1180	    COUNT;

;	1181	

;	1182	!+

;	1183	!SETUP POINTER TO START OF MESSAGE BUFFER

;	1184	

;	1185	    MSGPTR=CH$PTR(NICEMESSAGE[0]);

;	1186	

;	1187	!+

;	1188	!INCLUDE NICE MESSAGE TYPE AND MESSAGE OPTION

;	1189	

;	1190	    CH$WCHAR_A(NICE_CODE,MSGPTR);

;	1191	    CH$WCHAR_A(OPTION_LINK,MSGPTR);

;	1192	

;	1193	

;	1194	!+

;	1195	!ATTACH TO THE NICE OBJECT

;	1196	

;	1197	    IF

;	1198		NOT (STATUS=ATTACH_NICE())

;	1199	    THEN

;	1200		ACP_NOT_MOUNTED();

;	1201	

;	1202	!+

;	1203	!SEND THE 'GET LINKS' REQUEST

;	1204	

;	1205	    IF NOT SEND_NICE(MAXOUT) THEN END_DIALOGUE;

;	1206	    IF NOT GET_NICE(MAXBACK) THEN END_DIALOGUE;

;	1207	

;	1208	!+

;	1209	!INDICATE ERROR IF ANY

;	1210	    IF

;	1211		NOT NICERSP_DECODE(MAXBACK)

;	1212	    THEN

;	1213		END_DIALOGUE;

;	1214	

;	1215	!+

;	1216	!PRINT HEADER

;	1217	

;	1218	    FAOOUT(LINK_HEADER,0);



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 12

; Digital Equipment Corporation

;

;	1219	!+

;	1220	!DETERMINE HOW MANY 'LINK' DATABLOCKS ARE COMING BACK

;	1221	

;	1222	    IF

;	1223		.DIALOGUE_MSGS EQL 0

;	1224	    THEN

;	1225		BEGIN

;	1226		FAOOUT(NOLINKS);

;	1227		END_DIALOGUE

;	1228		END;

;	1229	    INCR INDEX FROM 1 TO .DIALOGUE_MSGS DO

;	1230		BEGIN

;	1231	

;	1232		!+

;	1233		!READ BACK A DATA MESSAGE

;	1234	

;	1235		IF NOT GET_NICE(MAXDATA) THEN END_DIALOGUE;

;	1236		!+

;	1237		!SETUP POINTER TO MESSAGE

;	1238	

;	1239		    MSGPTR=CH$PTR(NICEDATA[0])+1;

;	1240	

;	1241		!+

;	1242	 	!PARSE MESSAGE

;	1243		    IF

;	1244			NOT PARSE(OPTION_LINK,LINKS_PARSE_VEC)

;	1245		    THEN

;	1246			END_DIALOGUE;

;	1247	

;	1248		!+

;	1249		!PRINT NODE NAME RECORD HEADER

;	1250		

;	1251		    FAOOUT(LINK_REC_HEADER,.MSGPTR);

;	1252	    	    MSGPTR=CH$PLUS(CH$RCHAR_A(MSGPTR),.MSGPTR);

;	1253		!+

;	1254		!MAKE SURE THIS A VAX TYPE LINKS MESSAGE

;	1255	

;	1256		    IF

;	1257			CH$RCHAR_A(MSGPTR) NEQU VAX_LINK_MSG

;	1258		    THEN

;	1259			BEGIN

;	1260			FAOOUT(ERRMSG_INVDBK);

;	1261			END_DIALOGUE

;	1262			END;

;	1263		!+

;	1264		!GATHER NUMBER OF MESSAGES

;	1265		

;	1266		    COUNT=.(.MSGPTR)<0,16>;

;	1267		    MSGPTR=.MSGPTR+2;

;	1268		!+

;	1269		!PRINT ALL THE LINK NUMBERS IN THE DATABLOCK

;	1270		

;	1271		    FAOOUT(CRLFMSG);

;	1272		    IF

;	1273			.COUNT NEQ 0



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 12-1

; Digital Equipment Corporation

;

;	1274		    THEN

;	1275	    	        INCR DEX FROM 1 TO .COUNT DO

;	1276	    	 	    BEGIN

;	1277			    LINK_NUMBER=.(.MSGPTR)<0,16>;

;	1278			    MSGPTR=.MSGPTR+2;

;	1279			    PROCESS_ID=.(.MSGPTR)<0,32>;

;	1280			    MSGPTR=.MSGPTR+4;

;	1281	    		    FAOOUT(LINKMESSAGE,.LINK_NUMBER,.PROCESS_ID);

;	1282	    		    IF

;	1283	    		        (.DEX MOD 3) EQL 0

;	1284	    		    THEN

;	1285	    		        FAOOUT(CRLFMSG)

;	1286	    		    END

;	1287		    ELSE

;	1288			FAOOUT(NOLINKS)

;	1289		END;

;	1290	RETURN TRUE

;	1291	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      001C4 P.AAR:  .BYTE   6, 1, 3, 4, 6, 4, 7					      ;

					      001CB	    .BLKB   1

					      001CC P.AAS:  .BYTE   8							      ;

					      001CD 	    .ASCII  \!/!_NONE\						      ;

					      001D5	    .BLKB   3

					      001D8 P.AAT:  .BYTE   10							      ;

					      001D9 	    .ASCII  \!/NODE=!AC\					      ;

					      001E3	    .BLKB   1

					      001E4 P.AAU:  .BYTE   27							      ;

					      001E5 	    .ASCII  \!/LINKS FOR LOCAL AS OF !%D\			      ;

					      00200 P.AAV:  .BYTE   4							      ;

					      00201 	    .ASCII  \!/!_\						      ;

					      00205	    .BLKB   3

					      00208 P.AAW:  .BYTE   9							      ;

					      00209 	    .ASCII  \!_!UW/!XL\						      ;

					      00212	    .BLKB   2



						    LINKS_PARSE_VEC=	P.AAR

						    NOLINKS=		P.AAS

						    LINK_REC_HEADER=	P.AAT

						    LINK_HEADER=	P.AAU

						    CRLFMSG=		P.AAV

						    LINKMESSAGE=	P.AAW





							    .PSECT  $CODE$,NOWRT,2



					 0FFC 003CE 	    .ENTRY  LINKS, Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11		      ; 1118

		         59	0000'  CF  9E 003D0 	    MOVAB   NICEDATA+1, R9					      ;

		         5A	0000G  CF  9E 003D5 	    MOVAB   FAOOUT, R10						      ;

		         5B	0000'  CF  9E 003DA 	    MOVAB   NOLINKS, R11					      ;

		         52	  DF   A9  9E 003DF 	    MOVAB   NICEMESSAGE, MSGPTR					      ; 1185



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 12-2

; Digital Equipment Corporation

;

		         82	0708   8F  B0 003E3 	    MOVW    #1800, (MSGPTR)+					      ; 1190

		  0000V  CF	       00  FB 003E8 	    CALLS   #0, ATTACH_NICE					      ; 1198

		         53	       50  D0 003ED 	    MOVL    R0, STATUS						      ;

		         0F	       53  E8 003F0 	    BLBS    STATUS, 1$						      ;

				  D0   AB  9F 003F3 	    PUSHAB  ERRMSG_NOACP					      ; 1118

		         6A	       01  FB 003F6 	    CALLS   #1, FAOOUT						      ; 1199

				       53  DD 003F9 	    PUSHL   STATUS						      ;

		  0000V  CF	       01  FB 003FB 	    CALLS   #1, SYS_SERV_ERR					      ;

				       74  11 00400 	    BRB     6$							      ;

				       02  DD 00402 1$:     PUSHL   #2							      ; 1205

		  0000V  CF	       01  FB 00404 	    CALLS   #1, SEND_NICE					      ;

		         65	       50  E9 00409 	    BLBC    R0, 5$						      ;

				       03  DD 0040C 	    PUSHL   #3							      ; 1206

		  0000V  CF	       01  FB 0040E 	    CALLS   #1, GET_NICE					      ;

		         5B	       50  E9 00413 	    BLBC    R0, 5$						      ;

				       03  DD 00416 	    PUSHL   #3							      ; 1211

		  0000V  CF	       01  FB 00418 	    CALLS   #1, NICERSP_DECODE					      ;

		         51	       50  E9 0041D 	    BLBC    R0, 5$						      ;

				       7E  D4 00420 	    CLRL    -(SP)						      ; 1218

				  18   AB  9F 00422 	    PUSHAB  LINK_HEADER						      ; 1118

		         6A	       02  FB 00425 	    CALLS   #2, FAOOUT						      ; 1218

				       69  B5 00428 	    TSTW    NICEDATA+1						      ; 1223

				       04  12 0042A 	    BNEQ    2$							      ;

				       5B  DD 0042C 	    PUSHL   R11							      ; 1118

				       3E  11 0042E 	    BRB     4$							      ; 1226

		         58	       69  3C 00430 2$:     MOVZWL  NICEDATA+1, R8					      ; 1229

				       55  D4 00433 	    CLRL    INDEX						      ;

				       79  11 00435 	    BRB     10$							      ;

		         7E	0200   8F  3C 00437 3$:     MOVZWL  #512, -(SP)						      ; 1235

		  0000V  CF	       01  FB 0043C 	    CALLS   #1, GET_NICE					      ;

		         2D	       50  E9 00441 	    BLBC    R0, 5$						      ;

		         52	       69  9E 00444 	    MOVAB   NICEDATA+1, MSGPTR					      ; 1239

				  F8   AB  9F 00447 	    PUSHAB  LINKS_PARSE_VEC					      ; 1118

				       07  DD 0044A 	    PUSHL   #7							      ; 1244

		  0000V  CF	       02  FB 0044C 	    CALLS   #2, PARSE						      ;

		         1D	       50  E9 00451 	    BLBC    R0, 5$						      ;

				       52  DD 00454 	    PUSHL   MSGPTR						      ; 1251

				  0C   AB  9F 00456 	    PUSHAB  LINK_REC_HEADER					      ; 1118

		         6A	       02  FB 00459 	    CALLS   #2, FAOOUT						      ; 1251

		         50	       82  9A 0045C 	    MOVZBL  (MSGPTR)+, R0					      ; 1252

		         52	       50  C0 0045F 	    ADDL2   R0, MSGPTR						      ;

		         50	       82  9A 00462 	    MOVZBL  (MSGPTR)+, R0					      ; 1257

		         01	       50  91 00465 	    CMPB    R0, #1						      ;

				       0E  13 00468 	    BEQL    7$							      ;

				FEFC   CB  9F 0046A 	    PUSHAB  ERRMSG_INVDBK					      ; 1118

		         6A	       01  FB 0046E 4$:     CALLS   #1, FAOOUT						      ; 1260

		  0000V  CF	       00  FB 00471 5$:     CALLS   #0, DEATTACH_NICE					      ;

				       49  11 00476 6$:     BRB     13$							      ;

		         54	       82  3C 00478 7$:     MOVZWL  (MSGPTR)+, COUNT					      ; 1266

				  34   AB  9F 0047B 	    PUSHAB  CRLFMSG						      ; 1118

		         6A	       01  FB 0047E 	    CALLS   #1, FAOOUT						      ; 1271

				       54  D5 00481 	    TSTL    COUNT						      ; 1273

				       2D  13 00483 	    BEQL    11$							      ;

				       53  D4 00485 	    CLRL    DEX							      ; 1275

				       23  11 00487 	    BRB     9$							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 12-3

; Digital Equipment Corporation

;

		         56	       82  3C 00489 8$:     MOVZWL  (MSGPTR)+, LINK_NUMBER				      ; 1277

		         57	       82  D0 0048C 	    MOVL    (MSGPTR)+, PROCESS_ID				      ; 1279

		         7E	       56  7D 0048F 	    MOVQ    LINK_NUMBER, -(SP)					      ; 1281

				  3C   AB  9F 00492 	    PUSHAB  LINKMESSAGE						      ; 1118

		         6A	       03  FB 00495 	    CALLS   #3, FAOOUT						      ; 1281

	   00	         53	       01  7A 00498 	    EMUL    #1, DEX, #0, -(SP)					      ; 1283

				       7E     0049C									      ;

	   50	         8E	       03  7B 0049D 	    EDIV    #3, (SP)+, R0, R0					      ;

				       50     004A1									      ;

				       50  D5 004A2 	    TSTL    R0							      ;

				       06  12 004A4 	    BNEQ    9$							      ;

				  34   AB  9F 004A6 	    PUSHAB  CRLFMSG						      ; 1118

		         6A	       01  FB 004A9 	    CALLS   #1, FAOOUT						      ; 1285

	   D9	         53	       54  F3 004AC 9$:     AOBLEQ  COUNT, DEX, 8$					      ; 1275

				       05  11 004B0 10$:    BRB     12$							      ; 1272

				       5B  DD 004B2 11$:    PUSHL   R11							      ; 1118

		         6A	       01  FB 004B4 	    CALLS   #1, FAOOUT						      ; 1288

	   55	         01	       58  F1 004B7 12$:    ACBL    R8, #1, INDEX, 3$					      ; 1229

				     FF7A     004BB									      ;

		         50	       01  D0 004BD 	    MOVL    #1, R0						      ; 1290

					   04 004C0 	    RET     							      ;

				       50  D4 004C1 13$:    CLRL    R0							      ; 1118

					   04 004C3 	    RET     							      ;



; Routine Size:  246 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 13

; Digital Equipment Corporation

;

;	1292	GLOBAL ROUTINE ZERO=

;	1293	

;	1294	!++

;	1295	! FUNCTIONAL DESCRIPTION:

;	1296	!

;	1297	!	THE ROUTINE ZERO CREATES THE VARIOUS FORMS OF THE NICE

;	1298	!	'CLEAR PARAMETERS' MESSAGE. THE MESSAGE INSTRUCTES A 

;	1299	!	NICE OBJECT TO CLEAR SOME SUBSET OF THE COUNTERS

;	1300	!	KEPT ON THAT NODE

;	1301	!

;	1302	!	NOTE THAT THIS ROUTINE ATTACHES DIRECTLY TO REMOTE

;	1303	!	NICE OBJECTS WHENEVER THE 'ON' PARAMETER OCCURS

;	1304	!	WITHIN THE NCP COMMAND

;	1305	!

;	1306	! FORMAL PARAMETERS:

;	1307	!

;	1308	!	NONE

;	1309	!

;	1310	! IMPLICIT INPUTS:

;	1311	!

;	1312	!	QUEUE: A LONGWORD QUEUE HOLDING USER SUPPLIED/VARIABLE

;	1313	!		PARAMETERS ENCOUNTERED DURING THE PARSE

;	1314	!

;	1315	! IMPLICIT OUTPUTS:

;	1316	!

;	1317	!	NONE

;	1318	!

;	1319	! ROUTINE VALUE:

;	1320	! COMPLETION CODES:

;	1321	!

;	1322	!	NONE

;	1323	!

;	1324	! SIDE EFFECTS:

;	1325	!

;	1326	!	NONE

;	1327	!

;	1328	!--

;	1329	

;	1330	BEGIN

;	1331	MAP FLAGS:BLOCK[1];

;	1332	

;	1333	LITERAL

;	1334	    MAXOUT=4+LID$S_NAME,		!MAX SIZE OF 'ZERO' MESSAGE

;	1335	    NICE_CODE=9,			!NICE MESSAGE TYPE

;	1336	    OPTION_LOCAL=0,			!'ZERO LOCAL' OPTION

;	1337	    OPTION_NODE=1,			!'ZERO NODE' OPTION

;	1338	    MAXIN=1,				!SINGLE CHAR RETURN CODE

;	1339	    OPTION_LINE=2;			!'ZERO LINE' OPTION

;	1340	LOCAL

;	1341	    STATUS,

;	1342	    OPTION,

;	1343	    LEN;

;	1344	

;	1345	

;	1346	REGISTER



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 13-1

; Digital Equipment Corporation

;

;	1347	    MSGPTR;

;	1348	

;	1349	!+

;	1350	!INITIAL MESSAGE POINTER

;	1351	    

;	1352	    MSGPTR=CH$PTR(NICEMESSAGE[0]);

;	1353	

;	1354	

;	1355	!+

;	1356	!INCLUDE THE NICE OPTION BYTE

;	1357	

;	1358	    IF .FLAGS[DEF$V_LINE] THEN OPTION=OPTION_LINE;

;	1359	    IF .FLAGS[DEF$V_NODE] THEN OPTION=OPTION_NODE;

;	1360	    IF .FLAGS[DEF$V_LOCAL] THEN OPTION=OPTION_LOCAL;

;	1361	

;	1362	!+

;	1363	!BUILD NICE PREFIX

;	1364	

;	1365	    MSGPTR=BUILD_PREFIX(.MSGPTR,NICE_CODE,.OPTION); 

;	1366	

;	1367	!GET PATH TO NICE OBJECT

;	1368	    IF

;	1369		NOT (STATUS=ATTACH_NICE())

;	1370	    THEN

;	1371		ACP_NOT_MOUNTED();

;	1372	

;	1373	    IF

;	1374	        SINGLE_NICE(

;	1375	            CH$DIFF(.MSGPTR,NICEMESSAGE[0]),

;	1376	            MAXIN)

;	1377	    THEN

;	1378	        NICERSP_DECODE(MAXIN);

;	1379	    RETURN TRUE

;	1380	END;











					 080C 004C4 	    .ENTRY  ZERO, Save R2,R3,R11				      ; 1292

		         5B	0000G  CF  9E 004C6 	    MOVAB   FLAGS, R11						      ;

		         52	0000'  CF  9E 004CB 	    MOVAB   NICEMESSAGE, MSGPTR					      ; 1352

	   03	         6B	       01  E1 004D0 	    BBC     #1, FLAGS, 1$					      ; 1358

		         50	       02  D0 004D4 	    MOVL    #2, OPTION						      ;

		         03	       6B  E9 004D7 1$:     BLBC    FLAGS, 2$						      ; 1359

		         50	       01  D0 004DA 	    MOVL    #1, OPTION						      ;

	   02	         6B	       03  E1 004DD 2$:     BBC     #3, FLAGS, 3$					      ; 1360

				       50  D4 004E1 	    CLRL    OPTION						      ;

				       50  DD 004E3 3$:     PUSHL   OPTION						      ; 1365

				       09  DD 004E5 	    PUSHL   #9							      ;

				       52  DD 004E7 	    PUSHL   MSGPTR						      ;

		  0000V  CF	       03  FB 004E9 	    CALLS   #3, BUILD_PREFIX					      ;

		         52	       50  D0 004EE 	    MOVL    R0, MSGPTR						      ;

		  0000V  CF	       00  FB 004F1 	    CALLS   #0, ATTACH_NICE					      ; 1369

		         53	       50  D0 004F6 	    MOVL    R0, STATUS						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 13-2

; Digital Equipment Corporation

;

		         12	       53  E8 004F9 	    BLBS    STATUS, 4$						      ;

				0000'  CF  9F 004FC 	    PUSHAB  ERRMSG_NOACP					      ; 1292

		  0000G  CF	       01  FB 00500 	    CALLS   #1, FAOOUT						      ; 1370

				       53  DD 00505 	    PUSHL   STATUS						      ;

		  0000V  CF	       01  FB 00507 	    CALLS   #1, SYS_SERV_ERR					      ;

				       1E  11 0050C 	    BRB     6$							      ;

				       01  DD 0050E 4$:     PUSHL   #1							      ; 1374

		         50	0000'  CF  9E 00510 	    MOVAB   NICEMESSAGE, R0					      ; 1375

	   7E	         52	       50  C3 00515 	    SUBL3   R0, MSGPTR, -(SP)					      ;

		  0000V  CF	       02  FB 00519 	    CALLS   #2, SINGLE_NICE					      ; 1374

		         07	       50  E9 0051E 	    BLBC    R0, 5$						      ;

				       01  DD 00521 	    PUSHL   #1							      ; 1378

		  0000V  CF	       01  FB 00523 	    CALLS   #1, NICERSP_DECODE					      ;

		         50	       01  D0 00528 5$:     MOVL    #1, R0						      ; 1379

					   04 0052B 	    RET     							      ;

				       50  D4 0052C 6$:     CLRL    R0							      ; 1292

					   04 0052E 	    RET     							      ;



; Routine Size:  107 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 14

; Digital Equipment Corporation

;

;	1381	GLOBAL ROUTINE LOAD=

;	1382	

;	1383	!++

;	1384	! FUNCTIONAL DESCRIPTION:

;	1385	!

;	1386	!	LOAD BUILDS THE NICE MESSAGE CORRESPONDING TO THE NCP

;	1387	!	COMMAND

;	1388	!

;	1389	!		LOAD NODE <NODENAME> [FROM FILE <FILENAME>]

;	1390	!

;	1391	!	THIS COMMAND INITIATES THE DOWNLINE LOAD OF A REMOTE NODE

;	1392	!

;	1393	! FORMAL PARAMETERS:

;	1394	!

;	1395	!	NONE

;	1396	!

;	1397	! IMPLICIT INPUTS:

;	1398	!

;	1399	!	QUEUE:THE REMOTE NODENAME AND POSSIBLY A FILENAME

;	1400	!		ARE OBTAINED FROM THE PARAMETER QUEUE

;	1401	!

;	1402	! IMPLICIT OUTPUTS:

;	1403	!

;	1404	!	NONE

;	1405	!

;	1406	! ROUTINE VALUE:

;	1407	! COMPLETION CODES:

;	1408	!

;	1409	!	NONE

;	1410	!

;	1411	! SIDE EFFECTS:

;	1412	!

;	1413	!	NONE

;	1414	!

;	1415	!--

;	1416	

;	1417	BEGIN

;	1418	LOCAL

;	1419	    STATUS,

;	1420	    TARGET_NODE,

;	1421	    HOST_NODE;

;	1422	LITERAL

;	1423	    MAXIN=1,			!SIZE OF RESPONSE MESSAGE

;	1424	    NICE_CODE=2,		!DOWNLINE LOAD FUNCTION MESSAGE

;	1425	    OPTION_FILE=0+(1^2)+(1^4)+(0^5),		!OPTION BYTE,FILE SPEC INCLUDED

;	1426	    OPTION_NOFILE=0+(1^2)+(0^4)+(0^5);		!OPTION BYTE,NO FILE SPEC INCLUDED

;	1427	REGISTER

;	1428	    MSGPTR;

;	1429	MAP

;	1430	    FLAGS:BLOCK[1];

;	1431	!+

;	1432	!SETUP CHARACTER POINTER

;	1433	

;	1434	    MSGPTR=CH$PTR(NICEMESSAGE);

;	1435	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 14-1

; Digital Equipment Corporation

;

;	1436	!+

;	1437	!INCLUDE FUNCTION CODE IN MESSAGE

;	1438	

;	1439	    CH$WCHAR_A(NICE_CODE,MSGPTR);

;	1440	

;	1441	!+

;	1442	!INCLUDE PROPER OPTION BYTE,CHOICE DEPENDS UPON WHETHER

;	1443	!FROM OPTION IS INCLUDED IN NCP COMMAND

;	1444	

;	1445	    IF

;	1446		.FLAGS[DEF$V_FROM]

;	1447	    THEN

;	1448		CH$WCHAR_A(OPTION_FILE,MSGPTR)

;	1449	    ELSE

;	1450		CH$WCHAR_A(OPTION_NOFILE,MSGPTR);

;	1451	

;	1452	!

;	1453	!SAVE ADDRESS OF TARGET NODENAME

;	1454	    TARGET_NODE=.MSGPTR;

;	1455	

;	1456	!+

;	1457	!INCLUDE THE TARGET NODE NAME IN THE MESSAGE

;	1458	

;	1459	    MSGPTR=MOVEQ_COUNTED(.MSGPTR);

;	1460	

;	1461	!+

;	1462	!IF FILENAME IS PRESENT INCLUDE IT IN MESSAGE

;	1463	

;	1464	    IF

;	1465		.FLAGS[DEF$V_FROM]

;	1466	    THEN

;	1467	    MSGPTR=MOVEQ_COUNTED(.MSGPTR);

;	1468	!

;	1469	!GET NAME OF HOST NODE

;	1470	

;	1471	    IF 

;	1472		NOT MOVE_HOST(.TARGET_NODE,HOST_NODE)

;	1473	    THEN

;	1474		RETURN FALSE;

;	1475	

;	1476	!

;	1477	!BREAK CONNECTION TO NICE OBJECT

;	1478	

;	1479	    DEATTACH_NICE();

;	1480	

;	1481	!

;	1482	!MAKE CONNECTION TO HOST NICE OBJECT

;	1483	

;	1484	    IF

;	1485		NOT (STATUS=NEW_ATTACH(.HOST_NODE))

;	1486	    THEN

;	1487		ACP_NOT_MOUNTED;

;	1488	

;	1489	    IF

;	1490	        SINGLE_NICE(



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 14-2

; Digital Equipment Corporation

;

;	1491	            CH$DIFF(.MSGPTR,NICEMESSAGE[0]),

;	1492	            MAXIN)

;	1493	    THEN

;	1494	        NICERSP_DECODE(MAXIN);

;	1495	    RETURN TRUE

;	1496	END;











					 000C 0052F 	    .ENTRY  LOAD, Save R2,R3					      ; 1381

		         5E	       04  C2 00531 	    SUBL2   #4, SP						      ;

		         52	0000'  CF  9E 00534 	    MOVAB   NICEMESSAGE, MSGPTR					      ; 1434

		         82	       02  90 00539 	    MOVB    #2, (MSGPTR)+					      ; 1439

	   05	  0000G  CF	       03  E1 0053C 	    BBC     #3, FLAGS+1, 1$					      ; 1446

		         62	       14  90 00542 	    MOVB    #20, (MSGPTR)					      ; 1448

				       03  11 00545 	    BRB     2$							      ; 1445

		         62	       04  90 00547 1$:     MOVB    #4, (MSGPTR)					      ; 1450

				       52  D6 0054A 2$:     INCL    MSGPTR						      ; 1448

		         53	       52  D0 0054C 	    MOVL    MSGPTR, TARGET_NODE					      ; 1454

				       52  DD 0054F 	    PUSHL   MSGPTR						      ; 1459

		  0000V  CF	       01  FB 00551 	    CALLS   #1, MOVEQ_COUNTED					      ;

		         52	       50  D0 00556 	    MOVL    R0, MSGPTR						      ;

	   0A	  0000G  CF	       03  E1 00559 	    BBC     #3, FLAGS+1, 3$					      ; 1465

				       52  DD 0055F 	    PUSHL   MSGPTR						      ; 1467

		  0000V  CF	       01  FB 00561 	    CALLS   #1, MOVEQ_COUNTED					      ;

		         52	       50  D0 00566 	    MOVL    R0, MSGPTR						      ;

				4008   8F  BB 00569 3$:     PUSHR   #^M<R3,SP>						      ; 1472

		  0000G  CF	       02  FB 0056D 	    CALLS   #2, MOVE_HOST					      ;

		         42	       50  E9 00572 	    BLBC    R0, 6$						      ;

		  0000V  CF	       00  FB 00575 	    CALLS   #0, DEATTACH_NICE					      ; 1479

				       6E  DD 0057A 	    PUSHL   HOST_NODE						      ; 1485

		  0000V  CF	       01  FB 0057C 	    CALLS   #1, NEW_ATTACH					      ;

		         53	       50  D0 00581 	    MOVL    R0, STATUS						      ;

		         12	       53  E8 00584 	    BLBS    STATUS, 4$						      ;

				0000'  CF  9F 00587 	    PUSHAB  ERRMSG_NOACP					      ; 1381

		  0000G  CF	       01  FB 0058B 	    CALLS   #1, FAOOUT						      ; 1486

				       53  DD 00590 	    PUSHL   STATUS						      ;

		  0000V  CF	       01  FB 00592 	    CALLS   #1, SYS_SERV_ERR					      ;

				       1E  11 00597 	    BRB     6$							      ;

				       01  DD 00599 4$:     PUSHL   #1							      ; 1490

		         50	0000'  CF  9E 0059B 	    MOVAB   NICEMESSAGE, R0					      ; 1491

	   7E	         52	       50  C3 005A0 	    SUBL3   R0, MSGPTR, -(SP)					      ;

		  0000V  CF	       02  FB 005A4 	    CALLS   #2, SINGLE_NICE					      ; 1490

		         07	       50  E9 005A9 	    BLBC    R0, 5$						      ;

				       01  DD 005AC 	    PUSHL   #1							      ; 1494

		  0000V  CF	       01  FB 005AE 	    CALLS   #1, NICERSP_DECODE					      ;

		         50	       01  D0 005B3 5$:     MOVL    #1, R0						      ; 1495

					   04 005B6 	    RET     							      ;

				       50  D4 005B7 6$:     CLRL    R0							      ; 1381

					   04 005B9 	    RET     							      ;



; Routine Size:  139 bytes





; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 14-3

; Digital Equipment Corporation

;





; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 15

; Digital Equipment Corporation

;

;	1497	GLOBAL ROUTINE SHOW_STATUS=

;	1498	

;	1499	!++

;	1500	! FUNCTIONAL DESCRIPTION:

;	1501	!

;	1502	!	SHOWSTATUS IMPLEMENTS THE VARIOUS FORMS  OF THE

;	1503	!	NCP SHOW STATUS COMMAND.

;	1504	!

;	1505	! FORMAL PARAMETERS:

;	1506	!

;	1507	!	NONE

;	1508	!

;	1509	! IMPLICIT INPUTS:

;	1510	!

;	1511	!	QUEUE:THE PARAMETER QUEUE

;	1512	!

;	1513	! IMPLICIT OUTPUTS:

;	1514	!

;	1515	!	NONE

;	1516	!

;	1517	! ROUTINE VALUE:

;	1518	! COMPLETION CODES:

;	1519	!

;	1520	!	NONE

;	1521	!

;	1522	! SIDE EFFECTS:

;	1523	!

;	1524	!	NONE

;	1525	!

;	1526	!--

;	1527	

;	1528	BEGIN

;	1529	LITERAL

;	1530	    NICE_CODE=8,		!READ INFORMATION MESSAGE

;	1531	    OPTION_LOCAL=1,		!GET LOCAL STATUS

;	1532	    OPTION_NODE=3,		!GET NODE STATUS

;	1533	    OPTION_LINE=5,		!GET LINE STATUS

;	1534	    MAXOUT=LID$S_NAME+4,	!MAXIMUM NICE OUTPUT MESSAGE

;	1535	    MAXIN=3;			!MAXIMUM NICE RESPONSE

;	1536	

;	1537	

;	1538	MAP

;	1539	    FLAGS:BLOCK[1];

;	1540	REGISTER

;	1541	    MSGPTR;

;	1542	LOCAL

;	1543	    STATUS,

;	1544	    OPTION;

;	1545	BIND

;	1546	    NOSTATUS=CSTRING('!_NONE');

;	1547	

;	1548	!+

;	1549	!INITIALIZE MESSAGE POINTER

;	1550	

;	1551	    MSGPTR=CH$PTR(NICEMESSAGE[0]);



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 15-1

; Digital Equipment Corporation

;

;	1552	

;	1553	!+

;	1554	!DETERMINE NICE OPTION CODE

;	1555	

;	1556	    IF .FLAGS[DEF$V_LINE] THEN OPTION=OPTION_LINE;

;	1557	    IF .FLAGS[DEF$V_LOCAL] THEN OPTION=OPTION_LOCAL;

;	1558	    IF .FLAGS[DEF$V_NODE] THEN OPTION=OPTION_NODE;

;	1559	

;	1560	!+

;	1561	!BUILD MESSAGE PREFIX

;	1562	

;	1563	    MSGPTR=BUILD_PREFIX(.MSGPTR,NICE_CODE,.OPTION);

;	1564	

;	1565	    IF

;	1566		NOT (STATUS=ATTACH_NICE())

;	1567	    THEN

;	1568		ACP_NOT_MOUNTED();

;	1569	

;	1570	!+

;	1571	!SEND THE MESSAGE 

;	1572	

;	1573	    IF NOT SEND_NICE(

;	1574			CH$DIFF(.MSGPTR,NICEMESSAGE[0])) THEN END_DIALOGUE;

;	1575	

;	1576	!+

;	1577	!RECEIVE STATUS RESPONSE

;	1578	

;	1579	    IF NOT GET_NICE(

;	1580			MAXIN) THEN END_DIALOGUE;

;	1581	

;	1582	!+

;	1583	!VALIDATE FORMAT OF RESPONSE

;	1584	

;	1585	    IF         

;	1586		NOT NICERSP_DECODE(MAXIN)

;	1587	    THEN

;	1588		END_DIALOGUE;

;	1589	!+

;	1590	!OUTPUT APPROPRIATE HEADER

;	1591	

;	1592	    STATUS_HEADER(.OPTION);

;	1593	

;	1594	!+

;	1595	!READ BACK THE NUMBER OF DIALOGUE MESSAGES SPECIFIED

;	1596	

;	1597	    INCR DEX FROM 1 TO .DIALOGUE_MSGS DO

;	1598		IF NOT OUTPUT_STATUS(.OPTION) THEN END_DIALOGUE;

;	1599	

;	1600	!+

;	1601	!IF NO STATUS RECEIVED PRINT "NON"

;	1602	

;	1603	    IF

;	1604		.DIALOGUE_MSGS EQL 0

;	1605	    THEN

;	1606		FAOOUT(NOSTATUS);



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 15-2

; Digital Equipment Corporation

;

;	1607	

;	1608	!+

;	1609	!EXIT ROUTINE

;	1610	    RETURN TRUE

;	1611	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00214 P.AAX:  .BYTE   6							      ;

					      00215 	    .ASCII  \!_NONE\						      ;

					      0021B	    .BLKB   1



						    NOSTATUS=		P.AAX





							    .PSECT  $CODE$,NOWRT,2



					 0C1C 005BA 	    .ENTRY  SHOW_STATUS, Save R2,R3,R4,R10,R11			      ; 1497

		         5A	0000G  CF  9E 005BC 	    MOVAB   FLAGS, R10						      ;

		         5B	0000'  CF  9E 005C1 	    MOVAB   NICEMESSAGE, R11					      ;

		         52	       6B  9E 005C6 	    MOVAB   NICEMESSAGE, MSGPTR					      ; 1551

	   03	         6A	       01  E1 005C9 	    BBC     #1, FLAGS, 1$					      ; 1556

		         54	       05  D0 005CD 	    MOVL    #5, OPTION						      ;

	   03	         6A	       03  E1 005D0 1$:     BBC     #3, FLAGS, 2$					      ; 1557

		         54	       01  D0 005D4 	    MOVL    #1, OPTION						      ;

		         03	       6A  E9 005D7 2$:     BLBC    FLAGS, 3$						      ; 1558

		         54	       03  D0 005DA 	    MOVL    #3, OPTION						      ;

				       54  DD 005DD 3$:     PUSHL   OPTION						      ; 1563

				       08  DD 005DF 	    PUSHL   #8							      ;

				       52  DD 005E1 	    PUSHL   MSGPTR						      ;

		  0000V  CF	       03  FB 005E3 	    CALLS   #3, BUILD_PREFIX					      ;

		         52	       50  D0 005E8 	    MOVL    R0, MSGPTR						      ;

		  0000V  CF	       00  FB 005EB 	    CALLS   #0, ATTACH_NICE					      ; 1566

		         53	       50  D0 005F0 	    MOVL    R0, STATUS						      ;

		         12	       53  E8 005F3 	    BLBS    STATUS, 4$						      ;

				0000'  CF  9F 005F6 	    PUSHAB  ERRMSG_NOACP					      ; 1497

		  0000G  CF	       01  FB 005FA 	    CALLS   #1, FAOOUT						      ; 1567

				       53  DD 005FF 	    PUSHL   STATUS						      ;

		  0000V  CF	       01  FB 00601 	    CALLS   #1, SYS_SERV_ERR					      ;

				       59  11 00606 	    BRB     9$							      ;

		         50	       6B  9E 00608 4$:     MOVAB   NICEMESSAGE, R0					      ; 1574

	   7E	         52	       50  C3 0060B 	    SUBL3   R0, MSGPTR, -(SP)					      ;

		  0000V  CF	       01  FB 0060F 	    CALLS   #1, SEND_NICE					      ; 1573

		         2D	       50  E9 00614 	    BLBC    R0, 6$						      ;

				       03  DD 00617 	    PUSHL   #3							      ; 1579

		  0000V  CF	       01  FB 00619 	    CALLS   #1, GET_NICE					      ;

		         23	       50  E9 0061E 	    BLBC    R0, 6$						      ;

				       03  DD 00621 	    PUSHL   #3							      ; 1586

		  0000V  CF	       01  FB 00623 	    CALLS   #1, NICERSP_DECODE					      ;

		         19	       50  E9 00628 	    BLBC    R0, 6$						      ;

				       54  DD 0062B 	    PUSHL   OPTION						      ; 1592

		  0000V  CF	       01  FB 0062D 	    CALLS   #1, STATUS_HEADER					      ;

		         53	  21   AB  3C 00632 	    MOVZWL  NICEDATA+1, R3					      ; 1597



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 15-3

; Digital Equipment Corporation

;

				       52  D4 00636 	    CLRL    DEX							      ;

				       11  11 00638 	    BRB     7$							      ;

				       54  DD 0063A 5$:     PUSHL   OPTION						      ; 1598

		  0000V  CF	       01  FB 0063C 	    CALLS   #1, OUTPUT_STATUS					      ;

		         07	       50  E8 00641 	    BLBS    R0, 7$						      ;

		  0000V  CF	       00  FB 00644 6$:     CALLS   #0, DEATTACH_NICE					      ;

				       16  11 00649 	    BRB     9$							      ;

	   EB	         52	       53  F3 0064B 7$:     AOBLEQ  R3, DEX, 5$						      ; 1597

				  21   AB  B5 0064F 	    TSTW    NICEDATA+1						      ; 1604

				       09  12 00652 	    BNEQ    8$							      ;

				0000'  CF  9F 00654 	    PUSHAB  NOSTATUS						      ; 1497

		  0000G  CF	       01  FB 00658 	    CALLS   #1, FAOOUT						      ; 1606

		         50	       01  D0 0065D 8$:     MOVL    #1, R0						      ; 1610

					   04 00660 	    RET     							      ;

				       50  D4 00661 9$:     CLRL    R0							      ; 1497

					   04 00663 	    RET     							      ;



; Routine Size:  170 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 16

; Digital Equipment Corporation

;

;	1612	ROUTINE OUTPUT_STATUS(OPTION)=

;	1613	

;	1614	!++

;	1615	! FUNCTIONAL DESCRIPTION:

;	1616	!

;	1617	!	ROUTINE CALLED BY SHOW_STATUS TO READ AND PROCESS A

;	1618	!	DIALOGUE MESSAGE FROM THE NICE OBJECT. OUTPUT_STATUS

;	1619	!	CHECKS THE OPTION OF THE MESSAGE AND CALLS ONE OF THREE

;	1620	!	OPTION DEPENDENT ROUTINES TO FURTHER DISPLAY THE DATA.

;	1621	!

;	1622	! FORMAL PARAMETERS:

;	1623	!

;	1624	!	OPTION:THE TYPE OF STATUS MESSAGE EXPECTED

;	1625	!		1:LOCAL NODE STATUS

;	1626	!		3:REMOTE NODE STATUS

;	1627	!		5:LINE STATUS

;	1628	!

;	1629	! IMPLICIT INPUTS:

;	1630	!

;	1631	!	NONE

;	1632	!

;	1633	! IMPLICIT OUTPUTS:

;	1634	!

;	1635	!	NONE

;	1636	!

;	1637	! ROUTINE VALUE:

;	1638	! COMPLETION CODES:

;	1639	!

;	1640	!	FALSE IF DATABLOCK IMPROPERLY FORMATTED

;	1641	!

;	1642	! SIDE EFFECTS:

;	1643	!

;	1644	!	NONE

;	1645	!

;	1646	!--

;	1647	

;	1648	BEGIN

;	1649	BIND

;	1650	

;	1651	    !+

;	1652	    !CONTROL VECTORS FOR PARSING STATUS DATABLOCKS

;	1653	

;	1654		LOSTA_PARSE_VEC=UPLIT BYTE(10,

;	1655			COUNTED_STRING,			!LOCAL NODE NAME

;	1656			EXTENSIBLE,			!NODE NUMBER

;	1657			BYTE_LONG,			!NODE STATE

;	1658			WORD_LONG,			!2 LOGGING DIGITS

;	1659			COUNTED_STRING,			!DEFAULT HOST

;	1660			WORD_LONG,BYTE_LONG,		!ROUTING VER DIGITS

;	1661			WORD_LONG,BYTE_LONG,		!COMM VER DIGITS

;	1662			COUNTED_STRING),		!OPERATING SYSTEM

;	1663		RMSTA_PARSE_VEC=UPLIT BYTE(5,

;	1664			COUNTED_STRING,			!NODE NAME

;	1665			EXTENSIBLE,			!NODE NUMBER

;	1666			BYTE_LONG,			!NODE STATE



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 16-1

; Digital Equipment Corporation

;

;	1667			QUAD_LONG,			!PASSWORD

;	1668			QUAD_LONG),			!PASSWORD

;	1669		LISTA_PARSE_VEC=UPLIT BYTE(4,

;	1670			LINE_ID,			!LINE IDENTIFIER

;	1671			BYTE_LONG,			!LINE STATE

;	1672			WORD_LONG,			!LOGGING STATE

;	1673			COUNTED_STRING);		!REMOTE NODE

;	1674	

;	1675	LITERAL

;	1676	    OPTION_LOCAL=1,		!GET LOCAL STATUS

;	1677	    OPTION_NODE=3,		!GET NODE STATUS

;	1678	    OPTION_LINE=5,		!GET LINE STATUS

;	1679	    MAXDATA=60;			!MAX SIZE OF STATUS DATA

;	1680	

;	1681	

;	1682	

;	1683	REGISTER

;	1684	    MSGPTR;

;	1685	!+

;	1686	!POINT TO MESSAGE BUFFER

;	1687	

;	1688	    MSGPTR=CH$PTR(NICEDATA[0])+1;

;	1689	

;	1690	!+

;	1691	!READ DIALOGUE MESSAGE

;	1692	

;	1693	    IF NOT GET_NICE(MAXDATA) THEN RETURN FALSE;

;	1694	

;	1695	

;	1696	!+

;	1697	!CALL THE PROPER RECORD I/O ROUTINE

;	1698	

;	1699	    CASE .OPTION FROM OPTION_LOCAL TO OPTION_LINE OF

;	1700		SET

;	1701		[OPTION_LOCAL]:

;	1702		    BEGIN

;	1703		    IF NOT PARSE(OPTION_LOCAL,LOSTA_PARSE_VEC) THEN RETURN FALSE;

;	1704		    IF NOT LOCAL_STATUS(.MSGPTR) THEN RETURN FALSE

;	1705		    END;

;	1706		[OPTION_NODE]:

;	1707		    BEGIN

;	1708		    IF NOT PARSE(OPTION_NODE,RMSTA_PARSE_VEC)THEN RETURN FALSE;

;	1709		    IF NOT REMOTE_STATUS(.MSGPTR) THEN RETURN FALSE

;	1710		    END;

;	1711		[OPTION_LINE]:

;	1712		    BEGIN

;	1713		    IF NOT PARSE(OPTION_LINE,LISTA_PARSE_VEC)THEN RETURN FALSE;

;	1714		    IF NOT LINE_STATUS(.MSGPTR) THEN RETURN FALSE

;	1715		    END;

;	1716		[INRANGE]:;

;	1717		TES;

;	1718	

;	1719	!+

;	1720	!EXIT ROUTINE

;	1721	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 16-2

; Digital Equipment Corporation

;

;	1722	     RETURN TRUE

;	1723	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      0021C P.AAY:  .BYTE   10, 1, 2, 3, 4, 1, 4, 3, 4, 3, 1			      ;

					      00227	    .BLKB   1

					      00228 P.AAZ:  .BYTE   5, 1, 2, 3, 8, 8					      ;

					      0022E	    .BLKB   2

					      00230 P.ABA:  .BYTE   4, 5, 3, 4, 1					      ;

					      00235	    .BLKB   3



						    LOSTA_PARSE_VEC=	P.AAY

						    RMSTA_PARSE_VEC=	P.AAZ

						    LISTA_PARSE_VEC=	P.ABA





							    .PSECT  $CODE$,NOWRT,2



					 0804 00664 OUTPUT_STATUS:

							    .WORD   Save R2,R11						      ; 1612

		         5B	0000V  CF  9E 00666 	    MOVAB   PARSE, R11						      ;

		         52	0000'  CF  9E 0066B 	    MOVAB   NICEDATA+1, MSGPTR					      ; 1688

				       3C  DD 00670 	    PUSHL   #60							      ; 1693

		  0000V  CF	       01  FB 00672 	    CALLS   #1, GET_NICE					      ;

		         53	       50  E9 00677 	    BLBC    R0, 7$						      ;

	   04	         01	  04   AC  CF 0067A 	    CASEL   OPTION, #1, #4					      ; 1699

	 001F	       004A	     000A     0067F 1$:     .WORD   2$-1$,-						      ;

		       0034	     004A     00685		    6$-1$,-						      ;

								    3$-1$,-						      ;

								    6$-1$,-						      ;

								    4$-1$						      ;

				0000'  CF  9F 00689 2$:     PUSHAB  LOSTA_PARSE_VEC					      ; 1612

				       01  DD 0068D 	    PUSHL   #1							      ; 1703

		         6B	       02  FB 0068F 	    CALLS   #2, PARSE						      ;

		         38	       50  E9 00692 	    BLBC    R0, 7$						      ;

				       52  DD 00695 	    PUSHL   MSGPTR						      ; 1704

		  0000V  CF	       01  FB 00697 	    CALLS   #1, LOCAL_STATUS					      ;

				       28  11 0069C 	    BRB     5$							      ;

				0000'  CF  9F 0069E 3$:     PUSHAB  RMSTA_PARSE_VEC					      ; 1612

				       03  DD 006A2 	    PUSHL   #3							      ; 1708

		         6B	       02  FB 006A4 	    CALLS   #2, PARSE						      ;

		         23	       50  E9 006A7 	    BLBC    R0, 7$						      ;

				       52  DD 006AA 	    PUSHL   MSGPTR						      ; 1709

		  0000V  CF	       01  FB 006AC 	    CALLS   #1, REMOTE_STATUS					      ;

				       13  11 006B1 	    BRB     5$							      ;

				0000'  CF  9F 006B3 4$:     PUSHAB  LISTA_PARSE_VEC					      ; 1612

				       05  DD 006B7 	    PUSHL   #5							      ; 1713

		         6B	       02  FB 006B9 	    CALLS   #2, PARSE						      ;

		         0E	       50  E9 006BC 	    BLBC    R0, 7$						      ;

				       52  DD 006BF 	    PUSHL   MSGPTR						      ; 1714

		  0000V  CF	       01  FB 006C1 	    CALLS   #1, LINE_STATUS					      ;

		         04	       50  E9 006C6 5$:     BLBC    R0, 7$						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 16-3

; Digital Equipment Corporation

;

		         50	       01  D0 006C9 6$:     MOVL    #1, R0						      ; 1722

					   04 006CC 	    RET     							      ;

				       50  D4 006CD 7$:     CLRL    R0							      ; 1612

					   04 006CF 	    RET     							      ;



; Routine Size:  108 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 17

; Digital Equipment Corporation

;

;	1724	ROUTINE STATUS_HEADER(OPTION):NOVALUE=

;	1725	

;	1726	!++

;	1727	! FUNCTIONAL DESCRIPTION:

;	1728	!

;	1729	!	CALLED BY SHOW_STATUS TO OUTPUT HEADER FOR PARTICULAR

;	1730	!	"SHOW STATUS" BEING PROCESSED

;	1731	!

;	1732	! FORMAL PARAMETERS:

;	1733	!

;	1734	!	OPTION:TYPE OF STATUS HEADER DESIRED 

;	1735	!	 	1:LOCAL

;	1736	!		3:REMOTE

;	1737	!		5:LINE

;	1738	!

;	1739	! IMPLICIT INPUTS:

;	1740	!

;	1741	!	NONE

;	1742	!

;	1743	! IMPLICIT OUTPUTS:

;	1744	!

;	1745	!	NONE

;	1746	!

;	1747	! ROUTINE VALUE:

;	1748	! COMPLETION CODES:

;	1749	!

;	1750	!	NONE

;	1751	!

;	1752	! SIDE EFFECTS:

;	1753	!

;	1754	!	NONE

;	1755	!

;	1756	!--

;	1757	

;	1758	BEGIN

;	1759	

;	1760	MAP FLAGS:BLOCK[1];

;	1761	BIND

;	1762	    LOCAL_HEADER=CSTRING(

;     P 1763				'!/REQUEST #!UL; STATUS OF LOCAL, AS OF !%D!/'

;     P 1764				),

;	1765	    ALLNODES_HEADER=CSTRING(

;     P 1766			'!/REQUEST #!UL; STATUS OF KNOWN REMOTES, AS OF !%D',

;     P 1767			'!/!_NAME!_NUMBER!_STATE!/'

;     P 1768			),

;	1769	    NODE_HEADER=CSTRING(

;     P 1770			'!/REQUEST #!UL; STATUS OF  REMOTE, AS OF !%D!/',

;     P 1771			'!/!_NAME!_NUMBER!_STATE!/'

;     P 1772			),

;	1773	    ALLLINES_HEADER=CSTRING(

;     P 1774			'!/REQUEST #!UL; STATUS OF KNOWN LINES, AS OF !%D!/',

;     P 1775			'!/!_LINE-ID!_!_!_STATE!_!_!_REMOTE!/'

;     P 1776			),

;	1777	    LINE_HEADER=CSTRING(

;     P 1778			'!/REQUEST #!UL; STATUS OF LINE, AS OF !%D!/',



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 17-1

; Digital Equipment Corporation

;

;     P 1779			'!/!_LINE-ID!_!_!_STATE!_!_!_REMOTE!/'

;     P 1780			);

;	1781	

;	1782	!+

;	1783	!OPTIONS ARE CURRENTLY THE FOLLOWING

;	1784	

;	1785	!    1 FOR LOCAL STATUS

;	1786	!    3 FOR REMOTE STATUS

;	1787	!    5 FOR LINE STATUS

;	1788	!IF THE 'KNOWN' OPTION IS INDICATED MODIFY OPTION

;	1789	!SO THAT

;	1790	!    2 FOR KNOWN REMOTES

;	1791	!    4 FOR KNOWN LINES

;	1792	!WHICH ALLOWS EASY "CASEING"

;	1793	

;	1794	    IF

;	1795		.FLAGS[DEF$V_KNOWN]

;	1796	    THEN

;	1797		OPTION=.OPTION-1;

;	1798	

;	1799	!+

;	1800	!PRINT DESIRED HEADING

;	1801	

;	1802	    CASE .OPTION FROM 1 TO 5 OF

;	1803	

;	1804		SET

;	1805		[1]:

;	1806		    !+

;	1807		    !LOCAL STATUS

;	1808	

;	1809			FAOOUT(LOCAL_HEADER,.COMMAND_COUNT,0);

;	1810		[2]:

;	1811		    !+

;	1812		    !KNOWN NODES

;	1813		

;	1814			FAOOUT(ALLNODES_HEADER,.COMMAND_COUNT,0);

;	1815		[3]:

;	1816		    !+

;	1817		    !A PARTICULAR NODE

;	1818		

;	1819			FAOOUT(NODE_HEADER,.COMMAND_COUNT,0);

;	1820		[4]:

;	1821		    !+

;	1822		    !ALL LINES

;	1823	

;	1824			FAOOUT(ALLLINES_HEADER,.COMMAND_COUNT,0);

;	1825		[5]:

;	1826		    !+

;	1827		    !A PARTICULAR LINE

;	1828	

;	1829			FAOOUT(LINE_HEADER,.COMMAND_COUNT,0);

;	1830	        TES;

;	1831	!+

;	1832	!LEAVE

;	1833	     RETURN



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 17-2

; Digital Equipment Corporation

;

;	1834	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00238 P.ABB:  .BYTE   44							      ;

					      00239 	    .ASCII  \!/REQUEST #!UL; STATUS OF LOCAL, AS OF !%D!/\	      ;

					      00265	    .BLKB   3

					      00268 P.ABC:  .BYTE   75							      ;

					      00269 	    .ASCII  \!/REQUEST #!UL; STATUS OF KNOWN REMOTES, AS OF !%D!/!_\  ;

					      0029F 	    .ASCII  \NAME!_NUMBER!_STATE!/\				      ;

					      002B4 P.ABD:  .BYTE   71							      ;

					      002B5 	    .ASCII  \!/REQUEST #!UL; STATUS OF  REMOTE, AS OF !%D!/!/!_NAME\  ;

					      002EB 	    .ASCII  \!_NUMBER!_STATE!/\					      ;

					      002FC P.ABE:  .BYTE   86							      ;

					      002FD 	    .ASCII  \!/REQUEST #!UL; STATUS OF KNOWN LINES, AS OF !%D!/!/!_\  ;

					      00333 	    .ASCII  \LINE-ID!_!_!_STATE!_!_!_REMOTE!/\			      ;

					      00353	    .BLKB   1

					      00354 P.ABF:  .BYTE   79							      ;

					      00355 	    .ASCII  \!/REQUEST #!UL; STATUS OF LINE, AS OF !%D!/!/!_LINE-ID\  ;

					      0038B 	    .ASCII  \!_!_!_STATE!_!_!_REMOTE!/\				      ;



						    LOCAL_HEADER=	P.ABB

						    ALLNODES_HEADER=	P.ABC

						    NODE_HEADER=	P.ABD

						    ALLLINES_HEADER=	P.ABE

						    LINE_HEADER=	P.ABF





							    .PSECT  $CODE$,NOWRT,2



					 0000 006D0 STATUS_HEADER:

							    .WORD   Save nothing					      ; 1724

	   03	  0000G  CF	       04  E1 006D2 	    BBC     #4, FLAGS, 1$					      ; 1795

				  04   AC  D7 006D8 	    DECL    OPTION						      ; 1797

		         50	0000G  CF  D0 006DB 1$:     MOVL    COMMAND_COUNT, R0					      ; 1809

	   04	         01	  04   AC  CF 006E0 	    CASEL   OPTION, #1, #4					      ; 1802

	 001E	       0014	     000A     006E5 2$:     .WORD   3$-2$,-						      ;

		       0032	     0028     006EB		    4$-2$,-						      ;

								    5$-2$,-						      ;

								    6$-2$,-						      ;

								    7$-2$						      ;

				       7E  D4 006EF 3$:     CLRL    -(SP)						      ; 1809

				       50  DD 006F1 	    PUSHL   R0							      ;

				0000'  CF  9F 006F3 	    PUSHAB  LOCAL_HEADER					      ; 1724

				       26  11 006F7 	    BRB     8$							      ; 1809

				       7E  D4 006F9 4$:     CLRL    -(SP)						      ; 1814

				       50  DD 006FB 	    PUSHL   R0							      ;

				0000'  CF  9F 006FD 	    PUSHAB  ALLNODES_HEADER					      ; 1724

				       1C  11 00701 	    BRB     8$							      ; 1814

				       7E  D4 00703 5$:     CLRL    -(SP)						      ; 1819

				       50  DD 00705 	    PUSHL   R0							      ;

				0000'  CF  9F 00707 	    PUSHAB  NODE_HEADER						      ; 1724

				       12  11 0070B 	    BRB     8$							      ; 1819



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 17-3

; Digital Equipment Corporation

;

				       7E  D4 0070D 6$:     CLRL    -(SP)						      ; 1824

				       50  DD 0070F 	    PUSHL   R0							      ;

				0000'  CF  9F 00711 	    PUSHAB  ALLLINES_HEADER					      ; 1724

				       08  11 00715 	    BRB     8$							      ; 1824

				       7E  D4 00717 7$:     CLRL    -(SP)						      ; 1829

				       50  DD 00719 	    PUSHL   R0							      ;

				0000'  CF  9F 0071B 	    PUSHAB  LINE_HEADER						      ; 1724

		  0000G  CF	       03  FB 0071F 8$:     CALLS   #3, FAOOUT						      ; 1829

					   04 00724 	    RET     							      ; 1724



; Routine Size:  85 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 18

; Digital Equipment Corporation

;

;	1835	ROUTINE LOCAL_STATUS(MESSAGE)=

;	1836	

;	1837	!++

;	1838	! FUNCTIONAL DESCRIPTION:

;	1839	!

;	1840	!	PRINTS OUT THE CONTENTS OF A LOCAL STATUS DATABLOCK

;	1841	!

;	1842	! FORMAL PARAMETERS:

;	1843	!

;	1844	!	MESSAGE:POINTER TO THE DATA BLOCK

;	1845	!

;	1846	! IMPLICIT INPUTS:

;	1847	!

;	1848	!	NONE

;	1849	!

;	1850	! IMPLICIT OUTPUTS:

;	1851	!

;	1852	!	NONE

;	1853	!

;	1854	! ROUTINE VALUE:

;	1855	! COMPLETION CODES:

;	1856	!

;	1857	!	FALSE IF DATABLOCK IMPROPERLY FORMATTED

;	1858	!

;	1859	! SIDE EFFECTS:

;	1860	!

;	1861	!	NONE

;	1862	!

;	1863	!--

;	1864	

;	1865	BEGIN

;	1866	

;	1867	REGISTER

;	1868	    MSGPTR;

;	1869	

;	1870	BIND

;	1871	

;	1872	    SHO_LOCALSTATUS=CSTRING(

;     P 1873		'!/NODE=!AC(!UL),SYSTEM=!AC',

;     P 1874		'!/ROUTING VERSION=!UB.!UB.!UB   ',

;     P 1875		'COMMUNICATION VERSION=!UB.!UB.!UB',

;     P 1876		'!/STATE=!AC',

;     P 1877		'!/DEFAULT HOST=!AC'

;     P 1878		);

;	1879	 

;	1880	LOCAL

;	1881	    NODE,

;	1882	    NODE_NUMBER,

;	1883	    STATE,

;	1884	    DEFHOST,

;	1885	    ROUTE_VER:VECTOR[3,BYTE],

;	1886	    COMM_VER:VECTOR[3,BYTE],

;	1887	    OPSYS;

;	1888	

;	1889	!+



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 18-1

; Digital Equipment Corporation

;

;	1890	!GET POINTER TO MESSAGE

;	1891	

;	1892	    MSGPTR=CH$PTR(.MESSAGE);

;	1893	

;	1894	!+

;	1895	!COLLECT NODE NAME INFO

;	1896	

;	1897	    NODE=.MSGPTR;

;	1898	    MSGPTR=CH$PLUS(CH$RCHAR_A(MSGPTR),.MSGPTR);

;	1899	

;	1900	!+

;	1901	!COLLECT NODE NUMBER

;	1902	

;	1903	    MSGPTR=EXTEND_BINARY(.MSGPTR,NODE_NUMBER);

;	1904	

;	1905	!+

;	1906	!COLLECT NODE STATE

;	1907	

;	1908	    IF

;	1909		NOT CONVERT_STATE(CH$RCHAR_A(MSGPTR),STATE)

;	1910	    THEN

;	1911		RETURN FALSE;

;	1912	

;	1913	!+

;	1914	!SKIP LOGGING STATES INFO

;	1915	

;	1916	    MSGPTR=CH$PLUS(2,.MSGPTR);

;	1917	

;	1918	!+

;	1919	!COLLECT DEFAULT HOST

;	1920	    

;	1921	    DEFHOST=.MSGPTR;

;	1922	    MSGPTR=CH$PLUS(CH$RCHAR_A(MSGPTR),.MSGPTR);

;	1923	

;	1924	

;	1925	!+

;	1926	!COLLECT ROUTING DIGITS

;	1927	

;	1928	    ROUTE_VER[0]=CH$RCHAR_A(MSGPTR);

;	1929	    ROUTE_VER[1]=CH$RCHAR_A(MSGPTR);

;	1930	    ROUTE_VER[2]=CH$RCHAR_A(MSGPTR);

;	1931	

;	1932	!+

;	1933	!COLLECT COMMUNICATIONS VERSION DIGITS

;	1934	

;	1935	    COMM_VER[0]=CH$RCHAR_A(MSGPTR);

;	1936	    COMM_VER[1]=CH$RCHAR_A(MSGPTR);

;	1937	    COMM_VER[2]=CH$RCHAR_A(MSGPTR);

;	1938	

;	1939	!+

;	1940	!COLLECT OPSYS NAME

;	1941	

;	1942	    OPSYS=.MSGPTR;

;	1943	    

;	1944	!+



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 18-2

; Digital Equipment Corporation

;

;	1945	!OUTPUT STATUS MESSAGE

;	1946	

;	1947	    FAOOUT(SHO_LOCALSTATUS,

;	1948			.NODE,

;	1949			.NODE_NUMBER,

;	1950			.OPSYS,

;	1951			.ROUTE_VER[0],.ROUTE_VER[1],.ROUTE_VER[2],

;	1952			.COMM_VER[0],.COMM_VER[1],.COMM_VER[2],

;	1953			.STATE,

;	1954			.DEFHOST);

;	1955	    RETURN TRUE

;	1956	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      003A4 P.ABG:  .BYTE   120							      ;

					      003A5 	    .ASCII  \!/NODE=!AC(!UL),SYSTEM=!AC!/ROUTING VERSION=!UB.!UB.!U\  ;

					      003DB 	    .ASCII  \B   COMMUNICATION VERSION=!UB.!UB.!UB!/STATE=!AC!/DEFA\  ;

					      00411 	    .ASCII  \ULT HOST=!AC\					      ;

					      0041D	    .BLKB   3



						    SHO_LOCALSTATUS=	P.ABG





							    .PSECT  $CODE$,NOWRT,2



					 000C 00725 LOCAL_STATUS:

							    .WORD   Save R2,R3						      ; 1835

		         5E	       10  C2 00727 	    SUBL2   #16, SP						      ;

		         52	  04   AC  D0 0072A 	    MOVL    MESSAGE, MSGPTR					      ; 1892

		         53	       52  D0 0072E 	    MOVL    MSGPTR, NODE					      ; 1897

		         50	       82  9A 00731 	    MOVZBL  (MSGPTR)+, R0					      ; 1898

		         52	       50  C0 00734 	    ADDL2   R0, MSGPTR						      ;

				  0C   AE  9F 00737 	    PUSHAB  NODE_NUMBER						      ; 1903

				       52  DD 0073A 	    PUSHL   MSGPTR						      ;

		  0000V  CF	       02  FB 0073C 	    CALLS   #2, EXTEND_BINARY					      ;

		         52	       50  D0 00741 	    MOVL    R0, MSGPTR						      ;

				  08   AE  9F 00744 	    PUSHAB  STATE						      ; 1909

		         50	       82  9A 00747 	    MOVZBL  (MSGPTR)+, R0					      ;

				       50  DD 0074A 	    PUSHL   R0							      ;

		  0000V  CF	       02  FB 0074C 	    CALLS   #2, CONVERT_STATE					      ;

		         57	       50  E9 00751 	    BLBC    R0, 1$						      ;

		         52	       02  C0 00754 	    ADDL2   #2, MSGPTR						      ; 1916

		         51	       52  D0 00757 	    MOVL    MSGPTR, DEFHOST					      ; 1921

		         50	       82  9A 0075A 	    MOVZBL  (MSGPTR)+, R0					      ; 1922

		         52	       50  C0 0075D 	    ADDL2   R0, MSGPTR						      ;

		    04   AE	       82  90 00760 	    MOVB    (MSGPTR)+, ROUTE_VER				      ; 1928

		    05   AE	       82  90 00764 	    MOVB    (MSGPTR)+, ROUTE_VER+1				      ; 1929

		    06   AE	       82  90 00768 	    MOVB    (MSGPTR)+, ROUTE_VER+2				      ; 1930

		         6E	       82  90 0076C 	    MOVB    (MSGPTR)+, COMM_VER					      ; 1935

		    01   AE	       82  90 0076F 	    MOVB    (MSGPTR)+, COMM_VER+1				      ; 1936

		    02   AE	       82  90 00773 	    MOVB    (MSGPTR)+, COMM_VER+2				      ; 1937

		         50	       52  D0 00777 	    MOVL    MSGPTR, OPSYS					      ; 1942



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 18-3

; Digital Equipment Corporation

;

				       51  DD 0077A 	    PUSHL   DEFHOST						      ; 1947

				  0C   AE  DD 0077C 	    PUSHL   STATE						      ;

		         7E	  0A   AE  9A 0077F 	    MOVZBL  COMM_VER+2, -(SP)					      ;

		         7E	  0D   AE  9A 00783 	    MOVZBL  COMM_VER+1, -(SP)					      ;

		         7E	  10   AE  9A 00787 	    MOVZBL  COMM_VER, -(SP)					      ;

		         7E	  1A   AE  9A 0078B 	    MOVZBL  ROUTE_VER+2, -(SP)					      ;

		         7E	  1D   AE  9A 0078F 	    MOVZBL  ROUTE_VER+1, -(SP)					      ;

		         7E	  20   AE  9A 00793 	    MOVZBL  ROUTE_VER, -(SP)					      ;

				       50  DD 00797 	    PUSHL   OPSYS						      ;

				  30   AE  DD 00799 	    PUSHL   NODE_NUMBER						      ;

				       53  DD 0079C 	    PUSHL   NODE						      ;

				0000'  CF  9F 0079E 	    PUSHAB  SHO_LOCALSTATUS					      ; 1835

		  0000G  CF	       0C  FB 007A2 	    CALLS   #12, FAOOUT						      ; 1947

		         50	       01  D0 007A7 	    MOVL    #1, R0						      ; 1955

					   04 007AA 	    RET     							      ;

				       50  D4 007AB 1$:     CLRL    R0							      ; 1835

					   04 007AD 	    RET     							      ;



; Routine Size:  137 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 19

; Digital Equipment Corporation

;

;	1957	ROUTINE REMOTE_STATUS(MESSAGE)=

;	1958	

;	1959	!++

;	1960	! FUNCTIONAL DESCRIPTION:

;	1961	!

;	1962	!	DISPLAYS A REMOTE STATUS DATABLOCK

;	1963	!

;	1964	! FORMAL PARAMETERS:

;	1965	!

;	1966	!	MESSAGE:POINTER TO THE REMOTE STATUS DATABLOCK

;	1967	!

;	1968	! IMPLICIT INPUTS:

;	1969	!

;	1970	!	NONE

;	1971	!

;	1972	! IMPLICIT OUTPUTS:

;	1973	!

;	1974	!	NONE

;	1975	!

;	1976	! ROUTINE VALUE:

;	1977	! COMPLETION CODES:

;	1978	!

;	1979	!	FALSE IF DATABLOCK IMPROPERLY FORMATTED

;	1980	!

;	1981	! SIDE EFFECTS:

;	1982	!

;	1983	!	NONE

;	1984	!

;	1985	!--

;	1986	

;	1987	BEGIN

;	1988	

;	1989	LOCAL

;	1990	    NODE_NAME,

;	1991	    NODE_NUMBER,

;	1992	    STATE;

;	1993	

;	1994	REGISTER

;	1995	    MSGPTR;

;	1996	

;	1997	BIND

;	1998	    SHO_RMTSTATUS=CSTRING('!/!_!AC!_!UL!_!AC');

;	1999	

;	2000	!+

;	2001	!START OF MESSAGE

;	2002	

;	2003	    MSGPTR=CH$PTR(.MESSAGE);

;	2004	

;	2005	!+

;	2006	!NODE NAME STRING

;	2007	

;	2008	    NODE_NAME=.MSGPTR;

;	2009	    MSGPTR=CH$PLUS(CH$RCHAR_A(MSGPTR),.MSGPTR);

;	2010	

;	2011	!+



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 19-1

; Digital Equipment Corporation

;

;	2012	!COLLECT NODE NUMBER

;	2013	

;	2014	    MSGPTR=EXTEND_BINARY(.MSGPTR,NODE_NUMBER);

;	2015	

;	2016	!+

;	2017	!RETRIEVE NODE STATE IN STRING FORMAT

;	2018	

;	2019	    IF

;	2020		NOT CONVERT_STATE(CH$RCHAR_A(MSGPTR),STATE)

;	2021	    THEN

;	2022		RETURN FALSE;

;	2023	

;	2024	!+

;	2025	!OUTPUT NODE STATUS

;	2026	

;	2027	    FAOOUT(SHO_RMTSTATUS,

;	2028			.NODE_NAME,

;	2029			.NODE_NUMBER,

;	2030			.STATE);

;	2031	

;	2032	RETURN TRUE

;	2033	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00420 P.ABH:  .BYTE   17							      ;

					      00421 	    .ASCII  \!/!_!AC!_!UL!_!AC\					      ;

					      00432	    .BLKB   2



						    SHO_RMTSTATUS=	P.ABH





							    .PSECT  $CODE$,NOWRT,2



					 000C 007AE REMOTE_STATUS:

							    .WORD   Save R2,R3						      ; 1957

		         5E	       08  C2 007B0 	    SUBL2   #8, SP						      ;

		         52	  04   AC  D0 007B3 	    MOVL    MESSAGE, MSGPTR					      ; 2003

		         53	       52  D0 007B7 	    MOVL    MSGPTR, NODE_NAME					      ; 2008

		         50	       82  9A 007BA 	    MOVZBL  (MSGPTR)+, R0					      ; 2009

		         52	       50  C0 007BD 	    ADDL2   R0, MSGPTR						      ;

				  04   AE  9F 007C0 	    PUSHAB  NODE_NUMBER						      ; 2014

				       52  DD 007C3 	    PUSHL   MSGPTR						      ;

		  0000V  CF	       02  FB 007C5 	    CALLS   #2, EXTEND_BINARY					      ;

		         52	       50  D0 007CA 	    MOVL    R0, MSGPTR						      ;

				       5E  DD 007CD 	    PUSHL   SP							      ; 2020

		         50	       82  9A 007CF 	    MOVZBL  (MSGPTR)+, R0					      ;

				       50  DD 007D2 	    PUSHL   R0							      ;

		  0000V  CF	       02  FB 007D4 	    CALLS   #2, CONVERT_STATE					      ;

		         14	       50  E9 007D9 	    BLBC    R0, 1$						      ;

				       6E  DD 007DC 	    PUSHL   STATE						      ; 2027

				  08   AE  DD 007DE 	    PUSHL   NODE_NUMBER						      ;

				       53  DD 007E1 	    PUSHL   NODE_NAME						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 19-2

; Digital Equipment Corporation

;

				0000'  CF  9F 007E3 	    PUSHAB  SHO_RMTSTATUS					      ; 1957

		  0000G  CF	       04  FB 007E7 	    CALLS   #4, FAOOUT						      ; 2027

		         50	       01  D0 007EC 	    MOVL    #1, R0						      ; 2032

					   04 007EF 	    RET     							      ;

				       50  D4 007F0 1$:     CLRL    R0							      ; 1957

					   04 007F2 	    RET     							      ;



; Routine Size:  69 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 20

; Digital Equipment Corporation

;

;	2034	ROUTINE LINE_STATUS(MESSAGE)=

;	2035	

;	2036	!++

;	2037	! FUNCTIONAL DESCRIPTION:

;	2038	!

;	2039	!	LINE_STATUS OUTPUTS A LINE CONSISTING OF LINE-ID AND

;	2040	!	LINE STATUS USING A NICE 'LINE STATUS' DIALOGUE AS

;	2041	!	INPUT

;	2042	!

;	2043	! FORMAL PARAMETERS:

;	2044	!

;	2045	!	MESSAGE: THE ADDRESS OF THE NICE DIALOGUE MESSAGE

;	2046	!

;	2047	! IMPLICIT INPUTS:

;	2048	!

;	2049	!	NONE

;	2050	!

;	2051	! IMPLICIT OUTPUTS:

;	2052	!

;	2053	!	NONE

;	2054	!

;	2055	! ROUTINE VALUE:

;	2056	! COMPLETION CODES:

;	2057	!

;	2058	!	TRUE:IF LINE DEVICE CODES AND LINE-ID TYPES ARE VALID

;	2059	!

;	2060	! SIDE EFFECTS:

;	2061	!

;	2062	!	NONE

;	2063	!

;	2064	!--

;	2065	

;	2066	BEGIN

;	2067	

;	2068	LOCAL

;	2069	    STATE,

;	2070	    TYPE;

;	2071	

;	2072	REGISTER

;	2073	    MSGPTR;

;	2074	

;	2075	BIND

;	2076	    LINEPOS=CSTRING('!_'),

;	2077	    SHO_STATE=CSTRING('!24AC!AC!/');

;	2078	

;	2079	!+

;	2080	!SETUP POINTER TO MESSAGE

;	2081	

;	2082	    MSGPTR=.MESSAGE;

;	2083	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 21

; Digital Equipment Corporation

;

;	2084	!+

;	2085	!PRINT LINE-ID

;	2086	

;	2087	    FAOOUT(LINEPOS);		!POSITION CURSOR

;	2088	    MSGPTR=OUTPUT_LINEID(.MESSAGE);	 

;	2089	!+

;	2090	!OUTPUT LINE STATE AND NODE NAME

;	2091	

;	2092	    IF

;	2093	 	NOT CONVERT_STATE(CH$RCHAR_A(MSGPTR),STATE)

;	2094	    THEN

;	2095		RETURN FALSE

;	2096	    ELSE

;	2097		FAOOUT(SHO_STATE,.STATE,(.MSGPTR)+2);

;	2098	    RETURN TRUE

;	2099	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00434 P.ABI:  .BYTE   2							      ;

					      00435 	    .ASCII  \!_\						      ;

					      00437	    .BLKB   1

					      00438 P.ABJ:  .BYTE   10							      ;

					      00439 	    .ASCII  \!24AC!AC!/\					      ;

					      00443	    .BLKB   1



						    LINEPOS=		P.ABI

						    SHO_STATE=		P.ABJ





							    .PSECT  $CODE$,NOWRT,2



					 0004 007F3 LINE_STATUS:

							    .WORD   Save R2						      ; 2034

		         5E	       04  C2 007F5 	    SUBL2   #4, SP						      ;

		         52	  04   AC  D0 007F8 	    MOVL    MESSAGE, MSGPTR					      ; 2082

				0000'  CF  9F 007FC 	    PUSHAB  LINEPOS						      ; 2034

		  0000G  CF	       01  FB 00800 	    CALLS   #1, FAOOUT						      ; 2087

				  04   AC  DD 00805 	    PUSHL   MESSAGE						      ; 2088

		  0000V  CF	       01  FB 00808 	    CALLS   #1, OUTPUT_LINEID					      ;

		         52	       50  D0 0080D 	    MOVL    R0, MSGPTR						      ;

				       5E  DD 00810 	    PUSHL   SP							      ; 2093

		         50	       82  9A 00812 	    MOVZBL  (MSGPTR)+, R0					      ;

				       50  DD 00815 	    PUSHL   R0							      ;

		  0000V  CF	       02  FB 00817 	    CALLS   #2, CONVERT_STATE					      ;

		         13	       50  E9 0081C 	    BLBC    R0, 1$						      ;

				  02   A2  9F 0081F 	    PUSHAB  2(MSGPTR)						      ; 2097

				  04   AE  DD 00822 	    PUSHL   STATE						      ;

				0000'  CF  9F 00825 	    PUSHAB  SHO_STATE						      ; 2034

		  0000G  CF	       03  FB 00829 	    CALLS   #3, FAOOUT						      ; 2097

		         50	       01  D0 0082E 	    MOVL    #1, R0						      ; 2098

					   04 00831 	    RET     							      ;

				       50  D4 00832 1$:     CLRL    R0							      ; 2034



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 21-1

; Digital Equipment Corporation

;

					   04 00834 	    RET     							      ;



; Routine Size:  66 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 22

; Digital Equipment Corporation

;

;	2100	GLOBAL ROUTINE SHOW_COUNTS=

;	2101	

;	2102	!++

;	2103	! FUNCTIONAL DESCRIPTION:

;	2104	!

;	2105	!	SHOW_COUNTS IS THE MAIN ROUTINE CALLED BY THE 

;	2106	!	NCP PARSE MODULE WHEN AN NCP COMMAND

;	2107	!		"SHOW COUNTS <LINE/LOCAL/NODE/KNOWN>"

;	2108	!	IS ENCOUNTERED. THE ROUTINE BUILDS AND SENDS A

;	2109	!	READ INFORMATION NICE MESSAGE. DIALOGUE MESSAGES

;	2110	!	ARE READ BY THE ROUTINE OUTPUT_COUNTS.

;	2111	!

;	2112	! FORMAL PARAMETERS:

;	2113	!

;	2114	!	NONE

;	2115	!

;	2116	! IMPLICIT INPUTS:

;	2117	!

;	2118	!	FLAGS:LONGWORD INDICATING PARAMETERS ENCOUNTERED DURING

;	2119	!		PARSE

;	2120	!

;	2121	! IMPLICIT OUTPUTS:

;	2122	!

;	2123	!	NONE

;	2124	!

;	2125	! ROUTINE VALUE:

;	2126	! COMPLETION CODES:

;	2127	!

;	2128	!	NONE

;	2129	!

;	2130	! SIDE EFFECTS:

;	2131	!

;	2132	!	NONE

;	2133	!

;	2134	!--

;	2135	

;	2136	BEGIN

;	2137	LITERAL

;	2138	    NICE_CODE=8,		!READ INFORMATION MESSAGE

;	2139	    OPTION_LOCAL=0,		!GET LOCAL COUNTERS

;	2140	    OPTION_NODE=2,		!GET NODE COUNTERS

;	2141	    OPTION_LINE=4,		!GET LINE COUINTERS

;	2142	    MAXOUT=LID$S_NAME+4,	!MAXIMUM NICE OUTPUT MESSAGE

;	2143	    MAXIN=3;			!MAXIMUM NICE RESPONSE

;	2144	

;	2145	

;	2146	MAP

;	2147	    FLAGS:BLOCK[1];

;	2148	REGISTER

;	2149	    MSGPTR;

;	2150	LOCAL

;	2151	    STATUS,

;	2152	    OPTION;

;	2153	

;	2154	!+



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 22-1

; Digital Equipment Corporation

;

;	2155	!INITIALIZE MESSAGE POINTER

;	2156	

;	2157	    MSGPTR=CH$PTR(NICEMESSAGE[0]);

;	2158	

;	2159	!+

;	2160	!DETERMINE NICE OPTION CODE

;	2161	

;	2162	    IF .FLAGS[DEF$V_LINE] THEN OPTION=OPTION_LINE;

;	2163	    IF .FLAGS[DEF$V_LOCAL] THEN OPTION=OPTION_LOCAL;

;	2164	    IF .FLAGS[DEF$V_NODE] THEN OPTION=OPTION_NODE;

;	2165	

;	2166	!+

;	2167	!BUILD MESSAGE PREFIX

;	2168	

;	2169	    MSGPTR=BUILD_PREFIX(.MSGPTR,NICE_CODE,.OPTION);

;	2170	

;	2171	!+

;	2172	!CONNECT TO APPROPRIATE NICE OBJECT

;	2173	

;	2174	    IF

;	2175		NOT (STATUS=ATTACH_NICE())

;	2176	    THEN

;	2177		ACP_NOT_MOUNTED();

;	2178	

;	2179	!+

;	2180	!SEND THE MESSAGE 

;	2181	

;	2182	    IF NOT SEND_NICE(

;	2183			CH$DIFF(.MSGPTR,NICEMESSAGE[0])) THEN END_DIALOGUE;

;	2184	

;	2185	!+

;	2186	!RECEIVE STATUS RESPONSE

;	2187	

;	2188	    IF NOT GET_NICE(

;	2189			MAXIN) THEN END_DIALOGUE;

;	2190	

;	2191	!+

;	2192	!VALIDATE FORMAT OF RESPONSE

;	2193	

;	2194	    IF         

;	2195		NOT NICERSP_DECODE(MAXIN)

;	2196	    THEN

;	2197		END_DIALOGUE;

;	2198	!+

;	2199	!OUTPUT APPROPRIATE HEADER

;	2200	

;	2201	    COUNTS_HEADER(.OPTION);

;	2202	

;	2203	!+

;	2204	!READ BACK THE NUMBER OF DIALOGUE MESSAGES SPECIFIED

;	2205	

;	2206	    INCR DEX FROM 1 TO .DIALOGUE_MSGS DO

;	2207		IF NOT OUTPUT_COUNTS(.OPTION) THEN END_DIALOGUE;

;	2208	

;	2209	!+



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 22-2

; Digital Equipment Corporation

;

;	2210	!EXIT ROUTIEN

;	2211	    RETURN TRUE

;	2212	END;











					 081C 00835 	    .ENTRY  SHOW_COUNTS, Save R2,R3,R4,R11			      ; 2100

		         5B	0000G  CF  9E 00837 	    MOVAB   FLAGS, R11						      ;

		         52	0000'  CF  9E 0083C 	    MOVAB   NICEMESSAGE, MSGPTR					      ; 2157

	   03	         6B	       01  E1 00841 	    BBC     #1, FLAGS, 1$					      ; 2162

		         54	       04  D0 00845 	    MOVL    #4, OPTION						      ;

	   02	         6B	       03  E1 00848 1$:     BBC     #3, FLAGS, 2$					      ; 2163

				       54  D4 0084C 	    CLRL    OPTION						      ;

		         03	       6B  E9 0084E 2$:     BLBC    FLAGS, 3$						      ; 2164

		         54	       02  D0 00851 	    MOVL    #2, OPTION						      ;

				       54  DD 00854 3$:     PUSHL   OPTION						      ; 2169

				       08  DD 00856 	    PUSHL   #8							      ;

				       52  DD 00858 	    PUSHL   MSGPTR						      ;

		  0000V  CF	       03  FB 0085A 	    CALLS   #3, BUILD_PREFIX					      ;

		         52	       50  D0 0085F 	    MOVL    R0, MSGPTR						      ;

		  0000V  CF	       00  FB 00862 	    CALLS   #0, ATTACH_NICE					      ; 2175

		         53	       50  D0 00867 	    MOVL    R0, STATUS						      ;

		         12	       53  E8 0086A 	    BLBS    STATUS, 4$						      ;

				0000'  CF  9F 0086D 	    PUSHAB  ERRMSG_NOACP					      ; 2100

		  0000G  CF	       01  FB 00871 	    CALLS   #1, FAOOUT						      ; 2176

				       53  DD 00876 	    PUSHL   STATUS						      ;

		  0000V  CF	       01  FB 00878 	    CALLS   #1, SYS_SERV_ERR					      ;

				       4E  11 0087D 	    BRB     8$							      ;

		         50	0000'  CF  9E 0087F 4$:     MOVAB   NICEMESSAGE, R0					      ; 2183

	   7E	         52	       50  C3 00884 	    SUBL3   R0, MSGPTR, -(SP)					      ;

		  0000V  CF	       01  FB 00888 	    CALLS   #1, SEND_NICE					      ; 2182

		         2E	       50  E9 0088D 	    BLBC    R0, 6$						      ;

				       03  DD 00890 	    PUSHL   #3							      ; 2188

		  0000V  CF	       01  FB 00892 	    CALLS   #1, GET_NICE					      ;

		         24	       50  E9 00897 	    BLBC    R0, 6$						      ;

				       03  DD 0089A 	    PUSHL   #3							      ; 2195

		  0000V  CF	       01  FB 0089C 	    CALLS   #1, NICERSP_DECODE					      ;

		         1A	       50  E9 008A1 	    BLBC    R0, 6$						      ;

				       54  DD 008A4 	    PUSHL   OPTION						      ; 2201

		  0000V  CF	       01  FB 008A6 	    CALLS   #1, COUNTS_HEADER					      ;

		         53	0000'  CF  3C 008AB 	    MOVZWL  NICEDATA+1, R3					      ; 2206

				       52  D4 008B0 	    CLRL    DEX							      ;

				       11  11 008B2 	    BRB     7$							      ;

				       54  DD 008B4 5$:     PUSHL   OPTION						      ; 2207

		  0000V  CF	       01  FB 008B6 	    CALLS   #1, OUTPUT_COUNTS					      ;

		         07	       50  E8 008BB 	    BLBS    R0, 7$						      ;

		  0000V  CF	       00  FB 008BE 6$:     CALLS   #0, DEATTACH_NICE					      ;

				       08  11 008C3 	    BRB     8$							      ;

	   EB	         52	       53  F3 008C5 7$:     AOBLEQ  R3, DEX, 5$						      ; 2206

		         50	       01  D0 008C9 	    MOVL    #1, R0						      ; 2211

					   04 008CC 	    RET     							      ;

				       50  D4 008CD 8$:     CLRL    R0							      ; 2100

					   04 008CF 	    RET     							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 22-3

; Digital Equipment Corporation

;



; Routine Size:  155 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 23

; Digital Equipment Corporation

;

;	2213	ROUTINE COUNTS_HEADER(OPTION):NOVALUE=

;	2214	

;	2215	!++

;	2216	! FUNCTIONAL DESCRIPTION:

;	2217	!

;	2218	!	DISPLAYS HEADER FOR VARIOUS KINDS OF "SHOW COUNTS"

;	2219	! 	DISPLAYS.

;	2220	!

;	2221	! FORMAL PARAMETERS:

;	2222	!

;	2223	!	OPTION:VALUE INDICATING WHICH KIND OF HEADER  TO

;	2224	!		DISPLAY

;	2225	!		0:LOCAL COUNTERS

;	2226	!		2:REMOTE COUNTERS

;	2227	!		4:LINE COUNTERS

;	2228	!

;	2229	! IMPLICIT INPUTS:

;	2230	!

;	2231	!	NONE

;	2232	!

;	2233	! IMPLICIT OUTPUTS:

;	2234	!

;	2235	!	NONE

;	2236	!

;	2237	! ROUTINE VALUE:

;	2238	! COMPLETION CODES:

;	2239	!

;	2240	!	NONE

;	2241	!

;	2242	! SIDE EFFECTS:

;	2243	!

;	2244	!	NONE

;	2245	!

;	2246	!--

;	2247	

;	2248	BEGIN

;	2249	

;	2250	MAP FLAGS:BLOCK[1];

;	2251	BIND

;	2252	    LOCAL_HEADER=CSTRING(

;     P 2253				'!/REQUEST #!UL; COUNTS OF LOCAL, AS OF !%D!/'

;     P 2254				),

;	2255	    ALLNODES_HEADER=CSTRING(

;     P 2256			'!/REQUEST #!UL; COUNTS OF KNOWN REMOTES, AS OF !%D',

;     P 2257			),

;	2258	    NODE_HEADER=CSTRING(

;     P 2259			'!/REQUEST #!UL; COUNTS OF  REMOTE, AS OF !%D!/',

;     P 2260			),

;	2261	    ALLLINES_HEADER=CSTRING(

;     P 2262			'!/REQUEST #!UL; COUNTS OF KNOWN LINES, AS OF !%D!/',

;     P 2263			),

;	2264	    LINE_HEADER=CSTRING(

;     P 2265			'!/REQUEST #!UL; COUNTS OF LINE, AS OF !%D!/',

;     P 2266			);

;	2267	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 23-1

; Digital Equipment Corporation

;

;	2268	!+

;	2269	!OPTIONS ARE CURRENTLY THE FOLLOWING

;	2270	

;	2271	!    0 FOR LOCAL STATUS

;	2272	!    2 FOR REMOTE STATUS

;	2273	!    4 FOR LINE STATUS

;	2274	!IF THE 'KNOWN' OPTION IS INDICATED MODIFY OPTION

;	2275	!SO THAT

;	2276	!    1 FOR KNOWN REMOTES

;	2277	!    3 FOR KNOWN LINES

;	2278	!WHICH ALLOWS EASY "CASEING"

;	2279	

;	2280	    IF

;	2281		.FLAGS[DEF$V_KNOWN]

;	2282	    THEN

;	2283		OPTION=.OPTION-1;

;	2284	

;	2285	!+

;	2286	!PRINT DESIRED HEADING

;	2287	

;	2288	    CASE .OPTION FROM 0 TO 4 OF

;	2289	

;	2290		SET

;	2291		[0]:

;	2292		    !+

;	2293		    !LOCAL STATUS

;	2294	

;	2295			FAOOUT(LOCAL_HEADER,.COMMAND_COUNT,0);

;	2296		[1]:

;	2297		    !+

;	2298		    !KNOWN NODES

;	2299		

;	2300			FAOOUT(ALLNODES_HEADER,.COMMAND_COUNT,0);

;	2301		[2]:

;	2302		    !+

;	2303		    !A PARTICULAR NODE

;	2304		

;	2305			FAOOUT(NODE_HEADER,.COMMAND_COUNT,0);

;	2306		[3]:

;	2307		    !+

;	2308		    !ALL LINES

;	2309	

;	2310			FAOOUT(ALLLINES_HEADER,.COMMAND_COUNT,0);

;	2311		[4]:

;	2312		    !+

;	2313		    !A PARTICULAR LINE

;	2314	

;	2315			FAOOUT(LINE_HEADER,.COMMAND_COUNT,0);

;	2316	        TES;

;	2317	!+

;	2318	!LEAVE

;	2319	     RETURN

;	2320	END;







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 23-2

; Digital Equipment Corporation

;



							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00444 P.ABK:  .BYTE   44							      ;

					      00445 	    .ASCII  \!/REQUEST #!UL; COUNTS OF LOCAL, AS OF !%D!/\	      ;

					      00471	    .BLKB   3

					      00474 P.ABL:  .BYTE   50							      ;

					      00475 	    .ASCII  \!/REQUEST #!UL; COUNTS OF KNOWN REMOTES, AS OF !%D\      ;

					      004A7	    .BLKB   1

					      004A8 P.ABM:  .BYTE   46							      ;

					      004A9 	    .ASCII  \!/REQUEST #!UL; COUNTS OF  REMOTE, AS OF !%D!/\	      ;

					      004D7	    .BLKB   1

					      004D8 P.ABN:  .BYTE   50							      ;

					      004D9 	    .ASCII  \!/REQUEST #!UL; COUNTS OF KNOWN LINES, AS OF !%D!/\      ;

					      0050B	    .BLKB   1

					      0050C P.ABO:  .BYTE   43							      ;

					      0050D 	    .ASCII  \!/REQUEST #!UL; COUNTS OF LINE, AS OF !%D!/\	      ;



						    LOCAL_HEADER=	P.ABK

						    ALLNODES_HEADER=	P.ABL

						    NODE_HEADER=	P.ABM

						    ALLLINES_HEADER=	P.ABN

						    LINE_HEADER=	P.ABO





							    .PSECT  $CODE$,NOWRT,2



					 0000 008D0 COUNTS_HEADER:

							    .WORD   Save nothing					      ; 2213

	   03	  0000G  CF	       04  E1 008D2 	    BBC     #4, FLAGS, 1$					      ; 2281

				  04   AC  D7 008D8 	    DECL    OPTION						      ; 2283

		         50	0000G  CF  D0 008DB 1$:     MOVL    COMMAND_COUNT, R0					      ; 2295

	   04	         00	  04   AC  CF 008E0 	    CASEL   OPTION, #0, #4					      ; 2288

	 001E	       0014	     000A     008E5 2$:     .WORD   3$-2$,-						      ;

		       0032	     0028     008EB		    4$-2$,-						      ;

								    5$-2$,-						      ;

								    6$-2$,-						      ;

								    7$-2$						      ;

				       7E  D4 008EF 3$:     CLRL    -(SP)						      ; 2295

				       50  DD 008F1 	    PUSHL   R0							      ;

				0000'  CF  9F 008F3 	    PUSHAB  LOCAL_HEADER					      ; 2213

				       26  11 008F7 	    BRB     8$							      ; 2295

				       7E  D4 008F9 4$:     CLRL    -(SP)						      ; 2300

				       50  DD 008FB 	    PUSHL   R0							      ;

				0000'  CF  9F 008FD 	    PUSHAB  ALLNODES_HEADER					      ; 2213

				       1C  11 00901 	    BRB     8$							      ; 2300

				       7E  D4 00903 5$:     CLRL    -(SP)						      ; 2305

				       50  DD 00905 	    PUSHL   R0							      ;

				0000'  CF  9F 00907 	    PUSHAB  NODE_HEADER						      ; 2213

				       12  11 0090B 	    BRB     8$							      ; 2305

				       7E  D4 0090D 6$:     CLRL    -(SP)						      ; 2310

				       50  DD 0090F 	    PUSHL   R0							      ;

				0000'  CF  9F 00911 	    PUSHAB  ALLLINES_HEADER					      ; 2213

				       08  11 00915 	    BRB     8$							      ; 2310

				       7E  D4 00917 7$:     CLRL    -(SP)						      ; 2315



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 23-3

; Digital Equipment Corporation

;

				       50  DD 00919 	    PUSHL   R0							      ;

				0000'  CF  9F 0091B 	    PUSHAB  LINE_HEADER						      ; 2213

		  0000G  CF	       03  FB 0091F 8$:     CALLS   #3, FAOOUT						      ; 2315

					   04 00924 	    RET     							      ; 2213



; Routine Size:  85 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 24

; Digital Equipment Corporation

;

;	2321	ROUTINE OUTPUT_COUNTS(OPTION)=

;	2322	

;	2323	!++

;	2324	! FUNCTIONAL DESCRIPTION:

;	2325	!

;	2326	!	ROUTINE CALLED BY SHOW_COUNTS READS AND CONTROLS 

;	2327	!	PROCESSING OF DIALOGUE MESSAGES.THIS ROUTINE CHECKS

;	2328	!	THE DATABLOCK OPTION AND DISPLAYS APPROPRIATE NODE

;	2329	!	NAMES AND LINE-IDS. THE ACTUAL COUNTER DATABLOCK IS 

;	2330	!	PROCESSED BY THE ROUTINE COUNTS.

;	2331	!

;	2332	! FORMAL PARAMETERS:

;	2333	!

;	2334	!	OPTION:THE TYPE OF "COUNTS" BEING SHOWN

;	2335	!		0:LOCAL

;	2336	!		2:REMOTE NODE

;	2337	!		4:LINE

;	2338	!

;	2339	! IMPLICIT INPUTS:

;	2340	!

;	2341	!	NONE

;	2342	!

;	2343	! IMPLICIT OUTPUTS:

;	2344	!

;	2345	!	NONE

;	2346	!

;	2347	! ROUTINE VALUE:

;	2348	! COMPLETION CODES:

;	2349	!

;	2350	!	FALSE ON IO FAILURE OF IMPROPERLY FORMATTED DATABLOCK

;	2351	!

;	2352	! SIDE EFFECTS:

;	2353	!

;	2354	!	NONE

;	2355	!

;	2356	!--

;	2357	

;	2358	BEGIN

;	2359	

;	2360	

;	2361	

;	2362	BIND

;	2363	

;	2364	    !+

;	2365	    !PARSE VECTORS FOR COUNTER DATABLOCKS

;	2366	

;	2367		NOCNT_PARSE_VEC=UPLIT BYTE(4,

;	2368			COUNTED_STRING,		!NODE NAME

;	2369			REPEAT_CODE,		!INDICATES INDEFINITE REPEAT OF SUCEEDING CODES

;	2370			EXTENSIBLE,		!COUNTER TYPE

;	2371			WORD_LONG),		!COUNTER

;	2372		LICNT_PARSE_VEC=UPLIT BYTE(4,

;	2373			LINE_ID,		!LINE IDENTIFIER

;	2374			REPEAT_CODE,

;	2375			EXTENSIBLE,		!COUNTER TYPE



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 24-1

; Digital Equipment Corporation

;

;	2376			WORD_LONG),		!COUNTER

;	2377	

;	2378	    !+

;	2379	    !FAO STRINGS

;	2380	

;	2381	    NODE_INDICATOR=CSTRING('!/!/NODE=!AC!/'),

;	2382	    LINE_INDICATOR=CSTRING('!/!/LINE=')

;	2383	    ;

;	2384	LITERAL

;	2385	    OPTION_LOCAL=0,		!GET LOCAL COUNTERS

;	2386	    OPTION_NODE=2,		!GET NODE COUNTERS

;	2387	    OPTION_LINE=4,		!GET LINE COUNTERS

;	2388	    MAXDATA=80;			!MAX SIZE OF STATUS DATA

;	2389	

;	2390	

;	2391	

;	2392	REGISTER

;	2393	    LAST_POSITION,

;	2394	    MSGPTR;

;	2395	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 25

; Digital Equipment Corporation

;

;	2396	!+

;	2397	!READ DIALOGUE MESSAGE

;	2398	

;	2399	    IF NOT GET_NICE(MAXDATA) THEN RETURN FALSE;

;	2400	

;	2401	!+

;	2402	!SETUP MESSAGE POINTER

;	2403	    MSGPTR=NICEDATA[0]+1;

;	2404	

;	2405	!+

;	2406	!DETERMINE UPPER BOUND OF MESSAGE

;	2407	

;	2408	    LAST_POSITION=NICEDATA[0]+.INPUT_IOCOUNT;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 26

; Digital Equipment Corporation

;

;	2409	!+

;	2410	!CALL THE PROPER RECORD I/O ROUTINE

;	2411	

;	2412	    CASE .OPTION FROM OPTION_LOCAL TO OPTION_LINE OF

;	2413		SET

;	2414		[OPTION_NODE,OPTION_LOCAL]:

;	2415		    BEGIN

;	2416		    !+

;	2417		    !CHECK FORMAT OF MESSAGE

;	2418	

;	2419		    IF

;	2420			NOT PARSE(.OPTION,NOCNT_PARSE_VEC)

;	2421		    THEN

;	2422			RETURN FALSE;

;	2423	

;	2424		    !+

;	2425		    !PRINT THE "NODE=<NODENAME>" LINE

;	2426	

;	2427		    FAOOUT(NODE_INDICATOR,.MSGPTR);

;	2428		    MSGPTR=CH$PLUS(CH$RCHAR_A(MSGPTR),.MSGPTR)

;	2429		    END;

;	2430		[OPTION_LINE]:

;	2431		    BEGIN

;	2432		    !+

;	2433		    !CHECK FORMAT OF MESSAGE

;	2434	

;	2435		    IF

;	2436			NOT PARSE(.OPTION,LICNT_PARSE_VEC)

;	2437		    THEN

;	2438			RETURN FALSE;

;	2439	

;	2440		    !+

;	2441		    !WRITE "LINE=<LINEID>" MESSAGE

;	2442	

;	2443			

;	2444			FAOOUT(LINE_INDICATOR);

;	2445		    !+

;	2446		    !WRITE LINE ID

;	2447		    MSGPTR=OUTPUT_LINEID(.MSGPTR);

;	2448		    END;

;	2449		[INRANGE]:;

;	2450		TES;

;	2451		COUNTS(.MSGPTR,.LAST_POSITION);

;	2452	

;	2453	!+

;	2454	!EXIT ROUTINE

;	2455	

;	2456	     RETURN TRUE

;	2457	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00538 P.ABP:  .BYTE   4, 1, 6, 2, 4					      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 26-1

; Digital Equipment Corporation

;

					      0053D	    .BLKB   3

					      00540 P.ABQ:  .BYTE   4, 5, 6, 2, 4					      ;

					      00545	    .BLKB   3

					      00548 P.ABR:  .BYTE   14							      ;

					      00549 	    .ASCII  \!/!/NODE=!AC!/\					      ;

					      00557	    .BLKB   1

					      00558 P.ABS:  .BYTE   9							      ;

					      00559 	    .ASCII  \!/!/LINE=\						      ;

					      00562	    .BLKB   2



						    NOCNT_PARSE_VEC=	P.ABP

						    LICNT_PARSE_VEC=	P.ABQ

						    NODE_INDICATOR=	P.ABR

						    LINE_INDICATOR=	P.ABS





							    .PSECT  $CODE$,NOWRT,2



					 000C 00925 OUTPUT_COUNTS:

							    .WORD   Save R2,R3						      ; 2321

		         7E	  50   8F  9A 00927 	    MOVZBL  #80, -(SP)						      ; 2399

		  0000V  CF	       01  FB 0092B 	    CALLS   #1, GET_NICE					      ;

		         72	       50  E9 00930 	    BLBC    R0, 5$						      ;

		         53	0000'  CF  9E 00933 	    MOVAB   NICEDATA+1, MSGPTR					      ; 2403

		         50	0000'  CF  9E 00938 	    MOVAB   NICEDATA, R0					      ; 2408

		         52	0000'  CF  3C 0093D 	    MOVZWL  INSTATUSBLK+2, LAST_POSITION			      ;

		         52	       50  C0 00942 	    ADDL2   R0, LAST_POSITION					      ;

	   04	         00	  04   AC  CF 00945 	    CASEL   OPTION, #0, #4					      ; 2412

	 000A	       004E	     000A     0094A 1$:     .WORD   2$-1$,-						      ;

		       002C	     004E     00950		    4$-1$,-						      ;

								    2$-1$,-						      ;

								    4$-1$,-						      ;

								    3$-1$						      ;

				0000'  CF  9F 00954 2$:     PUSHAB  NOCNT_PARSE_VEC					      ; 2321

				  04   AC  DD 00958 	    PUSHL   OPTION						      ; 2420

		  0000V  CF	       02  FB 0095B 	    CALLS   #2, PARSE						      ;

		         42	       50  E9 00960 	    BLBC    R0, 5$						      ;

				       53  DD 00963 	    PUSHL   MSGPTR						      ; 2427

				0000'  CF  9F 00965 	    PUSHAB  NODE_INDICATOR					      ; 2321

		  0000G  CF	       02  FB 00969 	    CALLS   #2, FAOOUT						      ; 2427

		         50	       83  9A 0096E 	    MOVZBL  (MSGPTR)+, R0					      ; 2428

		         53	       50  C0 00971 	    ADDL2   R0, MSGPTR						      ;

				       22  11 00974 	    BRB     4$							      ; 2412

				0000'  CF  9F 00976 3$:     PUSHAB  LICNT_PARSE_VEC					      ; 2321

				  04   AC  DD 0097A 	    PUSHL   OPTION						      ; 2436

		  0000V  CF	       02  FB 0097D 	    CALLS   #2, PARSE						      ;

		         20	       50  E9 00982 	    BLBC    R0, 5$						      ;

				0000'  CF  9F 00985 	    PUSHAB  LINE_INDICATOR					      ; 2321

		  0000G  CF	       01  FB 00989 	    CALLS   #1, FAOOUT						      ; 2444

				       53  DD 0098E 	    PUSHL   MSGPTR						      ; 2447

		  0000V  CF	       01  FB 00990 	    CALLS   #1, OUTPUT_LINEID					      ;

		         53	       50  D0 00995 	    MOVL    R0, MSGPTR						      ;

				       52  DD 00998 4$:     PUSHL   LAST_POSITION					      ; 2451

				       53  DD 0099A 	    PUSHL   MSGPTR						      ;

		  0000V  CF	       02  FB 0099C 	    CALLS   #2, COUNTS						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 26-2

; Digital Equipment Corporation

;

		         50	       01  D0 009A1 	    MOVL    #1, R0						      ; 2456

					   04 009A4 	    RET     							      ;

				       50  D4 009A5 5$:     CLRL    R0							      ; 2321

					   04 009A7 	    RET     							      ;



; Routine Size:  131 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 27

; Digital Equipment Corporation

;

;	2458	ROUTINE COUNTS(MESSAGE,END_MESSAGE)=

;	2459	

;	2460	!++

;	2461	! FUNCTIONAL DESCRIPTION:

;	2462	!

;	2463	!	COUNTS OUTPUTS THE STANDARD NICE COUNTER DATA BLOCK

;	2464	!

;	2465	! FORMAL PARAMETERS:

;	2466	!

;	2467	!	MESSAGE:ADDRESS OF COUNTER PORTION OF NICE COUNTER

;	2468	!	    DATA BLOCK

;	2469	!	LENGTH:SIZE OF COUNTER DATA BLOCK

;	2470	!

;	2471	! IMPLICIT INPUTS:

;	2472	!

;	2473	!	NONE

;	2474	!

;	2475	! IMPLICIT OUTPUTS:

;	2476	!

;	2477	!	NONE

;	2478	!

;	2479	! ROUTINE VALUE:

;	2480	! COMPLETION CODES:

;	2481	!

;	2482	!	ROUTINE RETURNS TRUE IF ENTIRE DATABLOCK IF PROPERLY

;	2483	!	FORMATTED

;	2484	!

;	2485	! SIDE EFFECTS:

;	2486	!

;	2487	!	NONE

;	2488	!

;	2489	!--

;	2490	

;	2491	BEGIN

;	2492	LABEL

;	2493	    COUNTER_LOOP;

;	2494	BIND

;	2495	    MESSAGE_FORMAT=CSTRING('!/!60AC'),

;	2496	    UNKNOWN_COUNTER=CSTRING('!/!<COUNTER #!UL!>'),

;	2497	    OVERFLOW=CSTRING('OVERFLOW'),

;	2498	    COUNTER_FORMAT=CSTRING('!UW');

;	2499	REGISTER

;	2500	    MSGPTR;

;	2501	LITERAL

;	2502	    START_STATE=0,

;	2503	    EXTEND_STATE=1,

;	2504	    COUNTER_STATE=2;

;	2505	LOCAL

;	2506	    EXTENSIBLE_BYTE,

;	2507	    TEXT,

;	2508	    STATE,

;	2509	    EXTEND_START, 

;	2510	    COUNTER,

;	2511	    COUNT_TYPE;

;	2512	!+



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 27-1

; Digital Equipment Corporation

;

;	2513	!INITIALIZE STATE AND MESSAGE POINTER

;	2514	    STATE=START_STATE;

;	2515	    MSGPTR=.MESSAGE;

;	2516	!+

;	2517	!LOOP THROUGHBUFFER PULLING COUNTERS AND DISPLAYING

;	2518	

;	2519	    WHILE TRUE DO

;	2520		BEGIN

;	2521		!+

;	2522		!CHECK FOR END_CONDITION

;	2523	

;	2524		    IF

;	2525			.MSGPTR EQLA .END_MESSAGE

;	2526		    THEN

;	2527			RETURN TRUE;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 28

; Digital Equipment Corporation

;

;	2528	COUNTER_LOOP:

;	2529	BEGIN

;	2530	WHILE TRUE DO

;	2531	    !+

;	2532	    !CASE THROUGH VALID STATE

;	2533	    !	START_STATE:LOOKING FOR FIRST BYTE IN EXTENSIBLE FIELD

;	2534	    !	EXTEND_STATE:SECOND BYTE OF EXTENSIBLE FIELD

;	2535	    !	COUNTER_STATE:LOOKING FOR WORD COUNTER

;	2536	

;	2537	    CASE .STATE FROM START_STATE TO COUNTER_STATE OF

;	2538		SET

;	2539	 	[START_STATE]:

;	2540		    BEGIN

;	2541		    EXTEND_START=.MSGPTR;	!START OF EXTENSIBLE FIELD

;	2542		    EXTENSIBLE_BYTE=CH$RCHAR_A(MSGPTR);

;	2543		    IF

;	2544			!+

;	2545			!CHECK IF WE HAVE TO EXTEND

;	2546			    NOT .EXTENSIBLE_BYTE<7,1>

;	2547		    THEN

;	2548			BEGIN

;	2549			STATE=COUNTER_STATE;

;	2550			COUNT_TYPE=.EXTENSIBLE_BYTE;	!SAVE COUNTER TYPE

;	2551			END

;	2552		    ELSE

;	2553			STATE=EXTEND_STATE;

;	2554		    END;

;	2555		[EXTEND_STATE]:

;	2556	    	    BEGIN

;	2557		    EXTENSIBLE_BYTE=CH$RCHAR_A(MSGPTR);

;	2558		    IF

;	2559			!+

;	2560	!		SHOULD NOT BE AN EXTENSIBLE BYTE

;	2561	

;	2562			    NOT .EXTENSIBLE_BYTE<7,1>

;	2563		    THEN

;	2564			BEGIN

;	2565			STATE=COUNTER_STATE;

;	2566			EXTEND_BINARY(.EXTEND_START,COUNT_TYPE)

;	2567			END

;	2568		    ELSE

;	2569			BEGIN

;	2570			FAOOUT(ERRMSG_INVDBK);

;	2571			RETURN FALSE

;	2572			END

;	2573		    END;

;	2574		[COUNTER_STATE]:

;	2575			BEGIN

;	2576			COUNTER=.(.MSGPTR)<0,16>;

;	2577			MSGPTR=.MSGPTR+2;

;	2578			STATE=START_STATE;

;	2579			LEAVE COUNTER_LOOP

;	2580			END

;	2581	        TES

;	2582	    END;	!OF CASE WHILE LOOP



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 28-1

; Digital Equipment Corporation

;

;	2583	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 29

; Digital Equipment Corporation

;

;	2584	!+

;	2585	!MAKE SURE COUNTER TYPE IS VALID

;	2586	!+

;	2587	!TRY AND GET A DEFINED TEXT FOR A COUNTER

;	2588	

;	2589	    IF

;	2590		NOT MSG_SEARCH(TEXT,.COUNT_TYPE)

;	2591	    THEN

;	2592		FAOOUT(UNKNOWN_COUNTER,.COUNT_TYPE)

;	2593	    ELSE

;	2594		FAOOUT(MESSAGE_FORMAT,.TEXT);

;	2595	

;	2596	

;	2597	!+

;	2598	!PRINT COUNTER ITSELF, BUT CHECK FOR OVERFLOW

;	2599	

;	2600	    IF

;	2601		.COUNTER<15,1>

;	2602	    THEN

;	2603		FAOOUT(OVERFLOW)

;	2604	    ELSE

;	2605		FAOOUT(COUNTER_FORMAT,.COUNTER);

;	2606	    

;	2607	    END

;	2608	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00564 P.ABT:  .BYTE   7							      ;

					      00565 	    .ASCII  \!/!60AC\						      ;

					      0056C P.ABU:  .BYTE   18							      ;

					      0056D 	    .ASCII  \!/!<COUNTER #!UL!>\				      ;

					      0057F	    .BLKB   1

					      00580 P.ABV:  .BYTE   8							      ;

					      00581 	    .ASCII  \OVERFLOW\						      ;

					      00589	    .BLKB   3

					      0058C P.ABW:  .BYTE   3							      ;

					      0058D 	    .ASCII  \!UW\						      ;



						    MESSAGE_FORMAT=	P.ABT

						    UNKNOWN_COUNTER=	P.ABU

						    OVERFLOW=		P.ABV

						    COUNTER_FORMAT=	P.ABW





							    .PSECT  $CODE$,NOWRT,2



					 087C 009A8 COUNTS: .WORD   Save R2,R3,R4,R5,R6,R11				      ; 2458

		         5B	0000G  CF  9E 009AA 	    MOVAB   FAOOUT, R11						      ;

		         5E	       08  C2 009AF 	    SUBL2   #8, SP						      ;

				       53  D4 009B2 	    CLRL    STATE						      ; 2514

		         52	  04   AC  D0 009B4 	    MOVL    MESSAGE, MSGPTR					      ; 2515

		    08   AC	       52  D1 009B8 1$:     CMPL    MSGPTR, END_MESSAGE					      ; 2525



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 29-1

; Digital Equipment Corporation

;

				       04  12 009BC 	    BNEQ    2$							      ;

		         50	       01  D0 009BE 	    MOVL    #1, R0						      ; 2527

					   04 009C1 	    RET     							      ;

	   02	         00	       53  CF 009C2 2$:     CASEL   STATE, #0, #2					      ; 2537

	 003E	       001E	     0006     009C6 3$:     .WORD   4$-3$,-						      ;

								    6$-3$,-						      ;

								    8$-3$						      ;

		         56	       52  D0 009CC 4$:     MOVL    MSGPTR, EXTEND_START				      ; 2541

		         54	       82  9A 009CF 	    MOVZBL  (MSGPTR)+, EXTENSIBLE_BYTE				      ; 2542

	   09	         54	       07  E0 009D2 	    BBS     #7, EXTENSIBLE_BYTE, 5$				      ; 2546

		         53	       02  D0 009D6 	    MOVL    #2, STATE						      ; 2549

		    04   AE	       54  D0 009D9 	    MOVL    EXTENSIBLE_BYTE, COUNT_TYPE				      ; 2550

				       E3  11 009DD 	    BRB     2$							      ; 2543

		         53	       01  D0 009DF 5$:     MOVL    #1, STATE						      ; 2553

				       DE  11 009E2 	    BRB     2$							      ; 2537

		         54	       82  9A 009E4 6$:     MOVZBL  (MSGPTR)+, EXTENSIBLE_BYTE				      ; 2557

	   0F	         54	       07  E0 009E7 	    BBS     #7, EXTENSIBLE_BYTE, 7$				      ; 2562

		         53	       02  D0 009EB 	    MOVL    #2, STATE						      ; 2565

				  04   AE  9F 009EE 	    PUSHAB  COUNT_TYPE						      ; 2566

				       56  DD 009F1 	    PUSHL   EXTEND_START					      ;

		  0000V  CF	       02  FB 009F3 	    CALLS   #2, EXTEND_BINARY					      ;

				       C8  11 009F8 	    BRB     2$							      ; 2558

				0000'  CF  9F 009FA 7$:     PUSHAB  ERRMSG_INVDBK					      ; 2458

		         6B	       01  FB 009FE 	    CALLS   #1, FAOOUT						      ; 2570

				       50  D4 00A01 	    CLRL    R0							      ; 2571

					   04 00A03 	    RET     							      ;

		         55	       82  3C 00A04 8$:     MOVZWL  (MSGPTR)+, COUNTER					      ; 2576

				       53  D4 00A07 	    CLRL    STATE						      ; 2578

				  04   AE  DD 00A09 	    PUSHL   COUNT_TYPE						      ; 2590

				  04   AE  9F 00A0C 	    PUSHAB  TEXT						      ;

		  0000V  CF	       02  FB 00A0F 	    CALLS   #2, MSG_SEARCH					      ;

		         09	       50  E8 00A14 	    BLBS    R0, 9$						      ;

				  04   AE  DD 00A17 	    PUSHL   COUNT_TYPE						      ; 2592

				0000'  CF  9F 00A1A 	    PUSHAB  UNKNOWN_COUNTER					      ; 2458

				       06  11 00A1E 	    BRB     10$							      ; 2592

				       6E  DD 00A20 9$:     PUSHL   TEXT						      ; 2594

				0000'  CF  9F 00A22 	    PUSHAB  MESSAGE_FORMAT					      ; 2458

		         6B	       02  FB 00A26 10$:    CALLS   #2, FAOOUT						      ; 2594

	   09	         55	       0F  E1 00A29 	    BBC     #15, COUNTER, 12$					      ; 2601

				0000'  CF  9F 00A2D 	    PUSHAB  OVERFLOW						      ; 2458

		         6B	       01  FB 00A31 	    CALLS   #1, FAOOUT						      ; 2603

				       82  11 00A34 11$:    BRB     1$							      ; 2600

				       55  DD 00A36 12$:    PUSHL   COUNTER						      ; 2605

				0000'  CF  9F 00A38 	    PUSHAB  COUNTER_FORMAT					      ; 2458

		         6B	       02  FB 00A3C 	    CALLS   #2, FAOOUT						      ; 2605

				       F3  11 00A3F 	    BRB     11$							      ; 2519



; Routine Size:  153 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 30

; Digital Equipment Corporation

;

;	2609	ROUTINE MSG_SEARCH(TEXT,TYPE)=

;	2610	

;	2611	!++

;	2612	! FUNCTIONAL DESCRIPTION:

;	2613	!

;	2614	!	GIVEN A NUMERIC COUNTER TYPE AND THE TYPE OF 

;	2615	!	'SHOW COUNTS' REQUESTED,THE ROUTINE RETURNS  THE TEXT

;	2616	!	ASSOCIATED WITH THE COUNTER

;	2617	!

;	2618	! FORMAL PARAMETERS:

;	2619	!

;	2620	!	TYPE:NUMERIC COUNTER TYPE

;	2621	!	TEXT:LOCATION TO STORE ADDRESS OF ASSOCIATED TEXT

;	2622	!

;	2623	! IMPLICIT INPUTS:

;	2624	!

;	2625	!	NONE

;	2626	!

;	2627	! IMPLICIT OUTPUTS:

;	2628	!

;	2629	!	NONE

;	2630	!

;	2631	! ROUTINE VALUE:

;	2632	! COMPLETION CODES:

;	2633	!

;	2634	!	NONE

;	2635	!

;	2636	! SIDE EFFECTS:

;	2637	!

;	2638	!	NONE

;	2639	!

;	2640	!--

;	2641	

;	2642	BEGIN

;	2643	LITERAL

;	2644	    !+

;	2645	    !SIZES OF VARIOUS COUNTER_MESSAGE TABLES

;	2646	    

;	2647	    GLO_NODE_SIZE=19,

;	2648	    GLO_LINE_SIZE=9,

;	2649	    LOC_NODE_SIZE=6,    

;	2650	    LOC_LINE_SIZE=8;

;	2651	MACRO

;	2652	!+

;	2653	!OFFSETS INTO COUNTERTEXT TABLES

;	2654	!-

;	2655	    FIRST=0,0,0,0,0%,

;	2656	    COUNTER_TYPE=0,0,32,0%,

;	2657	    COUNTER_TEXT=1,0,32,0%;

;	2658	MAP

;	2659	    FLAGS:BLOCK[1];

;	2660	LOCAL

;	2661	    MESSAGES:REF BLOCKVECTOR[,2],

;	2662	    LAST;

;	2663	OWN



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 30-1

; Digital Equipment Corporation

;

;	2664	    !+

;	2665	    !NICE DEFINED NODE/LOCAL COUNTERS

;	2666	

;	2667	    GLO_NODE_TEXT:BLOCKVECTOR[GLO_NODE_SIZE,2]

;	2668		INITIAL(       

;	2669			0,CSTRING('SECONDS SINCE LAST ZEROED'),

;	2670			1,CSTRING('USER MESSAGES SENT'),

;	2671			2,CSTRING('USER MESSAGES RECEIVED'),

;	2672			3,CSTRING('MESSAGES ROUTED THROUGH'),

;	2673			4,CSTRING('EXTRANEOUS MESSAGES RECEIVED'),

;	2674			5,CSTRING('NEGATIVE ACKNOWLEDGEMENTS SENT'),

;	2675			6,CSTRING('MESSAGES TIMED OUT'),

;	2676			7,CSTRING('UNKNOWN DESTINATION NODE'),

;	2677			8,CSTRING('FORMAT ERRORS IN ROUTING DATA'),

;	2678			9,CSTRING('FORMAT ERRORS OTHER THAN ROUTING'),

;	2679			10,CSTRING('RESOURCE ERRORS'),

;	2680			11,CSTRING('SUCCESSFUL NEIGHBOR INITIALIZATIONS'),

;	2681			12,CSTRING('UNSUCCESSFUL NEIGHBOR INITIALIZATIONS'),

;	2682			13,CSTRING('CURRENTLY ACTIVE LOGICAL LINKS'),

;	2683			14,CSTRING('MAXIMUM LOGICAL LINKS ACTIVE'),

;	2684			15,CSTRING('SINGLE MESSAGES SEND'),

;	2685			16,CSTRING('SINGLE MESSAGES RECEIVED'),

;	2686			17,CSTRING('CONNECTS INITIATED'),

;	2687			18,CSTRING('CONNECTS RECEIVED')

;	2688				),

;	2689	

;	2690	    !+

;	2691	    !NICE DEFINED LINE COUNTER MESSAGES

;	2692	

;	2693	    GLO_LINE_TEXT:BLOCKVECTOR[GLO_LINE_SIZE,2]

;	2694		INITIAL(

;	2695			0,CSTRING('SECONDS SINCE LAST ZEROED'),

;	2696			1,CSTRING('BLOCKS RECEIVED'),

;	2697			2,CSTRING('BLOCKS SENT'),

;	2698			3,CSTRING('RETRANSMISSIONS, LINE ERRORS'),

;	2699			4,CSTRING('RECEIVED LINE ERRORS'),

;	2700			5,CSTRING('RETRANMISSIONS, OTHER THAN LINE ERRORS AND PARITY'),

;	2701			6,CSTRING('RECEIVE TIMEOUTS'),

;	2702			7,CSTRING('RECEIVE SELECTION ERRORS'),

;	2703			8,CSTRING('RESOURCE ERRORS')

;	2704			),

;	2705		!+

;	2706		!VAX SPECIFIC LOCAL NODE COUNTER MESSAGES

;	2707	

;	2708		LOC_NODE_TEXT:BLOCKVECTOR[LOC_NODE_SIZE,2]

;	2709			INITIAL(

;	2710			    64,CSTRING('NUMBER OF CURRENTLY CONNECTED REMOTES'),

;	2711			    65,CSTRING('NUMBER OF BYTES TRANSMITTED'),

;	2712			    66,CSTRING('NUMBER OF BYTES RECEIVED'),

;	2713			    67,CSTRING('NUMBER OF BYTES ALLOCATED FOR BUFFERS'),

;	2714			    68,CSTRING('NUMBER OF SUCCESSFUL ALLOCATION ATTEMPTS'),

;	2715			    69,CSTRING('NUMBER OF UNSUCCESSFUL BUFFER ALLOCATION ATTEMPTS')

;	2716			),

;	2717		!+

;	2718		!VAX SPECIFIC LINE COUNTER MESSAGES



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 30-2

; Digital Equipment Corporation

;

;	2719	

;	2720	        LOC_LINE_TEXT:BLOCKVECTOR[LOC_LINE_SIZE,2]

;	2721			INITIAL(

;	2722			    64,CSTRING('NAKS RECEIVED--NO BUFFER AVAILABLE'),

;	2723			    65,CSTRING('NAKS RECEIVED--BAD BUFFER BCC'),

;	2724			    66,CSTRING('NAKS RECEIVED--BAD DATA BCC'),

;	2725			    67,CSTRING('NAKS SEND--NO BUFFERS AVAILABLE'),

;	2726			    68,CSTRING('NAKS SENT--BAD HEADER BCC'),

;	2727			    69,CSTRING('NAKS SENT--BAD DATA BCC'),

;	2728			    70,CSTRING('REPS SENT'),

;	2729			    71,CSTRING('REPS RECEIVED')

;	2730			);



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 31

; Digital Equipment Corporation

;

;	2731	!+

;	2732	!DETERMINE WHICH TABLE OF GLOBAL COUNTER TEXT TO EXAMINE

;	2733	!    FIRST, LINE OR NODE

;	2734	

;	2735	    IF

;	2736		.FLAGS[DEF$V_LINE]

;	2737	    THEN

;	2738		BEGIN

;	2739		MESSAGES=GLO_LINE_TEXT[FIRST];

;	2740	 	LAST=GLO_LINE_SIZE-1

;	2741		END

;	2742	    ELSE

;	2743		BEGIN

;	2744		MESSAGES=GLO_NODE_TEXT[FIRST];

;	2745	 	LAST=GLO_NODE_SIZE-1

;	2746		END;

;	2747	

;	2748	!+

;	2749	!SCAN THE GLOBAL TABLE FOR THE SOUGHT COUNTER TYPE

;	2750	

;	2751	    INCR  DEX FROM 0 TO .LAST DO

;	2752	    IF

;	2753		.MESSAGES[.DEX,COUNTER_TYPE] EQL .TYPE

;	2754	    THEN

;	2755		BEGIN

;	2756		.TEXT=.MESSAGES[.DEX,COUNTER_TEXT];

;	2757		RETURN	TRUE

;	2758		END;

;	2759	!+

;	2760	!CHECK FOR REMOTE CONNECT OR NODE COUNTERS OPTION

;	2761	!    NOTE VAX HAS NO LOCALLY DEFINED REMOTE NODE COUNTER MESSAGES

;	2762	

;	2763	    IF

;	2764		.FLAGS[DEF$V_ON] OR .FLAGS[DEF$V_NODE]

;	2765	    THEN

;	2766		RETURN FALSE;

;	2767	!+

;	2768	!CHECK LOCAL COUNTER TEXT TABLES FOR THIS COUNTER TYPE

;	2769	!    AGAIN DETERMINE WHETHER LINE OR LOCAL

;	2770	

;	2771	    IF

;	2772		.FLAGS[DEF$V_LINE]

;	2773	    THEN

;	2774		BEGIN

;	2775		MESSAGES=LOC_LINE_TEXT[FIRST];

;	2776		LAST=LOC_LINE_SIZE

;	2777		END

;	2778	    ELSE

;	2779		BEGIN

;	2780		MESSAGES=LOC_NODE_TEXT[FIRST];

;	2781		LAST=LOC_NODE_SIZE

;	2782		END;

;	2783	!+

;	2784	!SCAN THE LOCAL TABLE FOR THE SOUGHT COUNTER TYPE

;	2785	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 31-1

; Digital Equipment Corporation

;

;	2786	    INCR  DEX FROM 0 TO .LAST DO

;	2787	    IF

;	2788		.MESSAGES[.DEX,COUNTER_TYPE] EQL .TYPE

;	2789	    THEN

;	2790		BEGIN

;	2791		.TEXT=.MESSAGES[.DEX,COUNTER_TEXT];

;	2792		RETURN	TRUE

;	2793		END;

;	2794	

;	2795	!+

;	2796	!COUNTER IS UNDEFINED

;	2797	

;	2798	    RETURN FALSE

;	2799	

;	2800	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00590 P.ABX:  .BYTE   25							      ;

					      00591 	    .ASCII  \SECONDS SINCE LAST ZEROED\				      ;

					      005AA	    .BLKB   2

					      005AC P.ABY:  .BYTE   18							      ;

					      005AD 	    .ASCII  \USER MESSAGES SENT\				      ;

					      005BF	    .BLKB   1

					      005C0 P.ABZ:  .BYTE   22							      ;

					      005C1 	    .ASCII  \USER MESSAGES RECEIVED\				      ;

					      005D7	    .BLKB   1

					      005D8 P.ACA:  .BYTE   23							      ;

					      005D9 	    .ASCII  \MESSAGES ROUTED THROUGH\				      ;

					      005F0 P.ACB:  .BYTE   28							      ;

					      005F1 	    .ASCII  \EXTRANEOUS MESSAGES RECEIVED\			      ;

					      0060D	    .BLKB   3

					      00610 P.ACC:  .BYTE   30							      ;

					      00611 	    .ASCII  \NEGATIVE ACKNOWLEDGEMENTS SENT\			      ;

					      0062F	    .BLKB   1

					      00630 P.ACD:  .BYTE   18							      ;

					      00631 	    .ASCII  \MESSAGES TIMED OUT\				      ;

					      00643	    .BLKB   1

					      00644 P.ACE:  .BYTE   24							      ;

					      00645 	    .ASCII  \UNKNOWN DESTINATION NODE\				      ;

					      0065D	    .BLKB   3

					      00660 P.ACF:  .BYTE   29							      ;

					      00661 	    .ASCII  \FORMAT ERRORS IN ROUTING DATA\			      ;

					      0067E	    .BLKB   2

					      00680 P.ACG:  .BYTE   32							      ;

					      00681 	    .ASCII  \FORMAT ERRORS OTHER THAN ROUTING\			      ;

					      006A1	    .BLKB   3

					      006A4 P.ACH:  .BYTE   15							      ;

					      006A5 	    .ASCII  \RESOURCE ERRORS\					      ;

					      006B4 P.ACI:  .BYTE   35							      ;

					      006B5 	    .ASCII  \SUCCESSFUL NEIGHBOR INITIALIZATIONS\		      ;

					      006D8 P.ACJ:  .BYTE   37							      ;

					      006D9 	    .ASCII  \UNSUCCESSFUL NEIGHBOR INITIALIZATIONS\		      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 31-2

; Digital Equipment Corporation

;

					      006FE	    .BLKB   2

					      00700 P.ACK:  .BYTE   30							      ;

					      00701 	    .ASCII  \CURRENTLY ACTIVE LOGICAL LINKS\			      ;

					      0071F	    .BLKB   1

					      00720 P.ACL:  .BYTE   28							      ;

					      00721 	    .ASCII  \MAXIMUM LOGICAL LINKS ACTIVE\			      ;

					      0073D	    .BLKB   3

					      00740 P.ACM:  .BYTE   20							      ;

					      00741 	    .ASCII  \SINGLE MESSAGES SEND\				      ;

					      00755	    .BLKB   3

					      00758 P.ACN:  .BYTE   24							      ;

					      00759 	    .ASCII  \SINGLE MESSAGES RECEIVED\				      ;

					      00771	    .BLKB   3

					      00774 P.ACO:  .BYTE   18							      ;

					      00775 	    .ASCII  \CONNECTS INITIATED\				      ;

					      00787	    .BLKB   1

					      00788 P.ACP:  .BYTE   17							      ;

					      00789 	    .ASCII  \CONNECTS RECEIVED\					      ;

					      0079A	    .BLKB   2

					      0079C P.ACQ:  .BYTE   25							      ;

					      0079D 	    .ASCII  \SECONDS SINCE LAST ZEROED\				      ;

					      007B6	    .BLKB   2

					      007B8 P.ACR:  .BYTE   15							      ;

					      007B9 	    .ASCII  \BLOCKS RECEIVED\					      ;

					      007C8 P.ACS:  .BYTE   11							      ;

					      007C9 	    .ASCII  \BLOCKS SENT\					      ;

					      007D4 P.ACT:  .BYTE   28							      ;

					      007D5 	    .ASCII  \RETRANSMISSIONS, LINE ERRORS\			      ;

					      007F1	    .BLKB   3

					      007F4 P.ACU:  .BYTE   20							      ;

					      007F5 	    .ASCII  \RECEIVED LINE ERRORS\				      ;

					      00809	    .BLKB   3

					      0080C P.ACV:  .BYTE   49							      ;

					      0080D 	    .ASCII  \RETRANMISSIONS, OTHER THAN LINE ERRORS AND PARITY\       ;

					      0083E	    .BLKB   2

					      00840 P.ACW:  .BYTE   16							      ;

					      00841 	    .ASCII  \RECEIVE TIMEOUTS\					      ;

					      00851	    .BLKB   3

					      00854 P.ACX:  .BYTE   24							      ;

					      00855 	    .ASCII  \RECEIVE SELECTION ERRORS\				      ;

					      0086D	    .BLKB   3

					      00870 P.ACY:  .BYTE   15							      ;

					      00871 	    .ASCII  \RESOURCE ERRORS\					      ;

					      00880 P.ACZ:  .BYTE   37							      ;

					      00881 	    .ASCII  \NUMBER OF CURRENTLY CONNECTED REMOTES\		      ;

					      008A6	    .BLKB   2

					      008A8 P.ADA:  .BYTE   27							      ;

					      008A9 	    .ASCII  \NUMBER OF BYTES TRANSMITTED\			      ;

					      008C4 P.ADB:  .BYTE   24							      ;

					      008C5 	    .ASCII  \NUMBER OF BYTES RECEIVED\				      ;

					      008DD	    .BLKB   3

					      008E0 P.ADC:  .BYTE   37							      ;

					      008E1 	    .ASCII  \NUMBER OF BYTES ALLOCATED FOR BUFFERS\		      ;

					      00906	    .BLKB   2

					      00908 P.ADD:  .BYTE   40							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 31-3

; Digital Equipment Corporation

;

					      00909 	    .ASCII  \NUMBER OF SUCCESSFUL ALLOCATION ATTEMPTS\		      ;

					      00931	    .BLKB   3

					      00934 P.ADE:  .BYTE   49							      ;

					      00935 	    .ASCII  \NUMBER OF UNSUCCESSFUL BUFFER ALLOCATION ATTEMPTS\       ;

					      00966	    .BLKB   2

					      00968 P.ADF:  .BYTE   34							      ;

					      00969 	    .ASCII  \NAKS RECEIVED--NO BUFFER AVAILABLE\		      ;

					      0098B	    .BLKB   1

					      0098C P.ADG:  .BYTE   29							      ;

					      0098D 	    .ASCII  \NAKS RECEIVED--BAD BUFFER BCC\			      ;

					      009AA	    .BLKB   2

					      009AC P.ADH:  .BYTE   27							      ;

					      009AD 	    .ASCII  \NAKS RECEIVED--BAD DATA BCC\			      ;

					      009C8 P.ADI:  .BYTE   31							      ;

					      009C9 	    .ASCII  \NAKS SEND--NO BUFFERS AVAILABLE\			      ;

					      009E8 P.ADJ:  .BYTE   25							      ;

					      009E9 	    .ASCII  \NAKS SENT--BAD HEADER BCC\				      ;

					      00A02	    .BLKB   2

					      00A04 P.ADK:  .BYTE   23							      ;

					      00A05 	    .ASCII  \NAKS SENT--BAD DATA BCC\				      ;

					      00A1C P.ADL:  .BYTE   9							      ;

					      00A1D 	    .ASCII  \REPS SENT\						      ;

					      00A26	    .BLKB   2

					      00A28 P.ADM:  .BYTE   13							      ;

					      00A29 	    .ASCII  \REPS RECEIVED\					      ;

					      00A36	    .BLKB   2



							    .PSECT  $OWN$,NOEXE,2



					      00186	    .BLKB   2

					      00188 GLO_NODE_TEXT:

							    .LONG   0							      ;

					      0018C 	    .ADDRESS  P.ABX						      ;

					      00190 	    .LONG   1							      ;

					      00194 	    .ADDRESS  P.ABY						      ;

					      00198 	    .LONG   2							      ;

					      0019C 	    .ADDRESS  P.ABZ						      ;

					      001A0 	    .LONG   3							      ;

					      001A4 	    .ADDRESS  P.ACA						      ;

					      001A8 	    .LONG   4							      ;

					      001AC 	    .ADDRESS  P.ACB						      ;

					      001B0 	    .LONG   5							      ;

					      001B4 	    .ADDRESS  P.ACC						      ;

					      001B8 	    .LONG   6							      ;

					      001BC 	    .ADDRESS  P.ACD						      ;

					      001C0 	    .LONG   7							      ;

					      001C4 	    .ADDRESS  P.ACE						      ;

					      001C8 	    .LONG   8							      ;

					      001CC 	    .ADDRESS  P.ACF						      ;

					      001D0 	    .LONG   9							      ;

					      001D4 	    .ADDRESS  P.ACG						      ;

					      001D8 	    .LONG   10							      ;

					      001DC 	    .ADDRESS  P.ACH						      ;

					      001E0 	    .LONG   11							      ;

					      001E4 	    .ADDRESS  P.ACI						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 31-4

; Digital Equipment Corporation

;

					      001E8 	    .LONG   12							      ;

					      001EC 	    .ADDRESS  P.ACJ						      ;

					      001F0 	    .LONG   13							      ;

					      001F4 	    .ADDRESS  P.ACK						      ;

					      001F8 	    .LONG   14							      ;

					      001FC 	    .ADDRESS  P.ACL						      ;

					      00200 	    .LONG   15							      ;

					      00204 	    .ADDRESS  P.ACM						      ;

					      00208 	    .LONG   16							      ;

					      0020C 	    .ADDRESS  P.ACN						      ;

					      00210 	    .LONG   17							      ;

					      00214 	    .ADDRESS  P.ACO						      ;

					      00218 	    .LONG   18							      ;

					      0021C 	    .ADDRESS  P.ACP						      ;

					      00220 GLO_LINE_TEXT:

							    .LONG   0							      ;

					      00224 	    .ADDRESS  P.ACQ						      ;

					      00228 	    .LONG   1							      ;

					      0022C 	    .ADDRESS  P.ACR						      ;

					      00230 	    .LONG   2							      ;

					      00234 	    .ADDRESS  P.ACS						      ;

					      00238 	    .LONG   3							      ;

					      0023C 	    .ADDRESS  P.ACT						      ;

					      00240 	    .LONG   4							      ;

					      00244 	    .ADDRESS  P.ACU						      ;

					      00248 	    .LONG   5							      ;

					      0024C 	    .ADDRESS  P.ACV						      ;

					      00250 	    .LONG   6							      ;

					      00254 	    .ADDRESS  P.ACW						      ;

					      00258 	    .LONG   7							      ;

					      0025C 	    .ADDRESS  P.ACX						      ;

					      00260 	    .LONG   8							      ;

					      00264 	    .ADDRESS  P.ACY						      ;

					      00268 LOC_NODE_TEXT:

							    .LONG   64							      ;

					      0026C 	    .ADDRESS  P.ACZ						      ;

					      00270 	    .LONG   65							      ;

					      00274 	    .ADDRESS  P.ADA						      ;

					      00278 	    .LONG   66							      ;

					      0027C 	    .ADDRESS  P.ADB						      ;

					      00280 	    .LONG   67							      ;

					      00284 	    .ADDRESS  P.ADC						      ;

					      00288 	    .LONG   68							      ;

					      0028C 	    .ADDRESS  P.ADD						      ;

					      00290 	    .LONG   69							      ;

					      00294 	    .ADDRESS  P.ADE						      ;

					      00298 LOC_LINE_TEXT:

							    .LONG   64							      ;

					      0029C 	    .ADDRESS  P.ADF						      ;

					      002A0 	    .LONG   65							      ;

					      002A4 	    .ADDRESS  P.ADG						      ;

					      002A8 	    .LONG   66							      ;

					      002AC 	    .ADDRESS  P.ADH						      ;

					      002B0 	    .LONG   67							      ;

					      002B4 	    .ADDRESS  P.ADI						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 31-5

; Digital Equipment Corporation

;

					      002B8 	    .LONG   68							      ;

					      002BC 	    .ADDRESS  P.ADJ						      ;

					      002C0 	    .LONG   69							      ;

					      002C4 	    .ADDRESS  P.ADK						      ;

					      002C8 	    .LONG   70							      ;

					      002CC 	    .ADDRESS  P.ADL						      ;

					      002D0 	    .LONG   71							      ;

					      002D4 	    .ADDRESS  P.ADM						      ;







							    .PSECT  $CODE$,NOWRT,2



					 080C 00A41 MSG_SEARCH:

							    .WORD   Save R2,R3,R11					      ; 2609

		         5B	0000G  CF  9E 00A43 	    MOVAB   FLAGS, R11						      ;

	   0A	         6B	       01  E1 00A48 	    BBC     #1, FLAGS, 1$					      ; 2736

		         51	0000'  CF  9E 00A4C 	    MOVAB   GLO_LINE_TEXT, MESSAGES				      ; 2739

		         53	       08  D0 00A51 	    MOVL    #8, LAST						      ; 2740

				       08  11 00A54 	    BRB     2$							      ; 2735

		         51	0000'  CF  9E 00A56 1$:     MOVAB   GLO_NODE_TEXT, MESSAGES				      ; 2744

		         53	       12  D0 00A5B 	    MOVL    #18, LAST						      ; 2745

		         52	       01  CE 00A5E 2$:     MNEGL   #1, DEX						      ; 2751

				       0B  11 00A61 	    BRB     4$							      ;

	   50	         52	       01  78 00A63 3$:     ASHL    #1, DEX, R0						      ; 2753

		    08   AC	     6140  D1 00A67 	    CMPL    (MESSAGES)[R0], TYPE				      ;

				       32  13 00A6C 	    BEQL    8$							      ;

	   F1	         52	       53  F3 00A6E 4$:     AOBLEQ  LAST, DEX, 3$					      ; 2751

	   37	    01   AB	       01  E0 00A72 	    BBS     #1, FLAGS+1, 10$					      ; 2764

		         34	       6B  E8 00A77 	    BLBS    FLAGS, 10$						      ;

	   0A	         6B	       01  E1 00A7A 	    BBC     #1, FLAGS, 5$					      ; 2772

		         51	0000'  CF  9E 00A7E 	    MOVAB   LOC_LINE_TEXT, MESSAGES				      ; 2775

		         53	       08  D0 00A83 	    MOVL    #8, LAST						      ; 2776

				       08  11 00A86 	    BRB     6$							      ; 2771

		         51	0000'  CF  9E 00A88 5$:     MOVAB   LOC_NODE_TEXT, MESSAGES				      ; 2780

		         53	       06  D0 00A8D 	    MOVL    #6, LAST						      ; 2781

		         52	       01  CE 00A90 6$:     MNEGL   #1, DEX						      ; 2786

				       15  11 00A93 	    BRB     9$							      ;

	   50	         52	       01  78 00A95 7$:     ASHL    #1, DEX, R0						      ; 2788

		    08   AC	     6140  D1 00A99 	    CMPL    (MESSAGES)[R0], TYPE				      ;

				       0A  12 00A9E 	    BNEQ    9$							      ;

		    04   BC	  04 A140  D0 00AA0 8$:     MOVL    4(MESSAGES)[R0], @TEXT				      ; 2791

		         50	       01  D0 00AA6 	    MOVL    #1, R0						      ; 2792

					   04 00AA9 	    RET     							      ;

	   E7	         52	       53  F3 00AAA 9$:     AOBLEQ  LAST, DEX, 7$					      ; 2786

				       50  D4 00AAE 10$:    CLRL    R0							      ; 2609

					   04 00AB0 	    RET     							      ;



; Routine Size:  112 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 32

; Digital Equipment Corporation

;

;	2801	ROUTINE NICERSP_DECODE(COUNT)=

;	2802	

;	2803	!++

;	2804	! FUNCTIONAL DESCRIPTION:

;	2805	!

;	2806	!	NICERSP_DECODE EXAMINES RESPONSE MESSAGES RECEIVED FROM 

;	2807	!	A NICE OBJECT.  IF THE RESPONSE CODE(FIRST BYTE) OF THE

;	2808	!	MESSAGE IS NOT SUCCESS(1) THEN THE TEXT ASSOCIATED WITH 

;	2809	!	THAT CODE IS OUTPUT. IF THE SIZE OF THE RESPONSE MESSAGE

;	2810	!	IS OTHER THAN THAT EXPECTED, AN ERROR IS INDICATED.

;	2811	!

;	2812	! FORMAL PARAMETERS:

;	2813	!

;	2814	!	BUFFER: ADDRESS OF THE RESPONSE MESSAGE

;	2815	!	COUNT: SIZE OF THE RESPONSE MESSAGE

;	2816	!

;	2817	! IMPLICIT INPUTS:

;	2818	!

;	2819	!	NONE

;	2820	!

;	2821	! IMPLICIT OUTPUTS:

;	2822	!

;	2823	!	NONE

;	2824	!

;	2825	! ROUTINE VALUE:

;	2826	! COMPLETION CODES:

;	2827	!

;	2828	!	FALSE IF RESPONSE CODE IS A FAILURE

;	2829	

;	2830	!

;	2831	! SIDE EFFECTS:

;	2832	!

;	2833	!	NONE

;	2834	!

;	2835	!--

;	2836	

;	2837	BEGIN

;	2838	BIND

;	2839	    ERRMSG_BADRSP=CSTRING('!/NICE RESPONSE WRONG SIZE');

;	2840	MACRO

;	2841	    RESPONSE_CODE=(NICEDATA[0])<0,8,1>%;	 

;	2842	LITERAL

;	2843	    SUCCESS_CODE=1;

;	2844	

;	2845	!+

;	2846	!PRIMARY DETERMINATION IS WHETHER RETURNED RESPONSE CODE

;	2847	!IS SUCCESS OR AN ERROR

;	2848	

;	2849	    IF

;	2850		.RESPONSE_CODE NEQ SUCCESS_CODE

;	2851	    THEN

;	2852		BEGIN

;	2853		FAOOUT(NICE_TEXT(.RESPONSE_CODE),.RESPONSE_CODE);

;	2854		RETURN FALSE

;	2855		END;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 32-1

; Digital Equipment Corporation

;

;	2856	!+

;	2857	!SECONDARY ERROR IS IF RESPONSE MESSAGE A DIFFERENT LENGTH

;	2858	!THAN EXPECTED

;	2859	

;	2860	    IF

;	2861		.INPUT_IOCOUNT NEQ .COUNT

;	2862	    THEN

;	2863		BEGIN

;	2864		FAOOUT(ERRMSG_BADRSP);

;	2865		RETURN FALSE

;	2866		END

;	2867	    ELSE

;	2868		RETURN TRUE

;	2869	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00A38 P.ADN:  .BYTE   26							      ;

					      00A39 	    .ASCII  \!/NICE RESPONSE WRONG SIZE\			      ;

					      00A53	    .BLKB   1



						    ERRMSG_BADRSP=	P.ADN





							    .PSECT  $CODE$,NOWRT,2



					 0800 00AB1 NICERSP_DECODE:

							    .WORD   Save R11						      ; 2801

		         5B	0000'  CF  9E 00AB3 	    MOVAB   NICEDATA, R11					      ;

		         01	       6B  91 00AB8 	    CMPB    NICEDATA, #1					      ; 2850

				       14  13 00ABB 	    BEQL    1$							      ;

		         7E	       6B  98 00ABD 	    CVTBL   NICEDATA, -(SP)					      ; 2853

		         7E	       6B  98 00AC0 	    CVTBL   NICEDATA, -(SP)					      ;

		  0000V  CF	       01  FB 00AC3 	    CALLS   #1, NICE_TEXT					      ;

				       50  DD 00AC8 	    PUSHL   R0							      ;

		  0000G  CF	       02  FB 00ACA 	    CALLS   #2, FAOOUT						      ;

				       19  11 00ACF 	    BRB     3$							      ; 2854

    0106   CB	         10	       00  ED 00AD1 1$:     CMPZV   #0, #16, INSTATUSBLK+2, COUNT			      ; 2861

				  04   AC     00AD7									      ;

				       0B  13 00AD9 	    BEQL    2$							      ;

				0000'  CF  9F 00ADB 	    PUSHAB  ERRMSG_BADRSP					      ; 2801

		  0000G  CF	       01  FB 00ADF 	    CALLS   #1, FAOOUT						      ; 2864

				       04  11 00AE4 	    BRB     3$							      ; 2865

		         50	       01  D0 00AE6 2$:     MOVL    #1, R0						      ; 2868

					   04 00AE9 	    RET     							      ;

				       50  D4 00AEA 3$:     CLRL    R0							      ; 2860

					   04 00AEC 	    RET     							      ; 2801



; Routine Size:  60 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 33

; Digital Equipment Corporation

;

;	2870	ROUTINE NICE_TEXT(ERROR_CODE)=

;	2871	

;	2872	!++

;	2873	! FUNCTIONAL DESCRIPTION:

;	2874	!

;	2875	!	NICE_TEXT SEARCH THE LIST OF KNOWN NICE ERROR CODES

;	2876	!	FOR ONE MATCHING THE CALLING PARAMETER. UPON A MATCH

;	2877	!	THE ADDRESS OF THE ASSOCIATED TEXT IS RETURNED.

;	2878	!	IF NO MATCH, A MESSAGE INCLUDING THE UNKNOWN CODE

;	2879	!	IS RETURNED.

;	2880	!

;	2881	! FORMAL PARAMETERS:

;	2882	!

;	2883	!	ERROR_CODE: THE NICE ERROR CODE BEING SOUGHT

;	2884	!

;	2885	! IMPLICIT INPUTS:

;	2886	!

;	2887	!	NONE

;	2888	!

;	2889	! IMPLICIT OUTPUTS:

;	2890	!

;	2891	!	NONE

;	2892	!

;	2893	! ROUTINE VALUE:

;	2894	! COMPLETION CODES:

;	2895	!

;	2896	!	NONE

;	2897	!

;	2898	! SIDE EFFECTS:

;	2899	!

;	2900	!	NONE

;	2901	!

;	2902	!--

;	2903	

;	2904	BEGIN

;	2905	LITERAL

;	2906	    NUMBER_ERRORS=19;

;	2907	

;	2908	!+

;	2909	!STANDARD TABLE OF NICE ERRORS

;	2910	 OWN

;	2911	    ERROR_TABLE:BLOCKVECTOR[NUMBER_ERRORS,2]

;	2912		INITIAL(

;	2913		-1,CSTRING('!/-NICE- INVALID FUNCTION OR OPTION!/'),

;	2914		-2,CSTRING('!/-NICE- INVALID MESSAGE FORMAT!/'),

;	2915		-3,CSTRING('!/-NICE- INSUFFICIENT STATUS!/'),

;	2916		-4,CSTRING('!/-NICE- DIALOGUE MESSAGE OUT OF ORDER!/'),

;	2917		-5,CSTRING('!/-NICE- NICE PROCESS PROGRAM ERROR!/'),

;	2918		-8,CSTRING('!/-NICE- INVALID LINE IDENTIFICATION!/'),

;	2919		-9,CSTRING('!/-NICE- LINE IN WRONG STATE!/'),

;	2920		-10,CSTRING('!/-NICE- LINE COMMUNICATIONS ERROR!/'),

;	2921		-11,CSTRING('!/-NICE- INVALID NODE IDENTIFICATION!/'),

;	2922		-12,CSTRING('!/-NICE- INVALID SERVER IDENTIFICATION!/'),

;	2923		-13,CSTRING('!/-NICE- INVALID FILE!/'),

;	2924		-14,CSTRING('!/-NICE- CONFIGURATION DATABASE ERROR'),



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 33-1

; Digital Equipment Corporation

;

;	2925		-15,CSTRING('!/-NICE- RESOURCE ERROR!/'),

;	2926		-16,CSTRING('!/-NICE- INVALID PARAMETER VALUE!/'),

;	2927		-17,CSTRING('!/-NICE- LINE PROTOCOL ERROR!/'),

;	2928		-18,CSTRING('!/-NICE- FILE I/O ERROR!/'),

;	2929		-19,CSTRING('!/-NICE- NETWORK COMMUNICATIONS ERROR!/'),

;	2930		-20,CSTRING('!/-NICE- NO ROOM FOR NEW ENTRY!/'),

;	2931		-21,CSTRING('!/-NICE- REMOTE NICE PROCESS NOT AVAILABLE!/')

;	2932		);

;	2933	MACRO

;	2934	    ERROR_NUMBER=0,0,32,0%,

;	2935	    ERROR_TEXT=1,0,32,0%;

;	2936	BIND

;	2937	    STANDARD_ERROR=CSTRING('!/-NICE- ERROR CODE IS !SB!/');

;	2938	

;	2939	!+

;	2940	!LOOP THROUGH ERROR TABLE LOOKING FOR MATCHING NICE ERROR CODE

;	2941	

;	2942	    INCR DEX FROM 0 TO NUMBER_ERRORS-1 DO

;	2943	        IF

;	2944		    .ERROR_CODE EQL .ERROR_TABLE[.DEX,ERROR_NUMBER]

;	2945		THEN

;	2946		    RETURN .ERROR_TABLE[.DEX,ERROR_TEXT];

;	2947	

;	2948	!+

;	2949	!IF NOT FOUND RETURN STANDARD TEXT

;	2950	

;	2951	    RETURN STANDARD_ERROR 

;	2952	

;	2953	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00A54 P.ADO:  .BYTE   37							      ;

					      00A55 	    .ASCII  \!/-NICE- INVALID FUNCTION OR OPTION!/\		      ;

					      00A7A	    .BLKB   2

					      00A7C P.ADP:  .BYTE   33							      ;

					      00A7D 	    .ASCII  \!/-NICE- INVALID MESSAGE FORMAT!/\			      ;

					      00A9E	    .BLKB   2

					      00AA0 P.ADQ:  .BYTE   30							      ;

					      00AA1 	    .ASCII  \!/-NICE- INSUFFICIENT STATUS!/\			      ;

					      00ABF	    .BLKB   1

					      00AC0 P.ADR:  .BYTE   40							      ;

					      00AC1 	    .ASCII  \!/-NICE- DIALOGUE MESSAGE OUT OF ORDER!/\		      ;

					      00AE9	    .BLKB   3

					      00AEC P.ADS:  .BYTE   37							      ;

					      00AED 	    .ASCII  \!/-NICE- NICE PROCESS PROGRAM ERROR!/\		      ;

					      00B12	    .BLKB   2

					      00B14 P.ADT:  .BYTE   38							      ;

					      00B15 	    .ASCII  \!/-NICE- INVALID LINE IDENTIFICATION!/\		      ;

					      00B3B	    .BLKB   1

					      00B3C P.ADU:  .BYTE   30							      ;

					      00B3D 	    .ASCII  \!/-NICE- LINE IN WRONG STATE!/\			      ;

					      00B5B	    .BLKB   1



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 33-2

; Digital Equipment Corporation

;

					      00B5C P.ADV:  .BYTE   36							      ;

					      00B5D 	    .ASCII  \!/-NICE- LINE COMMUNICATIONS ERROR!/\		      ;

					      00B81	    .BLKB   3

					      00B84 P.ADW:  .BYTE   38							      ;

					      00B85 	    .ASCII  \!/-NICE- INVALID NODE IDENTIFICATION!/\		      ;

					      00BAB	    .BLKB   1

					      00BAC P.ADX:  .BYTE   40							      ;

					      00BAD 	    .ASCII  \!/-NICE- INVALID SERVER IDENTIFICATION!/\		      ;

					      00BD5	    .BLKB   3

					      00BD8 P.ADY:  .BYTE   23							      ;

					      00BD9 	    .ASCII  \!/-NICE- INVALID FILE!/\				      ;

					      00BF0 P.ADZ:  .BYTE   37							      ;

					      00BF1 	    .ASCII  \!/-NICE- CONFIGURATION DATABASE ERROR\		      ;

					      00C16	    .BLKB   2

					      00C18 P.AEA:  .BYTE   25							      ;

					      00C19 	    .ASCII  \!/-NICE- RESOURCE ERROR!/\				      ;

					      00C32	    .BLKB   2

					      00C34 P.AEB:  .BYTE   34							      ;

					      00C35 	    .ASCII  \!/-NICE- INVALID PARAMETER VALUE!/\		      ;

					      00C57	    .BLKB   1

					      00C58 P.AEC:  .BYTE   30							      ;

					      00C59 	    .ASCII  \!/-NICE- LINE PROTOCOL ERROR!/\			      ;

					      00C77	    .BLKB   1

					      00C78 P.AED:  .BYTE   25							      ;

					      00C79 	    .ASCII  \!/-NICE- FILE I/O ERROR!/\				      ;

					      00C92	    .BLKB   2

					      00C94 P.AEE:  .BYTE   39							      ;

					      00C95 	    .ASCII  \!/-NICE- NETWORK COMMUNICATIONS ERROR!/\		      ;

					      00CBC P.AEF:  .BYTE   32							      ;

					      00CBD 	    .ASCII  \!/-NICE- NO ROOM FOR NEW ENTRY!/\			      ;

					      00CDD	    .BLKB   3

					      00CE0 P.AEG:  .BYTE   44							      ;

					      00CE1 	    .ASCII  \!/-NICE- REMOTE NICE PROCESS NOT AVAILABLE!/\	      ;

					      00D0D	    .BLKB   3

					      00D10 P.AEH:  .BYTE   28							      ;

					      00D11 	    .ASCII  \!/-NICE- ERROR CODE IS !SB!/\			      ;

					      00D2D	    .BLKB   3



							    .PSECT  $OWN$,NOEXE,2



					      002D8 ERROR_TABLE:

							    .LONG   -1							      ;

					      002DC 	    .ADDRESS  P.ADO						      ;

					      002E0 	    .LONG   -2							      ;

					      002E4 	    .ADDRESS  P.ADP						      ;

					      002E8 	    .LONG   -3							      ;

					      002EC 	    .ADDRESS  P.ADQ						      ;

					      002F0 	    .LONG   -4							      ;

					      002F4 	    .ADDRESS  P.ADR						      ;

					      002F8 	    .LONG   -5							      ;

					      002FC 	    .ADDRESS  P.ADS						      ;

					      00300 	    .LONG   -8							      ;

					      00304 	    .ADDRESS  P.ADT						      ;

					      00308 	    .LONG   -9							      ;

					      0030C 	    .ADDRESS  P.ADU						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 33-3

; Digital Equipment Corporation

;

					      00310 	    .LONG   -10							      ;

					      00314 	    .ADDRESS  P.ADV						      ;

					      00318 	    .LONG   -11							      ;

					      0031C 	    .ADDRESS  P.ADW						      ;

					      00320 	    .LONG   -12							      ;

					      00324 	    .ADDRESS  P.ADX						      ;

					      00328 	    .LONG   -13							      ;

					      0032C 	    .ADDRESS  P.ADY						      ;

					      00330 	    .LONG   -14							      ;

					      00334 	    .ADDRESS  P.ADZ						      ;

					      00338 	    .LONG   -15							      ;

					      0033C 	    .ADDRESS  P.AEA						      ;

					      00340 	    .LONG   -16							      ;

					      00344 	    .ADDRESS  P.AEB						      ;

					      00348 	    .LONG   -17							      ;

					      0034C 	    .ADDRESS  P.AEC						      ;

					      00350 	    .LONG   -18							      ;

					      00354 	    .ADDRESS  P.AED						      ;

					      00358 	    .LONG   -19							      ;

					      0035C 	    .ADDRESS  P.AEE						      ;

					      00360 	    .LONG   -20							      ;

					      00364 	    .ADDRESS  P.AEF						      ;

					      00368 	    .LONG   -21							      ;

					      0036C 	    .ADDRESS  P.AEG						      ;



						    STANDARD_ERROR=	P.AEH





							    .PSECT  $CODE$,NOWRT,2



					 0000 00AED NICE_TEXT:

							    .WORD   Save nothing					      ; 2870

				       51  D4 00AEF 	    CLRL    DEX							      ; 2942

	   50	         51	       01  78 00AF1 1$:     ASHL    #1, DEX, R0						      ; 2944

		  0000'CF40	  04   AC  D1 00AF5 	    CMPL    ERROR_CODE, ERROR_TABLE[R0]				      ;

				       07  12 00AFC 	    BNEQ    2$							      ;

		         50	0000'CF40  D0 00AFE 	    MOVL    ERROR_TABLE+4[R0], R0				      ; 2946

					   04 00B04 	    RET     							      ;

	   E8	         51	       12  F3 00B05 2$:     AOBLEQ  #18, DEX, 1$					      ; 2942

		         50	0000'  CF  9E 00B09 	    MOVAB   STANDARD_ERROR, R0					      ; 2870

					   04 00B0E 	    RET     							      ;



; Routine Size:  34 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 34

; Digital Equipment Corporation

;

;	2954	GLOBAL ROUTINE SYS_SERV_ERR(ERROR_CODE)=

;	2955	

;	2956	!++

;	2957	! FUNCTIONAL DESCRIPTION:

;	2958	!

;	2959	!

;	2960	! FORMAL PARAMETERS:

;	2961	!

;	2962	!	NONE

;	2963	!

;	2964	! IMPLICIT INPUTS:

;	2965	!

;	2966	!	NONE

;	2967	!

;	2968	! IMPLICIT OUTPUTS:

;	2969	!

;	2970	!	NONE

;	2971	!

;	2972	! ROUTINE VALUE:

;	2973	! COMPLETION CODES:

;	2974	!

;	2975	!	NONE

;	2976	!

;	2977	! SIDE EFFECTS:

;	2978	!

;	2979	!	NONE

;	2980	!

;	2981	!--

;	2982	

;	2983	BEGIN

;	2984	

;	2985	LOCAL

;	2986	    STATUS,

;	2987	    MSGBUFFER:VECTOR[257,BYTE],		!BUFFER FOR TEXT AND COUNT

;	2988	    MSG_DESC:VECTOR[2],			!DESCRIPTOR OF MSGBUFFER

;	2989	    MSG_LENGTH:WORD;			!LENGTH OF RETURNED TEXT

;	2990	BIND

;	2991	    SYSERR_MSG=CSTRING('SYSERR !XL!/');

;	2992	

;	2993	!+

;	2994	!INITIALIZE DESCRIPTOR

;	2995	

;	2996	    MSG_DESC[0]=256;

;	2997	    MSG_DESC[1]=MSGBUFFER+1;

;	2998	

;	2999	!+

;	3000	!GET THE MESSAGE

;	3001	

;	3002	    STATUS=$GETMSG(MSGID=.ERROR_CODE,MSGLEN=MSG_LENGTH,BUFADR=MSG_DESC);

;	3003	

;	3004	!+

;	3005	!IF TEXT FOUND  PRINT RETURNED TEXT 

;	3006	!OTHERWISE PRINT DEFAULT TEXT

;	3007	

;	3008	    IF



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 34-1

; Digital Equipment Corporation

;

;	3009		.STATUS EQL SS$_NORMAL

;	3010	    THEN

;	3011	 BEGIN  

;	3012		MSGBUFFER[0]=.MSG_LENGTH;

;	3013		FAOOUT(MSGBUFFER)

;	3014		END

;	3015	    ELSE

;	3016		FAOOUT(SYSERR_MSG,.ERROR_CODE);

;	3017	

;	3018	!+

;	3019	!LEAVE

;	3020	    RETURN

;	3021	

;	3022	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00D30 P.AEI:  .BYTE   12							      ;

					      00D31 	    .ASCII  \SYSERR !XL!/\					      ;

					      00D3D	    .BLKB   3



						    SYSERR_MSG=		P.AEI

							    .GLOBL  SYS$GETMSG



							    .PSECT  $CODE$,NOWRT,2



					 0000 00B0F 	    .ENTRY  SYS_SERV_ERR, Save nothing				      ; 2954

		         5E	FEF0   CE  9E 00B11 	    MOVAB   -272(SP), SP					      ;

		    04   AE	0100   8F  3C 00B16 	    MOVZWL  #256, MSG_DESC					      ; 2996

		    08   AE	  0D   AE  9E 00B1C 	    MOVAB   MSGBUFFER+1, MSG_DESC+4				      ; 2997

		         7E	       0F  7D 00B21 	    MOVQ    #15, -(SP)						      ; 3002

				  0C   AE  9F 00B24 	    PUSHAB  MSG_DESC						      ;

				  0C   AE  9F 00B27 	    PUSHAB  MSG_LENGTH						      ;

				  04   AC  DD 00B2A 	    PUSHL   ERROR_CODE						      ;

	      00000000G  9F	       05  FB 00B2D 	    CALLS   #5, @#SYS$GETMSG					      ;

		         01	       50  D1 00B34 	    CMPL    STATUS, #1						      ; 3009

				       0E  12 00B37 	    BNEQ    1$							      ;

		    0C   AE	       6E  90 00B39 	    MOVB    MSG_LENGTH, MSGBUFFER				      ; 3012

				  0C   AE  9F 00B3D 	    PUSHAB  MSGBUFFER						      ; 3013

		  0000G  CF	       01  FB 00B40 	    CALLS   #1, FAOOUT						      ;

				       0C  11 00B45 	    BRB     2$							      ; 3008

				  04   AC  DD 00B47 1$:     PUSHL   ERROR_CODE						      ; 3016

				0000'  CF  9F 00B4A 	    PUSHAB  SYSERR_MSG						      ; 2954

		  0000G  CF	       02  FB 00B4E 	    CALLS   #2, FAOOUT						      ; 3016

				       50  D4 00B53 2$:     CLRL    R0							      ; 3020

					   04 00B55 	    RET     							      ; 2954



; Routine Size:  71 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 35

; Digital Equipment Corporation

;

;	3023	ROUTINE MOVE_LINEID(MSGPTR)=

;	3024	

;	3025	!++

;	3026	! FUNCTIONAL DESCRIPTION:

;	3027	!

;	3028	!	MOVE_LINEID TAKES A LINEID FROM THE PARAMETER QUEUE

;	3029	!	AND MOVES IT INTO THE CHARACTER POSITION ADDRESSED

;	3030	!	BY MSGPTR

;	3031	!

;	3032	! FORMAL PARAMETERS:

;	3033	!

;	3034	!	MSGPTR: A CHARACTER POINTER TO AN AREA IN A NICE MESSAGE

;	3035	!		BUFFER IN WHICH TO PLACE A LINEID.

;	3036	!

;	3037	! IMPLICIT INPUTS:

;	3038	!

;	3039	!	NONE

;	3040	!

;	3041	! IMPLICIT OUTPUTS:

;	3042	!

;	3043	!	NONE

;	3044	!

;	3045	! ROUTINE VALUE:

;	3046	! COMPLETION CODES:

;	3047	!

;	3048	!	ROUTINE RETURNS AN UPDATED CHARACTER POINTER

;	3049	!

;	3050	! SIDE EFFECTS:

;	3051	!

;	3052	!	NONE

;	3053	!

;	3054	!--

;	3055	

;	3056	BEGIN

;	3057	LOCAL

;	3058	    LINEID_TYPE,

;	3059	    TEXTLEN;

;	3060	

;	3061	!+

;	3062	!DETERMINE WHETHER LINID IS NICE STANDARD OR NICE TEXTUAL

;	3063	

;	3064	    CASE LINEID_TYPE=OUT_QUEUE() FROM STANDARD_LINEID TO TEXT_LINEID OF

;	3065		SET

;	3066		[STANDARD_LINEID]:

;	3067	

;	3068		    BEGIN

;	3069		    !+

;	3070		    !STANDARD LINEID

;	3071	

;	3072		        CH$WCHAR_A(.LINEID_TYPE,MSGPTR);

;	3073	

;	3074		    !+

;	3075		    !MOVE REMAINING 4 ELEMENTS INTO BUFFER

;	3076	

;	3077			MSGPTR=MOVEQ(4,.MSGPTR);



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 35-1

; Digital Equipment Corporation

;

;	3078		    END;

;	3079	 	[TEXT_LINEID]:

;	3080		    BEGIN

;	3081		    !+

;	3082		    !TEXTUAL LINEID

;	3083	

;	3084			CH$WCHAR_A(.LINEID_TYPE,MSGPTR);

;	3085	

;	3086		    !+

;	3087		    !SAVE COUNTED TEXT

;	3088	

;	3089			MSGPTR=MOVEQ_COUNTED(.MSGPTR);

;	3090		    END;

;	3091		TES;

;	3092	

;	3093	!+

;	3094	!RETURN NEW CHARACTER POINTER

;	3095	

;	3096		RETURN .MSGPTR

;	3097	END;











					 0000 00B56 MOVE_LINEID:

							    .WORD   Save nothing					      ; 3023

		  0000G  CF	       00  FB 00B58 	    CALLS   #0, OUT_QUEUE					      ; 3064

	   01	         01	       50  CF 00B5D 	    CASEL   LINEID_TYPE, #1, #1					      ;

		       0017	     0004     00B61 1$:     .WORD   2$-1$,-						      ;

								    3$-1$						      ;

		    04   BC	       50  90 00B65 2$:     MOVB    LINEID_TYPE, @MSGPTR				      ; 3072

				  04   AC  D6 00B69 	    INCL    MSGPTR						      ;

				  04   AC  DD 00B6C 	    PUSHL   MSGPTR						      ; 3077

				       04  DD 00B6F 	    PUSHL   #4							      ;

		  0000V  CF	       02  FB 00B71 	    CALLS   #2, MOVEQ						      ;

				       0F  11 00B76 	    BRB     4$							      ;

		    04   BC	       50  90 00B78 3$:     MOVB    LINEID_TYPE, @MSGPTR				      ; 3084

				  04   AC  D6 00B7C 	    INCL    MSGPTR						      ;

				  04   AC  DD 00B7F 	    PUSHL   MSGPTR						      ; 3089

		  0000V  CF	       01  FB 00B82 	    CALLS   #1, MOVEQ_COUNTED					      ;

		    04   AC	       50  D0 00B87 4$:     MOVL    R0, MSGPTR						      ;

		         50	  04   AC  D0 00B8B 	    MOVL    MSGPTR, R0						      ; 3096

					   04 00B8F 	    RET     							      ; 3023



; Routine Size:  58 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 36

; Digital Equipment Corporation

;

;	3098	GLOBAL ROUTINE OUTPUT_LINEID(CHARPTR)=

;	3099	

;	3100	!++

;	3101	! FUNCTIONAL DESCRIPTION:

;	3102	!

;	3103	!	OUTPUT_LINEID REMOVES FROM A CHARACTER STRING A LINEID

;	3104	!	 CONVERTS TO AN ASCII FORM AND OUTPUTS IT

;	3105	!

;	3106	! FORMAL PARAMETERS:

;	3107	!

;	3108	!	CHARPTR:POINTER TO LINEID TEXT

;	3109	!

;	3110	! IMPLICIT INPUTS:

;	3111	!

;	3112	!	NONE

;	3113	!

;	3114	! IMPLICIT OUTPUTS:

;	3115	!

;	3116	!	NONE

;	3117	!

;	3118	! ROUTINE VALUE:

;	3119	! COMPLETION CODES:

;	3120	!

;	3121	!	NONE

;	3122	!

;	3123	! SIDE EFFECTS:

;	3124	!

;	3125	!	NONE

;	3126	!

;	3127	!--

;	3128	

;	3129	BEGIN

;	3130	LOCAL

;	3131	    CONTROLLER,

;	3132	    LINE,

;	3133	    ADDRESS,

;	3134	    TYPE;

;	3135	REGISTER

;	3136	    MSGPTR;

;	3137	BIND

;	3138	    ONE_DIGIT=CSTRING('!24<!AC_!UB!>'),

;	3139	    TWO_DIGITS=CSTRING('!24<!AC_!UB_!UB!>'),

;	3140	    THREE_DIGITS=CSTRING('!24<!AC_!UB_!UB_!UB!>'),

;	3141	    TEXT_ID=CSTRING('!24AC');

;	3142	

;	3143	!+

;	3144	!SETUP START OF ID

;	3145	 

;	3146	    MSGPTR=.CHARPTR;

;	3147		CASE CH$RCHAR_A(MSGPTR) FROM STANDARD_LINEID TO TEXT_LINEID OF

;	3148		    SET

;	3149		    [STANDARD_LINEID]:

;	3150			!+

;	3151			!STANDARD LINE-ID IS RETURNED

;	3152	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 36-1

; Digital Equipment Corporation

;

;	3153			BEGIN

;	3154			!+

;	3155			!MATCH DEVICE CODES

;	3156	

;	3157		        MATCH_LINECODE(CH$RCHAR_A(MSGPTR),TYPE);

;	3158			

;	3159			CONTROLLER=CH$RCHAR_A(MSGPTR);

;	3160			LINE=CH$RCHAR_A(MSGPTR);

;	3161			ADDRESS=CH$RCHAR_A(MSGPTR);

;	3162			!+

;	3163			!OUTPUT DEVICE NAME

;	3164	

;	3165			IF

;	3166			    (.ADDRESS EQL 0) AND

;	3167			    (.LINE EQL 0)

;	3168			THEN

;	3169			    FAOOUT(ONE_DIGIT,.TYPE,.CONTROLLER)

;	3170			ELSE

;	3171			    IF

;	3172				(.ADDRESS EQL 0)

;	3173			    THEN

;	3174				FAOOUT(TWO_DIGITS,.TYPE,

;	3175					.CONTROLLER,.LINE)

;	3176			    ELSE

;	3177				FAOOUT(THREE_DIGITS,.TYPE,.CONTROLLER,

;	3178					.LINE,.ADDRESS);

;	3179		        RETURN .MSGPTR

;	3180				

;	3181			END;

;	3182	

;	3183	    	    [TEXT_LINEID]:

;	3184	    		!+

;	3185	    		!TEXT TYPE OF LINE FORMAT

;	3186	    

;	3187			BEGIN

;	3188			FAOOUT(TEXT_ID,.MSGPTR);

;	3189			RETURN CH$PLUS(CH$RCHAR_A(MSGPTR),.MSGPTR)

;	3190			END;

;	3191	    

;	3192	    	    TES;

;	3193	    RETURN TRUE

;	3194	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00D40 P.AEJ:  .BYTE   13							      ;

					      00D41 	    .ASCII  \!24<!AC_!UB!>\					      ;

					      00D4E	    .BLKB   2

					      00D50 P.AEK:  .BYTE   17							      ;

					      00D51 	    .ASCII  \!24<!AC_!UB_!UB!>\					      ;

					      00D62	    .BLKB   2

					      00D64 P.AEL:  .BYTE   21							      ;

					      00D65 	    .ASCII  \!24<!AC_!UB_!UB_!UB!>\				      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 36-2

; Digital Equipment Corporation

;

					      00D7A	    .BLKB   2

					      00D7C P.AEM:  .BYTE   5							      ;

					      00D7D 	    .ASCII  \!24AC\						      ;

					      00D82	    .BLKB   2



						    ONE_DIGIT=		P.AEJ

						    TWO_DIGITS=		P.AEK

						    THREE_DIGITS=	P.AEL

						    TEXT_ID=		P.AEM





							    .PSECT  $CODE$,NOWRT,2



					 083C 00B90 	    .ENTRY  OUTPUT_LINEID, Save R2,R3,R4,R5,R11			      ; 3098

		         5B	0000G  CF  9E 00B92 	    MOVAB   FAOOUT, R11						      ;

		         5E	       04  C2 00B97 	    SUBL2   #4, SP						      ;

		         52	  04   AC  D0 00B9A 	    MOVL    CHARPTR, MSGPTR					      ; 3146

		         50	       82  9A 00B9E 	    MOVZBL  (MSGPTR)+, R0					      ; 3147

	   01	         01	       50  CF 00BA1 	    CASEL   R0, #1, #1						      ;

		       0050	     0004     00BA5 1$:     .WORD   2$-1$,-						      ;

								    6$-1$						      ;

				       5E  DD 00BA9 2$:     PUSHL   SP							      ; 3157

		         50	       82  9A 00BAB 	    MOVZBL  (MSGPTR)+, R0					      ;

				       50  DD 00BAE 	    PUSHL   R0							      ;

		  0000V  CF	       02  FB 00BB0 	    CALLS   #2, MATCH_LINECODE					      ;

		         54	       82  9A 00BB5 	    MOVZBL  (MSGPTR)+, CONTROLLER				      ; 3159

		         55	       82  9A 00BB8 	    MOVZBL  (MSGPTR)+, LINE					      ; 3160

		         51	       82  9A 00BBB 	    MOVZBL  (MSGPTR)+, ADDRESS					      ; 3161

		         53	       6E  D0 00BBE 	    MOVL    TYPE, R3						      ; 3169

				       50  D4 00BC1 	    CLRL    R0							      ; 3166

				       51  D5 00BC3 	    TSTL    ADDRESS						      ;

				       11  12 00BC5 	    BNEQ    3$							      ;

				       50  D6 00BC7 	    INCL    R0							      ;

				       55  D5 00BC9 	    TSTL    LINE						      ; 3167

				       0B  12 00BCB 	    BNEQ    3$							      ;

				       18  BB 00BCD 	    PUSHR   #^M<R3,R4>						      ; 3169

				0000'  CF  9F 00BCF 	    PUSHAB  ONE_DIGIT						      ; 3098

		         6B	       03  FB 00BD3 	    CALLS   #3, FAOOUT						      ; 3169

				       19  11 00BD6 	    BRB     5$							      ; 3165

		         0B	       50  E9 00BD8 3$:     BLBC    R0, 4$						      ; 3172

				       38  BB 00BDB 	    PUSHR   #^M<R3,R4,R5>					      ; 3174

				0000'  CF  9F 00BDD 	    PUSHAB  TWO_DIGITS						      ; 3098

		         6B	       04  FB 00BE1 	    CALLS   #4, FAOOUT						      ; 3174

				       0B  11 00BE4 	    BRB     5$							      ; 3171

				       51  DD 00BE6 4$:     PUSHL   ADDRESS						      ; 3177

				       38  BB 00BE8 	    PUSHR   #^M<R3,R4,R5>					      ;

				0000'  CF  9F 00BEA 	    PUSHAB  THREE_DIGITS					      ; 3098

		         6B	       05  FB 00BEE 	    CALLS   #5, FAOOUT						      ; 3177

		         50	       52  D0 00BF1 5$:     MOVL    MSGPTR, R0						      ; 3179

					   04 00BF4 	    RET     							      ;

				       52  DD 00BF5 6$:     PUSHL   MSGPTR						      ; 3188

				0000'  CF  9F 00BF7 	    PUSHAB  TEXT_ID						      ; 3098

		         6B	       02  FB 00BFB 	    CALLS   #2, FAOOUT						      ; 3188

		         50	       82  9A 00BFE 	    MOVZBL  (MSGPTR)+, R0					      ; 3189

		         50	       52  C0 00C01 	    ADDL2   MSGPTR, R0						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 36-3

; Digital Equipment Corporation

;

					   04 00C04 	    RET     							      ; 3098



; Routine Size:  117 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 37

; Digital Equipment Corporation

;

;	3195	ROUTINE SINGLE_NICE(NICEOUT_CNT,NICEIN_CNT)=

;	3196	

;	3197	!++

;	3198	! FUNCTIONAL DESCRIPTION:

;	3199	!

;	3200	!	SINGLE_NICE IS USED TO PERFORM NCP/NICE I/O WHEN NCP

;	3201	!	IS SENDING A CONTROL MESSAGE. THE ROUTINE SENDS A

;	3202	!	SINGLE MESSAGE THEN RECEIVES A SINGLE MESSAGE.

;	3203	!

;	3204	! FORMAL PARAMETERS:

;	3205	!

;	3206	!	NICEOUT_CNT:	NUMBER OF BYTES TO OUTPUT

;	3207	!	NICEIN_CNT:	NUMBER OF BYTES TO READ

;	3208	!

;	3209	! IMPLICIT INPUTS:

;	3210	!

;	3211	!	NONE

;	3212	!

;	3213	! IMPLICIT OUTPUTS:

;	3214	!

;	3215	!	NONE

;	3216	!

;	3217	! ROUTINE VALUE:

;	3218	! COMPLETION CODES:

;	3219	!

;	3220	!	IF ALL I/O IS SUCCESSFUL THEN TRUE OTHERWISE FALSE

;	3221	!

;	3222	! SIDE EFFECTS:

;	3223	!

;	3224	!	NONE

;	3225	!

;	3226	!--

;	3227	

;	3228	BEGIN

;	3229	LOCAL

;	3230	    STATUS;

;	3231	!+

;	3232	!IF TRANSMISSION FAILS RETURN THAT CODE

;	3233	!OTHERWISE RETURN STATUS OF RECEIVE

;	3234	

;	3235	    IF

;	3236		NOT (STATUS=SEND_NICE(.NICEOUT_CNT))

;	3237	    THEN

;	3238		BEGIN

;	3239		DEATTACH_NICE();

;	3240		RETURN .STATUS

;	3241		END;

;	3242	    IF

;	3243		NOT(STATUS=GET_NICE(.NICEIN_CNT))

;	3244	    THEN

;	3245		BEGIN

;	3246		DEATTACH_NICE();

;	3247		RETURN .STATUS

;	3248		END;

;	3249	    RETURN TRUE



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 37-1

; Digital Equipment Corporation

;

;	3250	END;











					 0004 00C05 SINGLE_NICE:

							    .WORD   Save R2						      ; 3195

				  04   AC  DD 00C07 	    PUSHL   NICEOUT_CNT						      ; 3236

		  0000V  CF	       01  FB 00C0A 	    CALLS   #1, SEND_NICE					      ;

		         52	       50  D0 00C0F 	    MOVL    R0, STATUS						      ;

		         0E	       52  E9 00C12 	    BLBC    STATUS, 1$						      ;

				  08   AC  DD 00C15 	    PUSHL   NICEIN_CNT						      ; 3243

		  0000V  CF	       01  FB 00C18 	    CALLS   #1, GET_NICE					      ;

		         52	       50  D0 00C1D 	    MOVL    R0, STATUS						      ;

		         09	       52  E8 00C20 	    BLBS    STATUS, 2$						      ;

		  0000V  CF	       00  FB 00C23 1$:     CALLS   #0, DEATTACH_NICE					      ; 3246

		         50	       52  D0 00C28 	    MOVL    STATUS, R0						      ; 3247

					   04 00C2B 	    RET     							      ;

		         50	       01  D0 00C2C 2$:     MOVL    #1, R0						      ; 3249

					   04 00C2F 	    RET     							      ; 3195



; Routine Size:  43 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 38

; Digital Equipment Corporation

;

;	3251	ROUTINE ATTACH_NICE=

;	3252	

;	3253	!++

;	3254	! FUNCTIONAL DESCRIPTION:

;	3255	!

;	3256	!

;	3257	! FORMAL PARAMETERS:

;	3258	!

;	3259	!	NONE

;	3260	!

;	3261	! IMPLICIT INPUTS:

;	3262	!

;	3263	!	NONE

;	3264	!

;	3265	! IMPLICIT OUTPUTS:

;	3266	!

;	3267	!	NONE

;	3268	!

;	3269	! ROUTINE VALUE:

;	3270	! COMPLETION CODES:

;	3271	!

;	3272	!	NONE

;	3273	!

;	3274	! SIDE EFFECTS:

;	3275	!

;	3276	!	NONE

;	3277	!

;	3278	!--

;	3279	

;	3280	BEGIN 

;	3281	MAP FLAGS:BLOCK[1];

;	3282	LOCAL

;	3283	    NEW_REMOTE:VECTOR[RND$S_NAME,BYTE];!TEMPORARY FOR NEW REMOTE NAME

;	3284	

;	3285	!+

;	3286	!DEFAULT NEW NODE NAME TO LOCAL NODE

;	3287	

;	3288	    CH$FILL(0,RND$S_NAME,NEW_REMOTE);

;	3289	

;	3290	!+

;	3291	!IF REMOTE CONNECTION COPY THE NODE NAME

;	3292	

;	3293	    IF

;	3294		.FLAGS[DEF$V_ON]

;	3295	    THEN

;	3296		MOVEQ(OUT_QUEUE(),NEW_REMOTE);

;	3297	!+

;	3298	!IF NO EXISTING CHANNEL DO $ASSIGN

;	3299	

;	3300	    IF

;	3301		.CHANNEL EQL 0

;	3302	    THEN

;	3303		RETURN NEW_ATTACH(NEW_REMOTE);

;	3304	

;	3305	!+  



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 38-1

; Digital Equipment Corporation

;

;	3306	!IF NEW NODE SAME AS OLD JUST RETURN

;	3307	

;	3308	    IF

;	3309		CH$EQL(RND$S_NAME,NEW_REMOTE,RND$S_NAME,REMOTE_NODENAME)

;	3310	    THEN

;	3311		RETURN TRUE

;	3312	    ELSE

;	3313	    !+

;	3314	    !BREAK OLD CONNECTION FORM NEW PATH

;	3315	

;	3316		BEGIN

;	3317		$DASSGN(CHAN=.CHANNEL);

;	3318		RETURN NEW_ATTACH(NEW_REMOTE)

;	3319		END

;	3320	END;











					 003C 00C30 ATTACH_NICE:

							    .WORD   Save R2,R3,R4,R5					      ; 3251

		         5E	       08  C2 00C32 	    SUBL2   #8, SP						      ;

	   00	         6E	       00  2C 00C35 	    MOVC5   #0, (SP), #0, #6, NEW_REMOTE			      ; 3288

		         6E	       06     00C39									      ;

	   0E	  0000G  CF	       01  E1 00C3B 	    BBC     #1, FLAGS+1, 1$					      ; 3294

				       5E  DD 00C41 	    PUSHL   SP							      ; 3296

		  0000G  CF	       00  FB 00C43 	    CALLS   #0, OUT_QUEUE					      ;

				       50  DD 00C48 	    PUSHL   R0							      ;

		  0000V  CF	       02  FB 00C4A 	    CALLS   #2, MOVEQ						      ;

				0000'  CF  B5 00C4F 1$:     TSTW    CHANNEL						      ; 3301

				       18  13 00C53 	    BEQL    3$							      ;

    0000'  CF	         6E	       06  29 00C55 	    CMPC3   #6, NEW_REMOTE, REMOTE_NODENAME			      ; 3309

				       04  12 00C5B 	    BNEQ    2$							      ;

		         50	       01  D0 00C5D 	    MOVL    #1, R0						      ; 3311

					   04 00C60 	    RET     							      ;

		         7E	0000'  CF  3C 00C61 2$:     MOVZWL  CHANNEL, -(SP)					      ; 3317

	      00000000G  9F	       01  FB 00C66 	    CALLS   #1, @#SYS$DASSGN					      ;

				       5E  DD 00C6D 3$:     PUSHL   SP							      ; 3318

		  0000V  CF	       01  FB 00C6F 	    CALLS   #1, NEW_ATTACH					      ;

					   04 00C74 	    RET     							      ; 3251



; Routine Size:  69 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 39

; Digital Equipment Corporation

;

;	3321	ROUTINE NEW_ATTACH(NODENAME)=

;	3322	

;	3323	!++

;	3324	! FUNCTIONAL DESCRIPTION:

;	3325	!

;	3326	!

;	3327	! FORMAL PARAMETERS:

;	3328	!

;	3329	!	NONE

;	3330	!

;	3331	! IMPLICIT INPUTS:

;	3332	!

;	3333	!	NONE

;	3334	!

;	3335	! IMPLICIT OUTPUTS:

;	3336	!

;	3337	!	NONE

;	3338	!

;	3339	! ROUTINE VALUE:

;	3340	! COMPLETION CODES:

;	3341	!

;	3342	!	NONE

;	3343	!

;	3344	! SIDE EFFECTS:

;	3345	!

;	3346	!	NONE

;	3347	!

;	3348	!--

;	3349	

;	3350	BEGIN

;	3351	!+

;	3352	!GET NODE NAME TO $ASSIGN TO

;	3353	

;	3354	    CH$MOVE(RND$S_NAME,.NODENAME,REMOTE_NODENAME);

;	3355	

;	3356	!+

;	3357	!DO THE $ASSIGN

;	3358	    CHANNEL=0;

;	3359	    RETURN $ASSIGN(CHAN=CHANNEL,DEVNAM=DEST_DESC)

;	3360	END;











					 003C 00C75 NEW_ATTACH:

							    .WORD   Save R2,R3,R4,R5					      ; 3321

    0000'  CF	    04   BC	       06  28 00C77 	    MOVC3   #6, @NODENAME, REMOTE_NODENAME			      ; 3354

				0000'  CF  B4 00C7E 	    CLRW    CHANNEL						      ; 3358

				       7E  7C 00C82 	    CLRQ    -(SP)						      ; 3359

				0000'  CF  9F 00C84 	    PUSHAB  CHANNEL						      ;

				0000'  CF  9F 00C88 	    PUSHAB  DEST_DESC						      ;

	      00000000G  9F	       04  FB 00C8C 	    CALLS   #4, @#SYS$ASSIGN					      ;

					   04 00C93 	    RET     							      ; 3321





; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 39-1

; Digital Equipment Corporation

;

; Routine Size:  31 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 40

; Digital Equipment Corporation

;

;	3361	ROUTINE DEATTACH_NICE=

;	3362	

;	3363	!++

;	3364	! FUNCTIONAL DESCRIPTION:

;	3365	!

;	3366	!

;	3367	! FORMAL PARAMETERS:

;	3368	!

;	3369	!	NONE

;	3370	!

;	3371	! IMPLICIT INPUTS:

;	3372	!

;	3373	!	NONE

;	3374	!

;	3375	! IMPLICIT OUTPUTS:

;	3376	!

;	3377	!	NONE

;	3378	!

;	3379	! ROUTINE VALUE:

;	3380	! COMPLETION CODES:

;	3381	!

;	3382	!	NONE

;	3383	!

;	3384	! SIDE EFFECTS:

;	3385	!

;	3386	!	NONE

;	3387	!

;	3388	!--

;	3389	

;	3390	BEGIN

;	3391	

;	3392	!+

;	3393	!BREAK THE CURRENT PATH TO A NICE OBJECT

;	3394	

;	3395	    $DASSGN(CHAN=.CHANNEL);

;	3396	

;	3397	!+

;	3398	!CLEAR CHANNEL NUMBER TO SHOW NO PATH

;	3399	

;	3400	    CHANNEL=0;

;	3401	

;	3402	!+

;	3403	!LEAVE 

;	3404	

;	3405	    RETURN

;	3406	END;











					 0000 00C94 DEATTACH_NICE:

							    .WORD   Save nothing					      ; 3361

		         7E	0000'  CF  3C 00C96 	    MOVZWL  CHANNEL, -(SP)					      ; 3395

	      00000000G  9F	       01  FB 00C9B 	    CALLS   #1, @#SYS$DASSGN					      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 40-1

; Digital Equipment Corporation

;

				0000'  CF  B4 00CA2 	    CLRW    CHANNEL						      ; 3400

				       50  D4 00CA6 	    CLRL    R0							      ; 3405

					   04 00CA8 	    RET     							      ; 3361



; Routine Size:  21 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 41

; Digital Equipment Corporation

;

;	3407	GLOBAL ROUTINE MOVEQ(COUNT,ADDRESS)=

;	3408	

;	3409	!++

;	3410	! FUNCTIONAL DESCRIPTION:

;	3411	!

;	3412	!	MOVEQ MOVES THE NUMBER OF SPECIFIED CHARACTERS

;	3413	!	FROM THE PARAMETER       

;	3414	!	QUEUE TO THE BUFFER ADDRESS SPECIFIED.

;	3415	!

;	3416	! FORMAL PARAMETERS:

;	3417	!

;	3418	!	COUNT:NUMBER OF CHARACTERS TO MOVE FROM QUEUE

;	3419	!	ADDRESS:ADDRESS TO STORE MOVED CHARACTERS

;	3420	!

;	3421	! IMPLICIT INPUTS:

;	3422	!

;	3423	!	NONE

;	3424	!

;	3425	! IMPLICIT OUTPUTS:

;	3426	!

;	3427	!	NONE

;	3428	!

;	3429	! ROUTINE VALUE:

;	3430	! COMPLETION CODES:

;	3431	!

;	3432	!	NONE

;	3433	!

;	3434	! SIDE EFFECTS:

;	3435	!

;	3436	!	NONE

;	3437	!

;	3438	!--

;	3439	

;	3440	BEGIN

;	3441	REGISTER

;	3442	    MSGPTR;

;	3443	!+

;	3444	!GET POINTER TO AREA

;	3445	

;	3446	    MSGPTR=CH$PTR(.ADDRESS);

;	3447	INCR INX FROM 1 TO .COUNT DO

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

;	3449	RETURN .MSGPTR

;	3450	END;











					 000C 00CA9 	    .ENTRY  MOVEQ, Save R2,R3					      ; 3407

		         52	  08   AC  D0 00CAB 	    MOVL    ADDRESS, MSGPTR					      ; 3446

				       53  D4 00CAF 	    CLRL    INX							      ; 3447

				       08  11 00CB1 	    BRB     2$							      ;

		  0000G  CF	       00  FB 00CB3 1$:     CALLS   #0, OUT_QUEUE					      ; 3448

		         82	       50  90 00CB8 	    MOVB    R0, (MSGPTR)+					      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 41-1

; Digital Equipment Corporation

;

	   F3	         53	  04   AC  F3 00CBB 2$:     AOBLEQ  COUNT, INX, 1$					      ; 3447

		         50	       52  D0 00CC0 	    MOVL    MSGPTR, R0						      ; 3449

					   04 00CC3 	    RET     							      ; 3407



; Routine Size:  27 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 42

; Digital Equipment Corporation

;

;	3451	GLOBAL ROUTINE MOVEQ_COUNTED(ADDRESS)=

;	3452	

;	3453	!++

;	3454	! FUNCTIONAL DESCRIPTION:

;	3455	!

;	3456	!	MOVEQ MOVES THE NUMBER OF SPECIFIED CHARACTERS

;	3457	!	FROM THE PARAMETER       

;	3458	!	QUEUE TO THE BUFFER ADDRESS SPECIFIED.

;	3459	!

;	3460	! FORMAL PARAMETERS:

;	3461	!

;	3462	!	COUNT:NUMBER OF CHARACTERS TO MOVE FROM QUEUE

;	3463	!	ADDRESS:ADDRESS TO STORE MOVED CHARACTERS

;	3464	!

;	3465	! IMPLICIT INPUTS:

;	3466	!

;	3467	!	NONE

;	3468	!

;	3469	! IMPLICIT OUTPUTS:

;	3470	!

;	3471	!	NONE

;	3472	!

;	3473	! ROUTINE VALUE:

;	3474	! COMPLETION CODES:

;	3475	!

;	3476	!	NONE

;	3477	!

;	3478	! SIDE EFFECTS:

;	3479	!

;	3480	!	NONE

;	3481	!

;	3482	!--

;	3483	

;	3484	BEGIN

;	3485	REGISTER

;	3486	    MSGPTR;

;	3487	LOCAL

;	3488	    LENGTH;

;	3489	!+

;	3490	!GET POINTER TO AREA

;	3491	

;	3492	    MSGPTR=.ADDRESS;

;	3493	    CH$WCHAR_A((LENGTH=OUT_QUEUE()),MSGPTR);

;	3494	INCR INX FROM 1 TO .LENGTH DO

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

;	3496	RETURN .MSGPTR

;	3497	END;











					 001C 00CC4 	    .ENTRY  MOVEQ_COUNTED, Save R2,R3,R4			      ; 3451

		         52	  04   AC  D0 00CC6 	    MOVL    ADDRESS, MSGPTR					      ; 3492

		  0000G  CF	       00  FB 00CCA 	    CALLS   #0, OUT_QUEUE					      ; 3493



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 42-1

; Digital Equipment Corporation

;

		         54	       50  D0 00CCF 	    MOVL    R0, LENGTH						      ;

		         82	       54  90 00CD2 	    MOVB    LENGTH, (MSGPTR)+					      ;

				       53  D4 00CD5 	    CLRL    INX							      ; 3494

				       08  11 00CD7 	    BRB     2$							      ;

		  0000G  CF	       00  FB 00CD9 1$:     CALLS   #0, OUT_QUEUE					      ; 3495

		         82	       50  90 00CDE 	    MOVB    R0, (MSGPTR)+					      ;

	   F4	         53	       54  F3 00CE1 2$:     AOBLEQ  LENGTH, INX, 1$					      ; 3494

		         50	       52  D0 00CE5 	    MOVL    MSGPTR, R0						      ; 3496

					   04 00CE8 	    RET     							      ; 3451



; Routine Size:  37 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 43

; Digital Equipment Corporation

;

;	3498	ROUTINE GET_NICE(COUNT)=

;	3499	

;	3500	!++

;	3501	! FUNCTIONAL DESCRIPTION:

;	3502	!

;	3503	!	GET_NICE READS A MESSAGE FROM THE CONNECTED

;	3504	!	NICE OBJECT

;	3505	!

;	3506	! FORMAL PARAMETERS:

;	3507	!

;	3508	!	NONE

;	3509	!

;	3510	! IMPLICIT INPUTS:

;	3511	!

;	3512	!	NONE

;	3513	!

;	3514	! IMPLICIT OUTPUTS:

;	3515	!

;	3516	!	NONE

;	3517	!

;	3518	! ROUTINE VALUE:

;	3519	! COMPLETION CODES:

;	3520	!

;	3521	!	NONE

;	3522	!

;	3523	! SIDE EFFECTS:

;	3524	!

;	3525	!	NONE

;	3526	!

;	3527	!--

;	3528	

;	3529	BEGIN

;	3530	LOCAL

;	3531	    STATUS;

;	3532	    !+

;	3533	    !READ BACK THE RESPONSE

;	3534	

;	3535	        IF NOT (STATUS=

;	3536	    	    $QIOW(CHAN=.CHANNEL,

;     P 3537			FUNC=IO$_READVBLK,

;     P 3538			P2=.COUNT,

;     P 3539			P1=NICEDATA,

;     P 3540			IOSB=INSTATUSBLK))

;	3541		THEN

;	3542		    BEGIN

;	3543		    FAOOUT(ERRMSG_IOERR);

;	3544		    SYS_SERV_ERR(.STATUS);

;	3545		    RETURN FALSE

;	3546		    END;

;	3547	    !+

;	3548	    !CHECK IO STATUS

;	3549	

;	3550	        IF  .INPUT_IOSTATUS NEQ SS$_NORMAL

;	3551		THEN

;	3552		    BEGIN



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 43-1

; Digital Equipment Corporation

;

;	3553		    FAOOUT(ERRMSG_IOERR);

;	3554		    SYS_SERV_ERR(.INPUT_IOSTATUS);

;	3555		    RETURN FALSE

;	3556		    END;

;	3557	        RETURN TRUE

;	3558	END;











					 0804 00CE9 GET_NICE:

							    .WORD   Save R2,R11						      ; 3498

		         5B	0000'  CF  9E 00CEB 	    MOVAB   INSTATUSBLK, R11					      ;

				       7E  7C 00CF0 	    CLRQ    -(SP)						      ; 3540

				       7E  7C 00CF2 	    CLRQ    -(SP)						      ;

				  04   AC  DD 00CF4 	    PUSHL   COUNT						      ;

				FEFC   CB  9F 00CF7 	    PUSHAB  NICEDATA						      ;

				       7E  7C 00CFB 	    CLRQ    -(SP)						      ;

				       5B  DD 00CFD 	    PUSHL   R11							      ;

				       31  DD 00CFF 	    PUSHL   #49							      ;

		         7E	  FC   AB  3C 00D01 	    MOVZWL  CHANNEL, -(SP)					      ;

				       7E  D4 00D05 	    CLRL    -(SP)						      ;

	      00000000G  9F	       0C  FB 00D07 	    CALLS   #12, @#SYS$QIOW					      ;

		         52	       50  D0 00D0E 	    MOVL    R0, STATUS						      ;

		         0D	       52  E8 00D11 	    BLBS    STATUS, 1$						      ; 3535

				0000'  CF  9F 00D14 	    PUSHAB  ERRMSG_IOERR					      ; 3498

		  0000G  CF	       01  FB 00D18 	    CALLS   #1, FAOOUT						      ; 3543

				       52  DD 00D1D 	    PUSHL   STATUS						      ; 3544

				       11  11 00D1F 	    BRB     2$							      ;

		         01	       6B  B1 00D21 1$:     CMPW    INSTATUSBLK, #1					      ; 3550

				       13  13 00D24 	    BEQL    3$							      ;

				0000'  CF  9F 00D26 	    PUSHAB  ERRMSG_IOERR					      ; 3498

		  0000G  CF	       01  FB 00D2A 	    CALLS   #1, FAOOUT						      ; 3553

		         7E	       6B  3C 00D2F 	    MOVZWL  INSTATUSBLK, -(SP)					      ; 3554

		  FDD8   CF	       01  FB 00D32 2$:     CALLS   #1, SYS_SERV_ERR					      ;

				       04  11 00D37 	    BRB     4$							      ; 3555

		         50	       01  D0 00D39 3$:     MOVL    #1, R0						      ; 3557

					   04 00D3C 	    RET     							      ;

				       50  D4 00D3D 4$:     CLRL    R0							      ; 3498

					   04 00D3F 	    RET     							      ;



; Routine Size:  87 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 44

; Digital Equipment Corporation

;

;	3559	ROUTINE SEND_NICE(COUNT)=

;	3560	

;	3561	!++

;	3562	! FUNCTIONAL DESCRIPTION:

;	3563	!

;	3564	!	SEND_NICE SENDS A MESSAGE FROM THE CONNECTED

;	3565	!	NICE OBJECT

;	3566	!

;	3567	! FORMAL PARAMETERS:

;	3568	!

;	3569	!	NONE

;	3570	!

;	3571	! IMPLICIT INPUTS:

;	3572	!

;	3573	!	NONE

;	3574	!

;	3575	! IMPLICIT OUTPUTS:

;	3576	!

;	3577	!	NONE

;	3578	!

;	3579	! ROUTINE VALUE:

;	3580	! COMPLETION CODES:

;	3581	!

;	3582	!	NONE

;	3583	!

;	3584	! SIDE EFFECTS:

;	3585	!

;	3586	!	NONE

;	3587	!

;	3588	!--

;	3589	

;	3590	BEGIN

;	3591	LOCAL

;	3592	    STATUS;

;	3593	    !+

;	3594	    !SEND THE MESSAGE

;	3595	

;	3596	        SELECTONE (STATUS=

;	3597		    $QIOW(CHAN=.CHANNEL,

;     P 3598			FUNC=IO$_WRITEVBLK,

;     P 3599			P2=.COUNT,

;     P 3600			P1=NICEMESSAGE,

;     P 3601			IOSB=OUTSTATUSBLK)) OF

;	3602		SET

;	3603		    [SS$_NORMAL]:

;	3604			;

;	3605		    [SS$_ABORT]:

;	3606			BEGIN

;	3607			DEATTACH_NICE();

;	3608			IF 

;	3609			    NOT(STATUS=$ASSIGN(CHAN=CHANNEL,DEVNAM=DEST_DESC))

;	3610			THEN

;	3611			    BEGIN

;	3612			    FAOOUT(ERRMSG_NOACP);

;	3613			    SYS_SERV_ERR(.STATUS);



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 44-1

; Digital Equipment Corporation

;

;	3614			    RETURN .STATUS

;	3615			    END

;	3616			ELSE

;	3617			    RETURN SEND_NICE(.COUNT)

;	3618			END;

;	3619		    [OTHERWISE]:

;	3620			BEGIN

;	3621			FAOOUT(ERRMSG_IOERR);

;	3622			SYS_SERV_ERR(.OUTPUT_IOSTATUS);

;	3623			RETURN FALSE

;	3624			END;

;	3625		    TES;

;	3626	    !+

;	3627	    !CHECK IO STATUS

;	3628	

;	3629		SELECTONE .OUTPUT_IOSTATUS OF

;	3630		    SET

;	3631		    [SS$_NORMAL]:

;	3632			RETURN TRUE;

;	3633		    [SS$_ABORT]:

;	3634			BEGIN

;	3635			DEATTACH_NICE();

;	3636			IF 

;	3637			    NOT(STATUS=$ASSIGN(CHAN=CHANNEL,DEVNAM=DEST_DESC))

;	3638			THEN

;	3639			    BEGIN

;	3640			    FAOOUT(ERRMSG_NOACP);

;	3641			    SYS_SERV_ERR(.STATUS);

;	3642			    RETURN .STATUS

;	3643			    END

;	3644			ELSE

;	3645			    RETURN SEND_NICE(.COUNT)

;	3646			END;

;	3647		    [OTHERWISE]:

;	3648			BEGIN

;	3649			FAOOUT(ERRMSG_IOERR);

;	3650			SYS_SERV_ERR(.OUTPUT_IOSTATUS);

;	3651			RETURN FALSE

;	3652			END;

;	3653		    TES

;	3654	END;











					 081C 00D40 SEND_NICE:

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

		         5B	0000'  CF  9E 00D42 	    MOVAB   OUTSTATUSBLK, R11					      ;

				       7E  7C 00D47 	    CLRQ    -(SP)						      ; 3601

				       7E  7C 00D49 	    CLRQ    -(SP)						      ;

				  04   AC  DD 00D4B 	    PUSHL   COUNT						      ;

				FED4   CB  9F 00D4E 	    PUSHAB  NICEMESSAGE						      ;

				       7E  7C 00D52 	    CLRQ    -(SP)						      ;

				       5B  DD 00D54 	    PUSHL   R11							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 44-2

; Digital Equipment Corporation

;

				       30  DD 00D56 	    PUSHL   #48							      ;

		         7E	  F4   AB  3C 00D58 	    MOVZWL  CHANNEL, -(SP)					      ;

				       7E  D4 00D5C 	    CLRL    -(SP)						      ;

	      00000000G  9F	       0C  FB 00D5E 	    CALLS   #12, @#SYS$QIOW					      ;

		         52	       50  D0 00D65 	    MOVL    R0, STATUS						      ;

		         01	       52  D1 00D68 	    CMPL    STATUS, #1						      ; 3596

				       05  13 00D6B 	    BEQL    1$							      ;

		         2C	       52  D1 00D6D 	    CMPL    STATUS, #44						      ;

				       12  11 00D70 	    BRB     3$							      ;

		         54	       6B  3C 00D72 1$:     MOVZWL  OUTSTATUSBLK, R4					      ; 3629

		         53	       01  CE 00D75 	    MNEGL   #1, R3						      ;

		         01	       54  B1 00D78 	    CMPW    R4, #1						      ;

				       04  12 00D7B 	    BNEQ    2$							      ;

		         50	       01  D0 00D7D 	    MOVL    #1, R0						      ; 3632

					   04 00D80 	    RET     							      ;

		         2C	       54  B1 00D81 2$:     CMPW    R4, #44						      ; 3629

				       37  12 00D84 3$:     BNEQ    5$							      ;

		  FF09   CF	       00  FB 00D86 	    CALLS   #0, DEATTACH_NICE					      ; 3635

				       7E  7C 00D8B 	    CLRQ    -(SP)						      ; 3637

				  F4   AB  9F 00D8D 	    PUSHAB  CHANNEL						      ;

				0000'  CF  9F 00D90 	    PUSHAB  DEST_DESC						      ;

	      00000000G  9F	       04  FB 00D94 	    CALLS   #4, @#SYS$ASSIGN					      ;

		         52	       50  D0 00D9B 	    MOVL    R0, STATUS						      ;

		         14	       52  E8 00D9E 	    BLBS    STATUS, 4$						      ;

				0000'  CF  9F 00DA1 	    PUSHAB  ERRMSG_NOACP					      ; 3559

		  0000G  CF	       01  FB 00DA5 	    CALLS   #1, FAOOUT						      ; 3640

				       52  DD 00DAA 	    PUSHL   STATUS						      ; 3641

		  FD5E   CF	       01  FB 00DAC 	    CALLS   #1, SYS_SERV_ERR					      ;

		         50	       52  D0 00DB1 	    MOVL    STATUS, R0						      ; 3642

					   04 00DB4 	    RET     							      ;

				  04   AC  DD 00DB5 4$:     PUSHL   COUNT						      ; 3645

		    84   AF	       01  FB 00DB8 	    CALLS   #1, SEND_NICE					      ;

					   04 00DBC 	    RET     							      ;

				0000'  CF  9F 00DBD 5$:     PUSHAB  ERRMSG_IOERR					      ; 3559

		  0000G  CF	       01  FB 00DC1 	    CALLS   #1, FAOOUT						      ; 3649

		         7E	       6B  3C 00DC6 	    MOVZWL  OUTSTATUSBLK, -(SP)					      ; 3650

		  FD41   CF	       01  FB 00DC9 	    CALLS   #1, SYS_SERV_ERR					      ;

				       50  D4 00DCE 	    CLRL    R0							      ; 3651

					   04 00DD0 	    RET     							      ; 3559



; Routine Size:  145 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 45

; Digital Equipment Corporation

;

;	3655	ROUTINE BUILD_PREFIX(MESSAGE,NICE_CODE,OPTION)=

;	3656	

;	3657	!++

;	3658	! FUNCTIONAL DESCRIPTION:

;	3659	!

;	3660	!	BUILD_PREFIX IS A ROUTINE USED BY THE VARIOUS NICE

;	3661	!	MESSAGE BUILDING ROUTINES.MANY NICE MESSAGES HAVE THE 

;	3662	!	SAME FORMAT FOR THE FIRST PART OF THE MESSAGE, THAT IS

;	3663	!	NICE FUNCTION CODE,NICE OPTION CODE, AND AN ENTITY 

;	3664	!	SPECIFIER.

;	3665	!	THE ENTITY CAN BE THE LOCAL NODE, A REMOTE NODE, OR

;	3666	!	A LINE.

;	3667	!	THIS ROUTINE BUILD THIS COMMON MESSAGE PREFIX USING

;	3668	!	THE SUPPLIED CHARACTER POINTER AS A MESSAGE DESTINATION

;	3669	!	BUFFER.

;	3670	!

;	3671	! FORMAL PARAMETERS:

;	3672	!

;	3673	!	MESSAGE:ADDRESS OF BUFFER TO PLACE MESSAGE PREFIX

;	3674	!	NICE_CODE:ONE BYTE NICE FUNCTION CODE

;	3675	!	OPTION:	ONE BYTE NICE OPTION CODE

;	3676	!

;	3677	! IMPLICIT INPUTS:

;	3678	!

;	3679	!	QUEUE:THE VARIABLE PARAMTER QUEUE,HOLDS NODE NAMES,LINEIDS

;	3680	!

;	3681	! IMPLICIT OUTPUTS:

;	3682	!

;	3683	!	NONE

;	3684	!

;	3685	! ROUTINE VALUE:

;	3686	! COMPLETION CODES:

;	3687	!

;	3688	!	UPDATED CHARACTER IS RETURNED

;	3689	!

;	3690	! SIDE EFFECTS:

;	3691	!

;	3692	!	NONE

;	3693	!

;	3694	!--

;	3695	

;	3696	BEGIN

;	3697	

;	3698	MAP FLAGS:BLOCK[1];

;	3699	

;	3700	LOCAL

;	3701	   LEN;

;	3702	REGISTER

;	3703	    MSGPTR;

;	3704	

;	3705	!+

;	3706	!INITIAL MESSAGE POINTER

;	3707	    

;	3708	    MSGPTR=CH$PTR(.MESSAGE);

;	3709	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 45-1

; Digital Equipment Corporation

;

;	3710	!+

;	3711	!INCLUDE NICE FUNCTION CODE

;	3712	

;	3713	    CH$WCHAR_A(.NICE_CODE,MSGPTR);

;	3714	

;	3715	!+

;	3716	!INCLUDE THE NICE OPTION BYTE

;	3717	

;	3718	    CH$WCHAR_A(.OPTION,MSGPTR);

;	3719	

;	3720	!+

;	3721	!IF 'KNOWN' TYPE INCLUDE  ALL 'LINES' OR 'NODES' SPECIFIER

;	3722	

;	3723	    IF

;	3724		.FLAGS[DEF$V_KNOWN]

;	3725	    THEN

;	3726		CH$WCHAR_A(0,MSGPTR)

;	3727	    ELSE

;	3728	

;	3729		!+

;	3730		!INCLUDE EITHER LINE-ID,NODENAME OR NOTHING

;	3731	

;	3732		BEGIN

;	3733		IF

;	3734		    .FLAGS[DEF$V_NODE]

;	3735		THEN

;	3736		    MSGPTR=MOVEQ_COUNTED(.MSGPTR);

;	3737	        IF

;	3738		    .FLAGS[DEF$V_LINE]

;	3739		THEN

;	3740		    MSGPTR=MOVE_LINEID(.MSGPTR);

;	3741		END;

;	3742	!+

;	3743	!LEAVE ROUTINE

;	3744	    RETURN .MSGPTR

;	3745	

;	3746	END;











					 0804 00DD1 BUILD_PREFIX:

							    .WORD   Save R2,R11						      ; 3655

		         5B	0000G  CF  9E 00DD3 	    MOVAB   FLAGS, R11						      ;

		         52	  04   AC  D0 00DD8 	    MOVL    MESSAGE, MSGPTR					      ; 3708

		         82	  08   AC  90 00DDC 	    MOVB    NICE_CODE, (MSGPTR)+				      ; 3713

		         82	  0C   AC  90 00DE0 	    MOVB    OPTION, (MSGPTR)+					      ; 3718

	   04	         6B	       04  E1 00DE4 	    BBC     #4, FLAGS, 1$					      ; 3724

				       82  94 00DE8 	    CLRB    (MSGPTR)+						      ; 3726

				       1B  11 00DEA 	    BRB     3$							      ; 3723

		         0A	       6B  E9 00DEC 1$:     BLBC    FLAGS, 2$						      ; 3734

				       52  DD 00DEF 	    PUSHL   MSGPTR						      ; 3736

		  FECE   CF	       01  FB 00DF1 	    CALLS   #1, MOVEQ_COUNTED					      ;

		         52	       50  D0 00DF6 	    MOVL    R0, MSGPTR						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 45-2

; Digital Equipment Corporation

;

	   0A	         6B	       01  E1 00DF9 2$:     BBC     #1, FLAGS, 3$					      ; 3738

				       52  DD 00DFD 	    PUSHL   MSGPTR						      ; 3740

		  FD52   CF	       01  FB 00DFF 	    CALLS   #1, MOVE_LINEID					      ;

		         52	       50  D0 00E04 	    MOVL    R0, MSGPTR						      ;

		         50	       52  D0 00E07 3$:     MOVL    MSGPTR, R0						      ; 3744

					   04 00E0A 	    RET     							      ; 3655



; Routine Size:  58 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 46

; Digital Equipment Corporation

;

;	3747	GLOBAL ROUTINE EXTEND_BINARY(POINTER,VALUE)=

;	3748	

;	3749	!++

;	3750	! FUNCTIONAL DESCRIPTION:

;	3751	!

;	3752	!	EXTEND_BINARY COMPACTS AN EXTENSIBLE BINARY FIELD INTO A

;	3753	!	SINGLE LONGWORD

;	3754	!

;	3755	! FORMAL PARAMETERS:

;	3756	!

;	3757	!	POINTER:THE ADDRESS OF THE START OF THE FIELD

;	3758	!	VALUE:THE ADDRESS IN WHICH TO STORE THE RESULTANT

;	3759	!

;	3760	! IMPLICIT INPUTS:

;	3761	!

;	3762	!	NONE

;	3763	!

;	3764	! IMPLICIT OUTPUTS:

;	3765	!

;	3766	!	NONE

;	3767	!

;	3768	! ROUTINE VALUE:

;	3769	! COMPLETION CODES:

;	3770	!

;	3771	!	AN UPDATED CHARACTER IS RETURNED,THAT IS THE FIRST 

;	3772	!	POSITION BEYOND THE EXTENSIBLE FIELD

;	3773	!

;	3774	! SIDE EFFECTS:

;	3775	!

;	3776	!	NONE

;	3777	!

;	3778	!--

;	3779	

;	3780	BEGIN

;	3781	

;	3782	BIND

;	3783	    NUMBER=.VALUE;

;	3784	

;	3785	LOCAL

;	3786	    TEMP:BYTE;

;	3787	

;	3788	REGISTER

;	3789	    MSGPTR;

;	3790	

;	3791	!+_

;	3792	!GET POINTER TO EXTENSIBLE FIELD

;	3793	    

;	3794	    MSGPTR=.POINTER;

;	3795	

;	3796	!+

;	3797	!INITIALIZE NUMBER

;	3798	

;	3799	    NUMBER=0;

;	3800	

;	3801	!+



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 46-1

; Digital Equipment Corporation

;

;	3802	!LOOP UNTIL HIGH ORDER BIT OF CHAR CLEARED

;	3803	

;	3804	    INCR DEX FROM 0 TO 21 BY 7 DO

;	3805		BEGIN

;	3806		TEMP=NUMBER<.DEX,7>=CH$RCHAR_A(MSGPTR);

;	3807		IF

;	3808		    NOT .TEMP<7,1>

;	3809		THEN

;	3810		    RETURN .MSGPTR

;	3811		END;

;	3812	    RETURN .MSGPTR

;	3813	    END;











					 003C 00E0B 	    .ENTRY  EXTEND_BINARY, Save R2,R3,R4,R5			      ; 3747

		         54	  08   AC  D0 00E0D 	    MOVL    VALUE, R4						      ; 3780

		         50	  04   AC  D0 00E11 	    MOVL    POINTER, MSGPTR					      ; 3794

				       64  D4 00E15 	    CLRL    (R4)						      ; 3799

				       52  D4 00E17 	    CLRL    DEX							      ; 3804

		         53	       80  9A 00E19 1$:     MOVZBL  (MSGPTR)+, R3					      ; 3806

		         51	       53  D0 00E1C 	    MOVL    R3, R1						      ;

	   07	         52	       51  F0 00E1F 	    INSV    R1, DEX, #7, (R4)					      ;

				       64     00E23									      ;

		         55	       51  90 00E24 	    MOVB    R1, TEMP						      ;

	   06	         55	       07  E1 00E27 	    BBC     #7, TEMP, 2$					      ; 3808

	   52	         07	       15  F1 00E2B 	    ACBL    #21, #7, DEX, 1$					      ; 3804

				     FFE8     00E2F									      ;

					   04 00E31 2$:     RET     							      ; 3747



; Routine Size:  39 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 47

; Digital Equipment Corporation

;

;	3814	GLOBAL ROUTINE BINARY_EXTEND(VALUE)=

;	3815	

;	3816	!++

;	3817	! FUNCTIONAL DESCRIPTION:

;	3818	!

;	3819	!

;	3820	! FORMAL PARAMETERS:

;	3821	!

;	3822	!	NONE

;	3823	!

;	3824	! IMPLICIT INPUTS:

;	3825	!

;	3826	!	NONE

;	3827	!

;	3828	! IMPLICIT OUTPUTS:

;	3829	!

;	3830	!	NONE

;	3831	!

;	3832	! ROUTINE VALUE:

;	3833	! COMPLETION CODES:

;	3834	!

;	3835	!	NONE

;	3836	!

;	3837	! SIDE EFFECTS:

;	3838	!

;	3839	!	NONE

;	3840	!

;	3841	!--

;	3842	

;	3843	BEGIN

;	3844	LOCAL

;	3845	    EXTENDED;

;	3846	

;	3847	!+

;	3848	!BUILD THE EXTENSIBLE  NODE ADDRESS

;	3849	

;	3850	    EXTENDED=%X'80';

;	3851	    EXTENDED<0,7>=.VALUE<0,7>;

;	3852	    EXTENDED<8,7>=.VALUE<7,7>;

;	3853	    RETURN .EXTENDED

;	3854	END;











					 0000 00E32 	    .ENTRY  BINARY_EXTEND, Save nothing				      ; 3814

		         50	  80   8F  9A 00E34 	    MOVZBL  #128, EXTENDED					      ; 3850

	   07	         00	  04   AC  F0 00E38 	    INSV    VALUE, #0, #7, EXTENDED				      ; 3851

				       50     00E3D									      ;

      04   AC	         07	       07  EF 00E3E 	    EXTZV   #7, #7, VALUE, R1					      ; 3852

				       51     00E43									      ;

	   07	         08	       51  F0 00E44 	    INSV    R1, #8, #7, EXTENDED				      ;

				       50     00E48									      ;

					   04 00E49 	    RET     							      ; 3814



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 47-1

; Digital Equipment Corporation

;



; Routine Size:  24 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 48

; Digital Equipment Corporation

;

;	3855	ROUTINE CONVERT_STATE(NUMBER,POINTER)=

;	3856	

;	3857	!++

;	3858	! FUNCTIONAL DESCRIPTION:

;	3859	!

;	3860	!	CONVERT_STATE ACCEPTS THE NUMERIC CODE FOR A 

;	3861	!	NODE OR LINE STATE AND RETURN A POINTER TO AN ASCII

;	3862	!	STRING THAT REPRESENTS THAT STATE .

;	3863	!

;	3864	! FORMAL PARAMETERS:

;	3865	!

;	3866	!	NUMBER:THE NUMERIC CODE FOR THE STATE

;	3867	!	POINTER:ADDRESS IN WHICH TO PLACE ADDRESS OF ASCII STRING

;	3868	!

;	3869	! IMPLICIT INPUTS:

;	3870	!

;	3871	!	NONE

;	3872	!

;	3873	! IMPLICIT OUTPUTS:

;	3874	!

;	3875	!	NONE

;	3876	!

;	3877	! ROUTINE VALUE:

;	3878	! COMPLETION CODES:

;	3879	!

;	3880	!	TRUE : IF STATE CODE IS DEFINED BY NICE PROTOCOL

;	3881	

;	3882	!

;	3883	! SIDE EFFECTS:

;	3884	!

;	3885	!	NONE

;	3886	!

;	3887	!--

;	3888	

;	3889	BEGIN

;	3890	BIND

;	3891	    !+

;	3892	    !CODES FOR KNOWN  LINE AND NODE STATES

;	3893	

;	3894		STATE=.POINTER,

;	3895		ON=0,

;	3896		OFF=1,

;	3897		SHUT=2,

;	3898		LOOPBACK=3,

;	3899		MAINTENANCE=4,

;	3900		DEVICE_LOOPBACK=5,

;	3901	        OFF_STRING=CSTRING('OFF'),

;	3902	        ON_STRING=CSTRING('ON'),

;	3903	        SHUT_STRING=CSTRING('SHUT'),

;	3904	        LOOP_STRING=CSTRING('LOOPBACK'),

;	3905	        MAIN_STRING=CSTRING('MAINTENANCE'),

;	3906		CTRLLOOP_STRING=CSTRING('DEVICE_LOOPBACK');

;	3907	    !+

;	3908	    !

;	3909	



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 48-1

; Digital Equipment Corporation

;

;	3910	    CASE .NUMBER FROM 0 TO 5 OF

;	3911	        SET

;	3912		[OFF]:STATE=OFF_STRING;

;	3913		[ON]:STATE=ON_STRING;

;	3914		[SHUT]:STATE=SHUT_STRING;

;	3915		[LOOPBACK]:STATE=LOOP_STRING;

;	3916		[MAINTENANCE]:STATE=MAIN_STRING;

;	3917		[DEVICE_LOOPBACK]:STATE=CTRLLOOP_STRING;

;	3918		[OUTRANGE]:

;	3919		    BEGIN

;	3920		    FAOOUT(ERRMSG_INVSTA);

;	3921		    RETURN FALSE

;	3922		    END;

;	3923		TES;

;	3924	    RETURN TRUE

;	3925	END;







							    .PSECT  $PLIT$,NOWRT,NOEXE,2



					      00D84 P.AEN:  .BYTE   3							      ;

					      00D85 	    .ASCII  \OFF\						      ;

					      00D88 P.AEO:  .BYTE   2							      ;

					      00D89 	    .ASCII  \ON\						      ;

					      00D8B	    .BLKB   1

					      00D8C P.AEP:  .BYTE   4							      ;

					      00D8D 	    .ASCII  \SHUT\						      ;

					      00D91	    .BLKB   3

					      00D94 P.AEQ:  .BYTE   8							      ;

					      00D95 	    .ASCII  \LOOPBACK\						      ;

					      00D9D	    .BLKB   3

					      00DA0 P.AER:  .BYTE   11							      ;

					      00DA1 	    .ASCII  \MAINTENANCE\					      ;

					      00DAC P.AES:  .BYTE   15							      ;

					      00DAD 	    .ASCII  \DEVICE_LOOPBACK\					      ;



						    ON=			0

						    OFF=		1

						    SHUT=		2

						    LOOPBACK=		3

						    MAINTENANCE=	4

						    DEVICE_LOOPBACK=	5

						    OFF_STRING=		P.AEN

						    ON_STRING=		P.AEO

						    SHUT_STRING=	P.AEP

						    LOOP_STRING=	P.AEQ

						    MAIN_STRING=	P.AER

						    CTRLLOOP_STRING=	P.AES





							    .PSECT  $CODE$,NOWRT,2



					 0004 00E4A CONVERT_STATE:

							    .WORD   Save R2						      ; 3855



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 48-2

; Digital Equipment Corporation

;

		         52	  08   AC  D0 00E4C 	    MOVL    POINTER, R2						      ; 3889

	   05	         00	  04   AC  CF 00E50 	    CASEL   NUMBER, #0, #5					      ; 3910

	 0025	       0017	     001E     00E55 1$:     .WORD   3$-1$,-						      ;

	 003A	       0033	     002C     00E5B		    2$-1$,-						      ;

								    4$-1$,-						      ;

								    5$-1$,-						      ;

								    6$-1$,-						      ;

								    7$-1$						      ;

				0000'  CF  9F 00E61 	    PUSHAB  ERRMSG_INVSTA					      ; 3855

		  0000G  CF	       01  FB 00E65 	    CALLS   #1, FAOOUT						      ; 3920

				       2C  11 00E6A 	    BRB     9$							      ; 3921

		         62	0000'  CF  9E 00E6C 2$:     MOVAB   OFF_STRING, (R2)					      ; 3855

				       21  11 00E71 	    BRB     8$							      ; 3910

		         62	0000'  CF  9E 00E73 3$:     MOVAB   ON_STRING, (R2)					      ; 3855

				       1A  11 00E78 	    BRB     8$							      ; 3910

		         62	0000'  CF  9E 00E7A 4$:     MOVAB   SHUT_STRING, (R2)					      ; 3855

				       13  11 00E7F 	    BRB     8$							      ; 3910

		         62	0000'  CF  9E 00E81 5$:     MOVAB   LOOP_STRING, (R2)					      ; 3855

				       0C  11 00E86 	    BRB     8$							      ; 3910

		         62	0000'  CF  9E 00E88 6$:     MOVAB   MAIN_STRING, (R2)					      ; 3855

				       05  11 00E8D 	    BRB     8$							      ; 3910

		         62	0000'  CF  9E 00E8F 7$:     MOVAB   CTRLLOOP_STRING, (R2)				      ; 3855

		         50	       01  D0 00E94 8$:     MOVL    #1, R0						      ; 3924

					   04 00E97 	    RET     							      ;

				       50  D4 00E98 9$:     CLRL    R0							      ; 3855

					   04 00E9A 	    RET     							      ;



; Routine Size:  81 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 49

; Digital Equipment Corporation

;

;	3926	ROUTINE MATCH_LINECODE(LINECODE,MNEUMONIC)=

;	3927	

;	3928	!++

;	3929	! FUNCTIONAL DESCRIPTION:

;	3930	!

;	3931	!	ROUTINE ACCEPTS A LINE DEVICE CODE AND EXAMINES HTE

;	3932	!	LINE_CONFIG TABLE FOR A MATCHING CODE. IF THE CODE IS

;	3933	!	FOUND THE ADDRESS OF THE DEVICE MNEUMONIC IS RETURNED

;	3934	!

;	3935	! FORMAL PARAMETERS:

;	3936	!

;	3937	!	LINECODE:NICE PROTOCOL DEVICE CODE

;	3938	!	MNEUMONIC:ADDRESS IN WHICH TO PLACE ADDRESS OF

;	3939	!		COUNTED ASCII DEVICE MNEUMONIC

;	3940	!

;	3941	! IMPLICIT INPUTS:

;	3942	!

;	3943	!	NONE

;	3944	!

;	3945	! IMPLICIT OUTPUTS:

;	3946	!

;	3947	!	NONE

;	3948	!

;	3949	! ROUTINE VALUE:

;	3950	! COMPLETION CODES:

;	3951	!

;	3952	!	TRUE:IF THE DEVICE CODE IS A LEGAL VALUE

;	3953	!

;	3954	! SIDE EFFECTS:

;	3955	!

;	3956	!	NONE

;	3957	!

;	3958	!--

;	3959	

;	3960	BEGIN

;	3961	BIND

;	3962	    CODE=.MNEUMONIC;

;	3963	

;	3964	!+

;	3965	!LOOP THROUGH LINE_CONFIG LOOKING FOR MATCHING DEVICE CODE

;	3966	

;	3967	    INCR DEX FROM 0 TO LINETYPES-1 DO

;	3968		IF

;	3969		    .LINE_CONFIG[.DEX,DEVICE_CODE] EQL

;	3970		    .LINECODE

;	3971		THEN

;	3972		    BEGIN

;	3973	 	    CODE=LINE_CONFIG[.DEX,DEVICE_NAMESIZE];

;	3974		    RETURN TRUE

;	3975		    END;

;	3976	

;	3977	!+

;	3978	!CODE NOT FOUND ,NOTIFY USER

;	3979	

;	3980	    FAOOUT(ERRMSG_INVCOD);



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 49-1

; Digital Equipment Corporation

;

;	3981	    RETURN FALSE

;	3982	END;











					 0004 00E9B MATCH_LINECODE:

							    .WORD   Save R2						      ; 3926

		         52	  08   AC  D0 00E9D 	    MOVL    MNEUMONIC, R2					      ; 3960

				       51  D4 00EA1 	    CLRL    DEX							      ; 3967

	   50	         51	       07  C5 00EA3 1$:     MULL3   #7, DEX, R0						      ; 3969

    0000'CF40	         08	       00  ED 00EA7 	    CMPZV   #0, #8, LINE_CONFIG[R0], LINECODE			      ;

				  04   AC     00EAE									      ;

				       0A  12 00EB0 	    BNEQ    2$							      ;

		         62	0000'CF40  9E 00EB2 	    MOVAB   LINE_CONFIG+1[R0], (R2)				      ; 3973

		         50	       01  D0 00EB8 	    MOVL    #1, R0						      ; 3974

					   04 00EBB 	    RET     							      ;

	   E3	         51	       0E  F3 00EBC 2$:     AOBLEQ  #14, DEX, 1$					      ; 3967

				0000'  CF  9F 00EC0 	    PUSHAB  ERRMSG_INVCOD					      ; 3926

		  0000G  CF	       01  FB 00EC4 	    CALLS   #1, FAOOUT						      ; 3980

				       50  D4 00EC9 	    CLRL    R0							      ; 3981

					   04 00ECB 	    RET     							      ; 3926



; Routine Size:  49 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 50

; Digital Equipment Corporation

;

;	3983	ROUTINE PARSE(MESSAGE_OPTION,CONTROL_STRING)=

;	3984	

;	3985	!++

;	3986	! FUNCTIONAL DESCRIPTION:

;	3987	!

;	3988	!

;	3989	! FORMAL PARAMETERS:

;	3990	!

;	3991	!	MESSAGE_ADDRESS:ADDRESS OF MESSAGE TO BE PARSED

;	3992	!	MESSAGE_LENGTH:SIZE OF MESSAGE TO BE PARSED

;	3993	!	CONTROL_STRING:ADDRESS OF COUNTED CONTROL STRING

;	3994	!			DESCRIBING TO PARSE MESSAGE

;	3995	!

;	3996	! IMPLICIT INPUTS:

;	3997	!

;	3998	!	NONE

;	3999	!

;	4000	! IMPLICIT OUTPUTS:

;	4001	!

;	4002	!	NONE

;	4003	!

;	4004	! ROUTINE VALUE:

;	4005	! COMPLETION CODES:

;	4006	!

;	4007	!	NONE

;	4008	!

;	4009	! SIDE EFFECTS:

;	4010	!

;	4011	!	NONE

;	4012	!

;	4013	!--

;	4014	

;	4015	BEGIN

;	4016	MACRO

;	4017	    !+

;	4018	    !COMMON EXPRESSIONS USED INSIDE THIS ROUTINE

;	4019		MESSAGE_LEFT=CH$DIFF(.LAST_POSITION,.MSGPTR)%,

;	4020		CHECK_MESSAGE=IF MESSAGE_LEFT EQL 0

;     M 4021				THEN ERROR_PARSE%,

;	4022		ERROR_PARSE=BEGIN

;     M 4023				FAOOUT(ERRMSG_INVDBK);

;     M 4024				RETURN FALSE

;     M 4025				END%;

;	4026	LOCAL

;	4027	   !+

;	4028	   !ASSORTED POINTERS

;	4029		MSGPTR,		!CHARACTER POINTER INTO MESSAGE

;	4030		LAST_POSITION,  !UPPER BOUND POINTER OF MESSAGE

;	4031		FIELD_LENGTH,	!HOLDS SIZE OF COUNTED STRING

;	4032		EXTENSIBLE_BYTE,!TEMPORARY HOLDS BYTES OF EXTENSIBLE FIELD

;	4033		TYPE,		!DUMMY USED FOR CALL TO MATCH_LINECODE

;	4034		REPEAT_FLAG,	!INDICATES WHETHER WERE IN REPEAT DIRECTIVE SEQUENCE

;	4035		REPEAT_POINTER,	!START OF REPEATING DIRECTIVES

;	4036		CONTROL_POINTER,!CHARACTER POINTER FOR CONTROL STRING

;	4037		END_CONTROL;	!UPPER BOUND OF CONTROL STRING



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 50-1

; Digital Equipment Corporation

;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 51

; Digital Equipment Corporation

;

;	4038	!+

;	4039	!INITIALIZE POINTERS AND SUCH

;	4040	

;	4041	    MSGPTR=CH$PTR(NICEDATA);

;	4042	    LAST_POSITION=.MSGPTR+.INPUT_IOCOUNT;

;	4043	    REPEAT_FLAG=FALSE;

;	4044	    CONTROL_POINTER=.CONTROL_STRING+1;

;	4045	    END_CONTROL=.CONTROL_POINTER+CH$RCHAR(.CONTROL_STRING);

;	4046	!+

;	4047	!CHECK THE MESSAGE OPTION

;	4048	

;	4049	    IF

;	4050		CH$RCHAR_A(MSGPTR) NEQ .MESSAGE_OPTION

;	4051	    THEN

;	4052		ERROR_PARSE;

;	4053	

;	4054	!+

;	4055	!MAKE SURE THERE IS SOME DATA LEFT TO PARSE

;	4056	

;	4057	    CHECK_MESSAGE();

;	4058	!+

;	4059	!MAIN PROCESSING LOOP

;	4060	!LOOP UNTIL BOTH DATA AND CONTROL STRINGS ARE EXHAUSETED

;	4061	!OR UNTIL AN ERROR OCCURS

;	4062	

;	4063	WHILE TRUE DO

;	4064	

;	4065	    BEGIN

;	4066	    !+

;	4067	    !CHECK FOR END CONDITION,BOTH DATA AND CONTROL EXHAUSTED

;	4068	

;	4069	    IF 

;	4070		((.CONTROL_POINTER EQL .END_CONTROL) OR

;	4071		(CH$RCHAR(.CONTROL_POINTER) EQL REPEAT_CODE)) AND

;	4072		(.MSGPTR EQL .LAST_POSITION)

;	4073	    THEN

;	4074		RETURN TRUE;

;	4075	

;	4076	    !+

;	4077	    !CHECK FOR TRUNCATED DATA

;	4078	    IF

;	4079		.MSGPTR EQL .LAST_POSITION

;	4080	    THEN

;	4081		ERROR_PARSE;

;	4082	

;	4083	    !+

;	4084	    !SEE IF WE ARE INDEFINETLY REPEATING DIRECTIVES

;	4085	

;	4086	    IF 

;	4087	  	.REPEAT_FLAG

;	4088	    THEN

;	4089		BEGIN

;	4090		IF .CONTROL_POINTER EQL .END_CONTROL

;	4091		THEN

;	4092		    CONTROL_POINTER=.REPEAT_POINTER



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 51-1

; Digital Equipment Corporation

;

;	4093		END

;	4094	    ELSE

;	4095		IF .CONTROL_POINTER EQL .END_CONTROL

;	4096		THEN

;	4097		    ERROR_PARSE;

;	4098	

;	4099	    !+

;	4100	    !EXECUTE THE NEXT DIRECTIVE

;	4101	

;	4102	    CASE CH$RCHAR_A(CONTROL_POINTER) FROM

;	4103		COUNTED_STRING TO QUAD_LONG OF



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 52

; Digital Equipment Corporation

;

;	4104	    SET

;	4105	

;	4106	    !+

;	4107	    !COUNTED STRING ENCOUNTERED

;	4108	

;	4109	    [COUNTED_STRING]:

;	4110		BEGIN

;	4111		FIELD_LENGTH=CH$RCHAR_A(MSGPTR);	!LENGTH OF STRING

;	4112		IF

;	4113		    .FIELD_LENGTH NEQU 0

;	4114		THEN

;	4115		    CHECK_MESSAGE();

;	4116		IF

;	4117		    MESSAGE_LEFT GEQ .FIELD_LENGTH

;	4118		THEN

;	4119		    MSGPTR=CH$PLUS(.MSGPTR,.FIELD_LENGTH)

;	4120		ELSE

;	4121		    ERROR_PARSE

;	4122		END;

;	4123	

;	4124	    !+

;	4125	    !EXTENSIBLE FIELD ENCOUNTERED

;	4126	

;	4127	    [EXTENSIBLE]:

;	4128		WHILE TRUE DO

;	4129		    BEGIN

;	4130		    CHECK_MESSAGE();

;	4131		    EXTENSIBLE_BYTE=CH$RCHAR_A(MSGPTR);

;	4132		    IF

;	4133			NOT .EXTENSIBLE_BYTE<7,1>

;	4134		    THEN

;	4135			EXITLOOP

;	4136		    END;

;	4137	

;	4138	    !+

;	4139	    !SINGLE BYTE FIELD

;	4140	

;	4141	    [BYTE_LONG]:

;	4142		CH$RCHAR_A(MSGPTR);

;	4143	

;	4144	    !+

;	4145	    !WORDLONG FIELD ENCOUNTERED

;	4146	

;	4147	    [WORD_LONG]:

;	4148		IF

;	4149		    MESSAGE_LEFT LSS 2

;	4150		THEN

;	4151		    ERROR_PARSE()

;	4152		ELSE

;	4153		    MSGPTR=.MSGPTR+2;

;	4154	!+

;	4155	!LONGWORD FIELD ENCOUNTERED

;	4156	

;	4157	[LONGWORD]:

;	4158	    IF



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 52-1

; Digital Equipment Corporation

;

;	4159		MESSAGE_LEFT LSS 4

;	4160	    THEN

;	4161		ERROR_PARSE

;	4162	    ELSE

;	4163		MSGPTR=CH$PLUS(4,.MSGPTR);

;	4164	

;	4165	!+

;	4166	!QUADWORD FIELD ENCOUNTERED

;	4167	

;	4168	[QUAD_LONG]:

;	4169	    IF

;	4170		MESSAGE_LEFT GEQ 8

;	4171	    THEN

;	4172		MSGPTR=CH$PLUS(8,.MSGPTR)

;	4173	    ELSE

;	4174		ERROR_PARSE();

;	4175	    !+

;	4176	    !LINE-ID EXPECTED IN TEXT

;	4177	

;	4178	    [LINE_ID]:

;	4179		CASE CH$RCHAR_A(MSGPTR) FROM STANDARD_LINEID TO TEXT_LINEID OF

;	4180		    SET

;	4181		    [STANDARD_LINEID]:		!STANDARD LINE_ID

;	4182			BEGIN

;	4183			IF

;	4184			    MESSAGE_LEFT LSS 4

;	4185			THEN

;	4186			    ERROR_PARSE;

;	4187			IF

;	4188			    NOT MATCH_LINECODE(CH$RCHAR_A(MSGPTR),TYPE)

;	4189			THEN

;	4190			    ERROR_PARSE;

;	4191			MSGPTR=CH$PLUS(3,.MSGPTR)

;	4192			END;

;	4193		    [TEXT_LINEID]:		!TEXT LINEID

;	4194			BEGIN

;	4195			CHECK_MESSAGE();

;	4196			FIELD_LENGTH=CH$RCHAR_A(MSGPTR);

;	4197			IF

;	4198			    MESSAGE_LEFT GEQ .FIELD_LENGTH

;	4199			THEN

;	4200			    MSGPTR=CH$PLUS(.MSGPTR,.FIELD_LENGTH)

;	4201			ELSE

;	4202			    ERROR_PARSE()

;	4203		        END;

;	4204		    [OUTRANGE]:

;	4205			ERROR_PARSE();

;	4206		TES;

;	4207	    [REPEAT_CODE]:

;	4208		BEGIN

;	4209		REPEAT_FLAG=TRUE;

;	4210		REPEAT_POINTER=.CONTROL_POINTER

;	4211		END;

;	4212	    TES;

;	4213	END



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 52-2

; Digital Equipment Corporation

;

;	4214	END;











					 07FC 00ECC PARSE:  .WORD   Save R2,R3,R4,R5,R6,R7,R8,R9,R10			      ; 3983

		         5E	       04  C2 00ECE 	    SUBL2   #4, SP						      ;

		         52	0000'  CF  9E 00ED1 	    MOVAB   NICEDATA, MSGPTR					      ; 4041

		         53	0000'  CF  3C 00ED6 	    MOVZWL  INSTATUSBLK+2, LAST_POSITION			      ; 4042

		         53	       52  C0 00EDB 	    ADDL2   MSGPTR, LAST_POSITION				      ;

				       57  D4 00EDE 	    CLRL    REPEAT_FLAG						      ; 4043

	   54	    08   AC	       01  C1 00EE0 	    ADDL3   #1, CONTROL_STRING, CONTROL_POINTER			      ; 4044

		         59	  08   BC  9A 00EE5 	    MOVZBL  @CONTROL_STRING, END_CONTROL			      ; 4045

		         59	       54  C0 00EE9 	    ADDL2   CONTROL_POINTER, END_CONTROL			      ;

		         50	       82  9A 00EEC 	    MOVZBL  (MSGPTR)+, R0					      ; 4050

		    04   AC	       50  D1 00EEF 	    CMPL    R0, MESSAGE_OPTION					      ;

				       54  12 00EF3 	    BNEQ    9$							      ;

	   50	         53	       52  C3 00EF5 	    SUBL3   MSGPTR, LAST_POSITION, R0				      ; 4052

				       54  13 00EF9 	    BEQL    11$							      ;

				       56  D4 00EFB 1$:     CLRL    R6							      ; 4070

		         59	       54  D1 00EFD 	    CMPL    CONTROL_POINTER, END_CONTROL			      ;

				       04  12 00F00 	    BNEQ    2$							      ;

				       56  D6 00F02 	    INCL    R6							      ;

				       05  11 00F04 	    BRB     3$							      ;

		         06	       64  91 00F06 2$:     CMPB    (CONTROL_POINTER), #6				      ; 4071

				       09  12 00F09 	    BNEQ    4$							      ;

		         53	       52  D1 00F0B 3$:     CMPL    MSGPTR, LAST_POSITION				      ; 4072

				       04  12 00F0E 	    BNEQ    4$							      ;

		         50	       01  D0 00F10 	    MOVL    #1, R0						      ; 4074

					   04 00F13 	    RET     							      ;

		         53	       52  D1 00F14 4$:     CMPL    MSGPTR, LAST_POSITION				      ; 4079

				       7A  13 00F17 	    BEQL    20$							      ;

		         08	       57  E9 00F19 	    BLBC    REPEAT_FLAG, 5$					      ; 4087

		         08	       56  E9 00F1C 	    BLBC    R6, 6$						      ; 4090

		         54	       58  D0 00F1F 	    MOVL    REPEAT_POINTER, CONTROL_POINTER			      ; 4092

				       03  11 00F22 	    BRB     6$							      ; 4086

		         6C	       56  E8 00F24 5$:     BLBS    R6, 20$						      ; 4095

		         50	       84  9A 00F27 6$:     MOVZBL  (CONTROL_POINTER)+, R0				      ; 4102

	   07	         01	       50  CF 00F2A 	    CASEL   R0, #1, #7						      ;

	 002C	       001D	     0010     00F2E 7$:     .WORD   8$-7$,-						      ;

	 00A7	       005A	     0030     00F34		    10$-7$,-						      ;

		       004C	     003E     00F3A		    12$-7$,-						      ;

								    14$-7$,-						      ;

								    18$-7$,-						      ;

								    25$-7$,-						      ;

								    16$-7$,-						      ;

								    17$-7$						      ;

		         55	       82  9A 00F3E 8$:     MOVZBL  (MSGPTR)+, FIELD_LENGTH				      ; 4111

				       78  13 00F41 	    BEQL    23$							      ; 4113

	   50	         53	       52  C3 00F43 	    SUBL3   MSGPTR, LAST_POSITION, R0				      ; 4114

				       72  12 00F47 	    BNEQ    23$							      ;

				       7E  11 00F49 9$:     BRB     24$							      ; 3983

	   50	         53	       52  C3 00F4B 10$:    SUBL3   MSGPTR, LAST_POSITION, R0				      ; 4129

				       78  13 00F4F 11$:    BEQL    24$							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 52-3

; Digital Equipment Corporation

;

		         5A	       82  9A 00F51 	    MOVZBL  (MSGPTR)+, EXTENSIBLE_BYTE				      ; 4131

	   A3	         5A	       07  E1 00F54 	    BBC     #7, EXTENSIBLE_BYTE, 1$				      ; 4133

				       F1  11 00F58 	    BRB     10$							      ;

				       52  D6 00F5A 12$:    INCL    MSGPTR						      ; 4142

				       9D  11 00F5C 13$:    BRB     1$							      ; 4102

	   50	         53	       52  C3 00F5E 14$:    SUBL3   MSGPTR, LAST_POSITION, R0				      ; 4148

		         02	       50  D1 00F62 	    CMPL    R0, #2						      ; 4149

				       62  19 00F65 	    BLSS    24$							      ;

		         52	       02  C0 00F67 	    ADDL2   #2, MSGPTR						      ; 4153

				       8F  11 00F6A 15$:    BRB     1$							      ; 4102

	   50	         53	       52  C3 00F6C 16$:    SUBL3   MSGPTR, LAST_POSITION, R0				      ; 4158

		         04	       50  D1 00F70 	    CMPL    R0, #4						      ; 4159

				       54  19 00F73 	    BLSS    24$							      ;

		         52	       04  C0 00F75 	    ADDL2   #4, MSGPTR						      ; 4163

				       81  11 00F78 	    BRB     1$							      ; 4102

	   50	         53	       52  C3 00F7A 17$:    SUBL3   MSGPTR, LAST_POSITION, R0				      ; 4169

		         08	       50  D1 00F7E 	    CMPL    R0, #8						      ; 4170

				       46  19 00F81 	    BLSS    24$							      ;

		         52	       08  C0 00F83 	    ADDL2   #8, MSGPTR						      ; 4172

				       53  11 00F86 	    BRB     26$							      ; 4169

		         50	       82  9A 00F88 18$:    MOVZBL  (MSGPTR)+, R0					      ; 4179

	   01	         01	       50  CF 00F8B 	    CASEL   R0, #1, #1						      ;

		       0023	     0006     00F8F 19$:    .WORD   21$-19$,-						      ;

								    22$-19$						      ;

				       34  11 00F93 20$:    BRB     24$							      ; 3983

	   50	         53	       52  C3 00F95 21$:    SUBL3   MSGPTR, LAST_POSITION, R0				      ; 4183

		         04	       50  D1 00F99 	    CMPL    R0, #4						      ; 4184

				       2B  19 00F9C 	    BLSS    24$							      ;

				       5E  DD 00F9E 	    PUSHL   SP							      ; 4188

		         50	       82  9A 00FA0 	    MOVZBL  (MSGPTR)+, R0					      ;

				       50  DD 00FA3 	    PUSHL   R0							      ;

		  FEF1   CF	       02  FB 00FA5 	    CALLS   #2, MATCH_LINECODE					      ;

		         1C	       50  E9 00FAA 	    BLBC    R0, 24$						      ;

		         52	       03  C0 00FAD 	    ADDL2   #3, MSGPTR						      ; 4191

				       29  11 00FB0 	    BRB     26$							      ; 4179

	   50	         53	       52  C3 00FB2 22$:    SUBL3   MSGPTR, LAST_POSITION, R0				      ; 4194

				       11  13 00FB6 	    BEQL    24$							      ;

		         55	       82  9A 00FB8 	    MOVZBL  (MSGPTR)+, FIELD_LENGTH				      ; 4196

	   50	         53	       52  C3 00FBB 23$:    SUBL3   MSGPTR, LAST_POSITION, R0				      ; 4197

		         55	       50  D1 00FBF 	    CMPL    R0, FIELD_LENGTH					      ; 4198

				       05  19 00FC2 	    BLSS    24$							      ;

		         52	       55  C0 00FC4 	    ADDL2   FIELD_LENGTH, MSGPTR				      ; 4200

				       93  11 00FC7 	    BRB     13$							      ; 4197

				0000'  CF  9F 00FC9 24$:    PUSHAB  ERRMSG_INVDBK					      ; 3983

		  0000G  CF	       01  FB 00FCD 	    CALLS   #1, FAOOUT						      ; 4201

				       50  D4 00FD2 	    CLRL    R0							      ;

					   04 00FD4 	    RET     							      ;

		         57	       01  D0 00FD5 25$:    MOVL    #1, REPEAT_FLAG					      ; 4209

		         58	       54  D0 00FD8 	    MOVL    CONTROL_POINTER, REPEAT_POINTER			      ; 4210

				       8D  11 00FDB 26$:    BRB     15$							      ; 4063



; Routine Size:  273 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 01:57:56	DBB3:[NCP.SRC]NCPNIC.B32;26					Page 53

; Digital Equipment Corporation

;

;	4215	END

;	4216	ELUDOM













;				       PSECT SUMMARY

;

;	Name		 Bytes			       Attributes

;

;  $PLIT$         	  3516  NOWRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $OWN$          	   880    WRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $GLOBAL$       	   129    WRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $CODE$         	  4061  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        12         0       119











; Size:		4061 code + 4525 data bytes

; Run Time:	02:24.3

; Elapsed Time:	04:13.8

; Memory Used:	322 pages

; Compilation Complete

