NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    3500  HISTORY

   (1)    4300  DECLARATIONS

   (1)   19900  PROCESS ASTS

   (1)   29300  PROCESS QIO

   (1)   39900  NET$TRN - NETWORK TRANSITIONS

   (1)   47500  LOGICAL LINK STATES

   (1)   54700  NSP STATES

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   1

X01                                                                                                                              (1)



                                     0000   100 

                                     0000   200 	.TITLE	NETTRN - STATE TRANSITION ROUTINES

                                     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 STATE TRANSITIONS FOR

                                     0000  2900 ;	LOGICAL LINKS AND FOR NSP.

                                     0000  3000 ;

                                     0000  3100 ; ENVIRONMENT:

                                     0000  3200 ;	MODE = KERNEL

                                     0000  3300 ;--

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   2

X01             HISTORY                                                                                                          (1)



                                     0000  3500 	.SBTTL	HISTORY

                                     0000  3600 ; AUTHOR:	SCOTT G. DAVIS, CREATION DATE: 20-APR-77

                                     0000  3700 ;

                                     0000  3800 ; MODIFIED BY:

                                     0000  3900 ;

                                     0000  4000 ;	, : VERSION

                                     0000  4100 ; 01	- 

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   3

X01             DECLARATIONS                                                                                                     (1)



                                     0000  4300 	.SBTTL	DECLARATIONS

                                     0000  4400 ;

                                     0000  4500 ; INCLUDE FILES:

                                     0000  4600 ;

                                     0000  4700  

                                     0000  4800 	$AQBDEF

                                     0000  4900 	$CCBDEF

                                     0000  5000 	$CRBDEF

                                     0000  5100 	$CXBDEF

                                     0000  5200 	$IRPDEF

                                     0000  5300 	$NDBDEF

                                     0000  5400 	$UCBDEF

                                     0000  5500 	$VECDEF

                                     0000  5600 	$XMDEF

                                     0000  5700 

                                     0000  5800 ;

                                     0000  5900 ; MACROS:

                                     0000  6000 ;

                                     0000  6100 ; THE FOLLOWING MACRO IS USED TO DEFINE WHICH EVENTS ENTAIL AN ACTION

                                     0000  6200 ; WHEN A LOGICAL LINK - OR NSP - IS IN A GIVEN STATE.

                                     0000  6300 ; IT ALSO DEFINES WHAT ACTION IS TO BE TAKEN AND

                                     0000  6400 ; WHAT THE LINK'S NEW STATE IS TO BE.  STATE NAMES ARE DERIVED

                                     0000  6500 ; FROM THE NSP FUNCTIONAL SPEC.  THE 'IDLE' STATE IS NOT, STRICTLY

                                     0000  6600 ; SPEAKING, A STATE, BUT REPRESENTS NON-EXISTENT LINKS.

                                     0000  6700 ;

                                     0000  6800 ; THE MACRO ESTABLISHES:

                                     0000  6900 ;	1. A MASK OR MASKS FOR A STATE, AGAINST WHICH THE EVENT

                                     0000  7000 ;		IS MATCHED(LOW BIT OF MASK SET=>ANOTHER MASK)

                                     0000  7100 ;	2. A CASE OFFSET FOR ACTION DISPATCHING

                                     0000  7200 ;	3. THE NEW STATE IF THE TRANSITION IS TAKEN.

                                     0000  7300 ;

                                     0000  7400 	.MACRO	STATE	STNAME,EVTLST,EACTION,NEWST,CONT=1

                                     0000  7500 	.IF NB	STNAME

                                     0000  7600 	NET$C_ST_'STNAME == STACTR

                                     0000  7700 	.ENDC

                                     0000  7800 STACTR=STACTR+1

                                     0000  7900 	.WORD	NET$'EACTION-STACT

                                     0000  8000 	.PSECT	EVTMSK,NOWRT,NOEXE

                                     0000  8100 EVMSK=CONT

                                     0000  8200 	.IRP	EV,<EVTLST>

                                     0000  8300 	EVMSK=EVMSK+<1@NET$C_EV_'EV>

                                     0000  8400 	.ENDR

                                     0000  8500 	.LONG	EVMSK

                                     0000  8600 	.PSECT	NEWSTA,NOWRT,NOEXE

                                     0000  8700 	.BYTE	NET$C_ST_'NEWST

                                     0000  8800 	.PSECT	NET_CODE,NOWRT

                                     0000  8900 	.ENDM	STATE

                                     0000  9000 ;

                                     0000  9100 ; THE FOLLOWING MACROS DEFINES PARALLEL TABLES (IOTAB AND EVENTTAB)

                                     0000  9200 ; THAT DEFINE THE TRANSITION EVENT CODES FOR USER I/O FUNCTIONS.

                                     0000  9300 ;

                                     0000  9400 	.MACRO	FUNCTAB	LIST

                                     0000  9500 		.IRP	L,<LIST>

                                     0000  9600 		FUNCTAB1	L

                                     0000  9700 		.ENDR

                                     0000  9800 	.ENDM	FUNCTAB

                                     0000  9900  

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   4

X01             DECLARATIONS                                                                                                     (1)



                                     0000 10000 	.MACRO	FUNCTAB1	FNC,EVT

                                     0000 10100 	.PSECT	IOFUNC,NOWRT,NOEXE

                                     0000 10200 		.IF	EQ,TIM...

                                     0000 10300 	IOTAB:

                                     0000 10400 		.ENDC

                                     0000 10500 		.LONG	IO$_'FNC

                                     0000 10600 	IOTABEND=.

                                     0000 10700 	.PSECT	IOEVENT,NOWRT,NOEXE

                                     0000 10800 		.IF	EQ,TIM...

                                     0000 10900 	EVENTTAB:

                                     0000 11000 	TIM...=1

                                     0000 11100 		.ENDC

                                     0000 11200 		.BYTE	NET$C_EV_'EVT

                                     0000 11300 	.ENDM	FUNCTAB1

                                     0000 11400 

                                     0000 11500 ;

                                     0000 11600 ; EQUATED SYMBOLS:

                                     0000 11700 ;

                                     0000 11800 ; LOGICAL LINK EVENTS

                                     0000 11900 ;

                                     0000 12000 	$EQULST	NET$C_EV_,GLOBAL,1,,<-

                                     0000 12100 		DPCON,-			; DIALOGUE PROCESS INITS OR CONFIRMS LOGICAL LINK

                                     0000 12200 		DPRDN,-			; DIALOGUE PROCESS RUNDOWN

                                     0000 12300 		DPDIS,-			; DIALOGUE PROCESS DISCONNECTS

                                     0000 12400 		DPRCV,-			; DIALOGUE PROCESS ISSUES RCV

                                     0000 12500 		DPXMT,-			; DIALOGUE PROCESS ISSUES XMT

                                     0000 12600 		MCI,-			; CONNECT INITIATE RCVD

                                     0000 12700 		MCC,-			; CONNECT CONFIRM RECEIVED

                                     0000 12800 		MDAT,-			; DATA SEG RCVD

                                     0000 12900 		MBOM,-			; DATA SEG W/BOM RCVD

                                     0000 13000 		MEOM,-			; DATA SEG W/EOM RCVD

                                     0000 13100 		MBEOM,-			; DATA SEG W/BOM+EOM RCVD

                                     0000 13200 		MACKD,-			; ACK/NAK OF NORMAL DATA MSG RCVD

                                     0000 13300 		MACKI,-			; ACK/NAK OF INT/LS MSG RCVD

                                     0000 13400 		MINTR,-			; INTERRUPT MSG RCVD

                                     0000 13500 		MLS,-			; LINK SERVICES RCVD

                                     0000 13600 		MDI,-			; DISCONNECT INITIATE RCVD

                                     0000 13700 		MDC,-			; DISCONNECT CONFIRM RCVD

                                     0000 13800 		CONTMO,-		; CONNECT TIMEOUT

                                     0000 13900 		PROTCL,-		; PROTOCOL ERROR DETECTED

                                     0000 14000 		LASTLL>			; END OF LIST

                                     0000 14100 ;

                                     0000 14200 ; NSP EVENTS (NODE STARTUP)

                                     0000 14300 ;

                                     0000 14400 	$EQULST	NET$C_EV_,GLOBAL,NET$C_EV_LASTLL,,<-

                                     0000 14500 		NSPON,-			; CONTROL "ONLINE"

                                     0000 14600 		NSPOFF,-		; CONTROL "OFFLINE"

                                     0000 14700 		NSPLPB,-		; CONTROL "LOOPBACK"

                                     0000 14800 		DDCDN,-			; PHYLK START RECEIVED

                                     0000 14900 		NSPINI,-		; NSP NODE INIT MSG RCVD

                                     0000 15000 		NSPVER,-		; NSP NODE VERIF MSG RCVD

                                     0000 15100 		NSPTMO,-		; NODE STARTUP MSG NOT TIMELY

                                     0000 15200 		NSPNOD,-		; NODE STARTUP MSG RCVD - FOR NETAST

                                     0000 15300 		ENDNSP>			; END OF LIST

                                     0000 15400 ;

                           00000000  0000 15500 STACTR=0				; INITIALIZE STATE COUNTER

                           00000010  0000 15600 NET_C_WORK = 16				; LTH OF A WORK QUEUE ENTRY

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   5

X01             DECLARATIONS                                                                                                     (1)



                                     0000 15700 

                                     0000 15800 ;

                                     0000 15900 ; OWN STORAGE:

                                     0000 16000 ;

                                 00000000 16100 	.PSECT	EVTMSK,NOWRT,NOEXE	; EVENT STATE MASK PSECT

                           00000000  0000 16200 STATBL=.				; BASE OF STATE EVENT TABLE

                                 00000000 16300 	.PSECT	NEWSTA,NOWRT,NOEXE	; NEW STATE TABLE PSECT

                           00000000  0000 16400 NEWTBL=.				; BASE OF NEW STATE TABLE

                                 00000000 16500 	.PSECT	NET_PURE,NOWRT,NOEXE

                                     0000 16600  

                                     0000 16700 AST_VECTOR:				; VECTOR OF AST PROCESSING ADDRESSES

                           00000000' 0000 16800 	.LONG	NET$NOP_AST		; NSP NOP TIMEOUT

                           00000000' 0004 16900 	.LONG	NET$INI_AST		; NODE INIT RETRY TIMEOUT

                           00000000' 0008 17000 	.LONG	NET$RCV_AST		; PHYLNK ATTENTION AST

                           00000000' 000C 17100 	.LONG	NET$XMT_AST		; XMT DONE

                           00000000' 0010 17200 	.LONG	NET$TIMER_AST		; CONNECT TIMEOUT

                           00000000' 0014 17300 	.LONG	NET$EXIT_AST		; MAILBOX READ

                                     0018 17400 

                           00000000  0018 17500 RANGE:	.LONG	0			; RANGE FOR WORKING-SET PURGE

                           7FFFFFFF  001C 17600 	.LONG	<1@31>-1		; DO IT ALL

                                     0020 17700 ;

                                     0020 17800 ; SET UP QIO/EVENT TABLES

                                     0020 17900 ;

                           00000000  0020 18000 	TIM...=0			; FIRST TIME THROUGH

                                     0020 18100  

                                     0020 18200 	FUNCTAB	<-

                                     0020 18300 		<ACPCONTROL,DPRDN>,-	; THE ONLY CONTROL FUNCTION THAT GETS HERE-RUNDOWN

                                     0020 18400 		<ACCESS,DPCON>,-	; CONNECT INITIATE/CONFIRM

                                     0020 18500 		<DEACCESS,DPDIS>,-	; DISCONNECT

                                     0020 18600 		<READLBLK,DPRCV>,-	; READ QIO

                                     0020 18700 		<WRITELBLK,DPXMT>,-	; WRITE QIO

                                     0020 18800 >

                                 00000000 18900 	.PSECT	NET_IMPURE,WRT,NOEXE

                                     0000 19000 

                           00000000' 0000 19100 WORK_QUEUE_FL:	.LONG	.		; AST WORK QUEUE HEAD

                           00000000' 0004 19200 		.LONG	.-4		; QUEUE TAIL

                           0000000C  0008 19300 SAVE_IOFUNC:	.BLKL	1		; FOR SAVING I/O FUNCTION CODE

                           00000010  000C 19400 WORK_ARG:	.BLKL	1		; FOR SAVING AST ARGUMENT

                           00000011  0010 19500 WORK_CODE:	.BLKB	1		; FOR SAVING AST CODE

                           00000013  0011 19600 TEMP:	.BLKW	1			; FOR SAVING CHANNEL

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   6

X01             DECLARATIONS                                                                                                     (1)



                                 00000000 19800 	.PSECT	NET_CODE,NOWRT

                                     0000 19900 	.SBTTL	PROCESS ASTS

                                     0000 20000 

                                     0000 20100 ;++

                                     0000 20200 ;

                                     0000 20300 ; NET$SET_NOP_AST - PROCESS NOP TIMEOUT AST

                                     0000 20400 ; NET$SET_INI_AST - PROCESS NODE INIT RETRY TIMEOUT

                                     0000 20500 ; NET$SET_XMT_AST - PROCESS XMT COMPLETE AST

                                     0000 20600 ; NET$SET_RCV_AST - PROCESS PHYLK ATTENTION AST

                                     0000 20700 ; NET$SET_TIM_AST - CONNECT TIMEOUT AST

                                     0000 20800 ; NET$SET_EXI_AST - PROCESS EXIT AST (MAILBOX READ)

                                     0000 20900 ;

                                     0000 21000 ;--

                                     0000 21100 

                               0000  0000 21200 NET$SET_EXI_AST::	.WORD	0

       0010'CF            06     90  0002 21300 	MOVB	#6,W^WORK_CODE		; SET AST TYPE

                          19     11  0007 21400 	BRB	HELP			; GO TO COMMON CODE

                                     0009 21500 

                               0000  0009 21600 NET$SET_TIM_AST::	.WORD	0

       0010'CF            05     90  000B 21700 	MOVB	#5,W^WORK_CODE		; AST TYPE

                          10     11  0010 21800 	BRB	HELP			; GO TO COMMON CODE

                                     0012 21900 

                               0000  0012 22000 NET$SET_NOP_AST::	.WORD	0

       0010'CF            01     90  0014 22100 	MOVB	#1,W^WORK_CODE		; AST TYPE

                          07     11  0019 22200 	BRB	HELP			; GOTO COMMON CODE

                                     001B 22300 

                               0000  001B 22400 NET$SET_INI_AST::	.WORD	0

       0010'CF            02     90  001D 22500 	MOVB	#2,W^WORK_CODE		; AST TYPE

                          0093   31  0022 22600 HELP:	BRW	AST_COMMON		; GOTO COMMON CODE

                                     0025 22700 

                                     0025 22800 NET$PHYLK_SERV::			; JSB'ED TO BY PHYLK AST

       0011'CF            9E     B0  0025 22900 	MOVW	@(SP)+,W^TEMP		; GET CHANNEL NUMBER

            7E            52     7D  002A 23000 	MOVQ	R2,-(SP)		; SAVE REGS

            7E            55     7D  002D 23100 	MOVQ	R5,-(SP)		; SAVE REGS

                          59     DD  0030 23200 	PUSHL	R9			;

            7E       0000'CF     3C  0032 23300 	MOVZWL	W^NET$GW_CHANNEL,-(SP)	; SAVE THE CURRENT CHANNEL NO.

       0000'CF       0011'CF     B0  0037 23400 	MOVW	W^TEMP,W^NET$GW_CHANNEL	; USE THE NEW ONE

                          FFBF'  30  003E 23500 	BSBW	NET$FND_NDB_CHN		; LOCATE THE NDB

                          01     12  0041 23600 	BNEQ	1$			; IF NEQ OK

                                 04  0043 23700 	RET				; THE NDB WENT AWAY

                                     0044 23800 1$:

       0000'CF            8E     F7  0044 23900 	CVTLW	(SP)+,W^NET$GW_CHANNEL	; RESTORE THE CHANNEL NO.

         04 AC            0B     E1  0049 24000 	BBC	#XM$V_STS_ACTIVE,4(AP),2$ ; IF BC LINE DEVICE HAS AN ERROR

                          08         004D       

         04 AC       4300 8F     B3  004E 24100 	BITW	#<-			; CHECK FOR ERROR CONDITIONS

                                     0054 24200 		XM$M_STS_TIMO!-		; LINE TIMEOUT

                                     0054 24300 		XM$M_STS_DISC!-		; DSR ON-TO-OFF

                                     0054 24400 		XM$M_STS_DCHK-		; ERROR THRESHOLD EXCEEDED

                                     0054 24500 		>,4(AP)			;

                          1B     13  0054 24600 	BEQL	5$			; IF EQL THERE IS A MESSAGE

                                     0056 24700 2$:

                          51     D4  0056 24800 	CLRL	R1			; ALLOCATE MINIMUM CXB

                          FFA5'  30  0058 24900 	BSBW	NET$ALLOCBUF		; DO IT

         0B A6            04     90  005B 25000 	MOVB	#CXB$C_DDCERR,CXB$B_CODE(R6) ; INDICATE ERROR

         10 A6       0011'CF     B0  005F 25100 	MOVW	W^TEMP,CXB$W_CHANNEL(R6) ; STORE THE CHANNEL NO.

         14 A6         04 AC     D0  0065 25200 	MOVL	4(AP),CXB$L_SSB(R6)	; SAVE THE STATUS AND ERROR BITS

       0004'DF            66     0E  006A 25300 	INSQUE	(R6),@W^NET$GL_NSPQFL+4	; STUFF MSG IN NSP QUEUE

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   7

X01             PROCESS ASTS                                                                                                     (1)



                          2D     11  006F 25400 	BRB	20$			; PROCEED

                                     0071 25500 5$:

         17 A9            04     8A  0071 25600 	BICB	#NDB$M_SHUT,NDB$B_STATUS(R9) ; LINE IS NOT STARTING

            50       0011'CF     3C  0075 25700 	MOVZWL	W^TEMP,R0		; SET TO COMPUTE CCB ADDRESS

                 00000000'EF     16  007A 25800 	JSB	IOC$VERIFYCHAN		; GET IT

            55            61     D0  0080 25900 	MOVL	CCB$L_UCB(R1),R5	; GET THE UCB ADDRESS

            56         20 A5     D0  0083 26000 	MOVL	UCB$L_CRB(R5),R6	; GET THE CRB ADDRESS

                                     0087 26100 10$:

                       30 B6     16  0087 26200 	JSB	@CRB$L_INTD+VEC$L_START(R6) ; CALL PHYLK DEQUEUING ROUTINE

            11            50     E9  008A 26300 	BLBC	R0,20$			; IF LBC NO MORE

         10 A2       0011'CF     B0  008D 26400 	MOVW	W^TEMP,CXB$W_CHANNEL(R2) ; STORE THE CHANNEL NUMBER

         0B A2            03     90  0093 26500 	MOVB	#CXB$C_DDCRCV,CXB$B_CODE(R2) ; RCVD FROM PHYLK

       0004'DF            62     0E  0097 26600 	INSQUE	(R2),@W^NET$GL_NSPQFL+4	; STUFF MSG IN NSP QUEUE

                          E9     11  009C 26700 	BRB	10$			; LOOP

                                     009E 26800 20$:

       0010'CF            03     90  009E 26900 	MOVB	#3,W^WORK_CODE		; AST TYPE

       000C'CF         0C A9     DE  00A3 27000 	MOVAL	NDB$Q_AST(R9),W^WORK_ARG ; GET THE AST PARAMETER (AST ADDRESS)

                          59   8ED0  00A9 27100 	POPL	R9			; RESTORE REGS

            55            8E     7D  00AC 27200 	MOVQ	(SP)+,R5		;

                          10     11  00AF 27300 	BRB	AST_COMMON1		; GO TO COMMON CODE

                                     00B1 27400 

                               0000  00B1 27500 NET$SET_XMT_AST::	.WORD	0

       0010'CF            04     90  00B3 27600 	MOVB	#4,W^WORK_CODE		; AST TYPE

                                     00B8 27700 AST_COMMON:

       000C'CF         04 AC     D0  00B8 27800 	MOVL	4(AP),W^WORK_ARG	; GET THE AST PARAMETER

            7E            52     7D  00BE 27900 	MOVQ	R2,-(SP)		; SAVE REGS

                                     00C1 28000 AST_COMMON1:

            51            10     D0  00C1 28100 	MOVL	#NET_C_WORK,R1		; GET LENGTH OF A WORK QUEUE ENTRY

                          FF39'  30  00C4 28200 	BSBW	NET$ALLOC_BLOCK		; ALLOCATE A BLOCK

         08 A2            51     B0  00C7 28300 	MOVW	R1,UCB$W_SIZE(R2)	; KEEP THE SIZE FOR DEALLOCATION

         0B A2       0010'CF     90  00CB 28400 	MOVB	W^WORK_CODE,^XB(R2)	; STORE THE AST TYPE

         0C A2       000C'CF     D0  00D1 28500 	MOVL	W^WORK_ARG,^XC(R2)	; AND THE CALL ARGUMENT

       0004'DF            62     0E  00D7 28600 	INSQUE	(R2),@W^WORK_QUEUE_FL+4	; QUEUE THE WORK ENTRY

                          0B     12  00DC 28700 	BNEQ	AST_END			; IF NEQ THAT WASN'T THE FIRST

                                     00DE 28800 	$WAKE_S				; GET NETACP'S ATTENTION

                                     00E9 28900 AST_END:

            52            8E     7D  00E9 29000 	MOVQ	(SP)+,R2		; RESTORE REGS

                                 04  00EC 29100 	RET				; DONE FOR NOW

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   8

X01             PROCESS QIO                                                                                                      (1)



                                     00ED 29300 	.SBTTL	PROCESS QIO

                                     00ED 29400 ;++

                                     00ED 29500 ; FUNCTIONAL DESCRIPTION:

                                     00ED 29600 ;

                                     00ED 29700 ; NET$QIO - PURGE WORKING SET AND DISPATCH ON QIO FUNCTION CODE

                                     00ED 29800 ;		THIS ROUTINE DETERMINES WHAT THE I/O REQUEST TYPE IS

                                     00ED 29900 ;		AND DISPATCHES TO THE EVENT TRANSITION ROUTINE FOR

                                     00ED 30000 ;		FURTHER PROCESSING.

                                     00ED 30100 ;

                                     00ED 30200 ;--

                                     00ED 30300 

                                     00ED 30400 NET$QIO::

                                     00ED 30500 	$PURGWS_S	W^RANGE		; PURGE THE WORKING SET

                          03     11  00F8 30600 	BRB	GO			; PROCEED

                                     00FA 30700 ;

                                     00FA 30800 ; PROCESS A CONTROL FUNCTION

                                     00FA 30900 ;

                                     00FA 31000 CONTROL_FUNC:

                          FF03'  30  00FA 31100 	BSBW	NET$CONTROL_QIO		; SEE WHAT THE FUNCTION IS

                                     00FD 31200 					; FALL THROUGH FOR ANOTHER REQUEST

                                     00FD 31300 

                                     00FD 31400 GO:

                                     00FD 31500 ;

                                     00FD 31600 ; TRY TO DEQUEUE A REQUEST

                                     00FD 31700 ;

                                     00FD 31800 10$:

            52       0000'CF     D0  00FD 31900 	MOVL	W^NET$GL_Q_HEAD,R2	; GET ADDRESS OF QUEUE HEAD

            53         00 B2     0F  0102 32000 	REMQUE	@(R2),R3		; TRY TO GET A PACKET

                          30     1C  0106 32100 	BVC	20$			; IF VC THERE IS ONE

                                     0108 32200 ;

                                     0108 32300 ; NOTHING IN QUEUE - SEE WHETHER IT IS TIME TO GO AWAY

                                     0108 32400 ;

                       0B A2     95  0108 32500 	TSTB	AQB$B_MNTCNT(R2)	; ANY VOLUMES MOUNTED?

                          03     12  010B 32600 	BNEQ	15$			; IF NEQ YES

                          FEF0'  30  010D 32700 	BSBW	NET$CHK_ACPDONE		; SEE IF THE ACP IS ALL DONE

                                     0110 32800 ;

                                     0110 32900 ; TRY TO DEQUEUE AN ENTRY FROM THE AST WORK QUEUE

                                     0110 33000 ;

                                     0110 33100 15$:

            50       0000'DF     0F  0110 33200 	REMQUE	@W^WORK_QUEUE_FL,R0	; GET NEXT ENTRY, IF ANY

                          15     1D  0115 33300 	BVS	17$			; IF VS NONE

            54         0B A0     9A  0117 33400 	MOVZBL	^XB(R0),R4		; PICK UP THE AST TYPE

                       0C A0     DD  011B 33500 	PUSHL	^XC(R0)			; STORE THE CALL ARGUMENT

                          FEDF'  30  011E 33600 	BSBW	NET$DEANONPAGED		; DEALLOCATE THE QUEUE ENTRY

            58       FFFC'CF44   D0  0121 33700 	MOVL	W^AST_VECTOR-4[R4],R8	; DISPATCH TO PROCESS THE ITEM

            68            01     FB  0127 33800 	CALLS	#1,(R8)			; DO IT

                          E4     11  012A 33900 	BRB	15$			; LOOP

                                     012C 34000 17$:

                                     012C 34100 ;

                                     012C 34200 ; SEE IF THERE ARE LOCAL MSGS TO PROCESS

                                     012C 34300 ;

                          FED1'  30  012C 34400 	BSBW	NET$CHKLOCALAST		; DO IT

                                     012F 34500 ;

                                     012F 34600 ; GO TO SLEEP, MY BAAABY

                                     012F 34700 ;

                                     012F 34800 	$HIBER_S			; HIBERNATE

                          C5     11  0136 34900 	BRB	10$			; LOOP

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page   9

X01             PROCESS QIO                                                                                                      (1)



                                     0138 35000 ;

                                     0138 35100 ; THERE WAS A REQUEST

                                     0138 35200 ;

                                     0138 35300 20$:

            55         1C A3     D0  0138 35400 	MOVL	IRP$L_UCB(R3),R5	; GET UCB ADDRESS

            57         20 A3     B0  013C 35500 	MOVW	IRP$W_FUNC(R3),R7	; GET THE IO FUNCTION CODE

                                     0140 35600 ;

                                     0140 35700 ; SEE IF THIS IS A CONTROL QIO

                                     0140 35800 ;

            00'           00'    ED  0140 35900 	CMPZV	S^#IO$V_FCODE,S^#IO$S_FCODE,R7,S^#IO$_ACPCONTROL ; CONTROL?

            00'           57         0143       

                          12     12  0145 36000 	BNEQ	25$			; IF NEQ NO

                                     0147 36100 ;

                                     0147 36200 ; ACPCONTROL - MIGHT BE HARBINGER OF DOOM (DEACCESS)

                                     0147 36300 ;

         2A A3            03     E0  0147 36400 	BBS	#IRP$V_COMPLX,IRP$W_STS(R3),CONTROL_FUNC ; IF BS THEN REAL ACPCONTROL

                          AE         014B       

                                     014C 36500 ;

                                     014C 36600 ; THIS IS AN I/O RUNDOWN

                                     014C 36700 ;

            07'        52 A5     91  014C 36800 	CMPB	UCB$B_STATE(R5),S^#NET$C_ST_CIS ; IS THERE A CONNECT IN PROGRESS?

                          07     12  0150 36900 	BNEQ	25$			; IF NEQ NO

                          53     DD  0152 37000 	PUSHL	R3			; SAVE THE IRP ADDRESS

                          FEA9'  30  0154 37100 	BSBW	NET$BAD_ACCESS		; KILL THE CONNECT

                          08     BA  0157 37200 	POPR	#^M<R3>			; RESTORE THE IRP ADDRESS

                                     0159 37300 25$:

         4C A5            53     D0  0159 37400 	MOVL	R3,UCB$L_IRP(R5)	; SQUIRREL AWAY THE IRP ADDRESS

                          FEA0'  30  015D 37500 	BSBW	NET$PART_DSTNOD		; SET UP DSTNODE, IN CASE

            50            05'    9A  0160 37600 	MOVZBL	S^#IOTABEND-IOTAB/4,R0	; NO. OF TABLE ENTRIES

            00'           00'    EF  0163 37700 	EXTZV	S^#IO$V_FCODE,S^#IO$S_FCODE,R7,W^SAVE_IOFUNC ; SAVE FUNCTION CODE

       0008'CF            57         0166       

                                     016A 37800 

                                     016A 37900 30$:

       FFFC'CF40     0008'CF     D1  016A 38000 	CMPL	W^SAVE_IOFUNC,W^IOTAB-4[R0] ; MATCH?

                          0F     13  0172 38100 	BEQL	40$			; IF EQL YES

            F3            50     F5  0174 38200 	SOBGTR	R0,30$			; LOOP

                                     0177 38300 ;

                                     0177 38400 ; ILLEGAL FUNCTION CODE IN PACKET

                                     0177 38500 ;

       0000'CF       0000'8F     3C  0177 38600 	MOVZWL	#SS$_ILLIOFUNC,W^NET$GQ_USR_STAT ; SAY "ILLEGAL I/O FUNCTION"

                          FE7F'  30  017E 38700 	BSBW	NET$FINISH_IO		; TERMINATE THE I/O

                          0E     11  0181 38800 	BRB	45$			; TRY FOR ANOTHER PACKET

                                     0183 38900 ;

                                     0183 39000 ; I/O CODE MATCH - DISPATCH

                                     0183 39100 ;

                                     0183 39200 40$:

            57         52 A5     9E  0183 39300 	MOVAB	UCB$B_STATE(R5),R7	; SET THE REAL STATE BYTE ADDRESS

            53       FFFF'CF40   9A  0187 39400 	MOVZBL	W^EVENTTAB-1[R0],R3	; GET THE EVENT CODE

         94'AF            00     FB  018D 39500 	CALLS	#0,B^NET$TRN		; DO THE STATE TRANSITION

                          FF69   31  0191 39600 45$:	BRW	10$			; TRY FOR ANOTHER PACKET

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  10

X01             PROCESS QIO                                                                                                      (1)



                                 00000194 39800 	.PSECT	NET_CODE,NOWRT

                                     0194 39900 	.SBTTL	NET$TRN - NETWORK TRANSITIONS

                                     0194 40000 ;++

                                     0194 40100 ; FUNCTIONAL DESCRIPTION:

                                     0194 40200 ;

                                     0194 40300 ; NET$TRN - RECEIVES NETWORK EVENT REPORTS FROM VARIOUS

                                     0194 40400 ;	SOURCES, IN PARTICULAR:

                                     0194 40500 ;		1. INCOMING MESSAGES

                                     0194 40600 ;		2. DIALOGUE PROCESS REQUESTS

                                     0194 40700 ;		3. DIALOGUE PROCESS ABORTS

                                     0194 40800 ;		4. PHYLK EVENTS

                                     0194 40900 ;	EVENTS MAY OCCUR FOR LOGICAL LINKS OR FOR NSP(DURING

                                     0194 41000 ;	STARTUP OF DIALOGUE PROCESS WITH A PARTNER NSP IMPLEMENTATION).

                                     0194 41100 ;	THE EVENT SIGNALED IS COMPARED AGAINST POSSIBLE EVENTS

                                     0194 41200 ;	FOR A GIVEN STATE OF A LINK OR NSP.  IF THE EVENT IS

                                     0194 41300 ;	RECOGNIZED, THE ASSOCIATED ACTION IS TAKEN, AND A NEW STATE IS 

                                     0194 41400 ;	ENTERED.  IF AN EVENT IS NOT RECOGNIZED, IT IS IGNORED.

                                     0194 41500 ;	BASIC LOGIC IS TAKEN FROM RSE (HUSTVEDT).

                                     0194 41600 ;

                                     0194 41700 ; IF AN I/O IS IMPROPER FOR A GIVEN STATE, IT IS TERMINATED.

                                     0194 41800 ;

                                     0194 41900 ;

                                     0194 42000 ; CALLING SEQUENCE:

                                     0194 42100 ;

                                     0194 42200 ;	CALLS	#0,NET$TRN

                                     0194 42300 ;

                                     0194 42400 ; INPUT PARAMETERS:

                                     0194 42500 ;

                                     0194 42600 ;	R3 - THE EVENT NUMBER

                                     0194 42700 ;	R7 - ADDRESS OF THE STATE BYTE

                                     0194 42800 ;

                                     0194 42900 ; IMPLICIT INPUTS:

                                     0194 43000 ;

                                     0194 43100 ;	NET$GW_CHANNEL - CHANNEL NO. OF PHYSICAL LINK

                                     0194 43200 ;	R5 - UCB ADDRESS

                                     0194 43300 ;

                                     0194 43400 ; SIDE EFFECTS:

                                     0194 43500 ;

                                     0194 43600 ;	IF THERE IS AN EVENT/STATE MATCH, THE LOGICAL LINK OR

                                     0194 43700 ;	NSP ENTERS A NEW STATE AND OTHER ACTIONS, SUCH AS

                                     0194 43800 ;	MESSAGE TRANSMISSION OR DIALOGUE PROCESS NOTIFICATION, OCCUR.

                                     0194 43900 ;	SEE INDIVIDUAL ACTION ROUTINES CALLED BY THIS MODULE.

                                     0194 44000 ;

                                     0194 44100 ;--

                                     0194 44200 

                               0FFF  0194 44300 NET$TRN::	.WORD	^M<R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11> ; SAVE REGS

            51            67     9A  0196 44400 	MOVZBL	(R7),R1			; GET STATE NUMBER

                                     0199 44500 TRN_LOOP:

            50       0000'CF41   D0  0199 44600 	MOVL	W^STATBL[R1],R0		; GET EVENT MASK FOR STATE

            50            53     E0  019F 44700 	BBS	R3,R0,ACTION		; IF BS PERFORM ACTION

                          39         01A2       

                          51     D6  01A3 44800 	INCL	R1			; CHECK NEXT PART OF STATE

            F1            50     E8  01A5 44900 	BLBS	R0,TRN_LOOP		; IF LBS CONTINUATION OF STATE

                     0008'CF     D5  01A8 45000 	TSTL	W^SAVE_IOFUNC		; WAS THAT AN I/O FUNCTION?

                          22     13  01AC 45100 	BEQL	NET$DISCARD		; IF EQL NO, IT WAS A MESSAGE

       0000'CF       0000'8F     3C  01AE 45200 	MOVZWL	#SS$_ILLIOFUNC,W^NET$GQ_USR_STAT ; SAY "ILLEGAL I/O FUNCTION"

            00'      0008'CF     D1  01B5 45300 	CMPL	W^SAVE_IOFUNC,S^#IO$_ACCESS ; WAS THAT AN ACCESS?

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  11

X01             NET$TRN - NETWORK TRANSITIONS                                                                                    (1)



                          0C     12  01BA 45400 	BNEQ	10$			; IF NEQ NO

       0000'CF       0000'8F     3C  01BC 45500 	MOVZWL	#SS$_FILALRACC,W^NET$GQ_USR_STAT ; FILE ALREADY ACCESSED

                          FE3A'  30  01C3 45600 	BSBW	NET$BAD_ACCESS		; BAD ACCESS

                          03     11  01C6 45700 	BRB	20$			; FINISH IN COMMON CODE

                                     01C8 45800 10$:

                          FE35'  30  01C8 45900 	BSBW	NET$FINISH_IO		; JUST COMPLETE THE I/O

                                     01CB 46000 20$:

                     0008'CF     D4  01CB 46100 	CLRL	W^SAVE_IOFUNC		; RESET

                                 04  01CF 46200 	RET				; DONE

                                     01D0 46300 NET$DISCARD::

                                     01D0 46400 	UPDATE	DISCARD			; ANOTHER MSG IGNORED, DUE TO LINK STATE

                                     01D8 46500 NET$AST_EXIT::				; DEALLOCATE MSG AND DONE

                          FE25'  30  01D8 46600 	BSBW	NET$DEALLOC_BUF		; DEALLOCATE THE MESSAGE THAT WAS PROCESSED

                                 04  01DB 46700 	RET				; DONE

                                     01DC 46800  

                                     01DC 46900 ACTION:					; STATE TRANSITION DETECTED

                     0008'CF     D4  01DC 47000 	CLRL	W^SAVE_IOFUNC		; RESET

            67       0000'CF41   90  01E0 47100 	MOVB	W^NEWTBL[R1],(R7)	; SET NEW STATE

            00            51     CF  01E6 47200 	CASEL	R1,#0,S^#MAXSTA		; DISPATCH ON STATE NUMBER(UPDATED)

                          2D'        01E9       

                                     01EA 47300 STACT:					; REFERENCE LABEL FOR OFFSETS

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  12

X01             LOGICAL LINK STATES                                                                                              (1)



                                     01EA 47500 	.SBTTL	LOGICAL LINK STATES

                                     01EA 47600  

                                     01EA 47700 ;

                                     01EA 47800 ; STATE IDLE - NULL STATE FOR LINK STARTUP

                                     01EA 47900 ;

                                     01EA 48000 	STATE	IDLE,<DPCON>,CONNECT,CIS ; DIALOGUE PROCESS ISSUED CONNECT INITIATE

                                     01EC 48100 	STATE	,<MCI>,MCI,CIR		; CONNECT INITIATE RCVD

                                     01EE 48200 	STATE	,<DPRDN>,TERM_QIO,IDLE	; RUNDOWN - TERMINATE THE QIO

                                     01F0 48300 	STATE	,<DPDIS>,DEAC_COMP,IDLE	; DEACCESS - TERMINATE IT

                                     01F2 48400 	STATE	,<MDC>,AST_EXIT,IDLE	; DC - IGNORE (LINK GONE AFTER DI)

                                     01F4 48500 	STATE	,<-			; 

                                     01F4 48600 		MCC,-			; CONNECT CONFIRM RECEIVED

                                     01F4 48700 		MACKD,MACKI,-		; ACK/NAK RCVD

                                     01F4 48800 		MDI,-			; DISCONNECT INIT RCVD

                                     01F4 48900 		MDAT,MLS,MINTR,MBOM,MEOM,MBEOM,- ; DATA MSG RCVD

                                     01F4 49000 		>,DCIDLE,IDLE,CONT=0	; SEND DISCONNECT CONFIRM AND DIE

                                     01F6 49100 

                                     01F6 49200 ;

                                     01F6 49300 ; STATE CIR - CONNECT INITIATE RECEIVED **** - NOT REALLY USED!!

                                     01F6 49400 ;

                                     01F6 49500 	STATE	CIR,<DPCON>,CONNECT,RUN,CONT=0 ; DIALOGUE PROCESS ACCEPTS CONNECT

                                     01F8 49600 ;

                                     01F8 49700 ; STATE CIS - CONNECT INITIATE SENT

                                     01F8 49800 ;

                                     01F8 49900 	STATE	CIS,<MCC>,MCC,RUN	; CONNECT CONFIRM RCVD

                                     01FA 50000 	STATE	,<MDI>,PARTNER_REJ,IDLE	; PARTNER REJECTED CONNECT OR ABORTED

                                     01FC 50100 	STATE	,<CONTMO>,CONN_TIMOUT,IDLE ; CONNECT TIMED OUT

                                     01FE 50200 	STATE	,<MDC,PROTCL>,NSPREJ,IDLE ; CONNECT REJECTED BY NSP

                                     0200 50300 	STATE	,<DPRDN>,CLEAN_LINK,CIS	; SOMEONE SAID "STOP"

                                     0202 50400 	STATE	,<DPDIS>,NO_FILE,IDLE	; CONTINUATION OF RUNDOWN

                                     0204 50500 	STATE	,<DDCDN>,KILL_CON,IDLE,CONT=0 ; CONNECT KILLED DUE TO PHYLK

                                     0206 50600 

                                     0206 50700 ;

                                     0206 50800 ; STATE RUN - LINK HAS BEEN ESTABLISHED

                                     0206 50900 ;

                                     0206 51000 	STATE	RUN,<MDAT>,RCVDATA,RUN	; NORMAL DATA RCVD

                                     0208 51100 	STATE	,<MEOM>,RCVEOM,RUN	; DATA WITH END-OF-MESSAGE RCVD

                                     020A 51200 	STATE	,<MBOM>,RCVBOM,RUN	; DATA W/BOM RCVD

                                     020C 51300 	STATE	,<MBEOM>,RCVBEOM,RUN	; DATA W/BOM+EOM RCVD

                                     020E 51400 	STATE	,<MACKD>,RCVACKD,RUN	; ACK OF NORMAL DATA MSG RCVD

                                     0210 51500 	STATE	,<MACKI>,RCVACKI,RUN	; ACK OF INT/LS MSG RCVD

                                     0212 51600 	STATE	,<MLS>,RCV_LNKSRV,RUN	; LINK SERVICES RCVD

                                     0214 51700 	STATE	,<DPRCV>,RCV_QIO,RUN	; DIALOGUE PROCESS ISSUES READ

                                     0216 51800 	STATE	,<DPXMT>,XMT_QIO,RUN	; DIALOGUE PROCESS ISSUES WRITE

                                     0218 51900 	STATE	,<MDI>,REMDIS,LDP	; REMOTE DIALOGUE PROCESS DISCONNECT OR ABORT

                                     021A 52000 	STATE	,<MINTR>,RCV_INTMSG,RUN	; INTERRUPT MESSAGE RECEIVED

                                     021C 52100 	STATE	,<DPDIS>,XMT_DIS,IDLE	; LOCAL DIALOGUE PROCESS DISCONNECTED OR ABORTED

                                     021E 52200 	STATE	,<MDC,PROTCL>,NSPDIS,LDP ; NSP DIDN'T LIKE SOMETHING

                                     0220 52300 	STATE	,<DDCDN>,PATHLOST,LDP	; PHYLK WENT DOWN

                                     0222 52400 	STATE	,<DPRDN>,RUNDOWN,CAN,CONT=0 ; DIALOGUE PROCESS EXIT OR CANCEL/IO

                                     0224 52500 

                                     0224 52600 

                                     0224 52700 ;*****

                                     0224 52800 ; STATE DIS - DISCONNECT INITIATE SENT  -  THIS STATE IS NOT IMPLEMENTED

                                     0224 52900 ;*****

                                     0224 53000 ;	STATE	DIS,<MDC>,DONE,IDLE	; DISCONNECT CONFIRM RCVD

                                     0224 53100 ;	STATE	,<MDI>,REMDIS,IDLE,CONT=0 ; REMOTE DIALOGUE PROCESS DISCONNECT OR ABORT

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  13

X01             LOGICAL LINK STATES                                                                                              (1)



                                     0224 53200 

                                     0224 53300 ;

                                     0224 53400 ; STATE LDP - LOCAL DEACCESS (DISCONNECT) PENDING

                                     0224 53500 ;

                                     0224 53600 	STATE	LDP,<DPDIS>,BUST_LINK,IDLE ; CLEAN UP THE DATA BASE

                                     0226 53700 	STATE	,<DPRCV,DPXMT>,ABORT_VIRT,LDP ; KILL ANY I/O THAT GOT PAST DRIVER

                                     0228 53800 	STATE	,<DPRDN>,CLEAN_LINK,LDP,CONT=0 ; IMAGE RUNDOWN

                                     022A 53900 

                                     022A 54000 ;

                                     022A 54100 ; STATE CAN - LOCAL DEACCESS (DISCONNECT) PENDING AFTER CANCELIO

                                     022A 54200 ;

                                     022A 54300 	STATE	CAN,<DPDIS>,XMT_DIS,IDLE ; CLEAN UP THE DATA BASE

                                     022C 54400 	STATE	,<DPRCV,DPXMT>,ABORT_VIRT,LDP ; KILL ANY I/O THAT GOT PAST DRIVER

                                     022E 54500 	STATE	,<DPRDN>,CLEAN_LINK,LDP,CONT=0 ; IMAGE RUNDOWN

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  14

X01             NSP STATES                                                                                                       (1)



                                     0230 54700 	.SBTTL	NSP STATES

                                     0230 54800  

                                     0230 54900 ;

                                     0230 55000 ; STATE OFF - LINE IS IDLE

                                     0230 55100 ;

                                     0230 55200 	STATE	OFF,<NSPON,NSPLPB>,START,INIT,CONT=0 ; SOMEONE SAID "GO"

                                     0232 55300 

                                     0232 55400 ;

                                     0232 55500 ; STATE START - PHYLK IS TRYING TO START THE LINE *** NOT USED ***

                                     0232 55600 ;

                                     0232 55700 ;	STATE	START,<NSPOFF>,DONE,OFF,CONT=0 ; SOMEONE SAID "STOP"

                                     0232 55800 

                                     0232 55900 ;

                                     0232 56000 ; STATE INIT - AWAITING NODE INIT MSG FROM PARTNER NSP

                                     0232 56100 ;

                                     0232 56200 	STATE	INIT,<NSPOFF>,NODE_OFF,OFF ; SOMEONE SAID "STOP"

                                     0234 56300 	STATE	,<-			;

                                     0234 56400 		DDCDN,-			; PHYLK "START" RCVD

                                     0234 56500 		NSPVER,-		; NODE VERIFICATION MSG RCVD

                                     0234 56600 		>,RESTART,INIT		; RESTART THE LINE

                                     0236 56700 	STATE	,<-			;

                                     0236 56800 		NSPLPB,-		; GO TO "LOOPBACK"

                                     0236 56900 		NSPON,-			; GO "ONLINE"

                                     0236 57000 		>,START,INIT		; RESTART THE LINE

                                     0238 57100 	STATE	,<NSPINI>,NSPINI,VERIFY,CONT=0 ; NODE INIT RCVD

                                     023A 57200 

                                     023A 57300 					; STATE MAY CHANGE IF INIT NOT VALID

                                     023A 57400 ;

                                     023A 57500 ; STATE VERIFY - AWAITING VERIFICATION MESSAGE FROM PARTNER

                                     023A 57600 ;

                                     023A 57700 	STATE	VERIFY,<NSPOFF>,NODE_OFF,OFF ; STOP

                                     023C 57800 	STATE	,<-			;

                                     023C 57900 		NSPLPB,-		; LOOPBACK

                                     023C 58000 		NSPON,-			; ONLINE

                                     023C 58100 		DDCDN,-			; START RECEIVED

                                     023C 58200 		NSPTMO,-		; MESSAGE TOO SLOW IN COMING

                                     023C 58300 		NSPINI,-		; NODE INIT MSG RCVD

                                     023C 58400 		>,RESTART,INIT		; TRY AGAIN

                                     023E 58500 	STATE	,<NSPVER>,CHKVFY,ON,CONT=0 ; VERIFICATION MSG RCVD

                                     0240 58600 

                                     0240 58700 					; IF VERIF NOT VALID, START

                                     0240 58800 ;

                                     0240 58900 ; STATE ON - NODE IS UP

                                     0240 59000 ;

                                     0240 59100 	STATE	ON,<NSPOFF>,NODE_OFF,OFF ; BREAK ANY LINKS - LINE OFF

                                     0242 59200 	STATE	,<-			;

                                     0242 59300 		NSPLPB,-		; LOOPBACK

                                     0242 59400 		NSPON,-			; ONLINE

                                     0242 59500 		DDCDN,-			; START RCVD

                                     0242 59600 		NSPINI,NSPVER,-		; NODE STARTUP MSG RCVD

                                     0242 59700 		>,RESTART,INIT,CONT=0	; DO IT AGAIN - BREAK LOGICAL LINKS

                                     0244 59800 

                           0000002D  0244 59900 MAXSTA=STACTR				; LIMIT FOR CASE INSTRUCTION

                                     0244 60000 ;

                                     0244 60100 ; IF CASE FALLS THROUGH, THEN BUGCHECK WITH ILLEGAL EVENT

                                     0244 60200 ;

                                     0244 60300 	BUG_CHECK	NETNOSTATE,FATAL ; NO STATE TRANSITION

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  15

X01             NSP STATES                                                                                                       (1)



                                     0248 60400 

                                     0248 60500 	.END

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (1)



ACTION           000001DC R     09   CXB$B_CODE       0000000B            IRP$M_BUFIO    = 00000001            

AQB$B_ACPTYPE    00000015            CXB$B_TYPE       0000000A            IRP$M_CHAINED  = 00000020            

AQB$B_CLASS      00000016            CXB$C_DDCCON   = 00000001            IRP$M_COMPLX   = 00000008            

AQB$B_MNTCNT     0000000B            CXB$C_DDCDAT   = 00000002            IRP$M_DIAGBUF  = 00000080            

AQB$B_STATUS     00000014            CXB$C_DDCERR   = 00000004            IRP$M_FUNC     = 00000002            

AQB$B_TYPE       0000000A            CXB$C_DDCRCV   = 00000003            IRP$M_MBXIO    = 00000400            

AQB$C_LENGTH     00000018            CXB$C_LENGTH     00000018            IRP$M_PAGIO    = 00000004            

AQB$K_F11V1    = 00000001            CXB$C_NSPSTART   0000001A            IRP$M_PHYSIO   = 00000100            

AQB$K_F11V2    = 00000002            CXB$K_LENGTH     00000018            IRP$M_PRIVIO   = 00000200            

AQB$K_LENGTH     00000018            CXB$K_NSPSTART   0000001A            IRP$M_SWAPIO   = 00000040            

AQB$K_MTA      = 00000003            CXB$L_BL         00000004            IRP$M_VIRTUAL  = 00000010            

AQB$K_NET      = 00000004            CXB$L_FL         00000000            IRP$Q_NT_PRVMSK  0000003C            

AQB$K_UNDEFINED= 00000000            CXB$L_IRP        00000010            IRP$S_FCODE    = 00000006            

AQB$L_ACPPID     0000000C            CXB$L_LINK       00000010            IRP$S_FMOD     = 0000000A            

AQB$L_ACPQBL     00000004            CXB$L_SSB        00000014            IRP$S_MODE     = 00000002            

AQB$L_ACPQFL     00000000            CXB$W_CHANNEL    00000010            IRP$V_BUFIO    = 00000000            

AQB$L_LINK       00000010            CXB$W_LENGTH     0000000C            IRP$V_CHAINED  = 00000005            

AQB$M_CREATING = 00000008            CXB$W_OFFSET     0000000E            IRP$V_COMPLX   = 00000003            

AQB$M_DEFCLASS = 00000002            CXB$W_SIZE       00000008            IRP$V_DIAGBUF  = 00000007            

AQB$M_DEFSYS   = 00000004            EVENTTAB         00000000 R     07   IRP$V_FCODE    = 00000000            

AQB$M_UNIQUE   = 00000001            EVMSK          = 03D00000            IRP$V_FMOD     = 00000006            

AQB$V_CREATING = 00000003            GBL...         = 00000001            IRP$V_FUNC     = 00000001            

AQB$V_DEFCLASS = 00000001            GO               000000FD R     09   IRP$V_MBXIO    = 0000000A            

AQB$V_DEFSYS   = 00000002            HELP             00000022 R     09   IRP$V_MODE     = 00000000            

AQB$V_UNIQUE   = 00000000            IO$S_FCODE       ********   X   09   IRP$V_PAGIO    = 00000002            

AQB$W_SIZE       00000008            IO$V_FCODE       ********   X   09   IRP$V_PHYSIO   = 00000008            

AST_COMMON       000000B8 R     09   IO$_ACCESS       ********   X   06   IRP$V_PRIVIO   = 00000009            

AST_COMMON1      000000C1 R     09   IO$_ACPCONTROL   ********   X   06   IRP$V_SWAPIO   = 00000006            

AST_END          000000E9 R     09   IO$_DEACCESS     ********   X   06   IRP$V_VIRTUAL  = 00000004            

AST_VECTOR       00000000 R     05   IO$_READLBLK     ********   X   06   IRP$W_ABCNT      0000003C            

BIT...         = 0000001D            IO$_WRITELBLK    ********   X   06   IRP$W_BCNT       00000032            

BUG$_NETNOSTATE  ********   X   09   IOC$VERIFYCHAN   ********   X   09   IRP$W_BOFF       00000030            

CCB$B_AMOD       00000009            IOTAB            00000000 R     06   IRP$W_CHAN       00000028            

CCB$B_STS        00000008            IOTABEND       = 00000014 R     06   IRP$W_FUNC       00000020            

CCB$C_LENGTH     00000010            IRP$B_CARCON     00000038            IRP$W_OBCNT      0000003E            

CCB$K_LENGTH     00000010            IRP$B_EFN        00000022            IRP$W_SIZE       00000008            

CCB$L_DIRP       0000000C            IRP$B_PRI        00000023            IRP$W_STS        0000002A            

CCB$L_UCB        00000000            IRP$B_RMOD       0000000B            IRP$W_TT_PRMPT   0000003C            

CCB$L_WIND       00000004            IRP$B_TYPE       0000000A            MAXSTA         = 0000002D            

CCB$W_IOC        0000000A            IRP$C_LENGTH     0000004C            NDB$B_COMMVER    0000002B            

CONTROL_FUNC     000000FA R     09   IRP$K_LENGTH     0000004C            NDB$B_CONNTMO    0000004F            

CRB$B_MASK       0000000E            IRP$L_AST        00000010            NDB$B_FUNC       00000021            

CRB$B_TT_ATTN    00000004            IRP$L_ASTPRM     00000014            NDB$B_NONPRVACC  00000050            

CRB$B_TT_EXPEC   00000005            IRP$L_DIAGBUF    00000044            NDB$B_NUMBUF     0000000B            

CRB$B_TYPE       0000000A            IRP$L_IOQBL      00000004            NDB$B_PRVACC     0000007C            

CRB$C_LENGTH     00000038            IRP$L_IOQFL      00000000            NDB$B_RTEVER     00000028            

CRB$K_LENGTH     00000038            IRP$L_IOSB       00000024            NDB$B_STATE      00000016            

CRB$L_INTD       00000014            IRP$L_IOST1      00000034            NDB$B_STATUS     00000017            

CRB$L_INTD2      00000038            IRP$L_IOST2      00000038            NDB$B_TYPE       0000000A            

CRB$L_LINK       00000010            IRP$L_MEDIA      00000034            NDB$C_CTL_LOOP = 00000005            

CRB$L_TT_DIAL    00000000            IRP$L_PID        0000000C            NDB$C_LENGTH     000000BC            

CRB$L_WQBL       00000004            IRP$L_SEGVBN     00000040            NDB$C_LOOP     = 00000003            

CRB$L_WQFL       00000000            IRP$L_SEQNUM     00000048            NDB$C_MAINT    = 00000004            

CRB$M_BSY      = 00000001            IRP$L_SVAPTE     0000002C            NDB$C_MSG_DCHK = 00000009            

CRB$V_BSY      = 00000000            IRP$L_TT_TERM    00000038            NDB$C_MSG_DOWN = 00000003            

CRB$W_REFC       0000000C            IRP$L_UCB        0000001C            NDB$C_MSG_DSRCH= 00000007            

CRB$W_SIZE       00000008            IRP$L_WIND       00000018            NDB$C_MSG_LOOPB= 00000008            

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (1)



NDB$C_MSG_MAINT= 00000002            NET$C_EV_MACKD = 0000000C  G         NET$QIO          000000ED RG    09   

NDB$C_MSG_NGINI= 00000004            NET$C_EV_MACKI = 0000000D  G         NET$RCVACKD      ********   X   09   

NDB$C_MSG_OKINI= 00000005            NET$C_EV_MBEOM = 0000000B  G         NET$RCVACKI      ********   X   09   

NDB$C_MSG_SHUT = 00000006            NET$C_EV_MBOM  = 00000009  G         NET$RCVBEOM      ********   X   09   

NDB$C_MSG_START= 00000001            NET$C_EV_MCC   = 00000007  G         NET$RCVBOM       ********   X   09   

NDB$C_OFF      = 00000001            NET$C_EV_MCI   = 00000006  G         NET$RCVDATA      ********   X   09   

NDB$C_ON       = 00000000            NET$C_EV_MDAT  = 00000008  G         NET$RCVEOM       ********   X   09   

NDB$C_SHUT     = 00000002            NET$C_EV_MDC   = 00000011  G         NET$RCV_AST      ********   X   05   

NDB$K_LENGTH     000000BC            NET$C_EV_MDI   = 00000010  G         NET$RCV_INTMSG   ********   X   09   

NDB$L_LINE_NAME  00000004            NET$C_EV_MEOM  = 0000000A  G         NET$RCV_LNKSRV   ********   X   09   

NDB$L_NEXT       00000000            NET$C_EV_MINTR = 0000000E  G         NET$RCV_QIO      ********   X   09   

NDB$M_CTL_LOOP = 00000008            NET$C_EV_MLS   = 0000000F  G         NET$REMDIS       ********   X   09   

NDB$M_LOOPBACK = 00000001            NET$C_EV_NSPINI= 00000018  G         NET$RESTART      ********   X   09   

NDB$M_OFF      = 00000002            NET$C_EV_NSPLPB= 00000016  G         NET$RUNDOWN      ********   X   09   

NDB$M_SHUT     = 00000004            NET$C_EV_NSPNOD= 0000001B  G         NET$SET_EXI_AST  00000000 RG    09   

NDB$Q_AST        0000000C            NET$C_EV_NSPOFF= 00000015  G         NET$SET_INI_AST  0000001B RG    09   

NDB$Q_ZEROTIME   000000AC            NET$C_EV_NSPON = 00000014  G         NET$SET_NOP_AST  00000012 RG    09   

NDB$T_NAME       0000001A            NET$C_EV_NSPTMO= 0000001A  G         NET$SET_TIM_AST  00000009 RG    09   

NDB$T_SYSVER     0000002E            NET$C_EV_NSPVER= 00000019  G         NET$SET_XMT_AST  000000B1 RG    09   

NDB$V_CTL_LOOP = 00000003            NET$C_EV_PROTCL= 00000013  G         NET$START        ********   X   09   

NDB$V_LOOPBACK = 00000000            NET$C_ST_CAN   = 00000020  G         NET$TERM_QIO     ********   X   09   

NDB$V_OFF      = 00000001            NET$C_ST_CIR   = 00000006  G         NET$TIMER_AST    ********   X   05   

NDB$V_SHUT     = 00000002            NET$C_ST_CIS   = 00000007  G         NET$TRN          00000194 RG    09   

NDB$W_BLKSIZE    00000022            NET$C_ST_IDLE  = 00000000  G         NET$UP_COUNTER   ********   X   09   

NDB$W_BUFSIZE    000000A8            NET$C_ST_INIT  = 00000024  G         NET$XMT_AST      ********   X   05   

NDB$W_CHANNEL    00000014            NET$C_ST_LDP   = 0000001D  G         NET$XMT_DIS      ********   X   09   

NDB$W_CHAR       000000AA            NET$C_ST_OFF   = 00000023  G         NET$XMT_QIO      ********   X   09   

NDB$W_HISBLKSIZ  000000B8            NET$C_ST_ON    = 0000002B  G         NET_C_WORK     = 00000010            

NDB$W_HISNSPSIZ  000000BA            NET$C_ST_RUN   = 0000000E  G         NEWTBL         = 00000000 R     04   

NDB$W_MAXLNK     00000026            NET$C_ST_VERIFY= 00000028  G         RANGE            00000018 R     05   

NDB$W_NODEADDR   00000018            NET$DCIDLE       ********   X   09   SAVE_IOFUNC      00000008 R     08   

NDB$W_NSPSIZE    00000024            NET$DEAC_COMP    ********   X   09   SS$_FILALRACC    ********   X   09   

NDB$W_RCVBLKS    000000B4            NET$DEALLOC_BUF  ********   X   09   SS$_ILLIOFUNC    ********   X   09   

NDB$W_SIZE       00000008            NET$DEANONPAGED  ********   X   09   STACT            000001EA R     09   

NDB$W_XMTBLKS    000000B6            NET$DISCARD      000001D0 RG    09   STACTR         = 0000002D            

NET$ABORT_VIRT   ********   X   09   NET$EXIT_AST     ********   X   05   STATBL         = 00000000 R     03   

NET$ALLOCBUF     ********   X   09   NET$FINISH_IO    ********   X   09   SYS$HIBER        ********   X   09   

NET$ALLOC_BLOCK  ********   X   09   NET$FND_NDB_CHN  ********   X   09   SYS$PURGWS       ********   X   09   

NET$AST_EXIT     000001D8 RG    09   NET$GL_NSPQFL    ********   X   09   SYS$WAKE         ********   X   09   

NET$BAD_ACCESS   ********   X   09   NET$GL_Q_HEAD    ********   X   09   TEMP             00000011 R     08   

NET$BUST_LINK    ********   X   09   NET$GQ_USR_STAT  ********   X   09   TIM...         = 00000001            

NET$CHKLOCALAST  ********   X   09   NET$GW_CHANNEL   ********   X   09   TRN_LOOP         00000199 R     09   

NET$CHKVFY       ********   X   09   NET$GW_DISCARD   ********   X   09   UCB$B_AMOD       00000053            

NET$CHK_ACPDONE  ********   X   09   NET$INI_AST      ********   X   05   UCB$B_CEX        00000077            

NET$CLEAN_LINK   ********   X   09   NET$KILL_CON     ********   X   09   UCB$B_CM1        0000004A            

NET$CONNECT      ********   X   09   NET$MCC          ********   X   09   UCB$B_CM2        0000004B            

NET$CONN_TIMOUT  ********   X   09   NET$MCI          ********   X   09   UCB$B_DEVCLASS   00000038            

NET$CONTROL_QIO  ********   X   09   NET$NODE_OFF     ********   X   09   UCB$B_DEVTYPE    00000039            

NET$C_EV_CONTMO= 00000012  G         NET$NOP_AST      ********   X   05   UCB$B_DIPL       00000052            

NET$C_EV_DDCDN = 00000017  G         NET$NO_FILE      ********   X   09   UCB$B_DX_SCTCNT  000000A6            

NET$C_EV_DPCON = 00000001  G         NET$NSPDIS       ********   X   09   UCB$B_ERTCNT     00000070            

NET$C_EV_DPDIS = 00000003  G         NET$NSPINI       ********   X   09   UCB$B_ERTMAX     00000071            

NET$C_EV_DPRCV = 00000004  G         NET$NSPREJ       ********   X   09   UCB$B_ESCAPE     0000004B            

NET$C_EV_DPRDN = 00000002  G         NET$PARTNER_REJ  ********   X   09   UCB$B_FEX        00000076            

NET$C_EV_DPXMT = 00000005  G         NET$PART_DSTNOD  ********   X   09   UCB$B_FIPL       0000000B            

NET$C_EV_ENDNSP= 0000001C  G         NET$PATHLOST     ********   X   09   UCB$B_LOCSRV     0000003C            

NET$C_EV_LASTLL= 00000014  G         NET$PHYLK_SERV   00000025 RG    09   UCB$B_OFFNDX     00000094            

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                     (1)



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            VEC$B_DATAPATH   00000013            

UCB$L_FIRST      00000014            UCB$V_DELMBX   = 00000001            VEC$B_NUMREG     00000012            

UCB$L_FPC        0000000C            UCB$V_DIAGBUF  = 00000001            VEC$C_LENGTH     00000024            

UCB$L_FQBL       00000004            UCB$V_DX_WRITE = 00000003            VEC$K_LENGTH     00000024            

UCB$L_FQFL       00000000            UCB$V_ECC      = 00000000            VEC$L_ADP        00000014            

UCB$L_FR3        00000010            UCB$V_ERLOGIP  = 00000002            VEC$L_IDB        00000008            

UCB$L_FR4        00000014            UCB$V_INT      = 00000001            VEC$L_INITIAL    0000000C            

UCB$L_IOQBL      00000044            UCB$V_INTTYPE  = 00000007            VEC$L_START      0000001C            

UCB$L_IOQFL      00000040            UCB$V_JOB      = 00000000            VEC$L_UNITDISC   00000020            

UCB$L_IRP        0000004C            UCB$V_LNKPRI   = 00000006            VEC$L_UNITINIT   00000018            

UCB$L_LINK       0000002C            UCB$V_LTYPE    = 00000000            VEC$M_MAPLOCK  = 00008000            

UCB$L_LOGADR     00000064            UCB$V_MOUNTING = 00000009            VEC$M_PATHLOCK = 00000080            

UCB$L_MAXBLOCK   00000084            UCB$V_MSGACK   = 00000004            VEC$Q_DISPATCH   00000000            

UCB$L_MEDIA      0000008C            UCB$V_MSGFLO   = 00000003            VEC$S_DATAPATH = 00000007            

UCB$L_NT_DATSSB  00000074            UCB$V_NOCNVRT  = 00000002            VEC$S_MAPREG   = 0000000F            

UCB$L_NT_INTSSB  00000078            UCB$V_NT_BFROVF= 00000002            VEC$V_DATAPATH = 00000000            

UCB$L_OPCNT      00000060            UCB$V_NT_BREAK = 00000005            VEC$V_MAPLOCK  = 0000000F            

UCB$L_OWNUIC     0000001C            UCB$V_NT_NAME  = 00000004            VEC$V_MAPREG   = 00000000            

UCB$L_PID        00000028            UCB$V_ONLINE   = 00000004            VEC$V_PATHLOCK = 00000007            

UCB$L_RQBL       00000004            UCB$V_POWER    = 00000005            VEC$W_MAPREG     00000010            

UCB$L_RQFL       00000000            UCB$V_PRMMBX   = 00000000            WORK_ARG         0000000C R     08   

UCB$L_SVAPTE     00000068            UCB$V_SEGFLO   = 00000002            WORK_CODE        00000010 R     08   

UCB$L_SVPN       00000064            UCB$V_TIM      = 00000000            WORK_QUEUE_FL    00000000 R     08   

UCB$L_TTCHAR     0000003C            UCB$V_TIMOUT   = 00000006            XM$M_CHR_HDPLX = 00000004            

UCB$L_VCB        00000030            UCB$V_TT_NOTIF = 00000002            XM$M_CHR_LOOPB = 00000002            

UCB$M_BACKP    = 00000020            UCB$V_TT_TIMO  = 00000001            XM$M_CHR_MBX   = 00000010            

UCB$M_BSY      = 00000100            UCB$V_UNLOAD   = 0000000C            XM$M_CHR_MOP   = 00000001            

UCB$M_CANCEL   = 00000008            UCB$V_VALID    = 0000000B            XM$M_CHR_SLAVE = 00000008            

UCB$M_DEADMO   = 00000400            UCB$W_BCNT       0000006E            XM$M_ERR_FATAL = 00010000            

UCB$M_DELMBX   = 00000002            UCB$W_BCR        00000096            XM$M_ERR_LOST  = 00100000            

UCB$M_DIAGBUF  = 00000002            UCB$W_BOFF       0000006C            XM$M_ERR_MAINT = 00080000            

UCB$M_DX_WRITE = 00000008            UCB$W_BUFQUO     00000018            XM$M_ERR_START = 00800000            

NETTRN          - STATE TRANSITION ROUTINES                      22-AUG-1978 01:00:49   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                     (1)



XM$M_STS_ACTIVE= 00000800            

XM$M_STS_DCHK  = 00000100            

XM$M_STS_DISC  = 00004000            

XM$M_STS_ORUN  = 00000400            

XM$M_STS_TIMO  = 00000200            

XM$V_CHR_HDPLX = 00000002            

XM$V_CHR_LOOPB = 00000001            

XM$V_CHR_MBX   = 00000004            

XM$V_CHR_MOP   = 00000000            

XM$V_CHR_SLAVE = 00000003            

XM$V_ERR_FATAL = 00000010            

XM$V_ERR_LOST  = 00000014            

XM$V_ERR_MAINT = 00000013            

XM$V_ERR_START = 00000017            

XM$V_STS_ACTIVE= 0000000B            

XM$V_STS_DCHK  = 00000008            

XM$V_STS_DISC  = 0000000E            

XM$V_STS_ORUN  = 0000000A            

XM$V_STS_TIMO  = 00000009            





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  

EVTMSK           000000B4      03     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD  NOWRT BYTE  

NEWSTA           0000002D      04     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD  NOWRT BYTE  

NET_PURE         00000020      05     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD  NOWRT BYTE  

IOFUNC           00000014      06     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD  NOWRT BYTE  

IOEVENT          00000005      07     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD  NOWRT BYTE  

NET_IMPURE       00000013      08     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT BYTE  

NET_CODE         00000248      09     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

12924. BYTES LEFT IN FREE MEMORY POOL.

124. BYTES OF RECLAIMED MEMORY.

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

73 MLB DIR RDS - 702 GETS TO DEFINE 24 MACROS. 57 INTER. FILE WRITES. 

