Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/drivers/dcp.lst
There are no other files named dcp.lst in the archive.
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page   1
								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (1)

;	  0001	module DCP (	! DDCMP Protocol Processor
;	  0002			ident = 'X05180',
;	  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 DDCMP Protocol Driver
;	  0031	!
;	  0032	! ABSTRACT:
;	  0033	!
;	  0034	!	This module contains the DDCMP protocol routines.
;	  0035	!
;	  0036	! ENVIRONMENT: MCB V3.2
;	  0037	!
;	  0038	! AUTHOR: Alan D. Peckham	CREATION DATE: 1-Jul-81
;	  0039	!
;	  0040	! MODIFIED BY:
;	  0041	!
;	  0042	!	Alan D. Peckham, 1-Jul-81: Version 5
;	  0043	! 01	- Rewritten in BLISS
;	  0044	! 02	- Rewrite driver control code to insure device stop requests
;	  0045	!	  are performed.
;	  0046	! 03	- Dot bug in CHANGE_PROTOCOL_STATE.
;	  0047	!	  Wrong event class for maintenance "load me" notification.
;	  0048	!	  Wrong event types for threshold notifications.
;	  0049	! 04	- Fix to insure that there is only one control CCB to driver
;	  0050	!	  at any one timer (confuses the KDP driver).
;	  0051	! 05	- The last fix did not catch all cases in SET_DEVICE.
;	  0052	! 06	- Do not set half duplex in maintenance.
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page   2
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (1)

;	  0053	! 07	- Fix REP timer bug in DCPXCP.
;	  0054	! 08	- Fix state reporting.
;	  0055	! 09	- Out-of-range acks should not dump a data message.
;	  0056	! 10	- Update to NM V3.0.0 .
;	  0057	! 11	- Remove 'counters zeroed' event in DCPNMX.
;	  0058	! 12	- Fix event number for MOP requested event.
;	  0059	! 13	- Get KDP parameters from PLL.
;	  0060	! 14	- De-commit half-duplex.
;	  0061	! 15	- Do not use select timer when in FDX maintenance mode.
;	  0062	! 16	- Poke KDP DEVTYPE in maintenance messages that need it.
;	  0063	! 17	- Handle change in NMX interface in DCPINI.
;	  0064	! 18	- Modify CTLSTR to return the CIRCUIT COST to XPT in C_PRM1.
;	  0065	!--
;	  0066	!
;	  0067	! INCLUDE FILES:
;	  0068	!
;	  0069	
;	  0070	library 'MCBLIB';
;	  0071	
;	  0072	library 'XPORTX';
;	  0073	
;	  0074	library 'NMXLIB';
;	  0075	
;	  0076	$SHOW (NONE)
;	  0077	require 'DLLLIB';
;	  0331	
;	  0332	library 'DCPDAT';
;	  0333	
;	  0334	!
;	  0335	! TABLE OF CONTENTS:
;	  0336	!
;	  0337	
;	  0338	linkage
;	  0339	    DCP_CCB_DB = jsr (register = 4, register = 5) :
;	  0340		nopreserve (0, 1, 2, 3, 4),
;	  0341	    DCP_CCB_DB_STS = jsr (register = 4, register = 5, register = 3) :
;	  0342		nopreserve (0, 1, 2, 3, 4),
;	  0343	    DCP_CCB = jsr (register = 4) :
;	  0344		nopreserve (0, 1, 2, 3),
;	  0345	    DCP_CTR = jsr (register = 0),
;	  0346	    DCP_DB = jsr (register = 5) :
;	  0347		nopreserve (0, 1, 2, 3, 4),
;	  0348	    DCP_DB_N0 = jsr (register = 5) :
;	  0349		preserve (0),
;	  0350	    DCP_DB_CCB = jsr (register = 5, register = 4) :
;	  0351		nopreserve (0, 1, 2, 3),
;	  0352	    DCP_DB_CCB_N0 = jsr (register = 5, register = 4) :
;	  0353		preserve (0) nopreserve (3),
;	  0354	    DCP_DB_CCBR = jsr (register = 5, register = 4) :
;	  0355		nopreserve (0, 1, 2, 3, 4),
;	  0356	    DCP_DB_CCB_HDR = jsr (register = 5, register = 4; register = 4) :
;	  0357		nopreserve (0, 1, 2, 3),
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page   3
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (1)

;	  0358	    DCP_DB_CTR_STS = jsr (register = 5, register = 0, register = 3) :
;	  0359		nopreserve (0, 1, 2, 3),
;	  0360	    DCP_DB_STS = jsr (register = 5, register = 3) :
;	  0361		nopreserve (0, 1, 2, 3);
;	  0362	
;	  0363	forward routine
;	  0364	    BUILD_CONTROL_MESSAGE : DCP_DB,
;	  0365	    BUILD_DATA_MESSAGE : DCP_DB_CCBR,
;	  0366	    BUILD_MAINTENANCE_MESSAGE : DCP_DB_CCBR,
;	  0367	    BUMP_8_BIT_COUNTER : DCP_CTR novalue,
;	  0368	    CCPGET : MCB_DB_CCB novalue,
;	  0369	    CCPSET : MCB_DB_CCB novalue,
;	  0370	    CCPSTP : MCB_DB_CCB novalue,
;	  0371	    CCPSTR : MCB_DB_CCB novalue,
;	  0372	    CHANGE_PROTOCOL_STATE : DCP_DB novalue,
;	  0373	    CKACK : DCP_DB,
;	  0374	    CKREP : DCP_DB novalue,
;	  0375	    CTLSTP : MCB_DB_CCB novalue,
;	  0376	    CTLSTR : MCB_DB_CCB novalue,
;	  0377	    DCPCCP : MCB_DB_CCB_MOD novalue,
;	  0378	    DCPCTL : MCB_DB_CCB_MOD novalue,
;	  0379	    DCPKCP : MCB_DB_CCB novalue,
;	  0380	    DCPRCE : MCB_DB_CCB novalue,
;	  0381	    DCPRCP : MCB_DB_CCB novalue,
;	  0382	    DCPTIM : MCB_DB_CCB_MOD novalue,
;	  0383	    DCPXCP : MCB_DB_CCB novalue,
;	  0384	    DCPXME : MCB_DB_CCB_MOD novalue,
;	  0385	    ENTER_MAINTENANCE : MCB_DB_CCB novalue,
;	  0386	    HEADER_CCB : DCP_DB_CCB_HDR,
;	  0387	    HEADER_FORMAT_ERROR : DCP_DB novalue,
;	  0388	    IGNORE_MESSAGE : DCP_DB novalue,
;	  0389	    INITIALIZE_LINK : MCB_DB_CCB novalue,
;	  0390	    MESSAGE_LENGTH : DCP_CCB,
;	  0391	    PROCESS_ACK_MESSAGE : DCP_DB novalue,
;	  0392	    PROCESS_CONTROL_MESSAGE : DCP_DB_CCBR novalue,
;	  0393	    PROCESS_DATA_MESSAGE : DCP_DB_CCBR novalue,
;	  0394	    PROCESS_MAINTENANCE_MESSAGE : DCP_DB_CCBR novalue,
;	  0395	    PROCESS_NAK_MESSAGE : DCP_DB novalue,
;	  0396	    PROCESS_REP_MESSAGE : DCP_DB novalue,
;	  0397	    PROCESS_SELECT_FLAG : DCP_DB novalue,
;	  0398	    PROCESS_STACK_MESSAGE : DCP_DB novalue,
;	  0399	    PROCESS_START_MESSAGE : DCP_DB novalue,
;	  0400	    RECORD_DRIVER_ERROR : DCP_DB_CCB novalue,
;	  0401	    RECORD_NAK_REASON : DCP_DB novalue,
;	  0402	    RESYNCHRONIZE : DCP_DB novalue,
;	  0403	    RETRANSMIT_UNACKED_MESSAGES : DCP_DB novalue,
;	  0404	    RETURN_ACKED_MESSAGES : DCP_DB novalue,
;	  0405	    SCHEDULE_PERSISTENT_AST : DCP_CCB_DB novalue,
;	  0406	    SCHEDULE_RECEIVE : DCP_CCB_DB novalue,
;	  0407	    SCHEDULE_STATE_AST : DCP_CCB_DB novalue,
;	  0408	    SCHEDULE_TRANSIENT_AST : DCP_CCB_DB novalue,
;	  0409	    SCHEDULE_TRANSMIT : DCP_CCB_DB_STS novalue,
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page   4
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (1)

;	  0410	    SEND_DATA : DCP_DB novalue,
;	  0411	    SEND_PERSISTENT_ERROR : DCP_DB_STS novalue,
;	  0412	    SEND_STATE : DCP_DB novalue,
;	  0413	    SEND_TRANSIENT_ERROR : DCP_DB_STS novalue,
;	  0414	    SET_DEVICE : DCP_DB novalue,
;	  0415	    SET_LINK : DCP_DB novalue,
;	  0416	    STARCE : DCP_DB_CCBR novalue,
;	  0417	    START_DEVICE : DCP_CCB_DB novalue,
;	  0418	    STOP_DEVICE : DCP_CCB_DB novalue,
;	  0419	    STOP_LINK : MCB_DB_CCB novalue,
;	  0420	    SYNCHRONIZE : DCP_DB_CCB_N0 novalue,
;	  0421	    TERMINATE_SELECTION_INTERVAL : DCP_DB novalue,
;	  0422	    TEST_RECEIVE_THRESHOLD : DCP_DB_N0 novalue,
;	  0423	    TEST_THRESHOLD : DCP_DB_CTR_STS novalue,
;	  0424	    TEST_TRANSMIT_THRESHOLD : DCP_DB_N0 novalue,
;	  0425	    TEST_SELECT_THRESHOLD : DCP_DB_N0 novalue,
;	  0426	    TIMCCB : MCB_DB_CCB novalue,
;	  0427	    TIMLTM : MCB_DB novalue,
;	  0428	    TIMPWF : MCB_DB novalue,
;	  0429	    TRANSMIT : MCB_DB_CCB novalue;
;	  0430	
;	  0431	global bind routine
;	  0432	    TSTTH = TEST_TRANSMIT_THRESHOLD : DCP_DB novalue;
;	  0433	
;	  0434	!
;	  0435	! MACROS:
;	  0436	!
;	  0437	
;	  0438	macro
;	M 0439	    $SIGNED (FLD0, FLD1, FLD2, FLD3) =
;	M 0440		%if %null (FLD1)
;	M 0441		%then
;	M 0442		    %fieldexpand (FLD0, 0),
;	M 0443		    %fieldexpand (FLD0, 1),
;	M 0444		    %fieldexpand (FLD0, 2)
;	M 0445		%else
;	M 0446		    FLD0, FLD1, FLD2
;	  0447		%fi, 1 %;
;	  0448	
;	  0449	macro
;	M 0450	    FLUSH_QUEUE (QUEUE, RETURN_CALL) =
;	M 0451		while 1 eql 1 do
;	M 0452		    begin
;	M 0453	
;	M 0454		    local
;	M 0455			_DCP_CCB : ref block field (C_FIELDS);
;	M 0456	
;	M 0457		    if not CMQRM$ (QUEUE, _DCP_CCB) then exitloop;
;	M 0458	
;	M 0459		    RETURN_CALL (._DCP_CCB %if not %null (%remaining) %then , %remaining %fi);
;	  0460		    end %;
;	  0461	
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page   5
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (1)

;	  0462	!
;	  0463	! EQUATED SYMBOLS:
;	  0464	!
;	  0465	
;	  0466	literal
;	  0467	    TRUE = 1 EQL 1,
;	  0468	    FALSE = 1 EQL 0,
;	  0469	    NO_OPERATION = 0;
;	  0470	
;	  0471	literal
;	  0472	    LCL = 0,
;	  0473	    RMT = 1;
;	  0474	
;	  0475	macro
;	  0476	    C_HANDLE = %fieldexpand (C_LIN, 0), 0, %bpval, 0 %;
;	  0477	
;	  0478	global literal
;	  0479	    %name ('D.LEN') = D_LENGTH*%upval;
;	  0480	
;	  0481	!
;	  0482	! OWN STORAGE:
;	  0483	!
;	  0484	
;	  0485	external routine
;	  0486	    $DSPCR : novalue;
;	  0487	
;	P 0488	$MCB_PROCESS (
;	P 0489	    NAME = DCP,
;	P 0490	    DLC_DISPATCH = TABLE$ ($DSPCR, FC_CCP,
;	P 0491		(FC_CTL, DCPCTL),
;	P 0492		(FC_XME, DCPXME),
;	P 0493		(FC_RCE, DCPRCE),
;	P 0494		(FC_TIM, DCPTIM),
;	P 0495		(FC_XCP, DCPXCP),
;	P 0496		(FC_RCP, DCPRCP),
;	P 0497		(FC_KCP, DCPKCP),
;	  0498		(FC_CCP, DCPCCP)));
;	  0499	
;	  0500	!
;	  0501	! EXTERNAL REFERENCES:
;	  0502	!
;	  0503	
;	  0504	linkage
;	  0505	    DDM_CCB = jsr (register = 4) : nopreserve (4);
;	  0506	
;	  0507	external routine
;	  0508	    DCPNM : DCP_DB_CCBR novalue,
;	  0509	    TIMPIN : MCB_DB novalue;
;	  0510	
;	  0511	external
;	  0512	    MCB$GAW_PROCESS_DATA_BASE : vector [2],
;	  0513	    MCB$GW_PROCESS_HANDLE;
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page   6
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (1)

;	  0514	
;	  0515	bind
;	  0516	    DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
;	  0517	
;	  0518	macro
;	M 0519	    GET_DCP_DATA_BASE (NAME) =
;	M 0520		%if %declared (NAME)
;	M 0521		%then map NAME : ref
;	M 0522		%else bind NAME = .MCB$GAW_PROCESS_DATA_BASE [1] :
;	  0523		%fi block field (D_FIELDS); %;
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page   7
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (2)

;	  0524	routine BUILD_CONTROL_MESSAGE
;	  0525	
;	  0526	!++
;	  0527	! FUNCTIONAL DESCRIPTION:
;	  0528	!
;	  0529	!
;	  0530	! FORMAL PARAMETERS:
;	  0531	!
;	  0532	       (DB : ref block field (D_FIELDS))
;	  0533	!
;	  0534	! IMPLICIT INPUTS:
;	  0535	!
;	  0536	! IMPLICIT OUTPUTS:
;	  0537	!	None
;	  0538	!
;	  0539	! ROUTINE VALUE:
;	  0540	!
;	  0541		: DCP_DB =
;	  0542	!
;	  0543	! SIDE EFFECTS:
;	  0544	!	None
;	  0545	!--
;	  0546	
;	  0547	    begin
;	  0548	
;	  0549	    local
;	  0550		CCB : ref block field (C_FIELDS),
;	  0551		PTR;
;	  0552	
;	  0553	    if (PTR = HEADER_CCB (DB [D_TIM], 0; CCB)) eqla 0 then return .PTR;
;	  0554	
;	  0555	    ch$wchar_a (CM_ENQ, PTR);
;	  0556	
;	  0557	    selectone TRUE of
;	  0558		set
;	  0559		[.DB [SS_SEND_STACK]] :
;	  0560		    begin
;	  0561		    DB [SS_SEND_STACK] = FALSE;
;	  0562		    DB [SS_START_REP_TIMER] = TRUE;
;	  0563		    TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
;	  0564		    ch$wchar_a (MT_STK, PTR);
;	  0565		    ch$wchar_a (0, PTR);
;	  0566		    ch$wchar_a (0, PTR);
;	  0567		    ch$wchar_a (0, PTR);
;	  0568		    ch$wchar_a (1, PTR);
;	  0569	
;	  0570		    if .DB [L_PROTOCOL] eql DP_DMC then SYNCHRONIZE (DB [D_TIM], .CCB);
;	  0571	
;	  0572		    end;
;	  0573		[.DB [SS_SEND_START]] :
;	  0574		    begin
;	  0575		    DB [SS_SEND_START] = FALSE;
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page   8
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (2)

;	  0576		    DB [SS_START_REP_TIMER] = TRUE;
;	  0577		    TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
;	  0578		    ch$wchar_a (MT_STR, PTR);
;	  0579		    ch$wchar_a (0, PTR);
;	  0580		    ch$wchar_a (0, PTR);
;	  0581		    ch$wchar_a (0, PTR);
;	  0582		    ch$wchar_a (1, PTR);
;	  0583	
;	  0584		    if .DB [L_PROTOCOL] eql DP_DMC then SYNCHRONIZE (DB [D_TIM], .CCB);
;	  0585	
;	  0586		    end;
;	  0587		[.DB [SS_SEND_NAK]] :
;	  0588		    begin
;	  0589		    DB [SS_SEND_NAK] = FALSE;
;	  0590		    ch$wchar_a (MT_NAK, PTR);
;	  0591		    ch$wchar_a (.DB [S_PENDING_NAK_REASON], PTR);
;	  0592		    ch$wchar_a (.DB [S_R], PTR);
;	  0593		    ch$wchar_a (0, PTR);
;	  0594		    ch$wchar_a (1, PTR);
;	  0595		    SYNCHRONIZE (DB [D_TIM], .CCB);
;	  0596		    end;
;	  0597		[.DB [SS_SEND_REP]] :
;	  0598		    begin
;	  0599		    DB [SS_SEND_REP] = FALSE;
;	  0600		    ch$wchar_a (MT_REP, PTR);
;	  0601		    ch$wchar_a (0, PTR);
;	  0602		    ch$wchar_a (0, PTR);
;	  0603		    ch$wchar_a (.DB [S_N], PTR);
;	  0604		    ch$wchar_a (1, PTR);
;	  0605		    SYNCHRONIZE (DB [D_TIM], .CCB);
;	  0606		    end;
;	  0607		[.DB [SS_SEND_ACK]] :
;	  0608		    begin
;	  0609		    DB [SS_SEND_ACK] = FALSE;
;	  0610		    ch$wchar_a (MT_ACK, PTR);
;	  0611		    ch$wchar_a (0, PTR);
;	  0612		    ch$wchar_a (.DB [S_R], PTR);
;	  0613		    ch$wchar_a (0, PTR);
;	  0614		    ch$wchar_a (1, PTR);
;	  0615	
;	  0616		    if .DB [L_PROTOCOL] eql DP_DMC then SYNCHRONIZE (DB [D_TIM], .CCB);
;	  0617	
;	  0618		    end;
;	  0619		tes;
;	  0620	
;	  0621	    if .DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_FIRST)] neqa 0
;	  0622	    then
;	  0623		CCB [C_PRM4] = .DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_LAST)];
;	  0624	
;	  0625	    $MCB_QUEUE_CCB (DB [L_PRE_TRANSMIT], .CCB);
;	  0626	    DB [S_MOTD] = .DB [S_MOTD] + 1;
;	  0627	    .PTR
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page   9
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (2)

;	  0628	    end;			!of routine BUILD_CONTROL_MESSAGE


						.TITLE	DCP
						.IDENT	/X05180/


000000						.PSECT	......,  D  
000000	014610 				HEADER: .RAD50	/DCP/
000002	000403 					.WORD	403
000004	000000 					.WORD	0
000006	000000 					.WORD	0
000010	000000 					.WORD	0
000012	000000G					.WORD	.DSPCR
000014	000000'					.WORD	P.AAA
000016	000000G					.WORD	.DSPCR
000020	000000G					.WORD	MCB$V0
000022	000000G					.WORD	MCB$V1
000024	140310 					.WORD	140310
000026	143716 					.WORD	143716
000030	001400 					.WORD	1400
000032	000000 					.WORD	0
000034	000000 					.WORD	0
000036	000000 					.WORD	0



000000						.PSECT	$PLIT$,  RO ,  D  
000000	000000G				P.AAA:	.WORD	$DSPCR
000002	000000V					.WORD	DCPXME
000004	000000V					.WORD	DCPRCE
000006	000000G					.WORD	$DSPCR
000010	000000V					.WORD	DCPCTL
000012	000000V					.WORD	DCPTIM
000014	000000V					.WORD	DCPXCP
000016	000000V					.WORD	DCPRCP
000020	000000V					.WORD	DCPKCP
000022	000000V					.WORD	DCPCCP


						.GLOBL	$DSPCR, .DSPCR, MCB$V0, MCB$V1
						.GLOBL	DCPNM, TIMPIN, .CRDAT, .CRPIX
						.GLOBL	$CMQIN


	000164 				D.LEN==		    164


						.SBTTL	BUILD.CONTROL.MESSAGE
000000						.PSECT	$CODE$,  RO 

000000	005004 				BUILD.CONTROL.MESSAGE:
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  10
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (2)

						CLR	R4				;					0553
000002	004767  000000V				JSR	PC,HEADER.CCB
000006	005700 					TST	R0				; PTR
000010	001561 					BEQ	9$
000012	112720  000005 				MOVB	#5,(R0)+			; *,PTR					0555
000016	032765  000400  000002 			BIT	#400,2(R5)			; *,*(DB)				0557
000024	001423 					BEQ	1$
000026	042765  000400  000002 			BIC	#400,2(R5)			; *,*(DB)				0561
000034	052715  001000 				BIS	#1000,(R5)			; *,DB					0562
000040	004767  000000V				JSR	PC,TEST.TRANSMIT.THRESHOLD	;					0563
000044	112720  000007 				MOVB	#7,(R0)+			; *,PTR					0564
000050	105020 					CLRB	(R0)+				; PTR					0565
000052	105020 					CLRB	(R0)+				; PTR					0566
000054	105020 					CLRB	(R0)+				; PTR					0567
000056	112720  000001 				MOVB	#1,(R0)+			; *,PTR					0568
000062	126527  000010  000004 			CMPB	10(R5),#4			; *(DB),*				0570
000070	001115 					BNE	7$
000072	000512 					BR	6$
000074	032765  001000  000002 		1$:	BIT	#1000,2(R5)			; *,*(DB)				0557
000102	001423 					BEQ	2$
000104	042765  001000  000002 			BIC	#1000,2(R5)			; *,*(DB)				0575
000112	052715  001000 				BIS	#1000,(R5)			; *,DB					0576
000116	004767  000000V				JSR	PC,TEST.TRANSMIT.THRESHOLD	;					0577
000122	112720  000006 				MOVB	#6,(R0)+			; *,PTR					0578
000126	105020 					CLRB	(R0)+				; PTR					0579
000130	105020 					CLRB	(R0)+				; PTR					0580
000132	105020 					CLRB	(R0)+				; PTR					0581
000134	112720  000001 				MOVB	#1,(R0)+			; *,PTR					0582
000140	126527  000010  000004 			CMPB	10(R5),#4			; *(DB),*				0584
000146	001066 					BNE	7$
000150	000463 					BR	6$
000152	032765  002000  000002 		2$:	BIT	#2000,2(R5)			; *,*(DB)				0557
000160	001413 					BEQ	3$
000162	042765  002000  000002 			BIC	#2000,2(R5)			; *,*(DB)				0589
000170	112720  000002 				MOVB	#2,(R0)+			; *,PTR					0590
000174	116520  000077 				MOVB	77(R5),(R0)+			; *(DB),PTR				0591
000200	116520  000070 				MOVB	70(R5),(R0)+			; *(DB),PTR				0592
000204	105010 					CLRB	(R0)				; PTR					0593
000206	000415 					BR	4$
000210	032765  004000  000002 		3$:	BIT	#4000,2(R5)			; *,*(DB)				0557
000216	001415 					BEQ	5$
000220	042765  004000  000002 			BIC	#4000,2(R5)			; *,*(DB)				0599
000226	112720  000003 				MOVB	#3,(R0)+			; *,PTR					0600
000232	105020 					CLRB	(R0)+				; PTR					0601
000234	105020 					CLRB	(R0)+				; PTR					0602
000236	116510  000073 				MOVB	73(R5),(R0)			; *(DB),PTR				0603
000242	005200 				4$:	INC	R0				; PTR
000244	112720  000001 				MOVB	#1,(R0)+			; *,PTR					0604
000250	000423 					BR	6$				;					0605
000252	032765  010000  000002 		5$:	BIT	#10000,2(R5)			; *,*(DB)				0557
000260	001421 					BEQ	7$
000262	042765  010000  000002 			BIC	#10000,2(R5)			; *,*(DB)				0609
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  11
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (2)

000270	112720  000001 				MOVB	#1,(R0)+			; *,PTR					0610
000274	105020 					CLRB	(R0)+				; PTR					0611
000276	116520  000070 				MOVB	70(R5),(R0)+			; *(DB),PTR				0612
000302	105020 					CLRB	(R0)+				; PTR					0613
000304	112720  000001 				MOVB	#1,(R0)+			; *,PTR					0614
000310	126527  000010  000004 			CMPB	10(R5),#4			; *(DB),*				0616
000316	001002 					BNE	7$
000320	004767  000000V			6$:	JSR	PC,SYNCHRONIZE
000324	012703  000150 			7$:	MOV	#150,R3				;					0621
000330	060503 					ADD	R5,R3				; DB,*
000332	005713 					TST	(R3)
000334	001403 					BEQ	8$
000336	016564  000152  000032 			MOV	152(R5),32(R4)			; *(DB),*(CCB)				0623
000344	004767  000000G			8$:	JSR	PC,$CMQIN			;					0625
000350	105265  000076 				INCB	76(R5)				; *(DB)					0626
000354	000207 				9$:	RTS	PC				;					0524

; Routine Size:  119 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  12
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (3)

;	  0629	routine BUILD_DATA_MESSAGE
;	  0630	
;	  0631	!++
;	  0632	! FUNCTIONAL DESCRIPTION:
;	  0633	!
;	  0634	!
;	  0635	! FORMAL PARAMETERS:
;	  0636	!
;	  0637	       (DB : ref block field (D_FIELDS),
;	  0638		DCCB : ref block field (C_FIELDS))
;	  0639	!
;	  0640	! IMPLICIT INPUTS:
;	  0641	!
;	  0642	! IMPLICIT OUTPUTS:
;	  0643	!	None
;	  0644	!
;	  0645	! ROUTINE VALUE:
;	  0646	!
;	  0647		: DCP_DB_CCBR =
;	  0648	!
;	  0649	! SIDE EFFECTS:
;	  0650	!	None
;	  0651	!--
;	  0652	
;	  0653	    begin
;	  0654	
;	  0655	    local
;	  0656		CCB : ref block field (C_FIELDS),
;	  0657		CNT,
;	  0658		PTR;
;	  0659	
;	  0660	    if (PTR = HEADER_CCB (DB [D_TIM], .DCCB; CCB)) eqla 0 then return .PTR;
;	  0661	
;	  0662	    DB [SS_SEND_ACK] = FALSE;
;	  0663	    DB [L_MESSAGES_AT_DRIVER] = .DB [L_MESSAGES_AT_DRIVER] + 1;
;	  0664	    CNT = MESSAGE_LENGTH (.CCB);
;	  0665	
;	  0666	    if .DB [S_N] eqlu .DB [S_TM1]
;	  0667	    then
;	  0668		begin
;	  0669		DB [S_N] = .DB [S_N] + 1;
;	  0670		COUNTER_ADD (DB, S_BYTES_TRANSMITTED, .CNT);
;	  0671		COUNTER_INCREMENT (DB, S_DATA_BLOCKS_TRANSMITTED);
;	  0672		end;
;	  0673	
;	  0674	    DB [S_TM1] = .DB [S_TM1] + 1;
;	  0675	    ch$wchar_a (CM_SOH, PTR);
;	  0676	    ch$wchar_a (.CNT <0, 8>, PTR);
;	  0677	    ch$wchar_a (.CNT <8, 8>, PTR);
;	  0678	    ch$wchar_a (.DB [S_R], PTR);
;	  0679	    ch$wchar_a (.DB [S_TM1], PTR);
;	  0680	    ch$wchar_a (1, PTR);
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  13
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (3)

;	  0681	
;	  0682	    if .DB [L_PROTOCOL] eql DP_DMC then SYNCHRONIZE (DB [D_TIM], .CCB);
;	  0683	
;	  0684	    if .DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_FIRST)] neqa 0
;	  0685	    then
;	  0686		CCB [C_PRM4] = .DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_LAST)];
;	  0687	
;	  0688	    $MCB_QUEUE_CCB (DB [L_PRE_TRANSMIT], .CCB);
;	  0689	    DB [S_MOTD] = .DB [S_MOTD] + 1;
;	  0690	    .PTR
;	  0691	    end;			!of routine BUILD_DATA_MESSAGE


						.GLOBL	$AC32, $IC32


						.SBTTL	BUILD.DATA.MESSAGE
000000	010546 				BUILD.DATA.MESSAGE:
						MOV	R5,-(SP)			;					0629
000002	024646 					CMP	-(SP),-(SP)
000004	010566  000002 				MOV	R5,2(SP)
000010	004767  000000V				JSR	PC,HEADER.CCB			;					0660
000014	010016 					MOV	R0,(SP)				; *,PTR
000016	001532 					BEQ	4$
000020	016600  000002 				MOV	2(SP),R0			;					0662
000024	042760  010000  000002 			BIC	#10000,2(R0)
000032	010001 					MOV	R0,R1				;					0663
000034	105261  000146 				INCB	146(R1)
000040	004767  000000V				JSR	PC,MESSAGE.LENGTH		;					0664
000044	010001 					MOV	R0,R1				; *,CNT
000046	012700  000070 				MOV	#70,R0				;					0666
000052	066600  000002 				ADD	2(SP),R0
000056	010002 					MOV	R0,R2
000060	016600  000002 				MOV	2(SP),R0
000064	126062  000073  000001 			CMPB	73(R0),1(R2)
000072	001020 					BNE	1$
000074	010003 					MOV	R0,R3				;					0669
000076	105263  000073 				INCB	73(R3)
000102	010005 					MOV	R0,R5				;					0670
000104	062705  000024 				ADD	#24,R5
000110	010500 					MOV	R5,R0
000112	004767  000000G				JSR	PC,$AC32
000116	016605  000002 				MOV	2(SP),R5			;					0671
000122	062705  000034 				ADD	#34,R5
000126	010500 					MOV	R5,R0
000130	004767  000000G				JSR	PC,$IC32
000134	105262  000001 			1$:	INCB	1(R2)				;					0674
000140	112776  000201  000000 			MOVB	#201,@0(SP)			; *,PTR					0675
000146	005216 					INC	(SP)				; PTR
000150	110176  000000 				MOVB	R1,@0(SP)			; CNT,PTR				0676
000154	005216 					INC	(SP)				; PTR
000156	010100 					MOV	R1,R0				; CNT,*					0677
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  14
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (3)

000160	000300 					SWAB	R0
000162	110076  000000 				MOVB	R0,@0(SP)			; *,PTR
000166	005216 					INC	(SP)				; PTR
000170	111276  000000 				MOVB	(R2),@0(SP)			; *,PTR					0678
000174	005216 					INC	(SP)				; PTR
000176	116276  000001  000000 			MOVB	1(R2),@0(SP)			; *,PTR					0679
000204	005216 					INC	(SP)				; PTR
000206	112776  000001  000000 			MOVB	#1,@0(SP)			; *,PTR					0680
000214	005216 					INC	(SP)				; PTR
000216	016600  000002 				MOV	2(SP),R0			;					0682
000222	126027  000010  000004 			CMPB	10(R0),#4
000230	001003 					BNE	2$
000232	010005 					MOV	R0,R5
000234	004767  000000V				JSR	PC,SYNCHRONIZE
000240	012700  000150 			2$:	MOV	#150,R0				;					0684
000244	066600  000002 				ADD	2(SP),R0
000250	010003 					MOV	R0,R3
000252	005713 					TST	(R3)
000254	001405 					BEQ	3$
000256	016600  000002 				MOV	2(SP),R0			;					0686
000262	016064  000152  000032 			MOV	152(R0),32(R4)			; *,*(CCB)
000270	004767  000000G			3$:	JSR	PC,$CMQIN			;					0688
000274	016601  000002 				MOV	2(SP),R1			;					0689
000300	105261  000076 				INCB	76(R1)
000304	012600 				4$:	MOV	(SP)+,R0			; PTR,*					0629
000306	005726 					TST	(SP)+
000310	012605 					MOV	(SP)+,R5
000312	000207 					RTS	PC

; Routine Size:  102 words,	Routine Base:  $CODE$ + 0356
; Maximum stack depth per invocation:  4 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  15
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (4)

;	  0692	routine BUILD_MAINTENANCE_MESSAGE
;	  0693	
;	  0694	!++
;	  0695	! FUNCTIONAL DESCRIPTION:
;	  0696	!
;	  0697	!
;	  0698	! FORMAL PARAMETERS:
;	  0699	!
;	  0700	       (DB : ref block field (D_FIELDS),
;	  0701		DCCB : ref block field (C_FIELDS))
;	  0702	!
;	  0703	! IMPLICIT INPUTS:
;	  0704	!
;	  0705	! IMPLICIT OUTPUTS:
;	  0706	!	None
;	  0707	!
;	  0708	! ROUTINE VALUE:
;	  0709	!
;	  0710		: DCP_DB_CCBR =
;	  0711	!
;	  0712	! SIDE EFFECTS:
;	  0713	!	None
;	  0714	!--
;	  0715	
;	  0716	    begin
;	  0717	
;	  0718	    local
;	  0719		CCB : ref block field (C_FIELDS),
;	  0720		CNT,
;	  0721		PTR;
;	  0722	
;	  0723	    if (PTR = HEADER_CCB (DB [D_TIM], .DCCB; CCB)) eqla 0 then return .PTR;
;	  0724	
;	  0725	    DB [SS_SEND_SELECT] = TRUE;
;	  0726	    DB [L_MESSAGES_AT_DRIVER] = .DB [L_MESSAGES_AT_DRIVER] + 1;
;	  0727	    CNT = MESSAGE_LENGTH (.CCB);
;	  0728	    ch$wchar_a (CM_DLE, PTR);
;	  0729	    ch$wchar_a (.CNT <0, 8>, PTR);
;	  0730	    ch$wchar_a (.CNT <8, 8>, PTR);
;	  0731	    ch$wchar_a (0, PTR);
;	  0732	    ch$wchar_a (0, PTR);
;	  0733	    ch$wchar_a (1, PTR);
;	  0734	    SYNCHRONIZE (DB [D_TIM], .CCB);
;	  0735	
;	  0736	    if .DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_FIRST)] neqa 0
;	  0737	    then
;	  0738		CCB [C_PRM4] = .DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_LAST)];
;	  0739	
;	  0740	    $MCB_QUEUE_CCB (DB [L_PRE_TRANSMIT], .CCB);
;	  0741	    DB [S_MOTD] = .DB [S_MOTD] + 1;
;	  0742	    .PTR
;	  0743	    end;			!of routine BUILD_MAINTENANCE_MESSAGE
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  16
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (4)



						.SBTTL	BUILD.MAINTENANCE.MESSAGE
000000	005746 				BUILD.MAINTENANCE.MESSAGE:
						TST	-(SP)				;					0692
000002	004767  000000V				JSR	PC,HEADER.CCB			;					0723
000006	010016 					MOV	R0,(SP)				; *,PTR
000010	001453 					BEQ	2$
000012	052765  020000  000002 			BIS	#20000,2(R5)			; *,*(DB)				0725
000020	105265  000146 				INCB	146(R5)				; *(DB)					0726
000024	004767  000000V				JSR	PC,MESSAGE.LENGTH		;					0727
000030	112776  000220  000000 			MOVB	#220,@0(SP)			; *,PTR					0728
000036	005216 					INC	(SP)				; PTR
000040	110076  000000 				MOVB	R0,@0(SP)			; CNT,PTR				0729
000044	005216 					INC	(SP)				; PTR
000046	010001 					MOV	R0,R1				; CNT,*					0730
000050	000301 					SWAB	R1
000052	110176  000000 				MOVB	R1,@0(SP)			; *,PTR
000056	005216 					INC	(SP)				; PTR
000060	105076  000000 				CLRB	@0(SP)				; PTR					0731
000064	005216 					INC	(SP)				; PTR
000066	105076  000000 				CLRB	@0(SP)				; PTR					0732
000072	005216 					INC	(SP)				; PTR
000074	112776  000001  000000 			MOVB	#1,@0(SP)			; *,PTR					0733
000102	005216 					INC	(SP)				; PTR
000104	004767  000000V				JSR	PC,SYNCHRONIZE			;					0734
000110	012703  000150 				MOV	#150,R3				;					0736
000114	060503 					ADD	R5,R3				; DB,*
000116	005713 					TST	(R3)
000120	001403 					BEQ	1$
000122	016564  000152  000032 			MOV	152(R5),32(R4)			; *(DB),*(CCB)				0738
000130	004767  000000G			1$:	JSR	PC,$CMQIN			;					0740
000134	105265  000076 				INCB	76(R5)				; *(DB)					0741
000140	012600 				2$:	MOV	(SP)+,R0			; PTR,*					0692
000142	000207 					RTS	PC

; Routine Size:  50 words,	Routine Base:  $CODE$ + 0672
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  17
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (5)

;	  0744	routine BUMP_8_BIT_COUNTER
;	  0745	
;	  0746	!++
;	  0747	! FUNCTIONAL DESCRIPTION:
;	  0748	!
;	  0749	!
;	  0750	! FORMAL PARAMETERS:
;	  0751	!
;	  0752	       (CTR : ref block)
;	  0753	!
;	  0754	! IMPLICIT INPUTS:
;	  0755	!
;	  0756	! IMPLICIT OUTPUTS:
;	  0757	!	None
;	  0758	!
;	  0759	! ROUTINE VALUE:
;	  0760	!
;	  0761		: DCP_CTR novalue =
;	  0762	!
;	  0763	! SIDE EFFECTS:
;	  0764	!	None
;	  0765	!--
;	  0766	
;	  0767	    begin
;	  0768	    CTR [0, 0, 8, 0] = .CTR [0, 0, 8, 0] + 1;
;	  0769	
;	  0770	    if .CTR [0, 0, 8, 0] eql 0
;	  0771	    then
;	  0772		CTR [0, 0, 8, 0] = .CTR [0, 0, 8, 0] - 1;
;	  0773	
;	  0774	    end;			!of routine BUMP_8_BIT_COUNTER


						.SBTTL	BUMP.8.BIT.COUNTER
000000	105210 				BUMP.8.BIT.COUNTER:
						INCB	(R0)				; CTR					0768
000002	001001 					BNE	1$				;					0770
000004	105310 					DECB	(R0)				; CTR					0772
000006	000207 				1$:	RTS	PC				;					0744

; Routine Size:  4 words,	Routine Base:  $CODE$ + 1036
; Maximum stack depth per invocation:  0 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  18
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (6)

;	  0775	routine CCPGET
;	  0776	
;	  0777	!++
;	  0778	! FUNCTIONAL DESCRIPTION:
;	  0779	!
;	  0780	!
;	  0781	! FORMAL PARAMETERS:
;	  0782	!
;	  0783	       (DB : ref block field (D_FIELDS),
;	  0784		CCB : ref block field (C_FIELDS))
;	  0785	!
;	  0786	! IMPLICIT INPUTS:
;	  0787	!
;	  0788	! IMPLICIT OUTPUTS:
;	  0789	!	None
;	  0790	!
;	  0791	! ROUTINE VALUE:
;	  0792	!
;	  0793		: MCB_DB_CCB novalue =
;	  0794	!
;	  0795	! SIDE EFFECTS:
;	  0796	!	None
;	  0797	!--
;	  0798	
;	  0799	    begin
;	  0800	    DB [K_REGISTER] = .CCB [C_PRM1];
;	  0801	    DB [D_REGISTER] = .CCB [C_PRM2];
;	  0802	    DB [K_VECTOR] = .CCB [C_PRM3];
;	  0803	    DB [K_PRIORITY] = .CCB [C_PRM4];
;	  0804	    $MCB_RETURN_CCB (.CCB);
;	  0805	    end;			!of routine CCPGET


						.GLOBL	$CCBRT


						.SBTTL	CCPGET
000000	016465  000024  000102 		CCPGET: MOV	24(R4),102(R5)			; *(CCB),*(DB)				0800
000006	016465  000026  000106 			MOV	26(R4),106(R5)			; *(CCB),*(DB)				0801
000014	016465  000030  000104 			MOV	30(R4),104(R5)			; *(CCB),*(DB)				0802
000022	116465  000032  000101 			MOVB	32(R4),101(R5)			; *(CCB),*(DB)				0803
000030	004767  000000G				JSR	PC,$CCBRT			;					0804
000034	000207 					RTS	PC				;					0775

; Routine Size:  15 words,	Routine Base:  $CODE$ + 1046
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  19
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (7)

;	  0806	routine CCPSET
;	  0807	
;	  0808	!++
;	  0809	! FUNCTIONAL DESCRIPTION:
;	  0810	!
;	  0811	!
;	  0812	! FORMAL PARAMETERS:
;	  0813	!
;	  0814	       (DB : ref block field (D_FIELDS),
;	  0815		CCB : ref block field (C_FIELDS))
;	  0816	!
;	  0817	! IMPLICIT INPUTS:
;	  0818	!
;	  0819	! IMPLICIT OUTPUTS:
;	  0820	!	None
;	  0821	!
;	  0822	! ROUTINE VALUE:
;	  0823	!
;	  0824		: MCB_DB_CCB novalue =
;	  0825	!
;	  0826	! SIDE EFFECTS:
;	  0827	!	None
;	  0828	!--
;	  0829	
;	  0830	    begin
;	  0831	
;	  0832	    external routine
;	  0833		$DDSTR : DDM_CCB novalue;
;	  0834	
;	  0835	    $DDSTR (.CCB);
;	  0836	    end;			!of routine CCPSET


						.GLOBL	$DDSTR


						.SBTTL	CCPSET
000000	004767  000000G			CCPSET: JSR	PC,$DDSTR			;					0835
000004	000207 					RTS	PC				;					0806

; Routine Size:  3 words,	Routine Base:  $CODE$ + 1104
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  20
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (8)

;	  0837	routine CCPSTP
;	  0838	
;	  0839	!++
;	  0840	! FUNCTIONAL DESCRIPTION:
;	  0841	!
;	  0842	!
;	  0843	! FORMAL PARAMETERS:
;	  0844	!
;	  0845	       (DB : ref block field (D_FIELDS),
;	  0846		CCB : ref block field (C_FIELDS))
;	  0847	!
;	  0848	! IMPLICIT INPUTS:
;	  0849	!
;	  0850	! IMPLICIT OUTPUTS:
;	  0851	!	None
;	  0852	!
;	  0853	! ROUTINE VALUE:
;	  0854	!
;	  0855		: MCB_DB_CCB novalue =
;	  0856	!
;	  0857	! SIDE EFFECTS:
;	  0858	!	None
;	  0859	!--
;	  0860	
;	  0861	    begin
;	  0862	    $MCB_RETURN_CCB (.CCB);
;	  0863	    DB [SS_DEVICE_BEING_SET] = FALSE;
;	P 0864	    FLUSH_QUEUE (DB [S_WAITING_FOR_ACK],
;	  0865		%quote SCHEDULE_TRANSMIT, DB [D_TIM], DLL$_ABORTED);
;	P 0866	    FLUSH_QUEUE (DB [S_WAITING_FOR_TRANSMIT],
;	  0867		%quote SCHEDULE_TRANSMIT, DB [D_TIM], DLL$_ABORTED);
;	  0868	    SET_DEVICE (DB [D_TIM]);
;	  0869	    end;			!of routine CCPSTP


						.GLOBL	$CMQRM


						.SBTTL	CCPSTP
000000	005746 				CCPSTP: TST	-(SP)				;					0837
000002	004767  000000G				JSR	PC,$CCBRT			;					0862
000006	042765  004000  000004 			BIC	#4000,4(R5)			; *,*(DB)				0863
000014	010516 					MOV	R5,(SP)				; DB,*					0865
000016	062716  000120 				ADD	#120,(SP)
000022	011603 				1$:	MOV	(SP),R3
000024	004767  000000G				JSR	PC,$CMQRM
000030	103405 					BCS	2$
000032	012703  100030 				MOV	#-77750,R3
000036	004767  000000V				JSR	PC,SCHEDULE.TRANSMIT
000042	000767 					BR	1$
000044	010516 				2$:	MOV	R5,(SP)				; DB,*					0867
000046	062716  000114 				ADD	#114,(SP)
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  21
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (8)

000052	011603 				3$:	MOV	(SP),R3
000054	004767  000000G				JSR	PC,$CMQRM
000060	103405 					BCS	4$
000062	012703  100030 				MOV	#-77750,R3
000066	004767  000000V				JSR	PC,SCHEDULE.TRANSMIT
000072	000767 					BR	3$
000074	004767  000000V			4$:	JSR	PC,SETDEV			;					0868
000100	005726 					TST	(SP)+				;					0837
000102	000207 					RTS	PC

; Routine Size:  34 words,	Routine Base:  $CODE$ + 1112
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  22
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (9)

;	  0870	routine CCPSTR
;	  0871	
;	  0872	!++
;	  0873	! FUNCTIONAL DESCRIPTION:
;	  0874	!
;	  0875	!
;	  0876	! FORMAL PARAMETERS:
;	  0877	!
;	  0878	       (DB : ref block field (D_FIELDS),
;	  0879		CCB : ref block field (C_FIELDS))
;	  0880	!
;	  0881	! IMPLICIT INPUTS:
;	  0882	!
;	  0883	! IMPLICIT OUTPUTS:
;	  0884	!	None
;	  0885	!
;	  0886	! ROUTINE VALUE:
;	  0887	!
;	  0888		: MCB_DB_CCB novalue =
;	  0889	!
;	  0890	! SIDE EFFECTS:
;	  0891	!	None
;	  0892	!--
;	  0893	
;	  0894	    begin
;	  0895	    $MCB_RETURN_CCB (.CCB);
;	  0896	    DB [SS_DEVICE_BEING_SET] = FALSE;
;	  0897	    DB [LS_STATION_ENABLED] = TRUE;
;	  0898	    DB [SS_DEVICE_RUNNING] = TRUE;
;	  0899	    SET_DEVICE (DB [D_TIM]);
;	  0900	    end;			!of routine CCPSTR


						.SBTTL	CCPSTR
000000	004767  000000G			CCPSTR: JSR	PC,$CCBRT			;					0895
000004	042765  004000  000004 			BIC	#4000,4(R5)			; *,*(DB)				0896
000012	052715  100000 				BIS	#100000,(R5)			; *,DB					0897
000016	052765  100000  000004 			BIS	#100000,4(R5)			; *,*(DB)				0898
000024	004767  000000V				JSR	PC,SETDEV			;					0899
000030	000207 					RTS	PC				;					0870

; Routine Size:  13 words,	Routine Base:  $CODE$ + 1216
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  23
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (10)

;	  0901	routine CHANGE_PROTOCOL_STATE
;	  0902	
;	  0903	!++
;	  0904	! FUNCTIONAL DESCRIPTION:
;	  0905	!
;	  0906	!
;	  0907	! FORMAL PARAMETERS:
;	  0908	!
;	  0909	       (DB : ref block field (D_FIELDS),
;	  0910		STATE,
;	  0911		REASON)
;	  0912	!
;	  0913	! IMPLICIT INPUTS:
;	  0914	!
;	  0915	! IMPLICIT OUTPUTS:
;	  0916	!	None
;	  0917	!
;	  0918	! ROUTINE VALUE:
;	  0919	!
;	  0920		: DCP_DB novalue =
;	  0921	!
;	  0922	! SIDE EFFECTS:
;	  0923	!	None
;	  0924	!--
;	  0925	
;	  0926	    begin
;	  0927	
;	  0928	    if .DB [S_PROTOCOL_STATE] eql .STATE then return;
;	  0929	
;	P 0930	    $NM_DLL_EVENT (.REASON, .DB [S_CIRCUIT_ENTITY],
;	P 0931		PARAMETER_C_1 (0, DB [S_PROTOCOL_STATE]),
;	P 0932		DB [S_PROTOCOL_STATE] = .STATE,
;	  0933		PARAMETER_C_1 (1, DB [S_PROTOCOL_STATE]));
;	  0934	    SEND_STATE (DB [D_TIM]);
;	  0935	    end;			!of routine CHANGE_PROTOCOL_STATE


						.GLOBL	$NLBEG, $DPC1, $NLEND


						.SBTTL	CHANGE.PROTOCOL.STATE
000000	012701  000002 			CHANGE.PROTOCOL.STATE:
						MOV	#2,R1				;					0928
000004	060501 					ADD	R5,R1				; DB,*
000006	111100 					MOVB	(R1),R0
000010	020066  000004 				CMP	R0,4(SP)			; *,STATE
000014	001430 					BEQ	1$
000016	004767  000000G				JSR	PC,$NLBEG			;					0933
000022	005046 					CLR	-(SP)
000024	111100 					MOVB	(R1),R0
000026	004767  000000G				JSR	PC,$DPC1
000032	116611  000006 				MOVB	6(SP),(R1)			; STATE,*
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  24
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (10)

000036	012716  000001 				MOV	#1,(SP)
000042	111100 					MOVB	(R1),R0
000044	004767  000000G				JSR	PC,$DPC1
000050	016600  000004 				MOV	4(SP),R0			; REASON,*
000054	062700  000500 				ADD	#500,R0
000060	016501  000126 				MOV	126(R5),R1			; *(DB),*
000064	004767  000000G				JSR	PC,$NLEND
000070	004767  000000V				JSR	PC,SEND.STATE			;					0934
000074	005726 					TST	(SP)+				;					0926
000076	000207 				1$:	RTS	PC				;					0901

; Routine Size:  32 words,	Routine Base:  $CODE$ + 1250
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  25
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (11)

;	  0936	routine CKACK
;	  0937	
;	  0938	!++
;	  0939	! FUNCTIONAL DESCRIPTION:
;	  0940	!
;	  0941	!
;	  0942	! FORMAL PARAMETERS:
;	  0943	!
;	  0944	       (DB : ref block field (D_FIELDS))
;	  0945	!
;	  0946	! IMPLICIT INPUTS:
;	  0947	!
;	  0948	! IMPLICIT OUTPUTS:
;	  0949	!	None
;	  0950	!
;	  0951	! ROUTINE VALUE:
;	  0952	!
;	  0953		: DCP_DB =
;	  0954	!
;	  0955	! SIDE EFFECTS:
;	  0956	!	None
;	  0957	!--
;	  0958	
;	  0959	    begin
;	  0960	
;	  0961	    field
;	  0962		NUM = [0, 0, 8, 0];
;	  0963	
;	  0964	    bind
;	  0965		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  0966	
;	  0967	    local
;	  0968		LAST_ACK : block [1] field (NUM),
;	  0969		NUM_ACKED : block [1] field (NUM),
;	  0970		NUM_SENT : block [1] field (NUM);
;	  0971	
;	  0972	    LAST_ACK = .DB [$SIGNED (S_A)];
;	  0973	    NUM_ACKED = .HEADER [$SIGNED (H_RESP)];
;	  0974	
;	  0975	    if .LAST_ACK [NUM] eql .NUM_ACKED [NUM]
;	  0976	    then
;	  0977		begin
;	  0978	
;	  0979		if .LAST_ACK [NUM] eql .DB [S_N] then DB [S_TRANSMIT_THRESHOLD] = 7;
;	  0980	
;	  0981		return TRUE
;	  0982		end;
;	  0983	
;	  0984	    NUM_ACKED = .NUM_ACKED - .LAST_ACK;
;	  0985	    NUM_SENT = .DB [$SIGNED (S_N)];
;	  0986	    NUM_SENT = .NUM_SENT - .LAST_ACK;
;	  0987	
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  26
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (11)

;	  0988	    if .NUM_SENT [NUM] lssu .NUM_ACKED [NUM]
;	  0989	    then
;	  0990		return FALSE;
;	  0991	
;	  0992	    DB [S_A] = .HEADER [H_RESP];
;	  0993	    RETURN_ACKED_MESSAGES (DB [D_TIM]);
;	  0994	    return TRUE
;	  0995	    end;			!of routine CKACK


						.SBTTL	CKACK
000000	116501  000074 			CKACK:	MOVB	74(R5),R1			; *(DB),LAST.ACK			0972
000004	116502  000157 				MOVB	157(R5),R2			; *(DB),NUM.ACKED			0973
000010	120102 					CMPB	R1,R2				; LAST.ACK,NUM.ACKED			0975
000012	001007 					BNE	1$
000014	120165  000073 				CMPB	R1,73(R5)			; LAST.ACK,*(DB)			0979
000020	001017 					BNE	2$
000022	112765  000007  000016 			MOVB	#7,16(R5)			; *,*(DB)
000030	000413 					BR	2$				;					0977
000032	160102 				1$:	SUB	R1,R2				; LAST.ACK,NUM.ACKED			0984
000034	116500  000073 				MOVB	73(R5),R0			; *(DB),NUM.SENT			0985
000040	160100 					SUB	R1,R0				; LAST.ACK,NUM.SENT			0986
000042	120002 					CMPB	R0,R2				; NUM.SENT,NUM.ACKED			0988
000044	103410 					BLO	3$				;					0990
000046	116565  000157  000074 			MOVB	157(R5),74(R5)			; *(DB),*(DB)				0992
000054	004767  000000V				JSR	PC,RETURN.ACKED.MESSAGES	;					0993
000060	012700  000001 			2$:	MOV	#1,R0				;					0959
000064	000207 					RTS	PC
000066	005000 				3$:	CLR	R0				;					0936
000070	000207 					RTS	PC

; Routine Size:  29 words,	Routine Base:  $CODE$ + 1350
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  27
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (12)

;	  0996	routine CKREP
;	  0997	
;	  0998	!++
;	  0999	! FUNCTIONAL DESCRIPTION:
;	  1000	!
;	  1001	!
;	  1002	! FORMAL PARAMETERS:
;	  1003	!
;	  1004	       (DB : ref block field (D_FIELDS))
;	  1005	!
;	  1006	! IMPLICIT INPUTS:
;	  1007	!
;	  1008	! IMPLICIT OUTPUTS:
;	  1009	!	None
;	  1010	!
;	  1011	! ROUTINE VALUE:
;	  1012	!
;	  1013		: DCP_DB novalue =
;	  1014	!
;	  1015	! SIDE EFFECTS:
;	  1016	!	None
;	  1017	!--
;	  1018	
;	  1019	    begin
;	  1020	    DB [SS_START_REP_TIMER] = FALSE;
;	  1021	    DB [SS_TIMING_REP] = FALSE;
;	  1022	
;	  1023	    if .DB [L_DUPLEX] eql DL_FULL then DB [D_TIM] = 0;
;	  1024	
;	  1025	    if
;	  1026		begin
;	  1027	
;	  1028		field
;	  1029		    NUM = [0, 0, 8, 0];
;	  1030	
;	  1031		local
;	  1032		    NUM_NOT_ACKED : block [1] field (NUM),
;	  1033		    NUM_NOT_TRANSMITTED : block [1] field (NUM);
;	  1034	
;	  1035		NUM_NOT_TRANSMITTED = .DB [$SIGNED (S_N)];
;	  1036		NUM_NOT_ACKED = .NUM_NOT_TRANSMITTED;
;	  1037		NUM_NOT_TRANSMITTED = .NUM_NOT_TRANSMITTED - .DB [$SIGNED (S_X)];
;	  1038		NUM_NOT_ACKED = .NUM_NOT_ACKED - .DB [$SIGNED (S_A)];
;	  1039		.NUM_NOT_ACKED [NUM] gtru .NUM_NOT_TRANSMITTED [NUM]
;	  1040		end
;	  1041	    then
;	  1042	
;	  1043		if .DB [L_DUPLEX] eql DL_FULL
;	  1044		then
;	  1045		    begin
;	  1046		    DB [SS_TIMING_REP] = TRUE;
;	  1047		    DB [D_TIM] = .DB [L_RETRANSMIT_TIMER];
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  28
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (12)

;	  1048		    end
;	  1049		else
;	  1050		    DB [SS_START_REP_TIMER] = TRUE;
;	  1051	
;	  1052	    end;			!of routine CKREP


						.SBTTL	CKREP
000000	042715  005000 			CKREP:	BIC	#5000,(R5)			; *,DB					1021
000004	105765  000012 				TSTB	12(R5)				; *(DB)					1023
000010	001001 					BNE	1$
000012	105015 					CLRB	(R5)				; DB
000014	116500  000073 			1$:	MOVB	73(R5),R0			; *(DB),NUM.NOT.TRANSMI			1035
000020	010001 					MOV	R0,R1				; NUM.NOT.TRANSMI,NUM.NOT.ACKED		1036
000022	116502  000072 				MOVB	72(R5),R2			; *(DB),*				1037
000026	160200 					SUB	R2,R0				; *,NUM.NOT.TRANSMI
000030	116502  000074 				MOVB	74(R5),R2			; *(DB),*				1038
000034	160201 					SUB	R2,R1				; *,NUM.NOT.ACKED
000036	120100 					CMPB	R1,R0				; NUM.NOT.ACKED,NUM.NOT.TRANSMI		1039
000040	101412 					BLOS	3$
000042	105765  000012 				TSTB	12(R5)				; *(DB)					1043
000046	001005 					BNE	2$
000050	052715  004000 				BIS	#4000,(R5)			; *,DB					1046
000054	116515  000112 				MOVB	112(R5),(R5)			; *(DB),DB				1047
000060	000207 					RTS	PC				;					1043
000062	052715  001000 			2$:	BIS	#1000,(R5)			; *,DB					1050
000066	000207 				3$:	RTS	PC				;					0996

; Routine Size:  28 words,	Routine Base:  $CODE$ + 1442
; Maximum stack depth per invocation:  0 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  29
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (13)

;	  1053	routine CTLSTP
;	  1054	
;	  1055	!++
;	  1056	! FUNCTIONAL DESCRIPTION:
;	  1057	!
;	  1058	!
;	  1059	! FORMAL PARAMETERS:
;	  1060	!
;	  1061	       (DB : ref block field (D_FIELDS),
;	  1062		CCB : ref block field (C_FIELDS))
;	  1063	!
;	  1064	! IMPLICIT INPUTS:
;	  1065	!
;	  1066	! IMPLICIT OUTPUTS:
;	  1067	!	None
;	  1068	!
;	  1069	! ROUTINE VALUE:
;	  1070	!
;	  1071		: MCB_DB_CCB novalue =
;	  1072	!
;	  1073	! SIDE EFFECTS:
;	  1074	!	None
;	  1075	!--
;	  1076	
;	  1077	    begin
;	  1078	    DB [SS_NOTIFY_STATE] = FALSE;
;	  1079	    DB [S_TRANSIENT_ERROR] = 0;
;	  1080	    DB [S_PERSISTENT_ERROR] = 0;
;	  1081	    DB [S_USER_HANDLE] = 0;
;	  1082	    CCB [C_FNC] = FC_CCP;
;	  1083	    CCB [C_STS] = DLL$_SUCCESS;
;	  1084	
;	  1085	    if .DB [D_USER_BUFFERS] eql 0
;	  1086	    then
;	  1087		$MCB_SCHEDULE_CCB (.CCB)
;	  1088	    else
;	  1089		DB [S_CONTROL_CCB] = .CCB;
;	  1090	
;	  1091	    end;			!of routine CTLSTP


						.GLOBL	$SCHED


						.SBTTL	CTLSTP
000000	010400 				CTLSTP: MOV	R4,R0				; *,CCB					1053
000002	042765  001000  000004 			BIC	#1000,4(R5)			; *,*(DB)				1078
000010	005065  000132 				CLR	132(R5)				; *(DB)					1079
000014	005065  000134 				CLR	134(R5)				; *(DB)					1080
000020	005065  000130 				CLR	130(R5)				; *(DB)					1081
000024	112760  000022  000012 			MOVB	#22,12(R0)			; *,*(CCB)				1082
000032	012760  100001  000014 			MOV	#-77777,14(R0)			; *,*(CCB)				1083
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  30
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (13)

000040	005765  000136 				TST	136(R5)				; *(DB)					1085
000044	001003 					BNE	1$
000046	004767  000000G				JSR	PC,$SCHED			;					1087
000052	000207 					RTS	PC				;					1085
000054	010065  000124 			1$:	MOV	R0,124(R5)			; CCB,*(DB)				1089
000060	000207 					RTS	PC				;					1053

; Routine Size:  25 words,	Routine Base:  $CODE$ + 1532
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  31
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (14)

;	  1092	routine CTLSTR
;	  1093	
;	  1094	!++
;	  1095	! FUNCTIONAL DESCRIPTION:
;	  1096	!
;	  1097	!
;	  1098	! FORMAL PARAMETERS:
;	  1099	!
;	  1100	       (DB : ref block field (D_FIELDS),
;	  1101		CCB : ref block field (C_FIELDS))
;	  1102	!
;	  1103	! IMPLICIT INPUTS:
;	  1104	!
;	  1105	! IMPLICIT OUTPUTS:
;	  1106	!	None
;	  1107	!
;	  1108	! ROUTINE VALUE:
;	  1109	!
;	  1110		: MCB_DB_CCB novalue =
;	  1111	!
;	  1112	! SIDE EFFECTS:
;	  1113	!	None
;	  1114	!--
;	  1115	
;	  1116	    begin
;	  1117	
;	  1118	    bind
;	P 1119		STATUS = TABLE$ (0, 0,
;	P 1120		    (SS_HALTED^1, DLL$_STATE_OFF),
;	P 1121		    (SS_ISTRT^1, DLL$_STATE_SYNCHRONIZING),
;	P 1122		    (SS_ASTRT^1, DLL$_STATE_SYNCHRONIZING),
;	P 1123		    (SS_RUNNING^1, DLL$_STATE_RUNNING),
;	  1124		    (SS_MAINTENANCE^1, DLL$_STATE_MAINTENANCE)) : vector;
;	  1125	
;	  1126	    DB [S_USER_HANDLE] = .CCB [C_HANDLE];
;	  1127	
;	  1128	    if .CCB [C_PRM1] eql 0
;	  1129	    then
;	  1130		CCB [C_PRM1] = .DB [S_CIRCUIT_COST];
;	  1131	
;	  1132	    CCB [C_STS] = .STATUS [.DB [S_PROTOCOL_STATE]];
;	  1133	    CCB [C_FNC] = FC_CCP;
;	  1134	    $MCB_SCHEDULE_CCB (.CCB);
;	  1135	    end;			!of routine CTLSTR



000024						.PSECT	$PLIT$,  RO ,  D  
000024	100043 				P.AAB:	.WORD	-77735
000026	100053 					.WORD	-77725
000030	100053 					.WORD	-77725
000032	100063 					.WORD	-77715
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  32
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (14)

000034	100073 					.WORD	-77705


	000024'				STATUS=		    P.AAB


						.SBTTL	CTLSTR
001614						.PSECT	$CODE$,  RO 

000000	016465  000010  000130 		CTLSTR: MOV	10(R4),130(R5)			; *(CCB),*(DB)				1126
000006	012700  000024 				MOV	#24,R0				;					1128
000012	060400 					ADD	R4,R0				; CCB,*
000014	005710 					TST	(R0)
000016	001002 					BNE	1$
000020	016510  000140 				MOV	140(R5),(R0)			; *(DB),*				1130
000024	116505  000002 			1$:	MOVB	2(R5),R5			; *(DB),*				1132
000030	006305 					ASL	R5
000032	016564  000024' 000014 			MOV	STATUS(R5),14(R4)		; *,*(CCB)
000040	112764  000022  000012 			MOVB	#22,12(R4)			; *,*(CCB)				1133
000046	004767  000000G				JSR	PC,$SCHED			;					1134
000052	000207 					RTS	PC				;					1092

; Routine Size:  22 words,	Routine Base:  $CODE$ + 1614
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  33
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (15)

;	  1136	routine CURRENT_STATUS (DB) : LINKAGE_DB =
;	  1137	
;	  1138	!++
;	  1139	! FUNCTIONAL DESCRIPTION:
;	  1140	!
;	  1141	!
;	  1142	! FORMAL PARAMETERS:
;	  1143	!	DB = address of DCP data base.
;	  1144	!
;	  1145	! IMPLICIT INPUTS:
;	  1146	!	None
;	  1147	!
;	  1148	! IMPLICIT OUTPUTS:
;	  1149	!	None
;	  1150	!
;	  1151	! ROUTINE VALUE:
;	  1152	! COMPLETION CODES:
;	  1153	!	None
;	  1154	!
;	  1155	! SIDE EFFECTS:
;	  1156	!	None
;	  1157	!--
;	  1158	
;	  1159	    begin
;	  1160	    GET_DCP_DATA_BASE (DB)
;	  1161	
;	  1162	    literal
;	  1163		DLL_OFF = 0,
;	  1164		DLL_SYNCHRONIZING = 1,
;	  1165		DLL_RUNNING = 2,
;	  1166		DLL_MAINTENANCE = 3;
;	  1167	
;	  1168	    bind
;	P 1169		STATUS = TABLE$ (0, 0,
;	P 1170		    (SS_HALTED^1, DLL_OFF),
;	P 1171		    (SS_ISTRT^1, DLL_SYNCHRONIZING),
;	P 1172		    (SS_ASTRT^1, DLL_SYNCHRONIZING),
;	P 1173		    (SS_RUNNING^1, DLL_RUNNING),
;	  1174		    (SS_MAINTENANCE^1, DLL_MAINTENANCE)) : vector,
;	P 1175		DLL_STATUS = TABLE$ (0, 0,
;	P 1176		    (DLL_OFF^1, DLL$_STATE_OFF),
;	P 1177		    (DLL_SYNCHRONIZING^1, DLL$_STATE_SYNCHRONIZING),
;	P 1178		    (DLL_RUNNING^1, DLL$_STATE_RUNNING),
;	  1179		    (DLL_MAINTENANCE^1, DLL$_STATE_MAINTENANCE)) : vector;
;	  1180	
;	  1181	    if .DB [SS_NOTIFY_OFF]
;	  1182	    then
;	  1183		begin
;	  1184		DB [SS_NOTIFY_OFF] = FALSE;
;	  1185	
;	  1186		if .DB [D_REPORTED_STATE] eql DLL_OFF
;	  1187		then
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  34
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (15)

;	  1188		    DB [SS_NOTIFY_STATE] = FALSE;
;	  1189	
;	  1190		return .DLL_STATUS [DB [D_REPORTED_STATE] = DLL_OFF];
;	  1191		end;
;	  1192	
;	  1193	    DB [SS_NOTIFY_STATE] = FALSE;
;	  1194	    .DLL_STATUS [DB [D_REPORTED_STATE] = .STATUS [.DB [S_PROTOCOL_STATE]]]
;	  1195	    end;			!of routine CURRENT_STATUS



000036						.PSECT	$PLIT$,  RO ,  D  
000036	000000 				P.AAC:	.WORD	0
000040	000001 					.WORD	1
000042	000001 					.WORD	1
000044	000002 					.WORD	2
000046	000003 					.WORD	3
000050	100043 				P.AAD:	.WORD	-77735
000052	100053 					.WORD	-77725
000054	100063 					.WORD	-77715
000056	100073 					.WORD	-77705


	000036'				STATUS=		    P.AAC
	000050'				DLL.STATUS=	    P.AAD


						.SBTTL	CURRENT.STATUS
001670						.PSECT	$CODE$,  RO 

000000	010546 				CURRENT.STATUS:
						MOV	R5,-(SP)			;					1136
000002	012700  000004 				MOV	#4,R0				;					1181
000006	060500 					ADD	R5,R0				; DB,*
000010	032710  000400 				BIT	#400,(R0)
000014	001412 					BEQ	2$
000016	042710  000400 				BIC	#400,(R0)			;					1184
000022	105710 					TSTB	(R0)				;					1186
000024	001002 					BNE	1$
000026	042710  001000 				BIC	#1000,(R0)			;					1188
000032	105010 				1$:	CLRB	(R0)				;					1190
000034	016700  000050'				MOV	DLL.STATUS,R0			;					1183
000040	000413 					BR	3$
000042	042710  001000 			2$:	BIC	#1000,(R0)			;					1193
000046	116505  000002 				MOVB	2(R5),R5			; *(DB),*				1194
000052	006305 					ASL	R5
000054	016505  000036'				MOV	STATUS(R5),R5
000060	110510 					MOVB	R5,(R0)
000062	006305 					ASL	R5
000064	016500  000050'				MOV	DLL.STATUS(R5),R0		;					1136
000070	012605 				3$:	MOV	(SP)+,R5
000072	000207 					RTS	PC
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  35
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (15)


; Routine Size:  30 words,	Routine Base:  $CODE$ + 1670
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  36
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (16)

;	  1196	routine DCPCCP
;	  1197	
;	  1198	!++
;	  1199	! FUNCTIONAL DESCRIPTION:
;	  1200	!
;	  1201	!
;	  1202	! FORMAL PARAMETERS:
;	  1203	!
;	  1204	       (DB : ref block field (D_FIELDS),
;	  1205		CCB : ref block field (C_FIELDS),
;	  1206		MODIFIER)
;	  1207	!
;	  1208	! IMPLICIT INPUTS:
;	  1209	!
;	  1210	! IMPLICIT OUTPUTS:
;	  1211	!	None
;	  1212	!
;	  1213	! ROUTINE VALUE:
;	  1214	!
;	  1215		: MCB_DB_CCB_MOD novalue =
;	  1216	!
;	  1217	! SIDE EFFECTS:
;	  1218	!	None
;	  1219	!--
;	  1220	
;	  1221	    begin
;	P 1222	    DISPATCH$ (
;	P 1223		.MODIFIER,
;	P 1224		TABLE$ ($DSPCR, FD_TIM,
;	P 1225		    (FM_GET, CCPGET),
;	P 1226		    (FM_SET, CCPSET),
;	P 1227		    (FM_STR, CCPSTR),
;	P 1228		    (FM_STP, CCPSTP)),
;	P 1229		(DB [D_TIM], .CCB),
;	  1230		MCB_DB_CCB);
;	  1231	    end;			!of routine DCPCCP



000060						.PSECT	$PLIT$,  RO ,  D  
000060	000000G				P.AAE:	.WORD	$DSPCR
000062	001216'					.WORD	CCPSTR
000064	001112'					.WORD	CCPSTP
000066	000000G					.WORD	$DSPCR
000070	000000G					.WORD	$DSPCR
000072	001104'					.WORD	CCPSET
000074	001046'					.WORD	CCPGET


						.SBTTL	DCPCCP
001764						.PSECT	$CODE$,  RO 
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  37
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (16)

000000	004773  000060'			DCPCCP: JSR	PC,@P.AAE(R3)			; *,*(MODIFIER)				1230
000004	000207 					RTS	PC				;					1196

; Routine Size:  3 words,	Routine Base:  $CODE$ + 1764
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  38
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (17)

;	  1232	routine DCPCTL
;	  1233	
;	  1234	!++
;	  1235	! FUNCTIONAL DESCRIPTION:
;	  1236	!
;	  1237	!
;	  1238	! FORMAL PARAMETERS:
;	  1239	!
;	  1240	       (DB : ref block field (D_FIELDS),
;	  1241		CCB : ref block field (C_FIELDS),
;	  1242		MODIFIER)
;	  1243	!
;	  1244	! IMPLICIT INPUTS:
;	  1245	!
;	  1246	! IMPLICIT OUTPUTS:
;	  1247	!	None
;	  1248	!
;	  1249	! ROUTINE VALUE:
;	  1250	!
;	  1251		: MCB_DB_CCB_MOD novalue =
;	  1252	!
;	  1253	! SIDE EFFECTS:
;	  1254	!	None
;	  1255	!--
;	  1256	
;	  1257	    begin
;	P 1258	    DISPATCH$ (
;	P 1259		.MODIFIER,
;	P 1260		TABLE$ ($DSPCR, 0,
;	P 1261		    (FM_NM, DCPNM),
;	P 1262		    (FM_STR, CTLSTR),
;	P 1263		    (FM_STP, CTLSTP)),
;	P 1264		(DB [D_TIM], .CCB),
;	  1265		MCB_DB_CCB);
;	  1266	    end;			!of routine DCPCTL



000076						.PSECT	$PLIT$,  RO ,  D  
000076	000000G				P.AAF:	.WORD	$DSPCR
000100	001614'					.WORD	CTLSTR
000102	001532'					.WORD	CTLSTP
000104	000000G					.WORD	DCPNM


						.SBTTL	DCPCTL
001772						.PSECT	$CODE$,  RO 

000000	004773  000076'			DCPCTL: JSR	PC,@P.AAF(R3)			; *,*(MODIFIER)				1265
000004	000207 					RTS	PC				;					1232

; Routine Size:  3 words,	Routine Base:  $CODE$ + 1772
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  39
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (17)

; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  40
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (18)

;	  1267	routine DCPKCP
;	  1268	
;	  1269	!++
;	  1270	! FUNCTIONAL DESCRIPTION:
;	  1271	!
;	  1272	!
;	  1273	! FORMAL PARAMETERS:
;	  1274	!
;	  1275	       (DB : ref block field (D_FIELDS),
;	  1276		CCB : ref block field (C_FIELDS))
;	  1277	!
;	  1278	! IMPLICIT INPUTS:
;	  1279	!
;	  1280	! IMPLICIT OUTPUTS:
;	  1281	!	None
;	  1282	!
;	  1283	! ROUTINE VALUE:
;	  1284	!
;	  1285		: MCB_DB_CCB novalue =
;	  1286	!
;	  1287	! SIDE EFFECTS:
;	  1288	!	None
;	  1289	!--
;	  1290	
;	  1291	    begin
;	  1292	    $MCB_RETURN_CCB (.CCB);
;	  1293	    DB [LS_RESYNCH_IN_PROGRESS] = FALSE;
;	  1294	    end;			!of routine DCPKCP


						.SBTTL	DCPKCP
000000	004767  000000G			DCPKCP: JSR	PC,$CCBRT			;					1292
000004	042715  000400 				BIC	#400,(R5)			; *,DB					1293
000010	000207 					RTS	PC				;					1267

; Routine Size:  5 words,	Routine Base:  $CODE$ + 2000
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  41
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (19)

;	  1295	routine DCPRCE
;	  1296	
;	  1297	!++
;	  1298	! FUNCTIONAL DESCRIPTION:
;	  1299	!
;	  1300	!
;	  1301	! FORMAL PARAMETERS:
;	  1302	!
;	  1303	       (DB : ref block field (D_FIELDS),
;	  1304		CCB : ref block field (C_FIELDS))
;	  1305	!
;	  1306	! IMPLICIT INPUTS:
;	  1307	!
;	  1308	! IMPLICIT OUTPUTS:
;	  1309	!	None
;	  1310	!
;	  1311	! ROUTINE VALUE:
;	  1312	!
;	  1313		: MCB_DB_CCB novalue =
;	  1314	!
;	  1315	! SIDE EFFECTS:
;	  1316	!	None
;	  1317	!--
;	  1318	
;	  1319	    begin
;	  1320	    STARCE (DB [D_TIM], .CCB);
;	  1321	    DB [D_USER_BUFFERS] = .DB [D_USER_BUFFERS] - 1;
;	  1322	
;	  1323	    if .DB [D_USER_BUFFERS] neq 0 then return;
;	  1324	
;	  1325	    if .DB [S_CONTROL_CCB] neqa 0
;	  1326	    then
;	  1327		begin
;	  1328		$MCB_SCHEDULE_CCB (.DB [S_CONTROL_CCB]);
;	  1329		DB [S_CONTROL_CCB] = 0;
;	  1330		end;
;	  1331	
;	  1332	    end;			!of routine DCPRCE


						.SBTTL	DCPRCE
000000	004767  000000V			DCPRCE: JSR	PC,STARCE			;					1320
000004	005365  000136 				DEC	136(R5)				; *(DB)					1321
000010	001011 					BNE	1$				;					1323
000012	012700  000124 				MOV	#124,R0				;					1325
000016	060500 					ADD	R5,R0				; DB,*
000020	005710 					TST	(R0)
000022	001404 					BEQ	1$
000024	011004 					MOV	(R0),R4				;					1328
000026	004767  000000G				JSR	PC,$SCHED
000032	005010 					CLR	(R0)				;					1329
000034	000207 				1$:	RTS	PC				;					1295
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  42
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (19)


; Routine Size:  15 words,	Routine Base:  $CODE$ + 2012
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  43
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (20)

;	  1333	routine DCPRCP
;	  1334	
;	  1335	!++
;	  1336	! FUNCTIONAL DESCRIPTION:
;	  1337	!
;	  1338	!
;	  1339	! FORMAL PARAMETERS:
;	  1340	!
;	  1341	       (DB : ref block field (D_FIELDS),
;	  1342		CCB : ref block field (C_FIELDS))
;	  1343	!
;	  1344	! IMPLICIT INPUTS:
;	  1345	!
;	  1346	! IMPLICIT OUTPUTS:
;	  1347	!	None
;	  1348	!
;	  1349	! ROUTINE VALUE:
;	  1350	!
;	  1351		: MCB_DB_CCB novalue =
;	  1352	!
;	  1353	! SIDE EFFECTS:
;	  1354	!	None
;	  1355	!--
;	  1356	
;	  1357	    begin
;	  1358	
;	  1359	    bind
;	  1360		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  1361	
;	  1362	    !
;	  1363	    ! Copy the header and adjust the buffer pointer
;	  1364	    !
;	  1365	    begin
;	  1366	
;	  1367	    map
;	  1368		HEADER : vector [H_LENGTH];
;	  1369	
;	  1370	    local
;	  1371		HDR_0, HDR_1, HDR_2;
;	  1372	
;	  1373	    begin
;	  1374	
;	  1375	    local
;	  1376		SAVE_MAP;
;	  1377	
;	  1378	    SMAP$ (SAVE_MAP);
;	  1379	    MAP$ (.CCB [C_BIAS]);
;	  1380	    begin
;	  1381	
;	  1382	    local
;	  1383		PTR : ref vector;
;	  1384	
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  44
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (20)

;	  1385	    PTR = .CCB [C_ADDR];
;	  1386	    HDR_0 = .PTR [0];
;	  1387	    HDR_1 = .PTR [1];
;	  1388	    HDR_2 = .PTR [2];
;	  1389	    CCB [C_ADDR] = PTR = PTR [3];
;	  1390	    CCB [C_CNT] = .CCB [C_CNT] - H_LENGTH*%upval;
;	  1391	    end;
;	  1392	    MAP$ (.SAVE_MAP);
;	  1393	    end;
;	  1394	    begin
;	  1395	
;	  1396	    local
;	  1397		PTR : ref vector;
;	  1398	
;	  1399	    PTR = HEADER [0];
;	  1400	    PTR [0] = .HDR_0;
;	  1401	    PTR [1] = .HDR_1;
;	  1402	    PTR [2] = .HDR_2;
;	  1403	    PTR = PTR [2]; %(force auto-increment)%
;	  1404	    end;
;	  1405	    end;
;	  1406	    !
;	  1407	    ! Toss if we are re-synchronizing or halted
;	  1408	    !
;	  1409	    if .DB [LS_RESYNCH_IN_PROGRESS] or (.DB [S_PROTOCOL_STATE] eql SS_HALTED)
;	  1410	    then
;	  1411		begin
;	  1412		STARCE (DB [D_TIM], .CCB);
;	  1413		return;
;	  1414		end;
;	  1415	
;	  1416	    if (.CCB [C_STS] geq 0) or (.CCB [C_STS] eql CE_DCR)
;	  1417	    then
;	  1418		begin
;	  1419	
;	  1420		selectone .HEADER [H_IDENTIFIER] of
;	  1421		    set
;	  1422		    [CM_ENQ] : PROCESS_CONTROL_MESSAGE (DB [D_TIM], .CCB);
;	  1423		    [CM_SOH] : PROCESS_DATA_MESSAGE (DB [D_TIM], .CCB);
;	  1424		    [CM_DLE] : PROCESS_MAINTENANCE_MESSAGE (DB [D_TIM], .CCB);
;	  1425		    [otherwise] :
;	  1426			begin
;	  1427			HEADER_FORMAT_ERROR (DB [D_TIM]);
;	  1428			STARCE (DB [D_TIM], .CCB);
;	  1429			end;
;	  1430		    tes;
;	  1431	
;	  1432		end
;	  1433	    else
;	  1434		begin
;	  1435		!
;	  1436		! There was an error in message reception -
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  45
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (20)

;	  1437		! record where appropriate.
;	  1438		!
;	  1439		RECORD_DRIVER_ERROR (DB [D_TIM], .CCB);
;	  1440		STARCE (DB [D_TIM], .CCB);
;	  1441		end;
;	  1442	
;	  1443	    SEND_DATA (DB [D_TIM]);
;	  1444	    end;			!of routine DCPRCP


						.GLOBL	KISAR6


						.SBTTL	DCPRCP
000000	005746 				DCPRCP: TST	-(SP)				;					1333
000002	010446 					MOV	R4,-(SP)
000004	016704  000000G				MOV	KISAR6,R4			; *,SAVE.MAP				1378
000010	011600 					MOV	(SP),R0				;					1379
000012	016067  000016  000000G			MOV	16(R0),KISAR6
000020	010001 					MOV	R0,R1				;					1385
000022	016100  000020 				MOV	20(R1),R0			; *,PTR
000026	012001 					MOV	(R0)+,R1			; PTR,HDR.0				1386
000030	012002 					MOV	(R0)+,R2			; PTR,HDR.1				1387
000032	012003 					MOV	(R0)+,R3			; PTR,HDR.2				1388
000034	011646 					MOV	(SP),-(SP)			;					1389
000036	062716  000020 				ADD	#20,(SP)
000042	010036 					MOV	R0,@(SP)+			; PTR,*
000044	011600 					MOV	(SP),R0				;					1390
000046	162760  000006  000022 			SUB	#6,22(R0)
000054	010467  000000G				MOV	R4,KISAR6			; SAVE.MAP,*				1392
000060	012700  000154 				MOV	#154,R0				; *,PTR					1399
000064	060500 					ADD	R5,R0				; DB,PTR
000066	010120 					MOV	R1,(R0)+			; HDR.0,PTR				1400
000070	010220 					MOV	R2,(R0)+			; HDR.1,PTR				1401
000072	010310 					MOV	R3,(R0)				; HDR.2,PTR				1402
000074	032715  000400 				BIT	#400,(R5)			; *,DB					1409
000100	001003 					BNE	1$
000102	105765  000002 				TSTB	2(R5)				; *(DB)
000106	001004 					BNE	2$
000110	011604 				1$:	MOV	(SP),R4				;					1412
000112	004767  000000V				JSR	PC,STARCE
000116	000457 					BR	10$				;					1411
000120	011601 				2$:	MOV	(SP),R1				;					1416
000122	016100  000014 				MOV	14(R1),R0
000126	002003 					BGE	3$
000130	020027  177570 				CMP	R0,#-210
000134	001040 					BNE	7$
000136	116566  000154  000002 		3$:	MOVB	154(R5),2(SP)			; *(DB),*				1420
000144	105066  000003 				CLRB	3(SP)
000150	026627  000002  000005 			CMP	2(SP),#5
000156	001004 					BNE	4$
000160	011604 					MOV	(SP),R4				;					1422
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  46
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (20)

000162	004767  000000V				JSR	PC,PROCESS.CONTROL.MESSAGE
000166	000431 					BR	9$				;					1420
000170	026627  000002  000201 		4$:	CMP	2(SP),#201
000176	001004 					BNE	5$
000200	011604 					MOV	(SP),R4				;					1423
000202	004767  000000V				JSR	PC,PROCESS.DATA.MESSAGE
000206	000421 					BR	9$				;					1420
000210	026627  000002  000220 		5$:	CMP	2(SP),#220
000216	001004 					BNE	6$
000220	011604 					MOV	(SP),R4				;					1424
000222	004767  000000V				JSR	PC,PROCESS.MAINTENANCE.MESSAGE
000226	000411 					BR	9$				;					1420
000230	004767  000000V			6$:	JSR	PC,HEADER.FORMAT.ERROR		;					1427
000234	000403 					BR	8$				;					1428
000236	011604 				7$:	MOV	(SP),R4				;					1439
000240	004767  000000V				JSR	PC,RECORD.DRIVER.ERROR
000244	011604 				8$:	MOV	(SP),R4				;					1440
000246	004767  000000V				JSR	PC,STARCE
000252	004767  000000V			9$:	JSR	PC,SEND.DATA			;					1443
000256	022626 				10$:	CMP	(SP)+,(SP)+			;					1333
000260	000207 					RTS	PC

; Routine Size:  89 words,	Routine Base:  $CODE$ + 2050
; Maximum stack depth per invocation:  3 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  47
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (21)

;	  1445	routine DCPTIM
;	  1446	
;	  1447	!++
;	  1448	! FUNCTIONAL DESCRIPTION:
;	  1449	!
;	  1450	!
;	  1451	! FORMAL PARAMETERS:
;	  1452	!
;	  1453	       (DB : ref block field (D_FIELDS),
;	  1454		CCB : ref block field (C_FIELDS),
;	  1455		MODIFIER)
;	  1456	!
;	  1457	! IMPLICIT INPUTS:
;	  1458	!
;	  1459	! IMPLICIT OUTPUTS:
;	  1460	!	None
;	  1461	!
;	  1462	! ROUTINE VALUE:
;	  1463	!
;	  1464		: MCB_DB_CCB_MOD novalue =
;	  1465	!
;	  1466	! SIDE EFFECTS:
;	  1467	!	None
;	  1468	!--
;	  1469	
;	  1470	    begin
;	P 1471	    DISPATCH$ (
;	P 1472		.MODIFIER,
;	P 1473		TABLE$ ($DSPCR, FD_TIM,
;	P 1474		    (FM_LTM, TIMLTM),
;	P 1475		    (FM_PWF, TIMPWF),
;	P 1476		    (FM_PIN, TIMPIN),
;	P 1477		    (FM_CCB, TIMCCB)),
;	P 1478		(DB [D_TIM], .CCB),
;	  1479		MCB_DB_CCB);
;	  1480	    end;			!of routine DCPTIM



000106						.PSECT	$PLIT$,  RO ,  D  
000106	000000G				P.AAG:	.WORD	$DSPCR
000110	000000V					.WORD	TIMLTM
000112	000000V					.WORD	TIMPWF
000114	000000G					.WORD	TIMPIN
000116	000000V					.WORD	TIMCCB
000120	000000G					.WORD	$DSPCR


						.SBTTL	DCPTIM
002332						.PSECT	$CODE$,  RO 

000000	004773  000106'			DCPTIM: JSR	PC,@P.AAG(R3)			; *,*(MODIFIER)				1479
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  48
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (21)

000004	000207 					RTS	PC				;					1445

; Routine Size:  3 words,	Routine Base:  $CODE$ + 2332
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  49
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (22)

;	  1481	routine DCPXCP
;	  1482	
;	  1483	!++
;	  1484	! FUNCTIONAL DESCRIPTION:
;	  1485	!
;	  1486	!
;	  1487	! FORMAL PARAMETERS:
;	  1488	!
;	  1489	       (DB : ref block field (D_FIELDS),
;	  1490		CCB : ref block field (C_FIELDS))
;	  1491	!
;	  1492	! IMPLICIT INPUTS:
;	  1493	!
;	  1494	! IMPLICIT OUTPUTS:
;	  1495	!	None
;	  1496	!
;	  1497	! ROUTINE VALUE:
;	  1498	!
;	  1499		: MCB_DB_CCB novalue =
;	  1500	!
;	  1501	! SIDE EFFECTS:
;	  1502	!	None
;	  1503	!--
;	  1504	
;	  1505	    begin
;	  1506	
;	  1507	    bind
;	  1508		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  1509	
;	  1510	    begin
;	  1511	
;	  1512	    map
;	  1513		HEADER : vector [H_LENGTH];
;	  1514	
;	  1515	    local
;	  1516		PTR : ref vector;
;	  1517	
;	  1518	    PTR = .CCB [C_ADDR];
;	  1519	    HEADER [0] = .PTR [0];
;	  1520	    HEADER [1] = .PTR [1];
;	  1521	    HEADER [2] = .PTR [2];
;	  1522	    PTR = PTR [2]; %(force auto-increment)%
;	  1523	    end;
;	  1524	    !
;	  1525	    ! If a data message, put it in the proper place
;	  1526	    !
;	  1527	    if .HEADER [H_IDENTIFIER] neq CM_ENQ
;	  1528	    then
;	  1529		begin
;	  1530		DB [L_MESSAGES_AT_DRIVER] = .DB [L_MESSAGES_AT_DRIVER] - 1;
;	  1531	
;	  1532		if .HEADER [H_IDENTIFIER] eql CM_SOH
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  50
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (22)

;	  1533		then
;	  1534		    begin
;	  1535		    $MCB_QUEUE_CCB (DB [S_WAITING_FOR_ACK], .CCB [C_STK]);
;	  1536		    RETURN_ACKED_MESSAGES (DB [D_TIM]);
;	  1537		    end
;	  1538		else
;	  1539		    SCHEDULE_TRANSMIT (.CCB [C_STK], DB [D_TIM], DLL$_SUCCESS);
;	  1540	
;	  1541		end;
;	  1542	
;	  1543	    $MCB_RETURN_CCB (.CCB);
;	  1544	    !
;	  1545	    ! One less message at the driver
;	  1546	    !
;	  1547	    DB [S_MOTD] = .DB [S_MOTD] - 1;
;	  1548	
;	  1549	    if .DB [S_MOTD] eql 0
;	  1550	    then
;	  1551	
;	  1552		if .DB [SS_RETRANSMIT] then RETRANSMIT_UNACKED_MESSAGES (DB [D_TIM]);
;	  1553	
;	  1554	    !
;	  1555	    ! If halted, then there is nothing else to do.
;	  1556	    !
;	  1557	    if .DB [S_PROTOCOL_STATE] eql SS_HALTED then return;
;	  1558	    !
;	  1559	    ! Do post-transmit processing
;	  1560	    !
;	  1561	    selectone .HEADER [H_IDENTIFIER] of
;	  1562		set
;	  1563		[CM_ENQ] :
;	  1564	
;	  1565		    if .HEADER [H_TYPE] eql MT_REP
;	  1566		    then
;	  1567			DB [SS_START_REP_TIMER] = TRUE;
;	  1568	
;	  1569		[CM_SOH] :
;	  1570		    begin
;	  1571	
;	  1572		    if
;	  1573			begin
;	  1574	
;	  1575			field
;	  1576			    NUM = [0, 0, 8, 0];
;	  1577	
;	  1578			local
;	  1579			    NUM_NOT_ACKED : block [1] field (NUM),
;	  1580			    NUM_NOT_TRANSMITTED : block [1] field (NUM);
;	  1581	
;	  1582			NUM_NOT_TRANSMITTED = .DB [$SIGNED (S_N)];
;	  1583			NUM_NOT_ACKED = .NUM_NOT_TRANSMITTED;
;	  1584			NUM_NOT_TRANSMITTED = .NUM_NOT_TRANSMITTED -
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  51
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (22)

;	  1585			    (DB [S_X] = .HEADER [$SIGNED (H_NUM)]);
;	  1586			NUM_NOT_ACKED = .NUM_NOT_ACKED - .DB [$SIGNED (S_A)];
;	  1587			.NUM_NOT_ACKED [NUM] gtru .NUM_NOT_TRANSMITTED [NUM]
;	  1588			end
;	  1589		    then
;	  1590			begin
;	  1591	
;	  1592			if not (.DB [SS_START_REP_TIMER] or .DB [SS_TIMING_REP])
;	  1593			then
;	  1594			    DB [SS_START_REP_TIMER] = TRUE;
;	  1595	
;	  1596			end
;	  1597		    else
;	  1598			begin
;	  1599			DB [SS_START_REP_TIMER] = FALSE;
;	  1600			DB [SS_TIMING_REP] = FALSE;
;	  1601	
;	  1602			if .DB [L_DUPLEX] eql DL_FULL then DB [D_TIM] = 0;
;	  1603	
;	  1604			end;
;	  1605	
;	  1606		    end;
;	  1607		tes;
;	  1608	    !
;	  1609	    ! Start the rep timer if asked
;	  1610	    !
;	  1611	    if .DB [SS_START_REP_TIMER]
;	  1612	    then
;	  1613		begin
;	  1614		DB [SS_START_REP_TIMER] = FALSE;
;	  1615		DB [SS_TIMING_REP] = TRUE;
;	  1616	
;	  1617		if .DB [L_DUPLEX] eql DL_FULL
;	  1618		then DB [D_TIM] = .DB [L_RETRANSMIT_TIMER];
;	  1619	
;	  1620		end;
;	  1621	    !
;	  1622	    ! Process select flag if appropriate
;	  1623	    !
;	  1624	    if .DB [L_DUPLEX] neq DL_FULL
;	  1625	    then
;	  1626	
;	  1627		if .HEADER [H_SELECT]
;	  1628		then
;	  1629		    begin
;	  1630		    COUNTER_INCREMENT (DB, S_SELECTION_INTERVALS);
;	  1631		    DB [D_TIM] = .DB [L_RETRANSMIT_TIMER];
;	  1632		    end;
;	  1633	    !
;	  1634	    ! Send more data
;	  1635	    !
;	  1636	    SEND_DATA (DB [D_TIM]);
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  52
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (22)

;	  1637	    end;			!of routine DCPXCP


						.SBTTL	DCPXCP
000000	010446 				DCPXCP: MOV	R4,-(SP)			;					1481
000002	012746  000154 				MOV	#154,-(SP)			;					1505
000006	060516 					ADD	R5,(SP)				; DB,*
000010	010401 					MOV	R4,R1				;					1518
000012	016100  000020 				MOV	20(R1),R0			; *,PTR
000016	012076  000000 				MOV	(R0)+,@0(SP)			; PTR,*					1519
000022	011601 					MOV	(SP),R1				;					1520
000024	012061  000002 				MOV	(R0)+,2(R1)			; PTR,*
000030	011061  000004 				MOV	(R0),4(R1)			; PTR,*					1521
000034	121127  000005 				CMPB	(R1),#5				;					1527
000040	001431 					BEQ	2$
000042	105365  000146 				DECB	146(R5)				; *(DB)					1530
000046	121127  000201 				CMPB	(R1),#201			;					1532
000052	001014 					BNE	1$
000054	012703  000120 				MOV	#120,R3				;					1535
000060	060503 					ADD	R5,R3				; DB,*
000062	016600  000002 				MOV	2(SP),R0
000066	016004  000004 				MOV	4(R0),R4
000072	004767  000000G				JSR	PC,$CMQIN
000076	004767  000000V				JSR	PC,RETURN.ACKED.MESSAGES	;					1536
000102	000410 					BR	2$				;					1532
000104	016600  000002 			1$:	MOV	2(SP),R0			;					1539
000110	016004  000004 				MOV	4(R0),R4
000114	012703  100001 				MOV	#-77777,R3
000120	004767  000000V				JSR	PC,SCHEDULE.TRANSMIT
000124	016604  000002 			2$:	MOV	2(SP),R4			;					1543
000130	004767  000000G				JSR	PC,$CCBRT
000134	105365  000076 				DECB	76(R5)				; *(DB)					1547
000140	001005 					BNE	3$				;					1549
000142	032715  002000 				BIT	#2000,(R5)			; *,DB					1552
000146	001402 					BEQ	3$
000150	004767  000000V				JSR	PC,RETRANSMIT.UNACKED.MESSAGES
000154	105765  000002 			3$:	TSTB	2(R5)				; *(DB)					1557
000160	001511 					BEQ	13$
000162	127627  000000  000005 			CMPB	@0(SP),#5			;					1561
000170	001007 					BNE	4$
000172	017600  000000 				MOV	@0(SP),R0			;					1565
000176	105000 					CLRB	R0
000200	020027  001400 				CMP	R0,#1400
000204	001042 					BNE	7$
000206	000430 					BR	5$				;					1567
000210	127627  000000  000201 		4$:	CMPB	@0(SP),#201			;					1561
000216	001035 					BNE	7$
000220	116501  000073 				MOVB	73(R5),R1			; *(DB),NUM.NOT.TRANSMI			1582
000224	010102 					MOV	R1,R2				; NUM.NOT.TRANSMI,NUM.NOT.ACKED		1583
000226	011600 					MOV	(SP),R0				;					1585
000230	116000  000004 				MOVB	4(R0),R0
000234	110065  000072 				MOVB	R0,72(R5)			; *,*(DB)
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  53
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (22)

000240	160001 					SUB	R0,R1				; *,NUM.NOT.TRANSMI			1584
000242	116500  000074 				MOVB	74(R5),R0			; *(DB),*				1586
000246	160002 					SUB	R0,R2				; *,NUM.NOT.ACKED
000250	120201 					CMPB	R2,R1				; NUM.NOT.ACKED,NUM.NOT.TRANSMI		1587
000252	101411 					BLOS	6$
000254	032715  001000 				BIT	#1000,(R5)			; *,DB					1592
000260	001017 					BNE	8$
000262	032715  004000 				BIT	#4000,(R5)			; *,DB
000266	001011 					BNE	7$
000270	052715  001000 			5$:	BIS	#1000,(R5)			; *,DB					1594
000274	000406 					BR	7$				;					1572
000276	042715  005000 			6$:	BIC	#5000,(R5)			; *,DB					1600
000302	105765  000012 				TSTB	12(R5)				; *(DB)					1602
000306	001001 					BNE	7$
000310	105015 					CLRB	(R5)				; DB
000312	032715  001000 			7$:	BIT	#1000,(R5)			; *,DB					1611
000316	001411 					BEQ	9$
000320	042715  001000 			8$:	BIC	#1000,(R5)			; *,DB					1614
000324	052715  004000 				BIS	#4000,(R5)			; *,DB					1615
000330	105765  000012 				TSTB	12(R5)				; *(DB)					1617
000334	001005 					BNE	10$
000336	116515  000112 				MOVB	112(R5),(R5)			; *(DB),DB				1618
000342	105765  000012 			9$:	TSTB	12(R5)				; *(DB)					1624
000346	001414 					BEQ	12$
000350	011600 				10$:	MOV	(SP),R0				;					1627
000352	105760  000002 				TSTB	2(R0)
000356	100010 					BPL	12$
000360	012700  000040 				MOV	#40,R0				;					1630
000364	060500 					ADD	R5,R0				; DB,*
000366	005210 					INC	(R0)
000370	001001 					BNE	11$
000372	005310 					DEC	(R0)
000374	116515  000112 			11$:	MOVB	112(R5),(R5)			; *(DB),DB				1631
000400	004767  000000V			12$:	JSR	PC,SEND.DATA			;					1636
000404	022626 				13$:	CMP	(SP)+,(SP)+			;					1481
000406	000207 					RTS	PC

; Routine Size:  132 words,	Routine Base:  $CODE$ + 2340
; Maximum stack depth per invocation:  3 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  54
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (23)

;	  1638	routine DCPXME
;	  1639	
;	  1640	!++
;	  1641	! FUNCTIONAL DESCRIPTION:
;	  1642	!
;	  1643	!
;	  1644	! FORMAL PARAMETERS:
;	  1645	!
;	  1646	       (DB : ref block field (D_FIELDS),
;	  1647		CCB : ref block field (C_FIELDS),
;	  1648		MODIFIER)
;	  1649	!
;	  1650	! IMPLICIT INPUTS:
;	  1651	!
;	  1652	! IMPLICIT OUTPUTS:
;	  1653	!	None
;	  1654	!
;	  1655	! ROUTINE VALUE:
;	  1656	!
;	  1657		: MCB_DB_CCB_MOD novalue =
;	  1658	!
;	  1659	! SIDE EFFECTS:
;	  1660	!	None
;	  1661	!--
;	  1662	
;	  1663	    begin
;	P 1664	    DISPATCH$ (
;	P 1665		.MODIFIER,
;	P 1666		TABLE$ ($DSPCR, 0,
;	P 1667		    (DLL$K_ENTER_MAINTENANCE, ENTER_MAINTENANCE),
;	P 1668		    (DLL$K_INITIALIZE_LINK, INITIALIZE_LINK),
;	P 1669		    (DLL$K_STOP_LINK, STOP_LINK),
;	P 1670		    (DLL$K_TRANSMIT, TRANSMIT),
;	P 1671		    (DLL$K_TRANSMIT_AND_TIME, TRANSMIT)),
;	P 1672		(DB [D_TIM], .CCB),
;	  1673		MCB_DB_CCB);
;	  1674	    end;			!of routine DCPXME



000122						.PSECT	$PLIT$,  RO ,  D  
000122	000000V				P.AAH:	.WORD	TRANSMIT
000124	000000V					.WORD	INITIALIZE.LINK
000126	000000V					.WORD	STOP.LINK
000130	000000V					.WORD	ENTER.MAINTENANCE
000132	000000V					.WORD	TRANSMIT


						.SBTTL	DCPXME
002750						.PSECT	$CODE$,  RO 

000000	004773  000122'			DCPXME: JSR	PC,@P.AAH(R3)			; *,*(MODIFIER)				1673
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  55
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (23)

000004	000207 					RTS	PC				;					1638

; Routine Size:  3 words,	Routine Base:  $CODE$ + 2750
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  56
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (24)

;	  1675	routine ENTER_MAINTENANCE
;	  1676	
;	  1677	!++
;	  1678	! FUNCTIONAL DESCRIPTION:
;	  1679	!
;	  1680	!
;	  1681	! FORMAL PARAMETERS:
;	  1682	!
;	  1683	       (DB : ref block field (D_FIELDS),
;	  1684		CCB : ref block field (C_FIELDS))
;	  1685	!
;	  1686	! IMPLICIT INPUTS:
;	  1687	!
;	  1688	! IMPLICIT OUTPUTS:
;	  1689	!	None
;	  1690	!
;	  1691	! ROUTINE VALUE:
;	  1692	!
;	  1693		: MCB_DB_CCB novalue =
;	  1694	!
;	  1695	! SIDE EFFECTS:
;	  1696	!	None
;	  1697	!--
;	  1698	
;	  1699	    begin
;	  1700	    SET_LINK (DB [D_TIM], SS_HALTED);
;	  1701	    DB [DC_SET_REQUESTED_STATE] = TRUE;
;	  1702	    DB [S_REQUESTED_STATE] = SS_MAINTENANCE;
;	  1703	    SET_DEVICE (DB [D_TIM]);
;	  1704	    CCB [C_FNC] = FC_XCP;
;	  1705	    CCB [C_STS] = DLL$_SUCCESS;
;	  1706	    $MCB_SCHEDULE_CCB (.CCB);
;	  1707	    end;			!of routine ENTER_MAINTENANCE


						.SBTTL	ENTER.MAINTENANCE
000000	010446 				ENTER.MAINTENANCE:
						MOV	R4,-(SP)			;					1675
000002	005046 					CLR	-(SP)				;					1700
000004	004767  000000V				JSR	PC,SETLNK
000010	052765  004000  000006 			BIS	#4000,6(R5)			; *,*(DB)				1701
000016	112765  000004  000006 			MOVB	#4,6(R5)			; *,*(DB)				1702
000024	004767  000000V				JSR	PC,SETDEV			;					1703
000030	016600  000002 				MOV	2(SP),R0			;					1704
000034	112760  000014  000012 			MOVB	#14,12(R0)
000042	012760  100001  000014 			MOV	#-77777,14(R0)			;					1705
000050	010004 					MOV	R0,R4				;					1706
000052	004767  000000G				JSR	PC,$SCHED
000056	022626 					CMP	(SP)+,(SP)+			;					1675
000060	000207 					RTS	PC

; Routine Size:  25 words,	Routine Base:  $CODE$ + 2756
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  57
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (24)

; Maximum stack depth per invocation:  3 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  58
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (25)

;	  1708	routine HEADER_CCB
;	  1709	
;	  1710	!++
;	  1711	! FUNCTIONAL DESCRIPTION:
;	  1712	!
;	  1713	!
;	  1714	! FORMAL PARAMETERS:
;	  1715	!
;	  1716	       (DB : ref block field (D_FIELDS),
;	  1717		STACK_CCB : ref block field (C_FIELDS);
;	  1718		CCB : ref block field (C_FIELDS))
;	  1719	!
;	  1720	! IMPLICIT INPUTS:
;	  1721	!
;	  1722	! IMPLICIT OUTPUTS:
;	  1723	!	None
;	  1724	!
;	  1725	! ROUTINE VALUE:
;	  1726	!
;	  1727		: DCP_DB_CCB_HDR =
;	  1728	!
;	  1729	! SIDE EFFECTS:
;	  1730	!	None
;	  1731	!--
;	  1732	
;	  1733	    begin
;	  1734	
;	  1735	    if not $MCB_GET_CCB (CCB) then return 0;
;	  1736	
;	  1737	    CCB [C_CHN] = CCB [C_STK] = .STACK_CCB;
;	  1738	    CCB [C_HANDLE] = .DB [L_DRIVER_HANDLE];
;	  1739	    CCB [C_PRM4] = 0;
;	  1740	    CCB [C_CNT] = 6;
;	  1741	    CCB [C_BIAS] = 0;
;	  1742	    CCB [C_ADDR] = ch$ptr (CCB [C_PRM1])
;	  1743	    end;			!of routine HEADER_CCB


						.GLOBL	$CCBGT


						.SBTTL	HEADER.CCB
000000	010400 				HEADER.CCB:
						MOV	R4,R0				; *,STACK.CCB				1708
000002	004767  000000G				JSR	PC,$CCBGT			;					1735
000006	103402 					BCS	1$
000010	010401 					MOV	R4,R1				; $MCB$R4,CCB
000012	000402 					BR	2$
000014	005000 				1$:	CLR	R0
000016	000423 					BR	3$
000020	010061  000004 			2$:	MOV	R0,4(R1)			; STACK.CCB,*(CCB)			1737
000024	010061  000002 				MOV	R0,2(R1)			; STACK.CCB,*(CCB)
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  59
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (25)

000030	016561  000144  000010 			MOV	144(R5),10(R1)			; *(DB),*(CCB)				1738
000036	005061  000032 				CLR	32(R1)				; *(CCB)				1739
000042	012761  000006  000022 			MOV	#6,22(R1)			; *,*(CCB)				1740
000050	005061  000016 				CLR	16(R1)				; *(CCB)				1741
000054	010100 					MOV	R1,R0				; CCB,*					1742
000056	062700  000024 				ADD	#24,R0
000062	010061  000020 				MOV	R0,20(R1)			; *,*(CCB)
000066	010104 				3$:	MOV	R1,R4				; CCB,*					1708
000070	000207 					RTS	PC

; Routine Size:  29 words,	Routine Base:  $CODE$ + 3040
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  60
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (26)

;	  1744	routine HEADER_FORMAT_ERROR
;	  1745	
;	  1746	!++
;	  1747	! FUNCTIONAL DESCRIPTION:
;	  1748	!
;	  1749	!
;	  1750	! FORMAL PARAMETERS:
;	  1751	!
;	  1752	       (DB : ref block field (D_FIELDS))
;	  1753	!
;	  1754	! IMPLICIT INPUTS:
;	  1755	!
;	  1756	! IMPLICIT OUTPUTS:
;	  1757	!	None
;	  1758	!
;	  1759	! ROUTINE VALUE:
;	  1760	!
;	  1761		: DCP_DB novalue =
;	  1762	!
;	  1763	! SIDE EFFECTS:
;	  1764	!	None
;	  1765	!--
;	  1766	
;	  1767	    begin
;	  1768	
;	  1769	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  1770		set
;	  1771		[SS_ISTRT] :
;	  1772		    begin
;	  1773		    DB [SS_SEND_START] = TRUE;
;	  1774		    DB [SS_SEND_SELECT] = TRUE;
;	  1775		    end;
;	  1776		[SS_ASTRT] :
;	  1777		    begin
;	  1778		    DB [SS_SEND_STACK] = TRUE;
;	  1779		    DB [SS_SEND_SELECT] = TRUE;
;	  1780		    end;
;	  1781		[SS_RUNNING] :
;	  1782		    begin
;	  1783		    DB [SS_SEND_NAK] = TRUE;
;	  1784		    DB [S_PENDING_NAK_REASON] = RN_HFE;
;	  1785		    DB [SS_SEND_ACK] = FALSE;
;	  1786		    COUNTER_INCREMENT (DB, L_REMOTE_STATION_ERRORS);
;	  1787		    COUNTER_INCREMENT (DB, LR_N17);
;	P 1788		    $NM_DLL_EVENT (6, .DB [S_CIRCUIT_ENTITY],
;	  1789			PARAMETER_HI (2, 6, DB [L_HEADER]));
;	  1790		    end;
;	  1791		[inrange] :
;	  1792		    NO_OPERATION;
;	  1793		tes;
;	  1794	
;	  1795	    end;			!of routine HEADER_FORMAT_ERROR
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  61
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (26)



						.GLOBL	$IC8, $DPHI


						.SBTTL	HEADER.FORMAT.ERROR
000000	010546 				HEADER.FORMAT.ERROR:
						MOV	R5,-(SP)			;					1744
000002	010502 					MOV	R5,R2				; *,DB
000004	012700  000002 				MOV	#2,R0				;					1769
000010	060200 					ADD	R2,R0				; DB,*
000012	111001 					MOVB	(R0),R1
000014	006301 					ASL	R1
000016	066107  000134'				ADD	P.AAI(R1),PC			; Case dispatch
000022	052710  001000 			1$:	BIS	#1000,(R0)			;					1773
000026	000402 					BR	3$				;					1774
000030	052710  000400 			2$:	BIS	#400,(R0)			;					1778
000034	052710  020000 			3$:	BIS	#20000,(R0)			;					1779
000040	000442 					BR	5$				;					1769
000042	052710  002000 			4$:	BIS	#2000,(R0)			;					1783
000046	112762  000021  000077 			MOVB	#21,77(R2)			; *,*(DB)				1784
000054	042710  010000 				BIC	#10000,(R0)			;					1785
000060	012700  000062 				MOV	#62,R0				;					1786
000064	060200 					ADD	R2,R0				; DB,*
000066	004767  000000G				JSR	PC,$IC8
000072	052762  001000  000062 			BIS	#1000,62(R2)			; *,*(DB)				1787
000100	004767  000000G				JSR	PC,$NLBEG			;					1789
000104	012746  000002 				MOV	#2,-(SP)
000110	010205 					MOV	R2,R5				; DB,*
000112	062705  000154 				ADD	#154,R5
000116	012700  000006 				MOV	#6,R0
000122	010501 					MOV	R5,R1
000124	004767  000000G				JSR	PC,$DPHI
000130	012700  000506 				MOV	#506,R0
000134	016201  000126 				MOV	126(R2),R1			; *(DB),*
000140	004767  000000G				JSR	PC,$NLEND
000144	005726 					TST	(SP)+				;					1782
000146	012605 				5$:	MOV	(SP)+,R5			;					1744
000150	000207 					RTS	PC

; Routine Size:  53 words,	Routine Base:  $CODE$ + 3132
; Maximum stack depth per invocation:  3 words


000134						.PSECT	$PLIT$,  RO ,  D  

					P.AAI:						; CASE Table for HEADER.FORMAT.E+0016	1769
000134	000124 					.WORD	124				; [5$]
000136	000000 					.WORD	0				; [1$]
000140	000006 					.WORD	6				; [2$]
000142	000020 					.WORD	20				; [4$]
000144	000124 					.WORD	124				; [5$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  62
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (26)
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  63
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (27)

;	  1796	routine IGNORE_MESSAGE
;	  1797	
;	  1798	!++
;	  1799	! FUNCTIONAL DESCRIPTION:
;	  1800	!
;	  1801	!
;	  1802	! FORMAL PARAMETERS:
;	  1803	!
;	  1804	       (DB : ref block field (D_FIELDS))
;	  1805	!
;	  1806	! IMPLICIT INPUTS:
;	  1807	!
;	  1808	! IMPLICIT OUTPUTS:
;	  1809	!	None
;	  1810	!
;	  1811	! ROUTINE VALUE:
;	  1812	!
;	  1813		: DCP_DB novalue =
;	  1814	!
;	  1815	! SIDE EFFECTS:
;	  1816	!	None
;	  1817	!--
;	  1818	
;	  1819	    begin
;	  1820	
;	  1821	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  1822		set
;	  1823		[SS_ISTRT] :
;	  1824		    begin
;	  1825		    DB [SS_SEND_START] = TRUE;
;	  1826		    DB [SS_SEND_SELECT] = TRUE;
;	  1827		    end;
;	  1828		[SS_ASTRT] :
;	  1829		    begin
;	  1830		    DB [SS_SEND_STACK] = TRUE;
;	  1831		    DB [SS_SEND_SELECT] = TRUE;
;	  1832		    end;
;	  1833		[inrange] :
;	  1834		    NO_OPERATION;
;	  1835		tes;
;	  1836	
;	  1837	    end;			!of routine IGNORE_MESSAGE


						.SBTTL	IGNORE.MESSAGE
003304						.PSECT	$CODE$,  RO 

000000	012700  000002 			IGNORE.MESSAGE:
						MOV	#2,R0				;					1821
000004	060500 					ADD	R5,R0				; DB,*
000006	111001 					MOVB	(R0),R1
000010	006301 					ASL	R1
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  64
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (27)

000012	066107  000146'				ADD	P.AAJ(R1),PC			; Case dispatch
000016	052710  001000 			1$:	BIS	#1000,(R0)			;					1825
000022	000402 					BR	3$				;					1826
000024	052710  000400 			2$:	BIS	#400,(R0)			;					1830
000030	052710  020000 			3$:	BIS	#20000,(R0)			;					1831
000034	000207 				4$:	RTS	PC				;					1796

; Routine Size:  15 words,	Routine Base:  $CODE$ + 3304
; Maximum stack depth per invocation:  0 words


000146						.PSECT	$PLIT$,  RO ,  D  

					P.AAJ:						; CASE Table for IGNORE.MESSAGE+0012	1821
000146	000016 					.WORD	16				; [4$]
000150	000000 					.WORD	0				; [1$]
000152	000006 					.WORD	6				; [2$]
000154	000016 					.WORD	16				; [4$]
000156	000016 					.WORD	16				; [4$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  65
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (28)

;	  1838	routine INITIALIZE_LINK
;	  1839	
;	  1840	!++
;	  1841	! FUNCTIONAL DESCRIPTION:
;	  1842	!
;	  1843	!
;	  1844	! FORMAL PARAMETERS:
;	  1845	!
;	  1846	       (DB : ref block field (D_FIELDS),
;	  1847		CCB : ref block field (C_FIELDS))
;	  1848	!
;	  1849	! IMPLICIT INPUTS:
;	  1850	!
;	  1851	! IMPLICIT OUTPUTS:
;	  1852	!	None
;	  1853	!
;	  1854	! ROUTINE VALUE:
;	  1855	!
;	  1856		: MCB_DB_CCB novalue =
;	  1857	!
;	  1858	! SIDE EFFECTS:
;	  1859	!	None
;	  1860	!--
;	  1861	
;	  1862	    begin
;	  1863	    SET_LINK (DB [D_TIM], SS_HALTED);
;	  1864	    DB [DC_SET_REQUESTED_STATE] = TRUE;
;	  1865	    DB [S_REQUESTED_STATE] = SS_RUNNING;
;	  1866	    SET_DEVICE (DB [D_TIM]);
;	  1867	    CCB [C_FNC] = FC_XCP;
;	  1868	    CCB [C_STS] = DLL$_SUCCESS;
;	  1869	    $MCB_SCHEDULE_CCB (.CCB);
;	  1870	    end;			!of routine INITIALIZE_LINK


						.SBTTL	INITIALIZE.LINK
003342						.PSECT	$CODE$,  RO 

000000	010446 				INITIALIZE.LINK:
						MOV	R4,-(SP)			;					1838
000002	005046 					CLR	-(SP)				;					1863
000004	004767  000000V				JSR	PC,SETLNK
000010	052765  004000  000006 			BIS	#4000,6(R5)			; *,*(DB)				1864
000016	112765  000003  000006 			MOVB	#3,6(R5)			; *,*(DB)				1865
000024	004767  000000V				JSR	PC,SETDEV			;					1866
000030	016600  000002 				MOV	2(SP),R0			;					1867
000034	112760  000014  000012 			MOVB	#14,12(R0)
000042	012760  100001  000014 			MOV	#-77777,14(R0)			;					1868
000050	010004 					MOV	R0,R4				;					1869
000052	004767  000000G				JSR	PC,$SCHED
000056	022626 					CMP	(SP)+,(SP)+			;					1838
000060	000207 					RTS	PC
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  66
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (28)


; Routine Size:  25 words,	Routine Base:  $CODE$ + 3342
; Maximum stack depth per invocation:  3 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  67
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (29)

;	  1871	routine MESSAGE_LENGTH
;	  1872	
;	  1873	!++
;	  1874	! FUNCTIONAL DESCRIPTION:
;	  1875	!
;	  1876	!
;	  1877	! FORMAL PARAMETERS:
;	  1878	!
;	  1879	       (CCB : ref block field (C_FIELDS))
;	  1880	!
;	  1881	! IMPLICIT INPUTS:
;	  1882	!
;	  1883	! IMPLICIT OUTPUTS:
;	  1884	!	None
;	  1885	!
;	  1886	! ROUTINE VALUE:
;	  1887	!
;	  1888		: DCP_CCB =
;	  1889	!
;	  1890	! SIDE EFFECTS:
;	  1891	!	None
;	  1892	!--
;	  1893	
;	  1894	    begin
;	  1895	
;	  1896	    local
;	  1897		CNT;
;	  1898	
;	  1899	    CCB = .CCB [C_CHN];
;	  1900	    CNT = 0;
;	  1901	
;	  1902	    do (CNT = .CNT + .CCB [C_CNT]) while (CCB = .CCB [C_CHN]) neqa 0;
;	  1903	
;	  1904	    .CNT
;	  1905	    end;			!of routine MESSAGE_LENGTH


						.SBTTL	MESSAGE.LENGTH
000000	010446 				MESSAGE.LENGTH:
						MOV	R4,-(SP)			;					1871
000002	016404  000002 				MOV	2(R4),R4			; *(CCB),CCB				1899
000006	005000 					CLR	R0				; CNT					1900
000010	066400  000022 			1$:	ADD	22(R4),R0			; *(CCB),CNT				1902
000014	016404  000002 				MOV	2(R4),R4			; *(CCB),CCB
000020	001373 					BNE	1$
000022	012604 					MOV	(SP)+,R4			;					1871
000024	000207 					RTS	PC

; Routine Size:  11 words,	Routine Base:  $CODE$ + 3424
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  68
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (30)

;	  1906	routine PROCESS_ACK_MESSAGE
;	  1907	
;	  1908	!++
;	  1909	! FUNCTIONAL DESCRIPTION:
;	  1910	!
;	  1911	!
;	  1912	! FORMAL PARAMETERS:
;	  1913	!
;	  1914	       (DB : ref block field (D_FIELDS))
;	  1915	!
;	  1916	! IMPLICIT INPUTS:
;	  1917	!
;	  1918	! IMPLICIT OUTPUTS:
;	  1919	!	None
;	  1920	!
;	  1921	! ROUTINE VALUE:
;	  1922	!
;	  1923		: DCP_DB novalue =
;	  1924	!
;	  1925	! SIDE EFFECTS:
;	  1926	!	None
;	  1927	!--
;	  1928	
;	  1929	    begin
;	  1930	
;	  1931	    bind
;	  1932		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  1933	
;	  1934	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  1935		set
;	  1936		[SS_ISTRT] :
;	  1937		    return IGNORE_MESSAGE (DB [D_TIM]);
;	  1938		[SS_ASTRT] :
;	  1939	
;	  1940		    if .HEADER [H_RESP] eqlu 0
;	  1941		    then
;	  1942			begin
;	  1943			CHANGE_PROTOCOL_STATE (DB [D_TIM], SS_RUNNING, 1);
;	  1944			DB [S_TRANSMIT_THRESHOLD] = 7;
;	  1945			DB [S_RECEIVE_THRESHOLD] = 7;
;	  1946	
;	  1947			if .DB [L_DUPLEX] eql DL_FULL then DB [D_TIM] = 0;
;	  1948	
;	  1949			end
;	  1950		    else
;	  1951			return IGNORE_MESSAGE (DB [D_TIM]);
;	  1952	
;	  1953		[SS_RUNNING] :
;	  1954	
;	  1955		    if CKACK (DB [D_TIM])
;	  1956		    then
;	  1957			CKREP (DB [D_TIM])
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  69
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (30)

;	  1958		    else
;	  1959			return IGNORE_MESSAGE (DB [D_TIM]);
;	  1960	
;	  1961		[SS_MAINTENANCE] :
;	  1962		    NO_OPERATION;
;	  1963		[inrange] :
;	  1964		    return NO_OPERATION;
;	  1965		tes;
;	  1966	
;	  1967	    PROCESS_SELECT_FLAG (DB [D_TIM]);
;	  1968	    end;			!of routine PROCESS_ACK_MESSAGE


						.SBTTL	PROCESS.ACK.MESSAGE
000000	116500  000002 			PROCESS.ACK.MESSAGE:
						MOVB	2(R5),R0			; *(DB),*				1934
000004	006300 					ASL	R0
000006	066007  000160'				ADD	P.AAK(R0),PC			; Case dispatch
000012	000434 				1$:	BR	5$				;					1937
000014	105765  000157 			2$:	TSTB	157(R5)				; *(DB)					1940
000020	001031 					BNE	5$
000022	012746  000003 				MOV	#3,-(SP)			;					1943
000026	012746  000001 				MOV	#1,-(SP)
000032	004767  175540 				JSR	PC,CHANGE.PROTOCOL.STATE
000036	112765  000007  000016 			MOVB	#7,16(R5)			; *,*(DB)				1944
000044	112765  000007  000015 			MOVB	#7,15(R5)			; *,*(DB)				1945
000052	105765  000012 				TSTB	12(R5)				; *(DB)					1947
000056	001001 					BNE	3$
000060	105015 					CLRB	(R5)				; DB
000062	022626 				3$:	CMP	(SP)+,(SP)+			;					1942
000064	000412 					BR	6$				;					1940
000066	004767  175604 			4$:	JSR	PC,CKACK			;					1955
000072	006000 					ROR	R0
000074	103003 					BCC	5$
000076	004767  175666 				JSR	PC,CKREP			;					1957
000102	000403 					BR	6$				;					1955
000104	004767  177522 			5$:	JSR	PC,IGNORE.MESSAGE		;					1959
000110	000207 					RTS	PC
000112	004767  000000V			6$:	JSR	PC,PROCESS.SELECT.FLAG		;					1967
000116	000207 				7$:	RTS	PC				;					1906

; Routine Size:  40 words,	Routine Base:  $CODE$ + 3452
; Maximum stack depth per invocation:  3 words


000160						.PSECT	$PLIT$,  RO ,  D  

					P.AAK:						; CASE Table for PROCESS.ACK.MES+0006	1934
000160	000104 					.WORD	104				; [7$]
000162	000072 					.WORD	72				; [5$]
000164	000002 					.WORD	2				; [2$]
000166	000054 					.WORD	54				; [4$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  70
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (30)

000170	000100 					.WORD	100				; [6$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  71
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (31)

;	  1969	routine PROCESS_CONTROL_MESSAGE
;	  1970	
;	  1971	!++
;	  1972	! FUNCTIONAL DESCRIPTION:
;	  1973	!
;	  1974	!
;	  1975	! FORMAL PARAMETERS:
;	  1976	!
;	  1977	       (DB : ref block field (D_FIELDS),
;	  1978		CCB : ref block field (C_FIELDS))
;	  1979	!
;	  1980	! IMPLICIT INPUTS:
;	  1981	!
;	  1982	! IMPLICIT OUTPUTS:
;	  1983	!	None
;	  1984	!
;	  1985	! ROUTINE VALUE:
;	  1986	!
;	  1987		: DCP_DB_CCBR novalue =
;	  1988	!
;	  1989	! SIDE EFFECTS:
;	  1990	!	None
;	  1991	!--
;	  1992	
;	  1993	    begin
;	  1994	
;	  1995	    bind
;	  1996		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  1997	
;	  1998	    CASE .HEADER [H_TYPE] from MT_LOW to MT_HIGH of
;	  1999		set
;	  2000		[MT_STR] : PROCESS_START_MESSAGE (DB [D_TIM]);
;	  2001		[MT_STK] : PROCESS_STACK_MESSAGE (DB [D_TIM]);
;	  2002		[MT_ACK] : PROCESS_ACK_MESSAGE (DB [D_TIM]);
;	  2003		[MT_NAK] : PROCESS_NAK_MESSAGE (DB [D_TIM]);
;	  2004		[MT_REP] : PROCESS_REP_MESSAGE (DB [D_TIM]);
;	  2005		[inrange, outrange] : HEADER_FORMAT_ERROR (DB [D_TIM]);
;	  2006		tes;
;	  2007	
;	  2008	    STARCE (DB [D_TIM], .CCB);
;	  2009	    end;			!of routine PROCESS_CONTROL_MESSAGE


						.SBTTL	PROCESS.CONTROL.MESSAGE
003572						.PSECT	$CODE$,  RO 

000000	010446 				PROCESS.CONTROL.MESSAGE:
						MOV	R4,-(SP)			;					1969
000002	005000 					CLR	R0				;					1998
000004	156500  000155 				BISB	155(R5),R0			; *(DB),*
000010	005300 					DEC	R0
000012	020027  000006 				CMP	R0,#6
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  72
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (31)

000016	101003 					BHI	1$
000020	006300 					ASL	R0
000022	066007  000172'				ADD	P.AAL(R0),PC			; Case dispatch
000026	004767  177306 			1$:	JSR	PC,HEADER.FORMAT.ERROR		;					2005
000032	000416 					BR	7$				;					1998
000034	004767  000000V			2$:	JSR	PC,PROCESS.START.MESSAGE	;					2000
000040	000413 					BR	7$				;					1998
000042	004767  000000V			3$:	JSR	PC,PROCESS.STACK.MESSAGE	;					2001
000046	000410 					BR	7$				;					1998
000050	004767  177604 			4$:	JSR	PC,PROCESS.ACK.MESSAGE		;					2002
000054	000405 					BR	7$				;					1998
000056	004767  000000V			5$:	JSR	PC,PROCESS.NAK.MESSAGE		;					2003
000062	000402 					BR	7$				;					1998
000064	004767  000000V			6$:	JSR	PC,PROCESS.REP.MESSAGE		;					2004
000070	011604 				7$:	MOV	(SP),R4				;					2008
000072	004767  000000V				JSR	PC,STARCE
000076	005726 					TST	(SP)+				;					1969
000100	000207 					RTS	PC

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


000172						.PSECT	$PLIT$,  RO ,  D  

					P.AAL:						; CASE Table for PROCESS.CONTROL+0022	1998
000172	000022 					.WORD	22				; [4$]
000174	000030 					.WORD	30				; [5$]
000176	000036 					.WORD	36				; [6$]
000200	000000 					.WORD	0				; [1$]
000202	000000 					.WORD	0				; [1$]
000204	000006 					.WORD	6				; [2$]
000206	000014 					.WORD	14				; [3$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  73
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (32)

;	  2010	routine PROCESS_DATA_MESSAGE
;	  2011	
;	  2012	!++
;	  2013	! FUNCTIONAL DESCRIPTION:
;	  2014	!
;	  2015	!
;	  2016	! FORMAL PARAMETERS:
;	  2017	!
;	  2018	       (DB : ref block field (D_FIELDS),
;	  2019		CCB : ref block field (C_FIELDS))
;	  2020	!
;	  2021	! IMPLICIT INPUTS:
;	  2022	!
;	  2023	! IMPLICIT OUTPUTS:
;	  2024	!	None
;	  2025	!
;	  2026	! ROUTINE VALUE:
;	  2027	!
;	  2028		: DCP_DB_CCBR novalue =
;	  2029	!
;	  2030	! SIDE EFFECTS:
;	  2031	!	None
;	  2032	!--
;	  2033	
;	  2034	    begin
;	  2035	
;	  2036	    bind
;	  2037		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  2038	
;	  2039	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  2040		set
;	  2041		[SS_ASTRT] :
;	  2042	
;	  2043		    if .HEADER [H_RESP] eqlu 0
;	  2044		    then
;	  2045			begin
;	  2046	
;	  2047			if
;	  2048			    begin
;	  2049	
;	  2050			    local
;	  2051				NEW_NUM;
;	  2052	
;	  2053			    NEW_NUM = .DB [S_R] + 1;
;	  2054			    .HEADER [H_NUM] eql .NEW_NUM <0, 8>
;	  2055			    end
;	  2056			then
;	  2057			    begin
;	  2058	
;	  2059			    if .CCB [C_STS] geq 0
;	  2060			    then
;	  2061				begin
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  74
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (32)

;	  2062				DB [S_R] = .DB [S_R] + 1;
;	  2063				COUNTER_INCREMENT (DB, S_DATA_BLOCKS_RECEIVED);
;	  2064				COUNTER_ADD (DB, S_BYTES_RECEIVED, .CCB [C_CNT]);
;	  2065				DB [SS_SEND_ACK] = TRUE;
;	  2066				DB [SS_SEND_NAK] = FALSE;
;	  2067				DB [S_RECEIVE_THRESHOLD] = 7;
;	  2068				CCB [C_MOD] = DLL$K_DATA_RECEIVED;
;	  2069				SCHEDULE_RECEIVE (.CCB, DB [D_TIM], DLL$_SUCCESS);
;	  2070				end
;	  2071			    else
;	  2072				begin
;	  2073				RECORD_DRIVER_ERROR (DB [D_TIM], .CCB);
;	  2074				STARCE (DB [D_TIM], .CCB);
;	  2075				end;
;	  2076	
;	  2077			    end
;	  2078			else
;	  2079			    STARCE (DB [D_TIM], .CCB);
;	  2080	
;	  2081			end
;	  2082		    else
;	  2083			STARCE (DB [D_TIM], .CCB);
;	  2084	
;	  2085		[SS_RUNNING] :
;	  2086		    begin
;	  2087	
;	  2088		    if CKACK (DB [D_TIM])
;	  2089		    then
;	  2090			CKREP (DB [D_TIM]);
;	  2091	
;	  2092		    if
;	  2093			begin
;	  2094	
;	  2095			local
;	  2096			    NEW_NUM;
;	  2097	
;	  2098			NEW_NUM = .DB [S_R] + 1;
;	  2099			.HEADER [H_NUM] eql .NEW_NUM <0, 8>
;	  2100			end
;	  2101		    then
;	  2102			begin
;	  2103	
;	  2104			if .CCB [C_STS] geq 0
;	  2105			then
;	  2106			    begin
;	  2107			    DB [S_R] = .DB [S_R] + 1;
;	  2108			    COUNTER_INCREMENT (DB, S_DATA_BLOCKS_RECEIVED);
;	  2109			    COUNTER_ADD (DB, S_BYTES_RECEIVED, .CCB [C_CNT]);
;	  2110			    DB [SS_SEND_ACK] = TRUE;
;	  2111			    DB [SS_SEND_NAK] = FALSE;
;	  2112			    DB [S_RECEIVE_THRESHOLD] = 7;
;	  2113			    CCB [C_MOD] = DLL$K_DATA_RECEIVED;
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  75
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (32)

;	  2114			    SCHEDULE_RECEIVE (.CCB, DB [D_TIM], DLL$_SUCCESS);
;	  2115			    end
;	  2116			else
;	  2117			    begin
;	  2118			    RECORD_DRIVER_ERROR (DB [D_TIM], .CCB);
;	  2119			    STARCE (DB [D_TIM], .CCB);
;	  2120			    end;
;	  2121	
;	  2122			end
;	  2123		    else
;	  2124			STARCE (DB [D_TIM], .CCB);
;	  2125	
;	  2126		    end;
;	  2127		[inrange] :
;	  2128		    STARCE (DB [D_TIM], .CCB);
;	  2129		tes;
;	  2130	
;	  2131	    PROCESS_SELECT_FLAG (DB [D_TIM]);
;	  2132	    end;			!of routine PROCESS_DATA_MESSAGE


						.SBTTL	PROCESS.DATA.MESSAGE
003674						.PSECT	$CODE$,  RO 

000000	010546 				PROCESS.DATA.MESSAGE:
						MOV	R5,-(SP)			;					2010
000002	005746 					TST	-(SP)
000004	010446 					MOV	R4,-(SP)
000006	010566  000002 				MOV	R5,2(SP)
000012	012700  000154 				MOV	#154,R0				;					2034
000016	060500 					ADD	R5,R0
000020	010046 					MOV	R0,-(SP)
000022	012700  000002 				MOV	#2,R0				;					2039
000026	060500 					ADD	R5,R0
000030	010046 					MOV	R0,-(SP)
000032	111000 					MOVB	(R0),R0
000034	006300 					ASL	R0
000036	066007  000210'				ADD	P.AAM(R0),PC			; Case dispatch
000042	016600  000002 			1$:	MOV	2(SP),R0			;					2043
000046	105760  000003 				TSTB	3(R0)
000052	001136 					BNE	6$
000054	005000 					CLR	R0				; NEW.NUM				2053
000056	016601  000006 				MOV	6(SP),R1
000062	156100  000070 				BISB	70(R1),R0			; *,NEW.NUM
000066	005200 					INC	R0				; NEW.NUM
000070	016601  000002 				MOV	2(SP),R1			;					2054
000074	126100  000004 				CMPB	4(R1),R0			; *,NEW.NUM
000100	001123 					BNE	6$
000102	016600  000004 				MOV	4(SP),R0			;					2059
000106	005760  000014 				TST	14(R0)
000112	002510 					BLT	5$
000114	000432 					BR	4$				;					2062
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  76
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (32)

000116	016605  000006 			2$:	MOV	6(SP),R5			;					2088
000122	004767  175326 				JSR	PC,CKACK
000126	006000 					ROR	R0
000130	103004 					BCC	3$
000132	016605  000006 				MOV	6(SP),R5			;					2090
000136	004767  175404 				JSR	PC,CKREP
000142	005000 				3$:	CLR	R0				; NEW.NUM				2098
000144	016601  000006 				MOV	6(SP),R1
000150	156100  000070 				BISB	70(R1),R0			; *,NEW.NUM
000154	005200 					INC	R0				; NEW.NUM
000156	016601  000002 				MOV	2(SP),R1			;					2099
000162	126100  000004 				CMPB	4(R1),R0			; *,NEW.NUM
000166	001070 					BNE	6$
000170	016600  000004 				MOV	4(SP),R0			;					2104
000174	005760  000014 				TST	14(R0)
000200	002455 					BLT	5$
000202	016601  000006 			4$:	MOV	6(SP),R1			;					2107
000206	105261  000070 				INCB	70(R1)
000212	010105 					MOV	R1,R5				;					2108
000214	062705  000030 				ADD	#30,R5
000220	010500 					MOV	R5,R0
000222	004767  000000G				JSR	PC,$IC32
000226	016605  000006 				MOV	6(SP),R5			;					2109
000232	062705  000020 				ADD	#20,R5
000236	010500 					MOV	R5,R0
000240	016602  000004 				MOV	4(SP),R2
000244	016201  000022 				MOV	22(R2),R1
000250	004767  000000G				JSR	PC,$AC32
000254	052776  010000  000000 			BIS	#10000,@0(SP)			;					2110
000262	042776  002000  000000 			BIC	#2000,@0(SP)			;					2111
000270	016600  000006 				MOV	6(SP),R0			;					2112
000274	112760  000007  000015 			MOVB	#7,15(R0)
000302	016600  000004 				MOV	4(SP),R0			;					2113
000306	105060  000013 				CLRB	13(R0)
000312	012746  100001 				MOV	#-77777,-(SP)			;					2114
000316	010004 					MOV	R0,R4
000320	016605  000010 				MOV	10(SP),R5
000324	004767  000000V				JSR	PC,SCHEDULE.RECEIVE
000330	005726 					TST	(SP)+				;					2106
000332	000414 					BR	7$				;					2104
000334	016605  000006 			5$:	MOV	6(SP),R5			;					2118
000340	016604  000004 				MOV	4(SP),R4
000344	004767  000000V				JSR	PC,RECORD.DRIVER.ERROR
000350	016605  000006 			6$:	MOV	6(SP),R5			;					2128
000354	016604  000004 				MOV	4(SP),R4
000360	004767  000000V				JSR	PC,STARCE
000364	016605  000006 			7$:	MOV	6(SP),R5			;					2131
000370	004767  000000V				JSR	PC,PROCESS.SELECT.FLAG
000374	062706  000010 				ADD	#10,SP				;					2010
000400	012605 					MOV	(SP)+,R5
000402	000207 					RTS	PC
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  77
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (32)

; Routine Size:  130 words,	Routine Base:  $CODE$ + 3674
; Maximum stack depth per invocation:  7 words


000210						.PSECT	$PLIT$,  RO ,  D  

					P.AAM:						; CASE Table for PROCESS.DATA.ME+0036	2039
000210	000306 					.WORD	306				; [6$]
000212	000306 					.WORD	306				; [6$]
000214	000000 					.WORD	0				; [1$]
000216	000054 					.WORD	54				; [2$]
000220	000306 					.WORD	306				; [6$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  78
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (33)

;	  2133	routine PROCESS_MAINTENANCE_MESSAGE
;	  2134	
;	  2135	!++
;	  2136	! FUNCTIONAL DESCRIPTION:
;	  2137	!
;	  2138	!
;	  2139	! FORMAL PARAMETERS:
;	  2140	!
;	  2141	       (DB : ref block field (D_FIELDS),
;	  2142		CCB : ref block field (C_FIELDS))
;	  2143	!
;	  2144	! IMPLICIT INPUTS:
;	  2145	!
;	  2146	! IMPLICIT OUTPUTS:
;	  2147	!	None
;	  2148	!
;	  2149	! ROUTINE VALUE:
;	  2150	!
;	  2151		: DCP_DB_CCBR novalue =
;	  2152	!
;	  2153	! SIDE EFFECTS:
;	  2154	!	None
;	  2155	!--
;	  2156	
;	  2157	    begin
;	  2158	
;	  2159	    bind
;	  2160		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  2161	
;	  2162	    if .DB [L_PROTOCOL] eql DP_DMC
;	  2163	    then
;	  2164		begin
;	  2165		HEADER [H_SELECT] = TRUE;
;	  2166		HEADER [H_QSYNC] = TRUE;
;	  2167		end;
;	  2168	
;	  2169	    if not .HEADER [H_SELECT]
;	  2170	    then
;	  2171		HEADER_FORMAT_ERROR (DB [D_TIM]);
;	  2172	
;	  2173	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  2174		set
;	  2175		[SS_ISTRT, SS_ASTRT, SS_RUNNING] :
;	  2176		    begin
;	  2177		    $NM_DLL_EVENT (96^6 + 13, .DB [S_CIRCUIT_ENTITY]);
;	  2178		    SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_MAINTENANCE_RECEIVED);
;	  2179		    SET_LINK (DB [D_TIM], DB [S_REQUESTED_STATE] = SS_HALTED);
;	  2180		    SET_DEVICE (DB [D_TIM]);
;	  2181		    STARCE (DB [D_TIM], .CCB);
;	  2182		    end;
;	  2183		[SS_MAINTENANCE] :
;	  2184		    begin
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  79
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (33)

;	  2185	
;	  2186		    if .CCB [C_STS] geq 0
;	  2187		    then
;	  2188			begin
;	  2189			DB [S_RECEIVE_THRESHOLD] = 7;
;	  2190			CCB [C_MOD] = DLL$K_MAINTENANCE_RECEIVED;
;	  2191			SCHEDULE_RECEIVE (.CCB, DB [D_TIM], DLL$_SUCCESS);
;	  2192			end
;	  2193		    else
;	  2194			begin
;	  2195			COUNTER_INCREMENT (DB, L_MAINTENANCE_BCC_ERRORS);
;	  2196			STARCE (DB [D_TIM], .CCB);
;	  2197			end;
;	  2198	
;	  2199		    end;
;	  2200		[inrange] :
;	  2201		    STARCE (DB [D_TIM], .CCB);
;	  2202		tes;
;	  2203	
;	  2204	    PROCESS_SELECT_FLAG (DB [D_TIM]);
;	  2205	    end;			!of routine PROCESS_MAINTENANCE_MESSAGE


						.SBTTL	PROCESS.MAINTENANCE.MESSAGE
004300						.PSECT	$CODE$,  RO 

000000	010546 				PROCESS.MAINTENANCE.MESSAGE:
						MOV	R5,-(SP)			;					2133
000002	005746 					TST	-(SP)
000004	010446 					MOV	R4,-(SP)
000006	010566  000002 				MOV	R5,2(SP)
000012	010500 					MOV	R5,R0				;					2162
000014	126027  000010  000004 			CMPB	10(R0),#4
000022	001003 					BNE	1$
000024	152760  000300  000156 			BISB	#300,156(R0)			;					2166
000032	016600  000002 			1$:	MOV	2(SP),R0			;					2169
000036	105760  000156 				TSTB	156(R0)
000042	100403 					BMI	2$
000044	010005 					MOV	R0,R5				;					2171
000046	004767  176560 				JSR	PC,HEADER.FORMAT.ERROR
000052	016601  000002 			2$:	MOV	2(SP),R1			;					2173
000056	116100  000002 				MOVB	2(R1),R0
000062	006300 					ASL	R0
000064	066007  000222'				ADD	P.AAN(R0),PC			; Case dispatch
000070	004767  000000G			3$:	JSR	PC,$NLBEG			;					2177
000074	012700  014515 				MOV	#14515,R0
000100	016602  000002 				MOV	2(SP),R2
000104	016201  000126 				MOV	126(R2),R1
000110	004767  000000G				JSR	PC,$NLEND
000114	016605  000002 				MOV	2(SP),R5			;					2178
000120	012703  100142 				MOV	#-77636,R3
000124	004767  000000V				JSR	PC,SEND.PERSISTENT.ERROR
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  80
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (33)

000130	016600  000002 				MOV	2(SP),R0			;					2179
000134	105060  000006 				CLRB	6(R0)
000140	005046 					CLR	-(SP)
000142	010005 					MOV	R0,R5
000144	004767  000000V				JSR	PC,SETLNK
000150	016605  000004 				MOV	4(SP),R5			;					2180
000154	004767  000000V				JSR	PC,SETDEV
000160	016605  000004 				MOV	4(SP),R5			;					2181
000164	016604  000002 				MOV	2(SP),R4
000170	004767  000000V				JSR	PC,STARCE
000174	000424 					BR	5$				;					2176
000176	011600 				4$:	MOV	(SP),R0				;					2186
000200	005760  000014 				TST	14(R0)
000204	002422 					BLT	6$
000206	016600  000002 				MOV	2(SP),R0			;					2189
000212	112760  000007  000015 			MOVB	#7,15(R0)
000220	011600 					MOV	(SP),R0				;					2190
000222	112760  000002  000013 			MOVB	#2,13(R0)
000230	012746  100001 				MOV	#-77777,-(SP)			;					2191
000234	010004 					MOV	R0,R4
000236	016605  000004 				MOV	4(SP),R5
000242	004767  000000V				JSR	PC,SCHEDULE.RECEIVE
000246	005726 				5$:	TST	(SP)+				;					2188
000250	000414 					BR	8$				;					2186
000252	016605  000002 			6$:	MOV	2(SP),R5			;					2195
000256	062705  000067 				ADD	#67,R5
000262	010500 					MOV	R5,R0
000264	004767  000000G				JSR	PC,$IC8
000270	016605  000002 			7$:	MOV	2(SP),R5			;					2201
000274	011604 					MOV	(SP),R4
000276	004767  000000V				JSR	PC,STARCE
000302	016605  000002 			8$:	MOV	2(SP),R5			;					2204
000306	004767  000000V				JSR	PC,PROCESS.SELECT.FLAG
000312	022626 					CMP	(SP)+,(SP)+			;					2133
000314	012605 					MOV	(SP)+,R5
000316	000207 					RTS	PC

; Routine Size:  104 words,	Routine Base:  $CODE$ + 4300
; Maximum stack depth per invocation:  5 words


000222						.PSECT	$PLIT$,  RO ,  D  

					P.AAN:						; CASE Table for PROCESS.MAINTEN+0064	2173
000222	000200 					.WORD	200				; [7$]
000224	000000 					.WORD	0				; [3$]
000226	000000 					.WORD	0				; [3$]
000230	000000 					.WORD	0				; [3$]
000232	000106 					.WORD	106				; [4$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  81
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (34)

;	  2206	routine PROCESS_NAK_MESSAGE
;	  2207	
;	  2208	!++
;	  2209	! FUNCTIONAL DESCRIPTION:
;	  2210	!
;	  2211	!
;	  2212	! FORMAL PARAMETERS:
;	  2213	!
;	  2214	       (DB : ref block field (D_FIELDS))
;	  2215	!
;	  2216	! IMPLICIT INPUTS:
;	  2217	!
;	  2218	! IMPLICIT OUTPUTS:
;	  2219	!	None
;	  2220	!
;	  2221	! ROUTINE VALUE:
;	  2222	!
;	  2223		: DCP_DB novalue =
;	  2224	!
;	  2225	! SIDE EFFECTS:
;	  2226	!	None
;	  2227	!--
;	  2228	
;	  2229	    begin
;	  2230	
;	  2231	    bind
;	  2232		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  2233	
;	  2234	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  2235		set
;	  2236		[SS_ISTRT, SS_ASTRT] :
;	  2237		    return IGNORE_MESSAGE (DB [D_TIM]);
;	  2238		[SS_RUNNING] :
;	  2239	
;	  2240		    if CKACK (DB [D_TIM])
;	  2241		    then
;	  2242			begin
;	  2243	
;	  2244			if .DB [L_DUPLEX] eql DL_FULL then DB [D_TIM] = 0;
;	  2245	
;	  2246			RECORD_NAK_REASON (DB [D_TIM]);
;	  2247			PROCESS_SELECT_FLAG (DB [D_TIM]);
;	  2248			end
;	  2249		    else
;	  2250			return IGNORE_MESSAGE (DB [D_TIM]);
;	  2251	
;	  2252		[SS_MAINTENANCE] :
;	  2253		    NO_OPERATION;
;	  2254		[inrange] :
;	  2255		    return NO_OPERATION;
;	  2256		tes;
;	  2257	
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  82
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (34)

;	  2258	    PROCESS_SELECT_FLAG (DB [D_TIM]);
;	  2259	    end;			!of routine PROCESS_NAK_MESSAGE


						.SBTTL	PROCESS.NAK.MESSAGE
004620						.PSECT	$CODE$,  RO 

000000	116500  000002 			PROCESS.NAK.MESSAGE:
						MOVB	2(R5),R0			; *(DB),*				2234
000004	006300 					ASL	R0
000006	066007  000234'				ADD	P.AAO(R0),PC			; Case dispatch
000012	000415 				1$:	BR	4$				;					2237
000014	004767  174510 			2$:	JSR	PC,CKACK			;					2240
000020	006000 					ROR	R0
000022	103011 					BCC	4$
000024	105765  000012 				TSTB	12(R5)				; *(DB)					2244
000030	001001 					BNE	3$
000032	105015 					CLRB	(R5)				; DB
000034	004767  000000V			3$:	JSR	PC,RECORD.NAK.REASON		;					2246
000040	004767  000000V				JSR	PC,PROCESS.SELECT.FLAG		;					2247
000044	000403 					BR	5$				;					2240
000046	004767  176412 			4$:	JSR	PC,IGNORE.MESSAGE		;					2250
000052	000207 					RTS	PC
000054	004767  000000V			5$:	JSR	PC,PROCESS.SELECT.FLAG		;					2258
000060	000207 				6$:	RTS	PC				;					2206

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


000234						.PSECT	$PLIT$,  RO ,  D  

					P.AAO:						; CASE Table for PROCESS.NAK.MES+0006	2234
000234	000046 					.WORD	46				; [6$]
000236	000034 					.WORD	34				; [4$]
000240	000034 					.WORD	34				; [4$]
000242	000002 					.WORD	2				; [2$]
000244	000042 					.WORD	42				; [5$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  83
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (35)

;	  2260	routine PROCESS_REP_MESSAGE
;	  2261	
;	  2262	!++
;	  2263	! FUNCTIONAL DESCRIPTION:
;	  2264	!
;	  2265	!
;	  2266	! FORMAL PARAMETERS:
;	  2267	!
;	  2268	       (DB : ref block field (D_FIELDS))
;	  2269	!
;	  2270	! IMPLICIT INPUTS:
;	  2271	!
;	  2272	! IMPLICIT OUTPUTS:
;	  2273	!	None
;	  2274	!
;	  2275	! ROUTINE VALUE:
;	  2276	!
;	  2277		: DCP_DB novalue =
;	  2278	!
;	  2279	! SIDE EFFECTS:
;	  2280	!	None
;	  2281	!--
;	  2282	
;	  2283	    begin
;	  2284	
;	  2285	    bind
;	  2286		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  2287	
;	  2288	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  2289		set
;	  2290		[SS_ISTRT, SS_ASTRT] :
;	  2291		    return IGNORE_MESSAGE (DB [D_TIM]);
;	  2292		[SS_RUNNING] :
;	  2293	
;	  2294		    if .HEADER [H_NUM] nequ .DB [S_R]
;	  2295		    then
;	  2296			begin
;	  2297			DB [SS_SEND_NAK] = TRUE;
;	  2298			DB [S_PENDING_NAK_REASON] = RN_REP;
;	  2299			DB [SS_SEND_ACK] = FALSE;
;	  2300			TEST_RECEIVE_THRESHOLD (DB [D_TIM]);
;	  2301			COUNTER_INCREMENT (DB, SI_N3);
;	  2302			COUNTER_INCREMENT (DB, S_DATA_ERRORS_INBOUND);
;	  2303			end
;	  2304		    else
;	  2305			begin
;	  2306			DB [SS_SEND_ACK] = TRUE;
;	  2307			DB [SS_SEND_NAK] = FALSE;
;	  2308			COUNTER_INCREMENT (DB, S_REMOTE_REPLY_TIMEOUTS);
;	  2309			end;
;	  2310	
;	  2311		[SS_MAINTENANCE] :
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  84
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (35)

;	  2312		    NO_OPERATION;
;	  2313		[inrange] :
;	  2314		    return NO_OPERATION;
;	  2315		tes;
;	  2316	
;	  2317	    PROCESS_SELECT_FLAG (DB [D_TIM]);
;	  2318	    end;			!of routine PROCESS_REP_MESSAGE


						.SBTTL	PROCESS.REP.MESSAGE
004702						.PSECT	$CODE$,  RO 

000000	010546 				PROCESS.REP.MESSAGE:
						MOV	R5,-(SP)			;					2260
000002	010546 					MOV	R5,-(SP)
000004	012700  000002 				MOV	#2,R0				;					2288
000010	060500 					ADD	R5,R0
000012	010046 					MOV	R0,-(SP)
000014	111000 					MOVB	(R0),R0
000016	006300 					ASL	R0
000020	066007  000246'				ADD	P.AAP(R0),PC			; Case dispatch
000024	016605  000002 			1$:	MOV	2(SP),R5			;					2291
000030	004767  176346 				JSR	PC,IGNORE.MESSAGE
000034	000461 					BR	6$
000036	016600  000002 			2$:	MOV	2(SP),R0			;					2294
000042	010001 					MOV	R0,R1
000044	126160  000160  000070 			CMPB	160(R1),70(R0)
000052	001431 					BEQ	3$
000054	052776  002000  000000 			BIS	#2000,@0(SP)			;					2297
000062	016600  000002 				MOV	2(SP),R0			;					2298
000066	112760  000003  000077 			MOVB	#3,77(R0)
000074	042776  010000  000000 			BIC	#10000,@0(SP)			;					2299
000102	016605  000002 				MOV	2(SP),R5			;					2300
000106	004767  000000V				JSR	PC,TEST.RECEIVE.THRESHOLD
000112	016600  000002 				MOV	2(SP),R0			;					2301
000116	052760  002000  000044 			BIS	#2000,44(R0)
000124	012701  000044 				MOV	#44,R1				;					2302
000130	060001 					ADD	R0,R1
000132	010100 					MOV	R1,R0
000134	000413 					BR	4$
000136	052776  010000  000000 		3$:	BIS	#10000,@0(SP)			;					2306
000144	042776  002000  000000 			BIC	#2000,@0(SP)			;					2307
000152	016605  000002 				MOV	2(SP),R5			;					2308
000156	062705  000055 				ADD	#55,R5
000162	010500 					MOV	R5,R0
000164	004767  000000G			4$:	JSR	PC,$IC8
000170	016605  000002 			5$:	MOV	2(SP),R5			;					2317
000174	004767  000000V				JSR	PC,PROCESS.SELECT.FLAG
000200	022626 				6$:	CMP	(SP)+,(SP)+			;					2260
000202	012605 					MOV	(SP)+,R5
000204	000207 					RTS	PC
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  85
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (35)

; Routine Size:  67 words,	Routine Base:  $CODE$ + 4702
; Maximum stack depth per invocation:  4 words


000246						.PSECT	$PLIT$,  RO ,  D  

					P.AAP:						; CASE Table for PROCESS.REP.MES+0020	2288
000246	000154 					.WORD	154				; [6$]
000250	000000 					.WORD	0				; [1$]
000252	000000 					.WORD	0				; [1$]
000254	000012 					.WORD	12				; [2$]
000256	000144 					.WORD	144				; [5$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  86
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (36)

;	  2319	routine PROCESS_SELECT_FLAG
;	  2320	
;	  2321	!++
;	  2322	! FUNCTIONAL DESCRIPTION:
;	  2323	!
;	  2324	!
;	  2325	! FORMAL PARAMETERS:
;	  2326	!
;	  2327	       (DB : ref block field (D_FIELDS))
;	  2328	!
;	  2329	! IMPLICIT INPUTS:
;	  2330	!
;	  2331	! IMPLICIT OUTPUTS:
;	  2332	!	None
;	  2333	!
;	  2334	! ROUTINE VALUE:
;	  2335	!
;	  2336		: DCP_DB novalue =
;	  2337	!
;	  2338	! SIDE EFFECTS:
;	  2339	!	None
;	  2340	!--
;	  2341	
;	  2342	    begin
;	  2343	
;	  2344	    bind
;	  2345		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  2346	
;	  2347	    if .DB [L_DUPLEX] neq DL_FULL
;	  2348	    then
;	  2349	
;	  2350		if .HEADER [H_SELECT]
;	  2351		then
;	  2352		    begin
;	  2353		    DB [D_TIM] = 0;
;	  2354		    DB [S_SELECT_THRESHOLD] = 7;
;	  2355		    TERMINATE_SELECTION_INTERVAL (DB [D_TIM]);
;	  2356		    end
;	  2357		else
;	  2358		    DB [D_TIM] = .DB [L_RETRANSMIT_TIMER];
;	  2359	
;	  2360	    end;			!of routine PROCESS_SELECT_FLAG


						.SBTTL	PROCESS.SELECT.FLAG
005110						.PSECT	$CODE$,  RO 

000000	105765  000012 			PROCESS.SELECT.FLAG:
						TSTB	12(R5)				; *(DB)					2347
000004	001414 					BEQ	2$
000006	105765  000156 				TSTB	156(R5)				; *(DB)					2350
000012	100007 					BPL	1$
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  87
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (36)

000014	105015 					CLRB	(R5)				; DB					2353
000016	112765  000007  000017 			MOVB	#7,17(R5)			; *,*(DB)				2354
000024	004767  000000V				JSR	PC,TERMINATE.SELECTION.INTERVAL ;					2355
000030	000207 					RTS	PC				;					2350
000032	116515  000112 			1$:	MOVB	112(R5),(R5)			; *(DB),DB				2358
000036	000207 				2$:	RTS	PC				;					2319

; Routine Size:  16 words,	Routine Base:  $CODE$ + 5110
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  88
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (37)

;	  2361	routine PROCESS_STACK_MESSAGE
;	  2362	
;	  2363	!++
;	  2364	! FUNCTIONAL DESCRIPTION:
;	  2365	!
;	  2366	!
;	  2367	! FORMAL PARAMETERS:
;	  2368	!
;	  2369	       (DB : ref block field (D_FIELDS))
;	  2370	!
;	  2371	! IMPLICIT INPUTS:
;	  2372	!
;	  2373	! IMPLICIT OUTPUTS:
;	  2374	!	None
;	  2375	!
;	  2376	! ROUTINE VALUE:
;	  2377	!
;	  2378		: DCP_DB novalue =
;	  2379	!
;	  2380	! SIDE EFFECTS:
;	  2381	!	None
;	  2382	!--
;	  2383	
;	  2384	    begin
;	  2385	
;	  2386	    bind
;	  2387		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  2388	
;	  2389	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  2390		set
;	  2391		[SS_ISTRT, SS_ASTRT] :
;	  2392		    begin
;	  2393	
;	  2394		    if not .HEADER [H_SELECT]
;	  2395		    then
;	  2396			return HEADER_FORMAT_ERROR (DB [D_TIM]);
;	  2397	
;	  2398		    DB [SS_SEND_ACK] = TRUE;
;	  2399	
;	  2400		    if .DB [L_DUPLEX] eql DL_FULL then DB [D_TIM] = 0;
;	  2401	
;	  2402		    CHANGE_PROTOCOL_STATE (DB [D_TIM], SS_RUNNING, 0);
;	  2403		    DB [S_TRANSMIT_THRESHOLD] = 7;
;	  2404		    DB [S_RECEIVE_THRESHOLD] = 7;
;	  2405		    end;
;	  2406		[SS_RUNNING] :
;	  2407		    DB [SS_SEND_ACK] = TRUE;
;	  2408		[SS_MAINTENANCE] :
;	  2409		    NO_OPERATION;
;	  2410		[inrange] :
;	  2411		    return NO_OPERATION;
;	  2412		tes;
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  89
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (37)

;	  2413	
;	  2414	    PROCESS_SELECT_FLAG (DB [D_TIM]);
;	  2415	    end;			!of routine PROCESS_STACK_MESSAGE


						.SBTTL	PROCESS.STACK.MESSAGE
000000	012746  000002 			PROCESS.STACK.MESSAGE:
						MOV	#2,-(SP)			;					2389
000004	060516 					ADD	R5,(SP)				; DB,*
000006	117600  000000 				MOVB	@0(SP),R0
000012	006300 					ASL	R0
000014	066007  000260'				ADD	P.AAQ(R0),PC			; Case dispatch
000020	105765  000156 			1$:	TSTB	156(R5)				; *(DB)					2394
000024	100403 					BMI	2$
000026	004767  175730 				JSR	PC,HEADER.FORMAT.ERROR		;					2396
000032	000431 					BR	6$
000034	052776  010000  000000 		2$:	BIS	#10000,@0(SP)			;					2398
000042	105765  000012 				TSTB	12(R5)				; *(DB)					2400
000046	001001 					BNE	3$
000050	105015 					CLRB	(R5)				; DB
000052	012746  000003 			3$:	MOV	#3,-(SP)			;					2402
000056	005046 					CLR	-(SP)
000060	004767  174014 				JSR	PC,CHANGE.PROTOCOL.STATE
000064	112765  000007  000016 			MOVB	#7,16(R5)			; *,*(DB)				2403
000072	112765  000007  000015 			MOVB	#7,15(R5)			; *,*(DB)				2404
000100	022626 					CMP	(SP)+,(SP)+			;					2392
000102	000403 					BR	5$				;					2389
000104	052776  010000  000000 		4$:	BIS	#10000,@0(SP)			;					2407
000112	004767  177622 			5$:	JSR	PC,PROCESS.SELECT.FLAG		;					2414
000116	005726 				6$:	TST	(SP)+				;					2361
000120	000207 					RTS	PC

; Routine Size:  41 words,	Routine Base:  $CODE$ + 5150
; Maximum stack depth per invocation:  4 words


000260						.PSECT	$PLIT$,  RO ,  D  

					P.AAQ:						; CASE Table for PROCESS.STACK.M+0014	2389
000260	000076 					.WORD	76				; [6$]
000262	000000 					.WORD	0				; [1$]
000264	000000 					.WORD	0				; [1$]
000266	000064 					.WORD	64				; [4$]
000270	000072 					.WORD	72				; [5$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  90
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (38)

;	  2416	routine PROCESS_START_MESSAGE
;	  2417	
;	  2418	!++
;	  2419	! FUNCTIONAL DESCRIPTION:
;	  2420	!
;	  2421	!
;	  2422	! FORMAL PARAMETERS:
;	  2423	!
;	  2424	       (DB : ref block field (D_FIELDS))
;	  2425	!
;	  2426	! IMPLICIT INPUTS:
;	  2427	!
;	  2428	! IMPLICIT OUTPUTS:
;	  2429	!	None
;	  2430	!
;	  2431	! ROUTINE VALUE:
;	  2432	!
;	  2433		: DCP_DB novalue =
;	  2434	!
;	  2435	! SIDE EFFECTS:
;	  2436	!	None
;	  2437	!--
;	  2438	
;	  2439	    begin
;	  2440	
;	  2441	    bind
;	  2442		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  2443	
;	  2444	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  2445		set
;	  2446		[SS_ISTRT, SS_ASTRT] :
;	  2447		    begin
;	  2448	
;	  2449		    if not .HEADER [H_SELECT]
;	  2450		    then
;	  2451			return HEADER_FORMAT_ERROR (DB [D_TIM]);
;	  2452	
;	  2453		    CHANGE_PROTOCOL_STATE (DB [D_TIM], SS_ASTRT, 0);
;	  2454		    DB [S_TRANSMIT_THRESHOLD] = 7;
;	  2455		    DB [S_RECEIVE_THRESHOLD] = 7;
;	  2456		    DB [SS_SEND_STACK] = TRUE;
;	  2457		    DB [SS_SEND_SELECT] = TRUE;
;	  2458		    end;
;	  2459		[SS_RUNNING] :
;	  2460		    begin
;	  2461		    SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_START_RECEIVED);
;	  2462		    SET_LINK (DB [D_TIM], DB [S_REQUESTED_STATE] = SS_HALTED);
;	  2463		    SET_DEVICE (DB [D_TIM]);
;	  2464		    end;
;	  2465		[SS_MAINTENANCE] :
;	  2466		    $NM_DLL_EVENT (2, .DB [S_CIRCUIT_ENTITY]);
;	  2467		[inrange] :
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  91
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (38)

;	  2468		    return NO_OPERATION;
;	  2469		tes;
;	  2470	
;	  2471	    PROCESS_SELECT_FLAG (DB [D_TIM]);
;	  2472	    end;			!of routine PROCESS_START_MESSAGE


						.SBTTL	PROCESS.START.MESSAGE
005272						.PSECT	$CODE$,  RO 

000000	012746  000002 			PROCESS.START.MESSAGE:
						MOV	#2,-(SP)			;					2444
000004	060516 					ADD	R5,(SP)				; DB,*
000006	117600  000000 				MOVB	@0(SP),R0
000012	006300 					ASL	R0
000014	066007  000272'				ADD	P.AAR(R0),PC			; Case dispatch
000020	105765  000156 			1$:	TSTB	156(R5)				; *(DB)					2449
000024	100403 					BMI	2$
000026	004767  175606 				JSR	PC,HEADER.FORMAT.ERROR		;					2451
000032	000452 					BR	6$
000034	012746  000002 			2$:	MOV	#2,-(SP)			;					2453
000040	005046 					CLR	-(SP)
000042	004767  173710 				JSR	PC,CHANGE.PROTOCOL.STATE
000046	112765  000007  000016 			MOVB	#7,16(R5)			; *,*(DB)				2454
000054	112765  000007  000015 			MOVB	#7,15(R5)			; *,*(DB)				2455
000062	052776  000400  000004 			BIS	#400,@4(SP)			;					2456
000070	052776  020000  000004 			BIS	#20000,@4(SP)			;					2457
000076	022626 					CMP	(SP)+,(SP)+			;					2447
000100	000425 					BR	5$				;					2444
000102	012703  100130 			3$:	MOV	#-77650,R3			;					2461
000106	004767  000000V				JSR	PC,SEND.PERSISTENT.ERROR
000112	105065  000006 				CLRB	6(R5)				; *(DB)					2462
000116	005046 					CLR	-(SP)
000120	004767  000000V				JSR	PC,SETLNK
000124	004767  000000V				JSR	PC,SETDEV			;					2463
000130	005726 					TST	(SP)+				;					2460
000132	000410 					BR	5$				;					2444
000134	004767  000000G			4$:	JSR	PC,$NLBEG			;					2466
000140	012700  000502 				MOV	#502,R0
000144	016501  000126 				MOV	126(R5),R1			; *(DB),*
000150	004767  000000G				JSR	PC,$NLEND
000154	004767  177436 			5$:	JSR	PC,PROCESS.SELECT.FLAG		;					2471
000160	005726 				6$:	TST	(SP)+				;					2416
000162	000207 					RTS	PC

; Routine Size:  58 words,	Routine Base:  $CODE$ + 5272
; Maximum stack depth per invocation:  4 words


000272						.PSECT	$PLIT$,  RO ,  D  

					P.AAR:						; CASE Table for PROCESS.START.M+0014	2444
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  92
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (38)

000272	000140 					.WORD	140				; [6$]
000274	000000 					.WORD	0				; [1$]
000276	000000 					.WORD	0				; [1$]
000300	000062 					.WORD	62				; [3$]
000302	000114 					.WORD	114				; [4$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  93
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (39)

;	  2473	routine RECORD_DRIVER_ERROR
;	  2474	
;	  2475	!++
;	  2476	! FUNCTIONAL DESCRIPTION:
;	  2477	!
;	  2478	!
;	  2479	! FORMAL PARAMETERS:
;	  2480	!
;	  2481	       (DB : ref block field (D_FIELDS),
;	  2482		CCB : ref block field (C_FIELDS))
;	  2483	!
;	  2484	! IMPLICIT INPUTS:
;	  2485	!
;	  2486	! IMPLICIT OUTPUTS:
;	  2487	!	None
;	  2488	!
;	  2489	! ROUTINE VALUE:
;	  2490	!
;	  2491		: DCP_DB_CCB novalue =
;	  2492	!
;	  2493	! SIDE EFFECTS:
;	  2494	!	None
;	  2495	!--
;	  2496	
;	  2497	    begin
;	  2498	
;	  2499	    selectone .CCB [C_STS] of
;	  2500		set
;	  2501		[CE_DCR] :
;	  2502		    if .DB [S_PROTOCOL_STATE] eql SS_RUNNING
;	  2503		    then
;	  2504			begin
;	  2505			DB [S_PENDING_NAK_REASON] = RN_DBC;
;	  2506			COUNTER_INCREMENT (DB, SI_N2);
;	  2507			COUNTER_INCREMENT (DB, S_DATA_ERRORS_INBOUND);
;	  2508			end
;	  2509		    else
;	  2510			begin
;	  2511			COUNTER_INCREMENT (DB, LL_NNS);
;	  2512			COUNTER_INCREMENT (DB, L_LOCAL_STATION_ERRORS);
;	  2513			return;
;	  2514			end;
;	  2515		[CE_BUF] :
;	  2516		    begin
;	  2517		    DB [S_PENDING_NAK_REASON] = RN_BUF;
;	  2518		    COUNTER_INCREMENT (DB, SL_N8);
;	  2519		    COUNTER_INCREMENT (DB, S_LOCAL_BUFFER_ERRORS);
;	  2520		    end;
;	  2521		[CE_ROV] :
;	  2522		    begin
;	  2523		    DB [S_PENDING_NAK_REASON] = RN_ROV;
;	  2524		    COUNTER_INCREMENT (DB, LL_N9);
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  94
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (39)

;	  2525		    COUNTER_INCREMENT (DB, L_LOCAL_STATION_ERRORS);
;	  2526		    end;
;	  2527		[CE_MTL] :
;	  2528		    begin
;	  2529	
;	  2530		    external
;	  2531			MCB$GW_RDB_SIZE;
;	  2532	
;	P 2533		    $NM_DLL_EVENT (9, .DB [S_CIRCUIT_ENTITY],
;	  2534			PARAMETER_DU_2 (8, MCB$GW_RDB_SIZE));
;	  2535		    DB [S_PENDING_NAK_REASON] = RN_MTL;
;	  2536		    COUNTER_INCREMENT (DB, SL_N16);
;	  2537		    COUNTER_INCREMENT (DB, S_LOCAL_BUFFER_ERRORS);
;	  2538		    end;
;	  2539		[CE_HFE] :
;	  2540		    begin
;	  2541		    DB [S_PENDING_NAK_REASON] = RN_HBC;
;	  2542		    COUNTER_INCREMENT (DB, SI_N1);
;	  2543		    COUNTER_INCREMENT (DB, S_DATA_ERRORS_INBOUND);
;	  2544		    end;
;	  2545		[otherwise] :
;	  2546		    return;
;	  2547		tes;
;	  2548	
;	  2549	    DB [SS_SEND_NAK] = TRUE;
;	  2550	    DB [SS_SEND_ACK] = FALSE;
;	  2551	    TEST_RECEIVE_THRESHOLD (DB [D_TIM]);
;	  2552	    SEND_DATA (DB [D_TIM]);
;	  2553	    end;			!of routine RECORD_DRIVER_ERROR


						.GLOBL	.RDBSZ, $DPDU2


						.SBTTL	RECORD.DRIVER.ERROR
005456						.PSECT	$CODE$,  RO 

000000	010446 				RECORD.DRIVER.ERROR:
						MOV	R4,-(SP)			;					2473
000002	016401  000014 				MOV	14(R4),R1			; *(CCB),*				2499
000006	020127  177570 				CMP	R1,#-210
000012	001024 					BNE	2$
000014	126527  000002  000003 			CMPB	2(R5),#3			; *(DB),*				2502
000022	001007 					BNE	1$
000024	112765  000002  000077 			MOVB	#2,77(R5)			; *,*(DB)				2505
000032	052765  001000  000044 			BIS	#1000,44(R5)			; *,*(DB)				2506
000040	000510 					BR	6$				;					2507
000042	052765  001000  000064 		1$:	BIS	#1000,64(R5)			; *,*(DB)				2511
000050	012700  000064 				MOV	#64,R0				;					2512
000054	060500 					ADD	R5,R0				; DB,*
000056	004767  000000G				JSR	PC,$IC8
000062	000516 					BR	9$				;					2510
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  95
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (39)

000064	020127  177600 			2$:	CMP	R1,#-200			;					2499
000070	001011 					BNE	3$
000072	112765  000010  000077 			MOVB	#10,77(R5)			; *,*(DB)				2517
000100	052765  000400  000046 			BIS	#400,46(R5)			; *,*(DB)				2518
000106	012700  000046 				MOV	#46,R0				;					2519
000112	000465 					BR	7$
000114	020127  177540 			3$:	CMP	R1,#-240			;					2499
000120	001011 					BNE	4$
000122	112765  000011  000077 			MOVB	#11,77(R5)			; *,*(DB)				2523
000130	052765  000400  000064 			BIS	#400,64(R5)			; *,*(DB)				2524
000136	012700  000064 				MOV	#64,R0				;					2525
000142	000451 					BR	7$
000144	020127  177550 			4$:	CMP	R1,#-230			;					2499
000150	001033 					BNE	5$
000152	004767  000000G				JSR	PC,$NLBEG			;					2534
000156	012746  000010 				MOV	#10,-(SP)
000162	016700  000000G				MOV	.RDBSZ,R0
000166	004767  000000G				JSR	PC,$DPDU2
000172	012700  000511 				MOV	#511,R0
000176	016501  000126 				MOV	126(R5),R1			; *(DB),*
000202	004767  000000G				JSR	PC,$NLEND
000206	112765  000020  000077 			MOVB	#20,77(R5)			; *,*(DB)				2535
000214	052765  001000  000046 			BIS	#1000,46(R5)			; *,*(DB)				2536
000222	012700  000046 				MOV	#46,R0				;					2537
000226	060500 					ADD	R5,R0				; DB,*
000230	004767  000000G				JSR	PC,$IC8
000234	005726 					TST	(SP)+				;					2528
000236	000416 					BR	8$				;					2499
000240	020127  177560 			5$:	CMP	R1,#-220
000244	001025 					BNE	9$
000246	112765  000001  000077 			MOVB	#1,77(R5)			; *,*(DB)				2541
000254	052765  000400  000044 			BIS	#400,44(R5)			; *,*(DB)				2542
000262	012700  000044 			6$:	MOV	#44,R0				;					2543
000266	060500 				7$:	ADD	R5,R0				; DB,*
000270	004767  000000G				JSR	PC,$IC8
000274	052765  002000  000002 		8$:	BIS	#2000,2(R5)			; *,*(DB)				2549
000302	042765  010000  000002 			BIC	#10000,2(R5)			; *,*(DB)				2550
000310	004767  000000V				JSR	PC,TEST.RECEIVE.THRESHOLD	;					2551
000314	004767  000000V				JSR	PC,SEND.DATA			;					2552
000320	012604 				9$:	MOV	(SP)+,R4			;					2473
000322	000207 					RTS	PC

; Routine Size:  106 words,	Routine Base:  $CODE$ + 5456
; Maximum stack depth per invocation:  3 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  96
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (40)

;	  2554	routine RECORD_NAK_REASON
;	  2555	
;	  2556	!++
;	  2557	! FUNCTIONAL DESCRIPTION:
;	  2558	!
;	  2559	!
;	  2560	! FORMAL PARAMETERS:
;	  2561	!
;	  2562	       (DB : ref block field (D_FIELDS))
;	  2563	!
;	  2564	! IMPLICIT INPUTS:
;	  2565	!
;	  2566	! IMPLICIT OUTPUTS:
;	  2567	!	None
;	  2568	!
;	  2569	! ROUTINE VALUE:
;	  2570	!
;	  2571		: DCP_DB novalue =
;	  2572	!
;	  2573	! SIDE EFFECTS:
;	  2574	!	None
;	  2575	!--
;	  2576	
;	  2577	    begin
;	  2578	
;	  2579	    bind
;	  2580		HEADER = DB [L_HEADER] : block [H_LENGTH] field (HDR_FIELDS);
;	  2581	
;	  2582	    selectone .HEADER [H_SUBTYPE] of
;	  2583		set
;	  2584		[RN_HBC] :
;	  2585		    begin
;	  2586		    COUNTER_INCREMENT (DB, SO_N1);
;	  2587		    COUNTER_INCREMENT (DB, S_DATA_ERRORS_OUTBOUND);
;	  2588		    TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
;	  2589		    end;
;	  2590		[RN_DBC] :
;	  2591		    begin
;	  2592		    COUNTER_INCREMENT (DB, SO_N2);
;	  2593		    COUNTER_INCREMENT (DB, S_DATA_ERRORS_OUTBOUND);
;	  2594		    TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
;	  2595		    end;
;	  2596		[RN_REP] :
;	  2597		    begin
;	  2598		    COUNTER_INCREMENT (DB, SO_N3);
;	  2599		    COUNTER_INCREMENT (DB, S_DATA_ERRORS_OUTBOUND);
;	  2600		    end;
;	  2601		[RN_BUF] :
;	  2602		    begin
;	  2603		    COUNTER_INCREMENT (DB, SR_N8);
;	  2604		    COUNTER_INCREMENT (DB, S_REMOTE_BUFFER_ERRORS);
;	  2605		    TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  97
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (40)

;	  2606		    end;
;	  2607		[RN_ROV] :
;	  2608		    begin
;	  2609		    COUNTER_INCREMENT (DB, LR_N9);
;	  2610		    COUNTER_INCREMENT (DB, L_REMOTE_STATION_ERRORS);
;	  2611		    TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
;	  2612		    end;
;	  2613		[RN_MTL] :
;	  2614		    begin
;	  2615		    COUNTER_INCREMENT (DB, SR_N16);
;	  2616		    COUNTER_INCREMENT (DB, S_REMOTE_BUFFER_ERRORS);
;	  2617		    TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
;	  2618		    end;
;	  2619		[RN_HFE] :
;	  2620		    begin
;	  2621		    COUNTER_INCREMENT (DB, LL_N17);
;	  2622		    COUNTER_INCREMENT (DB, L_LOCAL_STATION_ERRORS);
;	  2623		    TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
;	  2624		    end;
;	  2625		[otherwise] :
;	  2626		    TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
;	  2627		tes;
;	  2628	
;	  2629	    if .HEADER [H_RESP] neq .DB [S_TM1]
;	  2630	    then
;	  2631		begin
;	  2632		DB [SS_RETRANSMIT] = TRUE;
;	  2633	
;	  2634		if .DB [S_MOTD] eql 0 then RETRANSMIT_UNACKED_MESSAGES (DB [D_TIM]);
;	  2635	
;	  2636		end;
;	  2637	
;	  2638	    DB [SS_START_REP_TIMER] = FALSE;
;	  2639	    DB [SS_TIMING_REP] = FALSE;
;	  2640	
;	  2641	    if .DB [L_DUPLEX] eql DL_FULL then DB [D_TIM] = 0;
;	  2642	
;	  2643	    end;			!of routine RECORD_NAK_REASON


						.SBTTL	RECORD.NAK.REASON
000000	005001 				RECORD.NAK.REASON:
						CLR	R1				;					2582
000002	156501  000156 				BISB	156(R5),R1			; *(DB),*
000006	020127  000001 				CMP	R1,#1
000012	001004 					BNE	1$
000014	052765  000400  000042 			BIS	#400,42(R5)			; *,*(DB)				2586
000022	000406 					BR	2$				;					2587
000024	020127  000002 			1$:	CMP	R1,#2				;					2582
000030	001006 					BNE	3$
000032	052765  001000  000042 			BIS	#1000,42(R5)			; *,*(DB)				2592
000040	012700  000042 			2$:	MOV	#42,R0				;					2593
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  98
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (40)

000044	000455 					BR	9$
000046	020127  000003 			3$:	CMP	R1,#3				;					2582
000052	001011 					BNE	4$
000054	052765  002000  000042 			BIS	#2000,42(R5)			; *,*(DB)				2598
000062	012700  000042 				MOV	#42,R0				;					2599
000066	060500 					ADD	R5,R0				; DB,*
000070	004767  000000G				JSR	PC,$IC8
000074	000446 					BR	11$				;					2582
000076	020127  000010 			4$:	CMP	R1,#10
000102	001004 					BNE	5$
000104	052765  000400  000050 			BIS	#400,50(R5)			; *,*(DB)				2603
000112	000417 					BR	7$				;					2604
000114	020127  000011 			5$:	CMP	R1,#11				;					2582
000120	001006 					BNE	6$
000122	052765  000400  000062 			BIS	#400,62(R5)			; *,*(DB)				2609
000130	012700  000062 				MOV	#62,R0				;					2610
000134	000421 					BR	9$
000136	020127  000020 			6$:	CMP	R1,#20				;					2582
000142	001006 					BNE	8$
000144	052765  001000  000050 			BIS	#1000,50(R5)			; *,*(DB)				2615
000152	012700  000050 			7$:	MOV	#50,R0				;					2616
000156	000410 					BR	9$
000160	020127  000021 			8$:	CMP	R1,#21				;					2582
000164	001010 					BNE	10$
000166	052765  004000  000064 			BIS	#4000,64(R5)			; *,*(DB)				2621
000174	012700  000064 				MOV	#64,R0				;					2622
000200	060500 				9$:	ADD	R5,R0				; DB,*
000202	004767  000000G				JSR	PC,$IC8
000206	004767  000000V			10$:	JSR	PC,TEST.TRANSMIT.THRESHOLD	;					2626
000212	126565  000157  000071 		11$:	CMPB	157(R5),71(R5)			; *(DB),*(DB)				2629
000220	001407 					BEQ	12$
000222	052715  002000 				BIS	#2000,(R5)			; *,DB					2632
000226	105765  000076 				TSTB	76(R5)				; *(DB)					2634
000232	001002 					BNE	12$
000234	004767  000000V				JSR	PC,RETRANSMIT.UNACKED.MESSAGES
000240	042715  005000 			12$:	BIC	#5000,(R5)			; *,DB					2639
000244	105765  000012 				TSTB	12(R5)				; *(DB)					2641
000250	001001 					BNE	13$
000252	105015 					CLRB	(R5)				; DB
000254	000207 				13$:	RTS	PC				;					2554

; Routine Size:  87 words,	Routine Base:  $CODE$ + 6002
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page  99
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (41)

;	  2644	routine RESYNCHRONIZE
;	  2645	
;	  2646	!++
;	  2647	! FUNCTIONAL DESCRIPTION:
;	  2648	!
;	  2649	!
;	  2650	! FORMAL PARAMETERS:
;	  2651	!
;	  2652	       (DB : ref block field (D_FIELDS))
;	  2653	!
;	  2654	! IMPLICIT INPUTS:
;	  2655	!
;	  2656	! IMPLICIT OUTPUTS:
;	  2657	!	None
;	  2658	!
;	  2659	! ROUTINE VALUE:
;	  2660	!
;	  2661		: DCP_DB novalue =
;	  2662	!
;	  2663	! SIDE EFFECTS:
;	  2664	!	None
;	  2665	!--
;	  2666	
;	  2667	    begin
;	  2668	
;	  2669	    local
;	  2670		CCB : ref block field (C_FIELDS);
;	  2671	
;	  2672	    external routine
;	  2673		$DDCRA : DDM_CCB novalue;
;	  2674	
;	  2675	    if .DB [LS_RESYNCH_IN_PROGRESS] then return;
;	  2676	
;	  2677	    if not $MCB_GET_CCB (CCB) then return;
;	  2678	
;	  2679	    DB [LS_RESYNCH_IN_PROGRESS] = TRUE;
;	  2680	    CCB [C_HANDLE] = .DB [L_DRIVER_HANDLE];
;	  2681	    $DDCRA (.CCB);
;	  2682	    end;			!of routine RESYNCHRONIZE


						.GLOBL	$DDCRA


						.SBTTL	RESYNCHRONIZE
000000	032715  000400 			RESYNCHRONIZE:
						BIT	#400,(R5)			; *,DB					2675
000004	001012 					BNE	1$
000006	004767  000000G				JSR	PC,$CCBGT			;					2677
000012	103407 					BCS	1$
000014	052715  000400 				BIS	#400,(R5)			; *,DB					2679
000020	016564  000144  000010 			MOV	144(R5),10(R4)			; *(DB),*(CCB)				2680
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 100
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (41)

000026	004767  000000G				JSR	PC,$DDCRA			;					2681
000032	000207 				1$:	RTS	PC				;					2644

; Routine Size:  14 words,	Routine Base:  $CODE$ + 6260
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 101
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (42)

;	  2683	routine RETRANSMIT_UNACKED_MESSAGES
;	  2684	
;	  2685	!++
;	  2686	! FUNCTIONAL DESCRIPTION:
;	  2687	!
;	  2688	!
;	  2689	! FORMAL PARAMETERS:
;	  2690	!
;	  2691	       (DB : ref block field (D_FIELDS))
;	  2692	!
;	  2693	! IMPLICIT INPUTS:
;	  2694	!
;	  2695	! IMPLICIT OUTPUTS:
;	  2696	!	None
;	  2697	!
;	  2698	! ROUTINE VALUE:
;	  2699	!
;	  2700		: DCP_DB novalue =
;	  2701	!
;	  2702	! SIDE EFFECTS:
;	  2703	!	None
;	  2704	!--
;	  2705	
;	  2706	    begin
;	  2707	    DB [SS_RETRANSMIT] = FALSE;
;	  2708	
;	  2709	    if .DB [$SUB_FIELD (S_WAITING_FOR_ACK, LIST_FIRST)] neqa 0
;	  2710	    then
;	  2711		begin
;	  2712	
;	  2713		if (.DB [$SUB_FIELD (S_WAITING_FOR_ACK, LIST_LAST)] =
;	  2714		    .DB [$SUB_FIELD (S_WAITING_FOR_TRANSMIT, LIST_FIRST)]) eqla 0
;	  2715		then
;	  2716		    DB [$SUB_FIELD (S_WAITING_FOR_TRANSMIT, LIST_LAST)] = .DB [$SUB_FIELD (S_WAITING_FOR_ACK, LIST_LAST)];
;	  2717	
;	  2718		DB [$SUB_FIELD (S_WAITING_FOR_TRANSMIT, LIST_FIRST)] = .DB [$SUB_FIELD (S_WAITING_FOR_ACK, LIST_FIRST)];
;	  2719		$MCB_INITIALIZE_QUEUE (DB [S_WAITING_FOR_ACK]);
;	  2720		end;
;	  2721	
;	  2722	    DB [S_TM1] = .DB [S_A];
;	  2723	    end;			!of routine RETRANSMIT_UNACKED_MESSAGES


						.SBTTL	RETRANSMIT.UNACKED.MESSAGES
000000	042715  002000 			RETRANSMIT.UNACKED.MESSAGES:
						BIC	#2000,(R5)			; *,DB					2707
000004	012701  000120 				MOV	#120,R1				;					2709
000010	060501 					ADD	R5,R1				; DB,*
000012	005711 					TST	(R1)
000014	001414 					BEQ	2$
000016	016500  000122 				MOV	122(R5),R0			; *(DB),*				2713
000022	016510  000114 				MOV	114(R5),(R0)			; *(DB),*
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 102
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (42)

000026	001002 					BNE	1$				;					2714
000030	010065  000116 				MOV	R0,116(R5)			; *,*(DB)				2716
000034	011165  000114 			1$:	MOV	(R1),114(R5)			; *,*(DB)				2718
000040	005011 					CLR	(R1)				;					2719
000042	010161  000002 				MOV	R1,2(R1)
000046	116565  000074  000071 		2$:	MOVB	74(R5),71(R5)			; *(DB),*(DB)				2722
000054	000207 					RTS	PC				;					2683

; Routine Size:  23 words,	Routine Base:  $CODE$ + 6314
; Maximum stack depth per invocation:  0 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 103
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (43)

;	  2724	routine RETURN_ACKED_MESSAGES
;	  2725	
;	  2726	!++
;	  2727	! FUNCTIONAL DESCRIPTION:
;	  2728	!
;	  2729	!
;	  2730	! FORMAL PARAMETERS:
;	  2731	!
;	  2732	       (DB : ref block field (D_FIELDS))
;	  2733	!
;	  2734	! IMPLICIT INPUTS:
;	  2735	!
;	  2736	! IMPLICIT OUTPUTS:
;	  2737	!	None
;	  2738	!
;	  2739	! ROUTINE VALUE:
;	  2740	!
;	  2741		: DCP_DB novalue =
;	  2742	!
;	  2743	! SIDE EFFECTS:
;	  2744	!	None
;	  2745	!--
;	  2746	
;	  2747	    begin
;	  2748	
;	  2749	    until .DB [S_AR] eql .DB [S_A] do
;	  2750		begin
;	  2751	
;	  2752		local
;	  2753		    CCB : ref block field (C_FIELDS);
;	  2754	
;	  2755		if not $MCB_DEQUEUE_CCB (DB [S_WAITING_FOR_ACK], CCB) then return;
;	  2756	
;	  2757		DB [S_AR] = .DB [S_AR] + 1;
;	  2758		DB [S_TRANSMIT_THRESHOLD] = 7;
;	  2759		SCHEDULE_TRANSMIT (.CCB, DB [D_TIM], DLL$_SUCCESS);
;	  2760		end;
;	  2761	
;	  2762	    end;			!of routine RETURN_ACKED_MESSAGES


						.SBTTL	RETURN.ACKED.MESSAGES
000000	012746  000074 			RETURN.ACKED.MESSAGES:
						MOV	#74,-(SP)			;					2749
000004	060516 					ADD	R5,(SP)				; DB,*
000006	010546 					MOV	R5,-(SP)			; DB,*					2755
000010	062716  000120 				ADD	#120,(SP)
000014	005001 				1$:	CLR	R1				;					2749
000016	157601  000002 				BISB	@2(SP),R1
000022	017600  000002 				MOV	@2(SP),R0
000026	105000 					CLRB	R0
000030	000300 					SWAB	R0
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 104
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (43)

000032	020001 					CMP	R0,R1
000034	001417 					BEQ	2$
000036	011603 					MOV	(SP),R3				;					2755
000040	004767  000000G				JSR	PC,$CMQRM
000044	103413 					BCS	2$
000046	062776  000400  000002 			ADD	#400,@2(SP)			;					2757
000054	112765  000007  000016 			MOVB	#7,16(R5)			; *,*(DB)				2758
000062	012703  100001 				MOV	#-77777,R3			;					2759
000066	004767  000000V				JSR	PC,SCHEDULE.TRANSMIT
000072	000750 					BR	1$				;					2749
000074	022626 				2$:	CMP	(SP)+,(SP)+			;					2724
000076	000207 					RTS	PC

; Routine Size:  32 words,	Routine Base:  $CODE$ + 6372
; Maximum stack depth per invocation:  3 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 105
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (44)

;	  2763	routine SCHEDULE_PERSISTENT_AST
;	  2764	
;	  2765	!++
;	  2766	! FUNCTIONAL DESCRIPTION:
;	  2767	!
;	  2768	!
;	  2769	! FORMAL PARAMETERS:
;	  2770	!
;	  2771	       (CCB : ref block field (C_FIELDS),	! CCB to use for status nodification.
;	  2772		DB : ref block field (D_FIELDS))
;	  2773	!
;	  2774	! IMPLICIT INPUTS:
;	  2775	!	None
;	  2776	!
;	  2777	! IMPLICIT OUTPUTS:
;	  2778	!	None
;	  2779	!
;	  2780	! ROUTINE VALUE:
;	  2781	!
;	  2782		: DCP_CCB_DB novalue =
;	  2783	!
;	  2784	! SIDE EFFECTS:
;	  2785	!	None
;	  2786	!--
;	  2787	
;	  2788	    begin
;	  2789	    CCB [C_HANDLE] = .DB [S_USER_HANDLE];
;	  2790	    CCB [C_FNC] = FC_AST;
;	  2791	    CCB [C_MOD] = DLL$K_PERSISTENT_ERROR;
;	  2792	    CCB [C_STS] = .DB [S_PERSISTENT_ERROR];
;	  2793	    $MCB_SCHEDULE_CCB (.CCB);
;	  2794	    DB [S_PERSISTENT_ERROR] = 0;
;	  2795	    end;			!of routine SCHEDULE_PERSISTENT_AST


						.SBTTL	SCHEDULE.PERSISTENT.AST
000000	016564  000130  000010 		SCHEDULE.PERSISTENT.AST:
						MOV	130(R5),10(R4)			; *(DB),*(CCB)				2789
000006	105064  000012 				CLRB	12(R4)				; *(CCB)				2790
000012	112764  000004  000013 			MOVB	#4,13(R4)			; *,*(CCB)				2791
000020	016564  000134  000014 			MOV	134(R5),14(R4)			; *(DB),*(CCB)				2792
000026	004767  000000G				JSR	PC,$SCHED			;					2793
000032	005065  000134 				CLR	134(R5)				; *(DB)					2794
000036	000207 					RTS	PC				;					2763

; Routine Size:  16 words,	Routine Base:  $CODE$ + 6472
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 106
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (45)

;	  2796	routine SCHEDULE_RECEIVE
;	  2797	
;	  2798	!++
;	  2799	! FUNCTIONAL DESCRIPTION:
;	  2800	!
;	  2801	!
;	  2802	! FORMAL PARAMETERS:
;	  2803	!
;	  2804	       (CCB : ref block field (C_FIELDS),
;	  2805		DB : ref block field (D_FIELDS))
;	  2806	!
;	  2807	! IMPLICIT INPUTS:
;	  2808	!	None
;	  2809	!
;	  2810	! IMPLICIT OUTPUTS:
;	  2811	!	None
;	  2812	!
;	  2813	! ROUTINE VALUE:
;	  2814	!
;	  2815		: DCP_CCB_DB novalue =
;	  2816	!
;	  2817	! SIDE EFFECTS:
;	  2818	!	None
;	  2819	!--
;	  2820	
;	  2821	    begin
;	  2822	    CCB [C_HANDLE] = .DB [S_USER_HANDLE];
;	  2823	
;	  2824	    if .CCB [C_HANDLE] eqlu 0 then return STARCE (DB [D_TIM], .CCB);
;	  2825	
;	  2826	    DB [D_USER_BUFFERS] = .DB [D_USER_BUFFERS] + 1;
;	  2827	    CCB [C_FNC] = FC_RCP;
;	  2828	    CCB [C_STS] = DLL$_SUCCESS;
;	  2829	    $MCB_SCHEDULE_CCB (.CCB);
;	  2830	    end;			!of routine SCHEDULE_RECEIVE


						.SBTTL	SCHEDULE.RECEIVE
000000	010446 				SCHEDULE.RECEIVE:
						MOV	R4,-(SP)			;					2796
000002	010400 					MOV	R4,R0				;					2822
000004	016560  000130  000010 			MOV	130(R5),10(R0)			; *(DB),*
000012	001003 					BNE	1$				;					2824
000014	004767  000000V				JSR	PC,STARCE
000020	000414 					BR	2$
000022	005265  000136 			1$:	INC	136(R5)				; *(DB)					2826
000026	011600 					MOV	(SP),R0				;					2827
000030	112760  000016  000012 			MOVB	#16,12(R0)
000036	012760  100001  000014 			MOV	#-77777,14(R0)			;					2828
000044	010004 					MOV	R0,R4				;					2829
000046	004767  000000G				JSR	PC,$SCHED
000052	005726 				2$:	TST	(SP)+				;					2796
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 107
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (45)

000054	000207 					RTS	PC

; Routine Size:  23 words,	Routine Base:  $CODE$ + 6532
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 108
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (46)

;	  2831	routine SCHEDULE_STATE_AST
;	  2832	
;	  2833	!++
;	  2834	! FUNCTIONAL DESCRIPTION:
;	  2835	!
;	  2836	!
;	  2837	! FORMAL PARAMETERS:
;	  2838	!
;	  2839	       (CCB : ref block field (C_FIELDS),
;	  2840		DB : ref block field (D_FIELDS))
;	  2841	!
;	  2842	! IMPLICIT INPUTS:
;	  2843	!	None
;	  2844	!
;	  2845	! IMPLICIT OUTPUTS:
;	  2846	!	None
;	  2847	!
;	  2848	! ROUTINE VALUE:
;	  2849	!
;	  2850		: DCP_CCB_DB novalue =
;	  2851	!
;	  2852	! SIDE EFFECTS:
;	  2853	!	None
;	  2854	!--
;	  2855	
;	  2856	    begin
;	  2857	
;	  2858	    if not .DB [SS_NOTIFY_STATE] then return $MCB_RETURN_CCB (.CCB);
;	  2859	
;	  2860	    CCB [C_HANDLE] = .DB [S_USER_HANDLE];
;	  2861	    CCB [C_FNC] = FC_AST;
;	  2862	    CCB [C_MOD] = DLL$K_STATE;
;	  2863	    CCB [C_STS] = CURRENT_STATUS (DB [D_TIM]);
;	  2864	    $MCB_SCHEDULE_CCB (.CCB);
;	  2865	
;	  2866	    if .DB [SS_NOTIFY_STATE]
;	  2867	    then
;	  2868	
;	  2869		if $MCB_GET_CCB (CCB)
;	  2870		then
;	  2871		    SCHEDULE_STATE_AST (.CCB, DB [D_TIM])
;	  2872		else
;	  2873		    $MCB_REQUEST_CCB ();
;	  2874	    end;			!of routine SCHEDULE_STATE_AST


						.GLOBL	$CCBRQ


						.SBTTL	SCHEDULE.STATE.AST
000000	010401 				SCHEDULE.STATE.AST:
						MOV	R4,R1				; *,CCB					2831
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 109
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (46)

000002	032765  001000  000004 			BIT	#1000,4(R5)			; *,*(DB)				2858
000010	001003 					BNE	1$
000012	004767  000000G				JSR	PC,$CCBRT
000016	000207 					RTS	PC
000020	016561  000130  000010 		1$:	MOV	130(R5),10(R1)			; *(DB),*(CCB)				2860
000026	105061  000012 				CLRB	12(R1)				; *(CCB)				2861
000032	105061  000013 				CLRB	13(R1)				; *(CCB)				2862
000036	004767  173016 				JSR	PC,CURRENT.STATUS		;					2863
000042	010061  000014 				MOV	R0,14(R1)			; *,*(CCB)
000046	010104 					MOV	R1,R4				; CCB,*					2864
000050	004767  000000G				JSR	PC,$SCHED
000054	032765  001000  000004 			BIT	#1000,4(R5)			; *,*(DB)				2866
000062	001411 					BEQ	3$
000064	004767  000000G				JSR	PC,$CCBGT			;					2869
000070	103404 					BCS	2$
000072	010401 					MOV	R4,R1				; $MCB$R4,CCB
000074	004767  177700 				JSR	PC,SCHEDULE.STATE.AST		;					2871
000100	000207 					RTS	PC				;					2869
000102	004767  000000G			2$:	JSR	PC,$CCBRQ			;					2873
000106	000207 				3$:	RTS	PC				;					2831

; Routine Size:  36 words,	Routine Base:  $CODE$ + 6610
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 110
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (47)

;	  2875	routine SCHEDULE_TRANSIENT_AST
;	  2876	
;	  2877	!++
;	  2878	! FUNCTIONAL DESCRIPTION:
;	  2879	!
;	  2880	!
;	  2881	! FORMAL PARAMETERS:
;	  2882	!
;	  2883	       (CCB : ref block field (C_FIELDS),
;	  2884		DB : ref block field (D_FIELDS))
;	  2885	!
;	  2886	! IMPLICIT INPUTS:
;	  2887	!	None
;	  2888	!
;	  2889	! IMPLICIT OUTPUTS:
;	  2890	!	None
;	  2891	!
;	  2892	! ROUTINE VALUE:
;	  2893	!
;	  2894		: DCP_CCB_DB novalue =
;	  2895	!
;	  2896	! SIDE EFFECTS:
;	  2897	!	None
;	  2898	!--
;	  2899	
;	  2900	    begin
;	  2901	    CCB [C_HANDLE] = .DB [S_USER_HANDLE];
;	  2902	    CCB [C_FNC] = FC_AST;
;	  2903	    CCB [C_MOD] = DLL$K_TRANSIENT_ERROR;
;	  2904	    CCB [C_STS] = .DB [S_TRANSIENT_ERROR];
;	  2905	    $MCB_SCHEDULE_CCB (.CCB);
;	  2906	    DB [S_TRANSIENT_ERROR] = 0;
;	  2907	    end;			!of routine SCHEDULE_TRANSIENT_AST


						.SBTTL	SCHEDULE.TRANSIENT.AST
000000	016564  000130  000010 		SCHEDULE.TRANSIENT.AST:
						MOV	130(R5),10(R4)			; *(DB),*(CCB)				2901
000006	105064  000012 				CLRB	12(R4)				; *(CCB)				2902
000012	112764  000002  000013 			MOVB	#2,13(R4)			; *,*(CCB)				2903
000020	016564  000132  000014 			MOV	132(R5),14(R4)			; *(DB),*(CCB)				2904
000026	004767  000000G				JSR	PC,$SCHED			;					2905
000032	005065  000132 				CLR	132(R5)				; *(DB)					2906
000036	000207 					RTS	PC				;					2875

; Routine Size:  16 words,	Routine Base:  $CODE$ + 6720
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 111
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (48)

;	  2908	routine SCHEDULE_TRANSMIT
;	  2909	
;	  2910	!++
;	  2911	! FUNCTIONAL DESCRIPTION:
;	  2912	!
;	  2913	!
;	  2914	! FORMAL PARAMETERS:
;	  2915	!
;	  2916	       (CCB : ref block field (C_FIELDS),
;	  2917		DB : ref block field (D_FIELDS),
;	  2918		STATUS)
;	  2919	!
;	  2920	! IMPLICIT INPUTS:
;	  2921	!	None
;	  2922	!
;	  2923	! IMPLICIT OUTPUTS:
;	  2924	!	None
;	  2925	!
;	  2926	! ROUTINE VALUE:
;	  2927	!
;	  2928		: DCP_CCB_DB_STS novalue =
;	  2929	!
;	  2930	! SIDE EFFECTS:
;	  2931	!	None
;	  2932	!--
;	  2933	
;	  2934	    begin
;	  2935	    CCB [C_FNC] = FC_XCP;
;	  2936	    CCB [C_STS] = .STATUS;
;	  2937	    $MCB_SCHEDULE_CCB (.CCB);
;	  2938	
;	  2939	    DB [D_USER_BUFFERS] = .DB [D_USER_BUFFERS] - 1;
;	  2940	
;	  2941	    if .DB [D_USER_BUFFERS] neq 0 then return;
;	  2942	
;	  2943	    if .DB [S_CONTROL_CCB] neqa 0
;	  2944	    then
;	  2945		begin
;	  2946		$MCB_SCHEDULE_CCB (.DB [S_CONTROL_CCB]);
;	  2947		DB [S_CONTROL_CCB] = 0;
;	  2948		end;
;	  2949	
;	  2950	    end;			!of routine SCHEDULE_TRANSMIT


						.SBTTL	SCHEDULE.TRANSMIT
000000	112764  000014  000012 		SCHEDULE.TRANSMIT:
						MOVB	#14,12(R4)			; *,*(CCB)				2935
000006	010364  000014 				MOV	R3,14(R4)			; STATUS,*(CCB)				2936
000012	004767  000000G				JSR	PC,$SCHED			;					2937
000016	005365  000136 				DEC	136(R5)				; *(DB)					2939
000022	001011 					BNE	1$				;					2941
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 112
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (48)

000024	012700  000124 				MOV	#124,R0				;					2943
000030	060500 					ADD	R5,R0				; DB,*
000032	005710 					TST	(R0)
000034	001404 					BEQ	1$
000036	011004 					MOV	(R0),R4				;					2946
000040	004767  000000G				JSR	PC,$SCHED
000044	005010 					CLR	(R0)				;					2947
000046	000207 				1$:	RTS	PC				;					2908

; Routine Size:  20 words,	Routine Base:  $CODE$ + 6760
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 113
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (49)

;	  2951	routine SEND_DATA
;	  2952	
;	  2953	!++
;	  2954	! FUNCTIONAL DESCRIPTION:
;	  2955	!
;	  2956	!
;	  2957	! FORMAL PARAMETERS:
;	  2958	!
;	  2959	       (DB : ref block field (D_FIELDS))
;	  2960	!
;	  2961	! IMPLICIT INPUTS:
;	  2962	!	None
;	  2963	!
;	  2964	! IMPLICIT OUTPUTS:
;	  2965	!	None
;	  2966	!
;	  2967	! ROUTINE VALUE:
;	  2968	!
;	  2969		: DCP_DB novalue =
;	  2970	!
;	  2971	! SIDE EFFECTS:
;	  2972	!	None
;	  2973	!--
;	  2974	
;	  2975	    begin
;	  2976	
;	  2977	    if .DB [D_CONTROL_FLAGS] neq 0 then return;
;	  2978	
;	  2979	    if .DB [L_MESSAGES_AT_DRIVER] gtru 0 then return;
;	  2980	
;	  2981	    if not .DB [LS_STATION_ENABLED] then return;
;	  2982	
;	  2983	    DB [L_BABBLE_COUNT] = .DB [S_MAXIMUM_TRANSMITS] %(4)%;
;	  2984	
;	  2985	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  2986		set
;	  2987		[SS_ISTRT, SS_ASTRT] :
;	  2988		    begin
;	  2989	
;	  2990		    if not (.DB [SS_SEND_START] or .DB [SS_SEND_STACK]) then return;
;	  2991	
;	  2992		    if (BUILD_CONTROL_MESSAGE (DB [D_TIM]) eqla 0) then return;
;	  2993	
;	  2994		    end;
;	  2995		[SS_RUNNING] :
;	  2996		    begin
;	  2997	
;	  2998		    label
;	  2999			BUILD_MESSAGES;
;	  3000	
;	  3001		    BUILD_MESSAGES : begin
;	  3002	
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 114
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (49)

;	  3003		    while (.DB [SS_SEND_REP] or .DB [SS_SEND_NAK]) do
;	  3004	
;	  3005			if (BUILD_CONTROL_MESSAGE (DB [D_TIM]) eqla 0) then leave BUILD_MESSAGES;
;	  3006	
;	  3007		    if not .DB [SS_RETRANSMIT]
;	  3008		    then
;	  3009	
;	  3010			while .DB [L_MESSAGES_AT_DRIVER] lss .DB [L_MAXIMUM_AT_DRIVER] do
;	  3011			    begin
;	  3012	
;	  3013			    local
;	  3014				CCB : ref block field (C_FIELDS);
;	  3015	
;	  3016			    if not $MCB_DEQUEUE_CCB (DB [S_WAITING_FOR_TRANSMIT], CCB) then exitloop;
;	  3017	
;	  3018			    if (BUILD_DATA_MESSAGE (DB [D_TIM], .CCB) eqla 0)
;	  3019			    then
;	  3020				begin
;	  3021				$MCB_STACK_CCB (DB [S_WAITING_FOR_TRANSMIT], .CCB);
;	  3022				leave BUILD_MESSAGES;
;	  3023				end;
;	  3024	
;	  3025			    if (DB [L_BABBLE_COUNT] = .DB [L_BABBLE_COUNT] - 1) eql 0 then exitloop;
;	  3026	
;	  3027			    end;
;	  3028	
;	  3029		    if .DB [SS_SEND_SELECT] and (.DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_FIRST)] eqla 0)
;	  3030		    then
;	  3031			DB [SS_SEND_ACK] = TRUE;
;	  3032	
;	  3033		    if .DB [SS_SEND_ACK]
;	  3034		    then
;	  3035			BUILD_CONTROL_MESSAGE (DB [D_TIM]);
;	  3036	
;	  3037		    end;
;	  3038		    end;
;	  3039		[SS_MAINTENANCE] :
;	  3040		    begin
;	  3041	
;	  3042		    local
;	  3043			CCB : ref block field (C_FIELDS);
;	  3044	
;	  3045		    if not $MCB_DEQUEUE_CCB (DB [S_WAITING_FOR_TRANSMIT], CCB) then return;
;	  3046	
;	  3047		    if (BUILD_MAINTENANCE_MESSAGE (DB [D_TIM], .CCB) eqla 0)
;	  3048		    then
;	  3049			begin
;	  3050			$MCB_STACK_CCB (DB [S_WAITING_FOR_TRANSMIT], .CCB);
;	  3051			return;
;	  3052			end;
;	  3053	
;	  3054		    end;
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 115
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (49)

;	  3055		[inrange] : return;
;	  3056		tes;
;	  3057	
;	  3058	    if .DB [SS_SEND_SELECT] and (.DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_FIRST)] neqa 0)
;	  3059	    then
;	  3060		begin
;	  3061	
;	  3062		local
;	  3063		    CCB : ref block field (C_FIELDS);
;	  3064	
;	  3065		CCB = .DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_LAST)];
;	  3066		DB [SS_SEND_SELECT] = FALSE;
;	  3067		begin
;	  3068	
;	  3069		local
;	  3070		    HEADER : ref block [H_LENGTH] field (HDR_FIELDS);
;	  3071	
;	  3072		HEADER = .CCB [C_ADDR];
;	  3073		HEADER [H_SELECT] = TRUE;
;	  3074		end;
;	  3075		CCB [C_MOD] = FM_SYN;
;	  3076	
;	  3077		if (CCB = .CCB [C_PRM4]) neqa 0
;	  3078		then
;	  3079		    begin
;	  3080	
;	  3081		    local
;	  3082			HEADER : ref block [H_LENGTH] field (HDR_FIELDS);
;	  3083	
;	  3084		    HEADER = .CCB [C_ADDR];
;	  3085		    HEADER [H_QSYNC] = TRUE;
;	  3086		    end;
;	  3087	
;	  3088	
;	  3089		if .DB [L_DUPLEX] neq DL_FULL
;	  3090		then
;	  3091		    DB [LS_STATION_ENABLED] = FALSE;
;	  3092	
;	  3093		end;
;	  3094	
;	  3095	    begin
;	  3096	
;	  3097	    local
;	  3098		CCB : ref block field (C_FIELDS);
;	  3099	
;	  3100	    if (CCB = .DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_FIRST)]) neqa 0
;	  3101	    then
;	  3102		SYNCHRONIZE (DB [D_TIM], .CCB);
;	  3103	
;	  3104	    end;
;	  3105	    begin
;	  3106	
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 116
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (49)

;	  3107	    external routine
;	  3108		$DDXME : DDM_CCB novalue;
;	  3109	
;	  3110	    FLUSH_QUEUE (DB [L_PRE_TRANSMIT], %quote $DDXME);
;	  3111	    end;
;	  3112	    end;			!of routine SEND_DATA


						.GLOBL	$CMQIF, $DDXME


						.SBTTL	SEND.DATA
000000	162706  000012 			SEND.DATA:
						SUB	#12,SP				;					2951
000004	105765  000007 				TSTB	7(R5)				; *(DB)					2977
000010	001052 					BNE	3$
000012	012766  000146  000002 			MOV	#146,2(SP)			;					2979
000020	060566  000002 				ADD	R5,2(SP)			; DB,*
000024	105776  000002 				TSTB	@2(SP)
000030	001042 					BNE	3$
000032	005715 					TST	(R5)				; DB					2981
000034	100176 					BPL	12$
000036	012766  000162  000004 			MOV	#162,4(SP)			;					2983
000044	060566  000004 				ADD	R5,4(SP)			; DB,*
000050	017600  000004 				MOV	@4(SP),R0
000054	000300 					SWAB	R0
000056	110076  000004 				MOVB	R0,@4(SP)
000062	012766  000002  000006 			MOV	#2,6(SP)			;					2985
000070	060566  000006 				ADD	R5,6(SP)			; DB,*
000074	117600  000006 				MOVB	@6(SP),R0
000100	006300 					ASL	R0
000102	066007  000304'				ADD	P.AAS(R0),PC			; Case dispatch
000106	032776  001000  000006 		1$:	BIT	#1000,@6(SP)			;					2990
000114	001004 					BNE	2$
000116	032776  000400  000006 			BIT	#400,@6(SP)
000124	001542 					BEQ	12$
000126	004767  170616 			2$:	JSR	PC,BUILD.CONTROL.MESSAGE	;					2992
000132	005700 					TST	R0
000134	001137 					BNE	13$
000136	000535 				3$:	BR	12$
000140	032776  004000  000006 		4$:	BIT	#4000,@6(SP)			;					3003
000146	001004 					BNE	5$
000150	032776  002000  000006 			BIT	#2000,@6(SP)
000156	001405 					BEQ	6$
000160	004767  170564 			5$:	JSR	PC,BUILD.CONTROL.MESSAGE	;					3005
000164	005700 					TST	R0
000166	001364 					BNE	4$
000170	000521 					BR	13$
000172	032715  002000 			6$:	BIT	#2000,(R5)			; *,DB					3007
000176	001046 					BNE	9$
000200	012766  000114  000010 			MOV	#114,10(SP)			;					3016
000206	060566  000010 				ADD	R5,10(SP)			; DB,*
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 117
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (49)

000212	017601  000002 			7$:	MOV	@2(SP),R1			;					3010
000216	105001 					CLRB	R1
000220	000301 					SWAB	R1
000222	005000 					CLR	R0
000224	157600  000002 				BISB	@2(SP),R0
000230	020001 					CMP	R0,R1
000232	002030 					BGE	9$
000234	016603  000010 				MOV	10(SP),R3			;					3016
000240	004767  000000G				JSR	PC,$CMQRM
000244	103423 					BCS	9$
000246	010416 					MOV	R4,(SP)				; $MCB$R4,CCB
000250	004767  171052 				JSR	PC,BUILD.DATA.MESSAGE		;					3018
000254	005700 					TST	R0
000256	001006 					BNE	8$
000260	011604 					MOV	(SP),R4				; CCB,*					3021
000262	016603  000010 				MOV	10(SP),R3
000266	004767  000000G				JSR	PC,$CMQIF
000272	000460 					BR	13$				;					3020
000274	005000 				8$:	CLR	R0				;					3025
000276	157600  000004 				BISB	@4(SP),R0
000302	005300 					DEC	R0
000304	110076  000004 				MOVB	R0,@4(SP)
000310	005700 					TST	R0
000312	001337 					BNE	7$
000314	032776  020000  000006 		9$:	BIT	#20000,@6(SP)			;					3029
000322	001406 					BEQ	10$
000324	005765  000150 				TST	150(R5)				; *(DB)
000330	001003 					BNE	10$
000332	052776  010000  000006 			BIS	#10000,@6(SP)			;					3031
000340	032776  010000  000006 		10$:	BIT	#10000,@6(SP)			;					3033
000346	001432 					BEQ	13$
000350	004767  170374 				JSR	PC,BUILD.CONTROL.MESSAGE	;					3035
000354	000427 					BR	13$				;					2985
000356	012766  000114  000010 		11$:	MOV	#114,10(SP)			;					3045
000364	060566  000010 				ADD	R5,10(SP)			; DB,*
000370	016603  000010 				MOV	10(SP),R3
000374	004767  000000G				JSR	PC,$CMQRM
000400	103474 					BCS	17$
000402	010466  000004 				MOV	R4,4(SP)			; $MCB$R4,CCB
000406	004767  171230 				JSR	PC,BUILD.MAINTENANCE.MESSAGE	;					3047
000412	005700 					TST	R0
000414	001007 					BNE	13$
000416	016604  000004 				MOV	4(SP),R4			; CCB,*					3050
000422	016603  000010 				MOV	10(SP),R3
000426	004767  000000G				JSR	PC,$CMQIF
000432	000457 				12$:	BR	17$				;					3049
000434	032776  020000  000006 		13$:	BIT	#20000,@6(SP)			;					3058
000442	001435 					BEQ	15$
000444	005765  000150 				TST	150(R5)				; *(DB)
000450	001432 					BEQ	15$
000452	016501  000152 				MOV	152(R5),R1			; *(DB),CCB				3065
000456	042776  020000  000006 			BIC	#20000,@6(SP)			;					3066
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 118
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (49)

000464	016100  000020 				MOV	20(R1),R0			; *(CCB),HEADER				3072
000470	152760  000200  000002 			BISB	#200,2(R0)			; *,*(HEADER)				3073
000476	112761  000004  000013 			MOVB	#4,13(R1)			; *,*(CCB)				3075
000504	016101  000032 				MOV	32(R1),R1			; *(CCB),CCB				3077
000510	001405 					BEQ	14$
000512	016100  000020 				MOV	20(R1),R0			; *(CCB),HEADER				3084
000516	152760  000100  000002 			BISB	#100,2(R0)			; *,*(HEADER)				3085
000524	105765  000012 			14$:	TSTB	12(R5)				; *(DB)					3089
000530	001402 					BEQ	15$
000532	042715  100000 				BIC	#100000,(R5)			; *,DB					3091
000536	016504  000150 			15$:	MOV	150(R5),R4			; *(DB),CCB				3100
000542	001402 					BEQ	16$
000544	004767  000000V				JSR	PC,SYNCHRONIZE			;					3102
000550	012703  000150 			16$:	MOV	#150,R3				;					3110
000554	060503 					ADD	R5,R3				; DB,*
000556	004767  000000G				JSR	PC,$CMQRM
000562	103403 					BCS	17$
000564	004767  000000G				JSR	PC,$DDXME
000570	000767 					BR	16$
000572	062706  000012 			17$:	ADD	#12,SP				;					2951
000576	000207 					RTS	PC

; Routine Size:  192 words,	Routine Base:  $CODE$ + 7030
; Maximum stack depth per invocation:  6 words


000304						.PSECT	$PLIT$,  RO ,  D  

					P.AAS:						; CASE Table for SEND.DATA+0102		2985
000304	000464 					.WORD	464				; [17$]
000306	000000 					.WORD	0				; [1$]
000310	000000 					.WORD	0				; [1$]
000312	000032 					.WORD	32				; [4$]
000314	000250 					.WORD	250				; [11$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 119
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (50)

;	  3113	routine SEND_PERSISTENT_ERROR
;	  3114	
;	  3115	!++
;	  3116	! FUNCTIONAL DESCRIPTION:
;	  3117	!
;	  3118	!
;	  3119	! FORMAL PARAMETERS:
;	  3120	!
;	  3121	       (DB : ref block field (D_FIELDS),
;	  3122		STATUS)
;	  3123	!
;	  3124	! IMPLICIT INPUTS:
;	  3125	!	None
;	  3126	!
;	  3127	! IMPLICIT OUTPUTS:
;	  3128	!	None
;	  3129	!
;	  3130	! ROUTINE VALUE:
;	  3131	!
;	  3132		: DCP_DB_STS novalue =
;	  3133	!
;	  3134	! SIDE EFFECTS:
;	  3135	!	None
;	  3136	!--
;	  3137	
;	  3138	    begin
;	  3139	
;	  3140	    local
;	  3141		CCB : ref block field (C_FIELDS);
;	  3142	
;	  3143	    if .DB [S_USER_HANDLE] eql 0 then return;
;	  3144	
;	  3145	    DB [S_PERSISTENT_ERROR] = .STATUS;
;	  3146	
;	  3147	    if $MCB_GET_CCB (CCB)
;	  3148	    then
;	  3149		SCHEDULE_PERSISTENT_AST (.CCB, DB [D_TIM])
;	  3150	    else
;	  3151		$MCB_REQUEST_CCB ();
;	  3152	
;	  3153	    end;			!of routine SEND_PERSISTENT_ERROR


						.SBTTL	SEND.PERSISTENT.ERROR
007630						.PSECT	$CODE$,  RO 

000000	010446 				SEND.PERSISTENT.ERROR:
						MOV	R4,-(SP)			;					3113
000002	005765  000130 				TST	130(R5)				; *(DB)					3143
000006	001412 					BEQ	2$
000010	010365  000134 				MOV	R3,134(R5)			; STATUS,*(DB)				3145
000014	004767  000000G				JSR	PC,$CCBGT			;					3147
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 120
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (50)

000020	103403 					BCS	1$
000022	004767  176614 				JSR	PC,SCHEDULE.PERSISTENT.AST	;					3149
000026	000402 					BR	2$				;					3147
000030	004767  000000G			1$:	JSR	PC,$CCBRQ			;					3151
000034	012604 				2$:	MOV	(SP)+,R4			;					3113
000036	000207 					RTS	PC

; Routine Size:  16 words,	Routine Base:  $CODE$ + 7630
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 121
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (51)

;	  3154	routine SEND_STATE
;	  3155	
;	  3156	!++
;	  3157	! FUNCTIONAL DESCRIPTION:
;	  3158	!
;	  3159	!
;	  3160	! FORMAL PARAMETERS:
;	  3161	!
;	  3162	       (DB : ref block field (D_FIELDS))
;	  3163	!
;	  3164	! IMPLICIT INPUTS:
;	  3165	!	None
;	  3166	!
;	  3167	! IMPLICIT OUTPUTS:
;	  3168	!	None
;	  3169	!
;	  3170	! ROUTINE VALUE:
;	  3171	!
;	  3172		: DCP_DB novalue =
;	  3173	!
;	  3174	! SIDE EFFECTS:
;	  3175	!	None
;	  3176	!--
;	  3177	
;	  3178	    begin
;	  3179	
;	  3180	    local
;	  3181		CCB : ref block field (C_FIELDS);
;	  3182	
;	  3183	    if .DB [S_USER_HANDLE] eql 0 then return;
;	  3184	
;	  3185	    if .DB [S_PROTOCOL_STATE] eql SS_HALTED then DB [SS_NOTIFY_OFF] = TRUE;
;	  3186	
;	  3187	    DB [SS_NOTIFY_STATE] = TRUE;
;	  3188	
;	  3189	    if $MCB_GET_CCB (CCB)
;	  3190	    then
;	  3191		SCHEDULE_STATE_AST (.CCB, DB [D_TIM])
;	  3192	    else
;	  3193		$MCB_REQUEST_CCB ();
;	  3194	
;	  3195	    end;			!of routine SEND_STATE


						.SBTTL	SEND.STATE
000000	005765  000130 			SEND.STATE:
						TST	130(R5)				; *(DB)					3183
000004	001421 					BEQ	3$
000006	105765  000002 				TSTB	2(R5)				; *(DB)					3185
000012	001003 					BNE	1$
000014	052765  000400  000004 			BIS	#400,4(R5)			; *,*(DB)
000022	052765  001000  000004 		1$:	BIS	#1000,4(R5)			; *,*(DB)				3187
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 122
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (51)

000030	004767  000000G				JSR	PC,$CCBGT			;					3189
000034	103403 					BCS	2$
000036	004767  176656 				JSR	PC,SCHEDULE.STATE.AST		;					3191
000042	000207 					RTS	PC				;					3189
000044	004767  000000G			2$:	JSR	PC,$CCBRQ			;					3193
000050	000207 				3$:	RTS	PC				;					3154

; Routine Size:  21 words,	Routine Base:  $CODE$ + 7670
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 123
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (52)

;	  3196	routine SEND_TRANSIENT_ERROR
;	  3197	
;	  3198	!++
;	  3199	! FUNCTIONAL DESCRIPTION:
;	  3200	!
;	  3201	!
;	  3202	! FORMAL PARAMETERS:
;	  3203	!
;	  3204	       (DB : ref block field (D_FIELDS),
;	  3205		STATUS)
;	  3206	!
;	  3207	! IMPLICIT INPUTS:
;	  3208	!	None
;	  3209	!
;	  3210	! IMPLICIT OUTPUTS:
;	  3211	!	None
;	  3212	!
;	  3213	! ROUTINE VALUE:
;	  3214	!
;	  3215		: DCP_DB_STS novalue =
;	  3216	!
;	  3217	! SIDE EFFECTS:
;	  3218	!	None
;	  3219	!--
;	  3220	
;	  3221	    begin
;	  3222	
;	  3223	    local
;	  3224		CCB : ref block field (C_FIELDS);
;	  3225	
;	  3226	    if .DB [S_USER_HANDLE] eql 0 then return;
;	  3227	
;	  3228	    DB [S_TRANSIENT_ERROR] = .STATUS;
;	  3229	
;	  3230	    if $MCB_GET_CCB (CCB)
;	  3231	    then
;	  3232		SCHEDULE_TRANSIENT_AST (.CCB, DB [D_TIM])
;	  3233	    else
;	  3234		$MCB_REQUEST_CCB ();
;	  3235	
;	  3236	    end;			!of routine SEND_TRANSIENT_ERROR


						.SBTTL	SEND.TRANSIENT.ERROR
000000	010446 				SEND.TRANSIENT.ERROR:
						MOV	R4,-(SP)			;					3196
000002	005765  000130 				TST	130(R5)				; *(DB)					3226
000006	001412 					BEQ	2$
000010	010365  000132 				MOV	R3,132(R5)			; STATUS,*(DB)				3228
000014	004767  000000G				JSR	PC,$CCBGT			;					3230
000020	103403 					BCS	1$
000022	004767  176730 				JSR	PC,SCHEDULE.TRANSIENT.AST	;					3232
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 124
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (52)

000026	000402 					BR	2$				;					3230
000030	004767  000000G			1$:	JSR	PC,$CCBRQ			;					3234
000034	012604 				2$:	MOV	(SP)+,R4			;					3196
000036	000207 					RTS	PC

; Routine Size:  16 words,	Routine Base:  $CODE$ + 7742
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 125
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (53)

;	  3237	global routine SET_DEVICE
;	  3238	
;	  3239	!++
;	  3240	! FUNCTIONAL DESCRIPTION:
;	  3241	!
;	  3242	!
;	  3243	! FORMAL PARAMETERS:
;	  3244	!
;	  3245	       (DB : ref block field (D_FIELDS))
;	  3246	!
;	  3247	! IMPLICIT INPUTS:
;	  3248	!	None
;	  3249	!
;	  3250	! IMPLICIT OUTPUTS:
;	  3251	!	None
;	  3252	!
;	  3253	! ROUTINE VALUE:
;	  3254	!
;	  3255		: DCP_DB novalue =
;	  3256	!
;	  3257	! SIDE EFFECTS:
;	  3258	!	None
;	  3259	!--
;	  3260	
;	  3261	    begin
;	  3262	
;	  3263	    while .DB [D_CONTROL_FLAGS] neq 0 do
;	  3264		begin
;	  3265	
;	  3266		if .DB [SS_DEVICE_BEING_SET] then return;
;	  3267	
;	  3268		selectone TRUE of
;	  3269		    set
;	  3270		    [.DB [DC_STOP_DEVICE]] :
;	  3271	
;	  3272			if .DB [SS_DEVICE_RUNNING]
;	  3273			then
;	  3274			    begin
;	  3275	
;	  3276			    local
;	  3277				CCB : ref block field (C_FIELDS);
;	  3278	
;	  3279			    if not $MCB_GET_CCB (CCB) then return $MCB_REQUEST_CCB ();
;	  3280	
;	  3281			    STOP_DEVICE (.CCB, DB [D_TIM]);
;	  3282			    end
;	  3283			else
;	  3284			    DB [DC_STOP_DEVICE] = FALSE;
;	  3285	
;	  3286		    [.DB [DC_START_DEVICE]] :
;	  3287	
;	  3288			if not .DB [SS_DEVICE_RUNNING]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 126
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (53)

;	  3289			then
;	  3290			    begin
;	  3291	
;	  3292			    local
;	  3293				CCB : ref block field (C_FIELDS);
;	  3294	
;	  3295			    if not $MCB_GET_CCB (CCB) then return $MCB_REQUEST_CCB ();
;	  3296	
;	  3297			    START_DEVICE (.CCB, DB [D_TIM]);
;	  3298			    end
;	  3299			else
;	  3300			    DB [DC_START_DEVICE] = FALSE;
;	  3301	
;	  3302		    [.DB [DC_SET_REQUESTED_STATE]] :
;	  3303	
;	  3304			selectone TRUE of
;	  3305			    set
;	  3306			    [.DB [L_LINE_STATE] neq DL_ON]:
;	  3307				DB [DC_SET_REQUESTED_STATE] = FALSE;
;	  3308			    [.DB [S_PROTOCOL_STATE] eql .DB [S_REQUESTED_STATE]] :
;	  3309				DB [DC_SET_REQUESTED_STATE] = FALSE;
;	  3310			    [otherwise] :
;	  3311				begin
;	  3312				SET_LINK (DB [D_TIM], .DB [S_REQUESTED_STATE]);
;	  3313				DB [DC_SET_REQUESTED_STATE] = FALSE;
;	  3314				end;
;	  3315			    tes;
;	  3316	
;	  3317		    tes;
;	  3318	
;	  3319		end;
;	  3320	
;	  3321	    if .DB [S_PROTOCOL_STATE] eql SS_HALTED then return;
;	  3322	
;	  3323	    SEND_DATA (DB [D_TIM]);
;	  3324	    end;			!of routine SET_DEVICE


						.SBTTL	SETDEV
000000	012746  000006 			SETDEV::MOV	#6,-(SP)			;					3263
000004	060516 					ADD	R5,(SP)				; DB,*
000006	012746  000004 				MOV	#4,-(SP)			;					3266
000012	060516 					ADD	R5,(SP)				; DB,*
000014	032776  177400  000002 		1$:	BIT	#177400,@2(SP)			;					3263
000022	001502 					BEQ	10$
000024	032776  004000  000000 			BIT	#4000,@0(SP)			;					3266
000032	001103 					BNE	11$
000034	032776  001000  000002 			BIT	#1000,@2(SP)			;					3268
000042	001415 					BEQ	3$
000044	005776  000000 				TST	@0(SP)				;					3272
000050	100006 					BPL	2$
000052	004767  000000G				JSR	PC,$CCBGT			;					3279
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 127
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (53)

000056	103421 					BLO	4$
000060	004767  000000V				JSR	PC,STOP.DEVICE			;					3281
000064	000753 					BR	1$				;					3272
000066	042776  001000  000002 		2$:	BIC	#1000,@2(SP)			;					3284
000074	000747 					BR	1$				;					3268
000076	032776  002000  000002 		3$:	BIT	#2000,@2(SP)
000104	001420 					BEQ	7$
000106	005776  000000 				TST	@0(SP)				;					3288
000112	100411 					BMI	6$
000114	004767  000000G				JSR	PC,$CCBGT			;					3295
000120	103003 					BHIS	5$
000122	004767  000000G			4$:	JSR	PC,$CCBRQ
000126	000445 					BR	11$
000130	004767  000000V			5$:	JSR	PC,START.DEVICE			;					3297
000134	000727 					BR	1$				;					3288
000136	042776  002000  000002 		6$:	BIC	#2000,@2(SP)			;					3300
000144	000723 					BR	1$				;					3268
000146	032776  004000  000002 		7$:	BIT	#4000,@2(SP)
000154	001717 					BEQ	1$
000156	105765  000014 				TSTB	14(R5)				; *(DB)					3306
000162	001004 					BNE	8$				;					3307
000164	126576  000002  000002 			CMPB	2(R5),@2(SP)			; *(DB),*				3308
000172	001004 					BNE	9$
000174	042776  004000  000002 		8$:	BIC	#4000,@2(SP)			;					3309
000202	000704 					BR	1$				;					3304
000204	117600  000002 			9$:	MOVB	@2(SP),R0			;					3312
000210	010046 					MOV	R0,-(SP)
000212	004767  000000V				JSR	PC,SETLNK
000216	042776  004000  000004 			BIC	#4000,@4(SP)			;					3313
000224	005726 					TST	(SP)+				;					3311
000226	000672 					BR	1$				;					3268
000230	105765  000002 			10$:	TSTB	2(R5)				; *(DB)					3321
000234	001402 					BEQ	11$
000236	004767  176564 				JSR	PC,SEND.DATA			;					3323
000242	022626 				11$:	CMP	(SP)+,(SP)+			;					3237
000244	000207 					RTS	PC

; Routine Size:  83 words,	Routine Base:  $CODE$ + 10002
; Maximum stack depth per invocation:  4 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 128
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (54)

;	  3325	global routine SET_LINK
;	  3326	
;	  3327	!++
;	  3328	! FUNCTIONAL DESCRIPTION:
;	  3329	!
;	  3330	!
;	  3331	! FORMAL PARAMETERS:
;	  3332	!
;	  3333	       (DB : ref block field (D_FIELDS),
;	  3334		STATE)
;	  3335	!
;	  3336	! IMPLICIT INPUTS:
;	  3337	!
;	  3338	! IMPLICIT OUTPUTS:
;	  3339	!	None
;	  3340	!
;	  3341	! ROUTINE VALUE:
;	  3342	!
;	  3343		: DCP_DB novalue =
;	  3344	!
;	  3345	! SIDE EFFECTS:
;	  3346	!	None
;	  3347	!--
;	  3348	
;	  3349	    begin
;	  3350	    DB [LS_STATION_ENABLED] = FALSE;
;	  3351	    DB [SS_TIMING_REP] = FALSE;
;	  3352	    DB [SS_RETRANSMIT] = FALSE;
;	  3353	    DB [SS_START_REP_TIMER] = FALSE;
;	  3354	    DB [LS_RESYNCH_IN_PROGRESS] = FALSE;
;	  3355	    DB [SS_SEND_SELECT] = FALSE;
;	  3356	    DB [SS_SEND_ACK] = FALSE;
;	  3357	    DB [SS_SEND_REP] = FALSE;
;	  3358	    DB [SS_SEND_NAK] = FALSE;
;	  3359	    DB [SS_SEND_START] = FALSE;
;	  3360	    DB [SS_SEND_STACK] = FALSE;
;	  3361	    DB [S_R] = 0;
;	  3362	    DB [S_TM1] = 0;
;	  3363	    DB [S_X] = 0;
;	  3364	    DB [S_N] = 0;
;	  3365	    DB [S_A] = 0;
;	  3366	    DB [S_AR] = 0;
;	  3367	    DB [S_PENDING_NAK_REASON] = 0;
;	  3368	    DB [S_TRANSMIT_THRESHOLD] = 7;
;	  3369	    DB [S_RECEIVE_THRESHOLD] = 7;
;	  3370	    DB [S_SELECT_THRESHOLD] = 7;
;	  3371	
;	  3372	    case .STATE from SS_LOW to SS_HIGH of
;	  3373		set
;	  3374		[SS_ISTRT, SS_ASTRT, SS_RUNNING] :
;	  3375		    begin
;	  3376	
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 129
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (54)

;	  3377		    if .DB [L_DUPLEX] eql DL_FULL
;	  3378		    then
;	  3379			DB [SS_HALF_DUPLEX] = FALSE
;	  3380		    else
;	  3381			DB [SS_HALF_DUPLEX] = TRUE;
;	  3382	
;	  3383		    DB [SS_SEND_START] = TRUE;
;	  3384		    DB [SS_SEND_SELECT] = TRUE;
;	  3385		    DB [DC_START_DEVICE] = TRUE;
;	  3386		    DB [SS_ACTIVE] = TRUE;
;	  3387		    CHANGE_PROTOCOL_STATE (DB [D_TIM], SS_ISTRT, LCL);
;	  3388		    end;
;	  3389		[SS_MAINTENANCE] :
;	  3390		    begin
;	  3391		    DB [SS_HALF_DUPLEX] = TRUE;
;	  3392		    DB [DC_START_DEVICE] = TRUE;
;	  3393		    DB [SS_ACTIVE] = TRUE;
;	  3394		    CHANGE_PROTOCOL_STATE (DB [D_TIM], SS_MAINTENANCE, LCL);
;	  3395		    end;
;	  3396		[inrange] :
;	  3397		    begin
;	  3398		    DB [DC_STOP_DEVICE] = TRUE;
;	  3399		    DB [SS_ACTIVE] = FALSE;
;	  3400		    CHANGE_PROTOCOL_STATE (DB [D_TIM], SS_HALTED, LCL);
;	  3401		    end;
;	  3402		tes;
;	  3403	
;	  3404	    end;			!of routine SET_LINK


						.SBTTL	SETLNK
000000	042715  107400 			SETLNK::BIC	#107400,(R5)			; *,DB					3354
000004	012700  000002 				MOV	#2,R0				;					3355
000010	060500 					ADD	R5,R0				; DB,*
000012	042710  037400 				BIC	#37400,(R0)			;					3360
000016	105065  000070 				CLRB	70(R5)				; *(DB)					3361
000022	105065  000071 				CLRB	71(R5)				; *(DB)					3362
000026	105065  000072 				CLRB	72(R5)				; *(DB)					3363
000032	105065  000073 				CLRB	73(R5)				; *(DB)					3364
000036	105065  000074 				CLRB	74(R5)				; *(DB)					3365
000042	105065  000075 				CLRB	75(R5)				; *(DB)					3366
000046	105065  000077 				CLRB	77(R5)				; *(DB)					3367
000052	112765  000007  000016 			MOVB	#7,16(R5)			; *,*(DB)				3368
000060	112765  000007  000015 			MOVB	#7,15(R5)			; *,*(DB)				3369
000066	112765  000007  000017 			MOVB	#7,17(R5)			; *,*(DB)				3370
000074	012746  000006 				MOV	#6,-(SP)			;					3385
000100	060516 					ADD	R5,(SP)				; DB,*
000102	012746  000004 				MOV	#4,-(SP)			;					3386
000106	060516 					ADD	R5,(SP)				; DB,*
000110	016601  000006 				MOV	6(SP),R1			; STATE,*				3372
000114	006301 					ASL	R1
000116	066107  000316'				ADD	P.AAT(R1),PC			; Case dispatch
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 130
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (54)

000122	105765  000012 			1$:	TSTB	12(R5)				; *(DB)					3377
000126	001003 					BNE	2$
000130	042715  010000 				BIC	#10000,(R5)			; *,DB					3379
000134	000402 					BR	3$				;					3377
000136	052715  010000 			2$:	BIS	#10000,(R5)			; *,DB					3381
000142	052710  021000 			3$:	BIS	#21000,(R0)			;					3384
000146	052776  002000  000002 			BIS	#2000,@2(SP)			;					3385
000154	052776  002000  000000 			BIS	#2000,@0(SP)			;					3386
000162	012746  000001 				MOV	#1,-(SP)			;					3387
000166	000422 					BR	6$
000170	052715  010000 			4$:	BIS	#10000,(R5)			; *,DB					3391
000174	052776  002000  000002 			BIS	#2000,@2(SP)			;					3392
000202	052776  002000  000000 			BIS	#2000,@0(SP)			;					3393
000210	012746  000004 				MOV	#4,-(SP)			;					3394
000214	000407 					BR	6$
000216	052776  001000  000002 		5$:	BIS	#1000,@2(SP)			;					3398
000224	042776  002000  000000 			BIC	#2000,@0(SP)			;					3399
000232	005046 					CLR	-(SP)				;					3400
000234	005046 				6$:	CLR	-(SP)
000236	004767  170536 				JSR	PC,CHANGE.PROTOCOL.STATE
000242	062706  000010 				ADD	#10,SP				;					3325
000246	000207 					RTS	PC

; Routine Size:  84 words,	Routine Base:  $CODE$ + 10250
; Maximum stack depth per invocation:  5 words


000316						.PSECT	$PLIT$,  RO ,  D  

					P.AAT:						; CASE Table for SETLNK+0116		3372
000316	000074 					.WORD	74				; [5$]
000320	000000 					.WORD	0				; [1$]
000322	000000 					.WORD	0				; [1$]
000324	000000 					.WORD	0				; [1$]
000326	000046 					.WORD	46				; [4$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 131
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (55)

;	  3405	global routine STARCE
;	  3406	
;	  3407	!++
;	  3408	! FUNCTIONAL DESCRIPTION:
;	  3409	!
;	  3410	!
;	  3411	! FORMAL PARAMETERS:
;	  3412	!
;	  3413	       (DB : ref block field (D_FIELDS),
;	  3414		CCB : ref block field (C_FIELDS))
;	  3415	!
;	  3416	! IMPLICIT INPUTS:
;	  3417	!
;	  3418	! IMPLICIT OUTPUTS:
;	  3419	!	None
;	  3420	!
;	  3421	! ROUTINE VALUE:
;	  3422	!
;	  3423		: DCP_DB_CCBR novalue =
;	  3424	!
;	  3425	! SIDE EFFECTS:
;	  3426	!	None
;	  3427	!--
;	  3428	
;	  3429	    begin
;	  3430	
;	  3431	    external routine
;	  3432		$DDRCE : DDM_CCB novalue;
;	  3433	
;	  3434	    CCB [C_ADDR] = .CCB [C_ADDR] - H_LENGTH*%upval;
;	  3435	    CCB [C_CNT] = .CCB [C_CNT] + H_LENGTH*%upval;
;	  3436	    CCB [C_HANDLE] = .DB [L_DRIVER_HANDLE];
;	  3437	    $DDRCE (.CCB);
;	  3438	    end;			!of routine STARCE


						.GLOBL	$DDRCE


						.SBTTL	STARCE
010520						.PSECT	$CODE$,  RO 

000000	162764  000006  000020 		STARCE::SUB	#6,20(R4)			; *,*(CCB)				3434
000006	062764  000006  000022 			ADD	#6,22(R4)			; *,*(CCB)				3435
000014	016564  000144  000010 			MOV	144(R5),10(R4)			; *(DB),*(CCB)				3436
000022	004767  000000G				JSR	PC,$DDRCE			;					3437
000026	000207 					RTS	PC				;					3405

; Routine Size:  12 words,	Routine Base:  $CODE$ + 10520
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 132
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (56)

;	  3439	routine START_DEVICE
;	  3440	
;	  3441	!++
;	  3442	! FUNCTIONAL DESCRIPTION:
;	  3443	!
;	  3444	!
;	  3445	! FORMAL PARAMETERS:
;	  3446	!
;	  3447	       (CCB : ref block field (C_FIELDS),
;	  3448		DB : ref block field (D_FIELDS))
;	  3449	!
;	  3450	! IMPLICIT INPUTS:
;	  3451	!	None
;	  3452	!
;	  3453	! IMPLICIT OUTPUTS:
;	  3454	!	None
;	  3455	!
;	  3456	! ROUTINE VALUE:
;	  3457	!
;	  3458		: DCP_CCB_DB novalue =
;	  3459	!
;	  3460	! SIDE EFFECTS:
;	  3461	!	None
;	  3462	!--
;	  3463	
;	  3464	    begin
;	  3465	
;	  3466	    external routine
;	  3467		$DDSET : DDM_CCB novalue;
;	  3468	
;	  3469	    DB [DC_START_DEVICE] = FALSE;
;	  3470	    DB [SS_DEVICE_BEING_SET] = TRUE;
;	  3471	    CCB [C_PRM4] = .DB [L_CLOCK];
;	  3472	    CCB [C_PRM3] = .DB [L_CONTROLLER];
;	  3473	    CCB [C_PRM2] = .DB [L_DUPLEX];
;	  3474	    CCB [C_HANDLE] = .DB [L_DRIVER_HANDLE];
;	  3475	    $DDSET (.CCB);
;	  3476	    end;			!of routine START_DEVICE


						.GLOBL	$DDSET


						.SBTTL	START.DEVICE
000000	042765  002000  000006 		START.DEVICE:
						BIC	#2000,6(R5)			; *,*(DB)				3469
000006	052765  004000  000004 			BIS	#4000,4(R5)			; *,*(DB)				3470
000014	116564  000013  000032 			MOVB	13(R5),32(R4)			; *(DB),*(CCB)				3471
000022	105064  000033 				CLRB	33(R4)				; *(CCB)
000026	116564  000011  000030 			MOVB	11(R5),30(R4)			; *(DB),*(CCB)				3472
000034	105064  000031 				CLRB	31(R4)				; *(CCB)
000040	116564  000012  000026 			MOVB	12(R5),26(R4)			; *(DB),*(CCB)				3473
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 133
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (56)

000046	105064  000027 				CLRB	27(R4)				; *(CCB)
000052	016564  000144  000010 			MOV	144(R5),10(R4)			; *(DB),*(CCB)				3474
000060	004767  000000G				JSR	PC,$DDSET			;					3475
000064	000207 					RTS	PC				;					3439

; Routine Size:  27 words,	Routine Base:  $CODE$ + 10550
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 134
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (57)

;	  3477	routine STOP_DEVICE
;	  3478	
;	  3479	!++
;	  3480	! FUNCTIONAL DESCRIPTION:
;	  3481	!
;	  3482	!
;	  3483	! FORMAL PARAMETERS:
;	  3484	!
;	  3485	       (CCB : ref block field (C_FIELDS),
;	  3486		DB : ref block field (D_FIELDS))
;	  3487	!
;	  3488	! IMPLICIT INPUTS:
;	  3489	!	None
;	  3490	!
;	  3491	! IMPLICIT OUTPUTS:
;	  3492	!	None
;	  3493	!
;	  3494	! ROUTINE VALUE:
;	  3495	!
;	  3496		: DCP_CCB_DB novalue =
;	  3497	!
;	  3498	! SIDE EFFECTS:
;	  3499	!	None
;	  3500	!--
;	  3501	
;	  3502	    begin
;	  3503	
;	  3504	    external routine
;	  3505		$DDSTP : DDM_CCB novalue;
;	  3506	
;	  3507	    DB [DC_STOP_DEVICE] = FALSE;
;	  3508	    DB [SS_DEVICE_RUNNING] = FALSE;
;	  3509	    DB [SS_DEVICE_BEING_SET] = TRUE;
;	  3510	    CCB [C_HANDLE] = .DB [L_DRIVER_HANDLE];
;	  3511	    $DDSTP (.CCB);
;	  3512	    end;			!of routine STOP_DEVICE


						.GLOBL	$DDSTP


						.SBTTL	STOP.DEVICE
000000	042765  001000  000006 		STOP.DEVICE:
						BIC	#1000,6(R5)			; *,*(DB)				3507
000006	042765  100000  000004 			BIC	#100000,4(R5)			; *,*(DB)				3508
000014	052765  004000  000004 			BIS	#4000,4(R5)			; *,*(DB)				3509
000022	016564  000144  000010 			MOV	144(R5),10(R4)			; *(DB),*(CCB)				3510
000030	004767  000000G				JSR	PC,$DDSTP			;					3511
000034	000207 					RTS	PC				;					3477

; Routine Size:  15 words,	Routine Base:  $CODE$ + 10636
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 135
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (58)

;	  3513	routine STOP_LINK
;	  3514	
;	  3515	!++
;	  3516	! FUNCTIONAL DESCRIPTION:
;	  3517	!
;	  3518	!
;	  3519	! FORMAL PARAMETERS:
;	  3520	!
;	  3521	       (DB : ref block field (D_FIELDS),
;	  3522		CCB : ref block field (C_FIELDS))
;	  3523	!
;	  3524	! IMPLICIT INPUTS:
;	  3525	!
;	  3526	! IMPLICIT OUTPUTS:
;	  3527	!	None
;	  3528	!
;	  3529	! ROUTINE VALUE:
;	  3530	!
;	  3531		: MCB_DB_CCB novalue =
;	  3532	!
;	  3533	! SIDE EFFECTS:
;	  3534	!	None
;	  3535	!--
;	  3536	
;	  3537	    begin
;	  3538	    DB [DC_SET_REQUESTED_STATE] = TRUE;
;	  3539	    DB [S_REQUESTED_STATE] = SS_HALTED;
;	  3540	    SET_DEVICE (DB [D_TIM]);
;	  3541	    CCB [C_FNC] = FC_XCP;
;	  3542	    CCB [C_STS] = DLL$_SUCCESS;
;	  3543	    $MCB_SCHEDULE_CCB (.CCB);
;	  3544	    end;			!of routine STOP_LINK


						.SBTTL	STOP.LINK
000000	010446 				STOP.LINK:
						MOV	R4,-(SP)			;					3513
000002	052765  004000  000006 			BIS	#4000,6(R5)			; *,*(DB)				3538
000010	105065  000006 				CLRB	6(R5)				; *(DB)					3539
000014	004767  177066 				JSR	PC,SETDEV			;					3540
000020	011600 					MOV	(SP),R0				;					3541
000022	112760  000014  000012 			MOVB	#14,12(R0)
000030	012760  100001  000014 			MOV	#-77777,14(R0)			;					3542
000036	010004 					MOV	R0,R4				;					3543
000040	004767  000000G				JSR	PC,$SCHED
000044	005726 					TST	(SP)+				;					3513
000046	000207 					RTS	PC

; Routine Size:  20 words,	Routine Base:  $CODE$ + 10674
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 136
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (59)

;	  3545	routine SYNCHRONIZE
;	  3546	
;	  3547	!++
;	  3548	! FUNCTIONAL DESCRIPTION:
;	  3549	!
;	  3550	!
;	  3551	! FORMAL PARAMETERS:
;	  3552	!
;	  3553	       (DB : ref block field (D_FIELDS),
;	  3554		CCB : ref block field (C_FIELDS))
;	  3555	!
;	  3556	! IMPLICIT INPUTS:
;	  3557	!
;	  3558	! IMPLICIT OUTPUTS:
;	  3559	!	None
;	  3560	!
;	  3561	! ROUTINE VALUE:
;	  3562	!
;	  3563		: DCP_DB_CCB_N0 novalue =
;	  3564	!
;	  3565	! SIDE EFFECTS:
;	  3566	!	None
;	  3567	!--
;	  3568	
;	  3569	    begin
;	  3570	
;	  3571	    if .DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_FIRST)] neqa 0
;	  3572	    then
;	  3573		begin
;	  3574	
;	  3575		local
;	  3576		    HEADER : ref block field (HDR_FIELDS);
;	  3577	
;	  3578		HEADER = .block [.DB [$SUB_FIELD (L_PRE_TRANSMIT, LIST_LAST)], C_ADDR];
;	  3579		HEADER [H_QSYNC] = TRUE;    
;	  3580		end;
;	  3581	
;	  3582	    CCB [C_MOD] = FM_SYN;
;	  3583	    end;			!of routine SYNCHRONIZE


						.SBTTL	SYNCHRONIZE
000000	005765  000150 			SYNCHRONIZE:
						TST	150(R5)				; *(DB)					3571
000004	001407 					BEQ	1$
000006	016503  000152 				MOV	152(R5),R3			; *(DB),*				3578
000012	016303  000020 				MOV	20(R3),R3			; *,HEADER
000016	152763  000100  000002 			BISB	#100,2(R3)			; *,*(HEADER)				3579
000024	112764  000004  000013 		1$:	MOVB	#4,13(R4)			; *,*(CCB)				3582
000032	000207 					RTS	PC				;					3545

; Routine Size:  14 words,	Routine Base:  $CODE$ + 10744
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 137
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (59)

; Maximum stack depth per invocation:  0 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 138
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (60)

;	  3584	routine TERMINATE_SELECTION_INTERVAL
;	  3585	
;	  3586	!++
;	  3587	! FUNCTIONAL DESCRIPTION:
;	  3588	!
;	  3589	!
;	  3590	! FORMAL PARAMETERS:
;	  3591	!
;	  3592	       (DB : ref block field (D_FIELDS))
;	  3593	!
;	  3594	! IMPLICIT INPUTS:
;	  3595	!
;	  3596	! IMPLICIT OUTPUTS:
;	  3597	!	None
;	  3598	!
;	  3599	! ROUTINE VALUE:
;	  3600	!
;	  3601		: DCP_DB novalue =
;	  3602	!
;	  3603	! SIDE EFFECTS:
;	  3604	!	None
;	  3605	!--
;	  3606	
;	  3607	    begin
;	  3608	
;	  3609	    if .DB [SS_TIMING_REP]
;	  3610	    then
;	  3611		begin
;	  3612		DB [SS_START_REP_TIMER] = FALSE;
;	  3613		DB [SS_TIMING_REP] = FALSE;
;	  3614	
;	  3615		case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  3616		    set
;	  3617		    [SS_ISTRT] :
;	  3618			begin
;	  3619			DB [SS_SEND_START] = TRUE;
;	  3620			DB [SS_SEND_SELECT] = TRUE;
;	  3621			end;
;	  3622		    [SS_ASTRT] :
;	  3623			begin
;	  3624			DB [SS_SEND_STACK] = TRUE;
;	  3625			DB [SS_SEND_SELECT] = TRUE;
;	  3626			end;
;	  3627		    [SS_RUNNING] :
;	  3628			begin
;	  3629			DB [SS_SEND_REP] = TRUE;
;	  3630			COUNTER_INCREMENT (DB, S_LOCAL_REPLY_TIMEOUTS);
;	  3631			TEST_TRANSMIT_THRESHOLD (DB [D_TIM]);
;	  3632			end;
;	  3633		    [inrange] :
;	  3634			NO_OPERATION;
;	  3635		    tes;
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 139
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (60)

;	  3636	
;	  3637		end;
;	  3638	
;	  3639	    DB [LS_STATION_ENABLED] = TRUE;
;	  3640	
;	  3641	    if .DB [SS_HALF_DUPLEX] then DB [SS_SEND_SELECT] = TRUE;
;	  3642	
;	  3643	    SEND_DATA (DB [D_TIM]);
;	  3644	    end;			!of routine TERMINATE_SELECTION_INTERVAL


						.SBTTL	TERMINATE.SELECTION.INTERVAL
000000	032715  004000 			TERMINATE.SELECTION.INTERVAL:
						BIT	#4000,(R5)			; *,DB					3609
000004	001432 					BEQ	5$
000006	042715  005000 				BIC	#5000,(R5)			; *,DB					3613
000012	012700  000002 				MOV	#2,R0				;					3615
000016	060500 					ADD	R5,R0				; DB,*
000020	111001 					MOVB	(R0),R1
000022	006301 					ASL	R1
000024	066107  000330'				ADD	P.AAU(R1),PC			; Case dispatch
000030	052710  001000 			1$:	BIS	#1000,(R0)			;					3619
000034	000402 					BR	3$				;					3620
000036	052710  000400 			2$:	BIS	#400,(R0)			;					3624
000042	052710  020000 			3$:	BIS	#20000,(R0)			;					3625
000046	000411 					BR	5$				;					3615
000050	052710  004000 			4$:	BIS	#4000,(R0)			;					3629
000054	012700  000054 				MOV	#54,R0				;					3630
000060	060500 					ADD	R5,R0				; DB,*
000062	004767  000000G				JSR	PC,$IC8
000066	004767  000000V				JSR	PC,TEST.TRANSMIT.THRESHOLD	;					3631
000072	052715  100000 			5$:	BIS	#100000,(R5)			; *,DB					3639
000076	032715  010000 				BIT	#10000,(R5)			; *,DB					3641
000102	001403 					BEQ	6$
000104	052765  020000  000002 			BIS	#20000,2(R5)			; *,*(DB)
000112	004767  175712 			6$:	JSR	PC,SEND.DATA			;					3643
000116	000207 					RTS	PC				;					3584

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


000330						.PSECT	$PLIT$,  RO ,  D  

					P.AAU:						; CASE Table for TERMINATE.SELEC+0024	3615
000330	000042 					.WORD	42				; [5$]
000332	000000 					.WORD	0				; [1$]
000334	000006 					.WORD	6				; [2$]
000336	000020 					.WORD	20				; [4$]
000340	000042 					.WORD	42				; [5$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 140
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (61)

;	  3645	routine TEST_RECEIVE_THRESHOLD
;	  3646	
;	  3647	!++
;	  3648	! FUNCTIONAL DESCRIPTION:
;	  3649	!
;	  3650	!
;	  3651	! FORMAL PARAMETERS:
;	  3652	!
;	  3653	       (DB : ref block field (D_FIELDS))
;	  3654	!
;	  3655	! IMPLICIT INPUTS:
;	  3656	!
;	  3657	! IMPLICIT OUTPUTS:
;	  3658	!	None
;	  3659	!
;	  3660	! ROUTINE VALUE:
;	  3661	!
;	  3662		: DCP_DB_N0 novalue =
;	  3663	!
;	  3664	! SIDE EFFECTS:
;	  3665	!	None
;	  3666	!--
;	  3667	
;	  3668	    begin
;	  3669	    TEST_THRESHOLD (DB [D_TIM], DB [S_RECEIVE_THRESHOLD], 4, DLL$_RECEIVE_THRESHOLD);
;	  3670	    end;			!of routine TEST_RECEIVE_THRESHOLD


						.SBTTL	TEST.RECEIVE.THRESHOLD
011120						.PSECT	$CODE$,  RO 

000000	004167  000000G			TEST.RECEIVE.THRESHOLD:
						JSR	R1,$SAVE3			;					3645
000004	010046 					MOV	R0,-(SP)
000006	010500 					MOV	R5,R0				; DB,*					3669
000010	062700  000015 				ADD	#15,R0
000014	012746  100110 				MOV	#-77670,-(SP)
000020	012703  000004 				MOV	#4,R3
000024	004767  000000V				JSR	PC,TEST.THRESHOLD
000030	005726 					TST	(SP)+				;					3668
000032	012600 					MOV	(SP)+,R0			;					3645
000034	000207 					RTS	PC

; Routine Size:  15 words,	Routine Base:  $CODE$ + 11120
; Maximum stack depth per invocation:  7 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 141
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (62)

;	  3671	routine TEST_SELECT_THRESHOLD
;	  3672	
;	  3673	!++
;	  3674	! FUNCTIONAL DESCRIPTION:
;	  3675	!
;	  3676	!
;	  3677	! FORMAL PARAMETERS:
;	  3678	!
;	  3679	       (DB : ref block field (D_FIELDS))
;	  3680	!
;	  3681	! IMPLICIT INPUTS:
;	  3682	!
;	  3683	! IMPLICIT OUTPUTS:
;	  3684	!	None
;	  3685	!
;	  3686	! ROUTINE VALUE:
;	  3687	!
;	  3688		: DCP_DB_N0 novalue =
;	  3689	!
;	  3690	! SIDE EFFECTS:
;	  3691	!	None
;	  3692	!--
;	  3693	
;	  3694	    begin
;	  3695	    TEST_THRESHOLD (DB [D_TIM], DB [S_SELECT_THRESHOLD], 5, DLL$_SELECTION_THRESHOLD);
;	  3696	    end;			!of routine TEST_SELECT_THRESHOLD


						.SBTTL	TEST.SELECT.THRESHOLD
000000	004167  000000G			TEST.SELECT.THRESHOLD:
						JSR	R1,$SAVE3			;					3671
000004	010046 					MOV	R0,-(SP)
000006	010500 					MOV	R5,R0				; DB,*					3695
000010	062700  000017 				ADD	#17,R0
000014	012746  100120 				MOV	#-77660,-(SP)
000020	012703  000005 				MOV	#5,R3
000024	004767  000000V				JSR	PC,TEST.THRESHOLD
000030	005726 					TST	(SP)+				;					3694
000032	012600 					MOV	(SP)+,R0			;					3671
000034	000207 					RTS	PC

; Routine Size:  15 words,	Routine Base:  $CODE$ + 11156
; Maximum stack depth per invocation:  7 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 142
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (63)

;	  3697	routine TEST_THRESHOLD
;	  3698	
;	  3699	!++
;	  3700	! FUNCTIONAL DESCRIPTION:
;	  3701	!
;	  3702	!
;	  3703	! FORMAL PARAMETERS:
;	  3704	!
;	  3705	       (DB : ref block field (D_FIELDS),
;	  3706		CTR : ref block,
;	  3707		TYPE,
;	  3708		STS)
;	  3709	!
;	  3710	! IMPLICIT INPUTS:
;	  3711	!
;	  3712	! IMPLICIT OUTPUTS:
;	  3713	!	None
;	  3714	!
;	  3715	! ROUTINE VALUE:
;	  3716	!
;	  3717		: DCP_DB_CTR_STS novalue =
;	  3718	!
;	  3719	! SIDE EFFECTS:
;	  3720	!	None
;	  3721	!--
;	  3722	
;	  3723	    begin
;	  3724	
;	  3725	    macro
;	  3726		NUM = 0, 0, 8, 1 %;
;	  3727	
;	  3728	    CTR [NUM] = .CTR [NUM] - 1;
;	  3729	
;	  3730	    if .CTR [NUM] neq 0
;	  3731	    then
;	  3732		begin
;	  3733	
;	  3734		if .CTR [NUM] lss 0 then CTR [NUM] = 0;
;	  3735	
;	  3736		return;
;	  3737		end;
;	  3738	
;	  3739	    if .DB [S_PROTOCOL_STATE] eql SS_RUNNING
;	  3740	    then
;	  3741		CTR [NUM] = 7;
;	  3742	
;	  3743	    begin
;	  3744	
;	  3745	    external routine
;	  3746		PARAMETER_CIRCUIT_COUNTERS : LINKAGE_DB novalue;
;	  3747	
;	P 3748	    $NM_DLL_EVENT (.TYPE, .DB [S_CIRCUIT_ENTITY],
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 143
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (63)

;	  3749		PARAMETER_CIRCUIT_COUNTERS (DB [D_TIM]));
;	  3750	    end;
;	  3751	    SEND_TRANSIENT_ERROR (DB [D_TIM], .STS);
;	  3752	    end;			!of routine TEST_THRESHOLD


						.GLOBL	CKCTRS


						.SBTTL	TEST.THRESHOLD
000000	105310 				TEST.THRESHOLD:
						DECB	(R0)				; CTR					3728
000002	001403 					BEQ	1$				;					3730
000004	100027 					BPL	3$				;					3734
000006	105010 					CLRB	(R0)				; CTR
000010	000207 					RTS	PC				;					3732
000012	126527  000002  000003 		1$:	CMPB	2(R5),#3			; *(DB),*				3739
000020	001002 					BNE	2$
000022	112710  000007 				MOVB	#7,(R0)				; *,CTR					3741
000026	004767  000000G			2$:	JSR	PC,$NLBEG			;					3749
000032	004767  000000G				JSR	PC,CKCTRS
000036	062703  000500 				ADD	#500,R3				; *,TYPE
000042	010300 					MOV	R3,R0
000044	016501  000126 				MOV	126(R5),R1			; *(DB),*
000050	004767  000000G				JSR	PC,$NLEND
000054	016603  000002 				MOV	2(SP),R3			; STS,*					3751
000060	004767  176442 				JSR	PC,SEND.TRANSIENT.ERROR
000064	000207 				3$:	RTS	PC				;					3697

; Routine Size:  27 words,	Routine Base:  $CODE$ + 11214
; Maximum stack depth per invocation:  1 word
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 144
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (64)

;	  3753	routine TEST_TRANSMIT_THRESHOLD
;	  3754	
;	  3755	!++
;	  3756	! FUNCTIONAL DESCRIPTION:
;	  3757	!
;	  3758	!
;	  3759	! FORMAL PARAMETERS:
;	  3760	!
;	  3761	       (DB : ref block field (D_FIELDS))
;	  3762	!
;	  3763	! IMPLICIT INPUTS:
;	  3764	!
;	  3765	! IMPLICIT OUTPUTS:
;	  3766	!	None
;	  3767	!
;	  3768	! ROUTINE VALUE:
;	  3769	!
;	  3770		: DCP_DB_N0 novalue =
;	  3771	!
;	  3772	! SIDE EFFECTS:
;	  3773	!	None
;	  3774	!--
;	  3775	
;	  3776	    begin
;	  3777	    TEST_THRESHOLD (DB [D_TIM], DB [S_TRANSMIT_THRESHOLD], 3, DLL$_TRANSMIT_THRESHOLD);
;	  3778	    end;			!of routine TEST_TRANSMIT_THRESHOLD


						.SBTTL	TEST.TRANSMIT.THRESHOLD
000000	004167  000000G			TEST.TRANSMIT.THRESHOLD:
						JSR	R1,$SAVE3			;					3753
000004	010046 					MOV	R0,-(SP)
000006	010500 					MOV	R5,R0				; DB,*					3777
000010	062700  000016 				ADD	#16,R0
000014	012746  100100 				MOV	#-77700,-(SP)
000020	012703  000003 				MOV	#3,R3
000024	004767  177662 				JSR	PC,TEST.THRESHOLD
000030	005726 					TST	(SP)+				;					3776
000032	012600 					MOV	(SP)+,R0			;					3753
000034	000207 					RTS	PC

; Routine Size:  15 words,	Routine Base:  $CODE$ + 11302
; Maximum stack depth per invocation:  7 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 145
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (65)

;	  3779	routine TIMCCB
;	  3780	
;	  3781	!++
;	  3782	! FUNCTIONAL DESCRIPTION:
;	  3783	!
;	  3784	!
;	  3785	! FORMAL PARAMETERS:
;	  3786	!
;	  3787	       (DB : ref block field (D_FIELDS),
;	  3788		CCB : ref block field (C_FIELDS))
;	  3789	!
;	  3790	! IMPLICIT INPUTS:
;	  3791	!
;	  3792	! IMPLICIT OUTPUTS:
;	  3793	!	None
;	  3794	!
;	  3795	! ROUTINE VALUE:
;	  3796	!
;	  3797		: MCB_DB_CCB novalue =
;	  3798	!
;	  3799	! SIDE EFFECTS:
;	  3800	!	None
;	  3801	!--
;	  3802	
;	  3803	    begin
;	  3804	
;	  3805	    map
;	  3806		CCB : ref block field (C_FIELDS);
;	  3807	
;	  3808	    label
;	  3809		RECOVERY;
;	  3810	
;	  3811	    do RECOVERY :
;	  3812		begin
;	  3813	
;	  3814		if .DB [DC_STOP_DEVICE]
;	  3815		then
;	  3816		    leave RECOVERY with STOP_DEVICE (.CCB, DB [D_TIM]);
;	  3817	
;	  3818		if .DB [DC_START_DEVICE]
;	  3819		then
;	  3820		    leave RECOVERY with START_DEVICE (.CCB, DB [D_TIM]);
;	  3821	
;	  3822		if .DB [S_USER_HANDLE] eql 0 then return $MCB_RETURN_CCB (.CCB);
;	  3823	
;	  3824		if .DB [SS_NOTIFY_STATE] or .DB [SS_NOTIFY_OFF]
;	  3825		then
;	  3826		    leave RECOVERY with SCHEDULE_STATE_AST (.CCB, DB [D_TIM]);
;	  3827	
;	  3828		if .DB [S_TRANSIENT_ERROR] neq 0
;	  3829		then
;	  3830		    leave RECOVERY with SCHEDULE_TRANSIENT_AST (.CCB, DB [D_TIM]);
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 146
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (65)

;	  3831	
;	  3832		if .DB [S_PERSISTENT_ERROR] neq 0
;	  3833		then
;	  3834		    leave RECOVERY with SCHEDULE_PERSISTENT_AST (.CCB, DB [D_TIM]);
;	  3835	
;	  3836		return $MCB_RETURN_CCB (.CCB);
;	  3837		end
;	  3838	    while $MCB_GET_CCB (CCB);
;	  3839	
;	  3840	    $MCB_REQUEST_CCB ();
;	  3841	    end;			!of routine TIMCCB


						.SBTTL	TIMCCB
000000	005746 				TIMCCB: TST	-(SP)				;					3779
000002	010416 				1$:	MOV	R4,(SP)
000004	032765  001000  000006 			BIT	#1000,6(R5)			; *,*(DB)				3814
000012	001403 					BEQ	2$
000014	004767  177256 				JSR	PC,STOP.DEVICE			;					3816
000020	000451 					BR	8$
000022	032765  002000  000006 		2$:	BIT	#2000,6(R5)			; *,*(DB)				3818
000030	001404 					BEQ	3$
000032	011604 					MOV	(SP),R4				;					3820
000034	004767  177150 				JSR	PC,START.DEVICE
000040	000441 					BR	8$
000042	005765  000130 			3$:	TST	130(R5)				; *(DB)					3822
000046	001432 					BEQ	7$
000050	032765  001000  000004 			BIT	#1000,4(R5)			; *,*(DB)				3824
000056	001004 					BNE	4$
000060	032765  000400  000004 			BIT	#400,4(R5)			; *,*(DB)
000066	001404 					BEQ	5$
000070	011604 				4$:	MOV	(SP),R4				;					3826
000072	004767  175152 				JSR	PC,SCHEDULE.STATE.AST
000076	000422 					BR	8$
000100	005765  000132 			5$:	TST	132(R5)				; *(DB)					3828
000104	001404 					BEQ	6$
000106	011604 					MOV	(SP),R4				;					3830
000110	004767  175244 				JSR	PC,SCHEDULE.TRANSIENT.AST
000114	000413 					BR	8$
000116	005765  000134 			6$:	TST	134(R5)				; *(DB)					3832
000122	001404 					BEQ	7$
000124	011604 					MOV	(SP),R4				;					3834
000126	004767  175000 				JSR	PC,SCHEDULE.PERSISTENT.AST
000132	000404 					BR	8$
000134	011604 				7$:	MOV	(SP),R4				;					3836
000136	004767  000000G				JSR	PC,$CCBRT
000142	000405 					BR	9$				;					3811
000144	004767  000000G			8$:	JSR	PC,$CCBGT			;					3838
000150	103314 					BHIS	1$
000152	004767  000000G				JSR	PC,$CCBRQ			;					3840
000156	005726 				9$:	TST	(SP)+				;					3779
000160	000207 					RTS	PC
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 147
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (65)


; Routine Size:  57 words,	Routine Base:  $CODE$ + 11340
; Maximum stack depth per invocation:  2 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 148
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (66)

;	  3842	routine TIMPWF
;	  3843	
;	  3844	!++
;	  3845	! FUNCTIONAL DESCRIPTION:
;	  3846	!
;	  3847	!
;	  3848	! FORMAL PARAMETERS:
;	  3849	!
;	  3850	       (DB : ref block field (D_FIELDS))
;	  3851	!
;	  3852	! IMPLICIT INPUTS:
;	  3853	!
;	  3854	! IMPLICIT OUTPUTS:
;	  3855	!	None
;	  3856	!
;	  3857	! ROUTINE VALUE:
;	  3858	!
;	  3859		: MCB_DB novalue =
;	  3860	!
;	  3861	! SIDE EFFECTS:
;	  3862	!	None
;	  3863	!--
;	  3864	
;	  3865	    begin
;	  3866	    NO_OPERATION;
;	  3867	    end;			!of routine TIMPWF


						.SBTTL	TIMPWF
000000	000207 				TIMPWF: RTS	PC				;					3842

; Routine Size:  1 word,	Routine Base:  $CODE$ + 11522
; Maximum stack depth per invocation:  0 words
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 149
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (67)

;	  3868	routine TIMLTM
;	  3869	
;	  3870	!++
;	  3871	! FUNCTIONAL DESCRIPTION:
;	  3872	!
;	  3873	!
;	  3874	! FORMAL PARAMETERS:
;	  3875	!
;	  3876	       (DB : ref block field (D_FIELDS))
;	  3877	!
;	  3878	! IMPLICIT INPUTS:
;	  3879	!
;	  3880	! IMPLICIT OUTPUTS:
;	  3881	!	None
;	  3882	!
;	  3883	! ROUTINE VALUE:
;	  3884	!
;	  3885		: MCB_DB novalue =
;	  3886	!
;	  3887	! SIDE EFFECTS:
;	  3888	!	None
;	  3889	!--
;	  3890	
;	  3891	    begin
;	  3892	
;	  3893	    if .DB [L_DUPLEX] neq DL_FULL
;	  3894	    then
;	  3895		begin
;	  3896		COUNTER_INCREMENT (DB, S_SELECTION_TIMEOUTS);
;	  3897		COUNTER_INCREMENT (DB, SS_NRT);
;	  3898		TEST_SELECT_THRESHOLD (DB [D_TIM]);
;	  3899		end;
;	  3900	
;	  3901	    case .DB [S_PROTOCOL_STATE] from SS_LOW to SS_HIGH of
;	  3902		set
;	  3903		[SS_HALTED] :
;	  3904		    return;
;	  3905		[SS_ISTRT, SS_ASTRT, SS_RUNNING] : 
;	  3906	
;	  3907		    if .DB [L_DUPLEX] neq DL_FULL then RESYNCHRONIZE (DB [D_TIM]);
;	  3908	
;	  3909		[SS_MAINTENANCE] :
;	  3910		    RESYNCHRONIZE (DB [D_TIM]);
;	  3911		tes;
;	  3912	
;	  3913	    TERMINATE_SELECTION_INTERVAL (DB [D_TIM]);
;	  3914	    end;			!of routine TIMLTM


						.SBTTL	TIMLTM
000000	012701  000012 			TIMLTM: MOV	#12,R1				;					3893
000004	060501 					ADD	R5,R1				; DB,*
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 150
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (67)

000006	105711 					TSTB	(R1)
000010	001412 					BEQ	1$
000012	012700  000052 				MOV	#52,R0				;					3896
000016	060500 					ADD	R5,R0				; DB,*
000020	004767  000000G				JSR	PC,$IC8
000024	052765  000400  000052 			BIS	#400,52(R5)			; *,*(DB)				3897
000032	004767  177374 				JSR	PC,TEST.SELECT.THRESHOLD	;					3898
000036	116500  000002 			1$:	MOVB	2(R5),R0			; *(DB),*				3901
000042	006300 					ASL	R0
000044	066007  000342'				ADD	P.AAV(R0),PC			; Case dispatch
000050	000207 				2$:	RTS	PC				;					3904
000052	105711 				3$:	TSTB	(R1)				;					3907
000054	001402 					BEQ	5$
000056	004767  174452 			4$:	JSR	PC,RESYNCHRONIZE		;					3910
000062	004767  177166 			5$:	JSR	PC,TERMINATE.SELECTION.INTERVAL ;					3913
000066	000207 				6$:	RTS	PC				;					3868

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


000342						.PSECT	$PLIT$,  RO ,  D  

					P.AAV:						; CASE Table for TIMLTM+0044		3901
000342	000016 					.WORD	16				; [6$]
000344	000002 					.WORD	2				; [3$]
000346	000002 					.WORD	2				; [3$]
000350	000002 					.WORD	2				; [3$]
000352	000006 					.WORD	6				; [4$]
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 151
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (68)

;	  3915	routine TRANSMIT
;	  3916	
;	  3917	!++
;	  3918	! FUNCTIONAL DESCRIPTION:
;	  3919	!
;	  3920	!
;	  3921	! FORMAL PARAMETERS:
;	  3922	!
;	  3923	       (DB : ref block field (D_FIELDS),
;	  3924		CCB : ref block field (C_FIELDS))
;	  3925	!
;	  3926	! IMPLICIT INPUTS:
;	  3927	!
;	  3928	! IMPLICIT OUTPUTS:
;	  3929	!	None
;	  3930	!
;	  3931	! ROUTINE VALUE:
;	  3932	!
;	  3933		: MCB_DB_CCB novalue =
;	  3934	!
;	  3935	! SIDE EFFECTS:
;	  3936	!	None
;	  3937	!--
;	  3938	
;	  3939	    begin
;	  3940	    DB [D_USER_BUFFERS] = .DB [D_USER_BUFFERS] + 1;
;	  3941	
;	  3942	    if .DB [SS_ACTIVE]
;	  3943	    then
;	  3944		begin
;	  3945	
;	  3946		if .DB [S_PROTOCOL_STATE] eql SS_MAINTENANCE
;	  3947		then
;	  3948		    begin
;	  3949		    local
;	  3950			SAVE_MAP;
;	  3951		    SMAP$ (SAVE_MAP);
;	  3952		    MAP$ (.CCB [C_BIAS]);
;	  3953		    selectone ch$rchar (.CCB [C_ADDR]) of
;	  3954			set
;	  3955			[8, 12]:
;	  3956			    ch$wchar (28, ch$plus (.CCB [C_ADDR], 1));
;	  3957			tes;
;	  3958		    MAP$ (.SAVE_MAP);
;	  3959		    end;
;	  3960	
;	  3961		$MCB_QUEUE_CCB (DB [S_WAITING_FOR_TRANSMIT], .CCB);
;	  3962		SEND_DATA (DB [D_TIM]);
;	  3963		end
;	  3964	    else
;	  3965		SCHEDULE_TRANSMIT (.CCB, DB [D_TIM], DLL$_ABORTED);
;	  3966	
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 152
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (68)

;	  3967	    end;			!of routine TRANSMIT


						.SBTTL	TRANSMIT
011614						.PSECT	$CODE$,  RO 

000000	010501 				TRANSMIT:
						MOV	R5,R1				; *,DB					3915
000002	005261  000136 				INC	136(R1)				; *(DB)					3940
000006	032761  002000  000004 			BIT	#2000,4(R1)			; *,*(DB)				3942
000014	001443 					BEQ	4$
000016	126127  000002  000004 			CMPB	2(R1),#4			; *(DB),*				3946
000024	001025 					BNE	3$
000026	016702  000000G				MOV	KISAR6,R2			; *,SAVE.MAP				3951
000032	016467  000016  000000G			MOV	16(R4),KISAR6			; *(CCB),*				3952
000040	005000 					CLR	R0				;					3953
000042	157400  000020 				BISB	@20(R4),R0			; *(CCB),*
000046	020027  000010 				CMP	R0,#10
000052	001403 					BEQ	1$
000054	020027  000014 				CMP	R0,#14
000060	001005 					BNE	2$
000062	016400  000020 			1$:	MOV	20(R4),R0			; *(CCB),*				3956
000066	112760  000034  000001 			MOVB	#34,1(R0)
000074	010267  000000G			2$:	MOV	R2,KISAR6			; SAVE.MAP,*				3958
000100	010105 				3$:	MOV	R1,R5				; DB,*					3961
000102	062705  000114 				ADD	#114,R5
000106	010503 					MOV	R5,R3
000110	004767  000000G				JSR	PC,$CMQIN
000114	010105 					MOV	R1,R5				; DB,*					3962
000116	004767  175072 				JSR	PC,SEND.DATA
000122	000207 					RTS	PC				;					3942
000124	010105 				4$:	MOV	R1,R5				; DB,*					3965
000126	012703  100030 				MOV	#-77750,R3
000132	004767  175006 				JSR	PC,SCHEDULE.TRANSMIT
000136	000207 					RTS	PC				;					3915

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


;	  3968	end
;	  3969	eludom



;					OTS external references
						.GLOBL	$SAVE3


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
DCP								25-Jan-1983 09:57:24	TOPS-20 Bliss-16 3(552)		    Page 153
X05180								30-Dec-1982 02:25:50	NETPKG:<DRIVERS>DCP.B16.9 (68)

;	 $PLIT$				  118	    RO ,  D  ,  LCL,  REL,  CON
;	 ......				   16	    RW ,  D  ,  LCL,  REL,  CON
;	 $CODE$				 2550	    RO ,  I  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<V3P0>MCBLIB.L16.7		       372        87        23         0
;  NETPKG:<MCB>XPORTX.L16.15		       599         9         1         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200        13         6         0
;  NETPKG:<DRIVERS>DCPDAT.L16.2		       186       155        83         0





; Size:		2550 code + 134 data words
; Run Time:	   00:52.3
; Elapsed Time:	   02:53.8
; Memory Used:	65 pages
; Compilation Complete
BLISS16				   3
BUILD_CONTROL_MESSAGE		 364	 524*	2992	3005	3035
BUILD_DATA_MESSAGE		 365	 629*	3018
BUILD_MAINTENANCE_MESSAGE	 366	 692*	3047
BUILD_MESSAGES			2999	3001	3005	3022
BUMP_8_BIT_COUNTER		 367	 744*
CCB				 152+	 156+	 168+	 172+	 195+	 199+	 208+	 212+	 221+	 225+	 243+	 247+
				 550	 553	 570	 584	 595	 605	 616	 623#	 625	 656	 660	 664
				 682	 686#	 688	 719	 723	 727	 734	 738#	 740	 784	 800	 801
				 802	 803	 804	 815	 835	 846	 862	 879	 895	1062	1082#	1083#
				1087	1089	1101	1126	1128	1130#	1132#	1133#	1134	1205	1229	1241
				1264	1276	1292	1304	1320	1342	1379	1385	1389#	1390#	1412	1416
				1422	1423	1424	1428	1439	1440	1454	1478	1490	1518	1535	1539
				1543	1647	1672	1684	1704#	1705#	1706	1718	1735	1737#	1738#	1739#
				1740#	1741#	1742#	1847	1867#	1868#	1869	1879	1899#	1902#	1978	2008
				2019	2059	2064	2068#	2069	2073	2074	2079	2083	2104	2109	2113#
				2114	2118	2119	2124	2128	2142	2181	2186	2190#	2191	2196	2201
				2482	2499	2670	2677	2680#	2681	2753	2755	2759	2771	2789#	2790#
				2791#	2792#	2793	2804	2822#	2824	2827#	2828#	2829	2839	2858	2860#
				2861#	2862#	2863#	2864	2869	2871	2883	2901#	2902#	2903#	2904#	2905
				2916	2935#	2936#	2937	3014	3016	3018	3021	3043	3045	3047	3050
				3063	3065#	3072	3075#	3077#	3084	3098	3100#	3102	3141	3147	3149
				3181	3189	3191	3224	3230	3232	3277	3279	3281	3293	3295	3297
				3414	3434#	3435#	3436#	3437	3447	3471#	3472#	3473#	3474#	3475	3485
				3510#	3511	3522	3541#	3542#	3543	3554	3582#	3788	3806	3816	3820
				3822	3826	3830	3834	3836	3838	3924	3952	3953	3956	3961	3965
CCPGET				 368	 775*	1225
CCPSET				 369	 806*	1226
CCPSTP				 370	 837*	1228
CCPSTR				 371	 870*	1227
CE_BUF				2515
CE_DCR				1416	2501
CE_HFE				2539
CE_MTL				2527
CE_ROV				2521
CH$WCHAR			3956
CHANGE_PROTOCOL_STATE		 372	 901*	1943	2402	2453	3387	3394	3400
CKACK				 373	 936*	1955	2088	2240
CKREP				 374	 996*	1957	2090
CMQRM$				 457
CM_DLE				 728	1424
CM_ENQ				 555	1422	1527	1563
CM_SOH				 675	1423	1532	1569
CNT				 657	 664#	 670	 676	 677	 720	 727#	 729	 730	1897	1900#	1902#
				1904
COUNTER_ADD			 670	2064	2109
COUNTER_INCREMENT		 671	1630	1786	1787	2063	2108	2195	2301	2302	2308	2506	2507
				2511	2512	2518	2519	2524	2525	2536	2537	2542	2543	2586	2587
				2592	2593	2598	2599	2603	2604	2609	2610	2615	2616	2621	2622
				3630	3896	3897
CTLSTP				 375	1053*	1263
CTLSTR				 376	1092*	1262
CTR				 752	 768#	 770	 772#	3706	3728#	3730	3734#	3741#
CURRENT_STATUS			1136*	2863
C_ADDR				1385	1389	1518	1742	3072	3084	3434	3578	3953	3956
C_BIAS				1379	1741	3952
C_CHN				1737	1899	1902
C_CNT				1390	1740	1902	2064	2109	3435
C_FIELDS			 156+	 172+	 199+	 212+	 225+	 247+	 455	 550	 638	 656	 701	 719
				 784	 815	 846	 879	1062	1101	1205	1241	1276	1304	1342	1454
				1490	1647	1684	1717	1718	1847	1879	1978	2019	2142	2482	2670
				2753	2771	2804	2839	2883	2916	3014	3043	3063	3098	3141	3181
				3224	3277	3293	3414	3447	3485	3522	3554	3788	3806	3924
C_FNC				 164+	 177+	 204+	 217+	 230+	 252+	1082	1133	1704	1867	2790	2827
				2861	2902	2935	3541
C_HANDLE			 476#	1126	1738	2680	2789	2822	2824	2860	2901	3436	3474	3510
C_LIN				 162+	 476
C_LNK				 166+	 179+	 206+	 219+	 232+	 254+
C_MOD				 165+	 178+	 205+	 218+	 231+	 253+	2068	2113	2190	2791	2862	2903
				3075	3582
C_PIX				 159+	 175+	 202+	 215+	 228+	 250+
C_PRM1				 800	1128	1130	1742
C_PRM2				 801	3473
C_PRM3				 802	3472
C_PRM4				 623	 686	 738	 803	1739	3077	3471
C_STK				1535	1539	1737
C_STS				1083	1132	1416	1705	1868	2059	2104	2186	2499	2792	2828	2863
				2904	2936	3542
DB				 532	 553	 559	 561#	 562#	 563	 570	 573	 575#	 576#	 577	 584
				 587	 589#	 591	 592	 595	 597	 599#	 603	 605	 607	 609#	 612
				 616	 621	 623	 625	 626#	 637	 660	 662#	 663#	 666	 669#	 670
				 671	 674#	 678	 679	 682	 684	 686	 688	 689#	 700	 723	 725#
				 726#	 734	 736	 738	 740	 741#	 783	 800#	 801#	 802#	 803#	 814
				 845	 863#	 864	 865	 866	 867	 868	 878	 896#	 897#	 898#	 899
				 909	 928	 930	 931	 932#	 933	 934	 944	 965	 972	 979#	 985
				 992#	 993	1004	1020#	1021#	1023#	1035	1037	1038	1043	1046#	1047#
				1050#	1061	1078#	1079#	1080#	1081#	1085	1089#	1100	1126#	1130	1132
				1136	1160	1181	1184#	1186	1188#	1190#	1193#	1194#	1204	1229	1240
				1264	1275	1293#	1303	1320	1321#	1323	1325	1328	1329#	1341	1360
				1409	1412	1422	1423	1424	1427	1428	1439	1440	1443	1453	1478
				1489	1508	1530#	1535	1536	1539	1547#	1549	1552	1557	1567#	1582
				1585#	1586	1592	1594#	1599#	1600#	1602#	1611	1614#	1615#	1617	1618#
				1624	1630	1631#	1636	1646	1672	1683	1700	1701#	1702#	1703	1716
				1738	1752	1769	1773#	1774#	1778#	1779#	1783#	1784#	1785#	1786	1787
				1788	1789	1804	1821	1825#	1826#	1830#	1831#	1846	1863	1864#	1865#
				1866	1914	1932	1934	1937	1943	1944#	1945#	1947#	1951	1955	1957
				1959	1967	1977	1996	2000	2001	2002	2003	2004	2005	2008	2018
				2037	2039	2053	2062#	2063	2064	2065#	2066#	2067#	2069	2073	2074
				2079	2083	2088	2090	2098	2107#	2108	2109	2110#	2111#	2112#	2114
				2118	2119	2124	2128	2131	2141	2160	2162	2171	2173	2177	2178
				2179#	2180	2181	2189#	2191	2195	2196	2201	2204	2214	2232	2234
				2237	2240	2244#	2246	2247	2250	2258	2268	2286	2288	2291	2294
				2297#	2298#	2299#	2300	2301	2302	2306#	2307#	2308	2317	2327	2345
				2347	2353#	2354#	2355	2358#	2369	2387	2389	2396	2398#	2400#	2402
				2403#	2404#	2407#	2414	2424	2442	2444	2451	2453	2454#	2455#	2456#
				2457#	2461	2462#	2463	2466	2471	2481	2502	2505#	2506	2507	2511
				2512	2517#	2518	2519	2523#	2524	2525	2533	2535#	2536	2537	2541#
				2542	2543	2549#	2550#	2551	2552	2562	2580	2586	2587	2588	2592
				2593	2594	2598	2599	2603	2604	2605	2609	2610	2611	2615	2616
				2617	2621	2622	2623	2626	2629	2632#	2634	2638#	2639#	2641#	2652
				2675	2679#	2680	2691	2707#	2709	2713#	2714	2716#	2718#	2719	2722#
				2732	2749	2755	2757#	2758#	2759	2772	2789	2792	2794#	2805	2822
				2824	2826#	2840	2858	2860	2863	2866	2871	2884	2901	2904	2906#
				2917	2939#	2941	2943	2946	2947#	2959	2977	2979	2981	2983#	2985
				2990	2992	3003	3005	3007	3010	3016	3018	3021	3025#	3029	3031#
				3033	3035	3045	3047	3050	3058	3065	3066#	3089	3091#	3100	3102
				3110	3121	3143	3145#	3149	3162	3183	3185#	3187#	3191	3204	3226
				3228#	3232	3245	3263	3266	3270	3272	3281	3284#	3286	3288	3297
				3300#	3302	3306	3307#	3308	3309#	3312	3313#	3321	3323	3333	3350#
				3351#	3352#	3353#	3354#	3355#	3356#	3357#	3358#	3359#	3360#	3361#	3362#
				3363#	3364#	3365#	3366#	3367#	3368#	3369#	3370#	3377	3379#	3381#	3383#
				3384#	3385#	3386#	3387	3391#	3392#	3393#	3394	3398#	3399#	3400	3413
				3436	3448	3469#	3470#	3471	3472	3473	3474	3486	3507#	3508#	3509#
				3510	3521	3538#	3539#	3540	3553	3571	3578	3592	3609	3612#	3613#
				3615	3619#	3620#	3624#	3625#	3629#	3630	3631	3639#	3641#	3643	3653
				3669	3679	3695	3705	3739	3748	3749	3751	3761	3777	3787	3814
				3816	3818	3820	3822	3824	3826	3828	3830	3832	3834	3850	3876
				3893	3896	3897	3898	3901	3907	3910	3913	3923	3940#	3942	3946
				3961	3962	3965
DB_BIAS				 516#
DCCB				 638	 660	 701	 723
DCP				   1#	 489
DCPCCP				 377	 498	1196*
DCPCTL				 378	 491	1232*
DCPKCP				 379	 497	1267*
DCPNM				 508*	1261
DCPRCE				 380	 493	1295*
DCPRCP				 381	 496	1333*
DCPTIM				 382	 494	1445*
DCPXCP				 383	 495	1481*
DCPXME				 384	 492	1638*
DCP_CCB				 343#	 390	1888#
DCP_CCB_DB_STS			 341#	 409	2928#
DCP_CCB_DB			 339#	 405	 406	 407	 408	 417	 418	2782#	2815#	2850#	2894#	3458#
				3496#
DCP_CTR				 345#	 367	 761#
DCP_DB				 346#	 364	 372	 373	 374	 387	 388	 391	 395	 396	 397	 398
				 399	 401	 402	 403	 404	 410	 412	 414	 415	 421	 432	 541#
				 920#	 953#	1013#	1761#	1813#	1923#	2223#	2277#	2336#	2378#	2433#	2571#
				2661#	2700#	2741#	2969#	3172#	3255#	3343#	3601#
DCP_DB_CCBR			 354#	 365	 366	 392	 393	 394	 416	 508	 647#	 710#	1987#	2028#
				2151#	3423#
DCP_DB_CCB_HDR			 356#	 386	1727#
DCP_DB_CCB_N0			 352#	 420	3563#
DCP_DB_CCB			 350#	 400	2491#
DCP_DB_CTR_STS			 358#	 423	3717#
DCP_DB_N0			 348#	 422	 424	 425	3662#	3688#	3770#
DCP_DB_STS			 360#	 411	 413	3132#	3215#
DC_SET_REQUESTED_STATE		1701	1864	3302	3307	3309	3313	3538
DC_START_DEVICE			3286	3300	3385	3392	3469	3818
DC_STOP_DEVICE			3270	3284	3398	3507	3814
DDM_CCB				 505#	 833	2673	3108	3432	3467	3505
DECLARE_SEVERITY		 257+
DISPATCH$			1222	1258	1471	1664
DLC_DISPATCH			 490#
DLL				 257+
DLL$A_CIRCUIT_NAME		 132+#
DLL$B_PROVIDER_LINE_INDEX	 127+#
DLL$B_PROVIDER_PROCESS_INDEX	 128+#
DLL$FW_START_CCB_PRM1		 125+#
DLL$FW_START_CCB_PRM2		 130+#
DLL$FW_START_CCB_PRM3		 134+#
DLL$K_DATA_RECEIVED		 271+#	2068	2113
DLL$K_ENTER_MAINTENANCE		 231+	 265+#	1667
DLL$K_INITIALIZE_LINK		 205+	 263+#	1668
DLL$K_MAINTENANCE_RECEIVED	 272+#	2190
DLL$K_PERSISTENT_ERROR		 279+#	2791
DLL$K_STATE			 277+#	2862
DLL$K_STOP_LINK			 218+	 264+#	1669
DLL$K_TRANSIENT_ERROR		 278+#	2903
DLL$K_TRANSMIT			 253+	 262+#	1670
DLL$K_TRANSMIT_AND_TIME		 266+#	1671
DLL$V_DTE_CIRCUIT		 136+#
DLL$_ABORTED			 286+	 865	 867	3965
DLL$_DEVICE_OPERATION_ERROR	 315+
DLL$_DEVICE_RESPONSE_ERROR	 311+
DLL$_DEVICE_SERVICE_ERROR	 313+
DLL$_MAINTENANCE_RECEIVED	 309+	2178
DLL$_NOT_SUPPORTED		 285+
DLL$_PAUSE_TIMEOUT		 318+
DLL$_PRIVLEDGE_VIOLATION	 284+
DLL$_RECEIVE_ERROR		 325+
DLL$_RECEIVE_THRESHOLD		 299+	3669
DLL$_SELECTION_THRESHOLD	 301+	3695
DLL$_SERVICE_TIMEOUT		 323+
DLL$_START_RECEIVED		 307+	2461
DLL$_STATE_MAINTENANCE		 293+	1124	1179
DLL$_STATE_OFF			 290+	1120	1176
DLL$_STATE_RUNNING		 292+	1123	1178
DLL$_STATE_SYNCHRONIZING	 291+	1121	1122	1177
DLL$_SUCCESS			 283+	1083	1539	1705	1868	2069	2114	2191	2759	2828	3542
DLL$_TRANSMIT_THRESHOLD		 297+	3777
DLL_MAINTENANCE			1166#	1174	1179
DLL_OFF				1163#	1170	1176	1186	1190
DLL_RUNNING			1165#	1173	1178
DLL_STATUS			1175#	1190	1194
DLL_SYNCHRONIZING		1164#	1171	1172	1177
DL_FULL				1023	1043	1602	1617	1624	1947	2244	2347	2400	2641	3089	3377
				3893	3907
DL_ON				3306
DP_DMC				 570	 584	 616	 682	2162
D_CONTROL_FLAGS			2977	3263
D_FIELDS			 523	 532	 637	 700	 783	 814	 845	 878	 909	 944	1004	1061
				1100	1204	1240	1275	1303	1341	1453	1489	1646	1683	1716	1752
				1804	1846	1914	1977	2018	2141	2214	2268	2327	2369	2424	2481
				2562	2652	2691	2732	2772	2805	2840	2884	2917	2959	3121	3162
				3204	3245	3333	3413	3448	3486	3521	3553	3592	3653	3679	3705
				3761	3787	3850	3876	3923
D_LENGTH			 479
D_REGISTER			 801
D_REPORTED_STATE		1186	1190	1194
D_TIM				 553	 563	 570	 577	 584	 595	 605	 616	 660	 682	 723	 734
				 865	 867	 868	 899	 934	 993	1023	1047	1229	1264	1320	1412
				1422	1423	1424	1427	1428	1439	1440	1443	1478	1536	1539	1552
				1602	1618	1631	1636	1672	1700	1703	1863	1866	1937	1943	1947
				1951	1955	1957	1959	1967	2000	2001	2002	2003	2004	2005	2008
				2069	2073	2074	2079	2083	2088	2090	2114	2118	2119	2124	2128
				2131	2171	2178	2179	2180	2181	2191	2196	2201	2204	2237	2240
				2244	2246	2247	2250	2258	2291	2300	2317	2353	2355	2358	2396
				2400	2402	2414	2451	2453	2461	2462	2463	2471	2551	2552	2588
				2594	2605	2611	2617	2623	2626	2634	2641	2759	2824	2863	2871
				2992	3005	3018	3035	3047	3102	3149	3191	3232	3281	3297	3312
				3323	3387	3394	3400	3540	3631	3643	3669	3695	3749	3751	3777
				3816	3820	3826	3830	3834	3898	3907	3910	3913	3962	3965
D_USER_BUFFERS			1085	1321	1323	2826	2939	2941	3940
ENTER_MAINTENANCE		 385	1667	1675*
EQLU				 666	1940	2043	2824
ERROR				 257+
FALSE				 468#	 561	 575	 589	 599	 609	 662	 863	 896	 990	1020	1021
				1078	1184	1188	1193	1293	1599	1600	1614	1785	2066	2111	2299
				2307	2550	2638	2639	2707	3066	3091	3284	3300	3307	3309	3313
				3350	3351	3352	3353	3354	3355	3356	3357	3358	3359	3360	3379
				3399	3469	3507	3508	3612	3613
FC_AST				2790	2861	2902
FC_CCP				 490	 498	1082	1133
FC_CTL				 164+	 177+	 491
FC_KCP				 497
FC_RCE				 493
FC_RCP				 496	2827
FC_TIM				 494
FC_XCP				 495	1704	1867	2935	3541
FC_XME				 204+	 217+	 230+	 252+	 492
FD_TIM				1224	1473
FLD0				 439	 442	 443	 444	 446
FLD1				 439	 440	 446
FLD2				 439	 446
FLD3				 439
FLUSH_QUEUE			 450#	 864	 866	3110
FM_CCB				1477
FM_GET				1225
FM_LTM				1474
FM_NM				1261
FM_PIN				1476
FM_PWF				1475
FM_SET				1226
FM_STP				 178+	1228	1263
FM_STR				 165+	1227	1262
FM_SYN				3075	3582
GET_DCP_DATA_BASE		 519#	1160
HDR_0				1371	1386#	1400
HDR_1				1371	1387#	1401
HDR_2				1371	1388#	1402
HDR_FIELDS			 965	1360	1508	1932	1996	2037	2160	2232	2286	2345	2387	2442
				2580	3070	3082	3576
HEADER				 965#	 973	 992	1360#	1368	1399	1420	1508#	1513	1519#	1520#	1521#
				1527	1532	1561	1565	1585	1627	1932#	1940	1996#	1998	2037#	2043
				2054	2099	2160#	2165#	2166#	2169	2232#	2286#	2294	2345#	2350	2387#
				2394	2442#	2449	2580#	2582	2629	3070	3072#	3073#	3082	3084#	3085#
				3576	3578#	3579#
HEADER_CCB			 386	 553	 660	 723	1708*
HEADER_FORMAT_ERROR		 387	1427	1744*	2005	2171	2396	2451
H_IDENTIFIER			1420	1527	1532	1561
H_LENGTH			 965	1360	1368	1390	1508	1513	1932	1996	2037	2160	2232	2286
				2345	2387	2442	2580	3070	3082	3434	3435
H_NUM				1585	2054	2099	2294
H_QSYNC				2166	3085	3579
H_RESP				 973	 992	1940	2043	2629
H_SELECT			1627	2165	2169	2350	2394	2449	3073
H_SUBTYPE			2582
H_TYPE				1565	1998
IGNORE_MESSAGE			 388	1796*	1937	1951	1959	2237	2250	2291
INFO				 257+
INITIALIZE_LINK			 389	1668	1838*
K_PRIORITY			 803
K_REGISTER			 800
K_VECTOR			 802
LANGUAGE			   3
LAST_ACK			 968	 972#	 975	 979	 984	 986
LCL				 472#	3387	3394	3400
LIN				 152+	 161+	 162+
LINKAGE_DB			1136#	3746
LIST_FIRST			 621	 684	 736	2709	2714	2718	3029	3058	3100	3571
LIST_LAST			 623	 686	 738	2713	2716	3065	3578
LL_N17				2621
LL_N9				2524
LL_NNS				2511
LR_N17				1787
LR_N9				2609
LS_RESYNCH_IN_PROGRESS		1293	1409	2675	2679	3354
LS_STATION_ENABLED		 897	2981	3091	3350	3639
L_BABBLE_COUNT			2983	3025
L_CLOCK				3471
L_CONTROLLER			3472
L_DRIVER_HANDLE			1738	2680	3436	3474	3510
L_DUPLEX			1023	1043	1602	1617	1624	1947	2244	2347	2400	2641	3089	3377
				3473	3893	3907
L_HEADER			 965	1360	1508	1789	1932	1996	2037	2160	2232	2286	2345	2387
				2442	2580
L_LINE_STATE			3306
L_LOCAL_STATION_ERRORS		2512	2525	2622
L_MAINTENANCE_BCC_ERRORS	2195
L_MAXIMUM_AT_DRIVER		3010
L_MESSAGES_AT_DRIVER		 663	 726	1530	2979	3010
L_PRE_TRANSMIT			 621	 623	 625	 684	 686	 688	 736	 738	 740	3029	3058	3065
				3100	3110	3571	3578
L_PROTOCOL			 570	 584	 616	 682	2162
L_REMOTE_STATION_ERRORS		1786	2610
L_RETRANSMIT_TIMER		1047	1618	1631	2358
MAP$				1379	1392	3952	3958
MCB$GAW_PROCESS_DATA_BASE	 512	 516	 522
MCB$GW_PROCESS_HANDLE		 513
MCB$GW_RDB_SIZE			2531	2534
MCB_DB				 427	 428	 509	3859#	3885#
MCB_DB_CCB_MOD			 377	 378	 382	 384	1215#	1251#	1464#	1657#
MCB_DB_CCB			 368	 369	 370	 371	 375	 376	 379	 380	 381	 383	 385	 389
				 419	 426	 429	 793#	 824#	 855#	 888#	1071#	1110#	1230	1265	1285#
				1313#	1351#	1479	1499#	1673	1693#	1856#	3531#	3797#	3933#
MESSAGE_LENGTH			 390	 664	 727	1871*
MODIFIER			1206	1223	1242	1259	1455	1472	1648	1665
MT_ACK				 610	2002
MT_HIGH				1998
MT_LOW				1998
MT_NAK				 590	2003
MT_REP				 600	1565	2004
MT_STK				 564	2001
MT_STR				 578	2000
NAME				 489#	 519	 520	 521	 522#
NEW_NUM				2051	2053#	2054	2096	2098#	2099
NONE				  76
NO_OPERATION			 469#	1792	1834	1962	1964	2253	2255	2312	2314	2409	2411	2468
				3634	3866
NUM				 962#	 968	 969	 970	 975	 979	 988	1029#	1032	1033	1039	1576#
				1579	1580	1587	3726#	3728	3730	3734	3741
NUM_ACKED			 969	 973#	 975	 984#	 988
NUM_NOT_ACKED			1032	1036#	1038#	1039	1579	1583#	1586#	1587
NUM_NOT_TRANSMITTED		1033	1035#	1036	1037#	1039	1580	1582#	1583	1584#	1587
NUM_SENT			 970	 985#	 986#	 988
PARAMETER_CIRCUIT_COUNTERS	3746*	3749
PARAMETER_C_1			 931	 933
PARAMETER_DU_2			2534
PARAMETER_HI			1789
PROCESS_ACK_MESSAGE		 391	1906*	2002
PROCESS_CONTROL_MESSAGE		 392	1422	1969*
PROCESS_DATA_MESSAGE		 393	1423	2010*
PROCESS_MAINTENANCE_MESSAGE	 394	1424	2133*
PROCESS_NAK_MESSAGE		 395	2003	2206*
PROCESS_REP_MESSAGE		 396	2004	2260*
PROCESS_SELECT_FLAG		 397	1967	2131	2204	2247	2258	2317	2319*	2414	2471
PROCESS_STACK_MESSAGE		 398	2001	2361*
PROCESS_START_MESSAGE		 399	2000	2416*
PROVIDER_PIX			 152+	 158+	 159+	 168+	 174+	 175+	 195+	 201+	 202+	 208+	 214+	 215+
				 221+	 227+	 228+	 243+	 249+	 250+
PTR				 551	 553#	 555	 564	 565	 566	 567	 568	 578	 579	 580	 581
				 582	 590	 591	 592	 593	 594	 600	 601	 602	 603	 604	 610
				 611	 612	 613	 614	 627	 658	 660#	 675	 676	 677	 678	 679
				 680	 690	 721	 723#	 728	 729	 730	 731	 732	 733	 742	1383
				1385#	1386	1387	1388	1389#	1397	1399#	1400#	1401#	1402#	1403#	1516
				1518#	1519	1520	1521	1522#
QUEUE				 450	 457
REASON				 911	 930
RECORD_DRIVER_ERROR		 400	1439	2073	2118	2473*
RECORD_NAK_REASON		 401	2246	2554*
RECOVERY			3809	3811	3816	3820	3826	3830	3834
RESYNCHRONIZE			 402	2644*	3907	3910
RETRANSMIT_UNACKED_MESSAGES	 403	1552	2634	2683*
RETURN_ACKED_MESSAGES		 404	 993	1536	2724*
RETURN_CALL			 450	 459
RMT				 473#
RN_BUF				2517	2601
RN_DBC				2505	2590
RN_HBC				2541	2584
RN_HFE				1784	2619
RN_MTL				2535	2613
RN_REP				2298	2596
RN_ROV				2523	2607
SAVE_MAP			1376	1378	1392	3950	3951	3958
SCHEDULE_PERSISTENT_AST		 405	2763*	3149	3834
SCHEDULE_RECEIVE		 406	2069	2114	2191	2796*
SCHEDULE_STATE_AST		 407	2831*	2871	3191	3826
SCHEDULE_TRANSIENT_AST		 408	2875*	3232	3830
SCHEDULE_TRANSMIT		 409	 865	 867	1539	2759	2908*	3965
SEND_DATA			 410	1443	1636	2552	2951*	3323	3643	3962
SEND_PERSISTENT_ERROR		 411	2178	2461	3113*
SEND_STATE			 412	 934	3154*
SEND_TRANSIENT_ERROR		 413	3196*	3751
SET_DEVICE			 414	 868	 899	1703	1866	2180	2463	3237*	3540
SET_LINK			 415	1700	1863	2179	2462	3312	3325*
SEVERE				 257+
SI_N1				2542
SI_N2				2506
SI_N3				2301
SL_N16				2536
SL_N8				2518
SMAP$				1378	3951
SO_N1				2586
SO_N2				2592
SO_N3				2598
SR_N16				2615
SR_N8				2603
SS_ACTIVE			3386	3393	3399	3942
SS_ASTRT			1122	1172	1776	1828	1938	2041	2175	2236	2290	2391	2446	2453
				2987	3374	3622	3905
SS_DEVICE_BEING_SET		 863	 896	3266	3470	3509
SS_DEVICE_RUNNING		 898	3272	3288	3508
SS_HALF_DUPLEX			3379	3381	3391	3641
SS_HALTED			1120	1170	1409	1557	1700	1863	2179	2462	3185	3321	3400	3539
				3903
SS_HIGH				1769	1821	1934	2039	2173	2234	2288	2389	2444	2985	3372	3615
				3901
SS_ISTRT			1121	1171	1771	1823	1936	2175	2236	2290	2391	2446	2987	3374
				3387	3617	3905
SS_LOW				1769	1821	1934	2039	2173	2234	2288	2389	2444	2985	3372	3615
				3901
SS_MAINTENANCE			1124	1174	1702	1961	2183	2252	2311	2408	2465	3039	3389	3394
				3909	3946
SS_NOTIFY_OFF			1181	1184	3185	3824
SS_NOTIFY_STATE			1078	1188	1193	2858	2866	3187	3824
SS_NRT				3897
SS_RETRANSMIT			1552	2632	2707	3007	3352
SS_RUNNING			1123	1173	1781	1865	1943	1953	2085	2175	2238	2292	2402	2406
				2459	2502	2995	3374	3627	3739	3905
SS_SEND_ACK			 607	 609	 662	1785	2065	2110	2299	2306	2398	2407	2550	3031
				3033	3356
SS_SEND_NAK			 587	 589	1783	2066	2111	2297	2307	2549	3003	3358
SS_SEND_REP			 597	 599	3003	3357	3629
SS_SEND_SELECT			 725	1774	1779	1826	1831	2457	3029	3058	3066	3355	3384	3620
				3625	3641
SS_SEND_STACK			 559	 561	1778	1830	2456	2990	3360	3624
SS_SEND_START			 573	 575	1773	1825	2990	3359	3383	3619
SS_START_REP_TIMER		 562	 576	1020	1050	1567	1592	1594	1599	1611	1614	2638	3353
				3612
SS_TIMING_REP			1021	1046	1592	1600	1615	2639	3351	3609	3613
STACK_CCB			1717	1737
STARCE				 416	1320	1412	1428	1440	2008	2074	2079	2083	2119	2124	2128
				2181	2196	2201	2824	3405*
START_DEVICE			 417	3297	3439*	3820
STATE				 910	 928	 932	3334	3372
STATUS				1119#	1132	1169#	1194	2918	2936	3122	3145	3205	3228
STOP_DEVICE			 418	3281	3477*	3816
STOP_LINK			 419	1669	3513*
STS				3708	3751
SUCCESS				 257+
SYNCHRONIZE			 420	 570	 584	 595	 605	 616	 682	 734	3102	3545*
S_A				 972	 992	1038	1586	2722	2749	3365
S_AR				2749	2757	3366
S_BYTES_RECEIVED		2064	2109
S_BYTES_TRANSMITTED		 670
S_CIRCUIT_COST			1130
S_CIRCUIT_ENTITY		 930	1788	2177	2466	2533	3748
S_CONTROL_CCB			1089	1325	1328	1329	2943	2946	2947
S_DATA_BLOCKS_RECEIVED		2063	2108
S_DATA_BLOCKS_TRANSMITTED	 671
S_DATA_ERRORS_INBOUND		2302	2507	2543
S_DATA_ERRORS_OUTBOUND		2587	2593	2599
S_LOCAL_BUFFER_ERRORS		2519	2537
S_LOCAL_REPLY_TIMEOUTS		3630
S_MAXIMUM_TRANSMITS		2983
S_MOTD				 626	 689	 741	1547	1549	2634
S_N				 603	 666	 669	 979	 985	1035	1582	3364
S_PENDING_NAK_REASON		 591	1784	2298	2505	2517	2523	2535	2541	3367
S_PERSISTENT_ERROR		1080	2792	2794	3145	3832
S_PROTOCOL_STATE		 928	 931	 932	 933	1132	1194	1409	1557	1769	1821	1934	2039
				2173	2234	2288	2389	2444	2502	2985	3185	3308	3321	3615	3739
				3901	3946
S_R				 592	 612	 678	2053	2062	2098	2107	2294	3361
S_RECEIVE_THRESHOLD		1945	2067	2112	2189	2404	2455	3369	3669
S_REMOTE_BUFFER_ERRORS		2604	2616
S_REMOTE_REPLY_TIMEOUTS		2308
S_REQUESTED_STATE		1702	1865	2179	2462	3308	3312	3539
S_SELECTION_INTERVALS		1630
S_SELECTION_TIMEOUTS		3896
S_SELECT_THRESHOLD		2354	3370	3695
S_TM1				 666	 674	 679	2629	2722	3362
S_TRANSIENT_ERROR		1079	2904	2906	3228	3828
S_TRANSMIT_THRESHOLD		 979	1944	2403	2454	2758	3368	3777
S_USER_HANDLE			1081	1126	2789	2822	2860	2901	3143	3183	3226	3822
S_WAITING_FOR_ACK		 864	1535	2709	2713	2716	2718	2719	2755
S_WAITING_FOR_TRANSMIT		 866	2714	2716	2718	3016	3021	3045	3050	3961
S_X				1037	1585	3363
TABLE$				 490	1119	1169	1175	1224	1260	1473	1666
TERMINATE_SELECTION_INTERVAL	 421	2355	3584*	3913
TEST_RECEIVE_THRESHOLD		 422	2300	2551	3645*
TEST_SELECT_THRESHOLD		 425	3671*	3898
TEST_THRESHOLD			 423	3669	3695	3697*	3777
TEST_TRANSMIT_THRESHOLD		 424	 432	 563	 577	2588	2594	2605	2611	2617	2623	2626	3631
				3753*
TIMCCB				 426	1477	3779*
TIMLTM				 427	1474	3868*
TIMPIN				 509	1476
TIMPWF				 428	1475	3842*
TRANSMIT			 429	1670	1671	3915*
TRUE				 467#	 557	 562	 576	 725	 897	 898	 981	 994	1046	1050	1567
				1594	1615	1701	1773	1774	1778	1779	1783	1825	1826	1830	1831
				1864	2065	2110	2165	2166	2297	2306	2398	2407	2456	2457	2549
				2632	2679	3031	3073	3085	3185	3187	3268	3304	3381	3383	3384
				3385	3386	3391	3392	3393	3398	3470	3509	3538	3579	3619	3620
				3624	3625	3629	3639	3641
TSTTH				 432*
TYPE				3707	3748
WARNING				 257+
_DCP_CCB			 455	 457	 459
$DDCRA				2673*	2681
$DDRCE				3432*	3437
$DDSET				3467*	3475
$DDSTP				3505*	3511
$DDSTR				 833*	 835
$DDXME				3108*	3110
$DLL$CCB			 156+#	 159+#	 162+#	 164+#	 165+#	 166+	 172+#	 175+#	 177+#	 178+#	 179+	 199+#
				 202+#	 204+#	 205+#	 206+	 212+#	 215+#	 217+#	 218+#	 219+	 225+#	 228+#	 230+#
				 231+#	 232+	 247+#	 250+#	 252+#	 253+#	 254+
$DLL_ENTER_MAINTENANCE		 221+#
$DLL_ERROR			 284+	 285+	 309+
$DLL_INFO			 290+	 291+	 292+	 293+
$DLL_INITIALIZE			 195+#
$DLL_RELEASE_CIRCUIT		 168+#
$DLL_REQUEST_CIRCUIT		 152+#
$DLL_SEVERE			 311+	 313+	 315+
$DLL_STOP			 208+#
$DLL_SUCCESS			 283+
$DLL_TRANSMIT			 243+#
$DLL_WARNING			 286+	 297+	 299+	 301+	 307+	 318+	 323+	 325+
$DSPCR				 486*	 490	1224	1260	1473	1666
$MCB_DEQUEUE_CCB		2755	3016	3045
$MCB_GET_CCB			1735	2677	2869	3147	3189	3230	3279	3295	3838
$MCB_INITIALIZE_QUEUE		2719
$MCB_PROCESS			 488
$MCB_QUEUE_CCB			 625	 688	 740	1535	3961
$MCB_REQUEST_CCB		2873	3151	3193	3234	3279	3295	3840
$MCB_RETURN_CCB			 804	 862	 895	1292	1543	2858	3822	3836
$MCB_SCHEDULE_CCB		 166+	 179+	 206+	 219+	 232+	 254+	1087	1134	1328	1706	1869	2793
				2829	2864	2905	2937	2946	3543
$MCB_STACK_CCB			3021	3050
$NM_DLL_EVENT			 930	1788	2177	2466	2533	3748
$SHOW				  76
$SIGNED				 439#	 972	 973	 985	1035	1037	1038	1582	1585	1586
$SUB_FIELD			 621	 623	 684	 686	 736	 738	2709	2713	2714	2716	2718	3029
				3058	3065	3100	3571	3578
%REMAINING			 459