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