Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/mcb/nspri.list
There are no other files named nspri.list in the archive.
NSPRI MACRO M1110 13-OCT-79 09:56
TABLE OF CONTENTS
4- 73 RCVMSG - PRIMARY LEVEL MESSAGE DISPATCH
5- 125 RCVCTL
6- 155 RCVDAT - DATA MESSAGE PROCESSING
7- 270 RCVLS - LINK SERVICE MESSAGE PROCESSING
8- 370 RCVSEG
9- 441 RCVACK
10- 519 CHKNUM - VALIDATE A RECEIVED ACK NUMBER
10- 520 CHKNMS - VALIDATE A RECEIVED SEGMENT NUMBER
11- 558 DATACK
12- 595 ACKCTL
13- 640 PROACK
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 3
1 .IIF DF N$$ICF, .TITLE NSPRI
2 .IIF NDF N$$ICF, .TITLE NSPRC
3 .IDENT /X01.08/
4
5 ;
6 ; COPYRIGHT (C) 1978 BY
7 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
8 ;
9 ;
10 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
11 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
12 ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
13 ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
14 ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
15 ; TRANSFERRED.
16 ;
17 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
18 ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
19 ; CORPORATION.
20 ;
21 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
22 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
23 ;
24 ;
25 ; MODULE DESCRIPTION
26 ;
27 ; NSP RECEIVE MESSAGE PROCESSING
28 ;
29 ;
30 ; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
31 ;
32 ; IDENT HISTORY:
33 ;
34 ; 1.00 10-FEB-78
35 ; VERSION 2.0 RELEASE
36 ;
37 ; AP0001 21-DEC-77 ALAN D. PECKHAM
38 ; TO ENABLE USE OF THE SYSTEM INTERFACE.
39 ; AP0002 20-MAR-78 ALAN D. PECKHAM
40 ; CALLERS OF "NOTUSR" MUST HAVE 'LSFLAGS' IN R2
41 ; AP0003 8-JUN-78 ALAN D. PECKHAM
42 ; NOTUSR NO LONGER NEEDS LSFLAGS IN R2
43 ; AP0004 14-JUL-78 ALAN D. PECKHAM
44 ; SEPERATE SYSTEM INTERFACE INTERRUPT FLOW COUNT
45 ; CHANGE IN RCVLS.
46 ; AP0005 13-NOV-78 ALAN D. PECKHAM
47 ; MAKE CHKNMS GLOBAL
48 ; AP0006 13-FEB-79 ALAN D. PECKHAM
49 ; FIX HANDLING OF RECEIVED MESSAGES COUNTER
50 ; ADD CODE TO SUPPORT EXTRANEOUS MESSAGES RECEIVED COUNTER
51 ; AP0007 22-MAY-79 ALAN D. PECKHAM
52 ; FIX RCVSEG TO AVOID CALLING SNDAKD AND SNDAKI FOR
53 ; INTERCEPT LINKS.
54
55 ;
56 ; EXTERNAL MACRO DEFINITIONS
57 ;
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 3-1
58 .MCALL MAP,SAVMAP,RESMAP
59 .MCALL SAVRG,RESRG,$MVTBF
60 .MCALL CCBDF$,NSPSY$
61 000000 CCBDF$ ; DEFINE THE CCB OFFSETS
62 000000 NSPSY$ ; DEFINE THE NSP SYMBOLS
63
64
65 .IF NDF N$$SYS&N$$USR
66 N$$SYS=1 ;IF NEITHER INTERFACE IS SPECIFIED
67 ;DEFAULT TO SYSTEM INTERFACE
68 .ENDC
69
70
71 000000 .PSECT NSPRC
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 4
RCVMSG - PRIMARY LEVEL MESSAGE DISPATCH
73 .SBTTL RCVMSG - PRIMARY LEVEL MESSAGE DISPATCH
74
75 ;+
76 ; **-RCVMSG-DECODE BASIC MESSSAGE TYPE AND DISPATCH
77 ;
78 ; THIS ROUTINE ISOLATES THE BASIC MESSAGE TYPE FROM THE MESSAGE FLAGS
79 ; FIELD (BITS 2 & 3) AND DISPATCHES TO THE APPROPRIATE PROCESSING
80 ; ROUTINE.
81 ;
82 ; INPUTS:
83 ;
84 ; R5 = ADDRESS OF CCB WHICH DESRCRIBE THE RECEIVED MESSAGE
85 ; R4 = MESSAGE POINTER TO [MSGFLGS]
86 ; R3 = POINTER TO SOURCE NODE NAME
87 ;
88 ; OUTPUTS TO PROCESSING ROUTINES:
89 ;
90 ; R1 = DISPACTCH CODE (WORD INDEX)
91 ; R2 = MESSAGE FLAGS
92 ; R4 = POINTER TO FIELD FOLLOWING MESSAGE FLAGS
93 ; R5 = ADDRESS OF RECEIVED MESSAGE CCB
94 ;
95 ; PROCESSING ROUTINES MUST CLEAR R5 IF THE MESSAGE CCB IS PASSED
96 ; ON FOR FURTHER PROCESSING. IF R5 IS NON ZERO, IT IS ASSUMED TO
97 ; BE THE ADDRESS OF THE MESSAGE CCB AND WILL BE RELEASED TO THE
98 ; SYSTEM.
99 ;-
100
101 000000 016565 000016 000012 RCVMSG::MOV C.BUF+2(R5),C.STS(R5) ; COMPUTE THE ADDRESS OF THE END OF
102 000006 066565 000020 000012 ADD C.CNT(R5),C.STS(R5) ; ...THE END OF THE MESSAGE + 1
103 000014 CALL GETEX1 ; GET MSGFLGS
104 000020 103415 BCS TOSS ; FIELD TOO LONG
105 000022 032701 000003 BIT #3,R1 ; IS THIS FIELD MSGFLGS?
106 000026 001012 BNE TOSS ; NO TOSS MSG
107 000030 010102 MOV R1,R2 ; MSGFLGS
108 000032 006201 ASR R1 ; GET OFF MSGFLG ID..NOW WORD INDEX
109 000034 042701 177771 BIC #^C<6>,R1 ; ISOLATE TYPE <BITS 1,2>
110 000040 CALLR @RCVTBL(R1) ; DISPATCH
111
112 ;
113 ; BASIC MESSAGE TYPE DISPATCH TABLE
114 ;
115 000044 000136' RCVTBL: .WORD RCVDAT ; PROCESS DATA, LINK SERVICE /INTERRUPT MESSAGES
116 000046 001056' .WORD RCVACK ; PROCESS EXPLICIT ACK'S OR NACK'S
117 000050 000100' .WORD RCVCTL ; PROCESS CONTROL MESSAGES
118 000052 000054' .WORD TOSS ; RESERVED MESSAGE TYPE
119
120 ;
121 ; AT THIS LEVEL OF HTE PROTOCOL, RESERVED MESSAGED ARE IGNORED.
122 ;
123 000054 TOSS: RETURN ; RETURN TO CALLER (R5 = CCB ADDRESS)
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 5
RCVCTL
125 .SBTTL RCVCTL
126 ;+
127 ; **-RCVCTL-RECEIVE A CONTROL MESSAGE
128 ; **-RVCICT-RECEIVE AN INTERCEPT CONTROL MESSAGE
129 ;
130 ; CONTROL MESSAGES ARE PROCESSED IN THE ACP. THE KEY PARAMETERS
131 ; ARE SAVED IN THE SECOND BUFFER DESCRIPTOR OF THE SPAWNED CCB
132 ; AND THE CCB IS LINKED TO THE ACP CCB QUEUE AND A SCHEDULE REQUEST
133 ; FOR THE ACP IS POSTED.
134 ;
135 ;-
136 .IF DF N$$ICF
137
138 000056 010065 000030 RCVICT::MOV R0,C.CNT2(R5) ; SAVE POINTER TO DESTINATION NODE NAME
139 000062 116565 000011 000002 MOVB C.MOD(R5),C.RSV(R5) ;SAVE CODE FOR UNSPWN
140 000070 112765 000002 000011 MOVB #2,C.MOD(R5) ; SET SUBFUCTION CODE TO INDICATE A
141 000076 000405 BR CTLCMN ; ...CONTROL MESSAGE
142
143 .ENDC
144
145 000100 116565 000011 000002 RCVCTL: MOVB C.MOD(R5),C.RSV(R5) ;SAVE CODE FOR UNSPWN
146 000106 105065 000011 CLRB C.MOD(R5) ; INDICATE THAT THIS A CONTROL MESSAGE
147
148 000112 010465 000024 CTLCMN: MOV R4,C.BUF2(R5) ; SAVE MESSAGE POINTER
149 000116 010365 000032 MOV R3,C.FLG2(R5) ; SAVE POINTER TO REMOTE NODE NAME
150 000122 010265 000022 MOV R2,C.FLG1(R5) ; SAVE MESSAGE FLAGS
151 000126 010504 MOV R5,R4 ; CHANGE REGISTER CONVENTIONS
152 000130 005005 CLR R5 ; INDICATE CCB PASSED ON & NO ERROR (C=0)
153 000132 CALLR QNSPA ; QUEUE CCB AND SCHEDULE THE ACP
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 6
RCVDAT - DATA MESSAGE PROCESSING
155 .SBTTL RCVDAT - DATA MESSAGE PROCESSING
156
157 ;+
158 ; **-RCVDAT-DATA MESSAGE PROCESSING
159 ;
160 ; THIS ROUTINE IS DISPATCHED TO WHEN A DATA TYPE PROTOCOL MESSAGE IS
161 ; RECEIVED. INCLUDED IN THIS CATAGORY ARE USER DATA MESSAGES, USER
162 ; INTERRUPT MESSAGES, AND LINK SERVICE MESSAGES.
163 ;
164 ; INPUTS:
165 ;
166 ; R5 = ADDRESS OF THE MESSAGE CCB
167 ; R4 = POINTER TO MSGFLGS
168 ; R3 = POINTER TO SOURCE NODE NAME
169 ; R2 = MSGFLGS
170 ;
171 ; OUTPUTS:
172 ;
173 ; R5 = CCB ADDRESS IF CCB IS TO BE RELEASED
174 ; = 0 IF CCB IS NOT TO BE RELEASED
175 ;
176 ; ALL REGISTERS MAY BE USED
177 ;
178 ;-
179
180 000136 RCVDAT::CALL PRODS ; PROCESS DST,SRC ADDRESS
181 000142 103541 BCS 100$ ; IF CS, MESSAGE IS FOR AN IDLE LINK
182 000144 122710 000001 CMPB #ST$CIS,(R0) ; IS THE LINK WAITING FOR AN ACCEPT OR REJECT ?
183 000150 001531 BEQ 90$ ; IF EQ, YES - SET FLAG TO SEND A NAK
184 000152 026001 000010 CMP L.RLA(R0),R1 ; IS THE SOURCE LINK ADDRESS CORRECT ?
185 000156 001133 BNE 100$ ; IF NE, NO - MESSAGE IS FOR AN IDLE LINK
186 000160 122710 000005 CMPB #ST$DAT,(R0) ; ARE WE IN RUN STATE ?
187 000164 001126 BNE 80$ ; NO - RECORD THE FACT AND IGNORE. ;AP0006
188 ;**-1
189 000166 CALL RCDAK ; PROCESS THE ACKNUM FIELD
190
191 000172 CALL RCVSEG ; PROCESS THE SEGNUM FIELD
192 000176 103521 BCS 80$ ; IF CS, BAD SEGNUM - RECORD AND TOSS. ;AP0006
193 000200 016565 000004 000022 MOV C.NSP(R5),C.FLG(R5) ; SAVE TRANSMITERS LLT ADDR FOR INTERNAL LOO;**-1
194 000206 032702 000020 BIT #MD.IM,R2 ; INTERRUPT/LINK SERVICE OR DATA
195 000212 001011 BNE 30$ ; INTERRUPT/LINK SERVICE
196 000214 112765 000002 000011 MOVB #NT$DAT,C.MOD(R5) ; SET SUBFUNCTION CODE FOR DATA
197 000222 110265 000012 MOVB R2,C.STS(R5) ; USER DATA FLAGS
198 000226 042765 177637 000012 BIC #^C<NT.EOM!NT.BOM>,C.STS(R5) ; CLEAR ALL BUT DATA BITS
199 000234 000422 BR 60$
200
201 000236 005260 000032 30$: INC L.LSA(R0) ; BUMP THE HIGHEST I/LS NUMBER ACK'D
202 000242 042760 170000 000032 BIC #LA.MSK,L.LSA(R0) ; REMOVE GARBAGE IF OVERFLOW
203 000250 052760 100000 000032 BIS #LA.ACK,L.LSA(R0) ; SET ACK REQUIRED FLAGS
204 000256 CALL SNDAKI ; ATTEMPT TO SEND THE ACK MESSAGE
205 000262 032702 000040 BIT #MD.ILS,R2 ; INTERRUPT OR LINK SERVICE
206 000266 001002 BNE 50$ ; INTERRUPT
207 000270 CALLR RCVLS ; LINK SERVICE PROCESSING AND RETURN
208
209 000274 112765 000004 000011 50$: MOVB #NT$INT,C.MOD(R5) ; SET SUBFUNCTION CODE FOR INTERRUPT
210
211 000302 166504 000016 60$: SUB C.BUF+2(R5),R4 ; COMPUTE THE LENGTH OF THE NSP HEADER
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 6-1
RCVDAT - DATA MESSAGE PROCESSING
212 000306 160465 000020 SUB R4,C.CNT(R5) ; ...AND REDUCE THE MESSAGE LENGTH
213 000312 100447 BMI 70$ ; IMPROPER MESSAGE COUNT
214 000314 060465 000016 ADD R4,C.BUF+2(R5) ; SET THE BUFFER ADDRESSTO THE START OF THE MESSAGE
215
216 000320 016065 000020 000004 MOV L.RNO(R0),C.NSP(R5) ; STORE SEGMENT NUMBER IN THE CCB
217 000326 005365 000004 DEC C.NSP(R5) ; WAS INCREMENTED BY 'RCVSEG'
218 000332 042765 170000 000004 BIC #LA.MSK,C.NSP(R5) ; CLEAR UNDERFLOW
219 000340 016702 000000G MOV $NSDDB,R2 ; GET THE ;AP0006
220 000344 016202 000044 MOV N$STS+2(R2),R2 ; STATISTICS BLOCK ;AP0006
221 000350 005262 000004 INC S$UMR(R2) ; BUMP THE RECEIVE COUNT ;AP0006
222 000354 001002 BNE 62$ ; AND IF OVERFLOWED ;AP0006
223 000356 005362 000004 DEC S$UMR(R2) ; THEN BACK IT UP AGAIN. ;AP0006
224 000362 62$: ;AP0006
225
226 .IF DF N$$SYS&N$$USR
227 000362 105760 000041 TSTB L.PDV(R0) ; SYSTEM OR USER INTERFACE? ;AP0001
228 000366 001017 BNE 65$ ; SYSTEM ;**-1
229 .ENDC
230
231 .IF DF N$$USR
232 000370 016065 000040 000006 MOV L.ULA(R0),C.LIN(R5) ; PUT ULA INTO CCB
233 000376 122765 000004 000011 CMPB #NT$INT,C.MOD(R5) ; IS THIS AN INTERRUPT MESSAGE ?
234 000404 001004 BNE 61$ ; IF NE, NO
235 000406 010504 MOV R5,R4 ; SET UP CCB ADDRESS FOR QUEUING TO THE ACP
236 000410 CALL QNSPA ; QUEUE INTERRUPT MESSAGE TO THE ACP
237 000414 000402 BR 63$ ;
238
239 000416 61$: CALL $QDATR ; CALL QIO INTERFACE ROUTINE ;AP0006
240 000422 005005 63$: CLR R5 ; INDICATE CCB NOT TO BE UNSPAWN'ED NOW ;**-7
241 000424 000402 BR 70$
242 .ENDC
243 000426 65$:
244 .IF DF N$$SYS
245 000426 CALL GIVUSR ; GIVE DATA OR INTERRUPT TO USER
246 .ENDC
247
248 000432 70$: RETURN
249
250 ;
251 ; SINCE DATA MAY BE TRANSMITTED IMMEDIATELY FOLLOWING A CONNECT CONFIRM,
252 ; IT IS POSIBLE TO RECEIVE A DATA OR LINK SERVICE MESSAGE BEFORE THE ACP
253 ; HAS HAS PLACED THE LINK IN DATA STATE. IF DATA IS RECEIVED IN THIS
254 ; WINDOW, A NAK FOR SEGMENT ZERO WILL BE SENT WHEN THE LINK ENTERS DATA.
255 ;
256 000434 052760 002000 000012 90$: BIS #LF.NTS,L.FLG(R0) ; RECORD THE EVENT FOR LATER
257 000442 80$: CALLR EMRCTR ; AND RECORD EXTRANEOUS MESSAGE. ;AP0006
258 ;**-1
259 ;
260 ; THE STANDARD RESPONSE TO AN RECEIVED MESSAGE WHICH DOES NOT MATCH THE
261 ; LOGICAL LINK DATA IS A DISCONNECT CONFIRM. THE DC IS BUILT IN THE
262 ; BUFFER OF THE RECEIVED MESSAGE, HENCE NO RESOURCE FAULT CAN OCCUR.
263 ; EVENTUALLY THE BUFFER IS RETURNED AT TRANSMIT COMPLETE OF THE DC.
264 ; THIS OPERATION CAN NEVER HAPPEN FOR LOCAL LOGICAL LINKS.
265 ;
266 000446 100$: CALL EMRCTR ; RECORD EXTRANEOUS MESSAGE ;AP0006
267 000452 CALLR DODC ; SEND A DC IN RESPONSE TO A MESSAGE RECEIVED ;AP0006
268 ; FOR AN IDLE LINK AND RETURN ;**-1
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 7
RCVLS - LINK SERVICE MESSAGE PROCESSING
270 .SBTTL RCVLS - LINK SERVICE MESSAGE PROCESSING
271
272 ;+
273 ; **-RCVLS-LINK SERVICE MESSAGE PROCESSING
274 ;
275 ; THIS SUBROUTINE IS CALLED FROM THE MAINLIN DATA MESSAGE PROCESSING
276 ; ROUTINE WHEN THE MESSAGE TYPE IS LINK SERVICE. THIS ROUTINE VALIDATES
277 ; THE REMAINING BYTES OF THE MESSAGE, ADJUSTS TRANSMIT COUNTS AND BACK
278 ; PRESSURE FLAGS, AND ATTEMPTS TO INITIATE TRANSMISSION IF IT WAS BLOCKED
279 ; DUE TO FLOW CONTROL.
280 ;
281 ; INPUTS:
282 ;
283 ; R5 = ADDRESS OF THE MESSAGE CCB
284 ; R4 = POINTER TO 'LSFLAGS'
285 ; R3 = POINTER TO SOURCE NODE NAME
286 ; R0 = ADDRESS OF THE LOGICAL LINK TABLE
287 ;
288 ; OUTPUTS:
289 ;
290 ; THE LOGICAL LINK WILL BE ABORTED ON ANY PROTOCOL ERROR.
291 ; THE BACKPRESSURE FLAGS ARE UPDATED AND TRANSMIT COUNTS
292 ; ARE UPDATED. AN ATTEMPT IS MADE TO INITIATE TRANSMISSION IF
293 ; FLOW CONTROL WAS A BLOCKING CONDITION.
294 ;
295 ; REGISTERS MODIFIED:
296 ;
297 ; R1, R2, R3, AND R4
298 ;-
299
300 000456 005046 RCVLS:: CLR -(SP) ; INITIALIZE A FLAG FOR UNBLOCKING TRANSMISSION
301 000460 CALL GETEX1 ; GET LSFLAGS,RETURNS IN R1
302 000464 103465 BCS 60$ ; LSFLAGS EXTENSION BIT ON,ERROR
303 000466 132701 000360 BITB #LS.RES,R1 ; ANY RESERVED LINK SERVICE FLAGS ?
304 000472 001062 BNE 60$ ; IF NE, YES - ABORT THE LOGICAL LINK
305
306 ;
307 ; PROCESS ANY CHANGE IN THE BACKPRESSURE
308 ;
309 000474 032701 000001 BIT #LS.FC0,R1 ; FLOW CLOSED
310 000500 001404 BEQ 10$ ; NO
311 000502 052760 001000 000012 BIS #LF.HF0,L.FLG(R0) ; RECORD FLOW CLOSED IN LLT
312
313 .IF DF N$$LV2
314 CLR L.TIMD(R0) ; CLEAR DATA TIMER AND RETRY COUNT
315 .ENDC
316
317 000510 000406 BR 15$ ; GO TELL THE USER ;AP0002
318 ;**-1
319 000512 032701 000002 10$: BIT #LS.FC1,R1 ; FLOW OPEN
320 000516 001404 BEQ 20$ ; NO
321 000520 042760 001000 000012 BIC #LF.HF0,L.FLG(R0) ; RECORD FLOW OPEN IN LLT
322 000526 005216 15$: INC (SP) ; INDICATE THAT TRANSMISSION COULD BE INITIATED ;AP0003
323 000530 20$: ; ;**-1
324
325 ;
326 ; PROCESS ANY CHANGE IN THE FLOW CONTROL REQUEST COUNTS
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 7-1
RCVLS - LINK SERVICE MESSAGE PROCESSING
327 ;
328 000530 005002 CLR R2 ; USE FOR FLOW CONTROL VALUE
329 000532 151402 BISB (R4),R2 ; FLOW CONTOL VALUE
330 000534 032701 000004 BIT #LS.FCC,R1 ; FLOW CONTROL INTERPRETATION=INTERRUPT
331 000540 001415 BEQ 40$ ; NO
332 000542 000302 SWAB R2 ; MOVE FCVAL TO UPPER BYTE
333 000544 105002 CLRB R2 ; PREPARE FOR ADD
334 000546 060260 000042 ADD R2,L.TC(R0) ; ADJUST INTERRUPT REQUEST COUNT
335 000552 102432 BVS 60$ ; ON OVERFLOW FOR 8 BIT NO.,SEND DI
336 ;AP0004
337 .IF DF N$$SYS ;AP0004
338 000554 105760 000041 TSTB L.PDV(R0) ; IF SYSTEM INTERFACE LINK ;AP0004
339 000560 001033 BNE 70$ ; THEN NO FLOW NOTIFICATION NECESSARY. ;AP0004
340 .ENDC ;AP0004
341 ;AP0004
342 000562 116003 000040 MOVB L.ULA(R0),R3 ; SET UP THE ULA
343 000566 CALL $QIFC ; NOTIFY USER INTERFACE OF FLOW CONTROL CHANGE
344 000572 000426 BR 70$
345
346 000574 105702 40$: TSTB R2 ; IF DATA REQUEST COUNT
347 000576 100004 BPL 50$ ; IS NEGATIVE
348 000600 032760 020000 000012 BIT #LF.HMF,L.FLG(R0) ; AND MESSAGE FLOW CONTROLLED
349 000606 001014 BNE 60$ ; THEN ERROR
350
351 000610 005001 50$: CLR R1 ; USE FOR XMIT COUNTS
352 000612 156001 000042 BISB L.TC(R0),R1 ; PREPARE FOR 8 BIT OVERFLOW
353 000616 060102 ADD R1,R2
354 000620 032702 177400 BIT #177400,R2
355 000624 001005 BNE 60$ ; 8 BIT OVERFLOW ON DATA REQUEST COUNT
356 000626 110260 000042 MOVB R2,L.TC(R0) ; ADJUST DATA REQUEST COUNT
357 000632 003406 BLE 70$ ; IF DATA REQUEST COUNT IS LESS THAN OR EQUAL TO ZERO
358 ; ... NO NEED TO SIGNAL FOR TRANSMIT DATA
359 000634 005216 INC (SP) ; OTHERWISE, ATTEMPT TO INITAITE TRANSMISSION
360 000636 000404 BR 70$
361
362 000640 012703 000030 60$: MOV #ER$IFC,R3 ; SET INVALID FCVAL ERROR CODE
363 000644 CALL DESLNK ; DONT CARE IF WE ATTEMPT TRANSMISSION
364
365 000650 005726 70$: TST (SP)+ ; SHOULD WE TRY TO INITIATE DATA ?
366 000652 001402 BEQ 80$ ; IF EQ, NO
367 000654 CALL NOTUSR ; TRY TO INITIATE DATA TRANSMISSION
368 000660 80$: RETURN ; EXIT WITH R5 NO ZERO TO RELEASE BUFFER
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 8
RCVSEG
370 .SBTTL RCVSEG
371 ;+
372 ; **-RCVSEG-PROCESS RECEIVED SEGMENT NUMBERS
373 ;
374 ; ACKNUM,SEGNUM FOR INTERRUPT,LINK SERVICE AND DATA
375 ;
376 ; INPUTS:
377 ; R5=CCB
378 ; R4=PTR[DSTADDR]
379 ; R3=NODE INDEX
380 ; R2=MSGFLG
381 ; R0=LLT ADDRESS ;AP0008
382 ;
383 ; OUTPUTS:
384 ; R1=PERFORM/DONT PERFORM ACTION FLAG FOR DATA/I/LS
385 ; IF NEGATIVE,TOSS THE SEGMENT OTHERWISE PROCESS IT.
386 ;-
387
388 000662 RCVSEG::SAVRG <R2> ; SAVE R2
389 000664 CALL GETBIN ; R1=SEGMENT NUMBER
390
391 000670 032702 000020 BIT #MD.IM,R2 ; INTERRUPT/LINK SERVICE OR DATA ?
392 000674 001036 BNE 30$ ; IF NE, INTERRUPT/LINK SERVICE
393
394 000676 020160 000020 CMP R1,L.RNO(R0) ; IS THIS THE EXPECTED SEGMENT NUMBER ?
395 000702 001422 BEQ 20$ ; IF EQ, YES - CONTINUE (C-BIT CLEAR)
396 000704 016002 000020 MOV L.RNO(R0),R2 ; SET NEXT SEGMENT NUMBER TO BE RECEIVED
397 000710 CALL CHKNMS ; WILL INDICATE WHETHER SEGNUM HIGH OR LOW
398 000714 032760 000400 000012 BIT #LF.NKS,L.FLG(R0) ; HAS A NAK BEEN SENT ?
399 000722 001052 BNE 60$ ; IF NE, YES - TOSS SEGMENT
400 000724 103051 BCC 60$ ; IF CS, SEGNUM TOO HIGH - TOSS IT
401 ;AP0008
402 .IF DF N$$ICF ;AP0008
403 000726 032710 000400 BIT #LF.INT,(R0) ; IF NOT INTERCEPT NODE ;AP0008
404 000732 001046 BNE 60$ ; THEN ;AP0008
405 .ENDC ;AP0008
406 ;AP0008
407 000734 052760 100000 000030 BIS #LA.ACK,L.USA(R0) ; SET ACK REQUIRED FLAG
408 000742 CALL SNDAKD ; ATTEMPT TO SEND THE ACK MESSAGE
409 000746 000440 BR 60$ ; EXIT WITH C-BIT SET
410
411 000750 042760 000400 000012 20$: BIC #LF.NKS,L.FLG(R0) ; RESET NAK SENT FLAG
412 000756 005260 000020 INC L.RNO(R0) ; SET NEXT SEGMENT NUMBER EXPECTED
413 000762 042760 170000 000020 BIC #LA.MSK,L.RNO(R0) ; CORRECT WRAP AROUND
414 000770 000430 BR 70$ ; EXIT WITH C-BIT CLEAR
415
416
417 000772 020160 000022 30$: CMP R1,L.LNO(R0) ; IS THE I/LS SEGMENT NO. RECVD EXPECTED
418 000776 001416 BEQ 50$ ; IF EQ, YES - CONTINUE (C-BIT CLEAR)
419 001000 016002 000022 MOV L.LNO(R0),R2 ; SET NEXT I/LS SEGMENT NUMBER
420 001004 CALL CHKNMS ; SEGNUM CHECK ON I/LS
421 001010 103017 BCC 60$ ; IF CC, SEGMENT NUMBER HIGH - TOSS IT
422 ;AP0008
423 .IF DF N$$ICF ;AP0008
424 001012 032710 000400 BIT #LF.INT,(R0) ; IF NOT INTERCEPT NODE ;AP0008
425 001016 001014 BNE 60$ ; THEN ;AP0008
426 .ENDC ;AP0008
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 8-1
RCVSEG
427 ;AP0008
428 001020 052760 100000 000032 BIS #LA.ACK,L.LSA(R0) ; SET ACK REQUIRED FLAG
429 001026 CALL SNDAKI ; ATTEMPT TO SEND THE ACK MESSGAE
430 001032 000406 BR 60$ ; EXIT WITH C-BIT SET
431
432 001034 005260 000022 50$: INC L.LNO(R0) ; SET NEXT SEGMENT NUMBER EXPECTED
433 001040 042760 170000 000022 BIC #LA.MSK,L.LNO(R0) ; CORRECT WRAP AROUND
434 001046 000401 BR 70$ ; EXIT WITH C-BIT CLEAR
435
436 001050 000261 60$: SEC ; SET C-BIT TO INDICATE BAD SEGMENT NUMBER
437
438 001052 70$: RESRG <R2> ; RESTORE R2
439 001054 RETURN ; RETURN TO CALLER
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 9
RCVACK
441 .SBTTL RCVACK
442 ;++
443 ;
444
445 ; INPUTS:
446 ; R5=CCB
447 ; R4=PTR[DSTADDR]
448 ; R3=NODE INDEX
449 ; R2=MSGFLG
450 ; R0=LLT
451
452 ; OUTPUTS:
453
454 ; CALLING SEQUENCE:
455
456 ; THIS ROUTINE PROCESSES THE ACKNUM FIELD IN
457 ; LINK SERVICE,DATA MESSAGES.
458
459 ;--
460 .ENABL LSB
461
462 001056 RCVACK::CALL PRODS ; PROCESS DST,SRC ADDRESS
463 001062 103434 BCS 100$ ; IF CS, MESSAGE RECEIVED ON AN IDLE LINK
464 001064 026001 000010 CMP L.RLA(R0),R1 ; IS THE SOURCE LINK ADDRESS CORRECT ?
465 001070 001031 BNE 100$ ; IF NE, NO - MESSAGE RECEIVED ON AN IDLE LINK
466 001072 122710 000005 CMPB #ST$DAT,(R0) ; ARE WE IN RUN STATE ?
467 001076 001401 BEQ 40$ ; YES
468
469 .IF DF N$$LV2
470 CMPB #ST$CIS,(R0) ; ARE WE IN CIS STATE ?
471 BNE 30$ ; NO
472 TST R1 ; SOURCE ADDRESS=0
473 BEQ 40$ ; YES
474 BR 100$ ; SEND A DC
475
476 30$: CMPB #ST$CC,(R0) ; ARE WE IN CC STATE ?
477 BNE 70$ ; NO,TOSS THE ACK
478
479 .IFF
480 001100 000415 BR 70$
481 .ENDC
482
483 ;
484 ; ENTRY FOR PIGGYBACKED ACK PROCESSING
485 ;
486 001102 RCDAK::
487 001102 105764 000001 40$: TSTB 1(R4) ; ACKNUM FIELD PRESENT
488 001106 100012 BPL 70$ ; NO,JUST RETURN
489
490 001110 CALL GETBIN ; GET ACKNUM FIELD IN R1
491 001114 032701 060000 BIT #LA.RES,R1 ; ARE ANY INVALID BITS SET ?
492 001120 001007 BNE 90$ ; IF NE, YES - DESTROY THE LINK
493
494 .IF DF N$$LV2
495 CMPB #ST$CIS,L.STA(R0) ; ARE WE IN CIS STATE
496 BEQ 50$ ; YES
497 CMPB #ST$CC,L.STA(R0) ; ARE WE IN CC STATE
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 9-1
RCVACK
498 BNE 60$ ; NO
499 50$: CALL ACKCTL ; PROCESS CONTROL ACK
500 BR 80$
501 .ENDC
502
503 001122 60$: CALL DATACK ; VALIDATE THE 'ACKNUM'
504 001126 103402 BCS 70$ ; EXCEPTION CONDITION, ACKNUM BAD
505 001130 CALL PROACK ; PROCESS THE DATA ACK/NAK
506 001134 000241 70$: CLC
507 001136 80$: RETURN
508
509 001140 012703 000007 90$: MOV #ER$GEN,R3 ; SET REASON CODE FOR LINK ABORT
510 001144 CALL DESLNK ; INITIATE LINK DESTRUCTION
511 001150 000261 SEC ; INDICATE ERROR
512 001152 RETURN ; RETURN TO CALLER
513
514 001154 100$: CALLR DODC ; SEND A DC IN RESPONSE TO A MESSAGE RECEIVED
515 ; FOR AN IDLE LINK AND RETURN
516
517 .DSABL LSB
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 10
CHKNUM - VALIDATE A RECEIVED ACK NUMBER
519 .SBTTL CHKNUM - VALIDATE A RECEIVED ACK NUMBER
520 .SBTTL CHKNMS - VALIDATE A RECEIVED SEGMENT NUMBER
521 ;+
522 ; **-CHKNMS-VALIDATE A RECEIVED SEGMENT NUMBER
523 ; **-CHKNUM-VALIDATE A RECEIVED ACK NUMBER
524 ;
525 ; INPUTS:
526 ; R1=ACKNUM OR SEGNUM
527 ; R2=LAST DATA ACKED/LAST ILS ACKED OR LAST DATA RECVD/LAST ILS RECVD.
528 ; R3=WINDOW (CALCULATED AS # OF OUTSTANDING SEGMENTS FOR
529 ; ACKNUM, 'CHKNUM' ONLY)
530 ;
531 ; OUTPUTS:
532 ; R3=COUNT OF CCBS TO BE ACKED AND RETURNED TO USER
533 ; OR C-BIT SET INDICATING IMPROPER ACKNUM.
534 ; FOR SEGNUM CHECKING,THE C-BIT WILL BE USED
535 ; IF CLEAR , THEN SEGNUM TOO HIGH,WE WILL TOSS THIS
536 ; SEGMENT.
537 ; IF SET, THEN SEGNUM LOW,WE WILL TOSS THIS SEGMENT
538 ; AND THEN SEND ACK WITH HIGHEST ACKNUM.
539 ; R3 IS MEANINGLESS FOR SEGNUM CHECKING
540 ;-
541
542 001160 012703 004000 CHKNMS::MOV #WINDOW,R3 ; SET RANGE FOR SEGMENT NUMBERS ;AP0005
543 ;**-1
544 001164 042701 170000 CHKNUM: BIC #LA.MSK,R1 ; ACKNUM 12 BIT FIELD
545 001170 042702 170000 BIC #LA.MSK,R2 ; LAST DATA SEGMENT ACKED OR RECEIVED 12 BIT FIELD
546
547 001174 160201 SUB R2,R1 ; R1=POTENTIAL COUNT OF CCBS TO BE ACKED
548 001176 103002 BHIS 10$ ; NO WRAP-AROUND
549 001200 062701 010000 ADD #LA.NMS,R1 ; ADJUST FOR WRAP-AROUND
550
551 001204 020301 10$: CMP R3,R1 ; IS LAST DATA ACKED WITHIN THE WINDOW
552 001206 103401 BLO 20$ ; SETS -C BIT-,ACKNUM IMPROPER OR SEGNUM LOW
553
554 001210 010103 MOV R1,R3 ; NO. OF SEGMENTS TO BE ACKED,C-BIT CLEARED
555
556 001212 20$: RETURN ; RETURN TO CALLER
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 11
DATACK
558 .SBTTL DATACK
559 ;++
560 ;
561
562 ; INPUTS:
563 ; R2=MSGFLG
564 ; R1=ACKNUM
565 ; R0=LLT
566
567 ; OUTPUTS:
568
569 ; CALLING SEQUENCE:
570
571 ; THIS ROUTINE DISPATCHES A DATA ACK AS EITHER AN
572 ; INTERRUPT/LINK SERVICE OR DATA ACK. IT CALLS
573 ; THE ROUTINE CHKNUM TO INSPECT THE ACKNUM.
574
575 ;--
576
577 001214 DATACK: SAVRG <R1,R2> ; SAVE R1 AND R2
578 001220 032702 000020 BIT #MD.IM,R2 ; INTERRUPT/LINK SERVICE OR DATA ?
579 001224 001005 BNE 10$ ; IF NE, INTERRUPT/LINK SERVICE
580
581 001226 016002 000024 MOV L.LDA(R0),R2 ; LAST DATA ACKED
582 001232 016003 000014 MOV L.NXN(R0),R3 ; NEXT SEGMENT NO. TO SEND
583 001236 000404 BR 20$ ;
584
585 001240 016002 000026 10$: MOV L.LIA(R0),R2 ; LAST I/LS ACKED
586 001244 016003 000016 MOV L.NIN(R0),R3 ; NEXT I/LS NO TO SEND
587 001250 160203 20$: SUB R2,R3 ; COMPUTE NUMBER OF UNACKNOWLEDGED SEGMENTS
588 001252 103002 BHIS 30$ ; IF HIS, NO WRAP AROUND
589 001254 062703 010000 ADD #LA.NMS,R3 ; OTHERWISE ADJUST FOR WRAP AROUND
590 001260 005303 30$: DEC R3 ; HIGHEST NUMBER IS ONE LESS THAN THE COUNT
591 001262 CALL CHKNUM ; CHECKS LAST I/LS ACKED IS PROPER
592 001266 RESRG <R2,R1> ; RESTORE REGISTERS
593 001272 RETURN ; RETURN TO CALLER
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 12
ACKCTL
595 .SBTTL ACKCTL
596 ;++
597 ;
598
599 ; INPUTS:
600 ; R3=NODE INDEX
601 ; R1=ACKNUM
602 ; R0=LLT
603
604 ; OUTPUTS:
605
606 ; CALLING SEQUENCE:
607
608 ; THIS ROUTINE PROCESSES CONNECT INITIATE OR
609 ; CONNECT CONFIRM ACKS.
610
611 ;--
612 .IF DF N$$LV2
613
614 ACKCTL:
615 SAVRG <R0,R1>
616 BIT #A.NAK,R1 ;IS THIS A NAK FOR CI,CC
617 BNE 30$ ;IGNORE IT
618 BIC #ACKMSK,R1 ;12 BIT ACKNUM
619 BEQ 10$ ;CONTROL ACK
620 MOV L.RLA(R0),R1 ;DESTINATION LINK IDENTIFIER
621 MOV L.LLA(R0),R0 ;SOURCE LINK IDENTIFIER
622 MOV #ER$IAC,ERRCEL ;INVALID ACK FOR CI,CC
623 CALL DODC ;SEND A DISCONNECT CONFIRM
624 BR 30$
625
626 10$: CMPB #ST$CC,L.STA(R0) ;CONNECT CONFIRM
627 BNE 20$ ;NO
628 CALL ENTDAT ;ENTER DATA MODE
629
630 20$: .IF DF N$$LV2
631 CALL STPTMD ; STOP DATA ACK TIMER
632 .ENDC
633 CLC ;NO RESOURCE ERROR
634
635 30$: RESRG <R1,R0>
636 RETURN
637
638 .ENDC
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 13
PROACK
640 .SBTTL PROACK
641 ;++
642 ;
643
644 ; INPUTS:
645 ; R5=CCB
646 ; R3=COUNT OF CCBS TO BE RELEASED
647 ; R2=MSGFLG
648 ; R1=ACKNUM
649 ; R0=LLT
650
651 ; OUTPUTS:
652
653 ; CALLING SEQUENCE
654
655 ; THIS ROUTINE PROCESSES THE IMPLIED ACK FOR
656 ; THE ACK OR NAK
657
658 ;--
659
660 001274 PROACK: CALL ACKNSP ; ACKNOWLEDGE ALL POSSIBLE SEGMENTS
661 001300 032701 010000 BIT #LA.NMS,R1 ; DO WE HAVE A NEGATIVE ACK ?
662 001304 001453 BEQ 30$ ; NO
663
664 .IF DF N$$ICF
665
666 001306 032710 000400 BIT #LF.INT,(R0) ; INTERCEPT LINK?
667 001312 001425 BEQ 7$ ; NO
668 001314 032702 000020 BIT #MD.IM,R2 ; I/LS MESSAGE?
669 001320 001011 BNE 5$ ; YES
670 001322 016060 000024 000014 MOV I.LDA(R0),I.NXN(R0) ; READJUST NEXT SEG TO BE RECVD FROM ITERCEPTED NODE
671 001330 005260 000014 INC I.NXN(R0) ; SYNC WITH NAK
672 001334 042760 170000 000014 BIC #LA.MSK,L.NXN(R0) ; WRAPAROUND
673 001342 000434 BR 30$
674
675 001344 016060 000026 000016 5$: MOV I.LIA(R0),I.NIN(R0) ; RE-ADJUST NEXT SEG TO BE RECVD FROM INTERCEPTED NO
676 001352 005260 000016 INC I.NIN(R0) ; DUE TO NAK
677 001356 042760 170000 000016 BIC #LA.MSK,I.NIN(R0) ; WRAPAROUND
678 001364 000423 BR 30$
679 001366 7$:
680 .ENDC
681
682 001366 032702 000020 BIT #MD.IM,R2 ; INTERRUPT/LINK SERVICE OR DATA
683 001372 001010 BNE 20$ ; INTERRUPT/LINK SERVICE
684 001374 052760 000200 000012 BIS #LF.NKR,L.FLG(R0) ; ASSUME THAT NAK PROCESSING WILL BE DEFERRED
685 001402 105760 000005 TSTB L.TIPD(R0) ; ANY DATA TRANSMITS IN PROGRESS ?
686 001406 001012 BNE 30$ ; IF NE, YES - DEFER NAK PROCESSING
687 001410 CALLR NAKNSP ; ATTEMPT TO INITIATE RETRANSMISSION
688
689 001414 052760 000100 000012 20$: BIS #LF.INR,L.FLG(R0) ; ASSUME NAK PROCESSING WILL BE DEFERRED
690 001422 105760 000004 TSTB L.TIPI(R0) ; ANY INTERRUPT OR LS TRANSMITS IN PROGRESS ?
691 001426 001002 BNE 30$ ; IF NE, YES - DEFER NAK PROCESSING
692 001430 CALLR RETLS ; RETRANSMIT I/LS ON XQ3
693
694 001434 30$: RETURN
695
696 000001 .END
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 13-1
SYMBOL TABLE
ACKMAS= 170000 C.BUF 000014 ER$SSS= 000045 I.IREM= 000042 L$$DRV= 000000
ACKNSP= ****** GX C.BUF1 000014 ER$STA= 000051 I.LDA = 000024 L$$P11= 000001
ACKPRE= 100000 C.BUF2 000024 ER$TCN= 000040 I.LIA = 000026 L$$11R= 000000
ACKRES= 060000 C.CNT 000020 ER$TCO= 000041 I.LLA = 000002 L.CIQ 000026
ACKWRA= 010000 C.CNT1 000020 ER$TPA= 000010 I.LNO = 000022 L.DCR 000036
A$$CHK= 000000 C.CNT2 000030 ER$UOB= 000004 I.LSA = 000032 L.FLG 000012
A$$CPS= 000000 C.FLG 000022 E$$XPR= 000000 I.LVL = 000001 L.LDA 000024
A$$PRI= 000000 C.FLG1 000022 FC.CCP= 000020 I.NDA = 000034 L.LIA 000026
A$$TRP= 000000 C.FLG2 000032 FC.CTL= 000006 I.NIN = 000016 L.LLA 000002
A.NAK = 010000 C.FNC 000010 FC.KCP= 000016 I.NLA = 000036 L.LNG1 000054
CB.CCB= 000002 C.LIN 000006 FC.KIL= 000004 I.NSTA= 000025 L.LNO 000022
CB.RDB= 000004 C.LNK 000000 FC.RCE= 000002 I.NXN = 000014 L.LSA 000032
CE.ABO= 100362 C.MOD 000011 FC.RCP= 000014 I.REM = 000006 L.LSF 000044
CE.DIS= 100366 C.NSP 000004 FC.TIM= 000010 I.RLA = 000010 L.LVL 000001
CE.ERR= 100370 C.RSV 000002 FC.XCP= 000012 I.RNO = 000020 L.NDA 000034
CE.MOP= 100372 C.STA 000007 FC.XME= 000000 I.STA = 000000 L.NIN 000016
CE.NTE= 100361 C.STS 000012 FS.AST= 000000 I.TIPD= 000005 L.NLA 000036
CE.RTE= 100376 DATACK 001214R 002 FS.CIB= 002000 I.TIPI= 000004 L.NSTA 000025
CE.SRC= 100364 DESLNK= ****** GX FS.CRA= 001000 I.USA = 000030 L.NXN 000014
CE.TMO= 100374 DF$ADJ= 020000 FS.DIS= 013000 I.USTA= 000024 L.PDV 000041
CF.EOM= 000004 DF$DWN= 001000 FS.DVC= 001000 K$$CNT= 177546 L.REM 000006
CF.HDR= 000020 DF$FRE= 070000 FS.ENB= 012000 K$$CSR= 177546 L.RLA 000010
CF.LB = 100000 DF$LCL= 040000 FS.GET= 006000 K$$LDC= 000000 L.RNO 000020
CF.SOM= 000010 DF$LNK= 004000 FS.INI= 000000 K$$TPS= 000074 L.STA 000000
CF.SYN= 000040 DF$REM= 010000 FS.KIL= 000000 LA.ACK= 100000 L.TC 000042
CF.TRN= 000100 DF$RES= 002000 FS.LTM= 001000 LA.MSK= 170000 L.TIC 000043
CHKNMS 001160RG 002 DF$TMP= 100000 FS.MNT= 004000 LA.NAK= 110000 L.TIPD 000005
CHKNUM 001164R 002 DODC = ****** GX FS.MSN= 014000 LA.NMS= 010000 L.TIPI 000004
CL$ACK= 000040 D$CHN 000002 FS.RNG= 011000 LA.RES= 060000 L.UDQ 000034
CL$MFL= 000010 D$FLG 000000 FS.RTN= 001000 LD$LP = 000000 L.ULA 000040
CL$NRM= 000020 D$LEN 000014 FS.SET= 005000 LF.DFL= 000060 L.USA 000030
CL$SFL= 000004 D$LNG 000005 FS.STM= 000000 LF.DSP= 000040 L.USTA 000024
CL$TYP= 000001 D$NAM 000006 FS.STP= 002000 LF.DST= 000020 L.XQ1 000046
CL.MU1= 000001 D$USE 000004 FS.STR= 001000 LF.FPN= 000010 L.XQ2 000050
CL.MU2= 000002 D$$BUG= 177514 FS.TRM= 003000 LF.HF0= 001000 L.XQ3 000052
CL.RES= 177774 D$$ISK= 000000 FS.XKL= 002000 LF.HMF= 020000 MA.DA = 000000
CS.ABO= 000100 D$$L11= 000001 FS.XOF= 010000 LF.HSF= 010000 MA.IL = 000020
CS.BUF= 000200 D$$YNC= 000000 FS.XON= 007000 LF.INR= 000100 MC.CC = 000040
CS.DCR= 000400 D$$YNM= 000000 F$$LVL= 000001 LF.INT= 000400 MC.CI = 000020
CS.DEV= 000002 EMRCTR= ****** GX GETBIN= ****** GX LF.LCL= 040000 MC.DC = 000100
CS.DIS= 000040 ER$ABO= 000046 GETEX1= ****** GX LF.MMF= 100000 MC.DI = 000060
CS.ENB= 000020 ER$ABT= 000011 GIVUSR= ****** GX LF.MSF= 040000 MC.NO = 000000
CS.EOF= 000001 ER$ACC= 000042 G$$TPP= 000000 LF.NKR= 000200 MC.ST = 000120
CS.ERR= 100000 ER$ACT= 000044 G$$TSS= 000000 LF.NKS= 000400 MD.BM = 000040
CS.HFE= 002000 ER$CDI= 000052 G$$TTK= 000000 LF.NPN= 000001 MD.EM = 000100
CS.LST= 040000 ER$COM= 000047 G$$WRD= 000000 LF.NTS= 002000 MD.ILS= 000040
CS.MTL= 004000 ER$FCF= 000050 IF.INS= 040000 LF.RSU= 100000 MD.IM = 000020
CS.RNG= 000010 ER$FMT= 000005 IF.NKS= 000400 LS.DLS= 000200 MF.ACK= 000004
CS.ROV= 000004 ER$GEN= 000007 IF.NRD= 000200 LS.FCC= 000004 MF.CTL= 000010
CS.RSN= 010000 ER$IFC= 000030 IF.NRI= 100000 LS.FC0= 000001 MF.DAT= 000000
CS.SUC= 000001 ER$ILS= 000043 IF.NTS= 002000 LS.FC1= 000002 MSGHDR= 000007
CS.TMO= 020000 ER$IMG= 000053 IF.SND= 000004 LS.ILS= 000200 M$$CRB= 000124
CTLCMN 000112R 002 ER$MLB= 000006 IF.SNL= 000002 LS.MAK= 000020 M$$CRX= 000000
C$$CKP= 000000 ER$NOD= 000002 I$$RAR= 000000 LS.MNK= 000040 M$$FCS= 000000
C$$ORE= 000400 ER$NSD= 000003 I$$RDN= 000000 LS.RES= 000360 M$$MGE= 000000
C$$RSH= 177564 ER$RES= 000001 I.FLG = 000012 LS.RSV= 000300 M$$OVR= 000000
C.BID 000003 ER$SSR= 000000 I.ILA = 000040 L$$ASG= 000000 NAKNSP= ****** GX
NSPRI MACRO M1110 13-OCT-79 09:56 PAGE 13-2
SYMBOL TABLE
NC.FM0= 000000 NT$IND= 000024 N$$MOV= 000010 PROACK 001274R 002 R$$DER= 000000
NC.FM1= 000001 NT$INL= 000026 N$$OPT= 000020 PRODS = ****** GX R$$K11= 000001
NC.FM2= 000002 NT$INT= 000004 N$$OVR= 000042 PS$NTI= 000003 R$$SND= 000000
NETTIM= 000005 NT$LS = 000014 N$$SYS= 000001 PS$OFF= 000000 R$$11M= 000000
NE.ABO= 177776 NT$MOD= 000012 N$$USR= 000001 PS$STR= 000001 SNDAKD= ****** GX
NE.ACT= 177771 NT$NAK= 000022 N.ACNT 000116 PS$UP = 000005 SNDAKI= ****** GX
NE.CLS= 177767 NT$OFF= 000026 N.ACTL 000114 PS$VER= 000004 ST$CC = 000002
NE.DIS= 177777 NT$ON = 000002 N.DDL1 000012 PS$WT = 000002 ST$CIR= 000003
NE.FMT= 177770 NT$QRY= 000014 N.DDL2 000016 P$CHN 000004 ST$CIS= 000001
NE.NDT= 177766 NT$REJ= 000004 N.DDS1 000014 P$CNT 000005 ST$DAT= 000005
NE.NOD= 177774 NT$ROU= 000022 N.DDS2 000020 P$FRQ 000012 ST$DID= 000015
NE.REJ= 177775 NT$RTI= 000010 N.DFMT 000010 P$FSP 000013 ST$DIP= 000006
NE.RES= 177773 NT$RTN= 000000 N.DGRP 000012 P$LCD 000002 ST$DIR= 000012
NE.TIM= 177772 NT$SNG= 000006 N.DOBJ 000011 P$LEN 000014 ST$DIS= 000014
NI.FLI= 000002 NT$STP= 000004 N.DUSR 000014 P$LST 000000 ST$UDI= 000013
NI.FRI= 000004 NT$XOF= 000020 N.LGTH= 000160 P$NOD 000010 ST$UNR= 000011
NI.FRT= 000001 NT$XON= 000016 N.NODE 000000 P$PFQ 000006 S$EMR 000006
NI.FUB= 000010 NT.ACK= 000001 N.OPDL 000136 P$TIM 000003 S$FMT 000012
NI.INI= 000001 NT.BOM= 000040 N.OPTD 000140 P$$P45= 000000 S$LEN 000040
NI.RLI= 000002 NT.EOM= 000100 N.PASL 000102 P$$WRD= 000000 S$LNK 000022
NI.RRI= 000004 NT.FCN= 037400 N.PASS 000104 QNSPA = ****** GX S$MLK 000024
NI.RVE= 000001 NT.MD1= 000420 N.RQDL 000060 Q$$OPT= 000010 S$NKS 000010
NI.VER= 000002 NT.MFL= 000002 N.RQID 000062 RCDAK 001102RG 002 S$RES 000014
NOTUSR= ****** GX NT.MOD= 000020 N.RSRV= 000030 RCVACK 001056RG 002 S$SEC 000000
NP$RTR= 000003 NT.MOM= 000000 N.SDL1 000036 RCVCTL 000100R 002 S$SNI 000016
NS.BOM= 000040 NT.NAK= 000002 N.SDL2 000042 RCVDAT 000136RG 002 S$UMR 000004
NS.EOM= 000100 NT.NFL= 000000 N.SDS1 000040 RCVICT 000056RG 002 S$UMS 000002
NS.MFL= 000003 NT.SFL= 000001 N.SDS2 000056 RCVLS 000456RG 002 S$UNI 000020
NS.MOM= 000000 NT.SOL= 000140 N.SEG 000006 RCVMSG 000000RG 002 S$$WRG= 000000
NS.NFL= 000001 NT.XOF= 000004 N.SFMT 000034 RCVSEG 000662RG 002 S$$YSZ= 007600
NS.SET= 000002 NT.XON= 000010 N.SGRP 000036 RCVTBL 000044R 002 TOSS 000054R 002
NS.SFL= 000002 N$ACQ 000000 N.SOBJ 000035 RETLS = ****** GX T$$KMG= 000000
NS.SOL= 000140 N$ICF 000006 N.SUSR 000040 RF.CLN= 000000 T$$MIN= 000000
NS.SUC= 000001 N$LNI 000010 PF$EIP= 000100 RF.CTL= 000003 VF$RCV= 100000
NT$ABO= 000022 N$LVC 000022 PF$ENB= 000200 RF.TIM= 177400 VF$XMT= 040000
NT$ACC= 000002 N$NOD 000032 PF$OFF= 000000 RF.TM0= 000400 V$FLG 000000
NT$ADS= 000000 N$PLD 000026 PF$RLI= 000002 RF.WTD= 000020 V$LEN 000022
NT$AKD= 000016 N$STS 000042 PF$RRI= 000004 RF.WTM= 000030 V$RCV 000002
NT$AKI= 000020 N$TCB 000004 PF$RVE= 000001 RF.WTS= 000010 V$XMT 000012
NT$CC = 000012 N$TMP 000012 PF$RVR= 000040 RH.CNT= 000001 V$$CTR= 001000
NT$CON= 000000 N$VER 000036 PF$SLI= 000002 RH.EFM= 000020 WINDOW= 004000
NT$DAT= 000002 N$$DAT= 000030 PF$SRI= 000004 RH.HDR= 000002 X$$DBT= 000000
NT$DIS= 000010 N$$DIS= 000020 PF$SRT= 000001 RH.PRI= 000014 $NSDDB= ****** GX
NT$IDC= 000034 N$$ICF= 000001 PF$STA= 000003 RH.PR1= 000004 $QDATR= ****** GX
NT$IDN= 000030 N$$INT= 000020 PF$SUB= 000010 RH.RFM= 000100 $QIFC = ****** GX
NT$ILN= 000032 N$$LDV= 000001 PF$UP = 000001
. ABS. 000160 000
000000 001
NSPRC 001436 002
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 18221 WORDS ( 72 PAGES)
DYNAMIC MEMORY: 19564 WORDS ( 75 PAGES)
ELAPSED TIME: 00:00:56
NSPRI,[131,34]NSPRI/CR/-SP=[130,10]NETLIB/ML,RSXMCI/PA:1,[131,10]NSPRC
NSPRI CREATED BY MACRO ON 13-OCT-79 AT 09:57 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
ACKNSP = ****** GX 13-660
CHKNMS 001160 RG 8-397 8-420 #10-542
CHKNUM 001164 R #10-544 11-591
CTLCMN 000112 R 5-141 #5-148
C.BUF 000014 4-101 6-211 *6-214
C.BUF2 000024 *5-148
C.CNT 000020 4-102 *6-212
C.CNT2 000030 *5-138
C.FLG 000022 *6-193
C.FLG1 000022 *5-150
C.FLG2 000032 *5-149
C.LIN 000006 *6-232
C.MOD 000011 5-139 *5-140 5-145 *5-146 *6-196 *6-209 6-233
C.NSP 000004 6-193 *6-216 *6-217 *6-218
C.RSV 000002 *5-139 *5-145
C.STS 000012 *4-101 *4-102 *6-197 *6-198
DATACK 001214 R 9-503 #11-577
DESLNK = ****** GX 7-363 9-510
DODC = ****** GX 6-267 9-514
EMRCTR = ****** GX 6-257 6-266
ER$GEN = 000007 9-509
ER$IFC = 000030 7-362
GETBIN = ****** GX 8-389 9-490
GETEX1 = ****** GX 4-103 7-301
GIVUSR = ****** GX 6-245
I.LDA = 000024 13-670
I.LIA = 000026 13-675
I.NIN = 000016 *13-675 *13-676 *13-677
I.NXN = 000014 *13-670 *13-671
LA.ACK = 100000 6-203 8-407 8-428
LA.MSK = 170000 6-202 6-218 8-413 8-433 10-544 10-545 13-672 13-677
LA.NMS = 010000 10-549 11-589 13-661
LA.RES = 060000 9-491
LF.HF0 = 001000 7-311 7-321
LF.HMF = 020000 7-348
LF.INR = 000100 13-689
LF.INT = 000400 8-403 8-424 13-666
LF.NKR = 000200 13-684
LF.NKS = 000400 8-398 8-411
LF.NTS = 002000 6-256
LS.FCC = 000004 7-330
LS.FC0 = 000001 7-309
LS.FC1 = 000002 7-319
LS.RES = 000360 7-303
L.FLG 000012 *6-256 *7-311 *7-321 7-348 8-398 *8-411 *13-684 *13-689
L.LDA 000024 11-581
L.LIA 000026 11-585
L.LNO 000022 8-417 8-419 *8-432 *8-433
L.LSA 000032 *6-201 *6-202 *6-203 *8-428
L.NIN 000016 11-586
L.NXN 000014 11-582 *13-672
L.PDV 000041 6-227 7-338
NSPRI CREATED BY MACRO ON 13-OCT-79 AT 09:57 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
L.RLA 000010 6-184 9-464
L.RNO 000020 6-216 8-394 8-396 *8-412 *8-413
L.TC 000042 *7-334 7-352 *7-356
L.TIPD 000005 13-685
L.TIPI 000004 13-690
L.ULA 000040 6-232 7-342
L.USA 000030 *8-407
MD.ILS = 000040 6-205
MD.IM = 000020 6-194 8-391 11-578 13-668 13-682
NAKNSP = ****** GX 13-687
NOTUSR = ****** GX 7-367
NT$DAT = 000002 6-196
NT$INT = 000004 6-209 6-233
NT.BOM = 000040 6-198
NT.EOM = 000100 6-198
N$STS 000042 6-220
N$$ICF = 000001 3-1 3-2 5-136 8-402 8-423 13-664
N$$LV2 = ****** 7-313 9-469 9-494 12-612
N$$SYS = 000001 3-65 6-226 6-244 7-337
N$$USR = 000001 3-65 6-226 6-231
PROACK 001274 R 9-505 #13-660
PRODS = ****** GX 6-180 9-462
QNSPA = ****** GX 5-153 6-236
RCDAK 001102 RG 6-189 #9-486
RCVACK 001056 RG 4-116 #9-462
RCVCTL 000100 R 4-117 #5-145
RCVDAT 000136 RG 4-115 #6-180
RCVICT 000056 RG #5-138
RCVLS 000456 RG 6-207 #7-300
RCVMSG 000000 RG #4-101
RCVSEG 000662 RG 6-191 #8-388
RCVTBL 000044 R 4-110 #4-115
RETLS = ****** GX 13-692
SNDAKD = ****** GX 8-408
SNDAKI = ****** GX 6-204 8-429
ST$CIS = 000001 6-182
ST$DAT = 000005 6-186 9-466
S$UMR 000004 *6-221 *6-223
TOSS 000054 R 4-104 4-106 4-118 #4-123
WINDOW = 004000 10-542
$NSDDB = ****** GX 6-219
$QDATR = ****** GX 6-239
$QIFC = ****** GX 7-343
NSPRI CREATED BY MACRO ON 13-OCT-79 AT 09:57 PAGE 3
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
CALL 4-103 6-180 6-189 6-191 6-204 6-236 6-239 6-245 6-266 7-301
7-343 7-363 7-367 8-389 8-397 8-408 8-420 8-429 9-462 9-490
9-503 9-505 9-510 11-591 13-660
CALLR #4-110 #5-153 #6-207 #6-257 #6-267 #9-514 #13-687 #13-692
CCBDF$ #3-60 #3-61
MAP #3-58
NSPSY$ #3-60 #3-62
RESMAP #3-58
RESRG #3-59 8-438 11-592
RETURN #4-123 #6-248 #7-368 #8-439 #9-507 #9-512 #10-556 #11-593 #13-694
SAVMAP #3-58
SAVRG #3-59 8-388 11-577
$MVTBF #3-59