NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    4000  HISTORY

   (1)    4800  DECLARATIONS

   (1)    9300  CONNECT INITIATE QIO PROCESSING

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   1

X01                                                                                                                              (1)



                                     0000   100 

                                     0000   200 	.TITLE	NETCONECT - PROCESS USER CONNECT REQUESTS

                                     0000   300 	.IDENT	/X01/

                                     0000   400 

                                     0000   500 ;

                                     0000   600 ; COPYRIGHT (C) 1977, 1978

                                     0000   700 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000   800 ;

                                     0000   900 ; THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

                                     0000  1000 ; COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

                                     0000  1100 ; ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

                                     0000  1200 ; MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

                                     0000  1300 ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

                                     0000  1400 ; TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

                                     0000  1500 ; REMAIN IN DEC.

                                     0000  1600 ;

                                     0000  1700 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

                                     0000  1800 ; AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

                                     0000  1900 ; CORPORATION.

                                     0000  2000 ;

                                     0000  2100 ; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

                                     0000  2200 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000  2300 

                                     0000  2400 ;++

                                     0000  2500 ; FACILITY:	NETWORK ACP

                                     0000  2600 ;

                                     0000  2700 ; ABSTRACT:

                                     0000  2800 ;	THIS MODULE PERFORMS PROCESSING FOR ALL CONNECT OPERATIONS

                                     0000  2900 ;	(INIT, CONFIRM, REJECT).

                                     0000  3000 ; A NETWORK CONNECT BLOCK (NCB) IS CREATED OR USED, DEPENDING ON WHETHER

                                     0000  3100 ; AN NSP MESSAGE WAS RECEIVED OR A QIO WAS ISSUED, RESPECTIVELY.

                                     0000  3200 ; NCB'S HAVE THE SAME FORM AS THE TRANSLATION OF THE LOGICAL NAME "INPUT".

                                     0000  3300 ; THE FORMAT OF AN NCB IS:

                                     0000  3400 ;	NODENAME::OBJTYPE_:DESCRIPTOR/CONNECT_INDEX+CONNECT_SEQ+USRDATA

                                     0000  3500 ;

                                     0000  3600 ; ENVIRONMENT:

                                     0000  3700 ;	MODE = KERNEL

                                     0000  3800 ;--

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   2

X01             HISTORY                                                                                                          (1)



                                     0000  4000 	.SBTTL	HISTORY

                                     0000  4100 ; AUTHOR:	SCOTT G. DAVIS, CREATION DATE: 10-JUN-77

                                     0000  4200 ;

                                     0000  4300 ; MODIFIED BY:

                                     0000  4400 ;

                                     0000  4500 ;	, : VERSION

                                     0000  4600 ; 01	- 

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   3

X01             DECLARATIONS                                                                                                     (1)



                                     0000  4800 	.SBTTL	DECLARATIONS

                                     0000  4900 ;

                                     0000  5000 ; INCLUDE FILES:

                                     0000  5100 ;

                                     0000  5200 	$ABDDEF

                                     0000  5300 	$DRDEF

                                     0000  5400 	$DYNDEF

                                     0000  5500 	$IRPDEF

                                     0000  5600 	$NDBDEF

                                     0000  5700 	$NETMSGDEF

                                     0000  5800 	$OBJDEF

                                     0000  5900 	$SSBDEF

                                     0000  6000 	$UCBDEF

                                     0000  6100 

                                     0000  6200 ;

                                     0000  6300 ; MACROS:

                                     0000  6400 ;

                                     0000  6500 

                                     0000  6600 ;

                                     0000  6700 ; EQUATED SYMBOLS:

                                     0000  6800 ;

                                     0000  6900 

                                     0000  7000 	$EQULST	NET_,,,,<-

                                     0000  7100 		<MAXFMTLTH,16>,-	; MAX LTH OF A FORMAT DESCRIPTOR

                                     0000  7200 		<FMT1,1>,-		; PROCESS DESCRIPTOR FMT 1

                                     0000  7300 >

                           00000006  0000  7400 NET$C_MAXNODLTH == 6			; MAX LTH OF A NODE NAME

                                     0000  7500 ;

                                     0000  7600 ; OWN STORAGE:

                                     0000  7700 ;

                                     0000  7800 

                                 00000000  7900 	.PSECT	NET_IMPURE,WRT,NOEXE

                                     0000  8000 ;

                                     0000  8100 ; NCB FIELDS FROM USER CONNECT INITIATE/CONFIRM/REJECT

                                     0000  8200 ;

                           00000001  0000  8300 NET$GB_TMP_SRV::	.BLKB		; HOLDER FOR REMSRV

                           00000002  0001  8400 NET$GB_DSTOBJ::		.BLKB		; BINARY OBJTYPE FOR OUTBOUND CI

                           00000003  0002  8500 NET$GB_DSTFMT::		.BLKB		; BINARY FORMAT FOR OUTBOUND CI

                           0000000B  0003  8600 OBJ_NAME:	.BLKB	8		; ASCII OBJ_NAME - FOR LOOKUPS

                           0000001D  000B  8700 NET$GT_DSTDSCR:: .BLKB	NET_MAXFMTLTH+2	; I-16 FIELD PLUS SLOP

                           00000021  001D  8800 SAVE_UCB:	.BLKL	1		; FOR SAVING UCB ADDRESS

                           00000023  0021  8900 FUNC_CODE:	.BLKW	1		; FOR SAVING FUNCTION CODE

                           00000024  0023  9000 CONNECT_SEQ:	.BLKB	1		; FOR SAVING CONNECT SEQUENCE NO.

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   4

X01             DECLARATIONS                                                                                                     (1)



                                 00000000  9200 	.PSECT	NET_CONNECT,NOWRT

                                     0000  9300 	.SBTTL	CONNECT INITIATE QIO PROCESSING

                                     0000  9400 ;++

                                     0000  9500 ; FUNCTIONAL DESCRIPTION:

                                     0000  9600 ;

                                     0000  9700 ; NET$CONNECT - THIS ROUTINE PROCESSES USER CONNECT INITS OR CONFIRMS.

                                     0000  9800 ;		PARAMETERS AND CONNECT BLOCK (NCB) ARE VALIDATED.

                                     0000  9900 ;		A LINK UCB IS FILLED IN, AND AN NSP MSG IS SENT TO THE

                                     0000 10000 ;		PROPER NODE.

                                     0000 10100 ;***** NOTE *****

                                     0000 10200 ;

                                     0000 10300 ; CONNECT INITIATES AND CONFIRMS ARE DISTINGUISHED BY THE VALUE OF THE

                                     0000 10400 ; BYTE FOLLOWING THE REMOTE PROCESS IDENTIFIER:

                                     0000 10500 ;	0 FOR CONNECT INITIATE, SUPPLIED VALUE FOR CONNECT CONFIRM.

                                     0000 10600 ; WOE TO THE USER WHO SCREWS UP!

                                     0000 10700 ;

                                     0000 10800 ;***** NOTE *****

                                     0000 10900 ;

                                     0000 11000 ; CALLING SEQUENCE:

                                     0000 11100 ;

                                     0000 11200 ;	ENTERED VIA CASE IN NET$TRN

                                     0000 11300 ;

                                     0000 11400 ; INPUT PARAMETERS:

                                     0000 11500 ;

                                     0000 11600 ;	R5 - LOGICAL LINK UCB ADDRESS

                                     0000 11700 ;

                                     0000 11800 ; SIDE EFFECTS:

                                     0000 11900 ;

                                     0000 12000 ;	CONNECT INIT OR CONFIRM MESSAGE MAY BE SENT

                                     0000 12100 ;

                                     0000 12200 ;--

                                     0000 12300 

                                     0000 12400 	.ENABL	LSB

                                     0000 12500 

                                     0000 12600 NET$CONNECT::

       001D'CF            55     D0  0000 12700 	MOVL	R5,W^SAVE_UCB		; SAVE THE UCB ADDRESS

                          FFF8'  30  0005 12800 	BSBW	NET$GET_NCB		; GET THE NCB (DEVICENAME STRING)

       0021'CF         20 A3     B0  0008 12900 	MOVW	IRP$W_FUNC(R3),W^FUNC_CODE ; SAVE FUNCTION CODE

                                     000E 13000 ;

                                     000E 13100 ; PARSE THE NETWORK CONNECT BLOCK (NCB)

                                     000E 13200 ;

                                     000E 13300 ; PARSE NODENAME AND ACCESS CONTROL INFORMATION

                                     000E 13400 ;

            7E            5A     7D  000E 13500 	MOVQ	R10,-(SP)		; SAVE THE NCB DESCRIPTOR

            53       0000'CF     9E  0011 13600 	MOVAB	W^NET$GT_DSTNODE,R3	; SET BFR ADDR

            55            06     9A  0016 13700 	MOVZBL	#NET$C_MAXNODLTH,R5	; MAX LTH

            56            22     9A  0019 13800 	MOVZBL	#^A/"/,R6		; ACCESS CONTROL DELIMITER AND NCB TERMINATOR

            56         FF AB4A   91  001C 13900 	CMPB	-1(R11)[R10],R6		; IS THE NCB TERMINATOR RIGHT?

                          55     12  0021 14000 	BNEQ	17$			; IF NEQ NO

                          029E   30  0023 14100 	BSBW	GET_STRINGA		; FIND A NODENAME STRING

            53            50     E9  0026 14200 	BLBC	R0,20$			; IF LBC NOT FOUND - ASSUME ACCESS INFO NULL

                                     0029 14300 ;

                                     0029 14400 ; ACCESS INFO PASSED WITH $ASSIGN

                                     0029 14500 ;

            53       0000'CF     9E  0029 14600 	MOVAB	W^NET$AB_ACC_BUF,R3	; SET UP TARGET BUFFER

       0004'CF            53     D0  002E 14700 	MOVL	R3,W^NET$GQ_ACCESS+4	; STORE THE BUFFER ADDRESS

            56            20     9A  0033 14800 	MOVZBL	#^A" ",R6		; LOOK FOR A " "

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   5

X01             CONNECT INITIATE QIO PROCESSING                                                                                  (1)



            55            00'    D0  0036 14900 	MOVL	S^#NET$C_RQSTRLTH,R5	; MAX LENGTH OF RQSTRID

                          028D   30  0039 15000 	BSBW	GET_STRING		; GET THE STRING

            6F            50     E9  003C 15100 	BLBC	R0,40$			; IF LBC ERROR

                     0C08 8F     BB  003F 15200 	PUSHR	#^M<R3,R10,R11>		; SAVE REGS FOR POSSIBLE RESCAN

            55            00'    D0  0043 15300 	MOVL	S^#NET$C_PSWRDLTH,R5	; GET PASSWORD

                          0280   30  0046 15400 	BSBW	GET_STRING		; DO IT

            56            22     9A  0049 15500 	MOVZBL	#^A/"/,R6		; TRY TO MATCH END OF ACCESS CONTROL

            0E            50     E8  004C 15600 	BLBS	R0,10$			; IF BS OK

                     0C08 8F     BA  004F 15700 	POPR	#^M<R3,R10,R11>		; MAYBE NO ACCOUNT - SET FOR RESCAN

                          0273   30  0053 15800 	BSBW	GET_STRING		; TRY TO FIND PASSWORD

            55            50     E9  0056 15900 	BLBC	R0,40$			; IF BC NOT FOUND

                          83     94  0059 16000 	CLRB	(R3)+			; PASSWORD FOUND, BUT NO ACCOUNT INFO

                          09     11  005B 16100 	BRB	15$			; GO TO COMMON CODE

                                     005D 16200 10$:

            55            00'    D0  005D 16300 	MOVL	S^#NET$C_ACCNTLTH,R5	; LTH OF ACCOUNT

                          0266   30  0060 16400 	BSBW	GET_STRING		; GET ACCOUNT STRING

            48            50     E9  0063 16500 	BLBC	R0,40$			; IF BC ERROR

                                     0066 16600 15$:

            53       0004'CF     C3  0066 16700 	SUBL3	W^NET$GQ_ACCESS+4,R3,W^NET$GQ_ACCESS ; SET BFR LTH

                     0000'CF         006B       

                          5A     D7  006E 16800 	DECL	R10			; NEED AT LEAST A ":"

                          3C     19  0070 16900 	BLSS	40$			; IF LSS NOT THERE

            56            3A     9A  0072 17000 	MOVZBL	#^A/:/,R6		; TERMINATOR

            56            8B     91  0075 17100 	CMPB	(R11)+,R6		; IS IT THERE?

                          34     12  0078 17200 17$:	BNEQ	40$			; IF NEQ NO - ERROR

                          18     11  007A 17300 	BRB	30$			; GO TO COMMON PARSING

                                     007C 17400 ;

                                     007C 17500 ; NO ACCESS CONTROL INFO PASSED WITH $ASSIGN - USE DEFAULT

                                     007C 17600 ;

                                     007C 17700 20$:

                     0000'CF     7C  007C 17800 	CLRQ	W^NET$GQ_ACCESS		; FLAG DEFAULT ACCESS CONTROL

            5A            8E     7D  0080 17900 	MOVQ	(SP)+,R10		; GET THE NCB DESCRIPTOR BACK

            53       0000'CF     9E  0083 18000 	MOVAB	W^NET$GT_DSTNODE,R3	; SET BFR ADDR

            55            06     9A  0088 18100 	MOVZBL	S^#NET$C_MAXNODLTH,R5	; MAX LTH

            56            3A     9A  008B 18200 	MOVZBL	#^A/:/,R6		; TERMINATOR

                          0233   30  008E 18300 	BSBW	GET_STRINGA		; PICK UP A NODENAME STRING

            1A            50     E9  0091 18400 	BLBC	R0,40$			; IF LBC ERROR

                                     0094 18500 30$:

            5A            02     C2  0094 18600 	SUBL2	#2,R10			; NEED A :"

                          15     19  0097 18700 	BLSS	40$			; IF LSS NOT ENOUGH CHARS

       223A 8F            8B     B1  0099 18800 	CMPW	(R11)+,#^A/:"/		; ARE THEY THERE?

                          0E     12  009E 18900 	BNEQ	40$			; IF NEQ NO

                                     00A0 19000 ;

                                     00A0 19100 ; PARSE OBJECTNAME (TASK,FAL,ETC.)

                                     00A0 19200 ;

            53       0003'CF     9E  00A0 19300 	MOVAB	W^OBJ_NAME,R3		; SET BFR ADDR

            56            3D     9A  00A5 19400 	MOVZBL	#^A/=/,R6		; SET TERMINATOR - R5 IS RIGHT

                          021E   30  00A8 19500 	BSBW	GET_STRING		; PICK UP A STRING

            03            50     E8  00AB 19600 	BLBS	R0,50$			; IF BS OK

                                     00AE 19700 ;

                                     00AE 19800 ; NCB HAS ILLEGAL FORMAT

                                     00AE 19900 ;

                                     00AE 20000 40$:

                          00BD   31  00AE 20100 	BRW	160$			; NCB IS BAD - TERMINATE THE I/O

                                     00B1 20200 50$:

                                     00B1 20300 ;

                                     00B1 20400 ; SEE IF OBJECT NAME IS A DECIMAL NUMBER .LE. 255 - IF SO, TAKE

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   6

X01             CONNECT INITIATE QIO PROCESSING                                                                                  (1)



                                     00B1 20500 ; IT TO BE AN OBJECT NUMBER.

                                     00B1 20600 ;

                          08     DD  00B1 20700 	PUSHL	#8			; TAKE 8 BITS

                     0001'CF     DF  00B3 20800 	PUSHAL	W^NET$GB_DSTOBJ		; RESULT ADDRESS

            56       0004'CF     9E  00B7 20900 	MOVAB	W^OBJ_NAME+1,R6		; GET ADDRESS OF NAME STRING

                          56     DD  00BC 21000 	PUSHL	R6			; SAVE STRING ADDRESS

            7E            76     98  00BE 21100 	CVTBL	-(R6),-(SP)		; PICK UP STRING LTH

       0000'CF            04     FB  00C1 21200 	CALLS	#4,W^NET$CVT_DTB	; CONVERT DECIMAL TO BINARY

            1D            50     E8  00C6 21300 	BLBS	R0,70$			; IF LBS IT WAS A DECIMAL NUMBER

                                     00C9 21400 ;

                                     00C9 21500 ; MUST BE A NAME - LOOK UP THE CORRESPONDING VALUE

                                     00C9 21600 ;

                                     00C9 21700 

                                     00C9 21800 	ASSUME	OBJ$B_NAME EQ 0

                                     00C9 21900 

            57       0000'CF     D0  00C9 22000 	MOVL	W^NET$GL_OBJNAMES,R7	; POINT TO OBJECT NAMES

            58       0000'CF     9A  00CE 22100 	MOVZBL	W^NET$GL_OBJCOUNT,R8	; NO. OF OBJECTS TO SCAN

                                     00D3 22200 60$:

       0001'CF         09 A7     90  00D3 22300 	MOVB	OBJ$B_NUMBER(R7),W^NET$GB_DSTOBJ ; FETCH THE OBJECT NUMBER

                          FF24'  30  00D9 22400 	BSBW	NET$COMP_STRING		; NAME MATCH?

                          22     13  00DC 22500 	BEQL	90$			; IF EQL YES

            57            20     C0  00DE 22600 	ADDL	#OBJ$C_SIZE,R7		; BUMP OBJ PTR

            EF            58     F5  00E1 22700 	SOBGTR	R8,60$			; LOOP

                          C8     11  00E4 22800 	BRB	40$			; INVALID OBJECT NAME

                                     00E6 22900 ;

                                     00E6 23000 ; FIND THE OBJECT TO SEE IF PRIVILEGED CONNECT REQUIRED

                                     00E6 23100 ;

                                     00E6 23200 70$:

            57       0000'CF     D0  00E6 23300 	MOVL	W^NET$GL_OBJNAMES,R7	; POINT TO OBJ NAME LIST

            58       0000'CF     9A  00EB 23400 	MOVZBL	W^NET$GL_OBJCOUNT,R8	; GET NO. OF NAMES

                                     00F0 23500 80$:

         09 A7       0001'CF     91  00F0 23600 	CMPB	W^NET$GB_DSTOBJ,OBJ$B_NUMBER(R7) ; MATCH?

                          08     13  00F6 23700 	BEQL	90$			; IF EQL YES

            57            20     C0  00F8 23800 	ADDL	#OBJ$C_SIZE,R7		; BUMP

            F2            58     F5  00FB 23900 	SOBGTR	R8,80$			; LOOP

                          6E     11  00FE 24000 	BRB	160$			; INVALID OBJ TYPE

                                     0100 24100 90$:

                     0000'CF     D5  0100 24200 	TSTL	W^NET$GQ_ACCESS		; DID USER SPECIFY ACCESS?

                          26     12  0104 24300 	BNEQ	120$			; IF NEQ YES

                                     0106 24400 ;

                                     0106 24500 ; SEE IF PRIVILEGE IS REQUIRED FOR THIS CONNECT

                                     0106 24600 ;

            50         18 A7     7D  0106 24700 	MOVQ	OBJ$Q_PRIV(R7),R0	; GET REQUIRED PRIVILEGES

                          20     13  010A 24800 	BEQL	120$			; IF EQL NO PRIVILEGE REQUIRED

            52       001D'CF     D0  010C 24900 	MOVL	W^SAVE_UCB,R2		; GET THE UCB

            52         4C A2     D0  0111 25000 	MOVL	UCB$L_IRP(R2),R2	; GET THE IRP ADDRESS

            52         3C A2     7D  0115 25100 	MOVQ	IRP$Q_NT_PRVMSK(R2),R2	; GET THE PROCESS'S PRIVILEGE MASK

            50            52     CA  0119 25200 	BICL	R2,R0			; SEE IF PROCESS HAS REQUIRED PRIVILEGE

                          05     12  011C 25300 	BNEQ	100$			; IF NEQ NO

            51            53     CA  011E 25400 	BICL	R3,R1			; TRY OTHER PART OF MASK

                          05     13  0121 25500 	BEQL	110$			; IF EQL OK

                                     0123 25600 100$:

            50            00'    3C  0123 25700 	MOVZWL	S^#SS$_NOPRIV,R0	; NO PRIVILEGE FOR CONNECT

                          4B     11  0126 25800 	BRB	170$			; GO TO COMMON CODE

                                     0128 25900 110$:

                     0004'CF     D7  0128 26000 	DECL	W^NET$GQ_ACCESS+4	; INDICATE PRIVILEGED ACCESS REQUIRED

                                     012C 26100 120$:

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   7

X01             CONNECT INITIATE QIO PROCESSING                                                                                  (1)



                          59     D4  012C 26200 	CLRL	R9			; ASSUME NO CONNECT-ID (TRANSPARENT ASSIGN)

            53       000B'CF     9E  012E 26300 	MOVAB	W^NET$GT_DSTDSCR,R3	; SET BFR ADDR

                          63     94  0133 26400 	CLRB	(R3)			; ASSUME NO DESCRIPTOR

                          5A     D7  0135 26500 	DECL	R10			; ANY CHARS LEFT?

                          1F     13  0137 26600 	BEQL	140$			; IF EQL NO - DONE

                                     0139 26700 ;

                                     0139 26800 ; PARSE DESCRIPTOR

                                     0139 26900 ;

            55            10     9A  0139 27000 	MOVZBL	#NET_MAXFMTLTH,R5	; MAX LTH

            56            2F     9A  013C 27100 	MOVZBL	#^A?/?,R6		; TERMINATOR

                          0187   30  013F 27200 	BSBW	GET_STRING		; GET STRING

            06            50     E8  0142 27300 	BLBS	R0,130$			; IF LBS "/" FOUND

                          5A     D5  0145 27400 	TSTL	R10			; IF NOT FOUND, MAY BE TRANSPARENT CI

                          0F     15  0147 27500 	BLEQ	140$			; IF LEQ OK

                          23     11  0149 27600 	BRB	160$			; ILLEGAL NCB

                                     014B 27700 130$:

            5A            02     C2  014B 27800 	SUBL	#2,R10			; NEED 2 BYTES OF CIR INDEX AND SEQUENCE

                          1E     19  014E 27900 	BLSS	160$			; IF LSS ERROR

            59            8B     9A  0150 28000 	MOVZBL	(R11)+,R9		; FETCH CI-RCVD INDEX

       0023'CF            8B     90  0153 28100 	MOVB	(R11)+,W^CONNECT_SEQ	; SAVE THE SEQUENCE NO.

                                     0158 28200 140$:

       0002'CF       000B'CF     90  0158 28300 	MOVB	W^NET$GT_DSTDSCR,W^NET$GB_DSTFMT ; GET DESC LTH - 0 MEANS NONE

                          07     13  015F 28400 	BEQL	150$			; IF EQL USE FORMAT 0 - OBJTYPE ONLY

       0002'CF            01     90  0161 28500 	MOVB	#NET_FMT1,W^NET$GB_DSTFMT ; USE FORMAT 1 - 16-BYTE DESCR

                          0D     11  0166 28600 	BRB	180$			; PROCEED

                                     0168 28700 150$:

                                     0168 28800 ;

                                     0168 28900 ; NO DESTINATION DESCRIPTOR - SEE IF OBJECT TYPE 0 (TASK)

                                     0168 29000 ;

                     0001'CF     95  0168 29100 	TSTB	W^NET$GB_DSTOBJ		; GOING TO A TASK?

                          07     12  016C 29200 	BNEQ	180$			; IF NEQ OK

                                     016E 29300 160$:

            50       0000'8F     3C  016E 29400 	MOVZWL	#SS$_IVDEVNAM,R0	; NCB HAS ILLEGAL FORMAT

                          40     11  0173 29500 170$:	BRB	230$			; KILL THE I/O

                                     0175 29600 180$:

                                     0175 29700 ;

                                     0175 29800 ; R10 AND R11 DESCRIBE USRDATA FIELD FROM NCB

                                     0175 29900 ;

                                     0175 30000 ;

                                     0175 30100 ; LOOK UP NODE NAME

                                     0175 30200 ;

            58       0000'CF     D0  0175 30300 	MOVL	W^NET$GL_NODLST,R8	; GET ADDRESS OF 1ST NDB

            57       0000'CF     9E  017A 30400 	MOVAB	W^NET$GT_DSTNODE,R7	; POINT TO PARSED NODE NAME

                          67     95  017F 30500 	TSTB	(R7)			; ANY NAME THERE?

                          17     13  0181 30600 	BEQL	200$			; IF EQL NO - USE LOCAL NODE

            56         1A A8     9E  0183 30700 190$:	MOVAB	NDB$T_NAME(R8),R6	; POINT TO NODE NAME IN NDB

                          FE76'  30  0187 30800 	BSBW	NET$COMP_STRING		; COMPARE THE STRINGS

                          1E     13  018A 30900 	BEQL	210$			; IF EQL MATCH

            58            68     D0  018C 31000 	MOVL	NDB$L_NEXT(R8),R8	; GET LINK TO NEXT NDB

                          F2     12  018F 31100 	BNEQ	190$			; IF NEQ LOOP

                                     0191 31200  

                                     0191 31300 ;

                                     0191 31400 ; NODE NOT FOUND

                                     0191 31500 ;

            58       0000'CF     D0  0191 31600 	MOVL	W^NET$GL_FRONTEND,R8	; IS THERE AN INTERCEPT NODE?

                          18     13  0196 31700 	BEQL	220$			; IF EQL NO - NO SUCH NODE

                          10     11  0198 31800 	BRB	210$			; GO OUT VIA INTERCEPT NODE

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   8

X01             CONNECT INITIATE QIO PROCESSING                                                                                  (1)



                                     019A 31900 

                                     019A 32000 ;

                                     019A 32100 ; LOCAL NODE OR FRONT END - JAM THE DESTINATION NODE NAME

                                     019A 32200 ;

                                     019A 32300 200$:

            56         1A A8     9A  019A 32400 	MOVZBL	NDB$T_NAME(R8),R6	; GET NAME LTH

       0000'CF            56     90  019E 32500 	MOVB	R6,W^NET$GT_DSTNODE	; STORE LTH

         1B A8            56     28  01A3 32600 	MOVC3	R6,NDB$T_NAME+1(R8),W^NET$GT_DSTNODE+1 ; STORE THE NAME

                     0001'CF         01A7       

                                     01AA 32700 

                                     01AA 32800 210$:

                                     01AA 32900 ;

                                     01AA 33000 ; NODE FOUND - NDB ADDRESS IN R8

                                     01AA 33100 ;

            00'        16 A8     91  01AA 33200 	CMPB	NDB$B_STATE(R8),S^#NET$C_ST_ON ; IS THE NODE REALLY UP?

                          07     13  01AE 33300 	BEQL	240$			; IF EQL YES

                                     01B0 33400 220$:

            50       0000'8F     3C  01B0 33500 	MOVZWL	#SS$_NOSUCHNODE,R0	; NODE IS INACCESSIBLE OR NONEXISTENT

                          43     11  01B5 33600 230$:	BRB	ABORT_CON		; KILL THE I/O

                                     01B7 33700 240$:

            50       0000'8F     3C  01B7 33800 	MOVZWL	#SS$_DEVOFFLINE,R0	; ASSUME LINE IS OFF

         17 A8            01     E0  01BC 33900 	BBS	#NDB$V_OFF,NDB$B_STATUS(R8),ABORT_CON ; IF BS THEN LINE IS OFF

                          39         01C0       

            55       001D'CF     D0  01C1 34000 	MOVL	W^SAVE_UCB,R5		; RESTORE THE UCB ADDRESS

       0021'CF            00'    E0  01C6 34100 	BBS	S^#IO$V_ABORT,W^FUNC_CODE,310$ ; IF BS CONNECT REJECT

                          5D         01CB       

                                     01CC 34200 

                                     01CC 34300 ;

                                     01CC 34400 ; DO ROUND-ROBIN SEARCH FOR A FREE SLOT IN THE UCB VECTOR

                                     01CC 34500 ;

            57       0000'CF     9A  01CC 34600 	MOVZBL	W^NET$GB_LINK_IDX,R7	; INITIALIZE LINK INDEX FOR SCAN

                          0E     11  01D1 34700 	BRB	260$			; START LOOP

                                     01D3 34800 250$:

                     FFFC'CF47   D5  01D3 34900 	TSTL	W^NET$AL_UCBVCT-4[R7]	; SLOT FREE?

                          32     13  01D8 35000 	BEQL	290$			; IF EQL YES

       0000'CF            57     91  01DA 35100 	CMPB	R7,W^NET$GB_LINK_IDX	; WRAPAROUND?

                          0A     13  01DF 35200 	BEQL	270$			; IF EQL YES - NO SLOTS AVAILABLE

            EF            57     F5  01E1 35300 260$:	SOBGTR	R7,250$			; LOOP

            57       0000'CF     9A  01E4 35400 	MOVZBL	W^NET$GW_MAXLNK,R7	; RESET

                          E8     11  01E9 35500 	BRB	250$			; LOOP

                                     01EB 35600 

                                     01EB 35700 270$:

                                     01EB 35800 ;

                                     01EB 35900 ; NO FREE CONNECT SLOTS

                                     01EB 36000 ;

                          59     D5  01EB 36100 	TSTL	R9			; IS THIS A CONNECT CONFIRM?

                          06     13  01ED 36200 	BEQL	280$			; IF EQL NO

            58            01     B0  01EF 36300 	MOVW	#NET$C_DR_RSU,R8	; YES - TELL OTHER NSP THE BAD NEWS

                          FE0B'  30  01F2 36400 	BSBW	NET$XMT_DC		; DISCONNECT THE LINK

                                     01F5 36500 280$:

            50       0000'8F     3C  01F5 36600 	MOVZWL	#SS$_NOLINKS,R0		; SET IN THE STATUS CODE

                                     01FA 36700 ABORT_CON:

       0000'CF            50     D0  01FA 36800 	MOVL	R0,W^NET$GQ_USR_STAT	; STUFF THE I/O STATUS

            55       001D'CF     D0  01FF 36900 	MOVL	W^SAVE_UCB,R5		; GET THE UCB ADDRESS

            53         4C A5     D0  0204 37000 	MOVL	UCB$L_IRP(R5),R3	; GET THE IRP ADDRESS

                          FDF5'  30  0208 37100 	BSBW	NET$BAD_ACCESS		; POST THE COMPLETION

                                 04  020B 37200 	RET				; THAT IS ALL

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page   9

X01             CONNECT INITIATE QIO PROCESSING                                                                                  (1)



                                     020C 37300 

                                     020C 37400 290$:

       0000'CF            57     90  020C 37500 	MOVB	R7,W^NET$GB_LINK_IDX	; SAVE THE CURRENT INDEX

                                     0211 37600 ;

                                     0211 37700 ; SLOT FOUND - DETERMINE LOCAL CONNECT NO.

                                     0211 37800 ;

                     FFFF'CF47   96  0211 37900 300$:	INCB	W^NET$AB_LNKSEQ-1[R7]	; BUMP THE SEQUENCE NO.

                          F9     13  0216 38000 	BEQL	300$			; GUARANTEE NON-ZERO CONNECT NO.

            56       FFFF'CF47   9A  0218 38100 	MOVZBL	W^NET$AB_LNKSEQ-1[R7],R6 ; GET HIGH BYTE OF SEQUENCE NO.

                                     021E 38200 ;

                                     021E 38300 ; FILL IN LOGICAL LINK UCB

                                     021E 38400 ;

                       18 A5     B4  021E 38500 	CLRW	UCB$W_DSTADDR(R5)	; INIT IN CASE RECYCLED UCB WITH CONNECT INIT

         1A A5            57     90  0221 38600 	MOVB	R7,UCB$W_SRCADDR(R5)	; LINK INDEX

         1B A5            56     90  0225 38700 	MOVB	R6,UCB$W_SRCADDR+1(R5)	; LINK SEQUENCE - TOGETHER:LINK ADDRESS

                                     0229 38800 310$:

         7C A5         14 A8     B0  0229 38900 	MOVW	NDB$W_CHANNEL(R8),UCB$W_NT_CHAN(R5) ; SET THE CMP CHANNEL NO.(MAYBE)

                          55     DD  022E 39000 	PUSHL	R5			; SAVE UCB ADDRESS

                                 28  0230 39100 	MOVC3	S^#NET$C_MAXNODLTH+1,-	; MOVE THE NODE NAME IN

                          07         0231 39200 		W^NET$GT_DSTNODE,-	; STRING SOURCE

         0C A5       0000'CF         0232 39300 		UCB$T_PARTNER(R5)	; STRING DEST

                          20     BA  0237 39400 	POPR	#^M<R5>			; RESTORE UCB ADDRESS

                          59     D5  0239 39500 	TSTL	R9			; CONNECT INIT OR CONFIRM/REJECT?

                          5D     13  023B 39600 	BEQL	340$			; IF EQL CI

                                     023D 39700 ;

                                     023D 39800 ; THIS IS A CONNECT CONFIRM OR REJECT

                                     023D 39900 ;

                                     023D 40000 ; GET THE "CIR (CONNECT INIT RECEIVED) PENDING" BLOCK

                                     023D 40100 ;

            00'           59     D1  023D 40200 	CMPL	R9,S^#NET$C_MAXCIR	; INDEX TOO BIG?

                          22     14  0240 40300 	BGTR	320$			; IF GTR YES

                          59     D7  0242 40400 	DECL	R9			; USE 1-ORIGIN INDEXING

                          1E     19  0244 40500 	BLSS	320$			; IF LSS, INDEX IS BAD

                     0000'CF49   D5  0246 40600 	TSTL	W^NET$AL_CIRPID[R9]	; IS THE INFO VALID?

                          17     13  024B 40700 	BEQL	320$			; IF EQL NO

            56       0000'CF49   7E  024D 40800 	MOVAQ	W^NET$AT_CIRNOD[R9],R6	; POINT TO SEQ NO. AND NODE NAME

       0023'CF            86     91  0253 40900 	CMPB	(R6)+,W^CONNECT_SEQ	; MATCH?

                          0A     12  0258 41000 	BNEQ	320$			; IF NEQ NO

            57       0000'CF     9E  025A 41100 	MOVAB	W^NET$GT_DSTNODE,R7	; THIS IS WHAT USER SAID

                          FD9E'  30  025F 41200 	BSBW	NET$COMP_STRING		; WAS IT THE RIGHT NODE NAME?

                          03     13  0262 41300 	BEQL	330$			; IF EQL YES

                                     0264 41400 320$:

                          FF07   31  0264 41500 	BRW	160$			; SAY "INVALID DEVICE NAME"

                                     0267 41600 330$:

                     0000'CF49   D4  0267 41700 	CLRL	W^NET$AL_CIRPID[R9]	; CIR INDEX IS FREE

         18 A5       0000'CF49   B0  026C 41800 	MOVW	W^NET$AW_CIRDST[R9],UCB$W_DSTADDR(R5) ; PARTNER LINK ADDRESS

         7C A5       0000'CF49   B0  0273 41900 	MOVW	W^NET$AW_CIRCHN[R9],UCB$W_NT_CHAN(R5) ; SET THE CHANNEL NO.

         3A A5       0000'CF49   B0  027A 42000 	MOVW	W^NET$AW_CIRSEG[R9],UCB$W_DEVBUFSIZ(R5) ; SET THE SEGMENT SIZE

         3D A5       0000'CF49   90  0281 42100 	MOVB	W^NET$AB_CIRSRV[R9],UCB$B_REMSRV(R5) ; SET THE SERVICES

       0021'CF            00'    E1  0288 42200 	BBC	S^#IO$V_ABORT,W^FUNC_CODE,340$ ; IF BC NOT REJECT

                          0C         028D       

                                     028E 42300 ;

                                     028E 42400 ; CONNECT REJECT BY USER

                                     028E 42500 ;

       0000'CF            00'    3C  028E 42600 	MOVZWL	S^#SS$_NORMAL,W^NET$GQ_USR_STAT ; SET FOR GOOD COMPLETION OF I/O

                     0000'CF     9F  0293 42700 	PUSHAB	W^NET$BAD_ACCESS	; BUT DON'T CHARGE FOR THE ACCESS

                          FD66'  31  0297 42800 	BRW	NET$USER_REJECT		; GO TO COMMON CODE (DISCONNECT)

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page  10

X01             CONNECT INITIATE QIO PROCESSING                                                                                  (1)



                                     029A 42900 340$:

         40 A5         40 A5     DE  029A 43000 	MOVAL	UCB$L_IOQFL(R5),UCB$L_IOQFL(R5) ; SET UP I/O QUEUE HEAD

         44 A5         40 A5     D0  029F 43100 	MOVL	UCB$L_IOQFL(R5),UCB$L_IOQBL(R5) ; SET UP I/O QUEUE HEAD

         52 A5            00'    90  02A4 43200 	MOVB	S^#NET$C_ST_CIS,UCB$B_STATE(R5) ; ASSUME CONNECT INITIATE

                       14 A5     D4  02A8 43300 	CLRL	UCB$L_FIRST(R5)		; INIT DATA MESSAGE SEGMENT CHAIN

                                 AA  02AB 43400 	BICW	#^C<UCB$M_DELMBX!UCB$M_NT_NAME>,-

         5A A5       FFED 8F         02AC 43500 		UCB$W_DEVSTS(R5)	; RESET DEVICE STATUS

                                     02B1 43600 ;

                                     02B1 43700 ; ALLOCATE AND FILL IN SUBCHANNEL STATUS BLOCK (SSB)

                                     02B1 43800 ;

            56         74 A5     9E  02B1 43900 	MOVAB	UCB$L_NT_DATSSB(R5),R6	; GET STORAGE ADDRESS

                          44     10  02B5 44000 	BSBB	SETUP_SSB		; SET UP SSB

            56         78 A5     9E  02B7 44100 	MOVAB	UCB$L_NT_INTSSB(R5),R6	; GET STORAGE ADDRESS

                          3E     10  02BB 44200 	BSBB	SETUP_SSB		; SET UP SSB

                          72     96  02BD 44300 	INCB	-(R2)			; INT/LS SUBCHANNEL - INIT FLOW CONTROL

                          72     96  02BF 44400 	INCB	-(R2)			; PARTNER WILL TAKE ONE, TOO

                                     02C1 44500 ;

                                     02C1 44600 ; SET UP AND SEND CONNECT MESSAGE

                                     02C1 44700 ;

                          FD3C'  31  02C1 44800 	BRW	NET$CONMES		; SET UP AND SEND CONNECT MSG

                                     02C4 44900 

                                     02C4 45000 	.DSABL	LSB

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page  11

X01             CONNECT INITIATE QIO PROCESSING                                                                                  (1)



                                     02C4 45200 ; GET_STRING - THIS ROUTINE FETCHES A STRING UP TO A DELIMITER.

                                     02C4 45300 ; GET_STRINGA - SAME, BUT STRING MAY HAVE ONLY NUMBERS AND UPPER ALPHAS.

                                     02C4 45400 ;

                                     02C4 45500 ; INPUTS:	R3 - ADDRESS OF TARGET BUFFER

                                     02C4 45600 ;		R5 - MAX LTH OF STRING

                                     02C4 45700 ;		R6 - TERMINATOR

                                     02C4 45800 ;		R10 - LTH OF REMAINING BFR

                                     02C4 45900 ;		R11 - ADDRESS OF REMAINING BFR

                                     02C4 46000 ;

                                     02C4 46100 ; OUTPUTS:	TARGET BFR FILLED WITH COUNTED ASCII STRING

                                     02C4 46200 ;		R10,R11 UPDATED

                                     02C4 46300 ;	R0 - LBC=>NG

                                     02C4 46400 ;	     LBS=>OK

                                     02C4 46500 ;	R7,R8 - CLOBBERED

                                     02C4 46600 ;

                                     02C4 46700 

                                     02C4 46800 GET_STRINGA:

            58            01     D0  02C4 46900 	MOVL	#1,R8			; FLAG NODENAME CHECK

                          02     11  02C7 47000 	BRB	GET_COMMON		; GO TO COMMON CODE

                                     02C9 47100 

                                     02C9 47200 GET_STRING:

                          58     D4  02C9 47300 	CLRL	R8			; ANY STRING WILL DO

                                     02CB 47400 GET_COMMON:

                          50     D4  02CB 47500 	CLRL	R0			; ASSUME FAILURE

            57            53     D0  02CD 47600 	MOVL	R3,R7			; STORE PTR TO COUNT BYTE

                          83     94  02D0 47700 	CLRB	(R3)+			; INIT COUNT

                                     02D2 47800 10$:

                          5A     D7  02D2 47900 	DECL	R10			; NEED ANOTHER CHAR

                          24     19  02D4 48000 	BLSS	30$			; IF LSS STRING DONE

            54            8B     90  02D6 48100 	MOVB	(R11)+,R4		; FETCH THE NEXT CHAR

                          F7     13  02D9 48200 	BEQL	10$			; IF EQL NULL - IGNORE

            56            54     91  02DB 48300 	CMPB	R4,R6			; TERMINATOR?

                          18     13  02DE 48400 	BEQL	20$			; IF EQL YES - DONE

                          58     D5  02E0 48500 	TSTL	R8			; NODENAME CHECK?

                          08     13  02E2 48600 	BEQL	15$			; IF EQL NO - PROCEED

                          FD19'  30  02E4 48700 	BSBW	NET$CHECK_ASCII		; SEE IF THE CHARACTER IS VALID

            10            50     E9  02E7 48800 	BLBC	R0,30$			; IF BC IT'S NO GOOD

                          50     D4  02EA 48900 	CLRL	R0			; RESET POSSIBLE ERROR INDICATOR

                                     02EC 49000 15$:

            83            54     90  02EC 49100 	MOVB	R4,(R3)+		; STORE THE CHARACTER

                          67     96  02EF 49200 	INCB	(R7)			; NO - ANOTHER CHAR IN STRING

            55            67     91  02F1 49300 	CMPB	(R7),R5			; TOO MANY?

                          04     14  02F4 49400 	BGTR	30$			; IF GTR YES

                          DA     11  02F6 49500 	BRB	10$			; LOOP

                          50     D6  02F8 49600 20$:	INCL	R0			; INDICATE SUCCESS

                                     02FA 49700 30$:

                                 05  02FA 49800 	RSB				; RETURN

                                     02FB 49900 

                                     02FB 50000 ;+

                                     02FB 50100 ;

                                     02FB 50200 ; SETUP_SSB - THIS ROUTINE ALLOCATES AND FILLS IN A SUBCHANNEL STATUS BLOCK (SSB)

                                     02FB 50300 ;

                                     02FB 50400 ; INPUTS:	R6 - ADDRESS TO STORE ADDRESS OF ALLOCATED BLOCK

                                     02FB 50500 ;

                                     02FB 50600 ; OUTPUTS:	R2 POINTS BEYOND END OF SSB

                                     02FB 50700 ;		CONNECT ABORTED (SS$_INSFMEM) IF COULDN'T ALLOCATE SSB

                                     02FB 50800 ;

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page  12

X01             CONNECT INITIATE QIO PROCESSING                                                                                  (1)



                                     02FB 50900 ;-

                                     02FB 51000 

                                     02FB 51100 SETUP_SSB:

            51            24     9A  02FB 51200 	MOVZBL	#SSB$C_LENGTH,R1	; GET LENGTH OF SSB

                          FCFF'  30  02FE 51300 	BSBW	NET$ALONONPAGED		; TRY TO ALLOCATE ONE

            08            50     E8  0301 51400 	BLBS	R0,10$			; IF LBS OK

            50       0000'8F     B0  0304 51500 	MOVW	#SS$_INSFMEM,R0		; COULDN'T ALLOCATE

                          FEEE   31  0309 51600 	BRW	ABORT_CON		; ABORT THE CONNECT

                                     030C 51700 10$:

            66            52     D0  030C 51800 	MOVL	R2,(R6)			; STORE THE SSB ADDRESS

            62            52     D0  030F 51900 	MOVL	R2,(R2)			; INIT XQFL

            82            82     DE  0312 52000 	MOVAL	(R2)+,(R2)+		; INIT XQBL

            82            51     B0  0315 52100 	MOVW	R1,(R2)+		; STORE BLOCK SIZE

            82            1D     99  0318 52200 	CVTBW	#DYN$C_SSB,(R2)+	; STORE TYPE AND SKIP BYTE

            62            52     D0  031B 52300 	MOVL	R2,(R2)			; INIT WACKQFL

            82            82     DE  031E 52400 	MOVAL	(R2)+,(R2)+		; INIT WACKQBL

            82            55     D0  0321 52500 	MOVL	R5,(R2)+		; STORE THE UCB BACK POINTER

            82            01     7D  0324 52600 	MOVQ	#1,(R2)+		; INIT ACKNOWLEDGEMENT PARAMETERS

                          82     D4  0327 52700 	CLRL	(R2)+			; INIT REQUEST COUNT ITEMS (ASSUME DATA SUBCHAN)

                                 05  0329 52800 	RSB				; DONE

                                     032A 52900  

                                     032A 53000 	.END

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page  13

SYMBOL TABLE                                                                                                                     (1)



ABD$C_ATTRIB   = 00000005            IO$V_ABORT       ********   X   04   IRP$W_FUNC       00000020            

ABD$C_FIB      = 00000001            IRP$B_CARCON     00000038            IRP$W_OBCNT      0000003E            

ABD$C_LENGTH     00000008            IRP$B_EFN        00000022            IRP$W_SIZE       00000008            

ABD$C_NAME     = 00000002            IRP$B_PRI        00000023            IRP$W_STS        0000002A            

ABD$C_RES      = 00000004            IRP$B_RMOD       0000000B            IRP$W_TT_PRMPT   0000003C            

ABD$C_RESL     = 00000003            IRP$B_TYPE       0000000A            NDB$B_COMMVER    0000002B            

ABD$C_WINDOW   = 00000000            IRP$C_LENGTH     0000004C            NDB$B_CONNTMO    0000004F            

ABD$K_LENGTH     00000008            IRP$K_LENGTH     0000004C            NDB$B_FUNC       00000021            

ABD$L_USERVA     00000004            IRP$L_AST        00000010            NDB$B_NONPRVACC  00000050            

ABD$W_COUNT      00000002            IRP$L_ASTPRM     00000014            NDB$B_NUMBUF     0000000B            

ABD$W_TEXT       00000000            IRP$L_DIAGBUF    00000044            NDB$B_PRVACC     0000007C            

ABORT_CON        000001FA R     04   IRP$L_IOQBL      00000004            NDB$B_RTEVER     00000028            

BIT...         = 00000000            IRP$L_IOQFL      00000000            NDB$B_STATE      00000016            

CONNECT_SEQ      00000023 R     03   IRP$L_IOSB       00000024            NDB$B_STATUS     00000017            

DYN$C_ACB      = 00000002            IRP$L_IOST1      00000034            NDB$B_TYPE       0000000A            

DYN$C_ADP      = 00000001            IRP$L_IOST2      00000038            NDB$C_CTL_LOOP = 00000005            

DYN$C_AQB      = 00000003            IRP$L_MEDIA      00000034            NDB$C_LENGTH     000000BC            

DYN$C_BRDCST   = 0000001A            IRP$L_PID        0000000C            NDB$C_LOOP     = 00000003            

DYN$C_BUFIO    = 00000013            IRP$L_SEGVBN     00000040            NDB$C_MAINT    = 00000004            

DYN$C_CEB      = 00000004            IRP$L_SEQNUM     00000048            NDB$C_MSG_DCHK = 00000009            

DYN$C_CRB      = 00000005            IRP$L_SVAPTE     0000002C            NDB$C_MSG_DOWN = 00000003            

DYN$C_CXB      = 0000001B            IRP$L_TT_TERM    00000038            NDB$C_MSG_DSRCH= 00000007            

DYN$C_DDB      = 00000006            IRP$L_UCB        0000001C            NDB$C_MSG_LOOPB= 00000008            

DYN$C_DPT      = 0000001E            IRP$L_WIND       00000018            NDB$C_MSG_MAINT= 00000002            

DYN$C_FCB      = 00000007            IRP$M_BUFIO    = 00000001            NDB$C_MSG_NGINI= 00000004            

DYN$C_FRK      = 00000008            IRP$M_CHAINED  = 00000020            NDB$C_MSG_OKINI= 00000005            

DYN$C_GSD      = 00000015            IRP$M_COMPLX   = 00000008            NDB$C_MSG_SHUT = 00000006            

DYN$C_IDB      = 00000009            IRP$M_DIAGBUF  = 00000080            NDB$C_MSG_START= 00000001            

DYN$C_IRP      = 0000000A            IRP$M_FUNC     = 00000002            NDB$C_OFF      = 00000001            

DYN$C_JPB      = 0000001F            IRP$M_MBXIO    = 00000400            NDB$C_ON       = 00000000            

DYN$C_KFH      = 00000026            IRP$M_PAGIO    = 00000004            NDB$C_SHUT     = 00000002            

DYN$C_KFI      = 00000018            IRP$M_PHYSIO   = 00000100            NDB$K_LENGTH     000000BC            

DYN$C_LOG      = 0000000B            IRP$M_PRIVIO   = 00000200            NDB$L_LINE_NAME  00000004            

DYN$C_MTL      = 00000019            IRP$M_SWAPIO   = 00000040            NDB$L_NEXT       00000000            

DYN$C_MVL      = 00000016            IRP$M_VIRTUAL  = 00000010            NDB$M_CTL_LOOP = 00000008            

DYN$C_NDB      = 0000001C            IRP$Q_NT_PRVMSK  0000003C            NDB$M_LOOPBACK = 00000001            

DYN$C_NET      = 00000017            IRP$S_FCODE    = 00000006            NDB$M_OFF      = 00000002            

DYN$C_PBH      = 00000020            IRP$S_FMOD     = 0000000A            NDB$M_SHUT     = 00000004            

DYN$C_PCB      = 0000000C            IRP$S_MODE     = 00000002            NDB$Q_AST        0000000C            

DYN$C_PDB      = 00000021            IRP$V_BUFIO    = 00000000            NDB$Q_ZEROTIME   000000AC            

DYN$C_PFL      = 00000023            IRP$V_CHAINED  = 00000005            NDB$T_NAME       0000001A            

DYN$C_PIB      = 00000022            IRP$V_COMPLX   = 00000003            NDB$T_SYSVER     0000002E            

DYN$C_PQB      = 0000000D            IRP$V_DIAGBUF  = 00000007            NDB$V_CTL_LOOP = 00000003            

DYN$C_PTR      = 00000025            IRP$V_FCODE    = 00000000            NDB$V_LOOPBACK = 00000000            

DYN$C_RVT      = 0000000E            IRP$V_FMOD     = 00000006            NDB$V_OFF      = 00000001            

DYN$C_SFT      = 00000024            IRP$V_FUNC     = 00000001            NDB$V_SHUT     = 00000002            

DYN$C_SSB      = 0000001D            IRP$V_MBXIO    = 0000000A            NDB$W_BLKSIZE    00000022            

DYN$C_TQE      = 0000000F            IRP$V_MODE     = 00000000            NDB$W_BUFSIZE    000000A8            

DYN$C_TYPAHD   = 00000014            IRP$V_PAGIO    = 00000002            NDB$W_CHANNEL    00000014            

DYN$C_UCB      = 00000010            IRP$V_PHYSIO   = 00000008            NDB$W_CHAR       000000AA            

DYN$C_VCB      = 00000011            IRP$V_PRIVIO   = 00000009            NDB$W_HISBLKSIZ  000000B8            

DYN$C_WCB      = 00000012            IRP$V_SWAPIO   = 00000006            NDB$W_HISNSPSIZ  000000BA            

FUNC_CODE        00000021 R     03   IRP$V_VIRTUAL  = 00000004            NDB$W_MAXLNK     00000026            

GBL...         = 00000000            IRP$W_ABCNT      0000003C            NDB$W_NODEADDR   00000018            

GET_COMMON       000002CB R     04   IRP$W_BCNT       00000032            NDB$W_NSPSIZE    00000024            

GET_STRING       000002C9 R     04   IRP$W_BOFF       00000030            NDB$W_RCVBLKS    000000B4            

GET_STRINGA      000002C4 R     04   IRP$W_CHAN       00000028            NDB$W_SIZE       00000008            

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page  14

SYMBOL TABLE                                                                                                                     (1)



NDB$W_XMTBLKS    000000B6            NET$C_NOP      = 00000000            NET$V_MPRI     = 00000002            

NET$AB_ACC_BUF   ********   X   04   NET$C_NSPOVH   = 0000000B            NET$V_MSGFLG   = 00000002            

NET$AB_CIRSRV    ********   X   04   NET$C_NSPV3    = 00000000            NET$V_MSGID    = 00000000            

NET$AB_LNKSEQ    ********   X   04   NET$C_PIGGYBACK= 00008000            NET$V_MSGTYP   = 00000002            

NET$ALONONPAGED  ********   X   04   NET$C_PRINRM   = 00000001            NET$V_REMLFS   = 00000004            

NET$AL_CIRPID    ********   X   04   NET$C_PSWRDLTH   ********   X   04   NET$V_RFMT     = 00000006            

NET$AL_UCBVCT    ********   X   04   NET$C_RQSTRLTH   ********   X   04   NET$V_SUBTYP   = 00000004            

NET$AT_CIRNOD    ********   X   04   NET$C_RTHDR    = 00000002            NET$XMT_DC       ********   X   04   

NET$AW_CIRCHN    ********   X   04   NET$C_RTHDROVH = 0000000F            NET_FMT1       = 00000001            

NET$AW_CIRDST    ********   X   04   NET$C_ST_CIS     ********   X   04   NET_MAXFMTLTH  = 00000010            

NET$AW_CIRSEG    ********   X   04   NET$C_ST_ON      ********   X   04   OBJ$B_FILE       0000000A            

NET$BAD_ACCESS   ********   X   04   NET$GB_DSTFMT    00000002 RG    03   OBJ$B_NAME       00000000            

NET$CHECK_ASCII  ********   X   04   NET$GB_DSTOBJ    00000001 RG    03   OBJ$B_NUMBER     00000009            

NET$COMP_STRING  ********   X   04   NET$GB_LINK_IDX  ********   X   04   OBJ$C_FILE     = 00000000            

NET$CONMES       ********   X   04   NET$GB_TMP_SRV   00000000 RG    03   OBJ$C_SIZE       00000020            

NET$CONNECT      00000000 RG    04   NET$GET_NCB      ********   X   04   OBJ$K_SIZE       00000020            

NET$CVT_DTB      ********   X   04   NET$GL_FRONTEND  ********   X   04   OBJ$Q_PRIV       00000018            

NET$C_ACCNTLTH   ********   X   04   NET$GL_NODLST    ********   X   04   OBJ$T_FILE       0000000B            

NET$C_ACKM     = 00000001            NET$GL_OBJCOUNT  ********   X   04   OBJ$T_NAME       00000001            

NET$C_ACKOFF   = 00000005            NET$GL_OBJNAMES  ********   X   04   OBJ_NAME         00000003 R     03   

NET$C_CC       = 00000002            NET$GQ_ACCESS    ********   X   04   SAVE_UCB         0000001D R     03   

NET$C_CI       = 00000001            NET$GQ_USR_STAT  ********   X   04   SETUP_SSB        000002FB R     04   

NET$C_CTRLM    = 00000002            NET$GT_DSTDSCR   0000000B RG    03   SS$_DEVOFFLINE   ********   X   04   

NET$C_DATAM    = 00000000            NET$GT_DSTNODE   ********   X   04   SS$_INSFMEM      ********   X   04   

NET$C_DATREQ   = 00000000            NET$GW_MAXLNK    ********   X   04   SS$_IVDEVNAM     ********   X   04   

NET$C_DC       = 00000004            NET$M_BOM      = 00000020            SS$_NOLINKS      ********   X   04   

NET$C_DI       = 00000003            NET$M_EOM      = 00000040            SS$_NOPRIV       ********   X   04   

NET$C_DR_ABORT = 00000009            NET$M_INTLS    = 00000010            SS$_NORMAL       ********   X   04   

NET$C_DR_ACCESS= 00000022            NET$M_INTMSG   = 00000020            SS$_NOSUCHNODE   ********   X   04   

NET$C_DR_ACCNT = 00000024            NET$S_ACKOPT   = 00000001            SSB$B_FCVAL      00000021            

NET$C_DR_BADFC = 00000018            NET$S_BOM      = 00000001            SSB$B_PNDCNT     00000023            

NET$C_DR_BADLNK= 00000016            NET$S_EFMT     = 00000002            SSB$B_REQCNT     00000022            

NET$C_DR_BADSRV= 00000023            NET$S_EOM      = 00000001            SSB$B_TIPC       00000020            

NET$C_DR_CONF  = 0000002A            NET$S_FCINT    = 00000002            SSB$B_TYPE       0000000A            

NET$C_DR_EXIT  = 00000026            NET$S_FCMOD    = 00000002            SSB$C_LENGTH     00000024            

NET$C_DR_FMT   = 00000005            NET$S_FCOPT    = 00000002            SSB$K_LENGTH     00000024            

NET$C_DR_IMLONG= 0000002B            NET$S_INTLS    = 00000001            SSB$L_UCB        00000014            

NET$C_DR_LOSS  = 00000028            NET$S_INTMSG   = 00000001            SSB$L_WACKQBL    00000010            

NET$C_DR_NOBJ  = 00000004            NET$S_LTYPE    = 00000002            SSB$L_WACKQFL    0000000C            

NET$C_DR_NOCON = 00000020            NET$S_MPRI     = 00000002            SSB$L_XQBL       00000004            

NET$C_DR_NOLINK= 00000029            NET$S_MSGFLG   = 00000005            SSB$L_XQFL       00000000            

NET$C_DR_NONZ  = 00000015            NET$S_MSGID    = 00000002            SSB$M_ACKP     = 00008000            

NET$C_DR_NOPATH= 00000027            NET$S_MSGTYP   = 00000002            SSB$M_NAKP     = 00007000            

NET$C_DR_NORMAL= 00000000            NET$S_REMLFS   = 00000004            SSB$S_NAKP     = 00000003            

NET$C_DR_PROTCL= 00000007            NET$S_RFMT     = 00000001            SSB$V_ACKP     = 0000000F            

NET$C_DR_RSU   = 00000001            NET$S_SUBTYP   = 00000003            SSB$V_NAKP     = 0000000C            

NET$C_DR_SEGSIZ= 00000025            NET$USER_REJECT  ********   X   04   SSB$W_RCVSEGACK  0000001A            

NET$C_DR_SHUT  = 00000003            NET$V_ACKOPT   = 00000004            SSB$W_RCVSEGNUM  00000018            

NET$C_DR_THIRD = 00000008            NET$V_BOM      = 00000005            SSB$W_SIZE       00000008            

NET$C_DR_ZERO  = 00000017            NET$V_EFMT     = 00000004            SSB$W_XMTSEGACK  0000001E            

NET$C_INTREQ   = 00000001            NET$V_EOM      = 00000006            SSB$W_XMTSEGNUM  0000001C            

NET$C_LOGLNK   = 00000001            NET$V_FCINT    = 00000002            UCB$B_AMOD       00000053            

NET$C_MAXCIR     ********   X   04   NET$V_FCMOD    = 00000000            UCB$B_CEX        00000077            

NET$C_MAXNODLTH= 00000006  G         NET$V_FCOPT    = 00000002            UCB$B_CM1        0000004A            

NET$C_MAXNSPOVH= 00000018            NET$V_INTLS    = 00000004            UCB$B_CM2        0000004B            

NET$C_MSGFLG   = 00000000            NET$V_INTMSG   = 00000005            UCB$B_DEVCLASS   00000038            

NET$C_NODMSG   = 00000005            NET$V_LTYPE    = 00000000            UCB$B_DEVTYPE    00000039            

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (1)



UCB$B_DIPL       00000052            UCB$L_TTCHAR     0000003C            UCB$V_TIMOUT   = 00000006            

UCB$B_DX_SCTCNT  000000A6            UCB$L_VCB        00000030            UCB$V_TT_NOTIF = 00000002            

UCB$B_ERTCNT     00000070            UCB$M_BACKP    = 00000020            UCB$V_TT_TIMO  = 00000001            

UCB$B_ERTMAX     00000071            UCB$M_BSY      = 00000100            UCB$V_UNLOAD   = 0000000C            

UCB$B_ESCAPE     0000004B            UCB$M_CANCEL   = 00000008            UCB$V_VALID    = 0000000B            

UCB$B_FEX        00000076            UCB$M_DEADMO   = 00000400            UCB$W_BCNT       0000006E            

UCB$B_FIPL       0000000B            UCB$M_DELMBX   = 00000002            UCB$W_BCR        00000096            

UCB$B_LOCSRV     0000003C            UCB$M_DIAGBUF  = 00000002            UCB$W_BOFF       0000006C            

UCB$B_OFFNDX     00000094            UCB$M_DX_WRITE = 00000008            UCB$W_BUFQUO     00000018            

UCB$B_OFFRTC     00000095            UCB$M_ECC      = 00000001            UCB$W_BYTESTOGO  0000003E            

UCB$B_REMSRV     0000003D            UCB$M_ERLOGIP  = 00000004            UCB$W_CHARGE     0000004A            

UCB$B_SECTORS    0000003C            UCB$M_INT      = 00000002            UCB$W_CYLINDERS  0000003E            

UCB$B_SLAVE      00000074            UCB$M_INTTYPE  = 00000080            UCB$W_DA         0000008C            

UCB$B_SPR        00000075            UCB$M_JOB      = 00000001            UCB$W_DC         0000008E            

UCB$B_STATE      00000052            UCB$M_MOUNTING = 00000200            UCB$W_DEVBUFSIZ  0000003A            

UCB$B_TRACKS     0000003D            UCB$M_NOCNVRT  = 00000004            UCB$W_DEVSTS     0000005A            

UCB$B_TYPE       0000000A            UCB$M_NT_BFROVF= 00000004            UCB$W_DIRSEQ     00000088            

UCB$B_VERTSZ     0000003F            UCB$M_NT_BREAK = 00000020            UCB$W_DSTADDR    00000018            

UCB$C_LENGTH     00000074            UCB$M_NT_NAME  = 00000010            UCB$W_DX_BCR     000000A4            

UCB$C_LOGLNK   = 00000001            UCB$M_ONLINE   = 00000010            UCB$W_EC1        00000090            

UCB$K_LENGTH     00000074            UCB$M_POWER    = 00000020            UCB$W_EC2        00000092            

UCB$L_AMB        00000054            UCB$M_PRMMBX   = 00000001            UCB$W_ERRCNT     00000072            

UCB$L_ASTQBL     00000010            UCB$M_TIM      = 00000001            UCB$W_FUNC       0000007E            

UCB$L_ASTQFL     0000000C            UCB$M_TIMOUT   = 00000040            UCB$W_MB_SEED    FFFFFFFC            

UCB$L_CPID       0000005C            UCB$M_TT_NOTIF = 00000004            UCB$W_MSGCNT     00000016            

UCB$L_CRB        00000020            UCB$M_TT_TIMO  = 00000002            UCB$W_MSGMAX     00000014            

UCB$L_DDB        00000024            UCB$M_UNLOAD   = 00001000            UCB$W_NT_CHAN    0000007C            

UCB$L_DEVCHAR    00000034            UCB$M_VALID    = 00000800            UCB$W_OFFSET     0000008A            

UCB$L_DEVDEPEND  0000003C            UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            

UCB$L_DPC        00000080            UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            

UCB$L_DUETIM     0000005C            UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            

UCB$L_DX_BFPNT   0000009C            UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            

UCB$L_DX_BUF     00000098            UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            

UCB$L_DX_RXDB    000000A0            UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            

UCB$L_EMB        00000078            UCB$V_DEADMO   = 0000000A            

UCB$L_FIRST      00000014            UCB$V_DELMBX   = 00000001            

UCB$L_FPC        0000000C            UCB$V_DIAGBUF  = 00000001            

UCB$L_FQBL       00000004            UCB$V_DX_WRITE = 00000003            

UCB$L_FQFL       00000000            UCB$V_ECC      = 00000000            

UCB$L_FR3        00000010            UCB$V_ERLOGIP  = 00000002            

UCB$L_FR4        00000014            UCB$V_INT      = 00000001            

UCB$L_IOQBL      00000044            UCB$V_INTTYPE  = 00000007            

UCB$L_IOQFL      00000040            UCB$V_JOB      = 00000000            

UCB$L_IRP        0000004C            UCB$V_LNKPRI   = 00000006            

UCB$L_LINK       0000002C            UCB$V_LTYPE    = 00000000            

UCB$L_LOGADR     00000064            UCB$V_MOUNTING = 00000009            

UCB$L_MAXBLOCK   00000084            UCB$V_MSGACK   = 00000004            

UCB$L_MEDIA      0000008C            UCB$V_MSGFLO   = 00000003            

UCB$L_NT_DATSSB  00000074            UCB$V_NOCNVRT  = 00000002            

UCB$L_NT_INTSSB  00000078            UCB$V_NT_BFROVF= 00000002            

UCB$L_OPCNT      00000060            UCB$V_NT_BREAK = 00000005            

UCB$L_OWNUIC     0000001C            UCB$V_NT_NAME  = 00000004            

UCB$L_PID        00000028            UCB$V_ONLINE   = 00000004            

UCB$L_RQBL       00000004            UCB$V_POWER    = 00000005            

UCB$L_RQFL       00000000            UCB$V_PRMMBX   = 00000000            

UCB$L_SVAPTE     00000068            UCB$V_SEGFLO   = 00000002            

UCB$L_SVPN       00000064            UCB$V_TIM      = 00000000            

NETCONECT       - PROCESS USER CONNECT REQUESTS                  22-AUG-1978 00:48:45   VAX-11 MACRO X0.3-11               Page  16

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            FFFFFFFE      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

NET_IMPURE       00000024      03     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT BYTE  

NET_CONNECT      0000032A      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

13024. BYTES LEFT IN FREE MEMORY POOL.

1938. BYTES OF RECLAIMED MEMORY.

OBJ$:NETCONECT,LIS$:NETCONECT/-SP=EXECML$/ML,M1/ML,M2/ML,SRC$:NETCONECT

60 MLB DIR RDS - 737 GETS TO DEFINE 20 MACROS. 53 INTER. FILE WRITES. 

