Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/nml/nmlrcv.lst
There are no other files named nmlrcv.lst in the archive.
								24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page   1
								 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (1)

;	  0001	! NET:<PECKHAM.DEVELOPMENT>NMLRCV.BLI.8 25-Jun-82 19:43:17, Edit by PECKHAM
;	  0002	!
;	  0003	! Ident 11.
;	  0004	! Reduce NICE_BUFFER_LENGTH from 500 to 300 bytes.
;	  0005	! Define a parameter block so that access control can be passed from
;	  0006	! WAIT_FOR_CONNECT to READ_NICE_REQUEST (also good for code optimization). 
;	  0007	! Optimize linkages.
;	  0008	!
;	  0009	! NET:<PECKHAM.DEVELOPMENT>NMLRCV.BLI.3 23-Jun-82 11:04:21, Edit by PECKHAM
;	  0010	!
;	  0011	! Ident 10.
;	  0012	! Merge QUEUE_REQUEST into READ_NICE_REQUEST so that request block
;	  0013	! can be handled there.
;	  0014	! Set privledged bits on for now, later user info will be checked.
;	  0015	! Fix DEQUEUE_REQUEST to conditionally release memory from request block.
;	  0016	!
;	  0017	! <BRANDT.DEVELOPMENT>NMLRCV.BLI.2 7-Jun-82 11:21:45, Edit by BRANDT
;	  0018	!
;	  0019	! Ident 09.
;	  0020	!   1) In DEQUEUE_RESPONSE release memory allocated for node_id
;	  0021	!      in the request block.  Before this edit, this memory was
;	  0022	!      released in NML$NICE_EXECUTE.  Doing so allowed the memory to
;	  0023	!      be reallocated while still being referenced as a node_id.
;	  0024	!
;	  0025	! NET:<VOBA.NML.DEVELOPMENT>NMLRCV.BLI.3 30-Mar-82 10:48:02, Edit by VOBA
;	  0026	!
;	  0027	! Ident 08.
;	  0028	! Update copyright date and clean up code.
;	  0029	!
;	  0030	!NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLRCV.BLI.21 20-Nov-81 13:39:24, Edit by WEBBER
;	  0031	!
;	  0032	! Ident 07.
;	  0033	! Fix ident 06 to use only addresses, not pointers, in memory gets and
;	  0034	! retrieves.
;	  0035	!
;	  0036	!NET:<DECNET20-V3P1.NML>NMLRCV.BLI.2 21-Oct-81 09:49:14, Edit by WEBBER
;	  0037	!
;	  0038	! Ident 06.
;	  0039	! Add response buffer and its length as parameters to NETWORK_OPEN.
;	  0040	!
;	  0041	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLRCV.BLI.18  2-Oct-81 17:42:49, Edit by GUNN
;	  0042	!
;	  0043	! Ident 05.
;	  0044	! Fix typo in code returning $NICE$ERR_IID response code.
;	  0045	!
;	  0046	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLRCV.BLI.15 12-Aug-81 12:52:01, Edit by JENNESS
;	  0047	!   
;	  0048	! Ident 04.
;	  0049	! Fix CHECK_VERSION to properly use the CB_DATA pointer as a pointer
;	  0050	! not as the address of the data buffer.
;	  0051	!
;	  0052	! NET:<DECNET20-V3P1.NML>NMLRCV.BLI.2  1-Jun-81 15:14:49, Edit by GUNN
								24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page   2
								 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (1)

;	  0053	!
;	  0054	! Ident 03.
;	  0055	! Fix problem preventing completion of SHOW KNOWN xxx command to a
;	  0056	! remote node. Make DEQUEUE_RESPONSE not release RB until the command
;	  0057	! processing is complete as indicated by RB_STATE.
;	  0058	!
;	  0059	! NET:<DECNET20-V3P1.NML>NMLRCV.BLI.3  3-Mar-81 16:25:05, Edit by GUNN
;	  0060	!
;	  0061	! Remove references to RB_NICE_SIZE and RB_DATA_SIZE and replace with
;	  0062	! RB_aaa_ALLOCATION field references.
;	  0063	!
;	  0064	! NET:<DECNET20-V3P1.NMU>NMLRCV.BLI.5  3-Feb-81 10:04:32, Edit by JENNESS
;	  0065	!    Remove literal definition for NICE_OBJECT (now in NMARCH).
;	  0066	!    Remove DEBUG logical link descriptor (NMUNET now creates user name
;	  0067	!	descriptor if .135 neq 0).
;	  0068	!    Fix access control validation to work properly.  NMU$NETWORK_VALIDATE
;	  0069	!	returns $true/$false instead of 0/not 0.
;	  0070	!    Add error code for 'ACCESS NOT PERMITTED' on connect reject (SC$_ANP).
;	  0071	!
		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page   3
								 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (2)

;	  0072	%title 'NMLRCV -- NICE Remote Message Receiver'
;	  0073	module NMLRCV	(
;	  0074			ident = 'X03.11'
;	  0075			) =
;	  0076	begin
;	  0077	
;	  0078	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0079	!                    DIGITAL EQUIPMENT CORPORATION
;	  0080	!                        Maynard, Massachusetts
;	  0081	!
;	  0082	!     This software is furnished under a license and may  be  used
;	  0083	!     and copied only in accordance with the terms of such license
;	  0084	!     and with the inclusion of the above copyright notice.   This
;	  0085	!     software  or any other copies thereof may not be provided or
;	  0086	!     otherwise made available to any other person.  No  title  to
;	  0087	!     and ownership of the software is hereby transferred.
;	  0088	!
;	  0089	!     The information  in  this  software  is  subject  to  change
;	  0090	!     without  notice  and should not be construed as a commitment
;	  0091	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0092	!
;	  0093	!     DIGITAL assumes no responsibility for the use or reliability
;	  0094	!     of  its  software  on  equipment  which  is  not supplied by
;	  0095	!     DIGITAL.
;	  0096	!
;	  0097	
;	  0098	!++
;	  0099	! FACILITY:	DECnet-10/20 V3.0 Network Management Layer (NML)
;	  0100	!
;	  0101	! ABSTRACT:
;	  0102	!
;	  0103	!	This module performs the NML NICE remote request receive function.
;	  0104	!
;	  0105	! ENVIRONMENT:	TOPS-10/20 & MCB/RSX11 User mode under NML
;	  0106	!
;	  0107	! AUTHOR: Dale C. Gunn , CREATION DATE: 20-Jan-81
;	  0108	!
;	  0109	! MODIFIED BY:
;	  0110	!
;	  0111	!	, : VERSION
;	  0112	! 01	-
;	  0113	!--
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page   4
X03.11								 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (3)

;	  0114	
;	  0115	!
;	  0116	! INCLUDE FILES:
;	  0117	!
;	  0118	
;	  0119	library 'NMLLIB';                       ! All required definitions
;	  0120	require 'NMLEXT';                       ! NML External routines
;	  0226	
;	  0227	!
;	  0228	! TABLE OF CONTENTS
;	  0229	!
;	  0230	
;	L 0231	%if %bliss (bliss16)
;	  0232	%then linkage NML_LKG_PB = jsr (register = 5);
;	U 0233	%else macro NML_LKG_PB = bliss36c %;
;	  0234	%fi
;	  0235	
;	  0236	forward routine
;	  0237	        NML$RECEIVE_NICE : novalue;
;	  0238	
;	  0239	forward routine
;	  0240	        WAIT_FOR_CONNECT : NML_LKG_PB,  ! Wait for connection to target task
;	  0241	        CHECK_VERSION : NML_LKG_PB,     ! Validate network management version
;	  0242	        READ_NICE_REQUEST : NML_LKG_PB novalue, ! Read a NICE request message
;	  0243	        DEQUEUE_REQUEST : novalue;      ! Remove completed request from queue
;	  0244	
;	  0245	!
;	  0246	! MACROS:
;	  0247	!
;	  0248	
;	  0249	!
;	  0250	! EQUATED SYMBOLS:
;	  0251	!
;	  0252	
;	  0253	literal
;	  0254	       NICE_BUFFER_LENGTH = 300,        ! NICE request buffer length in bytes
;	  0255	       NICE_BUFFER_SIZE = ch$allocation (NICE_BUFFER_LENGTH,8), ! In words
;	  0256	       NICE_BUFFER_ALLOCATION = NICE_BUFFER_SIZE * %upval; ! In addr units
;	  0257	
;	  0258	!
;	  0259	! Parameter Block
;	  0260	!
;	  0261	
;	  0262	$show (fields);                         ! Turn on XPORT field display
;	  0263	$show (literals);                       ! Turn on XPORT literal display
;	  0264	
;	  0265	$field
;	  0266	    PARAMETER_FIELDS =
;	  0267	        set
;	L 0268	        PB_BASE = [$sub_block (0)],
; %PRINT:				  [0,0,0,0]   (+%O'0')
;	L 0269	        PB_LINK_HANDLE = [$short_integer],
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page   5
X03.11								 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (3)

; %PRINT:				  [0,0,16,1]   (+%O'0')
;	L 0270	        PB_CBLK = [$address],
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	L 0271	        PB_OPTD_PTR = [$pointer],
; %PRINT:				  [2,0,16,0]   (+%O'4')
;	L 0272	        PB_OPTD_CNT = [$short_integer],
; %PRINT:				  [3,0,16,1]   (+%O'6')
;	L 0273	        PB_ACCESS = [$tiny_integer],
; %PRINT:				  [4,0,8,1]   (+%O'10')
;	L 0274	        PB_OBJECT = [$byte]
; %PRINT:				  [4,8,8,0]   (+%O'11')
;	  0275	        tes;
;	  0276	
;	  0277	literal
;	L 0278	    PARAMETER_BLOCK_SIZE = $field_set_size,
; %PRINT:				  5 fullwords
;	L 0279	    PARAMETER_BLOCK_ALLOCATION = $field_set_units;
; %PRINT:				  10 addressable units
;	  0280	
;	  0281	macro
;	  0282	     PARAMETER_BLOCK = block [PARAMETER_BLOCK_SIZE] field (PARAMETER_FIELDS) %;
;	  0283	
;	  0284	$show (none);                           ! Turn off XPORT display
;	  0285	
;	  0286	!
;	  0287	! OWN STORAGE:
;	  0288	!
;	  0289	
;	  0290	!
;	  0291	! EXTERNAL REFERENCES:
;	  0292	!
;	  0293	
;	  0294	external routine
;	  0295	         NMU$NETWORK_UTILITIES;
;	  0296	
;	  0297	external
;	  0298	        NMLVER,                         ! Network Managment version number
;	  0299	        DECECO,                         ! Digital ECO number
;	  0300	        USRECO;                         ! User ECO number
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page   6
X03.11		NML$RECEIVE_NICE as NL_RCV			 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (4)

;	  0301	%global_routine ('NML$RECEIVE_NICE', TASK, RESOURCE) : novalue =
;	  0302	
;	  0303	!++
;	  0304	! FUNCTIONAL DESCRIPTION:
;	  0305	!
;	  0306	!	This routine is the top level of the Network Management
;	  0307	!	NICE request listener. The listener is responsible for
;	  0308	!       accepting connections from remote NMLs, verifying their
;	  0309	!       privilege to perform NM functions based on access control
;	  0310	!       information provided with the connection.
;	  0311	!
;	  0312	! FORMAL PARAMETERS
;	  0313	!
;	  0314	!	TASK	 - Address of task block for this task
;	  0315	!	RESOURCE - Address of cell for this task to use as
;	  0316	!                  a resource variable.
;	  0317	!
;	  0318	! IMPLICIT INPUTS
;	  0319	!
;	  0320	!	NONE.
;	  0321	!
;	  0322	! ROUTINE VALUE:
;	  0323	!
;	  0324	!	NONE.
;	  0325	!
;	  0326	! SIDE EFFECTS:
;	  0327	!
;	  0328	!	NONE.
;	  0329	!
;	  0330	!--
;	  0331	
;	  0332	    begin
;	  0333	
;	  0334	    local
;	  0335	         PB : PARAMETER_BLOCK,
;	  0336	         PBA,
;	  0337	         BUFFER_PTR,                    ! Pointer to acceptance data buffer
;	  0338	         BUFFER : ch$sequence (3,8);    ! Acceptance data buffer, NM Version
;	  0339	
;	  0340	!
;	  0341	! Put our Network Management version number into the buffer
;	  0342	! to send as the optional data on a link connect acceptance.
;	  0343	!
;	  0344	
;	  0345	    PB [PB_OBJECT] = NICE_OBJECT;
;	  0346	    PB [PB_OPTD_PTR] = ch$ptr (BUFFER,, 8);
;	  0347	    BUFFER_PTR = .PB [PB_OPTD_PTR];     ! Point to connect accept buffer
;	  0348	    PUTB (.NMLVER, BUFFER_PTR);         ! Store NM major version
;	  0349	    PUTB (.DECECO, BUFFER_PTR);         ! Store our minor (ECO) version
;	  0350	    PUTB (.USRECO, BUFFER_PTR);         ! Store customer ECO number
;	  0351	    PB [PB_OPTD_CNT] = ch$diff (.BUFFER_PTR, .PB [PB_OPTD_PTR]);
;	  0352	
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page   7
X03.11		NML$RECEIVE_NICE as NL_RCV			 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (4)

;	  0353	!
;	  0354	! Loop forever, wait for link connected, read requests until disconnected.
;	  0355	!
;	  0356	
;	  0357	    PBA = PB [PB_BASE];                 ! For BLISS-16 optimization
;	  0358	
;	  0359	    while $TRUE
;	  0360	    do begin
;	  0361	       WAIT_FOR_CONNECT (.PBA);
;	  0362	       READ_NICE_REQUEST (.PBA);
;	  0363	       NMU$NETWORK_CLOSE (.PB [PB_LINK_HANDLE], 0, 0);
;	  0364	       end;
;	  0365	
;	  0366	    end;				! End of NML$RECEIVE_NICE


						.TITLE	NMLRCV NMLRCV -- NICE Remote Message Receiver
						.IDENT	/X03.11/

						.GLOBL	US.CREATE, US.ABORT, US.FINI, US.COMPLETE
						.GLOBL	US.ERROR, US.INSERT, US.REMOVE
						.GLOBL	US.QRESET, US.QQINS, US.QQREM
						.GLOBL	US.QQSET, US.QQEXT, US.EVENT, US.WAIT
						.GLOBL	US.FLAG, US.SLEEP, US.CURRENT
						.GLOBL	US.DESCHEDULE, UM.RESET, UM.INITIALIZE
						.GLOBL	UM.GET, UM.RELEASE, UQ.RESET, UQ.INSERT
						.GLOBL	UQ.REMOVE, UQ.EXTRACT, UQ.LENGTH
						.GLOBL	UQ.SCAN, UQ.SEXTRACT, NL.INIT
						.GLOBL	NL.RENTER, NL.REMOVE, NL.FINISH
						.GLOBL	UN.INIT, UN.LOCAL, UN.OPEN, UN.ACCEPT
						.GLOBL	UN.REJECT, UN.READ, UN.WRITE, UN.ABORT
						.GLOBL	UN.CLOSE, UN.STATUS, UN.VALIDATE
						.GLOBL	NMLVER, DECECO, USRECO


						.SBTTL	NL.RCV NML$RECEIVE_NICE as NL_RCV
000000						.PSECT	$CODE$,  RO 

000000	010546 				NL.RCV::MOV	R5,-(SP)			;					0301
000002	162706  000016 				SUB	#16,SP
000006	112766  000023  000015 			MOVB	#23,15(SP)			; *,PB+10				0345
000014	010666  000010 				MOV	SP,10(SP)			; BUFFER,PB+4				0346
000020	010600 					MOV	SP,R0				; PB+4,BUFFER.PTR			0347
000022	116720  000000G				MOVB	NMLVER,(R0)+			; *,BUFFER.PTR				0348
000026	116720  000000G				MOVB	DECECO,(R0)+			; *,BUFFER.PTR				0349
000032	116720  000000G				MOVB	USRECO,(R0)+			; *,BUFFER.PTR				0350
000036	010066  000012 				MOV	R0,12(SP)			; BUFFER.PTR,PB+6			0351
000042	160666  000012 				SUB	SP,12(SP)			; PB+4,PB+6
000046	012705  000004 				MOV	#4,R5				; *,PBA					0357
000052	060605 					ADD	SP,R5				; PB,PBA
000054	004767  000000V			1$:	JSR	PC,WAIT.FOR.CONNECT		;					0361
000060	004767  000000V				JSR	PC,READ.NICE.REQUEST		;					0362
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page   8
X03.11		NML$RECEIVE_NICE as NL_RCV			 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (4)

000064	016646  000004 				MOV	4(SP),-(SP)			; PB,*					0363
000070	005046 					CLR	-(SP)
000072	005046 					CLR	-(SP)
000074	004767  000000G				JSR	PC,UN.CLOSE
000100	062706  000006 				ADD	#6,SP				;					0360
000104	000763 					BR	1$				;					0359
; Routine Size:  35 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  12 words
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page   9
X03.11		WAIT_FOR_CONNECT				 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (5)

;	  0367	%routine ('WAIT_FOR_CONNECT', PB : ref PARAMETER_BLOCK) : NML_LKG_PB =
;	  0368	
;	  0369	!++
;	  0370	! FUNCTIONAL DESCRIPTION:
;	  0371	!
;	  0372	!	This routine opens a target link for connection by
;	  0373	!	another task.  When a connect is attempted the user
;	  0374	!	access rights are checked and the source task's version
;	  0375	!	number is checked.  If all checks are ok, then the
;	  0376	!	link is accepted (sending the optional acceptance data)
;	  0377	!	and the LINK_ID is returned.  If any check fails,
;	  0378	!	a reject is sent with the appropriate error code.
;	  0379	!
;	  0380	! FORMAL PARAMETERS
;	  0381	!
;	  0382	!	PB - Parameter block
;	  0383	!
;	  0384	! IMPLICIT INPUTS
;	  0385	!
;	  0386	!	NONE.
;	  0387	!
;	  0388	! ROUTINE VALUE:
;	  0389	!
;	  0390	!	The LINK_ID of the opened link.
;	  0391	!
;	  0392	! SIDE EFFECTS:
;	  0393	!
;	  0394	!	NONE.
;	  0395	!
;	  0396	!--
;	  0397	
;	  0398	    begin
;	  0399	
;	  0400	    local
;	  0401	         CBLK: CONNECT_BLOCK;           ! Link connection block
;	  0402	
;	  0403	!
;	  0404	! Set the object code and clear the task name and descriptor.
;	  0405	!
;	  0406	
;	  0407	    PB [PB_CBLK] = CBLK;
;	  0408	    CBLK[CB_OBJECT] = .PB [PB_OBJECT];
;	  0409	    CBLK[CB_TASK_LENGTH] = 0;
;	  0410	    CBLK[CB_DESCRIPTOR_LENGTH] = 0;
;	  0411	    CBLK[CB_HOST_LENGTH] = 0;
;	  0412	    CBLK[CB_USERID_LENGTH] = 0;
;	  0413	    CBLK[CB_PASSWORD_LENGTH] = 0;
;	  0414	    CBLK[CB_ACCOUNT_LENGTH] = 0;
;	  0415	    CBLK[CB_DATA_LENGTH] = 0;
;	  0416	
;	  0417	    while $true                         ! Loop until the link is connected
;	  0418	    do begin
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  10
X03.11		WAIT_FOR_CONNECT				 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (5)

;	  0419	
;	  0420	       local
;	  0421	           REASON;                      ! Link rejection reason
;	  0422	
;	  0423	       REASON = 0;
;	  0424	       PB [PB_LINK_HANDLE] = NMU$NETWORK_OPEN (TARGET_LINK, CBLK, 0, 0, 0);
;	  0425	
;	  0426	!
;	  0427	! Check for user access and version number ok
;	  0428	!
;	  0429	
;	  0430		if (.PB [PB_LINK_HANDLE] gtr 0)
;	  0431	        and ((REASON = CHECK_VERSION (PB [PB_BASE])) eql 0)
;	  0432		then begin
;	  0433	             PB [PB_ACCESS] = NMU$NETWORK_VALIDATE (CBLK);
;	  0434	             NMU$NETWORK_ACCEPT (.PB [PB_LINK_HANDLE], .PB [PB_OPTD_CNT], .PB [PB_OPTD_PTR]);
;	  0435	             exitloop;
;	  0436	             end
;	  0437		else begin
;	  0438	             local REJECT_BUFFER, REJECT_PTR;
;	  0439	
;	  0440	             REJECT_PTR = ch$ptr (REJECT_BUFFER,,8);
;	  0441	             ch$wchar_a (.REASON, REJECT_PTR);
;	  0442	             NMU$NETWORK_REJECT (.PB [PB_LINK_HANDLE],
;	  0443	                                 SC$_ANP,
;	  0444	                                 1,
;	  0445	                                 ch$ptr (REJECT_BUFFER,,8));
;	  0446	             NMU$NETWORK_CLOSE (.PB [PB_LINK_HANDLE], 0, 0);
;	  0447	             end;
;	  0448		end;
;	  0449	!
;	  0450	! Return handle (id) of link that was opened and accepted.
;	  0451	!
;	  0452	
;	  0453	    return .PB [PB_LINK_HANDLE];
;	  0454	    end;				! End of WAIT_FOR_CONNECT


						.SBTTL	WAIT.FOR.CONNECT WAIT_FOR_CONNECT
000000	010146 				WAIT.FOR.CONNECT:
						MOV	R1,-(SP)			;					0367
000002	162706  000230 				SUB	#230,SP
000006	011765  000002 				MOV	(PC),2(R5)			; *,*(PB)				0407
000012	060665  000002 				ADD	SP,2(R5)			; CBLK,*(PB)
000016	116566  000011  000006 			MOVB	11(R5),6(SP)			; *(PB),CBLK+4				0408
000024	105066  000007 				CLRB	7(SP)				; CBLK+4
000030	005066  000012 				CLR	12(SP)				; CBLK+10				0409
000034	005066  000036 				CLR	36(SP)				; CBLK+34				0410
000040	005066  000004 				CLR	4(SP)				; CBLK+2				0411
000044	005066  000016 				CLR	16(SP)				; CBLK+14				0412
000050	005066  000032 				CLR	32(SP)				; CBLK+30				0413
000054	005066  000026 				CLR	26(SP)				; CBLK+24				0414
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  11
X03.11		WAIT_FOR_CONNECT				 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (5)

000060	005066  000022 				CLR	22(SP)				; CBLK+20				0415
000064	005001 				1$:	CLR	R1				; REASON				0423
000066	012746  000001 				MOV	#1,-(SP)			;					0424
000072	012746  000006 				MOV	#6,-(SP)
000076	060616 					ADD	SP,(SP)				; CBLK,*
000100	005046 					CLR	-(SP)
000102	005046 					CLR	-(SP)
000104	005046 					CLR	-(SP)
000106	004767  000000G				JSR	PC,UN.OPEN
000112	010015 					MOV	R0,(R5)				; *,PB
000114	003425 					BLE	2$				;					0430
000116	004767  000000V				JSR	PC,CHECK.VERSION		;					0431
000122	010001 					MOV	R0,R1				; *,REASON
000124	001021 					BNE	2$
000126	012716  000014 				MOV	#14,(SP)			;					0433
000132	060616 					ADD	SP,(SP)				; CBLK,*
000134	004767  000000G				JSR	PC,UN.VALIDATE
000140	110065  000010 				MOVB	R0,10(R5)			; *,*(PB)
000144	011516 					MOV	(R5),(SP)			; PB,*					0434
000146	016546  000006 				MOV	6(R5),-(SP)			; *(PB),*
000152	016546  000004 				MOV	4(R5),-(SP)			; *(PB),*
000156	004767  000000G				JSR	PC,UN.ACCEPT
000162	062706  000016 				ADD	#16,SP				;					0435
000166	000426 					BR	3$
000170	012700  000012 			2$:	MOV	#12,R0				; *,REJECT.PTR				0440
000174	060600 					ADD	SP,R0				; REJECT.BUFFER,REJECT.PTR
000176	110120 					MOVB	R1,(R0)+			; REASON,REJECT.PTR			0441
000200	011516 					MOV	(R5),(SP)			; PB,*					0442
000202	012746  000042 				MOV	#42,-(SP)
000206	012746  000001 				MOV	#1,-(SP)
000212	012746  000020 				MOV	#20,-(SP)			;					0445
000216	060616 					ADD	SP,(SP)				; REJECT.BUFFER,*
000220	004767  000000G				JSR	PC,UN.REJECT			;					0442
000224	011516 					MOV	(R5),(SP)			; PB,*					0446
000226	005046 					CLR	-(SP)
000230	005046 					CLR	-(SP)
000232	004767  000000G				JSR	PC,UN.CLOSE
000236	062706  000024 				ADD	#24,SP				;					0418
000242	000710 					BR	1$				;					0417
000244	011500 				3$:	MOV	(R5),R0				; PB,*					0398
000246	062706  000230 				ADD	#230,SP				;					0367
000252	012601 					MOV	(SP)+,R1
000254	000207 					RTS	PC
; Routine Size:  87 words,	Routine Base:  $CODE$ + 0106
; Maximum stack depth per invocation:  88 words
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  12
X03.11		CHECK_VERSION					 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (6)

;	  0455	%routine ('CHECK_VERSION', PB : ref PARAMETER_BLOCK) : NML_LKG_PB =
;	  0456	
;	  0457	!++
;	  0458	! FUNCTIONAL DESCRIPTION:
;	  0459	!
;	  0460	!	This routine checks to see if the Network Management
;	  0461	!	version match.  If they don't, an error code is returned.
;	  0462	!
;	  0463	! FORMAL PARAMETERS
;	  0464	!
;	  0465	!	PB - Parameter block
;	  0466	!
;	  0467	! IMPLICIT INPUTS
;	  0468	!
;	  0469	!	NONE.
;	  0470	!
;	  0471	! ROUTINE VALUE:
;	  0472	!
;	  0473	!	Zero if ok, a non-zero error code if failed test
;	  0474	!
;	  0475	! SIDE EFFECTS:
;	  0476	!
;	  0477	!	NONE.
;	  0478	!
;	  0479	!--
;	  0480	
;	  0481	    begin
;	  0482	
;	  0483	    bind
;	  0484	       CBLK = .PB [PB_CBLK] : CONNECT_BLOCK;
;	  0485	
;	  0486	    local
;	  0487	         DATA_PTR,
;	  0488	         VERSION;
;	  0489	
;	  0490	!
;	  0491	! Create pointer to data supplied with connect request
;	  0492	!
;	  0493	
;	  0494	    DATA_PTR = .CBLK[CB_DATA];
;	  0495	
;	  0496	!
;	  0497	! Check for enough data available.  If not, return
;	  0498	! Invalid Identification error.
;	  0499	!
;	  0500	
;	C 0501	%( N.B. - If no version number is provided then assume 2.0.0 and
;	  0502	          continue with checking. )%
;	  0503	
;	  0504	    if .CBLK[CB_DATA_LENGTH] lss 3
;	L 0505	    then return $NICE$ERR_IID           ! Is this the right code to return ??
; %PRINT:	Invalid identification
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  13
X03.11		CHECK_VERSION					 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (6)

;	  0506	    else begin
;	  0507	
;	  0508	!
;	  0509	! Check version number against ours, if it is older
;	  0510	! it is incompatible with us.
;	  0511	!
;	  0512	
;	  0513	         VERSION = GETB (DATA_PTR);
;	  0514	         if .VERSION lss .NMLVER
;	L 0515	         then return $NICE$ERR_IMV
; %PRINT:	Incompatible Management version
;	  0516	         else begin
;	  0517	
;	  0518	!
;	  0519	! Check the Digital ECO number, if it is non-zero,
;	  0520	! it is incompatible with us.
;	  0521	!
;	  0522	!	      VERSION = GETB (DATA_PTR);
;	  0523	!
;	  0524	!	      if .VERSION gtr 0
;	  0525	!             then return NICE$_IMV
;	  0526	!             else return 0
;	  0527	!
;	  0528	! For now accept any 2.x.y version of Network Management
;	  0529	!
;	  0530	
;	  0531	              return 0;
;	  0532	              end
;	  0533	         end
;	  0534	
;	  0535	    end;				! End of CHECK_VERSION


						.SBTTL	CHECK.VERSION CHECK_VERSION
000000	010146 				CHECK.VERSION:
						MOV	R1,-(SP)			;					0455
000002	016500  000002 				MOV	2(R5),R0			; *(PB),*				0494
000006	016001  000016 				MOV	16(R0),R1			; *,DATA.PTR
000012	026027  000020  000003 			CMP	20(R0),#3			;					0504
000020	002003 					BGE	1$
000022	012700  177767 				MOV	#-11,R0
000026	000411 					BR	3$
000030	005000 				1$:	CLR	R0				; VERSION				0513
000032	152100 					BISB	(R1)+,R0			; DATA.PTR,VERSION
000034	020067  000000G				CMP	R0,NMLVER			; VERSION,*				0514
000040	002003 					BGE	2$
000042	012700  177771 				MOV	#-7,R0
000046	000401 					BR	3$
000050	005000 				2$:	CLR	R0
000052	012601 				3$:	MOV	(SP)+,R1			;					0455
000054	000207 					RTS	PC
; Routine Size:  23 words,	Routine Base:  $CODE$ + 0364
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  14
X03.11		CHECK_VERSION					 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (6)

; Maximum stack depth per invocation:  2 words
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  15
X03.11		READ_NICE_REQUEST				 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (7)

;	  0536	%routine ('READ_NICE_REQUEST', PB : ref PARAMETER_BLOCK) : NML_LKG_PB novalue =
;	  0537	
;	  0538	!++
;	  0539	! FUNCTIONAL DESCRIPTION:
;	  0540	!
;	  0541	!	This routine performs the NICE request receive function on 
;	  0542	!	a logical link that has already been opened. The looping 
;	  0543	!	continues until the task at the other end of the link closes 
;	  0544	!	it (or some other nefarious glitch takes it down).
;	  0545	!
;	  0546	! FORMAL PARAMETERS
;	  0547	!
;	  0548	!	PB - Parameter block
;	  0549	!
;	  0550	! IMPLICIT INPUTS
;	  0551	!
;	  0552	!	NONE.
;	  0553	!
;	  0554	! ROUTINE VALUE:
;	  0555	!
;	  0556	!	NONE.
;	  0557	!
;	  0558	! SIDE EFFECTS:
;	  0559	!
;	  0560	!	NONE.
;	  0561	!
;	  0562	!--
;	  0563	
;	  0564	    begin
;	  0565	
;	  0566	    while $true                         ! Loop through reading NICE requests
;	  0567	    do begin                            ! as long as link stays up.
;	  0568	
;	  0569	       local
;	  0570	           BYTE_COUNT,                  ! Received NICE request message length
;	  0571	           REQ : ref REQUEST_BLOCK;
;	  0572	
;	  0573	       !
;	  0574	       ! Allocate storage for NICE request block
;	  0575	       !
;	  0576	
;	  0577	       REQ = NMU$MEMORY_GET (REQUEST_BLOCK_ALLOCATION);
;	  0578	       REQ[RB_EXECUTOR] = 0;            ! Initialize to process locally
;	  0579	       REQ[RB_DATA] = .PB [PB_LINK_HANDLE]; ! Save link id
;	  0580	       REQ[RB_DATA_ALLOCATION] = 0;     ! No block allocated
;	  0581	
;	  0582	       REQ[RB_PRV_READ] = $true;        ! Set privledges.
;	  0583	
;	  0584	       if .PB [PB_ACCESS] gtr 0
;	  0585	       then
;	  0586	           begin
;	  0587	           REQ[RB_PRV_SYSTEM] = $true;
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  16
X03.11		READ_NICE_REQUEST				 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (7)

;	  0588	           REQ[RB_PRV_SERVICE] = $true;
;	  0589	           REQ[RB_PRV_TEST] = $true;
;	  0590	           REQ[RB_PRV_CHANGE] = $true;
;	  0591	           end;
;	  0592	
;	  0593	       ! Get a buffer for the NICE message and store its address
;	  0594	
;	  0595	       REQ[RB_NICE_ALLOCATION] = NICE_BUFFER_ALLOCATION; ! Units allocated
;	  0596	       REQ[RB_NICE] = NMU$MEMORY_GET (.REQ[RB_NICE_ALLOCATION]);
;	  0597	       REQ[RB_NICE_POINTER] = ch$ptr (.REQ[RB_NICE],0,8);
;	  0598	
;	  0599	       ! Attempt to read a NICE request message
;	  0600	
;	  0601	       BYTE_COUNT = NMU$NETWORK_READ (.PB [PB_LINK_HANDLE],
;	  0602	                                      NICE_BUFFER_LENGTH,
;	  0603	                                      .REQ[RB_NICE_POINTER]);
;	  0604	
;	  0605	       ! Check if we received a message, or read completed for some
;	  0606	       ! other reason. (Maybe the link was disconnected.)
;	  0607	
;	  0608	       if .BYTE_COUNT gtr 0             ! Put the NICE request on the queue
;	  0609	       then begin                       ! to be processed.
;	  0610	            REQ[RB_NICE_LENGTH] = .BYTE_COUNT;
;	  0611	            REQ[RB_COMPLETION] = DEQUEUE_REQUEST; ! Completion routine
;	  0612	
;	  0613	            !
;	  0614	            ! Enter the request into the NICE request queue.
;	  0615	            !
;	  0616	
;	  0617	            NML$REQUEST_ENTER (.REQ);   ! Enter request in queue
;	  0618		    end
;	  0619	       else begin
;	  0620	
;	  0621	            ! The link has been disconnected. Release the NICE buffer and
;	  0622	            ! and and indicate no longer connected.
;	  0623	
;	  0624	            REQ[RB_STATE] = RB$DONE;
;	  0625	            DEQUEUE_REQUEST (.REQ);
;	  0626		    exitloop;
;	  0627		    end;
;	  0628	       end;
;	  0629	
;	  0630	    end;				! End of READ_NICE_REQUEST


						.SBTTL	READ.NICE.REQUEST READ_NICE_REQUEST
000000	010146 				READ.NICE.REQUEST:
						MOV	R1,-(SP)			;					0536
000002	012746  000124 			1$:	MOV	#124,-(SP)			;					0577
000006	004767  000000G				JSR	PC,UM.GET
000012	010001 					MOV	R0,R1				; *,REQ
000014	005061  000040 				CLR	40(R1)				; *(REQ)				0578
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  17
X03.11		READ_NICE_REQUEST				 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (7)

000020	011561  000046 				MOV	(R5),46(R1)			; PB,*(REQ)				0579
000024	005061  000050 				CLR	50(R1)				; *(REQ)				0580
000030	012700  000076 				MOV	#76,R0				;					0582
000034	060100 					ADD	R1,R0				; REQ,*
000036	052710  020000 				BIS	#20000,(R0)
000042	105765  000010 				TSTB	10(R5)				; *(PB)					0584
000046	003402 					BLE	2$
000050	052710  017000 				BIS	#17000,(R0)			;					0590
000054	012761  000454  000032 		2$:	MOV	#454,32(R1)			; *,*(REQ)				0595
000062	012716  000454 				MOV	#454,(SP)			;					0596
000066	004767  000000G				JSR	PC,UM.GET
000072	010061  000024 				MOV	R0,24(R1)			; *,*(REQ)
000076	010061  000066 				MOV	R0,66(R1)			; *,*(REQ)				0597
000102	011516 					MOV	(R5),(SP)			; PB,*					0601
000104	012746  000454 				MOV	#454,-(SP)
000110	010046 					MOV	R0,-(SP)
000112	004767  000000G				JSR	PC,UN.READ
000116	005700 					TST	R0				; BYTE.COUNT				0608
000120	003411 					BLE	3$
000122	010061  000030 				MOV	R0,30(R1)			; BYTE.COUNT,*(REQ)			0610
000126	012761  000000V 000044 			MOV	#DEQUEUE.REQUEST,44(R1)		; *,*(REQ)				0611
000134	010116 					MOV	R1,(SP)				; REQ,*					0617
000136	004767  000000G				JSR	PC,NL.RENTER
000142	000411 					BR	4$				;					0608
000144	012761  000003  000022 		3$:	MOV	#3,22(R1)			; *,*(REQ)				0624
000152	010116 					MOV	R1,(SP)				; REQ,*					0625
000154	004767  000000V				JSR	PC,DEQUEUE.REQUEST
000160	062706  000006 				ADD	#6,SP				;					0626
000164	000403 					BR	5$
000166	062706  000006 			4$:	ADD	#6,SP				;					0567
000172	000703 					BR	1$				;					0566
000174	012601 				5$:	MOV	(SP)+,R1			;					0536
000176	000207 					RTS	PC
; Routine Size:  64 words,	Routine Base:  $CODE$ + 0442
; Maximum stack depth per invocation:  5 words
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  18
X03.11		DEQUEUE_REQUEST					 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (8)

;	  0631	%routine ('DEQUEUE_REQUEST', REQ) : novalue =
;	  0632	
;	  0633	!++
;	  0634	! FUNCTIONAL DESCRIPTION:
;	  0635	!
;	  0636	!	This routine handles the completion processing of remote NICE
;	  0637	!       requests when called by the NML request queue manager. It transmits
;	  0638	!       the NICE repsonse message back to the requestor and releases
;	  0639	!       all resources obtained when the request was created.
;	  0640	!
;	  0641	! FORMAL PARAMETERS
;	  0642	!
;	  0643	!	REQ - Address of the NML Request Block.
;	  0644	!
;	  0645	! IMPLICIT INPUTS
;	  0646	!
;	  0647	!	NONE.
;	  0648	!
;	  0649	! ROUTINE VALUE:
;	  0650	!
;	  0651	!	NONE.
;	  0652	!
;	  0653	! SIDE EFFECTS:
;	  0654	!
;	  0655	!	NONE.
;	  0656	!
;	  0657	!--
;	  0658	
;	  0659	    begin
;	  0660	
;	  0661	    map
;	  0662	       REQ: ref REQUEST_BLOCK;
;	  0663	
;	  0664	    if .REQ[RB_RESPONSE] neq 0
;	  0665	    then begin
;	  0666	
;	  0667	         !
;	  0668	         ! Attempt to transmit the NICE response message back to requestor.
;	  0669	         !
;	  0670	
;	  0671	         NMU$NETWORK_WRITE (.REQ[RB_DATA], ! Contains the link id
;	  0672	                            $TRUE,      ! Complete message
;	  0673	                            .REQ[RB_RESPONSE_LENGTH], ! Message length in bytes
;	  0674	                            ch$ptr (.REQ[RB_RESPONSE],,8)); ! NICE response pointer
;	  0675	         end;
;	  0676	
;	  0677	    !
;	  0678	    ! Release all memory resources when done.
;	  0679	    !
;	  0680	
;	  0681	    if .REQ[RB_STATE] eql RB$DONE
;	  0682	    then begin
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  19
X03.11		DEQUEUE_REQUEST					 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (8)

;	  0683		 if .REQ[RB_NICE_ENTITY_ADR] neq 0 ! Release node id buffer
;	  0684		 then NMU$MEMORY_RELEASE (.REQ[RB_NICE_ENTITY_ADR],
;	  0685					  NODE_ID_BUFFER_ALLOCATION);
;	  0686	         if .REQ[RB_NICE] neq 0
;	  0687	         then NMU$MEMORY_RELEASE (.REQ[RB_NICE], .REQ[RB_NICE_ALLOCATION]);
;	  0688	         if .REQ[RB_RESPONSE] neq 0
;	  0689	         then NMU$MEMORY_RELEASE (.REQ[RB_RESPONSE], .REQ[RB_RESPONSE_ALLOCATION]);
;	  0690	         NMU$MEMORY_RELEASE (.REQ, REQUEST_BLOCK_ALLOCATION);
;	  0691	         end;
;	  0692	
;	  0693	    end;				! End of DEQUEUE_REQUEST


						.SBTTL	DEQUEUE.REQUEST DEQUEUE_REQUEST
000000	004167  000000G			DEQUEUE.REQUEST:
						JSR	R1,$SAVE3			;					0631
000004	016601  000012 				MOV	12(SP),R1			; REQ,*					0664
000010	016102  000026 				MOV	26(R1),R2
000014	005003 					CLR	R3
000016	005702 					TST	R2
000020	001414 					BEQ	1$
000022	005203 					INC	R3
000024	016146  000046 				MOV	46(R1),-(SP)			;					0671
000030	012746  000001 				MOV	#1,-(SP)
000034	016146  000034 				MOV	34(R1),-(SP)
000040	010246 					MOV	R2,-(SP)
000042	004767  000000G				JSR	PC,UN.WRITE
000046	062706  000010 				ADD	#10,SP				;					0665
000052	026127  000022  000003 		1$:	CMP	22(R1),#3			;					0681
000060	001040 					BNE	5$
000062	016100  000100 				MOV	100(R1),R0			;					0683
000066	001406 					BEQ	2$
000070	010046 					MOV	R0,-(SP)			;					0684
000072	012746  000012 				MOV	#12,-(SP)
000076	004767  000000G				JSR	PC,UM.RELEASE
000102	022626 					CMP	(SP)+,(SP)+
000104	016100  000024 			2$:	MOV	24(R1),R0			;					0686
000110	001406 					BEQ	3$
000112	010046 					MOV	R0,-(SP)			;					0687
000114	016146  000032 				MOV	32(R1),-(SP)
000120	004767  000000G				JSR	PC,UM.RELEASE
000124	022626 					CMP	(SP)+,(SP)+
000126	006003 				3$:	ROR	R3				;					0688
000130	103006 					BCC	4$
000132	010246 					MOV	R2,-(SP)			;					0689
000134	016146  000036 				MOV	36(R1),-(SP)
000140	004767  000000G				JSR	PC,UM.RELEASE
000144	022626 					CMP	(SP)+,(SP)+
000146	010146 				4$:	MOV	R1,-(SP)			;					0690
000150	012746  000124 				MOV	#124,-(SP)
000154	004767  000000G				JSR	PC,UM.RELEASE
000160	022626 					CMP	(SP)+,(SP)+			;					0682
NMLRCV		NMLRCV -- NICE Remote Message Receiver		24-May-1985 13:25:38	TOPS-20 Bliss-16 2A(530)	    Page  20
X03.11		DEQUEUE_REQUEST					 3-Jan-1983 01:54:01	DNET61:<MCB.NML>NMLRCV.BLI.1 (8)

000162	000207 				5$:	RTS	PC				;					0631
; Routine Size:  58 words,	Routine Base:  $CODE$ + 0642
; Maximum stack depth per invocation:  9 words


;	  0694	end                                     ! End of Module NMLRCV
;	  0695	eludom



;					OTS external references
						.GLOBL	$SAVE3


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 $CODE$				  267	    RO ,  I  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  DNET61:<MCB.NML>NMLLIB.L16.2		      2718       180         6         0





;	  0696	! Local Modes:
;	  0697	! Mode:BLISS
;	  0698	! Auto Save Mode:2
;	  0699	! Comment Column:40
;	  0700	! Comment Rounding:+1
;	  0701	! End:
; Size:		267 code + 0 data words
; Run Time:	00:08.2
; Elapsed Time:	00:12.5
; Memory Used:	44 pages
; Compilation Complete
BLISS16				 231
BUFFER				 338	 346
BUFFER_PTR			 337	 347#	 348	 349	 350	 351
BYTE_COUNT			 570	 601#	 608	 610
CBLK				 401	 407	 408#	 409#	 410#	 411#	 412#	 413#	 414#	 415#	 424	 433
				 484#	 494	 504
CB_ACCOUNT_LENGTH		 414
CB_DATA				 494
CB_DATA_LENGTH			 415	 504
CB_DESCRIPTOR_LENGTH		 410
CB_HOST_LENGTH			 411
CB_OBJECT			 408
CB_PASSWORD_LENGTH		 413
CB_TASK_LENGTH			 409
CB_USERID_LENGTH		 412
CH$SEQUENCE			 338
CHECK_VERSION			 241	 431
CONNECT_BLOCK			 401	 484
DATA_PTR			 487	 494#	 513
DECECO				 299	 349
DEQUEUE_REQUEST			 243	 611	 625
DUMMY				 200+	 202+	 203+
FIELDS				 262
GETB				 513
LITERALS			 263
NICE_BUFFER_ALLOCATION		 256#	 595
NICE_BUFFER_LENGTH		 254#	 255	 602
NICE_BUFFER_SIZE		 255#	 256
NICE_OBJECT			 345
NML$RECEIVE_NICE		 237
NML$REQUEST_ENTER		 617
NML$REQUEST_MANAGER		 216+
NMLRCV				  73#
NMLVER				 298	 348	 514
NML_LKG_PB			 232#	 233#	 240	 241	 242	 367#	 455#	 536#
NMU$MEMORY_GET			 577	 596
NMU$MEMORY_MANAGER		 214+
NMU$MEMORY_RELEASE		 684	 687	 689	 690
NMU$NETWORK_ACCEPT		 434
NMU$NETWORK_CLOSE		 363	 446
NMU$NETWORK_OPEN		 424
NMU$NETWORK_READ		 601
NMU$NETWORK_REJECT		 442
NMU$NETWORK_UTILITIES		 295*
NMU$NETWORK_VALIDATE		 433
NMU$NETWORK_WRITE		 671
NMU$QUEUE_MANAGER		 215+
NMU$SCHED_MANAGER		 213+*
NODE_ID_BUFFER_ALLOCATION	 685
NONE				 284
PARAMETER_BLOCK_ALLOCATION	 279#
PARAMETER_BLOCK_SIZE		 278#	 282
PARAMETER_BLOCK			 282#	 335	 367	 455	 536
PARAMETER_FIELDS		 266#	 282
PB				 335	 345#	 346#	 347	 351#	 357	 363	 367	 407#	 408	 424#	 430
				 431	 433#	 434	 442	 446	 453	 455	 484	 536	 579	 584	 601
PBA				 336	 357#	 361	 362
PB_ACCESS			 273#	 433	 584
PB_BASE				 268#	 357	 431
PB_CBLK				 270#	 407	 484
PB_LINK_HANDLE			 269#	 363	 424	 430	 434	 442	 446	 453	 579	 601
PB_OBJECT			 274#	 345	 408
PB_OPTD_CNT			 272#	 351	 434
PB_OPTD_PTR			 271#	 346	 347	 351	 434
PUTB				 348	 349	 350
RB$DONE				 624	 681
RB_COMPLETION			 611
RB_DATA				 579	 671
RB_DATA_ALLOCATION		 580
RB_EXECUTOR			 578
RB_NICE				 596	 597	 686	 687
RB_NICE_ALLOCATION		 595	 596	 687
RB_NICE_ENTITY_ADR		 683	 684
RB_NICE_LENGTH			 610
RB_NICE_POINTER			 597	 603
RB_PRV_CHANGE			 590
RB_PRV_READ			 582
RB_PRV_SERVICE			 588
RB_PRV_SYSTEM			 587
RB_PRV_TEST			 589
RB_RESPONSE			 664	 674	 688	 689
RB_RESPONSE_ALLOCATION		 689
RB_RESPONSE_LENGTH		 673
RB_STATE			 624	 681
READ_NICE_REQUEST		 242	 362
REASON				 421	 423#	 431#	 441
REJECT_BUFFER			 438	 440	 445
REJECT_PTR			 438	 440#	 441
REQ				 571	 577#	 578#	 579#	 580#	 582#	 587#	 588#	 589#	 590#	 595#	 596#
				 597#	 603	 610#	 611#	 617	 624#	 625	 631	 662	 664	 671	 673
				 674	 681	 683	 684	 686	 687	 688	 689	 690
REQUEST_BLOCK			 571	 662
REQUEST_BLOCK_ALLOCATION	 577	 690
RESOURCE			 301
SC$_ANP				 443
TARGET_LINK			 424
TASK				 301
TASK_INFO			 188+
USRECO				 300	 350
VERSION				 488	 513#	 514
WAIT_FOR_CONNECT		 240	 361
$ADDRESS			 270
$BYTE				 274
$FALSE				 189+
$FIELD				 265
$FIELD_SET_SIZE			 278
$FIELD_SET_UNITS		 279
$INCOMPLETE$			 200+#
$INTERNAL_ERROR$		 185+#
$NICE$ERR_IID			 505
$NICE$ERR_IMV			 515
$NICE$ERR_OPF			 205+
$POINTER			 271
$SHORT_INTEGER			 269	 272
$SHOW				 262	 263	 284
$SUB_BLOCK			 268
$TINY_INTEGER			 273
$TRUE				 359	 417	 566	 582	 587	 588	 589	 590	 672
%GLOBAL_ROUTINE			 301#
%REMAINING			 188+
%ROUTINE			 367	 455	 536	 631#