Google
 

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

     4-   81	IOFLS,IOSUC,IODUN,IODUN1 - I/O COMPLETION POSTING
     5-  148	$IFCER - ILLEGAL QIO FUNCTION PROCESSOR
     6-  176	IOREDO - PUT I/O PACKET BACK IN ACP'S S/R QUEUE
     7-  208	MAPHDR - GET TASK HEADER ADDRESS
     8-  235	MAPLUN - GET 2ND LUN WORD ADDRESS
     9-  265	GETWB - GET POINTER TO WINDOW BLOCK
     9-  266	GETWBA - ALTERNATE ENTRY
    10-  300	REMULA - REMOVE USER LINK CONTEXT
    11-  346	SCNQUE,REMQUE - QUEUE SCANNING AND REMOVAL
    12-  386	SCNLUN - SCAN TASK LOGICAL UNIT TABLE
    13-  432	ADDGEN,ADDGN1 - ADD AN EVENT TO GENERAL DELIVERY QUEUE
    14-  459	ADDEVT - ADD AN EVENT TO USER'S NETWORK DATA MAILBOX
    15-  503	SPRAST - SPRING USER'S NETWORK DATA AST
    16-  547	FLSHIO - FLUSH PENDING I/O PACKETS FROM WINDOW BLOCK
    17-  587	FLSHMB - FLUSH EVENTS FROM MAILBOX
    18-  637	RMCON - FLUSH PENDING CONNECT
    19-  667	RMINT - FLUSH INTERRUPT MESSAGE
    20-  687	RMDIS - FLUSH DISCONNECT NOTIFICATION
    21-  712	RMMOP - FLUSH MOP EVENT
    22-  738	BLXIT - MOVE CONNECT DATA
    23-  772	BLXIO - MOVE DATA BLOCK
    23-  773	BLXI1 - ALTERNATE ENTRY
    24-  820	CCBREJ - FORM CONNECT REJECT CCB AND REJECT CONNECTION
    25-  846	TLACHK - TEMPORARY LINK ADDRESS CHECKING
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 3


      1					.IIF NDF V$$ER1	.TITLE	NSSUB
      2					.IIF DF V$$ER1	.TITLE	NSSUB1
      3						.IDENT	/V01.02/
      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 USER INTERFACE SUBROUTINES
     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					; 1.01	2-NOV-78  BUREN HOFFMAN
     38					;	MODIFIED RMMOP ROUTINE TO USE NEW CCB CLEANUP ROUTINE.
     39					; 1.02	22-JAN-79 ALAN D. PECKHAM
     40					;	ADD DISPATCH TABLE ENTRY TO "TDISP" FOR NT.LOG
     41					;
     42					;
     43
     44					; LIBRARY MACROS
     45					;
     46
     47						.MCALL	CCBDF$,NSPSY$,SAVRG,RESRG,MAP,$MVTBF,CALLC,CALLX
     48	000000					CCBDF$			;DEFINE CCB OFFSETS
     49	000000					NSPSY$			;DEFINE NSP INTERNAL SYMBOLS
     50
     51						.MCALL	MBXDF$,LLWDF$,DVBDF$,NSSYM$
     52	000000					MBXDF$			;DEFINE MAILBOX OFFSETS
     53	000000					LLWDF$			;DEFINE WINDOW BLOCK OFFSETS
     54	000000					DVBDF$			;DEFINE VCB OFFSETS
     55	000000					NSSYM$			;DEFINE NETWORK RETURN VALUES
     56
     57					;
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 3-1


     58					; LOCAL MACRO DEFINITIONS
     59					;
     60					;
     61					; PUSH AND POP STACK INSTRUCTIONS
     62					;
     63
     64						.MACRO	PUSH	S
     65						.IRP	SS,<S>
     66						MOV	SS,-(SP)
     67						.ENDR
     68						.ENDM	PUSH
     69
     70						.MACRO	POP	D
     71						.IRP	DD,<D>
     72						MOV	(SP)+,DD
     73						.ENDR
     74						.ENDM	POP
     75
     76						.MACRO	MOVBNS	X,Y
     77						CLR	Y
     78						BISB	X,Y
     79						.ENDM
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 4
IOFLS,IOSUC,IODUN,IODUN1 - I/O COMPLETION POSTING

     81					.SBTTL	IOFLS,IOSUC,IODUN,IODUN1 - I/O COMPLETION POSTING
     82
     83					;+
     84					; ** - IOFLS - POST ABORTED COMPLETION
     85					; ** - IOSUC - POST SUCCESSFUL COMPLETION
     86					; ** - IODUN1 - CLEAR SECOND STATUS WORD AND POST COMPLETION
     87					; ** - IODUN - POST COMPLETION
     88					;
     89					; THESE ROUTINES POST I/O REQUEST COMPLETIONS TO THE USER TASK AND
     90					; CLEAR ANY LUN ACCESS INTERLOCK (EXCEPT FOR IOFLS).
     91					;
     92					; NOTE: ACP MUST BE IN SYSTEM STATE
     93					;
     94					; INPUTS:
     95					;
     96					;	R0 = FIRST STATUS WORD (IODUN1 AND IODUN ONLY)
     97					;	R1 = SECOND STATUS WORD (IODUN ONLY)
     98					;	R3 -> I/O PACKET
     99					;
    100					; OUTPUTS:
    101					;
    102					;	THE USER TASK SECOND LUN WORD ACCESS INTERLOCK BIT IS CLEARED
    103					;	(EXCEPT FOR IOFLS) AND $IOFIN IS CALLED TO COMPLETE THE SPECIFIED
    104					;	I/O REQUEST.
    105					;
    106					;	R0-R3 MAY BE DESTROYED.
    107					;-
    108
    109	000000					.PSECT	$NSACP
    110
    111						.ENABL	LSB
    112	000000	012700 	000000C		IOFLS::	MOV	#IE.ABO&377,R0	;;SET ABORT STATUS IN FIRST STATUS WORD
    113	000004	005001 				CLR	R1		;;CLEAR SECOND STATUS WORD
    114	000006	000406 				BR	10$		;;CONTINUE
    115
    116	000010	012700 	000000C		IOSUC::	MOV	#IS.SUC&377,R0	;;SET SUCCESS STATUS IN FIRST STATUS WORD
    117
    118	000014	005001 			IODUN1::CLR	R1		;;CLEAR SECOND STATUS WORD
    119
    120	000016	042773 	000001 	000000G	IODUN::	BIC	#1,@I.LN2(R3)	;;CLEAR ACCESS IF SET
    121
    122	000024	005063 	000016G		10$:	CLR	I.PRM+16(R3)	;;CLEAR EIGHT PARAMETER WORD (FOR RECORD LOCKING)
    123	000030					PUSH	<R4,R5>		;;SAVE NON-VOLATILE REGISTERS
    124
    125						.IF DF	V$$ER1
    126
    127						MOV	I.TCB(R3),R2	;;GET TCB ADDRESS
    128						BIT	#T3.NET,T.ST3(R2) ;;IS THIS A VERSION 1 LINK ?
    129						BEQ	20$		;;IF EQ, NO - CONTINUE
    130						MOV	T.PCB(R2),R2	;;CHAIN THROUGH TO GET THE TASK HEADER
    131						MOV	P.HDR(R2),R2	;;...
    132						MOV	I.LN2(R3),R4	;;COMPUTE THE LUN NUMBER BY SUBTRACTING THE
    133						SUB	R2,R4		;;...BASE ADDRESS OF THE LUN TABLE FROM THE
    134						SUB	#H.LUN-2,R4	;;...ADDRESS OF THE SECOND LUN WORD AND
    135						ASR	R4		;;...DIVIDING BY FOUR
    136						ASR	R4		;;...
    137						SWAB	R4		;;COPY LUN TO THE HIGH BYTE
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 4-1
IOFLS,IOSUC,IODUN,IODUN1 - I/O COMPLETION POSTING

    138						BIS	R4,R0		;;...AND MERGE WITH THE FIRST STATUS WORD
    139					20$:				;;
    140						.ENDC
    141
    142	000034	016305 	000000G			MOV	I.UCB(R3),R5	;;GET UNIT CONTROL BLOCK ADDRESS
    143	000040					CALL	$IOFIN		;;POST COMPLETION TO USER
    144	000044					POP	<R5,R4>		;;RECOVER NON-VOLATILE REGISTERS
    145	000050					RETURN			;;RETURN
    146						.DSABL	LSB
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 5
$IFCER - ILLEGAL QIO FUNCTION PROCESSOR

    148					.SBTTL	$IFCER - ILLEGAL QIO FUNCTION PROCESSOR
    149
    150					;+
    151					; ** - $IFCER - ILLEGAL QIO FUNCTION CODE PROCESSOR
    152					;
    153					; THIS ROUTINE SHOULD NEVER BE USED SINCE ALL FUNCTION CODE VALIDATING
    154					; SHOULD BE DONE IN $DRQIO AND THE (NS:) DRIVER.  ANY REQUEST DISPATCHED
    155					; HERE WILL BE COMPLETED WITH AN ILLEGAL FUNCTION CODE ERROR.
    156					;
    157					; INPUT:
    158					;
    159					;	R3 -> I/O PACKET
    160					;
    161					; OUTPUT:
    162					;
    163					;	THE ILLEGAL FUNCTION CODE STATUS IS SET AND THE I/O REQUEST
    164					;	COMPLETED.
    165					;
    166					;	ALL REGISTERS MAY BE DESTROYED.
    167					;-
    168
    169	000052				$IFCER::SWSTK$	10$		;SWITCH TO SYSTEM STATE
    170
    171	000056	012700 	000000C			MOV	#IE.IFC&377,R0	;;SET ILLEGAL FUNCTION CODE STATUS CODE
    172	000062	000754 				BR	IODUN1		;;POST COMPLETION TO USER
    173
    174	000064				10$:	RETURN			;RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 6
IOREDO - PUT I/O PACKET BACK IN ACP'S S/R QUEUE

    176					.SBTTL	IOREDO - PUT I/O PACKET BACK IN ACP'S S/R QUEUE
    177
    178					;+
    179					; ** - IOREDO - PUT I/O PACKET BACK IN ACP'S SEND/RECEIVE QUEUE
    180					;
    181					; THIS SUBROUTINE REQUEUES AN I/O PACKET WHICH ENCOUNTERED A RESOURCE
    182					; ERROR, BACK INTO THE ACP'S SEND/RECEIVE QUEUE FOR REPROCESSING
    183					; LATER.
    184					;
    185					; INPUTS:
    186					;
    187					;	R3 -> I/O PACKET (TO BE REQUEUED)
    188					;
    189					; OUTPUTS:
    190					;
    191					;	THE I/O PACKET IS QUEUED TO THE END OF THE ACP SEND/RECEIVE
    192					;	QUEUE.  IF THE QUEUE WAS EMPTY, A FLAG IS SET TO STOP QUEUE
    193					;	PROCESSING UNTIL THE NEXT TIME THE ACP RUNS.
    194					;
    195					;	R0 IS DESTROYED.
    196					;-
    197
    198	000066	016700 	000000G		IOREDO::MOV	$TKTCB,R0	;;GET THE ACP'S TCB ADDRESS
    199	000072	062700 	000000G			ADD	#T.RCVL,R0	;;ADD OFFSET TO SEND/RECEIVE QUEUE
    200	000076	010370 	000002 			MOV	R3,@2(R0)	;;LINK I/O PACKET BACK INTO QUEUE
    201	000102	010360 	000002 			MOV	R3,2(R0)	;;...
    202	000106	005013 				CLR	(R3)		;;CLEAR LINK POINTER IN I/O PACKET
    203	000110	020310 				CMP	R3,(R0)		;;WAS QUEUE EMPTY BEFORE WE PUT THIS PACKET IN?
    204	000112	001002 				BNE	10$		;;IF NE, NO
    205	000114	105267 	000000G			INCB	$NSQUF		;;OTHERWISE TURN RECEIVE QUEUE PROCESSING OFF
    206	000120				10$:	RETURN			;;RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 7
MAPHDR - GET TASK HEADER ADDRESS

    208					.SBTTL	MAPHDR - GET TASK HEADER ADDRESS
    209
    210					;+
    211					; ** - MAPHDR - GET POINTER TO TASK HEADER
    212					;
    213					; THIS ROUTINE GETS THE HEADER ADDRESS OF THE USER TASK WHICH
    214					; ISSUED THE SPECIFIED I/O REQUEST.
    215					;
    216					; NOTE:  THE USER TASK MUST BE IN MEMORY
    217					;
    218					; INPUT:
    219					;
    220					;	R3 -> I/O PACKET
    221					;
    222					; OUTPUTS:
    223					;
    224					;	R2 -> USER TASK HEADER
    225					;	R3 -> I/O PACKET
    226					;-
    227
    228	000000					.PSECT
    229
    230	000000	016302 	000000G		MAPHDR::MOV	I.TCB(R3),R2	;GET TASK CONTROL BLOCK ADDRESS,
    231	000004	016202 	000000G			MOV	T.PCB(R2),R2	; PARTITION CONTROL BLOCK ADDRESS AND
    232	000010	016202 	000000G			MOV	P.HDR(R2),R2	; TASK HEADER ADDRESS
    233	000014					RETURN			;RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 8
MAPLUN - GET 2ND LUN WORD ADDRESS

    235					.SBTTL	MAPLUN - GET 2ND LUN WORD ADDRESS
    236
    237					;+
    238					; ** - MAPLUN - GET POINTER TO 2ND LUN WORD
    239					;
    240					; THIS ROUTINE GETS THE ADDRESS IN THE USER TASK HEADER OF THE SPECIFIED
    241					; LUN.
    242					;
    243					; NOTE:  THE USER TASK MUST BE IN MEMORY.
    244					;
    245					; INPUTS:
    246					;
    247					;	R0 = LUN
    248					;	R2 -> USER TASK HEADER
    249					;
    250					; OUTPUTS:
    251					;
    252					;	R0 -> 2ND LUN WORD
    253					;
    254					;	R1-R5 ARE PRESERVED.
    255					;-
    256
    257	000122					.PSECT	$NSACP
    258
    259	000122	006300 			MAPLUN::ASL	R0		;MAKE LUN INTO DOUBLE
    260	000124	006300 				ASL	R0		; WORD INDEX
    261	000126	062700 	177776G			ADD	#H.LUN-2,R0	;ADD OFFSET TO START OF LOGICAL UNIT TABLE
    262	000132	060200 				ADD	R2,R0		;ADD TASK HEADER ADDRESS
    263	000134					RETURN
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 9
GETWB - GET POINTER TO WINDOW BLOCK

    265					.SBTTL	GETWB - GET POINTER TO WINDOW BLOCK
    266					.SBTTL	GETWBA - ALTERNATE ENTRY
    267
    268					;+
    269					; ** - GETWB - GET POINTER TO WINDOW BLOCK
    270					; ** - GETWBA - ALTERNATE ENTRY
    271					;
    272					; INPUTS:
    273					;
    274					;	GETWB:
    275					;	R5 = USER LINK ADDRESS (INDEX)
    276					;
    277					;	GETWBA:
    278					;	R4 = ADDRESS OF CCB WITH ULA IN C.LIN
    279					;
    280					; OUTPUTS:
    281					;
    282					;	C-BIT CLEAR (SUCCESSFUL)
    283					;		R5 -> WINDOW BLOCK
    284					;	C-BIT SET (FAILED TO FIND WINDOW BLOCK)
    285					;-
    286
    287	000136	010504 			GETWBA::MOV	R5,R4		;COPY ADDRESSS OF CCB
    288	000140					MOVBNS	C.LIN(R4),R5	;GET THE USER LINK ADDRESS
    289
    290	000146	006305 			GETWB::	ASL	R5		;MAKE ULA A WORD INDEX
    291	000150					SAVRG	<R5>		;SAVE ULA
    292	000152	016705 	000000G			MOV	$NSVCB,R5	;GET VCB ADDRESS
    293	000156	016505 	000006 			MOV	V.ULT(R5),R5	;GET ADDRESS OF ULT
    294	000162	062605 				ADD	(SP)+,R5	;INDEX TO ADJACENT SLOT IN ULT
    295	000164	014505 				MOV	-(R5),R5	;GET POINTER TO WINDOW BLOCK
    296	000166	001001 				BNE	10$		;IF NE, VALID WINDOW BLOCK
    297	000170	000261 				SEC			;ELSE, HAS ALREADY GONE AWAY
    298	000172				10$:	RETURN			;RETURN
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 10
REMULA - REMOVE USER LINK CONTEXT

    300					.SBTTL	REMULA - REMOVE USER LINK CONTEXT
    301
    302					;+
    303					; ** - REMULA - REMOVE USER LINK CONTEXT
    304					;
    305					; THE DATA STRUCTURE COMPOSED OF THE USER LUN, USER LINK ADDRESS
    306					; AND LOGICAL LINK WINDOW BLOCK IS DISASSOCIATED.
    307					;
    308					; NOTE: USER TASK MUST BE IN MEMORY AND ACP IN SYSTEM STATE
    309					;
    310					; INPUTS:
    311					;
    312					;	R5 -> WINDOW BLOCK (TO BE DEALLOCATED)
    313					;
    314					; OUTPUTS:
    315					;
    316					;	THE USER'S SECOND LUN WORD IS CLEARED, USER LINK TABLE ENTRY
    317					;	CLEARED AND WINDOW BLOCK DEALLOCATED.
    318					;
    319					;	ALL REGISTERS ARE PRESERVED.
    320					;-
    321
    322	000174				REMULA::CALL	$SAVAL		;;SAVE ALL REGISTERS
    323
    324						.IF DF	V$$ER1
    325						BIT	#WS.DIC,W.STAT(R5) ;;HAS THE USER'S 2ND LUN WORD ALREADY BEEN CLEARED
    326						BNE	10$		;;IF NE, YES - DON'T DO IT AGAIN
    327						.ENDC
    328
    329	000200	016502 	000002 			MOV	W.TASK(R5),R2	;;GET TASK CONTROL BLOCK ADDRESS,
    330	000204	016202 	000000G			MOV	T.PCB(R2),R2	;; PARTITION CONTROL BLOCK ADDRESS AND
    331	000210	016202 	000000G			MOV	P.HDR(R2),R2	;; TASK HEADER ADDRESS
    332	000214					MOVBNS	W.LUN(R5),R0	;;GET LUN
    333	000222					CALL	MAPLUN		;;GET POINTER TO 2ND LUN WORD
    334	000226	005010 				CLR	(R0)		;;CLEAR SECOND LUN WORD
    335	000230				10$:	MOVBNS	W.ULA(R5),R2	;;GET ULA
    336	000236	006302 				ASL	R2		;;MAKE IT A WORD INDEX
    337	000240	016700 	000000G			MOV	$NSVCB,R0	;;GET ADDRESS OF VCB
    338	000244	066002 	000006 			ADD	V.ULT(R0),R2	;;ADD STARTING ADDRESS OF ULT TO ULA INDEX
    339									;; TO GET NEXT WINDOW BLOCK'S SLOT
    340	000250	005042 				CLR	-(R2)		;;REMOVE CORRECT WINDOW BLOCK FROM ULT
    341	000252	010500 				MOV	R5,R0		;;GET ADDRESS OF WINDOW BLOCK
    342	000254	012701 	000040 			MOV	#W.WBL,R1	;;GET WINDOW BLOCK LENGTH
    343	000260					CALL	$DEACB		;;DEALLOCATE WINDOW BLOCK
    344	000264					RETURN			;;RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 11
SCNQUE,REMQUE - QUEUE SCANNING AND REMOVAL

    346					.SBTTL	SCNQUE,REMQUE - QUEUE SCANNING AND REMOVAL
    347					;+
    348					; ** - SCNQUE - QUEUE SCANNING CO-ROUTINE
    349					; ** - REMQUE - COMPANION ENTRY REMOVAL ROUTINE
    350					;
    351					; THIS IS A GENERAL CO-ROUTINE TO SCAN A QUEUE OF CCBS.
    352					;
    353					; INPUTS:
    354					;
    355					;	R4 = ADDRESS OF THE QUEUE LISTHEAD
    356					;
    357					; OUTPUTS:
    358					;
    359					;	C-BIT CLEAR:
    360					;	R5 = ADDRESS OF THE NEXT ELEMENT ON THE QUEUE
    361					;	C-BIT SET:
    362					;	NO MORE ELEMENTS ON THE QUEUE
    363					;
    364					;-
    365						.ENABL	LSB
    366	000266				SCNQUE::PUSH	(SP)		;COPY CO-ROUTINE ADDRESS
    367	000270	010466 	000002 			MOV	R4,2(SP)	;SAVE LISTHEAD ADDRESS
    368
    369	000274	000261 			10$:	SEC			;ASSUME END OF QUEUE
    370	000276	011405 				MOV	(R4),R5		;GET NEXT ITEM ON LIST
    371	000300	001414 				BEQ	30$		;IF EQ, END OF QUEUE
    372	000302	000241 				CLC			;VALID ITEM
    373	000304					CALL	@(SP)+		;CALL CO-ROUTINE
    374	000306	010504 				MOV	R5,R4		;COPY CURRENT ITEM ADDRESS
    375	000310	000771 				BR	10$		;GO SCAN NEXT ITEM
    376
    377	000312	011514 			REMQUE::MOV	(R5),(R4)	;UNLINK ITEM
    378	000314	001005 				BNE	20$		;IF NE, NOT LAST ITEM ON LIST
    379	000316	062766 	000002 	000004 		ADD	#2,4(SP)	;COMPUTE LISTTAIL ADDRESS
    380	000324	010476 	000004 			MOV	R4,@4(SP)	;POINT LISTTAIL TO NEW ITEM
    381	000330				20$:	POP	(SP)		;COPY RETURN OVER CO-ROUTINE ADDRESS
    382	000332				30$:	POP	(SP)		;COPY RETURN OVER LISTHEAD
    383	000334					RETURN			;RETURN TO CALLER
    384						.DSABL	LSB
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 12
SCNLUN - SCAN TASK LOGICAL UNIT TABLE

    386					.SBTTL	SCNLUN - SCAN TASK LOGICAL UNIT TABLE
    387
    388					;+
    389					; ** - SCNLUN - SCAN TASK LUT
    390					;
    391					; COROUTINE TO SCAN A TASK'S LOGICAL UNIT TABLE FOR ACTIVE LOGICAL
    392					; LINKS.
    393					;
    394					; INPUTS:
    395					;
    396					;	R4 = USER TASK HEADER ADDRESS
    397					;	R5 =  "     "  CONTROL BLOCK ADDRESS
    398					;
    399					; OUTPUTS:
    400					;
    401					;	R1 = ADDRESS OF HTE SECOND LUN WORD
    402					;	R4 = USER TASK HEADER ADDRESS
    403					;	R5 = 2ND LUN WORD CONTENTS
    404					;
    405					;	R0, R1, R2 AND R3 ARE DESTROYED
    406					;-
    407
    408	000336	011603 			SCNLUN::MOV	(SP),R3		;PRESERVE COROUTINE RETURN ADDRESS
    409	000340	005016 				CLR	(SP)		;ZERO STACK CELL FOR LUN-1 NUMBER
    410
    411	000342	011601 			10$:	MOV	(SP),R1		;GET LUN-1 VALUE
    412	000344	005216 				INC	(SP)		;INCREMENT LUN-1 VALUE
    413	000346	026416 	000000G			CMP	H.NLUN(R4),(SP)	;ANY MORE LUNS TO CHECK ?
    414	000352	103417 				BLO	20$		;IF LO, NO - GO RETURN (C-BIT SET)
    415	000354					CALL	$MPLNE		;MAP TO LUN
    416	000360	103770 				BCS	10$		;IF CS, LUN NOT ASSIGNED
    417	000362	020067 	000000G			CMP	R0,$NSUCB	;IS DEVICE NS: ?
    418	000366	001365 				BNE	10$		;IF NE, NO
    419	000370	011100 				MOV	(R1),R0		;GET 2ND LUN WORD
    420	000372	001763 				BEQ	10$		;IF EQ, NO LINK OPEN
    421	000374	121664 	000000G			CMPB	(SP),H.NML(R4)	;IS THIS THE ACCESS LINK ?
    422	000400	001760 				BEQ	10$		;IF EQ, YES - IGNORE
    423	000402	000241 				CLC			;CLEAR C-BIT TO INDICATE LINK FOUND
    424	000404					CALL	(R3)		;CALL BACK THE CALLER
    425	000406	012603 				MOV	(SP)+,R3	;GET THE COROUTINE RETURN ADDRESS
    426	000410	000754 				BR	10$		;CONTINUE
    427
    428	000412	010316 			20$:	MOV	R3,(SP)		;SET RETURN ADDRESS (C-BIT SET FROM 'CMP')
    429	000414					RETURN
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 13
SCNLUN - SCAN TASK LOGICAL UNIT TABLE

    431
    432					.SBTTL	ADDGEN,ADDGN1 - ADD AN EVENT TO GENERAL DELIVERY QUEUE
    433
    434					;+
    435					; ** - ADDGEN - ADD AN EVENT TO GENERAL DELIVERY QUEUE AND SET REQUEST FLAG
    436					; ** - ADDGN1 -  "   "   "    "    "        "      "
    437					;
    438					; INPUTS:
    439					;
    440					;	R4 -> CCB
    441					;
    442					; OUTPUTS:
    443					;
    444					;	R3 IS DESTROYED.
    445					;-
    446
    447	000416	152764 	000002 	000011 	ADDGEN::BISB	#CX.REQ,C.MOD(R4) ;SET TASK NEEDS REQUESTING CCB STATUS
    448	000424	105267 	000000G			INCB	$NSRQF		;SET GENERAL DELIVERY REQUEST FLAG
    449	000430	152764 	000001 	000011 	ADDGN1::BISB	#CX.GDQ,C.MOD(R4) ;SET CCB IN GENERAL DELIVERY CCB STATUS
    450	000436	016703 	000000G			MOV	$NSVCB,R3	;GET NETWORK VOLUME CONTROL BLOCK ADDRESS
    451	000442	010473 	000020 			MOV	R4,@V.GENQ+2(R3) ;ADD CCB TO END OF GENERAL
    452	000446	010463 	000020 			MOV	R4,V.GENQ+2(R3)	; QUEUE
    453	000452	005014 				CLR	(R4)		;CLEAR LINK POINTER (END OF QUEUE)
    454	000454	105763 	000002 			TSTB	V.TIMR(R3)	;IS THE QUEUE TIMER GOING ?
    455	000460	001003 				BNE	10$		;IF NE, YES
    456	000462	116363 	000003 	000002 		MOVB	V.TIME(R3),V.TIMR(R3) ;ELSE, START IT UP
    457	000470				10$:	RETURN			;RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 14
ADDEVT - ADD AN EVENT TO USER'S NETWORK DATA MAILBOX

    459					.SBTTL	ADDEVT - ADD AN EVENT TO USER'S NETWORK DATA MAILBOX
    460
    461					;+
    462					; ** - ADDEVT - ADD EVENT TO USER'S NETWORK DATA MAILBOX
    463					;
    464					; ADD AN EVENT (CONNECT, INTERRUPT, DISCONNECT) CCB TO THE USER TASK'S
    465					; MAILBOX NETWORK DATA QUEUE.  THEN TRY TO SPRING A NETWORK DATA AST FOR
    466					; ALL EVENTS WHICH REQUIRE ONE.
    467					;
    468					; INPUTS:
    469					;
    470					;	R3 ->	MAILBOX
    471					;	R4 ->	CCB  (FOR EVENT)
    472					;
    473					; OUTPUTS:
    474					;
    475					;	C-BIT SET - EVENT QUEUED
    476					;		THE CCB IS LINKED TO THE NETWORK DATA QUEUE AND, IF A
    477					;		NETWORK DATA AST HAS BEEN SPECIFIED, SPRAST IS ENTERED
    478					;		TO SPRING THE AST.
    479					;	C-BIT SET - EVENT NOT QUEUED
    480					;		THE TASK IS CLOSING HIS NETWORK ACTIVITY OR IS ABORTING
    481					;
    482					;	R0, R1 AND R2 ARE DESTROYED.
    483					;-
    484
    485						.ENABL	LSB
    486	000472	000261 			ADDEVT::SEC			;;ASSUME ERROR STATUS
    487	000474	132763 	000200 	000004 		BITB	#MS.CIP,M.STAT(R3) ;;CLOSE IN PROGRESS ?
    488	000502	001051 				BNE	30$		;;IF NE, YES - RETURN WITH C-BIT SET
    489
    490	000504	005014 				CLR	(R4)		;;CLEAR LINK POINTER
    491	000506	010473 	000014 			MOV	R4,@M.MAIL+2(R3) ;;LINK EVENT CCB INTO MAILBOX QUEUE
    492	000512	010463 	000014 			MOV	R4,M.MAIL+2(R3)	;;...
    493
    494	000516	005763 	000010 			TST	M.SPA(R3)	;;ANY AST SERVICE SPECIFIED ?
    495	000522	001441 				BEQ	30$		;;IF EQ, NO - JUST GO RETURN
    496
    497	000524	016300 	000002 			MOV	M.TASK(R3),R0	;;GET USER TASK TCB ADDRESS
    498	000530	052763 	000010 	000004 		BIS	#MS.AST,M.STAT(R3) ;;SET AST NEEDED ON ASSUMPTION THAT
    499	000536	105263 	000005 			INCB	M.NAST(R3)	;; RESOURCES NOT AVAILABLE
    500									;;FALL THRU AND TRY TO SPRING A NETWORK
    501									;; DATA AST
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 15
SPRAST - SPRING USER'S NETWORK DATA AST

    503					.SBTTL	SPRAST - SPRING USER'S NETWORK DATA AST
    504
    505					;+
    506					;** - SPRAST - SPRING USER'S NETWORK DATA AST
    507					;
    508					; INPUTS:
    509					;
    510					;	R0->	TCB
    511					;	R3->	MAILBOX
    512					;
    513					; OUTPUTS:
    514					;
    515					;	ONE AST FOR EACH COUNT IN THE TASK'S MAILBOX (W.NAST) IS
    516					;	SPRUNG ON THE USER.  IF THE COUNT GOES TO ZERO, THE AST NEEDED
    517					;	STATUS OF THE MAILBOX IS CLEARED.  IF A RESOURCE FAILURE OCCURS
    518					;	IN ALLOCATING THE AST BLOCK, THE AST NEEDED STATUS IS LEFT SET.
    519					;
    520					;	R1 AND R2 ARE DESTROYED.
    521					;-
    522
    523	000542				SPRAST::SAVRG	<R0>		;;SAVE TCB ADDRESS
    524	000544	012701 	000012 		10$:	MOV	#5*2,R1		;;SET LENGTH OF AST BLOCK
    525	000550					CALL	$ALOCB		;;ALLOCATE AST BLOCK
    526	000554	103422 				BCS	20$		;;IF CS, ALLOCATION FAILURE
    527	000556	010002 				MOV	R0,R2		;;SAVE ADDRESS OF AST BLOCK
    528	000560	005720 				TST	(R0)+		;;SKIP PAST LINK WORD
    529	000562	010120 				MOV	R1,(R0)+	;;STORE SIZE OF AST BLOCK
    530	000564	012720 	000016 			MOV	#7*2,(R0)+	;;SAVE # OF BYTES TO ALLOCATE ON STACK
    531	000570	016320 	000010 			MOV	M.SPA(R3),(R0)+	;;SAVE AST TRAP ADDRESS
    532	000574	005010 				CLR	(R0)		;;CLEAR PARAMETER COUNT
    533	000576	011600 				MOV	(SP),R0		;;RECOVER TCB ADDRESS
    534	000600	010201 				MOV	R2,R1		;;COPY ADDRESS OF AST BLOCK
    535	000602					CALL	$QASTT		;;SPRING USER'S NETWORK DATA AST
    536
    537	000606	105363 	000005 			DECB	M.NAST(R3)	;;DECREMENT AST NEEDED COUNT
    538	000612	001354 				BNE	10$		;;IF NE, GO SPRING ANOTHER AST
    539	000614	042763 	000010 	000004 		BIC	#MS.AST,M.STAT(R3) ;;ELSE, CLEAR AST NEEDED STATUS
    540
    541	000622				20$:	RESRG	<R0>		;;RECOVER TCB ADDRESS
    542	000624	000241 				CLC			;;MAKE SURE C-BIT IS CLEAR
    543
    544	000626				30$:	RETURN			;;RETURN TO CALLER
    545						.DSABL	LSB
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 16
FLSHIO - FLUSH PENDING I/O PACKETS FROM WINDOW BLOCK

    547					.SBTTL	FLSHIO - FLUSH PENDING I/O PACKETS FROM WINDOW BLOCK
    548
    549					;+
    550					; ** - FLSHIO - FLUSH PENDING I/O PACKETS FROM WINDOW BLOCK
    551					;
    552					; THIS SUBROUTINE FLUSHES ANY PENDING I/O PACKETS (SND$,REC$,XMI$) THAT
    553					; ARE QUEUED IN THE WINDOW BLOCK BACK TO THE USER WITH ABORT ERROR CODES.
    554					;
    555					; INPUT:
    556					;
    557					;	R5 ->	WINDOW BLOCK
    558					;
    559					; OUTPUTS:
    560					;
    561					;	ALL PENDING SEND, RECEIVE AND TRANSMIT INTERRUPT I/O PACKETS ARE
    562					;	RETURNED TO THE USER WITH AN ABORT ERROR CODE.
    563					;
    564					;	ALL REGISTERS ARE PRESERVED.
    565					;-
    566
    567	000630				FLSHIO::CALL	$SAVAL		;;SAVE ALL REGISTERS
    568	000634	062705 	000020 			ADD	#W.CSND,R5	;;ADD OFFSET TO CURRENT XMIT REQUEST I/O PACKET
    569	000640	005025 				CLR	(R5)+		;;CLEAR POINTER TO CURRENT TRANSMIT I/O PACKET
    570	000642					CALL	10$		;;FLUSH TRANSMIT REQUEST QUEUE
    571	000646					CALL	10$		;;FLUSH RECEIVE REQUEST QUEUE
    572	000652	005025 				CLR	(R5)+		;;CLEAR POINTER TO CURRENT INTERRUPT I/O PACKET
    573									;;FLUSH INTERRUPT REQUEST QUEUE AND RETURN
    574
    575	000654	011504 			10$:	MOV	(R5),R4		;;SAVE POINTER TO FIRST ITEM ON QUEUE
    576	000656	010403 			15$:	MOV	R4,R3		;;GET (NEXT) I/O PACKET FROM QUEUE
    577	000660	001404 				BEQ	20$		;;IF EQ, QUEUE IS EMPTY
    578	000662	011304 				MOV	(R3),R4		;;SAVE POINTER TO NEXT I/O PACKET
    579	000664					CALL	IOFLS		;;FLUSH THE I/O REQUEST (ABORT, BUT LEAVE ACCESS INTERLO
    580	000670	000772 				BR	15$		;;LOOP TILL QUEUE IS EMPTY
    581
    582	000672	010504 			20$:	MOV	R5,R4		;;SAVE ADDRESS
    583	000674	005025 				CLR	(R5)+		;;RESET LISTHEAD AND POINT TO NEXT CELL
    584	000676	010425 				MOV	R4,(R5)+	;;...
    585	000700					RETURN			;;RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 17
FLSHMB - FLUSH EVENTS FROM MAILBOX

    587					.SBTTL	FLSHMB - FLUSH EVENTS FROM MAILBOX
    588
    589					;+
    590					; ** - FLSHMB - FLUSH EVENTS FROM MAILBOX
    591					;
    592					; THIS SUBROUTINE FLUSHES EITHER ALL EVENTS FROM THE MAILBOX QUEUE OR
    593					; ALL EVENTS FOR A PARTICULAR LOGICAL LINK.
    594					;
    595					; INPUTS:
    596					;
    597					;	R0 = LOGICAL UNIT NUMBER
    598					;		<> 0	FLUSH ALL EVENTS FOR A PARTICULAR LOGICAL LINK
    599					;		=  0	FLUSH ENTIRE MAILBOX
    600					;	R4 -> MAILBOX BLOCK
    601					;-
    602
    603	000702				FLSHMB::CALL	$SAVAL		;;SAVE ALL REGISTERS
    604	000706	010403 				MOV	R4,R3		;;COPY MAILBOX
    605	000710	010305 				MOV	R3,R5		;; ADDRESS
    606	000712	062705 	000012 			ADD	#M.MAIL,R5	;;ADD OFFSET TO MAILBOX QUEUE
    607	000716	011504 			10$:	MOV	(R5),R4		;;GET (NEXT) EVENT FROM QUEUE
    608	000720	001430 				BEQ	50$		;;IF EQ, QUEUE IS EMPTY
    609	000722	005700 				TST	R0		;;ARE WE FLUSHING THE ENTIRE QUEUE?
    610	000724	001405 				BEQ	20$		;;IF EQ, YES - DON'T BOTHER MATCHING ON A LUN
    611	000726	120064 	000011 			CMPB	R0,C.MOD(R4)	;;OTHERWISE IS THIS EVENT FOR THE PROPER LOGICAL LINK
    612	000732	001402 				BEQ	20$		;;IF EQ, YES (NEVER MATCHES CONNECT OR MOP)
    613	000734	010405 			15$:	MOV	R4,R5		;;MOVE TO NEXT EVENT IN QUEUE
    614	000736	000767 				BR	10$		;;LOOP TILL DONE
    615
    616	000740	011415 			20$:	MOV	(R4),(R5)	;;REMOVE EVENT FROM QUEUE
    617	000742	001002 				BNE	25$		;;IF NE, IT WAS NOT THE LAST EVENT ON THE QUEUE
    618	000744	010563 	000014 			MOV	R5,M.MAIL+2(R3)	;;RESET END OF LIST POINTER
    619	000750				25$:	MOVBNS	C.FNC(R4),R1	;;GET EVENT TYPE CODE
    620	000756					SAVRG	<R0,R3,R5>	;;SAVE REGISTERS
    621	000764	006301 				ASL	R1		;;MAKE TYPE CODE A WORD INDEX
    622	000766					CALL	@TDISP-2(R1)	;;DISPATCH TO PROPER ROUTINE TO RELEASE RESOURCE
    623	000772					RESRG	<R5,R3,R0>	;;RESTORE REGISTERS
    624	001000	000746 				BR	10$		;;LOOP TILL DONE
    625
    626	001002				50$:	RETURN			;;RETURN TO CALLER
    627
    628	001004	001026'			TDISP:	RMCON			;1 - CONNECT PENDING
    629	001006	001060'				RMINT			;2 - INTERRUPT MESSAGE
    630	001010	001074'				RMDIS			;3 - USER DISCONNECT NOTICE
    631	001012	001074'				RMDIS			;4 - USER ABORT NOTICE
    632	001014	001074'				RMDIS			;5 - NETWORK ABORT NOTICE
    633	001016	000000G	000000G			.WORD	$CCBRT,$CCBRT	;6 AND 7 ARE RESERVED
    634	001022	001116'				RMMOP			;10 - MOP EVENT REPORTING
    635	001024	001116'				RMMOP			;11 - EVENT LOG RECORD (SAME AS MOP)            ;AP0002
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 18
RMCON - FLUSH PENDING CONNECT

    637					.SBTTL	RMCON - FLUSH PENDING CONNECT
    638
    639					;+
    640					; ** - RMCON - FLUSH PENDING CONNECT
    641					;
    642					; THIS SUBROUTINE WILL EITHER PLACE THE CONNECT ON THE GENERAL DELIVERY
    643					; QUEUE, IF IT WAS NEVER IN THE G.D. QUEUE, OR IT REJECTS THE CONNECTION
    644					; IF THE CONNECT HAD AT ONE TIME BEEN IN THE GENERAL DELIVERY QUEUE.
    645					;
    646					; INPUT:
    647					;
    648					;	R3 = MAILBOX ADDRESS
    649					;	R4 = CONNECT CCB
    650					;
    651					; OUTPUT:
    652					;
    653					;	ALL REGISTERS MAY BE DESTROYED.
    654					;-
    655
    656	001026	105363 	000006 		RMCON::	DECB	M.USE(R3)	;;DECREMENT ACTIVE LINK COUNT
    657	001032	132764 	000001 	000011 		BITB	#CX.GDQ,C.MOD(R4) ;;HAS THIS CONNECT EVER BEEN IN THE GENERAL DELIVERY Q
    658	001040	001405 				BEQ	10$		;;IF EQ, NO - GO PUT IT ON THE GENERAL DELIVERY QUEUE
    659									;;OTHERWISE REJECT THE CONNECTION
    660	001042	010405 				MOV	R4,R5		;;CHANGE REGISTER CONVENTIONS
    661	001044	012703 	000046 			MOV	#ER$ABO,R3	;;GET REJECT ERROR CODE
    662	001050					CALLR	CCBREJ		;;REJECT THE CONNECTION
    663
    664	001054				10$:	CALLR	ADDGEN		;;PUT CONNECT CCB IN GENERAL DELIVERY QUEUE AND
    665									;; SET REQUEST FLAG
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 19
RMINT - FLUSH INTERRUPT MESSAGE

    667					.SBTTL	RMINT - FLUSH INTERRUPT MESSAGE
    668
    669					;+
    670					; ** - RMINT - FLUSH INTERRUPT MESSAGE
    671					;
    672					; INPUT:
    673					;
    674					;	R4 = INTERRUPT MESSAGE CCB
    675					;
    676					; OUTPUT:
    677					;
    678					;	THE INTERRUPT MESSAGE IS RETURNED TO NSP.
    679					;
    680					;	ALL REGISTERS MAY BE DESTROYED.
    681					;-
    682
    683	001060	010405 			RMINT::	MOV	R4,R5		;;CHANGE REGISTER CONVENTIONS
    684	001062					CALLC	USRRCI		;;CALL NSP TO RETURN INTERRUPT MESSAGE
    685	001072					RETURN			;;RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 20
RMDIS - FLUSH DISCONNECT NOTIFICATION

    687					.SBTTL	RMDIS - FLUSH DISCONNECT NOTIFICATION
    688
    689					;+
    690					; ** - RMDIS - FLUSH DISCONNECT NOTIFICATION
    691					;
    692					; INPUT:
    693					;
    694					;	R3 -> MAILBOX
    695					;	R4 -> DISCONNECT/ABORT NOTIFICATION CCB
    696					;
    697					; OUTPUT:
    698					;
    699					;	THE DISCONNECT CCB AND POSSIBLE USER DATA CCB ARE
    700					;	RETURNED TO THE COMM EXEC.
    701					;
    702					;	ALL REGISTERS ARE PRESERVED.
    703					;-
    704
    705	001074				RMDIS::	PUSH	R4		;;SAVE DISCONNECT CCB ADDRESS
    706	001076	016404 	000016 			MOV	C.BUF+2(R4),R4	;;GET USER DATA CCB ADDRESS
    707	001102	001402 				BEQ	10$		;;IF EQ, NO USER DATA
    708	001104					CALL	$CCBRT		;;ELSE, RETURN USER DATA CCB
    709	001110				10$:	POP	R4		;;RESTORE DISCONNECT CCB ADDRESS
    710	001112					CALLR	$CCBRT		;;RETURN CCB TO CEX AND RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 21
RMMOP - FLUSH MOP EVENT

    712					.SBTTL	RMMOP - FLUSH MOP EVENT
    713
    714					;+
    715					; ** - RMMOP - FLUSH MOP EVENT
    716					;
    717					; INPUT:
    718					;
    719					;	R4 -> MOP CCB
    720					;
    721					; OUTPUT:
    722					;
    723					;	EITHER THE MOP EVENT IS PLACED ON THE GENERAL DELIVERY QUEUE, IF
    724					;	IT WAS NEVER THERE BEFORE, OR THE CCB IS RETURNED TO THE
    725					;	COMMUNICATION POOL, IF IT HAS BEEN ON THE GENERAL DELIVERY QUEUE
    726					;	PREVIOUSLY.
    727					;-
    728
    729	001116	132764 	000001 	000011 	RMMOP::	BITB	#CX.GDQ,C.MOD(R4) ;;HAS THIS MOP EVENT EVER BEEN IN GENERAL DELIVERY ?
    730	001124	001402 				BEQ	10$		;;IF EQ, NO - PUT IN GENERAL DELIVERY
    731
    732	001126					CALLR	$CCBCL		;;RETURN CCB & BUFFER TO COMM POOL, AND         ;BH0001
    733									;; RETURN TO CALLER                             ;**-1
    734
    735	001132				10$:	CALLR	ADDGEN		;;PUT CCB IN GENERAL DELIVERY QUEUE , SET
    736									;; REQUEST FLAG AND RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 22
BLXIT - MOVE CONNECT DATA

    738					.SBTTL BLXIT - MOVE CONNECT DATA
    739
    740					;+
    741					; BLXIT - MOVE DATA AREA FROM CONBLOK TO USER BUFFER
    742					;
    743					; INPUTS:
    744					;
    745					;	R0=BYTE COUNT
    746					;	R1=NUMBER OF BYTES REMAINING IN THE USER BUFFER
    747					;	R2=CONBLOK OFFSET (BLXIT)
    748					;	R2=VIRTUAL ADDRESS (BLXI2)
    749					;	R3=USER BUFFER APR6 BIAS (MAPPED SYSTEMS ONLY)
    750					;	R4=USER BUFFER ADDRESS
    751					;	R5=CCB ADDRESS WITH CONBLOK (BLXIT ONLY)
    752					;
    753					;	THE CONBLOK DESCRIBED IN C.BUF+2 OF THE CCB MUST BE MAPPED IN
    754					;	THE VIRTUAL ADDRESS SPACE OF THE SYSTEM.
    755					;
    756					; OUTPUTS:
    757					;
    758					;	THE NUMBER OF BYTES REMAINING IN THE USER BUFFER MAY BE TESTED
    759					;	WITH A SIGNED CONDITIONAL BRANCH.  IF 'BLE', NO SPACE REMAINS.
    760					;-
    761	000016					.PSECT
    762
    763	000016	066502 	000016 		BLXIT::	ADD	C.BUF+2(R5),R2	;POINT TO AREA IN CONBLOK
    764	000022				BLXI2::	PUSH	R0		;SAVE BYTE COUNT
    765	000024	020100 				CMP	R1,R0		;ENOUGH ROOM IN USER BUFFER ?
    766	000026	002001 				BGE	10$		;IF GE, YES - USE FULL COUNT
    767	000030	010100 				MOV	R1,R0		;ELSE, USE REMAINING BUFFER COUNT
    768	000032				10$:	CALL	BLXI1		;MOVE DATA
    769	000036	162601 				SUB	(SP)+,R1	;ADJUST REMAINING BUFFER COUNT
    770	000040					RETURN			;RETURN TO CALLER
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 23
BLXIO - MOVE DATA BLOCK

    772					.SBTTL BLXIO - MOVE DATA BLOCK
    773					.SBTTL BLXI1 - ALTERNATE ENTRY
    774
    775					;+
    776					; ** - BLXIO - MOVE DATA BLOCK
    777					; ** - BLXI1 - ALTERNATE ENTRY
    778					;
    779					; INPUT:
    780					;
    781					;	R0=BYTE COUNT
    782					;	R1=SOURCE APR6 BIAS (MAPPED SYSTEMS ONLY) (BLXIO)
    783					;	R2=SOURCE ADDRESS/DISPLACEMENT (BLXIO - REFERENCE THROUGH APR6)
    784					;				       (BLXI1 - REFERENCE THROUGH APR0-APR4)
    785					;	R3=DESTINATION APR6 BIAS (MAPPED SYSTEMS ONLY)
    786					;	R4=DESTINATION ADDRESS/DISPLACEMENT
    787					;
    788					; OUTPUT:
    789					;
    790					;	THE BLOCK OF DATA IS TRANSFERRED FROM THE SOURCE BUFFER
    791					;	TO THE DESTINATION BUFFER.  ON MAPPED SYSTEMS, THE SOURCE
    792					;	BIAS IS CONVERTED FOR APR5 AND THE SYSTEM ROUTINE $BLXIO
    793					;	IS CALLED.
    794					;
    795					;	R0-R4 MAY BE DESTROYED.
    796					;-
    797
    798	000042				BLXIO::				;GLOBAL REFERENCE LABEL
    799						.IF DF	M$$MGE
    800
    801	000042	162702 	020000 			SUB	#20000,R2	;CONVERT SOURCE VIRTUAL ADDRESS TO REFERENCE APR5
    802
    803						.IFTF
    804	000046				BLXI1:				;REFERENCE LABEL
    805						.IFT
    806
    807	000046					SAVRG	<R5>		;SAVE REGISTER
    808	000050					CALL	$BLXIO		;MOVE DATA BLOCK
    809	000054					RESRG	<R5>		;RESTORE REGISTER
    810
    811						.IFF
    812
    813					10$:	MOVB	(R2)+,(R4)+	;MOVE DATA BLOCK
    814						SOB	R0,10$
    815
    816						.ENDC
    817
    818	000056					RETURN
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 24
CCBREJ - FORM CONNECT REJECT CCB AND REJECT CONNECTION

    820					.SBTTL	CCBREJ - FORM CONNECT REJECT CCB AND REJECT CONNECTION
    821
    822					;+
    823					; CCBREJ - FORM CONNECT REJECT CCB AND REJECT CONNECTION
    824					;
    825					; A CONNECT REQUEST CCB IS RETURNED TO NSP INDICATING THE DESTINATION
    826					; PROCESS HAS ABORTED OR TIMED-OUT.  FOR PENDING VERSION 2 LINKS, THE
    827					; CONNECTION HAS TIMED OUT IN THE GENERAL DELIVERY QUEUE.  FOR PENDING
    828					; VERSION 1 LINKS, THE CONNECTION HAS TIMED OUT IN THE PENDING CONNECT
    829					; QUEUE.
    830					;
    831					; INPUT:
    832					;
    833					;	R3 = NSP REASON CODE
    834					;	R5 -> CONNECT CCB
    835					;
    836					; OUTPUT:
    837					;
    838					;	THE CCB IS REFORMATED TO A CONNECT REJECT AND NSP IS CALLED
    839					;	TO REJECT THE CONNECTION.
    840					;	ALL REGISTERS MAY BE DESTROYED.
    841					;-
    842
    843	000060	005065 	000020 		CCBREJ::CLR	C.CNT(R5)	;; NO OPTIONAL DATA
    844	000064					CALLR	USRCRJ		;;REJECT THE CONNECTION
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 25
TLACHK - TEMPORARY LINK ADDRESS CHECKING

    846					.SBTTL TLACHK - TEMPORARY LINK ADDRESS CHECKING
    847
    848					;+
    849					; TLACHK - CHECK TEMPORARY LINK ADDRESS AND DEQUEUE FROM MAILBOX
    850					; NETWORK DATA QUEUE.
    851					;
    852					; INPUTS:
    853					;
    854					;	R3 -> I/O PACKET
    855					;		I.FCN = ACC/REJ
    856					;	R4 -> MAILBOX
    857					;
    858					; OUTPUTS:
    859					;
    860					;	R1 = (NON-ZERO) CCB - VALID TLA
    861					;		CI CCB IS UNLINKED FROM TASK MAILBOX NETWORK DATA
    862					;		QUEUE.
    863					;	R1 = 0
    864					;		R0 = ERROR STATUS WORD
    865					;	R0 AND R4 ARE DESTROYED.
    866					;-
    867
    868	000070					.PSECT
    869
    870	000070				TLACHK::PUSH	R5		;SAVE REGISTER
    871	000072	016301 	000016G			MOV	I.PRM+16(R3),R1	;GET TEMPORARY LINK ADDRESS
    872
    873	000076	062704 	000012 			ADD	#M.MAIL,R4	;ADD OFFSET TO NETWORK DATA LISTHEAD
    874	000102					PUSH	#SCNQUE		;SETUP CO-ROUTINE CALL
    875
    876	000106				10$:	CALL	@(SP)+		;GET NEXT ITEM ON QUEUE
    877	000110	103416 				BCS	20$		;IF CS, END OF QUEUE
    878	000112	020105 				CMP	R1,R5		;THIS ITEM THE SAME AS THE TLA ?
    879	000114	001374 				BNE	10$		;IF NE, NO - CONTINUE SCANNING QUEUE
    880	000116	026365 	000000G	000004 		CMP	I.TCB(R3),C.NSP(R5) ;TLA'S TCB SAME AS THE ISSUING TASK'S ?
    881	000124	001370 				BNE	10$		;IF NE, NO - CONTINUE SCANNING QUEUE
    882	000126	132765 	000004 	000011 		BITB	#CX.UNL,C.MOD(R5) ;TLA MARKED AS PENDING ?
    883	000134	001764 				BEQ	10$		;IF EQ, NO - CONTINUE SCANNING QUEUE
    884									;ELSE, TLA MATCHES THIS CCB
    885	000136					CALL	REMQUE		;REMOVE THE CCB FROM THE QUEUE
    886	000142	005011 				CLR	(R1)		;CLEAR LINK WORD IN TLA (CCB)
    887	000144	000403 				BR	30$
    888
    889	000146	012700 	000000C		20$:	MOV	#IE.BAD&377,R0	;BAD PARAMETER STATUS
    890	000152	005001 				CLR	R1		;CLEAR TLA ADDRESS
    891	000154				30$:	POP	R5		;RECOVER REGISTER AND STACK
    892	000156					RETURN			;RETURN TO CALLER
    893
    894		000001 				.END
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 25-1
SYMBOL TABLE

ACKMAS= 170000   	CX.GDQ= 000001   	ER$NSD= 000003   	IE.NNT= 177660   	L.DCR   000036
ACKPRE= 100000   	CX.REQ= 000002   	ER$RES= 000001   	IE.NRJ= 177666   	L.FLG   000012
ACKRES= 060000   	CX.UNL= 000004   	ER$SSR= 000000   	IE.URJ= 177667   	L.LDA   000024
ACKWRA= 010000   	C$$CKP= 000000   	ER$SSS= 000045   	IODUN   000016RG    002	L.LIA   000026
ADDEVT  000472RG    002	C$$ORE= 000400   	ER$STA= 000051   	IODUN1  000014RG    002	L.LLA   000002
ADDGEN  000416RG    002	C$$RSH= 177564   	ER$TCN= 000040   	IOFLS   000000RG    002	L.LNG1  000054
ADDGN1  000430RG    002	C.BID   000003   	ER$TCO= 000041   	IOREDO  000066RG    002	L.LNO   000022
A$$CHK= 000000   	C.BUF   000014   	ER$TPA= 000010   	IOSUC   000010RG    002	L.LSA   000032
A$$CPS= 000000   	C.BUF1  000014   	ER$UOB= 000004   	IS.DAO= 000002   	L.LSF   000044
A$$PRI= 000000   	C.BUF2  000024   	E$$XPR= 000000   	IS.SUC= ****** GX	L.LVL   000001
A$$TRP= 000000   	C.CNT   000020   	FC.CCP= 000020   	I$$RAR= 000000   	L.NDA   000034
A.NAK = 010000   	C.CNT1  000020   	FC.CTL= 000006   	I$$RDN= 000000   	L.NIN   000016
BLXIO   000042RG 	C.CNT2  000030   	FC.KCP= 000016   	I.LN2 = ****** GX	L.NLA   000036
BLXIT   000016RG 	C.FLG   000022   	FC.KIL= 000004   	I.PRM = ****** GX	L.NSTA  000025
BLXI1   000046R  	C.FLG1  000022   	FC.RCE= 000002   	I.TCB = ****** GX	L.NXN   000014
BLXI2   000022RG 	C.FLG2  000032   	FC.RCP= 000014   	I.UCB = ****** GX	L.PDV   000041
CB.CCB= 000002   	C.FNC   000010   	FC.TIM= 000010   	K$$CNT= 177546   	L.REM   000006
CB.RDB= 000004   	C.LIN   000006   	FC.XCP= 000012   	K$$CSR= 177546   	L.RLA   000010
CCBREJ  000060RG 	C.LNK   000000   	FC.XME= 000000   	K$$LDC= 000000   	L.RNO   000020
CE.ABO= 100362   	C.MOD   000011   	FLSHIO  000630RG    002	K$$TPS= 000074   	L.STA   000000
CE.DIS= 100366   	C.NSP   000004   	FLSHMB  000702RG    002	LA.ACK= 100000   	L.TC    000042
CE.ERR= 100370   	C.RSV   000002   	FS.AST= 000000   	LA.MSK= 170000   	L.TIC   000043
CE.MOP= 100372   	C.STA   000007   	FS.CIB= 002000   	LA.NAK= 110000   	L.TIPD  000005
CE.NTE= 100361   	C.STS   000012   	FS.CRA= 001000   	LA.NMS= 010000   	L.TIPI  000004
CE.RTE= 100376   	DF$ADJ= 020000   	FS.DIS= 013000   	LA.RES= 060000   	L.UDQ   000034
CE.SRC= 100364   	DF$DWN= 001000   	FS.DVC= 001000   	LD$LP = 000000   	L.ULA   000040
CE.TMO= 100374   	DF$FRE= 070000   	FS.ENB= 012000   	LF.DFL= 000060   	L.USA   000030
CF.EOM= 000004   	DF$LCL= 040000   	FS.GET= 006000   	LF.DSP= 000040   	L.USTA  000024
CF.HDR= 000020   	DF$LNK= 004000   	FS.INI= 000000   	LF.DST= 000020   	L.XQ1   000046
CF.LB = 100000   	DF$REM= 010000   	FS.KIL= 000000   	LF.FPN= 000010   	L.XQ2   000050
CF.SOM= 000010   	DF$RES= 002000   	FS.LTM= 001000   	LF.HF0= 001000   	L.XQ3   000052
CF.SYN= 000040   	DF$TMP= 100000   	FS.MNT= 004000   	LF.HMF= 020000   	MAPHDR  000000RG
CF.TRN= 000100   	D$CHN   000002   	FS.MSN= 014000   	LF.HSF= 010000   	MAPLUN  000122RG    002
CL$ACK= 000040   	D$FLG   000000   	FS.RNG= 011000   	LF.INR= 000100   	MA.DA = 000000
CL$MFL= 000010   	D$LEN   000014   	FS.RTN= 001000   	LF.INT= 000400   	MA.IL = 000020
CL$NRM= 000020   	D$LNG   000005   	FS.SET= 005000   	LF.LCL= 040000   	MC.CC = 000040
CL$SFL= 000004   	D$NAM   000006   	FS.STM= 000000   	LF.MMF= 100000   	MC.CI = 000020
CL$TYP= 000001   	D$USE   000004   	FS.STP= 002000   	LF.MSF= 040000   	MC.DC = 000100
CL.MU1= 000001   	D$$BUG= 177514   	FS.STR= 001000   	LF.NKR= 000200   	MC.DI = 000060
CL.MU2= 000002   	D$$ISK= 000000   	FS.TRM= 003000   	LF.NKS= 000400   	MC.NO = 000000
CL.RES= 177774   	D$$L11= 000001   	FS.XKL= 002000   	LF.NPN= 000001   	MC.ST = 000120
CS.ABO= 000100   	D$$YNC= 000000   	FS.XOF= 010000   	LF.NTS= 002000   	MD.BM = 000040
CS.BUF= 000200   	D$$YNM= 000000   	FS.XON= 007000   	LF.RSU= 100000   	MD.EM = 000100
CS.DCR= 000400   	ER$ABO= 000046   	F$$LVL= 000001   	LS.DLS= 000200   	MD.ILS= 000040
CS.DEV= 000002   	ER$ABT= 000011   	GETWB   000146RG    002	LS.FCC= 000004   	MD.IM = 000020
CS.DIS= 000040   	ER$ACC= 000042   	GETWBA  000136RG    002	LS.FC0= 000001   	MF.ACK= 000004
CS.ENB= 000020   	ER$ACT= 000044   	G$$TPP= 000000   	LS.FC1= 000002   	MF.CTL= 000010
CS.EOF= 000001   	ER$CDI= 000052   	G$$TSS= 000000   	LS.ILS= 000200   	MF.DAT= 000000
CS.ERR= 100000   	ER$COM= 000047   	G$$TTK= 000000   	LS.MAK= 000020   	MSGHDR= 000007
CS.HFE= 002000   	ER$FCF= 000050   	G$$WRD= 000000   	LS.MNK= 000040   	MS.AST= 000010
CS.LST= 040000   	ER$FMT= 000005   	H.LUN = ****** GX	LS.RES= 000360   	MS.CIP= 000200
CS.MTL= 004000   	ER$GEN= 000007   	H.NLUN= ****** GX	LS.RSV= 000300   	M$$CRB= 000124
CS.RNG= 000010   	ER$IFC= 000030   	H.NML = ****** GX	L$$ASG= 000000   	M$$CRX= 000000
CS.ROV= 000004   	ER$ILS= 000043   	IE.ABO= ****** GX	L$$DRV= 000000   	M$$FCS= 000000
CS.RSN= 010000   	ER$IMG= 000053   	IE.BAD= ****** GX	L$$P11= 000001   	M$$MGE= 000000
CS.SUC= 000001   	ER$MLB= 000006   	IE.IFC= ****** GX	L$$11R= 000000   	M$$OVR= 000000
CS.TMO= 020000   	ER$NOD= 000002   	IE.NDA= 177662   	L.CIQ   000026   	M.MAIL  000012
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 25-2
SYMBOL TABLE

M.MAX   000007   	NO.RTL= 000022   	NT.MOD= 000020   	PF$EIP= 000100   	SCNQUE  000266RG    002
M.MBL = 000016   	NO.TAS= 000000   	NT.MOM= 000000   	PF$ENB= 000200   	SPRAST  000542RG    002
M.NAST  000005   	NO.TCL= 000017   	NT.MOP= 000010   	PF$OFF= 000000   	ST$CC = 000002
M.NEXT  000000   	NO.TC1= 000005   	NT.NAK= 000002   	PF$RLI= 000002   	ST$CIR= 000003
M.SPA   000010   	NO.TLK= 000020   	NT.NFL= 000000   	PF$RRI= 000004   	ST$CIS= 000001
M.STAT  000004   	NP$RTR= 000003   	NT.SFL= 000001   	PF$RVE= 000001   	ST$DAT= 000005
M.TASK  000002   	NR$IFC= 000030   	NT.SOL= 000140   	PF$RVR= 000040   	ST$DID= 000015
M.USE   000006   	NS.BOM= 000040   	NT.XOF= 000004   	PF$SLI= 000002   	ST$DIP= 000006
NC.FM0= 000000   	NS.EOM= 000100   	NT.XON= 000010   	PF$SRI= 000004   	ST$DIR= 000012
NC.FM1= 000001   	NS.MFL= 000003   	N$ACQ   000000   	PF$SRT= 000001   	ST$DIS= 000014
NC.FM2= 000002   	NS.MOM= 000000   	N$ICF   000006   	PF$STA= 000003   	ST$UDI= 000013
NETTIM= 000005   	NS.NFL= 000001   	N$LNI   000010   	PF$SUB= 000010   	ST$UNR= 000011
NE$ABO= 000046   	NS.SET= 000002   	N$LVC   000022   	PF$UP = 000001   	S$EMR   000006
NE$ABT= 000011   	NS.SFL= 000002   	N$NOD   000032   	PS$NTI= 000003   	S$FMT   000012
NE$ACC= 000042   	NS.SOL= 000140   	N$PLD   000026   	PS$OFF= 000000   	S$LEN   000040
NE$ACT= 000044   	NS.SUC= 000001   	N$STS   000042   	PS$STR= 000001   	S$LNK   000022
NE$CDI= 000052   	NT$ABO= 000022   	N$TCB   000004   	PS$UP = 000005   	S$MLK   000024
NE$COM= 000047   	NT$ACC= 000002   	N$TMP   000012   	PS$VER= 000004   	S$NKS   000010
NE$FCF= 000050   	NT$ADS= 000000   	N$VER   000036   	PS$WT = 000002   	S$RES   000014
NE$FMT= 000005   	NT$AKD= 000016   	N$$DAT= 000030   	P$CHN   000004   	S$SEC   000000
NE$GEN= 000007   	NT$AKI= 000020   	N$$DIS= 000020   	P$CNT   000005   	S$SNI   000016
NE$ILS= 000043   	NT$CC = 000012   	N$$INT= 000020   	P$FRQ   000012   	S$UMR   000004
NE$IMG= 000053   	NT$CON= 000000   	N$$LDV= 000001   	P$FSP   000013   	S$UMS   000002
NE$MLB= 000006   	NT$DAT= 000002   	N$$MOV= 000010   	P$LCD   000002   	S$UNI   000020
NE$NOD= 000002   	NT$DIS= 000010   	N$$OPT= 000020   	P$LEN   000014   	S$$WRG= 000000
NE$NSD= 000003   	NT$IDC= 000034   	N$$OVR= 000042   	P$LST   000000   	S$$YSZ= 007600
NE$RES= 000001   	NT$IDN= 000030   	N$$SYS= 000001   	P$NOD   000010   	TDISP   001004R     002
NE$SSR= 000000   	NT$ILN= 000032   	N$$USR= 000001   	P$PFQ   000006   	TLACHK  000070RG
NE$SSS= 000045   	NT$IND= 000024   	N.ACNT  000116   	P$TIM   000003   	T$$KMG= 000000
NE$STA= 000051   	NT$INL= 000026   	N.ACTL  000114   	P$$P45= 000000   	T$$MIN= 000000
NE$TCN= 000040   	NT$INT= 000004   	N.DDL1  000012   	P$$WRD= 000000   	T.PCB = ****** GX
NE$TCO= 000041   	NT$LS = 000014   	N.DDL2  000016   	P.HDR = ****** GX	T.RCVL= ****** GX
NE$TPA= 000010   	NT$MOD= 000012   	N.DDS1  000014   	Q$$OPT= 000010   	USRCRJ= ****** GX
NE$UOB= 000004   	NT$NAK= 000022   	N.DDS2  000020   	REMQUE  000312RG    002	USRRCI= ****** GX
NE.ABO= 177776   	NT$OFF= 000026   	N.DFMT  000010   	REMULA  000174RG    002	VF$RCV= 100000
NE.ACT= 177771   	NT$ON = 000002   	N.DGRP  000012   	RF.CLN= 000000   	VF$XMT= 040000
NE.CLS= 177767   	NT$QRY= 000014   	N.DOBJ  000011   	RF.CTL= 000003   	V$FLG   000000
NE.DIS= 177777   	NT$REJ= 000004   	N.DUSR  000014   	RF.TIM= 177400   	V$LEN   000022
NE.FMT= 177770   	NT$ROU= 000022   	N.LGTH= 000160   	RF.TM0= 000400   	V$RCV   000002
NE.NDT= 177766   	NT$RTI= 000010   	N.NODE  000000   	RF.WTD= 000020   	V$XMT   000012
NE.NOD= 177774   	NT$RTN= 000000   	N.OPDL  000136   	RF.WTM= 000030   	V$$CTR= 001000
NE.REJ= 177775   	NT$SNG= 000006   	N.OPTD  000140   	RF.WTS= 000010   	V.CULT  000004
NE.RES= 177773   	NT$STP= 000004   	N.PASL  000102   	RH.CNT= 000001   	V.GENQ  000016
NE.TIM= 177772   	NT$XOF= 000020   	N.PASS  000104   	RH.EFM= 000020   	V.MBXQ  000012
NI.FLI= 000002   	NT$XON= 000016   	N.RQDL  000060   	RH.HDR= 000002   	V.TIME  000003
NI.FRI= 000004   	NT.ABO= 000005   	N.RQID  000062   	RH.PRI= 000014   	V.TIMR  000002
NI.FRT= 000001   	NT.ABT= 000004   	N.RSRV= 000030   	RH.PR1= 000004   	V.TRCT  000000
NI.FUB= 000010   	NT.ACK= 000001   	N.SDL1  000036   	RH.RFM= 000100   	V.ULT   000006
NI.INI= 000001   	NT.BOM= 000040   	N.SDL2  000042   	RMCON   001026RG    002	V.ULTE  000010
NI.RLI= 000002   	NT.CON= 000001   	N.SDS1  000040   	RMDIS   001074RG    002	V.VBL = 000026
NI.RRI= 000004   	NT.DSC= 000003   	N.SDS2  000056   	RMINT   001060RG    002	V.1CPQ  000022
NI.RVE= 000001   	NT.EOM= 000100   	N.SEG   000006   	RMMOP   001116RG    002	WINDOW= 004000
NI.VER= 000002   	NT.FCN= 037400   	N.SFMT  000034   	R$$DER= 000000   	WS.DIC= 000004
NO.DTR= 000077   	NT.INT= 000002   	N.SGRP  000036   	R$$K11= 000001   	WS.DIP= 000100
NO.FAL= 000021   	NT.LOG= 000011   	N.SOBJ  000035   	R$$SND= 000000   	WS.EST= 000002
NO.FA1= 000001   	NT.MD1= 000420   	N.SUSR  000040   	R$$11M= 000000   	WS.INT= 000040
NO.NCU= 000023   	NT.MFL= 000002   	PD$NSP= ****** GX	SCNLUN  000336RG    002	WS.KIP= 000200
NSSUB	MACRO M1110  13-OCT-79 10:26  PAGE 25-3
SYMBOL TABLE

WS.MOD= 000010   	W.LLA   000010   	W.STAT  000004   	$CALLX= ****** GX	$NSQUF= ****** GX
WS.STA= 000020   	W.LUN   000007   	W.TASK  000002   	$CCBCL= ****** GX	$NSRQF= ****** GX
WS.VE1= 000001   	W.MBOX  000016   	W.ULA   000011   	$CCBRT= ****** GX	$NSUCB= ****** GX
W.CCBU  000006   	W.MODC  000005   	W.WBL = 000040   	$DEACB= ****** GX	$NSVCB= ****** GX
W.CINT  000032   	W.PIO   000014   	X$$DBT= 000000   	$IFCER  000052RG    002	$QASTT= ****** GX
W.CSND  000020   	W.RCVQ  000026   	$ALOCB= ****** GX	$IOFIN= ****** GX	$SAVAL= ****** GX
W.CTL   000000   	W.SEGZ  000012   	$BLXIO= ****** GX	$MPLNE= ****** GX	$TKTCB= ****** GX
W.INTQ  000034   	W.SNDQ  000022

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

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

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ADDEVT	  000472 RG	#14-486    
ADDGEN	  000416 RG	#13-447     18-664     21-735    
ADDGN1	  000430 RG	#13-449    
BLXIO 	  000042 RG	#23-798    
BLXIT 	  000016 RG	#22-763    
BLXI1 	  000046 R	 22-768    #23-804    
BLXI2 	  000022 RG	#22-764    
CCBREJ	  000060 RG	 18-662    #24-843    
CX.GDQ	= 000001	 13-449     18-657     21-729    
CX.REQ	= 000002	 13-447    
CX.UNL	= 000004	 25-882    
C.BUF 	  000014	 20-706     22-763    
C.CNT 	  000020	*24-843    
C.FNC 	  000010	 17-619    
C.LIN 	  000006	 9-288     
C.MOD 	  000011	*13-447    *13-449     17-611     18-657     21-729     25-882    
C.NSP 	  000004	 25-880    
ER$ABO	= 000046	 18-661    
FLSHIO	  000630 RG	#16-567    
FLSHMB	  000702 RG	#17-603    
GETWB 	  000146 RG	#9-290     
GETWBA	  000136 RG	#9-287     
H.LUN 	= ******  GX	 8-261     
H.NLUN	= ******  GX	 12-413    
H.NML 	= ******  GX	 12-421    
IE.ABO	= ******  GX	 4-112     
IE.BAD	= ******  GX	 25-889    
IE.IFC	= ******  GX	 5-171     
IODUN 	  000016 RG	#4-120     
IODUN1	  000014 RG	#4-118      5-172     
IOFLS 	  000000 RG	#4-112      16-579    
IOREDO	  000066 RG	#6-198     
IOSUC 	  000010 RG	#4-116     
IS.SUC	= ******  GX	 4-116     
I.LN2 	= ******  GX	 4-120     
I.PRM 	= ******  GX	*4-122      25-871    
I.TCB 	= ******  GX	 7-230      25-880    
I.UCB 	= ******  GX	 4-142     
MAPHDR	  000000 RG	#7-230     
MAPLUN	  000122 RG	#8-259      10-333    
MS.AST	= 000010	 14-498     15-539    
MS.CIP	= 000200	 14-487    
M$$MGE	= 000000	 19-684     19-684     23-799    
M.MAIL	  000012	 14-491    *14-492     17-606    *17-618     25-873    
M.NAST	  000005	*14-499    *15-537    
M.SPA 	  000010	 14-494     15-531    
M.STAT	  000004	 14-487    *14-498    *15-539    
M.TASK	  000002	 14-497    
M.USE 	  000006	*18-656    
PD$NSP	= ******  GX	 19-684    
P.HDR 	= ******  GX	 7-232      10-331    
REMQUE	  000312 RG	#11-377     25-885    
NSSUB      CREATED BY  MACRO  ON 13-OCT-79 AT 10:27	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

REMULA	  000174 RG	#10-322    
RMCON 	  001026 RG	 17-628    #18-656    
RMDIS 	  001074 RG	 17-630     17-631     17-632    #20-705    
RMINT 	  001060 RG	 17-629    #19-683    
RMMOP 	  001116 RG	 17-634     17-635    #21-729    
RSX11D	= ******	 19-684     19-684    
SCNLUN	  000336 RG	#12-408    
SCNQUE	  000266 RG	#11-366     25-874    
SPRAST	  000542 RG	#15-523    
TDISP 	  001004 R	 17-622    #17-628    
TLACHK	  000070 RG	#25-870    
T.PCB 	= ******  GX	 7-231      10-330    
T.RCVL	= ******  GX	 6-199     
USRCRJ	= ******  GX	 24-844    
USRRCI	= ******  GX	 19-684    
V$$ER1	= ******	 3-1        3-2        4-125      10-324    
V.GENQ	  000016	 13-451    *13-452    
V.TIME	  000003	 13-456    
V.TIMR	  000002	 13-454    *13-456    
V.ULT 	  000006	 9-293      10-338    
W.CSND	  000020	 16-568    
W.LUN 	  000007	 10-332    
W.TASK	  000002	 10-329    
W.ULA 	  000011	 10-335    
W.WBL 	= 000040	 10-342    
$ALOCB	= ******  GX	 15-525    
$BLXIO	= ******  GX	 23-808    
$CALLX	= ******  GX	 19-684    
$CCBCL	= ******  GX	 21-732    
$CCBRT	= ******  GX	 17-633     17-633     20-708     20-710    
$DEACB	= ******  GX	 10-343    
$IFCER	  000052 RG	#5-169     
$IOFIN	= ******  GX	 4-143     
$MPLNE	= ******  GX	 12-415    
$NSQUF	= ******  GX	*6-205     
$NSRQF	= ******  GX	*13-448    
$NSUCB	= ******  GX	 12-417    
$NSVCB	= ******  GX	 9-292      10-337     13-450    
$QASTT	= ******  GX	 15-535    
$SAVAL	= ******  GX	 10-322     16-567     17-603    
$TKTCB	= ******  GX	 6-198     
NSSUB      CREATED BY  MACRO  ON 13-OCT-79 AT 10:27	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		 4-143      5-169      10-322     10-333     10-343     11-373     12-415     12-424     15-525     15-535    
                 16-567     16-570     16-571     16-579     17-603     17-622     20-708     22-768     23-808     25-876    
                 25-885    
CALLC 		#3-47      #19-684    
CALLR 		#18-662    #18-664    #20-710    #21-732    #21-735    #24-844    
CALLX 		#3-47       19-684    
CCBDF$		#3-47       3-48      
DVBDF$		#3-51      #3-54      
LLWDF$		#3-51       3-53      
MAP   		#3-47      
MBXDF$		#3-51      #3-52      
MOVBNS		#3-76       9-288      10-332     10-335     17-619    
NSPSY$		#3-47       3-49      
NSSYM$		#3-51      #3-55      
POP   		#3-70       4-144      11-381     11-382     20-709     25-891    
PUSH  		#3-64      #4-123     #11-366    #20-705    #22-764    #25-870    #25-874    
RESRG 		#3-47       15-541     17-623     23-809    
RETURN		 4-145      5-174      6-206      7-233      8-263      9-298      10-344     11-383     12-429     13-457    
                 15-544     16-585     17-626     19-685     22-770     23-818     25-892    
SAVRG 		#3-47       9-291      15-523     17-620     23-807    
SWSTK$		#5-169     
$MVTBF		#3-47