Trailing-Edge
-
PDP-10 Archives
-
TOPS-20_V6.1_DECnetSrc_7-23-85
-
mcb/xpt/xpttim.lst
There is 1 other file named xpttim.lst in the archive. Click here to see a list.
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 1
23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (1)
; 0001 module XPTTIM (
; 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 ! Transport timer service routine: updates all timers and calls the timer
; 0033 ! routines in the various Transport process modules.
; 0034 !
; 0035 ! ENVIRONMENT: MCB
; 0036 !
; 0037 ! AUTHOR: L. Webber , CREATION DATE: 27-Jul-79
; 0038 !
; 0039 ! MODIFIED BY:
; 0040 !
; 0041 ! 27-Jul-79 : VERSION 1.00
; 0042 !
; 0043 ! 1.01 L. Webber, 19-Dec-79
; 0044 ! Deleted update of T6 timer and call to LISTENER
; 0045 !
; 0046 ! 1.02 L. Webber, 4-Apr-80
; 0047 ! Change call to DECTIM to extension process call
; 0048 !
; 0049 ! 1.03 L. Webber, 15-Apr-80
; 0050 ! Add process initialization code to initialize the pointer
; 0051 ! to the Transport Data Base
; 0052 !
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 2
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (1)
; 0053 ! 1.04 L. Webber, 30-Jun-80
; 0054 ! Modify to use MCBLIB macros
; 0055 !
; 0056 ! 1.05 L. Webber, 11-Dec-80
; 0057 ! Modify to support MCB 3.1
; 0058 !
; 0059 ! 1.06 L. Webber, 20-Jan-81
; 0060 ! Add code to set up PIXes of other processes in the Transport
; 0061 ! data base; also don't pass NLN any more.
; 0062 !
; 0063 ! 1.07 L. Webber, 9-Feb-81
; 0064 ! Fix resource recovery code so it recognizes a resource failure
; 0065 ! during the redispatch of a CCB, and stops dispatching CCBs.
; 0066 !
; 0067 ! 1.08 L. Webber, 10-Feb-81
; 0068 ! The Update module is now in XPE; CALL$E to UPDTIM.
; 0069 ! The Hello module is also in XPE; CALL$E to HELLO.
; 0070 !
; 0071 ! 1.09 L. Webber, 18-Feb-81
; 0072 ! Add debugging code to maintain a count of buffers on the retry
; 0073 ! queue.
; 0074 !
; 0075 ! 1.10 L. Webber, 24-Feb-81
; 0076 ! CALL$P TLITIM when the timer goes off.
; 0077 ! Put in the new form of timer maintenance.
; 0078 !
; 0079 ! 1.11 L. Webber, 27-Feb-81
; 0080 ! Get the PIX for the XNM process.
; 0081 !
; 0082 ! 1.12 L. Webber, 10-Mar-81
; 0083 ! Fix input quota accounting for buffers going onto the retry
; 0084 ! queue; they will be counted again when redispatched.
; 0085 !
; 0086 ! 1.13 L. Webber, 23-Feb-82
; 0087 ! Add maintenance of DLLquota.
; 0088 !
; 0089 ! 1.14 A. Peckham,19-Apr-82
; 0090 ! Eliminate references to GETLINE.
; 0091 ! Optimize linkages.
; 0092 !
; 0093 ! 1.15 D. Brannon, 23-Sep-83
; 0094 ! In TIMLTM fix the crash caused by calling INI_LIN with 2 args
; 0095 ! instead of 3. Also fixed the calls to TERM_LIN and TLITIM
; 0096 ! that had the same problem.
; 0097 !
; 0098 !--
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 3
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (2)
; 0099
; 0100 !
; 0101 ! TABLE OF CONTENTS
; 0102 !
; 0103
; 0104 require 'XPTMAC';
; 0202 forward routine
; 0203 XPTTIM: MCB_DB_MOD novalue,
; 0204 TIMLTM: MCB_DB novalue,
; 0205 TIMPIN: MCB_DB novalue,
; 0206 GET_PIX,
; 0207 GETNLN: novalue,
; 0208 RE_QUEUE: novalue;
; 0209
; 0210 !
; 0211 ! INCLUDE FILES:
; 0212 !
; 0213
; 0214
; 0215 !
; 0216 ! MACROS:
; 0217 !
; 0218
; 0219 !
; 0220 ! EQUATED SYMBOLS:
; 0221 !
; 0222
; 0223 !
; 0224 ! OWN STORAGE:
; 0225 !
; 0226
; 0227 !
; 0228 ! EXTERNAL REFERENCES:
; 0229 !
; 0230
; 0231 external routine
; 0232 XPEDB: novalue,
; 0233 TLIDB: novalue,
; 0234 DECTIM: novalue,
; 0235 UPDTIM: novalue,
; 0236 HELLO: LINKAGE_DB novalue,
; 0237 TLITIM: novalue;
; 0238
; 0239 external $XPTLL: vector;
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 4
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (3)
; 0240
; 0241 global
; 0242 routine XPTTIM (XPTDB,MODIFIER): MCB_DB_MOD novalue =
; 0243
; 0244 !++
; 0245 ! FUNCTIONAL DESCRIPTION:
; 0246 !
; 0247 ! Dispatch FC_TIM related services
; 0248 !
; 0249 ! FORMAL PARAMETERS
; 0250 !
; 0251 ! XPTDB Address of Transport data base
; 0252 ! MODIFIER Modifier code
; 0253 !
; 0254 ! IMPLICIT INPUTS
; 0255 !
; 0256 ! ?
; 0257 !
; 0258 ! ROUTINE VALUE:
; 0259 ! COMPLETION CODES:
; 0260 !
; 0261 ! NONE.
; 0262 !
; 0263 ! SIDE EFFECTS:
; 0264 !
; 0265 !
; 0266 !--
; 0267
; 0268 begin
; 0269 require 'XPTSYM';
; 0306 external routine $DSPCR;
; P 0307 DISPATCH$(.MODIFIER,TABLE$($DSPCR,FD_TIM,
; P 0308 (FM_PIN, TIMPIN),
; 0309 (FM_LTM, TIMLTM)),(.XPTDB),MCB_DB);
; 0310 end; !End of XPTTIM
.TITLE XPTTIM
.IDENT /X01150/
000000 .PSECT $PLIT$, RO , D
000000 000000G P.AAA: .WORD $DSPCR
000002 000000V .WORD U.2
000004 000000G .WORD $DSPCR
000006 000000V .WORD U.3
000010 000000G .WORD $DSPCR
000012 000000G .WORD $DSPCR
.GLOBL XPEDB, TLIDB, DECTIM, UPDTIM, HELLO
.GLOBL TLITIM, $XPTLL, .CRDAT, $DSPCR
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 5
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (3)
.SBTTL XPTTIM
000000 .PSECT $CODE$, RO
000000 004773 000000' XPTTIM::
U.1: JSR PC,@P.AAA(R3) ; *,*(MODIFIER) 0309
000004 000207 RTS PC ; 0242
; Routine Size: 3 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 1 word
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 6
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (4)
; 0311
; 0312 routine TIMLTM (XPTDB): MCB_DB novalue =
; 0313
; 0314 !++
; 0315 ! FUNCTIONAL DESCRIPTION:
; 0316 !
; 0317 ! This routine is called once every time interval. It updates
; 0318 ! all the timers except T6 (which is updated in Transport Line
; 0319 ! Interface), and then calls all of the routines in the indivi-
; 0320 ! dual Transport modules which do timer processing. In addition,
; 0321 ! it redispatches all the CCBs on the retry queue.
; 0322 !
; 0323 ! FORMAL PARAMETERS
; 0324 !
; 0325 ! XPTDB Address of Transport data base
; 0326 !
; 0327 ! IMPLICIT INPUTS
; 0328 !
; 0329 ! None
; 0330 !
; 0331 ! ROUTINE VALUE:
; 0332 ! COMPLETION CODES:
; 0333 !
; 0334 ! NONE.
; 0335 !
; 0336 ! SIDE EFFECTS:
; 0337 !
; 0338 ! See the timer routines for each module.
; 0339 !
; 0340 !--
; 0341
; 0342 begin
; 0343 require 'XPTSYM';
; 0380 !
; 0381 ! Re-request a one-second timer interrupt
; 0382 !
; 0383 Timer = .Timer + 1;
; 0384 !
; 0385 ! Call the module timer routines
; 0386 !
; 0387
; 0388 if .Routing_clock neq 0
; 0389 then if (Routing_clock = .Routing_clock - 1) eql 0
; 0390 then begin
; 0391 Routing_clock = .Routing_timer;
; 0392 CALL$E(DECTIM,PD_XPE); ! Check the routing data base
; 0393 end;
; 0394
; 0395 if .Update_clock neq 0
; 0396 then if (Update_clock = .Update_clock - 1) eql 0
; 0397 then begin
; 0398 Update_clock = .Update_timer;
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 7
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (4)
; 0399 CALL$E(UPDTIM,PD_XPE); ! Routing timer
; 0400 end;
; 0401
; 0402 $XPT_for_each_LINEb_do_begin
; 0403
; 0404 if .Hello_clock neq 0
; 0405 then if (Hello_clock = .Hello_clock - 1) eql 0
; 0406 then begin
; 0407 Hello_clock = .Hello_timer;
; 0408 Send_hello = true;
; 0409 end;
; 0410
; 0411 if .Service_line
; 0412 then begin
; 0413 Service_line = false;
; 0414 if BITON(.XPTflags,Running)
; 0415 then CALL$P(INI_LIN,PD_TLI,.LINEb)
; 0416 else CALL$P(TERM_LIN,PD_TLI,.LINEb);
; 0417 end;
; 0418
; 0419 If .Send_hello
; 0420 then HELLO(.LINEb);
; 0421
; 0422 $XPT_next_LINEb_end;
; 0423
; 0424 CALL$P(TLITIM,PD_TLI); ! Listen timers
; 0425
; 0426 !
; 0427 ! Redispatch the contents of the retry queue
; 0428 !
; 0429
; 0430 while true do begin
; 0431 local CCB : ref block field (C_FIELDS);
; 0432 if not $MCB_DEQUEUE_CCB(REqueue,CCB) then exitloop;
; 0433 clearbit(XPTflags,Rfail); ! Clear "resource failure" flag
; 0434 REqueue_count = .REqueue_count - 1; ! Decrement retry queue length
; 0435 DISPATCH$(.CCB[C_FNC],$XPTLL,(.XPTDB,.CCB,.CCB[C_MOD]),MCB_DB_CCB_MOD);
; 0436 ! Dispatch the CCB
; 0437 if biton(.XPTflags,Rfail) then ! If a resource failure occured,
; 0438 exitloop; ! quit
; 0439 end;
; 0440
; 0441 end; !End of TIMLTM
.GLOBL $CALLE, INI.LIN, $CALLP, TERM.LIN
.GLOBL $CMQRM
.SBTTL TIMLTM
000000 162706 000006 ; TIMLTM
U.2: SUB #6,SP ; 0312
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 8
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (4)
000004 010566 000004 MOV R5,4(SP)
000010 105215 INCB (R5) ; 0383
000012 012701 000072 MOV #72,R1 ; 0388
000016 060501 ADD R5,R1
000020 010100 MOV R1,R0
000022 005710 TST (R0)
000024 001420 BEQ 1$
000026 005310 DEC (R0) ; 0389
000030 001016 BNE 1$
000032 010501 MOV R5,R1 ; 0391
000034 016110 000060 MOV 60(R1),(R0)
000040 005046 CLR -(SP) ; 0392
000042 012746 000000G MOV #DECTIM,-(SP)
000046 005046 CLR -(SP)
000050 010500 MOV R5,R0
000052 116016 000002 MOVB 2(R0),(SP)
000056 004767 000000G JSR PC,$CALLE
000062 062706 000006 ADD #6,SP ; 0390
000066 012701 000074 1$: MOV #74,R1 ; 0395
000072 066601 000004 ADD 4(SP),R1
000076 010100 MOV R1,R0
000100 005710 TST (R0)
000102 001421 BEQ 2$
000104 005310 DEC (R0) ; 0396
000106 001017 BNE 2$
000110 016601 000004 MOV 4(SP),R1 ; 0398
000114 016110 000062 MOV 62(R1),(R0)
000120 005046 CLR -(SP) ; 0399
000122 012746 000000G MOV #UPDTIM,-(SP)
000126 005046 CLR -(SP)
000130 010100 MOV R1,R0
000132 116016 000002 MOVB 2(R0),(SP)
000136 004767 000000G JSR PC,$CALLE
000142 062706 000006 ADD #6,SP ; 0397
000146 016600 000004 2$: MOV 4(SP),R0 ; 0400
000152 016005 000020 MOV 20(R0),R5 ; *,LINEB
000156 016001 000022 MOV 22(R0),R1 ; *,$XPT$LINEB.CNT
000162 001462 BEQ 9$
000164 012700 000044 3$: MOV #44,R0 ; 0404
000170 060500 ADD R5,R0 ; LINEB,*
000172 005710 TST (R0)
000174 001406 BEQ 4$
000176 005310 DEC (R0) ; 0405
000200 001004 BNE 4$
000202 016510 000022 MOV 22(R5),(R0) ; *(LINEB),* 0407
000206 052715 010000 BIS #10000,(R5) ; *,LINEB 0408
000212 032715 040000 4$: BIT #40000,(R5) ; *,LINEB 0411
000216 001434 BEQ 7$
000220 042715 040000 BIC #40000,(R5) ; *,LINEB 0413
000224 016600 000004 MOV 4(SP),R0 ; 0414
000230 032760 000001 000106 BIT #1,106(R0)
000236 001406 BEQ 5$
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 9
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (4)
000240 010546 MOV R5,-(SP) ; LINEB,* 0415
000242 012746 000001 MOV #1,-(SP)
000246 012746 000000G MOV #INI.LIN,-(SP)
000252 000405 BR 6$
000254 010546 5$: MOV R5,-(SP) ; LINEB,* 0416
000256 012746 000001 MOV #1,-(SP)
000262 012746 000000G MOV #TERM.LIN,-(SP)
000266 005046 6$: CLR -(SP)
000270 016600 000014 MOV 14(SP),R0
000274 116016 000003 MOVB 3(R0),(SP)
000300 004767 000000G JSR PC,$CALLP
000304 062706 000010 ADD #10,SP ; 0412
000310 032715 010000 7$: BIT #10000,(R5) ; *,LINEB 0419
000314 001402 BEQ 8$
000316 004767 000000G JSR PC,HELLO ; 0420
000322 062705 000104 8$: ADD #104,R5 ; *,LINEB
000326 077162 SOB R1,3$ ; $XPT$LINEB.CNT,* 0000
000330 005046 9$: CLR -(SP) ; 0424
000332 012746 000000G MOV #TLITIM,-(SP)
000336 005046 CLR -(SP)
000340 016600 000012 MOV 12(SP),R0
000344 116016 000003 MOVB 3(R0),(SP)
000350 004767 000000G JSR PC,$CALLP
000354 012700 000110 MOV #110,R0 ; 0432
000360 066600 000012 ADD 12(SP),R0
000364 010066 000010 MOV R0,10(SP)
000370 012700 000106 MOV #106,R0 ; 0433
000374 066600 000012 ADD 12(SP),R0
000400 010066 000006 MOV R0,6(SP)
000404 016603 000010 10$: MOV 10(SP),R3 ; 0432
000410 004767 000000G JSR PC,$CMQRM
000414 103424 BCS 11$
000416 042776 000002 000006 BIC #2,@6(SP) ; 0433
000424 016601 000012 MOV 12(SP),R1 ; 0434
000430 105361 000140 DECB 140(R1)
000434 005000 CLR R0 ; 0435
000436 156400 000012 BISB 12(R4),R0 ; *(CCB),*
000442 010105 MOV R1,R5
000444 005003 CLR R3
000446 156403 000013 BISB 13(R4),R3 ; *(CCB),*
000452 004770 000000G JSR PC,@$XPTLL(R0)
000456 032776 000002 000006 BIT #2,@6(SP) ; 0437
000464 001747 BEQ 10$
000466 062706 000014 11$: ADD #14,SP ; 0312
000472 000207 RTS PC
; Routine Size: 158 words, Routine Base: $CODE$ + 0006
; Maximum stack depth per invocation: 8 words
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 10
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (5)
; 0442
; 0443 routine TIMPIN (XPTDB): MCB_DB novalue =
; 0444
; 0445 !++
; 0446 ! FUNCTIONAL DESCRIPTION:
; 0447 !
; 0448 ! This routine is called during process initialization
; 0449 !
; 0450 ! FORMAL PARAMETERS
; 0451 !
; 0452 ! XPTDB Address of Transport data base
; 0453 !
; 0454 ! IMPLICIT INPUTS
; 0455 !
; 0456 ! ?
; 0457 !
; 0458 ! ROUTINE VALUE:
; 0459 ! COMPLETION CODES:
; 0460 !
; 0461 ! NONE.
; 0462 !
; 0463 ! SIDE EFFECTS:
; 0464 !
; 0465 !--
; 0466
; 0467 begin
; 0468
; M 0469 macro RAD50(NAME) =
; M 0470 %IF %bliss(BLISS36) %THEN
; M 0471 %RAD50_10 %string(NAME)
; M 0472 %ELSE
; M 0473 %RAD50_11 %string(NAME)
; 0474 %FI %;
; 0475 require 'XPTSYM';
; 0512
; 0513 !
; 0514 ! Initialization entry point:
; 0515 ! . Get PIXes for TLI, XPE, NMX, and XPT itself
; 0516 ! . Get Transport data base address and distribute it to
; 0517 ! TLI and XPE
; 0518 !
; 0519
; 0520 XPTDB[XPTxpt]=GET_PIX(rad50(XPT)); ! Pick up
; 0521 XPTDB[XPTxpe]=GET_PIX(rad50(XPE)); ! processes
; 0522 XPTDB[XPTtli]=GET_PIX(rad50(TLI)); ! PIXes for
; 0523 XPTDB[XPTnm]=GET_PIX(rad50(NMX)); ! communicating
; 0524 CALL$P(XPEDB,PD_XPE,.XPTDB); ! Give the data base address
; 0525 CALL$P(TLIDB,PD_TLI,.XPTDB); ! to XPE and TLI
; 0526
; 0527 end; !End of TIMPIN
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 11
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (5)
.SBTTL TIMPIN
000000 012746 114224 ; TIMPIN
U.3: MOV #-63554,-(SP) ; 0520
000004 004767 000000V JSR PC,U.4
000010 110065 000004 MOVB R0,4(R5) ; *,*(XPTDB)
000014 012701 000002 MOV #2,R1 ; 0521
000020 060501 ADD R5,R1 ; XPTDB,*
000022 012716 114205 MOV #-63573,(SP)
000026 004767 000000V JSR PC,U.4
000032 110011 MOVB R0,(R1)
000034 012716 077351 MOV #77351,(SP) ; 0522
000040 004767 000000V JSR PC,U.4
000044 110061 000001 MOVB R0,1(R1)
000050 012716 054640 MOV #54640,(SP) ; 0523
000054 004767 000000V JSR PC,U.4
000060 110065 000005 MOVB R0,5(R5) ; *,*(XPTDB)
000064 010516 MOV R5,(SP) ; XPTDB,* 0524
000066 012746 000001 MOV #1,-(SP)
000072 012746 000000G MOV #XPEDB,-(SP)
000076 005046 CLR -(SP)
000100 111116 MOVB (R1),(SP)
000102 004767 000000G JSR PC,$CALLP
000106 010516 MOV R5,(SP) ; XPTDB,* 0525
000110 012746 000001 MOV #1,-(SP)
000114 012746 000000G MOV #TLIDB,-(SP)
000120 005046 CLR -(SP)
000122 116116 000001 MOVB 1(R1),(SP)
000126 004767 000000G JSR PC,$CALLP
000132 062706 000016 ADD #16,SP ; 0467
000136 000207 RTS PC ; 0443
; Routine Size: 48 words, Routine Base: $CODE$ + 0502
; Maximum stack depth per invocation: 8 words
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 12
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (6)
; 0528
; 0529 routine GET_PIX (NAME) =
; 0530
; 0531 !++
; 0532 ! FUNCTIONAL DESCRIPTION:
; 0533 !
; 0534 ! Get the process index for the given process name
; 0535 !
; 0536 ! FORMAL PARAMETERS
; 0537 !
; 0538 ! NAME RAD50 name of desired process
; 0539 !
; 0540 ! IMPLICIT INPUTS
; 0541 !
; 0542 ! None
; 0543 !
; 0544 ! ROUTINE VALUE:
; 0545 ! COMPLETION CODES:
; 0546 !
; 0547 ! NONE.
; 0548 !
; 0549 ! SIDE EFFECTS:
; 0550 !
; 0551 ! None
; 0552 !
; 0553 !--
; 0554
; 0555 begin
; 0556 local PIX;
; 0557 if $MCB_GET_PROCESS_HANDLE (.NAME,PIX) then .PIX else 0
; 0558 end; !End of GET_PIX
.GLOBL P.DTGT, $CALLI
.SBTTL GET.PIX
000000 010146 ; GET.PIX
U.4: MOV R1,-(SP) ; 0529
000002 005746 TST -(SP)
000004 012746 000002 MOV #2,-(SP) ; 0557
000010 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000012 016646 000010 MOV 10(SP),-(SP) ; NAME,*
000016 012746 000002 MOV #2,-(SP)
000022 012746 000000G MOV #P.DTGT,-(SP)
000026 004767 000000G JSR PC,$CALLI
000032 062706 000010 ADD #10,SP
000036 010001 MOV R0,R1 ; *,$MCB$STATUS
000040 006000 ROR R0
000042 103001 BCC 1$
000044 011600 MOV (SP),R0 ; $MCB$MY.INDEX,PIX
000046 032701 000001 1$: BIT #1,R1 ; *,$MCB$STATUS
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 13
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (6)
000052 001001 BNE 2$
000054 005000 CLR R0
000056 005726 2$: TST (SP)+ ; 0529
000060 012601 MOV (SP)+,R1
000062 000207 RTS PC
; Routine Size: 26 words, Routine Base: $CODE$ + 0642
; Maximum stack depth per invocation: 7 words
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 14
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (7)
; 0559
; 0560 routine GETNLN: novalue =
; 0561
; 0562 !++
; 0563 ! FUNCTIONAL DESCRIPTION:
; 0564 !
; 0565 ! Puts the value of NLN from the data base into an OWN intermediate
; 0566 ! location (for the use of STRUCTURE references and such, which cannot
; 0567 ! reference BOUND variables)
; 0568 !
; 0569 ! FORMAL PARAMETERS
; 0570 !
; 0571 ! NONE.
; 0572 !
; 0573 ! IMPLICIT INPUTS
; 0574 !
; 0575 ! NONE.
; 0576 !
; 0577 ! ROUTINE VALUE:
; 0578 ! COMPLETION CODES:
; 0579 !
; 0580 ! NONE.
; 0581 !
; 0582 ! SIDE EFFECTS:
; 0583 !
; 0584 ! NONE.
; 0585 !
; 0586 !--
; 0587
; 0588 begin
; 0589
; 0590 require 'XPTSYM';
; 0627
; 0628 0; ! This routine now has no function.
; 0629
; 0630 end; !End of GETNLN
.SBTTL GETNLN
000000 000207 ; GETNLN
U.5: RTS PC ; 0560
; Routine Size: 1 word, Routine Base: $CODE$ + 0726
; Maximum stack depth per invocation: 0 words
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 15
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (8)
; 0631
; 0632 global
; 0633 routine RE_QUEUE (CCB): novalue =
; 0634
; 0635 !++
; 0636 ! FUNCTIONAL DESCRIPTION:
; 0637 !
; 0638 ! Puts a CCB on the retry queue. The CCB will be redispatched the next
; 0639 ! time XPTTIM is called (on a timer interval).
; 0640 !
; 0641 ! FORMAL PARAMETERS
; 0642 !
; 0643 ! CCB CCB to be put on the retry queue. It must be a CCB which
; 0644 ! was dispatched to Transport by another process, in the
; 0645 ! same condition as when it was dispatched.
; 0646 !
; 0647 ! IMPLICIT INPUTS
; 0648 !
; 0649 ! REqueue
; 0650 !
; 0651 ! ROUTINE VALUE:
; 0652 ! COMPLETION CODES:
; 0653 !
; 0654 ! NONE.
; 0655 !
; 0656 ! SIDE EFFECTS:
; 0657 !
; 0658 ! The CCB will be redispatched at some time in the future.
; 0659 !
; 0660 !--
; 0661
; 0662 begin
; 0663
; 0664 local LINEb;
; 0665 require 'XPTSYM';
; 0702 map CCB: ref block field(C_fields);
; 0703
; 0704 setbit(XPTflags,Rfail); ! Flag a recoverable resource failure
; 0705 $MCB_QUEUE_CCB(REqueue,.CCB); ! Chain in the CCB
; 0706 REqueue_count = .REqueue_count + 1; ! Increment retry queue length
; 0707 if .CCB[C_FNC] eql FC_RCP then begin ! Adjust buffer input count
; 0708 LINEb = $XPT_GET_LINE_DB(.CCB[C_LIX]); ! and global input quota
; 0709 INPUTcount = .INPUTcount - 1; ! as if the buffer
; 0710 DLLquota = .DLLquota + 1; ! were terminated
; 0711 end
; 0712 else BPT(XPT$_REQU);
; 0713
; 0714 end; !End of RE_QUEUE
.GLOBL $CMQIN, GTLINE
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 16
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (8)
.SBTTL RE.QUEUE
000000 004167 000000G RE.QUEUE::
U.6: JSR R1,$SAVE4 ; 0633
000004 016700 000002G MOV .CRDAT+2,R0 ; 0704
000010 052760 000002 000106 BIS #2,106(R0)
000016 016604 000014 MOV 14(SP),R4 ; CCB,* 0705
000022 010003 MOV R0,R3 ; XPTDB,*
000024 062703 000110 ADD #110,R3
000030 004767 000000G JSR PC,$CMQIN
000034 016700 000002G MOV .CRDAT+2,R0
000040 105260 000140 INCB 140(R0) ; 0706
000044 126427 000012 000016 CMPB 12(R4),#16 ; 0707
000052 001014 BNE 1$
000054 005000 CLR R0 ; 0708
000056 156400 000010 BISB 10(R4),R0
000062 004767 000000G JSR PC,GTLINE
000066 105360 000043 DECB 43(R0) ; *(LINEB) 0709
000072 016700 000002G MOV .CRDAT+2,R0
000076 105260 000035 INCB 35(R0) ; 0710
000102 000207 RTS PC ; 0707
000104 012746 100122 1$: MOV #-77656,-(SP) ; 0712
000110 012746 000001 MOV #1,-(SP)
000114 004767 000000G JSR PC,$IGNAL
000120 022626 CMP (SP)+,(SP)+
000122 000207 RTS PC ; 0633
; Routine Size: 42 words, Routine Base: $CODE$ + 0730
; Maximum stack depth per invocation: 8 words
; 0715
; 0716 end !End of module XPTTIM
; 0717 eludom
; OTS external references
.GLOBL $SAVE4, $IGNAL
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $PLIT$ 6 RO , D , LCL, REL, CON
; $CODE$ 278 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
XPTTIM 15-Nov-1984 10:35:05 TOPS-20 Bliss-16 2A(530) Page 17
X01150 23-Sep-1983 09:48:18 RATS:<BANKS.MCB.XPT>XPTTIM.BLI.1 (8)
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; RATS:<BANKS.MCB.MCB>XPORTX.L16.10 599 0 0 0
; RATS:<BANKS.MCB.MCB>MCBLIB.L16.6 372 49 13 0
; RATS:<BANKS.MCB.MCB>NMXLIB.L16.5 200 0 0 0
; RATS:<BANKS.MCB.XPT>XPTLIB.L16.3 510 157 30 0
; Size: 278 code + 6 data words
; Run Time: 00:07.9
; Elapsed Time: 00:39.2
; Memory Used: 46 pages
; Compilation Complete
ADDRESS 156+ 158+ 159+ 161+ 162+ 164+ 165+ 171+ 172+ 175+ 176+ 177+
BITON 414 437
BLISS36 470
BPT 185+# 197+# 712
BUFCHK 189+ 190+# 199+ 200+#
CALL$E 392 399
CALL$P 415 416 424 524 525
CCB 431 432 435 633 702 705 707 708
CHKBUF 192+* 193+
CLEARBIT 433
C_FIELDS 431 702
C_FNC 435 707
C_LIX 708
C_MOD 435
DECTIM 234 392
DISPATCH$ 307 435
DLLQUOTA 710#
FALSE 413
FC_RCP 707
FD_TIM 307
FM_LTM 309
FM_PIN 308
GETNLN 207 560*
GETQ 156+#
GETW 135+# 158+ 159+
GET_PIX 206 520 521 522 523 529*
HELLO_CLOCK 404 405# 407#
HELLO_TIMER 407
HELLO 236 420
I 180+ 182+
INI_LIN 415
INPUTCOUNT 709#
J 180+ 182+
LINEBLOCK 296+ 370+ 502+ 617+ 692+
LINEB 294+ 296+ 368+ 370+ 415 416 420 500+ 502+ 615+ 617+ 664
690+ 692+ 708#
LINKAGE_DB 236
M 180+ 181+
MATRIX 180+# 182+
MCB$GAW_PROCESS_DATA_BASE 299+ 300+ 303+ 373+ 374+ 377+ 505+ 506+ 509+ 620+ 621+ 624+
695+ 696+ 699+
MCB_DB 204 205 309 312# 443#
MCB_DB_CCB_MOD 435
MCB_DB_MOD 203 242#
MODIFIER 242 307
N 180+ 181+
NAME 469 471 473 529 557
NL 180+ 182+
NMX 523
NODEBLOCK 291+ 365+ 497+ 612+ 687+
NODEB 289+ 291+ 363+ 365+ 495+ 497+ 610+ 612+ 685+ 687+
NOP 197+ 198+ 200+
NO_LINEB 295+ 369+ 501+ 616+ 691+
NO_NODEB 290+ 364+ 496+ 611+ 686+
PD_TLI 415 416 424 525
PD_XPE 392 399 524
PIX 556 557
PTR 135+ 138+ 139+ 142+ 145+ 146+ 152+ 153+ 156+ 158+ 159+ 161+
164+ 165+ 166+ 167+ 171+ 172+
PUTQ 161+#
PUTW 142+# 171+ 172+
RAD50 469# 520 521 522 523
REQUEUE 432 705
REQUEUE_COUNT 434# 706#
RE_QUEUE 208 633*
RFAIL 433 437 704
ROUTING_CLOCK 388 389# 391#
ROUTING_TIMER 391
RUNNING 414
SEND_HELLO 408# 419
SERVICE_LINE 411 413#
SETBIT 704
TABLE$ 307
TERM_LIN 416
TIMER 383#
TIMLTM 204 309 312*
TIMPIN 205 308 443*
TLI 522
TLIDB 233 525
TLITIM 237 424
TRUE 408 430
UNIT 180+# 181+ 182+
UPDATE_CLOCK 395 396# 398#
UPDATE_TIMER 398
UPDTIM 235 399
VALUE 142+ 143+ 145+ 146+ 151+
X 137+ 138+# 139+# 140+ 150+ 151+# 152+ 153+
XPE 521
XPEDB 232* 524
XPT 520
XPT$_REQU 712
XPTDBBLOCK 305+ 379+ 511+ 626+ 701+
XPTDB 242 302+ 303+# 304+ 309 312 376+ 377+# 378+ 435 443 508+
509+# 510+ 520# 521# 522# 523# 524 525 623+ 624+# 625+ 698+
699+# 700+
XPTFLAGS 414 433 437 704
XPTNM 523
XPTTIM 1# 203 242*
XPTTLI 522
XPTXPE 521
XPTXPT 520
ZEROQ 175+#
$DSPCR 306* 307
$MCB_DEQUEUE_CCB 432
$MCB_GET_PROCESS_HANDLE 557
$MCB_QUEUE_CCB 705
$XPTLL 239 435
$XPT_FOR_EACH_LINEB_DO_BEGIN 402
$XPT_GET_LINE_DB 708
$XPT_NEXT_LINEB_END 422
%CTCE 143+ 162+
%REMAINING 187+