Trailing-Edge
-
PDP-10 Archives
-
BB-R598A-RM_1983
-
swskit-v3/listings/xpt/xptini.list
There are no other files named xptini.list in the archive.
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 1
30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (1)
; 0001 module XPTINI (
; 0002 IDENT = 'X01150'
; 0003 ) =
; 0004 begin
; 0005
; 0006 !
; 0007 ! COPYRIGHT (c) 1980, 1981, 1982
; 0008 ! DIGITAL EQUIPMENT CORPORATION
; 0009 ! Maynard, Massachusetts
; 0010 !
; 0011 ! This software is furnished under a license and may be used
; 0012 ! and copied only in accordance with the terms of such license
; 0013 ! and with the inclusion of the above copyright notice. This
; 0014 ! software or any other copies thereof may not be provided or
; 0015 ! otherwise made available to any other person. No title to
; 0016 ! and ownership of the software is hereby transferred.
; 0017 !
; 0018 ! The information in this software is subject to change
; 0019 ! without notice and should not be construed as a commitment
; 0020 ! by DIGITAL EQUIPMENT CORPORATION.
; 0021 !
; 0022 ! DIGITAL assumes no responsibility for the use or reliability
; 0023 ! of its software on equipment which is not supplied by
; 0024 ! DIGITAL.
; 0025 !
; 0026
; 0027 !++
; 0028 ! FACILITY: Transport
; 0029 !
; 0030 ! ABSTRACT:
; 0031 !
; 0032 ! Contains the Transport initialization and termination modules.
; 0033 !
; 0034 ! ENVIRONMENT: MCB
; 0035 !
; 0036 ! AUTHOR: L. Webber , CREATION DATE: 27-Jul-79
; 0037 !
; 0038 ! MODIFIED BY:
; 0039 !
; 0040 ! L. Webber, 27-Jul-79 : VERSION 1.00
; 0041 !
; 0042 ! 1.01 L. Webber, 20-Dec-79
; 0043 ! Modify for MCB changes; take line startup out of INIT_XPT
; 0044 !
; 0045 ! 1.02 L. Webber, 24-Jan-80
; 0046 ! Combine Hop and Cost into one matrix
; 0047 !
; 0048 ! 1.03 L. Webber, 29-Jan-80
; 0049 ! Modify dispatch table to dispatch to separate routines
; 0050 !
; 0051 ! 1.04 L. Webber, 2-Feb-80
; 0052 ! Modify to accomodate node and line sub-data-bases
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 2
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (1)
; 0053 ! Take out dispatch table (moved to XPTITF)
; 0054 ! Changed name to XPTINI from XPTMAIN
; 0055 !
; 0056 ! 1.05 L. Webber, 27-Jun-80
; 0057 ! Modify to use MCBLIB macros
; 0058 !
; 0059 ! 1.06 A. Peckham, 15-Oct-80
; 0060 ! Update for new function modifiers.
; 0061 !
; 0062 ! 1.07 L. Webber, 11-Dec-80
; 0063 ! Modify to support MCB 3.1
; 0064 !
; 0065 ! 1.08 L. Webber, 6-Apr-81
; 0066 ! Update to initialize INITtimer in line data base.
; 0067 ! Also, change names of T5 and T6 to Hello_clock and T4, respectively.
; 0068 !
; 0069 ! 1.09 L. Webber, 10-Apr-81
; 0070 ! Fix call to RLS_BLK.
; 0071 !
; 0072 ! 1.10 L. Webber, 6-May-81
; 0073 ! Replace call to $LLLTM with a $MCB_ENABLE_LONG_TIMER.
; 0074 !
; 0075 ! 1.11 L. Webber, 27-May-81
; 0076 ! Add code to initialize the new circuit data base fields added
; 0077 ! to support the new DLL interface. Take out code to release
; 0078 ! the node ID blocks; it would only be of use if Transport were
; 0079 ! reinitialized during an MCB session.
; 0080 !
; 0081 ! 1.12 L. Webber, 16-Jul-81
; 0082 ! Add code to initialize the "Adjacent" field in the node data base.
; 0083 !
; 0084 ! 1.13 L. Webber, 17-Sep-81
; 0085 ! Add initialization for node data base field Phase2_node.
; 0086 !
; 0087 ! 1.14 L. Webber, 23-Feb-82
; 0088 ! Add initialization for DLLquota.
; 0089 !
; 0090 ! 1.15 A. Peckham, 22-Apr-82
; 0091 ! Eliminate references to GETLINE, GETNODE, RLS_BLK.
; 0092 !
; 0093 !--
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 3
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (2)
; 0094
; 0095 !
; 0096 ! INCLUDE FILES:
; 0097 !
; 0098
; 0099 require 'XPTMAC';
; 0197
; 0198 !
; 0199 ! TABLE OF CONTENTS
; 0200 !
; 0201
; 0202 forward routine
; 0203 INIT_XPT: CALL$ novalue,
; 0204 TERM_XPT: CALL$ novalue;
; 0205
; 0206 !
; 0207 ! MACROS:
; 0208 !
; 0209
; 0210 !
; 0211 ! EQUATED SYMBOLS:
; 0212 !
; 0213
; 0214 !
; 0215 ! OWN STORAGE:
; 0216 !
; 0217
; 0218 $MCB_PROCESS(name=XPE)
; 0219
; 0220 !
; 0221 ! EXTERNAL REFERENCES:
; 0222 !
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 4
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
; 0223 global routine INIT_XPT (CCB): CALL$ novalue =
; 0224
; 0225 !++
; 0226 ! FUNCTIONAL DESCRIPTION:
; 0227 !
; 0228 ! Initializes Transport. All tables are set to their initial value,
; 0229 ! and all lines are initialized.
; 0230 !
; 0231 ! FORMAL PARAMETERS
; 0232 !
; 0233 ! CCB
; 0234 !
; 0235 ! IMPLICIT INPUTS
; 0236 !
; 0237 ! All entries in the Transport Data Base
; 0238 !
; 0239 ! ROUTINE VALUE:
; 0240 ! COMPLETION CODES:
; 0241 !
; 0242 ! NONE.
; 0243 !
; 0244 ! SIDE EFFECTS:
; 0245 !
; 0246 ! All lines are initialized, all nodes become unreachable,
; 0247 ! and all local transport users (including NSP) will have
; 0248 ! to re-identify themselves.
; 0249 !
; 0250 !--
; 0251
; 0252 begin
; 0253 map CCB: ref block field (C_fields);
; 0254 require 'XPTSYM';
; 0291
; 0292 !
; 0293 ! Initialize all the quotas
; 0294 !
; 0295
; 0296 Maxh = $MAXH;
; 0297 Maxv = $MAXV;
; 0298 Maxc = $MAXC;
; 0299 Maxl = $MAXL;
; 0300 UPDATEquota = $UPDQ;
; 0301 ECLquota = $ECLQ;
; 0302 INPUTquota = $INPQ;
; 0303 DLLquota = $LINQ;
; 0304
; 0305 !
; 0306 ! Initialize the Transport identification (local node address)
; 0307 !
; 0308
; 0309 Tid = .CCB[C_PRM1];
; 0310
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 5
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
; 0311 !
; 0312 ! Run through the initialization password data base and
; 0313 ! update the TV messages.
; 0314 ! Also set flags if verification is needed.
; 0315 !
; 0316
; 0317 Request_TV = false; ! Assume verification not needed
; 0318 Request_OTV = false;
; 0319
; 0320 $TLI_for_each_PWDb_do_begin
; 0321 pointer PTR;
; 0322 if ch$rchar(byt$ptr(PWD2rcv)) neq 0
; 0323 then Request_OTV = true; ! Phase II TV should be requested
; 0324 if .PWD3rcv_length neq 0
; 0325 then Request_TV = true; ! Phase III TV should be requested
; 0326 PTR = ch$plus (PWD3TVmsg_ptr,1);
; 0327 byt$short_string(Tid,PTR);
; 0328 if (.PWDnode neq 0) and
; 0329 (.PWDlink eqla 0)
; 0330 then begin
; 0331 local CNT;
; 0332 CNT = getb(PTR);
; 0333 CNT = .CNT + ch$diff(.PTR,byt$ptr(PWD3rcv_length));
; 0334 PWDlink = vector [PWD3rcv_length,byt$allocation(.CNT)];
; 0335 end;
; 0336 $TLI_next_PWDb_end;
; 0337
; 0338 !
; 0339 ! Now the archetype TI, NI, and HELLO messages
; 0340 !
; 0341
; 0342 begin ! The TI message
; 0343 pointer PTR;
; 0344
; 0345 if (PTR = .TI_msg_ADDR) eql 0
; 0346 then if $MCB_GET_DSR (10, PTR)
; 0347 then TI_msg_ADDR = PTR = byt$ptr(.PTR)
; 0348 else return signal_stop (XPT$_REE);
; 0349
; 0350 putb(INIT_CTLflg,PTR); ! Build the
; 0351 byt$short_string(Tid,PTR); ! control header
; 0352 if .Request_TV ! Put in TV request
; 0353 then putb(4+Full,PTR) ! and node type
; 0354 else putb(0+Full,PTR);
; 0355 byt$short_string(DLLsize,PTR); ! Put in max message size
; 0356 putb (1,PTR); putb(3,PTR); putb(0,ptr); ! Put in version (1,3,0)
; 0357 putb (0,PTR); ! Put in (null) seed
; 0358 PTR = ch$diff(.PTR,.TI_msg_ADDR);
; 0359 TI_msg_CNT = .PTR;
; 0360 end;
; 0361
; 0362 begin ! The NI message
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 6
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
; 0363 pointer PTR;
; 0364
; 0365 if (PTR = .NI_msg_ADDR) eql 0
; 0366 then if $MCB_GET_DSR (58, PTR)
; 0367 then NI_msg_ADDR = PTR = byt$ptr(.PTR)
; 0368 else return signal_stop (XPT$_REE);
; 0369
; 0370 putb(OTI_CTLflg,PTR); ! Construct the MSGflgs
; 0371 putb(INIT_SUBflg,PTR); ! and the "init" subflag
; 0372 ex_putw(.Tid,PTR); ! Put in the local node address
; 0373 putb(.NODEname_length,PTR); ! Put in the node name
; 0374 PTR = ch$move(.NODEname_length, ! as an image field
; 0375 byt$ptr(NODEname,0),.PTR);
; 0376 putb(OTIservices,PTR); ! Specify in SERVICES we have intercept
; 0377 if .Request_OTV
; 0378 then putb(1,PTR) ! Request node verification
; 0379 else putb(0,PTR); ! Make no REQUESTS
; 0380 byt$short_string(PH2size,PTR); ! Put in the maximum blocksize
; 0381 byt$short_string(PH2size,PTR); ! and the maximum segment size
; 0382 putw($MAXlk,PTR); ! and the maximum number of links
; 0383 putb(0,PTR); putw(0,PTR); ! Specify a routing version of (0,0,0)
; 0384 putb(0,PTR); putw(0,PTR); ! and a similar communications version
; 0385 putb(0,PTR); ! Specify no system ID
; 0386 PTR = ch$diff(.PTR,.NI_msg_ADDR);
; 0387 NI_msg_CNT = .PTR;
; 0388 end;
; 0389
; 0390 begin ! The false NI message
; 0391 pointer PTR;
; 0392
; 0393 if .False_NI_msg_ADDR eql 0
; 0394 then if $MCB_GET_DSR (58, PTR)
; 0395 then False_NI_msg_ADDR = byt$ptr(.PTR)
; 0396 else return signal_stop (XPT$_REE);
; 0397
; 0398 False_NI_msg_CNT = 0;
; 0399 end;
; 0400
; 0401 begin ! The HELLO message
; 0402 pointer PTR;
; 0403
; 0404 if (PTR = .Hello_msg_ADDR) eql 0
; 0405 then if $MCB_GET_DSR (4 + Default_Hello_data_length, PTR)
; 0406 then Hello_msg_ADDR = PTR = byt$ptr(.PTR)
; 0407 else return signal_stop (XPT$_REE);
; 0408
; 0409 putb(HELLO_CTLflg,PTR); ! Move in control flags
; 0410 byt$short_string(Tid,PTR); ! and source node address
; 0411 putb(12,PTR); ! and length of test data
; 0412 PTR = ch$fill (%o'252',12,.PTR); ! and test data
; 0413 PTR = ch$diff(.PTR,.Hello_msg_ADDR);
; 0414 Hello_msg_CNT = .PTR;
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 7
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
; 0415 end;
; 0416
; 0417 !
; 0418 ! Initialize the Hop/Cost matrix to "too far"/"too costly"
; 0419 !
; 0420
; 0421 MAP$(Hopcost_bias);
; 0422 begin
; 0423 pointer P;
; 0424 P = Hopcost_address;
; 0425 decr IJ from NN*(NLN+1) to 1 do begin
; 0426 .P = ((Infh^Hop_P) or (Infc^Cost_P));
; 0427 P = vector[.P,1];
; 0428 end;
; 0429 end;
; 0430
; 0431 !
; 0432 ! Initialize the node vectors to "unreachable" and "nowhere"
; 0433 !
; 0434
; 0435 begin
; 0436 local NODEb: ref NODEblock;
; 0437
; 0438 if (NODEb = .XPTDB[XPTnoddb]) eqla 0
; 0439 then if $MCB_GET_DSR (NN*NODEsize*%upval, NODEb)
; 0440 then XPTDB[XPTnoddb] = .NODEb
; 0441 else return signal_stop (XPT$_REE);
; 0442
; 0443 incr I from 1 to NN do begin
; 0444 NODEaddress = .I; ! The node address
; 0445 Minhop = Infh; ! Too many hops away
; 0446 Mincost = Infc; ! and too costly.
; 0447 OL = -1; ! No output line.
; 0448 Reach = false; ! Not reachable.
; 0449 Phase2_node = false; ! Not a phase II node.
; 0450 Local_node = false; ! Not a local address
; 0451 NODEb = vector [.NODEb, NODEsize];
; 0452 end;
; 0453 end;
; 0454
; 0455 !
; 0456 ! Initialize the line vectors and quotas
; 0457 !
; 0458
; 0459 begin
; 0460 local LINEb: ref LINEblock;
; 0461
; 0462 if (LINEb = .XPTDB[XPTlindb]) eqla 0
; 0463 then if $MCB_GET_DSR (NLN*LINEsize*%upval, LINEb)
; 0464 then XPTDB[XPTlindb] = .LINEb
; 0465 else return signal_stop (XPT$_REE);
; 0466
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 8
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
; 0467 incr J from 1 to NLN do begin
; 0468 Nty = 0; ! No adjacent node, no type
; 0469 Nid = 0; ! and no address
; 0470 Nnml = 0;
; 0471 DTEcircuit = false;
; 0472 Send_hello = false;
; 0473 Srm = false;
; 0474 Freeing = false;
; 0475 Ph2only = false;
; 0476 Intercept = false;
; 0477 OWNED = false; ! Initialize the
; 0478 NMstate = OFF; ! various
; 0479 LINEstate = HA; ! circuit states
; 0480 XPTstate = OFF;
; 0481 DLLstate = DLL_FREE;
; 0482 LINEnumber = .J;
; 0483 XPThandle = PD_XPT^8 + .LINEnumber;
; 0484 TLIhandle = PD_TLI^8 + .LINEnumber;
; 0485 DLLhandle = 0;
; 0486 LINEquota = max($LINQ / (if NLN lss 3
; 0487 then 1
; 0488 else if NLN lss 7
; 0489 then 2
; 0490 else 3),
; 0491 1);
; 0492 LINEccb = 0;
; 0493 LINEstate_desired = .LINEstate;
; 0494 LINEfunction = 0;
; 0495 Hello_clock = 0;
; 0496 Listen_clock = 0;
; 0497 LINEb = vector [.LINEb, LINEsize];
; 0498 end;
; 0499 end;
; 0500
; 0501 !
; 0502 ! Initialize the link translate table
; 0503 !
; 0504
; 0505 begin
; 0506 local LTT: ref LTTblock;
; 0507
; 0508 if (LTT = .Ph2link_table) eqla 0
; 0509 then if $MCB_GET_DSR (.Ph2link_allocated*4*%upval, LTT)
; 0510 then Ph2link_table = .LTT
; 0511 else return signal_stop (XPT$_REE);
; 0512
; 0513 decru I from .Ph2link_allocated to 1 do
; 0514 begin
; 0515 LTT[LTTnode1] = -1;
; 0516 LTT[LTTlink1] = -1;
; 0517 LTT[LTTnode2] = -1;
; 0518 LTT[LTTlink2] = -1;
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 9
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
; 0519 LTT = LTT[LTTlen];
; 0520 end;
; 0521 end;
; 0522
; 0523 !
; 0524 ! Initialize the retry queue
; 0525 !
; 0526
; 0527 $MCB_INITIALIZE_QUEUE(REqueue);
; 0528
; 0529 !
; 0530 ! Set up the Transport flags
; 0531 !
; 0532
; 0533 XPTflags = Running;
; 0534
; 0535 !
; 0536 ! Start up the timers
; 0537 !
; 0538
; 0539 Routing_clock = .Routing_timer;
; 0540 Update_clock = .Update_timer;
; 0541
; 0542 $MCB_ENABLE_LONG_TIMER();
; 0543 Timer = 1;
; 0544
; 0545 !
; 0546 ! Return "complete" to calling process
; 0547 !
; 0548
; 0549 CCB[C_STS] = CS_SUC;
; 0550 CCB[C_FNC] = FC_CCP;
; 0551 $MCB_SCHEDULE_CCB(.CCB);
; 0552 end; !End of INIT_XPT
.TITLE XPTINI
.IDENT /X01150/
000000 .PSECT ......, D
000000 114205 ; HEADER
U.3: .RAD50 /XPE/
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
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 10
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
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, .CRDAT
.GLOBL $DSRGT, KISAR6, $LTMEN, $SCHED
.SBTTL INIT.XPT
000000 .PSECT $CODE$, RO
000000 162706 000010 INIT.XPT::
U.1: SUB #10,SP ; 0223
000004 016701 000002G MOV .CRDAT+2,R1 ; 0290
000010 016161 000042 000044 MOV 42(R1),44(R1) ; 0296
000016 016161 000046 000050 MOV 46(R1),50(R1) ; 0297
000024 016161 000036 000040 MOV 36(R1),40(R1) ; 0298
000032 016161 000052 000054 MOV 52(R1),54(R1) ; 0299
000040 116161 000077 000100 MOVB 77(R1),100(R1) ; 0300
000046 116161 000101 000102 MOVB 101(R1),102(R1) ; 0301
000054 116161 000103 000104 MOVB 103(R1),104(R1) ; 0302
000062 116161 000034 000035 MOVB 34(R1),35(R1) ; 0303
000070 016500 000002 MOV 2(R5),R0 ; CCB(.AP.),* 0309
000074 016061 000024 000056 MOV 24(R0),56(R1)
000102 042711 003000 BIC #3000,(R1) ; 0318
000106 016102 000152 MOV 152(R1),R2 ; *,PWDB
000112 001460 BEQ 5$
000114 105762 000004 1$: TSTB 4(R2) ; *(PWDB) 0322
000120 001403 BEQ 2$
000122 052777 001000 000002G BIS #1000,@.CRDAT+2 ; 0323
000130 116201 000026 2$: MOVB 26(R2),R1 ; *(PWDB),* 0324
000134 001403 BEQ 3$
000136 052777 002000 000002G BIS #2000,@.CRDAT+2 ; 0325
000144 010100 3$: MOV R1,R0 ; 0326
000146 060200 ADD R2,R0 ; PWDB,*
000150 062700 000030 ADD #30,R0
000154 016701 000002G MOV .CRDAT+2,R1 ; 0327
000160 016101 000056 MOV 56(R1),R1 ; *,NUM
000164 110120 MOVB R1,(R0)+ ; NUM,PTR
000166 000301 SWAB R1 ; NUM
000170 110120 MOVB R1,(R0)+ ; NUM,PTR
000172 005762 000002 TST 2(R2) ; *(PWDB) 0328
000176 001424 BEQ 4$
000200 005712 TST (R2) ; PWDB 0329
000202 001022 BNE 4$
000204 005001 CLR R1 ; CNT 0332
000206 152001 BISB (R0)+,R1 ; PTR,CNT
000210 160200 SUB R2,R0 ; PWDB,* 0333
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 11
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
000212 060100 ADD R1,R0 ; CNT,*
000214 010001 MOV R0,R1 ; *,CNT
000216 162701 000026 SUB #26,R1 ; *,CNT
000222 010100 MOV R1,R0 ; CNT,* 0334
000224 005200 INC R0
000226 010001 MOV R0,R1
000230 006700 SXT R0
000232 071027 000002 DIV #2,R0
000236 006300 ASL R0
000240 060200 ADD R2,R0 ; PWDB,*
000242 010012 MOV R0,(R2) ; *,PWDB
000244 062712 000026 ADD #26,(R2) ; *,PWDB
000250 011202 4$: MOV (R2),R2 ; PWDB,PWDB 0335
000252 001320 BNE 1$
000254 016700 000002G 5$: MOV .CRDAT+2,R0 ; 0345
000260 016004 000154 MOV 154(R0),R4 ; *,PTR
000264 001012 BNE 6$
000266 012701 000012 MOV #12,R1 ; 0346
000272 004767 000000G JSR PC,$DSRGT
000276 103471 BCS 9$
000300 010004 MOV R0,R4 ; $MCB$R0,PTR
000302 016700 000002G MOV .CRDAT+2,R0 ; 0347
000306 010460 000154 MOV R4,154(R0) ; PTR,*
000312 112724 000001 6$: MOVB #1,(R4)+ ; *,PTR 0350
000316 016700 000002G MOV .CRDAT+2,R0 ; 0351
000322 016000 000056 MOV 56(R0),R0 ; *,NUM
000326 110024 MOVB R0,(R4)+ ; NUM,PTR
000330 000300 SWAB R0 ; NUM
000332 110024 MOVB R0,(R4)+ ; NUM,PTR
000334 032777 002000 000002G BIT #2000,@.CRDAT+2 ; 0352
000342 001403 BEQ 7$
000344 112714 000006 MOVB #6,(R4) ; *,PTR 0353
000350 000402 BR 8$ ; 0352
000352 112714 000002 7$: MOVB #2,(R4) ; *,PTR 0354
000356 005204 8$: INC R4 ; PTR 0353
000360 016700 000002G MOV .CRDAT+2,R0 ; 0355
000364 016000 000124 MOV 124(R0),R0 ; *,NUM
000370 110024 MOVB R0,(R4)+ ; NUM,PTR
000372 000300 SWAB R0 ; NUM
000374 110024 MOVB R0,(R4)+ ; NUM,PTR
000376 112724 000001 MOVB #1,(R4)+ ; *,PTR 0356
000402 112724 000003 MOVB #3,(R4)+ ; *,PTR
000406 105024 CLRB (R4)+ ; PTR
000410 105024 CLRB (R4)+ ; PTR 0357
000412 016700 000002G MOV .CRDAT+2,R0 ; 0358
000416 166004 000154 SUB 154(R0),R4 ; *,PTR
000422 010460 000156 MOV R4,156(R0) ; PTR,* 0359
000426 016004 000160 MOV 160(R0),R4 ; *,PTR 0365
000432 001023 BNE 10$
000434 012701 000072 MOV #72,R1 ; 0366
000440 004767 000000G JSR PC,$DSRGT
000444 103406 BCS 9$
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 12
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
000446 010004 MOV R0,R4 ; $MCB$R0,PTR
000450 016700 000002G MOV .CRDAT+2,R0 ; 0367
000454 010460 000160 MOV R4,160(R0) ; PTR,*
000460 000410 BR 10$ ; 0366
000462 012746 100154 9$: MOV #-77624,-(SP) ; 0368
000466 012746 000001 MOV #1,-(SP)
000472 004767 000000G JSR PC,$STOP
000476 022626 CMP (SP)+,(SP)+
000500 000575 BR 17$
000502 112724 000130 10$: MOVB #130,(R4)+ ; *,PTR 0370
000506 112724 000001 MOVB #1,(R4)+ ; *,PTR 0371
000512 016701 000002G MOV .CRDAT+2,R1 ; 0372
000516 016100 000056 MOV 56(R1),R0
000522 020027 000200 CMP R0,#200
000526 002420 BLT 11$
000530 010066 000004 MOV R0,4(SP) ; *,X
000534 042700 177600 BIC #177600,R0
000540 062700 000200 ADD #200,R0
000544 110024 MOVB R0,(R4)+ ; *,PTR
000546 016600 000004 MOV 4(SP),R0 ; X,*
000552 072027 177771 ASH #-7,R0
000556 042700 177600 BIC #177600,R0
000562 105014 CLRB (R4) ; PTR
000564 150014 BISB R0,(R4) ; *,PTR
000566 000401 BR 12$
000570 110014 11$: MOVB R0,(R4) ; *,PTR
000572 005204 12$: INC R4 ; PTR
000574 116124 000114 MOVB 114(R1),(R4)+ ; *,PTR 0373
000600 016146 000114 MOV 114(R1),-(SP) ; 0375
000604 012746 000116 MOV #116,-(SP)
000610 060116 ADD R1,(SP)
000612 010446 MOV R4,-(SP) ; PTR,*
000614 004767 000000G JSR PC,BL$MOV
000620 010004 MOV R0,R4 ; *,PTR 0374
000622 112724 000007 MOVB #7,(R4)+ ; *,PTR 0376
000626 032777 001000 000002G BIT #1000,@.CRDAT+2 ; 0377
000634 001403 BEQ 13$
000636 112714 000001 MOVB #1,(R4) ; *,PTR 0378
000642 000401 BR 14$ ; 0377
000644 105014 13$: CLRB (R4) ; PTR 0379
000646 005204 14$: INC R4 ; PTR 0378
000650 016700 000002G MOV .CRDAT+2,R0 ; 0380
000654 016000 000126 MOV 126(R0),R0 ; *,NUM
000660 110024 MOVB R0,(R4)+ ; NUM,PTR
000662 000300 SWAB R0 ; NUM
000664 110024 MOVB R0,(R4)+ ; NUM,PTR
000666 016700 000002G MOV .CRDAT+2,R0 ; 0381
000672 016000 000126 MOV 126(R0),R0 ; *,NUM
000676 110024 MOVB R0,(R4)+ ; NUM,PTR
000700 000300 SWAB R0 ; NUM
000702 110024 MOVB R0,(R4)+ ; NUM,PTR
000704 016700 000002G MOV .CRDAT+2,R0 ; 0382
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 13
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
000710 016066 000032 000014 MOV 32(R0),14(SP) ; *,X
000716 116624 000014 MOVB 14(SP),(R4)+ ; X,PTR
000722 116624 000015 MOVB 15(SP),(R4)+ ; X,PTR
000726 105024 CLRB (R4)+ ; PTR 0383
000730 105024 CLRB (R4)+ ; PTR
000732 105024 CLRB (R4)+ ; PTR
000734 105024 CLRB (R4)+ ; PTR 0384
000736 105024 CLRB (R4)+ ; PTR
000740 105024 CLRB (R4)+ ; PTR
000742 105024 CLRB (R4)+ ; PTR 0385
000744 166004 000160 SUB 160(R0),R4 ; *,PTR 0386
000750 010460 000162 MOV R4,162(R0) ; PTR,* 0387
000754 005760 000172 TST 172(R0) ; 0393
000760 001011 BNE 15$
000762 012701 000072 MOV #72,R1 ; 0394
000766 004767 000000G JSR PC,$DSRGT
000772 103430 BCS 16$
000774 016701 000002G MOV .CRDAT+2,R1 ; 0395
001000 010061 000172 MOV R0,172(R1) ; PTR,*
001004 016700 000002G 15$: MOV .CRDAT+2,R0 ; 0396
001010 005060 000174 CLR 174(R0) ; 0398
001014 016004 000164 MOV 164(R0),R4 ; *,PTR 0404
001020 001027 BNE 18$
001022 116001 000141 MOVB 141(R0),R1 ; 0405
001026 062701 000004 ADD #4,R1
001032 004767 000000G JSR PC,$DSRGT
001036 103406 BCS 16$
001040 010004 MOV R0,R4 ; $MCB$R0,PTR
001042 016700 000002G MOV .CRDAT+2,R0 ; 0406
001046 010460 000164 MOV R4,164(R0) ; PTR,*
001052 000412 BR 18$ ; 0405
001054 012716 100154 16$: MOV #-77624,(SP) ; 0407
001060 012746 000001 MOV #1,-(SP)
001064 004767 000000G JSR PC,$STOP
001070 062706 000010 ADD #10,SP
001074 000167 001060 17$: JMP 38$
001100 112724 000005 18$: MOVB #5,(R4)+ ; *,PTR 0409
001104 016700 000002G MOV .CRDAT+2,R0 ; 0410
001110 016000 000056 MOV 56(R0),R0 ; *,NUM
001114 110024 MOVB R0,(R4)+ ; NUM,PTR
001116 000300 SWAB R0 ; NUM
001120 110024 MOVB R0,(R4)+ ; NUM,PTR
001122 112724 000014 MOVB #14,(R4)+ ; *,PTR 0411
001126 012716 000252 MOV #252,(SP) ; 0412
001132 012746 000014 MOV #14,-(SP)
001136 010446 MOV R4,-(SP) ; PTR,*
001140 004767 000000G JSR PC,BL$FIL
001144 010004 MOV R0,R4 ; *,PTR
001146 016702 000002G MOV .CRDAT+2,R2 ; 0413
001152 166204 000164 SUB 164(R2),R4 ; *,PTR
001156 010462 000166 MOV R4,166(R2) ; PTR,* 0414
001162 016267 000006 000000G MOV 6(R2),KISAR6 ; 0421
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 14
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
001170 016200 000010 MOV 10(R2),R0 ; *,P 0424
001174 016201 000022 MOV 22(R2),R1 ; 0425
001200 005201 INC R1
001202 070162 000016 MUL 16(R2),R1
001206 005701 TST R1 ; IJ
001210 003403 BLE 20$
001212 012720 077777 19$: MOV #77777,(R0)+ ; *,P 0426
001216 077103 SOB R1,19$ ; IJ,* 0000
001220 016204 000012 20$: MOV 12(R2),R4 ; *,NODEB 0438
001224 001015 BNE 21$
001226 016201 000016 MOV 16(R2),R1 ; 0439
001232 072127 000003 ASH #3,R1
001236 010102 MOV R1,R2
001240 004767 000000G JSR PC,$DSRGT
001244 103445 BCS 24$
001246 010004 MOV R0,R4 ; $MCB$R0,NODEB
001250 016700 000002G MOV .CRDAT+2,R0 ; 0440
001254 010460 000012 MOV R4,12(R0) ; NODEB,*
001260 016701 000002G 21$: MOV .CRDAT+2,R1 ; 0443
001264 005000 CLR R0 ; I
001266 000416 BR 23$
001270 010064 000002 22$: MOV R0,2(R4) ; I,*(NODEB) 0444
001274 012764 000037 000004 MOV #37,4(R4) ; *,*(NODEB) 0445
001302 012764 001777 000006 MOV #1777,6(R4) ; *,*(NODEB) 0446
001310 112714 000377 MOVB #377,(R4) ; *,NODEB 0447
001314 042724 101400 BIC #101400,(R4)+ ; *,NODEB 0450
001320 062704 000006 ADD #6,R4 ; *,NODEB 0451
001324 005200 23$: INC R0 ; I 0443
001326 020061 000016 CMP R0,16(R1) ; I,*
001332 003756 BLE 22$
001334 016166 000020 000014 MOV 20(R1),14(SP) ; *,LINEB 0462
001342 001016 BNE 25$
001344 016101 000022 MOV 22(R1),R1 ; 0463
001350 070127 000104 MUL #104,R1
001354 004767 000000G JSR PC,$DSRGT
001360 103577 24$: BCS 33$
001362 010066 000014 MOV R0,14(SP) ; $MCB$R0,LINEB
001366 016700 000002G MOV .CRDAT+2,R0 ; 0464
001372 016660 000014 000020 MOV 14(SP),20(R0) ; LINEB,*
001400 016702 000002G 25$: MOV .CRDAT+2,R2 ; 0467
001404 016203 000022 MOV 22(R2),R3
001410 005066 000012 CLR 12(SP) ; J
001414 000542 BR 32$
001416 012701 000002 26$: MOV #2,R1
001422 066601 000014 ADD 14(SP),R1 ; LINEB,*
001426 010100 MOV R1,R0
001430 105010 CLRB (R0) ; 0468
001432 016601 000014 MOV 14(SP),R1 ; LINEB,* 0469
001436 005061 000004 CLR 4(R1) ; *(LINEB)
001442 105061 000007 CLRB 7(R1) ; *(LINEB) 0470
001446 042710 012400 BIC #12400,(R0) ; 0476
001452 042711 034400 BIC #34400,(R1) ; *,LINEB 0477
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 15
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
001456 010100 MOV R1,R0 ; LINEB,* 0478
001460 112760 000002 000037 MOVB #2,37(R0) ; *,*(LINEB)
001466 105010 CLRB (R0) ; LINEB 0479
001470 112760 000002 000041 MOVB #2,41(R0) ; *,*(LINEB) 0480
001476 105060 000006 CLRB 6(R0) ; *(LINEB) 0481
001502 012700 000026 MOV #26,R0
001506 060100 ADD R1,R0 ; LINEB,*
001510 010001 MOV R0,R1
001512 116611 000012 MOVB 12(SP),(R1) ; J,* 0482
001516 005000 CLR R0 ; 0483
001520 156200 000004 BISB 4(R2),R0
001524 072027 000010 ASH #10,R0
001530 005004 CLR R4
001532 151104 BISB (R1),R4
001534 060400 ADD R4,R0
001536 010011 MOV R0,(R1)
001540 005000 CLR R0 ; 0484
001542 156200 000003 BISB 3(R2),R0
001546 072027 000010 ASH #10,R0
001552 005004 CLR R4
001554 151104 BISB (R1),R4
001556 060400 ADD R4,R0
001560 016604 000014 MOV 14(SP),R4 ; LINEB,*
001564 010064 000030 MOV R0,30(R4) ; *,*(LINEB)
001570 010400 MOV R4,R0 ; LINEB,* 0485
001572 005060 000032 CLR 32(R0) ; *(LINEB)
001576 020327 000003 CMP R3,#3 ; 0486
001602 002003 BGE 27$
001604 012704 000001 MOV #1,R4
001610 000411 BR 30$
001612 020327 000007 27$: CMP R3,#7 ; 0488
001616 002003 BGE 28$
001620 012700 000002 MOV #2,R0
001624 000402 BR 29$
001626 012700 000003 28$: MOV #3,R0
001632 010004 29$: MOV R0,R4 ; 0486
001634 005001 30$: CLR R1
001636 156201 000034 BISB 34(R2),R1
001642 005000 CLR R0
001644 071004 DIV R4,R0
001646 005700 TST R0
001650 003002 BGT 31$
001652 012700 000001 MOV #1,R0
001656 016601 000014 31$: MOV 14(SP),R1 ; LINEB,*
001662 110061 000036 MOVB R0,36(R1) ; *,*(LINEB)
001666 010100 MOV R1,R0 ; LINEB,* 0492
001670 005060 000050 CLR 50(R0) ; *(LINEB)
001674 111160 000042 MOVB (R1),42(R0) ; LINEB,*(LINEB) 0493
001700 105060 000040 CLRB 40(R0) ; *(LINEB) 0494
001704 005060 000044 CLR 44(R0) ; *(LINEB) 0495
001710 005060 000046 CLR 46(R0) ; *(LINEB) 0496
001714 062766 000104 000014 ADD #104,14(SP) ; *,LINEB 0497
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 16
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (3)
001722 005266 000012 32$: INC 12(SP) ; J 0467
001726 026603 000012 CMP 12(SP),R3 ; J,*
001732 003631 BLE 26$
001734 016204 000026 MOV 26(R2),R4 ; *,LTT 0508
001740 001027 BNE 35$
001742 016201 000030 MOV 30(R2),R1 ; 0509
001746 072127 000003 ASH #3,R1
001752 010102 MOV R1,R2
001754 004767 000000G JSR PC,$DSRGT
001760 103406 33$: BCS 34$
001762 010004 MOV R0,R4 ; $MCB$R0,LTT
001764 016700 000002G MOV .CRDAT+2,R0 ; 0510
001770 010460 000026 MOV R4,26(R0) ; LTT,*
001774 000411 BR 35$ ; 0509
001776 012716 100154 34$: MOV #-77624,(SP) ; 0511
002002 012746 000001 MOV #1,-(SP)
002006 004767 000000G JSR PC,$STOP
002012 062706 000014 ADD #14,SP
002016 000460 BR 38$
002020 016700 000002G 35$: MOV .CRDAT+2,R0 ; 0513
002024 016001 000030 MOV 30(R0),R1 ; *,I
002030 001413 BEQ 37$
002032 012714 177777 36$: MOV #-1,(R4) ; *,LTT 0515
002036 011464 000002 MOV (R4),2(R4) ; *,*(LTT) 0516
002042 011464 000004 MOV (R4),4(R4) ; *,*(LTT) 0517
002046 012464 000004 MOV (R4)+,4(R4) ; *,*(LTT) 0518
002052 062704 000006 ADD #6,R4 ; *,LTT 0519
002056 077113 SOB R1,36$ ; I,* 0000
002060 012701 000110 37$: MOV #110,R1 ; 0527
002064 060001 ADD R0,R1
002066 005011 CLR (R1)
002070 010161 000002 MOV R1,2(R1)
002074 012760 000001 000106 MOV #1,106(R0) ; 0533
002102 016060 000060 000072 MOV 60(R0),72(R0) ; 0539
002110 016060 000062 000074 MOV 62(R0),74(R0) ; 0540
002116 004767 000000G JSR PC,$LTMEN ; 0542
002122 112777 000001 000002G MOVB #1,@.CRDAT+2 ; 0543
002130 016504 000002 MOV 2(R5),R4 ; CCB(.AP.),* 0549
002134 012764 000001 000014 MOV #1,14(R4)
002142 112764 000022 000012 MOVB #22,12(R4) ; 0550
002150 004767 000000G JSR PC,$SCHED ; 0551
002154 062706 000012 ADD #12,SP ; 0252
002160 062706 000010 38$: ADD #10,SP ; 0223
002164 000207 RTS PC
; Routine Size: 571 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 11 words
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 17
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (4)
; 0553 global routine TERM_XPT (CCB): CALL$ novalue =
; 0554
; 0555 !++
; 0556 ! FUNCTIONAL DESCRIPTION:
; 0557 !
; 0558 ! Terminates Transport without bringing it back up. This is
; 0559 ! done by terminating all the lines.
; 0560 !
; 0561 ! FORMAL PARAMETERS
; 0562 !
; 0563 ! CCB
; 0564 !
; 0565 ! IMPLICIT INPUTS
; 0566 !
; 0567 ! XPTflags
; 0568 !
; 0569 ! ROUTINE VALUE:
; 0570 ! COMPLETION CODES:
; 0571 !
; 0572 ! NONE.
; 0573 !
; 0574 ! SIDE EFFECTS:
; 0575 !
; 0576 ! NONE.
; 0577 !
; 0578 !--
; 0579
; 0580 begin
; 0581 map CCB: ref block field (C_fields);
; 0582 require 'XPTSYM';
; 0619
; 0620 !
; 0621 ! If Transport isn't up, return an error
; 0622 !
; 0623
; 0624 if .XPTflags eql 0
; 0625 then begin
; 0626 CCB[C_STS] = CE_DIS;
; 0627 CCB[C_FNC] = FC_CCP;
; 0628 $MCB_SCHEDULE_CCB(.CCB);
; 0629 return;
; 0630 end;
; 0631
; 0632 !
; 0633 ! Declare a "Transport Terminating" event
; 0634 !
; 0635
; 0636 %( TBS )%
; 0637
; 0638 !
; 0639 ! Clear out the retry queue
; 0640 !
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 18
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (4)
; 0641
; 0642 while true do
; 0643 begin ! Terminate each CCB on the queue
; 0644 local RETRY_CCB: ref block field (C_XPT_FIELDS);
; 0645 if not $MCB_DEQUEUE_CCB(REqueue, RETRY_CCB) then exitloop;
; 0646 RETRY_CCB[C_FNC] = FC_CCP;
; 0647 RETRY_CCB[C_STS] = CE_DIS;
; 0648 $MCB_SCHEDULE_CCB(.RETRY_CCB);
; 0649 end;
; 0650
; 0651 !
; 0652 ! Flag Transport as down
; 0653 !
; 0654
; 0655 XPTflags = 0;
; 0656 Routing_clock = 0;
; 0657 Update_clock = 0;
; 0658
; 0659 !
; 0660 ! Save the function CCB
; 0661 !
; 0662
; 0663 Tid = .CCB; !Note this destroys the Transport ID
; 0664
; 0665 !
; 0666 ! Bring each line down
; 0667 !
; 0668
; 0669 $XPT_for_each_LINEb_do_begin
; 0670 Service_line = true; ! Flag for line service.
; 0671 $XPT_next_LINEb_end;
; 0672
; 0673 end; !End of TERM_XPT
.GLOBL $CMQRM
.SBTTL TERM.XPT
000000 016703 000002G TERM.XPT::
U.2: MOV .CRDAT+2,R3 ; 0624
000004 005763 000106 TST 106(R3)
000010 001013 BNE 1$
000012 016504 000002 MOV 2(R5),R4 ; CCB(.AP.),* 0626
000016 012764 177520 000014 MOV #-260,14(R4)
000024 112764 000022 000012 MOVB #22,12(R4) ; 0627
000032 004767 000000G JSR PC,$SCHED ; 0628
000036 000207 RTS PC ; 0625
000040 016703 000002G 1$: MOV .CRDAT+2,R3 ; 0645
000044 062703 000110 ADD #110,R3
000050 004767 000000G JSR PC,$CMQRM
000054 103411 BCS 2$
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 19
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (4)
000056 112764 000022 000012 MOVB #22,12(R4) ; *,*(RETRY.CCB) 0646
000064 012764 177520 000014 MOV #-260,14(R4) ; *,*(RETRY.CCB) 0647
000072 004767 000000G JSR PC,$SCHED ; 0648
000076 000760 BR 1$ ; 0642
000100 016703 000002G 2$: MOV .CRDAT+2,R3 ; 0649
000104 005063 000106 CLR 106(R3) ; 0655
000110 005063 000072 CLR 72(R3) ; 0656
000114 005063 000074 CLR 74(R3) ; 0657
000120 016563 000002 000056 MOV 2(R5),56(R3) ; CCB(.AP.),* 0663
000126 016304 000020 MOV 20(R3),R4 ; *,LINEB
000132 016303 000022 MOV 22(R3),R3 ; *,$XPT$LINEB.CNT
000136 001405 BEQ 4$
000140 052724 040000 3$: BIS #40000,(R4)+ ; *,LINEB 0670
000144 062704 000102 ADD #102,R4 ; *,LINEB
000150 077305 SOB R3,3$ ; $XPT$LINEB.CNT,* 0000
000152 000207 4$: RTS PC ; 0553
; Routine Size: 54 words, Routine Base: $CODE$ + 2166
; Maximum stack depth per invocation: 1 word
; 0674 end !End of Module XPTMAIN
; 0675 eludom
; OTS external references
.GLOBL $STOP, BL$FIL, BL$MOV
; PSECT SUMMARY
;
; Psect Name Words Attributes
; ...... 16 RW , D , LCL, REL, CON
; $CODE$ 625 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<MCB>XPORTX.L16.15 599 4 0 0
; NETPKG:<MCB>MCBLIB.L16.15 372 41 11 0
; NETPKG:<MCB>NMXLIB.L16.13 200 0 0 0
; NETPKG:<XPT>XPTLIB.L16.3 510 277 54 0
XPTINI 25-Jan-1983 09:57:21 TOPS-20 Bliss-16 2A(530) Page 20
X01150 30-Dec-1982 21:27:45 NETPKG:<XPT>XPTINI.BLI.9 (4)
; Size: 625 code + 16 data words
; Run Time: 00:16.1
; Elapsed Time: 00:59.0
; Memory Used: 118 pages
; Compilation Complete