Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/mcb/nspcp.lst
There are no other files named nspcp.lst in the archive.
NSPCP	MACRO M1110  13-OCT-79 10:02
TABLE OF CONTENTS

     4-  113	RCVCMP - RECEIVED MESSAGE PROCESSING
     5-  234	BLDRTH - BUILD A ROUTE HEADER TO A MESSAGE
     6-  316	RENABL
     7-  345	XENABL
     8-  377	XMCMP
     9-  551	RELIEF
    10-  612	NAKINT
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 3


      1						.IIF DF	N$$ICF,	.TITLE	NSPCPI
      2						.IIF NDF N$$ICF, .TITLE	NSPCP
      3						.IDENT	/V01.22/
      4
      5					;
      6					; COPYRIGHT (C) 1978 BY
      7					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      8					;
      9					;
     10					; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
     11					; ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
     12					; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
     13					; COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
     14					; OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
     15					; TRANSFERRED.
     16					;
     17					; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
     18					; AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
     19					; CORPORATION.
     20					;
     21					; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
     22					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
     23					;
     24					;
     25					; MODULE DESCRIPTION
     26					;
     27					;	NSP RECEIVE AND TRANSMET COMPLETION DISPATCHER
     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					;
     39					;	JS0001	12-APR-78 JOHN SAUTER
     40					;		TO PASS MESSAGES TO THE ACP (IN INTERCEPT MODE)
     41					;		EVEN IF THE SOURCE NODE IS UNKNOWN.
     42					;	LW0002	1-MAY-78  LEE WEBBER
     43					;		MODIFY "XMCTBL" DISPATCH VECTORS FOR INTERCEPT
     44					;		TO POINT TO NEW ACK/NAK ROUTINES
     45					;	LW0003	7-MAY-78  LEE WEBBER
     46					;		SET FLAG TO INDICATE THERE IS NO SOURCE NODE NAME
     47					;		SPECIFIED BECAUSE THERE IS NO ROUTING HEADER ON
     48					;		THE MESSAGE BEING PROCESSED
     49					;	LW0004	17-MAY-78 LEE WEBBER
     50					;		ADD CODE TO TRANSMIT COMPLETE TO CLEAN UP AN ILT
     51					;		ON COMPLETION OF AN INTERCEPTED DC
     52					;	AP0005	21-DEC-77 ALAN D. PECKHAM
     53					;		TO ENABLE USE OF THE SYSTEM INTERFACE.
     54					;	AP0006	23-MAR-78 ALAN D. PECKHAM
     55					;		REDIRECT DISPATCH FROM USRMOD TO SYSMOD
     56					;	MN0007	6-JUN-78  MAYNARD
     57					;		FIX SDC SYSTEM FOR END-NODE SYSTEM
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 3-1


     58					;	AP0008	9-JUN-78  ALAN D. PECKHAM
     59					;		ADD CODING TO DISPATCH NAK COMPLETE TO SYSTEM USER.
     60					;	LW0009	10-OCT-78 LEE WEBBER
     61					;		MODIFY FIX #8 FOR INTERCEPT
     62					;	AP0010	24-OCT-78 ALAN D. PECKHAM
     63					;		DELAY BUFFER READJUSTMENT FOR DATA MESSAGES.
     64					;	AP0011	25-OCT-78 ALAN D. PECKHAM
     65					;		CORRECT SOURCE NODE INDICATOR IN CASE OF LOCAL LINK SOURCE
     66					;	LW0012	08-JAN-79  LEE WEBBER
     67					;		FALSE NODE INIT MODIFICATIONS
     68					;		22-JAN-79  LEE WEBBER
     69					;		CONDITIONALIZED FOR INTERCEPT ONLY
     70					;	AP0013	25-FEB-79 ALAN D. PECKHAM
     71					;		NO ROUTING HEADERS ON LOCAL LINK MESSAGES, PLEASE!
     72					;	LW0014	9-MAR-79  LEE WEBBER
     73					;		MODIFY INTERFACE TO "GTNOD".  ELIMINATE CODE TO HANDLE AN
     74					;		UNKNOWN SOURCE NODE.
     75					;	LW0015	15-MAR-79  LEE WEBBER
     76					;		FIX SMALL LOGIC PROBLEM IN #14
     77					;	LW0016	11-APR-79  LEE WEBBER
     78					;		TAKE THE LINK CLEANUP FUNCTION OUT OF THE "IDC" SUBFUNCTION
     79					;		TO TRANSMIT COMPLETE (THIS REPEALS #4) AND ADD IT TO THE "IND"
     80					;		AND "INL" SUBFUNCTIONS
     81					;	AP0017	22-MAY-79 ALAN D. PECKHAM
     82					;		INTERCEPT TRANSMIT COMPLETES SHOULD NOT CALL SNDAKD OR SNDAKI
     83					;	LW0018	25-JUN-79  LEE WEBBER
     84					;		DON'T GO INTO "XMCIND/INL" CLEANUP CODE UNLESS LINK IS 'DIP'
     85					;	LW0019	11-JUL-79  LEE WEBBER
     86					;		BACK OUT OF SOME OF FIX #14; ADD BACK "UNKNOWN SOURCE"
     87					;	AP0020	10-AUG-79 ALAN D. PECKHAM
     88					;		ALLOW INTERCEPT SERVICE FOR ALL MESSAGES WITH ROUTING HEADERS
     89					;		THAT HAVE UNKNOWN SOURCE NODES.
     90					;	AP0021	22-AUG-79 ALAN D. PECKHAM
     91					;		BLEW A CONDITIONAL ON THE LAST FIX (V1.20)
     92					;	AP0022	31-AUG-79 ALAN D. PECKHAM
     93					;		FIX NON-INTERCEPT CODING TO USE CREATED NODE ENTRY WHEN A
     94					;		ROUTING HEADER IS GIVEN WITH AN UNKNOWN SOURCE.
     95					;
     96					;
     97					; EXTERNAL MACRO DEFINITIONS
     98					;
     99						.MCALL	SAVRG,MAP,RESRG
    100						.MCALL	CCBDF$,NSPSY$
    101	000000					CCBDF$			;DEFINE THE CCB OFFSETS
    102	000000					NSPSY$			;DEFINE THE NSP SYMBOLS
    103
    104						.IF NDF	N$$SYS&N$$USR
    105
    106						N$$SYS=1		;IF NEITHER INTERFACE IS SPECIFIED
    107									;DEFAULT TO SYSTEM INTERFACE
    108
    109						.ENDC
    110
    111	000000					.PSECT	NSPCP
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 4
RCVCMP - RECEIVED MESSAGE PROCESSING

    113						.SBTTL	RCVCMP - RECEIVED MESSAGE PROCESSING
    114
    115					;+
    116					; **-RCVCMP-RECEIVED MESSAGE PROCESSING
    117					;
    118					; THIS ROUTINE PROCESSES MESSAGES RECEIVED FROM THE DLC LEVEL OF THE
    119					; SYSTEM.  A SINGLE CCB DESCRIBES ONLY A SINGLE MESSAGE.
    120					;
    121					; INPUTS:
    122					;	 R4 = ADDRESS OF CCB
    123					;
    124					; OUTPUTS:
    125					;
    126					;-
    127
    128	000000				RCVCMP::			; REFERENCE LABEL
    129	000000				RCVBLK::			; TEMPORARY
    130	000000	010405 				MOV	R4,R5		; COPY CCB ADDRESS
    131	000002					MAP	C.BUF(R5)	; MAP TO MESSAGE BUFFER
    132	000010	016504 	000016 			MOV	C.BUF+2(R5),R4	; POINTER TO START OF MESSAGE
    133	000014	132714 	000002 			BITB	#RH.HDR,(R4)	; IS THERE A ROUTE HEADER?
    134	000020	001422 				BEQ	20$		; IF EQ, NO ROUTE HEADER
    135	000022	132714 	177661 			BITB	#^C<RH.HDR!RH.RFM!RH.PRI>,(R4) ; ANY RESERVED BITS SET ?
    136	000026	001040 				BNE	50$		; IF NE, YES - INVALID HEADER
    137	000030	132724 	000100 			BITB	#RH.RFM,(R4)+	; IS THIS AN ASCII FORMAT ROUTE HEADER ?
    138	000034	001435 				BEQ	50$		; IF EQ, NO - TOSS THE MESSAGE
    139
    140	000036	010703 				MOV	PC,R3		; SEARCH FOR DESTINATION                        ;LW0014
    141	000040					CALL	GTNOD		;   NODE NAME                                   ;LW0014
    142					                                                                                ;**-1
    143						.IF NDF	N$$ICF
    144
    145	000044	103431 				BCS	50$		; IF CS, NO NODE NAME MATCH - TOSS MESSAGE
    146	000046	032713 	040000 			BIT	#DF$LCL,(R3)	; OTHERWISE, CHECK IF LOCAL NODE IS DESTINATION
    147	000052	001426 				BEQ	50$		; IF EQ, NO - TOSS THE MESSAGE
    148
    149						.IFTF
    150
    151	000054	010346 				MOV	R3,-(SP)	; SAVE POINTER TO DESTINATION NODE
    152	000056					CALL	GTNOD		; SEARCH FOR THE SOURCE NODE NAME
    153	000062	012600 				MOV	(SP)+,R0	; RECOVER POINTER TO DESTINATION NODE
    154
    155						.IFT
    156
    157	000064	000415 				BR	40$		; GO PROCESS THE MESSAGE                        ;AP0022
    158					                                                                                ;**-5
    159						.IFF
    160
    161					10$:	CMP	R0,R3		; ARE THE POINTERS THE SAME ?                   ;JS0001
    162						BNE	15$		; IF NE, NO.                                    ;JS0001
    163						BIT	#DF$FRE,(R0)	; YES, NODE KNOWN?                              ;LW0014
    164						BNE	15$		; IF NE, YES.                                   ;JS0001
    165						CRASH	;**** SOURCE NOT KNOWN - DIE ****;                              ;LW0014
    166					15$:	BIT	#DF$LCL,(R0)	; IS THE DESTINATION THE LOCAL NODE?            ;JS0001
    167						BNE	40$		; IF NE, YES - START END NODE PROCESSING        ;**-2
    168						BR	30$		; OTHERWISE, START INTERCEPT PROCESSING
    169
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 4-1
RCVCMP - RECEIVED MESSAGE PROCESSING

    170					20$:	CALL	BLDRTH		; BUILD A ROUTE HEADER IF ONE IS REQUIRED       ;LW0012
    171						BCC	30$		; IF CC, ROUTE HEADER  WAS BUILT                ;LW0012
    172						MOV	R4,R2		; SAVE THE POINTER TO MSGFLGS                   ;LW0012
    173						CLR	R3		; INDICATE NO SOURCE NODE NAME SPECIFIED        ;LW0003
    174						MOVB	(R4)+,R1	; GET MESSAGE FLAGS AND CHECK FOR A CONTROL MESS;**-1
    175						BMI	50$		; IF MI, FIELD FORMAT ERROR - TOSS MESSAGE
    176						BITB	#MF.CTL,R1	; IS THIS A CONTROL MSG?
    177						BNE	35$		; IF NE, YES - MUST BE FOR LOCAL NODE
    178						CALL	GETBIN		; GET DESTINATION LINK ADDRESS
    179						MOV	R2,R4		; RECOVER MSG PTR TO MSGFLGS
    180						MOV	R1,R0		; COPY DESTINATION LINK ADDRESS
    181						CALL	GETLNK		; GET THE LOGICAL LINK TABLE ADDRESS
    182						BCS	35$		; IF CS, NO LINK - START END NODE PROCESSING
    183						BIT	#LF.INT,(R0)	; IS THIS AN INTERRCEPT LINK ?
    184						BEQ	35$		; IF EQ, NO - DO END NODE PROCESSING
    185
    186					30$:	CALL	RINCPT		; PROCESS MSG FROM INTERCEPTED NODE
    187						BCS	45$		; TOSS MSG
    188									; OUTPUTS R1 AS DESTINATION LINE NUMBER
    189									; OUTPUTS R0 AS DESTINATION NODE INDEX
    190						TST	R5		; HAS BUFFER BEEN PASSED OFF TO ACP?
    191						BEQ	60$		; YES..ACP WILL PROCESS CONTROL MESSAGE
    192						CALL	XINCPT		; PROCESS MESSAGE FROM NET
    193						BCS	50$		; TOSS MSG
    194
    195						.IF DF	N$$CNC
    196						MOV	$NSDDB,R1	; GET THE ADDRESS OF THE DATA DESCRIPTOR BLOCK
    197						DECB	N$POL(R1)	; ACCOUNT FOR ANOTHER BUFFER IN USE
    198						.ENDC
    199
    200						BR	60$
    201
    202					35$:	MOV	R2,R4		; INTERCEPT CONFIGURATION, NO ROUTE HEADER
    203						TSTB	C.LIN(R5)	; IF THIS IS FROM A LOCAL LINK                  ;AP0011
    204						BNE	40$		; THEN                                          ;AP0011
    205						MOV	$NSDDB,R3	; GET THE DESCRIPTOR                            ;AP0011
    206						MOV	N$PLD+2(R3),R3	; OF LINE #0                                    ;AP0011
    207						MOV	P$NOD(R3),R3	; TO GET THE LOCAL NODE DESCRIPTOR.             ;AP0011
    208						.IFT
    209	000066				20$:				; END NODE CONFIGURATION, NO ROUTE HEADER
    210	000066	005000 				CLR	R0		; GET CHANNEL NUMBER WITHOUT SIGN EXTENTION
    211	000070	156500 	000006 			BISB	C.LIN(R5),R0	; ...
    212	000074	012701 	000014 			MOV	#P$LEN,R1	; SET LENGTH OF PHYSICAL LINK DATA BASE ENTRY
    213
    214						.IF DF	R$$EIS
    215						MUL	R0,R1		; COMPUTE OFFSET INTO DATA BASE
    216						.IFF
    217	000100					CALL	$MUL		; COMPUTE OFFSET INTO DATA BASE
    218						.ENDC
    219
    220	000104	016703 	000000G			MOV	$NSDDB,R3	; COMPUTE ADDRESS INTO DATA BASE
    221	000110	066301 	000030 			ADD	N$PLD+2(R3),R1	; ...
    222	000114	016103 	000010 			MOV	P$NOD(R1),R3	; GET POINTER TO ADJACENT NODE
    223
    224						.IFTF
    225
    226	000120				40$:	CALL	RCVMSG		; MESSAGE IS FOR ME..PROCESS
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 4-2
RCVCMP - RECEIVED MESSAGE PROCESSING

    227	000124	005705 			45$:	TST	R5		; IS THERE A BUFFER TO RELEASE ?
    228	000126	001402 				BEQ	60$		; IF EQ, NO - EXIT
    229	000130				50$:	CALL	UNSPWN		; RELEASE THE BUFFER
    230	000134				60$:	RETURN			; EXIT TO THE SYSTEM
    231
    232						.ENDC
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 5
BLDRTH - BUILD A ROUTE HEADER TO A MESSAGE

    234						.SBTTL	BLDRTH - BUILD A ROUTE HEADER TO A MESSAGE
    235					;+                                                                              ;LW0012
    236					; **-BLDRTH-BUILD A ROUTE HEADER TO A MESSAGE                                   ;LW0012
    237					;                                                                               ;LW0012
    238					; THIS ROUTINE PREPROCESSES MESSAGES THAT ARE RECEIVED WITHOUT A ROUTE          ;LW0012
    239					; HEADER.  IF THE MESSAGE IS RECEIVED FROM THE 20XX SYSTEM, NO ACTION           ;LW0012
    240					; IS TAKEN.  OTHERWISE, IF THE MESSAGE (FROM THE OUTSIDE WORLD) IS A            ;LW0012
    241					; CONTROL MESSAGE OTHER THAN A STARTUP CONTROL MESSAGE (NODE INIT OR VER-       ;LW0012
    242					; IFICATION), A ROUTE HEADER IS BUILT.  THE ROUTE HEADER CONTAINS THE NAME      ;LW0012
    243					; OF THE 20XX SYSTEM AS THE DESTINATION AND THE NAME OF THE NODE ON THE WIRE    ;LW0012
    244					; WHICH RECEIVED THE MESSAGE AS THE SOURCE.  IN ORDER THAT THE ROUTE HEADER     ;LW0012
    245					; NOT OVERWRITE A PREVIOUS BUFFER, THE MESSAGE IS MOVED 16 BYTES FURTHER INTO   ;LW0012
    246					; THE BUFFER.                                                                   ;LW0012
    247					;                                                                               ;LW0012
    248					; INPUTS:                                                                       ;LW0012
    249					;	R4 = POINTER TO MSGFLGS                                                 ;LW0012
    250					;	R5 = ADDRESS OF THE MESSAGE CCB                                         ;LW0012
    251					;		C.BUF+2 - POINTER TO THE START OF MESSAGE [MSGFLGS]             ;LW0012
    252					;		C.CNT -   LENGTH OF THE MESSAGE (WITHOUT ROUTE HEADER)          ;LW0012
    253					;                                                                               ;LW0012
    254					; OUTPUTS:                                                                      ;LW0012
    255					;	C-BIT CLEAR                                                             ;LW0012
    256					;	R0 = POINTER TO DESTINATION NODE NAME                                   ;LW0012
    257					;	R3 = POINTER TO SOURCE NODE NAME                                        ;LW0012
    258					;	R4 = POINTER TO MSGFLGS                                                 ;LW0012
    259					;	R5 = ADDRESS OF MESSAGE CCB                                             ;LW0012
    260					;		C.BUF+2 - POINTER TO START OF MESSAGE [RTFLGS]                  ;LW0012
    261					;		C.CNT -   LENGTH OF MESSAGE (INCLUDING ROUTE HEADER)            ;LW0012
    262					;                                                                               ;LW0012
    263					;	C-BIT SET                                                               ;LW0012
    264					;	NO ROUTE HEADER BUILT                                                   ;LW0012
    265					;                                                                               ;LW0012
    266					; REGISTERS MODIFIED:                                                           ;LW0012
    267					;	R0,R1,R2,R3                                                             ;LW0012
    268					;                                                                               ;LW0012
    269					;-                                                                              ;LW0012
    270					                                                                                ;LW0012
    271						.IF DF N$$ICF                                                           ;LW0012
    272					BLDRTH:                                                                         ;LW0012
    273						CMPB	#1,C.LIN(R5)	; WAS MESSAGE RECEIVED FROM 20XX?               ;LW0012
    274						BHIS	20$		; IF SO OR LOCAL LINK THEN RTHDR NOT REQUIRED   ;AP0013
    275						BITB	#MF.CTL,(R4)	; IS THIS A CONTROL MESSAGE?                    ;LW0012
    276						BEQ	20$		; NOPE - RTHDR NOT REQUIRED                     ;LW0012
    277						CMPB	#MF.CTL!MC.ST,(R4) ; IS THIS A STARTUP CONTROL MESSAGE?         ;LW0012
    278						BEQ	20$		; YEP - RTHDR NOT REQUIRED                      ;LW0012
    279					                                                                                ;LW0012
    280						MOV	C.CNT(R5),R3	; GET LENGTH OF MESSAGE                         ;LW0012
    281						ADD	R3,R4		; POINT TO EOM+1                                ;LW0012
    282						MOV	R4,R2		; COPY POINTER                                  ;LW0012
    283						ADD	#16.,R4		; POINT TO NEW ADDRESS OF EOM+1                 ;LW0012
    284					10$:	MOVB	-(R2),-(R4)	; SLIDE ENTIRE MESSAGE...                       ;LW0012
    285						SOB	R3,10$		; ...UP THE BUFFER                              ;LW0012
    286						MOV	R4,C.BUF+2(R5)	; STORE POINTER TO NEW START OF MESSAGE         ;LW0012
    287						SAVRG	<R4>                                                            ;LW0012
    288						CLR	R0		; GET CHANNEL                                   ;LW0012
    289						BISB	C.LIN(R5),R0	; ...NUMBER                                     ;LW0012
    290						MOV	#P$LEN,R1	; GET LENGTH OF PLD ENTRY                       ;LW0012
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 5-1
BLDRTH - BUILD A ROUTE HEADER TO A MESSAGE

    291						CALL	$MUL		; COMPUTE OFFSET OF SOURCE PLD                  ;LW0012
    292						MOV	$NSDDB,R3	; GET ADDRESS OF DDB                            ;LW0012
    293						MOV	N$PLD+2(R3),R3	; ADDRESS PLD TABLE                             ;LW0012
    294						ADD	R3,R1		; ADDRESS SOURCE PLD ENTRY                      ;LW0012
    295						MOV	P$NOD(R1),R2	; GET POINTER TO SOURCE NODE NAME               ;LW0012
    296						MOV	P$LEN+P$NOD(R3),R3 ; GET POINTER TO DESTINATION NODE (20XX)     ;LW0012
    297						SAVRG	<R2,R3>		; SAVE NODE NAME POINTERS                       ;LW0012
    298						CLR	R0		; INDICATE NO LLT                               ;LW0012
    299						CALL	RTHDR		; BUILD THE ROUTE HEADER                        ;LW0012
    300						RESRG	<R0>		; RECOVER POINTER TO DESTINATION NODE           ;LW0012
    301						RESRG	<R3>		; RECOVER POINTER TO SOURCE NODE                ;LW0012
    302						RESRG	<R4>		; RECOVER POINTER TO MSGFLGS                    ;LW0012
    303						TST	(PC)+		; INDICATE ROUTE HEADER BUILT (SKIP NEXT)       ;LW0012
    304					20$:	SEC			; INDICATE NO ROUTE HEADER                      ;LW0012
    305						RETURN                                                                  ;LW0012
    306						.ENDC                                                                   ;LW0012
    307					                                                                                ;LW0012
    308					                                                                                ;LW0012
    309
    310
    311					;
    312					;  COMMON SYSTEM CRASH ENTRY
    313					;
    314	000136				CRASH::	CRASH			;
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 6
RENABL

    316						.SBTTL	RENABL
    317
    318					;++
    319					;RENABL
    320
    321					;INPUTS:
    322					;	R3 = SUBFUNCTION CODE
    323					;	R4=CCB ADDR                                                             ;AP0005
    324					;OUTPUTS:                                                                       ;**-1
    325					;	R5=CCB ADDR                                                             ;AP0005
    326
    327					;	THIS ROUTINE PROCESSES A CCB WITH C.FNC=FC.RCE. IT THEN
    328					;DISPATCHES TO THE APPROPRIATE ROUTINE.
    329
    330					;--
    331						.IF DF	N$$SYS
    332
    333	000140				RENABL::                                                                        ;AP0005
    334	000140	010405 				MOV	R4,R5		; COPY CCB ADDRESS                              ;AP0005
    335	000142					CALLR	@RENTBL(R3)	; DISPATCH                                      ;**-1
    336
    337	000146	000000G			RENTBL:	.WORD	USRRCV		; NT$RTN=0
    338	000150	000000G				.WORD	QNSPA		; NT$ACC=2
    339	000152	000000G				.WORD	QNSPA		; NT$REJ=4
    340	000154	000136'				.WORD	CRASH		; RESERVED FOR SINGLE MESSAGE
    341	000156	000000G				.WORD	USRRCI		; NT$RTI=10
    342
    343						.ENDC
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 7
XENABL

    345						.SBTTL	XENABL
    346					;++
    347					;XENABL
    348
    349					;INPUTS:
    350					;	R3 = SUBFUNCTION CODE
    351					;	R4=CCB ADDR                                                             ;AP0005
    352					;OUTPUTS:                                                                       ;AP0005
    353					;	R5=CCB ADDR                                                             ;AP0005
    354					                                                                                ;**-2
    355					;	THIS ROUTINE PROCESSES A CCB WITH FC.XME SET. IT THEN
    356					;DISPATCHES TO THE APPROPRIATE ROUTINE.
    357					;--
    358						.IF DF	N$$SYS
    359
    360	000160				XENABL::                                                                        ;AP0005
    361	000160	010405 				MOV	R4,R5		; COPY CCB ADDRESS                              ;AP0005
    362	000162					CALLR	@XENTBL(R3)	; DISPATCH                                      ;**-1
    363
    364	000166	000000G			XENTBL:	.WORD	QNSPA		; NT$CON=0 CONNECT INITIATE
    365	000170	000000G				.WORD	USRDAT		; NT$DAT=2 DATA MESSAGE
    366	000172	000000G				.WORD	USRINT		; NT$INT=4 INTERRUPT MESSAGE
    367	000174	000136'				.WORD	CRASH		; RESERVED FOR SINGLE MESSAGE
    368	000176	000000G				.WORD	QNSPA		; NT$DIS=10 DISCONNECT
    369	000200	000000G				.WORD	SYSMOD		; NT$MOD=12 MOD FLOW CONTROL                    ;AP0006
    370	000202	000000G				.WORD	USRQRY		; NT$QRY=14 QUERY                               ;**-1
    371	000204	000000G				.WORD	USRXON		; NT$XON=16 RELEASE BACKPRESSURE
    372	000206	000000G				.WORD	USRXOF		; NT$XOF=20 BACKPRESSURE
    373	000210	000000G				.WORD	QNSPA		; NT$ABO=22 ABORT
    374
    375						.ENDC
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 8
XMCMP

    377						.SBTTL	XMCMP
    378					;+
    379					; **-XMCMP-TRANSMIT COMPLETE
    380					;
    381					; THIS ROUTINE IS ENTERED WHEN A A CCB WITH A TRANSMIT COMPLETE
    382					; FUNCTION CODE IS DEQUEUED FOR THIS PROCESS.
    383					;
    384					; INPUTS:
    385					;
    386					;	R3 = SUBFUNCTION CODE FROM CCB
    387					;	R4 = ADDRESS OF CCB
    388					;
    389					; OUTPUTS TO PROCESSING ROUTINES:
    390					;
    391					;	R0 = ADDRESS OF LOGICAL LINK TABLE OR ZERO
    392					;	R5 = ADDRESS OF CCB
    393					;
    394					;-
    395						.ENABL	LSB
    396
    397	000212	010405 			XMCMP::	MOV	R4,R5		; COPY CCB ADDRESS
    398	000214	016500 	000004 			MOV	C.NSP(R5),R0	; LLT ADDR/0
    399	000220					CALLR	@XMCTBL(R3)	; DISPATCH
    400
    401
    402	000224				XMCACC:	CALL	FRBDAT		; DECREMENT THE TRANSMIT COUNT AND RELEASE THE BUFFER
    403	000230	122710 	000002 			CMPB	#ST$CC,(R0)	; HAVE WE CONFIRMED THE CONNECTION ?
    404	000234	001071 				BNE	40$		; IF NE, NO - JUST IGNORE THE MESSAGE
    405
    406						.IF DF	N$$LV2
    407						BR	20$
    408						.IFF
    409	000236					CALL	ENTDAT		; LINK WILL BE READY TO XMIT/RECV DATA
    410	000242	000466 				BR	40$		;
    411						.ENDC
    412
    413	000244	105360 	000005 		XMCDAT:	DECB	L.TIPD(R0)	; REDUCE DATA TRANSMITS IN PROGRESS
    414
    415						.IF DF	N$$SYS&N$$USR
    416	000250	105760 	000041 			TSTB	L.PDV(R0)	; SYSTEM OR USER INTERFACE?                     ;AP0005
    417	000254	001006 				BNE	2$		; SYSTEM                                        ;**-1
    418						.ENDC
    419
    420						.IF DF	N$$USR
    421	000256	016065 	000040 	000006 		MOV	L.ULA(R0),C.LIN(R5) ; GET ULA
    422	000264					CALL	$QXCP		; CALL QIO INTERFACE ROUTINE FOR XMIT COMPLETE
    423	000270	000453 				BR	40$		; GO TO COMMON CODE
    424						.ENDC
    425
    426						.IF DF	N$$SYS
    427	000272				2$:                                                                             ;AP0010
    428	000272	010003 				MOV	R0,R3		; PUT CCB ON WAIT TO BE ACKD QUE                ;**-4
    429	000274	062703 	000050 			ADD	#L.XQ2,R3
    430	000300					CALL	ADDQUE		; ADD CCB TO QUE
    431	000304					CALL	ACKDAT		; POST COMPLETION IF ALREADY ACK'D
    432	000310	000443 				BR	40$		;
    433						.ENDC
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 8-1
XMCMP

    434
    435	000312				XMCLS:
    436	000312				XMCINT:
    437	000312	105360 	000004 			DECB	L.TIPI(R0)	; REDUCE I/LS TRANSMITS IN PROGRESS
    438	000316	010003 				MOV	R0,R3		; POINT TO WAIT TO BE ACKD QUE FOR INT/LS MESSAGES
    439	000320	062703 	000052 			ADD	#L.XQ3,R3
    440	000324					CALL	ADDQUE		; PUT INT/LS SEGMENT ONTO QUE
    441	000330					CALL	ACKILS		; POST COMPLETION IF ALREADY ACK'D
    442	000334	000446 				BR	50$		;
    443
    444	000336				XMCCON:	CALL	FRBDAT		; DECREMENT TRANSMIT COUNT AND RELEASE THE DATA BUFFER
    445	000342	000426 				BR	40$		; ...CONTINUE
    446
    447						.IF DF	N$$LV2
    448					20$:	MOV	R5,L.XQ2(R0)	; WAIT FOR ACK OF CI MESSAGE?
    449						CALL	STRTMD		; START TIMER FOR CONNECT MESSAGE
    450						BR	30$
    451						.ENDC
    452
    453						.IF DF	N$$ICF
    454
    455					XMCIND:	DECB	I.TIPD(R0)	; REDUCE DATA TRANSMITS IN PROGRESS
    456						BR	25$
    457
    458					XMCINL:	DECB	I.TIPI(R0)	; REDUCE I/LS TRANSMITS IN PROGRESS
    459					25$:	CMPB	#ST$DIP,I.STA(R0)	      ; IF THE LINK IS                  ;LW0018
    460						BNE	XMCIDC			      ;   DISCONNECTING,                ;LW0018
    461						CMP	#ST$DID*400!ST$UDI,I.USTA(R0) ;   AND IT IS ABOUT TO DIE,       ;LW0016
    462						BNE	XMCIDC			      ;   AND THERE ARE NO              ;LW0016
    463						TST	I.TIPI(R0)		      ;   MORE TRANSMITS                ;LW0016
    464						BNE	XMCIDC			      ;   OUTSTANDING,                  ;LW0016
    465						CALL	REMLNK			      ;   TAKE OUT THE ILT              ;LW0016
    466					XMCIDC:	CMPB	#CB.RDB,C.BID(R5) ; IS THIS A RECEIVE DATA BUFFER?              ;LW0016
    467						BEQ	24$		; IF EQ, YES - UNSPAWN IT & CHECK POOL USE      ;**-1
    468						CALL	RLSSMS		; ELSE IT'S A SMALL DATA BUFFER, SO RELEASE IT
    469						BR	26$		; ...AND TRY TO RESUME DATA TRANSMISSION
    470
    471					24$:	CALL	UNSPWN		; RETURN LARGE DATA BUFFER
    472
    473						.IF DF	N$$CNC
    474						MOV	$NSDDB,R1	; GET THE ADDRESS OF THE DATA DESCRIPTOR BLOCK
    475						DECB	N$POL(R1)	; REDUCE THE NUMBER OF BUFFERS IN USE
    476						CMPB	N$POL(R1),N$UBN(R1) ; ARE THERE ENOUGH BUFFERS TO RESUME DATA ?
    477						BLT	27$		; NOT YET
    478						.IFTF
    479					26$:				;
    480						.IFT
    481						CALL	RELIEF		; RESTART DATA FLOW ON LINKS WERE MSG'S WERE TOSSED
    482						BCS	80$		; RESOURCE ERROR
    483						.ENDC
    484					27$:	BR	80$		;
    485						.ENDC
    486
    487
    488	000344				XMCAKD:			; REFERENCE LABEL                                       ;AP0008
    489					                                                                                ;AP0008
    490						.IF DF	N$$SYS                                                          ;AP0008
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 8-2
XMCMP

    491	000344					MAP	C.BUF(R5)	; MAP TO THE MESSAGE                            ;AP0008
    492	000352	016504 	000016 			MOV	C.BUF+2(R5),R4	; AND GET ITS ADDRESS.                          ;AP0008
    493	000356	112403 				MOVB	(R4)+,R3	; GET MSGFLAGS                                  ;AP0008
    494	000360	142703 	177767 			BICB	#^C10,R3	; AND IF DATA OR ACK MESSAGE                    ;AP0008
    495	000364	001013 				BNE	XMCDIS		; THEN                                          ;AP0008
    496	000366	116403 	000005 			MOVB	5(R4),R3	; CHECK IF ACKNUM PRESENT.                      ;AP0008
    497	000372	100010 				BPL	XMCDIS		; IF SO,                                        ;AP0008
    498	000374	042703 	177617 			BIC	#^C160,R3	; AND IT A NAK                                  ;AP0008
    499	000400	001405 				BEQ	XMCDIS		; THEN                                          ;AP0008
    500						.IF DF,N$$ICF                                                           ;LW0009
    501						BIT	#LF.INT,(R0)	; IF THIS IS A                                  ;LW0009
    502						BNE	XMCDIS		; LOCAL LINK, THEN                              ;LW0009
    503						.ENDC                                                                   ;LW0009
    504	000402	105760 	000041 			TSTB	L.PDV(R0)	; CHECK IF SYSTEM OR USER.                      ;AP0008
    505	000406	001402 				BEQ	XMCDIS		; IF SYSTEM USER                                ;AP0008
    506	000410					CALL	NAKUSR		; THEN SEND NAK COMPLETE.                       ;AP0008
    507						.ENDC                                                                   ;AP0008
    508					                                                                                ;AP0008
    509	000414				XMCDIS:	CALL	FRBDAT		; DECREMENT DATA COUNT AND RELEASE BUFFER       ;AP0008
    510	000420	105760 	000005 		40$:	TSTB	L.TIPD(R0)	; ALL DATA TRANSMITS COMPLETED ?                ;**-2
    511	000424	001025 				BNE	80$		; IF NE, YES - JUST EXIT
    512	000426					CALL	SNDAKD		; CHECK AND SEND AN ACK IF NECESSARY
    513	000432	032760 	000200 	000012 		BIT	#LF.NKR,L.FLG(R0) ; WAS RETRANSMISSION DELAYED ?
    514	000440	001417 				BEQ	80$		; IF EQ, NO - JUST EXIT
    515	000442					CALLR	NAKNSP		; OTHERWISE INITIATE RETRANSMISSION
    516
    517	000446				XMCAKI:	CALL	FRBILS		; DECREMENT I/LS COUNT AND RELEASE BUFFER
    518	000452	105760 	000004 		50$:	TSTB	L.TIPI(R0)	; HAVE ALL I/LS TRANSMITS COMPLETED ?
    519	000456	001010 				BNE	80$		; IF NE, NO - JUST EXIT
    520	000460					CALL	SNDAKI		; CHECK AND SEND AN I/LS ACK IF NECESSARY
    521	000464	032760 	000100 	000012 		BIT	#LF.INR,L.FLG(R0) ; WAS RETRANSMISSION DELAYED ?
    522	000472	001402 				BEQ	80$		; IF EQ, NO - JUST EXIT
    523	000474					CALLR	RETLS		; OTHERWISE INITIATE RETRANSMISSION
    524
    525	000500				80$:	RETURN			; RETURN TO CALLER
    526
    527	000502	000336'			XMCTBL:	.WORD	XMCCON		; NT$CON=0 CONNECT INITIATE
    528	000504	000244'				.WORD	XMCDAT		; NT$DAT=2 DATA MESSAGE
    529	000506	000312'				.WORD	XMCINT		; NT$INT=4 INTERRUPT MESSAGE
    530	000510	000136'				.WORD	CRASH		; RESERVED FOR SINGLE MESSAGE
    531	000512	000414'				.WORD	XMCDIS		; NT$DIS=10 DISCONNECT
    532	000514	000224'				.WORD	XMCACC		; NT$CC =12 CONNECT ACCEPT
    533	000516	000312'				.WORD	XMCLS		; NT$LS =14 LINK STATUS
    534	000520	000344'				.WORD	XMCAKD		; NT$AKD=16 DATA ACK/NAK MESSAGE
    535	000522	000446'				.WORD	XMCAKI		; NT$AKI=20 I/LS ACK/NAK MESSAGE
    536	000524	000000G				.WORD	UNSPWN		; NT$ROU=22 ROUTED MESSAGE
    537
    538						.IF DF	N$$ICF
    539
    540						.WORD	XMCIND		; NT$IND=24 DATA MESSAGE FORWARDED BY INTERCEPT NOD
    541									; ... ALSO CI,CC,DI,DC
    542						.WORD	XMCINL		; NT$INL=26 I/LS MESSAGE FORWARDED BY INTERCEPT NODE
    543						.WORD	FRBDAT		; NT$IDN=30 NAK SENT BY INT'CEPT NODE (DATA)    ;AP0017
    544						.WORD	FRBILS		; NT$ILN=32 NAK SENT BY INT'CEPT NODE (I/LS)    ;AP0017
    545						.WORD	XMCIDC		; NT$IDC=34 DC MESSAGE FORWARDED BY I'CPT       ;LW0002
    546					                                                                                ;**-2
    547						.ENDC
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 8-3
XMCMP

    548
    549						.DSABL	LSB
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 9
RELIEF

    551						.SBTTL	RELIEF
    552
    553					;++
    554					;RELIEF
    555
    556					;INPUTS:
    557					;	NONE
    558					;OUTPUTS:
    559					;	C BIT SET IF RESOURCE ERROR
    560
    561					;	THIS ROUTINE WILL SEARCH ALL LINKS TO SEE IF A DATA OF I/LS
    562					;MESSAGE WAS TOSSED. IF SO THEN A NAK WILL BE SENT TO THAT LINK TO
    563					;RESUME DATA FLOW. IF A RESOURCE ERROR OCCURS THEN THE SEARCH WILL BE
    564					;STOPPED AND RESUMED AT THE NEXT ENTRY TO XCMPLT.
    565
    566					;--
    567
    568
    569						.IF DF	N$$ICF
    570						.IF DF	N$$CNC
    571
    572					RELIEF:
    573						SAVRG	<R0,R1,R2>
    574						MOV	#N$$LNK,R1		;MAX # OF LINKS
    575					10$:	MOV	R1,R0
    576						ASL	R0			;WORD INDEX
    577						MOV	$NTLVC(R0),R0	;GET ILT
    578						BEQ	30$		;TRY NEXT ENTRY
    579						BIT	#IF.INT,I.FLG(R0) ;INTERCEPT LINK
    580						BEQ	30$		;NO..TRY NEXT ENTRY
    581						CMPB	#ST$DIP,I.STA(R0) ;ARE WE IN PROCESS OF DISCONNTECING LINK?
    582						BEQ	30$		;YES..NO SENNSE SENDING NAK
    583						BIT	#IF.SND,I.FLG(R0) ;WAS A DATA SEG TOSSED?
    584						BEQ	20$		;NO
    585						MOV	#100003,R2	;NAK FOR DATA
    586						CALL	SNDAK1		;SEND NAK
    587						BCS	40$		;RESOURCE ERROR
    588					; TEMPORARY DEBUG AID
    589						INC	L.XQ1(R0)	;KEEP TRACK OF NAKS SENT
    590					;
    591						CALL	NAKINT		;SEND NAK ON ITS WAY
    592						BIC	#IF.SND,I.FLG(R0) ;NAK HAS BEEN SENT
    593					20$:	BIT	#IF.SNL,I.FLG(R0) ;WAS A I/LS SEG TOSSED?
    594						BEQ	30$		;NO
    595						MOV	#100004,R2	;NAK I/LS
    596						CALL	SNDAKL		;SEND NAK
    597						BCS	40$		;RESOURCE ERROR
    598					; TEMPORARY DEBUG AID
    599						INC	L.XQ2(R0)	;KEEP TRACK OF NAKS SENT
    600					;
    601						CALL	NAKINT		;SEND NAK ON ITS WAY
    602						BIC	#IF.SNL,I.FLG(R0) ;NAK HAS BEEN SENT
    603
    604					30$:	SOB	R1,10$		;LOOP
    605						CLC
    606					40$:	RESRG	<R2,R1,R0>
    607						RETURN
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 9-1
RELIEF

    608
    609						.ENDC
    610						.ENDC
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 10
NAKINT

    612						.SBTTL	NAKINT
    613
    614					;++
    615					;NAKINT
    616
    617					;INPUTS:
    618					;	R5=CCB ADDRESS
    619					;	R0=ILT ADDRESS
    620					;OUTPUTS:
    621					;	NONE
    622
    623					;	THIS ROUTINE WILL FORWARD A NAK FOR A DATA OR I/LS MSG
    624					;THRU THE INTERCEPT CODE. THIS WILL ENABLE THE NAK TO GET TO THE PROPER
    625					;NODE AND PROPER LINK IN THE NODE.
    626
    627					;--
    628						.IF DF 	N$$ICF&N$$CNC
    629
    630					NAKINT:
    631						SAVRG	<R0,R1,R3,R4>
    632						MAP	C.BUF(R5)	;MAP TO MESSAGE JUST BUILT
    633						MOV	C.BUF+2(R5),R4	;SET UP MSG PTR TO MSGFLGS
    634						MOV	I.IREM(R0),R3	;SOURCE NODE INDEX
    635						MOV	I.REM(R0),R0	;DESTINATION NODE INDEX
    636						CALL	XINCPT		;FORWARD NAK TO INTERCEPTED NODE
    637						BCS	10$		;TOSS MSG
    638						RESRG	<R4,R3,R1,R0>
    639						RETURN
    640
    641					10$:	CRASH
    642
    643						.ENDC
    644
    645		000001 				.END
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 10-1
SYMBOL TABLE

ACKDAT= ****** GX	C.BID   000003   	ER$TCN= 000040   	KDSAR0= 172360   	L.LSA   000032
ACKILS= ****** GX	C.BUF   000014   	ER$TCO= 000041   	KDSDR0= 172320   	L.LSF   000044
ACKMAS= 170000   	C.BUF1  000014   	ER$TPA= 000010   	KISAR0= 172340   	L.LVL   000001
ACKPRE= 100000   	C.BUF2  000024   	ER$UOB= 000004   	KISAR5= 172352   	L.NDA   000034
ACKRES= 060000   	C.CNT   000020   	E$$XPR= 000000   	KISAR6= 172354   	L.NIN   000016
ACKWRA= 010000   	C.CNT1  000020   	FC.CCP= 000020   	KISAR7= 172356   	L.NLA   000036
ADDQUE= ****** GX	C.CNT2  000030   	FC.CTL= 000006   	KISDR0= 172300   	L.NSTA  000025
A$$CHK= 000000   	C.FLG   000022   	FC.KCP= 000016   	KISDR6= 172314   	L.NXN   000014
A$$CPS= 000000   	C.FLG1  000022   	FC.KIL= 000004   	KISDR7= 172316   	L.PDV   000041
A$$PRI= 000000   	C.FLG2  000032   	FC.RCE= 000002   	K$$CNT= 177546   	L.REM   000006
A$$TRP= 000000   	C.FNC   000010   	FC.RCP= 000014   	K$$CSR= 177546   	L.RLA   000010
A.NAK = 010000   	C.LIN   000006   	FC.TIM= 000010   	K$$LDC= 000000   	L.RNO   000020
CB.CCB= 000002   	C.LNK   000000   	FC.XCP= 000012   	K$$TPS= 000074   	L.STA   000000
CB.RDB= 000004   	C.MOD   000011   	FC.XME= 000000   	LA.ACK= 100000   	L.TC    000042
CE.ABO= 100362   	C.NSP   000004   	FE.CAL= 000040   	LA.MSK= 170000   	L.TIC   000043
CE.DIS= 100366   	C.RSV   000002   	FE.DRV= 000010   	LA.NAK= 110000   	L.TIPD  000005
CE.ERR= 100370   	C.STA   000007   	FE.EXP= 000200   	LA.NMS= 010000   	L.TIPI  000004
CE.MOP= 100372   	C.STS   000012   	FE.EXT= 000001   	LA.RES= 060000   	L.UDQ   000034
CE.NTE= 100361   	DF$ADJ= 020000   	FE.EXV= 000004   	LD$LP = 000000   	L.ULA   000040
CE.RTE= 100376   	DF$DWN= 001000   	FE.LSI= 000400   	LF.DFL= 000060   	L.USA   000030
CE.SRC= 100364   	DF$FRE= 070000   	FE.MUP= 000002   	LF.DSP= 000040   	L.USTA  000024
CE.TMO= 100374   	DF$LCL= 040000   	FE.MXT= 040000   	LF.DST= 000020   	L.XQ1   000046
CF.EOM= 000004   	DF$LNK= 004000   	FE.NLG= 100000   	LF.FPN= 000010   	L.XQ2   000050
CF.HDR= 000020   	DF$REM= 010000   	FE.PKT= 000100   	LF.HF0= 001000   	L.XQ3   000052
CF.LB = 100000   	DF$RES= 002000   	FE.PLA= 000020   	LF.HMF= 020000   	MA.DA = 000000
CF.SOM= 000010   	DF$TMP= 100000   	FRBDAT= ****** GX	LF.HSF= 010000   	MA.IL = 000020
CF.SYN= 000040   	D$CHN   000002   	FRBILS= ****** GX	LF.INR= 000100   	MC.CC = 000040
CF.TRN= 000100   	D$FLG   000000   	FS.AST= 000000   	LF.INT= 000400   	MC.CI = 000020
CL$ACK= 000040   	D$LEN   000014   	FS.CIB= 002000   	LF.LCL= 040000   	MC.DC = 000100
CL$MFL= 000010   	D$LNG   000005   	FS.CRA= 001000   	LF.MMF= 100000   	MC.DI = 000060
CL$NRM= 000020   	D$NAM   000006   	FS.DIS= 013000   	LF.MSF= 040000   	MC.NO = 000000
CL$SFL= 000004   	D$USE   000004   	FS.DVC= 001000   	LF.NKR= 000200   	MC.ST = 000120
CL$TYP= 000001   	D$$BUG= 177514   	FS.ENB= 012000   	LF.NKS= 000400   	MD.BM = 000040
CL.MU1= 000001   	D$$ISK= 000000   	FS.GET= 006000   	LF.NPN= 000001   	MD.EM = 000100
CL.MU2= 000002   	D$$L11= 000001   	FS.INI= 000000   	LF.NTS= 002000   	MD.ILS= 000040
CL.RES= 177774   	D$$YNC= 000000   	FS.KIL= 000000   	LF.RSU= 100000   	MD.IM = 000020
CMODE = 140000   	D$$YNM= 000000   	FS.LTM= 001000   	LS.DLS= 000200   	MF.ACK= 000004
CRASH   000136RG    002	ENTDAT= ****** GX	FS.MNT= 004000   	LS.FCC= 000004   	MF.CTL= 000010
CS.ABO= 000100   	ER$ABO= 000046   	FS.MSN= 014000   	LS.FC0= 000001   	MF.DAT= 000000
CS.BUF= 000200   	ER$ABT= 000011   	FS.RNG= 011000   	LS.FC1= 000002   	MPAR  = 172100
CS.DCR= 000400   	ER$ACC= 000042   	FS.RTN= 001000   	LS.ILS= 000200   	MPCSR = 177746
CS.DEV= 000002   	ER$ACT= 000044   	FS.SET= 005000   	LS.MAK= 000020   	MSGHDR= 000007
CS.DIS= 000040   	ER$CDI= 000052   	FS.STM= 000000   	LS.MNK= 000040   	M$$CRB= 000124
CS.ENB= 000020   	ER$COM= 000047   	FS.STP= 002000   	LS.RES= 000360   	M$$CRX= 000000
CS.EOF= 000001   	ER$FCF= 000050   	FS.STR= 001000   	LS.RSV= 000300   	M$$FCS= 000000
CS.ERR= 100000   	ER$FMT= 000005   	FS.TRM= 003000   	L$$ASG= 000000   	M$$MGE= 000000
CS.HFE= 002000   	ER$GEN= 000007   	FS.XKL= 002000   	L$$DRV= 000000   	M$$OVR= 000000
CS.LST= 040000   	ER$IFC= 000030   	FS.XOF= 010000   	L$$P11= 000001   	NAKNSP= ****** GX
CS.MTL= 004000   	ER$ILS= 000043   	FS.XON= 007000   	L$$11R= 000000   	NAKUSR= ****** GX
CS.RNG= 000010   	ER$IMG= 000053   	F$$LVL= 000001   	L.CIQ   000026   	NC.FM0= 000000
CS.ROV= 000004   	ER$MLB= 000006   	GTNOD = ****** GX	L.DCR   000036   	NC.FM1= 000001
CS.RSN= 010000   	ER$NOD= 000002   	G$$TPP= 000000   	L.FLG   000012   	NC.FM2= 000002
CS.SUC= 000001   	ER$NSD= 000003   	G$$TSS= 000000   	L.LDA   000024   	NETTIM= 000005
CS.TMO= 020000   	ER$RES= 000001   	G$$TTK= 000000   	L.LIA   000026   	NE.ABO= 177776
C$$CKP= 000000   	ER$SSR= 000000   	G$$WRD= 000000   	L.LLA   000002   	NE.ACT= 177771
C$$ORE= 000400   	ER$SSS= 000045   	I$$RAR= 000000   	L.LNG1  000054   	NE.CLS= 177767
C$$RSH= 177564   	ER$STA= 000051   	I$$RDN= 000000   	L.LNO   000022   	NE.DIS= 177777
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 10-2
SYMBOL TABLE

NE.FMT= 177770   	NT$XOF= 000020   	N.RQID  000062   	Q$$OPT= 000010   	S$UNI   000020
NE.NDT= 177766   	NT$XON= 000016   	N.RSRV= 000030   	RCVBLK  000000RG    002	S$$WRG= 000000
NE.NOD= 177774   	NT.ACK= 000001   	N.SDL1  000036   	RCVCMP  000000RG    002	S$$YSZ= 007600
NE.REJ= 177775   	NT.BOM= 000040   	N.SDL2  000042   	RCVMSG= ****** GX	TPS   = 177564
NE.RES= 177773   	NT.EOM= 000100   	N.SDS1  000040   	RENABL  000140RG    002	T$$KMG= 000000
NE.TIM= 177772   	NT.FCN= 037400   	N.SDS2  000056   	RENTBL  000146R     002	T$$MIN= 000000
NI.FLI= 000002   	NT.MD1= 000420   	N.SEG   000006   	RETLS = ****** GX	UBMPR = 170200
NI.FRI= 000004   	NT.MFL= 000002   	N.SFMT  000034   	RF.CLN= 000000   	UDSAR0= 177660
NI.FRT= 000001   	NT.MOD= 000020   	N.SGRP  000036   	RF.CTL= 000003   	UDSDR0= 177620
NI.FUB= 000010   	NT.MOM= 000000   	N.SOBJ  000035   	RF.TIM= 177400   	UISAR0= 177640
NI.INI= 000001   	NT.NAK= 000002   	N.SUSR  000040   	RF.TM0= 000400   	UISAR4= 177650
NI.RLI= 000002   	NT.NFL= 000000   	PF$EIP= 000100   	RF.WTD= 000020   	UISAR5= 177652
NI.RRI= 000004   	NT.SFL= 000001   	PF$ENB= 000200   	RF.WTM= 000030   	UISAR6= 177654
NI.RVE= 000001   	NT.SOL= 000140   	PF$OFF= 000000   	RF.WTS= 000010   	UISAR7= 177656
NI.VER= 000002   	NT.XOF= 000004   	PF$RLI= 000002   	RH.CNT= 000001   	UISDR0= 177600
NP$RTR= 000003   	NT.XON= 000010   	PF$RRI= 000004   	RH.EFM= 000020   	UISDR4= 177610
NS.BOM= 000040   	N$ACQ   000000   	PF$RVE= 000001   	RH.HDR= 000002   	UISDR5= 177612
NS.EOM= 000100   	N$ICF   000006   	PF$RVR= 000040   	RH.PRI= 000014   	UISDR6= 177614
NS.MFL= 000003   	N$LNI   000010   	PF$SLI= 000002   	RH.PR1= 000004   	UISDR7= 177616
NS.MOM= 000000   	N$LVC   000022   	PF$SRI= 000004   	RH.RFM= 000100   	UNSPWN= ****** GX
NS.NFL= 000001   	N$NOD   000032   	PF$SRT= 000001   	R$$DER= 000000   	USRDAT= ****** GX
NS.SET= 000002   	N$PLD   000026   	PF$STA= 000003   	R$$K11= 000001   	USRINT= ****** GX
NS.SFL= 000002   	N$STS   000042   	PF$SUB= 000010   	R$$SND= 000000   	USRQRY= ****** GX
NS.SOL= 000140   	N$TCB   000004   	PF$UP = 000001   	R$$11M= 000000   	USRRCI= ****** GX
NS.SUC= 000001   	N$TMP   000012   	PIRQ  = 177772   	SISDR0= 172200   	USRRCV= ****** GX
NT$ABO= 000022   	N$VER   000036   	PMODE = 030000   	SNDAKD= ****** GX	USRXOF= ****** GX
NT$ACC= 000002   	N$$DAT= 000030   	PR0   = 000000   	SNDAKI= ****** GX	USRXON= ****** GX
NT$ADS= 000000   	N$$DIS= 000020   	PR1   = 000040   	SR0   = 177572   	VF$RCV= 100000
NT$AKD= 000016   	N$$INT= 000020   	PR4   = 000200   	SR3   = 172516   	VF$XMT= 040000
NT$AKI= 000020   	N$$LDV= 000001   	PR5   = 000240   	ST$CC = 000002   	V$FLG   000000
NT$CC = 000012   	N$$MOV= 000010   	PR6   = 000300   	ST$CIR= 000003   	V$LEN   000022
NT$CON= 000000   	N$$OPT= 000020   	PR7   = 000340   	ST$CIS= 000001   	V$RCV   000002
NT$DAT= 000002   	N$$OVR= 000042   	PS    = 177776   	ST$DAT= 000005   	V$XMT   000012
NT$DIS= 000010   	N$$SYS= 000001   	PS$NTI= 000003   	ST$DID= 000015   	V$$CTR= 001000
NT$IDC= 000034   	N$$USR= 000001   	PS$OFF= 000000   	ST$DIP= 000006   	WINDOW= 004000
NT$IDN= 000030   	N.ACNT  000116   	PS$STR= 000001   	ST$DIR= 000012   	XENABL  000160RG    002
NT$ILN= 000032   	N.ACTL  000114   	PS$UP = 000005   	ST$DIS= 000014   	XENTBL  000166R     002
NT$IND= 000024   	N.DDL1  000012   	PS$VER= 000004   	ST$UDI= 000013   	XMCACC  000224R     002
NT$INL= 000026   	N.DDL2  000016   	PS$WT = 000002   	ST$UNR= 000011   	XMCAKD  000344R     002
NT$INT= 000004   	N.DDS1  000014   	P$CHN   000004   	SWR   = 177570   	XMCAKI  000446R     002
NT$LS = 000014   	N.DDS2  000020   	P$CNT   000005   	SYSMOD= ****** GX	XMCCON  000336R     002
NT$MOD= 000012   	N.DFMT  000010   	P$FRQ   000012   	S$EMR   000006   	XMCDAT  000244R     002
NT$NAK= 000022   	N.DGRP  000012   	P$FSP   000013   	S$FMT   000012   	XMCDIS  000414R     002
NT$OFF= 000026   	N.DOBJ  000011   	P$LCD   000002   	S$LEN   000040   	XMCINT  000312R     002
NT$ON = 000002   	N.DUSR  000014   	P$LEN   000014   	S$LNK   000022   	XMCLS   000312R     002
NT$QRY= 000014   	N.LGTH= 000160   	P$LST   000000   	S$MLK   000024   	XMCMP   000212RG    002
NT$REJ= 000004   	N.NODE  000000   	P$NOD   000010   	S$NKS   000010   	XMCTBL  000502R     002
NT$ROU= 000022   	N.OPDL  000136   	P$PFQ   000006   	S$RES   000014   	X$$DBT= 000000
NT$RTI= 000010   	N.OPTD  000140   	P$TIM   000003   	S$SEC   000000   	$MUL  = ****** GX
NT$RTN= 000000   	N.PASL  000102   	P$$P45= 000000   	S$SNI   000016   	$NSDDB= ****** GX
NT$SNG= 000006   	N.PASS  000104   	P$$WRD= 000000   	S$UMR   000004   	$QXCP = ****** GX
NT$STP= 000004   	N.RQDL  000060   	QNSPA = ****** GX	S$UMS   000002

. ABS.	000160	   000
      	000000	   001
NSPCP 	000526	   002
ERRORS DETECTED:  0
NSPCP	MACRO M1110  13-OCT-79 10:02  PAGE 10-3
SYMBOL TABLE


VIRTUAL MEMORY USED:  18437 WORDS  ( 73 PAGES)
DYNAMIC MEMORY:  19564 WORDS  ( 75 PAGES)
ELAPSED TIME:  00:00:46
NSPCP,[131,34]NSPCP/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]NSPCP
NSPCP      CREATED BY  MACRO  ON 13-OCT-79 AT 10:03	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ACKDAT	= ******  GX	 8-431     
ACKILS	= ******  GX	 8-441     
ADDQUE	= ******  GX	 8-430      8-440     
CRASH 	  000136 RG	#5-314      6-340      7-367      8-530     
C.BUF 	  000014	 4-131      4-132      8-491      8-492     
C.LIN 	  000006	 4-211     *8-421     
C.NSP 	  000004	 8-398     
DF$LCL	= 040000	 4-146     
ENTDAT	= ******  GX	 8-409     
FRBDAT	= ******  GX	 8-402      8-444      8-509     
FRBILS	= ******  GX	 8-517     
GTNOD 	= ******  GX	 4-141      4-152     
KISAR6	= 172354	*4-131     *8-491     
LF.INR	= 000100	 8-521     
LF.NKR	= 000200	 8-513     
L.FLG 	  000012	 8-513      8-521     
L.PDV 	  000041	 8-416      8-504     
L.TIPD	  000005	*8-413      8-510     
L.TIPI	  000004	*8-437      8-518     
L.ULA 	  000040	 8-421     
L.XQ2 	  000050	 8-429     
L.XQ3 	  000052	 8-439     
M$$MGE	= 000000	 4-131      8-491     
NAKNSP	= ******  GX	 8-515     
NAKUSR	= ******  GX	 8-506     
N$PLD 	  000026	 4-221     
N$$CNC	= ******	 10-628    
N$$ICF	= ******	 3-1        3-2        4-143      5-271      8-453      8-500      8-538      9-569      10-628    
N$$LV2	= ******	 8-406      8-447     
N$$SYS	= 000001	 3-104      6-331      7-358      8-415      8-426      8-490     
N$$USR	= 000001	 3-104      8-415      8-420     
P$LEN 	  000014	 4-212     
P$NOD 	  000010	 4-222     
QNSPA 	= ******  GX	 6-338      6-339      7-364      7-368      7-373     
RCVBLK	  000000 RG	#4-129     
RCVCMP	  000000 RG	#4-128     
RCVMSG	= ******  GX	 4-226     
RENABL	  000140 RG	#6-333     
RENTBL	  000146 R	 6-335     #6-337     
RETLS 	= ******  GX	 8-523     
RH.HDR	= 000002	 4-133      4-135     
RH.PRI	= 000014	 4-135     
RH.RFM	= 000100	 4-135      4-137     
R$$EIS	= ******	 4-214     
SNDAKD	= ******  GX	 8-512     
SNDAKI	= ******  GX	 8-520     
ST$CC 	= 000002	 8-403     
SYSMOD	= ******  GX	 7-369     
UNSPWN	= ******  GX	 4-229      8-536     
USRDAT	= ******  GX	 7-365     
USRINT	= ******  GX	 7-366     
USRQRY	= ******  GX	 7-370     
NSPCP      CREATED BY  MACRO  ON 13-OCT-79 AT 10:03	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

USRRCI	= ******  GX	 6-341     
USRRCV	= ******  GX	 6-337     
USRXOF	= ******  GX	 7-372     
USRXON	= ******  GX	 7-371     
XENABL	  000160 RG	#7-360     
XENTBL	  000166 R	 7-362     #7-364     
XMCACC	  000224 R	#8-402      8-532     
XMCAKD	  000344 R	#8-488      8-534     
XMCAKI	  000446 R	#8-517      8-535     
XMCCON	  000336 R	#8-444      8-527     
XMCDAT	  000244 R	#8-413      8-528     
XMCDIS	  000414 R	 8-495      8-497      8-499      8-505     #8-509      8-531     
XMCINT	  000312 R	#8-436      8-529     
XMCLS 	  000312 R	#8-435      8-533     
XMCMP 	  000212 RG	#8-397     
XMCTBL	  000502 R	 8-399     #8-527     
$MUL  	= ******  GX	 4-217     
$NSDDB	= ******  GX	 4-220     
$QXCP 	= ******  GX	 8-422     
NSPCP      CREATED BY  MACRO  ON 13-OCT-79 AT 10:03	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		 4-141      4-152      4-217      4-226      4-229      8-402      8-409      8-422      8-430      8-431     
                 8-440      8-441      8-444      8-506      8-509      8-512      8-517      8-520     
CALLR 		#6-335     #7-362     #8-399     #8-515     #8-523     
CCBDF$		#3-100      3-101     
CRASH 		#5-314     
HWDDF$		#4-131     #4-131     #8-491     #8-491     
MAP   		#3-99      #4-131     #8-491     
NSPSY$		#3-100      3-102     
RESRG 		#3-99      
RETURN		 4-230      8-525     
SAVRG 		#3-99