Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/drivers/dtedat.lst
There are no other files named dtedat.lst in the archive.
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page   1
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (1)

;	  0001	! [Beginning of DTEDAT]
;	  0002	!
;	  0003	!
;	  0004	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0005	!                    DIGITAL EQUIPMENT CORPORATION
;	  0006	!                        Maynard, Massachusetts
;	  0007	!
;	  0008	!     This software is furnished under a license and may  be  used
;	  0009	!     and copied only in accordance with the terms of such license
;	  0010	!     and with the inclusion of the above copyright notice.   This
;	  0011	!     software  or any other copies thereof may not be provided or
;	  0012	!     otherwise made available to any other person.  No  title  to
;	  0013	!     and ownership of the software is hereby transferred.
;	  0014	!
;	  0015	!     The information  in  this  software  is  subject  to  change
;	  0016	!     without  notice  and should not be construed as a commitment
;	  0017	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0018	!
;	  0019	!     DIGITAL assumes no responsibility for the use or reliability
;	  0020	!     of  its  software  on  equipment  which  is  not supplied by
;	  0021	!     DIGITAL.
;	  0022	!
;	  0023	
;	  0024	!++
;	  0025	!
;	  0026	! FACILITY: MCB DTE Driver
;	  0027	!
;	  0028	! ABSTRACT:
;	  0029	!
;	  0030	!	This contains the data structure definitions for the DTE DLC.
;	  0031	!
;	  0032	! ENVIRONMENT: MCB V3.0
;	  0033	!
;	  0034	! AUTHOR: Alan D. Peckham	CREATION DATE: 28-May-80
;	  0035	!
;	  0036	! MODIFIED BY:
;	  0037	!
;	  0038	!	Alan D. Peckham, 28-May-80: Version 1
;	  0039	! 01	- Move to seperate module for dump analyzer access.
;	  0040	! 02	- Cahnge $LENGTH references to $FIELD_SET_SIZE.
;	  0041	! 03	- Support counters required by Network Management.
;	  0042	! 04	- Add debugging status codes
;	  0043	! 05	- Bug found! Remove status codes.
;	  0044	! 06	- Add data base length symbol.
;	  0045	! 07	- Add transmit buffer.
;	  0046	! 08	- Look for empty queues.
;	  0047	! 09	- Map the data base.
;	  0048	! 10	- Add Network Management event logging.
;	  0049	! 11	- Add interrupt vector/priority.
;	  0050	! 12	- Enlarge event logging buffer.
;	  0051	! 13	- Add DTE directory process data base.
;	  0052	! 14	- Add Line/Circuit name entry.
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page   2
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (1)

;	  0053	! 15	- Ron Platukis..... Add D_DOORBELL_LOST counter
;	  0054	! 16	- Add system specific line counters.
;	  0055	! 17	- Add CIRCUIT COST for Transport.
;	  0056	! 18	- Add time counters zeroed.
;	  0057	!--
;	  0058	
;	  0059	%if not %declared (XPO$K_VERSION) %then library 'XPORT'; %fi
;	  0060	
;	  0061	%if not %declared (MCB$K_VERSION) %then library 'MCBLIB'; %fi
;	  0062	
;	  0063	library 'NMXLIB';
;	  0064	
;	  0065	$SHOW (FIELDS) $SHOW (LITERALS)
;	  0066	
;	  0067	!
;	  0068	! Status Codes:
;	  0069	!
;	  0070	
;	  0071	DECLARE_SEVERITY (DTE, INFO, SEVERE);
;	  0072	
;	  0073	$DTE_INFO (DTE$_EVT, 'Network event')
;	  0074	$DTE_SEVERE (DTE$_INI, 'Unable to initialize DTE process')
;	  0075	$DTE_SEVERE (DTE$_PWF, 'Unable to handle power failure')
;	  0076	$DTE_SEVERE (DTE$_QUE, 'Unexpected empty queue')
;	  0077	$DTE_INFO (DTE$_XMT_MTL, 'Message from line owner too long')
;	  0078	$DTE_INFO (DTE$_SEG, 'Multi-segment message being received')
;	  0079	$DTE_INFO (DTE$_LOG, 'Event logging buffer too small')
;	  0080	
;	  0081	macro
;	  0082	    PARAMETER_DEVICE = P1000 %,
;	  0083	    PARAMETER_DEVICE_REGISTERS = PLL0 %,
;	  0084	    PARAMETER_LINE_COUNTERS = PLN %,
;	  0085	    PARAMETER_STATION_COUNTERS = PST %;
;	  0086	
;	  0087	literal
;	  0088	    DTE_K_PAUSE_TIMEOUT = 30,
;	  0089	    DTE_K_START_TIMEOUT = 5,
;	  0090	    DTE_K_TRANSMIT_DOORBELL_TIMEOUT = 3,
;	  0091	    DTE_K_LINE_PROVIDER = 0^1,
;	  0092	    DTE_K_LINE_OWNER = 1^1,
;	  0093	    DTE_K_CIRCUIT_PROVIDER = 2^1,
;	  0094	    DTE_K_NMID_HIGH = 2^1;
;	  0095	
;	  0096	!
;	  0097	! Data base creation items
;	  0098	!
;	  0099	
;	  0100	macro
;	M 0101	    $SKIP_FIELD [] =
;	  0102		%bliss36 [%bliss32 [%remaining]] %,
;	  0103	    !
;	  0104	    ! Allocate room for process handle
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page   3
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (1)

;	  0105	    !
;	  0106	    $PROCESS_HANDLE = $SHORT_INTEGER %;
;	  0107	
;	  0108	$FIELD
;	  0109	    !
;	  0110	    ! List head definition
;	  0111	    !
;	L 0112	    LIST_FIRST = [$ADDRESS],
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0113	    LIST_LAST = [$ADDRESS];
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	  0114	
;	  0115	compiletime
;	L 0116	    $dte$length = $FIELD_SET_SIZE;
; %PRINT:				  2 fullwords
;	  0117	
;	  0118	macro
;	  0119	    $LIST_HEAD = $SUB_BLOCK (%expand %number ($dte$length)) %;
;	  0120	
;	  0121	$FIELD
;	  0122	    !
;	  0123	    ! Physical 18 bit address
;	  0124	    !
;	L 0125	    PHYSICAL_HIGH = [$BITS (16)],
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0126	    PHYSICAL_LOW = [$BITS (16)];
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	  0127	
;	L 0128	%assign ($dte$length, $FIELD_SET_SIZE)
; %PRINT:				  2 fullwords
;	  0129	
;	  0130	macro
;	  0131	    $PHYSICAL_ADDRESS = $SUB_BLOCK (%expand %number ($dte$length)) %;
;	  0132	
;	  0133	$FIELD
;	  0134	    !
;	  0135	    ! Communications region word
;	  0136	    !
;	L 0137	    COMM_WORD_0 = [$BITS (16)],
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0138	    COMM_WORD_1 = [$BITS (16)],
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	L 0139	    COMM_WORD_2 = [$BITS (4)];
; %PRINT:				  [2,0,4,0]   (+%O'4')
;	  0140	
;	L 0141	%assign ($dte$length, $FIELD_SET_SIZE)
; %PRINT:				  3 fullwords
;	  0142	
;	  0143	macro
;	  0144	    $COMM_WORD = $SUB_BLOCK (%expand %number ($dte$length)) %;
;	  0145	
;	  0146	undeclare
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page   4
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (1)

;	  0147	    $dte$length;
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page   5
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (2)

;	  0148	!
;	  0149	! DTE20 hardware register definitions
;	  0150	!
;	  0151	
;	  0152	literal
;	  0153	    CSTOFF = %o'34'/%upval;		! Offset to STATUS register
;	  0154	
;	  0155	field
;	  0156	    DTE_FIELDS =
;	  0157		set
;	  0158	
;	  0159		 DLYCNT = [0 - CSTOFF, 0, 14, 1],
;	  0160						!  Negative delay count.
;	  0161						!  The software specifies how many 500
;	  0162						!  nanosecond units of delay are to occur
;	  0163						!  between each byte on byte transfers in
;	  0164						!  either direction.  The delay also
;	  0165						!  applies before the first byte.  The
;	  0166						!  hardware upcounts a copy of this
;	  0167						!  negative number once each 500 nano
;	  0168						!  seconds, until bit 13 = 0.
;	  0169						!  This location is never reset by
;	  0170						!  hardware, including reset issued by
;	  0171						!  the -10 or the -11.  Therefore software
;	  0172						!  must set it to a particular value at
;	  0173						!  system startup before doing the first
;	  0174						!  transfer.
;	  0175		 BUSEXT = [0 - CSTOFF, 14, 2, 0],
;	  0176						!  UNIBUS address bits 16-17 specifies
;	  0177						!  high order two bits of 18 bit PDP-11
;	  0178						!  addresses.  Transfer cannot cross a 32K
;	  0179						!  boundry.  To-11 and to-10 transfers
;	  0180						!  must be in the same 32K bank.
;	  0181		DEXWD = [1 - CSTOFF, 0, 36, 0],
;	  0182		    DEXWD3 = [0, 0, 16, 0],	!  KL data word bits 20-35
;	  0183		    DEXWD2 = [1, 0, 16, 0],	!  KL data word bits  4-19
;	  0184		    DEXWD1 = [2, 0, 16, 0],	!  KL data word bits  0- 4
;	  0185		TENAD = [4 - CSTOFF, 0, 22, 0],
;	  0186		    TENAD1 = [0, 0, 16, 0],
;	  0187						!  Except for PRTOFF, this word is not
;	  0188						!  reset so that the -11 program need
;	  0189						!  not write it for each operation.
;	  0190			TENADM = [$SUB_FIELD (TENAD1, 0, 0, 7, 0)],
;	  0191						!  KL address bits 13-19
;	  0192			PRTOFF = [$SUB_FIELD (TENAD1, 0, 11, 1, 0)],
;	  0193						!  Examine/deposit protection off.  This
;	  0194						!  bit is ignored if the DTE20 is switched
;	  0195						!  to restricted mode.  For a privledged
;	  0196						!  front end, if a 1, examines and deposits
;	  0197						!  are not relocated and no protection
;	  0198						!  check is made on them.  Instead the
;	  0199						!  address space desired is indicated by
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page   6
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (2)

;	  0200						!  the SPACE field.  The DTE20 resets the
;	  0201						!  associated hardware bit after every
;	  0202						!  examine and deposit to reduce the chance
;	  0203						!  that a runaway program in a privledged
;	  0204						!  front end -11 will clobber the -10.
;	  0205						!  A restricted front-end can only examine
;	  0206						!  or deposit in the communications regions
;	  0207						!  defined by the -10.  A read of TENAD1
;	  0208						!  returns the value written by the last
;	  0209						!  write of TENAD1 and so may differ from
;	  0210						!  the associated hardware bit which
;	  0211						!  controls the protection.  If PRTOFF = 0,
;	  0212						!  examines are relocated by the EPT.
;	  0213			DEP = [$SUB_FIELD (TENAD1, 0, 12, 1, 0)],
;	  0214						!  -11 software specifies whether a
;	  0215						!  deposit (1) or examine (0) function is
;	  0216						!  to be done whenever the -11 writes word
;	  0217						!  TENAD2.  On a read of TENAD1, DEP is
;	  0218						!  a 1 if the last deposit/examine was
;	  0219						!  a deposit or a diagnostic deposit; it
;	  0220						!  is a 0 if the last deposit/examine was
;	  0221						!  an examine or a diagnostic examine.
;	  0222			SPACE = [$SUB_FIELD (TENAD1, 0, 13, 3, 0)],
;	  0223						!  Address space.  This field is used for
;	  0224						!  unprotected examines or deposits only
;	  0225						!  on privledged front ends when
;	  0226						!  TENAD1[PRTOFF] = 1.
;	  0227						!    0  Exec process table.
;	  0228						!    1  Exec virtual.
;	  0229						!    2  User process table.
;	  0230						!    3  User virtual.
;	  0231						!    4  Physical
;	  0232						!   5-7 (reserved to DEC)
;	  0233		    TENAD2 = [1, 0, 16, 0],	!  KL address bits  0-12
;	  0234						!  Depositing in this word starts the examine/deposit
;	  0235		TO10BC = [6 - CSTOFF, 0, 16, 0],
;	  0236		    TO10CM = [0, 0, 12, 0],
;	  0237		TO11BC = [7 - CSTOFF, 0, 16, 0],
;	  0238		    TO11CM = [0, 0, 12, 0],
;	  0239		    TO11BM = [0, 13, 1, 0],
;	  0240		    TO11IB = [0, 15, 1, 0],
;	  0241		TO10AD = [8 - CSTOFF, 0, 16, 0],
;	  0242		TO11AD = [9 - CSTOFF, 0, 16, 0],
;	  0243		TO10DT = [10 - CSTOFF, 0, 16, 0],
;	  0244		TO11DT = [11 - CSTOFF, 0, 16, 0],
;	  0245		DIAG1 = [12 - CSTOFF, 0, 16, 0],
;	  0246	                                        !  Write-only bits:
;	  0247		    DCOMST = [0, 0, 1, 0],      !   If 1 and DTE20 is switched to
;	  0248	                                        !   priviledged, sets diagnostic
;	  0249	                                        !   command start.  A 0 clears
;	  0250	                                        !   diagnostic command start.
;	  0251		    DSEND  = [0, 2, 1, 0],      !   If 1, send data (to-10) during a
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page   7
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (2)

;	  0252	                                        !   diagnostic bus transfer.
;	  0253	                                        !   If 0, receive data (to-11) during
;	  0254	                                        !   a diagnostic bus transfer.
;	  0255		    DIKL10 = [0, 3, 1, 0],      !   If 1 and DTE20 is switched to
;	  0256	                                        !   priviledged, put the DTE20 into
;	  0257	                                        !   KL10 diagnostic data transfer mode.
;	  0258	                                        !   Subsequent examines and deposits
;	  0259	                                        !   become diagnostic functions instead
;	  0260	                                        !   of accessing KL10 memory.
;	  0261	                                        !   If 0, put the DTE20 in normal data
;	  0262	                                        !   transfer mode.
;	  0263	                                        !   Subsequent examines and deposits
;	  0264	                                        !   will refer to KL10 memory.
;	  0265	                                        !  Read-only bits:
;	  0266	!	    DCOMST = [0, 0, 1, 0],      !   If 1, a diagnostic command is
;	  0267	                                        !   in progress.
;	  0268		DIAG2 = [13 - CSTOFF, 0, 16, 0],
;	  0269	                                        !  Write-only bits:
;	  0270		    DRESET = [0, 6, 1, 0],      !   DTE20 reset.
;	  0271	            EDONES = [0, 14, 1, 0],     !   If 1, set EBUS done.  If 0,
;	  0272	                                        !   clear EBUS done.
;	  0273	                                        !  Read-only bits:
;	  0274	!                  = [0, 1, 4, 0],      !   Loads 04,03,02,01 into minor state
;	  0275	                                        !   counter 8,4,12,1.  For diagnostic
;	  0276	                                        !   use only.  During normal operation
;	  0277	                                        !   must be zero.
;	  0278	            RFMAD3 = [0, 12, 1, 0],     !   Contents of RFM address bit 3.
;	  0279	            RFMAD2 = [0, 13, 1, 0],     !   Contents of RFM address bit 2.
;	  0280	            RFMAD1 = [0, 14, 1, 0],     !   Contents of RFM address bit 1.
;	  0281	            RFMAD0 = [0, 15, 1, 0],     !   Contents of RFM address bit 0.
;	  0282		STAT11 = [14 - CSTOFF, 0, 16, 0],
;	  0283	                                        !  Write-only bits:
;	  0284		    ERR11C = [0, 0, 1, 0],
;	  0285	            ERR11S = [0, 1, 1, 0],
;	  0286	            EBUSPS = [0, 2, 1, 0],
;	  0287		    INTROF = [0, 3, 1, 0],
;	  0288	            EBUSPC = [0, 4, 1, 0],
;	  0289		    INTRON = [0, 5, 1, 0],
;	  0290		    DON11C = [0, 6, 1, 0],
;	  0291	            DON11S = [0, 7, 1, 0],
;	  0292	            INT10S = [0, 8, 1, 0],
;	  0293	            PERCLR = [0, 9, 1, 0],
;	  0294		    INT11C = [0, 10, 1, 0],
;	  0295	            INT11S = [0, 11, 1, 0],
;	  0296		    ERR10C = [0, 12, 1, 0],
;	  0297	            ERR10S = [0, 13, 1, 0],	!   If 1, set to-10 error termination
;	  0298						!   status [TO10ER].
;	  0299						!   This bit is provided for diagnostic
;	  0300						!   purposes only.
;	  0301		    DON10C = [0, 14, 1, 0],	!   If 1, clear to-10 normal
;	  0302						!   termination status [TO10DN].
;	  0303	            DON10S = [0, 15, 1, 0],	!   If 1, set to-10 normal termination
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page   8
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (2)

;	  0304						!   status [TO10DN].
;	  0305						!   This bit is provided for diagnostic
;	  0306						!   purposes only.
;	  0307						!   Writing a 1 does not terminate a
;	  0308						!   transfer in progress.
;	  0309	                                        !  Read-only bits:
;	  0310		    INTSON = [0, 0, 1, 0],      !   If 1, the DTE20 is enabled
;	  0311	                                        !   to generate -11 BR requests.
;	  0312	                                        !   If 0, it is disabled.
;	  0313	                                        !   (INTRON enables, INTROF disables)
;	  0314		    TO11ER = [0, 1, 1, 0],      !   An error occurred during a to-11
;	  0315	                                        !   byte transfer, or the -11 program
;	  0316	                                        !   set the bit STAT11 [ERR11S].
;	  0317	                                        !   STAT11 [TO11DN] will not be set
;	  0318	                                        !   if an error termination occurred.
;	  0319	                                        !   Thus programs must test for both
;	  0320	                                        !   TO11DN and TO11ER.
;	  0321		    DEXDON = [0, 2, 1, 0],      !   The last deposit or examine operation
;	  0322	                                        !   has completed.  No interrupt occurrs.
;	  0323	                                        !   The -11 must watch for this watch
;	  0324	                                        !   for this bit to be set after every
;	  0325	                                        !   deposit or examine.  The DTE20 clears
;	  0326	                                        !   STAT11 [DEXDON] whenever a deposit or
;	  0327	                                        !   examine is started (by writing TENAD2).
;	  0328		    RM     = [0, 3, 1, 0],      !   If 1, the attached PDP-11 is in
;	  0329	                                        !   restricted mode.  If 0, the attached
;	  0330	                                        !   PDP-11 is in privledged mode.  The
;	  0331	                                        !   value of this bit is determined by
;	  0332	                                        !   the setting of the privledged switch
;	  0333	                                        !   on the DTE20.
;	  0334		    BPARER = [0, 4, 1, 0],      !   The DTE20 detected an EBUS parity
;	  0335	                                        !   error during a to-11 DTE20 byte
;	  0336	                                        !   transfer or examine transfer.
;	  0337	            NULSTP = [0, 5, 1, 0],      !   The to-11 transfer stopped because the
;	  0338	                                        !   stop bit was set (TO11BC [ZSTOP] = 1).
;	  0339	            EBSEL  = [0, 6, 1, 0],      !   E buffer select.  This bit is provided
;	  0340	                                        !   on a read for diagnostic purposes only.
;	  0341	                                        !   It has no meaning and is unpredicatable
;	  0342	                                        !   unless the DTE20 is being single
;	  0343	                                        !   stepped.
;	  0344		    TO11DN = [0, 7, 1, 0],      !   The to-11 byte count became equal to 0
;	  0345	                                        !   (TO11BC = 0), the trasnfer stopped on
;	  0346	                                        !   a null character (STAT11 [NULSTP] = 1),
;	  0347	                                        !   or the -11 program set the bit
;	  0348	                                        !   (STAT11 [DON11S]).
;	  0349		    TO10DB = [0, 8, 1, 0],      !   The -11 has requested a -10 doorbell
;	  0350	                                        !   interrupt STAT11 [INT10S] and the -10
;	  0351	                                        !   has not yet cleared the bit
;	  0352	                                        !   (CONO DTEN, CL11PT).
;	  0353		    MPE11  = [0, 9, 1, 0],      !   Indicates the -11 memory had a parity
;	  0354	                                        !   error during a data fetch for a to-10
;	  0355	                                        !   byte transfer.  Parity errors are
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page   9
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (2)

;	  0356	                                        !   detected only if the -11 has the
;	  0357	                                        !   MF11UP or MF11LP parity option.
;	  0358	            DXWRD1 = [0, 10, 1, 0],     !   This bit is provided on a read for
;	  0359	                                        !   diagnostic purposes only.  It has
;	  0360	                                        !   no meaning and is unpredicatable
;	  0361	                                        !   unless the DTE20 is being single
;	  0362	                                        !   stepped.
;	  0363		    TO11DB = [0, 11, 1, 0],     !   The -10 has requested (CONO DTEN, TO11DB)
;	  0364	                                        !   an -11 doorbell interrupt.
;	  0365	            RAMIS0 = [0, 12, 1, 0],     !   The data out of a RAM location is all
;	  0366	                                        !   0's.  This bit is provided on a read
;	  0367	                                        !   for diagnostic purposes only.  It has
;	  0368	                                        !   no meaning and is unpredicatable unless
;	  0369	                                        !   the DTE20 is being single stepped.
;	  0370		    TO10ER = [0, 13, 1, 0],     !   An NPR UNIBUS parity error (DIAG3 [NUPE]),
;	  0371	                                        !   PDP-11 memory parity (STAT11 [11MPE]),
;	  0372	                                        !   or a UNIBUS timeout (no bit) occurred
;	  0373	                                        !   during a to-10 byte transfer, or the
;	  0374	                                        !   -11 program set the STAT11 [ERR10S].
;	  0375	                                        !   STAT11 [TO10DN] will not be set, if
;	  0376	                                        !   an error termination occurred.  Thus
;	  0377	                                        !   -11 programs must test for both TO10DN
;	  0378	                                        !   and TO10ER.
;	  0379		    TO10DN = [0, 15, 1, 0],     !   The to-10 byte count went to 0 or the
;	  0380	                                        !   the -11 program set the bit
;	  0381	                                        !   STAT11 [DON10S].  TO10DN will not be
;	  0382	                                        !   set if an error termination occurred.
;	  0383	                                        !   See STAT11 [TO10ER].
;	  0384		DIAG3 = [15 - CSTOFF, 0, 16, 0],
;	  0385	                                        !  Write-only bits:
;	  0386		    TO10BM = [0, 0, 1, 0],      !   If 1, to-10 byte trasnfers are to be
;	  0387	                                        !   done in byte mode from -11 memory.
;	  0388	                                        !   If 0, to-10 byte transfers are to be
;	  0389	                                        !   done in word mode from -11 memoty.
;	  0390	            CNUPE  = [0, 1, 1, 0],      !   Clear NUPE.
;	  0391	            WEP    = [0, 3, 1, 0],      !   If 1, write even UNIBUS parity.
;	  0392	                                        !   Results in DTE20 generating even (bad)
;	  0393	                                        !   parity on all UNIBUS trasnfers which
;	  0394	                                        !   have parity.  If 0, the DTE20 will
;	  0395	                                        !   generate off (good) parity on all
;	  0396	                                        !   subsequent UNIBUS transfers which have
;	  0397	                                        !   parity.  This bit is provided for
;	  0398	                                        !   diagnostic purposes to check the
;	  0399	                                        !   parity networks.
;	  0400	            CDD    = [0, 4, 1, 0],      !   Clear DUPE and DURE error flags.
;	  0401	            SCD    = [0, 5, 1, 0],      !   Shift captured data so next read
;	  0402	                                        !   of DIAG3 will change bits 13-08.
;	  0403	                                        !  Read-only bits:
;	  0404	            NUPE   = [0, 1, 1, 0],      !   If 1, a unibus parity error has
;	  0405	                                        !   occurred on an NPR (byte) transfer.
;	  0406	            DURE   = [0, 2, 1, 0],      !   A UNIBUS receiver error has occurred.
;	  0407	!           WEP    = [0, 3, 1, 0],      !   Read status of Write Even UNIBUS
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page  10
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (2)

;	  0408	                                        !   Parity flip-flop.
;	  0409	            DUPE   = [0, 4, 1, 0],      !   If 1, a DATAO UNIBUS parity error
;	  0410	                                        !   has been detected by the DTE20.
;	  0411	!                  = [0, 8, 6, 0],      !   Ann means UNIBUS register address
;	  0412	                                        !   bit n, Dnn means UNIBUS data bit
;	  0413	                                        !   when UNIBUS parity error detected.
;	  0414	                                        !
;	  0415	                                        !   initial    D15 D14 D13 D12 D11 A00
;	  0416	                                        !   1st shift  D10 D09 D08 D07 D06 A00
;	  0417	                                        !   2nd shift  D05 D04 D03 D02 D01 A00
;	  0418	                                        !   3rd shift  D00 A04 A03 A02 A01 A00
;	  0419	                                        !   4th shift  D15 D14 D13 D12 D11 A00
;	  0420	                                        !   ...        ...
;	  0421	                                        !
;	  0422	            DPS4   = [0, 14, 1, 0],     !   DPS4 [N] parity flop is on a DNE.
;	  0423	                                        !   Diagnostic use only.
;	  0424	            SWSLLT = [0, 15, 1, 0]      !   CNT1 [N] Swap sel lt
;	  0425		tes;
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page  11
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (3)

;	  0426	!
;	  0427	! Communications Region offsets and fields
;	  0428	!
;	  0429	
;	  0430	literal
;	  0431	
;	  0432	    !
;	  0433	    ! General section
;	  0434	    !
;	  0435	
;	  0436	    PIDENT = 0,                         !Processor identification
;	  0437	    CHNPNT = 1,                         !Pointer to next Comm area
;	  0438	    KPALIV = 5,                         !Keep-alive of owning processor (private)
;	  0439	
;	  0440	    !
;	  0441	    ! "To" sections
;	  0442	    !
;	  0443	
;	  0444	    FORPRO = 0,                         !"To" processor identication
;	  0445	    PROPNT = 1,                         !Pointer to "to" processors Comm region
;	  0446	    STATUS = 2,                         !Status word
;	  0447	    QSIZE = 3,                          !Current transfer size
;	  0448	    RELOAD = 4,                         !Reload parameter for "to" processor
;	  0449	    CPKPLV = 5;                         !Copy of "to" processors keep-alive
;	  0450	
;	  0451	field
;	  0452	    COM_FIELDS =
;	  0453		set
;	  0454	
;	  0455		!
;	  0456		! Header word
;	  0457		!
;	  0458	
;	  0459		RELADR = [0, 0, 16, 0],         !Relative address of this processor's area
;	  0460		PRCNUM = [1, 8, 4, 0],          !Processor number
;	  0461	
;	  0462		!
;	  0463		! PIDENT
;	  0464		!
;	  0465	
;	  0466		NAME = [0, 0, 16, 0],           !Serial number of owning processor
;	  0467		NPRSIZ = [1, 0, 3, 0],          !Size of owner's section/(8 words)
;	  0468		NPRCNT = [1, 3, 5, 0],          !Number of processors including owner
;	  0469		PROVER = [1, 8, 6, 0],          !Protocol version (2)
;	  0470		VR = [2, 0, 3, 0],              !Comm area version (3)
;	  0471		X = [2, 3, 1, 0],               !1=This area belongs to -10
;	  0472	
;	  0473		!
;	  0474		! FORPRO
;	  0475		!
;	  0476	
;	  0477		TOPRCN = [0, 0, 16, 0],         !"To" processor number
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page  12
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (3)

;	  0478		PROSIZ = [1, 0, 3, 0],          !Size of block/(8 words)
;	  0479		PROTYP = [1, 3, 5, 0],          !Protocol type:
;	  0480	                                        ! 0=RSX20F
;	  0481	                                        ! 1=NSP
;	  0482		DTN = [2, 0, 2, 0],             !DTE number if D is set
;	  0483		D = [2, 2, 1, 0],               !1=DTE used in connection
;	  0484	!	X = [2, 3, 1, 0],               !1=Communicates with -10
;	  0485	
;	  0486		!
;	  0487		! STATUS
;	  0488		!
;	  0489	
;	  0490		QCOUNT = [0, 0, 8, 0],          !Bumped by owning process for transfer request
;	  0491		CPQCNT = [0, 8, 8, 0],          !Copy of "to" processor's QCOUNT
;	  0492		RCV = [1, 0, 1, 0],
;	  0493		V = [2, 0, 1, 0],               !Valid examine bit
;	  0494		I = [2, 1, 1, 0],               !Init requested
;	  0495		L = [2, 2, 1, 0],               !Reload requested
;	  0496	
;	  0497		!
;	  0498		! QSIZE
;	  0499		!
;	  0500	
;	  0501		CSIZE = [0, 0, 16, 0],          !Number of bytes in current transfer
;	  0502		PSIZE = [1, 0, 16, 0],          !Number of bytes left in current packet
;	  0503		TMODE = [2, 0, 4, 0]            !Transfer mode:
;	  0504	                                        ! 0=8 bit bytes, byte mode
;	  0505	                                        ! 1=8 bit bytes, word mode
;	  0506	                                        ! 2=16 bit bytes, word mode
;	  0507	
;	  0508	    tes;
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page  13
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (4)

;	  0509	!
;	  0510	! DTE driver data base
;	  0511	!
;	  0512	
;	  0513	$FIELD
;	  0514	    D_FIELDS =
;	  0515		set
;	L 0516		D_TIM = [$BYTE],                ! MCB timer (used to count the seconds)
; %PRINT:				  [0,0,8,0]   (+%O'0')
;	L 0517		DC_SET_REQUESTED_STATE = [$BIT],
; %PRINT:				  [0,8,1,0]   (+%O'1')
;	L 0518		DF_NXM = [$BIT],
; %PRINT:				  [0,9,1,0]   (+%O'1')
;	L 0519		DF_NOTIFY_OFF = [$BIT],
; %PRINT:				  [0,10,1,0]   (+%O'1')
;	L 0520		DF_NOTIFY_STATE = [$BIT],	! Notify owner of circuit state
; %PRINT:				  [0,11,1,0]   (+%O'1')
;	L 0521		DF_CONTROL_WAITING = [$BIT],	! CCB waiting on resource returns
; %PRINT:				  [0,12,1,0]   (+%O'1')
;	L 0522		DF_FLUSHING_DTE = [$BIT],	! Waiting for DTE I/O to finish.
; %PRINT:				  [0,13,1,0]   (+%O'1')
;	L 0523		DF_SYNCHRONIZING = [$BIT],	! SYNCH block is active
; %PRINT:				  [0,14,1,0]   (+%O'1')
;	  0524		    $ALIGN (FULLWORD)
;	L 0525		D_REGISTER = [$ADDRESS],	! Address of hardware status register
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	L 0526		D_VECTOR = [$ADDRESS],		! Interrupt vector
; %PRINT:				  [2,0,16,0]   (+%O'4')
;	L 0527		D_PRIORITY = [$TINY_INTEGER],	! Interrupt priority
; %PRINT:				  [3,0,8,1]   (+%O'6')
;	L 0528		D_CONTROLLER = [$TINY_INTEGER],	! Controller number
; %PRINT:				  [3,8,8,1]   (+%O'7')
;	L 0529		D_SYNCH_BLOCK = [$ADDRESS],	! Address of SYNCH block
; %PRINT:				  [4,0,16,0]   (+%O'10')
;	L 0530		D_PROTOCOL_STATE = [$TINY_INTEGER], ! Protocol status byte
; %PRINT:				  [5,0,8,1]   (+%O'12')
;	L 0531		D_REQUESTED_STATE = [$TINY_INTEGER], ! Requested state
; %PRINT:				  [5,8,8,1]   (+%O'13')
;	L 0532		D_REPORTED_STATE = [$TINY_INTEGER],
; %PRINT:				  [6,0,8,1]   (+%O'14')
;	L 0533		D_LINE_STATE = [$TINY_INTEGER],	! Network management line state
; %PRINT:				  [6,8,8,1]   (+%O'15')
;	L 0534		D_DEVICE_STATE = [$TINY_INTEGER],
; %PRINT:				  [7,0,8,1]   (+%O'16')
;	L 0535		D_NMX_PIX = [$BYTE],		! NMX process index
; %PRINT:				  [7,8,8,0]   (+%O'17')
;	  0536		    $ALIGN (FULLWORD)
;	L 0537		D_LONG_TIMER = [$BYTE],
; %PRINT:				  [8,0,8,0]   (+%O'20')
;	L 0538		D_START_THRESHOLD = [$BYTE],
; %PRINT:				  [8,8,8,0]   (+%O'21')
;	L 0539		D_OWNER_HANDLE = [$PROCESS_HANDLE],
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page  14
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (4)

; %PRINT:				  [9,0,16,1]   (+%O'22')
;	L 0540		D_TRANSIENT_ERROR = [$SHORT_INTEGER], ! Unreported transient error
; %PRINT:				  [10,0,16,1]   (+%O'24')
;	L 0541		D_PERSISTENT_ERROR = [$SHORT_INTEGER], ! Unreported persistent error
; %PRINT:				  [11,0,16,1]   (+%O'26')
;	L 0542		D_PENDING_CONTROLS = [$LIST_HEAD], ! Pending control function queue
; %PRINT:				  [12,0,0,0]   (+%O'30')
;	L 0543		D_ACTIVE_BUFFERS = [$SHORT_INTEGER], ! Receive buffers at user and
; %PRINT:				  [14,0,16,1]   (+%O'34')
;	  0544						! transmit buffers from user.
;	L 0545		D_CIRCUIT_COST = [$SHORT_INTEGER], ! ** FOR TRANSPORT **
; %PRINT:				  [15,0,16,1]   (+%O'36')
;	L 0546		D_CIRCUIT_ENTITY = [$SHORT_INTEGER], ! Circuit event logging ID
; %PRINT:				  [16,0,16,1]   (+%O'40')
;	L 0547		D_LINE_ENTITY = [$SHORT_INTEGER], ! Line event logging ID
; %PRINT:				  [17,0,16,1]   (+%O'42')
;	  0548	
;	L 0549		D_MPN = [$TINY_INTEGER],        ! My processor number
; %PRINT:				  [18,0,8,1]   (+%O'44')
;	L 0550		D_HPN = [$TINY_INTEGER],        ! His processor number
; %PRINT:				  [18,8,8,1]   (+%O'45')
;	  0551	                                        ! Comm region offsets:
;	L 0552		D_EHG = [$SHORT_INTEGER],       !  Examine His General
; %PRINT:				  [19,0,16,1]   (+%O'46')
;	L 0553		D_EHM = [$SHORT_INTEGER],       !  Examine His to Me
; %PRINT:				  [20,0,16,1]   (+%O'50')
;	L 0554		D_EMG = [$SHORT_INTEGER],       !  Examine My General
; %PRINT:				  [21,0,16,1]   (+%O'52')
;	L 0555		D_DMH = [$SHORT_INTEGER],       !  Deposit My to Him
; %PRINT:				  [22,0,16,1]   (+%O'54')
;	  0556	
;	L 0557		D_RST = [$COMM_WORD],           ! His last STATUS
; %PRINT:				  [23,0,0,0]   (+%O'56')
;	L 0558		D_RQZ = [$COMM_WORD],           ! His last QSIZE
; %PRINT:				  [26,0,0,0]   (+%O'64')
;	L 0559		D_XST = [$COMM_WORD],           ! My STATUS
; %PRINT:				  [29,0,0,0]   (+%O'72')
;	L 0560		D_XQZ = [$COMM_WORD],           ! My QSIZE
; %PRINT:				  [32,0,0,0]   (+%O'100')
;	L 0561		D_MKA = [$SHORT_INTEGER],       ! My keep-alive
; %PRINT:				  [35,0,16,1]   (+%O'106')
;	  0562	
;	L 0563		D_RCB = [$ADDRESS],             ! Current receive CCB
; %PRINT:				  [36,0,16,0]   (+%O'110')
;	L 0564		D_RBA = [$PHYSICAL_ADDRESS],    ! Current 18 bit receive buffer address
; %PRINT:				  [37,0,0,0]   (+%O'112')
;	L 0565		D_RCT = [$SHORT_INTEGER],       ! Current transfer count
; %PRINT:				  [39,0,16,1]   (+%O'116')
;	L 0566		D_XMQ = [$LIST_HEAD],           ! Transmit buffer queue
; %PRINT:				  [40,0,0,0]   (+%O'120')
;	L 0567		D_XLN = [$SHORT_INTEGER],	! Current message length
; %PRINT:				  [42,0,16,1]   (+%O'124')
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page  15
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (4)

;	L 0568		D_XCB = [$ADDRESS],             ! Current transfer CCB
; %PRINT:				  [43,0,16,0]   (+%O'126')
;	L 0569		D_XBA = [$PHYSICAL_ADDRESS],    ! Current 18 bit transmit buffer address
; %PRINT:				  [44,0,0,0]   (+%O'130')
;	L 0570		D_XCT = [$SHORT_INTEGER],       ! Current transmit count
; %PRINT:				  [46,0,16,1]   (+%O'134')
;	  0571	
;	L 0572		D_BYTES_RECEIVED = [$COUNTER (32)], ! Bytes received
; %PRINT:				  [47,0,0,1]   (+%O'136')
;	L 0573		D_BYTES_SENT = [$COUNTER (32)], ! Bytes transmitted
; %PRINT:				  [49,0,0,1]   (+%O'142')
;	L 0574		D_DATA_BLOCKS_RECEIVED = [$COUNTER (32)], ! Messages received
; %PRINT:				  [51,0,0,1]   (+%O'146')
;	L 0575		D_DATA_BLOCKS_SENT = [$COUNTER (32)], ! Messages transmitted
; %PRINT:				  [53,0,0,1]   (+%O'152')
;	L 0576		D_TIME_LINE_ZEROED = [$TIME],	    ! Time line counters zeroed
; %PRINT:				  [55,0,0,1]   (+%O'156')
;	  0577		    $ALIGN (FULLWORD)
;	L 0578		D_CONFIGURATION_ERRORS = [$COUNTER (8)],
; %PRINT:				  [57,0,8,1]   (+%O'162')
;	L 0579		D_INVALID_CONTROLLER_REGISTER = [$COUNTER (1)],
; %PRINT:				  [57,8,1,0]   (+%O'163')
;	L 0580		D_NXM_CONTROLLER_REGISTER = [$COUNTER (1)],
; %PRINT:				  [57,9,1,0]   (+%O'163')
;	L 0581		D_INVALID_UNIT_REGISTER = [$COUNTER (1)],
; %PRINT:				  [57,10,1,0]   (+%O'163')
;	L 0582		D_NXM_UNIT_REGISTER = [$COUNTER (1)],
; %PRINT:				  [57,11,1,0]   (+%O'163')
;	L 0583		D_INVALID_VECTOR = [$COUNTER (1)],
; %PRINT:				  [57,12,1,0]   (+%O'163')
;	L 0584		D_CONFLICTING_VECTOR = [$COUNTER (1)],
; %PRINT:				  [57,13,1,0]   (+%O'163')
;	L 0585		D_INVALID_PRIORITY = [$COUNTER (1)],
; %PRINT:				  [57,14,1,0]   (+%O'163')
;	  0586		    $ALIGN (FULLWORD)
;	L 0587		D_DEVICE_SERVICE_ERRORS = [$COUNTER (8)],
; %PRINT:				  [58,0,8,1]   (+%O'164')
;	L 0588		D_LOST_INTERRUPT = [$COUNTER (1)],
; %PRINT:				  [58,8,1,0]   (+%O'165')
;	L 0589		D_LOST_RDYI = [$COUNTER (1)],
; %PRINT:				  [58,9,1,0]   (+%O'165')
;	L 0590		D_LOST_HALT = [$COUNTER (1)],
; %PRINT:				  [58,10,1,0]   (+%O'165')
;	L 0591		D_LOST_TRANSMIT = [$COUNTER (1)],
; %PRINT:				  [58,11,1,0]   (+%O'165')
;	L 0592		D_LOST_DOORBELL = [$COUNTER (1)],
; %PRINT:				  [58,12,1,0]   (+%O'165')
;	  0593		    $ALIGN (FULLWORD)
;	L 0594		D_FATAL_DEVICE_ERRORS = [$COUNTER (8)],
; %PRINT:				  [59,0,8,1]   (+%O'166')
;	L 0595		D_INVALID_REGISTER_CONTENTS = [$COUNTER (1)],
; %PRINT:				  [59,8,1,0]   (+%O'167')
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page  16
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (4)

;	L 0596		D_RECEIVE_BA_MISMATCH = [$COUNTER (1)],
; %PRINT:				  [59,9,1,0]   (+%O'167')
;	L 0597		D_TRANSMIT_BA_MISMATCH = [$COUNTER (1)],
; %PRINT:				  [59,10,1,0]   (+%O'167')
;	L 0598		D_NXM_TO_DEVICE = [$COUNTER (1)],
; %PRINT:				  [59,11,1,0]   (+%O'167')
;	L 0599		D_MICROCODE_ERROR = [$COUNTER (1)],
; %PRINT:				  [59,12,1,0]   (+%O'167')
;	L 0600		D_COMPLETION_QUEUE_OVERRUN = [$COUNTER (1)],
; %PRINT:				  [59,13,1,0]   (+%O'167')
;	L 0601		D_DOORBELL_STUCK = [$COUNTER (1)],
; %PRINT:				  [59,14,1,0]   (+%O'167')
;	  0602		    $ALIGN (FULLWORD)
;	L 0603		D_PROTOCOL_ERRORS = [$COUNTER (8)],
; %PRINT:				  [60,0,8,1]   (+%O'170')
;	L 0604		D_INVALID_COMM_REGION = [$COUNTER (1)],
; %PRINT:				  [60,8,1,0]   (+%O'171')
;	L 0605		D_INVALID_PROTOCOL = [$COUNTER (1)],
; %PRINT:				  [60,9,1,0]   (+%O'171')
;	L 0606		D_INVALID_QCOUNT = [$COUNTER (1)],
; %PRINT:				  [60,10,1,0]   (+%O'171')
;	L 0607		D_MESSAGE_TOO_LONG = [$COUNTER (1)],
; %PRINT:				  [60,11,1,0]   (+%O'171')
;	  0608		    $ALIGN (FULLWORD)
;	L 0609		D_DL_BLK = [$SHORT_INTEGER],	! Length of transmit buffer
; %PRINT:				  [61,0,16,1]   (+%O'172')
;	L 0610		D_XBUF = [$SUB_BLOCK (0)]	! Transmit buffer.
; %PRINT:				  [62,0,0,0]   (+%O'174')
;	  0611		tes;
;	  0612	
;	  0613	literal
;	L 0614	    D_LENGTH = $FIELD_SET_SIZE,
; %PRINT:				  62 fullwords
;	  0615	    D_ALLOCATION = D_LENGTH*%upval;
;	  0616	
;	  0617	$LITERAL
;	  0618	    DD_CLEARED = 0,			! Device is not defined
;	  0619	    DD_RUNNING = 1,			! Device is ready for use.
;	  0620	    DL_ON = 0,
;	  0621	    DL_OFF = 1,
;	  0622	    DS_HALTED = 0,                      ! DTE is stopped
;	L 0623	    DS_COM = $DISTINCT,                 ! Waiting to get Comm region offsets
; %PRINT:				  1
;	L 0624	    DS_INITIALIZING = $DISTINCT,        ! Initializing protocol
; %PRINT:				  2
;	L 0625	    DS_RUNNING = $DISTINCT,             ! Protocol running
; %PRINT:				  3
;	L 0626	    DS_PAUSED = $DISTINCT,              ! Protocol paused
; %PRINT:				  4
;	  0627	    DS_STA_LOW = min (DS_HALTED, DS_COM, DS_INITIALIZING, DS_RUNNING, DS_PAUSED),
;	  0628	    DS_STA_HIGH = max (DS_HALTED, DS_COM, DS_INITIALIZING, DS_RUNNING, DS_PAUSED);
;	  0629	
								25-Jan-1983 10:04:00	TOPS-20 Bliss-16 3(552)		    Page  17
								30-Dec-1982 02:54:40	NETPKG:<DRIVERS>DTEDAT.R16.9 (4)

;	  0630	$FIELD
;	  0631	    DIR_FIELDS =
;	  0632		set
;	L 0633		DIR_LOG_ADDRESS = [$ADDRESS],	! Address of event logging buffer.
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0634		DIR_CONTROLLERS = [$BYTE],	! Number of controllers.
; %PRINT:				  [1,0,8,0]   (+%O'2')
;	L 0635		DIR_DTE_PIX = [$BYTES (1)]	! PIXs of DTE processes
; %PRINT:				  [1,8,8,0]   (+%O'3')
;	  0636						!  indexed by controller number.
;	  0637		tes;
;	  0638	
;	  0639	!
;	  0640	! [End of DTEDAT]




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<BLIS16>XPORT.L16.1		       568        37         6         0
;  NETPKG:<V3P0>MCBLIB.L16.7		       372         4         1         0
;  NETPKG:<MCB>NMXLIB.L16.13		       200         2         1         0





; Run Time:	   00:14.0
; Elapsed Time:	   00:47.0
; Memory Used:	25 pages
; Library Precompilation Complete