Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/nml/nmlevt.lst
There are no other files named nmlevt.lst in the archive.
								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page   1
								 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (1)

;	  0001	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2 28-Sep-82 11:49:03, Edit by PECKHAM
;	  0002	!
;	  0003	! Ident 22.
;	  0004	!  Fix dot bug introduced by #21.
;	  0005	!
;	  0006	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2  8-Sep-82 09:46:56, Edit by PECKHAM
;	  0007	!
;	  0008	! Ident 21.
;	  0009	!  Add code in GET_LOCAL_EVENTS to set the EXECUTOR IDENTIFICATION
;	  0010	!  from the NMX access control information block.
;	  0011	!
;	  0012	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2 29-Jun-82 09:59:30, Edit by PECKHAM
;	  0013	!
;	  0014	! Ident 20.
;	  0015	! Change SS$EVR reference into $NMU_NMX_READ_EVENT reference.
;	  0016	!
;	  0017	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.6 27-Jun-82 01:46:10, Edit by PECKHAM
;	  0018	!
;	  0019	! Ident 19.
;	  0020	! Fix the TOPS20 EVENT TIME figured in GET_EVENT_BUFFER.  It was not
;	  0021	! being set relative to 1-JAN-77.
;	  0022	!
;	  0023	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2 25-Jun-82 11:57:31, Edit by PECKHAM
;	  0024	!
;	  0025	! Ident 18.
;	  0026	! Fix GET_LOCAL_EVENTS to recognize access control message from NMX
;	  0027	! and copy data into UN$xxx areas for use by NMUNET.
;	  0028	!
;	  0029	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2  1-Jun-82 13:43:01, Edit by PECKHAM
;	  0030	!
;	  0031	! Ident 17.
;	  0032	! New event message format from NMX/MCB.
;	  0033	!
;	  0034	!NET:<BRANDT.DEVELOPMENT>NMLEVT.BLI.2 4-May-82 16:23:09, Edit by BRANDT
;	  0035	!
;	  0036	! Ident 16.
;	  0037	! Put external declaration for NML$DLW_CALL under MCB conditional.
;	  0038	!
;	  0039	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2 22-Apr-82 08:23:09, Edit by PECKHAM
;	  0040	!
;	  0041	! Ident 15.
;	  0042	! Change configuration switch naming.
;	  0043	!
;	  0044	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2 26-Mar-82 08:42:52, Edit by PECKHAM
;	  0045	!
;	  0046	! Ident 14.
;	  0047	! Utilize new MCB time block.
;	  0048	!
;	  0049	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.57 24-Mar-82 08:33:15, Edit by PECKHAM
;	  0050	!
;	  0051	! Ident 13.
;	  0052	! Fix event queues to work properly (avoid consecutive lost event events).
								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page   2
								 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (1)

;	  0053	! Use configuration switches from NMLCOM.
;	  0054	!
;	  0055	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2  2-Mar-82 09:47:35, Edit by PECKHAM
;	  0056	!
;	  0057	! Ident 12.
;	  0058	! Fix bug in NML$EVENT_RECORDER that caused SYSERR code to go away.
;	  0059	!
;	  0060	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2 19-Feb-82 08:29:21, Edit by PECKHAM
;	  0061	!
;	  0062	! Ident 11.
;	  0063	! Add direct access to time routines, thus making EV_ETM unnecessary.
;	  0064	! Add LOGGING FILE state maintenance for TOPS20.
;	  0065	! Remove LW_EVT (DLW routines now call NML$DECLARE_EVENT directly).
;	  0066	!
;	  0067	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2 17-Feb-82 12:41:38, Edit by PECKHAM
;	  0068	!
;	  0069	! Ident 10.
;	  0070	! Reduce task stack size by half.
;	  0071	!
;	  0072	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.3  5-Feb-82 15:40:30, Edit by PECKHAM
;	  0073	!
;	  0074	! Ident 09.
;	  0075	! The PROCESSED_QUEUE must be a scheduled queue!
;	  0076	! Also change PROCESSED_QUEUE size from 3 to 6.
;	  0077	!
;	  0078	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.3  5-Feb-82 13:04:17, Edit by PECKHAM
;	  0079	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2  5-Feb-82 09:19:00, Edit by GROSSMAN
;	  0080	!
;	  0081	! Ident 08.
;	  0082	! Decrement PROCESSED_QUEUE_COUNT each time an item is removed from the
;	  0083	! PROCESSED_QUEUE. This allows NML to pass more than 3 events.
;	  0084	! Change PROCESSED_QUEUE from quota queue to regular queue.
;	  0085	!
;	  0086	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2 22-Jan-82 13:00:18, Edit by PECKHAM
;	  0087	!
;	  0088	! Ident 07.
;	  0089	! Make declared events in a TOPSxx system RT$LOCAL in DECLARE_EVENT.
;	  0090	! Fix HOST_ID length in EVENT_INITIALIZE.
;	  0091	!
;	  0092	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.3 20-Jan-82 17:17:47, Edit by PECKHAM
;	  0093	!
;	  0094	! Ident 06.
;	  0095	! Fix NML$DECLARE_EVENT to figure entity-id string length
;	  0096	! instead of requiring caller to supply it.
;	  0097	!
;	  0098	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.2 18-Jan-82 20:33:29, Edit by PECKHAM
;	  0099	!
;	  0100	! Ident 05.
;	  0101	! Modify LW_EVT to satisfy both NMLDLW 36 & 16 needs.
;	  0102	!
;	  0103	!NET:<PECKHAM.DEVELOPMENT>NMLEVT.BLI.22 16-Jan-82 17:29:18, Edit by PECKHAM
;	  0104	!
								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page   3
								 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (1)

;	  0105	! Ident 04.
;	  0106	! Update copyright date.
;	  0107	! Add NML$DECLARE_EVENT support and review event queue handling.
;	  0108	! Note : all event times are being assigned at NML level as of now.
;	  0109	! Note : the current time cannot be obtained from here due to lack of NMULIB;
;	  0110	!        The routine EV_ETM will be put in a module which uses NMULIB.
;	  0111	! Get proper host node id for events.
;	  0112	! Remove EVENT_TIME routine.
;	  0113	! Temporary LW_EVT routine for NMLDLW to log events (until it uses NMLLIB)
;	  0114	! I am putting EV_ETM into NMLDLW for now.
;	  0115	!
;	  0116	!NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLEVT.BLI.10 12-Oct-81 10:22:21, Edit by PECKHAM
;	  0117	!
;	  0118	! Ident 03.
;	  0119	! Correct bug introduced in ident 01 in GET_LOCAL_EVENT.
;	  0120	!
;	  0121	! NET:<DECNET20-V3P1.BASELEVEL-2.SOURCES>NMLEVT.BLI.8 11-Oct-81 16:36:35, Edit by PECKHAM
;	  0122	!
;	  0123	! Ident 01.
;	  0124	! Add recognition of maintenance requests to GET_LOCAL_EVENT to call
;	  0125	! the Data Link Watcher.
;	  0126	!
;	  0127	!<DECNET20-V3P1.BASELEVEL-2.MCB>NMLEVT.BLI.2 26-Jun-81 13:26:36, Edit by SROBINSON
;	  0128	!
;	  0129	! Fix NODE_E Event Logging Address Bug using GETW
;	  0130	!
;	  0131	!<DECNET20-V3P1.BASELEVEL-2.MCB>NMLEVT.BLI.2 11-Jun-81 11:38:14, Edit by SROBINSON
;	  0132	!   Add Quota Checked Queues
;	  0133	!
;	  0134	module NMLEVT (					! Event Processing Module
;	  0135			ident = 'X00.22'
;	  0136			) =
;	  0137	begin
;	  0138	!
;	  0139	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0140	!                    DIGITAL EQUIPMENT CORPORATION
;	  0141	!                        Maynard, Massachusetts
;	  0142	!
;	  0143	!     This software is furnished under a license and may  be  used
;	  0144	!     and copied only in accordance with the terms of such license
;	  0145	!     and with the inclusion of the above copyright notice.   This
;	  0146	!     software  or any other copies thereof may not be provided or
;	  0147	!     otherwise made available to any other person.  No  title  to
;	  0148	!     and ownership of the software is hereby transferred.
;	  0149	!
;	  0150	!     The information  in  this  software  is  subject  to  change
;	  0151	!     without  notice  and should not be construed as a commitment
;	  0152	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0153	!
;	  0154	!     DIGITAL assumes no responsibility for the use or reliability
;	  0155	!     of  its  software  on  equipment  which  is  not supplied by
;	  0156	!     DIGITAL.
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page   4
X00.22								 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (1)

;	  0157	!
;	  0158	
;	  0159	!++
;	  0160	! Facility: LSG DECnet Network Management
;	  0161	!
;	  0162	! Abstract: This module provides the routines that control the
;	  0163	!           Event Queueing system within the NML task. It also contains
;	  0164	!	    the Event Recorder and Processor.
;	  0165	!
;	  0166	! Environment: TOPS10/TOPS20 user mode, MCB RSX task level
;	  0167	!
;	  0168	! Author: Scott G. Robinson, Creation date: 24-Mar-81
;	  0169	!	  From NMLQUE by Steven M. Jenness
;	  0170	!	  From NMLNIC by Dale C. Gunn
;	  0171	!
;	  0172	!--
;	  0173	
;	  0174	!<BLF/SYNONYM $FIELD=FIELD>
;	  0175	!<BLF/SYNONYM %UNQUOTE =>
;	  0176	!<BLF/PAGE>
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page   5
X00.22								 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (2)

;	  0177	!
;	  0178	! Include files
;	  0179	!
;	  0180	
;	  0181	library 'NMLLIB';                       ! All needed definitions
;	  0182	
;	  0183	!
;	  0184	! Global routines
;	  0185	!
;	  0186	
;	  0187	forward routine
;	  0188	    NML$EVENT_MANAGER,                  ! Define global entry points
;	  0189	    NML$LOGGING_FILE : novalue;         ! LOGGING FILE event handler
;	  0190	
;	  0191	forward routine
;	  0192	    EMPTY_QUEUE_CHECK,                  ! Check if a queue is empty
;	  0193	    GET_EVENT_BUFFER,                   ! Allocate and format event block
;	  0194	    GET_LOCAL_EVENT : novalue;          ! Local Event Reader
;	  0195	
;	  0196	!
;	  0197	! Local routines
;	  0198	!
;	  0199	
;	  0200	!
;	  0201	! Logging values
;	  0202	!
;	  0203	
;	  0204	    macro
;	M 0205	         C_STRING [ ] =                 ! Counted string
;	M 0206	             %if not $MCB
;	M 0207	             %then
;	M 0208	             C_CHAR(%char(%charcount(%remaining)),%explode(%remaining)) 
;	M 0209	             %else
;	M 0210	             %string(%char(%charcount(%remaining)),%remaining)
;	  0211	             %fi % ;
;	  0212	
;	L 0213	    %if not $MCB
;	U 0214	    %then
;	U 0215	    macro
;	U 0216	         C_CHAR [B1,B2,B3,B4] =
;	U 0217	             ((%C B1 ^ (%bpval-8))
;	U 0218	              %if not %null(B2)
;	U 0219	              %then
;	U 0220	                   or (%C B2 ^ (%bpval-16))
;	U 0221	              %if not %null(B3)
;	U 0222	              %then
;	U 0223	                   or (%C B3 ^ (%bpval-24))
;	U 0224	              %if not %null(B4)
;	U 0225	              %then
;	U 0226	                   or (%C B4 ^ (%bpval-32))
;	U 0227	              %fi %fi %fi) %;
;	  0228	    %else
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page   6
X00.22								 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (2)

;	  0229	    macro
;	M 0230	         C_CHAR [] =
;	  0231	             (%string (%remaining)) %;
;	  0232	    %fi
;	  0233	
;	L 0234	%if NML$CFG_LOGGING_FILE
;	U 0235	%then
;	U 0236	    bind
;	U 0237	        LOGGING_FILE_PTR = ch$ptr (uplit (%char (FILE_))),
;	U 0238	        LOGGING_NAME_ADR = uplit (C_STRING ('ERROR.SYS'));
;	  0239	%fi
;	  0240	
;	  0241	    literal
;	  0242	        LOGGING_STATE = 0,
;	  0243	        STATE_ON = 0,
;	  0244	        STATE_OFF = 1,
;	  0245	        STATE_HOLD = 2,
;	  0246	        LOGGING_NAME = 100;
;	  0247	
;	  0248	!
;	  0249	! Own storage
;	  0250	!
;	  0251	
;	  0252	own
;	L 0253	%if NML$CFG_LOGGING_FILE
;	U 0254	%then
;	U 0255	    FILE_QUEUE : EVENT_QUEUE,           ! LOGGING FILE event queue
;	  0256	%fi
;	L 0257	%if NML$CFG_LOGGING_TRANSMITTER
;	  0258	%then
;	  0259	    HOST_TRANSMITTER : TRANSMITTER_QUEUE, ! Event transmitter queue for host
;	  0260	%fi
;	  0261	    LOST_EVENTS,                        ! Lost events due to full queue
;	  0262	    ALLOCATION_FAILURES;                ! Lost events due to insufficient memory
;	  0263	
;	  0264	!
;	  0265	! External references
;	  0266	!
;	  0267	
;	  0268	external routine
;	L 0269	%if $MCB
;	  0270	%then
;	  0271	    NML$DLW_CALL,                       ! Notify Data Link Watcher
;	  0272	%fi
;	L 0273	%if NML$CFG_LOGGING_TRANSMITTER
;	  0274	%then
;	  0275	    NML$EVENT_TRANSMITTER,              ! Event Transmitter
;	  0276	%fi
;	L 0277	%if NML$CFG_LOGGING_RECEIVER
;	U 0278	%then
;	U 0279	    NML$EVENT_RECEIVER,                 ! Event Receiver
;	  0280	%fi
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page   7
X00.22								 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (2)

;	  0281	    NMU$QUEUE_MANAGER,                  ! Generalized queue management routines
;	  0282	    NMU$SCHED_MANAGER,                  ! Scheduler
;	  0283	    NMU$MEMORY_MANAGER,                 ! Memory management routines
;	  0284	    NML$GET_VDB_PARAMETER,              ! Extract data for specific parameter
;	  0285	    NML$SET_VDB_PARAMETER,              ! Set parameter in Volatile DB
;	  0286	    NMU$TABLE_ROUTINES,                 ! Table handling routines
;	  0287	    NMU$NETWORK_UTILITIES;              ! Network interface
;	  0288	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page   8
X00.22		NML$DECLARE_EVENT as EV_DEC			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (3)

;	  0289	%global_routine ('NML$DECLARE_EVENT', REB : ref RAW_EVENT_BLOCK) : novalue =
;	  0290	
;	  0291	!++
;	  0292	! Functional description:
;	  0293	!
;	  0294	!       This routine accepts a raw event block and gives it to the
;	  0295	!       event processor for filtering and transmitting.
;	  0296	!
;	  0297	! Formal parameters: none
;	  0298	!
;	  0299	! Routine value: none
;	  0300	! Side effects: none
;	  0301	!
;	  0302	!--
;	  0303	
;	  0304	    begin
;	  0305	    NML$EVENT_PROCESSOR (.REB);
;	  0306	    end;					! End of NML$DECLARE_EVENT


						.TITLE	NMLEVT
						.IDENT	/X00.22/


000000						.PSECT	$OWN$,  D  
000000					HOST.TRANSMITTER:
						.BLKW	16
000034					LOST.EVENTS:
						.BLKW	1
000036					ALLOCATION.FAILURES:
						.BLKW	1


						.GLOBL	NW.CAL, EV.XMT, UQ.RESET, UQ.INSERT
						.GLOBL	UQ.REMOVE, UQ.EXTRACT, UQ.LENGTH
						.GLOBL	UQ.SCAN, UQ.SEXTRACT, US.CREATE
						.GLOBL	US.ABORT, US.FINI, US.COMPLETE
						.GLOBL	US.ERROR, US.INSERT, US.REMOVE
						.GLOBL	US.QRESET, US.QQINS, US.QQREM
						.GLOBL	US.QQSET, US.QQEXT, US.EVENT, US.WAIT
						.GLOBL	US.FLAG, US.SLEEP, US.CURRENT
						.GLOBL	US.DESCHEDULE, UM.RESET, UM.INITIALIZE
						.GLOBL	UM.GET, UM.RELEASE, NL.VGP, NL.VSP
						.GLOBL	UT.CLEAR, UT.INSERT, UT.FETCH
						.GLOBL	UT.DELETE, UT.CHANGE, UT.MAX, UN.INIT
						.GLOBL	UN.LOCAL, UN.OPEN, UN.ACCEPT, UN.REJECT
						.GLOBL	UN.READ, UN.WRITE, UN.ABORT, UN.CLOSE
						.GLOBL	UN.STATUS, UN.VALIDATE


						.SBTTL	EV.DEC NML$DECLARE_EVENT as EV_DEC
000000						.PSECT	$CODE$,  RO 
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page   9
X00.22		NML$DECLARE_EVENT as EV_DEC			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (3)


000000	016646  000002 			EV.DEC::MOV	2(SP),-(SP)			; REB,*					0305
000004	004767  000000V				JSR	PC,EV.PRO
000010	005726 					TST	(SP)+				;					0304
000012	000207 					RTS	PC				;					0289
; Routine Size:  6 words,	Routine Base:  $CODE$ + 0000
; Maximum stack depth per invocation:  2 words


;	  0307	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  10
X00.22		NML$EQUEUE_INSERT as EQ_INS			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (4)

;	  0308	%global_routine ('NML$EQUEUE_INSERT', EQ: ref EVENT_QUEUE, EB : ref EVENT_BUFFER) : novalue =
;	  0309	
;	  0310	!++
;	  0311	! Functional description:
;	  0312	!
;	  0313	!       None
;	  0314	!
;	  0315	! Formal parameters: none
;	  0316	!
;	  0317	! Routine value: none
;	  0318	! Side effects: none
;	  0319	!
;	  0320	!--
;	  0321	
;	  0322	    begin
;	  0323	
;	  0324	    if .EQ [EQ_COUNT] eql .EQ [EQ_LENGTH]
;	  0325	    then
;	  0326	        begin
;	  0327	        NMU$MEMORY_RELEASE (.EB, .EB [EB_ALLOCATION]);
;	  0328	        return;
;	  0329	        end;
;	  0330	
;	  0331	    EQ [EQ_COUNT] = .EQ [EQ_COUNT] + 1;
;	  0332	
;	  0333	    if .EQ [EQ_COUNT] eql .EQ [EQ_LENGTH]
;	  0334	    then
;	  0335	        begin
;	  0336	
;	  0337	        local
;	  0338	            LNG,
;	  0339	            PTR;
;	  0340	
;	  0341	        PTR = ch$ptr (EB [EB_BUFFER], 2, 8);
;	  0342	
;	  0343	        if (ch$rchar (.PTR) eql 0) and
;	  0344	           (ch$rchar (ch$plus (.PTR, 1)) eql 0)
;	  0345	        then                            ! Last event is lost event
;	  0346	            begin
;	  0347	            EQ [EQ_COUNT] = .EQ [EQ_COUNT] - 1;
;	  0348	            NMU$MEMORY_RELEASE (.EB, .EB [EB_ALLOCATION]);
;	  0349	            return;
;	  0350	            end;
;	  0351	        !
;	  0352	        ! Turn current event into 'lost event' event
;	  0353	        !
;	  0354	        ch$wchar_a (0, PTR);
;	  0355	        ch$wchar_a (0, PTR);
;	  0356	        PTR = ch$plus (.PTR, 6 + 2);
;	  0357	        LNG = ch$rchar_a (PTR);
;	  0358	        PTR = ch$plus (.PTR, .LNG);
;	  0359	        ch$wchar_a (NO_ENTITY_ and %o'377', PTR);
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  11
X00.22		NML$EQUEUE_INSERT as EQ_INS			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (4)

;	  0360	        ch$wchar_a (NO_ENTITY_^-8 and %o'377', PTR);
;	  0361	        EB [EB_LENGTH] = PTR = ch$diff (.PTR, ch$ptr (EB [EB_BUFFER],, 8));
;	  0362	        end;
;	  0363	
;	  0364	    NMU$SQUEUE_INSERT (.EQ, .EB);
;	  0365	    end;					! End of NML$EQUEUE_INSERT


						.SBTTL	EQ.INS NML$EQUEUE_INSERT as EQ_INS
000000	004167  000000G			EQ.INS::JSR	R1,$SAVE4			;					0308
000004	016602  000016 				MOV	16(SP),R2			; EQ,*					0324
000010	012703  000014 				MOV	#14,R3
000014	060203 					ADD	R2,R3
000016	021362  000016 				CMP	(R3),16(R2)
000022	001010 					BNE	2$
000024	016646  000014 				MOV	14(SP),-(SP)			; EB,*					0327
000030	011600 					MOV	(SP),R0				; EB,*
000032	016046  000006 				MOV	6(R0),-(SP)
000036	004767  000000G			1$:	JSR	PC,UM.RELEASE
000042	000452 					BR	5$				;					0324
000044	005213 				2$:	INC	(R3)				;					0331
000046	021362  000016 				CMP	(R3),16(R2)			;					0333
000052	001041 					BNE	4$
000054	016601  000014 				MOV	14(SP),R1			; EB,*					0341
000060	010104 					MOV	R1,R4				; *,PTR
000062	062704  000014 				ADD	#14,R4				; *,PTR
000066	105714 					TSTB	(R4)				; PTR					0343
000070	001010 					BNE	3$
000072	105764  000001 				TSTB	1(R4)				; *(PTR)				0344
000076	001005 					BNE	3$
000100	005313 					DEC	(R3)				;					0347
000102	010146 					MOV	R1,-(SP)			;					0348
000104	016146  000006 				MOV	6(R1),-(SP)
000110	000752 					BR	1$
000112	105024 				3$:	CLRB	(R4)+				; PTR					0354
000114	105024 					CLRB	(R4)+				; PTR					0355
000116	062704  000010 				ADD	#10,R4				; *,PTR					0357
000122	005000 					CLR	R0				; LNG
000124	152400 					BISB	(R4)+,R0			; PTR,LNG
000126	060004 					ADD	R0,R4				; LNG,PTR				0358
000130	112724  000377 				MOVB	#377,(R4)+			; *,PTR					0359
000134	112724  000377 				MOVB	#377,(R4)+			; *,PTR					0360
000140	010400 					MOV	R4,R0				; PTR,*					0361
000142	160100 					SUB	R1,R0
000144	010004 					MOV	R0,R4				; *,PTR
000146	162704  000012 				SUB	#12,R4				; *,PTR
000152	010461  000010 				MOV	R4,10(R1)			; PTR,*
000156	010246 				4$:	MOV	R2,-(SP)			;					0364
000160	016646  000016 				MOV	16(SP),-(SP)			; EB,*
000164	004767  000000G				JSR	PC,US.INSERT
000170	022626 				5$:	CMP	(SP)+,(SP)+			;					0322
000172	000207 					RTS	PC				;					0308
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  12
X00.22		NML$EQUEUE_INSERT as EQ_INS			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (4)

; Routine Size:  62 words,	Routine Base:  $CODE$ + 0014
; Maximum stack depth per invocation:  8 words


;	  0366	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  13
X00.22		NML$EQUEUE_REMOVE as EQ_REM			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (5)

;	  0367	%global_routine ('NML$EQUEUE_REMOVE', EQ: ref EVENT_QUEUE) =
;	  0368	
;	  0369	!++
;	  0370	! Functional description:
;	  0371	!
;	  0372	!       None
;	  0373	!
;	  0374	! Formal parameters: none
;	  0375	!
;	  0376	! Routine value: none
;	  0377	! Side effects: none
;	  0378	!
;	  0379	!--
;	  0380	
;	  0381	    begin
;	  0382	
;	  0383	    local
;	  0384	        EB;
;	  0385	
;	  0386	    EB = NMU$SQUEUE_REMOVE (.EQ);
;	  0387	    EQ [EQ_COUNT] = .EQ [EQ_COUNT] - 1;
;	  0388	    .EB
;	  0389	    end;					! End of NML$EQUEUE_REMOVE


						.SBTTL	EQ.REM NML$EQUEUE_REMOVE as EQ_REM
000000	010146 				EQ.REM::MOV	R1,-(SP)			;					0367
000002	016646  000004 				MOV	4(SP),-(SP)			; EQ,*					0386
000006	004767  000000G				JSR	PC,US.REMOVE
000012	016601  000006 				MOV	6(SP),R1			; EQ,*					0387
000016	005361  000014 				DEC	14(R1)
000022	005726 					TST	(SP)+				;					0381
000024	012601 					MOV	(SP)+,R1			;					0367
000026	000207 					RTS	PC
; Routine Size:  12 words,	Routine Base:  $CODE$ + 0210
; Maximum stack depth per invocation:  3 words


;	  0390	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  14
X00.22		NML$EQUEUE_RESET as EQ_RES			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (6)

;	  0391	%global_routine ('NML$EQUEUE_RESET', EQ: ref EVENT_QUEUE, LENGTH) : novalue =
;	  0392	
;	  0393	!++
;	  0394	! Functional description:
;	  0395	!
;	  0396	!       None
;	  0397	!
;	  0398	! Formal parameters: none
;	  0399	!
;	  0400	! Routine value: none
;	  0401	! Side effects: none
;	  0402	!
;	  0403	!--
;	  0404	
;	  0405	    begin
;	  0406	    NMU$SQUEUE_RESET (.EQ);
;	  0407	    EQ [EQ_COUNT] = 0;
;	  0408	    EQ [EQ_LENGTH] = .LENGTH;
;	  0409	    end;					! End of NML$EQUEUE_RESET


						.SBTTL	EQ.RES NML$EQUEUE_RESET as EQ_RES
000000	010146 				EQ.RES::MOV	R1,-(SP)			;					0391
000002	016601  000006 				MOV	6(SP),R1			; EQ,*					0406
000006	010146 					MOV	R1,-(SP)
000010	004767  000000G				JSR	PC,US.QRESET
000014	005061  000014 				CLR	14(R1)				;					0407
000020	016661  000006  000016 			MOV	6(SP),16(R1)			; LENGTH,*				0408
000026	005726 					TST	(SP)+				;					0405
000030	012601 					MOV	(SP)+,R1			;					0391
000032	000207 					RTS	PC
; Routine Size:  14 words,	Routine Base:  $CODE$ + 0240
; Maximum stack depth per invocation:  3 words


;	  0410	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  15
X00.22		NML$EVENT_INITIALIZE as EV_INI			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (7)

;	  0411	%global_routine ('NML$EVENT_INITIALIZE') : novalue =
;	  0412	
;	  0413	!++
;	  0414	! Functional description:
;	  0415	!
;	  0416	!       This routine initializes the entire event system including
;	  0417	!	creation of the Event Listener, Event Transmitter, Event Recorder,
;	  0418	!	and Event Processor. All queues are cleared.
;	  0419	!
;	  0420	! Formal parameters: none
;	  0421	!
;	  0422	! Routine value: none
;	  0423	! Side effects: none
;	  0424	!
;	  0425	!--
;	  0426	
;	  0427	    begin
;	  0428	!
;	  0429	! Create the tasks for Event Handling
;	  0430	!
;	L 0431	%if $MCB
;	  0432	%then
;	  0433	    NMU$SCHED_CREATE (GET_LOCAL_EVENT, 100, 0, ch$asciz ('GET-LOCAL-EVENTS'));
;	  0434	%fi
;	L 0435	%if NML$CFG_LOGGING_TRANSMITTER
;	  0436	%then
;	  0437	    begin                               ! Set up with host node for now.
;	  0438	
;	  0439	    macro
;	  0440	        TRANSMITTER_TO_ = 'TRANSMITTER-TO-' %;
;	  0441	
;	  0442	    psect plit = $own$;
;	  0443	    bind
;	  0444	        TRANSMITTER_NAME_PTR = ch$asciz (TRANSMITTER_TO_, 'xxxxx'),
;	  0445	        HOST_ID = HOST_TRANSMITTER [TQ_SINK_NODE];
;	  0446	    psect plit = $plit$;
;	  0447	
;	  0448	    NML$EQUEUE_RESET (HOST_TRANSMITTER, 6);
;	  0449	    $NML$GET_HOST_ID (uplit (NODE_ID_BUFFER_LENGTH), ch$ptr (HOST_ID,, 8));
;	  0450	    begin
;	  0451	    local NUMBER, PTR;
;	  0452	    linkage
;	  0453	        LNKG = JSR (register = 0, register = 1, register = 2; register = 0) :
;	  0454	                   nopreserve (1,2);
;	  0455	    external routine
;	  0456	        $CBDMG : LNKG novalue;
;	  0457	    NUMBER = ch$ptr (HOST_TRANSMITTER [TQ_SINK_NODE],, 8);
;	  0458	    NUMBER = GETW (NUMBER);
;	  0459	    $CBDMG (ch$plus (TRANSMITTER_NAME_PTR, %charcount (TRANSMITTER_TO_)),
;	  0460	            .NUMBER, 0; PTR);
;	  0461	    ch$wchar (0, .PTR);
;	  0462	    end;
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  16
X00.22		NML$EVENT_INITIALIZE as EV_INI			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (7)

;	  0463	    HOST_TRANSMITTER [TQ_TRANSMITTER_TASK] =
;	  0464	        NMU$SCHED_CREATE (NML$EVENT_TRANSMITTER, 300, 0, TRANSMITTER_NAME_PTR);
;	  0465	    end;
;	  0466	%fi
;	L 0467	%if NML$CFG_LOGGING_RECEIVER
;	U 0468	%then
;	U 0469	    NMU$SCHED_CREATE (NML$EVENT_RECEIVER, 250, 0,
;	U 0470	                      ch$asciz ('EVENT-LISTENER'));
;	  0471	%fi
;	L 0472	%if NML$CFG_LOGGING_FILE
;	U 0473	%then
;	U 0474	    NML$SET_VDB_PARAMETER (LOGGING_,
;	U 0475	                           LOGGING_FILE_PTR,
;	U 0476	                           LOGGING_NAME,
;	U 0477	                           uplit (LOGGING_NAME_ADR));
;	U 0478	    NML$SET_VDB_PARAMETER (LOGGING_,
;	U 0479	                           LOGGING_FILE_PTR,
;	U 0480	                           LOGGING_STATE,
;	U 0481	                           uplit (STATE_ON));
;	U 0482	    NML$EQUEUE_RESET (FILE_QUEUE, 6);
;	U 0483	    NMU$SCHED_CREATE (NML$LOGGING_FILE, 100, 0, ch$asciz ('EVENT-FILE'));
;	  0484	%fi
;	  0485	    end;					! End of NML$EVENT_INITIALIZE



000000						.PSECT	$PLIT$,  RO ,  D  
000000	   107     105     124 		P.AAA:	.ASCII	/GET/
000003	   055     114     117 			.ASCII	/-LO/
000006	   103     101     114 			.ASCII	/CAL/
000011	   055     105     126 			.ASCII	/-EV/
000014	   105     116     124 			.ASCII	/ENT/
000017	   123     000     000 			.ASCII	/S/<00><00>
000022	000011 				P.AAC:	.WORD	11



000040						.PSECT	$OWN$,  D  
000040	   124     122     101 		P.AAB:	.ASCII	/TRA/
000043	   116     123     115 			.ASCII	/NSM/
000046	   111     124     124 			.ASCII	/ITT/
000051	   105     122     055 			.ASCII	/ER-/
000054	   124     117     055 			.ASCII	/TO-/
000057	   170     170     170 			.ASCII	/xxx/
000062	   170     170     000 			.ASCII	/xx/<00>
000065	   000 					.ASCII	<00>
000066					IOSB:	.BLKW	2


						.GLOBL	LUN$NS, EFN$NS, $CBDMG
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  17
X00.22		NML$EVENT_INITIALIZE as EV_INI			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (7)

	000040'				TRANSMITTER.NAME.PTR=
							    P.AAB
	000022'				HOST.ID=	    HOST.TRANSMITTER+22


						.SBTTL	EV.INI NML$EVENT_INITIALIZE as EV_INI
000274						.PSECT	$CODE$,  RO 

000000	004167  000000G			EV.INI::JSR	R1,$SAVE2			;					0411
000004	005746 					TST	-(SP)
000006	012746  000000V				MOV	#GET.LOCAL.EVENT,-(SP)		;					0433
000012	012746  000144 				MOV	#144,-(SP)
000016	005046 					CLR	-(SP)
000020	012746  000000'				MOV	#P.AAA,-(SP)
000024	004767  000000G				JSR	PC,US.CREATE
000030	012716  000000'				MOV	#HOST.TRANSMITTER,(SP)		;					0448
000034	012746  000006 				MOV	#6,-(SP)
000040	004767  177700 				JSR	PC,EQ.RES
000044	005046 					CLR	-(SP)				;					0449
000046	005046 					CLR	-(SP)
000050	005046 					CLR	-(SP)
000052	012746  000003 				MOV	#3,-(SP)
000056	016746  000022'				MOV	P.AAC,-(SP)
000062	012746  000022'				MOV	#HOST.ID,-(SP)
000066	005046 					CLR	-(SP)
000070	012746  000066'				MOV	#IOSB,-(SP)
000074	012746  000000G				MOV	#EFN$NS,-(SP)
000100	012746  000000G				MOV	#LUN$NS,-(SP)
000104	012746  016670 				MOV	#16670,-(SP)
000110	012746  006003 				MOV	#6003,-(SP)
000114	104377 					EMT	377
000116	062706  000012 				ADD	#12,SP
000122	012701  000022'				MOV	#HOST.TRANSMITTER+22,R1		; *,NUMBER				0457
000126	112116 					MOVB	(R1)+,(SP)			; NUMBER,$$GETB.X			0458
000130	112166  000001 				MOVB	(R1)+,1(SP)			; NUMBER,$$GETB.X
000134	011601 					MOV	(SP),R1				; $$GETB.X,NUMBER
000136	012700  000057'				MOV	#TRANSMITTER.NAME.PTR+17,R0	;					0459
000142	005002 					CLR	R2
000144	004767  000000G				JSR	PC,$CBDMG
000150	105010 					CLRB	(R0)				; PTR					0461
000152	012746  000000G				MOV	#EV.XMT,-(SP)			;					0464
000156	012746  000454 				MOV	#454,-(SP)
000162	005046 					CLR	-(SP)
000164	012746  000040'				MOV	#TRANSMITTER.NAME.PTR,-(SP)
000170	004767  000000G				JSR	PC,US.CREATE
000174	010067  000020'				MOV	R0,HOST.TRANSMITTER+20		;					0463
000200	062706  000012 				ADD	#12,SP				;					0411
000204	000207 					RTS	PC
; Routine Size:  67 words,	Routine Base:  $CODE$ + 0274
; Maximum stack depth per invocation:  23 words

;	  0486	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  18
X00.22		NML$EVENT_PROCESSOR as EV_PRO			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (8)

;	  0487	%global_routine ('NML$EVENT_PROCESSOR', REB : ref RAW_EVENT_BLOCK) : novalue =
;	  0488	
;	  0489	!++
;	  0490	! FUNCTIONAL DESCRIPTION:
;	  0491	!
;	  0492	!
;	  0493	! FORMAL PARAMETERS
;	  0494	!
;	  0495	!	NONE.
;	  0496	!
;	  0497	! IMPLICIT INPUTS
;	  0498	!
;	  0499	!
;	  0500	! ROUTINE VALUE:
;	  0501	!
;	  0502	!	NONE.
;	  0503	!
;	  0504	! SIDE EFFECTS:
;	  0505	!
;	  0506	!	None
;	  0507	!
;	  0508	!--
;	  0509	
;	  0510	    begin
;	  0511	
;	  0512	    local
;	  0513	        OLD_TB,
;	  0514	        TB : TIME_BLOCK;
;	  0515	
;	  0516	    OLD_TB = .REB [REB_TIME_BLOCK];
;	  0517	    TIME_CURRENT (0, TB);
;	  0518	    REB [REB_TIME_BLOCK] = TB;
;	  0519	    REB [REB_SOURCE_POINTER] = NMU$NETWORK_LOCAL ();
;	L 0520	%if NML$CFG_LOGGING_RECEIVER
;	U 0521	%then
;	U 0522	    !
;	U 0523	    ! This is for SINK NODE EXECUTOR
;	U 0524	    !
;	U 0525	    REB [REB_SINK_FLAGS] = 0;
;	U 0526	    !
;	U 0527	    ! Pass if through the event filters
;	U 0528	    !
;	U 0529	    REB [REB_FILE] = 1;                 ! Hard coded for FILE
;	U 0530	    !
;	U 0531	    ! If there is a taker, pass it along
;	U 0532	    !
;	U 0533	    if .REB [REB_SINK_FLAGS] neq 0
;	U 0534	    then
;	U 0535	        NML$EVENT_RECORDER (.REB);
;	  0536	%fi
;	L 0537	%if NML$CFG_LOGGING_TRANSMITTER
;	  0538	%then
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  19
X00.22		NML$EVENT_PROCESSOR as EV_PRO			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (8)

;	  0539	    !
;	  0540	    ! This is for the other SINK NODEs
;	  0541	    !
;	  0542	    REB [REB_SINK_FLAGS] = 0;
;	  0543	    !
;	  0544	    ! Pass if through the event filters
;	  0545	    ! of SINK NODE 'HOST_TRANSMITTER [TQ_SINK_NODE]'.
;	  0546	    !
;	  0547	    REB [REB_FILE] = 1;                 ! Hard coded for FILE
;	  0548	    !
;	  0549	    ! If there is a taker, pass it along
;	  0550	    !
;	  0551	    if .REB [REB_SINK_FLAGS] neq 0
;	  0552	    then
;	  0553	        begin
;	  0554	
;	  0555	        local
;	  0556	            EB : ref EVENT_BUFFER;
;	  0557	
;	  0558	        if (EB = GET_EVENT_BUFFER (.REB)) neqa 0
;	  0559	        then
;	  0560	            NML$EQUEUE_INSERT (HOST_TRANSMITTER, .EB);
;	  0561	
;	  0562	        end;
;	  0563	%fi
;	  0564	
;	  0565	    REB [REB_TIME_BLOCK] = .OLD_TB;
;	  0566	    end;                                !End of NML$EVENT_PROCESSOR


						.GLOBL	SS$GTM


						.SBTTL	EV.PRO NML$EVENT_PROCESSOR as EV_PRO
000000	004167  000000G			EV.PRO::JSR	R1,$SAVE3			;					0487
000004	162706  000006 				SUB	#6,SP
000010	016601  000020 				MOV	20(SP),R1			; REB,*					0516
000014	012702  000016 				MOV	#16,R2
000020	060102 					ADD	R1,R2
000022	011203 					MOV	(R2),R3				; *,OLD.TB
000024	005046 					CLR	-(SP)				;					0517
000026	012746  000004 				MOV	#4,-(SP)
000032	060616 					ADD	SP,(SP)				; TB,*
000034	004767  000000G				JSR	PC,SS$GTM
000040	012712  000004 				MOV	#4,(R2)				;					0518
000044	060612 					ADD	SP,(R2)				; TB,*
000046	004767  000000G				JSR	PC,UN.LOCAL			;					0519
000052	010061  000002 				MOV	R0,2(R1)
000056	012700  000012 				MOV	#12,R0				;					0542
000062	060100 					ADD	R1,R0
000064	005010 					CLR	(R0)
000066	152710  000002 				BISB	#2,(R0)				;					0547
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  20
X00.22		NML$EVENT_PROCESSOR as EV_PRO			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (8)

000072	005710 					TST	(R0)				;					0551
000074	001413 					BEQ	1$
000076	010116 					MOV	R1,(SP)				;					0558
000100	004767  000000V				JSR	PC,GET.EVENT.BUFFER
000104	005700 					TST	R0				; EB
000106	001406 					BEQ	1$
000110	012716  000000'				MOV	#HOST.TRANSMITTER,(SP)		;					0560
000114	010046 					MOV	R0,-(SP)			; EB,*
000116	004767  177170 				JSR	PC,EQ.INS
000122	005726 					TST	(SP)+
000124	010312 				1$:	MOV	R3,(R2)				; OLD.TB,*				0565
000126	062706  000012 				ADD	#12,SP				;					0487
000132	000207 					RTS	PC
; Routine Size:  46 words,	Routine Base:  $CODE$ + 0502
; Maximum stack depth per invocation:  11 words


;	  0567	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  21
X00.22		NML$EVENT_RECORDER as EV_REC			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (9)

;	  0568	%global_routine ('NML$EVENT_RECORDER', REB : ref RAW_EVENT_BLOCK) : novalue =
;	  0569	
;	  0570	!++
;	  0571	! FUNCTIONAL DESCRIPTION:
;	  0572	!
;	  0573	!	This routine dequeues requests to the local node and logs
;	  0574	!	them to the appropriate Event Sink.
;	  0575	!
;	  0576	! FORMAL PARAMETERS
;	  0577	!
;	  0578	!	NONE.
;	  0579	!
;	  0580	! IMPLICIT INPUTS
;	  0581	!
;	  0582	!	NML Event request queue.
;	  0583	!
;	  0584	! ROUTINE VALUE:
;	  0585	!
;	  0586	!	NONE.
;	  0587	!
;	  0588	! SIDE EFFECTS:
;	  0589	!
;	  0590	!	None
;	  0591	!
;	  0592	!--
;	  0593	
;	  0594	    begin
;	  0595	
;	  0596	    literal
;	  0597	        LOGGING_STATE = 0,
;	  0598	        STATE_ON = 0,
;	  0599	        STATE_OFF = 1,
;	  0600	        STATE_HOLD = 2;
;	  0601	
;	L 0602	%if NML$CFG_LOGGING_FILE
;	U 0603	%then
;	U 0604	    !
;	U 0605	    ! Only the FILE sink is supported at present
;	U 0606	    !
;	U 0607	
;	U 0608	    if .REB [REB_FILE] neq 0            ! If directed to FILE
;	U 0609	    then                                ! then
;	U 0610	        begin                           ! check the STATE.
;	U 0611	
;	U 0612	        local
;	U 0613	            STATE;
;	U 0614	
;	U 0615	        if not NML$GET_VDB_PARAMETER (LOGGING_,
;	U 0616	                                      LOGGING_FILE_PTR,
;	U 0617	                                      LOGGING_STATE,
;	U 0618	                                      STATE)
;	U 0619	        then STATE = STATE_OFF;         ! Not defined...
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  22
X00.22		NML$EVENT_RECORDER as EV_REC			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (9)

;	U 0620	
;	U 0621	        selectone .STATE of
;	U 0622	            set
;	U 0623	            [STATE_OFF] :               ! Discard.
;	U 0624	                0;
;	U 0625	            [otherwise] :               ! Send to FILE task.
;	U 0626	
;	U 0627	                if (STATE = GET_EVENT_BUFFER (.REB)) neqa 0 ! make a copy
;	U 0628	                then                    ! and
;	U 0629	                    NML$EQUEUE_INSERT (FILE_QUEUE, .STATE); ! send to task.
;	U 0630	
;	U 0631	            tes;
;	U 0632	
;	U 0633	        end;
;	  0634	%fi
;	L 0635	%if not NML$CFG_LOGGING_RECEIVER
;	  0636	%then
;	  0637	    0                                   ! To avoid empty compound expression
;	  0638	%fi
;	  0639	    end;                                !End of NML$EVENT_RECORDER


						.SBTTL	EV.REC NML$EVENT_RECORDER as EV_REC
000000	000207 				EV.REC::RTS	PC				;					0568
; Routine Size:  1 word,	Routine Base:  $CODE$ + 0636
; Maximum stack depth per invocation:  0 words


;	  0640	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  23
X00.22		NML$LOGGING_FILE as LG_FIL			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (10)

;	  0641	%routine ('NML$LOGGING_FILE', TASK, RESOURCE) : novalue =
;	  0642	
;	  0643	!++
;	  0644	! FUNCTIONAL DESCRIPTION:
;	  0645	!
;	  0646	!	This routine dequeues requests to the local node and logs
;	  0647	!	them to the appropriate Event Sink.
;	  0648	!
;	  0649	! FORMAL PARAMETERS
;	  0650	!
;	  0651	!	NONE.
;	  0652	!
;	  0653	! IMPLICIT INPUTS
;	  0654	!
;	  0655	!	NML Event request queue.
;	  0656	!
;	  0657	! ROUTINE VALUE:
;	  0658	!
;	  0659	!	NONE.
;	  0660	!
;	  0661	! SIDE EFFECTS:
;	  0662	!
;	  0663	!	None
;	  0664	!
;	  0665	!--
;	  0666	
;	  0667	    begin
;	  0668	
;	L 0669	%if NML$CFG_LOGGING_FILE
;	U 0670	%then
;	U 0671	
;	U 0672	    !
;	U 0673	    ! Top level loop for Event requests
;	U 0674	    !
;	U 0675	
;	U 0676	    while $true do                      ! Main NML Request processing loop
;	U 0677		begin
;	U 0678	
;	U 0679	        local
;	U 0680		    EB : ref EVENT_BUFFER;      ! Event buffer
;	U 0681	
;	U 0682		EB = NML$EQUEUE_REMOVE (FILE_QUEUE);
;	U 0683	!       RTN_COD = NML$NICE_VERIFY (.REQ) ; ! Verify the Event message syntax
;	U 0684	
;	U 0685	        selectone
;	U 0686	            begin
;	U 0687	
;	U 0688	            while $true do
;	U 0689	                begin
;	U 0690	
;	U 0691	                local
;	U 0692	                    STATE;
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  24
X00.22		NML$LOGGING_FILE as LG_FIL			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (10)

;	U 0693	
;	U 0694	                if not NML$GET_VDB_PARAMETER (LOGGING_,
;	U 0695	                                              LOGGING_FILE_PTR,
;	U 0696	                                              LOGGING_STATE,
;	U 0697	                                              STATE)
;	U 0698	                then STATE = STATE_OFF;
;	U 0699	
;	U 0700	                if .STATE neq STATE_HOLD then exitloop .STATE;
;	U 0701	
;	U 0702	                !
;	U 0703	                ! Wait for state to change
;	U 0704	                !
;	U 0705	                NMU$SCHED_SLEEP (10);   ! Temporary hack
;	U 0706	                end
;	U 0707	
;	U 0708	            end
;	U 0709	        of
;	U 0710	            set
;	U 0711	            [STATE_OFF]:
;	U 0712	                NMU$MEMORY_RELEASE (.EB, .EB [EB_ALLOCATION]);
;	U 0713	            [otherwise] :
;	U 0714	                begin
;	U 0715	%if $TOPS20
;	U 0716	%then
;	U 0717	!
;	U 0718	! This code does all processing for SYSERR logging under TOPS-20
;	U 0719	!
;	U 0720	                DECLARE_JSYS (GTAD, TIME, SYSGT, SYERR);
;	U 0721	
;	U 0722	                field
;	U 0723	                    SYSERR_FIELDS =
;	U 0724	                        set
;	U 0725	                        SY_COD = [0, 27, 9, 0], ! SYSERR Error Code
;	U 0726	                        SY_T20 = [0, 18, 1, 0], ! Bit flagging TOPS-20 Made Entry
;	U 0727	                        SY_VER = [0, 12, 6, 0], ! Header Version
;	U 0728	                        SY_HLN = [0, 9, 3, 0], ! Header Length
;	U 0729	                        SY_LEN = [0, 0, 9, 0], ! Data Length
;	U 0730	                        SY_DTE = [1, 0, 36, 0], ! Date of Entry
;	U 0731	                        SY_UPT = [2, 0, 36, 0], ! System Uptime at Time of Logging
;	U 0732	                        SY_PSN = [3, 0, 36, 0], ! Processor Serial Number
;	U 0733	                        SY_DAT = [4, 0, 0, 0], ! Data portion of Entry
;	U 0734	                        SY_DTL = [4, 0, 36, 0], ! Length (in 8-bit Bytes of
;	U 0735	                                                !  remainder of data portion
;	U 0736	                        SY_DTS = [5, 0, 0, 0] ! Event Data String
;	U 0737	                        tes;
;	U 0738	
;	U 0739	                literal
;	U 0740	                    SYSERR_HEADER_ALLOCATION = 5,
;	U 0741	                    SYSERR_ERROR_CODE = %O'240';
;	U 0742	
;	U 0743	                local
;	U 0744	                    SYSERR_ENTRY : ref block field (SYSERR_FIELDS),
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  25
X00.22		NML$LOGGING_FILE as LG_FIL			 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (10)

;	U 0745	                    SYSERR_ALLOCATION;
;	U 0746	
;	U 0747	!
;	U 0748	! Allocate SYSERR Entry
;	U 0749	!
;	U 0750	                SYSERR_ALLOCATION = SYSERR_HEADER_ALLOCATION + ((.EB [EB_LENGTH] + 4)/4);
;	U 0751	                SYSERR_ENTRY = NMU$MEMORY_GET (.SYSERR_ALLOCATION);
;	U 0752	                SYSERR_ENTRY [SY_COD] = SYSERR_ERROR_CODE;
;	U 0753	                SYSERR_ENTRY [SY_T20] = 1;
;	U 0754	                SYSERR_ENTRY [SY_VER] = 1;
;	U 0755	                SYSERR_ENTRY [SY_HLN] = SYSERR_HEADER_ALLOCATION - 1;
;	U 0756	                SYSERR_ENTRY [SY_LEN] = ((.EB [EB_LENGTH] + 4)/4) + 1;
;	U 0757	                $$GTAD (; SYSERR_ENTRY [SY_DTE]);
;	U 0758	                begin
;	U 0759	
;	U 0760	                local
;	U 0761	                    MILLISECONDS;
;	U 0762	
;	U 0763	                $$TIME (; MILLISECONDS);
;	U 0764	                SYSERR_ENTRY [SY_UPT] = .MILLISECONDS/((1000*3600*24)/(1^18));
;	U 0765	                                        ! Convert to Days,,Fractions of Days
;	U 0766	                end;
;	U 0767	                $$SYSGT (%sixbit'APRID'; SYSERR_ENTRY [SY_PSN]);
;	U 0768	                SYSERR_ENTRY [SY_DTL] = .EB [EB_LENGTH];
;	U 0769	                ch$move (.EB [EB_LENGTH], ch$ptr (EB [EB_BUFFER],, 8), ch$ptr (SYSERR_ENTRY [SY_DTS],, 8));
;	U 0770	                $$SYERR (.SYSERR_ENTRY, .SYSERR_ENTRY [SY_HLN] + .SYSERR_ENTRY [SY_LEN]);
;	U 0771	%fi
;	U 0772	                NMU$MEMORY_RELEASE (.SYSERR_ENTRY, .SYSERR_ALLOCATION);
;	U 0773	                NMU$MEMORY_RELEASE (.EB, .EB [EB_ALLOCATION]);
;	U 0774	                end;
;	U 0775	            tes;
;	U 0776	
;	U 0777		end;
;	  0778	%else
;	  0779	    0                                   ! To avoid empty compound expression
;	  0780	%fi
;	  0781	    end;                                !End of NML$LOGGING_FILE


						.SBTTL	LG.FIL NML$LOGGING_FILE as LG_FIL
000000	000207 				LG.FIL: RTS	PC				;					0641
; Routine Size:  1 word,	Routine Base:  $CODE$ + 0640
; Maximum stack depth per invocation:  0 words


;	  0782	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  26
X00.22		NML$TRANSMITTER_QUEUE_GET as EV_GET		 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (11)

;	  0783	%global_routine ('NML$TRANSMITTER_QUEUE_GET') =
;	  0784	
;	  0785	!++
;	  0786	! FUNCTIONAL DESCRIPTION:
;	  0787	!
;	  0788	!
;	  0789	! FORMAL PARAMETERS
;	  0790	!
;	  0791	!	NONE.
;	  0792	!
;	  0793	! IMPLICIT INPUTS
;	  0794	!
;	  0795	!
;	  0796	! ROUTINE VALUE:
;	  0797	!
;	  0798	!	NONE.
;	  0799	!
;	  0800	! SIDE EFFECTS:
;	  0801	!
;	  0802	!	None
;	  0803	!
;	  0804	!--
;	  0805	
;	  0806	    begin
;	L 0807	%if NML$CFG_LOGGING_TRANSMITTER
;	  0808	%then
;	  0809	    !
;	  0810	    ! Wait on the HOST queue for an entry to be inserted
;	  0811	    !
;	  0812	
;	  0813	    while NMU$QUEUE_SCAN (HOST_TRANSMITTER, 0, EMPTY_QUEUE_CHECK) eqla 0 do
;	  0814		NMU$SCHED_WAIT (HOST_TRANSMITTER [$sub_field (TQ_QUEUE, Q_EVENT)], 0);
;	  0815	
;	  0816	    HOST_TRANSMITTER                    ! Return the queue address
;	U 0817	%else
;	U 0818	    0
;	  0819	%fi
;	  0820	    end;                                !End of NML$TRANSMITTER_QUEUE_GET


						.SBTTL	EV.GET NML$TRANSMITTER_QUEUE_GET as EV_GET
000000	012746  000000'			EV.GET::
000000					1$:	MOV	#HOST.TRANSMITTER,-(SP)		;					0813
000004	005046 					CLR	-(SP)
000006	012746  000000V				MOV	#EMPTY.QUEUE.CHECK,-(SP)
000012	004767  000000G				JSR	PC,UQ.SCAN
000016	062706  000006 				ADD	#6,SP
000022	005700 					TST	R0
000024	001007 					BNE	2$
000026	012746  000006'				MOV	#HOST.TRANSMITTER+6,-(SP)	;					0814
000032	005046 					CLR	-(SP)
000034	004767  000000G				JSR	PC,US.WAIT
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  27
X00.22		NML$TRANSMITTER_QUEUE_GET as EV_GET		 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (11)

000040	022626 					CMP	(SP)+,(SP)+
000042	000756 					BR	1$				;					0813
000044	012700  000000'			2$:	MOV	#HOST.TRANSMITTER,R0		;					0783
000050	000207 					RTS	PC
; Routine Size:  21 words,	Routine Base:  $CODE$ + 0642
; Maximum stack depth per invocation:  4 words


;	  0821	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  28
X00.22		EMPTY_QUEUE_CHECK				 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (12)

;	  0822	%routine ('EMPTY_QUEUE_CHECK', ENTRY, DATA) =
;	  0823	
;	  0824	!++
;	  0825	! FUNCTIONAL DESCRIPTION:
;	  0826	!
;	  0827	!
;	  0828	! FORMAL PARAMETERS
;	  0829	!
;	  0830	!	NONE.
;	  0831	!
;	  0832	! IMPLICIT INPUTS
;	  0833	!
;	  0834	!
;	  0835	! ROUTINE VALUE:
;	  0836	!
;	  0837	!	NONE.
;	  0838	!
;	  0839	! SIDE EFFECTS:
;	  0840	!
;	  0841	!	None
;	  0842	!
;	  0843	!--
;	  0844	
;	  0845	    begin
;	  0846	    .ENTRY
;	  0847	    end;                                !End of EMPTY_QUEUE_CHECK


						.SBTTL	EMPTY.QUEUE.CHECK EMPTY_QUEUE_CHECK
000000	016600  000004 			EMPTY.QUEUE.CHECK:
						MOV	4(SP),R0			; ENTRY,*				0822
000004	000207 					RTS	PC
; Routine Size:  3 words,	Routine Base:  $CODE$ + 0714
; Maximum stack depth per invocation:  0 words


;	  0848	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  29
X00.22		GET_EVENT_BUFFER				 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (13)

;	  0849	%routine ('GET_EVENT_BUFFER', REB : ref RAW_EVENT_BLOCK) =
;	  0850	
;	  0851	!++
;	  0852	! FUNCTIONAL DESCRIPTION:
;	  0853	!
;	  0854	!
;	  0855	! FORMAL PARAMETERS
;	  0856	!
;	  0857	!	NONE.
;	  0858	!
;	  0859	! IMPLICIT INPUTS
;	  0860	!
;	  0861	!
;	  0862	! ROUTINE VALUE:
;	  0863	!
;	  0864	!	NONE.
;	  0865	!
;	  0866	! SIDE EFFECTS:
;	  0867	!
;	  0868	!	None
;	  0869	!
;	  0870	!--
;	  0871	
;	  0872	    begin
;	  0873	
;	  0874	    local
;	  0875	        EB : ref EVENT_BUFFER;          ! Event buffer
;	  0876	
;	  0877	    begin
;	  0878	
;	  0879	    local
;	  0880	        ALLOCATION;
;	  0881	
;	  0882	    ALLOCATION = EVENT_BUFFER_ALLOCATION +      ! Event buffer header
;	  0883	                 1 +                            ! FUNCTION CODE
;	  0884	                 1 +                            ! SINK FLAGS
;	  0885	                 2 +                            ! EVENT CODE
;	  0886	                 2 + 2 + 2 +                    ! EVENT TIME
;	  0887	                 2 + 7 +                        ! SOURCE NODE
;	  0888	                 2 + max (0, 9, 17) +           ! EVENT ENTITY
;	  0889	                 .REB [REB_DATA_LENGTH];        ! EVENT_DATA
;	  0890	
;	  0891	    if (EB = NMU$MEMORY_GET (.ALLOCATION)) eqla 0
;	  0892	    then
;	  0893	        return 0;                       ! No memory.
;	  0894	
;	  0895	    EB [EB_ALLOCATION] = .ALLOCATION;   ! Save allocation length.
;	  0896	    end;
;	  0897	
;	  0898	    begin                               ! Construct NICE event message
;	  0899	
;	  0900	    local
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  30
X00.22		GET_EVENT_BUFFER				 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (13)

;	  0901	        OUT_PTR;
;	  0902	
;	  0903	    OUT_PTR = ch$ptr (EB [EB_BUFFER],, 8);
;	  0904	    ch$wchar_a (1, OUT_PTR);            ! FUNCTION CODE
;	  0905	    ch$wchar_a (.REB [REB_SINK_FLAGS], OUT_PTR); ! SINK FLAGS
;	  0906	    PUTW ((REB [REB_EVENT_CODE]), OUT_PTR); ! EVENT CODE
;	  0907	    begin                               ! EVENT TIME
;	  0908	
;	  0909	    bind
;	  0910	        TB = .REB [REB_TIME_BLOCK] : TIME_BLOCK;
;	  0911	
;	L 0912	%if $TOPS20 or $TOPS10
;	U 0913	%then
;	U 0914	    local JULIAN, SECONDS;
;	U 0915	    DECLARE_JSYS (IDCNV, ODCNV);
;	U 0916	
;	U 0917	    $$ODCNV (.TB, 0;,,SECONDS);
;	U 0918	    SECONDS = .SECONDS <0, 18>;         ! Seconds since midnight
;	U 0919	    begin
;	U 0920	    bind BASE = JULIAN;
;	U 0921	    $$IDCNV (1977^18 + 0, 0^18, 0;,BASE); ! Get 1-JAN-77
;	U 0922	    JULIAN = .TB - .BASE;
;	U 0923	    JULIAN = .JULIAN <18, 18>;          ! days from then to now.
;	U 0924	    end;
;	U 0925	    JULIAN = .JULIAN^1;                 ! Half-days
;	U 0926	
;	U 0927	    if .SECONDS geq 12*60*60
;	U 0928	    then
;	U 0929	        begin
;	U 0930	        SECONDS = .SECONDS - 12*60*60;
;	U 0931	        JULIAN = .JULIAN + 1;
;	U 0932	        end;
;	U 0933	
;	U 0934	    PUTW (JULIAN, OUT_PTR);             ! JULIAN HALF DAY
;	U 0935	    PUTW (SECONDS, OUT_PTR);            ! SECOND
;	U 0936	    PUTB (0, OUT_PTR);                  ! MILLISECOND
;	U 0937	    PUTB (1^7, OUT_PTR);
;	  0938	%else
;	L 0939	%if $MCB
;	  0940	%then
;	  0941	    PUTW ((TB [TIME_JULIAN]), OUT_PTR); ! JULIAN HALF DAY
;	  0942	    PUTW ((TB [TIME_SECOND]), OUT_PTR); ! SECOND
;	  0943	    PUTW ((TB [TIME_MILLISECOND]), OUT_PTR); ! MILLISECOND
;	U 0944	%else
;	U 0945	    PUTW (uplit (0), OUT_PTR);          ! JULIAN HALF DAY
;	U 0946	    PUTW (uplit (0), OUT_PTR);          ! SECOND
;	U 0947	    PUTW (uplit (0), OUT_PTR);          ! MILLISECOND
;	  0948	%fi
;	  0949	%fi
;	  0950	    end;
;	  0951	    begin                               ! SOURCE NODE
;	  0952	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  31
X00.22		GET_EVENT_BUFFER				 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (13)

;	  0953	    local
;	  0954	        TEMP_PTR;
;	  0955	
;	  0956	    TEMP_PTR = .REB [REB_SOURCE_POINTER]; ! Copy node-id in
;	  0957	    ch$wchar_a (ch$rchar_a (TEMP_PTR), OUT_PTR);
;	  0958	    ch$wchar_a (ch$rchar_a (TEMP_PTR), OUT_PTR);
;	  0959	                                        ! NODE ADDRESS
;	  0960	    OUT_PTR = ch$move (ch$rchar (.TEMP_PTR) + 1, .TEMP_PTR, .OUT_PTR);
;	  0961	                                        ! NODE NAME
;	  0962	    end;
;	  0963	    begin                               ! EVENT ENTITY
;	  0964	
;	  0965	    local
;	  0966	        LENGTH;
;	  0967	
;	  0968	    PUTW ((REB [REB_ENTITY_TYPE]), OUT_PTR); ! ENTITY TYPE
;	  0969	
;	  0970	    selectone .REB [REB_ENTITY_TYPE] of  ! ENTITY ID
;	  0971	        set
;	  0972	        [NODE_E] :
;	  0973	            OUT_PTR = ch$move (2 + 1 + ch$rchar (ch$plus (.REB [REB_ENTITY_POINTER], 2)),
;	  0974	                               .REB [REB_ENTITY_POINTER], .OUT_PTR);
;	  0975	        [LINE_, CIRCUIT_, MODULE_] :
;	  0976	            OUT_PTR = ch$move (1 + ch$rchar (.REB [REB_ENTITY_POINTER]),
;	  0977	                               .REB [REB_ENTITY_POINTER], .OUT_PTR);
;	  0978	        [LOGGING_] :
;	  0979	              ch$wchar_a (ch$rchar (.REB [REB_ENTITY_POINTER]), OUT_PTR);
;	  0980	        [otherwise] :
;	  0981	            0;
;	  0982	        tes;
;	  0983	
;	  0984	    end;
;	  0985	    begin                               ! EVENT DATA
;	  0986	
;	  0987	    local
;	  0988	        LENGTH;
;	  0989	
;	  0990	    if (LENGTH = .REB [REB_DATA_LENGTH]) neq 0
;	  0991	    then
;	  0992	        OUT_PTR = ch$move (.LENGTH, .REB [REB_DATA_POINTER], .OUT_PTR);
;	  0993	
;	  0994	    end;
;	  0995	    EB [EB_LENGTH] = ch$diff (.OUT_PTR, ch$ptr (EB [EB_BUFFER],, 8));
;	  0996	                                        ! Insert length of message.
;	  0997	    end;
;	  0998	    .EB                                 ! Return address of buffer block.
;	  0999	    end;                                !End of GET_EVENT_BUFFER


						.SBTTL	GET.EVENT.BUFFER GET_EVENT_BUFFER
000000	004167  000000G			GET.EVENT.BUFFER:
						JSR	R1,$SAVE5			;					0849
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  32
X00.22		GET_EVENT_BUFFER				 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (13)

000004	016603  000016 				MOV	16(SP),R3			; REB,*					0889
000010	016301  000006 				MOV	6(R3),R1			; *,ALLOCATION				0888
000014	062701  000060 				ADD	#60,R1				; *,ALLOCATION
000020	010146 					MOV	R1,-(SP)			; ALLOCATION,*				0891
000022	004767  000000G				JSR	PC,UM.GET
000026	005726 					TST	(SP)+
000030	010002 					MOV	R0,R2				; *,EB
000032	001002 					BNE	1$
000034	005000 					CLR	R0				;					0893
000036	000207 					RTS	PC
000040	010162  000006 			1$:	MOV	R1,6(R2)			; ALLOCATION,*(EB)			0895
000044	010204 					MOV	R2,R4				; EB,*					0903
000046	062704  000012 				ADD	#12,R4
000052	010405 					MOV	R4,R5				; *,OUT.PTR
000054	112725  000001 				MOVB	#1,(R5)+			; *,OUT.PTR				0904
000060	116325  000012 				MOVB	12(R3),(R5)+			; *,OUT.PTR				0905
000064	116325  000010 				MOVB	10(R3),(R5)+			; *,OUT.PTR				0906
000070	116325  000011 				MOVB	11(R3),(R5)+			; *,OUT.PTR
000074	016300  000016 				MOV	16(R3),R0			;					0907
000100	111025 					MOVB	(R0),(R5)+			; *,OUT.PTR				0941
000102	116025  000001 				MOVB	1(R0),(R5)+			; *,OUT.PTR
000106	116025  000002 				MOVB	2(R0),(R5)+			; *,OUT.PTR				0942
000112	116025  000003 				MOVB	3(R0),(R5)+			; *,OUT.PTR
000116	116025  000004 				MOVB	4(R0),(R5)+			; *,OUT.PTR				0943
000122	116025  000005 				MOVB	5(R0),(R5)+			; *,OUT.PTR
000126	016300  000002 				MOV	2(R3),R0			; *,TEMP.PTR				0956
000132	112025 					MOVB	(R0)+,(R5)+			; TEMP.PTR,OUT.PTR			0957
000134	112025 					MOVB	(R0)+,(R5)+			; TEMP.PTR,OUT.PTR			0958
000136	005046 					CLR	-(SP)				;					0960
000140	111016 					MOVB	(R0),(SP)			; TEMP.PTR,*
000142	005216 					INC	(SP)
000144	010046 					MOV	R0,-(SP)			; TEMP.PTR,*
000146	010546 					MOV	R5,-(SP)			; OUT.PTR,*
000150	004767  000000G				JSR	PC,BL$MOV
000154	010005 					MOV	R0,R5				; *,OUT.PTR
000156	012701  000014 				MOV	#14,R1				;					0968
000162	060301 					ADD	R3,R1
000164	111125 					MOVB	(R1),(R5)+			; *,OUT.PTR
000166	116125  000001 				MOVB	1(R1),(R5)+			; *,OUT.PTR
000172	005711 					TST	(R1)				;					0970
000174	001007 					BNE	2$
000176	011300 					MOV	(R3),R0				;					0973
000200	005016 					CLR	(SP)
000202	116016  000002 				MOVB	2(R0),(SP)
000206	062716  000003 				ADD	#3,(SP)
000212	000415 					BR	4$				;					0974
000214	021127  000001 			2$:	CMP	(R1),#1				;					0970
000220	001406 					BEQ	3$
000222	021127  000003 				CMP	(R1),#3
000226	002416 					BLT	5$
000230	021127  000004 				CMP	(R1),#4
000234	003013 					BGT	5$
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  33
X00.22		GET_EVENT_BUFFER				 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (13)

000236	005016 				3$:	CLR	(SP)				;					0976
000240	117316  000000 				MOVB	@0(R3),(SP)
000244	005216 					INC	(SP)
000246	011346 				4$:	MOV	(R3),-(SP)			;					0977
000250	010546 					MOV	R5,-(SP)			; OUT.PTR,*
000252	004767  000000G				JSR	PC,BL$MOV
000256	010005 					MOV	R0,R5				; *,OUT.PTR				0976
000260	022626 					CMP	(SP)+,(SP)+
000262	000405 					BR	6$				;					0970
000264	021127  000002 			5$:	CMP	(R1),#2
000270	001002 					BNE	6$
000272	117325  000000 				MOVB	@0(R3),(R5)+			; *,OUT.PTR				0979
000276	016300  000006 			6$:	MOV	6(R3),R0			; *,LENGTH				0990
000302	001410 					BEQ	7$
000304	010016 					MOV	R0,(SP)				; LENGTH,*				0992
000306	016346  000004 				MOV	4(R3),-(SP)
000312	010546 					MOV	R5,-(SP)			; OUT.PTR,*
000314	004767  000000G				JSR	PC,BL$MOV
000320	010005 					MOV	R0,R5				; *,OUT.PTR
000322	022626 					CMP	(SP)+,(SP)+
000324	010562  000010 			7$:	MOV	R5,10(R2)			; OUT.PTR,*(EB)				0995
000330	160462  000010 				SUB	R4,10(R2)			; *,*(EB)
000334	062706  000006 				ADD	#6,SP				;					0872
000340	010200 					MOV	R2,R0				; EB,*					0849
000342	000207 					RTS	PC
; Routine Size:  114 words,	Routine Base:  $CODE$ + 0722
; Maximum stack depth per invocation:  12 words


;	  1000	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  34
X00.22		GET_LOCAL_EVENT					 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (14)

;	  1001	%routine ('GET_LOCAL_EVENT', TASK, RESOURCE) : novalue =
;	  1002	
;	  1003	!++
;	  1004	! FUNCTIONAL DESCRIPTION:
;	  1005	!
;	  1006	!
;	  1007	! FORMAL PARAMETERS
;	  1008	!
;	  1009	!	NONE.
;	  1010	!
;	  1011	! IMPLICIT INPUTS
;	  1012	!
;	  1013	!
;	  1014	! ROUTINE VALUE:
;	  1015	!
;	  1016	!	NONE.
;	  1017	!
;	  1018	! SIDE EFFECTS:
;	  1019	!
;	  1020	!	None
;	  1021	!
;	  1022	!--
;	  1023	
;	  1024	    begin
;	  1025	
;	L 1026	%if $MCB
;	  1027	%then
;	  1028	
;	  1029	    label
;	  1030	        PROCESS_MESSAGE;
;	  1031	
;	  1032	    literal
;	  1033		EVENT_BUFFER_LENGTH = 300,
;	  1034		EVENT_BUFFER_SIZE = ch$allocation (EVENT_BUFFER_LENGTH, 8),
;	  1035		EVENT_BUFFER_ALLOCATION = EVENT_BUFFER_SIZE*%upval;
;	  1036	
;	  1037	    external
;	  1038	        UN$USER : block [ch$allocation (1 + 16, 8)],
;	  1039	        UN$PASSWORD : block [ch$allocation (1 + 8, 8)],
;	  1040	        UN$ACCOUNT : block [ch$allocation (1 + 16, 8)];
;	  1041	
;	  1042	    local
;	  1043		RAW_BUFFER_POINTER,             ! Address of RAW Event Data
;	  1044		RAW_COUNT,                      ! Length of Event Data Read
;	  1045	        REB : RAW_EVENT_BLOCK;          ! Event block
;	  1046	
;	  1047	    RAW_BUFFER_POINTER = ch$ptr (NMU$MEMORY_GET (EVENT_BUFFER_ALLOCATION),, 8);
;	  1048							! Get Single RAW Buffer
;	  1049	!
;	  1050	! Loop reading Events and copying them to Processed Buffers
;	  1051	!
;	  1052	
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  35
X00.22		GET_LOCAL_EVENT					 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (14)

;	  1053	    while $true do
;	  1054	PROCESS_MESSAGE:
;	  1055		begin
;	  1056	
;	  1057	        local
;	  1058	            IN_PTR;                     ! Pointer into RAW Event
;	  1059	
;	  1060	!
;	  1061	! Read an Event and format it into the Processed Buffer
;	  1062	!
;	  1063		IN_PTR = .RAW_BUFFER_POINTER;
;	  1064	        do begin
;	  1065	           RAW_COUNT = $NMU_NMX_READ_EVENT (.IN_PTR, EVENT_BUFFER_LENGTH);
;	  1066	           end
;	  1067	        until .RAW_COUNT gtr 0;
;	  1068	!
;	  1069	        selectoneu GETB (IN_PTR) of
;	  1070	            set
;	  1071	            [0] :                       ! Access control info
;	  1072	                begin
;	  1073	
;	  1074	                local
;	  1075	                    CNT;
;	  1076	
;	  1077	                ! The EXECUTOR MANAGEMENT USER
;	  1078	
;	  1079	                CNT = ch$rchar (.IN_PTR) + 1;
;	  1080	                if .CNT gtr (1 + 16) then leave PROCESS_MESSAGE;
;	  1081	                ch$move (.CNT, .IN_PTR, ch$ptr (UN$USER,, 8));
;	  1082	                IN_PTR = ch$plus (.IN_PTR, .CNT);
;	  1083	
;	  1084	                ! The EXECUTOR MANAGEMENT PASSWORD
;	  1085	
;	  1086	                CNT = ch$rchar (.IN_PTR) + 1;
;	  1087	                if .CNT gtr (1 + 8) then leave PROCESS_MESSAGE;
;	  1088	                ch$move (.CNT, .IN_PTR, ch$ptr (UN$PASSWORD,, 8));
;	  1089	                IN_PTR = ch$plus (.IN_PTR, .CNT);
;	  1090	
;	  1091	                ! The EXECUTOR MANAGEMENT ACCOUNT
;	  1092	
;	  1093	                CNT = ch$rchar (.IN_PTR) + 1;
;	  1094	                if .CNT gtr (1 + 16) then leave PROCESS_MESSAGE;
;	  1095	                ch$move (.CNT, .IN_PTR, ch$ptr (UN$ACCOUNT,, 8));
;	  1096	                IN_PTR = ch$plus (.IN_PTR, .CNT);
;	  1097	
;	  1098	                ! The EXECUTOR IDENTIFICATION
;	  1099	
;	  1100	                CNT = ch$rchar (.IN_PTR);
;	  1101	                if .CNT gtr 32 then leave PROCESS_MESSAGE;
;	  1102	                NML$SET_VDB_PARAMETER (NODE_E,
;	  1103	                                       NMU$NETWORK_LOCAL (),
;	  1104	                                       100, ! IDENTIFICATION
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  36
X00.22		GET_LOCAL_EVENT					 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (14)

;	  1105	                                       %ref(.IN_PTR));
;	  1106	
;	  1107	                leave PROCESS_MESSAGE;
;	  1108	                end;
;	  1109	            [1] :                       ! Event
;	  1110	                ;                       ! (fall into event processing code)
;	  1111	            [otherwise] :               ! Undefined
;	  1112	                leave PROCESS_MESSAGE;
;	  1113	            tes;
;	  1114	!
;	  1115		REB [REB_EVENT_CODE] = GETW (IN_PTR); ! Event Class/Type
;	  1116	        REB [REB_TIME_BLOCK] = 0;
;	  1117	
;	  1118		selectoneu (REB [REB_ENTITY_TYPE] = GETW (IN_PTR)) of
;	  1119		    set
;	  1120	
;	  1121		    [NODE_E] : 				! Node Entity
;	  1122			begin
;	  1123	
;	  1124			local
;	  1125	                    LENGTH,
;	  1126			    TEMP_PTR;
;	  1127	
;	  1128			REB [REB_ENTITY_POINTER] = TEMP_PTR = .RAW_BUFFER_POINTER;
;	  1129			ch$wchar_a (ch$rchar_a (IN_PTR), TEMP_PTR);
;	  1130			ch$wchar_a (ch$rchar_a (IN_PTR), TEMP_PTR);
;	  1131							! Store Node Address
;	  1132			ch$wchar (0, .TEMP_PTR);        ! and set for mapping function
;	  1133			LENGTH = NODE_ID_BUFFER_LENGTH;	! Maximum Length Node_ID
;	  1134			$NML$MAP_NODE_ID (LENGTH, (.RAW_BUFFER_POINTER)); ! Map to Node_Id
;	  1135			end;
;	  1136	
;	  1137		    [LINE_, CIRCUIT_, MODULE_] : 	! Other Entities
;	  1138			begin
;	  1139	
;	  1140	                local
;	  1141	                    LENGTH;
;	  1142	
;	  1143	                REB [REB_ENTITY_POINTER] = .IN_PTR;
;	  1144	                LENGTH = ch$rchar (.IN_PTR) + 1;
;	  1145	                IN_PTR = ch$plus (.IN_PTR, .LENGTH);
;	  1146			end;
;	  1147		    [otherwise] : 			! No Entity
;	  1148	                0;
;	  1149		    tes;
;	  1150	
;	  1151	        REB [REB_DATA_POINTER] = .IN_PTR;
;	  1152	        REB [REB_DATA_LENGTH] = .RAW_COUNT - ch$diff (.IN_PTR, .RAW_BUFFER_POINTER);
;	  1153	!
;	  1154	! When we arrive here IN_PTR points at the Event Data portion of the
;	  1155	! Raw Event; OUT_PTR points to where the Event Data will be stored.
;	  1156	!
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  37
X00.22		GET_LOCAL_EVENT					 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (14)

;	  1157	
;	  1158		if .REB [REB_EVENT_CODE] neq ((96 + 5)^6 + 13)
;	  1159		then
;	  1160		    NML$EVENT_PROCESSOR (REB)
;	  1161		else
;	  1162		    NML$DLW_CALL (.REB [REB_ENTITY_POINTER]);
;	  1163	
;	  1164		end;
;	  1165	
;	U 1166	%else
;	U 1167	    0                                   ! To avoid empty compound expression
;	  1168	%fi
;	  1169	    end;                                ! End of GET_LOCAL_EVENT



000072						.PSECT	$OWN$,  D  
000072					IOSB:	.BLKW	2


						.GLOBL	UN$USER, UN$PASSWORD, UN$ACCOUNT
						.GLOBL	SS$NMX


						.SBTTL	GET.LOCAL.EVENT GET_LOCAL_EVENT
001266						.PSECT	$CODE$,  RO 

000000	004167  000000G			GET.LOCAL.EVENT:
						JSR	R1,$SAVE4			;					1001
000004	162706  000024 				SUB	#24,SP
000010	012746  000454 				MOV	#454,-(SP)			;					1047
000014	004767  000000G				JSR	PC,UM.GET
000020	010003 					MOV	R0,R3				; *,RAW.BUFFER.POIN
000022	010302 				1$:	MOV	R3,R2				; RAW.BUFFER.POIN,IN.PTR		1063
000024	012716  001000 			2$:	MOV	#1000,(SP)			;					1065
000030	010246 					MOV	R2,-(SP)			; IN.PTR,*
000032	012746  000454 				MOV	#454,-(SP)
000036	004767  000000G				JSR	PC,SS$NMX
000042	010004 					MOV	R0,R4				; *,RAW.COUNT
000044	022626 					CMP	(SP)+,(SP)+			;					1064
000046	005704 					TST	R4				; RAW.COUNT				1067
000050	003765 					BLE	2$
000052	005000 					CLR	R0				;					1069
000054	152200 					BISB	(R2)+,R0			; IN.PTR,*
000056	005700 					TST	R0
000060	001104 					BNE	7$
000062	005001 					CLR	R1				; CNT					1079
000064	151201 					BISB	(R2),R1				; IN.PTR,CNT
000066	005201 					INC	R1				; CNT
000070	020127  000021 				CMP	R1,#21				; CNT,*					1080
000074	003352 					BGT	1$
000076	010116 					MOV	R1,(SP)				; CNT,*					1081
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  38
X00.22		GET_LOCAL_EVENT					 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (14)

000100	010246 					MOV	R2,-(SP)			; IN.PTR,*
000102	012746  000000G				MOV	#UN$USER,-(SP)
000106	004767  000000G				JSR	PC,BL$MOV
000112	060102 					ADD	R1,R2				; CNT,IN.PTR				1082
000114	005001 					CLR	R1				; CNT					1086
000116	151201 					BISB	(R2),R1				; IN.PTR,CNT
000120	005201 					INC	R1				; CNT
000122	020127  000011 				CMP	R1,#11				; CNT,*					1087
000126	003402 					BLE	3$
000130	022626 					CMP	(SP)+,(SP)+
000132	000733 					BR	1$
000134	010116 				3$:	MOV	R1,(SP)				; CNT,*					1088
000136	010246 					MOV	R2,-(SP)			; IN.PTR,*
000140	012746  000000G				MOV	#UN$PASSWORD,-(SP)
000144	004767  000000G				JSR	PC,BL$MOV
000150	060102 					ADD	R1,R2				; CNT,IN.PTR				1089
000152	005001 					CLR	R1				; CNT					1093
000154	151201 					BISB	(R2),R1				; IN.PTR,CNT
000156	005201 					INC	R1				; CNT
000160	020127  000021 				CMP	R1,#21				; CNT,*					1094
000164	003403 					BLE	5$
000166	062706  000010 				ADD	#10,SP
000172	000713 				4$:	BR	1$
000174	010116 				5$:	MOV	R1,(SP)				; CNT,*					1095
000176	010246 					MOV	R2,-(SP)			; IN.PTR,*
000200	012746  000000G				MOV	#UN$ACCOUNT,-(SP)
000204	004767  000000G				JSR	PC,BL$MOV
000210	060102 					ADD	R1,R2				; CNT,IN.PTR				1096
000212	005001 					CLR	R1				; CNT					1100
000214	151201 					BISB	(R2),R1				; IN.PTR,CNT
000216	020127  000040 				CMP	R1,#40				; CNT,*					1101
000222	003403 					BLE	6$
000224	062706  000014 				ADD	#14,SP
000230	000674 					BR	1$
000232	005016 				6$:	CLR	(SP)				;					1102
000234	004767  000000G				JSR	PC,UN.LOCAL			;					1103
000240	010046 					MOV	R0,-(SP)			;					1102
000242	012746  000144 				MOV	#144,-(SP)
000246	010266  000022 				MOV	R2,22(SP)			; IN.PTR,*				1105
000252	012746  000024 				MOV	#24,-(SP)
000256	060616 					ADD	SP,(SP)
000260	004767  000000G				JSR	PC,NL.VSP			;					1102
000264	062706  000022 				ADD	#22,SP				;					1107
000270	000654 					BR	1$
000272	020027  000001 			7$:	CMP	R0,#1				;					1069
000276	001251 					BNE	1$
000300	112266  000004 				MOVB	(R2)+,4(SP)			; IN.PTR,$$GETB.X			1115
000304	112266  000005 				MOVB	(R2)+,5(SP)			; IN.PTR,$$GETB.X
000310	016666  000004  000016 			MOV	4(SP),16(SP)			; $$GETB.X,REB+10
000316	005066  000024 				CLR	24(SP)				; REB+16				1116
000322	112266  000004 				MOVB	(R2)+,4(SP)			; IN.PTR,$$GETB.X			1118
000326	112266  000005 				MOVB	(R2)+,5(SP)			; IN.PTR,$$GETB.X
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  39
X00.22		GET_LOCAL_EVENT					 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (14)

000332	016600  000004 				MOV	4(SP),R0			; $$GETB.X,*
000336	010066  000022 				MOV	R0,22(SP)			; *,REB+14
000342	001034 					BNE	8$
000344	010301 					MOV	R3,R1				; RAW.BUFFER.POIN,TEMP.PTR		1128
000346	010366  000006 				MOV	R3,6(SP)			; RAW.BUFFER.POIN,REB
000352	112221 					MOVB	(R2)+,(R1)+			; IN.PTR,TEMP.PTR			1129
000354	112221 					MOVB	(R2)+,(R1)+			; IN.PTR,TEMP.PTR			1130
000356	105011 					CLRB	(R1)				; TEMP.PTR				1132
000360	012700  000011 				MOV	#11,R0				; *,LENGTH				1133
000364	005046 					CLR	-(SP)				;					1134
000366	005046 					CLR	-(SP)
000370	005046 					CLR	-(SP)
000372	012746  000002 				MOV	#2,-(SP)
000376	010046 					MOV	R0,-(SP)			; LENGTH,*
000400	010346 					MOV	R3,-(SP)			; RAW.BUFFER.POIN,*
000402	005046 					CLR	-(SP)
000404	012746  000072'				MOV	#IOSB,-(SP)
000410	012746  000000G				MOV	#EFN$NS,-(SP)
000414	012746  000000G				MOV	#LUN$NS,-(SP)
000420	012746  016670 				MOV	#16670,-(SP)
000424	012746  006003 				MOV	#6003,-(SP)
000430	104377 					EMT	377
000432	000417 					BR	10$
000434	020027  000001 			8$:	CMP	R0,#1				;					1118
000440	001406 					BEQ	9$
000442	020027  000003 				CMP	R0,#3
000446	103411 					BLO	10$
000450	020027  000004 				CMP	R0,#4
000454	101006 					BHI	10$
000456	010266  000006 			9$:	MOV	R2,6(SP)			; IN.PTR,REB				1143
000462	005000 					CLR	R0				; LENGTH				1144
000464	151200 					BISB	(R2),R0				; IN.PTR,LENGTH
000466	005200 					INC	R0				; LENGTH
000470	060002 					ADD	R0,R2				; LENGTH,IN.PTR				1145
000472	005726 				10$:	TST	(SP)+				;					1118
000474	010266  000010 				MOV	R2,10(SP)			; IN.PTR,REB+4				1151
000500	010300 					MOV	R3,R0				; RAW.BUFFER.POIN,*			1152
000502	160200 					SUB	R2,R0				; IN.PTR,*
000504	060400 					ADD	R4,R0				; RAW.COUNT,*
000506	010066  000012 				MOV	R0,12(SP)			; *,REB+6
000512	026627  000014  014515 			CMP	14(SP),#14515			; REB+10,*				1158
000520	001406 					BEQ	11$
000522	012746  000006 				MOV	#6,-(SP)			;					1160
000526	060616 					ADD	SP,(SP)				; REB,*
000530	004767  176460 				JSR	PC,EV.PRO
000534	000616 					BR	4$				;					1158
000536	016646  000004 			11$:	MOV	4(SP),-(SP)			; REB,*					1162
000542	004767  000000G				JSR	PC,NW.CAL
000546	000611 					BR	4$				;					1053
; Routine Size:  180 words,	Routine Base:  $CODE$ + 1266
; Maximum stack depth per invocation:  30 words
;	  1170	end                                     ! End of module NMLEVT
NMLEVT								24-May-1985 13:26:12	TOPS-20 Bliss-16 2A(530)	    Page  40
X00.22		GET_LOCAL_EVENT					 3-Jan-1983 01:22:13	DNET61:<MCB.NML>NMLEVT.BLI.1 (14)

;	  1171	
;	  1172	eludom



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


;					PSECT SUMMARY
;
;	Psect Name			Words	  Attributes
;	 $OWN$				   31	    RW ,  D  ,  LCL,  REL,  CON
;	 $CODE$				  527	    RO ,  I  ,  LCL,  REL,  CON
;	 $PLIT$				   10	    RO ,  D  ,  LCL,  REL,  CON




;				LIBRARY STATISTICS
;
;					     -------- Symbols --------    Blocks
;	File				     Total    Loaded   Percent      Read
;
;  DNET61:<MCB.NML>NMLLIB.L16.2		      2718       145         5         0





;	  1173	! Local Modes:
;	  1174	! Mode:Bliss
;	  1175	! Comment Start:!
;	  1176	! Comment Column:40
;	  1177	! Comment Rounding:+1
;	  1178	! Auto Save Mode:2
;	  1179	! End:
; Size:		527 code + 41 data words
; Run Time:	00:12.7
; Elapsed Time:	00:17.4
; Memory Used:	62 pages
; Compilation Complete
ALLOCATION_FAILURES		 262
ALLOCATION			 880	 882#	 891	 895
B1				 216	 217
B2				 216	 218	 220
B3				 216	 221	 223
B4				 216	 224	 226
BASE				 920#	 921	 922
CH$ASCIZ			 433	 444	 470	 483
CH$WCHAR			 461	1132#
CIRCUIT_			 975	1137
CNT				1075	1079#	1080	1081	1082	1086#	1087	1088	1089	1093#	1094	1095
				1096	1100#	1101
C_CHAR				 208	 216#	 230#
C_STRING			 205#	 238
DATA				 822
DECLARE_JSYS			 720	 915
EB				 308	 327	 341	 348	 361#	 364	 384	 386#	 388	 556	 558#	 560
				 680	 682#	 712	 750	 756	 768	 769	 773	 875	 891#	 895#	 903
				 995#	 998
EB_ALLOCATION			 327	 348	 712	 773	 895
EB_BUFFER			 341	 361	 769	 903	 995
EB_LENGTH			 361	 750	 756	 768	 769	 995
EMPTY_QUEUE_CHECK		 192	 813
EQ				 308	 324	 331#	 333	 347#	 364	 367	 386	 387#	 391	 406	 407#
				 408#
EQ_COUNT			 324	 331	 333	 347	 387	 407
EQ_LENGTH			 324	 333	 408
EVENT_BUFFER			 308	 556	 680	 875
EVENT_BUFFER_ALLOCATION		 882	1035#	1047
EVENT_BUFFER_LENGTH		1033#	1034	1065
EVENT_BUFFER_SIZE		1034#	1035
EVENT_QUEUE			 255	 308	 367	 391
FILE_QUEUE			 255	 482	 629	 682
FILE_				 237
GETB				1069
GETW				 458	1115	1118
GET_EVENT_BUFFER		 193	 558	 627
GET_LOCAL_EVENT			 194	 433
GTAD				 720
HOST_ID				 445#	 449
HOST_TRANSMITTER		 259	 445#	 448	 457	 463#	 560	 813	 814	 816
IDCNV				 915
IN_PTR				1058	1063#	1065	1069	1079	1081	1082#	1086	1088	1089#	1093	1095
				1096#	1100	1105	1115	1118	1129	1130	1143#	1144	1145#	1151	1152
JULIAN				 914	 920	 922#	 923#	 925#	 931#	 934
LINE_				 975	1137
LNG				 338	 357#	 358
LNKG				 453#	 456
LOGGING_			 474	 478	 615	 694	 978
LOGGING_FILE_PTR		 237#	 475	 479	 616	 695
LOGGING_NAME			 246#	 476
LOGGING_NAME_ADR		 238#	 477
LOGGING_STATE			 242#	 480	 597#	 617	 696
LOST_EVENTS			 261
MILLISECONDS			 761	 763	 764
MODULE_				 975	1137
NML$CFG_LOGGING_FILE		 234	 253	 472	 602	 669
NML$CFG_LOGGING_RECEIVER	 277	 467	 520	 635
NML$CFG_LOGGING_TRANSMITTER	 257	 273	 435	 537	 807
NML$DLW_CALL			 271	1162
NML$EQUEUE_INSERT		 560	 629
NML$EQUEUE_REMOVE		 682
NML$EQUEUE_RESET		 448	 482
NML$EVENT_MANAGER		 188
NML$EVENT_PROCESSOR		 305	1160
NML$EVENT_RECEIVER		 279	 469
NML$EVENT_RECORDER		 535
NML$EVENT_TRANSMITTER		 275	 464
NML$GET_VDB_PARAMETER		 284	 615	 694
NML$LOGGING_FILE		 189	 483
NML$SET_VDB_PARAMETER		 285	 474	 478	1102
NMLEVT				 134#
NMU$MEMORY_GET			 751	 891	1047
NMU$MEMORY_MANAGER		 283
NMU$MEMORY_RELEASE		 327	 348	 712	 772	 773
NMU$NETWORK_LOCAL		 519	1103
NMU$NETWORK_UTILITIES		 287
NMU$QUEUE_MANAGER		 281
NMU$QUEUE_SCAN			 813
NMU$SCHED_CREATE		 433	 464	 469	 483
NMU$SCHED_MANAGER		 282
NMU$SCHED_SLEEP			 705
NMU$SCHED_WAIT			 814
NMU$SQUEUE_INSERT		 364
NMU$SQUEUE_REMOVE		 386
NMU$SQUEUE_RESET		 406
NMU$TABLE_ROUTINES		 286
NODE_E				 972	1102	1121
NODE_ID_BUFFER_LENGTH		 449	1133
NO_ENTITY_			 359	 360
NUMBER				 451	 457#	 458#	 460
ODCNV				 915
OLD_TB				 513	 516#	 565
OUT_PTR				 901	 903#	 904	 905	 906	 934	 935	 936	 937	 941	 942	 943
				 945	 946	 947	 957	 958	 960#	 968	 973#	 974	 976#	 977	 979
				 992#	 995
PROCESS_MESSAGE			1030	1054	1080	1087	1094	1101	1107	1112
PTR				 339	 341#	 343	 344	 354	 355	 356#	 357	 358#	 359	 360	 361#
				 451	 460	 461
PUTB				 936	 937
PUTW				 906	 934	 935	 941	 942	 943	 945	 946	 947	 968
Q_EVENT				 814
RAW_BUFFER_POINTER		1043	1047#	1063	1128	1134	1152
RAW_COUNT			1044	1065#	1067	1152
RAW_EVENT_BLOCK			 289	 487	 568	 849	1045
REB				 289	 305	 487	 516	 518#	 519#	 525#	 529#	 533	 535	 542#	 547#
				 551	 558	 565#	 568	 608	 627	 849	 889	 905	 906	 910	 956
				 968	 970	 973	 974	 976	 977	 979	 990	 992	1045	1115#	1116#
				1118#	1128#	1143#	1151#	1152#	1158	1160	1162
REB_DATA_LENGTH			 889	 990	1152
REB_DATA_POINTER		 992	1151
REB_ENTITY_POINTER		 973	 974	 976	 977	 979	1128	1143	1162
REB_ENTITY_TYPE			 968	 970	1118
REB_EVENT_CODE			 906	1115	1158
REB_FILE			 529	 547	 608
REB_SINK_FLAGS			 525	 533	 542	 551	 905
REB_SOURCE_POINTER		 519	 956
REB_TIME_BLOCK			 516	 518	 565	 910	1116
RESOURCE			 641	1001
SECONDS				 914	 917	 918#	 927	 930#	 935
STATE_HOLD			 245#	 600#	 700
STATE_OFF			 244#	 599#	 619	 623	 698	 711
STATE_ON			 243#	 481	 598#
STATE				 613	 618	 619#	 621	 627#	 629	 692	 697	 698#	 700
SYERR				 720
SYSERR_ALLOCATION		 745	 750#	 751	 772
SYSERR_ENTRY			 744	 751#	 752#	 753#	 754#	 755#	 756#	 757	 764#	 767	 768#	 769
				 770	 772
SYSERR_ERROR_CODE		 741#	 752
SYSERR_FIELDS			 723#	 744
SYSERR_HEADER_ALLOCATION	 740#	 750	 755
SYSGT				 720
SY_COD				 725#	 752
SY_DAT				 733#
SY_DTE				 730#	 757
SY_DTL				 734#	 768
SY_DTS				 736#	 769
SY_HLN				 728#	 755	 770
SY_LEN				 729#	 756	 770
SY_PSN				 732#	 767
SY_T20				 726#	 753
SY_UPT				 731#	 764
SY_VER				 727#	 754
TASK				 641	1001
TB				 514	 517	 518	 910#	 917	 922	 941	 942	 943
TEMP_PTR			 954	 956#	 957	 958	 960	1126	1128#	1129	1130	1132
TIME				 720
TIME_BLOCK			 514	 910
TIME_CURRENT			 517
TIME_JULIAN			 941
TIME_MILLISECOND		 943
TIME_SECOND			 942
TQ_QUEUE			 814
TQ_SINK_NODE			 445	 457
TQ_TRANSMITTER_TASK		 463
TRANSMITTER_NAME_PTR		 444#	 459	 464
TRANSMITTER_QUEUE		 259
TRANSMITTER_TO_			 440#	 444	 459
UN$ACCOUNT			1040	1095
UN$PASSWORD			1039	1088
UN$USER				1038	1081
$$GTAD				 757
$$IDCNV				 921
$$ODCNV				 917
$$SYERR				 770
$$SYSGT				 767
$$TIME				 763
$CBDMG				 456*	 459
$MCB				 206	 213	 269	 431	 939	1026
$NML$GET_HOST_ID		 449
$NML$MAP_NODE_ID		1134
$NMU_NMX_READ_EVENT		1065
$OWN$				 442
$PLIT$				 446
$SUB_FIELD			 814
$TOPS10				 912
$TOPS20				 715	 912
$TRUE				 676	 688	1053
%GLOBAL_ROUTINE			 289#	 308#	 367#	 391#	 411#	 487#	 568#	 783#
%REMAINING			 208	 210	 231
%ROUTINE			 641#	 822#	 849#	1001#