Trailing-Edge
-
PDP-10 Archives
-
BB-R598A-RM_1983
-
swskit-v3/listings/xpt/tlitim.list
There are no other files named tlitim.list in the archive.
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 1
30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (1)
; 0001 module TLITIM (
; 0002 IDENT = 'X01140'
; 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 ! Transport Line Interface timer service routine: updates all timers
; 0033 ! and calls the timer routines LINTIM and LISTENER.
; 0034 !
; 0035 ! ENVIRONMENT: MCB
; 0036 !
; 0037 ! AUTHOR: L. Webber , CREATION DATE: 19-Dec-79
; 0038 !
; 0039 ! MODIFIED BY:
; 0040 !
; 0041 ! L. Webber, 19-Dec-79 : VERSION 1.00
; 0042 !
; 0043 ! 1.01 L. Webber, 2-Apr-80
; 0044 ! Modify to support node and line sub-data-bases
; 0045 !
; 0046 ! 1.02 L. Webber, 15-Apr-80
; 0047 ! Add process initialization code
; 0048 !
; 0049 ! 1.03 L. Webber, 27-Jun-80
; 0050 ! Modify to use MCBLIB macros
; 0051 !
; 0052 ! 1.04 L. Webber, 11-Dec-80
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 2
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (1)
; 0053 ! Modify to support MCB 3.1
; 0054 !
; 0055 ! 1.05 L. Webber, 20-Jan-81
; 0056 ! Modify initialization procedure to:
; 0057 ! . Update _CRDAT instead of $XPTDB
; 0058 ! . No longer take NLN as a parameter
; 0059 ! thus making XPE read-only.
; 0060 !
; 0061 ! 1.06 L. Webber, 26-Jan-81
; 0062 ! Added Event Logging and Counter Updating
; 0063 !
; 0064 ! 1.07 L. Webber, 24-Feb-81
; 0065 ! TLITIM is not a dispatch routine any more; it is CALL$P'd
; 0066 ! from Transport.
; 0067 !
; 0068 ! 1.08 L. Webber, 27-Feb-81
; 0069 ! Add dummy "timer routine" TLINOP for process initialization.
; 0070 !
; 0071 ! 1.09 L. Webber, 16-Mar-81
; 0072 ! Make INI_LIN CALL$ linkage
; 0073 !
; 0074 ! 1.10 L. Webber, 2-Apr-81
; 0075 ! Generate the "reason" parameter item in the Event Buffer via a
; 0076 ! call to EP_REASON.
; 0077 !
; 0078 ! 1.11 L. Webber, 2-Apr-81
; 0079 ! Add LIX as NMXID in event logging.
; 0080 !
; 0081 ! 1.12 L. Webber, 6-Apr-81
; 0082 ! Add initialization timer maintenance.
; 0083 !
; 0084 ! 1.13 L. Webber, 24-Sep-81
; 0085 ! Change event logging to use new macros to build event buffer.
; 0086 !
; 0087 ! 1.14 A. Peckham, 19-Apr-82
; 0088 ! Eliminate references to LOG_EVENT, GETLINE.
; 0089 ! Rework Listen_clock support.
; 0090 !
; 0091 !--
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 3
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (2)
; 0092
; 0093 !
; 0094 ! INCLUDE FILES:
; 0095 !
; 0096
; 0097 require 'XPTMAC';
; 0195
; 0196 !
; 0197 ! TABLE OF CONTENTS
; 0198 !
; 0199
; 0200 forward routine
; 0201 TLITIM: CALL$ novalue,
; 0202 INITIALIZER: LINKAGE_DB novalue,
; 0203 LISTENER: LINKAGE_DB novalue,
; 0204 TLIDB: CALL$ novalue;
; 0205
; 0206 !
; 0207 ! MACROS:
; 0208 !
; 0209
; 0210 !
; 0211 ! EQUATED SYMBOLS:
; 0212 !
; 0213
; 0214 !
; 0215 ! OWN STORAGE:
; 0216 !
; 0217
; 0218 !
; 0219 ! EXTERNAL REFERENCES:
; 0220 !
; 0221
; 0222 external routine
; 0223 LINRVR: LINKAGE_DB novalue;
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 4
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (3)
; 0224
; 0225 global
; 0226 routine TLITIM: CALL$ novalue =
; 0227
; 0228 !++
; 0229 ! FUNCTIONAL DESCRIPTION:
; 0230 !
; 0231 ! This routine is called once every time interval. It updates Listen_clock
; 0232 ! and then calls the routines INITIALIZER or LISTENER if it expires.
; 0233 ! It also initiates resource recovery if a line needs it.
; 0234 !
; 0235 ! FORMAL PARAMETERS
; 0236 !
; 0237 ! NONE.
; 0238 !
; 0239 ! IMPLICIT INPUTS
; 0240 !
; 0241 ! Listen_clock, LINEfunction
; 0242 !
; 0243 ! ROUTINE VALUE:
; 0244 ! COMPLETION CODES:
; 0245 !
; 0246 ! NONE.
; 0247 !
; 0248 ! SIDE EFFECTS:
; 0249 !
; 0250 ! See the timer routines.
; 0251 !
; 0252 !--
; 0253
; 0254 begin
; 0255 require 'XPTSYM';
; 0292 label LISTEN_CHECKER;
; 0293
; 0294 $XPT_for_each_LINEb_do_begin
; 0295 if .Listen_clock neq 0
; 0296 then if (Listen_clock = .Listen_clock - 1) eql 0
; 0297 then case .LINEstate from HA to RU of
; 0298 set
; 0299 [RU]:
; 0300 begin
; 0301 Listen_clock = .Listen_timer;
; 0302 LISTENER(.LINEb);
; 0303 end;
; 0304 [TI,TV,TC]:
; 0305 INITIALIZER(.LINEb);
; 0306 [inrange]:
; 0307 ;
; 0308 tes;
; 0309
; 0310 if .LINEfunction gtr 0 then LINRVR(.LINEb);
; 0311
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 5
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (3)
; 0312 $XPT_next_LINEb_end;
; 0313
; 0314 end; !End of TLITIM
.TITLE TLITIM
.IDENT /X01140/
.GLOBL LINRVR, .CRDAT
.SBTTL TLITIM
000000 .PSECT $CODE$, RO
000000 016700 000002G TLITIM::
U.1: MOV .CRDAT+2,R0 ; 0292
000004 016005 000020 MOV 20(R0),R5 ; *,LINEB
000010 016001 000022 MOV 22(R0),R1 ; *,$XPT$LINEB.CNT
000014 001432 BEQ 6$
000016 012700 000046 1$: MOV #46,R0 ; 0295
000022 060500 ADD R5,R0 ; LINEB,*
000024 005710 TST (R0)
000026 001415 BEQ 4$
000030 005310 DEC (R0) ; 0296
000032 001013 BNE 4$
000034 111502 MOVB (R5),R2 ; LINEB,* 0297
000036 006302 ASL R2
000040 066207 000000' ADD P.AAA(R2),PC ; Case dispatch
000044 016510 000024 2$: MOV 24(R5),(R0) ; *(LINEB),* 0301
000050 004767 000000V JSR PC,U.3 ; 0302
000054 000402 BR 4$ ; 0297
000056 004767 000000V 3$: JSR PC,U.2 ; 0305
000062 105765 000040 4$: TSTB 40(R5) ; *(LINEB) 0310
000066 003402 BLE 5$
000070 004767 000000G JSR PC,LINRVR
000074 062705 000104 5$: ADD #104,R5 ; *,LINEB
000100 077132 SOB R1,1$ ; $XPT$LINEB.CNT,* 0000
000102 000207 6$: RTS PC ; 0226
; Routine Size: 34 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 1 word
000000 .PSECT $PLIT$, RO , D
P.AAA: ; CASE Table for TLITIM+0040 0297
000000 000016 .WORD 16 ; [4$]
000002 000016 .WORD 16 ; [4$]
000004 000016 .WORD 16 ; [4$]
000006 000016 .WORD 16 ; [4$]
000010 000016 .WORD 16 ; [4$]
000012 000012 .WORD 12 ; [3$]
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 6
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (3)
000014 000012 .WORD 12 ; [3$]
000016 000012 .WORD 12 ; [3$]
000020 000000 .WORD 0 ; [2$]
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 7
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (4)
; 0315
; 0316 routine INITIALIZER (LINEb): LINKAGE_DB novalue =
; 0317
; 0318 !++
; 0319 ! FUNCTIONAL DESCRIPTION:
; 0320 !
; 0321 ! INITIALIZATION TIMER
; 0322 !
; 0323 ! If a circuit is in its initialization sequence (TI, TV or TC state), a
; 0324 ! timer will be kept. If the timer expires without the circuit going to RU
; 0325 ! state or the initialization failing, the circuit is reinitialized.
; 0326 !
; 0327 ! FORMAL PARAMETERS
; 0328 !
; 0329 ! NONE.
; 0330 !
; 0331 ! IMPLICIT INPUTS
; 0332 !
; 0333 ! None
; 0334 !
; 0335 ! ROUTINE VALUE:
; 0336 ! COMPLETION CODES:
; 0337 !
; 0338 ! NONE.
; 0339 !
; 0340 ! SIDE EFFECTS:
; 0341 !
; 0342 ! Retries an initialization function.
; 0343 !
; 0344 !--
; 0345
; 0346 begin
; 0347 require 'XPTSYM';
; 0384
; 0385 COUNTER_INCREMENT(LINEb,XPTini_fail); ! Increment the init. fails ctr
; 0386 $NM_LOG_BEGIN(); ! declare a "line down" event
; 0387 PARAMETER_C_1(5,uplit(5));
; 0388 $NM_LOG_END(4^6+$XPT$E_ILF,.NMXid);
; 0389 CALL$L(INI_LIN,.LINEb);
; 0390 end; !End of INITIALIZER
000022 000005 P.AAB: .WORD 5
.GLOBL $IC8, $NLBEG, $DPC1, $NLEND, INI.LIN
.SBTTL INITIALIZER
000104 .PSECT $CODE$, RO
000000 004167 000000G ; INITIALIZER
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 8
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (4)
U.2: JSR R1,$SAVE5 ; 0316
000004 010502 MOV R5,R2 ; *,LINEB
000006 062705 000103 ADD #103,R5 ; 0385
000012 010500 MOV R5,R0
000014 004767 000000G JSR PC,$IC8
000020 004767 000000G JSR PC,$NLBEG ; 0386
000024 012746 000005 MOV #5,-(SP) ; 0387
000030 116700 000022' MOVB P.AAB,R0
000034 004767 000000G JSR PC,$DPC1
000040 012700 000413 MOV #413,R0 ; 0388
000044 016201 000034 MOV 34(R2),R1 ; *(LINEB),*
000050 004767 000000G JSR PC,$NLEND
000054 010216 MOV R2,(SP) ; LINEB,* 0389
000056 012746 000001 MOV #1,-(SP)
000062 012746 000000G MOV #INI.LIN,-(SP)
000066 004767 000000G JSR PC,$CALL
000072 062706 000006 ADD #6,SP ; 0346
000076 000207 RTS PC ; 0316
; Routine Size: 32 words, Routine Base: $CODE$ + 0104
; Maximum stack depth per invocation: 10 words
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 9
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (5)
; 0391
; 0392 routine LISTENER (LINEb): LINKAGE_DB novalue =
; 0393
; 0394 !++
; 0395 ! FUNCTIONAL DESCRIPTION:
; 0396 !
; 0397 ! This routine is called on a time interval. For each active line with
; 0398 ! a Phase III neighbor, it checks LINEflags to be sure that at least one
; 0399 ! message has been received since T4 last expired. If no message has been
; 0400 ! received on the tine, the line is brought down.
; 0401 !
; 0402 ! FORMAL PARAMETERS
; 0403 !
; 0404 ! NONE.
; 0405 !
; 0406 ! IMPLICIT INPUTS
; 0407 !
; 0408 ! T4, LINEstate, Nty, LINEflags
; 0409 !
; 0410 ! ROUTINE VALUE:
; 0411 ! COMPLETION CODES:
; 0412 !
; 0413 ! NONE.
; 0414 !
; 0415 ! SIDE EFFECTS:
; 0416 !
; 0417 ! One or more lines may be restarted.
; 0418 !
; 0419 !--
; 0420
; 0421 begin
; 0422 require 'XPTSYM';
; 0459
; 0460 !
; 0461 ! Check the line for aptness
; 0462 !
; 0463
; 0464 selectoneu .Nty of
; 0465 set
; 0466 [Full, Small]:
; 0467 begin
; 0468 !
; 0469 ! If we got here, no data has been received to reset the timer.
; 0470 !
; 0471 COUNTER_INCREMENT(LINEb,XPTlinedn);! increment "line downs" ctr,
; 0472 $NM_LOG_BEGIN(); ! log "line failed -
; 0473 PARAMETER_C_1(5,uplit(10)); ! listener timeout" event
; 0474 $NM_LOG_END(4^6+$XPT$E_LLF,.NMXid);
; 0475 CALL$L(INI_LIN,.LINEb); ! and restart the line
; 0476 end;
; 0477 [otherwise]:
; 0478 ;
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 10
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (5)
; 0479 tes;
; 0480
; 0481 end; !End of LISTENER
000024 .PSECT $PLIT$, RO , D
000024 000012 P.AAC: .WORD 12
.SBTTL LISTENER
000204 .PSECT $CODE$, RO
000000 004167 000000G ; LISTENER
U.3: JSR R1,$SAVE5 ; 0392
000004 010502 MOV R5,R2 ; *,LINEB
000006 116200 000002 MOVB 2(R2),R0 ; *(LINEB),* 0464
000012 020027 000002 CMP R0,#2
000016 103437 BLO 1$
000020 020027 000003 CMP R0,#3
000024 101034 BHI 1$
000026 062705 000102 ADD #102,R5 ; 0471
000032 010500 MOV R5,R0
000034 004767 000000G JSR PC,$IC8
000040 004767 000000G JSR PC,$NLBEG ; 0472
000044 012746 000005 MOV #5,-(SP) ; 0473
000050 116700 000024' MOVB P.AAC,R0
000054 004767 000000G JSR PC,$DPC1
000060 012700 000407 MOV #407,R0 ; 0474
000064 016201 000034 MOV 34(R2),R1 ; *(LINEB),*
000070 004767 000000G JSR PC,$NLEND
000074 010216 MOV R2,(SP) ; LINEB,* 0475
000076 012746 000001 MOV #1,-(SP)
000102 012746 000000G MOV #INI.LIN,-(SP)
000106 004767 000000G JSR PC,$CALL
000112 062706 000006 ADD #6,SP ; 0467
000116 000207 1$: RTS PC ; 0392
; Routine Size: 40 words, Routine Base: $CODE$ + 0204
; Maximum stack depth per invocation: 10 words
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 11
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (6)
; 0482
; 0483 global
; 0484 routine TLIDB (DBADDR): CALL$ novalue =
; 0485
; 0486 !++
; 0487 ! FUNCTIONAL DESCRIPTION:
; 0488 !
; 0489 ! This routine is called from the XPT process on initialization
; 0490 ! and passes the address of the Transport data base.
; 0491 !
; 0492 ! FORMAL PARAMETERS
; 0493 !
; 0494 ! DBADDR The address of the Transport data base
; 0495 !
; 0496 ! IMPLICIT INPUTS
; 0497 !
; 0498 ! NONE.
; 0499 !
; 0500 ! ROUTINE VALUE:
; 0501 ! COMPLETION CODES:
; 0502 !
; 0503 ! NONE.
; 0504 !
; 0505 ! SIDE EFFECTS:
; 0506 !
; 0507 ! NONE.
; 0508 !
; 0509 !--
; 0510
; 0511 begin
; 0512 external
; 0513 MCB$GAW_PROCESS_DATA_BASE: vector[2];
; 0514
; 0515 MCB$GAW_PROCESS_DATA_BASE[1] = .DBADDR; ! Save the data base address
; 0516 end; !End of TLIDB
.SBTTL TLIDB
000000 016567 000002 000002G TLIDB::
U.4: MOV 2(R5),.CRDAT+2 ; DBADDR(.AP.),* 0515
000006 000207 RTS PC ; 0484
; Routine Size: 4 words, Routine Base: $CODE$ + 0324
; Maximum stack depth per invocation: 0 words
; 0517
; 0518 end !End of module TLITIM
; 0519 eludom
TLITIM 25-Jan-1983 10:02:40 TOPS-20 Bliss-16 2A(530) Page 12
X01140 30-Dec-1982 21:16:35 NETPKG:<XPT>TLITIM.BLI.8 (6)
; OTS external references
.GLOBL $SAVE5, $CALL
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $PLIT$ 11 RO , D , LCL, REL, CON
; $CODE$ 110 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<MCB>XPORTX.L16.15 599 0 0 0
; NETPKG:<MCB>MCBLIB.L16.15 372 4 1 0
; NETPKG:<MCB>NMXLIB.L16.13 200 8 4 0
; NETPKG:<XPT>XPTLIB.L16.3 510 145 28 0
; Size: 110 code + 11 data words
; Run Time: 00:03.7
; Elapsed Time: 00:16.4
; Memory Used: 28 pages
; Compilation Complete
ADDRESS 149+ 151+ 152+ 154+ 155+ 157+ 158+ 164+ 165+ 168+ 169+ 170+
BPT 178+# 190+#
BUFCHK 182+ 183+# 192+ 193+#
CALL$L 389 475
CALL$ 201 204 226# 484#
CHKBUF 185+* 186+
COUNTER_INCREMENT 385 471
DBADDR 484 515
FULL 466
GETQ 149+#
GETW 128+# 151+ 152+
HA 297
I 173+ 175+
INITIALIZER 202 305 316*
INI_LIN 389 475
J 173+ 175+
LINEBLOCK 282+ 374+ 449+
LINEB 280+ 282+ 302 305 310 316 372+ 374+ 385 389 392 447+
449+ 471 475
LINEFUNCTION 310
LINESTATE 297
LINKAGE_DB 202 203 223 316# 392#
LINRVR 223* 310
LISTENER 203 302 392*
LISTEN_CHECKER 292
LISTEN_CLOCK 295 296# 301#
LISTEN_TIMER 301
M 173+ 174+
MATRIX 173+# 175+
MCB$GAW_PROCESS_DATA_BASE 285+ 286+ 289+ 377+ 378+ 381+ 452+ 453+ 456+ 513 515#
N 173+ 174+
NL 173+ 175+
NMXID 388 474
NODEBLOCK 277+ 369+ 444+
NODEB 275+ 277+ 367+ 369+ 442+ 444+
NOP 190+ 191+ 193+
NO_LINEB 281+ 373+ 448+
NO_NODEB 276+ 368+ 443+
NTY 464
PARAMETER_C_1 387 473
PTR 128+ 131+ 132+ 135+ 138+ 139+ 145+ 146+ 149+ 151+ 152+ 154+
157+ 158+ 159+ 160+ 164+ 165+
PUTQ 154+#
PUTW 135+# 164+ 165+
RU 297 299
SMALL 466
TC 304
TI 304
TLIDB 204 484*
TLITIM 1# 201 226*
TV 304
UNIT 173+# 174+ 175+
VALUE 135+ 136+ 138+ 139+ 144+
X 130+ 131+# 132+# 133+ 143+ 144+# 145+ 146+
XPTDBBLOCK 291+ 383+ 458+
XPTDB 288+ 289+# 290+ 380+ 381+# 382+ 455+ 456+# 457+
XPTINI_FAIL 385
XPTLINEDN 471
ZEROQ 168+#
$NM_LOG_BEGIN 386 472
$NM_LOG_END 388 474
$XPT$E_ILF 388
$XPT$E_LLF 474
$XPT_FOR_EACH_LINEB_DO_BEGIN 294
$XPT_NEXT_LINEB_END 312
%CTCE 136+ 155+
%REMAINING 180+