Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/drivers/dmcini.lst
There are no other files named dmcini.lst in the archive.
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page   1
								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (1)

;	  0001	module DMCINI (	! DMC-11 Driver Initialization
;	  0002			ident = 'X01120',
;	  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 DMCNMX module.
;	  0044	! 02	- Add alternate DMC/DMR line names.
;	  0045	! 03	- Add DMCDBI - data base initializer.
;	  0046	! 04	- Fix REGISTER_NXM.
;	  0047	! 05	- Use $MCB_GET_DEVICE_NAME to get circuit/line name.
;	  0048	! 06	- Allow specification of max rcv buffers.
;	  0049	! 07	- Expand buffer for GET_DEVICE_NAME from 6 to 33!
;	  0050	! 08	- Save NMX PIX for NM parameter access in DMCNMX.
;	  0051	! 09	- Make default receive buffers 7 for DMC.
;	  0052	! 10	- Maintain new system specific line counters (2500,2501,2502).
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page   2
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (1)

;	  0053	! 11	- Turn on NMX$FLG_maintenance_allowed for circuit.
;	  0054	! 12	- Initialize time-line-zeroed for seconds-since-last-zeroed support.
;	  0055	!--
;	  0056	!
;	  0057	! INCLUDE FILES:
;	  0058	!
;	  0059	
;	  0060	library 'MCBLIB';
;	  0061	
;	  0062	library 'XPORTX';
;	  0063	
;	  0064	library 'NMXLIB';
;	  0065	
;	  0066	library 'DMCDAT';
;	  0067	
;	  0068	!
;	  0069	! TABLE OF CONTENTS:
;	  0070	!
;	  0071	
;	  0072	linkage
;	  0073	    DMC_CSR_NUM = jsr (register = 0, register = 1);
;	  0074	
;	  0075	forward routine
;	  0076	    DMCDBI : novalue,
;	  0077	    DMCDVI,
;	  0078	    DMCNMI,
;	  0079	    NXM_CATCHER,
;	  0080	    REGISTER_NXM : DMC_CSR_NUM;
;	  0081	
;	  0082	!
;	  0083	! MACROS:
;	  0084	!
;	  0085	!	None
;	  0086	!
;	  0087	! EQUATED SYMBOLS:
;	  0088	!
;	  0089	
;	  0090	literal
;	  0091	    TRUE = 1 EQL 1,
;	  0092	    FALSE = 1 EQL 0,
;	  0093	    NO_OPERATION = 0;
;	  0094	
;	  0095	!
;	  0096	! OWN STORAGE:
;	  0097	!
;	  0098	!	None
;	  0099	!
;	  0100	! EXTERNAL REFERENCES:
;	  0101	!
;	  0102	
;	  0103	linkage
;	  0104	    LINKAGE_DB_CSR = jsr (register = 5, register = 1);
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page   3
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (1)

;	  0105	
;	  0106	external routine
;	  0107	    DMCIN : MCB_INTERRUPT novalue,
;	  0108	    DMCOUT : MCB_INTERRUPT novalue,
;	  0109	    MASTER_CLEAR : LINKAGE_DB_CSR;
;	  0110	
;	  0111	external
;	  0112	    MCB$GAW_PROCESS_DATA_BASE : vector [2],
;	  0113	    MCB$GW_PROCESS_HANDLE;
;	  0114	
;	  0115	bind
;	  0116	    DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page   4
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (2)

;	  0117	global routine DMCDBI : novalue =
;	  0118	
;	  0119	!++
;	  0120	! FUNCTIONAL DESCRIPTION:
;	  0121	!
;	  0122	!
;	  0123	! FORMAL PARAMETERS:
;	  0124	!	None
;	  0125	!
;	  0126	! IMPLICIT INPUTS:
;	  0127	!	None
;	  0128	!
;	  0129	! IMPLICIT OUTPUTS:
;	  0130	!	None
;	  0131	!
;	  0132	! ROUTINE VALUE:
;	  0133	! COMPLETION CODES:
;	  0134	!	None
;	  0135	!
;	  0136	! SIDE EFFECTS:
;	  0137	!	None
;	  0138	!--
;	  0139	
;	  0140	    begin
;	  0141	    GET_DMC_DATA_BASE (DB)
;	  0142	
;	  0143	    DB [D_NEXT_TRANSMIT_BUFFER] = DB [D_BUF];
;	  0144	    DB [D_HIGHEST_TRANSMIT_BUFFER] = DB [D_BUF] + .DB [D_MAXIMUM_TRANSMIT_COUNT]*.DB [D_TRANSMIT_BUFFER_SIZE];
;	  0145	
;	  0146	    if .DB [DI_HD] eql 0
;	  0147	    then
;	  0148		DB [DF_HALF_DUPLEX] = FALSE
;	  0149	    else
;	  0150		DB [DF_HALF_DUPLEX] = TRUE;
;	  0151	
;	  0152	    $NM_TIME (DB [DB_TIME_LINE_ZEROED]);
;	  0153	    end;			!of routine DMCDBI


						.TITLE	DMCINI
						.IDENT	/X01120/

						.GLOBL	DMCIN, DMCOUT, MASTER.CLEAR, .CRDAT
						.GLOBL	.CRPIX, $ST32


						.SBTTL	DMCDBI
000000						.PSECT	$CODE$,  RO 

000000	004167  000000G			DMCDBI::JSR	R1,$SAVE2			;					0117
000004	016702  000002G				MOV	.CRDAT+2,R2			;					0140
000010	012762  000616  000066 			MOV	#616,66(R2)			;					0143
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page   5
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (2)

000016	060262  000066 				ADD	R2,66(R2)
000022	005001 					CLR	R1				;					0144
000024	156201  000121 				BISB	121(R2),R1
000030	070162  000064 				MUL	64(R2),R1
000034	010100 					MOV	R1,R0
000036	060200 					ADD	R2,R0				;					0140
000040	010062  000070 				MOV	R0,70(R2)			;					0144
000044	062762  000616  000070 			ADD	#616,70(R2)
000052	132762  000001  000616 			BITB	#1,616(R2)			;					0146
000060	001004 					BNE	1$
000062	042762  000400  000032 			BIC	#400,32(R2)			;					0148
000070	000403 					BR	2$				;					0146
000072	052762  000400  000032 		1$:	BIS	#400,32(R2)			;					0150
000100	010201 				2$:	MOV	R2,R1				;					0152
000102	062701  000142 				ADD	#142,R1
000106	010100 					MOV	R1,R0
000110	004767  000000G				JSR	PC,$ST32
000114	000207 					RTS	PC				;					0117

; Routine Size:  39 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  4 words
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page   6
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (3)

;	  0154	global routine DMCDVI =
;	  0155	
;	  0156	!++
;	  0157	! FUNCTIONAL DESCRIPTION:
;	  0158	!
;	  0159	!
;	  0160	! FORMAL PARAMETERS:
;	  0161	!	None
;	  0162	!
;	  0163	! IMPLICIT INPUTS:
;	  0164	!	None
;	  0165	!
;	  0166	! IMPLICIT OUTPUTS:
;	  0167	!	None
;	  0168	!
;	  0169	! ROUTINE VALUE:
;	  0170	! COMPLETION CODES:
;	  0171	!	None
;	  0172	!
;	  0173	! SIDE EFFECTS:
;	  0174	!	None
;	  0175	!--
;	  0176	
;	  0177	    begin
;	  0178	    GET_DMC_DATA_BASE (DB)
;	  0179	
;	  0180	    literal
;	  0181		DMC_TEST_VALUE = %o'177';
;	  0182	
;	  0183	    DB [D_DEVICE_STATE] = DD_CLEARED;
;	  0184	
;	  0185	    if .DB [D_REGISTER] lssa %o'160000'
;	  0186	    then
;	  0187		begin
;	  0188		COUNTER_INCREMENT (DB, D_INVALID_CONTROLLER_REGISTER);
;	  0189		COUNTER_INCREMENT (DB, D_CONFIGURATION_ERRORS);
;	  0190		return FALSE
;	  0191		end;
;	  0192	
;	  0193	    if REGISTER_NXM (.DB [D_REGISTER], 4)
;	  0194	    then
;	  0195		begin
;	  0196		COUNTER_INCREMENT (DB, D_NXM_CONTROLLER_REGISTER);
;	  0197		COUNTER_INCREMENT (DB, D_CONFIGURATION_ERRORS);
;	  0198		return FALSE
;	  0199		end;
;	  0200	
;	  0201	    begin
;	  0202	
;	  0203	    local
;	  0204		STATUS;
;	  0205	
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page   7
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (3)

;	  0206	    STATUS = $MCB_SET_VECTOR (.DB [D_VECTOR], DMCIN, .DB [D_PRIORITY]);
;	  0207	
;	  0208	    if .STATUS
;	  0209	    then
;	  0210		begin
;	  0211		STATUS = $MCB_SET_VECTOR (.DB [D_VECTOR] + 4, DMCOUT, .DB [D_PRIORITY]);
;	  0212	
;	  0213		if not .STATUS
;	  0214		then
;	  0215		    $MCB_CLEAR_VECTOR (.DB [D_VECTOR]);
;	  0216	
;	  0217		end;
;	  0218	
;	  0219	    if not .STATUS
;	  0220	    then
;	  0221		begin
;	  0222	
;	  0223		selectone .STATUS of
;	  0224		    set
;	  0225		    [CE$VEC]:
;	  0226			COUNTER_INCREMENT (DB, D_INVALID_VECTOR);
;	  0227		    [CE$VCU]:
;	  0228			COUNTER_INCREMENT (DB, D_CONFLICTING_VECTOR);
;	  0229		    [CE$PRI]:
;	  0230			COUNTER_INCREMENT (DB, D_INVALID_PRIORITY);
;	  0231		    tes;
;	  0232	
;	  0233		COUNTER_INCREMENT (DB, D_CONFIGURATION_ERRORS);
;	  0234		return FALSE
;	  0235		end;
;	  0236	
;	  0237	    end;
;	  0238	    DB [D_DEVICE_STATE] = DD_MASTER_CLEARED;
;	  0239	
;	  0240	    begin
;	  0241	
;	  0242	    bind
;	  0243		REG = .DB [D_REGISTER] : block field (DMC_FIELDS);
;	  0244	
;	  0245	    REG [BSEL3] = DMC_TEST_VALUE;
;	  0246	
;	  0247	    if not MASTER_CLEAR (DB [D_TIM], REG [SEL0])
;	  0248	    then
;	  0249		begin
;	  0250		DB [D_DEVICE_STATE] = DD_CLEARED;
;	  0251		return FALSE;
;	  0252		end;
;	  0253	
;	  0254	    selectone .REG [$SUB_FIELD (BSEL3, 0, 0, 8, 0)] of
;	  0255		set
;	  0256		[%o'1', %o'2', %o'100', %o'200'] :
;	  0257		    begin
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page   8
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (3)

;	  0258		    DB [DF_DMR] = TRUE;
;	  0259	
;	  0260		    if .DB [D_MAXIMUM_RECEIVE_COUNT] eql 0
;	  0261		    then
;	  0262			DB [D_MAXIMUM_RECEIVE_COUNT] = 8;
;	  0263	
;	  0264		    end;
;	  0265		[otherwise] :
;	  0266		    begin
;	  0267		    DB [DF_DMR] = FALSE;
;	  0268	
;	  0269		    if .DB [D_MAXIMUM_RECEIVE_COUNT] eql 0
;	  0270		    then
;	  0271			DB [D_MAXIMUM_RECEIVE_COUNT] = 7;
;	  0272	
;	  0273		    end;
;	  0274		tes;
;	  0275	
;	  0276	    end;
;	  0277	    TRUE
;	  0278	    end;			!of routine DMCDVI


						.GLOBL	$IC8, V.ECST, $CALLI, V.ECCL


						.SBTTL	DMCDVI
000000	004167  000000G			DMCDVI::JSR	R1,$SAVE5			;					0154
000004	016702  000002G				MOV	.CRDAT+2,R2			;					0177
000010	012703  000040 				MOV	#40,R3				;					0183
000014	060203 					ADD	R2,R3
000016	112713  000005 				MOVB	#5,(R3)
000022	012704  000002 				MOV	#2,R4				;					0185
000026	060204 					ADD	R2,R4
000030	021427  160000 				CMP	(R4),#160000
000034	103004 					BHIS	1$
000036	052762  000400  000146 			BIS	#400,146(R2)			;					0188
000044	000412 					BR	2$				;					0189
000046	011400 				1$:	MOV	(R4),R0				;					0193
000050	012701  000004 				MOV	#4,R1
000054	004767  000000V				JSR	PC,REGISTER.NXM
000060	006000 					ROR	R0
000062	103011 					BCC	3$
000064	052762  001000  000146 			BIS	#1000,146(R2)			;					0196
000072	012700  000146 			2$:	MOV	#146,R0				;					0197
000076	060200 					ADD	R2,R0
000100	004767  000000G				JSR	PC,$IC8
000104	000531 					BR	11$				;					0195
000106	116200  000006 			3$:	MOVB	6(R2),R0			;					0206
000112	010046 					MOV	R0,-(SP)
000114	012746  000000G				MOV	#DMCIN,-(SP)
000120	016205  000004 				MOV	4(R2),R5
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page   9
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (3)

000124	010546 					MOV	R5,-(SP)
000126	012746  000003 				MOV	#3,-(SP)
000132	012746  000000G				MOV	#V.ECST,-(SP)
000136	004767  000000G				JSR	PC,$CALLI
000142	010001 					MOV	R0,R1				; *,STATUS
000144	032701  000001 				BIT	#1,R1				; *,STATUS				0208
000150	001437 					BEQ	5$
000152	116200  000006 				MOVB	6(R2),R0			;					0211
000156	010016 					MOV	R0,(SP)
000160	012746  000000G				MOV	#DMCOUT,-(SP)
000164	010546 					MOV	R5,-(SP)
000166	062716  000004 				ADD	#4,(SP)
000172	012746  000003 				MOV	#3,-(SP)
000176	012746  000000G				MOV	#V.ECST,-(SP)
000202	004767  000000G				JSR	PC,$CALLI
000206	010001 					MOV	R0,R1				; *,STATUS
000210	032701  000001 				BIT	#1,R1				; *,STATUS				0213
000214	001010 					BNE	4$
000216	010516 					MOV	R5,(SP)				;					0215
000220	012746  000001 				MOV	#1,-(SP)
000224	012746  000000G				MOV	#V.ECCL,-(SP)
000230	004767  000000G				JSR	PC,$CALLI
000234	022626 					CMP	(SP)+,(SP)+
000236	062706  000010 			4$:	ADD	#10,SP				;					0210
000242	032701  000001 				BIT	#1,R1				; *,STATUS				0219
000246	001032 					BNE	9$
000250	020127  000742 			5$:	CMP	R1,#742				; STATUS,*				0223
000254	001004 					BNE	6$
000256	052762  010000  000146 			BIS	#10000,146(R2)			;					0226
000264	000415 					BR	8$				;					0223
000266	020127  000762 			6$:	CMP	R1,#762				; STATUS,*
000272	001004 					BNE	7$
000274	052762  020000  000146 			BIS	#20000,146(R2)			;					0228
000302	000406 					BR	8$				;					0223
000304	020127  000602 			7$:	CMP	R1,#602				; STATUS,*
000310	001003 					BNE	8$
000312	052762  040000  000146 			BIS	#40000,146(R2)			;					0230
000320	010200 				8$:	MOV	R2,R0				;					0233
000322	062700  000146 				ADD	#146,R0
000326	004767  000000G				JSR	PC,$IC8
000332	000414 					BR	10$				;					0219
000334	105013 				9$:	CLRB	(R3)				;					0238
000336	011401 					MOV	(R4),R1				;					0240
000340	112761  000177  000003 			MOVB	#177,3(R1)			;					0245
000346	010205 					MOV	R2,R5				;					0247
000350	004767  000000G				JSR	PC,MASTER.CLEAR
000354	006000 					ROR	R0
000356	103406 					BLO	12$
000360	112713  000005 				MOVB	#5,(R3)				;					0250
000364	062706  000012 			10$:	ADD	#12,SP				;					0247
000370	005000 				11$:	CLR	R0				;					0249
000372	000207 					RTS	PC
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page  10
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (3)

000374	005000 				12$:	CLR	R0				;					0254
000376	156100  000003 				BISB	3(R1),R0
000402	005700 					TST	R0
000404	003403 					BLE	13$
000406	020027  000002 				CMP	R0,#2
000412	003406 					BLE	14$
000414	020027  000100 			13$:	CMP	R0,#100
000420	001403 					BEQ	14$
000422	020027  000200 				CMP	R0,#200
000426	001013 					BNE	15$
000430	052762  010000  000032 		14$:	BIS	#10000,32(R2)			;					0258
000436	012700  000120 				MOV	#120,R0				;					0260
000442	060200 					ADD	R2,R0
000444	105710 					TSTB	(R0)
000446	001015 					BNE	16$
000450	112710  000010 				MOVB	#10,(R0)			;					0262
000454	000412 					BR	16$				;					0254
000456	042762  010000  000032 		15$:	BIC	#10000,32(R2)			;					0267
000464	012700  000120 				MOV	#120,R0				;					0269
000470	060200 					ADD	R2,R0
000472	105710 					TSTB	(R0)
000474	001002 					BNE	16$
000476	112710  000007 				MOVB	#7,(R0)				;					0271
000502	062706  000012 			16$:	ADD	#12,SP				;					0177
000506	012700  000001 				MOV	#1,R0				;					0154
000512	000207 					RTS	PC

; Routine Size:  166 words,	Routine Base:  $CODE$ + 0116
; Maximum stack depth per invocation:  18 words
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page  11
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (4)

;	  0279	global routine DMCNMI =
;	  0280	
;	  0281	!++
;	  0282	! FUNCTIONAL DESCRIPTION:
;	  0283	!
;	  0284	!
;	  0285	! FORMAL PARAMETERS:
;	  0286	!	None
;	  0287	!
;	  0288	! IMPLICIT INPUTS:
;	  0289	!	None
;	  0290	!
;	  0291	! IMPLICIT OUTPUTS:
;	  0292	!	None
;	  0293	!
;	  0294	! ROUTINE VALUE:
;	  0295	! COMPLETION CODES:
;	  0296	!	None
;	  0297	!
;	  0298	! SIDE EFFECTS:
;	  0299	!	None
;	  0300	!--
;	  0301	
;	  0302	    begin
;	  0303	    GET_DMC_DATA_BASE (DB)
;	  0304	
;	  0305	    local
;	  0306		NAME_BUFFER : vector [ch$allocation (17)],
;	  0307		NMXID,
;	  0308		NMXPIX;
;	  0309	
;	  0310	    bind
;	  0311		NAME_PTR = ch$ptr (NAME_BUFFER);
;	  0312	
;	  0313	    if not $MCB_GET_PROCESS_HANDLE (%rad50_11 'NMX', NMXPIX) then return FALSE;
;	  0314	
;	  0315	    DB [D_NMX_PIX] = .NMXPIX;
;	  0316	    $MCB_GET_DEVICE_NAME (.DB [D_LINE_ENTITY], NAME_PTR);
;	  0317	    NMX$CREATE_LINE (.NMXPIX, NAME_PTR, 0, NMXID);
;	P 0318	    NMX$MODIFY_LINE_PROVIDER (.NMXPIX, NAME_PTR,
;	P 0319		.MCB$GW_PROCESS_HANDLE^8 + DMC_K_LINE_PROVIDER,
;	  0320		DB [D_LINE_ENTITY]);
;	P 0321	    NMX$MODIFY_LINE_OWNER (.NMXPIX, NAME_PTR,
;	P 0322		.MCB$GW_PROCESS_HANDLE^8 + DMC_K_LINE_OWNER,
;	  0323		NMXID);
;	  0324	    NMX$CREATE_CIRCUIT (.NMXPIX, NAME_PTR, NMX$FLG_maintenance_allowed, NMXID);
;	P 0325	    NMX$MODIFY_CIRCUIT_PROVIDER (.NMXPIX, NAME_PTR,
;	P 0326		.MCB$GW_PROCESS_HANDLE^8 + DMC_K_CIRCUIT_PROVIDER,
;	  0327		DB [D_CIRCUIT_ENTITY]);
;	  0328	    TRUE
;	  0329	    end;			!of routine DMCNMI
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page  12
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (4)


						.GLOBL	P.DTGT, D.NMGT, $NMCRE, $CALLP
						.GLOBL	$NMMID


						.SBTTL	DMCNMI
000000	004167  000000G			DMCNMI::JSR	R1,$SAVE2			;					0279
000004	162706  000026 				SUB	#26,SP
000010	016701  000002G				MOV	.CRDAT+2,R1			;					0302
000014	012746  000004 				MOV	#4,-(SP)			;					0313
000020	060616 					ADD	SP,(SP)				; $MCB$MY.INDEX,*
000022	012746  054640 				MOV	#54640,-(SP)
000026	012746  000002 				MOV	#2,-(SP)
000032	012746  000000G				MOV	#P.DTGT,-(SP)
000036	004767  000000G				JSR	PC,$CALLI
000042	062706  000010 				ADD	#10,SP
000046	032700  000001 				BIT	#1,R0				; *,$MCB$STATUS
000052	001405 					BEQ	1$
000054	016602  000002 				MOV	2(SP),R2			; $MCB$MY.INDEX,NMXPIX
000060	032700  000001 				BIT	#1,R0				; *,$MCB$STATUS
000064	001002 					BNE	2$
000066	005000 				1$:	CLR	R0
000070	000562 					BR	3$
000072	110261  000007 			2$:	MOVB	R2,7(R1)			; NMXPIX,*				0315
000076	012746  000006 				MOV	#6,-(SP)			;					0316
000102	060616 					ADD	SP,(SP)				; NAME.PTR,*
000104	016146  000102 				MOV	102(R1),-(SP)
000110	012746  000002 				MOV	#2,-(SP)
000114	012746  000000G				MOV	#D.NMGT,-(SP)
000120	004767  000000G				JSR	PC,$CALLI
000124	012716  000010 				MOV	#10,(SP)			;					0317
000130	060616 					ADD	SP,(SP)				; NMXID,*
000132	005046 					CLR	-(SP)
000134	012746  000020 				MOV	#20,-(SP)
000140	060616 					ADD	SP,(SP)				; NAME.PTR,*
000142	012746  001000 				MOV	#1000,-(SP)
000146	012746  000004 				MOV	#4,-(SP)
000152	012746  000000G				MOV	#$NMCRE,-(SP)
000156	010246 					MOV	R2,-(SP)			; NMXPIX,*
000160	004767  000000G				JSR	PC,$CALLP
000164	012716  000102 				MOV	#102,(SP)			;					0320
000170	060116 					ADD	R1,(SP)
000172	016700  000000G				MOV	.CRPIX,R0
000176	072027  000010 				ASH	#10,R0
000202	010046 					MOV	R0,-(SP)
000204	012746  000034 				MOV	#34,-(SP)
000210	060616 					ADD	SP,(SP)				; NAME.PTR,*
000212	012746  001004 				MOV	#1004,-(SP)
000216	012746  000004 				MOV	#4,-(SP)
000222	012746  000000G				MOV	#$NMMID,-(SP)
000226	010246 					MOV	R2,-(SP)			; NMXPIX,*
000230	004767  000000G				JSR	PC,$CALLP
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page  13
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (4)

000234	012716  000040 				MOV	#40,(SP)			;					0323
000240	060616 					ADD	SP,(SP)				; NMXID,*
000242	016700  000000G				MOV	.CRPIX,R0
000246	072027  000010 				ASH	#10,R0
000252	010046 					MOV	R0,-(SP)
000254	062716  000002 				ADD	#2,(SP)
000260	012746  000050 				MOV	#50,-(SP)
000264	060616 					ADD	SP,(SP)				; NAME.PTR,*
000266	012746  001002 				MOV	#1002,-(SP)
000272	012746  000004 				MOV	#4,-(SP)
000276	012746  000000G				MOV	#$NMMID,-(SP)
000302	010246 					MOV	R2,-(SP)			; NMXPIX,*
000304	004767  000000G				JSR	PC,$CALLP
000310	012716  000054 				MOV	#54,(SP)			;					0324
000314	060616 					ADD	SP,(SP)				; NMXID,*
000316	012746  000001 				MOV	#1,-(SP)
000322	012746  000064 				MOV	#64,-(SP)
000326	060616 					ADD	SP,(SP)				; NAME.PTR,*
000330	012746  002000 				MOV	#2000,-(SP)
000334	012746  000004 				MOV	#4,-(SP)
000340	012746  000000G				MOV	#$NMCRE,-(SP)
000344	010246 					MOV	R2,-(SP)			; NMXPIX,*
000346	004767  000000G				JSR	PC,$CALLP
000352	010116 					MOV	R1,(SP)				;					0327
000354	062716  000100 				ADD	#100,(SP)
000360	016700  000000G				MOV	.CRPIX,R0
000364	072027  000010 				ASH	#10,R0
000370	010046 					MOV	R0,-(SP)
000372	062716  000004 				ADD	#4,(SP)
000376	012746  000100 				MOV	#100,-(SP)
000402	060616 					ADD	SP,(SP)				; NAME.PTR,*
000404	012746  002004 				MOV	#2004,-(SP)
000410	012746  000004 				MOV	#4,-(SP)
000414	012746  000000G				MOV	#$NMMID,-(SP)
000420	010246 					MOV	R2,-(SP)			; NMXPIX,*
000422	004767  000000G				JSR	PC,$CALLP
000426	062706  000104 				ADD	#104,SP				;					0302
000432	012700  000001 				MOV	#1,R0				;					0279
000436	062706  000026 			3$:	ADD	#26,SP
000442	000207 					RTS	PC

; Routine Size:  146 words,	Routine Base:  $CODE$ + 0632
; Maximum stack depth per invocation:  49 words
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page  14
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (5)

;	  0330	routine NXM_CATCHER (SIG, MCH, ENB) =
;	  0331	
;	  0332	!++
;	  0333	! FUNCTIONAL DESCRIPTION:
;	  0334	!
;	  0335	!
;	  0336	! FORMAL PARAMETERS:
;	  0337	!	SIG = signal vector address
;	  0338	!	MCH = mechanism vector address
;	  0339	!	ENB = enable vector address
;	  0340	!
;	  0341	! IMPLICIT INPUTS:
;	  0342	!	None
;	  0343	!
;	  0344	! IMPLICIT OUTPUTS:
;	  0345	!	None
;	  0346	!
;	  0347	! ROUTINE VALUE:
;	  0348	! COMPLETION CODES:
;	  0349	!	None
;	  0350	!
;	  0351	! SIDE EFFECTS:
;	  0352	!	None
;	  0353	!--
;	  0354	
;	  0355	    begin
;	  0356	
;	  0357	    map
;	  0358		ENB : ref vector,
;	  0359		MCH : ref vector,
;	  0360		SIG : ref vector;
;	  0361	
;	  0362	    if .SIG [1] neq SS$NXM then return FALSE;
;	  0363	
;	  0364	    .ENB [1] = TRUE;
;	  0365	    TRUE
;	  0366	    end;			!of routine NXM_CATCHER


						.SBTTL	NXM.CATCHER
000000	016600  000006 			NXM.CATCHER:
						MOV	6(SP),R0			; SIG,*					0362
000004	026027  000002  000114 			CMP	2(R0),#114
000012	001402 					BEQ	1$
000014	005000 					CLR	R0
000016	000207 					RTS	PC
000020	016600  000002 			1$:	MOV	2(SP),R0			; ENB,*					0364
000024	012770  000001  000002 			MOV	#1,@2(R0)
000032	012700  000001 				MOV	#1,R0				;					0330
000036	000207 					RTS	PC

; Routine Size:  16 words,	Routine Base:  $CODE$ + 1276
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page  15
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (5)

; Maximum stack depth per invocation:  0 words
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page  16
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (6)

;	  0367	routine REGISTER_NXM
;	  0368	
;	  0369	!++
;	  0370	! FUNCTIONAL DESCRIPTION:
;	  0371	!
;	  0372	!
;	  0373	! FORMAL PARAMETERS:
;	  0374	       (CSR : ref vector volatile,
;	  0375		NUM)
;	  0376	!
;	  0377	! IMPLICIT INPUTS:
;	  0378	!	None
;	  0379	!
;	  0380	! IMPLICIT OUTPUTS:
;	  0381	!	None
;	  0382	!
;	  0383	! ROUTINE VALUE:
;	  0384		: DMC_CSR_NUM =
;	  0385	!
;	  0386	! SIDE EFFECTS:
;	  0387	!	None
;	  0388	!--
;	  0389	
;	  0390	    begin
;	  0391	
;	  0392	    local
;	  0393		FLAG : volatile, %(BLISS initializes to 0 = FALSE)%
;	  0394		TEMP;
;	  0395	
;	  0396	    enable
;	  0397		NXM_CATCHER (FLAG);
;	  0398	
;	  0399	    do
;	  0400		begin
;	  0401		TEMP = .CSR [0];
;	  0402		CSR = CSR [1];
;	  0403		end
;	  0404	    while (NUM = .NUM - 1) nequ 0;
;	  0405	
;	  0406	    .FLAG
;	  0407	    end;			!of routine REGISTER_NXM


						.SBTTL	REGISTER.NXM
000000	004167  000000G			REGISTER.NXM:
						JSR	R1,$SAVE5			;					0367
000004	005046 					CLR	-(SP)				; FLAG
000006	012746  001412'				MOV	#2$,-(SP)
000012	012746  177776 				MOV	#-2,-(SP)
000016	060616 					ADD	SP,(SP)
000020	016746  000000G				MOV	$IGREG,-(SP)
000024	010667  000000G				MOV	SP,$IGREG
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page  17
X01120								30-Dec-1982 02:37:42	NETPKG:<DRIVERS>DMCINI.B16.10 (6)

000030	012002 				1$:	MOV	(R0)+,R2			; CSR,TEMP				0401
000032	077102 					SOB	R1,1$				; NUM,*					0404
000034	016600  000006 				MOV	6(SP),R0			; FLAG,*				0406
000040	017767  000000G 000000G			MOV	@$IGREG,$IGREG			;					0367
000046	062706  000010 				ADD	#10,SP
000052	000207 					RTS	PC
000054	012746  000010 			2$:	MOV	#10,-(SP)
000060	060616 					ADD	SP,(SP)				; FLAG,*
000062	066716  000000G				ADD	$HANSP,(SP)
000066	012746  000001 				MOV	#1,-(SP)
000072	012746  001276'				MOV	#NXM.CATCHER,-(SP)
000076	004767  000000G				JSR	PC,$HANDL
000102	062706  000016 				ADD	#16,SP
000106	000207 					RTS	PC

; Routine Size:  36 words,	Routine Base:  $CODE$ + 1336
; Maximum stack depth per invocation:  14 words


;	  0408	end
;	  0409	eludom



;					OTS external references
						.GLOBL	$HANSP, $IGREG, $SAVE5, $SAVE2
						.GLOBL	$HANDL


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




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<V3P0>MCBLIB.L16.7		       372        18         4         0
;  NETPKG:<MCB>XPORTX.L16.15		       599         2         0         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200        17         8         0
;  NETPKG:<DRIVERS>DMCDAT.L16.2		       220       139        63         0





; Size:		403 code + 0 data words
DMCINI								25-Jan-1983 10:14:26	TOPS-20 Bliss-16 3(552)		    Page  18
X01120											

; Run Time:	   00:06.3
; Elapsed Time:	   00:20.8
; Memory Used:	41 pages
; Compilation Complete
BLISS16				   3
BSEL3				 245	 254
CE$PRI				 229
CE$VCU				 227
CE$VEC				 225
COUNTER_INCREMENT		 188	 189	 196	 197	 226	 228	 230	 233
CSR				 374	 401	 402#
DB				 141	 143#	 144#	 146	 148#	 150#	 152	 178	 183#	 185	 188	 189
				 193	 196	 197	 206	 211	 215	 226	 228	 230	 233	 238#	 243
				 247	 250#	 258#	 260	 262#	 267#	 269	 271#	 303	 315#	 316	 320
				 327
DB_BIAS				 116#
DB_TIME_LINE_ZEROED		 152
DD_CLEARED			 183	 250
DD_MASTER_CLEARED		 238
DF_DMR				 258	 267
DF_HALF_DUPLEX			 148	 150
DI_HD				 146
DMCDBI				  76	 117*
DMCDVI				  77	 154*
DMCINI				   1#
DMCIN				 107*	 206
DMCNMI				  78	 279*
DMCOUT				 108	 211
DMC_CSR_NUM			  73#	  80	 384#
DMC_FIELDS			 243
DMC_K_CIRCUIT_PROVIDER		 326
DMC_K_LINE_OWNER		 322
DMC_K_LINE_PROVIDER		 319
DMC_TEST_VALUE			 181#	 245
D_BUF				 143	 144
D_CIRCUIT_ENTITY		 327
D_CONFIGURATION_ERRORS		 189	 197	 233
D_CONFLICTING_VECTOR		 228
D_DEVICE_STATE			 183	 238	 250
D_HIGHEST_TRANSMIT_BUFFER	 144
D_INVALID_CONTROLLER_REGISTER	 188
D_INVALID_PRIORITY		 230
D_INVALID_VECTOR		 226
D_LINE_ENTITY			 316	 320
D_MAXIMUM_RECEIVE_COUNT		 260	 262	 269	 271
D_MAXIMUM_TRANSMIT_COUNT	 144
D_NEXT_TRANSMIT_BUFFER		 143
D_NMX_PIX			 315
D_NXM_CONTROLLER_REGISTER	 196
D_PRIORITY			 206	 211
D_REGISTER			 185	 193	 243
D_TIM				 247
D_TRANSMIT_BUFFER_SIZE		 144
D_VECTOR			 206	 211	 215
ENB				 330	 358	 364#
FALSE				  92#	 148	 190	 198	 234	 251	 267	 313	 362
FLAG				 393	 397	 406
GET_DMC_DATA_BASE		 141	 178	 303
LANGUAGE			   3
LINKAGE_DB_CSR			 104#	 109
MASTER_CLEAR			 109	 247
MCB$GAW_PROCESS_DATA_BASE	 112	 116
MCB$GW_PROCESS_HANDLE		 113	 319	 322	 326
MCB_INTERRUPT			 107	 108
MCH				 330	 359
NAME_BUFFER			 306	 311
NAME_PTR			 311#	 316	 317	 318	 321	 324	 325
NMX$CREATE_CIRCUIT		 324
NMX$CREATE_LINE			 317
NMX$FLG_MAINTENANCE_ALLOWED	 324
NMX$MODIFY_CIRCUIT_PROVIDER	 325
NMX$MODIFY_LINE_OWNER		 321
NMX$MODIFY_LINE_PROVIDER	 318
NMXID				 307	 317	 323	 324
NMXPIX				 308	 313	 315	 317	 318	 321	 324	 325
NO_OPERATION			  93#
NUM				 375	 404#
NXM_CATCHER			  79	 330*	 397
REG				 243#	 245#	 247	 254
REGISTER_NXM			  80	 193	 367*
SEL0				 247
SIG				 330	 360	 362
SS$NXM				 362
STATUS				 204	 206#	 208	 211#	 213	 219	 223
TEMP				 394	 401#
TRUE				  91#	 150	 258	 277	 328	 364	 365
$MCB_CLEAR_VECTOR		 215
$MCB_GET_DEVICE_NAME		 316
$MCB_GET_PROCESS_HANDLE		 313
$MCB_SET_VECTOR			 206	 211
$NM_TIME			 152
$SUB_FIELD			 254