Google
 

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

     4-   52	NRD-DLC INTERFACE
     5-   60	NRD INTERPROCESS COMMUNICATION CONVENTIONS
     6-  104	INTERNAL MACROS
     7-  129	DISPATCH TABLES
     8-  280	MISCELLANEOUS GARBAGE
     9-  299	NRDTIM	- CCB REDISPATCHER
    11-  369	NSPCON	- CONNECT PROCESSOR
    13-  472	TRANSMIT COMPLETE PROCESSOR
    14-  506	NRDINT	- INTERUPT MESSAGE SENT
    15-  553	RECEIVE COMPLETE PROCESSORS
    16-  607	CONTROL COMPLETE PROCESSOR
    17-  623	CONTROL ENABLE PROCESSING
    18-  645	CONTROL ENABLE,FS.GET FROM NRM
    19-  673	NSPDAT - RECEIVE DATA FROM NSP
    20-  766	NSPXOF	- BACK-PRESSURE A LINE
    20-  794	NSPXON	- ENABLE BACK-PRESSURED LINE
    21-  823	NSPDIS - DISCONNECT RECEIVED FOR A DATA PIPE
    21-  899	NRDDIS	- PIPE DISCONNECTED
    22-  913	NURD UTILITIES
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 3


      1						.TITLE	NRD
      2						.IDENT	/006070/
      3					;
      4					; COPYRIGHT (C) 1977,1978,1979
      5					; DIGITAL EQUIPMENT CORPORATION
      6					;
      7					; THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY ON A
      8					; SINGLE  COMPUTER  SYSTEM  AND  MAY  BE  COPIED  ONLY WITH THE
      9					; INCLUSION  OF THE ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE, OR
     10					; ANY OTHER  COPIES THEREOF,  MAY NOT BE  PROVIDED OR OTHERWISE
     11					; MADE AVAILABLE  TO ANY OTHER  PERSON EXCEPT  FOR USE  ON SUCH
     12					; SYSTEM AND TO ONE  WHO AGREES TO THESE LICENSE TERMS.   TITLE
     13					; TO AND OWNERSHIP  OF THE SOFTWARE  SHALL AT ALL TIMES  REMAIN
     14					; IN DEC.
     15					;
     16					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     17					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     18					; EQUIPMENT CORPORATION.
     19					;
     20					; DEC ASSUMES NO RESPONSIBILITY  FOR THE USE  OR RELIABILITY OF
     21					; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     22					;
     23					;
     24					;	NRD GENERIC DIALOG MANAGER
     25					;
     26					;
     27					; MODIFIED:
     28					;
     29					; 1.06	26-JAN-79 ALAN D. PECKHAM
     30					;	MAKE INITIAL FLOW COUNT GLOBAL
     31					;
     32					; 6060 	19-MAR-79 SCOTT G. ROBINSON
     33					;	MAKE RESOURCE RECOVERY WORK AND
     34					;	 MODIFY CONTROL-START PROCESSING TO NOT REQUIRE AN
     35					;	 EXTRA CCB.
     36					;
     37					; 6070	19-MAR-79 SCOTT G. ROBINSON
     38					;	MODIFY RESOURCE RECOVERY TO CLEAR RECOVERY BIT UPON
     39					;	 COMPLETION OF ROUTINE NRDTIM
     40					;
     41					;  EXTERNAL MACROS
     42					;
     43
     44						.MCALL	CCBDF$,NSPDF$,TTDF$,MAP,RETURN,$QLLC,$QDLC,NRDIN$
     45	000000					CCBDF$		;DEFINE CCB SYMBOLS
     46	000000					NSPDF$		;DEFINE NSP MACROS AND SYMBOLS
     47	000000					TTDF$		;DEFINE NRD CONTROL BLOCK SYMBOLS
     48
     49						.LIST	MEB		;LET'S SEE SOME OF THAT HIDDEN CODE
     50
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 4
NRD-DLC INTERFACE

     52						.SBTTL	NRD-DLC INTERFACE
     53
     54
     55						.LIST	ME
     56	000000					NRDIN$
					;	CCB STATUS CODES : DLC ->NRD
		100201 			LS.ABO	=	100201		;ABORTING(COMPLIANCE WITH HIGHER (POWERS)
		100202 			LS.REJ	=	100202		;REJECTING MSG
		100203 			LS.CLO	=	100203		;DEVICE IS CLOSED,REJECTING
		100204 			LS.ILM	=	100204		;ILLEGAL NURD MSG
		100205 			LS.BOM	=	100205		;DLC IS ABORTING THE LINK DUE TO USER ERROR
					;	CCB STATUS CODES : NRD -> NRM
		100377 			NR.NDV	=	100377		;NOT A NURD DEVICE
     57						.NLIST	ME
     58
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 5
NRD INTERPROCESS COMMUNICATION CONVENTIONS

     60						.SBTTL NRD INTERPROCESS COMMUNICATION CONVENTIONS
     61
     62
     63					; DATA TO DLC FROM NRD
     64					;
     65					;	NRD SENDS CCB OWNED BY NSP WITH FC.XME,NT$DAT DIRECTLY TO DLC.
     66					;
     67					;
     68					; DATA TO NRD FROM DLC
     69					;
     70					;	DLC SENDS A CCB (OWNED BY DLC)TO NRD WITH FC.RCP,NT$DAT
     71					;	AND A DATA BUFFER OWNED BY DLC.
     72					;	NRD PASSES DLC'S CCB THRU TO NSP,SAVING C.BUF+2 IN C.BUF2+2, AND
     73					;	MAPPING C.FNC TO FC.XME.  NRD,UPON RETURN OF THE CCB FROM NSP, RESTORES
     74					;	C.BUF+2 AND RETURNS IT TO DLC WITH FC.RCE,NT$DAT.
     75					;
     76					;	NURD INTERFACE PROTOCOL
     77					;
     78					;	USER INITIATED:
     79					;
     80					;		 FC.RCP,NT$DAT     FC.XME,NT$DAT
     81					;	USER/NSP ------------->NRD ------------->DLC       (NON INTERRUPT)
     82					;		<------------- NRD<------------- DLC
     83					;		 FC.RCE,NT$RTN     FC.XCP,NT$DAT
     84					;
     85					;
     86					;		 FC.RCP,NT$INT     FC.XME,NT$INT
     87					;	USER/NSP ------------->NRD ------------->DLC	   (INTERRUPT)
     88					;		<------------- NRD<------------- DLC
     89					;		 FC.RCE,NT$RTI     FC.XCP,NT$INT DLC
     90					;
     91					;
     92					;	DLC INITIATED:
     93					;
     94					;		 FC.XME,NT$DAT     FC.RCP,NT$DAT
     95					;	USER/NSP<------------- NRD<------------- DLC	   (NON INTERRUPT)
     96					;		 ------------->NRD ------------->DLC
     97					;		 FC.XCP,NT$DAT     FC.RCE,NT$DAT
     98					;
     99					;		 FC.XME,NT$INT     FC.RCP,NT$INT
    100					;	USER/NSP<------------- NRD<------------- DLC	   (INTERRUPT)
    101					;		 ------------->NRD ------------->DLC
    102					;		 FC.XCP,NT$INT     FC.RCE,NT$INT
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 6
INTERNAL MACROS

    104						.SBTTL  INTERNAL MACROS
    105
    106
    107
    108
    109
    110
    111						.MACRO	BADPIPE
    112						BCC	9$
    113						CRASH			;CRUFTY PIPE NUMBER
    114					9$:
    115
    116						.ENDM BADPIPE
    117
    118						.MACRO BADTNM
    119						BCC	9$
    120						CRASH			;CRUFTY TERMINAL NUMBER
    121					9$:
    122						.ENDM BADTNM
    123
    124						.MACRO	GTPCB$
    125						GTULA$	R0
    126						CALL	$PCBPT
    127						.ENDM	GTPCB$
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 7
DISPATCH TABLES

    129						.SBTTL	DISPATCH TABLES
    130
    131
    132					;
    133					;  CHANGEABLE DATA
    134					;
    135
    136	000000	000000G			.FLOW::	.WORD	F$LOW		;INITIAL FLOW COUNT.
    137
    138	000002	000000 			.QUESW::.WORD	0		; TIMER SWITCHES:
    139		100000 			 QS.CVR	==	100000		;  RECOVERY IN PROGRESS.
    140		000400 			 QS.CCB	==	000400		;  CCB PENDING.
    141					 ;		000377		;  PIPE BEING FLUSHED.
    142
    143	000004	000000 	000004'		.WTQUE::.WORD	0,.-2		; RESOURCE WAIT QUEUE.
    144					;
    145					;
    146					;
    147					;  PRIMARY DISPATCH TABLE
    148					;
    149
    150	000010	000011'			$NRDTB::.WORD	.+1		;FC.XME	    TRANSMIT ENABLE
    151	000012	000013'				.WORD	.+1		;FC.RCE	    RECEIVE ENABLE
    152	000014	000015'				.WORD	.+1		;FC.KIL	    KILL ENABLE
    153	000016	000034'				.WORD	NRDCTL		;FC.CTL	    CONTROL ENABLE(NRM)
    154	000020	000326'				.WORD	NRDTIM		;FC.TIM	    TIMEOUT(NURD RSOURCE FAILURES)
    155	000022	000114'				.WORD	NRDXCP		;FC.XCP	    TRANSMIT COMPLETE(NSP,DLC)
    156	000024	000062'				.WORD	NRDRCP		;FC.RCP	    RECEIVE COMPLETE(NSP,DLC)
    157	000026	000027'				.WORD	.+1		;FC.KCP	    KILL COMPLETE
    158	000030	000202'				.WORD	NRDCCP		;FC.CCP	    CONTROL COMPLETE(NSP,NRM,DLC)
    159
    160		000022 			NR$RWT	=	.-$NRDTB
    161	000032	000412'				.WORD	NRDRWC		;NR$RWT	 NRD RESOURCE WAIT COMPLETE
    162
    163
    164
    165					;
    166
    167					;   DISPATCH FOR CONTROL ENABLE
    168
    169	000034	000173 	000040'		NRDCTL:	JMP @1$(R3)		;DISPATCH AGAIN
    170
    171	000040	000041'			1$:	.WORD .+1		;FS.INI
    172	000042	001572'				.WORD CTLSTR		;FS.STR NRM START(OPEN) DEV
    173	000044	001572'				.WORD CTLSTP		;FS.STP NRM STOP (CLOSE) DEV
    174	000046	000047'				.WORD .+1		;FS.TRM
    175	000050	000051'				.WORD .+1		;
    176	000052	000053'				.WORD .+1 		;FS.SET
    177	000054	001636'				.WORD CTLGET		;FS.GET
    178	000056	000057'				.WORD .+1		;NT$XON
    179	000060	000061'				.WORD .+1		;NT$XOF
    180
    181
    182					;  DISPATCH TABLE FOR RECEIVE COMPLETE
    183					;
    184
    185
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 7-1
DISPATCH TABLES

    186	000062	005764 	000006 		NRDRCP:	TST	C.LIN(R4)	;CLEVERLY FIGURE OUT WHO SENT IT
    187	000066	100005 				BPL	DLCRCP		;DLC IS POKING US
    188
    189					;	NSP DID IT
    190
    191	000070	000173 	000074'		NSPRCP:	JMP	@1$(R3)
    192
    193	000074	000544'			1$:	.WORD	NSPCON		;NT$CON	NSP RECEIVE CONNECT
    194	000076	001710'				.WORD	NSPDAT		;NT$DAT	NSP RECEIVE DATA
    195	000100	001710'				.WORD	NSPINT		;NT$INT NSP RECEIVE INTERRUPT
    196
    197					;	DLC IS GUILTY
    198
    199	000102	000173 	000106'		DLCRCP:	JMP	@1$(R3)
    200
    201	000106	000107'			1$:	.WORD	.+1
    202	000110	001410'				.WORD	DLCDAT		;NT$DAT DLC DATA TO USER
    203	000112	001410'				.WORD	DLCINT		;NT$INT DLC INTERRUPT  TO USER(ALERT)
    204
    205
    206
    207
    208					;
    209					;  DISPATCH TABLE FOR TRANSMIT COMPLETE
    210					;
    211
    212	000114	005764 	000006 		NRDXCP:	TST	C.LIN(R4)	;CONTROL COMPLETE - DETERMINE SENDER
    213	000120	100414 				BMI	NSPXCP		;NSP DID IT
    214
    215	000122	000173 	000126'		DLCXCP:	JMP	@1$(R3)		;DLC SENT IT
    216
    217	000126	000127'			1$:	.WORD	.+1		;NT$CON	DLC CONNECT COMPLETE
    218	000130	001066'				.WORD	DLCRTN		;NT$DAT	DLC DATA TRANSMITTED
    219	000132	001066'				.WORD	DLCRTI		;NT$INT	DLC INTERRUPT TRANSMITTED
    220	000134	000135'				.WORD	.+1		;NT$SNG
    221	000136	000137'				.WORD	.+1		;NT$DIS	DLC DISCONNECT COMPLETE
    222	000140	000141'				.WORD	.+1		;NT$MOD	DLC FLOW CONTROL MODIFIED
    223	000142	000143'				.WORD	.+1		;NT$QRY	DLC HERE ARE REMOTE REQUEST COUNTS
    224	000144	000145'				.WORD	.+1		;NT$XON	DLC LINK ENABLED
    225	000146	000147'				.WORD	.+1		;NT$XOF	DLC LINK DISABLED
    226	000150	000151'				.WORD	.+1		;NT$ABO	DLC ABORT COMPLETE
    227
    228
    229	000152	000173 	000156'		NSPXCP:	JMP	@10$(R3)	;DISPATCH TRANSMIT COMPLETE:
    230
    231	000156	000157'			10$:	.WORD	.+1		;NT$CON	NSP CONNECT COMPLETE
    232	000160	001300'				.WORD	NSPRTN		;NT$DAT	NSP DATA TRANSMITTED
    233	000162	001206'				.WORD	NRDINT		;NT$INT	NSP INTERRUPT TRANSMITTED
    234	000164	000165'				.WORD	.+1		;NT$SNG
    235	000166	002732'				.WORD	NRDDIS		;NT$DIS	NSP DISCONNECT COMPLETE
    236	000170	000000G				.WORD	$CCBRT		;NT$MOD	NSP FLOW CONTROL MODIFIED
    237	000172	000173'				.WORD	.+1		;NT$QRY	NSP HERE ARE REMOTE REQUEST COUNTS
    238	000174	000175'				.WORD	.+1		;NT$XON	NSP LINK ENABLED
    239	000176	000177'				.WORD	.+1		;NT$XOF	NSP LINK DISABLED
    240	000200	002732'				.WORD	NRDDIS		;NT$ABO	NSP ABORT COMPLETE
    241
    242					;
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 7-2
DISPATCH TABLES

    243					;  DISPATCH TABLE FOR CONTROL COMPLETE
    244					;
    245
    246	000202	005764 	000006 		NRDCCP:	TST	C.LIN(R4)	;FIND WHO IS CALLING
    247	000206	100413 				BMI	NSPCCP		;NSP DID IT
    248
    249	000210	000173 	000214'		DLCCCP:	JMP	@1$(R3)		;CONTROL COMPLETE DISPATCH
    250
    251	000214	000215'			1$:	.WORD	.+1		;FS.AST     ASYNCHRONOUS MSG
    252	000216	001556'				.WORD	CCPSTR		;FS.STR	DLC START COMPLETE
    253	000220	001556'				.WORD	CCPSTP		;FS.STP	DLC STOP COMPLETE
    254	000222	000223'				.WORD	.+1		;FS.TRM	    TERMINATE
    255	000224	000225'				.WORD	.+1		;NT$DIS	    RECEIVE DISCONNECT
    256	000226	000227'				.WORD	.+1		;FS.SET	    UNUSED
    257	000230	000231'				.WORD	.+1		;FS.GET	    UNUSED
    258	000232	000233'				.WORD	.+1		;NT$XON	    TURN FLOW ON
    259	000234	000235'				.WORD	.+1		;NT$XOF	    TURN FLOW OFF
    260
    261	000236	000173 	000242'		NSPCCP:	JMP	@1$(R3)		;NSP/NRM CCP DISPATCH
    262
    263	000242	000243'			1$:	.WORD	.+1		;FS.INI	    UNUSED
    264	000244	000245'				.WORD	.+1		;FS.STR	    START COMPLETE
    265	000246	000247'				.WORD	.+1		;FS.STP	    STOP COMPLETE
    266	000250	002576'				.WORD	NRMTRM		;FS.TRM	NRM TERMINATE
    267	000252	002404'				.WORD	NSPDIS		;NT$DIS	NSP RECEIVE DISCONNECT
    268	000254	000255'				.WORD	.+1		;FS.SET	    UNUSED
    269	000256	000257'				.WORD	.+1		;FS.GET	    UNUSED
    270	000260	002310'				.WORD	NSPXON		;NT$XON	NSP TURN FLOW ON
    271	000262	002236'				.WORD	NSPXOF		;NT$XOF	NSP TURN FLOW OFF
    272
    273
    274					;
    275					;  CRASH ROUTINE
    276					;
    277
    278	000264	000004 			CRASH:	IOT
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 8
MISCELLANEOUS GARBAGE

    280						.SBTTL MISCELLANEOUS GARBAGE
    281
    282
    283
    284
    285
    286
    287
    288					;   NURD DEVICE TYPES (TERMINAL TYPES TO NRM)
    289
    290	000266	   006 			NDVTB:	.BYTE	TT.LE		;LP11
    291	000267	   007 				.BYTE	TT.LP		;LP20
    292	000270	   011 				.BYTE	TT.CD		;CD20
    293	000271	   010 				.BYTE	TT.CR		;CR11
    294		000004 			NDVTBL=.-NDVTB
    295						.EVEN
    296
    297
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 9
NRDTIM	- CCB REDISPATCHER

    299						.SBTTL	NRDTIM	- CCB REDISPATCHER
    300					;+
    301					; QUEUE UP A CCB FOR A RESOURCE WAIT
    302					;
    303					; INPUTS:
    304					;	R4 - CCB TO QUEUE UP
    305					;	(SP) - RETRY ADDRESS
    306					;-
    307
    308	000272	012664 	000030 		NRDRWT:	MOV	(SP)+,C.CNT2(R4) ; SET THE RETURN ADDRESS
    309	000276	112764 	000022 	000010 		MOVB	#NR$RWT,C.FNC(R4) ; AND FUNCTION CODE.
    310
    311	000304	012703 	000002'		NRDQUE:	MOV	#.QUESW,R3	; POINT TO THE SWITCHES
    312	000310	052723 	000400 			BIS	#QS.CCB,(R3)+	; IF NO RECOVERY IN PROGRESS
    313	000314	100402 				BMI	10$		; THEN
    314	000316					CALLR	$CMQIN		; QUEUE TO THE REAR
	000316	000167 	000000G			JMP	$CMQIN
    315	000322				10$:	CALLR	$CMQIF		; OTHERWISE TO THE FRONT.
	000322	000167 	000000G			JMP	$CMQIF
    316
    317	000326	012703 	000002'		NRDTIM:	MOV	#.QUESW,R3	; POINT TO SWITCHES
    318	000332	005713 				TST	(R3)		; IF NOTHING TO DO
    319	000334	003425 				BLE	90$		; THEN QUIT.
    320	000336	052713 	100000 			BIS	#QS.CVR,(R3)	; OTHERWISE SET RECOVERY SWITCH
    321	000342	042723 	000400 		20$:	BIC	#QS.CCB,(R3)+	; RESET CCB PENDING SWITCH
    322	000346					CALL	$CMQRM		; AND SEE IF ANYTHING IS IN THE QUEUE.
	000346	004767 	000000G			JSR	PC,$CMQRM
    323	000352	103413 				BCS	80$		; IF SO,
    324	000354	116403 	000011 			MOVB	C.MOD(R4),R3	; PICK UP MODIFIER
    325	000360	116400 	000010 			MOVB	C.FNC(R4),R0	; AND FUNCTION CODE
    326	000364					CALL	@$NRDTB(R0)	; AND RE-DISPATCH FUNCTION.
	000364	004770 	000010'			JSR	PC,@$NRDTB(R0)
    327	000370	012703 	000002'			MOV	#.QUESW,R3	; POINT TO SWITCHES
    328	000374	032713 	000400 			BIT	#QS.CCB,(R3)	; IF NO RESOURCE ERROR,
    329	000400	001760 				BEQ	20$		; THEN GO FOR MORE.
    330	000402	042767 	100000 	177372 	80$:	BIC	#QS.CVR,.QUESW	; RESET RECOVERY SWTCH
    331	000410				90$:	RETURN			; AND WAIT.
	000410	000207 				RTS	PC
    332
    333					;+
    334					; RESOURCE WAIT COMPLETE - DISPATCH THE CCB TO THE RETRY ROUTINE
    335					;-
    336
    337	000412				NRDRWC:	GTPCB$			; GET THE PCB AND
	000412	005000 				  CLR	  R0
	000414	156400 	000006 			  BISB	  C.LIN(R4),R0
	000420	004767 	000000G			JSR	PC,$PCBPT
    338	000424	000174 	000030 			JMP	@C.CNT2(R4)	; DISPATCH TO RETRY ROUTINE.
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 10
NRDTIM	- CCB REDISPATCHER

    340					;+
    341					; FLUSH THE RESOURCE WAIT QUEUE OF REQUESTS FOR THE PIPE SPECIFIED
    342					; IN ".QUESW".
    343					;-
    344
    345	000430	012703 	000002'		NRDFLS:	MOV	#.QUESW,R3	; POINT TO THE SWITCHES
    346	000434	052713 	100000 			BIS	#QS.CVR,(R3)	; SIMULATE RESOURCE RECOVERY
    347	000440	042723 	000400 			BIC	#QS.CCB,(R3)+	; AND CLEAR THE CCB INDICATOR.
    348	000444	016346 	000002 			MOV	2(R3),-(SP)	; PUSH THE LIST HEAD
    349	000450	011346 				MOV	(R3),-(SP)	; ONTO THE STACK
    350	000452	005013 				CLR	(R3)		; AND CLEAR IT.
    351	000454	010363 	000002 			MOV	R3,2(R3)
    352	000460	010603 			10$:	MOV	SP,R3		; GET STACK LISTHEAD
    353	000462					CALL	$CMQRM		; AND GET NEXT ITEM
	000462	004767 	000000G			JSR	PC,$CMQRM
    354	000466	103421 				BCS	30$		; IF THERE IS ONE.
    355	000470	012703 	000002'			MOV	#.QUESW,R3	; GET SWITCHES
    356	000474	126413 	000006 			CMPB	C.LIN(R4),(R3)	; IS THIS FOR THE RIGHT PIPE ?
    357	000500	001405 				BEQ	20$		; IF NOT,
    358	000502	052723 	000400 			BIS	#QS.CCB,(R3)+	; INDICATE QUEUE NOT CLEAR
    359	000506					CALL	$CMQIN		; AND RE-INSERT THE REQUEST.
	000506	004767 	000000G			JSR	PC,$CMQIN
    360	000512	000762 				BR	10$
    361	000514	116403 	000011 		20$:	MOVB	C.MOD(R4),R3	; PICK UP MODIFIER
    362	000520	116400 	000010 			MOVB	C.FNC(R4),R0	; FUNCTION CODE
    363	000524					CALL	@$NRDTB(R0)	; AND DISPATCH.
	000524	004770 	000010'			JSR	PC,@$NRDTB(R0)
    364	000530	000753 				BR	10$		; GO BACK FOR MORE.
    365	000532	042767 	100000 	177242 	30$:	BIC	#QS.CVR,.QUESW	; TURN OFF RECOVERY BIT
    366	000540	022626 				CMP	(SP)+,(SP)+	; CLEAR OFF STACK
    367	000542					RETURN			; AND GO BACK.
	000542	000207 				RTS	PC
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 11
NSPCON	- CONNECT PROCESSOR

    369						.SBTTL	NSPCON	- CONNECT PROCESSOR
    370					;
    371					;  RECEIVE CONNECT
    372					;
    373					;  INPUTS:	R4 -> CONNECT CCB
    374					;	        CCB         	   CONNECT BLOCK
    375					;	--------------------	--------------------
    376					;	! 		   !	!    TARGET	   !  N.NODE
    377					;	=		   =	!     NODE	   !
    378					;	!		   !	!     NAME	   !
    379					;	!------------------!    !------------------!
    380					;C.LIN	!  NRD   !   LLA   !    ! TARGET SEGMENT   !  N.SEG
    381					;C.STA	!  PDV#  !	   !	!      SIZE        !
    382					;	!------------------!	!------------------!
    383					;C.FNC	! NT.CON ! FC.RCP  !	! NRM/NRD !   0    ! N.DFMT
    384					;C.MOD	!	 !	   !	! OBJ TYP !	   ! N.DOBJ
    385					;	!------------------!	!------------------!
    386					;	=		   =	=		   =
    387					;C.BUF	! DOUBLEWORD ADDR  !	! SOURCE  ! SOURCE ! N.SFMT
    388					;	! OF CONNECT BLOCK !	! OBJ TYP !  FMT   ! N.SOBJ
    389					;	!------------------!	!------------------!
    390					;C.CNT	!    SIZE OF	   !	!	SOURCE	   ! N.SDSC
    391					;	!  CONNECT BLOCK   !	!    DESCRIPTOR	   !
    392					;	!------------------!	=		   =
    393					;C.FLG	!     FLAGS	   !	!		   !
    394					;	!------------------!	!------------------!
    395					;				!REQSTR ID LEN = 2 ! N.RQDL
    396					;	 (SECOND DESCRIPTOR	!------------------!
    397					;	 ONLY IF CONNECTING	!    USER ID	   ! N.RQID
    398					;	 DATA PIPE TO NRD)	!------------------!
    399					;
    400					;	!------------------!
    401					;C.BUF2 ! DOUBLEWORD ADDR. !
    402					;	! OF OPTIONAL DATA !
    403					;	! BUFFER	   !
    404					;	!------------------!
    405					;C.CNT2	! LENGTH OF BUFFER !
    406					;	!------------------!
    407					;
    408					;
    409					;  OUTPUT:	R4 -> CONNECT CCB
    410					;
    411					;		CCB		  OPTIONAL DATA (NRD ACCEPT ONLY)
    412					;	!------------------!	!-------------------!
    413					;	!		   !	!     BULA	    !
    414					;	=		   =	!-------------------!
    415					;	!		   !
    416					;	!------------------!
    417					;C.LIN	! PD$NSP !  ULA	   !
    418					;C.STA	!	 !	   !
    419					;	!------------------!
    420					;C.FNC	! NT.ACC ! FC.RCE  !
    421					;C.MOD	!   OR   !	   !
    422					;	! NT.REJ !	   !
    423					;	!------------------!
    424					;	!		   !
    425					;	=		   =
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 11-1
NSPCON	- CONNECT PROCESSOR

    426					;	!		   !
    427					;	!------------------!
    428					;C.CNT  ! LENGTH OF OPT.   !
    429					;	! DATA = 0 OR 2    !
    430					;	!------------------!
    431					;
    432
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 12
NSPCON	- CONNECT PROCESSOR

    434	000544				NSPCON:
    435	000544	010405 				MOV	R4,R5		; SAVE CONNECT CCB
    436	000546					CALL	$CCBGT		; AND TRY FOR A FLOW CCB
	000546	004767 	000000G			JSR	PC,$CCBGT
    437	000552	103003 				BCC	10$		; IF NOT RECIEVED
    438	000554	010504 				MOV	R5,R4
    439	000556					CALLR	NRDQUE		; WAIT UNTIL WE CAN GET ONE.
	000556	000167 	177522 			JMP	NRDQUE
    440	000562	010401 			10$:	MOV	R4,R1		; SAVE FLOW CCB ADDRESS
    441	000564	010504 				MOV	R5,R4		; AND RECOVER CONNECT CCB.
    442	000566					MAP	C.BUF(R4)	; MAP TO AND
	000566	016467 	000014 	172354 		MOV	  C.BUF(R4),KISAR6
    443	000574	016402 	000016 			MOV	C.BUF+2(R4),R2	; GET ADDRESS OF CONNECT BLOCK.
    444	000600	026227 	000006 	000003 		CMP	N.SEG(R2),#3.	; NO MINIMUM SEGMENT SIZE TO SPEAK OF
    445	000606	002407 				BLT	20$		; BUT MUST BE ABLE TO HOLD HEADER.
    446	000610	026227 	000060 	000002 		CMP	N.RQDL(R2),#2	; IF USERID LENGTH
    447	000616	001003 				BNE	20$		; NOT 2 BYTES LONG THEN REJECT.
    448	000620					CALL	$PCBGT		; GET A PCB
	000620	004767 	000000G			JSR	PC,$PCBGT
    449	000624	103024 				BCC	30$		; IF THERE IS NOT ONE AVAILABLE
    450	000626				20$:	NREJ$	#0		; REJECT THE CONNECTION
	000626	016446 	000004 			MOV	C.NSP(R4),-(SP)
	000632	016464 	000006 	000004 		MOV	C.LIN(R4),C.NSP(R4)
	000640	012664 	000006 			MOV	(SP)+,C.LIN(R4)
	000644	005064 	000020 			    CLR	    C.CNT1(R4)
	000650	012764 	002002 	000010 		MOV	#<NT$REJ*400!FC.RCE>,C.FNC(R4)
	000656	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	000664	004767 	000000G			JSR	PC,$LLCRS
    451	000670	010104 				MOV	R1,R4		; AND
    452	000672					CALLR	$CCBRT		; RETURN THE FLOW CCB.
	000672	000167 	000000G			JMP	$CCBRT
    453
    454					;
    455					;  GOT A PCB - FORMAT IT AND ACCEPT CONNECTION
    456					;
    457
    458	000676	016263 	000062 	000006 	30$:	MOV	N.RQID(R2),P.USER(R3) ; SAVE USER ID IN PCB
    459	000704	016263 	000006 	000022 		MOV	N.SEG(R2),P.SEG(R3) ;SEGMENT SIZE
    460	000712	116463 	000007 	000021 		MOVB	C.STA(R4),P.SPI(R3) ; WE NOW OWN THIS PIPE
    461	000720					GTLLA$	P.LLA(R3)	; ON THIS LLA
	000720	116463 	000004 	000016 		  MOVB	  C.NSP(R4),P.LLA(R3)
    462	000726	005063 	000004 			CLR	P.CBTN(R3)	; CLEAR CURRENT BTN.
    463	000732	052763 	020022 	000010 		BIS	#PS.CC!PS.DAT!PS.BP,P.STS(R3) ; MARK PCB AS "CONNECT COMPLETE"
    464
    465	000740	116312 	000020 			MOVB	P.NUM(R3),(R2)	; MOVE BULA TO OPTIONAL DATA
    466	000744					NACC$	(R2),#NT.SFL,#1	; ACCEPT CONNECTION (USING BULA AS ULA)
	000744	016446 	000004 			MOV	C.NSP(R4),-(SP)
	000750	016464 	000006 	000004 		MOV	C.LIN(R4),C.NSP(R4)
	000756	012664 	000006 			MOV	(SP)+,C.LIN(R4)
	000762	111264 	000004 			    MOVB    (R2),C.NSP(R4)
	000766	012764 	000001 	000012 		    MOV	    #NT.SFL,C.STS(R4)
	000774	012764 	000001 	000020 		    MOV	    #1,C.CNT1(R4)
	001002	012764 	001002 	000010 		MOV	#<NT$ACC*400!FC.RCE>,C.FNC(R4)
	001010	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	001016	004767 	000000G			JSR	PC,$LLCRS
    467	001022	010104 				MOV	R1,R4		; GET THE FLOW CCB
    468	001024	005064 	000016 			CLR	C.BUF+2(R4)	; INDICATE NO BUFFER.
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 12-1
NSPCON	- CONNECT PROCESSOR

    469	001030					NMOD$	P.LLA(R3),.FLOW	; SET FLOW COUNT.
	001030	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	001036	116764 	176736 	000004 		    MOVB    .FLOW,C.NSP(R4)
	001044	012764 	005000 	000010 		MOV	#<NT$MOD*400!FC.XME>,C.FNC(R4)
	001052	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	001060	004767 	000000G			JSR	PC,$LLCRS
    470	001064					RETURN
	001064	000207 				RTS	PC
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 13
TRANSMIT COMPLETE PROCESSOR

    472						.SBTTL	TRANSMIT COMPLETE PROCESSOR
    473					;
    474					;  TRANSMIT COMPLETE PROCESSOR
    475					;
    476					;   FROM NSP:	NT$DAT,NT$INT - RESOURCE RETURN
    477					;   FROM DLC:	NT$DAT,NT$INT - RESOURCE RETURN
    478					;
    479					;  R4 -> A COMPLETED CCB
    480					;
    481
    482
    483	001066				DLCRTI:					;DLC - INTERRUPT RESOURCE RETURN
    484
    485	001066				DLCRTN:					;DLC - DATA RESOURCE RETURN
    486	001066	005000 				CLR	R0
    487	001070	156400 	000006 			BISB	C.LIN(R4),R0		;GET TERMINAL NUMBER
    488	001074					CALL	$TCBPT			;GET R5/TCB
	001074	004767 	000000G			JSR	PC,$TCBPT
    489	001100					BADTNM
	001100	103001 				BCC	9$
	001102	000004 				IOT
    490	001104	016503 	000006 			MOV	T.PCBD(R5),R3		;GET R3/PCB
    491					;	JMP	NSPRET			;NOW RETURN THE CCB TO NSP
    492					;
    493					; NSPRET - ENTER HERE TO RETURN A CCB TO NSP
    494					;
    495					;	R3 - PCB ADDRESS
    496					;	R4 - CCB TO RETURN
    497					;
    498	001110	122764 	000004 	000011 	NSPRET:	CMPB	#NT$INT,C.MOD(R4)	;CHECK TYPE OF RETURN
    499	001116	001417 				BEQ	10$			;INTERRUPT
    500	001120					NRTN$	P.LLA(R3),#NT.MD1!NT.ACK	;DATA - ACK AND INCREMENT THE FLOW COUNT
	001120	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	001126	012764 	000421 	000012 		    MOV	    #NT.MD1!NT.ACK,C.STS(R4)
	001134	012764 	000002 	000010 		MOV	#<NT$RTN*400!FC.RCE>,C.FNC(R4)
	001142	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	001150	004767 	000000G			JSR	PC,$LLCRS
    501	001154					RETURN
	001154	000207 				RTS	PC
    502
    503	001156				10$:	NRTI$	P.LLA(R3)		;RETURN THE INTERRUPT CCB
	001156	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	001164	012764 	004002 	000010 		MOV	#<NT$RTI*400!FC.RCE>,C.FNC(R4)
	001172	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	001200	004767 	000000G			JSR	PC,$LLCRS
    504	001204					RETURN
	001204	000207 				RTS	PC
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 14
NRDINT	- INTERUPT MESSAGE SENT

    506						.SBTTL	NRDINT	- INTERUPT MESSAGE SENT
    507					;+
    508					; IT IS POSSIBLE THAT AN INTERRUPT MESSAGE MIGHT NOT BE SENT DUE TO THE
    509					; NSP RESTRICTION THAT ONLY ONE INTERRUPT MESSAGE MAY BE PENDING AT ANY
    510					; TIME.  IF  WE COME BACK WITH THE ERROR 'NE.TIM' QUEUE THE CCB UP TO
    511					; RE-ISSUE THE MESSAGE AFTER A CLOCK TICK.
    512					;
    513					; INPUT:
    514					;	R4 - CCB W/FC.XCP INTERRUPT MESSAGE
    515					;-
    516
    517	001206				NRDINT:				;NSP IS RETURNING AN INTERRUPT MSG
    518	001206	122764 	177772 	000012 		CMPB	#NE.TIM,C.STS(R4) ; IF NOT TOO MANY INTERRUPTS
    519	001214	001031 				BNE	90$		; THEN RETURN THE BUFFER
    520	001216					CALL	NRDRWT		; OTHERWISE WAIT A SECOND
	001216	004767 	177050 			JSR	PC,NRDRWT
    521	001222					GTULA$	R0		; GET THE PIPE NUMBER
	001222	005000 				  CLR	  R0
	001224	156400 	000006 			  BISB	  C.LIN(R4),R0
    522	001230					CALL	$PCBPT		; THE PCB ENTRY
	001230	004767 	000000G			JSR	PC,$PCBPT
    523	001234					BADPIPE
	001234	103001 				BCC	9$
	001236	000004 				IOT
    524	001240	032763 	000002 	000010 		BIT	#PS.CC,P.STS(R3);IS PIPE STILL VALID?
    525	001246	001414 				BEQ	90$		;NO, SO RETURN CCB TO SERVER
    526									;YES, SO SEND INTERRUPT MESSAGE
    527	001250					NINT$	P.LLA(R3)	; AND TRY TO RE-INTERRUPT.
	001250	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	001256	012764 	002000 	000010 		MOV	#<NT$INT*400!FC.XME>,C.FNC(R4)
	001264	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	001272	004767 	000000G			JSR	PC,$LLCRS
    528	001276					RETURN
	001276	000207 				RTS	PC
    529	001300				90$:				;FALL INTO NSPRTN
    530
    531
    532
    533	001300				NSPRTN:					;NSP IS RETURNING A DATA CCB
    534	001300	005000 				CLR	R0
    535	001302	156400 	000006 			BISB	C.LIN(R4),R0		;GET PIPE NUMBER
    536	001306					CALL	$PCBPT			;GET R3/PCB
	001306	004767 	000000G			JSR	PC,$PCBPT
    537	001312					BADPIPE
	001312	103001 				BCC	9$
	001314	000004 				IOT
    538	001316	016305 	000002 			MOV	P.OPN(R3),R5		;GET THE TCB
    539	001322					CALL	NRDDEV			;CHECK PROPRIETY
	001322	004767 	001432 			JSR	PC,NRDDEV
    540	001326	103001 				BCC	10$
    541	001330					CRASH				;NSP IS SENDING COMPLETE TO WRONG SERVER
	001330	000004 				IOT
    542	001332	016464 	000026 	000016 	10$:	MOV	C.BUF2+2(R4),C.BUF+2(R4)	;UNMUNG BUF PTR
    543	001340	112764 	000002 	000010 		MOVB	#FC.RCE,C.FNC(R4)	;MAP THE FCN CODE,LEAVE C.MOD AS IS
    544	001346	116400 	000011 			MOVB	C.MOD(R4),R0		;SAVE THE MSG TYPE
    545	001352					$QDLC	,T.NUM(R5)		;SHIP CCB BACK TO DLC
	001352	116564 	000016 	000006 		MOVB	T.NUM(R5),C.LIN(R4)
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 14-1
NRDINT	- INTERUPT MESSAGE SENT

	001360	004767 	000000G			JSR	PC,$LLCRQ
    546	001364	122700 	000004 			CMPB	#NT$INT,R0		;CHECK MSG TYPE
    547	001370	001406 				BEQ	20$			;INTERRUPT - JUST GO AWAY
    548	001372	032763 	000020 	000010 		BIT	#PS.BP,P.STS(R3)	;DATA - IS LINE XOF'D?
    549	001400	001002 				BNE	20$
    550	001402	000167 	000732 			JMP	UNQUE			;IF NOT, GO CHECK BACKPRESSURE QUEUE
    551	001406				20$:	RETURN				;IF SO, JUST GO AWAY
	001406	000207 				RTS	PC
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 15
RECEIVE COMPLETE PROCESSORS

    553						.SBTTL	RECEIVE COMPLETE PROCESSORS
    554					;
    555					;  RECEIVE COMPLETE PROCESSOR
    556					;
    557					;	FROM NSP:	NT$CON - CONNECT REQ TO GET DATA PIPE
    558					;			NT$DAT - INCOMING DATA
    559					;	FROM DLC:	NT$DAT - OUTGOING DATA
    560					;			NT$INT - OUTGOING INTERRUPT MSG(ALERT)
    561					;
    562					;  INPUTS:	R4 -> CCB
    563					;		R3 = SUBFUNCTION = C.MOD(R4)
    564					;
    565					;  OUTPUTS:	DEPENDENT ON SUB-FUNCTION
    566					;
    567
    568
    569
    570
    571					;
    572					;   RECEIVE DATA FROM DLC
    573					;
    574					;   R4/CCB
    575					;
    576
    577
    578
    579
    580
    581
    582	001410				DLCINT:						;DLC IS SENDING AN INTERRUPT MSG
    583
    584	001410				DLCDAT:						;DLC IS SENDING A DATA MSG
    585	001410	005000 				CLR	R0
    586	001412	156400 	000006 			BISB	C.LIN(R4),R0			;GET THE TERMINAL NUMBER
    587	001416					CALL	$TCBPT				;GET R5/TCB
	001416	004767 	000000G			JSR	PC,$TCBPT
    588	001422					BADTNM
	001422	103001 				BCC	9$
	001424	000004 				IOT
    589	001426	016503 	000006 			MOV	T.PCBD(R5),R3			;GET THE PCB
    590	001432	016464 	000016 	000026 		MOV	C.BUF+2(R4),C.BUF2+2(R4)	;HIDE BUF PTR FROM NSP
    591
    592	001440	122764 	000004 	000011 		CMPB	#NT$INT,C.MOD(R4)		;CHECK TYPE
    593	001446	001427 				BEQ	30$				;INTERRUPT
    594	001450	005763 	000012 			TST	P.BPQ(R3)			;CHECK FOR WAITING LINE
    595	001454	001004 				BNE	10$				;IF SO, JUST QUEUE
    596	001456	032763 	000020 	000010 		BIT	#PS.BP,P.STS(R3)		;CHECK FOR CONSTIPATION
    597	001464	001404 				BEQ	20$
    598	001466	062703 	000012 		10$:	ADD	#P.BPQ,R3			;SET R3/BACKPRESSURE QUEUE
    599	001472					CALLR	$CMQIN				;STUFF  THE CCB IN QUEUE
	001472	000167 	000000G			JMP	$CMQIN
    600
    601	001476				20$:	NDAT$	P.LLA(R3)			;SEND DATA OFF TO NSP
	001476	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	001504	012764 	001000 	000010 		MOV	#<NT$DAT*400!FC.XME>,C.FNC(R4)
	001512	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	001520	004767 	000000G			JSR	PC,$LLCRS
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 15-1
RECEIVE COMPLETE PROCESSORS

    602	001524					RETURN
	001524	000207 				RTS	PC
    603
    604	001526				30$:	NINT$	P.LLA(R3)			;SEND INTERRUPT TO NSP
	001526	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	001534	012764 	002000 	000010 		MOV	#<NT$INT*400!FC.XME>,C.FNC(R4)
	001542	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	001550	004767 	000000G			JSR	PC,$LLCRS
    605	001554					RETURN
	001554	000207 				RTS	PC
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 16
CONTROL COMPLETE PROCESSOR

    607						.SBTTL CONTROL COMPLETE PROCESSOR
    608
    609					;
    610					;  CONTROL COMPLETE PROCESSOR
    611					;
    612					;  INPUTS:	R4 -> CCB
    613					;
    614
    615
    616
    617	001556				CCPSTP:					;DLC IS RETURNING STOP COMPLETE
    618	001556				CCPSTR:					;DLC IS RETURNING START COMPLETE
    619					;	JMP	SNDNRM		;RETURN CCB TO NRM
    620	001556				SNDNRM:	$QLLC	,#PD$NRM		;DON'T MUNG ANYTHING, JUST SEND IT
	001556	112764 	000000G	000007 		MOVB	#PD$NRM,C.STA(R4)
	001564	004767 	000000G			JSR	PC,$LLCRS
    621	001570					RETURN
	001570	000207 				RTS	PC
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 17
CONTROL ENABLE PROCESSING

    623						.SBTTL CONTROL ENABLE PROCESSING
    624
    625					; NRM START AND STOP FUNCTIONS
    626
    627
    628	001572				CTLSTP:					;NRM - STOP DEV(CLOSE)
    629	001572				CTLSTR:					;NRM - START DEV(OPEN)
    630
    631	001572	005000 				CLR	R0
    632	001574	156400 	000006 			BISB	C.LIN(R4),R0		;GET THE TERMINAL NUMBER
    633	001600					CALL	$TCBPT			;GET R5/TCB
	001600	004767 	000000G			JSR	PC,$TCBPT
    634	001604					BADTNM
	001604	103001 				BCC	9$
	001606	000004 				IOT
    635	001610					CALL	NRDDEV			;MAKE SURE IT IS A NURD DEV
	001610	004767 	001144 			JSR	PC,NRDDEV
    636	001614	103403 				BCS	110$			;LOSER
    637	001616					$QDLC				;SEND START/STOP DOWN TO DLC
	001616	004767 	000000G			JSR	PC,$LLCRQ
    638	001622					RETURN
	001622	000207 				RTS	PC
    639
    640
    641	001624	112764 	000020 	000010 	110$:	MOVB	#FC.CCP,C.FNC(R4)	;RETURN CCB TO NRM WITH ERROR CODE
    642	001632	000167 	177720 			JMP	SNDNRM
    643
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 18
CONTROL ENABLE,FS.GET FROM NRM

    645						.SBTTL	CONTROL ENABLE,FS.GET FROM NRM
    646					;
    647					;  THIS SHOULD BE A 'FS.GET' FROM NRM REQUESTING THE INDEX OF THE LLC
    648					;  WHICH IS TO BE SERVER FOR A SPECIFIED RESOURCE.
    649					;
    650					;  INPUTS:
    651					;	R4 - CONTROL CCB
    652					;		C.LIN - TERMINAL NUMBER
    653					;
    654					;  OUTPUTS:
    655					;	IN CONTROL COMPLETE CCB:
    656					;		C.STS - STATUS OF SERVER CHECK:
    657					;			+1 - SERVER FOUND
    658					;			-1 - NO SERVER AVAILABLE FOR SPECIFIED RESOURCE
    659					;		@C.BUF2 - BYTE OF SERVER PROCESS INDEX
    660					;
    661
    662	001636	012764 	000001 	000012 	CTLGET:	MOV	#1,C.STS(R4)	; ASSUME SUCCESS
    663	001644	005000 				CLR	R0
    664	001646	156400 	000006 			BISB	C.LIN(R4),R0			;GET THE TERMINAL NUMBER
    665	001652					CALL	$TCBPT				;GET R5/TCB
	001652	004767 	000000G			JSR	PC,$TCBPT
    666	001656					BADTNM
	001656	103001 				BCC	9$
	001660	000004 				IOT
    667	001662					CALL	NRDDEV		;VERIFY NURD DEVICE
	001662	004767 	001072 			JSR	PC,NRDDEV
    668	001666	103403 				BCS	90$		;C.STS ERROR CODE SET
    669	001670	116774 	000000G	000026 		MOVB	$CMPDV,@C.BUF2+2(R4) ; SET PROCESS INDEX = NRD
    670	001676	012764 	006020 	000010 	90$:	MOV	#<FC.CCP!FS.GET>,C.FNC(R4)
    671	001704	000167 	177646 			JMP	SNDNRM		;SEND BACK TO NRM
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 19
NSPDAT - RECEIVE DATA FROM NSP

    673						.SBTTL	NSPDAT - RECEIVE DATA FROM NSP
    674					;
    675					;  DATA AND INTERRUPTS RECEIVED FROM NSP
    676					;
    677					;  INPUTS:	R4 -> DATA CCB
    678					;		  C.FNC = FC.RCP
    679					;		  C.MOD = NT.DAT OR NT$INT
    680					;		  C.LIN = ULA (PIPE#)
    681					;		  C.BUF -> DATA BUFFER
    682					;		  C.CNT = LENGTH OF BUFFER
    683					;
    684					;  OUTPUTS:	CCB SENT ON TO PROPER SERVER (LP11,LP20,CD20,CR11)
    685					;
    686
    687
    688					;
    689					;  MAP ULA TO PCB ADDRESS
    690					;
    691
    692
    693	001710				NSPINT:				;NSP INTERRUPT MSG TO NRD DEVICE
    694
    695	001710				NSPDAT:				;NSP DATA MSG TO NRD DEVICE
    696	001710	005000 				CLR	R0		;PICK UP
    697	001712	156400 	000006 			BISB	C.LIN(R4),R0	;  PIPE#
    698	001716					CALL	$PCBPT		;ADDRESS PCB
	001716	004767 	000000G			JSR	PC,$PCBPT
    699	001722					BADPIPE
	001722	103001 				BCC	9$
	001724	000004 				IOT
    700
    701	001726	032763 	000002 	000010 		BIT	#PS.CC,P.STS(R3);LINK STILL VALID?
    702	001734	001002 				BNE	5$		;YES, PROCESS DATA
    703	001736	000167 	177146 			JMP	NSPRET		;NO, RETURN CCB TO NSP
    704	001742				5$:
    705					;
    706					;   GET THE TCB AND ENTER PARANOID MODE
    707					;
    708	001742	016305 	000002 			MOV	P.OPN(R3),R5	;1ST TCB ON LIST
    709	001746	001423 				BEQ	INVBTN		;LOSER FORGOT TO HACK NRM
    710	001750	032765 	000004 	000012 		BIT	#TS.OP,T.STS(R5) ;CHECK IF TERMINAL IS OPEN
    711	001756	001417 				BEQ	INVBTN		;NOPE.
    712	001760	026503 	000006 			CMP	T.PCBD(R5),R3	;DOES IT BELONG TO THIS PIPE ?
    713	001764	001014 				BNE	INVBTN		;TOO BAD...
    714	001766					CALL	NRDDEV		;CHECK IF NURD DEVICE
	001766	004767 	000766 			JSR	PC,NRDDEV
    715	001772	103411 				BCS	INVBTN		;NOT SO PRETTY GOO
    716
    717
    718	001774				10$:
    719	001774	116564 	000016 	000006 		MOVB	T.NUM(R5),C.LIN(R4)	;ADDRESS THE DLC PROCESS VIA TERMINAL NO.
    720	002002	112764 	000000 	000010 		MOVB	#FC.XME,C.FNC(R4)	;MAP THE FCN CODE
    721
    722	002010					$QDLC				;SEND THE CCB TO THE DLC
	002010	004767 	000000G			JSR	PC,$LLCRQ
    723	002014					RETURN
	002014	000207 				RTS	PC
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 19-1
NSPDAT - RECEIVE DATA FROM NSP

    724
    725
    726
    727					;+
    728					;  INVALID BTN DETECTED - SEND AN INTERRUPT MESSAGE TO THE HOST.
    729					;
    730					; INPUTS:
    731					;	R0 - PIPE NUMBER
    732					;	R4 - NSP MESSAGE WITH INVALID BTN
    733					;	R3 - PCB ON WHICH MESSAGE WAS RECEIVED
    734					;-
    735
    736	002016	010401 			INVBTN:	MOV	R4,R1		; SAVE NSP BUFFER
    737	002020					CALL	$CSBGT		; AND ASK FOR A RESPONSE BUFFER.
	002020	004767 	000000G			JSR	PC,$CSBGT
    738	002024	103003 				BCC	50$		; IF NOT AVAILABLE
    739	002026	010104 				MOV	R1,R4		; GET DATA CCB
    740	002030					CALLR	NRDQUE		; AND REQUE FOR LATER.
	002030	000167 	176250 			JMP	NRDQUE
    741	002034	010405 			50$:	MOV	R4,R5		; SAVE NEW CCB ADDRESS
    742	002036	010104 				MOV	R1,R4		; AND ACK
    743	002040	122764 	000004 	000011 		CMPB	#NT$INT,C.MOD(R4)	;CHECK MSG TYPE
    744	002046	001417 				BEQ	55$		;INTERRUPT
    745	002050					NRTN$	P.LLA(R3),#NT.MD1!NT.ACK	; ACK AND INCREMENT THE FLOW COUNT
	002050	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	002056	012764 	000421 	000012 		    MOV	    #NT.MD1!NT.ACK,C.STS(R4)
	002064	012764 	000002 	000010 		MOV	#<NT$RTN*400!FC.RCE>,C.FNC(R4)
	002072	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	002100	004767 	000000G			JSR	PC,$LLCRS
    746	002104	000413 				BR	59$
    747
    748	002106				55$:	NRTI$	P.LLA(R3)	;ACK THE INTERRUPT MSG
	002106	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	002114	012764 	004002 	000010 		MOV	#<NT$RTI*400!FC.RCE>,C.FNC(R4)
	002122	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	002130	004767 	000000G			JSR	PC,$LLCRS
    749
    750	002134				59$:
    751	002134	010504 				MOV	R5,R4		;GET THE RESPONSE CCB READY
    752
    753	002136				70$:	MAP	C.BUF(R4)	; MAP TO THE BUFFER
	002136	016467 	000014 	172354 		MOV	  C.BUF(R4),KISAR6
    754	002144	016402 	000016 			MOV	C.BUF+2(R4),R2	; GET ITS ADDRESS
    755	002150	010264 	000026 			MOV	R2,C.BUF2+2(R4)	; AND STORE FOR NSP.
    756	002154	112722 	000002 			MOVB	#2,(R2)+	; SET A CONTROL PACKET
    757	002160	110022 				MOVB	R0,(R2)+	; USE THE BTN
    758	002162	000300 				SWAB	R0		; AS
    759	002164	110022 				MOVB	R0,(R2)+	; THEN HTN.
    760	002166	112722 	000001 			MOVB	#1,(R2)+	; SET PACKET LENGTH = 1 AND
    761	002172	112722 	000005 			MOVB	#5,(R2)+	; GIVE AN INVALID BTN ERROR CODE.
    762	002176	166402 	000016 			SUB	C.BUF+2(R4),R2	; FIGURE LENGTH
    763	002202					NINT$	P.LLA(R3),<,,R2> ; AND SEND THE DIP.
	002202	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	002210	010264 	000020 			    MOV	    R2,C.CNT1(R4)
	002214	012764 	002000 	000010 		MOV	#<NT$INT*400!FC.XME>,C.FNC(R4)
	002222	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	002230	004767 	000000G			JSR	PC,$LLCRS
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 19-2
NSPDAT - RECEIVE DATA FROM NSP

    764	002234					RETURN
	002234	000207 				RTS	PC
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 20
NSPXOF	- BACK-PRESSURE A LINE

    766						.SBTTL	NSPXOF	- BACK-PRESSURE A LINE
    767					;+
    768					; WHEN THE OTHER END OF THE LINK IS TIRED OF US, EITHER THROUGH
    769					; FLOW CONTROL OR THE USE OF BACK-PRESSURE COMMANDS, WE WILL BE NOTIFIED
    770					; THROUGH THIS ENTRY TO STOP SENDING. WE SIMPLY SET THE BACK-PRESSURE BIT
    771					; IN THE PIPE STATUS WORD.
    772					;
    773					; INPUTS:
    774					;	R4 - FREE CCB WITH PIPE NUMBER (ULA)
    775					;
    776					; NO OUTPUTS
    777					;-
    778
    779	002236				NSPXOF:	GTULA$	R0		; GET THE PIPE NUMBER
	002236	005000 				  CLR	  R0
	002240	156400 	000006 			  BISB	  C.LIN(R4),R0
    780	002244					CALL	$PCBPT		; AND ASSOCIATED PCB.
	002244	004767 	000000G			JSR	PC,$PCBPT
    781	002250					BADPIPE
	002250	103001 				BCC	9$
	002252	000004 				IOT
    782	002254	052763 	000020 	000010 		BIS	#PS.BP,P.STS(R3) ; INDICATE BACK-PRESSURED.
    783									;SEND XOF ON TO DLC
    784	002262	016305 	000002 		SNDLC:	MOV	P.OPN(R3),R5	;GET R5/TCB
    785	002266	001002 				BNE	10$
    786	002270	000167 	000000G			JMP	$CCBRT		;LINK NOT FULLY OPENED YET - JUST FLUSH CCB
    787
    788	002274	116564 	000016 	000006 	10$:	MOVB	T.NUM(R5),C.LIN(R4)	;READDRESS FOR DLC
    789
    790	002302					$QDLC
	002302	004767 	000000G			JSR	PC,$LLCRQ
    791
    792	002306					RETURN
	002306	000207 				RTS	PC
    793
    794						.SBTTL	NSPXON	- ENABLE BACK-PRESSURED LINE
    795					;+
    796					; WHEN NSP IS READY TO ACCEPT DATA ON THE DATA LINK, NRD WILL BE
    797					; NOTIFIED THROUGH THIS ENTRY
    798					;
    799					; INPUTS:
    800					;	R4 - FREE CCB WITH PIPE NUMBER (ULA)
    801					;-
    802
    803	002310				NSPXON:	GTULA$	R0		; GET THE PIPE NUMBER
	002310	005000 				  CLR	  R0
	002312	156400 	000006 			  BISB	  C.LIN(R4),R0
    804	002316					CALL	$PCBPT		; AND ASSOCIATED PCB.
	002316	004767 	000000G			JSR	PC,$PCBPT
    805	002322					BADPIPE
	002322	103001 				BCC	9$
	002324	000004 				IOT
    806	002326					CALL	SNDLC		;SEND XON DOWN TO DLC
	002326	004767 	177730 			JSR	PC,SNDLC
    807	002332	042763 	000020 	000010 		BIC	#PS.BP,P.STS(R3) ; CLEAR BACK-PRESSURE FLAG
    808
    809
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 20-1
NSPXON	- ENABLE BACK-PRESSURED LINE

    810
    811	002340				UNQUE:				;COME HERE TO ATTEMPT TO RIP OFF A HUNK
    812									;OF THE BACKPRESSURE QUEUE
    813									;R3/PCB PTR
    814
    815	002340	116301 	000016 			MOVB	P.LLA(R3),R1	; GET LLA
    816	002344	062703 	000012 			ADD	#P.BPQ,R3	; AND POINT TO BACK-PRESSURE QUEUE.
    817	002350					CALL	$CMQRM		; SEE IF THERE ARE
	002350	004767 	000000G			JSR	PC,$CMQRM
    818	002354	103412 				BCS	90$		; CCBS AWAITING TRANSMISSION.
    819	002356					NDAT$	R1		; IF SO, SEND IT
	002356	110164 	000006 			    MOVB    R1,C.LIN(R4)
	002362	012764 	001000 	000010 		MOV	#<NT$DAT*400!FC.XME>,C.FNC(R4)
	002370	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	002376	004767 	000000G			JSR	PC,$LLCRS
    820
    821	002402				90$:	RETURN
	002402	000207 				RTS	PC
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 21
NSPDIS - DISCONNECT RECEIVED FOR A DATA PIPE

    823						.SBTTL	NSPDIS - DISCONNECT RECEIVED FOR A DATA PIPE
    824					;
    825					;  DISCONNECT RECEIVED - CLOSE DATA PIPE VIA NRM
    826					;
    827					;  INPUTS:	R4 -> CCB
    828					;		  C.LIN = ULA FOR DATA PIPE
    829					;
    830					;  OUTPUTS:	"TERMINATE" CONTROL FUNCTION SENT TO NRM
    831					;
    832
    833	002404				NSPDIS:
    834	002404	016400 	000016 			MOV	C.BUF+2(R4),R0	; IF THERE IS OPTIONAL DATA
    835	002410	001407 				BEQ	10$		; THEN
    836	002412	010401 				MOV	R4,R1		; SAVE THE DISCONNECT CCB
    837	002414	010004 				MOV	R0,R4		; AND
    838	002416					CALL	$CCBRT		; RELEASE THE DATA CCB.
	002416	004767 	000000G			JSR	PC,$CCBRT
    839	002422	010104 				MOV	R1,R4
    840	002424	005064 	000016 			CLR	C.BUF+2(R4)	;INDICATE "NO BUFFER"
    841
    842					;
    843					;  SEND A "TERMINATE" SIGNAL TO THE NRM
    844					;
    845
    846	002430	005000 			10$:	CLR	R0			;GET THE PIPE NO.
    847	002432	156400 	000006 			BISB	C.LIN(R4),R0
    848	002436					CALL	$PCBPT			;GET R3/PCB
	002436	004767 	000000G			JSR	PC,$PCBPT
    849	002442					BADPIPE
	002442	103001 				BCC	9$
	002444	000004 				IOT
    850
    851	002446	110067 	175330 			MOVB	R0,.QUESW		;SETUP PIPE NUMBER FOR FLUSH
    852	002452	042763 	000002 	000010 		BIC	#PS.CC,P.STS(R3)	;NO LONGER OPEN
    853	002460	122764 	177776 	000012 		CMPB	#NE.ABO,C.STS(R4)	;CHECK FOR ABORT
    854	002466	001003 				BNE	20$			;JUST A DISCONNECT
    855	002470	052763 	000010 	000010 		BIS	#PS.ABO,P.STS(R3)	;SET THE ABORT STATUS ON PIPE
    856
    857	002476	016305 	000002 		20$:	MOV	P.OPN(R3),R5	;GET R5/TCB
    858	002502	001426 				BEQ	50$		;CONTROL PIPE HAS ALREADY BEEN FLUSHED
    859	002504					CALL	NRDDEV		;CHECK PROPRIETY
	002504	004767 	000250 			JSR	PC,NRDDEV
    860	002510	103001 				BCC	25$
    861	002512					CRASH			;CRUFTYNESS
	002512	000004 				IOT
    862
    863	002514	010446 			25$:	MOV	R4,-(SP)	; SAVE DISCONNECT CCB
    864	002516	062703 	000012 			ADD	#P.BPQ,R3	; AND UNLOAD
    865
    866	002522				30$:	CALL	$CMQRM		; THE BACK-PRESSURE QUEUE
	002522	004767 	000000G			JSR	PC,$CMQRM
    867	002526	103411 				BCS	40$
    868									; RETURNING THEM TO THE SERVER.
    869	002530	112764 	000002 	000010 		MOVB	#FC.RCE,C.FNC(R4)	;MAP FCN CODE AS RETURNEE
    870	002536					$QDLC	,T.NUM(R5)	;AND SHIP IT BACK TO DLC
	002536	116564 	000016 	000006 		MOVB	T.NUM(R5),C.LIN(R4)
	002544	004767 	000000G			JSR	PC,$LLCRQ
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 21-1
NSPDIS - DISCONNECT RECEIVED FOR A DATA PIPE

    871	002550	000764 				BR	30$
    872	002552	162703 	000012 		40$:	SUB	#P.BPQ,R3	; RESTORE PCB ADDRESS
    873	002556	012604 				MOV	(SP)+,R4	; AND OUR CCB.
    874
    875	002560	012764 	003006 	000010 	50$:	MOV	#FS.TRM!FC.CTL,C.FNC(R4)	;SET THE FNC
    876	002566					CALL	SNDNRM		;SHIP OFF TO NRM
	002566	004767 	176764 			JSR	PC,SNDNRM
    877	002572	000167 	175632 			JMP	NRDFLS		;FLUSH RESOURCE WAIT Q
    878
    879
    880
    881					;
    882					;  NRM TERMINATE DONE - CONFIRM DISCONNECT OR ABORT
    883					;
    884
    885	002576				NRMTRM:
    886	002576	005000 				CLR	R0
    887	002600	156400 	000006 			BISB	C.LIN(R4),R0		;GET PIPE NUMBER
    888	002604					CALL	$PCBPT			;GET R3/PCB
	002604	004767 	000000G			JSR	PC,$PCBPT
    889	002610					BADPIPE
	002610	103001 				BCC	9$
	002612	000004 				IOT
    890	002614	032763 	000010 	000010 		BIT	#PS.ABO,P.STS(R3) 	; IF ABORT REQUEST
    891	002622	001425 				BEQ	10$			; THEN
    892	002624	042763 	000010 	000010 		BIC	#PS.ABO,P.STS(R3) 	; CLEAR THE CONDITION
    893	002632					NABO$	P.NUM(R3)		; ABORT OUR SIDE OF THE LINK
	002632	116364 	000020 	000004 		    MOVB    P.NUM(R3),C.NSP(R4)
	002640	116764 	000000G	000005 		    MOVB    $CMPDV,C.NSP+1(R4)
	002646	052764 	100000 	000004 		BIS	#100000,C.NSP(R4)
	002654	012764 	011000 	000010 		MOV	#<NT$ABO*400!FC.XME>,C.FNC(R4)
	002662	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	002670	004767 	000000G			JSR	PC,$LLCRS
    894	002674					RETURN
	002674	000207 				RTS	PC
    895
    896	002676				10$:	NDIS$	P.LLA(R3),<,,#0> 	; SEND DISCONNECT CONFIRM
	002676	116364 	000016 	000006 		    MOVB    P.LLA(R3),C.LIN(R4)
	002704	005064 	000020 			    CLR	    C.CNT1(R4)
	002710	012764 	004000 	000010 		MOV	#<NT$DIS*400!FC.XME>,C.FNC(R4)
	002716	112764 	000200G	000007 		MOVB	#<200+PD$NSP>,C.LIN+1(R4)
	002724	004767 	000000G			JSR	PC,$LLCRS
    897	002730					RETURN
	002730	000207 				RTS	PC
    898
    899						.SBTTL	NRDDIS	- PIPE DISCONNECTED
    900					;+
    901					; LINK IS CLOSED - RETURN THE PIPE
    902					;
    903					; INPUTS:
    904					;	R4 - DISCONNECT OR ABORT COMPLETE CCB
    905					;-
    906
    907	002732				NRDDIS:	GTULA$	R0		; GET THE PIPE NUMBER
	002732	005000 				  CLR	  R0
	002734	156400 	000006 			  BISB	  C.LIN(R4),R0
    908	002740					CALL	$PCBPT		; THE PCB ADDRESS
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 21-2
NRDDIS	- PIPE DISCONNECTED

	002740	004767 	000000G			JSR	PC,$PCBPT
    909	002744					BADPIPE
	002744	103001 				BCC	9$
	002746	000004 				IOT
    910	002750					CALL	$PCBRT		; RETURN THE PCB
	002750	004767 	000000G			JSR	PC,$PCBRT
    911	002754					CALLR	$CCBRT		; AND THE DISCONNECT CCB.
	002754	000167 	000000G			JMP	$CCBRT
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 22
NURD UTILITIES

    913						.SBTTL NURD UTILITIES
    914
    915
    916					;	ASSORTED USEFUL FUNCTIONS
    917
    918
    919
    920
    921	002760				NRDDEV:				;VERIFY TERMINAL IS NURD DEVICE TYPE
    922									;R5/TCB, LOOK UPTERMINAL TYPE
    923	002760	005705 				TST	R5		;CHECK FOR TCB GONE AWAY
    924	002762	001415 				BEQ	15$
    925
    926	002764	005000 				CLR	R0
    927	002766	156500 	000014 			BISB	T.TT(R5),R0	;GET THE DEVICE TYPE
    928
    929	002772	012702 	000004 			MOV	#NDVTBL,R2
    930	002776	126200 	000265'		10$:	CMPB	NDVTB-1(R2),R0	;SEARCH THE LIST OF NURD DEVICES
    931	003002	001407 				BEQ	20$		;SUC
    932	003004					SOB	R2,10$
	003004	005302 				DEC	R2
	003006	001373 				BNE	10$
    933	003010	012764 	100377 	000012 		MOV	#NR.NDV,C.STS(R4)	;NOT A NURD DEVICE
    934
    935	003016	000261 			15$:	SEC			;LOSE
    936	003020					RETURN
	003020	000207 				RTS	PC
    937
    938	003022	000241 			20$:	CLC			;CERTIFIED NURD DEVICE
    939	003024					RETURN
	003024	000207 				RTS	PC
    940
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 23
NURD UTILITIES

    942		000001 				.END
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 23-1
SYMBOL TABLE

A$$CHK= 000000   	C.LIN   000006   	FS.STR= 001000   	NE.RES= 177773   	NT.ACK= 000001
A$$CPS= 000000   	C.LNK   000000   	FS.TRM= 003000   	NE.TIM= 177772   	NT.BOM= 000040
A$$PRI= 000000   	C.MOD   000011   	FS.XKL= 002000   	NP$RTR= 000003   	NT.EOM= 000100
A$$TRP= 000000   	C.NSP   000004   	FS.XOF= 010000   	NRDCCP  000202R  	NT.FCN= 037400
CB.CCB= 000002   	C.RSV   000002   	FS.XON= 007000   	NRDCTL  000034R  	NT.MD1= 000420
CB.RDB= 000004   	C.STA   000007   	F$LOW = ****** GX	NRDDEV  002760R  	NT.MFL= 000002
CCPSTP  001556R  	C.STS   000012   	F$$LVL= 000001   	NRDDIS  002732R  	NT.MOD= 000020
CCPSTR  001556R  	DLCCCP  000210R  	G$$TPP= 000000   	NRDFLS  000430R  	NT.MOM= 000000
CE.ABO= 100362   	DLCDAT  001410R  	G$$TSS= 000000   	NRDINT  001206R  	NT.NAK= 000002
CE.DIS= 100366   	DLCINT  001410R  	G$$TTK= 000000   	NRDQUE  000304R  	NT.NFL= 000000
CE.ERR= 100370   	DLCRCP  000102R  	G$$WRD= 000000   	NRDRCP  000062R  	NT.SFL= 000001
CE.MOP= 100372   	DLCRTI  001066R  	INVBTN  002016R  	NRDRWC  000412R  	NT.SOL= 000140
CE.NTE= 100361   	DLCRTN  001066R  	I$$RAR= 000000   	NRDRWT  000272R  	NT.XOF= 000004
CE.RTE= 100376   	DLCXCP  000122R  	I$$RDN= 000000   	NRDTIM  000326R  	NT.XON= 000010
CE.SRC= 100364   	D$$BUG= 177514   	KDSAR0= 172360   	NRDXCP  000114R  	N$$DAT= 000030
CE.TMO= 100374   	D$$ISK= 000000   	KDSDR0= 172320   	NRMTRM  002576R  	N$$DIS= 000020
CF.EOM= 000004   	D$$L11= 000001   	KISAR0= 172340   	NR$RWT= 000022   	N$$INT= 000020
CF.HDR= 000020   	D$$YNC= 000000   	KISAR5= 172352   	NR.NDV= 100377   	N$$LDV= 000001
CF.LB = 100000   	D$$YNM= 000000   	KISAR6= 172354   	NSPCCP  000236R  	N$$MOV= 000010
CF.SOM= 000010   	E$$XPR= 000000   	KISAR7= 172356   	NSPCON  000544R  	N$$OPT= 000020
CF.SYN= 000040   	FC.CCP= 000020   	KISDR0= 172300   	NSPDAT  001710R  	N$$OVR= 000042
CF.TRN= 000100   	FC.CTL= 000006   	KISDR6= 172314   	NSPDIS  002404R  	N$$SYS= 000001
CMODE = 140000   	FC.KCP= 000016   	KISDR7= 172316   	NSPINT  001710R  	N$$USR= 000001
CRASH   000264R  	FC.KIL= 000004   	K$$CNT= 177546   	NSPRCP  000070R  	N.ACNT  000116
CS.ABO= 000100   	FC.RCE= 000002   	K$$CSR= 177546   	NSPRET  001110R  	N.ACTL  000114
CS.BUF= 000200   	FC.RCP= 000014   	K$$LDC= 000000   	NSPRTN  001300R  	N.DDL1  000012
CS.DCR= 000400   	FC.TIM= 000010   	K$$TPS= 000074   	NSPXCP  000152R  	N.DDL2  000016
CS.DEV= 000002   	FC.XCP= 000012   	LD$LP = 000000   	NSPXOF  002236R  	N.DDS1  000014
CS.DIS= 000040   	FC.XME= 000000   	LS.ABO= 100201   	NSPXON  002310R  	N.DDS2  000020
CS.ENB= 000020   	FE.CAL= 000040   	LS.BOM= 100205   	NS.BOM= 000040   	N.DFMT  000010
CS.EOF= 000001   	FE.DRV= 000010   	LS.CLO= 100203   	NS.EOM= 000100   	N.DGRP  000012
CS.ERR= 100000   	FE.EXP= 000200   	LS.ILM= 100204   	NS.MFL= 000003   	N.DOBJ  000011
CS.HFE= 002000   	FE.EXT= 000001   	LS.REJ= 100202   	NS.MOM= 000000   	N.DUSR  000014
CS.LST= 040000   	FE.EXV= 000004   	L$$ASG= 000000   	NS.NFL= 000001   	N.LGTH= 000160
CS.MTL= 004000   	FE.LSI= 000400   	L$$DRV= 000000   	NS.SET= 000002   	N.NODE  000000
CS.RNG= 000010   	FE.MUP= 000002   	L$$P11= 000001   	NS.SFL= 000002   	N.OPDL  000136
CS.ROV= 000004   	FE.MXT= 040000   	L$$11R= 000000   	NS.SOL= 000140   	N.OPTD  000140
CS.RSN= 010000   	FE.NLG= 100000   	MPAR  = 172100   	NS.SUC= 000001   	N.PASL  000102
CS.SUC= 000001   	FE.PKT= 000100   	MPCSR = 177746   	NT$ABO= 000022   	N.PASS  000104
CS.TMO= 020000   	FE.PLA= 000020   	M$$CRB= 000124   	NT$ACC= 000002   	N.RQDL  000060
CTLGET  001636R  	FS.AST= 000000   	M$$CRX= 000000   	NT$ADS= 000000   	N.RQID  000062
CTLSTP  001572R  	FS.CIB= 002000   	M$$FCS= 000000   	NT$CON= 000000   	N.RSRV= 000030
CTLSTR  001572R  	FS.CRA= 001000   	M$$MGE= 000000   	NT$DAT= 000002   	N.SDL1  000036
C$$CKP= 000000   	FS.DIS= 013000   	M$$OVR= 000000   	NT$DIS= 000010   	N.SDL2  000042
C$$ORE= 000400   	FS.DVC= 001000   	NC.FM0= 000000   	NT$INT= 000004   	N.SDS1  000040
C$$RSH= 177564   	FS.ENB= 012000   	NC.FM1= 000001   	NT$MOD= 000012   	N.SDS2  000056
C.BID   000003   	FS.GET= 006000   	NC.FM2= 000002   	NT$NAK= 000022   	N.SEG   000006
C.BUF   000014   	FS.INI= 000000   	NDVTB   000266R  	NT$OFF= 000026   	N.SFMT  000034
C.BUF1  000014   	FS.KIL= 000000   	NDVTBL= 000004   	NT$ON = 000002   	N.SGRP  000036
C.BUF2  000024   	FS.LTM= 001000   	NE.ABO= 177776   	NT$QRY= 000014   	N.SOBJ  000035
C.CNT   000020   	FS.MNT= 004000   	NE.ACT= 177771   	NT$REJ= 000004   	N.SUSR  000040
C.CNT1  000020   	FS.MSN= 014000   	NE.CLS= 177767   	NT$RTI= 000010   	PCBLEN= 000024
C.CNT2  000030   	FS.RNG= 011000   	NE.DIS= 177777   	NT$RTN= 000000   	PD$NRM= ****** GX
C.FLG   000022   	FS.RTN= 001000   	NE.FMT= 177770   	NT$SNG= 000006   	PD$NSP= ****** GX
C.FLG1  000022   	FS.SET= 005000   	NE.NDT= 177766   	NT$STP= 000004   	PIRQ  = 177772
C.FLG2  000032   	FS.STM= 000000   	NE.NOD= 177774   	NT$XOF= 000020   	PMODE = 030000
C.FNC   000010   	FS.STP= 002000   	NE.REJ= 177775   	NT$XON= 000016   	PR0   = 000000
NRD	MACRO M1110  13-OCT-79 09:51  PAGE 23-2
SYMBOL TABLE

PR1   = 000040   	P.SEG   000022   	TS.HP = 000040   	T.NAM   000022   	UISDR6= 177614
PR4   = 000200   	P.SPI   000021   	TS.OP = 000004   	T.NAML  000021   	UISDR7= 177616
PR5   = 000240   	P.STS   000010   	TS.OPP= 000002   	T.NUM   000016   	UNQUE   002340R
PR6   = 000300   	P.USER  000006   	TS.OSP= 000400   	T.OBJ   000020   	V$$CTR= 001000
PR7   = 000340   	QS.CCB= 000400 G 	TS.PWF= 002000   	T.OLNK  000002   	X$$DBT= 000000
PS    = 177776   	QS.CVR= 100000 G 	TS.RLP= 000010   	T.PCBD  000006   	$CCBGT= ****** GX
PS.ABO= 000010   	Q$$OPT= 000010   	TS.RS = 000020   	T.PCBR  000004   	$CCBRT= ****** GX
PS.BP = 000020   	R$$DER= 000000   	TS.SRP= 000200   	T.RCNT  000032   	$CMPDV= ****** GX
PS.CC = 000002   	R$$K11= 000001   	TS.STE= 001000   	T.RID   000010   	$CMQIF= ****** GX
PS.CI = 000001   	R$$SND= 000000   	TT.CD = 000011   	T.SPI   000017   	$CMQIN= ****** GX
PS.CTL= 010000   	R$$11M= 000000   	TT.CR = 000010   	T.STS   000012   	$CMQRM= ****** GX
PS.DAT= 020000   	SISDR0= 172200   	TT.DDC= 000005   	T.TT    000014   	$CSBGT= ****** GX
PS.DIP= 000004   	SNDLC   002262R  	TT.LE = 000006   	T.WCNT  000030   	$LLCRQ= ****** GX
PS.IMP= 000100   	SNDNRM  001556R  	TT.LP = 000007   	UBMPR = 170200   	$LLCRS= ****** GX
PS.NKP= 000040   	SR0   = 177572   	TT.L18= 000004   	UDSAR0= 177660   	$NRDTB  000010RG
P$$P45= 000000   	SR3   = 172516   	TT.L36= 000003   	UDSDR0= 177620   	$PCBGT= ****** GX
P$$WRD= 000000   	SWR   = 177570   	TT.V52= 000002   	UISAR0= 177640   	$PCBPT= ****** GX
P.BPQ   000012   	S$$WRG= 000000   	TT.V62= 000001   	UISAR4= 177650   	$PCBRT= ****** GX
P.CBTN  000004   	S$$YSZ= 007600   	T$$KMG= 000000   	UISAR5= 177652   	$TCBPT= ****** GX
P.LLA   000016   	TCBLEN= 000040   	T$$MIN= 000000   	UISAR6= 177654   	$$NARG= 000004
P.NUM   000020   	TF.DEA= 040000   	T.DMRB  000034   	UISAR7= 177656   	$$TYPE= 000000
P.OPN   000002   	TF.DIS= 020000   	T.DMVA  000036   	UISDR0= 177600   	.FLOW   000000RG
P.REF   000004   	TPS   = 177564   	T.FLG   000014   	UISDR4= 177610   	.QUESW  000002RG
P.RES   000002   	TS.CLP= 000001   	T.LNK   000000   	UISDR5= 177612   	.WTQUE  000004RG
P.RSV   000000

. ABS.	000160	   000
      	003026	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  11188 WORDS  ( 44 PAGES)
DYNAMIC MEMORY:  12172 WORDS  ( 46 PAGES)
ELAPSED TIME:  00:01:13
NRD,[131,34]NRD/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]NRD
NRD        CREATED BY  MACRO  ON 13-OCT-79 AT 09:52	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CCPSTP	  001556 R	 7-253     #16-617    
CCPSTR	  001556 R	 7-252     #16-618    
CRASH 	  000264 R	#7-278     
CTLGET	  001636 R	 7-177     #18-662    
CTLSTP	  001572 R	 7-173     #17-628    
CTLSTR	  001572 R	 7-172     #17-629    
C.BUF 	  000014	 12-442     12-443    *12-468    *14-542     15-590     19-753     19-754     19-762     21-834    
                        *21-840    
C.BUF2	  000024	 14-542    *15-590     18-669    *19-755    
C.CNT1	  000020	*12-450    *12-466    *19-763    *21-896    
C.CNT2	  000030	*9-308      9-338     
C.FNC 	  000010	*9-309      9-325      10-362    *12-450    *12-466    *12-469    *13-500    *13-503    *14-527    
                        *14-543    *15-601    *15-604    *17-641    *18-670    *19-720    *19-745    *19-748    *19-763    
                        *20-819    *21-869    *21-875    *21-893    *21-896    
C.LIN 	  000006	 7-186      7-212      7-246      9-337      10-356     12-450    *12-450    *12-450     12-466    
                        *12-466    *12-466    *12-469    *12-469     13-487    *13-500    *13-500    *13-503    *13-503    
                         14-521    *14-527    *14-527     14-535    *14-545     15-586    *15-601    *15-601    *15-604    
                        *15-604     17-632     18-664     19-697    *19-719    *19-745    *19-745    *19-748    *19-748    
                        *19-763    *19-763     20-779    *20-788     20-803    *20-819    *20-819     21-847    *21-870    
                         21-887    *21-893    *21-896    *21-896     21-907    
C.MOD 	  000011	 9-324      10-361     13-498     14-544     15-592     19-743    
C.NSP 	  000004	 12-450    *12-450     12-461     12-466    *12-466    *12-466    *12-469    *21-893    *21-893    
                        *21-893    
C.STA 	  000007	 12-460    *16-620    
C.STS 	  000012	*12-466    *13-500     14-518    *18-662    *19-745     21-853    *22-933    
DLCCCP	  000210 R	#7-249     
DLCDAT	  001410 R	 7-202     #15-584    
DLCINT	  001410 R	 7-203     #15-582    
DLCRCP	  000102 R	 7-187     #7-199     
DLCRTI	  001066 R	 7-219     #13-483    
DLCRTN	  001066 R	 7-218     #13-485    
DLCXCP	  000122 R	#7-215     
FC.CCP	= 000020	 17-641     18-670    
FC.CTL	= 000006	 21-875    
FC.RCE	= 000002	 12-450     12-466     13-500     13-503     14-543     19-745     19-748     21-869    
FC.XME	= 000000	 12-469     14-527     15-601     15-604     19-720     19-763     20-819     21-893     21-896    
FS.GET	= 006000	 18-670    
FS.TRM	= 003000	 21-875    
F$LOW 	= ******  GX	 7-136     
INVBTN	  002016 R	 19-709     19-711     19-713     19-715    #19-736    
KISAR6	= 172354	*12-442    *19-753    
LS.ABO	= 100201	#4-56      
LS.BOM	= 100205	#4-56      
LS.CLO	= 100203	#4-56      
LS.ILM	= 100204	#4-56      
LS.REJ	= 100202	#4-56      
M$$MGE	= 000000	 12-442     19-753    
NDVTB 	  000266 R	#8-290      8-294      22-930    
NDVTBL	= 000004	#8-294      22-929    
NE.ABO	= 177776	 21-853    
NE.TIM	= 177772	 14-518    
NRDCCP	  000202 R	 7-158     #7-246     
NRD        CREATED BY  MACRO  ON 13-OCT-79 AT 09:52	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

NRDCTL	  000034 R	 7-153     #7-169     
NRDDEV	  002760 R	 14-539     17-635     18-667     19-714     21-859    #22-921    
NRDDIS	  002732 R	 7-235      7-240     #21-907    
NRDFLS	  000430 R	#10-345     21-877    
NRDINT	  001206 R	 7-233     #14-517    
NRDQUE	  000304 R	#9-311      12-439     19-740    
NRDRCP	  000062 R	 7-156     #7-186     
NRDRWC	  000412 R	 7-161     #9-337     
NRDRWT	  000272 R	#9-308      14-520    
NRDTIM	  000326 R	 7-154     #9-317     
NRDXCP	  000114 R	 7-155     #7-212     
NRMTRM	  002576 R	 7-266     #21-885    
NR$RWT	= 000022	#7-160      9-309     
NR.NDV	= 100377	#4-56       22-933    
NSPCCP	  000236 R	 7-247     #7-261     
NSPCON	  000544 R	 7-193     #12-434    
NSPDAT	  001710 R	 7-194     #19-695    
NSPDIS	  002404 R	 7-267     #21-833    
NSPINT	  001710 R	 7-195     #19-693    
NSPRCP	  000070 R	#7-191     
NSPRET	  001110 R	#13-498     19-703    
NSPRTN	  001300 R	 7-232     #14-533    
NSPXCP	  000152 R	 7-213     #7-229     
NSPXOF	  002236 R	 7-271     #20-779    
NSPXON	  002310 R	 7-270     #20-803    
NT$ABO	= 000022	 21-893    
NT$ACC	= 000002	 12-466    
NT$DAT	= 000002	 15-601     20-819    
NT$DIS	= 000010	 21-896    
NT$INT	= 000004	 13-498     14-527     14-546     15-592     15-604     19-743     19-763    
NT$MOD	= 000012	 12-469    
NT$REJ	= 000004	 12-450    
NT$RTI	= 000010	 13-503     19-748    
NT$RTN	= 000000	 13-500     19-745    
NT.ACK	= 000001	 13-500     19-745    
NT.MD1	= 000420	 13-500     19-745    
NT.SFL	= 000001	 12-466    
N.RQDL	  000060	 12-446    
N.RQID	  000062	 12-458    
N.SEG 	  000006	 12-444     12-459    
PCBLEN	= 000024	#3-47      
PD$NRM	= ******  GX	 16-620    
PD$NSP	= ******  GX	 12-450     12-466     12-469     13-500     13-503     14-527     15-601     15-604     19-745    
                         19-748     19-763     20-819     21-893     21-896    
PS.ABO	= 000010	#3-47       21-855     21-890     21-892    
PS.BP 	= 000020	#3-47       12-463     14-548     15-596     20-782     20-807    
PS.CC 	= 000002	#3-47       12-463     14-524     19-701     21-852    
PS.CI 	= 000001	#3-47      
PS.CTL	= 010000	#3-47      
PS.DAT	= 020000	#3-47       12-463    
PS.DIP	= 000004	#3-47      
PS.IMP	= 000100	#3-47      
NRD        CREATED BY  MACRO  ON 13-OCT-79 AT 09:52	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

PS.NKP	= 000040	#3-47      
P.BPQ 	  000012	#3-47       15-594     15-598     20-816     21-864     21-872    
P.CBTN	  000004	#3-47      *12-462    
P.LLA 	  000016	#3-47       12-461    *12-461     12-469     13-500     13-503     14-527     15-601     15-604    
                         19-745     19-748     19-763     20-815     21-896    
P.NUM 	  000020	#3-47       12-465     21-893    
P.OPN 	  000002	#3-47       14-538     19-708     20-784     21-857    
P.REF 	  000004	#3-47      
P.RES 	  000002	#3-47      
P.RSV 	  000000	#3-47      
P.SEG 	  000022	#3-47      *12-459    
P.SPI 	  000021	#3-47      *12-460    
P.STS 	  000010	#3-47      *12-463     14-524     14-548     15-596     19-701    *20-782    *20-807    *21-852    
                        *21-855     21-890    *21-892    
P.USER	  000006	#3-47      *12-458    
QS.CCB	= 000400  G	#7-140      9-312      9-321      9-328      10-347     10-358    
QS.CVR	= 100000  G	#7-139      9-320      9-330      10-346     10-365    
SNDLC 	  002262 R	#20-784     20-806    
SNDNRM	  001556 R	#16-620     17-642     18-671     21-876    
TCBLEN	= 000040	#3-47      
TF.DEA	= 040000	#3-47      
TF.DIS	= 020000	#3-47      
TS.CLP	= 000001	#3-47      
TS.HP 	= 000040	#3-47      
TS.OP 	= 000004	#3-47       19-710    
TS.OPP	= 000002	#3-47      
TS.OSP	= 000400	#3-47      
TS.PWF	= 002000	#3-47      
TS.RLP	= 000010	#3-47      
TS.RS 	= 000020	#3-47      
TS.SRP	= 000200	#3-47      
TS.STE	= 001000	#3-47      
TT.CD 	= 000011	#3-47       8-292     
TT.CR 	= 000010	#3-47       8-293     
TT.DDC	= 000005	#3-47      
TT.LE 	= 000006	#3-47       8-290     
TT.LP 	= 000007	#3-47       8-291     
TT.L18	= 000004	#3-47      
TT.L36	= 000003	#3-47      
TT.V52	= 000002	#3-47      
TT.V62	= 000001	#3-47      
T.DMRB	  000034	#3-47      
T.DMVA	  000036	#3-47      
T.FLG 	  000014	#3-47      
T.LNK 	  000000	#3-47      
T.NAM 	  000022	#3-47      
T.NAML	  000021	#3-47      
T.NUM 	  000016	#3-47       14-545     19-719     20-788     21-870    
T.OBJ 	  000020	#3-47      
T.OLNK	  000002	#3-47      
T.PCBD	  000006	#3-47       13-490     15-589     19-712    
T.PCBR	  000004	#3-47      
NRD        CREATED BY  MACRO  ON 13-OCT-79 AT 09:52	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

T.RCNT	  000032	#3-47      
T.RID 	  000010	#3-47      
T.SPI 	  000017	#3-47      
T.STS 	  000012	#3-47       19-710    
T.TT  	  000014	#3-47       22-927    
T.WCNT	  000030	#3-47      
UNQUE 	  002340 R	 14-550    #20-811    
$CCBGT	= ******  GX	 12-436    
$CCBRT	= ******  GX	 7-236      12-452     20-786     21-838     21-911    
$CMPDV	= ******  GX	 18-669     21-893    
$CMQIF	= ******  GX	 9-315     
$CMQIN	= ******  GX	 9-314      10-359     15-599    
$CMQRM	= ******  GX	 9-322      10-353     20-817     21-866    
$CSBGT	= ******  GX	 19-737    
$LLCRQ	= ******  GX	 14-545     17-637     19-722     20-790     21-870    
$LLCRS	= ******  GX	 12-450     12-466     12-469     13-500     13-503     14-527     15-601     15-604     16-620    
                         19-745     19-748     19-763     20-819     21-893     21-896    
$NRDTB	  000010 RG	#7-150      7-160      9-326      10-363    
$PCBGT	= ******  GX	 12-448    
$PCBPT	= ******  GX	 9-337      14-522     14-536     19-698     20-780     20-804     21-848     21-888     21-908    
$PCBRT	= ******  GX	 21-910    
$TCBPT	= ******  GX	 13-488     15-587     17-633     18-665    
$$NARG	= 000004	#14-527     14-527    #15-601     15-601    #15-604     15-604    #19-763     19-763     19-763    
                        #20-819     20-819    #21-896     21-896     21-896    
$$TYPE	= 000000	#9-337      9-337     #12-461     12-461     12-461    #14-521     14-521    #20-779     20-779    
                        #20-803     20-803    #21-907     21-907    
.FLOW 	  000000 RG	#7-136      12-469    
.QUESW	  000002 RG	#7-138      9-311      9-317      9-327     *9-330      10-345     10-355    *10-365    *21-851    
.WTQUE	  000004 RG	#7-143     
NRD        CREATED BY  MACRO  ON 13-OCT-79 AT 09:52	PAGE 5

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

BADPIP		#6-111     #14-523    #14-537    #19-699    #20-781    #20-805    #21-849    #21-889    #21-909    
BADTNM		#6-118     #13-489    #15-588    #17-634    #18-666    
CALL  		 9-322      9-326      9-337      10-353     10-359     10-363     12-436     12-448     12-450     12-466    
                 12-469     13-488     13-500     13-503     14-520     14-522     14-527     14-536     14-539     15-587    
                 15-601     15-604     17-633     17-635     18-665     18-667     19-698     19-714     19-737     19-745    
                 19-748     19-763     20-780     20-804     20-806     20-817     20-819     21-838     21-848     21-859    
                 21-866     21-876     21-888     21-893     21-896     21-908     21-910    
CALLR 		#9-314     #9-315     #12-439    #12-452    #15-599    #19-740    #21-911    
CCBDF$		#3-44       3-45      
CRASH 		#13-489    #14-523    #14-537    #14-541    #15-588    #17-634    #18-666    #19-699    #20-781    #20-805    
                #21-849    #21-861    #21-889    #21-909    
GTLLA$		#12-461    
GTPCB$		#6-124     #9-337     
GTULA$		#9-337     #14-521    #20-779    #20-803    #21-907    
HWDDF$		#12-442     12-442    #19-753     19-753    
MAP   		#3-44      #12-442    #19-753    
NABO$ 		#21-893    
NACC$ 		 12-466    
NDAT$ 		 15-601     20-819    
NDIS$ 		 21-896    
NINT$ 		#14-527    #15-604    #19-763    
NMOD$ 		#12-469    
NRDIN$		#3-44      #4-56      
NREJ$ 		#12-450    
NRTI$ 		 13-503     19-748    
NRTN$ 		 13-500     19-745    
NSPDF$		#3-44       3-46      
RETURN		#3-44       9-331      10-367     12-470     13-501     13-504     14-528     14-551     15-602     15-605    
                 16-621     17-638     19-723     19-764     20-792     20-821     21-894     21-897     22-936     22-939    
SOB   		#22-932    
TTDF$ 		#3-44       3-47      
$QDLC 		#3-44      #14-545    #17-637    #19-722    #20-790    #21-870    
$QLLC 		#3-44       16-620    
$$BUFD		#12-450    #14-527     14-527    #15-601     15-601    #15-604     15-604    #19-763     19-763    #20-819    
                 20-819    #21-896     21-896    
$$GETB		#9-337     #9-337     #12-461    #12-461    #14-521    #14-521    #20-779    #20-779    #20-803    #20-803    
                #21-907    #21-907    
$$MOV 		#12-450     12-450    #12-466     12-466     12-466     12-466    #13-500     13-500    #14-527    #15-601    
                 15-601    #15-604    #19-745     19-745    #19-763     19-763     19-763     19-763    #20-819     20-819    
                #21-896     21-896     21-896     21-896    
$$MOVB		#12-466    #12-466    #12-469    #12-469    #12-469    #13-500    #13-500    #13-503    #13-503    #14-527    
                #14-527    #15-601    #15-601    #15-604    #15-604    #19-745    #19-745    #19-748    #19-748    #19-763    
                #19-763    #20-819    #20-819    #21-893    #21-893    #21-893    #21-896    #21-896    
$$QUE 		#12-450     12-450    #12-466     12-466    #12-469     12-469    #13-500     13-500    #13-503     13-503    
                #14-527     14-527    #15-601     15-601    #15-604     15-604    #19-745     19-745    #19-748     19-748    
                #19-763     19-763    #20-819     20-819    #21-893     21-893    #21-896     21-896