Trailing-Edge
-
PDP-10 Archives
-
TOPS-20_V6.1_DECnetSrc_7-23-85
-
mcb/xpt/xpe16.lst
There is 1 other file named xpe16.lst in the archive. Click here to see a list.
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 1
30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (1)
; 0001 module XPE16 (
; 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 ! 16-bit or RSX-11M dependent routines for transport
; 0033 !
; 0034 ! ENVIRONMENT: MCB
; 0035 !
; 0036 ! AUTHOR: L. Webber , CREATION DATE: 20-Jul-79
; 0037 !
; 0038 ! MODIFIED BY:
; 0039 !
; 0040 ! 20-Jul-79 : VERSION 1.00
; 0041 !
; 0042 ! 1.01 L. Webber, 21-Oct-80
; 0043 ! Change C_BUF and C_BUFA references to C_BIAS and C_ADDR
; 0044 !
; 0045 ! 1.02 L. Webber, 11-Dec-80
; 0046 ! Modify to support MCB 3.1
; 0047 !
; 0048 ! 1.03 L. Webber, 11-Feb-81
; 0049 ! Made XPT16 into three parallel modules: XPT16, TLI16 and XPE16.
; 0050 ! This mod. also comprises the addition of several new entry points
; 0051 ! over the last year. This is the last of the identically numbered
; 0052 ! mods. for the three -16 modules.
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 2
X01140 30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (1)
; 0053 !
; 0054 ! 1.04 L. Webber, 11-Feb-81
; 0055 ! Delete entries GET_EX, GET_BLK, GETSDB, RETSDB, $CDBV, GETXDB and
; 0056 ! $CBDMG from the XPE -16 module.
; 0057 !
; 0058 ! 1.05 L. Webber, 23-Feb-81
; 0059 ! Fix LOG_EVENT class and event buffer specification.
; 0060 !
; 0061 ! 1.06 L. Webber, 25-Feb-81
; 0062 ! Move $CDBV and $CBDMG over from XPT16
; 0063 !
; 0064 ! 1.07 L. Webber, 27-Feb-81
; 0065 ! Make $CDBV and $CBDMG CALL$
; 0066 !
; 0067 ! 1.08 L. Webber, 16-Mar-81
; 0068 ! Add UNSPAWN routine
; 0069 !
; 0070 ! 1.09 L. Webber, 3-Apr-81
; 0071 ! Signal the ENTITY in LOG_EVENT.
; 0072 !
; 0073 ! 1.10 L. Webber, 30-Jun-81
; 0074 ! Fix UNSPAWN to return a buffer of the right length.
; 0075 !
; 0076 ! 1.11 L. Webber, 24-Sep-81
; 0077 ! Take out routines EP_REASON, EP_EXNODE.
; 0078 !
; 0079 ! 1.12 L. Webber, 24-Sep-81
; 0080 ! Take out reference to Event_Buffer in LOG_EVENT.
; 0081 !
; 0082 ! 1.13 A. Peckham, 19-Apr-82
; 0083 ! Add XPT$GET_LINE_DB and XPT$GET_NODE_DB routines.
; 0084 ! Move $CBDMG and $CDBV back to XPT16.
; 0085 !
; 0086 ! 1.14 A. Peckham, 6-May-82
; 0087 ! Eliminate GETLINE, GETNODE, LOG_EVENT, MAPIN, RLS_BLK.
; 0088 !
; 0089 !--
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 3
X01140 30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (2)
; 0090
; 0091 !
; 0092 ! INCLUDE FILES:
; 0093 !
; 0094
; 0095 require 'XPTMAC';
; 0193
; 0194 !
; 0195 ! TABLE OF CONTENTS
; 0196 !
; 0197
; 0198 forward routine
; 0199 XPT$GET_LINE_DB: XPT$LKG_NUM,
; 0200 XPT$GET_NODE_DB: XPT$LKG_NUM;
; 0201
; 0202 !
; 0203 ! MACROS:
; 0204 !
; 0205
; 0206 !
; 0207 ! EQUATED SYMBOLS:
; 0208 !
; 0209
; 0210 !
; 0211 ! OWN STORAGE:
; 0212 !
; 0213
; 0214 !
; 0215 ! EXTERNAL REFERENCES:
; 0216 !
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 4
X01140 30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (3)
; 0217 global routine XPT$GET_LINE_DB (LINE) : XPT$LKG_NUM =
; 0218
; 0219 !++
; 0220 ! FUNCTIONAL DESCRIPTION:
; 0221 !
; 0222 ! Returns the base address of the line data base entry for
; 0223 ! the specified line
; 0224 !
; 0225 ! FORMAL PARAMETERS
; 0226 !
; 0227 ! LINE Line number whose data base entry is to be
; 0228 ! located
; 0229 !
; 0230 ! IMPLICIT INPUTS
; 0231 !
; 0232 ! XPTDB
; 0233 !
; 0234 ! ROUTINE VALUE:
; 0235 !
; 0236 ! The address of the line data base entry for .LINE
; 0237 !
; 0238 ! SIDE EFFECTS:
; 0239 !
; 0240 ! NONE.
; 0241 !
; 0242 !--
; 0243
; 0244 begin
; 0245 require 'XPTSYM';
; 0282
; 0283 LINE = .LINE - 1;
; 0284 if .LINE lssu NLN
; 0285 then
; 0286 begin
; 0287 LINE = .LINE*LINElength;
; 0288 .XPTDB[XPTlindb] + .LINE
; 0289 end
; 0290 else
; 0291 0
; 0292 end; !End of XPT$GET_LINE_DB
.TITLE XPE16
.IDENT /X01140/
.GLOBL .CRDAT
.SBTTL GTLINE
000000 .PSECT $CODE$, RO
000000 010146 GTLINE::
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 5
X01140 30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (3)
U.1: MOV R1,-(SP) ; 0217
000002 010001 MOV R0,R1 ; *,LINE
000004 005301 DEC R1 ; LINE 0283
000006 016700 000002G MOV .CRDAT+2,R0 ; 0284
000012 020160 000022 CMP R1,22(R0) ; LINE,*
000016 103010 BHIS 1$
000020 070127 000104 MUL #104,R1 ; 0287
000024 016700 000002G MOV .CRDAT+2,R0 ; 0288
000030 016000 000020 MOV 20(R0),R0
000034 060100 ADD R1,R0 ; LINE,*
000036 000401 BR 2$ ; 0284
000040 005000 1$: CLR R0
000042 012601 2$: MOV (SP)+,R1 ; 0217
000044 000207 RTS PC
; Routine Size: 19 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 2 words
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 6
X01140 30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (4)
; 0293 global routine XPT$GET_NODE_DB (NODE) : XPT$LKG_NUM =
; 0294
; 0295 !++
; 0296 ! FUNCTIONAL DESCRIPTION:
; 0297 !
; 0298 ! Returns the base address of the node data base entry for
; 0299 ! the specified node number
; 0300 !
; 0301 ! FORMAL PARAMETERS
; 0302 !
; 0303 ! NODE Node number of the node whose data base is to be
; 0304 ! located
; 0305 !
; 0306 ! IMPLICIT INPUTS
; 0307 !
; 0308 ! XPTDB
; 0309 !
; 0310 ! ROUTINE VALUE:
; 0311 !
; 0312 ! Address of the node data base entry for .NODE
; 0313 !
; 0314 ! SIDE EFFECTS:
; 0315 !
; 0316 ! NONE.
; 0317 !
; 0318 !--
; 0319
; 0320 begin
; 0321 require 'XPTSYM';
; 0358
; 0359 NODE = .NODE - 1;
; 0360 if .NODE lssu NN
; 0361 then
; 0362 begin
; 0363 NODE = .NODE*NODElength;
; 0364 .XPTDB[XPTnoddb] + .NODE
; 0365 end
; 0366 else
; 0367 0
; 0368 end; !End of XPT$GET_NODE_DB
.SBTTL GTNODE
000000 010146 GTNODE::
U.2: MOV R1,-(SP) ; 0293
000002 010001 MOV R0,R1 ; *,NODE
000004 005301 DEC R1 ; NODE 0359
000006 016700 000002G MOV .CRDAT+2,R0 ; 0360
000012 020160 000016 CMP R1,16(R0) ; NODE,*
000016 103012 BHIS 1$
000020 010100 MOV R1,R0 ; NODE,* 0363
000022 072027 000003 ASH #3,R0
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 7
X01140 30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (4)
000026 010001 MOV R0,R1 ; *,NODE
000030 016700 000002G MOV .CRDAT+2,R0 ; 0364
000034 016000 000012 MOV 12(R0),R0
000040 060100 ADD R1,R0 ; NODE,*
000042 000401 BR 2$ ; 0360
000044 005000 1$: CLR R0
000046 012601 2$: MOV (SP)+,R1 ; 0293
000050 000207 RTS PC
; Routine Size: 21 words, Routine Base: $CODE$ + 0046
; Maximum stack depth per invocation: 2 words
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 8
X01140 30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (5)
; 0369 global routine UNSPAWN(CCB): novalue =
; 0370
; 0371 !++
; 0372 ! FUNCTIONAL DESCRIPTION:
; 0373 !
; 0374 ! Untangles a CCB spawned by Transport:
; 0375 !
; 0376 ! 1. If the CCB has a buffer of its own, release it.
; 0377 ! 2. If the pass-through CCB (the one the spawned CCB points to)
; 0378 ! has had its buffer pointer adjusted, un-adjust it.
; 0379 ! 3. Release the spawned CCB.
; 0380 !
; 0381 ! FORMAL PARAMETERS
; 0382 !
; 0383 ! CCB Address of the spawned CCB.
; 0384 !
; 0385 ! IMPLICIT INPUTS
; 0386 !
; 0387 ! NONE.
; 0388 !
; 0389 ! ROUTINE VALUE:
; 0390 ! COMPLETION CODES:
; 0391 !
; 0392 ! NONE.
; 0393 !
; 0394 ! SIDE EFFECTS:
; 0395 !
; 0396 ! NONE.
; 0397 !
; 0398 !--
; 0399
; 0400 begin
; 0401
; 0402 map CCB: ref block field(C_XPT_fields);
; 0403 bind CCB_P = .CCB[C_STK]: block field(C_fields);
; 0404 local ADJ;
; 0405
; 0406 if ((ADJ=.CCB[C_XPT_ADJUST]) neq 0) then begin ! Nonzero adjustment factor:
; 0407 CCB_P[C_ADDR] = ch$plus(.CCB_P[C_ADDR],-.ADJ); ! readjust pass-through
; 0408 CCB_P[C_CNT] = .CCB_P[C_CNT] + .ADJ; ! buffer descriptor
; 0409 end;
; 0410 if ((.CCB[C_CHN] neq 0) ! If the spawned CCB
; 0411 and (.CCB[C_BIAS] neq 0)) then ! has an SDB of
; P 0412 $MCB_RETURN_CCB_AND_BUFFER ! its own, release
; 0413 (.CCB[C_XPT_ALLOCATION],.CCB) ! them both
; 0414 else $MCB_RETURN_CCB(.CCB); ! Otherwise, just release the CCB
; 0415
; 0416 end; !End of UNSPAWN
.GLOBL $CBBRT, $CCBRT
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 9
X01140 30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (5)
.SBTTL UNSPAWN
000000 004167 000000G UNSPAWN::
JSR R1,$SAVE4 ; 0369
000004 016604 000014 MOV 14(SP),R4 ; CCB,* 0403
000010 116400 000033 MOVB 33(R4),R0 ; *,ADJ 0406
000014 001406 BEQ 1$
000016 016401 000004 MOV 4(R4),R1 ; 0407
000022 160061 000020 SUB R0,20(R1) ; ADJ,*
000026 060061 000022 ADD R0,22(R1) ; ADJ,* 0408
000032 005764 000002 1$: TST 2(R4) ; 0410
000036 001410 BEQ 2$
000040 005764 000016 TST 16(R4) ; 0411
000044 001405 BEQ 2$
000046 016401 000034 MOV 34(R4),R1 ; 0413
000052 004767 000000G JSR PC,$CBBRT
000056 000207 RTS PC ; 0410
000060 004767 000000G 2$: JSR PC,$CCBRT ; 0414
000064 000207 RTS PC ; 0369
; Routine Size: 27 words, Routine Base: $CODE$ + 0120
; Maximum stack depth per invocation: 6 words
; 0417
; 0418 end !End of module XPE16
; 0419 eludom
; OTS external references
.GLOBL $SAVE4
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $CODE$ 67 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 24 6 0
; NETPKG:<MCB>NMXLIB.L16.13 200 0 0 0
; NETPKG:<XPT>XPTLIB.L16.3 510 93 18 0
XPE16 25-Jan-1983 09:59:26 TOPS-20 Bliss-16 2A(530) Page 10
X01140 30-Dec-1982 21:19:41 NETPKG:<XPT>XPE16.B16.8 (5)
; Size: 67 code + 0 data words
; Run Time: 00:02.7
; Elapsed Time: 00:09.3
; Memory Used: 25 pages
; Compilation Complete