Trailing-Edge
-
PDP-10 Archives
-
TOPS-20_V6.1_DECnetSrc_7-23-85
-
mcb/utilities/rqlcb.lst
There is 1 other file named rqlcb.lst in the archive. Click here to see a list.
12-Apr-1985 07:09:27 TOPS-20 Bliss-36 4A(225) Page 1
30-Dec-1982 17:57:14 DNET61:<DECNET.UTILITIES>RQLCB.BLI.1 (1)
; 0001 0
; 0002 0 MODULE RQLCB ( !Dynamic core allocation routines.
; 0003 0 IDENT = '001000',
; 0004 0 LANGUAGE (BLISS16, BLISS36) %BLISS36 (, ENTRY ($RLCB, $RQCB))
; 0005 0 ) =
; 0006 1 BEGIN
; 0007 1 !
; 0008 1 ! COPYRIGHT (c) 1980, 1981, 1982
; 0009 1 ! DIGITAL EQUIPMENT CORPORATION
; 0010 1 ! Maynard, Massachusetts
; 0011 1 !
; 0012 1 ! This software is furnished under a license and may be used
; 0013 1 ! and copied only in accordance with the terms of such license
; 0014 1 ! and with the inclusion of the above copyright notice. This
; 0015 1 ! software or any other copies thereof may not be provided or
; 0016 1 ! otherwise made available to any other person. No title to
; 0017 1 ! and ownership of the software is hereby transferred.
; 0018 1 !
; 0019 1 ! The information in this software is subject to change
; 0020 1 ! without notice and should not be construed as a commitment
; 0021 1 ! by DIGITAL EQUIPMENT CORPORATION.
; 0022 1 !
; 0023 1 ! DIGITAL assumes no responsibility for the use or reliability
; 0024 1 ! of its software on equipment which is not supplied by
; 0025 1 ! DIGITAL.
; 0026 1 !
; 0027 1
; 0028 1 !++
; 0029 1 ! FACILITY:
; 0030 1 !
; 0031 1 ! ABSTRACT:
; 0032 1 !
; 0033 1 !
; 0034 1 ! ENVIRONMENT:
; 0035 1 !
; 0036 1 ! AUTHOR: , CREATION DATE:
; 0037 1 !
; 0038 1 ! MODIFIED BY:
; 0039 1 !
; 0040 1 ! , : VERSION
; 0041 1 ! 01 -
; 0042 1 !--
; 0043 1
; 0044 1 !
; 0045 1 ! TABLE OF CONTENTS:
; 0046 1 !
; 0047 1
; 0048 1 FORWARD ROUTINE
; 0049 1 $RLCB : NOVALUE, !Release core block.
; 0050 1 $RQCB; !Request core block.
; 0051 1
; 0052 1 !
RQLCB 12-Apr-1985 07:09:27 TOPS-20 Bliss-36 4A(225) Page 2
001000 30-Dec-1982 17:57:14 DNET61:<DECNET.UTILITIES>RQLCB.BLI.1 (1)
; 0053 1 ! INCLUDE FILES:
; 0054 1 !
; 0055 1 !
; 0056 1 ! MACROS:
; 0057 1 !
; 0058 1 !
; 0059 1 ! EQUATED SYMBOLS:
; 0060 1 !
; 0061 1 !
; 0062 1 ! OWN STORAGE:
; 0063 1 !
; 0064 1 !
; 0065 1 ! EXTERNAL REFERENCES:
; 0066 1 !
; 0067 1
RQLCB 12-Apr-1985 07:09:27 TOPS-20 Bliss-36 4A(225) Page 3
001000 30-Dec-1982 17:57:14 DNET61:<DECNET.UTILITIES>RQLCB.BLI.1 (2)
; 0068 1 GLOBAL ROUTINE $RLCB (LIST_HEAD, BLOCK_ADDRESS, BLOCK_LENGTH) : NOVALUE =
; 0069 1
; 0070 1 !++
; 0071 1 ! FUNCTIONAL DESCRIPTION:
; 0072 1 !
; 0073 1 !
; 0074 1 ! FORMAL PARAMETERS:
; 0075 1 !
; 0076 1 ! NONE
; 0077 1 !
; 0078 1 ! IMPLICIT INPUTS:
; 0079 1 !
; 0080 1 ! NONE
; 0081 1 !
; 0082 1 ! IMPLICIT OUTPUTS:
; 0083 1 !
; 0084 1 ! NONE
; 0085 1 !
; 0086 1 ! ROUTINE VALUE:
; 0087 1 !
; 0088 1 ! NONE
; 0089 1 !
; 0090 1 ! SIDE EFFECTS:
; 0091 1 !
; 0092 1 ! NONE
; 0093 1 !
; 0094 1 !--
; 0095 1
; 0096 2 BEGIN
; 0097 2
; 0098 2 MAP
; 0099 2 LIST_HEAD : REF VECTOR [2],
; 0100 2 BLOCK_ADDRESS : REF VECTOR;
; 0101 2
; 0102 2 LOCAL
; 0103 2 LNG,
; 0104 2 ADR : REF VECTOR,
; 0105 2 NEXT : REF VECTOR;
; 0106 2
; 0107 2 IF (LNG = (.BLOCK_LENGTH + 1 AND NOT 1)) GTR 0
; 0108 2 THEN
; 0109 3 BEGIN
; 0110 3 ADR = .LIST_HEAD;
; 0111 3
; 0112 3 WHILE (NEXT = .ADR [0]) NEQ 0 DO
; 0113 3
; 0114 3 IF .BLOCK_ADDRESS LSSA .NEXT THEN EXITLOOP ELSE ADR = .NEXT;
; 0115 3
; 0116 3 BLOCK_ADDRESS [1] = .LNG;
; 0117 3 BLOCK_ADDRESS [0] = .NEXT;
; 0118 3 ADR [0] = .BLOCK_ADDRESS;
; 0119 3
RQLCB 12-Apr-1985 07:09:27 TOPS-20 Bliss-36 4A(225) Page 4
001000 30-Dec-1982 17:57:14 DNET61:<DECNET.UTILITIES>RQLCB.BLI.1 (2)
; 0120 3 IF .BLOCK_ADDRESS + .BLOCK_ADDRESS [1] EQLA .NEXT
; 0121 3 THEN
; 0122 4 BEGIN
; 0123 4 BLOCK_ADDRESS [1] = .BLOCK_ADDRESS [1] + .NEXT [1];
; 0124 4 BLOCK_ADDRESS [0] = .NEXT [0];
; 0125 3 END;
; 0126 3
; 0127 3 IF .ADR + .ADR [1] EQLA .BLOCK_ADDRESS
; 0128 3 THEN
; 0129 4 BEGIN
; 0130 4 ADR [1] = .ADR [1] + .BLOCK_ADDRESS [1];
; 0131 4 ADR [0] = .BLOCK_ADDRESS [0];
; 0132 3 END;
; 0133 3
; 0134 2 END;
; 0135 2
; 0136 1 END; !End of $RLCB
TITLE RQLCB
TWOSEG
ENTRY $RLCB, $RQCB
.REQUEST SYS:B362LB.REL
AC0= 0
AC1= 1
AC2= 2
AC3= 3
AC4= 4
AC5= 5
AC6= 6
AC7= 7
AC10= 10
AC11= 11
AC12= 12
AC13= 13
AC14= 14
FP= 15
AC16= 16
SP= 17
RELOC 400000 ; 400000'
$RLCB:: MOVE AC1,-1(SP) ; AC1,BLOCK_LENGTH 400000' 200 01 0 17 777777 0107
AOS AC4,AC1 ; LNG,AC1 400001' 350 04 0 00 000001
TRZ AC4,1 ; LNG,1 400002' 620 04 0 00 000001
JUMPLE AC4,L.4 ; LNG,L.4 400003' 323 04 0 00 400037'
RQLCB 12-Apr-1985 07:09:27 TOPS-20 Bliss-36 4A(225) Page 5
001000 30-Dec-1982 17:57:14 DNET61:<DECNET.UTILITIES>RQLCB.BLI.1 (2)
MOVE AC2,-3(SP) ; ADR,LIST_HEAD 400004' 200 02 0 17 777775 0110
MOVE AC1,-2(SP) ; AC1,BLOCK_ADDRESS 400005' 200 01 0 17 777776 0114
L.1: MOVE AC3,0(AC2) ; NEXT,0(ADR) 400006' 200 03 0 02 000000 0112
JUMPE AC3,L.2 ; NEXT,L.2 400007' 322 03 0 00 400014'
CAMGE AC1,AC3 ; AC1,NEXT 400010' 315 01 0 00 000003 0114
JRST L.2 ; L.2 400011' 254 00 0 00 400014'
MOVE AC2,AC3 ; ADR,NEXT 400012' 200 02 0 00 000003
JRST L.1 ; L.1 400013' 254 00 0 00 400006' 0112
L.2: MOVEM AC4,1(AC1) ; LNG,1(AC1) 400014' 202 04 0 01 000001 0116
MOVEM AC3,0(AC1) ; NEXT,0(AC1) 400015' 202 03 0 01 000000 0117
MOVEM AC1,0(AC2) ; AC1,0(ADR) 400016' 202 01 0 02 000000 0118
MOVE AC4,AC1 ; AC4,AC1 400017' 200 04 0 00 000001 0120
ADD AC4,1(AC1) ; AC4,1(AC1) 400020' 270 04 0 01 000001
CAME AC4,AC3 ; AC4,NEXT 400021' 312 04 0 00 000003
JRST L.3 ; L.3 400022' 254 00 0 00 400027'
MOVE AC4,1(AC3) ; AC4,1(NEXT) 400023' 200 04 0 03 000001 0123
ADDM AC4,1(AC1) ; AC4,1(AC1) 400024' 272 04 0 01 000001
MOVE AC4,0(AC3) ; AC4,0(NEXT) 400025' 200 04 0 03 000000 0124
MOVEM AC4,0(AC1) ; AC4,0(AC1) 400026' 202 04 0 01 000000
L.3: MOVE AC3,AC2 ; AC3,ADR 400027' 200 03 0 00 000002 0127
ADD AC3,1(AC2) ; AC3,1(ADR) 400030' 270 03 0 02 000001
CAME AC3,AC1 ; AC3,AC1 400031' 312 03 0 00 000001
POPJ SP, ; SP, 400032' 263 17 0 00 000000
MOVE AC3,1(AC1) ; AC3,1(AC1) 400033' 200 03 0 01 000001 0130
ADDM AC3,1(AC2) ; AC3,1(ADR) 400034' 272 03 0 02 000001
MOVE AC3,0(AC1) ; AC3,0(AC1) 400035' 200 03 0 01 000000 0131
MOVEM AC3,0(AC2) ; AC3,0(ADR) 400036' 202 03 0 02 000000
L.4: POPJ SP, ; SP, 400037' 263 17 0 00 000000 0068
; Routine Size: 32 words
; 0137 1
RQLCB 12-Apr-1985 07:09:27 TOPS-20 Bliss-36 4A(225) Page 6
001000 30-Dec-1982 17:57:14 DNET61:<DECNET.UTILITIES>RQLCB.BLI.1 (3)
; 0138 1 GLOBAL ROUTINE $RQCB (LIST_HEAD, BLOCK_LENGTH) =
; 0139 1
; 0140 1 !++
; 0141 1 ! FUNCTIONAL DESCRIPTION:
; 0142 1 !
; 0143 1 !
; 0144 1 ! FORMAL PARAMETERS:
; 0145 1 !
; 0146 1 ! NONE
; 0147 1 !
; 0148 1 ! IMPLICIT INPUTS:
; 0149 1 !
; 0150 1 ! NONE
; 0151 1 !
; 0152 1 ! IMPLICIT OUTPUTS:
; 0153 1 !
; 0154 1 ! NONE
; 0155 1 !
; 0156 1 ! ROUTINE VALUE:
; 0157 1 !
; 0158 1 ! NONE
; 0159 1 !
; 0160 1 ! SIDE EFFECTS:
; 0161 1 !
; 0162 1 ! NONE
; 0163 1 !
; 0164 1 !--
; 0165 1
; 0166 2 BEGIN
; 0167 2
; 0168 2 MAP
; 0169 2 LIST_HEAD : REF VECTOR [2];
; 0170 2
; 0171 2 LOCAL
; 0172 2 LNG,
; 0173 2 ADR : REF VECTOR,
; 0174 2 NEXT : REF VECTOR,
; 0175 2 LINK_TO_BEST : REF VECTOR;
; 0176 2
; 0177 2 IF (LNG = (ABS (.BLOCK_LENGTH) + 1 AND NOT 1)) NEQ 0
; 0178 2 THEN
; 0179 3 BEGIN
; 0180 3 LINK_TO_BEST = 0;
; 0181 3 ADR = .LIST_HEAD;
; 0182 3
; 0183 3 WHILE (NEXT = .ADR [0]) NEQ 0 DO
; 0184 3
; 0185 3 IF .LNG LEQA .NEXT [1]
; 0186 3 THEN
; 0187 4 BEGIN
; 0188 4
; 0189 4 IF .BLOCK_LENGTH GTR 0
RQLCB 12-Apr-1985 07:09:27 TOPS-20 Bliss-36 4A(225) Page 7
001000 30-Dec-1982 17:57:14 DNET61:<DECNET.UTILITIES>RQLCB.BLI.1 (3)
; 0190 4 THEN
; 0191 5 LINK_TO_BEST = (IF .LINK_TO_BEST EQL 0 THEN .ADR ELSE IF .NEXT [1] LSSA .LINK_TO_BEST [1]
; 0192 5 THEN .ADR ELSE .LINK_TO_BEST)
; 0193 4 ELSE
; 0194 5 EXITLOOP (LINK_TO_BEST = .ADR)
; 0195 5
; 0196 4 END
; 0197 3 ELSE
; 0198 3 ADR = .NEXT;
; 0199 3
; 0200 3 IF .LINK_TO_BEST NEQ 0
; 0201 3 THEN
; 0202 4 BEGIN
; 0203 4 ADR = .LINK_TO_BEST [0];
; 0204 4
; 0205 4 IF (ADR [1] = .ADR [1] - .LNG) NEQ 0
; 0206 4 THEN
; 0207 4 ADR [.ADR [1]]
; 0208 4 ELSE
; 0209 5 BEGIN
; 0210 5 LINK_TO_BEST [0] = .ADR [0];
; 0211 5 .ADR
; 0212 5 END
; 0213 5
; 0214 4 END
; 0215 3 ELSE
; 0216 3 -1
; 0217 3
; 0218 3 END
; 0219 2 ELSE
; 0220 2 -1
; 0221 2
; 0222 1 END; !End of $RQCB
$RQCB:: PUSH SP,AC16 ; SP,AC16 400040' 261 17 0 00 000016 0138
MOVE AC4,-2(SP) ; AC4,BLOCK_LENGTH 400041' 200 04 0 17 777776 0177
MOVM AC1,AC4 ; AC1,AC4 400042' 214 01 0 00 000004
AOS AC5,AC1 ; LNG,AC1 400043' 350 05 0 00 000001
TRZ AC5,1 ; LNG,1 400044' 620 05 0 00 000001
JUMPE AC5,L.11 ; LNG,L.11 400045' 322 05 0 00 400104'
SETZ AC3, ; LINK_TO_BEST, 400046' 400 03 0 00 000000 0180
MOVE AC1,-3(SP) ; ADR,LIST_HEAD 400047' 200 01 0 17 777775 0181
L.5: MOVE AC2,0(AC1) ; NEXT,0(ADR) 400050' 200 02 0 01 000000 0183
JUMPE AC2,L.9 ; NEXT,L.9 400051' 322 02 0 00 400067'
CAMLE AC5,1(AC2) ; LNG,1(NEXT) 400052' 313 05 0 02 000001 0185
JRST L.8 ; L.8 400053' 254 00 0 00 400065'
JUMPLE AC4,L.7 ; AC4,L.7 400054' 323 04 0 00 400063' 0189
JUMPE AC3,L.6 ; LINK_TO_BEST,L.6 400055' 322 03 0 00 400061' 0191
MOVE AC16,1(AC2) ; AC16,1(NEXT) 400056' 200 16 0 02 000001
CAML AC16,1(AC3) ; AC16,1(LINK_TO_BEST) 400057' 311 16 0 03 000001
JRST L.5 ; L.5 400060' 254 00 0 00 400050'
RQLCB 12-Apr-1985 07:09:27 TOPS-20 Bliss-36 4A(225) Page 8
001000 30-Dec-1982 17:57:14 DNET61:<DECNET.UTILITIES>RQLCB.BLI.1 (3)
L.6: MOVE AC3,AC1 ; LINK_TO_BEST,ADR 400061' 200 03 0 00 000001
JRST L.5 ; L.5 400062' 254 00 0 00 400050'
L.7: MOVE AC3,AC1 ; LINK_TO_BEST,ADR 400063' 200 03 0 00 000001 0194
JRST L.9 ; L.9 400064' 254 00 0 00 400067'
L.8: MOVE AC1,AC2 ; ADR,NEXT 400065' 200 01 0 00 000002 0198
JRST L.5 ; L.5 400066' 254 00 0 00 400050' 0183
L.9: JUMPE AC3,L.11 ; LINK_TO_BEST,L.11 400067' 322 03 0 00 400104' 0200
MOVE AC1,0(AC3) ; ADR,0(LINK_TO_BEST) 400070' 200 01 0 03 000000 0203
MOVN AC2,AC5 ; AC2,LNG 400071' 210 02 0 00 000005 0205
ADDM AC2,1(AC1) ; AC2,1(ADR) 400072' 272 02 0 01 000001
SKIPN 1(AC1) ; 1(ADR) 400073' 336 00 0 01 000001
JRST L.10 ; L.10 400074' 254 00 0 00 400101'
MOVE AC2,AC1 ; AC2,ADR 400075' 200 02 0 00 000001 0207
ADD AC2,1(AC1) ; AC2,1(ADR) 400076' 270 02 0 01 000001
MOVE AC1,AC2 ; AC1,AC2 400077' 200 01 0 00 000002
JRST L.12 ; L.12 400100' 254 00 0 00 400105'
L.10: MOVE AC2,0(AC1) ; AC2,0(ADR) 400101' 200 02 0 01 000000 0210
MOVEM AC2,0(AC3) ; AC2,0(LINK_TO_BEST) 400102' 202 02 0 03 000000
JRST L.12 ; L.12 400103' 254 00 0 00 400105' 0200
L.11: SETO AC1, ; AC1, 400104' 474 01 0 00 000000 0166
L.12: POP SP,AC16 ; SP,AC16 400105' 262 17 0 00 000016 0138
POPJ SP, ; SP, 400106' 263 17 0 00 000000
; Routine Size: 39 words
; 0223 1
; 0224 1 END !End of module
; 0225 1
; 0226 0 ELUDOM
; Low segment length: 0 words
; High segment length: 71 words
; Size: 71 code + 0 data words
; Run Time: 00:01.6
; Elapsed Time: 00:01.8
; Lines/CPU Min: 8620
; Lexemes/CPU-Min: 34405
; Memory Used: 8 pages
; Compilation Complete