Trailing-Edge
-
PDP-10 Archives
-
BB-H348C-RM_1982
-
swskit-v21/listings/mcb/nsplni.list
There are no other files named nsplni.list in the archive.
NSPLNI MACRO M1110 13-OCT-79 10:09
TABLE OF CONTENTS
3- 99 LOGICAL LINK RESOURCE RECOVERY
4- 145 CONTROL ENABLE
5- 186 LINE TIMEOUT
6- 218 LINE START AND STOP
8- 397 LOGICAL AND INTERCEPT LINK CLEAN UP
9- 453 CONTROL COMPLETE
10- 608 FUNCTION INITIATION ROUTINES
12- 718 RCVSTR - STARTUP MESSAGE RECEIVED
13- 757 RCVINI - NODE INIT MESSAGE RECEIVED
15- 879 VFYNME - VALIDATE THE NODE NAME
16- 936 RCVVER - VERFIFICATION MESSAGE RECEIVED
17- 976 SNDNTI - SEND A NODE INITIALIZATION MESSAGE
18- 1054 SNDVER - SEND A VVERIFICATION MESSAGE
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 3
1 .IIF DF N$$ICF, .TITLE NSPLNI
2 .IIF NDF N$$ICF, .TITLE NSPLNA
3 .IDENT /V01.10/
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 ; ACP PHYSICAL LINK CONTROL ROUTINES
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 ; MODIFICATIONS:
38 ; JS0001 12-APR-78 JOHN SAUTER
39 ; REFUSE A NODE INIT IF WE ARE SHORT OF
40 ; SPACE IN THE NODE NAME TABLE. THIS
41 ; IS SO THERE IS ALWAYS ENOUGH SPACE
42 ; LEFT TO RETURN A DC FOR A BAD CI.
43 ; BH0002 2-NOV-78 BUREN W. HOFFMAN
44 ; PUT IN CODE FOR PROCESSING EVENT-LOG CCB'S.
45 ; AP0003 20-NOV-78 ALAN D. PECKHAM
46 ; CONDITIONALIZE JOHN SAUTER'S CODE
47 ; LW0004 08-JAN-79 LEE WEBBER
48 ; FALSE NODE INIT MODIFICATIONS
49 ; 22-JAN-79 LEE WEBBER
50 ; CONDITIONALIZED THE MODS FOR INTERCEPT ONLY
51 ; LW0005 10-JAN-79 LEE WEBBER
52 ; FALSE NODE INIT -- REPLACE DELETED INSTRUCTION
53 ; LW0006 1-MAR-79 LEE WEBBER
54 ; CONDITIONALIZE TRANSFER TO "SNDNTI" FOR INTERCEPT
55 ; LW0007 9-MAR-79 LEE WEBBER
56 ; ENHANCE NODE TABLE ACQUISITION AND RELEASE ON NODE INIT
57 ; AND LINE SHUTDOWN
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 3-1
58 ; AP0008 15-MAY-79 ALAN D. PECKHAM
59 ; IGNORE ASYNCHRONOUS CONTROL COMPLETES DURING STARTUP
60 ; LW0009 20-JUN-79 LEE WEBBER
61 ; FIX THINKO IN #7 (CALL INSTEAD OF CALLC)
62 ; AP0010 3-AUG-79 ALAN D. PECKHAM
63 ; AVOID FALSE NODE INIT ON LOOP-BACK LINE
64 ;
65
66 ; EXTERNAL MACRO DEFINITIONS
67 ;
68 .MCALL SAVRG,RESRG
69 .MCALL CALLC,CALLX,RECMAP
70 .MCALL CCBDF$,NSPSY$,NSPVR$,$QDLC
71 000000 CCBDF$ ;DEFINE THE CCB OFFSETS
72 000000 NSPSY$ ;DEFINE THE NSP SYMBOLS
73 000000 NSPVR$ ;DEFINE THE NSP VERSION DATA
74
75 .IF NDF N$$SYS&N$$USR
76 N$$SYS=1 ;IF NEITHER INTERFACE IS SPECIFIED
77 ;THEN DEFAULT TO SYSTEM INTERFACE
78 .ENDC
79
80 000000 .PSECT NSPLNA
81 ;
82 ; LOCAL SYMBOL DEFINITIONS BECAUSE OF NSP SYMBOL CONFLICTS
83 ;
84 000014 L.LEN = 14 ; LENGTH OF A SYSTEM LINE TABLE ENTRY
85 000016 Z.MAP = 16 ; OFFSET TO THE LLC MAPPING TABLE
86 100000 LF.ACT = 100000 ; ACTIVE FLAG FOR THE SYSTEM LINE TABLE
87
88 ;
89 ; LOCAL DATA FOR LINE SHUTDOWN DURING DISMOUNT
90 ;
91 000000 000000 LNTMP: .WORD 0 ;NUMBER OF PHYSICAL LINKS TO TURN OFF
92 .IF DF N$$ICF ;LW0004
93 000002 CNT20: .BLKW 1 ; LENGTH OF 20XX NODE INIT MESSAGE ;LW0004
94 000004 NTI20: .BLKB 60. ; STORAGE OF 20XX NODE INIT MESSAGE ;LW0004
95 000074 NTI20L = .-NTI20 ; LENGTH OF STORAGE REGION ;LW0004
96 .ENDC ;LW0004
97
98
99 .SBTTL LOGICAL LINK RESOURCE RECOVERY
100 ;+
101 ; **-TMLNK-LOGICAL LINK TIMER
102 ;
103 ; INPUTS:
104 ;
105 ; NONE
106 ;
107 ; OUTPUTS:
108 ;
109 ; ALL THE LOGICAL LINKS ARE SCANNED FOR RESOURCE FAULTS. UPON
110 ; DETECTING A FAULT, A SERVICE ROUTINE IS DISPATCHED BASED ON
111 ; THE CURRENT LOGICAL LINK STATE.
112 ;
113 ;-
114
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 3-2
LOGICAL LINK RESOURCE RECOVERY
115 000100 TMLNK: CALL STLVC ; GET THE LOGICAL LINK VECTOR & NUMNER OF LINKS
116 000104 012400 10$: MOV (R4)+,R0 ; GET A LLT
117 000106 001443 BEQ 100$ ; IF EQ, NO LLT AT THIS ADDRESS - TRY NEXT
118 000110 011001 MOV (R0),R1 ; GET LINK STATE AND TEST RESOURCE ERROR FLAG
119 000112 100041 BPL 100$ ; IF PL, NO RESOURCE ERROR - NEXT LINK
120 000114 122701 000005 CMPB #ST$DAT,R1 ; IS THE LINK IN DATA STATE ?
121 000120 001007 BNE 20$ ; IF NE, CONTINUE
122 000122 042710 100000 BIC #LF.RSU,(R0) ; CLEAR RESOURCE FAILURE FLAG
123 000126 CALLC RECOVR ; ATTEMPT LS FOR DATA & I/LS, AND ACK/NAKS
124 000136 000427 BR 100$ ; CONTINUE WITH NEXT LINK
125
126 000140 122701 000006 20$: CMPB #ST$DIP,R1 ; IS THE LINK DISCONNECTING ?
127 000144 001011 BNE 40$ ; IF NE, NO - CONTINUE
128 000146 122760 000011 000024 CMPB #ST$UNR,L.USTA(R0) ; USER NOTIFICATION REQUIRED ?
129 000154 001002 BNE 30$ ; IF NE, NO - TRY TO REMOVE THE LINK
130 000156 CALL DISUS0 ; ATTEMPT TO NOTIFY THE USER
131 000162 30$: CALL CLNLNK ; ATTEMPT TO REMOVE THE LINK
132 000166 000413 BR 100$ ; CONTINUE WITH NEXT LINK
133
134 000170 122701 000003 40$: CMPB #ST$CIR,R1 ; IS THE LINK AWAITING CONNECTION ?
135 000174 001010 BNE 100$ ; IF NE, NO - GO PROCESS NEXT LINK
136 000176 SAVRG <R3> ; SAVE LOOP COUNT
137 000200 016003 000036 MOV L.DCR(R0),R3 ; GET REJECT REASON CODE
138 000204 016005 000034 MOV L.UDQ(R0),R5 ; GET REJECT CCB ADDRESS
139 000210 CALL USRCRJ ; TRY THE CONNECT REJECT AGAIN
140 000214 RESRG <R3> ; RESTORE LOOP COUNT
141
142 000216 100$: SOB R3,10$ ; LOOP THROUGH ALL THE LINKS
143 000222 RETURN ; RETURN TO CALLER
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 4
CONTROL ENABLE
145 .SBTTL CONTROL ENABLE
146 ;+
147 ; **-.CTENB-CONTROL ENABLE PROCESSING ROUTINE
148 ;
149 ; THIS ROUTINE IS ENTERED WHEN A CONTROL ENABLE REQUEST IS DISPATCHED
150 ; FOR NSP.
151 ;
152 ; INPUTS:
153 ;
154 ; R3 = SUBFUNCTION CODE FOR CONTROL REQUEST
155 ; R4 = ADDRESS OF CCB
156 ;
157 ; THE CCB MUST CONTAIN THE ISSUING PROCESSES PDV AND CHANNEL IN
158 ; 'C.NSP' AND A VALID NSP CHANNEL NUMBER IN 'C.LIN'.
159 ;
160 ; OUTPUT TO PROCESSING ROUTINES:
161 ;
162 ; R2 = ADDRESS OF LINE CLEAN UP WORD
163 ; R3 = SUBFUNCTION CODE
164 ; R4 = ADDRESS OF CCB
165 ; R5 = ADDRESS OF FLAGS & STATE WORD
166 ;
167 ;-
168 000000 .PSECT $NSACP
169
170 000000 .CTENB::CALL STLN0 ; SET UP ENTRY PARAMETERS FOR LINE CONTROL
171 000004 CALLR @CTETB(R3) ; DISPATCH ON SUBFUNCTION CODE
172
173 ;+
174 ; **-CTETB-CONTROL ENABLE DISPATCH TABLE
175 ;
176 ; THIS TABLE IS SYNCHRONIZED WITH THE COMM SYSTEM SUBFUNCTION CODES
177 ; FOR CONTROL ENABLE.
178 ;
179 ;-
180
181 000010 177777 CTETB: .WORD -1 ; RESERVED
182 000012 000114' .WORD LNSTR ; LINE STARTUP
183 000014 000220' .WORD LNSTP ; LINE SHUTDOWN
184 ; HIGHER ORDER FUNCTIONS ARE NOT SUPPORTED
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 5
LINE TIMEOUT
186 .SBTTL LINE TIMEOUT
187 ;+
188 ; **-.TMLIN-LINE TIMER PROCESSING
189 ;
190 ; THIS ROUTINE IS ENTERED FROM THE NSP MAINLINE TIMER SERVICE EACH
191 ; TIMING INTERVAL.
192 ;
193 ;-
194
195 000016 .TMLIN::CALL TMLNK ; DO LOGICAL LINK TIMING
196
197 000022 016705 000000G MOV $NSADB,R5 ; COMPUTE THE ADDRESS OF THE PHYSICAL LINK
198 000026 062705 000026 ADD #N$PLD,R5 ; ...DESCRIPTOR
199 000032 012503 MOV (R5)+,R3 ; GET THE MAXIMUM NUMBER OF PHYSICAL LINKS
200 000034 011505 MOV (R5),R5 ; GET THE ADDRESS OF THE LINK DATA BASE
201 000036 105765 000003 10$: TSTB P$TIM(R5) ; IS THERE A TIMER RUNNING ?
202 000042 001417 BEQ 30$ ; IF EQ, NO - MUST NOT BE ANYTHING TO DO
203 000044 105365 000003 DECB P$TIM(R5) ; ELSE COUNT DOWN THE TIMER
204 000050 001014 BNE 30$ ; IF NE, NOT YET TIME TO DO SOMETHING
205 000052 122715 000002 CMPB #PS$WT,(R5) ; IS STATE WAIT ?
206 000056 001011 BNE 30$ ; IF NE, NO - TRY NEXT LINE
207
208 000060 010502 MOV R5,R2 ; COMPUTE THE ADDRESS OF THE RECOVERY CELL
209 000062 005722 TST (R2)+ ; ...
210 000064 032712 000030 BIT #RF.WTM,(R2) ; SHOULD LINE SHUTDOWN BE INITIATED ?
211 000070 001402 BEQ 20$ ; IF EQ, NO
212 000072 CALL DSFLT ; ELSE, ATTEMPT TO INITIATE SHUTDOWN AGAIN
213 000076 20$: CALL WTEXT ; EXIT WAIT STATE IF ALL CONDITONS ARE MET
214 000102 062705 000014 30$: ADD #P$LEN,R5 ; COMPUTE ADDRESS OF NEXT PHYSICAL LINK BLOCK
215 000106 SOB R3,10$ ; LOOP THROUGH ALL LINES
216 000112 RETURN ; RETURN TO CALLER
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 6
LINE START AND STOP
218 .SBTTL LINE START AND STOP
219 ;+
220 ; **-LNSTR-LINE STARTUP
221 ;
222 ; THIS ROUTINE IS CALLED TO START NSP OPERATION ON AN INDIVIDUAL
223 ; CHANNEL. IF THE STATE IS OTHER THAN OFF, AN ERROR IS RETURNED;
224 ; OTHERWISE, THE LINE IS STARTED AND A SUCCESFUL COMPLETION IS
225 ; POSTED.
226 ;
227 ; INPUTS:
228 ;
229 ; AS DISPATCHED BY CONTROL ENABLE
230 ;
231 ;-
232 ;
233 ; LOCAL SYMBOL DEFINITIONS
234 ;
235 000004 STRT = 4 ;PERFORM LLC STARTUP
236 000002 ENBX = 2 ;CHANGE THE PRESENT ENABLE STATE
237 000001 LENB = 1 ;ENABLE STATE (0 = DISABLE, 1 = ENABLE)
238 000001 STOP = 1 ;STOP WITHOUT DISABLE COMPLETION
239 .ENABL LSB
240
241 000114 012700 000000G LNSTR: MOV #IS.SET,R0 ; ASSUME ALREADY ON IN SOME STATE OR OTHER
242 000120 105715 TSTB (R5) ; IS THE LINE STATE OFF ?
243 000122 001034 BNE 30$ ; IF NE, NO - CANNOT PROCESS THE REQUEST
244 000124 116465 000006 000004 MOVB C.LIN(R4),P$CHN(R5) ; STORE CHANNEL NUMBER IN LINK DATA BASE
245 000132 016400 000012 MOV C.STS(R4),R0 ;GET START FUNCTION MODIFIERS
246 000136 032700 000002 BIT #ENBX,R0 ;DOES THIS CHANGE THE CURRENT ENABLE STATE ?
247 000142 001407 BEQ 10$ ;IF EQ, NO - CHECK FOR START FUNCTION
248 000144 042715 100000 BIC #PF$ENB*400,(R5) ;ASSUME LINE IS NOT ENABLED
249 000150 032700 000001 BIT #LENB,R0 ;DOES THE REQUEST SAY ENABLED ?
250 000154 001402 BEQ 10$ ;IF EQ, NO - ASSUMED STATE IS VALID
251 000156 052715 100000 BIS #PF$ENB*400,(R5) ;OTHERWISE SET THE LINE ENABLED
252 000162 032700 000004 10$: BIT #STRT,R0 ; STARTUP ON THIS REQUEST ?
253 000166 001410 BEQ 20$ ; IF EQ, NO - ALL DONE
254 000170 052715 000400 BIS #PF$UP*400,(R5) ; SET LINE FLAGS TO ON
255 000174 112715 000002 MOVB #PS$WT,(R5) ; SET LINE STATE TO WAIT
256 000200 010446 MOV R4,-(SP) ; SAVE ADDRESS OF CONTROL CCB
257 000202 CALL RSSTR ; ATTEMPT TO START THE LINE
258 000206 012604 MOV (SP)+,R4 ; RECOVER CONTROL CCB ADDRESS
259 000210 012700 000000G 20$: MOV #IS.SUC,R0 ; SET SUCCESSFUL COMPLETION STATUS
260 000214 30$: CALLR CTLDN ; POST COMPLETION AND RETURN TO CALLER
261
262 ;+
263 ; **-LNSTP-LINE SHUT DOWN
264 ;
265 ; THIS ROUTINE IS CALLED TO INITIATE SHUT DOWN OF AN INDIVIDUAL NSP
266 ; CHANNEL. THIS REQUEST IS PROCESSED IN ALL LINE STATES. COMPLETION
267 ; OF THIS REQUEST IS DEFERRED UNTIL ALL ACTIVITY ON THE LINE HAS
268 ; STOPPED.
269 ;
270 ; INPUTS:
271 ;
272 ; AS DISPATCHED BY CONTROL ENABLE
273 ; 'C.STS' CONTAINS THE TYPE OF STOP REQUEST. IF ZERO, THE LINE
274 ; CONNECTION IS TERMINATED; OTHERWISE, JUST THE PROTOCOL IS
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 6-1
LINE START AND STOP
275 ; STOPPED.
276 ;
277 ;-
278
279 000220 016700 000000G LNSTP: MOV $NSADB,R0 ; IS THE PHYSICAL LINK THAT IS BEING STOPPED
280 000224 026005 000010 CMP N$LNI(R0),R5 ; ...THE ONE WITH LOOPBACK ENABLED ?
281 000230 001002 BNE 40$ ; IF NE, NO - DON'T CLEAR THE LOOPBACK FLAG
282 000232 005060 000010 CLR N$LNI(R0) ; OTHERWISE, EFFECT A LOOPBACK DISABLE FUNCTION
283 000236 012700 000000G 40$: MOV #IE.ABO,R0 ; ASSUME THAT FUNCTION CANNOT BE PROCESSED
284 000242 005765 000006 TST P$PFQ(R5) ; ANY PENDING FUNCTION ?
285 000246 001362 BNE 30$ ; IF NE, YES - RETURN ERROR STATUS
286 000250 010465 000006 MOV R4,P$PFQ(R5) ; QUEUE CONTROL REQUEST
287 000254 042715 000400 BIC #PF$UP*400,(R5) ; CLEAR LINE UP FLAG
288 000260 032715 040000 BIT #PF$EIP*400,(R5) ; IS THERE AN CONTROL ENABLE IN PROGRESS ?
289 000264 001004 BNE 50$ ; IF NE, YES - MUST ISSUE A DISABLE
290 000266 032764 000001 000012 BIT #STOP,C.STS(R4) ; STOP & DISABLE OR JUST STOP ?
291 000274 001003 BNE LWAIT ; IF NE, JUST STOP
292 000276 50$: ; OTHERWISE STOP AND DISABLE
293 .DSABL LSB
294
295 ;+
296 ; **-LHANG-INITIATE LINE SHUTDOWN WITH STOP AND DISABLE
297 ; **-LWAIT-INITIATE LINE SHUTDOWN WITH STOP
298 ;
299 ; INPUTS:
300 ;
301 ; R2 = ADDRESS OF LINK RECOVERY CELL
302 ; R5 = ADDRESS OF PHYSICAL LINK BLOCK
303 ;
304 ; OUTPUTS:
305 ;
306 ; THE SPECIFIED FUNCTIONS ARE ISSUED TO THE DLC AND SHUTDOWN
307 ; IS INITIATED FOR ALL LOGICAL LINKS TO DESTINATION NODES
308 ; ACCESSED OVER THE PHYSICAL LINK.
309 ;
310 ;-
311 .ENABL LSB
312
313 000276 012700 000430 LHANG: MOV #RF.TM0!RF.WTS!RF.WTD,R0 ; ASSUME RESOURCE IS NOT AVAILABLE
314 000302 000402 BR 10$ ;
315
316 000304 012700 000410 LWAIT: MOV #RF.TM0!RF.WTS,R0 ; ASSUME RESOURCE IS NOT AVAILABLE
317 000310 032715 100000 10$: BIT #PF$ENB*400,(R5) ; HAS THE LINK BEEN ENABLED ?
318 000314 001002 BNE 20$ ; IF NE, YES - LEAVE FUNCTIONS AS REQUESTED
319 000316 042700 000020 BIC #RF.WTD,R0 ; ELSE, NO NEED TO ISSUE THE DISABLE
320 000322 105715 20$: TSTB (R5) ; IS THE STATE OFF ?
321 000324 001403 BEQ 25$ ; IF EQ, YES - NO NEED TO ISSUE THE STOP
322 000326 122715 000002 CMPB #PS$WT,(R5) ; IS THE STATE WAIT ?
323 000332 001002 BNE 30$ ; IF NE, NO - LEAVE FUNCTIONS AS REQUESTED
324 000334 042700 000010 25$: BIC #RF.WTS,R0 ; ELSE, NO NEED TO ISSUE THE STOP
325 000340 112715 000002 30$: MOVB #PS$WT,(R5) ; SET THE NEW STATE TO WAIT
326 000344 050012 BIS R0,(R2) ; SET ASSUMED FLAGS AND FUNCTION
327 000346 CALL DSFLT ; DISPATCH THE REQUEST
328 000352 CALL CLLNK ; ATTEMPT TO CLEAN UP THE LOGICAL LINKS
329 000356 CALLR WTEXT ; TRY TO COMPLETE THE SHUTDOWN OPERATION
330
331 .DSABL LSB
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 7
LINE START AND STOP
333 ;+
334 ; **-$LNSTP-STOP ALL ACTIVE PHYSICAL LINKS FOR DISMOUNT
335 ;
336 ; THIS ROUTINE IS ENTERED TO FORCE ALL ACTIVE PHYSICAL LINKS TO THE
337 ; OFF STATE WHEN ALL LOGICAL LINKS HAVE FINISHED TO ALLOW THE ACP TO
338 ; EXIT. WHEN ALL PHYSICAL LINKS HAVE SHUT DOWN THE ROUTINE '$LNDON'
339 ; TRANSFERRED TO THE ROUTINE '$LNDON'.
340 ;
341 ;-
342 .ENABL LSB
343
344 000362 016705 000000G $LNSTP::MOV $NSADB,R5 ; GET THE ADDRESS OF THE PHYSICAL LINK
345 000366 016503 000026 MOV N$PLD(R5),R3 ; GET THE NUMBER OF LINKS
346 000372 016505 000030 MOV N$PLD+2(R5),R5 ; GET THE POINTER TO THE FIRST LINK
347 000376 005067 000000' CLR LNTMP ; INITIALIZE NUMBER OF LINKS TO SHUT DOWN
348 000402 105715 10$: TSTB (R5) ; IS THE PHYSICAL LINK ALREADY OFF ?
349 000404 001410 BEQ 20$ ; IF EQ, YES - DON'T NEED TO DO ANYTHING
350 000406 005267 000000' INC LNTMP ; COUNT THE NUMBER OF LINKS TO BE STOPPED
351 000412 042715 001400 BIC #PF$STA*400,(R5) ; MAKE SURE THAT THE LINK DOESN'T RESTART
352 000416 010502 MOV R5,R2 ; COMPUTE THE ADDRESS OF THE RECOVERY CELL
353 000420 005722 TST (R2)+ ; ...
354 000422 CALL LHANG ; INITIATE LINE SHUT DOWN SEQUENCE
355 000426 062705 000014 20$: ADD #P$LEN,R5 ; POINT TO NEXT PHYSICAL LINK BLOCK
356 000432 SOB R3,10$ ; SCAN THE ENTIRE DATA BASE
357 000436 005767 000000' TST LNTMP ; WERE THERE ANY PHYSICAL LINKS TO SHUT DOWN ?
358 000442 001433 BEQ 40$ ; IF EQ, NO - IT'S OK TO EXIT NOW
359 000444 RETURN ; OTHERWISE WAIT FOR SHUTDOWN TO FINISH
360
361 ;+
362 ; **-CKDON-CHECK IF SHUT DOWN IS IN PROGRESS
363 ;
364 ; INPUTS:
365 ;
366 ; R5 = ADDRESS OF PHYSICAL LINK BLOCK
367 ;
368 ;-
369
370 000446 005767 000000' CKDON: TST LNTMP ; ARE THERE ANY PHYSICAL LINKS IN SHUTDOWN
371 000452 001426 BEQ 30$ ; IF EQ, NO - JUST RETURN
372 000454 005000 CLR R0 ; GET CHANNEL NUMBER
373 000456 156500 000004 BISB P$CHN(R5),R0 ; ...
374 000462 006300 ASL R0 ; ...AND MAKE A WORD INDEX
375 000464 016701 000000C MOV $PDVTB+PD$NSP,R1 ; GET NSP'S PDV ADDRESS
376 000470 060001 ADD R0,R1 ; COMPUTE OFFSET INTO CHANNEL MAPPING TABLE
377 000472 016101 000016 MOV Z.MAP(R1),R1 ; GET SLN & STATION NUMBER
378 000476 042701 177400 BIC #^C<377>,R1 ; CLEAN OFF THE STATION NUMBER
379 000502 012700 000014 MOV #L.LEN,R0 ; SET THE LENGTH OF AN SLT ENTRY
380
381 .IF DF R$$EIS
382 MUL R0,R1 ; COMPUTE THE OFFSET INTO THE SLT
383 .IFF
384 000506 CALL $MUL ; COMPUTE THE OFFSET INTO THE SLT
385 .ENDC
386
387 000512 066701 000000G ADD $SLTTA,R1 ; FINALLLY GOT THE ADDRESS OF THE SLT ENTRY
388 000516 042711 100000 BIC #LF.ACT,(R1) ; MARK THE SLN INACTIVE
389 000522 005367 000000' DEC LNTMP ; REDUCE THE NUMBER OF PHYSICAL LINKS TO PROCESS
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 7-1
LINE START AND STOP
390 000526 001401 BEQ 40$ ; IF EQ, EXIT NOW
391 000530 30$: RETURN ; OTHERWISE WAIT FOR ALL LINKS TO FINISH
392
393 000532 40$: CALLR $LNDON ; RETURN CONTROL TO FINISH ACP DISMOUNT
394
395 .DSABL LSB
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 8
LOGICAL AND INTERCEPT LINK CLEAN UP
397 .SBTTL LOGICAL AND INTERCEPT LINK CLEAN UP
398 ;+
399 ; **-CLLNK-CLEAN UP LOGICAL LINKS
400 ;
401 ; THIS ROUTINE IS CALLED TO INITIATE SHUTDOWN FOR ALL LOGICAL
402 ; LINKS TO DESTINATON NODES ACCESSED OVER THE PHYSICAL LINK.
403 ;
404 ; INPUTS:
405 ;
406 ; R5 = ADDRESS OF THE PHYSICAL LINK BLOCK
407 ;
408 ; OUTPUTS:
409 ;
410 ; AS DESCRIBED ABOVE
411 ;
412 ; REGISTERS MODIFIED:
413 ;
414 ; R0, R1, R3 AND R4
415 ;
416 ;-
417
418 000536 CLLNK: SAVRG <R3> ; SAVE R3
419 000540 016703 000000G MOV $NSADB,R3 ; ADDRESS NSP DATA BASE ;LW0007
420 000544 026305 000006 CMP N$ICF(R3),R5 ; IF THIS WAS THE ;LW0007
421 000550 001002 BNE 2$ ; INTERCEPT LINE, ;LW0007
422 000552 005063 000006 CLR N$ICF(R3) ; IT ISN'T ANY LONGER ;LW0007
423 000556 016503 000010 2$: MOV P$NOD(R5),R3 ; FLAG THE ADJACENT NODE ;LW0007
424 000562 052713 001000 BIS #DF$DWN,(R3) ; ON THE LINE AS DOWN ;LW0007
425 000566 CALL STLVC ; GET ADDRESS OF LOGICAL LINK VECTOR & NUMBER OF LINKS
426 000572 012400 10$: MOV (R4)+,R0 ; GET A LOGICAL LINK
427 000574 001431 BEQ 20$ ; IF EQ, NO LOGICAL LINK
428 000576 032710 040000 BIT #LF.LCL,(R0) ; IS THIS AN INTERNAL LOGICAL LINK ?
429 000602 001026 BNE 20$ ; IF NE, YES - DON'T ABORT THE LOGICAL LINK
430 000604 016001 000006 MOV L.REM(R0),R1 ; GET THE POINTER TO THE DESTINATION NODE
431
432 .IF DF N$$ICF
433
434 000610 032710 000400 BIT #LF.INT,(R0) ; IS THIS AN INTERCEPT LINK ?
435 000614 001412 BEQ 15$ ; IF EQ, NO - USE THE DESTINATION NODE POINTER
436 000616 016001 000042 MOV I.IREM(R0),R1 ; GET THE POINTER TO THE INTERCEPTED NODE
437 000622 026105 000002 CMP D$CHN(R1),R5 ; DOES IT USE THIS PHYSICAL LINK ?
438 000626 001014 BNE 20$ ; IF NE, NO - CONTINUE
439 000630 052711 001000 BIS #DF$DWN,(R1) ; FLAG THE NODE AS DOWN ;LW0007
440 000634 CALL HNGILT ; INITIATE DESTRUCTION OF THE INTERCEPT LINK ;LW0007
441 000640 000407 BR 20$ ; ;**-1
442
443 .ENDC
444
445 000642 026105 000002 15$: CMP D$CHN(R1),R5 ; DOES IS USE THIS PHYSICAL LINK ?
446 000646 001004 BNE 20$ ; IF NE, NO - CONTINUE
447 000650 052711 001000 BIS #DF$DWN,(R1) ; FLAG THE NODE AS DOWN ;LW0007
448 000654 CALL HNGUSR ; INITIATE DESTRUCTION OF THE LOGICAL LINK ;LW0007
449 000660 20$: SOB R3,10$ ; LOOP THROUGH ENTIRE LOGICAL LINK TABLE ;**-1
450 000664 RESRG <R3> ; RESTORE R3
451 000666 RETURN ; RETURN TO CALLER
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 9
CONTROL COMPLETE
453 .SBTTL CONTROL COMPLETE
454 ;+
455 ; **-.CTCMP-CONTROL REQUEST COMPLETION PROCESSING
456 ;
457 ; THIS ROUTINE IS ENTERED WHEN A CONTROL COMPLETE OPERATION IS
458 ; DEQUEUED FOR NSP.
459 ;
460 ; INPUTS:
461 ;
462 ; R3 = SUBFUNCTION CODE
463 ; R4 = ADDRESS OF CCB
464 ;
465 ; OUTPUT TO PROCESSING ROUTINES:
466 ;
467 ; R2 = ADDRESS OF LINE CLEAN UP WORD
468 ; R3 = SUBFUNCTION CODE
469 ; R4 = ADDRESS OF CCB (ASYNCHRONOUS REPORT ONLY)
470 ; R5 = ADDRESS OF LINE FLAGS & STATE WORD
471 ;
472 ;-
473 .ENABL LSB
474
475 000670 105764 000006 .CTCMP::TSTB C.LIN(R4) ; EVENT LOGGING ? NOTE: WE ARE USING BH0002
476 ; LINE ZERO AS A SPECIAL SENTINEL. BH0002
477 000674 001002 BNE 5$ ; NO BH0002
478 000676 CALLR $QUEEV ; YES, SO QUEUE THIS CCB TO NICE BH0002
479 000702 5$: CALL STLN0 ; SETUP LINE PARAMETERS BH0002
480 000706 016400 000012 MOV C.STS(R4),R0 ; GET COMPLETION STATUS FOR ALL ;**-1
481 000712 005703 TST R3 ; ASYNCHRONOUS ERROR REPORT ?
482 000714 001403 BEQ 10$ ; IF EQ, YES - ANY STATUS IS OK
483 000716 005312 DEC (R2) ; REDUCE NUMBER OF OUTSTANDING CONTROL REQUESTS
484 000720 CALL $CCBRT ; RETURN CONTROL CCB
485 000724 10$: CALLR @CTCTB(R3) ; DISPATCH ON SUBFUNCTION CODE
486
487 ;+
488 ; **-CTCTB-CONTROL COMPLETE SUBFUNCTION DISPATCH TABLE
489 ;
490 ; THIS TABLE IS SYNCHRONIZED WITH COMM SYSTEM SUBFUNCTION CODES
491 ; FOR CONTROL COMPLETE.
492 ;
493 ;-
494
495 000730 000760' CTCTB: .WORD LNASY ; ASYNCHRONOUS ERROR REPORT FROM DLC
496 000732 001034' .WORD CTSTR ; LINE STARTUP COMPLETE
497 000734 001076' .WORD WTEXT ; LINE SHUTDOWN COMPLETE
498 000736 177777 177777 177777 .WORD -1,-1,-1,-1,-1,-1,-1 ; RESERVED
000744 177777 177777 177777
000752 177777
499 000754 001064' .WORD CTENB ; LINE ENABLE COMPLETE
500 000756 001076' .WORD WTEXT ; LINE DISABLE COMPLETE
501
502 ;+
503 ; **-LNASY-ASYNCHRONOUS ERROR REPORT
504 ;
505 ;-
506
507 000760 122700 100372 LNASY: CMPB #CE.MOP,R0 ; IS ERROR A REQUEST FOR MAINTAINENCE MODE ?
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 9-1
CONTROL COMPLETE
508 000764 001006 BNE 20$ ; IF NE, NO - INITIATE A LINE SHUTDOWN
509
510 ;
511 ; NOTIFY NCU PROCESS OF THE MAINTANENCE MODE ERROR
512 ;
513 .IF DF N$$USR
514
515 000766 016464 000006 000004 MOV C.LIN(R4),C.NSP(R4) ; SET SOURCE PDV & CHANNEL
516 000774 CALL $QEVNT ; FORMAT THE EVENT AND GIVE IT TO NCU
517 001000 000413 BR 30$ ; INITIATE LINE SHUTDOWN
518
519 .ENDC
520
521 ;
522 ; INITIATE LINK SHUTDOWN ON ERROR DETECTION
523 ;
524 001002 20$: CALL $CCBRT ; RETURN CCB
525
526 001006 122715 000001 CMPB #PS$STR,(R5) ; ARE WE IN STARTUP ? ;AP0008
527 001012 001001 BNE 25$ ; IF SO, ;AP0008
528 001014 RETURN ; IGNORE THE REPORT. ;AP0008
529 001016 25$: ;AP0008
530 001016 122700 100366 CMPB #CE.DIS,R0 ; IS THIS A DISCONNECT ?
531 001022 001002 BNE 30$ ; IF NE, NO - JUST STOP THE PHYSICAL LINK
532 001024 CALLR LHANG ; OTHERWISE FORCE STOP AND DISABLE
533 001030 30$: CALLR LWAIT ; INITIATE LINE SHUT DOWN
534
535 .DSABL LSB
536
537 ;+
538 ; **-CTSTR-LINE STARTUP COMPLETE
539 ;
540 ;-
541
542 .ENABL LSB ;LW0004
543 001034 122715 000001 CTSTR: CMPB #PS$STR,(R5) ; IS STATE IN STARTUP? ;LW0004
544 001040 001016 BNE WTEXT ; IF NE, NO - DO CLEAN UP ;**-1
545 001042 112715 000003 MOVB #PS$NTI,(R5) ; SET STATE TO NOT INITIALIZED
546 .IF DF N$$ICF ;LW0004
547 001046 CALL SNDNTI ; SEND THE NODE INIT MESSAGE ;LW0004
548 .IFF ;LW0004
549 CALLR SNDNTI ; GO SEND THE NODE INIT MESSAGE ;LW0004
550 .IFT ;LW0004
551 001052 103061 BCC 30$ ; IF CC, NO ERROR - EXIT ;LW0004
552 001054 010502 MOV R5,R2 ; COMPUTE POINTER TO SECOND WORD OF ;LW0004
553 001056 005722 TST (R2)+ ; ...PLD ENTRY ;LW0004
554 001060 CALLR LHANG ; FORCE STOP AND DISABLE ;LW0004
555 .ENDC ;LW0004
556 ;**-1
557 ;+
558 ; **-CTENB-LINE ENABLE COMPLETE
559 ;
560 ;-
561
562 001064 042715 040000 CTENB: BIC #PF$EIP*400,(R5) ; CLEAR ENABLE IN PROGRESS FLAG
563 001070 032715 001400 BIT #PF$STA*400,(R5) ; IS THE LINK ATTEMPTING TO START ?
564 001074 001100 BNE RSST1 ; IF NE, YES - CONTINUE WITH START FUNCTION
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 9-2
CONTROL COMPLETE
565 ; OTHERWISE, CONTINUE IN 'WTEXT'
566
567 ;+
568 ; **-WTEXT-WAIT EXIT
569 ;
570 ; THIS IS THE COMMON POINT WHEN PHYSICAL LINK SHUTDOWN COMPLETION
571 ; IS DETECTED. IF THE PHYSICAL LINK SHUTTING DOWN WAS INTERCEPTING
572 ; FOR THIS NODE, CLEAR THE INTERCEPT POINTER.
573 ; IF THE PHYSICAL LINK IS BEING STOPPED, (PF$STA EQUAL TO ZERO), ANY
574 ; PENDING CONTROL REQUEST IS COMPLETED AND THE STATE OF ENABLE IS POSTED
575 ; IN C.STS.
576 ;
577 ;
578 ;-
579
580 001076 005712 WTEXT: TST (R2) ; IS IT OK TO EXIT WAIT STATE ?
581 001100 001046 BNE 30$ ; IF NE, NO - CONTINUE WAITING
582 001102 SAVRG <R3> ; SAVE R3
583 001104 016503 000010 MOV P$NOD(R5),R3 ; GET THE POINTER TO THE NODE NAME
584 001110 001412 BEQ 5$ ; IF EQ, NO NODE EVER HERE !
585 001112 005065 000010 CLR P$NOD(R5) ; INDICATE NO ADJACENT NODE ANYMORE
586 001116 005063 000002 CLR D$CHN(R3) ; CANNOT REACH THE NODE USING THIS LINK
587 001122 052713 004000 BIS #DF$LNK,(R3) ; MARK THE NODE NAME TO BE REMOVED
588 001126 CALLC RMNOD ; ATTEMPT TO REMOVE THE NODE
589 001136 5$: RESRG <R3> ; RESTORE R3
590 001140 016701 000000G MOV $NSADB,R1 ; IF THE PHYSICAL LINK THAT HAS JUST
591 001144 026105 000006 CMP N$ICF(R1),R5 ; ...SHUT DOWN WAS INTERCEPTING FOR THIS
592 001150 001002 BNE 10$ ; ...NODE, CLEAR OUT THE INTERCEPT FLAG
593 001152 005061 000006 CLR N$ICF(R1) ; ...
594 001156 032715 001400 10$: BIT #PF$STA*400,(R5) ; DO LINE FLAGS INDICATE UP ?
595 001162 001016 BNE RSSTR ; IF NE, YES - INITIATE LINE RESTART
596 001164 016504 000006 MOV P$PFQ(R5),R4 ; GET PENDING STOP REQUEST
597 001170 001407 BEQ 20$ ; IF EQ, NO CONTROL REQUEST
598 001172 005065 000006 CLR P$PFQ(R5) ; REMOVE IT FROM THE PENDING FUCTION QUEUE
599 001176 011500 MOV (R5),R0 ; GET THE STATE OF THE ENABLE BIT
600 001200 006100 ROL R0 ; SHIFT IT TO THE CARRY
601 001202 006100 ROL R0 ; ...AND THEN TO BIT 0
602 001204 CALL CTLDN ; POST COMPLETION ON THE REQUEST
603 001210 105015 20$: CLRB (R5) ; SET NEW STATE TO OFF
604 001212 CALL CKDON ; CHECK IF A LINK SHUTDOWN IS IN PROGRESS
605 001216 30$: RETURN ; RETURN TO CALLER
606 .DSABL LSB ;LW0004
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 10
FUNCTION INITIATION ROUTINES
608 .SBTTL FUNCTION INITIATION ROUTINES
609 ;+
610 ; **-RSSTR-LINE STARTUP
611 ;
612 ; INPUTS:
613 ;
614 ;-
615 .ENABL LSB
616
617 001220 032715 100000 RSSTR: BIT #PF$ENB*400,(R5) ; IS THE LINE ENABLED ?
618 001224 001024 BNE 10$ ; IF NE, YES - START IT
619 .IF DF N$$ICF ;LW0004
620 001226 122765 000001 000004 CMPB #1,P$CHN(R5) ; STARTING CHANNEL TO 20XX? ;LW0004
621 001234 001410 BEQ 5$ ; IF CC, YES - CONTINUE ;LW0004
622 001236 016700 000000G MOV $NSADB,R0 ; ELSE, SEE IF 20XX ;LW0004
623 001242 016000 000030 MOV N$PLD+2(R0),R0 ; ...HAS ALREADY COMPLETED ;LW0004
624 001246 122760 000005 000014 CMPB #PS$UP,P$LEN(R0) ;...NODE INIT? ;LW0004
625 001254 001020 BNE 30$ ; IF NE, NO - EXIT ;LW0004
626 001256 5$: ;LW0004
627 .ENDC ;LW0004
628 001256 012700 012006 MOV #FS.ENB!FC.CTL,R0 ; SET ENABLE FUNCTION CODE
629 001262 CALL DSFNC ; ISSUE THE REQUEST
630 001266 103412 BCS 20$ ; IF CS, RESOURCE ALLOCATION ERROR
631 001270 052715 140000 BIS #<PF$EIP!PF$ENB>*400,(R5) ; MARK LINK ENABLED AND ENABLE IN PROGRESS
632 001274 000407 BR 20$ ; WAIT FOR THE ENABLE TO COMPLETE
633
634 001276 RSST1: ; REFERENCE LABEL
635 001276 012700 001006 10$: MOV #FS.STR!FC.CTL,R0 ; SET START FUNCTION CODE
636 001302 CALL DSFNC ; ISSUE THE REQUEST
637 001306 103402 BCS 20$ ; IF CS, RESOURCE ALLOCATION FAILURE
638 001310 112715 000001 MOVB #PS$STR,(R5) ; SET STATE TO STARTING
639 001314 20$: RETURN ; RETURN TO CALLER
640 .IF DF N$$ICF ;LW0004
641 ;LW0004
642 001316 052712 000400 30$: BIS #RF.TM0,(R2) ; SET FLAG TO RETRY LATER ;LW0004
643 001322 RETURN ;LW0004
644 .ENDC ;LW0004
645
646 .DSABL LSB
647
648 ;+
649 ; **-DSFLT-DISPATCH STOP OR DISABLE
650 ;
651 ; INPUTS:
652 ;
653 ;
654 ;
655 ;-
656
657 001324 032712 000010 DSFLT: BIT #RF.WTS,(R2) ; STOP REQUIRED ?
658 001330 001407 BEQ 10$ ; IF EQ, NO - CHECK FOR DISABLE
659 001332 012700 002006 MOV #FS.STP!FC.CTL,R0 ; SET STOP FUNCTION CODE
660 001336 CALL DSFNC ; ISSUE STOP
661 001342 103416 BCS 20$ ; IF CS, ALLOCATION FAILURE
662 001344 042712 000010 BIC #RF.WTS,(R2) ; CLEAR STOP REQUIRED
663
664 001350 032712 000020 10$: BIT #RF.WTD,(R2) ; DISABLE REQUIRED ?
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 10-1
FUNCTION INITIATION ROUTINES
665 001354 001411 BEQ 20$ ; IF EQ, NO - EXIT
666 001356 012700 013006 MOV #FS.DIS!FC.CTL,R0 ; SET FUNCTION CODE FOR DISABLE
667 001362 CALL DSFNC ; ISSUE DISABLE
668 001366 103404 BCS 20$ ; IF CS, ALLOCATION FAILURE
669 001370 042712 000020 BIC #RF.WTD,(R2) ; CLEAR DISABLE REQUIRED
670 001374 042715 100000 BIC #PF$ENB*400,(R5) ; MARK THE LINE DISABLED
671 001400 20$: RETURN ; RETURN TO CALLER
672
673 ;+
674 ; **-DSFNC-DISPATCH A CONTROL REQUEST
675 ;
676 ; INPUTS:
677 ;
678 ; R0 = FUNCTION CODE TO ISSUE
679 ; R2 = ADDRESS OF LINE CLEAN UP WORD
680 ; R5 = ADDRESS OF LINE FLAGS & STATE WORD
681 ;
682 ; OUTPUTS:
683 ;
684 ; C-BIT CLEAR
685 ; THE CONTROL FUNCTION IS QUEUED TO THE DLC
686 ; C-BIT SET
687 ; THE FUNCTION IS NOT DISPATCHED AND THE RECOVERY TIMEOUT
688 ; INTERVAL IS STARTED.
689 ;-
690
691 001402 DSFNC: CALL CCBGT ; ALLOCATE A CCB
692 001406 103413 BCS 20$ ; IF CS, ERROR - WAIT TO RECOVER ON TIMER
693 001410 005212 INC (R2) ; UPDATE NUMBER OF CONTROL REQUESTS OUTSTANDING
694 001412 005064 000006 CLR C.LIN(R4) ; SET UP THE CHANNEL NUMBER IN THE CCB
695 001416 116564 000004 000006 MOVB P$CHN(R5),C.LIN(R4) ; ...
696 001424 010064 000010 MOV R0,C.FNC(R4) ; SET FUNCTION CODE
697 001430 $QDLC ; ISSUE REQUEST
698 001434 000402 BR 30$ ; EXIT
699
700 001436 052712 000400 20$: BIS #RF.TM0,(R2) ; MARK ALLOCATION FAILURE
701 001442 30$: RETURN ; RETURN TO CALLER
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 11
FUNCTION INITIATION ROUTINES
703 ;+
704 ; **-CTLDN-POST COMPLETION ON A CONTROL REQUEST
705 ;
706 ; INPUTS:
707 ;
708 ; R0 = COMPLETION STATUS (CTLDN ONLY)
709 ; R4 = ADDRESS OF CONTROL CCB
710 ;
711 ;-
712
713 001444 010064 000012 CTLDN: MOV R0,C.STS(R4) ; STORE COMPLETION STATUS IN CCB
714 001450 016464 000004 000006 MOV C.NSP(R4),C.LIN(R4) ; SET DESTINATION PDV & CHANNEL
715 001456 112764 000020 000010 MOVB #FC.CCP,C.FNC(R4) ; STORE FUNCTION CODE IN CCB
716 001464 CALLR $LLCRS ; POST COMPLETION
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 12
RCVSTR - STARTUP MESSAGE RECEIVED
718 .SBTTL RCVSTR - STARTUP MESSAGE RECEIVED
719 ;++
720 ;RCVSTR
721
722 ;INPUTS:
723 ; R5=CCB ADDR
724 ; R4=MSG PTR [START TYPE]
725 ; R3=NODE INDEX
726
727 ;--
728 000224 .PSECT NSPLNA
729
730 000224 RCVSTR::SAVRG <R5> ; SAVE ADDRESS OF MESSAGE CCB
731 000226 CALL STPLD ; COMPUTE THE ADDRESS OF THE LINK BLOCK
732 000232 011602 MOV (SP),R2 ; GET ADDRESS OF MESSAGE CCB ;LW0004
733 000234 112401 MOVB (R4)+,R1 ; GET THE START MESSAGE TYPE
734 000236 022701 000001 CMP #NI.INI,R1 ; IS THIS AN INIT MSG ?
735 000242 001003 BNE 10$ ; NO
736 000244 CALL RCVINI ; PROCESS A INITIALIZATION MESSAGE
737 000250 000405 BR 20$ ; CHECK FOR ERRORS
738
739 000252 022701 000002 10$: CMP #NI.VER,R1 ; IS THIS A VERIFICATION MESSAGE ?
740 000256 001003 BNE 30$ ; IF NE, NO - HANG UP THE PHYSICAL LINK
741 000260 CALL RCVVER ; PROCESS VERIFICATION MSG
742 000264 103020 20$: BCC 40$ ; IF CC, NO ERROR - DON'T HANG UP
743 000266 30$: RECMAP ; RECOVER ACP MAPPING
744
745 000274 016702 000000G MOV $NSADB,R2 ; COUNT THE NUMBER OF UNSUCESSFUL NODE INITS
746 000300 016202 000044 MOV N$STS+2(R2),R2 ; ...
747 000304 005762 000020 TST S$UNI(R2) ; COUNTER OVERFLOW ?
748 000310 100402 BMI 35$ ; IF MI, YES - LEAVE THE COUNTER ALONE
749 000312 005262 000020 INC S$UNI(R2) ; OTHERWISE INCREMENT IT
750 000316 35$: ; REFERENCE LABEL
751 000316 010502 MOV R5,R2 ; COMPUTE ADDRESS OF RECOVERY FLAGS
752 000320 005722 TST (R2)+ ; ...
753 000322 CALL LHANG ; HANG UP LINE DUE TO INVALID NODE INITIALIZATION MSG
754 000326 40$: RESRG <R5> ; RECOVER ADDRESS OF MESSAGE CCB
755 000330 RETURN ; RETURN TO CALLER
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 13
RCVINI - NODE INIT MESSAGE RECEIVED
757 .SBTTL RCVINI - NODE INIT MESSAGE RECEIVED
758 ;+
759 ; **-RCVINI-PROCESS A NODE INIT MESSAGE
760 ;
761 ; INPUTS:
762 ;
763 ; R4 = MESSAGE POINTER TO 'NODEADDR'
764 ; R5 = ADDRESS OF PHYSICAL LINK BLOCK
765 ;
766 ; OUTPUTS:
767 ;
768 ; C-BIT CLEAR:
769 ; VALID NODE INITIALIZATION MESSAGE
770 ;
771 ; C-BIT SET:
772 ; INVLAID NODE INITIALIZATION MESSAGE
773 ;
774 ; REGISTERS MODIFIED:
775 ;
776 ; R0, R1, R2, R3, AND R4
777 ;
778 ;-
779 .ENABL LSB
780
781 000332 RCVINI: SAVRG <R2> ;LW0004
782 000334 122715 000003 CMPB #PS$NTI,(R5) ; ARE WE WAITING FOR A NODE INIT? ;LW0004
783 000340 001124 BNE 40$ ; IF NE, NO - HANG UP THE LINE ;**-1
784 000342 CALL SKPEXB ; SKIP OTHER NODES NUMBER
785 000346 CALL VFYNME ; VERIFY THE NODENAME AND PUT IT INTO THE TABLE
786 000352 103517 BCS 40$ ; NAME ISNT VALID..HANG UP LINE
787 000354 CALL GETEXB ; GET OTHER NODES FUNCTIONS
788 000360 103514 BCS 40$ ; IF CS, FIELD FORMAT ERROR
789 000362 110165 000013 MOVB R1,P$FSP(R5) ; STORE FUNCTIONS SUPPORTED BY OTHER NODE
790 000366 032701 000006 BIT #PF$SLI!PF$SRI,R1 ; DOES THE NODE SUPPORT INTERCEPT ?
791 000372 001407 BEQ 10$ ; IF EQ, NO - DON'T SET INTERCEPT SWITCH
792 000374 016702 000000G MOV $NSADB,R2 ; GET ADDRESS OF THE DATA DESCRIPTOR BLOCK
793 000400 005762 000006 TST N$ICF(R2) ; DOES A NODE ALREADY INTERCEPT ?
794 000404 001002 BNE 10$ ; IF NE, YES - DON'T BELIEVE THIS NODE
795 000406 010562 000006 MOV R5,N$ICF(R2) ; SET INTERCEPT SWITCH (POINTER TO LINK BLOCK)
796 000412 10$: CALL GETEXB ; GET OTHER NODES REQUESTS
797 000416 103475 BCS 40$ ; FIELD TOO LONG
798 000420 110165 000012 MOVB R1,P$FRQ(R5) ; SAVE OTHER NODES REQUESTS
799 .IF DF N$$ICF ;LW0004
800 000424 016702 000000G MOV $RDBSZ,R2 ; GET LOCAL BLOCK SIZE ;LW0004
801 000430 CALL NORML ; NORMALIZE NTI SIZE ;LW0004
802 000434 016702 000000G MOV $RDBSZ,R2 ; GET SEGMENT SIZE ;LW0004
803 000440 CALL NORML ; NORMALIZE NTI SIZE ;LW0004
804 000444 016702 000000G MOV $NSADB,R2 ; GET NUMBER OF ;LW0004
805 000450 016202 000022 MOV N$LVC(R2),R2 ; ...LOGICAL LINKS ;LW0004
806 000454 CALL NORML ; NORMALIZE NTI NUMBER ;LW0004
807 .IFF ;LW0004
808 CALLC GETBIN ; GET MAX BLKSIZE ;LW0004
809 CALLC GETBIN ; AND SEGSIZE ;LW0004
810 CALLC GETBIN ; AND NO OF LINKS ;LW0004
811 .ENDC ;LW0004
812 ;**-9
813 000460 132765 000001 000012 BITB #PF$RVE,P$FRQ(R5) ; DOES THE NODE WANT A VERIFICATION MESSAGE ?
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 13-1
RCVINI - NODE INIT MESSAGE RECEIVED
814 000466 001403 BEQ 20$ ; NO
815 000470 CALL SNDVER ; SEND VERIFICATION MESSAGE
816 000474 103446 BCS 40$ ; RESOURCE ERROR
817 000476 010365 000010 20$: MOV R3,P$NOD(R5) ; STORE POINTER TO ADJACENT NODE NAME
818 .IF DF N$$ICF ;LW0004
819 000502 122765 000001 000004 CMPB #1,P$CHN(R5) ; IS THE NODE INIT FROM THE 20XX? ;LW0004
820 000510 001017 BNE 26$ ; IF EQ, NO - CONTINUE ;LW0004
821 000512 011604 MOV (SP),R4 ; GET ADDRESS OF MESSAGE CCB ;LW0004
822 000514 012702 000004' MOV #NTI20,R2 ; GET ADDRESS OF BUFFER TO SAVE 20XX'S INIT MSG ;LW0004
823 000520 016403 000020 MOV C.CNT(R4),R3 ; GET LENGTH OF THE MESSAGE ;LW0004
824 000524 022703 000074 CMP #NTI20L,R3 ; IF MESSAGE IS TOO LARGE FOR THE SAVE BUFFER, ;LW0004
825 000530 103430 BLO 40$ ; ...ERROR RETURN ;LW0004
826 000532 010367 177244 MOV R3,CNT20 ; SAVE NTI MESSAGE LENGTH ;LW0004
827 000536 016404 000016 MOV C.BUF+2(R4),R4 ; GET ADDRESS OF START OF MESSAGE ;LW0004
828 000542 112422 25$: MOVB (R4)+,(R2)+ ; MOVE MESSAGE TO ;LW0004
829 000544 SOB R3,25$ ; ...SAVE AREA ;LW0004
830 000550 26$: ;LW0004
831 .ENDC ;LW0004
832 000550 112715 000004 MOVB #PS$VER,(R5) ; ASSUME NEXT STATE IS VERIFICATION WAIT
833 000554 032715 020000 BIT #PF$RVR*400,(R5) ; DID THIS NODE REQUEST A VERIFICATION MESSAGE ?
834 000560 001013 BNE 30$ ; IF NE, YES - ASSUMED STATE WAS CORRECT
835
836 000562 112715 000005 NXSUP: MOVB #PS$UP,(R5) ; SET NEXT STATE TO LINK AVAILABLE (UP)
837 000566 016702 000000G MOV $NSADB,R2 ; COUNT THE NUMBER OF SUCCESSFUL NODE INITS
838 000572 016202 000044 MOV N$STS+2(R2),R2 ; ...
839 000576 005762 000016 TST S$SNI(R2) ; COUNTER OVERFLOW ?
840 000602 100402 BMI 30$ ; IF MI, YES - LEAVE THE COUNTER ALONE
841 000604 005262 000016 INC S$SNI(R2) ; OTHERWISE INCREMENT THE COUNTER
842 000610 005727 30$: TST (PC)+ ; CLEAR CARRY AND SKIP ;LW0004
843 ;**-2
844 000612 000261 40$: SEC ; INDICATE AN ERROR
845 000614 RESRG <R2> ;LW0004
846 000616 RETURN ; RETURN TO CALLER
847
848 .DSABL LSB
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 14
RCVINI - NODE INIT MESSAGE RECEIVED
850 ;+ ;LW0004
851 ; ;LW0004
852 ; **-NORML - NORMALIZE NODE INIT PARAMETERS ;LW0004
853 ; ;LW0004
854 ; INPUTS: ;LW0004
855 ; R2 = LOCAL PARAMETER VALUE ;LW0004
856 ; R4 = MESSAGE POINTER TO PARAMETER IN QUESTION ;LW0004
857 ; R5 = ADDRESS OF PLD ;LW0004
858 ; ;LW0004
859 ; OUTPUTS: ;LW0004
860 ; IF THIS PLD IS THE 20XX, THE SMALLER OF THE LOCAL PARAMETER ;LW0004
861 ; VALUE AND THE VALUE OF THE MESSAGE'S IS COMPUTED AND REPLACES THE ;LW0004
862 ; PARAMETER IN THE MESSAGE. ;LW0004
863 ; R4 = POINTER TO NEXT PARAMETER (OLD R4+2) ;LW0004
864 ; ;LW0004
865 ;- ;LW0004
866 ;LW0004
867 .IF DF N$$ICF ;LW0004
868 000620 NORML: CALLC GETBIN ; GET NEXT PARAMETER ;LW0004
869 000630 122765 000001 000004 CMPB #1,P$CHN(R5) ; IS THE MESSAGE FROM THE 20XX? ;LW0004
870 000636 001011 BNE 10$ ; IF NE, NO - EXIT ;LW0004
871 000640 020102 CMP R1,R2 ; IS PARAMETER SMALLER THAN OUT VALUE (R2)? ;LW0004
872 000642 103407 BLO 10$ ; IF LO, YES - LEAVE IT IN MESSAGE ;LW0004
873 000644 162704 000002 SUB #2,R4 ; BACK UP MESSAGE POINTER ;LW0004
874 000650 010201 MOV R2,R1 ; COPY OUR PARAMETER AND ;LW0004
875 000652 CALLC PUTBIN ; ...STUFF IT INTO THE MESSAGE ;LW0004
876 000662 10$: RETURN ; RETURN TO CALLER ;LW0004
877 .ENDC ;LW0004
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 15
VFYNME - VALIDATE THE NODE NAME
879 .SBTTL VFYNME - VALIDATE THE NODE NAME
880 ;+
881 ; **-VFYNME-VALIDATE A RECEIVED NODE NAME
882 ;
883 ; INPUTS:
884 ;
885 ; R4 = MESSAGE POINTER TO 'NODENAME'
886 ; R5 = ADDRESS OF PHYSICAL LINK DATA BASE
887 ;
888 ; OUTPUTS:
889 ;
890 ; C-BIT CLEAR:
891 ; R3 = POINTER TO NODE NAME IN NODE DATA BASE
892 ; R4 = MESSAGE POINTER TO 'FUNCTIONS'
893 ;
894 ; C-BIT SET:
895 ; INVALID NODE NAME, THE NODE NAME ALREADY EXISTS, OR LOOPBACK
896 ; IS NOT ENABLED FOR THE PHYSICAL LINK
897 ;
898 ; REGISTERS MODIFIED:
899 ;
900 ; R0, R1, AND R2
901 ;
902 ;-
903
904 000664 005003 VFYNME: CLR R3 ; INDICATE WE HAVEN'T GOT NODE ENTRY YET ;LW0007
905 000666 CALL VERASC ; MAKE SURE IS VALID ASCII ;LW0007
906 000672 103436 BCS 40$ ; IT ISN'T..HANG UP LINE ;**-1
907 000674 005203 INC R3 ; SET FLAG FOR "GTNOD" ;LW0007
908 000676 CALLC GTNOD ; SEARCH FOR THE NODE NAME
909 000706 103011 BCC 20$ ; IF CC, FOUND IT - REJECT THE NODE INIT
910 000710 032713 100000 BIT #DF$TMP,(R3) ; IS THIS THE SCRATCH NODE NAME ENTRY? ;LW0007
911 000714 100425 BMI 40$ ; IF MO, YES - REJECT THE NODE INIT ;LW0007
912 .IF DF N$$ICF ;AP0003
913 000716 CALL CFRNOD ;COUNT FREE SPACES IN NODE NAME TABLE ;JS0001
914 000722 022702 000003 CMP #3,R2 ;IS THERE PLENTY OF SPACE? ;AP0003
915 000726 002020 BGE 40$ ; NO: REJECT THE NODE INIT (CARRY IS SET) ;AP0003
916 .ENDC ;AP0003
917 000730 000410 BR 30$ ; OTHERWISE IT'S OK TO ACCEPT IT ;**-2
918
919 000732 032713 040000 20$: BIT #DF$LCL,(R3) ; IS THIS THE LOCAL NODE NAME ?
920 000736 001414 BEQ 40$ ; IF EQ, NO - REJECT THE NODE INIT
921 000740 016702 000000G MOV $NSADB,R2 ; CHECK IF IT IS OK TO NODE INIT WITH
922 000744 026205 000010 CMP N$LNI(R2),R5 ; ...SELF ON THIS PHYSICAL LINK ?
923 000750 001017 BNE 100$ ; IF NO, NO - REJECT THE NODE INIT ;LW0007
924 000752 032713 004000 30$: BIT #DF$LNK,(R3) ; ANY OTHER REASON TO BLOCK NODE INIT ? ;**-1
925 000756 001004 BNE 40$ ; IF NE, YES - REJECT THE NODE INIT
926 000760 012702 020000 MOV #DF$ADJ,R2 ; SET UP NODE FLAGS FOR ADJACENT NODE
927 000764 CALLR ADNOD ; ADD THE NODE TO THE NODE DATA BASE AND RETURN
928
929 000770 005703 40$: TST R3 ; IF WE GOT ;LW0007
930 000772 001406 BEQ 100$ ; A FREE ENTRY, ;LW0007
931 000774 052713 004000 BIS #DF$LNK,(R3) ; THEN PUT IT ;LW0007
932 001000 CALLC RMNOD ; BACK IN THE BAG ;LW0009
933 001010 000261 100$: SEC ; REPORT ERROR ;LW0007
934 001012 RETURN ; RETURN TO CALLER ;**-1
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 16
RCVVER - VERFIFICATION MESSAGE RECEIVED
936 .SBTTL RCVVER - VERFIFICATION MESSAGE RECEIVED
937 ;+
938 ; **-RCVVER-PROCESS A RECEIVED VERIFICATION MESSAGE
939 ;
940 ; INPUTS:
941 ;
942 ; R4 = MESSAGE POINTER TO 'PASSWORD'
943 ; R5 = ADDRESS OF THE PHYSICAL LINKK BLOCK
944 ;
945 ; OUTPUTS:
946 ;
947 ; C-BIT CLEAR:
948 ; VALID PASSWORD RECEIVED - PHYSICAL LINK IS AVAILABLE
949 ;
950 ; C-BIT SET:
951 ; INVALID PASSWORD
952 ;
953 ; REGISTERS MODIFIED:
954 ;
955 ; R0, R1, R2, R3, AND R4
956 ;
957 ;-
958
959 001014 122715 000004 RCVVER: CMPB #PS$VER,(R5) ; EXPECTING A VERIFICATION MESSAGE ?
960 001020 001022 BNE 30$ ; IF NE, NO - REPORT ERROR
961 001022 016702 000000G MOV $NSADB,R2 ; IS LOOPBACK ENABLED FOR THIS LINK ?
962 001026 026205 000010 CMP N$LNI(R2),R5 ; ...
963 001032 001413 BEQ 20$ ; IF EQ, YES - ANY PASSWORD IS OK
964 001034 016202 000040 MOV N$VER+2(R2),R2 ; GET THE ADDRESS OF THE PASSWORD TABLE
965 001040 032722 100000 BIT #VF$RCV,(R2)+ ; IS THE RECEIVE PASSWORD STILL VALID ?
966 001044 001406 BEQ 20$ ; IF EQ, NO - ANY PASSWORD IS OK
967 001046 012701 000010 MOV #8.,R1 ; SET LENGTH OF PASSWORD TO VALIDATE
968 001052 122224 10$: CMPB (R2)+,(R4)+ ; DOES THIS BYTE MATCH ?
969 001054 001004 BNE 30$ ; IF NE, NO - REPORT ERROR
970 001056 SOB R1,10$ ; CHECK ALL THE BYTES
971 001062 20$: CALLR NXSUP ; SET NEXT STATE TO LINK AVAILABLE
972
973 001066 000261 30$: SEC ; INDICATE AN ERROR CONDITION
974 001070 RETURN ; RETURN TO CALLER
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 17
SNDNTI - SEND A NODE INITIALIZATION MESSAGE
976 .SBTTL SNDNTI - SEND A NODE INITIALIZATION MESSAGE
977 ;+
978 ; **-SNDNTI-BUILD AND SEND THE NODE INIT MESSAGE
979 ;
980 ; INPUTS:
981 ;
982 ; R5 = ADDRESS OF PHYSICAL LINK BLOCK
983 ;
984 ; OUTPUTS:
985 ;
986 ; THE NODE INITIALIZATION MESSAGE IS BUILD AND TRANSMITTED
987 ;
988 ;-
989
990 001072 SNDNTI: ;LW0004
991 .IF DF N$$ICF ;LW0004
992 001072 122765 000001 000004 CMPB #1,P$CHN(R5) ; IS THIS THE 20XX? ;LW0004
993 001100 001425 BEQ 5$ ; IF EQ, YES - SEND OUR OWN NODE INIT ;LW0004
994 001102 016700 000000G MOV $NSADB,R0 ; ELSE SEE IF THE 20XX ;LW0004
995 001106 016001 000030 MOV N$PLD+2(R0),R1 ; ...HAS ALREADY NODE INIT'D ;AP0010
996 001112 122761 000005 000014 CMPB #PS$UP,P$LEN(R1) ;...WITH US? ;AP0010
997 001120 000261 SEC ; ASSUME IT HASN'T ;LW0004
998 001122 001114 BNE 30$ ; IF NE, HASN'T - EXIT WITH ERROR ;LW0004
999 001124 026005 000010 CMP N$LNI(R0),R5 ; IF THIS IS THE LOOPBACK LINE ;AP0010
1000 001130 001411 BEQ 5$ ; THEN SEND THE REAL NODE INIT. ;AP0010
1001 001132 010500 MOV R5,R0 ; OTHERWISE, COPY ADDRESS OF PLD ;LW0004
1002 001134 CALL BFSET ; (COROUTINE TO SET UP MSG BUFFER) ;LW0004
1003 001140 005304 DEC R4 ; BACK UP THE MESSAGE POINTER ;LW0004
1004 001142 012702 000004' MOV #NTI20,R2 ; GET ADDRESS OF 20XX'S NODE INIT ;LW0004
1005 001146 016701 176630 MOV CNT20,R1 ; ...AND LENGTH ;LW0004
1006 001152 000500 BR 30$ ; RETURN TO MOVE DATA AND SEND MESSAGE ;LW0004
1007 .ENDC ;LW0004
1008 ;LW0004
1009 001154 010500 5$: MOV R5,R0 ; SAVE PLD ADDRESS ;LW0005
1010 001156 CALL BFSET ; CO-ROUTINE TO SET UP A MESSAGE BUFFER ;**-1
1011 001162 112724 000001 MOVB #NI.INI,(R4)+ ; START TYPE=INIT
1012 001166 116724 000000G MOVB $NSPNM,(R4)+ ; STORE THE NODE NUMBER
1013 001172 016203 000034 MOV N$NOD+2(R2),R3 ; GET THE ADDRESS OF THE LOCAL NODE NAME
1014 001176 062703 000005 ADD #D$LNG,R3 ; ...
1015 001202 112301 MOVB (R3)+,R1 ; GET THE LENGTH OF THE NODE NAME
1016 001204 110124 MOVB R1,(R4)+ ; AND STUFF IT IN THE MESSAGE
1017 001206 112324 10$: MOVB (R3)+,(R4)+ ; PUT NAME INTO MESSAGE
1018 001210 SOB R1,10$ ; MOVE NAME
1019
1020 .IF DF N$$ICF
1021 001214 112724 000006 MOVB #NI.FLI!NI.FRI,(R4)+ ; WE SUPPORT LINK INTERCEPT AND ROUTING INTERCEPT
1022 .IFF
1023 CLRB (R4)+ ; WE SUPPORT NO FUNCTIONS
1024 .IFT
1025 001220 105001 CLRB R1 ; THIS NODE REQUESTS NO FUNCTIONS
1026 .IFF
1027 MOVB #NI.RRI!NI.RLI,R1 ; REQUEST ROUTE & LINK INTERCEPT
1028 .ENDC
1029
1030 001222 042710 020000 BIC #PF$RVR*400,(R0) ; ASSUME NO VERIFICATION MESSAGE REQUESTED
1031 001226 032772 100000 000040 BIT #VF$RCV,@N$VER+2(R2) ; SHOULD A VERIFICATION MESSAGE BE REQUESTED ?
1032 001234 001404 BEQ 20$ ; IF EQ, NO - ASSUMPTION WAS CORRECT
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 17-1
SNDNTI - SEND A NODE INITIALIZATION MESSAGE
1033 001236 052701 000001 BIS #NI.RVE,R1 ; SET VERIFICATION REQUEST BIT IN MESSAGE
1034 001242 052710 020000 BIS #PF$RVR*400,(R0) ; REMEMBER THAT VERIFICATION WAS REQUESTED
1035 001246 110124 20$: MOVB R1,(R4)+ ; STORE THTE REQUESTS IN THE MESSAGE
1036 001250 016701 000000G MOV $RDBSZ,R1 ; MAX PHYSICAL BLOCKSIZE
1037 001254 CALLC PUTBIN ; PUT INTO MSG
1038 001264 016701 000000G MOV $RDBSZ,R1 ; MAX SIZE OF NSP MSG
1039 001270 CALLC PUTBIN ; PUT INTO MSG
1040 001300 016201 000022 MOV N$LVC(R2),R1 ; GET MAXIMUM NUMBER OF LOGICAL LINKS
1041 001304 CALLC PUTBIN ; PUT INTO MSG
1042 001314 112724 000003 MOVB #RT$VER,(R4)+ ; PUT THE PROTOCOL VERSION INFORMATION
1043 001320 112724 000001 MOVB #RT$ECO,(R4)+ ; ...INTO THE MESSAGE
1044 001324 112724 000000 MOVB #RT$REV,(R4)+ ; ...
1045 001330 112724 000003 MOVB #CM$VER,(R4)+ ; ...
1046 001334 112724 000001 MOVB #CM$ECO,(R4)+ ; ...
1047 001340 112724 000000 MOVB #CM$REV,(R4)+ ; ...
1048 001344 012702 000000G MOV #$NODID,R2 ; GET THE POINTER TO THE SYSTEM ID STRING
1049 001350 012201 MOV (R2)+,R1 ; GET THE LENGTH OF THE SYSTEM ID
1050 001352 110124 MOVB R1,(R4)+ ; AND STORE THE LENGTH IN THE MESSAGE
1051 001354 30$: ;LW0004
1052 001354 RETURN ; RETURN TO THE CO-ROUTINE TO SEND MESSAGE
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 18
SNDVER - SEND A VVERIFICATION MESSAGE
1054 .SBTTL SNDVER - SEND A VVERIFICATION MESSAGE
1055 ;+
1056 ; **-SNDVER-SEND A VERIFICATION MESSGE
1057 ;
1058 ; INPUTS:
1059 ;
1060 ; R5 = ADDRESS OF PHYSICAL LINK BLOCK
1061 ;
1062 ; OUTPUTS:
1063 ;
1064 ; XXX
1065 ;
1066 ; REGISTERS MODIFIED:
1067 ;
1068 ; R0, R1, R2, AND R4
1069 ;
1070 ;-
1071
1072 001356 SNDVER: CALL BFSET ; CO-ROUTINE TO SETUP A MESSAGE BUFFER
1073 001362 112724 000002 MOVB #NI.VER,(R4)+ ; STORE VERIFICATION MESSAGE TYPE
1074 001366 016202 000040 MOV N$VER+2(R2),R2 ; COMPUTE THE ADDRESS OF THE TRANSMIT
1075 001372 062702 000012 ADD #V$XMT,R2 ; ... PASSWORD
1076 001376 012701 000010 MOV #8.,R1 ; SET THE LENGTH OF THE PASSWORD
1077 001402 RETURN ; RETURN TO CO-ROUTINE TO SEND MESSAGE
1078
1079
1080 ;+
1081 ; **-BFSET-COROUTINE TO ALLOCATE AND BUILD AN NSP START MESSAGE
1082 ;
1083 ; INPUTS:
1084 ;
1085 ; THE STACK MUST BE FORMATTED AS FOLLOWS:
1086 ; 0(SP) - RETURN ADDRESS FOR CO-ROUTINE
1087 ; 2(SP) - RETURN ADDRESS TO CALLER'S CALLER
1088 ;
1089 ; OUTPUTS WHEN CALLER IS CALLED BACK:
1090 ;
1091 ; R2 = ADDRESS OF THE DATA DESCRIPTOR BLOCK
1092 ; R4 = MESSAGE POINTER TO 'STARTTTYPE'
1093 ; R5 = ADDRESS OF MESSAGE CCB
1094 ;
1095 ; C-BIT SET:
1096 ; ALLOCATION FAILURE OF THE MESSAGE BUFFER. CONTROL IS
1097 ; RETURNED TO THE CALLER'S CALLER.
1098 ;
1099 ; REGISTERS MODIFIED:
1100 ;
1101 ; R1
1102 ;
1103 ;-
1104
1105 001404 012601 BFSET: MOV (SP)+,R1 ; GET THE RETURN ADDRESS
1106 001406 005002 CLR R2 ; GET THE CHANNEL NUMBER
1107 001410 156502 000004 BISB P$CHN(R5),R2 ; ...
1108 001414 010546 MOV R5,-(SP) ; SAVE THE ADDRESS OF THE PHYSICAL LINK BLOCK
1109 001416 CALL GETLDB ; ALLOCATE A MESSAGE BUFFER
1110 001422 103426 BCS 20$ ; IF CS, ALLOCATION FAILURE - ERROR
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 18-1
SNDVER - SEND A VVERIFICATION MESSAGE
1111 001424 010265 000006 MOV R2,C.LIN(R5) ; SET CHANNEL NUMBER
1112 001430 112765 000022 000011 MOVB #NT$ROU,C.MOD(R5) ; STORE THE SUBFUNCTION CODE
1113 001436 112724 000130 MOVB #MF.CTL!MC.ST,(R4)+ ; BUILD THE MESSAGE FLAGS
1114 001442 016702 000000G MOV $NSADB,R2 ; GET THE ADDRESS OF THE DATA DESCRIPTOR BLOCK
1115 001446 CALL (R1) ; CALL THE CALLER BACK
1116 ;
1117 ; ON RETURN:
1118 ;
1119 ; Z-BIT SET, NO DATA TO MOVE
1120 ;
1121 ; Z-BIT CLEAR:
1122 ; R1 = LENGTH OF BYTE STRING TO MOVE INTO THE MESSAGE
1123 ; R2 = ADDRESS OF BYTE STRING TO MOVE
1124 ;
1125 001450 001403 BEQ 15$ ; IF EQ, NO DATA TO MOVE
1126 001452 112224 10$: MOVB (R2)+,(R4)+ ; MOVE THE DATA INTO THE MESSAGE
1127 001454 SOB R1,10$ ; LOOP
1128 001460 166504 000016 15$: SUB C.BUF+2(R5),R4 ; COMPUTE THE MESSAGE LENGTH
1129 001464 010465 000020 MOV R4,C.CNT(R5) ; ...AND STORE IT IN THE CCB
1130 001470 CALLC SNDLOW ; QUEUE THE MESSAGE TO THE DLC
1131 001500 20$: RECMAP ; RESTORE PROPER ACP MAPPING
1132 001506 RESRG <R5> ; RESTORE R5
1133 001510 RETURN ; RETURN TO CALLER
1134
1135
1136 000001 .END
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 18-2
SYMBOL TABLE
ACKMAS= 170000 CS.ROV= 000004 ER$CDI= 000052 FS.STR= 001000 KISDR6= 172314
ACKPRE= 100000 CS.RSN= 010000 ER$COM= 000047 FS.TRM= 003000 KISDR7= 172316
ACKRES= 060000 CS.SUC= 000001 ER$FCF= 000050 FS.XKL= 002000 K$$CNT= 177546
ACKWRA= 010000 CS.TMO= 020000 ER$FMT= 000005 FS.XOF= 010000 K$$CSR= 177546
ADNOD = ****** GX CTCTB 000730R 003 ER$GEN= 000007 FS.XON= 007000 K$$LDC= 000000
A$$CHK= 000000 CTENB 001064R 003 ER$IFC= 000030 F$$LVL= 000001 K$$TPS= 000074
A$$CPS= 000000 CTETB 000010R 003 ER$ILS= 000043 GETBIN= ****** GX LA.ACK= 100000
A$$PRI= 000000 CTLDN 001444R 003 ER$IMG= 000053 GETEXB= ****** GX LA.MSK= 170000
A$$TRP= 000000 CTSTR 001034R 003 ER$MLB= 000006 GETLDB= ****** GX LA.NAK= 110000
A.NAK = 010000 C$$CKP= 000000 ER$NOD= 000002 GTNOD = ****** GX LA.NMS= 010000
BFSET 001404R 002 C$$ORE= 000400 ER$NSD= 000003 G$$TPP= 000000 LA.RES= 060000
CB.CCB= 000002 C$$RSH= 177564 ER$RES= 000001 G$$TSS= 000000 LD$LP = 000000
CB.RDB= 000004 C.BID 000003 ER$SSR= 000000 G$$TTK= 000000 LENB = 000001
CCBGT = ****** GX C.BUF 000014 ER$SSS= 000045 G$$WRD= 000000 LF.ACT= 100000
CE.ABO= 100362 C.BUF1 000014 ER$STA= 000051 HNGILT= ****** GX LF.DFL= 000060
CE.DIS= 100366 C.BUF2 000024 ER$TCN= 000040 HNGUSR= ****** GX LF.DSP= 000040
CE.ERR= 100370 C.CNT 000020 ER$TCO= 000041 IE.ABO= ****** GX LF.DST= 000020
CE.MOP= 100372 C.CNT1 000020 ER$TPA= 000010 IF.INS= 040000 LF.FPN= 000010
CE.NTE= 100361 C.CNT2 000030 ER$UOB= 000004 IF.NKS= 000400 LF.HF0= 001000
CE.RTE= 100376 C.FLG 000022 E$$XPR= 000000 IF.NRD= 000200 LF.HMF= 020000
CE.SRC= 100364 C.FLG1 000022 FC.CCP= 000020 IF.NRI= 100000 LF.HSF= 010000
CE.TMO= 100374 C.FLG2 000032 FC.CTL= 000006 IF.NTS= 002000 LF.INR= 000100
CFRNOD= ****** GX C.FNC 000010 FC.KCP= 000016 IF.SND= 000004 LF.INT= 000400
CF.EOM= 000004 C.LIN 000006 FC.KIL= 000004 IF.SNL= 000002 LF.LCL= 040000
CF.HDR= 000020 C.LNK 000000 FC.RCE= 000002 IS.SET= ****** GX LF.MMF= 100000
CF.LB = 100000 C.MOD 000011 FC.RCP= 000014 IS.SUC= ****** GX LF.MSF= 040000
CF.SOM= 000010 C.NSP 000004 FC.TIM= 000010 I$$RAR= 000000 LF.NKR= 000200
CF.SYN= 000040 C.RSV 000002 FC.XCP= 000012 I$$RDN= 000000 LF.NKS= 000400
CF.TRN= 000100 C.STA 000007 FC.XME= 000000 I.FLG = 000012 LF.NPN= 000001
CKDON 000446R 003 C.STS 000012 FE.CAL= 000040 I.ILA = 000040 LF.NTS= 002000
CLLNK 000536R 003 DF$ADJ= 020000 FE.DRV= 000010 I.IREM= 000042 LF.RSU= 100000
CLNLNK= ****** GX DF$DWN= 001000 FE.EXP= 000200 I.LDA = 000024 LHANG 000276R 003
CL$ACK= 000040 DF$FRE= 070000 FE.EXT= 000001 I.LIA = 000026 LNASY 000760R 003
CL$MFL= 000010 DF$LCL= 040000 FE.EXV= 000004 I.LLA = 000002 LNSTP 000220R 003
CL$NRM= 000020 DF$LNK= 004000 FE.LSI= 000400 I.LNO = 000022 LNSTR 000114R 003
CL$SFL= 000004 DF$REM= 010000 FE.MUP= 000002 I.LSA = 000032 LNTMP 000000R 002
CL$TYP= 000001 DF$RES= 002000 FE.MXT= 040000 I.LVL = 000001 LS.DLS= 000200
CL.MU1= 000001 DF$TMP= 100000 FE.NLG= 100000 I.NDA = 000034 LS.FCC= 000004
CL.MU2= 000002 DISUS0= ****** GX FE.PKT= 000100 I.NIN = 000016 LS.FC0= 000001
CL.RES= 177774 DSFLT 001324R 003 FE.PLA= 000020 I.NLA = 000036 LS.FC1= 000002
CMODE = 140000 DSFNC 001402R 003 FS.AST= 000000 I.NSTA= 000025 LS.ILS= 000200
CM$ECO= 000001 D$CHN 000002 FS.CIB= 002000 I.NXN = 000014 LS.MAK= 000020
CM$REV= 000000 D$FLG 000000 FS.CRA= 001000 I.REM = 000006 LS.MNK= 000040
CM$VER= 000003 D$LEN 000014 FS.DIS= 013000 I.RLA = 000010 LS.RES= 000360
CNT20 000002R 002 D$LNG 000005 FS.DVC= 001000 I.RNO = 000020 LS.RSV= 000300
CS.ABO= 000100 D$NAM 000006 FS.ENB= 012000 I.STA = 000000 LWAIT 000304R 003
CS.BUF= 000200 D$USE 000004 FS.GET= 006000 I.TIPD= 000005 L$$ASG= 000000
CS.DCR= 000400 D$$BUG= 177514 FS.INI= 000000 I.TIPI= 000004 L$$DRV= 000000
CS.DEV= 000002 D$$ISK= 000000 FS.KIL= 000000 I.USA = 000030 L$$P11= 000001
CS.DIS= 000040 D$$L11= 000001 FS.LTM= 001000 I.USTA= 000024 L$$11R= 000000
CS.ENB= 000020 D$$YNC= 000000 FS.MNT= 004000 KDSAR0= 172360 L.CIQ 000026
CS.EOF= 000001 D$$YNM= 000000 FS.MSN= 014000 KDSDR0= 172320 L.DCR 000036
CS.ERR= 100000 ENBX = 000002 FS.RNG= 011000 KISAR0= 172340 L.FLG 000012
CS.HFE= 002000 ER$ABO= 000046 FS.RTN= 001000 KISAR5= 172352 L.LDA 000024
CS.LST= 040000 ER$ABT= 000011 FS.SET= 005000 KISAR6= 172354 L.LEN = 000014
CS.MTL= 004000 ER$ACC= 000042 FS.STM= 000000 KISAR7= 172356 L.LIA 000026
CS.RNG= 000010 ER$ACT= 000044 FS.STP= 002000 KISDR0= 172300 L.LLA 000002
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 18-3
SYMBOL TABLE
L.LNG1 000054 NE.FMT= 177770 NT.ACK= 000001 N.SDS2 000056 RF.WTD= 000020
L.LNO 000022 NE.NDT= 177766 NT.BOM= 000040 N.SEG 000006 RF.WTM= 000030
L.LSA 000032 NE.NOD= 177774 NT.EOM= 000100 N.SFMT 000034 RF.WTS= 000010
L.LSF 000044 NE.REJ= 177775 NT.FCN= 037400 N.SGRP 000036 RH.CNT= 000001
L.LVL 000001 NE.RES= 177773 NT.MD1= 000420 N.SOBJ 000035 RH.EFM= 000020
L.NDA 000034 NE.TIM= 177772 NT.MFL= 000002 N.SUSR 000040 RH.HDR= 000002
L.NIN 000016 NI.FLI= 000002 NT.MOD= 000020 PD$NSP= ****** GX RH.PRI= 000014
L.NLA 000036 NI.FRI= 000004 NT.MOM= 000000 PF$EIP= 000100 RH.PR1= 000004
L.NSTA 000025 NI.FRT= 000001 NT.NAK= 000002 PF$ENB= 000200 RH.RFM= 000100
L.NXN 000014 NI.FUB= 000010 NT.NFL= 000000 PF$OFF= 000000 RMNOD = ****** GX
L.PDV 000041 NI.INI= 000001 NT.SFL= 000001 PF$RLI= 000002 RSSTR 001220R 003
L.REM 000006 NI.RLI= 000002 NT.SOL= 000140 PF$RRI= 000004 RSST1 001276R 003
L.RLA 000010 NI.RRI= 000004 NT.XOF= 000004 PF$RVE= 000001 RT$ECO= 000001
L.RNO 000020 NI.RVE= 000001 NT.XON= 000010 PF$RVR= 000040 RT$REV= 000000
L.STA 000000 NI.VER= 000002 NXSUP 000562R 002 PF$SLI= 000002 RT$VER= 000003
L.TC 000042 NORML 000620R 002 N$ACQ 000000 PF$SRI= 000004 R$$DER= 000000
L.TIC 000043 NP$RTR= 000003 N$ICF 000006 PF$SRT= 000001 R$$K11= 000001
L.TIPD 000005 NS.BOM= 000040 N$LNI 000010 PF$STA= 000003 R$$SND= 000000
L.TIPI 000004 NS.EOM= 000100 N$LVC 000022 PF$SUB= 000010 R$$11M= 000000
L.UDQ 000034 NS.MFL= 000003 N$NOD 000032 PF$UP = 000001 SISDR0= 172200
L.ULA 000040 NS.MOM= 000000 N$PLD 000026 PIRQ = 177772 SKPEXB= ****** GX
L.USA 000030 NS.NFL= 000001 N$STS 000042 PMODE = 030000 SNDLOW= ****** GX
L.USTA 000024 NS.SET= 000002 N$TCB 000004 PR0 = 000000 SNDNTI 001072R 002
L.XQ1 000046 NS.SFL= 000002 N$TMP 000012 PR1 = 000040 SNDVER 001356R 002
L.XQ2 000050 NS.SOL= 000140 N$VER 000036 PR4 = 000200 SR0 = 177572
L.XQ3 000052 NS.SUC= 000001 N$$DAT= 000030 PR5 = 000240 SR3 = 172516
MA.DA = 000000 NTI20 000004R 002 N$$DIS= 000020 PR6 = 000300 STLN0 = ****** GX
MA.IL = 000020 NTI20L= 000074 N$$ICF= 000001 PR7 = 000340 STLVC = ****** GX
MC.CC = 000040 NT$ABO= 000022 N$$INT= 000020 PS = 177776 STOP = 000001
MC.CI = 000020 NT$ACC= 000002 N$$LDV= 000001 PS$NTI= 000003 STPLD = ****** GX
MC.DC = 000100 NT$ADS= 000000 N$$MOV= 000010 PS$OFF= 000000 STRT = 000004
MC.DI = 000060 NT$AKD= 000016 N$$OPT= 000020 PS$STR= 000001 ST$CC = 000002
MC.NO = 000000 NT$AKI= 000020 N$$OVR= 000042 PS$UP = 000005 ST$CIR= 000003
MC.ST = 000120 NT$CC = 000012 N$$SYS= 000001 PS$VER= 000004 ST$CIS= 000001
MD.BM = 000040 NT$CON= 000000 N$$USR= 000001 PS$WT = 000002 ST$DAT= 000005
MD.EM = 000100 NT$DAT= 000002 N.ACNT 000116 PUTBIN= ****** GX ST$DID= 000015
MD.ILS= 000040 NT$DIS= 000010 N.ACTL 000114 P$CHN 000004 ST$DIP= 000006
MD.IM = 000020 NT$IDC= 000034 N.DDL1 000012 P$CNT 000005 ST$DIR= 000012
MF.ACK= 000004 NT$IDN= 000030 N.DDL2 000016 P$FRQ 000012 ST$DIS= 000014
MF.CTL= 000010 NT$ILN= 000032 N.DDS1 000014 P$FSP 000013 ST$UDI= 000013
MF.DAT= 000000 NT$IND= 000024 N.DDS2 000020 P$LCD 000002 ST$UNR= 000011
MPAR = 172100 NT$INL= 000026 N.DFMT 000010 P$LEN 000014 SWR = 177570
MPCSR = 177746 NT$INT= 000004 N.DGRP 000012 P$LST 000000 S$EMR 000006
MSGHDR= 000007 NT$LS = 000014 N.DOBJ 000011 P$NOD 000010 S$FMT 000012
M$$CRB= 000124 NT$MOD= 000012 N.DUSR 000014 P$PFQ 000006 S$LEN 000040
M$$CRX= 000000 NT$NAK= 000022 N.LGTH= 000160 P$TIM 000003 S$LNK 000022
M$$FCS= 000000 NT$OFF= 000026 N.NODE 000000 P$$P45= 000000 S$MLK 000024
M$$MGE= 000000 NT$ON = 000002 N.OPDL 000136 P$$WRD= 000000 S$NKS 000010
M$$OVR= 000000 NT$QRY= 000014 N.OPTD 000140 Q$$OPT= 000010 S$RES 000014
NC.FM0= 000000 NT$REJ= 000004 N.PASL 000102 RCVINI 000332R 002 S$SEC 000000
NC.FM1= 000001 NT$ROU= 000022 N.PASS 000104 RCVSTR 000224RG 002 S$SNI 000016
NC.FM2= 000002 NT$RTI= 000010 N.RQDL 000060 RCVVER 001014R 002 S$UMR 000004
NETTIM= 000005 NT$RTN= 000000 N.RQID 000062 RECOVR= ****** GX S$UMS 000002
NE.ABO= 177776 NT$SNG= 000006 N.RSRV= 000030 RF.CLN= 000000 S$UNI 000020
NE.ACT= 177771 NT$STP= 000004 N.SDL1 000036 RF.CTL= 000003 S$$WRG= 000000
NE.CLS= 177767 NT$XOF= 000020 N.SDL2 000042 RF.TIM= 177400 S$$YSZ= 007600
NE.DIS= 177777 NT$XON= 000016 N.SDS1 000040 RF.TM0= 000400 TMLNK 000100R 002
NSPLNI MACRO M1110 13-OCT-79 10:09 PAGE 18-4
SYMBOL TABLE
TPS = 177564 UISAR7= 177656 VF$XMT= 040000 $CALLX= ****** GX $NSPNM= ****** GX
T$$KMG= 000000 UISDR0= 177600 V$FLG 000000 $CCBRT= ****** GX $PDVTB= ****** GX
T$$MIN= 000000 UISDR4= 177610 V$LEN 000022 $LLCRQ= ****** GX $QEVNT= ****** GX
UBMPR = 170200 UISDR5= 177612 V$RCV 000002 $LLCRS= ****** GX $QUEEV= ****** GX
UDSAR0= 177660 UISDR6= 177614 V$XMT 000012 $LNDON= ****** GX $RDBSZ= ****** GX
UDSDR0= 177620 UISDR7= 177616 V$$CTR= 001000 $LNSTP 000362RG 003 $SLTTA= ****** GX
UISAR0= 177640 USRCRJ= ****** GX WINDOW= 004000 $MUL = ****** GX .CTCMP 000670RG 003
UISAR4= 177650 VERASC= ****** GX WTEXT 001076R 003 $NODID= ****** GX .CTENB 000000RG 003
UISAR5= 177652 VFYNME 000664R 002 X$$DBT= 000000 $NSADB= ****** GX .TMLIN 000016RG 003
UISAR6= 177654 VF$RCV= 100000 Z.MAP = 000016
. ABS. 000160 000
000000 001
NSPLNA 001512 002
$NSACP 001470 003
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 19506 WORDS ( 77 PAGES)
DYNAMIC MEMORY: 20620 WORDS ( 79 PAGES)
ELAPSED TIME: 00:01:11
NSPLNI,[131,34]NSPLNI/CR/-SP=[130,10]NETLIB/ML,RSXMCI/PA:1,[131,10]NSPLNA
NSPLNI CREATED BY MACRO ON 13-OCT-79 AT 10:10 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
ADNOD = ****** GX 15-927
BFSET 001404 R 17-1002 17-1010 18-1072 #18-1105
CCBGT = ****** GX 10-691
CE.DIS = 100366 9-530
CE.MOP = 100372 9-507
CFRNOD = ****** GX 15-913
CKDON 000446 R #7-370 9-604
CLLNK 000536 R 6-328 #8-418
CLNLNK = ****** GX 3-131
CM$ECO = 000001 #3-73 17-1046
CM$REV = 000000 #3-73 17-1047
CM$VER = 000003 #3-73 17-1045
CNT20 000002 R #3-93 *13-826 17-1005
CTCTB 000730 R 9-485 #9-495
CTENB 001064 R 9-499 #9-562
CTETB 000010 R 4-171 #4-181
CTLDN 001444 R 6-260 9-602 #11-713
CTSTR 001034 R 9-496 #9-543
C.BUF 000014 13-827 18-1128
C.CNT 000020 13-823 *18-1129
C.FNC 000010 *10-696 *11-715
C.LIN 000006 6-244 9-475 9-515 *10-694 *10-695 *11-714 *18-1111
C.MOD 000011 *18-1112
C.NSP 000004 *9-515 11-714
C.STS 000012 6-245 6-290 9-480 *11-713
DF$ADJ = 020000 15-926
DF$DWN = 001000 8-424 8-439 8-447
DF$LCL = 040000 15-919
DF$LNK = 004000 9-587 15-924 15-931
DF$TMP = 100000 15-910
DISUS0 = ****** GX 3-130
DSFLT 001324 R 5-212 6-327 #10-657
DSFNC 001402 R 10-629 10-636 10-660 10-667 #10-691
D$CHN 000002 8-437 8-445 *9-586
D$LNG 000005 17-1014
ENBX = 000002 #6-236 6-246
FC.CCP = 000020 11-715
FC.CTL = 000006 10-628 10-635 10-659 10-666
FS.DIS = 013000 10-666
FS.ENB = 012000 10-628
FS.STP = 002000 10-659
FS.STR = 001000 10-635
GETBIN = ****** GX 14-868
GETEXB = ****** GX 13-787 13-796
GETLDB = ****** GX 18-1109
GTNOD = ****** GX 15-908
HNGILT = ****** GX 8-440
HNGUSR = ****** GX 8-448
IE.ABO = ****** GX 6-283
IS.SET = ****** GX 6-241
IS.SUC = ****** GX 6-259
I.IREM = 000042 8-436
NSPLNI CREATED BY MACRO ON 13-OCT-79 AT 10:10 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
KISAR6 = 172354 *12-743 *18-1131
LENB = 000001 #6-237 6-249
LF.ACT = 100000 #3-86 7-388
LF.INT = 000400 8-434
LF.LCL = 040000 8-428
LF.RSU = 100000 3-122
LHANG 000276 R #6-313 7-354 9-532 9-554 12-753
LNASY 000760 R 9-495 #9-507
LNSTP 000220 R 4-183 #6-279
LNSTR 000114 R 4-182 #6-241
LNTMP 000000 R #3-91 *7-347 *7-350 7-357 7-370 *7-389
LWAIT 000304 R 6-291 #6-316 9-533
L.DCR 000036 3-137
L.LEN = 000014 #3-84 7-379
L.REM 000006 8-430
L.UDQ 000034 3-138
L.USTA 000024 3-128
MC.ST = 000120 18-1113
MF.CTL = 000010 18-1113
M$$MGE = 000000 3-123 3-123 9-588 9-588 12-743 14-868 14-868 14-875 14-875
15-908 15-908 15-932 15-932 17-1037 17-1037 17-1039 17-1039 17-1041
17-1041 18-1130 18-1130 18-1131
NI.FLI = 000002 17-1021
NI.FRI = 000004 17-1021
NI.INI = 000001 12-734 17-1011
NI.RVE = 000001 17-1033
NI.VER = 000002 12-739 18-1073
NORML 000620 R 13-801 13-803 13-806 #14-868
NTI20 000004 R #3-94 3-95 13-822 17-1004
NTI20L = 000074 #3-95 13-824
NT$ROU = 000022 18-1112
NXSUP 000562 R #13-836 16-971
N$ICF 000006 8-420 *8-422 9-591 *9-593 13-793 *13-795
N$LNI 000010 6-280 *6-282 15-922 16-962 17-999
N$LVC 000022 13-805 17-1040
N$NOD 000032 17-1013
N$PLD 000026 5-198 7-345 7-346 10-623 17-995
N$STS 000042 12-746 13-838
N$VER 000036 16-964 17-1031 18-1074
N$$ICF = 000001 3-1 3-2 3-92 8-432 9-546 10-619 10-640 13-799 13-818
14-867 15-912 17-991 17-1020
N$$SYS = 000001 3-75
N$$USR = 000001 3-75 9-513
PD$NSP = ****** GX 3-123 7-375 9-588 14-868 14-875 15-908 15-932 17-1037 17-1039
17-1041 18-1130
PF$EIP = 000100 6-288 9-562 10-631
PF$ENB = 000200 6-248 6-251 6-317 10-617 10-631 10-670
PF$RVE = 000001 13-813
PF$RVR = 000040 13-833 17-1030 17-1034
PF$SLI = 000002 13-790
PF$SRI = 000004 13-790
PF$STA = 000003 7-351 9-563 9-594
NSPLNI CREATED BY MACRO ON 13-OCT-79 AT 10:10 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
PF$UP = 000001 6-254 6-287
PS$NTI = 000003 9-545 13-782
PS$STR = 000001 9-526 9-543 10-638
PS$UP = 000005 10-624 13-836 17-996
PS$VER = 000004 13-832 16-959
PS$WT = 000002 5-205 6-255 6-322 6-325
PUTBIN = ****** GX 14-875 17-1037 17-1039 17-1041
P$CHN 000004 *6-244 7-373 10-620 10-695 13-819 14-869 17-992 18-1107
P$FRQ 000012 *13-798 13-813
P$FSP 000013 *13-789
P$LEN 000014 5-214 7-355 10-624 17-996
P$NOD 000010 8-423 9-583 *9-585 *13-817
P$PFQ 000006 6-284 *6-286 9-596 *9-598
P$TIM 000003 5-201 *5-203
RCVINI 000332 R 12-736 #13-781
RCVSTR 000224 RG #12-730
RCVVER 001014 R 12-741 #16-959
RECOVR = ****** GX 3-123
RF.TM0 = 000400 6-313 6-316 10-642 10-700
RF.WTD = 000020 6-313 6-319 10-664 10-669
RF.WTM = 000030 5-210
RF.WTS = 000010 6-313 6-316 6-324 10-657 10-662
RMNOD = ****** GX 9-588 15-932
RSSTR 001220 R 6-257 9-595 #10-617
RSST1 001276 R 9-564 #10-634
RSX11D = ****** 3-123 3-123 9-588 9-588 14-868 14-868 14-875 14-875 15-908
15-908 15-932 15-932 17-1037 17-1037 17-1039 17-1039 17-1041 17-1041
18-1130 18-1130
RT$ECO = 000001 #3-73 17-1043
RT$REV = 000000 #3-73 17-1044
RT$VER = 000003 #3-73 17-1042
R$$EIS = ****** 7-381
SKPEXB = ****** GX 13-784
SNDLOW = ****** GX 18-1130
SNDNTI 001072 R 9-547 #17-990
SNDVER 001356 R 13-815 #18-1072
STLN0 = ****** GX 4-170 9-479
STLVC = ****** GX 3-115 8-425
STOP = 000001 #6-238 6-290
STPLD = ****** GX 12-731
STRT = 000004 #6-235 6-252
ST$CIR = 000003 3-134
ST$DAT = 000005 3-120
ST$DIP = 000006 3-126
ST$UNR = 000011 3-128
S$SNI 000016 13-839 *13-841
S$UNI 000020 12-747 *12-749
TMLNK 000100 R #3-115 5-195
UISAR6 = 177654 12-743 18-1131
USRCRJ = ****** GX 3-139
VERASC = ****** GX 15-905
VFYNME 000664 R 13-785 #15-904
NSPLNI CREATED BY MACRO ON 13-OCT-79 AT 10:10 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
VF$RCV = 100000 16-965 17-1031
V$XMT 000012 18-1075
WTEXT 001076 R 5-213 6-329 9-497 9-500 9-544 #9-580
Z.MAP = 000016 #3-85 7-377
$CALLX = ****** GX 3-123 9-588 14-868 14-875 15-908 15-932 17-1037 17-1039 17-1041
18-1130
$CCBRT = ****** GX 9-484 9-524
$LLCRQ = ****** GX 10-697
$LLCRS = ****** GX 11-716
$LNDON = ****** GX 7-393
$LNSTP 000362 RG #7-344
$MUL = ****** GX 7-384
$NODID = ****** GX 17-1048
$NSADB = ****** GX 5-197 6-279 7-344 8-419 9-590 10-622 12-745 13-792 13-804
13-837 15-921 16-961 17-994 18-1114
$NSPNM = ****** GX 17-1012
$PDVTB = ****** GX 7-375
$QEVNT = ****** GX 9-516
$QUEEV = ****** GX 9-478
$RDBSZ = ****** GX 13-800 13-802 17-1036 17-1038
$SLTTA = ****** GX 7-387
.CTCMP 000670 RG #9-475
.CTENB 000000 RG #4-170
.TMLIN 000016 RG #5-195
NSPLNI CREATED BY MACRO ON 13-OCT-79 AT 10:10 PAGE 5
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
CALL 3-115 3-130 3-131 3-139 4-170 5-195 5-212 5-213 6-257 6-327
6-328 7-354 7-384 8-425 8-440 8-448 9-479 9-484 9-516 9-524
9-547 9-602 9-604 10-629 10-636 10-660 10-667 10-691 12-731 12-736
12-741 12-753 13-784 13-785 13-787 13-796 13-801 13-803 13-806 13-815
15-905 15-913 17-1002 17-1010 18-1072 18-1109 18-1115
CALLC #3-69 3-123 9-588 14-868 14-875 15-908 15-932 17-1037 17-1039 17-1041
18-1130
CALLR #4-171 #6-260 #6-329 #7-393 #9-478 #9-485 #9-532 #9-533 #9-554 #11-716
#15-927 #16-971
CALLX #3-69 3-123 9-588 14-868 14-875 15-908 15-932 17-1037 17-1039 17-1041
18-1130
CCBDF$ #3-70 #3-71
HWDDF$ #12-743 12-743 #18-1131 18-1131
NSPSY$ #3-70 #3-72
NSPVR$ #3-70 3-73
RECMAP #3-69 #12-743 #18-1131
RESRG #3-68 #3-140 #8-450 #9-589 #12-754 #13-845 #18-1132
RETURN #3-143 #5-216 #7-359 #7-391 #8-451 #9-528 #9-605 #10-639 #10-643 #10-671
#10-701 #12-755 #13-846 #14-876 #15-934 #16-974 #17-1052 #18-1077 #18-1133
SAVRG #3-68 #3-136 #8-418 #9-582 #12-730 #13-781
SOB #3-142 #5-215 #7-356 #8-449 #13-829 #16-970 #17-1018 #18-1127
$QDLC #3-70 #10-697