Trailing-Edge
-
PDP-10 Archives
-
BB-R595B-SM_11-9-85
-
mcb/sc/sc1.lst
There is 1 other file named sc1.lst in the archive. Click here to see a list.
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 1
30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (1)
; 0001 module SC1 ( ! Network Management stuff
; 0002 ident = 'X01260'
; 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 !++
; 0029 ! FACILITY: Session Control
; 0030 !
; 0031 ! ABSTRACT: This is the Network Management module for the MCB
; 0032 ! implementation of Session Control.
; 0033 !
; 0034 ! ENVIRONMENT: MCB
; 0035 !
; 0036 ! AUTHOR: Buren Hoffman CREATION DATE: 20-Nov-80
; 0037 !
; 0038 ! MODIFIED BY:
; 0039 ! X01010 Made this module an extension process.
; 0040 ! X01020 Use new Comm/Exec to process linkage (.CRDAT for database)
; 0041 ! X01030 Added event logging module NM_SIG
; 0042 ! X01040 Added new entry (NM_NOD) to allow outside modules to
; 0043 ! ascertain node name to number mappings.
; 0044 ! X01050 Updated to use library calls, instead of requires.
; 0045 ! X01060 Fix in node location code.
; 0046 ! X01070 Changed SC state representations to same as NM usage.
; 0047 ! X01080 Fixed state checking bug.
; 0048 ! X01090 Modified node search to default to local node when null
; 0049 ! node spec is given.
; 0050 ! X01100 Fixed error reporting in "show-node-characteristics"
; 0051 ! X01110 Mapping bug in SHOW_NODE_ITEMS fixed.
; 0052 ! X01120 Fixed reporting in show_nodes stuff
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 2
X01260 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (1)
; 0053 ! X01130 Repaired mapping bug in RETURN_NODE_LIST.
; 0054 ! X01140 Utilize "paranoid" conditional for some checking, and
; 0055 ! fixed case-shift bug in node-name selection.
; 0056 ! X01150 Optimization work
; 0057 ! X01160 Fixed mapping bug in SHOW_NODE_ITEMS
; 0058 ! X01170 Added Host-Node-ID processing, and put in
; 0059 ! abbreviated reporting on Return-Nodes function
; 0060 ! x01180 Ron Platukis 17-nov-81
; 0061 ! -fix code for parmeter 400 and 501 support.
; 0062 ! x01190 Ron Platukis 8-dec-81
; 0063 ! -allow setting of a node name if it already exists.
; 0064 ! x01200 Alan Peckham 14-apr-82
; 0065 ! -Optimize code.
; 0066 ! -Change RETURN_NODE_LIST functionality for new NMX.
; 0067 ! This fixes the duplicate node names and makes sure
; 0068 ! that the entries are in order.
; 0069 ! -Fix Loop node support.
; 0070 ! -Support change in NMT data base (SCPRM changed).
; 0071 ! x01210 Alan Peckham 14-apr-82
; 0072 ! -Fix bug which displays invalid EXECUTOR STATE.
; 0073 ! x01220 Alan Peckham 2-may-82
; 0074 ! -Change buffer overflow code to $NM$ERR_REE
; 0075 ! in RETURN_NODE_LIST
; 0076 ! x01230 Alan Peckham 22-may-82
; 0077 ! -Fix to not display CLEARed parameters.
; 0078 ! -Do some range checking on received parameter values.
; 0079 ! x01240 Alan Peckham 26-may-82
; 0080 ! -Fix INSERT_NODE bug which did not maintain space left
; 0081 ! x01250 Alan Peckham 1-oct-82
; 0082 ! -Fix CLEAR_NODE_PARMS to handle CLEAR ALL case.
; 0083 ! -Fix SET_NODE_PARMS to respond to SET ALL with $NM$ERR_OPF.
; 0084 ! x01260 Alan Peckham 12-oct-82
; 0085 ! -Fix mapping bug introduced by edit #25.
; 0086 !--
; 0087
; 0088
; 0089
; 0090 !
; 0091 ! REQUIRED FILES
; 0092 !
; 0093 library 'SCPRM'; ! Our parameter and macro definitions
; 0094 library 'MCB:MCBLIB';
; 0095 library 'MCB:NMXLIB';
; 0096 library 'MCB:XPORTX';
; 0097
; 0098 require 'NSP:NSINFO';
; 0210
; 0211 !
; 0212 ! TABLE OF CONTENTS:
; 0213 !
; 0214 linkage
; 0215 SC_LKG_CCB = jsr (register = 4),
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 3
X01260 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (1)
; 0216 SC_LKG_CCB_PTR_LNG = jsr (register = 4, register = 1, register = 0),
; 0217 SC_LKG_LEN_PTR = jsr (register = 1, register = 2),
; 0218 SC_LKG_NMT_CCB = jsr (register = 1, register = 4),
; 0219 SC_LKG_PTR = jsr (register = 3),
; 0220 SC_LKG_SCDB_NMT_CCB = jsr (register = 5, register = 1, register = 4);
; 0221
; 0222 forward routine
; 0223 NM_EXT: call$ novalue,
; 0224 NM_NOD: call$ novalue,
; 0225 NM_SIG: call$ novalue,
; 0226
; 0227 CLEAR_NODE_PARMS : SC_LKG_CCB,
; 0228 CLEAR_EXECUTOR_INCOMING_TIMER : SC_LKG_SCDB_NMT_CCB,
; 0229 CLEAR_EXECUTOR_OUTGOING_TIMER : SC_LKG_SCDB_NMT_CCB,
; 0230 CLEAR_NODE_CIRCUIT : SC_LKG_SCDB_NMT_CCB,
; 0231 CLEAR_NODE_NAME : SC_LKG_SCDB_NMT_CCB,
; 0232 SET_NODE_PARMS : SC_LKG_CCB,
; 0233 SHOW_NODE_ITEMS : SC_LKG_CCB,
; 0234 RETURN_NODE_LIST : SC_LKG_CCB,
; 0235 SHOW_CIRCUIT_ITEMS : SC_LKG_CCB,
; 0236 CASE_SHIFT : SC_LKG_LEN_PTR novalue,
; 0237 GET_NODE : SC_LKG_PTR,
; 0238 INSERT_NODE : SC_LKG_NMT_CCB novalue,
; 0239 MAKE_ROOM : SC_LKG_CCB_PTR_LNG novalue;
; 0240
; 0241 !
; 0242 ! MACROS:
; 0243 !
; 0244 macro
; M 0245 RAD50 (STR) =
; 0246 %if %bliss (bliss36) %then %rad50_10 STR %else %rad50_11 STR %fi %;
; 0247
; 0248 !
; 0249 ! EQUATED SYMBOLS:
; 0250 !
; 0251
; 0252 !
; 0253 ! OWN STORAGE:
; 0254 !
; 0255 $MCB_PROCESS (NAME = SC1);
; 0256
; 0257 !
; 0258 ! EXTERNAL REFERENCES:
; 0259 !
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 4
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (2)
; 0260 %sbttl 'Network Management'
; 0261 global routine NM_EXT (CCB): call$ novalue =
; 0262
; 0263 !++
; 0264 ! FUNCTIONAL DESCRIPTION:
; 0265 ! This routine is activated by a control request from
; 0266 ! Network Management.
; 0267 !
; 0268 ! FORMAL PARAMETERS:
; 0269 ! CCB CCB to pass to handler routine
; 0270 !
; 0271 ! IMPLICIT INPUTS:
; 0272 ! CCB Contents
; 0273 !
; 0274 ! IMPLICIT OUTPUTS:
; 0275 ! None
; 0276 !
; 0277 ! ROUTINE VALUE:
; 0278 ! COMPLETION CODES:
; 0279 ! None
; 0280 !
; 0281 ! SIDE EFFECTS:
; 0282 ! None
; 0283 !--
; 0284 begin
; 0285 map CCB: ref block field (C_NM_FIELDS);
; 0286 local
; 0287 STATUS;
; 0288
; 0289 STATUS =
; 0290 begin
; 0291 if .CCB [C_MOD] neq FM_NM
; 0292 then $NM$ERR_MPE
; 0293 else
; 0294 begin
; 0295 case .CCB [C_NM_ENTITY] from NMX$ENT_lo to NMX$ENT_hi of
; 0296 set
; 0297 [NMX$ENT_nod]: ! NM fnc for node parameter
; 0298 begin
; 0299 case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
; 0300 set ! *** NODE ***
; 0301 [NMX$FNC_set]:
; 0302 SET_NODE_PARMS (.CCB); ! Set parameters
; 0303 [NMX$FNC_clr]:
; 0304 CLEAR_NODE_PARMS (.CCB); ! Clear parameters
; 0305 [NMX$FNC_sho]:
; 0306 SHOW_NODE_ITEMS (.CCB); ! Show selected items
; 0307 [NMX$FNC_ret]:
; 0308 RETURN_NODE_LIST (.CCB); ! Return selected items
; 0309 [inrange, outrange]:
; 0310 $NM$ERR_MPE;
; 0311 tes
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 5
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (2)
; 0312 end;
; 0313
; 0314 [NMX$ENT_ckt]: ! NM function for circuit parameter
; 0315 begin
; 0316 case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
; 0317 set ! *** CIRCUIT ***
; 0318 [NMX$FNC_sho]:
; 0319 SHOW_CIRCUIT_ITEMS (.CCB); ! Show selected items
; 0320 [inrange, outrange]:
; 0321 $NM$ERR_MPE;
; 0322 tes
; 0323 end;
; 0324
; 0325 [inrange, outrange]:
; 0326 $NM$ERR_MPE;
; 0327 tes
; 0328 end
; 0329 end;
; 0330
; 0331 if .STATUS neq 0 then $SC_DO_CCP (.CCB, .STATUS)
; 0332 end;
.TITLE SC1
.IDENT /X01260/
000000 .PSECT ......, D
000000 073527 HEADER: .RAD50 /SC1/
000002 000403 .WORD 403
000004 000000 .WORD 0
000006 000000 .WORD 0
000010 000000 .WORD 0
000012 000000G .WORD .DSPCR
000014 000000G .WORD .DSPCR
000016 000000G .WORD .DSPCR
000020 000000G .WORD MCB$V0
000022 000000G .WORD MCB$V1
000024 140310 .WORD 140310
000026 143716 .WORD 143716
000030 001400 .WORD 1400
000032 000000 .WORD 0
000034 000000 .WORD 0
000036 000000 .WORD 0
.GLOBL .DSPCR, MCB$V0, MCB$V1, $SCHED
.SBTTL NM.EXT Network Management
000000 .PSECT $CODE$, RO
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 6
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (2)
000000 016504 000002 NM.EXT::MOV 2(R5),R4 ; CCB(.AP.),* 0291
000004 126427 000013 000006 CMPB 13(R4),#6
000012 001063 BNE 9$ ; 0290
000014 012700 000024 MOV #24,R0 ; 0295
000020 060400 ADD R4,R0
000022 011001 MOV (R0),R1 ; 0294
000024 072127 177770 ASH #-10,R1
000030 042701 177760 BIC #177760,R1
000034 005301 DEC R1
000036 020127 000004 CMP R1,#4
000042 101047 BHI 9$
000044 006301 ASL R1
000046 066107 000000' ADD P.AAA(R1),PC ; Case dispatch
000052 000443 1$: BR 9$
000054 111000 2$: MOVB (R0),R0 ; 0298
000056 006200 ASR R0
000060 042700 177600 BIC #177600,R0
000064 005300 DEC R0
000066 020027 000005 CMP R0,#5
000072 101033 BHI 9$
000074 006300 ASL R0
000076 066007 000012' ADD P.AAB(R0),PC ; Case dispatch
000102 000427 3$: BR 9$
000104 004767 000000V 4$: JSR PC,SET.NODE.PARMS ; 0302
000110 000431 BR 11$ ; 0298
000112 004767 000000V 5$: JSR PC,CLEAR.NODE.PARMS ; 0304
000116 000426 BR 11$ ; 0298
000120 004767 000000V 6$: JSR PC,SHOW.NODE.ITEMS ; 0306
000124 000423 BR 11$ ; 0298
000126 004767 000000V 7$: JSR PC,RETURN.NODE.LIST ; 0308
000132 000420 BR 11$ ; 0294
000134 111000 8$: MOVB (R0),R0 ; 0315
000136 006200 ASR R0
000140 042700 177600 BIC #177600,R0
000144 005300 DEC R0
000146 020027 000005 CMP R0,#5
000152 101003 BHI 9$
000154 006300 ASL R0
000156 066007 000026' ADD P.AAC(R0),PC ; Case dispatch
000162 012700 177773 9$: MOV #-5,R0 ; *,STATUS
000166 000403 BR 12$
000170 004767 000000V 10$: JSR PC,SHOW.CIRCUIT.ITEMS ; 0319
000174 005700 11$: TST R0 ; STATUS 0331
000176 001407 12$: BEQ 13$
000200 112764 000022 000012 MOVB #22,12(R4)
000206 010064 000014 MOV R0,14(R4) ; STATUS,*
000212 004767 000000G JSR PC,$SCHED
000216 000207 13$: RTS PC ; 0261
; Routine Size: 72 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 1 word
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 7
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (2)
000000 .PSECT $PLIT$, RO , D
P.AAA: ; CASE Table for NM.EXT+0046 0294
000000 000002 .WORD 2 ; [2$]
000002 000110 .WORD 110 ; [9$]
000004 000110 .WORD 110 ; [9$]
000006 000062 .WORD 62 ; [8$]
000010 000110 .WORD 110 ; [9$]
P.AAB: ; CASE Table for NM.EXT+0076 0298
000012 000002 .WORD 2 ; [4$]
000014 000010 .WORD 10 ; [5$]
000016 000060 .WORD 60 ; [9$]
000020 000016 .WORD 16 ; [6$]
000022 000060 .WORD 60 ; [9$]
000024 000024 .WORD 24 ; [7$]
P.AAC: ; CASE Table for NM.EXT+0156 0315
000026 000000 .WORD 0 ; [9$]
000030 000000 .WORD 0 ; [9$]
000032 000000 .WORD 0 ; [9$]
000034 000006 .WORD 6 ; [10$]
000036 000000 .WORD 0 ; [9$]
000040 000000 .WORD 0 ; [9$]
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 8
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (3)
; 0333 global routine NM_NOD (NODE_ID_PTR): call$ novalue =
; 0334
; 0335 !++
; 0336 ! FUNCTIONAL DESCRIPTION:
; 0337 ! Map from node address to node name, or vice versa.
; 0338 !
; 0339 ! FORMAL PARAMETERS:
; 0340 ! NODE_ID_PTR
; 0341 ! Node ID block pointer. The block is to
; 0342 ! contain space for:
; 0343 ! Node address (2 bytes)
; 0344 ! Node name (I-6)
; 0345 ! specifying either one of the parameters.
; 0346 !
; 0347 ! IMPLICIT INPUTS:
; 0348 ! None
; 0349 !
; 0350 ! IMPLICIT OUTPUTS:
; 0351 ! The missing field in the node ID block will be filled in.
; 0352 ! If the node is unknown, a -1 node address is returned.
; 0353 !
; 0354 ! ROUTINE VALUE:
; 0355 ! COMPLETION CODES:
; 0356 ! None
; 0357 !
; 0358 ! SIDE EFFECTS:
; 0359 ! None
; 0360 !--
; 0361 begin
; 0362 $sc_get_data_base (SCDB);
; 0363 local
; 0364 SAVE_MAP,
; 0365 PTR,
; 0366 NMT: ref block field (NMT_FIELDS);
; 0367
; 0368 SMAP$ (SAVE_MAP);
; 0369 PTR = .NODE_ID_PTR;
; 0370
; 0371 if (NMT = GET_NODE (.PTR)) neqa 0
; 0372 then
; 0373 begin
; 0374 local
; 0375 NAML;
; 0376
; 0377 byt$short_string (NMT [NMT_ADDR], PTR);
; 0378 NAML = .NMT [NMT_NAML];
; 0379 ch$wchar_a (.NAML, PTR);
; 0380 ch$move (.NAML, byt$ptr (NMT [NMT_NAME]), .PTR);
; 0381 end
; 0382 else
; 0383 begin
; 0384 ch$wchar_a (-1, PTR);
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 9
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (3)
; 0385 ch$wchar_a (-1, PTR);
; 0386 end;
; 0387
; 0388 MAP$ (.SAVE_MAP)
; 0389 end;
.GLOBL .CRDAT, KISAR6
.SBTTL NM.NOD Network Management
000220 .PSECT $CODE$, RO
000000 016701 000000G NM.NOD::MOV KISAR6,R1 ; *,SAVE.MAP 0368
000004 016503 000002 MOV 2(R5),R3 ; NODE.ID.PTR(.AP.),PTR 0369
000010 004767 000000V JSR PC,GET.NODE ; 0371
000014 010005 MOV R0,R5 ; *,NMT
000016 001421 BEQ 1$
000020 016500 000010 MOV 10(R5),R0 ; *(NMT),NUM 0377
000024 110023 MOVB R0,(R3)+ ; NUM,PTR
000026 000300 SWAB R0 ; NUM
000030 110023 MOVB R0,(R3)+ ; NUM,PTR
000032 111500 MOVB (R5),R0 ; NMT,NAML 0378
000034 110023 MOVB R0,(R3)+ ; NAML,PTR 0379
000036 010046 MOV R0,-(SP) ; NAML,* 0380
000040 012746 000001 MOV #1,-(SP)
000044 060516 ADD R5,(SP) ; NMT,*
000046 010346 MOV R3,-(SP) ; PTR,*
000050 004767 000000G JSR PC,BL$MOV
000054 062706 000006 ADD #6,SP ; 0373
000060 000404 BR 2$ ; 0371
000062 112723 000377 1$: MOVB #377,(R3)+ ; *,PTR 0384
000066 112723 000377 MOVB #377,(R3)+ ; *,PTR 0385
000072 010167 000000G 2$: MOV R1,KISAR6 ; SAVE.MAP,* 0388
000076 000207 RTS PC ; 0333
; Routine Size: 32 words, Routine Base: $CODE$ + 0220
; Maximum stack depth per invocation: 4 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 10
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (4)
; 0390 global routine NM_SIG (SIG_TYPE, PRM1, PRM2): call$ novalue =
; 0391
; 0392 !++
; 0393 ! FUNCTIONAL DESCRIPTION:
; 0394 ! This routine is activated by call from another SC routine
; 0395 ! to effect event logging - via Network Management (NMX).
; 0396 !
; 0397 ! FORMAL PARAMETERS:
; 0398 ! SIG_TYPE Signal type identifier
; 0399 ! PRM1 Type-dependent parameter #1
; 0400 ! PRM2 Type-dependent parameter #2
; 0401 !
; 0402 ! IMPLICIT INPUTS:
; 0403 ! None
; 0404 !
; 0405 ! IMPLICIT OUTPUTS:
; 0406 ! NMX is signaled concerning the event
; 0407 !
; 0408 ! ROUTINE VALUE:
; 0409 ! COMPLETION CODES:
; 0410 ! None
; 0411 !
; 0412 ! SIDE EFFECTS:
; 0413 ! None
; 0414 !--
; 0415 begin
; 0416 $sc_get_data_base (SCDB);
; 0417
; 0418 selectone .SIG_TYPE of
; 0419 set
; 0420
; 0421 [0]: ! Node state change
; 0422 ! PRM1 = Reason for state change
; 0423 ! PRM2 = Old state
; 0424
; 0425 begin
; 0426 local NEW_STATE;
; 0427 $NM_LOG_BEGIN ();
; 0428 PARAMETER_C_1 (0, PRM1); ! Reason
; 0429 PARAMETER_C_1 (1, PRM2); ! Old-State
; 0430 NEW_STATE = .SCDB [SCF_STAT];
; 0431 PARAMETER_C_1 (2, NEW_STATE); ! New-State
; 0432 $NM_LOG_END ((2^6 + 0), 0);
; 0433 end;
; 0434
; 0435 [otherwise]:
; 0436 return;
; 0437 tes;
; 0438
; 0439 end;
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 11
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (4)
.GLOBL $NLBEG, $DPC1, $NLEND
.SBTTL NM.SIG Network Management
000000 016701 000002G NM.SIG::MOV .CRDAT+2,R1 ; 0415
000004 016500 000002 MOV 2(R5),R0 ; SIG.TYPE(.AP.),* 0418
000010 001035 BNE 1$
000012 004767 000000G JSR PC,$NLBEG ; 0427
000016 005046 CLR -(SP) ; 0428
000020 116500 000004 MOVB 4(R5),R0 ; PRM1(.AP.),*
000024 004767 000000G JSR PC,$DPC1
000030 012716 000001 MOV #1,(SP) ; 0429
000034 116500 000006 MOVB 6(R5),R0 ; PRM2(.AP.),*
000040 004767 000000G JSR PC,$DPC1
000044 011101 MOV (R1),R1 ; *,NEW.STATE 0430
000046 072127 177770 ASH #-10,R1 ; *,NEW.STATE
000052 042701 177774 BIC #177774,R1 ; *,NEW.STATE
000056 012716 000002 MOV #2,(SP) ; 0431
000062 110100 MOVB R1,R0 ; NEW.STATE,*
000064 004767 000000G JSR PC,$DPC1
000070 012700 000200 MOV #200,R0 ; 0432
000074 005001 CLR R1
000076 004767 000000G JSR PC,$NLEND
000102 005726 TST (SP)+ ; 0425
000104 000207 1$: RTS PC ; 0390
; Routine Size: 35 words, Routine Base: $CODE$ + 0320
; Maximum stack depth per invocation: 2 words
; 0440
; 0441
; 0442
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 12
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (5)
; 0443 routine CLEAR_NODE_PARMS (CCB) : SC_LKG_CCB =
; 0444
; 0445 !++
; 0446 ! FUNCTIONAL DESCRIPTION:
; 0447 ! Perform clearing of specified node parameter.
; 0448 !
; 0449 ! FORMAL PARAMETERS:
; 0450 ! CCB CCB address
; 0451 !
; 0452 ! IMPLICIT INPUTS:
; 0453 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 0454 !
; 0455 ! IMPLICIT OUTPUTS:
; 0456 ! None
; 0457 !
; 0458 ! ROUTINE VALUE:
; 0459 ! Operation status code
; 0460 !
; 0461 ! COMPLETION CODES:
; 0462 ! None
; 0463 !
; 0464 ! SIDE EFFECTS:
; 0465 ! None
; 0466 !--
; 0467 begin
; 0468 $sc_get_data_base (SCDB);
; 0469 map CCB: ref block field (C_NM_FIELDS);
; 0470 bind
; 0471 NMPAR = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS);
; 0472 local
; 0473 NMT : ref block field (NMT_FIELDS);
; 0474
; 0475 if (NMT = GET_NODE (byt$ptr (NMPAR [NMX_NMPAR_ENTITY]))) eqla 0
; 0476 then return $NM$ERR_URC;
; 0477
; 0478 if .CCB [C_CNT] neq 0
; 0479 then
; 0480 begin
; 0481
; 0482 selectone
; 0483 begin
; 0484 local SAVE_MAP,BUF_PTR;
; 0485 stacklocal PARM_NUM;
; 0486 SMAP$(SAVE_MAP);
; 0487 MAP$ (.CCB [C_BIAS]);
; 0488 BUF_PTR = .CCB [C_ADDR];
; 0489 byt$string_short (BUF_PTR, PARM_NUM);
; 0490 MAP$(.SAVE_MAP);
; 0491 .PARM_NUM
; 0492 end
; 0493 of
; 0494 set
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 13
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (5)
; 0495 [500]:
; 0496 CLEAR_NODE_NAME (SCDB [SC_TICK], NMT [NMT_BASE], .CCB);
; 0497 [501]:
; 0498 CLEAR_NODE_CIRCUIT (SCDB [SC_TICK], NMT [NMT_BASE], .CCB);
; 0499 [510]:
; 0500 CLEAR_EXECUTOR_INCOMING_TIMER (SCDB [SC_TICK], NMT [NMT_BASE], .CCB);
; 0501 [511]:
; 0502 CLEAR_EXECUTOR_OUTGOING_TIMER (SCDB [SC_TICK], NMT [NMT_BASE], .CCB);
; 0503 [otherwise]:
; 0504 $NM$ERR_UPT;
; 0505 tes
; 0506
; 0507 end
; 0508 else
; 0509 begin
; 0510 CLEAR_NODE_NAME (SCDB [SC_TICK], NMT [NMT_BASE], .CCB);
; 0511 CLEAR_NODE_CIRCUIT (SCDB [SC_TICK], NMT [NMT_BASE], .CCB);
; 0512 CLEAR_EXECUTOR_INCOMING_TIMER (SCDB [SC_TICK], NMT [NMT_BASE], .CCB);
; 0513 CLEAR_EXECUTOR_OUTGOING_TIMER (SCDB [SC_TICK], NMT [NMT_BASE], .CCB);
; 0514 NM$SUC
; 0515 end
; 0516
; 0517 end;
.SBTTL CLEAR.NODE.PARMS Network Management
000000 004167 000000G CLEAR.NODE.PARMS:
JSR R1,$SAVE5 ; 0443
000004 005746 TST -(SP)
000006 016705 000002G MOV .CRDAT+2,R5 ; 0467
000012 016403 000026 MOV 26(R4),R3 ; *(CCB),* 0475
000016 062703 000004 ADD #4,R3
000022 004767 000000V JSR PC,GET.NODE
000026 010001 MOV R0,R1 ; *,NMT
000030 001003 BNE 1$
000032 012700 177770 MOV #-10,R0 ; 0476
000036 000465 BR 7$
000040 005764 000022 1$: TST 22(R4) ; *(CCB) 0478
000044 001450 BEQ 6$
000046 016703 000000G MOV KISAR6,R3 ; *,SAVE.MAP 0486
000052 016467 000016 000000G MOV 16(R4),KISAR6 ; *(CCB),* 0487
000060 016400 000020 MOV 20(R4),R0 ; *(CCB),BUF.PTR 0488
000064 112016 MOVB (R0)+,(SP) ; BUF.PTR,PARM.NUM 0489
000066 112066 000001 MOVB (R0)+,1(SP) ; BUF.PTR,PARM.NUM+1
000072 010367 000000G MOV R3,KISAR6 ; SAVE.MAP,* 0490
000076 011603 MOV (SP),R3 ; PARM.NUM,* 0491
000100 020327 000764 CMP R3,#764 ; 0482
000104 001003 BNE 2$
000106 004767 000000V JSR PC,CLEAR.NODE.NAME ; 0496
000112 000437 BR 7$ ; 0480
000114 020327 000765 2$: CMP R3,#765 ; 0482
000120 001003 BNE 3$
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 14
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (5)
000122 004767 000000V JSR PC,CLEAR.NODE.CIRCUIT ; 0498
000126 000431 BR 7$ ; 0480
000130 020327 000776 3$: CMP R3,#776 ; 0482
000134 001003 BNE 4$
000136 004767 000000V JSR PC,CLEAR.EXECUTOR.INCOMING.TIMER; 0500
000142 000423 BR 7$ ; 0480
000144 020327 000777 4$: CMP R3,#777 ; 0482
000150 001003 BNE 5$
000152 004767 000000V JSR PC,CLEAR.EXECUTOR.OUTGOING.TIMER; 0502
000156 000415 BR 7$ ; 0480
000160 012700 177772 5$: MOV #-6,R0
000164 000412 BR 7$ ; 0478
000166 004767 000000V 6$: JSR PC,CLEAR.NODE.NAME ; 0510
000172 004767 000000V JSR PC,CLEAR.NODE.CIRCUIT ; 0511
000176 004767 000000V JSR PC,CLEAR.EXECUTOR.INCOMING.TIMER; 0512
000202 004767 000000V JSR PC,CLEAR.EXECUTOR.OUTGOING.TIMER; 0513
000206 012700 000001 MOV #1,R0 ; 0478
000212 005726 7$: TST (SP)+ ; 0443
000214 000207 RTS PC
; Routine Size: 71 words, Routine Base: $CODE$ + 0426
; Maximum stack depth per invocation: 8 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 15
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (6)
; 0518 routine CLEAR_EXECUTOR_INCOMING_TIMER (SCDB, NMT, CCB) : SC_LKG_SCDB_NMT_CCB =
; 0519
; 0520 !++
; 0521 ! FUNCTIONAL DESCRIPTION:
; 0522 ! Clear the incoming timer
; 0523 !
; 0524 ! FORMAL PARAMETERS:
; 0525 ! SCDB SC data base
; 0526 ! NMT NMT address
; 0527 ! CCB CCB address (not needed)
; 0528 !
; 0529 ! IMPLICIT INPUTS:
; 0530 ! None
; 0531 !
; 0532 ! IMPLICIT OUTPUTS:
; 0533 ! None
; 0534 !
; 0535 ! ROUTINE VALUE:
; 0536 ! Operation status code
; 0537 !
; 0538 ! COMPLETION CODES:
; 0539 ! None
; 0540 !
; 0541 ! SIDE EFFECTS:
; 0542 ! None
; 0543 !--
; 0544 begin
; 0545 $sc_get_data_base (SCDB);
; 0546 map CCB: ref block field (C_NM_FIELDS),
; 0547 NMT: ref block field (NMT_FIELDS);
; 0548
; 0549 if .NMT [NMT_ADDR] neq .SCDB [SC_LADDR] then return $NM$ERR_PNA;
; 0550 SCDB [SC_ITIME] = 0;
; 0551 return NM$SUC
; 0552 end;
.SBTTL CLEAR.EXECUTOR.INCOMING.TIMER Network Management
000000 026165 000010 000010 CLEAR.EXECUTOR.INCOMING.TIMER:
CMP 10(R1),10(R5) ; *(NMT),*(SCDB) 0549
000006 001403 BEQ 1$
000010 012700 177752 MOV #-26,R0
000014 000207 RTS PC
000016 005065 000024 1$: CLR 24(R5) ; *(SCDB) 0550
000022 012700 000001 MOV #1,R0 ; 0544
000026 000207 RTS PC ; 0518
; Routine Size: 12 words, Routine Base: $CODE$ + 0644
; Maximum stack depth per invocation: 0 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 16
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (7)
; 0553 routine CLEAR_EXECUTOR_OUTGOING_TIMER (SCDB, NMT, CCB) : SC_LKG_SCDB_NMT_CCB =
; 0554
; 0555 !++
; 0556 ! FUNCTIONAL DESCRIPTION:
; 0557 ! Clear the outgoing timer
; 0558 !
; 0559 ! FORMAL PARAMETERS:
; 0560 ! SCDB SC data base
; 0561 ! NMT NMT address
; 0562 ! CCB CCB address (not needed)
; 0563 !
; 0564 ! IMPLICIT INPUTS:
; 0565 ! None
; 0566 !
; 0567 ! IMPLICIT OUTPUTS:
; 0568 ! None
; 0569 !
; 0570 ! ROUTINE VALUE:
; 0571 ! Operation status code
; 0572 !
; 0573 ! COMPLETION CODES:
; 0574 ! None
; 0575 !
; 0576 ! SIDE EFFECTS:
; 0577 ! None
; 0578 !--
; 0579 begin
; 0580 $sc_get_data_base (SCDB);
; 0581 map CCB: ref block field (C_NM_FIELDS),
; 0582 NMT: ref block field (NMT_FIELDS);
; 0583
; 0584 if .NMT [NMT_ADDR] neq .SCDB [SC_LADDR] then return $NM$ERR_PNA;
; 0585 SCDB [SC_OTIME] = 0;
; 0586 return NM$SUC
; 0587 end;
.SBTTL CLEAR.EXECUTOR.OUTGOING.TIMER Network Management
000000 026165 000010 000010 CLEAR.EXECUTOR.OUTGOING.TIMER:
CMP 10(R1),10(R5) ; *(NMT),*(SCDB) 0584
000006 001403 BEQ 1$
000010 012700 177752 MOV #-26,R0
000014 000207 RTS PC
000016 005065 000026 1$: CLR 26(R5) ; *(SCDB) 0585
000022 012700 000001 MOV #1,R0 ; 0579
000026 000207 RTS PC ; 0553
; Routine Size: 12 words, Routine Base: $CODE$ + 0674
; Maximum stack depth per invocation: 0 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 17
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (8)
; 0588 routine CLEAR_NODE_CIRCUIT (SCDB, NMT, CCB) : SC_LKG_SCDB_NMT_CCB =
; 0589
; 0590 !++
; 0591 ! FUNCTIONAL DESCRIPTION:
; 0592 ! Clear a loop node
; 0593 !
; 0594 ! FORMAL PARAMETERS:
; 0595 ! SCDB SC data base
; 0596 ! NMT NMT address
; 0597 ! CCB CCB address (not needed)
; 0598 !
; 0599 ! IMPLICIT INPUTS:
; 0600 ! None
; 0601 !
; 0602 ! IMPLICIT OUTPUTS:
; 0603 ! None
; 0604 !
; 0605 ! ROUTINE VALUE:
; 0606 ! Operation status code
; 0607 !
; 0608 ! COMPLETION CODES:
; 0609 ! None
; 0610 !
; 0611 ! SIDE EFFECTS:
; 0612 ! None
; 0613 !--
; 0614 begin
; 0615 $sc_get_data_base (SCDB);
; 0616 map CCB: ref block field (C_NM_FIELDS),
; 0617 NMT: ref block field (NMT_FIELDS);
; 0618
; 0619 if .NMT [NMT_ADDR] neq 0 then return $NM$ERR_CWS;
; 0620 NMT [NMT_NAML] = 0;
; 0621 return NM$SUC
; 0622 end;
.SBTTL CLEAR.NODE.CIRCUIT Network Management
000000 005761 000010 CLEAR.NODE.CIRCUIT:
TST 10(R1) ; *(NMT) 0619
000004 001403 BEQ 1$
000006 012700 177765 MOV #-13,R0
000012 000207 RTS PC
000014 105011 1$: CLRB (R1) ; NMT 0620
000016 012700 000001 MOV #1,R0 ; 0614
000022 000207 RTS PC ; 0588
; Routine Size: 10 words, Routine Base: $CODE$ + 0724
; Maximum stack depth per invocation: 0 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 18
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (9)
; 0623 routine CLEAR_NODE_NAME (SCDB, NMT, CCB) : SC_LKG_SCDB_NMT_CCB =
; 0624
; 0625 !++
; 0626 ! FUNCTIONAL DESCRIPTION:
; 0627 ! Clear a node name mapping
; 0628 !
; 0629 ! FORMAL PARAMETERS:
; 0630 ! SCDB SC data base
; 0631 ! NMT NMT address
; 0632 ! CCB CCB address (not needed)
; 0633 !
; 0634 ! IMPLICIT INPUTS:
; 0635 ! None
; 0636 !
; 0637 ! IMPLICIT OUTPUTS:
; 0638 ! None
; 0639 !
; 0640 ! ROUTINE VALUE:
; 0641 ! Operation status code
; 0642 !
; 0643 ! COMPLETION CODES:
; 0644 ! None
; 0645 !
; 0646 ! SIDE EFFECTS:
; 0647 ! None
; 0648 !--
; 0649 begin
; 0650 $sc_get_data_base (SCDB);
; 0651 map CCB: ref block field (C_NM_FIELDS),
; 0652 NMT: ref block field (NMT_FIELDS);
; 0653
; 0654 NMT [NMT_NAML] = 0; ! No name anymore
; 0655 return NM$SUC
; 0656 end;
.SBTTL CLEAR.NODE.NAME Network Management
000000 105011 CLEAR.NODE.NAME:
CLRB (R1) ; NMT 0654
000002 012700 000001 MOV #1,R0 ; 0649
000006 000207 RTS PC ; 0623
; Routine Size: 4 words, Routine Base: $CODE$ + 0750
; Maximum stack depth per invocation: 0 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 19
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (10)
; 0657 routine SET_NODE_PARMS (CCB) : SC_LKG_CCB =
; 0658
; 0659 !++
; 0660 ! FUNCTIONAL DESCRIPTION:
; 0661 ! Perform setting of specified node parameter.
; 0662 !
; 0663 ! FORMAL PARAMETERS:
; 0664 ! CCB CCB address
; 0665 !
; 0666 ! IMPLICIT INPUTS:
; 0667 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 0668 !
; 0669 ! IMPLICIT OUTPUTS:
; 0670 ! None
; 0671 !
; 0672 ! ROUTINE VALUE:
; 0673 ! Operation status code
; 0674 !
; 0675 ! COMPLETION CODES:
; 0676 ! None
; 0677 !
; 0678 ! SIDE EFFECTS:
; 0679 ! None
; 0680 !--
; 0681 begin
; 0682 $sc_get_data_base (SCDB);
; 0683 map CCB: ref block field (C_NM_FIELDS);
; 0684 bind
; 0685 NMPAR = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS);
; 0686 local
; 0687 BUF_PTR,
; 0688 PARM_NUM;
; 0689
; 0690 if .CCB [C_CNT] eql 0
; 0691 then
; 0692 return $NM$ERR_OPF;
; 0693
; 0694 BUF_PTR = .CCB [C_ADDR];
; 0695 MAP$ (.CCB [C_BIAS]);
; 0696 byt$string_short (BUF_PTR, PARM_NUM);
; 0697
; 0698 selectone .PARM_NUM of
; 0699 set
; 0700
; 0701 [0]: ! Set node state
; 0702 begin
; 0703 local
; 0704 STATE,
; 0705 LCCB: ref block field (C_FIELDS);
; 0706
; 0707 STATE = ch$rchar_a (BUF_PTR);
; 0708 selectone .STATE of
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 20
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (10)
; 0709 set
; 0710 [S_ST_ON] :
; 0711 0;
; 0712 [S_ST_OFF, S_ST_SHUT, S_ST_RST] :
; 0713 return $NM$ERR_OPF;
; 0714 [otherwise] :
; 0715 return $NM$ERR_IPV;
; 0716 tes;
; 0717 if .SCDB [SCF_STAT] eql S_ST_ON then return NM$SUC;
; 0718 if not PDVID$ (RAD50 ('NMX'), SCDB [SC_NMPIX]) then SIGNAL_STOP (SC$_NNM);
; 0719 if not PDVID$ (RAD50 ('NSP'), SCDB [SC_NSPIX]) then SIGNAL_STOP (SC$_NNS);
; 0720 SCDB [SC_LLINK] = 0;
; 0721 if not CCBGT$ (LCCB) then return $NM$ERR_REE;
; 0722 LCCB [C_STK] = .CCB;
; 0723 LCCB [C_PIX] = .SCDB [SC_NSPIX];
; 0724 LCCB [C_FNC] = FC_XME; ! Initialize
; 0725 LCCB [C_MOD] = N_XINI; ! NSP
; 0726 $MCB_SCHEDULE_CCB (.LCCB);
; 0727 return 0 ! Special hack so no ccb completion
; 0728 end;
; 0729
; 0730 [141]: ! Define Host Node Address
; 0731 begin
; 0732 local
; 0733 HOST_ADDR;
; 0734 BUF_PTR = byt$ptr (NMPAR [NMX_NMPAR_NODE_ADDRESS]);
; 0735 byt$string_short (BUF_PTR, HOST_ADDR);
; 0736 SCDB [SC_HADDR] = .HOST_ADDR
; 0737 end;
; 0738
; 0739 [500]: ! Set a node name
; 0740 begin
; 0741 local
; 0742 NEW_NAME : vector [byt$allocation(6)],
; 0743 NEW_NAML,
; 0744 NMT : ref block field (NMT_FIELDS);
; 0745
; 0746 byt$string_tiny (BUF_PTR, NEW_NAML);
; 0747 selectone .NEW_NAML of
; 0748 set
; 0749 [1 to 6]:
; 0750 ; ! Valid range
; 0751 [otherwise]:
; 0752 return $NM$ERR_IPV;
; 0753 tes;
; 0754 ch$move (.NEW_NAML, .BUF_PTR, byt$ptr (NEW_NAME));
; 0755 if (NMT = GET_NODE (byt$ptr (NMPAR [NMX_NMPAR_ENTITY]))) eqla 0
; 0756 then return $NM$ERR_URC;
; 0757 if .NMT [NMT_ADDR] eql 0 then return $NM$ERR_CWS;
; 0758 NMT [NMT_NAML] = .NEW_NAML;
; 0759 ch$move (.NEW_NAML, byt$ptr (NEW_NAME), byt$ptr (NMT [NMT_NAME]))
; 0760 end;
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 21
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (10)
; 0761
; 0762 [501]: ! Set circuit for node name
; 0763 begin
; 0764 local
; 0765 CHAN,
; 0766 NMXID,
; 0767 NMT: ref block field (NMT_FIELDS);
; 0768 if GET_NODE (byt$ptr (NMPAR [NMX_NMPAR_ENTITY])) neqa 0
; 0769 then return $NM$ERR_CWS;
; 0770 MAP$ (.CCB [C_BIAS]);
; 0771 NMX$OBTAIN_CIRCUIT_OWNER (.SCDB [SC_NMPIX], .buf_ptr, CHAN, NMXID);
; 0772 MAP$ (.SCDB [SC_NMT_BIAS]);
; 0773 NMT = blockvector [.SCDB [SC_NMT_ADDR], .SCDB [SC_NODES], NMT_BASE; 0, NMT_SIZE];
; 0774
; 0775 decru I from .SCDB [SC_LOOPS] to 1 do
; 0776 begin
; 0777 if .NMT [NMT_NAML] eql 0 ! Find available slot
; 0778 then
; 0779 begin
; 0780 local PTR;
; 0781 PTR = byt$ptr (NMPAR [NMX_NMPAR_NODE_NAME_LENGTH]);
; 0782 NMT [NMT_NAML] = ch$rchar_a (PTR);
; 0783 ch$move (.NMT [NMT_NAML], .PTR, byt$ptr (NMT [NMT_NAME]));
; 0784 NMT [NMT_CHAN] = .CHAN;
; 0785 NMT [NMT_NMXID] = .NMXID;
; 0786 return NM$SUC
; 0787 end;
; 0788
; 0789 NMT = vector [.NMT, NMT_SIZE];
; 0790 end;
; 0791
; 0792 return $NM$ERR_NRE
; 0793 end;
; 0794
; 0795 [510]: ! Set incoming connect timer
; 0796 begin
; 0797 local VALUE;
; 0798 byt$string_short (BUF_PTR, VALUE);
; 0799 selectoneu .VALUE of
; 0800 set
; 0801 [1 to 65535]:
; 0802 SCDB [SC_ITIME] = .VALUE;
; 0803 [otherwise]:
; 0804 return $NM$ERR_IPV;
; 0805 tes;
; 0806 end;
; 0807 [511]: ! Set outgoing connect timer
; 0808 begin
; 0809 local VALUE;
; 0810 byt$string_short (BUF_PTR, VALUE);
; 0811 selectoneu .VALUE of
; 0812 set
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 22
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (10)
; 0813 [1 to 65535]:
; 0814 SCDB [SC_OTIME] = .VALUE;
; 0815 [otherwise]:
; 0816 return $NM$ERR_IPV;
; 0817 tes;
; 0818 end;
; 0819 [otherwise]:
; 0820 return $NM$ERR_UPT;
; 0821
; 0822 tes;
; 0823
; 0824 return NM$SUC
; 0825 end;
.GLOBL P.DTGT, $CALLI, $CCBGT, $NMGID
.GLOBL $CALLP
.SBTTL SET.NODE.PARMS Network Management
000000 004167 000000G SET.NODE.PARMS:
JSR R1,$SAVE5 ; 0657
000004 162706 000026 SUB #26,SP
000010 010401 MOV R4,R1 ; *,CCB
000012 016746 000002G MOV .CRDAT+2,-(SP) ; 0681
000016 012705 000026 MOV #26,R5
000022 060105 ADD R1,R5 ; CCB,*
000024 005761 000022 TST 22(R1) ; *(CCB) 0690
000030 001424 BEQ 1$ ; 0692
000032 016104 000020 MOV 20(R1),R4 ; *(CCB),BUF.PTR 0694
000036 016167 000016 000000G MOV 16(R1),KISAR6 ; *(CCB),* 0695
000044 112466 000020 MOVB (R4)+,20(SP) ; BUF.PTR,PARM.NUM 0696
000050 112466 000021 MOVB (R4)+,21(SP) ; BUF.PTR,PARM.NUM+1
000054 016600 000020 MOV 20(SP),R0 ; PARM.NUM,* 0698
000060 001154 BNE 11$
000062 005000 CLR R0 ; STATE 0707
000064 152400 BISB (R4)+,R0 ; BUF.PTR,STATE
000066 005700 TST R0 ; STATE 0708
000070 001407 BEQ 2$
000072 003574 BLE 14$
000074 020027 000003 CMP R0,#3 ; STATE,*
000100 003176 BGT 17$
000102 012700 177747 1$: MOV #-31,R0 ; 0713
000106 000520 BR 9$
000110 032776 001400 000000 2$: BIT #1400,@0(SP) ; 0717
000116 001553 BEQ 12$
000120 012746 000020 MOV #20,-(SP) ; 0718
000124 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000126 012746 054640 MOV #54640,-(SP)
000132 012746 000002 MOV #2,-(SP)
000136 012746 000000G MOV #P.DTGT,-(SP)
000142 004767 000000G JSR PC,$CALLI
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 23
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (10)
000146 062706 000010 ADD #10,SP
000152 010002 MOV R0,R2 ; *,$MCB$STATUS
000154 006000 ROR R0
000156 103002 BCC 3$
000160 016600 000016 MOV 16(SP),R0 ; $MCB$MY.INDEX,$MCB$HANDLE
000164 010203 3$: MOV R2,R3 ; $MCB$STATUS,$MCB$STATUS
000166 006002 ROR R2 ; $MCB$STATUS
000170 103003 BCC 4$
000172 011602 MOV (SP),R2
000174 110062 000003 MOVB R0,3(R2) ; $MCB$HANDLE,*
000200 032703 000001 4$: BIT #1,R3 ; *,$MCB$STATUS
000204 001007 BNE 5$
000206 012746 100044 MOV #-77734,-(SP)
000212 012746 000001 MOV #1,-(SP)
000216 004767 000000G JSR PC,$STOP
000222 022626 CMP (SP)+,(SP)+
000224 012746 000016 5$: MOV #16,-(SP) ; 0719
000230 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000232 012746 055210 MOV #55210,-(SP)
000236 012746 000002 MOV #2,-(SP)
000242 012746 000000G MOV #P.DTGT,-(SP)
000246 004767 000000G JSR PC,$CALLI
000252 062706 000010 ADD #10,SP
000256 010002 MOV R0,R2 ; *,$MCB$STATUS
000260 006000 ROR R0
000262 103002 BCC 6$
000264 016600 000014 MOV 14(SP),R0 ; $MCB$MY.INDEX,$MCB$HANDLE
000270 010203 6$: MOV R2,R3 ; $MCB$STATUS,$MCB$STATUS
000272 006002 ROR R2 ; $MCB$STATUS
000274 103003 BCC 7$
000276 011602 MOV (SP),R2
000300 110062 000002 MOVB R0,2(R2) ; $MCB$HANDLE,*
000304 032703 000001 7$: BIT #1,R3 ; *,$MCB$STATUS
000310 001007 BNE 8$
000312 012746 100034 MOV #-77744,-(SP)
000316 012746 000001 MOV #1,-(SP)
000322 004767 000000G JSR PC,$STOP
000326 022626 CMP (SP)+,(SP)+
000330 011600 8$: MOV (SP),R0 ; 0720
000332 105060 000005 CLRB 5(R0)
000336 004767 000000G JSR PC,$CCBGT ; 0721
000342 103003 BHIS 10$
000344 012700 177761 MOV #-17,R0
000350 000535 9$: BR 22$
000352 010164 000004 10$: MOV R1,4(R4) ; CCB,*(LCCB) 0722
000356 011600 MOV (SP),R0 ; 0723
000360 116064 000002 000011 MOVB 2(R0),11(R4) ; *,*(LCCB)
000366 112764 000002 000012 MOVB #2,12(R4) ; *,*(LCCB) 0724
000374 112764 000034 000013 MOVB #34,13(R4) ; *,*(LCCB) 0725
000402 004767 000000G JSR PC,$SCHED ; 0726
000406 000167 000564 JMP 34$ ; 0702
000412 020027 000215 11$: CMP R0,#215 ; 0698
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 24
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (10)
000416 001014 BNE 13$
000420 011504 MOV (R5),R4 ; *,BUF.PTR 0734
000422 062704 000004 ADD #4,R4 ; *,BUF.PTR 0735
000426 112466 000012 MOVB (R4)+,12(SP) ; BUF.PTR,HOST.ADDR
000432 112466 000013 MOVB (R4)+,13(SP) ; BUF.PTR,HOST.ADDR+1
000436 011600 MOV (SP),R0 ; 0736
000440 016660 000012 000012 MOV 12(SP),12(R0) ; HOST.ADDR,*
000446 000575 12$: BR 25$ ; 0698
000450 020027 000764 13$: CMP R0,#764
000454 001057 BNE 20$
000456 005002 CLR R2 ; NEW.NAML 0746
000460 152402 BISB (R4)+,R2 ; BUF.PTR,NEW.NAML
000462 005702 TST R2 ; NEW.NAML 0747
000464 003002 14$: BGT 16$
000466 000167 000462 15$: JMP 31$
000472 020227 000006 16$: CMP R2,#6 ; NEW.NAML,*
000476 003373 17$: BGT 15$ ; 0752
000500 010246 MOV R2,-(SP) ; NEW.NAML,* 0754
000502 010446 MOV R4,-(SP) ; BUF.PTR,*
000504 012746 000030 MOV #30,-(SP)
000510 060616 ADD SP,(SP) ; NEW.NAME,*
000512 004767 000000G JSR PC,BL$MOV
000516 011503 MOV (R5),R3 ; 0755
000520 062703 000004 ADD #4,R3
000524 004767 000000V JSR PC,GET.NODE
000530 005700 TST R0 ; NMT
000532 001005 BNE 18$
000534 062706 000006 ADD #6,SP ; 0756
000540 012700 177770 MOV #-10,R0
000544 000546 BR 28$
000546 005760 000010 18$: TST 10(R0) ; *(NMT) 0757
000552 001003 BNE 19$
000554 062706 000006 ADD #6,SP
000560 000427 BR 21$
000562 110210 19$: MOVB R2,(R0) ; NEW.NAML,NMT 0758
000564 010216 MOV R2,(SP) ; NEW.NAML,* 0759
000566 012746 000032 MOV #32,-(SP)
000572 060616 ADD SP,(SP) ; NEW.NAME,*
000574 012746 000001 MOV #1,-(SP)
000600 060016 ADD R0,(SP) ; NMT,*
000602 004767 000000G JSR PC,BL$MOV
000606 062706 000012 ADD #12,SP ; 0740
000612 000566 BR 33$ ; 0698
000614 020027 000765 20$: CMP R0,#765
000620 001121 BNE 29$
000622 011503 MOV (R5),R3 ; 0768
000624 062703 000004 ADD #4,R3
000630 004767 000000V JSR PC,GET.NODE
000634 005700 TST R0
000636 001403 BEQ 23$
000640 012700 177765 21$: MOV #-13,R0 ; 0769
000644 000555 22$: BR 35$
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 25
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (10)
000646 016167 000016 000000G 23$: MOV 16(R1),KISAR6 ; *(CCB),* 0770
000654 012746 000012 MOV #12,-(SP) ; 0771
000660 060616 ADD SP,(SP) ; NMXID,*
000662 012746 000012 MOV #12,-(SP)
000666 060616 ADD SP,(SP) ; CHAN,*
000670 010446 MOV R4,-(SP) ; BUF.PTR,*
000672 012746 002002 MOV #2002,-(SP)
000676 012746 000004 MOV #4,-(SP)
000702 012746 000000G MOV #$NMGID,-(SP)
000706 005046 CLR -(SP)
000710 016600 000016 MOV 16(SP),R0
000714 116016 000003 MOVB 3(R0),(SP)
000720 004767 000000G JSR PC,$CALLP
000724 016600 000016 MOV 16(SP),R0 ; 0772
000730 016067 000050 000000G MOV 50(R0),KISAR6
000736 016003 000020 MOV 20(R0),R3 ; 0773
000742 070327 000014 MUL #14,R3
000746 016600 000016 MOV 16(SP),R0
000752 066003 000052 ADD 52(R0),R3
000756 010301 MOV R3,R1 ; *,NMT
000760 016003 000022 MOV 22(R0),R3 ; *,I 0775
000764 001432 BEQ 27$
000766 105711 24$: TSTB (R1) ; NMT 0777
000770 001025 BNE 26$
000772 011500 MOV (R5),R0 ; *,PTR 0781
000774 062700 000006 ADD #6,R0 ; *,PTR 0782
001000 112011 MOVB (R0)+,(R1) ; PTR,NMT
001002 111102 MOVB (R1),R2 ; NMT,* 0783
001004 010216 MOV R2,(SP)
001006 010046 MOV R0,-(SP) ; PTR,*
001010 012746 000001 MOV #1,-(SP)
001014 060116 ADD R1,(SP) ; NMT,*
001016 004767 000000G JSR PC,BL$MOV
001022 116661 000030 000007 MOVB 30(SP),7(R1) ; CHAN,*(NMT) 0784
001030 016661 000032 000012 MOV 32(SP),12(R1) ; NMXID,*(NMT) 0785
001036 062706 000022 ADD #22,SP ; 0777
001042 000452 25$: BR 33$ ; 0779
001044 062701 000014 26$: ADD #14,R1 ; *,NMT 0789
001050 077332 SOB R3,24$ ; I,* 0000
001052 062706 000016 27$: ADD #16,SP ; 0698
001056 012700 177754 MOV #-24,R0 ; 0763
001062 000446 28$: BR 35$
001064 020027 000776 29$: CMP R0,#776 ; 0698
001070 001013 BNE 30$
001072 112466 000004 MOVB (R4)+,4(SP) ; BUF.PTR,VALUE 0798
001076 112466 000005 MOVB (R4)+,5(SP) ; BUF.PTR,VALUE+1
001102 016600 000004 MOV 4(SP),R0 ; VALUE,* 0799
001106 001422 BEQ 31$
001110 011601 MOV (SP),R1 ; 0802
001112 010061 000024 MOV R0,24(R1)
001116 000424 BR 33$ ; 0799
001120 020027 000777 30$: CMP R0,#777 ; 0698
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 26
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (10)
001124 001016 BNE 32$
001126 112466 000002 MOVB (R4)+,2(SP) ; BUF.PTR,VALUE 0810
001132 112466 000003 MOVB (R4)+,3(SP) ; BUF.PTR,VALUE+1
001136 016600 000002 MOV 2(SP),R0 ; VALUE,* 0811
001142 001404 BEQ 31$
001144 011601 MOV (SP),R1 ; 0814
001146 010061 000026 MOV R0,26(R1)
001152 000406 BR 33$ ; 0811
001154 012700 177760 31$: MOV #-20,R0 ; 0816
001160 000407 BR 35$
001162 012700 177772 32$: MOV #-6,R0 ; 0820
001166 000404 BR 35$
001170 012700 000001 33$: MOV #1,R0 ; 0681
001174 000401 BR 35$
001176 005000 34$: CLR R0 ; 0657
001200 062706 000030 35$: ADD #30,SP
001204 000207 RTS PC
; Routine Size: 323 words, Routine Base: $CODE$ + 0760
; Maximum stack depth per invocation: 28 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 27
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (11)
; 0826 routine SHOW_NODE_ITEMS (CCB) : SC_LKG_CCB =
; 0827
; 0828 !++
; 0829 ! FUNCTIONAL DESCRIPTION:
; 0830 ! Show specified items
; 0831 !
; 0832 ! FORMAL PARAMETERS:
; 0833 ! CCB CCB address
; 0834 !
; 0835 ! IMPLICIT INPUTS:
; 0836 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 0837 !
; 0838 ! IMPLICIT OUTPUTS:
; 0839 ! None
; 0840 !
; 0841 ! ROUTINE VALUE:
; 0842 ! Operation status code
; 0843 !
; 0844 ! COMPLETION CODES:
; 0845 ! None
; 0846 !
; 0847 ! SIDE EFFECTS:
; 0848 ! None
; 0849 !--
; 0850 begin
; 0851 $sc_get_data_base (SCDB);
; 0852 map CCB: ref block field (C_NM_FIELDS);
; 0853 local
; 0854 NMT : ref block field (NMT_FIELDS);
; 0855 bind
; 0856 NMPAR = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS);
; 0857
; 0858 $NM_RESPONSE_BEGIN( .CCB);
; 0859
; 0860 if (NMT = GET_NODE (byt$ptr (NMPAR [NMX_NMPAR_ENTITY]))) neqa 0
; 0861 then
; 0862 selectone .CCB [C_NM_SELECT] of
; 0863 set
; 0864 [NMX$SEL_sum, NMX$SEL_sta]:
; 0865 begin
; 0866 local NEW_STATE;
; 0867 if .NMT [NMT_ADDR] eql .SCDB [SC_LADDR]
; 0868 then
; 0869 begin
; 0870 NEW_STATE = .SCDB[SCF_STAT];
; 0871 PARAMETER_C_1 (0, NEW_STATE);
; 0872 end;
; 0873 if .NMT [NMT_ADDR] eql 0
; 0874 then
; 0875 NMX$PARAMETER_CIRCUIT (.SCDB[SC_NMPIX], .NMT [NMT_NMXID], 501);
; 0876 end;
; 0877 [NMX$SEL_cha]:
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 28
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (11)
; 0878 begin
; 0879 if .NMT [NMT_ADDR] eql 0
; 0880 then
; 0881 NMX$PARAMETER_CIRCUIT (.SCDB[SC_NMPIX], .NMT [NMT_NMXID], 501);
; 0882 if .NMT [NMT_ADDR] eql .SCDB [SC_LADDR]
; 0883 then
; 0884 begin
; 0885 if .SCDB [SC_ITIME] neq 0
; 0886 then PARAMETER_DU_2 (510, SCDB [SC_ITIME]);
; 0887 if .SCDB [SC_OTIME] neq 0
; 0888 then PARAMETER_DU_2 (511, SCDB [SC_OTIME]);
; 0889 end;
; 0890 end;
; 0891 tes;
; 0892
; 0893 $NM_RESPONSE_END( .CCB);
; 0894 return .CCB[C_STS]
; 0895 end;
.GLOBL $NRBEG, $NPNAM, $DPDU2, $NREND
.SBTTL SHOW.NODE.ITEMS Network Management
000000 004167 000000G SHOW.NODE.ITEMS:
JSR R1,$SAVE3 ; 0826
000004 016701 000002G MOV .CRDAT+2,R1 ; 0850
000010 004767 000000G JSR PC,$NRBEG ; 0858
000014 016403 000026 MOV 26(R4),R3 ; *(CCB),* 0860
000020 062703 000004 ADD #4,R3
000024 004767 000000V JSR PC,GET.NODE
000030 010003 MOV R0,R3 ; *,NMT
000032 001527 BEQ 5$
000034 016400 000024 MOV 24(R4),R0 ; *(CCB),* 0862
000040 072027 177764 ASH #-14,R0
000044 042700 177760 BIC #177760,R0
000050 003446 BLE 2$
000052 020027 000002 CMP R0,#2
000056 003043 BGT 2$
000060 026361 000010 000010 CMP 10(R3),10(R1) ; *(NMT),* 0867
000066 001012 BNE 1$
000070 011102 MOV (R1),R2 ; *,NEW.STATE 0870
000072 072227 177770 ASH #-10,R2 ; *,NEW.STATE
000076 042702 177774 BIC #177774,R2 ; *,NEW.STATE
000102 005046 CLR -(SP) ; 0871
000104 110200 MOVB R2,R0 ; NEW.STATE,*
000106 004767 000000G JSR PC,$DPC1
000112 005726 TST (SP)+ ; 0869
000114 005763 000010 1$: TST 10(R3) ; *(NMT) 0873
000120 001074 BNE 5$
000122 012746 000765 MOV #765,-(SP) ; 0875
000126 016346 000012 MOV 12(R3),-(SP) ; *(NMT),*
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 29
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (11)
000132 012746 002000 MOV #2000,-(SP)
000136 012746 000003 MOV #3,-(SP)
000142 012746 000000G MOV #$NPNAM,-(SP)
000146 005046 CLR -(SP)
000150 116116 000003 MOVB 3(R1),(SP)
000154 004767 000000G JSR PC,$CALLP
000160 062706 000014 ADD #14,SP
000164 000452 BR 5$ ; 0862
000166 020027 000003 2$: CMP R0,#3
000172 001047 BNE 5$
000174 016302 000010 MOV 10(R3),R2 ; *(NMT),* 0879
000200 001021 BNE 3$
000202 012746 000765 MOV #765,-(SP) ; 0881
000206 016346 000012 MOV 12(R3),-(SP) ; *(NMT),*
000212 012746 002000 MOV #2000,-(SP)
000216 012746 000003 MOV #3,-(SP)
000222 012746 000000G MOV #$NPNAM,-(SP)
000226 005046 CLR -(SP)
000230 116116 000003 MOVB 3(R1),(SP)
000234 004767 000000G JSR PC,$CALLP
000240 062706 000014 ADD #14,SP
000244 020261 000010 3$: CMP R2,10(R1) ; 0882
000250 001020 BNE 5$
000252 016100 000024 MOV 24(R1),R0 ; 0885
000256 001405 BEQ 4$
000260 012746 000776 MOV #776,-(SP) ; 0886
000264 004767 000000G JSR PC,$DPDU2
000270 005726 TST (SP)+
000272 016100 000026 4$: MOV 26(R1),R0 ; 0887
000276 001405 BEQ 5$
000300 012746 000777 MOV #777,-(SP) ; 0888
000304 004767 000000G JSR PC,$DPDU2
000310 005726 TST (SP)+
000312 004767 000000G 5$: JSR PC,$NREND ; 0893
000316 016400 000014 MOV 14(R4),R0 ; *(CCB),* 0850
000322 000207 RTS PC ; 0826
; Routine Size: 106 words, Routine Base: $CODE$ + 2166
; Maximum stack depth per invocation: 11 words
; 0896
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 30
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (12)
; 0897 routine RETURN_NODE_LIST (CCB) : SC_LKG_CCB =
; 0898
; 0899 !++
; 0900 ! FUNCTIONAL DESCRIPTION:
; 0901 ! Return list of named nodes.
; 0902 !
; 0903 ! FORMAL PARAMETERS:
; 0904 ! CCB CCB address
; 0905 !
; 0906 ! IMPLICIT INPUTS:
; 0907 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 0908 !
; 0909 ! IMPLICIT OUTPUTS:
; 0910 ! None
; 0911 !
; 0912 ! ROUTINE VALUE:
; 0913 ! Operation status code
; 0914 !
; 0915 ! COMPLETION CODES:
; 0916 ! None
; 0917 !
; 0918 ! SIDE EFFECTS:
; 0919 ! None
; 0920 !--
; 0921 begin
; 0922 $sc_get_data_base (SCDB);
; 0923 map CCB: ref block field (C_NM_FIELDS);
; 0924 bind NMPAR = .CCB [C_NM_NMPAR] : block field (NMX_NMPAR_FIELDS);
; 0925 local
; 0926 BUF_SIZ,
; 0927 LEN,
; 0928 PTR,
; 0929 NMT: ref block [NMT_SIZE] field (NMT_FIELDS);
; 0930
; 0931 MAP$ (.SCDB [SC_NMT_BIAS]);
; 0932 CCB [C_STS] = .CCB [C_CNT];
; 0933 CCB [C_CNT] = .NMPAR [NMX_NMPAR_RETURN_CNT];
; 0934 CCB [C_STS] = .CCB [C_STS] - .CCB [C_CNT];
; 0935
; 0936 select .CCB [C_NM_SELECT] of
; 0937 set
; 0938 [NMX$SEL_kno] :
; 0939 begin
; 0940 NMT = .SCDB [SC_NMT_ADDR];
; 0941
; 0942 decru I from .SCDB [SC_NODES] to 1 do
; 0943 begin
; 0944 local NAM_LEN;
; 0945 if (NAM_LEN = .NMT [NMT_NAML]) neq 0
; 0946 then INSERT_NODE (NMT [NMT_BASE], .CCB);
; 0947 NMT = vector [.NMT, NMT_SIZE];
; 0948 end;
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 31
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (12)
; 0949
; 0950 end;
; 0951 [NMX$SEL_kno, NMX$SEL_lop] :
; 0952 begin
; 0953 NMT = blockvector [.SCDB [SC_NMT_ADDR], .SCDB [SC_NODES], 0, 0, 0, 0; 0, NMT_SIZE];
; 0954
; 0955 decru I from .SCDB [SC_LOOPS] to 1 do
; 0956 begin
; 0957 local NAM_LEN;
; 0958 if (NAM_LEN = .NMT [NMT_NAML]) neq 0
; 0959 then INSERT_NODE (NMT [NMT_BASE], .CCB);
; 0960 NMT = vector [.NMT, NMT_SIZE];
; 0961 end;
; 0962
; 0963 end;
; 0964 tes;
; 0965
; 0966 if .CCB [C_STS] geq 0
; 0967 then
; 0968 return NM$SUC
; 0969 else
; 0970 return $NM$ERR_REE
; 0971
; 0972 end;
.SBTTL RETURN.NODE.LIST Network Management
000000 004167 000000G RETURN.NODE.LIST:
JSR R1,$SAVE5 ; 0897
000004 024646 CMP -(SP),-(SP)
000006 016702 000002G MOV .CRDAT+2,R2 ; 0921
000012 016400 000026 MOV 26(R4),R0 ; *(CCB),*
000016 016267 000050 000000G MOV 50(R2),KISAR6 ; 0931
000024 012766 000014 000002 MOV #14,2(SP) ; 0932
000032 060466 000002 ADD R4,2(SP) ; CCB,*
000036 012701 000022 MOV #22,R1
000042 060401 ADD R4,R1 ; CCB,*
000044 011176 000002 MOV (R1),@2(SP)
000050 016011 000004 MOV 4(R0),(R1) ; 0933
000054 161176 000002 SUB (R1),@2(SP) ; 0934
000060 016405 000024 MOV 24(R4),R5 ; *(CCB),* 0936
000064 072527 177764 ASH #-14,R5
000070 042705 177760 BIC #177760,R5
000074 020527 000001 CMP R5,#1
000100 001021 BNE 4$
000102 016216 000052 MOV 52(R2),(SP) ; *,NMT 0940
000106 016203 000020 MOV 20(R2),R3 ; *,I 0942
000112 001411 BEQ 3$
000114 117600 000000 1$: MOVB @0(SP),R0 ; NMT,NAM.LEN 0945
000120 001403 BEQ 2$
000122 011601 MOV (SP),R1 ; NMT,* 0946
000124 004767 000000V JSR PC,INSERT.NODE
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 32
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (12)
000130 062716 000014 2$: ADD #14,(SP) ; *,NMT 0947
000134 077311 SOB R3,1$ ; I,* 0000
000136 020527 000001 3$: CMP R5,#1 ; 0936
000142 001403 BEQ 5$
000144 020527 000003 4$: CMP R5,#3
000150 001023 BNE 8$
000152 016201 000020 5$: MOV 20(R2),R1 ; 0953
000156 070127 000014 MUL #14,R1
000162 066201 000052 ADD 52(R2),R1
000166 010116 MOV R1,(SP) ; *,NMT
000170 016202 000022 MOV 22(R2),R2 ; *,I 0955
000174 001411 BEQ 8$
000176 117600 000000 6$: MOVB @0(SP),R0 ; NMT,NAM.LEN 0958
000202 001403 BEQ 7$
000204 011601 MOV (SP),R1 ; NMT,* 0959
000206 004767 000000V JSR PC,INSERT.NODE
000212 062716 000014 7$: ADD #14,(SP) ; *,NMT 0960
000216 077211 SOB R2,6$ ; I,* 0000
000220 005776 000002 8$: TST @2(SP) ; 0966
000224 002403 BLT 9$
000226 012700 000001 MOV #1,R0
000232 000402 BR 10$
000234 012700 177761 9$: MOV #-17,R0
000240 022626 10$: CMP (SP)+,(SP)+ ; 0897
000242 000207 RTS PC
; Routine Size: 82 words, Routine Base: $CODE$ + 2512
; Maximum stack depth per invocation: 9 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 33
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (13)
; 0973 routine SHOW_CIRCUIT_ITEMS (CCB) : SC_LKG_CCB =
; 0974
; 0975 !++
; 0976 ! FUNCTIONAL DESCRIPTION:
; 0977 ! Show selected circuit items.
; 0978 !
; 0979 ! FORMAL PARAMETERS:
; 0980 ! CCB CCB address
; 0981 !
; 0982 ! IMPLICIT INPUTS:
; 0983 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 0984 !
; 0985 ! IMPLICIT OUTPUTS:
; 0986 ! None
; 0987 !
; 0988 ! ROUTINE VALUE:
; 0989 ! Operation status code
; 0990 !
; 0991 ! COMPLETION CODES:
; 0992 ! None
; 0993 !
; 0994 ! SIDE EFFECTS:
; 0995 ! None
; 0996 !--
; 0997 begin
; 0998 $sc_get_data_base (SCDB);
; 0999 map CCB: ref block field (C_NM_FIELDS);
; 1000 bind
; 1001 NMPAR = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS);
; 1002
; 1003 $NM_RESPONSE_BEGIN (.CCB);
; 1004
; 1005 case .CCB [C_NM_SELECT] from NMX$SEL_lo to NMX$SEL_hi of
; 1006 set
; 1007 [NMX$SEL_sta, NMX$SEL_sum] :
; 1008 begin
; 1009 local
; 1010 CHAN,
; 1011 NMXID,
; 1012 NMT : ref block field (NMT_FIELDS);
; 1013 NMX$OBTAIN_CIRCUIT_OWNER( .SCDB[SC_NMPIX], byt$ptr (NMPAR [NMX_NMPAR_OTHER_LENGTH]), CHAN, NMXID);
; 1014 MAP$ (.SCDB [SC_NMT_BIAS]);
; 1015 NMT = blockvector [.SCDB [SC_NMT_ADDR], .SCDB [SC_NODES], NMT_BASE; 0, NMT_SIZE];
; 1016
; 1017 decru I from .SCDB [SC_LOOPS] to 1 do
; 1018 begin
; 1019 if (.NMT [NMT_NAML] neq 0) and
; 1020 (.NMT [NMT_CHAN] eqlu .CHAN<0, 8>)
; 1021 then
; 1022 begin
; 1023 PARAMETER_AI (400, .NMT [NMT_NAML], byt$ptr (NMT [NMT_NAME]));
; 1024 exitloop;
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 34
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (13)
; 1025 end;
; 1026 NMT = vector [.NMT, NMT_SIZE];
; 1027 end;
; 1028
; 1029 end;
; 1030 [inrange] :
; 1031 0;
; 1032 tes;
; 1033
; 1034 $NM_RESPONSE_END (.CCB);
; 1035 return .CCB [C_STS]
; 1036 end;
.GLOBL $DPAI
.SBTTL SHOW.CIRCUIT.ITEMS Network Management
000000 004167 000000G SHOW.CIRCUIT.ITEMS:
JSR R1,$SAVE3 ; 0973
000004 024646 CMP -(SP),-(SP)
000006 016702 000002G MOV .CRDAT+2,R2 ; 0997
000012 004767 000000G JSR PC,$NRBEG ; 1003
000016 016400 000024 MOV 24(R4),R0 ; *(CCB),* 1005
000022 072027 177764 ASH #-14,R0
000026 042700 177760 BIC #177760,R0
000032 005300 DEC R0
000034 006300 ASL R0
000036 066007 000042' ADD P.AAD(R0),PC ; Case dispatch
000042 012746 000004 1$: MOV #4,-(SP) ; 1013
000046 060616 ADD SP,(SP) ; NMXID,*
000050 012746 000004 MOV #4,-(SP)
000054 060616 ADD SP,(SP) ; CHAN,*
000056 016446 000026 MOV 26(R4),-(SP) ; *(CCB),*
000062 062716 000004 ADD #4,(SP)
000066 012746 002002 MOV #2002,-(SP)
000072 012746 000004 MOV #4,-(SP)
000076 012746 000000G MOV #$NMGID,-(SP)
000102 005046 CLR -(SP)
000104 116216 000003 MOVB 3(R2),(SP)
000110 004767 000000G JSR PC,$CALLP
000114 016267 000050 000000G MOV 50(R2),KISAR6 ; 1014
000122 016201 000020 MOV 20(R2),R1 ; 1015
000126 070127 000014 MUL #14,R1
000132 066201 000052 ADD 52(R2),R1
000136 010103 MOV R1,R3 ; *,NMT
000140 016202 000022 MOV 22(R2),R2 ; *,I 1017
000144 001422 BEQ 4$
000146 105713 2$: TSTB (R3) ; NMT 1019
000150 001415 BEQ 3$
000152 126366 000007 000016 CMPB 7(R3),16(SP) ; *(NMT),CHAN 1020
000160 001011 BNE 3$
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 35
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (13)
000162 012716 000620 MOV #620,(SP) ; 1023
000166 012701 000001 MOV #1,R1
000172 060301 ADD R3,R1 ; NMT,*
000174 111300 MOVB (R3),R0 ; NMT,*
000176 004767 000000G JSR PC,$DPAI
000202 000403 BR 4$ ; 1024
000204 062703 000014 3$: ADD #14,R3 ; *,NMT 1026
000210 077222 SOB R2,2$ ; I,* 0000
000212 062706 000016 4$: ADD #16,SP ; 1008
000216 004767 000000G 5$: JSR PC,$NREND ; 1034
000222 016400 000014 MOV 14(R4),R0 ; *(CCB),* 0997
000226 022626 CMP (SP)+,(SP)+ ; 0973
000230 000207 RTS PC
; Routine Size: 77 words, Routine Base: $CODE$ + 2756
; Maximum stack depth per invocation: 14 words
000042 .PSECT $PLIT$, RO , D
P.AAD: ; CASE Table for SHOW.CIRCUIT.IT+0036 1005
000042 000000 .WORD 0 ; [1$]
000044 000000 .WORD 0 ; [1$]
000046 000154 .WORD 154 ; [5$]
000050 000154 .WORD 154 ; [5$]
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 36
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (14)
; 1037 routine CASE_SHIFT (LEN, PTR) : SC_LKG_LEN_PTR novalue =
; 1038
; 1039 !++
; 1040 ! FUNCTIONAL DESCRIPTION:
; 1041 ! Shift string pointed to by PTR to uppercase
; 1042 !
; 1043 ! FORMAL PARAMETERS:
; 1044 ! LEN Length of string
; 1045 ! PTR Pointer to string to shift
; 1046 !
; 1047 ! IMPLICIT INPUTS:
; 1048 ! None
; 1049 !
; 1050 ! IMPLICIT OUTPUTS:
; 1051 ! None
; 1052 !
; 1053 ! ROUTINE VALUE:
; 1054 ! COMPLETION CODES:
; 1055 ! None
; 1056 !
; 1057 ! SIDE EFFECTS:
; 1058 ! None
; 1059 !--
; 1060
; 1061 begin
; 1062 local
; 1063 CH,
; 1064 TMP_PTR;
; 1065
; 1066 TMP_PTR = .PTR;
; 1067
; 1068 if .LEN neq 0
; 1069 then
; 1070 decru I from .LEN to 1 do
; 1071 begin
; 1072 if (CH = ch$rchar (.TMP_PTR)) geq %c'a' and .CH leq %c'z'
; 1073 then CH = .CH - (%c'a' - %c'A');
; 1074 ch$wchar_a (.CH, TMP_PTR);
; 1075 end;
; 1076
; 1077 end;
.SBTTL CASE.SHIFT Network Management
003210 .PSECT $CODE$, RO
000000 004167 000000G CASE.SHIFT:
JSR R1,$SAVE2 ; 1037
000004 010200 MOV R2,R0 ; PTR,TMP.PTR 1066
000006 005701 TST R1 ; LEN 1068
000010 001414 BEQ 3$
000012 005002 1$: CLR R2 ; CH 1072
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 37
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (14)
000014 151002 BISB (R0),R2 ; TMP.PTR,CH
000016 020227 000141 CMP R2,#141 ; CH,*
000022 002405 BLT 2$
000024 020227 000172 CMP R2,#172 ; CH,*
000030 003002 BGT 2$
000032 162702 000040 SUB #40,R2 ; *,CH 1073
000036 110220 2$: MOVB R2,(R0)+ ; CH,TMP.PTR 1074
000040 077114 SOB R1,1$ ; I,* 0000
000042 000207 3$: RTS PC ; 1037
; Routine Size: 18 words, Routine Base: $CODE$ + 3210
; Maximum stack depth per invocation: 4 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 38
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (15)
; 1078 routine GET_NODE (PARBLK) : SC_LKG_PTR =
; 1079
; 1080 !++
; 1081 ! FUNCTIONAL DESCRIPTION:
; 1082 ! Determine whether name is in NMT
; 1083 !
; 1084 ! FORMAL PARAMETERS:
; 1085 ! PARBLK Pointer to NM parameter block specifying node,
; 1086 ! starting at NMX_NMPAR_ENTITY
; 1087 !
; 1088 ! IMPLICIT INPUTS:
; 1089 ! None
; 1090 !
; 1091 ! IMPLICIT OUTPUTS:
; 1092 ! Mapped to NMT
; 1093 !
; 1094 ! ROUTINE VALUE:
; 1095 !
; 1096 ! NMT address if name found, else 0
; 1097 !
; 1098 ! SIDE EFFECTS:
; 1099 ! None
; 1100 !--
; 1101 begin
; 1102 $sc_get_data_base (SCDB);
; 1103 local
; 1104 PARPTR,
; 1105 NODE_ADDR,
; 1106 NAME_LEN,
; 1107 NMT : ref block field (NMT_FIELDS);
; 1108
; 1109 MAP$ (.SCDB [SC_NMT_BIAS]); ! Set map to node mapping table
; 1110 NMT = .SCDB [SC_NMT_ADDR];
; 1111 PARPTR = .PARBLK;
; 1112 byt$string_short (PARPTR, NODE_ADDR); ! Get the node address
; 1113 byt$string_tiny (PARPTR, NAME_LEN); ! and name length
; 1114
; 1115 selectone .NAME_LEN of ! If a name is specified,
; 1116 set
; 1117 [1 to 6]:
; 1118 begin ! then search for the entry
; 1119 CASE_SHIFT (.NAME_LEN, .PARPTR);
; 1120 decru I from (.SCDB [SC_NODES] + .SCDB [SC_LOOPS]) to 1 do
; 1121 begin
; 1122 if (.NMT [NMT_NAML] neq 0) and
; 1123 ch$eql (.NAME_LEN, .PARPTR,
; 1124 .NMT [NMT_NAML], byt$ptr (NMT [NMT_NAME]),
; 1125 0)
; 1126 then return NMT [NMT_BASE];
; 1127 NMT = vector [.NMT, NMT_SIZE];
; 1128 end
; 1129 end;
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 39
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (15)
; 1130 [0]: ! Node spec via address
; 1131 begin
; 1132
; 1133 if .NODE_ADDR eql 0 then NODE_ADDR = .SCDB [SC_LADDR]; ! Default to local
; 1134 if .NODE_ADDR lequ .SCDB [SC_NODES]
; 1135 then
; 1136 begin
; 1137 NODE_ADDR = .NODE_ADDR - 1;
; 1138 NMT = blockvector [NMT [NMT_BASE], .NODE_ADDR, NMT_BASE; 0, NMT_SIZE];
; 1139 return NMT [NMT_BASE];
; 1140 end;
; 1141 end;
; 1142 [otherwise]:
; 1143 ;
; 1144 tes;
; 1145
; 1146 return 0
; 1147 end;
.SBTTL GET.NODE Network Management
000000 004167 000000G GET.NODE:
JSR R1,$SAVE5 ; 1078
000004 016704 000002G MOV .CRDAT+2,R4 ; 1101
000010 016467 000050 000000G MOV 50(R4),KISAR6 ; 1109
000016 016405 000052 MOV 52(R4),R5 ; *,NMT 1110
000022 010302 MOV R3,R2 ; PARBLK,PARPTR 1111
000024 112246 MOVB (R2)+,-(SP) ; PARPTR,NODE.ADDR 1112
000026 112266 000001 MOVB (R2)+,1(SP) ; PARPTR,NODE.ADDR+1
000032 005003 CLR R3 ; NAME.LEN 1113
000034 152203 BISB (R2)+,R3 ; PARPTR,NAME.LEN
000036 005703 TST R3 ; NAME.LEN 1115
000040 003440 BLE 4$
000042 020327 000006 CMP R3,#6 ; NAME.LEN,*
000046 003034 BGT 3$
000050 010301 MOV R3,R1 ; NAME.LEN,* 1119
000052 004767 177656 JSR PC,CASE.SHIFT
000056 016401 000020 MOV 20(R4),R1 ; 1120
000062 066401 000022 ADD 22(R4),R1
000066 001445 BEQ 7$
000070 105715 1$: TSTB (R5) ; NMT 1122
000072 001416 BEQ 2$
000074 010346 MOV R3,-(SP) ; NAME.LEN,* 1125
000076 010246 MOV R2,-(SP) ; PARPTR,*
000100 111500 MOVB (R5),R0 ; NMT,*
000102 010046 MOV R0,-(SP)
000104 012746 000001 MOV #1,-(SP) ; 1124
000110 060516 ADD R5,(SP) ; NMT,*
000112 005046 CLR -(SP) ; 1125
000114 004767 000000G JSR PC,BL$EQL
000120 062706 000012 ADD #12,SP
000124 006000 ROR R0
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 40
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (15)
000126 103423 BLO 6$ ; 1126
000130 062705 000014 2$: ADD #14,R5 ; *,NMT 1127
000134 077123 SOB R1,1$ ; I,* 0000
000136 000421 BR 7$ ; 1115
000140 005703 3$: TST R3 ; NAME.LEN
000142 001017 4$: BNE 7$
000144 005716 TST (SP) ; NODE.ADDR 1133
000146 001002 BNE 5$
000150 016416 000010 MOV 10(R4),(SP) ; *,NODE.ADDR
000154 021664 000020 5$: CMP (SP),20(R4) ; NODE.ADDR,* 1134
000160 101010 BHI 7$
000162 005316 DEC (SP) ; NODE.ADDR 1137
000164 011601 MOV (SP),R1 ; NODE.ADDR,* 1138
000166 070127 000014 MUL #14,R1
000172 060501 ADD R5,R1 ; NMT,*
000174 010105 MOV R1,R5 ; *,NMT
000176 010500 6$: MOV R5,R0 ; NMT,* 1136
000200 000401 BR 8$
000202 005000 7$: CLR R0 ; 1101
000204 005726 8$: TST (SP)+ ; 1078
000206 000207 RTS PC
; Routine Size: 68 words, Routine Base: $CODE$ + 3254
; Maximum stack depth per invocation: 13 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 41
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (16)
; 1148 routine INSERT_NODE (NMT, CCB) : SC_LKG_NMT_CCB novalue =
; 1149
; 1150 !++
; 1151 ! FUNCTIONAL DESCRIPTION:
; 1152 ! Make room for LNG bytes at PTR in the CCB buffer.
; 1153 !
; 1154 ! FORMAL PARAMETERS:
; 1155 ! NMT NMT for node
; 1156 ! CCB CCB address
; 1157 !
; 1158 ! IMPLICIT INPUTS:
; 1159 ! Mapped to CCB buffer
; 1160 !
; 1161 ! IMPLICIT OUTPUTS:
; 1162 ! None
; 1163 !
; 1164 ! ROUTINE VALUE:
; 1165 ! None
; 1166 !
; 1167 ! SIDE EFFECTS:
; 1168 ! None
; 1169 !--
; 1170 begin
; 1171 map
; 1172 CCB : ref block field (C_NM_FIELDS),
; 1173 NMT : ref block field (NMT_FIELDS);
; 1174 label
; 1175 FIND_NODE;
; 1176 local
; 1177 ADDR,
; 1178 LEN,
; 1179 NODE_ID : vector [byt$allocation (9)];
; 1180 ADDR = .NMT [NMT_ADDR];
; 1181 LEN = .NMT [NMT_NAML];
; 1182 begin
; 1183 local
; 1184 PTR;
; 1185 PTR = byt$ptr (NODE_ID);
; 1186 byt$short_string (NMT [NMT_ADDR], PTR);
; 1187 byt$tiny_string (LEN, PTR);
; 1188 ch$move (.LEN, byt$ptr (NMT [NMT_NAME]), .PTR);
; 1189 end;
; 1190 LEN = .LEN + 3;
; 1191 if .ADDR eql 0 then ADDR = .ADDR - 1;
; 1192 FIND_NODE:
; 1193 begin ! FIND_NODE
; 1194 local
; 1195 CNT,
; 1196 PTR,
; 1197 SAVE_MAP;
; 1198 SMAP$ (SAVE_MAP);
; 1199 MAP$ (.CCB [C_BIAS]);
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 42
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (16)
; 1200 PTR = .CCB [C_ADDR];
; 1201 CNT = .CCB [C_CNT];
; 1202 if .CNT neq 0
; 1203 then
; 1204 while true do
; 1205 begin
; 1206 local TCNT, TEST, TPTR;
; 1207 TPTR = .PTR;
; 1208 byt$string_short (TPTR, TEST);
; 1209 if .TEST gtru .ADDR then exitloop CNT = 0;
; 1210 TCNT = 3 + ch$rchar_a (TPTR);
; 1211 if .TEST eqlu .ADDR then exitloop CNT = .TCNT;
; 1212 PTR = ch$plus (.PTR, .TCNT);
; 1213 if (CNT = .CNT - .TCNT) leq 0 then exitloop CNT = 0;
; 1214 end;
; 1215 begin
; 1216 local
; 1217 DIFFERENCE;
; 1218 DIFFERENCE = .LEN - .CNT;
; 1219 if (CCB [C_STS] = .CCB [C_STS] - .DIFFERENCE) lss 0
; 1220 then
; 1221 leave FIND_NODE;
; 1222 MAKE_ROOM (.CCB, .PTR, .DIFFERENCE);
; 1223 end;
; 1224 ch$move (.LEN, byt$ptr (NODE_ID), .PTR);
; 1225 MAP$ (.SAVE_MAP);
; 1226 end; ! FIND_NODE
; 1227 end;
.SBTTL INSERT.NODE Network Management
000000 004167 000000G INSERT.NODE:
JSR R1,$SAVE5 ; 1148
000004 162706 000014 SUB #14,SP
000010 016103 000010 MOV 10(R1),R3 ; *(NMT),ADDR 1180
000014 111100 MOVB (R1),R0 ; NMT,* 1181
000016 010046 MOV R0,-(SP) ; *,LEN
000020 012702 000004 MOV #4,R2 ; *,PTR 1185
000024 060602 ADD SP,R2 ; NODE.ID,PTR
000026 010300 MOV R3,R0 ; *,NUM 1186
000030 110022 MOVB R0,(R2)+ ; NUM,PTR
000032 000300 SWAB R0 ; NUM
000034 110022 MOVB R0,(R2)+ ; NUM,PTR
000036 111622 MOVB (SP),(R2)+ ; LEN,PTR 1187
000040 011646 MOV (SP),-(SP) ; LEN,* 1188
000042 010146 MOV R1,-(SP) ; NMT,*
000044 005216 INC (SP)
000046 010246 MOV R2,-(SP) ; PTR,*
000050 004767 000000G JSR PC,BL$MOV
000054 062766 000003 000006 ADD #3,6(SP) ; *,LEN 1190
000062 005703 TST R3 ; ADDR 1191
000064 001001 BNE 1$
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 43
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (16)
000066 005303 DEC R3 ; ADDR
000070 016705 000000G 1$: MOV KISAR6,R5 ; *,SAVE.MAP 1198
000074 016467 000016 000000G MOV 16(R4),KISAR6 ; *(CCB),* 1199
000102 016401 000020 MOV 20(R4),R1 ; *(CCB),PTR 1200
000106 016402 000022 MOV 22(R4),R2 ; *(CCB),CNT 1201
000112 001427 BEQ 5$ ; 1202
000114 010100 2$: MOV R1,R0 ; PTR,TPTR 1207
000116 112066 000010 MOVB (R0)+,10(SP) ; TPTR,TEST 1208
000122 112066 000011 MOVB (R0)+,11(SP) ; TPTR,TEST+1
000126 026603 000010 CMP 10(SP),R3 ; TEST,ADDR 1209
000132 101016 BHI 4$
000134 112000 MOVB (R0)+,R0 ; TPTR,TCNT 1210
000136 042700 177400 BIC #177400,R0 ; *,TCNT
000142 062700 000003 ADD #3,R0 ; *,TCNT
000146 026603 000010 CMP 10(SP),R3 ; TEST,ADDR 1211
000152 001002 BNE 3$
000154 010002 MOV R0,R2 ; TCNT,CNT
000156 000405 BR 5$
000160 060001 3$: ADD R0,R1 ; TCNT,PTR 1212
000162 160002 SUB R0,R2 ; TCNT,CNT 1213
000164 000243 .WORD CLV!CLC
000166 003352 BGT 2$
000170 005002 4$: CLR R2 ; CNT
000172 016600 000006 5$: MOV 6(SP),R0 ; LEN,DIFFERENCE 1218
000176 160200 SUB R2,R0 ; CNT,DIFFERENCE
000200 160064 000014 SUB R0,14(R4) ; DIFFERENCE,*(CCB) 1219
000204 100002 BPL 6$
000206 024646 CMP -(SP),-(SP) ; 1221
000210 000414 BR 7$
000212 004767 000000V 6$: JSR PC,MAKE.ROOM ; 1222
000216 016616 000006 MOV 6(SP),(SP) ; LEN,* 1224
000222 012746 000014 MOV #14,-(SP)
000226 060616 ADD SP,(SP) ; NODE.ID,*
000230 010146 MOV R1,-(SP) ; PTR,*
000232 004767 000000G JSR PC,BL$MOV
000236 010567 000000G MOV R5,KISAR6 ; SAVE.MAP,* 1225
000242 062706 000030 7$: ADD #30,SP ; 1148
000246 000207 RTS PC
; Routine Size: 84 words, Routine Base: $CODE$ + 3464
; Maximum stack depth per invocation: 19 words
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 44
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (17)
; 1228 routine MAKE_ROOM (CCB, PTR, LNG) : SC_LKG_CCB_PTR_LNG novalue =
; 1229
; 1230 !++
; 1231 ! FUNCTIONAL DESCRIPTION:
; 1232 ! Make room for LNG bytes at PTR in the CCB buffer.
; 1233 !
; 1234 ! FORMAL PARAMETERS:
; 1235 ! CCB CCB address
; 1236 ! PTR Pointer within CCB buffer
; 1237 ! LNG Number of bytes needed
; 1238 !
; 1239 ! IMPLICIT INPUTS:
; 1240 ! Mapped to CCB buffer
; 1241 !
; 1242 ! IMPLICIT OUTPUTS:
; 1243 ! None
; 1244 !
; 1245 ! ROUTINE VALUE:
; 1246 ! None
; 1247 !
; 1248 ! SIDE EFFECTS:
; 1249 ! None
; 1250 !--
; 1251 begin
; 1252 map CCB: ref block field (C_NM_FIELDS);
; 1253 macro
; M 1254 ch$r_rchar (PTR) =
; M 1255 begin
; M 1256 PTR = .PTR - 1;
; M 1257 ch$rchar (.PTR)
; 1258 end %,
; M 1259 ch$r_wchar (BYT, PTR) =
; M 1260 begin
; M 1261 PTR = .PTR - 1;
; M 1262 ch$wchar (BYT, .PTR);
; 1263 end %;
; 1264 local
; 1265 CNT,
; 1266 TOP_FROM,
; 1267 TOP_TO;
; 1268
; 1269 TOP_FROM = .CCB [C_ADDR];
; 1270 TOP_FROM = ch$plus (.TOP_FROM, .CCB [C_CNT]);
; 1271 CCB [C_CNT] = .CCB [C_CNT] + .LNG;
; 1272 CNT = .TOP_FROM;
; 1273 CNT = ch$diff (.CNT, .PTR);
; 1274 if .CNT eql 0 then return;
; 1275 TOP_TO = .TOP_FROM;
; 1276 TOP_TO = ch$plus (.TOP_TO, .LNG);
; 1277 do ch$r_wchar (ch$r_rchar (TOP_FROM), TOP_TO) while (CNT = .CNT - 1) neq 0;
; 1278 end;
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 45
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (17)
.SBTTL MAKE.ROOM Network Management
000000 004167 000000G MAKE.ROOM:
JSR R1,$SAVE4 ; 1228
000004 016403 000020 MOV 20(R4),R3 ; *(CCB),TOP.FROM 1269
000010 066403 000022 ADD 22(R4),R3 ; *(CCB),TOP.FROM 1270
000014 060064 000022 ADD R0,22(R4) ; LNG,*(CCB) 1271
000020 010302 MOV R3,R2 ; TOP.FROM,CNT 1272
000022 160102 SUB R1,R2 ; PTR,CNT 1273
000024 001404 BEQ 2$ ; 1274
000026 010304 MOV R3,R4 ; TOP.FROM,TOP.TO 1275
000030 060004 ADD R0,R4 ; LNG,TOP.TO 1276
000032 114344 1$: MOVB -(R3),-(R4) ; TOP.FROM,TOP.TO 1277
000034 077202 SOB R2,1$ ; CNT,*
000036 000207 2$: RTS PC ; 1228
; Routine Size: 16 words, Routine Base: $CODE$ + 3734
; Maximum stack depth per invocation: 6 words
; 1279
; 1280 end
; 1281 eludom
; OTS external references
.GLOBL $SAVE5, $SAVE4, $SAVE3, $SAVE2
.GLOBL $STOP, BL$EQL, BL$MOV
; PSECT SUMMARY
;
; Psect Name Words Attributes
; ...... 16 RW , D , LCL, REL, CON
; $PLIT$ 21 RO , D , LCL, REL, CON
; $CODE$ 1022 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<SC>SCPRM.L16.4 262 53 20 0
; NETPKG:<MCB>MCBLIB.L16.15 372 44 11 0
; NETPKG:<MCB>NMXLIB.L16.13 200 70 35 0
; NETPKG:<MCB>XPORTX.L16.15 599 7 1 0
SC1 25-Jan-1983 10:22:58 TOPS-20 Bliss-16 2A(530) Page 46
X01260 Network Management 30-Dec-1982 20:48:17 NETPKG:<SC>SC1.BLI.10 (17)
; Size: 1022 code + 37 data words
; Run Time: 00:19.1
; Elapsed Time: 01:11.1
; Memory Used: 66 pages
; Compilation Complete
ADDR 1177 1180# 1191# 1209 1211
BLISS36 246
BUF_PTR 484 488# 489 687 694# 696 707 734# 735 746 754 771
798 810
BUF_SIZ 926
BYT 1259 1262
BYT$ALLOCATION 742 1179
BYT$PTR 380 475 734 754 755 759 768 781 783 860 1013 1023
1124 1185 1188 1224
BYT$SHORT_STRING 377 1186
BYT$STRING_SHORT 489 696 735 798 810 1112 1208
BYT$STRING_TINY 746 1113
BYT$TINY_STRING 1187
CALL$ 223 224 225 261# 333# 390#
CASE_SHIFT 236 1037* 1119
CCB 261 285 291 295 299 302 304 306 308 316 319 331
443 469 471 478 487 488 496 498 500 502 510 511
512 513 518 546 553 581 588 616 623 651 657 683
685 690 694 695 722 770 826 852 856 858 862 893
894 897 923 924 932# 933# 934# 936 946 959 966 973
999 1001 1003 1005 1034 1035 1148 1172 1199 1200 1201 1219#
1222 1228 1252 1269 1270 1271#
CCBGT$ 721
CH 1063 1072# 1073# 1074
CH$R_RCHAR 1254# 1277
CH$R_WCHAR 1259# 1277
CH$WCHAR 1262
CHAN 765 771 784 1010 1013 1020
CLEAR_EXECUTOR_INCOMING_TIMER 228 500 512 518*
CLEAR_EXECUTOR_OUTGOING_TIMER 229 502 513 553*
CLEAR_NODE_CIRCUIT 230 498 511 588*
CLEAR_NODE_NAME 231 496 510 623*
CLEAR_NODE_PARMS 227 304 443*
CNT 1195 1201# 1202 1209# 1211# 1213# 1218 1265 1272# 1273# 1274 1277#
C_ADDR 488 694 1200 1269
C_BIAS 487 695 770 1199
C_CNT 478 690 932 933 934 1201 1270 1271
C_FIELDS 705
C_FNC 724
C_MOD 291 725
C_NM_ENTITY 295
C_NM_FIELDS 285 469 546 581 616 651 683 852 923 999 1172 1252
C_NM_FUNC 299 316
C_NM_NMPAR 471 685 856 924 1001
C_NM_SELECT 862 936 1005
C_PIX 723
C_STK 722
C_STS 894 932 934 966 1035 1219
DIFFERENCE 1217 1218# 1219 1222
EQLU 1020 1211
FC_XME 724
FIND_NODE 1175 1192 1221
FM_NM 291
GET_NODE 237 371 475 755 768 860 1078*
HOST_ADDR 733 735 736
I 775 942 955 1017 1070 1120
INSERT_NODE 238 946 959 1148*
LCCB 705 721 722# 723# 724# 725# 726
LEN 927 1037 1068 1070 1178 1181# 1187 1188 1190# 1218 1224
LNG 1228 1271 1276
MAKE_ROOM 239 1222 1228*
MAP$ 388 487 490 695 770 772 931 1014 1109 1199 1225
N$EABL 174+#
N$EABO 166+#
N$EABR 167+#
N$ECLS 172+#
N$ECON 163+#
N$ELST 170+#
N$EMTL 171+#
N$ENUR 173+#
N$EOPN 165+#
N$ERES 162+#
N$ERMO 169+#
N$ERUN 175+#
N$ESTE 164+#
N$ETMI 168+#
N$ETRN 176+#
N$FBOM 185+#
N$FCMP 186+#
N$FEOM 184+#
N$FMES 183+#
N$FSEG 182+#
N$HI 158+#
N$LO 177+#
N$SACC 160+#
N$SCC 196+#
N$SCD 200+#
N$SCI 197+#
N$SCL 206+#
N$SCN 207+#
N$SCR 193+#
N$SDIC 204+#
N$SDI 203+#
N$SDN 205+#
N$SDRC 195+#
N$SDR 194+#
N$SNC 199+#
N$SNR 198+#
N$SO 192+#
N$SREJ 159+#
N$SRJ 201+#
N$SRUN 202+#
N$SSUC 161+#
NAME 255#
NAME_LEN 1106 1113 1115 1119 1123
NAML 375 378# 379 380
NAM_LEN 944 945# 957 958#
NEW_NAME 742 754 759
NEW_NAML 743 746 747 754 758 759
NEW_STATE 426 430# 431 866 870# 871
NM$SUC 514 551 586 621 655 717 786 824 968
NMPAR 471# 475 685# 734 755 768 781 856# 860 924# 933 1001#
1013
NMT 366 371# 377 378 380 473 475# 496 498 500 502 510
511 512 513 518 547 549 553 582 584 588 617 619
620# 623 652 654# 744 755# 757 758# 759 767 773# 777
782# 783 784# 785# 789# 854 860# 867 873 875 879 881
882 929 940# 945 946 947# 953# 958 959 960# 1012 1015#
1019 1020 1023 1026# 1107 1110# 1122 1124 1126 1127# 1138# 1139
1148 1173 1180 1181 1186 1188
NMT_ADDR 377 549 584 619 757 867 873 879 882 1180 1186
NMT_BASE 496 498 500 502 510 511 512 513 773 946 959 1015
1126 1138 1139
NMT_CHAN 784 1020
NMT_FIELDS 366 473 547 582 617 652 744 767 854 929 1012 1107
1173
NMT_NAME 380 759 783 1023 1124 1188
NMT_NAML 378 620 654 758 777 782 783 945 958 1019 1023 1122
1124 1181
NMT_NMXID 785 875 881
NMT_SIZE 773 789 929 947 953 960 1015 1026 1127 1138
NMX$ENT_CKT 314
NMX$ENT_HI 295
NMX$ENT_LO 295
NMX$ENT_NOD 297
NMX$FNC_CLR 303
NMX$FNC_HI 299 316
NMX$FNC_LO 299 316
NMX$FNC_RET 307
NMX$FNC_SET 301
NMX$FNC_SHO 305 318
NMX$OBTAIN_CIRCUIT_OWNER 771 1013
NMX$PARAMETER_CIRCUIT 875 881
NMX$SEL_CHA 877
NMX$SEL_HI 1005
NMX$SEL_KNO 938 951
NMX$SEL_LOP 951
NMX$SEL_LO 1005
NMX$SEL_STA 864 1007
NMX$SEL_SUM 864 1007
NMXID 766 771 785 1011 1013
NMX_NMPAR_ENTITY 475 755 768 860
NMX_NMPAR_FIELDS 471 685 856 924 1001
NMX_NMPAR_NODE_ADDRESS 734
NMX_NMPAR_NODE_NAME_LENGTH 781
NMX_NMPAR_OTHER_LENGTH 1013
NMX_NMPAR_RETURN_CNT 933
NM_EXT 223 261*
NM_NOD 224 333*
NM_SIG 225 390*
NODE_ADDR 1105 1112 1133# 1134 1137# 1138
NODE_ID 1179 1185 1224
NODE_ID_PTR 333 369
N_GSTA 130+#
N_GSTS 127+#
N_PCLS 129+#
N_POPN 128+#
N_RCON 145+#
N_RDAT 147+#
N_RDSC 146+#
N_RHI 152+#
N_RINT 148+# 152+
N_SCNF 143+#
N_SCNS 144+#
N_XABT 135+#
N_XACC 132+#
N_XBUF 140+#
N_XCON 131+#
N_XDAT 136+#
N_XDRQ 139+#
N_XDSC 134+#
N_XHI 151+#
N_XINI 141+# 151+ 725
N_XINT 137+#
N_XIRQ 138+#
N_XREJ 133+#
PARAMETER_AI 1023
PARAMETER_C_1 428 429 431 871
PARAMETER_DU_2 886 888
PARBLK 1078 1111
PARM_NUM 485 489 491 688 696 698
PARPTR 1104 1111# 1112 1113 1119 1123
PDVID$ 718 719
PRM1 390 428
PRM2 390 429
PTR 365 369# 371 377 379 380 384 385 780 781# 782 783
928 1037 1066 1184 1185# 1186 1187 1188 1196 1200# 1207 1212#
1222 1224 1228 1254 1256# 1257 1259 1261# 1262 1273
RAD50 245# 718 719
RETURN_NODE_LIST 234 308 897*
SAVE_MAP 364 368 388 484 486 490 1197 1198 1225
SC$_NNM 718
SC$_NNS 719
SC1 1# 255
SCDB 362 416 430 468 496 498 500 502 510 511 512 513
518 545 549 550# 553 580 584 585# 588 615 623 650
682 717 718 719 720# 723 736# 771 772 773 775 802#
814# 851 867 870 875 881 882 885 886 887 888 922
931 940 942 953 955 998 1013 1014 1015 1017 1102 1109
1110 1120 1133 1134
SCF_STAT 430 717 870
SC_HADDR 736
SC_ITIME 550 802 885 886
SC_LADDR 549 584 867 882 1133
SC_LKG_CCB_PTR_LNG 216# 239 1228#
SC_LKG_CCB 215# 227 232 233 234 235 443# 657# 826# 897# 973#
SC_LKG_LEN_PTR 217# 236 1037#
SC_LKG_NMT_CCB 218# 238 1148#
SC_LKG_PTR 219# 237 1078#
SC_LKG_SCDB_NMT_CCB 220# 228 229 230 231 518# 553# 588# 623#
SC_LLINK 720
SC_LOOPS 775 955 1017 1120
SC_NMPIX 718 771 875 881 1013
SC_NMT_ADDR 773 940 953 1015 1110
SC_NMT_BIAS 772 931 1014 1109
SC_NODES 773 942 953 1015 1120 1134
SC_NSPIX 719 723
SC_OTIME 585 814 887 888
SC_TICK 496 498 500 502 510 511 512 513
SET_NODE_PARMS 232 302 657*
SHOW_CIRCUIT_ITEMS 235 319 973*
SHOW_NODE_ITEMS 233 306 826*
SIG_TYPE 390 418
SMAP$ 368 486 1198
STATE 704 707# 708
STATUS 287 289# 331
STR 245 246
S_ST_OFF 712
S_ST_ON 710 717
S_ST_RST 712
S_ST_SHUT 712
TCNT 1206 1210# 1211 1212 1213
TEST 1206 1208 1209 1211
TMP_PTR 1064 1066# 1072 1074
TOP_FROM 1266 1269# 1270# 1272 1275 1277
TOP_TO 1267 1275# 1276# 1277
TPTR 1206 1207# 1208 1210
TRUE 1204
VALUE 797 798 799 802 809 810 811 814
$MCB_PROCESS 255
$MCB_SCHEDULE_CCB 726
$NM$ERR_CWS 619 757 769
$NM$ERR_IPV 715 752 804 816
$NM$ERR_MPE 292 310 321 326
$NM$ERR_NRE 792
$NM$ERR_OPF 692 713
$NM$ERR_PNA 549 584
$NM$ERR_REE 721 970
$NM$ERR_UPT 504 820
$NM$ERR_URC 476 756
$NM_LOG_BEGIN 427
$NM_LOG_END 432
$NM_RESPONSE_BEGIN 858 1003
$NM_RESPONSE_END 893 1034
$SC_DO_CCP 331
$SC_GET_DATA_BASE 362 416 468 545 580 615 650 682 851 922 998 1102