Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/drivers/dmcnmx.lst
There are no other files named dmcnmx.lst in the archive.
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 1
30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (1)
; 0001 module DMCNMX ( ! DMC-11 Driver Network Management
; 0002 ident = 'X01270',
; 0003 language (bliss16)
; 0004 ) =
; 0005 begin
; 0006
; 0007 !
; 0008 ! COPYRIGHT (c) 1980, 1981, 1982
; 0009 ! DIGITAL EQUIPMENT CORPORATION
; 0010 ! Maynard, Massachusetts
; 0011 !
; 0012 ! This software is furnished under a license and may be used
; 0013 ! and copied only in accordance with the terms of such license
; 0014 ! and with the inclusion of the above copyright notice. This
; 0015 ! software or any other copies thereof may not be provided or
; 0016 ! otherwise made available to any other person. No title to
; 0017 ! and ownership of the software is hereby transferred.
; 0018 !
; 0019 ! The information in this software is subject to change
; 0020 ! without notice and should not be construed as a commitment
; 0021 ! by DIGITAL EQUIPMENT CORPORATION.
; 0022 !
; 0023 ! DIGITAL assumes no responsibility for the use or reliability
; 0024 ! of its software on equipment which is not supplied by
; 0025 ! DIGITAL.
; 0026 !
; 0027
; 0028 !++
; 0029 !
; 0030 ! FACILITY: MCB DMC Driver
; 0031 !
; 0032 ! ABSTRACT:
; 0033 !
; 0034 ! This module contains the DMC driver Network Management routines.
; 0035 !
; 0036 ! ENVIRONMENT: MCB V3.2
; 0037 !
; 0038 ! AUTHOR: Alan D. Peckham CREATION DATE: 3-Mar-81
; 0039 !
; 0040 ! MODIFIED BY:
; 0041 !
; 0042 ! Alan D. Peckham, 3-Mar-81: Version 1
; 0043 ! 01 - Split off from DMC module.
; 0044 ! 02 - Eliminate multiple vector assignment bug in SET_DMC_DEVICE.
; 0045 ! 03 - Identify line and circuit to NMX in SET_DMC_DEVICE.
; 0046 ! 04 - Correct CTLNM dispatches.
; 0047 ! Fix mapping problems in fetching counters.
; 0048 ! 05 - Distinguish DMCs from DMRs in SET_DMC_DEVICE.
; 0049 ! 06 - Event logging buffer adjustment.
; 0050 ! 07 - Eliminate double line status reporting.
; 0051 ! 08 - Add controller parameter support.
; 0052 ! 10 - Change to support DMC/DMR line names.
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 2
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (1)
; 0053 ! 11 - Fix bit-mapped counter handling.
; 0054 ! 12 - Change linkage on DMCNM.
; 0055 ! 13 - Use $MCB_GET_DEVICE_NAME to get line/device name.
; 0056 ! 14 - Eliminate references to $MCB_GET_DEVICE_NAME and
; 0057 ! use NMX$PARAMETER calls instead.
; 0058 ! Move all counters to circuit counters.
; 0059 ! 15 - Add system specific parameters.
; 0060 ! 16 - Set counter maintenance to use snapshot for zeroing
; 0061 ! and use differences for reporting.
; 0062 ! 17 - I was subtracting the wrong way to get the counter differences!
; 0063 ! 18 - Update to NM V3.0 .
; 0064 ! Fix circuit handling to call the zero counter routines.
; 0065 ! (found by LEAPLINE).
; 0066 ! 19 - Add MAXIMUM RECEIVE BUFFERS support.
; 0067 ! 20 - Don't set DC_SET_REQUESTED_STATE in ZERO_x_COUNTERS.
; 0068 ! 21 - Do not force HALT for ZERO_COUNTERS.
; 0069 ! 22 - Support new system specific line counters (2500,2501,2502).
; 0070 ! 23 - De-commit half-duplex.
; 0071 ! 24 - Re-enable half-duplex code.
; 0072 ! 25 - Fix reporting of DMC counter 1021.
; 0073 ! 26 - Get CLEAR LINE to dispatch right from DMCNM.
; 0074 ! 27 - Add seconds-since-last-zeroed support for lines.
; 0075 ! Eliminate double line counter report from owner and provider.
; 0076 !--
; 0077 !
; 0078 ! INCLUDE FILES:
; 0079 !
; 0080
; 0081 literal
; 0082 DMC$K_FANCY = 1 eql 0 %(false)%;
; 0083
; 0084 library 'MCBLIB';
; 0085
; 0086 library 'XPORTX';
; 0087
; 0088 library 'NMXLIB';
; 0089
; 0090 library 'DMCDAT';
; 0091
; 0092 !
; 0093 ! TABLE OF CONTENTS:
; 0094 !
; 0095
; 0096 linkage
; 0097 DMC_DB = jsr (register = 5),
; 0098 DMC_DB_NUM = jsr (register = 5, register = 1) : nopreserve (0, 1);
; 0099
; 0100 forward routine
; 0101 CLEAR_CIRCUIT : LINKAGE_CCB,
; 0102 CLEAR_LINE : LINKAGE_CCB,
; 0103 DMCNM : MCB_DB_CCB novalue,
; 0104 NOT_APPLICABLE : DMC_DB_NUM,
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 3
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (1)
; 0105 PARAMETER_CIRCUIT_COUNTERS : LINKAGE_DB novalue,
; 0106 PARAMETER_LINE_COUNTERS : LINKAGE_DB novalue,
; 0107 SET_CIRCUIT : LINKAGE_CCB,
; 0108 SET_LINE : LINKAGE_CCB,
; 0109 SET_LINE_CONTROLLER : DMC_DB_NUM,
; 0110 SET_LINE_DUPLEX : DMC_DB_NUM,
; 0111 SET_LINE_RECEIVE_BUFFERS : DMC_DB_NUM,
; 0112 SET_LINE_RETRANSMIT_TIMER : DMC_DB_NUM,
; 0113 SET_LINE_SERVICE_TIMER : DMC_DB_NUM,
; 0114 SET_LINE_STATE : DMC_DB_NUM,
; U 0115 %if DMC$K_FANCY %then
; U 0116 SET_LINE_CONTROLLER_REGISTER : DMC_DB_NUM,
; U 0117 SET_LINE_INTERRUPT_VECTOR : DMC_DB_NUM,
; U 0118 SET_LINE_INTERRUPT_PRIORITY : DMC_DB_NUM,
; 0119 %fi
; 0120 SHOW_AND_ZERO_CIRCUIT_COUNTERS : LINKAGE_CCB,
; 0121 SHOW_AND_ZERO_LINE_COUNTERS : LINKAGE_CCB,
; 0122 SHOW_CIRCUIT : LINKAGE_CCB,
; 0123 SHOW_LINE : LINKAGE_CCB,
; 0124 SHOW_SUCCESS : LINKAGE_CCB,
; 0125 SUCCESS : LINKAGE_CCB,
; 0126 ZERO_CIRCUIT_COUNTERS : LINKAGE_CCB,
; 0127 ZERO_LINE_COUNTERS : LINKAGE_CCB;
; 0128
; 0129 !
; 0130 ! MACROS:
; 0131 !
; 0132
; 0133 macro
; M 0134 CNTR_8 (NUM, FLDB) =
; M 0135 begin field $CNTR$FLDB = [$SUB_FIELD (D_LNTB, FLDB)],
; M 0136 $CNTR$FLDC = [$SUB_FIELD (D_CPTB, FLDB)];
; M 0137 stacklocal $CNTR$DIFF;
; M 0138 $CNTR$DIFF <0, 8> = .DB [$CNTR$BYTE ($CNTR$FLDB)];
; M 0139 $CNTR$DIFF = .$CNTR$DIFF - .DB [$CNTR$BYTE ($CNTR$FLDC)];
; M 0140 COUNTER_8 (NUM, $CNTR$DIFF)
; 0141 end %,
; M 0142 CNTR_BEGIN (DUMMY) =
; M 0143 begin CTR = 255;
; 0144 begin local SUM; SUM = 0; %,
; M 0145 CNTR (FLDB) =
; M 0146 begin field $CNTR$FLDB = [$SUB_FIELD (D_LNTB, FLDB)],
; M 0147 $CNTR$FLDC = [$SUB_FIELD (D_CPTB, FLDB)];
; M 0148 local $CNTR$DIFF; $CNTR$DIFF = .DB [$CNTR$BYTE ($CNTR$FLDB)];
; M 0149 $CNTR$DIFF = .$CNTR$DIFF - .DB [$CNTR$BYTE ($CNTR$FLDC)];
; M 0150 $CNTR$DIFF = .$CNTR$DIFF <0, 8, 0>;
; M 0151 SUM = .SUM + .$CNTR$DIFF;
; 0152 end %,
; M 0153 CNTR_POST (NUM) =
; M 0154 if .SUM lssu 255 then CTR <0, 8> = .SUM;
; M 0155 end;
; M 0156 COUNTER_8 (NUM, CTR);
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 4
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (1)
; 0157 end %,
; M 0158 CNTR_BM_BEGIN (DUMMY) =
; M 0159 begin CTR = 255;
; 0160 begin local SUM; SUM = 0; %,
; M 0161 CNTR_BM (FLG, FLDB) =
; M 0162 begin field $CNTR$FLDB = [$SUB_FIELD (D_LNTB, FLDB)],
; M 0163 $CNTR$FLDC = [$SUB_FIELD (D_CPTB, FLDB)];
; M 0164 local $CNTR$DIFF; $CNTR$DIFF = .DB [$CNTR$BYTE ($CNTR$FLDB)];
; M 0165 $CNTR$DIFF = .$CNTR$DIFF - .DB [$CNTR$BYTE ($CNTR$FLDC)];
; M 0166 $CNTR$DIFF = .$CNTR$DIFF <0, 8, 0>;
; M 0167 if .$CNTR$DIFF neq 0
; M 0168 then
; M 0169 begin
; M 0170 SUM = .SUM + .$CNTR$DIFF;
; M 0171 CTR <8 + FLG, 1> = 1;
; M 0172 end
; 0173 end %,
; M 0174 CNTR_BM_POST (NUM) =
; M 0175 if .SUM lssu 255 then CTR <0, 8> = .SUM;
; M 0176 end;
; M 0177 COUNTER_8_BM (NUM, CTR);
; 0178 end %,
; M 0179 $CNTR$BYTE (FLD) =
; 0180 %fieldexpand (FLD, 0), %fieldexpand (FLD, 1), %fieldexpand (FLD, 2), 1 %;
; 0181
; 0182 !
; 0183 ! EQUATED SYMBOLS:
; 0184 !
; 0185
; 0186 literal
; 0187 TRUE = 1 EQL 1,
; 0188 FALSE = 1 EQL 0,
; 0189 NO_OPERATION = 0;
; 0190
; 0191 !
; 0192 ! OWN STORAGE:
; 0193 !
; 0194
; 0195 external routine
; 0196 $DSPCR : novalue;
; 0197
; 0198 !
; 0199 ! EXTERNAL REFERENCES:
; 0200 !
; 0201
; 0202 linkage
; 0203 LINKAGE_DB_CSR = jsr (register = 5, register = 1);
; 0204
; 0205 external routine
; 0206 DMCIN : MCB_INTERRUPT novalue,
; 0207 DMCOUT : MCB_INTERRUPT novalue,
; 0208 MASTER_CLEAR : LINKAGE_DB_CSR,
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 5
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (1)
; 0209 SET_PORT : LINKAGE_DB novalue;
; 0210
; 0211 external
; 0212 MCB$GAW_PROCESS_DATA_BASE : vector [2],
; 0213 MCB$GW_PROCESS_HANDLE;
; 0214
; 0215 bind
; 0216 DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 6
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (2)
; 0217 routine CLEAR_CIRCUIT (CCB) : LINKAGE_CCB =
; 0218
; 0219 !++
; 0220 ! FUNCTIONAL DESCRIPTION:
; 0221 !
; 0222 !
; 0223 ! FORMAL PARAMETERS:
; 0224 ! CCB Address of CCB
; 0225 !
; 0226 ! IMPLICIT INPUTS:
; 0227 ! None
; 0228 !
; 0229 ! IMPLICIT OUTPUTS:
; 0230 ! None
; 0231 !
; 0232 ! ROUTINE VALUE:
; 0233 ! The appropriate NM status code
; 0234 !
; 0235 ! COMPLETION CODES:
; 0236 ! None
; 0237 !
; 0238 ! SIDE EFFECTS:
; 0239 ! None
; 0240 !--
; 0241
; 0242 begin
; 0243
; 0244 map
; 0245 CCB: ref block field (C_NM_FIELDS);
; 0246
; 0247 if .CCB [C_CNT] eql 0
; 0248 then
; 0249 NM$SUC
; 0250 else
; 0251 NE$PNA
; 0252
; 0253 end;
.TITLE DMCNMX
.IDENT /X01270/
.GLOBL $DSPCR, DMCIN, DMCOUT, MASTER.CLEAR
.GLOBL SET.PORT, .CRDAT, .CRPIX
.SBTTL CLEAR.CIRCUIT
000000 .PSECT $CODE$, RO
000000 005764 000022 CLEAR.CIRCUIT:
TST 22(R4) ; *(CCB) 0247
000004 001003 BNE 1$
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 7
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (2)
000006 012700 000001 MOV #1,R0
000012 000207 RTS PC
000014 012700 177752 1$: MOV #-26,R0
000020 000207 RTS PC ; 0217
; Routine Size: 9 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 8
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (3)
; 0254 routine CLEAR_LINE (CCB) : LINKAGE_CCB =
; 0255
; 0256 !++
; 0257 ! FUNCTIONAL DESCRIPTION:
; 0258 !
; 0259 !
; 0260 ! FORMAL PARAMETERS:
; 0261 ! CCB Address of CCB
; 0262 !
; 0263 ! IMPLICIT INPUTS:
; 0264 ! None
; 0265 !
; 0266 ! IMPLICIT OUTPUTS:
; 0267 ! None
; 0268 !
; 0269 ! ROUTINE VALUE:
; 0270 ! The appropriate NM status code
; 0271 !
; 0272 ! COMPLETION CODES:
; 0273 ! None
; 0274 !
; 0275 ! SIDE EFFECTS:
; 0276 ! None
; 0277 !--
; 0278
; 0279 begin
; 0280 GET_DMC_DATA_BASE (DB)
; 0281
; 0282 map
; 0283 CCB: ref block field (C_NM_FIELDS);
; 0284
; 0285 if .CCB [C_CNT] eql 0
; 0286 then
; 0287 NM$SUC
; 0288 else
; 0289 NE$PNA
; 0290
; 0291 end;
.SBTTL CLEAR.LINE
000000 005764 000022 CLEAR.LINE:
TST 22(R4) ; *(CCB) 0285
000004 001003 BNE 1$
000006 012700 000001 MOV #1,R0
000012 000207 RTS PC
000014 012700 177752 1$: MOV #-26,R0
000020 000207 RTS PC ; 0254
; Routine Size: 9 words, Routine Base: $CODE$ + 0022
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 9
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (4)
; 0292 global routine DMCNM
; 0293
; 0294 !++
; 0295 ! FUNCTIONAL DESCRIPTION:
; 0296 ! This routine is activated by a control request from
; 0297 ! Network Management.
; 0298 !
; 0299 ! FORMAL PARAMETERS:
; 0300 !
; 0301 (DB : ref block field (D_FIELDS),
; 0302 CCB : ref block field (C_NM_FIELDS))
; 0303 !
; 0304 ! IMPLICIT INPUTS:
; 0305 ! CCB Contents
; 0306 !
; 0307 ! IMPLICIT OUTPUTS:
; 0308 ! None
; 0309 !
; 0310 ! ROUTINE VALUE:
; 0311 !
; 0312 : MCB_DB_CCB novalue =
; 0313 !
; 0314 ! SIDE EFFECTS:
; 0315 ! None
; 0316 !--
; 0317
; 0318 begin
; 0319
; 0320 CCB [C_STS] =
; 0321 begin
; 0322
; 0323 case .CCB [C_NM_ENTITY] from NMX$ENT_lo to NMX$ENT_hi of
; 0324 set
; 0325 [NMX$ENT_ckt] : ! NM function for
; 0326 begin ! CIRCUIT parameter
; 0327 case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
; 0328 set
; 0329 [NMX$FNC_set] : ! Set parameters
; 0330 SET_CIRCUIT (.CCB);
; 0331 [NMX$FNC_zro] : ! Zero counters
; 0332 ZERO_CIRCUIT_COUNTERS (.CCB);
; 0333 [NMX$FNC_sho] : ! Show selected items
; 0334 SHOW_CIRCUIT (.CCB);
; 0335 [NMX$FNC_szc] : ! Show and zero counters
; 0336 SHOW_AND_ZERO_CIRCUIT_COUNTERS (.CCB);
; 0337 [inrange] :
; 0338 $NM$ERR_SFS;
; 0339 [outrange] :
; 0340 $NM$ERR_MPE;
; 0341 tes
; 0342 end;
; 0343
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 10
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (4)
; 0344 [NMX$ENT_lin] : ! NM function for
; 0345 begin ! LINE parameter
; 0346 case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
; 0347 set
; 0348 [NMX$FNC_clr] : ! Clear parameters
; P 0349 DISPATCH$ (.CCB [C_LIX],
; P 0350 TABLE$ (SUCCESS, DMC_K_NMID_HIGH,
; P 0351 (DMC_K_LINE_OWNER, CLEAR_LINE),
; P 0352 (DMC_K_LINE_PROVIDER, CLEAR_LINE)),
; 0353 (.CCB), LINKAGE_CCB);
; 0354 [NMX$FNC_set] : ! Set parameters
; P 0355 DISPATCH$ (.CCB [C_LIX],
; P 0356 TABLE$ (SUCCESS, DMC_K_NMID_HIGH,
; P 0357 (DMC_K_LINE_OWNER, SET_LINE),
; P 0358 (DMC_K_LINE_PROVIDER, SET_LINE)),
; 0359 (.CCB), LINKAGE_CCB);
; 0360 [NMX$FNC_zro] : ! Zero counters
; P 0361 DISPATCH$ (.CCB [C_LIX],
; P 0362 TABLE$ (SUCCESS, DMC_K_NMID_HIGH,
; P 0363 (DMC_K_LINE_PROVIDER, ZERO_LINE_COUNTERS)),
; 0364 (.CCB), LINKAGE_CCB);
; 0365 [NMX$FNC_sho] : ! Show selected items
; P 0366 DISPATCH$ (.CCB [C_LIX],
; P 0367 TABLE$ (SHOW_SUCCESS, DMC_K_NMID_HIGH,
; P 0368 (DMC_K_LINE_OWNER, SHOW_SUCCESS),
; P 0369 (DMC_K_LINE_PROVIDER, SHOW_LINE)),
; 0370 (.CCB), LINKAGE_CCB);
; 0371 [NMX$FNC_szc] : ! Show and zero counters
; P 0372 DISPATCH$ (.CCB [C_LIX],
; P 0373 TABLE$ (SHOW_SUCCESS, DMC_K_NMID_HIGH,
; P 0374 (DMC_K_LINE_PROVIDER, SHOW_AND_ZERO_LINE_COUNTERS)),
; 0375 (.CCB), LINKAGE_CCB);
; 0376 [inrange] :
; 0377 $NM$ERR_SFS;
; 0378 [outrange] :
; 0379 $NM$ERR_MPE;
; 0380 tes
; 0381 end;
; 0382
; 0383 [inrange, outrange] :
; 0384 $NM$ERR_MPE;
; 0385
; 0386 tes
; 0387
; 0388 end;
; 0389
; 0390 CCB [C_FNC] = FC_CCP;
; 0391 LLCRS$ (.CCB);
; 0392 end; ! of routine DMCNM
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 11
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (4)
000000 .PSECT $PLIT$, RO , D
000000 000022' P.AAD: .WORD CLEAR.LINE
000002 000022' .WORD CLEAR.LINE
000004 000000V .WORD SUCCESS
000006 000000V P.AAE: .WORD SET.LINE
000010 000000V .WORD SET.LINE
000012 000000V .WORD SUCCESS
000014 000000V P.AAF: .WORD ZERO.LINE.COUNTERS
000016 000000V .WORD SUCCESS
000020 000000V .WORD SUCCESS
000022 000000V P.AAG: .WORD SHOW.LINE
000024 000000V .WORD SHOW.SUCCESS
000026 000000V .WORD SHOW.SUCCESS
000030 000000V P.AAH: .WORD SHOW.AND.ZERO.LINE.COUNTERS
000032 000000V .WORD SHOW.SUCCESS
000034 000000V .WORD SHOW.SUCCESS
.GLOBL $SCHED
.SBTTL DMCNM
000044 .PSECT $CODE$, RO
000000 012700 000024 DMCNM:: MOV #24,R0 ; 0323
000004 060400 ADD R4,R0 ; CCB,*
000006 011001 MOV (R0),R1 ; 0321
000010 072127 177770 ASH #-10,R1
000014 042701 177760 BIC #177760,R1
000020 005301 DEC R1
000022 020127 000004 CMP R1,#4
000026 101047 BHI 9$
000030 006301 ASL R1
000032 066107 000036' ADD P.AAA(R1),PC ; Case dispatch
000036 000443 1$: BR 9$
000040 111000 2$: MOVB (R0),R0 ; 0326
000042 006200 ASR R0
000044 042700 177600 BIC #177600,R0
000050 005300 DEC R0
000052 020027 000005 CMP R0,#5
000056 101033 BHI 9$
000060 006300 ASL R0
000062 066007 000050' ADD P.AAB(R0),PC ; Case dispatch
000066 000427 3$: BR 9$
000070 004767 000000V 4$: JSR PC,SET.CIRCUIT ; 0330
000074 000467 BR 16$ ; 0326
000076 004767 000000V 5$: JSR PC,ZERO.CIRCUIT.COUNTERS ; 0332
000102 000464 BR 16$ ; 0326
000104 004767 000000V 6$: JSR PC,SHOW.CIRCUIT ; 0334
000110 000461 BR 16$ ; 0326
000112 004767 000000V 7$: JSR PC,SHOW.AND.ZERO.CIRCUIT.COUNTERS ; 0336
000116 000456 BR 16$ ; 0326
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 12
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (4)
000120 111000 8$: MOVB (R0),R0 ; 0345
000122 006200 ASR R0
000124 042700 177600 BIC #177600,R0
000130 005300 DEC R0
000132 020027 000005 CMP R0,#5
000136 101003 BHI 9$
000140 006300 ASL R0
000142 066007 000064' ADD P.AAC(R0),PC ; Case dispatch
000146 012700 177773 9$: MOV #-5,R0
000152 000440 BR 16$
000154 005000 10$: CLR R0 ; 0353
000156 156400 000010 BISB 10(R4),R0 ; *(CCB),*
000162 004770 000000' JSR PC,@P.AAD(R0)
000166 000432 BR 16$ ; 0345
000170 005000 11$: CLR R0 ; 0359
000172 156400 000010 BISB 10(R4),R0 ; *(CCB),*
000176 004770 000006' JSR PC,@P.AAE(R0)
000202 000424 BR 16$ ; 0345
000204 005000 12$: CLR R0 ; 0364
000206 156400 000010 BISB 10(R4),R0 ; *(CCB),*
000212 004770 000014' JSR PC,@P.AAF(R0)
000216 000416 BR 16$ ; 0345
000220 005000 13$: CLR R0 ; 0370
000222 156400 000010 BISB 10(R4),R0 ; *(CCB),*
000226 004770 000022' JSR PC,@P.AAG(R0)
000232 000410 BR 16$ ; 0345
000234 005000 14$: CLR R0 ; 0375
000236 156400 000010 BISB 10(R4),R0 ; *(CCB),*
000242 004770 000030' JSR PC,@P.AAH(R0)
000246 000402 BR 16$ ; 0345
000250 012700 177746 15$: MOV #-32,R0
000254 010064 000014 16$: MOV R0,14(R4) ; *,*(CCB) 0320
000260 112764 000022 000012 MOVB #22,12(R4) ; *,*(CCB) 0390
000266 004767 000000G JSR PC,$SCHED ; 0391
000272 000207 RTS PC ; 0292
; Routine Size: 94 words, Routine Base: $CODE$ + 0044
; Maximum stack depth per invocation: 1 word
000036 .PSECT $PLIT$, RO , D
P.AAA: ; CASE Table for DMCNM+0032 0321
000036 000110 .WORD 110 ; [9$]
000040 000062 .WORD 62 ; [8$]
000042 000110 .WORD 110 ; [9$]
000044 000002 .WORD 2 ; [2$]
000046 000110 .WORD 110 ; [9$]
P.AAB: ; CASE Table for DMCNM+0062 0326
000050 000002 .WORD 2 ; [4$]
000052 000162 .WORD 162 ; [15$]
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 13
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (4)
000054 000010 .WORD 10 ; [5$]
000056 000016 .WORD 16 ; [6$]
000060 000024 .WORD 24 ; [7$]
000062 000162 .WORD 162 ; [15$]
P.AAC: ; CASE Table for DMCNM+0142 0345
000064 000022 .WORD 22 ; [11$]
000066 000006 .WORD 6 ; [10$]
000070 000036 .WORD 36 ; [12$]
000072 000052 .WORD 52 ; [13$]
000074 000066 .WORD 66 ; [14$]
000076 000102 .WORD 102 ; [15$]
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 14
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (5)
; 0393 routine NOT_APPLICABLE (DB, DUMMY) : DMC_DB_NUM =
; 0394
; 0395 !++
; 0396 ! FUNCTIONAL DESCRIPTION:
; 0397 !
; 0398 !
; 0399 ! FORMAL PARAMETERS:
; 0400 ! DUMMY = unused
; 0401 !
; 0402 ! IMPLICIT INPUTS:
; 0403 ! None
; 0404 !
; 0405 ! IMPLICIT OUTPUTS:
; 0406 ! None
; 0407 !
; 0408 ! ROUTINE VALUE:
; 0409 ! The appropriate NM status code
; 0410 !
; 0411 ! COMPLETION CODES:
; 0412 ! None
; 0413 !
; 0414 ! SIDE EFFECTS:
; 0415 ! None
; 0416 !--
; 0417
; 0418 begin
; 0419 GET_DMC_DATA_BASE (DB)
; 0420 NE$PNA
; 0421 end;
.SBTTL NOT.APPLICABLE
000340 .PSECT $CODE$, RO
000000 012700 177752 NOT.APPLICABLE:
MOV #-26,R0 ; 0393
000004 000207 RTS PC
; Routine Size: 3 words, Routine Base: $CODE$ + 0340
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 15
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (6)
; 0422 global routine PARAMETER_CIRCUIT_COUNTERS
; 0423
; 0424 !++
; 0425 ! FUNCTIONAL DESCRIPTION:
; 0426 !
; 0427 !
; 0428 ! FORMAL PARAMETERS:
; 0429 (DB : ref block field (D_FIELDS))
; 0430 !
; 0431 ! IMPLICIT INPUTS:
; 0432 ! None
; 0433 !
; 0434 ! IMPLICIT OUTPUTS:
; 0435 ! None
; 0436 !
; 0437 ! ROUTINE VALUE:
; 0438 : LINKAGE_DB novalue =
; 0439 !
; 0440 ! SIDE EFFECTS:
; 0441 ! None
; 0442 !--
; 0443
; 0444 begin
; 0445
; 0446 local
; 0447 CTR;
; 0448
; 0449 COUNTER_32 (1000, DB [D_BYTES_RECEIVED]);
; 0450 COUNTER_32 (1001, DB [D_BYTES_TRANSMITTED]);
; 0451 COUNTER_32 (1010, DB [D_BLOCKS_RECEIVED]);
; 0452 COUNTER_32 (1011, DB [D_BLOCKS_TRANSMITTED]);
; 0453
; 0454 CNTR_BM_BEGIN ()
; 0455 CNTR_BM (0, BASE_NAKS_SND_HDR_BCC);
; 0456 CNTR_BM (1, BASE_NAKS_SND_DAT_BCC);
; 0457 if .DB [DF_DMR] then CNTR_BM (2, BASE_NAKS_SND_RCV_REP);
; 0458 CNTR_BM_POST (1020);
; 0459
; 0460 if not .DB [DF_DMR]
; 0461 then
; 0462 begin
; 0463 CNTR_BEGIN ()
; 0464 CNTR (BASE_NAKS_RCV_HDR_BCC);
; 0465 CNTR (BASE_NAKS_RCV_DAT_BCC);
; 0466 CNTR_POST (1021);
; 0467 end
; 0468 else
; 0469 begin
; 0470 CNTR_BM_BEGIN ()
; 0471 CNTR_BM (0, BASE_NAKS_RCV_HDR_BCC);
; 0472 CNTR_BM (1, BASE_NAKS_RCV_DAT_BCC);
; 0473 CNTR_BM (2, BASE_NAKS_RCV_REP);
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 16
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (6)
; 0474 CNTR_BM_POST (1021);
; 0475 end;
; 0476
; 0477 CNTR_8 (1030, BASE_REPS_RCV);
; 0478 CNTR_8 (1031, BASE_REPS_SND);
; 0479
; 0480 CNTR_BM_BEGIN ()
; 0481 CNTR_BM (0, BASE_NAKS_RCV_NO_BUF);
; 0482 if .DB [DF_DMR] then CNTR_BM (1, BASE_NAKS_RCV_TOO_LONG);
; 0483 CNTR_BM_POST (1040);
; 0484
; 0485
; 0486 CNTR_BM_BEGIN ()
; 0487 CNTR_BM (0, BASE_NAKS_SND_NO_BUF);
; 0488 CNTR_BM_POST (1041);
; 0489
; 0490 if .DB [DF_DMR]
; 0491 then
; 0492 begin
; 0493 CNTR_BM_BEGIN ()
; 0494 CNTR_BM (0, BASE_NO_REPLY_TO_SEL);
; 0495 CNTR_BM (1, BASE_INCOMPLETE_SEL);
; 0496 CNTR_BM_POST (1051);
; 0497 end;
; 0498
; 0499 end; !of routine PARAMETER_CIRCUIT_COUNTERS
.GLOBL $DC32, $DC8B, $DC8
.SBTTL CKCTRS
000000 004167 000000G CKCTRS::JSR R1,$SAVE4 ; 0422
000004 024646 CMP -(SP),-(SP)
000006 012746 161750 MOV #-16030,-(SP) ; 0449
000012 010500 MOV R5,R0 ; DB,*
000014 062700 000126 ADD #126,R0
000020 004767 000000G JSR PC,$DC32
000024 012716 161751 MOV #-16027,(SP) ; 0450
000030 010500 MOV R5,R0 ; DB,*
000032 062700 000122 ADD #122,R0
000036 004767 000000G JSR PC,$DC32
000042 012716 161762 MOV #-16016,(SP) ; 0451
000046 010500 MOV R5,R0 ; DB,*
000050 062700 000136 ADD #136,R0
000054 004767 000000G JSR PC,$DC32
000060 012716 161763 MOV #-16015,(SP) ; 0452
000064 010500 MOV R5,R0 ; DB,*
000066 062700 000132 ADD #132,R0
000072 004767 000000G JSR PC,$DC32
000076 012701 000377 MOV #377,R1 ; *,CTR 0454
000102 005002 CLR R2 ; SUM
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 17
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (6)
000104 116500 000163 MOVB 163(R5),R0 ; *(DB),$CNTR$DIFF 0455
000110 116503 000563 MOVB 563(R5),R3 ; *(DB),*
000114 160300 SUB R3,R0 ; *,$CNTR$DIFF
000116 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000122 001403 BEQ 1$
000124 060002 ADD R0,R2 ; $CNTR$DIFF,SUM
000126 052701 000400 BIS #400,R1 ; *,CTR
000132 116500 000164 1$: MOVB 164(R5),R0 ; *(DB),$CNTR$DIFF 0456
000136 116503 000564 MOVB 564(R5),R3 ; *(DB),*
000142 160300 SUB R3,R0 ; *,$CNTR$DIFF
000144 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000150 001403 BEQ 2$
000152 060002 ADD R0,R2 ; $CNTR$DIFF,SUM
000154 052701 001000 BIS #1000,R1 ; *,CTR
000160 016546 000032 2$: MOV 32(R5),-(SP) ; *(DB),* 0457
000164 005066 000004 CLR 4(SP)
000170 032726 010000 BIT #10000,(SP)+
000174 001402 BEQ 3$
000176 005266 000002 INC 2(SP)
000202 032766 000001 000002 3$: BIT #1,2(SP)
000210 001413 BEQ 4$
000212 116500 000173 MOVB 173(R5),R0 ; *(DB),$CNTR$DIFF
000216 116503 000573 MOVB 573(R5),R3 ; *(DB),*
000222 160300 SUB R3,R0 ; *,$CNTR$DIFF
000224 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000230 001403 BEQ 4$
000232 060002 ADD R0,R2 ; $CNTR$DIFF,SUM
000234 052701 002000 BIS #2000,R1 ; *,CTR
000240 020227 000377 4$: CMP R2,#377 ; SUM,* 0458
000244 103002 BHIS 5$
000246 105001 CLRB R1 ; CTR
000250 150201 BISB R2,R1 ; SUM,CTR
000252 012716 131774 5$: MOV #-46004,(SP)
000256 010100 MOV R1,R0 ; CTR,*
000260 004767 000000G JSR PC,$DC8B
000264 012701 000377 MOV #377,R1 ; *,CTR 0463
000270 012703 000160 MOV #160,R3 ; 0464
000274 060503 ADD R5,R3 ; DB,*
000276 012704 000560 MOV #560,R4
000302 060504 ADD R5,R4 ; DB,*
000304 032766 000001 000002 BIT #1,2(SP) ; 0460
000312 001042 BNE 7$
000314 005000 CLR R0 ; SUM 0463
000316 111302 MOVB (R3),R2 ; *,$CNTR$DIFF 0464
000320 111446 MOVB (R4),-(SP)
000322 105716 TSTB (SP)
000324 006746 SXT -(SP)
000326 116616 000002 MOVB 2(SP),(SP)
000332 162602 SUB (SP)+,R2 ; *,$CNTR$DIFF
000334 042702 177400 BIC #177400,R2 ; *,$CNTR$DIFF
000340 060200 ADD R2,R0 ; $CNTR$DIFF,SUM
000342 116302 000001 MOVB 1(R3),R2 ; *,$CNTR$DIFF 0465
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 18
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (6)
000346 116416 000001 MOVB 1(R4),(SP)
000352 105716 TSTB (SP)
000354 006746 SXT -(SP)
000356 116616 000002 MOVB 2(SP),(SP)
000362 162602 SUB (SP)+,R2 ; *,$CNTR$DIFF
000364 005726 TST (SP)+
000366 042702 177400 BIC #177400,R2 ; *,$CNTR$DIFF
000372 060200 ADD R2,R0 ; $CNTR$DIFF,SUM
000374 020001 CMP R0,R1 ; SUM,* 0466
000376 103002 BHIS 6$
000400 105001 CLRB R1 ; CTR
000402 150001 BISB R0,R1 ; SUM,CTR
000404 012716 121775 6$: MOV #-56003,(SP)
000410 110100 MOVB R1,R0 ; CTR,*
000412 004767 000000G JSR PC,$DC8
000416 000457 BR 12$ ; 0460
000420 005002 7$: CLR R2 ; SUM 0470
000422 111300 MOVB (R3),R0 ; *,$CNTR$DIFF 0471
000424 111446 MOVB (R4),-(SP)
000426 105716 TSTB (SP)
000430 006746 SXT -(SP)
000432 116616 000002 MOVB 2(SP),(SP)
000436 162600 SUB (SP)+,R0 ; *,$CNTR$DIFF
000440 005726 TST (SP)+
000442 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000446 001403 BEQ 8$
000450 060002 ADD R0,R2 ; $CNTR$DIFF,SUM
000452 052701 000400 BIS #400,R1 ; *,CTR
000456 116303 000001 8$: MOVB 1(R3),R3 ; *,$CNTR$DIFF 0472
000462 116400 000001 MOVB 1(R4),R0
000466 160003 SUB R0,R3 ; *,$CNTR$DIFF
000470 042703 177400 BIC #177400,R3 ; *,$CNTR$DIFF
000474 001403 BEQ 9$
000476 060302 ADD R3,R2 ; $CNTR$DIFF,SUM
000500 052701 001000 BIS #1000,R1 ; *,CTR
000504 116503 000167 9$: MOVB 167(R5),R3 ; *(DB),$CNTR$DIFF 0473
000510 116500 000567 MOVB 567(R5),R0 ; *(DB),*
000514 160003 SUB R0,R3 ; *,$CNTR$DIFF
000516 042703 177400 BIC #177400,R3 ; *,$CNTR$DIFF
000522 001403 BEQ 10$
000524 060302 ADD R3,R2 ; $CNTR$DIFF,SUM
000526 052701 002000 BIS #2000,R1 ; *,CTR
000532 020227 000377 10$: CMP R2,#377 ; SUM,* 0474
000536 103002 BHIS 11$
000540 105001 CLRB R1 ; CTR
000542 150201 BISB R2,R1 ; SUM,CTR
000544 012716 131775 11$: MOV #-46003,(SP)
000550 010100 MOV R1,R0 ; CTR,*
000552 004767 000000G JSR PC,$DC8B
000556 116566 000166 000004 12$: MOVB 166(R5),4(SP) ; *(DB),$CNTR$DIFF 0477
000564 116500 000566 MOVB 566(R5),R0 ; *(DB),*
000570 160066 000004 SUB R0,4(SP) ; *,$CNTR$DIFF
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 19
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (6)
000574 012716 122006 MOV #-55772,(SP)
000600 116600 000004 MOVB 4(SP),R0 ; $CNTR$DIFF,*
000604 004767 000000G JSR PC,$DC8
000610 116566 000165 000004 MOVB 165(R5),4(SP) ; *(DB),$CNTR$DIFF 0478
000616 116500 000565 MOVB 565(R5),R0 ; *(DB),*
000622 160066 000004 SUB R0,4(SP) ; *,$CNTR$DIFF
000626 012716 122007 MOV #-55771,(SP)
000632 116600 000004 MOVB 4(SP),R0 ; $CNTR$DIFF,*
000636 004767 000000G JSR PC,$DC8
000642 012701 000377 MOV #377,R1 ; *,CTR 0480
000646 005003 CLR R3 ; SUM
000650 116500 000157 MOVB 157(R5),R0 ; *(DB),$CNTR$DIFF 0481
000654 116502 000557 MOVB 557(R5),R2 ; *(DB),*
000660 160200 SUB R2,R0 ; *,$CNTR$DIFF
000662 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000666 001403 BEQ 13$
000670 060003 ADD R0,R3 ; $CNTR$DIFF,SUM
000672 052701 000400 BIS #400,R1 ; *,CTR
000676 032766 000001 000002 13$: BIT #1,2(SP) ; 0482
000704 001413 BEQ 14$
000706 116500 000172 MOVB 172(R5),R0 ; *(DB),$CNTR$DIFF
000712 116502 000572 MOVB 572(R5),R2 ; *(DB),*
000716 160200 SUB R2,R0 ; *,$CNTR$DIFF
000720 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000724 001403 BEQ 14$
000726 060003 ADD R0,R3 ; $CNTR$DIFF,SUM
000730 052701 001000 BIS #1000,R1 ; *,CTR
000734 020327 000377 14$: CMP R3,#377 ; SUM,* 0483
000740 103002 BHIS 15$
000742 105001 CLRB R1 ; CTR
000744 150301 BISB R3,R1 ; SUM,CTR
000746 012716 132020 15$: MOV #-45760,(SP)
000752 010100 MOV R1,R0 ; CTR,*
000754 004767 000000G JSR PC,$DC8B
000760 012701 000377 MOV #377,R1 ; *,CTR 0486
000764 005003 CLR R3 ; SUM
000766 116500 000162 MOVB 162(R5),R0 ; *(DB),$CNTR$DIFF 0487
000772 116502 000562 MOVB 562(R5),R2 ; *(DB),*
000776 160200 SUB R2,R0 ; *,$CNTR$DIFF
001000 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
001004 001403 BEQ 16$
001006 060003 ADD R0,R3 ; $CNTR$DIFF,SUM
001010 052701 000400 BIS #400,R1 ; *,CTR
001014 020327 000377 16$: CMP R3,#377 ; SUM,* 0488
001020 103002 BHIS 17$
001022 105001 CLRB R1 ; CTR
001024 150301 BISB R3,R1 ; SUM,CTR
001026 012716 132021 17$: MOV #-45757,(SP)
001032 010100 MOV R1,R0 ; CTR,*
001034 004767 000000G JSR PC,$DC8B
001040 032766 000001 000002 BIT #1,2(SP) ; 0490
001046 001443 BEQ 21$
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 20
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (6)
001050 012701 000377 MOV #377,R1 ; *,CTR 0493
001054 005002 CLR R2 ; SUM
001056 116500 000215 MOVB 215(R5),R0 ; *(DB),$CNTR$DIFF 0494
001062 116503 000615 MOVB 615(R5),R3 ; *(DB),*
001066 160300 SUB R3,R0 ; *,$CNTR$DIFF
001070 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
001074 001403 BEQ 18$
001076 060002 ADD R0,R2 ; $CNTR$DIFF,SUM
001100 052701 000400 BIS #400,R1 ; *,CTR
001104 116500 000214 18$: MOVB 214(R5),R0 ; *(DB),$CNTR$DIFF 0495
001110 116503 000614 MOVB 614(R5),R3 ; *(DB),*
001114 160300 SUB R3,R0 ; *,$CNTR$DIFF
001116 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
001122 001403 BEQ 19$
001124 060002 ADD R0,R2 ; $CNTR$DIFF,SUM
001126 052701 001000 BIS #1000,R1 ; *,CTR
001132 020227 000377 19$: CMP R2,#377 ; SUM,* 0496
001136 103002 BHIS 20$
001140 105001 CLRB R1 ; CTR
001142 150201 BISB R2,R1 ; SUM,CTR
001144 012716 132033 20$: MOV #-45745,(SP)
001150 010100 MOV R1,R0 ; CTR,*
001152 004767 000000G JSR PC,$DC8B
001156 062706 000006 21$: ADD #6,SP ; 0422
001162 000207 RTS PC
; Routine Size: 314 words, Routine Base: $CODE$ + 0346
; Maximum stack depth per invocation: 10 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 21
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (7)
; 0500 global routine PARAMETER_LINE_COUNTERS
; 0501
; 0502 !++
; 0503 ! FUNCTIONAL DESCRIPTION:
; 0504 !
; 0505 !
; 0506 ! FORMAL PARAMETERS:
; 0507 (DB : ref block field (D_FIELDS))
; 0508 !
; 0509 ! IMPLICIT INPUTS:
; 0510 ! None
; 0511 !
; 0512 ! IMPLICIT OUTPUTS:
; 0513 ! None
; 0514 !
; 0515 ! ROUTINE VALUE:
; 0516 : LINKAGE_DB novalue =
; 0517 !
; 0518 ! SIDE EFFECTS:
; 0519 ! None
; 0520 !--
; 0521
; 0522 begin
; 0523
; 0524 if .DB [DF_DMR]
; 0525 then
; 0526 begin
; 0527
; 0528 local
; 0529 CTR;
; 0530
; 0531 COUNTER_16_TIME (0, DB [DB_TIME_LINE_ZEROED]);
; 0532 CNTR_BM_BEGIN ()
; 0533 CNTR_BM (0, BASE_NAKS_RCV_RCV_OVRN);
; 0534 CNTR_BM (1, BASE_NAKS_SND_HDR_FMT);
; 0535 CNTR_BM (3, BASE_STRM_TIMEOUT);
; 0536 CNTR_BM_POST (1100);
; 0537 CNTR_BM_BEGIN ()
; 0538 CNTR_BM (0, BASE_NAKS_SND_RCV_OVRN);
; 0539 CNTR_BM (2, BASE_XMT_UNDR);
; 0540 CNTR_BM (3, BASE_NAKS_RCV_HDR_FMT);
; 0541 CNTR_BM_POST (1101);
; 0542 end;
; 0543
; 0544 if .DB [D_CONFIGURATION_ERRORS] neq 0
; 0545 then
; 0546 COUNTER_8_BM (2500, DB [D_CONFIGURATION_ERRORS]);
; 0547
; 0548 if .DB [D_DEVICE_SERVICE_ERRORS] neq 0
; 0549 then
; 0550 COUNTER_8_BM (2501, DB [D_DEVICE_SERVICE_ERRORS]);
; 0551
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 22
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (7)
; 0552 if .DB [D_FATAL_DEVICE_ERRORS] neq 0
; 0553 then
; 0554 COUNTER_8_BM (2502, DB [D_FATAL_DEVICE_ERRORS]);
; 0555
; 0556 end; !of routine PARAMETER_LINE_COUNTERS
.GLOBL $DT16
.SBTTL LNCTRS
000000 004167 000000G LNCTRS::JSR R1,$SAVE5 ; 0500
000004 010502 MOV R5,R2 ; *,DB
000006 032762 010000 000032 BIT #10000,32(R2) ; *,*(DB) 0524
000014 001544 BEQ 9$
000016 012746 140000 MOV #-40000,-(SP) ; 0531
000022 062705 000142 ADD #142,R5
000026 010500 MOV R5,R0
000030 004767 000000G JSR PC,$DT16
000034 012705 000377 MOV #377,R5 ; *,CTR 0532
000040 005001 CLR R1 ; SUM
000042 116200 000170 MOVB 170(R2),R0 ; *(DB),$CNTR$DIFF 0533
000046 116203 000570 MOVB 570(R2),R3 ; *(DB),*
000052 160300 SUB R3,R0 ; *,$CNTR$DIFF
000054 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000060 001403 BEQ 1$
000062 060001 ADD R0,R1 ; $CNTR$DIFF,SUM
000064 052705 000400 BIS #400,R5 ; *,CTR
000070 116200 000175 1$: MOVB 175(R2),R0 ; *(DB),$CNTR$DIFF 0534
000074 116203 000575 MOVB 575(R2),R3 ; *(DB),*
000100 160300 SUB R3,R0 ; *,$CNTR$DIFF
000102 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000106 001403 BEQ 2$
000110 060001 ADD R0,R1 ; $CNTR$DIFF,SUM
000112 052705 001000 BIS #1000,R5 ; *,CTR
000116 116200 000203 2$: MOVB 203(R2),R0 ; *(DB),$CNTR$DIFF 0535
000122 116203 000603 MOVB 603(R2),R3 ; *(DB),*
000126 160300 SUB R3,R0 ; *,$CNTR$DIFF
000130 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000134 001403 BEQ 3$
000136 060001 ADD R0,R1 ; $CNTR$DIFF,SUM
000140 052705 004000 BIS #4000,R5 ; *,CTR
000144 020127 000377 3$: CMP R1,#377 ; SUM,* 0536
000150 103002 BHIS 4$
000152 105005 CLRB R5 ; CTR
000154 150105 BISB R1,R5 ; SUM,CTR
000156 012716 132114 4$: MOV #-45664,(SP)
000162 010500 MOV R5,R0 ; CTR,*
000164 004767 000000G JSR PC,$DC8B
000170 012705 000377 MOV #377,R5 ; *,CTR 0537
000174 005001 CLR R1 ; SUM
000176 116200 000174 MOVB 174(R2),R0 ; *(DB),$CNTR$DIFF 0538
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 23
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (7)
000202 116203 000574 MOVB 574(R2),R3 ; *(DB),*
000206 160300 SUB R3,R0 ; *,$CNTR$DIFF
000210 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000214 001403 BEQ 5$
000216 060001 ADD R0,R1 ; $CNTR$DIFF,SUM
000220 052705 000400 BIS #400,R5 ; *,CTR
000224 116200 000176 5$: MOVB 176(R2),R0 ; *(DB),$CNTR$DIFF 0539
000230 116203 000576 MOVB 576(R2),R3 ; *(DB),*
000234 160300 SUB R3,R0 ; *,$CNTR$DIFF
000236 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000242 001403 BEQ 6$
000244 060001 ADD R0,R1 ; $CNTR$DIFF,SUM
000246 052705 002000 BIS #2000,R5 ; *,CTR
000252 116200 000171 6$: MOVB 171(R2),R0 ; *(DB),$CNTR$DIFF 0540
000256 116203 000571 MOVB 571(R2),R3 ; *(DB),*
000262 160300 SUB R3,R0 ; *,$CNTR$DIFF
000264 042700 177400 BIC #177400,R0 ; *,$CNTR$DIFF
000270 001403 BEQ 7$
000272 060001 ADD R0,R1 ; $CNTR$DIFF,SUM
000274 052705 004000 BIS #4000,R5 ; *,CTR
000300 020127 000377 7$: CMP R1,#377 ; SUM,* 0541
000304 103002 BHIS 8$
000306 105005 CLRB R5 ; CTR
000310 150105 BISB R1,R5 ; SUM,CTR
000312 012716 132115 8$: MOV #-45663,(SP)
000316 010500 MOV R5,R0 ; CTR,*
000320 004767 000000G JSR PC,$DC8B
000324 005726 TST (SP)+ ; 0526
000326 012705 000146 9$: MOV #146,R5 ; 0544
000332 060205 ADD R2,R5 ; DB,*
000334 105715 TSTB (R5)
000336 001406 BEQ 10$
000340 012746 134704 MOV #-43074,-(SP) ; 0546
000344 011500 MOV (R5),R0
000346 004767 000000G JSR PC,$DC8B
000352 005726 TST (SP)+
000354 012705 000150 10$: MOV #150,R5 ; 0548
000360 060205 ADD R2,R5 ; DB,*
000362 105715 TSTB (R5)
000364 001406 BEQ 11$
000366 012746 134705 MOV #-43073,-(SP) ; 0550
000372 011500 MOV (R5),R0
000374 004767 000000G JSR PC,$DC8B
000400 005726 TST (SP)+
000402 012701 000152 11$: MOV #152,R1 ; 0552
000406 060201 ADD R2,R1 ; DB,*
000410 105711 TSTB (R1)
000412 001406 BEQ 12$
000414 012746 134706 MOV #-43072,-(SP) ; 0554
000420 011100 MOV (R1),R0
000422 004767 000000G JSR PC,$DC8B
000426 005726 TST (SP)+
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 24
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (7)
000430 000207 12$: RTS PC ; 0500
; Routine Size: 141 words, Routine Base: $CODE$ + 1532
; Maximum stack depth per invocation: 8 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 25
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (8)
; 0557 routine SET_CIRCUIT (CCB) : LINKAGE_CCB =
; 0558
; 0559 !++
; 0560 ! FUNCTIONAL DESCRIPTION:
; 0561 !
; 0562 !
; 0563 ! FORMAL PARAMETERS:
; 0564 ! CCB Address of CCB
; 0565 !
; 0566 ! IMPLICIT INPUTS:
; 0567 ! None
; 0568 !
; 0569 ! IMPLICIT OUTPUTS:
; 0570 ! None
; 0571 !
; 0572 ! ROUTINE VALUE:
; 0573 ! The appropriate NM status code
; 0574 !
; 0575 ! COMPLETION CODES:
; 0576 ! None
; 0577 !
; 0578 ! SIDE EFFECTS:
; 0579 ! None
; 0580 !--
; 0581
; 0582 begin
; 0583
; 0584 map
; 0585 CCB: ref block field (C_NM_FIELDS);
; 0586
; 0587 NE$PNA
; 0588 end;
.SBTTL SET.CIRCUIT
000000 012700 177752 SET.CIRCUIT:
MOV #-26,R0 ; 0557
000004 000207 RTS PC
; Routine Size: 3 words, Routine Base: $CODE$ + 2164
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 26
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (9)
; 0589 routine SET_LINE (CCB) : LINKAGE_CCB =
; 0590
; 0591 !++
; 0592 ! FUNCTIONAL DESCRIPTION:
; 0593 !
; 0594 !
; 0595 ! FORMAL PARAMETERS:
; 0596 ! CCB Address of CCB
; 0597 !
; 0598 ! IMPLICIT INPUTS:
; 0599 ! None
; 0600 !
; 0601 ! IMPLICIT OUTPUTS:
; 0602 ! None
; 0603 !
; 0604 ! ROUTINE VALUE:
; 0605 ! The appropriate NM status code
; 0606 !
; 0607 ! COMPLETION CODES:
; 0608 ! None
; 0609 !
; 0610 ! SIDE EFFECTS:
; 0611 ! None
; 0612 !--
; 0613
; 0614 begin
; 0615 GET_DMC_DATA_BASE (DB)
; 0616
; 0617 map
; 0618 CCB: ref block field (C_NM_FIELDS);
; 0619
; 0620 local
; 0621 BUF_PTR,
; 0622 DATA_ID,
; 0623 DATA_VALUE;
; 0624
; 0625 MAP$ (.CCB [C_BIAS]);
; 0626 BUF_PTR = .CCB [C_ADDR];
; 0627 DATA_ID <0, 8> = ch$rchar_a (BUF_PTR);
; 0628 DATA_ID <8, 8> = ch$rchar_a (BUF_PTR);
; 0629 DATA_ID = .DATA_ID <0, 12>;
; 0630 DATA_VALUE <0, 8> = ch$rchar_a (BUF_PTR);
; 0631 DATA_VALUE <8, 8> = ch$rchar_a (BUF_PTR);
; 0632 MAP$ (.DB_BIAS);
; P 0633 $NM_PARAMETER_DISPATCH (.DATA_ID, NOT_APPLICABLE,
; P 0634 ((0, SET_LINE_STATE),
; P 0635 (1111, SET_LINE_DUPLEX),
; P 0636 (1105, SET_LINE_RECEIVE_BUFFERS),
; P 0637 (1110, SET_LINE_CONTROLLER),
; P 0638 (1120, SET_LINE_SERVICE_TIMER),
; P 0639 (1121, SET_LINE_RETRANSMIT_TIMER)
; U 0640 %if DMC$K_FANCY %then ,
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 27
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (9)
; U 0641 (2650, SET_LINE_CONTROLLER_REGISTER),
; U 0642 (2655, SET_LINE_INTERRUPT_VECTOR),
; U 0643 (2660, SET_LINE_INTERRUPT_PRIORITY)
; P 0644 %fi),
; 0645 (DB [D_TIM], .DATA_VALUE), DMC_DB_NUM)
; 0646 end;
000100 .PSECT $PLIT$, RO , D
000100 000340' P.AAI: .WORD NOT.APPLICABLE
000102 000000V .WORD SET.LINE.STATE
000104 000000V .WORD SET.LINE.DUPLEX
000106 000000V .WORD SET.LINE.RECEIVE.BUFFERS
000110 000000V .WORD SET.LINE.CONTROLLER
000112 000000V .WORD SET.LINE.SERVICE.TIMER
000114 000000V .WORD SET.LINE.RETRANSMIT.TIMER
000116 000006 .WORD 6 ; Plit count word
000120 000000 P.AAJ: .WORD 0
000122 002127 .WORD 2127
000124 002121 .WORD 2121
000126 002126 .WORD 2126
000130 002140 .WORD 2140
000132 002141 .WORD 2141
.GLOBL KISAR6, $IDVAL
.SBTTL SET.LINE
002172 .PSECT $CODE$, RO
000000 004167 000000G SET.LINE:
JSR R1,$SAVE5 ; 0589
000004 016705 000002G MOV .CRDAT+2,R5 ; 0614
000010 016467 000016 000000G MOV 16(R4),KISAR6 ; *(CCB),* 0625
000016 016400 000020 MOV 20(R4),R0 ; *(CCB),BUF.PTR 0626
000022 105001 CLRB R1 ; DATA.ID 0627
000024 152001 BISB (R0)+,R1 ; BUF.PTR,DATA.ID
000026 010146 MOV R1,-(SP) ; DATA.ID,* 0628
000030 112066 000001 MOVB (R0)+,1(SP) ; BUF.PTR,*
000034 012601 MOV (SP)+,R1 ; *,DATA.ID
000036 042701 170000 BIC #170000,R1 ; *,DATA.ID 0629
000042 105004 CLRB R4 ; DATA.VALUE 0630
000044 152004 BISB (R0)+,R4 ; BUF.PTR,DATA.VALUE
000046 010446 MOV R4,-(SP) ; DATA.VALUE,* 0631
000050 112066 000001 MOVB (R0)+,1(SP) ; BUF.PTR,*
000054 012604 MOV (SP)+,R4 ; *,DATA.VALUE
000056 016767 000000G 000000G MOV .CRDAT,KISAR6 ; 0632
000064 012700 000120' MOV #P.AAJ,R0 ; 0645
000070 004767 000000G JSR PC,$IDVAL
000074 006300 ASL R0
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 28
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (9)
000076 010401 MOV R4,R1 ; DATA.VALUE,*
000100 004770 000100' JSR PC,@P.AAI(R0)
000104 000207 RTS PC ; 0589
; Routine Size: 35 words, Routine Base: $CODE$ + 2172
; Maximum stack depth per invocation: 7 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 29
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (10)
; 0647 routine SET_LINE_CONTROLLER (DB, CONTROLLER) : DMC_DB_NUM =
; 0648
; 0649 !++
; 0650 ! FUNCTIONAL DESCRIPTION:
; 0651 !
; 0652 !
; 0653 ! FORMAL PARAMETERS:
; 0654 ! CONTROLLER = (NORMAL, LOOPBACK)
; 0655 !
; 0656 ! IMPLICIT INPUTS:
; 0657 ! None
; 0658 !
; 0659 ! IMPLICIT OUTPUTS:
; 0660 ! None
; 0661 !
; 0662 ! ROUTINE VALUE:
; 0663 ! The appropriate NM status code
; 0664 !
; 0665 ! COMPLETION CODES:
; 0666 ! None
; 0667 !
; 0668 ! SIDE EFFECTS:
; 0669 ! None
; 0670 !--
; 0671
; 0672 begin
; 0673 GET_DMC_DATA_BASE (DB)
; 0674
; 0675 literal
; 0676 LOOPBACK = 1,
; 0677 NORMAL = 0;
; 0678
; 0679 if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
; 0680
; 0681 selectone .CONTROLLER of
; 0682 set
; 0683 [NORMAL] : (DB [DF_CONTROLLER_LOOPBACK] = 0; NM$SUC);
; 0684 [LOOPBACK] : (DB [DF_CONTROLLER_LOOPBACK] = 1; NM$SUC);
; 0685 [otherwise] : NE$IPV;
; 0686 tes
; 0687
; 0688 end;
.SBTTL SET.LINE.CONTROLLER
000000 105765 000034 SET.LINE.CONTROLLER:
TSTB 34(R5) ; *(DB) 0679
000004 001403 BEQ 1$
000006 012700 177765 MOV #-13,R0
000012 000207 RTS PC
000014 005701 1$: TST R1 ; CONTROLLER 0681
000016 001004 BNE 2$
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 30
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (10)
000020 042765 002000 000032 BIC #2000,32(R5) ; *,*(DB) 0683
000026 000406 BR 3$ ; 0681
000030 020127 000001 2$: CMP R1,#1 ; CONTROLLER,*
000034 001006 BNE 4$
000036 052765 002000 000032 BIS #2000,32(R5) ; *,*(DB) 0684
000044 012700 000001 3$: MOV #1,R0 ; 0681
000050 000207 RTS PC
000052 012700 177760 4$: MOV #-20,R0
000056 000207 RTS PC ; 0647
; Routine Size: 24 words, Routine Base: $CODE$ + 2300
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 31
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (11)
; 0689 routine SET_LINE_DUPLEX (DB, DUPLEX) : DMC_DB_NUM =
; 0690
; 0691 !++
; 0692 ! FUNCTIONAL DESCRIPTION:
; 0693 !
; 0694 !
; 0695 ! FORMAL PARAMETERS:
; 0696 ! DUPLEX = (FULL, HALF)
; 0697 !
; 0698 ! IMPLICIT INPUTS:
; 0699 ! None
; 0700 !
; 0701 ! IMPLICIT OUTPUTS:
; 0702 ! None
; 0703 !
; 0704 ! ROUTINE VALUE:
; 0705 ! The appropriate NM status code
; 0706 !
; 0707 ! COMPLETION CODES:
; 0708 ! None
; 0709 !
; 0710 ! SIDE EFFECTS:
; 0711 ! None
; 0712 !--
; 0713
; 0714 begin
; 0715 GET_DMC_DATA_BASE (DB)
; 0716
; 0717 literal
; 0718 FULL = 0,
; 0719 HALF = 1;
; 0720
; 0721 if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
; 0722
; 0723 selectone .DUPLEX of
; 0724 set
; 0725 [FULL] : (DB [DF_HALF_DUPLEX] = 0; NM$SUC);
; 0726 [HALF] : (DB [DF_HALF_DUPLEX] = 1; NM$SUC);
; 0727 [otherwise] : NE$IPV;
; 0728 tes
; 0729
; 0730 end;
.SBTTL SET.LINE.DUPLEX
000000 105765 000034 SET.LINE.DUPLEX:
TSTB 34(R5) ; *(DB) 0721
000004 001403 BEQ 1$
000006 012700 177765 MOV #-13,R0
000012 000207 RTS PC
000014 005701 1$: TST R1 ; DUPLEX 0723
000016 001004 BNE 2$
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 32
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (11)
000020 042765 000400 000032 BIC #400,32(R5) ; *,*(DB) 0725
000026 000406 BR 3$ ; 0723
000030 020127 000001 2$: CMP R1,#1 ; DUPLEX,*
000034 001006 BNE 4$
000036 052765 000400 000032 BIS #400,32(R5) ; *,*(DB) 0726
000044 012700 000001 3$: MOV #1,R0 ; 0723
000050 000207 RTS PC
000052 012700 177760 4$: MOV #-20,R0
000056 000207 RTS PC ; 0689
; Routine Size: 24 words, Routine Base: $CODE$ + 2360
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 33
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (12)
; 0731 routine SET_LINE_RECEIVE_BUFFERS (DB, COUNT) : DMC_DB_NUM =
; 0732
; 0733 !++
; 0734 ! FUNCTIONAL DESCRIPTION:
; 0735 !
; 0736 !
; 0737 ! FORMAL PARAMETERS:
; 0738 ! COUNT = (1 to 16)
; 0739 !
; 0740 ! IMPLICIT INPUTS:
; 0741 ! None
; 0742 !
; 0743 ! IMPLICIT OUTPUTS:
; 0744 ! None
; 0745 !
; 0746 ! ROUTINE VALUE:
; 0747 ! The appropriate NM status code
; 0748 !
; 0749 ! COMPLETION CODES:
; 0750 ! None
; 0751 !
; 0752 ! SIDE EFFECTS:
; 0753 ! None
; 0754 !--
; 0755
; 0756 begin
; 0757 GET_DMC_DATA_BASE (DB)
; 0758
; 0759 if not .DB [DF_DMR]
; 0760 then
; 0761 selectone .COUNT of
; 0762 set
; 0763 [1 to 7] : (DB [D_MAXIMUM_RECEIVE_COUNT] = .COUNT; NM$SUC);
; 0764 [otherwise] : NE$IPV;
; 0765 tes
; 0766 else
; 0767 selectone .COUNT of
; 0768 set
; 0769 [1 to 16] : (DB [D_MAXIMUM_RECEIVE_COUNT] = .COUNT; NM$SUC);
; 0770 [otherwise] : NE$IPV;
; 0771 tes
; 0772
; 0773 end;
.SBTTL SET.LINE.RECEIVE.BUFFERS
000000 032765 010000 000032 SET.LINE.RECEIVE.BUFFERS:
BIT #10000,32(R5) ; *,*(DB) 0759
000006 001006 BNE 1$
000010 005701 TST R1 ; COUNT 0761
000012 003416 BLE 3$
000014 020127 000007 CMP R1,#7 ; COUNT,*
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 34
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (12)
000020 003406 BLE 2$ ; 0763
000022 000412 BR 3$ ; 0761
000024 005701 1$: TST R1 ; COUNT 0767
000026 003410 BLE 3$
000030 020127 000020 CMP R1,#20 ; COUNT,*
000034 003005 BGT 3$
000036 110165 000120 2$: MOVB R1,120(R5) ; COUNT,*(DB) 0769
000042 012700 000001 MOV #1,R0 ; 0767
000046 000207 RTS PC
000050 012700 177760 3$: MOV #-20,R0
000054 000207 RTS PC ; 0731
; Routine Size: 23 words, Routine Base: $CODE$ + 2440
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 35
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (13)
; 0774 routine SET_LINE_RETRANSMIT_TIMER (DB, RETRANSMIT_TIMER) : DMC_DB_NUM =
; 0775
; 0776 !++
; 0777 ! FUNCTIONAL DESCRIPTION:
; 0778 !
; 0779 !
; 0780 ! FORMAL PARAMETERS:
; 0781 ! RETRANSMIT_TIMER = (1000, 3000)
; 0782 !
; 0783 ! IMPLICIT INPUTS:
; 0784 ! None
; 0785 !
; 0786 ! IMPLICIT OUTPUTS:
; 0787 ! None
; 0788 !
; 0789 ! ROUTINE VALUE:
; 0790 ! The appropriate NM status code
; 0791 !
; 0792 ! COMPLETION CODES:
; 0793 ! None
; 0794 !
; 0795 ! SIDE EFFECTS:
; 0796 ! None
; 0797 !--
; 0798
; 0799 begin
; 0800 GET_DMC_DATA_BASE (DB)
; 0801
; 0802 if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
; 0803
; 0804 selectone .RETRANSMIT_TIMER of
; 0805 set
; 0806 [1000] : (DB [DF_1_SEC] = TRUE; NM$SUC);
; 0807 [3000] : (DB [DF_1_SEC] = FALSE; NM$SUC);
; 0808 [otherwise] : NE$IPV;
; 0809 tes
; 0810
; 0811 end;
.SBTTL SET.LINE.RETRANSMIT.TIMER
000000 105765 000034 SET.LINE.RETRANSMIT.TIMER:
TSTB 34(R5) ; *(DB) 0802
000004 001403 BEQ 1$
000006 012700 177765 MOV #-13,R0
000012 000207 RTS PC
000014 020127 001750 1$: CMP R1,#1750 ; RETRANSMIT.TIME,* 0804
000020 001004 BNE 2$
000022 052765 001000 000032 BIS #1000,32(R5) ; *,*(DB) 0806
000030 000406 BR 3$ ; 0804
000032 020127 005670 2$: CMP R1,#5670 ; RETRANSMIT.TIME,*
000036 001006 BNE 4$
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 36
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (13)
000040 042765 001000 000032 BIC #1000,32(R5) ; *,*(DB) 0807
000046 012700 000001 3$: MOV #1,R0 ; 0804
000052 000207 RTS PC
000054 012700 177760 4$: MOV #-20,R0
000060 000207 RTS PC ; 0774
; Routine Size: 25 words, Routine Base: $CODE$ + 2516
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 37
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (14)
; 0812 routine SET_LINE_SERVICE_TIMER (DB, MILLISECONDS) : DMC_DB_NUM =
; 0813
; 0814 !++
; 0815 ! FUNCTIONAL DESCRIPTION:
; 0816 !
; 0817 !
; 0818 ! FORMAL PARAMETERS:
; 0819 ! MILLISECONDS = 1 to 65535
; 0820 !
; 0821 ! IMPLICIT INPUTS:
; 0822 ! None
; 0823 !
; 0824 ! IMPLICIT OUTPUTS:
; 0825 ! None
; 0826 !
; 0827 ! ROUTINE VALUE:
; 0828 ! The appropriate NM status code
; 0829 !
; 0830 ! COMPLETION CODES:
; 0831 ! None
; 0832 !
; 0833 ! SIDE EFFECTS:
; 0834 ! None
; 0835 !--
; 0836
; 0837 begin
; 0838 GET_DMC_DATA_BASE (DB)
; 0839
; 0840 if .MILLISECONDS<1, 15, 0> mod (1000/2) neq 0 or
; 0841 .MILLISECONDS<0, 1, 0> neq 0 then return NE$IPV;
; 0842
; 0843 DB [D_SERVICE_TIMER] = .MILLISECONDS<1, 15, 0>/(1000/2);
; 0844 NM$SUC
; 0845 end;
.SBTTL SET.LINE.SERVICE.TIMER
000000 010246 SET.LINE.SERVICE.TIMER:
MOV R2,-(SP) ; 0812
000002 010102 MOV R1,R2 ; *,MILLISECONDS
000004 006201 ASR R1 ; 0840
000006 042701 100000 BIC #100000,R1
000012 006700 SXT R0
000014 071027 000764 DIV #764,R0
000020 005701 TST R1
000022 001003 BNE 1$
000024 032702 000001 BIT #1,R2 ; *,MILLISECONDS 0841
000030 001403 BEQ 2$
000032 012700 177760 1$: MOV #-20,R0
000036 000413 BR 3$
000040 010201 2$: MOV R2,R1 ; MILLISECONDS,* 0843
000042 006201 ASR R1
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 38
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (14)
000044 042701 100000 BIC #100000,R1
000050 005000 CLR R0
000052 071027 000764 DIV #764,R0
000056 010065 000076 MOV R0,76(R5) ; *,*(DB)
000062 012700 000001 MOV #1,R0 ; 0812
000066 012602 3$: MOV (SP)+,R2
000070 000207 RTS PC
; Routine Size: 29 words, Routine Base: $CODE$ + 2600
; Maximum stack depth per invocation: 2 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 39
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (15)
; 0846 routine SET_LINE_STATE (DB, STATE) : DMC_DB_NUM =
; 0847
; 0848 !++
; 0849 ! FUNCTIONAL DESCRIPTION:
; 0850 !
; 0851 !
; 0852 ! FORMAL PARAMETERS:
; 0853 ! STATE = (OFF, ON)
; 0854 !
; 0855 ! IMPLICIT INPUTS:
; 0856 ! None
; 0857 !
; 0858 ! IMPLICIT OUTPUTS:
; 0859 ! None
; 0860 !
; 0861 ! ROUTINE VALUE:
; 0862 ! The appropriate NM status code
; 0863 !
; 0864 ! COMPLETION CODES:
; 0865 ! None
; 0866 !
; 0867 ! SIDE EFFECTS:
; 0868 ! None
; 0869 !--
; 0870
; 0871 begin
; 0872 GET_DMC_DATA_BASE (DB)
; 0873
; 0874 literal
; 0875 ON = 0, ! New state = ON
; 0876 OFF = 1, ! New state = OFF
; 0877 SERVICE = 2, ! New state = SERVICE
; 0878 CLEARED = 3; ! New state = CLEARED
; 0879
; 0880 selectone .STATE <0, 8> of
; 0881 set
; 0882 [ON] :
; 0883 begin
; 0884 $MCB_ENABLE_LONG_TIMER ();
; 0885 DB [DC_SET_REQUESTED_STATE] = TRUE;
; 0886 DB [D_LINE_STATE] = .STATE <0, 8>;
; 0887 SET_PORT (DB [D_TIM]);
; 0888 NM$SUC
; 0889 end;
; 0890 [OFF] :
; 0891 begin
; 0892 DB [DC_HALT] = TRUE;
; 0893 DB [DC_MASTER_CLEAR] = TRUE;
; 0894 DB [DC_BASE_IN] = FALSE;
; 0895 DB [DC_CONTROL_IN] = FALSE;
; 0896 DB [DC_SET_REQUESTED_STATE] = FALSE;
; 0897 DB [D_LINE_STATE] = .STATE <0, 8>;
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 40
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (15)
; 0898 SET_PORT (DB [D_TIM]);
; 0899 NM$SUC
; 0900 end;
; 0901 [otherwise] : NE$MPE;
; 0902 tes
; 0903
; 0904 end;
.GLOBL $LTMEN
.SBTTL SET.LINE.STATE
000000 105701 SET.LINE.STATE:
TSTB R1 ; STATE 0880
000002 001006 BNE 1$
000004 004767 000000G JSR PC,$LTMEN ; 0884
000010 152765 000100 000032 BISB #100,32(R5) ; *,*(DB) 0885
000016 000412 BR 2$ ; 0886
000020 120127 000001 1$: CMPB R1,#1 ; STATE,* 0880
000024 001016 BNE 3$
000026 012700 000032 MOV #32,R0 ; 0892
000032 060500 ADD R5,R0 ; DB,*
000034 152710 000003 BISB #3,(R0) ; 0893
000040 142710 000160 BICB #160,(R0) ; 0896
000044 110165 000037 2$: MOVB R1,37(R5) ; STATE,*(DB) 0897
000050 004767 000000G JSR PC,SET.PORT ; 0898
000054 012700 000001 MOV #1,R0 ; 0880
000060 000207 RTS PC
000062 012700 177773 3$: MOV #-5,R0
000066 000207 RTS PC ; 0846
; Routine Size: 28 words, Routine Base: $CODE$ + 2672
; Maximum stack depth per invocation: 1 word
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 41
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (16)
; U 0905 %if DMC$K_FANCY %then
; U 0906 routine SET_LINE_CONTROLLER_REGISTER (DB, ADDRESS) : DMC_DB_NUM =
; U 0907
; U 0908 !++
; U 0909 ! FUNCTIONAL DESCRIPTION:
; U 0910 !
; U 0911 !
; U 0912 ! FORMAL PARAMETERS:
; U 0913 ! ADDRESS = UNIBUS address.
; U 0914 !
; U 0915 ! IMPLICIT INPUTS:
; U 0916 ! None
; U 0917 !
; U 0918 ! IMPLICIT OUTPUTS:
; U 0919 ! None
; U 0920 !
; U 0921 ! ROUTINE VALUE:
; U 0922 ! The appropriate NM status code
; U 0923 !
; U 0924 ! COMPLETION CODES:
; U 0925 ! None
; U 0926 !
; U 0927 ! SIDE EFFECTS:
; U 0928 ! None
; U 0929 !--
; U 0930
; U 0931 begin
; U 0932 GET_DMC_DATA_BASE (DB)
; U 0933
; U 0934 if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
; U 0935
; U 0936 selectoneu .ADDRESS of
; U 0937 set
; U 0938 [%o'160000' to %o'177777'] : NO_OPERATION;
; U 0939 [otherwise] : return NE$IPV;
; U 0940 tes;
; U 0941
; U 0942 DB [D_REGISTER] = .ADDRESS;
; U 0943 DB [D_DEVICE_STATE] = DD_CLEARED;
; U 0944 NM$SUC
; U 0945 end;
; 0946 %fi
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 42
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (17)
; U 0947 %if DMC$K_FANCY %then
; U 0948 routine SET_LINE_INTERRUPT_VECTOR (DB, ADDRESS) : DMC_DB_NUM =
; U 0949
; U 0950 !++
; U 0951 ! FUNCTIONAL DESCRIPTION:
; U 0952 !
; U 0953 !
; U 0954 ! FORMAL PARAMETERS:
; U 0955 ! ADDRESS = Interrupt vector address.
; U 0956 !
; U 0957 ! IMPLICIT INPUTS:
; U 0958 ! None
; U 0959 !
; U 0960 ! IMPLICIT OUTPUTS:
; U 0961 ! None
; U 0962 !
; U 0963 ! ROUTINE VALUE:
; U 0964 ! The appropriate NM status code
; U 0965 !
; U 0966 ! COMPLETION CODES:
; U 0967 ! None
; U 0968 !
; U 0969 ! SIDE EFFECTS:
; U 0970 ! None
; U 0971 !--
; U 0972
; U 0973 begin
; U 0974 GET_DMC_DATA_BASE (DB)
; U 0975
; U 0976 if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
; U 0977
; U 0978 selectoneu .ADDRESS of
; U 0979 set
; U 0980 [%o'0000' to %o'1000'] : NO_OPERATION;
; U 0981 [otherwise] : return NE$IPV;
; U 0982 tes;
; U 0983
; U 0984 DB [D_VECTOR] = .ADDRESS;
; U 0985 DB [D_DEVICE_STATE] = DD_CLEARED;
; U 0986 NM$SUC
; U 0987 end;
; 0988 %fi
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 43
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (18)
; U 0989 %if DMC$K_FANCY %then
; U 0990 routine SET_LINE_INTERRUPT_PRIORITY (DB, PRIORITY) : DMC_DB_NUM =
; U 0991
; U 0992 !++
; U 0993 ! FUNCTIONAL DESCRIPTION:
; U 0994 !
; U 0995 !
; U 0996 ! FORMAL PARAMETERS:
; U 0997 ! PRIORITY = Interrupt priority.
; U 0998 !
; U 0999 ! IMPLICIT INPUTS:
; U 1000 ! None
; U 1001 !
; U 1002 ! IMPLICIT OUTPUTS:
; U 1003 ! None
; U 1004 !
; U 1005 ! ROUTINE VALUE:
; U 1006 ! The appropriate NM status code
; U 1007 !
; U 1008 ! COMPLETION CODES:
; U 1009 ! None
; U 1010 !
; U 1011 ! SIDE EFFECTS:
; U 1012 ! None
; U 1013 !--
; U 1014
; U 1015 begin
; U 1016 GET_DMC_DATA_BASE (DB)
; U 1017 PRIORITY = .PRIORITY <0, 8>;
; U 1018
; U 1019 if .DB [D_PROTOCOL_STATE] neq DS_HALTED then return NE$CWS;
; U 1020
; U 1021 selectone .PRIORITY of
; U 1022 set
; U 1023 [4 to 7] : NO_OPERATION;
; U 1024 [otherwise] : return NE$IPV;
; U 1025 tes;
; U 1026
; U 1027 DB [D_PRIORITY] = .PRIORITY;
; U 1028 DB [D_DEVICE_STATE] = DD_CLEARED;
; U 1029 NM$SUC
; U 1030 end;
; 1031 %fi
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 44
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (19)
; 1032 routine SHOW_AND_ZERO_CIRCUIT_COUNTERS (CCB) : LINKAGE_CCB =
; 1033
; 1034 !++
; 1035 ! FUNCTIONAL DESCRIPTION:
; 1036 !
; 1037 !
; 1038 ! FORMAL PARAMETERS:
; 1039 ! CCB Address of CCB
; 1040 !
; 1041 ! IMPLICIT INPUTS:
; 1042 ! None
; 1043 !
; 1044 ! IMPLICIT OUTPUTS:
; 1045 ! None
; 1046 !
; 1047 ! ROUTINE VALUE:
; 1048 ! The appropriate NM status code
; 1049 !
; 1050 ! COMPLETION CODES:
; 1051 ! None
; 1052 !
; 1053 ! SIDE EFFECTS:
; 1054 ! None
; 1055 !--
; 1056
; 1057 begin
; 1058 GET_DMC_DATA_BASE (DB)
; 1059
; 1060 map
; 1061 CCB: ref block field (C_NM_FIELDS);
; 1062
; 1063 $NM_RESPONSE_BEGIN (.CCB);
; 1064 PARAMETER_CIRCUIT_COUNTERS (DB [D_TIM]);
; 1065 $NM_RESPONSE_END (.CCB);
; 1066 ZERO_CIRCUIT_COUNTERS (.CCB);
; 1067 .CCB [C_STS]
; 1068 end;
.GLOBL $NRBEG, $NREND
.SBTTL SHOW.AND.ZERO.CIRCUIT.COUNTERS
000000 010546 SHOW.AND.ZERO.CIRCUIT.COUNTERS:
MOV R5,-(SP) ; 1032
000002 016705 000002G MOV .CRDAT+2,R5 ; 1057
000006 004767 000000G JSR PC,$NRBEG ; 1063
000012 004767 175346 JSR PC,CKCTRS ; 1064
000016 004767 000000G JSR PC,$NREND ; 1065
000022 004767 000000V JSR PC,ZERO.CIRCUIT.COUNTERS ; 1066
000026 016400 000014 MOV 14(R4),R0 ; *(CCB),* 1032
000032 012605 MOV (SP)+,R5
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 45
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (19)
000034 000207 RTS PC
; Routine Size: 15 words, Routine Base: $CODE$ + 2762
; Maximum stack depth per invocation: 2 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 46
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (20)
; 1069 routine SHOW_AND_ZERO_LINE_COUNTERS (CCB) : LINKAGE_CCB =
; 1070
; 1071 !++
; 1072 ! FUNCTIONAL DESCRIPTION:
; 1073 !
; 1074 !
; 1075 ! FORMAL PARAMETERS:
; 1076 ! CCB Address of CCB
; 1077 !
; 1078 ! IMPLICIT INPUTS:
; 1079 ! None
; 1080 !
; 1081 ! IMPLICIT OUTPUTS:
; 1082 ! None
; 1083 !
; 1084 ! ROUTINE VALUE:
; 1085 ! The appropriate NM status code
; 1086 !
; 1087 ! COMPLETION CODES:
; 1088 ! None
; 1089 !
; 1090 ! SIDE EFFECTS:
; 1091 ! None
; 1092 !--
; 1093
; 1094 begin
; 1095 GET_DMC_DATA_BASE (DB)
; 1096
; 1097 map
; 1098 CCB: ref block field (C_NM_FIELDS);
; 1099
; 1100 $NM_RESPONSE_BEGIN (.CCB);
; 1101 PARAMETER_LINE_COUNTERS (DB [D_TIM]);
; 1102 $NM_RESPONSE_END (.CCB);
; 1103 ZERO_LINE_COUNTERS (.CCB);
; 1104 .CCB [C_STS]
; 1105 end;
.SBTTL SHOW.AND.ZERO.LINE.COUNTERS
000000 010546 SHOW.AND.ZERO.LINE.COUNTERS:
MOV R5,-(SP) ; 1069
000002 016705 000002G MOV .CRDAT+2,R5 ; 1094
000006 004767 000000G JSR PC,$NRBEG ; 1100
000012 004767 176474 JSR PC,LNCTRS ; 1101
000016 004767 000000G JSR PC,$NREND ; 1102
000022 004767 000000V JSR PC,ZERO.LINE.COUNTERS ; 1103
000026 016400 000014 MOV 14(R4),R0 ; *(CCB),* 1069
000032 012605 MOV (SP)+,R5
000034 000207 RTS PC
; Routine Size: 15 words, Routine Base: $CODE$ + 3020
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 47
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (20)
; Maximum stack depth per invocation: 2 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 48
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (21)
; 1106 routine SHOW_CIRCUIT (CCB) : LINKAGE_CCB =
; 1107
; 1108 !++
; 1109 ! FUNCTIONAL DESCRIPTION:
; 1110 !
; 1111 !
; 1112 ! FORMAL PARAMETERS:
; 1113 ! CCB Address of CCB
; 1114 !
; 1115 ! IMPLICIT INPUTS:
; 1116 ! None
; 1117 !
; 1118 ! IMPLICIT OUTPUTS:
; 1119 ! None
; 1120 !
; 1121 ! ROUTINE VALUE:
; 1122 ! The appropriate NM status code
; 1123 !
; 1124 ! COMPLETION CODES:
; 1125 ! None
; 1126 !
; 1127 ! SIDE EFFECTS:
; 1128 ! None
; 1129 !--
; 1130
; 1131 begin
; 1132 GET_DMC_DATA_BASE (DB)
; 1133
; 1134 map
; 1135 CCB: ref block field (C_NM_FIELDS);
; 1136
; 1137 $NM_RESPONSE_BEGIN (.CCB);
; 1138
; 1139 selectone .CCB [C_NM_SELECT] of
; 1140 set
; 1141
; 1142 [NMX$SEL_sum, NMX$SEL_sta] :
; 1143 begin
; 1144 NMX$PARAMETER_CIRCUIT_USER (.DB [D_NMX_PIX], .DB [D_CIRCUIT_ENTITY], 1000);
; 1145 end;
; 1146
; 1147 [NMX$SEL_cha] :
; 1148 begin
; 1149
; 1150 literal
; 1151 DDCMP_DMC = 4; ! TYPE
; 1152
; 1153 local
; 1154 PRM;
; 1155
; 1156 NMX$PARAMETER_CIRCUIT_OWNER (.DB [D_NMX_PIX], .DB [D_CIRCUIT_ENTITY], 1100);
; 1157 NMX$PARAMETER_LINE (.DB [D_NMX_PIX], .DB [D_LINE_ENTITY], 1110);
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 49
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (21)
; 1158 PRM = DDCMP_DMC;
; 1159 PARAMETER_C_1 (1112, PRM); ! TYPE
; 1160 end;
; 1161
; 1162 [NMX$SEL_cou] :
; 1163 PARAMETER_CIRCUIT_COUNTERS (DB [D_TIM]);
; 1164
; 1165 [otherwise] :
; 1166 return $NM$ERR_MPE;
; 1167
; 1168 tes;
; 1169
; 1170 $NM_RESPONSE_END (.CCB);
; 1171 .CCB [C_STS]
; 1172 end;
.GLOBL $NPUSR, $CALLP, $NPOWN, $NPNAM
.GLOBL $DPC1
.SBTTL SHOW.CIRCUIT
000000 010546 SHOW.CIRCUIT:
MOV R5,-(SP) ; 1106
000002 016705 000002G MOV .CRDAT+2,R5 ; 1131
000006 004767 000000G JSR PC,$NRBEG ; 1137
000012 016400 000024 MOV 24(R4),R0 ; *(CCB),* 1139
000016 072027 177764 ASH #-14,R0
000022 042700 177760 BIC #177760,R0
000026 003425 BLE 1$
000030 020027 000002 CMP R0,#2
000034 003022 BGT 1$
000036 012746 001750 MOV #1750,-(SP) ; 1144
000042 016546 000100 MOV 100(R5),-(SP)
000046 012746 002004 MOV #2004,-(SP)
000052 012746 000003 MOV #3,-(SP)
000056 012746 000000G MOV #$NPUSR,-(SP)
000062 005046 CLR -(SP)
000064 116516 000007 MOVB 7(R5),(SP)
000070 004767 000000G JSR PC,$CALLP
000074 062706 000014 ADD #14,SP ; 1143
000100 000464 BR 4$ ; 1139
000102 020027 000003 1$: CMP R0,#3
000106 001050 BNE 2$
000110 012746 002114 MOV #2114,-(SP) ; 1156
000114 016546 000100 MOV 100(R5),-(SP)
000120 012746 002000 MOV #2000,-(SP)
000124 012746 000003 MOV #3,-(SP)
000130 012746 000000G MOV #$NPOWN,-(SP)
000134 005046 CLR -(SP)
000136 116516 000007 MOVB 7(R5),(SP)
000142 004767 000000G JSR PC,$CALLP
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 50
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (21)
000146 012716 002126 MOV #2126,(SP) ; 1157
000152 016546 000102 MOV 102(R5),-(SP)
000156 012746 001004 MOV #1004,-(SP)
000162 012746 000003 MOV #3,-(SP)
000166 012746 000000G MOV #$NPNAM,-(SP)
000172 005046 CLR -(SP)
000174 116516 000007 MOVB 7(R5),(SP)
000200 004767 000000G JSR PC,$CALLP
000204 012705 000004 MOV #4,R5 ; *,PRM 1158
000210 012716 002130 MOV #2130,(SP) ; 1159
000214 110500 MOVB R5,R0 ; PRM,*
000216 004767 000000G JSR PC,$DPC1
000222 062706 000026 ADD #26,SP ; 1148
000226 000411 BR 4$ ; 1139
000230 020027 000004 2$: CMP R0,#4
000234 001003 BNE 3$
000236 004767 175026 JSR PC,CKCTRS ; 1163
000242 000403 BR 4$ ; 1139
000244 012700 177773 3$: MOV #-5,R0 ; 1166
000250 000404 BR 5$
000252 004767 000000G 4$: JSR PC,$NREND ; 1170
000256 016400 000014 MOV 14(R4),R0 ; *(CCB),* 1106
000262 012605 5$: MOV (SP)+,R5
000264 000207 RTS PC
; Routine Size: 91 words, Routine Base: $CODE$ + 3056
; Maximum stack depth per invocation: 13 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 51
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (22)
; 1173 routine SHOW_LINE (CCB) : LINKAGE_CCB =
; 1174
; 1175 !++
; 1176 ! FUNCTIONAL DESCRIPTION:
; 1177 !
; 1178 !
; 1179 ! FORMAL PARAMETERS:
; 1180 ! CCB Address of CCB
; 1181 !
; 1182 ! IMPLICIT INPUTS:
; 1183 ! None
; 1184 !
; 1185 ! IMPLICIT OUTPUTS:
; 1186 ! None
; 1187 !
; 1188 ! ROUTINE VALUE:
; 1189 ! The appropriate NM status code
; 1190 !
; 1191 ! COMPLETION CODES:
; 1192 ! None
; 1193 !
; 1194 ! SIDE EFFECTS:
; 1195 ! None
; 1196 !--
; 1197
; 1198 begin
; 1199 GET_DMC_DATA_BASE (DB)
; 1200
; 1201 map
; 1202 CCB: ref block field (C_NM_FIELDS);
; 1203
; 1204 $NM_RESPONSE_BEGIN (.CCB);
; 1205
; 1206 selectone .CCB [C_NM_SELECT] of
; 1207 set
; 1208
; 1209 [NMX$SEL_sum, NMX$SEL_sta] :
; 1210 begin
; 1211 PARAMETER_C_1 (0, DB [D_LINE_STATE]); ! STATE
; 1212 end;
; 1213
; 1214 [NMX$SEL_cha] :
; 1215 begin
; 1216
; 1217 literal
; 1218 DDCMP_DMC = 4, ! TYPE
; 1219 FULL = 0, ! DUPLEX
; 1220 HALF = 1,
; 1221 LOOPBACK = 1, ! CONTROLLER
; 1222 NORMAL = 0,
; 1223 EXTRN = 0, ! CLOCK
; 1224 INTRN = 1;
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 52
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (22)
; 1225
; 1226 local
; 1227 PRM;
; 1228
; 1229 NMX$PARAMETER_LINE (.DB [D_NMX_PIX], .DB [D_LINE_ENTITY], 1100);
; 1230 ! DEVICE
; 1231 PRM = .DB [D_MAXIMUM_RECEIVE_COUNT];
; 1232 PARAMETER_C_1 (1105, PRM);
; 1233 PRM = (if .DB [DF_CONTROLLER_LOOPBACK] then LOOPBACK else NORMAL);
; 1234 PARAMETER_C_1 (1110, PRM);
; 1235 PRM = (if .DB [DF_HALF_DUPLEX] then HALF else FULL);
; 1236 PARAMETER_C_1 (1111, PRM);
; 1237 PRM = DDCMP_DMC;
; 1238 PARAMETER_C_1 (1112, PRM);
; 1239 PRM = EXTRN;
; 1240 PARAMETER_C_1 (1113, PRM);
; 1241 PRM = .DB [D_SERVICE_TIMER]*1000;
; 1242 PARAMETER_DU_2 (1120, PRM);
; 1243 PRM = (if .DB [DF_1_SEC] then 1000 else 3000);
; 1244 PARAMETER_DU_2 (1121, PRM);
; 1245 PARAMETER_O_2 (2650, DB [D_REGISTER]);
; 1246 PARAMETER_O_2 (2655, DB [D_VECTOR]);
; 1247 PARAMETER_DU_1 (2660, DB [D_PRIORITY]);
; 1248 end;
; 1249
; 1250 [NMX$SEL_cou] :
; 1251 PARAMETER_LINE_COUNTERS (DB [D_TIM]);
; 1252
; 1253 [otherwise] :
; 1254 return $NM$ERR_MPE;
; 1255
; 1256 tes;
; 1257
; 1258 $NM_RESPONSE_END (.CCB);
; 1259 .CCB [C_STS]
; 1260 end;
.GLOBL $DPDU2, $DPO2, $DPDU1
.SBTTL SHOW.LINE
000000 004167 000000G SHOW.LINE:
JSR R1,$SAVE5 ; 1173
000004 016701 000002G MOV .CRDAT+2,R1 ; 1198
000010 004767 000000G JSR PC,$NRBEG ; 1204
000014 016400 000024 MOV 24(R4),R0 ; *(CCB),* 1206
000020 072027 177764 ASH #-14,R0
000024 042700 177760 BIC #177760,R0
000030 003412 BLE 1$
000032 020027 000002 CMP R0,#2
000036 003007 BGT 1$
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 53
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (22)
000040 005046 CLR -(SP) ; 1211
000042 116100 000037 MOVB 37(R1),R0
000046 004767 000000G JSR PC,$DPC1
000052 005726 TST (SP)+ ; 1210
000054 000567 BR 10$ ; 1206
000056 020027 000003 1$: CMP R0,#3
000062 001152 BNE 8$
000064 012746 002114 MOV #2114,-(SP) ; 1229
000070 016146 000102 MOV 102(R1),-(SP)
000074 012746 001004 MOV #1004,-(SP)
000100 012746 000003 MOV #3,-(SP)
000104 012746 000000G MOV #$NPNAM,-(SP)
000110 005046 CLR -(SP)
000112 116116 000007 MOVB 7(R1),(SP)
000116 004767 000000G JSR PC,$CALLP
000122 005005 CLR R5 ; PRM 1231
000124 156105 000120 BISB 120(R1),R5 ; *,PRM
000130 012716 002121 MOV #2121,(SP) ; 1232
000134 110500 MOVB R5,R0 ; PRM,*
000136 004767 000000G JSR PC,$DPC1
000142 012702 000032 MOV #32,R2 ; 1233
000146 060102 ADD R1,R2
000150 032712 002000 BIT #2000,(R2)
000154 001403 BEQ 2$
000156 012705 000001 MOV #1,R5 ; *,PRM
000162 000401 BR 3$
000164 005005 2$: CLR R5 ; PRM
000166 012716 002126 3$: MOV #2126,(SP) ; 1234
000172 110500 MOVB R5,R0 ; PRM,*
000174 004767 000000G JSR PC,$DPC1
000200 032712 000400 BIT #400,(R2) ; 1235
000204 001403 BEQ 4$
000206 012705 000001 MOV #1,R5 ; *,PRM
000212 000401 BR 5$
000214 005005 4$: CLR R5 ; PRM
000216 012716 002127 5$: MOV #2127,(SP) ; 1236
000222 110500 MOVB R5,R0 ; PRM,*
000224 004767 000000G JSR PC,$DPC1
000230 012705 000004 MOV #4,R5 ; *,PRM 1237
000234 012716 002130 MOV #2130,(SP) ; 1238
000240 110500 MOVB R5,R0 ; PRM,*
000242 004767 000000G JSR PC,$DPC1
000246 005005 CLR R5 ; PRM 1239
000250 012716 002131 MOV #2131,(SP) ; 1240
000254 105000 CLRB R0
000256 004767 000000G JSR PC,$DPC1
000262 016105 000076 MOV 76(R1),R5 ; 1241
000266 070527 001750 MUL #1750,R5
000272 012716 002140 MOV #2140,(SP) ; 1242
000276 010500 MOV R5,R0 ; PRM,*
000300 004767 000000G JSR PC,$DPDU2
000304 032712 001000 BIT #1000,(R2) ; 1243
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 54
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (22)
000310 001403 BEQ 6$
000312 012705 001750 MOV #1750,R5 ; *,PRM
000316 000402 BR 7$
000320 012705 005670 6$: MOV #5670,R5 ; *,PRM
000324 012716 002141 7$: MOV #2141,(SP) ; 1244
000330 010500 MOV R5,R0 ; PRM,*
000332 004767 000000G JSR PC,$DPDU2
000336 012716 005132 MOV #5132,(SP) ; 1245
000342 016100 000002 MOV 2(R1),R0
000346 004767 000000G JSR PC,$DPO2
000352 012716 005137 MOV #5137,(SP) ; 1246
000356 016100 000004 MOV 4(R1),R0
000362 004767 000000G JSR PC,$DPO2
000366 012716 005144 MOV #5144,(SP) ; 1247
000372 116100 000006 MOVB 6(R1),R0
000376 004767 000000G JSR PC,$DPDU1
000402 062706 000014 ADD #14,SP ; 1215
000406 000412 BR 10$ ; 1206
000410 020027 000004 8$: CMP R0,#4
000414 001004 BNE 9$
000416 010105 MOV R1,R5 ; 1251
000420 004767 175542 JSR PC,LNCTRS
000424 000403 BR 10$ ; 1206
000426 012700 177773 9$: MOV #-5,R0 ; 1254
000432 000207 RTS PC
000434 004767 000000G 10$: JSR PC,$NREND ; 1258
000440 016400 000014 MOV 14(R4),R0 ; *(CCB),* 1173
000444 000207 RTS PC
; Routine Size: 147 words, Routine Base: $CODE$ + 3344
; Maximum stack depth per invocation: 13 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 55
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (23)
; 1261 routine SHOW_SUCCESS (CCB) : LINKAGE_CCB =
; 1262
; 1263 !++
; 1264 ! FUNCTIONAL DESCRIPTION:
; 1265 !
; 1266 !
; 1267 ! FORMAL PARAMETERS:
; 1268 ! CCB Address of CCB
; 1269 !
; 1270 ! IMPLICIT INPUTS:
; 1271 ! None
; 1272 !
; 1273 ! IMPLICIT OUTPUTS:
; 1274 ! None
; 1275 !
; 1276 ! ROUTINE VALUE:
; 1277 ! The appropriate NM status code
; 1278 !
; 1279 ! COMPLETION CODES:
; 1280 ! None
; 1281 !
; 1282 ! SIDE EFFECTS:
; 1283 ! None
; 1284 !--
; 1285
; 1286 begin
; 1287
; 1288 map
; 1289 CCB: ref block field (C_NM_FIELDS);
; 1290
; 1291 CCB [C_CNT] = 0;
; 1292 NM$SUC
; 1293 end;
.SBTTL SHOW.SUCCESS
000000 005064 000022 SHOW.SUCCESS:
CLR 22(R4) ; *(CCB) 1291
000004 012700 000001 MOV #1,R0 ; 1261
000010 000207 RTS PC
; Routine Size: 5 words, Routine Base: $CODE$ + 4012
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 56
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (24)
; 1294 routine SUCCESS (CCB) : LINKAGE_CCB =
; 1295
; 1296 !++
; 1297 ! FUNCTIONAL DESCRIPTION:
; 1298 !
; 1299 !
; 1300 ! FORMAL PARAMETERS:
; 1301 ! CCB Address of CCB
; 1302 !
; 1303 ! IMPLICIT INPUTS:
; 1304 ! None
; 1305 !
; 1306 ! IMPLICIT OUTPUTS:
; 1307 ! None
; 1308 !
; 1309 ! ROUTINE VALUE:
; 1310 ! The appropriate NM status code
; 1311 !
; 1312 ! COMPLETION CODES:
; 1313 ! None
; 1314 !
; 1315 ! SIDE EFFECTS:
; 1316 ! None
; 1317 !--
; 1318
; 1319 begin
; 1320
; 1321 map
; 1322 CCB: ref block field (C_NM_FIELDS);
; 1323
; 1324 NM$SUC
; 1325 end;
.SBTTL SUCCESS
000000 012700 000001 SUCCESS:MOV #1,R0 ; 1294
000004 000207 RTS PC
; Routine Size: 3 words, Routine Base: $CODE$ + 4024
; Maximum stack depth per invocation: 0 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 57
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (25)
; 1326 routine ZERO_CIRCUIT_COUNTERS (CCB) : LINKAGE_CCB =
; 1327
; 1328 !++
; 1329 ! FUNCTIONAL DESCRIPTION:
; 1330 !
; 1331 !
; 1332 ! FORMAL PARAMETERS:
; 1333 ! CCB Address of CCB
; 1334 !
; 1335 ! IMPLICIT INPUTS:
; 1336 ! None
; 1337 !
; 1338 ! IMPLICIT OUTPUTS:
; 1339 ! None
; 1340 !
; 1341 ! ROUTINE VALUE:
; 1342 ! The appropriate NM status code
; 1343 !
; 1344 ! COMPLETION CODES:
; 1345 ! None
; 1346 !
; 1347 ! SIDE EFFECTS:
; 1348 ! None
; 1349 !--
; 1350
; 1351 begin
; 1352 GET_DMC_DATA_BASE (DB)
; 1353
; 1354 map
; 1355 CCB : ref block field (C_FIELDS);
; 1356
; 1357 DB [DC_ZERO_CIRCUIT_COUNTERS] = TRUE;
; 1358 SET_PORT (DB [D_TIM]);
; 1359 NM$SUC
; 1360 end;
.SBTTL ZERO.CIRCUIT.COUNTERS
000000 010546 ZERO.CIRCUIT.COUNTERS:
MOV R5,-(SP) ; 1326
000002 016700 000002G MOV .CRDAT+2,R0 ; 1357
000006 152760 000004 000032 BISB #4,32(R0)
000014 010005 MOV R0,R5 ; .CRDAT+2,* 1358
000016 004767 000000G JSR PC,SET.PORT
000022 012700 000001 MOV #1,R0 ; 1326
000026 012605 MOV (SP)+,R5
000030 000207 RTS PC
; Routine Size: 13 words, Routine Base: $CODE$ + 4032
; Maximum stack depth per invocation: 2 words
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 58
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (26)
; 1361 routine ZERO_LINE_COUNTERS (CCB) : LINKAGE_CCB =
; 1362
; 1363 !++
; 1364 ! FUNCTIONAL DESCRIPTION:
; 1365 !
; 1366 !
; 1367 ! FORMAL PARAMETERS:
; 1368 ! CCB Address of CCB
; 1369 !
; 1370 ! IMPLICIT INPUTS:
; 1371 ! None
; 1372 !
; 1373 ! IMPLICIT OUTPUTS:
; 1374 ! None
; 1375 !
; 1376 ! ROUTINE VALUE:
; 1377 ! The appropriate NM status code
; 1378 !
; 1379 ! COMPLETION CODES:
; 1380 ! None
; 1381 !
; 1382 ! SIDE EFFECTS:
; 1383 ! None
; 1384 !--
; 1385
; 1386 begin
; 1387 GET_DMC_DATA_BASE (DB)
; 1388
; 1389 map
; 1390 CCB : ref block field (C_FIELDS);
; 1391
; 1392 if .DB [DF_DMR]
; 1393 then
; 1394 begin
; 1395 DB [DC_ZERO_LINE_COUNTERS] = TRUE;
; 1396 SET_PORT (DB [D_TIM]);
; 1397 end;
; 1398
; 1399 $NM_TIME (DB [DB_TIME_LINE_ZEROED]);
; 1400 COUNTER_ZERO (DB, D_CONFIGURATION_ERRORS, 8);
; 1401 COUNTER_ZERO (DB, D_DEVICE_SERVICE_ERRORS, 8);
; 1402 COUNTER_ZERO (DB, D_FATAL_DEVICE_ERRORS, 8);
; 1403 NM$SUC
; 1404 end;
.GLOBL $ST32
.SBTTL ZERO.LINE.COUNTERS
000000 010546 ZERO.LINE.COUNTERS:
MOV R5,-(SP) ; 1361
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 59
X01270 30-Dec-1982 02:39:32 NETPKG:<DRIVERS>DMCNMX.B16.11 (26)
000002 016705 000002G MOV .CRDAT+2,R5 ; 1386
000006 032765 010000 000032 BIT #10000,32(R5) ; 1392
000014 001405 BEQ 1$
000016 152765 000010 000032 BISB #10,32(R5) ; 1395
000024 004767 000000G JSR PC,SET.PORT ; 1396
000030 010500 1$: MOV R5,R0 ; 1399
000032 062700 000142 ADD #142,R0
000036 004767 000000G JSR PC,$ST32
000042 005065 000146 CLR 146(R5) ; 1400
000046 005065 000150 CLR 150(R5) ; 1401
000052 005065 000152 CLR 152(R5) ; 1402
000056 012700 000001 MOV #1,R0 ; 1361
000062 012605 MOV (SP)+,R5
000064 000207 RTS PC
; Routine Size: 27 words, Routine Base: $CODE$ + 4064
; Maximum stack depth per invocation: 2 words
; 1405 end
; 1406 eludom
; OTS external references
.GLOBL $SAVE5, $SAVE4
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $CODE$ 1077 RO , I , LCL, REL, CON
; $PLIT$ 46 RO , D , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<V3P0>MCBLIB.L16.7 372 42 11 0
; NETPKG:<MCB>XPORTX.L16.15 599 2 0 0
; NETPKG:<MCB>NMXLIB.L16.13 200 59 29 0
; NETPKG:<DRIVERS>DMCDAT.L16.2 220 122 55 0
; 1407
DMCNMX 25-Jan-1983 10:13:09 TOPS-20 Bliss-16 3(552) Page 60
X01270
; Size: 1077 code + 46 data words
; Run Time: 00:20.7
; Elapsed Time: 01:11.6
; Memory Used: 76 pages
; Compilation Complete