

; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 1

; Digital Equipment Corporation

;

;	0001	MODULE NCP_ACTION (MAIN=PARSE_VERB,	

;	0002			IDENT = '01 '

;	0003			) =

;	0004	BEGIN

;	0005	

;	0006	!

;	0007	! COPYRIGHT (C) 1977

;	0008	! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

;	0009	!

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

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

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

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

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

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

;	0016	! REMAIN IN DEC.

;	0017	!

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

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

;	0020	! CORPORATION.

;	0021	!

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

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

;	0024	

;	0025	!++

;	0026	! FACILITY:

;	0027	!

;	0028	!	NETWORK CONTROL PROGRAM

;	0029	! ABSTRACT:

;	0030	!

;	0031	!	ACTION ROUTINES CALLED DURING PARSE OF NCP COMMANDS

;	0032	!	BY LIB$TPARSE. ALSO THE MAIN ROUTINE OF THE NCP UTILITY

;	0033	! ENVIRONMENT:

;	0034	!

;	0035	! AUTHOR:TOM DOPIRAK	, CREATION DATE:

;	0036	!

;	0037	! MODIFIED BY:

;	0038	!

;	0039	! 	, : VERSION

;	0040	! 01	- 

;	0041	!--



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 2

; Digital Equipment Corporation

;

;	0042	!

;	0043	! TABLE OF CONTENTS:

;	0044	!

;	0045	

;	0046	FORWARD ROUTINE

;	0047	    GET_USER_PRIV,

;	0048	    INIT_COMMAND:NOVALUE,

;	0049	    READ_LINE,

;	0050	    OUTMESSAGE:NOVALUE;

;	0051		;		!

;	0052	

;	0053	!

;	0054	! INCLUDE FILES:

;	0055	!

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

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

;	0291	

;	0292	!

;	0293	! MACROS:

;	0294	!

;	0295	

;	0296	MACRO

;	0297	!

;	0298	!NAMES OF ENTRIES WITHIN TPARSE PARSE TABLE

;	0299	!TABLE GENERALLY ACCESSED BY ACTION ROUTINE DURING PARSE

;	0300	!

;	0301		STATE_LENGTH	= PARSE_STATE[0]%, ! length of user supplied state vector

;	0302		STATE_OPTIONS	= PARSE_STATE[1]%, ! user supplied options longword

;	0303		STRING_COUNT	= PARSE_STATE[2]%, ! byte count of string being parsed

;	0304		STRING_POINTER	= PARSE_STATE[3]%, ! address of string being parsed

;	0305		TOKEN_COUNT	= PARSE_STATE[4]%, ! byte count of current token

;	0306		TOKEN_POINTER	= PARSE_STATE[5]%, ! address of current token

;	0307		STATE_CHAR	= PARSE_STATE[6]%, ! current single character token

;	0308		STATE_NUMBER	= PARSE_STATE[7]%, ! numerical value of number token

;	0309		STATE_PARAM	=PARSE_STATE[8]%;    !PARAMETER FROM STATE MACRO

;	0310	!

;	0311	! EQUATED SYMBOLS:

;	0312	!

;	0313	BIND

;	0314	   

;	0315	    ERRMSG_NOPRIV=CSTRING('!/ YOU MUST HAVE DIAGNOSTIC AND OPERATOR PRIVILEGES TO RUN NCP !/'),

;	0316	    ERRMSG_BADPARS=CSTRING(' !/UNRECOGNIZED PARAMETER "!AD" !/'),

;	0317	    CRLF=CSTRING('!/'),

;	0318	    ERRMSG_TOOLONG=CSTRING('!/TEXT IMPROPER LENGTH',%CHAR(10),%CHAR(13)),

;	0319	    ERRMSG_RANGE=CSTRING('!/NUMBER NOT WITHIN REQUIRED RANGE',%CHAR(10),%CHAR(13)),

;	0320	    COMMAND_PROMPT=CSTRING('!/#!UL>');

;	0321	LITERAL

;	0322	!

;	0323	!ASSORTED EQUATES

;	0324	!

;	0325	    MIN_LINENUMBER=0,		!MINIMUM NUMERIC IN A LINE NUMBER

;	0326	    MAX_LINENUMBER=255,		!MAXIMUM NUMBERIC IN A LINE NUMBER		

;	0327	

;	0328	    !

;	0329	    !POSITIONS WITHIN LINE_TEMP VECTOR,



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 2-1

; Digital Equipment Corporation

;

;	0330	    !USED DURING PARSING OF NICE STANDARD LINEIDS

;	0331	    !

;	0332	    LINEID_CTRL=2,		!PLACE FOR CONTROLLER NUMBER

;	0333	    LINEID_NUM=3,		!PLACE FOR LINE NUMBER

;	0334	    LINEID_ADR=4,		!PLACE FOR LINE ADDRESS

;	0335	

;	0336	    INPUT_LENGTH=512,			!LENGTH OF BUFFER FOR TTY INPUT

;	0337	    QUELEN=200;				!LENGTH IN BYTES OF PARAMETER QUEUE

;	0338	

;	0339	!

;	0340	! OWN STORAGE:

;	0341	!

;	0342	OWN

;	0343	    PUTTER,				!PARAMETER QUEUE PUTTER

;	0344	    TAKER,				!PARAMETER QUEUE TAKER

;	0345	    QUEUE:VECTOR[QUELEN],		!PARAMETER QUEUE

;	0346	    INPUT_BUFFER:VECTOR[INPUT_LENGTH,BYTE],!SPACE FOR TTY INPUT

;	0347	    INPUT_DESC:VECTOR[2]

;	0348	        INITIAL(0,INPUT_BUFFER),

;	0349	    !

;	0350	    !QUADWORD PRIVILEGE MASK---USED DURING PARSE FO OBJECT ACCESS

;	0351	    !PRIVILEGED

;	0352	

;	0353	    PRIVILEGE_MASK:VECTOR[2],

;	0354	

;	0355	    !+

;	0356	    !TEMPORARIES FOR PARSE OF LINEID'S

;	0357	

;	0358		LINE_TEMP:VECTOR[5,BYTE],	!HOLDS STANDARD LINEID

;	0359		LINE_NAME:VECTOR[LID$S_NAME+2,BYTE];	!HOLDS TEXT LINEID



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 3

; Digital Equipment Corporation

;

;	0360	GLOBAL

;	0361	    PARSE_STATE:VECTOR[9] INITIAL(8,%x'03000000',0,INPUT_BUFFER),

;	0362	!

;	0363	!FABS AND RABS NEEDED BY RMS IO

;	0364	!

;	0365		    INFAB:$FAB(

;     P 0366			FAC=(GET,PUT),

;     P 0367		        FNA=UPLIT('SYS$INPUT'),

;     P 0368			FNS=%CHARCOUNT('SYS$INPUT')

;     P 0369			),

;	0370		    INRAB:$RAB(

;     P 0371			RAC=SEQ,

;     P 0372			ROP=CVT,

;     P 0373			UBF=INPUT_BUFFER,

;     P 0374			USZ=INPUT_LENGTH,

;     P 0375			FAB=INFAB

;     P 0376			),

;	0377		    OUTFAB:$FAB(

;     P 0378			FAC=PUT,

;     P 0379			FNA=UPLIT BYTE('SYS$OUTPUT'),

;     P 0380			FNS=%CHARCOUNT('SYS$OUTPUT')

;     P 0381			),

;	0382		   OUTRAB:$RAB(

;     P 0383			RAC=SEQ,

;     P 0384			FAB=OUTFAB

;     P 0385			)

;	0386			;

;	0387	

;	0388	!

;	0389	! EXTERNAL REFERENCES:

;	0390	!

;	0391	

;	0392	EXTERNAL

;	0393	    START_STATE,

;	0394	    KEYWORD_TABLE,

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

;	0396	    VERB_INDEX,

;	0397	    FLAGS,

;	0398	    COMMAND_COUNT;

;	0399	EXTERNAL ROUTINE

;	0400	    LIB$TPARSE,

;	0401	    DISCONNECT:NOVALUE,

;	0402	    LOAD,

;	0403	    SHOW_STATUS,

;	0404	    SHOW_COUNTS,

;	0405	    ALLNODELIST,

;	0406	    ALLOBJECTLIST,

;	0407	    ALLLINELIST,

;	0408	    ZERO,

;	0409	    LINKS,

;	0410	    SETSTATE,

;	0411	    SETSTATE_ON,

;	0412	    SETSTATE_OFF,

;	0413	    LOOP,

;	0414	    RECORDPURGE,



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 3-1

; Digital Equipment Corporation

;

;	0415	    ALLPURGE,

;	0416	    OBJECTLIST,

;	0417	    LINELIST,

;	0418	    NODELIST,

;	0419	    LOCALLIST,

;	0420	    LOCALDEFINE,

;	0421	    LINEDEFINE,

;	0422	    NODEDEFINE,

;	0423	    OBJECTDEFINE,

;	0424	    EXIT,

;	0425	    PRV$SETPRIV,

;	0426	    FAOOUT;

;	0427		;		!



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 4

; Digital Equipment Corporation

;

;	0428	ROUTINE PARSE_VERB  =	

;	0429	

;	0430	!++

;	0431	! FUNCTIONAL DESCRIPTION:

;	0432	!

;	0433	!    THIS IS THE MAIN ROUTINE FOR THE NCP PROGRAM.

;	0434	!    PARSE_VERB VIA A 'WHILE TRUE' LOOP PARSES AND DISPATCHES

;	0435	!    FOR EXECUTION ALL NCP COMMANDS UNTIL 'EXIT' IS ENCOUNTERED.

;	0436	!    

;	0437	!    THE ACTUAL PARSING IS DONE BY A LIBRARY ROUTINE LIB$TPARSE,

;	0438	!    WHICH PERFORMS FINITE STATE TABLE DRIVEN PARSING.

;	0439	!    THE FAILURE RETURN FROM LIB$TPARSE INDICATES THE OCCURRENCE

;	0440	!    OF AN IMPROPER PARAMETER IN THE INPUT STREAM,

;	0441	!    THE SUCCESS RETURN INDICATES THAT VERB_INDEX,FLAGS,AND QUEUE

;	0442	!    HAVE BEEN VALUED TO INDICATE THE COMMAND ENCOUNTERED.

;	0443	!

;	0444	!    UPON SUCCESSFUL RETURN FORM LIB$TPARSE, PARSE_VERB DISPATCHES

;	0445	!    TO EXTERNAL ROUTINES FOR COMMAND EXECUTION

;	0446	!

;	0447	!

;	0448	! FORMAL PARAMETERS:

;	0449	!

;	0450	!	NONE

;	0451	!

;	0452	! IMPLICIT INPUTS:

;	0453	!

;	0454	!	START_STATE: A SET OF LINKED STATE TABLES  WHICH DIRECT

;	0455	!		     LIB$TPARSE THROUGH THE PARSING OF NCP

;	0456	!		     COMMANDS.

;	0457	!

;	0458	!	PARSE_STATE:A TABLE DESCRIBING THE CURRENT  STATE OF A

;	0459	!		    PARSE. VISIBLE TO PARSE ACTION ROUTINES.

;	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	

;	0478	    !

;	0479	    !ESTABLISH RECORD STREAMS TO SYS$INPUT AND SYS$OUTPUT

;	0480	    !  FOR USE DURING TERMINAL I/O.

;	0481	    !

;	0482	    $OPEN(FAB=INFAB);



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 4-1

; Digital Equipment Corporation

;

;	0483	    $OPEN(FAB=OUTFAB);

;	0484	    $CONNECT(RAB=INRAB);

;	0485	    $CONNECT(RAB=OUTRAB);

;	0486	    !+

;	0487	    !MAKE SURE USER HAS PRIVILEGES

;	0488	

;	0489	        IF

;	0490		    NOT GET_USER_PRIV()

;	0491		THEN

;	0492		    BEGIN

;	0493		    FAOOUT(ERRMSG_NOPRIV);

;	0494		    $CLOSE(FAB=INFAB);

;	0495		    $CLOSE(FAB=OUTFAB);

;	0496		    $EXIT(CODE=SS$_NOPRIV)

;	0497		    END;

;	0498	        !

;	0499		!PARSE ALL INPUT FROM SYS$INPUT UNTIL 'EXIT' IS ENCOUNTERED

;	0500		!

;	0501		WHILE TRUE DO

;	0502		    BEGIN

;	0503		    !

;	0504		    !INITIALIZE  STORAGE USED DURING PARSE

;	0505		    !

;	0506		    INIT_COMMAND();

;	0507		    !INCREMEMT COUNT OF COMMANDS EXECUTED

;	0508		    COMMAND_COUNT=.COMMAND_COUNT+1;

;	0509		    IF NOT LIB$TPARSE(PARSE_STATE,START_STATE,KEYWORD_TABLE)

;	0510		    THEN

;	0511			!

;	0512			!LIB$TPARES COULDN'T PARSE COMMAND

;	0513			!

;	0514			BEGIN

;	0515			!+

;	0516			!FIND END OF BAD TOKEN

;	0517			!    .STRING_POINTER,.STRING_COUNT INDICATE REMAINDER

;	0518	

;	0519			IF

;	0520			    CH$FAIL(TOKEN_POINTER=CH$FIND_CH(

;	0521				.STRING_COUNT,.STRING_POINTER,' '))

;	0522			THEN

;	0523			    TOKEN_COUNT=.STRING_COUNT

;	0524			ELSE

;	0525			    TOKEN_COUNT=.TOKEN_POINTER-.STRING_POINTER;

;	0526		 	FAOOUT(ERRMSG_BADPARS,.TOKEN_COUNT,.STRING_POINTER)

;	0527			END

;	0528		    ELSE

;	0529	

;	0530	   		!

;	0531			!SUCCESSFUL PARSE OF COMMAND

;	0532			!VERB SPECIFIED BY VERB_INDEX

;	0533			!

;	0534	

;	0535			CASE .VERB_INDEX  FROM $DEFINE TO $EXITT OF

;	0536			    SET



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 5

; Digital Equipment Corporation

;

;	0537	!+

;	0538	!

;	0539	!FLAVORS OF DEFINE SPECIFIED BY KEYWORDS

;	0540	!    'NODE','LOCAL','OBJECT',AND 'LINE'.

;	0541	!EACH HAS ITS OWN EXECUTION ROUTINE

;	0542	!

;	0543	!+

;	0544			    [$DEFINE]:

;	0545				SELECTONEU .FLAGS OF

;	0546			    	SET

;	0547			    	[DEF$M_LOCAL]:

;	0548					LOCALDEFINE();

;	0549			    	[DEF$M_OBJECT]:

;	0550					OBJECTDEFINE();

;	0551			    	[DEF$M_LINE]:

;	0552					LINEDEFINE();

;	0553			    	[DEF$M_NODE]:

;	0554					NODEDEFINE();

;	0555			    	TES;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 6

; Digital Equipment Corporation

;

;	0556	!+

;	0557	!

;	0558	!A SEPERATE ROUTINE EXISTS FOR EACH OF THE DIFFERENT KINDS OF LIST

;	0559	!    THE TYPE IS INDICATED BY THE KEYWORDS 'NODE','LOCAL','LINE'

;	0560	!    AND 'OBJECT'

;	0561	!

;	0562	!+

;	0563		    [$LIST]:

;	0564			SELECTONEU .FLAGS OF

;	0565			    SET

;	0566			    [DEF$M_NODE]:

;	0567				NODELIST();

;	0568			    [DEF$M_LOCAL]:

;	0569				LOCALLIST();

;	0570			    [DEF$M_OBJECT]:

;	0571				OBJECTLIST();

;	0572			    [DEF$M_LINE]:

;	0573				LINELIST();

;	0574			    [OTHERWISE]:

;	0575				BEGIN

;	0576				FLAGS=.FLAGS AND NOT DEF$M_KNOWN;

;	0577				SELECTONEU .FLAGS OF

;	0578			    	    SET

;	0579			    	    [DEF$M_NODE]:

;	0580					ALLNODELIST();

;	0581			    	    [DEF$M_OBJECT]:

;	0582					ALLOBJECTLIST();

;	0583			    	    [DEF$M_LINE]:

;	0584					ALLLINELIST();

;	0585			            TES;

;	0586				END;

;	0587			    TES;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 7

; Digital Equipment Corporation

;

;	0588	!+

;	0589	!

;	0590	!THERE ARE 2 BASIC KINDS OF PURGE. ONE INDICATES THAT A

;	0591	!PARTICULAR RECORD IN A CONFIGURATION FILE BE DELETED.THE

;	0592	!OTHER INDICATES THAT A WHOLE IS CONFIGURATION FILE IS TO

;	0593	!BE DELETED.

;	0594	!

;	0595	!THE PARAMETER 'KNOWN' IN THE COMMAND DIRECTS PURGE TO DELETE

;	0596	!THE ENTIRE FILE INDICATED BY 'LINE','OBJECT','NODE' OR 'LOCAL'

;	0597	!THE ABSENCE OF 'KNOWN' INDICATE A SINGLE RECORD PURGE.

;	0598	!

;	0599	!SINCE THE LOCAL NODE CONFIGURATION FILE IS IMPLEMENTED AS A

;	0600	!SINGLE RECORD, 'PURGE LOCAL' IS IMPLEMENTED AS IF IT WERE 

;	0601	!'PURGE KNOWN LOCAL' THE ENTIRE FILE IS DELETED.

;	0602	!

;	0603	!+

;	0604			    [$PURGE]:

;	0605				BEGIN

;	0606				MAP FLAGS:BLOCK[1];

;	0607				IF

;	0608				    .FLAGS[DEF$V_KNOWN]

;	0609				THEN

;	0610				    BEGIN

;	0611				    FLAGS[DEF$V_KNOWN]=0;

;	0612				    ALLPURGE()

;	0613				    END

;	0614				ELSE

;	0615				    IF

;	0616					.FLAGS[DEF$V_LOCAL]

;	0617				    THEN

;	0618					ALLPURGE()

;	0619				    ELSE

;	0620					RECORDPURGE()

;	0621				END;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 8

; Digital Equipment Corporation

;

;	0622	!+

;	0623	!ALL THREE FORMS OF THE LOOP COMMAND 'LOOP LOCAL', 'LOOP NODE',

;	0624	!AND 'LOOP LINE' ARE HANDLED BY THE ROUTINE LOOP

;	0625	!+

;	0626	

;	0627		[$LOOP]:

;	0628		    LOOP();



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 9

; Digital Equipment Corporation

;

;	0629	!+

;	0630	!DISPATCH FOR ZERO COMMAND

;	0631	

;	0632	    [$ZERO]:

;	0633		ZERO();



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 10

; Digital Equipment Corporation

;

;	0634	!+

;	0635	!DISPATCH FOR 'SET' COMMAND

;	0636	!+

;	0637		[$SET]:

;	0638		    BEGIN

;	0639		    MAP FLAGS:BLOCK[1];

;	0640	    	    IF .FLAGS[DEF$V_LOCAL] AND .FLAGS[DEF$V_ON]

;	0641	    	    THEN

;	0642	     		SETSTATE_ON()

;	0643		    ELSE

;	0644			IF .FLAGS[DEF$V_LOCAL] AND .FLAGS[DEF$V_OFF]

;	0645			THEN

;	0646			    SETSTATE_OFF()

;	0647			ELSE

;	0648			    SETSTATE()

;	0649		    END;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 11

; Digital Equipment Corporation

;

;	0650	!+

;	0651	!DISPATCH FOR 'SHOW' COMMAND

;	0652	!+

;	0653	

;	0654	    [$SHOW]:

;	0655	    BEGIN

;	0656	    MAP FLAGS:BLOCK[1];

;	0657	    IF .FLAGS[DEF$V_LINKS] THEN LINKS();

;	0658	    IF .FLAGS[DEF$V_COUNTS] THEN SHOW_COUNTS();

;	0659	    IF .FLAGS[DEF$V_STATUS] THEN SHOW_STATUS();

;	0660	    END;



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

; Digital Equipment Corporation

;

;	0661	!+

;	0662	!DISPATCH FOR DISCONNECT

;	0663	

;	0664	    [$DCONNECT]:

;	0665		DISCONNECT();



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

; Digital Equipment Corporation

;

;	0666	!+

;	0667	!DISPATCH FOR LOAD

;	0668	

;	0669	    [$LOAD]:

;	0670		LOAD();



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 14

; Digital Equipment Corporation

;

;	0671	!+

;	0672	!

;	0673	!EXIT IS USED TO LEAVE THE NCP PROGRAM

;	0674	!

;	0675	!+

;	0676			    [$EXITT]:

;	0677				BEGIN

;	0678				EXIT();

;	0679				$CLOSE(FAB=INFAB);

;	0680				$CLOSE(FAB=OUTFAB);

;	0681				$EXIT()

;	0682				END;

;	0683			    [INRANGE]:

;	0684				;

;	0685			    TES;

;	0686		    END

;	0687	

;	0688	    END;			!End of 'WHILE TRUE' PARSE





							    .TITLE  NCP_ACTION

							    .IDENT  \01 \



							    .PSECT  $PLIT$,NOWRT,NOEXE,2



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

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

					      0002E	    .BLKB   2

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

					      00045	    .BLKB   3

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

					      0005B	    .BLKB   1

					      0005C P.AAE:  .LONG   24							      ;

					      00060 	    .ADDRESS  LND$_FILENAME					      ;

					      00064 P.AAF:  .LONG   22							      ;

					      00068 	    .ADDRESS  RND$_FILENAME					      ;

					      0006C P.AAG:  .LONG   21							      ;

					      00070 	    .ADDRESS  ODB$_FILENAME					      ;

					      00074 P.AAH:  .LONG   19							      ;

					      00078 	    .ADDRESS  LID$_FILENAME					      ;

					      0007C P.AAI:  .BYTE   65							      ;

					      0007D 	    .ASCII  \!/ YOU MUST HAVE DIAGNOSTIC AND OPERATOR PRIVILEGES TO\  ;

					      000B3 	    .ASCII  \ RUN NCP !/\					      ;

					      000BE	    .BLKB   2

					      000C0 P.AAJ:  .BYTE   34							      ;

					      000C1 	    .ASCII  \ !/UNRECOGNIZED PARAMETER "!AD" !/\		      ;

					      000E3	    .BLKB   1

					      000E4 P.AAK:  .BYTE   2							      ;

					      000E5 	    .ASCII  \!/\						      ;

					      000E7	    .BLKB   1

					      000E8 P.AAL:  .BYTE   24							      ;

					      000E9 	    .ASCII  \!/TEXT IMPROPER LENGTH\<10><13>			      ;

					      00101	    .BLKB   3

					      00104 P.AAM:  .BYTE   36							      ;

					      00105 	    .ASCII  \!/NUMBER NOT WITHIN REQUIRED RANGE\<10><13>	      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 14-1

; Digital Equipment Corporation

;

					      00129	    .BLKB   3

					      0012C P.AAN:  .BYTE   7							      ;

					      0012D 	    .ASCII  \!/#!UL>\						      ;

					      00134 P.AAO:  .ASCII  \SYS$INPUT\<0><0><0>				      ;

					      00140 P.AAP:  .ASCII  \SYS$OUTPUT\					      ;

					      0014A	    .BLKB   2



							    .PSECT  $OWN$,NOEXE,2



					      00000 PUTTER: .BLKB   4

					      00004 TAKER:  .BLKB   4

					      00008 QUEUE:  .BLKB   800

					      00328 INPUT_BUFFER:

							    .BLKB   512

					      00528 INPUT_DESC:

							    .LONG   0							      ;

					      0052C 	    .ADDRESS  INPUT_BUFFER					      ;

					      00530 PRIVILEGE_MASK:

							    .BLKB   8

					      00538 LINE_TEMP:

							    .BLKB   5

					      0053D	    .BLKB   3

					      00540 LINE_NAME:

							    .BLKB   18



							    .PSECT  $GLOBAL$,NOEXE,2



					      00000 PARSE_STATE::

							    .LONG   8, 50331648, 0					      ;

					      0000C 	    .ADDRESS  INPUT_BUFFER					      ;

					      00010	    .BLKB   20

					      00024 INFAB:: .BYTE   3							      ;

					      00025 	    .BYTE   80							      ;

					      00026 	    .WORD   0							      ;

					      00028 	    .LONG   0							      ;

					      0002C 	    .LONG   0							      ;

					      00030 	    .LONG   0							      ;

					      00034 	    .LONG   0							      ;

					      00038 	    .WORD   0							      ;

					      0003A 	    .BYTE   3							      ;

					      0003B 	    .BYTE   0							      ;

					      0003C 	    .LONG   0							      ;

					      00040 	    .BYTE   0							      ;

					      00041 	    .BYTE   0							      ;

					      00042 	    .BYTE   0							      ;

					      00043 	    .BYTE   2							      ;

					      00044 	    .LONG   0							      ;

					      00048 	    .LONG   0							      ;

					      0004C 	    .LONG   0							      ;

					      00050 	    .ADDRESS  P.AAO						      ;

					      00054 	    .LONG   0							      ;

					      00058 	    .BYTE   9							      ;

					      00059 	    .BYTE   0							      ;

					      0005A 	    .WORD   0							      ;

					      0005C 	    .LONG   0							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 14-2

; Digital Equipment Corporation

;

					      00060 	    .WORD   0							      ;

					      00062 	    .BYTE   0							      ;

					      00063 	    .BYTE   0							      ;

					      00064 	    .LONG   0							      ;

					      00068 	    .LONG   0							      ;

					      0006C 	    .LONG   0, 0						      ;

					      00074 INRAB:: .BYTE   1							      ;

					      00075 	    .BYTE   68							      ;

					      00076 	    .WORD   0							      ;

					      00078 	    .LONG   67108864						      ;

					      0007C 	    .LONG   0							      ;

					      00080 	    .LONG   0							      ;

					      00084 	    .WORD   0, 0, 0						      ;

					      0008A 	    .WORD   0							      ;

					      0008C 	    .LONG   0							      ;

					      00090 	    .WORD   0							      ;

					      00092 	    .BYTE   0							      ;

					      00093 	    .BYTE   0							      ;

					      00094 	    .WORD   512							      ;

					      00096 	    .WORD   0							      ;

					      00098 	    .ADDRESS  INPUT_BUFFER					      ;

					      0009C 	    .LONG   0							      ;

					      000A0 	    .LONG   0							      ;

					      000A4 	    .LONG   0							      ;

					      000A8 	    .BYTE   0							      ;

					      000A9 	    .BYTE   0							      ;

					      000AA 	    .BYTE   0							      ;

					      000AB 	    .BYTE   0							      ;

					      000AC 	    .LONG   0							      ;

					      000B0 	    .ADDRESS  INFAB						      ;

					      000B4 	    .LONG   0							      ;

					      000B8 OUTFAB::.BYTE   3							      ;

					      000B9 	    .BYTE   80							      ;

					      000BA 	    .WORD   0							      ;

					      000BC 	    .LONG   0							      ;

					      000C0 	    .LONG   0							      ;

					      000C4 	    .LONG   0							      ;

					      000C8 	    .LONG   0							      ;

					      000CC 	    .WORD   0							      ;

					      000CE 	    .BYTE   1							      ;

					      000CF 	    .BYTE   0							      ;

					      000D0 	    .LONG   0							      ;

					      000D4 	    .BYTE   0							      ;

					      000D5 	    .BYTE   0							      ;

					      000D6 	    .BYTE   0							      ;

					      000D7 	    .BYTE   2							      ;

					      000D8 	    .LONG   0							      ;

					      000DC 	    .LONG   0							      ;

					      000E0 	    .LONG   0							      ;

					      000E4 	    .ADDRESS  P.AAP						      ;

					      000E8 	    .LONG   0							      ;

					      000EC 	    .BYTE   10							      ;

					      000ED 	    .BYTE   0							      ;

					      000EE 	    .WORD   0							      ;

					      000F0 	    .LONG   0							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 14-3

; Digital Equipment Corporation

;

					      000F4 	    .WORD   0							      ;

					      000F6 	    .BYTE   0							      ;

					      000F7 	    .BYTE   0							      ;

					      000F8 	    .LONG   0							      ;

					      000FC 	    .LONG   0							      ;

					      00100 	    .LONG   0, 0						      ;

					      00108 OUTRAB::.BYTE   1							      ;

					      00109 	    .BYTE   68							      ;

					      0010A 	    .WORD   0							      ;

					      0010C 	    .LONG   0							      ;

					      00110 	    .LONG   0							      ;

					      00114 	    .LONG   0							      ;

					      00118 	    .WORD   0, 0, 0						      ;

					      0011E 	    .WORD   0							      ;

					      00120 	    .LONG   0							      ;

					      00124 	    .WORD   0							      ;

					      00126 	    .BYTE   0							      ;

					      00127 	    .BYTE   0							      ;

					      00128 	    .WORD   0							      ;

					      0012A 	    .WORD   0							      ;

					      0012C 	    .LONG   0							      ;

					      00130 	    .LONG   0							      ;

					      00134 	    .LONG   0							      ;

					      00138 	    .LONG   0							      ;

					      0013C 	    .BYTE   0							      ;

					      0013D 	    .BYTE   0							      ;

					      0013E 	    .BYTE   0							      ;

					      0013F 	    .BYTE   0							      ;

					      00140 	    .LONG   0							      ;

					      00144 	    .ADDRESS  OUTFAB						      ;

					      00148 	    .LONG   0							      ;



						    LND$_FILENAME=	P.AAA

						    LND$_NAMESIZE=	24

						    RND$_FILENAME=	P.AAB

						    RND$_NAMESIZE=	22

						    ODB$_FILENAME=	P.AAC

						    ODB$_NAMESIZE=	21

						    LID$_FILENAME=	P.AAD

						    LID$_NAMESIZE=	19

						    LND$_DESC=		P.AAE

						    RND$_DESC=		P.AAF

						    ODB$_DESC=		P.AAG

						    LID$_DESC=		P.AAH

						    LINETYPES=		15

						    LINE_BLOCKSIZE=	7

						    ERRMSG_NOPRIV=	P.AAI

						    ERRMSG_BADPARS=	P.AAJ

						    CRLF=		P.AAK

						    ERRMSG_TOOLONG=	P.AAL

						    ERRMSG_RANGE=	P.AAM

						    COMMAND_PROMPT=	P.AAN

							    .GLOBL  START_STATE, KEYWORD_TABLE, PRV$AB_NAMES, VERB_INDEX

							    .GLOBL  FLAGS, COMMAND_COUNT, LIB$TPARSE, DISCONNECT, LOAD

							    .GLOBL  SHOW_STATUS, SHOW_COUNTS, ALLNODELIST, ALLOBJECTLIST



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 14-4

; Digital Equipment Corporation

;

							    .GLOBL  ALLLINELIST, ZERO, LINKS, SETSTATE, SETSTATE_ON

							    .GLOBL  SETSTATE_OFF, LOOP, RECORDPURGE, ALLPURGE, OBJECTLIST

							    .GLOBL  LINELIST, NODELIST, LOCALLIST, LOCALDEFINE, LINEDEFINE

							    .GLOBL  NODEDEFINE, OBJECTDEFINE, EXIT, PRV$SETPRIV, FAOOUT

							    .GLOBL  SYS$OPEN, SYS$CONNECT, SYS$CLOSE, SYS$EXIT



							    .PSECT  $CODE$,NOWRT,2



					 0F84 00000 PARSE_VERB:

							    .WORD   Save R2,R7,R8,R9,R10,R11				      ; 0428

		         57 00000000G  9F  9E 00002 	    MOVAB   @#SYS$CONNECT, R7					      ;

		         58 00000000G  9F  9E 00009 	    MOVAB   @#SYS$OPEN, R8					      ;

		         59 00000000G  9F  9E 00010 	    MOVAB   @#SYS$CLOSE, R9					      ;

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

		         5B	0000'  CF  9E 0001C 	    MOVAB   INFAB, R11						      ;

				       5B  DD 00021 	    PUSHL   R11							      ; 0482

		         68	       01  FB 00023 	    CALLS   #1, SYS$OPEN					      ;

				0094   CB  9F 00026 	    PUSHAB  OUTFAB						      ; 0483

		         68	       01  FB 0002A 	    CALLS   #1, SYS$OPEN					      ;

				  50   AB  9F 0002D 	    PUSHAB  INRAB						      ; 0484

		         67	       01  FB 00030 	    CALLS   #1, SYS$CONNECT					      ;

				00E4   CB  9F 00033 	    PUSHAB  OUTRAB						      ; 0485

		         67	       01  FB 00037 	    CALLS   #1, SYS$CONNECT					      ;

		  0000V  CF	       00  FB 0003A 	    CALLS   #0, GET_USER_PRIV					      ; 0490

		         1E	       50  E8 0003F 	    BLBS    R0, 2$						      ;

				0000'  CF  9F 00042 	    PUSHAB  ERRMSG_NOPRIV					      ; 0428

		  0000G  CF	       01  FB 00046 	    CALLS   #1, FAOOUT						      ; 0493

				       5B  DD 0004B 	    PUSHL   R11							      ; 0494

		         69	       01  FB 0004D 	    CALLS   #1, SYS$CLOSE					      ;

				0094   CB  9F 00050 	    PUSHAB  OUTFAB						      ; 0495

		         69	       01  FB 00054 	    CALLS   #1, SYS$CLOSE					      ;

				       24  DD 00057 	    PUSHL   #36							      ; 0496

	      00000000G  9F	       01  FB 00059 1$:     CALLS   #1, @#SYS$EXIT					      ;

		  0000V  CF	       00  FB 00060 2$:     CALLS   #0, INIT_COMMAND					      ; 0506

				0000G  CF  D6 00065 	    INCL    COMMAND_COUNT					      ; 0508

				0000G  CF  9F 00069 	    PUSHAB  KEYWORD_TABLE					      ; 0509

				0000G  CF  9F 0006D 	    PUSHAB  START_STATE						      ;

				  DC   AB  9F 00071 	    PUSHAB  PARSE_STATE						      ;

		  0000G  CF	       03  FB 00074 	    CALLS   #3, LIB$TPARSE					      ;

		         2F	       50  E8 00079 	    BLBS    R0, 6$						      ;

      E8   BB	    E4   AB	       20  3A 0007C 	    LOCC    #32, PARSE_STATE+8, @PARSE_STATE+12			      ; 0520

				       02  12 00082 	    BNEQ    3$							      ;

				       51  D4 00084 	    CLRL    R1							      ;

		    F0   AB	       51  D0 00086 3$:     MOVL    R1, PARSE_STATE+20					      ;

				       07  12 0008A 	    BNEQ    4$							      ; 0521

		    EC   AB	  E4   AB  D0 0008C 	    MOVL    PARSE_STATE+8, PARSE_STATE+16			      ; 0523

				       07  11 00091 	    BRB     5$							      ; 0519

      EC   AB	    F0   AB	  E8   AB  C3 00093 4$:     SUBL3   PARSE_STATE+12, PARSE_STATE+20, PARSE_STATE+16	      ; 0525

				  E8   AB  DD 0009A 5$:     PUSHL   PARSE_STATE+12					      ; 0526

				  EC   AB  DD 0009D 	    PUSHL   PARSE_STATE+16					      ;

				0000'  CF  9F 000A0 	    PUSHAB  ERRMSG_BADPARS					      ; 0428

		  0000G  CF	       03  FB 000A4 	    CALLS   #3, FAOOUT						      ; 0526

				       B5  11 000A9 	    BRB     2$							      ; 0509

	   09	         01	0000G  CF  CF 000AB 6$:     CASEL   VERB_INDEX, #1, #9					      ; 0535

	 00C6	       00CD	     0014     000B1 7$:     .WORD   8$-7$,-						      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 14-5

; Digital Equipment Corporation

;

	 0047	       00A4	     011A     000B7		    29$-7$,-						      ;

	 0113	       00BF	     00F3     000BD		    27$-7$,-						      ;

				     0122     000C3		    41$-7$,-						      ;

								    19$-7$,-						      ;

								    12$-7$,-						      ;

								    35$-7$,-						      ;

								    25$-7$,-						      ;

								    39$-7$,-						      ;

								    43$-7$						      ;

		         52	       6A  D0 000C5 8$:     MOVL    FLAGS, R2						      ; 0545

		         08	       52  D1 000C8 	    CMPL    R2, #8						      ;

				       07  12 000CB 	    BNEQ    9$							      ;

		  0000G  CF	       00  FB 000CD 	    CALLS   #0, LOCALDEFINE					      ; 0548

				       8C  11 000D2 	    BRB     2$							      ; 0545

		         04	       52  D1 000D4 9$:     CMPL    R2, #4						      ;

				       07  12 000D7 	    BNEQ    10$							      ;

		  0000G  CF	       00  FB 000D9 	    CALLS   #0, OBJECTDEFINE					      ; 0550

				       80  11 000DE 	    BRB     2$							      ; 0545

		         02	       52  D1 000E0 10$:    CMPL    R2, #2						      ;

				       07  12 000E3 	    BNEQ    11$							      ;

		  0000G  CF	       00  FB 000E5 	    CALLS   #0, LINEDEFINE					      ; 0552

				       7B  11 000EA 	    BRB     22$							      ; 0545

		         01	       52  D1 000EC 11$:    CMPL    R2, #1						      ;

				       7D  12 000EF 	    BNEQ    24$							      ;

		  0000G  CF	       00  FB 000F1 	    CALLS   #0, NODEDEFINE					      ; 0554

				       7D  11 000F6 	    BRB     26$							      ; 0535

		         52	       6A  D0 000F8 12$:    MOVL    FLAGS, R2						      ; 0564

		         01	       52  D1 000FB 	    CMPL    R2, #1						      ;

				       07  12 000FE 	    BNEQ    13$							      ;

		  0000G  CF	       00  FB 00100 	    CALLS   #0, NODELIST					      ; 0567

				       75  11 00105 	    BRB     28$							      ; 0564

		         08	       52  D1 00107 13$:    CMPL    R2, #8						      ;

				       07  12 0010A 	    BNEQ    14$							      ;

		  0000G  CF	       00  FB 0010C 	    CALLS   #0, LOCALLIST					      ; 0569

				       79  11 00111 	    BRB     30$							      ; 0564

		         04	       52  D1 00113 14$:    CMPL    R2, #4						      ;

				       07  12 00116 	    BNEQ    15$							      ;

		  0000G  CF	       00  FB 00118 	    CALLS   #0, OBJECTLIST					      ; 0571

				       7C  11 0011D 	    BRB     32$							      ; 0564

		         02	       52  D1 0011F 15$:    CMPL    R2, #2						      ;

				       07  12 00122 	    BNEQ    16$							      ;

		  0000G  CF	       00  FB 00124 	    CALLS   #0, LINELIST					      ; 0573

				       77  11 00129 	    BRB     34$							      ; 0564

		         6A	       10  8A 0012B 16$:    BICB2   #16, FLAGS						      ; 0576

		         52	       6A  D0 0012E 	    MOVL    FLAGS, R2						      ; 0577

		         01	       52  D1 00131 	    CMPL    R2, #1						      ;

				       07  12 00134 	    BNEQ    17$							      ;

		  0000G  CF	       00  FB 00136 	    CALLS   #0, ALLNODELIST					      ; 0580

				       65  11 0013B 	    BRB     34$							      ; 0577

		         04	       52  D1 0013D 17$:    CMPL    R2, #4						      ;

				       07  12 00140 	    BNEQ    18$							      ;

		  0000G  CF	       00  FB 00142 	    CALLS   #0, ALLOBJECTLIST					      ; 0582

				       79  11 00147 	    BRB     38$							      ; 0577

		         02	       52  D1 00149 18$:    CMPL    R2, #2						      ;

				       7B  12 0014C 	    BNEQ    40$							      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 14-6

; Digital Equipment Corporation

;

		  0000G  CF	       00  FB 0014E 	    CALLS   #0, ALLLINELIST					      ; 0584

				       7B  11 00153 	    BRB     42$							      ; 0564

	   05	         6A	       04  E1 00155 19$:    BBC     #4, FLAGS, 20$					      ; 0608

		         6A	       10  8A 00159 	    BICB2   #16, FLAGS						      ; 0611

				       04  11 0015C 	    BRB     21$							      ; 0612

	   07	         6A	       03  E1 0015E 20$:    BBC     #3, FLAGS, 23$					      ; 0616

		  0000G  CF	       00  FB 00162 21$:    CALLS   #0, ALLPURGE					      ; 0618

				       67  11 00167 22$:    BRB     42$							      ; 0615

		  0000G  CF	       00  FB 00169 23$:    CALLS   #0, RECORDPURGE					      ; 0620

				       60  11 0016E 24$:    BRB     42$							      ; 0535

		  0000G  CF	       00  FB 00170 25$:    CALLS   #0, LOOP						      ; 0628

				       59  11 00175 26$:    BRB     42$							      ; 0535

		  0000G  CF	       00  FB 00177 27$:    CALLS   #0, ZERO						      ; 0633

				       52  11 0017C 28$:    BRB     42$							      ; 0535

	   1B	         6A	       03  E1 0017E 29$:    BBC     #3, FLAGS, 33$					      ; 0640

	   07	    01   AA	       01  E1 00182 	    BBC     #1, FLAGS+1, 31$					      ;

		  0000G  CF	       00  FB 00187 	    CALLS   #0, SETSTATE_ON					      ; 0642

				       42  11 0018C 30$:    BRB     42$							      ; 0640

	   0B	         6A	       03  E1 0018E 31$:    BBC     #3, FLAGS, 33$					      ; 0644

		         07	  01   AA  E9 00192 	    BLBC    FLAGS+1, 33$					      ;

		  0000G  CF	       00  FB 00196 	    CALLS   #0, SETSTATE_OFF					      ; 0646

				       33  11 0019B 32$:    BRB     42$							      ; 0644

		  0000G  CF	       00  FB 0019D 33$:    CALLS   #0, SETSTATE					      ; 0648

				       2C  11 001A2 34$:    BRB     42$							      ; 0535

	   05	    01   AA	       04  E1 001A4 35$:    BBC     #4, FLAGS+1, 36$					      ; 0657

		  0000G  CF	       00  FB 001A9 	    CALLS   #0, LINKS						      ;

	   05	    01   AA	       06  E1 001AE 36$:    BBC     #6, FLAGS+1, 37$					      ; 0658

		  0000G  CF	       00  FB 001B3 	    CALLS   #0, SHOW_COUNTS					      ;

	   13	    01   AA	       07  E1 001B8 37$:    BBC     #7, FLAGS+1, 42$					      ; 0659

		  0000G  CF	       00  FB 001BD 	    CALLS   #0, SHOW_STATUS					      ;

				       0C  11 001C2 38$:    BRB     42$							      ; 0535

		  0000G  CF	       00  FB 001C4 39$:    CALLS   #0, DISCONNECT					      ; 0665

				       05  11 001C9 40$:    BRB     42$							      ; 0535

		  0000G  CF	       00  FB 001CB 41$:    CALLS   #0, LOAD						      ; 0670

				     FE8D  31 001D0 42$:    BRW     2$							      ; 0535

		  0000G  CF	       00  FB 001D3 43$:    CALLS   #0, EXIT						      ; 0678

				       5B  DD 001D8 	    PUSHL   R11							      ; 0679

		         69	       01  FB 001DA 	    CALLS   #1, SYS$CLOSE					      ;

				0094   CB  9F 001DD 	    PUSHAB  OUTFAB						      ; 0680

		         69	       01  FB 001E1 	    CALLS   #1, SYS$CLOSE					      ;

				       01  DD 001E4 	    PUSHL   #1							      ; 0681

				     FE70  31 001E6 	    BRW     1$							      ;



; Routine Size:  489 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 15

; Digital Equipment Corporation

;

;	0689	GLOBAL ROUTINE CMDPROMPT=

;	0690	

;	0691	!++

;	0692	! FUNCTIONAL DESCRIPTION:

;	0693	!

;	0694	!    CMDPROMPT IS A LIB$TPARSE ACTION ROUTINE. IT IS CALLED AT 

;	0695	!    BEGINNING OF A COMMAND LINE PARSE TO REQUEST INITIAL INPUT

;	0696	!    FROM THE USER

;	0697	!

;	0698	! FORMAL PARAMETERS:

;	0699	!

;	0700	!	NONE

;	0701	!

;	0702	! IMPLICIT INPUTS:

;	0703	!

;	0704	!	THE NUMBER OF THE CURRENT COMMAND 'COMMAND_COUNT' IS

;	0705	!	TAKEN FROM OWN STORAGE AND USED TO BUILD THE PROMPT

;	0706	!       MESSAGE.

;	0707	!

;	0708	! IMPLICIT OUTPUTS:

;	0709	!

;	0710	!	NONE

;	0711	!

;	0712	! ROUTINE VALUE:

;	0713	! COMPLETION CODES:

;	0714	!

;	0715	!	NONE

;	0716	!

;	0717	! SIDE EFFECTS:

;	0718	!

;	0719	!	NONE

;	0720	!

;	0721	!--

;	0722	

;	0723	    BEGIN

;	0724	    FAOOUT(COMMAND_PROMPT,.COMMAND_COUNT );

;	0725	    READ_LINE();			!READ RESPONSE

;	0726	    STRING_COUNT=.INPUT_DESC[0];	!RESET STRING DESCRIPTOR

;	0727	    STRING_POINTER=.INPUT_DESC[1];

;	0728	    RETURN TRUE

;	0729	    END;











					 0000 001E9 	    .ENTRY  CMDPROMPT, Save nothing				      ; 0689

				0000G  CF  DD 001EB 	    PUSHL   COMMAND_COUNT					      ; 0724

				0000'  CF  9F 001EF 	    PUSHAB  COMMAND_PROMPT					      ; 0689

		  0000G  CF	       02  FB 001F3 	    CALLS   #2, FAOOUT						      ; 0724

		  0000V  CF	       00  FB 001F8 	    CALLS   #0, READ_LINE					      ; 0725

		  0000'  CF	0000'  CF  7D 001FD 	    MOVQ    INPUT_DESC, PARSE_STATE+8				      ; 0726

		         50	       01  D0 00204 	    MOVL    #1, R0						      ; 0728

					   04 00207 	    RET     							      ; 0689





; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 15-1

; Digital Equipment Corporation

;

; Routine Size:  31 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 16

; Digital Equipment Corporation

;

;	0730	GLOBAL ROUTINE GET_USER_PRIV=

;	0731	

;	0732	!++

;	0733	! FUNCTIONAL DESCRIPTION:

;	0734	!

;	0735	!	ROUTINE DETERMINES WHETHER CURRENT PROCESS HAS DIAGNOSTIC

;	0736	!	AND OPERATOR PRIVILEGES

;	0737	!

;	0738	! FORMAL PARAMETERS:

;	0739	!

;	0740	!	NONE

;	0741	!

;	0742	! IMPLICIT INPUTS:

;	0743	!

;	0744	!	NONE

;	0745	!

;	0746	! IMPLICIT OUTPUTS:

;	0747	!

;	0748	!	NONE

;	0749	!

;	0750	! ROUTINE VALUE:

;	0751	! COMPLETION CODES:

;	0752	!

;	0753	!	TRUE IF PROCESS IS CORRECTLY PRIVILEGED

;	0754	!

;	0755	! SIDE EFFECTS:

;	0756	!

;	0757	!	NONE

;	0758	!

;	0759	!--

;	0760	

;	0761	BEGIN

;	0762	OWN

;	0763	    PRIVBUF:BLOCK[2],			!QUADWORD PRIV MASK STORED HERE

;	0764	    GETLIST:VECTOR[4]			!LIST OF INFORMATION FOR GETJPI TO RETURN

;	0765	        INITIAL(

;	0766			JPI$_CURPRIV^16+8,	!RETURN PRIV MASK TO 8 BYTE BUFFER

;	0767			PRIVBUF,		!ADDRESS OF PRIVMASK

;	0768			0,

;	0769			0);			!TERMINATOR

;	0770	

;	0771	

;	0772	

;	0773	!+

;	0774	!GET PRIVILEGES OF CURRENT USER 

;	0775	

;	0776	    $GETJPI(ITMLST=GETLIST);

;	0777	

;	0778	!+

;	0779	!USER MUST HAVE DIAGNOSTIC AND OPERATOR  PRIVILEGES

;	0780	

;	0781	    IF

;	0782		.PRIVBUF[PRV$V_DIAGNOSE] AND .PRIVBUF[PRV$V_OPER]

;	0783		

;	0784	    THEN



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 16-1

; Digital Equipment Corporation

;

;	0785		RETURN TRUE

;	0786	    ELSE

;	0787		RETURN FALSE;

;	0788	

;	0789	END;







							    .PSECT  $OWN$,NOEXE,2



					      00552	    .BLKB   2

					      00554 PRIVBUF:.BLKB   8

					      0055C GETLIST:.LONG   67108872						      ;

					      00560 	    .ADDRESS  PRIVBUF						      ;

					      00564 	    .LONG   0, 0						      ;



							    .GLOBL  SYS$GETJPI



							    .PSECT  $CODE$,NOWRT,2



					 0000 00208 	    .ENTRY  GET_USER_PRIV, Save nothing				      ; 0730

				       7E  7C 0020A 	    CLRQ    -(SP)						      ; 0776

				       7E  D4 0020C 	    CLRL    -(SP)						      ;

				0000'  CF  9F 0020E 	    PUSHAB  GETLIST						      ;

				       7E  7C 00212 	    CLRQ    -(SP)						      ;

				       7E  D4 00214 	    CLRL    -(SP)						      ;

	      00000000G  9F	       07  FB 00216 	    CALLS   #7, @#SYS$GETJPI					      ;

	   0A	  0000'  CF	       06  E1 0021D 	    BBC     #6, PRIVBUF, 1$					      ; 0782

	   04	  0000'  CF	       02  E1 00223 	    BBC     #2, PRIVBUF+2, 1$					      ;

		         50	       01  D0 00229 	    MOVL    #1, R0						      ; 0785

					   04 0022C 	    RET     							      ;

				       50  D4 0022D 1$:     CLRL    R0							      ; 0730

					   04 0022F 	    RET     							      ;



; Routine Size:  40 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 17

; Digital Equipment Corporation

;

;	0790	GLOBAL ROUTINE PROMPT   =	

;	0791	

;	0792	!++

;	0793	! FUNCTIONAL DESCRIPTION:

;	0794	!

;	0795	!    PROMPT IS CALLED DURING THE PARSE OF AN NCP COMMAND BY

;	0796	!    LIB$TPARSE.  SPECIFICALLY PROMPT IS AN ACTION ROUTINE

;	0797	!    CALLED WHENEVER THE INPUT STREAM IS EMPTY AND ADDITIONAL

;	0798	!    INFORMATION IS REQUIRED OF THE USER

;	0799	!

;	0800	!    PROMPT OUTPUTS A SPECIFIED MESSAGE TO SYS$OUTPUT AND READ

;	0801	!    THE RESPONDING INPUT FROM SYS$INPUT.

;	0802	!

;	0803	!

;	0804	! FORMAL PARAMETERS:

;	0805	!

;	0806	!	NONE

;	0807	!

;	0808	! IMPLICIT INPUTS:

;	0809	!

;	0810	!    ENTRY STATE_PARAM IN THE PARSE STATE TABLE HOLDS THE 

;	0811	!    ADDRESS OF A COUNTED STRING TO OUTPUT FOR PROMPTING THE

;	0812	!    USER

;	0813	!

;	0814	!

;	0815	! IMPLICIT OUTPUTS:

;	0816	!

;	0817	!    ENTRIES STRING_COUNT AND STRING_POINTER IN THE PARSE STATE 

;	0818	!    TABLE ARE RESET TO DESCRIBE THE NEXT RECORD IN THE INPUT

;	0819	!    STREAM.

;	0820	!

;	0821	!

;	0822	! ROUTINE VALUE:

;	0823	! COMPLETION CODES:

;	0824	!

;	0825	!	NONE

;	0826	!

;	0827	! SIDE EFFECTS:

;	0828	!

;	0829	!	NONE

;	0830	!

;	0831	!--

;	0832	    BEGIN

;	0833	

;	0834	

;	0835	    OUTMESSAGE(.STATE_PARAM);		!WRITE PROMPT MESSAGE

;	0836	    READ_LINE();			!READ RESPONSE

;	0837	    STRING_COUNT=.INPUT_DESC[0];	!RESET STRING DESCRIPTOR

;	0838	    STRING_POINTER=.INPUT_DESC[1];

;	0839	    RETURN	TRUE

;	0840	    END;			!End of PROMPT











; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 17-1

; Digital Equipment Corporation

;



					 0000 00230 	    .ENTRY  PROMPT, Save nothing				      ; 0790

				0000'  CF  DD 00232 	    PUSHL   PARSE_STATE+32					      ; 0835

		  0000V  CF	       01  FB 00236 	    CALLS   #1, OUTMESSAGE					      ;

		  0000V  CF	       00  FB 0023B 	    CALLS   #0, READ_LINE					      ; 0836

		  0000'  CF	0000'  CF  7D 00240 	    MOVQ    INPUT_DESC, PARSE_STATE+8				      ; 0837

		         50	       01  D0 00247 	    MOVL    #1, R0						      ; 0839

					   04 0024A 	    RET     							      ; 0790



; Routine Size:  27 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 18

; Digital Equipment Corporation

;

;	0841	GLOBAL ROUTINE WRITE_LINE (ADDRESS,COUNT)  =	

;	0842	

;	0843	!++

;	0844	! FUNCTIONAL DESCRIPTION:

;	0845	!

;	0846	!    WRITE_LINE PLACES A BUFFER ADDRESS AND A BUFFER COUNT INTO 

;	0847	!    THE RAB USED FOR TERMINAL OUTPUT AND PERFORMS A RMS $PUT

;	0848	!    FUNCTION.

;	0849	

;	0850	!

;	0851	! FORMAL PARAMETERS:

;	0852	!

;	0853	!	ADDRESS: THE ADDRESS OF THE BUFFER TO OUTPUT

;	0854	!	COUNT: THE BYTE COUNT OF THAT BUFFER

;	0855	!

;	0856	! IMPLICIT INPUTS:

;	0857	!

;	0858	!	NONE

;	0859	!

;	0860	! IMPLICIT OUTPUTS:

;	0861	!

;	0862	!	NONE

;	0863	!

;	0864	! ROUTINE VALUE:

;	0865	!

;	0866	!	RETURNED VALUE IS THAT OF THE $PUT FUNCTION

;	0867	!

;	0868	! COMPLETION CODES:

;	0869	!

;	0870	!	NONE

;	0871	!

;	0872	! SIDE EFFECTS:

;	0873	!

;	0874	!	NONE

;	0875	!

;	0876	!--

;	0877	

;	0878		BEGIN

;	0879		OUTRAB[RAB$L_RBF]=.ADDRESS;

;	0880		OUTRAB[RAB$W_RSZ]=.COUNT;

;	0881		RETURN $PUT(RAB=OUTRAB)

;	0882		END;







							    .GLOBL  SYS$PUT



					 0000 0024B 	    .ENTRY  WRITE_LINE, Save nothing				      ; 0841

		  0000'  CF	  04   AC  D0 0024D 	    MOVL    ADDRESS, OUTRAB+40					      ; 0879

		  0000'  CF	  08   AC  B0 00253 	    MOVW    COUNT, OUTRAB+34					      ; 0880

				0000'  CF  9F 00259 	    PUSHAB  OUTRAB						      ; 0881

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

					   04 00264 	    RET     							      ; 0841



; Routine Size:  26 bytes



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 18-1

; Digital Equipment Corporation

;







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 19

; Digital Equipment Corporation

;

;	0883	GLOBAL ROUTINE OUTMESSAGE(CBUFFER):NOVALUE=

;	0884	

;	0885	!++

;	0886	! FUNCTIONAL DESCRIPTION:

;	0887	!

;	0888	!    OUTMESSAGE EXTRACTS THE BYTECOUNT AND MESSAGE ADDRESS

;	0889	!    FROM A COUNTED STRING AND INVOKES THE ROUTINE WRITE_LINE

;	0890	!    TO OUTPUT THE MESSAGE

;	0891	!

;	0892	! FORMAL PARAMETERS:

;	0893	!

;	0894	!	CBUFFER:THE ADDRESS OF A COUNTED STRING.

;	0895	!

;	0896	! IMPLICIT INPUTS:

;	0897	!

;	0898	!	NONE

;	0899	!

;	0900	! IMPLICIT OUTPUTS:

;	0901	!

;	0902	!	NONE

;	0903	!

;	0904	! ROUTINE VALUE:

;	0905	! COMPLETION CODES:

;	0906	!

;	0907	!	NONE

;	0908	!

;	0909	! SIDE EFFECTS:

;	0910	!

;	0911	!	NONE

;	0912	!

;	0913	!--

;	0914	

;	0915	    BEGIN

;	0916	    LOCAL

;	0917		COUNT,

;	0918		ADDRESS;

;	0919	    ADDRESS=.CBUFFER+1;

;	0920	    COUNT=.(.CBUFFER)<0,8>;

;	0921	    WRITE_LINE(.ADDRESS,.COUNT)

;	0922	    END;











					 0000 00265 	    .ENTRY  OUTMESSAGE, Save nothing				      ; 0883

	   51	    04   AC	       01  C1 00267 	    ADDL3   #1, CBUFFER, ADDRESS				      ; 0919

		         50	  04   BC  9A 0026C 	    MOVZBL  @CBUFFER, COUNT					      ; 0920

				       50  DD 00270 	    PUSHL   COUNT						      ; 0921

				       51  DD 00272 	    PUSHL   ADDRESS						      ;

		    D3   AF	       02  FB 00274 	    CALLS   #2, WRITE_LINE					      ;

					   04 00278 	    RET     							      ; 0883



; Routine Size:  20 bytes





; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 19-1

; Digital Equipment Corporation

;





; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 20

; Digital Equipment Corporation

;

;	0923	ROUTINE READ_LINE  =

;	0924	

;	0925	!++

;	0926	! FUNCTIONAL DESCRIPTION:

;	0927	!

;	0928	!	READ_LINE  READS PHYSICAL RECORDS FROM SYS$INPUT

;	0929	!	AND CONCATENATES THEM INTO A SINGLE LOGICAL RECORD

;	0930	!	A '-' CHARACTER IN THE LAST POSITION OF A INPUT 

;	0931	!	RECORD INDICATES THAT THE RECORD IS CONTINUED INTO

;	0932	!	THE NEXT PHYSICAL RECORD.

;	0933	!	A '!' IN THE FIRST POSITION INDICATES THAT THE 

;	0934	!	PHYSICAL RECORD  IN A COMMENT AND SHOULD BE IGNORED

;	0935	!

;	0936	! FORMAL PARAMETERS:

;	0937	!

;	0938	!	NONE

;	0939	!

;	0940	! IMPLICIT INPUTS:

;	0941	!

;	0942	!	INPUT_BUFFER:THE BUFFER USED TO HOLD SYS$INPUT DATA

;	0943	!	INPUT_LENGTH:THE LENGTH OF INPUT_BUFFER.

;	0944	!

;	0945	! IMPLICIT OUTPUTS:

;	0946	!

;	0947	!	INPUT_DESC[1]:RECEIVES THE TOTAL NUMBER OF CHARACTERS 

;	0948	!			READ BY READ_LINE.

;	0949	!

;	0950	! ROUTINE VALUE:

;	0951	! COMPLETION CODES:

;	0952	!

;	0953	!	NONE

;	0954	!

;	0955	! SIDE EFFECTS:

;	0956	!

;	0957	!	NONE

;	0958	!

;	0959	!--

;	0960	

;	0961		BEGIN

;	0962		LOCAL

;	0963		    LAST_ADDR,

;	0964		    STATUS;

;	0965	

;	0966	!+

;	0967	!INITIALIZE THE INPUT DESCRIPTOR

;	0968	

;	0969		INRAB[RAB$L_UBF]=INPUT_BUFFER;

;	0970		INRAB[RAB$W_USZ]=INPUT_LENGTH;

;	0971		WHILE TRUE DO

;	0972		    BEGIN

;	0973	

;	0974	        !+

;	0975		!IF AN RMS READ FAILURE, RETURN THE FAILURE

;	0976	

;	0977		    IF



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 20-1

; Digital Equipment Corporation

;

;	0978			NOT(STATUS=$GET(RAB=INRAB))

;	0979		    THEN

;	0980			BEGIN

;	0981	

;	0982			!

;	0983			!CHECK FOR CTRL-Z,WHICH EXITS THE UTILITY

;	0984			!

;	0985			IF

;	0986			    .STATUS EQLU RMS$_EOF

;	0987			THEN

;	0988			    BEGIN

;	0989			    EXIT();		!BREAK ANY LOGICAL LINKS

;	0990			    $EXIT()		!EXIT IMAGE

;	0991			    END;

;	0992			INPUT_DESC[0]=0;

;	0993			RETURN .STATUS

;	0994			END;

;	0995		    !

;	0996		    !IF INPUT FROM COMMAND FILE THEN ECHO

;	0997		    !

;	0998		    BEGIN

;	0999		    BIND DEV_CHAR=INFAB[FAB$L_DEV];

;	1000		    MAP DEV_CHAR:BLOCK[1];

;	1001		    IF

;	1002			NOT .DEV_CHAR[DEV$V_TRM]

;	1003		    THEN

;	1004			BEGIN

;	1005			FAOOUT(CRLF);

;	1006			WRITE_LINE(.INRAB[RAB$L_RBF],.INRAB[RAB$W_RSZ])

;	1007			END

;	1008		    END;

;	1009		    !

;	1010		    !CHECK FOR '!' IN THE FIRST POSITION,A COMMENT LINE

;	1011		    !

;	1012		    IF

;	1013			.(.INRAB[RAB$L_UBF])<0,8> NEQ '!'

;	1014		    THEN

;	1015			BEGIN

;	1016	

;	1017		        !+

;	1018		        !DETERMINE THE LAST POSITION FILLED IN THE BUFFER

;	1019	

;	1020		        LAST_ADDR=.INRAB[RAB$W_RSZ]+.INRAB[RAB$L_RBF]-1;

;	1021	

;	1022		        !+

;	1023		        !IS THE LAST CHARACTER A CONTINUATION CHARACTER?

;	1024	

;	1025		        IF .(.LAST_ADDR)<0,8> EQL %C'-'

;	1026		        THEN

;	1027			    BEGIN

;	1028			    !+

;	1029			    !RESET POINTERS AND CONTINUE READING

;	1030	

;	1031			    INRAB[RAB$W_USZ]=INPUT_LENGTH-(.LAST_ADDR-INPUT_BUFFER);

;	1032			    INRAB[RAB$L_UBF]=.LAST_ADDR;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 20-2

; Digital Equipment Corporation

;

;	1033			    END

;	1034		        ELSE

;	1035			    BEGIN

;	1036			    !+

;	1037			    !END DETERMINED, INITIALIZE INPUT DESCRIPTOR

;	1038	

;	1039			    INPUT_DESC[1]=INPUT_BUFFER;

;	1040			    INPUT_DESC[0]=.LAST_ADDR-INPUT_BUFFER+1;

;	1041			    RETURN TRUE

;	1042			    END

;	1043		        END

;	1044		    END

;	1045	        END;







						    DEV_CHAR=		INFAB+64

							    .GLOBL  SYS$GET



					 0C0C 00279 READ_LINE:

							    .WORD   Save R2,R3,R10,R11					      ; 0923

		         5A	0000'  CF  9E 0027B 	    MOVAB   INPUT_BUFFER, R10					      ;

		         5B	0000'  CF  9E 00280 	    MOVAB   INRAB+36, R11					      ;

		         6B	       6A  9E 00285 	    MOVAB   INPUT_BUFFER, INRAB+36				      ; 0969

		    FC   AB	0200   8F  B0 00288 	    MOVW    #512, INRAB+32					      ; 0970

				  DC   AB  9F 0028E 1$:     PUSHAB  INRAB						      ; 0978

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

		         53	       50  D0 00298 	    MOVL    R0, STATUS						      ;

		         1F	       53  E8 0029B 	    BLBS    STATUS, 3$						      ;

	      0001827A   8F	       53  D1 0029E 	    CMPL    STATUS, #98938					      ; 0986

				       0E  12 002A5 	    BNEQ    2$							      ;

		  0000G  CF	       00  FB 002A7 	    CALLS   #0, EXIT						      ; 0989

				       01  DD 002AC 	    PUSHL   #1							      ; 0990

	      00000000G  9F	       01  FB 002AE 	    CALLS   #1, @#SYS$EXIT					      ;

				0200   CA  D4 002B5 2$:     CLRL    INPUT_DESC						      ; 0992

		         50	       53  D0 002B9 	    MOVL    STATUS, R0						      ; 0993

					   04 002BC 	    RET     							      ;

	   15	    CC   AB	       02  E0 002BD 3$:     BBS     #2, DEV_CHAR, 4$					      ; 1002

				0000'  CF  9F 002C2 	    PUSHAB  CRLF						      ; 0923

		  0000G  CF	       01  FB 002C6 	    CALLS   #1, FAOOUT						      ; 1005

		         7E	  FE   AB  3C 002CB 	    MOVZWL  INRAB+34, -(SP)					      ; 1006

				  04   AB  DD 002CF 	    PUSHL   INRAB+40						      ;

		  FF74   CF	       02  FB 002D2 	    CALLS   #2, WRITE_LINE					      ;

		         21	  00   BB  91 002D7 4$:     CMPB    @INRAB+36, #33					      ; 1013

				       B1  13 002DB 	    BEQL    1$							      ;

		         50	  FE   AB  3C 002DD 	    MOVZWL  INRAB+34, R0					      ; 1020

		         50	  04   AB  C0 002E1 	    ADDL2   INRAB+40, R0					      ;

	   52	         50	       01  C3 002E5 	    SUBL3   #1, R0, LAST_ADDR					      ;

		         50	       6A  9E 002E9 	    MOVAB   INPUT_BUFFER, R0					      ; 1031

	   50	         52	       50  C3 002EC 	    SUBL3   R0, LAST_ADDR, R0					      ;

		         2D	       62  91 002F0 	    CMPB    (LAST_ADDR), #45					      ; 1025

				       0C  12 002F3 	    BNEQ    5$							      ;

      FC   AB	  0200   8F	       50  A3 002F5 	    SUBW3   R0, #512, INRAB+32					      ; 1031

		         6B	       52  D0 002FC 	    MOVL    LAST_ADDR, INRAB+36					      ; 1032

				       8D  11 002FF 	    BRB     1$							      ; 1025



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 20-3

; Digital Equipment Corporation

;

		  0204   CA	       6A  9E 00301 5$:     MOVAB   INPUT_BUFFER, INPUT_DESC+4				      ; 1039

    0200   CA	         50	       01  C1 00306 	    ADDL3   #1, R0, INPUT_DESC					      ; 1040

		         50	       01  D0 0030C 	    MOVL    #1, R0						      ; 1041

					   04 0030F 	    RET     							      ; 0923



; Routine Size:  151 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 21

; Digital Equipment Corporation

;

;	1046	ROUTINE IN_QUEUE(TOKEN):NOVALUE=

;	1047	

;	1048	!++

;	1049	! FUNCTIONAL DESCRIPTION:

;	1050	!

;	1051	!	IN_QUEUE PLACES A LONGWORD PARAMETER INTO THE 

;	1052	!	PARAMETER QUEUE. IT IS GENERALLY CALLED FROM 

;	1053	!	TPARSE ACTION ROUTINES SAVE_NUMBER AND SAVE_STRING.

;	1054	!

;	1055	! FORMAL PARAMETERS:

;	1056	!

;	1057	!	TOKEN: VALUE TO BE QUEUED

;	1058	!

;	1059	! IMPLICIT INPUTS:

;	1060	!

;	1061	!	PUTTER:LAST POSITION IN PARAMETER QUEUE TO BE FILLED

;	1062	!	QUEUE: VECTOR HOLDING QUEUED ELEMENTS

;	1063	!

;	1064	! IMPLICIT OUTPUTS:

;	1065	!

;	1066	!	NONE

;	1067	!

;	1068	! ROUTINE VALUE:

;	1069	! COMPLETION CODES:

;	1070	!

;	1071	!	NONE

;	1072	!

;	1073	! SIDE EFFECTS:

;	1074	!

;	1075	!	NONE

;	1076	!

;	1077	!--

;	1078	

;	1079		BEGIN

;	1080		PUTTER=.PUTTER+1;

;	1081		QUEUE[.PUTTER]=.TOKEN

;	1082		END;











					 0000 00310 IN_QUEUE:

							    .WORD   Save nothing					      ; 1046

				0000'  CF  D6 00312 	    INCL    PUTTER						      ; 1080

		         50	0000'  CF  D0 00316 	    MOVL    PUTTER, R0						      ; 1081

		  0000'CF40	  04   AC  D0 0031B 	    MOVL    TOKEN, QUEUE[R0]					      ;

					   04 00322 	    RET     							      ; 1046



; Routine Size:  19 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 22

; Digital Equipment Corporation

;

;	1083	GLOBAL ROUTINE OUT_QUEUE=

;	1084	

;	1085	!++

;	1086	! FUNCTIONAL DESCRIPTION:

;	1087	!

;	1088	!	OUT_QUEUE RETURNS THE NEXT VALUE FROM THE PARAMETER QUEUE

;	1089	!

;	1090	! FORMAL PARAMETERS:

;	1091	!

;	1092	!	NONE

;	1093	!

;	1094	! IMPLICIT INPUTS:

;	1095	!

;	1096	!	TAKER: INDEX TO LAST ELEMENT TO BE REMOVED FROM 

;	1097	!		PARAMETER QUEUE

;	1098	!

;	1099	! IMPLICIT OUTPUTS:

;	1100	!

;	1101	!	NONE

;	1102	!

;	1103	! ROUTINE VALUE:

;	1104	! COMPLETION CODES:

;	1105	!

;	1106	!	THE ROUTINE VALUE IS THE VALUE DEQUEUED.

;	1107	!

;	1108	! SIDE EFFECTS:

;	1109	!

;	1110	!	NONE

;	1111	!

;	1112	!--

;	1113	

;	1114		BEGIN

;	1115		TAKER=.TAKER+1;

;	1116		RETURN .QUEUE[.TAKER]

;	1117		END;











					 0000 00323 	    .ENTRY  OUT_QUEUE, Save nothing				      ; 1083

				0000'  CF  D6 00325 	    INCL    TAKER						      ; 1115

		         50	0000'  CF  D0 00329 	    MOVL    TAKER, R0						      ; 1116

		         50	0000'CF40  D0 0032E 	    MOVL    QUEUE[R0], R0					      ;

					   04 00334 	    RET     							      ; 1083



; Routine Size:  18 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 23

; Digital Equipment Corporation

;

;	1118	GLOBAL ROUTINE SET_PRIVILEGE=

;	1119	

;	1120	!++

;	1121	! FUNCTIONAL DESCRIPTION:

;	1122	!

;	1123	!	ROUTINE CALLED DURING THE PARSE OF PRIVILEGE NAMES IN

;	1124	!	DEFINE OBJECT. THE CURRENT TOKEN IS THE PRIVILEGE NAME,

;	1125	!	PRV$SETPRIV SET THE CORRESPONDING BIT IN A PRIVILEGE MASK.

;	1126	!

;	1127	! FORMAL PARAMETERS:

;	1128	!

;	1129	!	NONE

;	1130	!

;	1131	! IMPLICIT INPUTS:

;	1132	!

;	1133	!	TOKEN_COUNT:SIZE OF THE PRIVILEGE NAME

;	1134	!	TOKEN_ADDRESS:ADDRESS OF THE PRIVILEGE NAME

;	1135	!

;	1136	! IMPLICIT OUTPUTS:

;	1137	!

;	1138	!	PRIVILEGE_MASK:QUADWORD USED TO HOLD THE ENCOUNTERED PRIVILEGES

;	1139	!

;	1140	! ROUTINE VALUE:

;	1141	! COMPLETION CODES:

;	1142	!

;	1143	!	NONE

;	1144	!

;	1145	! SIDE EFFECTS:

;	1146	!

;	1147	!	NONE

;	1148	!

;	1149	!--

;	1150	

;	1151	BEGIN

;	1152	PRV$SETPRIV(TOKEN_COUNT,PRIVILEGE_MASK);

;	1153	RETURN TRUE

;	1154	END;











					 0000 00335 	    .ENTRY  SET_PRIVILEGE, Save nothing				      ; 1118

				0000'  CF  9F 00337 	    PUSHAB  PRIVILEGE_MASK					      ; 1152

				0000'  CF  9F 0033B 	    PUSHAB  PARSE_STATE+16					      ;

		  0000G  CF	       02  FB 0033F 	    CALLS   #2, PRV$SETPRIV					      ;

		         50	       01  D0 00344 	    MOVL    #1, R0						      ; 1153

					   04 00347 	    RET     							      ; 1118



; Routine Size:  19 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 24

; Digital Equipment Corporation

;

;	1155	GLOBAL ROUTINE SAVE_PRIVILEGE=

;	1156	

;	1157	!++

;	1158	! FUNCTIONAL DESCRIPTION:

;	1159	!

;	1160	!	SAVE_PRIVILEGE SAVES THE QUADWORD SETUP BY CALLS TO SET_PRIVILEGE

;	1161	!	ONTO THE PARAMETER QUEUE

;	1162	!

;	1163	! FORMAL PARAMETERS:

;	1164	!

;	1165	!	NONE

;	1166	!

;	1167	! IMPLICIT INPUTS:

;	1168	!

;	1169	!	PRIVILEGE_MASK:A QUADWORD WHOSE BITS INDICATE AN OBJECTS 

;	1170	!	PRIVILEGES

;	1171	!

;	1172	! IMPLICIT OUTPUTS:

;	1173	!

;	1174	!	NONE

;	1175	!

;	1176	! ROUTINE VALUE:

;	1177	! COMPLETION CODES:

;	1178	!

;	1179	!	NONE

;	1180	!

;	1181	! SIDE EFFECTS:

;	1182	!

;	1183	!	NONE

;	1184	!

;	1185	!--

;	1186	

;	1187	BEGIN

;	1188	IN_QUEUE(.PRIVILEGE_MASK[0]);

;	1189	IN_QUEUE(.PRIVILEGE_MASK[1]);

;	1190	RETURN TRUE

;	1191	END;











					 0000 00348 	    .ENTRY  SAVE_PRIVILEGE, Save nothing			      ; 1155

				0000'  CF  DD 0034A 	    PUSHL   PRIVILEGE_MASK					      ; 1188

		    BE   AF	       01  FB 0034E 	    CALLS   #1, IN_QUEUE					      ;

				0000'  CF  DD 00352 	    PUSHL   PRIVILEGE_MASK+4					      ; 1189

		    B6   AF	       01  FB 00356 	    CALLS   #1, IN_QUEUE					      ;

		         50	       01  D0 0035A 	    MOVL    #1, R0						      ; 1190

					   04 0035D 	    RET     							      ; 1155



; Routine Size:  22 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 25

; Digital Equipment Corporation

;

;	1192	    GLOBAL ROUTINE STRINGSIZE=

;	1193	

;	1194	!++

;	1195	! FUNCTIONAL DESCRIPTION:

;	1196	!

;	1197	!	STRINGSIZE IS BOTH AN ACTION ROUTINE FOR TPARSE

;	1198	!	AND A UTILITY FOR ACTION ROUTINES.

;	1199	!	STRINGSIZE INSURES THAT THE LENGTH OF THE CURRENT 

;	1200	!	TOKEN(TOKEN_COUNT) IS NOT GREATER THAN THE MAXIMUM

;	1201	!	SIZE SPECIFIED IN THE PARSE STATE PARAMETER(STATE_PARAM)

;	1202	!	IF THE SIZE SPECIFIED IN STATE_PARAM IS NEGATIVE THEN

;	1203	!	THE TOKEN_COUNT MUST EXACTLY MATCH THE ABSOLUTE VALUE OF

;	1204	!	OF THE STATE_PARAMETER.

;	1205	!

;	1206	! FORMAL PARAMETERS:

;	1207	!

;	1208	!	NONE

;	1209	!

;	1210	! IMPLICIT INPUTS:

;	1211	!

;	1212	!	TOKEN_COUNT:SIZE OF THE CURRENT TOKEN

;	1213	!	STATE_PARAM:MAXIMUM OR REQUIRED SIZE OF TOKEN

;	1214	!

;	1215	! IMPLICIT OUTPUTS:

;	1216	!

;	1217	!	NONE

;	1218	!

;	1219	! ROUTINE VALUE:

;	1220	! COMPLETION CODES:

;	1221	!

;	1222	!	NONE

;	1223	!

;	1224	! SIDE EFFECTS:

;	1225	!

;	1226	!	NONE

;	1227	!

;	1228	!--

;	1229	

;	1230		BEGIN

;	1231		IF .STATE_PARAM LSS 0

;	1232		THEN

;	1233		    !

;	1234		    !STRING LENGTH MUST BE AN EXACT MATCH

;	1235		    !

;	1236		    IF

;	1237			.TOKEN_COUNT EQL -.STATE_PARAM

;	1238		    THEN

;	1239			RETURN TRUE

;	1240		    ELSE

;	1241		 	RETURN FALSE

;	1242		ELSE

;	1243		    !

;	1244		    !STRING HAS ONLY AN UPPER BOUND

;	1245		    !

;	1246		    IF



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 25-1

; Digital Equipment Corporation

;

;	1247			.TOKEN_COUNT LEQ .STATE_PARAM

;	1248		    THEN

;	1249			RETURN TRUE

;	1250		    ELSE

;	1251			RETURN FALSE

;	1252		END;











					 0000 0035E 	    .ENTRY  STRINGSIZE, Save nothing				      ; 1192

		         50	0000'  CF  D0 00360 	    MOVL    PARSE_STATE+32, R0					      ; 1231

				       0C  18 00365 	    BGEQ    1$							      ;

		         50	       50  CE 00367 	    MNEGL   R0, R0						      ; 1237

		         50	0000'  CF  D1 0036A 	    CMPL    PARSE_STATE+16, R0					      ;

				       0D  12 0036F 	    BNEQ    3$							      ;

				       07  11 00371 	    BRB     2$							      ; 1239

		         50	0000'  CF  D1 00373 1$:     CMPL    PARSE_STATE+16, R0					      ; 1247

				       04  14 00378 	    BGTR    3$							      ;

		         50	       01  D0 0037A 2$:     MOVL    #1, R0						      ; 1249

					   04 0037D 	    RET     							      ;

				       50  D4 0037E 3$:     CLRL    R0							      ; 1246

					   04 00380 	    RET     							      ; 1192



; Routine Size:  35 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 26

; Digital Equipment Corporation

;

;	1253	    GLOBAL ROUTINE SAVE_STRING=

;	1254	

;	1255	!++

;	1256	! FUNCTIONAL DESCRIPTION:

;	1257	!

;	1258	!	SAVE_STRING IS A TPARSE ACTION ROUTINE. AFTER 

;	1259	!	DETERMINING THAT A STRINGS SIZE IS CORRECT,THRU

;	1260	!	A CALL TO STRINGSIZE, SAVE_STRING SAVES THE CURRENT

;	1261	!	TOKEN ON THE PARAMETER QUEUE.

;	1262	!

;	1263	! FORMAL PARAMETERS:

;	1264	!

;	1265	!	NONE

;	1266	!

;	1267	! IMPLICIT INPUTS:

;	1268	!

;	1269	!	TOKEN_POINTER:THE STARTING ADDRESS OF THE CURRENT TOKEN

;	1270	!	TOKEN_COUNT:THE LENGTH OF THE CURRENT TOKEN

;	1271	!

;	1272	! IMPLICIT OUTPUTS:

;	1273	!

;	1274	!	NONE

;	1275	!

;	1276	! ROUTINE VALUE:

;	1277	! COMPLETION CODES:

;	1278	!

;	1279	!	NONE

;	1280	!

;	1281	! SIDE EFFECTS:

;	1282	!

;	1283	!	NONE

;	1284	!

;	1285	!--

;	1286	

;	1287		BEGIN

;	1288		IF

;	1289		    !

;	1290		    !CHECK SIZE OF STRING

;	1291		    !

;	1292		    NOT STRINGSIZE()

;	1293		THEN

;	1294		    !

;	1295		    !STRING IMPROPER SIZE

;	1296		    !

;	1297		    BEGIN

;	1298		    FAOOUT(ERRMSG_TOOLONG);

;	1299		    RETURN FALSE

;	1300		    END

;	1301		ELSE

;	1302		    BEGIN

;	1303			!

;	1304			!SAVE SIZE OF STRING FOLLOWED BY INDIVIDUAL BYTES

;	1305			!

;	1306			TOKEN_COUNT=ABS(.TOKEN_COUNT);

;	1307			IN_QUEUE(.TOKEN_COUNT);



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 26-1

; Digital Equipment Corporation

;

;	1308			INCR TOKEN_ADDRESS

;	1309		    	FROM .TOKEN_POINTER

;	1310		    	TO .TOKEN_POINTER+.TOKEN_COUNT-1

;	1311			    DO IN_QUEUE(.(.TOKEN_ADDRESS)<0,8>);

;	1312			RETURN TRUE

;	1313		    END

;	1314		END;











					 080C 00381 	    .ENTRY  SAVE_STRING, Save R2,R3,R11				      ; 1253

		         5B	0000'  CF  9E 00383 	    MOVAB   PARSE_STATE+16, R11					      ;

		    D2   AF	       00  FB 00388 	    CALLS   #0, STRINGSIZE					      ; 1292

		         0B	       50  E8 0038C 	    BLBS    R0, 1$						      ;

				0000'  CF  9F 0038F 	    PUSHAB  ERRMSG_TOOLONG					      ; 1253

		  0000G  CF	       01  FB 00393 	    CALLS   #1, FAOOUT						      ; 1298

				       2E  11 00398 	    BRB     5$							      ; 1299

		         50	       6B  D0 0039A 1$:     MOVL    PARSE_STATE+16, R0					      ; 1306

				       03  18 0039D 	    BGEQ    2$							      ;

		         50	       50  CE 0039F 	    MNEGL   R0, R0						      ;

		         6B	       50  D0 003A2 2$:     MOVL    R0, PARSE_STATE+16					      ;

				       6B  DD 003A5 	    PUSHL   PARSE_STATE+16					      ; 1307

		  FF64   CF	       01  FB 003A7 	    CALLS   #1, IN_QUEUE					      ;

	   53	    04   AB	       6B  C1 003AC 	    ADDL3   PARSE_STATE+16, PARSE_STATE+20, R3			      ; 1310

	   52	    04   AB	       01  C3 003B1 	    SUBL3   #1, PARSE_STATE+20, TOKEN_ADDRESS			      ; 1308

				       08  11 003B6 	    BRB     4$							      ;

		         7E	       62  9A 003B8 3$:     MOVZBL  (TOKEN_ADDRESS), -(SP)				      ; 1311

		  FF50   CF	       01  FB 003BB 	    CALLS   #1, IN_QUEUE					      ;

	   F4	         52	       53  F2 003C0 4$:     AOBLSS  R3, TOKEN_ADDRESS, 3$				      ; 1308

		         50	       01  D0 003C4 	    MOVL    #1, R0						      ; 1312

					   04 003C7 	    RET     							      ;

				       50  D4 003C8 5$:     CLRL    R0							      ; 1287

					   04 003CA 	    RET     							      ; 1253



; Routine Size:  74 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 27

; Digital Equipment Corporation

;

;	1315	GLOBAL     ROUTINE ON_BLANKSKIP=

;	1316	

;	1317	!++

;	1318	! FUNCTIONAL DESCRIPTION:

;	1319	!

;	1320	!	ON_BLANKSKIP IS A TPARSE ACTION ROUTINE. IT

;	1321	!	ALTERS THE STATE PARSE TABLE SO THAT BLANKS

;	1322	!	AND TABS ARE NO LONGER SIGNIFICANT CHARACTERS

;	1323	!	BUT MERELY SEPARATERS OF TOKENS.

;	1324	!

;	1325	! FORMAL PARAMETERS:

;	1326	!

;	1327	!	NONE

;	1328	!

;	1329	! IMPLICIT INPUTS:

;	1330	!

;	1331	!	NONE

;	1332	!

;	1333	! IMPLICIT OUTPUTS:

;	1334	!

;	1335	!	NONE

;	1336	!

;	1337	! ROUTINE VALUE:

;	1338	! COMPLETION CODES:

;	1339	!

;	1340	!	NONE

;	1341	!

;	1342	! SIDE EFFECTS:

;	1343	!

;	1344	!	NONE

;	1345	!

;	1346	!--

;	1347	

;	1348		BEGIN

;	1349		(STATE_OPTIONS)<0,1>=0;

;	1350		RETURN TRUE

;	1351		END;











					 0000 003CB 	    .ENTRY  ON_BLANKSKIP, Save nothing				      ; 1315

		  0000'  CF	       01  8A 003CD 	    BICB2   #1, PARSE_STATE+4					      ; 1349

		         50	       01  D0 003D2 	    MOVL    #1, R0						      ; 1350

					   04 003D5 	    RET     							      ; 1315



; Routine Size:  11 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 28

; Digital Equipment Corporation

;

;	1352	    GLOBAL ROUTINE OFF_BLANKSKIP=

;	1353	

;	1354	!++

;	1355	! FUNCTIONAL DESCRIPTION:

;	1356	!

;	1357	!	OFF_BLANKSKIP IS THE OPPOSITE OF ON_BLANKSKIP.

;	1358	!	IT IS A TPARSE ACTION ROUTINE THAT ALTERS THE

;	1359	!	PARSE STATE TABLE SO THAT BLANKS AND TABS BECOME

;	1360	!	SIGNIFICANT AS TOKENS.

;	1361	!

;	1362	! FORMAL PARAMETERS:

;	1363	!

;	1364	!	NONE

;	1365	!

;	1366	! IMPLICIT INPUTS:

;	1367	!

;	1368	!	NONE

;	1369	!

;	1370	! IMPLICIT OUTPUTS:

;	1371	!

;	1372	!	NONE

;	1373	!

;	1374	! ROUTINE VALUE:

;	1375	! COMPLETION CODES:

;	1376	!

;	1377	!	NONE

;	1378	!

;	1379	! SIDE EFFECTS:

;	1380	!

;	1381	!	NONE

;	1382	!

;	1383	!--

;	1384	

;	1385		BEGIN

;	1386		(STATE_OPTIONS)<0,1>=1;

;	1387		RETURN TRUE

;	1388		END;











					 0000 003D6 	    .ENTRY  OFF_BLANKSKIP, Save nothing				      ; 1352

		  0000'  CF	       01  88 003D8 	    BISB2   #1, PARSE_STATE+4					      ; 1386

		         50	       01  D0 003DD 	    MOVL    #1, R0						      ; 1387

					   04 003E0 	    RET     							      ; 1352



; Routine Size:  11 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 29

; Digital Equipment Corporation

;

;	1389	    GLOBAL ROUTINE SAVE_NUMBER=

;	1390	

;	1391	!++

;	1392	! FUNCTIONAL DESCRIPTION:

;	1393	!

;	1394	!	SAVE_NUMBER IS A TPARSE ACTION THAT VALIDATES THE

;	1395	!	RANGE OF A NUMERIC TOKEN AND THEN SAVES IT IN THE

;	1396	!	PARAMETER QUEUE. THE VALID RANGE OF A TOKEN IS 

;	1397	!	SPECIFIED BY THE STATE_PARAM LONGWORD. THE

;	1398	!	LEFT WORD IS THE INCLUSIVE LOWER BOUND AND THE

;	1399	!	RIGHT WORD IS THE INCLUSIVE UPPER BOUND.

;	1400	!

;	1401	! FORMAL PARAMETERS:

;	1402	!

;	1403	!	NONE

;	1404	!

;	1405	! IMPLICIT INPUTS:

;	1406	!

;	1407	!	STATE_NUMBER:THE NUMERIC PARAMETER BEING CONSIDERED

;	1408	!	STATE_PARAM:WORDPAIR INDICATING LEGAL RANGE OF

;	1409	!			NUMERIC PARAMETER

;	1410	!

;	1411	! IMPLICIT OUTPUTS:

;	1412	!

;	1413	!	NONE

;	1414	!

;	1415	! ROUTINE VALUE:

;	1416	! COMPLETION CODES:

;	1417	!

;	1418	!	NONE

;	1419	!

;	1420	! SIDE EFFECTS:

;	1421	!

;	1422	!	NONE

;	1423	!

;	1424	!--

;	1425	

;	1426		BEGIN

;	1427		IF

;	1428		    (.STATE_NUMBER LEQU .(STATE_PARAM)<0,16>)

;	1429		    AND

;	1430		    (.STATE_NUMBER GEQU .(STATE_PARAM)<16,16>)

;	1431		THEN

;	1432		    BEGIN                 

;	1433		    IN_QUEUE(.STATE_NUMBER);

;	1434		    RETURN TRUE

;	1435		    END

;	1436	    	ELSE

;	1437		    BEGIN

;	1438		    FAOOUT(ERRMSG_RANGE);

;	1439		    RETURN FALSE

;	1440		    END

;	1441		END;







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 29-1

; Digital Equipment Corporation

;







					 0000 003E1 	    .ENTRY  SAVE_NUMBER, Save nothing				      ; 1389

		         50	0000'  CF  D0 003E3 	    MOVL    PARSE_STATE+28, R0					      ; 1428

    0000'  CF	         10	       00  ED 003E8 	    CMPZV   #0, #16, PARSE_STATE+32, R0				      ;

				       50     003EE									      ;

				       14  1F 003EF 	    BLSSU   1$							      ;

    0000'  CF	         10	       00  ED 003F1 	    CMPZV   #0, #16, PARSE_STATE+34, R0				      ; 1430

				       50     003F7									      ;

				       0B  1A 003F8 	    BGTRU   1$							      ;

				       50  DD 003FA 	    PUSHL   R0							      ; 1433

		  FF0F   CF	       01  FB 003FC 	    CALLS   #1, IN_QUEUE					      ;

		         50	       01  D0 00401 	    MOVL    #1, R0						      ; 1434

					   04 00404 	    RET     							      ;

				0000'  CF  9F 00405 1$:     PUSHAB  ERRMSG_RANGE					      ; 1389

		  0000G  CF	       01  FB 00409 	    CALLS   #1, FAOOUT						      ; 1438

				       50  D4 0040E 	    CLRL    R0							      ; 1439

					   04 00410 	    RET     							      ; 1389



; Routine Size:  48 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 30

; Digital Equipment Corporation

;

;	1442	GLOBAL ROUTINE VALID_DEVICE=

;	1443	

;	1444	!++

;	1445	! FUNCTIONAL DESCRIPTION:

;	1446	!

;	1447	!	VALID_DEVICE IS AN ACTION ROUTINE CALLED BY THE

;	1448	!	STATE WHICH PARSES STANDARD NCP LINEID'S. AT

;	1449	!	THE POINT THE ROUTINE IS CALLED  TPARSE HAS

;	1450	!	ENCOUNTERED WHAT APPEARS TO BE A DEVICE TYPE

;	1451	!	MNEUMONIC. IF THIS ROUTINE CAN FIND THE MNEUMONIC

;	1452	!	IN ITS LIST OF LEGAL DEVICES, THE TEMPORARY TABLE

;	1453	!	LINE_TEMP IS INITIALIZED TO BE FURTHER FILLED BY

;	1454	!	THE REMAINDER OF THE PARSE.

;	1455	!

;	1456	! FORMAL PARAMETERS:

;	1457	!

;	1458	!	NONE

;	1459	!

;	1460	! IMPLICIT INPUTS:

;	1461	!

;	1462	!	LINE_CONFIG: AN INDEXIBLE STRUCTURE CONTAINING THREE

;	1463	!			TYPES OF DATA PER ENTRY

;	1464	!			1. DEVICE_NAMESIZE-SIZE OF DEVICE NAME

;	1465	!			2. DEVICE_NAME-ADDRESS OF DEVICE NAME

;	1466	!			3. DEVICE_CODE-NICE PROTOCOL CODE FOR DEVICE

;	1467	!		THE TABLE IS USED TO MAP ASCII LINE MNEMONICS INTO

;	1468	!		NICE PROTOCOL DEVICE CODES.

;	1469	!	TOKEN_COUNT:LENGTH OF ENCOUNTERED DEVICE MNEMONIC

;	1470	!	TOKEN_POINTER:ADDRESS OF MNEMONIC

;	1471	!

;	1472	! IMPLICIT OUTPUTS:

;	1473	!

;	1474	!	LINE_TEMP: A 5 BYTE VECTOR THAT IS FILLED DURING THE

;	1475	!		PARSE OF A STANDARD NCP LINE-ID. ITS FORMAT IS

;	1476	!		EQUIVALENT TO THAT OF A 'NICE' PROTOCOL

;	1477	!		STANDARD LINE-ID,THAT IS

;	1478	!			BYTE 0:2

;	1479	!			BYTE1:DEVICE CODE

;	1480	!			BYTE 2:CONTROLLER NUMBER

;	1481	!			BYTE 3:LINE ADDRESS

;	1482	!			BYTE 4:LINE ADDRESS

;	1483	!

;	1484	! ROUTINE VALUE:

;	1485	! COMPLETION CODES:

;	1486	!

;	1487	!	TRUE: IF ENCOUNTERED DEVICE MNEMONIC EXISTS IN THE

;	1488	!		KNOWN LIST OF DEVICES

;	1489	!

;	1490	! SIDE EFFECTS:

;	1491	!

;	1492	!	NONE

;	1493	!

;	1494	!--

;	1495	

;	1496	BEGIN



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 30-1

; Digital Equipment Corporation

;

;	1497	

;	1498	EXTERNAL

;	1499	    LINE_CONFIG:BLOCKVECTOR[LINETYPES,LINE_BLOCKSIZE,BYTE];	!TABLE OF KNOWN LINE DEVICE INFORMATION

;	1500	

;	1501	

;	1502	!+

;	1503	!LOOP THROUGH  LINE_CONFIG AND TRY TO MATCH USER SPECIFIED

;	1504	!MNEMONIC WITH A KNOWN MNEMONIC

;	1505	

;	1506	    INCR DEX FROM 0 TO LINETYPES-1 DO

;	1507		

;	1508		!+

;	1509		!BOTH MNEUMONIC LENGTH AND VALUE MUST COINSIDE

;	1510	

;	1511		    IF

;	1512			CH$EQL(

;	1513				.LINE_CONFIG[.DEX,DEVICE_NAMESIZE],

;	1514				LINE_CONFIG[.DEX,DEVICE_NAME],

;	1515				.TOKEN_COUNT,

;	1516				.TOKEN_POINTER)

;	1517		    THEN

;	1518			BEGIN

;	1519	

;	1520			!+

;	1521			!SET NICE LINE TYPE

;	1522	

;	1523			    LINE_TEMP[0]=STANDARD_LINEID;

;	1524	

;	1525			!+

;	1526			!SET NICE LINE DEVICE CODE

;	1527	

;	1528			    LINE_TEMP[1]=.LINE_CONFIG[.DEX,DEVICE_CODE];

;	1529	

;	1530			!+

;	1531			!INITIALIZE TO ZERO REMAINING

;	1532	

;	1533			    LINE_TEMP[LINEID_CTRL]=0;

;	1534			    LINE_TEMP[LINEID_NUM]=0;

;	1535			    LINE_TEMP[LINEID_ADR]=0;

;	1536	

;	1537			!+

;	1538			!RETURN SUCCESS

;	1539	

;	1540			    RETURN TRUE

;	1541			END;

;	1542	RETURN FALSE

;	1543	END;







							    .GLOBL  LINE_CONFIG



					 003C 00411 	    .ENTRY  VALID_DEVICE, Save R2,R3,R4,R5			      ; 1442

				       55  D4 00413 	    CLRL    DEX							      ; 1506

	   54	         55	       07  C5 00415 1$:     MULL3   #7, DEX, R4						      ; 1513



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 30-2

; Digital Equipment Corporation

;

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

	   00	  0000GCF44	       50  2D 0041F 	    CMPC5   R0, LINE_CONFIG+2[R4], #0, PARSE_STATE+16, -	      ; 1512

		  0000'  DF	0000'  CF     00426		    @PARSE_STATE+20					      ;

				       19  12 0042C 	    BNEQ    2$							      ;

		  0000'  CF	       01  90 0042E 	    MOVB    #1, LINE_TEMP					      ; 1523

		  0000'  CF	0000GCF44  90 00433 	    MOVB    LINE_CONFIG[R4], LINE_TEMP+1			      ; 1528

				0000'  CF  B4 0043B 	    CLRW    LINE_TEMP+2						      ; 1533

				0000'  CF  94 0043F 	    CLRB    LINE_TEMP+4						      ; 1535

		         50	       01  D0 00443 	    MOVL    #1, R0						      ; 1540

					   04 00446 	    RET     							      ;

	   CA	         55	       0E  F3 00447 2$:     AOBLEQ  #14, DEX, 1$					      ; 1506

				       50  D4 0044B 	    CLRL    R0							      ; 1542

					   04 0044D 	    RET     							      ; 1442



; Routine Size:  61 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 31

; Digital Equipment Corporation

;

;	1544	GLOBAL ROUTINE VALID_NUMBER=

;	1545	

;	1546	!++

;	1547	! FUNCTIONAL DESCRIPTION:

;	1548	!

;	1549	!	VALID_NUMBER IS AN ACTION ROUTINE CALLED DURING THE

;	1550	!	PARSING OF THE NUMERIC PORTIONS OF AN NCP STANDARD

;	1551	!	LINE-ID. VALID_NUMBER VALIDATES THE RANGE OF THE

;	1552	!	NUMBER ENCOUNTERED AND THEN STORES THE BINARY FORM

;	1553	!	INTO THE 'LINE_TEMP' ENTRY SPECIFIED BY THE        

;	1554	!	PARAMETER ENTRY.  THE PARAMETER ENTRY INDICATES WHICH

;	1555	!	LINE-ID NUMERIC PARAMETER IS BEING PARSED.

;	1556	!

;	1557	! FORMAL PARAMETERS:

;	1558	!

;	1559	!	NONE

;	1560	!

;	1561	! IMPLICIT INPUTS:

;	1562	!

;	1563	!	STATE_NUMBER:NUMERIC PARAMETER ENCOUNTERED

;	1564	!	STATE_PARAM:INDEX OF PARAMETER BEING PARSED

;	1565	!			INDEXES IMPLY A POSITION IN LINE_TEMP

;	1566	!			TO PLACE THE VALID RESULT. VALID VALUE ARE

;	1567	!			LINE_CTRL,LINE_NUMBER AND LINE_ADDRESS

;	1568	!

;	1569	! IMPLICIT OUTPUTS:

;	1570	!

;	1571	!	NONE

;	1572	!

;	1573	! ROUTINE VALUE:

;	1574	! COMPLETION CODES:

;	1575	!

;	1576	!	TRUE:IF THE NUMERIC IS IN THE 1 TO 255 RANGE

;	1577	!

;	1578	! SIDE EFFECTS:

;	1579	!

;	1580	!	NONE

;	1581	!

;	1582	!--

;	1583	

;	1584	BEGIN

;	1585	

;	1586	!+

;	1587	!VALIDATE RANGE OF NUMERIC

;	1588	

;	1589	IF

;	1590	    (.STATE_NUMBER GEQ MIN_LINENUMBER) OR

;	1591	    (.STATE_NUMBER LEQ MAX_LINENUMBER)

;	1592	

;	1593	THEN

;	1594	    BEGIN

;	1595	    LINE_TEMP[.STATE_PARAM]=.STATE_NUMBER;

;	1596	    RETURN TRUE

;	1597	    END

;	1598	ELSE



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 31-1

; Digital Equipment Corporation

;

;	1599	    RETURN FALSE

;	1600	END;











					 0000 0044E 	    .ENTRY  VALID_NUMBER, Save nothing				      ; 1544

		         51	0000'  CF  D0 00450 	    MOVL    PARSE_STATE+28, R1					      ; 1590

				       09  18 00455 	    BGEQ    1$							      ;

	      000000FF   8F	       51  D1 00457 	    CMPL    R1, #255						      ; 1591

				       0F  14 0045E 	    BGTR    2$							      ;

		         50	0000'  CF  9E 00460 1$:     MOVAB   LINE_TEMP, R0					      ; 1595

		  0000'DF40	       51  90 00465 	    MOVB    R1, @PARSE_STATE+32[R0]				      ;

		         50	       01  D0 0046B 	    MOVL    #1, R0						      ; 1596

					   04 0046E 	    RET     							      ;

				       50  D4 0046F 2$:     CLRL    R0							      ; 1599

					   04 00471 	    RET     							      ; 1544



; Routine Size:  36 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 32

; Digital Equipment Corporation

;

;	1601	GLOBAL ROUTINE SAVE_LINEID=

;	1602	

;	1603	!++

;	1604	! FUNCTIONAL DESCRIPTION:

;	1605	!

;	1606	!	SAVE_LINEID IS CALLED AS AN ACTION ROUTINE FOLLOWING

;	1607	!	SUCESSFUL PARSE OF AN NCP STANDARD LINE-ID. THE ROUTINE

;	1608	!	MOVES THE PARSED FORM OF THE LINE-ID FROM THE LINE_TEMP

;	1609	!	TABLE TO THE PARAMETER QUEUE

;	1610	!

;	1611	! FORMAL PARAMETERS:

;	1612	!

;	1613	!	NONE

;	1614	!

;	1615	! IMPLICIT INPUTS:

;	1616	!

;	1617	!	LINE_TEMP:A 5 BYTE VECTOR HOLDING STANDARD FORMAT

;	1618	!		NICE LINE-ID

;	1619	!

;	1620	! IMPLICIT OUTPUTS:

;	1621	!

;	1622	!	NONE

;	1623	!

;	1624	! ROUTINE VALUE:

;	1625	! COMPLETION CODES:

;	1626	!

;	1627	!	NONE

;	1628	!

;	1629	! SIDE EFFECTS:

;	1630	!

;	1631	!	NONE

;	1632	!

;	1633	!--

;	1634	

;	1635	BEGIN

;	1636	INCR DEX FROM 0 TO 4 DO

;	1637	    IN_QUEUE(.LINE_TEMP[.DEX]);

;	1638	RETURN TRUE

;	1639	END;











					 0004 00472 	    .ENTRY  SAVE_LINEID, Save R2				      ; 1601

				       52  D4 00474 	    CLRL    DEX							      ; 1636

		         7E	0000'CF42  9A 00476 1$:     MOVZBL  LINE_TEMP[DEX], -(SP)				      ; 1637

		  FE8F   CF	       01  FB 0047C 	    CALLS   #1, IN_QUEUE					      ;

	   F1	         52	       04  F3 00481 	    AOBLEQ  #4, DEX, 1$						      ; 1636

		         50	       01  D0 00485 	    MOVL    #1, R0						      ; 1638

					   04 00488 	    RET     							      ; 1601



; Routine Size:  23 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 32-1

; Digital Equipment Corporation

;



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 33

; Digital Equipment Corporation

;

;	1640	GLOBAL ROUTINE SAVE_LINENAME=

;	1641	

;	1642	!++

;	1643	! FUNCTIONAL DESCRIPTION:

;	1644	!

;	1645	!	SAVE_LINENAME IS AN ACTION ROUTINE  CALLED AT THE END

;	1646	!	OF THE SUCESSFUL PARSE FO A LOCAL NCP LINENAME( A STRING

;	1647	!	OF THE FORM "STRING"). THE ROUTINE IN_QUEUES THE VALUE 

;	1648	!	FROM LINENAME[0] ALONG WITH THE COUNTED STRING THAT

;	1649	!	FOLLOWS.

;	1650	!

;	1651	! FORMAL PARAMETERS:

;	1652	!

;	1653	!	NONE

;	1654	!

;	1655	! IMPLICIT INPUTS:

;	1656	!

;	1657	!	LINE_NAME:A VECTOR HOLDING A LOCAL LINENAME IN THE 

;	1658	!	FORMAT SPECIFIED IN THE NICE PROTOCOL

;	1659	!

;	1660	! IMPLICIT OUTPUTS:

;	1661	!

;	1662	!	NONE

;	1663	!

;	1664	! ROUTINE VALUE:

;	1665	! COMPLETION CODES:

;	1666	!

;	1667	!	ROUTINE ALWAYS RETURNS TRUE.

;	1668	!

;	1669	! SIDE EFFECTS:

;	1670	!

;	1671	!	NONE

;	1672	!

;	1673	!--

;	1674	

;	1675	BEGIN

;	1676	INCR DEX FROM 0 TO (.LINE_NAME[1]+1) DO

;	1677	    IN_QUEUE(.LINE_NAME[.DEX]);

;	1678	RETURN TRUE

;	1679	END;











					 000C 00489 	    .ENTRY  SAVE_LINENAME, Save R2,R3				      ; 1640

		         53	0000'  CF  9A 0048B 	    MOVZBL  LINE_NAME+1, R3					      ; 1676

				       53  D6 00490 	    INCL    R3							      ;

		         52	       01  CE 00492 	    MNEGL   #1, DEX						      ;

				       0B  11 00495 	    BRB     2$							      ;

		         7E	0000'CF42  9A 00497 1$:     MOVZBL  LINE_NAME[DEX], -(SP)				      ; 1677

		  FE6E   CF	       01  FB 0049D 	    CALLS   #1, IN_QUEUE					      ;

	   F1	         52	       53  F3 004A2 2$:     AOBLEQ  R3, DEX, 1$						      ; 1676

		         50	       01  D0 004A6 	    MOVL    #1, R0						      ; 1678

					   04 004A9 	    RET     							      ; 1640



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 33-1

; Digital Equipment Corporation

;



; Routine Size:  33 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 34

; Digital Equipment Corporation

;

;	1680	GLOBAL ROUTINE HOLD_LINENAME=

;	1681	

;	1682	!++

;	1683	! FUNCTIONAL DESCRIPTION:

;	1684	!

;	1685	!	HOLD_LINENAME IS AN ACTION ROUTINE CALLED DURING THE 

;	1686	!	PARSE OF THE STRING PORTION OF A LOCAL LINE NAME.

;	1687	!	THE STRING INDICATED BY THE TPARSE STATE TABLE IS

;	1688	!	MOVED TO THE HOLDING VECTOR LINE_NAME. THE NAME WILL

;	1689	!	LATER BE SAVED ON THE PARAMETER QUEUE ONLY IF THE ENTIRE

;	1690	!	LINENAME PARSES SUCESSFULLY.

;	1691	!

;	1692	! FORMAL PARAMETERS:

;	1693	!

;	1694	!	NONE

;	1695	!

;	1696	! IMPLICIT INPUTS:

;	1697	!

;	1698	!	TOKEN_COUNT:THE LENGTH OF CURRENT PARSED TOKEN

;	1699	!	TOKEN_POINTER:THE ADDRESS OF THE CURRENT TOKEN

;	1700	!

;	1701	! IMPLICIT OUTPUTS:

;	1702	!

;	1703	!	NONE

;	1704	!

;	1705	! ROUTINE VALUE:

;	1706	! COMPLETION CODES:

;	1707	!

;	1708	!	TRUE IF THE LINENAME DOES NOT SUCCEED ITS MAXIMUM SIZE

;	1709	!

;	1710	! SIDE EFFECTS:

;	1711	!

;	1712	!	NONE

;	1713	!

;	1714	!--

;	1715	

;	1716	BEGIN

;	1717	

;	1718	    !+

;	1719	    !MAKE SURE TOKEN ISNT TOO LARGE

;	1720	

;	1721		IF

;	1722		    .TOKEN_COUNT LEQ LID$S_NAME

;	1723	        THEN

;	1724		    BEGIN

;	1725		    LINE_NAME[0]=TEXT_LINEID;	!CODE FOR TEXT TYPE OF LINEID

;	1726		    LINE_NAME[1]=.TOKEN_COUNT;  !LENGTH OF NAME

;	1727		    CH$MOVE(.TOKEN_COUNT,.TOKEN_POINTER,LINE_NAME[2]);

;	1728		    RETURN TRUE

;	1729		    END

;	1730		ELSE

;	1731		    RETURN FALSE

;	1732	END;







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 34-1

; Digital Equipment Corporation

;







					 003C 004AA 	    .ENTRY  HOLD_LINENAME, Save R2,R3,R4,R5			      ; 1680

		         50	0000'  CF  D0 004AC 	    MOVL    PARSE_STATE+16, R0					      ; 1722

		         10	       50  D1 004B1 	    CMPL    R0, #16						      ;

				       16  14 004B4 	    BGTR    1$							      ;

		  0000'  CF	       02  90 004B6 	    MOVB    #2, LINE_NAME					      ; 1725

		  0000'  CF	       50  90 004BB 	    MOVB    R0, LINE_NAME+1					      ; 1726

    0000'  CF	  0000'  DF	       50  28 004C0 	    MOVC3   R0, @PARSE_STATE+20, LINE_NAME+2			      ; 1727

		         50	       01  D0 004C8 	    MOVL    #1, R0						      ; 1728

					   04 004CB 	    RET     							      ;

				       50  D4 004CC 1$:     CLRL    R0							      ; 1731

					   04 004CE 	    RET     							      ; 1680



; Routine Size:  37 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 35

; Digital Equipment Corporation

;

;	1733	GLOBAL ROUTINE SAVE_PARAMETER=

;	1734	

;	1735	!++

;	1736	! FUNCTIONAL DESCRIPTION:

;	1737	!

;	1738	!	SAVE_PARAMETER IS AN ACTION ROUTINE THAT SAVE ON THE

;	1739	!	PARAMETER QUEUE WHATEVER IT FINDS IN STATE_PARAM.

;	1740	!

;	1741	! FORMAL PARAMETERS:

;	1742	!

;	1743	!	NONE

;	1744	!

;	1745	! IMPLICIT INPUTS:

;	1746	!

;	1747	!	STATE_PARAM:A LONGWORD IN THE TPARSE STATE TABLE

;	1748	!		THAT SAVE_PARAMETER SAVES

;	1749	!

;	1750	! IMPLICIT OUTPUTS:

;	1751	!

;	1752	!	NONE

;	1753	!

;	1754	! ROUTINE VALUE:

;	1755	! COMPLETION CODES:

;	1756	!

;	1757	!	NONE

;	1758	!

;	1759	! SIDE EFFECTS:

;	1760	!

;	1761	!	NONE

;	1762	!

;	1763	!--

;	1764	

;	1765	BEGIN

;	1766	IN_QUEUE(.STATE_PARAM);

;	1767	RETURN TRUE

;	1768	END;











					 0000 004CF 	    .ENTRY  SAVE_PARAMETER, Save nothing			      ; 1733

				0000'  CF  DD 004D1 	    PUSHL   PARSE_STATE+32					      ; 1766

		  FE36   CF	       01  FB 004D5 	    CALLS   #1, IN_QUEUE					      ;

		         50	       01  D0 004DA 	    MOVL    #1, R0						      ; 1767

					   04 004DD 	    RET     							      ; 1733



; Routine Size:  15 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 36

; Digital Equipment Corporation

;

;	1769	    GLOBAL ROUTINE INIT_COMMAND:NOVALUE=

;	1770	

;	1771	!++

;	1772	! FUNCTIONAL DESCRIPTION:

;	1773	!

;	1774	!	INIT_COMMAND IS CALLED FROM THE MAIN ROUTINE AT

;	1775	!	THE BEGINNING OF EACH COMMAND PARSE TO INITIALIZE

;	1776	!	VARIOUS RELEVANT STORAGE.

;	1777	!

;	1778	! FORMAL PARAMETERS:

;	1779	!

;	1780	!	NONE

;	1781	!

;	1782	! IMPLICIT INPUTS:

;	1783	!

;	1784	!	NONE

;	1785	!

;	1786	! IMPLICIT OUTPUTS:

;	1787	!

;	1788	!	NONE

;	1789	!

;	1790	! ROUTINE VALUE:

;	1791	! COMPLETION CODES:

;	1792	!

;	1793	!	NONE

;	1794	!

;	1795	! SIDE EFFECTS:

;	1796	!

;	1797	!	NONE

;	1798	!

;	1799	!--

;	1800	

;	1801		BEGIN

;	1802		PUTTER=0;

;	1803		TAKER=0;

;	1804		FLAGS=0;

;	1805		VERB_INDEX=0;

;	1806		STRING_COUNT=0;

;	1807		STRING_POINTER=0;

;	1808	        PRIVILEGE_MASK[0]=PRIVILEGE_MASK[1]=0

;	1809		END;











					 0000 004DE 	    .ENTRY  INIT_COMMAND, Save nothing				      ; 1769

				0000'  CF  7C 004E0 	    CLRQ    PUTTER						      ; 1802

				0000G  CF  D4 004E4 	    CLRL    FLAGS						      ; 1804

				0000G  CF  D4 004E8 	    CLRL    VERB_INDEX						      ; 1805

				0000'  CF  7C 004EC 	    CLRQ    PARSE_STATE+8					      ; 1806

				0000'  CF  7C 004F0 	    CLRQ    PRIVILEGE_MASK					      ; 1808

					   04 004F4 	    RET     							      ; 1769



; Routine Size:  23 bytes



; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 36-1

; Digital Equipment Corporation

;







; Bliss-32 7.352	Saturday 22-AUG-1978 02:04:30	DBB3:[NCP.SRC]NCPACTION.B32;11					Page 37

; Digital Equipment Corporation

;

;	1810	END				!End of module

;	1811	ELUDOM













;				       PSECT SUMMARY

;

;	Name		 Bytes			       Attributes

;

;  $PLIT$         	   332  NOWRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $OWN$          	  1388    WRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $GLOBAL$       	   332    WRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $CODE$         	  1269  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        38         1       145











; Size:		1269 code + 2052 data bytes

; Run Time:	00:41.5

; Elapsed Time:	01:19.9

; Memory Used:	253 pages

; Compilation Complete

