Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/nml/nmlmrr.lst
There are no other files named nmlmrr.lst in the archive.
24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 1
3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (1)
; 0001 ! <BRANDT.DEVELOPMENT>NMLMRR.BLI.1 28-Jul-82 16:30:47, Edit by BRANDT
; 0002 !
; 0003 ! Ident 05.
; 0004 ! In WAIT_FOR_CONNECT, do not do access checking.
; 0005 !
; 0006 !NET:<PECKHAM.DEVELOPMENT>NMLMRR.BLI.4 26-Mar-82 17:00:47, Edit by PECKHAM
; 0007 !
; 0008 ! Ident 04.
; 0009 ! Fix dot bug in WAIT_FOR_CONNECT.
; 0010 ! Error buffer no longer needed for NMU$NETWORK_OPEN.
; 0011 ! Optimize WAIT_FOR_CONNECT.
; 0012 !
; 0013 !NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLMRR.BLI.12 20-Nov-81 13:32:46, Edit by WEBBER
; 0014 !
; 0015 ! Ident 03.
; 0016 ! Fix get and return of the response buffer so that they use addresses only,
; 0017 ! instead of pointers.
; 0018 !
; 0019 !NET:<DECNET20-V3P1.NML>NMLMRR.BLI.3 21-Oct-81 09:32:00, Edit by WEBBER
; 0020 !
; 0021 ! Ident 02.
; 0022 ! Add error response buffer and length as parameters to NETWORK_OPEN.
; 0023 !
; 0024 !NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLMRR.BLI.10 9-Feb-81 12:42:42, Edit by GUNN
; 0025 !
; 0026 ! Remove check for version skew.
; 0027 !
; 0028 !NET:<DECNET20-V3P1.NMU>NMLMRR.BLI.5 3-Feb-81 09:58:30, Edit by JENNESS
; 0029 ! Remove MIRROR_OBJECT literal definition ... now in NMARCH.
; 0030 ! Change connect routine to properly reset connect block on reopen.
; 0031 ! Rework access validation.
; 0032 ! Add error code on reject for 'ACCESS NOT PERMITTED' (SC$_ANP).
; 0033 ! Change so that disconnect is done only on unrecoverable errors.
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 2
3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (2)
; 0034 module NMLMRR ( ! Loop back mirror task
; 0035 ident = 'X00.05'
; 0036 ) =
; 0037 begin
; 0038 !
; 0039 ! COPYRIGHT (c) 1980, 1981, 1982
; 0040 ! DIGITAL EQUIPMENT CORPORATION
; 0041 ! Maynard, Massachusetts
; 0042 !
; 0043 ! This software is furnished under a license and may be used
; 0044 ! and copied only in accordance with the terms of such license
; 0045 ! and with the inclusion of the above copyright notice. This
; 0046 ! software or any other copies thereof may not be provided or
; 0047 ! otherwise made available to any other person. No title to
; 0048 ! and ownership of the software is hereby transferred.
; 0049 !
; 0050 ! The information in this software is subject to change
; 0051 ! without notice and should not be construed as a commitment
; 0052 ! by DIGITAL EQUIPMENT CORPORATION.
; 0053 !
; 0054 ! DIGITAL assumes no responsibility for the use or reliability
; 0055 ! of its software on equipment which is not supplied by
; 0056 ! DIGITAL.
; 0057 !
; 0058
; 0059 !++
; 0060 ! Facility: LSG DECnet Network Management
; 0061 !
; 0062 ! Abstract:
; 0063 !
; 0064 ! This task performs the Loopback Mirror function for
; 0065 ! network management. This mirror is used for loopback
; 0066 ! testing through all layers of the architecture (SC, NSP, XPT,
; 0067 ! DLL).
; 0068 !
; 0069 ! Environment: TOPS-10/20 User mode, RSX task mode
; 0070 !
; 0071 ! Author: Dale C. Gunn, Steven M. Jenness, Creation date: 23-Oct-80
; 0072 !
; 0073 !--
; 0074
; 0075 !
; 0076 !<BLF/SYNONYM %unquote=>
; 0077 !<BLF/SYNONYM $FIELD=FIELD>
; 0078 !<BLF/PAGE>
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 3
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (3)
; 0079 !
; 0080 ! Include files
; 0081 !
; 0082
; 0083 library 'NMLLIB'; ! All required definitions
; 0084
; 0085 !
; 0086 ! Global routines
; 0087 !
; 0088
; 0089 forward routine
; 0090 NML$MIRROR : novalue; ! Mirror task code
; 0091
; 0092 !
; 0093 ! Local routines
; 0094 !
; 0095
; 0096 forward routine
; 0097 WAIT_FOR_CONNECT, ! Wait for connection to target task
; 0098 CHECK_VERSION, ! Validate network management version
; 0099 LOOP_DATA : novalue; ! Loop data on a connected link
; 0100
; 0101 !
; 0102 ! Equated symbols
; 0103 !
; 0104
; 0105 literal
; 0106 LOOP_BUFFER_LENGTH = 500; ! Length of loop back buffer in bytes
; 0107
; 0108 !
; 0109 ! External references
; 0110 !
; 0111
; 0112 external routine
; 0113 NMU$MEMORY_GET, ! Routines for getting
; 0114 NMU$MEMORY_RELEASE, ! and giving back memory
; 0115 NMU$NETWORK_UTILITIES; ! Network task-to-task interface
; 0116
; 0117 external
; 0118 NMLVER, ! Network Managment version number
; 0119 DECECO, ! Digital ECO number
; 0120 USRECO; ! User ECO number
; 0121
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 4
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (4)
; 0122
; 0123 global routine %unquote NML$MIRROR (TASK, RESOURCE) : novalue =
; 0124
; 0125 !++
; 0126 ! Functional description:
; 0127 !
; 0128 ! This routine is the top level of the Network Management
; 0129 ! loopback mirror. This mirror provides a task to task
; 0130 ! loop back. By doing the loopback at network task level
; 0131 ! all the lower layers can be checked for operability.
; 0132 !
; 0133 ! Formal parameters:
; 0134 !
; 0135 ! .TASK Address of task block for this task
; 0136 ! .RESOURCE Address of cell for this task to use as
; 0137 ! a resource variable.
; 0138 !
; 0139 ! Routine value: none
; 0140 ! Side effects: none
; 0141 !
; 0142 !--
; 0143
; 0144 begin
; 0145
; 0146 local
; 0147 BUFFER_PTR, ! Pointer to acceptance data buffer
; 0148 BUFFER : ch$sequence (2, 8), ! Acceptance data buffer
; 0149 LINK_ID; ! Open logical link identifier
; 0150
; 0151 !
; 0152 ! Put the loopback buffer length (in bytes) into the buffer
; 0153 ! to send as the optional data on a link connect acceptance.
; 0154 !
; 0155 BUFFER_PTR = ch$ptr (BUFFER,, 8);
; 0156 PUTW (uplit (LOOP_BUFFER_LENGTH - 1), BUFFER_PTR);
; 0157 !
; 0158 ! Loop forever, wait for link connected, loop data until disconnected.
; 0159 !
; 0160
; 0161 while $true do
; 0162 begin
; 0163 LINK_ID = WAIT_FOR_CONNECT (MIRROR_OBJECT, 2, ch$ptr (BUFFER,, 8));
; 0164 LOOP_DATA (.LINK_ID);
; 0165 NMU$NETWORK_CLOSE (.LINK_ID, 0, 0);
; 0166 end;
; 0167
; 0168 end; ! End of NML$MIRROR
.TITLE NMLMRR
.IDENT /X00.05/
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 5
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (4)
000000 .PSECT $PLIT$, RO , D
000000 000763 P.AAA: .WORD 763
000002 000763 P.AAB: .WORD 763
.GLOBL UM.GET, UM.RELEASE, UN.INIT, UN.LOCAL
.GLOBL UN.OPEN, UN.ACCEPT, UN.REJECT
.GLOBL UN.READ, UN.WRITE, UN.ABORT, UN.CLOSE
.GLOBL UN.STATUS, UN.VALIDATE, NMLVER
.GLOBL DECECO, USRECO
.SBTTL NX.MIRROR
000000 .PSECT $CODE$, RO
000000 010146 NX.MIRROR::
MOV R1,-(SP) ; 0123
000002 005746 TST -(SP)
000004 010600 MOV SP,R0 ; BUFFER,BUFFER.PTR 0155
000006 116720 000000' MOVB P.AAA,(R0)+ ; *,BUFFER.PTR 0156
000012 116720 000003' MOVB P.AAB+1,(R0)+ ; *,BUFFER.PTR
000016 012746 000031 1$: MOV #31,-(SP) ; 0163
000022 012746 000002 MOV #2,-(SP)
000026 012746 000006 MOV #6,-(SP)
000032 060616 ADD SP,(SP) ; BUFFER,*
000034 004767 000000V JSR PC,WAIT.FOR.CONNECT
000040 010001 MOV R0,R1 ; *,LINK.ID
000042 010116 MOV R1,(SP) ; LINK.ID,* 0164
000044 004767 000000V JSR PC,LOOP.DATA
000050 010116 MOV R1,(SP) ; LINK.ID,* 0165
000052 005046 CLR -(SP)
000054 005046 CLR -(SP)
000056 004767 000000G JSR PC,UN.CLOSE
000062 062706 000012 ADD #12,SP ; 0162
000066 000753 BR 1$ ; 0161
; Routine Size: 28 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 8 words
; 0169
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 6
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (5)
; 0170 routine WAIT_FOR_CONNECT (OBJECT, DATA_LENGTH, DATA_PTR) =
; 0171
; 0172 !++
; 0173 ! Functional description:
; 0174 !
; 0175 ! This routine opens a target link for connection by
; 0176 ! another task. When a connect is attempted the user
; 0177 ! access rights are check and the source task's version
; 0178 ! number is checked. If all checks are ok, then the
; 0179 ! link is accepted (sending the optional acceptance data)
; 0180 ! and the LINK_ID is returned. If any check fails,
; 0181 ! a reject is sent with the appropriate error code.
; 0182 !
; 0183 ! Formal parameters:
; 0184 !
; 0185 ! .OBJECT DECnet object code
; 0186 ! .DATA_LENGTH Number of bytes in optional accept data
; 0187 ! .DATA_PTR Pointer to optional acceptance data
; 0188 !
; 0189 ! Routine value:
; 0190 !
; 0191 ! The LINK_ID of the opened link.
; 0192 !
; 0193 ! Side effects: none
; 0194 !
; 0195 !--
; 0196
; 0197 begin
; 0198
; 0199 local
; 0200 CBLK : CONNECT_BLOCK; ! Link connection block
; 0201
; 0202 !
; 0203 ! Set the object code and clear the task name and descriptor.
; 0204 !
; 0205 CBLK [CB_OBJECT] = .OBJECT;
; 0206 CBLK [CB_TASK_LENGTH] = 0;
; 0207 CBLK [CB_DESCRIPTOR_LENGTH] = 0;
; 0208 !
; 0209 ! Loop until the link is connected
; 0210 !
; 0211
; 0212 while $true do
; 0213 begin
; 0214
; 0215 local
; 0216 LINK_HANDLE, ! Handle of link
; 0217 REASON; ! Link rejection reason
; 0218
; 0219 !
; 0220 ! Wait for a connect to this target task
; 0221 !
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 7
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (5)
; 0222 LINK_HANDLE = NMU$NETWORK_OPEN (TARGET_LINK, CBLK, 0, 0, 0);
; 0223 !
; 0224 ! Check for user access and version number ok
; 0225 !
; 0226
; 0227 REASON = 0;
; 0228
; 0229 if ((.LINK_HANDLE gtr 0)
; C 0230 %( N.B. - Don't try to validate
; C 0231 and NMU$NETWORK_VALIDATE (CBLK)
; 0232 )%
; C 0233 %( N.B. - Nope! Guess we don't have to check for version skew here.
; C 0234 and
; C 0235 ((REASON = CHECK_VERSION (CBLK)) eql 0)
; 0236 )%)
; 0237 then
; 0238 begin
; 0239 NMU$NETWORK_ACCEPT (.LINK_HANDLE, .DATA_LENGTH, .DATA_PTR);
; 0240 return .LINK_HANDLE;
; 0241 end
; 0242 else
; 0243 begin
; 0244 local REJECT_BUFFER, REJECT_PTR;
; 0245 REJECT_PTR = ch$ptr (REJECT_BUFFER,, 8);
; 0246 ch$wchar_a (.REASON, REJECT_PTR);
; 0247 NMU$NETWORK_REJECT (.LINK_HANDLE, SC$_ANP, 1, ch$ptr (REJECT_BUFFER,, 8));
; 0248 NMU$NETWORK_CLOSE (.LINK_HANDLE, 0, 0);
; 0249 end;
; 0250 end;
; 0251
; 0252 !
; 0253 ! We will never get here, as a success returns within the loop.
; 0254 !
; 0255 0
; 0256 end; ! End of WAIT_FOR_CONNECT
.SBTTL WAIT.FOR.CONNECT
000000 004167 000000G WAIT.FOR.CONNECT:
JSR R1,$SAVE2 ; 0170
000004 162706 000230 SUB #230,SP
000010 016666 000244 000006 MOV 244(SP),6(SP) ; OBJECT,CBLK+4 0205
000016 005066 000012 CLR 12(SP) ; CBLK+10 0206
000022 005066 000036 CLR 36(SP) ; CBLK+34 0207
000026 012746 000001 1$: MOV #1,-(SP) ; 0222
000032 012746 000006 MOV #6,-(SP)
000036 060616 ADD SP,(SP) ; CBLK,*
000040 005046 CLR -(SP)
000042 005046 CLR -(SP)
000044 005046 CLR -(SP)
000046 004767 000000G JSR PC,UN.OPEN
000052 010002 MOV R0,R2 ; *,LINK.HANDLE
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 8
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (5)
000054 005001 CLR R1 ; REASON 0227
000056 005702 TST R2 ; LINK.HANDLE 0229
000060 003413 BLE 2$
000062 010216 MOV R2,(SP) ; LINK.HANDLE,* 0239
000064 016646 000254 MOV 254(SP),-(SP) ; DATA.LENGTH,*
000070 016646 000254 MOV 254(SP),-(SP) ; DATA.PTR,*
000074 004767 000000G JSR PC,UN.ACCEPT
000100 062706 000016 ADD #16,SP ; 0229
000104 010200 MOV R2,R0 ; LINK.HANDLE,* 0238
000106 000426 BR 3$
000110 012700 000012 2$: MOV #12,R0 ; *,REJECT.PTR 0245
000114 060600 ADD SP,R0 ; REJECT.BUFFER,REJECT.PTR
000116 110120 MOVB R1,(R0)+ ; REASON,REJECT.PTR 0246
000120 010216 MOV R2,(SP) ; LINK.HANDLE,* 0247
000122 012746 000042 MOV #42,-(SP)
000126 012746 000001 MOV #1,-(SP)
000132 012746 000020 MOV #20,-(SP)
000136 060616 ADD SP,(SP) ; REJECT.BUFFER,*
000140 004767 000000G JSR PC,UN.REJECT
000144 010216 MOV R2,(SP) ; LINK.HANDLE,* 0248
000146 005046 CLR -(SP)
000150 005046 CLR -(SP)
000152 004767 000000G JSR PC,UN.CLOSE
000156 062706 000024 ADD #24,SP ; 0213
000162 000721 BR 1$ ; 0212
000164 062706 000230 3$: ADD #230,SP ; 0170
000170 000207 RTS PC
; Routine Size: 61 words, Routine Base: $CODE$ + 0070
; Maximum stack depth per invocation: 90 words
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 9
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (6)
; 0257 routine CHECK_VERSION (CBLK) =
; 0258
; 0259 !++
; 0260 ! Functional description:
; 0261 !
; 0262 ! This routine checks to see if the Network Management
; 0263 ! version match. If they don't, an error code is returned.
; 0264 !
; 0265 ! Formal parameters:
; 0266 !
; 0267 ! .CBLK Address of connect block
; 0268 !
; 0269 ! Routine value:
; 0270 !
; 0271 ! Zero if ok, a non-zero error code if failed test
; 0272 !
; 0273 ! Side effects: none
; 0274 !
; 0275 !--
; 0276
; 0277 begin
; 0278
; 0279 map
; 0280 CBLK : ref CONNECT_BLOCK;
; 0281
; 0282 local
; 0283 DATA_PTR,
; 0284 VERSION;
; 0285
; 0286 !
; 0287 ! Create pointer to data supplied with connect request
; 0288 !
; 0289 DATA_PTR = .CBLK [CB_DATA];
; 0290 !
; 0291 ! Check for enough data available. If not, return
; 0292 ! Invalid Identification error.
; 0293 !
; 0294
; 0295 if (.CBLK [CB_DATA_LENGTH] lss 3)
; 0296 then
; 0297 NICE$_IID
; 0298 else
; 0299 begin
; 0300 !
; 0301 ! Check version number against ours, if it is older
; 0302 ! it is incompatible with us.
; 0303 !
; 0304 VERSION = GETB (DATA_PTR);
; 0305
; 0306 if .VERSION lss .NMLVER
; 0307 then
; 0308 NICE$_IMV
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 10
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (6)
; 0309 else
; 0310 begin
; 0311 !
; 0312 ! Check the Digital ECO number, if it is non-zero,
; 0313 ! it is incompatible with us.
; 0314 !
; 0315 ! VERSION = GETB (DATA_PTR);
; 0316 !
; 0317 ! if .VERSION gtr 0 then NICE$_IMV else 0
; 0318 !
; 0319 ! For now accept any 2.x.y version of Network Management
; 0320 !
; 0321 0
; 0322 end
; 0323
; 0324 end
; 0325
; 0326 end; ! End of CHECK_VERSION
.SBTTL CHECK.VERSION
000000 010146 CHECK.VERSION:
MOV R1,-(SP) ; 0257
000002 016600 000004 MOV 4(SP),R0 ; CBLK,* 0289
000006 016001 000016 MOV 16(R0),R1 ; *,DATA.PTR
000012 026027 000020 000003 CMP 20(R0),#3 ; 0295
000020 002003 BGE 1$
000022 012700 177767 MOV #-11,R0
000026 000411 BR 3$
000030 005000 1$: CLR R0 ; VERSION 0304
000032 152100 BISB (R1)+,R0 ; DATA.PTR,VERSION
000034 020067 000000G CMP R0,NMLVER ; VERSION,* 0306
000040 002003 BGE 2$
000042 012700 177771 MOV #-7,R0
000046 000401 BR 3$
000050 005000 2$: CLR R0
000052 012601 3$: MOV (SP)+,R1 ; 0257
000054 000207 RTS PC
; Routine Size: 23 words, Routine Base: $CODE$ + 0262
; Maximum stack depth per invocation: 2 words
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 11
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (7)
; 0327 routine LOOP_DATA (LINK_ID) : novalue =
; 0328
; 0329 !++
; 0330 ! Functional description:
; 0331 !
; 0332 ! This routine performs the loop back function on a logical
; 0333 ! link that has already been opened. The looping continues
; 0334 ! until the task at the other end of the link closes it (or
; 0335 ! some other nefarious glitch takes it down).
; 0336 !
; 0337 ! Formal parameters:
; 0338 !
; 0339 ! .LINK_ID Identifier for logical link to do looping on
; 0340 !
; 0341 ! Routine value: none
; 0342 ! Side effects: none
; 0343 !
; 0344 !--
; 0345
; 0346 begin
; 0347
; 0348 literal
; 0349 LOOP_OK = 1, ! Loop back message received ok
; 0350 LOOP_FAILED = -1; ! Error during loop back
; 0351
; 0352 local
; 0353 CONNECTED,
; 0354 CHAR_COUNT,
; 0355 LOOP_BUFFER : ch$sequence (LOOP_BUFFER_LENGTH),
; 0356 BUFFER_PTR,
; 0357 FUNC_CODE;
; 0358
; 0359 CONNECTED = $true;
; 0360
; 0361 while .CONNECTED do
; 0362 begin
; 0363 BUFFER_PTR = ch$ptr (LOOP_BUFFER,, 8);
; 0364
; 0365 if (CHAR_COUNT = NMU$NETWORK_READ (.LINK_ID, LOOP_BUFFER_LENGTH, ch$ptr (LOOP_BUFFER,, 8))) gtr 0
; 0366 then
; 0367 begin
; 0368 FUNC_CODE = GETB (BUFFER_PTR);
; 0369 BUFFER_PTR = ch$ptr (LOOP_BUFFER,, 8);
; 0370
; 0371 if .FUNC_CODE eql 0
; 0372 then PUTB (LOOP_OK, BUFFER_PTR)
; 0373 else
; 0374 begin
; 0375 PUTB (LOOP_FAILED, BUFFER_PTR);
; 0376 CHAR_COUNT = 1;
; 0377 end
; 0378
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 12
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (7)
; 0379 end
; 0380 else
; 0381 begin
; 0382 PUTB (LOOP_FAILED, BUFFER_PTR);
; 0383 CHAR_COUNT = 1;
; 0384 CONNECTED = $false;
; 0385 end;
; 0386
; 0387 NMU$NETWORK_WRITE (.LINK_ID, $true, .CHAR_COUNT, ch$ptr (LOOP_BUFFER,, 8));
; 0388 end;
; 0389
; 0390 end; ! End of LOOP_DATA
.SBTTL LOOP.DATA
000000 004167 000000G LOOP.DATA:
JSR R1,$SAVE4 ; 0327
000004 162706 000764 SUB #764,SP
000010 012703 000001 MOV #1,R3 ; *,CONNECTED 0359
000014 032703 000001 1$: BIT #1,R3 ; *,CONNECTED 0361
000020 001456 BEQ 5$
000022 010601 MOV SP,R1 ; LOOP.BUFFER,BUFFER.PTR 0363
000024 016646 001000 MOV 1000(SP),-(SP) ; LINK.ID,* 0365
000030 012746 000764 MOV #764,-(SP)
000034 012746 000006 MOV #6,-(SP)
000040 060616 ADD SP,(SP) ; LOOP.BUFFER,*
000042 004767 000000G JSR PC,UN.READ
000046 062706 000006 ADD #6,SP
000052 010002 MOV R0,R2 ; *,CHAR.COUNT
000054 003415 BLE 3$
000056 005004 CLR R4 ; FUNC.CODE 0368
000060 152104 BISB (R1)+,R4 ; BUFFER.PTR,FUNC.CODE
000062 010601 MOV SP,R1 ; LOOP.BUFFER,BUFFER.PTR 0369
000064 005704 TST R4 ; FUNC.CODE 0371
000066 001003 BNE 2$
000070 112711 000001 MOVB #1,(R1) ; *,BUFFER.PTR 0372
000074 000412 BR 4$ ; 0371
000076 112711 000377 2$: MOVB #377,(R1) ; *,BUFFER.PTR 0375
000102 012702 000001 MOV #1,R2 ; *,CHAR.COUNT 0376
000106 000405 BR 4$ ; 0365
000110 112711 000377 3$: MOVB #377,(R1) ; *,BUFFER.PTR 0382
000114 012702 000001 MOV #1,R2 ; *,CHAR.COUNT 0383
000120 005003 CLR R3 ; CONNECTED 0384
000122 005201 4$: INC R1 ; BUFFER.PTR 0372
000124 016646 001000 MOV 1000(SP),-(SP) ; LINK.ID,* 0387
000130 012746 000001 MOV #1,-(SP)
000134 010246 MOV R2,-(SP) ; CHAR.COUNT,*
000136 012746 000010 MOV #10,-(SP)
000142 060616 ADD SP,(SP) ; LOOP.BUFFER,*
000144 004767 000000G JSR PC,UN.WRITE
000150 062706 000010 ADD #10,SP ; 0362
000154 000717 BR 1$ ; 0361
NMLMRR 24-May-1985 13:22:42 TOPS-20 Bliss-16 2A(530) Page 13
X00.05 3-Jan-1983 01:26:43 DNET61:<MCB.NML>NMLMRR.BLI.1 (7)
000156 062706 000764 5$: ADD #764,SP ; 0327
000162 000207 RTS PC
; Routine Size: 58 words, Routine Base: $CODE$ + 0340
; Maximum stack depth per invocation: 260 words
; 0391 end ! End of module NMLMRR
; 0392
; 0393 eludom
; OTS external references
.GLOBL $SAVE4, $SAVE2
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $PLIT$ 2 RO , D , LCL, REL, CON
; $CODE$ 170 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; DNET61:<MCB.NML>NMLLIB.L16.2 2718 53 1 0
; 0394 ! Local Modes:
; 0395 ! Mode:Bliss
; 0396 ! Comment Start:!
; 0397 ! Comment Column:40
; 0398 ! Comment Rounding:+1
; 0399 ! Auto Save Mode:2
; 0400 ! End:
; Size: 170 code + 2 data words
; Run Time: 00:03.7
; Elapsed Time: 00:06.8
; Memory Used: 32 pages
; Compilation Complete
BUFFER 148 155 163
BUFFER_PTR 147 155# 156 356 363# 368 369# 372 375 382
CBLK 200 205# 206# 207# 222 257 280 289 295
CB_DATA 289
CB_DATA_LENGTH 295
CB_DESCRIPTOR_LENGTH 207
CB_OBJECT 205
CB_TASK_LENGTH 206
CH$SEQUENCE 148 355
CHAR_COUNT 354 365# 376# 383# 387
CHECK_VERSION 98 257*
CONNECTED 353 359# 361 384#
CONNECT_BLOCK 200 280
DATA_LENGTH 170 239
DATA_PTR 170 239 283 289# 304
DECECO 119
FUNC_CODE 357 368# 371
GETB 304 368
LINK_HANDLE 216 222# 229 239 240 247 248
LINK_ID 149 163# 164 165 327 365 387
LOOP_BUFFER 355 363 365 369 387
LOOP_BUFFER_LENGTH 106# 156 355 365
LOOP_DATA 99 164 327*
LOOP_FAILED 350# 375 382
LOOP_OK 349# 372
MIRROR_OBJECT 163
NICE$_IID 297
NICE$_IMV 308
NML$MIRROR 90 123#
NMLMRR 34#
NMLVER 118 306
NMU$MEMORY_GET 113*
NMU$MEMORY_RELEASE 114
NMU$NETWORK_ACCEPT 239
NMU$NETWORK_CLOSE 165 248
NMU$NETWORK_OPEN 222
NMU$NETWORK_READ 365
NMU$NETWORK_REJECT 247
NMU$NETWORK_UTILITIES 115
NMU$NETWORK_WRITE 387
PUTB 372 375 382
PUTW 156
REASON 217 227# 246
REJECT_BUFFER 244 245 247
REJECT_PTR 244 245# 246
RESOURCE 123
SC$_ANP 247
TARGET_LINK 222
TASK 123
USRECO 120
VERSION 284 304# 306
WAIT_FOR_CONNECT 97 163 170*
$FALSE 384
$TRUE 161 212 359 387