Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/cex/cex.lst
There are no other files named cex.lst in the archive.
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page   1
								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (1)

;	  0001	module CEX (					! Comm/Exec Auxilliary Process
;	  0002			ident = 'X03420',
;	  0003			language (bliss16),
;	  0004			addressing_mode (absolute)
;	  0005			) =
;	  0006	begin
;	  0007	!
;	  0008	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0009	!                    DIGITAL EQUIPMENT CORPORATION
;	  0010	!                        Maynard, Massachusetts
;	  0011	!
;	  0012	!     This software is furnished under a license and may  be  used
;	  0013	!     and copied only in accordance with the terms of such license
;	  0014	!     and with the inclusion of the above copyright notice.   This
;	  0015	!     software  or any other copies thereof may not be provided or
;	  0016	!     otherwise made available to any other person.  No  title  to
;	  0017	!     and ownership of the software is hereby transferred.
;	  0018	!
;	  0019	!     The information  in  this  software  is  subject  to  change
;	  0020	!     without  notice  and should not be construed as a commitment
;	  0021	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0022	!
;	  0023	!     DIGITAL assumes no responsibility for the use or reliability
;	  0024	!     of  its  software  on  equipment  which  is  not supplied by
;	  0025	!     DIGITAL.
;	  0026	!
;	  0027	
;	  0028	!++
;	  0029	!
;	  0030	! FACILITY: MCB Communicatios Executive
;	  0031	!
;	  0032	! ABSTRACT:
;	  0033	!
;	  0034	!	The CEX process handles Comm/Exec data base initialization,
;	  0035	!	timer support, process scheduling, and various functions which
;	  0036	!	are not time-critical and which can work with APR5 remapped.
;	  0037	!
;	  0038	! ENVIRONMENT: RSX kernel mode with EIS
;	  0039	!
;	  0040	! AUTHOR: Alan D. Peckham	CREATION DATE: 18-Mar-80
;	  0041	!
;	  0042	! MODIFIED BY:
;	  0043	!
;	  0044	!	Alan D. Peckham, 2-Jul-80: VERSION 3.0
;	  0045	! 01	- Clock CSR reference needs one more level of indirection...
;	  0046	! 02	- Change CRSH$ references to CRSH$S.
;	  0047	! 03	- Use macros to access APR6 mapping register.
;	  0048	! 04	- Moved global data to seperate module.
;	  0049	!	  Eliminated local data (process can now be made read-only).
;	  0050	! 05	- Make the CE: device busy at CEPWF so that timer works.
;	  0051	!	  Correct .RDBPD pointer initialization.
;	  0052	!	  Initialize $IGREG to .LEV0.
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page   2
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (1)

;	  0053	! 06	- Add initialization code to send CTL/STR to owners of lines
;	  0054	!	  after process initialization.
;	  0055	! 07	- Whoops! Must handle process initialization also.
;	  0056	!	  Also set system lines active before INITB.
;	  0057	! 08	- Make sure CCBs are long enough for our info.
;	  0058	! 09	- Correct RDB bias initialization bug.
;	  0059	!	  Reset .CRPIX before allocating and sending CTL/STR CCBs.
;	  0060	! 10	- Choose the proper lines in INTIM.
;	  0061	! 11	- Allocate CEXBUF from the bottom up instead of top down.
;	  0062	!	  Replace STBUF by FNBUF.
;	  0063	! 12	- Bad test in CETIM caused unwanted LLC TIM/LTM dispatches.
;	  0064	!	  Move system initialization to seperate INI process.
;	  0065	! 13	- Add support for SDB header.
;	  0066	! 14	- Fix SDB allocation bug introduced by 13.
;	  0067	! 15	- Update CRSH$S contexts.
;	  0068	! 16	- Add panic dumper.
;	  0069	! 17	- Move panic dumper to seperate process.
;	  0070	!	  Initialize .PBIAS to panic process mapping bias.
;	  0071	!	  Move our exception handler addresses into the trap
;	  0072	!	  vectors.
;	  0073	!	  Save the address of the master DTE for power failure.
;	  0074	! 18	- Initialize .DBIAS to debug process mapping bias.
;	  0075	! 19	- Alterations for new signalling strategy.
;	  0076	!	  Change ZF.TIM bit assignment.
;	  0077	!	  Eliminate direct access to PS.
;	  0078	! 20	- Set up default last-chance handler.
;	  0079	!	  Change $LLCDS input parameters.
;	  0080	!	  Set our bias in .FRKBK in INDAT.
;	  0081	! 21	- Correct bug in LAST.
;	  0082	!	  Get all of I/O page dump range.
;	  0083	! 22	- Turn off LF.ENA when line is disabled.
;	  0084	!	  Clear out allocated buffers in ALLOCATE_BUFFERS.
;	  0085	!	Alan D. Peckham, 10-Dec-80: VERSION 3.1
;	  0086	! 23	- Change calls to $DDMDS, $DLCDS, $LLCDS to $PRCDS.
;	  0087	!	  Merge system line/process initialization loops in CEPWF.
;	  0088	!	  Flag ZF.TIM now becomes ZF.LTM.
;	  0089	!	  Merge DLC and DDM data base timers into LLC timer loop
;	  0090	!	  in CETIM and eliminate INTIM.
;	  0091	!	  Find process paritions to get mapping bias and
;	  0092	!	  allow LLC data bases to be mapped in INPDT.
;	  0093	!	  Eliminate data base checking in INSLT.
;	  0094	! 24	- Set CE$CLN error to continue with our own length.
;	  0095	! 25	- Exchange ZF.UCB flag support for invalid UCB address in PD.
;	  0096	!	  Key missing data base to invalid address.
;	  0097	!	  Drivers with mapped data bases now allowed.
;	  0098	!	Alan D. Peckham, 30-Jan-80: VERSION 3.2
;	  0099	! 26	- Change input conditions for $PRCDS.
;	  0100	!	  Exception vector format changed.
;	  0101	!	  Alter process descriptor scanning to use PDB vector.
;	  0102	! 27	- Make sure processes have been built with this CEXCOM in INPDT.
;	  0103	!	  Add process destruction scheduler.
;	  0104	! 28	- Undetected syntax error in KILL_PROCESSES.
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page   3
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (1)

;	  0105	! 29	- Save partition size in process header in INPDB.
;	  0106	! 30	- Rewrite in BLISS.
;	  0107	!	  Remove interrupt transfer block initialization.
;	  0108	! 32	- Correct PDT address buf in CEX$$SET_LINE_PROCESSES.
;	  0109	!	  Compensate for 11/34 processer CLR instruction in ALLOCATE_BUFFERS
;	  0110	!	  (11/34 does read-modify-write, which does not fix parity).
;	  0111	! 33	- Correct partition name bug in CEX$$SET_PROCESS.
;	  0112	!	  Add missing assignment in CEX$$SET_LINE_PROCESSES.
;	  0113	!	  Add INITIALIZE_UNIBUS_MAPPING - support for 11/70 UNIBUS mapping.
;	  0114	! 34	- Reset CEX_SYNCH_BLOCK [SYN$A_DISPATCH] in KILL_PROCESSES to allow
;	  0115	!	  re-use.
;	  0116	! 35	- Add CEX$$GET_DEVICE_NAME.
;	  0117	!	  Allocate a common event logging buffer in INITIALIZE_CEXCOM_DATA.
;	  0118	! 36	- Remove CEX$$GET_LINE_NAME.
;	  0119	! 37	- Fix common event logging buffer length.
;	  0120	! 38	- Move code to clear out CEXBUF from ALLOCATE_BUFFERS to
;	  0121	!	  INITIALIZE_BLOCK_POOL.
;	  0122	! 39	- Support CEX$GW_SYNCH_COUNT in SCHEDULE.
;	  0123	!	  Support CEX$GW_CCB_DISPATCH_COUNT in SCHEDULE.
;	  0124	!	  Support CEX$GW_LONG_TIMER_COUNT in CETIM.
;	  0125	!	  Support CEX$GW_SHORT_TIMER_COUNT in CECLK.
;	  0126	!	  Support counter averaging in CETIM.
;	  0127	!	  Replace "HALT" with "BR ." in PANIC.
;	  0128	! 40	- Do not reset $SYSIZ in INITIALIZE_UNIBUS_MAPPING.
;	  0129	! 41	- Stick HALT back in PANIC (no improvement for MCBDA).
;	  0130	! 42	- Conditionalize the unibus mapping code.
;	  0131	!--
;	  0132	
;	  0133	!
;	  0134	! INCLUDE FILES:
;	  0135	!
;	  0136	
;	  0137	library 'XPORT';
;	  0138	
;	  0139	library 'MCBLIB';
;	  0140	
;	  0141	library 'RSXLIB';
;	  0142	
;	  0143	library 'CEXLIB';
;	  0144	
;	L 0145	%if not %declared (CEX$CFG_UNIBUS_MAPPING)
;	  0146	%then compiletime CEX$CFG_UNIBUS_MAPPING = (1 eql 0); %fi
;	  0147	
;	  0148	!
;	  0149	! TABLE OF CONTENTS:
;	  0150	!
;	  0151	
;	  0152	linkage
;	  0153	    LINKAGE_ADR = jsr (register = 5),
;	  0154	    LINKAGE_ADR_CARRY = jsr (register = 1; register = 0) : clearstack valuecbit,
;	  0155	    LINKAGE_ADR_CNT = jsr (register = 5, register = 4; register = 5) : nopreserve (5),
;	  0156	    LINKAGE_ADR_NO_CARRY = jsr (register = 1),
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page   4
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (1)

;	  0157	    LINKAGE_BLKS = jsr (register = 1),
;	  0158	    LINKAGE_CLEAN = jsr : preserve (0, 1, 2, 3, 4, 5),
;	  0159	    LINKAGE_FUNCTION = jsr (register = 1) : nopreserve (0, 1, 2),
;	  0160	    LINKAGE_INTERRUPT = interrupt (standard, standard) : preserve (0, 1, 2, 3, 4, 5),
;	  0161	    LINKAGE_LIST_BUFFER = jsr : global (LIST = 5, BUFFER = 2) nopreserve (0, 1, 3, 4),
;	  0162	    RSX_CLK = jsr (register = 4) : nopreserve (0, 1, 2, 3, 4, 5),
;	  0163	    RSX_FRK = jsr (register = 4) : nopreserve (0, 1, 2, 3, 4, 5),
;	  0164	    RSX_UCB_SCB = jsr (register = 5, register = 4) : nopreserve (0, 1, 2, 3, 4, 5);
;	  0165	
;	  0166	forward routine
;	  0167	    CEX$$CLEAR_PROCESS : CALL$,
;	  0168	    CEX$$CLEAR_PROCESS_NAME : CALL$,
;	  0169	    CEX$$CLEAR_VECTOR : CALL$,
;	  0170	    CEX$$GET_DEVICE_NAME : CALL$,
;	  0171	    CEX$$GET_LINE_PROCESSES : CALL$,
;	  0172	    CEX$$GET_PROCESS_INDEX : CALL$,
;	  0173	    CEX$$GET_PROCESS_NAME : CALL$,
;	  0174	    CEX$$SET_EXCEPTION : CALL$,
;	  0175	    CEX$$SET_LINE_PROCESSES : CALL$,
;	  0176	    CEX$$SET_PROCESS : CALL$,
;	  0177	    CEX$$SET_PROCESS_NAME : CALL$,
;	  0178	    CEX$$SET_VECTOR : CALL$,
;	  0179	
;	  0180	    ALLOCATE_BUFFERS : LINKAGE_BLKS,
;	  0181	    ALLOCATE_BUFFER_POOL : LINKAGE_ADR novalue,
;	  0182	    ALLOCATE_CCB_AND_BUFFER_POOL : LINKAGE_ADR novalue,
;	  0183	    CECLK : RSX_CLK novalue,
;	  0184	    CEFRK : RSX_FRK novalue,
;	  0185	    CENOP : RSX_UCB novalue,
;	  0186	    CEPWF : RSX_UCB_SCB novalue,
;	  0187	    CETIM : RSX_UCB_SCB novalue,
;	  0188	    CHECK_BUFFER_ALLOCATIONS : novalue,
;	  0189	    FIND_LINE : LINKAGE_FUNCTION,
;	  0190	    FIND_PARTITION : LINKAGE_FUNCTION,
;	  0191	    FIND_PROCESS_NAME : LINKAGE_FUNCTION,
;	  0192	    INITIALIZE_BLOCK_POOL,
;	  0193	    INITIALIZE_BUFFER_POOL : LINKAGE_ADR_CNT novalue,
;	  0194	    INITIALIZE_CEXCOM_DATA : RSX_UCB novalue,
;	  0195	    INITIALIZE_DEVICE_NAMES : LINKAGE_ADR_CNT novalue,
;	  0196	    INITIALIZE_LINES : LINKAGE_ADR_CNT novalue,
;	  0197	    INITIALIZE_PROCESS_DESCRIPTORS : LINKAGE_ADR_CNT novalue,
;	  0198	    INITIALIZE_PROCESS_NAMES : LINKAGE_ADR_CNT novalue,
;	  0199	    INITIALIZE_UNIBUS_MAPPING : novalue,
;	  0200	    KILL_PROCESSES : MCB_ novalue,
;	  0201	    LAST,
;	  0202	    NULL : LINKAGE_INTERRUPT novalue,
;	  0203	    NXM_CATCHER : LINKAGE_INTERRUPT novalue,
;	  0204	    NXM_TESTER : LINKAGE_ADR_NO_CARRY,
;	  0205	    PANIC : MCB_ novalue,
;	  0206	    PDUMP : LINKAGE_LIST_BUFFER novalue,
;	  0207	    SCHEDULE : MCB_ novalue;
;	  0208	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page   5
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (1)

;	  0209	bind routine
;	  0210	    NXM = NXM_TESTER : LINKAGE_ADR_CARRY;
;	  0211	
;	  0212	!
;	  0213	! MACROS:
;	  0214	!
;	  0215	
;	  0216	macro
;	M 0217	    $CEX_FATAL_ERROR (CODE) =
;	  0218		(CEX$GG_SIGNAL_STATUS = CODE) %;
;	  0219	
;	  0220	macro
;	M 0221	     UBM_MAPPING =
;	M 0222	     begin
;	M 0223	     external SR3;
;	M 0224	     local
;	M 0225	         NXM_SAVE;
;	M 0226	     NXM_SAVE = .VEC$AA_ADDRESS_ERROR [0];
;	M 0227	     VEC$AA_ADDRESS_ERROR [0] = NXM_CATCHER;
;	M 0228	     if not NXM (SR3)
;	M 0229	     then
;	M 0230	         begin
;	M 0231		 VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
;	M 0232	         SR3 = .SR3 or %o'60';
;	M 0233	         true
;	M 0234	         end
;	M 0235	     else
;	M 0236	         begin
;	M 0237		 VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
;	M 0238	         false
;	M 0239		 end
;	M 0240	     end
;	  0241	       %;
;	  0242	!
;	  0243	! EQUATED SYMBOLS:
;	  0244	!
;	  0245	
;	  0246	literal
;	  0247	    FALSE = 1 eql 0,
;	  0248	    NO_OPERATION = 0,
;	  0249	    TRUE = 1 eql 1;
;	  0250	
;	  0251	$CEX_BFPDEF
;	  0252	$CEX_CBPDEF
;	  0253	$CEX_CCBDEF
;	  0254	$CEX_EXVDEF
;	  0255	$CEX_ITBDEF
;	  0256	$CEX_PDTDEF
;	  0257	$CEX_PNMDEF
;	  0258	$CEX_SLTDEF
;	  0259	$CEX_SYNDEF
;	  0260	$CEX_TMBDEF
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page   6
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (1)

;	  0261	$CEX_UBMDEF
;	  0262	
;	  0263	macro
;	  0264	    RSX$GW_SYSTEM_SIZE = %name ('$SYSIZ') %;
;	  0265	
;	  0266	bind
;	  0267	    BKP$W_LINK = %o'140000',
;	  0268	    BKP$H_SIZE = %o'140002';
;	  0269	
;	  0270	bind
;	  0271	    VEC$AA_ADDRESS_ERROR = %o'4' : vector [2],
;	  0272	    VEC$AA_BREAKPOINT = %o'14' : vector [2],
;	  0273	    VEC$AA_EMT_INSTRUCTION = %o'30' : vector [2],
;	  0274	    VEC$AA_ILLEGAL_INSTRUCTION = %o'10' : vector [2],
;	  0275	    VEC$AA_IOT_INSTRUCTION = %o'20' : vector [2],
;	  0276	    VEC$AA_PARITY_ERROR = %o'114' : vector [2],
;	  0277	    VEC$AA_POWER_FAILURE = %o'24' : vector [2],
;	  0278	    VEC$AA_SEGMENT_FAULT = %o'250' : vector [2],
;	  0279	    VEC$AA_TRAP_INSTRUCTION = %o'34' : vector [2];
;	  0280	
;	  0281	!
;	  0282	! OWN STORAGE:
;	  0283	!
;	  0284	
;	  0285	external routine
;	  0286	    $DSPCR : novalue;
;	  0287	
;	  0288	bind
;	P 0289	    CEXTBL = TABLE$ ($DSPCR, 12^1,
;	P 0290		(MCB$K_CLEAR_PROCESS, CEX$$CLEAR_PROCESS),
;	P 0291		(MCB$K_CLEAR_PROCESS_NAME, CEX$$CLEAR_PROCESS_NAME),
;	P 0292		(MCB$K_CLEAR_VECTOR, CEX$$CLEAR_VECTOR),
;	P 0293		(MCB$K_GET_DEVICE_NAME, CEX$$GET_DEVICE_NAME),
;	P 0294		(MCB$K_GET_LINE_PROCESSES, CEX$$GET_LINE_PROCESSES),
;	P 0295		(MCB$K_GET_PROCESS_INDEX, CEX$$GET_PROCESS_INDEX),
;	P 0296		(MCB$K_GET_PROCESS_NAME, CEX$$GET_PROCESS_NAME),
;	P 0297		(MCB$K_SET_EXCEPTION, CEX$$SET_EXCEPTION),
;	P 0298		(MCB$K_SET_LINE_PROCESSES, CEX$$SET_LINE_PROCESSES),
;	P 0299		(MCB$K_SET_PROCESS, CEX$$SET_PROCESS),
;	P 0300		(MCB$K_SET_PROCESS_NAME, CEX$$SET_PROCESS_NAME),
;	  0301		(MCB$K_SET_VECTOR, CEX$$SET_VECTOR));
;	  0302	
;	  0303	global bind
;	P 0304	    $CETBL = TABLE$ (CENOP, 6,
;	P 0305		(4, CETIM),
;	  0306		(6, CEPWF));
;	  0307	
;	P 0308	$MCB_PROCESS (
;	P 0309	    NAME = CEX,				! Process name
;	P 0310	    CEX_DISPATCH = CEXTBL,		! Cex service table
;	  0311	    RSX_DISPATCH = $CETBL)		! RSX dispatch vector
;	  0312	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page   7
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (1)

;	  0313	!
;	  0314	! EXTERNAL REFERENCES:
;	  0315	!
;	  0316	
;	  0317	external
;	  0318	    CEX$GW_AVG_CCB_DISPATCHES,
;	  0319	    CEX$GW_AVG_INTERRUPTS,
;	  0320	    CEX$GW_AVG_LONG_TIMERS,
;	  0321	    CEX$GW_AVG_SHORT_TIMERS,
;	  0322	    CEX$GW_AVG_SYNCHS,
;	  0323	    CEX$GW_BLOCK_POOL_BIAS,
;	  0324	    CEX$GH_BUFFER_POOL_COUNT,
;	  0325	    CEX$GA_BUFFER_POOL_TABLE : ref blockvector [,BFP$K_LENGTH] field ($CEX_BFPFIELDS),
;	  0326	    CEX$GW_CCB_DISPATCH_COUNT,
;	  0327	    CEX$AG_CCB_DSR_ALLOCATION : vector [2],
;	  0328	    CEX$GR_CCB_POOL : block [CBP$K_LENGTH] field ($CEX_CBPFIELDS),
;	  0329	    CEX$AA_CCB_QUEUE_H : vector [2],
;	  0330	    CEX$AA_CCB_QUEUE_L : vector [2],
;	  0331	    CEX$GA_CEX_FORK_BLOCK,
;	  0332	    CEX$AR_CEX_SYNCH_BLOCK : block [SYN$K_LENGTH] field ($CEX_SYNFIELDS),
;	  0333	    CEX$GA_CURRENT_PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS),
;	  0334	    CEX$GB_CURRENT_PROCESS_INDEX,
;	  0335	    CEX$GA_DTE_BOOT_ROM_ADDRESS,
;	  0336	    CEX$GR_DUMP_EXCEPTION : block [EXV$K_LENGTH] field ($CEX_EXVFIELDS),
;	  0337	    CEX$GR_INTERRUPT_4_BLOCK : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS),
;	  0338	    CEX$GR_INTERRUPT_5_BLOCK : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS),
;	  0339	    CEX$GR_INTERRUPT_6_BLOCK : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS),
;	  0340	    CEX$GR_INTERRUPT_7_BLOCK : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS),
;	  0341	    CEX$GR_LAST_CHANCE_EXCEPTION : block [EXV$K_LENGTH] field ($CEX_EXVFIELDS),
;	  0342	    CEX$GW_LONG_TIMER_COUNT,
;	  0343	    CEX$GA_PANIC_STACK,
;	  0344	    CEX$GW_PANIC_STATUS,
;	  0345	    CEX$GG_POWER_FAIL_COUNT,
;	  0346	    CEX$GR_PRIMARY_EXCEPTION : block [EXV$K_LENGTH] field ($CEX_EXVFIELDS),
;	  0347	    CEX$GH_PROCESS_COUNT,
;	  0348	    CEX$AG_PROCESS_DATA_BASE : vector [2],
;	  0349	    CEX$GH_PROCESS_NAME_COUNT,
;	  0350	    CEX$GA_PROCESS_NAME_TABLE : ref blockvector [,PNM$K_LENGTH] field ($CEX_PNMFIELDS),
;	  0351	    CEX$AA_PROCESS_TABLE : vector,
;	  0352	    CEX$GA_PROCESS_TABLE_END,
;	  0353	    CEX$AW_RANDOM_NUMBER_SEED : vector [2],
;	  0354	    CEX$AG_RDB_CORE_ALLOCATION : vector,
;	  0355	    CEX$AG_RDB_DSR_ALLOCATION : vector,
;	  0356	    CEX$GR_RDB_POOL : block [CBP$K_LENGTH] field ($CEX_CBPFIELDS),
;	  0357	    CEX$GR_SECONDARY_EXCEPTION : block [EXV$K_LENGTH] field ($CEX_EXVFIELDS),
;	  0358	    CEX$GH_SCHEDULING_REQUESTS,
;	  0359	    CEX$GW_SHORT_TIMER_COUNT,
;	  0360	    CEX$GA_SHORT_TIMER_DISPATCH,
;	  0361	    CEX$GG_SIGNAL_STATUS,			! NOT DEFINED YET
;	  0362	    CEX$GW_STATISTICS_INTERVAL,
;	  0363	    CEX$GW_STATISTICS_TIMER,
;	  0364	    CEX$GW_SYNCH_COUNT,
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page   8
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (1)

;	  0365	    CEX$AA_SYNCH_QUEUE : vector [2],
;	  0366	    CEX$GH_SYSTEM_LINE_COUNT,
;	  0367	    CEX$GA_SYSTEM_LINE_TABLE : ref blockvector [, SLT$K_LENGTH] field ($CEX_SLTFIELDS),
;	  0368	    MCB$GA_LOGGING_BUFFER,
;	  0369	    MCB$GW_RDB_SIZE,
;	  0370	    CEX$GA_UBM_DATA_BASE;
;	  0371	
;	  0372	external routine
;	  0373	    CEX$$ADD_32 : CEX_LL_ADD_LOW_HIGH novalue,
;	  0374	    CEX$$ADDRESS_ERROR_TRAP : LINKAGE_INTERRUPT novalue,
;	  0375	    CEX$$ALLOCATE_CORE : CEX_LL_BLKS,
;	  0376	    CEX$$BREAKPOINT_TRAP : LINKAGE_INTERRUPT novalue,
;	  0377	    CEX$$DISPATCH_PROCESS : CEX_LL_PDB_FNC_MOD novalue,
;	  0378	    CEX$$DIVIDE_32 : CEX_LL_NUM_LOW_HIGH novalue,
;	  0379	    CEX$$EMT_INSTRUCTION_TRAP : LINKAGE_INTERRUPT novalue,
;	  0380	    CEX$$ENTER_CEX : LINKAGE_CLEAN novalue,
;	  0381	    CEX$$EXIT_CEX : LINKAGE_CLEAN novalue,
;	  0382	    CEX$$ILLEGAL_INSTRUCTION_TRAP : LINKAGE_INTERRUPT novalue,
;	  0383	    CEX$$IOT_INSTRUCTION_TRAP : LINKAGE_INTERRUPT novalue,
;	  0384	    CEX$$MULTIPLY_32 : CEX_LL_NUM_NUM novalue,
;	  0385	    CEX$$PARITY_ERROR_TRAP : LINKAGE_INTERRUPT novalue,
;	  0386	    CEX$$POWER_FAILURE_TRAP : LINKAGE_INTERRUPT novalue,
;	  0387	    CEX$$SEGMENT_FAULT_TRAP : LINKAGE_INTERRUPT novalue,
;	  0388	    CEX$$SHIFT_32 : CEX_LL_CNT_LOW_HIGH novalue,
;	  0389	    CEX$$SYNCHRONIZE_PROCESS : CEX_LL_PDB_DSP novalue,
;	  0390	    CEX$$TRAP_INSTRUCTION_TRAP : LINKAGE_INTERRUPT novalue;
;	  0391	
;	  0392	bind
;	  0393	    INTERRUPT_PRIORITY_BLOCK = UPLIT (
;	  0394		CEX$GR_INTERRUPT_4_BLOCK [IPB$V_JSR_4],
;	  0395		CEX$GR_INTERRUPT_5_BLOCK [IPB$V_JSR_4],
;	  0396		CEX$GR_INTERRUPT_6_BLOCK [IPB$V_JSR_4],
;	  0397		CEX$GR_INTERRUPT_7_BLOCK [IPB$V_JSR_4]) : vector [4];
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page   9
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (2)

;	  0398	global routine CEX$$CLEAR_PROCESS : CALL$ =
;	  0399	
;	  0400	!++
;	  0401	! FUNCTIONAL DESCRIPTION:
;	  0402	!
;	  0403	!
;	  0404	! FORMAL PARAMETERS:
;	  0405	!	None
;	  0406	!
;	  0407	! IMPLICIT INPUTS:
;	  0408	!	None
;	  0409	!
;	  0410	! IMPLICIT OUTPUTS:
;	  0411	!	None
;	  0412	!
;	  0413	! ROUTINE VALUE:
;	  0414	! COMPLETION CODES:
;	  0415	!	None
;	  0416	!
;	  0417	! SIDE EFFECTS:
;	  0418	!	None
;	  0419	!--
;	  0420	
;	  0421	    begin
;	  0422	
;	  0423	    builtin
;	  0424		actualcount,
;	  0425		actualparameter;
;	  0426	
;	  0427	    if actualcount () neq 0 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  0428	
;	  0429	    if .CEX$AG_PROCESS_DATA_BASE [1] neqa 0
;	  0430	    then
;	  0431		return $CEX_FATAL_ERROR (MCB$_PROCESS_STILL_ACTIVE);
;	  0432	
;	  0433	    CEX$GA_CURRENT_PROCESS [PDT$V_KILL_PROCESS] = TRUE;
;	  0434	    begin
;	  0435	
;	  0436	    local
;	  0437		PS_SAVE;
;	  0438	
;	  0439	    external
;	  0440		PS;
;	  0441	
;	  0442	    PS_SAVE = .PS;
;	  0443	    PS <0, 8> = 7^5;
;	  0444	
;	  0445	    if .CEX$AR_CEX_SYNCH_BLOCK [SYN$A_DISPATCH] eqla 0
;	  0446	    then
;	  0447		begin
;	  0448	
;	  0449		bind
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  10
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (2)

;	  0450		    CEX$AR_CEX_PROCESS = CEX$AA_PROCESS_TABLE [0] : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  0451	
;	  0452		CEX$AR_CEX_SYNCH_BLOCK [SYN$A_DISPATCH] = KILL_PROCESSES;
;	  0453		CEX$AR_CEX_SYNCH_BLOCK [SYN$A_PROCESS] = .CEX$AR_CEX_PROCESS;
;	  0454	
;	  0455		if (CEX$AR_CEX_SYNCH_BLOCK [SYN$A_LINK] = .CEX$AA_SYNCH_QUEUE [0]) eqla 0
;	  0456		then
;	  0457		    CEX$AA_SYNCH_QUEUE [1] = CEX$AR_CEX_SYNCH_BLOCK;
;	  0458	
;	  0459		CEX$AA_SYNCH_QUEUE [0] = CEX$AR_CEX_SYNCH_BLOCK;
;	  0460		end;
;	  0461	
;	  0462	    PS <0, 8> = .PS_SAVE;
;	  0463	    end;
;	  0464	    MCB$_NORMAL
;	  0465	    end;				!of routine CEX$$CLEAR_PROCESS


						.TITLE	CEX
						.IDENT	/X03420/
						.ENABL	AMA


000000						.PSECT	......,  D  
000000	011640 				HEADER: .RAD50	/CEX/
000002	000403 					.WORD	403
000004	000000 					.WORD	0
000006	000000 					.WORD	0
000010	000000 					.WORD	0
000012	000000G					.WORD	.DSPCR
000014	000000G					.WORD	.DSPCR
000016	000000G					.WORD	.DSPCR
000020	000000G					.WORD	MCB$V0
000022	000000G					.WORD	MCB$V1
000024	140310 					.WORD	140310
000026	143716 					.WORD	143716
000030	001400 					.WORD	1400
000032	000032'					.WORD	$CETBL
000034	000000'					.WORD	CEXTBL
000036	000000 					.WORD	0



000000						.PSECT	$PLIT$,  RO ,  D  
000000	000000V				P.AAA:	.WORD	$EXVEN
000002	000000V					.WORD	$PDBST
000004	000000'					.WORD	$PDBCL
000006	000000V					.WORD	$PNMGT
000010	000000V					.WORD	$PRCNM
000012	000000V					.WORD	$PNMST
000014	000000V					.WORD	$PNMCL
000016	000000V					.WORD	$VECST
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  11
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (2)

000020	000000V					.WORD	$VECCL
000022	000000G					.WORD	$DSPCR
000024	000000V					.WORD	$SLTST
000026	000000V					.WORD	$SLTGT
000030	000000V					.WORD	CEX$$GET.DEVICE.NAME
000032	000000V				P.AAB:	.WORD	CENOP
000034	000000V					.WORD	CENOP
000036	000000V					.WORD	CETIM
000040	000000V					.WORD	CEPWF
000042	000000G				P.AAC:	.WORD	.INTC4
000044	000000G					.WORD	.INTC5
000046	000000G					.WORD	.INTC6
000050	000000G					.WORD	.INTC7


						.GLOBL	$DSPCR, .DSPCR, MCB$V0, MCB$V1
						.GLOBL	.SMDSP, .SMINT, .SMLTM, .SMSTM
						.GLOBL	.SMSYN, .BLKTB, .CORNM, .CORTA
						.GLOBL	.DSPCT, .CCBDM, .CCBTB, .CBHQH
						.GLOBL	.CBLQH, .FRKBK, .PDSYN, .CRPDB
						.GLOBL	.CRPIX, .DTERG, .MEXVD, .INTC4
						.GLOBL	.INTC5, .INTC6, .INTC7, .MEXVL
						.GLOBL	.LTMCT, .PANSP, .PANPS, .PWRFL
						.GLOBL	.MEXV1, .PDBNM, .CRDAT, .PNMNM
						.GLOBL	.PNMTA, .PDBVB, .PDBVE, .RND, .RDBCM
						.GLOBL	.RDBDM, .RDBTB, .MEXV2, .CEXRQ
						.GLOBL	.STMCT, .TIMDS, .CEXST, .SMSEC
						.GLOBL	.SITIM, .SYNCT, .SYNQH, .SLTNM
						.GLOBL	.SLTTA, .LOGPT, .RDBSZ, .UBMTA
						.GLOBL	$ADD32, $EX4, $BLKGT, $EX14, $PRCDS
						.GLOBL	$DIV32, $EX30, $CEXSV, $CEXXT
						.GLOBL	$EX10, $EX20, $MUL32, $EX114, $EX24
						.GLOBL	$EX250, $ASH32, $SYNDS, $EX34
						.GLOBL	PS


	140000 				BKP$W.LINK=	    -40000
	140002 				BKP$H.SIZE=	    -37776
	000004 				VEC$AA.ADDRESS.ERROR=
							    4
	000014 				VEC$AA.BREAKPOINT=  14
	000030 				VEC$AA.EMT.INSTRUCTION=
							    30
	000010 				VEC$AA.ILLEGAL.INSTRUCTION=
							    10
	000020 				VEC$AA.IOT.INSTRUCTION=
							    20
	000114 				VEC$AA.PARITY.ERROR=114
	000024 				VEC$AA.POWER.FAILURE=
							    24
	000250 				VEC$AA.SEGMENT.FAULT=
							    250
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  12
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (2)

	000034 				VEC$AA.TRAP.INSTRUCTION=
							    34
	000000'				CEXTBL=		    P.AAA
	000032'				$CETBL==	    P.AAB
	000042'				INTERRUPT.PRIORITY.BLOCK=
							    P.AAC


						.SBTTL	$PDBCL
000000						.PSECT	$CODE$,  RO 

000000	105715 				$PDBCL::TSTB	(R5)				; .AP.					0427
000002	001403 					BEQ	1$
000004	012700  001002 				MOV	#1002,R0
000010	000405 					BR	2$
000012	005737  000002G			1$:	TST	.CRDAT+2			;					0429
000016	001405 					BEQ	3$
000020	012700  001012 				MOV	#1012,R0			;					0431
000024	010037  000000G			2$:	MOV	R0,.CEXST
000030	000207 					RTS	PC
000032	013700  000000G			3$:	MOV	.CRPDB,R0			;					0433
000036	052760  004000  000010 			BIS	#4000,10(R0)
000044	013700  000000G				MOV	PS,R0				; *,PS.SAVE				0442
000050	112737  000340  000000G			MOVB	#340,PS				;					0443
000056	005737  000004G				TST	.PDSYN+4			;					0445
000062	001020 					BNE	5$
000064	012737  000000V 000004G			MOV	#KILL.PROCESSES,.PDSYN+4	;					0452
000072	013737  000000G 000002G			MOV	.PDBVB,.PDSYN+2			;					0453
000100	013737  000000G 000000G			MOV	.SYNQH,.PDSYN			;					0455
000106	001003 					BNE	4$
000110	012737  000000G 000002G			MOV	#.PDSYN,.SYNQH+2		;					0457
000116	012737  000000G 000000G		4$:	MOV	#.PDSYN,.SYNQH			;					0459
000124	110037  000000G			5$:	MOVB	R0,PS				; PS.SAVE,*				0462
000130	012700  000001 				MOV	#1,R0				;					0398
000134	000207 					RTS	PC

; Routine Size:  47 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  13
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (3)

;	  0466	global routine CEX$$CLEAR_PROCESS_NAME : CALL$ =
;	  0467	
;	  0468	!++
;	  0469	! FUNCTIONAL DESCRIPTION:
;	  0470	!
;	  0471	!
;	  0472	! FORMAL PARAMETERS:
;	  0473	!	None
;	  0474	!
;	  0475	! IMPLICIT INPUTS:
;	  0476	!	None
;	  0477	!
;	  0478	! IMPLICIT OUTPUTS:
;	  0479	!	None
;	  0480	!
;	  0481	! ROUTINE VALUE:
;	  0482	! COMPLETION CODES:
;	  0483	!	None
;	  0484	!
;	  0485	! SIDE EFFECTS:
;	  0486	!	None
;	  0487	!--
;	  0488	
;	  0489	    begin
;	  0490	
;	  0491	    builtin
;	  0492		actualcount,
;	  0493		actualparameter;
;	  0494	
;	  0495	    if  actualcount () neq 1 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  0496	
;	  0497	    begin
;	  0498	
;	  0499	    local
;	  0500		NAME_ENTRY : ref block [PNM$K_LENGTH] field ($CEX_PNMFIELDS),
;	  0501		PROCESS_NAME;
;	  0502	
;	  0503	    if (PROCESS_NAME = actualparameter (1)) eqlu 0 then return MCB$_UNKNOWN_PROCESS;
;	  0504	
;	  0505	    if (NAME_ENTRY = FIND_PROCESS_NAME (.PROCESS_NAME)) eqla 0 then return MCB$_UNKNOWN_PROCESS;
;	  0506	
;	  0507	    begin
;	  0508	
;	  0509	    bind
;	  0510		PROCESS = .NAME_ENTRY [PNM$A_PROCESS] : block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  0511	
;	  0512	    if .CEX$GA_CURRENT_PROCESS [PDT$W_CODE_BIAS] nequ .PROCESS [PDT$W_CODE_BIAS]
;	  0513	    then
;	  0514		return $CEX_FATAL_ERROR (CE$ACV);
;	  0515	
;	  0516	    NAME_ENTRY [PNM$A_PROCESS] = 0;
;	  0517	    NAME_ENTRY [PNM$W_NAME] = 0;
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  14
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (3)

;	  0518	    end;
;	  0519	    end;
;	  0520	    MCB$_NORMAL
;	  0521	    end;				!of routine CEX$$CLEAR_PROCESS_NAME


						.SBTTL	$PNMCL
000000	121527  000001 			$PNMCL::CMPB	(R5),#1				; .AP.,*				0495
000004	001405 					BEQ	1$
000006	012700  001002 				MOV	#1002,R0
000012	010037  000000G				MOV	R0,.CEXST
000016	000207 					RTS	PC
000020	016501  000002 			1$:	MOV	2(R5),R1			; *(.AP.),PROCESS.NAME			0503
000024	001404 					BEQ	2$
000026	004737  000000V				JSR	PC,FIND.PROCESS.NAME		;					0505
000032	005700 					TST	R0				; NAME.ENTRY
000034	001003 					BNE	3$
000036	012700  000270 			2$:	MOV	#270,R0
000042	000207 					RTS	PC
000044	027770  000000G 000000 		3$:	CMP	@.CRPDB,@0(R0)			; *,*(NAME.ENTRY)			0512
000052	001406 					BEQ	4$
000054	012701  000312 				MOV	#312,R1				;					0514
000060	010137  000000G				MOV	R1,.CEXST
000064	010100 					MOV	R1,R0
000066	000207 					RTS	PC
000070	005010 				4$:	CLR	(R0)				; NAME.ENTRY				0516
000072	005060  000002 				CLR	2(R0)				; *(NAME.ENTRY)				0517
000076	012700  000001 				MOV	#1,R0				;					0466
000102	000207 					RTS	PC

; Routine Size:  34 words,	Routine Base:  $CODE$ + 0136
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  15
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (4)

;	  0522	global routine CEX$$CLEAR_VECTOR : CALL$ =
;	  0523	
;	  0524	!++
;	  0525	! FUNCTIONAL DESCRIPTION:
;	  0526	!
;	  0527	!
;	  0528	! FORMAL PARAMETERS:
;	  0529	!	None
;	  0530	!
;	  0531	! IMPLICIT INPUTS:
;	  0532	!	None
;	  0533	!
;	  0534	! IMPLICIT OUTPUTS:
;	  0535	!	None
;	  0536	!
;	  0537	! ROUTINE VALUE:
;	  0538	! COMPLETION CODES:
;	  0539	!	None
;	  0540	!
;	  0541	! SIDE EFFECTS:
;	  0542	!	None
;	  0543	!--
;	  0544	
;	  0545	    begin
;	  0546	
;	  0547	    builtin
;	  0548		actualcount,
;	  0549		actualparameter;
;	  0550	
;	  0551	    if actualcount () neq 1 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  0552	
;	  0553	    begin
;	  0554	
;	  0555	    local
;	  0556		VEC : ref vector [2];
;	  0557	
;	  0558	    external
;	  0559		%name ('V$$CTR');
;	  0560	
;	  0561	    VEC = actualparameter (1);
;	  0562	
;	  0563	    if .VEC geqa %name ('V$$CTR') or .VEC <0, 2> neq 0
;	  0564	    then
;	  0565		return $CEX_FATAL_ERROR (CE$VEC);
;	  0566	
;	  0567	    begin
;	  0568	
;	  0569	    local
;	  0570		ITB : ref block [ITB$K_LENGTH] field ($CEX_ITBFIELDS);
;	  0571	
;	  0572	    external
;	  0573		%name ('$NONSI');
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  16
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (4)

;	  0574	
;	  0575	    ITB = .VEC [0];
;	  0576	
;	  0577	    if .ITB eqla %name ('$NONSI')
;	  0578	    then
;	  0579		return $CEX_FATAL_ERROR (CE$VCF);
;	  0580	
;	  0581	    if .CEX$GA_CURRENT_PROCESS neqa .ITB [ITB$A_PROCESS]
;	  0582	    then
;	  0583		return $CEX_FATAL_ERROR (CE$ACV);
;	  0584	
;	  0585	    VEC [0] = %name ('$NONSI');
;	  0586	    $RSX_RETURN_DSR (ITB$K_LENGTH*%upval, .ITB);
;	  0587	    end;
;	  0588	    end;
;	  0589	    MCB$_NORMAL
;	  0590	    end;				!of routine CEX$$CLEAR_VECTOR


						.GLOBL	V$$CTR, $NONSI, $DEACB


						.SBTTL	$VECCL
000000	121527  000001 			$VECCL::CMPB	(R5),#1				; .AP.,*				0551
000004	001403 					BEQ	1$
000006	012700  001002 				MOV	#1002,R0
000012	000412 					BR	3$
000014	016502  000002 			1$:	MOV	2(R5),R2			; *(.AP.),VEC				0561
000020	020227  000000G				CMP	R2,#V$$CTR			; VEC,*					0563
000024	103003 					BHIS	2$
000026	032702  000003 				BIT	#3,R2				; *,VEC
000032	001405 					BEQ	4$
000034	012700  000742 			2$:	MOV	#742,R0				;					0565
000040	010037  000000G			3$:	MOV	R0,.CEXST
000044	000207 					RTS	PC
000046	011200 				4$:	MOV	(R2),R0				; VEC,ITB				0575
000050	020027  000000G				CMP	R0,#$NONSI			; ITB,*					0577
000054	001003 					BNE	5$
000056	012701  000752 				MOV	#752,R1				;					0579
000062	000406 					BR	6$
000064	023760  000000G 000004 		5$:	CMP	.CRPDB,4(R0)			; *,*(ITB)				0581
000072	001406 					BEQ	7$
000074	012701  000312 				MOV	#312,R1				;					0583
000100	010137  000000G			6$:	MOV	R1,.CEXST
000104	010100 					MOV	R1,R0
000106	000207 					RTS	PC
000110	012712  000000G			7$:	MOV	#$NONSI,(R2)			; *,VEC					0585
000114	012701  000010 				MOV	#10,R1				;					0586
000120	004737  000000G				JSR	PC,$DEACB
000124	012700  000001 				MOV	#1,R0				;					0522
000130	000207 					RTS	PC
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  17
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (4)

; Routine Size:  45 words,	Routine Base:  $CODE$ + 0242
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  18
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (5)

;	  0591	global routine CEX$$GET_DEVICE_NAME : CALL$ =
;	  0592	
;	  0593	!++
;	  0594	! FUNCTIONAL DESCRIPTION:
;	  0595	!
;	  0596	!
;	  0597	! FORMAL PARAMETERS:
;	  0598	!	None
;	  0599	!
;	  0600	! IMPLICIT INPUTS:
;	  0601	!	None
;	  0602	!
;	  0603	! IMPLICIT OUTPUTS:
;	  0604	!	None
;	  0605	!
;	  0606	! ROUTINE VALUE:
;	  0607	! COMPLETION CODES:
;	  0608	!	None
;	  0609	!
;	  0610	! SIDE EFFECTS:
;	  0611	!	None
;	  0612	!--
;	  0613	
;	  0614	    begin
;	  0615	
;	  0616	    builtin
;	  0617		actualcount,
;	  0618		actualparameter;
;	  0619	
;	  0620	    if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  0621	
;	  0622	    ch$wchar (0, actualparameter (2));
;	  0623	    begin
;	  0624	
;	  0625	    local
;	  0626		SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
;	  0627	
;	  0628	    if (SLT = FIND_LINE (actualparameter (1))) eqla 0
;	  0629	    then
;	  0630		return $CEX_FATAL_ERROR (CE$LIX);
;	  0631	
;	  0632	    ch$move (ch$rchar (.SLT [SLT$A_DEVICE]) + 1, .SLT [SLT$A_DEVICE], actualparameter (2));
;	  0633	    end;
;	  0634	    MCB$_NORMAL
;	  0635	    end;				!of routine CEX$$GET_DEVICE_NAME


						.SBTTL	CEX$$GET.DEVICE.NAME
000000	121527  000002 			CEX$$GET.DEVICE.NAME::
						CMPB	(R5),#2				; .AP.,*				0620
000004	001405 					BEQ	1$
000006	012700  001002 				MOV	#1002,R0
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  19
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (5)

000012	010037  000000G				MOV	R0,.CEXST
000016	000207 					RTS	PC
000020	105075  000004 			1$:	CLRB	@4(R5)				; *(.AP.)				0622
000024	016501  000002 				MOV	2(R5),R1			; *(.AP.),*				0628
000030	004737  000000V				JSR	PC,FIND.LINE
000034	005700 					TST	R0				; SLT
000036	001006 					BNE	2$
000040	012701  000544 				MOV	#544,R1				;					0630
000044	010137  000000G				MOV	R1,.CEXST
000050	010100 					MOV	R1,R0
000052	000207 					RTS	PC
000054	005046 				2$:	CLR	-(SP)				;					0632
000056	117016  000006 				MOVB	@6(R0),(SP)			; *(SLT),*
000062	005216 					INC	(SP)
000064	016046  000006 				MOV	6(R0),-(SP)			; *(SLT),*
000070	016546  000004 				MOV	4(R5),-(SP)			; *(.AP.),*
000074	004737  000000G				JSR	PC,BL$MOV
000100	062706  000006 				ADD	#6,SP				;					0614
000104	012700  000001 				MOV	#1,R0				;					0591
000110	000207 					RTS	PC

; Routine Size:  37 words,	Routine Base:  $CODE$ + 0374
; Maximum stack depth per invocation:  4 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  20
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (6)

;	  0636	global routine CEX$$GET_LINE_PROCESSES : CALL$ =
;	  0637	
;	  0638	!++
;	  0639	! FUNCTIONAL DESCRIPTION:
;	  0640	!
;	  0641	!
;	  0642	! FORMAL PARAMETERS:
;	  0643	!	None
;	  0644	!
;	  0645	! IMPLICIT INPUTS:
;	  0646	!	None
;	  0647	!
;	  0648	! IMPLICIT OUTPUTS:
;	  0649	!	None
;	  0650	!
;	  0651	! ROUTINE VALUE:
;	  0652	! COMPLETION CODES:
;	  0653	!	None
;	  0654	!
;	  0655	! SIDE EFFECTS:
;	  0656	!	None
;	  0657	!--
;	  0658	
;	  0659	    begin
;	  0660	
;	  0661	    builtin
;	  0662		actualcount,
;	  0663		actualparameter;
;	  0664	
;	  0665	    if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  0666	
;	  0667	    begin
;	  0668	
;	  0669	    local
;	  0670		BUF : ref vector [3];
;	  0671	
;	  0672	    BUF = actualparameter (2);
;	  0673	    BUF [2] = BUF [1] = BUF [0] = 0;
;	  0674	    begin
;	  0675	
;	  0676	    local
;	  0677		SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
;	  0678	
;	  0679	    if (SLT = FIND_LINE (actualparameter (1))) eqla 0
;	  0680	    then
;	  0681		return CE$LIX;
;	  0682	
;	  0683	    BUF [0] = .SLT [SLT$B_LLC_PROCESS_INDEX];
;	  0684	    BUF [1] = .SLT [SLT$B_DLC_PROCESS_INDEX];
;	  0685	    BUF [2] = .SLT [SLT$B_DDM_PROCESS_INDEX];
;	  0686	    end;
;	  0687	    end;
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  21
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (6)

;	  0688	    MCB$_NORMAL
;	  0689	    end;				!of routine CEX$$GET_LINE_PROCESSES


						.SBTTL	$SLTGT
000000	121527  000002 			$SLTGT::CMPB	(R5),#2				; .AP.,*				0665
000004	001405 					BEQ	1$
000006	012700  001002 				MOV	#1002,R0
000012	010037  000000G				MOV	R0,.CEXST
000016	000207 					RTS	PC
000020	016503  000004 			1$:	MOV	4(R5),R3			; *(.AP.),BUF				0672
000024	005013 					CLR	(R3)				; BUF					0673
000026	005063  000002 				CLR	2(R3)				; *(BUF)
000032	005063  000004 				CLR	4(R3)				; *(BUF)
000036	016501  000002 				MOV	2(R5),R1			; *(.AP.),*				0679
000042	004737  000000V				JSR	PC,FIND.LINE
000046	005700 					TST	R0				; SLT
000050	001003 					BNE	2$
000052	012700  000544 				MOV	#544,R0				;					0681
000056	000207 					RTS	PC
000060	116013  000004 			2$:	MOVB	4(R0),(R3)			; *(SLT),BUF				0683
000064	105063  000001 				CLRB	1(R3)				; *(BUF)
000070	116063  000002  000002 			MOVB	2(R0),2(R3)			; *(SLT),*(BUF)				0684
000076	105063  000003 				CLRB	3(R3)				; *(BUF)
000102	111063  000004 				MOVB	(R0),4(R3)			; SLT,*(BUF)				0685
000106	105063  000005 				CLRB	5(R3)				; *(BUF)
000112	012700  000001 				MOV	#1,R0				;					0636
000116	000207 					RTS	PC

; Routine Size:  40 words,	Routine Base:  $CODE$ + 0506
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  22
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (7)

;	  0690	global routine CEX$$GET_PROCESS_INDEX : CALL$ =
;	  0691	
;	  0692	!++
;	  0693	! FUNCTIONAL DESCRIPTION:
;	  0694	!
;	  0695	!
;	  0696	! FORMAL PARAMETERS:
;	  0697	!	None
;	  0698	!
;	  0699	! IMPLICIT INPUTS:
;	  0700	!	None
;	  0701	!
;	  0702	! IMPLICIT OUTPUTS:
;	  0703	!	None
;	  0704	!
;	  0705	! ROUTINE VALUE:
;	  0706	! COMPLETION CODES:
;	  0707	!	None
;	  0708	!
;	  0709	! SIDE EFFECTS:
;	  0710	!	None
;	  0711	!--
;	  0712	
;	  0713	    begin
;	  0714	
;	  0715	    builtin
;	  0716		actualcount,
;	  0717		actualparameter;
;	  0718	
;	  0719	    if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  0720	
;	  0721	    actualparameter (2) = 0;
;	  0722	    begin
;	  0723	
;	  0724	    local
;	  0725		PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  0726	
;	  0727	    if (PROCESS = FIND_PROCESS_NAME (actualparameter (1))) eqla 0 then return MCB$_UNKNOWN_PROCESS;
;	  0728	
;	  0729	    actualparameter (2) = .PROCESS [PDT$B_INDEX];
;	  0730	    end;
;	  0731	    MCB$_NORMAL
;	  0732	    end;				!of routine CEX$$GET_PROCESS_INDEX


						.SBTTL	$PNMGT
000000	121527  000002 			$PNMGT::CMPB	(R5),#2				; .AP.,*				0719
000004	001405 					BEQ	1$
000006	012700  001002 				MOV	#1002,R0
000012	010037  000000G				MOV	R0,.CEXST
000016	000207 					RTS	PC
000020	005075  000004 			1$:	CLR	@4(R5)				; *(.AP.)				0721
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  23
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (7)

000024	016501  000002 				MOV	2(R5),R1			; *(.AP.),*				0727
000030	004737  000000V				JSR	PC,FIND.PROCESS.NAME
000034	005700 					TST	R0				; PROCESS
000036	001003 					BNE	2$
000040	012700  000270 				MOV	#270,R0
000044	000207 					RTS	PC
000046	116075  000010  000004 		2$:	MOVB	10(R0),@4(R5)			; *(PROCESS),*(.AP.)			0729
000054	042775  177400  000004 			BIC	#177400,@4(R5)			; *,*(.AP.)
000062	012700  000001 				MOV	#1,R0				;					0690
000066	000207 					RTS	PC

; Routine Size:  28 words,	Routine Base:  $CODE$ + 0626
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  24
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (8)

;	  0733	global routine CEX$$GET_PROCESS_NAME : CALL$ =
;	  0734	
;	  0735	!++
;	  0736	! FUNCTIONAL DESCRIPTION:
;	  0737	!
;	  0738	!
;	  0739	! FORMAL PARAMETERS:
;	  0740	!	None
;	  0741	!
;	  0742	! IMPLICIT INPUTS:
;	  0743	!	None
;	  0744	!
;	  0745	! IMPLICIT OUTPUTS:
;	  0746	!	None
;	  0747	!
;	  0748	! ROUTINE VALUE:
;	  0749	! COMPLETION CODES:
;	  0750	!	None
;	  0751	!
;	  0752	! SIDE EFFECTS:
;	  0753	!	None
;	  0754	!--
;	  0755	
;	  0756	    begin
;	  0757	
;	  0758	    builtin
;	  0759		actualcount,
;	  0760		actualparameter;
;	  0761	
;	  0762	    if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  0763	
;	  0764	    actualparameter (2) = 0;
;	  0765	    begin
;	  0766	
;	  0767	    local
;	  0768		PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  0769	
;	  0770	    if ((PROCESS = actualparameter (1)) gtru .CEX$GH_PROCESS_COUNT) or
;	  0771		((PROCESS = .CEX$AA_PROCESS_TABLE [.PROCESS]) eqla 0)
;	  0772	    then
;	  0773		return CE$PIX;
;	  0774	
;	  0775	    begin
;	  0776	    $CEX_PHDDEF
;	  0777	
;	  0778	    bind
;	  0779		HEADER = %o'140000' : block field ($CEX_PHDFIELDS);
;	  0780	
;	  0781	    local
;	  0782		SAVE_MAP;
;	  0783	
;	  0784	    SMAP$ (SAVE_MAP);
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  25
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (8)

;	  0785	    MAP$ (.PROCESS [PDT$W_CODE_BIAS]);
;	  0786	    PROCESS = .HEADER [PHD$W_NAME];
;	  0787	    MAP$ (.SAVE_MAP);
;	  0788	    end;
;	  0789	    actualparameter (2) = .PROCESS;
;	  0790	    end;
;	  0791	    MCB$_NORMAL
;	  0792	    end;				!of routine CEX$$GET_PROCESS_NAME


						.GLOBL	KISAR6


	140000 				HEADER=		    -40000


						.SBTTL	$PRCNM
000000	121527  000002 			$PRCNM::CMPB	(R5),#2				; .AP.,*				0762
000004	001405 					BEQ	1$
000006	012700  001002 				MOV	#1002,R0
000012	010037  000000G				MOV	R0,.CEXST
000016	000207 					RTS	PC
000020	005075  000004 			1$:	CLR	@4(R5)				; *(.AP.)				0764
000024	016501  000002 				MOV	2(R5),R1			; *(.AP.),PROCESS			0770
000030	020137  000000G				CMP	R1,.PDBNM			; PROCESS,*
000034	101005 					BHI	2$
000036	010100 					MOV	R1,R0				; PROCESS,*				0771
000040	006300 					ASL	R0
000042	016001  000000G				MOV	.PDBVB(R0),R1			; *,PROCESS
000046	001003 					BNE	3$
000050	012700  000564 			2$:	MOV	#564,R0				;					0773
000054	000207 					RTS	PC
000056	013700  000000G			3$:	MOV	KISAR6,R0			; *,SAVE.MAP				0784
000062	011137  000000G				MOV	(R1),KISAR6			; PROCESS,*				0785
000066	013701  140000 				MOV	@#140000,R1			; *,PROCESS				0786
000072	010037  000000G				MOV	R0,KISAR6			; SAVE.MAP,*				0787
000076	010175  000004 				MOV	R1,@4(R5)			; PROCESS,*(.AP.)			0789
000102	012700  000001 				MOV	#1,R0				;					0733
000106	000207 					RTS	PC

; Routine Size:  36 words,	Routine Base:  $CODE$ + 0716
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  26
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (9)

;	  0793	global routine CEX$$SET_EXCEPTION : CALL$ =
;	  0794	
;	  0795	!++
;	  0796	! FUNCTIONAL DESCRIPTION:
;	  0797	!
;	  0798	!
;	  0799	! FORMAL PARAMETERS:
;	  0800	!	None
;	  0801	!
;	  0802	! IMPLICIT INPUTS:
;	  0803	!	None
;	  0804	!
;	  0805	! IMPLICIT OUTPUTS:
;	  0806	!	None
;	  0807	!
;	  0808	! ROUTINE VALUE:
;	  0809	! COMPLETION CODES:
;	  0810	!	None
;	  0811	!
;	  0812	! SIDE EFFECTS:
;	  0813	!	None
;	  0814	!--
;	  0815	
;	  0816	    begin
;	  0817	
;	  0818	    builtin
;	  0819		actualcount,
;	  0820		actualparameter;
;	  0821	
;	  0822	    if actualcount () eql 0 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  0823	
;	  0824	    begin
;	  0825	
;	  0826	    bind
;	  0827		MEXV = uplit (CEX$GR_PRIMARY_EXCEPTION,
;	  0828		    CEX$GR_SECONDARY_EXCEPTION,
;	  0829		    CEX$GR_LAST_CHANCE_EXCEPTION) : vector [2];
;	  0830	
;	  0831	    local
;	  0832		EXV : ref block [EXV$K_LENGTH] field ($CEX_EXVFIELDS);
;	  0833	
;	  0834	    if (EXV = actualparameter (1)) gtru 2 then return CE$EXV;
;	  0835	
;	  0836	    EXV = .MEXV [.EXV];
;	  0837	
;	  0838	    if actualcount () gtru 3
;	  0839	    then
;	  0840		begin
;	  0841	
;	  0842		local
;	  0843		    OLD : ref vector [3];
;	  0844	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  27
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (9)

;	  0845		if (OLD = actualparameter (3)) neqa 0
;	  0846		then
;	  0847		    begin
;	  0848	
;	  0849		    bind
;	  0850			PROCESS = EXV [EXV$A_PROCESS] : ref block [EXV$K_LENGTH] field ($CEX_PDTFIELDS);
;	  0851	
;	  0852		    OLD [0] = .EXV [EXV$A_DISPATCH];
;	  0853		    OLD [1] = .PROCESS [PDT$B_INDEX];
;	  0854		    OLD [2] = .EXV [EXV$A_ENABLE_DATA];
;	  0855		    OLD = OLD [2];
;	  0856		    end;
;	  0857	
;	  0858		end;
;	  0859	
;	  0860	    if actualcount () gtru 2
;	  0861	    then
;	  0862		begin
;	  0863	
;	  0864		local
;	  0865		    NEW : ref vector [3];
;	  0866	
;	  0867		if (NEW = actualparameter (2)) neqa 0
;	  0868		then
;	  0869		    begin
;	  0870	
;	  0871		    local
;	  0872			PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  0873	
;	  0874		    if .CEX$GH_PROCESS_COUNT lssu .NEW [1] or
;	  0875			(PROCESS = .CEX$AA_PROCESS_TABLE [.NEW [1]]) eqla 0
;	  0876		    then
;	  0877			return $CEX_FATAL_ERROR (CE$PIX);
;	  0878	
;	  0879		    codecomment 'Disable the exception' :
;	  0880			begin EXV [EXV$A_DISPATCH] = 0; end;
;	  0881	
;	  0882		    EXV [EXV$A_ENABLE_DATA] = .NEW [2];
;	  0883		    EXV [EXV$A_PROCESS] = .PROCESS;
;	  0884		    EXV [EXV$A_DISPATCH] = .NEW [0];
;	  0885		    end
;	  0886		else
;	  0887		    EXV [EXV$A_DISPATCH] = 0;
;	  0888	
;	  0889		end
;	  0890	    else
;	  0891		EXV [EXV$A_DISPATCH] = 0;
;	  0892	
;	  0893	    end;
;	  0894	    MCB$_NORMAL
;	  0895	    end;					!of routine CEX$$SET_EXCEPTION
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  28
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (9)



000052						.PSECT	$PLIT$,  RO ,  D  
000052	000000G				P.AAD:	.WORD	.MEXV1
000054	000000G					.WORD	.MEXV2
000056	000000G					.WORD	.MEXVL


	000052'				MEXV=		    P.AAD


						.SBTTL	$EXVEN
001026						.PSECT	$CODE$,  RO 

000000	105715 				$EXVEN::TSTB	(R5)				; .AP.					0822
000002	001003 					BNE	1$
000004	012700  001002 				MOV	#1002,R0
000010	000455 					BR	5$
000012	016502  000002 			1$:	MOV	2(R5),R2			; *(.AP.),EXV				0834
000016	020227  000002 				CMP	R2,#2				; EXV,*
000022	101403 					BLOS	2$
000024	012700  000460 				MOV	#460,R0
000030	000207 					RTS	PC
000032	010200 				2$:	MOV	R2,R0				; EXV,*					0836
000034	006300 					ASL	R0
000036	016002  000052'				MOV	MEXV(R0),R2			; *,EXV
000042	121527  000003 				CMPB	(R5),#3				; .AP.,*				0838
000046	101414 					BLOS	3$
000050	016501  000006 				MOV	6(R5),R1			; *(.AP.),OLD				0845
000054	001411 					BEQ	3$
000056	016221  000004 				MOV	4(R2),(R1)+			; *(EXV),OLD				0852
000062	016200  000002 				MOV	2(R2),R0			; *(EXV),*				0853
000066	116021  000010 				MOVB	10(R0),(R1)+			; *,OLD
000072	105021 					CLRB	(R1)+				; OLD
000074	016211  000006 				MOV	6(R2),(R1)			; *(EXV),OLD				0854
000100	121527  000002 			3$:	CMPB	(R5),#2				; .AP.,*				0860
000104	101432 					BLOS	7$
000106	016501  000004 				MOV	4(R5),R1			; *(.AP.),NEW				0867
000112	001427 					BEQ	7$
000114	023761  000000G 000002 			CMP	.PDBNM,2(R1)			; *,*(NEW)				0874
000122	103406 					BLO	4$
000124	016100  000002 				MOV	2(R1),R0			; *(NEW),*				0875
000130	006300 					ASL	R0
000132	016005  000000G				MOV	.PDBVB(R0),R5			; *,PROCESS
000136	001005 					BNE	6$
000140	012700  000564 			4$:	MOV	#564,R0				;					0877
000144	010037  000000G			5$:	MOV	R0,.CEXST
000150	000207 					RTS	PC
000152					6$:

					;+
					;	Disable the exception
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  29
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (9)

					;-

000152	016162  000004  000006 			MOV	4(R1),6(R2)			; *(NEW),*(EXV)				0882
000160	010562  000002 				MOV	R5,2(R2)			; PROCESS,*(EXV)			0883
000164	011162  000004 				MOV	(R1),4(R2)			; NEW,*(EXV)				0884
000170	000402 					BR	8$				;					0867
000172	005062  000004 			7$:	CLR	4(R2)				; *(EXV)				0891
000176	012700  000001 			8$:	MOV	#1,R0				;					0793
000202	000207 					RTS	PC

; Routine Size:  66 words,	Routine Base:  $CODE$ + 1026
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  30
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (10)

;	  0896	global routine CEX$$SET_LINE_PROCESSES : CALL$ =
;	  0897	
;	  0898	!++
;	  0899	! FUNCTIONAL DESCRIPTION:
;	  0900	!
;	  0901	!
;	  0902	! FORMAL PARAMETERS:
;	  0903	!	None
;	  0904	!
;	  0905	! IMPLICIT INPUTS:
;	  0906	!	None
;	  0907	!
;	  0908	! IMPLICIT OUTPUTS:
;	  0909	!	None
;	  0910	!
;	  0911	! ROUTINE VALUE:
;	  0912	! COMPLETION CODES:
;	  0913	!	None
;	  0914	!
;	  0915	! SIDE EFFECTS:
;	  0916	!	None
;	  0917	!--
;	  0918	
;	  0919	    begin
;	  0920	
;	  0921	    builtin
;	  0922		actualcount,
;	  0923		actualparameter;
;	  0924	
;	  0925	    if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  0926	
;	  0927	    begin
;	  0928	
;	  0929	    local
;	  0930		SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
;	  0931	
;	  0932	    if (SLT = FIND_LINE (actualparameter (1))) eqla 0 then return $CEX_FATAL_ERROR (CE$LIX);
;	  0933	
;	  0934	    begin
;	  0935	
;	  0936	    local
;	  0937		BUF : ref vector [3],
;	  0938		DDM_PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS),
;	  0939		DLC_PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS),
;	  0940		LLC_PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  0941	
;	  0942	    BUF = actualparameter (2);
;	  0943	
;	  0944	    if (LLC_PROCESS = .BUF [0]) nequ 0
;	  0945	    then
;	  0946	
;	  0947		if .LLC_PROCESS gequ .CEX$GH_PROCESS_COUNT
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  31
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (10)

;	  0948		then
;	  0949		    return $CEX_FATAL_ERROR (CE$PIX);
;	  0950	
;	  0951	    if (LLC_PROCESS = .CEX$AA_PROCESS_TABLE [.LLC_PROCESS]) eqla 0
;	  0952	    then
;	  0953		return $CEX_FATAL_ERROR (CE$PIX);
;	  0954	
;	  0955	    if (DLC_PROCESS = .BUF [1]) nequ 0
;	  0956	    then
;	  0957	
;	  0958		if .DLC_PROCESS gequ .CEX$GH_PROCESS_COUNT
;	  0959		then
;	  0960		    return $CEX_FATAL_ERROR (CE$PIX);
;	  0961	
;	  0962	    if (DLC_PROCESS = .CEX$AA_PROCESS_TABLE [.DLC_PROCESS]) eqla 0
;	  0963	    then
;	  0964		return $CEX_FATAL_ERROR (CE$PIX);
;	  0965	
;	  0966	    if (DDM_PROCESS = .BUF [2]) nequ 0
;	  0967	    then
;	  0968	
;	  0969		if .DDM_PROCESS gequ .CEX$GH_PROCESS_COUNT
;	  0970		then
;	  0971		    return $CEX_FATAL_ERROR (CE$PIX);
;	  0972	
;	  0973	    if (DDM_PROCESS = .CEX$AA_PROCESS_TABLE [.DDM_PROCESS]) eqla 0
;	  0974	    then
;	  0975		return $CEX_FATAL_ERROR (CE$PIX);
;	  0976	
;	  0977	    SLT [SLT$B_LLC_PROCESS_INDEX] = .LLC_PROCESS [PDT$B_INDEX];
;	  0978	    SLT [SLT$B_DLC_PROCESS_INDEX] = .DLC_PROCESS [PDT$B_INDEX];
;	  0979	    SLT [SLT$B_DDM_PROCESS_INDEX] = .DDM_PROCESS [PDT$B_INDEX];
;	  0980	    end;
;	  0981	    end;
;	  0982	    MCB$_NORMAL
;	  0983	    end;				!of routine CEX$$SET_LINE_PROCESSES


						.SBTTL	$SLTST
000000	121527  000002 			$SLTST::CMPB	(R5),#2				; .AP.,*				0925
000004	001405 					BEQ	1$
000006	012700  001002 				MOV	#1002,R0
000012	010037  000000G				MOV	R0,.CEXST
000016	000207 					RTS	PC
000020	016501  000002 			1$:	MOV	2(R5),R1			; *(.AP.),*				0932
000024	004737  000000V				JSR	PC,FIND.LINE
000030	005700 					TST	R0				; SLT
000032	001003 					BNE	2$
000034	012701  000544 				MOV	#544,R1
000040	000444 					BR	7$
000042	016502  000004 			2$:	MOV	4(R5),R2			; *(.AP.),BUF				0942
000046	011203 					MOV	(R2),R3				; BUF,LLC.PROCESS			0944
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  32
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (10)

000050	001403 					BEQ	3$
000052	020337  000000G				CMP	R3,.PDBNM			; LLC.PROCESS,*				0947
000056	103033 					BHIS	6$				;					0949
000060	010301 				3$:	MOV	R3,R1				; LLC.PROCESS,*				0951
000062	006301 					ASL	R1
000064	016103  000000G				MOV	.PDBVB(R1),R3			; *,LLC.PROCESS
000070	001426 					BEQ	6$				;					0953
000072	016205  000002 				MOV	2(R2),R5			; *(BUF),DLC.PROCESS			0955
000076	001403 					BEQ	4$
000100	020537  000000G				CMP	R5,.PDBNM			; DLC.PROCESS,*				0958
000104	103020 					BHIS	6$				;					0960
000106	010501 				4$:	MOV	R5,R1				; DLC.PROCESS,*				0962
000110	006301 					ASL	R1
000112	016105  000000G				MOV	.PDBVB(R1),R5			; *,DLC.PROCESS
000116	001413 					BEQ	6$				;					0964
000120	016202  000004 				MOV	4(R2),R2			; *(BUF),DDM.PROCESS			0966
000124	001403 					BEQ	5$
000126	020237  000000G				CMP	R2,.PDBNM			; DDM.PROCESS,*				0969
000132	103005 					BHIS	6$				;					0971
000134	010201 				5$:	MOV	R2,R1				; DDM.PROCESS,*				0973
000136	006301 					ASL	R1
000140	016102  000000G				MOV	.PDBVB(R1),R2			; *,DDM.PROCESS
000144	001006 					BNE	8$
000146	012701  000564 			6$:	MOV	#564,R1				;					0975
000152	010137  000000G			7$:	MOV	R1,.CEXST
000156	010100 					MOV	R1,R0
000160	000207 					RTS	PC
000162	116360  000010  000004 		8$:	MOVB	10(R3),4(R0)			; *(LLC.PROCESS),*(SLT)			0977
000170	116560  000010  000002 			MOVB	10(R5),2(R0)			; *(DLC.PROCESS),*(SLT)			0978
000176	116210  000010 				MOVB	10(R2),(R0)			; *(DDM.PROCESS),SLT			0979
000202	012700  000001 				MOV	#1,R0				;					0896
000206	000207 					RTS	PC

; Routine Size:  68 words,	Routine Base:  $CODE$ + 1232
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  33
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (11)

;	  0984	global routine CEX$$SET_PROCESS : CALL$ =
;	  0985	
;	  0986	!++
;	  0987	! FUNCTIONAL DESCRIPTION:
;	  0988	!
;	  0989	!
;	  0990	! FORMAL PARAMETERS:
;	  0991	!	None
;	  0992	!
;	  0993	! IMPLICIT INPUTS:
;	  0994	!	None
;	  0995	!
;	  0996	! IMPLICIT OUTPUTS:
;	  0997	!	None
;	  0998	!
;	  0999	! ROUTINE VALUE:
;	  1000	! COMPLETION CODES:
;	  1001	!	None
;	  1002	!
;	  1003	! SIDE EFFECTS:
;	  1004	!	None
;	  1005	!--
;	  1006	
;	  1007	    begin
;	  1008	
;	  1009	    builtin
;	  1010		actualcount,
;	  1011		actualparameter;
;	  1012	
;	  1013	    if actualcount () lss 1 or actualcount () gtr 2
;	  1014	    then
;	  1015		return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  1016	
;	  1017	    actualparameter (1) = 0;
;	  1018	    begin
;	  1019	
;	  1020	    local
;	  1021		PDT : ref vector;
;	  1022	
;	  1023	    PDT = CEX$AA_PROCESS_TABLE [0];
;	  1024	
;	  1025	    do
;	  1026		begin
;	  1027	
;	  1028		if .PDT [0] eqla 0
;	  1029		then
;	  1030		    begin
;	  1031	
;	  1032		    local
;	  1033			BIAS;
;	  1034	
;	  1035		    BIAS = .CEX$GA_CURRENT_PROCESS [PDT$W_CODE_BIAS];
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  34
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (11)

;	  1036	
;	  1037		    if actualcount () eql 2
;	  1038		    then
;	  1039			begin
;	  1040	
;	  1041			local
;	  1042			    PCB : ref block field (PCB_FIELDS),
;	  1043			    PCB_NAME : vector [2];
;	  1044	
;	  1045			PCB_NAME [0] = %rad50_11 'NT.';
;	  1046			PCB_NAME [1] = actualparameter (2);
;	  1047	
;	  1048			if (PCB = FIND_PARTITION (PCB_NAME)) eqla 0
;	  1049			then
;	  1050			    return $CEX_FATAL_ERROR (CE$ACV);
;	  1051	
;	  1052			BIAS = .PCB [P_REL];
;	  1053			end;
;	  1054	
;	  1055		    begin
;	  1056	
;	  1057		    local
;	  1058			PDB : ref block [PDT$K_LENGTH - 1] field ($CEX_PDTFIELDS);
;	  1059	
;	  1060		    if not $RSX_GET_DSR ((PDT$K_LENGTH - 1)*%upval, PDB)
;	  1061		    then
;	  1062			return $CEX_FATAL_ERROR (CE$RES);
;	  1063	
;	  1064		    begin
;	  1065		    $CEX_PHDDEF
;	  1066	
;	  1067		    bind
;	  1068			HEADER = %o'140000' : block field ($CEX_PHDFIELDS);
;	  1069	
;	  1070		    local
;	  1071			SAVE_MAP;
;	  1072	
;	  1073		    SMAP$ (SAVE_MAP);
;	  1074		    MAP$ (.BIAS);
;	  1075		    PDB [PDT$W_CODE_BIAS] = .BIAS;
;	  1076		    PDB [PDT$A_CODE_DISPATCH] = .HEADER [PHD$A_LLC_TABLE];
;	  1077		    MAP$ (.SAVE_MAP);
;	  1078		    end;
;	  1079		    PDB [PDT$W_DATA_BIAS] = 0;
;	  1080		    PDB [PDT$A_DATA_ADDRESS] = 0;
;	  1081		    PDB [PDT$B_INDEX] = actualparameter (1) =
;	L 1082			%if %upval eql 1
;	U 1083			%then (.PDT - CEX$AA_PROCESS_TABLE [0])
;	L 1084			%else %if %upval eql 2
;	  1085			%then (.PDT - CEX$AA_PROCESS_TABLE [0])^-1
;	U 1086			%else %if %upval eql 4
;	U 1087			%then (.PDT - CEX$AA_PROCESS_TABLE [0])^-2
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  35
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (11)

;	U 1088			%else (.PDT - CEX$AA_PROCESS_TABLE [0])/%upval
;	  1089			%fi %fi %fi;
;	  1090		    PDB [PDT$V_FLAGS] = 0;
;	  1091		    PDT [0] = .PDB;
;	  1092		    end;
;	  1093		    PDT = PDT [1];
;	  1094	
;	  1095		    if .PDT gtra .CEX$GA_PROCESS_TABLE_END
;	  1096		    then
;	  1097			CEX$GA_PROCESS_TABLE_END = .PDT;
;	  1098	
;	  1099		    return MCB$_NORMAL;
;	  1100		    end;
;	  1101	
;	  1102		end
;	  1103	    while (PDT = PDT [1]) lssa CEX$GA_PROCESS_TABLE_END;
;	  1104	
;	  1105	    end;
;	  1106	    return $CEX_FATAL_ERROR (CE$RES)
;	  1107	    end;				!of routine CEX$$SET_PROCESS


						.GLOBL	$ALOCB


	140000 				HEADER=		    -40000


						.SBTTL	$PDBST
000000	024646 				$PDBST::CMP	-(SP),-(SP)			;					0984
000002	105715 					TSTB	(R5)				; .AP.					1013
000004	001403 					BEQ	1$
000006	121527  000002 				CMPB	(R5),#2				; .AP.,*
000012	101403 					BLOS	2$
000014	012700  001002 			1$:	MOV	#1002,R0			;					1015
000020	000513 					BR	9$
000022	005075  000002 			2$:	CLR	@2(R5)				; *(.AP.)				1017
000026	012704  000000G				MOV	#.PDBVB,R4			; *,PDT					1023
000032	005714 				3$:	TST	(R4)				; PDT					1028
000034	001076 					BNE	7$
000036	017703  000000G				MOV	@.CRPDB,R3			; *,BIAS				1035
000042	121527  000002 				CMPB	(R5),#2				; .AP.,*				1037
000046	001022 					BNE	5$
000050	012716  055274 				MOV	#55274,(SP)			; *,PCB.NAME				1045
000054	016566  000004  000002 			MOV	4(R5),2(SP)			; *(.AP.),PCB.NAME+2			1046
000062	010601 					MOV	SP,R1				; PCB.NAME,*				1048
000064	004737  000000V				JSR	PC,FIND.PARTITION
000070	005700 					TST	R0				; PCB
000072	001006 					BNE	4$
000074	012701  000312 				MOV	#312,R1				;					1050
000100	010137  000000G				MOV	R1,.CEXST
000104	010100 					MOV	R1,R0
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  36
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (11)

000106	000462 					BR	10$
000110	016003  000014 			4$:	MOV	14(R0),R3			; *(PCB),BIAS				1052
000114	012701  000012 			5$:	MOV	#12,R1				;					1060
000120	004737  000000G				JSR	PC,$ALOCB
000124	103447 					BCS	8$
000126	010001 					MOV	R0,R1				; $RSX$R0,PDB
000130	013700  000000G				MOV	KISAR6,R0			; *,SAVE.MAP				1073
000134	010337  000000G				MOV	R3,KISAR6			; BIAS,*				1074
000140	010311 					MOV	R3,(R1)				; BIAS,PDB				1075
000142	013761  140012  000002 			MOV	@#140012,2(R1)			; *,*(PDB)				1076
000150	010037  000000G				MOV	R0,KISAR6			; SAVE.MAP,*				1077
000154	005061  000004 				CLR	4(R1)				; *(PDB)				1079
000160	005061  000006 				CLR	6(R1)				; *(PDB)				1080
000164	010400 					MOV	R4,R0				; PDT,*					1085
000166	162700  000000G				SUB	#.PDBVB,R0
000172	006200 					ASR	R0
000174	010075  000002 				MOV	R0,@2(R5)			; *,*(.AP.)				1081
000200	110061  000010 				MOVB	R0,10(R1)			; *,*(PDB)
000204	105061  000011 				CLRB	11(R1)				; *(PDB)				1090
000210	010124 					MOV	R1,(R4)+			; PDB,PDT				1091
000212	020437  000000G				CMP	R4,.PDBVE			; PDT,*					1095
000216	101402 					BLOS	6$
000220	010437  000000G				MOV	R4,.PDBVE			; PDT,*					1097
000224	012700  000001 			6$:	MOV	#1,R0				;					1030
000230	000411 					BR	10$
000232	062704  000002 			7$:	ADD	#2,R4				; *,PDT					1103
000236	020427  000000G				CMP	R4,#.PDBVE			; PDT,*
000242	103673 					BLO	3$
000244	012700  000652 			8$:	MOV	#652,R0				;					1106
000250	010037  000000G			9$:	MOV	R0,.CEXST
000254	022626 				10$:	CMP	(SP)+,(SP)+			;					0984
000256	000207 					RTS	PC

; Routine Size:  88 words,	Routine Base:  $CODE$ + 1442
; Maximum stack depth per invocation:  3 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  37
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (12)

;	  1108	global routine CEX$$SET_PROCESS_NAME : CALL$ =
;	  1109	
;	  1110	!++
;	  1111	! FUNCTIONAL DESCRIPTION:
;	  1112	!
;	  1113	!
;	  1114	! FORMAL PARAMETERS:
;	  1115	!	None
;	  1116	!
;	  1117	! IMPLICIT INPUTS:
;	  1118	!	None
;	  1119	!
;	  1120	! IMPLICIT OUTPUTS:
;	  1121	!	None
;	  1122	!
;	  1123	! ROUTINE VALUE:
;	  1124	! COMPLETION CODES:
;	  1125	!	None
;	  1126	!
;	  1127	! SIDE EFFECTS:
;	  1128	!	None
;	  1129	!--
;	  1130	
;	  1131	    begin
;	  1132	
;	  1133	    builtin
;	  1134		actualcount,
;	  1135		actualparameter;
;	  1136	
;	  1137	    if actualcount () neq 1 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  1138	
;	  1139	    begin
;	  1140	
;	  1141	    local
;	  1142		NAME_ENTRY : ref block [PNM$K_LENGTH] field ($CEX_PNMFIELDS);
;	  1143	
;	  1144	    if FIND_PROCESS_NAME (actualparameter (1)) neqa 0 then return MCB$_BUSY_NAME;
;	  1145	
;	  1146	    if (NAME_ENTRY = FIND_PROCESS_NAME (0)) eqla 0 then return CE$RES;
;	  1147	
;	  1148	    NAME_ENTRY [PNM$W_NAME] = actualparameter (1);
;	  1149	    NAME_ENTRY [PNM$A_PROCESS] = .CEX$GA_CURRENT_PROCESS;
;	  1150	    end;
;	  1151	    MCB$_NORMAL
;	  1152	    end;				!of routine CEX$$SET_PROCESS_NAME


						.SBTTL	$PNMST
000000	121527  000001 			$PNMST::CMPB	(R5),#1				; .AP.,*				1137
000004	001405 					BEQ	1$
000006	012700  001002 				MOV	#1002,R0
000012	010037  000000G				MOV	R0,.CEXST
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  38
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (12)

000016	000207 					RTS	PC
000020	016501  000002 			1$:	MOV	2(R5),R1			; *(.AP.),*				1144
000024	004737  000000V				JSR	PC,FIND.PROCESS.NAME
000030	005700 					TST	R0
000032	001403 					BEQ	2$
000034	012700  000300 				MOV	#300,R0
000040	000207 					RTS	PC
000042	005001 				2$:	CLR	R1				;					1146
000044	004737  000000V				JSR	PC,FIND.PROCESS.NAME
000050	005700 					TST	R0				; NAME.ENTRY
000052	001003 					BNE	3$
000054	012700  000652 				MOV	#652,R0
000060	000207 					RTS	PC
000062	016560  000002  000002 		3$:	MOV	2(R5),2(R0)			; *(.AP.),*(NAME.ENTRY)			1148
000070	013710  000000G				MOV	.CRPDB,(R0)			; *,NAME.ENTRY				1149
000074	012700  000001 				MOV	#1,R0				;					1108
000100	000207 					RTS	PC

; Routine Size:  33 words,	Routine Base:  $CODE$ + 1722
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  39
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (13)

;	  1153	global routine CEX$$SET_VECTOR : CALL$ =
;	  1154	
;	  1155	!++
;	  1156	! FUNCTIONAL DESCRIPTION:
;	  1157	!
;	  1158	!
;	  1159	! FORMAL PARAMETERS:
;	  1160	!	None
;	  1161	!
;	  1162	! IMPLICIT INPUTS:
;	  1163	!	None
;	  1164	!
;	  1165	! IMPLICIT OUTPUTS:
;	  1166	!	None
;	  1167	!
;	  1168	! ROUTINE VALUE:
;	  1169	! COMPLETION CODES:
;	  1170	!	None
;	  1171	!
;	  1172	! SIDE EFFECTS:
;	  1173	!	None
;	  1174	!--
;	  1175	
;	  1176	    begin
;	  1177	
;	  1178	    builtin
;	  1179		actualcount,
;	  1180		actualparameter;
;	  1181	
;	  1182	    if actualcount () neq 3 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
;	  1183	
;	  1184	    begin
;	  1185	
;	  1186	    local
;	  1187		DSP,
;	  1188		ITB : ref block [ITB$K_LENGTH] field ($CEX_ITBFIELDS),
;	  1189		PRI,
;	  1190		VEC : ref vector [2];
;	  1191	
;	  1192	    external
;	  1193		%name ('$NONSI'),
;	  1194		%name ('V$$CTR');
;	  1195	
;	  1196	    VEC = actualparameter (1);
;	  1197	
;	  1198	    if .VEC geqa %name ('V$$CTR') or .VEC <0, 2> neq 0
;	  1199	    then
;	  1200		return $CEX_FATAL_ERROR (CE$VEC);
;	  1201	
;	  1202	    if .VEC [0] neqa %name ('$NONSI')
;	  1203	    then
;	  1204		return $CEX_FATAL_ERROR (CE$VCU);
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  40
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (13)

;	  1205	
;	  1206	    if (DSP = actualparameter (2)) lssa %o'120000' or .DSP gtra %o'140000'
;	  1207	    then
;	  1208		return $CEX_FATAL_ERROR (CE$DSP);
;	  1209	
;	  1210	    if (PRI = actualparameter (3) - 4) gtru 7 - 4
;	  1211	    then
;	  1212		return $CEX_FATAL_ERROR (CE$PRI);
;	  1213	
;	  1214	    if not $RSX_GET_DSR (ITB$K_LENGTH*%upval, ITB)
;	  1215	    then
;	  1216		return $CEX_FATAL_ERROR (CE$RES);
;	  1217	
;	  1218	    ITB [ITB$W_JSR_5_INSTRUCTION] = %o'4537';
;	  1219	    ITB [ITB$A_JSR_5_ADDRESS] = .INTERRUPT_PRIORITY_BLOCK [.PRI];
;	  1220	    ITB [ITB$A_PROCESS] = .CEX$GA_CURRENT_PROCESS;
;	  1221	    ITB [ITB$A_DISPATCH] = .DSP;
;	  1222	    VEC [0] = ITB [ITB$V_JSR_5];
;	  1223	    end;
;	  1224	    MCB$_NORMAL
;	  1225	    end;				!of routine CEX$$SET_VECTOR


						.SBTTL	$VECST
000000	121527  000003 			$VECST::CMPB	(R5),#3				; .AP.,*				1182
000004	001403 					BEQ	1$
000006	012700  001002 				MOV	#1002,R0
000012	000457 					BR	9$
000014	016504  000002 			1$:	MOV	2(R5),R4			; *(.AP.),VEC				1196
000020	020427  000000G				CMP	R4,#V$$CTR			; VEC,*					1198
000024	103003 					BHIS	2$
000026	032704  000003 				BIT	#3,R4				; *,VEC
000032	001403 					BEQ	3$
000034	012700  000742 			2$:	MOV	#742,R0				;					1200
000040	000444 					BR	9$
000042	021427  000000G			3$:	CMP	(R4),#$NONSI			; VEC,*					1202
000046	001403 					BEQ	4$
000050	012700  000762 				MOV	#762,R0				;					1204
000054	000436 					BR	9$
000056	016503  000004 			4$:	MOV	4(R5),R3			; *(.AP.),DSP				1206
000062	020327  120000 				CMP	R3,#120000			; DSP,*
000066	103403 					BLO	5$
000070	020327  140000 				CMP	R3,#140000			; DSP,*
000074	101403 					BLOS	6$
000076	012700  000444 			5$:	MOV	#444,R0				;					1208
000102	000423 					BR	9$
000104	016505  000006 			6$:	MOV	6(R5),R5			; *(.AP.),PRI				1210
000110	162705  000004 				SUB	#4,R5				; *,PRI
000114	020527  000003 				CMP	R5,#3				; PRI,*
000120	101403 					BLOS	7$
000122	012700  000602 				MOV	#602,R0				;					1212
000126	000411 					BR	9$
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  41
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (13)

000130	012701  000010 			7$:	MOV	#10,R1				;					1214
000134	004737  000000G				JSR	PC,$ALOCB
000140	103402 					BCS	8$
000142	010001 					MOV	R0,R1				; $RSX$R0,ITB
000144	000405 					BR	10$
000146	012700  000652 			8$:	MOV	#652,R0				;					1216
000152	010037  000000G			9$:	MOV	R0,.CEXST
000156	000207 					RTS	PC
000160	012711  004537 			10$:	MOV	#4537,(R1)			; *,ITB					1218
000164	010500 					MOV	R5,R0				; PRI,*					1219
000166	006300 					ASL	R0
000170	016061  000042' 000002 			MOV	INTERRUPT.PRIORITY.BLOCK(R0),2(R1) ; 
											; *,*(ITB)
000176	013761  000000G 000004 			MOV	.CRPDB,4(R1)			; *,*(ITB)				1220
000204	010361  000006 				MOV	R3,6(R1)			; DSP,*(ITB)				1221
000210	010114 					MOV	R1,(R4)				; ITB,VEC				1222
000212	012700  000001 				MOV	#1,R0				;					1153
000216	000207 					RTS	PC

; Routine Size:  72 words,	Routine Base:  $CODE$ + 2024
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  42
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (14)

;	  1226	routine ALLOCATE_BUFFERS (BLKS) : LINKAGE_BLKS =
;	  1227	
;	  1228	!++
;	  1229	! FUNCTIONAL DESCRIPTION:
;	  1230	!
;	  1231	!
;	  1232	! FORMAL PARAMETERS:
;	  1233	!	None
;	  1234	!
;	  1235	! IMPLICIT INPUTS:
;	  1236	!	None
;	  1237	!
;	  1238	! IMPLICIT OUTPUTS:
;	  1239	!	None
;	  1240	!
;	  1241	! ROUTINE VALUE:
;	  1242	! COMPLETION CODES:
;	  1243	!	None
;	  1244	!
;	  1245	! SIDE EFFECTS:
;	  1246	!	None
;	  1247	!--
;	  1248	
;	  1249	    begin
;	  1250	
;	  1251	    local
;	  1252		BIAS;
;	  1253	
;	  1254	    BIAS = 0;
;	  1255	
;	  1256	    if %(not)% CEX$$ALLOCATE_CORE (.BLKS) then return .BIAS;
;	  1257	
;	  1258	    SMAP$ (BIAS);
;	  1259	    .BIAS
;	  1260	    end;					!of routine ALLOCATE_BUFFERS


						.SBTTL	ALLOCATE.BUFFERS
000000	005000 				ALLOCATE.BUFFERS:
						CLR	R0				; BIAS					1254
000002	004737  000000G				JSR	PC,$BLKGT			;					1256
000006	103402 					BLO	1$
000010	013700  000000G				MOV	KISAR6,R0			; *,BIAS				1258
000014	000207 				1$:	RTS	PC				;					1226

; Routine Size:  7 words,	Routine Base:  $CODE$ + 2244
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  43
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (15)

;	  1261	routine ALLOCATE_BUFFER_POOL (BFP) : LINKAGE_ADR novalue =
;	  1262	
;	  1263	!++
;	  1264	! FUNCTIONAL DESCRIPTION:
;	  1265	!
;	  1266	!
;	  1267	! FORMAL PARAMETERS:
;	  1268	!	None
;	  1269	!
;	  1270	! IMPLICIT INPUTS:
;	  1271	!	None
;	  1272	!
;	  1273	! IMPLICIT OUTPUTS:
;	  1274	!	None
;	  1275	!
;	  1276	! ROUTINE VALUE:
;	  1277	! COMPLETION CODES:
;	  1278	!	None
;	  1279	!
;	  1280	! SIDE EFFECTS:
;	  1281	!	None
;	  1282	!--
;	  1283	
;	  1284	    begin
;	  1285	
;	  1286	    map
;	  1287		BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
;	  1288	
;	  1289	    local
;	  1290		BIAS,
;	  1291		COUNT;
;	  1292	
;	  1293	    if (COUNT = .BFP [BFP$H_ALLOCATION_MAXIMUM]) leq 0 then return;
;	  1294	
;	  1295	    begin
;	  1296	
;	  1297	    local
;	  1298		BLKS;
;	  1299	
;	  1300	    begin
;	  1301	
;	  1302	    local
;	  1303		HIGH;
;	  1304	
;	  1305	    CEX$$MULTIPLY_32 (.COUNT, (BFH$K_LENGTH*%upval) + .BFP [BFP$H_SIZE]; BLKS, HIGH);
;	  1306	    CEX$$ADD_32 (%o'77', .BLKS, .HIGH; BLKS, HIGH);
;	  1307	    CEX$$SHIFT_32 (-6, .BLKS, .HIGH; BLKS, HIGH);
;	  1308	    end;
;	  1309	
;	  1310	    if (BIAS = ALLOCATE_BUFFERS (.BLKS)) eql 0 then return;
;	  1311	
;	  1312	    BFP [BFP$W_ALLOCATED_BIAS] = .BIAS;
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  44
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (15)

;	  1313	    BFP [BFP$W_ALLOCATED_BLKS] = .BLKS;
;	  1314	    end;
;	  1315	    BFP [BFP$H_ALLOCATED] = .COUNT;
;	  1316	    begin
;	  1317	
;	  1318	    local
;	  1319		ADDRESS : ref block [BFH$K_LENGTH] field ($CEX_BFHFIELDS);
;	  1320	
;	  1321	    ADDRESS = %o'140000';
;	  1322	
;	  1323	    do
;	  1324		begin
;	  1325		BFP [BFP$H_FREE_COUNT] = .BFP [BFP$H_FREE_COUNT] + 1;
;	  1326		begin
;	  1327	
;	  1328		bind
;	  1329		    LAST = .BFP [BFP$A_QUEUE_LAST_ADDR] : block field ($CEX_BFHFIELDS);
;	  1330	
;	  1331		MAP$ (.BFP [BFP$W_QUEUE_LAST_BIAS]);
;	  1332		LAST [BFH$W_BIAS] = .BIAS;
;	  1333		LAST [BFH$A_ADDRESS] = .ADDRESS;
;	  1334		end;
;	  1335		BFP [BFP$W_QUEUE_LAST_BIAS] = .BIAS;
;	  1336		BFP [BFP$A_QUEUE_LAST_ADDR] = .ADDRESS;
;	  1337		MAP$ (.BIAS);
;	  1338		ADDRESS [BFH$W_BIAS] = 0;
;	  1339		ADDRESS [BFH$A_ADDRESS] = 0;
;	  1340		ADDRESS [BFH$H_SIZE] = 0;
;	  1341		ADDRESS [BFH$A_PROCESS] = 0;
;	  1342		ADDRESS = vector [.ADDRESS, BFH$K_LENGTH]; %(force auto-increment)%
;	  1343		ADDRESS = .ADDRESS + .BFP [BFP$H_SIZE];
;	  1344		BIAS = .BIAS + .ADDRESS <6, 7>;
;	  1345		ADDRESS <6, 7> = 0;
;	  1346		end
;	  1347	    while (COUNT = .COUNT - 1) neq 0;
;	  1348	
;	  1349	    end;
;	  1350	    end;				!of routine ALLOCATE_BUFFER_POOL


						.SBTTL	ALLOCATE.BUFFER.POOL
000000	004137  000000G			ALLOCATE.BUFFER.POOL:
						JSR	R1,$SAVE3			;					1261
000004	016503  000020 				MOV	20(R5),R3			; *(BFP),COUNT				1293
000010	003471 					BLE	2$
000012	011500 					MOV	(R5),R0				; BFP,*					1305
000014	062700  000010 				ADD	#10,R0
000020	010302 					MOV	R3,R2				; COUNT,*
000022	004737  000000G				JSR	PC,$MUL32
000026	012702  000077 				MOV	#77,R2				;					1306
000032	004737  000000G				JSR	PC,$ADD32
000036	012702  177772 				MOV	#-6,R2				;					1307
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  45
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (15)

000042	004737  000000G				JSR	PC,$ASH32
000046	004737  002244'				JSR	PC,ALLOCATE.BUFFERS		;					1310
000052	005700 					TST	R0				; BIAS
000054	001447 					BEQ	2$
000056	010065  000020 				MOV	R0,20(R5)			; BIAS,*(BFP)				1312
000062	010165  000022 				MOV	R1,22(R5)			; BLKS,*(BFP)				1313
000066	010365  000016 				MOV	R3,16(R5)			; COUNT,*(BFP)				1315
000072	012702  140000 				MOV	#-40000,R2			; *,ADDRESS				1321
000076	005265  000002 			1$:	INC	2(R5)				; *(BFP)				1325
000102	016537  000010  000000G			MOV	10(R5),KISAR6			; *(BFP),*				1331
000110	010075  000012 				MOV	R0,@12(R5)			; BIAS,*(BFP)				1332
000114	016501  000012 				MOV	12(R5),R1			; *(BFP),*				1333
000120	010261  000002 				MOV	R2,2(R1)			; ADDRESS,*
000124	010065  000010 				MOV	R0,10(R5)			; BIAS,*(BFP)				1335
000130	010265  000012 				MOV	R2,12(R5)			; ADDRESS,*(BFP)			1336
000134	010037  000000G				MOV	R0,KISAR6			; BIAS,*				1337
000140	005022 					CLR	(R2)+				; ADDRESS				1338
000142	005022 					CLR	(R2)+				; ADDRESS				1339
000144	005022 					CLR	(R2)+				; ADDRESS				1340
000146	005022 					CLR	(R2)+				; ADDRESS				1341
000150	061502 					ADD	(R5),R2				; BFP,ADDRESS				1343
000152	010201 					MOV	R2,R1				; ADDRESS,*				1344
000154	072127  177772 				ASH	#-6,R1
000160	042701  177600 				BIC	#177600,R1
000164	060100 					ADD	R1,R0				; *,BIAS
000166	042702  017700 				BIC	#17700,R2			; *,ADDRESS				1345
000172	077337 					SOB	R3,1$				; COUNT,*				1347
000174	000207 				2$:	RTS	PC				;					1261

; Routine Size:  63 words,	Routine Base:  $CODE$ + 2262
; Maximum stack depth per invocation:  5 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  46
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (16)

;	  1351	routine ALLOCATE_CCB_AND_BUFFER_POOL (CBP) : LINKAGE_ADR novalue =
;	  1352	
;	  1353	!++
;	  1354	! FUNCTIONAL DESCRIPTION:
;	  1355	!
;	  1356	!
;	  1357	! FORMAL PARAMETERS:
;	  1358	!	None
;	  1359	!
;	  1360	! IMPLICIT INPUTS:
;	  1361	!	None
;	  1362	!
;	  1363	! IMPLICIT OUTPUTS:
;	  1364	!	None
;	  1365	!
;	  1366	! ROUTINE VALUE:
;	  1367	! COMPLETION CODES:
;	  1368	!	None
;	  1369	!
;	  1370	! SIDE EFFECTS:
;	  1371	!	None
;	  1372	!--
;	  1373	
;	  1374	    begin
;	  1375	
;	  1376	    map
;	  1377		CBP : ref block [CBP$K_LENGTH] field ($CEX_CBPFIELDS);
;	  1378	
;	  1379	    local
;	  1380		ADDR : ref vector,
;	  1381		BIAS,
;	  1382		COUNT;
;	  1383	
;	  1384	    if (COUNT = .CBP [CBP$H_ALLOCATION_MAXIMUM]) leq 0 then return;
;	  1385	
;	  1386	    BIAS = 0;
;	  1387	
;	  1388	    if .CBP [CBP$H_SIZE] neq 0
;	  1389	    then
;	  1390		begin
;	  1391	
;	  1392		local
;	  1393		    BLKS;
;	  1394	
;	  1395		begin
;	  1396	
;	  1397		local
;	  1398		    HIGH;
;	  1399	
;	  1400		CEX$$MULTIPLY_32 (.COUNT, .CBP [CBP$H_SIZE]; BLKS, HIGH);
;	  1401		CEX$$ADD_32 (%o'77', .BLKS, .HIGH; BLKS, HIGH);
;	  1402		CEX$$SHIFT_32 (-6, .BLKS, .HIGH; BLKS, HIGH);
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  47
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (16)

;	  1403		end;
;	  1404	
;	  1405		if (BIAS = ALLOCATE_BUFFERS (.BLKS)) eql 0
;	  1406		then
;	  1407		    signal (CE$RBA);
;	  1408	
;	  1409		CBP [CBP$W_ALLOCATED_BIAS] = .BIAS;
;	  1410		CBP [CBP$W_ALLOCATED_BLKS] = .BLKS;
;	  1411		end;
;	  1412	
;	  1413	    begin
;	  1414	
;	  1415	    local
;	  1416		LENGTH;
;	  1417	
;	  1418	    if not $RSX_GET_DSR (CCB$K_LENGTH*%upval*.COUNT, ADDR, LENGTH)
;	  1419	    then
;	  1420		signal (CE$CBA);
;	  1421	
;	  1422	    CBP [CBP$A_ALLOCATED_ADDRESS] = .ADDR;
;	  1423	    CBP [CBP$W_ALLOCATED_LENGTH] = .LENGTH;
;	  1424	    end;
;	  1425	    CBP [CBP$H_ALLOCATED] = .COUNT;
;	  1426	    begin
;	  1427	
;	  1428	    local
;	  1429		ADDRESS : ref vector;
;	  1430	
;	  1431	    ADDRESS = (if .BIAS neq 0 then %o'140000' else 0);
;	  1432	
;	  1433	    do
;	  1434		begin
;	  1435	
;	  1436		local
;	  1437		    CCB : ref block [CCB$K_LENGTH] field ($CEX_CCBFIELDS);
;	  1438	
;	  1439		CCB = .ADDR;
;	  1440	
;	  1441		decr TEMP from CCB$K_LENGTH to 1 do
;	  1442		    begin
;	  1443		    ADDR [0] = 0;
;	  1444		    ADDR = ADDR [1]; %(force auto-increment)%
;	  1445		    end;
;	  1446	
;	  1447		if .CBP [CBP$H_SIZE] neq 0
;	  1448		then
;	  1449		    begin
;	  1450		    CCB [CCB$W_BIAS] = .BIAS;
;	  1451		    CCB [CCB$A_ADDRESS] = .ADDRESS;
;	  1452		    CCB [CCB$V_RDB] = TRUE;
;	  1453		    ADDRESS = .ADDRESS + .CBP [CBP$H_SIZE];
;	  1454		    BIAS = .BIAS + .ADDRESS <6, 7>;
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  48
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (16)

;	  1455		    ADDRESS <6, 7> = 0;
;	  1456		    end;
;	  1457	
;	  1458		CBP [CBP$H_FREE_COUNT] = .CBP [CBP$H_FREE_COUNT] + 1;
;	  1459		begin
;	  1460	
;	  1461		bind
;	  1462		    LAST = .CBP [CBP$A_QUEUE_LAST] : block field ($CEX_CCBFIELDS);
;	  1463	
;	  1464		LAST [CCB$A_LINK] = .CCB;
;	  1465		end;
;	  1466		CBP [CBP$A_QUEUE_LAST] = .CCB;
;	  1467		end
;	  1468	    while (COUNT = .COUNT - 1) neq 0;
;	  1469	
;	  1470	    end;
;	  1471	    end;				!of routine ALLOCATE_CCB_AND_BUFFER_POOL


						.SBTTL	ALLOCATE.CCB.AND.BUFFER.POOL
000000	004137  000000G			ALLOCATE.CCB.AND.BUFFER.POOL:
						JSR	R1,$SAVE4			;					1351
000004	016546  000024 				MOV	24(R5),-(SP)			; *(CBP),COUNT				1384
000010	003531 					BLE	9$
000012	005003 					CLR	R3				; BIAS					1386
000014	005715 					TST	(R5)				; CBP					1388
000016	001433 					BEQ	2$
000020	011602 					MOV	(SP),R2				; COUNT,*				1400
000022	011500 					MOV	(R5),R0				; CBP,*
000024	004737  000000G				JSR	PC,$MUL32
000030	012702  000077 				MOV	#77,R2				;					1401
000034	004737  000000G				JSR	PC,$ADD32
000040	012702  177772 				MOV	#-6,R2				;					1402
000044	004737  000000G				JSR	PC,$ASH32
000050	004737  002244'				JSR	PC,ALLOCATE.BUFFERS		;					1405
000054	010003 					MOV	R0,R3				; *,BIAS
000056	001007 					BNE	1$
000060	012746  000614 				MOV	#614,-(SP)			;					1407
000064	012746  000001 				MOV	#1,-(SP)
000070	004737  000000G				JSR	PC,$IGNAL
000074	022626 					CMP	(SP)+,(SP)+
000076	010365  000024 			1$:	MOV	R3,24(R5)			; BIAS,*(CBP)				1409
000102	010165  000026 				MOV	R1,26(R5)			; BLKS,*(CBP)				1410
000106	011601 				2$:	MOV	(SP),R1				; COUNT,*				1418
000110	070127  000042 				MUL	#42,R1
000114	010102 					MOV	R1,R2
000116	004737  000000G				JSR	PC,$ALOCB
000122	103402 					BCS	3$
000124	010004 					MOV	R0,R4				; $RSX$R0,ADDR
000126	000407 					BR	4$
000130	012746  000364 			3$:	MOV	#364,-(SP)			;					1420
000134	012746  000001 				MOV	#1,-(SP)
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  49
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (16)

000140	004737  000000G				JSR	PC,$IGNAL
000144	022626 					CMP	(SP)+,(SP)+
000146	010465  000030 			4$:	MOV	R4,30(R5)			; ADDR,*(CBP)				1422
000152	010165  000032 				MOV	R1,32(R5)			; LENGTH,*(CBP)				1423
000156	011665  000002 				MOV	(SP),2(R5)			; COUNT,*(CBP)				1425
000162	005703 					TST	R3				; BIAS					1431
000164	001403 					BEQ	5$
000166	012700  140000 				MOV	#-40000,R0			; *,ADDRESS
000172	000401 					BR	6$
000174	005000 				5$:	CLR	R0				; ADDRESS
000176	010401 				6$:	MOV	R4,R1				; ADDR,CCB				1439
000200	012702  000021 				MOV	#21,R2				; *,TEMP				1441
000204	005024 				7$:	CLR	(R4)+				; ADDR					1443
000206	077202 					SOB	R2,7$				; TEMP,*				0000
000210	005715 					TST	(R5)				; CBP					1447
000212	001420 					BEQ	8$
000214	010361  000016 				MOV	R3,16(R1)			; BIAS,*(CCB)				1450
000220	010061  000020 				MOV	R0,20(R1)			; ADDRESS,*(CCB)			1451
000224	052761  000400  000006 			BIS	#400,6(R1)			; *,*(CCB)				1452
000232	061500 					ADD	(R5),R0				; CBP,ADDRESS				1453
000234	010002 					MOV	R0,R2				; ADDRESS,*				1454
000236	072227  177772 				ASH	#-6,R2
000242	042702  177600 				BIC	#177600,R2
000246	060203 					ADD	R2,R3				; *,BIAS
000250	042700  017700 				BIC	#17700,R0			; *,ADDRESS				1455
000254	005265  000012 			8$:	INC	12(R5)				; *(CBP)				1458
000260	010175  000010 				MOV	R1,@10(R5)			; CCB,*(CBP)				1464
000264	010165  000010 				MOV	R1,10(R5)			; CCB,*(CBP)				1466
000270	005316 					DEC	(SP)				; COUNT					1468
000272	001341 					BNE	6$
000274	005726 				9$:	TST	(SP)+				;					1351
000276	000207 					RTS	PC

; Routine Size:  96 words,	Routine Base:  $CODE$ + 2460
; Maximum stack depth per invocation:  9 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  50
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (17)

;	  1472	routine CECLK (TIMER_BLOCK) : RSX_CLK novalue =
;	  1473	
;	  1474	!++
;	  1475	! FUNCTIONAL DESCRIPTION:
;	  1476	!
;	  1477	!
;	  1478	! FORMAL PARAMETERS:
;	  1479	!	None
;	  1480	!
;	  1481	! IMPLICIT INPUTS:
;	  1482	!	None
;	  1483	!
;	  1484	! IMPLICIT OUTPUTS:
;	  1485	!	None
;	  1486	!
;	  1487	! ROUTINE VALUE:
;	  1488	! COMPLETION CODES:
;	  1489	!	None
;	  1490	!
;	  1491	! SIDE EFFECTS:
;	  1492	!	None
;	  1493	!--
;	  1494	
;	  1495	    begin
;	  1496	
;	  1497	    map
;	  1498		TIMER_BLOCK : ref block [TMB$K_LENGTH] field ($CEX_TMBFIELDS);
;	  1499	
;	  1500	    CEX$$ENTER_CEX ();
;	  1501	    CEX$GW_SHORT_TIMER_COUNT = .CEX$GW_SHORT_TIMER_COUNT + 1;
;	  1502	
;	  1503	    if .CEX$GW_SHORT_TIMER_COUNT eql 0
;	  1504	    then
;	  1505		CEX$GW_SHORT_TIMER_COUNT = .CEX$GW_SHORT_TIMER_COUNT - 1;
;	  1506	
;	  1507	    CEX$$DISPATCH_PROCESS (.TIMER_BLOCK [TMB$A_PROCESS], FC_TIM, FM_STM);
;	  1508	    SCHEDULE ();
;	  1509	    CEX$$EXIT_CEX ();
;	  1510	    end;				!of routine CECLK


						.SBTTL	CECLK
000000	004737  000000G			CECLK:	JSR	PC,$CEXSV			;					1500
000004	005237  000000G				INC	.STMCT				;					1501
000010	001002 					BNE	1$				;					1503
000012	005337  000000G				DEC	.STMCT				;					1505
000016	016400  000020 			1$:	MOV	20(R4),R0			; *(TIMER.BLOCK),*			1507
000022	012702  000012 				MOV	#12,R2
000026	005003 					CLR	R3
000030	004737  000000G				JSR	PC,$PRCDS
000034	004737  000000V				JSR	PC,SCHEDULE			;					1508
000040	004737  000000G				JSR	PC,$CEXXT			;					1509
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  51
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (17)

000044	000207 					RTS	PC				;					1472

; Routine Size:  19 words,	Routine Base:  $CODE$ + 2760
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  52
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (18)

;	  1511	routine CEFRK (FORK_BLOCK) : RSX_FRK novalue =
;	  1512	
;	  1513	!++
;	  1514	! FUNCTIONAL DESCRIPTION:
;	  1515	!
;	  1516	!
;	  1517	! FORMAL PARAMETERS:
;	  1518	!	None
;	  1519	!
;	  1520	! IMPLICIT INPUTS:
;	  1521	!	None
;	  1522	!
;	  1523	! IMPLICIT OUTPUTS:
;	  1524	!	None
;	  1525	!
;	  1526	! ROUTINE VALUE:
;	  1527	! COMPLETION CODES:
;	  1528	!	None
;	  1529	!
;	  1530	! SIDE EFFECTS:
;	  1531	!	None
;	  1532	!--
;	  1533	
;	  1534	    begin
;	  1535	    CEX$$ENTER_CEX ();
;	  1536	    CEX$GA_CEX_FORK_BLOCK = .FORK_BLOCK;
;	  1537	    SCHEDULE ();
;	  1538	    CEX$$EXIT_CEX ();
;	  1539	    end;				!of routine CEFRK


						.SBTTL	CEFRK
000000	004737  000000G			CEFRK:	JSR	PC,$CEXSV			;					1535
000004	010437  000000G				MOV	R4,.FRKBK			; FORK.BLOCK,*				1536
000010	004737  000000V				JSR	PC,SCHEDULE			;					1537
000014	004737  000000G				JSR	PC,$CEXXT			;					1538
000020	000207 					RTS	PC				;					1511

; Routine Size:  9 words,	Routine Base:  $CODE$ + 3026
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  53
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (19)

;	  1540	routine CENOP : RSX_UCB novalue =
;	  1541	
;	  1542	!++
;	  1543	! FUNCTIONAL DESCRIPTION:
;	  1544	!
;	  1545	!
;	  1546	! FORMAL PARAMETERS:
;	  1547	!	None
;	  1548	!
;	  1549	! IMPLICIT INPUTS:
;	  1550	!	None
;	  1551	!
;	  1552	! IMPLICIT OUTPUTS:
;	  1553	!	None
;	  1554	!
;	  1555	! ROUTINE VALUE:
;	  1556	! COMPLETION CODES:
;	  1557	!	None
;	  1558	!
;	  1559	! SIDE EFFECTS:
;	  1560	!	None
;	  1561	!--
;	  1562	
;	  1563	    begin
;	  1564	    NO_OPERATION
;	  1565	    end;				!of routine CENOP


						.SBTTL	CENOP
000000	000207 				CENOP:	RTS	PC				;					1540

; Routine Size:  1 word,	Routine Base:  $CODE$ + 3050
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  54
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (20)

;	  1566	routine CEPWF (UCB, SCB) : RSX_UCB_SCB novalue =
;	  1567	
;	  1568	!++
;	  1569	! FUNCTIONAL DESCRIPTION:
;	  1570	!
;	  1571	!
;	  1572	! FORMAL PARAMETERS:
;	  1573	!	None
;	  1574	!
;	  1575	! IMPLICIT INPUTS:
;	  1576	!	None
;	  1577	!
;	  1578	! IMPLICIT OUTPUTS:
;	  1579	!	None
;	  1580	!
;	  1581	! ROUTINE VALUE:
;	  1582	! COMPLETION CODES:
;	  1583	!	None
;	  1584	!
;	  1585	! SIDE EFFECTS:
;	  1586	!	None
;	  1587	!--
;	  1588	
;	  1589	    begin
;	  1590	
;	  1591	    map
;	  1592		SCB : ref block field (SCB_FIELDS),
;	  1593		UCB : ref block field (UCB_FIELDS);
;	  1594	
;	  1595	    UCB [US_BSY] = TRUE;
;	  1596	    SCB [S_CTM] = 1;
;	  1597	    SCB = SCB [$SUB_FIELD (S_FRK, 1, 0, 16, 0)];
;	  1598	    begin
;	  1599	
;	  1600	    map
;	  1601		SCB : ref vector;
;	  1602	
;	  1603	    external
;	  1604		KISAR5;
;	  1605	
;	  1606	    SCB [0] = CEFRK;
;	  1607	    SCB [2] = SCB [0];
;	  1608	    SCB [3] = .KISAR5;
;	  1609	    CEX$GA_CEX_FORK_BLOCK = .SCB;
;	  1610	    end;
;	L 1611	%if CEX$CFG_UNIBUS_MAPPING
;	U 1612	%then
;	U 1613	    INITIALIZE_UNIBUS_MAPPING ();
;	  1614	%fi
;	  1615	    CEX$$ENTER_CEX ();
;	  1616	    begin
;	  1617	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  55
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (20)

;	  1618	    local
;	  1619		MODIFIER;
;	  1620	
;	  1621	    MODIFIER = FM_PWF;
;	  1622	
;	  1623	    if (CEX$GG_POWER_FAIL_COUNT = .CEX$GG_POWER_FAIL_COUNT + 1) eql 0
;	  1624	    then
;	  1625		begin
;	  1626		MODIFIER = FM_PIN;
;	  1627		INITIALIZE_CEXCOM_DATA (.UCB);
;	  1628		end;
;	  1629	
;	  1630	    begin
;	  1631	
;	  1632	    local
;	  1633		PDT : ref vector;
;	  1634	
;	  1635	    PDT = CEX$AA_PROCESS_TABLE [0];
;	  1636	
;	  1637	    do
;	  1638		begin
;	  1639	
;	  1640		local
;	  1641		    PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  1642	
;	  1643		if (PROCESS = .PDT [0]) neq 0
;	  1644		then
;	  1645		    CEX$$DISPATCH_PROCESS (.PROCESS, FC_SYS, .MODIFIER);
;	  1646	
;	  1647		end
;	  1648	    while (PDT = PDT [1]) lssa .CEX$GA_PROCESS_TABLE_END;
;	  1649	
;	  1650	    end;
;	  1651	    end;
;	  1652	    SCHEDULE ();
;	  1653	    CEX$$EXIT_CEX ();
;	  1654	   end;				!of routine CEPWF


						.GLOBL	KISAR5


						.SBTTL	CEPWF
000000	024646 				CEPWF:	CMP	-(SP),-(SP)			;					1566
000002	052765  100000  000004 			BIS	#100000,4(R5)			; *,*(UCB)				1595
000010	112764  000001  000006 			MOVB	#1,6(R4)			; *,*(SCB)				1596
000016	062704  000020 				ADD	#20,R4				; *,SCB					1597
000022	012714  003026'				MOV	#CEFRK,(R4)			; *,SCB					1606
000026	010464  000004 				MOV	R4,4(R4)			; SCB,*(SCB)				1607
000032	013764  000000G 000006 			MOV	KISAR5,6(R4)			; *,*(SCB)				1608
000040	010437  000000G				MOV	R4,.FRKBK			; SCB,*					1609
000044	004737  000000G				JSR	PC,$CEXSV			;					1615
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  56
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (20)

000050	012716  000004 				MOV	#4,(SP)				; *,MODIFIER				1621
000054	005237  000000G				INC	.PWRFL				;					1623
000060	001004 					BNE	1$
000062	012716  000006 				MOV	#6,(SP)				; *,MODIFIER				1626
000066	004737  000000V				JSR	PC,INITIALIZE.CEXCOM.DATA	;					1627
000072	012766  000000G 000002 		1$:	MOV	#.PDBVB,2(SP)			; *,PDT					1635
000100	017600  000002 			2$:	MOV	@2(SP),R0			; PDT,PROCESS				1643
000104	001405 					BEQ	3$
000106	012702  000012 				MOV	#12,R2				;					1645
000112	011603 					MOV	(SP),R3				; MODIFIER,*
000114	004737  000000G				JSR	PC,$PRCDS
000120	062766  000002  000002 		3$:	ADD	#2,2(SP)			; *,PDT					1648
000126	026637  000002  000000G			CMP	2(SP),.PDBVE			; PDT,*
000134	103761 					BLO	2$
000136	004737  000000V				JSR	PC,SCHEDULE			;					1652
000142	004737  000000G				JSR	PC,$CEXXT			;					1653
000146	022626 					CMP	(SP)+,(SP)+			;					1566
000150	000207 					RTS	PC

; Routine Size:  53 words,	Routine Base:  $CODE$ + 3052
; Maximum stack depth per invocation:  3 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  57
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (21)

;	  1655	routine CETIM (UCB, SCB) : RSX_UCB_SCB novalue =
;	  1656	
;	  1657	!++
;	  1658	! FUNCTIONAL DESCRIPTION:
;	  1659	!
;	  1660	!
;	  1661	! FORMAL PARAMETERS:
;	  1662	!	None
;	  1663	!
;	  1664	! IMPLICIT INPUTS:
;	  1665	!	None
;	  1666	!
;	  1667	! IMPLICIT OUTPUTS:
;	  1668	!	None
;	  1669	!
;	  1670	! ROUTINE VALUE:
;	  1671	! COMPLETION CODES:
;	  1672	!	None
;	  1673	!
;	  1674	! SIDE EFFECTS:
;	  1675	!	None
;	  1676	!--
;	  1677	
;	  1678	    begin
;	  1679	
;	  1680	    map
;	  1681		SCB : ref block field (SCB_FIELDS),
;	  1682		UCB : ref block field (UCB_FIELDS);
;	  1683	
;	  1684	    SCB [S_CTM] = .SCB [S_CTM] + 1;
;	  1685	    CEX$$ENTER_CEX ();
;	  1686	    begin
;	  1687	
;	  1688	    local
;	  1689		PDT : ref vector;
;	  1690	
;	  1691	    PDT = CEX$AA_PROCESS_TABLE [0];
;	  1692	
;	  1693	    do
;	  1694		begin
;	  1695	
;	  1696		local
;	  1697		    PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  1698	
;	  1699		if (PROCESS = .PDT [0]) neq 0
;	  1700		then
;	  1701		    begin
;	  1702	
;	  1703		    if .PROCESS [PDT$V_LONG_TIMER]
;	  1704		    then
;	  1705			begin
;	  1706	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  58
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (21)

;	  1707			field
;	  1708			    TIMER = [0, 0, 8, 0];
;	  1709	
;	  1710			bind
;	  1711			    DB = PROCESS [PDT$A_DATA_ADDRESS] : ref block field (TIMER);
;	  1712	
;	  1713			MAP$ (.PROCESS [PDT$W_DATA_BIAS]);
;	  1714	
;	  1715			if .DB [TIMER] nequ 0
;	  1716			then
;	  1717			    begin
;	  1718			    DB [TIMER] = .DB [TIMER] - 1;
;	  1719	
;	  1720			    if .DB [TIMER] eqlu 0
;	  1721			    then
;	  1722				begin
;	  1723				CEX$GW_LONG_TIMER_COUNT = .CEX$GW_LONG_TIMER_COUNT + 1;
;	  1724	
;	  1725				if .CEX$GW_LONG_TIMER_COUNT eql 0
;	  1726				then
;	  1727				    CEX$GW_LONG_TIMER_COUNT = .CEX$GW_LONG_TIMER_COUNT - 1;
;	  1728	
;	  1729				CEX$$DISPATCH_PROCESS (.PROCESS, FC_TIM, FM_LTM);
;	  1730				end;
;	  1731	
;	  1732			    end;
;	  1733	
;	  1734			end;
;	  1735	
;	  1736		    end;
;	  1737	
;	  1738		end
;	  1739	    while (PDT = PDT [1]) lssa .CEX$GA_PROCESS_TABLE_END;
;	  1740	
;	  1741	    end;
;	  1742	
;	  1743	    if .CEX$GW_STATISTICS_TIMER neq 0
;	  1744	    then
;	  1745		begin
;	  1746		CEX$GW_STATISTICS_TIMER = .CEX$GW_STATISTICS_TIMER - 1;
;	  1747	
;	  1748		if .CEX$GW_STATISTICS_TIMER eql 0
;	  1749		then
;	  1750		    begin
;	  1751		    $MCB_DISABLE_INTERRUPT (VEC$AA_ADDRESS_ERROR);
;	  1752		    begin
;	  1753	
;	  1754		    local
;	  1755			INTERRUPTS : initial (0);
;	  1756	
;	  1757		    incra IPBA from INTERRUPT_PRIORITY_BLOCK [4 - 4]
;	  1758			       to INTERRUPT_PRIORITY_BLOCK [7 - 4]
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  59
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (21)

;	  1759			        by %upval do
;	  1760			begin
;	  1761	
;	  1762			builtin
;	  1763			    ROT;
;	  1764	
;	  1765			bind
;	  1766			    IPB = ..IPBA : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS);
;	  1767	
;	  1768			if ROT (INTERRUPTS = .INTERRUPTS + .IPB [IPB$W_COUNT], 1)
;	  1769			then
;	  1770			    INTERRUPTS = -1;
;	  1771	
;	  1772			IPB [IPB$W_COUNT] = 0;
;	  1773			end;
;	  1774	
;	  1775		    if .CEX$GW_AVG_INTERRUPTS lssu .INTERRUPTS
;	  1776		    then
;	  1777			CEX$GW_AVG_INTERRUPTS = .INTERRUPTS;
;	  1778	
;	  1779		    end;
;	  1780	
;	  1781		    if .CEX$GW_AVG_SYNCHS lssu .CEX$GW_SYNCH_COUNT
;	  1782		    then
;	  1783			CEX$GW_AVG_SYNCHS = .CEX$GW_SYNCH_COUNT;
;	  1784	
;	  1785		    if .CEX$GW_AVG_SHORT_TIMERS lssu .CEX$GW_SHORT_TIMER_COUNT
;	  1786		    then
;	  1787			CEX$GW_AVG_SHORT_TIMERS = .CEX$GW_SHORT_TIMER_COUNT;
;	  1788	
;	  1789		    if .CEX$GW_AVG_LONG_TIMERS lssu .CEX$GW_LONG_TIMER_COUNT
;	  1790		    then
;	  1791			CEX$GW_AVG_LONG_TIMERS = .CEX$GW_LONG_TIMER_COUNT;
;	  1792	
;	  1793		    if .CEX$GW_AVG_CCB_DISPATCHES lssu .CEX$GW_CCB_DISPATCH_COUNT
;	  1794		    then
;	  1795			CEX$GW_AVG_CCB_DISPATCHES = .CEX$GW_CCB_DISPATCH_COUNT;
;	  1796	
;	  1797		    CEX$GW_SYNCH_COUNT = 0;
;	  1798		    CEX$GW_SHORT_TIMER_COUNT = 0;
;	  1799		    CEX$GW_LONG_TIMER_COUNT = 0;
;	  1800		    CEX$GW_CCB_DISPATCH_COUNT = 0;
;	  1801		    $MCB_ENABLE_INTERRUPT (VEC$AA_ADDRESS_ERROR);
;	  1802		    CEX$GW_STATISTICS_TIMER = .CEX$GW_STATISTICS_INTERVAL;
;	  1803		    end;
;	  1804	
;	  1805		end;
;	  1806	
;	  1807	    SCHEDULE ();
;	  1808	    CEX$$EXIT_CEX ();
;	  1809	    end;				!of routine CETIM
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  60
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (21)


						.GLOBL	$INTDS, $INTEN


						.SBTTL	CETIM
000000	005746 				CETIM:	TST	-(SP)				;					1655
000002	105264  000006 				INCB	6(R4)				; *(SCB)				1684
000006	004737  000000G				JSR	PC,$CEXSV			;					1685
000012	012716  000000G				MOV	#.PDBVB,(SP)			; *,PDT					1691
000016	017600  000000 			1$:	MOV	@0(SP),R0			; PDT,PROCESS				1699
000022	001427 					BEQ	3$
000024	005760  000010 				TST	10(R0)				; *(PROCESS)				1703
000030	100024 					BPL	3$
000032	016037  000004  000000G			MOV	4(R0),KISAR6			; *(PROCESS),*				1713
000040	016001  000006 				MOV	6(R0),R1			; *(PROCESS),*				1715
000044	105711 					TSTB	(R1)
000046	001415 					BEQ	3$
000050	105311 					DECB	(R1)				;					1718
000052	001013 					BNE	3$				;					1720
000054	005237  000000G				INC	.LTMCT				;					1723
000060	001002 					BNE	2$				;					1725
000062	005337  000000G				DEC	.LTMCT				;					1727
000066	012702  000012 			2$:	MOV	#12,R2				;					1729
000072	012703  000002 				MOV	#2,R3
000076	004737  000000G				JSR	PC,$PRCDS
000102	062716  000002 			3$:	ADD	#2,(SP)				; *,PDT					1739
000106	021637  000000G				CMP	(SP),.PDBVE			; PDT,*
000112	103741 					BLO	1$
000114	005737  000000G				TST	.SITIM				;					1743
000120	001511 					BEQ	12$
000122	005337  000000G				DEC	.SITIM				;					1746
000126	001106 					BNE	12$				;					1748
000130	012700  000004 				MOV	#4,R0				;					1751
000134	004737  000000G				JSR	PC,$INTDS
000140	005002 					CLR	R2				; INTERRUPTS				1752
000142	012703  000042'				MOV	#INTERRUPT.PRIORITY.BLOCK,R3	; *,IPBA				1757
000146	000413 					BR	6$
000150	011300 				4$:	MOV	(R3),R0				; IPBA,*				1768
000152	066002  000010 				ADD	10(R0),R2			; *,INTERRUPTS
000156	010201 					MOV	R2,R1				; INTERRUPTS,*
000160	103002 					BCC	5$
000162	012702  177777 				MOV	#-1,R2				; *,INTERRUPTS				1770
000166	005060  000010 			5$:	CLR	10(R0)				;					1772
000172	062703  000002 				ADD	#2,R3				; *,IPBA				1757
000176	020327  000050'			6$:	CMP	R3,#INTERRUPT.PRIORITY.BLOCK+6	; IPBA,*
000202	101762 					BLOS	4$
000204	023702  000000G				CMP	.SMINT,R2			; *,INTERRUPTS				1775
000210	103002 					BHIS	7$
000212	010237  000000G				MOV	R2,.SMINT			; INTERRUPTS,*				1777
000216	023737  000000G 000000G		7$:	CMP	.SMSYN,.SYNCT			;					1781
000224	103003 					BHIS	8$
000226	013737  000000G 000000G			MOV	.SYNCT,.SMSYN			;					1783
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  61
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (21)

000234	023737  000000G 000000G		8$:	CMP	.SMSTM,.STMCT			;					1785
000242	103003 					BHIS	9$
000244	013737  000000G 000000G			MOV	.STMCT,.SMSTM			;					1787
000252	023737  000000G 000000G		9$:	CMP	.SMLTM,.LTMCT			;					1789
000260	103003 					BHIS	10$
000262	013737  000000G 000000G			MOV	.LTMCT,.SMLTM			;					1791
000270	023737  000000G 000000G		10$:	CMP	.SMDSP,.DSPCT			;					1793
000276	103003 					BHIS	11$
000300	013737  000000G 000000G			MOV	.DSPCT,.SMDSP			;					1795
000306	005037  000000G			11$:	CLR	.SYNCT				;					1797
000312	005037  000000G				CLR	.STMCT				;					1798
000316	005037  000000G				CLR	.LTMCT				;					1799
000322	005037  000000G				CLR	.DSPCT				;					1800
000326	012700  000004 				MOV	#4,R0				;					1801
000332	004737  000000G				JSR	PC,$INTEN
000336	013737  000000G 000000G			MOV	.SMSEC,.SITIM			;					1802
000344	004737  000000V			12$:	JSR	PC,SCHEDULE			;					1807
000350	004737  000000G				JSR	PC,$CEXXT			;					1808
000354	005726 					TST	(SP)+				;					1655
000356	000207 					RTS	PC

; Routine Size:  120 words,	Routine Base:  $CODE$ + 3224
; Maximum stack depth per invocation:  2 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  62
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (22)

;	  1810	routine CHECK_BUFFER_ALLOCATIONS : novalue =
;	  1811	
;	  1812	!++
;	  1813	! FUNCTIONAL DESCRIPTION:
;	  1814	!
;	  1815	!
;	  1816	! FORMAL PARAMETERS:
;	  1817	!	None
;	  1818	!
;	  1819	! IMPLICIT INPUTS:
;	  1820	!	None
;	  1821	!
;	  1822	! IMPLICIT OUTPUTS:
;	  1823	!	None
;	  1824	!
;	  1825	! ROUTINE VALUE:
;	  1826	! COMPLETION CODES:
;	  1827	!	None
;	  1828	!
;	  1829	! SIDE EFFECTS:
;	  1830	!	None
;	  1831	!--
;	  1832	
;	  1833	    begin
;	  1834	
;	  1835	    local
;	  1836		BLKS_AVAILABLE;
;	  1837	
;	  1838	    label
;	  1839		RECONCILIATION;
;	  1840	
;	  1841	    begin
;	  1842	
;	  1843	    local
;	  1844		SAVE_MAP;
;	  1845	
;	  1846	    BLKS_AVAILABLE = 0;
;	  1847	    SMAP$ (SAVE_MAP);
;	  1848	
;	  1849	    if MAP$ (.CEX$GW_BLOCK_POOL_BIAS) nequ 0
;	  1850	    then
;	  1851		BLKS_AVAILABLE = .BKP$H_SIZE;
;	  1852	
;	  1853	    MAP$ (.SAVE_MAP);
;	  1854	    end;
;	  1855	
;	  1856	    while TRUE do RECONCILIATION :
;	  1857		begin
;	  1858	
;	  1859		local
;	  1860		    BLKS_LEFT;
;	  1861	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  63
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (22)

;	  1862		BLKS_LEFT = .BLKS_AVAILABLE;
;	  1863		begin
;	  1864	
;	  1865		local
;	  1866		    BLKS,
;	  1867		    HIGH;
;	  1868	
;	  1869		CEX$$MULTIPLY_32 (.CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM], .CEX$GR_RDB_POOL [CBP$H_SIZE]; BLKS, HIGH);
;	  1870		CEX$$ADD_32 (%o'77', .BLKS, .HIGH; BLKS, HIGH);
;	  1871		CEX$$SHIFT_32 (-6, .BLKS, .HIGH; BLKS, HIGH);
;	  1872		BLKS_LEFT = .BLKS_LEFT - .BLKS;
;	  1873		end;
;	  1874		begin
;	  1875	
;	  1876		local
;	  1877		    BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
;	  1878	
;	  1879		BFP = .CEX$GA_BUFFER_POOL_TABLE;
;	  1880	
;	  1881		decru COUNT from .CEX$GH_BUFFER_POOL_COUNT to 1 do
;	  1882		    begin
;	  1883	
;	  1884		    local
;	  1885			HIGH,
;	  1886			LOW;
;	  1887	
;	  1888		    CEX$$MULTIPLY_32 (.BFP [BFP$H_ALLOCATION_MAXIMUM], (BFH$K_LENGTH*%upval) + .BFP [BFP$H_SIZE]; LOW, HIGH);
;	  1889		    CEX$$ADD_32 (%o'77', .LOW, .HIGH; LOW, HIGH);
;	  1890		    CEX$$SHIFT_32 (-6, .LOW, .HIGH; LOW, HIGH);
;	  1891		    BLKS_LEFT = .BLKS_LEFT - .LOW;
;	  1892		    BFP = vector [.BFP, BFP$K_LENGTH];
;	  1893		    end;
;	  1894	
;	  1895		end;
;	  1896	
;	  1897		if .BLKS_LEFT geq 0 then return;
;	  1898	
;	  1899		if .CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM] gtr .CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MINIMUM]
;	  1900		then
;	  1901		    begin
;	  1902		    CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM] = .CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM] - 1;
;	  1903		    BLKS_LEFT = 0;
;	  1904		    end;
;	  1905	
;	  1906		begin
;	  1907	
;	  1908		local
;	  1909		    BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
;	  1910	
;	  1911		BFP = .CEX$GA_BUFFER_POOL_TABLE;
;	  1912	
;	  1913		decru COUNT from .CEX$GH_BUFFER_POOL_COUNT to 1 do
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  64
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (22)

;	  1914		    begin
;	  1915	
;	  1916		    if .BFP [BFP$H_ALLOCATION_MAXIMUM] gtr .BFP [BFP$H_ALLOCATION_MINIMUM]
;	  1917		    then
;	  1918			begin
;	  1919			BFP [BFP$H_ALLOCATION_MAXIMUM] = .BFP [BFP$H_ALLOCATION_MAXIMUM] - 1;
;	  1920			BLKS_LEFT = 0;
;	  1921			end;
;	  1922	
;	  1923		    BFP = vector [.BFP, BFP$K_LENGTH];
;	  1924		    end;
;	  1925	
;	  1926		end;
;	  1927	
;	  1928		if .BLKS_LEFT lss 0 then return signal (CE$BFS);
;	  1929	
;	  1930		end;
;	  1931	
;	  1932	    end;				!of routine CHECK_BUFFER_ALLOCATIONS


						.SBTTL	CHECK.BUFFER.ALLOCATIONS
000000	004137  000000G			CHECK.BUFFER.ALLOCATIONS:
						JSR	R1,$SAVE5			;					1810
000004	005046 					CLR	-(SP)				; BLKS.AVAILABLE			1846
000006	013700  000000G				MOV	KISAR6,R0			; *,SAVE.MAP				1847
000012	013737  000000G 000000G			MOV	.BLKTB,KISAR6			;					1849
000020	005737  000000G				TST	KISAR6
000024	001402 					BEQ	1$
000026	013716  140002 				MOV	@#140002,(SP)			; *,BLKS.AVAILABLE			1851
000032	010037  000000G			1$:	MOV	R0,KISAR6			; SAVE.MAP,*				1853
000036	011603 				2$:	MOV	(SP),R3				; BLKS.AVAILABLE,BLKS.LEFT		1862
000040	013702  000024G				MOV	.RDBTB+24,R2			;					1869
000044	013700  000000G				MOV	.RDBTB,R0
000050	004737  000000G				JSR	PC,$MUL32
000054	012702  000077 				MOV	#77,R2				;					1870
000060	004737  000000G				JSR	PC,$ADD32
000064	012702  177772 				MOV	#-6,R2				;					1871
000070	004737  000000G				JSR	PC,$ASH32
000074	160103 					SUB	R1,R3				; BLKS,BLKS.LEFT			1872
000076	013705  000000G				MOV	.CORTA,R5			; *,BFP					1879
000102	013704  000000G				MOV	.CORNM,R4			; *,COUNT				1881
000106	001423 					BEQ	4$
000110	011500 				3$:	MOV	(R5),R0				; BFP,*					1888
000112	062700  000010 				ADD	#10,R0
000116	016502  000020 				MOV	20(R5),R2			; *(BFP),*
000122	004737  000000G				JSR	PC,$MUL32
000126	012702  000077 				MOV	#77,R2				;					1889
000132	004737  000000G				JSR	PC,$ADD32
000136	012702  177772 				MOV	#-6,R2				;					1890
000142	004737  000000G				JSR	PC,$ASH32
000146	160103 					SUB	R1,R3				; LOW,BLKS.LEFT				1891
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  65
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (22)

000150	062705  000024 				ADD	#24,R5				; *,BFP					1892
000154	077423 					SOB	R4,3$				; COUNT,*				0000
000156	005703 				4$:	TST	R3				; BLKS.LEFT				1897
000160	002037 					BGE	9$
000162	023737  000024G 000026G			CMP	.RDBTB+24,.RDBTB+26		;					1899
000170	003403 					BLE	5$
000172	005337  000024G				DEC	.RDBTB+24			;					1902
000176	005003 					CLR	R3				; BLKS.LEFT				1903
000200	013700  000000G			5$:	MOV	.CORTA,R0			; *,BFP					1911
000204	013701  000000G				MOV	.CORNM,R1			; *,COUNT				1913
000210	001412 					BEQ	8$
000212	026060  000020  000022 		6$:	CMP	20(R0),22(R0)			; *(BFP),*(BFP)				1916
000220	003403 					BLE	7$
000222	005360  000020 				DEC	20(R0)				; *(BFP)				1919
000226	005003 					CLR	R3				; BLKS.LEFT				1920
000230	062700  000024 			7$:	ADD	#24,R0				; *,BFP					1923
000234	077112 					SOB	R1,6$				; COUNT,*				0000
000236	005703 				8$:	TST	R3				; BLKS.LEFT				1928
000240	002276 					BGE	2$
000242	012746  000354 				MOV	#354,-(SP)
000246	012746  000001 				MOV	#1,-(SP)
000252	004737  000000G				JSR	PC,$IGNAL
000256	022626 					CMP	(SP)+,(SP)+
000260	005726 				9$:	TST	(SP)+				;					1810
000262	000207 					RTS	PC

; Routine Size:  90 words,	Routine Base:  $CODE$ + 3604
; Maximum stack depth per invocation:  10 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  66
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (23)

;	  1933	routine FIND_LINE (LINE_INDEX) : LINKAGE_FUNCTION =
;	  1934	
;	  1935	!++
;	  1936	! FUNCTIONAL DESCRIPTION:
;	  1937	!
;	  1938	!
;	  1939	! FORMAL PARAMETERS:
;	  1940	!	None
;	  1941	!
;	  1942	! IMPLICIT INPUTS:
;	  1943	!	None
;	  1944	!
;	  1945	! IMPLICIT OUTPUTS:
;	  1946	!	None
;	  1947	!
;	  1948	! ROUTINE VALUE:
;	  1949	! COMPLETION CODES:
;	  1950	!	None
;	  1951	!
;	  1952	! SIDE EFFECTS:
;	  1953	!	None
;	  1954	!--
;	  1955	
;	  1956	    begin
;	  1957	    LINE_INDEX = .LINE_INDEX - 1;
;	  1958	
;	  1959	    if .LINE_INDEX gequ .CEX$GH_SYSTEM_LINE_COUNT then return 0;
;	  1960	
;	  1961	    CEX$GA_SYSTEM_LINE_TABLE [.LINE_INDEX, SLT$V_BASE]
;	  1962	    end;				!of routine FIND_LINE


						.SBTTL	FIND.LINE
000000	005301 				FIND.LINE:
						DEC	R1				; LINE.INDEX				1957
000002	020137  000000G				CMP	R1,.SLTNM			; LINE.INDEX,*				1959
000006	103402 					BLO	1$
000010	005000 					CLR	R0
000012	000207 					RTS	PC
000014	072127  000003 			1$:	ASH	#3,R1				;					1961
000020	063701  000000G				ADD	.SLTTA,R1
000024	010100 					MOV	R1,R0				;					1933
000026	000207 					RTS	PC

; Routine Size:  12 words,	Routine Base:  $CODE$ + 4070
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  67
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (24)

;	  1963	routine FIND_PARTITION (NAME) : LINKAGE_FUNCTION =
;	  1964	
;	  1965	!++
;	  1966	! FUNCTIONAL DESCRIPTION:
;	  1967	!
;	  1968	!
;	  1969	! FORMAL PARAMETERS:
;	  1970	!	None
;	  1971	!
;	  1972	! IMPLICIT INPUTS:
;	  1973	!	None
;	  1974	!
;	  1975	! IMPLICIT OUTPUTS:
;	  1976	!	None
;	  1977	!
;	  1978	! ROUTINE VALUE:
;	  1979	! COMPLETION CODES:
;	  1980	!	None
;	  1981	!
;	  1982	! SIDE EFFECTS:
;	  1983	!	None
;	  1984	!--
;	  1985	
;	  1986	    begin
;	  1987	
;	  1988	    map
;	  1989		NAME : ref vector [2];
;	  1990	
;	  1991	    local
;	  1992		PCB : ref block field (PCB_FIELDS);
;	  1993	
;	  1994	    external
;	  1995		%name ('$PARHD');
;	  1996	
;	  1997	    PCB = .%name ('$PARHD');
;	  1998	
;	  1999	    do
;	  2000		begin
;	  2001	
;	  2002		bind
;	  2003		    PNAME = PCB [P_NAM] : vector [2];
;	  2004	
;	  2005		if .NAME [0] eqlu .PNAME [0] and .NAME [1] eqlu .PNAME [1] then return .PCB;
;	  2006	
;	  2007		end
;	  2008	    while
;	  2009	
;	  2010		if .PCB [PS_SYS]
;	  2011		then
;	  2012		    begin
;	  2013	
;	  2014		    if .PCB [P_SUB] neqa 0
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  68
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (24)

;	  2015		    then
;	  2016			begin
;	  2017			PCB = .PCB [P_SUB];
;	  2018			TRUE
;	  2019			end
;	  2020		    else
;	  2021			begin
;	  2022			PCB = .PCB [P_MAIN];
;	  2023			(PCB = .PCB [P_LNK]) neqa 0
;	  2024			end
;	  2025	
;	  2026		    end
;	  2027		else
;	  2028		    (PCB = .PCB [P_LNK]) neqa 0;
;	  2029	
;	  2030	    0
;	  2031	    end;				!of routine FIND_PARTITION


						.GLOBL	$PARHD


						.SBTTL	FIND.PARTITION
000000	013702  000000G			FIND.PARTITION:
						MOV	$PARHD,R2			; *,PCB					1997
000004	021162  000004 			1$:	CMP	(R1),4(R2)			; NAME,*(PCB)				2005
000010	001006 					BNE	2$
000012	026162  000002  000006 			CMP	2(R1),6(R2)			; *(NAME),*(PCB)
000020	001002 					BNE	2$
000022	010200 					MOV	R2,R0				; PCB,*
000024	000207 					RTS	PC
000026	132762  000040  000030 		2$:	BITB	#40,30(R2)			; *,*(PCB)				2010
000034	001412 					BEQ	4$
000036	016200  000010 				MOV	10(R2),R0			; *(PCB),*				2014
000042	001402 					BEQ	3$
000044	010002 					MOV	R0,R2				; *,PCB					2017
000046	000756 					BR	1$				;					2016
000050	016202  000012 			3$:	MOV	12(R2),R2			; *(PCB),PCB				2022
000054	011202 					MOV	(R2),R2				; PCB,PCB				2023
000056	001403 					BEQ	5$
000060	000751 					BR	1$
000062	011202 				4$:	MOV	(R2),R2				; PCB,PCB				2028
000064	001347 					BNE	1$
000066	005000 				5$:	CLR	R0				;					1963
000070	000207 					RTS	PC

; Routine Size:  29 words,	Routine Base:  $CODE$ + 4120
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  69
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (25)

;	  2032	routine FIND_PROCESS_NAME (NAME) : LINKAGE_FUNCTION =
;	  2033	
;	  2034	!++
;	  2035	! FUNCTIONAL DESCRIPTION:
;	  2036	!
;	  2037	!
;	  2038	! FORMAL PARAMETERS:
;	  2039	!	None
;	  2040	!
;	  2041	! IMPLICIT INPUTS:
;	  2042	!	None
;	  2043	!
;	  2044	! IMPLICIT OUTPUTS:
;	  2045	!	None
;	  2046	!
;	  2047	! ROUTINE VALUE:
;	  2048	! COMPLETION CODES:
;	  2049	!	None
;	  2050	!
;	  2051	! SIDE EFFECTS:
;	  2052	!	None
;	  2053	!--
;	  2054	
;	  2055	    begin
;	  2056	
;	  2057	    local
;	  2058		NAME_ENTRY : ref block [PNM$K_LENGTH] field ($CEX_PNMFIELDS);
;	  2059	
;	  2060	    NAME_ENTRY = .CEX$GA_PROCESS_NAME_TABLE;
;	  2061	
;	  2062	    decru COUNT from .CEX$GH_PROCESS_COUNT to 1 do
;	  2063	
;	  2064		if .NAME_ENTRY [PNM$W_NAME] eql .NAME
;	  2065		then
;	  2066		    return .NAME_ENTRY [PNM$A_PROCESS]
;	  2067		else
;	  2068		    NAME_ENTRY = vector [.NAME_ENTRY, PNM$K_LENGTH];
;	  2069	
;	  2070	    0
;	  2071	    end;				!of routine FIND_PROCESS_NAME


						.SBTTL	FIND.PROCESS.NAME
000000	013700  000000G			FIND.PROCESS.NAME:
						MOV	.PNMTA,R0			; *,NAME.ENTRY				2060
000004	013702  000000G				MOV	.PDBNM,R2			; *,COUNT				2062
000010	001410 					BEQ	3$
000012	026001  000002 			1$:	CMP	2(R0),R1			; *(NAME.ENTRY),NAME			2064
000016	001002 					BNE	2$
000020	011000 					MOV	(R0),R0				; NAME.ENTRY,*				2066
000022	000207 					RTS	PC
000024	062700  000004 			2$:	ADD	#4,R0				; *,NAME.ENTRY				2068
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  70
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (25)

000030	077210 					SOB	R2,1$				; COUNT,*				0000
000032	005000 				3$:	CLR	R0				;					2032
000034	000207 					RTS	PC

; Routine Size:  15 words,	Routine Base:  $CODE$ + 4212
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  71
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (26)

;	  2072	routine INITIALIZE_BLOCK_POOL =
;	  2073	
;	  2074	!++
;	  2075	! FUNCTIONAL DESCRIPTION:
;	  2076	!
;	  2077	!
;	  2078	! FORMAL PARAMETERS:
;	  2079	!	None
;	  2080	!
;	  2081	! IMPLICIT INPUTS:
;	  2082	!	None
;	  2083	!
;	  2084	! IMPLICIT OUTPUTS:
;	  2085	!	None
;	  2086	!
;	  2087	! ROUTINE VALUE:
;	  2088	! COMPLETION CODES:
;	  2089	!	None
;	  2090	!
;	  2091	! SIDE EFFECTS:
;	  2092	!	None
;	  2093	!--
;	  2094	
;	  2095	    begin
;	  2096	
;	  2097	    local
;	  2098		BLKS,
;	  2099		PCB : ref block field (PCB_FIELDS),
;	  2100		SAVE_MAP,
;	  2101		ZERO;
;	  2102	
;	  2103	    external
;	  2104		KISAR6,
;	  2105		RSX$GW_SYSTEM_SIZE;
;	  2106	
;	  2107	    if (PCB = FIND_PARTITION (UPLIT (%rad50_11 'CEXBUF'))) eqla 0
;	  2108	    then
;	  2109		begin
;	  2110		SIGNAL (CE$BFP);
;	  2111		return FALSE;
;	  2112		end;
;	  2113	
;	  2114	    if not .PCB [PS_COM] or (.PCB [P_MAIN] neqa .PCB) or (.PCB [P_LNK] neqa 0)
;	  2115	    then
;	  2116		begin
;	  2117		SIGNAL (CE$BFI);
;	  2118		return FALSE;
;	  2119		end;
;	  2120	
;	  2121	    BLKS = PCB [P_BLKS] = .RSX$GW_SYSTEM_SIZE - .PCB [P_REL] - 1;
;	  2122	
;	  2123	    if .BLKS leq 0
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  72
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (26)

;	  2124	    then
;	  2125		begin
;	  2126		SIGNAL (CE$BFS);
;	  2127		return FALSE;
;	  2128		end;
;	  2129	
;	  2130	    SMAP$ (SAVE_MAP);
;	  2131	    MAP$ (CEX$GW_BLOCK_POOL_BIAS = .PCB [P_REL]);
;	  2132	    !
;	  2133	    ! The 11/34A does a read-modify-write on a CLR instruction,
;	  2134	    ! and thus is unsuitable to reset bad parity in memory.
;	  2135	    !
;	  2136	    ZERO = 0; %(this to cause a MOV instead of CLR instruction)%
;	  2137	
;	  2138	    do
;	  2139		begin
;	  2140	
;	  2141		local
;	  2142		    ADDR : ref vector;
;	  2143	
;	  2144		ADDR = %o'140000';
;	  2145		ADDR [4] = ADDR [3] = ADDR [2] = ADDR [1] = ADDR [0] = .ZERO;
;	  2146		ADDR [9] = ADDR [8] = ADDR [7] = ADDR [6] = ADDR [5] = .ZERO;
;	  2147		ADDR [14] = ADDR [13] = ADDR [12] = ADDR [11] = ADDR [10] = .ZERO;
;	  2148		ADDR [19] = ADDR [18] = ADDR [17] = ADDR [16] = ADDR [15] = .ZERO;
;	  2149		ADDR [24] = ADDR [23] = ADDR [22] = ADDR [21] = ADDR [20] = .ZERO;
;	  2150		ADDR [29] = ADDR [28] = ADDR [27] = ADDR [26] = ADDR [25] = .ZERO;
;	  2151		ADDR [31] = ADDR [30] = .ZERO;
;	  2152		ADDR = ADDR [31]; %(to force auto-increment)%
;	  2153		KISAR6 = .KISAR6 + 1;
;	  2154		end
;	  2155	    while (BLKS = .BLKS - 1) neq 0;
;	  2156	
;	  2157	    MAP$ (.PCB [P_REL]);
;	  2158	    BKP$W_LINK = 0;
;	  2159	    BKP$H_SIZE = .PCB [P_BLKS];
;	  2160	    MAP$ (.SAVE_MAP);
;	  2161	    TRUE
;	  2162	    end;				!of routine INITIALIZE_BLOCK_POOL



000060						.PSECT	$PLIT$,  RO ,  D  
000060	011640  007716 			P.AAE:	.RAD50	/CEXBUF/


						.GLOBL	$SYSIZ


						.SBTTL	INITIALIZE.BLOCK.POOL
004250						.PSECT	$CODE$,  RO 
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  73
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (26)

000000	004137  000000G			INITIALIZE.BLOCK.POOL:
						JSR	R1,$SAVE4			;					2072
000004	012701  000060'				MOV	#P.AAE,R1			;					2107
000010	004737  004120'				JSR	PC,FIND.PARTITION
000014	010002 					MOV	R0,R2				; *,PCB
000016	001003 					BNE	1$
000020	012746  000334 				MOV	#334,-(SP)			;					2110
000024	000426 					BR	4$
000026	105762  000030 			1$:	TSTB	30(R2)				; *(PCB)				2114
000032	100005 					BPL	2$
000034	026202  000012 				CMP	12(R2),R2			; *(PCB),PCB
000040	001002 					BNE	2$
000042	005712 					TST	(R2)				; PCB
000044	001403 					BEQ	3$
000046	012746  000324 			2$:	MOV	#324,-(SP)			;					2117
000052	000413 					BR	4$
000054	013700  000000G			3$:	MOV	$SYSIZ,R0			;					2121
000060	166200  000014 				SUB	14(R2),R0			; *(PCB),*
000064	005300 					DEC	R0
000066	010062  000016 				MOV	R0,16(R2)			; *,*(PCB)
000072	010001 					MOV	R0,R1				; *,BLKS
000074	003011 					BGT	5$				;					2123
000076	012746  000354 				MOV	#354,-(SP)			;					2126
000102	012746  000001 			4$:	MOV	#1,-(SP)
000106	004737  000000G				JSR	PC,$IGNAL
000112	022626 					CMP	(SP)+,(SP)+			;					2123
000114	005000 					CLR	R0				;					2125
000116	000207 					RTS	PC
000120	013703  000000G			5$:	MOV	KISAR6,R3			; *,SAVE.MAP				2130
000124	016200  000014 				MOV	14(R2),R0			; *(PCB),*				2131
000130	010037  000000G				MOV	R0,.BLKTB
000134	010037  000000G				MOV	R0,KISAR6
000140	005000 					CLR	R0				; ZERO					2136
000142	012704  140000 			6$:	MOV	#-40000,R4			; *,ADDR				2144
000146	010024 					MOV	R0,(R4)+			; ZERO,ADDR				2145
000150	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000152	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000154	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000156	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000160	010024 					MOV	R0,(R4)+			; ZERO,ADDR				2146
000162	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000164	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000166	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000170	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000172	010024 					MOV	R0,(R4)+			; ZERO,ADDR				2147
000174	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000176	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000200	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000202	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000204	010024 					MOV	R0,(R4)+			; ZERO,ADDR				2148
000206	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000210	010024 					MOV	R0,(R4)+			; ZERO,ADDR
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  74
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (26)

000212	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000214	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000216	010024 					MOV	R0,(R4)+			; ZERO,ADDR				2149
000220	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000222	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000224	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000226	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000230	010024 					MOV	R0,(R4)+			; ZERO,ADDR				2150
000232	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000234	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000236	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000240	010024 					MOV	R0,(R4)+			; ZERO,ADDR
000242	010024 					MOV	R0,(R4)+			; ZERO,ADDR				2151
000244	010014 					MOV	R0,(R4)				; ZERO,ADDR
000246	005237  000000G				INC	KISAR6				;					2153
000252	077145 					SOB	R1,6$				; BLKS,*				2155
000254	016237  000014  000000G			MOV	14(R2),KISAR6			; *(PCB),*				2157
000262	005037  140000 				CLR	@#140000			;					2158
000266	016237  000016  140002 			MOV	16(R2),@#140002			; *(PCB),*				2159
000274	010337  000000G				MOV	R3,KISAR6			; SAVE.MAP,*				2160
000300	012700  000001 				MOV	#1,R0				;					2072
000304	000207 					RTS	PC

; Routine Size:  99 words,	Routine Base:  $CODE$ + 4250
; Maximum stack depth per invocation:  8 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  75
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (27)

;	  2163	routine INITIALIZE_BUFFER_POOL (BFP, BFP_COUNT; NEW_BFP) : LINKAGE_ADR_CNT novalue =
;	  2164	
;	  2165	!++
;	  2166	! FUNCTIONAL DESCRIPTION:
;	  2167	!
;	  2168	!
;	  2169	! FORMAL PARAMETERS:
;	  2170	!	None
;	  2171	!
;	  2172	! IMPLICIT INPUTS:
;	  2173	!	None
;	  2174	!
;	  2175	! IMPLICIT OUTPUTS:
;	  2176	!	None
;	  2177	!
;	  2178	! ROUTINE VALUE:
;	  2179	! COMPLETION CODES:
;	  2180	!	None
;	  2181	!
;	  2182	! SIDE EFFECTS:
;	  2183	!	None
;	  2184	!--
;	  2185	
;	  2186	    begin
;	  2187	
;	  2188	    map
;	  2189		BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
;	  2190	
;	  2191	    CEX$GA_BUFFER_POOL_TABLE = .BFP;
;	  2192	    CEX$GH_BUFFER_POOL_COUNT = .BFP_COUNT;
;	  2193	
;	  2194	    decru COUNT from .BFP_COUNT to 1 do
;	  2195		begin
;	  2196		BFP [BFP$H_SIZE] = .BFP [BFP$H_SIZE] + 1;
;	  2197		BFP [$SUB_FIELD (BFP$H_SIZE, 0, 0, 1, 0)] = 0;
;	  2198		BFP [BFP$A_QUEUE_LAST_ADDR] = BFP [BFP$W_QUEUE_FIRST_BIAS];
;	  2199		BFP = vector [.BFP, BFP$K_LENGTH];
;	  2200		end;
;	  2201	
;	  2202	    NEW_BFP = .BFP;
;	  2203	    end;				!of routine INITIALIZE_BUFFER_POOL


						.SBTTL	INITIALIZE.BUFFER.POOL
000000	010446 				INITIALIZE.BUFFER.POOL:
						MOV	R4,-(SP)			;					2163
000002	010537  000000G				MOV	R5,.CORTA			; BFP,*					2191
000006	010437  000000G				MOV	R4,.CORNM			; BFP.COUNT,*				2192
000012	001413 					BEQ	2$				;					2194
000014	005215 				1$:	INC	(R5)				; BFP					2196
000016	142715  000001 				BICB	#1,(R5)				; *,BFP					2197
000022	012765  000004  000012 			MOV	#4,12(R5)			; *,*(BFP)				2198
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  76
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (27)

000030	060565  000012 				ADD	R5,12(R5)			; BFP,*(BFP)
000034	062705  000024 				ADD	#24,R5				; *,BFP					2199
000040	077413 					SOB	R4,1$				; COUNT,*				0000
000042	012604 				2$:	MOV	(SP)+,R4			;					2163
000044	000207 					RTS	PC

; Routine Size:  19 words,	Routine Base:  $CODE$ + 4556
; Maximum stack depth per invocation:  2 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  77
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (28)

;	  2204	routine INITIALIZE_CEXCOM_DATA (UCB) : RSX_UCB novalue =
;	  2205	
;	  2206	!++
;	  2207	! FUNCTIONAL DESCRIPTION:
;	  2208	!
;	  2209	!
;	  2210	! FORMAL PARAMETERS:
;	  2211	!	None
;	  2212	!
;	  2213	! IMPLICIT INPUTS:
;	  2214	!	None
;	  2215	!
;	  2216	! IMPLICIT OUTPUTS:
;	  2217	!	None
;	  2218	!
;	  2219	! ROUTINE VALUE:
;	  2220	! COMPLETION CODES:
;	  2221	!	None
;	  2222	!
;	  2223	! SIDE EFFECTS:
;	  2224	!	None
;	  2225	!--
;	  2226	
;	  2227	    begin
;	  2228	
;	  2229	    map
;	  2230		UCB : ref block field (UCB_FIELDS);
;	  2231	
;	  2232	    !
;	  2233	    ! Initialize CEX data
;	  2234	    !
;	  2235	
;	  2236	    CEX$GA_SHORT_TIMER_DISPATCH = CECLK;
;	  2237	    UCB = UCB [$SUB_FIELD (U_CNT, 1, 0, 16, 0)];
;	  2238	    begin
;	  2239	
;	  2240	    map
;	  2241		UCB : ref vector;
;	  2242	
;	  2243	    local
;	  2244		BUF : ref vector [8];
;	  2245	
;	  2246	    BUF = .UCB;
;	  2247	    UCB = UCB [9];
;	  2248	    CEX$GR_CCB_POOL [CBP$H_ALLOCATION_MINIMUM] = .BUF [0];
;	  2249	    CEX$GR_CCB_POOL [CBP$H_ALLOCATION_MAXIMUM] = .BUF [1];
;	  2250	    MCB$GW_RDB_SIZE = (.BUF [2] + 1) and not 1;
;	  2251	    CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MINIMUM] = .BUF [3];
;	  2252	    CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM] = .BUF [4];
;	  2253	    BUF = BUF [5];		%(force auto-increment)%
;	  2254	    INITIALIZE_PROCESS_DESCRIPTORS (.UCB, .BUF [0]; UCB);
;	  2255	    INITIALIZE_PROCESS_NAMES (.UCB, .BUF [1]; UCB);
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  78
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (28)

;	  2256	    INITIALIZE_LINES (.UCB, .BUF [2]; UCB);
;	  2257	    INITIALIZE_DEVICE_NAMES (.UCB, .BUF [2]; UCB);
;	  2258	    INITIALIZE_BUFFER_POOL (.UCB, .BUF [3]; UCB);
;	  2259	    INITIALIZE_BLOCK_POOL ();
;	  2260	    BUF = BUF [4];		%(force auto-increment)%
;	  2261	    end;
;	  2262	
;	  2263	    !
;	  2264	    ! Check DTE control
;	  2265	    !
;	  2266	
;	  2267	    begin
;	  2268	
;	  2269	    local
;	  2270		NXM_SAVE;
;	  2271	
;	  2272	    NXM_SAVE = .VEC$AA_ADDRESS_ERROR [0];
;	  2273	    VEC$AA_ADDRESS_ERROR [0] = NXM_CATCHER;
;	  2274	    begin
;	  2275	
;	  2276	    literal
;	  2277		DTE$K_LENGTH = 16;
;	  2278	
;	  2279	    bind
;	  2280		DR$A_DTE_REGISTERS = %o'174400' : block [DTE$K_LENGTH];
;	  2281	
;	  2282	    local
;	  2283		DTE_ADDRESS : ref block [DTE$K_LENGTH];
;	  2284	
;	  2285	    DTE_ADDRESS = DR$A_DTE_REGISTERS;
;	  2286	
;	  2287	    decru COUNT from 4 to 1 do
;	  2288	
;	  2289		if not NXM (.DTE_ADDRESS)
;	  2290		then
;	  2291		    begin
;	  2292		    CEX$GA_DTE_BOOT_ROM_ADDRESS = %o'173000';
;	  2293		    exitloop;
;	  2294		    end
;	  2295		else
;	  2296		    DTE_ADDRESS = vector [.DTE_ADDRESS, DTE$K_LENGTH];
;	  2297	
;	  2298	    end;
;	  2299	    VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
;	  2300	    end;
;	  2301	    CEX$GR_LAST_CHANCE_EXCEPTION [EXV$A_PROCESS] = .CEX$AA_PROCESS_TABLE [0];
;	  2302	    CEX$GR_LAST_CHANCE_EXCEPTION [EXV$A_DISPATCH] = LAST;
;	  2303	    CEX$GR_LAST_CHANCE_EXCEPTION [EXV$A_ENABLE_DATA] = 0;
;	  2304	    CEX$GR_DUMP_EXCEPTION [EXV$A_PROCESS] = .CEX$AA_PROCESS_TABLE [0];
;	  2305	    CEX$GR_DUMP_EXCEPTION [EXV$A_DISPATCH] = PANIC;
;	  2306	
;	  2307	    !
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  79
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (28)

;	  2308	    ! Determine dump process
;	  2309	    !
;	  2310	
;	  2311	    begin
;	  2312	
;	  2313	    local
;	  2314		DEVICE : ref vector;
;	  2315	
;	  2316	    bind
;	  2317		DEVICE_LIST = uplit ('XM', %rad50_11 'NT.XMD', 0) : vector;
;	  2318	
;	  2319	    DEVICE = DEVICE_LIST [0];
;	  2320	
;	  2321	    while .DEVICE [0] neq 0 do
;	  2322		begin
;	  2323	
;	  2324		external
;	  2325		    RSX$GW_SYSTEM_SIZE : vector;
;	  2326	
;	  2327		if .RSX$GW_SYSTEM_SIZE [3] eqlu .DEVICE [0]
;	  2328		then
;	  2329		    begin
;	  2330	
;	  2331		    local
;	  2332			PCB : ref block field (PCB_FIELDS);
;	  2333		
;	  2334		    DEVICE = DEVICE [1];
;	  2335	
;	  2336		    if (PCB = FIND_PARTITION (.DEVICE)) neqa 0
;	  2337		    then
;	  2338			CEX$GR_DUMP_EXCEPTION [EXV$A_ENABLE_DATA] = .PCB [P_REL];
;	  2339	
;	  2340		    exitloop;
;	  2341		    end
;	  2342		else
;	  2343		    DEVICE = DEVICE [3];
;	  2344	
;	  2345		end;
;	  2346	
;	  2347	    end;
;	  2348	    begin
;	  2349	
;	  2350	    local
;	  2351		PS_SAVE;
;	  2352	
;	  2353	    external
;	  2354		PS;
;	  2355	
;	  2356	    PS_SAVE = .PS;
;	  2357	    PS <0, 8> = 7^5;
;	  2358	
;	  2359	    !
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  80
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (28)

;	  2360	    ! Set traps
;	  2361	    !
;	  2362	
;	  2363	    begin
;	  2364	
;	  2365	    local
;	  2366		TRAP : ref vector;
;	  2367	
;	  2368	    bind
;	  2369		TRAPS = uplit (
;	  2370		    CEX$$ADDRESS_ERROR_TRAP, VEC$AA_ADDRESS_ERROR [0],
;	  2371		    CEX$$ILLEGAL_INSTRUCTION_TRAP, VEC$AA_ILLEGAL_INSTRUCTION [0],
;	  2372		    CEX$$BREAKPOINT_TRAP, VEC$AA_BREAKPOINT [0],
;	  2373		    CEX$$IOT_INSTRUCTION_TRAP, VEC$AA_IOT_INSTRUCTION [0],
;	  2374		    CEX$$POWER_FAILURE_TRAP, VEC$AA_POWER_FAILURE [0],
;	  2375		    CEX$$EMT_INSTRUCTION_TRAP, VEC$AA_EMT_INSTRUCTION [0],
;	  2376		    CEX$$TRAP_INSTRUCTION_TRAP, VEC$AA_TRAP_INSTRUCTION [0],
;	  2377		    CEX$$PARITY_ERROR_TRAP, VEC$AA_PARITY_ERROR [0],
;	  2378		    CEX$$SEGMENT_FAULT_TRAP, VEC$AA_SEGMENT_FAULT [0],
;	  2379		    0) : vector;
;	  2380	
;	  2381	    TRAP = TRAPS [0];
;	  2382	
;	  2383	    do
;	  2384		begin
;	  2385		.TRAP [1] = .TRAP [0];
;	  2386		TRAP = TRAP [2];
;	  2387		end
;	  2388	    while .TRAP [0] neq 0;
;	  2389	
;	  2390	    end;
;	  2391	
;	  2392	    !
;	  2393	    ! Randomize
;	  2394	    !
;	  2395	
;	  2396	    begin
;	  2397	
;	  2398	    field
;	  2399		MONITOR = [0, 7, 1, 1];
;	  2400	
;	  2401	    local
;	  2402		SEED0, SEED1;
;	  2403	
;	  2404	    external
;	  2405		%name ('$CKCSR') : ref block field (MONITOR);
;	  2406	
;	  2407	    SEED0 = .CEX$AW_RANDOM_NUMBER_SEED [0];
;	  2408	    SEED1 = .CEX$AW_RANDOM_NUMBER_SEED [1];
;	  2409	
;	  2410	    do
;	  2411		begin
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  81
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (28)

;	  2412	
;	  2413		builtin
;	  2414		    ROT;
;	  2415	
;	  2416		if ROT (SEED0 = .SEED0^1, 1)
;	  2417		then
;	  2418		    SEED1 = .SEED1 + 1;
;	  2419	
;	  2420		if ROT (SEED1 = .SEED1^1, 1)
;	  2421		then
;	  2422		    SEED0 = .SEED0 + 1;
;	  2423	
;	  2424		end
;	  2425	    while not .%name ('$CKCSR') [MONITOR];
;	  2426	
;	  2427	    CEX$AW_RANDOM_NUMBER_SEED [1] = .SEED1;
;	  2428	    CEX$AW_RANDOM_NUMBER_SEED [0] = .SEED0;
;	  2429	
;	  2430	    end;
;	  2431	    PS <0, 8> = .PS_SAVE;
;	  2432	    end;
;	  2433	
;	  2434	    !
;	  2435	    ! Allocate buffers
;	  2436	    !
;	  2437	
;	  2438	    CHECK_BUFFER_ALLOCATIONS ();
;	  2439	    ALLOCATE_CCB_AND_BUFFER_POOL (CEX$GR_CCB_POOL);
;	  2440	    ALLOCATE_CCB_AND_BUFFER_POOL (CEX$GR_RDB_POOL);
;	  2441	    begin
;	  2442	
;	  2443	    local
;	  2444		BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
;	  2445	
;	  2446	    BFP = .CEX$GA_BUFFER_POOL_TABLE;
;	  2447	
;	  2448	    decru COUNT from .CEX$GH_BUFFER_POOL_COUNT to 1 do
;	  2449		begin
;	  2450		ALLOCATE_BUFFER_POOL (.BFP);
;	  2451		BFP = vector [.BFP, BFP$K_LENGTH];
;	  2452		end;
;	  2453	
;	  2454	    end;
;	  2455	
;	  2456	    !
;	  2457	    ! Allocate common event logging buffer
;	  2458	    !
;	  2459	
;	  2460	    begin
;	  2461	
;	  2462	    local
;	  2463		BUF,
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  82
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (28)

;	  2464		LEN;
;	  2465	
;	  2466	    if $RSX_GET_DSR (100, BUF, LEN)
;	  2467	    then
;	  2468		begin
;	  2469		LEN = .LEN - 1;
;	  2470		ch$wchar_a (.LEN, BUF);
;	  2471		MCB$GA_LOGGING_BUFFER = .BUF;
;	  2472		end;
;	  2473	
;	  2474	    end;
;	  2475	
;	  2476	    !
;	  2477	    ! Start stastics gathering
;	  2478	    !
;	  2479	
;	  2480	    if .CEX$GW_STATISTICS_INTERVAL eql 0
;	  2481	    then
;	  2482		CEX$GW_STATISTICS_INTERVAL = .CEX$GW_STATISTICS_INTERVAL + 1;
;	  2483	
;	  2484	    CEX$GW_STATISTICS_TIMER = .CEX$GW_STATISTICS_INTERVAL;
;	  2485	    end;				!of routine INITIALIZE_CEXCOM_DATA



000064						.PSECT	$PLIT$,  RO ,  D  
000064	   130     115 			P.AAF:	.ASCII	/XM/
000066	055274  114014 				.RAD50	/NT.XMD/
000072	000000 					.WORD	0
000074	000000G				P.AAG:	.WORD	$EX4
000076	000004 					.WORD	4
000100	000000G					.WORD	$EX10
000102	000010 					.WORD	10
000104	000000G					.WORD	$EX14
000106	000014 					.WORD	14
000110	000000G					.WORD	$EX20
000112	000020 					.WORD	20
000114	000000G					.WORD	$EX24
000116	000024 					.WORD	24
000120	000000G					.WORD	$EX30
000122	000030 					.WORD	30
000124	000000G					.WORD	$EX34
000126	000034 					.WORD	34
000130	000000G					.WORD	$EX114
000132	000114 					.WORD	114
000134	000000G					.WORD	$EX250
000136	000250 					.WORD	250
000140	000000 					.WORD	0


						.GLOBL	$CKCSR
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  83
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (28)


	174400 				DR$A.DTE.REGISTERS= -3400
	000064'				DEVICE.LIST=	    P.AAF
	000074'				TRAPS=		    P.AAG


						.SBTTL	INITIALIZE.CEXCOM.DATA
004624						.PSECT	$CODE$,  RO 

000000	012737  002760' 000000G		INITIALIZE.CEXCOM.DATA:
						MOV	#CECLK,.TIMDS			;					2236
000006	062705  000032 				ADD	#32,R5				; *,UCB					2237
000012	010501 					MOV	R5,R1				; UCB,BUF				2246
000014	062705  000022 				ADD	#22,R5				; *,UCB					2247
000020	012137  000026G				MOV	(R1)+,.CCBTB+26			; BUF,*					2248
000024	012137  000024G				MOV	(R1)+,.CCBTB+24			; BUF,*					2249
000030	012100 					MOV	(R1)+,R0			; BUF,*					2250
000032	005200 					INC	R0
000034	010037  000000G				MOV	R0,.RDBSZ
000040	042737  000001  000000G			BIC	#1,.RDBSZ
000046	012137  000026G				MOV	(R1)+,.RDBTB+26			; BUF,*					2251
000052	012137  000024G				MOV	(R1)+,.RDBTB+24			; BUF,*					2252
000056	011104 					MOV	(R1),R4				; BUF,*					2254
000060	004737  000000V				JSR	PC,INITIALIZE.PROCESS.DESCRIPTORS ; 
000064	016104  000002 				MOV	2(R1),R4			; *(BUF),*				2255
000070	004737  000000V				JSR	PC,INITIALIZE.PROCESS.NAMES
000074	016104  000004 				MOV	4(R1),R4			; *(BUF),*				2256
000100	004737  000000V				JSR	PC,INITIALIZE.LINES
000104	016104  000004 				MOV	4(R1),R4			; *(BUF),*				2257
000110	004737  000000V				JSR	PC,INITIALIZE.DEVICE.NAMES
000114	016104  000006 				MOV	6(R1),R4			; *(BUF),*				2258
000120	004737  004556'				JSR	PC,INITIALIZE.BUFFER.POOL
000124	004737  004250'				JSR	PC,INITIALIZE.BLOCK.POOL	;					2259
000130	013703  000004 				MOV	@#4,R3				; *,NXM.SAVE				2272
000134	012737  000000V 000004 			MOV	#NXM.CATCHER,@#4		;					2273
000142	012701  174400 				MOV	#-3400,R1			; *,DTE.ADDRESS				2285
000146	012702  000004 				MOV	#4,R2				; *,COUNT				2287
000152	004737  000000V			1$:	JSR	PC,NXM.TESTER			;					2289
000156	103404 					BCS	2$
000160	012737  173000  000000G			MOV	#-5000,.DTERG			;					2292
000166	000403 					BR	3$				;					2291
000170	062701  000040 			2$:	ADD	#40,R1				; *,DTE.ADDRESS				2296
000174	077212 					SOB	R2,1$				; COUNT,*				0000
000176	010337  000004 			3$:	MOV	R3,@#4				; NXM.SAVE,*				2299
000202	013737  000000G 000002G			MOV	.PDBVB,.MEXVL+2			;					2301
000210	012737  000000V 000004G			MOV	#LAST,.MEXVL+4			;					2302
000216	005037  000006G				CLR	.MEXVL+6			;					2303
000222	013737  000000G 000002G			MOV	.PDBVB,.MEXVD+2			;					2304
000230	012737  000000V 000004G			MOV	#PANIC,.MEXVD+4			;					2305
000236	012703  000064'				MOV	#DEVICE.LIST,R3			; *,DEVICE				2319
000242	005713 				4$:	TST	(R3)				; DEVICE				2321
000244	001421 					BEQ	6$
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  84
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (28)

000246	023713  000006G				CMP	$SYSIZ+6,(R3)			; *,DEVICE				2327
000252	001013 					BNE	5$
000254	062703  000002 				ADD	#2,R3				; *,DEVICE				2334
000260	010301 					MOV	R3,R1				; DEVICE,*				2336
000262	004737  004120'				JSR	PC,FIND.PARTITION
000266	005700 					TST	R0				; PCB
000270	001407 					BEQ	6$
000272	016037  000014  000006G			MOV	14(R0),.MEXVD+6			; *(PCB),*				2338
000300	000403 					BR	6$				;					2329
000302	062703  000006 			5$:	ADD	#6,R3				; *,DEVICE				2343
000306	000755 					BR	4$				;					2321
000310	013703  000000G			6$:	MOV	PS,R3				; *,PS.SAVE				2356
000314	112737  000340  000000G			MOVB	#340,PS				;					2357
000322	012700  000074'				MOV	#TRAPS,R0			; *,TRAP				2381
000326	012030 				7$:	MOV	(R0)+,@(R0)+			; TRAP,TRAP				2385
000330	005710 					TST	(R0)				; TRAP					2388
000332	001375 					BNE	7$
000334	013701  000000G				MOV	.RND,R1				; *,SEED0				2407
000340	013702  000002G				MOV	.RND+2,R2			; *,SEED1				2408
000344	006301 				8$:	ASL	R1				; SEED0					2416
000346	005502 					ADC	R2				; SEED1					2418
000350	006302 					ASL	R2				; SEED1					2420
000352	010200 					MOV	R2,R0				; SEED1,*
000354	005501 					ADC	R1				; SEED0					2422
000356	105777  000000G				TSTB	@$CKCSR				;					2425
000362	100370 					BPL	8$
000364	010237  000002G				MOV	R2,.RND+2			; SEED1,*				2427
000370	010137  000000G				MOV	R1,.RND				; SEED0,*				2428
000374	110337  000000G				MOVB	R3,PS				; PS.SAVE,*				2431
000400	004737  003604'				JSR	PC,CHECK.BUFFER.ALLOCATIONS	;					2438
000404	012705  000000G				MOV	#.CCBTB,R5			;					2439
000410	004737  002460'				JSR	PC,ALLOCATE.CCB.AND.BUFFER.POOL
000414	012705  000000G				MOV	#.RDBTB,R5			;					2440
000420	004737  002460'				JSR	PC,ALLOCATE.CCB.AND.BUFFER.POOL
000424	013705  000000G				MOV	.CORTA,R5			; *,BFP					2446
000430	013701  000000G				MOV	.CORNM,R1			; *,COUNT				2448
000434	001405 					BEQ	10$
000436	004737  002262'			9$:	JSR	PC,ALLOCATE.BUFFER.POOL		;					2450
000442	062705  000024 				ADD	#24,R5				; *,BFP					2451
000446	077105 					SOB	R1,9$				; COUNT,*				0000
000450	012701  000144 			10$:	MOV	#144,R1				;					2466
000454	004737  000000G				JSR	PC,$ALOCB
000460	103406 					BCS	11$
000462	010002 					MOV	R0,R2				; $RSX$R0,BUF
000464	010100 					MOV	R1,R0				; $RSX$R1,LEN
000466	005300 					DEC	R0				; LEN					2469
000470	110022 					MOVB	R0,(R2)+			; LEN,BUF				2470
000472	010237  000000G				MOV	R2,.LOGPT			; BUF,*					2471
000476	005737  000000G			11$:	TST	.SMSEC				;					2480
000502	001002 					BNE	12$
000504	005237  000000G				INC	.SMSEC				;					2482
000510	013737  000000G 000000G		12$:	MOV	.SMSEC,.SITIM			;					2484
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  85
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (28)

000516	000207 					RTS	PC				;					2204

; Routine Size:  168 words,	Routine Base:  $CODE$ + 4624
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  86
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (29)

;	  2486	routine INITIALIZE_DEVICE_NAMES (NAM, SLT_COUNT; NEW_NAM) : LINKAGE_ADR_CNT novalue =
;	  2487	
;	  2488	!++
;	  2489	! FUNCTIONAL DESCRIPTION:
;	  2490	!
;	  2491	!
;	  2492	! FORMAL PARAMETERS:
;	  2493	!	None
;	  2494	!
;	  2495	! IMPLICIT INPUTS:
;	  2496	!	None
;	  2497	!
;	  2498	! IMPLICIT OUTPUTS:
;	  2499	!	None
;	  2500	!
;	  2501	! ROUTINE VALUE:
;	  2502	! COMPLETION CODES:
;	  2503	!	None
;	  2504	!
;	  2505	! SIDE EFFECTS:
;	  2506	!	None
;	  2507	!--
;	  2508	
;	  2509	    begin
;	  2510	
;	  2511	    local
;	  2512		SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
;	  2513	
;	  2514	    SLT = .CEX$GA_SYSTEM_LINE_TABLE;
;	  2515	
;	  2516	    decru COUNT from .SLT_COUNT to 1 do
;	  2517		begin
;	  2518		SLT [SLT$A_DEVICE] = .NAM;
;	  2519		NAM = ch$plus (ch$rchar_a (NAM), .NAM);
;	  2520		SLT = vector [.SLT, SLT$K_LENGTH];
;	  2521		end;
;	  2522	
;	  2523	    NAM = .NAM + 1;
;	  2524	    NAM <0, 1> = 0;
;	  2525	    NEW_NAM = .NAM;
;	  2526	    end;				!of routine INITIALIZE_DEVICE_NAMES


						.SBTTL	INITIALIZE.DEVICE.NAMES
000000	004137  000000G			INITIALIZE.DEVICE.NAMES:
						JSR	R1,$SAVE4			;					2486
000004	013700  000000G				MOV	.SLTTA,R0			; *,SLT					2514
000010	005704 					TST	R4				; COUNT					2516
000012	001410 					BEQ	2$
000014	010560  000006 			1$:	MOV	R5,6(R0)			; NAM,*(SLT)				2518
000020	005001 					CLR	R1				;					2519
000022	152501 					BISB	(R5)+,R1			; NAM,*
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  87
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (29)

000024	060105 					ADD	R1,R5				; *,NAM
000026	062700  000010 				ADD	#10,R0				; *,SLT					2520
000032	077410 					SOB	R4,1$				; COUNT,*				0000
000034	005205 				2$:	INC	R5				; NAM					2523
000036	142705  000001 				BICB	#1,R5				; *,NAM					2524
000042	000207 					RTS	PC				;					2486

; Routine Size:  18 words,	Routine Base:  $CODE$ + 5344
; Maximum stack depth per invocation:  6 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  88
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (30)

;	  2527	routine INITIALIZE_LINES (SLT, SLT_COUNT; NEW_SLT) : LINKAGE_ADR_CNT novalue =
;	  2528	
;	  2529	!++
;	  2530	! FUNCTIONAL DESCRIPTION:
;	  2531	!
;	  2532	!
;	  2533	! FORMAL PARAMETERS:
;	  2534	!	None
;	  2535	!
;	  2536	! IMPLICIT INPUTS:
;	  2537	!	None
;	  2538	!
;	  2539	! IMPLICIT OUTPUTS:
;	  2540	!	None
;	  2541	!
;	  2542	! ROUTINE VALUE:
;	  2543	! COMPLETION CODES:
;	  2544	!	None
;	  2545	!
;	  2546	! SIDE EFFECTS:
;	  2547	!	None
;	  2548	!--
;	  2549	
;	  2550	    begin
;	  2551	
;	  2552	    map
;	  2553		SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
;	  2554	
;	  2555	    CEX$GA_SYSTEM_LINE_TABLE = .SLT;
;	  2556	    CEX$GH_SYSTEM_LINE_COUNT = .SLT_COUNT;
;	  2557	
;	  2558	    decru COUNT from .SLT_COUNT to 1 do
;	  2559		begin
;	  2560	
;	  2561		local
;	  2562		    INDEX;
;	  2563	
;	  2564		if (INDEX = .SLT [SLT$B_LLC_PROCESS_INDEX]) nequ 0
;	  2565		then
;	  2566	
;	  2567		    if .CEX$AA_PROCESS_TABLE [.INDEX] eqla 0
;	  2568		    then
;	  2569			SLT [SLT$B_LLC_PROCESS_INDEX] = 0;
;	  2570	
;	  2571		if (INDEX = .SLT [SLT$B_DLC_PROCESS_INDEX]) nequ 0
;	  2572		then
;	  2573	
;	  2574		    if .CEX$AA_PROCESS_TABLE [.INDEX] eqla 0
;	  2575		    then
;	  2576			SLT [SLT$B_DLC_PROCESS_INDEX] = 0;
;	  2577	
;	  2578		if (INDEX = .SLT [SLT$B_DDM_PROCESS_INDEX]) nequ 0
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  89
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (30)

;	  2579		then
;	  2580	
;	  2581		    if .CEX$AA_PROCESS_TABLE [.INDEX] eqla 0
;	  2582		    then
;	  2583			SLT [SLT$B_DDM_PROCESS_INDEX] = 0;
;	  2584	
;	  2585		SLT = vector [.SLT, SLT$K_LENGTH];
;	  2586		end;
;	  2587	
;	  2588	    NEW_SLT = .SLT;
;	  2589	    end;				!of routine INITIALIZE_LINES


						.SBTTL	INITIALIZE.LINES
000000	004137  000000G			INITIALIZE.LINES:
						JSR	R1,$SAVE4			;					2527
000004	010537  000000G				MOV	R5,.SLTTA			; SLT,*					2555
000010	010437  000000G				MOV	R4,.SLTNM			; SLT.COUNT,*				2556
000014	001445 					BEQ	5$				;					2558
000016	005001 				1$:	CLR	R1				; INDEX					2564
000020	156501  000004 				BISB	4(R5),R1			; *(SLT),INDEX
000024	005701 					TST	R1				; INDEX
000026	001407 					BEQ	2$
000030	010100 					MOV	R1,R0				; INDEX,*				2567
000032	006300 					ASL	R0
000034	005760  000000G				TST	.PDBVB(R0)
000040	001002 					BNE	2$
000042	105065  000004 				CLRB	4(R5)				; *(SLT)				2569
000046	005001 				2$:	CLR	R1				; INDEX					2571
000050	156501  000002 				BISB	2(R5),R1			; *(SLT),INDEX
000054	005701 					TST	R1				; INDEX
000056	001407 					BEQ	3$
000060	010100 					MOV	R1,R0				; INDEX,*				2574
000062	006300 					ASL	R0
000064	005760  000000G				TST	.PDBVB(R0)
000070	001002 					BNE	3$
000072	105065  000002 				CLRB	2(R5)				; *(SLT)				2576
000076	005001 				3$:	CLR	R1				; INDEX					2578
000100	151501 					BISB	(R5),R1				; SLT,INDEX
000102	005701 					TST	R1				; INDEX
000104	001406 					BEQ	4$
000106	010100 					MOV	R1,R0				; INDEX,*				2581
000110	006300 					ASL	R0
000112	005760  000000G				TST	.PDBVB(R0)
000116	001001 					BNE	4$
000120	105015 					CLRB	(R5)				; SLT					2583
000122	062705  000010 			4$:	ADD	#10,R5				; *,SLT					2585
000126	077445 					SOB	R4,1$				; COUNT,*				0000
000130	000207 				5$:	RTS	PC				;					2527

; Routine Size:  45 words,	Routine Base:  $CODE$ + 5410
; Maximum stack depth per invocation:  6 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  90
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (31)

;	  2590	routine INITIALIZE_PROCESS_DESCRIPTORS (PDB, PDB_COUNT; NEW_PDB) : LINKAGE_ADR_CNT novalue =
;	  2591	
;	  2592	!++
;	  2593	! FUNCTIONAL DESCRIPTION:
;	  2594	!
;	  2595	!
;	  2596	! FORMAL PARAMETERS:
;	  2597	!	None
;	  2598	!
;	  2599	! IMPLICIT INPUTS:
;	  2600	!	None
;	  2601	!
;	  2602	! IMPLICIT OUTPUTS:
;	  2603	!	None
;	  2604	!
;	  2605	! ROUTINE VALUE:
;	  2606	! COMPLETION CODES:
;	  2607	!	None
;	  2608	!
;	  2609	! SIDE EFFECTS:
;	  2610	!	None
;	  2611	!--
;	  2612	
;	  2613	    begin
;	  2614	
;	  2615	    map
;	  2616		PDB : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  2617	
;	  2618	    label
;	  2619		ASSIGN_PDB;
;	  2620	
;	  2621	    decru COUNT from .PDB_COUNT to 1 do
;	  2622		begin
;	  2623		ASSIGN_PDB: begin
;	  2624		$CEX_PHDDEF
;	  2625	
;	  2626		bind
;	  2627		    HEADER = %o'140000' : block field ($CEX_PHDFIELDS);
;	  2628	
;	  2629		begin
;	  2630	
;	  2631		local
;	  2632		    PCB : ref block field (PCB_FIELDS);
;	  2633	
;	  2634		begin
;	  2635	
;	  2636		local
;	  2637		    PCB_NAME : vector [2];
;	  2638	
;	  2639		PCB_NAME [1] = .PDB [PDT$W_CODE_NAME];
;	  2640		PCB_NAME [0] = %rad50_11 'NT.';
;	  2641	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  91
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (31)

;	  2642		if (PCB = FIND_PARTITION (PCB_NAME)) eqla 0 then leave ASSIGN_PDB;
;	  2643	
;	  2644		end;
;	  2645		MAP$ (PDB [PDT$W_CODE_BIAS] = .PCB [P_REL]);
;	  2646		HEADER [PHD$W_BLKS] = .PCB [P_BLKS];
;	  2647		end;
;	  2648		begin
;	  2649	
;	  2650		external
;	  2651		    CEXVER : vector [2];
;	  2652	
;	  2653		if .CEXVER [0] neq .HEADER [PHD$W_CEX_IDENT_1] or
;	  2654		   .CEXVER [1] neq .HEADER [PHD$W_CEX_IDENT_2] then leave ASSIGN_PDB;
;	  2655	
;	  2656		end;
;	  2657		PDB [PDT$V_PERMANENT] = TRUE;
;	  2658		begin
;	  2659	
;	  2660		local
;	  2661		    DISPATCH;
;	  2662	
;	  2663		external
;	  2664		    %name ('.DSPCR');
;	  2665	
;	  2666		if (DISPATCH = .PDB [PDT$A_DISPATCH_ADDRESS_ADDRESS]) eqla 0
;	  2667		then
;	  2668		    DISPATCH = %name ('.DSPCR')
;	  2669		else
;	  2670	
;	  2671		    if (DISPATCH = .(.DISPATCH + %o'20000')) eqla 0
;	  2672		    then
;	  2673			DISPATCH = %name ('.DSPCR');
;	  2674	
;	  2675		PDB [PDT$A_CODE_DISPATCH] = .DISPATCH;
;	  2676		end;
;	  2677	
;	  2678		if .PDB [PDT$V_DATA_BASE_INCLUDED] and (.PDB [PDT$A_DATA_ADDRESS] eqla 0)
;	  2679		then
;	  2680		    leave ASSIGN_PDB;
;	  2681	
;	  2682		if .PDB [PDT$V_UCB_INCLUDED]
;	  2683		then
;	  2684		    begin
;	  2685	
;	  2686		    local
;	  2687			UCB : ref block field (UCB_FIELDS);
;	  2688	
;	  2689		    if (UCB = .PDB [PDT$A_UCB]) eqla 0
;	  2690		    then
;	  2691			leave ASSIGN_PDB;
;	  2692	
;	  2693		    UCB [U_CW2] = .PDB [PDT$B_INDEX];
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  92
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (31)

;	  2694	
;	  2695		    if .HEADER [PHD$V_RSX_TABLE_INCLUDED]
;	  2696		    then
;	  2697			begin
;	  2698	
;	  2699			bind
;	  2700			    DCB = .UCB [U_DCB] : block field (DCB_FIELDS);
;	  2701	
;	  2702			DCB [D_DSP] = .HEADER [PHD$A_RSX_TABLE];
;	  2703			end;
;	  2704	
;	  2705		    end;
;	  2706	
;	  2707		begin
;	  2708	
;	  2709		local
;	  2710		    PDT : ref vector;
;	  2711	
;	  2712		if (PDT = .PDB [PDT$B_INDEX]) gequ .CEX$GH_PROCESS_COUNT
;	  2713		then
;	  2714		    leave ASSIGN_PDB;
;	  2715	
;	  2716		PDT = CEX$AA_PROCESS_TABLE [.PDT];
;	  2717		PDT [0] = .PDB;
;	  2718		PDT = PDT [1];
;	  2719	
;	  2720		if .PDT gtra .CEX$GA_PROCESS_TABLE_END
;	  2721		then
;	  2722		    CEX$GA_PROCESS_TABLE_END = .PDT;
;	  2723	
;	  2724		end;
;	  2725		end;
;	  2726	
;	  2727		if not .PDB [PDT$V_UCB_INCLUDED]
;	  2728		then
;	  2729		    PDB = PDB [PDT$A_UCB]
;	  2730		else
;	  2731		    PDB = vector [.PDB, PDT$K_LENGTH];
;	  2732	
;	  2733		end;
;	  2734	
;	  2735	    NEW_PDB = .PDB;
;	  2736	    end;				!of routine INITIALIZE_PROCESS_DESCRIPTORS


						.GLOBL	CEXVER


	140000 				HEADER=		    -40000


						.SBTTL	INITIALIZE.PROCESS.DESCRIPTORS
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  93
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (31)

000000	004137  000000G			INITIALIZE.PROCESS.DESCRIPTORS:
						JSR	R1,$SAVE4			;					2590
000004	024646 					CMP	-(SP),-(SP)
000006	005704 					TST	R4				; COUNT					2621
000010	001533 					BEQ	9$
000012	011566  000002 			1$:	MOV	(R5),2(SP)			; PDB,PCB.NAME+2			2639
000016	012716  055274 				MOV	#55274,(SP)			; *,PCB.NAME				2640
000022	010601 					MOV	SP,R1				; PCB.NAME,*				2642
000024	004737  004120'				JSR	PC,FIND.PARTITION
000030	005700 					TST	R0				; PCB
000032	001507 					BEQ	6$
000034	016015  000014 				MOV	14(R0),(R5)			; *(PCB),PDB				2645
000040	011537  000000G				MOV	(R5),KISAR6			; PDB,*
000044	016037  000016  140004 			MOV	16(R0),@#140004			; *(PCB),*				2646
000052	023737  000000G 140020 			CMP	CEXVER,@#140020			;					2653
000060	001074 					BNE	6$
000062	023737  000002G 140022 			CMP	CEXVER+2,@#140022		;					2654
000070	001070 					BNE	6$
000072	012701  000010 				MOV	#10,R1				;					2657
000076	060501 					ADD	R5,R1				; PDB,*
000100	052711  002000 				BIS	#2000,(R1)
000104	016500  000002 				MOV	2(R5),R0			; *(PDB),DISPATCH			2666
000110	001403 					BEQ	2$				;					2668
000112	016000  020000 				MOV	20000(R0),R0			; *(DISPATCH),DISPATCH			2671
000116	001002 					BNE	3$
000120	012700  000000G			2$:	MOV	#.DSPCR,R0			; *,DISPATCH				2673
000124	010065  000002 			3$:	MOV	R0,2(R5)			; DISPATCH,*(PDB)			2675
000130	032711  001000 				BIT	#1000,(R1)			;					2678
000134	001403 					BEQ	4$
000136	005765  000006 				TST	6(R5)				; *(PDB)
000142	001443 					BEQ	6$				;					2680
000144	032711  000400 			4$:	BIT	#400,(R1)			;					2682
000150	001417 					BEQ	5$
000152	016500  000012 				MOV	12(R5),R0			; *(PDB),UCB				2689
000156	001435 					BEQ	6$				;					2691
000160	111160  000012 				MOVB	(R1),12(R0)			; *,*(UCB)				2693
000164	105060  000013 				CLRB	13(R0)				; *(UCB)
000170	032737  001000  140030 			BIT	#1000,@#140030			;					2695
000176	001404 					BEQ	5$
000200	011000 					MOV	(R0),R0				; UCB,*					2702
000202	013760  140032  000012 			MOV	@#140032,12(R0)
000210	111101 				5$:	MOVB	(R1),R1				; *,PDT					2712
000212	042701  177400 				BIC	#177400,R1			; *,PDT
000216	020137  000000G				CMP	R1,.PDBNM			; PDT,*
000222	103013 					BHIS	6$				;					2714
000224	010100 					MOV	R1,R0				; PDT,*					2716
000226	006300 					ASL	R0
000230	062700  000000G				ADD	#.PDBVB,R0
000234	010001 					MOV	R0,R1				; *,PDT
000236	010521 					MOV	R5,(R1)+			; PDB,PDT				2717
000240	020137  000000G				CMP	R1,.PDBVE			; PDT,*					2720
000244	101402 					BLOS	6$
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  94
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (31)

000246	010137  000000G				MOV	R1,.PDBVE			; PDT,*					2722
000252	032765  000400  000010 		6$:	BIT	#400,10(R5)			; *,*(PDB)				2727
000260	001003 					BNE	7$
000262	062705  000012 				ADD	#12,R5				; *,PDB					2729
000266	000402 					BR	8$				;					2727
000270	062705  000014 			7$:	ADD	#14,R5				; *,PDB					2731
000274	005304 				8$:	DEC	R4				; COUNT					0000
000276	001245 					BNE	1$
000300	022626 				9$:	CMP	(SP)+,(SP)+			;					2590
000302	000207 					RTS	PC

; Routine Size:  98 words,	Routine Base:  $CODE$ + 5542
; Maximum stack depth per invocation:  8 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  95
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (32)

;	  2737	routine INITIALIZE_PROCESS_NAMES (PNM, PNM_COUNT; NEW_PNM) : LINKAGE_ADR_CNT novalue =
;	  2738	
;	  2739	!++
;	  2740	! FUNCTIONAL DESCRIPTION:
;	  2741	!
;	  2742	!
;	  2743	! FORMAL PARAMETERS:
;	  2744	!	None
;	  2745	!
;	  2746	! IMPLICIT INPUTS:
;	  2747	!	None
;	  2748	!
;	  2749	! IMPLICIT OUTPUTS:
;	  2750	!	None
;	  2751	!
;	  2752	! ROUTINE VALUE:
;	  2753	! COMPLETION CODES:
;	  2754	!	None
;	  2755	!
;	  2756	! SIDE EFFECTS:
;	  2757	!	None
;	  2758	!--
;	  2759	
;	  2760	    begin
;	  2761	
;	  2762	    map
;	  2763		PNM : ref block [PNM$K_LENGTH] field ($CEX_PNMFIELDS);
;	  2764	
;	  2765	    CEX$GA_PROCESS_NAME_TABLE = .PNM;
;	  2766	    CEX$GH_PROCESS_NAME_COUNT = .PNM_COUNT;
;	  2767	
;	  2768	    decru COUNT from .PNM_COUNT to 1 do
;	  2769		begin
;	  2770	
;	  2771		local
;	  2772		    INDEX;
;	  2773	
;	  2774		INDEX = .PNM [PNM$W_PROCESS_INDEX];
;	  2775	
;	  2776		if .INDEX gequ .CEX$GH_PROCESS_COUNT
;	  2777		then
;	  2778		    PNM [PNM$W_NAME] = PNM [PNM$A_PROCESS] = 0
;	  2779		else
;	  2780	
;	  2781		    if (PNM [PNM$A_PROCESS] = .CEX$AA_PROCESS_TABLE [.INDEX]) eqla 0
;	  2782		    then
;	  2783			PNM [PNM$W_NAME] = 0;
;	  2784	
;	  2785		PNM = vector [.PNM, PNM$K_LENGTH];
;	  2786		end;
;	  2787	
;	  2788	    NEW_PNM = .PNM
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  96
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (32)

;	  2789	    end;				!of routine INITIALIZE_PROCESS_NAMES


						.SBTTL	INITIALIZE.PROCESS.NAMES
000000	010446 				INITIALIZE.PROCESS.NAMES:
						MOV	R4,-(SP)			;					2737
000002	010537  000000G				MOV	R5,.PNMTA			; PNM,*					2765
000006	010437  000000G				MOV	R4,.PNMNM			; PNM.COUNT,*				2766
000012	001417 					BEQ	5$				;					2768
000014	011500 				1$:	MOV	(R5),R0				; PNM,INDEX				2774
000016	020037  000000G				CMP	R0,.PDBNM			; INDEX,*				2776
000022	103402 					BLO	2$
000024	005015 					CLR	(R5)				; PNM					2778
000026	000404 					BR	3$
000030	006300 				2$:	ASL	R0				;					2781
000032	016015  000000G				MOV	.PDBVB(R0),(R5)			; *,PNM
000036	001002 					BNE	4$
000040	005065  000002 			3$:	CLR	2(R5)				; *(PNM)				2783
000044	062705  000004 			4$:	ADD	#4,R5				; *,PNM					2785
000050	077417 					SOB	R4,1$				; COUNT,*				0000
000052	012604 				5$:	MOV	(SP)+,R4			;					2737
000054	000207 					RTS	PC

; Routine Size:  23 words,	Routine Base:  $CODE$ + 6046
; Maximum stack depth per invocation:  2 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  97
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (33)

;	  2790	routine INITIALIZE_UNIBUS_MAPPING : novalue  =
;	  2791	
;	  2792	!++
;	  2793	! FUNCTIONAL DESCRIPTION:
;	  2794	!
;	  2795	!
;	  2796	! FORMAL PARAMETERS:
;	  2797	!	None
;	  2798	!
;	  2799	! IMPLICIT INPUTS:
;	  2800	!	None
;	  2801	!
;	  2802	! IMPLICIT OUTPUTS:
;	  2803	!	None
;	  2804	!
;	  2805	! ROUTINE VALUE:
;	  2806	! COMPLETION CODES:
;	  2807	!	None
;	  2808	!
;	  2809	! SIDE EFFECTS:
;	  2810	!	None
;	  2811	!--
;	  2812	
;	  2813	    begin
;	L 2814	%if CEX$CFG_UNIBUS_MAPPING
;	U 2815	%then
;	U 2816	
;	U 2817	    local
;	U 2818	        UBM_DATA_BASE : block [UBM$K_LENGTH] field ($CEX_UBMFIELDS);
;	U 2819	
;	U 2820	    external
;	U 2821	        UBMPR : vector [31*2],
;	U 2822	        RSX$GW_SYSTEM_SIZE,
;	U 2823		%name ('$EXSIZ'),
;	U 2824	        %name ('$PARHD');
;	U 2825	
;	U 2826	    if not UBM_MAPPING then return;
;	U 2827	
;	U 2828	    UBM_DATA_BASE [UBM$A_LINK] = 0;
;	U 2829	    UBM_DATA_BASE [UBM$W_START_BLK] = %o'0000';
;	U 2830	    UBM_DATA_BASE [UBM$W_END_BLK] = .%name ('$EXSIZ')^-6;
;	U 2831	    RSX$GW_SYSTEM_SIZE = %o'20000'; %(temporary for SYS880)%
;	U 2832	    begin
;	U 2833	
;	U 2834	    local
;	U 2835	        PCB : ref block field (PCB_FIELDS),
;	U 2836	        UBM : ref block field ($CEX_UBMFIELDS);
;	U 2837	
;	U 2838	    label
;	U 2839		PCB_BAD,
;	U 2840		PCB_GOOD;
;	U 2841	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  98
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (33)

;	U 2842	    UBM = UBM_DATA_BASE;
;	U 2843	    PCB = .%name ('$PARHD');
;	U 2844	
;	U 2845	    do				! Sloppy PCB checks
;	U 2846	        PCB_BAD : begin
;	U 2847		PCB_GOOD : begin
;	U 2848	
;	U 2849		bind
;	U 2850		    PNAME = PCB [P_NAM] : vector [2];
;	U 2851	
;	U 2852	        if .PNAME [0] eqlu %rad50_11 'NT.' then leave PCB_BAD;
;	U 2853	
;	U 2854		if .PCB [P_TCB] neq 0 then leave PCB_GOOD;
;	U 2855	
;	U 2856		if .PCB [PS_SYS] and (.PCB eqla .PCB [P_MAIN]) then leave PCB_BAD;
;	U 2857	
;	U 2858		end;
;	U 2859	
;	U 2860	        if .PCB [P_REL] nequ .UBM [UBM$W_END_BLK]
;	U 2861	        then
;	U 2862	            begin
;	U 2863	
;	U 2864		    local
;	U 2865			NEW_UBM : ref block field ($CEX_UBMFIELDS);
;	U 2866	
;	U 2867	            if not $RSX_GET_DSR (UBM$K_LENGTH*%upval, NEW_UBM) then return;
;	U 2868	
;	U 2869		    UBM [UBM$A_LINK] = .NEW_UBM;
;	U 2870	            NEW_UBM [UBM$A_LINK] = 0;
;	U 2871	            NEW_UBM [UBM$W_START_BLK] = .PCB [P_REL];
;	U 2872	            NEW_UBM [UBM$W_END_BLK] = .PCB [P_REL];
;	U 2873		    NEW_UBM [UBM$B_BASE_UBMR] = 0;
;	U 2874		    NEW_UBM = NEW_UBM [UBM$B_BASE_UBMR]; %(force auto-increment)%
;	U 2875		    UBM = .UBM [UBM$A_LINK];
;	U 2876	            end;
;	U 2877	
;	U 2878		UBM [UBM$W_END_BLK] = .UBM [UBM$W_END_BLK] + .PCB [P_BLKS];
;	U 2879	        end
;	U 2880	    while
;	U 2881	
;	U 2882		if .PCB [PS_SYS]
;	U 2883		then
;	U 2884		    begin
;	U 2885	
;	U 2886		    if .PCB [P_SUB] neqa 0
;	U 2887		    then
;	U 2888			begin
;	U 2889			PCB = .PCB [P_SUB];
;	U 2890			TRUE
;	U 2891			end
;	U 2892		    else
;	U 2893			begin
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page  99
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (33)

;	U 2894			PCB = .PCB [P_MAIN];
;	U 2895			(PCB = .PCB [P_LNK]) neqa 0
;	U 2896			end
;	U 2897	
;	U 2898		    end
;	U 2899		else
;	U 2900		    (PCB = .PCB [P_LNK]) neqa 0;
;	U 2901	
;	U 2902	    UBM [UBM$W_END_BLK] = .RSX$GW_SYSTEM_SIZE;
;	U 2903	    end;
;	U 2904	    begin
;	U 2905	
;	U 2906	    local
;	U 2907		BIAS,
;	U 2908	        UBM : ref block field ($CEX_UBMFIELDS),
;	U 2909		UBMN,
;	U 2910		UBMR : ref vector;
;	U 2911	
;	U 2912	    UBMN = 0;
;	U 2913	    UBMR = UBMPR;
;	U 2914	    UBM = UBM_DATA_BASE;
;	U 2915	
;	U 2916	    do
;	U 2917		begin
;	U 2918		UBM [UBM$B_BASE_UBMR] = .UBMN;
;	U 2919		BIAS = .UBM [UBM$W_START_BLK];
;	U 2920	
;	U 2921		do
;	U 2922		    begin
;	U 2923	
;	U 2924		    if .UBMN gtr 31 then exitloop UBM [UBM$W_END_BLK] = .BIAS;
;	U 2925	
;	U 2926		    CEX$$SHIFT_32 (6, .BIAS, 0; UBMR [0], UBMR [1]);
;	U 2927		    UBMR = UBMR [2];
;	U 2928		    UBMN = .UBMN + 1;
;	U 2929		    end
;	U 2930		while (BIAS = .BIAS + %o'200') lssu .UBM [UBM$W_END_BLK];
;	U 2931	
;	U 2932		end
;	U 2933	    while (UBM = .UBM [UBM$A_LINK]) neqa 0;
;	U 2934	
;	U 2935	    CEX$$SHIFT_32 (-6, .UBMR [-2], .UBMR [-1];, UBM);
;	U 2936	    end;
;	U 2937	    CEX$GA_UBM_DATA_BASE = .UBM_DATA_BASE [UBM$A_LINK];
;	  2938	%else
;	  2939	    0					! (avoid empty expression)
;	  2940	%fi
;	  2941	    end;				!of routine INITIALIZE_UNIBUS_MAPPING


						.SBTTL	INITIALIZE.UNIBUS.MAPPING
000000	000207 				INITIALIZE.UNIBUS.MAPPING:
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 100
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (33)

						RTS	PC				;					2790

; Routine Size:  1 word,	Routine Base:  $CODE$ + 6124
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 101
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (34)

;	  2942	routine KILL_PROCESSES : MCB_ novalue =
;	  2943	
;	  2944	!++
;	  2945	! FUNCTIONAL DESCRIPTION:
;	  2946	!
;	  2947	!
;	  2948	! FORMAL PARAMETERS:
;	  2949	!	None
;	  2950	!
;	  2951	! IMPLICIT INPUTS:
;	  2952	!	None
;	  2953	!
;	  2954	! IMPLICIT OUTPUTS:
;	  2955	!	None
;	  2956	!
;	  2957	! ROUTINE VALUE:
;	  2958	! COMPLETION CODES:
;	  2959	!	None
;	  2960	!
;	  2961	! SIDE EFFECTS:
;	  2962	!	None
;	  2963	!--
;	  2964	
;	  2965	    begin
;	  2966	
;	  2967	    local
;	  2968		LAST_PDT,
;	  2969		PDT : ref vector;
;	  2970	
;	  2971	    CEX$AR_CEX_SYNCH_BLOCK [SYN$A_DISPATCH] = 0;
;	  2972	
;	  2973	    if (PDT = .CEX$GA_PROCESS_TABLE_END) eqla 0 then return;
;	  2974	
;	  2975	    do
;	  2976		begin
;	  2977	
;	  2978		local
;	  2979		    PDB : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  2980	
;	  2981		LAST_PDT = .PDT;
;	  2982	
;	  2983		if (PDB = .(PDT = PDT [-1])) neqa 0
;	  2984		then
;	  2985		    begin
;	  2986	
;	  2987		    if .PDB [PDT$V_KILL_PROCESS]
;	  2988		    then
;	  2989			begin
;	  2990	
;	  2991			local
;	  2992			    LENGTH;
;	  2993	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 102
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (34)

;	  2994			PDT [0] = 0;
;	  2995	
;	  2996			if .CEX$GA_PROCESS_TABLE_END eqla .LAST_PDT
;	  2997			then
;	  2998			    CEX$GA_PROCESS_TABLE_END = .LAST_PDT;
;	  2999	
;	  3000			LENGTH = PDT$K_LENGTH - 1;
;	  3001	
;	  3002			if .PDB [PDT$V_UCB_INCLUDED]
;	  3003			then
;	  3004			    begin
;	  3005	
;	  3006			    bind
;	  3007				UCB = .PDB [PDT$A_UCB] : block field (UCB_FIELDS);
;	  3008	
;	  3009			    UCB [U_CW2] = 0;
;	  3010			    LENGTH = .LENGTH + 1;
;	  3011			    end;
;	  3012	
;	  3013			if not .PDB [PDT$V_PERMANENT]
;	  3014			then
;	  3015			    begin
;	  3016			    LENGTH = .LENGTH*%upval;
;	  3017			    $RSX_RETURN_DSR (.LENGTH, .PDB);
;	  3018			    end;
;	  3019	
;	  3020			end;
;	  3021	
;	  3022		    end;
;	  3023	
;	  3024		end
;	  3025	    while .PDT gtra CEX$AA_PROCESS_TABLE [0];
;	  3026	
;	  3027	    end;				!of routine KILL_PROCESSES


						.SBTTL	KILL.PROCESSES
000000	005037  000004G			KILL.PROCESSES:
						CLR	.PDSYN+4			;					2971
000004	013704  000000G				MOV	.PDBVE,R4			; *,PDT					2973
000010	001442 					BEQ	5$
000012	010405 				1$:	MOV	R4,R5				; PDT,LAST.PDT				2981
000014	014400 					MOV	-(R4),R0			; PDT,PDB				2983
000016	001434 					BEQ	4$
000020	012703  000010 				MOV	#10,R3				;					2987
000024	060003 					ADD	R0,R3				; PDB,*
000026	032713  004000 				BIT	#4000,(R3)
000032	001426 					BEQ	4$
000034	005014 					CLR	(R4)				; PDT					2994
000036	023705  000000G				CMP	.PDBVE,R5			; *,LAST.PDT				2996
000042	001002 					BNE	2$
000044	010537  000000G				MOV	R5,.PDBVE			; LAST.PDT,*				2998
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 103
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (34)

000050	012701  000005 			2$:	MOV	#5,R1				; *,LENGTH				3000
000054	032713  000400 				BIT	#400,(R3)			;					3002
000060	001405 					BEQ	3$
000062	016002  000012 				MOV	12(R0),R2			; *(PDB),*				3009
000066	005062  000012 				CLR	12(R2)
000072	005201 					INC	R1				; LENGTH				3010
000074	032713  002000 			3$:	BIT	#2000,(R3)			;					3013
000100	001003 					BNE	4$
000102	006301 					ASL	R1				; LENGTH				3016
000104	004737  000000G				JSR	PC,$DEACB			;					3017
000110	020427  000000G			4$:	CMP	R4,#.PDBVB			; PDT,*					3025
000114	101336 					BHI	1$
000116	000207 				5$:	RTS	PC				;					2942

; Routine Size:  40 words,	Routine Base:  $CODE$ + 6126
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 104
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (35)

;	  3028	routine LAST (SIG, MCH, ENB) =
;	  3029	
;	  3030	!++
;	  3031	! FUNCTIONAL DESCRIPTION:
;	  3032	!
;	  3033	!
;	  3034	! FORMAL PARAMETERS:
;	  3035	!	None
;	  3036	!
;	  3037	! IMPLICIT INPUTS:
;	  3038	!	None
;	  3039	!
;	  3040	! IMPLICIT OUTPUTS:
;	  3041	!	None
;	  3042	!
;	  3043	! ROUTINE VALUE:
;	  3044	! COMPLETION CODES:
;	  3045	!	None
;	  3046	!
;	  3047	! SIDE EFFECTS:
;	  3048	!	None
;	  3049	!--
;	  3050	
;	  3051	    begin
;	  3052	
;	  3053	    map
;	  3054		ENB : ref vector,
;	  3055		MCH : ref vector,
;	  3056		SIG : ref vector;
;	  3057	
;	  3058	    if .SIG [0] eql 0 then return FALSE;
;	  3059	
;	  3060	    (.SIG [1] and 7) lss 4
;	  3061	    end;				!of routine LAST


						.SBTTL	LAST
000000	004137  000000G			LAST:	JSR	R1,$SAVE2			;					3028
000004	016601  000014 				MOV	14(SP),R1			; SIG,*					3058
000010	005711 					TST	(R1)
000012	001002 					BNE	1$
000014	005000 					CLR	R0
000016	000207 					RTS	PC
000020	005000 				1$:	CLR	R0				;					3060
000022	116102  000002 				MOVB	2(R1),R2
000026	042702  177770 				BIC	#177770,R2
000032	020227  000004 				CMP	R2,#4
000036	005500 					ADC	R0
000040	000207 					RTS	PC				;					3028

; Routine Size:  17 words,	Routine Base:  $CODE$ + 6246
; Maximum stack depth per invocation:  4 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 105
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (36)

;	  3062	routine NULL (PS, PC) : LINKAGE_INTERRUPT novalue =
;	  3063	
;	  3064	!++
;	  3065	! FUNCTIONAL DESCRIPTION:
;	  3066	!
;	  3067	!
;	  3068	! FORMAL PARAMETERS:
;	  3069	!	None
;	  3070	!
;	  3071	! IMPLICIT INPUTS:
;	  3072	!	None
;	  3073	!
;	  3074	! IMPLICIT OUTPUTS:
;	  3075	!	None
;	  3076	!
;	  3077	! ROUTINE VALUE:
;	  3078	! COMPLETION CODES:
;	  3079	!	None
;	  3080	!
;	  3081	! SIDE EFFECTS:
;	  3082	!	None
;	  3083	!--
;	  3084	
;	  3085	    begin
;	  3086	    NO_OPERATION
;	  3087	    end;				!of routine NULL


						.SBTTL	NULL
000000	000002 				NULL:	RTI					;					3062

; Routine Size:  1 word,	Routine Base:  $CODE$ + 6310
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 106
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (37)

;	  3088	routine NXM_CATCHER (PS, PC) : LINKAGE_INTERRUPT novalue =
;	  3089	
;	  3090	!++
;	  3091	! FUNCTIONAL DESCRIPTION:
;	  3092	!
;	  3093	!
;	  3094	! FORMAL PARAMETERS:
;	  3095	!	None
;	  3096	!
;	  3097	! IMPLICIT INPUTS:
;	  3098	!	None
;	  3099	!
;	  3100	! IMPLICIT OUTPUTS:
;	  3101	!	None
;	  3102	!
;	  3103	! ROUTINE VALUE:
;	  3104	! COMPLETION CODES:
;	  3105	!	None
;	  3106	!
;	  3107	! SIDE EFFECTS:
;	  3108	!	None
;	  3109	!--
;	  3110	
;	  3111	    begin
;	  3112	    PS = .PS + 1;
;	  3113	    end;				!of routine NXM_CATCHER


						.SBTTL	NXM.CATCHER
000000	005266  000002 			NXM.CATCHER:
						INC	2(SP)				; PS					3112
000004	000002 					RTI					;					3088

; Routine Size:  3 words,	Routine Base:  $CODE$ + 6312
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 107
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (38)

;	  3114	routine NXM_TESTER (ADR) : LINKAGE_ADR_NO_CARRY =
;	  3115	
;	  3116	!++
;	  3117	! FUNCTIONAL DESCRIPTION:
;	  3118	!
;	  3119	!
;	  3120	! FORMAL PARAMETERS:
;	  3121	!	None
;	  3122	!
;	  3123	! IMPLICIT INPUTS:
;	  3124	!	None
;	  3125	!
;	  3126	! IMPLICIT OUTPUTS:
;	  3127	!	None
;	  3128	!
;	  3129	! ROUTINE VALUE:
;	  3130	! COMPLETION CODES:
;	  3131	!	None
;	  3132	!
;	  3133	! SIDE EFFECTS:
;	  3134	!	None
;	  3135	!--
;	  3136	
;	  3137	    begin
;	  3138	    .(.ADR)<0, 8, 0>
;	  3139	    end;				!of routine NXM_TESTER


						.SBTTL	NXM.TESTER
000000	005000 				NXM.TESTER:
						CLR	R0				;					3114
000002	151100 					BISB	(R1),R0				; ADR,*
000004	000207 					RTS	PC

; Routine Size:  3 words,	Routine Base:  $CODE$ + 6320
; Maximum stack depth per invocation:  0 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 108
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (39)

;	  3140	routine PANIC : MCB_ novalue =
;	  3141	
;	  3142	!++
;	  3143	! FUNCTIONAL DESCRIPTION:
;	  3144	!
;	  3145	!
;	  3146	! FORMAL PARAMETERS:
;	  3147	!	None
;	  3148	!
;	  3149	! IMPLICIT INPUTS:
;	  3150	!	None
;	  3151	!
;	  3152	! IMPLICIT OUTPUTS:
;	  3153	!	None
;	  3154	!
;	  3155	! ROUTINE VALUE:
;	  3156	! COMPLETION CODES:
;	  3157	!	None
;	  3158	!
;	  3159	! SIDE EFFECTS:
;	  3160	!	None
;	  3161	!--
;	  3162	
;	  3163	    begin
;	  3164	
;	  3165	    macro
;	M 3166		POP (address) =
;	  3167		    (builtin sp; map sp : ref vector; (address) = .sp [0]; sp = sp [1]) %,
;	M 3168		PUSH (value) =
;	  3169		    (builtin sp; map sp : ref vector; (sp = sp [-1]) = (value)) %;
;	  3170	
;	  3171	    (external PS; CEX$GW_PANIC_STATUS = .PS);
;	  3172	    (external PS; PS = 3^12 + 7^5);
;	  3173	    (builtin sp; CEX$GA_PANIC_STACK = .sp);
;	  3174	    (builtin sp; sp = CEX$GA_PANIC_STACK);
;	  3175	    (builtin r5; PUSH (.r5));
;	  3176	    (builtin r4; PUSH (.r4));
;	  3177	    (builtin r3; PUSH (.r3));
;	  3178	    (builtin r2; PUSH (.r2));
;	  3179	    (builtin r1; PUSH (.r1));
;	  3180	    (builtin r0; PUSH (.r0));
;	  3181	    (external KISAR6; PUSH (.KISAR6));
;	  3182	    (builtin mfpi; PUSH (mfpi (sp)));
;	  3183	    PUSH (.VEC$AA_POWER_FAILURE [0]);
;	  3184	    VEC$AA_POWER_FAILURE [0] = NULL;
;	  3185	    begin
;	  3186	
;	  3187	    global register
;	  3188		BUFFER = 2,
;	  3189		LIST = 5;
;	  3190	
;	  3191	    if (LIST = .CEX$AA_PROCESS_TABLE [0]) neq 0
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 109
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (39)

;	  3192	    then
;	  3193		begin
;	  3194	
;	  3195		map
;	  3196		    LIST : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  3197	
;	  3198		MAP$ (.LIST [PDT$W_DATA_BIAS]);
;	  3199		if (LIST = .LIST [PDT$A_DATA_ADDRESS]) neqa 0
;	  3200		then
;	  3201		    begin
;	  3202	
;	  3203		    map
;	  3204			LIST : ref vector;
;	  3205	
;	  3206		    BUFFER = .LIST;
;	  3207		    LIST = .LIST + .LIST [0];
;	  3208		    PDUMP ();
;	  3209		    end;
;	  3210	
;	  3211		end;
;	  3212	
;	  3213	    end;
;	  3214	    POP (VEC$AA_POWER_FAILURE [0]);
;	  3215	    begin
;	  3216	
;	  3217	    local
;	  3218		DUMPER_BIAS;
;	  3219	
;	  3220	    if (DUMPER_BIAS = .CEX$GR_DUMP_EXCEPTION [EXV$A_ENABLE_DATA]) neqa 0
;	  3221	    then
;	  3222		begin
;	  3223		$CEX_PHDDEF
;	  3224	
;	  3225		bind
;	  3226		    HEADER = %o'120000' : block field ($CEX_PHDFIELDS);
;	  3227	
;	  3228		external
;	  3229		    KISAR5 : volatile,
;	  3230		    KISAR6 : volatile;
;	  3231	
;	  3232		KISAR6 = .KISAR5;
;	  3233		(builtin pc; pc = .pc + %o'20000');
;	  3234		KISAR5 = .DUMPER_BIAS;
;	  3235		(builtin pc; pc = .HEADER [PHD$A_SIGNAL]);
;	  3236		end
;	  3237	    else
;	  3238		while TRUE do (builtin halt; halt ());
;	  3239	
;	  3240	    end;
;	  3241	    end;				!of routine PANIC
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 110
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (39)

	120000 				HEADER=		    -60000


						.SBTTL	PANIC
000000	013737  000000G 000000G		PANIC:	MOV	PS,.PANPS			;					3171
000006	012737  030340  000000G			MOV	#30340,PS			;					3172
000014	010637  000000G				MOV	SP,.PANSP			; SP,*					3173
000020	012706  000000G				MOV	#.PANSP,SP			; *,SP					3174
000024	010546 					MOV	R5,-(SP)			; R5,SP					3175
000026	010446 					MOV	R4,-(SP)			; R4,SP					3176
000030	010346 					MOV	R3,-(SP)			; R3,SP					3177
000032	010246 					MOV	R2,-(SP)			; R2,SP					3178
000034	010146 					MOV	R1,-(SP)			; R1,SP					3179
000036	010046 					MOV	R0,-(SP)			; R0,SP					3180
000040	013746  000000G				MOV	KISAR6,-(SP)			; *,SP					3181
000044	162706  000002 				SUB	#2,SP				; *,SP					3182
000050	006506 					MFPI	SP				; SP
000052	011666  000002 				MOV	(SP),2(SP)			; *,*(SP)
000056	013716  000024 				MOV	@#24,(SP)			; *,SP					3183
000062	012737  006310' 000024 			MOV	#NULL,@#24			;					3184
000070	013705  000000G				MOV	.PDBVB,R5			; *,LIST				3191
000074	001414 					BEQ	1$
000076	016537  000004  000000G			MOV	4(R5),KISAR6			; *(LIST),*				3198
000104	016505  000006 				MOV	6(R5),R5			; *(LIST),LIST				3199
000110	001406 					BEQ	1$
000112	010502 					MOV	R5,R2				; LIST,BUFFER				3206
000114	010500 					MOV	R5,R0				; LIST,*				3207
000116	061500 					ADD	(R5),R0				; LIST,*
000120	010005 					MOV	R0,R5				; *,LIST
000122	004737  000000V				JSR	PC,PDUMP			;					3208
000126	012637  000024 			1$:	MOV	(SP)+,@#24			; SP,*					3214
000132	013700  000006G				MOV	.MEXVD+6,R0			; *,DUMPER.BIAS				3220
000136	001412 					BEQ	3$
000140	013737  000000G 000000G			MOV	KISAR5,KISAR6			;					3232
000146	062707  020000 				ADD	#20000,PC			; *,PC					3233
000152	010037  000000G				MOV	R0,KISAR5			; DUMPER.BIAS,*				3234
000156	013707  120010 				MOV	@#120010,PC			; *,PC					3235
000162	000207 				2$:	RTS	PC				;					3220
000164	000000 				3$:	HALT					;					3238
000166	000776 					BR	3$

; Routine Size:  60 words,	Routine Base:  $CODE$ + 6326
; Maximum stack depth per invocation:  1 word
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 111
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (40)

;	  3242	routine PDUMP : LINKAGE_LIST_BUFFER novalue =
;	  3243	
;	  3244	!++
;	  3245	! FUNCTIONAL DESCRIPTION:
;	  3246	!
;	  3247	!
;	  3248	! FORMAL PARAMETERS:
;	  3249	!	None
;	  3250	!
;	  3251	! IMPLICIT INPUTS:
;	  3252	!	None
;	  3253	!
;	  3254	! IMPLICIT OUTPUTS:
;	  3255	!	None
;	  3256	!
;	  3257	! ROUTINE VALUE:
;	  3258	! COMPLETION CODES:
;	  3259	!	None
;	  3260	!
;	  3261	! SIDE EFFECTS:
;	  3262	!	None
;	  3263	!--
;	  3264	
;	  3265	    begin
;	  3266	
;	  3267	    external register
;	  3268		BUFFER : ref vector,
;	  3269		LIST: ref vector;
;	  3270	
;	  3271	    local
;	  3272		BEGIN_ADR : ref vector,
;	  3273		END_ADR : ref vector,
;	  3274		NEW_WINDOW : ref vector,
;	  3275		NXM_SAVE;
;	  3276	
;	  3277	    NXM_SAVE = .VEC$AA_ADDRESS_ERROR [0];
;	  3278	    VEC$AA_ADDRESS_ERROR [0] = NXM_CATCHER;
;	  3279	
;	  3280	    if
;	  3281		begin
;	  3282		BEGIN_ADR = .LIST [0];
;	  3283		LIST = LIST [1];
;	  3284		.BEGIN_ADR eqla 0
;	  3285		end
;	  3286	    then return;
;	  3287	
;	  3288	    do
;	  3289		begin
;	  3290		NEW_WINDOW = 0;
;	  3291		END_ADR = .LIST [0];
;	  3292		LIST = LIST [1];
;	  3293	
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 112
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (40)

;	  3294		do
;	  3295		    begin
;	  3296	
;	  3297		    if .NEW_WINDOW eql 0
;	  3298		    then
;	  3299			begin
;	  3300	
;	  3301			if not NXM (BEGIN_ADR [0])
;	  3302			then
;	  3303			    begin
;	  3304			    BUFFER [0] = BEGIN_ADR [0];
;	  3305			    BUFFER = BUFFER [1];
;	  3306			    NEW_WINDOW = .BUFFER;
;	  3307			    BUFFER [0] = 0;
;	  3308			    BUFFER = BUFFER [1];
;	  3309	
;	  3310			    if .BUFFER lssa .LIST
;	  3311			    then
;	  3312				begin
;	  3313				BUFFER [0] = .BEGIN_ADR [0];
;	  3314				BUFFER = BUFFER [1];
;	  3315				NEW_WINDOW [0] = .BEGIN_ADR;
;	  3316				end
;	  3317			    else
;	  3318				begin
;	  3319				VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
;	  3320				return
;	  3321				end;
;	  3322	
;	  3323			    end;
;	  3324	
;	  3325			end
;	  3326		    else
;	  3327			begin
;	  3328	
;	  3329			local
;	  3330			    DATA;
;	  3331	
;	  3332			if NXM (BEGIN_ADR [0])
;	  3333			then
;	  3334			    begin
;	  3335			    NEW_WINDOW = 0;
;	  3336			    BUFFER [0] = 0;
;	  3337			    end
;	  3338			else
;	  3339	
;	  3340			    if .BUFFER lssa .LIST
;	  3341			    then
;	  3342				begin
;	  3343				BUFFER [0] = .BEGIN_ADR [0];
;	  3344				BUFFER = BUFFER [1];
;	  3345				NEW_WINDOW [0] = .BEGIN_ADR;
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 113
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (40)

;	  3346				end
;	  3347			    else
;	  3348				begin
;	  3349				VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
;	  3350				return
;	  3351				end;
;	  3352	
;	  3353			end;
;	  3354	
;	  3355		    end
;	  3356		while (BEGIN_ADR = BEGIN_ADR [1]) leqa .END_ADR;
;	  3357	
;	  3358		end
;	  3359	    while
;	  3360		begin
;	  3361		BEGIN_ADR = .LIST [0];
;	  3362		LIST = LIST [1];
;	  3363		.BEGIN_ADR neqa 0
;	  3364		end;
;	  3365	
;	  3366	    VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
;	  3367	    end;				!of routine PDUMP


						.SBTTL	PDUMP
000000	005746 				PDUMP:	TST	-(SP)				;					3242
000002	013704  000004 				MOV	@#4,R4				; *,NXM.SAVE				3277
000006	012737  006312' 000004 			MOV	#NXM.CATCHER,@#4		;					3278
000014	012501 					MOV	(R5)+,R1			; LIST,BEGIN.ADR			3282
000016	001437 					BEQ	8$				;					3286
000020	005003 				1$:	CLR	R3				; NEW.WINDOW				3290
000022	012516 					MOV	(R5)+,(SP)			; LIST,END.ADR				3291
000024	005703 				2$:	TST	R3				; NEW.WINDOW				3297
000026	001011 					BNE	3$
000030	004737  006320'				JSR	PC,NXM.TESTER			;					3301
000034	103420 					BCS	6$
000036	010122 					MOV	R1,(R2)+			; BEGIN.ADR,BUFFER			3304
000040	010203 					MOV	R2,R3				; BUFFER,NEW.WINDOW			3306
000042	005022 					CLR	(R2)+				; BUFFER				3307
000044	020205 					CMP	R2,R5				; BUFFER,LIST				3310
000046	103021 					BHIS	7$
000050	000410 					BR	5$				;					3313
000052	004737  006320'			3$:	JSR	PC,NXM.TESTER			;					3332
000056	103003 					BHIS	4$
000060	005003 					CLR	R3				; NEW.WINDOW				3335
000062	005012 					CLR	(R2)				; BUFFER				3336
000064	000404 					BR	6$				;					3332
000066	020205 				4$:	CMP	R2,R5				; BUFFER,LIST				3340
000070	103010 					BHIS	7$
000072	011122 				5$:	MOV	(R1),(R2)+			; BEGIN.ADR,BUFFER			3343
000074	010113 					MOV	R1,(R3)				; BEGIN.ADR,NEW.WINDOW			3345
000076	062701  000002 			6$:	ADD	#2,R1				; *,BEGIN.ADR				3356
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 114
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (40)

000102	020116 					CMP	R1,(SP)				; BEGIN.ADR,END.ADR
000104	101747 					BLOS	2$
000106	012501 					MOV	(R5)+,R1			; LIST,BEGIN.ADR			3361
000110	001343 					BNE	1$				;					3363
000112	010437  000004 			7$:	MOV	R4,@#4				; NXM.SAVE,*				3366
000116	005726 				8$:	TST	(SP)+				;					3242
000120	000207 					RTS	PC

; Routine Size:  41 words,	Routine Base:  $CODE$ + 6516
; Maximum stack depth per invocation:  2 words
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 115
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (41)

;	  3368	routine SCHEDULE : MCB_ novalue =
;	  3369	
;	  3370	!++
;	  3371	! FUNCTIONAL DESCRIPTION:
;	  3372	!
;	  3373	!
;	  3374	! FORMAL PARAMETERS:
;	  3375	!	None
;	  3376	!
;	  3377	! IMPLICIT INPUTS:
;	  3378	!	None
;	  3379	!
;	  3380	! IMPLICIT OUTPUTS:
;	  3381	!	None
;	  3382	!
;	  3383	! ROUTINE VALUE:
;	  3384	! COMPLETION CODES:
;	  3385	!	None
;	  3386	!
;	  3387	! SIDE EFFECTS:
;	  3388	!	None
;	  3389	!--
;	  3390	
;	  3391	    begin
;	  3392	
;	  3393	    external
;	  3394		%name ('$INTCT'),
;	  3395		%name ('$PWRFL');
;	  3396	
;	  3397	    do
;	  3398		begin
;	  3399		CEX$GH_SCHEDULING_REQUESTS = 0;
;	  3400	
;	  3401		selectone TRUE of
;	  3402		    set
;	  3403		    [.CEX$AA_SYNCH_QUEUE [0] neq 0] :
;	  3404			begin
;	  3405	
;	  3406			register
;	  3407			    SYN = 4 : ref block [SYN$K_LENGTH] field ($CEX_SYNFIELDS);
;	  3408	
;	  3409			begin
;	  3410	
;	  3411			local
;	  3412			    PS_SAVE;
;	  3413	
;	  3414			external
;	  3415			    PS;
;	  3416	
;	  3417			PS_SAVE = .PS;
;	  3418			PS <0, 8> = 7^5;
;	  3419			SYN = .CEX$AA_SYNCH_QUEUE [0];
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 116
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (41)

;	  3420	
;	  3421			if (CEX$AA_SYNCH_QUEUE [0] = .SYN [SYN$A_LINK]) eqla 0
;	  3422			then
;	  3423			    CEX$AA_SYNCH_QUEUE [1] = CEX$AA_SYNCH_QUEUE [0];
;	  3424	
;	  3425			PS <0, 8> = .PS_SAVE;
;	  3426			end;
;	  3427			SYN [SYN$A_LINK] = 0;
;	  3428			CEX$GW_SYNCH_COUNT = .CEX$GW_SYNCH_COUNT + 1;
;	  3429	
;	  3430			if .CEX$GW_SYNCH_COUNT eql 0
;	  3431			then
;	  3432			    CEX$GW_SYNCH_COUNT = .CEX$GW_SYNCH_COUNT - 1;
;	  3433	
;	  3434			begin
;	  3435	
;	  3436			local
;	  3437			    DISPATCH,
;	  3438			    PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
;	  3439	
;	  3440			PROCESS = .SYN [SYN$A_PROCESS];
;	  3441			DISPATCH = .SYN [SYN$A_DISPATCH];
;	  3442			SYN [SYN$A_PROCESS] = 0;
;	  3443			CEX$$SYNCHRONIZE_PROCESS (.PROCESS, .DISPATCH);
;	  3444			end;
;	  3445			end;
;	  3446		    [.%name ('$PWRFL') neq 0] :
;	  3447			begin
;	  3448			CEX$GA_CEX_FORK_BLOCK = 0;
;	  3449			return;
;	  3450			end;
;	  3451		    [.%name ('$INTCT') geq 0] :
;	  3452			begin
;	  3453			CEX$GH_SCHEDULING_REQUESTS = .CEX$GH_SCHEDULING_REQUESTS + 1;
;	  3454			return;
;	  3455			end;
;	  3456		    [.CEX$AA_CCB_QUEUE_L [0] neq 0] :
;	  3457			begin
;	  3458	
;	  3459			register
;	  3460			    CCB = 4 : ref block [CCB$K_LENGTH] field ($CEX_CCBFIELDS);
;	  3461	
;	  3462			CCB = .CEX$AA_CCB_QUEUE_L [0];
;	  3463	
;	  3464			if (CEX$AA_CCB_QUEUE_L [0] = .CCB [CCB$A_LINK]) eqla 0
;	  3465			then
;	  3466			    CEX$AA_CCB_QUEUE_L [1] = CEX$AA_CCB_QUEUE_L [0];
;	  3467	
;	  3468			CCB [CCB$A_LINK] = 0;
;	  3469			CEX$GW_CCB_DISPATCH_COUNT = .CEX$GW_CCB_DISPATCH_COUNT + 1;
;	  3470	
;	  3471			if .CEX$GW_CCB_DISPATCH_COUNT eql 0
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 117
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (41)

;	  3472			then
;	  3473			    CEX$GW_CCB_DISPATCH_COUNT = .CEX$GW_CCB_DISPATCH_COUNT - 1;
;	  3474	
;	  3475			CEX$$DISPATCH_PROCESS (.CCB [CCB$A_DESTINATION_PROCESS],
;	  3476			    .CCB [CCB$B_FUNCTION], .CCB [CCB$B_MODIFIER]);
;	  3477			end;
;	  3478		    [.CEX$AA_CCB_QUEUE_H [0] neq 0] :
;	  3479			begin
;	  3480	
;	  3481			register
;	  3482			    CCB = 4 : ref block [CCB$K_LENGTH] field ($CEX_CCBFIELDS);
;	  3483	
;	  3484			CCB = .CEX$AA_CCB_QUEUE_H [0];
;	  3485	
;	  3486			if (CEX$AA_CCB_QUEUE_H [0] = .CCB [CCB$A_LINK]) eqla 0
;	  3487			then
;	  3488			    CEX$AA_CCB_QUEUE_H [1] = CEX$AA_CCB_QUEUE_H [0];
;	  3489	
;	  3490			CCB [CCB$A_LINK] = 0;
;	  3491			CEX$GW_CCB_DISPATCH_COUNT = .CEX$GW_CCB_DISPATCH_COUNT + 1;
;	  3492	
;	  3493			if .CEX$GW_CCB_DISPATCH_COUNT eql 0
;	  3494			then
;	  3495			    CEX$GW_CCB_DISPATCH_COUNT = .CEX$GW_CCB_DISPATCH_COUNT - 1;
;	  3496	
;	  3497			CEX$$DISPATCH_PROCESS (.CCB [CCB$A_DESTINATION_PROCESS],
;	  3498			    .CCB [CCB$B_FUNCTION], .CCB [CCB$B_MODIFIER]);
;	  3499			end;
;	  3500		    [otherwise] :
;	  3501			return;
;	  3502		    tes;
;	  3503	
;	  3504		end
;	  3505	    while TRUE;
;	  3506	
;	  3507	    end;				!of routine SCHEDULE


						.GLOBL	$INTCT, $PWRFL


						.SBTTL	SCHEDULE
000000	005037  000000G			SCHEDULE:
000000					1$:	CLR	.CEXRQ				;					3399
000004	005737  000000G				TST	.SYNQH				;					3403
000010	001436 					BEQ	4$
000012	013700  000000G				MOV	PS,R0				; *,PS.SAVE				3417
000016	112737  000340  000000G			MOVB	#340,PS				;					3418
000024	013704  000000G				MOV	.SYNQH,R4			; *,SYN					3419
000030	011437  000000G				MOV	(R4),.SYNQH			; SYN,*					3421
000034	001003 					BNE	2$
000036	012737  000000G 000002G			MOV	#.SYNQH,.SYNQH+2		;					3423
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 118
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (41)

000044	110037  000000G			2$:	MOVB	R0,PS				; PS.SAVE,*				3425
000050	005014 					CLR	(R4)				; SYN					3427
000052	005237  000000G				INC	.SYNCT				;					3428
000056	001002 					BNE	3$				;					3430
000060	005337  000000G				DEC	.SYNCT				;					3432
000064	016400  000002 			3$:	MOV	2(R4),R0			; *(SYN),PROCESS			3440
000070	016402  000004 				MOV	4(R4),R2			; *(SYN),DISPATCH			3441
000074	005064  000002 				CLR	2(R4)				; *(SYN)				3442
000100	004737  000000G				JSR	PC,$SYNDS			;					3443
000104	000735 					BR	1$				;					3401
000106	005737  000000G			4$:	TST	$PWRFL				;					3446
000112	001403 					BEQ	5$
000114	005037  000000G				CLR	.FRKBK				;					3448
000120	000207 					RTS	PC				;					3447
000122	005737  000000G			5$:	TST	$INTCT				;					3451
000126	002403 					BLT	7$
000130	005237  000000G				INC	.CEXRQ				;					3453
000134	000207 				6$:	RTS	PC				;					3452
000136	005737  000000G			7$:	TST	.CBLQH				;					3456
000142	001415 					BEQ	9$
000144	013704  000000G				MOV	.CBLQH,R4			; *,CCB					3462
000150	011437  000000G				MOV	(R4),.CBLQH			; CCB,*					3464
000154	001003 					BNE	8$
000156	012737  000000G 000002G			MOV	#.CBLQH,.CBLQH+2		;					3466
000164	005014 				8$:	CLR	(R4)				; CCB					3468
000166	005237  000000G				INC	.DSPCT				;					3469
000172	001022 					BNE	12$				;					3471
000174	000417 					BR	11$				;					3473
000176	005737  000000G			9$:	TST	.CBHQH				;					3478
000202	001754 					BEQ	6$
000204	013704  000000G				MOV	.CBHQH,R4			; *,CCB					3484
000210	011437  000000G				MOV	(R4),.CBHQH			; CCB,*					3486
000214	001003 					BNE	10$
000216	012737  000000G 000002G			MOV	#.CBHQH,.CBHQH+2		;					3488
000224	005014 				10$:	CLR	(R4)				; CCB					3490
000226	005237  000000G				INC	.DSPCT				;					3491
000232	001002 					BNE	12$				;					3493
000234	005337  000000G			11$:	DEC	.DSPCT				;					3495
000240	016400  000036 			12$:	MOV	36(R4),R0			; *(CCB),*				3497
000244	005002 					CLR	R2				;					3498
000246	156402  000012 				BISB	12(R4),R2			; *(CCB),*
000252	005003 					CLR	R3
000254	156403  000013 				BISB	13(R4),R3			; *(CCB),*
000260	004737  000000G				JSR	PC,$PRCDS			;					3497
000264	000645 					BR	1$				;					3401

; Routine Size:  91 words,	Routine Base:  $CODE$ + 6640
; Maximum stack depth per invocation:  1 word


;	  3508	end
;	  3509	eludom
CEX								28-May-1985 14:17:23	TOPS-20 Bliss-16 3(552)		    Page 119
X03420								29-Dec-1982 15:31:45	DNET61:<MCB.CEX>CEX.B16.1 (41)




;					OTS external references
						.GLOBL	$SAVE5, $SAVE4, $SAVE3, $SAVE2
						.GLOBL	$IGNAL, BL$MOV


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 $PLIT$				   49	    RO ,  D  ,  LCL,  REL,  CON
;	 ......				   16	    RW ,  D  ,  LCL,  REL,  CON
;	 $CODE$				 1835	    RO ,  I  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  DNET61:<MCB.BLIS16>XPORT.L16.1	       568         2         0         0
;  DNET61:<MCB.MCB>MCBLIB.L16.1		       372        65        17         0
;  DNET61:<MCB.MCB>RSXLIB.L16.1		       317       145        45         0
;  DNET61:<MCB.CEX>CEXLIB.L16.6		       123       111        90         0





; Size:		1835 code + 65 data words
; Run Time:	   00:50.0
; Elapsed Time:	   01:17.3
; Memory Used:	70 pages
; Compilation Complete
ACTUALCOUNT			 424	 427	 492	 495	 548	 551	 617	 620	 662	 665	 716	 719
				 759	 762	 819	 822	 838	 860	 922	 925	1010	1013	1037	1134
				1137	1179	1182
ACTUALPARAMETER			 425	 493	 503	 549	 561	 618	 622	 628	 632	 663	 672	 679
				 717	 721#	 727	 729#	 760	 764#	 770	 789#	 820	 834	 845	 867
				 923	 932	 942	1011	1017#	1046	1081#	1135	1144	1148	1180	1196
				1206	1210
ADDR				1380	1418	1422	1439	1443#	1444#	2142	2144#	2145#	2146#	2147#	2148#
				2149#	2150#	2151#	2152#
ADDRESS				1319	1321#	1333	1336	1338#	1339#	1340#	1341#	1342#	1343#	1344	1345#
				1429	1431#	1451	1453#	1454	1455#	3166	3167
ADR				3114	3138
ALLOCATE_BUFFERS		 180	1226*	1310	1405
ALLOCATE_BUFFER_POOL		 181	1261*	2450
ALLOCATE_CCB_AND_BUFFER_POOL	 182	1351*	2439	2440
ASSIGN_PDB			2619	2623	2642	2654	2680	2691	2714
BEGIN_ADR			3272	3282#	3284	3301	3304	3313	3315	3332	3343	3345	3356#	3361#
				3363
BFH$A_ADDRESS			1333	1339
BFH$A_PROCESS			1341
BFH$H_SIZE			1340
BFH$K_LENGTH			1305	1319	1342	1888
BFH$W_BIAS			1332	1338
BFP				1261	1287	1293	1305	1312#	1313#	1315#	1325#	1329	1331	1335#	1336#
				1343	1877	1879#	1888	1892#	1909	1911#	1916	1919#	1923#	2163	2189
				2191	2196#	2197#	2198#	2199#	2202	2444	2446#	2450	2451#
BFP$A_QUEUE_LAST_ADDR		1329	1336	2198
BFP$H_ALLOCATED			1315
BFP$H_ALLOCATION_MAXIMUM	1293	1888	1916	1919
BFP$H_ALLOCATION_MINIMUM	1916
BFP$H_FREE_COUNT		1325
BFP$H_SIZE			1305	1343	1888	2196	2197
BFP$K_LENGTH			 325	1287	1877	1892	1909	1923	2189	2199	2444	2451
BFP$W_ALLOCATED_BIAS		1312
BFP$W_ALLOCATED_BLKS		1313
BFP$W_QUEUE_FIRST_BIAS		2198
BFP$W_QUEUE_LAST_BIAS		1331	1335
BFP_COUNT			2163	2192	2194
BIAS				1033	1035#	1052#	1074	1075	1252	1254#	1256	1258	1259	1290	1310#
				1312	1332	1335	1337	1344#	1381	1386#	1405#	1409	1431	1450	1454#
				2907	2919#	2924	2926	2930#
BKP$H_SIZE			 268#	1851	2159#
BKP$W_LINK			 267#	2158#
BLISS16				   3
BLKS				1226	1256	1298	1305	1306	1307	1310	1313	1393	1400	1401	1402
				1405	1410	1866	1869	1870	1871	1872	2098	2121#	2123	2155#
BLKS_AVAILABLE			1836	1846#	1851#	1862
BLKS_LEFT			1860	1862#	1872#	1891#	1897	1903#	1920#	1928
BUF				 670	 672#	 673#	 683#	 684#	 685#	 937	 942#	 944	 955	 966	2244
				2246#	2248	2249	2250	2251	2252	2253#	2254	2255	2256	2257	2258
				2260#	2463	2466	2470	2471
BUFFER				 161#	3188#	3206#	3268	3304#	3305#	3306	3307#	3308#	3310	3313#	3314#
				3336#	3340	3343#	3344#
CALL$				 167	 168	 169	 170	 171	 172	 173	 174	 175	 176	 177	 178
				 398#	 466#	 522#	 591#	 636#	 690#	 733#	 793#	 896#	 984#	1108#	1153#
CBP				1351	1377	1384	1388	1400	1409#	1410#	1422#	1423#	1425#	1447	1453
				1458#	1462	1466#
CBP$A_ALLOCATED_ADDRESS		1422
CBP$A_QUEUE_LAST		1462	1466
CBP$H_ALLOCATED			1425
CBP$H_ALLOCATION_MAXIMUM	1384	1869	1899	1902	2249	2252
CBP$H_ALLOCATION_MINIMUM	1899	2248	2251
CBP$H_FREE_COUNT		1458
CBP$H_SIZE			1388	1400	1447	1453	1869
CBP$K_LENGTH			 328	 356	1377
CBP$W_ALLOCATED_BIAS		1409
CBP$W_ALLOCATED_BLKS		1410
CBP$W_ALLOCATED_LENGTH		1423
CCB				1437	1439#	1450#	1451#	1452#	1464	1466	3460#	3462#	3464	3468#	3475
				3476	3482#	3484#	3486	3490#	3497	3498
CCB$A_ADDRESS			1451
CCB$A_DESTINATION_PROCESS	3475	3497
CCB$A_LINK			1464	3464	3468	3486	3490
CCB$B_FUNCTION			3476	3498
CCB$B_MODIFIER			3476	3498
CCB$K_LENGTH			1418	1437	1441	3460	3482
CCB$V_RDB			1452
CCB$W_BIAS			1450
CE$ACV				 514	 583	1050
CE$BFI				2117
CE$BFP				2110
CE$BFS				1928	2126
CE$CBA				1420
CE$DSP				1208
CE$EXV				 834
CE$LIX				 630	 681	 932
CE$PIX				 773	 877	 949	 953	 960	 964	 971	 975
CE$PRI				1212
CE$RBA				1407
CE$RES				1062	1106	1146	1216
CE$VCF				 579
CE$VCU				1204
CE$VEC				 565	1200
CECLK				 183	1472*	2236
CEFRK				 184	1511*	1606
CENOP				 185	 304	1540*
CEPWF				 186	 306	1566*
CETIM				 187	 305	1655*
CEX				   1#	 309
CEX$$ADDRESS_ERROR_TRAP		 374	2370
CEX$$ADD_32			 373*	1306	1401	1870	1889
CEX$$ALLOCATE_CORE		 375	1256
CEX$$BREAKPOINT_TRAP		 376	2372
CEX$$CLEAR_PROCESS		 167	 290	 398*
CEX$$CLEAR_PROCESS_NAME		 168	 291	 466*
CEX$$CLEAR_VECTOR		 169	 292	 522*
CEX$$DISPATCH_PROCESS		 377	1507	1645	1729	3475	3497
CEX$$DIVIDE_32			 378
CEX$$EMT_INSTRUCTION_TRAP	 379	2375
CEX$$ENTER_CEX			 380	1500	1535	1615	1685
CEX$$EXIT_CEX			 381	1509	1538	1653	1808
CEX$$GET_DEVICE_NAME		 170	 293	 591*
CEX$$GET_LINE_PROCESSES		 171	 294	 636*
CEX$$GET_PROCESS_INDEX		 172	 295	 690*
CEX$$GET_PROCESS_NAME		 173	 296	 733*
CEX$$ILLEGAL_INSTRUCTION_TRAP	 382	2371
CEX$$IOT_INSTRUCTION_TRAP	 383	2373
CEX$$MULTIPLY_32		 384	1305	1400	1869	1888
CEX$$PARITY_ERROR_TRAP		 385	2377
CEX$$POWER_FAILURE_TRAP		 386	2374
CEX$$SEGMENT_FAULT_TRAP		 387	2378
CEX$$SET_EXCEPTION		 174	 297	 793*
CEX$$SET_LINE_PROCESSES		 175	 298	 896*
CEX$$SET_PROCESS		 176	 299	 984*
CEX$$SET_PROCESS_NAME		 177	 300	1108*
CEX$$SET_VECTOR			 178	 301	1153*
CEX$$SHIFT_32			 388	1307	1402	1871	1890	2926	2935
CEX$$SYNCHRONIZE_PROCESS	 389	3443
CEX$$TRAP_INSTRUCTION_TRAP	 390	2376
CEX$AA_CCB_QUEUE_H		 329	3478	3484	3486#	3488#
CEX$AA_CCB_QUEUE_L		 330	3456	3462	3464#	3466#
CEX$AA_PROCESS_TABLE		 351	 450	 771	 875	 951	 962	 973	1023	1083	1085	1087	1088
				1635	1691	2301	2304	2567	2574	2581	2716	2781	3025	3191
CEX$AA_SYNCH_QUEUE		 365	 455	 457#	 459#	3403	3419	3421#	3423#
CEX$AG_CCB_DSR_ALLOCATION	 327
CEX$AG_PROCESS_DATA_BASE	 348	 429
CEX$AG_RDB_CORE_ALLOCATION	 354
CEX$AG_RDB_DSR_ALLOCATION	 355
CEX$AR_CEX_PROCESS		 450#	 453
CEX$AR_CEX_SYNCH_BLOCK		 332	 445	 452#	 453#	 455#	 457	 459	2971#
CEX$AW_RANDOM_NUMBER_SEED	 353	2407	2408	2427#	2428#
CEX$CFG_UNIBUS_MAPPING		 145	 146#	1611	2814
CEX$GA_BUFFER_POOL_TABLE	 325	1879	1911	2191#	2446
CEX$GA_CEX_FORK_BLOCK		 331	1536#	1609#	3448#
CEX$GA_CURRENT_PROCESS		 333	 433#	 512	 581	1035	1149	1220
CEX$GA_DTE_BOOT_ROM_ADDRESS	 335	2292#
CEX$GA_PANIC_STACK		 343	3173#	3174
CEX$GA_PROCESS_NAME_TABLE	 350	2060	2765#
CEX$GA_PROCESS_TABLE_END	 352	1095	1097#	1103	1648	1739	2720	2722#	2973	2996	2998#
CEX$GA_SHORT_TIMER_DISPATCH	 360	2236#
CEX$GA_SYSTEM_LINE_TABLE	 367	1961	2514	2555#
CEX$GA_UBM_DATA_BASE		 370	2937#
CEX$GB_CURRENT_PROCESS_INDEX	 334
CEX$GG_POWER_FAIL_COUNT		 345	1623#
CEX$GG_SIGNAL_STATUS		 218#	 361
CEX$GH_BUFFER_POOL_COUNT	 324	1881	1913	2192#	2448
CEX$GH_PROCESS_COUNT		 347	 770	 874	 947	 958	 969	2062	2712	2776
CEX$GH_PROCESS_NAME_COUNT	 349	2766#
CEX$GH_SCHEDULING_REQUESTS	 358	3399#	3453#
CEX$GH_SYSTEM_LINE_COUNT	 366	1959	2556#
CEX$GR_CCB_POOL			 328	2248#	2249#	2439
CEX$GR_DUMP_EXCEPTION		 336	2304#	2305#	2338#	3220
CEX$GR_INTERRUPT_4_BLOCK	 337	 394
CEX$GR_INTERRUPT_5_BLOCK	 338	 395
CEX$GR_INTERRUPT_6_BLOCK	 339	 396
CEX$GR_INTERRUPT_7_BLOCK	 340	 397
CEX$GR_LAST_CHANCE_EXCEPTION	 341	 829	2301#	2302#	2303#
CEX$GR_PRIMARY_EXCEPTION	 346	 827
CEX$GR_RDB_POOL			 356	1869	1899	1902#	2251#	2252#	2440
CEX$GR_SECONDARY_EXCEPTION	 357	 828
CEX$GW_AVG_CCB_DISPATCHES	 318	1793	1795#
CEX$GW_AVG_INTERRUPTS		 319	1775	1777#
CEX$GW_AVG_LONG_TIMERS		 320	1789	1791#
CEX$GW_AVG_SHORT_TIMERS		 321	1785	1787#
CEX$GW_AVG_SYNCHS		 322	1781	1783#
CEX$GW_BLOCK_POOL_BIAS		 323	1849	2131#
CEX$GW_CCB_DISPATCH_COUNT	 326	1793	1795	1800#	3469#	3471	3473#	3491#	3493	3495#
CEX$GW_LONG_TIMER_COUNT		 342	1723#	1725	1727#	1789	1791	1799#
CEX$GW_PANIC_STATUS		 344	3171#
CEX$GW_SHORT_TIMER_COUNT	 359	1501#	1503	1505#	1785	1787	1798#
CEX$GW_STATISTICS_INTERVAL	 362	1802	2480	2482#	2484
CEX$GW_STATISTICS_TIMER		 363	1743	1746#	1748	1802#	2484#
CEX$GW_SYNCH_COUNT		 364	1781	1783	1797#	3428#	3430	3432#
CEXTBL				 289#	 310
CEXVER				2651	2653	2654
CEX_DISPATCH			 310#
CEX_LL_ADD_LOW_HIGH		 373
CEX_LL_BLKS			 375
CEX_LL_CNT_LOW_HIGH		 388
CEX_LL_NUM_LOW_HIGH		 378
CEX_LL_NUM_NUM			 384
CEX_LL_PDB_DSP			 389
CEX_LL_PDB_FNC_MOD		 377
CH$WCHAR			 622
CHECK_BUFFER_ALLOCATIONS	 188	1810*	2438
COUNT				1291	1293#	1305	1315	1347#	1382	1384#	1400	1418	1425	1468#	1881
				1913	2062	2194	2287	2448	2516	2558	2621	2768
DATA				3330
DB				1711#	1715	1718#	1720
DCB				2700#	2702#
DCB_FIELDS			2700
DDM_PROCESS			 938	 966#	 969	 973#	 979
DEVICE				2314	2319#	2321	2327	2334#	2336	2343#
DEVICE_LIST			2317#	2319
DISPATCH			2661	2666#	2668#	2671#	2673#	2675	3437	3441#	3443
DLC_PROCESS			 939	 955#	 958	 962#	 978
DR$A_DTE_REGISTERS		2280#	2285
DSP				1187	1206#	1221
DTE$K_LENGTH			2277#	2280	2283	2296
DTE_ADDRESS			2283	2285#	2289	2296#
DUMPER_BIAS			3218	3220#	3234#
D_DSP				2702
ENB				3028	3054
END_ADR				3273	3291#	3356
EQLU				 503	1720	2005	2327	2852
EXV				 832	 834#	 836#	 850	 852	 854	 880#	 882#	 883#	 884#	 887#	 891#
EXV$A_DISPATCH			 852	 880	 884	 887	 891	2302	2305
EXV$A_ENABLE_DATA		 854	 882	2303	2338	3220
EXV$A_PROCESS			 850	 883	2301	2304
EXV$K_LENGTH			 336	 341	 346	 357	 832	 850
FALSE				 238	 247#	2111	2118	2127	3058
FC_SYS				1645
FC_TIM				1507	1729
FIND_LINE			 189	 628	 679	 932	1933*
FIND_PARTITION			 190	1048	1963*	2107	2336	2642
FIND_PROCESS_NAME		 191	 505	 727	1144	1146	2032*
FM_LTM				1729
FM_PIN				1626
FM_PWF				1621
FM_STM				1507
FORK_BLOCK			1511	1536
HALT				3238
HEADER				 779#	 786	1068#	1076	2627#	2646#	2653	2654	2695	2702	3226#	3235
HIGH				1303	1305	1306	1307	1398	1400	1401	1402	1867	1869	1870	1871
				1885	1888	1889	1890
INDEX				2562	2564#	2567	2571#	2574	2578#	2581	2772	2774#	2776	2781
INITIALIZE_BLOCK_POOL		 192	2072*	2259
INITIALIZE_BUFFER_POOL		 193	2163*	2258
INITIALIZE_CEXCOM_DATA		 194	1627	2204*
INITIALIZE_DEVICE_NAMES		 195	2257	2486*
INITIALIZE_LINES		 196	2256	2527*
INITIALIZE_PROCESS_DESCRIPTORS	 197	2254	2590*
INITIALIZE_PROCESS_NAMES	 198	2255	2737*
INITIALIZE_UNIBUS_MAPPING	 199	1613	2790*
INTERRUPTS			1755	1768#	1770#	1775	1777
INTERRUPT_PRIORITY_BLOCK	 393#	1219	1757	1758
IPB				1766#	1768	1772#
IPB$K_LENGTH			 337	 338	 339	 340	1766
IPB$V_JSR_4			 394	 395	 396	 397
IPB$W_COUNT			1768	1772
IPBA				1757	1766
ITB				 570	 575#	 577	 581	 586	1188	1214	1218#	1219#	1220#	1221#	1222
ITB$A_DISPATCH			1221
ITB$A_JSR_5_ADDRESS		1219
ITB$A_PROCESS			 581	1220
ITB$K_LENGTH			 570	 586	1188	1214
ITB$V_JSR_5			1222
ITB$W_JSR_5_INSTRUCTION		1218
KILL_PROCESSES			 200	 452	2942*
KISAR5				1604	1608	3229	3232#	3234#
KISAR6				2104	2153#	3181	3230	3232#
LANGUAGE			   3
LAST				 201	1329#	1332#	1333#	1462#	1464#	2302	3028*
LAST_PDT			2968	2981#	2996	2998#
LEN				2464	2466	2469#	2470
LINE_INDEX			1933	1957#	1959	1961
LINKAGE_ADR			 153#	 181	 182	1261#	1351#
LINKAGE_ADR_CARRY		 154#	 210
LINKAGE_ADR_CNT			 155#	 193	 195	 196	 197	 198	2163#	2486#	2527#	2590#	2737#
LINKAGE_ADR_NO_CARRY		 156#	 204	3114#
LINKAGE_BLKS			 157#	 180	1226#
LINKAGE_CLEAN			 158#	 380	 381
LINKAGE_FUNCTION		 159#	 189	 190	 191	1933#	1963#	2032#
LINKAGE_INTERRUPT		 160#	 202	 203	 374	 376	 379	 382	 383	 385	 386	 387	 390
				3062#	3088#
LINKAGE_LIST_BUFFER		 161#	 206	3242#
LLC_PROCESS			 940	 944#	 947	 951#	 977
LOW				1886	1888	1889	1890	1891
MAP$				 785	 787	1074	1077	1331	1337	1713	1849	1853	2131	2157	2160
				2645	3198#
MCB$GA_LOGGING_BUFFER		 368	2471#
MCB$GW_RDB_SIZE			 369	2250#
MCB$K_CLEAR_PROCESS		 290
MCB$K_CLEAR_PROCESS_NAME	 291
MCB$K_CLEAR_VECTOR		 292
MCB$K_GET_DEVICE_NAME		 293
MCB$K_GET_LINE_PROCESSES	 294
MCB$K_GET_PROCESS_INDEX		 295
MCB$K_GET_PROCESS_NAME		 296
MCB$K_SET_EXCEPTION		 297
MCB$K_SET_LINE_PROCESSES	 298
MCB$K_SET_PROCESS		 299
MCB$K_SET_PROCESS_NAME		 300
MCB$K_SET_VECTOR		 301
MCB$_BUSY_NAME			1144
MCB$_NORMAL			 464	 520	 589	 634	 688	 731	 791	 894	 982	1099	1151	1224
MCB$_PARAMETER_ERROR		 427	 495	 551	 620	 665	 719	 762	 822	 925	1015	1137	1182
MCB$_PROCESS_STILL_ACTIVE	 431
MCB$_UNKNOWN_PROCESS		 503	 505	 727
MCB_				 200	 205	 207	2942#	3140#	3368#
MCH				3028	3055
MEXV				 827#	 836
MFPI				3182
MODIFIER			1619	1621#	1626#	1645
MONITOR				2399#	2405	2425
NAM				2486	2518	2519#	2523#	2524#	2525
NAME				 309#	1963	1989	2005	2032	2064
NAME_ENTRY			 500	 505#	 510	 516#	 517#	1142	1146#	1148#	1149#	2058	2060#	2064
				2066	2068#
NEW				 865	 867#	 874	 875	 882	 884
NEW_BFP				2163	2202#
NEW_NAM				2486	2525#
NEW_PDB				2590	2735#
NEW_PNM				2737	2788#
NEW_SLT				2527	2588#
NEW_UBM				2865	2867	2869	2870#	2871#	2872#	2873#	2874#
NEW_WINDOW			3274	3290#	3297	3306#	3315#	3335#	3345#
NO_OPERATION			 248#	1564	3086
NULL				 202	3062*	3184
NXM				 210*	 228	2289	3301	3332
NXM_CATCHER			 203	 227	2273	3088*	3278
NXM_SAVE			 225	 226#	 231	 237	2270	2272#	2299	3275	3277#	3319	3349	3366
NXM_TESTER			 204	 210	3114*
OLD				 843	 845#	 852#	 853#	 854#	 855#
PANIC				 205	2305	3140*
PCB				1042	1048#	1052	1992	1997#	2003	2005	2010	2014	2017#	2022#	2023#
				2028#	2099	2107#	2114	2121#	2131	2157	2159	2332	2336#	2338	2632
				2642#	2645	2646	2835	2843#	2850	2854	2856	2860	2871	2872	2878
				2882	2886	2889#	2894#	2895#	2900#
PCB_BAD				2839	2846	2852	2856
PCB_FIELDS			1042	1992	2099	2332	2632	2835
PCB_GOOD			2840	2847	2854
PCB_NAME			1043	1045#	1046#	1048	2637	2639#	2640#	2642
PDB				1058	1060	1075#	1076#	1079#	1080#	1081#	1090#	1091	2590	2616	2639
				2645#	2657#	2666	2675#	2678	2682	2689	2693	2712	2717	2727	2729#
				2731#	2735	2979	2983#	2987	3002	3007	3013#	3017
PDB_COUNT			2590	2621
PDT				1021	1023#	1028	1083	1085	1087	1088	1091#	1093#	1095	1097	1103#
				1633	1635#	1643	1648#	1689	1691#	1699	1739#	2710	2712#	2716#	2717#
				2718#	2720	2722	2969	2973#	2981	2983#	2994#	3025
PDT$A_CODE_DISPATCH		1076	2675
PDT$A_DATA_ADDRESS		1080	1711	2678	3199
PDT$A_DISPATCH_ADDRESS_ADDRESS	2666
PDT$A_UCB			2689	2729	3007
PDT$B_INDEX			 729	 853	 977	 978	 979	1081	2693	2712
PDT$K_LENGTH			 333	 450	 510	 725	 768	 872	 938	 939	 940	1058	1060	1641
				1697	2616	2731	2979	3000	3196	3438
PDT$V_DATA_BASE_INCLUDED	2678
PDT$V_FLAGS			1090
PDT$V_KILL_PROCESS		 433	2987
PDT$V_LONG_TIMER		1703
PDT$V_PERMANENT			2657	3013
PDT$V_UCB_INCLUDED		2682	2727	3002
PDT$W_CODE_BIAS			 512	 785	1035	1075	2645
PDT$W_CODE_NAME			2639
PDT$W_DATA_BIAS			1079	1713	3198
PDUMP				 206	3208	3242*
PHD$A_LLC_TABLE			1076
PHD$A_RSX_TABLE			2702
PHD$A_SIGNAL			3235
PHD$V_RSX_TABLE_INCLUDED	2695
PHD$W_BLKS			2646
PHD$W_CEX_IDENT_1		2653
PHD$W_CEX_IDENT_2		2654
PHD$W_NAME			 786
PNAME				2003#	2005	2850#	2852
PNM				2737	2763	2765	2774	2778#	2781#	2783#	2785#	2788
PNM$A_PROCESS			 510	 516	1149	2066	2778	2781
PNM$K_LENGTH			 350	 500	1142	2058	2068	2763	2785
PNM$W_NAME			 517	1148	2064	2778	2783
PNM$W_PROCESS_INDEX		2774
PNM_COUNT			2737	2766	2768
POP				3166#	3214
PRI				1189	1210#	1219
PROCESS				 510#	 512	 725	 727#	 729	 768	 770#	 771#	 785	 786#	 789	 850#
				 853	 872	 875#	 883	1641	1643#	1645	1697	1699#	1703	1711	1713
				1729	3438	3440#	3443
PROCESS_NAME			 501	 503#	 505
PS				 440	 442	 443#	 462#	2354	2356	2357#	2431#	3062	3088	3112#	3171
				3172#	3415	3417	3418#	3425#
PS_COM				2114
PS_SAVE				 437	 442#	 462	2351	2356#	2431	3412	3417#	3425
PS_SYS				2010	2856	2882
PUSH				3168#	3175	3176	3177	3178	3179	3180	3181	3182	3183
P_BLKS				2121	2159	2646	2878
P_LNK				2023	2028	2114	2895	2900
P_MAIN				2022	2114	2856	2894
P_NAM				2003	2850
P_REL				1052	2121	2131	2157	2338	2645	2860	2871	2872
P_SUB				2014	2017	2886	2889
P_TCB				2854
RECONCILIATION			1839	1856
ROT				1763	1768	2414	2416	2420
RSX$GW_SYSTEM_SIZE		 264#	2105	2121	2325	2327	2822	2831#	2902
RSX_CLK				 162#	 183	1472#
RSX_DISPATCH			 311#
RSX_FRK				 163#	 184	1511#
RSX_UCB				 185	 194	1540#	2204#
RSX_UCB_SCB			 164#	 186	 187	1566#	1655#
SAVE_MAP			 782	 784	 787	1071	1073	1077	1844	1847	1853	2100	2130	2160
SCB				1566	1592	1596#	1597#	1601	1606#	1607#	1608#	1609	1655	1681	1684#
SCB_FIELDS			1592	1681
SCHEDULE			 207	1508	1537	1652	1807	3368*
SEED0				2402	2407#	2416#	2422#	2428
SEED1				2402	2408#	2418#	2420#	2427
SIG				3028	3056	3058	3060
SLT				 626	 628#	 632	 677	 679#	 683	 684	 685	 930	 932#	 977#	 978#
				 979#	2512	2514#	2518#	2520#	2527	2553	2555	2564	2569#	2571	2576#
				2578	2583#	2585#	2588
SLT$A_DEVICE			 632	2518
SLT$B_DDM_PROCESS_INDEX		 685	 979	2578	2583
SLT$B_DLC_PROCESS_INDEX		 684	 978	2571	2576
SLT$B_LLC_PROCESS_INDEX		 683	 977	2564	2569
SLT$K_LENGTH			 367	 626	 677	 930	2512	2520	2553	2585
SLT$V_BASE			1961
SLT_COUNT			2486	2516	2527	2556	2558
SMAP$				 784	1073	1258	1847	2130
SR3				 223	 228	 232#
STANDARD			 160
SYN				3407#	3419#	3421	3427#	3440	3441	3442#
SYN$A_DISPATCH			 445	 452	2971	3441
SYN$A_LINK			 455	3421	3427
SYN$A_PROCESS			 453	3440	3442
SYN$K_LENGTH			 332	3407
S_CTM				1596	1684
S_FRK				1597
TABLE$				 289	 304
TEMP				1441
TIMER_BLOCK			1472	1498	1507
TIMER				1708#	1711	1715	1718	1720
TMB$A_PROCESS			1507
TMB$K_LENGTH			1498
TRAP				2366	2381#	2385#	2386#	2388
TRAPS				2369#	2381
TRUE				 233	 249#	 433	1452	1595	1856	2018	2161	2657	2890	3238	3401
				3505
UBM				2836	2842#	2860	2869#	2875#	2878#	2902#	2908	2914#	2918#	2919	2924#
				2930	2933#	2935
UBM$A_LINK			2828	2869	2870	2875	2933	2937
UBM$B_BASE_UBMR			2873	2874	2918
UBM$K_LENGTH			2818	2867
UBM$W_END_BLK			2830	2860	2872	2878	2902	2924	2930
UBM$W_START_BLK			2829	2871	2919
UBMN				2909	2912#	2918	2924	2928#
UBMPR				2821	2913
UBMR				2910	2913#	2926	2927#	2935
UBM_DATA_BASE			2818	2828#	2829#	2830#	2842	2914	2937
UBM_MAPPING			 221#	2826
UCB				1566	1593	1595#	1627	1655	1682	2204	2230	2237#	2241	2246	2247#
				2254	2255	2256	2257	2258	2687	2689#	2693#	2700	3007#	3009#
UCB_FIELDS			1593	1682	2230	2687	3007
US_BSY				1595
U_CNT				2237
U_CW2				2693	3009
U_DCB				2700
VALUECBIT			 154
VALUE				3168	3169
VEC				 556	 561#	 563	 575	 585#	1190	1196#	1198	1202	1222#
VEC$AA_ADDRESS_ERROR		 226	 227#	 231#	 237#	 271#	1751	1801	2272	2273#	2299#	2370	3277
				3278#	3319#	3349#	3366#
VEC$AA_BREAKPOINT		 272#	2372
VEC$AA_EMT_INSTRUCTION		 273#	2375
VEC$AA_ILLEGAL_INSTRUCTION	 274#	2371
VEC$AA_IOT_INSTRUCTION		 275#	2373
VEC$AA_PARITY_ERROR		 276#	2377
VEC$AA_POWER_FAILURE		 277#	2374	3183	3184#	3214
VEC$AA_SEGMENT_FAULT		 278#	2378
VEC$AA_TRAP_INSTRUCTION		 279#	2376
ZERO				2101	2136#	2145	2146	2147	2148	2149	2150	2151
$CETBL				 304#	 311
$CEX_BFHFIELDS			1319	1329
$CEX_BFPDEF			 251
$CEX_BFPFIELDS			 325	1287	1877	1909	2189	2444
$CEX_CBPDEF			 252
$CEX_CBPFIELDS			 328	 356	1377
$CEX_CCBDEF			 253
$CEX_CCBFIELDS			1437	1462	3460	3482
$CEX_EXVDEF			 254
$CEX_EXVFIELDS			 336	 341	 346	 357	 832
$CEX_FATAL_ERROR		 217#	 427	 431	 495	 514	 551	 565	 579	 583	 620	 630	 665
				 719	 762	 822	 877	 925	 932	 949	 953	 960	 964	 971	 975
				1015	1050	1062	1106	1137	1182	1200	1204	1208	1212	1216
$CEX_IPBFIELDS			 337	 338	 339	 340	1766
$CEX_ITBDEF			 255
$CEX_ITBFIELDS			 570	1188
$CEX_PDTDEF			 256
$CEX_PDTFIELDS			 333	 450	 510	 725	 768	 850	 872	 938	 939	 940	1058	1641
				1697	2616	2979	3196	3438
$CEX_PHDDEF			 776	1065	2624	3223
$CEX_PHDFIELDS			 779	1068	2627	3226
$CEX_PNMDEF			 257
$CEX_PNMFIELDS			 350	 500	1142	2058	2763
$CEX_SLTDEF			 258
$CEX_SLTFIELDS			 367	 626	 677	 930	2512	2553
$CEX_SYNDEF			 259
$CEX_SYNFIELDS			 332	3407
$CEX_TMBDEF			 260
$CEX_TMBFIELDS			1498
$CEX_UBMDEF			 261
$CEX_UBMFIELDS			2818	2836	2865	2908
$DSPCR				 286*	 289
$MCB_DISABLE_INTERRUPT		1751
$MCB_ENABLE_INTERRUPT		1801
$MCB_PROCESS			 308
$RSX_GET_DSR			1060	1214	1418	2466	2867
$RSX_RETURN_DSR			 586	3017
$SUB_FIELD			1597	2197	2237