Trailing-Edge
-
PDP-10 Archives
-
BB-R595B-SM_11-9-85
-
mcb/nmx/nmxcce.lst
There is 1 other file named nmxcce.lst in the archive. Click here to see a list.
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 1
3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (1)
; 0001 module NMXCCE ( ! NMX CCP Common
; 0002 ident = 'X01070'
; 0003 ) =
; 0004 begin
; 0005 !
; 0006 ! COPYRIGHT (c) 1980, 1981, 1982
; 0007 ! DIGITAL EQUIPMENT CORPORATION
; 0008 ! Maynard, Massachusetts
; 0009 !
; 0010 ! This software is furnished under a license and may be used
; 0011 ! and copied only in accordance with the terms of such license
; 0012 ! and with the inclusion of the above copyright notice. This
; 0013 ! software or any other copies thereof may not be provided or
; 0014 ! otherwise made available to any other person. No title to
; 0015 ! and ownership of the software is hereby transferred.
; 0016 !
; 0017 ! The information in this software is subject to change
; 0018 ! without notice and should not be construed as a commitment
; 0019 ! by DIGITAL EQUIPMENT CORPORATION.
; 0020 !
; 0021 ! DIGITAL assumes no responsibility for the use or reliability
; 0022 ! of its software on equipment which is not supplied by
; 0023 ! DIGITAL.
; 0024 !
; 0025
; 0026 !++
; 0027 !
; 0028 ! FACILITY: MCB Network Management
; 0029 !
; 0030 ! ABSTRACT:
; 0031 !
; 0032 !
; 0033 !
; 0034 ! ENVIRONMENT: MCB V3.0
; 0035 !
; 0036 ! AUTHOR: Scott G. Robinson CREATION DATE: 14-May-81
; 0037 !
; 0038 ! MODIFIED BY:
; 0039 !
; 0040 ! 02 - Code compression.
; 0041 ! 03 - Modify CCB_STATE values and handling.
; 0042 ! Add call to SC during SHOW CIRCUIT CHARACTERISTICS.
; 0043 ! Alan D. Peckham, 14-Apr-82
; 0044 ! 04 - Complete rework of NM support.
; 0045 ! 05 - Fix GET_ENTITY to stop an operation if unrecognized component.
; 0046 ! Set FORWARD_REQUEST to handle non-existent targets.
; 0047 ! 06 - Disallow SERVICE state for lines and circuits.
; 0048 ! 07 - Send node parameter #2500 to XPT.
; 0049 !--
; 0050
; 0051 !
; 0052 ! INCLUDE FILES:
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 2
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (1)
; 0053 !
; 0054
; 0055 library 'XPORTX';
; 0056
; 0057 library 'MCBLIB';
; 0058
; 0059 library 'NMXPAR';
; 0060
; 0061 library 'NMXLIB';
; 0062
; 0063 !
; 0064 ! TABLE OF CONTENTS:
; 0065 !
; 0066
; 0067 linkage
; 0068 NMX_LKG_CCB = jsr (register = 4),
; 0069 NMX_LKG_CCB__VAL = jsr (register = 4; register = 1),
; 0070 NMX_LKG_DB_CCB_BLK = jsr (register = 5, register = 4, register = 2),
; 0071 NMX_LKG_DB_CCB_ENT = jsr (register = 5, register = 4, register = 3) :
; 0072 nopreserve (4);
; 0073
; 0074 forward routine
; 0075 BADREQ : MCB_DB_CCB novalue,
; 0076 CKTCCP : MCB_DB_CCB novalue,
; 0077 CKTREQ : MCB_DB_CCB novalue,
; 0078 LINCCP : MCB_DB_CCB novalue,
; 0079 LINREQ : MCB_DB_CCB novalue,
; 0080 MODCCP : MCB_DB_CCB novalue,
; 0081 MODREQ : MCB_DB_CCB novalue,
; 0082 NODCCP : MCB_DB_CCB novalue,
; 0083 NODREQ : MCB_DB_CCB novalue,
; 0084 FORWARD_REQUEST : NMX_LKG_DB_CCB_ENT novalue,
; 0085 GET_ENTITY : NMX_LKG_DB_CCB_BLK,
; 0086 GET_ENTITY_LIST : NMX_LKG_DB_CCB_BLK novalue,
; 0087 NEXT_STATE : NMX_LKG_CCB,
; 0088 PARAMETER_NUMBER : NMX_LKG_CCB,
; 0089 REQUEST_COMPLETE : NMX_LKG_CCB novalue,
; 0090 SET_PARAMETER_NUMBER : NMX_LKG_CCB__VAL;
; 0091
; 0092 !
; 0093 ! Literal values
; 0094 !
; 0095
; 0096 literal
; 0097 LINK_ON = 0,
; 0098 LINK_OFF = 1,
; 0099 LINK_SERVICE = 2,
; 0100 LINK_CLEARED = 3;
; 0101
; 0102 !
; 0103 ! Externals
; 0104 !
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 3
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (1)
; 0105
; 0106 external
; 0107 MCB$GAW_PROCESS_DATA_BASE : vector [2],
; 0108 MCB$GW_PROCESS_HANDLE;
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 4
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (2)
; 0109 global routine BADREQ (NMXDB, CCB) : MCB_DB_CCB novalue =
; 0110
; 0111 !++
; 0112 ! FUNCTIONAL DESCRIPTION:
; 0113 !
; 0114 ! Complete an I/O function by returning NE$URC to the user for this IOP.
; 0115 !
; 0116 ! FORMAL PARAMETERS:
; 0117 !
; 0118 ! RIOP - I/O Packet
; 0119 !
; 0120 ! IMPLICIT INPUTS:
; 0121 !
; 0122 ! None
; 0123 !
; 0124 ! IMPLICIT OUTPUTS:
; 0125 !
; 0126 ! None
; 0127 !
; 0128 ! COMPLETION CODES:
; 0129 ! None
; 0130 !
; 0131 ! SIDE EFFECTS:
; 0132 !
; 0133 ! I/O Packet is returned to the user.
; 0134 !--
; 0135
; 0136 begin
; 0137
; 0138 map
; 0139 CCB : ref NMX_CCB_BLOCK,
; 0140 NMXDB : ref NMXDB_BLOCK;
; 0141
; 0142 !
; 0143 ! Complete I/O request with IE_BAD
; 0144 !
; 0145 CCB [C_STS] = $NM$ERR_URC;
; 0146 $NMX_RETURN_NMX_CCB (.CCB);
; 0147 end; !End of BADREQ
.TITLE NMXCCE
.IDENT /X01070/
.GLOBL .CRDAT, .CRPIX, NX.RTC
.SBTTL BADREQ
000000 .PSECT $CODE$, RO
000000 012764 177770 000014 BADREQ::MOV #-10,14(R4) ; *,*(CCB) 0145
000006 004767 000000G JSR PC,NX.RTC ; 0146
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 5
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (2)
000012 000207 RTS PC ; 0109
; Routine Size: 6 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 1 word
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 6
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (3)
; 0148 global routine CKTCCP (NMXDB, CCB) : MCB_DB_CCB novalue =
; 0149
; 0150 !++
; 0151 ! FUNCTIONAL DESCRIPTION:
; 0152 !
; 0153 !
; 0154 !
; 0155 ! FORMAL PARAMETERS:
; 0156 !
; 0157 ! NMXDB - NMX Process Database
; 0158 ! CCB - The CCB to us
; 0159 !
; 0160 ! IMPLICIT INPUTS:
; 0161 !
; 0162 ! None
; 0163 !
; 0164 ! IMPLICIT OUTPUTS:
; 0165 !
; 0166 ! None
; 0167 !
; 0168 ! ROUTINE VALUE:
; 0169 !
; 0170 ! None
; 0171 !
; 0172 ! SIDE EFFECTS:
; 0173 !
; 0174 ! None
; 0175 !--
; 0176
; 0177 begin
; 0178
; 0179 map
; 0180 NMXDB : ref NMXDB_BLOCK,
; 0181 CCB : ref NMX_CCB_BLOCK;
; 0182
; 0183 local
; 0184 CKTBLK : ref NMX_CIRCUIT_BLOCK;
; 0185
; 0186 !
; 0187 ! Setup our data structure pointers and process based upon the
; 0188 ! Network Management Function Code.
; 0189 !
; 0190
; 0191 CKTBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_CIRCUITS]);
; 0192 REQUEST_COMPLETE (.CCB);
; 0193 CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
; 0194
; 0195 if .CCB [C_NMX_STATE] eql ST$DON
; 0196 then
; 0197 begin
; 0198
; 0199 local
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 7
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (3)
; 0200 VALUE;
; 0201
; 0202 selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
; 0203 set
; 0204 [0] : ! Track STATE
; 0205 CKTBLK [LINK_STATE] = .VALUE;
; 0206 [otherwise] :
; 0207 0;
; 0208 tes;
; 0209
; 0210 end;
; 0211
; 0212 FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .CKTBLK);
; 0213 end; !of CKTCCP
.SBTTL CKTCCP
000000 010500 CKTCCP::MOV R5,R0 ; NMXDB,* 0191
000002 062700 000022 ADD #22,R0
000006 010002 MOV R0,R2
000010 004767 000000V JSR PC,GET.ENTITY
000014 010002 MOV R0,R2 ; *,CKTBLK
000016 004767 000000V JSR PC,REQUEST.COMPLETE ; 0192
000022 004767 000000V JSR PC,NEXT.STATE ; 0193
000026 010064 000032 MOV R0,32(R4) ; *,*(CCB)
000032 001006 BNE 1$ ; 0195
000034 004767 000000V JSR PC,SET.PARAMETER.NUMBER ; 0202
000040 005700 TST R0
000042 001002 BNE 1$
000044 110162 000034 MOVB R1,34(R2) ; VALUE,*(CKTBLK) 0205
000050 010203 1$: MOV R2,R3 ; CKTBLK,* 0212
000052 004767 000000V JSR PC,FORWARD.REQUEST
000056 000207 RTS PC ; 0148
; Routine Size: 24 words, Routine Base: $CODE$ + 0014
; Maximum stack depth per invocation: 1 word
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 8
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (4)
; 0214 global routine CKTREQ (NMXDB, CCB) : MCB_DB_CCB novalue =
; 0215
; 0216 !++
; 0217 ! FUNCTIONAL DESCRIPTION:
; 0218 !
; 0219 ! Process the I/O Packet dispatched to us by NMX. Convert it to a CCB and
; 0220 ! start processing the request.
; 0221 !
; 0222 ! FORMAL PARAMETERS:
; 0223 !
; 0224 ! CCB -
; 0225 !
; 0226 ! IMPLICIT INPUTS:
; 0227 !
; 0228 ! Miscellaneous NMXDB items
; 0229 !
; 0230 ! IMPLICIT OUTPUTS:
; 0231 !
; 0232 ! Miscellaneous NMXDB items
; 0233 !
; 0234 ! ROUTINE VALUE:
; 0235 !
; 0236 ! None
; 0237 !
; 0238 ! SIDE EFFECTS:
; 0239 !
; 0240 ! None
; 0241 !--
; 0242
; 0243 begin
; 0244
; 0245 map
; 0246 CCB : ref NMX_CCB_BLOCK,
; 0247 NMXDB : ref NMXDB_BLOCK;
; 0248
; 0249 !
; 0250 ! If the function is N$FRET we process it directly.
; 0251 ! If any other function Obtain the appropriate
; 0252 ! CIRCUIT Block from our data base.
; 0253 !
; 0254
; 0255 if .CCB [C_NM_FUNC] neq NMX$FNC_ret
; 0256 then
; 0257 begin
; 0258
; 0259 local
; 0260 CKTBLK : ref NMX_CIRCUIT_BLOCK;
; 0261
; 0262 CKTBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_CIRCUITS]);
; 0263 !
; 0264 ! We have a CIRCUIT Entity block which matches the Entity-Id. Determine
; 0265 ! processing based upon the Network Management Function Code.
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 9
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (4)
; 0266 !
; 0267 begin
; 0268
; 0269 literal
; 0270 STATE_SERVICE = 2;
; 0271
; 0272 local
; 0273 VALUE;
; 0274
; 0275 selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
; 0276 set
; 0277 [0] : ! Verify STATE
; 0278 selectone .VALUE of
; 0279 set
; 0280 [STATE_SERVICE] :
; 0281 begin
; 0282 CCB [C_STS] = $NM$ERR_IPV;
; 0283 CCB [C_NMX_STATE] = ST$DON;
; 0284 end;
; 0285 [otherwise] :
; 0286 0;
; 0287 tes;
; 0288 [otherwise] :
; 0289 0;
; 0290 tes;
; 0291
; 0292 end;
; 0293 CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
; 0294 FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .CKTBLK);
; 0295 end
; 0296 else
; 0297 GET_ENTITY_LIST (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_CIRCUITS]);
; 0298
; 0299 end; !of CKTREQ
.SBTTL CKTREQ
000000 010500 CKTREQ::MOV R5,R0 ; NMXDB,* 0262
000002 062700 000022 ADD #22,R0
000006 116401 000024 MOVB 24(R4),R1 ; *(CCB),* 0255
000012 042701 177401 BIC #177401,R1
000016 020127 000014 CMP R1,#14
000022 001430 BEQ 2$
000024 010002 MOV R0,R2 ; 0262
000026 004767 000000V JSR PC,GET.ENTITY
000032 010002 MOV R0,R2 ; *,CKTBLK
000034 004767 000000V JSR PC,SET.PARAMETER.NUMBER ; 0275
000040 005700 TST R0
000042 001010 BNE 1$
000044 020127 000002 CMP R1,#2 ; VALUE,* 0278
000050 001005 BNE 1$
000052 012764 177760 000014 MOV #-20,14(R4) ; *,*(CCB) 0282
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 10
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (4)
000060 005064 000032 CLR 32(R4) ; *(CCB) 0283
000064 004767 000000V 1$: JSR PC,NEXT.STATE ; 0293
000070 010064 000032 MOV R0,32(R4) ; *,*(CCB)
000074 010203 MOV R2,R3 ; CKTBLK,* 0294
000076 004767 000000V JSR PC,FORWARD.REQUEST
000102 000207 RTS PC ; 0255
000104 010002 2$: MOV R0,R2 ; 0297
000106 004767 000000V JSR PC,GET.ENTITY.LIST
000112 000207 RTS PC ; 0214
; Routine Size: 38 words, Routine Base: $CODE$ + 0074
; Maximum stack depth per invocation: 1 word
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 11
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (5)
; 0300 global routine LINCCP (NMXDB, CCB) : MCB_DB_CCB novalue =
; 0301
; 0302 !++
; 0303 ! FUNCTIONAL DESCRIPTION:
; 0304 !
; 0305 ! Process LINE Control Completes; Essentially terminate I/O requests.
; 0306 !
; 0307 ! FORMAL PARAMETERS:
; 0308 !
; 0309 ! NMXDB - NMX Process Database
; 0310 ! CCB - The CCB to us
; 0311 !
; 0312 ! IMPLICIT INPUTS:
; 0313 !
; 0314 ! None
; 0315 !
; 0316 ! IMPLICIT OUTPUTS:
; 0317 !
; 0318 ! None
; 0319 !
; 0320 ! ROUTINE VALUE:
; 0321 !
; 0322 ! None
; 0323 !
; 0324 ! SIDE EFFECTS:
; 0325 !
; 0326 ! None
; 0327 !--
; 0328
; 0329 begin
; 0330
; 0331 map
; 0332 NMXDB : ref NMXDB_BLOCK,
; 0333 CCB : ref NMX_CCB_BLOCK;
; 0334
; 0335 local
; 0336 LINBLK : ref NMX_LINE_BLOCK;
; 0337
; 0338 !
; 0339 ! Setup our data structure pointers and process based upon the
; 0340 ! Network Management Function Code.
; 0341 !
; 0342
; 0343 LINBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_LINES]);
; 0344 REQUEST_COMPLETE (.CCB);
; 0345 CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
; 0346
; 0347 if .CCB [C_NMX_STATE] eql ST$DON
; 0348 then
; 0349 begin
; 0350
; 0351 local
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 12
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (5)
; 0352 VALUE;
; 0353
; 0354 selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
; 0355 set
; 0356 [0] : ! Track STATE
; 0357 LINBLK [LINK_STATE] = .VALUE;
; 0358 [1120] : ! Track SERVICE TIMER
; 0359 begin
; 0360
; 0361 local
; 0362 CKTBLK : ref NMX_CIRCUIT_BLOCK;
; 0363
; 0364 CKTBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_CIRCUITS]);
; 0365
; 0366 if .CKTBLK neqa 0
; 0367 then
; 0368 CKTBLK [CIRCUIT_SERVICE_TIMER] = .VALUE/1000;
; 0369
; 0370 end;
; 0371 [otherwise] :
; 0372 0;
; 0373 tes;
; 0374
; 0375 end;
; 0376
; 0377 FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .LINBLK);
; 0378 end; !of LINCCP
.SBTTL LINCCP
000000 010500 LINCCP::MOV R5,R0 ; NMXDB,* 0343
000002 062700 000012 ADD #12,R0
000006 010002 MOV R0,R2
000010 004767 000000V JSR PC,GET.ENTITY
000014 010003 MOV R0,R3 ; *,LINBLK
000016 004767 000000V JSR PC,REQUEST.COMPLETE ; 0344
000022 004767 000000V JSR PC,NEXT.STATE ; 0345
000026 010064 000032 MOV R0,32(R4) ; *,*(CCB)
000032 001030 BNE 2$ ; 0347
000034 004767 000000V JSR PC,SET.PARAMETER.NUMBER ; 0354
000040 005700 TST R0
000042 001003 BNE 1$
000044 110163 000034 MOVB R1,34(R3) ; VALUE,*(LINBLK) 0357
000050 000421 BR 2$ ; 0354
000052 020027 002140 1$: CMP R0,#2140
000056 001016 BNE 2$
000060 010500 MOV R5,R0 ; NMXDB,* 0364
000062 062700 000022 ADD #22,R0
000066 010002 MOV R0,R2
000070 004767 000000V JSR PC,GET.ENTITY
000074 010002 MOV R0,R2 ; *,CKTBLK
000076 001406 BEQ 2$ ; 0366
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 13
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (5)
000100 005701 TST R1 ; 0368
000102 006700 SXT R0
000104 071027 001750 DIV #1750,R0
000110 010062 000040 MOV R0,40(R2) ; *,*(CKTBLK)
000114 004767 000000V 2$: JSR PC,FORWARD.REQUEST ; 0377
000120 000207 RTS PC ; 0300
; Routine Size: 41 words, Routine Base: $CODE$ + 0210
; Maximum stack depth per invocation: 1 word
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 14
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (6)
; 0379 global routine LINREQ (NMXDB, CCB) : MCB_DB_CCB novalue =
; 0380
; 0381 !++
; 0382 ! FUNCTIONAL DESCRIPTION:
; 0383 !
; 0384 ! Convert RSX I/O operation to MCB operation
; 0385 ! on LINE Entities.
; 0386 !
; 0387 ! FORMAL PARAMETERS:
; 0388 !
; 0389 ! IOP - I/O Packet
; 0390 !
; 0391 ! IMPLICIT INPUTS:
; 0392 !
; 0393 ! None
; 0394 !
; 0395 ! IMPLICIT OUTPUTS:
; 0396 !
; 0397 ! None
; 0398 !
; 0399 ! ROUTINE VALUE:
; 0400 !
; 0401 ! None
; 0402 !
; 0403 ! SIDE EFFECTS:
; 0404 !
; 0405 ! None
; 0406 !--
; 0407
; 0408 begin
; 0409
; 0410 map
; 0411 CCB : ref NMX_CCB_BLOCK,
; 0412 NMXDB : ref NMXDB_BLOCK;
; 0413
; 0414 !
; 0415 ! If the function is N$FRET we process it directly.
; 0416 ! If any other function Obtain the appropriate
; 0417 ! LINE Block from our data base.
; 0418 !
; 0419
; 0420 if .CCB [C_NM_FUNC] neq NMX$FNC_ret
; 0421 then
; 0422 begin
; 0423
; 0424 local
; 0425 LINBLK : ref NMX_LINE_BLOCK;
; 0426
; 0427 LINBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_LINES]);
; 0428
; 0429 !
; 0430 ! We have a LINE Entity block which matches the Entity-Id. Determine
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 15
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (6)
; 0431 ! processing based upon the Network Management Function Code.
; 0432 !
; 0433 begin
; 0434
; 0435 literal
; 0436 STATE_SERVICE = 2;
; 0437
; 0438 local
; 0439 VALUE;
; 0440
; 0441 selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
; 0442 set
; 0443 [0] : ! Verify STATE
; 0444 selectone .VALUE of
; 0445 set
; 0446 [STATE_SERVICE] :
; 0447 begin
; 0448 CCB [C_STS] = $NM$ERR_IPV;
; 0449 CCB [C_NMX_STATE] = ST$DON;
; 0450 end;
; 0451 [otherwise] :
; 0452 0;
; 0453 tes;
; 0454 [otherwise] :
; 0455 0;
; 0456 tes;
; 0457
; 0458 end;
; 0459 CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
; 0460 FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .LINBLK);
; 0461 end
; 0462 else
; 0463 GET_ENTITY_LIST (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_LINES]);
; 0464
; 0465 end; !of LINREQ
.SBTTL LINREQ
000000 010500 LINREQ::MOV R5,R0 ; NMXDB,* 0427
000002 062700 000012 ADD #12,R0
000006 116401 000024 MOVB 24(R4),R1 ; *(CCB),* 0420
000012 042701 177401 BIC #177401,R1
000016 020127 000014 CMP R1,#14
000022 001430 BEQ 2$
000024 010002 MOV R0,R2 ; 0427
000026 004767 000000V JSR PC,GET.ENTITY
000032 010002 MOV R0,R2 ; *,LINBLK
000034 004767 000000V JSR PC,SET.PARAMETER.NUMBER ; 0441
000040 005700 TST R0
000042 001010 BNE 1$
000044 020127 000002 CMP R1,#2 ; VALUE,* 0444
000050 001005 BNE 1$
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 16
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (6)
000052 012764 177760 000014 MOV #-20,14(R4) ; *,*(CCB) 0448
000060 005064 000032 CLR 32(R4) ; *(CCB) 0449
000064 004767 000000V 1$: JSR PC,NEXT.STATE ; 0459
000070 010064 000032 MOV R0,32(R4) ; *,*(CCB)
000074 010203 MOV R2,R3 ; LINBLK,* 0460
000076 004767 000000V JSR PC,FORWARD.REQUEST
000102 000207 RTS PC ; 0420
000104 010002 2$: MOV R0,R2 ; 0463
000106 004767 000000V JSR PC,GET.ENTITY.LIST
000112 000207 RTS PC ; 0379
; Routine Size: 38 words, Routine Base: $CODE$ + 0332
; Maximum stack depth per invocation: 1 word
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 17
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (7)
; 0466 global routine MODCCP (NMXDB, CCB) : MCB_DB_CCB novalue =
; 0467
; 0468 !++
; 0469 ! FUNCTIONAL DESCRIPTION:
; 0470 !
; 0471 ! Process MODULE Control Completes; Essentially terminate I/O requests.
; 0472 !
; 0473 ! FORMAL PARAMETERS:
; 0474 !
; 0475 ! NMXDB - NMX Process Database
; 0476 ! CCB - The CCB to us
; 0477 !
; 0478 ! IMPLICIT INPUTS:
; 0479 !
; 0480 ! None
; 0481 !
; 0482 ! IMPLICIT OUTPUTS:
; 0483 !
; 0484 ! None
; 0485 !
; 0486 ! ROUTINE VALUE:
; 0487 !
; 0488 ! None
; 0489 !
; 0490 ! SIDE EFFECTS:
; 0491 !
; 0492 ! None
; 0493 !--
; 0494
; 0495 begin
; 0496
; 0497 map
; 0498 NMXDB : ref NMXDB_BLOCK,
; 0499 CCB : ref NMX_CCB_BLOCK;
; 0500
; 0501 local
; 0502 MODBLK : ref NMX_MODULE_BLOCK;
; 0503
; 0504 !
; 0505 ! Setup our data structure pointers and process based upon the
; 0506 ! Network Management Function Code.
; 0507 !
; 0508
; 0509 MODBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_MODULES]);
; 0510 REQUEST_COMPLETE (.CCB);
; 0511 CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
; 0512 FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .MODBLK);
; 0513 end; !of MODCCP
.SBTTL MODCCP
000000 010500 MODCCP::MOV R5,R0 ; NMXDB,* 0509
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 18
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (7)
000002 062700 000032 ADD #32,R0
000006 010002 MOV R0,R2
000010 004767 000000V JSR PC,GET.ENTITY
000014 010001 MOV R0,R1 ; *,MODBLK
000016 004767 000000V JSR PC,REQUEST.COMPLETE ; 0510
000022 004767 000000V JSR PC,NEXT.STATE ; 0511
000026 010064 000032 MOV R0,32(R4) ; *,*(CCB)
000032 010103 MOV R1,R3 ; MODBLK,* 0512
000034 004767 000000V JSR PC,FORWARD.REQUEST
000040 000207 RTS PC ; 0466
; Routine Size: 17 words, Routine Base: $CODE$ + 0446
; Maximum stack depth per invocation: 1 word
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 19
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (8)
; 0514 global routine MODREQ (NMXDB, CCB) : MCB_DB_CCB novalue =
; 0515
; 0516 !++
; 0517 ! FUNCTIONAL DESCRIPTION:
; 0518 !
; 0519 ! Convert RSX I/O operation to MCB operation
; 0520 ! on MODULE Entities.
; 0521 !
; 0522 ! FORMAL PARAMETERS:
; 0523 !
; 0524 ! IOP - I/O Packet
; 0525 !
; 0526 ! IMPLICIT INPUTS:
; 0527 !
; 0528 ! None
; 0529 !
; 0530 ! IMPLICIT OUTPUTS:
; 0531 !
; 0532 ! None
; 0533 !
; 0534 ! ROUTINE VALUE:
; 0535 !
; 0536 ! None
; 0537 !
; 0538 ! SIDE EFFECTS:
; 0539 !
; 0540 ! None
; 0541 !--
; 0542
; 0543 begin
; 0544
; 0545 map
; 0546 CCB : ref NMX_CCB_BLOCK,
; 0547 NMXDB : ref NMXDB_BLOCK;
; 0548
; 0549 !
; 0550 ! If the function is N$FRET we process it directly.
; 0551 ! If any other function Obtain the appropriate
; 0552 ! MODULE Block from our data base.
; 0553 !
; 0554
; 0555 if .CCB [C_NM_FUNC] neq NMX$FNC_ret
; 0556 then
; 0557 begin
; 0558
; 0559 local
; 0560 MODBLK : ref NMX_MODULE_BLOCK;
; 0561
; 0562 MODBLK = GET_ENTITY (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_MODULES]);
; 0563 !
; 0564 ! We have a LINE Entity block which matches the Entity-Id. Determine
; 0565 ! processing based upon the Network Management Function Code.
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 20
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (8)
; 0566 !
; 0567 CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
; 0568 FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, .MODBLK);
; 0569 end
; 0570 else
; 0571 GET_ENTITY_LIST (NMXDB [NMX_BASE], .CCB, NMXDB [NMX_MODULES]);
; 0572
; 0573 end; !of MODREQ
.SBTTL MODREQ
000000 010500 MODREQ::MOV R5,R0 ; NMXDB,* 0562
000002 062700 000032 ADD #32,R0
000006 116401 000024 MOVB 24(R4),R1 ; *(CCB),* 0555
000012 042701 177401 BIC #177401,R1
000016 020127 000014 CMP R1,#14
000022 001414 BEQ 1$
000024 010002 MOV R0,R2 ; 0562
000026 004767 000000V JSR PC,GET.ENTITY
000032 010001 MOV R0,R1 ; *,MODBLK
000034 004767 000000V JSR PC,NEXT.STATE ; 0567
000040 010064 000032 MOV R0,32(R4) ; *,*(CCB)
000044 010103 MOV R1,R3 ; MODBLK,* 0568
000046 004767 000000V JSR PC,FORWARD.REQUEST
000052 000207 RTS PC ; 0555
000054 010002 1$: MOV R0,R2 ; 0571
000056 004767 000000V JSR PC,GET.ENTITY.LIST
000062 000207 RTS PC ; 0514
; Routine Size: 26 words, Routine Base: $CODE$ + 0510
; Maximum stack depth per invocation: 1 word
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 21
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (9)
; 0574 global routine NODCCP (NMXDB, CCB) : MCB_DB_CCB novalue =
; 0575
; 0576 !++
; 0577 ! FUNCTIONAL DESCRIPTION:
; 0578 !
; 0579 ! Process Control-Completes associated with NODE
; 0580 ! Entities. Either complete the I/O request or
; 0581 ! issue another CCB to advance state.
; 0582 !
; 0583 ! FORMAL PARAMETERS:
; 0584 !
; 0585 ! NMXDB - NMX Process Database
; 0586 ! CCB - The CCB to us
; 0587 !
; 0588 ! IMPLICIT INPUTS:
; 0589 !
; 0590 ! None
; 0591 !
; 0592 ! IMPLICIT OUTPUTS:
; 0593 !
; 0594 ! None
; 0595 !
; 0596 ! ROUTINE VALUE:
; 0597 !
; 0598 ! None
; 0599 !
; 0600 ! SIDE EFFECTS:
; 0601 !
; 0602 ! A CCB may be sent out for another round.
; 0603 !--
; 0604
; 0605 begin
; 0606
; 0607 map
; 0608 NMXDB : ref NMXDB_BLOCK,
; 0609 CCB : ref NMX_CCB_BLOCK;
; 0610
; 0611 REQUEST_COMPLETE (.CCB);
; 0612 CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
; 0613
; 0614 if .CCB [C_NMX_STATE] eql ST$DON
; 0615 then
; 0616 begin
; 0617
; 0618 local
; 0619 NODE_NUMBER,
; 0620 VALUE;
; 0621
; 0622 begin
; 0623
; 0624 bind
; 0625 NMPAR = .CCB [C_NM_NMPAR] : block field (NMX_NMPAR_FIELDS);
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 22
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (9)
; 0626
; 0627 byt$string_short (byt$ptr (NMPAR [NMX_NMPAR_ENTITY]), NODE_NUMBER);
; 0628 end;
; 0629
; 0630 selectone SET_PARAMETER_NUMBER (.CCB; VALUE) of
; 0631 set
; 0632 [500] : ! Track NAME
; 0633 selectone .NODE_NUMBER of
; 0634 set
; 0635 [0, .NMXDB [NMX_EXECUTOR_NUMBER]] :
; 0636 begin
; 0637 VALUE = .VALUE<0, 8> + 1;
; P 0638 $MCB_MOVE_BUFFER_TO_BUFFER (.VALUE, (.CCB [C_BIAS], .CCB [C_ADDR]),
; 0639 byt$ptr (NMXDB [NMX_EXECUTOR_NAME]));
; 0640 end;
; 0641 [otherwise] :
; 0642 0;
; 0643 tes;
; 0644 [502] : ! Track ADDRESS
; 0645 begin
; 0646 NMXDB [NMX_EXECUTOR_NUMBER] = .VALUE;
; 0647 %(how do we get the name ?)%
; 0648 end;
; 0649 [otherwise] :
; 0650 0;
; 0651 tes;
; 0652
; 0653 end;
; 0654
; 0655 FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, 0);
; 0656 end;
.GLOBL $MVFBF
.SBTTL NODCCP
000000 005746 NODCCP::TST -(SP) ; 0574
000002 004767 000000V JSR PC,REQUEST.COMPLETE ; 0611
000006 004767 000000V JSR PC,NEXT.STATE ; 0612
000012 010064 000032 MOV R0,32(R4) ; *,*(CCB)
000016 001055 BNE 3$ ; 0614
000020 016400 000026 MOV 26(R4),R0 ; *(CCB),* 0627
000024 012701 000004 MOV #4,R1
000030 060001 ADD R0,R1
000032 005211 INC (R1)
000034 011100 MOV (R1),R0
000036 116016 177777 MOVB -1(R0),(SP) ; *,NODE.NUMBER
000042 005211 INC (R1)
000044 011100 MOV (R1),R0
000046 116066 177777 000001 MOVB -1(R0),1(SP) ; *,NODE.NUMBER+1
000054 004767 000000V JSR PC,SET.PARAMETER.NUMBER ; 0630
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 23
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (9)
000060 020027 000764 CMP R0,#764
000064 001025 BNE 2$
000066 011602 MOV (SP),R2 ; NODE.NUMBER,* 0633
000070 001403 BEQ 1$
000072 020265 000042 CMP R2,42(R5) ; *,*(NMXDB)
000076 001025 BNE 3$
000100 042701 177400 1$: BIC #177400,R1 ; *,VALUE 0637
000104 005201 INC R1 ; VALUE
000106 010500 MOV R5,R0 ; NMXDB,* 0639
000110 062700 000044 ADD #44,R0
000114 016446 000016 MOV 16(R4),-(SP) ; *(CCB),*
000120 016446 000020 MOV 20(R4),-(SP) ; *(CCB),*
000124 010002 MOV R0,R2
000126 010103 MOV R1,R3 ; VALUE,*
000130 004767 000000G JSR PC,$MVFBF
000134 022626 CMP (SP)+,(SP)+ ; 0636
000136 000405 BR 3$ ; 0633
000140 020027 000766 2$: CMP R0,#766 ; 0630
000144 001002 BNE 3$
000146 010165 000042 MOV R1,42(R5) ; VALUE,*(NMXDB) 0646
000152 005003 3$: CLR R3 ; 0655
000154 004767 000000V JSR PC,FORWARD.REQUEST
000160 005726 TST (SP)+ ; 0574
000162 000207 RTS PC
; Routine Size: 58 words, Routine Base: $CODE$ + 0574
; Maximum stack depth per invocation: 4 words
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 24
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (10)
; 0657 global routine NODREQ (NMXDB, CCB) : MCB_DB_CCB novalue =
; 0658
; 0659 !++
; 0660 ! FUNCTIONAL DESCRIPTION:
; 0661 !
; 0662 ! Process RSX I/O Packet for the NODE Entity by setting up a CCB
; 0663 ! and sending it to appropriate processes. ! ! FORMAL
; 0664 ! PARAMETERS:
; 0665 !
; 0666 ! IOP - I/O Packet
; 0667 !
; 0668 ! IMPLICIT INPUTS:
; 0669 !
; 0670 ! Miscellaneous NMX Data Base Items
; 0671 !
; 0672 ! IMPLICIT OUTPUTS:
; 0673 !
; 0674 ! None
; 0675 !
; 0676 ! ROUTINE VALUE:
; 0677 !
; 0678 ! None
; 0679 !
; 0680 ! SIDE EFFECTS:
; 0681 !
; 0682 ! The IOP completion could be deferred until processing of
; 0683 ! a CCB completes.
; 0684 !--
; 0685
; 0686 begin
; 0687
; 0688 map
; 0689 CCB : ref NMX_CCB_BLOCK,
; 0690 NMXDB : ref NMXDB_BLOCK;
; 0691
; 0692 !
; 0693 ! The IOP was successfully converted to a CCB format. Determine processing
; 0694 ! based upon the network management function code.
; 0695 !
; 0696
; 0697 CCB [C_NMX_STATE] = NEXT_STATE (.CCB);
; 0698 FORWARD_REQUEST (NMXDB [NMX_BASE], .CCB, 0);
; 0699 end; ! of NODREQ
.SBTTL NODREQ
000000 004767 000000V NODREQ::JSR PC,NEXT.STATE ; 0697
000004 010064 000032 MOV R0,32(R4) ; *,*(CCB)
000010 005003 CLR R3 ; 0698
000012 004767 000000V JSR PC,FORWARD.REQUEST
000016 000207 RTS PC ; 0657
; Routine Size: 8 words, Routine Base: $CODE$ + 0760
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 25
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (10)
; Maximum stack depth per invocation: 1 word
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 26
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (11)
; 0700 routine FORWARD_REQUEST (NMXDB, CCB, GENBLK) : NMX_LKG_DB_CCB_ENT novalue =
; 0701
; 0702 !++
; 0703 ! FUNCTIONAL DESCRIPTION:
; 0704 !
; 0705 ! Set up the next destination for this CCB.
; 0706 !
; 0707 ! FORMAL PARAMETERS:
; 0708 !
; 0709 ! CCB - The CCB to us
; 0710 !
; 0711 ! IMPLICIT INPUTS:
; 0712 !
; 0713 ! None
; 0714 !
; 0715 ! IMPLICIT OUTPUTS:
; 0716 !
; 0717 ! None
; 0718 !
; 0719 ! ROUTINE VALUE:
; 0720 !
; 0721 ! None
; 0722 !
; 0723 ! SIDE EFFECTS:
; 0724 !
; 0725 ! A CCB may be sent out for another round.
; 0726 !--
; 0727
; 0728 begin
; 0729
; 0730 map
; 0731 CCB : ref NMX_CCB_BLOCK,
; 0732 GENBLK : ref NMX_GENERAL_BLOCK,
; 0733 NMXDB : ref NMXDB_BLOCK;
; 0734
; 0735 CCB [C_FNC] = FC_CTL;
; 0736
; 0737 case .CCB [C_NMX_STATE] from ST$LO to ST$HI of
; 0738 set
; 0739 [ST$SC] :
; 0740 CCB [C_NMX_EID] = .NMXDB [NMX_SC_EID];
; 0741 [ST$NSP] :
; 0742 CCB [C_NMX_EID] = .NMXDB [NMX_NSP_EID];
; 0743 [ST$XPT] :
; 0744 CCB [C_NMX_EID] = .NMXDB [NMX_XPT_EID];
; 0745 [ST$OWN] :
; 0746 CCB [C_NMX_EID] = .GENBLK [GENERAL_OWNER_ID];
; 0747 [ST$PRO] :
; 0748 CCB [C_NMX_EID] = .GENBLK [GENERAL_PROVIDER_ID];
; 0749 [inrange] :
; 0750 begin
; 0751 $NMX_RETURN_NMX_CCB (.CCB);
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 27
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (11)
; 0752 return;
; 0753 end;
; 0754 tes;
; 0755
; 0756 if .CCB [C_NMX_EID] eql 0 ! If no destination
; 0757 then ! then
; 0758 begin ! send it back to ourselves.
; 0759 case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
; 0760 set
; 0761 [NMX$FNC_sho, NMX$FNC_szc, NMX$FNC_ret] :
; 0762 CCB [C_CNT] = 0;
; 0763 [inrange] :
; 0764 0;
; 0765 tes;
; 0766 CCB [C_FNC] = FC_CCP;
; 0767 CCB [C_PIX] = .MCB$GW_PROCESS_HANDLE;
; 0768 end;
; 0769
; 0770 $MCB_SCHEDULE_CCB (.CCB);
; 0771 end;
.GLOBL $SCHED
.SBTTL FORWARD.REQUEST
000000 010346 FORWARD.REQUEST:
MOV R3,-(SP) ; 0700
000002 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 0735
000010 016400 000032 MOV 32(R4),R0 ; *(CCB),* 0737
000014 006300 ASL R0
000016 066007 000000' ADD P.AAA(R0),PC ; Case dispatch
000022 016564 000004 000010 1$: MOV 4(R5),10(R4) ; *(NMXDB),*(CCB) 0740
000030 000423 BR 7$ ; 0737
000032 016564 000006 000010 2$: MOV 6(R5),10(R4) ; *(NMXDB),*(CCB) 0742
000040 000417 BR 7$ ; 0737
000042 016564 000010 000010 3$: MOV 10(R5),10(R4) ; *(NMXDB),*(CCB) 0744
000050 000413 BR 7$ ; 0737
000052 016364 000026 000010 4$: MOV 26(R3),10(R4) ; *(GENBLK),*(CCB) 0746
000060 000407 BR 7$ ; 0737
000062 016364 000024 000010 5$: MOV 24(R3),10(R4) ; *(GENBLK),*(CCB) 0748
000070 000403 BR 7$ ; 0737
000072 004767 000000G 6$: JSR PC,NX.RTC ; 0751
000076 000430 BR 11$ ; 0750
000100 012700 000010 7$: MOV #10,R0 ; 0756
000104 060400 ADD R4,R0 ; CCB,*
000106 005710 TST (R0)
000110 001021 BNE 10$
000112 116403 000024 MOVB 24(R4),R3 ; *(CCB),* 0759
000116 006203 ASR R3
000120 042703 177600 BIC #177600,R3
000124 005303 DEC R3
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 28
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (11)
000126 006303 ASL R3
000130 066307 000016' ADD P.AAB(R3),PC ; Case dispatch
000134 005064 000022 8$: CLR 22(R4) ; *(CCB) 0762
000140 112764 000022 000012 9$: MOVB #22,12(R4) ; *,*(CCB) 0766
000146 116760 000000G 000001 MOVB .CRPIX,1(R0) ; 0767
000154 004767 000000G 10$: JSR PC,$SCHED ; 0770
000160 012603 11$: MOV (SP)+,R3 ; 0700
000162 000207 RTS PC
; Routine Size: 58 words, Routine Base: $CODE$ + 1000
; Maximum stack depth per invocation: 2 words
000000 .PSECT $PLIT$, RO , D
P.AAA: ; CASE Table for FORWARD.REQUEST+0016 0737
000000 000050 .WORD 50 ; [6$]
000002 000050 .WORD 50 ; [6$]
000004 000000 .WORD 0 ; [1$]
000006 000010 .WORD 10 ; [2$]
000010 000020 .WORD 20 ; [3$]
000012 000030 .WORD 30 ; [4$]
000014 000040 .WORD 40 ; [5$]
P.AAB: ; CASE Table for FORWARD.REQUEST+0130 0759
000016 000004 .WORD 4 ; [9$]
000020 000004 .WORD 4 ; [9$]
000022 000004 .WORD 4 ; [9$]
000024 000000 .WORD 0 ; [8$]
000026 000000 .WORD 0 ; [8$]
000030 000000 .WORD 0 ; [8$]
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 29
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (12)
; 0772 routine GET_ENTITY (NMXDB, CCB, ENTBLK) : NMX_LKG_DB_CCB_BLK =
; 0773
; 0774 !++
; 0775 ! FUNCTIONAL DESCRIPTION:
; 0776 !
; 0777 ! Get the entity block for the entity in NMPAR.
; 0778 !
; 0779 ! FORMAL PARAMETERS:
; 0780 !
; 0781 ! .CCB - address of the formatted CCB
; 0782 !
; 0783 ! IMPLICIT INPUTS:
; 0784 !
; 0785 ! Misc GENERAL_BLOCK items
; 0786 !
; 0787 ! IMPLICIT OUTPUTS:
; 0788 !
; 0789 ! None
; 0790 !
; 0791 ! ROUTINE VALUE:
; 0792 !
; 0793 ! Address of entity block descriptor
; 0794 !
; 0795 ! SIDE EFFECTS:
; 0796 !
; 0797 ! None
; 0798 !
; 0799 !--
; 0800
; 0801 begin
; 0802
; 0803 map
; 0804 CCB : ref NMX_CCB_BLOCK,
; 0805 ENTBLK : ref vector,
; 0806 NMXDB : ref NMXDB_BLOCK;
; 0807
; 0808 label
; 0809 LOOK_FOR_ENTITY;
; 0810
; 0811 bind
; 0812 NMPAR = .CCB [C_NM_NMPAR] : block field (NMX_NMPAR_FIELDS);
; 0813
; 0814 LOOK_FOR_ENTITY:
; 0815 begin
; 0816
; 0817 local
; 0818 ENTCNT,
; 0819 ENTADR : ref NMX_GENERAL_BLOCK;
; 0820
; 0821 MAP$ (.ENTBLK [0]);
; 0822 ENTBLK = ENTBLK [1]; %(to force auto-increment)%
; 0823 ENTADR = .ENTBLK [0];
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 30
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (12)
; 0824 ENTBLK = ENTBLK [1]; %(to force auto-increment)%
; 0825 if .ENTADR eqla 0 then leave LOOK_FOR_ENTITY;
; 0826 ENTCNT = .ENTBLK [0];
; 0827 ENTBLK = ENTBLK [1]; %(to force auto-increment)%
; 0828 if .ENTCNT eql 0 then leave LOOK_FOR_ENTITY;
; 0829 !
; 0830 ! Search through Entity BLOCKs looking for a matching one.
; 0831 !
; 0832
; 0833 do
; 0834 begin
; 0835
; 0836 if ch$eql (.ENTADR [GENERAL_NAME_LENGTH] + 1,
; 0837 byt$ptr (ENTADR [GENERAL_NAME]),
; 0838 .ENTADR [GENERAL_NAME_LENGTH] + 1,
; 0839 byt$ptr (NMPAR [NMX_NMPAR_ENTITY]))
; 0840 then return .ENTADR;
; 0841
; 0842 ENTADR = .ENTADR + .ENTBLK [0];
; 0843 end
; 0844 while (ENTCNT = .ENTCNT - 1) neq 0;
; 0845
; 0846 end;
; 0847 CCB [C_STS] = $NM$ERR_URC;
; 0848 CCB [C_NMX_STATE] = ST$DON;
; 0849 return 0
; 0850 end; !of GET_ENTITY
.GLOBL KISAR6
.SBTTL GET.ENTITY
001164 .PSECT $CODE$, RO
000000 004167 000000G GET.ENTITY:
JSR R1,$SAVE5 ; 0772
000004 012267 000000G MOV (R2)+,KISAR6 ; ENTBLK,* 0821
000010 012201 MOV (R2)+,R1 ; ENTBLK,ENTADR 0823
000012 001426 BEQ 3$ ; 0825
000014 012205 MOV (R2)+,R5 ; ENTBLK,ENTCNT 0826
000016 001424 BEQ 3$ ; 0828
000020 111100 1$: MOVB (R1),R0 ; ENTADR,* 0836
000022 005200 INC R0
000024 010046 MOV R0,-(SP) ; 0839
000026 010146 MOV R1,-(SP) ; ENTADR,*
000030 010046 MOV R0,-(SP)
000032 016446 000026 MOV 26(R4),-(SP) ; *(CCB),*
000036 062716 000004 ADD #4,(SP)
000042 005046 CLR -(SP)
000044 004767 000000G JSR PC,BL$EQL
000050 062706 000012 ADD #12,SP
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 31
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (12)
000054 006000 ROR R0
000056 103002 BCC 2$
000060 010100 MOV R1,R0 ; ENTADR,* 0840
000062 000207 RTS PC
000064 061201 2$: ADD (R2),R1 ; ENTBLK,ENTADR 0842
000066 077524 SOB R5,1$ ; ENTCNT,* 0844
000070 012764 177770 000014 3$: MOV #-10,14(R4) ; *,*(CCB) 0847
000076 005064 000032 CLR 32(R4) ; *(CCB) 0848
000102 005000 CLR R0 ; 0801
000104 000207 RTS PC ; 0772
; Routine Size: 35 words, Routine Base: $CODE$ + 1164
; Maximum stack depth per invocation: 12 words
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 32
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (13)
; 0851 routine GET_ENTITY_LIST (NMXDB, CCB, ENTBLK) : NMX_LKG_DB_CCB_BLK novalue =
; 0852
; 0853 !++
; 0854 ! FUNCTIONAL DESCRIPTION:
; 0855 !
; 0856 ! Return to the buffer pointed to by the CCB the entire list of
; 0857 ! Entities in this data base.
; 0858 !
; 0859 ! FORMAL PARAMETERS:
; 0860 !
; 0861 ! .CCB - address of the formatted CCB
; 0862 ! .ENTBLK - address of entity block descriptor
; 0863 !
; 0864 ! IMPLICIT INPUTS:
; 0865 !
; 0866 ! Misc GENERAL_BLOCK items
; 0867 !
; 0868 ! IMPLICIT OUTPUTS:
; 0869 !
; 0870 ! None
; 0871 !
; 0872 ! ROUTINE VALUE:
; 0873 !
; 0874 ! None
; 0875 !
; 0876 ! SIDE EFFECTS:
; 0877 !
; 0878 ! None
; 0879 !
; 0880 !--
; 0881
; 0882 begin
; 0883
; 0884 map
; 0885 CCB : ref NMX_CCB_BLOCK,
; 0886 ENTBLK : ref NMX_ENTITY_BLOCK,
; 0887 NMXDB : ref NMXDB_BLOCK;
; 0888
; 0889 local
; 0890 APR6,
; 0891 GENBLK : ref block field (NMX_GENERAL_FIELDS, NMX_LINK_FIELDS),
; 0892 SELECTOR;
; 0893
; 0894 macro
; M 0895 $return =
; M 0896 begin
; M 0897 MAP$ (.APR6);
; M 0898 $NMX_RETURN_NMX_CCB (.CCB);
; M 0899 return
; 0900 end %;
; 0901
; 0902 !
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 33
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (13)
; 0903 ! Setup to loop through all Entity items
; 0904 !
; 0905 SMAP$ (APR6);
; 0906 MAP$ (.ENTBLK [NMX_ENTITY_BLOCK_BIAS]);
; 0907 CCB [C_NMX_STATE] = ST$DON;
; 0908 CCB [C_STS] = $NM$ERR_OCM;
; 0909 SELECTOR = 0;
; 0910 if .CCB [C_NM_SELECT] eql NMX$SEL_act then SELECTOR = not .SELECTOR;
; 0911 GENBLK = .ENTBLK [NMX_ENTITY_BLOCK_ADDRESS]; ! Start scanning here
; 0912 !
; 0913 ! Loop through all GENERAL_BLOCKS writing the IDs to the user buffer.
; 0914 !
; 0915
; 0916 decru CNT from .ENTBLK [NMX_ENTITY_BLOCK_ENTRIES] to 1
; 0917 do
; 0918 begin
; 0919
; 0920 local
; 0921 LENGTH;
; 0922
; 0923 LENGTH = .GENBLK [GENERAL_NAME_LENGTH]; ! Length of string is first byte
; 0924
; 0925 if (.LENGTH neq 0) and
; 0926 ((.SELECTOR eql 0) or
; 0927 (selectone .GENBLK [LINK_STATE] of
; 0928 set
; 0929 [LINK_ON, LINK_SERVICE] :
; 0930 true; ! Only links in ON or SERVICE state
; 0931 [otherwise] :
; 0932 false; ! otherwise pass this one by.
; 0933 tes))
; 0934 then
; 0935 begin
; 0936 LENGTH = .LENGTH + 1; ! Determine whether next ID fits
; 0937
; 0938 if (CCB [C_CNT] = .CCB [C_CNT] - .LENGTH) lss 0 then $return;
; 0939
; 0940 $MCB_MOVE_BUFFER_TO_BUFFER (.LENGTH, byt$ptr (GENBLK [GENERAL_NAME]), (.CCB [C_BIAS], .CCB [C_ADDR]));
; 0941 CCB [C_ADDR] = ch$plus (.CCB [C_ADDR], .LENGTH);
; 0942 CCB [C_NMX_CNT] = .CCB [C_NMX_CNT] + .LENGTH;
; 0943 end;
; 0944
; 0945 GENBLK = .GENBLK + .ENTBLK [NMX_ENTITY_BLOCK_LENGTH];
; 0946 end;
; 0947
; L 0948 CCB [C_STS] = $NM$_SUC;
; %PRINT: Function Completed Successfuly
; 0949 $return;
; 0950 end; !of GET_ENTITY_LIST
.GLOBL $MVTBF
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 34
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (13)
.SBTTL GET.ENTITY.LIST
000000 004167 000000G GET.ENTITY.LIST:
JSR R1,$SAVE5 ; 0851
000004 005746 TST -(SP)
000006 010246 MOV R2,-(SP)
000010 016746 000000G MOV KISAR6,-(SP) ; *,APR6 0905
000014 011267 000000G MOV (R2),KISAR6 ; 0906
000020 005064 000032 CLR 32(R4) ; *(CCB) 0907
000024 012764 177774 000014 MOV #-4,14(R4) ; *,*(CCB) 0908
000032 005046 CLR -(SP) ; SELECTOR 0909
000034 016400 000024 MOV 24(R4),R0 ; *(CCB),* 0910
000040 042700 007777 BIC #7777,R0
000044 020027 020000 CMP R0,#20000
000050 001001 BNE 1$
000052 005116 COM (SP) ; SELECTOR
000054 016600 000004 1$: MOV 4(SP),R0 ; 0911
000060 016066 000002 000006 MOV 2(R0),6(SP) ; *,GENBLK
000066 016005 000004 MOV 4(R0),R5 ; *,CNT 0916
000072 001445 BEQ 5$
000074 117601 000006 2$: MOVB @6(SP),R1 ; GENBLK,LENGTH 0923
000100 001434 BEQ 4$ ; 0925
000102 005716 TST (SP) ; SELECTOR 0926
000104 001410 BEQ 3$
000106 016602 000006 MOV 6(SP),R2 ; GENBLK,* 0927
000112 116200 000034 MOVB 34(R2),R0 ; *(GENBLK),*
000116 001403 BEQ 3$
000120 020027 000002 CMP R0,#2
000124 001022 BNE 4$
000126 005201 3$: INC R1 ; LENGTH 0936
000130 160164 000022 SUB R1,22(R4) ; LENGTH,*(CCB) 0938
000134 100427 BMI 6$
000136 016446 000016 MOV 16(R4),-(SP) ; *(CCB),* 0940
000142 016446 000020 MOV 20(R4),-(SP) ; *(CCB),*
000146 016602 000012 MOV 12(SP),R2 ; GENBLK,*
000152 010103 MOV R1,R3 ; LENGTH,*
000154 004767 000000G JSR PC,$MVTBF
000160 060164 000020 ADD R1,20(R4) ; LENGTH,*(CCB) 0941
000164 060164 000030 ADD R1,30(R4) ; LENGTH,*(CCB) 0942
000170 022626 CMP (SP)+,(SP)+ ; 0935
000172 016600 000004 4$: MOV 4(SP),R0 ; 0945
000176 066066 000006 000006 ADD 6(R0),6(SP) ; *,GENBLK
000204 077545 SOB R5,2$ ; CNT,* 0000
000206 012764 000001 000014 5$: MOV #1,14(R4) ; *,*(CCB) 0948
000214 016667 000002 000000G 6$: MOV 2(SP),KISAR6 ; APR6,*
000222 004767 000000G JSR PC,NX.RTC
000226 062706 000010 ADD #10,SP ; 0851
000232 000207 RTS PC
; Routine Size: 78 words, Routine Base: $CODE$ + 1272
; Maximum stack depth per invocation: 13 words
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 35
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
; 0951 routine NEXT_STATE (CCB) : NMX_LKG_CCB =
; 0952
; 0953 !++
; 0954 ! FUNCTIONAL DESCRIPTION:
; 0955 !
; 0956 ! Set up the next destination for this CCB.
; 0957 !
; 0958 ! FORMAL PARAMETERS:
; 0959 !
; 0960 ! CCB - The CCB to us
; 0961 !
; 0962 ! IMPLICIT INPUTS:
; 0963 !
; 0964 ! None
; 0965 !
; 0966 ! IMPLICIT OUTPUTS:
; 0967 !
; 0968 ! None
; 0969 !
; 0970 ! ROUTINE VALUE:
; 0971 !
; 0972 ! Next state
; 0973 !
; 0974 ! SIDE EFFECTS:
; 0975 !
; 0976 ! None
; 0977 !--
; 0978
; 0979 begin
; 0980
; 0981 map
; 0982 CCB : ref NMX_CCB_BLOCK;
; 0983
; 0984 literal
; 0985 ST$BAD = ST$DON;
; 0986
; 0987 bind
; 0988 ENTITY = .CCB [C_NM_ENTITY],
; 0989 FUNCTION = .CCB [C_NM_FUNC],
; 0990 SELECTOR = .CCB [C_NM_SELECT],
; 0991 STATE = .CCB [C_NMX_STATE];
; 0992
; 0993 case ENTITY from NMX$ENT_lo to NMX$ENT_hi of
; 0994 set
; 0995 [NMX$ENT_nod] :
; 0996 !
; 0997 ! [Session Control] -> [NSP] -> [Transport] -> Done
; 0998 !
; 0999 case FUNCTION from NMX$FNC_lo to NMX$FNC_hi of
; 1000 set
; 1001 [NMX$FNC_sho] :
; 1002 case STATE from ST$LO to ST$HI of
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 36
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
; 1003 set
; 1004 [ST$INI] :
; 1005 ST$SC;
; 1006 [ST$SC] :
; 1007 ST$NSP;
; 1008 [ST$NSP] :
; 1009 ST$XPT;
; 1010 [ST$XPT] :
; 1011 ST$DON;
; 1012 [inrange] :
; 1013 ST$BAD;
; 1014 tes;
; 1015 [NMX$FNC_set, NMX$FNC_clr] :
; 1016 case STATE from ST$LO to ST$HI of
; 1017 set
; 1018 [ST$INI] :
; 1019 selectone PARAMETER_NUMBER (.CCB) of
; 1020 set
; 1021 [700 to 799] :
; 1022 ST$NSP;
; 1023 [900 to 999, 2500] :
; 1024 ST$XPT;
; 1025 [otherwise] :
; 1026 ST$SC;
; 1027 tes;
; 1028 [inrange] :
; 1029 ST$DON;
; 1030 tes;
; 1031 [NMX$FNC_zro, NMX$FNC_szc] :
; 1032 case STATE from ST$LO to ST$HI of
; 1033 set
; 1034 [ST$INI] :
; 1035 ST$NSP;
; 1036 [ST$NSP] :
; 1037 ST$XPT;
; 1038 [ST$XPT] :
; 1039 ST$DON;
; 1040 [inrange] :
; 1041 ST$BAD;
; 1042 tes;
; 1043 [NMX$FNC_ret] :
; 1044 case SELECTOR from NMX$SEL_lo to NMX$SEL_hi of
; 1045 set
; 1046 [NMX$SEL_kno] :
; 1047 case STATE from ST$LO to ST$HI of
; 1048 set
; 1049 [ST$INI] :
; 1050 ST$XPT;
; 1051 [ST$XPT] :
; 1052 ST$SC;
; 1053 [ST$SC] :
; 1054 ST$DON;
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 37
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
; 1055 [inrange] :
; 1056 ST$BAD;
; 1057 tes;
; 1058 [NMX$SEL_act] :
; 1059 case STATE from ST$LO to ST$HI of
; 1060 set
; 1061 [ST$INI] :
; 1062 ST$XPT;
; 1063 [ST$XPT] :
; 1064 ST$DON;
; 1065 [inrange] :
; 1066 ST$BAD;
; 1067 tes;
; 1068 [NMX$SEL_lop] :
; 1069 case STATE from ST$LO to ST$HI of
; 1070 set
; 1071 [ST$INI] :
; 1072 ST$SC;
; 1073 [ST$SC] :
; 1074 ST$DON;
; 1075 [inrange] :
; 1076 ST$BAD;
; 1077 tes;
; 1078 [inrange] :
; 1079 ST$BAD;
; 1080 tes;
; 1081 [inrange] :
; 1082 ST$BAD;
; 1083 tes;
; 1084 [NMX$ENT_lin] :
; 1085 !
; 1086 ! [Owner] -> [Provider] -> Done
; 1087 !
; 1088 case FUNCTION from NMX$FNC_lo to NMX$FNC_hi of
; 1089 set
; 1090 [NMX$FNC_sho] :
; 1091 case SELECTOR from NMX$SEL_lo to NMX$SEL_hi of
; 1092 set
; 1093 [NMX$SEL_sta, NMX$SEL_sum] :
; 1094 case STATE from ST$LO to ST$HI of
; 1095 set
; 1096 [ST$INI] :
; 1097 ST$OWN;
; 1098 [ST$OWN] :
; 1099 ST$PRO;
; 1100 [ST$PRO] :
; 1101 ST$DON;
; 1102 [inrange] :
; 1103 ST$BAD;
; 1104 tes;
; 1105 [inrange] :
; 1106 case STATE from ST$LO to ST$HI of
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 38
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
; 1107 set
; 1108 [ST$INI] :
; 1109 ST$PRO;
; 1110 [ST$PRO] :
; 1111 ST$DON;
; 1112 [inrange] :
; 1113 ST$BAD;
; 1114 tes;
; 1115 tes;
; 1116 [NMX$FNC_set, NMX$FNC_clr] :
; 1117 case STATE from ST$LO to ST$HI of
; 1118 set
; 1119 [ST$INI] :
; 1120 selectone PARAMETER_NUMBER (.CCB) of
; 1121 set
; 1122 [0] :
; 1123 ST$OWN;
; 1124 [otherwise] :
; 1125 ST$PRO;
; 1126 tes;
; 1127 [ST$OWN] :
; 1128 ST$DON;
; 1129 [ST$PRO] :
; 1130 ST$DON;
; 1131 [inrange] :
; 1132 ST$BAD;
; 1133 tes;
; 1134 [NMX$FNC_zro, NMX$FNC_szc] :
; 1135 case STATE from ST$LO to ST$HI of
; 1136 set
; 1137 [ST$INI] :
; 1138 ST$OWN;
; 1139 [ST$OWN] :
; 1140 ST$PRO;
; 1141 [ST$PRO] :
; 1142 ST$DON;
; 1143 [inrange] :
; 1144 ST$BAD;
; 1145 tes;
; 1146 [inrange] :
; 1147 ST$BAD;
; 1148 tes;
; 1149 [NMX$ENT_ckt] :
; 1150 !
; 1151 ! [Session Control] -> [Owner] -> [Provider] -> Done
; 1152 !
; 1153 case FUNCTION from NMX$FNC_lo to NMX$FNC_hi of
; 1154 set
; 1155 [NMX$FNC_sho] :
; 1156 case STATE from ST$LO to ST$HI of
; 1157 set
; 1158 [ST$INI] :
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 39
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
; 1159 ST$SC;
; 1160 [ST$SC] :
; 1161 ST$OWN;
; 1162 [ST$OWN] :
; 1163 ST$PRO;
; 1164 [ST$PRO] :
; 1165 ST$DON;
; 1166 [inrange] :
; 1167 ST$BAD;
; 1168 tes;
; 1169 [NMX$FNC_set, NMX$FNC_clr] :
; 1170 case STATE from ST$LO to ST$HI of
; 1171 set
; 1172 [ST$INI] :
; 1173 selectone PARAMETER_NUMBER (.CCB) of
; 1174 set
; 1175 [1000 to 1500] :
; 1176 ST$PRO;
; 1177 [otherwise] :
; 1178 ST$OWN;
; 1179 tes;
; 1180 [ST$OWN] :
; 1181 ST$DON;
; 1182 [ST$PRO] :
; 1183 ST$DON;
; 1184 [inrange] :
; 1185 ST$BAD;
; 1186 tes;
; 1187 [NMX$FNC_zro, NMX$FNC_szc] :
; 1188 case STATE from ST$LO to ST$HI of
; 1189 set
; 1190 [ST$INI] :
; 1191 ST$OWN;
; 1192 [ST$OWN] :
; 1193 ST$PRO;
; 1194 [ST$PRO] :
; 1195 ST$DON;
; 1196 [inrange] :
; 1197 ST$BAD;
; 1198 tes;
; 1199 [inrange] :
; 1200 ST$BAD;
; 1201 tes;
; 1202 [NMX$ENT_mod] :
; 1203 !
; 1204 ! [Provider] -> Done
; 1205 !
; 1206 case STATE from ST$LO to ST$HI of
; 1207 set
; 1208 [ST$INI] :
; 1209 ST$PRO;
; 1210 [ST$PRO] :
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 40
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
; 1211 ST$DON;
; 1212 [inrange] :
; 1213 ST$BAD;
; 1214 tes;
; 1215 [inrange] :
; 1216 ST$BAD;
; 1217 tes
; 1218
; 1219 end;
.SBTTL NEXT.STATE
000000 004167 000000G NEXT.STATE:
JSR R1,$SAVE2 ; 0951
000004 012701 000024 MOV #24,R1 ; 0988
000010 060401 ADD R4,R1 ; CCB,*
000012 016400 000032 MOV 32(R4),R0 ; *(CCB),* 0979
000016 011102 MOV (R1),R2 ; 0993
000020 072227 177770 ASH #-10,R2
000024 042702 177760 BIC #177760,R2
000030 005302 DEC R2
000032 006302 ASL R2
000034 066207 000032' ADD P.AAC(R2),PC ; Case dispatch
000040 111102 1$: MOVB (R1),R2 ; 0999
000042 006202 ASR R2
000044 042702 177600 BIC #177600,R2
000050 005302 DEC R2
000052 006302 ASL R2
000054 066207 000044' ADD P.AAD(R2),PC ; Case dispatch
000060 010001 2$: MOV R0,R1 ; 1002
000062 006301 ASL R1
000064 066107 000060' ADD P.AAE(R1),PC ; Case dispatch
000070 000547 3$: BR 29$
000072 010001 4$: MOV R0,R1 ; 1016
000074 006301 ASL R1
000076 066107 000076' ADD P.AAF(R1),PC ; Case dispatch
000102 004767 000000V 5$: JSR PC,PARAMETER.NUMBER ; 1019
000106 020027 001274 CMP R0,#1274
000112 002403 BLT 6$
000114 020027 001437 CMP R0,#1437
000120 003416 BLE 9$
000122 020027 001604 6$: CMP R0,#1604
000126 002403 BLT 7$
000130 020027 001747 CMP R0,#1747
000134 003433 BLE 14$
000136 020027 004704 7$: CMP R0,#4704
000142 001122 BNE 29$
000144 000427 BR 14$
000146 010001 8$: MOV R0,R1 ; 1032
000150 006301 ASL R1
000152 066107 000114' ADD P.AAG(R1),PC ; Case dispatch
000156 012700 000003 9$: MOV #3,R0
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 41
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
000162 000207 RTS PC
000164 011101 10$: MOV (R1),R1 ; 1044
000166 072127 177764 ASH #-14,R1
000172 042701 177760 BIC #177760,R1
000176 005301 DEC R1
000200 006301 ASL R1
000202 066107 000132' ADD P.AAH(R1),PC ; Case dispatch
000206 006300 11$: ASL R0 ; 1047
000210 066007 000142' ADD P.AAI(R0),PC ; Case dispatch
000214 000403 12$: BR 14$
000216 006300 13$: ASL R0 ; 1059
000220 066007 000160' ADD P.AAJ(R0),PC ; Case dispatch
000224 012700 000004 14$: MOV #4,R0
000230 000207 RTS PC
000232 006300 15$: ASL R0 ; 1069
000234 066007 000176' ADD P.AAK(R0),PC ; Case dispatch
000240 000463 16$: BR 29$
000242 111102 17$: MOVB (R1),R2 ; 1088
000244 006202 ASR R2
000246 042702 177600 BIC #177600,R2
000252 005302 DEC R2
000254 006302 ASL R2
000256 066207 000214' ADD P.AAL(R2),PC ; Case dispatch
000262 011101 18$: MOV (R1),R1 ; 1091
000264 072127 177764 ASH #-14,R1
000270 042701 177760 BIC #177760,R1
000274 005301 DEC R1
000276 006301 ASL R1
000300 066107 000230' ADD P.AAM(R1),PC ; Case dispatch
000304 006300 19$: ASL R0 ; 1094
000306 066007 000240' ADD P.AAN(R0),PC ; Case dispatch
000312 000462 20$: BR 33$
000314 006300 21$: ASL R0 ; 1106
000316 066007 000256' ADD P.AAO(R0),PC ; Case dispatch
000322 000464 22$: BR 35$
000324 010001 23$: MOV R0,R1 ; 1117
000326 006301 ASL R1
000330 066107 000274' ADD P.AAP(R1),PC ; Case dispatch
000334 004767 000000V 24$: JSR PC,PARAMETER.NUMBER ; 1120
000340 005700 TST R0
000342 001054 BNE 35$
000344 000445 BR 33$
000346 010001 25$: MOV R0,R1 ; 1135
000350 006301 ASL R1
000352 066107 000312' ADD P.AAQ(R1),PC ; Case dispatch
000356 000440 26$: BR 33$
000360 111101 27$: MOVB (R1),R1 ; 1153
000362 006201 ASR R1
000364 042701 177600 BIC #177600,R1
000370 005301 DEC R1
000372 006301 ASL R1
000374 066107 000330' ADD P.AAR(R1),PC ; Case dispatch
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 42
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
000400 010001 28$: MOV R0,R1 ; 1156
000402 006301 ASL R1
000404 066107 000344' ADD P.AAS(R1),PC ; Case dispatch
000410 012700 000002 29$: MOV #2,R0
000414 000207 RTS PC
000416 010001 30$: MOV R0,R1 ; 1170
000420 006301 ASL R1
000422 066107 000362' ADD P.AAT(R1),PC ; Case dispatch
000426 004767 000000V 31$: JSR PC,PARAMETER.NUMBER ; 1173
000432 020027 001750 CMP R0,#1750
000436 002410 BLT 33$
000440 020027 002734 CMP R0,#2734
000444 003005 BGT 33$
000446 000412 BR 35$
000450 010001 32$: MOV R0,R1 ; 1188
000452 006301 ASL R1
000454 066107 000400' ADD P.AAU(R1),PC ; Case dispatch
000460 012700 000005 33$: MOV #5,R0
000464 000207 RTS PC
000466 006300 34$: ASL R0 ; 1206
000470 066007 000416' ADD P.AAV(R0),PC ; Case dispatch
000474 012700 000006 35$: MOV #6,R0
000500 000207 RTS PC
000502 005000 36$: CLR R0 ; 0993
000504 000207 RTS PC ; 0951
; Routine Size: 163 words, Routine Base: $CODE$ + 1526
; Maximum stack depth per invocation: 4 words
000032 .PSECT $PLIT$, RO , D
P.AAC: ; CASE Table for NEXT.STATE+0034 0993
000032 000000 .WORD 0 ; [1$]
000034 000202 .WORD 202 ; [17$]
000036 000442 .WORD 442 ; [36$]
000040 000320 .WORD 320 ; [27$]
000042 000426 .WORD 426 ; [34$]
P.AAD: ; CASE Table for NEXT.STATE+0054 0999
000044 000012 .WORD 12 ; [4$]
000046 000012 .WORD 12 ; [4$]
000050 000066 .WORD 66 ; [8$]
000052 000000 .WORD 0 ; [2$]
000054 000066 .WORD 66 ; [8$]
000056 000104 .WORD 104 ; [10$]
P.AAE: ; CASE Table for NEXT.STATE+0064 1002
000060 000412 .WORD 412 ; [36$]
000062 000320 .WORD 320 ; [29$]
000064 000066 .WORD 66 ; [9$]
000066 000134 .WORD 134 ; [14$]
000070 000412 .WORD 412 ; [36$]
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 43
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
000072 000412 .WORD 412 ; [36$]
000074 000412 .WORD 412 ; [36$]
P.AAF: ; CASE Table for NEXT.STATE+0076 1016
000076 000400 .WORD 400 ; [36$]
000100 000000 .WORD 0 ; [5$]
000102 000400 .WORD 400 ; [36$]
000104 000400 .WORD 400 ; [36$]
000106 000400 .WORD 400 ; [36$]
000110 000400 .WORD 400 ; [36$]
000112 000400 .WORD 400 ; [36$]
P.AAG: ; CASE Table for NEXT.STATE+0152 1032
000114 000324 .WORD 324 ; [36$]
000116 000000 .WORD 0 ; [9$]
000120 000324 .WORD 324 ; [36$]
000122 000046 .WORD 46 ; [14$]
000124 000324 .WORD 324 ; [36$]
000126 000324 .WORD 324 ; [36$]
000130 000324 .WORD 324 ; [36$]
P.AAH: ; CASE Table for NEXT.STATE+0202 1044
000132 000000 .WORD 0 ; [11$]
000134 000010 .WORD 10 ; [13$]
000136 000024 .WORD 24 ; [15$]
000140 000274 .WORD 274 ; [36$]
P.AAI: ; CASE Table for NEXT.STATE+0210 1047
000142 000266 .WORD 266 ; [36$]
000144 000010 .WORD 10 ; [14$]
000146 000266 .WORD 266 ; [36$]
000150 000266 .WORD 266 ; [36$]
000152 000174 .WORD 174 ; [29$]
000154 000266 .WORD 266 ; [36$]
000156 000266 .WORD 266 ; [36$]
P.AAJ: ; CASE Table for NEXT.STATE+0220 1059
000160 000256 .WORD 256 ; [36$]
000162 000000 .WORD 0 ; [14$]
000164 000256 .WORD 256 ; [36$]
000166 000256 .WORD 256 ; [36$]
000170 000256 .WORD 256 ; [36$]
000172 000256 .WORD 256 ; [36$]
000174 000256 .WORD 256 ; [36$]
P.AAK: ; CASE Table for NEXT.STATE+0234 1069
000176 000242 .WORD 242 ; [36$]
000200 000150 .WORD 150 ; [29$]
000202 000242 .WORD 242 ; [36$]
000204 000242 .WORD 242 ; [36$]
000206 000242 .WORD 242 ; [36$]
000210 000242 .WORD 242 ; [36$]
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 44
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
000212 000242 .WORD 242 ; [36$]
P.AAL: ; CASE Table for NEXT.STATE+0256 1088
000214 000042 .WORD 42 ; [23$]
000216 000042 .WORD 42 ; [23$]
000220 000064 .WORD 64 ; [25$]
000222 000000 .WORD 0 ; [18$]
000224 000064 .WORD 64 ; [25$]
000226 000220 .WORD 220 ; [36$]
P.AAM: ; CASE Table for NEXT.STATE+0300 1091
000230 000000 .WORD 0 ; [19$]
000232 000000 .WORD 0 ; [19$]
000234 000010 .WORD 10 ; [21$]
000236 000010 .WORD 10 ; [21$]
P.AAN: ; CASE Table for NEXT.STATE+0306 1094
000240 000170 .WORD 170 ; [36$]
000242 000146 .WORD 146 ; [33$]
000244 000170 .WORD 170 ; [36$]
000246 000170 .WORD 170 ; [36$]
000250 000170 .WORD 170 ; [36$]
000252 000162 .WORD 162 ; [35$]
000254 000170 .WORD 170 ; [36$]
P.AAO: ; CASE Table for NEXT.STATE+0316 1106
000256 000160 .WORD 160 ; [36$]
000260 000152 .WORD 152 ; [35$]
000262 000160 .WORD 160 ; [36$]
000264 000160 .WORD 160 ; [36$]
000266 000160 .WORD 160 ; [36$]
000270 000160 .WORD 160 ; [36$]
000272 000160 .WORD 160 ; [36$]
P.AAP: ; CASE Table for NEXT.STATE+0330 1117
000274 000146 .WORD 146 ; [36$]
000276 000000 .WORD 0 ; [24$]
000300 000146 .WORD 146 ; [36$]
000302 000146 .WORD 146 ; [36$]
000304 000146 .WORD 146 ; [36$]
000306 000146 .WORD 146 ; [36$]
000310 000146 .WORD 146 ; [36$]
P.AAQ: ; CASE Table for NEXT.STATE+0352 1135
000312 000124 .WORD 124 ; [36$]
000314 000102 .WORD 102 ; [33$]
000316 000124 .WORD 124 ; [36$]
000320 000124 .WORD 124 ; [36$]
000322 000124 .WORD 124 ; [36$]
000324 000116 .WORD 116 ; [35$]
000326 000124 .WORD 124 ; [36$]
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 45
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (14)
P.AAR: ; CASE Table for NEXT.STATE+0374 1153
000330 000016 .WORD 16 ; [30$]
000332 000016 .WORD 16 ; [30$]
000334 000050 .WORD 50 ; [32$]
000336 000000 .WORD 0 ; [28$]
000340 000050 .WORD 50 ; [32$]
000342 000102 .WORD 102 ; [36$]
P.AAS: ; CASE Table for NEXT.STATE+0404 1156
000344 000072 .WORD 72 ; [36$]
000346 000000 .WORD 0 ; [29$]
000350 000050 .WORD 50 ; [33$]
000352 000072 .WORD 72 ; [36$]
000354 000072 .WORD 72 ; [36$]
000356 000064 .WORD 64 ; [35$]
000360 000072 .WORD 72 ; [36$]
P.AAT: ; CASE Table for NEXT.STATE+0422 1170
000362 000054 .WORD 54 ; [36$]
000364 000000 .WORD 0 ; [31$]
000366 000054 .WORD 54 ; [36$]
000370 000054 .WORD 54 ; [36$]
000372 000054 .WORD 54 ; [36$]
000374 000054 .WORD 54 ; [36$]
000376 000054 .WORD 54 ; [36$]
P.AAU: ; CASE Table for NEXT.STATE+0454 1188
000400 000022 .WORD 22 ; [36$]
000402 000000 .WORD 0 ; [33$]
000404 000022 .WORD 22 ; [36$]
000406 000022 .WORD 22 ; [36$]
000410 000022 .WORD 22 ; [36$]
000412 000014 .WORD 14 ; [35$]
000414 000022 .WORD 22 ; [36$]
P.AAV: ; CASE Table for NEXT.STATE+0470 1206
000416 000006 .WORD 6 ; [36$]
000420 000000 .WORD 0 ; [35$]
000422 000006 .WORD 6 ; [36$]
000424 000006 .WORD 6 ; [36$]
000426 000006 .WORD 6 ; [36$]
000430 000006 .WORD 6 ; [36$]
000432 000006 .WORD 6 ; [36$]
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 46
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (15)
; 1220 routine PARAMETER_NUMBER (CCB) : NMX_LKG_CCB =
; 1221
; 1222 !++
; 1223 ! FUNCTIONAL DESCRIPTION:
; 1224 !
; 1225 ! Get the number of the parameter being set/cleared
; 1226 !
; 1227 ! FORMAL PARAMETERS:
; 1228 !
; 1229 ! None
; 1230 !
; 1231 ! IMPLICIT INPUTS:
; 1232 !
; 1233 ! None
; 1234 !
; 1235 ! IMPLICIT OUTPUTS:
; 1236 !
; 1237 ! None
; 1238 !
; 1239 ! ROUTINE VALUE:
; 1240 !
; 1241 ! None
; 1242 !
; 1243 ! SIDE EFFECTS:
; 1244 !
; 1245 ! None
; 1246 !--
; 1247
; 1248 begin
; 1249
; 1250 map
; 1251 CCB : ref NMX_CCB_BLOCK;
; 1252
; 1253 stacklocal
; 1254 PARNUM,
; 1255 SAVE_MAP;
; 1256
; 1257 PARNUM = -1;
; 1258 SMAP$ (SAVE_MAP);
; 1259
; 1260 if .CCB [C_CNT] gtr 0
; 1261 then
; 1262 begin
; 1263
; 1264 local
; 1265 PTR;
; 1266
; 1267 MAP$ (.CCB [C_BIAS]);
; 1268 PTR = .CCB [C_ADDR];
; 1269 byt$string_short (PTR, PARNUM);
; 1270 end;
; 1271
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 47
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (15)
; 1272 MAP$ (.SAVE_MAP);
; 1273 .PARNUM
; 1274 end; !of PARAMETER_NUMBER
.SBTTL PARAMETER.NUMBER
002234 .PSECT $CODE$, RO
000000 012746 177777 PARAMETER.NUMBER:
MOV #-1,-(SP) ; *,PARNUM 1257
000004 016746 000000G MOV KISAR6,-(SP) ; *,SAVE.MAP 1258
000010 005764 000022 TST 22(R4) ; *(CCB) 1260
000014 003411 BLE 1$
000016 016467 000016 000000G MOV 16(R4),KISAR6 ; *(CCB),* 1267
000024 016400 000020 MOV 20(R4),R0 ; *(CCB),PTR 1268
000030 112066 000002 MOVB (R0)+,2(SP) ; PTR,PARNUM 1269
000034 112066 000003 MOVB (R0)+,3(SP) ; PTR,PARNUM+1
000040 011667 000000G 1$: MOV (SP),KISAR6 ; SAVE.MAP,* 1272
000044 016600 000002 MOV 2(SP),R0 ; PARNUM,* 1273
000050 022626 CMP (SP)+,(SP)+ ; 1220
000052 000207 RTS PC
; Routine Size: 22 words, Routine Base: $CODE$ + 2234
; Maximum stack depth per invocation: 2 words
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 48
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (16)
; 1275 routine REQUEST_COMPLETE (CCB) : NMX_LKG_CCB novalue =
; 1276
; 1277 !++
; 1278 ! FUNCTIONAL DESCRIPTION:
; 1279 !
; 1280 ! Process function completion
; 1281 !
; 1282 ! FORMAL PARAMETERS:
; 1283 !
; 1284 ! CCB - The CCB to us
; 1285 !
; 1286 ! IMPLICIT INPUTS:
; 1287 !
; 1288 ! None
; 1289 !
; 1290 ! IMPLICIT OUTPUTS:
; 1291 !
; 1292 ! None
; 1293 !
; 1294 ! ROUTINE VALUE:
; 1295 !
; 1296 ! None
; 1297 !
; 1298 ! SIDE EFFECTS:
; 1299 !
; 1300 ! None
; 1301 !--
; 1302
; 1303 begin
; 1304
; 1305 map
; 1306 CCB : ref NMX_CCB_BLOCK;
; 1307
; L 1308 if .CCB [C_STS] neq $NM$_SUC then CCB [C_NMX_STATE] = ST$DON;
; %PRINT: Function Completed Successfuly
; 1309
; 1310 !
; 1311 ! Update buffer ptr/cnt for returned data
; 1312 !
; 1313 case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
; 1314 set
; 1315 [NMX$FNC_sho, NMX$FNC_szc] :
; 1316 begin
; 1317 bind
; 1318 IOP = .CCB [C_NMX_IOP] : NMX_IOP_BLOCK;
; 1319 CCB [C_NMX_CNT] = .CCB [C_NMX_CNT] + .CCB [C_CNT];
; 1320 CCB [C_ADDR] = ch$plus (.CCB [C_ADDR], .CCB [C_CNT]);
; 1321 CCB [C_CNT] = .IOP [I_NMX_CNT] - .CCB [C_NMX_CNT];
; 1322 end;
; 1323 [NMX$FNC_ret] :
; 1324 begin
; 1325 bind
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 49
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (16)
; 1326 IOP = .CCB [C_NMX_IOP] : NMX_IOP_BLOCK,
; 1327 NMPAR = .CCB [C_NM_NMPAR] : block field (NMX_NMPAR_FIELDS);
; 1328 CCB [C_NMX_CNT] = .CCB [C_CNT];
; 1329 NMPAR [NMX_NMPAR_RETURN_CNT] = .CCB [C_CNT];
; 1330 CCB [C_ADDR] = .IOP [I_NMX_ADDR]; ! TEMPORARY for XPT
; 1331 CCB [C_CNT] = .IOP [I_NMX_CNT];
; 1332 end;
; 1333 [inrange] :
; 1334 0;
; 1335 tes;
; 1336
; 1337 end;
.SBTTL REQUEST.COMPLETE
000000 004167 000000G REQUEST.COMPLETE:
JSR R1,$SAVE2 ; 1275
000004 026427 000014 000001 CMP 14(R4),#1 ; *(CCB),* 1308
000012 001402 BEQ 1$
000014 005064 000032 CLR 32(R4) ; *(CCB)
000020 116400 000024 1$: MOVB 24(R4),R0 ; *(CCB),* 1313
000024 006200 ASR R0
000026 042700 177600 BIC #177600,R0
000032 005300 DEC R0
000034 006300 ASL R0
000036 066007 000434' ADD P.AAW(R0),PC ; Case dispatch
000042 016400 000034 2$: MOV 34(R4),R0 ; *(CCB),* 1316
000046 012701 000022 MOV #22,R1 ; 1319
000052 060401 ADD R4,R1 ; CCB,*
000054 061164 000030 ADD (R1),30(R4) ; *,*(CCB)
000060 061164 000020 ADD (R1),20(R4) ; *,*(CCB) 1320
000064 016002 000030 MOV 30(R0),R2 ; 1321
000070 166402 000030 SUB 30(R4),R2 ; *(CCB),*
000074 010211 MOV R2,(R1)
000076 000207 RTS PC ; 1313
000100 016401 000034 3$: MOV 34(R4),R1 ; *(CCB),* 1324
000104 016400 000026 MOV 26(R4),R0 ; *(CCB),*
000110 012702 000022 MOV #22,R2 ; 1328
000114 060402 ADD R4,R2 ; CCB,*
000116 011264 000030 MOV (R2),30(R4) ; *,*(CCB)
000122 011260 000004 MOV (R2),4(R0) ; 1329
000126 016164 000026 000020 MOV 26(R1),20(R4) ; *,*(CCB) 1330
000134 016112 000030 MOV 30(R1),(R2) ; 1331
000140 000207 4$: RTS PC ; 1275
; Routine Size: 49 words, Routine Base: $CODE$ + 2310
; Maximum stack depth per invocation: 4 words
000434 .PSECT $PLIT$, RO , D
P.AAW: ; CASE Table for REQUEST.COMPLET+0036 1313
000434 000076 .WORD 76 ; [4$]
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 50
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (16)
000436 000076 .WORD 76 ; [4$]
000440 000076 .WORD 76 ; [4$]
000442 000000 .WORD 0 ; [2$]
000444 000000 .WORD 0 ; [2$]
000446 000036 .WORD 36 ; [3$]
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 51
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (17)
; 1338 routine SET_PARAMETER_NUMBER (CCB; VALUE) : NMX_LKG_CCB__VAL =
; 1339
; 1340 !++
; 1341 ! FUNCTIONAL DESCRIPTION:
; 1342 !
; 1343 ! Get the number of the parameter being set/cleared
; 1344 !
; 1345 ! FORMAL PARAMETERS:
; 1346 !
; 1347 ! None
; 1348 !
; 1349 ! IMPLICIT INPUTS:
; 1350 !
; 1351 ! None
; 1352 !
; 1353 ! IMPLICIT OUTPUTS:
; 1354 !
; 1355 ! None
; 1356 !
; 1357 ! ROUTINE VALUE:
; 1358 !
; 1359 ! None
; 1360 !
; 1361 ! SIDE EFFECTS:
; 1362 !
; 1363 ! None
; 1364 !--
; 1365
; 1366 begin
; 1367
; 1368 map
; 1369 CCB : ref NMX_CCB_BLOCK;
; 1370
; 1371 macro
; M 1372 $return =
; M 1373 begin
; M 1374 MAP$ (.SAVE_MAP);
; M 1375 return .PARNUM
; 1376 end %;
; 1377
; 1378 stacklocal
; 1379 PARNUM,
; 1380 SAVE_MAP;
; 1381
; 1382 PARNUM = -1;
; 1383 SMAP$ (SAVE_MAP);
; 1384
; 1385 if .CCB [C_NM_FUNC] neq NMX$FNC_set then $return;
; 1386
; L 1387 if .CCB [C_STS] neq $NM$_SUC then $return;
; %PRINT: Function Completed Successfuly
; 1388
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 52
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (17)
; 1389 if .CCB [C_CNT] eql 0 then $return;
; 1390
; 1391 begin
; 1392
; 1393 local
; 1394 PTR;
; 1395
; 1396 MAP$ (.CCB [C_BIAS]);
; 1397 PTR = .CCB [C_ADDR];
; 1398 byt$string_short (PTR, PARNUM);
; 1399 byt$string_short (PTR, VALUE);
; 1400 end;
; 1401 MAP$ (.SAVE_MAP);
; 1402 .PARNUM
; 1403 end; !of SET_PARAMETER_NUMBER
.SBTTL SET.PARAMETER.NUMBER
002452 .PSECT $CODE$, RO
000000 162706 000006 SET.PARAMETER.NUMBER:
SUB #6,SP ; 1338
000004 012766 177777 000004 MOV #-1,4(SP) ; *,PARNUM 1382
000012 016766 000000G 000002 MOV KISAR6,2(SP) ; *,SAVE.MAP 1383
000020 116400 000024 MOVB 24(R4),R0 ; *(CCB),* 1385
000024 042700 177401 BIC #177401,R0
000030 020027 000002 CMP R0,#2
000034 001023 BNE 1$
000036 026427 000014 000001 CMP 14(R4),#1 ; *(CCB),* 1387
000044 001017 BNE 1$
000046 005764 000022 TST 22(R4) ; *(CCB) 1389
000052 001414 BEQ 1$
000054 016467 000016 000000G MOV 16(R4),KISAR6 ; *(CCB),* 1396
000062 016400 000020 MOV 20(R4),R0 ; *(CCB),PTR 1397
000066 112066 000004 MOVB (R0)+,4(SP) ; PTR,PARNUM 1398
000072 112066 000005 MOVB (R0)+,5(SP) ; PTR,PARNUM+1
000076 112016 MOVB (R0)+,(SP) ; PTR,VALUE 1399
000100 112066 000001 MOVB (R0)+,1(SP) ; PTR,VALUE+1
000104 016667 000002 000000G 1$: MOV 2(SP),KISAR6 ; SAVE.MAP,* 1401
000112 016600 000004 MOV 4(SP),R0 ; PARNUM,* 1402
000116 012601 MOV (SP)+,R1 ; VALUE,* 1338
000120 022626 CMP (SP)+,(SP)+
000122 000207 RTS PC
; Routine Size: 42 words, Routine Base: $CODE$ + 2452
; Maximum stack depth per invocation: 3 words
; 1404
; 1405 end
; 1406
; 1407 eludom
NMXCCE 25-Jan-1983 09:25:47 TOPS-20 Bliss-16 3(552) Page 53
X01070 3-Jan-1983 18:44:59 NETPKG:<NMX>NMXCCE.BLI.8 (17)
; OTS external references
.GLOBL $SAVE5, $SAVE2, BL$EQL
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $CODE$ 703 RO , I , LCL, REL, CON
; $PLIT$ 148 RO , D , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<MCB>XPORTX.L16.15 599 3 0 0
; NETPKG:<MCB>MCBLIB.L16.15 372 30 8 0
; NETPKG:<NMX>NMXPAR.L16.30 968 136 14 0
; NETPKG:<MCB>NMXLIB.L16.13 200 45 22 0
; 1408 ! Local Modes:
; 1409 ! Comment Column:36
; 1410 ! Comment Start:!
; 1411 ! Mode:BLISS
; 1412 ! Auto Save Mode:2
; 1413 ! End:
; Size: 703 code + 148 data words
; Run Time: 00:14.8
; Elapsed Time: 00:48.6
; Memory Used: 59 pages
; Compilation Complete