Google
 

Trailing-Edge - PDP-10 Archives - BB-R595B-SM_11-9-85 - mcb/sc/scprm.lst
There is 1 other file named scprm.lst in the archive. Click here to see a list.
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page   1
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (1)

;	  0001	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0002	!                    DIGITAL EQUIPMENT CORPORATION
;	  0003	!                        Maynard, Massachusetts
;	  0004	!
;	  0005	!     This software is furnished under a license and may  be  used
;	  0006	!     and copied only in accordance with the terms of such license
;	  0007	!     and with the inclusion of the above copyright notice.   This
;	  0008	!     software  or any other copies thereof may not be provided or
;	  0009	!     otherwise made available to any other person.  No  title  to
;	  0010	!     and ownership of the software is hereby transferred.
;	  0011	!
;	  0012	!     The information  in  this  software  is  subject  to  change
;	  0013	!     without  notice  and should not be construed as a commitment
;	  0014	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0015	!
;	  0016	!     DIGITAL assumes no responsibility for the use or reliability
;	  0017	!     of  its  software  on  equipment  which  is  not supplied by
;	  0018	!     DIGITAL.
;	  0019	
;	  0020	!++
;	  0021	!	*** Start of SCPRM ***
;	  0022	!
;	  0023	! Macros, structures, and stuff for Session Control
;	  0024	!--
;	  0025	
;	  0026	literal
;	  0027	    SCPRM_VERSION = 21;
;	  0028	
;	  0029	library 'MCB:XPORTX';
;	  0030	library 'MCB:MCBLIB';
;	  0031	
;	  0032	$show (all);
;	  0033	
;	  0034	literal
;	  0035	    true = (1 eql 1),		! Affirmative
;	  0036	    false = (1 eql 0),		! Not so
;	  0037	    paranoid = true,		! Conditional compile of some checking
;	  0038	    none_such = -1;		! Huh?
;	  0039	
;	  0040	structure
;	  0041	    BYTE_VECTOR [I; N] =
;	L 0042	    %if %bliss (bliss16)
;	  0043	    %then
;	  0044		[N] (BYTE_VECTOR + I)<0, 8>
;	  0045	    %fi
;	L 0046	    %if %bliss (bliss36)
;	U 0047	    %then
;	U 0048		[N/4] (BYTE_VECTOR + I/4)<(I mod 4)*9, 9>
;	  0049	    %fi;
;	  0050	
;	  0051	
;	  0052	
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page   2
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (1)

;	  0053	DECLARE_SEVERITY (SC, SEVERE);
;	  0054	
;	  0055	$SC_SEVERE (SC$_IFC, 'illegal function code')
;	  0056	$SC_SEVERE (SC$_ISC, 'illegal subfunction code')
;	  0057	$SC_SEVERE (SC$_LWS, 'link in wrong state')
;	  0058	$SC_SEVERE (SC$_NNS, 'no Network Services layer')
;	  0059	$SC_SEVERE (SC$_NNM, 'no Network Management module')
;	  0060	
;	  0061	DECLARE_SEVERITY (SCX, SEVERE);
;	  0062	
;	  0063	$SCX_SEVERE (SCX$_ILE, 'internal logic error')
;	  0064	$SCX_SEVERE (SCX$_ISC, 'illegal subfunction code')
;	  0065	$SCX_SEVERE (SCX$_NSC, 'no Session Control server process')
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page   3
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (2)

;	  0066	!+
;	  0067	! Macro to conditionally align addresses for 36-bit compilation
;	  0068	!-
;	  0069	macro
;	M 0070	    $SC_WAIT =				! Resource wait in SC
;	M 0071		begin
;	M 0072		SCDB [SCF_KLOK] = true;
;	M 0073		SCDB [SCF_SUCC] = false;
;	M 0074		return
;	  0075		end %,
;	  0076	
;	M 0077	    $SCX_WAIT =				! Resource wait in SCX
;	M 0078		begin
;	M 0079		TNB [TNF_RWT] = true;
;	M 0080		SCXDB [SCXF_SUCC] = false;
;	M 0081		return
;	  0082		end %;
;	  0083	
;	  0084	
;	  0085	!+
;	  0086	! MCB Scheduling Macros
;	  0087	!-
;	  0088	macro
;	M 0089	    $SC_DO_CCP (ccb, sts) =
;	M 0090		begin
;	M 0091		bind $SC$CCB = (ccb): block field (C_FIELDS);
;	M 0092		$SC$CCB [C_FNC] = FC_CCP;
;	M 0093		%if not %null (sts) %then $SC$CCB [C_STS] = sts; %fi
;	M 0094		$MCB_SCHEDULE_CCB (ccb)
;	  0095		end %,
;	  0096	
;	M 0097	    $SC_DO_RCE (ccb, sts) =
;	M 0098		begin
;	M 0099		bind $SC$CCB = (ccb): block field (C_FIELDS);
;	M 0100		$SC$CCB [C_FNC] = FC_RCE;
;	M 0101		%if not %null (sts) %then $SC$CCB [C_STS] = sts; %fi
;	M 0102		$MCB_SCHEDULE_CCB (ccb)
;	  0103		end %,
;	  0104	
;	M 0105	    $SC_DO_RCP (ccb, mdf, lnk) =
;	M 0106		begin
;	M 0107		%if not %declared (DO_RCP)
;	M 0108		%then external routine DO_RCP: linkage_ccb novalue; %fi
;	M 0109		DO_RCP (ccb, mdf, lnk)
;	  0110		end %,
;	  0111	
;	M 0112	    $SC_DO_XCP (ccb, sts) =
;	M 0113		begin
;	M 0114		bind $SC$CCB = (ccb): block field (C_FIELDS);
;	M 0115		$SC$CCB [C_FNC] = FC_XCP;
;	M 0116		%if not %null (sts) %then $SC$CCB [C_STS] = sts; %fi
;	M 0117		$MCB_SCHEDULE_CCB (ccb)
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page   4
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (2)

;	  0118		end %,
;	  0119	
;	M 0120	    $SC_DO_XME (ccb, mdf, lnk) =
;	M 0121		begin
;	M 0122		%if not %declared (DO_XME)
;	M 0123		%then external routine DO_XME: linkage_ccb novalue; %fi
;	M 0124		DO_XME (ccb, mdf, lnk)
;	  0125		end %,
;	  0126	
;	M 0127	    $SCX_DO_RCE (ccb, sts) =
;	M 0128		begin
;	M 0129		bind $SC$CCB = (ccb): block field (C_FIELDS);
;	M 0130		$SC$CCB [C_FNC] = FC_RCE;
;	M 0131		%if not %null (sts) %then $SC$CCB [C_STS] = sts; %fi
;	M 0132		$MCB_SCHEDULE_CCB (ccb)
;	  0133		end %,
;	  0134	
;	M 0135	    $SCX_DO_XME (ccb, mdf, iop, lcb, buf) =
;	M 0136		begin
;	M 0137		%if not %declared (DO$XME)
;	M 0138		%then external routine DO$XME: linkage_ccb novalue; %fi
;	M 0139		DO$XME (ccb, mdf, iop, lcb, buf)
;	  0140		end %;
;	  0141	
;	  0142	
;	  0143	!+
;	  0144	! Macro for conditionally mapping/binding database.
;	  0145	!-
;	  0146	macro
;	M 0147	    $SC_GET_DATA_BASE (dabname) =
;	M 0148		%if not %declared (MCB$GAW_PROCESS_DATA_BASE)
;	M 0149		%then external MCB$GAW_PROCESS_DATA_BASE: vector [2]; %fi
;	M 0150		%if %declared (dabname)
;	M 0151		%then map dabname : ref
;	M 0152		%else bind dabname = .MCB$GAW_PROCESS_DATA_BASE [1] :
;	  0153		%fi block field (SC_FIELDS) %,
;	  0154	
;	M 0155	    $SCX_GET_DATA_BASE (dabname) =
;	M 0156		%if not %declared (MCB$GAW_PROCESS_DATA_BASE)
;	M 0157		%then external MCB$GAW_PROCESS_DATA_BASE: vector [2]; %fi
;	M 0158		%if %declared (dabname)
;	M 0159		%then map dabname : ref
;	M 0160		%else bind dabname = .MCB$GAW_PROCESS_DATA_BASE [1] :
;	  0161		%fi block field (SCXDB_FIELDS) %;
;	  0162	
;	  0163	
;	  0164	!+
;	  0165	! Dispatching macros for SC
;	  0166	!-
;	  0167	macro
;	M 0168	    $SC_DISPATCH_INPUT (QUE) =
;	M 0169		begin
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page   5
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (2)

;	M 0170		bind CCB = QUE: ref block field (C_FIELDS);
;	M 0171		if .CCB neq 0
;	M 0172		then DISPATCH$ (.CCB [C_MOD], RCPWT, (.LNK))
;	  0173		end %,
;	  0174	
;	M 0175	    $SC_DISPATCH_OUTPUT (QUE) =
;	M 0176		begin
;	M 0177		bind CCB = QUE: ref block field (C_FIELDS);
;	M 0178		if .CCB neq 0
;	M 0179		then DISPATCH$ (.CCB [C_MOD], XMEWT, (.LNK))
;	  0180		end %;
;	  0181	
;	  0182	
;	  0183	!+
;	  0184	! Dispatching macros for SCX
;	  0185	!-
;	  0186	macro
;	M 0187	    $SCX_DISPATCH_INPUT (QUE) =
;	M 0188		begin
;	M 0189		bind
;	M 0190		    CCB = QUE: ref block field (C_FIELDS),
;	M 0191		    IDSP = $IDSP: vector;	
;	M 0192		if .CCB neq 0
;	M 0193		then DISPATCH$ (.CCB [C_MOD], $IDSP, (.TNB))
;	  0194		end %,
;	  0195	
;	M 0196	    $SCX_DISPATCH_OUTPUT (QUE, CB) =
;	M 0197		begin
;	M 0198		bind
;	M 0199		    IOP = QUE: ref block field (IOP_FIELDS),
;	M 0200		    ODSP = $ODSP: vector;
;	M 0201		if .IOP neq 0
;	M 0202		then DISPATCH$ (((.IOP [I_MOD]) and %o'177')^-2, .ODSP [(.IOP [I_FNC]) - IOP_LO], (CB))
;	  0203		end %;
;	  0204	
;	  0205	
;	  0206	!+
;	  0207	! Queue Management Macros
;	  0208	!-
;	  0209	macro
;	M 0210	    $SCX_STACK (QUE, STR) =		! Queue STR to head of QUE
;	M 0211		begin
;	M 0212		%if not %declared ($SCQHD) %then external routine $SCQHD: novalue; %fi
;	M 0213		$SCQHD (QUE, STR)
;	  0214		end %,
;	  0215	
;	M 0216	    $SCX_ENQUEUE (QUE, STR) =		! Queue STR to tail of QUE
;	M 0217		begin
;	M 0218		%if not %declared ($SCQIN) %then external routine $SCQIN: novalue; %fi
;	M 0219		$SCQIN (QUE, STR)
;	  0220		end %,
;	  0221	
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page   6
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (2)

;	M 0222	    $SCX_DEQUEUE (QUE, STR) =		! Dequeue from QUE to STR
;	M 0223		begin
;	M 0224		%if not %declared ($SCQRM) %then external routine $SCQRM; %fi
;	M 0225		$SCQRM (QUE, STR)
;	  0226		end %;
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page   7
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (3)

;	  0227	!+
;	  0228	! Field mapping for SC's data base
;	  0229	!-
;	  0230	$field SC_FIELDS =
;	  0231	    set
;	L 0232	    SC_TICK = [$byte],			! Reserved place for long timer
; %PRINT:				  [0,0,8,0]   (+%O'0')
;	L 0233	    SC_FLAGS = [$byte],			! SC's status info
; %PRINT:				  [0,8,8,0]   (+%O'1')
;	  0234	    $overlay (SC_FLAGS)
;	L 0235		SCF_STAT = [$bits (2)], 	! SC state (must be low 2 bits)
; %PRINT:				  [0,8,2,0]   (+%O'1')
;	L 0236		SCF_KLOK = [$bit], 		! Long timer active
; %PRINT:				  [0,10,1,0]   (+%O'1')
;	L 0237		SCF_OPEN = [$bit],		! Port OPEN in progress
; %PRINT:				  [0,11,1,0]   (+%O'1')
;	L 0238		SCF_SUCC = [$bit],		! SC resource allocation success flag
; %PRINT:				  [0,12,1,0]   (+%O'1')
;	  0239	    $continue
;	L 0240	    SC_NSPIX = [$byte], 		! NSP's PIX
; %PRINT:				  [1,0,8,0]   (+%O'2')
;	L 0241	    SC_NMPIX = [$byte],			! NMX's PIX
; %PRINT:				  [1,8,8,0]   (+%O'3')
;	L 0242	    SC_SNPIX = [$byte],			! SC's extension process PIX
; %PRINT:				  [2,0,8,0]   (+%O'4')
;	L 0243	    SC_LLINK = [$byte], 		! Last logical link handled
; %PRINT:				  [2,8,8,0]   (+%O'5')
;	L 0244	    SC_IPORT = [$byte],			! Number of currently OPEN input ports
; %PRINT:				  [3,0,8,0]   (+%O'6')
;	L 0245	    SC_RPORT = [$byte],			! Required number of OPEN input ports
; %PRINT:				  [3,8,8,0]   (+%O'7')
;	L 0246	    SC_LADDR = [$short_integer],	! Local node address
; %PRINT:				  [4,0,16,1]   (+%O'10')
;	L 0247	    SC_HADDR = [$short_integer],	! Host node address
; %PRINT:				  [5,0,16,1]   (+%O'12')
;	L 0248	    SC_SSIZE = [$short_integer],	! NSP segment size
; %PRINT:				  [6,0,16,1]   (+%O'14')
;	L 0249	    SC_LINKS = [$short_integer],	! Maximum number of logical links
; %PRINT:				  [7,0,16,1]   (+%O'16')
;	L 0250	    SC_NODES = [$short_integer],	! Maximum number of network nodes
; %PRINT:				  [8,0,16,1]   (+%O'20')
;	L 0251	    SC_LOOPS = [$short_integer],	! Maximum number of loopbacks
; %PRINT:				  [9,0,16,1]   (+%O'22')
;	L 0252	    SC_ITIME = [$short_integer],	! Incoming connect timer value
; %PRINT:				  [10,0,16,1]   (+%O'24')
;	L 0253	    SC_OTIME = [$short_integer],	! Outgoing connect timer value
; %PRINT:				  [11,0,16,1]   (+%O'26')
;	  0254	
;	L 0255	    SC_OTN_LEN = [$short_integer],	! Length of OTN table
; %PRINT:				  [12,0,16,1]   (+%O'30')
;	L 0256	    SC_ONP_LEN = [$short_integer],	! Length of ONP table
; %PRINT:				  [13,0,16,1]   (+%O'32')
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page   8
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (3)

;	  0257	
;	L 0258	    SC_OTN_BIAS = [$address], 		! OTN address doubleword
; %PRINT:				  [14,0,16,0]   (+%O'34')
;	L 0259	    SC_OTN_ADDR = [$addresx], 		!   Object-type to object-name
; %PRINT:				  [15,0,16,0]   (+%O'36')
;	  0260	    $overlay (SC_OTN_BIAS)		!   mapping table
;	L 0261		SC_OTN = [$address], 		!
; %PRINT:				  [14,0,16,0]   (+%O'34')
;	  0262	    $continue
;	  0263	
;	L 0264	    SC_ONP_BIAS = [$address], 		! ONP address doubleword
; %PRINT:				  [16,0,16,0]   (+%O'40')
;	L 0265	    SC_ONP_ADDR = [$addresx], 		!   Object-name to process-name
; %PRINT:				  [17,0,16,0]   (+%O'42')
;	  0266	    $overlay (SC_ONP_BIAS)		!   mapping table
;	L 0267		SC_ONP = [$address], 		!
; %PRINT:				  [16,0,16,0]   (+%O'40')
;	  0268	    $continue
;	  0269	
;	L 0270	    SC_LLT_BIAS = [$address],	 	! LLT address doubleword
; %PRINT:				  [18,0,16,0]   (+%O'44')
;	L 0271	    SC_LLT_ADDR = [$addresx], 		! ...
; %PRINT:				  [19,0,16,0]   (+%O'46')
;	  0272	    $overlay (SC_LLT_BIAS)
;	L 0273		SC_LLT = [$address], 		! ...
; %PRINT:				  [18,0,16,0]   (+%O'44')
;	  0274	    $continue
;	  0275	
;	L 0276	    SC_NMT_BIAS = [$address], 		! NMT address doubleword
; %PRINT:				  [20,0,16,0]   (+%O'50')
;	L 0277	    SC_NMT_ADDR = [$addresx], 		! ...
; %PRINT:				  [21,0,16,0]   (+%O'52')
;	  0278	    $overlay (SC_NMT_BIAS)
;	L 0279		SC_NMT = [$address], 		! ...
; %PRINT:				  [20,0,16,0]   (+%O'50')
;	  0280	    $continue
;	  0281	
;	  0282	    $overlay (SC_TICK)
;	L 0283		SC_TOP = [$address]		! Guaranteed beginning of SCDB
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	  0284	    $continue
;	  0285	    tes;
;	  0286	
;	  0287	literal
;	L 0288	    SC_SIZE = $field_set_size,		! Length of SC data base
; %PRINT:				  22 fullwords
;	  0289	    S_ST_ON = 0,			! SC is ON
;	  0290	    S_ST_OFF = 1,			! SC is OFF
;	  0291	    S_ST_SHUT = 2,			! SC is SHUT
;	  0292	    S_ST_RST = 3;			! SC is RESTRICTed
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page   9
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (4)

;	  0293	!+
;	  0294	! Field mapping for SC's logical link table
;	  0295	!-
;	  0296	$field LLT_FIELDS =
;	  0297	    set
;	L 0298	    L_STATE = [$byte],		 	! Link state
; %PRINT:				  [0,0,8,0]   (+%O'0')
;	L 0299	    L_FLAGS = [$byte],			! Processing flags
; %PRINT:				  [0,8,8,0]   (+%O'1')
;	  0300	    $overlay (L_FLAGS)
;	L 0301		LL_ACDW = [$bits (3)], 		! Abort-Close-Disconnect flags
; %PRINT:				  [0,8,3,0]   (+%O'1')
;	L 0302		LL_BUSY = [$bit],		! Link is in use
; %PRINT:				  [0,11,1,0]   (+%O'1')
;	L 0303		LL_KLOK = [$bit], 		! Connect timer running
; %PRINT:				  [0,12,1,0]   (+%O'1')
;	L 0304		LL_INTM = [$bit],		! Link has outstanding interrupt msg
; %PRINT:				  [0,13,1,0]   (+%O'1')
;	  0305	    $continue
;	  0306	    $overlay(LL_ACDW)
;	L 0307		LL_ABTI = [$bit], 		! Abort initiated
; %PRINT:				  [0,8,1,0]   (+%O'1')
;	L 0308		LL_CLSI = [$bit], 		! Close initiated
; %PRINT:				  [0,9,1,0]   (+%O'1')
;	L 0309		LL_DSCI = [$bit], 		! Disconnect initiated
; %PRINT:				  [0,10,1,0]   (+%O'1')
;	  0310	    $continue
;	L 0311	    L_ULA = [$byte], 			! User link address
; %PRINT:				  [1,0,8,0]   (+%O'2')
;	L 0312	    L_LLA = [$byte],			! Logical link address
; %PRINT:				  [1,8,8,0]   (+%O'3')
;	L 0313	    L_PID = [$byte], 			! Port ID
; %PRINT:				  [2,0,8,0]   (+%O'4')
;	L 0314	    L_PIX = [$byte], 			! User process index
; %PRINT:				  [2,8,8,0]   (+%O'5')
;	L 0315	    L_RNA = [$short_integer], 		! Remote node address
; %PRINT:				  [3,0,16,1]   (+%O'6')
;	L 0316	    L_CHN = [$short_integer],		! Channel #
; %PRINT:				  [4,0,16,1]   (+%O'10')
;	L 0317	    L_TIMER = [$short_integer],		! Timer value
; %PRINT:				  [5,0,16,1]   (+%O'12')
;	L 0318	    L_STS = [$short_integer],		! Status value for link disolution
; %PRINT:				  [6,0,16,1]   (+%O'14')
;	  0319	
;	L 0320	    L_I_HEAD = [$addresx], 		! Input queue header
; %PRINT:				  [7,0,16,0]   (+%O'16')
;	L 0321	    L_I_TAIL = [$addresx], 		!   "     "   tail
; %PRINT:				  [8,0,16,0]   (+%O'20')
;	  0322	    $overlay (L_I_HEAD)
;	L 0323		L_IQUE = [$address], 		! ...
; %PRINT:				  [7,0,16,0]   (+%O'16')
;	  0324	    $continue
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  10
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (4)

;	  0325	
;	L 0326	    L_O_HEAD = [$addresx], 		! Output queue header
; %PRINT:				  [9,0,16,0]   (+%O'22')
;	L 0327	    L_O_TAIL = [$addresx], 		!   "      "   tail
; %PRINT:				  [10,0,16,0]   (+%O'24')
;	  0328	    $overlay (L_O_HEAD)
;	L 0329		L_OQUE = [$address], 		! Output queue
; %PRINT:				  [9,0,16,0]   (+%O'22')
;	  0330	    $continue
;	  0331	
;	L 0332	    L_N_HEAD = [$addresx], 		! Interrupt queue header
; %PRINT:				  [11,0,16,0]   (+%O'26')
;	L 0333	    L_N_TAIL = [$addresx], 		!     "       "   tail
; %PRINT:				  [12,0,16,0]   (+%O'30')
;	  0334	    $overlay (L_N_HEAD)
;	L 0335		L_INTQ = [$address], 		! ...
; %PRINT:				  [11,0,16,0]   (+%O'26')
;	  0336	    $continue
;	  0337	
;	  0338	    $overlay (L_STATE)
;	L 0339		L_TOP = [$address]		! Guaranteed beginning of LLT
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	  0340	    $continue
;	  0341	    tes;
;	  0342	
;	  0343	literal
;	L 0344	    L_SIZE = $field_set_size,		! Length of the LLT entry
; %PRINT:				  13 fullwords
;	  0345	
;	  0346	    ST_OFF = 0,				! Off
;	  0347	    ST_CIS = 1,				! Connect requested by user
;	  0348	    ST_CID = 2,				! Connect has been delivered to remote
;	  0349	    ST_OI = 3,				! Port OPEN initiated
;	  0350	    ST_OPN = 4,				! Port is OPEN
;	  0351	    ST_CR = 5,				! Connect received from remote
;	  0352	    ST_CRA = 6,				! Connect ack'd by local user
;	  0353	    ST_CA = 7,				! Local user has accepted connect
;	  0354	    ST_CLI = 8,				! Logical link is being closed
;	  0355	    ST_ABI = 9,				! Logical link is being aborted
;	  0356	    ST_DI = 10,				! Logical link is being disconnected
;	  0357	    ST_DIR = 11,			! Disconnect initiate received
;	  0358	    ST_RUN = 12;			! Link is in the RUN state
;	  0359	
;	  0360	
;	  0361	
;	  0362	!+
;	  0363	! Field mapping for the Node Mapping Table
;	  0364	!-
;	  0365	$field
;	  0366	    NMT_fields =
;	  0367	    set
;	L 0368	    NMT_BASE = [$sub_block (0)],        ! Base of entry
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  11
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (4)

; %PRINT:				  [0,0,0,0]   (+%O'0')
;	L 0369	    NMT_NAML = [$tiny_integer],   	! Name length (max of 6)
; %PRINT:				  [0,0,8,1]   (+%O'0')
;	L 0370	    NMT_NAME = [$byte_string (6)],	! Node name
; %PRINT:				  [0,8,0,0]   (+%O'1')
;	L 0371	    NMT_CHAN = [$byte],                 ! Channel number
; %PRINT:				  [3,8,8,0]   (+%O'7')
;	  0372	    $align (fullword)
;	L 0373	    NMT_ADDR = [$short_integer],	! Node address
; %PRINT:				  [4,0,16,1]   (+%O'10')
;	L 0374	    NMT_NMXID = [$short_integer]
; %PRINT:				  [5,0,16,1]   (+%O'12')
;	  0375	    tes;
;	  0376	
;	  0377	literal
;	L 0378	    NMT_SIZE = $field_set_size;
; %PRINT:				  6 fullwords
;	  0379	
;	  0380	
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  12
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (5)

;	  0381	!+
;	  0382	! Field mapping for the Object Mapping Tables
;	  0383	!-
;	  0384	
;	  0385	! OTN is for mapping from Object-Type to Object-Name
;	  0386	! An arriving connect request may specify a destination object
;	  0387	! by object type; if so, this structure (OTN) is examined to see
;	  0388	! whether it exists. If so, the corresponding object name is
;	  0389	! selected, and the object name is used to subsequently search
;	  0390	! the ONP structure.
;	  0391	$field OTN_FIELDS =
;	  0392	    set
;	L 0393	    OTN_TYPE = [$byte],		! Object type
; %PRINT:				  [0,0,8,0]   (+%O'0')
;	L 0394	    OTN_NLEN = [$byte],		! Name length
; %PRINT:				  [0,8,8,0]   (+%O'1')
;	L 0395	    OTN_NAME = [$string (6)]	! ASCII object name
; %PRINT:				  [1,0,0,0]   (+%O'2')
;	  0396	    tes;
;	  0397	
;	  0398	literal
;	L 0399	    OTN_SIZE = $field_set_size;
; %PRINT:				  4 fullwords
;	  0400	
;	  0401	! ONP is for mapping from Object-Name to Process-Name
;	  0402	! An arriving connect request may specify a destination object
;	  0403	! by name; if so, this structure (ONP) is examined to see whether
;	  0404	! it exists. If so, the corresponding process name is selected.
;	  0405	! If no match is found, it is assumed that the destination is
;	  0406	! an RSX task, and will be determined in SCX.
;	  0407	$field ONP_FIELDS =
;	  0408	    set
;	L 0409	    ONP_NLEN = [$byte],		! Name length
; %PRINT:				  [0,0,8,0]   (+%O'0')
;	L 0410	    ONP_NAME = [$string (6)],	! Object name
; %PRINT:				  [0,8,0,0]   (+%O'1')
;	  0411	    $align (fullword)
;	L 0412	    ONP_PROC = [$pointer]	! Not really a pointer, but allocates
; %PRINT:				  [4,0,16,0]   (+%O'10')
;	  0413	    tes;			!   right amount of space
;	  0414	
;	  0415	literal
;	L 0416	    ONP_SIZE = $field_set_size;
; %PRINT:				  5 fullwords
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  13
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (6)

;	  0417	!+
;	  0418	! SCX Data Base field definitions
;	  0419	!-
;	  0420	$field SCXDB_FIELDS =
;	  0421	    set
;	L 0422	    SCX_TICK = [$byte],			! Reserved timer byte
; %PRINT:				  [0,0,8,0]   (+%O'0')
;	L 0423	    SCX_FLG = [$byte], 			! Processing flags
; %PRINT:				  [0,8,8,0]   (+%O'1')
;	  0424	    $overlay (SCX_FLG)
;	L 0425		SCXF_KLOK = [$bit], 		!   Clock interrupt needed
; %PRINT:				  [0,8,1,0]   (+%O'1')
;	L 0426		SCXF_SUCC = [$bit],		!   Resource allocation success flag
; %PRINT:				  [0,9,1,0]   (+%O'1')
;	  0427	    $continue
;	L 0428	    SCX_SCPIX = [$byte], 		! PIX of Session Control
; %PRINT:				  [1,0,8,0]   (+%O'2')
;	L 0429	    SCX_xxxxx = [$byte],		! Rsv'd
; %PRINT:				  [1,8,8,0]   (+%O'3')
;	L 0430	    SCX_UCB = [$addresx],		! UCB address
; %PRINT:				  [2,0,16,0]   (+%O'4')
;	L 0431	    SCX_TNB = [$addresx], 		! TNB list
; %PRINT:				  [3,0,16,0]   (+%O'6')
;	L 0432	    SCX_LINKS = [$short_integer],	! Maximum number of logical links
; %PRINT:				  [4,0,16,1]   (+%O'10')
;	  0433	
;	L 0434	    SCX_MBHD = [$addresx], 		! General delivery mailbox list head
; %PRINT:				  [5,0,16,0]   (+%O'12')
;	L 0435	    SCX_MBTL = [$addresx],		! General delivery mailbox list tail
; %PRINT:				  [6,0,16,0]   (+%O'14')
;	  0436	    $overlay (SCX_MBHD)
;	L 0437		SCX_MBX = [$address],		! ...
; %PRINT:				  [5,0,16,0]   (+%O'12')
;	  0438	    $continue
;	L 0439	    SCX_OTN_LEN = [$short_integer],	! Length of OTN table
; %PRINT:				  [7,0,16,1]   (+%O'16')
;	L 0440	    SCX_OTN_BIAS = [$address], 		! OTN address doubleword
; %PRINT:				  [8,0,16,0]   (+%O'20')
;	L 0441	    SCX_OTN_ADDR = [$addresx], 		!   Object-type to object-name
; %PRINT:				  [9,0,16,0]   (+%O'22')
;	  0442	    $overlay (SCX_OTN_BIAS)		!   mapping table
;	L 0443		SCX_OTN = [$address], 		!
; %PRINT:				  [8,0,16,0]   (+%O'20')
;	  0444	    $continue
;	  0445	
;	L 0446	    SCX_ULA_BIAS = [$address],		! User Link Address vector bias
; %PRINT:				  [10,0,16,0]   (+%O'24')
;	L 0447	    SCX_ULA_ADDR = [$addresx],		!  "    "      "      "    address
; %PRINT:				  [11,0,16,0]   (+%O'26')
;	  0448	    $overlay (SCX_ULA_BIAS)
;	L 0449		SCX_ULA = [$address]		! ...
; %PRINT:				  [10,0,16,0]   (+%O'24')
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  14
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (6)

;	  0450	    $continue
;	  0451	    tes;
;	  0452	
;	  0453	literal
;	L 0454	    SCXDB_SIZE = $field_set_size;
; %PRINT:				  12 fullwords
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  15
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (7)

;	  0455	!+
;	  0456	! Task Networking Control Block field definitions
;	  0457	!-
;	  0458	$field TNB_FIELDS =
;	  0459	    set
;	L 0460	    TN_LINK = [$addresx],	 	! Link to next TNB in system
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0461	    TN_TASK = [$addresx],	 	! Pointer to the TCB
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	L 0462	    TN_LCB = [$addresx], 		! Pointer to list of task's LCBs
; %PRINT:				  [2,0,16,0]   (+%O'4')
;	  0463	
;	L 0464	    TN_IQHD = [$addresx],	 	! Input queue head
; %PRINT:				  [3,0,16,0]   (+%O'6')
;	L 0465	    TN_IQTL = [$addresx], 		! Input queue tail
; %PRINT:				  [4,0,16,0]   (+%O'10')
;	  0466	    $overlay (TN_IQHD)
;	L 0467		TN_IQUE = [$address],		! ...
; %PRINT:				  [3,0,16,0]   (+%O'6')
;	  0468	    $continue
;	  0469	
;	L 0470	    TN_OQHD = [$addresx],	 	! Output queue head
; %PRINT:				  [5,0,16,0]   (+%O'12')
;	L 0471	    TN_OQTL = [$addresx], 		! Output queue tail
; %PRINT:				  [6,0,16,0]   (+%O'14')
;	  0472	    $overlay (TN_OQHD)
;	L 0473		TN_OQUE = [$address],		! ...
; %PRINT:				  [5,0,16,0]   (+%O'12')
;	  0474	    $continue
;	  0475	
;	L 0476	    TN_LUN = [$byte], 			! User's LUN
; %PRINT:				  [7,0,8,0]   (+%O'16')
;	L 0477	    TN_FLG = [$byte], 			! Processing flags
; %PRINT:				  [7,8,8,0]   (+%O'17')
;	  0478	    $overlay (TN_FLG)
;	L 0479		TNF_CLS = [$bit], 		!   Close initiated
; %PRINT:				  [7,8,1,0]   (+%O'17')
;	L 0480		TNF_RWT = [$bit], 		!   Some link is waiting for a resource
; %PRINT:				  [7,9,1,0]   (+%O'17')
;	L 0481		TNF_KLK = [$bit], 		!   Clock request
; %PRINT:				  [7,10,1,0]   (+%O'17')
;	  0482	    $continue
;	L 0483	    TN_ACT = [$byte], 			! Number of active links
; %PRINT:				  [8,0,8,0]   (+%O'20')
;	L 0484	    TN_MAX = [$byte],			! Max unmber of logical links
; %PRINT:				  [8,8,8,0]   (+%O'21')
;	L 0485	    TN_AST = [$byte], 			! Number of outstanding ASTs
; %PRINT:				  [9,0,8,0]   (+%O'22')
;	L 0486	    TN_xxx = [$byte],			! rsv's
; %PRINT:				  [9,8,8,0]   (+%O'23')
;	L 0487	    TN_SPA = [$addresx], 		! User's AST address
; %PRINT:				  [10,0,16,0]   (+%O'24')
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  16
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (7)

;	  0488	
;	L 0489	    TN_MBHD = [$addresx], 		! Mailbox queue head
; %PRINT:				  [11,0,16,0]   (+%O'26')
;	L 0490	    TN_MBTL = [$addresx],		! Mailbox queue tail
; %PRINT:				  [12,0,16,0]   (+%O'30')
;	  0491	    $overlay (TN_MBHD)
;	L 0492		TN_MBXQ = [$address]		! ...
; %PRINT:				  [11,0,16,0]   (+%O'26')
;	  0493	    $continue
;	  0494	    tes;
;	  0495	
;	  0496	literal
;	L 0497	    TNB_SIZE = $field_set_size;
; %PRINT:				  13 fullwords
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  17
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (8)

;	  0498	!+
;	  0499	! Link Control Block field definitions
;	  0500	!-
;	  0501	$field LCB_FIELDS =
;	  0502	    set
;	L 0503	    LC_LINK = [$addresx], 		! Pointer to next LCB for this task
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0504	    LC_TASK = [$addresx], 		! Pointer to the TCB
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	L 0505	    LC_TNB = [$addresx], 		! Pointer to the TNB
; %PRINT:				  [2,0,16,0]   (+%O'4')
;	  0506	
;	L 0507	    LC_OQHD = [$addresx], 		! Output queue head
; %PRINT:				  [3,0,16,0]   (+%O'6')
;	L 0508	    LC_OQTL = [$addresx], 		! Output queue tail
; %PRINT:				  [4,0,16,0]   (+%O'10')
;	  0509	    $overlay (LC_OQHD)
;	L 0510		LC_OQUE = [$address], 		! ...
; %PRINT:				  [3,0,16,0]   (+%O'6')
;	  0511	    $continue
;	  0512	
;	L 0513	    LC_NQHD = [$addresx], 		! Interrput queue head
; %PRINT:				  [5,0,16,0]   (+%O'12')
;	L 0514	    LC_NQTL = [$addresx], 		! Interrupt queue tail
; %PRINT:				  [6,0,16,0]   (+%O'14')
;	  0515	    $overlay (LC_NQHD)
;	L 0516		LC_NQUE = [$address], 		! ...
; %PRINT:				  [5,0,16,0]   (+%O'12')
;	  0517	    $continue
;	  0518	
;	L 0519	    LC_LUN = [$byte], 			! User's LUN
; %PRINT:				  [7,0,8,0]   (+%O'16')
;	L 0520	    LC_FLG = [$byte], 			! Processing flags
; %PRINT:				  [7,8,8,0]   (+%O'17')
;	  0521	    $overlay (LC_FLG)
;	L 0522		LCF_CLS = [$bit], 		!   Close initiated
; %PRINT:				  [7,8,1,0]   (+%O'17')
;	L 0523		LCF_NRES = [$bit],		!   Interrupt request resource needed
; %PRINT:				  [7,9,1,0]   (+%O'17')
;	L 0524		LCF_ARES = [$bit],		!   Abort verify resource needed
; %PRINT:				  [7,10,1,0]   (+%O'17')
;	L 0525		LCF_DSC = [$bit], 		!   Disconnect or abort initiated
; %PRINT:				  [7,11,1,0]   (+%O'17')
;	  0526	    $continue
;	L 0527	    LC_ULA = [$byte], 			! Our ULA
; %PRINT:				  [8,0,8,0]   (+%O'20')
;	L 0528	    LC_LLA = [$byte]			! Session Control LLA
; %PRINT:				  [8,8,8,0]   (+%O'21')
;	  0529	    tes;
;	  0530	
;	  0531	literal
;	L 0532	    LCB_SIZE = $field_set_size;
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  18
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (8)

; %PRINT:				  9 fullwords
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  19
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (9)

;	  0533	!+
;	  0534	! Mailbox Packet field definitions
;	  0535	!-
;	  0536	$field MBP_FIELDS =
;	  0537	    set
;	L 0538	    MB_LINK = [$addresx],		! Link to next MBP
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0539	    MB_CNT = [$short_integer],		! Data length
; %PRINT:				  [1,0,16,1]   (+%O'2')
;	L 0540	    MB_FNC = [$byte],			! Function code (see below)
; %PRINT:				  [2,0,8,0]   (+%O'4')
;	L 0541	    MB_FLG = [$byte],			! Processing flags
; %PRINT:				  [2,8,8,0]   (+%O'5')
;	  0542	    $overlay (MB_FLG)
;	L 0543		MBF_REQ = [$bit],		  ! Task request needed
; %PRINT:				  [2,8,1,0]   (+%O'5')
;	  0544	    $continue
;	L 0545	    MB_LLA = [$byte],			! Logical link address
; %PRINT:				  [3,0,8,0]   (+%O'6')
;	L 0546	    MB_ULA = [$byte],			! User link address
; %PRINT:				  [3,8,8,0]   (+%O'7')
;	L 0547	    MB_LUN = [$byte],			! User LUN
; %PRINT:				  [4,0,8,0]   (+%O'10')
;	L 0548	    MB_xxx = [$byte],			! Rsv'd
; %PRINT:				  [4,8,8,0]   (+%O'11')
;	L 0549	    MB_TIME = [$short_integer],		! Timer value, for connects
; %PRINT:				  [5,0,16,1]   (+%O'12')
;	L 0550	    MB_TASK = [$addresx],		! TCB address
; %PRINT:				  [6,0,16,0]   (+%O'14')
;	L 0551	    MB_TNB  = [$address],		! TNB address
; %PRINT:				  [7,0,16,0]   (+%O'16')
;	L 0552	    MB_DATA = [$sub_block (0)]		! Data starts here
; %PRINT:				  [8,0,0,0]   (+%O'20')
;	  0553	    tes;
;	  0554	
;	  0555	literal
;	L 0556	    MBP_SIZE = $field_set_size,		! Length of MBP, without data
; %PRINT:				  8 fullwords
;	  0557	
;	  0558	    ! Function codes
;	  0559	    MB$CNP = 0,				! Connect pending
;	  0560	    mb$lo = 1,				! Lowest code to process
;	  0561	    MB$CON = 1,				! Connect
;	  0562	    MB$INT = 2,				! Interrupt
;	  0563	    MB$DSC = 3,				! User disconnect received
;	  0564	    MB$ABT = 4,				! User abort received
;	  0565	    MB$ABO = 5,				! Network abort
;	  0566	    MB$MOP = 8,				! MOP message
;	  0567	    mb$hi = 8;				! Highest code to process
;	  0568	
;	  0569	
;	  0570	    ! IOP Function Codes
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  20
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (9)

;	  0571	literal
;	  0572	    IOP_DMO = 6,			! Dismount
;	  0573	    IOP_CLO = 7,			! Network close, from RSX
;	  0574	    iop_lo = 25,			! Lowest user-invokable command
;	  0575	    IOP_XMT = 25,			! Transmit data
;	  0576		IOP$DAT = 0,			  ! Normal data
;	  0577		IOP$INT = 8,			  ! Interrupt data
;	  0578	    IOP_RCV = 26,			! Receive data
;	  0579	    IOP_CON = 27,			! Connect processing
;	  0580		IOP$CON = 0,			  ! Connect
;	  0581		IOP$ACC = 8,			  ! Accept
;	  0582	    IOP_DSC = 28,			! Disconnect processing
;	  0583		IOP$DSC = 0,			  ! Disconnect
;	  0584		IOP$ABO = 8,			  ! Abort
;	  0585		IOP$REJ = 16,			  ! Reject
;	  0586	    IOP_CTL = 29,			! Control
;	  0587		IOP$OPN = 0,			  ! Open
;	  0588		IOP$CLO = IOP$OPN,		  ! System close (OPN code reused)
;	  0589		IOP$CLS = 8,			  ! Close
;	  0590		IOP$SPA = 16,			  ! Specify AST
;	  0591		IOP$GND1 = 24,			  ! Get network data (normal)
;	  0592		IOP$GND2 = 32,			  ! Get network data (masked, l & t)
;	  0593		IOP$GND3 = 40,			  ! Get network data (masked)
;	  0594		IOP$GLN = 56,			  ! Get local node information
;	  0595	    iop_hi = 29;			! Highest user-invokable command
;	  0596	
;	  0597	
;	  0598	!+
;	  0599	! RSX field definitions, and such
;	  0600	!-
;	  0601	$field USR_BUFF =
;	  0602	    set
;	L 0603	    USR_ADDR = [$pointer],
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0604	    USR_SIZE = [$pointer]
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	  0605	    tes;
;	  0606	
;	  0607	$field SYS_BUFF =
;	  0608	    set
;	L 0609	    SYS_BIAS = [$pointer],
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0610	    SYS_ADDR = [$pointer],
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	L 0611	    SYS_SIZE = [$pointer]
; %PRINT:				  [2,0,16,0]   (+%O'4')
;	  0612	    tes;
;	  0613	
;	  0614	
;	  0615	!+
;	  0616	! Field mapping for queue header
;	  0617	!-
								25-Jan-1983 10:16:41	TOPS-20 Bliss-16 2A(530)	    Page  21
								30-Dec-1982 20:55:51	NETPKG:<SC>SCPRM.REQ.9 (9)

;	  0618	$field QHD_FIELDS =
;	  0619	    set
;	L 0620	    Q_HEAD = [$addresx],
; %PRINT:				  [0,0,16,0]   (+%O'0')
;	L 0621	    Q_TAIL = [$addresx]
; %PRINT:				  [1,0,16,0]   (+%O'2')
;	  0622	    tes;
;	  0623	
;	  0624	
;	  0625	!+
;	  0626	! Field mapping for one word of bytes
;	  0627	!-
;	  0628	$field
;	L 0629	    LO_BYTE = [$byte],
; %PRINT:				  [0,0,8,0]   (+%O'0')
;	L 0630	    HI_BYTE = [$byte];
; %PRINT:				  [0,8,8,0]   (+%O'1')
;	  0631	
;	  0632	literal
;	  0633		DSR_CONNECT_BLOCK_SIZE = 110;
;	  0634	
;	  0635	!++
;	  0636	!	*** End of SCPRM ***
;	  0637	!--




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  NETPKG:<MCB>XPORTX.L16.15		       599        38         6         0
;  NETPKG:<MCB>MCBLIB.L16.15		       372        31         8         0





; Run Time:	00:18.7
; Elapsed Time:	01:09.3
; Memory Used:	25 pages
; Library Precompilation Complete