Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/mcb/mcblib.lst
There are no other files named mcblib.lst in the archive.
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page   1
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (1)

;	  0001	! [Beginning of MCBLIB]
;	  0002	!
;	  0003	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0004	!                    DIGITAL EQUIPMENT CORPORATION
;	  0005	!                        Maynard, Massachusetts
;	  0006	!
;	  0007	!     This software is furnished under a license and may  be  used
;	  0008	!     and copied only in accordance with the terms of such license
;	  0009	!     and with the inclusion of the above copyright notice.   This
;	  0010	!     software  or any other copies thereof may not be provided or
;	  0011	!     otherwise made available to any other person.  No  title  to
;	  0012	!     and ownership of the software is hereby transferred.
;	  0013	!
;	  0014	!     The information  in  this  software  is  subject  to  change
;	  0015	!     without  notice  and should not be construed as a commitment
;	  0016	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0017	!
;	  0018	!     DIGITAL assumes no responsibility for the use or reliability
;	  0019	!     of  its  software  on  equipment  which  is  not supplied by
;	  0020	!     DIGITAL.
;	  0021	!
;	  0022	
;	  0023	!++
;	  0024	! FACILITY: MCB User's Library
;	  0025	!
;	  0026	! ABSTRACT:
;	  0027	!
;	  0028	!	This file contains the macros and structure definitions
;	  0029	!	necessary to a process for operation within MCB.
;	  0030	!
;	  0031	! ENVIRONMENT:
;	  0032	!
;	  0033	! AUTHOR: Alan D. Peckham, CREATION DATE: 13-March-1980
;	  0034	!
;	  0035	! MODIFIED BY:
;	  0036	!
;	  0037	! 	, : VERSION
;	  0038	! 01	- 
;	  0039	! 03	- Use status definition macro from MCBSTS.
;	  0040	! 04	- Change PHDR$ macro to use OWN psect instead of PLIT.
;	  0041	! 05	- Correct RSX_UCB_SCB_IOP linkage.
;	  0042	! 06	- Add $MCB_EXCEPTION
;	  0043	! 07	- Begin MCB V3.2 changeover.
;	  0044	! 08	- Fix LINKAGE MCB_INTERRUPT to preserve register 0.
;	  0045	! 09	- Fix all linkages to routines which do not affect register 0.
;	  0046	!	  CEX auxilliary routines called through CALL$C.
;	  0047	! 10	- Registers not saved in EXRQN$.
;	  0048	! 11	- Add CE_UDR (transmitter underrun).
;	  0049	! 12	- Change CALL$C to CALL$I.
;	  0050	! 13	- Add synonyms and make some values global.
;	  0051	! 14	- Add interrupt inhibit/enable and table lookup services.
;	  0052	! 15	- Fix $RSX_GET_TCB to check for no task situation.
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page   2
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (1)

;	  0053	! 18	- Fix CALL$L to declare routine name if not already declared.
;	  0054	!--
;	  0055	
;	  0056	literal
;	  0057	    MCB$K_VERSION = 3,
;	  0058	    MCB$K_LEVEL = 2,			! Updated on each data structure change
;	  0059	    MCB$K_EDIT = 18;			! Updated on each edit
;	  0060	
;	  0061	%if %bliss (bliss16) %then
;	  0062	literal
;	  0063	    LIB$V0 = %rad50_11 '032',
;	  0064	    LIB$V1 = %rad50_11 '180';
;	  0065	%fi
;	  0066	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page   3
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  0067	!
;	  0068	! Synonyms
;	  0069	!
;	  0070	
;	  0071	macro
;	  0072	    MCB$K_SET_EXCEPTION = %name ('E.XVST') %,
;	  0073	    MCB$K_SET_PROCESS = %name ('P.DTST') %,
;	  0074	    MCB$K_CLEAR_PROCESS = %name ('P.DTCL') %,
;	  0075	    MCB$K_GET_PROCESS_INDEX = %name ('P.DTGT') %,
;	  0076	    MCB$K_GET_PROCESS_NAME = %name ('P.NMGT') %,
;	  0077	    MCB$K_SET_PROCESS_NAME = %name ('P.NMST') %,
;	  0078	    MCB$K_CLEAR_PROCESS_NAME = %name ('P.NMCL') %,
;	  0079	    MCB$K_SET_VECTOR = %name ('V.ECST') %,
;	  0080	    MCB$K_CLEAR_VECTOR = %name ('V.ECCL') %,
;	  0081	    MCB$K_GET_LINE_NAME = %name ('S.NMGT') %,
;	  0082	    MCB$K_SET_LINE_PROCESSES = %name ('S.LTST') %,
;	  0083	    MCB$K_GET_LINE_PROCESSES = %name ('S.LTGT') %,
;	  0084	    MCB$K_GET_DEVICE_NAME = %name ('D.NMGT') %;
;	  0085	
;	  0086	!
;	  0087	! Signal handling
;	  0088	!
;	  0089	
;	  0090	field
;	  0091	    CONDIT_FIELDS =
;	  0092		set
;	  0093		STS$V_SEVERITY	= [0, 0, 3, 0],		! Severity field
;	  0094		STS$V_SUCCESS	= [0, 0, 1, 0],		! Success field
;	  0095		STS$V_COND_ID	= [0, 3, 13, 0],	! Identity field
;	  0096		STS$V_CUST_DEF	= [0, 15, 1, 0]		! Customer definition field
;	  0097		tes;
;	  0098	
;	  0099	macro
;	  0100	    CONDITION_VALUE = block [1] field (CONDIT_FIELDS) %;
;	  0101	
;	  0102	literal
;	  0103	    STS$K_SUCCESS	= 1,			! Success
;	  0104	    STS$K_INFO		= 3,			! Information
;	  0105	    STS$K_WARNING	= 0,			! Warning
;	  0106	    STS$K_ERROR		= 2,			! Error
;	  0107	    STS$K_SEVERE	= 4;			! Severe error
;	  0108	
;	  0109	keywordmacro
;	  0110	    STS$VALUE (
;	  0111		SEVERITY = STS$K_SEVERE,		! default is severe error
;	  0112		CODE,					! no default
;	M 0113		CUST_DEF = 1^15 ) =			! default is user definition
;	M 0114		    (SEVERITY and 7) or
;	M 0115		    (CODE and %o'17777')^3 or
;	M 0116		    (if CUST_DEF neq 0
;	M 0117			then 1^15
;	  0118			else 0) %;
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page   4
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  0119	
;	  0120	macro
;	M 0121	    STS$MATCH (A, B) =
;	  0122		(((A) and %o'177770') eql ((B) and %o'177770')) %;
;	  0123	
;	  0124	!
;	  0125	! MCB Completion Code Definitions
;	  0126	!
;	  0127	
;	  0128	REQUIRE 'MCB:MCBSTS';
;	  0290	
;	  0291	macro
;	M 0292	    $MCB$CODES [CODE_SET] =
;	  0293		$MCB$CODE (%remove (CODE_SET)) %,
;	M 0294	    $MCB$CODE (NAM, LVL, COD, TXT) [] =
;	  0295		NAM = STS$VALUE (SEVERITY = LVL, CODE = COD, CUST_DEF = 0) %;
;	  0296	
;	  0297	literal
;	  0298	    $MCB$CODES ($MCB_STATUS, $RSX_STATUS);
;	  0299	
;	  0300	literal
;	  0301	    $MCB$CODE (MCB$K_STATUS_MAX, 7, $MCB$NEXT_CODE - 1, 'Highest MCB status'),
;	  0302	    $MCB$CODE (RSX$K_STATUS_MAX, 7, $RSX$NEXT_CODE - 1, 'Highest RSX status');
;	  0303	
;	  0304	undeclare
;	  0305	    %quote $MCB$CODES,
;	  0306	    %quote $MCB$CODE;
;	  0307	
;	L 0308	%IF %BLISS (BLISS16)
;	  0309	%THEN %(BLISS16)%
;	  0310	
;	  0311	MACRO
;	M 0312	    DECLARE_SEVERITY (prefix) [level] =
;	M 0313		%IF NOT %DECLARED (%NAME ('$', prefix, '$cond_code'))
;	M 0314		%THEN
;	M 0315		    COMPILETIME %NAME ('$', prefix, '$cond_code') = 0;
;	M 0316		%ELSE
;	M 0317		    %ASSIGN (%NAME ('$', prefix, '$cond_code'), 0)
;	M 0318		%FI
;	M 0319		MACRO
;	M 0320		    %NAME ('$', prefix, '_', level) (code_name, optional_text) =
;	M 0321			LITERAL	code_name =
;	M 0322			    STS$VALUE (
;	M 0323				CODE = %NAME ('$', prefix, '$cond_code'),
;	M 0324				SEVERITY = %NAME ('STS$K_', level),
;	M 0325				CUST_DEF = 1);
;	M 0326			%ASSIGN (%NAME ('$', prefix, '$cond_code'), %NAME ('$', prefix, '$cond_code') + 1 )
;	  0327		    %QUOTE % %;
;	  0328	
;	  0329	%FI %(BLISS16)%
;	  0330	
;	  0331	!
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page   5
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  0332	! Linkages
;	  0333	!
;	  0334	
;	L 0335	%IF %BLISS (BLISS16)
;	  0336	%THEN %(BLISS16)%
;	  0337	
;	  0338	LINKAGE
;	  0339	
;	  0340	    !
;	  0341	    ! Routine invoked through synchronous calls
;	  0342	    !
;	  0343	
;	  0344	    CALL$ = CALL;
;	  0345	
;	  0346	%FI %(BLISS16)%
;	  0347	
;	  0348	!
;	  0349	! Synchronous calls
;	  0350	!
;	  0351	
;	L 0352	%IF %BLISS (BLISS16)
;	  0353	%THEN %(BLISS16)%
;	  0354	
;	  0355	macro
;	  0356	
;	  0357	    !
;	  0358	    ! Invoke old BLISS synchronous routine in extension process
;	  0359	    !
;	  0360	
;	M 0361	    CALL$B (ARG) =
;	M 0362		%inform ('Now using CALL$E for extension process calling...')
;	  0363		%quote CALL$E (ARG, %remaining) %,
;	  0364	
;	  0365	    !
;	  0366	    ! Invoke synchronous routine in the CEX process
;	  0367	    !
;	  0368	
;	M 0369	    CALL$I (INDEX) =
;	M 0370		begin
;	M 0371	
;	M 0372		external literal
;	M 0373		    INDEX;
;	M 0374	
;	M 0375		external routine
;	M 0376		    $CALLI;
;	M 0377	
;	M 0378		%if %null (%remaining)
;	M 0379		%then
;	M 0380		    $CALLI ($MCB$REVERSE (INDEX, 0))
;	M 0381		%else
;	M 0382		    $CALLI ($MCB$REVERSE (INDEX, %length - 1, %remaining))
;	M 0383		%fi
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page   6
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 0384	
;	  0385		end %,
;	  0386	
;	  0387	    !
;	  0388	    ! Invoke synchronous routine in extension process
;	  0389	    !
;	  0390	
;	M 0391	    CALL$E (ADR, PIX) =
;	M 0392		begin
;	M 0393	
;	M 0394		external routine
;	M 0395		    %if not %declared (ADR) %then ADR, %fi
;	M 0396		    $CALLE;
;	M 0397	
;	M 0398		%if %null (%remaining)
;	M 0399		%then
;	M 0400		    $CALLE ($MCB$REVERSE (PIX, ADR, 0))
;	M 0401		%else
;	M 0402		    $CALLE ($MCB$REVERSE (PIX, ADR, %length - 2, %remaining))
;	M 0403		%fi
;	M 0404	
;	  0405		end %,
;	  0406	
;	  0407	    !
;	  0408	    ! Invoke synchronous routine in local process
;	  0409	    !
;	  0410	
;	M 0411	    CALL$L (ADR) =
;	M 0412		begin
;	M 0413		%if not %declared (ADR) %then external routine ADR; %fi
;	M 0414		fortran (ADR, %remaining)
;	  0415		end %,
;	  0416	
;	  0417	    !
;	  0418	    ! Invoke synchronous routine in other process
;	  0419	    !
;	  0420	
;	M 0421	    CALL$P (ADR, PIX) =
;	M 0422		begin
;	M 0423	
;	M 0424		external routine
;	M 0425		    %if not %declared (ADR) %then ADR, %fi
;	M 0426		    $CALLP;
;	M 0427	
;	M 0428		%if %null (%remaining)
;	M 0429		%then
;	M 0430		    $CALLP ($MCB$REVERSE (PIX, ADR, 0))
;	M 0431		%else
;	M 0432		    $CALLP ($MCB$REVERSE (PIX, ADR, %length - 2, %remaining))
;	M 0433		%fi
;	M 0434	
;	  0435		end %,
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page   7
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 0436	    $MCB$REVERSE (ARG) [] =
;	M 0437		    %if not %null (%remaining) %then $MCB$REVERSE (%remaining), %fi
;	  0438		    ARG %;
;	  0439	;
;	  0440	
;	  0441	%FI %(BLISS16)%
;	  0442	
;	  0443	!
;	  0444	! Buffer move calls
;	  0445	!
;	  0446	
;	L 0447	%IF %BLISS (BLISS16)
;	  0448	%THEN %(BLISS16)%
;	  0449	
;	  0450	MACRO
;	  0451	
;	  0452	    !
;	  0453	    ! Move from mapped buffer
;	  0454	    !
;	  0455	
;	L 0456	%if %variant eql 0
;	  0457	%then
;	  0458	
;	M 0459	    MFBF$S (lng, from_bias, from_adr, begin_adr, end_adr) =
;	M 0460		BEGIN
;	M 0461	
;	M 0462		LINKAGE
;	M 0463		    MV_LINKAGE = JSR (STANDARD, STANDARD, REGISTER = 2, REGISTER = 3)
;	M 0464			: preserve (0) nopreserve (2, 3);
;	M 0465	
;	M 0466		EXTERNAL ROUTINE
;	M 0467		    $MVFBF : MV_LINKAGE NOVALUE;
;	M 0468	
;	M 0469		%IF NOT %NULL (end_adr) %THEN GLOBAL REGISTER R2 = 2; %FI
;	M 0470	
;	M 0471		$MVFBF (from_bias, from_adr, begin_adr, lng)
;	M 0472	
;	M 0473		%IF NOT %NULL (end_adr) %THEN ; end_adr = .R2 %FI
;	M 0474	
;	  0475		END %,
;	  0476	
;	U 0477	%else
;	U 0478	
;	U 0479	    MFBF$S (lng, from_bias, from_adr, begin_adr, end_adr) =
;	U 0480		BEGIN
;	U 0481	
;	U 0482		LINKAGE
;	U 0483		    MV_LINKAGE = JSR (STANDARD, STANDARD, REGISTER = 2, REGISTER = 3; REGISTER = 2)
;	U 0484			: preserve (0) nopreserve (2, 3);
;	U 0485	
;	U 0486		EXTERNAL ROUTINE
;	U 0487		    $MVFBF : MV_LINKAGE NOVALUE;
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page   8
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 0488	
;	U 0489		$MVFBF (from_bias, from_adr, begin_adr, lng; end_adr)
;	U 0490		END %,
;	U 0491	
;	  0492	%fi
;	  0493	
;	  0494	    !
;	  0495	    ! Move to mapped buffer
;	  0496	    !
;	  0497	
;	L 0498	%if %variant eql 0
;	  0499	%then
;	  0500	
;	M 0501	    MTBF$S (lng, begin_adr, to_bias, to_adr, end_adr) =
;	M 0502		BEGIN
;	M 0503	
;	M 0504		LINKAGE
;	M 0505		    MV_LINKAGE = JSR (STANDARD, STANDARD, REGISTER = 2, REGISTER = 3)
;	M 0506			: preserve (0) nopreserve (2, 3);
;	M 0507	
;	M 0508		EXTERNAL ROUTINE
;	M 0509		    $MVTBF : MV_LINKAGE NOVALUE;
;	M 0510	
;	M 0511		%IF NOT %NULL (end_adr) %THEN GLOBAL REGISTER R2 = 2; %FI
;	M 0512	
;	M 0513		$MVTBF (to_bias, to_adr, begin_adr, lng)
;	M 0514	
;	M 0515		%IF NOT %NULL (end_adr) %THEN ; end_adr = .R2 %FI
;	M 0516	
;	  0517		END %,
;	  0518	
;	U 0519	%else
;	U 0520	
;	U 0521	    MTBF$S (lng, begin_adr, to_bias, to_adr, end_adr) =
;	U 0522		BEGIN
;	U 0523	
;	U 0524		LINKAGE
;	U 0525		    MV_LINKAGE = JSR (STANDARD, STANDARD, REGISTER = 2, REGISTER = 3; REGISTER = 2)
;	U 0526			: preserve (0) nopreserve (3);
;	U 0527	
;	U 0528		EXTERNAL ROUTINE
;	U 0529		    $MVTBF : MV_LINKAGE NOVALUE;
;	U 0530	
;	U 0531		$MVTBF (to_bias, to_adr, begin_adr, lng; end_adr)
;	U 0532		END %,
;	U 0533	
;	  0534	%fi
;	  0535	
;	  0536		!
;	  0537		! Map a buffer
;	  0538		!
;	  0539	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page   9
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 0540		MAP$ (bias) =
;	M 0541		    BEGIN
;	M 0542	
;	M 0543		    EXTERNAL
;	M 0544			KISAR6 : volatile;
;	M 0545	
;	M 0546		    KISAR6 = bias
;	  0547		    END %,
;	  0548	
;	  0549		!
;	  0550		! Return the current mapping bias
;	  0551		!
;	  0552	
;	M 0553		SMAP$ (var) =
;	M 0554		    BEGIN
;	M 0555	
;	M 0556		    EXTERNAL
;	M 0557			KISAR6 : volatile;
;	M 0558	
;	M 0559		    var = .KISAR6
;	  0560		    END %;
;	  0561	
;	  0562	%FI %(BLISS16)%
;	  0563	
;	  0564	!
;	  0565	! Create a process header
;	  0566	!
;	  0567	
;	L 0568	%IF %BLISS (BLISS16)
;	  0569	%THEN %(BLISS16)%
;	  0570	
;	  0571	macro
;	M 0572	    PHDR$ (NAM, LLC, DLC, DDM, INT1, INT2, INT3) =
;	  0573		%inform ('Please use the $MCB_PROCESS macro') %;
;	  0574	
;	  0575	keywordmacro
;	  0576	    $MCB_PROCESS (
;	  0577		CEX_DISPATCH = 0,
;	  0578		DDM_DISPATCH = %name ('.DSPCR'),
;	  0579		DLC_DISPATCH = %name ('.DSPCR'),
;	  0580		LLC_DISPATCH = %name ('.DSPCR'),
;	  0581		NAME,
;	  0582		RSX_DISPATCH = 0,
;	M 0583		SIGNAL_HANDLER = 0) =
;	M 0584	
;	M 0585		%if %null (NAME)
;	M 0586		%then %errormacro ('Process name not supplied')
;	M 0587		%fi
;	M 0588	
;	M 0589		%if not %identical (CEX_DISPATCH, 0) and not %identical (NAME, CEX)
;	M 0590		%then %errormacro ('CEX_DISPATCH only to be used by CEX process')
;	M 0591		%fi
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  10
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 0592	
;	M 0593		psect
;	M 0594		    own = %name ('      ');
;	M 0595	
;	M 0596		external
;	M 0597		    %if %identical (LLC_DISPATCH, %name ('.DSPCR'))
;	M 0598		     or %identical (DLC_DISPATCH, %name ('.DSPCR'))
;	M 0599		     or %identical (DDM_DISPATCH, %name ('.DSPCR'))
;	M 0600		    %then
;	M 0601			%name ('.DSPCR'),
;	M 0602		    %fi
;	M 0603		    MCB$V0, MCB$V1;
;	M 0604	
;	M 0605		own
;	M 0606		    HEADER : vector [16] initial (
;	M 0607			%rad50_11 %string (NAME), 3 + 1^8, 0, 0,
;	M 0608			SIGNAL_HANDLER,	LLC_DISPATCH, DLC_DISPATCH, DDM_DISPATCH,
;	M 0609			MCB$V0, MCB$V1, LIB$V0, LIB$V1,
;	M 0610			1^8 + 1^9, RSX_DISPATCH, CEX_DISPATCH, 0);
;	M 0611	
;	M 0612		undeclare
;	M 0613		    HEADER;
;	M 0614	
;	M 0615		psect
;	  0616		    own = $OWN$; %;
;	  0617	
;	  0618	%FI %(BLISS16)%
;	  0619	
;	  0620	!
;	  0621	! Create a RSX driver header
;	  0622	!
;	  0623	
;	L 0624	%if %bliss (bliss16)
;	  0625	%then %(BLISS16)%
;	  0626	
;	  0627	keywordmacro
;	  0628	    $RSX_DRIVER (
;	  0629		DISPATCH,
;	M 0630		NAME) =
;	M 0631	
;	M 0632		%if %null (NAME)
;	M 0633		%then %errormacro ('Driver name not supplied')
;	M 0634		%fi
;	M 0635	
;	M 0636		global bind
;	  0637		    %name ('$', NAME, 'TBL') = DISPATCH; %;
;	  0638	
;	  0639	%fi %(bliss16)%
;	  0640	
;	  0641	!
;	  0642	! CCB definitions
;	  0643	!
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  11
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  0644	
;	  0645	FIELD
;	  0646	    C_fields =
;	  0647		SET
;	  0648		C_LNK = [0, 0, 16, 0],
;	  0649		C_CHN = [1, 0, 16, 0],
;	  0650		C_STK = [2, 0, 16, 0],
;	  0651		C_OWN = [3, 0, 8, 0],
;	  0652		C_LIX = [4, 0, 8, 0],
;	  0653		C_LIN = [4, 0, 8, 0],
;	  0654		C_PIX = [4, 8, 8, 0],
;	  0655		C_FNC = [5, 0, 8, 0],
;	  0656		C_MOD = [5, 8, 8, 0],
;	  0657		C_STS = [6, 0, 16, 1],
;	  0658		C_BUF = [7, 0, 16, 0],
;	  0659		    C_BIAS = [7, 0, 16, 0],
;	  0660		    C_ADDR = [8, 0, 16, 0],
;	  0661		C_CNT = [9, 0, 16, 0],
;	  0662		C_PRM = [10, 0, 16, 0],
;	  0663		    C_PRM1 = [10, 0, 16, 0],
;	  0664		    C_PRM2 = [11, 0, 16, 0],
;	  0665		    C_PRM3 = [12, 0, 16, 0],
;	  0666		    C_PRM4 = [13, 0, 16, 0],
;	  0667		    C_PRM5 = [14, 0, 16, 0]
;	  0668		TES;
;	  0669	
;	  0670	LITERAL
;	  0671	    FC_AST = 0*2,
;	  0672	    FC_XME = 1*2,
;	  0673	    FC_RCE = 2*2,
;	  0674	    FC_KIL = 3*2,
;	  0675	    FC_CTL = 4*2,
;	  0676	    FC_TIM = 5*2,
;	  0677	    FC_XCP = 6*2,
;	  0678	    FC_RCP = 7*2,
;	  0679	    FC_KCP = 8*2,
;	  0680	    FC_CCP = 9*2,
;	  0681	    FC_SYS = FC_TIM;
;	  0682	
;	  0683	LITERAL
;	  0684	    FD_AST = 0*2,
;	  0685	
;	  0686	    FD_XME = 0*2,
;	  0687	
;	  0688	    FM_DAT = 0*2,
;	  0689	    FM_RTN = 1*2,
;	  0690	    FD_RCE = 2*2,
;	  0691	
;	  0692	    FM_KIL = 0*2,
;	  0693	    FM_CRA = 1*2,
;	  0694	    FM_XKL = 2*2,
;	  0695	    FD_KIL = 2*2,
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  12
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  0696	
;	  0697	    FM_STR = 1*2,
;	  0698	    FM_STP = 2*2,
;	  0699	    FM_NM  = 3*2,
;	  0700	    FM_SET = 5*2,
;	  0701	    FM_GET = 6*2,
;	  0702	    FD_CTL = 6*2,
;	  0703	
;	  0704	    FM_STM = 0*2,
;	  0705	    FM_LTM = 1*2,
;	  0706	    FD_TIM = 5*2,
;	  0707	
;	  0708	    FD_XCP = FD_XME,
;	  0709	
;	  0710	    FM_SYN = 2*2,
;	  0711	    FD_RCP = FD_RCE,
;	  0712	
;	  0713	    FD_KCP = FD_KIL,
;	  0714	
;	  0715	    FD_CCP = FD_CTL,
;	  0716	
;	  0717	    FM_PWF = 2*2,
;	  0718	    FM_PIN = 3*2,
;	  0719	    FM_CCB = 4*2,
;	  0720	    FM_RDB = 5*2,
;	  0721	    FD_SYS = FD_TIM;
;	  0722	
;	  0723	literal
;	  0724	    CS_SUC = 0^3 + 1,		! Success
;	  0725	
;	  0726	    CE_ABO = -1^3 + 0,		! Operation aborted
;	  0727	    CE_ERR = -2^3 + 0,		! General error
;	  0728	    CE_MOP = -3^3 + 0,		! MOP message received
;	  0729	    CE_SRC = -4^3 + 0,		! Start received
;	  0730	    CE_RTE = -5^3 + 0,		! Receive error threshold
;	  0731	    CE_NTE = -6^3 + 0,		! NAK error threshold
;	  0732	    CE_TMO = -7^3 + 0,		! REP threshold error
;	  0733	
;	  0734	    CE_BUF = -16^3 + 0,		! Buffer allocation failure
;	  0735	    CE_DCR = -17^3 + 0,		! Data CRC error
;	  0736	    CE_HFE = -18^3 + 0,		! Header format error
;	  0737	    CE_MTL = -19^3 + 0,		! Message too long
;	  0738	    CE_ROV = -20^3 + 0,		! Receiver overrun
;	  0739	    CE_DEV = -21^3 + 2,		! Hard device error
;	  0740	    CE_DIS = -22^3 + 0,		! Disconnect detected
;	  0741	    CE_UDR = -23^3 + 0;		! Transmitter underrun
;	  0742	
;	  0743	!
;	  0744	! Timer block definitions
;	  0745	!
;	  0746	
;	  0747	FIELD
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  13
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  0748	    T_fields =
;	  0749		SET
;	  0750		T_PIX = [1, 8, 8, 0],
;	  0751		T_IDN = [2, 0, 16, 0],
;	  0752		T_TIM = [7, 0, 16, 0]
;	  0753		TES;
;	  0754	
;	  0755	literal
;	  0756	    T_LENGTH = 9;
;	  0757	
;	  0758	!
;	  0759	! MCB interface linkages and macros
;	  0760	!
;	  0761	
;	L 0762	%IF %BLISS (BLISS16)
;	  0763	%THEN %(BLISS16)%
;	  0764	
;	  0765	LINKAGE
;	  0766	    RSX_UCB = JSR (REGISTER = 5) : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0767	    RSX_UCB_SCB_IOP = JSR (REGISTER = 5, REGISTER = 4, REGISTER = 1) : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0768	    MCB_ = JSR : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0769	    MCB_CCB = JSR (REGISTER = 4) : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0770	    MCB_CCB_MOD = JSR (REGISTER = 4, REGISTER = 3) : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0771	    MCB_DB = JSR (REGISTER = 5) : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0772	    MCB_DB_CCB = JSR (REGISTER = 5, REGISTER = 4) : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0773	    MCB_DB_CCB_MOD = JSR (REGISTER = 5, REGISTER = 4, REGISTER = 3) : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0774	    MCB_DB_MOD = JSR (REGISTER = 5, REGISTER = 3) : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0775	    MCB_INTERRUPT = JSR (REGISTER = 5) : PRESERVE (0, 1, 2, 3) NOPRESERVE (4, 5),
;	  0776	    MCB_MOD = JSR (REGISTER = 3) : NOPRESERVE (0, 1, 2, 3, 4, 5),
;	  0777	    LINKAGE_CCB = JSR (REGISTER = 4),
;	  0778	    LINKAGE_CCB_MOD = JSR (REGISTER = 4, REGISTER = 3),
;	  0779	    LINKAGE_DB = JSR (REGISTER = 5),
;	  0780	    LINKAGE_DB_CCB = JSR (REGISTER = 5, REGISTER = 4),
;	  0781	    LINKAGE_DB_CCB_MOD = JSR (REGISTER = 5, REGISTER = 4, REGISTER = 3),
;	  0782	    LINKAGE_DB_MOD = JSR (REGISTER = 5, REGISTER = 3),
;	  0783	    LINKAGE_MOD = JSR (REGISTER = 3);
;	  0784	
;	  0785	%FI %(BLISS16)%
;	  0786	
;	L 0787	%IF %BLISS (BLISS16)
;	  0788	%THEN %(BLISS16)%
;	  0789	
;	  0790	MACRO
;	  0791	
;	  0792	    !
;	  0793	    ! Dispatch from a MCB dispatch sub-table
;	  0794	    !
;	  0795	
;	M 0796	    DISPATCH$ (idx, disp, args, lnkg) =
;	M 0797		%IF %NULL (lnkg) %THEN BLISS %ELSE lnkg %FI
;	  0798		    (.(disp + idx), %REMOVE (args)) %,
;	  0799	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  14
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  0800	    !
;	  0801	    ! Create a dispatch table
;	  0802	    !
;	  0803	
;	M 0804	    TABLE$ (default, top) =
;	  0805		UPLIT ($MCB$TABLE_A (0, default, MAX (top, $MCB$TABLE_M (%REMAINING)), %REMAINING)) %,
;	M 0806	    $MCB$TABLE_A (offset, default, maximum_offset) [] =
;	M 0807		$MCB$TABLE_C (offset, default, %REMAINING)
;	M 0808		%IF offset LSS maximum_offset
;	M 0809		%THEN , $MCB$TABLE_A (offset + 2, default, maximum_offset, %REMAINING)
;	  0810		%FI %,
;	M 0811	    $MCB$TABLE_C (offset, default, entry) [] =
;	M 0812		%IF offset EQL $MCB$TABLE_offset (%REMOVE (entry))
;	M 0813		%THEN
;	M 0814		    %IF %NULL ($MCB$TABLE_address (%REMOVE (entry)))
;	M 0815		    %THEN default
;	M 0816		    %ELSE $MCB$TABLE_address (%REMOVE (entry))
;	M 0817		    %FI
;	M 0818		%ELSE
;	M 0819		    %IF NOT %NULL (%REMAINING)
;	M 0820		    %THEN $MCB$TABLE_C (offset, default, %REMAINING)
;	M 0821		    %ELSE default
;	M 0822		    %FI
;	  0823		%FI%,
;	M 0824	    $MCB$TABLE_M [entry] =
;	  0825		$MCB$TABLE_offset (%REMOVE (entry)) %,
;	M 0826	    $MCB$TABLE_offset (offset, address) =
;	  0827		offset %,
;	M 0828	    $MCB$TABLE_address (offset, address) =
;	  0829		address %,
;	  0830	
;	  0831	    !
;	  0832	    ! Create a vector
;	  0833	    !
;	  0834	
;	M 0835	    VECTOR$ (default, top) =
;	  0836		UPLIT ($MCB$VECTOR_A (0, default, MAX (top, $MCB$TABLE_M (%REMAINING)), %REMAINING)) %,
;	M 0837	    $MCB$VECTOR_A (offset, default, maximum_offset) [] =
;	M 0838		$MCB$TABLE_C (offset, default, %REMAINING)
;	M 0839		%IF offset LSS maximum_offset
;	M 0840		%THEN , $MCB$VECTOR_A (offset + 1, default, maximum_offset, %REMAINING)
;	  0841		%FI %;
;	  0842	
;	  0843	%FI %(BLISS16)%
;	  0844	
;	L 0845	%IF %BLISS (BLISS16)
;	  0846	%THEN %(BLISS16)%
;	  0847	
;	  0848	MACRO
;	  0849	
;	  0850	    CCBGT$ = $MCB_GET_CCB %,
;	  0851	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  15
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  0852	    CCBRT$ = $MCB_RETURN_CCB %,
;	  0853	
;	  0854	    CMQIF$ = $MCB_STACK_CCB %,
;	  0855	
;	  0856	    CMQIN$ = $MCB_QUEUE_CCB %,
;	  0857	
;	  0858	    CMQRM$ = $MCB_DEQUEUE_CCB %,
;	  0859	
;	  0860	    CNSTM$ = $MCB_CANCEL_SHORT_TIMER %,
;	  0861	
;	M 0862	    CNV22$ (BIAS, ADDRESS, LOW, HIGH) =
;	  0863		$MCB_CONVERT_TO_22_BIT_ADDRESS ((BIAS, ADDRESS), LOW, HIGH) %,
;	  0864	
;	  0865	    !
;	  0866	    !
;	  0867	    !
;	  0868	
;	M 0869	    DDAST$ (index, status) =
;	M 0870		BEGIN
;	M 0871	
;	M 0872		LINKAGE
;	M 0873		    DDAST_LINKAGE = JSR (REGISTER = 3, REGISTER = 2) : PRESERVE (0) NOPRESERVE (3, 4) CLEARSTACK VALUECBIT;
;	M 0874	
;	M 0875		EXTERNAL ROUTINE
;	M 0876		    $DDAST : DDAST_LINKAGE;
;	M 0877	
;	M 0878		! Note: Cbit clear = FALSE = success
;	M 0879	
;	M 0880		IF NOT $DDAST (status, index)
;	M 0881		THEN
;	M 0882		    MCB$_NORMAL
;	M 0883		ELSE
;	M 0884		    MCB$_NO_CCB
;	M 0885	
;	  0886		END %,
;	  0887	
;	  0888	    !
;	  0889	    !
;	  0890	    !
;	  0891	
;	M 0892	    DDCCP$ (ccb, status) =
;	M 0893		BEGIN
;	M 0894	
;	M 0895		LINKAGE
;	M 0896		    DDCCP_LINKAGE = JSR (REGISTER = 4, REGISTER = 3) : PRESERVE (0) NOPRESERVE (3, 4);
;	M 0897	
;	M 0898		EXTERNAL ROUTINE
;	M 0899		    $DDCCP : DDCCP_LINKAGE NOVALUE;
;	M 0900	
;	M 0901		$DDCCP (ccb, status);
;	  0902		END %,
;	  0903	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  16
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  0904	    !
;	  0905	    !
;	  0906	    !
;	  0907	
;	M 0908	    DDKCP$ (ccb, status) =
;	M 0909		BEGIN
;	M 0910	
;	M 0911		LINKAGE
;	M 0912		    DDKCP_LINKAGE = JSR (REGISTER = 4, REGISTER = 3) : PRESERVE (0) NOPRESERVE (3, 4);
;	M 0913	
;	M 0914		EXTERNAL ROUTINE
;	M 0915		    $DDKCP : DDKCP_LINKAGE NOVALUE;
;	M 0916	
;	M 0917		$DDKCP (ccb, status);
;	  0918		END %,
;	  0919	
;	  0920	    !
;	  0921	    !
;	  0922	    !
;	  0923	
;	L 0924	%if %variant eql 0
;	  0925	%then
;	  0926	
;	M 0927	    DDMDB$ (index, db) =
;	M 0928		BEGIN
;	M 0929	
;	M 0930		LINKAGE
;	M 0931		    DDMDB_LINKAGE = JSR (REGISTER = 5) : PRESERVE (0) NOPRESERVE (5);
;	M 0932	
;	M 0933		EXTERNAL ROUTINE
;	M 0934		    $DDMDB : DDMDB_LINKAGE NOVALUE;
;	M 0935	
;	M 0936		GLOBAL REGISTER
;	M 0937		    R5 = 5;
;	M 0938	
;	M 0939		$DDMDB (index);
;	M 0940		%IF NOT %NULL (db) %THEN db = .R5; %FI
;	  0941		END %,
;	  0942	
;	U 0943	%else
;	U 0944	
;	U 0945	    DDMDB$ (index, db) =
;	U 0946		BEGIN
;	U 0947	
;	U 0948		LINKAGE
;	U 0949		    DDMDB_LINKAGE = JSR (REGISTER = 5; REGISTER = 5) : PRESERVE (0);
;	U 0950	
;	U 0951		EXTERNAL ROUTINE
;	U 0952		    $DDMDB : DDMDB_LINKAGE NOVALUE;
;	U 0953	
;	U 0954		$DDMDB (index; db);
;	U 0955		END %,
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  17
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 0956	
;	  0957	%fi
;	  0958	
;	  0959	    !
;	  0960	    !
;	  0961	    !
;	  0962	
;	M 0963	    DDRCP$ (ccb, status) =
;	M 0964		BEGIN
;	M 0965	
;	M 0966		LINKAGE
;	M 0967		    DDRCP_LINKAGE = JSR (REGISTER = 4, REGISTER = 3) : PRESERVE (0) NOPRESERVE (3, 4);
;	M 0968	
;	M 0969		EXTERNAL ROUTINE
;	M 0970		    $DDRCP : DDRCP_LINKAGE NOVALUE;
;	M 0971	
;	M 0972		$DDRCP (ccb, status);
;	  0973		END %,
;	  0974	
;	  0975	    !
;	  0976	    !
;	  0977	    !
;	  0978	
;	M 0979	    DDXCP$ (ccb, status) =
;	M 0980		BEGIN
;	M 0981	
;	M 0982		LINKAGE
;	M 0983		    DDXCP_LINKAGE = JSR (REGISTER = 4, REGISTER = 3) : PRESERVE (0) NOPRESERVE (3, 4);
;	M 0984	
;	M 0985		EXTERNAL ROUTINE
;	M 0986		    $DDXCP : DDXCP_LINKAGE NOVALUE;
;	M 0987	
;	M 0988		$DDXCP (ccb, status);
;	  0989		END %,
;	  0990	
;	  0991	    !
;	  0992	    !
;	  0993	    !
;	  0994	
;	M 0995	    DLAST$ (index, status) =
;	M 0996		BEGIN
;	M 0997	
;	M 0998		LINKAGE
;	M 0999		    DLAST_LINKAGE = JSR (REGISTER = 3, REGISTER = 2) : PRESERVE (0) NOPRESERVE (3, 4) CLEARSTACK VALUECBIT;
;	M 1000	
;	M 1001		EXTERNAL ROUTINE
;	M 1002		    $DLAST : DLAST_LINKAGE;
;	M 1003	
;	M 1004		! Note: Cbit clear = FALSE = success
;	M 1005	
;	M 1006		IF NOT $DLAST (status, index)
;	M 1007		THEN
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  18
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1008		    MCB$_NORMAL
;	M 1009		ELSE
;	M 1010		    MCB$_NO_CCB
;	M 1011	
;	  1012		END %,
;	  1013	
;	  1014	    !
;	  1015	    !
;	  1016	    !
;	  1017	
;	M 1018	    DLCCP$ (ccb, status) =
;	M 1019		BEGIN
;	M 1020	
;	M 1021		LINKAGE
;	M 1022		    DLCCP_LINKAGE = JSR (REGISTER = 4, REGISTER = 3) : PRESERVE (0) NOPRESERVE (3, 4);
;	M 1023	
;	M 1024		EXTERNAL ROUTINE
;	M 1025		    $DLCCP : DLCCP_LINKAGE NOVALUE;
;	M 1026	
;	M 1027		$DLCCP (ccb, status);
;	  1028		END %,
;	  1029	
;	  1030	    !
;	  1031	    !
;	  1032	    !
;	  1033	
;	L 1034	%if %variant eql 0
;	  1035	%then
;	  1036	
;	M 1037	    DLCDB$ (index, db) =
;	M 1038		BEGIN
;	M 1039	
;	M 1040		LINKAGE
;	M 1041		    DLCDB_LINKAGE = JSR (REGISTER = 5) : PRESERVE (0) NOPRESERVE (5);
;	M 1042	
;	M 1043		EXTERNAL ROUTINE
;	M 1044		    $DLCDB : DLCDB_LINKAGE NOVALUE;
;	M 1045	
;	M 1046		GLOBAL REGISTER
;	M 1047		    R5 = 5;
;	M 1048	
;	M 1049		$DLCDB (index);
;	M 1050		%IF NOT %NULL (db) %THEN db = .R5; %FI
;	  1051		END %,
;	  1052	
;	U 1053	%else
;	U 1054	
;	U 1055	    DLCDB$ (index, db) =
;	U 1056		BEGIN
;	U 1057	
;	U 1058		LINKAGE
;	U 1059		    DLCDB_LINKAGE = JSR (REGISTER = 5; REGISTER = 5) : PRESERVE (0);
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  19
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 1060	
;	U 1061		EXTERNAL ROUTINE
;	U 1062		    $DLCDB : DLCDB_LINKAGE NOVALUE;
;	U 1063	
;	U 1064		$DLCDB (index; db);
;	U 1065		END %,
;	U 1066	
;	  1067	%fi
;	  1068	
;	  1069	    !
;	  1070	    !
;	  1071	    !
;	  1072	
;	M 1073	    DLGET$ (ccb) =
;	M 1074		BEGIN
;	M 1075	
;	M 1076		LINKAGE
;	M 1077		    DLGET_LINKAGE = JSR (REGISTER = 4) : PRESERVE (0) NOPRESERVE (4);
;	M 1078	
;	M 1079		EXTERNAL ROUTINE
;	M 1080		    $DLGET : DLGET_LINKAGE NOVALUE;
;	M 1081	
;	M 1082		$DLGET (ccb);
;	  1083		END %,
;	  1084	
;	  1085	    !
;	  1086	    !
;	  1087	    !
;	  1088	
;	M 1089	    DLRCE$ (ccb) =
;	M 1090		BEGIN
;	M 1091	
;	M 1092		LINKAGE
;	M 1093		    DLRCE_LINKAGE = JSR (REGISTER = 4) : PRESERVE (0) NOPRESERVE (4);
;	M 1094	
;	M 1095		EXTERNAL ROUTINE
;	M 1096		    $DLRCE : DLRCE_LINKAGE NOVALUE;
;	M 1097	
;	M 1098		$DLRCE (ccb);
;	  1099		END %,
;	  1100	
;	  1101	    !
;	  1102	    !
;	  1103	    !
;	  1104	
;	M 1105	    DLRCP$ (ccb, status) =
;	M 1106		BEGIN
;	M 1107	
;	M 1108		LINKAGE
;	M 1109		    DLRCP_LINKAGE = JSR (REGISTER = 4, REGISTER = 3) : PRESERVE (0) NOPRESERVE (3, 4);
;	M 1110	
;	M 1111		EXTERNAL ROUTINE
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  20
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1112		    $DLRCP : DLRCP_LINKAGE NOVALUE;
;	M 1113	
;	M 1114		$DLRCP (ccb, status);
;	  1115		END %,
;	  1116	
;	  1117	    !
;	  1118	    !
;	  1119	    !
;	  1120	
;	M 1121	    DLSET$ (ccb) =
;	M 1122		BEGIN
;	M 1123	
;	M 1124		LINKAGE
;	M 1125		    DLSET_LINKAGE = JSR (REGISTER = 4) : PRESERVE (0) NOPRESERVE (4);
;	M 1126	
;	M 1127		EXTERNAL ROUTINE
;	M 1128		    $DLSET : DLSET_LINKAGE NOVALUE;
;	M 1129	
;	M 1130		$DLSET (ccb);
;	  1131		END %,
;	  1132	
;	  1133	    DLSTM$ = $MCB_START_SHORT_TIMER %,
;	  1134	
;	  1135	    !
;	  1136	    !
;	  1137	    !
;	  1138	
;	M 1139	    DLSTP$ (ccb) =
;	M 1140		BEGIN
;	M 1141	
;	M 1142		LINKAGE
;	M 1143		    DLSTP_LINKAGE = JSR (REGISTER = 4) : PRESERVE (0) NOPRESERVE (4);
;	M 1144	
;	M 1145		EXTERNAL ROUTINE
;	M 1146		    $DLSTP : DLSTP_LINKAGE NOVALUE;
;	M 1147	
;	M 1148		$DLSTP (ccb);
;	  1149		END %,
;	  1150	
;	  1151	    !
;	  1152	    !
;	  1153	    !
;	  1154	
;	M 1155	    DLSTR$ (ccb) =
;	M 1156		BEGIN
;	M 1157	
;	M 1158		LINKAGE
;	M 1159		    DLSTR_LINKAGE = JSR (REGISTER = 4) : PRESERVE (0) NOPRESERVE (4);
;	M 1160	
;	M 1161		EXTERNAL ROUTINE
;	M 1162		    $DLSTR : DLSTR_LINKAGE NOVALUE;
;	M 1163	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  21
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1164		$DLSTR (ccb);
;	  1165		END %,
;	  1166	
;	  1167	    !
;	  1168	    !
;	  1169	    !
;	  1170	
;	M 1171	    DLXCP$ (ccb, status) =
;	M 1172		BEGIN
;	M 1173	
;	M 1174		LINKAGE
;	M 1175		    DLXCP_LINKAGE = JSR (REGISTER = 4, REGISTER = 3) : PRESERVE (0) NOPRESERVE (3, 4);
;	M 1176	
;	M 1177		EXTERNAL ROUTINE
;	M 1178		    $DLXCP : DLXCP_LINKAGE NOVALUE;
;	M 1179	
;	M 1180		$DLXCP (ccb, status);
;	  1181		END %,
;	  1182	
;	  1183	    !
;	  1184	    !
;	  1185	    !
;	  1186	
;	M 1187	    DLXME$ (ccb) =
;	M 1188		BEGIN
;	M 1189	
;	M 1190		LINKAGE
;	M 1191		    DLXME_LINKAGE = JSR (REGISTER = 4) : PRESERVE (0) NOPRESERVE (4);
;	M 1192	
;	M 1193		EXTERNAL ROUTINE
;	M 1194		    $DLXME : DLXME_LINKAGE NOVALUE;
;	M 1195	
;	M 1196		$DLXME (ccb);
;	  1197		END %,
;	  1198	
;	M 1199	    GTPRC$ (CCB) =
;	M 1200		begin
;	M 1201	
;	M 1202		bind
;	M 1203		    $MCB$CCB = CCB : block field (C_FIELDS);
;	M 1204	
;	M 1205		$MCB_GET_LINE_PROCESSES (.$MCB$CCB [C_LIX], $MCB$CCB [C_PRM1])
;	  1206		end %,
;	  1207	
;	M 1208	    LDBGT$ (ccb) =
;	M 1209		begin
;	M 1210	
;	M 1211		local
;	M 1212		    $MCB$SAV_MAP,
;	M 1213		    $MCB$STS;
;	M 1214	
;	M 1215		external
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  22
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1216		    MCB$GW_RDB_SIZE;
;	M 1217	
;	M 1218	
;	M 1219		SMAP$ ($MCB$SAV_MAP);
;	M 1220		$MCB$STS = $MCB_GET_CCB_AND_BUFFER (.MCB$GW_RDB_SIZE, ccb);
;	M 1221		MAP$ (.$MCB$SAV_MAP);
;	M 1222		.$MCB$STS
;	  1223		end %,
;	  1224	
;	M 1225	    LDBRT$ (ccb) =
;	M 1226		begin
;	M 1227	
;	M 1228		local
;	M 1229		    $MCB$SAV_MAP;
;	M 1230	
;	M 1231		external
;	M 1232		    MCB$GW_RDB_SIZE;
;	M 1233	
;	M 1234		SMAP$ ($MCB$SAV_MAP);
;	M 1235		$MCB_RETURN_CCB_AND_BUFFER (.MCB$GW_RDB_SIZE, ccb);
;	M 1236		MAP$ (.$MCB$SAV_MAP);
;	  1237		end %,
;	  1238	
;	M 1239	    LLCDB$ (db) =
;	M 1240		begin
;	M 1241	
;	M 1242		external
;	M 1243		    MCB$GAW_PROCESS_DATA_BASE : vector [2];
;	M 1244	
;	M 1245		MAP$ (.MCB$GAW_PROCESS_DATA_BASE [0]);
;	M 1246		db = .MCB$GAW_PROCESS_DATA_BASE [1]
;	  1247		end %,
;	  1248	
;	  1249	    LLCRS$ = $MCB_SCHEDULE_CCB %,
;	  1250	
;	  1251	    !
;	  1252	    !
;	  1253	    !
;	  1254	
;	M 1255	    LLLTM$ (dummy) =
;	M 1256		BEGIN
;	M 1257	
;	M 1258		EXTERNAL ROUTINE
;	M 1259		    $LLLTM : NOVALUE;
;	M 1260	
;	M 1261		$LLLTM ();
;	  1262		END %,
;	  1263	
;	  1264	    MCB$ = $MCB_RSX_TO_MCB %,
;	  1265	
;	M 1266	    PDVID$ (NAME, INDEX) =
;	M 1267		begin
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  23
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1268	
;	M 1269		local
;	M 1270		    $MCB$HANDLE,
;	M 1271		    $MCB$STATUS;
;	M 1272	
;	M 1273		if ($MCB$STATUS = $MCB_GET_PROCESS_HANDLE (NAME, $MCB$HANDLE))
;	M 1274		then
;	M 1275		    INDEX = .$MCB$HANDLE;
;	M 1276	
;	M 1277		.$MCB$STATUS
;	  1278		end %,
;	  1279	
;	  1280	    !
;	  1281	    !
;	  1282	    !
;	  1283	
;	M 1284	    PDVNM$ (INDEX, NAME) =
;	M 1285		begin
;	M 1286	
;	M 1287		local
;	M 1288		    $MCB$NAME,
;	M 1289		    $MCB$STATUS;
;	M 1290	
;	M 1291		if ($MCB$STATUS = CALL$I (MCB$K_GET_PROCESS_NAME, INDEX, $MCB$NAME))
;	M 1292		then
;	M 1293		    NAME = .$MCB$NAME;
;	M 1294	
;	M 1295		.$MCB$STATUS
;	  1296		end %,
;	  1297	
;	  1298	    RDBCN$ = $MCB_CANCEL_RDB_REQUEST %,
;	  1299	
;	  1300	    RDBGT$ = $MCB_GET_RDB %,
;	  1301	
;	  1302	    RDBRQ$ = $MCB_REQUEST_RDB %,
;	  1303	
;	  1304	    RDBRT$ = $MCB_RETURN_RDB %,
;	  1305	
;	  1306	    RND$ = $MCB_GET_RANDOM_NUMBER %,
;	  1307	
;	  1308	    RSX$ = $MCB_MCB_TO_RSX %,
;	  1309	
;	  1310	    SYNCH$ = $MCB_SYNCHRONIZE %,
;	  1311	
;	  1312	    $MCB_EXCEPTION = $MCB_SET_EXCEPTION %;
;	  1313	
;	  1314	macro
;	  1315	    MCB$GAW_PROCESS_DATA_BASE = %name ('.CRDAT') %,
;	  1316	
;	  1317	    MCB$GA_LOGGING_BUFFER = %name ('.LOGPT') %,
;	  1318	
;	  1319	    MCB$GA_PROCESS_DISPATCH = %name ('.CRDSP') %,
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  24
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  1320	
;	  1321	    MCB$GW_PROCESS_HANDLE = %name ('.CRPIX') %,
;	  1322	
;	  1323	    MCB$GW_PROCESS_WINDOW = %name ('KISAR5') %,
;	  1324	
;	  1325	    MCB$GW_DATA_WINDOW = %name ('KISAR6') %,
;	  1326	
;	  1327	    MCB$GW_RDB_SIZE = %name ('.RDBSZ') %,
;	  1328	
;	  1329	    $MCB$BUFFER_ADDRESS (BIAS, ADDRESS) = ADDRESS %,
;	  1330	
;	  1331	    $MCB$BUFFER_BIAS (BIAS, ADDRESS) = BIAS %,
;	  1332	
;	  1333	    !
;	  1334	    !
;	  1335	    !
;	  1336	
;	M 1337	    $MCB_CANCEL_CCB_REQUEST (DUMMY) =
;	M 1338		begin
;	M 1339	
;	M 1340		external routine
;	M 1341		    $CCBCN : novalue;
;	M 1342	
;	M 1343		$CCBCN ();
;	  1344		end %,
;	  1345	
;	  1346	    !
;	  1347	    !
;	  1348	    !
;	  1349	
;	M 1350	    $MCB_CANCEL_RDB_REQUEST (DUMMY) =
;	M 1351		begin
;	M 1352	
;	M 1353		external routine
;	M 1354		    $RDBCN : novalue;
;	M 1355	
;	M 1356		$RDBCN ();
;	  1357		end %,
;	  1358	
;	  1359	    !
;	  1360	    !
;	  1361	    !
;	  1362	
;	M 1363	    $MCB_CANCEL_SHORT_TIMER (TIMER_BLOCK) =
;	M 1364		begin
;	M 1365	
;	M 1366		linkage
;	M 1367		    $MCB$LINKAGE_TIMER = jsr (register = 4) : PRESERVE (0);
;	M 1368	
;	M 1369		external routine
;	M 1370		    $STMCN : $MCB$LINKAGE_TIMER novalue;
;	M 1371	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  25
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1372		$STMCN (TIMER_BLOCK);
;	  1373		end %,
;	  1374	
;	  1375	    !
;	  1376	    !
;	  1377	    !
;	  1378	
;	M 1379	    $MCB_CLEAR_PROCESS (DUMMY) =
;	  1380		CALL$I (MCB$K_CLEAR_PROCESS) %,
;	  1381	
;	  1382	    !
;	  1383	    !
;	  1384	    !
;	  1385	
;	M 1386	    $MCB_CLEAR_PROCESS_NAME (NAME) =
;	  1387		CALL$I (MCB$K_CLEAR_PROCESS_NAME, NAME) %,
;	  1388	
;	  1389	    !
;	  1390	    !
;	  1391	    !
;	  1392	
;	M 1393	    $MCB_CLEAR_VECTOR (VECTOR) =
;	  1394		CALL$I (MCB$K_CLEAR_VECTOR, VECTOR) %,
;	  1395	
;	  1396	    !
;	  1397	    !
;	  1398	    !
;	  1399	
;	M 1400	    $MCB_CONVERT_FROM_UBA_ADDRESS (LOW, HIGH, ADDRESS) =
;	M 1401		begin
;	M 1402	
;	M 1403		linkage
;	M 1404		    $MCB$LINKAGE_HIGH_LOW = jsr (register = 0, register = 1)
;	M 1405			: nopreserve (1);
;	M 1406	
;	M 1407		external routine
;	M 1408		    $VIR18 : $MCB$LINKAGE_HIGH_LOW;
;	M 1409	
;	M 1410		%if not %null (ADDRESS) %then ADDRESS = %fi
;	M 1411		$VIR18 (HIGH, LOW)
;	  1412		end %,
;	  1413	
;	  1414	    !
;	  1415	    !
;	  1416	    !
;	  1417	
;	L 1418	%if %variant eql 0
;	  1419	%then
;	  1420	
;	M 1421	    $MCB_CONVERT_TO_22_BIT_ADDRESS (BUFFER, LOW, HIGH) =
;	M 1422		%if not %identical (BUFFER, (%remove (BUFFER)))
;	M 1423		%then %errormacro ('Buffer bias/address must be parenthesized') %fi
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  26
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1424		begin
;	M 1425	
;	M 1426		linkage
;	M 1427		    $MCB$LINKAGE_BIAS_ADDRESS = jsr (register = 2, register = 3)
;	M 1428			: preserve (0) nopreserve (2, 3);
;	M 1429	
;	M 1430		external routine
;	M 1431		    $CNV22 : $MCB$LINKAGE_BIAS_ADDRESS novalue;
;	M 1432	
;	M 1433		global register
;	M 1434		    $MCB$R3 = 3,
;	M 1435		    $MCB$R2 = 2;
;	M 1436	
;	M 1437		$CNV22 (%remove (BUFFER));
;	M 1438		%if not %null (LOW) %then LOW = .$MCB$R3; %fi
;	M 1439		%if not %null (HIGH) %then HIGH = .$MCB$R2; %fi
;	  1440		end %,
;	  1441	
;	U 1442	%else
;	U 1443	
;	U 1444	    $MCB_CONVERT_TO_22_BIT_ADDRESS (BUFFER, LOW, HIGH) =
;	U 1445		%if not %identical (BUFFER, (%remove (BUFFER)))
;	U 1446		%then %errormacro ('Buffer bias/address must be parenthesized') %fi
;	U 1447		begin
;	U 1448	
;	U 1449		linkage
;	U 1450		    $MCB$LINKAGE_BIAS_ADDRESS = jsr (register = 2, register = 3; register = 3, register = 2)
;	U 1451			: preserve (0);
;	U 1452	
;	U 1453		external routine
;	U 1454		    $CNV22 : $MCB$LINKAGE_BIAS_ADDRESS novalue;
;	U 1455	
;	U 1456		$CNV22 (%remove (BUFFER); LOW, HIGH);
;	U 1457		end %,
;	U 1458	
;	  1459	%fi
;	  1460	
;	  1461	    !
;	  1462	    !
;	  1463	    !
;	  1464	
;	L 1465	%if %variant eql 0
;	  1466	%then
;	  1467	
;	M 1468	    $MCB_CONVERT_TO_UBA_ADDRESS (BUFFER, LOW, HIGH) =
;	M 1469		%if not %identical (BUFFER, (%remove (BUFFER)))
;	M 1470		%then %errormacro ('Buffer bias/address must be parenthesized') %fi
;	M 1471		begin
;	M 1472	
;	M 1473		linkage
;	M 1474		    $MCB$LINKAGE_BIAS_ADDRESS = jsr (register = 2, register = 3)
;	M 1475			: preserve (0) nopreserve (2, 3);
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  27
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1476	
;	M 1477		external routine
;	M 1478		    $PHY18 : $MCB$LINKAGE_BIAS_ADDRESS novalue;
;	M 1479	
;	M 1480		global register
;	M 1481		    $MCB$R3 = 3,
;	M 1482		    $MCB$R2 = 2;
;	M 1483	
;	M 1484		$PHY18 (%remove (BUFFER));
;	M 1485		%if not %null (LOW) %then LOW = .$MCB$R3; %fi
;	M 1486		%if not %null (HIGH) %then HIGH = .$MCB$R2; %fi
;	  1487		end %,
;	  1488	
;	U 1489	%else
;	U 1490	
;	U 1491	    $MCB_CONVERT_TO_UBA_ADDRESS (BUFFER, LOW, HIGH) =
;	U 1492		%if not %identical (BUFFER, (%remove (BUFFER)))
;	U 1493		%then %errormacro ('Buffer bias/address must be parenthesized') %fi
;	U 1494		begin
;	U 1495	
;	U 1496		linkage
;	U 1497		    $MCB$LINKAGE_BIAS_ADDRESS = jsr (register = 2, register = 3; register = 3, register = 2)
;	U 1498			: preserve (0);
;	U 1499	
;	U 1500		external routine
;	U 1501		    $PHY18 : $MCB$LINKAGE_BIAS_ADDRESS novalue;
;	U 1502	
;	U 1503		$PHY18 (%remove (BUFFER); LOW, HIGH);
;	U 1504		end %,
;	U 1505	
;	  1506	%fi
;	  1507	
;	  1508	    !
;	  1509	    !
;	  1510	    !
;	  1511	
;	M 1512	    $MCB_COPY_CHAIN_TO_BUFFER (CCB, TO_BUFFER) =
;	M 1513		begin
;	M 1514	
;	M 1515		linkage
;	M 1516		    $MCB$LINKAGE_CCB = jsr (register = 4);
;	M 1517	
;	M 1518		external routine
;	M 1519		    $CPTBF : $MCB$LINKAGE_CCB;
;	M 1520	
;	M 1521		$CPTBF (CCB, %remove (TO_BUFFER))
;	  1522		end %,
;	  1523	
;	  1524	    !
;	  1525	    ! Remove a CCB from a queue
;	  1526	    !
;	  1527	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  28
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	L 1528	%if %variant eql 0
;	  1529	%then
;	  1530	
;	M 1531	    $MCB_DEQUEUE_CCB (QUEUE, CCB) =
;	M 1532		begin
;	M 1533	
;	M 1534		linkage
;	M 1535		    $MCB$LINKAGE_QUEUE_CCB = jsr (register = 3) : PRESERVE (0) nopreserve (4) clearstack valuecbit;
;	M 1536	
;	M 1537		external routine
;	M 1538		    $CMQRM : $MCB$LINKAGE_QUEUE_CCB;
;	M 1539	
;	M 1540		global register
;	M 1541		    $MCB$R4 = 4;
;	M 1542	
;	M 1543		! Note: Cbit clear = FALSE = success
;	M 1544	
;	M 1545		if not $CMQRM (QUEUE)
;	M 1546		then
;	M 1547		    begin
;	M 1548		    CCB = .$MCB$R4;
;	M 1549		    MCB$_NORMAL
;	M 1550		    end
;	M 1551		else
;	M 1552		    MCB$_QUEUE_EMPTY
;	M 1553	
;	  1554		end %,
;	  1555	
;	U 1556	%else %if %variant eql 1
;	U 1557	%then
;	U 1558	
;	U 1559	    $MCB_DEQUEUE_CCB (QUEUE, CCB) =
;	U 1560		begin
;	U 1561	
;	U 1562		linkage
;	U 1563		    $MCB$LINKAGE_QUEUE_CCB = jsr (register = 3; register = 4) : PRESERVE (0) clearstack valuecbit;
;	U 1564	
;	U 1565		external routine
;	U 1566		    $CMQRM : $MCB$LINKAGE_QUEUE_CCB;
;	U 1567	
;	U 1568		! Note: Cbit clear = FALSE = success
;	U 1569	
;	U 1570		if not $CMQRM (QUEUE; CCB)
;	U 1571		then
;	U 1572		    MCB$_NORMAL
;	U 1573		else
;	U 1574		    MCB$_QUEUE_EMPTY
;	U 1575	
;	U 1576		end %,
;	U 1577	
;	U 1578	%else
;	U 1579	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  29
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 1580	    $MCB_DEQUEUE_CCB (QUEUE, CCB) =
;	U 1581		begin
;	U 1582	
;	U 1583		linkage
;	U 1584		    $MCB$LINKAGE_QUEUE_CCB = jsr (register = 3; register = 4) : preserve (0) clearstack valuecbit;
;	U 1585	
;	U 1586		register
;	U 1587		    $MCB$R4 = 4;
;	U 1588	
;	U 1589		external routine
;	U 1590		    $CMQRM : $MCB$LINKAGE_QUEUE_CCB;
;	U 1591	
;	U 1592		! Note: Cbit clear = FALSE = success
;	U 1593	
;	U 1594		if not $CMQRM (QUEUE; $MCB$R4)
;	U 1595		then
;	U 1596		    begin
;	U 1597		    CCB = .$MCB$R4;
;	U 1598		    MCB$_NORMAL
;	U 1599		    end
;	U 1600		else
;	U 1601		    MCB$_QUEUE_EMPTY
;	U 1602	
;	U 1603		end %,
;	U 1604	
;	  1605	%fi %fi
;	  1606	
;	  1607	    !
;	  1608	    !
;	  1609	    !
;	  1610	
;	M 1611	    $MCB_DISABLE_INTERRUPT (VECTOR) =
;	M 1612		begin
;	M 1613	
;	M 1614		linkage
;	M 1615		    $MCB$LINKAGE_VECTOR = jsr (register = 0);
;	M 1616	
;	M 1617		external routine
;	M 1618		    $INTDS : $MCB$LINKAGE_VECTOR novalue;
;	M 1619	
;	M 1620		$INTDS (VECTOR)
;	  1621		end %,
;	  1622	
;	  1623	    !
;	  1624	    !
;	  1625	    !
;	  1626	
;	M 1627	    $MCB_DISABLE_LONG_TIMER (DUMMY) =
;	M 1628		begin
;	M 1629	
;	M 1630		external routine
;	M 1631		    $LTMDS : novalue;
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  30
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1632	
;	M 1633		$LTMDS ()
;	  1634		end %,
;	  1635	
;	  1636	    !
;	  1637	    !
;	  1638	    !
;	  1639	
;	M 1640	    $MCB_ENABLE_INTERRUPT (VECTOR) =
;	M 1641		begin
;	M 1642	
;	M 1643		linkage
;	M 1644		    $MCB$LINKAGE_VECTOR = jsr (register = 0);
;	M 1645	
;	M 1646		external routine
;	M 1647		    $INTEN : $MCB$LINKAGE_VECTOR novalue;
;	M 1648	
;	M 1649		$INTEN (VECTOR)
;	  1650		end %,
;	  1651	
;	  1652	    !
;	  1653	    !
;	  1654	    !
;	  1655	
;	M 1656	    $MCB_ENABLE_LONG_TIMER (DUMMY) =
;	M 1657		begin
;	M 1658	
;	M 1659		external routine
;	M 1660		    $LTMEN : novalue;
;	M 1661	
;	M 1662		$LTMEN ()
;	  1663		end %,
;	  1664	
;	  1665	    !
;	  1666	    ! Get a buffer
;	  1667	    !
;	  1668	
;	M 1669	    $MCB_GET_BUFFER (LENGTH, ADDRESS) =
;	  1670		$MCB_GET_CORE (LENGTH, ADDRESS) %,
;	  1671	
;	  1672	    !
;	  1673	    ! Get a CCB
;	  1674	    !
;	  1675	
;	L 1676	%if %variant eql 0
;	  1677	%then
;	  1678	
;	M 1679	    $MCB_GET_CCB (CCB) =
;	M 1680		begin
;	M 1681	
;	M 1682		linkage
;	M 1683		    $MCB$LINKAGE_CCB = jsr : preserve (0) nopreserve (4) clearstack valuecbit;
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  31
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1684	
;	M 1685		external routine
;	M 1686		    $CCBGT : $MCB$LINKAGE_CCB;
;	M 1687	
;	M 1688		global register
;	M 1689		    $MCB$R4 = 4;
;	M 1690	
;	M 1691		! Note: Cbit clear = FALSE = success
;	M 1692	
;	M 1693		if not $CCBGT ()
;	M 1694		then
;	M 1695		    begin
;	M 1696		    CCB = .$MCB$R4;
;	M 1697		    MCB$_NORMAL
;	M 1698		    end
;	M 1699		else
;	M 1700		    MCB$_NO_CCB
;	M 1701	
;	  1702		end %,
;	  1703	
;	U 1704	%else %if %variant eql 1
;	U 1705	%then
;	U 1706	
;	U 1707	    $MCB_GET_CCB (CCB) =
;	U 1708		begin
;	U 1709	
;	U 1710		linkage
;	U 1711		    $MCB$LINKAGE_CCB = jsr (; register = 4) : preserve (0) clearstack valuecbit;
;	U 1712	
;	U 1713		external routine
;	U 1714		    $CCBGT : $MCB$LINKAGE_CCB;
;	U 1715	
;	U 1716		! Note: Cbit clear = FALSE = success
;	U 1717	
;	U 1718		if not $CCBGT (; CCB)
;	U 1719		then
;	U 1720		    MCB$_NORMAL
;	U 1721		else
;	U 1722		    MCB$_NO_CCB
;	U 1723	
;	U 1724		end %,
;	U 1725	
;	U 1726	%else
;	U 1727	
;	U 1728	    $MCB_GET_CCB (CCB) =
;	U 1729		begin
;	U 1730	
;	U 1731		linkage
;	U 1732		    $MCB$LINKAGE_CCB = jsr (; register = 4) : preserve (0) clearstack valuecbit;
;	U 1733	
;	U 1734		register
;	U 1735		    $MCB$R4 = 4;
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  32
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 1736	
;	U 1737		external routine
;	U 1738		    $CCBGT : $MCB$LINKAGE_CCB;
;	U 1739	
;	U 1740		! Note: Cbit clear = FALSE = success
;	U 1741	
;	U 1742		if not $CCBGT (; $MCB$R4)
;	U 1743		then
;	U 1744		    begin
;	U 1745		    CCB = .$MCB$R4;
;	U 1746		    MCB$_NORMAL
;	U 1747		    end
;	U 1748		else
;	U 1749		    MCB$_NO_CCB
;	U 1750	
;	U 1751		end %,
;	U 1752	
;	  1753	%fi %fi
;	  1754	
;	  1755	    !
;	  1756	    !
;	  1757	    !
;	  1758	
;	L 1759	%if %variant eql 0
;	  1760	%then
;	  1761	
;	M 1762	    $MCB_GET_CCB_AND_BUFFER (LENGTH, CCB) =
;	M 1763		begin
;	M 1764	
;	M 1765		linkage
;	M 1766		    $MCB$LINKAGE_LENGTH_CCB = jsr (register = 1) : preserve (0) nopreserve (4) clearstack valuecbit;
;	M 1767	
;	M 1768		external routine
;	M 1769		    $CBBGT : $MCB$LINKAGE_LENGTH_CCB;
;	M 1770	
;	M 1771		global register
;	M 1772		    $MCB$R4 = 4;
;	M 1773	
;	M 1774		! Note: Cbit clear = FALSE = success
;	M 1775	
;	M 1776		if not $CBBGT (LENGTH)
;	M 1777		then
;	M 1778		    begin
;	M 1779		    CCB = .$MCB$R4;
;	M 1780		    MCB$_NORMAL
;	M 1781		    end
;	M 1782		else
;	M 1783		    MCB$_NO_CSB
;	M 1784	
;	  1785		end %,
;	  1786	
;	U 1787	%else %if %variant eql 1
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  33
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 1788	%then
;	U 1789	
;	U 1790	    $MCB_GET_CCB_AND_BUFFER (LENGTH, CCB) =
;	U 1791		begin
;	U 1792	
;	U 1793		linkage
;	U 1794		    $MCB$LINKAGE_LENGTH_CCB = jsr (register = 1; register = 4) : preserve (0) clearstack valuecbit;
;	U 1795	
;	U 1796		external routine
;	U 1797		    $CBBGT : $MCB$LINKAGE_LENGTH_CCB;
;	U 1798	
;	U 1799		! Note: Cbit clear = FALSE = success
;	U 1800	
;	U 1801		if not $CBBGT (LENGTH; CCB)
;	U 1802		then
;	U 1803		    MCB$_NORMAL
;	U 1804		else
;	U 1805		    MCB$_NO_CSB
;	U 1806	
;	U 1807		end %,
;	U 1808	
;	U 1809	%else
;	U 1810	
;	U 1811	    $MCB_GET_CCB_AND_BUFFER (LENGTH, CCB) =
;	U 1812		begin
;	U 1813	
;	U 1814		linkage
;	U 1815		    $MCB$LINKAGE_LENGTH_CCB = jsr (register = 1; register = 4) : preserve (0) clearstack valuecbit;
;	U 1816	
;	U 1817		register
;	U 1818		    $MCB$R4 = 4;
;	U 1819	
;	U 1820		external routine
;	U 1821		    $CBBGT : $MCB$LINKAGE_LENGTH_CCB;
;	U 1822	
;	U 1823		! Note: Cbit clear = FALSE = success
;	U 1824	
;	U 1825		if not $CBBGT (LENGTH; $MCB$R4)
;	U 1826		then
;	U 1827		    begin
;	U 1828		    CCB = .$MCB$R4;
;	U 1829		    MCB$_NORMAL
;	U 1830		    end
;	U 1831		else
;	U 1832		    MCB$_NO_CSB
;	U 1833	
;	U 1834		end %,
;	U 1835	
;	  1836	%fi %fi
;	  1837	
;	  1838	    !
;	  1839	    !
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  34
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  1840	    !
;	  1841	
;	L 1842	%if %variant eql 0
;	  1843	%then
;	  1844	
;	M 1845	    $MCB_GET_CORE (LENGTH, ADDRESS) =
;	M 1846		begin
;	M 1847	
;	M 1848		linkage
;	M 1849		    $MCB$LINKAGE_LENGTH_ADDRESS = jsr (register = 1) : nopreserve (0) clearstack valuecbit;
;	M 1850	
;	M 1851		external routine
;	M 1852		    $CORGT : $MCB$LINKAGE_LENGTH_ADDRESS;
;	M 1853	
;	M 1854		global register
;	M 1855		    $MCB$R0 = 0;
;	M 1856	
;	M 1857		! Note: Cbit clear = FALSE = success
;	M 1858	
;	M 1859		if not $CORGT (LENGTH)
;	M 1860		then
;	M 1861		    begin
;	M 1862		    ADDRESS = .$MCB$R0;
;	M 1863		    MCB$_NORMAL
;	M 1864		    end
;	M 1865		else
;	M 1866		    MCB$_NO_CORE
;	M 1867	
;	  1868		end %,
;	  1869	
;	U 1870	%else %if %variant eql 1
;	U 1871	%then
;	U 1872	
;	U 1873	    $MCB_GET_CORE (LENGTH, ADDRESS) =
;	U 1874		begin
;	U 1875	
;	U 1876		linkage
;	U 1877		    $MCB$LINKAGE_LENGTH_ADDRESS = jsr (register = 1; register = 0) : clearstack valuecbit;
;	U 1878	
;	U 1879		external routine
;	U 1880		    $CORGT : $MCB$LINKAGE_LENGTH_ADDRESS;
;	U 1881	
;	U 1882		! Note: Cbit clear = FALSE = success
;	U 1883	
;	U 1884		if not $CORGT (LENGTH; ADDRESS)
;	U 1885		then
;	U 1886		    MCB$_NORMAL
;	U 1887		else
;	U 1888		    MCB$_NO_CORE
;	U 1889	
;	U 1890		end %,
;	U 1891	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  35
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 1892	%else
;	U 1893	
;	U 1894	    $MCB_GET_CORE (LENGTH, ADDRESS) =
;	U 1895		begin
;	U 1896	
;	U 1897		linkage
;	U 1898		    $MCB$LINKAGE_LENGTH_ADDRESS = jsr (register = 1; register = 0) : clearstack valuecbit;
;	U 1899	
;	U 1900		register
;	U 1901		    $MCB$R0 = 0;
;	U 1902	
;	U 1903		external routine
;	U 1904		    $CORGT : $MCB$LINKAGE_LENGTH_ADDRESS;
;	U 1905	
;	U 1906		! Note: Cbit clear = FALSE = success
;	U 1907	
;	U 1908		if not $CORGT (LENGTH; $MCB$R0)
;	U 1909		then
;	U 1910		    begin
;	U 1911		    ADDRESS = .$MCB$R0;
;	U 1912		    MCB$_NORMAL
;	U 1913		    end
;	U 1914		else
;	U 1915		    MCB$_NO_CORE
;	U 1916	
;	U 1917		end %,
;	U 1918	
;	  1919	%fi %fi
;	  1920	
;	  1921	    !
;	  1922	    !
;	  1923	    !
;	  1924	
;	M 1925	    $MCB_GET_DEVICE_NAME (LIX, BUF) =
;	  1926		CALL$I (MCB$K_GET_DEVICE_NAME, LIX, BUF) %,
;	  1927	
;	  1928	    !
;	  1929	    !
;	  1930	    !
;	  1931	
;	L 1932	%if %variant eql 0
;	  1933	%then
;	  1934	
;	M 1935	    $MCB_GET_DSR (LENGTH, ADDRESS) =
;	M 1936		begin
;	M 1937	
;	M 1938		linkage
;	M 1939		    $MCB$LINKAGE_LENGTH = jsr (register = 1) : nopreserve (0, 1) clearstack valuecbit;
;	M 1940	
;	M 1941		external routine
;	M 1942		    $DSRGT : $MCB$LINKAGE_LENGTH;
;	M 1943	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  36
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 1944		global register
;	M 1945		    $MCB$R0 = 0,
;	M 1946		    $MCB$R1 = 1;
;	M 1947	
;	M 1948		! Note: Cbit clear = FALSE = success
;	M 1949	
;	M 1950		if not $DSRGT (LENGTH)
;	M 1951		then
;	M 1952		    begin
;	M 1953		    ADDRESS = .$MCB$R0;
;	M 1954		    RSX$_NORMAL
;	M 1955		    end
;	M 1956		else
;	M 1957		    RSX$_NO_MEMORY
;	M 1958	
;	  1959		end %,
;	  1960	
;	U 1961	%else %if %variant eql 1
;	U 1962	%then
;	U 1963	
;	U 1964	    $MCB_GET_DSR (LENGTH, ADDRESS) =
;	U 1965		begin
;	U 1966	
;	U 1967		linkage
;	U 1968		    $MCB$LINKAGE_LENGTH_ADDRESS = jsr (register = 1; register = 0) :
;	U 1969			clearstack valuecbit;
;	U 1970	
;	U 1971		external routine
;	U 1972		    $DSRGT : $MCB$LINKAGE_LENGTH_ADDRESS;
;	U 1973	
;	U 1974		! Note: Cbit clear = FALSE = success
;	U 1975	
;	U 1976		if not $DSRGT (LENGTH; ADDRESS)
;	U 1977		then
;	U 1978		    RSX$_NORMAL
;	U 1979		else
;	U 1980		    RSX$_NO_MEMORY
;	U 1981	
;	U 1982		end %,
;	U 1983	
;	U 1984	%else
;	U 1985	
;	U 1986	    $MCB_GET_DSR (LENGTH, ADDRESS) =
;	U 1987		begin
;	U 1988	
;	U 1989		linkage
;	U 1990		    $MCB$LINKAGE_LENGTH_ADDRESS = jsr (register = 1; register = 0) :
;	U 1991			clearstack valuecbit;
;	U 1992	
;	U 1993		register
;	U 1994		    $MCB$R0 = 0;
;	U 1995	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  37
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 1996		external routine
;	U 1997		    $DSRGT : $MCB$LINKAGE_LENGTH_ADDRESS;
;	U 1998	
;	U 1999		! Note: Cbit clear = FALSE = success
;	U 2000	
;	U 2001		if not $DSRGT (LENGTH; $MCB$R0)
;	U 2002		then
;	U 2003		    begin
;	U 2004		    ADDRESS = .$MCB$R0;
;	U 2005		    RSX$_NORMAL
;	U 2006		    end
;	U 2007		else
;	U 2008		    RSX$_NO_MEMORY
;	U 2009	
;	U 2010		end %,
;	U 2011	
;	  2012	%fi %fi
;	  2013	
;	  2014	    !
;	  2015	    !
;	  2016	    !
;	  2017	
;	M 2018	    $MCB_GET_EXTENSION_HANDLE (NAME, INDEX) =
;	M 2019		begin
;	M 2020	
;	M 2021		local
;	M 2022		    $MCB$MY_INDEX,
;	M 2023		    $MCB$STATUS;
;	M 2024	
;	M 2025		if ($MCB$STATUS = CALL$I (MCB$K_GET_PROCESS_INDEX, NAME, $MCB$MY_INDEX))
;	M 2026		then
;	M 2027		    INDEX = .$MCB$MY_INDEX;
;	M 2028	
;	M 2029		.$MCB$STATUS
;	  2030		end %,
;	  2031	
;	  2032	    !
;	  2033	    !
;	  2034	    !
;	  2035	
;	M 2036	    $MCB_GET_LINE_PROCESSES (LIX, BUF) =
;	  2037		CALL$I (MCB$K_GET_LINE_PROCESSES, LIX, BUF) %,
;	  2038	
;	  2039	    !
;	  2040	    !
;	  2041	    !
;	  2042	
;	M 2043	    $MCB_GET_PROCESS_HANDLE (NAME, INDEX) =
;	M 2044		begin
;	M 2045	
;	M 2046		local
;	M 2047		    $MCB$MY_INDEX,
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  38
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 2048		    $MCB$STATUS;
;	M 2049	
;	M 2050		if ($MCB$STATUS = CALL$I (MCB$K_GET_PROCESS_INDEX, NAME, $MCB$MY_INDEX))
;	M 2051		then
;	M 2052		    INDEX = .$MCB$MY_INDEX;
;	M 2053	
;	M 2054		.$MCB$STATUS
;	  2055		end %,
;	  2056	
;	  2057	    !
;	  2058	    !
;	  2059	    !
;	  2060	
;	M 2061	    $MCB_GET_RANDOM_NUMBER (MAX) =
;	M 2062		begin
;	M 2063	
;	M 2064		linkage
;	M 2065		    $MCB$LINKAGE_NUM = jsr (register = 0);
;	M 2066	
;	M 2067		external routine
;	M 2068		    $RND : $MCB$LINKAGE_NUM;
;	M 2069	
;	M 2070		$RND (MAX)
;	  2071		end %,
;	  2072	
;	  2073	    !
;	  2074	    !
;	  2075	    !
;	  2076	
;	L 2077	%if %variant eql 0
;	  2078	%then
;	  2079	
;	M 2080	    $MCB_GET_RDB (CCB) =
;	M 2081		begin
;	M 2082	
;	M 2083		linkage
;	M 2084		    $MCB$LINKAGE_CCB = jsr : preserve (0) nopreserve (4) clearstack valuecbit;
;	M 2085	
;	M 2086		external routine
;	M 2087		    $RDBGT : $MCB$LINKAGE_CCB;
;	M 2088	
;	M 2089		global register
;	M 2090		    $MCB$R4 = 4;
;	M 2091	
;	M 2092		! Note: Cbit clear = FALSE = success
;	M 2093	
;	M 2094		if not $RDBGT ()
;	M 2095		then
;	M 2096		    begin
;	M 2097		    CCB = .$MCB$R4;
;	M 2098		    MCB$_NORMAL
;	M 2099		    end
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  39
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 2100		else
;	M 2101		    MCB$_NO_RDB
;	M 2102	
;	  2103		end %,
;	  2104	
;	U 2105	%else %if %variant eql 1
;	U 2106	%then
;	U 2107	
;	U 2108	    $MCB_GET_RDB (CCB) =
;	U 2109		begin
;	U 2110	
;	U 2111		linkage
;	U 2112		    $MCB$LINKAGE_CCB = jsr (; register = 4) : preserve (0) clearstack valuecbit;
;	U 2113	
;	U 2114		external routine
;	U 2115		    $RDBGT : $MCB$LINKAGE_CCB;
;	U 2116	
;	U 2117		! Note: Cbit clear = FALSE = success
;	U 2118	
;	U 2119		if not $RDBGT (; CCB)
;	U 2120		then
;	U 2121		    MCB$_NORMAL
;	U 2122		else
;	U 2123		    MCB$_NO_RDB
;	U 2124	
;	U 2125		end %,
;	U 2126	
;	U 2127	%else
;	U 2128	
;	U 2129	    $MCB_GET_RDB (CCB) =
;	U 2130		begin
;	U 2131	
;	U 2132		linkage
;	U 2133		    $MCB$LINKAGE_CCB = jsr (; register = 4) : preserve (0) clearstack valuecbit;
;	U 2134	
;	U 2135		register
;	U 2136		    $MCB$R4 = 4;
;	U 2137	
;	U 2138		external routine
;	U 2139		    $RDBGT : $MCB$LINKAGE_CCB;
;	U 2140	
;	U 2141		! Note: Cbit clear = FALSE = success
;	U 2142	
;	U 2143		if not $RDBGT (; $MCB$R4)
;	U 2144		then
;	U 2145		    begin
;	U 2146		    CCB = .$MCB$R4;
;	U 2147		    MCB$_NORMAL
;	U 2148		    end
;	U 2149		else
;	U 2150		    MCB$_NO_RDB
;	U 2151	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  40
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 2152		end %,
;	U 2153	
;	  2154	%fi %fi
;	  2155	
;	  2156	    !
;	  2157	    !
;	  2158	    !
;	  2159	
;	M 2160	    $MCB_INITIALIZE_QUEUE (QUEUE) =
;	M 2161		begin
;	M 2162	
;	M 2163		bind
;	M 2164		    $MCB$HIS_QUEUE = QUEUE : vector [2];
;	M 2165	
;	M 2166		$MCB$HIS_QUEUE [0] = 0;
;	M 2167		$MCB$HIS_QUEUE [1] = $MCB$HIS_QUEUE [0];
;	  2168		end %,
;	  2169	
;	  2170	    !
;	  2171	    !
;	  2172	    !
;	  2173	
;	M 2174	    $MCB_MATCH_COND (STATUS, PLIT_VECTOR) =
;	M 2175		begin
;	M 2176	
;	M 2177		linkage
;	M 2178		    $MCB$LINKAGE_STS_VEC = jsr (register = 1, register = 0);
;	M 2179	
;	M 2180		external routine
;	M 2181		    $IDSTS : $MCB$LINKAGE_STS_VEC;
;	M 2182	
;	M 2183		$IDSTS (STATUS, PLIT_VECTOR)
;	  2184		end %,
;	  2185	
;	  2186	    !
;	  2187	    !
;	  2188	    !
;	  2189	
;	M 2190	    $MCB_MATCH_VALUE (VALUE, PLIT_VECTOR) =
;	M 2191		begin
;	M 2192	
;	M 2193		linkage
;	M 2194		    $MCB$LINKAGE_VAL_VEC = jsr (register = 1, register = 0);
;	M 2195	
;	M 2196		external routine
;	M 2197		    $IDVAL : $MCB$LINKAGE_VAL_VEC;
;	M 2198	
;	M 2199		$IDVAL (VALUE, PLIT_VECTOR)
;	  2200		end %,
;	  2201	
;	  2202	    !
;	  2203	    !
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  41
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  2204	    !
;	  2205	
;	L 2206	%if %variant eql 0
;	  2207	%then
;	  2208	
;	M 2209	    $MCB_MCB_TO_RSX (LLC_DB, UCB) =
;	M 2210		begin
;	M 2211	
;	M 2212		linkage
;	M 2213		    $MCB$LINKAGE_UCB = jsr : preserve (0) nopreserve (5);
;	M 2214	
;	M 2215		external routine
;	M 2216		    $RSX : $MCB$LINKAGE_UCB novalue;
;	M 2217	
;	M 2218		global register
;	M 2219		    $MCB$R5 = 5;
;	M 2220	
;	M 2221		$RSX ();
;	M 2222		%if not %null (UCB) %then UCB = .$MCB$R5; %fi
;	  2223		end %,
;	  2224	
;	U 2225	%else
;	U 2226	
;	U 2227	    $MCB_MCB_TO_RSX (LLC_DB, UCB) =
;	U 2228		begin
;	U 2229	
;	U 2230		linkage
;	U 2231		    $MCB$LINKAGE_UCB = jsr (; register = 5) : preserve (0);
;	U 2232	
;	U 2233		external routine
;	U 2234		    $RSX : $MCB$LINKAGE_UCB novalue;
;	U 2235	
;	U 2236		$RSX (; UCB);
;	U 2237		end %,
;	U 2238	
;	  2239	%fi
;	  2240	
;	  2241	    !
;	  2242	    ! Move to mapped buffer
;	  2243	    !
;	  2244	
;	M 2245	    $MCB_MOVE_BUFFER_TO_BUFFER (LNG, FROM_BUFFER, TO_BUFFER) =
;	M 2246		%if %identical (FROM_BUFFER, (%remove (FROM_BUFFER))) and
;	M 2247		    %identical (TO_BUFFER, (%remove (TO_BUFFER)))
;	M 2248		%then %errormacro ('Cannot move from unmapped to unmapped buffer') %fi
;	M 2249		%if not %identical (FROM_BUFFER, (%remove (FROM_BUFFER))) and
;	M 2250		    not %identical (TO_BUFFER, (%remove (TO_BUFFER)))
;	M 2251		%then ch$move (LNG, FROM_BUFFER, TO_BUFFER) %exitmacro %fi
;	M 2252		begin
;	M 2253	
;	M 2254		linkage
;	M 2255		    $MCB$LINKAGE_ADDR_LNG = jsr (register = 2, register = 3) : preserve (0) nopreserve (2, 3);
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  42
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 2256	
;	M 2257		external routine
;	M 2258		    %if %identical (FROM_BUFFER, (%remove (FROM_BUFFER)))
;	M 2259		    %then $MVFBF %else $MVTBF %fi : $MCB$LINKAGE_ADDR_LNG novalue;
;	M 2260	
;	M 2261		%if %identical (FROM_BUFFER, (%remove (FROM_BUFFER)))
;	M 2262		%then $MVFBF (TO_BUFFER, LNG, %remove (FROM_BUFFER))
;	M 2263		%else $MVTBF (FROM_BUFFER, LNG, %remove (TO_BUFFER))
;	M 2264		%fi
;	  2265		end %,
;	  2266	
;	  2267	    !
;	  2268	    !
;	  2269	    !
;	  2270	
;	M 2271	    $MCB_PAUSE (SYNCH_BLOCK, ADDRESS) =
;	M 2272		begin
;	M 2273	
;	M 2274		linkage
;	M 2275		    $MCB$LINKAGE_SBLK = jsr (register = 4) : preserve (0) nopreserve (4);
;	M 2276	
;	M 2277		external routine
;	M 2278		    $PAUSE : $MCB$LINKAGE_SBLK novalue;
;	M 2279	
;	M 2280		block [SYNCH_BLOCK, 2, 0, %bpaddr, 0] = ADDRESS;
;	M 2281		$PAUSE (SYNCH_BLOCK);
;	  2282		end %,
;	  2283	
;	  2284	    !
;	  2285	    ! Queue a CCB on a queue
;	  2286	    !
;	  2287	
;	M 2288	    $MCB_QUEUE_CCB (QUEUE, CCB) =
;	M 2289		begin
;	M 2290	
;	M 2291		linkage
;	M 2292		    $MCB$LINKAGE_QUEUE_CCB = jsr (register = 4, register = 3) : preserve (0);
;	M 2293	
;	M 2294		external routine
;	M 2295		    $CMQIN : $MCB$LINKAGE_QUEUE_CCB novalue;
;	M 2296	
;	M 2297		$CMQIN (CCB, QUEUE);
;	  2298		end %,
;	  2299	
;	  2300	    !
;	  2301	    !
;	  2302	    !
;	  2303	
;	M 2304	    $MCB_REQUEST_CCB (DUMMY) =
;	M 2305		begin
;	M 2306	
;	M 2307		external routine
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  43
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 2308		    $CCBRQ : novalue;
;	M 2309	
;	M 2310		$CCBRQ ();
;	  2311		end %,
;	  2312	
;	  2313	    !
;	  2314	    !
;	  2315	    !
;	  2316	
;	M 2317	    $MCB_REQUEST_RDB (DUMMY) =
;	M 2318		begin
;	M 2319	
;	M 2320		external routine
;	M 2321		    $RDBRQ : novalue;
;	M 2322	
;	M 2323		$RDBRQ ();
;	  2324		end %,
;	  2325	
;	  2326	    !
;	  2327	    !
;	  2328	    !
;	  2329	
;	M 2330	    $MCB_RETURN_BUFFER (LENGTH, ADDRESS) =
;	  2331		$MCB_RETURN_CORE (LENGTH, ADDRESS) %,
;	  2332	
;	  2333	    !
;	  2334	    ! Return a CCB
;	  2335	    !
;	  2336	
;	M 2337	    $MCB_RETURN_CCB (CCB) =
;	M 2338		begin
;	M 2339	
;	M 2340		linkage
;	M 2341		    $MCB$LINKAGE_CCB = jsr (register = 4) : preserve (0) nopreserve (4);
;	M 2342	
;	M 2343		external routine
;	M 2344		    $CCBRT : $MCB$LINKAGE_CCB novalue;
;	M 2345	
;	M 2346		$CCBRT (CCB);
;	  2347		end %,
;	  2348	
;	  2349	    !
;	  2350	    !
;	  2351	    !
;	  2352	
;	M 2353	    $MCB_RETURN_CCB_AND_BUFFER (LENGTH, CCB) =
;	M 2354		begin
;	M 2355	
;	M 2356		linkage
;	M 2357		    $MCB$LINKAGE_LENGTH_CCB = jsr (register = 1, register = 4) : preserve (0) nopreserve (4);
;	M 2358	
;	M 2359		external routine
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  44
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 2360		    $CBBRT : $MCB$LINKAGE_LENGTH_CCB novalue;
;	M 2361	
;	M 2362		$CBBRT (LENGTH, CCB);
;	  2363		end %,
;	  2364	
;	  2365	    !
;	  2366	    !
;	  2367	    !
;	  2368	
;	M 2369	    $MCB_RETURN_CORE (LENGTH, ADDRESS) =
;	M 2370		begin
;	M 2371	
;	M 2372		linkage
;	M 2373		    $MCB$LINKAGE_LENGTH_ADDRESS = jsr (register = 1, register = 0) : nopreserve (0, 1);
;	M 2374	
;	M 2375		external routine
;	M 2376		    $CORRT : $MCB$LINKAGE_LENGTH_ADDRESS novalue;
;	M 2377	
;	M 2378		$CORRT (LENGTH, ADDRESS);
;	  2379		end %,
;	  2380	
;	  2381	    !
;	  2382	    !
;	  2383	    !
;	  2384	
;	M 2385	    $MCB_RETURN_DSR (LENGTH, ADDRESS) =
;	M 2386		begin
;	M 2387	
;	M 2388		linkage
;	M 2389		    $MCB$LINKAGE_ADDRESS_LENGTH = jsr (register = 0, register = 1) : nopreserve (0, 1);
;	M 2390	
;	M 2391		external routine
;	M 2392		    $DSRRT : $MCB$LINKAGE_ADDRESS_LENGTH novalue;
;	M 2393	
;	M 2394		$DSRRT (ADDRESS, LENGTH);
;	  2395		end %,
;	  2396	
;	  2397	    !
;	  2398	    !
;	  2399	    !
;	  2400	
;	M 2401	    $MCB_RETURN_RDB (CCB) =
;	M 2402		begin
;	M 2403	
;	M 2404		linkage
;	M 2405		    $MCB$LINKAGE_CCB = jsr (register = 4) : preserve (0) nopreserve (4);
;	M 2406	
;	M 2407		external routine
;	M 2408		    $RDBRT : $MCB$LINKAGE_CCB novalue;
;	M 2409	
;	M 2410		$RDBRT (CCB);
;	  2411		end %,
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  45
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  2412	
;	  2413	    !
;	  2414	    !
;	  2415	    !
;	  2416	
;	L 2417	%if %variant eql 0
;	  2418	%then
;	  2419	
;	M 2420	    $MCB_RSX_TO_MCB (UCB, LLC_DB) =
;	M 2421		begin
;	M 2422	
;	M 2423		linkage
;	M 2424		    $MCB$LINKAGE_UCB_DB = jsr (register = 5) : preserve (0) nopreserve (5);
;	M 2425	
;	M 2426		external routine
;	M 2427		    $MCB : $MCB$LINKAGE_UCB_DB novalue;
;	M 2428	
;	M 2429		global register
;	M 2430		    $MCB$R5 = 5;
;	M 2431	
;	M 2432		$MCB (UCB);
;	M 2433		%if not %null (LLC_DB) %then LLC_DB = .$MCB$R5; %fi
;	  2434		end %,
;	  2435	
;	U 2436	%else
;	U 2437	
;	U 2438	    $MCB_RSX_TO_MCB (UCB, LLC_DB) =
;	U 2439		begin
;	U 2440	
;	U 2441		linkage
;	U 2442		    $MCB$LINKAGE_UCB_DB = jsr (register = 5; register = 5) : preserve (0);
;	U 2443	
;	U 2444		external routine
;	U 2445		    $MCB : $MCB$LINKAGE_UCB_DB novalue;
;	U 2446	
;	U 2447		$MCB (UCB; LLC_DB)
;	U 2448		end %,
;	U 2449	
;	  2450	%fi
;	  2451	
;	  2452	    !
;	  2453	    !
;	  2454	    !
;	  2455	
;	M 2456	    $MCB_SCHEDULE_CCB (CCB) =
;	M 2457		begin
;	M 2458	
;	M 2459		linkage
;	M 2460		    $MCB$LINKAGE_CCB = jsr (register = 4) : preserve (0) nopreserve (4);
;	M 2461	
;	M 2462		external routine
;	M 2463		    $SCHED : $MCB$LINKAGE_CCB novalue;
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  46
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 2464	
;	M 2465		$SCHED (CCB);
;	  2466		end %,
;	  2467	
;	  2468	    !
;	  2469	    ! Setup an Exception Vector
;	  2470	    !
;	  2471	
;	M 2472	    $MCB_SET_EXCEPTION (TYPE, NEW, OLD) =
;	M 2473		CALL$I (MCB$K_SET_EXCEPTION, TYPE, NEW,
;	  2474		    %if not %null (OLD) %then OLD %else 0 %fi) %,
;	  2475	
;	  2476	    !
;	  2477	    !
;	  2478	    !
;	  2479	
;	M 2480	    $MCB_SET_LINE_PROCESSES (LIX, BUF) =
;	  2481		CALL$I (MCB$K_SET_LINE_PROCESSES, LIX, BUF) %,
;	  2482	
;	  2483	    !
;	  2484	    !
;	  2485	    !
;	  2486	
;	M 2487	    $MCB_SET_PROCESS (NAME, INDEX) =
;	M 2488		begin
;	M 2489	
;	M 2490		local
;	M 2491		    $MCB$MY_INDEX,
;	M 2492		    $MCB$STATUS;
;	M 2493	
;	M 2494		if ($MCB$STATUS = CALL$I (MCB$K_SET_PROCESS, $MCB$MY_INDEX
;	M 2495			%if not %null (NAME) %then , NAME %fi))
;	M 2496		then
;	M 2497		    INDEX = .$MCB$MY_INDEX;
;	M 2498	
;	M 2499		.$MCB$STATUS
;	  2500		end %,
;	  2501	
;	  2502	    !
;	  2503	    !
;	  2504	    !
;	  2505	
;	M 2506	    $MCB_SET_PROCESS_NAME (NAME) =
;	  2507		CALL$I (MCB$K_SET_PROCESS_NAME, NAME) %,
;	  2508	
;	  2509	    !
;	  2510	    !
;	  2511	    !
;	  2512	
;	M 2513	    $MCB_SET_VECTOR (VECTOR, DISPATCH, PRIORITY) =
;	  2514		CALL$I (MCB$K_SET_VECTOR, VECTOR, DISPATCH, PRIORITY) %,
;	  2515	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  47
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  2516	    !
;	  2517	    ! Stack a CCB on a queue
;	  2518	    !
;	  2519	
;	M 2520	    $MCB_STACK_CCB (QUEUE, CCB) =
;	M 2521		begin
;	M 2522	
;	M 2523		linkage
;	M 2524		    $MCB$LINKAGE_QUEUE_CCB = jsr (register = 4, register = 3) : preserve (0);
;	M 2525	
;	M 2526		external routine
;	M 2527		    $CMQIF : $MCB$LINKAGE_QUEUE_CCB novalue;
;	M 2528	
;	M 2529		$CMQIF (CCB, QUEUE);
;	  2530		end %,
;	  2531	
;	  2532	    !
;	  2533	    !
;	  2534	    !
;	  2535	
;	M 2536	    $MCB_START_SHORT_TIMER (TIMER_BLOCK) =
;	M 2537		begin
;	M 2538	
;	M 2539		linkage
;	M 2540		    $MCB$LINKAGE_TIMER = jsr (register = 4) : preserve (0);
;	M 2541	
;	M 2542		external routine
;	M 2543		    $STMRQ : $MCB$LINKAGE_TIMER novalue;
;	M 2544	
;	M 2545		$STMRQ (TIMER_BLOCK);
;	  2546		end %,
;	  2547	
;	  2548	    !
;	  2549	    !
;	  2550	    !
;	  2551	
;	M 2552	    $MCB_SYNCHRONIZE (SYNCH_BLOCK, ADDRESS) =
;	M 2553		begin
;	M 2554	
;	M 2555		linkage
;	M 2556		    $MCB$LINKAGE_SBLK = jsr (register = 4) : preserve (0) nopreserve (4);
;	M 2557	
;	M 2558		external routine
;	M 2559		    $SYNCH : $MCB$LINKAGE_SBLK novalue;
;	M 2560	
;	M 2561		block [SYNCH_BLOCK, 2, 0, %bpaddr, 0] = ADDRESS;
;	M 2562		$SYNCH (SYNCH_BLOCK);
;	  2563		end %;
;	  2564	
;	  2565	%FI %(BLISS16)%
;	  2566	
;	L 2567	%IF %BLISS (BLISS16)
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  48
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  2568	%THEN %(BLISS16)%
;	  2569	
;	  2570	!
;	  2571	! RSX interface macros
;	  2572	!
;	  2573	
;	  2574	MACRO
;	  2575	
;	  2576	    !
;	  2577	    !
;	  2578	    !
;	  2579	
;	M 2580	    ACHCK$ (ADDRESS, LENGTH) =
;	  2581		$RSX_VALIDATE_BUFFER (LENGTH, ADDRESS) %,
;	  2582	
;	  2583	    !
;	  2584	    !
;	  2585	    !
;	  2586	
;	M 2587	    ACHKB$ (ADDRESS, LENGTH) =
;	M 2588		begin
;	M 2589	
;	M 2590		linkage
;	M 2591		    $RSX$LINKAGE_ADDRESS_LENGTH = jsr (register = 0, register = 1)
;	M 2592			: nopreserve (1, 2) clearstack valuecbit;
;	M 2593	
;	M 2594		external routine
;	M 2595		    $ACHKB : $RSX$LINKAGE_ADDRESS_LENGTH;
;	M 2596	
;	M 2597		! Note: Cbit clear = FALSE = success
;	M 2598	
;	M 2599		if not $ACHKB (ADDRESS, LENGTH)
;	M 2600		then
;	M 2601		    RSX$_NORMAL
;	M 2602		else
;	M 2603		    RSX$_INVALID_ADDRESS
;	M 2604	
;	  2605		end %,
;	  2606	
;	  2607	    !
;	  2608	    !
;	  2609	    !
;	  2610	
;	  2611	    ALOCB$ = $RSX_GET_DSR %,
;	  2612	
;	  2613	    !
;	  2614	    !
;	  2615	    !
;	  2616	
;	M 2617	    DEACB$ (ADDRESS, LENGTH) =
;	  2618		$RSX_RETURN_DSR (LENGTH, ADDRESS) %,
;	  2619	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  49
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  2620	    !
;	  2621	    !
;	  2622	    !
;	  2623	
;	  2624	    GTPKT$ = $MCB_GET_IOP %,
;	  2625	
;	  2626	    !
;	  2627	    !
;	  2628	    !
;	  2629	
;	L 2630	%if %variant eql 0
;	  2631	%then
;	  2632	
;	M 2633	    IOALT$ (UCB, STATUS, IOP) =
;	M 2634		begin
;	M 2635	
;	M 2636		linkage
;	M 2637		    $RSX$LINKAGE_UCB_STATUS = jsr (register = 5, register = 0)
;	M 2638			: nopreserve (0, 1, 2, 3, 4);
;	M 2639	
;	M 2640		external routine
;	M 2641		    $IOALT : $RSX$LINKAGE_UCB_STATUS novalue;
;	M 2642	
;	M 2643		global register
;	M 2644		    $RSX$R3 = 3;
;	M 2645	
;	M 2646		$IOALT (UCB, STATUS);
;	M 2647		%if not %null (IOP) %then IOP = .$RSX$R3; %fi
;	  2648		end %,
;	  2649	
;	U 2650	%else
;	U 2651	
;	U 2652	    IOALT$ (UCB, STATUS, IOP) =
;	U 2653		begin
;	U 2654	
;	U 2655		linkage
;	U 2656		    $RSX$LINKAGE_UCB_STATUS = jsr (register = 5, register = 0; register = 3)
;	U 2657			: nopreserve (0, 1, 2, 3, 4);
;	U 2658	
;	U 2659		external routine
;	U 2660		    $IOALT : $RSX$LINKAGE_UCB_STATUS novalue;
;	U 2661	
;	U 2662		$IOALT (UCB, STATUS; IOP)
;	U 2663		end %,
;	U 2664	
;	  2665	%fi
;	  2666	
;	  2667	    !
;	  2668	    !
;	  2669	    !
;	  2670	
;	L 2671	%if %variant eql 0
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  50
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  2672	%then
;	  2673	
;	M 2674	    IODON$ (UCB, STATUS, COUNT, IOP) =
;	M 2675		begin
;	M 2676	
;	M 2677		linkage
;	M 2678		    $RSX$LINKAGE_UCB_STATUS_COUNT = jsr (register = 5, register = 0, register = 1)
;	M 2679			: nopreserve (0, 1, 2, 3, 4);
;	M 2680	
;	M 2681		external routine
;	M 2682		    $IODON : $RSX$LINKAGE_UCB_STATUS_COUNT novalue;
;	M 2683	
;	M 2684		global register
;	M 2685		    $RSX$R3 = 3;
;	M 2686	
;	M 2687		$IODON (UCB, STATUS, COUNT);
;	M 2688		%if not %null (IOP) %then IOP = .$RSX$R3; %fi
;	  2689		end %,
;	  2690	
;	U 2691	%else
;	U 2692	
;	U 2693	    IODON$ (UCB, STATUS, COUNT, IOP) =
;	U 2694		begin
;	U 2695	
;	U 2696		linkage
;	U 2697		    $RSX$LINKAGE_UCB_STATUS_COUNT = jsr (register = 5, register = 0, register = 1; register = 3)
;	U 2698			: nopreserve (0, 1, 2, 3, 4);
;	U 2699	
;	U 2700		external routine
;	U 2701		    $IODON : $RSX$LINKAGE_UCB_STATUS_COUNT novalue;
;	U 2702	
;	U 2703		$IODON (UCB, STATUS, COUNT; IOP)
;	U 2704		end %,
;	U 2705	
;	  2706	%fi
;	  2707	
;	  2708	    !
;	  2709	    !
;	  2710	    !
;	  2711	
;	M 2712	    IOFIN$ (UCB, IOP, STATUS, COUNT) =
;	M 2713		begin
;	M 2714	
;	M 2715		linkage
;	M 2716		    $RSX$LINKAGE_UCB_IOP_STS_CNT = jsr (register = 5, register = 3, register = 0, register = 1)
;	M 2717			: nopreserve (0, 1, 2, 3, 4);
;	M 2718	
;	M 2719		external routine
;	M 2720		    $IOFIN : $RSX$LINKAGE_UCB_IOP_STS_CNT novalue;
;	M 2721	
;	M 2722		$IOFIN (UCB, IOP, STATUS, COUNT);
;	  2723		end %,
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  51
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  2724	
;	  2725	    !
;	  2726	    !
;	  2727	    !
;	  2728	
;	M 2729	    QINSP$ (LIST_HEAD, ENTRY) =
;	M 2730		begin
;	M 2731	
;	M 2732		linkage
;	M 2733		    $RSX$LINKAGE_QUEUE_ENTRY = jsr (register = 0, register = 1)
;	M 2734			: nopreserve (2, 3);
;	M 2735	
;	M 2736		external routine
;	M 2737		    $QINSP : $RSX$LINKAGE_QUEUE_ENTRY novalue;
;	M 2738	
;	M 2739		$QINSP (LIST_HEAD, ENTRY);
;	  2740		end %,
;	  2741	
;	  2742	    !
;	  2743	    !
;	  2744	    !
;	  2745	
;	L 2746	%if %variant eql 0
;	  2747	%then
;	  2748	
;	M 2749	    QRMVF$ (LIST_HEAD, ENTRY) =
;	M 2750		begin
;	M 2751	
;	M 2752		linkage
;	M 2753		    $RSX$LINKAGE_QUEUE = jsr (register = 0)
;	M 2754			: nopreserve (1, 2, 3) clearstack valuecbit;
;	M 2755	
;	M 2756		external routine
;	M 2757		    $QRMVF : $RSX$LINKAGE_QUEUE;
;	M 2758	
;	M 2759		global register
;	M 2760		    $RSX$R1 = 1;
;	M 2761	
;	M 2762		! Note: Cbit clear = FALSE = success
;	M 2763	
;	M 2764		if not $QRMVF (LIST_HEAD)
;	M 2765		then
;	M 2766		    begin
;	M 2767		    ENTRY = .$RSX$R1;
;	M 2768		    RSX$_NORMAL
;	M 2769		    else
;	M 2770		else
;	M 2771		    RSX$_QUEUE_EMPTY
;	M 2772	
;	  2773		end %,
;	  2774	
;	U 2775	%else %if %variant eql 1
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  52
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 2776	%then
;	U 2777	
;	U 2778	    QRMVF$ (LIST_HEAD, ENTRY) =
;	U 2779		begin
;	U 2780	
;	U 2781		linkage
;	U 2782		    $RSX$LINKAGE_QUEUE = jsr (register = 0; register = 1)
;	U 2783			: nopreserve (2, 3) clearstack valuecbit;
;	U 2784	
;	U 2785		external routine
;	U 2786		    $QRMVF : $RSX$LINKAGE_QUEUE;
;	U 2787	
;	U 2788		! Note: Cbit clear = FALSE = success
;	U 2789	
;	U 2790		if not $QRMVF (LIST_HEAD; ENTRY)
;	U 2791		then
;	U 2792		    RSX$_NORMAL
;	U 2793		else
;	U 2794		    RSX$_QUEUE_EMPTY
;	U 2795	
;	U 2796		end %,
;	U 2797	
;	U 2798	%else
;	U 2799	
;	U 2800	    QRMVF$ (LIST_HEAD, ENTRY) =
;	U 2801		begin
;	U 2802	
;	U 2803		linkage
;	U 2804		    $RSX$LINKAGE_QUEUE = jsr (register = 0; register = 1)
;	U 2805			: nopreserve (2, 3) clearstack valuecbit;
;	U 2806	
;	U 2807		register
;	U 2808		    $RSX$R1 = 1;
;	U 2809	
;	U 2810		external routine
;	U 2811		    $QRMVF : $RSX$LINKAGE_QUEUE;
;	U 2812	
;	U 2813		! Note: Cbit clear = FALSE = success
;	U 2814	
;	U 2815		if not $QRMVF (LIST_HEAD; $RSX$R1)
;	U 2816		then
;	U 2817		    begin
;	U 2818		    ENTRY = .$RSX$R1;
;	U 2819		    RSX$_NORMAL
;	U 2820		    end
;	U 2821		else
;	U 2822		    RSX$_QUEUE_EMPTY
;	U 2823	
;	U 2824		end %,
;	U 2825	
;	  2826	%fi %fi
;	  2827	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  53
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  2828	    !
;	  2829	    !
;	  2830	    !
;	  2831	
;	  2832	    RELOC$ = $RSX_CONVERT_TO_BIAS_ADDRESS %,
;	  2833	
;	  2834	    !
;	  2835	    !
;	  2836	    !
;	  2837	
;	M 2838	    EXRQN$ (TCB) =
;	M 2839		begin
;	M 2840	
;	M 2841		linkage
;	M 2842		    $RSX$LINKAGE_TCB = jsr (register = 0) : nopreserve (0, 1, 2, 3);
;	M 2843	
;	M 2844		external routine
;	M 2845		    $EXRQN : $RSX$LINKAGE_TCB novalue;
;	M 2846	
;	M 2847		$EXRQN (TCB);
;	  2848		end %,
;	  2849	
;	  2850	    !
;	  2851	    !
;	  2852	    !
;	  2853	
;	M 2854	    QASTT$ (TCB, AST) =
;	M 2855		begin
;	M 2856	
;	M 2857		linkage
;	M 2858		    $RSX$LINKAGE_TCB_AST = jsr (register = 0, register = 1)
;	M 2859			: nopreserve (0, 2, 3);
;	M 2860	
;	M 2861		external routine
;	M 2862		    $QASTT : $RSX$LINKAGE_TCB_AST novalue;
;	M 2863	
;	M 2864		$QASTT (TCB, AST);
;	  2865		end %,
;	  2866	
;	  2867	    !
;	  2868	    !
;	  2869	    !
;	  2870	
;	M 2871	    TSKRT$ (tcb, uic) =
;	M 2872		begin
;	M 2873	
;	M 2874		linkage
;	M 2875		    $RSX$LINKAGE_TCB_UIC = jsr (register = 0, register = 1) : nopreserve (0, 1, 2, 3)
;	M 2876			clearstack valuecbit;
;	M 2877	
;	M 2878		external routine
;	M 2879		    $TSKRT: $RSX$LINKAGE_TCB_UIC;
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  54
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 2880	
;	M 2881		! Note: Cbit clear = FALSE = success
;	M 2882	
;	M 2883		if not $TSKRT (tcb, uic)
;	M 2884		then
;	M 2885		    RSX$_NORMAL
;	M 2886		else
;	M 2887		    RSX$_NO_TASK
;	M 2888	
;	  2889		end %,
;	  2890	
;	L 2891	%if %variant eql 0
;	  2892	%then
;	  2893	
;	M 2894	    $RSX_CONVERT_TO_BIAS_ADDRESS (USER_ADDRESS, BIAS, ADDRESS) =
;	M 2895		begin
;	M 2896	
;	M 2897		linkage
;	M 2898		    $RSX$LINKAGE_ADDRESS = jsr (register = 0) : nopreserve (1, 2);
;	M 2899	
;	M 2900		external routine
;	M 2901		    $RELOC : $RSX$LINKAGE_ADDRESS novalue;
;	M 2902	
;	M 2903		global register
;	M 2904		    $RSX$R1 = 1,
;	M 2905		    $RSX$R2 = 2;
;	M 2906	
;	M 2907		$RELOC (USER_ADDRESS);
;	M 2908		BIAS = .$RSX$R1;
;	M 2909		ADDRESS = .$RSX$R2;
;	  2910		end %,
;	  2911	
;	U 2912	%else
;	U 2913	
;	U 2914	    $RSX_CONVERT_TO_BIAS_ADDRESS (USER_ADDRESS, BIAS, ADDRESS) =
;	U 2915		begin
;	U 2916	
;	U 2917		linkage
;	U 2918		    $RSX$LINKAGE_ADDRESS = jsr (register = 0; register = 1, register = 2);
;	U 2919	
;	U 2920		external routine
;	U 2921		    $RELOC : $RSX$LINKAGE_ADDRESS novalue;
;	U 2922	
;	U 2923		$RELOC (USER_ADDRESS; BIAS, ADDRESS)
;	U 2924		end %,
;	U 2925	
;	  2926	%fi
;	  2927	
;	L 2928	%if %variant eql 0
;	  2929	%then
;	  2930	
;	M 2931	    $RSX_GET_DSR (LENGTH, ADDRESS, ALLOCATED_LENGTH) =
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  55
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 2932		begin
;	M 2933	
;	M 2934		linkage
;	M 2935		    $RSX$LINKAGE_LENGTH = jsr (register = 1) : nopreserve (0, 1, 2) clearstack valuecbit;
;	M 2936	
;	M 2937		external routine
;	M 2938		    $ALOCB : $RSX$LINKAGE_LENGTH;
;	M 2939	
;	M 2940		global register
;	M 2941		    $RSX$R0 = 0,
;	M 2942		    $RSX$R1 = 1;
;	M 2943	
;	M 2944		! Note: Cbit clear = FALSE = success
;	M 2945	
;	M 2946		if not $ALOCB (LENGTH)
;	M 2947		then
;	M 2948		    begin
;	M 2949		    ADDRESS = .$RSX$R0;
;	M 2950		    %if not %null (ALLOCATED_LENGTH)
;	M 2951		    %then ALLOCATED_LENGTH = .$RSX$R1; %fi
;	M 2952		    RSX$_NORMAL
;	M 2953		    end
;	M 2954		else
;	M 2955		    RSX$_NO_MEMORY
;	M 2956	
;	  2957		end %,
;	  2958	
;	U 2959	%else %if %variant eql 1
;	U 2960	%then
;	U 2961	
;	U 2962	    $RSX_GET_DSR (LENGTH, ADDRESS, ALLOCATED_LENGTH) =
;	U 2963		begin
;	U 2964	
;	U 2965		linkage
;	U 2966		    $RSX$LINKAGE_LENGTH = jsr (register = 1; register = 0, register = 1) :
;	U 2967			nopreserve (0, 1, 2) clearstack valuecbit;
;	U 2968	
;	U 2969		external routine
;	U 2970		    $ALOCB : $RSX$LINKAGE_LENGTH;
;	U 2971	
;	U 2972		! Note: Cbit clear = FALSE = success
;	U 2973	
;	U 2974		if not $ALOCB (LENGTH; ADDRESS, ALLOCATED_LENGTH)
;	U 2975		then
;	U 2976		    RSX$_NORMAL
;	U 2977		else
;	U 2978		    RSX$_NO_MEMORY
;	U 2979	
;	U 2980		end %,
;	U 2981	
;	U 2982	%else
;	U 2983	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  56
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 2984	    $RSX_GET_DSR (LENGTH, ADDRESS, ALLOCATED_LENGTH) =
;	U 2985		begin
;	U 2986	
;	U 2987		linkage
;	U 2988		    $RSX$LINKAGE_LENGTH = jsr (register = 1; register = 0, register = 1) :
;	U 2989			nopreserve (0, 1, 2) clearstack valuecbit;
;	U 2990	
;	U 2991		register
;	U 2992		    $RSX$R1 = 1,
;	U 2993		    $RSX$R0 = 0;
;	U 2994	
;	U 2995		external routine
;	U 2996		    $ALOCB : $RSX$LINKAGE_LENGTH;
;	U 2997	
;	U 2998		! Note: Cbit clear = FALSE = success
;	U 2999	
;	U 3000		if not $ALOCB (LENGTH; $RSX$R0, $RSX$R1)
;	U 3001		then
;	U 3002		    begin
;	U 3003		    ADDRESS = .$RSX$R0;
;	U 3004		    %if not %null (ALLOCATED_LENGTH)
;	U 3005		    %then ALLOCATED_LENGTH = .$RSX$R1; %fi
;	U 3006		    RSX$_NORMAL
;	U 3007		    end
;	U 3008		else
;	U 3009		    RSX$_NO_MEMORY
;	U 3010	
;	U 3011		end %,
;	U 3012	
;	  3013	%fi %fi
;	  3014	
;	L 3015	%if %variant eql 0
;	  3016	%then
;	  3017	
;	M 3018	    $RSX_ACCEPT_IOP (OLD_UCB, IOP, UNIT, CONTROLLER, SCB, NEW_UCB) =
;	M 3019		begin
;	M 3020	
;	M 3021		linkage
;	M 3022		    $RSX$LINKAGE_UCB = jsr (register = 5) : nopreserve (1, 2, 3, 4, 5) clearstack valuecbit;
;	M 3023	
;	M 3024		external routine
;	M 3025		    $GTPKT : $RSX$LINKAGE_UCB;
;	M 3026	
;	M 3027		global register
;	M 3028		    $RSX$R1 = 1,
;	M 3029		    $RSX$R2 = 2,
;	M 3030		    $RSX$R3 = 3,
;	M 3031		    $RSX$R4 = 4,
;	M 3032		    $RSX$R5 = 5;
;	M 3033	
;	M 3034		! Note: Cbit clear = FALSE = success
;	M 3035	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  57
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 3036		if not $GTPKT (OLD_UCB)
;	M 3037		then
;	M 3038		    begin
;	M 3039		    %if not %null (IOP) %then IOP = .$RSX$R1; %fi
;	M 3040		    %if not %null (UNIT) %then UNIT = .$RSX$R2; %fi
;	M 3041		    %if not %null (CONTROLLER) %then CONTROLLER = .$RSX$R3; %fi
;	M 3042		    %if not %null (SCB) %then SCB = .$RSX$R4; %fi
;	M 3043		    %if not %null (NEW_UCB) %then NEW_UCB = .$RSX$R5; %fi
;	M 3044		    RSX$_NORMAL
;	M 3045		    end
;	M 3046		else
;	M 3047		    RSX$_NO_PACKET
;	M 3048	
;	  3049		end %,
;	  3050	
;	U 3051	%else %if %variant eql 1
;	U 3052	%then
;	U 3053	
;	U 3054	    $RSX_ACCEPT_IOP (OLD_UCB, IOP, UNIT, CONTROLLER, SCB, NEW_UCB) =
;	U 3055		begin
;	U 3056	
;	U 3057		linkage
;	U 3058		    $RSX$LINKAGE_UCB = jsr (register = 5; register = 1, register = 2,
;	U 3059			register = 3, register = 4, register = 5) : clearstack valuecbit;
;	U 3060	
;	U 3061		external routine
;	U 3062		    $GTPKT : $RSX$LINKAGE_UCB;
;	U 3063	
;	U 3064		! Note: Cbit clear = FALSE = success
;	U 3065	
;	U 3066		if not $GTPKT (OLD_UCB; IOP, UNIT, CONTROLLER, SCB, NEW_UCB)
;	U 3067		then
;	U 3068		    RSX$_NORMAL
;	U 3069		else
;	U 3070		    RSX$_NO_PACKET
;	U 3071	
;	U 3072		end %,
;	U 3073	
;	U 3074	%else
;	U 3075	
;	U 3076	    $RSX_ACCEPT_IOP (OLD_UCB, IOP, UNIT, CONTROLLER, SCB, NEW_UCB) =
;	U 3077		begin
;	U 3078	
;	U 3079		linkage
;	U 3080		    $RSX$LINKAGE_UCB = jsr (register = 5; register = 1, register = 2,
;	U 3081			register = 3, register = 4, register = 5) : clearstack valuecbit;
;	U 3082	
;	U 3083		register
;	U 3084		    $RSX$R1 = 1,
;	U 3085		    $RSX$R2 = 2,
;	U 3086		    $RSX$R3 = 3,
;	U 3087		    $RSX$R4 = 4,
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  58
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 3088		    $RSX$R5 = 5;
;	U 3089	
;	U 3090		external routine
;	U 3091		    $GTPKT : $RSX$LINKAGE_UCB;
;	U 3092	
;	U 3093		! Note: Cbit clear = FALSE = success
;	U 3094	
;	U 3095		if not $GTPKT (OLD_UCB; $RSX$R1, $RSX$R2, $RSX$R3, $RSX$R4, $RSX$R5)
;	U 3096		then
;	U 3097		    begin
;	U 3098		    %if not %null (IOP) %then IOP = .$RSX$R1; %fi
;	U 3099		    %if not %null (UNIT) %then UNIT = .$RSX$R2; %fi
;	U 3100		    %if not %null (CONTROLLER) %then CONTROLLER = .$RSX$R3; %fi
;	U 3101		    %if not %null (SCB) %then SCB = .$RSX$R4; %fi
;	U 3102		    %if not %null (NEW_UCB) %then NEW_UCB = .$RSX$R5; %fi
;	U 3103		    RSX$_NORMAL
;	U 3104		    end
;	U 3105		else
;	U 3106		    RSX$_NO_PACKET
;	U 3107	
;	U 3108		end %,
;	U 3109	
;	  3110	%fi %fi
;	  3111	
;	L 3112	%if %variant eql 0
;	  3113	%then
;	  3114	
;	M 3115	    $RSX_GET_TCB (NAME, TCB) =
;	M 3116		begin
;	M 3117	
;	M 3118		linkage
;	M 3119		    $RSX$LINKAGE_NAME = jsr (register = 3) : nopreserve (0) clearstack valuecbit;
;	M 3120	
;	M 3121		external routine
;	M 3122		    $SRSTD : $RSX$LINKAGE_NAME;
;	M 3123	
;	M 3124		external
;	M 3125		    $TSKHD : ref vector;
;	M 3126	
;	M 3127		global register
;	M 3128		    $RSX$R0 = 0;
;	M 3129	
;	M 3130		! Note: Cbit clear = FALSE = success
;	M 3131	
;	M 3132		if .$TSKHD [12] eqla 0
;	M 3133		then
;	M 3134		    RSX$_NO_TASK
;	M 3135		else
;	M 3136	
;	M 3137		    if $SRSTD (NAME)
;	M 3138		    then
;	M 3139			RSX$_NO_TASK
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  59
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 3140		    else
;	M 3141			begin
;	M 3142			TCB = .$RSX$R0;
;	M 3143			RSX$_NORMAL
;	M 3144			end
;	M 3145	
;	  3146		end %,
;	  3147	
;	U 3148	%else %if %variant eql 1
;	U 3149	%then
;	U 3150	
;	U 3151	    $RSX_GET_TCB (NAME, TCB) =
;	U 3152		begin
;	U 3153	
;	U 3154		linkage
;	U 3155		    $RSX$LINKAGE_NAME = jsr (register = 3; register = 0) : clearstack valuecbit;
;	U 3156	
;	U 3157		external routine
;	U 3158		    $SRSTD : $RSX$LINKAGE_NAME;
;	U 3159	
;	U 3160		! Note: Cbit clear = FALSE = success
;	U 3161	
;	U 3162		if not $SRSTD (NAME; TCB)
;	U 3163		then
;	U 3164		    RSX$_NORMAL
;	U 3165		else
;	U 3166		    RSX$_NO_TASK
;	U 3167	
;	U 3168		end %,
;	U 3169	
;	U 3170	%else
;	U 3171	
;	U 3172	    $RSX_GET_TCB (NAME, TCB) =
;	U 3173		begin
;	U 3174	
;	U 3175		linkage
;	U 3176		    $RSX$LINKAGE_NAME = jsr (register = 3; register = 0) : clearstack valuecbit;
;	U 3177	
;	U 3178		register
;	U 3179		    $RSX$R0 = 0;
;	U 3180	
;	U 3181		external routine
;	U 3182		    $SRSTD : $RSX$LINKAGE_NAME;
;	U 3183	
;	U 3184		! Note: Cbit clear = FALSE = success
;	U 3185	
;	U 3186		if not $SRSTD (NAME; $RSX$R0)
;	U 3187		then
;	U 3188		    begin
;	U 3189		    TCB = .$RSX$R0;
;	U 3190		    RSX$_NORMAL
;	U 3191		    end
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  60
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	U 3192		else
;	U 3193		    RSX$_NO_TASK
;	U 3194	
;	U 3195		end %,
;	U 3196	
;	  3197	%fi %fi
;	  3198	
;	M 3199	    $RSX_REQUEST_TASK (TCB, UIC) =
;	M 3200		begin
;	M 3201	
;	M 3202		linkage
;	M 3203		    $RSX$LINKAGE_TCB = jsr (register = 0) : nopreserve (0, 1, 2, 3),
;	M 3204		    $RSX$LINKAGE_TCB_UIC = jsr (register = 0, register = 1) : nopreserve (0, 1, 2, 3);
;	M 3205	
;	M 3206		external routine
;	M 3207		    %if %null (UIC)
;	M 3208		    %then $EXRQN : $RSX$LINKAGE_TCB
;	M 3209		    %else $TSKRT : $RSX$LINKAGE_TCB_UIC
;	M 3210		    %fi;
;	M 3211	
;	M 3212	
;	M 3213		! Note: Cbit clear = FALSE = success
;	M 3214	
;	M 3215		if not
;	M 3216		    %if %null (UIC)
;	M 3217		    %then $EXRQN (TCB)
;	M 3218		    %else $TSKRT (TCB, UIC)
;	M 3219		    %fi
;	M 3220		then
;	M 3221		    RSX$_NORMAL
;	M 3222		else
;	M 3223		    RSX$_NO_TASK
;	M 3224	
;	  3225		end %,
;	  3226	
;	M 3227	    $RSX_RETURN_DSR (LENGTH, ADDRESS) =
;	M 3228		begin
;	M 3229	
;	M 3230		linkage
;	M 3231		    $RSX$LINKAGE_ADDRESS_LENGTH = jsr (register = 0, register = 1) : nopreserve (0, 1, 2, 3);
;	M 3232	
;	M 3233		external routine
;	M 3234		    $DEACB : $RSX$LINKAGE_ADDRESS_LENGTH novalue;
;	M 3235	
;	M 3236		$DEACB (ADDRESS, LENGTH);
;	  3237		end %,
;	  3238	
;	M 3239	    $RSX_FINISH_IOP (UCB, IOP, STATUS, COUNT) =
;	M 3240		begin
;	M 3241	
;	M 3242		linkage
;	M 3243		    $RSX$LINKAGE_UCB_STS = jsr (register = 5, register = 0)
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  61
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	M 3244			: nopreserve (0, 1, 2, 3, 4),
;	M 3245		    $RSX$LINKAGE_UCB_STS_CNT = jsr (register = 5, register = 0, register = 1)
;	M 3246			: nopreserve (0, 1, 2, 3, 4),
;	M 3247		    $RSX$LINKAGE_UCB_STS_CNT_IOP = jsr (register = 5, register = 0, register = 1, register = 3)
;	M 3248			: nopreserve (0, 1, 2, 3, 4);
;	M 3249	
;	M 3250		external routine
;	M 3251		    %if %null (COUNT, IOP)
;	M 3252		    %then $IOALT : $RSX$LINKAGE_UCB_STS
;	M 3253		    %else %if %null (COUNT)
;	M 3254		    %then $IODON : $RSX$LINKAGE_UCB_STS_CNT
;	M 3255		    %else $IOFIN : $RSX$LINKAGE_UCB_STS_CNT_IOP
;	M 3256		    %fi %fi novalue;
;	M 3257	
;	M 3258		%if %null (COUNT, IOP)
;	M 3259		%then $IOALT (UCB, STATUS)
;	M 3260		%else %if %null (COUNT)
;	M 3261		%then $IODON (UCB, STATUS, COUNT)
;	M 3262		%else $IOFIN (UCB, STATUS, COUNT, IOP)
;	M 3263		%fi %fi;
;	  3264		end %,
;	  3265	
;	M 3266	    $RSX_SCHEDULE_AST (TCB, AST_BLOCK) =
;	M 3267		begin
;	M 3268	
;	M 3269		linkage
;	M 3270		    $RSX$LINKAGE_TCB_AST = jsr (register = 0, register = 1) : nopreserve (0, 2, 3);
;	M 3271	
;	M 3272		external routine
;	M 3273		    $QASTT : $RSX$LINKAGE_TCB_AST novalue;
;	M 3274	
;	M 3275		$QASTT (TCB, AST_BLOCK);
;	  3276		end %,
;	  3277	
;	M 3278	    $RSX_VALIDATE_BUFFER (length, address) =
;	M 3279		begin
;	M 3280	
;	M 3281		linkage
;	M 3282		    $RSX$LINKAGE_ADDRESS_LENGTH = jsr (register = 0, register = 1)
;	M 3283			: nopreserve (1, 2) clearstack valuecbit;
;	M 3284	
;	M 3285		external routine
;	M 3286		    $ACHCK : $RSX$LINKAGE_ADDRESS_LENGTH;
;	M 3287	
;	M 3288		! Note: Cbit clear = FALSE = success
;	M 3289	
;	M 3290		if not $ACHCK (ADDRESS, LENGTH)
;	M 3291		then
;	M 3292		    RSX$_NORMAL
;	M 3293		else
;	M 3294		    RSX$_INVALID_ADDRESS
;	M 3295	
								24-Jan-1983 10:38:27	TOPS-20 Bliss-16 2A(530)	    Page  62
								30-Dec-1982 17:16:25	NETPKG:<MCB>MCBLIB.R16.7 (2)

;	  3296		end %;
;	  3297	
;	  3298	%FI %(BLISS16)%
;	  3299	
;	  3300	!
;	  3301	! [End of MCBLIB]





; Run Time:	00:13.2
; Elapsed Time:	00:17.5
; Memory Used:	33 pages
; Library Precompilation Complete