Google
 

Trailing-Edge - PDP-10 Archives - BB-R595B-SM_11-9-85 - mcb/nmx/nmxdle.lst
There is 1 other file named nmxdle.lst in the archive. Click here to see a list.
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page   1
								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (1)

;	  0001	module NMXDLE (					! Direct Line Access Processor
;	  0002			ident = 'X01090'
;	  0003			) =
;	  0004	begin
;	  0005	!
;	  0006	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0007	!                    DIGITAL EQUIPMENT CORPORATION
;	  0008	!                        Maynard, Massachusetts
;	  0009	!
;	  0010	!     This software is furnished under a license and may  be  used
;	  0011	!     and copied only in accordance with the terms of such license
;	  0012	!     and with the inclusion of the above copyright notice.   This
;	  0013	!     software  or any other copies thereof may not be provided or
;	  0014	!     otherwise made available to any other person.  No  title  to
;	  0015	!     and ownership of the software is hereby transferred.
;	  0016	!
;	  0017	!     The information  in  this  software  is  subject  to  change
;	  0018	!     without  notice  and should not be construed as a commitment
;	  0019	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0020	!
;	  0021	!     DIGITAL assumes no responsibility for the use or reliability
;	  0022	!     of  its  software  on  equipment  which  is  not supplied by
;	  0023	!     DIGITAL.
;	  0024	!
;	  0025	
;	  0026	!++
;	  0027	!
;	  0028	! FACILITY: MCB Network Management
;	  0029	!
;	  0030	! ABSTRACT:
;	  0031	!
;	  0032	!	This module provides access to the line
;	  0033	!	protocol level for LOOP LINE/CIRCUIT or
;	  0034	!	LOAD/DUMP Network Management Operations.
;	  0035	!
;	  0036	! ENVIRONMENT: MCB V3.0
;	  0037	!
;	  0038	! AUTHOR: Scott G. Robinson	CREATION DATE: 12-OCT-80
;	  0039	!
;	  0040	! MODIFIED BY:
;	  0041	!
;	  0042	! 01 - Update to MCB V3.2 Naming Conventions
;	  0043	! 02 - Implement MCB DLL interface
;	  0044	! 03 - Code compression
;	  0045	! 04 - Fix a dot bug Al Peckham found
;	  0046	! 05 - Change line/circuit references to common link block
;	  0047	! 06 - Add support for data link watcher.
;	  0048	!       Alan D. Peckham, 14-Apr-82
;	  0049	! 07 - Complete rework of NM support.
;	  0050	! 08 - Fix return of LUNBLK in DLXCCP.
;	  0051	! 09 - Disallow DLX_OPEN when NMX$FLG_maintenance_allowed is not on.
;	  0052	!--
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page   2
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (1)

;	  0053	
;	  0054	!++
;	  0055	! The DLX Support Routines use the following state machine:
;	  0056	!
;	  0057	! Routine DLXIOP:
;	  0058	!
;	  0059	!   OPEN
;	  0060	!
;	  0061	!   |Validate LUN, Assign Entity| failed
;	  0062	!   |Allocate LUN_BLOCK         |------------> Deassign Entity, Deallocate
;	  0063	!              |                               LUN_BLOCK, fail IOP
;	  0064	!              |
;	  0065	!   |Send Stop to Entity Owner  |
;	  0066	!              |
;	  0067	!              | CCP/STP (DLXCCP state DLX_STOP_OWNER)
;	  0068	!              |
;	  0069	!   |Request Entity to Provider |
;	  0070	!              |
;	  0071	!              | CCP/STR (DLXCCP state DLX_REQUEST_ENTITY)
;	  0072	!              |
;	  0073	!   |                           | Failed ---> Start Owner then Backout
;	  0074	!   !Enter Maint to Provider    |
;	  0075	!              |
;	  0076	!              | XCP/x (DLXXCP state DLX_ENTER_MAINT)
;	  0077	!              |
;	  0078	!   |                           | Failed --> Release Entity then Backout
;	  0079	!   |Complete IOP Successfully  |
;	  0080	!
;	  0081	!
;	  0082	!  CLOSE
;	  0083	!
;	  0084	!   |Validate LUN, LUN_BLOCK    | Failed --> fail IOP
;	  0085	!   |Return all RCP CCBs        |
;	  0086	!   |Fail RCV IOPs              |
;	  0087	!   |Stop Protocol              |
;	  0088	!              |
;	  0089	!              | XCP/x (DLXCCP state DLX_STOP_PROTOCOL)
;	  0090	!              |
;	  0091	!   |Release Entity             |
;	  0092	!              |
;	  0093	!              | CCP/STP (DLXCCP state DLX_RELEASE_ENTITY)
;	  0094	!              |
;	  0095	!   |Start Owner                |
;	  0096	!              |
;	  0097	!              | CCP/STR (DLXCCP state DLX_START_OWNER)
;	  0098	!              |
;	  0099	!   |Deassign Entity            |
;	  0100	!   |Deallocate LUN_BLOCK       |
;	  0101	!   |Unlock LUN                 |
;	  0102	!   |Complete IOP               |
;	  0103	!
;	  0104	!
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page   3
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (1)

;	  0105	!  TRANSMIT
;	  0106	!
;	  0107	!   |Validate LUN, LUN_BLOCK    | Failed --> fail IOP
;	  0108	!   |Allocate CCB               |
;	  0109	!              |
;	  0110	!   |Transmit Buffer            |
;	  0111	!              |
;	  0112	!              | XCP/x (DLXXCP state DLX_TRANSMIT)
;	  0113	!              |
;	  0114	!   |Deallocate CCB             |
;	  0115	!   |Complete IOP based on C.STS|
;	  0116	!
;	  0117	!
;	  0118	!  RECEIVE
;	  0119	!
;	  0120	!   |Validate LUN, LUN_BLOCK    |
;	  0121	!   |Queue RCV IOP              |
;	  0122	!   |Try to match IOPs with RCPs|
;	  0123	!
;	  0124	!
;	  0125	! DLXRCP
;	  0126	!
;	  0127	!   |Validate LUN_BLOCK         | failed --> crash
;	  0128	!   |Queue RCP CCB              |
;	  0129	!   |Try to match RCVs with RCPs|
;	  0130	!
;	  0131	!
;	  0132	! DLXAST
;	  0133	!
;	  0134	!   |Validate LUN_BLOCK         | failed --> return CCB
;	  0135	!   |Set appropriate Error Code |
;	  0136	!   |Try to complete a RCV IOP  |
;	  0137	!   !Return CCB                 |
;	  0138	!
;	  0139	!--
;	  0140	
;	  0141	!
;	  0142	! INCLUDE FILES:
;	  0143	!
;	  0144	
;	  0145	library 'XPORTX';
;	  0146	
;	  0147	library 'MCBLIB';
;	  0148	
;	  0149	library 'NMXPAR';
;	  0150	
;	  0151	library 'NMXLIB';
;	  0152	
;	  0153	require 'DLLLIB';
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page   4
X01090								30-Dec-1982 15:40:10	NETPKG:<MCB>DLLLIB.REQ.7 (1)

;	 R0154	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R0155	!                    DIGITAL EQUIPMENT CORPORATION
;	 R0156	!                        Maynard, Massachusetts
;	 R0157	!
;	 R0158	!     This software is furnished under a license and may  be  used
;	 R0159	!     and copied only in accordance with the terms of such license
;	 R0160	!     and with the inclusion of the above copyright notice.   This
;	 R0161	!     software  or any other copies thereof may not be provided or
;	 R0162	!     otherwise made available to any other person.  No  title  to
;	 R0163	!     and ownership of the software is hereby transferred.
;	 R0164	!
;	 R0165	!     The information  in  this  software  is  subject  to  change
;	 R0166	!     without  notice  and should not be construed as a commitment
;	 R0167	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R0168	!
;	 R0169	!     DIGITAL assumes no responsibility for the use or reliability
;	 R0170	!     of  its  software  on  equipment  which  is  not supplied by
;	 R0171	!     DIGITAL.
;	 R0172	
;	 R0173	!+
;	 R0174	!	*** Start of DLLLIB ***
;	 R0175	!    DLL layer interface symbols
;	 R0176	!-
;	 R0177	
;	 R0178	!+
;	 R0179	! The circuit owner will be given the circuit by receiving a CTL/STR CCB
;	 R0180	! with C_PRM1 containing the provider PIX/LIX.  The owner then does a
;	 R0181	! CTL/STR to the provider to establish the CCB communications and starts
;	 R0182	! activity.
;	 R0183	!
;	 R0184	! If C_LIN eqlu 0, then the owner is being given the circuit for the first
;	 R0185	! time and C_PRM2 will contain circuit name (see below).  The owner will
;	 R0186	! return his circuit identifier (see $DLL_REQUEST_CIRCUIT) in C_LIN.
;	 R0187	! This and the owner PIX will be provided to Network Management as the
;	 R0188	! OWNERID for circuit Network Management functions.
;	 R0189	! Circuit flags will be provided in C_PRM3 for further information on the
;	 R0190	! circuit.
;	 R0191	! If C_LIN nequ 0, then it contains the user's circuit identifier with which
;	 R0192	! the circuit was previously associated when a CTL/STP was performed.
;	 R0193	!
;	 R0194	! The circuit must be released when a CTL/STP is received.  C_LIN will contain
;	 R0195	! the circuit identifier for the circuit to be released.  At present,
;	 R0196	! this temporarily disassociates the circuit from the owner, and the
;	 R0197	! circuit can be re-associated through the CTL/STR as described above.
;	 R0198	!-
;	 R0199	
;	 R0200	field
;	 R0201	    DLL$FW_START_CCB_PRM1 =
;	 R0202	        set
;	 R0203	        DLL$B_PROVIDER_LINE_INDEX = [0, 0, 8, 0],
;	 R0204	        DLL$B_PROVIDER_PROCESS_INDEX = [0, 8, 8, 0]
;	 R0205	        tes,
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page   5
X01090								30-Dec-1982 15:40:10	NETPKG:<MCB>DLLLIB.REQ.7 (1)

;	 R0206	    DLL$FW_START_CCB_PRM2 =
;	 R0207	        set
;	 R0208	        DLL$A_CIRCUIT_NAME = [0, 0, 16, 0]
;	 R0209	        tes,
;	 R0210	    DLL$FW_START_CCB_PRM3 =
;	 R0211	        set
;	 R0212	        DLL$V_DTE_CIRCUIT = [0, 0, 1, 0]  ! Circuit is a DTE to a KL20 CPU.
;	 R0213	        tes;
;	 R0214	
;	 R0215	!+
;	 R0216	! The circuit owner begins the session with the provider by calling
;	 R0217	! $DLL_REQUEST_CIRCUIT.  This establishes the CCB interface to the
;	 R0218	! provider and defines the circuit identifier that will be passed in C_LIN
;	 R0219	! in CCBs being returned from the provider to the owner.  The circuit state
;	 R0220	! will be reported in the return status code.
;	 R0221	!
;	 R0222	! The session is terminated by the owner with a call to $DLL_RELEASE_CIRCUIT.
;	 R0223	! This will complete after all CCBs exchanged between the owner and provider
;	 R0224	! have been returned to their originators.
;	 R0225	!-
;	 R0226	
;	 R0227	macro
;	MR0228	    $DLL_REQUEST_CIRCUIT (CCB, PROVIDER_PIX, LIN) =
;	MR0229	         begin
;	MR0230	
;	MR0231	         bind
;	MR0232	             $DLL$CCB = CCB : block field (C_FIELDS);
;	MR0233	
;	MR0234	         %if not %null (PROVIDER_PIX)
;	MR0235	             %then $DLL$CCB [C_PIX] = PROVIDER_PIX;
;	MR0236	         %fi
;	MR0237	         %if not %null (LIN)
;	MR0238	             %then $DLL$CCB [C_LIN] = LIN;
;	MR0239	         %fi
;	MR0240	         $DLL$CCB [C_FNC] = FC_CTL;
;	MR0241	         $DLL$CCB [C_MOD] = FM_STR;
;	MR0242	         $MCB_SCHEDULE_CCB ($DLL$CCB [C_LNK]);
;	 R0243	         end %,
;	MR0244	    $DLL_RELEASE_CIRCUIT (CCB, PROVIDER_PIX) =
;	MR0245	         begin
;	MR0246	
;	MR0247	         bind
;	MR0248	             $DLL$CCB = CCB : block field (C_FIELDS);
;	MR0249	
;	MR0250	         %if not %null (PROVIDER_PIX)
;	MR0251	             %then $DLL$CCB [C_PIX] = PROVIDER_PIX;
;	MR0252	         %fi
;	MR0253	         $DLL$CCB [C_FNC] = FC_CTL;
;	MR0254	         $DLL$CCB [C_MOD] = FM_STP;
;	MR0255	         $MCB_SCHEDULE_CCB ($DLL$CCB [C_LNK]);
;	 R0256	         end %;
;	 R0257	
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page   6
X01090								30-Dec-1982 15:40:10	NETPKG:<MCB>DLLLIB.REQ.7 (1)

;	 R0258	!+
;	 R0259	! The $DLL_INITIALIZE call requests the provider to change the
;	 R0260	! circuit state to OFF, and then SYNCHRONIZING state.  This causes
;	 R0261	! the protocol to be stopped and re-initialized.
;	 R0262	!
;	 R0263	! The $DLL_STOP call requests the provider to change the circuit state
;	 R0264	! to the OFF state.  This causes the protocol to be stopped.
;	 R0265	!
;	 R0266	! The $DLL_ENTER_MAINTENANCE call requests that the circuit be placed
;	 R0267	! in OFF, and then MAINTENANCE state.
;	 R0268	!-
;	 R0269	
;	 R0270	macro
;	MR0271	    $DLL_INITIALIZE (CCB, PROVIDER_PIX) =
;	MR0272	         begin
;	MR0273	
;	MR0274	         bind
;	MR0275	             $DLL$CCB = CCB : block field (C_FIELDS);
;	MR0276	
;	MR0277	         %if not %null (PROVIDER_PIX)
;	MR0278	             %then $DLL$CCB [C_PIX] = PROVIDER_PIX;
;	MR0279	         %fi
;	MR0280	         $DLL$CCB [C_FNC] = FC_XME;
;	MR0281	         $DLL$CCB [C_MOD] = DLL$K_INITIALIZE_LINK;
;	MR0282	         $MCB_SCHEDULE_CCB ($DLL$CCB [C_LNK]);
;	 R0283	         end %,
;	MR0284	    $DLL_STOP (CCB, PROVIDER_PIX) =
;	MR0285	         begin
;	MR0286	
;	MR0287	         bind
;	MR0288	             $DLL$CCB = CCB : block field (C_FIELDS);
;	MR0289	
;	MR0290	         %if not %null (PROVIDER_PIX)
;	MR0291	             %then $DLL$CCB [C_PIX] = PROVIDER_PIX;
;	MR0292	         %fi
;	MR0293	         $DLL$CCB [C_FNC] = FC_XME;
;	MR0294	         $DLL$CCB [C_MOD] = DLL$K_STOP_LINK;
;	MR0295	         $MCB_SCHEDULE_CCB ($DLL$CCB [C_LNK]);
;	 R0296	         end %,
;	MR0297	    $DLL_ENTER_MAINTENANCE (CCB, PROVIDER_PIX) =
;	MR0298	         begin
;	MR0299	
;	MR0300	         bind
;	MR0301	             $DLL$CCB = CCB : block field (C_FIELDS);
;	MR0302	
;	MR0303	         %if not %null (PROVIDER_PIX)
;	MR0304	             %then $DLL$CCB [C_PIX] = PROVIDER_PIX;
;	MR0305	         %fi
;	MR0306	         $DLL$CCB [C_FNC] = FC_XME;
;	MR0307	         $DLL$CCB [C_MOD] = DLL$K_ENTER_MAINTENANCE;
;	MR0308	         $MCB_SCHEDULE_CCB ($DLL$CCB [C_LNK]);
;	 R0309	         end %;
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page   7
X01090								30-Dec-1982 15:40:10	NETPKG:<MCB>DLLLIB.REQ.7 (1)

;	 R0310	
;	 R0311	!+
;	 R0312	! Messages are transmitted by the $DLL_TRANSMIT call, and are received
;	 R0313	! through FC_RCP.  When the circuit is cycled through the OFF state, or
;	 R0314	! a $DLL_RELEASE_CIRCUIT is received, all outstanding transmits will be
;	 R0315	! returned.
;	 R0316	!-
;	 R0317	
;	 R0318	macro
;	MR0319	    $DLL_TRANSMIT (CCB, PROVIDER_PIX) =
;	MR0320	         begin
;	MR0321	
;	MR0322	         bind
;	MR0323	             $DLL$CCB = CCB : block field (C_FIELDS);
;	MR0324	
;	MR0325	         %if not %null (PROVIDER_PIX)
;	MR0326	             %then $DLL$CCB [C_PIX] = PROVIDER_PIX;
;	MR0327	         %fi
;	MR0328	         $DLL$CCB [C_FNC] = FC_XME;
;	MR0329	         $DLL$CCB [C_MOD] = DLL$K_TRANSMIT;
;	MR0330	         $MCB_SCHEDULE_CCB ($DLL$CCB [C_LNK]);
;	 R0331	         end %;
;	 R0332	
;	 R0333	DECLARE_SEVERITY (DLL, SUCCESS, WARNING, INFO, ERROR, SEVERE);
;	 R0334	
;	 R0335	! FC_XME sub-function codes
;	 R0336	
;	 R0337	literal
;	 R0338	    DLL$K_TRANSMIT = 0^1,
;	 R0339	    DLL$K_INITIALIZE_LINK = 1^1,
;	 R0340	    DLL$K_STOP_LINK = 2^1,
;	 R0341	    DLL$K_ENTER_MAINTENANCE = 3^1,
;	 R0342	    DLL$K_TRANSMIT_AND_TIME = 4^1;
;	 R0343	
;	 R0344	! FC_RCP sub-function codes
;	 R0345	
;	 R0346	literal
;	 R0347	    DLL$K_DATA_RECEIVED = 0^1,
;	 R0348	    DLL$K_MAINTENANCE_RECEIVED = 1^1;
;	 R0349	
;	 R0350	! FC_AST sub-function codes
;	 R0351	
;	 R0352	literal
;	 R0353	    DLL$K_STATE = 0^1,
;	 R0354	    DLL$K_TRANSIENT_ERROR = 1^1,
;	 R0355	    DLL$K_PERSISTENT_ERROR = 2^1;
;	 R0356	
;	 R0357	! General status codes
;	 R0358	
;	 R0359	$DLL_SUCCESS (DLL$_SUCCESS)
;	 R0360	$DLL_ERROR (DLL$_PRIVLEDGE_VIOLATION)
;	 R0361	$DLL_ERROR (DLL$_NOT_SUPPORTED)
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page   8
X01090								30-Dec-1982 15:40:10	NETPKG:<MCB>DLLLIB.REQ.7 (1)

;	 R0362	$DLL_WARNING (DLL$_ABORTED)
;	 R0363	
;	 R0364	! FC_AST / DLL$K_STATE status codes
;	 R0365	
;	 R0366	$DLL_INFO (DLL$_STATE_OFF)
;	 R0367	$DLL_INFO (DLL$_STATE_SYNCHRONIZING)
;	 R0368	$DLL_INFO (DLL$_STATE_RUNNING)
;	 R0369	$DLL_INFO (DLL$_STATE_MAINTENANCE)
;	 R0370	
;	 R0371	! FC_AST / DLL$K_TRANSIENT_ERROR status codes
;	 R0372	
;	 R0373	$DLL_WARNING (DLL$_TRANSMIT_THRESHOLD)
;	 R0374	             ! A transmitted message has not been acknowledged by the other end.
;	 R0375	$DLL_WARNING (DLL$_RECEIVE_THRESHOLD)
;	 R0376	             ! Unable to receive a message correctly from the other end.
;	 R0377	$DLL_WARNING (DLL$_SELECTION_THRESHOLD)
;	 R0378	             ! The other end has not been returning control of a half duplex line
;	 R0379	             ! in a timely fashion.
;	 R0380	
;	 R0381	! FC_AST / DLL$K_PERSISTENT_ERROR status codes
;	 R0382	
;	 R0383	$DLL_WARNING (DLL$_START_RECEIVED)
;	 R0384	             ! The other end has requested protocol initialization.
;	 R0385	$DLL_ERROR (DLL$_MAINTENANCE_RECEIVED)
;	 R0386	             ! The other end has entered maintenance mode.
;	 R0387	$DLL_SEVERE (DLL$_DEVICE_RESPONSE_ERROR)
;	 R0388	            ! A hardware device has refused to respond in a timely fashion.
;	 R0389	$DLL_SEVERE (DLL$_DEVICE_SERVICE_ERROR)
;	 R0390	            ! The driver was unable to service the device in a timely fashion.
;	 R0391	$DLL_SEVERE (DLL$_DEVICE_OPERATION_ERROR)
;	 R0392	            ! The device is not operating correctly. (KMC does not load or start,
;	 R0393	            !  illegal codes from DMC, DMR, KMC, etc.)
;	 R0394	$DLL_WARNING (DLL$_PAUSE_TIMEOUT)
;	 R0395	            ! DTE-20 timeout during protocol pause
;	 R0396	
;	 R0397	! FC_AST / DLL$K_TRANSIENT_ERROR status codes (continued)
;	 R0398	
;	 R0399	$DLL_WARNING (DLL$_SERVICE_TIMEOUT)
;	 R0400		    ! MOP service mode receive timed out
;	 R0401	$DLL_WARNING (DLL$_RECEIVE_ERROR)
;	 R0402		    ! MOP message received in error
;	 R0403	
;	 R0404	!+
;	 R0405	!	*** End of DLLLIB ***
;	 R0406	!-
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page   9
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (1)

;	  0407	
;	  0408	require 'DLXPAR';
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  10
X01090								 3-Jan-1983 18:41:32	NETPKG:<NMX>DLXPAR.REQ.7 (1)

;	 R0409	!                    COPYRIGHT (c) 1980, 1981, 1982
;	 R0410	!                    DIGITAL EQUIPMENT CORPORATION
;	 R0411	!                        Maynard, Massachusetts
;	 R0412	!
;	 R0413	!     This software is furnished under a license and may  be  used
;	 R0414	!     and copied only in accordance with the terms of such license
;	 R0415	!     and with the inclusion of the above copyright notice.   This
;	 R0416	!     software  or any other copies thereof may not be provided or
;	 R0417	!     otherwise made available to any other person.  No  title  to
;	 R0418	!     and ownership of the software is hereby transferred.
;	 R0419	!
;	 R0420	!     The information  in  this  software  is  subject  to  change
;	 R0421	!     without  notice  and should not be construed as a commitment
;	 R0422	!     by DIGITAL EQUIPMENT CORPORATION.
;	 R0423	!
;	 R0424	!     DIGITAL assumes no responsibility for the use or reliability
;	 R0425	!     of  its  software  on  equipment  which  is  not supplied by
;	 R0426	!     DIGITAL.
;	 R0427	
;	 R0428	!+
;	 R0429	! DLX processing Parameters
;	 R0430	!-
;	 R0431	%if not %declared (XPO$K_VERSION) %then library 'MCB:XPORTX' %fi;
;	 R0432	%if not %declared (MCB$K_VERSION) %then library 'MCB:MCBLIB' %fi;
;	 R0433	
;	 R0434	!+
;	 R0435	! Fields for DLX CCBs and I/O Packets
;	 R0436	!-
;	 R0437	$field
;	 R0438	    DLX_OVERLAY_CCB_FIELDS =
;	 R0439		set
;	 R0440	           $overlay (C_LIX)
;	 R0441	        C_DLX_EID = [$integer],         ! Full EID specification
;	 R0442	           $overlay (C_PRM1)
;	 R0443	        C_DLX_STATE = [$address],       ! Current processing State for function
;	 R0444	        C_DLX_IOP = [$address],         ! Address of IOP for this CCB
;	 R0445	        C_DLX_LUNBLK = [$address]       ! Address of LUN Block for this CCB
;	 R0446	           $continue
;	 R0447	        tes;
;	 R0448	
;	 R0449	macro
;	MR0450	     DLX_CCB_BLOCK =
;	 R0451	         block field(C_NM_FIELDS, DLX_OVERLAY_CCB_FIELDS) %;
;	 R0452	
;	 R0453	$literal                                ! Contents of DLX_CCB_STATE
;	 R0454	    DLX_TRANSMIT         = $distinct,   ! Have Transmitted Data
;	 R0455	    DLX_STOP_OWNER       = $distinct,   ! Have Sent Stop to Entity Owner
;	 R0456	    DLX_REQUEST_ENTITY   = $distinct,   ! Have Requested Entity
;	 R0457	    DLX_ENTER_MAINT      = $distinct,   ! Have Set Maintenance Mode
;	 R0458	    DLX_STOP_PROTOCOL    = $distinct,   ! Have Stopped Protocol on Entity
;	 R0459	    DLX_RELEASE_ENTITY   = $distinct,   ! Have Released Entity
;	 R0460	    DLX_START_OWNER      = $distinct;   ! Have Started Owner
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  11
X01090								 3-Jan-1983 18:41:32	NETPKG:<NMX>DLXPAR.REQ.7 (1)

;	 R0461	
;	 R0462	literal
;	 R0463	    DLX_STATE_LOW = DLX_TRANSMIT,       ! Lowest State
;	 R0464	    DLX_STATE_HIGH = DLX_START_OWNER;   ! Highest State
;	 R0465	
;	 R0466	
;	 R0467	$field
;	 R0468	      DLX_LUN_FIELDS =
;	 R0469	         set
;	 R0470	         LUN_LINK = [$address],         ! Link to Next LUN Block
;	 R0471	         LUN_ENTITY_ADDRESS = [$address],! Points to Entity Block for this LUN
;	 R0472	         LUN_ENTITY_BIAS = [$address],  ! Bias for Entity Block
;	 R0473	         LUN_STATE = [$byte],           ! State: Opening, Opened, Closing
;	 R0474	         LUN_ID = [$byte],              ! Unique ID returned in CCB LIX field
;	 R0475	         LUN_RCVS = [$sub_block(2)],    ! Queue of IOPs for RCVs
;	 R0476	         LUN_RCPS = [$sub_block(2)],    ! Queue of CCB RCP buffers
;	 R0477	         LUN_XMTS = [$integer],         ! Number of Outstanding Transmits
;	 R0478	         LUN_ERROR_CODE = [$integer],   ! Error Code from OPEN/CLOSE
;	 R0479	         LUN_RCV_ERROR = [$integer]     ! Pending Receive Error
;	 R0480	         tes;
;	 R0481	
;	 R0482	literal
;	 R0483	    DLX_LUN_SIZE = $field_set_size,
;	 R0484	    DLX_LUN_ALLOCATION = $field_set_units;
;	 R0485	
;	 R0486	macro
;	MR0487	    DLX_LUN_BLOCK =
;	 R0488	        block [DLX_LUN_SIZE] field(DLX_LUN_FIELDS) %;
;	 R0489	
;	 R0490	$literal
;	 R0491	    LUN_OPENING = $distinct,
;	 R0492	    LUN_CLOSING = $distinct,
;	 R0493	    LUN_OPENED = $distinct;
;	 R0494	!+
;	 R0495	!        *****End of DLXPAR*****
;	 R0496	!-
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  12
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (1)

;	  0497	
;	  0498	!
;	  0499	! TABLE OF CONTENTS:
;	  0500	!
;	  0501	
;	  0502	forward routine
;	  0503	    DLXAST : MCB_DB_CCB_MOD novalue,
;	  0504	    DLXCCP : MCB_DB_CCB novalue,
;	  0505	    DLXCON : NMX$LKG_UCB_IOP novalue,   ! Process IOP Connect
;	  0506	    DLXCTL : MCB_DB_CCB_MOD novalue,
;	  0507	    DLXDSC : NMX$LKG_UCB_IOP novalue,   ! Process IOP Disconnect
;	  0508	    DLXRCP : MCB_DB_CCB_MOD novalue,
;	  0509	    DLXRCV : NMX$LKG_UCB_IOP novalue,   ! Process IOP Receive
;	  0510	    DLXXCP : MCB_DB_CCB_MOD novalue,
;	  0511	    DLXXMT : NMX$LKG_UCB_IOP novalue,   ! Process IOP Transmit
;	  0512	    ALLOCATE_LUNBLK,                    ! Allocate LUNBLK and initialize
;	  0513	    EXTRACT_LUNBLK,                     ! Extract a LUNBLK by ID
;	  0514	    FIND_LUNBLK,                        ! Find a LUNBLK by ID
;	  0515	    TRY_SOME_RCVS : novalue;            ! Try matching IOPs with Buffers
;	  0516	
;	  0517	!
;	  0518	! Link STATE values
;	  0519	!
;	  0520	
;	  0521	literal
;	  0522	    LINK_ON = 0,
;	  0523	    LINK_OFF = 1,
;	  0524	    LINK_SERVICE = 2,
;	  0525	    LINK_CLEARED = 3;
;	  0526	
;	  0527	!
;	  0528	! Link SUBSTATE values
;	  0529	!
;	  0530	
;	  0531	literal
;	  0532	    LINK_NO_SUBSTATE = -1,
;	  0533	    LINK_STARTING = 0,
;	  0534	    LINK_REFLECTING = 1,
;	  0535	    LINK_LOOPING = 2,
;	  0536	    LINK_LOADING = 3,
;	  0537	    LINK_DUMPING = 4,
;	  0538	    LINK_TRIGGERING = 5,
;	  0539	    LINK_AUTOSERVICE = 6,
;	  0540	    LINK_AUTOLOADING = 7,
;	  0541	    LINK_AUTODUMPING = 8,
;	  0542	    LINK_AUTOTRIGGERING = 9,
;	  0543	    LINK_SYNCHRONIZING = 10,
;	  0544	    LINK_FAILED = 11;
;	  0545	
;	  0546	!
;	  0547	! Link SERVICE values
;	  0548	!
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  13
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (1)

;	  0549	
;	  0550	literal
;	  0551	    LINK_ENABLED = 0,
;	  0552	    LINK_DISABLED = 1;
;	  0553	
;	  0554	!
;	  0555	! External routines
;	  0556	!
;	  0557	external
;	  0558	    MCB$GAW_PROCESS_DATA_BASE : vector [2];
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  14
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (2)

;	  0559	global routine DLXAST (NMXDB, CCB, FCM) : MCB_DB_CCB_MOD novalue = 	! Process Asynchronous notifications
;	  0560	
;	  0561	!++
;	  0562	! FUNCTIONAL DESCRIPTION:
;	  0563	!
;	  0564	!
;	  0565	!
;	  0566	! FORMAL PARAMETERS:
;	  0567	!
;	  0568	!	None
;	  0569	!
;	  0570	! IMPLICIT INPUTS:
;	  0571	!
;	  0572	!	None
;	  0573	!
;	  0574	! IMPLICIT OUTPUTS:
;	  0575	!
;	  0576	!	None
;	  0577	!
;	  0578	! ROUTINE VALUE:
;	  0579	!
;	  0580	!	None
;	  0581	!
;	  0582	! SIDE EFFECTS:
;	  0583	!
;	  0584	!	None
;	  0585	!--
;	  0586	
;	  0587	    begin
;	  0588	
;	  0589	    map
;	  0590		NMXDB : ref NMXDB_BLOCK,
;	  0591		CCB : ref block field (C_FIELDS);
;	  0592	
;	  0593	    local
;	  0594		LUNBLK : ref DLX_LUN_BLOCK;
;	  0595	
;	  0596	!
;	  0597	! Find our LUN_BLOCK
;	  0598	!
;	  0599	
;	  0600	    if (LUNBLK = FIND_LUNBLK (.CCB [C_LIN])) eql 0
;	  0601	    then
;	  0602		SIGNAL_STOP (NMX$_ICP, .CCB, 0)
;	  0603	    else
;	  0604	
;	  0605		if (.LUNBLK [LUN_STATE] eql LUN_OPENED) and (.LUNBLK [LUN_RCV_ERROR] eql 0)
;	  0606		then
;	  0607		    begin
;	  0608	
;	  0609		    selectone .FCM of
;	  0610			set
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  15
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (2)

;	  0611			[DLL$K_PERSISTENT_ERROR] :
;	  0612			    LUNBLK [LUN_RCV_ERROR] = (selectone .CCB [C_STS] of
;	  0613				set
;	  0614				[DLL$_START_RECEIVED] : IE$EOT;
;	  0615				[DLL$_MAINTENANCE_RECEIVED] : 0;
;	  0616				[otherwise] : IE$BBE;
;	  0617				tes);
;	  0618			[otherwise] :       ! What about using state notifications ?
;	  0619			;
;	  0620			tes;
;	  0621	
;	  0622		    TRY_SOME_RCVS (.LUNBLK);
;	  0623		    end;
;	  0624	
;	  0625	    $MCB_RETURN_CCB (.CCB);
;	  0626	    end;					!of DLXAST


						.TITLE	NMXDLE
						.IDENT	/X01090/

						.GLOBL	.CRDAT, $CCBRT


						.SBTTL	DLXAST
000000						.PSECT	$CODE$,  RO 

000000	005046 				DLXAST::CLR	-(SP)				;					0600
000002	116416  000010 				MOVB	10(R4),(SP)			; *(CCB),*
000006	004767  000000V				JSR	PC,FIND.LUNBLK
000012	010001 					MOV	R0,R1				; *,LUNBLK
000014	005726 					TST	(SP)+
000016	005701 					TST	R1				; LUNBLK
000020	001013 					BNE	1$
000022	005046 					CLR	-(SP)				;					0602
000024	010446 					MOV	R4,-(SP)			; CCB,*
000026	012746  100034 				MOV	#-77744,-(SP)
000032	012746  000003 				MOV	#3,-(SP)
000036	004767  000000G				JSR	PC,$STOP
000042	062706  000010 				ADD	#10,SP
000046	000437 					BR	6$				;					0600
000050	126127  000006  000003 		1$:	CMPB	6(R1),#3			; *(LUNBLK),*				0605
000056	001033 					BNE	6$
000060	005761  000024 				TST	24(R1)				; *(LUNBLK)
000064	001030 					BNE	6$
000066	020327  000004 				CMP	R3,#4				; FCM,*					0609
000072	001021 					BNE	5$
000074	016400  000014 				MOV	14(R4),R0			; *(CCB),*				0612
000100	020027  100130 				CMP	R0,#-77650
000104	001003 					BNE	2$
000106	012700  177702 				MOV	#-76,R0
000112	000407 					BR	4$
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  16
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (2)

000114	020027  100142 			2$:	CMP	R0,#-77636
000120	001002 					BNE	3$
000122	005000 					CLR	R0
000124	000402 					BR	4$
000126	012700  177710 			3$:	MOV	#-70,R0
000132	010061  000024 			4$:	MOV	R0,24(R1)			; *,*(LUNBLK)
000136	010146 				5$:	MOV	R1,-(SP)			; LUNBLK,*				0622
000140	004767  000000V				JSR	PC,TRY.SOME.RCVS
000144	005726 					TST	(SP)+				;					0607
000146	004767  000000G			6$:	JSR	PC,$CCBRT			;					0625
000152	000207 					RTS	PC				;					0559
; Routine Size:  54 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  5 words


;	  0627	
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  17
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (3)

;	  0628	global routine DLXCCP (NMXDB, CCB) : MCB_DB_CCB novalue =
;	  0629	
;	  0630	!++
;	  0631	! FUNCTIONAL DESCRIPTION:
;	  0632	!
;	  0633	!    This routine implements the state machine for Direct Line Access
;	  0634	!    functions OPEN and CLOSE. It ensures an orderly transition between
;	  0635	!    NMX and an Entity's Owner.
;	  0636	!
;	  0637	! FORMAL PARAMETERS:
;	  0638	!
;	  0639	!	NMXDB - NMX process Data Base
;	  0640	!       CCB - the CCB which Dispatched us
;	  0641	!
;	  0642	! IMPLICIT INPUTS:
;	  0643	!
;	  0644	!       None
;	  0645	!
;	  0646	! IMPLICIT OUTPUTS:
;	  0647	!
;	  0648	!	None
;	  0649	!
;	  0650	! ROUTINE VALUE:
;	  0651	!
;	  0652	!	None
;	  0653	!
;	  0654	! SIDE EFFECTS:
;	  0655	!
;	  0656	!	None
;	  0657	!--
;	  0658	
;	  0659	    begin
;	  0660	
;	  0661	    map
;	  0662		NMXDB : ref NMXDB_BLOCK,
;	  0663		CCB : ref DLX_CCB_BLOCK;
;	  0664	
;	  0665	    bind
;	  0666		LUN_BLOCK = .CCB [C_DLX_LUNBLK] : DLX_LUN_BLOCK,
;	  0667		ENTBLK = .LUN_BLOCK [LUN_ENTITY_ADDRESS] : block field (NMX_GENERAL_FIELDS, NMX_LINK_FIELDS,
;	  0668	                NMX_CIRCUIT_FIELDS, NMX_LINE_FIELDS);
;	  0669	
;	  0670	!
;	  0671	! Dispatch upon current state
;	  0672	!
;	  0673	    MAP$ (.LUN_BLOCK [LUN_ENTITY_BIAS]);
;	  0674	
;	  0675	    case .CCB [C_DLX_STATE] from DLX_STATE_LOW to DLX_STATE_HIGH of
;	  0676		set
;	  0677	
;	  0678		[DLX_STOP_OWNER] :
;	  0679		    begin
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  18
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (3)

;	  0680		    CCB [C_DLX_STATE] = DLX_REQUEST_ENTITY;
;	  0681		    $DLL_REQUEST_CIRCUIT ((.CCB), .ENTBLK [GENERAL_PROVIDER_PIX], .LUN_BLOCK [LUN_ID]);
;	  0682		    end;
;	  0683	
;	  0684		[DLX_REQUEST_ENTITY] :
;	  0685		    begin
;	  0686	
;	  0687		    if .CCB [C_STS]
;	  0688		    then
;	  0689			begin
;	  0690			CCB [C_DLX_STATE] = DLX_ENTER_MAINT;
;	  0691			$DLL_ENTER_MAINTENANCE ((.CCB), .ENTBLK [GENERAL_PROVIDER_PIX]);
;	  0692			end
;	  0693		    else
;	  0694			begin
;	  0695			LUN_BLOCK [LUN_ERROR_CODE] = IE$CNR;
;	  0696			CCB [C_DLX_STATE] = DLX_START_OWNER;
;	  0697			CCB [C_FNC] = FC_CTL;
;	  0698			CCB [C_MOD] = FM_STR;
;	  0699			CCB [C_DLX_EID] = .ENTBLK [GENERAL_OWNER_ID];
;	  0700			$MCB_SCHEDULE_CCB (.CCB);
;	  0701			end;
;	  0702	
;	  0703		    end;
;	  0704	
;	  0705		[DLX_RELEASE_ENTITY] :
;	  0706		    begin
;	  0707		    CCB [C_DLX_STATE] = DLX_START_OWNER;
;	  0708		    CCB [C_FNC] = FC_CTL;
;	  0709		    CCB [C_MOD] = FM_STR;
;	  0710		    CCB [C_DLX_EID] = .ENTBLK [GENERAL_OWNER_ID];
;	  0711		    $MCB_SCHEDULE_CCB (.CCB);
;	  0712		    end;
;	  0713	
;	  0714		[DLX_START_OWNER] :
;	  0715		    begin
;	  0716		    ENTBLK [LINK_LUN_BLOCK] = 0;
;	  0717		    ENTBLK [LINK_USER_ID] = .ENTBLK [GENERAL_OWNER_ID];
;	  0718	            begin
;	  0719	
;	  0720	            local
;	  0721	                IOP : ref NMX_IOP_BLOCK;
;	  0722	
;	  0723	            IOP = .CCB [C_DLX_IOP];
;	  0724		    (.IOP [I_LN2]) = 0;
;	  0725		    EXTRACT_LUNBLK (.LUN_BLOCK [LUN_ID]);
;	  0726		    $NMX_RETURN_RSX_IOP (.IOP, .LUN_BLOCK [LUN_ERROR_CODE], 0);
;	  0727	            end;
;	  0728		    $MCB_RETURN_DSR (DLX_LUN_ALLOCATION, .CCB [C_DLX_LUNBLK]);
;	  0729		    $MCB_RETURN_CCB (.CCB);
;	  0730		    end;
;	  0731	
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  19
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (3)

;	  0732		[inrange, outrange] :
;	  0733		    SIGNAL_STOP (NMX$_ICP, .CCB, .CCB [C_DLX_STATE]);
;	  0734		tes;
;	  0735	
;	  0736	    end;					!of DLXCCP


						.GLOBL	KISAR6, $SCHED, $RSX, $IOFIN, $MCB
						.GLOBL	$DSRRT


						.SBTTL	DLXCCP
000000	010446 				DLXCCP::MOV	R4,-(SP)			;					0628
000002	010400 					MOV	R4,R0				;					0666
000004	016046  000030 				MOV	30(R0),-(SP)
000010	011600 					MOV	(SP),R0				;					0659
000012	016001  000002 				MOV	2(R0),R1
000016	016067  000004  000000G			MOV	4(R0),KISAR6			;					0673
000024	012700  000024 				MOV	#24,R0				;					0675
000030	060400 					ADD	R4,R0
000032	010002 					MOV	R0,R2
000034	011200 					MOV	(R2),R0
000036	005300 					DEC	R0
000040	020027  000006 				CMP	R0,#6
000044	101003 					BHI	1$
000046	006300 					ASL	R0
000050	066007  000000'				ADD	P.AAA(R0),PC			; Case dispatch
000054	011246 				1$:	MOV	(R2),-(SP)			;					0733
000056	016646  000004 				MOV	4(SP),-(SP)
000062	012746  100034 				MOV	#-77744,-(SP)
000066	012746  000003 				MOV	#3,-(SP)
000072	004767  000000G				JSR	PC,$STOP
000076	062706  000010 				ADD	#10,SP
000102	000542 					BR	8$				;					0675
000104	012712  000003 			2$:	MOV	#3,(R2)				;					0680
000110	016600  000002 				MOV	2(SP),R0			;					0681
000114	116160  000025  000011 			MOVB	25(R1),11(R0)
000122	011602 					MOV	(SP),R2
000124	116260  000007  000010 			MOVB	7(R2),10(R0)
000132	112760  000010  000012 			MOVB	#10,12(R0)
000140	112760  000002  000013 			MOVB	#2,13(R0)
000146	000443 					BR	6$
000150	016600  000002 			3$:	MOV	2(SP),R0			;					0687
000154	032760  000001  000014 			BIT	#1,14(R0)
000162	001414 					BEQ	4$
000164	012712  000004 				MOV	#4,(R2)				;					0690
000170	116160  000025  000011 			MOVB	25(R1),11(R0)			;					0691
000176	112760  000002  000012 			MOVB	#2,12(R0)
000204	112760  000006  000013 			MOVB	#6,13(R0)
000212	000421 					BR	6$
000214	011600 				4$:	MOV	(SP),R0				;					0695
000216	012760  177667  000022 			MOV	#-111,22(R0)
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  20
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (3)

000224	012712  000007 			5$:	MOV	#7,(R2)				;					0707
000230	016600  000002 				MOV	2(SP),R0			;					0708
000234	112760  000010  000012 			MOVB	#10,12(R0)
000242	112760  000002  000013 			MOVB	#2,13(R0)			;					0709
000250	016160  000026  000010 			MOV	26(R1),10(R0)			;					0710
000256	016604  000002 			6$:	MOV	2(SP),R4			;					0711
000262	004767  000000G				JSR	PC,$SCHED
000266	000450 					BR	8$				;					0675
000270	005061  000032 			7$:	CLR	32(R1)				;					0716
000274	016161  000026  000030 			MOV	26(R1),30(R1)			;					0717
000302	016600  000002 				MOV	2(SP),R0			;					0723
000306	016003  000026 				MOV	26(R0),R3			; *,IOP
000312	005073  000006 				CLR	@6(R3)				; *(IOP)				0724
000316	005046 					CLR	-(SP)				;					0725
000320	016600  000002 				MOV	2(SP),R0
000324	116016  000007 				MOVB	7(R0),(SP)
000330	004767  000000V				JSR	PC,EXTRACT.LUNBLK
000334	004767  000000G				JSR	PC,$RSX				;					0726
000340	016602  000002 				MOV	2(SP),R2
000344	016200  000022 				MOV	22(R2),R0
000350	005001 					CLR	R1
000352	004767  000000G				JSR	PC,$IOFIN
000356	004767  000000G				JSR	PC,$MCB
000362	016600  000002 				MOV	2(SP),R0			;					0728
000366	012701  000026 				MOV	#26,R1
000372	004767  000000G				JSR	PC,$DSRRT
000376	016604  000004 				MOV	4(SP),R4			;					0729
000402	004767  000000G				JSR	PC,$CCBRT
000406	005726 					TST	(SP)+				;					0715
000410	022626 				8$:	CMP	(SP)+,(SP)+			;					0628
000412	000207 					RTS	PC
; Routine Size:  134 words,	Routine Base:  $CODE$ + 0154
; Maximum stack depth per invocation:  7 words


000000						.PSECT	$PLIT$,  RO ,  D  

					P.AAA:						; CASE Table for DLXCCP+0050		0675
000000	000000 					.WORD	0				; [1$]
000002	000030 					.WORD	30				; [2$]
000004	000074 					.WORD	74				; [3$]
000006	000000 					.WORD	0				; [1$]
000010	000000 					.WORD	0				; [1$]
000012	000150 					.WORD	150				; [5$]
000014	000214 					.WORD	214				; [7$]



;	  0737	
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  21
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (4)

;	  0738	global routine DLXCON (UCB, IOP) : NMX$LKG_UCB_IOP novalue =
;	  0739	
;	  0740	!++
;	  0741	! FUNCTIONAL DESCRIPTION:
;	  0742	!
;	  0743	!	Process RSX I/O Packets associated with
;	  0744	!	Direct Circuit/Line Access functions.
;	  0745	!
;	  0746	! FORMAL PARAMETERS:
;	  0747	!
;	  0748	!	IOP - the RSX IOP
;	  0749	!
;	  0750	! IMPLICIT INPUTS:
;	  0751	!
;	  0752	!	Misc NMXDB data base items
;	  0753	!
;	  0754	! IMPLICIT OUTPUTS:
;	  0755	!
;	  0756	!	Misc NMXDB data base items
;	  0757	!
;	  0758	! ROUTINE VALUE:
;	  0759	!
;	  0760	!	None
;	  0761	!
;	  0762	! SIDE EFFECTS:
;	  0763	!
;	  0764	!	None
;	  0765	!--
;	  0766	
;	  0767	    begin
;	  0768	
;	  0769	    map
;	  0770		IOP : ref NMX_IOP_BLOCK;
;	  0771	
;	  0772	    local
;	  0773		NMXDB : ref NMXDB_BLOCK;
;	  0774	
;	  0775	    $MCB_RSX_TO_MCB (.UCB, NMXDB);
;	  0776	
;	  0777	!+
;	  0778	! OPEN MCB Entity:
;	  0779	!
;	  0780	!     Basic algorithm is:
;	  0781	!
;	  0782	!     DLXIOP: Validate 2nd LUN word is 0
;	  0783	!             Verify acceptable Network Management service state
;	  0784	!             Allocate the Logical Unit Table
;	  0785	!             Assign the Entity
;	  0786	!             Stop the current Owner
;	  0787	!     DLXCCP: Identify Entity Link
;	  0788	!     DLXCCP: Initialize Maintenance Mode
;	  0789	!     DLXXCP: Complete the IOP
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  22
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (4)

;	  0790	!-
;	  0791		    begin
;	  0792	
;	  0793		    local
;	  0794			CCB : ref DLX_CCB_BLOCK,
;	  0795			ERROR_CODE,
;	  0796			LUNBLK : ref DLX_LUN_BLOCK,
;	  0797			ENTBLK : ref block field (NMX_GENERAL_FIELDS, NMX_LINK_FIELDS, NMX_CIRCUIT_FIELDS, NMX_LINE_FIELDS);
;	  0798	
;	  0799		    if .(.IOP [I_LN2]) neq 0
;	  0800		    then
;	  0801			begin
;	  0802	
;	  0803			local
;	  0804			    UCB;
;	  0805	
;	  0806			$MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  0807			IOFIN$ (.UCB, .IOP, IE$ALN, 0);
;	  0808			return
;	  0809			end;
;	  0810	
;	  0811		    if not $NMX_GET_NMX_CCB (.IOP, CCB)
;	  0812		    then
;	  0813			return
;	  0814		    else
;	  0815	!
;	  0816	! The IOP was successfully converted to a CCB format. This
;	  0817	! was done to allow ease of ENTITY lookup. The NMPAR block
;	  0818	! will be thrown away and the CCB reformatted for DLX usage.
;	  0819	!
;	  0820			begin
;	  0821	                begin
;	  0822	
;	  0823	                map
;	  0824	                    CCB : ref NMX_CCB_BLOCK;
;	  0825	
;	  0826			bind
;	  0827			    NMPAR = CCB [C_NM_NMPAR] : ref NMX_NMPAR_BLOCK;
;	  0828	
;	  0829			ERROR_CODE = IE$BDV;
;	  0830	
;	  0831			if ((ENTBLK = (selectone .IOP [I_NM_ENTITY] of
;	  0832				set
;	  0833				[NMX$ENT_ckt] : $NMX_MAP_ENTITY_ID (.IOP [I_NM_ENTITY], byt$ptr (NMPAR [NMX_NMPAR_ENTITY]));
;	  0834				[NMX$ENT_lin] : $NMX_MAP_ENTITY_ID (.IOP [I_NM_ENTITY], byt$ptr (NMPAR [NMX_NMPAR_ENTITY]));
;	  0835				[otherwise] : 0;
;	  0836				tes)) neqa 0) and
;	  0837	                   (.ENTBLK [GENERAL_NAME_LENGTH] neq 0)
;	  0838			then
;	  0839			    ERROR_CODE = (selectone true of
;	  0840	                                  set
;	  0841	                                  [.ENTBLK [LINK_LUN_BLOCK] neq 0]: IE$DAA;
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  23
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (4)

;	  0842	                                  [.ENTBLK [GENERAL_OWNER_ID] eql 0]: IE$BDV;
;	  0843	                                  [.ENTBLK [GENERAL_PROVIDER_ID]  eql 0]: IE$BDV;
;	  0844	                                  [.ENTBLK [LINK_STATE] eql LINK_OFF] : IE$DAA;
;	  0845	                                  [(.ENTBLK [GENERAL_SYSTEM_FLAGS] and NMX$FLG_maintenance_allowed) eql 0]: IE$PRI;
;	  0846	                                  [otherwise]: IS$SUC;
;	  0847	                                  tes);
;	  0848	
;	  0849			$MCB_RETURN_DSR (NMX_NMPAR_ALLOCATION, .CCB [C_NM_NMPAR]);	! Return Allocated Storage
;	  0850	                end;
;	  0851	!
;	  0852	! If the Entity is available and known try to assign it with a LUN_BLOCK
;	  0853	!
;	  0854	
;	  0855			if .ERROR_CODE eql IS$SUC
;	  0856			then
;	  0857			    begin			! Successful, try to get LUNBLK
;	  0858	
;	  0859			    if (LUNBLK = ALLOCATE_LUNBLK (.ENTBLK)) eql 0
;	  0860			    then
;	  0861				begin
;	  0862	
;	  0863				local
;	  0864				    UCB;
;	  0865	
;	  0866				$MCB_RETURN_CCB (.CCB);	! Return CCB
;	  0867				$MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  0868				IOFIN$ (.UCB, .IOP, IE$NDR, 0);
;	  0869				return;
;	  0870				end;
;	  0871	
;	  0872	                    %(change state ?)%
;	  0873			    ENTBLK [LINK_LUN_BLOCK] = .LUNBLK;
;	  0874			    (.IOP [I_LN2]) = .LUNBLK;
;	  0875			    CCB [C_DLX_EID] = .ENTBLK [GENERAL_OWNER_ID];
;	  0876			    CCB [C_FNC] = FC_CTL;
;	  0877			    CCB [C_MOD] = FM_STP;
;	  0878			    CCB [C_DLX_STATE] = DLX_STOP_OWNER;
;	  0879			    CCB [C_DLX_IOP] = .IOP;
;	  0880			    CCB [C_DLX_LUNBLK] = .LUNBLK;
;	  0881			    $MCB_SCHEDULE_CCB (.CCB);
;	  0882			    $MCB_MCB_TO_RSX (.NMXDB);
;	  0883			    end
;	  0884			else
;	  0885			    begin			! Unsuccessful, just return resources and leave
;	  0886	
;	  0887			    local
;	  0888				UCB;
;	  0889	
;	  0890			    $MCB_RETURN_CCB (.CCB);	! Return CCB
;	  0891			    $MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  0892			    IOFIN$ (.UCB, .IOP, .ERROR_CODE, 0);
;	  0893			    end;
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  24
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (4)

;	  0894	
;	  0895			end;
;	  0896	
;	  0897		    end;
;	  0898	
;	  0899	    end;					!of DLXCON


						.GLOBL	NX.ITC, NM.ENT


						.SBTTL	DLXCON
000570						.PSECT	$CODE$,  RO 

000000	004167  000000G			DLXCON::JSR	R1,$SAVE5			;					0738
000004	162706  000010 				SUB	#10,SP
000010	010146 					MOV	R1,-(SP)
000012	004767  000000G				JSR	PC,$MCB				;					0775
000016	010566  000010 				MOV	R5,10(SP)			; $MCB$R5,NMXDB
000022	011600 					MOV	(SP),R0				;					0799
000024	005770  000006 				TST	@6(R0)
000030	001406 					BEQ	1$
000032	004767  000000G				JSR	PC,$RSX				;					0806
000036	011603 					MOV	(SP),R3				;					0807
000040	012700  177736 				MOV	#-42,R0
000044	000563 					BR	13$
000046	016605  000010 			1$:	MOV	10(SP),R5			; NMXDB,*				0811
000052	011601 					MOV	(SP),R1
000054	004767  000000G				JSR	PC,NX.ITC
000060	010066  000004 				MOV	R0,4(SP)			; *,CCB
000064	001002 					BNE	2$				;					0813
000066	000167  000466 				JMP	17$
000072	012700  000026 			2$:	MOV	#26,R0				;					0827
000076	066600  000004 				ADD	4(SP),R0			; CCB,*
000102	010066  000010 				MOV	R0,10(SP)
000106	012702  177711 				MOV	#-67,R2				; *,ERROR.CODE				0829
000112	011600 					MOV	(SP),R0				;					0831
000114	016003  000032 				MOV	32(R0),R3
000120	072327  177770 				ASH	#-10,R3
000124	042703  177760 				BIC	#177760,R3
000130	020327  000004 				CMP	R3,#4
000134	001403 					BEQ	3$				;					0833
000136	020327  000002 				CMP	R3,#2				;					0831
000142	001012 					BNE	4$
000144	017601  000010 			3$:	MOV	@10(SP),R1			;					0834
000150	062701  000004 				ADD	#4,R1
000154	010300 					MOV	R3,R0
000156	004767  000000G				JSR	PC,NM.ENT
000162	010066  000006 				MOV	R0,6(SP)			; *,ENTBLK
000166	000403 					BR	5$				;					0831
000170	005066  000006 			4$:	CLR	6(SP)				; ENTBLK
000174	020707 					CMP	PC,PC
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  25
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (4)

000176	001452 				5$:	BEQ	12$
000200	105776  000006 				TSTB	@6(SP)				; ENTBLK				0837
000204	001447 					BEQ	12$
000206	016600  000006 				MOV	6(SP),R0			; ENTBLK,*				0841
000212	005760  000032 				TST	32(R0)				; *(ENTBLK)
000216	001017 					BNE	8$				;					0839
000220	005760  000026 				TST	26(R0)				; *(ENTBLK)				0842
000224	001403 					BEQ	6$				;					0839
000226	005760  000024 				TST	24(R0)				; *(ENTBLK)				0843
000232	001003 					BNE	7$
000234	012702  177711 			6$:	MOV	#-67,R2				; *,ERROR.CODE				0839
000240	000431 					BR	12$
000242	016600  000006 			7$:	MOV	6(SP),R0			; ENTBLK,*				0844
000246	126027  000034  000001 			CMPB	34(R0),#1			; *(ENTBLK),*
000254	001003 					BNE	9$
000256	012702  177770 			8$:	MOV	#-10,R2				; *,ERROR.CODE				0839
000262	000420 					BR	12$
000264	005000 				9$:	CLR	R0				;					0845
000266	016601  000006 				MOV	6(SP),R1			; ENTBLK,*
000272	032761  000400  000020 			BIT	#400,20(R1)			; *,*(ENTBLK)
000300	001001 					BNE	10$
000302	005200 					INC	R0
000304	020027  000001 			10$:	CMP	R0,#1				;					0839
000310	001003 					BNE	11$
000312	012702  177760 				MOV	#-20,R2				; *,ERROR.CODE
000316	000402 					BR	12$
000320	012702  000001 			11$:	MOV	#1,R2				; *,ERROR.CODE
000324	017600  000010 			12$:	MOV	@10(SP),R0			;					0849
000330	012701  000026 				MOV	#26,R1
000334	004767  000000G				JSR	PC,$DSRRT
000340	020227  000001 				CMP	R2,#1				; ERROR.CODE,*				0855
000344	001072 					BNE	15$
000346	016646  000006 				MOV	6(SP),-(SP)			; ENTBLK,*				0859
000352	004767  000000V				JSR	PC,ALLOCATE.LUNBLK
000356	010066  000004 				MOV	R0,4(SP)			; *,LUNBLK
000362	005726 					TST	(SP)+
000364	005766  000002 				TST	2(SP)				; LUNBLK
000370	001012 					BNE	14$
000372	016604  000004 				MOV	4(SP),R4			; CCB,*					0866
000376	004767  000000G				JSR	PC,$CCBRT
000402	004767  000000G				JSR	PC,$RSX				;					0867
000406	011603 					MOV	(SP),R3				;					0868
000410	012700  177670 				MOV	#-110,R0
000414	000456 				13$:	BR	16$
000416	016600  000006 			14$:	MOV	6(SP),R0			; ENTBLK,*				0873
000422	016660  000002  000032 			MOV	2(SP),32(R0)			; LUNBLK,*(ENTBLK)
000430	011600 					MOV	(SP),R0				;					0874
000432	016670  000002  000006 			MOV	2(SP),@6(R0)			; LUNBLK,*
000440	016600  000004 				MOV	4(SP),R0			; CCB,*					0875
000444	016601  000006 				MOV	6(SP),R1			; ENTBLK,*
000450	016160  000026  000010 			MOV	26(R1),10(R0)			; *(ENTBLK),*(CCB)
000456	112760  000010  000012 			MOVB	#10,12(R0)			; *,*(CCB)				0876
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  26
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (4)

000464	112760  000004  000013 			MOVB	#4,13(R0)			; *,*(CCB)				0877
000472	012760  000002  000024 			MOV	#2,24(R0)			; *,*(CCB)				0878
000500	011676  000010 				MOV	(SP),@10(SP)			;					0879
000504	016600  000004 				MOV	4(SP),R0			; CCB,*					0880
000510	016660  000002  000030 			MOV	2(SP),30(R0)			; LUNBLK,*(CCB)
000516	010004 					MOV	R0,R4				; CCB,*					0881
000520	004767  000000G				JSR	PC,$SCHED
000524	004767  000000G				JSR	PC,$RSX				;					0882
000530	000413 					BR	17$				;					0855
000532	016604  000004 			15$:	MOV	4(SP),R4			; CCB,*					0890
000536	004767  000000G				JSR	PC,$CCBRT
000542	004767  000000G				JSR	PC,$RSX				;					0891
000546	011603 					MOV	(SP),R3				;					0892
000550	010200 					MOV	R2,R0				; ERROR.CODE,*
000552	005001 				16$:	CLR	R1
000554	004767  000000G				JSR	PC,$IOFIN
000560	062706  000012 			17$:	ADD	#12,SP				;					0738
000564	000207 					RTS	PC
; Routine Size:  187 words,	Routine Base:  $CODE$ + 0570
; Maximum stack depth per invocation:  13 words
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  27
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (5)

;	  0900	global routine DLXCTL (NMXDB, CCB, FCM) : MCB_DB_CCB_MOD novalue = 	!Process CTLs
;	  0901	
;	  0902	!++
;	  0903	! FUNCTIONAL DESCRIPTION:
;	  0904	!
;	  0905	!    This routine fields CTL/NM requests when DLX has a CIRCUIT/LINE
;	  0906	!    assigned.
;	  0907	!
;	  0908	! FORMAL PARAMETERS:
;	  0909	!
;	  0910	!	NMXDB - NMX process Data Base
;	  0911	!       CCB - the CCB which Dispatched us
;	  0912	!       FCM - the contents of C.MOD
;	  0913	!
;	  0914	! IMPLICIT INPUTS:
;	  0915	!
;	  0916	!       None
;	  0917	!
;	  0918	! IMPLICIT OUTPUTS:
;	  0919	!
;	  0920	!	None
;	  0921	!
;	  0922	! ROUTINE VALUE:
;	  0923	!
;	  0924	!	None
;	  0925	!
;	  0926	! SIDE EFFECTS:
;	  0927	!
;	  0928	!	None
;	  0929	!--
;	  0930	
;	  0931	    begin
;	  0932	
;	  0933	    map
;	  0934		NMXDB : ref NMXDB_BLOCK,
;	  0935		CCB : ref NMX_CCB_BLOCK;
;	  0936	
;	  0937	!
;	  0938	! Validate this is a Network Management Control Request. If not
;	  0939	! hold the show otherwise process it.
;	  0940	!
;	  0941	
;	  0942	    if .FCM neq FM_NM then SIGNAL_STOP (NMX$_IFM, .CCB);
;	  0943	
;	  0944	    case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
;	  0945		set
;	  0946	
;	  0947		[NMX$FNC_ret, NMX$FNC_sho] :    ! Shows complete with nothing
;	  0948		    begin
;	  0949		    CCB [C_CNT] = 0;
;	L 0950		    CCB [C_STS] = $NM$_SUC;
; %PRINT:	Function Completed Successfuly
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  28
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (5)

;	  0951		    end;
;	  0952	
;	  0953		[NMX$FNC_set, NMX$FNC_clr, NMX$FNC_zro, NMX$FNC_szc] :
;	  0954	                                        ! Modifications can't be done now
;	  0955		    CCB [C_STS] = $NM$ERR_CWS;
;	  0956	
;	  0957		[inrange, outrange] : 			! Other items are bugs
;	  0958		    CCB [C_STS] = $NM$ERR_UFO;
;	  0959		tes;
;	  0960	
;	  0961	!
;	  0962	! Complete the CCB
;	  0963	!
;	  0964	    CCB [C_FNC] = FC_CCP;
;	  0965	    $MCB_SCHEDULE_CCB (.CCB);
;	  0966	    end;					!of DLXCTL


						.SBTTL	DLXCTL
000000	020327  000006 			DLXCTL::CMP	R3,#6				; FCM,*					0942
000004	001411 					BEQ	1$
000006	010446 					MOV	R4,-(SP)			; CCB,*
000010	012746  100024 				MOV	#-77754,-(SP)
000014	012746  000002 				MOV	#2,-(SP)
000020	004767  000000G				JSR	PC,$STOP
000024	062706  000006 				ADD	#6,SP
000030	012700  000014 			1$:	MOV	#14,R0				;					0958
000034	060400 					ADD	R4,R0				; CCB,*
000036	116401  000024 				MOVB	24(R4),R1			; *(CCB),*				0944
000042	006201 					ASR	R1
000044	042701  177600 				BIC	#177600,R1
000050	005301 					DEC	R1
000052	020127  000005 				CMP	R1,#5
000056	101003 					BHI	2$
000060	006301 					ASL	R1
000062	066107  000016'				ADD	P.AAB(R1),PC			; Case dispatch
000066	012710  177777 			2$:	MOV	#-1,(R0)			;					0958
000072	000407 					BR	5$				;					0944
000074	005064  000022 			3$:	CLR	22(R4)				; *(CCB)				0949
000100	012710  000001 				MOV	#1,(R0)				;					0950
000104	000402 					BR	5$				;					0944
000106	012710  177765 			4$:	MOV	#-13,(R0)			;					0955
000112	112764  000022  000012 		5$:	MOVB	#22,12(R4)			; *,*(CCB)				0964
000120	004767  000000G				JSR	PC,$SCHED			;					0965
000124	000207 					RTS	PC				;					0900
; Routine Size:  43 words,	Routine Base:  $CODE$ + 1356
; Maximum stack depth per invocation:  4 words


000016						.PSECT	$PLIT$,  RO ,  D  

					P.AAB:						; CASE Table for DLXCTL+0062		0944
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  29
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (5)

000016	000020 					.WORD	20				; [4$]
000020	000020 					.WORD	20				; [4$]
000022	000020 					.WORD	20				; [4$]
000024	000006 					.WORD	6				; [3$]
000026	000020 					.WORD	20				; [4$]
000030	000006 					.WORD	6				; [3$]



;	  0967	
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  30
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (6)

;	  0968	global routine DLXDSC (UCB, IOP) : NMX$LKG_UCB_IOP novalue =
;	  0969	
;	  0970	!++
;	  0971	! FUNCTIONAL DESCRIPTION:
;	  0972	!
;	  0973	!	Process RSX I/O Packets associated with
;	  0974	!	Direct Circuit/Line Access functions.
;	  0975	!
;	  0976	! FORMAL PARAMETERS:
;	  0977	!
;	  0978	!	IOP - the RSX IOP
;	  0979	!
;	  0980	! IMPLICIT INPUTS:
;	  0981	!
;	  0982	!	Misc NMXDB data base items
;	  0983	!
;	  0984	! IMPLICIT OUTPUTS:
;	  0985	!
;	  0986	!	Misc NMXDB data base items
;	  0987	!
;	  0988	! ROUTINE VALUE:
;	  0989	!
;	  0990	!	None
;	  0991	!
;	  0992	! SIDE EFFECTS:
;	  0993	!
;	  0994	!	None
;	  0995	!--
;	  0996	
;	  0997	    begin
;	  0998	
;	  0999	    map
;	  1000		IOP : ref NMX_IOP_BLOCK;
;	  1001	
;	  1002	    local
;	  1003		NMXDB : ref NMXDB_BLOCK;
;	  1004	
;	  1005	    $MCB_RSX_TO_MCB (.UCB, NMXDB);
;	  1006	
;	  1007	!+
;	  1008	! CLOSE MCB Entity:
;	  1009	!
;	  1010	!    Basic Algorithm is:
;	  1011	!
;	  1012	!    DLXIOP: Validate 2nd LUN word <> 0
;	  1013	!            Return all RCPs
;	  1014	!            Fail outstanding RCVs
;	  1015	!            Stop Protocol on Entity
;	  1016	!    DLXXCP: Release Entity Link
;	  1017	!    DLXCCP: Start the original Owner
;	  1018	!    DLXCCP: Deassign the Entity
;	  1019	!            Complete the IOP
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  31
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (6)

;	  1020	!-
;	  1021		    begin
;	  1022	
;	  1023		    local
;	  1024			LUNBLK : ref DLX_LUN_BLOCK;
;	  1025	
;	  1026		    if (LUNBLK = .(.IOP [I_LN2])) eql 0
;	  1027		    then
;	  1028			begin
;	  1029	
;	  1030			local
;	  1031			    UCB;
;	  1032	
;	  1033			$MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  1034			IOFIN$ (.UCB, .IOP, IE$NLN, 0);
;	  1035			end
;	  1036		    else
;	  1037			begin
;	  1038	
;	  1039			local
;	  1040			    NMXDB : ref NMXDB_BLOCK,
;	  1041			    RCPCCB : ref block field (C_FIELDS),
;	  1042			    RCVIOP : ref NMX_IOP_BLOCK,
;	  1043			    CCB : ref DLX_CCB_BLOCK;
;	  1044	
;	  1045			bind
;	  1046			    ENTBLK = LUNBLK [LUN_ENTITY_ADDRESS] : ref NMX_GENERAL_BLOCK;
;	  1047	
;	  1048			if not $MCB_GET_CCB (CCB)
;	  1049			then
;	  1050			    begin
;	  1051	
;	  1052			    local
;	  1053				UCB;
;	  1054	
;	  1055			    $MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  1056			    IOFIN$ (.UCB, .IOP, IE$NDR, 0);
;	  1057			    return;
;	  1058			    end;
;	  1059	
;	  1060			LUNBLK [LUN_ERROR_CODE] = IS$SUC;
;	  1061			LUNBLK [LUN_STATE] = LUN_CLOSING;
;	  1062	
;	  1063			while $MCB_DEQUEUE_CCB (LUNBLK [LUN_RCPS], RCPCCB) do
;	  1064			    begin
;	  1065			    RCPCCB [C_FNC] = FC_RCE;
;	  1066			    $MCB_SCHEDULE_CCB (.RCPCCB);
;	  1067			    end;
;	  1068	
;	  1069			MAP$ (.LUNBLK [LUN_ENTITY_BIAS]);
;	  1070			CCB [C_DLX_STATE] = DLX_STOP_PROTOCOL;
;	  1071			CCB [C_DLX_IOP] = .IOP;
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  32
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (6)

;	  1072			CCB [C_DLX_LUNBLK] = .LUNBLK;
;	  1073			$DLL_STOP ((.CCB), .ENTBLK [GENERAL_PROVIDER_PIX]);
;	  1074	                begin
;	  1075	
;	  1076	                local
;	  1077	                     UCB;
;	  1078	
;	  1079			$MCB_MCB_TO_RSX (.NMXDB,UCB);
;	  1080	
;	  1081			while $NMX_DEQUEUE (LUNBLK [LUN_RCVS], RCVIOP) do
;	  1082			    IOFIN$ (.UCB, .RCVIOP, IE$ABO, 0);
;	  1083	
;	  1084	                end;
;	  1085			end;
;	  1086	
;	  1087		    end;
;	  1088	
;	  1089	    end;					!of DLXDSC


						.GLOBL	$CCBGT, $CMQRM, $QRMVF


						.SBTTL	DLXDSC
001504						.PSECT	$CODE$,  RO 

000000	004167  000000G			DLXDSC::JSR	R1,$SAVE5			;					0968
000004	162706  000006 				SUB	#6,SP
000010	010166  000002 				MOV	R1,2(SP)
000014	004767  000000G				JSR	PC,$MCB				;					1005
000020	016600  000002 				MOV	2(SP),R0			;					1026
000024	017016  000006 				MOV	@6(R0),(SP)			; *,LUNBLK
000030	001007 					BNE	1$
000032	004767  000000G				JSR	PC,$RSX				;					1033
000036	016603  000002 				MOV	2(SP),R3			;					1034
000042	012700  177733 				MOV	#-45,R0
000046	000414 					BR	3$
000050	004767  000000G			1$:	JSR	PC,$CCBGT			;					1048
000054	103403 					BCS	2$
000056	010466  000004 				MOV	R4,4(SP)			; $MCB$R4,CCB
000062	000412 					BR	4$
000064	004767  000000G			2$:	JSR	PC,$RSX				;					1055
000070	016603  000002 				MOV	2(SP),R3			;					1056
000074	012700  177670 				MOV	#-110,R0
000100	005001 				3$:	CLR	R1
000102	004767  000000G				JSR	PC,$IOFIN
000106	000513 					BR	8$				;					1050
000110	011600 				4$:	MOV	(SP),R0				; LUNBLK,*				1060
000112	012760  000001  000022 			MOV	#1,22(R0)			; *,*(LUNBLK)
000120	112760  000002  000006 			MOVB	#2,6(R0)			; *,*(LUNBLK)				1061
000126	010003 					MOV	R0,R3				; LUNBLK,*				1063
000130	062703  000014 				ADD	#14,R3
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  33
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (6)

000134	004767  000000G			5$:	JSR	PC,$CMQRM
000140	103407 					BCS	6$
000142	010400 					MOV	R4,R0				; $MCB$R4,RCPCCB
000144	112760  000004  000012 			MOVB	#4,12(R0)			; *,*(RCPCCB)				1065
000152	004767  000000G				JSR	PC,$SCHED			;					1066
000156	000766 					BR	5$				;					1063
000160	011600 				6$:	MOV	(SP),R0				; LUNBLK,*				1069
000162	016067  000004  000000G			MOV	4(R0),KISAR6			; *(LUNBLK),*
000170	016600  000004 				MOV	4(SP),R0			; CCB,*					1070
000174	012760  000005  000024 			MOV	#5,24(R0)			; *,*(CCB)
000202	016660  000002  000026 			MOV	2(SP),26(R0)			; *,*(CCB)				1071
000210	011660  000030 				MOV	(SP),30(R0)			; LUNBLK,*(CCB)				1072
000214	011601 					MOV	(SP),R1				; LUNBLK,*				1073
000216	016100  000002 				MOV	2(R1),R0			; *(LUNBLK),*
000222	016601  000004 				MOV	4(SP),R1			; CCB,*
000226	116061  000025  000011 			MOVB	25(R0),11(R1)			; *,*(CCB)
000234	010100 					MOV	R1,R0				; CCB,*
000236	112760  000002  000012 			MOVB	#2,12(R0)			; *,*(CCB)
000244	112760  000004  000013 			MOVB	#4,13(R0)			; *,*(CCB)
000252	010104 					MOV	R1,R4				; CCB,*
000254	004767  000000G				JSR	PC,$SCHED
000260	004767  000000G				JSR	PC,$RSX				;					1079
000264	011666  000002 				MOV	(SP),2(SP)			; LUNBLK,*				1081
000270	062766  000010  000002 			ADD	#10,2(SP)
000276	016600  000002 			7$:	MOV	2(SP),R0
000302	004767  000000G				JSR	PC,$QRMVF
000306	006104 					ROL	R4
000310	010166  000004 				MOV	R1,4(SP)
000314	006004 					ROR	R4
000316	103407 					BCS	8$
000320	010103 					MOV	R1,R3				; RCVIOP,*				1082
000322	012700  177761 				MOV	#-17,R0
000326	005001 					CLR	R1
000330	004767  000000G				JSR	PC,$IOFIN
000334	000760 					BR	7$				;					1081
000336	062706  000006 			8$:	ADD	#6,SP				;					0968
000342	000207 					RTS	PC
; Routine Size:  114 words,	Routine Base:  $CODE$ + 1504
; Maximum stack depth per invocation:  10 words
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  34
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (7)

;	  1090	global routine DLXRCP (NMXDB, CCB, FCM) : MCB_DB_CCB_MOD novalue = 	! Process Receives
;	  1091	
;	  1092	!++
;	  1093	! FUNCTIONAL DESCRIPTION:
;	  1094	!
;	  1095	!    Data from an OPENED MCB line is dispatched to here. It is passed
;	  1096	!    on to the user if previous RECEIVEs exist otherwise we queue the
;	  1097	!    data CCB.
;	  1098	!
;	  1099	! FORMAL PARAMETERS:
;	  1100	!
;	  1101	!	NMXDB - NMX Process Data Base
;	  1102	!       CCB - the CCB which dispatched us
;	  1103	!       FCM - the FCM from the CCB
;	  1104	!
;	  1105	! IMPLICIT INPUTS:
;	  1106	!
;	  1107	!	Misc NMXDB items
;	  1108	!
;	  1109	! IMPLICIT OUTPUTS:
;	  1110	!
;	  1111	!	Misc NMXDB items
;	  1112	!
;	  1113	! ROUTINE VALUE:
;	  1114	!
;	  1115	!	None
;	  1116	!
;	  1117	! SIDE EFFECTS:
;	  1118	!
;	  1119	!	None
;	  1120	!--
;	  1121	
;	  1122	    begin
;	  1123	
;	  1124	    map
;	  1125		NMXDB : ref NMXDB_BLOCK,
;	  1126		CCB : ref block field (C_FIELDS);
;	  1127	
;	  1128	    local
;	  1129		LUNBLK : ref DLX_LUN_BLOCK;
;	  1130	
;	  1131	!
;	  1132	! Intercept service slave requests
;	  1133	!
;	  1134	
;	  1135	!   if SERVICE_SLAVE_REQUEST (.CCB) then return;
;	  1136	
;	  1137	!
;	  1138	! If there is a LUN_BLOCK then give to user
;	  1139	!
;	  1140	
;	  1141	    if (LUNBLK = FIND_LUNBLK (.CCB [C_LIN])) neq 0
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  35
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (7)

;	  1142	    then
;	  1143	
;	  1144		if .LUNBLK [LUN_STATE] eql LUN_OPENED
;	  1145		then
;	  1146		    begin
;	  1147		    $MCB_QUEUE_CCB (LUNBLK [LUN_RCPS], .CCB);
;	  1148		    TRY_SOME_RCVS (.LUNBLK);
;	  1149	            return;
;	  1150		    end;
;	  1151	
;	  1152	!
;	  1153	! No takers - throw the message away
;	  1154	!
;	  1155	
;	  1156	    CCB [C_FNC] = FC_RCE;
;	  1157	    $MCB_SCHEDULE_CCB (.CCB);
;	  1158	    end;					!of NMXRCP


						.GLOBL	$CMQIN


						.SBTTL	DLXRCP
000000	005046 				DLXRCP::CLR	-(SP)				;					1141
000002	116416  000010 				MOVB	10(R4),(SP)			; *(CCB),*
000006	004767  000000V				JSR	PC,FIND.LUNBLK
000012	005726 					TST	(SP)+
000014	005700 					TST	R0				; LUNBLK
000016	001417 					BEQ	1$
000020	126027  000006  000003 			CMPB	6(R0),#3			; *(LUNBLK),*				1144
000026	001013 					BNE	1$
000030	010001 					MOV	R0,R1				; LUNBLK,*				1147
000032	062701  000014 				ADD	#14,R1
000036	010103 					MOV	R1,R3
000040	004767  000000G				JSR	PC,$CMQIN
000044	010046 					MOV	R0,-(SP)			; LUNBLK,*				1148
000046	004767  000000V				JSR	PC,TRY.SOME.RCVS
000052	005726 					TST	(SP)+				;					1144
000054	000207 					RTS	PC				;					1146
000056	112764  000004  000012 		1$:	MOVB	#4,12(R4)			; *,*(CCB)				1156
000064	004767  000000G				JSR	PC,$SCHED			;					1157
000070	000207 					RTS	PC				;					1090
; Routine Size:  29 words,	Routine Base:  $CODE$ + 2050
; Maximum stack depth per invocation:  2 words


;	  1159	
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  36
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (8)

;	  1160	global routine DLXRCV (UCB, IOP) : NMX$LKG_UCB_IOP novalue =
;	  1161	
;	  1162	!++
;	  1163	! FUNCTIONAL DESCRIPTION:
;	  1164	!
;	  1165	!	Process RSX I/O Packets associated with
;	  1166	!	Direct Circuit/Line Access functions.
;	  1167	!
;	  1168	! FORMAL PARAMETERS:
;	  1169	!
;	  1170	!	IOP - the RSX IOP
;	  1171	!
;	  1172	! IMPLICIT INPUTS:
;	  1173	!
;	  1174	!	Misc NMXDB data base items
;	  1175	!
;	  1176	! IMPLICIT OUTPUTS:
;	  1177	!
;	  1178	!	Misc NMXDB data base items
;	  1179	!
;	  1180	! ROUTINE VALUE:
;	  1181	!
;	  1182	!	None
;	  1183	!
;	  1184	! SIDE EFFECTS:
;	  1185	!
;	  1186	!	None
;	  1187	!--
;	  1188	
;	  1189	    begin
;	  1190	
;	  1191	    map
;	  1192		IOP : ref NMX_IOP_BLOCK;
;	  1193	
;	  1194	    local
;	  1195		NMXDB : ref NMXDB_BLOCK;
;	  1196	
;	  1197	    $MCB_RSX_TO_MCB (.UCB, NMXDB);
;	  1198	
;	  1199	!+
;	  1200	! RECEIVE a Data Buffer:
;	  1201	!
;	  1202	!    Basic Algorithm is:
;	  1203	!
;	  1204	!    DLXIOP: Validate 2nd LUN word <> 0
;	  1205	!            Validate LUT State is Running
;	  1206	!            Queue RCV IOP
;	  1207	!            Try to Complete RCV IOPs
;	  1208	!-
;	  1209		    begin
;	  1210	
;	  1211		    local
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  37
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (8)

;	  1212			LUNBLK : ref DLX_LUN_BLOCK;
;	  1213	
;	  1214		    if (LUNBLK = .(.IOP [I_LN2])) eql 0
;	  1215		    then
;	  1216			begin
;	  1217	
;	  1218			local
;	  1219			    UCB;
;	  1220	
;	  1221			$MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  1222			IOFIN$ (.UCB, .IOP, IE$NLN, 0);
;	  1223	                return;
;	  1224			end
;	  1225		    else
;	  1226			begin
;	  1227	
;	  1228			local
;	  1229			    NMXDB : ref NMXDB_BLOCK;
;	  1230	
;	  1231			if .LUNBLK [LUN_STATE] neq LUN_OPENED
;	  1232			then
;	  1233			    begin
;	  1234	
;	  1235			    local
;	  1236				UCB;
;	  1237	
;	  1238			    $MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  1239			    IOFIN$ (.UCB, .IOP, IE$NLN, 0);
;	  1240			    return;
;	  1241			    end;
;	  1242	
;	  1243			if .IOP [I_NMX_CNT] eql 0
;	  1244			then
;	  1245			    begin
;	  1246	
;	  1247			    local
;	  1248				UCB;
;	  1249	
;	  1250			    $MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  1251			    IOFIN$ (.UCB, .IOP, IE$SPC, 0);
;	  1252			    return;
;	  1253			    end;
;	  1254	
;	  1255	                if .IOP [I_NMX_ENTITY] eql 0
;	  1256	                then
;	  1257	                    begin
;	  1258	
;	  1259	                    local
;	  1260	                        CKTBLK : ref NMX_CIRCUIT_BLOCK,
;	  1261	                        SAVE_MAP;
;	  1262	
;	  1263	                    SMAP$ (SAVE_MAP);
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  38
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (8)

;	  1264	                    MAP$ (.LUNBLK [LUN_ENTITY_BIAS]);
;	  1265	                    CKTBLK = .LUNBLK [LUN_ENTITY_ADDRESS];
;	  1266	                    IOP [I_NMX_ENTITY] = .CKTBLK [CIRCUIT_SERVICE_TIMER];
;	  1267	                    MAP$ (.SAVE_MAP);
;	  1268	                    end;
;	  1269	
;	  1270			$NMX_ENQUEUE (LUNBLK [LUN_RCVS], .IOP);
;	  1271			TRY_SOME_RCVS (.LUNBLK);
;	  1272			$MCB_MCB_TO_RSX (.NMXDB);
;	  1273			end;
;	  1274	
;	  1275		    end;
;	  1276	
;	  1277	    end;					!of DLXRCV


						.SBTTL	DLXRCV
000000	004167  000000G			DLXRCV::JSR	R1,$SAVE5			;					1160
000004	024646 					CMP	-(SP),-(SP)
000006	010166  000002 				MOV	R1,2(SP)
000012	004767  000000G				JSR	PC,$MCB				;					1197
000016	016600  000002 				MOV	2(SP),R0			;					1214
000022	017016  000006 				MOV	@6(R0),(SP)			; *,LUNBLK
000026	001405 					BEQ	1$				;					1221
000030	011600 					MOV	(SP),R0				; LUNBLK,*				1231
000032	126027  000006  000003 			CMPB	6(R0),#3			; *(LUNBLK),*
000040	001407 					BEQ	2$
000042	004767  000000G			1$:	JSR	PC,$RSX				;					1238
000046	016603  000002 				MOV	2(SP),R3			;					1239
000052	012700  177733 				MOV	#-45,R0
000056	000413 					BR	3$
000060	016600  000002 			2$:	MOV	2(SP),R0			;					1243
000064	005760  000030 				TST	30(R0)
000070	001012 					BNE	4$
000072	004767  000000G				JSR	PC,$RSX				;					1250
000076	016603  000002 				MOV	2(SP),R3			;					1251
000102	012700  177772 				MOV	#-6,R0
000106	005001 				3$:	CLR	R1
000110	004767  000000G				JSR	PC,$IOFIN
000114	000443 					BR	6$				;					1245
000116	012700  000034 			4$:	MOV	#34,R0				;					1255
000122	066600  000002 				ADD	2(SP),R0
000126	010002 					MOV	R0,R2
000130	005712 					TST	(R2)
000132	001015 					BNE	5$
000134	016701  000000G				MOV	KISAR6,R1			; *,SAVE.MAP				1263
000140	011600 					MOV	(SP),R0				; LUNBLK,*				1264
000142	016067  000004  000000G			MOV	4(R0),KISAR6			; *(LUNBLK),*
000150	010003 					MOV	R0,R3				; LUNBLK,*				1265
000152	016300  000002 				MOV	2(R3),R0			; *(LUNBLK),CKTBLK
000156	016012  000040 				MOV	40(R0),(R2)			; *(CKTBLK),*				1266
000162	010167  000000G				MOV	R1,KISAR6			; SAVE.MAP,*				1267
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  39
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (8)

000166	005076  000002 			5$:	CLR	@2(SP)				;					1270
000172	011600 					MOV	(SP),R0				; LUNBLK,*
000174	016670  000002  000012 			MOV	2(SP),@12(R0)			; *,*(LUNBLK)
000202	016660  000002  000012 			MOV	2(SP),12(R0)			; *,*(LUNBLK)
000210	010046 					MOV	R0,-(SP)			; LUNBLK,*				1271
000212	004767  000000V				JSR	PC,TRY.SOME.RCVS
000216	004767  000000G				JSR	PC,$RSX				;					1272
000222	005726 					TST	(SP)+				;					1226
000224	022626 				6$:	CMP	(SP)+,(SP)+			;					1160
000226	000207 					RTS	PC
; Routine Size:  76 words,	Routine Base:  $CODE$ + 2142
; Maximum stack depth per invocation:  10 words
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  40
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (9)

;	  1278	global routine DLXXCP (NMXDB, CCB, FCM) : MCB_DB_CCB_MOD novalue = 	! Process Transmit Completes
;	  1279	
;	  1280	!++
;	  1281	! FUNCTIONAL DESCRIPTION:
;	  1282	!
;	  1283	!    Transmit Completion involves returning the CCB and IOP.
;	  1284	!
;	  1285	! FORMAL PARAMETERS:
;	  1286	!
;	  1287	!    NMXDB - the NMX Process Data Base
;	  1288	!    CCB - the CCB which dispatched us
;	  1289	!    FCM - the functions modifier (ignored)
;	  1290	!
;	  1291	! IMPLICIT INPUTS:
;	  1292	!
;	  1293	!	Misc CCB and NMXDB fields
;	  1294	!
;	  1295	! IMPLICIT OUTPUTS:
;	  1296	!
;	  1297	!	The IOP is returned to the user.
;	  1298	!
;	  1299	! ROUTINE VALUE:
;	  1300	!
;	  1301	!	None
;	  1302	!
;	  1303	! SIDE EFFECTS:
;	  1304	!
;	  1305	!	None
;	  1306	!--
;	  1307	
;	  1308	    begin
;	  1309	
;	  1310	    map
;	  1311		NMXDB : ref NMXDB_BLOCK,
;	  1312		CCB : ref DLX_CCB_BLOCK;
;	  1313	
;	  1314	    bind
;	  1315		LUNBLK = CCB [C_DLX_LUNBLK] : ref DLX_LUN_BLOCK,
;	  1316		ENTITY_BLOCK = LUNBLK [LUN_ENTITY_ADDRESS] : ref block field (NMX_CIRCUIT_FIELDS, NMX_LINE_FIELDS,
;	  1317			NMX_LINK_FIELDS, NMX_GENERAL_FIELDS);
;	  1318	
;	  1319	!
;	  1320	! Dispatch based upon State
;	  1321	!
;	  1322	    MAP$ (.LUNBLK [LUN_ENTITY_BIAS]);
;	  1323	
;	  1324	    case .CCB [C_DLX_STATE] from DLX_STATE_LOW to DLX_STATE_HIGH of
;	  1325		set
;	  1326	
;	  1327		[DLX_TRANSMIT] :
;	  1328		    begin
;	  1329		    LUNBLK [LUN_XMTS] = .LUNBLK [LUN_XMTS] - 1;
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  41
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (9)

;	  1330		    $NMX_RETURN_RSX_IOP (.CCB [C_DLX_IOP], (if .CCB [C_STS] then IS$SUC else IE$SRE), 0);
;	  1331		    $MCB_RETURN_CCB (.CCB);		! Return the CCB
;	  1332		    end;
;	  1333	
;	  1334		[DLX_ENTER_MAINT] :
;	  1335	
;	  1336		    if .CCB [C_STS]
;	  1337		    then
;	  1338			begin
;	  1339			LUNBLK [LUN_STATE] = LUN_OPENED;
;	  1340			LUNBLK [LUN_ERROR_CODE] = 0;
;	  1341			ENTITY_BLOCK [LINK_USER_ID] = .NMXDB [NMX_NMX_PIX]^8 or .LUNBLK [LUN_ID];
;	  1342			$NMX_RETURN_RSX_IOP (.CCB [C_DLX_IOP], IS$SUC, 0);
;	  1343			$MCB_RETURN_CCB (.CCB);		! Return the CCB
;	  1344			end
;	  1345		    else
;	  1346			begin
;	  1347			LUNBLK [LUN_ERROR_CODE] = IE$ISQ;
;	  1348			CCB [C_DLX_STATE] = DLX_RELEASE_ENTITY;
;	  1349			$DLL_RELEASE_CIRCUIT ((.CCB), .ENTITY_BLOCK [GENERAL_PROVIDER_PIX]);
;	  1350			end;
;	  1351	
;	  1352		[DLX_STOP_PROTOCOL] :
;	  1353		    begin
;	  1354		    CCB [C_DLX_STATE] = DLX_RELEASE_ENTITY;
;	  1355		    $DLL_RELEASE_CIRCUIT ((.CCB), .ENTITY_BLOCK [GENERAL_PROVIDER_PIX]);
;	  1356		    end;
;	  1357	
;	  1358		[inrange, outrange] :
;	  1359		    SIGNAL_STOP (NMX$_ICP, .CCB, .CCB [C_DLX_STATE]);
;	  1360		tes;
;	  1361	
;	  1362	    end;					!of DLXXCP


						.SBTTL	DLXXCP
000000	010446 				DLXXCP::MOV	R4,-(SP)			;					1278
000002	010502 					MOV	R5,R2				; *,NMXDB
000004	010400 					MOV	R4,R0				;					1316
000006	016046  000030 				MOV	30(R0),-(SP)
000012	012700  000002 				MOV	#2,R0				;					1308
000016	061600 					ADD	(SP),R0
000020	010003 					MOV	R0,R3
000022	011600 					MOV	(SP),R0				;					1322
000024	016067  000004  000000G			MOV	4(R0),KISAR6
000032	012700  000024 				MOV	#24,R0				;					1324
000036	060400 					ADD	R4,R0
000040	010001 					MOV	R0,R1
000042	011100 					MOV	(R1),R0
000044	005300 					DEC	R0
000046	020027  000006 				CMP	R0,#6
000052	101003 					BHI	1$
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  42
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (9)

000054	006300 					ASL	R0
000056	066007  000032'				ADD	P.AAC(R0),PC			; Case dispatch
000062	011146 				1$:	MOV	(R1),-(SP)			;					1359
000064	016646  000004 				MOV	4(SP),-(SP)
000070	012746  100034 				MOV	#-77744,-(SP)
000074	012746  000003 				MOV	#3,-(SP)
000100	004767  000000G				JSR	PC,$STOP
000104	062706  000010 				ADD	#10,SP
000110	000530 					BR	9$				;					1324
000112	011600 				2$:	MOV	(SP),R0				;					1329
000114	005360  000020 				DEC	20(R0)
000120	004767  000000G				JSR	PC,$RSX				;					1330
000124	016600  000002 				MOV	2(SP),R0
000130	032760  000001  000014 			BIT	#1,14(R0)
000136	001403 					BEQ	3$
000140	012700  000001 				MOV	#1,R0
000144	000402 					BR	4$
000146	012700  177762 			3$:	MOV	#-16,R0
000152	005001 				4$:	CLR	R1
000154	016604  000002 				MOV	2(SP),R4
000160	016403  000026 				MOV	26(R4),R3
000164	000443 					BR	6$
000166	016600  000002 			5$:	MOV	2(SP),R0			;					1336
000172	032760  000001  000014 			BIT	#1,14(R0)
000200	001446 					BEQ	7$
000202	011600 					MOV	(SP),R0				;					1339
000204	112760  000003  000006 			MOVB	#3,6(R0)
000212	005060  000022 				CLR	22(R0)				;					1340
000216	011300 					MOV	(R3),R0				;					1341
000220	005005 					CLR	R5
000222	156205  000003 				BISB	3(R2),R5			; *(NMXDB),*
000226	072527  000010 				ASH	#10,R5
000232	011601 					MOV	(SP),R1
000234	116160  000007  000030 			MOVB	7(R1),30(R0)
000242	105060  000031 				CLRB	31(R0)
000246	050560  000030 				BIS	R5,30(R0)
000252	004767  000000G				JSR	PC,$RSX				;					1342
000256	012700  000001 				MOV	#1,R0
000262	005001 					CLR	R1
000264	016602  000002 				MOV	2(SP),R2
000270	016203  000026 				MOV	26(R2),R3
000274	004767  000000G			6$:	JSR	PC,$IOFIN
000300	004767  000000G				JSR	PC,$MCB
000304	016604  000002 				MOV	2(SP),R4			;					1343
000310	004767  000000G				JSR	PC,$CCBRT
000314	000426 					BR	9$				;					1336
000316	011600 				7$:	MOV	(SP),R0				;					1347
000320	012760  177703  000022 			MOV	#-75,22(R0)
000326	012711  000006 			8$:	MOV	#6,(R1)				;					1354
000332	011300 					MOV	(R3),R0				;					1355
000334	016601  000002 				MOV	2(SP),R1
000340	116061  000025  000011 			MOVB	25(R0),11(R1)
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  43
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (9)

000346	010100 					MOV	R1,R0
000350	112760  000010  000012 			MOVB	#10,12(R0)
000356	112760  000004  000013 			MOVB	#4,13(R0)
000364	010104 					MOV	R1,R4
000366	004767  000000G				JSR	PC,$SCHED
000372	022626 				9$:	CMP	(SP)+,(SP)+			;					1278
000374	000207 					RTS	PC
; Routine Size:  127 words,	Routine Base:  $CODE$ + 2372
; Maximum stack depth per invocation:  7 words


000032						.PSECT	$PLIT$,  RO ,  D  

					P.AAC:						; CASE Table for DLXXCP+0056		1324
000032	000030 					.WORD	30				; [2$]
000034	000000 					.WORD	0				; [1$]
000036	000000 					.WORD	0				; [1$]
000040	000104 					.WORD	104				; [5$]
000042	000244 					.WORD	244				; [8$]
000044	000000 					.WORD	0				; [1$]
000046	000000 					.WORD	0				; [1$]



;	  1363	
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  44
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (10)

;	  1364	global routine DLXXMT (UCB, IOP) : NMX$LKG_UCB_IOP novalue =
;	  1365	
;	  1366	!++
;	  1367	! FUNCTIONAL DESCRIPTION:
;	  1368	!
;	  1369	!	Process RSX I/O Packets associated with
;	  1370	!	Direct Circuit/Line Access functions.
;	  1371	!
;	  1372	! FORMAL PARAMETERS:
;	  1373	!
;	  1374	!	IOP - the RSX IOP
;	  1375	!
;	  1376	! IMPLICIT INPUTS:
;	  1377	!
;	  1378	!	Misc NMXDB data base items
;	  1379	!
;	  1380	! IMPLICIT OUTPUTS:
;	  1381	!
;	  1382	!	Misc NMXDB data base items
;	  1383	!
;	  1384	! ROUTINE VALUE:
;	  1385	!
;	  1386	!	None
;	  1387	!
;	  1388	! SIDE EFFECTS:
;	  1389	!
;	  1390	!	None
;	  1391	!--
;	  1392	
;	  1393	    begin
;	  1394	
;	  1395	    map
;	  1396		IOP : ref NMX_IOP_BLOCK;
;	  1397	
;	  1398	    local
;	  1399		NMXDB : ref NMXDB_BLOCK;
;	  1400	
;	  1401	    $MCB_RSX_TO_MCB (.UCB, NMXDB);
;	  1402	
;	  1403	!+
;	  1404	! TRANSMIT a Buffer:
;	  1405	!
;	  1406	!    Basic Algorithm is:
;	  1407	!
;	  1408	!    DLXIOP: Validate 2nd LUN word <> 0
;	  1409	!            Validate LUT State is Running
;	  1410	!            Count Transmits to DLL
;	  1411	!            Transmit Buffer
;	  1412	!    DLXXCP: Decrement Transmits to DLL
;	  1413	!            Complete IOP
;	  1414	!-
;	  1415		    begin
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  45
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (10)

;	  1416	
;	  1417		    local
;	  1418			LUNBLK : ref DLX_LUN_BLOCK;
;	  1419	
;	  1420		    if (LUNBLK = .(.IOP [I_LN2])) eql 0
;	  1421		    then
;	  1422			begin
;	  1423	
;	  1424			local
;	  1425			    UCB;
;	  1426	
;	  1427			$MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  1428			IOFIN$ (.UCB, .IOP, IE$NLN, 0);
;	  1429			end
;	  1430		    else
;	  1431			begin
;	  1432	
;	  1433			if .LUNBLK [LUN_STATE] neq LUN_OPENED
;	  1434			then
;	  1435			    begin
;	  1436	
;	  1437			    local
;	  1438				UCB;
;	  1439	
;	  1440			    $MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  1441			    IOFIN$ (.UCB, .IOP, IE$NLN, 0);
;	  1442			    return;
;	  1443			    end;
;	  1444	
;	  1445			if .IOP [I_NMX_CNT] eql 0
;	  1446			then
;	  1447			    begin
;	  1448	
;	  1449			    local
;	  1450				UCB;
;	  1451	
;	  1452			    $MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  1453			    IOFIN$ (.UCB, .IOP, IE$SPC, 0);
;	  1454			    return;
;	  1455			    end;
;	  1456	
;	  1457			MAP$ (.LUNBLK [LUN_ENTITY_BIAS]);
;	  1458	                begin
;	  1459	
;	  1460			local
;	  1461			    NMXDB : ref NMXDB_BLOCK,
;	  1462			    CCB : ref DLX_CCB_BLOCK;
;	  1463	
;	  1464			bind
;	  1465			    ENTBLK = LUNBLK [LUN_ENTITY_ADDRESS] : ref NMX_GENERAL_BLOCK;
;	  1466	
;	  1467			if not $MCB_GET_CCB (CCB)
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  46
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (10)

;	  1468			then
;	  1469			    begin
;	  1470	
;	  1471			    local
;	  1472				UCB;
;	  1473	
;	  1474			    $MCB_MCB_TO_RSX (.NMXDB, UCB);
;	  1475			    IOFIN$ (.UCB, .IOP, IE$NDR, 0);
;	  1476			    return
;	  1477			    end;
;	  1478	
;	  1479			LUNBLK [LUN_XMTS] = .LUNBLK [LUN_XMTS] + 1;
;	  1480			CCB [C_BIAS] = .IOP [I_NMX_BIAS];
;	  1481			CCB [C_ADDR] = .IOP [I_NMX_ADDR];
;	  1482			CCB [C_CNT] = .IOP [I_NMX_CNT];
;	  1483			CCB [C_DLX_STATE] = DLX_TRANSMIT;
;	  1484			CCB [C_DLX_IOP] = .IOP;
;	  1485			CCB [C_DLX_LUNBLK] = .LUNBLK;
;	  1486			$DLL_TRANSMIT ((.CCB), .ENTBLK [GENERAL_PROVIDER_PIX]);
;	  1487	                end;
;	  1488			$MCB_MCB_TO_RSX (.NMXDB);
;	  1489			end;
;	  1490	
;	  1491	            end;
;	  1492	
;	  1493	    end;					!of DLXXMT


						.SBTTL	DLXXMT
002770						.PSECT	$CODE$,  RO 

000000	004167  000000G			DLXXMT::JSR	R1,$SAVE5			;					1364
000004	162706  000010 				SUB	#10,SP
000010	010166  000002 				MOV	R1,2(SP)
000014	004767  000000G				JSR	PC,$MCB				;					1401
000020	016600  000002 				MOV	2(SP),R0			;					1420
000024	017016  000006 				MOV	@6(R0),(SP)			; *,LUNBLK
000030	001405 					BEQ	1$				;					1427
000032	011600 					MOV	(SP),R0				; LUNBLK,*				1433
000034	126027  000006  000003 			CMPB	6(R0),#3			; *(LUNBLK),*
000042	001407 					BEQ	2$
000044	004767  000000G			1$:	JSR	PC,$RSX				;					1440
000050	016603  000002 				MOV	2(SP),R3			;					1441
000054	012700  177733 				MOV	#-45,R0
000060	000437 					BR	5$
000062	012700  000030 			2$:	MOV	#30,R0				;					1445
000066	066600  000002 				ADD	2(SP),R0
000072	010066  000006 				MOV	R0,6(SP)
000076	005710 					TST	(R0)
000100	001007 					BNE	3$
000102	004767  000000G				JSR	PC,$RSX				;					1452
000106	016603  000002 				MOV	2(SP),R3			;					1453
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  47
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (10)

000112	012700  177772 				MOV	#-6,R0
000116	000420 					BR	5$
000120	011600 				3$:	MOV	(SP),R0				; LUNBLK,*				1457
000122	016067  000004  000000G			MOV	4(R0),KISAR6			; *(LUNBLK),*
000130	004767  000000G				JSR	PC,$CCBGT			;					1467
000134	103403 					BCS	4$
000136	010466  000004 				MOV	R4,4(SP)			; $MCB$R4,CCB
000142	000412 					BR	6$
000144	004767  000000G			4$:	JSR	PC,$RSX				;					1474
000150	016603  000002 				MOV	2(SP),R3			;					1475
000154	012700  177670 				MOV	#-110,R0
000160	005001 				5$:	CLR	R1
000162	004767  000000G				JSR	PC,$IOFIN
000166	000452 					BR	7$				;					1469
000170	011600 				6$:	MOV	(SP),R0				; LUNBLK,*				1479
000172	005260  000020 				INC	20(R0)				; *(LUNBLK)
000176	016600  000004 				MOV	4(SP),R0			; CCB,*					1480
000202	016601  000002 				MOV	2(SP),R1
000206	016160  000024  000016 			MOV	24(R1),16(R0)			; *,*(CCB)
000214	016160  000026  000020 			MOV	26(R1),20(R0)			; *,*(CCB)				1481
000222	017660  000006  000022 			MOV	@6(SP),22(R0)			; *,*(CCB)				1482
000230	012760  000001  000024 			MOV	#1,24(R0)			; *,*(CCB)				1483
000236	010160  000026 				MOV	R1,26(R0)			; *,*(CCB)				1484
000242	011660  000030 				MOV	(SP),30(R0)			; LUNBLK,*(CCB)				1485
000246	011601 					MOV	(SP),R1				; LUNBLK,*				1486
000250	016100  000002 				MOV	2(R1),R0			; *(LUNBLK),*
000254	016601  000004 				MOV	4(SP),R1			; CCB,*
000260	116061  000025  000011 			MOVB	25(R0),11(R1)			; *,*(CCB)
000266	010100 					MOV	R1,R0				; CCB,*
000270	112760  000002  000012 			MOVB	#2,12(R0)			; *,*(CCB)
000276	105060  000013 				CLRB	13(R0)				; *(CCB)
000302	010104 					MOV	R1,R4				; CCB,*
000304	004767  000000G				JSR	PC,$SCHED
000310	004767  000000G				JSR	PC,$RSX				;					1488
000314	062706  000010 			7$:	ADD	#10,SP				;					1364
000320	000207 					RTS	PC
; Routine Size:  105 words,	Routine Base:  $CODE$ + 2770
; Maximum stack depth per invocation:  11 words
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  48
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (11)

;	  1494	routine FIND_LUNBLK (LUNID) = 			! Find a LUNBLK with LUNID
;	  1495	
;	  1496	!++
;	  1497	! FUNCTIONAL DESCRIPTION:
;	  1498	!
;	  1499	!
;	  1500	!
;	  1501	! FORMAL PARAMETERS:
;	  1502	!
;	  1503	!	None
;	  1504	!
;	  1505	! IMPLICIT INPUTS:
;	  1506	!
;	  1507	!	None
;	  1508	!
;	  1509	! IMPLICIT OUTPUTS:
;	  1510	!
;	  1511	!	None
;	  1512	!
;	  1513	! ROUTINE VALUE:
;	  1514	!
;	  1515	!	None
;	  1516	!
;	  1517	! SIDE EFFECTS:
;	  1518	!
;	  1519	!	Must be called in MCB mode
;	  1520	!--
;	  1521	
;	  1522	    begin
;	  1523	
;	  1524	    external
;	  1525		MCB$GAW_PROCESS_DATA_BASE : vector [2];
;	  1526	
;	  1527	    bind
;	  1528		NMXDB = MCB$GAW_PROCESS_DATA_BASE [1] : ref NMXDB_BLOCK;
;	  1529	
;	  1530	    local
;	  1531		LUNBLK : ref DLX_LUN_BLOCK;
;	  1532	
;	  1533	!
;	  1534	! Search LUN Queue for block with matching LUN_ID
;	  1535	!
;	  1536	    LUNBLK = NMXDB [NMX_LUN_QUEUE];
;	  1537	
;	  1538	    while (LUNBLK = .LUNBLK [LUN_LINK]) nequ 0 do
;	  1539	
;	  1540		if .LUNBLK [LUN_ID] eqlu .LUNID<0, 8> then exitloop;
;	  1541	
;	  1542	    .LUNBLK
;	  1543	    end;					!of FIND_LUNBLK
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  49
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (11)

						.SBTTL	FIND.LUNBLK
000000	016700  000002G			FIND.LUNBLK:
						MOV	.CRDAT+2,R0			; *,LUNBLK				1536
000004	062700  000054 				ADD	#54,R0				; *,LUNBLK
000010	011000 				1$:	MOV	(R0),R0				; LUNBLK,LUNBLK				1538
000012	001404 					BEQ	2$
000014	126066  000007  000002 			CMPB	7(R0),2(SP)			; *(LUNBLK),LUNID			1540
000022	001372 					BNE	1$
000024	000207 				2$:	RTS	PC				;					1494
; Routine Size:  11 words,	Routine Base:  $CODE$ + 3312
; Maximum stack depth per invocation:  0 words
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  50
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (12)

;	  1544	routine ALLOCATE_LUNBLK (ENTITY) = 		! Allocate a LUNBLK and initialize it
;	  1545	
;	  1546	!++
;	  1547	! FUNCTIONAL DESCRIPTION:
;	  1548	!
;	  1549	!
;	  1550	!
;	  1551	! FORMAL PARAMETERS:
;	  1552	!
;	  1553	!	None
;	  1554	!
;	  1555	! IMPLICIT INPUTS:
;	  1556	!
;	  1557	!	None
;	  1558	!
;	  1559	! IMPLICIT OUTPUTS:
;	  1560	!
;	  1561	!	None
;	  1562	!
;	  1563	! ROUTINE VALUE:
;	  1564	!
;	  1565	!	None
;	  1566	!
;	  1567	! SIDE EFFECTS:
;	  1568	!
;	  1569	!	Must be called in MCB mode
;	  1570	!--
;	  1571	
;	  1572	    begin
;	  1573	
;	  1574	    external
;	  1575		MCB$GAW_PROCESS_DATA_BASE : vector [2];
;	  1576	
;	  1577	    bind
;	  1578		NMXDB = MCB$GAW_PROCESS_DATA_BASE [1] : ref NMXDB_BLOCK;
;	  1579	
;	  1580	    local
;	  1581		LUNBLK : ref DLX_LUN_BLOCK;
;	  1582	
;	  1583	!
;	  1584	! Allocate and Initialize the LUN_BLOCK
;	  1585	!
;	  1586	
;	  1587	    if $MCB_GET_DSR (DLX_LUN_ALLOCATION, LUNBLK)
;	  1588	    then
;	  1589		begin					!LUN_BLOCK Allocation Success
;	  1590		$NMX_ENQUEUE (NMXDB [NMX_LUN_QUEUE], .LUNBLK);
;	  1591		LUNBLK [LUN_ENTITY_ADDRESS] = .ENTITY;
;	  1592		SMAP$ (LUNBLK [LUN_ENTITY_BIAS]);
;	  1593		LUNBLK [LUN_ID] = .NMXDB [NMX_NEXT_LUN_ID];
;	  1594		NMXDB [NMX_NEXT_LUN_ID] = .NMXDB [NMX_NEXT_LUN_ID] + 1;
;	  1595		LUNBLK [LUN_STATE] = LUN_OPENING;
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  51
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (12)

;	  1596	        $NMX_QUEUE_INITIALIZE (LUNBLK [LUN_RCVS]);
;	  1597	        $NMX_QUEUE_INITIALIZE (LUNBLK [LUN_RCPS]);
;	  1598		LUNBLK [LUN_XMTS] = 0;
;	  1599		LUNBLK [LUN_RCV_ERROR] = 0;
;	  1600		LUNBLK [LUN_ERROR_CODE] = IS$SUC;
;	  1601		.LUNBLK
;	  1602		end
;	  1603	    else
;	  1604		0
;	  1605	
;	  1606	    end;					!of ALLOCATE_LUNBLK


						.GLOBL	$DSRGT


						.SBTTL	ALLOCATE.LUNBLK
000000	010146 				ALLOCATE.LUNBLK:
						MOV	R1,-(SP)			;					1544
000002	012701  000026 				MOV	#26,R1				;					1587
000006	004767  000000G				JSR	PC,$DSRGT
000012	103455 					BCS	1$
000014	016701  000002G				MOV	.CRDAT+2,R1			;					1590
000020	062701  000054 				ADD	#54,R1
000024	005010 					CLR	(R0)				; LUNBLK
000026	010071  000002 				MOV	R0,@2(R1)			; LUNBLK,*
000032	010061  000002 				MOV	R0,2(R1)			; LUNBLK,*
000036	016660  000004  000002 			MOV	4(SP),2(R0)			; ENTITY,*(LUNBLK)			1591
000044	016760  000000G 000004 			MOV	KISAR6,4(R0)			; *,*(LUNBLK)				1592
000052	016701  000002G				MOV	.CRDAT+2,R1			;					1593
000056	116160  000053  000007 			MOVB	53(R1),7(R0)			; *,*(LUNBLK)
000064	105261  000053 				INCB	53(R1)				;					1594
000070	112760  000001  000006 			MOVB	#1,6(R0)			; *,*(LUNBLK)				1595
000076	012701  000010 				MOV	#10,R1				;					1596
000102	060001 					ADD	R0,R1				; LUNBLK,*
000104	005011 					CLR	(R1)
000106	010161  000002 				MOV	R1,2(R1)
000112	012701  000014 				MOV	#14,R1				;					1597
000116	060001 					ADD	R0,R1				; LUNBLK,*
000120	005011 					CLR	(R1)
000122	010161  000002 				MOV	R1,2(R1)
000126	005060  000020 				CLR	20(R0)				; *(LUNBLK)				1598
000132	005060  000024 				CLR	24(R0)				; *(LUNBLK)				1599
000136	012760  000001  000022 			MOV	#1,22(R0)			; *,*(LUNBLK)				1600
000144	000401 					BR	2$				;					1587
000146	005000 				1$:	CLR	R0
000150	012601 				2$:	MOV	(SP)+,R1			;					1544
000152	000207 					RTS	PC
; Routine Size:  54 words,	Routine Base:  $CODE$ + 3340
; Maximum stack depth per invocation:  2 words
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  52
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (13)

;	  1607	routine EXTRACT_LUNBLK (LUNID) = 		! Extract a LUNBLK with LUNID
;	  1608	
;	  1609	!++
;	  1610	! FUNCTIONAL DESCRIPTION:
;	  1611	!
;	  1612	!
;	  1613	!
;	  1614	! FORMAL PARAMETERS:
;	  1615	!
;	  1616	!	None
;	  1617	!
;	  1618	! IMPLICIT INPUTS:
;	  1619	!
;	  1620	!	None
;	  1621	!
;	  1622	! IMPLICIT OUTPUTS:
;	  1623	!
;	  1624	!	None
;	  1625	!
;	  1626	! ROUTINE VALUE:
;	  1627	!
;	  1628	!	None
;	  1629	!
;	  1630	! SIDE EFFECTS:
;	  1631	!
;	  1632	!	Must be called in MCB mode
;	  1633	!--
;	  1634	
;	  1635	    begin
;	  1636	
;	  1637	    external
;	  1638		MCB$GAW_PROCESS_DATA_BASE : vector [2];
;	  1639	
;	  1640	    bind
;	  1641		NMXDB = MCB$GAW_PROCESS_DATA_BASE [1] : ref NMXDB_BLOCK;
;	  1642	
;	  1643	    local
;	  1644		LUNBLK : ref DLX_LUN_BLOCK,
;	  1645		PREBLK : ref DLX_LUN_BLOCK;
;	  1646	
;	  1647	!
;	  1648	! Search LUN Queue for block with matching LUN_ID
;	  1649	!
;	  1650	    LUNBLK = NMXDB [NMX_LUN_QUEUE];
;	  1651	    PREBLK = .LUNBLK;
;	  1652	
;	  1653	    while (LUNBLK = .LUNBLK [LUN_LINK]) nequ 0 do
;	  1654		begin
;	  1655	
;	  1656		if .LUNBLK [LUN_ID] eqlu .LUNID<0, 8>
;	  1657		then
;	  1658		    begin
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  53
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (13)

;	  1659	
;	  1660		    if (PREBLK [LUN_LINK] = .LUNBLK [LUN_LINK]) eql 0
;	  1661		    then
;	  1662			NMXDB [$sub_field (NMX_LUN_QUEUE, Q_TAIL)] = .PREBLK;
;	  1663	
;	  1664		    exitloop;
;	  1665		    end;
;	  1666	
;	  1667		PREBLK = .LUNBLK;
;	  1668		end;
;	  1669	
;	  1670	!
;	  1671	    .LUNBLK
;	  1672	    end;					!of EXTRACT_LUNBLK


						.SBTTL	EXTRACT.LUNBLK
000000	004167  000000G			EXTRACT.LUNBLK:
						JSR	R1,$SAVE2			;					1607
000004	016700  000002G				MOV	.CRDAT+2,R0			; *,LUNBLK				1650
000010	062700  000054 				ADD	#54,R0				; *,LUNBLK
000014	010002 				1$:	MOV	R0,R2				; LUNBLK,PREBLK				1651
000016	011000 					MOV	(R0),R0				; LUNBLK,LUNBLK				1653
000020	001412 					BEQ	2$
000022	126066  000007  000010 			CMPB	7(R0),10(SP)			; *(LUNBLK),LUNID			1656
000030	001371 					BNE	1$
000032	011012 					MOV	(R0),(R2)			; LUNBLK,PREBLK				1660
000034	001004 					BNE	2$
000036	016701  000002G				MOV	.CRDAT+2,R1			;					1662
000042	010261  000056 				MOV	R2,56(R1)			; PREBLK,*
000046	000207 				2$:	RTS	PC				;					1607
; Routine Size:  20 words,	Routine Base:  $CODE$ + 3514
; Maximum stack depth per invocation:  4 words
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  54
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (14)

;	  1673	routine TRY_SOME_RCVS (LUNBLK) : novalue =
;	  1674	
;	  1675	!++
;	  1676	! FUNCTIONAL DESCRIPTION:
;	  1677	!
;	  1678	!    TRY_SOME_RCVS tries to give some receives from the RCPS Queue to
;	  1679	!    an RSX task.
;	  1680	!
;	  1681	! FORMAL PARAMETERS:
;	  1682	!
;	  1683	!	None
;	  1684	!
;	  1685	! IMPLICIT INPUTS:
;	  1686	!
;	  1687	!       LUNBLK RCP and IOP Queues
;	  1688	!
;	  1689	! IMPLICIT OUTPUTS:
;	  1690	!
;	  1691	!       LUNBLK RCP and IOP Queues
;	  1692	!
;	  1693	! COMPLETION CODES:
;	  1694	!
;	  1695	!	None
;	  1696	!
;	  1697	! SIDE EFFECTS:
;	  1698	!
;	  1699	!       This routine must be called in MCB mode!
;	  1700	!--
;	  1701	
;	  1702	    begin
;	  1703	
;	  1704	    map
;	  1705		LUNBLK : ref DLX_LUN_BLOCK;
;	  1706	
;	  1707	    bind
;	  1708		NMXDB = MCB$GAW_PROCESS_DATA_BASE [1] : ref NMXDB_BLOCK,
;	  1709		RCVQ = LUNBLK [LUN_RCVS] : vector,
;	  1710		RCPQ = LUNBLK [LUN_RCPS] : vector;
;	  1711	
;	  1712	!
;	  1713	! Check first for error completions
;	  1714	!
;	  1715	
;	  1716	    while true do
;	  1717	        begin
;	  1718	
;	  1719	        local
;	  1720	            AMOUNT,
;	  1721	            ERROR_CODE,
;	  1722	            IOP : ref NMX_IOP_BLOCK;
;	  1723	
;	  1724	        if (IOP = .RCVQ [0]) eqla 0 then exitloop;
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  55
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (14)

;	  1725	
;	  1726	        if .LUNBLK [LUN_RCV_ERROR] eql 0
;	  1727	        then
;	  1728	            begin
;	  1729	
;	  1730	            local
;	  1731	                CCB : ref block field (C_FIELDS);
;	  1732	
;	  1733	            if (CCB = .RCPQ [0]) eqla 0 then exitloop;
;	  1734	
;	  1735	            ERROR_CODE = IS$SUC;
;	  1736	            AMOUNT = .CCB [C_CNT];
;	  1737	            !
;	  1738	            ! Check if there is too much data
;	  1739	            !
;	  1740	            if .AMOUNT gtru .IOP [I_NMX_CNT]
;	  1741	            then
;	  1742	                begin
;	  1743	                ERROR_CODE = IE$DAO;
;	  1744	                AMOUNT = .IOP [I_NMX_CNT];
;	  1745	                end;
;	  1746	
;	  1747	            begin                       ! Copy data to user buffer.
;	  1748	
;	  1749	            local
;	  1750	                CURRENT_MAP;
;	  1751	
;	  1752	            SMAP$ (CURRENT_MAP);
;	  1753	            MAP$ (.CCB [C_BIAS]);
;	P 1754	            $MCB_MOVE_BUFFER_TO_BUFFER (.AMOUNT, .CCB [C_ADDR],
;	  1755		        ((.IOP [I_NMX_BIAS]), (.IOP [I_NMX_ADDR])));
;	  1756	            MAP$ (.CURRENT_MAP);
;	  1757	            end;
;	  1758	!
;	  1759	! Complete IOP and return resources
;	  1760	!
;	  1761	            $MCB_DEQUEUE_CCB (RCPQ, CCB);       ! Dequeue RCPQ
;	  1762	            CCB [C_FNC] = FC_RCE;
;	  1763	            $MCB_SCHEDULE_CCB (.CCB);
;	  1764	            end
;	  1765	        else
;	  1766	            begin
;	  1767	            ERROR_CODE = .LUNBLK [LUN_RCV_ERROR];
;	  1768	            AMOUNT = 0;
;	  1769	            LUNBLK [LUN_RCV_ERROR] = 0;
;	  1770	            end;
;	  1771	
;	  1772	        $NMX_DEQUEUE (RCVQ, IOP);
;	  1773	        $NMX_RETURN_RSX_IOP (.IOP, .ERROR_CODE, .AMOUNT);
;	  1774		end;
;	  1775	
;	  1776	    end;					!of TRY_SOME_RCVS
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  56
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (14)

; WARN#099
; Simultaneously allocated two quantities to Register 5


						.GLOBL	$MVTBF


						.SBTTL	TRY.SOME.RCVS
000000	004167  000000G			TRY.SOME.RCVS:
						JSR	R1,$SAVE5			;					1673
000004	162706  000016 				SUB	#16,SP
000010	016666  000034  000010 			MOV	34(SP),10(SP)			; LUNBLK,*				1709
000016	012700  000024 				MOV	#24,R0				;					1726
000022	066600  000010 				ADD	10(SP),R0
000026	010066  000006 				MOV	R0,6(SP)
000032	016600  000010 			1$:	MOV	10(SP),R0			;					1724
000036	016016  000010 				MOV	10(R0),(SP)			; *,IOP
000042	001532 					BEQ	6$
000044	005776  000006 				TST	@6(SP)				;					1726
000050	001073 					BNE	4$
000052	010001 					MOV	R0,R1				;					1733
000054	016100  000014 				MOV	14(R1),R0			; *,CCB
000060	001523 					BEQ	6$
000062	012766  000001  000014 			MOV	#1,14(SP)			; *,ERROR.CODE				1735
000070	016066  000022  000012 			MOV	22(R0),12(SP)			; *(CCB),AMOUNT				1736
000076	011601 					MOV	(SP),R1				; IOP,*					1740
000100	026661  000012  000030 			CMP	12(SP),30(R1)			; AMOUNT,*(IOP)
000106	101406 					BLOS	2$
000110	012766  177763  000014 			MOV	#-15,14(SP)			; *,ERROR.CODE				1743
000116	016166  000030  000012 			MOV	30(R1),12(SP)			; *(IOP),AMOUNT				1744
000124	016701  000000G			2$:	MOV	KISAR6,R1			; *,CURRENT.MAP				1752
000130	016067  000016  000000G			MOV	16(R0),KISAR6			; *(CCB),*				1753
000136	011602 					MOV	(SP),R2				; IOP,*					1755
000140	016246  000024 				MOV	24(R2),-(SP)			; *(IOP),*
000144	010204 					MOV	R2,R4				; IOP,*
000146	016446  000026 				MOV	26(R4),-(SP)			; *(IOP),*
000152	016002  000020 				MOV	20(R0),R2			; *(CCB),*
000156	016603  000016 				MOV	16(SP),R3			; AMOUNT,*
000162	004767  000000G				JSR	PC,$MVTBF
000166	010167  000000G				MOV	R1,KISAR6			; CURRENT.MAP,*				1756
000172	012701  000014 				MOV	#14,R1				;					1761
000176	066601  000014 				ADD	14(SP),R1
000202	010166  000010 				MOV	R1,10(SP)
000206	010103 					MOV	R1,R3
000210	004767  000000G				JSR	PC,$CMQRM
000214	103401 					BCS	3$
000216	010400 					MOV	R4,R0				; $MCB$R4,CCB
000220	112760  000004  000012 		3$:	MOVB	#4,12(R0)			; *,*(CCB)				1762
000226	010004 					MOV	R0,R4				; CCB,*					1763
000230	004767  000000G				JSR	PC,$SCHED
000234	022626 					CMP	(SP)+,(SP)+			;					1728
000236	000407 					BR	5$				;					1726
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  57
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (14)

000240	017666  000006  000014 		4$:	MOV	@6(SP),14(SP)			; *,ERROR.CODE				1767
000246	005066  000012 				CLR	12(SP)				; AMOUNT				1768
000252	005076  000006 				CLR	@6(SP)				;					1769
000256	012700  000010 			5$:	MOV	#10,R0				;					1772
000262	066600  000010 				ADD	10(SP),R0
000266	010066  000002 				MOV	R0,2(SP)
000272	004767  000000G				JSR	PC,$QRMVF
000276	010116 					MOV	R1,(SP)
000300	004767  000000G				JSR	PC,$RSX				;					1773
000304	016600  000014 				MOV	14(SP),R0			; ERROR.CODE,*
000310	016601  000012 				MOV	12(SP),R1			; AMOUNT,*
000314	011603 					MOV	(SP),R3				; IOP,*
000316	004767  000000G				JSR	PC,$IOFIN
000322	004767  000000G				JSR	PC,$MCB
000326	000641 					BR	1$				;					1716
000330	062706  000016 			6$:	ADD	#16,SP				;					1673
000334	000207 					RTS	PC
; Routine Size:  111 words,	Routine Base:  $CODE$ + 3564
; Maximum stack depth per invocation:  16 words


;	  1777	end
;	  1778	
;	  1779	eludom



;					OTS external references
						.GLOBL	$SAVE5, $SAVE2, $STOP


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 $CODE$				 1065	    RO ,  I  ,  LCL,  REL,  CON
;	 $PLIT$				   20	    RO ,  D  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>XPORTX.L16.15		       599        34         5         0
;  NETPKG:<MCB>MCBLIB.L16.15		       372        61        16         0
;  NETPKG:<NMX>NMXPAR.L16.30		       968       224        23         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200        33        16         0
NMXDLE								25-Jan-1983 09:26:39	TOPS-20 Bliss-16 3(552)		    Page  58
X01090								 4-Jan-1983 09:27:13	NETPKG:<NMX>NMXDLE.BLI.7 (14)


; Information:	0
; Warnings:	1
; Errors:	0

;	  1780	! Local Modes:
;	  1781	! Comment Column:36
;	  1782	! Comment Start:!
;	  1783	! Mode:BLISS
;	  1784	! Auto Save Mode:2
;	  1785	! End:
; Size:		1065 code + 20 data words
; Run Time:	   00:22.9
; Elapsed Time:	   01:25.1
; Memory Used:	63 pages
; Compilation Complete
ALLOCATE_LUNBLK			 511	 858	1543*
AMOUNT				1719	1735#	1739	1743#	1753	1767#	1772
BYT$PTR				 832	 833
CCB				 228+	 232+	 244+	 248+	 271+	 275+	 284+	 288+	 297+	 301+	 319+	 323+
				 558	 590	 599	 601	 611	 624	 627	 662	 665	 674	 679#	 680
				 686	 689#	 690	 695#	 696#	 697#	 698#	 699	 706#	 707#	 708#	 709#
				 710	 722#	 727	 728	 732	 793	 810	 823	 826	 848	 865	 874#
				 875#	 876#	 877#	 878#	 879#	 880	 889	 899	 934	 941	 943	 948#
				 949#	 954#	 957#	 963#	 964	1042	1047	1069#	1070#	1071#	1072	1089
				1125	1140	1146	1155#	1156	1277	1311	1314	1323	1329	1330	1335
				1341	1342	1347#	1348	1353#	1354	1358	1461	1466	1479#	1480#	1481#
				1482#	1483#	1484#	1485	1730	1732#	1735	1752	1753	1760	1761#	1762
CIRCUIT_SERVICE_TIMER		1265
CKTBLK				1259	1264#	1265
CURRENT_MAP			1749	1751	1755
C_ADDR				1480	1753
C_BIAS				1479	1752
C_CNT				 948	1481	1735
C_DLX_EID			 441+#	 698	 709	 874
C_DLX_IOP			 444+#	 722	 878	1070	1329	1341	1483
C_DLX_LUNBLK			 445+#	 665	 727	 879	1071	1314	1484
C_DLX_STATE			 443+#	 674	 679	 689	 695	 706	 732	 877	1069	1323	1347	1353
				1358	1482
C_FIELDS			 232+	 248+	 275+	 288+	 301+	 323+	 590	1040	1125	1730
C_FNC				 240+	 253+	 280+	 293+	 306+	 328+	 696	 707	 875	 963	1064	1155
				1761
C_LIN				 238+	 599	1140
C_LIX				 440+
C_LNK				 242+	 255+	 282+	 295+	 308+	 330+
C_MOD				 241+	 254+	 281+	 294+	 307+	 329+	 697	 708	 876
C_NM_FIELDS			 451+
C_NM_FUNC			 943
C_NM_NMPAR			 826	 848
C_PIX				 235+	 251+	 278+	 291+	 304+	 326+
C_PRM1				 442+
C_STS				 611	 686	 949	 954	 957	1329	1335
DECLARE_SEVERITY		 333+
DLL				 333+
DLL$A_CIRCUIT_NAME		 208+#
DLL$B_PROVIDER_LINE_INDEX	 203+#
DLL$B_PROVIDER_PROCESS_INDEX	 204+#
DLL$FW_START_CCB_PRM1		 201+#
DLL$FW_START_CCB_PRM2		 206+#
DLL$FW_START_CCB_PRM3		 210+#
DLL$K_DATA_RECEIVED		 347+#
DLL$K_ENTER_MAINTENANCE		 307+	 341+#
DLL$K_INITIALIZE_LINK		 281+	 339+#
DLL$K_MAINTENANCE_RECEIVED	 348+#
DLL$K_PERSISTENT_ERROR		 355+#	 610
DLL$K_STATE			 353+#
DLL$K_STOP_LINK			 294+	 340+#
DLL$K_TRANSIENT_ERROR		 354+#
DLL$K_TRANSMIT			 329+	 338+#
DLL$K_TRANSMIT_AND_TIME		 342+#
DLL$V_DTE_CIRCUIT		 212+#
DLL$_ABORTED			 362+
DLL$_DEVICE_OPERATION_ERROR	 391+
DLL$_DEVICE_RESPONSE_ERROR	 387+
DLL$_DEVICE_SERVICE_ERROR	 389+
DLL$_MAINTENANCE_RECEIVED	 385+	 614
DLL$_NOT_SUPPORTED		 361+
DLL$_PAUSE_TIMEOUT		 394+
DLL$_PRIVLEDGE_VIOLATION	 360+
DLL$_RECEIVE_ERROR		 401+
DLL$_RECEIVE_THRESHOLD		 375+
DLL$_SELECTION_THRESHOLD	 377+
DLL$_SERVICE_TIMEOUT		 399+
DLL$_START_RECEIVED		 383+	 613
DLL$_STATE_MAINTENANCE		 369+
DLL$_STATE_OFF			 366+
DLL$_STATE_RUNNING		 368+
DLL$_STATE_SYNCHRONIZING	 367+
DLL$_SUCCESS			 359+
DLL$_TRANSMIT_THRESHOLD		 373+
DLXAST				 502	 558*
DLXCCP				 503	 627*
DLXCON				 504	 737*
DLXCTL				 505	 899*
DLXDSC				 506	 967*
DLXRCP				 507	1089*
DLXRCV				 508	1159*
DLXXCP				 509	1277*
DLXXMT				 510	1363*
DLX_CCB_BLOCK			 450+#	 662	 793	1042	1311	1461
DLX_ENTER_MAINT			 457+#	 689	1333
DLX_LUN_ALLOCATION		 484+#	 727	1586
DLX_LUN_BLOCK			 487+#	 593	 665	 795	1023	1128	1211	1314	1417	1530	1580	1643
				1644	1704
DLX_LUN_FIELDS			 468+#	 488+
DLX_LUN_SIZE			 483+#	 488+
DLX_OVERLAY_CCB_FIELDS		 438+#	 451+
DLX_RELEASE_ENTITY		 459+#	 704	1347	1353
DLX_REQUEST_ENTITY		 456+#	 679	 683
DLX_START_OWNER			 460+#	 464+	 695	 706	 713
DLX_STATE_HIGH			 464+#	 674	1323
DLX_STATE_LOW			 463+#	 674	1323
DLX_STOP_OWNER			 455+#	 677	 877
DLX_STOP_PROTOCOL		 458+#	1069	1351
DLX_TRANSMIT			 454+#	 463+	1326	1482
ENTBLK				 666#	 680	 690	 698	 709	 715#	 716#	 796	 830#	 836	 840	 841
				 842	 843	 844	 858	 872#	 874	1045#	1072	1464#	1485
ENTITY				1543	1590
ENTITY_BLOCK			1315#	1340#	1348	1354
EQLU				1539	1655
ERROR_CODE			 794	 828#	 838#	 854	 891	1720	1734#	1742#	1766#	1772
ERROR				 333+
EXTRACT_LUNBLK			 512	 724	1606*
FCM				 558	 608	 899	 941	1089	1277
FC_CCP				 963
FC_CTL				 240+	 253+	 696	 707	 875
FC_RCE				1064	1155	1761
FC_XME				 280+	 293+	 306+	 328+
FIND_LUNBLK			 513	 599	1140	1493*
FM_NM				 941
FM_STP				 254+	 876
FM_STR				 241+	 697	 708
GENERAL_NAME_LENGTH		 836
GENERAL_OWNER_ID		 698	 709	 716	 841	 874
GENERAL_PROVIDER_ID		 842
GENERAL_PROVIDER_PIX		 680	 690	1072	1348	1354	1485
GENERAL_SYSTEM_FLAGS		 844
IE$ABO				1081
IE$ALN				 806
IE$BBE				 615
IE$BDV				 828	 841	 842
IE$CNR				 694
IE$DAA				 840	 843
IE$DAO				1742
IE$EOT				 613
IE$ISQ				1346
IE$NDR				 867	1055	1474
IE$NLN				1033	1221	1238	1427	1440
IE$PRI				 844
IE$SPC				1250	1452
IE$SRE				1329
INFO				 333+
IOFIN$				 806	 867	 891	1033	1055	1081	1221	1238	1250	1427	1440	1452
				1474
IOP				 720	 722#	 723	 725	 737	 769	 798	 806	 810	 830	 832	 833
				 867	 873	 878	 891	 967	 999	1025	1033	1055	1070	1159	1191
				1213	1221	1238	1242	1250	1254	1265#	1269	1363	1395	1419	1427
				1440	1444	1452	1474	1479	1480	1481	1483	1721	1723#	1739	1743
				1754	1771	1772
IS$SUC				 845	 854	1059	1329	1341	1599	1734
I_LN2				 723	 798	 873	1025	1213	1419
I_NMX_ADDR			1480	1754
I_NMX_BIAS			1479	1754
I_NMX_CNT			1242	1444	1481	1739	1743
I_NMX_ENTITY			1254	1265
I_NM_ENTITY			 830	 832	 833
LIN				 228+	 237+	 238+
LINK_AUTODUMPING		 540#
LINK_AUTOLOADING		 539#
LINK_AUTOSERVICE		 538#
LINK_AUTOTRIGGERING		 541#
LINK_CLEARED			 524#
LINK_DISABLED			 551#
LINK_DUMPING			 536#
LINK_ENABLED			 550#
LINK_FAILED			 543#
LINK_LOADING			 535#
LINK_LOOPING			 534#
LINK_LUN_BLOCK			 715	 840	 872
LINK_NO_SUBSTATE		 531#
LINK_OFF			 522#	 843
LINK_ON				 521#
LINK_REFLECTING			 533#
LINK_SERVICE			 523#
LINK_STARTING			 532#
LINK_STATE			 843
LINK_SYNCHRONIZING		 542#
LINK_TRIGGERING			 537#
LINK_USER_ID			 716	1340
LUNBLK				 593	 599#	 604	 611#	 621	 795	 858#	 872#	 873	 879	1023	1025#
				1045	1059#	1060#	1062	1068	1071	1080	1128	1140#	1143	1146	1147
				1211	1213#	1230	1263	1264	1269	1270	1314#	1315	1321	1328#	1338#
				1339#	1340	1346#	1417	1419#	1432	1456	1464	1478#	1484	1530	1535#
				1537#	1539	1541	1580	1586	1589	1590#	1591	1592#	1594#	1595	1596
				1597#	1598#	1599#	1600	1643	1649#	1650	1652#	1655	1659	1666	1670
				1672	1704	1708	1709	1725	1766	1768#
LUNID				1493	1539	1606	1655
LUN_BLOCK			 665#	 666	 672	 680	 694#	 724	 725
LUN_CLOSING			 492+#	1060
LUN_ENTITY_ADDRESS		 471+#	 666	1045	1264	1315	1464	1590
LUN_ENTITY_BIAS			 472+#	 672	1068	1263	1321	1456	1591
LUN_ERROR_CODE			 478+#	 694	 725	1059	1339	1346	1599
LUN_ID				 474+#	 680	 724	1340	1539	1592	1655
LUN_LINK			 470+#	1537	1652	1659
LUN_OPENED			 493+#	 604	1143	1230	1338	1432
LUN_OPENING			 491+#	1594
LUN_RCPS			 476+#	1062	1146	1596	1709
LUN_RCVS			 475+#	1080	1269	1595	1708
LUN_RCV_ERROR			 479+#	 604	 611	1598	1725	1766	1768
LUN_STATE			 473+#	 604	1060	1143	1230	1338	1432	1594
LUN_XMTS			 477+#	1328	1478	1597
MAP$				 672	1068	1263	1266	1321	1456	1752	1755
MCB$GAW_PROCESS_DATA_BASE	 557	1524	1527	1574	1577	1637	1640	1707
MCB$K_VERSION			 432+
MCB_DB_CCB_MOD			 502	 505	 507	 509	 558#	 899#	1089#	1277#
MCB_DB_CCB			 503	 627#
NMPAR				 826#	 832	 833
NMX$ENT_CKT			 832
NMX$ENT_LIN			 833
NMX$FLG_MAINTENANCE_ALLOWED	 844
NMX$FNC_CLR			 952
NMX$FNC_HI			 943
NMX$FNC_LO			 943
NMX$FNC_RET			 946
NMX$FNC_SET			 952
NMX$FNC_SHO			 946
NMX$FNC_SZC			 952
NMX$FNC_ZRO			 952
NMX$LKG_UCB_IOP			 504	 506	 508	 510	 737#	 967#	1159#	1363#
NMX$_ICP			 601	 732	1358
NMX$_IFM			 941
NMXDB_BLOCK			 589	 661	 772	 933	1002	1039	1124	1194	1228	1310	1398	1460
				1527	1577	1640	1707
NMXDB				 558	 589	 627	 661	 772	 774	 805	 866	 881	 890	 899	 933
				1002	1004	1032	1039	1054	1078	1089	1124	1194	1196	1220	1228
				1237	1249	1271	1277	1310	1340	1398	1400	1426	1439	1451	1460
				1473	1487	1527#	1535	1577#	1589	1592	1593#	1640#	1649	1661#	1707#
NMXDLE				   1#
NMX_CCB_BLOCK			 823	 934
NMX_CIRCUIT_BLOCK		1259
NMX_CIRCUIT_FIELDS		 667	 796	1315
NMX_GENERAL_BLOCK		1045	1464
NMX_GENERAL_FIELDS		 666	 796	1316
NMX_IOP_BLOCK			 720	 769	 999	1041	1191	1395	1721
NMX_LINE_FIELDS			 667	 796	1315
NMX_LINK_FIELDS			 666	 796	1316
NMX_LUN_QUEUE			1535	1589	1649	1661
NMX_NEXT_LUN_ID			1592	1593
NMX_NMPAR_ALLOCATION		 848
NMX_NMPAR_BLOCK			 826
NMX_NMPAR_ENTITY		 832	 833
NMX_NMX_PIX			1340
PREBLK				1644	1650#	1659#	1661	1666#
PROVIDER_PIX			 228+	 234+	 235+	 244+	 250+	 251+	 271+	 277+	 278+	 284+	 290+	 291+
				 297+	 303+	 304+	 319+	 325+	 326+
Q_TAIL				1661
RCPCCB				1040	1062	1064#	1065
RCPQ				1709#	1732	1760
RCVIOP				1041	1080	1081
RCVQ				1708#	1723	1771
SAVE_MAP			1260	1262	1266
SEVERE				 333+
SMAP$				1262	1591	1751
SUCCESS				 333+
TRUE				 838	1715
TRY_SOME_RCVS			 514	 621	1147	1270	1672*
UCB				 737	 774	 803	 805	 806	 863	 866	 867	 887	 890	 891	 967
				1004	1030	1032	1033	1052	1054	1055	1076	1078	1081	1159	1196
				1218	1220	1221	1235	1237	1238	1247	1249	1250	1363	1400	1424
				1426	1427	1437	1439	1440	1449	1451	1452	1471	1473	1474
WARNING				 333+
XPO$K_VERSION			 431+
$ADDRESS			 443+	 444+	 445+	 470+	 471+	 472+
$BYTE				 473+	 474+
$CONTINUE			 446+
$DISTINCT			 454+	 455+	 456+	 457+	 458+	 459+	 460+	 491+	 492+	 493+
$DLL$CCB			 232+#	 235+#	 238+#	 240+#	 241+#	 242+	 248+#	 251+#	 253+#	 254+#	 255+	 275+#
				 278+#	 280+#	 281+#	 282+	 288+#	 291+#	 293+#	 294+#	 295+	 301+#	 304+#	 306+#
				 307+#	 308+	 323+#	 326+#	 328+#	 329+#	 330+
$DLL_ENTER_MAINTENANCE		 297+#	 690
$DLL_ERROR			 360+	 361+	 385+
$DLL_INFO			 366+	 367+	 368+	 369+
$DLL_INITIALIZE			 271+#
$DLL_RELEASE_CIRCUIT		 244+#	1348	1354
$DLL_REQUEST_CIRCUIT		 228+#	 680
$DLL_SEVERE			 387+	 389+	 391+
$DLL_STOP			 284+#	1072
$DLL_SUCCESS			 359+
$DLL_TRANSMIT			 319+#	1485
$DLL_WARNING			 362+	 373+	 375+	 377+	 383+	 394+	 399+	 401+
$FIELD				 437+	 467+
$FIELD_SET_SIZE			 483+
$FIELD_SET_UNITS		 484+
$INTEGER			 441+	 477+	 478+	 479+
$LITERAL			 453+	 490+
$MCB_DEQUEUE_CCB		1062	1760
$MCB_GET_CCB			1047	1466
$MCB_GET_DSR			1586
$MCB_MCB_TO_RSX			 805	 866	 881	 890	1032	1054	1078	1220	1237	1249	1271	1426
				1439	1451	1473	1487
$MCB_MOVE_BUFFER_TO_BUFFER	1753
$MCB_QUEUE_CCB			1146
$MCB_RETURN_CCB			 624	 728	 865	 889	1330	1342
$MCB_RETURN_DSR			 727	 848
$MCB_RSX_TO_MCB			 774	1004	1196	1400
$MCB_SCHEDULE_CCB		 242+	 255+	 282+	 295+	 308+	 330+	 699	 710	 880	 964	1065	1156
				1762
$NM$ERR_CWS			 954
$NM$ERR_UFO			 957
$NM$_SUC			 949
$NMX_DEQUEUE			1080	1771
$NMX_ENQUEUE			1269	1589
$NMX_GET_NMX_CCB		 810
$NMX_MAP_ENTITY_ID		 832	 833
$NMX_QUEUE_INITIALIZE		1595	1596
$NMX_RETURN_RSX_IOP		 725	1329	1341	1772
$OVERLAY			 440+	 442+
$SUB_BLOCK			 475+	 476+
$SUB_FIELD			1661