Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/drivers/dte.lst
There are no other files named dte.lst in the archive.
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page   1
								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (1)

;	  0001	module DTE (	! DTE20 driver for MCB V3.2
;	  0002			ident = 'X01560',
;	  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 DTE Driver
;	  0031	!
;	  0032	! ABSTRACT:
;	  0033	!
;	  0034	!	This is the DLC process which services the DTE20 device
;	  0035	!
;	  0036	! ENVIRONMENT: MCB V3.2
;	  0037	!
;	  0038	! AUTHOR: Alan D. Peckham	CREATION DATE: 28-May-80
;	  0039	!
;	  0040	! MODIFIED BY:
;	  0041	!
;	  0042	!	Alan D. Peckham, 28-May-80: Version 1
;	  0043	! 01	- New version for MCB V3.0
;	  0044	! 06	- Move data base to DTEDAT for dump analyzer.
;	  0045	! 07	- Catch interrupts during DS_COM state.
;	  0046	! 08	- Seperate DLC and DDM dispatch tables to avoid C.MOD bug.
;	  0047	! 09	- Clear doorbell on DS_COM interrupt.
;	  0048	! 10	- Add debugging SIGNALs to find DTE_2 bug.
;	  0049	! 11	- Bug found! Remove signals...
;	  0050	! 12	- Bug not found! Fix TENAD1 reset problem in PRTDEP and PRTEXM.
;	  0051	! 13	- Add global data base symbols for DTEDLC.
;	  0052	! 14	- MCB V3.1 update:
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page   2
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (1)

;	  0053	!	    Replace process header.
;	  0054	!	    Use CNV22$ instead of CNV18$.
;	  0055	!	    Supply routine address in SYNCH$.
;	  0056	! 15	- Added network management code.
;	  0057	!	  Clear QSIZE on line down to avoid TRANSMIT_SEGMENT activation.
;	  0058	! 16	- Copy messages into contiguous buffer.
;	  0059	! 17	- DTE shutdown could occur before all receive buffers were back.
;	  0060	! 18	- Add internal event logging.
;	  0061	! 19	- Do not start new receive in RECEIVE_MESSAGE until old one is finished.
;	  0062	! 20	- Map the data base.
;	  0063	!	  Update the network management code.
;	  0064	! 21	- Insert Network Management event logging.
;	  0065	! 22	- Bug in handling buffers that cross 32K boundries.
;	  0066	! 23	- Clean up current Network Management code.
;	  0067	! 24	- Correct transmit/receive contention for bus extension bits.
;	  0068	! 25	- Signal when event logging buffer too small.
;	  0069	! 26	- Add DTE directory process.
;	  0070	! 27	- Add long timer control.
;	  0071	! 28	- Identify line and circuit to NMX in DTENMX.
;	  0072	! 29	- Do not SYNCH unless interrupt enable is on.
;	  0073	! 30	- Flush transmits before waiting for the cows to come home in SHUTDN.
;	  0074	! 31	- Toss recovery RDB if receive already in progress in TIMRDB.
;	  0075	! 32	- Integrate DLL interface
;	  0076	! 33	- Add protocol pause timeout.
;	  0077	!	  Cover all cases where initialization should be checked for.
;	  0078	! 34	- Fix FLUSH_QUEUE linkage bug.
;	  0079	! 35	- Replace DLC with DLL interface.
;	  0080	! 36	- Rework initialization code.
;	  0081	!	  Fix mapping bug.
;	  0082	! 37	- Maintain requested protocol state.
;	  0083	!	  Handle all INIT states in ANSWER_DOORBELL.
;	  0084	! 38	- Eliminate CNV18.
;	  0085	!	  Create CHANGE_PROTOCOL_STATE routine.
;	  0086	! 39	- Correct NM parameters.
;	  0087	! 40	- Correct linkage errors to SEND_PERSISTENT_ERROR.
;	  0088	! 41	- Adapt to using new UNIBUS address conversion routines.
;	  0089	! 42	- Eliminate duplicate state notifications.
;	  0090	! 43	- Set protocol pause timeout to use DLL$_PAUSE_TIMEOUT status.
;	  0091	! 44	- Always update keep-alive if we can get at the comm region.
;	  0092	! 45	- Do not start transmit until -10's doorbell has stopped ringing.
;	  0093	!	  Add GET_HIS_STATUS to clear status word if examine failure.
;	  0094	!	  Check for PAUSE and INITIALIZATION requests in TIMLTM before
;	  0095	!	  trying to restart transmit/receive.
;	  0096	! 46	- Correct GETCOM to compensate for TOPS20 not initializing
;	  0097	!	  inactive to-him regions with their lengths.
;	  0098	! 47	- Update to NM V3.0.0 .
;	  0099	! 48	- Make sure address passed to PARAMETER_DEVICE_REGISTERS begins
;	  0100	!	  at beginning of DTE register set.
;	  0101	! 49	- Remove 'counters zeroed' event in DTENMX.
;	  0102	!
;	  0103	! 50	- Ron Platukis 26-february-82
;	  0104	!	  a) in routine TIMLTM add check for lost TO-10 doorbell on xmits.
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page   3
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (1)

;	  0105	!	  b) in routine TRANSMIT_SEGMENT start long timer after an xmit.
;	  0106	!	  c) in routine T10DON shut off long timer if in run state.
;	  0107	! 51	- Add pause timeout display in DTENMX.
;	  0108	! 52	- Rework supported counters: add system specific line counters.
;	  0109	! 53	- Fix areas in DTE_SYNCHRONIZE and TIMLTM to recognize a PAUSED KL.
;	  0110	! 54	- Correct register display of SHOW_LINE in DTENMX.
;	  0111	! 55	- Modify CTLSTR to return the CIRCUIT COST to XPT in C_PRM1.
;	  0112	! 56	- Correct for possible loss of interrupt enable during KL reload
;	  0113	!	  by re-enableing interrupts in ANSWER_DOORBELL during initialization.
;	  0114	!--
;	  0115	!
;	  0116	! INCLUDE FILES:
;	  0117	!
;	  0118	
;	  0119	library 'MCBLIB';
;	  0120	
;	  0121	library 'XPORTX';
;	  0122	
;	  0123	library 'NMXLIB';
;	  0124	
;	  0125	$SHOW (NONE)
;	  0126	require 'DLLLIB';
;	  0380	
;	  0381	library 'DTEDAT';
;	  0382	
;	  0383	!
;	  0384	! TABLE OF CONTENTS:
;	  0385	!
;	  0386	
;	  0387	linkage
;	  0388	    DTE_CCB_DB = jsr (register = 4, register = 5) : nopreserve (4),
;	  0389	    DTE_CCB_DB_STS = jsr (register = 4, register = 5, register = 0) : nopreserve (4),
;	  0390	    DTE_DB = jsr (register = 5) : nopreserve (0, 1, 2, 3, 4),
;	  0391	    DTE_DB_CCB = jsr (register = 5, register = 4) : nopreserve (0, 1, 2, 3, 4),
;	  0392	    DTE_DB_DTE = jsr (register = 5, register = 1),
;	  0393	    DTE_DB_STS = jsr (register = 5, register = 0) : nopreserve (4, 0),
;	  0394	    DTE_REG = jsr (register = 1) : nopreserve (1),
;	  0395	    EXM_LINKAGE = jsr (register = 5) : nopreserve (0, 1, 2, 3),
;	  0396	    EXDP_LINKAGE = jsr (register = 5, register = 2, register = 3) : nopreserve (0, 1, 2);
;	  0397	
;	  0398	forward routine
;	  0399	    ANSWER_DOORBELL : DTE_DB novalue,
;	  0400	    CHANGE_PROTOCOL_STATE : DTE_DB novalue,
;	  0401	    CLEAR_DOORBELL : DTE_DB,
;	  0402	    CTLSTP : DTE_DB_CCB novalue,
;	  0403	    CTLSTR : DTE_DB_CCB novalue,
;	  0404	    CURRENT_STATUS : LINKAGE_DB,
;	  0405	    DEPMYG : EXDP_LINKAGE,
;	  0406	    DEPMYH : EXDP_LINKAGE,
;	  0407	    DEVICE_BROKEN : DTE_DB novalue,
;	  0408	    DLLINI : DTE_DB_CCB novalue,
;	  0409	    DLLMOP : DTE_DB_CCB novalue,
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page   4
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (1)

;	  0410	    DLLSTP : DTE_DB_CCB novalue,
;	  0411	    DLLXMT : DTE_DB_CCB novalue,
;	  0412	    DTE_INTERRUPT : MCB_INTERRUPT novalue,
;	  0413	    DTE_SYNCHRONIZE : MCB_DB novalue,
;	  0414	    DTECTL : MCB_DB_CCB_MOD novalue,
;	  0415	    DTERCE : MCB_DB_CCB novalue,
;	  0416	    DTESTP : DTE_DB novalue,
;	  0417	    DTESTR : DTE_DB novalue,
;	  0418	    DTETIM : MCB_DB_MOD novalue,
;	  0419	    DTEXME : MCB_DB_CCB_MOD novalue,
;	  0420	    EXMHSG : EXDP_LINKAGE,
;	  0421	    EXMHSM : EXDP_LINKAGE,
;	  0422	    EXMMYG : EXDP_LINKAGE,
;	  0423	    EXMMYH : EXDP_LINKAGE,
;	  0424	    GET_HIS_STATUS : EXM_LINKAGE novalue,
;	  0425	    GETCOM : DTE_DB novalue,
;	  0426	    INITIALIZATION_REQUESTED : DTE_DB,
;	  0427	    NEW_RCB : DTE_DB novalue,
;	  0428	    PARAMETER_DEVICE_REGISTERS : DTE_REG novalue,
;	  0429	    PAUSED : DTE_DB,
;	  0430	    PROTOCOL_BROKEN : DTE_DB novalue,
;	  0431	    PRTDEP : EXDP_LINKAGE,
;	  0432	    PRTEXM : EXDP_LINKAGE,
;	  0433	    RECEIVE_MESSAGE : DTE_DB novalue,
;	  0434	    RECEIVE_SEGMENT : DTE_DB novalue,
;	  0435	    SCHEDULE_PERSISTENT_AST : DTE_CCB_DB novalue,
;	  0436	    SCHEDULE_RECEIVE : DTE_CCB_DB novalue,
;	  0437	    SCHEDULE_STATE_AST : DTE_CCB_DB novalue,
;	  0438	    SCHEDULE_TRANSIENT_AST : DTE_CCB_DB novalue,
;	  0439	    SCHEDULE_TRANSMIT : DTE_CCB_DB_STS novalue,
;	  0440	    SEND_PERSISTENT_ERROR : DTE_DB_STS novalue,
;	  0441	    SEND_STATE : DTE_DB novalue,
;	  0442	    SEND_TRANSIENT_ERROR : DTE_DB_STS novalue,
;	  0443	    TIMCCB : MCB_DB_CCB novalue,
;	  0444	    TIMLTM : MCB_DB novalue,
;	  0445	    TIMPIN : MCB_DB novalue,
;	  0446	    TIMPWF : MCB_DB novalue,
;	  0447	    TIMRDB : MCB_DB_CCB novalue,
;	  0448	    TRANSMIT_MESSAGE : DTE_DB novalue,
;	  0449	    TRANSMIT_SEGMENT : DTE_DB novalue,
;	  0450	    T10DON : DTE_DB novalue,
;	  0451	    T11DON : DTE_DB novalue,
;	  0452	    WTEXDP : DTE_DB_DTE;
;	  0453	
;	  0454	global bind routine
;	  0455	    DTEIN = DTE_INTERRUPT : MCB_INTERRUPT novalue;
;	  0456	
;	  0457	!
;	  0458	! MACROS:
;	  0459	!
;	  0460	
;	  0461	macro
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page   5
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (1)

;	M 0462	    FLUSH_QUEUE (QUEUE, RETURN_CALL) =
;	M 0463		while 1 eql 1 do
;	M 0464		    begin
;	M 0465	
;	M 0466		    local
;	M 0467			CCB;
;	M 0468	
;	M 0469		    if not CMQRM$ (QUEUE, CCB) then exitloop;
;	M 0470	
;	M 0471		    RETURN_CALL (.CCB %if not %null (%remaining) %then , %remaining %fi);
;	  0472		    end %;
;	  0473	
;	  0474	macro
;	  0475	    !
;	  0476	    ! Add the specified value to an 18 bit address in the data base
;	  0477	    !
;	M 0478	    PHYSICAL_ADD (DB, FLD, VALUE) =
;	M 0479		begin
;	M 0480	
;	M 0481		builtin
;	M 0482		    rot;
;	M 0483	
;	M 0484		if rot (DB [$SUB_FIELD (FLD, PHYSICAL_LOW)] =
;	M 0485		    .DB [$SUB_FIELD (FLD, PHYSICAL_LOW)] + VALUE, 1)
;	M 0486		then
;	M 0487		    DB [$SUB_FIELD (FLD, PHYSICAL_HIGH)] =
;	M 0488			.DB [$SUB_FIELD (FLD, PHYSICAL_HIGH)] + 1;
;	M 0489	
;	  0490		end %;
;	  0491	
;	  0492	macro
;	  0493	    !
;	  0494	    ! Produce a mask for the given field
;	  0495	    !
;	M 0496	    DTE_BIT [FLD] =
;	  0497		(1^%fieldexpand (FLD, 2) - 1)^%fieldexpand (FLD, 1) %,
;	  0498	    !
;	  0499	    ! Set the buss extension bits and the delay count
;	  0500	    !
;	M 0501	    DTE_EXT (CSR, BITS) =
;	M 0502		begin
;	M 0503	
;	M 0504		field
;	M 0505		    DLYOFF = [-%fieldexpand (DLYCNT, 0), 0, 16, 0],
;	M 0506		    DLYWRD = [0, 0, 16, 0];
;	M 0507	
;	M 0508		bind
;	M 0509		    REG = CSR : block volatile;
;	M 0510	
;	M 0511		local
;	M 0512		    VALUE : block [1] FIELD (DLYWRD);
;	M 0513	
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page   6
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (1)

;	M 0514		VALUE [DLYWRD] = 0;
;	M 0515		VALUE [$SUB_FIELD (DLYOFF, BUSEXT)] = BITS;
;	M 0516		REG [$SUB_FIELD (DLYCNT, DLYWRD)] = .VALUE [DLYWRD];
;	  0517		end %,
;	  0518	    !
;	  0519	    ! Reset the DTE
;	  0520	    !
;	M 0521	    DTE_RESET (CSR) =
;	M 0522		begin
;	M 0523	
;	M 0524		bind
;	M 0525		    REG = CSR : block volatile field (DIAG2);
;	M 0526	
;	M 0527		REG [DIAG2] = DTE_BIT (DRESET)
;	  0528		end %,
;	  0529	    !
;	  0530	    ! Check if the TO-11 doorbell is ringing
;	  0531	    !
;	M 0532	    DTE_RINGING (CSR) =
;	M 0533		begin
;	M 0534	
;	M 0535		bind
;	M 0536		    REG = CSR : volatile;
;	M 0537	
;	M 0538		(.REG and DTE_BIT (TO11DB)) neq 0
;	  0539		end %,
;	  0540	    !
;	  0541	    ! Set the specified bits in the DTE status register
;	  0542	    !
;	M 0543	    DTE_SET (CSR) =
;	M 0544		begin
;	M 0545	
;	M 0546		bind
;	M 0547		    REG = CSR : volatile;
;	M 0548	
;	M 0549		REG = +DTE_BIT (%remaining)
;	  0550		end %,
;	  0551	    !
;	  0552	    ! Test if any of the specified bits are on in the DTE status register
;	  0553	    !
;	M 0554	    DTE_TEST (CSR) =
;	M 0555		begin
;	M 0556	
;	M 0557		bind
;	M 0558		    REG = CSR : volatile;
;	M 0559	
;	M 0560		(.REG and +DTE_BIT (%remaining)) neq 0
;	  0561		end %;
;	  0562	
;	  0563	!
;	  0564	! EQUATED SYMBOLS:
;	  0565	!
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page   7
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (1)

;	  0566	
;	  0567	literal
;	  0568	    TRUE = 1 EQL 1,
;	  0569	    FALSE = 1 EQL 0,
;	  0570	    NO_OPERATION = 0;
;	  0571	
;	  0572	literal
;	  0573	    LCL = 0,
;	  0574	    RMT = 1;
;	  0575	
;	  0576	global literal
;	  0577	    %name ('D.LEN') = %fieldexpand (D_XBUF, 0)*%upval;
;	  0578	
;	  0579	macro
;	  0580	    C_HANDLE = %fieldexpand (C_LIX, 0), 0, 16, 0 %;
;	  0581	
;	  0582	!
;	  0583	! OWN STORAGE:
;	  0584	!
;	  0585	
;	  0586	external routine
;	  0587	    $DSPCR : novalue;
;	  0588	
;	P 0589	$MCB_PROCESS (
;	P 0590	    NAME = DTE,					! Process name
;	P 0591	    DLC_DISPATCH = TABLE$ ($DSPCR, FC_CCP,	! DLL interface dispatch vector
;	P 0592		(FC_CTL, DTECTL),			!  Control functions
;	P 0593		(FC_XME, DTEXME),			!  Transmit functions
;	P 0594		(FC_RCE, DTERCE),			!  Receive buffer returns
;	  0595		(FC_TIM, DTETIM)))			!  Timeout
;	  0596	
;	  0597	external routine
;	  0598	    DTENM : MCB_CCB novalue;
;	  0599	
;	  0600	!
;	  0601	! EXTERNAL REFERENCES:
;	  0602	!
;	  0603	
;	  0604	external routine
;	  0605	    DTEDBI : novalue,
;	  0606	    DTEDVI,
;	  0607	    DTENMI;
;	  0608	
;	  0609	external
;	  0610	    MCB$GA_PROCESS_DISPATCH : ref vector,
;	  0611	    MCB$GAW_PROCESS_DATA_BASE : vector [2],
;	  0612	    MCB$GW_PROCESS_HANDLE,
;	  0613	    MCB$GW_RDB_SIZE;		! Size of RDB buffer.
;	  0614	
;	  0615	bind
;	  0616	    DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
;	  0617	
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page   8
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (1)

;	  0618	macro
;	M 0619	    GET_DTE_DATA_BASE (NAME) =
;	M 0620		%if %declared (NAME)
;	M 0621		%then map NAME : ref
;	M 0622		%else bind NAME = .MCB$GAW_PROCESS_DATA_BASE [1] :
;	  0623		%fi block field (D_FIELDS); %;
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page   9
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (2)

;	  0624	routine ANSWER_DOORBELL (DB) : DTE_DB novalue =
;	  0625	
;	  0626	!++
;	  0627	! FUNCTIONAL DESCRIPTION:
;	  0628	!
;	  0629	!
;	  0630	! FORMAL PARAMETERS:
;	  0631	!	DB = address of DTE data base.
;	  0632	!
;	  0633	! IMPLICIT INPUTS:
;	  0634	!	None
;	  0635	!
;	  0636	! IMPLICIT OUTPUTS:
;	  0637	!	None
;	  0638	!
;	  0639	! ROUTINE VALUE:
;	  0640	! COMPLETION CODES:
;	  0641	!	None
;	  0642	!
;	  0643	! SIDE EFFECTS:
;	  0644	!	None
;	  0645	!--
;	  0646	
;	  0647	    begin
;	  0648	    GET_DTE_DATA_BASE (DB)
;	  0649	    CLEAR_DOORBELL (DB [D_TIM]);
;	  0650	
;	  0651	    case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
;	  0652		set
;	  0653	
;	  0654		[DS_INITIALIZING] :
;	  0655	
;	  0656		    if .DB [$SUB_FIELD (D_RST, V)]
;	  0657		    then
;	  0658	
;	  0659			if .DB [$SUB_FIELD (D_RST, I)]
;	  0660			then
;	  0661			    begin
;	  0662			    ! *************** Protocol deviation ******************
;	  0663			    ! Our INIT bit is on, and would normally be turned off.
;	  0664			    ! But the -20 never expects us to initialize protocol,
;	  0665			    ! so we must leave our init bit on until he drops his.
;	  0666			    ! *****************************************************
;	  0667			    DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
;	  0668			    DTE_SET (.DB [D_REGISTER], INT10S, INTRON);
;	  0669			    DB [D_LONG_TIMER] = DTE_K_START_TIMEOUT;
;	  0670			    end
;	  0671			else
;	  0672			    begin
;	  0673	
;	  0674			    if .DB [$SUB_FIELD (D_XST, I)]
;	  0675			    then
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  10
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (2)

;	  0676				begin
;	  0677				DB [$SUB_FIELD (D_XST, I)] = 0;
;	  0678				DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
;	  0679				DTE_SET (.DB [D_REGISTER], INT10S, INTRON);
;	  0680				DB [D_LONG_TIMER] = DTE_K_START_TIMEOUT;
;	  0681				CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_RUNNING, LCL);
;	  0682				end
;	  0683			    else
;	  0684				CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_RUNNING, RMT);
;	  0685	
;	  0686			    TRANSMIT_MESSAGE (DB [D_TIM]);
;	  0687			    RECEIVE_MESSAGE (DB [D_TIM]);
;	  0688			    end;
;	  0689	
;	  0690		[DS_RUNNING] :
;	  0691	
;	  0692		    if not PAUSED (DB [D_TIM])
;	  0693		    then
;	  0694	
;	  0695			if not INITIALIZATION_REQUESTED (DB [D_TIM])
;	  0696			then
;	  0697			    RECEIVE_MESSAGE (DB [D_TIM]);
;	  0698	
;	  0699		[DS_PAUSED] :
;	  0700	
;	  0701		    if .DB [$SUB_FIELD (D_RST, V)]
;	  0702		    then
;	  0703			begin
;	  0704			CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_RUNNING, RMT);
;	  0705	
;	  0706			if not INITIALIZATION_REQUESTED (DB [D_TIM])
;	  0707			then
;	  0708			    RECEIVE_MESSAGE (DB [D_TIM]);
;	  0709	
;	  0710			end;
;	  0711	
;	  0712		[inrange] :
;	  0713		    NO_OPERATION;
;	  0714	
;	  0715		tes;
;	  0716	
;	  0717	    end;			!of routine ANSWER_DOORBELL


						.TITLE	DTE
						.IDENT	/X01560/


000000						.PSECT	......,  D  
000000	016045 				HEADER: .RAD50	/DTE/
000002	000403 					.WORD	403
000004	000000 					.WORD	0
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  11
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (2)

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	DTEXME
000004	000000V					.WORD	DTERCE
000006	000000G					.WORD	$DSPCR
000010	000000V					.WORD	DTECTL
000012	000000V					.WORD	DTETIM
000014	000000G					.WORD	$DSPCR
000016	000000G					.WORD	$DSPCR
000020	000000G					.WORD	$DSPCR
000022	000000G					.WORD	$DSPCR


						.GLOBL	$DSPCR, .DSPCR, MCB$V0, MCB$V1
						.GLOBL	DTENM, DTEDBI, DTEDVI, DTENMI
						.GLOBL	.CRDSP, .CRDAT, .CRPIX, .RDBSZ


	000174 				D.LEN==		    174


						.SBTTL	ANSWER.DOORBELL
000000						.PSECT	$CODE$,  RO 

000000	004767  000000V			ANSWER.DOORBELL:
						JSR	PC,CLEAR.DOORBELL		;					0649
000004	116500  000012 				MOVB	12(R5),R0			; *(DB),*				0651
000010	006300 					ASL	R0
000012	066007  000024'				ADD	P.AAB(R0),PC			; Case dispatch
000016	132765  000001  000062 		1$:	BITB	#1,62(R5)			; *,*(DB)				0656
000024	001521 					BEQ	9$
000026	132765  000002  000062 			BITB	#2,62(R5)			; *,*(DB)				0659
000034	001417 					BEQ	2$
000036	010500 					MOV	R5,R0				; DB,*					0667
000040	062700  000072 				ADD	#72,R0
000044	012702  000002 				MOV	#2,R2
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  12
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (2)

000050	010003 					MOV	R0,R3
000052	004767  000000V				JSR	PC,DEPMYH
000056	012775  000440  000002 			MOV	#440,@2(R5)			; *,*(DB)				0668
000064	112765  000005  000020 			MOVB	#5,20(R5)			; *,*(DB)				0669
000072	000207 					RTS	PC				;					0659
000074	132765  000002  000076 		2$:	BITB	#2,76(R5)			; *,*(DB)				0674
000102	001425 					BEQ	3$
000104	142765  000002  000076 			BICB	#2,76(R5)			; *,*(DB)				0677
000112	010500 					MOV	R5,R0				; DB,*					0678
000114	062700  000072 				ADD	#72,R0
000120	012702  000002 				MOV	#2,R2
000124	010003 					MOV	R0,R3
000126	004767  000000V				JSR	PC,DEPMYH
000132	012775  000440  000002 			MOV	#440,@2(R5)			; *,*(DB)				0679
000140	112765  000005  000020 			MOVB	#5,20(R5)			; *,*(DB)				0680
000146	012746  000003 				MOV	#3,-(SP)			;					0681
000152	005046 					CLR	-(SP)
000154	000404 					BR	4$
000156	012746  000003 			3$:	MOV	#3,-(SP)			;					0684
000162	012746  000001 				MOV	#1,-(SP)
000166	004767  000000V			4$:	JSR	PC,CHANGE.PROTOCOL.STATE
000172	004767  000000V				JSR	PC,TRANSMIT.MESSAGE		;					0686
000176	000431 					BR	7$				;					0687
000200	004767  000000V			5$:	JSR	PC,PAUSED			;					0692
000204	006000 					ROR	R0
000206	103430 					BLO	9$
000210	004767  000000V				JSR	PC,INITIALIZATION.REQUESTED	;					0695
000214	006000 					ROR	R0
000216	103424 					BLO	9$
000220	004767  000000V				JSR	PC,RECEIVE.MESSAGE		;					0697
000224	000207 					RTS	PC				;					0651
000226	132765  000001  000062 		6$:	BITB	#1,62(R5)			; *,*(DB)				0701
000234	001415 					BEQ	9$
000236	012746  000003 				MOV	#3,-(SP)			;					0704
000242	012746  000001 				MOV	#1,-(SP)
000246	004767  000000V				JSR	PC,CHANGE.PROTOCOL.STATE
000252	004767  000000V				JSR	PC,INITIALIZATION.REQUESTED	;					0706
000256	006000 					ROR	R0
000260	103402 					BLO	8$
000262	004767  000000V			7$:	JSR	PC,RECEIVE.MESSAGE		;					0708
000266	022626 				8$:	CMP	(SP)+,(SP)+			;					0703
000270	000207 				9$:	RTS	PC				;					0624

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


000024						.PSECT	$PLIT$,  RO ,  D  

					P.AAB:						; CASE Table for ANSWER.DOORBELL+0012	0651
000024	000252 					.WORD	252				; [9$]
000026	000252 					.WORD	252				; [9$]
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  13
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (2)

000030	000000 					.WORD	0				; [1$]
000032	000162 					.WORD	162				; [5$]
000034	000210 					.WORD	210				; [6$]
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  14
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (3)

;	  0718	routine CHANGE_PROTOCOL_STATE (DB, STATE, REASON) : DTE_DB novalue =
;	  0719	
;	  0720	!++
;	  0721	! FUNCTIONAL DESCRIPTION:
;	  0722	!
;	  0723	!
;	  0724	! FORMAL PARAMETERS:
;	  0725	!	DB = address of DTE data base.
;	  0726	!
;	  0727	! IMPLICIT INPUTS:
;	  0728	!	None
;	  0729	!
;	  0730	! IMPLICIT OUTPUTS:
;	  0731	!	None
;	  0732	!
;	  0733	! ROUTINE VALUE:
;	  0734	! COMPLETION CODES:
;	  0735	!	None
;	  0736	!
;	  0737	! SIDE EFFECTS:
;	  0738	!	None
;	  0739	!--
;	  0740	
;	  0741	    begin
;	  0742	    GET_DTE_DATA_BASE (DB)
;	  0743	    DB [D_PROTOCOL_STATE] = .STATE;
;	  0744	    SEND_STATE (DB [D_TIM]);
;	  0745	    end;			!of routine CHANGE_PROTOCOL_STATE


						.SBTTL	CHANGE.PROTOCOL.STATE
000272						.PSECT	$CODE$,  RO 

000000	116665  000004  000012 		CHANGE.PROTOCOL.STATE:
						MOVB	4(SP),12(R5)			; STATE,*(DB)				0743
000006	004767  000000V				JSR	PC,SEND.STATE			;					0744
000012	000207 					RTS	PC				;					0718

; Routine Size:  6 words,	Routine Base:  $CODE$ + 0272
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  15
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (4)

;	  0746	routine CLEAR_DOORBELL (DB) : DTE_DB =
;	  0747	
;	  0748	!++
;	  0749	! FUNCTIONAL DESCRIPTION:
;	  0750	!
;	  0751	!
;	  0752	! FORMAL PARAMETERS:
;	  0753	!	DB = address of DTE data base.
;	  0754	!
;	  0755	! IMPLICIT INPUTS:
;	  0756	!	None
;	  0757	!
;	  0758	! IMPLICIT OUTPUTS:
;	  0759	!	None
;	  0760	!
;	  0761	! ROUTINE VALUE:
;	  0762	! COMPLETION CODES:
;	  0763	!	None
;	  0764	!
;	  0765	! SIDE EFFECTS:
;	  0766	!	None
;	  0767	!--
;	  0768	
;	  0769	    begin
;	  0770	    GET_DTE_DATA_BASE (DB)
;	  0771	
;	  0772	    local
;	  0773		STATUS;
;	  0774	
;	  0775	    STATUS = FALSE;
;	  0776	
;	  0777	    do
;	  0778		begin
;	  0779		DTE_SET (.DB [D_REGISTER], INT11C);
;	  0780	
;	  0781		if not DTE_RINGING (.DB [D_REGISTER]) then return STATUS = TRUE;
;	  0782	
;	  0783		end
;	  0784	    until (STATUS = .STATUS - 1) eql FALSE;
;	  0785	
;	  0786	    COUNTER_INCREMENT (DB, D_DOORBELL_STUCK);
;	  0787	    COUNTER_INCREMENT (DB, D_DEVICE_SERVICE_ERRORS);
;	  0788	    .STATUS
;	  0789	    end;			!of routine CLEAR_DOORBELL


						.GLOBL	$IC8


						.SBTTL	CLEAR.DOORBELL
000000	010546 				CLEAR.DOORBELL:
						MOV	R5,-(SP)			;					0746
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  16
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (4)

000002	005001 					CLR	R1				; STATUS				0775
000004	012775  002000  000002 		1$:	MOV	#2000,@2(R5)			; *,*(DB)				0779
000012	032775  004000  000002 			BIT	#4000,@2(R5)			; *,*(DB)				0781
000020	001003 					BNE	2$
000022	012701  000001 				MOV	#1,R1				; *,STATUS
000026	000411 					BR	3$
000030	077113 				2$:	SOB	R1,1$				; STATUS,*				0784
000032	052765  040000  000166 			BIS	#40000,166(R5)			; *,*(DB)				0786
000040	062705  000164 				ADD	#164,R5				; *,DB					0787
000044	010500 					MOV	R5,R0
000046	004767  000000G				JSR	PC,$IC8
000052	010100 				3$:	MOV	R1,R0				; STATUS,*				0746
000054	012605 					MOV	(SP)+,R5
000056	000207 					RTS	PC

; Routine Size:  24 words,	Routine Base:  $CODE$ + 0306
; Maximum stack depth per invocation:  2 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  17
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (5)

;	  0790	routine CTLSTP (DB, CCB) : DTE_DB_CCB novalue =
;	  0791	
;	  0792	!++
;	  0793	! FUNCTIONAL DESCRIPTION:
;	  0794	!
;	  0795	!
;	  0796	! FORMAL PARAMETERS:
;	  0797	!	DB = address of DTE data base.
;	  0798	!	CCB = address of CTL/STP CCB.
;	  0799	!
;	  0800	! IMPLICIT INPUTS:
;	  0801	!	None
;	  0802	!
;	  0803	! IMPLICIT OUTPUTS:
;	  0804	!	None
;	  0805	!
;	  0806	! ROUTINE VALUE:
;	  0807	! COMPLETION CODES:
;	  0808	!	None
;	  0809	!
;	  0810	! SIDE EFFECTS:
;	  0811	!	None
;	  0812	!--
;	  0813	
;	  0814	    begin
;	  0815	    GET_DTE_DATA_BASE (DB)
;	  0816	
;	  0817	    map
;	  0818		CCB : ref block field (C_FIELDS);
;	  0819	
;	  0820	    DB [DF_NOTIFY_STATE] = FALSE;
;	  0821	    DB [D_TRANSIENT_ERROR] = 0;
;	  0822	    DB [D_PERSISTENT_ERROR] = 0;
;	  0823	    DB [D_OWNER_HANDLE] = 0;
;	  0824	    CCB [C_STS] = DLL$_SUCCESS;
;	  0825	    CCB [C_FNC] = FC_CCP;
;	  0826	
;	  0827	    if .DB [D_ACTIVE_BUFFERS] neq 0
;	  0828	    then
;	  0829		begin
;	  0830		DB [DF_CONTROL_WAITING] = TRUE;
;	  0831		CMQIN$ (DB [D_PENDING_CONTROLS], .CCB);
;	  0832		end
;	  0833	    else
;	  0834		$MCB_SCHEDULE_CCB (.CCB);
;	  0835	
;	  0836	    end;			!of routine CTLSTP


						.GLOBL	$CMQIN, $SCHED
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  18
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (5)

						.SBTTL	CTLSTP
000000	042715  004000 			CTLSTP: BIC	#4000,(R5)			; *,DB					0820
000004	005065  000024 				CLR	24(R5)				; *(DB)					0821
000010	005065  000026 				CLR	26(R5)				; *(DB)					0822
000014	005065  000022 				CLR	22(R5)				; *(DB)					0823
000020	012764  100001  000014 			MOV	#-77777,14(R4)			; *,*(CCB)				0824
000026	112764  000022  000012 			MOVB	#22,12(R4)			; *,*(CCB)				0825
000034	005765  000034 				TST	34(R5)				; *(DB)					0827
000040	001410 					BEQ	1$
000042	052715  010000 				BIS	#10000,(R5)			; *,DB					0830
000046	012703  000030 				MOV	#30,R3				;					0831
000052	060503 					ADD	R5,R3				; DB,*
000054	004767  000000G				JSR	PC,$CMQIN
000060	000207 					RTS	PC				;					0827
000062	004767  000000G			1$:	JSR	PC,$SCHED			;					0834
000066	000207 					RTS	PC				;					0790

; Routine Size:  28 words,	Routine Base:  $CODE$ + 0366
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  19
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (6)

;	  0837	routine CTLSTR (DB, CCB) : DTE_DB_CCB novalue =
;	  0838	
;	  0839	!++
;	  0840	! FUNCTIONAL DESCRIPTION:
;	  0841	!
;	  0842	!
;	  0843	! FORMAL PARAMETERS:
;	  0844	!	DB = address of DTE data base.
;	  0845	!	CCB = address of CTL/STP CCB.
;	  0846	!
;	  0847	! IMPLICIT INPUTS:
;	  0848	!	None
;	  0849	!
;	  0850	! IMPLICIT OUTPUTS:
;	  0851	!	None
;	  0852	!
;	  0853	! ROUTINE VALUE:
;	  0854	! COMPLETION CODES:
;	  0855	!	None
;	  0856	!
;	  0857	! SIDE EFFECTS:
;	  0858	!	None
;	  0859	!--
;	  0860	
;	  0861	    begin
;	  0862	    GET_DTE_DATA_BASE (DB)
;	  0863	
;	  0864	    map
;	  0865		CCB : ref block field (C_FIELDS);
;	  0866	
;	  0867	    bind
;	P 0868		STATUS = TABLE$ (0, 0,
;	P 0869		    (DS_HALTED^1, DLL$_STATE_OFF),
;	P 0870		    (DS_COM^1, DLL$_STATE_SYNCHRONIZING),
;	P 0871		    (DS_INITIALIZING^1, DLL$_STATE_SYNCHRONIZING),
;	P 0872		    (DS_RUNNING^1, DLL$_STATE_RUNNING),
;	  0873		    (DS_PAUSED^1, DLL$_STATE_RUNNING)) : vector [5];
;	  0874	
;	  0875	    DB [D_OWNER_HANDLE] = .CCB [C_HANDLE];
;	  0876	
;	  0877	    if .CCB [C_PRM1] eql 0
;	  0878	    then
;	  0879		CCB [C_PRM1] = .DB [D_CIRCUIT_COST];
;	  0880	
;	  0881	    CCB [C_STS] = CURRENT_STATUS (DB [D_TIM]);
;	  0882	    CCB [C_FNC] = FC_CCP;
;	  0883	    $MCB_SCHEDULE_CCB (.CCB);
;	  0884	    end;			!of routine CTLSTR



000036						.PSECT	$PLIT$,  RO ,  D  
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  20
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (6)

000036	100043 				P.AAC:	.WORD	-77735
000040	100053 					.WORD	-77725
000042	100053 					.WORD	-77725
000044	100063 					.WORD	-77715
000046	100063 					.WORD	-77715


	000036'				STATUS=		    P.AAC


						.SBTTL	CTLSTR
000456						.PSECT	$CODE$,  RO 

000000	016465  000010  000022 		CTLSTR: MOV	10(R4),22(R5)			; *(CCB),*(DB)				0875
000006	012700  000024 				MOV	#24,R0				;					0877
000012	060400 					ADD	R4,R0				; CCB,*
000014	005710 					TST	(R0)
000016	001002 					BNE	1$
000020	016510  000036 				MOV	36(R5),(R0)			; *(DB),*				0879
000024	004767  000000V			1$:	JSR	PC,CURRENT.STATUS		;					0881
000030	010064  000014 				MOV	R0,14(R4)			; *,*(CCB)
000034	112764  000022  000012 			MOVB	#22,12(R4)			; *,*(CCB)				0882
000042	004767  000000G				JSR	PC,$SCHED			;					0883
000046	000207 					RTS	PC				;					0837

; Routine Size:  20 words,	Routine Base:  $CODE$ + 0456
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  21
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (7)

;	  0885	routine CURRENT_STATUS (DB) : LINKAGE_DB =
;	  0886	
;	  0887	!++
;	  0888	! FUNCTIONAL DESCRIPTION:
;	  0889	!
;	  0890	!
;	  0891	! FORMAL PARAMETERS:
;	  0892	!	DB = address of DTE data base.
;	  0893	!
;	  0894	! IMPLICIT INPUTS:
;	  0895	!	None
;	  0896	!
;	  0897	! IMPLICIT OUTPUTS:
;	  0898	!	None
;	  0899	!
;	  0900	! ROUTINE VALUE:
;	  0901	! COMPLETION CODES:
;	  0902	!	None
;	  0903	!
;	  0904	! SIDE EFFECTS:
;	  0905	!	None
;	  0906	!--
;	  0907	
;	  0908	    begin
;	  0909	    GET_DTE_DATA_BASE (DB)
;	  0910	
;	  0911	    literal
;	  0912		DLL_OFF = 0,
;	  0913		DLL_SYNCHRONIZING = 1,
;	  0914		DLL_RUNNING = 2,
;	  0915		DLL_MAINTENANCE = 3;
;	  0916	
;	  0917	    bind
;	P 0918		REPORT_STATUS = TABLE$ (0, 0,
;	P 0919		    (DS_HALTED^1, DLL_OFF),
;	P 0920		    (DS_COM^1, DLL_SYNCHRONIZING),
;	P 0921		    (DS_INITIALIZING^1, DLL_SYNCHRONIZING),
;	P 0922		    (DS_RUNNING^1, DLL_RUNNING),
;	  0923		    (DS_PAUSED^1, DLL_RUNNING)) : vector,
;	P 0924		DLL_STATUS = TABLE$ (0, 0,
;	P 0925		    (DLL_OFF^1, DLL$_STATE_OFF),
;	P 0926		    (DLL_SYNCHRONIZING^1, DLL$_STATE_SYNCHRONIZING),
;	P 0927		    (DLL_RUNNING^1, DLL$_STATE_RUNNING),
;	  0928		    (DLL_MAINTENANCE^1, DLL$_STATE_MAINTENANCE)) : vector;
;	  0929	
;	  0930	    if .DB [DF_NOTIFY_OFF]
;	  0931	    then
;	  0932		begin
;	  0933		DB [DF_NOTIFY_OFF] = FALSE;
;	  0934	
;	  0935		if .DB [D_PROTOCOL_STATE] eql DS_HALTED
;	  0936		then
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  22
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (7)

;	  0937		    DB [DF_NOTIFY_STATE] = FALSE;
;	  0938	
;	  0939		return .DLL_STATUS [DB [D_REPORTED_STATE] = DLL_OFF];
;	  0940		end;
;	  0941	
;	  0942	    DB [DF_NOTIFY_STATE] = FALSE;
;	  0943	    .DLL_STATUS [DB [D_REPORTED_STATE] = .REPORT_STATUS [.DB [D_PROTOCOL_STATE]]]
;	  0944	    end;			!of routine CURRENT_STATUS



000050						.PSECT	$PLIT$,  RO ,  D  
000050	000000 				P.AAD:	.WORD	0
000052	000001 					.WORD	1
000054	000001 					.WORD	1
000056	000002 					.WORD	2
000060	000002 					.WORD	2
000062	100043 				P.AAE:	.WORD	-77735
000064	100053 					.WORD	-77725
000066	100063 					.WORD	-77715
000070	100073 					.WORD	-77705


	000050'				REPORT.STATUS=	    P.AAD
	000062'				DLL.STATUS=	    P.AAE


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

000000	010546 				CURRENT.STATUS:
						MOV	R5,-(SP)			;					0885
000002	010500 					MOV	R5,R0				; *,DB
000004	032710  002000 				BIT	#2000,(R0)			; *,DB					0930
000010	001414 					BEQ	2$
000012	042710  002000 				BIC	#2000,(R0)			; *,DB					0933
000016	105760  000012 				TSTB	12(R0)				; *(DB)					0935
000022	001002 					BNE	1$
000024	042710  004000 				BIC	#4000,(R0)			; *,DB					0937
000030	105060  000014 			1$:	CLRB	14(R0)				; *(DB)					0939
000034	016700  000062'				MOV	DLL.STATUS,R0			;					0932
000040	000414 					BR	3$
000042	042710  004000 			2$:	BIC	#4000,(R0)			; *,DB					0942
000046	116005  000012 				MOVB	12(R0),R5			; *(DB),*				0943
000052	006305 					ASL	R5
000054	016505  000050'				MOV	REPORT.STATUS(R5),R5
000060	110560  000014 				MOVB	R5,14(R0)			; *,*(DB)
000064	006305 					ASL	R5
000066	016500  000062'				MOV	DLL.STATUS(R5),R0		;					0885
000072	012605 				3$:	MOV	(SP)+,R5
000074	000207 					RTS	PC
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  23
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (7)

; Routine Size:  31 words,	Routine Base:  $CODE$ + 0526
; Maximum stack depth per invocation:  2 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  24
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (8)

;	  0945	routine DEPMYG (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
;	  0946	
;	  0947	!++
;	  0948	! FUNCTIONAL DESCRIPTION:
;	  0949	!
;	  0950	!
;	  0951	! FORMAL PARAMETERS:
;	  0952	!	DB = address of DTE data base.
;	  0953	!	OFFSET = comm/region offset.
;	  0954	!	BUFFER = address of 3 word buffer of data to deposit.
;	  0955	!
;	  0956	! IMPLICIT INPUTS:
;	  0957	!	None
;	  0958	!
;	  0959	! IMPLICIT OUTPUTS:
;	  0960	!	None
;	  0961	!
;	  0962	! ROUTINE VALUE:
;	  0963	! COMPLETION CODES:
;	  0964	!	None
;	  0965	!
;	  0966	! SIDE EFFECTS:
;	  0967	!	None
;	  0968	!--
;	  0969	
;	  0970	    begin
;	  0971	    GET_DTE_DATA_BASE (DB)
;	  0972	    PRTDEP (DB [D_TIM], .OFFSET, .BUFFER)
;	  0973	    end;			!of routine DEPMYG


						.SBTTL	DEPMYG
000000	004767  000000V			DEPMYG: JSR	PC,PRTDEP			;					0972
000004	000207 					RTS	PC				;					0945

; Routine Size:  3 words,	Routine Base:  $CODE$ + 0624
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  25
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (9)

;	  0974	routine DEPMYH (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
;	  0975	
;	  0976	!++
;	  0977	! FUNCTIONAL DESCRIPTION:
;	  0978	!
;	  0979	!
;	  0980	! FORMAL PARAMETERS:
;	  0981	!	DB = address of DTE data base.
;	  0982	!	OFFSET = comm/region offset.
;	  0983	!	BUFFER = address of 3 word buffer of data to deposit.
;	  0984	!
;	  0985	! IMPLICIT INPUTS:
;	  0986	!	None
;	  0987	!
;	  0988	! IMPLICIT OUTPUTS:
;	  0989	!	None
;	  0990	!
;	  0991	! ROUTINE VALUE:
;	  0992	! COMPLETION CODES:
;	  0993	!	None
;	  0994	!
;	  0995	! SIDE EFFECTS:
;	  0996	!	None
;	  0997	!--
;	  0998	
;	  0999	    begin
;	  1000	    GET_DTE_DATA_BASE (DB)
;	  1001	    PRTDEP (DB [D_TIM], .OFFSET + .DB [D_DMH], .BUFFER)
;	  1002	    end;			!of routine DEPMYH


						.SBTTL	DEPMYH
000000	066502  000054 			DEPMYH: ADD	54(R5),R2			; *(DB),*				1001
000004	004767  000000V				JSR	PC,PRTDEP
000010	000207 					RTS	PC				;					0974

; Routine Size:  5 words,	Routine Base:  $CODE$ + 0632
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  26
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (10)

;	  1003	routine DEVICE_BROKEN (DB) : DTE_DB novalue =
;	  1004	
;	  1005	!++
;	  1006	! FUNCTIONAL DESCRIPTION:
;	  1007	!
;	  1008	!
;	  1009	! FORMAL PARAMETERS:
;	  1010	!	DB = address of DTE data base.
;	  1011	!
;	  1012	! IMPLICIT INPUTS:
;	  1013	!	None
;	  1014	!
;	  1015	! IMPLICIT OUTPUTS:
;	  1016	!	None
;	  1017	!
;	  1018	! ROUTINE VALUE:
;	  1019	! COMPLETION CODES:
;	  1020	!	None
;	  1021	!
;	  1022	! SIDE EFFECTS:
;	  1023	!	None
;	  1024	!--
;	  1025	
;	  1026	    begin
;	  1027	    GET_DTE_DATA_BASE (DB)
;	  1028	    DTESTP (DB [D_TIM]);
;	  1029	    end;			!of routine DEVICE_BROKEN


						.SBTTL	DEVICE.BROKEN
000000	004767  000000V			DEVICE.BROKEN:
						JSR	PC,DTESTP			;					1028
000004	000207 					RTS	PC				;					1003

; Routine Size:  3 words,	Routine Base:  $CODE$ + 0644
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  27
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (11)

;	  1030	routine DLLINI (DB, CCB) : DTE_DB_CCB novalue =
;	  1031	
;	  1032	!++
;	  1033	! FUNCTIONAL DESCRIPTION:
;	  1034	!
;	  1035	!
;	  1036	! FORMAL PARAMETERS:
;	  1037	!	DB = address of DTE data base.
;	  1038	!	CCB = address of CCB.
;	  1039	!
;	  1040	! IMPLICIT INPUTS:
;	  1041	!	None
;	  1042	!
;	  1043	! IMPLICIT OUTPUTS:
;	  1044	!	None
;	  1045	!
;	  1046	! ROUTINE VALUE:
;	  1047	! COMPLETION CODES:
;	  1048	!	None
;	  1049	!
;	  1050	! SIDE EFFECTS:
;	  1051	!	None
;	  1052	!--
;	  1053	
;	  1054	    begin
;	  1055	    GET_DTE_DATA_BASE (DB)
;	  1056	
;	  1057	    map
;	  1058		CCB : ref block field (C_FIELDS);
;	  1059	
;	  1060	    if .DB [D_PROTOCOL_STATE] neq DS_HALTED
;	  1061	    then
;	  1062		DTESTP (DB [D_TIM]);
;	  1063	
;	  1064	    DB [D_REQUESTED_STATE] = DS_RUNNING;
;	  1065	
;	  1066	    if .DB [D_LINE_STATE] eql DL_ON
;	  1067	    then
;	  1068		DTESTR (DB [D_TIM]);
;	  1069	
;	  1070	    CCB [C_FNC] = FC_XCP;
;	  1071	    CCB [C_STS] = DLL$_SUCCESS;
;	  1072	    $MCB_SCHEDULE_CCB (.CCB);
;	  1073	
;	  1074	    if .DB [D_DEVICE_STATE] eql DD_CLEARED
;	  1075	    then
;	  1076		begin
;	  1077		SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
;	  1078		SEND_STATE (DB [D_TIM]);
;	  1079		end;
;	  1080	
;	  1081	    end;			!of routine DLLINI
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  28
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (11)



						.SBTTL	DLLINI
000000	010446 				DLLINI: MOV	R4,-(SP)			;					1030
000002	012746  000012 				MOV	#12,-(SP)			;					1060
000006	060516 					ADD	R5,(SP)				; DB,*
000010	105776  000000 				TSTB	@0(SP)
000014	001402 					BEQ	1$
000016	004767  000000V				JSR	PC,DTESTP			;					1062
000022	042776  177400  000000 		1$:	BIC	#177400,@0(SP)			;					1064
000030	052776  001400  000000 			BIS	#1400,@0(SP)
000036	105765  000015 				TSTB	15(R5)				; *(DB)					1066
000042	001002 					BNE	2$
000044	004767  000000V				JSR	PC,DTESTR			;					1068
000050	016600  000002 			2$:	MOV	2(SP),R0			;					1070
000054	112760  000014  000012 			MOVB	#14,12(R0)
000062	012760  100001  000014 			MOV	#-77777,14(R0)			;					1071
000070	010004 					MOV	R0,R4				;					1072
000072	004767  000000G				JSR	PC,$SCHED
000076	105765  000016 				TSTB	16(R5)				; *(DB)					1074
000102	001006 					BNE	3$
000104	012700  100174 				MOV	#-77604,R0			;					1077
000110	004767  000000V				JSR	PC,SEND.PERSISTENT.ERROR
000114	004767  000000V				JSR	PC,SEND.STATE			;					1078
000120	022626 				3$:	CMP	(SP)+,(SP)+			;					1030
000122	000207 					RTS	PC

; Routine Size:  42 words,	Routine Base:  $CODE$ + 0652
; Maximum stack depth per invocation:  3 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  29
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (12)

;	  1082	routine DLLMOP (DB, CCB) : DTE_DB_CCB novalue =
;	  1083	
;	  1084	!++
;	  1085	! FUNCTIONAL DESCRIPTION:
;	  1086	!
;	  1087	!
;	  1088	! FORMAL PARAMETERS:
;	  1089	!	DB = address of DTE data base.
;	  1090	!	CCB = address of CCB.
;	  1091	!
;	  1092	! IMPLICIT INPUTS:
;	  1093	!	None
;	  1094	!
;	  1095	! IMPLICIT OUTPUTS:
;	  1096	!	None
;	  1097	!
;	  1098	! ROUTINE VALUE:
;	  1099	! COMPLETION CODES:
;	  1100	!	None
;	  1101	!
;	  1102	! SIDE EFFECTS:
;	  1103	!	None
;	  1104	!--
;	  1105	
;	  1106	    begin
;	  1107	    GET_DTE_DATA_BASE (DB)
;	  1108	
;	  1109	    map
;	  1110		CCB : ref block field (C_FIELDS);
;	  1111	
;	  1112	    CCB [C_FNC] = FC_XCP;
;	  1113	    CCB [C_STS] = DLL$_NOT_SUPPORTED;
;	  1114	    $MCB_SCHEDULE_CCB (.CCB);
;	  1115	    end;			!of routine DLLMOP


						.SBTTL	DLLMOP
000000	112764  000014  000012 		DLLMOP: MOVB	#14,12(R4)			; *,*(CCB)				1112
000006	012764  100022  000014 			MOV	#-77756,14(R4)			; *,*(CCB)				1113
000014	004767  000000G				JSR	PC,$SCHED			;					1114
000020	000207 					RTS	PC				;					1082

; Routine Size:  9 words,	Routine Base:  $CODE$ + 0776
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  30
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (13)

;	  1116	routine DLLSTP (DB, CCB) : DTE_DB_CCB novalue =
;	  1117	
;	  1118	!++
;	  1119	! FUNCTIONAL DESCRIPTION:
;	  1120	!
;	  1121	!
;	  1122	! FORMAL PARAMETERS:
;	  1123	!	DB = address of DTE data base.
;	  1124	!	CCB = address of CCB.
;	  1125	!
;	  1126	! IMPLICIT INPUTS:
;	  1127	!	None
;	  1128	!
;	  1129	! IMPLICIT OUTPUTS:
;	  1130	!	None
;	  1131	!
;	  1132	! ROUTINE VALUE:
;	  1133	! COMPLETION CODES:
;	  1134	!	None
;	  1135	!
;	  1136	! SIDE EFFECTS:
;	  1137	!	None
;	  1138	!--
;	  1139	
;	  1140	    begin
;	  1141	    GET_DTE_DATA_BASE (DB)
;	  1142	
;	  1143	    map
;	  1144		CCB : ref block field (C_FIELDS);
;	  1145	
;	  1146	    DB [D_REQUESTED_STATE] = DS_HALTED;
;	  1147	
;	  1148	    if .DB [D_PROTOCOL_STATE] neq DS_HALTED
;	  1149	    then
;	  1150		DTESTP (DB [D_TIM]);
;	  1151	
;	  1152	    CCB [C_FNC] = FC_XCP;
;	  1153	    CCB [C_STS] = DLL$_SUCCESS;
;	  1154	    $MCB_SCHEDULE_CCB (.CCB);
;	  1155	    end;			!of routine DLLSTP


						.SBTTL	DLLSTP
000000	010446 				DLLSTP: MOV	R4,-(SP)			;					1116
000002	105065  000013 				CLRB	13(R5)				; *(DB)					1146
000006	105765  000012 				TSTB	12(R5)				; *(DB)					1148
000012	001402 					BEQ	1$
000014	004767  000000V				JSR	PC,DTESTP			;					1150
000020	011600 				1$:	MOV	(SP),R0				;					1152
000022	112760  000014  000012 			MOVB	#14,12(R0)
000030	012760  100001  000014 			MOV	#-77777,14(R0)			;					1153
000036	010004 					MOV	R0,R4				;					1154
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  31
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (13)

000040	004767  000000G				JSR	PC,$SCHED
000044	005726 					TST	(SP)+				;					1116
000046	000207 					RTS	PC

; Routine Size:  20 words,	Routine Base:  $CODE$ + 1020
; Maximum stack depth per invocation:  2 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  32
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (14)

;	  1156	routine DLLXMT (DB, CCB) : DTE_DB_CCB novalue =
;	  1157	
;	  1158	!++
;	  1159	! FUNCTIONAL DESCRIPTION:
;	  1160	!
;	  1161	!
;	  1162	! FORMAL PARAMETERS:
;	  1163	!	DB = address of DTE data base.
;	  1164	!	CCB = address of transmit CCB.
;	  1165	!	MODIFIER = transmit function modifier (from C_MOD of CCB).
;	  1166	!
;	  1167	! IMPLICIT INPUTS:
;	  1168	!	None
;	  1169	!
;	  1170	! IMPLICIT OUTPUTS:
;	  1171	!	None
;	  1172	!
;	  1173	! ROUTINE VALUE:
;	  1174	! COMPLETION CODES:
;	  1175	!	None
;	  1176	!
;	  1177	! SIDE EFFECTS:
;	  1178	!	None
;	  1179	!--
;	  1180	
;	  1181	    begin
;	  1182	    GET_DTE_DATA_BASE (DB)
;	  1183	
;	  1184	    map
;	  1185		CCB : ref block field (C_FIELDS);
;	  1186	
;	  1187	    DB [D_ACTIVE_BUFFERS] = .DB [D_ACTIVE_BUFFERS] + 1;
;	  1188	
;	  1189	    case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
;	  1190		set
;	  1191		[DS_RUNNING, DS_PAUSED] :
;	  1192		    begin
;	  1193		    CMQIN$ (DB [D_XMQ], .CCB);
;	  1194	
;	  1195		    if .CCB [C_CHN] neqa 0
;	  1196		    then
;	  1197			begin
;	  1198	
;	  1199			local
;	  1200			    MSG_CNT;
;	  1201	
;	  1202			MSG_CNT = .DB [D_DL_BLK];
;	  1203	
;	  1204			do
;	  1205			    begin
;	  1206	
;	  1207			    if (MSG_CNT = .MSG_CNT - .CCB [C_CNT]) lss 0
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  33
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (14)

;	  1208			    then
;	  1209				SIGNAL_STOP (DTE$_XMT_MTL, .DB [D_DL_BLK]);
;	  1210	
;	  1211			    end
;	  1212			while (CCB = .CCB [C_CHN]) neqa 0;
;	  1213	
;	  1214			end;
;	  1215	
;	  1216		    if .DB [D_PROTOCOL_STATE] eql DS_RUNNING
;	  1217		    then
;	  1218			TRANSMIT_MESSAGE (DB [D_TIM]);
;	  1219	
;	  1220		    end;
;	  1221		[inrange] :
;	  1222		    SCHEDULE_TRANSMIT (.CCB, DB [D_TIM], DLL$_ABORTED);
;	  1223		tes;
;	  1224	
;	  1225	    end;			!of routine DLLXMT


						.SBTTL	DLLXMT
000000	010546 				DLLXMT: MOV	R5,-(SP)			;					1156
000002	010502 					MOV	R5,R2				; *,DB
000004	005262  000034 				INC	34(R2)				; *(DB)					1187
000010	116200  000012 				MOVB	12(R2),R0			; *(DB),*				1189
000014	006300 					ASL	R0
000016	066007  000072'				ADD	P.AAF(R0),PC			; Case dispatch
000022	010205 				1$:	MOV	R2,R5				; DB,*					1193
000024	062705  000120 				ADD	#120,R5
000030	010503 					MOV	R5,R3
000032	004767  000000G				JSR	PC,$CMQIN
000036	005764  000002 				TST	2(R4)				; *(CCB)				1195
000042	001422 					BEQ	4$
000044	016201  000172 				MOV	172(R2),R1			; *(DB),MSG.CNT				1202
000050	166401  000022 			2$:	SUB	22(R4),R1			; *(CCB),MSG.CNT			1207
000054	100012 					BPL	3$
000056	016246  000172 				MOV	172(R2),-(SP)			; *(DB),*				1209
000062	012746  100043 				MOV	#-77735,-(SP)
000066	012746  000002 				MOV	#2,-(SP)
000072	004767  000000G				JSR	PC,$STOP
000076	062706  000006 				ADD	#6,SP
000102	016404  000002 			3$:	MOV	2(R4),R4			; *(CCB),CCB				1212
000106	001360 					BNE	2$
000110	126227  000012  000003 		4$:	CMPB	12(R2),#3			; *(DB),*				1216
000116	001011 					BNE	6$
000120	010205 					MOV	R2,R5				; DB,*					1218
000122	004767  000000V				JSR	PC,TRANSMIT.MESSAGE
000126	000405 					BR	6$				;					1189
000130	010205 				5$:	MOV	R2,R5				; DB,*					1222
000132	012700  100030 				MOV	#-77750,R0
000136	004767  000000V				JSR	PC,SCHEDULE.TRANSMIT
000142	012605 				6$:	MOV	(SP)+,R5			;					1156
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  34
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (14)

000144	000207 					RTS	PC

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


000072						.PSECT	$PLIT$,  RO ,  D  

					P.AAF:						; CASE Table for DLLXMT+0016		1189
000072	000106 					.WORD	106				; [5$]
000074	000106 					.WORD	106				; [5$]
000076	000106 					.WORD	106				; [5$]
000100	000000 					.WORD	0				; [1$]
000102	000000 					.WORD	0				; [1$]
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  35
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (15)

;	  1226	routine DTE_INTERRUPT (DB) : MCB_INTERRUPT novalue =
;	  1227	
;	  1228	!++
;	  1229	! FUNCTIONAL DESCRIPTION:
;	  1230	!
;	  1231	!
;	  1232	! FORMAL PARAMETERS:
;	  1233	!	DB = address of DTE data base.
;	  1234	!
;	  1235	! IMPLICIT INPUTS:
;	  1236	!	None
;	  1237	!
;	  1238	! IMPLICIT OUTPUTS:
;	  1239	!	None
;	  1240	!
;	  1241	! ROUTINE VALUE:
;	  1242	! COMPLETION CODES:
;	  1243	!	None
;	  1244	!
;	  1245	! SIDE EFFECTS:
;	  1246	!	None
;	  1247	!--
;	  1248	
;	  1249	    begin
;	  1250	    GET_DTE_DATA_BASE (DB)
;	  1251	
;	  1252	    if .DB [DF_SYNCHRONIZING] then return;
;	  1253	
;	  1254	    DB [DF_SYNCHRONIZING] = TRUE;
;	  1255	    SYNCH$ (.DB [D_SYNCH_BLOCK], DTE_SYNCHRONIZE);
;	  1256	    end;			!of routine DTE_INTERRUPT


						.GLOBL	$SYNCH


						.SBTTL	DTE.INTERRUPT
001236						.PSECT	$CODE$,  RO 

000000	032715  040000 			DTE.INTERRUPT:
						BIT	#40000,(R5)			; *,DB					1252
000004	001011 					BNE	1$
000006	052715  040000 				BIS	#40000,(R5)			; *,DB					1254
000012	016504  000010 				MOV	10(R5),R4			; *(DB),*				1255
000016	012764  000000V 000004 			MOV	#DTE.SYNCHRONIZE,4(R4)
000024	004767  000000G				JSR	PC,$SYNCH
000030	000207 				1$:	RTS	PC				;					1226

; Routine Size:  13 words,	Routine Base:  $CODE$ + 1236
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  36
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (16)

;	  1257	routine DTE_SYNCHRONIZE (DB) : MCB_DB novalue =
;	  1258	
;	  1259	!++
;	  1260	! FUNCTIONAL DESCRIPTION:
;	  1261	!
;	  1262	!
;	  1263	! FORMAL PARAMETERS:
;	  1264	!	DB = address of DTE data base.
;	  1265	!
;	  1266	! IMPLICIT INPUTS:
;	  1267	!	None
;	  1268	!
;	  1269	! IMPLICIT OUTPUTS:
;	  1270	!	None
;	  1271	!
;	  1272	! ROUTINE VALUE:
;	  1273	! COMPLETION CODES:
;	  1274	!	None
;	  1275	!
;	  1276	! SIDE EFFECTS:
;	  1277	!	None
;	  1278	!--
;	  1279	
;	  1280	    begin
;	  1281	    GET_DTE_DATA_BASE (DB)
;	  1282	    DB [DF_SYNCHRONIZING] = FALSE;
;	  1283	
;	  1284	    case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
;	  1285		set
;	  1286		[DS_COM] :
;	  1287		    GETCOM (DB [D_TIM]);
;	  1288	
;	  1289		[DS_RUNNING, DS_PAUSED] :
;	  1290	
;	  1291		    if DTE_TEST (.DB [D_REGISTER], TO10ER, TO11ER)
;	  1292		    then
;	  1293			begin
;	P 1294			$NM_PLL_EVENT (3, .DB [D_LINE_ENTITY],
;	  1295			    PARAMETER_DEVICE_REGISTERS (.DB [D_REGISTER]));
;	  1296			SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
;	  1297						! Transfer error.
;	  1298			DEVICE_BROKEN (DB [D_TIM]);
;	  1299			end
;	  1300		    else
;	  1301			begin
;	  1302	
;	  1303			if DTE_TEST (.DB [D_REGISTER], TO10DN) then T10DON (DB [D_TIM]);
;	  1304	
;	  1305			if DTE_TEST (.DB [D_REGISTER], TO11DN) then T11DON (DB [D_TIM]);
;	  1306	
;	  1307			end;
;	  1308	
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  37
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (16)

;	  1309		[inrange] :
;	  1310		    NO_OPERATION;
;	  1311	
;	  1312		tes;
;	  1313	
;	  1314	    case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
;	  1315		set
;	  1316		[DS_INITIALIZING, DS_RUNNING, DS_PAUSED] :
;	  1317		    begin
;	  1318		    GET_HIS_STATUS (DB [D_TIM]);
;	  1319	
;	  1320		    if DTE_RINGING (.DB [D_REGISTER])
;	  1321		    then
;	  1322			ANSWER_DOORBELL (DB [D_TIM]);
;	  1323	
;	  1324		    end;
;	  1325	
;	  1326		[inrange] :
;	  1327		    NO_OPERATION;
;	  1328	
;	  1329		tes;
;	  1330	
;	  1331	    if .DB [D_PROTOCOL_STATE] eql DS_RUNNING
;	  1332	    then
;	  1333	
;	  1334		if not PAUSED (DB [D_TIM])
;	  1335		then
;	  1336	
;	  1337		    if not INITIALIZATION_REQUESTED (DB [D_TIM])
;	  1338		    then
;	  1339			begin
;	  1340			TRANSMIT_MESSAGE (DB [D_TIM]);
;	  1341			RECEIVE_MESSAGE (DB [D_TIM]);
;	  1342			end;
;	  1343	
;	  1344	    end;			!of routine DTE_SYNCHRONIZE


						.GLOBL	$NLBEG, $NLEND


						.SBTTL	DTE.SYNCHRONIZE
000000	042715  040000 			DTE.SYNCHRONIZE:
						BIC	#40000,(R5)			; *,DB					1282
000004	012746  000012 				MOV	#12,-(SP)			;					1284
000010	060516 					ADD	R5,(SP)				; DB,*
000012	117600  000000 				MOVB	@0(SP),R0
000016	006300 					ASL	R0
000020	066007  000104'				ADD	P.AAG(R0),PC			; Case dispatch
000024	004767  000000V			1$:	JSR	PC,GETCOM			;					1287
000030	000440 					BR	5$				;					1284
000032	016501  000002 			2$:	MOV	2(R5),R1			; *(DB),*				1291
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  38
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (16)

000036	032711  020002 				BIT	#20002,(R1)
000042	001421 					BEQ	3$
000044	004767  000000G				JSR	PC,$NLBEG			;					1295
000050	004767  000000V				JSR	PC,PLL0
000054	012700  000603 				MOV	#603,R0
000060	016501  000042 				MOV	42(R5),R1			; *(DB),*
000064	004767  000000G				JSR	PC,$NLEND
000070	012700  100174 				MOV	#-77604,R0			;					1296
000074	004767  000000V				JSR	PC,SEND.PERSISTENT.ERROR
000100	004767  177250 				JSR	PC,DEVICE.BROKEN		;					1298
000104	000412 					BR	5$				;					1291
000106	032711  100000 			3$:	BIT	#-100000,(R1)			;					1303
000112	001402 					BEQ	4$
000114	004767  000000V				JSR	PC,T10DON
000120	105775  000002 			4$:	TSTB	@2(R5)				; *(DB)					1305
000124	100002 					BPL	5$
000126	004767  000000V				JSR	PC,T11DON
000132	117600  000000 			5$:	MOVB	@0(SP),R0			;					1314
000136	006300 					ASL	R0
000140	066007  000116'				ADD	P.AAH(R0),PC			; Case dispatch
000144	004767  000000V			6$:	JSR	PC,GET.HIS.STATUS		;					1318
000150	032775  004000  000002 			BIT	#4000,@2(R5)			; *,*(DB)				1320
000156	001402 					BEQ	7$
000160	004767  176324 				JSR	PC,ANSWER.DOORBELL		;					1322
000164	127627  000000  000003 		7$:	CMPB	@0(SP),#3			;					1331
000172	001014 					BNE	8$
000174	004767  000000V				JSR	PC,PAUSED			;					1334
000200	006000 					ROR	R0
000202	103410 					BLO	8$
000204	004767  000000V				JSR	PC,INITIALIZATION.REQUESTED	;					1337
000210	006000 					ROR	R0
000212	103404 					BLO	8$
000214	004767  000000V				JSR	PC,TRANSMIT.MESSAGE		;					1340
000220	004767  000000V				JSR	PC,RECEIVE.MESSAGE		;					1341
000224	005726 				8$:	TST	(SP)+				;					1257
000226	000207 					RTS	PC

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


000104						.PSECT	$PLIT$,  RO ,  D  

					P.AAG:						; CASE Table for DTE.SYNCHRONIZE+0020	1284
000104	000106 					.WORD	106				; [5$]
000106	000000 					.WORD	0				; [1$]
000110	000106 					.WORD	106				; [5$]
000112	000006 					.WORD	6				; [2$]
000114	000006 					.WORD	6				; [2$]

					P.AAH:						; CASE Table for DTE.SYNCHRONIZE+0140	1314
000116	000020 					.WORD	20				; [7$]
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  39
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (16)

000120	000020 					.WORD	20				; [7$]
000122	000000 					.WORD	0				; [6$]
000124	000000 					.WORD	0				; [6$]
000126	000000 					.WORD	0				; [6$]
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  40
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (17)

;	  1345	routine DTECTL (DB, CCB, MODIFIER) : MCB_DB_CCB_MOD novalue =
;	  1346	
;	  1347	!++
;	  1348	! FUNCTIONAL DESCRIPTION:
;	  1349	!
;	  1350	!
;	  1351	! FORMAL PARAMETERS:
;	  1352	!	DB = address of DTE data base.
;	  1353	!	CCB = address of CTL CCB.
;	  1354	!	MODIFIER = control function modifier (from C_MOD of CCB).
;	  1355	!
;	  1356	! IMPLICIT INPUTS:
;	  1357	!	None
;	  1358	!
;	  1359	! IMPLICIT OUTPUTS:
;	  1360	!	None
;	  1361	!
;	  1362	! ROUTINE VALUE:
;	  1363	! COMPLETION CODES:
;	  1364	!	None
;	  1365	!
;	  1366	! SIDE EFFECTS:
;	  1367	!	None
;	  1368	!--
;	  1369	
;	  1370	    begin
;	  1371	    GET_DTE_DATA_BASE (DB)
;	  1372	
;	  1373	    map
;	  1374		CCB : ref block field (C_FIELDS);
;	  1375	
;	P 1376	    DISPATCH$ (.MODIFIER,
;	P 1377		TABLE$ ($DSPCR, FD_CTL,
;	P 1378		    (FM_NM, DTENM),
;	P 1379		    (FM_STR, CTLSTR),
;	P 1380		    (FM_STP, CTLSTP)),
;	P 1381		(DB [D_TIM], .CCB),
;	  1382		MCB_DB_CCB);
;	  1383	    end;			!of routine DTECTL


000130	000000G				P.AAI:	.WORD	$DSPCR
000132	000456'					.WORD	CTLSTR
000134	000366'					.WORD	CTLSTP
000136	000000G					.WORD	DTENM
000140	000000G					.WORD	$DSPCR
000142	000000G					.WORD	$DSPCR
000144	000000G					.WORD	$DSPCR


						.SBTTL	DTECTL
001520						.PSECT	$CODE$,  RO 
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  41
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (17)


000000	004773  000130'			DTECTL: JSR	PC,@P.AAI(R3)			; *,*(MODIFIER)				1382
000004	000207 					RTS	PC				;					1345

; Routine Size:  3 words,	Routine Base:  $CODE$ + 1520
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  42
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (18)

;	  1384	routine DTERCE (DB, CCB) : MCB_DB_CCB novalue =
;	  1385	
;	  1386	!++
;	  1387	! FUNCTIONAL DESCRIPTION:
;	  1388	!
;	  1389	!
;	  1390	! FORMAL PARAMETERS:
;	  1391	!	DB = address of DTE data base.
;	  1392	!	CCB = address of returned data RDB.
;	  1393	!
;	  1394	! IMPLICIT INPUTS:
;	  1395	!	None
;	  1396	!
;	  1397	! IMPLICIT OUTPUTS:
;	  1398	!	None
;	  1399	!
;	  1400	! ROUTINE VALUE:
;	  1401	! COMPLETION CODES:
;	  1402	!	None
;	  1403	!
;	  1404	! SIDE EFFECTS:
;	  1405	!	None
;	  1406	!--
;	  1407	
;	  1408	    begin
;	  1409	    GET_DTE_DATA_BASE (DB)
;	  1410	    RDBRT$ (.CCB);
;	  1411	    DB [D_ACTIVE_BUFFERS] = .DB [D_ACTIVE_BUFFERS] - 1;
;	  1412	
;	  1413	    if .DB [D_ACTIVE_BUFFERS] neq 0 then return;
;	  1414	
;	  1415	    if .DB [DF_CONTROL_WAITING]
;	  1416	    then
;	  1417		begin
;	  1418		DB [DF_CONTROL_WAITING] = FALSE;
;	  1419		FLUSH_QUEUE (DB [D_PENDING_CONTROLS], %quote $MCB_SCHEDULE_CCB);
;	  1420		end;
;	  1421	
;	  1422	    end;			!of routine DTERCE


						.GLOBL	$RDBRT, $CMQRM


						.SBTTL	DTERCE
000000	004767  000000G			DTERCE: JSR	PC,$RDBRT			;					1410
000004	005365  000034 				DEC	34(R5)				; *(DB)					1411
000010	001016 					BNE	2$				;					1413
000012	032715  010000 				BIT	#10000,(R5)			; *,DB					1415
000016	001413 					BEQ	2$
000020	042715  010000 				BIC	#10000,(R5)			; *,DB					1418
000024	012703  000030 				MOV	#30,R3				;					1419
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  43
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (18)

000030	060503 					ADD	R5,R3				; DB,*
000032	004767  000000G			1$:	JSR	PC,$CMQRM
000036	103403 					BCS	2$
000040	004767  000000G				JSR	PC,$SCHED
000044	000772 					BR	1$
000046	000207 				2$:	RTS	PC				;					1384

; Routine Size:  20 words,	Routine Base:  $CODE$ + 1526
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  44
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (19)

;	  1423	global routine DTESTP (DB) : DTE_DB novalue =
;	  1424	
;	  1425	!++
;	  1426	! FUNCTIONAL DESCRIPTION:
;	  1427	!
;	  1428	!
;	  1429	! FORMAL PARAMETERS:
;	  1430	!	DB = address of DTE data base.
;	  1431	!
;	  1432	! IMPLICIT INPUTS:
;	  1433	!	None
;	  1434	!
;	  1435	! IMPLICIT OUTPUTS:
;	  1436	!	None
;	  1437	!
;	  1438	! ROUTINE VALUE:
;	  1439	! COMPLETION CODES:
;	  1440	!	None
;	  1441	!
;	  1442	! SIDE EFFECTS:
;	  1443	!	None
;	  1444	!--
;	  1445	
;	  1446	    begin
;	  1447	    GET_DTE_DATA_BASE (DB)
;	  1448	    DTE_SET (.DB [D_REGISTER], INTROF);
;	  1449	    DB [$SUB_FIELD (D_XQZ, CSIZE)] = 0;
;	  1450	    DB [$SUB_FIELD (D_XQZ, PSIZE)] = 0;
;	  1451	    DEPMYH (DB [D_TIM], QSIZE, DB [D_XQZ]);
;	  1452	    DB [D_XCB] = 0;
;	  1453	    DB [D_XCT] = 0;
;	  1454	    DB [$SUB_FIELD (D_XST, V)] = 0;
;	  1455	    DB [$SUB_FIELD (D_XST, RCV)] = 0;
;	  1456	    DB [$SUB_FIELD (D_XST, CPQCNT)] = 0;
;	  1457	    DB [$SUB_FIELD (D_XST, QCOUNT)] = 0;
;	  1458	    DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
;	  1459	    DB [D_TIM] = 0;
;	  1460	    DB [D_LONG_TIMER] = 0;
;	  1461	    DTE_RESET (.DB [D_REGISTER]);
;	  1462	    FLUSH_QUEUE (DB [D_XMQ], %quote SCHEDULE_TRANSMIT, DB [D_TIM], DLL$_ABORTED);
;	  1463	    begin
;	  1464	
;	  1465	    local
;	  1466		CCB;
;	  1467	
;	  1468	    if (CCB = .DB [D_RCB]) neq 0
;	  1469	    then
;	  1470		begin
;	  1471		RDBRT$ (.CCB);
;	  1472		DB [D_RCB] = 0;
;	  1473		DB [D_RCT] = 0;
;	  1474		end;
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  45
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (19)

;	  1475	
;	  1476	    end;
;	  1477	    CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_HALTED, LCL);
;	  1478	    end;			!of routine DTESTP


						.SBTTL	DTESTP
000000	012775  000010  000002 		DTESTP::MOV	#10,@2(R5)			; *,*(DB)				1448
000006	005065  000100 				CLR	100(R5)				; *(DB)					1449
000012	005065  000102 				CLR	102(R5)				; *(DB)					1450
000016	012703  000100 				MOV	#100,R3				;					1451
000022	060503 					ADD	R5,R3				; DB,*
000024	012702  000003 				MOV	#3,R2
000030	004767  177000 				JSR	PC,DEPMYH
000034	005065  000126 				CLR	126(R5)				; *(DB)					1452
000040	005065  000134 				CLR	134(R5)				; *(DB)					1453
000044	142765  000001  000076 			BICB	#1,76(R5)			; *,*(DB)				1454
000052	142765  000001  000074 			BICB	#1,74(R5)			; *,*(DB)				1455
000060	012703  000072 				MOV	#72,R3				;					1456
000064	060503 					ADD	R5,R3				; DB,*
000066	105063  000001 				CLRB	1(R3)
000072	105013 					CLRB	(R3)				;					1457
000074	012702  000002 				MOV	#2,R2				;					1458
000100	004767  176730 				JSR	PC,DEPMYH
000104	105015 					CLRB	(R5)				; DB					1459
000106	105065  000020 				CLRB	20(R5)				; *(DB)					1460
000112	016500  000002 				MOV	2(R5),R0			; *(DB),*				1461
000116	012760  000100  177776 			MOV	#100,-2(R0)
000124	012703  000120 				MOV	#120,R3				;					1462
000130	060503 					ADD	R5,R3				; DB,*
000132	004767  000000G			1$:	JSR	PC,$CMQRM
000136	103405 					BCS	2$
000140	012700  100030 				MOV	#-77750,R0
000144	004767  000000V				JSR	PC,SCHEDULE.TRANSMIT
000150	000770 					BR	1$
000152	016504  000110 			2$:	MOV	110(R5),R4			; *(DB),CCB				1468
000156	001406 					BEQ	3$
000160	004767  000000G				JSR	PC,$RDBRT			;					1471
000164	005065  000110 				CLR	110(R5)				; *(DB)					1472
000170	005065  000116 				CLR	116(R5)				; *(DB)					1473
000174	005046 				3$:	CLR	-(SP)				;					1477
000176	005046 					CLR	-(SP)
000200	004767  176270 				JSR	PC,CHANGE.PROTOCOL.STATE
000204	022626 					CMP	(SP)+,(SP)+			;					1446
000206	000207 					RTS	PC				;					1423

; Routine Size:  68 words,	Routine Base:  $CODE$ + 1576
; Maximum stack depth per invocation:  3 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  46
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (20)

;	  1479	global routine DTESTR (DB) : DTE_DB novalue =
;	  1480	
;	  1481	!++
;	  1482	! FUNCTIONAL DESCRIPTION:
;	  1483	!
;	  1484	!
;	  1485	! FORMAL PARAMETERS:
;	  1486	!	DB = address of DTE data base.
;	  1487	!
;	  1488	! IMPLICIT INPUTS:
;	  1489	!	None
;	  1490	!
;	  1491	! IMPLICIT OUTPUTS:
;	  1492	!	None
;	  1493	!
;	  1494	! ROUTINE VALUE:
;	  1495	! COMPLETION CODES:
;	  1496	!	None
;	  1497	!
;	  1498	! SIDE EFFECTS:
;	  1499	!	None
;	  1500	!--
;	  1501	
;	  1502	    begin
;	  1503	    GET_DTE_DATA_BASE (DB)
;	  1504	
;	  1505	    if .DB [D_DEVICE_STATE] eql DD_CLEARED
;	  1506	    then
;	  1507		return;
;	  1508	
;	  1509	    CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_COM, LCL);
;	  1510	    DB [D_START_THRESHOLD] = 7;
;	  1511	    DTE_SET (.DB [D_REGISTER], INTRON);
;	  1512	    DB [D_TIM] = .DB [D_TIM] + 1;
;	  1513	    GETCOM (DB [D_TIM]);
;	  1514	    end;			!of routine DTESTR


						.SBTTL	DTESTR
000000	105765  000016 			DTESTR::TSTB	16(R5)				; *(DB)					1505
000004	001417 					BEQ	1$				;					1507
000006	012746  000001 				MOV	#1,-(SP)			;					1509
000012	005046 					CLR	-(SP)
000014	004767  176244 				JSR	PC,CHANGE.PROTOCOL.STATE
000020	112765  000007  000021 			MOVB	#7,21(R5)			; *,*(DB)				1510
000026	012775  000040  000002 			MOV	#40,@2(R5)			; *,*(DB)				1511
000034	105215 					INCB	(R5)				; DB					1512
000036	004767  000000V				JSR	PC,GETCOM			;					1513
000042	022626 					CMP	(SP)+,(SP)+			;					1502
000044	000207 				1$:	RTS	PC				;					1479

; Routine Size:  19 words,	Routine Base:  $CODE$ + 2006
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  47
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (20)

; Maximum stack depth per invocation:  3 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  48
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (21)

;	  1515	routine DTETIM (DB, MODIFIER) : MCB_DB_MOD novalue =
;	  1516	
;	  1517	!++
;	  1518	! FUNCTIONAL DESCRIPTION:
;	  1519	!
;	  1520	!
;	  1521	! FORMAL PARAMETERS:
;	  1522	!	DB = address of DTE data base.
;	  1523	!	MODIFIER = timer function modifier.
;	  1524	!
;	  1525	! IMPLICIT INPUTS:
;	  1526	!	None
;	  1527	!
;	  1528	! IMPLICIT OUTPUTS:
;	  1529	!	None
;	  1530	!
;	  1531	! ROUTINE VALUE:
;	  1532	! COMPLETION CODES:
;	  1533	!	None
;	  1534	!
;	  1535	! SIDE EFFECTS:
;	  1536	!	None
;	  1537	!--
;	  1538	
;	  1539	    begin
;	  1540	    GET_DTE_DATA_BASE (DB)
;	P 1541	    DISPATCH$ (
;	P 1542		.MODIFIER,
;	P 1543		TABLE$ ($DSPCR, FD_TIM,			! Dispatch table:
;	P 1544		    (FM_LTM, TIMLTM),			!  Long timer
;	P 1545		    (FM_CCB, TIMCCB),			!  CCB available
;	P 1546		    (FM_RDB, TIMRDB),			!  RDB available
;	P 1547		    (FM_PWF, TIMPWF),			!  Power failure
;	P 1548		    (FM_PIN, TIMPIN)),			!  Process initialization
;	P 1549		(DB [D_TIM]),
;	  1550		MCB_DB);
;	  1551	    end;			!of routine DTETIM



000146						.PSECT	$PLIT$,  RO ,  D  
000146	000000G				P.AAJ:	.WORD	$DSPCR
000150	000000V					.WORD	TIMLTM
000152	000000V					.WORD	TIMPWF
000154	000000V					.WORD	TIMPIN
000156	000000V					.WORD	TIMCCB
000160	000000V					.WORD	TIMRDB


						.SBTTL	DTETIM
002054						.PSECT	$CODE$,  RO 
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  49
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (21)

000000	004773  000146'			DTETIM: JSR	PC,@P.AAJ(R3)			; *,*(MODIFIER)				1550
000004	000207 					RTS	PC				;					1515

; Routine Size:  3 words,	Routine Base:  $CODE$ + 2054
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  50
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (22)

;	  1552	routine DTEXME (DB, CCB, MODIFIER) : MCB_DB_CCB_MOD novalue =
;	  1553	
;	  1554	!++
;	  1555	! FUNCTIONAL DESCRIPTION:
;	  1556	!
;	  1557	!
;	  1558	! FORMAL PARAMETERS:
;	  1559	!	DB = address of DTE data base.
;	  1560	!	CCB = address of transmit CCB.
;	  1561	!	MODIFIER = transmit function modifier (from C_MOD of CCB).
;	  1562	!
;	  1563	! IMPLICIT INPUTS:
;	  1564	!	None
;	  1565	!
;	  1566	! IMPLICIT OUTPUTS:
;	  1567	!	None
;	  1568	!
;	  1569	! ROUTINE VALUE:
;	  1570	! COMPLETION CODES:
;	  1571	!	None
;	  1572	!
;	  1573	! SIDE EFFECTS:
;	  1574	!	None
;	  1575	!--
;	  1576	
;	  1577	    begin
;	  1578	    GET_DTE_DATA_BASE (DB)
;	  1579	
;	  1580	    map
;	  1581		CCB : ref block field (C_FIELDS);
;	  1582	
;	P 1583	    DISPATCH$ (
;	P 1584		.MODIFIER,
;	P 1585		TABLE$ ($DSPCR, 0,
;	P 1586		    (DLL$K_ENTER_MAINTENANCE, DLLMOP),
;	P 1587		    (DLL$K_INITIALIZE_LINK, DLLINI),
;	P 1588		    (DLL$K_STOP_LINK, DLLSTP),
;	P 1589		    (DLL$K_TRANSMIT, DLLXMT),
;	P 1590		    (DLL$K_TRANSMIT_AND_TIME, DLLXMT)),
;	P 1591		(DB [D_TIM], .CCB),
;	  1592		DTE_DB_CCB);
;	  1593	    end;			!of routine DTEXME



000162						.PSECT	$PLIT$,  RO ,  D  
000162	001070'				P.AAK:	.WORD	DLLXMT
000164	000652'					.WORD	DLLINI
000166	001020'					.WORD	DLLSTP
000170	000776'					.WORD	DLLMOP
000172	001070'					.WORD	DLLXMT
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  51
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (22)


						.SBTTL	DTEXME
002062						.PSECT	$CODE$,  RO 

000000	004773  000162'			DTEXME: JSR	PC,@P.AAK(R3)			; *,*(MODIFIER)				1592
000004	000207 					RTS	PC				;					1552

; Routine Size:  3 words,	Routine Base:  $CODE$ + 2062
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  52
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (23)

;	  1594	routine EXMHSG (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
;	  1595	
;	  1596	!++
;	  1597	! FUNCTIONAL DESCRIPTION:
;	  1598	!
;	  1599	!
;	  1600	! FORMAL PARAMETERS:
;	  1601	!	DB = address of DTE data base.
;	  1602	!	OFFSET = comm/region offset.
;	  1603	!	BUFFER = address of 3 word buffer to receive examined data.
;	  1604	!
;	  1605	! IMPLICIT INPUTS:
;	  1606	!	None
;	  1607	!
;	  1608	! IMPLICIT OUTPUTS:
;	  1609	!	None
;	  1610	!
;	  1611	! ROUTINE VALUE:
;	  1612	! COMPLETION CODES:
;	  1613	!	None
;	  1614	!
;	  1615	! SIDE EFFECTS:
;	  1616	!	None
;	  1617	!--
;	  1618	
;	  1619	    begin
;	  1620	    GET_DTE_DATA_BASE (DB)
;	  1621	    PRTEXM (DB [D_TIM], .OFFSET + .DB [D_EHG], .BUFFER)
;	  1622	    end;			!of routine EXMHSG


						.SBTTL	EXMHSG
000000	066502  000046 			EXMHSG: ADD	46(R5),R2			; *(DB),*				1621
000004	004767  000000V				JSR	PC,PRTEXM
000010	000207 					RTS	PC				;					1594

; Routine Size:  5 words,	Routine Base:  $CODE$ + 2070
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  53
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (24)

;	  1623	routine EXMHSM (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
;	  1624	
;	  1625	!++
;	  1626	! FUNCTIONAL DESCRIPTION:
;	  1627	!
;	  1628	!
;	  1629	! FORMAL PARAMETERS:
;	  1630	!	DB = address of DTE data base.
;	  1631	!	OFFSET = comm/region offset.
;	  1632	!	BUFFER = address of 3 word buffer to receive examined data.
;	  1633	!
;	  1634	! IMPLICIT INPUTS:
;	  1635	!	None
;	  1636	!
;	  1637	! IMPLICIT OUTPUTS:
;	  1638	!	None
;	  1639	!
;	  1640	! ROUTINE VALUE:
;	  1641	! COMPLETION CODES:
;	  1642	!	None
;	  1643	!
;	  1644	! SIDE EFFECTS:
;	  1645	!	None
;	  1646	!--
;	  1647	
;	  1648	    begin
;	  1649	    GET_DTE_DATA_BASE (DB)
;	  1650	    PRTEXM (DB [D_TIM], .OFFSET + .DB [D_EHM], .BUFFER)
;	  1651	    end;			!of routine EXMHSM


						.SBTTL	EXMHSM
000000	066502  000050 			EXMHSM: ADD	50(R5),R2			; *(DB),*				1650
000004	004767  000000V				JSR	PC,PRTEXM
000010	000207 					RTS	PC				;					1623

; Routine Size:  5 words,	Routine Base:  $CODE$ + 2102
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  54
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (25)

;	  1652	routine EXMMYG (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
;	  1653	
;	  1654	!++
;	  1655	! FUNCTIONAL DESCRIPTION:
;	  1656	!
;	  1657	!
;	  1658	! FORMAL PARAMETERS:
;	  1659	!	DB = address of DTE data base.
;	  1660	!	OFFSET = comm/region offset.
;	  1661	!	BUFFER = address of 3 word buffer to receive examined data.
;	  1662	!
;	  1663	! IMPLICIT INPUTS:
;	  1664	!	None
;	  1665	!
;	  1666	! IMPLICIT OUTPUTS:
;	  1667	!	None
;	  1668	!
;	  1669	! ROUTINE VALUE:
;	  1670	! COMPLETION CODES:
;	  1671	!	None
;	  1672	!
;	  1673	! SIDE EFFECTS:
;	  1674	!	None
;	  1675	!--
;	  1676	
;	  1677	    begin
;	  1678	    GET_DTE_DATA_BASE (DB)
;	  1679	    PRTEXM (DB [D_TIM], .OFFSET + .DB [D_EMG], .BUFFER)
;	  1680	    end;			!of routine EXMMYG


						.SBTTL	EXMMYG
000000	066502  000052 			EXMMYG: ADD	52(R5),R2			; *(DB),*				1679
000004	004767  000000V				JSR	PC,PRTEXM
000010	000207 					RTS	PC				;					1652

; Routine Size:  5 words,	Routine Base:  $CODE$ + 2114
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  55
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (26)

;	  1681	routine EXMMYH (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
;	  1682	
;	  1683	!++
;	  1684	! FUNCTIONAL DESCRIPTION:
;	  1685	!
;	  1686	!
;	  1687	! FORMAL PARAMETERS:
;	  1688	!	DB = address of DTE data base.
;	  1689	!	OFFSET = comm/region offset.
;	  1690	!	BUFFER = address of 3 word buffer to receive examined data.
;	  1691	!
;	  1692	! IMPLICIT INPUTS:
;	  1693	!	None
;	  1694	!
;	  1695	! IMPLICIT OUTPUTS:
;	  1696	!	None
;	  1697	!
;	  1698	! ROUTINE VALUE:
;	  1699	! COMPLETION CODES:
;	  1700	!	None
;	  1701	!
;	  1702	! SIDE EFFECTS:
;	  1703	!	None
;	  1704	!--
;	  1705	
;	  1706	    begin
;	  1707	    GET_DTE_DATA_BASE (DB)
;	  1708	    PRTEXM (DB [D_TIM], .OFFSET + .DB [D_DMH] + .DB [D_EMG], .BUFFER)
;	  1709	    end;			!of routine EXMMYH


						.SBTTL	EXMMYH
000000	066502  000054 			EXMMYH: ADD	54(R5),R2			; *(DB),*				1708
000004	066502  000052 				ADD	52(R5),R2			; *(DB),*
000010	004767  000000V				JSR	PC,PRTEXM
000014	000207 					RTS	PC				;					1681

; Routine Size:  7 words,	Routine Base:  $CODE$ + 2126
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  56
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (27)

;	  1710	routine GET_HIS_STATUS (DB) : EXM_LINKAGE novalue =
;	  1711	
;	  1712	!++
;	  1713	! FUNCTIONAL DESCRIPTION:
;	  1714	!
;	  1715	!
;	  1716	! FORMAL PARAMETERS:
;	  1717	!	DB = address of DTE data base.
;	  1718	!
;	  1719	! IMPLICIT INPUTS:
;	  1720	!	None
;	  1721	!
;	  1722	! IMPLICIT OUTPUTS:
;	  1723	!	None
;	  1724	!
;	  1725	! ROUTINE VALUE:
;	  1726	! COMPLETION CODES:
;	  1727	!	None
;	  1728	!
;	  1729	! SIDE EFFECTS:
;	  1730	!	None
;	  1731	!--
;	  1732	
;	  1733	    begin
;	  1734	    GET_DTE_DATA_BASE (DB)
;	  1735	
;	  1736	    local
;	  1737		BUFFER : ref vector;
;	  1738	
;	  1739	    BUFFER = DB [D_RST];
;	  1740	
;	  1741	    if not EXMHSM (DB [D_TIM], STATUS, .BUFFER)
;	  1742	    then
;	  1743		begin
;	  1744		BUFFER [0] = 0;
;	  1745		BUFFER [1] = 0;
;	  1746		BUFFER [2] = 0;
;	  1747		BUFFER = BUFFER [2]; %(to force auto-increment)%
;	  1748		end;
;	  1749	
;	  1750	    end;			!of routine GET_HIS_STATUS


						.SBTTL	GET.HIS.STATUS
000000	010503 				GET.HIS.STATUS:
						MOV	R5,R3				; DB,BUFFER				1739
000002	062703  000056 				ADD	#56,R3				; *,BUFFER
000006	012702  000002 				MOV	#2,R2				;					1741
000012	004767  177720 				JSR	PC,EXMHSM
000016	006000 					ROR	R0
000020	103403 					BLO	1$
000022	005023 					CLR	(R3)+				; BUFFER				1744
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  57
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (27)

000024	005023 					CLR	(R3)+				; BUFFER				1745
000026	005013 					CLR	(R3)				; BUFFER				1746
000030	000207 				1$:	RTS	PC				;					1710

; Routine Size:  13 words,	Routine Base:  $CODE$ + 2144
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  58
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (28)

;	  1751	routine GETCOM (DB) : DTE_DB novalue =
;	  1752	
;	  1753	!++
;	  1754	! FUNCTIONAL DESCRIPTION:
;	  1755	!
;	  1756	!
;	  1757	! FORMAL PARAMETERS:
;	  1758	!	DB = address of DTE data base.
;	  1759	!
;	  1760	! IMPLICIT INPUTS:
;	  1761	!	None
;	  1762	!
;	  1763	! IMPLICIT OUTPUTS:
;	  1764	!	None
;	  1765	!
;	  1766	! ROUTINE VALUE:
;	  1767	! COMPLETION CODES:
;	  1768	!	None
;	  1769	!
;	  1770	! SIDE EFFECTS:
;	  1771	!	None
;	  1772	!--
;	  1773	
;	  1774	    begin
;	  1775	    GET_DTE_DATA_BASE (DB)
;	  1776	
;	  1777	    literal
;	  1778		SUCCESS = not -1 %(while 0 do 0)%;
;	  1779	
;	  1780	    local
;	  1781		BUFFER : ref block field (COM_FIELDS);
;	  1782	
;	  1783	    DB [D_LONG_TIMER] = DTE_K_START_TIMEOUT;
;	  1784	    BUFFER = DB [D_RST];
;	  1785	
;	  1786	    if not PRTEXM (DB [D_TIM], 0, .BUFFER) then return;
;	  1787	
;	  1788	    DB [D_MPN] = .BUFFER [PRCNUM];
;	  1789	    DB [D_EMG] = .DB [D_MPN] + 1 + .BUFFER [RELADR];
;	  1790	
;	  1791	    if not EXMMYG (DB [D_TIM], PIDENT, .BUFFER) then return;
;	  1792	
;	  1793	    DB [D_DMH] = .BUFFER [NPRSIZ]^3;
;	  1794	
;	  1795	    if (decr INDEX from .BUFFER [NPRCNT] to 1 do
;	  1796		begin
;	  1797	
;	  1798		if not EXMMYH (DB [D_TIM], FORPRO, .BUFFER) then return;
;	  1799	
;	  1800		if  .BUFFER [D] and
;	  1801		    .BUFFER [DTN] eql .DB [D_CONTROLLER]
;	  1802		then
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  59
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (28)

;	  1803		    exitloop SUCCESS;
;	  1804	
;	  1805		begin
;	  1806	
;	  1807		local
;	  1808		    SIZE;
;	  1809	
;	  1810		SIZE = .BUFFER [PROSIZ];
;	  1811	
;	  1812		if .SIZE eql 0 then SIZE = .SIZE + 1;
;	  1813	
;	  1814		DB [D_DMH] = .DB [D_DMH] + .SIZE^3;
;	  1815		end
;	  1816		end) neq SUCCESS
;	  1817	    then
;	  1818		return;
;	  1819	
;	  1820	    if .BUFFER [PROTYP] neq 1 then return;
;	  1821	
;	  1822	    DB [D_HPN] = .BUFFER [TOPRCN];
;	  1823	
;	  1824	    if not EXMMYH (DB [D_TIM], PROPNT, .BUFFER) then return;
;	  1825	
;	  1826	    DB [D_EHG] = .DB [D_MPN] + 1 + .BUFFER [0, 0, 16, 0];
;	  1827	
;	  1828	    if not EXMHSG (DB [D_TIM], PIDENT, .BUFFER) then return;
;	  1829	
;	  1830	    DB [D_EHM] = .BUFFER [NPRSIZ]^3 + .DB [D_EHG];
;	  1831	
;	  1832	    if (decr INDEX from .BUFFER [NPRCNT] to 1 do
;	  1833		begin
;	  1834	
;	  1835		if not EXMHSM (DB [D_TIM], FORPRO, .BUFFER) then return;
;	  1836	
;	  1837		if .BUFFER [TOPRCN] eql .DB [D_MPN]
;	  1838		then
;	  1839		    exitloop SUCCESS;
;	  1840	
;	  1841		begin
;	  1842	
;	  1843		local
;	  1844		    SIZE;
;	  1845	
;	  1846		SIZE = .BUFFER [PROSIZ];
;	  1847	
;	  1848		if .SIZE eql 0 then SIZE = .SIZE + 1;
;	  1849	
;	  1850		DB [D_EHM] = .DB [D_EHM] + .SIZE^3;
;	  1851		end
;	  1852		end) neq SUCCESS
;	  1853	    then
;	  1854		return;
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  60
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (28)

;	  1855	
;	  1856	    if not EXMHSM (DB [D_TIM], STATUS, .BUFFER) then return;
;	  1857	
;	  1858	    if not .BUFFER [V] then return;
;	  1859	
;	  1860	    CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_INITIALIZING, LCL);
;	  1861	    DB [D_START_THRESHOLD] = 7;
;	  1862	    CLEAR_DOORBELL (DB [D_TIM]);
;	  1863	    DEPMYH (DB [D_TIM], QSIZE, DB [D_XQZ]);
;	  1864	    DB [$SUB_FIELD (D_XST, I)] = 1;
;	  1865	    DB [$SUB_FIELD (D_XST, V)] = 1;
;	  1866	    DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
;	  1867	    DTE_SET (.DB [D_REGISTER], INT10S);
;	  1868	    end;			!of routine GETCOM


						.SBTTL	GETCOM
000000	162706  000006 			GETCOM: SUB	#6,SP				;					1751
000004	112765  000005  000020 			MOVB	#5,20(R5)			; *,*(DB)				1783
000012	010503 					MOV	R5,R3				; DB,BUFFER				1784
000014	062703  000056 				ADD	#56,R3				; *,BUFFER
000020	005002 					CLR	R2				;					1786
000022	004767  000000V				JSR	PC,PRTEXM
000026	006000 					ROR	R0
000030	103167 					BHIS	6$
000032	012766  000044  000002 			MOV	#44,2(SP)			;					1788
000040	060566  000002 				ADD	R5,2(SP)			; DB,*
000044	012766  000002  000004 			MOV	#2,4(SP)
000052	060366  000004 				ADD	R3,4(SP)			; BUFFER,*
000056	017600  000004 				MOV	@4(SP),R0
000062	072027  177770 				ASH	#-10,R0
000066	042700  177760 				BIC	#177760,R0
000072	105076  000002 				CLRB	@2(SP)
000076	150076  000002 				BISB	R0,@2(SP)
000102	117600  000002 				MOVB	@2(SP),R0			;					1774
000106	061300 					ADD	(R3),R0				; BUFFER,*
000110	010065  000052 				MOV	R0,52(R5)			; *,*(DB)				1789
000114	005265  000052 				INC	52(R5)				; *(DB)
000120	005002 					CLR	R2				;					1791
000122	004767  177570 				JSR	PC,EXMMYG
000126	006000 					ROR	R0
000130	103155 					BHIS	8$
000132	117665  000004  000054 			MOVB	@4(SP),54(R5)			; *,*(DB)				1793
000140	042765  177770  000054 			BIC	#177770,54(R5)			; *,*(DB)
000146	006365  000054 				ASL	54(R5)				; *(DB)
000152	006365  000054 				ASL	54(R5)				; *(DB)
000156	006365  000054 				ASL	54(R5)				; *(DB)
000162	012716  000004 				MOV	#4,(SP)				;					1800
000166	060316 					ADD	R3,(SP)				; BUFFER,*
000170	117604  000004 				MOVB	@4(SP),R4			; *,INDEX				1795
000174	072427  177775 				ASH	#-3,R4				; *,INDEX
000200	042704  177740 				BIC	#177740,R4			; *,INDEX
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  61
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (28)

000204	003440 					BLE	4$
000206	005002 				1$:	CLR	R2				;					1798
000210	004767  177514 				JSR	PC,EXMMYH
000214	006000 					ROR	R0
000216	103156 					BHIS	13$
000220	132776  000004  000000 			BITB	#4,@0(SP)			;					1800
000226	001412 					BEQ	2$
000230	116501  000007 				MOVB	7(R5),R1			; *(DB),*				1801
000234	117600  000000 				MOVB	@0(SP),R0
000240	042700  177774 				BIC	#177774,R0
000244	020001 					CMP	R0,R1
000246	001002 					BNE	2$
000250	005000 					CLR	R0				;					1803
000252	000417 					BR	5$
000254	117600  000004 			2$:	MOVB	@4(SP),R0			; *,SIZE				1810
000260	042700  177770 				BIC	#177770,R0			; *,SIZE
000264	001001 					BNE	3$				;					1812
000266	005200 					INC	R0				; SIZE
000270	072027  000003 			3$:	ASH	#3,R0				;					1814
000274	066500  000054 				ADD	54(R5),R0			; *(DB),*
000300	010065  000054 				MOV	R0,54(R5)			; *,*(DB)
000304	077440 					SOB	R4,1$				; INDEX,*				0000
000306	012700  177777 			4$:	MOV	#-1,R0				;					1795
000312	001166 				5$:	BNE	14$				;					1818
000314	117600  000004 				MOVB	@4(SP),R0			;					1820
000320	042700  177407 				BIC	#177407,R0
000324	020027  000010 				CMP	R0,#10
000330	001157 					BNE	14$
000332	017646  000002 				MOV	@2(SP),-(SP)			;					1822
000336	111366  000001 				MOVB	(R3),1(SP)			; BUFFER,*
000342	012676  000002 				MOV	(SP)+,@2(SP)
000346	012702  000001 				MOV	#1,R2				;					1824
000352	004767  177352 				JSR	PC,EXMMYH
000356	006000 					ROR	R0
000360	103143 					BHIS	14$
000362	117600  000002 				MOVB	@2(SP),R0			;					1774
000366	061300 					ADD	(R3),R0				; BUFFER,*
000370	010065  000046 				MOV	R0,46(R5)			; *,*(DB)				1826
000374	005265  000046 				INC	46(R5)				; *(DB)
000400	005002 					CLR	R2				;					1828
000402	004767  177264 				JSR	PC,EXMHSG
000406	006000 					ROR	R0
000410	103127 				6$:	BHIS	14$
000412	117600  000004 				MOVB	@4(SP),R0			;					1830
000416	042700  177770 				BIC	#177770,R0
000422	072027  000003 				ASH	#3,R0
000426	066500  000046 				ADD	46(R5),R0			; *(DB),*
000432	010065  000050 				MOV	R0,50(R5)			; *,*(DB)
000436	117604  000004 				MOVB	@4(SP),R4			; *,INDEX				1832
000442	072427  177775 				ASH	#-3,R4				; *,INDEX
000446	042704  177740 				BIC	#177740,R4			; *,INDEX
000452	003430 					BLE	11$
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  62
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (28)

000454	005002 				7$:	CLR	R2				;					1835
000456	004767  177222 				JSR	PC,EXMHSM
000462	006000 					ROR	R0
000464	103101 				8$:	BHIS	14$
000466	117600  000002 				MOVB	@2(SP),R0			;					1837
000472	021300 					CMP	(R3),R0				; BUFFER,*
000474	001002 					BNE	9$
000476	005000 					CLR	R0				;					1839
000500	000417 					BR	12$
000502	117600  000004 			9$:	MOVB	@4(SP),R0			; *,SIZE				1846
000506	042700  177770 				BIC	#177770,R0			; *,SIZE
000512	001001 					BNE	10$				;					1848
000514	005200 					INC	R0				; SIZE
000516	072027  000003 			10$:	ASH	#3,R0				;					1850
000522	066500  000050 				ADD	50(R5),R0			; *(DB),*
000526	010065  000050 				MOV	R0,50(R5)			; *,*(DB)
000532	077430 					SOB	R4,7$				; INDEX,*				0000
000534	012700  177777 			11$:	MOV	#-1,R0				;					1832
000540	001053 				12$:	BNE	14$				;					1854
000542	012702  000002 				MOV	#2,R2				;					1856
000546	004767  177132 				JSR	PC,EXMHSM
000552	006000 					ROR	R0
000554	103045 				13$:	BHIS	14$
000556	132776  000001  000000 			BITB	#1,@0(SP)			;					1858
000564	001441 					BEQ	14$
000566	012746  000002 				MOV	#2,-(SP)			;					1860
000572	005046 					CLR	-(SP)
000574	004767  175274 				JSR	PC,CHANGE.PROTOCOL.STATE
000600	112765  000007  000021 			MOVB	#7,21(R5)			; *,*(DB)				1861
000606	004767  175276 				JSR	PC,CLEAR.DOORBELL		;					1862
000612	010500 					MOV	R5,R0				; DB,*					1863
000614	062700  000100 				ADD	#100,R0
000620	012702  000003 				MOV	#3,R2
000624	010003 					MOV	R0,R3
000626	004767  175602 				JSR	PC,DEPMYH
000632	152765  000003  000076 			BISB	#3,76(R5)			; *,*(DB)				1865
000640	010500 					MOV	R5,R0				; DB,*					1866
000642	062700  000072 				ADD	#72,R0
000646	012702  000002 				MOV	#2,R2
000652	010003 					MOV	R0,R3
000654	004767  175554 				JSR	PC,DEPMYH
000660	012775  000400  000002 			MOV	#400,@2(R5)			; *,*(DB)				1867
000666	022626 					CMP	(SP)+,(SP)+			;					1774
000670	062706  000006 			14$:	ADD	#6,SP				;					1751
000674	000207 					RTS	PC

; Routine Size:  223 words,	Routine Base:  $CODE$ + 2176
; Maximum stack depth per invocation:  6 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  63
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (29)

;	  1869	routine INITIALIZATION_REQUESTED (DB) : DTE_DB =
;	  1870	
;	  1871	!++
;	  1872	! FUNCTIONAL DESCRIPTION:
;	  1873	!
;	  1874	!
;	  1875	! FORMAL PARAMETERS:
;	  1876	!	DB = address of DTE data base.
;	  1877	!
;	  1878	! IMPLICIT INPUTS:
;	  1879	!	None
;	  1880	!
;	  1881	! IMPLICIT OUTPUTS:
;	  1882	!	None
;	  1883	!
;	  1884	! ROUTINE VALUE:
;	  1885	! COMPLETION CODES:
;	  1886	!	None
;	  1887	!
;	  1888	! SIDE EFFECTS:
;	  1889	!	None
;	  1890	!--
;	  1891	
;	  1892	    begin
;	  1893	    GET_DTE_DATA_BASE (DB)
;	  1894	
;	  1895	    if .DB [$SUB_FIELD (D_RST, I)]
;	  1896	    then
;	  1897		begin
;	  1898		SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_START_RECEIVED);
;	  1899		DTESTP (DB [D_TIM]);
;	  1900		TRUE
;	  1901		end
;	  1902	    else
;	  1903		false
;	  1904	
;	  1905	    end;			!of routine INITIALIZATION_REQUESTED


						.SBTTL	INITIALIZATION.REQUESTED
000000	132765  000002  000062 		INITIALIZATION.REQUESTED:
						BITB	#2,62(R5)			; *,*(DB)				1895
000006	001411 					BEQ	1$
000010	012700  100130 				MOV	#-77650,R0			;					1898
000014	004767  000000V				JSR	PC,SEND.PERSISTENT.ERROR
000020	004767  176456 				JSR	PC,DTESTP			;					1899
000024	012700  000001 				MOV	#1,R0				;					1895
000030	000207 					RTS	PC
000032	005000 				1$:	CLR	R0
000034	000207 					RTS	PC				;					1869

; Routine Size:  15 words,	Routine Base:  $CODE$ + 3074
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  64
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (29)

; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  65
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (30)

;	  1906	routine NEW_RCB (DB, CCB) : DTE_DB novalue =
;	  1907	
;	  1908	!++
;	  1909	! FUNCTIONAL DESCRIPTION:
;	  1910	!
;	  1911	!
;	  1912	! FORMAL PARAMETERS:
;	  1913	!	DB = address of DTE data base.
;	  1914	!	CCB = address of new receive buffer CCB.
;	  1915	!
;	  1916	! IMPLICIT INPUTS:
;	  1917	!	None
;	  1918	!
;	  1919	! IMPLICIT OUTPUTS:
;	  1920	!	None
;	  1921	!
;	  1922	! ROUTINE VALUE:
;	  1923	! COMPLETION CODES:
;	  1924	!	None
;	  1925	!
;	  1926	! SIDE EFFECTS:
;	  1927	!	None
;	  1928	!--
;	  1929	
;	  1930	    begin
;	  1931	    GET_DTE_DATA_BASE (DB)
;	  1932	
;	  1933	    map
;	  1934		CCB : ref block field (C_FIELDS);
;	  1935	
;	  1936	    CCB [C_CNT] = 0;
;	  1937	    DB [D_RCB] = .CCB;
;	P 1938	    $MCB_CONVERT_TO_UBA_ADDRESS ((.CCB [C_BIAS], .CCB [C_ADDR]),
;	P 1939		DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)],
;	  1940		DB [$SUB_FIELD (D_RBA, PHYSICAL_HIGH)]);
;	  1941	    end;			!of routine NEW_RCB


						.GLOBL	$PHY18


						.SBTTL	NEW.RCB
000000	016600  000002 			NEW.RCB:MOV	2(SP),R0			; CCB,*					1936
000004	005060  000022 				CLR	22(R0)
000010	010065  000110 				MOV	R0,110(R5)			; *,*(DB)				1937
000014	016002  000016 				MOV	16(R0),R2			;					1940
000020	016003  000020 				MOV	20(R0),R3
000024	004767  000000G				JSR	PC,$PHY18
000030	010365  000114 				MOV	R3,114(R5)			; *,*(DB)
000034	010265  000112 				MOV	R2,112(R5)			; *,*(DB)
000040	000207 					RTS	PC				;					1906
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  66
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (30)

; Routine Size:  17 words,	Routine Base:  $CODE$ + 3132
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  67
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (31)

;	  1942	global routine PARAMETER_DEVICE_REGISTERS
;	  1943	
;	  1944	!++
;	  1945	! FUNCTIONAL DESCRIPTION:
;	  1946	!
;	  1947	!
;	  1948	! FORMAL PARAMETERS:
;	  1949	       (REG : ref vector)
;	  1950	!
;	  1951	! IMPLICIT INPUTS:
;	  1952	!	None
;	  1953	!
;	  1954	! IMPLICIT OUTPUTS:
;	  1955	!	None
;	  1956	!
;	  1957	! ROUTINE VALUE:
;	  1958		: DTE_REG novalue =
;	  1959	!
;	  1960	! SIDE EFFECTS:
;	  1961	!	None
;	  1962	!--
;	  1963	
;	  1964	    begin
;	  1965	
;	  1966	    !
;	  1967	    ! Adjust to beginning of register set
;	  1968	    !
;	  1969	
;	  1970	    REG <0, 5> = 0;
;	  1971	
;	  1972	    !
;	  1973	    ! DTE registers
;	  1974	    !
;	  1975	
;	  1976	    decr COUNT from 16 to 1 do
;	  1977		begin
;	  1978		PARAMETER_H_2 (0, REG [0]);
;	  1979		REG = REG [1];
;	  1980		end;
;	  1981	
;	  1982	    end;			!of routine PARAMETER_DEVICE_REGISTERS


						.GLOBL	$DPH2


						.SBTTL	PLL0
000000	010246 				PLL0::	MOV	R2,-(SP)			;					1942
000002	142701  000037 				BICB	#37,R1				; *,REG					1970
000006	012702  000020 				MOV	#20,R2				; *,COUNT				1976
000012	005046 				1$:	CLR	-(SP)				;					1978
000014	011100 					MOV	(R1),R0				; REG,*
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  68
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (31)

000016	004767  000000G				JSR	PC,$DPH2
000022	062701  000002 				ADD	#2,R1				; *,REG					1979
000026	005726 					TST	(SP)+				;					1977
000030	077210 					SOB	R2,1$				; COUNT,*				0000
000032	012602 					MOV	(SP)+,R2			;					1942
000034	000207 					RTS	PC

; Routine Size:  15 words,	Routine Base:  $CODE$ + 3174
; Maximum stack depth per invocation:  3 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  69
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (32)

;	  1983	routine PAUSED (DB) : DTE_DB =
;	  1984	
;	  1985	!++
;	  1986	! FUNCTIONAL DESCRIPTION:
;	  1987	!
;	  1988	!
;	  1989	! FORMAL PARAMETERS:
;	  1990	!	DB = address of DTE data base.
;	  1991	!
;	  1992	! IMPLICIT INPUTS:
;	  1993	!	None
;	  1994	!
;	  1995	! IMPLICIT OUTPUTS:
;	  1996	!	None
;	  1997	!
;	  1998	! ROUTINE VALUE:
;	  1999	! COMPLETION CODES:
;	  2000	!	None
;	  2001	!
;	  2002	! SIDE EFFECTS:
;	  2003	!	None
;	  2004	!--
;	  2005	
;	  2006	    begin
;	  2007	    GET_DTE_DATA_BASE (DB)
;	  2008	
;	  2009	    if not .DB [$SUB_FIELD (D_RST, V)]
;	  2010	    then
;	  2011		begin
;	  2012		CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_PAUSED, RMT);
;	  2013		DB [D_LONG_TIMER] = DTE_K_PAUSE_TIMEOUT;
;	  2014		TRUE
;	  2015		end
;	  2016	    else
;	  2017		false
;	  2018	
;	  2019	    end;			!of routine PAUSED


						.SBTTL	PAUSED
000000	132765  000001  000062 		PAUSED: BITB	#1,62(R5)			; *,*(DB)				2009
000006	001015 					BNE	1$
000010	012746  000004 				MOV	#4,-(SP)			;					2012
000014	012746  000001 				MOV	#1,-(SP)
000020	004767  175014 				JSR	PC,CHANGE.PROTOCOL.STATE
000024	112765  000036  000020 			MOVB	#36,20(R5)			; *,*(DB)				2013
000032	022626 					CMP	(SP)+,(SP)+			;					2011
000034	012700  000001 				MOV	#1,R0				;					2009
000040	000207 					RTS	PC
000042	005000 				1$:	CLR	R0
000044	000207 					RTS	PC				;					1983
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  70
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (32)

; Routine Size:  19 words,	Routine Base:  $CODE$ + 3232
; Maximum stack depth per invocation:  3 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  71
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (33)

;	  2020	routine PROTOCOL_BROKEN (DB) : DTE_DB novalue =
;	  2021	
;	  2022	!++
;	  2023	! FUNCTIONAL DESCRIPTION:
;	  2024	!
;	  2025	!
;	  2026	! FORMAL PARAMETERS:
;	  2027	!	DB = address of DTE data base.
;	  2028	!
;	  2029	! IMPLICIT INPUTS:
;	  2030	!	None
;	  2031	!
;	  2032	! IMPLICIT OUTPUTS:
;	  2033	!	None
;	  2034	!
;	  2035	! ROUTINE VALUE:
;	  2036	! COMPLETION CODES:
;	  2037	!	None
;	  2038	!
;	  2039	! SIDE EFFECTS:
;	  2040	!	None
;	  2041	!--
;	  2042	
;	  2043	    begin
;	  2044	    GET_DTE_DATA_BASE (DB)
;	  2045	    DTESTP (DB [D_TIM]);
;	  2046	    end;			!of routine PROTOCOL_BROKEN


						.SBTTL	PROTOCOL.BROKEN
000000	004767  176272 			PROTOCOL.BROKEN:
						JSR	PC,DTESTP			;					2045
000004	000207 					RTS	PC				;					2020

; Routine Size:  3 words,	Routine Base:  $CODE$ + 3300
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  72
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (34)

;	  2047	routine PRTDEP (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
;	  2048	
;	  2049	!++
;	  2050	! FUNCTIONAL DESCRIPTION:
;	  2051	!
;	  2052	!
;	  2053	! FORMAL PARAMETERS:
;	  2054	!	DB = address of DTE data base.
;	  2055	!	OFFSET = comm/region offset.
;	  2056	!	BUFFER = address of 3 word buffer of data to deposit.
;	  2057	!
;	  2058	! IMPLICIT INPUTS:
;	  2059	!	None
;	  2060	!
;	  2061	! IMPLICIT OUTPUTS:
;	  2062	!	None
;	  2063	!
;	  2064	! ROUTINE VALUE:
;	  2065	! COMPLETION CODES:
;	  2066	!	None
;	  2067	!
;	  2068	! SIDE EFFECTS:
;	  2069	!	None
;	  2070	!--
;	  2071	
;	  2072	    begin
;	  2073	    GET_DTE_DATA_BASE (DB)
;	  2074	
;	  2075	    map
;	  2076		BUFFER : ref vector [3];
;	  2077	
;	  2078	    local
;	  2079		DTE : ref block field (DTE_FIELDS);
;	  2080	
;	  2081	    DTE = .DB [D_REGISTER];
;	  2082	    DTE [$SUB_FIELD (DEXWD, DEXWD3)] = .BUFFER [0];
;	  2083	    DTE [$SUB_FIELD (DEXWD, DEXWD2)] = .BUFFER [1];
;	  2084	    DTE [$SUB_FIELD (DEXWD, DEXWD1)] = .BUFFER [2];
;	  2085	    DTE [$SUB_FIELD (TENAD, TENAD1)] = DTE_BIT (DEP);
;	  2086	    DTE [$SUB_FIELD (TENAD, TENAD2)] = .OFFSET;
;	  2087	    WTEXDP (DB [D_TIM], .DTE)
;	  2088	    end;			!of routine PRTDEP


						.SBTTL	PRTDEP
000000	016501  000002 			PRTDEP: MOV	2(R5),R1			; *(DB),DTE				2081
000004	011361  177746 				MOV	(R3),-32(R1)			; BUFFER,*(DTE)				2082
000010	016361  000002  177750 			MOV	2(R3),-30(R1)			; *(BUFFER),*(DTE)			2083
000016	016361  000004  177752 			MOV	4(R3),-26(R1)			; *(BUFFER),*(DTE)			2084
000024	012761  010000  177754 			MOV	#10000,-24(R1)			; *,*(DTE)				2085
000032	010261  177756 				MOV	R2,-22(R1)			; OFFSET,*(DTE)				2086
000036	004767  000000V				JSR	PC,WTEXDP			;					2087
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  73
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (34)

000042	000207 					RTS	PC				;					2047

; Routine Size:  18 words,	Routine Base:  $CODE$ + 3306
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  74
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (35)

;	  2089	routine PRTEXM (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
;	  2090	
;	  2091	!++
;	  2092	! FUNCTIONAL DESCRIPTION:
;	  2093	!
;	  2094	!
;	  2095	! FORMAL PARAMETERS:
;	  2096	!	DB = address of DTE data base.
;	  2097	!	OFFSET = comm/region offset.
;	  2098	!	BUFFER = address of 3 word buffer to receive examined data.
;	  2099	!
;	  2100	! IMPLICIT INPUTS:
;	  2101	!	None
;	  2102	!
;	  2103	! IMPLICIT OUTPUTS:
;	  2104	!	None
;	  2105	!
;	  2106	! ROUTINE VALUE:
;	  2107	! COMPLETION CODES:
;	  2108	!	None
;	  2109	!
;	  2110	! SIDE EFFECTS:
;	  2111	!	None
;	  2112	!--
;	  2113	
;	  2114	    begin
;	  2115	    GET_DTE_DATA_BASE (DB)
;	  2116	
;	  2117	    map
;	  2118		BUFFER : ref vector [3];
;	  2119	
;	  2120	    local
;	  2121		DTE : ref block field (DTE_FIELDS);
;	  2122	
;	  2123	    local
;	  2124		STATUS;
;	  2125	
;	  2126	    DTE = .DB [D_REGISTER];
;	  2127	    DTE [$SUB_FIELD (TENAD, TENAD1)] = 0;
;	  2128	    DTE [$SUB_FIELD (TENAD, TENAD2)] = .OFFSET;
;	  2129	    STATUS = WTEXDP (DB [D_TIM], .DTE);
;	  2130	    BUFFER [0] = .DTE [$SUB_FIELD (DEXWD, DEXWD3)];
;	  2131	    BUFFER [1] = .DTE [$SUB_FIELD (DEXWD, DEXWD2)];
;	  2132	    BUFFER [2] = .DTE [$SUB_FIELD (DEXWD, DEXWD1)];
;	  2133	    .STATUS
;	  2134	    end;			!of routine PRTEXM


						.SBTTL	PRTEXM
000000	016501  000002 			PRTEXM: MOV	2(R5),R1			; *(DB),DTE				2126
000004	005061  177754 				CLR	-24(R1)				; *(DTE)				2127
000010	010261  177756 				MOV	R2,-22(R1)			; OFFSET,*(DTE)				2128
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  75
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (35)

000014	004767  000000V				JSR	PC,WTEXDP			;					2129
000020	016113  177746 				MOV	-32(R1),(R3)			; *(DTE),BUFFER				2130
000024	016163  177750  000002 			MOV	-30(R1),2(R3)			; *(DTE),*(BUFFER)			2131
000032	016163  177752  000004 			MOV	-26(R1),4(R3)			; *(DTE),*(BUFFER)			2132
000040	000207 					RTS	PC				;					2089

; Routine Size:  17 words,	Routine Base:  $CODE$ + 3352
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  76
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (36)

;	  2135	routine RECEIVE_MESSAGE (DB) : DTE_DB novalue =
;	  2136	
;	  2137	!++
;	  2138	! FUNCTIONAL DESCRIPTION:
;	  2139	!
;	  2140	!
;	  2141	! FORMAL PARAMETERS:
;	  2142	!	DB = address of DTE data base.
;	  2143	!
;	  2144	! IMPLICIT INPUTS:
;	  2145	!	None
;	  2146	!
;	  2147	! IMPLICIT OUTPUTS:
;	  2148	!	None
;	  2149	!
;	  2150	! ROUTINE VALUE:
;	  2151	! COMPLETION CODES:
;	  2152	!	None
;	  2153	!
;	  2154	! SIDE EFFECTS:
;	  2155	!	None
;	  2156	!--
;	  2157	
;	  2158	    begin
;	  2159	    GET_DTE_DATA_BASE (DB)
;	  2160	
;	  2161	    if .DB [$SUB_FIELD (D_RQZ, PSIZE)] neq 0
;	  2162	    then
;	  2163		begin
;	  2164		RECEIVE_SEGMENT (DB [D_TIM]);
;	  2165		return;
;	  2166		end;
;	  2167	
;	  2168	    ! *********************** Protocol deviation **************************
;	  2169	    ! The -20 monitors MY CPQCNT instead of MY QCOUNT for TO-HIM transfers,
;	  2170	    ! so the roles of MY QCOUNT and MY CPQCNT are reversed from those in
;	  2171	    ! the protocol specification.
;	  2172	    ! *********************************************************************
;	  2173	
;	  2174	    if .DB [$SUB_FIELD (D_RST, QCOUNT)] eql .DB [$SUB_FIELD (D_XST, QCOUNT)] then return;
;	  2175	
;	  2176	    DB [$SUB_FIELD (D_XST, QCOUNT)] = .DB [$SUB_FIELD (D_XST, QCOUNT)] + 1;
;	  2177	
;	  2178	    if .DB [$SUB_FIELD (D_RST, QCOUNT)] neq .DB [$SUB_FIELD (D_XST, QCOUNT)]
;	  2179	    then
;	  2180		begin
;	P 2181		$NM_PLL_EVENT (4, .DB [D_LINE_ENTITY],
;	  2182		    PARAMETER_DEVICE_REGISTERS (.DB [D_REGISTER]));
;	  2183		DB [$SUB_FIELD (D_XST, QCOUNT)] = .DB [$SUB_FIELD (D_XST, QCOUNT)] - 1;
;	  2184		SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
;	  2185		COUNTER_INCREMENT (DB, D_INVALID_QCOUNT);
;	  2186		COUNTER_INCREMENT (DB, D_PROTOCOL_ERRORS);
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  77
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (36)

;	  2187		DEVICE_BROKEN (DB [D_TIM]);
;	  2188		return;
;	  2189		end;
;	  2190	
;	  2191	    if .DB [D_RCB] eql 0
;	  2192	    then
;	  2193		begin
;	  2194	
;	  2195		local
;	  2196		    CCB;
;	  2197	
;	  2198		if RDBGT$ (CCB) then NEW_RCB (DB [D_TIM], .CCB);
;	  2199	
;	  2200		end;
;	  2201	
;	  2202	    if .DB [D_RCB] eql 0
;	  2203	    then
;	  2204		begin
;	  2205		DB [$SUB_FIELD (D_XST, QCOUNT)] = .DB [$SUB_FIELD (D_XST, QCOUNT)] - 1;
;	  2206		RDBRQ$ ();
;	  2207		return;
;	  2208		end;
;	  2209	
;	  2210	    EXMHSM (DB [D_TIM], QSIZE, DB [D_RQZ]);
;	  2211	
;	  2212	    if .DB [$SUB_FIELD (D_RQZ, PSIZE)] gtr .DB [D_DL_BLK]
;	  2213	    then
;	  2214		begin
;	P 2215		$NM_DLL_EVENT (9, .DB [D_CIRCUIT_ENTITY],
;	P 2216		    PARAMETER_DU_2 (7, DB [$SUB_FIELD (D_RQZ, PSIZE)]),
;	  2217		    PARAMETER_DU_2 (8, DB [D_DL_BLK]));
;	  2218		DB [$SUB_FIELD (D_XST, QCOUNT)] = .DB [$SUB_FIELD (D_XST, QCOUNT)] - 1;
;	  2219		SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
;	  2220		COUNTER_INCREMENT (DB, D_MESSAGE_TOO_LONG);
;	  2221		COUNTER_INCREMENT (DB, D_PROTOCOL_ERRORS);
;	  2222		PROTOCOL_BROKEN (DB [D_TIM]);
;	  2223		return;
;	  2224		end;
;	  2225	
;	  2226	    DB [$SUB_FIELD (D_XST, RCV)] = 1;
;	  2227	    DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
;	  2228	    RECEIVE_SEGMENT (DB [D_TIM]);
;	  2229	    end;			!of routine RECEIVE_MESSAGE


						.GLOBL	$RDBGT, $RDBRQ, $DPDU2


						.SBTTL	RECEIVE.MESSAGE
000000	024646 				RECEIVE.MESSAGE:
						CMP	-(SP),-(SP)			;					2135
000002	012746  000066 				MOV	#66,-(SP)			;					2161
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  78
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (36)

000006	060516 					ADD	R5,(SP)				; DB,*
000010	005776  000000 				TST	@0(SP)
000014	001177 					BNE	5$				;					2164
000016	012766  000072  000004 			MOV	#72,4(SP)			;					2174
000024	060566  000004 				ADD	R5,4(SP)			; DB,*
000030	126576  000056  000004 			CMPB	56(R5),@4(SP)			; *(DB),*
000036	001570 					BEQ	6$
000040	105276  000004 				INCB	@4(SP)				;					2176
000044	126576  000056  000004 			CMPB	56(R5),@4(SP)			; *(DB),*				2178
000052	001435 					BEQ	1$
000054	004767  000000G				JSR	PC,$NLBEG			;					2182
000060	016501  000002 				MOV	2(R5),R1			; *(DB),*
000064	004767  177470 				JSR	PC,PLL0
000070	012700  000604 				MOV	#604,R0
000074	016501  000042 				MOV	42(R5),R1			; *(DB),*
000100	004767  000000G				JSR	PC,$NLEND
000104	105376  000004 				DECB	@4(SP)				;					2183
000110	012700  100174 				MOV	#-77604,R0			;					2184
000114	004767  000000V				JSR	PC,SEND.PERSISTENT.ERROR
000120	052765  002000  000170 			BIS	#2000,170(R5)			; *,*(DB)				2185
000126	012700  000170 				MOV	#170,R0				;					2186
000132	060500 					ADD	R5,R0				; DB,*
000134	004767  000000G				JSR	PC,$IC8
000140	004767  175064 				JSR	PC,DEVICE.BROKEN		;					2187
000144	000525 					BR	6$				;					2180
000146	012766  000110  000002 		1$:	MOV	#110,2(SP)			;					2191
000154	060566  000002 				ADD	R5,2(SP)			; DB,*
000160	005776  000002 				TST	@2(SP)
000164	001020 					BNE	3$
000166	004767  000000G				JSR	PC,$RDBGT			;					2198
000172	103405 					BCS	2$
000174	010400 					MOV	R4,R0				; $MCB$R4,CCB
000176	010046 					MOV	R0,-(SP)			; CCB,*
000200	004767  177312 				JSR	PC,NEW.RCB
000204	005726 					TST	(SP)+
000206	005776  000002 			2$:	TST	@2(SP)				;					2202
000212	001005 					BNE	3$
000214	105376  000004 				DECB	@4(SP)				;					2205
000220	004767  000000G				JSR	PC,$RDBRQ			;					2206
000224	000475 					BR	6$				;					2204
000226	010500 				3$:	MOV	R5,R0				; DB,*					2210
000230	062700  000064 				ADD	#64,R0
000234	012702  000003 				MOV	#3,R2
000240	010003 					MOV	R0,R3
000242	004767  176220 				JSR	PC,EXMHSM
000246	027665  000000  000172 			CMP	@0(SP),172(R5)			; *,*(DB)				2212
000254	003446 					BLE	4$
000256	004767  000000G				JSR	PC,$NLBEG			;					2217
000262	012746  000007 				MOV	#7,-(SP)
000266	017600  000002 				MOV	@2(SP),R0
000272	004767  000000G				JSR	PC,$DPDU2
000276	012716  000010 				MOV	#10,(SP)
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  79
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (36)

000302	016500  000172 				MOV	172(R5),R0			; *(DB),*
000306	004767  000000G				JSR	PC,$DPDU2
000312	012700  000511 				MOV	#511,R0
000316	016501  000040 				MOV	40(R5),R1			; *(DB),*
000322	004767  000000G				JSR	PC,$NLEND
000326	105376  000006 				DECB	@6(SP)				;					2218
000332	012700  100174 				MOV	#-77604,R0			;					2219
000336	004767  000000V				JSR	PC,SEND.PERSISTENT.ERROR
000342	052765  004000  000170 			BIS	#4000,170(R5)			; *,*(DB)				2220
000350	012700  000170 				MOV	#170,R0				;					2221
000354	060500 					ADD	R5,R0				; DB,*
000356	004767  000000G				JSR	PC,$IC8
000362	004767  177276 				JSR	PC,PROTOCOL.BROKEN		;					2222
000366	005726 					TST	(SP)+				;					2212
000370	000413 					BR	6$				;					2214
000372	152765  000001  000074 		4$:	BISB	#1,74(R5)			; *,*(DB)				2226
000400	012702  000002 				MOV	#2,R2				;					2227
000404	016603  000004 				MOV	4(SP),R3
000410	004767  174602 				JSR	PC,DEPMYH
000414	004767  000000V			5$:	JSR	PC,RECEIVE.SEGMENT		;					2228
000420	062706  000006 			6$:	ADD	#6,SP				;					2135
000424	000207 					RTS	PC

; Routine Size:  139 words,	Routine Base:  $CODE$ + 3414
; Maximum stack depth per invocation:  5 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  80
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (37)

;	  2230	routine RECEIVE_SEGMENT (DB) : DTE_DB novalue =
;	  2231	
;	  2232	!++
;	  2233	! FUNCTIONAL DESCRIPTION:
;	  2234	!
;	  2235	!
;	  2236	! FORMAL PARAMETERS:
;	  2237	!	DB = address of DTE data base.
;	  2238	!
;	  2239	! IMPLICIT INPUTS:
;	  2240	!	None
;	  2241	!
;	  2242	! IMPLICIT OUTPUTS:
;	  2243	!	None
;	  2244	!
;	  2245	! ROUTINE VALUE:
;	  2246	! COMPLETION CODES:
;	  2247	!	None
;	  2248	!
;	  2249	! SIDE EFFECTS:
;	  2250	!	None
;	  2251	!--
;	  2252	
;	  2253	    begin
;	  2254	    GET_DTE_DATA_BASE (DB)
;	  2255	
;	  2256	    local
;	  2257		DTE : ref block field (DTE_FIELDS);
;	  2258	
;	  2259	    if .DB [D_RCT] neq 0 then return;
;	  2260	
;	  2261	    if .DB [$SUB_FIELD (D_RQZ, PSIZE)] eql 0 then return;
;	  2262	
;	  2263	    if .DB [$SUB_FIELD (D_RQZ, CSIZE)] eql 0 then return;
;	  2264	
;	  2265	    if .DB [$SUB_FIELD (D_XMQ, LIST_FIRST)] neq 0 and
;	  2266		.DB [$SUB_FIELD (D_RBA, PHYSICAL_HIGH)] neq
;	  2267		.DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)] then return;
;	  2268	
;	  2269	    if .DB [DF_FLUSHING_DTE] then return;
;	  2270	
;	  2271	    DTE = .DB [D_REGISTER];
;	  2272	    DTE_EXT (.DTE, .DB [$SUB_FIELD (D_RBA, PHYSICAL_HIGH)]);
;	  2273	    DTE [TO11AD] = .DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)];
;	  2274	    DB [D_RCT] = (if .DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)] eql 0
;	  2275		then .DB [$SUB_FIELD (D_RQZ, CSIZE)]
;	  2276		else MINU (-.DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)],
;	  2277		    .DB [$SUB_FIELD (D_RQZ, CSIZE)]));
;	  2278	    begin
;	  2279	
;	  2280	    local
;	  2281		VALUE : block [1] field (TO11BM, TO11IB, TO11CM);
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  81
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (37)

;	  2282	
;	  2283	    VALUE = 0;
;	  2284	
;	  2285	    if .DB [$SUB_FIELD (D_RQZ, CSIZE)] eql .DB [D_RCT] then VALUE [TO11IB] = 1;
;	  2286	
;	  2287	    VALUE [TO11CM] = -(if .DB [$SUB_FIELD (D_RQZ, TMODE)] eql 0
;	  2288	    then
;	  2289		begin
;	  2290		VALUE [TO11BM] = 1;
;	  2291		.DB [D_RCT]
;	  2292		end
;	  2293	    else
;	  2294		(.DB [D_RCT] + 1)^-1);
;	  2295	
;	  2296	    DTE [TO11BC] = .VALUE;
;	  2297	    end;
;	  2298	    DB [D_LONG_TIMER] = DTE_K_TRANSMIT_DOORBELL_TIMEOUT + 2;
;	  2299	    end;			!of routine RECEIVE_SEGMENT


						.SBTTL	RECEIVE.SEGMENT
000000	012703  000116 			RECEIVE.SEGMENT:
						MOV	#116,R3				;					2259
000004	060503 					ADD	R5,R3				; DB,*
000006	005713 					TST	(R3)
000010	001103 					BNE	7$
000012	005765  000066 				TST	66(R5)				; *(DB)					2261
000016	001500 					BEQ	7$
000020	016501  000064 				MOV	64(R5),R1			; *(DB),*				2263
000024	001475 					BEQ	7$
000026	005765  000120 				TST	120(R5)				; *(DB)					2265
000032	001404 					BEQ	1$
000034	026565  000112  000130 			CMP	112(R5),130(R5)			; *(DB),*(DB)				2266
000042	001066 					BNE	7$				;					2267
000044	032715  020000 			1$:	BIT	#20000,(R5)			; *,DB					2269
000050	001063 					BNE	7$
000052	016502  000002 				MOV	2(R5),R2			; *(DB),DTE				2271
000056	005000 					CLR	R0				; VALUE					2272
000060	016504  000112 				MOV	112(R5),R4			; *(DB),*
000064	072427  000016 				ASH	#16,R4
000070	042700  140000 				BIC	#140000,R0			; *,VALUE
000074	050400 					BIS	R4,R0				; *,VALUE
000076	010062  177744 				MOV	R0,-34(R2)			; VALUE,*(DTE)
000102	016500  000114 				MOV	114(R5),R0			; *(DB),*				2273
000106	010062  177766 				MOV	R0,-12(R2)			; *,*(DTE)
000112	001403 					BEQ	2$				;					2274
000114	005400 					NEG	R0				;					2276
000116	020001 					CMP	R0,R1
000120	101401 					BLOS	3$
000122	010100 				2$:	MOV	R1,R0
000124	010013 				3$:	MOV	R0,(R3)				;					2274
000126	005001 					CLR	R1				; VALUE					2283
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  82
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (37)

000130	026500  000064 				CMP	64(R5),R0			; *(DB),*				2285
000134	001002 					BNE	4$
000136	052701  100000 				BIS	#100000,R1			; *,VALUE
000142	132765  000017  000070 		4$:	BITB	#17,70(R5)			; *,*(DB)				2287
000150	001004 					BNE	5$
000152	052701  020000 				BIS	#20000,R1			; *,VALUE				2290
000156	011300 					MOV	(R3),R0				;					2287
000160	000403 					BR	6$
000162	011300 				5$:	MOV	(R3),R0				;					2294
000164	005200 					INC	R0
000166	006200 					ASR	R0
000170	005400 				6$:	NEG	R0				;					2287
000172	010003 					MOV	R0,R3
000174	042703  170000 				BIC	#170000,R3
000200	042701  007777 				BIC	#7777,R1			; *,VALUE
000204	050301 					BIS	R3,R1				; *,VALUE
000206	010162  177762 				MOV	R1,-16(R2)			; VALUE,*(DTE)				2296
000212	112765  000005  000020 			MOVB	#5,20(R5)			; *,*(DB)				2298
000220	000207 				7$:	RTS	PC				;					2230

; Routine Size:  73 words,	Routine Base:  $CODE$ + 4042
; Maximum stack depth per invocation:  0 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  83
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (38)

;	  2300	routine SCHEDULE_PERSISTENT_AST (CCB, DB) : DTE_CCB_DB novalue =
;	  2301	
;	  2302	!++
;	  2303	! FUNCTIONAL DESCRIPTION:
;	  2304	!
;	  2305	!
;	  2306	! FORMAL PARAMETERS:
;	  2307	!	CCB = address of CCB to use for status nodification.
;	  2308	!	DB = address of DTE data base.
;	  2309	!
;	  2310	! IMPLICIT INPUTS:
;	  2311	!	None
;	  2312	!
;	  2313	! IMPLICIT OUTPUTS:
;	  2314	!	None
;	  2315	!
;	  2316	! ROUTINE VALUE:
;	  2317	! COMPLETION CODES:
;	  2318	!	None
;	  2319	!
;	  2320	! SIDE EFFECTS:
;	  2321	!	None
;	  2322	!--
;	  2323	
;	  2324	    begin
;	  2325	    GET_DTE_DATA_BASE (DB)
;	  2326	
;	  2327	    map
;	  2328		CCB : ref block field (C_FIELDS);
;	  2329	
;	  2330	    CCB [C_HANDLE] = .DB [D_OWNER_HANDLE];
;	  2331	    CCB [C_FNC] = FC_AST;
;	  2332	    CCB [C_MOD] = DLL$K_PERSISTENT_ERROR;
;	  2333	    CCB [C_STS] = .DB [D_PERSISTENT_ERROR];
;	  2334	    $MCB_SCHEDULE_CCB (.CCB);
;	  2335	    DB [D_PERSISTENT_ERROR] = 0;
;	  2336	    end;			!of routine SCHEDULE_PERSISTENT_AST


						.SBTTL	SCHEDULE.PERSISTENT.AST
000000	016564  000022  000010 		SCHEDULE.PERSISTENT.AST:
						MOV	22(R5),10(R4)			; *(DB),*(CCB)				2330
000006	105064  000012 				CLRB	12(R4)				; *(CCB)				2331
000012	112764  000004  000013 			MOVB	#4,13(R4)			; *,*(CCB)				2332
000020	016564  000026  000014 			MOV	26(R5),14(R4)			; *(DB),*(CCB)				2333
000026	004767  000000G				JSR	PC,$SCHED			;					2334
000032	005065  000026 				CLR	26(R5)				; *(DB)					2335
000036	000207 					RTS	PC				;					2300

; Routine Size:  16 words,	Routine Base:  $CODE$ + 4264
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  84
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (39)

;	  2337	routine SCHEDULE_RECEIVE (CCB, DB) : DTE_CCB_DB novalue =
;	  2338	
;	  2339	!++
;	  2340	! FUNCTIONAL DESCRIPTION:
;	  2341	!
;	  2342	!
;	  2343	! FORMAL PARAMETERS:
;	  2344	!	DB = address of DTE data base.
;	  2345	!
;	  2346	! IMPLICIT INPUTS:
;	  2347	!	None
;	  2348	!
;	  2349	! IMPLICIT OUTPUTS:
;	  2350	!	None
;	  2351	!
;	  2352	! ROUTINE VALUE:
;	  2353	! COMPLETION CODES:
;	  2354	!	None
;	  2355	!
;	  2356	! SIDE EFFECTS:
;	  2357	!	None
;	  2358	!--
;	  2359	
;	  2360	    begin
;	  2361	    GET_DTE_DATA_BASE (DB)
;	  2362	
;	  2363	    map
;	  2364		CCB : ref block field (C_FIELDS);
;	  2365	
;	  2366	    CCB [C_HANDLE] = .DB [D_OWNER_HANDLE];
;	  2367	
;	  2368	    if .CCB [C_HANDLE] eqlu 0 then return RDBRT$ (.CCB);
;	  2369	
;	  2370	    DB [D_ACTIVE_BUFFERS] = .DB [D_ACTIVE_BUFFERS] + 1;
;	  2371	    CCB [C_FNC] = FC_RCP;
;	  2372	    CCB [C_MOD] = DLL$K_DATA_RECEIVED;
;	  2373	    CCB [C_STS] = DLL$_SUCCESS;
;	  2374	    $MCB_SCHEDULE_CCB (.CCB);
;	  2375	    end;			!of routine SCHEDULE_RECEIVE


						.SBTTL	SCHEDULE.RECEIVE
000000	010400 				SCHEDULE.RECEIVE:
						MOV	R4,R0				; *,CCB					2337
000002	016560  000022  000010 			MOV	22(R5),10(R0)			; *(DB),*(CCB)				2366
000010	001003 					BNE	1$				;					2368
000012	004767  000000G				JSR	PC,$RDBRT
000016	000207 					RTS	PC
000020	005265  000034 			1$:	INC	34(R5)				; *(DB)					2370
000024	112760  000016  000012 			MOVB	#16,12(R0)			; *,*(CCB)				2371
000032	105060  000013 				CLRB	13(R0)				; *(CCB)				2372
000036	012760  100001  000014 			MOV	#-77777,14(R0)			; *,*(CCB)				2373
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  85
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (39)

000044	010004 					MOV	R0,R4				; CCB,*					2374
000046	004767  000000G				JSR	PC,$SCHED
000052	000207 					RTS	PC				;					2337

; Routine Size:  22 words,	Routine Base:  $CODE$ + 4324
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  86
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (40)

;	  2376	routine SCHEDULE_STATE_AST (CCB, DB) : DTE_CCB_DB novalue =
;	  2377	
;	  2378	!++
;	  2379	! FUNCTIONAL DESCRIPTION:
;	  2380	!
;	  2381	!
;	  2382	! FORMAL PARAMETERS:
;	  2383	!	CCB = address of CCB to use for status nodification.
;	  2384	!	DB = address of DTE data base.
;	  2385	!
;	  2386	! IMPLICIT INPUTS:
;	  2387	!	None
;	  2388	!
;	  2389	! IMPLICIT OUTPUTS:
;	  2390	!	None
;	  2391	!
;	  2392	! ROUTINE VALUE:
;	  2393	! COMPLETION CODES:
;	  2394	!	None
;	  2395	!
;	  2396	! SIDE EFFECTS:
;	  2397	!	None
;	  2398	!--
;	  2399	
;	  2400	    begin
;	  2401	    GET_DTE_DATA_BASE (DB)
;	  2402	
;	  2403	    map
;	  2404		CCB : ref block field (C_FIELDS);
;	  2405	
;	  2406	    if not .DB [DF_NOTIFY_STATE] then return $MCB_RETURN_CCB (.CCB);
;	  2407	
;	  2408	    CCB [C_HANDLE] = .DB [D_OWNER_HANDLE];
;	  2409	    CCB [C_FNC] = FC_AST;
;	  2410	    CCB [C_MOD] = DLL$K_STATE;
;	  2411	    CCB [C_STS] = CURRENT_STATUS (DB [D_TIM]);
;	  2412	    $MCB_SCHEDULE_CCB (.CCB);
;	  2413	
;	  2414	    if .DB [DF_NOTIFY_STATE]
;	  2415	    then
;	  2416	
;	  2417		if $MCB_GET_CCB (CCB)
;	  2418		then
;	  2419		    SCHEDULE_STATE_AST (.CCB, DB [D_TIM])
;	  2420		else
;	  2421		    $MCB_REQUEST_CCB ();
;	  2422	
;	  2423	    end;			!of routine SCHEDULE_STATE_AST


						.GLOBL	$CCBRT, $CCBGT, $CCBRQ
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  87
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (40)


						.SBTTL	SCHEDULE.STATE.AST
000000	010146 				SCHEDULE.STATE.AST:
						MOV	R1,-(SP)			;					2376
000002	010401 					MOV	R4,R1				; *,CCB
000004	032715  004000 				BIT	#4000,(R5)			; *,DB					2406
000010	001003 					BNE	1$
000012	004767  000000G				JSR	PC,$CCBRT
000016	000432 					BR	3$
000020	016561  000022  000010 		1$:	MOV	22(R5),10(R1)			; *(DB),*(CCB)				2408
000026	105061  000012 				CLRB	12(R1)				; *(CCB)				2409
000032	105061  000013 				CLRB	13(R1)				; *(CCB)				2410
000036	004767  174064 				JSR	PC,CURRENT.STATUS		;					2411
000042	010061  000014 				MOV	R0,14(R1)			; *,*(CCB)
000046	010104 					MOV	R1,R4				; CCB,*					2412
000050	004767  000000G				JSR	PC,$SCHED
000054	032715  004000 				BIT	#4000,(R5)			; *,DB					2414
000060	001411 					BEQ	3$
000062	004767  000000G				JSR	PC,$CCBGT			;					2417
000066	103404 					BCS	2$
000070	010401 					MOV	R4,R1				; $MCB$R4,CCB
000072	004767  177702 				JSR	PC,SCHEDULE.STATE.AST		;					2419
000076	000402 					BR	3$				;					2417
000100	004767  000000G			2$:	JSR	PC,$CCBRQ			;					2421
000104	012601 				3$:	MOV	(SP)+,R1			;					2376
000106	000207 					RTS	PC

; Routine Size:  36 words,	Routine Base:  $CODE$ + 4400
; Maximum stack depth per invocation:  2 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  88
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (41)

;	  2424	routine SCHEDULE_TRANSIENT_AST (CCB, DB) : DTE_CCB_DB novalue =
;	  2425	
;	  2426	!++
;	  2427	! FUNCTIONAL DESCRIPTION:
;	  2428	!
;	  2429	!
;	  2430	! FORMAL PARAMETERS:
;	  2431	!	CCB = address of CCB to use for status nodification.
;	  2432	!	DB = address of DTE data base.
;	  2433	!
;	  2434	! IMPLICIT INPUTS:
;	  2435	!	None
;	  2436	!
;	  2437	! IMPLICIT OUTPUTS:
;	  2438	!	None
;	  2439	!
;	  2440	! ROUTINE VALUE:
;	  2441	! COMPLETION CODES:
;	  2442	!	None
;	  2443	!
;	  2444	! SIDE EFFECTS:
;	  2445	!	None
;	  2446	!--
;	  2447	
;	  2448	    begin
;	  2449	      GET_DTE_DATA_BASE (DB)
;	  2450	
;	  2451	    map
;	  2452		CCB : ref block field (C_FIELDS);
;	  2453	
;	  2454	    CCB [C_HANDLE] = .DB [D_OWNER_HANDLE];
;	  2455	    CCB [C_FNC] = FC_AST;
;	  2456	    CCB [C_MOD] = DLL$K_TRANSIENT_ERROR;
;	  2457	    CCB [C_STS] = .DB [D_TRANSIENT_ERROR];
;	  2458	    $MCB_SCHEDULE_CCB (.CCB);
;	  2459	    DB [D_TRANSIENT_ERROR] = 0;
;	  2460	    end;			!of routine SCHEDULE_TRANSIENT_AST


						.SBTTL	SCHEDULE.TRANSIENT.AST
000000	016564  000022  000010 		SCHEDULE.TRANSIENT.AST:
						MOV	22(R5),10(R4)			; *(DB),*(CCB)				2454
000006	105064  000012 				CLRB	12(R4)				; *(CCB)				2455
000012	112764  000002  000013 			MOVB	#2,13(R4)			; *,*(CCB)				2456
000020	016564  000024  000014 			MOV	24(R5),14(R4)			; *(DB),*(CCB)				2457
000026	004767  000000G				JSR	PC,$SCHED			;					2458
000032	005065  000024 				CLR	24(R5)				; *(DB)					2459
000036	000207 					RTS	PC				;					2424

; Routine Size:  16 words,	Routine Base:  $CODE$ + 4510
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  89
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (42)

;	  2461	routine SCHEDULE_TRANSMIT (CCB, DB, STATUS) : DTE_CCB_DB_STS novalue =
;	  2462	
;	  2463	!++
;	  2464	! FUNCTIONAL DESCRIPTION:
;	  2465	!
;	  2466	!
;	  2467	! FORMAL PARAMETERS:
;	  2468	!	DB = address of DTE data base.
;	  2469	!
;	  2470	! IMPLICIT INPUTS:
;	  2471	!	None
;	  2472	!
;	  2473	! IMPLICIT OUTPUTS:
;	  2474	!	None
;	  2475	!
;	  2476	! ROUTINE VALUE:
;	  2477	! COMPLETION CODES:
;	  2478	!	None
;	  2479	!
;	  2480	! SIDE EFFECTS:
;	  2481	!	None
;	  2482	!--
;	  2483	
;	  2484	    begin
;	  2485	    GET_DTE_DATA_BASE (DB)
;	  2486	
;	  2487	    map
;	  2488		CCB : ref block field (C_FIELDS);
;	  2489	
;	  2490	    CCB [C_FNC] = FC_XCP;
;	  2491	    CCB [C_STS] = .STATUS;
;	  2492	    $MCB_SCHEDULE_CCB (.CCB);
;	  2493	    DB [D_ACTIVE_BUFFERS] = .DB [D_ACTIVE_BUFFERS] - 1;
;	  2494	
;	  2495	    if .DB [D_ACTIVE_BUFFERS] neq 0 then return;
;	  2496	
;	  2497	    if .DB [DF_CONTROL_WAITING]
;	  2498	    then
;	  2499		begin
;	  2500		DB [DF_CONTROL_WAITING] = FALSE;
;	  2501		FLUSH_QUEUE (DB [D_PENDING_CONTROLS], %quote $MCB_SCHEDULE_CCB);
;	  2502		end;
;	  2503	
;	  2504	    end;			!of routine SCHEDULE_TRANSMIT


						.SBTTL	SCHEDULE.TRANSMIT
000000	010346 				SCHEDULE.TRANSMIT:
						MOV	R3,-(SP)			;					2461
000002	112764  000014  000012 			MOVB	#14,12(R4)			; *,*(CCB)				2490
000010	010064  000014 				MOV	R0,14(R4)			; STATUS,*(CCB)				2491
000014	004767  000000G				JSR	PC,$SCHED			;					2492
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  90
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (42)

000020	005365  000034 				DEC	34(R5)				; *(DB)					2493
000024	001016 					BNE	2$				;					2495
000026	032715  010000 				BIT	#10000,(R5)			; *,DB					2497
000032	001413 					BEQ	2$
000034	042715  010000 				BIC	#10000,(R5)			; *,DB					2500
000040	012703  000030 				MOV	#30,R3				;					2501
000044	060503 					ADD	R5,R3				; DB,*
000046	004767  000000G			1$:	JSR	PC,$CMQRM
000052	103403 					BCS	2$
000054	004767  000000G				JSR	PC,$SCHED
000060	000772 					BR	1$
000062	012603 				2$:	MOV	(SP)+,R3			;					2461
000064	000207 					RTS	PC

; Routine Size:  27 words,	Routine Base:  $CODE$ + 4550
; Maximum stack depth per invocation:  2 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  91
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (43)

;	  2505	routine SEND_PERSISTENT_ERROR (DB, STATUS) : DTE_DB_STS novalue =
;	  2506	
;	  2507	!++
;	  2508	! FUNCTIONAL DESCRIPTION:
;	  2509	!
;	  2510	!
;	  2511	! FORMAL PARAMETERS:
;	  2512	!	DB = address of DTE data base.
;	  2513	!
;	  2514	! IMPLICIT INPUTS:
;	  2515	!	None
;	  2516	!
;	  2517	! IMPLICIT OUTPUTS:
;	  2518	!	None
;	  2519	!
;	  2520	! ROUTINE VALUE:
;	  2521	! COMPLETION CODES:
;	  2522	!	None
;	  2523	!
;	  2524	! SIDE EFFECTS:
;	  2525	!	None
;	  2526	!--
;	  2527	
;	  2528	    begin
;	  2529	    GET_DTE_DATA_BASE (DB)
;	  2530	
;	  2531	    local
;	  2532		CCB : ref block field (C_FIELDS);
;	  2533	
;	  2534	    if .DB [D_OWNER_HANDLE] eql 0 then return;
;	  2535	
;	  2536	    DB [D_PERSISTENT_ERROR] = .STATUS;
;	  2537	
;	  2538	    if $MCB_GET_CCB (CCB)
;	  2539	    then
;	  2540		SCHEDULE_PERSISTENT_AST (.CCB, DB [D_TIM])
;	  2541	    else
;	  2542		$MCB_REQUEST_CCB ();
;	  2543	
;	  2544	    end;			!of routine SEND_PERSISTENT_ERROR


						.SBTTL	SEND.PERSISTENT.ERROR
000000	005765  000022 			SEND.PERSISTENT.ERROR:
						TST	22(R5)				; *(DB)					2534
000004	001412 					BEQ	2$
000006	010065  000026 				MOV	R0,26(R5)			; STATUS,*(DB)				2536
000012	004767  000000G				JSR	PC,$CCBGT			;					2538
000016	103403 					BCS	1$
000020	004767  177402 				JSR	PC,SCHEDULE.PERSISTENT.AST	;					2540
000024	000207 					RTS	PC				;					2538
000026	004767  000000G			1$:	JSR	PC,$CCBRQ			;					2542
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  92
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (43)

000032	000207 				2$:	RTS	PC				;					2505

; Routine Size:  14 words,	Routine Base:  $CODE$ + 4636
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  93
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (44)

;	  2545	routine SEND_STATE (DB) : DTE_DB novalue =
;	  2546	
;	  2547	!++
;	  2548	! FUNCTIONAL DESCRIPTION:
;	  2549	!
;	  2550	!
;	  2551	! FORMAL PARAMETERS:
;	  2552	!	DB = address of DTE data base.
;	  2553	!
;	  2554	! IMPLICIT INPUTS:
;	  2555	!	None
;	  2556	!
;	  2557	! IMPLICIT OUTPUTS:
;	  2558	!	None
;	  2559	!
;	  2560	! ROUTINE VALUE:
;	  2561	! COMPLETION CODES:
;	  2562	!	None
;	  2563	!
;	  2564	! SIDE EFFECTS:
;	  2565	!	None
;	  2566	!--
;	  2567	
;	  2568	    begin
;	  2569	    GET_DTE_DATA_BASE (DB)
;	  2570	
;	  2571	    local
;	  2572		CCB : ref block field (C_FIELDS);
;	  2573	
;	  2574	    if .DB [D_OWNER_HANDLE] eql 0 then return;
;	  2575	
;	  2576	    if .DB [D_PROTOCOL_STATE] eql DS_HALTED then DB [DF_NOTIFY_OFF] = TRUE;
;	  2577	
;	  2578	    DB [DF_NOTIFY_STATE] = TRUE;
;	  2579	
;	  2580	    if $MCB_GET_CCB (CCB)
;	  2581	    then
;	  2582		SCHEDULE_STATE_AST (.CCB, DB [D_TIM])
;	  2583	    else
;	  2584		$MCB_REQUEST_CCB ();
;	  2585	
;	  2586	    end;			!of routine SEND_STATE


						.SBTTL	SEND.STATE
000000	005765  000022 			SEND.STATE:
						TST	22(R5)				; *(DB)					2574
000004	001417 					BEQ	3$
000006	105765  000012 				TSTB	12(R5)				; *(DB)					2576
000012	001002 					BNE	1$
000014	052715  002000 				BIS	#2000,(R5)			; *,DB
000020	052715  004000 			1$:	BIS	#4000,(R5)			; *,DB					2578
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  94
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (44)

000024	004767  000000G				JSR	PC,$CCBGT			;					2580
000030	103403 					BCS	2$
000032	004767  177450 				JSR	PC,SCHEDULE.STATE.AST		;					2582
000036	000207 					RTS	PC				;					2580
000040	004767  000000G			2$:	JSR	PC,$CCBRQ			;					2584
000044	000207 				3$:	RTS	PC				;					2545

; Routine Size:  19 words,	Routine Base:  $CODE$ + 4672
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  95
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (45)

;	  2587	routine SEND_TRANSIENT_ERROR (DB, STATUS) : DTE_DB_STS novalue =
;	  2588	
;	  2589	!++
;	  2590	! FUNCTIONAL DESCRIPTION:
;	  2591	!
;	  2592	!
;	  2593	! FORMAL PARAMETERS:
;	  2594	!	DB = address of DTE data base.
;	  2595	!
;	  2596	! IMPLICIT INPUTS:
;	  2597	!	None
;	  2598	!
;	  2599	! IMPLICIT OUTPUTS:
;	  2600	!	None
;	  2601	!
;	  2602	! ROUTINE VALUE:
;	  2603	! COMPLETION CODES:
;	  2604	!	None
;	  2605	!
;	  2606	! SIDE EFFECTS:
;	  2607	!	None
;	  2608	!--
;	  2609	
;	  2610	    begin
;	  2611	    GET_DTE_DATA_BASE (DB)
;	  2612	
;	  2613	    local
;	  2614		CCB : ref block field (C_FIELDS);
;	  2615	
;	  2616	    if .DB [D_OWNER_HANDLE] eql 0 then return;
;	  2617	
;	  2618	    DB [D_TRANSIENT_ERROR] = .STATUS;
;	  2619	
;	  2620	    if $MCB_GET_CCB (CCB)
;	  2621	    then
;	  2622		SCHEDULE_TRANSIENT_AST (.CCB, DB [D_TIM])
;	  2623	    else
;	  2624		$MCB_REQUEST_CCB ();
;	  2625	
;	  2626	    end;			!of routine SEND_TRANSIENT_ERROR


						.SBTTL	SEND.TRANSIENT.ERROR
000000	005765  000022 			SEND.TRANSIENT.ERROR:
						TST	22(R5)				; *(DB)					2616
000004	001412 					BEQ	2$
000006	010065  000024 				MOV	R0,24(R5)			; STATUS,*(DB)				2618
000012	004767  000000G				JSR	PC,$CCBGT			;					2620
000016	103403 					BCS	1$
000020	004767  177524 				JSR	PC,SCHEDULE.TRANSIENT.AST	;					2622
000024	000207 					RTS	PC				;					2620
000026	004767  000000G			1$:	JSR	PC,$CCBRQ			;					2624
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  96
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (45)

000032	000207 				2$:	RTS	PC				;					2587

; Routine Size:  14 words,	Routine Base:  $CODE$ + 4740
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  97
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (46)

;	  2627	routine TIMCCB (DB, CCB) : MCB_DB_CCB novalue =
;	  2628	
;	  2629	!++
;	  2630	! FUNCTIONAL DESCRIPTION:
;	  2631	!
;	  2632	!
;	  2633	! FORMAL PARAMETERS:
;	  2634	!	DB = address of DTE data base.
;	  2635	!	CCB = 
;	  2636	!
;	  2637	! IMPLICIT INPUTS:
;	  2638	!	None
;	  2639	!
;	  2640	! IMPLICIT OUTPUTS:
;	  2641	!	None
;	  2642	!
;	  2643	! ROUTINE VALUE:
;	  2644	! COMPLETION CODES:
;	  2645	!	None
;	  2646	!
;	  2647	! SIDE EFFECTS:
;	  2648	!	None
;	  2649	!--
;	  2650	
;	  2651	    begin
;	  2652	    GET_DTE_DATA_BASE (DB)
;	  2653	
;	  2654	    map
;	  2655		CCB : ref block field (C_FIELDS);
;	  2656	
;	  2657	    label
;	  2658		RECOVERY;
;	  2659	
;	  2660	    if .DB [D_OWNER_HANDLE] eql 0 then return $MCB_RETURN_CCB (.CCB);
;	  2661	
;	  2662	    do RECOVERY :
;	  2663		begin
;	  2664	
;	  2665		if .DB [DF_NOTIFY_STATE] or .DB [DF_NOTIFY_OFF]
;	  2666		then
;	  2667		    leave RECOVERY with SCHEDULE_STATE_AST (.CCB, DB [D_TIM]);
;	  2668	
;	  2669		if .DB [D_TRANSIENT_ERROR] neq 0
;	  2670		then
;	  2671		    leave RECOVERY with SCHEDULE_TRANSIENT_AST (.CCB, DB [D_TIM]);
;	  2672	
;	  2673		if .DB [D_PERSISTENT_ERROR] neq 0
;	  2674		then
;	  2675		    leave RECOVERY with SCHEDULE_PERSISTENT_AST (.CCB, DB [D_TIM]);
;	  2676	
;	  2677		return $MCB_RETURN_CCB (.CCB);
;	  2678		end
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  98
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (46)

;	  2679	    while $MCB_GET_CCB (CCB);
;	  2680	
;	  2681	    end;			!of routine TIMCCB


						.SBTTL	TIMCCB
000000	010401 				TIMCCB: MOV	R4,R1				; *,CCB					2627
000002	005765  000022 				TST	22(R5)				; *(DB)					2660
000006	001430 					BEQ	5$
000010	032715  004000 			1$:	BIT	#4000,(R5)			; *,DB					2665
000014	001003 					BNE	2$
000016	032715  002000 				BIT	#2000,(R5)			; *,DB
000022	001404 					BEQ	3$
000024	010104 				2$:	MOV	R1,R4				; CCB,*					2667
000026	004767  177352 				JSR	PC,SCHEDULE.STATE.AST
000032	000422 					BR	7$
000034	005765  000024 			3$:	TST	24(R5)				; *(DB)					2669
000040	001404 					BEQ	4$
000042	010104 					MOV	R1,R4				; CCB,*					2671
000044	004767  177444 				JSR	PC,SCHEDULE.TRANSIENT.AST
000050	000413 					BR	7$
000052	005765  000026 			4$:	TST	26(R5)				; *(DB)					2673
000056	001404 					BEQ	5$
000060	010104 					MOV	R1,R4				; CCB,*					2675
000062	004767  177202 				JSR	PC,SCHEDULE.PERSISTENT.AST
000066	000404 					BR	7$
000070	010104 				5$:	MOV	R1,R4				; CCB,*					2677
000072	004767  000000G				JSR	PC,$CCBRT
000076	000207 				6$:	RTS	PC				;					2662
000100	004767  000000G			7$:	JSR	PC,$CCBGT			;					2679
000104	103774 					BCS	6$
000106	010401 					MOV	R4,R1				; $MCB$R4,CCB
000110	000737 					BR	1$

; Routine Size:  37 words,	Routine Base:  $CODE$ + 4774
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page  99
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (47)

;	  2682	routine TIMLTM (DB) : MCB_DB novalue =
;	  2683	
;	  2684	!++
;	  2685	! FUNCTIONAL DESCRIPTION:
;	  2686	!
;	  2687	!
;	  2688	! FORMAL PARAMETERS:
;	  2689	!	DB = address of DTE data base.
;	  2690	!
;	  2691	! IMPLICIT INPUTS:
;	  2692	!	None
;	  2693	!
;	  2694	! IMPLICIT OUTPUTS:
;	  2695	!	None
;	  2696	!
;	  2697	! ROUTINE VALUE:
;	  2698	! COMPLETION CODES:
;	  2699	!	None
;	  2700	!
;	  2701	! SIDE EFFECTS:
;	  2702	!	None
;	  2703	!--
;	  2704	
;	  2705	    begin
;	  2706	    GET_DTE_DATA_BASE (DB)
;	  2707	    DB [D_TIM] = .DB [D_TIM] + 1;
;	  2708	
;	  2709	    if .DB [D_DEVICE_STATE] eql DD_CLEARED then return;
;	  2710	
;	  2711	    !
;	  2712	    ! Update my keep-alive and get his status.
;	  2713	    ! Handle lost doorbells
;	  2714	    !
;	  2715	
;	  2716	    case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
;	  2717		set
;	  2718	
;	  2719		[DS_INITIALIZING, DS_RUNNING, DS_PAUSED] :
;	  2720		    begin
;	  2721		    DB [D_MKA] = .DB [D_MKA] + 1;
;	  2722		    DEPMYG (DB [D_TIM], KPALIV, DB [D_MKA]);
;	  2723		    GET_HIS_STATUS (DB [D_TIM]);
;	  2724	
;	  2725		    if DTE_RINGING (.DB [D_REGISTER])
;	  2726		    then
;	  2727			ANSWER_DOORBELL (DB [D_TIM]);
;	  2728	
;	  2729		    if .DB [D_PROTOCOL_STATE] EQL DS_RUNNING
;	  2730		    then
;	  2731	
;	  2732			if not PAUSED (DB [D_TIM])
;	  2733			then
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 100
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (47)

;	  2734	
;	  2735			    if not INITIALIZATION_REQUESTED (DB [D_TIM])
;	  2736			    then
;	  2737				begin
;	  2738				TRANSMIT_MESSAGE (DB [D_TIM]);
;	  2739				RECEIVE_MESSAGE (DB [D_TIM]);
;	  2740				end;
;	  2741	
;	  2742		    end;
;	  2743	
;	  2744		[inrange] :
;	  2745		    NO_OPERATION;
;	  2746	
;	  2747		tes;
;	  2748	
;	  2749	    if .DB [D_LONG_TIMER] neq 0
;	  2750	    then
;	  2751	
;	  2752		if (DB [D_LONG_TIMER] = .DB [D_LONG_TIMER] - 1) eql 0
;	  2753		then
;	  2754	
;	  2755		    case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
;	  2756			set
;	  2757	
;	  2758			[DS_COM] :
;	  2759			    begin
;	  2760			    GETCOM (DB [D_TIM]);
;	  2761	
;	  2762			    if .DB [D_PROTOCOL_STATE] eql DS_COM
;	  2763			    then %(device not ready)%
;	  2764	
;	  2765				if (DB [D_START_THRESHOLD] = .DB [D_START_THRESHOLD] - 1) eql 0
;	  2766				then
;	  2767				    begin
;	  2768				    SEND_TRANSIENT_ERROR (DB [D_TIM], DLL$_TRANSMIT_THRESHOLD);
;	  2769				    DB [D_START_THRESHOLD] = 7;
;	  2770				    end;
;	  2771	
;	  2772			    end;
;	  2773	
;	  2774			[DS_INITIALIZING] :
;	  2775			    begin %(initialization timeout)%
;	  2776			    DB [D_LONG_TIMER] = DTE_K_START_TIMEOUT;
;	  2777	
;	  2778			    if (DB [D_START_THRESHOLD] = .DB [D_START_THRESHOLD] - 1) eql 0
;	  2779			    then
;	  2780				begin
;	  2781				SEND_TRANSIENT_ERROR (DB [D_TIM], DLL$_TRANSMIT_THRESHOLD);
;	  2782				DB [D_START_THRESHOLD] = 7;
;	  2783				end;
;	  2784	
;	  2785			    end;
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 101
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (47)

;	  2786	
;	  2787			[DS_RUNNING] :
;	  2788				begin
;	  2789				if .DB[ $sub_field( D_RST, RCV)] eql 0
;	  2790				then
;	  2791					begin
;	  2792					COUNTER_INCREMENT( DB, D_LOST_DOORBELL);
;	  2793					COUNTER_INCREMENT( DB, D_DEVICE_SERVICE_ERRORS);
;	  2794					DTE_SET ( .DB[ D_REGISTER], INT10S);
;	  2795					DB[ D_LONG_TIMER] = DTE_K_TRANSMIT_DOORBELL_TIMEOUT;
;	  2796					end;
;	  2797				end;
;	  2798	
;	  2799			[DS_PAUSED] :
;	  2800			    if .DB [$SUB_FIELD (D_RST, V)]
;	  2801			    then
;	  2802				begin
;	  2803				CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_RUNNING, RMT);
;	  2804	
;	  2805				if not INITIALIZATION_REQUESTED (DB [D_TIM])
;	  2806				then
;	  2807				    begin
;	  2808				    TRANSMIT_MESSAGE (DB [D_TIM]);
;	  2809				    RECEIVE_MESSAGE (DB [D_TIM]);
;	  2810				    end;
;	  2811				end
;	  2812			    else
;	  2813				begin
;	  2814				SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_PAUSE_TIMEOUT);
;	  2815							! Pause too long
;	  2816				DEVICE_BROKEN (DB [D_TIM]);
;	  2817				end;
;	  2818	
;	  2819			[inrange] :
;	  2820			    NO_OPERATION;
;	  2821	
;	  2822			tes;
;	  2823	
;	  2824	    end;			!of routine TIMLTM


						.SBTTL	TIMLTM
000000	024646 				TIMLTM: CMP	-(SP),-(SP)			;					2682
000002	105215 					INCB	(R5)				; DB					2707
000004	105765  000016 				TSTB	16(R5)				; *(DB)					2709
000010	001577 					BEQ	8$
000012	012766  000012  000002 			MOV	#12,2(SP)			;					2716
000020	060566  000002 				ADD	R5,2(SP)			; DB,*
000024	117600  000002 				MOVB	@2(SP),R0
000030	006300 					ASL	R0
000032	066007  000174'				ADD	P.AAL(R0),PC			; Case dispatch
000036	005265  000106 			1$:	INC	106(R5)				; *(DB)					2721
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 102
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (47)

000042	012703  000106 				MOV	#106,R3				;					2722
000046	060503 					ADD	R5,R3				; DB,*
000050	012702  000005 				MOV	#5,R2
000054	004767  173436 				JSR	PC,DEPMYG
000060	004767  174752 				JSR	PC,GET.HIS.STATUS		;					2723
000064	032775  004000  000002 			BIT	#4000,@2(R5)			; *,*(DB)				2725
000072	001402 					BEQ	2$
000074	004767  172572 				JSR	PC,ANSWER.DOORBELL		;					2727
000100	127627  000002  000003 		2$:	CMPB	@2(SP),#3			;					2729
000106	001014 					BNE	3$
000110	004767  176010 				JSR	PC,PAUSED			;					2732
000114	006000 					ROR	R0
000116	103410 					BLO	3$
000120	004767  175642 				JSR	PC,INITIALIZATION.REQUESTED	;					2735
000124	006000 					ROR	R0
000126	103404 					BLO	3$
000130	004767  000000V				JSR	PC,TRANSMIT.MESSAGE		;					2738
000134	004767  176146 				JSR	PC,RECEIVE.MESSAGE		;					2739
000140	012716  000020 			3$:	MOV	#20,(SP)			;					2749
000144	060516 					ADD	R5,(SP)				; DB,*
000146	105776  000000 				TSTB	@0(SP)
000152	001551 					BEQ	12$
000154	005000 					CLR	R0				;					2752
000156	157600  000000 				BISB	@0(SP),R0
000162	005300 					DEC	R0
000164	110076  000000 				MOVB	R0,@0(SP)
000170	005700 					TST	R0
000172	001141 					BNE	12$
000174	117600  000002 				MOVB	@2(SP),R0			;					2755
000200	006300 					ASL	R0
000202	066007  000206'				ADD	P.AAM(R0),PC			; Case dispatch
000206	004767  174656 			4$:	JSR	PC,GETCOM			;					2760
000212	127627  000002  000001 			CMPB	@2(SP),#1			;					2762
000220	001126 					BNE	12$
000222	017600  000000 				MOV	@0(SP),R0			;					2765
000226	105000 					CLRB	R0
000230	000300 					SWAB	R0
000232	005300 					DEC	R0
000234	017646  000000 				MOV	@0(SP),-(SP)
000240	110066  000001 				MOVB	R0,1(SP)
000244	012676  000000 				MOV	(SP)+,@0(SP)
000250	005700 					TST	R0
000252	001111 					BNE	12$
000254	000420 					BR	6$				;					2768
000256	112776  000005  000000 		5$:	MOVB	#5,@0(SP)			;					2776
000264	017600  000000 				MOV	@0(SP),R0			;					2778
000270	105000 					CLRB	R0
000272	000300 					SWAB	R0
000274	005300 					DEC	R0
000276	017646  000000 				MOV	@0(SP),-(SP)
000302	110066  000001 				MOVB	R0,1(SP)
000306	012676  000000 				MOV	(SP)+,@0(SP)
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 103
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (47)

000312	005700 					TST	R0
000314	001070 					BNE	12$
000316	012700  100100 			6$:	MOV	#-77700,R0			;					2781
000322	004767  177304 				JSR	PC,SEND.TRANSIENT.ERROR
000326	042776  177400  000000 			BIC	#177400,@0(SP)			;					2782
000334	052776  003400  000000 			BIS	#3400,@0(SP)
000342	000455 					BR	12$				;					2755
000344	132765  000001  000060 		7$:	BITB	#1,60(R5)			; *,*(DB)				2789
000352	001051 					BNE	12$
000354	052765  010000  000164 			BIS	#10000,164(R5)			; *,*(DB)				2792
000362	012700  000164 				MOV	#164,R0				;					2793
000366	060500 					ADD	R5,R0				; DB,*
000370	004767  000000G				JSR	PC,$IC8
000374	012775  000400  000002 			MOV	#400,@2(R5)			; *,*(DB)				2794
000402	112776  000003  000000 			MOVB	#3,@0(SP)			;					2795
000410	000432 				8$:	BR	12$				;					2755
000412	132765  000001  000062 		9$:	BITB	#1,62(R5)			; *,*(DB)				2800
000420	001420 					BEQ	11$
000422	012746  000003 				MOV	#3,-(SP)			;					2803
000426	012746  000001 				MOV	#1,-(SP)
000432	004767  172526 				JSR	PC,CHANGE.PROTOCOL.STATE
000436	004767  175324 				JSR	PC,INITIALIZATION.REQUESTED	;					2805
000442	006000 					ROR	R0
000444	103404 					BLO	10$
000446	004767  000000V				JSR	PC,TRANSMIT.MESSAGE		;					2808
000452	004767  175630 				JSR	PC,RECEIVE.MESSAGE		;					2809
000456	022626 				10$:	CMP	(SP)+,(SP)+			;					2802
000460	000406 					BR	12$				;					2800
000462	012700  100200 			11$:	MOV	#-77600,R0			;					2814
000466	004767  177036 				JSR	PC,SEND.PERSISTENT.ERROR
000472	004767  173040 				JSR	PC,DEVICE.BROKEN		;					2816
000476	022626 				12$:	CMP	(SP)+,(SP)+			;					2682
000500	000207 					RTS	PC

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


000174						.PSECT	$PLIT$,  RO ,  D  

					P.AAL:						; CASE Table for TIMLTM+0032		2716
000174	000102 					.WORD	102				; [3$]
000176	000102 					.WORD	102				; [3$]
000200	000000 					.WORD	0				; [1$]
000202	000000 					.WORD	0				; [1$]
000204	000000 					.WORD	0				; [1$]

					P.AAM:						; CASE Table for TIMLTM+0202		2755
000206	000270 					.WORD	270				; [12$]
000210	000000 					.WORD	0				; [4$]
000212	000050 					.WORD	50				; [5$]
000214	000136 					.WORD	136				; [7$]
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 104
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (47)

000216	000204 					.WORD	204				; [9$]
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 105
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (48)

;	  2825	routine TIMPIN (DB) : MCB_DB novalue =
;	  2826	
;	  2827	!++
;	  2828	! FUNCTIONAL DESCRIPTION:
;	  2829	!
;	  2830	!
;	  2831	! FORMAL PARAMETERS:
;	  2832	!	DB = address of DTE data base.
;	  2833	!
;	  2834	! IMPLICIT INPUTS:
;	  2835	!	None
;	  2836	!
;	  2837	! IMPLICIT OUTPUTS:
;	  2838	!	None
;	  2839	!
;	  2840	! ROUTINE VALUE:
;	  2841	! COMPLETION CODES:
;	  2842	!	None
;	  2843	!
;	  2844	! SIDE EFFECTS:
;	  2845	!	None
;	  2846	!--
;	  2847	
;	  2848	    begin
;	  2849	    GET_DTE_DATA_BASE (DB)
;	  2850	    DTEDBI ();
;	  2851	    DTEDVI ();
;	  2852	    DTENMI ();
;	  2853	
;	  2854	    if .DB [D_LINE_STATE] eql DL_ON
;	  2855	    then
;	  2856		$MCB_ENABLE_LONG_TIMER ();
;	  2857	
;	  2858	    end;			!of routine TIMPIN


						.GLOBL	$LTMEN


						.SBTTL	TIMPIN
005610						.PSECT	$CODE$,  RO 

000000	004767  000000G			TIMPIN: JSR	PC,DTEDBI			;					2850
000004	004767  000000G				JSR	PC,DTEDVI			;					2851
000010	004767  000000G				JSR	PC,DTENMI			;					2852
000014	105765  000015 				TSTB	15(R5)				; *(DB)					2854
000020	001002 					BNE	1$
000022	004767  000000G				JSR	PC,$LTMEN			;					2856
000026	000207 				1$:	RTS	PC				;					2825

; Routine Size:  12 words,	Routine Base:  $CODE$ + 5610
; Maximum stack depth per invocation:  1 word
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 106
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (49)

;	  2859	routine TIMPWF (DB) : MCB_DB novalue =
;	  2860	
;	  2861	!++
;	  2862	! FUNCTIONAL DESCRIPTION:
;	  2863	!
;	  2864	!
;	  2865	! FORMAL PARAMETERS:
;	  2866	!	DB = address of DTE data base.
;	  2867	!
;	  2868	! IMPLICIT INPUTS:
;	  2869	!	None
;	  2870	!
;	  2871	! IMPLICIT OUTPUTS:
;	  2872	!	None
;	  2873	!
;	  2874	! ROUTINE VALUE:
;	  2875	! COMPLETION CODES:
;	  2876	!	None
;	  2877	!
;	  2878	! SIDE EFFECTS:
;	  2879	!	None
;	  2880	!--
;	  2881	
;	  2882	    begin
;	  2883	    SIGNAL_STOP (DTE$_PWF);
;	  2884	    end;			!of routine TIMPWF


						.SBTTL	TIMPWF
000000	012746  100024 			TIMPWF: MOV	#-77754,-(SP)			;					2883
000004	012746  000001 				MOV	#1,-(SP)
000010	004767  000000G				JSR	PC,$STOP
000014	022626 					CMP	(SP)+,(SP)+			;					2882
000016	000207 					RTS	PC				;					2859

; Routine Size:  8 words,	Routine Base:  $CODE$ + 5640
; Maximum stack depth per invocation:  3 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 107
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (50)

;	  2885	routine TIMRDB (DB, CCB) : MCB_DB_CCB novalue =
;	  2886	
;	  2887	!++
;	  2888	! FUNCTIONAL DESCRIPTION:
;	  2889	!
;	  2890	!
;	  2891	! FORMAL PARAMETERS:
;	  2892	!	DB = address of DTE data base.
;	  2893	!	CCB = address of requested RDB.
;	  2894	!
;	  2895	! IMPLICIT INPUTS:
;	  2896	!	None
;	  2897	!
;	  2898	! IMPLICIT OUTPUTS:
;	  2899	!	None
;	  2900	!
;	  2901	! ROUTINE VALUE:
;	  2902	! COMPLETION CODES:
;	  2903	!	None
;	  2904	!
;	  2905	! SIDE EFFECTS:
;	  2906	!	None
;	  2907	!--
;	  2908	
;	  2909	    begin
;	  2910	    GET_DTE_DATA_BASE (DB)
;	  2911	
;	  2912	    if .DB [D_RCB] neqa 0 then return RDBRT$ (.CCB);
;	  2913	
;	  2914	    case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
;	  2915		set
;	  2916	
;	  2917		[DS_RUNNING] :
;	  2918		    begin
;	  2919		    NEW_RCB (DB [D_TIM], .CCB);
;	  2920		    RECEIVE_MESSAGE (DB [D_TIM]);
;	  2921		    end;
;	  2922	
;	  2923		[DS_PAUSED] :
;	  2924		    NEW_RCB (DB [D_TIM], .CCB);
;	  2925	
;	  2926		[inrange] :
;	  2927		    RDBRT$ (.CCB);
;	  2928	
;	  2929		tes;
;	  2930	
;	  2931	    end;			!of routine TIMRDB


						.SBTTL	TIMRDB
000000	010400 				TIMRDB: MOV	R4,R0				; *,CCB					2885
000002	005765  000110 				TST	110(R5)				; *(DB)					2912
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 108
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (50)

000006	001020 					BNE	4$
000010	116501  000012 				MOVB	12(R5),R1			; *(DB),*				2914
000014	006301 					ASL	R1
000016	066107  000220'				ADD	P.AAN(R1),PC			; Case dispatch
000022	010046 				1$:	MOV	R0,-(SP)			; CCB,*					2919
000024	004767  175222 				JSR	PC,NEW.RCB
000030	004767  175500 				JSR	PC,RECEIVE.MESSAGE		;					2920
000034	000403 					BR	3$				;					2918
000036	010046 				2$:	MOV	R0,-(SP)			; CCB,*					2924
000040	004767  175206 				JSR	PC,NEW.RCB
000044	005726 				3$:	TST	(SP)+
000046	000207 					RTS	PC				;					2914
000050	010004 				4$:	MOV	R0,R4				; CCB,*					2927
000052	004767  000000G				JSR	PC,$RDBRT
000056	000207 					RTS	PC				;					2885

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


000220						.PSECT	$PLIT$,  RO ,  D  

					P.AAN:						; CASE Table for TIMRDB+0016		2914
000220	000026 					.WORD	26				; [4$]
000222	000026 					.WORD	26				; [4$]
000224	000026 					.WORD	26				; [4$]
000226	000000 					.WORD	0				; [1$]
000230	000014 					.WORD	14				; [2$]
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 109
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (51)

;	  2932	routine TRANSMIT_MESSAGE (DB) : DTE_DB novalue =
;	  2933	
;	  2934	!++
;	  2935	! FUNCTIONAL DESCRIPTION:
;	  2936	!
;	  2937	!
;	  2938	! FORMAL PARAMETERS:
;	  2939	!	DB = address of DTE data base.
;	  2940	!
;	  2941	! IMPLICIT INPUTS:
;	  2942	!	None
;	  2943	!
;	  2944	! IMPLICIT OUTPUTS:
;	  2945	!	None
;	  2946	!
;	  2947	! ROUTINE VALUE:
;	  2948	! COMPLETION CODES:
;	  2949	!	None
;	  2950	!
;	  2951	! SIDE EFFECTS:
;	  2952	!	None
;	  2953	!--
;	  2954	
;	  2955	    begin
;	  2956	    GET_DTE_DATA_BASE (DB)
;	  2957	
;	  2958	    if .DB [$SUB_FIELD (D_XQZ, PSIZE)] eql 0 and .DB [$SUB_FIELD (D_XMQ, LIST_FIRST)] neq 0
;	  2959	    then
;	  2960		begin
;	  2961	
;	  2962		local
;	  2963		    CCB : ref block field (C_FIELDS);
;	  2964	
;	  2965		CCB = .DB [$SUB_FIELD (D_XMQ, LIST_FIRST)];
;	  2966		DB [D_XLN] = 0;
;	  2967	
;	  2968		if .CCB [C_CHN] eql 0
;	  2969		then
;	  2970		    begin
;	  2971		    DB [D_XCB] = .CCB;
;	P 2972		    $MCB_CONVERT_TO_UBA_ADDRESS ((.CCB [C_BIAS], .CCB [C_ADDR]),
;	P 2973			DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)],
;	  2974			DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)]);
;	  2975		    DB [D_XCT] = .CCB [C_CNT];
;	  2976	
;	  2977		    do
;	  2978			DB [D_XLN] = .DB [D_XLN] + .CCB [C_CNT]
;	  2979		    while (CCB = .CCB [C_CHN]) neq 0;
;	  2980	
;	  2981		    end
;	  2982		else
;	  2983		    begin
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 110
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (51)

;	  2984		    DB [D_XCB] = 0;
;	P 2985		    $MCB_CONVERT_TO_UBA_ADDRESS ((.DB_BIAS, DB [D_XBUF]),
;	P 2986			DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)],
;	  2987			DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)]);
;	  2988	
;	  2989		    begin
;	  2990	
;	  2991		    local
;	  2992			LENGTH;
;	  2993	
;	  2994		    LENGTH = $MCB_COPY_CHAIN_TO_BUFFER (.CCB, (.DB_BIAS, DB [D_XBUF]));
;	  2995		    MAP$ (.DB_BIAS);
;	  2996		    DB [D_XCT] = DB [D_XLN] = .LENGTH;
;	  2997		    end;
;	  2998		    end;
;	  2999	
;	  3000		DB [$SUB_FIELD (D_XQZ, PSIZE)] = .DB [D_XLN];
;	  3001		end;
;	  3002	
;	  3003	    TRANSMIT_SEGMENT (DB [D_TIM]);
;	  3004	    end;			!of routine TRANSMIT_MESSAGE


						.GLOBL	$CPTBF, KISAR6


						.SBTTL	TRANSMIT.MESSAGE
005740						.PSECT	$CODE$,  RO 

000000	005746 				TRANSMIT.MESSAGE:
						TST	-(SP)				;					2932
000002	012701  000102 				MOV	#102,R1				;					2958
000006	060501 					ADD	R5,R1				; DB,*
000010	005711 					TST	(R1)
000012	001100 					BNE	4$
000014	005765  000120 				TST	120(R5)				; *(DB)
000020	001475 					BEQ	4$
000022	016504  000120 				MOV	120(R5),R4			; *(DB),CCB				2965
000026	012716  000124 				MOV	#124,(SP)			;					2966
000032	060516 					ADD	R5,(SP)				; DB,*
000034	005076  000000 				CLR	@0(SP)
000040	005764  000002 				TST	2(R4)				; *(CCB)				2968
000044	001026 					BNE	2$
000046	010465  000126 				MOV	R4,126(R5)			; CCB,*(DB)				2971
000052	016402  000016 				MOV	16(R4),R2			; *(CCB),*				2974
000056	016403  000020 				MOV	20(R4),R3			; *(CCB),*
000062	004767  000000G				JSR	PC,$PHY18
000066	010365  000132 				MOV	R3,132(R5)			; *,*(DB)
000072	010265  000130 				MOV	R2,130(R5)			; *,*(DB)
000076	016465  000022  000134 			MOV	22(R4),134(R5)			; *(CCB),*(DB)				2975
000104	066476  000022  000000 		1$:	ADD	22(R4),@0(SP)			; *(CCB),*				2978
000112	016404  000002 				MOV	2(R4),R4			; *(CCB),CCB				2979
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 111
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (51)

000116	001434 					BEQ	3$
000120	000771 					BR	1$
000122	005065  000126 			2$:	CLR	126(R5)				; *(DB)					2984
000126	010500 					MOV	R5,R0				; DB,*					2987
000130	062700  000174 				ADD	#174,R0
000134	016702  000000G				MOV	.CRDAT,R2
000140	010003 					MOV	R0,R3
000142	004767  000000G				JSR	PC,$PHY18
000146	010365  000132 				MOV	R3,132(R5)			; *,*(DB)
000152	010265  000130 				MOV	R2,130(R5)			; *,*(DB)
000156	016746  000000G				MOV	.CRDAT,-(SP)			;					2994
000162	010046 					MOV	R0,-(SP)
000164	004767  000000G				JSR	PC,$CPTBF
000170	016767  000000G 000000G			MOV	.CRDAT,KISAR6			;					2995
000176	010076  000004 				MOV	R0,@4(SP)			; LENGTH,*				2996
000202	010065  000134 				MOV	R0,134(R5)			; LENGTH,*(DB)
000206	022626 					CMP	(SP)+,(SP)+			;					2983
000210	017611  000000 			3$:	MOV	@0(SP),(R1)			;					3000
000214	004767  000000V			4$:	JSR	PC,TRANSMIT.SEGMENT		;					3003
000220	005726 					TST	(SP)+				;					2932
000222	000207 					RTS	PC

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


;	  3005	
;	  3006	
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 112
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (52)

;	  3007	routine TRANSMIT_SEGMENT (DB) : DTE_DB novalue =
;	  3008	
;	  3009	!++
;	  3010	! FUNCTIONAL DESCRIPTION:
;	  3011	!
;	  3012	!
;	  3013	! FORMAL PARAMETERS:
;	  3014	!	DB = address of DTE data base.
;	  3015	!
;	  3016	! IMPLICIT INPUTS:
;	  3017	!	None
;	  3018	!
;	  3019	! IMPLICIT OUTPUTS:
;	  3020	!	None
;	  3021	!
;	  3022	! ROUTINE VALUE:
;	  3023	! COMPLETION CODES:
;	  3024	!	None
;	  3025	!
;	  3026	! SIDE EFFECTS:
;	  3027	!	None
;	  3028	!--
;	  3029	
;	  3030	    begin
;	  3031	    GET_DTE_DATA_BASE (DB)
;	  3032	
;	  3033	    local
;	  3034		DTE : ref block field (DTE_FIELDS);
;	  3035	
;	  3036	    if .DB [$SUB_FIELD (D_XQZ, PSIZE)] eql 0 then return;
;	  3037	
;	  3038	    if .DB [$SUB_FIELD (D_XQZ, CSIZE)] neq 0 then return;
;	  3039	
;	  3040	    if .DB [D_RCT] neq 0 and
;	  3041		.DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)] neq
;	  3042		.DB [$SUB_FIELD (D_RBA, PHYSICAL_HIGH)] then return;
;	  3043	
;	  3044	    if .DB [DF_FLUSHING_DTE] then return;
;	  3045	
;	  3046	    DTE = .DB [D_REGISTER];
;	  3047	
;	  3048	    if DTE_TEST (.DTE, TO10DB) then return;
;	  3049	
;	  3050	    DTE_EXT (.DTE, .DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)]);
;	  3051	    DB [$SUB_FIELD (D_XQZ, CSIZE)] =
;	  3052		(if .DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)] eql 0
;	  3053		then .DB [D_XCT]
;	  3054		else MINU (-.DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)],
;	  3055		.DB [D_XCT]));
;	  3056	    DB [$SUB_FIELD (D_XQZ, TMODE)] = 0;
;	  3057	    DEPMYH (DB [D_TIM], QSIZE, DB [D_XQZ]);
;	  3058	    DTE [TO10AD] = .DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)];
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 113
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (52)

;	  3059	    begin
;	  3060	
;	  3061	    local
;	  3062		VALUE : block [1] field (TO10BM);
;	  3063	
;	  3064	    VALUE = 0;
;	  3065	    VALUE [TO10BM] = 1;
;	  3066	    DTE [DIAG3] = .VALUE;
;	  3067	    end;
;	  3068	    ! *********************** Protocol deviation **************************
;	  3069	    ! The -20 monitors MY CPQCNT instead of MY QCOUNT for TO-HIM transfers,
;	  3070	    ! so the roles of MY QCOUNT and MY CPQCNT are reversed from those in
;	  3071	    ! the protocol specification.
;	  3072	    ! *********************************************************************
;	  3073	    DB [$SUB_FIELD (D_XST, CPQCNT)] = .DB [$SUB_FIELD (D_XST, CPQCNT)] + 1;
;	  3074	    DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
;	  3075	    DTE_SET (.DB [D_REGISTER], INT10S);
;	  3076	    DB[ D_LONG_TIMER] = DTE_K_TRANSMIT_DOORBELL_TIMEOUT;
;	  3077	    end;			!of routine TRANSMIT_SEGMENT


						.SBTTL	TRANSMIT.SEGMENT
000000	010546 				TRANSMIT.SEGMENT:
						MOV	R5,-(SP)			;					3007
000002	005746 					TST	-(SP)
000004	010546 					MOV	R5,-(SP)
000006	010500 					MOV	R5,R0				;					3036
000010	005760  000102 				TST	102(R0)
000014	001540 					BEQ	4$
000016	012700  000100 				MOV	#100,R0				;					3038
000022	060500 					ADD	R5,R0
000024	010003 					MOV	R0,R3
000026	005713 					TST	(R3)
000030	001132 					BNE	4$
000032	010500 					MOV	R5,R0				;					3040
000034	005760  000116 				TST	116(R0)
000040	001405 					BEQ	1$
000042	010501 					MOV	R5,R1				;					3041
000044	026160  000130  000112 			CMP	130(R1),112(R0)
000052	001121 					BNE	4$				;					3042
000054	032776  020000  000000 		1$:	BIT	#20000,@0(SP)			;					3044
000062	001115 					BNE	4$
000064	011600 					MOV	(SP),R0				;					3046
000066	016066  000002  000002 			MOV	2(R0),2(SP)			; *,DTE
000074	032776  000400  000002 			BIT	#400,@2(SP)			; *,DTE					3048
000102	001105 					BNE	4$
000104	005000 					CLR	R0				; VALUE					3050
000106	011602 					MOV	(SP),R2
000110	016201  000130 				MOV	130(R2),R1
000114	072127  000016 				ASH	#16,R1
000120	042700  140000 				BIC	#140000,R0			; *,VALUE
000124	050100 					BIS	R1,R0				; *,VALUE
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 114
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (52)

000126	016601  000002 				MOV	2(SP),R1			; DTE,*
000132	010061  177744 				MOV	R0,-34(R1)			; VALUE,*(DTE)
000136	012700  000132 				MOV	#132,R0				;					3052
000142	060200 					ADD	R2,R0
000144	010004 					MOV	R0,R4
000146	005714 					TST	(R4)
000150	001406 					BEQ	2$
000152	011405 					MOV	(R4),R5				;					3054
000154	005405 					NEG	R5
000156	010200 					MOV	R2,R0
000160	020560  000134 				CMP	R5,134(R0)
000164	101403 					BLOS	3$
000166	011600 				2$:	MOV	(SP),R0
000170	016005  000134 				MOV	134(R0),R5
000174	010513 				3$:	MOV	R5,(R3)				;					3051
000176	011600 					MOV	(SP),R0				;					3056
000200	142760  000017  000104 			BICB	#17,104(R0)
000206	010005 					MOV	R0,R5				;					3057
000210	012702  000003 				MOV	#3,R2
000214	004767  172226 				JSR	PC,DEPMYH
000220	016600  000002 				MOV	2(SP),R0			; DTE,*					3058
000224	011460  177764 				MOV	(R4),-14(R0)			; *,*(DTE)
000230	005000 					CLR	R0				; VALUE					3064
000232	152700  000001 				BISB	#1,R0				; *,VALUE				3065
000236	016601  000002 				MOV	2(SP),R1			; DTE,*					3066
000242	010061  000002 				MOV	R0,2(R1)			; VALUE,*(DTE)
000246	011601 					MOV	(SP),R1				;					3073
000250	105261  000073 				INCB	73(R1)
000254	012700  000072 				MOV	#72,R0				;					3074
000260	060100 					ADD	R1,R0
000262	010003 					MOV	R0,R3
000264	010105 					MOV	R1,R5
000266	012702  000002 				MOV	#2,R2
000272	004767  172150 				JSR	PC,DEPMYH
000276	011600 					MOV	(SP),R0				;					3075
000300	012770  000400  000002 			MOV	#400,@2(R0)
000306	011600 					MOV	(SP),R0				;					3076
000310	112760  000003  000020 			MOVB	#3,20(R0)
000316	022626 				4$:	CMP	(SP)+,(SP)+			;					3007
000320	012605 					MOV	(SP)+,R5
000322	000207 					RTS	PC

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


;	  3078	
;	  3079	
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 115
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (53)

;	  3080	routine T10DON (DB) : DTE_DB novalue =
;	  3081	
;	  3082	!++
;	  3083	! FUNCTIONAL DESCRIPTION:
;	  3084	!
;	  3085	!
;	  3086	! FORMAL PARAMETERS:
;	  3087	!	DB = address of DTE data base.
;	  3088	!
;	  3089	! IMPLICIT INPUTS:
;	  3090	!	None
;	  3091	!
;	  3092	! IMPLICIT OUTPUTS:
;	  3093	!	None
;	  3094	!
;	  3095	! ROUTINE VALUE:
;	  3096	! COMPLETION CODES:
;	  3097	!	None
;	  3098	!
;	  3099	! SIDE EFFECTS:
;	  3100	!	None
;	  3101	!--
;	  3102	
;	  3103	    begin
;	  3104	    GET_DTE_DATA_BASE (DB)
;	  3105	    PHYSICAL_ADD (DB, D_XBA, .DB [$SUB_FIELD (D_XQZ, CSIZE)]);
;	  3106	    if .DB[ D_PROTOCOL_STATE] eql DS_RUNNING
;	  3107	    then
;	  3108		DB[ D_LONG_TIMER] = 0;
;	  3109	
;	  3110	    if .block [.DB [D_REGISTER], $SUB_FIELD (TO10BC, TO10CM)] or
;	  3111		begin
;	  3112		DTE_SET (.DB [D_REGISTER], DON10C, ERR10C);
;	  3113		.block [.DB [D_REGISTER], TO10AD] neq .DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)]
;	  3114		end
;	  3115	    then
;	  3116		begin	! Incomplete transfer.
;	P 3117		$NM_PLL_EVENT (4, .DB [D_LINE_ENTITY],
;	  3118		    PARAMETER_DEVICE_REGISTERS (.DB [D_REGISTER]));
;	  3119		SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
;	  3120		COUNTER_INCREMENT (DB, D_TRANSMIT_BA_MISMATCH);
;	  3121		COUNTER_INCREMENT (DB, D_FATAL_DEVICE_ERRORS);
;	  3122		DEVICE_BROKEN (DB [D_TIM]);
;	  3123		return;
;	  3124		end;
;	  3125	
;	  3126	    DB [$SUB_FIELD (D_XQZ, PSIZE)] = .DB [$SUB_FIELD (D_XQZ, PSIZE)] -
;	  3127		.DB [$SUB_FIELD (D_XQZ, CSIZE)];
;	  3128	
;	  3129	    if .DB [$SUB_FIELD (D_XQZ, PSIZE)] gtr 0
;	  3130	    then
;	  3131		begin
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 116
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (53)

;	  3132		DB [D_XCT] = .DB [D_XCT] - .DB [$SUB_FIELD (D_XQZ, CSIZE)];
;	  3133	
;	  3134		if .DB [D_XCT] eql 0
;	  3135		then
;	  3136		    begin
;	  3137	
;	  3138		    local
;	  3139			CCB : ref block field (C_FIELDS);
;	  3140	
;	  3141		    DB [D_XCB] = CCB = .block [.DB [D_XCB], C_CHN];
;	P 3142		    $MCB_CONVERT_TO_UBA_ADDRESS ((.CCB [C_BIAS], .CCB [C_ADDR]),
;	P 3143			DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)],
;	  3144			DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)]);
;	  3145		    DB [D_XCT] = .CCB [C_CNT];
;	  3146		    end;
;	  3147	
;	  3148		DB [$SUB_FIELD (D_XQZ, CSIZE)] = 0;
;	  3149		TRANSMIT_SEGMENT (DB [D_TIM]);
;	  3150		end
;	  3151	    else
;	  3152		begin
;	  3153	
;	  3154		local
;	  3155		    CCB : ref block field (C_FIELDS);
;	  3156	
;	  3157		DB [$SUB_FIELD (D_XQZ, CSIZE)] = 0;
;	  3158		DEPMYH (DB [D_TIM], QSIZE, DB [D_XQZ]);
;	  3159	
;	  3160		if not CMQRM$ (DB [D_XMQ], CCB) then SIGNAL_STOP (DTE$_QUE, DB [D_XMQ]);
;	  3161	
;	  3162		COUNTER_ADD (DB, D_BYTES_SENT, .DB [D_XLN]);
;	  3163		COUNTER_INCREMENT (DB, D_DATA_BLOCKS_SENT);
;	  3164		DB [D_XLN] = 0;
;	  3165		SCHEDULE_TRANSMIT (.CCB, DB [D_TIM], DLL$_SUCCESS);
;	  3166		end;
;	  3167	
;	  3168	    if .DB [DF_FLUSHING_DTE] and (.DB [D_RCT] eql 0)
;	  3169	    then
;	  3170		DB [DF_FLUSHING_DTE] = FALSE;
;	  3171	
;	  3172	    end;			!of routine T10DON


						.GLOBL	$AC32, $IC32


						.SBTTL	T10DON
000000	012746  000132 			T10DON: MOV	#132,-(SP)			;					3105
000004	060516 					ADD	R5,(SP)				; DB,*
000006	012746  000100 				MOV	#100,-(SP)
000012	060516 					ADD	R5,(SP)				; DB,*
000014	017600  000002 				MOV	@2(SP),R0
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 117
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (53)

000020	067600  000000 				ADD	@0(SP),R0
000024	010076  000002 				MOV	R0,@2(SP)
000030	005565  000130 				ADC	130(R5)				; *(DB)
000034	126527  000012  000003 			CMPB	12(R5),#3			; *(DB),*				3106
000042	001002 					BNE	1$
000044	105065  000020 				CLRB	20(R5)				; *(DB)					3108
000050	016501  000002 			1$:	MOV	2(R5),R1			; *(DB),*				3110
000054	032761  000001  177760 			BIT	#1,-20(R1)
000062	001006 					BNE	2$
000064	012711  050000 				MOV	#50000,(R1)			;					3112
000070	026176  177764  000002 			CMP	-14(R1),@2(SP)			;					3113
000076	001431 					BEQ	3$
000100	004767  000000G			2$:	JSR	PC,$NLBEG			;					3118
000104	004767  174354 				JSR	PC,PLL0
000110	012700  000604 				MOV	#604,R0
000114	016501  000042 				MOV	42(R5),R1			; *(DB),*
000120	004767  000000G				JSR	PC,$NLEND
000124	012700  100174 				MOV	#-77604,R0			;					3119
000130	004767  175772 				JSR	PC,SEND.PERSISTENT.ERROR
000134	052765  002000  000166 			BIS	#2000,166(R5)			; *,*(DB)				3120
000142	012700  000166 				MOV	#166,R0				;					3121
000146	060500 					ADD	R5,R0				; DB,*
000150	004767  000000G				JSR	PC,$IC8
000154	004767  171754 				JSR	PC,DEVICE.BROKEN		;					3122
000160	000522 					BR	8$				;					3116
000162	167665  000000  000102 		3$:	SUB	@0(SP),102(R5)			; *,*(DB)				3126
000170	000243 					.WORD CLV!CLC
											;					3129
000172	003435 					BLE	5$
000174	012701  000134 				MOV	#134,R1				;					3132
000200	060501 					ADD	R5,R1				; DB,*
000202	167611  000000 				SUB	@0(SP),(R1)
000206	001022 					BNE	4$				;					3134
000210	016500  000126 				MOV	126(R5),R0			; *(DB),*				3141
000214	016000  000002 				MOV	2(R0),R0			; *,CCB
000220	010065  000126 				MOV	R0,126(R5)			; CCB,*(DB)
000224	016002  000016 				MOV	16(R0),R2			; *(CCB),*				3144
000230	016003  000020 				MOV	20(R0),R3			; *(CCB),*
000234	004767  000000G				JSR	PC,$PHY18
000240	010376  000002 				MOV	R3,@2(SP)
000244	010265  000130 				MOV	R2,130(R5)			; *,*(DB)
000250	016011  000022 				MOV	22(R0),(R1)			; *(CCB),*				3145
000254	005076  000000 			4$:	CLR	@0(SP)				;					3148
000260	004767  177170 				JSR	PC,TRANSMIT.SEGMENT		;					3149
000264	000450 					BR	7$				;					3129
000266	005076  000000 			5$:	CLR	@0(SP)				;					3157
000272	012702  000003 				MOV	#3,R2				;					3158
000276	011603 					MOV	(SP),R3
000300	004767  171616 				JSR	PC,DEPMYH
000304	012703  000120 				MOV	#120,R3				;					3160
000310	060503 					ADD	R5,R3				; DB,*
000312	004767  000000G				JSR	PC,$CMQRM
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 118
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (53)

000316	103011 					BHIS	6$
000320	010346 					MOV	R3,-(SP)
000322	012746  100034 				MOV	#-77744,-(SP)
000326	012746  000002 				MOV	#2,-(SP)
000332	004767  000000G				JSR	PC,$STOP
000336	062706  000006 				ADD	#6,SP
000342	012700  000142 			6$:	MOV	#142,R0				;					3162
000346	060500 					ADD	R5,R0				; DB,*
000350	016501  000124 				MOV	124(R5),R1			; *(DB),*
000354	004767  000000G				JSR	PC,$AC32
000360	012700  000152 				MOV	#152,R0				;					3163
000364	060500 					ADD	R5,R0				; DB,*
000366	004767  000000G				JSR	PC,$IC32
000372	005065  000124 				CLR	124(R5)				; *(DB)					3164
000376	012700  100001 				MOV	#-77777,R0			;					3165
000402	004767  175432 				JSR	PC,SCHEDULE.TRANSMIT
000406	032715  020000 			7$:	BIT	#20000,(R5)			; *,DB					3168
000412	001405 					BEQ	8$
000414	005765  000116 				TST	116(R5)				; *(DB)
000420	001002 					BNE	8$
000422	042715  020000 				BIC	#20000,(R5)			; *,DB					3170
000426	022626 				8$:	CMP	(SP)+,(SP)+			;					3080
000430	000207 					RTS	PC

; Routine Size:  141 words,	Routine Base:  $CODE$ + 6510
; Maximum stack depth per invocation:  6 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 119
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (54)

;	  3173	routine T11DON (DB) : DTE_DB novalue =
;	  3174	
;	  3175	!++
;	  3176	! FUNCTIONAL DESCRIPTION:
;	  3177	!
;	  3178	!
;	  3179	! FORMAL PARAMETERS:
;	  3180	!	DB = address of DTE data base.
;	  3181	!
;	  3182	! IMPLICIT INPUTS:
;	  3183	!	None
;	  3184	!
;	  3185	! IMPLICIT OUTPUTS:
;	  3186	!	None
;	  3187	!
;	  3188	! ROUTINE VALUE:
;	  3189	! COMPLETION CODES:
;	  3190	!	None
;	  3191	!
;	  3192	! SIDE EFFECTS:
;	  3193	!	None
;	  3194	!--
;	  3195	
;	  3196	    begin
;	  3197	    GET_DTE_DATA_BASE (DB)
;	  3198	    PHYSICAL_ADD (DB, D_RBA, .DB [D_RCT]);
;	  3199	
;	  3200	    if .block [.DB [D_REGISTER], $SUB_FIELD (TO11BC, TO11CM)] neq 0 or
;	  3201		begin
;	  3202		DTE_SET (.DB [D_REGISTER], DON11C, ERR11C);
;	  3203		.block [.DB [D_REGISTER], TO11AD] neq .DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)]
;	  3204		end
;	  3205	    then
;	  3206		begin	! Incomplete transfer.
;	P 3207		$NM_PLL_EVENT (4, .DB [D_LINE_ENTITY],
;	  3208		    PARAMETER_DEVICE_REGISTERS (.DB [D_REGISTER]));
;	  3209		SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
;	  3210		COUNTER_INCREMENT (DB, D_RECEIVE_BA_MISMATCH);
;	  3211		COUNTER_INCREMENT (DB, D_FATAL_DEVICE_ERRORS);
;	  3212		DEVICE_BROKEN (DB [D_TIM]);
;	  3213		return;
;	  3214		end;
;	  3215	
;	  3216	    begin
;	  3217	
;	  3218	    bind
;	  3219		CCB = DB [D_RCB] : ref block field (C_FIELDS);
;	  3220	
;	  3221	    CCB [C_CNT] = .CCB [C_CNT] + .DB [D_RCT];
;	  3222	    end;
;	  3223	    DB [$SUB_FIELD (D_RQZ, CSIZE)] = .DB [$SUB_FIELD (D_RQZ, CSIZE)] - .DB [D_RCT];
;	  3224	    DB [$SUB_FIELD (D_RQZ, PSIZE)] = .DB [$SUB_FIELD (D_RQZ, PSIZE)] - .DB [D_RCT];
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 120
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (54)

;	  3225	    DB [D_RCT] = 0;
;	  3226	
;	  3227	    if .DB [$SUB_FIELD (D_RQZ, PSIZE)] neq 0
;	  3228	    then
;	  3229		RECEIVE_SEGMENT (DB [D_TIM])
;	  3230	    else
;	  3231		begin
;	  3232	
;	  3233		bind
;	  3234		    CCB = DB [D_RCB] : ref block field (C_FIELDS);
;	  3235	
;	  3236		DB [$SUB_FIELD (D_XST, RCV)] = 0;
;	  3237		DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
;	  3238		COUNTER_ADD (DB, D_BYTES_RECEIVED, .CCB [C_CNT]);
;	  3239		COUNTER_INCREMENT (DB, D_DATA_BLOCKS_RECEIVED);
;	  3240		SCHEDULE_RECEIVE (.CCB, DB [D_TIM]);
;	  3241		DB [D_RCB] = 0;
;	  3242		end;
;	  3243	
;	  3244	    if .DB [DF_FLUSHING_DTE] and (.DB [$SUB_FIELD (D_XQZ, CSIZE)] eql 0)
;	  3245	    then
;	  3246		DB [DF_FLUSHING_DTE] = FALSE;
;	  3247	
;	  3248	    end;			!of routine T11DON


						.SBTTL	T11DON
000000	010546 				T11DON: MOV	R5,-(SP)			;					3173
000002	005746 					TST	-(SP)
000004	010546 					MOV	R5,-(SP)
000006	012700  000116 				MOV	#116,R0				;					3198
000012	060500 					ADD	R5,R0
000014	010046 					MOV	R0,-(SP)
000016	010500 					MOV	R5,R0
000020	016005  000114 				MOV	114(R0),R5
000024	067605  000000 				ADD	@0(SP),R5
000030	016600  000002 				MOV	2(SP),R0
000034	010560  000114 				MOV	R5,114(R0)
000040	005560  000112 				ADC	112(R0)
000044	016001  000002 				MOV	2(R0),R1			;					3200
000050	032761  007777  177762 			BIT	#7777,-16(R1)
000056	001005 					BNE	1$
000060	012711  000101 				MOV	#101,(R1)			;					3202
000064	026105  177766 				CMP	-12(R1),R5			;					3203
000070	001442 					BEQ	2$
000072	004767  000000G			1$:	JSR	PC,$NLBEG			;					3208
000076	004767  173730 				JSR	PC,PLL0
000102	012700  000604 				MOV	#604,R0
000106	016602  000002 				MOV	2(SP),R2
000112	016201  000042 				MOV	42(R2),R1
000116	004767  000000G				JSR	PC,$NLEND
000122	016605  000002 				MOV	2(SP),R5			;					3209
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 121
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (54)

000126	012700  100174 				MOV	#-77604,R0
000132	004767  175336 				JSR	PC,SEND.PERSISTENT.ERROR
000136	016600  000002 				MOV	2(SP),R0			;					3210
000142	052760  001000  000166 			BIS	#1000,166(R0)
000150	012701  000166 				MOV	#166,R1				;					3211
000154	060001 					ADD	R0,R1
000156	010100 					MOV	R1,R0
000160	004767  000000G				JSR	PC,$IC8
000164	016605  000002 				MOV	2(SP),R5			;					3212
000170	004767  171306 				JSR	PC,DEVICE.BROKEN
000174	000522 					BR	5$				;					3206
000176	012700  000110 			2$:	MOV	#110,R0				;					3219
000202	066600  000002 				ADD	2(SP),R0
000206	010066  000004 				MOV	R0,4(SP)
000212	011000 					MOV	(R0),R0				;					3221
000214	067660  000000  000022 			ADD	@0(SP),22(R0)
000222	016600  000002 				MOV	2(SP),R0			;					3223
000226	167660  000000  000064 			SUB	@0(SP),64(R0)
000234	167660  000000  000066 			SUB	@0(SP),66(R0)			;					3224
000242	005076  000000 				CLR	@0(SP)				;					3225
000246	016600  000002 				MOV	2(SP),R0			;					3227
000252	005760  000066 				TST	66(R0)
000256	001404 					BEQ	3$
000260	010005 					MOV	R0,R5				;					3229
000262	004767  174412 				JSR	PC,RECEIVE.SEGMENT
000266	000452 					BR	4$				;					3227
000270	016600  000002 			3$:	MOV	2(SP),R0			;					3236
000274	142760  000001  000074 			BICB	#1,74(R0)
000302	012700  000072 				MOV	#72,R0				;					3237
000306	066600  000002 				ADD	2(SP),R0
000312	010003 					MOV	R0,R3
000314	016605  000002 				MOV	2(SP),R5
000320	012702  000002 				MOV	#2,R2
000324	004767  171140 				JSR	PC,DEPMYH
000330	012701  000136 				MOV	#136,R1				;					3238
000334	066601  000002 				ADD	2(SP),R1
000340	010100 					MOV	R1,R0
000342	017602  000004 				MOV	@4(SP),R2
000346	016201  000022 				MOV	22(R2),R1
000352	004767  000000G				JSR	PC,$AC32
000356	012701  000146 				MOV	#146,R1				;					3239
000362	066601  000002 				ADD	2(SP),R1
000366	010100 					MOV	R1,R0
000370	004767  000000G				JSR	PC,$IC32
000374	017604  000004 				MOV	@4(SP),R4			;					3240
000400	016605  000002 				MOV	2(SP),R5
000404	004767  174552 				JSR	PC,SCHEDULE.RECEIVE
000410	005076  000004 				CLR	@4(SP)				;					3241
000414	032776  020000  000002 		4$:	BIT	#20000,@2(SP)			;					3244
000422	001407 					BEQ	5$
000424	016600  000002 				MOV	2(SP),R0
000430	005760  000100 				TST	100(R0)
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 122
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (54)

000434	001002 					BNE	5$
000436	042710  020000 				BIC	#20000,(R0)			;					3246
000442	062706  000006 			5$:	ADD	#6,SP				;					3173
000446	012605 					MOV	(SP)+,R5
000450	000207 					RTS	PC

; Routine Size:  149 words,	Routine Base:  $CODE$ + 7142
; Maximum stack depth per invocation:  5 words
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 123
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (55)

;	  3249	routine WTEXDP
;	  3250	
;	  3251	!++
;	  3252	! FUNCTIONAL DESCRIPTION:
;	  3253	!
;	  3254	!
;	  3255	! FORMAL PARAMETERS:
;	  3256	!
;	  3257	       (DB : ref block field (D_FIELDS),
;	  3258		DTE : ref block field (DTE_FIELDS) volatile)
;	  3259	!
;	  3260	! IMPLICIT INPUTS:
;	  3261	!	None
;	  3262	!
;	  3263	! IMPLICIT OUTPUTS:
;	  3264	!	None
;	  3265	!
;	  3266	! ROUTINE VALUE:
;	  3267	!
;	  3268		: DTE_DB_DTE =
;	  3269	!
;	  3270	! SIDE EFFECTS:
;	  3271	!	None
;	  3272	!--
;	  3273	
;	  3274	    begin
;	  3275	
;	  3276	    local
;	  3277		STATUS;
;	  3278	
;	  3279	    STATUS = 1536;
;	  3280	
;	  3281	    do
;	  3282		begin
;	  3283	
;	  3284		if .DTE [$SUB_FIELD (STAT11, DEXDON)]
;	  3285		then
;	  3286		    begin
;	  3287	
;	  3288		    if not .DTE [$SUB_FIELD (STAT11, BPARER)]
;	  3289		    then
;	  3290			STATUS = TRUE;
;	  3291	
;	  3292		    exitloop;
;	  3293		    end;
;	  3294	
;	  3295		end
;	  3296	    while (STATUS = .STATUS - 1) neq FALSE;
;	  3297	
;	  3298	    .STATUS
;	  3299	    end;			!of routine WTEXDP
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 124
X01560								30-Dec-1982 02:52:49	NETPKG:<DRIVERS>DTE.B16.9 (55)


						.SBTTL	WTEXDP
000000	012700  003000 			WTEXDP: MOV	#3000,R0			; *,STATUS				3279
000004	132711  000004 			1$:	BITB	#4,(R1)				; *,DTE					3284
000010	001406 					BEQ	2$
000012	132711  000020 				BITB	#20,(R1)			; *,DTE					3288
000016	001004 					BNE	3$
000020	012700  000001 				MOV	#1,R0				; *,STATUS				3290
000024	000207 					RTS	PC				;					3286
000026	077012 				2$:	SOB	R0,1$				; STATUS,*				3296
000030	000207 				3$:	RTS	PC				;					3249

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


;	  3300	end
;	  3301	eludom



;					OTS external references
						.GLOBL	$STOP


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 $PLIT$				   77	    RO ,  D  ,  LCL,  REL,  CON
;	 ......				   16	    RW ,  D  ,  LCL,  REL,  CON
;	 $CODE$				 2003	    RO ,  I  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<V3P0>MCBLIB.L16.7		       372        95        25         0
;  NETPKG:<MCB>XPORTX.L16.15		       599         9         1         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200        13         6         0
;  NETPKG:<DRIVERS>DTEDAT.L16.2		       244       209        85         0





; Size:		2003 code + 93 data words
; Run Time:	   00:46.4
; Elapsed Time:	   02:31.8
DTE								25-Jan-1983 10:04:51	TOPS-20 Bliss-16 3(552)		    Page 125
X01560											

; Memory Used:	64 pages
; Compilation Complete
ANSWER_DOORBELL			 399	 624*	1322	2727
BITS				 501	 515
BLISS16				   3
BPARER				3288
BUFFER				 945	 972	 974	1001	1594	1621	1623	1650	1652	1679	1681	1708
				1737	1739#	1741	1744#	1745#	1746#	1747#	1781	1784#	1786	1788	1789
				1791	1793	1795	1798	1800	1801	1810	1820	1822	1824	1826	1828
				1830	1832	1835	1837	1846	1856	1858	2047	2076	2082	2083	2084
				2089	2118	2130#	2131#	2132#
BUSEXT				 515
CCB				 201+	 205+	 217+	 221+	 244+	 248+	 257+	 261+	 270+	 274+	 292+	 296+
				 467	 469	 471	 790	 818	 824#	 825#	 831	 834	 837	 865	 875
				 877	 879#	 881#	 882#	 883	1030	1058	1070#	1071#	1072	1082	1110
				1112#	1113#	1114	1116	1144	1152#	1153#	1154	1156	1185	1193	1195
				1207	1212#	1222	1345	1374	1381	1384	1410	1466	1468#	1471	1552
				1581	1591	1906	1934	1936#	1937	1938	2196	2198	2300	2328	2330#
				2331#	2332#	2333#	2334	2337	2364	2366#	2368	2371#	2372#	2373#	2374
				2376	2404	2406	2408#	2409#	2410#	2411#	2412	2417	2419	2424	2452
				2454#	2455#	2456#	2457#	2458	2461	2488	2490#	2491#	2492	2532	2538
				2540	2572	2580	2582	2614	2620	2622	2627	2655	2660	2667	2671
				2675	2677	2679	2885	2912	2919	2924	2927	2963	2965#	2968	2971
				2972	2975	2978	2979#	2994	3139	3141#	3142	3145	3155	3160	3165
				3219#	3221#	3234#	3238	3240
CHANGE_PROTOCOL_STATE		 400	 681	 684	 704	 718*	1477	1509	1860	2012	2803
CLEAR_DOORBELL			 401	 649	 746*	1862
CMQIN$				 831	1193
CMQRM$				 469	3160
COM_FIELDS			1781
COUNTER_ADD			3162	3238
COUNTER_INCREMENT		 786	 787	2185	2186	2220	2221	2792	2793	3120	3121	3163	3210
				3211	3239
COUNT				1976
CPQCNT				1456	3073
CSIZE				1449	2263	2275	2277	2285	3038	3051	3105	3127	3132	3148	3157
				3223	3244
CSR				 501	 509	 521	 525	 532	 536	 543	 547	 554	 558
CTLSTP				 402	 790*	1380
CTLSTR				 403	 837*	1379
CURRENT_STATUS			 404	 881	 885*	2411
C_ADDR				1938	2972	3142
C_BIAS				1938	2972	3142
C_CHN				1195	1212	2968	2979	3141
C_CNT				1207	1936	2975	2978	3145	3221	3238
C_FIELDS			 205+	 221+	 248+	 261+	 274+	 296+	 818	 865	1058	1110	1144	1185
				1374	1581	1934	2328	2364	2404	2452	2488	2532	2572	2614	2655
				2963	3139	3155	3219	3234
C_FNC				 213+	 226+	 253+	 266+	 279+	 301+	 825	 882	1070	1112	1152	2331
				2371	2409	2455	2490
C_HANDLE			 580#	 875	2330	2366	2368	2408	2454
C_LIN				 211+
C_LIX				 580
C_LNK				 215+	 228+	 255+	 268+	 281+	 303+
C_MOD				 214+	 227+	 254+	 267+	 280+	 302+	2332	2372	2410	2456
C_PIX				 208+	 224+	 251+	 264+	 277+	 299+
C_PRM1				 877	 879
C_STS				 824	 881	1071	1113	1153	2333	2373	2411	2457	2491
D				1800
DB				 478	 484#	 485	 487#	 488	 624	 648	 649	 651	 656	 659	 667
				 668	 669#	 674	 677#	 678	 679	 680#	 681	 684	 686	 687	 692
				 695	 697	 701	 704	 706	 708	 718	 742	 743#	 744	 746	 770
				 779	 781	 786	 787	 790	 815	 820#	 821#	 822#	 823#	 827	 830#
				 831	 837	 862	 875#	 879	 881	 885	 909	 930	 933#	 935	 937#
				 939#	 942#	 943#	 945	 971	 972	 974	1000	1001	1003	1027	1028
				1030	1055	1060	1062	1064#	1066	1068	1074	1077	1078	1082	1107
				1116	1141	1146#	1148	1150	1156	1182	1187#	1189	1193	1202	1209
				1216	1218	1222	1226	1250	1252	1254#	1255	1257	1281	1282#	1284
				1287	1291	1294	1295	1296	1298	1303	1305	1314	1318	1320	1322
				1331	1334	1337	1340	1341	1345	1371	1381	1384	1409	1411#	1413
				1415	1418#	1419	1423	1447	1448	1449#	1450#	1451	1452#	1453#	1454#
				1455#	1456#	1457#	1458	1459#	1460#	1461	1462	1468	1472#	1473#	1477
				1479	1503	1505	1509	1510#	1511	1512#	1513	1515	1540	1549	1552
				1578	1591	1594	1620	1621	1623	1649	1650	1652	1678	1679	1681
				1707	1708	1710	1734	1739	1741	1751	1775	1783#	1784	1786	1788#
				1789#	1791	1793#	1798	1801	1814#	1822#	1824	1826#	1828	1830#	1835
				1837	1850#	1856	1860	1861#	1862	1863	1864#	1865#	1866	1867	1869
				1893	1895	1898	1899	1906	1931	1937#	1939	1940	1983	2007	2009
				2012	2013#	2020	2044	2045	2047	2073	2081	2087	2089	2115	2126
				2129	2135	2159	2161	2164	2174	2176#	2178	2181	2182	2183#	2184
				2185	2186	2187	2191	2198	2202	2205#	2210	2212	2215	2216	2217
				2218#	2219	2220	2221	2222	2226#	2227	2228	2230	2254	2259	2261
				2263	2265	2266	2267	2269	2271	2272	2273	2274#	2275	2276	2277
				2285	2287	2291	2294	2298#	2300	2325	2330	2333	2335#	2337	2361
				2366	2370#	2376	2401	2406	2408	2411	2414	2419	2424	2449	2454
				2457	2459#	2461	2485	2493#	2495	2497	2500#	2501	2505	2529	2534
				2536#	2540	2545	2569	2574	2576#	2578#	2582	2587	2611	2616	2618#
				2622	2627	2652	2660	2665	2667	2669	2671	2673	2675	2682	2706
				2707#	2709	2716	2721#	2722	2723	2725	2727	2729	2732	2735	2738
				2739	2749	2752#	2755	2760	2762	2765#	2768	2769#	2776#	2778#	2781
				2782#	2789	2792	2793	2794	2795#	2800	2803	2805	2808	2809	2814
				2816	2825	2849	2854	2859	2885	2910	2912	2914	2919	2920	2924
				2932	2956	2958	2965	2966#	2971#	2973	2974	2975#	2978#	2984#	2985
				2986	2987	2994	2996#	3000#	3003	3007	3031	3036	3038	3040	3041
				3042	3044	3046	3050	3051#	3052	3053	3054	3055	3056#	3057	3058
				3073#	3074	3075	3076#	3080	3104	3105	3106	3108#	3110	3112	3113
				3117	3118	3119	3120	3121	3122	3126#	3127	3129	3132#	3134	3141#
				3143	3144	3145#	3148#	3149	3157#	3158	3160	3162	3163	3164#	3165
				3168	3170#	3173	3197	3198	3200	3202	3203	3207	3208	3209	3210
				3211	3212	3219	3221	3223#	3224#	3225#	3227	3229	3234	3236#	3237
				3238	3239	3240	3241#	3244	3246#	3257
DB_BIAS				 616#	2985	2994	2995
DD_CLEARED			1074	1505	2709
DECLARE_SEVERITY		 306+
DEP				2085
DEPMYG				 405	 945*	2722
DEPMYH				 406	 667	 678	 974*	1451	1458	1863	1866	2227	3057	3074	3158
				3237
DEVICE_BROKEN			 407	1003*	1298	2187	2816	3122	3212
DEXDON				3284
DEXWD				2082	2083	2084	2130	2131	2132
DEXWD1				2084	2132
DEXWD2				2083	2131
DEXWD3				2082	2130
DF_CONTROL_WAITING		 830	1415	1418	2497	2500
DF_FLUSHING_DTE			2269	3044	3168	3170	3244	3246
DF_NOTIFY_OFF			 930	 933	2576	2665
DF_NOTIFY_STATE			 820	 937	 942	2406	2414	2578	2665
DF_SYNCHRONIZING		1252	1254	1282
DIAG2				 525	 527
DIAG3				3066
DISPATCH$			1376	1541	1583
DLC_DISPATCH			 591#
DLL				 306+
DLL$A_CIRCUIT_NAME		 181+#
DLL$B_PROVIDER_LINE_INDEX	 176+#
DLL$B_PROVIDER_PROCESS_INDEX	 177+#
DLL$FW_START_CCB_PRM1		 174+#
DLL$FW_START_CCB_PRM2		 179+#
DLL$FW_START_CCB_PRM3		 183+#
DLL$K_DATA_RECEIVED		 320+#	2372
DLL$K_ENTER_MAINTENANCE		 280+	 314+#	1586
DLL$K_INITIALIZE_LINK		 254+	 312+#	1587
DLL$K_MAINTENANCE_RECEIVED	 321+#
DLL$K_PERSISTENT_ERROR		 328+#	2332
DLL$K_STATE			 326+#	2410
DLL$K_STOP_LINK			 267+	 313+#	1588
DLL$K_TRANSIENT_ERROR		 327+#	2456
DLL$K_TRANSMIT			 302+	 311+#	1589
DLL$K_TRANSMIT_AND_TIME		 315+#	1590
DLL$V_DTE_CIRCUIT		 185+#
DLL$_ABORTED			 335+	1222	1462
DLL$_DEVICE_OPERATION_ERROR	 364+	1077	1296	2184	2219	3119	3209
DLL$_DEVICE_RESPONSE_ERROR	 360+
DLL$_DEVICE_SERVICE_ERROR	 362+
DLL$_MAINTENANCE_RECEIVED	 358+
DLL$_NOT_SUPPORTED		 334+	1113
DLL$_PAUSE_TIMEOUT		 367+	2814
DLL$_PRIVLEDGE_VIOLATION	 333+
DLL$_RECEIVE_ERROR		 374+
DLL$_RECEIVE_THRESHOLD		 348+
DLL$_SELECTION_THRESHOLD	 350+
DLL$_SERVICE_TIMEOUT		 372+
DLL$_START_RECEIVED		 356+	1898
DLL$_STATE_MAINTENANCE		 342+	 928
DLL$_STATE_OFF			 339+	 869	 925
DLL$_STATE_RUNNING		 341+	 872	 873	 927
DLL$_STATE_SYNCHRONIZING	 340+	 870	 871	 926
DLL$_SUCCESS			 332+	 824	1071	1153	2373	3165
DLL$_TRANSMIT_THRESHOLD		 346+	2768	2781
DLLINI				 408	1030*	1587
DLLMOP				 409	1082*	1586
DLLSTP				 410	1116*	1588
DLLXMT				 411	1156*	1589	1590
DLL_MAINTENANCE			 915#	 928
DLL_OFF				 912#	 919	 925	 939
DLL_RUNNING			 914#	 922	 923	 927
DLL_STATUS			 924#	 939	 943
DLL_SYNCHRONIZING		 913#	 920	 921	 926
DLYCNT				 505	 516
DLYOFF				 505#	 515
DLYWRD				 506#	 512	 514	 516
DL_ON				1066	2854
DON10C				3112
DON11C				3202
DRESET				 527
DS_COM				 870	 920	1286	1509	2758	2762
DS_HALTED			 869	 919	 935	1060	1146	1148	1477	2576
DS_INITIALIZING			 654	 871	 921	1316	1860	2719	2774
DS_PAUSED			 699	 873	 923	1191	1289	1316	2012	2719	2799	2923
DS_RUNNING			 681	 684	 690	 704	 872	 922	1064	1191	1216	1289	1316	1331
				2719	2729	2787	2803	2917	3106
DS_STA_HIGH			 651	1189	1284	1314	2716	2755	2914
DS_STA_LOW			 651	1189	1284	1314	2716	2755	2914
DTE				   1#	 590	2079	2081#	2082#	2083#	2084#	2085#	2086#	2087	2121	2126#
				2127#	2128#	2129	2130	2131	2132	2257	2271#	2272	2273#	2296#	3034
				3046#	3048	3050	3058#	3066#	3258	3284	3288
DTE$_PWF			2883
DTE$_QUE			3160
DTE$_XMT_MTL			1209
DTECTL				 414	 592	1345*
DTEDBI				 605*	2850
DTEDVI				 606	2851
DTEIN				 455*
DTENMI				 607	2852
DTENM				 598*	1378
DTERCE				 415	 594	1384*
DTESTP				 416	1028	1062	1150	1423*	1899	2045
DTESTR				 417	1068	1479*
DTETIM				 418	 595	1515*
DTEXME				 419	 593	1552*
DTE_BIT				 496#	 527	 538	 549	 560	2085
DTE_CCB_DB_STS			 389#	 439	2461#
DTE_CCB_DB			 388#	 435	 436	 437	 438	2300#	2337#	2376#	2424#
DTE_DB				 390#	 399	 400	 401	 407	 416	 417	 425	 426	 427	 429	 430
				 433	 434	 441	 448	 449	 450	 451	 624#	 718#	 746#	1003#	1423#
				1479#	1751#	1869#	1906#	1983#	2020#	2135#	2230#	2545#	2932#	3007#	3080#
				3173#
DTE_DB_CCB			 391#	 402	 403	 408	 409	 410	 411	 790#	 837#	1030#	1082#	1116#
				1156#	1592
DTE_DB_DTE			 392#	 452	3268#
DTE_DB_STS			 393#	 440	 442	2505#	2587#
DTE_EXT				 501#	2272	3050
DTE_FIELDS			2079	2121	2257	3034	3258
DTE_INTERRUPT			 412	 455	1226*
DTE_K_PAUSE_TIMEOUT		2013
DTE_K_START_TIMEOUT		 669	 680	1783	2776
DTE_K_TRANSMIT_DOORBELL_TIMEOUT	2298	2795	3076
DTE_REG				 394#	 428	1958#
DTE_RESET			 521#	1461
DTE_RINGING			 532#	 781	1320	2725
DTE_SET				 543#	 668	 679	 779	1448	1511	1867	2794	3075	3112	3202
DTE_SYNCHRONIZE			 413	1255	1257*
DTE_TEST			 554#	1291	1303	1305	3048
DTN				1801
D_ACTIVE_BUFFERS		 827	1187	1411	1413	2370	2493	2495
D_BYTES_RECEIVED		3238
D_BYTES_SENT			3162
D_CIRCUIT_COST			 879
D_CIRCUIT_ENTITY		2215
D_CONTROLLER			1801
D_DATA_BLOCKS_RECEIVED		3239
D_DATA_BLOCKS_SENT		3163
D_DEVICE_SERVICE_ERRORS		 787	2793
D_DEVICE_STATE			1074	1505	2709
D_DL_BLK			1202	1209	2212	2217
D_DMH				1001	1708	1793	1814
D_DOORBELL_STUCK		 786
D_EHG				1621	1826	1830
D_EHM				1650	1830	1850
D_EMG				1679	1708	1789
D_FATAL_DEVICE_ERRORS		3121	3211
D_FIELDS			 623	3257
D_HPN				1822
D_INVALID_QCOUNT		2185
D_LINE_ENTITY			1294	2181	3117	3207
D_LINE_STATE			1066	2854
D_LONG_TIMER			 669	 680	1460	1783	2013	2298	2749	2752	2776	2795	3076	3108
D_LOST_DOORBELL			2792
D_MESSAGE_TOO_LONG		2220
D_MKA				2721	2722
D_MPN				1788	1789	1826	1837
D_OWNER_HANDLE			 823	 875	2330	2366	2408	2454	2534	2574	2616	2660
D_PENDING_CONTROLS		 831	1419	2501
D_PERSISTENT_ERROR		 822	2333	2335	2536	2673
D_PROTOCOL_ERRORS		2186	2221
D_PROTOCOL_STATE		 651	 743	 935	 943	1060	1148	1189	1216	1284	1314	1331	2576
				2716	2729	2755	2762	2914	3106
D_RBA				1939	1940	2266	2272	2273	2274	2276	3042	3198	3203
D_RCB				1468	1472	1937	2191	2202	2912	3219	3234	3241
D_RCT				1473	2259	2274	2285	2291	2294	3040	3168	3198	3221	3223	3224
				3225
D_RECEIVE_BA_MISMATCH		3210
D_REGISTER			 668	 679	 779	 781	1291	1295	1303	1305	1320	1448	1461	1511
				1867	2081	2126	2182	2271	2725	2794	3046	3075	3110	3112	3113
				3118	3200	3202	3203	3208
D_REPORTED_STATE		 939	 943
D_REQUESTED_STATE		1064	1146
D_RQZ				2161	2210	2212	2216	2261	2263	2275	2277	2285	2287	3223	3224
				3227
D_RST				 656	 659	 701	1739	1784	1895	2009	2174	2178	2789	2800
D_START_THRESHOLD		1510	1861	2765	2769	2778	2782
D_SYNCH_BLOCK			1255
D_TIM				 649	 667	 678	 681	 684	 686	 687	 692	 695	 697	 704	 706
				 708	 744	 881	 972	1001	1028	1062	1068	1077	1078	1150	1218
				1222	1287	1296	1298	1303	1305	1318	1322	1334	1337	1340	1341
				1381	1451	1458	1459	1462	1477	1509	1512	1513	1549	1591	1621
				1650	1679	1708	1741	1786	1791	1798	1824	1828	1835	1856	1860
				1862	1863	1866	1898	1899	2012	2045	2087	2129	2164	2184	2187
				2198	2210	2219	2222	2227	2228	2411	2419	2540	2582	2622	2667
				2671	2675	2707	2722	2723	2727	2732	2735	2738	2739	2760	2768
				2781	2803	2805	2808	2809	2814	2816	2919	2920	2924	3003	3057
				3074	3119	3122	3149	3158	3165	3209	3212	3229	3237	3240
D_TRANSIENT_ERROR		 821	2457	2459	2618	2669
D_TRANSMIT_BA_MISMATCH		3120
D_XBA				2267	2973	2974	2986	2987	3041	3050	3052	3054	3058	3105	3113
				3143	3144
D_XBUF				 577	2985	2994
D_XCB				1452	2971	2984	3141
D_XCT				1453	2975	2996	3053	3055	3132	3134	3145
D_XLN				2966	2978	2996	3000	3162	3164
D_XMQ				1193	1462	2265	2958	2965	3160
D_XQZ				1449	1450	1451	1863	2958	3000	3036	3038	3051	3056	3057	3105
				3126	3127	3129	3132	3148	3157	3158	3244
D_XST				 667	 674	 677	 678	1454	1455	1456	1457	1458	1864	1865	1866
				2174	2176	2178	2183	2205	2218	2226	2227	3073	3074	3236	3237
EQLU				2368
ERR10C				3112
ERR11C				3202
ERROR				 306+
EXDP_LINKAGE			 396#	 405	 406	 420	 421	 422	 423	 431	 432	 945#	 974#	1594#
				1623#	1652#	1681#	2047#	2089#
EXMHSG				 420	1594*	1828
EXMHSM				 421	1623*	1741	1835	1856	2210
EXMMYG				 422	1652*	1791
EXMMYH				 423	1681*	1798	1824
EXM_LINKAGE			 395#	 424	1710#
FALSE				 569#	 775	 784	 820	 933	 937	 942	1282	1418	1903	2017	2500
				3170	3246	3296
FC_AST				2331	2409	2455
FC_CCP				 591	 825	 882
FC_CTL				 213+	 226+	 592
FC_RCE				 594
FC_RCP				2371
FC_TIM				 595
FC_XCP				1070	1112	1152	2490
FC_XME				 253+	 266+	 279+	 301+	 593
FD_CTL				1377
FD_TIM				1543
FLD				 478	 484	 485	 487	 488	 496	 497
FLUSH_QUEUE			 462#	1419	1462	2501
FM_CCB				1545
FM_LTM				1544
FM_NM				1378
FM_PIN				1548
FM_PWF				1547
FM_RDB				1546
FM_STP				 227+	1380
FM_STR				 214+	1379
FORPRO				1798	1835
GETCOM				 425	1287	1513	1751*	2760
GET_DTE_DATA_BASE		 619#	 648	 742	 770	 815	 862	 909	 971	1000	1027	1055	1107
				1141	1182	1250	1281	1371	1409	1447	1503	1540	1578	1620	1649
				1678	1707	1734	1775	1893	1931	2007	2044	2073	2115	2159	2254
				2325	2361	2401	2449	2485	2529	2569	2611	2652	2706	2849	2910
				2956	3031	3104	3197
GET_HIS_STATUS			 424	1318	1710*	2723
I				 659	 674	 677	1864	1895
INDEX				1795	1832
INFO				 306+
INITIALIZATION_REQUESTED	 426	 695	 706	1337	1869*	2735	2805
INT10S				 668	 679	1867	2794	3075
INT11C				 779
INTROF				1448
INTRON				 668	 679	1511
KPALIV				2722
LANGUAGE			   3
LCL				 573#	 681	1477	1509	1860
LIN				 201+	 210+	 211+
LINKAGE_DB			 404	 885#
LIST_FIRST			2265	2958	2965
MAP$				2995
MCB$GAW_PROCESS_DATA_BASE	 611	 616	 622
MCB$GA_PROCESS_DISPATCH		 610
MCB$GW_PROCESS_HANDLE		 612
MCB$GW_RDB_SIZE			 613
MCB_CCB				 598
MCB_DB				 413	 444	 445	 446	1257#	1550	2682#	2825#	2859#
MCB_DB_CCB_MOD			 414	 419	1345#	1552#
MCB_DB_CCB			 415	 443	 447	1382	1384#	2627#	2885#
MCB_DB_MOD			 418	1515#
MCB_INTERRUPT			 412	 455	1226#
MODIFIER			1345	1376	1515	1542	1552	1584
MSG_CNT				1200	1202#	1207#
NAME				 590#	 619	 620	 621	 622#
NEW_RCB				 427	1906*	2198	2919	2924
NONE				 125
NO_OPERATION			 570#	 713	1310	1327	2745	2820
NPRCNT				1795	1832
NPRSIZ				1793	1830
OFFSET				 945	 972	 974	1001	1594	1621	1623	1650	1652	1679	1681	1708
				2047	2086	2089	2128
PARAMETER_DEVICE_REGISTERS	 428	1295	1942*	2182	3118	3208
PARAMETER_DU_2			2216	2217
PARAMETER_H_2			1978
PAUSED				 429	 692	1334	1983*	2732
PHYSICAL_ADD			 478#	3105	3198
PHYSICAL_HIGH			 487	 488	1940	2266	2267	2272	2974	2987	3041	3042	3050	3144
PHYSICAL_LOW			 484	 485	1939	2273	2274	2276	2973	2986	3052	3054	3058	3113
				3143	3203
PIDENT				1791	1828
PRCNUM				1788
PROPNT				1824
PROSIZ				1810	1846
PROTOCOL_BROKEN			 430	2020*	2222
PROTYP				1820
PROVIDER_PIX			 201+	 207+	 208+	 217+	 223+	 224+	 244+	 250+	 251+	 257+	 263+	 264+
				 270+	 276+	 277+	 292+	 298+	 299+
PRTDEP				 431	 972	1001	2047*
PRTEXM				 432	1621	1650	1679	1708	1786	2089*
PSIZE				1450	2161	2212	2216	2261	2958	3000	3036	3126	3129	3224	3227
QCOUNT				1457	2174	2176	2178	2183	2205	2218
QSIZE				1451	1863	2210	3057	3158
QUEUE				 462	 469
RCV				1455	2226	2789	3236
RDBGT$				2198
RDBRQ$				2206
RDBRT$				1410	1471	2368	2912	2927
REASON				 718
RECEIVE_MESSAGE			 433	 687	 697	 708	1341	2135*	2739	2809	2920
RECEIVE_SEGMENT			 434	2164	2228	2230*	3229
RECOVERY			2658	2662	2667	2671	2675
REG				 509#	 516#	 525#	 527#	 536#	 538	 547#	 549#	 558#	 560	1949	1970#
				1978	1979#
RELADR				1789
REPORT_STATUS			 918#	 943
RETURN_CALL			 462	 471
RMT				 574#	 684	 704	2012	2803
ROT				 482	 484
SCHEDULE_PERSISTENT_AST		 435	2300*	2540	2675
SCHEDULE_RECEIVE		 436	2337*	3240
SCHEDULE_STATE_AST		 437	2376*	2419	2582	2667
SCHEDULE_TRANSIENT_AST		 438	2424*	2622	2671
SCHEDULE_TRANSMIT		 439	1222	1462	2461*	3165
SEND_PERSISTENT_ERROR		 440	1077	1296	1898	2184	2219	2505*	2814	3119	3209
SEND_STATE			 441	 744	1078	2545*
SEND_TRANSIENT_ERROR		 442	2587*	2768	2781
SEVERE				 306+
SIZE				1808	1810#	1812#	1814	1844	1846#	1848#	1850
STAT11				3284	3288
STATE				 718	 743
STATUS				 667	 678	 773	 775#	 781#	 784#	 788	 868#	1458	1741	1856	1866
				2124	2129#	2133	2227	2461	2491	2505	2536	2587	2618	3074	3237
				3277	3279#	3290#	3296#	3298
SUCCESS				 306+	1778#	1803	1816	1839	1852
SYNCH$				1255
T10DON				 450	1303	3080*
T11DON				 451	1305	3173*
TABLE$				 591	 868	 918	 924	1377	1543	1585
TENAD				2085	2086	2127	2128
TENAD1				2085	2127
TENAD2				2086	2128
TIMCCB				 443	1545	2627*
TIMLTM				 444	1544	2682*
TIMPIN				 445	1548	2825*
TIMPWF				 446	1547	2859*
TIMRDB				 447	1546	2885*
TMODE				2287	3056
TO10AD				3058	3113
TO10BC				3110
TO10BM				3062	3065
TO10CM				3110
TO10DB				3048
TO10DN				1303
TO10ER				1291
TO11AD				2273	3203
TO11BC				2296	3200
TO11BM				2281	2290
TO11CM				2281	2287	3200
TO11DB				 538
TO11DN				1305
TO11ER				1291
TO11IB				2281	2285
TOPRCN				1822	1837
TRANSMIT_MESSAGE		 448	 686	1218	1340	2738	2808	2932*
TRANSMIT_SEGMENT		 449	3003	3007*	3149
TRUE				 568#	 781	 830	1254	1900	2014	2576	2578	3290
V				 656	 701	1454	1858	1865	2009	2800
VALUE				 478	 485	 512	 514#	 515#	 516	2281	2283#	2285#	2287#	2290#	2296
				3062	3064#	3065#	3066
WARNING				 306+
WTEXDP				 452	2087	2129	3249*
$DLL$CCB			 205+#	 208+#	 211+#	 213+#	 214+#	 215+	 221+#	 224+#	 226+#	 227+#	 228+	 248+#
				 251+#	 253+#	 254+#	 255+	 261+#	 264+#	 266+#	 267+#	 268+	 274+#	 277+#	 279+#
				 280+#	 281+	 296+#	 299+#	 301+#	 302+#	 303+
$DLL_ENTER_MAINTENANCE		 270+#
$DLL_ERROR			 333+	 334+	 358+
$DLL_INFO			 339+	 340+	 341+	 342+
$DLL_INITIALIZE			 244+#
$DLL_RELEASE_CIRCUIT		 217+#
$DLL_REQUEST_CIRCUIT		 201+#
$DLL_SEVERE			 360+	 362+	 364+
$DLL_STOP			 257+#
$DLL_SUCCESS			 332+
$DLL_TRANSMIT			 292+#
$DLL_WARNING			 335+	 346+	 348+	 350+	 356+	 367+	 372+	 374+
$DSPCR				 587*	 591	1377	1543	1585
$MCB_CONVERT_TO_UBA_ADDRESS	1938	2972	2985#	3142
$MCB_COPY_CHAIN_TO_BUFFER	2994
$MCB_ENABLE_LONG_TIMER		2856
$MCB_GET_CCB			2417	2538	2580	2620	2679
$MCB_PROCESS			 589
$MCB_REQUEST_CCB		2421	2542	2584	2624
$MCB_RETURN_CCB			2406	2660	2677
$MCB_SCHEDULE_CCB		 215+	 228+	 255+	 268+	 281+	 303+	 834	 883	1072	1114	1154	1419
				2334	2374	2412	2458	2492	2501
$NM_DLL_EVENT			2215
$NM_PLL_EVENT			1294	2181	3117	3207
$SHOW				 125
$SUB_FIELD			 484	 485	 487	 488	 515	 516	 656	 659	 674	 677	 701	1449
				1450	1454	1455	1456	1457	1864	1865	1895	1939	1940	2009	2082
				2083	2084	2085	2086	2127	2128	2130	2131	2132	2161	2174	2176
				2178	2183	2205	2212	2216	2218	2226	2261	2263	2265	2266	2267
				2272	2273	2274	2275	2276	2277	2285	2287	2789	2800	2958	2965
				2973	2974	2986	2987	3000	3036	3038	3041	3042	3050	3051	3052
				3054	3056	3058	3073	3105	3110	3113	3126	3127	3129	3132	3143
				3144	3148	3157	3200	3203	3223	3224	3227	3236	3244	3284	3288
%REMAINING			 471	 549	 560