Google
 

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

     4-  120	$QCIR - CONNECT INITIATE RECEIVED
     5-  216	FNDTSK - FIND TASK'S TCB
     6-  268	SRMBQ - SEARCH QUEUE OF MAILBOXES
     7-  301	$QCCR - CONNECT CONFIRM RECEIVED
     8-  345	$QCRR - CONNECT REJECT RECEIVED
     9-  391	CNCMP - COMMON CONNECT INITIATE COMPLETION PROCESSING
    10-  439	$QDIR - DISCONNECT RECEIVED
    11-  492	$QDIC - DISCONNECT COMPLETE
    12-  554	$QINTR - INTERRUPT MESSAGE RECEIVED
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 3


      1					.IIF NDF V$$ER1	.TITLE NSRCV
      2					.IIF DF V$$ER1	.TITLE NSRCV1
      3						.IDENT	/V01.00/
      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 CONNECT/DISCONNECT RECEIVED PROCESSOR
     28					;
     29					;
     30					;
     31					; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
     32					;
     33					; IDENT HISTORY:
     34					;
     35					; 1.00	10-FEB-78
     36					;	VERSION 2.0 RELEASE
     37					;
     38
     39					; LIBRARY MACROS
     40					;
     41
     42						.MCALL	SAVRG,RESRG,$MVTBF,MAP,RECMAP
     43
     44						.MCALL	CCBDF$,NSPSY$
     45	000000					CCBDF$			;DEFINE CCB OFFSETS
     46	000000					NSPSY$			;DEFINE NSP INTERNAL SYMBOLS
     47
     48						.MCALL	MBXDF$,LLWDF$,DVBDF$
     49	000000					MBXDF$			;DEFINE MAILBOX OFFSETS
     50	000000					LLWDF$			;DEFINE WINDOW BLOCK OFFSETS
     51	000000					DVBDF$			;DEFINE VCB OFFSETS
     52
     53						.MCALL	CRBDF$,CNBDF$,NSSYM$
     54	000000					CRBDF$			;DEFINE CONNECT REQUEST BLOCK OFFSETS
     55	000000					CNBDF$			;DEFINE CONNECT PENDING BLOCK OFFSETS
     56	000000					NSSYM$			;DEFINE DEVICE RETURN VALUES
     57
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 3-1


     58					;
     59					; LOCAL MACROS
     60					;
     61					;
     62					; PUSH AND POP STACK INSTRUCTIONS
     63					;
     64
     65						.MACRO	PUSH	S
     66						.IRP	SS,<S>
     67						MOV	SS,-(SP)
     68						.ENDR
     69						.ENDM	PUSH
     70
     71						.MACRO	POP	D
     72						.IRP	DD,<D>
     73						MOV	(SP)+,DD
     74						.ENDR
     75						.ENDM	POP
     76
     77					;
     78					; MOVE BYTE TO REGISTER WITH NO SIGN EXTEND
     79					;
     80
     81						.MACRO	MOVBNS	X,Y
     82						CLR	Y
     83						BISB	X,Y
     84						.ENDM
     85
     86					;
     87					; LOCAL DATA
     88					;
     89					;
     90					; CONNECT INITIATE REJECT CODES
     91					;
     92
     93	000000	000003 			CIRTAB:	.WORD	ER$NSD		;NODE SHUTTING DOWN (ACP DISMOUNTING)
     94	000002	000004 				.WORD	ER$UOB		;PROCESS DOESN'T EXIST (NOT INSTALLED)
     95	000004	000041 				.WORD	ER$TCO		;TOO MANY CONNECTS TO TASK
     96
     97					;
     98					; STATUS RETURN CODES FOR CONNECT CONFIRM
     99					;
    100
    101						.IF DF	V$$ER1
    102						.WORD	IS.SUC&377	;CONNECT ACCEPTED
    103						.ENDC
    104
    105	000006	000000C			CCRTAB:	.WORD	IS.SUC&377	;CONNECT ACCEPTED
    106	000010	000002 				.WORD	IS.DAO&377	;CONNECT ACCEPTED - DATA OVERRUN
    107
    108					;
    109					; STATUS RETURN CODES FOR CONNECT REJECT
    110					;
    111
    112						.IF DF	V$$ER1
    113						.WORD	IE.CNR&377	;CONNECTION REJECTED
    114						.ENDC
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 3-2


    115
    116	000012	000266 			CRRTAB:	.WORD	IE.NRJ&377	;CONNECT ABORTED - NETWORK
    117	000014	000267 				.WORD	IE.URJ&377	;CONNECTION REJECTED - USER
    118	000016	000000C				.WORD	IE.DAO&377	;CONNECTION REJECTED - DATA OVERRUN
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 4
$QCIR - CONNECT INITIATE RECEIVED

    120					.SBTTL	$QCIR - CONNECT INITIATE RECEIVED
    121
    122					;+
    123					; ** - $QCIR - CONNECT INITIATE RECEIVED
    124					;
    125					; THIS ROUTINE IS CALLED BY NSP WHENEVER IT RECEIVES A CONNECT
    126					; INITIATE FOR EITHER AN OBJECT TYPE 0 PROCESS OR A NON-ZERO
    127					; OBJECT TYPE PROCESS WHICH RESIDES IN USER TASK SPACE.  IF THE
    128					; TASK EXISTS (IS INSTALLED) ON THE SYSTEM, THE CONNECT IS
    129					; EITHER PLACED IN THE TASK'S MAILBOX QUEUE IF THE TASK HAS
    130					; ACCESSED THE NETWORK,
    131					; ACCESSED THE NETWORK OR IT IS QUEUED TO THE GENERAL DELIVERY
    132					; QUEUE AND THE TASK IS REQUESTED.
    133					;
    134					; INPUTS:
    135					;
    136					;	R5 -> CCB
    137					;		C.NSP =	LLA
    138					;		C.STS =	[NS.NFL/NS.SFL/NS.MFL]
    139					;		C.BUF -> CONBLK (CONNECT PENDING BLOCK)
    140					;
    141					; OUTPUTS:
    142					;
    143					;	IF TASK EXISTS,
    144					;		IF TASK HAS MAILBOX,
    145					;			PUT CONNECT CCB IN MAILBOX QUEUE
    146					;			IF REQUIRED, SPRING NETWORK DATA AST
    147					;		ELSE,
    148					;			PUT CONNECT CCB IN GENERAL DELIVERY QUEUE
    149					;			START TIMER IF NECESSARY ON GEN. DEL. QUEUE
    150					;			REQUEST TASK TO RUN
    151					;	ELSE,
    152					;		REJECT CONNECTION
    153					;-
    154
    155	000020				$QCIR::	CALL	$SAVAL		;;SAVE ALL REGISTERS
    156	000024	016565 	000004 	000006 		MOV	C.NSP(R5),C.LIN(R5) ;;MOVE LLA
    157	000032	012701 	000000'			MOV	#CIRTAB,R1	;;REJECT CODE TABLE
    158	000036	105767 	000000G			TSTB	$NSDMF		;;DECNET ACP DISMOUNTING ?
    159	000042	001053 				BNE	25$		;;IF NE, YES - GO REJECT CI
    160	000044	005721 				TST	(R1)+		;;ASSUME TASK NOT INSTALLED
    161	000046	016500 	000016 			MOV	C.BUF+2(R5),R0	;;GET POINTER TO CONBLK
    162	000052	016065 	000006 	000022 		MOV	N.SEG(R0),C.FLG(R5) ;;STORE RECEIVED SEGMENT SIZE IN THE CCB
    163	000060					SAVRG	R1		;;SAVE REJECT CODE TABLE ADDRESS
    164	000062					CALL	FNDTSK		;;SEE IF TASK EXISTS ON OUR SYSTEM
    165	000066					RESRG	R1		;;RESTORE REJECT CODE TABLE ADDRESS
    166	000070	103440 				BCS	25$		;;IF CS - TASK IS NOT AVAILABLE, REJECT CONNECT
    167	000072	005721 				TST	(R1)+		;;ASSUME TOO MANY CONNECTS
    168	000074	010065 	000004 			MOV	R0,C.NSP(R5)	;;STORE TCB ADDRESS IN CI CCB
    169
    170						.IF DF	V$$ER1
    171						BIT	#T3.NET,T.ST3(R0) ;;VERSION 1 OR VERSION 2 INTERFACE?
    172						BEQ	10$		;;IF EQ, VERSION 2
    173						CALLR	V1CIR		;;OTHERWISE VERSION 1
    174						.ENDC
    175
    176	000100	105065 	000011 		10$:	CLRB	C.MOD(R5)	;;
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 4-1
$QCIR - CONNECT INITIATE RECEIVED

    177	000104	112765 	000001 	000010 		MOVB	#NT.CON,C.FNC(R5) ;;MARK CCB AS CONNECT INITIATE RCVD
    178	000112	016704 	000000G			MOV	$NSVCB,R4	;;GET THE ACP'S VCB ADDRESS
    179	000116					CALL	SRMBQ		;;SEARCH FOR TASK'S MAILBOX
    180	000122	103014 				BCC	20$		;;IF CC - FOUND TASK MAILBOX
    181	000124	005001 				CLR	R1		;;SET DEFAULT UIC
    182	000126					CALL	$TSKRT		;;REQUEST TASK
    183	000132	103005 				BCC	15$		;;IF CC - REQUEST SUCCESSFUL
    184									;;OTHERWISE EITHER
    185									;;	FAILED TO ALLOCATE PCB (Z=0)
    186									;;	OR TASK ALREADY ACTIVE (Z=1)
    187									;;IF TASK IS ACTIVE THEN HE HAS EITHER
    188									;;NOT DONE AN OPN$ YET OR IT IS
    189									;;BETWEEN CLS$ AND EXIT.
    190	000134	152765 	000002 	000011 		BISB	#CX.REQ,C.MOD(R5) ;;INDICATE TASK IS TO BE REQUESTED AGAIN LATER
    191	000142	105267 	000000G			INCB	$NSRQF		;;SET GENERAL DELIVERY QUEUE REQUEST FLAG
    192	000146	010504 			15$:	MOV	R5,R4		;;CHANGE REGISTER CONVENTIONS
    193	000150					CALLR	ADDGN1		;;ADD EVENT TO GENERAL DELIVERY QUEUE
    194
    195					;
    196					; TASK IS CURRENTLY ACTIVE NETWORK USER (MAILBOX ESTABLISHED)
    197					;
    198
    199	000154	105763 	000007 		20$:	TSTB	M.MAX(R3)	;;HAS USER RESTRICTED # OF LOGICAL LINKS?
    200	000160	001407 				BEQ	30$		;;NO
    201	000162	126363 	000006 	000007 		CMPB	M.USE(R3),M.MAX(R3) ;;CAN WE PUT THIS CONNECT ON HIS MAILBOX
    202	000170	103403 				BLO	30$		;;IF LO, YES
    203
    204	000172	011103 			25$:	MOV	(R1),R3		;;GET REJECT REASON CODE
    205	000174					CALLR	CCBREJ		;;REJECT THE CONNECTION
    206
    207	000200	105263 	000006 		30$:	INCB	M.USE(R3)	;;INCREMENT COUNT OF ACTIVE/PENDING LINKS
    208	000204	010504 				MOV	R5,R4		;;CHANGE REGISTER CONVENTIONS
    209	000206					CALL	ADDEVT		;;PUT CONNECT IN USER'S MAILBOX QUEUE
    210	000212	103002 				BCC	40$		;;IF CC, CONNECT QUEUED
    211
    212	000214					CALLR	RMCON		;;ELSE, FLUSH CONNECT
    213
    214	000220				40$:	RETURN			;;RETURN
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 5
FNDTSK - FIND TASK'S TCB

    216					.SBTTL	FNDTSK - FIND TASK'S TCB
    217
    218					;+
    219					; ** - FNDTSK - FIND TASK'S TCB
    220					;
    221					; THIS SUBROUTINE SEARCHES THE STD FOR A SPECIFIED
    222					; TASK NAME.
    223					;
    224					; INPUTS:
    225					;
    226					;	R0 -> CONBLK (CONNECT PENDING BLOCK)
    227					;
    228					; OUTPUTS:
    229					;
    230					;	C-BIT CLEAR (SUCCESSFUL)
    231					;		R0 -> TCB
    232					;	C-BIT SET (FAILED TO FIND TASK)
    233					;
    234					;	DESTROYS REGISTERS R1,R2,R3
    235					;-
    236
    237	000222	116001 	000011 		FNDTSK:	MOVB	N.DOBJ(R0),R1	;;GET OBJECT TYPE
    238	000226	001406 				BEQ	5$		;;IF EQ, DESCRIPTOR CONTAINS NAME
    239	000230					CALL	$MPOBJ		;;ELSE, GET POINTER TO LOCAL NAME
    240	000234					PUSH	<2(R0),(R0)>	;;PUT RAD50 NAME ON STACK
    241	000242	000436 				BR	30$		;;GO GET TCB ADDRESS
    242
    243	000244	012701 	000012 		5$:	MOV	#N.DDL1,R1	;;ASSUME FORMAT 1 DESCRIPTOR
    244	000250	012702 	000020 			MOV	#20,R2		;;SET UP DESCRIPTOR OFFSET & MAX LENGTH
    245	000254	126027 	000010 	000001 		CMPB	N.DFMT(R0),#NC.FM1 ;;FORMAT 1 OR FORMAT 2?
    246	000262	001404 				BEQ	10$		;;IF EQ, FORMAT 1
    247	000264	012701 	000016 			MOV	#N.DDL2,R1	;;OTHERWISE SET UP FOR FORMAT 2
    248	000270	012702 	000014 			MOV	#14,R2		;;DESCRIPTOR OFFSET AND MAX LENGTH
    249
    250	000274	060100 			10$:	ADD	R1,R0		;;MOVE POINTER TO START OF DESCRIPTOR
    251	000276	162002 				SUB	(R0)+,R2	;;SUBTRACT ACTUAL LENGTH FROM MAX LENGTH
    252	000300	001407 				BEQ	20$		;;IF EQ, DESCRIPTOR IS MAX SIZE
    253	000302	010001 				MOV	R0,R1		;;COPY DESCRIPTOR STARTING ADDRESS
    254	000304	066001 	177776 			ADD	-2(R0),R1	;;MOVE POINTER PAST TASK NAME
    255	000310	112721 	000040 		15$:	MOVB	#' ,(R1)+	;;SET REMAINDER OF DESCRIPTOR BLOCK TO SPACES
    256	000314					SOB	R2,15$		;;LOOP TILL DONE
    257
    258	000320	005746 			20$:	TST	-(SP)		;;RESERVE A CELL ON THE STACK
    259	000322					CALL	$CAT5		;;CONVERT FIRST THREE CHARS OF NAME TO RAD50
    260	000326	010146 				MOV	R1,-(SP)	;;STORE THEM ON THE STACK
    261	000330					CALL	$CAT5		;;CONVERT LAST THREE CHARS OF NAME TO RAD50
    262	000334	010166 	000002 			MOV	R1,2(SP)	;;STORE THEM ON THE STACK
    263	000340	010603 			30$:	MOV	SP,R3		;;GET ADDRESS OF RAD50 STRING
    264	000342					CALL	$SRSTD		;;SEARCH STD FOR TASK NAME
    265	000346					POP	(SP)+		;;CLEAN STACK
    266	000350					RETURN			;;RETURN
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 6
SRMBQ - SEARCH QUEUE OF MAILBOXES

    268					.SBTTL	SRMBQ - SEARCH QUEUE OF MAILBOXES
    269
    270					;+
    271					; ** - SRMBQ - SEARCH QUEUE OF MAILBOXES
    272					;
    273					; THIS SUBROUTINE SEARCHES THE LIST OF MAILBOXES FOR THE
    274					; MAILBOX FOR A SPECIFIED TASK.
    275					;
    276					; INPUTS:
    277					;
    278					;	R0 -> TCB
    279					;	R4 -> VCB
    280					;
    281					; OUTPUTS:
    282					;
    283					;	C-BIT CLEAR (SUCCESSFUL)
    284					;		R3 = MAILBOX
    285					;	C-BIT SET (FAILED TO FIND MAILBOX)
    286					;
    287					;	DESTROYS REGISTER	R3
    288					;-
    289	000000					.PSECT	$NSACP
    290
    291	000000	010403 			SRMBQ:	MOV	R4,R3		;;COPY ADDRESS OF VCB
    292	000002	062703 	000012 			ADD	#V.MBXQ,R3	;;ADD OFFSET TO QUEUE OF MAILBOXES
    293	000006	000261 			10$:	SEC			;;ASSUME WE'RE AT THE END OF THE QUEUE
    294	000010	011303 				MOV	(R3),R3		;;GET (NEXT) ELEMENT IN QUEUE
    295	000012	001404 				BEQ	20$		;;IF EQ, AT END WITH NO MATCH
    296	000014	020063 	000002 			CMP	R0,M.TASK(R3)	;;DOES TCB ADDRESS MATCH?
    297	000020	001372 				BNE	10$		;;IF NE, NO - LOOP TILL DONE
    298	000022	000241 				CLC			;;OTHERWISE CLEAR C-BIT FOR SUCCESSFUL RETURN
    299	000024				20$:	RETURN			;;RETURN
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 7
$QCCR - CONNECT CONFIRM RECEIVED

    301					.SBTTL	$QCCR - CONNECT CONFIRM RECEIVED
    302
    303					;+
    304					; ** - $QCCR - CONNECT CONFIRM RECEIVED
    305					;
    306					; THIS ROUTINE IS CALLED BY NSP WHENEVER A CONNECT
    307					; CONFIRM IS RECEIVED IN RESPONSE TO A CONNECT INITIATE
    308					; ISSUED BY A USER TASK (PDV=0). THE ROUTINE COMPLETES
    309					; THE USER'S CONNECT INITIATE REQUEST.
    310					;
    311					; INPUTS:
    312					;
    313					;	R5 -> CCB	(FROM CONNECT INITIATE)
    314					;		C.NSP =	SECONDARY REJECT STATUS
    315					;		C.LIN =	ULA
    316					;		C.BUF1 -> CONBLK (CONNECT REQUEST BLOCK)
    317					;		C.FLG1 = SEGMENT SIZE
    318					;		C.BUF2 -> OPTIONAL RETURN DATA
    319					;		C.CNT2 = OPTIONAL DATA LENGTH
    320					;-
    321
    322	000352					.PSECT
    323
    324						.ENABL	LSB
    325	000352				$QCCR::	CALL	$SAVAL		;;SAVE ALL REGISTERS
    326	000356					CALL	GETWBA		;;GET ADDRESS OF WINDOW BLOCK (IN R5)
    327	000362	103523 				BCS	30$		;;IF CS, LINK IS ALREADY GONE
    328	000364	016503 	000014 			MOV	W.PIO(R5),R3	;;GET I/O PACKET FOR CONNECT INITIATE
    329	000370	005065 	000014 			CLR	W.PIO(R5)	;;CLEAR PENDING I/O PACKET CELL
    330	000374	116465 	000004 	000010 		MOVB	C.NSP(R4),W.LLA(R5) ;;STORE NSP'S LLA IN THE WINDOW BLOCK
    331	000402	016402 	000022 			MOV	C.FLG(R4),R2	;;GET THE TRANSMIT SEGMENT SIZE
    332	000406	010265 	000012 			MOV	R2,W.SEGZ(R5)	;;...AND STORE IT IN THE WINDOW BLOCK
    333	000412	152765 	000002 	000004 		BISB	#WS.EST,W.STAT(R5) ;;INDICATE CONNECTION ESTABLISHED
    334	000420	012700 	000006'			MOV	#CCRTAB,R0	;;POINT TO SUCCESSFUL RETURN STATUS TABLE
    335	000424	005001 				CLR	R1		;;ASSUME NO RETURN DATA
    336
    337						.IF DF	V$$ER1
    338						BITB	#WS.VE1,W.STAT(R5) ;;VERSION 1 OR VERSION 2 INTERFACE?
    339						BEQ	CNCMP		;;IF EQ, VERSION 2
    340						CALLR	V1CCR		;;OTHERWISE VERSION 1
    341						.IFF
    342	000426	000431 				BR	CNCMP		;;JOIN COMMON CODE
    343						.ENDC
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 8
$QCRR - CONNECT REJECT RECEIVED

    345					.SBTTL	$QCRR - CONNECT REJECT RECEIVED
    346
    347					;+
    348					; ** - $QCCR - CONNECT REJECT RECEIVED
    349					;
    350					; THIS ROUTINE IS CALLED BY NSP WHENEVER A CONNECT
    351					; REJECT IS RECEIVED IN RESPONSE TO A CONNECT INITIATE
    352					; ISSUED BY A USER TASK (PDV=0). THE ROUTINE COMPLETES
    353					; THE USER'S CONNECT INITIATE REQUEST WITH THE APPROPRIATE
    354					; ERROR CODE.
    355					;
    356					; INPUTS:
    357					;
    358					;	R5 -> CCB	(FROM CONNECT INITIATE)
    359					;		C.LIN =	ULA
    360					;		C.STS =	[NE.ABO/NE.REJ]
    361					;		C.BUF1 -> CONBLK	(CONNECT REQUEST BLOCK)
    362					;		C.BUF2 -> OPTIONAL RETURN DATA
    363					;		C.CNT2 = OPTIONAL DATA LENGTH
    364					;-
    365
    366	000430				$QCRR::	CALL	$SAVAL		;;SAVE ALL REGISTERS
    367	000434					CALL	GETWBA		;;GET ADDRESS OF WINDOW BLOCK
    368	000440	103474 				BCS	30$		;;IF CS, LINK IS ALREADY GONE
    369	000442	116502 	000004 			MOVB	W.STAT(R5),R2	;;GET WINDOW BLOCK STATUS
    370	000446	132702 	000200 			BITB	#WS.KIP,R2	;;THIS LINK IN I/O RUNDOWN ?
    371	000452	001067 				BNE	30$		;;IF NE, YES - FREE CONNECT RESOURCES
    372	000454	016501 	000016 			MOV	W.MBOX(R5),R1	;;GET TASK MAILBOX ADDRESS
    373	000460	016503 	000014 			MOV	W.PIO(R5),R3	;;GET I/O PACKET ADDR FOR CONNECT INITIATE
    374	000464					CALL	REMULA		;;REMOVE WINDOW BLOCK
    375
    376	000470	005002 				CLR	R2		;;INDICATE NO SEGMENT SIZE
    377	000472	012700 	000012'			MOV	#CRRTAB,R0	;;POINT TO CONNECT REJECT RETURN STATUS TABLE
    378
    379						.IF DF	V$$ER1
    380						BITB	#WS.VE1,R2	;;VERSION 1 OR VERSION 2 INTERFACE?
    381						BEQ	5$		;;IF EQ, VERSION 2
    382						CALLR	V1CRR		;;OTHERWISE VERSION 1
    383						.ENDC
    384
    385	000476	105361 	000006 		5$:	DECB	M.USE(R1)	;;DECREMENT THE ACTIVE/PENDING LINK COUNT
    386	000502	016401 	000004 			MOV	C.NSP(R4),R1	;;GET NSP STATUS CODE
    387	000506	001046 				BNE	CNCMA		;;IF NE, ABORTED BY NETWORK
    388	000510	005720 				TST	(R0)+		;;OTHERWISE, REJECTED
    389									;;CONTINUE IN COMMON CODE
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 9
CNCMP - COMMON CONNECT INITIATE COMPLETION PROCESSING

    391					.SBTTL	CNCMP - COMMON CONNECT INITIATE COMPLETION PROCESSING
    392
    393					;+
    394					; ** - CNCMP - COMMON CONNECT INITIATE COMPLETION PROCESSING
    395					;
    396					; THIS ROUTINE IS COMMON PROCESSING FOR BOTH $QCCR
    397					; (CONNECT CONFIRM) AND $QCCR (CONNECT REJECT). IT
    398					; MOVES ANY OPTIONAL DATA INTO THE USER'S SPECIFIED BUFFER AND
    399					; COMPLETES THE USER'S CONNECT INITIATE REQUEST.
    400					;
    401					; INPUTS:
    402					;
    403					;	R0 -> STATUS RETURN CODE TABLE
    404					;	R1 = SECOND I/O STATUS WORD
    405					;	R2 = SEGMENT SIZE (ZERO IF REJECT)
    406					;	R3 -> CONNECT INITIATE I/O PACKET
    407					;	R4 -> CONNECT INITIATE CCB
    408					;-
    409
    410	000512	010305 			CNCMP:	MOV	R3,R5		;;COPY I/O PACKET ADDRESS
    411	000514	010246 				MOV	R2,-(SP)	;;SAVE SEGMENT SIZE
    412	000516	016402 	000026 			MOV	C.BUF2+2(R4),R2	;;GET ADDR OF RECEIVED OPTIONAL DATA
    413	000522	016403 	000030 			MOV	C.CNT2(R4),R3	;;GET # OF BYTES OF RETURN OPTIONAL DATA
    414	000526	020365 	000016G			CMP	R3,I.PRM+16(R5)	;;IS USER'S OPTIONAL DATA BUFFER LARGE ENOUGH?
    415	000532	101403 				BLOS	10$		;;IF LOS, YES
    416	000534	005720 				TST	(R0)+		;;OTHERWISE INDICATE TRUNCATION
    417	000536	016503 	000016G			MOV	I.PRM+16(R5),R3	;;SET COUNT TO USER'S BUFFER LENGTH
    418	000542				10$:	PUSH	R3		;;SAVE COUNT ON STACK
    419	000544	001406 				BEQ	20$		;;IF EQ, DON'T TRY TO MOVE THE DATA
    420	000546					$MVTBF	R5,I.PRM+12	;;MOVE OPTIONAL DATA INTO USER'S BUFFER
    421	000562				20$:	POP	R1		;;RECOVER COUNT AS SECOND I/O STATUS WORD
    422	000564	012603 				MOV	(SP)+,R3	;;RECOVER SEGMENT SIZE
    423	000566	022765 	000022 	000016G		CMP	#22,I.PRM+16(R5) ;;IS THE USER BUFFER LARGE ENOUGH ?
    424	000574	101012 				BHI	25$		;;IF HI, NO - DON'T STORE SEGMENT SIZE
    425	000576					MAP	I.PRM+12(R5)	;;MAP TO THE USER BUFFER
    426	000604	016502 	000014G			MOV	I.PRM+14(R5),R2	;;GET THE ADDRESS OF THE USER BUFFER
    427	000610	010362 	000020 			MOV	R3,20(R2)	;;STORE THE SEGMENT SIZE
    428	000614					RECMAP			;;RESTORE PROPER ACP MAPPING
    429	000622	010503 			25$:	MOV	R5,R3		;;RESTORE I/O PACKET ADDRESS
    430
    431	000624	011000 			CNCMA:	MOV	(R0),R0		;;GET COMPLETION STATUS
    432	000626					CALL	IODUN		;;POST CONNECT INITIATE COMPLETION TO USER
    433
    434	000632	010405 			30$:	MOV	R4,R5		;;COPY ADDRESS OF CONNECT BLOCK
    435	000634					CALLR	RLSDBK		;;...AND DEALLOCATE IT
    436
    437						.DSABL	LSB
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 10
$QDIR - DISCONNECT RECEIVED

    439					.SBTTL	$QDIR - DISCONNECT RECEIVED
    440
    441					;+
    442					; ** - $QDIR - DISCONNECT RECEIVED
    443					;
    444					; THIS ROUTINE IS CALLED BY NSP WHENEVER A DISCONNECT
    445					; IS RECEIVED FOR AN ESTABLISHED LOGICAL LINK. THE ROUTINE
    446					; MARKS THE LINK'S WINDOW BLOCK AS BEING DISCONNECTED AND
    447					; THEN PLACES THE DISCONNECT CCB RECEIVED FROM NSP ON THE
    448					; USER'S MAILBOX QUEUE.
    449					;
    450					; INPUTS:
    451					;
    452					;	R5 -> CCB
    453					;		C.LIN =	ULA
    454					;		C.NSP = 0(USER DISCONNECT)/NSP REASON CODE
    455					;		C.BUF1 -> OPTIONAL DATA
    456					;		C.CNT1 = OPTIONAL DATA LENGTH
    457					;-
    458
    459	000026					.PSECT	$NSACP
    460
    461	000026				$QDIR::	CALL	$SAVAL		;;SAVE ALL REGISTERS
    462	000032					CALL	GETWBA		;;GET ADDRESS OF WINDOW BLOCK (IN R5)
    463	000036	132765 	000300 	000004 		BITB	#WS.DIP!WS.KIP,W.STAT(R5) ;;IS DISCONNECT OR CLOSE ALREADY IN PROGRESS?
    464	000044	001036 				BNE	30$		;;IS NE, YES - WILL RECEIVE A DC LATER
    465	000046	152765 	000100 	000004 		BISB	#WS.DIP,W.STAT(R5) ;;OTHERWISE SET DISCONNECT IN PROGRESS
    466	000054	142765 	000060 	000004 		BICB	#WS.INT!WS.STA,W.STAT(R5) ;;CLEAR ALL WAITING FLAGS
    467	000062					CALL	FLSHIO		;;FLUSH ALL PENDING XMIT & RECV REQUESTS
    468
    469						.IF DF	V$$ER1
    470						BITB	#WS.VE1,W.STAT(R5) ;;VERSION 1 OR VERSION 2 INTERFACE?
    471						BEQ	10$		;;IF EQ, VERSION 2
    472						CALLR	V1DIR		;;OTHERWISE VERSION 1
    473						.ENDC
    474
    475	000066	112701 	000003 		10$:	MOVB	#NT.DSC,R1	;;ASSUME USER DISCONNECT
    476	000072	016400 	000004 			MOV	C.NSP(R4),R0	;;GET THE DISCONNECT REASON CODE
    477	000076	001407 				BEQ	20$		;;IF EQ, THIS IS A SYNCHRONOUS DISCONNECT
    478	000100	112701 	000004 			MOVB	#NT.ABT,R1	;;ELSE, ASSUME USER ABORT
    479	000104	022700 	000011 			CMP	#ER$ABT,R0	;;DID USER CAUSE ABORT ?
    480	000110	001402 				BEQ	20$		;;IF EQ, YES
    481	000112	112701 	000005 			MOVB	#NT.ABO,R1	;;ELSE, NETWORK CAUSED ABORT
    482	000116	110164 	000010 		20$:	MOVB	R1,C.FNC(R4)	;;SET DISCONNECT NETWORK DATA TYPE
    483	000122	116564 	000007 	000011 		MOVB	W.LUN(R5),C.MOD(R4) ;;STORE LOGICAL LINK'S LUN IN CCB
    484	000130	016503 	000016 			MOV	W.MBOX(R5),R3	;;GET ADDDRESS OF MAILBOX
    485	000134					CALL	ADDEVT		;;PUT DISCONNECT CCB IN THE MAILBOX
    486	000140	103002 				BCC	40$		;;IF CC, DISCONNECT NOTICE WAS QUEUED
    487
    488	000142				30$:	CALLR	RMDIS		;;RELEASE DISCONNECT RESOURCES
    489
    490	000146				40$:	RETURN
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 11
$QDIC - DISCONNECT COMPLETE

    492					.SBTTL	$QDIC - DISCONNECT COMPLETE
    493
    494					;+
    495					; ** - $QDIC-DISCONNECT COMPLETE
    496					;
    497					; THIS ROUTINE IS CALLED BY NSP WHENEVER NSP DECIDES
    498					; THAT THE LINK IS DISCONNECTED, REGARDLESS OF WHERE
    499					; THE DISCONNECT WAS INITIATED. THIS ROUTINE DOES THE FINAL
    500					; CLEAN-UP OF THE DATA BASE (REMOVES WINDOW BLOCK & CLEARS THE
    501					; USER'S SECOND LUN WORD).
    502					;
    503					; INPUTS:
    504					;
    505					;	R5-> CCB	(DISCONNECT REQUEST)
    506					;		C.LIN =	ULA
    507					;		C.BUF1 -> OPTIONAL DATA (MAY BE 0 IF NONE)
    508					;		C.CNT1 = OPTIONAL DATA LENGTH
    509					;-
    510
    511	000150					.PSECT	$NSACP
    512
    513	000150				$QDIC::	CALL	$SAVAL		;;SAVE ALL REGISTERS
    514	000154					CALL	GETWBA		;;GET ADDRESS OF THE WINDOW BLOCK
    515	000160	116500 	000004 			MOVB	W.STAT(R5),R0	;;GET WINDOW BLOCK STATUS
    516
    517						.IF DF	V$$ER1
    518						BITB	#WS.VE1,R0	;;IS THIS VERSION 1 OR VERSION 2 ?
    519						BEQ	10$		;;IF EQ, VERSION 2
    520						CLR	C.BUF+2(R4)	;;FOR V1, THE SECOND CCB IS REALLY AN I/O PACKET
    521					10$:				;;SO FUDGE POINTER TO AVOID RETURNING IT
    522						.ENDC
    523
    524	000164					CALL	RMDIS		;;RELEASE THE DISCONNECT RESOURCES
    525	000170	016504 	000016 			MOV	W.MBOX(R5),R4	;;GET ADDRESS OF TASK'S MAILBOX
    526	000174	016503 	000014 			MOV	W.PIO(R5),R3	;;GET ANY PENDING I/O PACKET ADDRESS (FOR LATER)
    527	000200					CALL	REMULA		;;REMOVE ULA, DEALLOCATE WINDOW BLOCK AND DEACESS LUN
    528
    529						.IF DF	V$$ER1
    530						BITB	#WS.VE1,R0	;;WAS IT VERSION 1 OR VERSION 2?
    531						BNE	50$		;;IF NE, VERSION 1
    532						.ENDC
    533
    534	000204	105364 	000006 		20$:	DECB	M.USE(R4)	;;DECREMENT # OF ACTIVE/PENDING LOGICAL LINKS
    535	000210	132700 	000200 			BITB	#WS.KIP,R0	;;I/O RUNDOWN IN PROGRESS FOR THIS LINK?
    536	000214	001002 				BNE	30$		;;IF NE, YES - GO CONTINUE I/O RUNDOWN
    537	000216					CALL	50$		;;GO COMPLETE ANY PENDING I/O PACKET
    538									;;  (ABT$,DIS$,GND$)
    539	000222	132764 	000200 	000004 	30$:	BITB	#MS.CIP,M.STAT(R4) ;;CLOSE IN PROGRESS?
    540	000230	001417 				BEQ	60$		;;IF EQ, NO
    541	000232	016403 	000010 			MOV	M.SPA(R4),R3	;;GET CLOSE OR I/O RUNDOWN I/O PACKET ADDRESS
    542	000236	010400 				MOV	R4,R0		;;COPY POINTER TO MAILBOX
    543	000240					CALL	MAPHDR		;;GET ADDRESS OF USER TASK'S HEADER (IN R2)
    544	000244					CALLR	CLS2		;;CONTINUE CLOSE (I/O RUNDOWN)
    545
    546
    547	000250	005703 			50$:	TST	R3		;;IS THERE AN I/O PACKET TO COMPLETE
    548	000252	001406 				BEQ	60$		;;IF EQ, NO - NOTHING TO DO JUST RETURN
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 11-1
$QDIC - DISCONNECT COMPLETE

    549	000254	016300 	000014G			MOV	I.PRM+14(R3),R0 ;;GET FIRST STATUS WORD
    550	000260	016301 	000016G			MOV	I.PRM+16(R3),R1	;;GET SECOND STATUS WORD
    551	000264					CALL	IODUN		;;COMPLETE I/O REQUEST
    552	000270				60$:	RETURN			;;RETURN
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 12
$QINTR - INTERRUPT MESSAGE RECEIVED

    554					.SBTTL	$QINTR - INTERRUPT MESSAGE RECEIVED
    555
    556					;+
    557					; ** - $QINTR - INTERRUPT MESSAGE RECEIVED
    558					;
    559					; THIS ROUTINE IS CALLED BY NSP WHENEVER NSP RECEIVES
    560					; AN INTERRUPT MESSAGE ON A USER'S LINK.
    561					;
    562					; INPUTS:
    563					;
    564					;	R5 -> CCB	(INTERRUPT MESSAGE)
    565					;		C.LIN =	ULA
    566					;		C.BUF1 -> INTERRUPT MESSAGE
    567					;-
    568
    569	000272					.PSECT	$NSACP
    570
    571	000272				$QINTR::CALL	GETWBA		;;GET WINDOW BLOCK ADDRESS
    572	000276	116564 	000010 	000006 		MOVB	W.LLA(R5),C.LIN(R4) ;;SET UP THE LLA FOR 'USRRCI' LATER
    573
    574						.IF DF	V$$ER1
    575						BITB	#WS.VE1,W.STAT(R5) ;;VERSION 1 OR VERSION 2 INTERFACE?
    576						BEQ	5$		;;IF EQ, VERSION 2
    577						CALLR	V1INTR		;;OTHERWISE VERSION 1
    578						.ENDC
    579
    580	000304	112764 	000002 	000010 	5$:	MOVB	#NT.INT,C.FNC(R4) ;; INTERRUPT NETWORK DATA TYPE
    581	000312	116564 	000007 	000011 		MOVB	W.LUN(R5),C.MOD(R4) ;; USER LUN
    582	000320	016503 	000016 			MOV	W.MBOX(R5),R3	;;GET MAILBOX ADDRESS
    583	000324					CALL	ADDEVT		;;PLACE ON MAILBOX NETWORK DATA QUEUE
    584	000330	103002 				BCC	10$		;;IF CC, INTERRUPT QUEUED
    585	000332					CALL	RMINT		;;ELSE, FLUSH INTERRUPT
    586	000336				10$:	RETURN			;;RETURN TO CALLER
    587
    588		000001 				.END
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 12-1
SYMBOL TABLE

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

MPCSR = 177746   	NI.FUB= 000010   	NT.ACK= 000001   	N.DFMT  000010   	PF$RRI= 000004
MSGHDR= 000007   	NI.INI= 000001   	NT.BOM= 000040   	N.DGP   000006   	PF$RVE= 000001
MS.AST= 000010   	NI.RLI= 000002   	NT.CON= 000001   	N.DGRP  000012   	PF$RVR= 000040
MS.CIP= 000200   	NI.RRI= 000004   	NT.DSC= 000003   	N.DNM   000014   	PF$SLI= 000002
M$$CRB= 000124   	NI.RVE= 000001   	NT.EOM= 000100   	N.DNMC  000012   	PF$SRI= 000004
M$$CRX= 000000   	NI.VER= 000002   	NT.FCN= 037400   	N.DOBJ  000011   	PF$SRT= 000001
M$$FCS= 000000   	NO.DTR= 000077   	NT.INT= 000002   	N.DOT   000005   	PF$STA= 000003
M$$MGE= 000000   	NO.FAL= 000021   	NT.LOG= 000011   	N.DUS   000010   	PF$SUB= 000010
M$$OVR= 000000   	NO.FA1= 000001   	NT.MD1= 000420   	N.DUSR  000014   	PF$UP = 000001
M.MAIL  000012   	NO.NCU= 000023   	NT.MFL= 000002   	N.LGTH= 000160   	PIRQ  = 177772
M.MAX   000007   	NO.RTL= 000022   	NT.MOD= 000020   	N.NODE  000000   	PMODE = 030000
M.MBL = 000016   	NO.TAS= 000000   	NT.MOM= 000000   	N.OPDL  000136   	PR0   = 000000
M.NAST  000005   	NO.TCL= 000017   	NT.MOP= 000010   	N.OPTD  000140   	PR1   = 000040
M.NEXT  000000   	NO.TC1= 000005   	NT.NAK= 000002   	N.PASL  000102   	PR4   = 000200
M.SPA   000010   	NO.TLK= 000020   	NT.NFL= 000000   	N.PASS  000104   	PR5   = 000240
M.STAT  000004   	NP$RTR= 000003   	NT.SFL= 000001   	N.RAC   000070   	PR6   = 000300
M.TASK  000002   	NR$IFC= 000030   	NT.SOL= 000140   	N.RACC  000066   	PR7   = 000340
M.USE   000006   	NS.BOM= 000040   	NT.XOF= 000004   	N.RDE   000012   	PS    = 177776
NC.FM0= 000000   	NS.EOM= 000100   	NT.XON= 000010   	N.RDEC  000010   	PS$NTI= 000003
NC.FM1= 000001   	NS.MFL= 000003   	N$ACQ   000000   	N.RFM   000006   	PS$OFF= 000000
NC.FM2= 000002   	NS.MOM= 000000   	N$ICF   000006   	N.RGP   000010   	PS$STR= 000001
NETTIM= 000005   	NS.NFL= 000001   	N$LNI   000010   	N.RID   000034   	PS$UP = 000005
NE$ABO= 000046   	NS.SET= 000002   	N$LVC   000022   	N.RIDC  000032   	PS$VER= 000004
NE$ABT= 000011   	NS.SFL= 000002   	N$NOD   000032   	N.RND   000000   	PS$WT = 000002
NE$ACC= 000042   	NS.SOL= 000140   	N$PLD   000026   	N.RNM   000016   	P$CHN   000004
NE$ACT= 000044   	NS.SUC= 000001   	N$STS   000042   	N.RNMC  000014   	P$CNT   000005
NE$CDI= 000052   	NT$ABO= 000022   	N$TCB   000004   	N.ROT   000007   	P$FRQ   000012
NE$COM= 000047   	NT$ACC= 000002   	N$TMP   000012   	N.RPS   000056   	P$FSP   000013
NE$FCF= 000050   	NT$ADS= 000000   	N$VER   000036   	N.RPSC  000054   	P$LCD   000002
NE$FMT= 000005   	NT$AKD= 000016   	N$$DAT= 000030   	N.RQDL  000060   	P$LEN   000014
NE$GEN= 000007   	NT$AKI= 000020   	N$$DIS= 000020   	N.RQID  000062   	P$LST   000000
NE$ILS= 000043   	NT$CC = 000012   	N$$INT= 000020   	N.RQL = 000110   	P$NOD   000010
NE$IMG= 000053   	NT$CON= 000000   	N$$LDV= 000001   	N.RSRV= 000030   	P$PFQ   000006
NE$MLB= 000006   	NT$DAT= 000002   	N$$MOV= 000010   	N.RUS   000012   	P$TIM   000003
NE$NOD= 000002   	NT$DIS= 000010   	N$$OPT= 000020   	N.SDE   000042   	P$$P45= 000000
NE$NSD= 000003   	NT$IDC= 000034   	N$$OVR= 000042   	N.SDEC  000040   	P$$WRD= 000000
NE$RES= 000001   	NT$IDN= 000030   	N$$SYS= 000001   	N.SDL1  000036   	Q$$OPT= 000010
NE$SSR= 000000   	NT$ILN= 000032   	N$$USR= 000001   	N.SDL2  000042   	REMULA= ****** GX
NE$SSS= 000045   	NT$IND= 000024   	N.ACNT  000116   	N.SDS1  000040   	RF.CLN= 000000
NE$STA= 000051   	NT$INL= 000026   	N.ACTL  000114   	N.SDS2  000056   	RF.CTL= 000003
NE$TCN= 000040   	NT$INT= 000004   	N.CAC   000120   	N.SEG   000006   	RF.TIM= 177400
NE$TCO= 000041   	NT$LS = 000014   	N.CACC  000116   	N.SEGZ  000002   	RF.TM0= 000400
NE$TPA= 000010   	NT$MOD= 000012   	N.CBL = 000142   	N.SFM   000036   	RF.WTD= 000020
NE$UOB= 000004   	NT$NAK= 000022   	N.CDA   000142   	N.SFMT  000034   	RF.WTM= 000030
NE.ABO= 177776   	NT$OFF= 000026   	N.CDAC  000140   	N.SGP   000040   	RF.WTS= 000010
NE.ACT= 177771   	NT$ON = 000002   	N.CID   000064   	N.SGRP  000036   	RH.CNT= 000001
NE.CLS= 177767   	NT$QRY= 000014   	N.CIDC  000062   	N.SND   000030   	RH.EFM= 000020
NE.DIS= 177777   	NT$REJ= 000004   	N.CPS   000106   	N.SNM   000046   	RH.HDR= 000002
NE.FMT= 177770   	NT$ROU= 000022   	N.CPSC  000104   	N.SNMC  000044   	RH.PRI= 000014
NE.NDT= 177766   	NT$RTI= 000010   	N.CTL   000000   	N.SOBJ  000035   	RH.PR1= 000004
NE.NOD= 177774   	NT$RTN= 000000   	N.DDE   000010   	N.SOT   000037   	RH.RFM= 000100
NE.REJ= 177775   	NT$SNG= 000006   	N.DDEC  000006   	N.SUS   000042   	RLSDBK= ****** GX
NE.RES= 177773   	NT$STP= 000004   	N.DDL1  000012   	N.SUSR  000040   	RMCON = ****** GX
NE.TIM= 177772   	NT$XOF= 000020   	N.DDL2  000016   	PF$EIP= 000100   	RMDIS = ****** GX
NI.FLI= 000002   	NT$XON= 000016   	N.DDS1  000014   	PF$ENB= 000200   	RMINT = ****** GX
NI.FRI= 000004   	NT.ABO= 000005   	N.DDS2  000020   	PF$OFF= 000000   	R$$DER= 000000
NI.FRT= 000001   	NT.ABT= 000004   	N.DFM   000004   	PF$RLI= 000002   	R$$K11= 000001
NSRCV	MACRO M1110  13-OCT-79 10:25  PAGE 12-3
SYMBOL TABLE

R$$SND= 000000   	S$NKS   000010   	UISDR4= 177610   	WINDOW= 004000   	W.SNDQ  000022
R$$11M= 000000   	S$RES   000014   	UISDR5= 177612   	WS.DIC= 000004   	W.STAT  000004
SISDR0= 172200   	S$SEC   000000   	UISDR6= 177614   	WS.DIP= 000100   	W.TASK  000002
SRMBQ   000000R     002	S$SNI   000016   	UISDR7= 177616   	WS.EST= 000002   	W.ULA   000011
SR0   = 177572   	S$UMR   000004   	VF$RCV= 100000   	WS.INT= 000040   	W.WBL = 000040
SR3   = 172516   	S$UMS   000002   	VF$XMT= 040000   	WS.KIP= 000200   	X$$DBT= 000000
ST$CC = 000002   	S$UNI   000020   	V$FLG   000000   	WS.MOD= 000010   	$CAT5 = ****** GX
ST$CIR= 000003   	S$$WRG= 000000   	V$LEN   000022   	WS.STA= 000020   	$MPOBJ= ****** GX
ST$CIS= 000001   	S$$YSZ= 007600   	V$RCV   000002   	WS.VE1= 000001   	$MVTBF= ****** GX
ST$DAT= 000005   	TPS   = 177564   	V$XMT   000012   	W.CCBU  000006   	$NSDMF= ****** GX
ST$DID= 000015   	T$$KMG= 000000   	V$$CTR= 001000   	W.CINT  000032   	$NSRQF= ****** GX
ST$DIP= 000006   	T$$MIN= 000000   	V.CULT  000004   	W.CSND  000020   	$NSVCB= ****** GX
ST$DIR= 000012   	UBMPR = 170200   	V.GENQ  000016   	W.CTL   000000   	$QCCR   000352RG
ST$DIS= 000014   	UDSAR0= 177660   	V.MBXQ  000012   	W.INTQ  000034   	$QCIR   000020RG
ST$UDI= 000013   	UDSDR0= 177620   	V.TIME  000003   	W.LLA   000010   	$QCRR   000430RG
ST$UNR= 000011   	UISAR0= 177640   	V.TIMR  000002   	W.LUN   000007   	$QDIC   000150RG    002
SWR   = 177570   	UISAR4= 177650   	V.TRCT  000000   	W.MBOX  000016   	$QDIR   000026RG    002
S$EMR   000006   	UISAR5= 177652   	V.ULT   000006   	W.MODC  000005   	$QINTR  000272RG    002
S$FMT   000012   	UISAR6= 177654   	V.ULTE  000010   	W.PIO   000014   	$SAVAL= ****** GX
S$LEN   000040   	UISAR7= 177656   	V.VBL = 000026   	W.RCVQ  000026   	$SRSTD= ****** GX
S$LNK   000022   	UISDR0= 177600   	V.1CPQ  000022   	W.SEGZ  000012   	$TSKRT= ****** GX
S$MLK   000024

. ABS.	000160	   000
      	000640	   001
$NSACP	000340	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  21343 WORDS  ( 84 PAGES)
DYNAMIC MEMORY:  20620 WORDS  ( 79 PAGES)
ELAPSED TIME:  00:00:54
NSRCV,[131,34]NSRCV/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]NSRCV
NSRCV      CREATED BY  MACRO  ON 13-OCT-79 AT 10:26	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ADDEVT	= ******  GX	 4-209      10-485     12-583    
ADDGN1	= ******  GX	 4-193     
CCBREJ	= ******  GX	 4-205     
CCRTAB	  000006 R	#3-105      7-334     
CIRTAB	  000000 R	#3-93       4-157     
CLS2  	= ******  GX	 11-544    
CNCMA 	  000624 R	 8-387     #9-431     
CNCMP 	  000512 R	 7-342     #9-410     
CRRTAB	  000012 R	#3-116      8-377     
CX.REQ	= 000002	 4-190     
C.BUF 	  000014	 4-161     
C.BUF2	  000024	 9-412     
C.CNT2	  000030	 9-413     
C.FLG 	  000022	*4-162      7-331     
C.FNC 	  000010	*4-177     *10-482    *12-580    
C.LIN 	  000006	*4-156     *12-572    
C.MOD 	  000011	*4-176     *4-190     *10-483    *12-581    
C.NSP 	  000004	 4-156     *4-168      7-330      8-386      10-476    
ER$ABT	= 000011	 10-479    
ER$NSD	= 000003	 3-93      
ER$TCO	= 000041	 3-95      
ER$UOB	= 000004	 3-94      
FLSHIO	= ******  GX	 10-467    
FNDTSK	  000222 R	 4-164     #5-237     
GETWBA	= ******  GX	 7-326      8-367      10-462     11-514     12-571    
IE.DAO	= ******  GX	 3-118     
IE.NRJ	= 177666	 3-116     
IE.URJ	= 177667	 3-117     
IODUN 	= ******  GX	 9-432      11-551    
IS.DAO	= 000002	 3-106     
IS.SUC	= ******  GX	 3-105     
I.PRM 	= ******  GX	 9-414      9-417      9-420      9-420      9-423      9-425      9-426      11-549     11-550    
KISAR6	= 172354	*9-425     *9-428     
MAPHDR	= ******  GX	 11-543    
MS.CIP	= 000200	 11-539    
M$$MGE	= 000000	 9-420      9-425      9-428     
M.MAX 	  000007	 4-199      4-201     
M.SPA 	  000010	 11-541    
M.STAT	  000004	 11-539    
M.TASK	  000002	 6-296     
M.USE 	  000006	 4-201     *4-207     *8-385     *11-534    
NC.FM1	= 000001	 5-245     
NT.ABO	= 000005	 10-481    
NT.ABT	= 000004	 10-478    
NT.CON	= 000001	 4-177     
NT.DSC	= 000003	 10-475    
NT.INT	= 000002	 12-580    
N.DDL1	  000012	 5-243     
N.DDL2	  000016	 5-247     
N.DFMT	  000010	 5-245     
N.DOBJ	  000011	 5-237     
N.SEG 	  000006	 4-162     
NSRCV      CREATED BY  MACRO  ON 13-OCT-79 AT 10:26	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

REMULA	= ******  GX	 8-374      11-527    
RLSDBK	= ******  GX	 9-435     
RMCON 	= ******  GX	 4-212     
RMDIS 	= ******  GX	 10-488     11-524    
RMINT 	= ******  GX	 12-585    
SRMBQ 	  000000 R	 4-179     #6-291     
UISAR6	= 177654	 9-428     
V$$ER1	= ******	 3-1        3-2        3-101      3-112      4-170      7-337      8-379      10-469     11-517    
                         11-529     12-574    
V.MBXQ	  000012	 6-292     
WS.DIP	= 000100	 10-463     10-465    
WS.EST	= 000002	 7-333     
WS.INT	= 000040	 10-466    
WS.KIP	= 000200	 8-370      10-463     11-535    
WS.STA	= 000020	 10-466    
W.LLA 	  000010	*7-330      12-572    
W.LUN 	  000007	 10-483     12-581    
W.MBOX	  000016	 8-372      10-484     11-525     12-582    
W.PIO 	  000014	 7-328     *7-329      8-373      11-526    
W.SEGZ	  000012	*7-332     
W.STAT	  000004	*7-333      8-369      10-463    *10-465    *10-466     11-515    
$CAT5 	= ******  GX	 5-259      5-261     
$MPOBJ	= ******  GX	 5-239     
$MVTBF	= ******  GX	 9-420     
$NSDMF	= ******  GX	 4-158     
$NSRQF	= ******  GX	*4-191     
$NSVCB	= ******  GX	 4-178     
$QCCR 	  000352 RG	#7-325     
$QCIR 	  000020 RG	#4-155     
$QCRR 	  000430 RG	#8-366     
$QDIC 	  000150 RG	#11-513    
$QDIR 	  000026 RG	#10-461    
$QINTR	  000272 RG	#12-571    
$SAVAL	= ******  GX	 4-155      7-325      8-366      10-461     11-513    
$SRSTD	= ******  GX	 5-264     
$TSKRT	= ******  GX	 4-182     
NSRCV      CREATED BY  MACRO  ON 13-OCT-79 AT 10:26	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		 4-155      4-164      4-179      4-182      4-209      5-239      5-259      5-261      5-264      7-325     
                 7-326      8-366      8-367      8-374      9-432      10-461     10-462     10-467     10-485     11-513    
                 11-514     11-524     11-527     11-537     11-543     11-551     12-571     12-583     12-585    
CALLR 		#4-193     #4-205     #4-212     #9-435     #10-488    #11-544    
CCBDF$		#3-44       3-45      
CNBDF$		#3-53      #3-55      
CRBDF$		#3-53       3-54      
DVBDF$		#3-48      #3-51      
HWDDF$		#9-425     #9-425     #9-428     #9-428     
LLWDF$		#3-48      #3-50      
MAP   		#3-42      #9-425     
MBXDF$		#3-48      #3-49      
MOVBNS		#3-81      
NSPSY$		#3-44      #3-46      
NSSYM$		#3-53      #3-56      
POP   		#3-71      #5-265     #9-421     
PUSH  		#3-65      #5-240     #9-418     
RECMAP		#3-42       9-428     
RESRG 		#3-42       4-165     
RETURN		 4-214      5-266      6-299      10-490     11-552     12-586    
SAVRG 		#3-42       4-163     
SOB   		#5-256     
$MVTBF		#3-42       9-420