Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/drivers/dmcnmx.lst
There are no other files named dmcnmx.lst in the archive.
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page   1
								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (1)

;	  0001	module DMCNMX (	! DMC-11 Driver Network Management
;	  0002			ident = 'X01270',
;	  0003			language (bliss16)
;	  0004			) =
;	  0005	begin
;	  0006	
;	  0007	!
;	  0008	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0009	!                    DIGITAL EQUIPMENT CORPORATION
;	  0010	!                        Maynard, Massachusetts
;	  0011	!
;	  0012	!     This software is furnished under a license and may  be  used
;	  0013	!     and copied only in accordance with the terms of such license
;	  0014	!     and with the inclusion of the above copyright notice.   This
;	  0015	!     software  or any other copies thereof may not be provided or
;	  0016	!     otherwise made available to any other person.  No  title  to
;	  0017	!     and ownership of the software is hereby transferred.
;	  0018	!
;	  0019	!     The information  in  this  software  is  subject  to  change
;	  0020	!     without  notice  and should not be construed as a commitment
;	  0021	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0022	!
;	  0023	!     DIGITAL assumes no responsibility for the use or reliability
;	  0024	!     of  its  software  on  equipment  which  is  not supplied by
;	  0025	!     DIGITAL.
;	  0026	!
;	  0027	
;	  0028	!++
;	  0029	!
;	  0030	! FACILITY: MCB DMC Driver
;	  0031	!
;	  0032	! ABSTRACT:
;	  0033	!
;	  0034	!	This module contains the DMC driver Network Management routines.
;	  0035	!
;	  0036	! ENVIRONMENT: MCB V3.2
;	  0037	!
;	  0038	! AUTHOR: Alan D. Peckham	CREATION DATE: 3-Mar-81
;	  0039	!
;	  0040	! MODIFIED BY:
;	  0041	!
;	  0042	!	Alan D. Peckham, 3-Mar-81: Version 1
;	  0043	! 01	- Split off from DMC module.
;	  0044	! 02	- Eliminate multiple vector assignment bug in SET_DMC_DEVICE.
;	  0045	! 03	- Identify line and circuit to NMX in SET_DMC_DEVICE.
;	  0046	! 04	- Correct CTLNM dispatches.
;	  0047	!	  Fix mapping problems in fetching counters.
;	  0048	! 05	- Distinguish DMCs from DMRs in SET_DMC_DEVICE.
;	  0049	! 06	- Event logging buffer adjustment.
;	  0050	! 07	- Eliminate double line status reporting.
;	  0051	! 08	- Add controller parameter support.
;	  0052	! 10	- Change to support DMC/DMR line names.
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page   2
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (1)

;	  0053	! 11	- Fix bit-mapped counter handling.
;	  0054	! 12	- Change linkage on DMCNM.
;	  0055	! 13	- Use $MCB_GET_DEVICE_NAME to get line/device name.
;	  0056	! 14	- Eliminate references to $MCB_GET_DEVICE_NAME and
;	  0057	!	  use NMX$PARAMETER calls instead.
;	  0058	!	  Move all counters to circuit counters.
;	  0059	! 15	- Add system specific parameters.
;	  0060	! 16	- Set counter maintenance to use snapshot for zeroing
;	  0061	!	  and use differences for reporting.
;	  0062	! 17	- I was subtracting the wrong way to get the counter differences!
;	  0063	! 18	- Update to NM V3.0 .
;	  0064	!	  Fix circuit handling to call the zero counter routines.
;	  0065	!	  (found by LEAPLINE).
;	  0066	! 19	- Add MAXIMUM RECEIVE BUFFERS support.
;	  0067	! 20	- Don't set DC_SET_REQUESTED_STATE in ZERO_x_COUNTERS.
;	  0068	! 21	- Do not force HALT for ZERO_COUNTERS.
;	  0069	! 22	- Support new system specific line counters (2500,2501,2502).
;	  0070	! 23	- De-commit half-duplex.
;	  0071	! 24	- Re-enable half-duplex code.
;	  0072	! 25	- Fix reporting of DMC counter 1021.
;	  0073	! 26	- Get CLEAR LINE to dispatch right from DMCNM.
;	  0074	! 27	- Add seconds-since-last-zeroed support for lines.
;	  0075	!	  Eliminate double line counter report from owner and provider.
;	  0076	!--
;	  0077	!
;	  0078	! INCLUDE FILES:
;	  0079	!
;	  0080	
;	  0081	literal
;	  0082	    DMC$K_FANCY = 1 eql 0 %(false)%;
;	  0083	
;	  0084	library 'MCBLIB';
;	  0085	
;	  0086	library 'XPORTX';
;	  0087	
;	  0088	library 'NMXLIB';
;	  0089	
;	  0090	library 'DMCDAT';
;	  0091	
;	  0092	!
;	  0093	! TABLE OF CONTENTS:
;	  0094	!
;	  0095	
;	  0096	linkage
;	  0097	    DMC_DB = jsr (register = 5),
;	  0098	    DMC_DB_NUM = jsr (register = 5, register = 1) : nopreserve (0, 1);
;	  0099	
;	  0100	forward routine
;	  0101	    CLEAR_CIRCUIT : LINKAGE_CCB,
;	  0102	    CLEAR_LINE : LINKAGE_CCB,
;	  0103	    DMCNM : MCB_DB_CCB novalue,
;	  0104	    NOT_APPLICABLE : DMC_DB_NUM,
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page   3
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (1)

;	  0105	    PARAMETER_CIRCUIT_COUNTERS : LINKAGE_DB novalue,
;	  0106	    PARAMETER_LINE_COUNTERS : LINKAGE_DB novalue,
;	  0107	    SET_CIRCUIT : LINKAGE_CCB,
;	  0108	    SET_LINE : LINKAGE_CCB,
;	  0109	    SET_LINE_CONTROLLER : DMC_DB_NUM,
;	  0110	    SET_LINE_DUPLEX : DMC_DB_NUM,
;	  0111	    SET_LINE_RECEIVE_BUFFERS : DMC_DB_NUM,
;	  0112	    SET_LINE_RETRANSMIT_TIMER : DMC_DB_NUM,
;	  0113	    SET_LINE_SERVICE_TIMER : DMC_DB_NUM,
;	  0114	    SET_LINE_STATE : DMC_DB_NUM,
;	U 0115	    %if DMC$K_FANCY %then
;	U 0116	    SET_LINE_CONTROLLER_REGISTER : DMC_DB_NUM,
;	U 0117	    SET_LINE_INTERRUPT_VECTOR : DMC_DB_NUM,
;	U 0118	    SET_LINE_INTERRUPT_PRIORITY : DMC_DB_NUM,
;	  0119	    %fi
;	  0120	    SHOW_AND_ZERO_CIRCUIT_COUNTERS : LINKAGE_CCB,
;	  0121	    SHOW_AND_ZERO_LINE_COUNTERS : LINKAGE_CCB,
;	  0122	    SHOW_CIRCUIT : LINKAGE_CCB,
;	  0123	    SHOW_LINE : LINKAGE_CCB,
;	  0124	    SHOW_SUCCESS : LINKAGE_CCB,
;	  0125	    SUCCESS : LINKAGE_CCB,
;	  0126	    ZERO_CIRCUIT_COUNTERS : LINKAGE_CCB,
;	  0127	    ZERO_LINE_COUNTERS : LINKAGE_CCB;
;	  0128	
;	  0129	!
;	  0130	! MACROS:
;	  0131	!
;	  0132	
;	  0133	macro
;	M 0134	    CNTR_8 (NUM, FLDB) =
;	M 0135		begin field $CNTR$FLDB = [$SUB_FIELD (D_LNTB, FLDB)],
;	M 0136			    $CNTR$FLDC = [$SUB_FIELD (D_CPTB, FLDB)];
;	M 0137		stacklocal $CNTR$DIFF;
;	M 0138		$CNTR$DIFF <0, 8> = .DB [$CNTR$BYTE ($CNTR$FLDB)];
;	M 0139		$CNTR$DIFF = .$CNTR$DIFF - .DB [$CNTR$BYTE ($CNTR$FLDC)];
;	M 0140		COUNTER_8 (NUM, $CNTR$DIFF)
;	  0141		end %,
;	M 0142	    CNTR_BEGIN (DUMMY) =
;	M 0143		begin CTR = 255;
;	  0144		begin local SUM; SUM = 0; %,
;	M 0145	    CNTR (FLDB) =
;	M 0146		begin field $CNTR$FLDB = [$SUB_FIELD (D_LNTB, FLDB)],
;	M 0147			    $CNTR$FLDC = [$SUB_FIELD (D_CPTB, FLDB)];
;	M 0148		local $CNTR$DIFF; $CNTR$DIFF = .DB [$CNTR$BYTE ($CNTR$FLDB)];
;	M 0149		$CNTR$DIFF = .$CNTR$DIFF - .DB [$CNTR$BYTE ($CNTR$FLDC)];
;	M 0150		$CNTR$DIFF = .$CNTR$DIFF <0, 8, 0>;
;	M 0151		SUM = .SUM + .$CNTR$DIFF;
;	  0152		end %,
;	M 0153	    CNTR_POST (NUM) =
;	M 0154		if .SUM lssu 255 then CTR <0, 8> = .SUM;
;	M 0155		end;
;	M 0156		COUNTER_8 (NUM, CTR);
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page   4
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (1)

;	  0157		end %,
;	M 0158	    CNTR_BM_BEGIN (DUMMY) =
;	M 0159		begin CTR = 255;
;	  0160		begin local SUM; SUM = 0; %,
;	M 0161	    CNTR_BM (FLG, FLDB) =
;	M 0162		begin field $CNTR$FLDB = [$SUB_FIELD (D_LNTB, FLDB)],
;	M 0163			    $CNTR$FLDC = [$SUB_FIELD (D_CPTB, FLDB)];
;	M 0164		local $CNTR$DIFF; $CNTR$DIFF = .DB [$CNTR$BYTE ($CNTR$FLDB)];
;	M 0165		$CNTR$DIFF = .$CNTR$DIFF - .DB [$CNTR$BYTE ($CNTR$FLDC)];
;	M 0166		$CNTR$DIFF = .$CNTR$DIFF <0, 8, 0>;
;	M 0167		if .$CNTR$DIFF neq 0
;	M 0168		then
;	M 0169		    begin
;	M 0170		    SUM = .SUM + .$CNTR$DIFF;
;	M 0171		    CTR <8 + FLG, 1> = 1;
;	M 0172		    end
;	  0173		end %,
;	M 0174	    CNTR_BM_POST (NUM) =
;	M 0175		if .SUM lssu 255 then CTR <0, 8> = .SUM;
;	M 0176		end;
;	M 0177		COUNTER_8_BM (NUM, CTR);
;	  0178		end %,
;	M 0179	    $CNTR$BYTE (FLD) =
;	  0180		%fieldexpand (FLD, 0), %fieldexpand (FLD, 1), %fieldexpand (FLD, 2), 1 %;
;	  0181	
;	  0182	!
;	  0183	! EQUATED SYMBOLS:
;	  0184	!
;	  0185	
;	  0186	literal
;	  0187	    TRUE = 1 EQL 1,
;	  0188	    FALSE = 1 EQL 0,
;	  0189	    NO_OPERATION = 0;
;	  0190	
;	  0191	!
;	  0192	! OWN STORAGE:
;	  0193	!
;	  0194	
;	  0195	external routine
;	  0196	    $DSPCR : novalue;
;	  0197	
;	  0198	!
;	  0199	! EXTERNAL REFERENCES:
;	  0200	!
;	  0201	
;	  0202	linkage
;	  0203	    LINKAGE_DB_CSR = jsr (register = 5, register = 1);
;	  0204	
;	  0205	external routine
;	  0206	    DMCIN : MCB_INTERRUPT novalue,
;	  0207	    DMCOUT : MCB_INTERRUPT novalue,
;	  0208	    MASTER_CLEAR : LINKAGE_DB_CSR,
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page   5
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (1)

;	  0209	    SET_PORT : LINKAGE_DB novalue;
;	  0210	
;	  0211	external
;	  0212	    MCB$GAW_PROCESS_DATA_BASE : vector [2],
;	  0213	    MCB$GW_PROCESS_HANDLE;
;	  0214	
;	  0215	bind
;	  0216	    DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page   6
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (2)

;	  0217	routine CLEAR_CIRCUIT (CCB) : LINKAGE_CCB =
;	  0218	
;	  0219	!++
;	  0220	! FUNCTIONAL DESCRIPTION:
;	  0221	!
;	  0222	!
;	  0223	! FORMAL PARAMETERS:
;	  0224	!	CCB	Address of CCB
;	  0225	!
;	  0226	! IMPLICIT INPUTS:
;	  0227	!	None
;	  0228	!
;	  0229	! IMPLICIT OUTPUTS:
;	  0230	!	None
;	  0231	!
;	  0232	! ROUTINE VALUE:
;	  0233	!	The appropriate NM status code
;	  0234	!
;	  0235	! COMPLETION CODES:
;	  0236	!	None
;	  0237	!
;	  0238	! SIDE EFFECTS:
;	  0239	!	None
;	  0240	!--
;	  0241	
;	  0242	    begin
;	  0243	
;	  0244	    map
;	  0245		CCB: ref block field (C_NM_FIELDS);
;	  0246	
;	  0247	    if .CCB [C_CNT] eql 0
;	  0248	    then
;	  0249		NM$SUC
;	  0250	    else
;	  0251		NE$PNA
;	  0252	
;	  0253	    end;


						.TITLE	DMCNMX
						.IDENT	/X01270/

						.GLOBL	$DSPCR, DMCIN, DMCOUT, MASTER.CLEAR
						.GLOBL	SET.PORT, .CRDAT, .CRPIX


						.SBTTL	CLEAR.CIRCUIT
000000						.PSECT	$CODE$,  RO 

000000	005764  000022 			CLEAR.CIRCUIT:
						TST	22(R4)				; *(CCB)				0247
000004	001003 					BNE	1$
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page   7
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (2)

000006	012700  000001 				MOV	#1,R0
000012	000207 					RTS	PC
000014	012700  177752 			1$:	MOV	#-26,R0
000020	000207 					RTS	PC				;					0217

; Routine Size:  9 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page   8
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (3)

;	  0254	routine CLEAR_LINE (CCB) : LINKAGE_CCB =
;	  0255	
;	  0256	!++
;	  0257	! FUNCTIONAL DESCRIPTION:
;	  0258	!
;	  0259	!
;	  0260	! FORMAL PARAMETERS:
;	  0261	!	CCB	Address of CCB
;	  0262	!
;	  0263	! IMPLICIT INPUTS:
;	  0264	!	None
;	  0265	!
;	  0266	! IMPLICIT OUTPUTS:
;	  0267	!	None
;	  0268	!
;	  0269	! ROUTINE VALUE:
;	  0270	!	The appropriate NM status code
;	  0271	!
;	  0272	! COMPLETION CODES:
;	  0273	!	None
;	  0274	!
;	  0275	! SIDE EFFECTS:
;	  0276	!	None
;	  0277	!--
;	  0278	
;	  0279	    begin
;	  0280	    GET_DMC_DATA_BASE (DB)
;	  0281	
;	  0282	    map
;	  0283		CCB: ref block field (C_NM_FIELDS);
;	  0284	
;	  0285	    if .CCB [C_CNT] eql 0
;	  0286	    then
;	  0287		NM$SUC
;	  0288	    else
;	  0289		NE$PNA
;	  0290	
;	  0291	    end;


						.SBTTL	CLEAR.LINE
000000	005764  000022 			CLEAR.LINE:
						TST	22(R4)				; *(CCB)				0285
000004	001003 					BNE	1$
000006	012700  000001 				MOV	#1,R0
000012	000207 					RTS	PC
000014	012700  177752 			1$:	MOV	#-26,R0
000020	000207 					RTS	PC				;					0254

; Routine Size:  9 words,	Routine Base:  $CODE$ + 0022
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page   9
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (4)

;	  0292	global routine DMCNM
;	  0293	
;	  0294	!++
;	  0295	! FUNCTIONAL DESCRIPTION:
;	  0296	!	This routine is activated by a control request from
;	  0297	!	Network Management.
;	  0298	!
;	  0299	! FORMAL PARAMETERS:
;	  0300	!
;	  0301	       (DB : ref block field (D_FIELDS),
;	  0302		CCB : ref block field (C_NM_FIELDS))
;	  0303	!
;	  0304	! IMPLICIT INPUTS:
;	  0305	!	CCB Contents
;	  0306	!
;	  0307	! IMPLICIT OUTPUTS:
;	  0308	!	None
;	  0309	!
;	  0310	! ROUTINE VALUE:
;	  0311	!
;	  0312		: MCB_DB_CCB novalue =
;	  0313	!
;	  0314	! SIDE EFFECTS:
;	  0315	!	None
;	  0316	!--
;	  0317	
;	  0318	    begin
;	  0319	
;	  0320	    CCB [C_STS] =
;	  0321		begin
;	  0322	
;	  0323		case .CCB [C_NM_ENTITY] from NMX$ENT_lo to NMX$ENT_hi of
;	  0324		    set
;	  0325		    [NMX$ENT_ckt] : 			! NM function for
;	  0326			begin				!  CIRCUIT parameter
;	  0327			case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
;	  0328			    set
;	  0329			    [NMX$FNC_set] :		! Set parameters
;	  0330				SET_CIRCUIT (.CCB);
;	  0331			    [NMX$FNC_zro] :		! Zero counters
;	  0332				ZERO_CIRCUIT_COUNTERS (.CCB);
;	  0333			    [NMX$FNC_sho] :		! Show selected items
;	  0334				SHOW_CIRCUIT (.CCB);
;	  0335			    [NMX$FNC_szc] :		! Show and zero counters
;	  0336				SHOW_AND_ZERO_CIRCUIT_COUNTERS (.CCB);
;	  0337			    [inrange] :
;	  0338				$NM$ERR_SFS;
;	  0339			    [outrange] :
;	  0340				$NM$ERR_MPE;
;	  0341			    tes
;	  0342			end;
;	  0343	
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  10
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (4)

;	  0344		    [NMX$ENT_lin] : 			! NM function for
;	  0345			begin				!  LINE parameter
;	  0346			case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
;	  0347			    set
;	  0348			    [NMX$FNC_clr] :		! Clear parameters
;	P 0349				DISPATCH$ (.CCB [C_LIX],
;	P 0350				    TABLE$ (SUCCESS, DMC_K_NMID_HIGH,
;	P 0351					(DMC_K_LINE_OWNER, CLEAR_LINE),
;	P 0352					(DMC_K_LINE_PROVIDER, CLEAR_LINE)),
;	  0353				    (.CCB), LINKAGE_CCB);
;	  0354			    [NMX$FNC_set] :		! Set parameters
;	P 0355				DISPATCH$ (.CCB [C_LIX],
;	P 0356				    TABLE$ (SUCCESS, DMC_K_NMID_HIGH,
;	P 0357					(DMC_K_LINE_OWNER, SET_LINE),
;	P 0358					(DMC_K_LINE_PROVIDER, SET_LINE)),
;	  0359				    (.CCB), LINKAGE_CCB);
;	  0360			    [NMX$FNC_zro] :		! Zero counters
;	P 0361				DISPATCH$ (.CCB [C_LIX],
;	P 0362				    TABLE$ (SUCCESS, DMC_K_NMID_HIGH,
;	P 0363					(DMC_K_LINE_PROVIDER, ZERO_LINE_COUNTERS)),
;	  0364				    (.CCB), LINKAGE_CCB);
;	  0365			    [NMX$FNC_sho] :		! Show selected items
;	P 0366				DISPATCH$ (.CCB [C_LIX],
;	P 0367				    TABLE$ (SHOW_SUCCESS, DMC_K_NMID_HIGH,
;	P 0368					(DMC_K_LINE_OWNER, SHOW_SUCCESS),
;	P 0369					(DMC_K_LINE_PROVIDER, SHOW_LINE)),
;	  0370				    (.CCB), LINKAGE_CCB);
;	  0371			    [NMX$FNC_szc] :		! Show and zero counters
;	P 0372				DISPATCH$ (.CCB [C_LIX],
;	P 0373				    TABLE$ (SHOW_SUCCESS, DMC_K_NMID_HIGH,
;	P 0374					(DMC_K_LINE_PROVIDER, SHOW_AND_ZERO_LINE_COUNTERS)),
;	  0375				    (.CCB), LINKAGE_CCB);
;	  0376			    [inrange] :
;	  0377				$NM$ERR_SFS;
;	  0378			    [outrange] :
;	  0379				$NM$ERR_MPE;
;	  0380			    tes
;	  0381			end;
;	  0382	
;	  0383		    [inrange, outrange] :
;	  0384			$NM$ERR_MPE;
;	  0385	
;	  0386		    tes
;	  0387	
;	  0388		end;
;	  0389	
;	  0390	    CCB [C_FNC] = FC_CCP;
;	  0391	    LLCRS$ (.CCB);
;	  0392	    end;				! of routine DMCNM
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  11
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (4)

000000						.PSECT	$PLIT$,  RO ,  D  
000000	000022'				P.AAD:	.WORD	CLEAR.LINE
000002	000022'					.WORD	CLEAR.LINE
000004	000000V					.WORD	SUCCESS
000006	000000V				P.AAE:	.WORD	SET.LINE
000010	000000V					.WORD	SET.LINE
000012	000000V					.WORD	SUCCESS
000014	000000V				P.AAF:	.WORD	ZERO.LINE.COUNTERS
000016	000000V					.WORD	SUCCESS
000020	000000V					.WORD	SUCCESS
000022	000000V				P.AAG:	.WORD	SHOW.LINE
000024	000000V					.WORD	SHOW.SUCCESS
000026	000000V					.WORD	SHOW.SUCCESS
000030	000000V				P.AAH:	.WORD	SHOW.AND.ZERO.LINE.COUNTERS
000032	000000V					.WORD	SHOW.SUCCESS
000034	000000V					.WORD	SHOW.SUCCESS


						.GLOBL	$SCHED


						.SBTTL	DMCNM
000044						.PSECT	$CODE$,  RO 

000000	012700  000024 			DMCNM:: MOV	#24,R0				;					0323
000004	060400 					ADD	R4,R0				; CCB,*
000006	011001 					MOV	(R0),R1				;					0321
000010	072127  177770 				ASH	#-10,R1
000014	042701  177760 				BIC	#177760,R1
000020	005301 					DEC	R1
000022	020127  000004 				CMP	R1,#4
000026	101047 					BHI	9$
000030	006301 					ASL	R1
000032	066107  000036'				ADD	P.AAA(R1),PC			; Case dispatch
000036	000443 				1$:	BR	9$
000040	111000 				2$:	MOVB	(R0),R0				;					0326
000042	006200 					ASR	R0
000044	042700  177600 				BIC	#177600,R0
000050	005300 					DEC	R0
000052	020027  000005 				CMP	R0,#5
000056	101033 					BHI	9$
000060	006300 					ASL	R0
000062	066007  000050'				ADD	P.AAB(R0),PC			; Case dispatch
000066	000427 				3$:	BR	9$
000070	004767  000000V			4$:	JSR	PC,SET.CIRCUIT			;					0330
000074	000467 					BR	16$				;					0326
000076	004767  000000V			5$:	JSR	PC,ZERO.CIRCUIT.COUNTERS	;					0332
000102	000464 					BR	16$				;					0326
000104	004767  000000V			6$:	JSR	PC,SHOW.CIRCUIT			;					0334
000110	000461 					BR	16$				;					0326
000112	004767  000000V			7$:	JSR	PC,SHOW.AND.ZERO.CIRCUIT.COUNTERS ; 					0336
000116	000456 					BR	16$				;					0326
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  12
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (4)

000120	111000 				8$:	MOVB	(R0),R0				;					0345
000122	006200 					ASR	R0
000124	042700  177600 				BIC	#177600,R0
000130	005300 					DEC	R0
000132	020027  000005 				CMP	R0,#5
000136	101003 					BHI	9$
000140	006300 					ASL	R0
000142	066007  000064'				ADD	P.AAC(R0),PC			; Case dispatch
000146	012700  177773 			9$:	MOV	#-5,R0
000152	000440 					BR	16$
000154	005000 				10$:	CLR	R0				;					0353
000156	156400  000010 				BISB	10(R4),R0			; *(CCB),*
000162	004770  000000'				JSR	PC,@P.AAD(R0)
000166	000432 					BR	16$				;					0345
000170	005000 				11$:	CLR	R0				;					0359
000172	156400  000010 				BISB	10(R4),R0			; *(CCB),*
000176	004770  000006'				JSR	PC,@P.AAE(R0)
000202	000424 					BR	16$				;					0345
000204	005000 				12$:	CLR	R0				;					0364
000206	156400  000010 				BISB	10(R4),R0			; *(CCB),*
000212	004770  000014'				JSR	PC,@P.AAF(R0)
000216	000416 					BR	16$				;					0345
000220	005000 				13$:	CLR	R0				;					0370
000222	156400  000010 				BISB	10(R4),R0			; *(CCB),*
000226	004770  000022'				JSR	PC,@P.AAG(R0)
000232	000410 					BR	16$				;					0345
000234	005000 				14$:	CLR	R0				;					0375
000236	156400  000010 				BISB	10(R4),R0			; *(CCB),*
000242	004770  000030'				JSR	PC,@P.AAH(R0)
000246	000402 					BR	16$				;					0345
000250	012700  177746 			15$:	MOV	#-32,R0
000254	010064  000014 			16$:	MOV	R0,14(R4)			; *,*(CCB)				0320
000260	112764  000022  000012 			MOVB	#22,12(R4)			; *,*(CCB)				0390
000266	004767  000000G				JSR	PC,$SCHED			;					0391
000272	000207 					RTS	PC				;					0292

; Routine Size:  94 words,	Routine Base:  $CODE$ + 0044
; Maximum stack depth per invocation:  1 word


000036						.PSECT	$PLIT$,  RO ,  D  

					P.AAA:						; CASE Table for DMCNM+0032		0321
000036	000110 					.WORD	110				; [9$]
000040	000062 					.WORD	62				; [8$]
000042	000110 					.WORD	110				; [9$]
000044	000002 					.WORD	2				; [2$]
000046	000110 					.WORD	110				; [9$]

					P.AAB:						; CASE Table for DMCNM+0062		0326
000050	000002 					.WORD	2				; [4$]
000052	000162 					.WORD	162				; [15$]
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  13
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (4)

000054	000010 					.WORD	10				; [5$]
000056	000016 					.WORD	16				; [6$]
000060	000024 					.WORD	24				; [7$]
000062	000162 					.WORD	162				; [15$]

					P.AAC:						; CASE Table for DMCNM+0142		0345
000064	000022 					.WORD	22				; [11$]
000066	000006 					.WORD	6				; [10$]
000070	000036 					.WORD	36				; [12$]
000072	000052 					.WORD	52				; [13$]
000074	000066 					.WORD	66				; [14$]
000076	000102 					.WORD	102				; [15$]
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  14
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (5)

;	  0393	routine NOT_APPLICABLE (DB, DUMMY) : DMC_DB_NUM =
;	  0394	
;	  0395	!++
;	  0396	! FUNCTIONAL DESCRIPTION:
;	  0397	!
;	  0398	!
;	  0399	! FORMAL PARAMETERS:
;	  0400	!	DUMMY = unused
;	  0401	!
;	  0402	! IMPLICIT INPUTS:
;	  0403	!	None
;	  0404	!
;	  0405	! IMPLICIT OUTPUTS:
;	  0406	!	None
;	  0407	!
;	  0408	! ROUTINE VALUE:
;	  0409	!	The appropriate NM status code
;	  0410	!
;	  0411	! COMPLETION CODES:
;	  0412	!	None
;	  0413	!
;	  0414	! SIDE EFFECTS:
;	  0415	!	None
;	  0416	!--
;	  0417	
;	  0418	    begin
;	  0419	    GET_DMC_DATA_BASE (DB)
;	  0420	    NE$PNA
;	  0421	    end;


						.SBTTL	NOT.APPLICABLE
000340						.PSECT	$CODE$,  RO 

000000	012700  177752 			NOT.APPLICABLE:
						MOV	#-26,R0				;					0393
000004	000207 					RTS	PC

; Routine Size:  3 words,	Routine Base:  $CODE$ + 0340
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  15
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (6)

;	  0422	global routine PARAMETER_CIRCUIT_COUNTERS
;	  0423	
;	  0424	!++
;	  0425	! FUNCTIONAL DESCRIPTION:
;	  0426	!
;	  0427	!
;	  0428	! FORMAL PARAMETERS:
;	  0429	       (DB : ref block field (D_FIELDS))
;	  0430	!
;	  0431	! IMPLICIT INPUTS:
;	  0432	!	None
;	  0433	!
;	  0434	! IMPLICIT OUTPUTS:
;	  0435	!	None
;	  0436	!
;	  0437	! ROUTINE VALUE:
;	  0438		: LINKAGE_DB novalue =
;	  0439	!
;	  0440	! SIDE EFFECTS:
;	  0441	!	None
;	  0442	!--
;	  0443	
;	  0444	    begin
;	  0445	
;	  0446	    local
;	  0447		CTR;
;	  0448	
;	  0449	    COUNTER_32 (1000, DB [D_BYTES_RECEIVED]);
;	  0450	    COUNTER_32 (1001, DB [D_BYTES_TRANSMITTED]);
;	  0451	    COUNTER_32 (1010, DB [D_BLOCKS_RECEIVED]);
;	  0452	    COUNTER_32 (1011, DB [D_BLOCKS_TRANSMITTED]);
;	  0453	
;	  0454	    CNTR_BM_BEGIN ()
;	  0455	    CNTR_BM (0, BASE_NAKS_SND_HDR_BCC);
;	  0456	    CNTR_BM (1, BASE_NAKS_SND_DAT_BCC);
;	  0457	    if .DB [DF_DMR] then CNTR_BM (2, BASE_NAKS_SND_RCV_REP);
;	  0458	    CNTR_BM_POST (1020);
;	  0459	
;	  0460	    if not .DB [DF_DMR]
;	  0461	    then
;	  0462		begin
;	  0463		CNTR_BEGIN ()
;	  0464		CNTR (BASE_NAKS_RCV_HDR_BCC);
;	  0465		CNTR (BASE_NAKS_RCV_DAT_BCC);
;	  0466		CNTR_POST (1021);
;	  0467		end
;	  0468	    else
;	  0469		begin
;	  0470		CNTR_BM_BEGIN ()
;	  0471		CNTR_BM (0, BASE_NAKS_RCV_HDR_BCC);
;	  0472		CNTR_BM (1, BASE_NAKS_RCV_DAT_BCC);
;	  0473		CNTR_BM (2, BASE_NAKS_RCV_REP);
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  16
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (6)

;	  0474		CNTR_BM_POST (1021);
;	  0475		end;
;	  0476	
;	  0477	    CNTR_8 (1030, BASE_REPS_RCV);
;	  0478	    CNTR_8 (1031, BASE_REPS_SND);
;	  0479	
;	  0480	    CNTR_BM_BEGIN ()
;	  0481	    CNTR_BM (0, BASE_NAKS_RCV_NO_BUF);
;	  0482	    if .DB [DF_DMR] then CNTR_BM (1, BASE_NAKS_RCV_TOO_LONG);
;	  0483	    CNTR_BM_POST (1040);
;	  0484	
;	  0485	
;	  0486	    CNTR_BM_BEGIN ()
;	  0487	    CNTR_BM (0, BASE_NAKS_SND_NO_BUF);
;	  0488	    CNTR_BM_POST (1041);
;	  0489	
;	  0490	    if .DB [DF_DMR]
;	  0491	    then
;	  0492		begin
;	  0493		CNTR_BM_BEGIN ()
;	  0494		CNTR_BM (0, BASE_NO_REPLY_TO_SEL);
;	  0495		CNTR_BM (1, BASE_INCOMPLETE_SEL);
;	  0496		CNTR_BM_POST (1051);
;	  0497		end;
;	  0498	
;	  0499	    end;			!of routine PARAMETER_CIRCUIT_COUNTERS


						.GLOBL	$DC32, $DC8B, $DC8


						.SBTTL	CKCTRS
000000	004167  000000G			CKCTRS::JSR	R1,$SAVE4			;					0422
000004	024646 					CMP	-(SP),-(SP)
000006	012746  161750 				MOV	#-16030,-(SP)			;					0449
000012	010500 					MOV	R5,R0				; DB,*
000014	062700  000126 				ADD	#126,R0
000020	004767  000000G				JSR	PC,$DC32
000024	012716  161751 				MOV	#-16027,(SP)			;					0450
000030	010500 					MOV	R5,R0				; DB,*
000032	062700  000122 				ADD	#122,R0
000036	004767  000000G				JSR	PC,$DC32
000042	012716  161762 				MOV	#-16016,(SP)			;					0451
000046	010500 					MOV	R5,R0				; DB,*
000050	062700  000136 				ADD	#136,R0
000054	004767  000000G				JSR	PC,$DC32
000060	012716  161763 				MOV	#-16015,(SP)			;					0452
000064	010500 					MOV	R5,R0				; DB,*
000066	062700  000132 				ADD	#132,R0
000072	004767  000000G				JSR	PC,$DC32
000076	012701  000377 				MOV	#377,R1				; *,CTR					0454
000102	005002 					CLR	R2				; SUM
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  17
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (6)

000104	116500  000163 				MOVB	163(R5),R0			; *(DB),$CNTR$DIFF			0455
000110	116503  000563 				MOVB	563(R5),R3			; *(DB),*
000114	160300 					SUB	R3,R0				; *,$CNTR$DIFF
000116	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000122	001403 					BEQ	1$
000124	060002 					ADD	R0,R2				; $CNTR$DIFF,SUM
000126	052701  000400 				BIS	#400,R1				; *,CTR
000132	116500  000164 			1$:	MOVB	164(R5),R0			; *(DB),$CNTR$DIFF			0456
000136	116503  000564 				MOVB	564(R5),R3			; *(DB),*
000142	160300 					SUB	R3,R0				; *,$CNTR$DIFF
000144	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000150	001403 					BEQ	2$
000152	060002 					ADD	R0,R2				; $CNTR$DIFF,SUM
000154	052701  001000 				BIS	#1000,R1			; *,CTR
000160	016546  000032 			2$:	MOV	32(R5),-(SP)			; *(DB),*				0457
000164	005066  000004 				CLR	4(SP)
000170	032726  010000 				BIT	#10000,(SP)+
000174	001402 					BEQ	3$
000176	005266  000002 				INC	2(SP)
000202	032766  000001  000002 		3$:	BIT	#1,2(SP)
000210	001413 					BEQ	4$
000212	116500  000173 				MOVB	173(R5),R0			; *(DB),$CNTR$DIFF
000216	116503  000573 				MOVB	573(R5),R3			; *(DB),*
000222	160300 					SUB	R3,R0				; *,$CNTR$DIFF
000224	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000230	001403 					BEQ	4$
000232	060002 					ADD	R0,R2				; $CNTR$DIFF,SUM
000234	052701  002000 				BIS	#2000,R1			; *,CTR
000240	020227  000377 			4$:	CMP	R2,#377				; SUM,*					0458
000244	103002 					BHIS	5$
000246	105001 					CLRB	R1				; CTR
000250	150201 					BISB	R2,R1				; SUM,CTR
000252	012716  131774 			5$:	MOV	#-46004,(SP)
000256	010100 					MOV	R1,R0				; CTR,*
000260	004767  000000G				JSR	PC,$DC8B
000264	012701  000377 				MOV	#377,R1				; *,CTR					0463
000270	012703  000160 				MOV	#160,R3				;					0464
000274	060503 					ADD	R5,R3				; DB,*
000276	012704  000560 				MOV	#560,R4
000302	060504 					ADD	R5,R4				; DB,*
000304	032766  000001  000002 			BIT	#1,2(SP)			;					0460
000312	001042 					BNE	7$
000314	005000 					CLR	R0				; SUM					0463
000316	111302 					MOVB	(R3),R2				; *,$CNTR$DIFF				0464
000320	111446 					MOVB	(R4),-(SP)
000322	105716 					TSTB	(SP)
000324	006746 					SXT	-(SP)
000326	116616  000002 				MOVB	2(SP),(SP)
000332	162602 					SUB	(SP)+,R2			; *,$CNTR$DIFF
000334	042702  177400 				BIC	#177400,R2			; *,$CNTR$DIFF
000340	060200 					ADD	R2,R0				; $CNTR$DIFF,SUM
000342	116302  000001 				MOVB	1(R3),R2			; *,$CNTR$DIFF				0465
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  18
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (6)

000346	116416  000001 				MOVB	1(R4),(SP)
000352	105716 					TSTB	(SP)
000354	006746 					SXT	-(SP)
000356	116616  000002 				MOVB	2(SP),(SP)
000362	162602 					SUB	(SP)+,R2			; *,$CNTR$DIFF
000364	005726 					TST	(SP)+
000366	042702  177400 				BIC	#177400,R2			; *,$CNTR$DIFF
000372	060200 					ADD	R2,R0				; $CNTR$DIFF,SUM
000374	020001 					CMP	R0,R1				; SUM,*					0466
000376	103002 					BHIS	6$
000400	105001 					CLRB	R1				; CTR
000402	150001 					BISB	R0,R1				; SUM,CTR
000404	012716  121775 			6$:	MOV	#-56003,(SP)
000410	110100 					MOVB	R1,R0				; CTR,*
000412	004767  000000G				JSR	PC,$DC8
000416	000457 					BR	12$				;					0460
000420	005002 				7$:	CLR	R2				; SUM					0470
000422	111300 					MOVB	(R3),R0				; *,$CNTR$DIFF				0471
000424	111446 					MOVB	(R4),-(SP)
000426	105716 					TSTB	(SP)
000430	006746 					SXT	-(SP)
000432	116616  000002 				MOVB	2(SP),(SP)
000436	162600 					SUB	(SP)+,R0			; *,$CNTR$DIFF
000440	005726 					TST	(SP)+
000442	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000446	001403 					BEQ	8$
000450	060002 					ADD	R0,R2				; $CNTR$DIFF,SUM
000452	052701  000400 				BIS	#400,R1				; *,CTR
000456	116303  000001 			8$:	MOVB	1(R3),R3			; *,$CNTR$DIFF				0472
000462	116400  000001 				MOVB	1(R4),R0
000466	160003 					SUB	R0,R3				; *,$CNTR$DIFF
000470	042703  177400 				BIC	#177400,R3			; *,$CNTR$DIFF
000474	001403 					BEQ	9$
000476	060302 					ADD	R3,R2				; $CNTR$DIFF,SUM
000500	052701  001000 				BIS	#1000,R1			; *,CTR
000504	116503  000167 			9$:	MOVB	167(R5),R3			; *(DB),$CNTR$DIFF			0473
000510	116500  000567 				MOVB	567(R5),R0			; *(DB),*
000514	160003 					SUB	R0,R3				; *,$CNTR$DIFF
000516	042703  177400 				BIC	#177400,R3			; *,$CNTR$DIFF
000522	001403 					BEQ	10$
000524	060302 					ADD	R3,R2				; $CNTR$DIFF,SUM
000526	052701  002000 				BIS	#2000,R1			; *,CTR
000532	020227  000377 			10$:	CMP	R2,#377				; SUM,*					0474
000536	103002 					BHIS	11$
000540	105001 					CLRB	R1				; CTR
000542	150201 					BISB	R2,R1				; SUM,CTR
000544	012716  131775 			11$:	MOV	#-46003,(SP)
000550	010100 					MOV	R1,R0				; CTR,*
000552	004767  000000G				JSR	PC,$DC8B
000556	116566  000166  000004 		12$:	MOVB	166(R5),4(SP)			; *(DB),$CNTR$DIFF			0477
000564	116500  000566 				MOVB	566(R5),R0			; *(DB),*
000570	160066  000004 				SUB	R0,4(SP)			; *,$CNTR$DIFF
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  19
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (6)

000574	012716  122006 				MOV	#-55772,(SP)
000600	116600  000004 				MOVB	4(SP),R0			; $CNTR$DIFF,*
000604	004767  000000G				JSR	PC,$DC8
000610	116566  000165  000004 			MOVB	165(R5),4(SP)			; *(DB),$CNTR$DIFF			0478
000616	116500  000565 				MOVB	565(R5),R0			; *(DB),*
000622	160066  000004 				SUB	R0,4(SP)			; *,$CNTR$DIFF
000626	012716  122007 				MOV	#-55771,(SP)
000632	116600  000004 				MOVB	4(SP),R0			; $CNTR$DIFF,*
000636	004767  000000G				JSR	PC,$DC8
000642	012701  000377 				MOV	#377,R1				; *,CTR					0480
000646	005003 					CLR	R3				; SUM
000650	116500  000157 				MOVB	157(R5),R0			; *(DB),$CNTR$DIFF			0481
000654	116502  000557 				MOVB	557(R5),R2			; *(DB),*
000660	160200 					SUB	R2,R0				; *,$CNTR$DIFF
000662	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000666	001403 					BEQ	13$
000670	060003 					ADD	R0,R3				; $CNTR$DIFF,SUM
000672	052701  000400 				BIS	#400,R1				; *,CTR
000676	032766  000001  000002 		13$:	BIT	#1,2(SP)			;					0482
000704	001413 					BEQ	14$
000706	116500  000172 				MOVB	172(R5),R0			; *(DB),$CNTR$DIFF
000712	116502  000572 				MOVB	572(R5),R2			; *(DB),*
000716	160200 					SUB	R2,R0				; *,$CNTR$DIFF
000720	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000724	001403 					BEQ	14$
000726	060003 					ADD	R0,R3				; $CNTR$DIFF,SUM
000730	052701  001000 				BIS	#1000,R1			; *,CTR
000734	020327  000377 			14$:	CMP	R3,#377				; SUM,*					0483
000740	103002 					BHIS	15$
000742	105001 					CLRB	R1				; CTR
000744	150301 					BISB	R3,R1				; SUM,CTR
000746	012716  132020 			15$:	MOV	#-45760,(SP)
000752	010100 					MOV	R1,R0				; CTR,*
000754	004767  000000G				JSR	PC,$DC8B
000760	012701  000377 				MOV	#377,R1				; *,CTR					0486
000764	005003 					CLR	R3				; SUM
000766	116500  000162 				MOVB	162(R5),R0			; *(DB),$CNTR$DIFF			0487
000772	116502  000562 				MOVB	562(R5),R2			; *(DB),*
000776	160200 					SUB	R2,R0				; *,$CNTR$DIFF
001000	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
001004	001403 					BEQ	16$
001006	060003 					ADD	R0,R3				; $CNTR$DIFF,SUM
001010	052701  000400 				BIS	#400,R1				; *,CTR
001014	020327  000377 			16$:	CMP	R3,#377				; SUM,*					0488
001020	103002 					BHIS	17$
001022	105001 					CLRB	R1				; CTR
001024	150301 					BISB	R3,R1				; SUM,CTR
001026	012716  132021 			17$:	MOV	#-45757,(SP)
001032	010100 					MOV	R1,R0				; CTR,*
001034	004767  000000G				JSR	PC,$DC8B
001040	032766  000001  000002 			BIT	#1,2(SP)			;					0490
001046	001443 					BEQ	21$
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  20
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (6)

001050	012701  000377 				MOV	#377,R1				; *,CTR					0493
001054	005002 					CLR	R2				; SUM
001056	116500  000215 				MOVB	215(R5),R0			; *(DB),$CNTR$DIFF			0494
001062	116503  000615 				MOVB	615(R5),R3			; *(DB),*
001066	160300 					SUB	R3,R0				; *,$CNTR$DIFF
001070	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
001074	001403 					BEQ	18$
001076	060002 					ADD	R0,R2				; $CNTR$DIFF,SUM
001100	052701  000400 				BIS	#400,R1				; *,CTR
001104	116500  000214 			18$:	MOVB	214(R5),R0			; *(DB),$CNTR$DIFF			0495
001110	116503  000614 				MOVB	614(R5),R3			; *(DB),*
001114	160300 					SUB	R3,R0				; *,$CNTR$DIFF
001116	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
001122	001403 					BEQ	19$
001124	060002 					ADD	R0,R2				; $CNTR$DIFF,SUM
001126	052701  001000 				BIS	#1000,R1			; *,CTR
001132	020227  000377 			19$:	CMP	R2,#377				; SUM,*					0496
001136	103002 					BHIS	20$
001140	105001 					CLRB	R1				; CTR
001142	150201 					BISB	R2,R1				; SUM,CTR
001144	012716  132033 			20$:	MOV	#-45745,(SP)
001150	010100 					MOV	R1,R0				; CTR,*
001152	004767  000000G				JSR	PC,$DC8B
001156	062706  000006 			21$:	ADD	#6,SP				;					0422
001162	000207 					RTS	PC

; Routine Size:  314 words,	Routine Base:  $CODE$ + 0346
; Maximum stack depth per invocation:  10 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  21
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (7)

;	  0500	global routine PARAMETER_LINE_COUNTERS
;	  0501	
;	  0502	!++
;	  0503	! FUNCTIONAL DESCRIPTION:
;	  0504	!
;	  0505	!
;	  0506	! FORMAL PARAMETERS:
;	  0507	       (DB : ref block field (D_FIELDS))
;	  0508	!
;	  0509	! IMPLICIT INPUTS:
;	  0510	!	None
;	  0511	!
;	  0512	! IMPLICIT OUTPUTS:
;	  0513	!	None
;	  0514	!
;	  0515	! ROUTINE VALUE:
;	  0516		: LINKAGE_DB novalue =
;	  0517	!
;	  0518	! SIDE EFFECTS:
;	  0519	!	None
;	  0520	!--
;	  0521	
;	  0522	    begin
;	  0523	
;	  0524	    if .DB [DF_DMR]
;	  0525	    then
;	  0526		begin
;	  0527	
;	  0528		local
;	  0529		    CTR;
;	  0530	
;	  0531		COUNTER_16_TIME (0, DB [DB_TIME_LINE_ZEROED]);
;	  0532		CNTR_BM_BEGIN ()
;	  0533		CNTR_BM (0, BASE_NAKS_RCV_RCV_OVRN);
;	  0534		CNTR_BM (1, BASE_NAKS_SND_HDR_FMT);
;	  0535		CNTR_BM (3, BASE_STRM_TIMEOUT);
;	  0536		CNTR_BM_POST (1100);
;	  0537		CNTR_BM_BEGIN ()
;	  0538		CNTR_BM (0, BASE_NAKS_SND_RCV_OVRN);
;	  0539		CNTR_BM (2, BASE_XMT_UNDR);
;	  0540		CNTR_BM (3, BASE_NAKS_RCV_HDR_FMT);
;	  0541		CNTR_BM_POST (1101);
;	  0542		end;
;	  0543	
;	  0544	    if .DB [D_CONFIGURATION_ERRORS] neq 0
;	  0545	    then
;	  0546		COUNTER_8_BM (2500, DB [D_CONFIGURATION_ERRORS]);
;	  0547	
;	  0548	    if .DB [D_DEVICE_SERVICE_ERRORS] neq 0
;	  0549	    then
;	  0550		COUNTER_8_BM (2501, DB [D_DEVICE_SERVICE_ERRORS]);
;	  0551	
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  22
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (7)

;	  0552	    if .DB [D_FATAL_DEVICE_ERRORS] neq 0
;	  0553	    then
;	  0554		COUNTER_8_BM (2502, DB [D_FATAL_DEVICE_ERRORS]);
;	  0555	
;	  0556	    end;			!of routine PARAMETER_LINE_COUNTERS


						.GLOBL	$DT16


						.SBTTL	LNCTRS
000000	004167  000000G			LNCTRS::JSR	R1,$SAVE5			;					0500
000004	010502 					MOV	R5,R2				; *,DB
000006	032762  010000  000032 			BIT	#10000,32(R2)			; *,*(DB)				0524
000014	001544 					BEQ	9$
000016	012746  140000 				MOV	#-40000,-(SP)			;					0531
000022	062705  000142 				ADD	#142,R5
000026	010500 					MOV	R5,R0
000030	004767  000000G				JSR	PC,$DT16
000034	012705  000377 				MOV	#377,R5				; *,CTR					0532
000040	005001 					CLR	R1				; SUM
000042	116200  000170 				MOVB	170(R2),R0			; *(DB),$CNTR$DIFF			0533
000046	116203  000570 				MOVB	570(R2),R3			; *(DB),*
000052	160300 					SUB	R3,R0				; *,$CNTR$DIFF
000054	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000060	001403 					BEQ	1$
000062	060001 					ADD	R0,R1				; $CNTR$DIFF,SUM
000064	052705  000400 				BIS	#400,R5				; *,CTR
000070	116200  000175 			1$:	MOVB	175(R2),R0			; *(DB),$CNTR$DIFF			0534
000074	116203  000575 				MOVB	575(R2),R3			; *(DB),*
000100	160300 					SUB	R3,R0				; *,$CNTR$DIFF
000102	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000106	001403 					BEQ	2$
000110	060001 					ADD	R0,R1				; $CNTR$DIFF,SUM
000112	052705  001000 				BIS	#1000,R5			; *,CTR
000116	116200  000203 			2$:	MOVB	203(R2),R0			; *(DB),$CNTR$DIFF			0535
000122	116203  000603 				MOVB	603(R2),R3			; *(DB),*
000126	160300 					SUB	R3,R0				; *,$CNTR$DIFF
000130	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000134	001403 					BEQ	3$
000136	060001 					ADD	R0,R1				; $CNTR$DIFF,SUM
000140	052705  004000 				BIS	#4000,R5			; *,CTR
000144	020127  000377 			3$:	CMP	R1,#377				; SUM,*					0536
000150	103002 					BHIS	4$
000152	105005 					CLRB	R5				; CTR
000154	150105 					BISB	R1,R5				; SUM,CTR
000156	012716  132114 			4$:	MOV	#-45664,(SP)
000162	010500 					MOV	R5,R0				; CTR,*
000164	004767  000000G				JSR	PC,$DC8B
000170	012705  000377 				MOV	#377,R5				; *,CTR					0537
000174	005001 					CLR	R1				; SUM
000176	116200  000174 				MOVB	174(R2),R0			; *(DB),$CNTR$DIFF			0538
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  23
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (7)

000202	116203  000574 				MOVB	574(R2),R3			; *(DB),*
000206	160300 					SUB	R3,R0				; *,$CNTR$DIFF
000210	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000214	001403 					BEQ	5$
000216	060001 					ADD	R0,R1				; $CNTR$DIFF,SUM
000220	052705  000400 				BIS	#400,R5				; *,CTR
000224	116200  000176 			5$:	MOVB	176(R2),R0			; *(DB),$CNTR$DIFF			0539
000230	116203  000576 				MOVB	576(R2),R3			; *(DB),*
000234	160300 					SUB	R3,R0				; *,$CNTR$DIFF
000236	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000242	001403 					BEQ	6$
000244	060001 					ADD	R0,R1				; $CNTR$DIFF,SUM
000246	052705  002000 				BIS	#2000,R5			; *,CTR
000252	116200  000171 			6$:	MOVB	171(R2),R0			; *(DB),$CNTR$DIFF			0540
000256	116203  000571 				MOVB	571(R2),R3			; *(DB),*
000262	160300 					SUB	R3,R0				; *,$CNTR$DIFF
000264	042700  177400 				BIC	#177400,R0			; *,$CNTR$DIFF
000270	001403 					BEQ	7$
000272	060001 					ADD	R0,R1				; $CNTR$DIFF,SUM
000274	052705  004000 				BIS	#4000,R5			; *,CTR
000300	020127  000377 			7$:	CMP	R1,#377				; SUM,*					0541
000304	103002 					BHIS	8$
000306	105005 					CLRB	R5				; CTR
000310	150105 					BISB	R1,R5				; SUM,CTR
000312	012716  132115 			8$:	MOV	#-45663,(SP)
000316	010500 					MOV	R5,R0				; CTR,*
000320	004767  000000G				JSR	PC,$DC8B
000324	005726 					TST	(SP)+				;					0526
000326	012705  000146 			9$:	MOV	#146,R5				;					0544
000332	060205 					ADD	R2,R5				; DB,*
000334	105715 					TSTB	(R5)
000336	001406 					BEQ	10$
000340	012746  134704 				MOV	#-43074,-(SP)			;					0546
000344	011500 					MOV	(R5),R0
000346	004767  000000G				JSR	PC,$DC8B
000352	005726 					TST	(SP)+
000354	012705  000150 			10$:	MOV	#150,R5				;					0548
000360	060205 					ADD	R2,R5				; DB,*
000362	105715 					TSTB	(R5)
000364	001406 					BEQ	11$
000366	012746  134705 				MOV	#-43073,-(SP)			;					0550
000372	011500 					MOV	(R5),R0
000374	004767  000000G				JSR	PC,$DC8B
000400	005726 					TST	(SP)+
000402	012701  000152 			11$:	MOV	#152,R1				;					0552
000406	060201 					ADD	R2,R1				; DB,*
000410	105711 					TSTB	(R1)
000412	001406 					BEQ	12$
000414	012746  134706 				MOV	#-43072,-(SP)			;					0554
000420	011100 					MOV	(R1),R0
000422	004767  000000G				JSR	PC,$DC8B
000426	005726 					TST	(SP)+
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  24
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (7)

000430	000207 				12$:	RTS	PC				;					0500

; Routine Size:  141 words,	Routine Base:  $CODE$ + 1532
; Maximum stack depth per invocation:  8 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  25
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (8)

;	  0557	routine SET_CIRCUIT (CCB) : LINKAGE_CCB =
;	  0558	
;	  0559	!++
;	  0560	! FUNCTIONAL DESCRIPTION:
;	  0561	!
;	  0562	!
;	  0563	! FORMAL PARAMETERS:
;	  0564	!	CCB	Address of CCB
;	  0565	!
;	  0566	! IMPLICIT INPUTS:
;	  0567	!	None
;	  0568	!
;	  0569	! IMPLICIT OUTPUTS:
;	  0570	!	None
;	  0571	!
;	  0572	! ROUTINE VALUE:
;	  0573	!	The appropriate NM status code
;	  0574	!
;	  0575	! COMPLETION CODES:
;	  0576	!	None
;	  0577	!
;	  0578	! SIDE EFFECTS:
;	  0579	!	None
;	  0580	!--
;	  0581	
;	  0582	    begin
;	  0583	
;	  0584	    map
;	  0585		CCB: ref block field (C_NM_FIELDS);
;	  0586	
;	  0587	    NE$PNA
;	  0588	    end;


						.SBTTL	SET.CIRCUIT
000000	012700  177752 			SET.CIRCUIT:
						MOV	#-26,R0				;					0557
000004	000207 					RTS	PC

; Routine Size:  3 words,	Routine Base:  $CODE$ + 2164
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  26
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (9)

;	  0589	routine SET_LINE (CCB) : LINKAGE_CCB =
;	  0590	
;	  0591	!++
;	  0592	! FUNCTIONAL DESCRIPTION:
;	  0593	!
;	  0594	!
;	  0595	! FORMAL PARAMETERS:
;	  0596	!	CCB	Address of CCB
;	  0597	!
;	  0598	! IMPLICIT INPUTS:
;	  0599	!	None
;	  0600	!
;	  0601	! IMPLICIT OUTPUTS:
;	  0602	!	None
;	  0603	!
;	  0604	! ROUTINE VALUE:
;	  0605	!	The appropriate NM status code
;	  0606	!
;	  0607	! COMPLETION CODES:
;	  0608	!	None
;	  0609	!
;	  0610	! SIDE EFFECTS:
;	  0611	!	None
;	  0612	!--
;	  0613	
;	  0614	    begin
;	  0615	    GET_DMC_DATA_BASE (DB)
;	  0616	
;	  0617	    map
;	  0618		CCB: ref block field (C_NM_FIELDS);
;	  0619	
;	  0620	    local
;	  0621		BUF_PTR,
;	  0622		DATA_ID,
;	  0623		DATA_VALUE;
;	  0624	
;	  0625	    MAP$ (.CCB [C_BIAS]);
;	  0626	    BUF_PTR = .CCB [C_ADDR];
;	  0627	    DATA_ID <0, 8> = ch$rchar_a (BUF_PTR);
;	  0628	    DATA_ID <8, 8> = ch$rchar_a (BUF_PTR);
;	  0629	    DATA_ID = .DATA_ID <0, 12>;
;	  0630	    DATA_VALUE <0, 8> = ch$rchar_a (BUF_PTR);
;	  0631	    DATA_VALUE <8, 8> = ch$rchar_a (BUF_PTR);
;	  0632	    MAP$ (.DB_BIAS);
;	P 0633	    $NM_PARAMETER_DISPATCH (.DATA_ID, NOT_APPLICABLE,
;	P 0634		((0, SET_LINE_STATE),
;	P 0635		 (1111, SET_LINE_DUPLEX),
;	P 0636		 (1105, SET_LINE_RECEIVE_BUFFERS),
;	P 0637		 (1110, SET_LINE_CONTROLLER),
;	P 0638		 (1120, SET_LINE_SERVICE_TIMER),
;	P 0639		 (1121, SET_LINE_RETRANSMIT_TIMER)
;	U 0640		  %if DMC$K_FANCY %then ,
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  27
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (9)

;	U 0641		 (2650, SET_LINE_CONTROLLER_REGISTER),
;	U 0642		 (2655, SET_LINE_INTERRUPT_VECTOR),
;	U 0643		 (2660, SET_LINE_INTERRUPT_PRIORITY)
;	P 0644		  %fi),
;	  0645		(DB [D_TIM], .DATA_VALUE), DMC_DB_NUM)
;	  0646	    end;



000100						.PSECT	$PLIT$,  RO ,  D  
000100	000340'				P.AAI:	.WORD	NOT.APPLICABLE
000102	000000V					.WORD	SET.LINE.STATE
000104	000000V					.WORD	SET.LINE.DUPLEX
000106	000000V					.WORD	SET.LINE.RECEIVE.BUFFERS
000110	000000V					.WORD	SET.LINE.CONTROLLER
000112	000000V					.WORD	SET.LINE.SERVICE.TIMER
000114	000000V					.WORD	SET.LINE.RETRANSMIT.TIMER
000116	000006 					.WORD	6				; Plit count word
000120	000000 				P.AAJ:	.WORD	0
000122	002127 					.WORD	2127
000124	002121 					.WORD	2121
000126	002126 					.WORD	2126
000130	002140 					.WORD	2140
000132	002141 					.WORD	2141


						.GLOBL	KISAR6, $IDVAL


						.SBTTL	SET.LINE
002172						.PSECT	$CODE$,  RO 

000000	004167  000000G			SET.LINE:
						JSR	R1,$SAVE5			;					0589
000004	016705  000002G				MOV	.CRDAT+2,R5			;					0614
000010	016467  000016  000000G			MOV	16(R4),KISAR6			; *(CCB),*				0625
000016	016400  000020 				MOV	20(R4),R0			; *(CCB),BUF.PTR			0626
000022	105001 					CLRB	R1				; DATA.ID				0627
000024	152001 					BISB	(R0)+,R1			; BUF.PTR,DATA.ID
000026	010146 					MOV	R1,-(SP)			; DATA.ID,*				0628
000030	112066  000001 				MOVB	(R0)+,1(SP)			; BUF.PTR,*
000034	012601 					MOV	(SP)+,R1			; *,DATA.ID
000036	042701  170000 				BIC	#170000,R1			; *,DATA.ID				0629
000042	105004 					CLRB	R4				; DATA.VALUE				0630
000044	152004 					BISB	(R0)+,R4			; BUF.PTR,DATA.VALUE
000046	010446 					MOV	R4,-(SP)			; DATA.VALUE,*				0631
000050	112066  000001 				MOVB	(R0)+,1(SP)			; BUF.PTR,*
000054	012604 					MOV	(SP)+,R4			; *,DATA.VALUE
000056	016767  000000G 000000G			MOV	.CRDAT,KISAR6			;					0632
000064	012700  000120'				MOV	#P.AAJ,R0			;					0645
000070	004767  000000G				JSR	PC,$IDVAL
000074	006300 					ASL	R0
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  28
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (9)

000076	010401 					MOV	R4,R1				; DATA.VALUE,*
000100	004770  000100'				JSR	PC,@P.AAI(R0)
000104	000207 					RTS	PC				;					0589

; Routine Size:  35 words,	Routine Base:  $CODE$ + 2172
; Maximum stack depth per invocation:  7 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  29
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (10)

;	  0647	routine SET_LINE_CONTROLLER (DB, CONTROLLER) : DMC_DB_NUM =
;	  0648	
;	  0649	!++
;	  0650	! FUNCTIONAL DESCRIPTION:
;	  0651	!
;	  0652	!
;	  0653	! FORMAL PARAMETERS:
;	  0654	!	CONTROLLER = (NORMAL, LOOPBACK)
;	  0655	!
;	  0656	! IMPLICIT INPUTS:
;	  0657	!	None
;	  0658	!
;	  0659	! IMPLICIT OUTPUTS:
;	  0660	!	None
;	  0661	!
;	  0662	! ROUTINE VALUE:
;	  0663	!	The appropriate NM status code
;	  0664	!
;	  0665	! COMPLETION CODES:
;	  0666	!	None
;	  0667	!
;	  0668	! SIDE EFFECTS:
;	  0669	!	None
;	  0670	!--
;	  0671	
;	  0672	    begin
;	  0673	    GET_DMC_DATA_BASE (DB)
;	  0674	
;	  0675	    literal
;	  0676		LOOPBACK = 1,
;	  0677		NORMAL = 0;
;	  0678	
;	  0679	    if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
;	  0680	
;	  0681	    selectone .CONTROLLER of
;	  0682		set
;	  0683		[NORMAL] : (DB [DF_CONTROLLER_LOOPBACK] = 0; NM$SUC);
;	  0684		[LOOPBACK] : (DB [DF_CONTROLLER_LOOPBACK] = 1; NM$SUC);
;	  0685		[otherwise] : NE$IPV;
;	  0686		tes
;	  0687	
;	  0688	    end;


						.SBTTL	SET.LINE.CONTROLLER
000000	105765  000034 			SET.LINE.CONTROLLER:
						TSTB	34(R5)				; *(DB)					0679
000004	001403 					BEQ	1$
000006	012700  177765 				MOV	#-13,R0
000012	000207 					RTS	PC
000014	005701 				1$:	TST	R1				; CONTROLLER				0681
000016	001004 					BNE	2$
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  30
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (10)

000020	042765  002000  000032 			BIC	#2000,32(R5)			; *,*(DB)				0683
000026	000406 					BR	3$				;					0681
000030	020127  000001 			2$:	CMP	R1,#1				; CONTROLLER,*
000034	001006 					BNE	4$
000036	052765  002000  000032 			BIS	#2000,32(R5)			; *,*(DB)				0684
000044	012700  000001 			3$:	MOV	#1,R0				;					0681
000050	000207 					RTS	PC
000052	012700  177760 			4$:	MOV	#-20,R0
000056	000207 					RTS	PC				;					0647

; Routine Size:  24 words,	Routine Base:  $CODE$ + 2300
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  31
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (11)

;	  0689	routine SET_LINE_DUPLEX (DB, DUPLEX) : DMC_DB_NUM =
;	  0690	
;	  0691	!++
;	  0692	! FUNCTIONAL DESCRIPTION:
;	  0693	!
;	  0694	!
;	  0695	! FORMAL PARAMETERS:
;	  0696	!	DUPLEX = (FULL, HALF)
;	  0697	!
;	  0698	! IMPLICIT INPUTS:
;	  0699	!	None
;	  0700	!
;	  0701	! IMPLICIT OUTPUTS:
;	  0702	!	None
;	  0703	!
;	  0704	! ROUTINE VALUE:
;	  0705	!	The appropriate NM status code
;	  0706	!
;	  0707	! COMPLETION CODES:
;	  0708	!	None
;	  0709	!
;	  0710	! SIDE EFFECTS:
;	  0711	!	None
;	  0712	!--
;	  0713	
;	  0714	    begin
;	  0715	    GET_DMC_DATA_BASE (DB)
;	  0716	
;	  0717	    literal
;	  0718		FULL = 0,
;	  0719		HALF = 1;
;	  0720	
;	  0721	    if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
;	  0722	
;	  0723	    selectone .DUPLEX of
;	  0724		set
;	  0725		[FULL] : (DB [DF_HALF_DUPLEX] = 0; NM$SUC);
;	  0726		[HALF] : (DB [DF_HALF_DUPLEX] = 1; NM$SUC);
;	  0727		[otherwise] : NE$IPV;
;	  0728		tes
;	  0729	
;	  0730	    end;


						.SBTTL	SET.LINE.DUPLEX
000000	105765  000034 			SET.LINE.DUPLEX:
						TSTB	34(R5)				; *(DB)					0721
000004	001403 					BEQ	1$
000006	012700  177765 				MOV	#-13,R0
000012	000207 					RTS	PC
000014	005701 				1$:	TST	R1				; DUPLEX				0723
000016	001004 					BNE	2$
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  32
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (11)

000020	042765  000400  000032 			BIC	#400,32(R5)			; *,*(DB)				0725
000026	000406 					BR	3$				;					0723
000030	020127  000001 			2$:	CMP	R1,#1				; DUPLEX,*
000034	001006 					BNE	4$
000036	052765  000400  000032 			BIS	#400,32(R5)			; *,*(DB)				0726
000044	012700  000001 			3$:	MOV	#1,R0				;					0723
000050	000207 					RTS	PC
000052	012700  177760 			4$:	MOV	#-20,R0
000056	000207 					RTS	PC				;					0689

; Routine Size:  24 words,	Routine Base:  $CODE$ + 2360
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  33
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (12)

;	  0731	routine SET_LINE_RECEIVE_BUFFERS (DB, COUNT) : DMC_DB_NUM =
;	  0732	
;	  0733	!++
;	  0734	! FUNCTIONAL DESCRIPTION:
;	  0735	!
;	  0736	!
;	  0737	! FORMAL PARAMETERS:
;	  0738	!	COUNT = (1 to 16)
;	  0739	!
;	  0740	! IMPLICIT INPUTS:
;	  0741	!	None
;	  0742	!
;	  0743	! IMPLICIT OUTPUTS:
;	  0744	!	None
;	  0745	!
;	  0746	! ROUTINE VALUE:
;	  0747	!	The appropriate NM status code
;	  0748	!
;	  0749	! COMPLETION CODES:
;	  0750	!	None
;	  0751	!
;	  0752	! SIDE EFFECTS:
;	  0753	!	None
;	  0754	!--
;	  0755	
;	  0756	    begin
;	  0757	    GET_DMC_DATA_BASE (DB)
;	  0758	
;	  0759	    if not .DB [DF_DMR]
;	  0760	    then
;	  0761		selectone .COUNT of
;	  0762		    set
;	  0763		    [1 to 7] : (DB [D_MAXIMUM_RECEIVE_COUNT] = .COUNT; NM$SUC);
;	  0764		    [otherwise] : NE$IPV;
;	  0765		    tes
;	  0766	    else
;	  0767		selectone .COUNT of
;	  0768		    set
;	  0769		    [1 to 16] : (DB [D_MAXIMUM_RECEIVE_COUNT] = .COUNT; NM$SUC);
;	  0770		    [otherwise] : NE$IPV;
;	  0771		    tes
;	  0772	
;	  0773	    end;


						.SBTTL	SET.LINE.RECEIVE.BUFFERS
000000	032765  010000  000032 		SET.LINE.RECEIVE.BUFFERS:
						BIT	#10000,32(R5)			; *,*(DB)				0759
000006	001006 					BNE	1$
000010	005701 					TST	R1				; COUNT					0761
000012	003416 					BLE	3$
000014	020127  000007 				CMP	R1,#7				; COUNT,*
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  34
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (12)

000020	003406 					BLE	2$				;					0763
000022	000412 					BR	3$				;					0761
000024	005701 				1$:	TST	R1				; COUNT					0767
000026	003410 					BLE	3$
000030	020127  000020 				CMP	R1,#20				; COUNT,*
000034	003005 					BGT	3$
000036	110165  000120 			2$:	MOVB	R1,120(R5)			; COUNT,*(DB)				0769
000042	012700  000001 				MOV	#1,R0				;					0767
000046	000207 					RTS	PC
000050	012700  177760 			3$:	MOV	#-20,R0
000054	000207 					RTS	PC				;					0731

; Routine Size:  23 words,	Routine Base:  $CODE$ + 2440
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  35
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (13)

;	  0774	routine SET_LINE_RETRANSMIT_TIMER (DB, RETRANSMIT_TIMER) : DMC_DB_NUM =
;	  0775	
;	  0776	!++
;	  0777	! FUNCTIONAL DESCRIPTION:
;	  0778	!
;	  0779	!
;	  0780	! FORMAL PARAMETERS:
;	  0781	!	RETRANSMIT_TIMER = (1000, 3000)
;	  0782	!
;	  0783	! IMPLICIT INPUTS:
;	  0784	!	None
;	  0785	!
;	  0786	! IMPLICIT OUTPUTS:
;	  0787	!	None
;	  0788	!
;	  0789	! ROUTINE VALUE:
;	  0790	!	The appropriate NM status code
;	  0791	!
;	  0792	! COMPLETION CODES:
;	  0793	!	None
;	  0794	!
;	  0795	! SIDE EFFECTS:
;	  0796	!	None
;	  0797	!--
;	  0798	
;	  0799	    begin
;	  0800	    GET_DMC_DATA_BASE (DB)
;	  0801	
;	  0802	    if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
;	  0803	
;	  0804	    selectone .RETRANSMIT_TIMER of
;	  0805		set
;	  0806		[1000] : (DB [DF_1_SEC] = TRUE; NM$SUC);
;	  0807		[3000] : (DB [DF_1_SEC] = FALSE; NM$SUC);
;	  0808		[otherwise] : NE$IPV;
;	  0809		tes
;	  0810	
;	  0811	    end;


						.SBTTL	SET.LINE.RETRANSMIT.TIMER
000000	105765  000034 			SET.LINE.RETRANSMIT.TIMER:
						TSTB	34(R5)				; *(DB)					0802
000004	001403 					BEQ	1$
000006	012700  177765 				MOV	#-13,R0
000012	000207 					RTS	PC
000014	020127  001750 			1$:	CMP	R1,#1750			; RETRANSMIT.TIME,*			0804
000020	001004 					BNE	2$
000022	052765  001000  000032 			BIS	#1000,32(R5)			; *,*(DB)				0806
000030	000406 					BR	3$				;					0804
000032	020127  005670 			2$:	CMP	R1,#5670			; RETRANSMIT.TIME,*
000036	001006 					BNE	4$
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  36
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (13)

000040	042765  001000  000032 			BIC	#1000,32(R5)			; *,*(DB)				0807
000046	012700  000001 			3$:	MOV	#1,R0				;					0804
000052	000207 					RTS	PC
000054	012700  177760 			4$:	MOV	#-20,R0
000060	000207 					RTS	PC				;					0774

; Routine Size:  25 words,	Routine Base:  $CODE$ + 2516
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  37
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (14)

;	  0812	routine SET_LINE_SERVICE_TIMER (DB, MILLISECONDS) : DMC_DB_NUM =
;	  0813	
;	  0814	!++
;	  0815	! FUNCTIONAL DESCRIPTION:
;	  0816	!
;	  0817	!
;	  0818	! FORMAL PARAMETERS:
;	  0819	!	MILLISECONDS = 1 to 65535
;	  0820	!
;	  0821	! IMPLICIT INPUTS:
;	  0822	!	None
;	  0823	!
;	  0824	! IMPLICIT OUTPUTS:
;	  0825	!	None
;	  0826	!
;	  0827	! ROUTINE VALUE:
;	  0828	!	The appropriate NM status code
;	  0829	!
;	  0830	! COMPLETION CODES:
;	  0831	!	None
;	  0832	!
;	  0833	! SIDE EFFECTS:
;	  0834	!	None
;	  0835	!--
;	  0836	
;	  0837	    begin
;	  0838	    GET_DMC_DATA_BASE (DB)
;	  0839	
;	  0840	    if .MILLISECONDS<1, 15, 0> mod (1000/2) neq 0 or
;	  0841		.MILLISECONDS<0, 1, 0> neq 0 then return NE$IPV;
;	  0842	
;	  0843	    DB [D_SERVICE_TIMER] = .MILLISECONDS<1, 15, 0>/(1000/2);
;	  0844	    NM$SUC
;	  0845	    end;


						.SBTTL	SET.LINE.SERVICE.TIMER
000000	010246 				SET.LINE.SERVICE.TIMER:
						MOV	R2,-(SP)			;					0812
000002	010102 					MOV	R1,R2				; *,MILLISECONDS
000004	006201 					ASR	R1				;					0840
000006	042701  100000 				BIC	#100000,R1
000012	006700 					SXT	R0
000014	071027  000764 				DIV	#764,R0
000020	005701 					TST	R1
000022	001003 					BNE	1$
000024	032702  000001 				BIT	#1,R2				; *,MILLISECONDS			0841
000030	001403 					BEQ	2$
000032	012700  177760 			1$:	MOV	#-20,R0
000036	000413 					BR	3$
000040	010201 				2$:	MOV	R2,R1				; MILLISECONDS,*			0843
000042	006201 					ASR	R1
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  38
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (14)

000044	042701  100000 				BIC	#100000,R1
000050	005000 					CLR	R0
000052	071027  000764 				DIV	#764,R0
000056	010065  000076 				MOV	R0,76(R5)			; *,*(DB)
000062	012700  000001 				MOV	#1,R0				;					0812
000066	012602 				3$:	MOV	(SP)+,R2
000070	000207 					RTS	PC

; Routine Size:  29 words,	Routine Base:  $CODE$ + 2600
; Maximum stack depth per invocation:  2 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  39
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (15)

;	  0846	routine SET_LINE_STATE (DB, STATE) : DMC_DB_NUM =
;	  0847	
;	  0848	!++
;	  0849	! FUNCTIONAL DESCRIPTION:
;	  0850	!
;	  0851	!
;	  0852	! FORMAL PARAMETERS:
;	  0853	!	STATE = (OFF, ON)
;	  0854	!
;	  0855	! IMPLICIT INPUTS:
;	  0856	!	None
;	  0857	!
;	  0858	! IMPLICIT OUTPUTS:
;	  0859	!	None
;	  0860	!
;	  0861	! ROUTINE VALUE:
;	  0862	!	The appropriate NM status code
;	  0863	!
;	  0864	! COMPLETION CODES:
;	  0865	!	None
;	  0866	!
;	  0867	! SIDE EFFECTS:
;	  0868	!	None
;	  0869	!--
;	  0870	
;	  0871	    begin
;	  0872	    GET_DMC_DATA_BASE (DB)
;	  0873	
;	  0874	    literal
;	  0875		ON = 0,			! New state = ON
;	  0876		OFF = 1,		! New state = OFF
;	  0877		SERVICE = 2,		! New state = SERVICE
;	  0878		CLEARED = 3;		! New state = CLEARED
;	  0879	
;	  0880	    selectone .STATE <0, 8> of
;	  0881		set
;	  0882		[ON] :
;	  0883		    begin
;	  0884		    $MCB_ENABLE_LONG_TIMER ();
;	  0885		    DB [DC_SET_REQUESTED_STATE] = TRUE;
;	  0886		    DB [D_LINE_STATE] = .STATE <0, 8>;
;	  0887		    SET_PORT (DB [D_TIM]);
;	  0888		    NM$SUC
;	  0889		    end;
;	  0890		[OFF] :
;	  0891		    begin
;	  0892		    DB [DC_HALT] = TRUE;
;	  0893		    DB [DC_MASTER_CLEAR] = TRUE;
;	  0894		    DB [DC_BASE_IN] = FALSE;
;	  0895		    DB [DC_CONTROL_IN] = FALSE;
;	  0896		    DB [DC_SET_REQUESTED_STATE] = FALSE;
;	  0897		    DB [D_LINE_STATE] = .STATE <0, 8>;
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  40
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (15)

;	  0898		    SET_PORT (DB [D_TIM]);
;	  0899		    NM$SUC
;	  0900		    end;
;	  0901		[otherwise] : NE$MPE;
;	  0902		tes
;	  0903	
;	  0904	    end;


						.GLOBL	$LTMEN


						.SBTTL	SET.LINE.STATE
000000	105701 				SET.LINE.STATE:
						TSTB	R1				; STATE					0880
000002	001006 					BNE	1$
000004	004767  000000G				JSR	PC,$LTMEN			;					0884
000010	152765  000100  000032 			BISB	#100,32(R5)			; *,*(DB)				0885
000016	000412 					BR	2$				;					0886
000020	120127  000001 			1$:	CMPB	R1,#1				; STATE,*				0880
000024	001016 					BNE	3$
000026	012700  000032 				MOV	#32,R0				;					0892
000032	060500 					ADD	R5,R0				; DB,*
000034	152710  000003 				BISB	#3,(R0)				;					0893
000040	142710  000160 				BICB	#160,(R0)			;					0896
000044	110165  000037 			2$:	MOVB	R1,37(R5)			; STATE,*(DB)				0897
000050	004767  000000G				JSR	PC,SET.PORT			;					0898
000054	012700  000001 				MOV	#1,R0				;					0880
000060	000207 					RTS	PC
000062	012700  177773 			3$:	MOV	#-5,R0
000066	000207 					RTS	PC				;					0846

; Routine Size:  28 words,	Routine Base:  $CODE$ + 2672
; Maximum stack depth per invocation:  1 word
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  41
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (16)

;	U 0905	%if DMC$K_FANCY %then
;	U 0906	routine SET_LINE_CONTROLLER_REGISTER (DB, ADDRESS) : DMC_DB_NUM =
;	U 0907	
;	U 0908	!++
;	U 0909	! FUNCTIONAL DESCRIPTION:
;	U 0910	!
;	U 0911	!
;	U 0912	! FORMAL PARAMETERS:
;	U 0913	!	ADDRESS = UNIBUS address.
;	U 0914	!
;	U 0915	! IMPLICIT INPUTS:
;	U 0916	!	None
;	U 0917	!
;	U 0918	! IMPLICIT OUTPUTS:
;	U 0919	!	None
;	U 0920	!
;	U 0921	! ROUTINE VALUE:
;	U 0922	!	The appropriate NM status code
;	U 0923	!
;	U 0924	! COMPLETION CODES:
;	U 0925	!	None
;	U 0926	!
;	U 0927	! SIDE EFFECTS:
;	U 0928	!	None
;	U 0929	!--
;	U 0930	
;	U 0931	    begin
;	U 0932	    GET_DMC_DATA_BASE (DB)
;	U 0933	
;	U 0934	    if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
;	U 0935	
;	U 0936	    selectoneu .ADDRESS of
;	U 0937		set
;	U 0938		[%o'160000' to %o'177777'] : NO_OPERATION;
;	U 0939		[otherwise] : return NE$IPV;
;	U 0940		tes;
;	U 0941	
;	U 0942	    DB [D_REGISTER] = .ADDRESS;
;	U 0943	    DB [D_DEVICE_STATE] = DD_CLEARED;
;	U 0944	    NM$SUC
;	U 0945	    end;
;	  0946	%fi
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  42
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (17)

;	U 0947	%if DMC$K_FANCY %then
;	U 0948	routine SET_LINE_INTERRUPT_VECTOR (DB, ADDRESS) : DMC_DB_NUM =
;	U 0949	
;	U 0950	!++
;	U 0951	! FUNCTIONAL DESCRIPTION:
;	U 0952	!
;	U 0953	!
;	U 0954	! FORMAL PARAMETERS:
;	U 0955	!	ADDRESS = Interrupt vector address.
;	U 0956	!
;	U 0957	! IMPLICIT INPUTS:
;	U 0958	!	None
;	U 0959	!
;	U 0960	! IMPLICIT OUTPUTS:
;	U 0961	!	None
;	U 0962	!
;	U 0963	! ROUTINE VALUE:
;	U 0964	!	The appropriate NM status code
;	U 0965	!
;	U 0966	! COMPLETION CODES:
;	U 0967	!	None
;	U 0968	!
;	U 0969	! SIDE EFFECTS:
;	U 0970	!	None
;	U 0971	!--
;	U 0972	
;	U 0973	    begin
;	U 0974	    GET_DMC_DATA_BASE (DB)
;	U 0975	
;	U 0976	    if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
;	U 0977	
;	U 0978	    selectoneu .ADDRESS of
;	U 0979		set
;	U 0980		[%o'0000' to %o'1000'] : NO_OPERATION;
;	U 0981		[otherwise] : return NE$IPV;
;	U 0982		tes;
;	U 0983	
;	U 0984	    DB [D_VECTOR] = .ADDRESS;
;	U 0985	    DB [D_DEVICE_STATE] = DD_CLEARED;
;	U 0986	    NM$SUC
;	U 0987	    end;
;	  0988	%fi
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  43
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (18)

;	U 0989	%if DMC$K_FANCY %then
;	U 0990	routine SET_LINE_INTERRUPT_PRIORITY (DB, PRIORITY) : DMC_DB_NUM =
;	U 0991	
;	U 0992	!++
;	U 0993	! FUNCTIONAL DESCRIPTION:
;	U 0994	!
;	U 0995	!
;	U 0996	! FORMAL PARAMETERS:
;	U 0997	!	PRIORITY = Interrupt priority.
;	U 0998	!
;	U 0999	! IMPLICIT INPUTS:
;	U 1000	!	None
;	U 1001	!
;	U 1002	! IMPLICIT OUTPUTS:
;	U 1003	!	None
;	U 1004	!
;	U 1005	! ROUTINE VALUE:
;	U 1006	!	The appropriate NM status code
;	U 1007	!
;	U 1008	! COMPLETION CODES:
;	U 1009	!	None
;	U 1010	!
;	U 1011	! SIDE EFFECTS:
;	U 1012	!	None
;	U 1013	!--
;	U 1014	
;	U 1015	    begin
;	U 1016	    GET_DMC_DATA_BASE (DB)
;	U 1017	    PRIORITY = .PRIORITY <0, 8>;
;	U 1018	
;	U 1019	    if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
;	U 1020	
;	U 1021	    selectone .PRIORITY of
;	U 1022		set
;	U 1023		[4 to 7] : NO_OPERATION;
;	U 1024		[otherwise] : return NE$IPV;
;	U 1025		tes;
;	U 1026	
;	U 1027	    DB [D_PRIORITY] = .PRIORITY;
;	U 1028	    DB [D_DEVICE_STATE] = DD_CLEARED;
;	U 1029	    NM$SUC
;	U 1030	    end;
;	  1031	%fi
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  44
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (19)

;	  1032	routine SHOW_AND_ZERO_CIRCUIT_COUNTERS (CCB) : LINKAGE_CCB =
;	  1033	
;	  1034	!++
;	  1035	! FUNCTIONAL DESCRIPTION:
;	  1036	!
;	  1037	!
;	  1038	! FORMAL PARAMETERS:
;	  1039	!	CCB	Address of CCB
;	  1040	!
;	  1041	! IMPLICIT INPUTS:
;	  1042	!	None
;	  1043	!
;	  1044	! IMPLICIT OUTPUTS:
;	  1045	!	None
;	  1046	!
;	  1047	! ROUTINE VALUE:
;	  1048	!	The appropriate NM status code
;	  1049	!
;	  1050	! COMPLETION CODES:
;	  1051	!	None
;	  1052	!
;	  1053	! SIDE EFFECTS:
;	  1054	!	None
;	  1055	!--
;	  1056	
;	  1057	    begin
;	  1058	    GET_DMC_DATA_BASE (DB)
;	  1059	
;	  1060	    map
;	  1061		CCB: ref block field (C_NM_FIELDS);
;	  1062	
;	  1063	    $NM_RESPONSE_BEGIN (.CCB);
;	  1064	    PARAMETER_CIRCUIT_COUNTERS (DB [D_TIM]);
;	  1065	    $NM_RESPONSE_END (.CCB);
;	  1066	    ZERO_CIRCUIT_COUNTERS (.CCB);
;	  1067	    .CCB [C_STS]
;	  1068	    end;


						.GLOBL	$NRBEG, $NREND


						.SBTTL	SHOW.AND.ZERO.CIRCUIT.COUNTERS
000000	010546 				SHOW.AND.ZERO.CIRCUIT.COUNTERS:
						MOV	R5,-(SP)			;					1032
000002	016705  000002G				MOV	.CRDAT+2,R5			;					1057
000006	004767  000000G				JSR	PC,$NRBEG			;					1063
000012	004767  175346 				JSR	PC,CKCTRS			;					1064
000016	004767  000000G				JSR	PC,$NREND			;					1065
000022	004767  000000V				JSR	PC,ZERO.CIRCUIT.COUNTERS	;					1066
000026	016400  000014 				MOV	14(R4),R0			; *(CCB),*				1032
000032	012605 					MOV	(SP)+,R5
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  45
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (19)

000034	000207 					RTS	PC

; Routine Size:  15 words,	Routine Base:  $CODE$ + 2762
; Maximum stack depth per invocation:  2 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  46
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (20)

;	  1069	routine SHOW_AND_ZERO_LINE_COUNTERS (CCB) : LINKAGE_CCB =
;	  1070	
;	  1071	!++
;	  1072	! FUNCTIONAL DESCRIPTION:
;	  1073	!
;	  1074	!
;	  1075	! FORMAL PARAMETERS:
;	  1076	!	CCB	Address of CCB
;	  1077	!
;	  1078	! IMPLICIT INPUTS:
;	  1079	!	None
;	  1080	!
;	  1081	! IMPLICIT OUTPUTS:
;	  1082	!	None
;	  1083	!
;	  1084	! ROUTINE VALUE:
;	  1085	!	The appropriate NM status code
;	  1086	!
;	  1087	! COMPLETION CODES:
;	  1088	!	None
;	  1089	!
;	  1090	! SIDE EFFECTS:
;	  1091	!	None
;	  1092	!--
;	  1093	
;	  1094	    begin
;	  1095	    GET_DMC_DATA_BASE (DB)
;	  1096	
;	  1097	    map
;	  1098		CCB: ref block field (C_NM_FIELDS);
;	  1099	
;	  1100	    $NM_RESPONSE_BEGIN (.CCB);
;	  1101	    PARAMETER_LINE_COUNTERS (DB [D_TIM]);
;	  1102	    $NM_RESPONSE_END (.CCB);
;	  1103	    ZERO_LINE_COUNTERS (.CCB);
;	  1104	    .CCB [C_STS]
;	  1105	    end;


						.SBTTL	SHOW.AND.ZERO.LINE.COUNTERS
000000	010546 				SHOW.AND.ZERO.LINE.COUNTERS:
						MOV	R5,-(SP)			;					1069
000002	016705  000002G				MOV	.CRDAT+2,R5			;					1094
000006	004767  000000G				JSR	PC,$NRBEG			;					1100
000012	004767  176474 				JSR	PC,LNCTRS			;					1101
000016	004767  000000G				JSR	PC,$NREND			;					1102
000022	004767  000000V				JSR	PC,ZERO.LINE.COUNTERS		;					1103
000026	016400  000014 				MOV	14(R4),R0			; *(CCB),*				1069
000032	012605 					MOV	(SP)+,R5
000034	000207 					RTS	PC

; Routine Size:  15 words,	Routine Base:  $CODE$ + 3020
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  47
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (20)

; Maximum stack depth per invocation:  2 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  48
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (21)

;	  1106	routine SHOW_CIRCUIT (CCB) : LINKAGE_CCB =
;	  1107	
;	  1108	!++
;	  1109	! FUNCTIONAL DESCRIPTION:
;	  1110	!
;	  1111	!
;	  1112	! FORMAL PARAMETERS:
;	  1113	!	CCB	Address of CCB
;	  1114	!
;	  1115	! IMPLICIT INPUTS:
;	  1116	!	None
;	  1117	!
;	  1118	! IMPLICIT OUTPUTS:
;	  1119	!	None
;	  1120	!
;	  1121	! ROUTINE VALUE:
;	  1122	!	The appropriate NM status code
;	  1123	!
;	  1124	! COMPLETION CODES:
;	  1125	!	None
;	  1126	!
;	  1127	! SIDE EFFECTS:
;	  1128	!	None
;	  1129	!--
;	  1130	
;	  1131	    begin
;	  1132	    GET_DMC_DATA_BASE (DB)
;	  1133	
;	  1134	    map
;	  1135		CCB: ref block field (C_NM_FIELDS);
;	  1136	
;	  1137	    $NM_RESPONSE_BEGIN (.CCB);
;	  1138	
;	  1139	    selectone .CCB [C_NM_SELECT] of
;	  1140		set
;	  1141	
;	  1142		[NMX$SEL_sum, NMX$SEL_sta] :
;	  1143		    begin
;	  1144		    NMX$PARAMETER_CIRCUIT_USER (.DB [D_NMX_PIX], .DB [D_CIRCUIT_ENTITY], 1000);
;	  1145		    end;
;	  1146	
;	  1147		[NMX$SEL_cha] :
;	  1148		    begin
;	  1149	
;	  1150		    literal
;	  1151			DDCMP_DMC = 4;			! TYPE
;	  1152	
;	  1153		    local
;	  1154			PRM;
;	  1155	
;	  1156		    NMX$PARAMETER_CIRCUIT_OWNER (.DB [D_NMX_PIX], .DB [D_CIRCUIT_ENTITY], 1100);
;	  1157		    NMX$PARAMETER_LINE (.DB [D_NMX_PIX], .DB [D_LINE_ENTITY], 1110);
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  49
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (21)

;	  1158		    PRM = DDCMP_DMC;
;	  1159		    PARAMETER_C_1 (1112, PRM);			! TYPE
;	  1160		    end;
;	  1161	
;	  1162		[NMX$SEL_cou] :
;	  1163		    PARAMETER_CIRCUIT_COUNTERS (DB [D_TIM]);
;	  1164	
;	  1165		[otherwise] :
;	  1166		    return $NM$ERR_MPE;
;	  1167	
;	  1168		tes;
;	  1169	
;	  1170	    $NM_RESPONSE_END (.CCB);
;	  1171	    .CCB [C_STS]
;	  1172	    end;


						.GLOBL	$NPUSR, $CALLP, $NPOWN, $NPNAM
						.GLOBL	$DPC1


						.SBTTL	SHOW.CIRCUIT
000000	010546 				SHOW.CIRCUIT:
						MOV	R5,-(SP)			;					1106
000002	016705  000002G				MOV	.CRDAT+2,R5			;					1131
000006	004767  000000G				JSR	PC,$NRBEG			;					1137
000012	016400  000024 				MOV	24(R4),R0			; *(CCB),*				1139
000016	072027  177764 				ASH	#-14,R0
000022	042700  177760 				BIC	#177760,R0
000026	003425 					BLE	1$
000030	020027  000002 				CMP	R0,#2
000034	003022 					BGT	1$
000036	012746  001750 				MOV	#1750,-(SP)			;					1144
000042	016546  000100 				MOV	100(R5),-(SP)
000046	012746  002004 				MOV	#2004,-(SP)
000052	012746  000003 				MOV	#3,-(SP)
000056	012746  000000G				MOV	#$NPUSR,-(SP)
000062	005046 					CLR	-(SP)
000064	116516  000007 				MOVB	7(R5),(SP)
000070	004767  000000G				JSR	PC,$CALLP
000074	062706  000014 				ADD	#14,SP				;					1143
000100	000464 					BR	4$				;					1139
000102	020027  000003 			1$:	CMP	R0,#3
000106	001050 					BNE	2$
000110	012746  002114 				MOV	#2114,-(SP)			;					1156
000114	016546  000100 				MOV	100(R5),-(SP)
000120	012746  002000 				MOV	#2000,-(SP)
000124	012746  000003 				MOV	#3,-(SP)
000130	012746  000000G				MOV	#$NPOWN,-(SP)
000134	005046 					CLR	-(SP)
000136	116516  000007 				MOVB	7(R5),(SP)
000142	004767  000000G				JSR	PC,$CALLP
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  50
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (21)

000146	012716  002126 				MOV	#2126,(SP)			;					1157
000152	016546  000102 				MOV	102(R5),-(SP)
000156	012746  001004 				MOV	#1004,-(SP)
000162	012746  000003 				MOV	#3,-(SP)
000166	012746  000000G				MOV	#$NPNAM,-(SP)
000172	005046 					CLR	-(SP)
000174	116516  000007 				MOVB	7(R5),(SP)
000200	004767  000000G				JSR	PC,$CALLP
000204	012705  000004 				MOV	#4,R5				; *,PRM					1158
000210	012716  002130 				MOV	#2130,(SP)			;					1159
000214	110500 					MOVB	R5,R0				; PRM,*
000216	004767  000000G				JSR	PC,$DPC1
000222	062706  000026 				ADD	#26,SP				;					1148
000226	000411 					BR	4$				;					1139
000230	020027  000004 			2$:	CMP	R0,#4
000234	001003 					BNE	3$
000236	004767  175026 				JSR	PC,CKCTRS			;					1163
000242	000403 					BR	4$				;					1139
000244	012700  177773 			3$:	MOV	#-5,R0				;					1166
000250	000404 					BR	5$
000252	004767  000000G			4$:	JSR	PC,$NREND			;					1170
000256	016400  000014 				MOV	14(R4),R0			; *(CCB),*				1106
000262	012605 				5$:	MOV	(SP)+,R5
000264	000207 					RTS	PC

; Routine Size:  91 words,	Routine Base:  $CODE$ + 3056
; Maximum stack depth per invocation:  13 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  51
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (22)

;	  1173	routine SHOW_LINE (CCB) : LINKAGE_CCB =
;	  1174	
;	  1175	!++
;	  1176	! FUNCTIONAL DESCRIPTION:
;	  1177	!
;	  1178	!
;	  1179	! FORMAL PARAMETERS:
;	  1180	!	CCB	Address of CCB
;	  1181	!
;	  1182	! IMPLICIT INPUTS:
;	  1183	!	None
;	  1184	!
;	  1185	! IMPLICIT OUTPUTS:
;	  1186	!	None
;	  1187	!
;	  1188	! ROUTINE VALUE:
;	  1189	!	The appropriate NM status code
;	  1190	!
;	  1191	! COMPLETION CODES:
;	  1192	!	None
;	  1193	!
;	  1194	! SIDE EFFECTS:
;	  1195	!	None
;	  1196	!--
;	  1197	
;	  1198	    begin
;	  1199	    GET_DMC_DATA_BASE (DB)
;	  1200	
;	  1201	    map
;	  1202		CCB: ref block field (C_NM_FIELDS);
;	  1203	
;	  1204	    $NM_RESPONSE_BEGIN (.CCB);
;	  1205	
;	  1206	    selectone .CCB [C_NM_SELECT] of
;	  1207		set
;	  1208	
;	  1209		[NMX$SEL_sum, NMX$SEL_sta] :
;	  1210		    begin
;	  1211		    PARAMETER_C_1 (0, DB [D_LINE_STATE]);	! STATE
;	  1212		    end;
;	  1213	
;	  1214		[NMX$SEL_cha] :
;	  1215		    begin
;	  1216	
;	  1217		    literal
;	  1218			DDCMP_DMC = 4,			! TYPE
;	  1219			FULL = 0,			! DUPLEX
;	  1220			HALF = 1,
;	  1221			LOOPBACK = 1,			! CONTROLLER
;	  1222			NORMAL = 0,
;	  1223			EXTRN = 0,			! CLOCK
;	  1224			INTRN = 1;
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  52
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (22)

;	  1225	
;	  1226		    local
;	  1227			PRM;
;	  1228	
;	  1229		    NMX$PARAMETER_LINE (.DB [D_NMX_PIX], .DB [D_LINE_ENTITY], 1100);
;	  1230							! DEVICE
;	  1231		    PRM = .DB [D_MAXIMUM_RECEIVE_COUNT];
;	  1232		    PARAMETER_C_1 (1105, PRM);
;	  1233		    PRM = (if .DB [DF_CONTROLLER_LOOPBACK] then LOOPBACK else NORMAL);
;	  1234		    PARAMETER_C_1 (1110, PRM);
;	  1235		    PRM = (if .DB [DF_HALF_DUPLEX] then HALF else FULL);
;	  1236		    PARAMETER_C_1 (1111, PRM);
;	  1237		    PRM = DDCMP_DMC;
;	  1238		    PARAMETER_C_1 (1112, PRM);
;	  1239		    PRM = EXTRN;
;	  1240		    PARAMETER_C_1 (1113, PRM);
;	  1241		    PRM = .DB [D_SERVICE_TIMER]*1000;
;	  1242		    PARAMETER_DU_2 (1120, PRM);
;	  1243		    PRM = (if .DB [DF_1_SEC] then 1000 else 3000);
;	  1244		    PARAMETER_DU_2 (1121, PRM);
;	  1245		    PARAMETER_O_2 (2650, DB [D_REGISTER]);
;	  1246		    PARAMETER_O_2 (2655, DB [D_VECTOR]);
;	  1247		    PARAMETER_DU_1 (2660, DB [D_PRIORITY]);
;	  1248		    end;
;	  1249	
;	  1250		[NMX$SEL_cou] :
;	  1251		    PARAMETER_LINE_COUNTERS (DB [D_TIM]);
;	  1252	
;	  1253		[otherwise] :
;	  1254		    return $NM$ERR_MPE;
;	  1255	
;	  1256		tes;
;	  1257	
;	  1258	    $NM_RESPONSE_END (.CCB);
;	  1259	    .CCB [C_STS]
;	  1260	    end;


						.GLOBL	$DPDU2, $DPO2, $DPDU1


						.SBTTL	SHOW.LINE
000000	004167  000000G			SHOW.LINE:
						JSR	R1,$SAVE5			;					1173
000004	016701  000002G				MOV	.CRDAT+2,R1			;					1198
000010	004767  000000G				JSR	PC,$NRBEG			;					1204
000014	016400  000024 				MOV	24(R4),R0			; *(CCB),*				1206
000020	072027  177764 				ASH	#-14,R0
000024	042700  177760 				BIC	#177760,R0
000030	003412 					BLE	1$
000032	020027  000002 				CMP	R0,#2
000036	003007 					BGT	1$
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  53
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (22)

000040	005046 					CLR	-(SP)				;					1211
000042	116100  000037 				MOVB	37(R1),R0
000046	004767  000000G				JSR	PC,$DPC1
000052	005726 					TST	(SP)+				;					1210
000054	000567 					BR	10$				;					1206
000056	020027  000003 			1$:	CMP	R0,#3
000062	001152 					BNE	8$
000064	012746  002114 				MOV	#2114,-(SP)			;					1229
000070	016146  000102 				MOV	102(R1),-(SP)
000074	012746  001004 				MOV	#1004,-(SP)
000100	012746  000003 				MOV	#3,-(SP)
000104	012746  000000G				MOV	#$NPNAM,-(SP)
000110	005046 					CLR	-(SP)
000112	116116  000007 				MOVB	7(R1),(SP)
000116	004767  000000G				JSR	PC,$CALLP
000122	005005 					CLR	R5				; PRM					1231
000124	156105  000120 				BISB	120(R1),R5			; *,PRM
000130	012716  002121 				MOV	#2121,(SP)			;					1232
000134	110500 					MOVB	R5,R0				; PRM,*
000136	004767  000000G				JSR	PC,$DPC1
000142	012702  000032 				MOV	#32,R2				;					1233
000146	060102 					ADD	R1,R2
000150	032712  002000 				BIT	#2000,(R2)
000154	001403 					BEQ	2$
000156	012705  000001 				MOV	#1,R5				; *,PRM
000162	000401 					BR	3$
000164	005005 				2$:	CLR	R5				; PRM
000166	012716  002126 			3$:	MOV	#2126,(SP)			;					1234
000172	110500 					MOVB	R5,R0				; PRM,*
000174	004767  000000G				JSR	PC,$DPC1
000200	032712  000400 				BIT	#400,(R2)			;					1235
000204	001403 					BEQ	4$
000206	012705  000001 				MOV	#1,R5				; *,PRM
000212	000401 					BR	5$
000214	005005 				4$:	CLR	R5				; PRM
000216	012716  002127 			5$:	MOV	#2127,(SP)			;					1236
000222	110500 					MOVB	R5,R0				; PRM,*
000224	004767  000000G				JSR	PC,$DPC1
000230	012705  000004 				MOV	#4,R5				; *,PRM					1237
000234	012716  002130 				MOV	#2130,(SP)			;					1238
000240	110500 					MOVB	R5,R0				; PRM,*
000242	004767  000000G				JSR	PC,$DPC1
000246	005005 					CLR	R5				; PRM					1239
000250	012716  002131 				MOV	#2131,(SP)			;					1240
000254	105000 					CLRB	R0
000256	004767  000000G				JSR	PC,$DPC1
000262	016105  000076 				MOV	76(R1),R5			;					1241
000266	070527  001750 				MUL	#1750,R5
000272	012716  002140 				MOV	#2140,(SP)			;					1242
000276	010500 					MOV	R5,R0				; PRM,*
000300	004767  000000G				JSR	PC,$DPDU2
000304	032712  001000 				BIT	#1000,(R2)			;					1243
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  54
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (22)

000310	001403 					BEQ	6$
000312	012705  001750 				MOV	#1750,R5			; *,PRM
000316	000402 					BR	7$
000320	012705  005670 			6$:	MOV	#5670,R5			; *,PRM
000324	012716  002141 			7$:	MOV	#2141,(SP)			;					1244
000330	010500 					MOV	R5,R0				; PRM,*
000332	004767  000000G				JSR	PC,$DPDU2
000336	012716  005132 				MOV	#5132,(SP)			;					1245
000342	016100  000002 				MOV	2(R1),R0
000346	004767  000000G				JSR	PC,$DPO2
000352	012716  005137 				MOV	#5137,(SP)			;					1246
000356	016100  000004 				MOV	4(R1),R0
000362	004767  000000G				JSR	PC,$DPO2
000366	012716  005144 				MOV	#5144,(SP)			;					1247
000372	116100  000006 				MOVB	6(R1),R0
000376	004767  000000G				JSR	PC,$DPDU1
000402	062706  000014 				ADD	#14,SP				;					1215
000406	000412 					BR	10$				;					1206
000410	020027  000004 			8$:	CMP	R0,#4
000414	001004 					BNE	9$
000416	010105 					MOV	R1,R5				;					1251
000420	004767  175542 				JSR	PC,LNCTRS
000424	000403 					BR	10$				;					1206
000426	012700  177773 			9$:	MOV	#-5,R0				;					1254
000432	000207 					RTS	PC
000434	004767  000000G			10$:	JSR	PC,$NREND			;					1258
000440	016400  000014 				MOV	14(R4),R0			; *(CCB),*				1173
000444	000207 					RTS	PC

; Routine Size:  147 words,	Routine Base:  $CODE$ + 3344
; Maximum stack depth per invocation:  13 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  55
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (23)

;	  1261	routine SHOW_SUCCESS (CCB) : LINKAGE_CCB =
;	  1262	
;	  1263	!++
;	  1264	! FUNCTIONAL DESCRIPTION:
;	  1265	!
;	  1266	!
;	  1267	! FORMAL PARAMETERS:
;	  1268	!	CCB	Address of CCB
;	  1269	!
;	  1270	! IMPLICIT INPUTS:
;	  1271	!	None
;	  1272	!
;	  1273	! IMPLICIT OUTPUTS:
;	  1274	!	None
;	  1275	!
;	  1276	! ROUTINE VALUE:
;	  1277	!	The appropriate NM status code
;	  1278	!
;	  1279	! COMPLETION CODES:
;	  1280	!	None
;	  1281	!
;	  1282	! SIDE EFFECTS:
;	  1283	!	None
;	  1284	!--
;	  1285	
;	  1286	    begin
;	  1287	
;	  1288	    map
;	  1289		CCB: ref block field (C_NM_FIELDS);
;	  1290	
;	  1291	    CCB [C_CNT] = 0;
;	  1292	    NM$SUC
;	  1293	    end;


						.SBTTL	SHOW.SUCCESS
000000	005064  000022 			SHOW.SUCCESS:
						CLR	22(R4)				; *(CCB)				1291
000004	012700  000001 				MOV	#1,R0				;					1261
000010	000207 					RTS	PC

; Routine Size:  5 words,	Routine Base:  $CODE$ + 4012
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  56
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (24)

;	  1294	routine SUCCESS (CCB) : LINKAGE_CCB =
;	  1295	
;	  1296	!++
;	  1297	! FUNCTIONAL DESCRIPTION:
;	  1298	!
;	  1299	!
;	  1300	! FORMAL PARAMETERS:
;	  1301	!	CCB	Address of CCB
;	  1302	!
;	  1303	! IMPLICIT INPUTS:
;	  1304	!	None
;	  1305	!
;	  1306	! IMPLICIT OUTPUTS:
;	  1307	!	None
;	  1308	!
;	  1309	! ROUTINE VALUE:
;	  1310	!	The appropriate NM status code
;	  1311	!
;	  1312	! COMPLETION CODES:
;	  1313	!	None
;	  1314	!
;	  1315	! SIDE EFFECTS:
;	  1316	!	None
;	  1317	!--
;	  1318	
;	  1319	    begin
;	  1320	
;	  1321	    map
;	  1322		CCB: ref block field (C_NM_FIELDS);
;	  1323	
;	  1324	    NM$SUC
;	  1325	    end;


						.SBTTL	SUCCESS
000000	012700  000001 			SUCCESS:MOV	#1,R0				;					1294
000004	000207 					RTS	PC

; Routine Size:  3 words,	Routine Base:  $CODE$ + 4024
; Maximum stack depth per invocation:  0 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  57
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (25)

;	  1326	routine ZERO_CIRCUIT_COUNTERS (CCB) : LINKAGE_CCB =
;	  1327	
;	  1328	!++
;	  1329	! FUNCTIONAL DESCRIPTION:
;	  1330	!
;	  1331	!
;	  1332	! FORMAL PARAMETERS:
;	  1333	!	CCB	Address of CCB
;	  1334	!
;	  1335	! IMPLICIT INPUTS:
;	  1336	!	None
;	  1337	!
;	  1338	! IMPLICIT OUTPUTS:
;	  1339	!	None
;	  1340	!
;	  1341	! ROUTINE VALUE:
;	  1342	!	The appropriate NM status code
;	  1343	!
;	  1344	! COMPLETION CODES:
;	  1345	!	None
;	  1346	!
;	  1347	! SIDE EFFECTS:
;	  1348	!	None
;	  1349	!--
;	  1350	
;	  1351	    begin
;	  1352	    GET_DMC_DATA_BASE (DB)
;	  1353	
;	  1354	    map
;	  1355		CCB : ref block field (C_FIELDS);
;	  1356	
;	  1357	    DB [DC_ZERO_CIRCUIT_COUNTERS] = TRUE;
;	  1358	    SET_PORT (DB [D_TIM]);
;	  1359	    NM$SUC
;	  1360	    end;


						.SBTTL	ZERO.CIRCUIT.COUNTERS
000000	010546 				ZERO.CIRCUIT.COUNTERS:
						MOV	R5,-(SP)			;					1326
000002	016700  000002G				MOV	.CRDAT+2,R0			;					1357
000006	152760  000004  000032 			BISB	#4,32(R0)
000014	010005 					MOV	R0,R5				; .CRDAT+2,*				1358
000016	004767  000000G				JSR	PC,SET.PORT
000022	012700  000001 				MOV	#1,R0				;					1326
000026	012605 					MOV	(SP)+,R5
000030	000207 					RTS	PC

; Routine Size:  13 words,	Routine Base:  $CODE$ + 4032
; Maximum stack depth per invocation:  2 words
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  58
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (26)

;	  1361	routine ZERO_LINE_COUNTERS (CCB) : LINKAGE_CCB =
;	  1362	
;	  1363	!++
;	  1364	! FUNCTIONAL DESCRIPTION:
;	  1365	!
;	  1366	!
;	  1367	! FORMAL PARAMETERS:
;	  1368	!	CCB	Address of CCB
;	  1369	!
;	  1370	! IMPLICIT INPUTS:
;	  1371	!	None
;	  1372	!
;	  1373	! IMPLICIT OUTPUTS:
;	  1374	!	None
;	  1375	!
;	  1376	! ROUTINE VALUE:
;	  1377	!	The appropriate NM status code
;	  1378	!
;	  1379	! COMPLETION CODES:
;	  1380	!	None
;	  1381	!
;	  1382	! SIDE EFFECTS:
;	  1383	!	None
;	  1384	!--
;	  1385	
;	  1386	    begin
;	  1387	    GET_DMC_DATA_BASE (DB)
;	  1388	
;	  1389	    map
;	  1390		CCB : ref block field (C_FIELDS);
;	  1391	
;	  1392	    if .DB [DF_DMR]
;	  1393	    then
;	  1394		begin
;	  1395		DB [DC_ZERO_LINE_COUNTERS] = TRUE;
;	  1396		SET_PORT (DB [D_TIM]);
;	  1397		end;
;	  1398	
;	  1399	    $NM_TIME (DB [DB_TIME_LINE_ZEROED]);
;	  1400	    COUNTER_ZERO (DB, D_CONFIGURATION_ERRORS, 8);
;	  1401	    COUNTER_ZERO (DB, D_DEVICE_SERVICE_ERRORS, 8);
;	  1402	    COUNTER_ZERO (DB, D_FATAL_DEVICE_ERRORS, 8);
;	  1403	    NM$SUC
;	  1404	    end;


						.GLOBL	$ST32


						.SBTTL	ZERO.LINE.COUNTERS
000000	010546 				ZERO.LINE.COUNTERS:
						MOV	R5,-(SP)			;					1361
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  59
X01270								30-Dec-1982 02:39:32	NETPKG:<DRIVERS>DMCNMX.B16.11 (26)

000002	016705  000002G				MOV	.CRDAT+2,R5			;					1386
000006	032765  010000  000032 			BIT	#10000,32(R5)			;					1392
000014	001405 					BEQ	1$
000016	152765  000010  000032 			BISB	#10,32(R5)			;					1395
000024	004767  000000G				JSR	PC,SET.PORT			;					1396
000030	010500 				1$:	MOV	R5,R0				;					1399
000032	062700  000142 				ADD	#142,R0
000036	004767  000000G				JSR	PC,$ST32
000042	005065  000146 				CLR	146(R5)				;					1400
000046	005065  000150 				CLR	150(R5)				;					1401
000052	005065  000152 				CLR	152(R5)				;					1402
000056	012700  000001 				MOV	#1,R0				;					1361
000062	012605 					MOV	(SP)+,R5
000064	000207 					RTS	PC

; Routine Size:  27 words,	Routine Base:  $CODE$ + 4064
; Maximum stack depth per invocation:  2 words


;	  1405	end
;	  1406	eludom



;					OTS external references
						.GLOBL	$SAVE5, $SAVE4


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




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<V3P0>MCBLIB.L16.7		       372        42        11         0
;  NETPKG:<MCB>XPORTX.L16.15		       599         2         0         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200        59        29         0
;  NETPKG:<DRIVERS>DMCDAT.L16.2		       220       122        55         0





;	  1407	
DMCNMX								25-Jan-1983 10:13:09	TOPS-20 Bliss-16 3(552)		    Page  60
X01270											

; Size:		1077 code + 46 data words
; Run Time:	   00:20.7
; Elapsed Time:	   01:11.6
; Memory Used:	76 pages
; Compilation Complete
ADDRESS				 906	 936	 942	 948	 978	 984
BASE_INCOMPLETE_SEL		 495
BASE_NAKS_RCV_DAT_BCC		 465	 472
BASE_NAKS_RCV_HDR_BCC		 464	 471
BASE_NAKS_RCV_HDR_FMT		 540
BASE_NAKS_RCV_NO_BUF		 481
BASE_NAKS_RCV_RCV_OVRN		 533
BASE_NAKS_RCV_REP		 473
BASE_NAKS_RCV_TOO_LONG		 482
BASE_NAKS_SND_DAT_BCC		 456
BASE_NAKS_SND_HDR_BCC		 455
BASE_NAKS_SND_HDR_FMT		 534
BASE_NAKS_SND_NO_BUF		 487
BASE_NAKS_SND_RCV_OVRN		 538
BASE_NAKS_SND_RCV_REP		 457
BASE_NO_REPLY_TO_SEL		 494
BASE_REPS_RCV			 477
BASE_REPS_SND			 478
BASE_STRM_TIMEOUT		 535
BASE_XMT_UNDR			 539
BLISS16				   3
BUF_PTR				 621	 626#	 627	 628	 630	 631
CCB				 217	 245	 247	 254	 283	 285	 302	 320#	 323	 327	 330	 332
				 334	 336	 346	 349	 353	 355	 359	 361	 364	 366	 370	 372
				 375	 390#	 391	 557	 585	 589	 618	 625	 626	1032	1061	1063
				1065	1066	1067	1069	1098	1100	1102	1103	1104	1106	1135	1137
				1139	1170	1171	1173	1202	1204	1206	1258	1259	1261	1289	1291#
				1294	1322	1326	1355	1361	1390
CLEARED				 878#
CLEAR_CIRCUIT			 101	 217*
CLEAR_LINE			 102	 254*	 351	 352
CNTR				 145#	 464	 465
CNTR_BEGIN			 142#	 463
CNTR_BM				 161#	 455	 456	 457	 471	 472	 473	 481	 482	 487	 494	 495
				 533	 534	 535	 538	 539	 540
CNTR_BM_BEGIN			 158#	 454	 470	 480	 486	 493	 532	 537
CNTR_BM_POST			 174#	 458	 474	 483	 488	 496	 536	 541
CNTR_POST			 153#	 466
CNTR_8				 134#	 477	 478
CONTROLLER			 647	 681
COUNTER_16_TIME			 531
COUNTER_32			 449	 450	 451	 452
COUNTER_8			 140	 156
COUNTER_8_BM			 177	 546	 550	 554
COUNTER_ZERO			1400	1401	1402
COUNT				 731	 761	 763	 767	 769
CTR				 143#	 154#	 156	 159#	 171#	 175#	 177	 447	 529
C_ADDR				 626
C_BIAS				 625
C_CNT				 247	 285	1291
C_FIELDS			1355	1390
C_FNC				 390
C_LIX				 349	 355	 361	 366	 372
C_NM_ENTITY			 323
C_NM_FIELDS			 245	 283	 302	 585	 618	1061	1098	1135	1202	1289	1322
C_NM_FUNC			 327	 346
C_NM_SELECT			1139	1206
C_STS				 320	1067	1104	1171	1259
DATA_ID				 622	 627#	 628#	 629#	 633
DATA_VALUE			 623	 630#	 631#	 645
DB				 138	 139	 148	 149	 164	 165	 280	 301	 393	 419	 429	 449
				 450	 451	 452	 457	 460	 482	 490	 507	 524	 531	 544	 546
				 548	 550	 552	 554	 615	 645	 647	 673	 679	 683#	 684#	 689
				 715	 721	 725#	 726#	 731	 757	 759	 763#	 769#	 774	 800	 802
				 806#	 807#	 812	 838	 843#	 846	 872	 885#	 886#	 887	 892#	 893#
				 894#	 895#	 896#	 897#	 898	 906	 932	 934	 942#	 943#	 948	 974
				 976	 984#	 985#	 990	1016	1019	1027#	1028#	1058	1064	1095	1101
				1132	1144	1156	1157	1163	1199	1211	1229	1231	1233	1235	1241
				1243	1245	1246	1247	1251	1352	1357#	1358	1387	1392	1395#	1396
				1399	1400	1401	1402
DB_BIAS				 216#	 632
DB_TIME_LINE_ZEROED		 531	1399
DC_BASE_IN			 894
DC_CONTROL_IN			 895
DC_HALT				 892
DC_MASTER_CLEAR			 893
DC_SET_REQUESTED_STATE		 885	 896
DC_ZERO_CIRCUIT_COUNTERS	1357
DC_ZERO_LINE_COUNTERS		1395
DDCMP_DMC			1151#	1158	1218#	1237
DD_CLEARED			 943	 985	1028
DF_1_SEC			 806	 807	1243
DF_CONTROLLER_LOOPBACK		 683	 684	1233
DF_DMR				 457	 460	 482	 490	 524	 759	1392
DF_HALF_DUPLEX			 725	 726	1235
DISPATCH$			 349	 355	 361	 366	 372
DMC$K_FANCY			  82#	 115	 640	 905	 947	 989
DMCIN				 206*
DMCNMX				   1#
DMCNM				 103	 292*
DMCOUT				 207
DMC_DB				  97#
DMC_DB_NUM			  98#	 104	 109	 110	 111	 112	 113	 114	 116	 117	 118	 393#
				 645	 647#	 689#	 731#	 774#	 812#	 846#	 906#	 948#	 990#
DMC_K_LINE_OWNER		 351	 357	 368
DMC_K_LINE_PROVIDER		 352	 358	 363	 369	 374
DMC_K_NMID_HIGH			 350	 356	 362	 367	 373
DS_HALTED			 679	 721	 802	 934	 976	1019
DUMMY				 142	 158	 393
DUPLEX				 689	 723
D_BLOCKS_RECEIVED		 451
D_BLOCKS_TRANSMITTED		 452
D_BYTES_RECEIVED		 449
D_BYTES_TRANSMITTED		 450
D_CIRCUIT_ENTITY		1144	1156
D_CONFIGURATION_ERRORS		 544	 546	1400
D_CPTB				 136	 147	 163
D_DEVICE_SERVICE_ERRORS		 548	 550	1401
D_DEVICE_STATE			 943	 985	1028
D_FATAL_DEVICE_ERRORS		 552	 554	1402
D_FIELDS			 301	 429	 507
D_LINE_ENTITY			1157	1229
D_LINE_STATE			 886	 897	1211
D_LNTB				 135	 146	 162
D_MAXIMUM_RECEIVE_COUNT		 763	 769	1231
D_NMX_PIX			1144	1156	1157	1229
D_PRIORITY			1027	1247
D_PROTOCOL_STATE		 679	 721	 802	 934	 976	1019
D_REGISTER			 942	1245
D_SERVICE_TIMER			 843	1241
D_TIM				 645	 887	 898	1064	1101	1163	1251	1358	1396
D_VECTOR			 984	1246
EXTRN				1223#	1239
FALSE				 188#	 807	 894	 895	 896
FC_CCP				 390
FLD				 179	 180
FLDB				 134	 135	 136	 145	 146	 147	 161	 162	 163
FLG				 161	 171
FULL				 718#	 725	1219#	1235
GET_DMC_DATA_BASE		 280	 419	 615	 673	 715	 757	 800	 838	 872	 932	 974	1016
				1058	1095	1132	1199	1352	1387
HALF				 719#	 726	1220#	1235
INTRN				1224#
LANGUAGE			   3
LINKAGE_CCB			 101	 102	 107	 108	 120	 121	 122	 123	 124	 125	 126	 127
				 217#	 254#	 353	 359	 364	 370	 375	 557#	 589#	1032#	1069#	1106#
				1173#	1261#	1294#	1326#	1361#
LINKAGE_DB_CSR			 203#	 208
LINKAGE_DB			 105	 106	 209	 438#	 516#
LLCRS$				 391
LOOPBACK			 676#	 684	1221#	1233
MAP$				 625	 632
MASTER_CLEAR			 208
MCB$GAW_PROCESS_DATA_BASE	 212	 216
MCB$GW_PROCESS_HANDLE		 213
MCB_DB_CCB			 103	 312#
MCB_INTERRUPT			 206	 207
MILLISECONDS			 812	 840	 841	 843
NE$CWS				 679	 721	 802	 934	 976	1019
NE$IPV				 685	 727	 764	 770	 808	 841	 939	 981	1024
NE$MPE				 901
NE$PNA				 251	 289	 420	 587
NM$SUC				 249	 287	 683	 684	 725	 726	 763	 769	 806	 807	 844	 888
				 899	 944	 986	1029	1292	1324	1359	1403
NMX$ENT_CKT			 325
NMX$ENT_HI			 323
NMX$ENT_LIN			 344
NMX$ENT_LO			 323
NMX$FNC_CLR			 348
NMX$FNC_HI			 327	 346
NMX$FNC_LO			 327	 346
NMX$FNC_SET			 329	 354
NMX$FNC_SHO			 333	 365
NMX$FNC_SZC			 335	 371
NMX$FNC_ZRO			 331	 360
NMX$PARAMETER_CIRCUIT_OWNER	1156
NMX$PARAMETER_CIRCUIT_USER	1144
NMX$PARAMETER_LINE		1157	1229
NMX$SEL_CHA			1147	1214
NMX$SEL_COU			1162	1250
NMX$SEL_STA			1142	1209
NMX$SEL_SUM			1142	1209
NORMAL				 677#	 683	1222#	1233
NOT_APPLICABLE			 104	 393*	 633
NO_OPERATION			 189#	 938	 980	1023
NUM				 134	 140	 153	 156	 174	 177
OFF				 876#	 890
ON				 875#	 882
PARAMETER_CIRCUIT_COUNTERS	 105	 422*	1064	1163
PARAMETER_C_1			1159	1211	1232	1234	1236	1238	1240
PARAMETER_DU_1			1247
PARAMETER_DU_2			1242	1244
PARAMETER_LINE_COUNTERS		 106	 500*	1101	1251
PARAMETER_O_2			1245	1246
PRIORITY			 990	1017#	1021	1027
PRM				1154	1158#	1159	1227	1231#	1232	1233#	1234	1235#	1236	1237#	1238
				1239#	1240	1241#	1242	1243#	1244
RETRANSMIT_TIMER		 774	 804
SERVICE				 877#
SET_CIRCUIT			 107	 330	 557*
SET_LINE			 108	 357	 358	 589*
SET_LINE_CONTROLLER		 109	 637	 647*
SET_LINE_CONTROLLER_REGISTER	 116	 641	 906*
SET_LINE_DUPLEX			 110	 635	 689*
SET_LINE_INTERRUPT_PRIORITY	 118	 643	 990*
SET_LINE_INTERRUPT_VECTOR	 117	 642	 948*
SET_LINE_RECEIVE_BUFFERS	 111	 636	 731*
SET_LINE_RETRANSMIT_TIMER	 112	 639	 774*
SET_LINE_SERVICE_TIMER		 113	 638	 812*
SET_LINE_STATE			 114	 634	 846*
SET_PORT			 209	 887	 898	1358	1396
SHOW_AND_ZERO_CIRCUIT_COUNTERS	 120	 336	1032*
SHOW_AND_ZERO_LINE_COUNTERS	 121	 374	1069*
SHOW_CIRCUIT			 122	 334	1106*
SHOW_LINE			 123	 369	1173*
SHOW_SUCCESS			 124	 367	 368	 373	1261*
STATE				 846	 880	 886	 897
SUCCESS				 125	 350	 356	 362	1294*
SUM				 144#	 151#	 154	 160#	 170#	 175
TABLE$				 350	 356	 362	 367	 373
TRUE				 187#	 806	 885	 892	 893	1357	1395
ZERO_CIRCUIT_COUNTERS		 126	 332	1066	1326*
ZERO_LINE_COUNTERS		 127	 363	1103	1361*
$CNTR$BYTE			 138	 139	 148	 149	 164	 165	 179#
$CNTR$DIFF			 137	 138#	 139#	 140	 148#	 149#	 150#	 151	 164#	 165#	 166#	 167
				 170
$CNTR$FLDB			 135#	 138	 146#	 148	 162#	 164
$CNTR$FLDC			 136#	 139	 147#	 149	 163#	 165
$DSPCR				 196*
$MCB_ENABLE_LONG_TIMER		 884
$NM$ERR_MPE			 340	 379	 384	1166	1254
$NM$ERR_SFS			 338	 377
$NM_PARAMETER_DISPATCH		 633
$NM_RESPONSE_BEGIN		1063	1100	1137	1204
$NM_RESPONSE_END		1065	1102	1170	1258
$NM_TIME			1399
$SUB_FIELD			 135	 136	 146	 147	 162	 163