Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/drivers/dmcini.lst
There are no other files named dmcini.lst in the archive.
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 1
30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (1)
; 0001 module DMCINI ( ! DMC-11 Driver Initialization
; 0002 ident = 'X01120',
; 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 DMCNMX module.
; 0044 ! 02 - Add alternate DMC/DMR line names.
; 0045 ! 03 - Add DMCDBI - data base initializer.
; 0046 ! 04 - Fix REGISTER_NXM.
; 0047 ! 05 - Use $MCB_GET_DEVICE_NAME to get circuit/line name.
; 0048 ! 06 - Allow specification of max rcv buffers.
; 0049 ! 07 - Expand buffer for GET_DEVICE_NAME from 6 to 33!
; 0050 ! 08 - Save NMX PIX for NM parameter access in DMCNMX.
; 0051 ! 09 - Make default receive buffers 7 for DMC.
; 0052 ! 10 - Maintain new system specific line counters (2500,2501,2502).
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 2
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (1)
; 0053 ! 11 - Turn on NMX$FLG_maintenance_allowed for circuit.
; 0054 ! 12 - Initialize time-line-zeroed for seconds-since-last-zeroed support.
; 0055 !--
; 0056 !
; 0057 ! INCLUDE FILES:
; 0058 !
; 0059
; 0060 library 'MCBLIB';
; 0061
; 0062 library 'XPORTX';
; 0063
; 0064 library 'NMXLIB';
; 0065
; 0066 library 'DMCDAT';
; 0067
; 0068 !
; 0069 ! TABLE OF CONTENTS:
; 0070 !
; 0071
; 0072 linkage
; 0073 DMC_CSR_NUM = jsr (register = 0, register = 1);
; 0074
; 0075 forward routine
; 0076 DMCDBI : novalue,
; 0077 DMCDVI,
; 0078 DMCNMI,
; 0079 NXM_CATCHER,
; 0080 REGISTER_NXM : DMC_CSR_NUM;
; 0081
; 0082 !
; 0083 ! MACROS:
; 0084 !
; 0085 ! None
; 0086 !
; 0087 ! EQUATED SYMBOLS:
; 0088 !
; 0089
; 0090 literal
; 0091 TRUE = 1 EQL 1,
; 0092 FALSE = 1 EQL 0,
; 0093 NO_OPERATION = 0;
; 0094
; 0095 !
; 0096 ! OWN STORAGE:
; 0097 !
; 0098 ! None
; 0099 !
; 0100 ! EXTERNAL REFERENCES:
; 0101 !
; 0102
; 0103 linkage
; 0104 LINKAGE_DB_CSR = jsr (register = 5, register = 1);
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 3
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (1)
; 0105
; 0106 external routine
; 0107 DMCIN : MCB_INTERRUPT novalue,
; 0108 DMCOUT : MCB_INTERRUPT novalue,
; 0109 MASTER_CLEAR : LINKAGE_DB_CSR;
; 0110
; 0111 external
; 0112 MCB$GAW_PROCESS_DATA_BASE : vector [2],
; 0113 MCB$GW_PROCESS_HANDLE;
; 0114
; 0115 bind
; 0116 DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 4
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (2)
; 0117 global routine DMCDBI : novalue =
; 0118
; 0119 !++
; 0120 ! FUNCTIONAL DESCRIPTION:
; 0121 !
; 0122 !
; 0123 ! FORMAL PARAMETERS:
; 0124 ! None
; 0125 !
; 0126 ! IMPLICIT INPUTS:
; 0127 ! None
; 0128 !
; 0129 ! IMPLICIT OUTPUTS:
; 0130 ! None
; 0131 !
; 0132 ! ROUTINE VALUE:
; 0133 ! COMPLETION CODES:
; 0134 ! None
; 0135 !
; 0136 ! SIDE EFFECTS:
; 0137 ! None
; 0138 !--
; 0139
; 0140 begin
; 0141 GET_DMC_DATA_BASE (DB)
; 0142
; 0143 DB [D_NEXT_TRANSMIT_BUFFER] = DB [D_BUF];
; 0144 DB [D_HIGHEST_TRANSMIT_BUFFER] = DB [D_BUF] + .DB [D_MAXIMUM_TRANSMIT_COUNT]*.DB [D_TRANSMIT_BUFFER_SIZE];
; 0145
; 0146 if .DB [DI_HD] eql 0
; 0147 then
; 0148 DB [DF_HALF_DUPLEX] = FALSE
; 0149 else
; 0150 DB [DF_HALF_DUPLEX] = TRUE;
; 0151
; 0152 $NM_TIME (DB [DB_TIME_LINE_ZEROED]);
; 0153 end; !of routine DMCDBI
.TITLE DMCINI
.IDENT /X01120/
.GLOBL DMCIN, DMCOUT, MASTER.CLEAR, .CRDAT
.GLOBL .CRPIX, $ST32
.SBTTL DMCDBI
000000 .PSECT $CODE$, RO
000000 004167 000000G DMCDBI::JSR R1,$SAVE2 ; 0117
000004 016702 000002G MOV .CRDAT+2,R2 ; 0140
000010 012762 000616 000066 MOV #616,66(R2) ; 0143
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 5
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (2)
000016 060262 000066 ADD R2,66(R2)
000022 005001 CLR R1 ; 0144
000024 156201 000121 BISB 121(R2),R1
000030 070162 000064 MUL 64(R2),R1
000034 010100 MOV R1,R0
000036 060200 ADD R2,R0 ; 0140
000040 010062 000070 MOV R0,70(R2) ; 0144
000044 062762 000616 000070 ADD #616,70(R2)
000052 132762 000001 000616 BITB #1,616(R2) ; 0146
000060 001004 BNE 1$
000062 042762 000400 000032 BIC #400,32(R2) ; 0148
000070 000403 BR 2$ ; 0146
000072 052762 000400 000032 1$: BIS #400,32(R2) ; 0150
000100 010201 2$: MOV R2,R1 ; 0152
000102 062701 000142 ADD #142,R1
000106 010100 MOV R1,R0
000110 004767 000000G JSR PC,$ST32
000114 000207 RTS PC ; 0117
; Routine Size: 39 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 4 words
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 6
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (3)
; 0154 global routine DMCDVI =
; 0155
; 0156 !++
; 0157 ! FUNCTIONAL DESCRIPTION:
; 0158 !
; 0159 !
; 0160 ! FORMAL PARAMETERS:
; 0161 ! None
; 0162 !
; 0163 ! IMPLICIT INPUTS:
; 0164 ! None
; 0165 !
; 0166 ! IMPLICIT OUTPUTS:
; 0167 ! None
; 0168 !
; 0169 ! ROUTINE VALUE:
; 0170 ! COMPLETION CODES:
; 0171 ! None
; 0172 !
; 0173 ! SIDE EFFECTS:
; 0174 ! None
; 0175 !--
; 0176
; 0177 begin
; 0178 GET_DMC_DATA_BASE (DB)
; 0179
; 0180 literal
; 0181 DMC_TEST_VALUE = %o'177';
; 0182
; 0183 DB [D_DEVICE_STATE] = DD_CLEARED;
; 0184
; 0185 if .DB [D_REGISTER] lssa %o'160000'
; 0186 then
; 0187 begin
; 0188 COUNTER_INCREMENT (DB, D_INVALID_CONTROLLER_REGISTER);
; 0189 COUNTER_INCREMENT (DB, D_CONFIGURATION_ERRORS);
; 0190 return FALSE
; 0191 end;
; 0192
; 0193 if REGISTER_NXM (.DB [D_REGISTER], 4)
; 0194 then
; 0195 begin
; 0196 COUNTER_INCREMENT (DB, D_NXM_CONTROLLER_REGISTER);
; 0197 COUNTER_INCREMENT (DB, D_CONFIGURATION_ERRORS);
; 0198 return FALSE
; 0199 end;
; 0200
; 0201 begin
; 0202
; 0203 local
; 0204 STATUS;
; 0205
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 7
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (3)
; 0206 STATUS = $MCB_SET_VECTOR (.DB [D_VECTOR], DMCIN, .DB [D_PRIORITY]);
; 0207
; 0208 if .STATUS
; 0209 then
; 0210 begin
; 0211 STATUS = $MCB_SET_VECTOR (.DB [D_VECTOR] + 4, DMCOUT, .DB [D_PRIORITY]);
; 0212
; 0213 if not .STATUS
; 0214 then
; 0215 $MCB_CLEAR_VECTOR (.DB [D_VECTOR]);
; 0216
; 0217 end;
; 0218
; 0219 if not .STATUS
; 0220 then
; 0221 begin
; 0222
; 0223 selectone .STATUS of
; 0224 set
; 0225 [CE$VEC]:
; 0226 COUNTER_INCREMENT (DB, D_INVALID_VECTOR);
; 0227 [CE$VCU]:
; 0228 COUNTER_INCREMENT (DB, D_CONFLICTING_VECTOR);
; 0229 [CE$PRI]:
; 0230 COUNTER_INCREMENT (DB, D_INVALID_PRIORITY);
; 0231 tes;
; 0232
; 0233 COUNTER_INCREMENT (DB, D_CONFIGURATION_ERRORS);
; 0234 return FALSE
; 0235 end;
; 0236
; 0237 end;
; 0238 DB [D_DEVICE_STATE] = DD_MASTER_CLEARED;
; 0239
; 0240 begin
; 0241
; 0242 bind
; 0243 REG = .DB [D_REGISTER] : block field (DMC_FIELDS);
; 0244
; 0245 REG [BSEL3] = DMC_TEST_VALUE;
; 0246
; 0247 if not MASTER_CLEAR (DB [D_TIM], REG [SEL0])
; 0248 then
; 0249 begin
; 0250 DB [D_DEVICE_STATE] = DD_CLEARED;
; 0251 return FALSE;
; 0252 end;
; 0253
; 0254 selectone .REG [$SUB_FIELD (BSEL3, 0, 0, 8, 0)] of
; 0255 set
; 0256 [%o'1', %o'2', %o'100', %o'200'] :
; 0257 begin
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 8
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (3)
; 0258 DB [DF_DMR] = TRUE;
; 0259
; 0260 if .DB [D_MAXIMUM_RECEIVE_COUNT] eql 0
; 0261 then
; 0262 DB [D_MAXIMUM_RECEIVE_COUNT] = 8;
; 0263
; 0264 end;
; 0265 [otherwise] :
; 0266 begin
; 0267 DB [DF_DMR] = FALSE;
; 0268
; 0269 if .DB [D_MAXIMUM_RECEIVE_COUNT] eql 0
; 0270 then
; 0271 DB [D_MAXIMUM_RECEIVE_COUNT] = 7;
; 0272
; 0273 end;
; 0274 tes;
; 0275
; 0276 end;
; 0277 TRUE
; 0278 end; !of routine DMCDVI
.GLOBL $IC8, V.ECST, $CALLI, V.ECCL
.SBTTL DMCDVI
000000 004167 000000G DMCDVI::JSR R1,$SAVE5 ; 0154
000004 016702 000002G MOV .CRDAT+2,R2 ; 0177
000010 012703 000040 MOV #40,R3 ; 0183
000014 060203 ADD R2,R3
000016 112713 000005 MOVB #5,(R3)
000022 012704 000002 MOV #2,R4 ; 0185
000026 060204 ADD R2,R4
000030 021427 160000 CMP (R4),#160000
000034 103004 BHIS 1$
000036 052762 000400 000146 BIS #400,146(R2) ; 0188
000044 000412 BR 2$ ; 0189
000046 011400 1$: MOV (R4),R0 ; 0193
000050 012701 000004 MOV #4,R1
000054 004767 000000V JSR PC,REGISTER.NXM
000060 006000 ROR R0
000062 103011 BCC 3$
000064 052762 001000 000146 BIS #1000,146(R2) ; 0196
000072 012700 000146 2$: MOV #146,R0 ; 0197
000076 060200 ADD R2,R0
000100 004767 000000G JSR PC,$IC8
000104 000531 BR 11$ ; 0195
000106 116200 000006 3$: MOVB 6(R2),R0 ; 0206
000112 010046 MOV R0,-(SP)
000114 012746 000000G MOV #DMCIN,-(SP)
000120 016205 000004 MOV 4(R2),R5
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 9
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (3)
000124 010546 MOV R5,-(SP)
000126 012746 000003 MOV #3,-(SP)
000132 012746 000000G MOV #V.ECST,-(SP)
000136 004767 000000G JSR PC,$CALLI
000142 010001 MOV R0,R1 ; *,STATUS
000144 032701 000001 BIT #1,R1 ; *,STATUS 0208
000150 001437 BEQ 5$
000152 116200 000006 MOVB 6(R2),R0 ; 0211
000156 010016 MOV R0,(SP)
000160 012746 000000G MOV #DMCOUT,-(SP)
000164 010546 MOV R5,-(SP)
000166 062716 000004 ADD #4,(SP)
000172 012746 000003 MOV #3,-(SP)
000176 012746 000000G MOV #V.ECST,-(SP)
000202 004767 000000G JSR PC,$CALLI
000206 010001 MOV R0,R1 ; *,STATUS
000210 032701 000001 BIT #1,R1 ; *,STATUS 0213
000214 001010 BNE 4$
000216 010516 MOV R5,(SP) ; 0215
000220 012746 000001 MOV #1,-(SP)
000224 012746 000000G MOV #V.ECCL,-(SP)
000230 004767 000000G JSR PC,$CALLI
000234 022626 CMP (SP)+,(SP)+
000236 062706 000010 4$: ADD #10,SP ; 0210
000242 032701 000001 BIT #1,R1 ; *,STATUS 0219
000246 001032 BNE 9$
000250 020127 000742 5$: CMP R1,#742 ; STATUS,* 0223
000254 001004 BNE 6$
000256 052762 010000 000146 BIS #10000,146(R2) ; 0226
000264 000415 BR 8$ ; 0223
000266 020127 000762 6$: CMP R1,#762 ; STATUS,*
000272 001004 BNE 7$
000274 052762 020000 000146 BIS #20000,146(R2) ; 0228
000302 000406 BR 8$ ; 0223
000304 020127 000602 7$: CMP R1,#602 ; STATUS,*
000310 001003 BNE 8$
000312 052762 040000 000146 BIS #40000,146(R2) ; 0230
000320 010200 8$: MOV R2,R0 ; 0233
000322 062700 000146 ADD #146,R0
000326 004767 000000G JSR PC,$IC8
000332 000414 BR 10$ ; 0219
000334 105013 9$: CLRB (R3) ; 0238
000336 011401 MOV (R4),R1 ; 0240
000340 112761 000177 000003 MOVB #177,3(R1) ; 0245
000346 010205 MOV R2,R5 ; 0247
000350 004767 000000G JSR PC,MASTER.CLEAR
000354 006000 ROR R0
000356 103406 BLO 12$
000360 112713 000005 MOVB #5,(R3) ; 0250
000364 062706 000012 10$: ADD #12,SP ; 0247
000370 005000 11$: CLR R0 ; 0249
000372 000207 RTS PC
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 10
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (3)
000374 005000 12$: CLR R0 ; 0254
000376 156100 000003 BISB 3(R1),R0
000402 005700 TST R0
000404 003403 BLE 13$
000406 020027 000002 CMP R0,#2
000412 003406 BLE 14$
000414 020027 000100 13$: CMP R0,#100
000420 001403 BEQ 14$
000422 020027 000200 CMP R0,#200
000426 001013 BNE 15$
000430 052762 010000 000032 14$: BIS #10000,32(R2) ; 0258
000436 012700 000120 MOV #120,R0 ; 0260
000442 060200 ADD R2,R0
000444 105710 TSTB (R0)
000446 001015 BNE 16$
000450 112710 000010 MOVB #10,(R0) ; 0262
000454 000412 BR 16$ ; 0254
000456 042762 010000 000032 15$: BIC #10000,32(R2) ; 0267
000464 012700 000120 MOV #120,R0 ; 0269
000470 060200 ADD R2,R0
000472 105710 TSTB (R0)
000474 001002 BNE 16$
000476 112710 000007 MOVB #7,(R0) ; 0271
000502 062706 000012 16$: ADD #12,SP ; 0177
000506 012700 000001 MOV #1,R0 ; 0154
000512 000207 RTS PC
; Routine Size: 166 words, Routine Base: $CODE$ + 0116
; Maximum stack depth per invocation: 18 words
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 11
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (4)
; 0279 global routine DMCNMI =
; 0280
; 0281 !++
; 0282 ! FUNCTIONAL DESCRIPTION:
; 0283 !
; 0284 !
; 0285 ! FORMAL PARAMETERS:
; 0286 ! None
; 0287 !
; 0288 ! IMPLICIT INPUTS:
; 0289 ! None
; 0290 !
; 0291 ! IMPLICIT OUTPUTS:
; 0292 ! None
; 0293 !
; 0294 ! ROUTINE VALUE:
; 0295 ! COMPLETION CODES:
; 0296 ! None
; 0297 !
; 0298 ! SIDE EFFECTS:
; 0299 ! None
; 0300 !--
; 0301
; 0302 begin
; 0303 GET_DMC_DATA_BASE (DB)
; 0304
; 0305 local
; 0306 NAME_BUFFER : vector [ch$allocation (17)],
; 0307 NMXID,
; 0308 NMXPIX;
; 0309
; 0310 bind
; 0311 NAME_PTR = ch$ptr (NAME_BUFFER);
; 0312
; 0313 if not $MCB_GET_PROCESS_HANDLE (%rad50_11 'NMX', NMXPIX) then return FALSE;
; 0314
; 0315 DB [D_NMX_PIX] = .NMXPIX;
; 0316 $MCB_GET_DEVICE_NAME (.DB [D_LINE_ENTITY], NAME_PTR);
; 0317 NMX$CREATE_LINE (.NMXPIX, NAME_PTR, 0, NMXID);
; P 0318 NMX$MODIFY_LINE_PROVIDER (.NMXPIX, NAME_PTR,
; P 0319 .MCB$GW_PROCESS_HANDLE^8 + DMC_K_LINE_PROVIDER,
; 0320 DB [D_LINE_ENTITY]);
; P 0321 NMX$MODIFY_LINE_OWNER (.NMXPIX, NAME_PTR,
; P 0322 .MCB$GW_PROCESS_HANDLE^8 + DMC_K_LINE_OWNER,
; 0323 NMXID);
; 0324 NMX$CREATE_CIRCUIT (.NMXPIX, NAME_PTR, NMX$FLG_maintenance_allowed, NMXID);
; P 0325 NMX$MODIFY_CIRCUIT_PROVIDER (.NMXPIX, NAME_PTR,
; P 0326 .MCB$GW_PROCESS_HANDLE^8 + DMC_K_CIRCUIT_PROVIDER,
; 0327 DB [D_CIRCUIT_ENTITY]);
; 0328 TRUE
; 0329 end; !of routine DMCNMI
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 12
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (4)
.GLOBL P.DTGT, D.NMGT, $NMCRE, $CALLP
.GLOBL $NMMID
.SBTTL DMCNMI
000000 004167 000000G DMCNMI::JSR R1,$SAVE2 ; 0279
000004 162706 000026 SUB #26,SP
000010 016701 000002G MOV .CRDAT+2,R1 ; 0302
000014 012746 000004 MOV #4,-(SP) ; 0313
000020 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000022 012746 054640 MOV #54640,-(SP)
000026 012746 000002 MOV #2,-(SP)
000032 012746 000000G MOV #P.DTGT,-(SP)
000036 004767 000000G JSR PC,$CALLI
000042 062706 000010 ADD #10,SP
000046 032700 000001 BIT #1,R0 ; *,$MCB$STATUS
000052 001405 BEQ 1$
000054 016602 000002 MOV 2(SP),R2 ; $MCB$MY.INDEX,NMXPIX
000060 032700 000001 BIT #1,R0 ; *,$MCB$STATUS
000064 001002 BNE 2$
000066 005000 1$: CLR R0
000070 000562 BR 3$
000072 110261 000007 2$: MOVB R2,7(R1) ; NMXPIX,* 0315
000076 012746 000006 MOV #6,-(SP) ; 0316
000102 060616 ADD SP,(SP) ; NAME.PTR,*
000104 016146 000102 MOV 102(R1),-(SP)
000110 012746 000002 MOV #2,-(SP)
000114 012746 000000G MOV #D.NMGT,-(SP)
000120 004767 000000G JSR PC,$CALLI
000124 012716 000010 MOV #10,(SP) ; 0317
000130 060616 ADD SP,(SP) ; NMXID,*
000132 005046 CLR -(SP)
000134 012746 000020 MOV #20,-(SP)
000140 060616 ADD SP,(SP) ; NAME.PTR,*
000142 012746 001000 MOV #1000,-(SP)
000146 012746 000004 MOV #4,-(SP)
000152 012746 000000G MOV #$NMCRE,-(SP)
000156 010246 MOV R2,-(SP) ; NMXPIX,*
000160 004767 000000G JSR PC,$CALLP
000164 012716 000102 MOV #102,(SP) ; 0320
000170 060116 ADD R1,(SP)
000172 016700 000000G MOV .CRPIX,R0
000176 072027 000010 ASH #10,R0
000202 010046 MOV R0,-(SP)
000204 012746 000034 MOV #34,-(SP)
000210 060616 ADD SP,(SP) ; NAME.PTR,*
000212 012746 001004 MOV #1004,-(SP)
000216 012746 000004 MOV #4,-(SP)
000222 012746 000000G MOV #$NMMID,-(SP)
000226 010246 MOV R2,-(SP) ; NMXPIX,*
000230 004767 000000G JSR PC,$CALLP
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 13
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (4)
000234 012716 000040 MOV #40,(SP) ; 0323
000240 060616 ADD SP,(SP) ; NMXID,*
000242 016700 000000G MOV .CRPIX,R0
000246 072027 000010 ASH #10,R0
000252 010046 MOV R0,-(SP)
000254 062716 000002 ADD #2,(SP)
000260 012746 000050 MOV #50,-(SP)
000264 060616 ADD SP,(SP) ; NAME.PTR,*
000266 012746 001002 MOV #1002,-(SP)
000272 012746 000004 MOV #4,-(SP)
000276 012746 000000G MOV #$NMMID,-(SP)
000302 010246 MOV R2,-(SP) ; NMXPIX,*
000304 004767 000000G JSR PC,$CALLP
000310 012716 000054 MOV #54,(SP) ; 0324
000314 060616 ADD SP,(SP) ; NMXID,*
000316 012746 000001 MOV #1,-(SP)
000322 012746 000064 MOV #64,-(SP)
000326 060616 ADD SP,(SP) ; NAME.PTR,*
000330 012746 002000 MOV #2000,-(SP)
000334 012746 000004 MOV #4,-(SP)
000340 012746 000000G MOV #$NMCRE,-(SP)
000344 010246 MOV R2,-(SP) ; NMXPIX,*
000346 004767 000000G JSR PC,$CALLP
000352 010116 MOV R1,(SP) ; 0327
000354 062716 000100 ADD #100,(SP)
000360 016700 000000G MOV .CRPIX,R0
000364 072027 000010 ASH #10,R0
000370 010046 MOV R0,-(SP)
000372 062716 000004 ADD #4,(SP)
000376 012746 000100 MOV #100,-(SP)
000402 060616 ADD SP,(SP) ; NAME.PTR,*
000404 012746 002004 MOV #2004,-(SP)
000410 012746 000004 MOV #4,-(SP)
000414 012746 000000G MOV #$NMMID,-(SP)
000420 010246 MOV R2,-(SP) ; NMXPIX,*
000422 004767 000000G JSR PC,$CALLP
000426 062706 000104 ADD #104,SP ; 0302
000432 012700 000001 MOV #1,R0 ; 0279
000436 062706 000026 3$: ADD #26,SP
000442 000207 RTS PC
; Routine Size: 146 words, Routine Base: $CODE$ + 0632
; Maximum stack depth per invocation: 49 words
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 14
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (5)
; 0330 routine NXM_CATCHER (SIG, MCH, ENB) =
; 0331
; 0332 !++
; 0333 ! FUNCTIONAL DESCRIPTION:
; 0334 !
; 0335 !
; 0336 ! FORMAL PARAMETERS:
; 0337 ! SIG = signal vector address
; 0338 ! MCH = mechanism vector address
; 0339 ! ENB = enable vector address
; 0340 !
; 0341 ! IMPLICIT INPUTS:
; 0342 ! None
; 0343 !
; 0344 ! IMPLICIT OUTPUTS:
; 0345 ! None
; 0346 !
; 0347 ! ROUTINE VALUE:
; 0348 ! COMPLETION CODES:
; 0349 ! None
; 0350 !
; 0351 ! SIDE EFFECTS:
; 0352 ! None
; 0353 !--
; 0354
; 0355 begin
; 0356
; 0357 map
; 0358 ENB : ref vector,
; 0359 MCH : ref vector,
; 0360 SIG : ref vector;
; 0361
; 0362 if .SIG [1] neq SS$NXM then return FALSE;
; 0363
; 0364 .ENB [1] = TRUE;
; 0365 TRUE
; 0366 end; !of routine NXM_CATCHER
.SBTTL NXM.CATCHER
000000 016600 000006 NXM.CATCHER:
MOV 6(SP),R0 ; SIG,* 0362
000004 026027 000002 000114 CMP 2(R0),#114
000012 001402 BEQ 1$
000014 005000 CLR R0
000016 000207 RTS PC
000020 016600 000002 1$: MOV 2(SP),R0 ; ENB,* 0364
000024 012770 000001 000002 MOV #1,@2(R0)
000032 012700 000001 MOV #1,R0 ; 0330
000036 000207 RTS PC
; Routine Size: 16 words, Routine Base: $CODE$ + 1276
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 15
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (5)
; Maximum stack depth per invocation: 0 words
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 16
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (6)
; 0367 routine REGISTER_NXM
; 0368
; 0369 !++
; 0370 ! FUNCTIONAL DESCRIPTION:
; 0371 !
; 0372 !
; 0373 ! FORMAL PARAMETERS:
; 0374 (CSR : ref vector volatile,
; 0375 NUM)
; 0376 !
; 0377 ! IMPLICIT INPUTS:
; 0378 ! None
; 0379 !
; 0380 ! IMPLICIT OUTPUTS:
; 0381 ! None
; 0382 !
; 0383 ! ROUTINE VALUE:
; 0384 : DMC_CSR_NUM =
; 0385 !
; 0386 ! SIDE EFFECTS:
; 0387 ! None
; 0388 !--
; 0389
; 0390 begin
; 0391
; 0392 local
; 0393 FLAG : volatile, %(BLISS initializes to 0 = FALSE)%
; 0394 TEMP;
; 0395
; 0396 enable
; 0397 NXM_CATCHER (FLAG);
; 0398
; 0399 do
; 0400 begin
; 0401 TEMP = .CSR [0];
; 0402 CSR = CSR [1];
; 0403 end
; 0404 while (NUM = .NUM - 1) nequ 0;
; 0405
; 0406 .FLAG
; 0407 end; !of routine REGISTER_NXM
.SBTTL REGISTER.NXM
000000 004167 000000G REGISTER.NXM:
JSR R1,$SAVE5 ; 0367
000004 005046 CLR -(SP) ; FLAG
000006 012746 001412' MOV #2$,-(SP)
000012 012746 177776 MOV #-2,-(SP)
000016 060616 ADD SP,(SP)
000020 016746 000000G MOV $IGREG,-(SP)
000024 010667 000000G MOV SP,$IGREG
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 17
X01120 30-Dec-1982 02:37:42 NETPKG:<DRIVERS>DMCINI.B16.10 (6)
000030 012002 1$: MOV (R0)+,R2 ; CSR,TEMP 0401
000032 077102 SOB R1,1$ ; NUM,* 0404
000034 016600 000006 MOV 6(SP),R0 ; FLAG,* 0406
000040 017767 000000G 000000G MOV @$IGREG,$IGREG ; 0367
000046 062706 000010 ADD #10,SP
000052 000207 RTS PC
000054 012746 000010 2$: MOV #10,-(SP)
000060 060616 ADD SP,(SP) ; FLAG,*
000062 066716 000000G ADD $HANSP,(SP)
000066 012746 000001 MOV #1,-(SP)
000072 012746 001276' MOV #NXM.CATCHER,-(SP)
000076 004767 000000G JSR PC,$HANDL
000102 062706 000016 ADD #16,SP
000106 000207 RTS PC
; Routine Size: 36 words, Routine Base: $CODE$ + 1336
; Maximum stack depth per invocation: 14 words
; 0408 end
; 0409 eludom
; OTS external references
.GLOBL $HANSP, $IGREG, $SAVE5, $SAVE2
.GLOBL $HANDL
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $CODE$ 403 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<V3P0>MCBLIB.L16.7 372 18 4 0
; NETPKG:<MCB>XPORTX.L16.15 599 2 0 0
; NETPKG:<MCB>NMXLIB.L16.13 200 17 8 0
; NETPKG:<DRIVERS>DMCDAT.L16.2 220 139 63 0
; Size: 403 code + 0 data words
DMCINI 25-Jan-1983 10:14:26 TOPS-20 Bliss-16 3(552) Page 18
X01120
; Run Time: 00:06.3
; Elapsed Time: 00:20.8
; Memory Used: 41 pages
; Compilation Complete