Trailing-Edge
-
PDP-10 Archives
-
TOPS-20_V6.1_DECnetSrc_7-23-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