Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/mcb/nsplna.lst
There are no other files named nsplna.lst in the archive.
NSPLNA	MACRO M1110  13-OCT-79 10:14
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
NSPLNA	MACRO M1110  13-OCT-79 10:14  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
NSPLNA	MACRO M1110  13-OCT-79 10:14  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					CNT20:	.BLKW	1		; LENGTH OF 20XX NODE INIT MESSAGE              ;LW0004
     94					NTI20:	.BLKB	60.		; STORAGE OF 20XX NODE INIT MESSAGE             ;LW0004
     95					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
NSPLNA	MACRO M1110  13-OCT-79 10:14  PAGE 3-2
LOGICAL LINK RESOURCE RECOVERY

    115	000002				TMLNK:	CALL	STLVC		; GET THE LOGICAL LINK VECTOR & NUMNER OF LINKS
    116	000006	012400 			10$:	MOV	(R4)+,R0	; GET A LLT
    117	000010	001443 				BEQ	100$		; IF EQ, NO LLT AT THIS ADDRESS - TRY NEXT
    118	000012	011001 				MOV	(R0),R1		; GET LINK STATE AND TEST RESOURCE ERROR FLAG
    119	000014	100041 				BPL	100$		; IF PL, NO RESOURCE ERROR - NEXT LINK
    120	000016	122701 	000005 			CMPB	#ST$DAT,R1	; IS THE LINK IN DATA STATE ?
    121	000022	001007 				BNE	20$		; IF NE, CONTINUE
    122	000024	042710 	100000 			BIC	#LF.RSU,(R0)	; CLEAR RESOURCE FAILURE FLAG
    123	000030					CALLC	RECOVR		; ATTEMPT LS FOR DATA & I/LS, AND ACK/NAKS
    124	000040	000427 				BR	100$		; CONTINUE WITH NEXT LINK
    125
    126	000042	122701 	000006 		20$:	CMPB	#ST$DIP,R1	; IS THE LINK DISCONNECTING ?
    127	000046	001011 				BNE	40$		; IF NE, NO - CONTINUE
    128	000050	122760 	000011 	000024 		CMPB	#ST$UNR,L.USTA(R0) ; USER NOTIFICATION REQUIRED ?
    129	000056	001002 				BNE	30$		; IF NE, NO - TRY TO REMOVE THE LINK
    130	000060					CALL	DISUS0		; ATTEMPT TO NOTIFY THE USER
    131	000064				30$:	CALL	CLNLNK		; ATTEMPT TO REMOVE THE LINK
    132	000070	000413 				BR	100$		; CONTINUE WITH NEXT LINK
    133
    134	000072	122701 	000003 		40$:	CMPB	#ST$CIR,R1	; IS THE LINK AWAITING CONNECTION ?
    135	000076	001010 				BNE	100$		; IF NE, NO - GO PROCESS NEXT LINK
    136	000100					SAVRG	<R3>		; SAVE LOOP COUNT
    137	000102	016003 	000036 			MOV	L.DCR(R0),R3	; GET REJECT REASON CODE
    138	000106	016005 	000034 			MOV	L.UDQ(R0),R5	; GET REJECT CCB ADDRESS
    139	000112					CALL	USRCRJ		; TRY THE CONNECT REJECT AGAIN
    140	000116					RESRG	<R3>		; RESTORE LOOP COUNT
    141
    142	000120				100$:	SOB	R3,10$		; LOOP THROUGH ALL THE LINKS
    143	000124					RETURN			; RETURN TO CALLER
NSPLNA	MACRO M1110  13-OCT-79 10:14  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
NSPLNA	MACRO M1110  13-OCT-79 10:14  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
NSPLNA	MACRO M1110  13-OCT-79 10:14  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
NSPLNA	MACRO M1110  13-OCT-79 10:14  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
NSPLNA	MACRO M1110  13-OCT-79 10:14  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
NSPLNA	MACRO M1110  13-OCT-79 10:14  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
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	001414 				BEQ	20$		; IF EQ, NO LOGICAL LINK
    428	000576	032710 	040000 			BIT	#LF.LCL,(R0)	; IS THIS AN INTERNAL LOGICAL LINK ?
    429	000602	001011 				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						BIT	#LF.INT,(R0)	; IS THIS AN INTERCEPT LINK ?
    435						BEQ	15$		; IF EQ, NO - USE THE DESTINATION NODE POINTER
    436						MOV	I.IREM(R0),R1	; GET THE POINTER TO THE INTERCEPTED NODE
    437						CMP	D$CHN(R1),R5	; DOES IT USE THIS PHYSICAL LINK ?
    438						BNE	20$		; IF NE, NO - CONTINUE
    439						BIS	#DF$DWN,(R1)	; FLAG THE NODE AS DOWN                         ;LW0007
    440						CALL	HNGILT		; INITIATE DESTRUCTION OF THE INTERCEPT LINK    ;LW0007
    441						BR	20$		;                                               ;**-1
    442
    443						.ENDC
    444
    445	000610	026105 	000002 		15$:	CMP	D$CHN(R1),R5	; DOES IS USE THIS PHYSICAL LINK ?
    446	000614	001004 				BNE	20$		; IF NE, NO - CONTINUE
    447	000616	052711 	001000 			BIS	#DF$DWN,(R1)	; FLAG THE NODE AS DOWN                         ;LW0007
    448	000622					CALL	HNGUSR		; INITIATE DESTRUCTION OF THE LOGICAL LINK      ;LW0007
    449	000626				20$:	SOB	R3,10$		; LOOP THROUGH ENTIRE LOGICAL LINK TABLE        ;**-1
    450	000632					RESRG	<R3>		; RESTORE R3
    451	000634					RETURN			; RETURN TO CALLER
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	000636	105764 	000006 		.CTCMP::TSTB	C.LIN(R4)	; EVENT LOGGING ?    NOTE: WE ARE USING         BH0002
    476									;   LINE ZERO AS A SPECIAL SENTINEL.            BH0002
    477	000642	001002 				BNE	5$		; NO                                            BH0002
    478	000644					CALLR	$QUEEV		; YES, SO QUEUE THIS CCB TO NICE                BH0002
    479	000650				5$:	CALL STLN0		; SETUP LINE PARAMETERS                         BH0002
    480	000654	016400 	000012 			MOV	C.STS(R4),R0	; GET COMPLETION STATUS FOR ALL                 ;**-1
    481	000660	005703 				TST	R3		; ASYNCHRONOUS ERROR REPORT ?
    482	000662	001403 				BEQ	10$		; IF EQ, YES - ANY STATUS IS OK
    483	000664	005312 				DEC	(R2)		; REDUCE NUMBER OF OUTSTANDING CONTROL REQUESTS
    484	000666					CALL	$CCBRT		; RETURN CONTROL CCB
    485	000672				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	000676	000726'			CTCTB:	.WORD	LNASY		; ASYNCHRONOUS ERROR REPORT FROM DLC
    496	000700	001002'				.WORD	CTSTR		; LINE STARTUP COMPLETE
    497	000702	001032'				.WORD	WTEXT		; LINE SHUTDOWN COMPLETE
    498	000704	177777 	177777 	177777 		.WORD	-1,-1,-1,-1,-1,-1,-1 ; RESERVED
	000712	177777 	177777 	177777
	000720	177777
    499	000722	001020'				.WORD	CTENB		; LINE ENABLE COMPLETE
    500	000724	001032'				.WORD	WTEXT		; LINE DISABLE COMPLETE
    501
    502					;+
    503					; **-LNASY-ASYNCHRONOUS ERROR REPORT
    504					;
    505					;-
    506
    507	000726	122700 	100372 		LNASY:	CMPB	#CE.MOP,R0	; IS ERROR A REQUEST FOR MAINTAINENCE MODE ?
NSPLNA	MACRO M1110  13-OCT-79 10:14  PAGE 9-1
CONTROL COMPLETE

    508	000732	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	000734	016464 	000006 	000004 		MOV	C.LIN(R4),C.NSP(R4) ; SET SOURCE PDV & CHANNEL
    516	000742					CALL	$QEVNT		; FORMAT THE EVENT AND GIVE IT TO NCU
    517	000746	000413 				BR	30$		; INITIATE LINE SHUTDOWN
    518
    519						.ENDC
    520
    521					;
    522					; INITIATE LINK SHUTDOWN ON ERROR DETECTION
    523					;
    524	000750				20$:	CALL	$CCBRT		; RETURN CCB
    525
    526	000754	122715 	000001 			CMPB	#PS$STR,(R5)	; ARE WE IN STARTUP ?                           ;AP0008
    527	000760	001001 				BNE	25$		; IF SO,                                        ;AP0008
    528	000762					RETURN			; IGNORE THE REPORT.                            ;AP0008
    529	000764				25$:                                                                            ;AP0008
    530	000764	122700 	100366 			CMPB	#CE.DIS,R0	; IS THIS A DISCONNECT ?
    531	000770	001002 				BNE	30$		; IF NE, NO - JUST STOP THE PHYSICAL LINK
    532	000772					CALLR	LHANG		; OTHERWISE FORCE STOP AND DISABLE
    533	000776				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	001002	122715 	000001 		CTSTR:	CMPB	#PS$STR,(R5)	; IS STATE IN STARTUP?                          ;LW0004
    544	001006	001011 				BNE	WTEXT		; IF NE, NO - DO CLEAN UP                       ;**-1
    545	001010	112715 	000003 			MOVB	#PS$NTI,(R5)	; SET STATE TO NOT INITIALIZED
    546						.IF DF N$$ICF                                                           ;LW0004
    547						CALL	SNDNTI		; SEND THE NODE INIT MESSAGE                    ;LW0004
    548						.IFF                                                                    ;LW0004
    549	001014					CALLR	SNDNTI		; GO SEND THE NODE INIT MESSAGE                 ;LW0004
    550						.IFT                                                                    ;LW0004
    551						BCC	30$		; IF CC, NO ERROR - EXIT                        ;LW0004
    552						MOV	R5,R2		; COMPUTE POINTER TO SECOND WORD OF             ;LW0004
    553						TST	(R2)+		; ...PLD ENTRY                                  ;LW0004
    554						CALLR	LHANG		; FORCE STOP AND DISABLE                        ;LW0004
    555						.ENDC                                                                   ;LW0004
    556					                                                                                ;**-1
    557					;+
    558					; **-CTENB-LINE ENABLE COMPLETE
    559					;
    560					;-
    561
    562	001020	042715 	040000 		CTENB:	BIC	#PF$EIP*400,(R5) ; CLEAR ENABLE IN PROGRESS FLAG
    563	001024	032715 	001400 			BIT	#PF$STA*400,(R5) ; IS THE LINK ATTEMPTING TO START ?
    564	001030	001064 				BNE	RSST1		; IF NE, YES - CONTINUE WITH START FUNCTION
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	001032	005712 			WTEXT:	TST	(R2)		; IS IT OK TO EXIT WAIT STATE ?
    581	001034	001046 				BNE	30$		; IF NE, NO - CONTINUE WAITING
    582	001036					SAVRG	<R3>		; SAVE R3
    583	001040	016503 	000010 			MOV	P$NOD(R5),R3	; GET THE POINTER TO THE NODE NAME
    584	001044	001412 				BEQ	5$		; IF EQ, NO NODE EVER HERE !
    585	001046	005065 	000010 			CLR	P$NOD(R5)	; INDICATE NO ADJACENT NODE ANYMORE
    586	001052	005063 	000002 			CLR	D$CHN(R3)	; CANNOT REACH THE NODE USING THIS LINK
    587	001056	052713 	004000 			BIS	#DF$LNK,(R3)	; MARK THE NODE NAME TO BE REMOVED
    588	001062					CALLC	RMNOD		; ATTEMPT TO REMOVE THE NODE
    589	001072				5$:	RESRG	<R3>		; RESTORE R3
    590	001074	016701 	000000G			MOV	$NSADB,R1	; IF THE PHYSICAL LINK THAT HAS JUST
    591	001100	026105 	000006 			CMP	N$ICF(R1),R5	; ...SHUT DOWN WAS INTERCEPTING FOR THIS
    592	001104	001002 				BNE	10$		; ...NODE, CLEAR OUT THE INTERCEPT FLAG
    593	001106	005061 	000006 			CLR	N$ICF(R1)	; ...
    594	001112	032715 	001400 		10$:	BIT	#PF$STA*400,(R5) ; DO LINE FLAGS INDICATE UP ?
    595	001116	001016 				BNE	RSSTR		; IF NE, YES - INITIATE LINE RESTART
    596	001120	016504 	000006 			MOV	P$PFQ(R5),R4	; GET PENDING STOP REQUEST
    597	001124	001407 				BEQ	20$		; IF EQ, NO CONTROL REQUEST
    598	001126	005065 	000006 			CLR	P$PFQ(R5)	; REMOVE IT FROM THE PENDING FUCTION QUEUE
    599	001132	011500 				MOV	(R5),R0		; GET THE STATE OF THE ENABLE BIT
    600	001134	006100 				ROL	R0		; SHIFT IT TO THE CARRY
    601	001136	006100 				ROL	R0		; ...AND THEN TO BIT 0
    602	001140					CALL	CTLDN		; POST COMPLETION ON THE REQUEST
    603	001144	105015 			20$:	CLRB	(R5)		; SET NEW STATE TO OFF
    604	001146					CALL	CKDON		; CHECK IF A LINK SHUTDOWN IS IN PROGRESS
    605	001152				30$:	RETURN			; RETURN TO CALLER
    606						.DSABL	LSB                                                             ;LW0004
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	001154	032715 	100000 		RSSTR:	BIT	#PF$ENB*400,(R5)  ; IS THE LINE ENABLED ?
    618	001160	001010 				BNE	10$		  ; IF NE, YES - START IT
    619						.IF DF N$$ICF                                                           ;LW0004
    620						CMPB	#1,P$CHN(R5)	; STARTING CHANNEL TO 20XX?                     ;LW0004
    621						BEQ	5$		; IF CC, YES - CONTINUE                         ;LW0004
    622						MOV	$NSADB,R0	; ELSE, SEE IF 20XX                             ;LW0004
    623						MOV	N$PLD+2(R0),R0	; ...HAS ALREADY COMPLETED                      ;LW0004
    624						CMPB	#PS$UP,P$LEN(R0) ;...NODE INIT?                                 ;LW0004
    625						BNE	30$		; IF NE, NO - EXIT                              ;LW0004
    626					5$:                                                                             ;LW0004
    627						.ENDC                                                                   ;LW0004
    628	001162	012700 	012006 			MOV	#FS.ENB!FC.CTL,R0 ; SET ENABLE FUNCTION CODE
    629	001166					CALL	DSFNC		; ISSUE THE REQUEST
    630	001172	103412 				BCS	20$		; IF CS, RESOURCE ALLOCATION ERROR
    631	001174	052715 	140000 			BIS	#<PF$EIP!PF$ENB>*400,(R5)  ; MARK LINK ENABLED AND ENABLE IN PROGRESS
    632	001200	000407 				BR	20$		; WAIT FOR THE ENABLE TO COMPLETE
    633
    634	001202				RSST1:				; REFERENCE LABEL
    635	001202	012700 	001006 		10$:	MOV	#FS.STR!FC.CTL,R0 ; SET START FUNCTION CODE
    636	001206					CALL	DSFNC		; ISSUE THE REQUEST
    637	001212	103402 				BCS	20$		; IF CS, RESOURCE ALLOCATION FAILURE
    638	001214	112715 	000001 			MOVB	#PS$STR,(R5)	; SET STATE TO STARTING
    639	001220				20$:	RETURN			; RETURN TO CALLER
    640						.IF DF N$$ICF                                                           ;LW0004
    641					                                                                                ;LW0004
    642					30$:	BIS	#RF.TM0,(R2)	; SET FLAG TO RETRY LATER                       ;LW0004
    643						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	001222	032712 	000010 		DSFLT:	BIT	#RF.WTS,(R2)	; STOP REQUIRED ?
    658	001226	001407 				BEQ	10$		; IF EQ, NO - CHECK FOR DISABLE
    659	001230	012700 	002006 			MOV	#FS.STP!FC.CTL,R0 ; SET STOP FUNCTION CODE
    660	001234					CALL	DSFNC		; ISSUE STOP
    661	001240	103416 				BCS	20$		; IF CS, ALLOCATION FAILURE
    662	001242	042712 	000010 			BIC	#RF.WTS,(R2)	; CLEAR STOP REQUIRED
    663
    664	001246	032712 	000020 		10$:	BIT	#RF.WTD,(R2)	; DISABLE REQUIRED ?
NSPLNA	MACRO M1110  13-OCT-79 10:14  PAGE 10-1
FUNCTION INITIATION ROUTINES

    665	001252	001411 				BEQ	20$		; IF EQ, NO - EXIT
    666	001254	012700 	013006 			MOV	#FS.DIS!FC.CTL,R0 ; SET FUNCTION CODE FOR DISABLE
    667	001260					CALL	DSFNC		; ISSUE DISABLE
    668	001264	103404 				BCS	20$		; IF CS, ALLOCATION FAILURE
    669	001266	042712 	000020 			BIC	#RF.WTD,(R2)	; CLEAR DISABLE REQUIRED
    670	001272	042715 	100000 			BIC	#PF$ENB*400,(R5) ; MARK THE LINE DISABLED
    671	001276				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	001300				DSFNC:	CALL	CCBGT		; ALLOCATE A CCB
    692	001304	103413 				BCS	20$		; IF CS, ERROR - WAIT TO RECOVER ON TIMER
    693	001306	005212 				INC	(R2)		; UPDATE NUMBER OF CONTROL REQUESTS OUTSTANDING
    694	001310	005064 	000006 			CLR	C.LIN(R4)	; SET UP THE CHANNEL NUMBER IN THE CCB
    695	001314	116564 	000004 	000006 		MOVB	P$CHN(R5),C.LIN(R4) ; ...
    696	001322	010064 	000010 			MOV	R0,C.FNC(R4)	; SET FUNCTION CODE
    697	001326					$QDLC			; ISSUE REQUEST
    698	001332	000402 				BR	30$		; EXIT
    699
    700	001334	052712 	000400 		20$:	BIS	#RF.TM0,(R2)	; MARK ALLOCATION FAILURE
    701	001340				30$:	RETURN			; RETURN TO CALLER
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	001342	010064 	000012 		CTLDN:	MOV	R0,C.STS(R4)	; STORE COMPLETION STATUS IN CCB
    714	001346	016464 	000004 	000006 		MOV	C.NSP(R4),C.LIN(R4) ; SET DESTINATION PDV & CHANNEL
    715	001354	112764 	000020 	000010 		MOVB	#FC.CCP,C.FNC(R4) ; STORE FUNCTION CODE IN CCB
    716	001362					CALLR	$LLCRS		; POST COMPLETION
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	000126					.PSECT	NSPLNA
    729
    730	000126				RCVSTR::SAVRG	<R5>		; SAVE ADDRESS OF MESSAGE CCB
    731	000130					CALL	STPLD		; COMPUTE THE ADDRESS OF THE LINK BLOCK
    732	000134	011602 				MOV	(SP),R2		; GET ADDRESS OF MESSAGE CCB                    ;LW0004
    733	000136	112401 				MOVB	(R4)+,R1	; GET THE START MESSAGE TYPE
    734	000140	022701 	000001 			CMP	#NI.INI,R1	; IS THIS AN INIT MSG ?
    735	000144	001003 				BNE	10$		; NO
    736	000146					CALL	RCVINI		; PROCESS A INITIALIZATION MESSAGE
    737	000152	000405 				BR	20$		; CHECK FOR ERRORS
    738
    739	000154	022701 	000002 		10$:	CMP	#NI.VER,R1	; IS THIS A VERIFICATION MESSAGE ?
    740	000160	001003 				BNE	30$		; IF NE, NO - HANG UP THE PHYSICAL LINK
    741	000162					CALL	RCVVER		; PROCESS VERIFICATION MSG
    742	000166	103020 			20$:	BCC	40$		; IF CC, NO ERROR - DON'T HANG UP
    743	000170				30$:	RECMAP			; RECOVER ACP MAPPING
    744
    745	000176	016702 	000000G			MOV	$NSADB,R2	; COUNT THE NUMBER OF UNSUCESSFUL NODE INITS
    746	000202	016202 	000044 			MOV	N$STS+2(R2),R2	; ...
    747	000206	005762 	000020 			TST	S$UNI(R2)	; COUNTER OVERFLOW ?
    748	000212	100402 				BMI	35$		; IF MI, YES - LEAVE THE COUNTER ALONE
    749	000214	005262 	000020 			INC	S$UNI(R2)	; OTHERWISE INCREMENT IT
    750	000220				35$:				; REFERENCE LABEL
    751	000220	010502 				MOV	R5,R2		; COMPUTE ADDRESS OF RECOVERY FLAGS
    752	000222	005722 				TST	(R2)+		; ...
    753	000224					CALL	LHANG		; HANG UP LINE DUE TO INVALID NODE INITIALIZATION MSG
    754	000230				40$:	RESRG	<R5>		; RECOVER ADDRESS OF MESSAGE CCB
    755	000232					RETURN			; RETURN TO CALLER
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	000234				RCVINI:	SAVRG	<R2>                                                            ;LW0004
    782	000236	122715 	000003 			CMPB	#PS$NTI,(R5)	; ARE WE WAITING FOR A NODE INIT?               ;LW0004
    783	000242	001077 				BNE	40$		; IF NE, NO - HANG UP THE LINE                  ;**-1
    784	000244					CALL	SKPEXB		; SKIP OTHER NODES NUMBER
    785	000250					CALL	VFYNME		; VERIFY THE NODENAME AND PUT IT INTO THE TABLE
    786	000254	103472 				BCS	40$		; NAME ISNT VALID..HANG UP LINE
    787	000256					CALL	GETEXB		; GET OTHER NODES FUNCTIONS
    788	000262	103467 				BCS	40$		; IF CS, FIELD FORMAT ERROR
    789	000264	110165 	000013 			MOVB	R1,P$FSP(R5)	; STORE FUNCTIONS SUPPORTED BY OTHER NODE
    790	000270	032701 	000006 			BIT	#PF$SLI!PF$SRI,R1 ; DOES THE NODE SUPPORT INTERCEPT ?
    791	000274	001407 				BEQ	10$		; IF EQ, NO - DON'T SET INTERCEPT SWITCH
    792	000276	016702 	000000G			MOV	$NSADB,R2	; GET ADDRESS OF THE DATA DESCRIPTOR BLOCK
    793	000302	005762 	000006 			TST	N$ICF(R2)	; DOES A NODE ALREADY INTERCEPT ?
    794	000306	001002 				BNE	10$		; IF NE, YES - DON'T BELIEVE THIS NODE
    795	000310	010562 	000006 			MOV	R5,N$ICF(R2)	; SET INTERCEPT SWITCH (POINTER TO LINK BLOCK)
    796	000314				10$:	CALL	GETEXB		; GET OTHER NODES REQUESTS
    797	000320	103450 				BCS	40$		; FIELD TOO LONG
    798	000322	110165 	000012 			MOVB	R1,P$FRQ(R5)	; SAVE OTHER NODES REQUESTS
    799						.IF DF N$$ICF                                                           ;LW0004
    800						MOV	$RDBSZ,R2	; GET LOCAL BLOCK SIZE                          ;LW0004
    801						CALL 	NORML		; NORMALIZE NTI SIZE                            ;LW0004
    802						MOV	$RDBSZ,R2	; GET SEGMENT SIZE                              ;LW0004
    803						CALL	NORML		; NORMALIZE NTI SIZE                            ;LW0004
    804						MOV	$NSADB,R2	; GET NUMBER OF                                 ;LW0004
    805						MOV	N$LVC(R2),R2	; ...LOGICAL LINKS                              ;LW0004
    806						CALL	NORML		; NORMALIZE NTI NUMBER                          ;LW0004
    807						.IFF                                                                    ;LW0004
    808	000326					CALLC	GETBIN		; GET MAX BLKSIZE                               ;LW0004
    809	000336					CALLC	GETBIN		;   AND SEGSIZE                                 ;LW0004
    810	000346					CALLC	GETBIN		;   AND NO OF LINKS                             ;LW0004
    811						.ENDC                                                                   ;LW0004
    812					                                                                                ;**-9
    813	000356	132765 	000001 	000012 		BITB	#PF$RVE,P$FRQ(R5) ; DOES THE NODE WANT A VERIFICATION MESSAGE ?
NSPLNA	MACRO M1110  13-OCT-79 10:14  PAGE 13-1
RCVINI - NODE INIT MESSAGE RECEIVED

    814	000364	001403 				BEQ	20$		; NO
    815	000366					CALL	SNDVER		; SEND VERIFICATION MESSAGE
    816	000372	103423 				BCS	40$		; RESOURCE ERROR
    817	000374	010365 	000010 		20$:	MOV	R3,P$NOD(R5)	; STORE POINTER TO ADJACENT NODE NAME
    818						.IF DF N$$ICF                                                           ;LW0004
    819						CMPB	#1,P$CHN(R5)	; IS THE NODE INIT FROM THE 20XX?               ;LW0004
    820						BNE	26$		; IF EQ, NO - CONTINUE                          ;LW0004
    821						MOV	(SP),R4		; GET ADDRESS OF MESSAGE CCB                    ;LW0004
    822						MOV	#NTI20,R2	; GET ADDRESS OF BUFFER TO SAVE 20XX'S INIT MSG ;LW0004
    823						MOV	C.CNT(R4),R3	; GET LENGTH OF THE MESSAGE                     ;LW0004
    824						CMP	#NTI20L,R3	; IF MESSAGE IS TOO LARGE FOR THE SAVE BUFFER,  ;LW0004
    825						BLO	40$		; ...ERROR RETURN                               ;LW0004
    826						MOV	R3,CNT20	; SAVE NTI MESSAGE LENGTH                       ;LW0004
    827						MOV	C.BUF+2(R4),R4	; GET ADDRESS OF START OF MESSAGE               ;LW0004
    828					25$:	MOVB	(R4)+,(R2)+	; MOVE MESSAGE TO                               ;LW0004
    829						SOB	R3,25$		; ...SAVE AREA                                  ;LW0004
    830					26$:                                                                            ;LW0004
    831						.ENDC                                                                   ;LW0004
    832	000400	112715 	000004 			MOVB	#PS$VER,(R5)	; ASSUME NEXT STATE IS VERIFICATION WAIT
    833	000404	032715 	020000 			BIT	#PF$RVR*400,(R5) ; DID THIS NODE REQUEST A VERIFICATION MESSAGE ?
    834	000410	001013 				BNE	30$		; IF NE, YES - ASSUMED STATE WAS CORRECT
    835
    836	000412	112715 	000005 		NXSUP:	MOVB	#PS$UP,(R5)	; SET NEXT STATE TO LINK AVAILABLE  (UP)
    837	000416	016702 	000000G			MOV	$NSADB,R2	; COUNT THE NUMBER OF SUCCESSFUL NODE INITS
    838	000422	016202 	000044 			MOV	N$STS+2(R2),R2	; ...
    839	000426	005762 	000016 			TST	S$SNI(R2)	; COUNTER OVERFLOW ?
    840	000432	100402 				BMI	30$		; IF MI, YES - LEAVE THE COUNTER ALONE
    841	000434	005262 	000016 			INC	S$SNI(R2)	; OTHERWISE INCREMENT THE COUNTER
    842	000440	005727 			30$:	TST	(PC)+		; CLEAR CARRY AND SKIP                          ;LW0004
    843					                                                                                ;**-2
    844	000442	000261 			40$:	SEC			; INDICATE AN ERROR
    845	000444					RESRG	<R2>                                                            ;LW0004
    846	000446					RETURN			; RETURN TO CALLER
    847
    848						.DSABL	LSB
NSPLNA	MACRO M1110  13-OCT-79 10:14  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					NORML:	CALLC	GETBIN		; GET NEXT PARAMETER                            ;LW0004
    869						CMPB	#1,P$CHN(R5)	; IS THE MESSAGE FROM THE 20XX?                 ;LW0004
    870						BNE	10$		; IF NE, NO - EXIT                              ;LW0004
    871						CMP	R1,R2		; IS PARAMETER SMALLER THAN OUT VALUE (R2)?     ;LW0004
    872						BLO	10$		; IF LO, YES - LEAVE IT IN MESSAGE              ;LW0004
    873						SUB	#2,R4		; BACK UP MESSAGE POINTER                       ;LW0004
    874						MOV	R2,R1		; COPY OUR PARAMETER AND                        ;LW0004
    875						CALLC	PUTBIN		; ...STUFF IT INTO THE MESSAGE                  ;LW0004
    876					10$:	RETURN			; RETURN TO CALLER                              ;LW0004
    877						.ENDC                                                                   ;LW0004
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	000450	005003 			VFYNME:	CLR	R3		; INDICATE WE HAVEN'T GOT NODE ENTRY YET        ;LW0007
    905	000452					CALL	VERASC		; MAKE SURE IS VALID ASCII                      ;LW0007
    906	000456	103431 				BCS	40$		; IT ISN'T..HANG UP LINE                        ;**-1
    907	000460	005203 				INC	R3		; SET FLAG FOR "GTNOD"                          ;LW0007
    908	000462					CALLC	GTNOD		; SEARCH FOR THE NODE NAME
    909	000472	103004 				BCC	20$		; IF CC, FOUND IT - REJECT THE NODE INIT
    910	000474	032713 	100000 			BIT	#DF$TMP,(R3)	; IS THIS THE SCRATCH NODE NAME ENTRY?          ;LW0007
    911	000500	100420 				BMI	40$		; IF MO, YES - REJECT THE NODE INIT             ;LW0007
    912						.IF DF	N$$ICF                                                          ;AP0003
    913						CALL	CFRNOD		;COUNT FREE SPACES IN NODE NAME TABLE           ;JS0001
    914						CMP	#3,R2		;IS THERE PLENTY OF SPACE?                      ;AP0003
    915						BGE	40$		; NO: REJECT THE NODE INIT (CARRY IS SET)       ;AP0003
    916						.ENDC                                                                   ;AP0003
    917	000502	000410 				BR	30$		; OTHERWISE IT'S OK TO ACCEPT IT                ;**-2
    918
    919	000504	032713 	040000 		20$:	BIT	#DF$LCL,(R3)	; IS THIS THE LOCAL NODE NAME ?
    920	000510	001414 				BEQ	40$		; IF EQ, NO - REJECT THE NODE INIT
    921	000512	016702 	000000G			MOV	$NSADB,R2	; CHECK IF IT IS OK TO NODE INIT WITH
    922	000516	026205 	000010 			CMP	N$LNI(R2),R5	; ...SELF ON THIS PHYSICAL LINK ?
    923	000522	001017 				BNE	100$		; IF NO, NO - REJECT THE NODE INIT              ;LW0007
    924	000524	032713 	004000 		30$:	BIT	#DF$LNK,(R3)	; ANY OTHER REASON TO BLOCK NODE INIT ?         ;**-1
    925	000530	001004 				BNE	40$		; IF NE, YES - REJECT THE NODE INIT
    926	000532	012702 	020000 			MOV	#DF$ADJ,R2	; SET UP NODE FLAGS FOR ADJACENT NODE
    927	000536					CALLR	ADNOD		; ADD THE NODE TO THE NODE DATA BASE AND RETURN
    928
    929	000542	005703 			40$:	TST	R3		; IF WE GOT                                     ;LW0007
    930	000544	001406 				BEQ	100$		;   A FREE ENTRY,                               ;LW0007
    931	000546	052713 	004000 			BIS	#DF$LNK,(R3)	;   THEN PUT IT                                 ;LW0007
    932	000552					CALLC	RMNOD		;   BACK IN THE BAG                             ;LW0009
    933	000562	000261 			100$:	SEC			; REPORT ERROR                                  ;LW0007
    934	000564					RETURN			; RETURN TO CALLER                              ;**-1
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	000566	122715 	000004 		RCVVER:	CMPB	#PS$VER,(R5)	; EXPECTING A VERIFICATION MESSAGE ?
    960	000572	001022 				BNE	30$		; IF NE, NO - REPORT ERROR
    961	000574	016702 	000000G			MOV	$NSADB,R2	; IS LOOPBACK ENABLED FOR THIS LINK ?
    962	000600	026205 	000010 			CMP	N$LNI(R2),R5	; ...
    963	000604	001413 				BEQ	20$		; IF EQ, YES - ANY PASSWORD IS OK
    964	000606	016202 	000040 			MOV	N$VER+2(R2),R2	; GET THE ADDRESS OF THE PASSWORD TABLE
    965	000612	032722 	100000 			BIT	#VF$RCV,(R2)+	; IS THE RECEIVE PASSWORD STILL VALID ?
    966	000616	001406 				BEQ	20$		; IF EQ, NO - ANY PASSWORD IS OK
    967	000620	012701 	000010 			MOV	#8.,R1		; SET LENGTH OF PASSWORD TO VALIDATE
    968	000624	122224 			10$:	CMPB	(R2)+,(R4)+	; DOES THIS BYTE MATCH ?
    969	000626	001004 				BNE	30$		; IF NE, NO - REPORT ERROR
    970	000630					SOB	R1,10$		; CHECK ALL THE BYTES
    971	000634				20$:	CALLR	NXSUP		; SET NEXT STATE TO LINK AVAILABLE
    972
    973	000640	000261 			30$:	SEC			; INDICATE AN ERROR CONDITION
    974	000642					RETURN			; RETURN TO CALLER
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	000644				SNDNTI:                                                                         ;LW0004
    991						.IF DF N$$ICF                                                           ;LW0004
    992						CMPB	#1,P$CHN(R5)	; IS THIS THE 20XX?                             ;LW0004
    993						BEQ	5$		; IF EQ, YES - SEND OUR OWN NODE INIT           ;LW0004
    994						MOV	$NSADB,R0	; ELSE SEE IF THE 20XX                          ;LW0004
    995						MOV	N$PLD+2(R0),R1	; ...HAS ALREADY NODE INIT'D                    ;AP0010
    996						CMPB	#PS$UP,P$LEN(R1) ;...WITH US?                                   ;AP0010
    997						SEC			; ASSUME IT HASN'T                              ;LW0004
    998						BNE	30$		; IF NE, HASN'T - EXIT WITH ERROR               ;LW0004
    999						CMP	N$LNI(R0),R5	; IF THIS IS THE LOOPBACK LINE                  ;AP0010
   1000						BEQ	5$		; THEN SEND THE REAL NODE INIT.                 ;AP0010
   1001						MOV	R5,R0		; OTHERWISE, COPY ADDRESS OF PLD                ;LW0004
   1002						CALL	BFSET		; (COROUTINE TO SET UP MSG BUFFER)              ;LW0004
   1003						DEC	R4		; BACK UP THE MESSAGE POINTER                   ;LW0004
   1004						MOV	#NTI20,R2	; GET ADDRESS OF 20XX'S NODE INIT               ;LW0004
   1005						MOV	CNT20,R1	; ...AND LENGTH                                 ;LW0004
   1006						BR	30$		; RETURN TO MOVE DATA AND SEND MESSAGE          ;LW0004
   1007						.ENDC                                                                   ;LW0004
   1008					                                                                                ;LW0004
   1009	000644	010500 			5$:	MOV	R5,R0		; SAVE PLD ADDRESS                              ;LW0005
   1010	000646					CALL	BFSET		; CO-ROUTINE TO SET UP A MESSAGE BUFFER         ;**-1
   1011	000652	112724 	000001 			MOVB	#NI.INI,(R4)+	; START TYPE=INIT
   1012	000656	116724 	000000G			MOVB	$NSPNM,(R4)+	; STORE THE NODE NUMBER
   1013	000662	016203 	000034 			MOV	N$NOD+2(R2),R3	; GET THE ADDRESS OF THE LOCAL NODE NAME
   1014	000666	062703 	000005 			ADD	#D$LNG,R3	; ...
   1015	000672	112301 				MOVB	(R3)+,R1	; GET THE LENGTH OF THE NODE NAME
   1016	000674	110124 				MOVB	R1,(R4)+	; AND STUFF IT IN THE MESSAGE
   1017	000676	112324 			10$:	MOVB	(R3)+,(R4)+	; PUT NAME INTO MESSAGE
   1018	000700					SOB	R1,10$		; MOVE NAME
   1019
   1020						.IF DF	N$$ICF
   1021						MOVB	#NI.FLI!NI.FRI,(R4)+ ; WE SUPPORT LINK INTERCEPT AND ROUTING INTERCEPT
   1022						.IFF
   1023	000704	105024 				CLRB	(R4)+		; WE SUPPORT NO FUNCTIONS
   1024						.IFT
   1025						CLRB	R1		; THIS NODE REQUESTS NO FUNCTIONS
   1026						.IFF
   1027	000706	112701 	000006 			MOVB	#NI.RRI!NI.RLI,R1 ; REQUEST ROUTE & LINK INTERCEPT
   1028						.ENDC
   1029
   1030	000712	042710 	020000 			BIC	#PF$RVR*400,(R0)     ; ASSUME NO VERIFICATION MESSAGE REQUESTED
   1031	000716	032772 	100000 	000040 		BIT	#VF$RCV,@N$VER+2(R2) ; SHOULD A VERIFICATION MESSAGE BE REQUESTED ?
   1032	000724	001404 				BEQ	20$		     ; IF EQ, NO - ASSUMPTION WAS CORRECT
NSPLNA	MACRO M1110  13-OCT-79 10:14  PAGE 17-1
SNDNTI - SEND A NODE INITIALIZATION MESSAGE

   1033	000726	052701 	000001 			BIS	#NI.RVE,R1	     ; SET VERIFICATION REQUEST BIT IN MESSAGE
   1034	000732	052710 	020000 			BIS	#PF$RVR*400,(R0)     ; REMEMBER THAT VERIFICATION WAS REQUESTED
   1035	000736	110124 			20$:	MOVB	R1,(R4)+	; STORE THTE REQUESTS IN THE MESSAGE
   1036	000740	016701 	000000G			MOV	$RDBSZ,R1	; MAX PHYSICAL BLOCKSIZE
   1037	000744					CALLC	PUTBIN		; PUT INTO MSG
   1038	000754	016701 	000000G			MOV	$RDBSZ,R1	; MAX SIZE OF NSP MSG
   1039	000760					CALLC	PUTBIN		; PUT INTO MSG
   1040	000770	016201 	000022 			MOV	N$LVC(R2),R1	; GET MAXIMUM NUMBER OF LOGICAL LINKS
   1041	000774					CALLC	PUTBIN		; PUT INTO MSG
   1042	001004	112724 	000003 			MOVB	#RT$VER,(R4)+	; PUT THE PROTOCOL VERSION INFORMATION
   1043	001010	112724 	000001 			MOVB	#RT$ECO,(R4)+	; ...INTO THE MESSAGE
   1044	001014	112724 	000000 			MOVB	#RT$REV,(R4)+	; ...
   1045	001020	112724 	000003 			MOVB	#CM$VER,(R4)+	; ...
   1046	001024	112724 	000001 			MOVB	#CM$ECO,(R4)+	; ...
   1047	001030	112724 	000000 			MOVB	#CM$REV,(R4)+	; ...
   1048	001034	012702 	000000G			MOV	#$NODID,R2	; GET THE POINTER TO THE SYSTEM ID STRING
   1049	001040	012201 				MOV	(R2)+,R1	; GET THE LENGTH OF THE SYSTEM ID
   1050	001042	110124 				MOVB	R1,(R4)+	; AND STORE THE LENGTH IN THE MESSAGE
   1051	001044				30$:                                                                            ;LW0004
   1052	001044					RETURN			; RETURN TO THE CO-ROUTINE TO SEND MESSAGE
NSPLNA	MACRO M1110  13-OCT-79 10:14  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	001046				SNDVER:	CALL	BFSET		; CO-ROUTINE TO SETUP A MESSAGE BUFFER
   1073	001052	112724 	000002 			MOVB	#NI.VER,(R4)+	; STORE VERIFICATION MESSAGE TYPE
   1074	001056	016202 	000040 			MOV	N$VER+2(R2),R2	; COMPUTE THE ADDRESS OF THE TRANSMIT
   1075	001062	062702 	000012 			ADD	#V$XMT,R2	; ... PASSWORD
   1076	001066	012701 	000010 			MOV	#8.,R1		; SET THE LENGTH OF THE PASSWORD
   1077	001072					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	001074	012601 			BFSET:	MOV	(SP)+,R1	; GET THE RETURN ADDRESS
   1106	001076	005002 				CLR	R2		; GET THE CHANNEL NUMBER
   1107	001100	156502 	000004 			BISB	P$CHN(R5),R2	; ...
   1108	001104	010546 				MOV	R5,-(SP)	; SAVE THE ADDRESS OF THE PHYSICAL LINK BLOCK
   1109	001106					CALL	GETLDB		; ALLOCATE A MESSAGE BUFFER
   1110	001112	103426 				BCS	20$		; IF CS, ALLOCATION FAILURE - ERROR
NSPLNA	MACRO M1110  13-OCT-79 10:14  PAGE 18-1
SNDVER - SEND A VVERIFICATION MESSAGE

   1111	001114	010265 	000006 			MOV	R2,C.LIN(R5)	; SET CHANNEL NUMBER
   1112	001120	112765 	000022 	000011 		MOVB	#NT$ROU,C.MOD(R5) ; STORE THE SUBFUNCTION CODE
   1113	001126	112724 	000130 			MOVB	#MF.CTL!MC.ST,(R4)+ ; BUILD THE MESSAGE FLAGS
   1114	001132	016702 	000000G			MOV	$NSADB,R2	; GET THE ADDRESS OF THE DATA DESCRIPTOR BLOCK
   1115	001136					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	001140	001403 				BEQ	15$		; IF EQ, NO DATA TO MOVE
   1126	001142	112224 			10$:	MOVB	(R2)+,(R4)+	; MOVE THE DATA INTO THE MESSAGE
   1127	001144					SOB	R1,10$		; LOOP
   1128	001150	166504 	000016 		15$:	SUB	C.BUF+2(R5),R4	; COMPUTE THE MESSAGE LENGTH
   1129	001154	010465 	000020 			MOV	R4,C.CNT(R5)	; ...AND STORE IT IN THE CCB
   1130	001160					CALLC	SNDLOW		; QUEUE THE MESSAGE TO THE DLC
   1131	001170				20$:	RECMAP			; RESTORE PROPER ACP MAPPING
   1132	001176					RESRG	<R5>		; RESTORE R5
   1133	001200					RETURN			; RETURN TO CALLER
   1134
   1135
   1136		000001 				.END
NSPLNA	MACRO M1110  13-OCT-79 10:14  PAGE 18-2
SYMBOL TABLE

ACKMAS= 170000   	CS.SUC= 000001   	ER$FCF= 000050   	FS.XKL= 002000   	LNASY   000726R     003
ACKPRE= 100000   	CS.TMO= 020000   	ER$FMT= 000005   	FS.XOF= 010000   	LNSTP   000220R     003
ACKRES= 060000   	CTCTB   000676R     003	ER$GEN= 000007   	FS.XON= 007000   	LNSTR   000114R     003
ACKWRA= 010000   	CTENB   001020R     003	ER$IFC= 000030   	F$$LVL= 000001   	LNTMP   000000R     002
ADNOD = ****** GX	CTETB   000010R     003	ER$ILS= 000043   	GETBIN= ****** GX	LS.DLS= 000200
A$$CHK= 000000   	CTLDN   001342R     003	ER$IMG= 000053   	GETEXB= ****** GX	LS.FCC= 000004
A$$CPS= 000000   	CTSTR   001002R     003	ER$MLB= 000006   	GETLDB= ****** GX	LS.FC0= 000001
A$$PRI= 000000   	C$$CKP= 000000   	ER$NOD= 000002   	GTNOD = ****** GX	LS.FC1= 000002
A$$TRP= 000000   	C$$ORE= 000400   	ER$NSD= 000003   	G$$TPP= 000000   	LS.ILS= 000200
A.NAK = 010000   	C$$RSH= 177564   	ER$RES= 000001   	G$$TSS= 000000   	LS.MAK= 000020
BFSET   001074R     002	C.BID   000003   	ER$SSR= 000000   	G$$TTK= 000000   	LS.MNK= 000040
CB.CCB= 000002   	C.BUF   000014   	ER$SSS= 000045   	G$$WRD= 000000   	LS.RES= 000360
CB.RDB= 000004   	C.BUF1  000014   	ER$STA= 000051   	HNGUSR= ****** GX	LS.RSV= 000300
CCBGT = ****** GX	C.BUF2  000024   	ER$TCN= 000040   	IE.ABO= ****** GX	LWAIT   000304R     003
CE.ABO= 100362   	C.CNT   000020   	ER$TCO= 000041   	IS.SET= ****** GX	L$$ASG= 000000
CE.DIS= 100366   	C.CNT1  000020   	ER$TPA= 000010   	IS.SUC= ****** GX	L$$DRV= 000000
CE.ERR= 100370   	C.CNT2  000030   	ER$UOB= 000004   	I$$RAR= 000000   	L$$P11= 000001
CE.MOP= 100372   	C.FLG   000022   	E$$XPR= 000000   	I$$RDN= 000000   	L$$11R= 000000
CE.NTE= 100361   	C.FLG1  000022   	FC.CCP= 000020   	KDSAR0= 172360   	L.CIQ   000026
CE.RTE= 100376   	C.FLG2  000032   	FC.CTL= 000006   	KDSDR0= 172320   	L.DCR   000036
CE.SRC= 100364   	C.FNC   000010   	FC.KCP= 000016   	KISAR0= 172340   	L.FLG   000012
CE.TMO= 100374   	C.LIN   000006   	FC.KIL= 000004   	KISAR5= 172352   	L.LDA   000024
CF.EOM= 000004   	C.LNK   000000   	FC.RCE= 000002   	KISAR6= 172354   	L.LEN = 000014
CF.HDR= 000020   	C.MOD   000011   	FC.RCP= 000014   	KISAR7= 172356   	L.LIA   000026
CF.LB = 100000   	C.NSP   000004   	FC.TIM= 000010   	KISDR0= 172300   	L.LLA   000002
CF.SOM= 000010   	C.RSV   000002   	FC.XCP= 000012   	KISDR6= 172314   	L.LNG1  000054
CF.SYN= 000040   	C.STA   000007   	FC.XME= 000000   	KISDR7= 172316   	L.LNO   000022
CF.TRN= 000100   	C.STS   000012   	FE.CAL= 000040   	K$$CNT= 177546   	L.LSA   000032
CKDON   000446R     003	DF$ADJ= 020000   	FE.DRV= 000010   	K$$CSR= 177546   	L.LSF   000044
CLLNK   000536R     003	DF$DWN= 001000   	FE.EXP= 000200   	K$$LDC= 000000   	L.LVL   000001
CLNLNK= ****** GX	DF$FRE= 070000   	FE.EXT= 000001   	K$$TPS= 000074   	L.NDA   000034
CL$ACK= 000040   	DF$LCL= 040000   	FE.EXV= 000004   	LA.ACK= 100000   	L.NIN   000016
CL$MFL= 000010   	DF$LNK= 004000   	FE.LSI= 000400   	LA.MSK= 170000   	L.NLA   000036
CL$NRM= 000020   	DF$REM= 010000   	FE.MUP= 000002   	LA.NAK= 110000   	L.NSTA  000025
CL$SFL= 000004   	DF$RES= 002000   	FE.MXT= 040000   	LA.NMS= 010000   	L.NXN   000014
CL$TYP= 000001   	DF$TMP= 100000   	FE.NLG= 100000   	LA.RES= 060000   	L.PDV   000041
CL.MU1= 000001   	DISUS0= ****** GX	FE.PKT= 000100   	LD$LP = 000000   	L.REM   000006
CL.MU2= 000002   	DSFLT   001222R     003	FE.PLA= 000020   	LENB  = 000001   	L.RLA   000010
CL.RES= 177774   	DSFNC   001300R     003	FS.AST= 000000   	LF.ACT= 100000   	L.RNO   000020
CMODE = 140000   	D$CHN   000002   	FS.CIB= 002000   	LF.DFL= 000060   	L.STA   000000
CM$ECO= 000001   	D$FLG   000000   	FS.CRA= 001000   	LF.DSP= 000040   	L.TC    000042
CM$REV= 000000   	D$LEN   000014   	FS.DIS= 013000   	LF.DST= 000020   	L.TIC   000043
CM$VER= 000003   	D$LNG   000005   	FS.DVC= 001000   	LF.FPN= 000010   	L.TIPD  000005
CS.ABO= 000100   	D$NAM   000006   	FS.ENB= 012000   	LF.HF0= 001000   	L.TIPI  000004
CS.BUF= 000200   	D$USE   000004   	FS.GET= 006000   	LF.HMF= 020000   	L.UDQ   000034
CS.DCR= 000400   	D$$BUG= 177514   	FS.INI= 000000   	LF.HSF= 010000   	L.ULA   000040
CS.DEV= 000002   	D$$ISK= 000000   	FS.KIL= 000000   	LF.INR= 000100   	L.USA   000030
CS.DIS= 000040   	D$$L11= 000001   	FS.LTM= 001000   	LF.INT= 000400   	L.USTA  000024
CS.ENB= 000020   	D$$YNC= 000000   	FS.MNT= 004000   	LF.LCL= 040000   	L.XQ1   000046
CS.EOF= 000001   	D$$YNM= 000000   	FS.MSN= 014000   	LF.MMF= 100000   	L.XQ2   000050
CS.ERR= 100000   	ENBX  = 000002   	FS.RNG= 011000   	LF.MSF= 040000   	L.XQ3   000052
CS.HFE= 002000   	ER$ABO= 000046   	FS.RTN= 001000   	LF.NKR= 000200   	MA.DA = 000000
CS.LST= 040000   	ER$ABT= 000011   	FS.SET= 005000   	LF.NKS= 000400   	MA.IL = 000020
CS.MTL= 004000   	ER$ACC= 000042   	FS.STM= 000000   	LF.NPN= 000001   	MC.CC = 000040
CS.RNG= 000010   	ER$ACT= 000044   	FS.STP= 002000   	LF.NTS= 002000   	MC.CI = 000020
CS.ROV= 000004   	ER$CDI= 000052   	FS.STR= 001000   	LF.RSU= 100000   	MC.DC = 000100
CS.RSN= 010000   	ER$COM= 000047   	FS.TRM= 003000   	LHANG   000276R     003	MC.DI = 000060
NSPLNA	MACRO M1110  13-OCT-79 10:14  PAGE 18-3
SYMBOL TABLE

MC.NO = 000000   	NT$DAT= 000002   	N.ACTL  000114   	P$CHN   000004   	ST$DIP= 000006
MC.ST = 000120   	NT$DIS= 000010   	N.DDL1  000012   	P$CNT   000005   	ST$DIR= 000012
MD.BM = 000040   	NT$IDC= 000034   	N.DDL2  000016   	P$FRQ   000012   	ST$DIS= 000014
MD.EM = 000100   	NT$IDN= 000030   	N.DDS1  000014   	P$FSP   000013   	ST$UDI= 000013
MD.ILS= 000040   	NT$ILN= 000032   	N.DDS2  000020   	P$LCD   000002   	ST$UNR= 000011
MD.IM = 000020   	NT$IND= 000024   	N.DFMT  000010   	P$LEN   000014   	SWR   = 177570
MF.ACK= 000004   	NT$INL= 000026   	N.DGRP  000012   	P$LST   000000   	S$EMR   000006
MF.CTL= 000010   	NT$INT= 000004   	N.DOBJ  000011   	P$NOD   000010   	S$FMT   000012
MF.DAT= 000000   	NT$LS = 000014   	N.DUSR  000014   	P$PFQ   000006   	S$LEN   000040
MPAR  = 172100   	NT$MOD= 000012   	N.LGTH= 000160   	P$TIM   000003   	S$LNK   000022
MPCSR = 177746   	NT$NAK= 000022   	N.NODE  000000   	P$$P45= 000000   	S$MLK   000024
MSGHDR= 000007   	NT$OFF= 000026   	N.OPDL  000136   	P$$WRD= 000000   	S$NKS   000010
M$$CRB= 000124   	NT$ON = 000002   	N.OPTD  000140   	Q$$OPT= 000010   	S$RES   000014
M$$CRX= 000000   	NT$QRY= 000014   	N.PASL  000102   	RCVINI  000234R     002	S$SEC   000000
M$$FCS= 000000   	NT$REJ= 000004   	N.PASS  000104   	RCVSTR  000126RG    002	S$SNI   000016
M$$MGE= 000000   	NT$ROU= 000022   	N.RQDL  000060   	RCVVER  000566R     002	S$UMR   000004
M$$OVR= 000000   	NT$RTI= 000010   	N.RQID  000062   	RECOVR= ****** GX	S$UMS   000002
NC.FM0= 000000   	NT$RTN= 000000   	N.RSRV= 000030   	RF.CLN= 000000   	S$UNI   000020
NC.FM1= 000001   	NT$SNG= 000006   	N.SDL1  000036   	RF.CTL= 000003   	S$$WRG= 000000
NC.FM2= 000002   	NT$STP= 000004   	N.SDL2  000042   	RF.TIM= 177400   	S$$YSZ= 007600
NETTIM= 000005   	NT$XOF= 000020   	N.SDS1  000040   	RF.TM0= 000400   	TMLNK   000002R     002
NE.ABO= 177776   	NT$XON= 000016   	N.SDS2  000056   	RF.WTD= 000020   	TPS   = 177564
NE.ACT= 177771   	NT.ACK= 000001   	N.SEG   000006   	RF.WTM= 000030   	T$$KMG= 000000
NE.CLS= 177767   	NT.BOM= 000040   	N.SFMT  000034   	RF.WTS= 000010   	T$$MIN= 000000
NE.DIS= 177777   	NT.EOM= 000100   	N.SGRP  000036   	RH.CNT= 000001   	UBMPR = 170200
NE.FMT= 177770   	NT.FCN= 037400   	N.SOBJ  000035   	RH.EFM= 000020   	UDSAR0= 177660
NE.NDT= 177766   	NT.MD1= 000420   	N.SUSR  000040   	RH.HDR= 000002   	UDSDR0= 177620
NE.NOD= 177774   	NT.MFL= 000002   	PD$NSP= ****** GX	RH.PRI= 000014   	UISAR0= 177640
NE.REJ= 177775   	NT.MOD= 000020   	PF$EIP= 000100   	RH.PR1= 000004   	UISAR4= 177650
NE.RES= 177773   	NT.MOM= 000000   	PF$ENB= 000200   	RH.RFM= 000100   	UISAR5= 177652
NE.TIM= 177772   	NT.NAK= 000002   	PF$OFF= 000000   	RMNOD = ****** GX	UISAR6= 177654
NI.FLI= 000002   	NT.NFL= 000000   	PF$RLI= 000002   	RSSTR   001154R     003	UISAR7= 177656
NI.FRI= 000004   	NT.SFL= 000001   	PF$RRI= 000004   	RSST1   001202R     003	UISDR0= 177600
NI.FRT= 000001   	NT.SOL= 000140   	PF$RVE= 000001   	RT$ECO= 000001   	UISDR4= 177610
NI.FUB= 000010   	NT.XOF= 000004   	PF$RVR= 000040   	RT$REV= 000000   	UISDR5= 177612
NI.INI= 000001   	NT.XON= 000010   	PF$SLI= 000002   	RT$VER= 000003   	UISDR6= 177614
NI.RLI= 000002   	NXSUP   000412R     002	PF$SRI= 000004   	R$$DER= 000000   	UISDR7= 177616
NI.RRI= 000004   	N$ACQ   000000   	PF$SRT= 000001   	R$$K11= 000001   	USRCRJ= ****** GX
NI.RVE= 000001   	N$ICF   000006   	PF$STA= 000003   	R$$SND= 000000   	VERASC= ****** GX
NI.VER= 000002   	N$LNI   000010   	PF$SUB= 000010   	R$$11M= 000000   	VFYNME  000450R     002
NP$RTR= 000003   	N$LVC   000022   	PF$UP = 000001   	SISDR0= 172200   	VF$RCV= 100000
NS.BOM= 000040   	N$NOD   000032   	PIRQ  = 177772   	SKPEXB= ****** GX	VF$XMT= 040000
NS.EOM= 000100   	N$PLD   000026   	PMODE = 030000   	SNDLOW= ****** GX	V$FLG   000000
NS.MFL= 000003   	N$STS   000042   	PR0   = 000000   	SNDNTI  000644R     002	V$LEN   000022
NS.MOM= 000000   	N$TCB   000004   	PR1   = 000040   	SNDVER  001046R     002	V$RCV   000002
NS.NFL= 000001   	N$TMP   000012   	PR4   = 000200   	SR0   = 177572   	V$XMT   000012
NS.SET= 000002   	N$VER   000036   	PR5   = 000240   	SR3   = 172516   	V$$CTR= 001000
NS.SFL= 000002   	N$$DAT= 000030   	PR6   = 000300   	STLN0 = ****** GX	WINDOW= 004000
NS.SOL= 000140   	N$$DIS= 000020   	PR7   = 000340   	STLVC = ****** GX	WTEXT   001032R     003
NS.SUC= 000001   	N$$INT= 000020   	PS    = 177776   	STOP  = 000001   	X$$DBT= 000000
NT$ABO= 000022   	N$$LDV= 000001   	PS$NTI= 000003   	STPLD = ****** GX	Z.MAP = 000016
NT$ACC= 000002   	N$$MOV= 000010   	PS$OFF= 000000   	STRT  = 000004   	$CALLX= ****** GX
NT$ADS= 000000   	N$$OPT= 000020   	PS$STR= 000001   	ST$CC = 000002   	$CCBRT= ****** GX
NT$AKD= 000016   	N$$OVR= 000042   	PS$UP = 000005   	ST$CIR= 000003   	$LLCRQ= ****** GX
NT$AKI= 000020   	N$$SYS= 000001   	PS$VER= 000004   	ST$CIS= 000001   	$LLCRS= ****** GX
NT$CC = 000012   	N$$USR= 000001   	PS$WT = 000002   	ST$DAT= 000005   	$LNDON= ****** GX
NT$CON= 000000   	N.ACNT  000116   	PUTBIN= ****** GX	ST$DID= 000015   	$LNSTP  000362RG    003
NSPLNA	MACRO M1110  13-OCT-79 10:14  PAGE 18-4
SYMBOL TABLE

$MUL  = ****** GX	$NSPNM= ****** GX	$QUEEV= ****** GX	$SLTTA= ****** GX	.CTENB  000000RG    003
$NODID= ****** GX	$PDVTB= ****** GX	$RDBSZ= ****** GX	.CTCMP  000636RG    003	.TMLIN  000016RG    003
$NSADB= ****** GX	$QEVNT= ****** GX

. ABS.	000160	   000
      	000000	   001
NSPLNA	001202	   002
$NSACP	001366	   003
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  19305 WORDS  ( 76 PAGES)
DYNAMIC MEMORY:  20620 WORDS  ( 79 PAGES)
ELAPSED TIME:  00:01:09
NSPLNA,[131,34]NSPLNA/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]NSPLNA
NSPLNA     CREATED BY  MACRO  ON 13-OCT-79 AT 10:15	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ADNOD 	= ******  GX	 15-927    
BFSET 	  001074 R	 17-1010    18-1072   #18-1105   
CCBGT 	= ******  GX	 10-691    
CE.DIS	= 100366	 9-530     
CE.MOP	= 100372	 9-507     
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   
CTCTB 	  000676 R	 9-485     #9-495     
CTENB 	  001020 R	 9-499     #9-562     
CTETB 	  000010 R	 4-171     #4-181     
CTLDN 	  001342 R	 6-260      9-602     #11-713    
CTSTR 	  001002 R	 9-496     #9-543     
C.BUF 	  000014	 18-1128   
C.CNT 	  000020	*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-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 	  001222 R	 5-212      6-327     #10-657    
DSFNC 	  001300 R	 10-629     10-636     10-660     10-667    #10-691    
D$CHN 	  000002	 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	 13-808     13-809     13-810    
GETEXB	= ******  GX	 13-787     13-796    
GETLDB	= ******  GX	 18-1109   
GTNOD 	= ******  GX	 15-908    
HNGUSR	= ******  GX	 8-448     
IE.ABO	= ******  GX	 6-283     
IS.SET	= ******  GX	 6-241     
IS.SUC	= ******  GX	 6-259     
KISAR6	= 172354	*12-743    *18-1131   
LENB  	= 000001	#6-237      6-249     
LF.ACT	= 100000	#3-86       7-388     
LF.LCL	= 040000	 8-428     
NSPLNA     CREATED BY  MACRO  ON 13-OCT-79 AT 10:15	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

LF.RSU	= 100000	 3-122     
LHANG 	  000276 R	#6-313      7-354      9-532      12-753    
LNASY 	  000726 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     13-808     13-808     13-809     13-809    
                         13-810     13-810     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.INI	= 000001	 12-734     17-1011   
NI.RLI	= 000002	 17-1027   
NI.RRI	= 000004	 17-1027   
NI.RVE	= 000001	 17-1033   
NI.VER	= 000002	 12-739     18-1073   
NT$ROU	= 000022	 18-1112   
NXSUP 	  000412 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    
N$LVC 	  000022	 17-1040   
N$NOD 	  000032	 17-1013   
N$PLD 	  000026	 5-198      7-345      7-346     
N$STS 	  000042	 12-746     13-838    
N$VER 	  000036	 16-964     17-1031    18-1074   
N$$ICF	= ******	 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      13-808     13-809     13-810     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     
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	 13-836    
PS$VER	= 000004	 13-832     16-959    
PS$WT 	= 000002	 5-205      6-255      6-322      6-325     
PUTBIN	= ******  GX	 17-1037    17-1039    17-1041   
P$CHN 	  000004	*6-244      7-373      10-695     18-1107   
NSPLNA     CREATED BY  MACRO  ON 13-OCT-79 AT 10:15	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

P$FRQ 	  000012	*13-798     13-813    
P$FSP 	  000013	*13-789    
P$LEN 	  000014	 5-214      7-355     
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	  000234 R	 12-736    #13-781    
RCVSTR	  000126 RG	#12-730    
RCVVER	  000566 R	 12-741    #16-959    
RECOVR	= ******  GX	 3-123     
RF.TM0	= 000400	 6-313      6-316      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 	  001154 R	 6-257      9-595     #10-617    
RSST1 	  001202 R	 9-564     #10-634    
RSX11D	= ******	 3-123      3-123      9-588      9-588      13-808     13-808     13-809     13-809     13-810    
                         13-810     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	  000644 R	 9-549     #17-990    
SNDVER	  001046 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 	  000002 R	#3-115      5-195     
UISAR6	= 177654	 12-743     18-1131   
USRCRJ	= ******  GX	 3-139     
VERASC	= ******  GX	 15-905    
VFYNME	  000450 R	 13-785    #15-904    
VF$RCV	= 100000	 16-965     17-1031   
V$XMT 	  000012	 18-1075   
WTEXT 	  001032 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      13-808     13-809     13-810     15-908     15-932     17-1037    17-1039   
                         17-1041    18-1130   
$CCBRT	= ******  GX	 9-484      9-524     
$LLCRQ	= ******  GX	 10-697    
NSPLNA     CREATED BY  MACRO  ON 13-OCT-79 AT 10:15	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$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      12-745     13-792     13-837     15-921    
                         16-961     18-1114   
$NSPNM	= ******  GX	 17-1012   
$PDVTB	= ******  GX	 7-375     
$QEVNT	= ******  GX	 9-516     
$QUEEV	= ******  GX	 9-478     
$RDBSZ	= ******  GX	 17-1036    17-1038   
$SLTTA	= ******  GX	 7-387     
.CTCMP	  000636 RG	#9-475     
.CTENB	  000000 RG	#4-170     
.TMLIN	  000016 RG	#5-195     
NSPLNA     CREATED BY  MACRO  ON 13-OCT-79 AT 10:15	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-448      9-479      9-484      9-516      9-524      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-815     15-905     17-1010    18-1072    18-1109    18-1115   
CALLC 		#3-69       3-123      9-588      13-808     13-809     13-810     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-549     #11-716    
                #15-927    #16-971    
CALLX 		#3-69       3-123      9-588      13-808     13-809     13-810     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-671     10-701    
                 12-755     13-846     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     #16-970    #17-1018   #18-1127   
$QDLC 		#3-70      #10-697