Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/mcb/nxsys.list
There are no other files named nxsys.list in the archive.
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 3


      1						.TITLE	NXSYS
      2						.IDENT	/V01.01/
      3
      4					;
      5					; COPYRIGHT (C) 1978 BY
      6					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      7					;
      8					;
      9					; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
     10					; ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
     11					; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
     12					; COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
     13					; OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
     14					; TRANSFERRED.
     15					;
     16					; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
     17					; AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
     18					; CORPORATION.
     19					;
     20					; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
     21					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
     22					;
     23					;
     24					; MODULE DESCRIPTION
     25					;
     26					;	DLX SYSTEM DATA BASE PROCESSING
     27					;
     28					;
     29					; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
     30					;
     31					; IDENT HISTORY:
     32					;
     33					; 1.00	10-FEB-78
     34					;	VERSION 2.0 RELEASE
     35					;
     36					; 1.01	30-JUL-78	ALAN D. PECKHAM
     37					;	INCLUDE NICE FUNCTIONS
     38					;
     39
     40					; EXTERNAL MACRO DEFINITIONS
     41					;
     42						.MCALL	CCBDF$,PDVDF$,SLTDF$
     43	000000					CCBDF$			; DEFINE THE CCB OFFSETS
     44	000000					PDVDF$			; DEFINE THE PDV OFFSETS
     45	000000					SLTDF$			; DEFINE THE SLT OFFSETS
     46					;
     47					; LOCAL SYMBOL DEFINITIONS
     48					;
     49					;
     50					; PARAMETER BLOCK OFFSET DEFINITIONS
     51					;
     52	000014					.ASECT
     53		000000 			.=0
     54	000000				TNAM:	.BLKW	1		; RAD50 PROCESS NAME
     55	000002				TCTL:	.BLKB	1		; CONTROLLER NUMBER
     56	000003				TLIN:	.BLKB	1		; LINE NUMBER ON CONTROLLER
     57	000004				TSTA:	.BLKB	1		; MULTIPOINT STATION ADDRESS
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 3-1


     58	000005					.BLKB	1		; RESERVED
     59	000006				TFLG:	.BLKB	1		; PROCESS FLAGS
     60	000007				TPDV:	.BLKB	1		; PROCESS INDEX
     61	000010				TSLN:	.BLKW	1		; SYSTEM LINE NUMBER AND LOGICAL STATION
     62	000012				TSLF:	.BLKW	1		; SYSTEM LINE TABLE FLAGS
     63	000014				TDDM:	.BLKB	1		; DDM PROCESS INDEX
     64	000015				TDLC:	.BLKB	1		; DLC PROCESS INDEX
     65	000016				TASN:	.BLKW	1		; CURRENT ASSIGNMENT (PDV & CHAN)
     66	000000					.PSECT
     67
     68					;
     69					; PDV CHANNEL TABLE FLAG DEFINITIONS
     70					;
     71		100000 			ZF.ASN	= 100000		; CHANNEL IS FREE TO ASSIGN
     72		140000 			ZF.BSY	= 140000		; CHANNEL IS IN PROCESS OF ASSIGNMENT
     73
     74					;
     75					; STATUS VAULES FOR CONTROL FUNCTIONS
     76					;
     77		000001 			STOP	= 1			; PARTIAL SHUTDOWN - STOP ONLY
     78		000000 			OFF	= 0			; FULL SHUTDOWN - STOP AND DISABLE
     79
     80					;
     81					; FOR START ENABLE
     82					;
     83		000004 			STRT	= 4			; STARTUP
     84
     85					;
     86					; FOR STOP COMPLETE AND START ENABLE
     87					;
     88		000000 			LDIS	= 0			; LINE IS DISABLED
     89		000001 			LENB	= 1			; LINE IS ENABLED
     90		000002 			ENBX	= 2			; LINE ENABLE CONTROL
     91
     92					;
     93					; CONTROL PROCESSING STATE DEFINITIONS
     94					;
     95		000000 			STRE1	= 0			; REASSIGN - DO ASSIGNMENT NEXT
     96		000002 			STRE2	= 2			; REASSIGN - FINISH REQUEST WITH ALTERNATE STATUS
     97		000004 			STOF1	= 4			; OFF	   - CLEAR LF.ACT AND COMPLETE REQUEST
     98		000006 			STDE1	= 6			; DEASSIGN - CLEANUP DATA BASE, CLEAR LF.ACT AND COMPLET
     99		000010 			STDON	= 10			; ASSIGN   - COMPLETE REQUEST  (USED FOR ON ALSO)
    100					;
    101					; LOCAL DATA
    102					;
    103	000000				TDATA:	.BLKW	8.		; PARAMETER BLOCK
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 4


    105					;+
    106					; **-FNDLN-FIND A LINE-ID IN THE SYSTEM DATA BASES
    107					;
    108					; INPUTS:
    109					;
    110					;	R3 = ADDRESS OF AN I/O PACKET CONTAINING A DOUBLE WORD STRING
    111					;		POINTER AND LENGTH.
    112					;	R5 = ADDRESS OF AN 8 WORD OUTPUT PARAMETER BLOCK
    113					;
    114					; OUTPUTS:
    115					;
    116					;	C-BIT CLEAR:
    117					;	R3 = ADDRESS OF THE I/O PACKET
    118					;	R5 = ADDRESS OF THE 8 WORD PARAMETER BLOCK FORMATTED AS FOLLOWS:
    119					;	WD 0	RAD50 PROCESS NAME
    120					;	WD 1	LINE NUMBER	CONTROLLER NUMBER
    121					;	WD 2	RESERVED	STATION NUMEBR
    122					;	WD 3	PDV INDEX	PDV FLAGS
    123					;
    124					;	FOR A DDM:
    125					;
    126					;	WD 4	STATION		SYSTEM LINE
    127					;	WD 5	SYSTEM LINE TABLE FLAGS
    128					;	WD 6	DLC INDEX	DDM INDEX
    129					;	WD 7	PDV ASSIGNED	CHANNEL ASSIGNED
    130					;
    131					;	FOR AN LLC OR A DLC:
    132					;
    133					;	WD 4 - WD 7 UNDEFINED
    134					;
    135					;	C-BIT SET:
    136					;	LINE-ID CANNOT BE FOUND IN THE SYSTEM
    137					;
    138					; REGISTERS MODIFIED:
    139					;
    140					;	NONE
    141					;-
    142
    143	000020	010446 			FNDLN::	MOV	R4,-(SP)	; SAVE R4
    144	000022	005015 				CLR	(R5)		; INITIALIZE OUTPUT AREA FOR CONVERSION
    145	000024	005065 	000002 			CLR	2(R5)		; ...
    146	000030	005064 	000004 			CLR	4(R4)		; ...
    147
    148						.IF DF	M$$MGE
    149
    150	000034	016367 	000000G	000000G		MOV	I.PRM(R3),KISAR6 ; MAP TO THE USER LINE-ID STRING
    151
    152						.ENDC
    153
    154	000042	016300 	000002G			MOV	I.PRM+2(R3),R0	; GET VIRTUAL ADDRESS OF LINE-ID STRING
    155	000046	016304 	000004G			MOV	I.PRM+4(R3),R4	; GET LENGTH OF THE STRING
    156	000052	060004 				ADD	R0,R4		; COMPUTE THE ADDRESS OF THE STRING END + 1
    157	000054					CALL	CAT5		; CONVERT PROCESS NAME TO RAD50
    158	000060	103433 				BCS	20$		; IF CS, ILLEGAL CHARACTER - ERROR
    159	000062	010165 	000000 			MOV	R1,TNAM(R5)	; STORE RAD50 NAME
    160	000066	005702 				TST	R2		; END OF THE STRING ?
    161	000070	001025 				BNE	10$		; IF NE, YES - LOOK FOR THE LINE-ID
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 4-1


    162	000072					CALL	COTB		; CONVERT CONTROLLER NUMBER
    163	000076	103424 				BCS	20$		; IF CS, ILLEGAL CHARACTER - ERROR
    164	000100	110165 	000002 			MOVB	R1,TCTL(R5)	; STORE RESULT IN PARAMETER BLOCK
    165	000104	005702 				TST	R2		; END OF THE STRING ?
    166	000106	001016 				BNE	10$		; IF NE, YES - LOOK FOR THE LINE-ID
    167	000110					CALL	COTB		; CONVERT LINE NUMBER
    168	000114	103415 				BCS	20$		; IF CS, ILLEGAL CHARACTER - ERROR
    169	000116	110165 	000003 			MOVB	R1,TLIN(R5)	; STORE RESULT IN PARAMETER BLOCK
    170	000122	005702 				TST	R2		; END OF THE STRING ?
    171	000124	001007 				BNE	10$		; IF NE, YES - LOOK FOR THE LINE-ID
    172	000126					CALL	COTB		; CONVERT STATION ADDRESS
    173	000132	103406 				BCS	20$		; IF CS, ILLEGAL CHARACTER - ERROR
    174	000134	110165 	000004 			MOVB	R1,TSTA(R5)	; STORE RESULT IN PARAMETER BLOCK
    175	000140	005702 				TST	R2		; END OF THE STRING ?
    176	000142	001402 				BEQ	20$		; IF EQ, NO - ERROR, SHOULD BE AT THE END
    177	000144				10$:	CALL	FNDLA		; SEARCH FOR THE LINE-ID IN THE SYSTEM
    178									; THE C-BIT MAY BE SET BY FNDLA
    179	000150	012604 			20$:	MOV	(SP)+,R4	; RESTORE R4
    180	000152					RETURN			; RETURN TO CALLER
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 5


    182
    183					;+
    184					; **-CAT5-CONVERT ASCII TO RAD50
    185					;
    186					; INPUTS:
    187					;
    188					;	R0 = ADDRESS OF FIRST BYTE IN STRING
    189					;	R4 = ADDRESS OF THE END OF THE STRING + 1
    190					;
    191					;
    192					; OUTPUTS:
    193					;
    194					;	C-BIT CLEAR:
    195					;	R0 = ADDRESS OF NEXT BYTE IN STRING
    196					;	R1 = CONVERTED RESULT
    197					;	R2 = COMPLETION CODE (0 = MORE IN THE STRING)
    198					;			     (NOT 0 = NO MORE IN THE STRING)
    199					;
    200					;	C-BIT SET:
    201					;	ILLEGAL CHARACTER IN THE STRING
    202					;
    203					; REGISTERS MODIFIED:
    204					;
    205					;	NONE
    206					;-
    207
    208	000154	003100 			CVTBL:	.WORD	50*50
    209	000156	000050 				.WORD	50
    210	000160	000001 				.WORD	1
    211
    212	000162	010546 			CAT5:	MOV	R5,-(SP)	; SAVE REGISTERS
    213	000164	005046 				CLR	-(SP)		; ESTABLISH EXIT CONDITION FLAG
    214	000166	005001 				CLR	R1		; CLEAR ACCUMULATION
    215	000170	012702 	000154'			MOV	#CVTBL,R2	; SET ADDRESS OF SCALING TABLE
    216	000174	112005 			10$:	MOVB	(R0)+,R5	; GET A CHARACTER
    217	000176	020400 				CMP	R4,R0		; REACHED THE END OF THE STRING ?
    218	000200	103435 				BLO	30$		; IF LO, YES - END OF THE STRING
    219	000202	122705 	000132 			CMPB	#'Z,R5		; IS IT ALPHABETIC ? (BELOW Z)
    220	000206	103425 				BLO	20$		; IF LO, NO - ERROR
    221	000210	122705 	000101 			CMPB	#'A,R5		; IS IT BELOW A ?
    222	000214	101022 				BHI	20$		; IF HI, YES - ERROR
    223	000216	162705 	000100 			SUB	#100,R5		; SCALE TO RAD50
    224	000222	010046 				MOV	R0,-(SP)	; SAVE R0
    225	000224	012200 				MOV	(R2)+,R0	; GET SCALE FACTOR
    226	000226	010146 				MOV	R1,-(SP)	; SAVE R1
    227	000230	010501 				MOV	R5,R1		; COPY CHARACTER
    228	000232					CALL	$MUL		; MULTIPLY IT OUT
    229	000236	010105 				MOV	R1,R5		; COPY RESULT
    230	000240	012601 				MOV	(SP)+,R1	; RESTORE ACCUMULATION
    231	000242	012600 				MOV	(SP)+,R0	; RESTORE STRING POINTER
    232	000244	060501 				ADD	R5,R1		; ACCUMULATE THE RESULT
    233	000246	020227 	000162'			CMP	R2,#CVTBL+6	; CONVERTED ENOUGH ?
    234	000252	103750 				BLO	10$		; IF LO, NO - KEEP GOING
    235	000254	112005 				MOVB	(R0)+,R5	; OTHERWISE GET TERMINATING CHARACTER
    236	000256	020400 				CMP	R4,R0		; REACHED THE END OF THE STRING ?
    237	000260	103405 				BLO	30$		; IF LO, YES
    238
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 5-1


    239	000262	122705 	000137 		20$:	CMPB	#'_,R5		; IS THE CHARACTER A LEGAL TERMINATOR ?
    240	000266	001403 				BEQ	40$		; IF EQ, YES - RETURN SUCCESS CODE
    241	000270	000261 				SEC			; OTHERWISE INDICATE AN ERROR
    242	000272	000402 				BR	50$		;
    243
    244	000274	010616 			30$:	MOV	SP,(SP)		; MARK THE END OF THE STRING
    245
    246	000276	000241 			40$:	CLC			; INDICATE SUCCESSFUL CONVERSION
    247	000300	012602 			50$:	MOV	(SP)+,R2	; RESTORE REGISTERS
    248	000302	012605 				MOV	(SP)+,R5	; SET EXIT CONDITION CODES
    249	000304					RETURN			; RETURN TO CALLER
    250
    251					;+
    252					; **-COTB-CONVERT OCTAL TO BINARY
    253					;
    254					; INPUTS:
    255					;
    256					;	R0 = ADDRESS OF THE FIRST CHARACTER TO CONVERT
    257					;	R4 = ADDRESS OF THE END OF THE STRING + 1
    258					;
    259					; OUTPUTS:
    260					;
    261					;	C-BIT CLEAR:
    262					;	R0 = ADDRESS OF THE NEXT CHARACTER IN THE STRING
    263					;	R1 = CONVERTED RESULT
    264					;	R2 = COMPLETION CODE (0 = MORE IN THE STRING)
    265					;			     (NOT 0 = END OF THE STRING)
    266					;
    267					;	C-BIT SET:
    268					;	ILLEGAL CHARACTER IN THE STRING
    269					;
    270					; REGISTERS MODIFIED:
    271					;
    272					;	NONE
    273					;-
    274
    275	000306	005046 			COTB:	CLR	-(SP)		; SET COMPLETION FLAGS
    276	000310	005001 				CLR	R1		; CLEAR ACCUMULATION
    277	000312	112002 			10$:	MOVB	(R0)+,R2	; GET THE NEXT CHARACTER
    278	000314	020400 				CMP	R4,R0		; REACHED THE END OF THE STRING ?
    279	000316	103420 				BLO	20$		; IF LO, YES - EXIT WITH RESULT
    280	000320	122702 	000137 			CMPB	#'_,R2		; IS THE CHARACTER A LEGAL TERMINATOR ?
    281	000324	001416 				BEQ	30$		; IF EQ, YES - EXIT WITH RESULT
    282	000326	162702 	000060 			SUB	#'0,R2		; NORMALIZE THE CHARACTER
    283	000332	020227 	000010 			CMP	R2,#8.		; IS IT WITHIN RANGE ?
    284	000336	103014 				BHIS	40$		; IF HIS, NO - EXIT WITH ERROR
    285	000340	010046 				MOV	R0,-(SP)	; SAVE THE STRING POINTER
    286	000342	012700 	000010 			MOV	#8.,R0		; SET THE MULTIPLICAND
    287	000346					CALL	$MUL		; MULTIPLY 'EM UP
    288	000352	012600 				MOV	(SP)+,R0	; RESTORE THE STRING POINTER
    289	000354	060201 				ADD	R2,R1		; ACCUMULATE THE RESULT
    290	000356	000755 				BR	10$		; CONTINUE
    291
    292	000360	010616 			20$:	MOV	SP,(SP)		; SET THE STRING END INDICATOR
    293
    294	000362	022701 	000400 		30$:	CMP	#256.,R1	; IS THE RESULT WITH A BYTE QUANTITY ?
    295	000366	101002 				BHI	50$		; IF HI, YES - EXIT WITH RESULT
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 5-2


    296	000370	000261 			40$:	SEC			; INDICATE ILLEGAL CHARACTER IN STRING
    297	000372	000401 				BR	60$		;   OR RESULT OUT OF RANGE
    298
    299	000374	000241 			50$:	CLC			; INDICATE SUCCESSFUL CONVERSION
    300	000376	012602 			60$:	MOV	(SP)+,R2	; SET COMPLETION CONDITIONS
    301	000400					RETURN			; RETURN TO CALLER
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 6


    303					;+
    304					; **-ASSGN-ASSIGN A LINE TO AN LLC PROCESS
    305					;
    306					; INPUTS:
    307					;
    308					;	R0 = TARGET PDV & CHANNEL
    309					;	R1 = ADDRESS OF CHANNEL ENTRY IN TARGET PDV
    310					;	R2 = SLN & STA PAIR OF LINE-ID
    311					;
    312					; OUTPUTS:
    313					;
    314					;	THE COMM SYSTEM DATA BASES ARE MODIFIED TO REFLECT THE
    315					;	NEW LINE ASSIGNMENT AND THE SYSTEM LINE IS MAKED ACTIVE.
    316					;
    317					; REGISTERS MODIFIED:
    318					;
    319					;	NONE
    320					;-
    321
    322	000402	004567 	000042 		ASSGN::	JSR	R5,COASN	; CO-ROUTINE TO COMPUTE ADDRESS IN MAPPING TABLE
    323	000406	010015 				MOV	R0,(R5)		; STORE NEW PDV & CHAN ASSIGNMENT IN MAPPING TABLE
    324	000410	010211 				MOV	R2,(R1)		; STORE NEW SLN & STA IN PDV MAPPING TABLE
    325									; CONTINUE IN LINE TO SET 'LF.ACT' IN THE SLT
    326
    327					;+
    328					; **-STACT-SET THE SYSTEM LINE ACTIVE
    329					;
    330					; INPUTS:
    331					;
    332					;	R2 = SLN & STA PAIR OF THE LINE-ID
    333					;
    334					; OUTPUTS:
    335					;
    336					;	'LF.ACT' IS SET FOR THE APPROPRIATE SYSTEM LINE NUMBER
    337					;
    338					; REGISTERS MODIFIED:
    339					;
    340					;	R5
    341					;-
    342
    343	000412				STACT:	CALL	STSLT		; COMPUTE ADDRESS IN THE SLT
    344	000416	052715 	100000 			BIS	#LF.ACT,(R5)	; MARK THE LINE ACTIVE (ASSIGNED TO AN LLC)
    345	000422					RETURN			; RETURN TO CALLER
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 7


    347					;+
    348					; **-DEASN-DEASSIGN A LINE FROM AN LLC PROCESS
    349					;
    350					; INPUTS:
    351					;
    352					;	R1 = ADDRESS OF CHANNEL ENTRY IN TARGET PDV
    353					;	R2 = SLN & STA PAIR OF LINE-ID
    354					;
    355					; OUTPUTS:
    356					;
    357					;	THE COMM SYSTEM DATA BASES ARE MODIFIED TO REFLECT THE
    358					;	LINE DEASSIGNMENT AND THE SYSTEM LINE IS MARKED INACTIVE.
    359					;
    360					; REGISTERS MODIFIED:
    361					;
    362					;	NONE
    363					;-
    364
    365	000424	004567 	000020 		DEASN::	JSR	R5,COASN	; COMPUTE MAPPING TABLE ADDRESS
    366	000430	012711 	100000 			MOV	#100000,(R1)	; MARK CHANNEL FREE
    367	000434	005015 				CLR	(R5)		; MARK SLN & STATION FREE
    368									; CONTINUE IN LINE TO CLEAR 'LF.ACT' IN THE SLT
    369
    370					;+
    371					; **-CLACT-CLEAR ACTIVE FOR A SYSTEM LINE
    372					;
    373					; INPUTS:
    374					;
    375					;	R2 = SLN & STA PAIR OF THE LINE-ID
    376					;
    377					; OUTPUTS:
    378					;
    379					;	'LF.ACT' IS CLEARED FOR THE APPROPRIATE SYSTEM LINE NUMBER.
    380					;
    381					; REGISTERS MODIFIED:
    382					;
    383					;	R5
    384					;-
    385
    386	000436				CLACT:	CALL	STSLT		; COMPUTE THE ADDRESS IN THE SLT
    387	000442	042715 	100000 			BIC	#LF.ACT,(R5)	; MARK THE LINE INACTIVE (NOT ASSIGNED TO AN LLC)
    388	000446					RETURN			; RETURN TO CALLER
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 8


    390					;+
    391					; **-COASN-COROUTINE TO COMPUTE ADDRESSES IN THE DATA BASE
    392					;
    393					; INPUTS:
    394					;
    395					;	R2 = SLN & STATION NUMBER PAIR
    396					;
    397					; OUTPUTS:
    398					;
    399					;	R5 = ADDRESS OF THE SYSTEM LINE ENTRY IN THE REVERSE MAPPING TABLE
    400					;
    401					;-
    402
    403	000450	010546 			COASN:	MOV	R5,-(SP)	; SAVE RETURN ADDRESS (R5 SAVED BY JSR R5)
    404	000452	010205 				MOV	R2,R5		; COMPUTE THE ADDRESS IN THE REVERSE MAPPING TABLE
    405	000454	042705 	177400 			BIC	#^C<377>,R5	; ...EXTRACT SLN
    406	000460	006305 				ASL	R5		; MAKE SLN AN INDEX
    407	000462	066705 	000000G			ADD	$LLCTA,R5	; COMPUTE ADDRESS IN THE REVERSE MAPPING TABLE
    408	000466					CALL	@(SP)+		; CALL BACK THE CALLER
    409	000470	012605 				MOV	(SP)+,R5	; RESTORE R5
    410	000472					RETURN			; RETURN TO CALLER
    411
    412					;+
    413					; **-STSLN-COMPUTE ADDRESS IN THE SYSTEM LINE TABLE
    414					;
    415					; INPUTS:
    416					;
    417					;	R2 = SLN & STA PAIR OF THE LINE-ID
    418					;
    419					; OUTPUTS:
    420					;
    421					;	R5 = ADDRESS OF THE SYSETM LINE TABLE ENTRY FOR THE SLN & STA PAIR
    422					;
    423					; REGISTERS MODIFIED:
    424					;
    425					;	NONE
    426					;-
    427
    428	000474	010046 			STSLT:	MOV	R0,-(SP)	; PRESERVE THE REGISTERS NEEDED FOR MULTIPLY
    429	000476	010146 				MOV	R1,-(SP)	; ...
    430	000500	010200 				MOV	R2,R0		; COMPUTE THE ADDRESS IN THE SLT
    431	000502	042700 	177400 			BIC	#^C<377>,R0	; ...EXTRACT THE SLN
    432	000506	012701 	000014 			MOV	#L.LEN,R1	; SET THE SLT ENTRY LENGTH
    433	000512					CALL	$MUL		; COMPUTE THE OFFSET INTO THE SLT
    434	000516	066701 	000000G			ADD	$SLTTA,R1	; COMPUTE THE ADDRESS
    435	000522	010105 				MOV	R1,R5		; COPY THE SLT ADDRESS
    436	000524	012601 				MOV	(SP)+,R1	; RESTORE THE REGISTERS
    437	000526	012600 				MOV	(SP)+,R0	; ...
    438	000530					RETURN			; RETURN TO CALLER
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 9


    440					;+
    441					; **-MAPAD-COMPUTE THE ADDRESS IN THE PDV CHANNEL MAPPING TABLE
    442					;
    443					; INPUTS:
    444					;
    445					;	R0 = PDV & CHANNEL NUMBER
    446					;
    447					; OUTPUTS;
    448					;
    449					;	R1 = ADDRESS OF THE MAPPING POINTER FOR THE PDV & CHANNEL
    450					;	R2 = ADDRESS OF THE PDV
    451					;
    452					; REGISTERS MODIFIED:
    453					;
    454					;	NONE
    455					;-
    456
    457	000532	010046 			MAPAD:	MOV	R0,-(SP)	; SAVE INPUT PDV & CHANNEL NUMBER
    458	000534	010001 				MOV	R0,R1		; COPY IT TO ISOLATE PDV $ CHANNEL NUMBER
    459	000536	042701 	000377 			BIC	#377,R1		; CLEAR OUT THE CHANNEL NUMBER & LEAVE THE PDV
    460	000542	040100 				BIC	R1,R0		; REMOVE THE PDV & LEAVE THE CHANNEL NUMBER
    461	000544	000301 				SWAB	R1		; MOVE THE PDV INDEX TO THE LOW BYTE
    462	000546	016101 	000000G			MOV	$PDVTB(R1),R1	; GET THE PDV ADDRESS FOR THE THIS INDEX
    463	000552	010102 				MOV	R1,R2		; COPY THE ADDRESS OF THE PDV
    464	000554	062701 	000016 			ADD	#Z.MAP,R1	; POINT TO THE START OF THE MAPPING TABLE
    465	000560	006300 				ASL	R0		; MAKE THE CHANNEL NUMBER A VALID INDEX
    466	000562	060001 				ADD	R0,R1		; POINT TO THE CHANNEL MAPPING WORD
    467	000564	012600 				MOV	(SP)+,R0	; RESTORE PDV & CHANNEL NUMBER
    468	000566					RETURN			; RETURN TO CALLER
    469
    470					;+
    471					; **-PRCLD-CHECK IF A PROCESS IS LOADED
    472					;
    473					; INPUTS:
    474					;
    475					;	R0 = PDV & CHANNEL NUMBER
    476					;
    477					; OUTPUTS:
    478					;
    479					;	C-BIT CLEAR:
    480					;	PROCESS IS LOADED
    481					;
    482					;	C-BIT SET:
    483					;	PROCESS IS NOT LOADED
    484					;
    485					; REGISTERS MODIFIED:
    486					;
    487					;	R1 AND R2
    488					;-
    489
    490	000570				PRCLD:	CALL	MAPAD		; COMPUTE THE PDV ADDRESS
    491	000574	005762 	000012 			TST	Z.PCB(R2)	; IS THE PROCESS LOADED ?
    492	000600	001001 				BNE	10$		; IF NE, YES - RETURN WITH C-BIT CLEAR
    493	000602	000261 				SEC			; SET ERROR CONDITION
    494	000604				10$:	RETURN			; RETURN TO CALLER
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 10


    496					;+
    497					; **-FNDPR-FIND AN LLC PROCESS PDV INDEX
    498					;
    499					; INPUTS:
    500					;
    501					;	R3 = ADDRESS OF AN I/O PACKET WHICH CONTAINS A THE RAD50 NAME
    502					;		OF THE TARGET PROCESS IN I.PRM+6.
    503					;
    504					; OUTPUTS:
    505					;
    506					;	C-BIT CLEAR:
    507					;	R1 = PDV ADDRESS OF THE NAMED PROCESS
    508					;	R2 = PDV INDEX
    509					;
    510					;	C-BIT SET:
    511					;	NO PROCESS WITH THE SPECIFIED NAME
    512					;
    513					; REGISTERS MODIFIED:
    514					;
    515					;	R0
    516					;-
    517
    518	000606	016302 	000006G		FNDPR:	MOV	I.PRM+6(R3),R2	; GET RAD50 PROCESS NAME
    519	000612					CALL	$PDVAD		; FIND PDV ADDRESS AND INDEX
    520	000616	103411 				BCS	10$		; IF CS, NO SUCH PROCESS - ERROR
    521	000620	000261 				SEC			; ASSUME THAT ITS NOT AN LLC
    522	000622	132761 	000004 	000011 		BITB	#ZF.LLC,Z.FLG(R1) ; IS THE PROCESS AN LLC ?
    523	000630	001404 				BEQ	10$		; IF EQ, NO - ERROR
    524	000632	016100 	000012 			MOV	Z.PCB(R1),R0	; IS THIS LLC LOADED ?
    525	000636	001401 				BEQ	10$		; IF EQ, NO - ERROR
    526	000640	000241 				CLC			; OTHERWISE INDICATE SUCCESS
    527	000642				10$:	RETURN			; RETURN TO CALLER
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 11


    529					;+
    530					; **-FNDFR-FIND A FREE CHANNEL IN THE PROCESS MAPPING TABLE
    531					;
    532					; INPUTS:
    533					;
    534					;	R2 = PDV INDEX OF THE PROCESS
    535					;
    536					; OUTPUTS:
    537					;
    538					;	C-BIT CLEAR:
    539					;	R0 = PDV INDEX & CHANNEL
    540					;	R1 = ADDRESS OF PDV CHANNEL ENTRY
    541					;	R2 = PDV INDEX
    542					;
    543					;	C-BIT SET:
    544					;	NO FREE CHANNELS
    545					;	R0 - R2 ARE UNDEFINED
    546					;
    547					; NOTE:	THIS ROUTINE MAKES USE OF THE CHANNEL MAPPING TABLE FLAGS
    548					;	'ZF.BSY' AND 'ZF.ASN'.
    549					;
    550					; REGISTERS MODIFIED:
    551					;
    552					;	NONE
    553					;-
    554
    555	000644	010546 			FNDFR::	MOV	R5,-(SP)	; SAVE R5
    556	000646	010201 				MOV	R2,R1		; COPY PDV INDEX
    557	000650	005000 				CLR	R0		; INITIALIZE CHANNEL COUNTER
    558	000652	066701 	000000G			ADD	$PDVTA,R1	; COMPUTE ADDRESS OF THE PDV
    559	000656	011101 				MOV	(R1),R1		; GET THE PDV ADDRESS
    560	000660	062701 	000016 			ADD	#Z.MAP,R1	; POINT TO THE CHANNEL MAPPING TABLE
    561	000664	005005 				CLR	R5		; GET THE NUMBER OF CHANNELS
    562	000666	156105 	177772 			BISB	Z.LLN-Z.MAP(R1),R5 ; ...
    563
    564	000672	012146 			10$:	MOV	(R1)+,-(SP)	; GET AN ENTRY
    565	000674	006326 				ASL	(SP)+		; IS IT FREE TO ASSIGN ?
    566	000676	103001 				BCC	20$		; IF CC, NO - TRY NEXT
    567	000700	100005 				BPL	30$		; IF PL, YES - FINISH UP
    568	000702	005200 			20$:	INC	R0		; UPDATE THE RUNNING CHANNEL NUMBER
    569	000704					SOB	R5,10$		; LOOK THROUGH ALL CHANNELS
    570	000710	000261 				SEC			; ERROR IN A FREE ONE IS NOT FOUND
    571	000712	000404 				BR	40$		;
    572
    573	000714	000300 			30$:	SWAB	R0		; MERGE PDV INDEX AND CHANNEL
    574	000716	050200 				BIS	R2,R0		; ...
    575	000720	000300 				SWAB	R0		; ...
    576	000722	005741 				TST	-(R1)		; ACCOUNT FOR PREVIOUS POP (CLEAR C-BIT)
    577	000724	012605 			40$:	MOV	(SP)+,R5	; RESTORE REGISTERS
    578	000726					RETURN			; RETURN TO CALLER
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 12


    580					;+
    581					; **-NXCTL-CONTROL QIO FUNCTION PROCESSING
    582					;
    583					; THIS ROUTINE IS INVOKED WHEN A CONTROL QIO FUNTION IS ISSUED BY
    584					; A USER TASK.  THE REQUEST TYPE IS ENCODED IN THE SUBFUNCTION.
    585					;
    586					; INPUTS:
    587					;
    588					;	R3 = ADDRESS OF AN I/O PACKET
    589					;
    590					; OUTPUTS TO SUBFUNCTION PROCESSES:
    591					;
    592					;	R3 = ADDRESS OF THE I/O PACKET
    593					;
    594					;-
    595
    596	000730	116300 	000000G		NXCTL::	MOVB	I.FCN(R3),R0	; GET SUBFUNCTION CODE
    597	000734	006200 				ASR	R0		; REDUCE IT TO A TABLE INDEX
    598	000736	006200 				ASR	R0		; ...
    599	000740	022700 	000014 			CMP	#SFMAX,R0	; CHECK IF IT IS WITHIN RANGE
    600	000744	101402 				BLOS	10$		; IF LOS, NO - ERROR
    601	000746					CALLR	@20$(R0)	; DISPATCH TO PROCESSING ROUTINE
    602
    603	000752				10$:	CALLR	IEONP		; RETURN ILLEGAL SUBFUNCTION CODE ERROR
    604
    605	000756	000772'			20$:	.WORD	NXON		; TURN A LINE-ID ON
    606	000760	001312'				.WORD	NXOFF		; TURN A LINE-ID OFF
    607	000762	001036'				.WORD	NXREA		; REASSIGN A LINE-ID TO ANOTHER LLC
    608	000764	001216'				.WORD	NXASN		; ASSIGN A LINE-ID TO AN LLC
    609	000766	001346'				.WORD	NXDEA		; DEASSIGN A LINE-ID FROM AN LLC
    610	000770	000000G				.WORD	NXNIC		; PERFORM SPECIAL FUNCTION FOR NICE..           ;AP0001
    611
    612		000014 				SFMAX=.-20$
    613
    614					;+
    615					; **-NXON-TURN A LINE-ID ON
    616					;
    617					; THIS ROUTINE IS CALLED WHEN A CONTROL FUNCTION WITH AN ON
    618					; SUBFUNCTION IS ISSUED TO THE LINE MANAGER TO START THE
    619					; OPERATION OF THE LLC PROCESS ASSIGNED TO THE LINE-ID.
    620					;
    621					;-
    622
    623	000772				NXON:	CALL	FINDL		; SEARCH FOR THE LINE-ID
    624	000776	103505 				BCS	IEROR		; IF CS, ERROR - R0 HAS THE ERROR CODE
    625	001000	001474 				BEQ	IEALC		; IF EQ, LINE-ID IS NOT ASSIGNED - ERROR
    626									; OTHERWISE R0 HAS TARGET PDV & CHAN
    627	001002					CALL	PRCLD		; IS THE TARGET PROCESS LOADED ?
    628	001006	103477 				BCS	IEMOD		; IF CS, NO - RETURN INVALID PROCESS ERROR
    629	001010					CALL	$CCBGT		; ALLOCATE A CCB FOR START FUNCTION
    630	001014	103471 				BCS	IENOD		; IF CS, RESOURCE ERROR
    631	001016	016502 	000010 			MOV	TSLN(R5),R2	; GET SLN & STATION NUMBER PAIR
    632	001022					CALL	STACT		; MARK THE SYSTEM LINE ACTIVE
    633	001026	012764 	000004 	000012 		MOV	#STRT,C.STS(R4)	; INDICATE THAT ONLY STARTUP IS REQUESTED
    634	001034	000514 				BR	NXON1		; FINISH IN COMMON CODE
    635
    636					;+
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 12-1


    637					; **-NXREA-REASSIGN A LINE-ID TO ANOTHER PROCESS
    638					;
    639					; THIS ROUTINE IS CALLED WHEN A CONTROL FUNCTION WITH A REASSIGN
    640					; SUBFUNCTION IS ISSUED TO THE LINE MANAGER TO CHANGE THE LINE-ID
    641					; AND PROCESS ASSIGNMENT WITHOUT FORCING THE LINE TO BE DISABLED.
    642					;
    643					; INPUTS:
    644					;
    645					;	R3 = ADDRESS OF AN I/O PACKET
    646					;
    647					;	FUNCTION DEPENDENT PARAMETERS:
    648					;	WD 0 - RELOCATION BIAS OF THE LINE-ID STRING
    649					;	WD 1 - VIRTUAL ADDRESS OF THE LINE-ID STRING
    650					;	WD 2 - LENGTH OF THE LINE-ID STRING
    651					;	WD 3 - RAD50 NAME OF THE TARGET LLC
    652					;
    653					;-
    654
    655	001036				NXREA:	CALL	FINDC		; VALIDATE USER & SEARCH FOR THE LINE-ID
    656	001042	103463 				BCS	IEROR		; IF CS, ERROR - R0 HAS THE ERROR CODE
    657	001044					CALL	FNDPR		; FIND THE TARGET PROCESS
    658	001050	103456 				BCS	IEMOD		; IF CS, NO TARGET LLC PROCESS
    659	001052	126502 	000017 			CMPB	TASN+1(R5),R2	; IS THE LINE-ID ASSIGNED TO THE TARGET PROCESS ?
    660	001056	001437 				BEQ	ISALT		; IF EQ, YES - RETURN ALTERNATE SUCCESS STATUS
    661	001060	032765 	010000 	000012 		BIT	#LF.REA,TSLF(R5) ; IS THE LINE REASSIGNABLE ?
    662	001066	001436 				BEQ	IERSU		 ; IF EQ, NO - RETURN SHARED RESOURCE ERROR
    663	001070					CALL	FNDFR		; OTHERWISE FIND A FREE CHANNEL(R0 - PDV & CHAN)
    664	001074	103441 				BCS	IENOD		; IF CS, NO FREE CHANNELS - RESOURCE ERROR
    665	001076					CALL	$CCBGT		; ALLOCATE A CBB
    666	001102	103436 				BCS	IENOD		; IF CS, RESOURCE ERROR
    667	001104	012711 	140000 			MOV	#140000,(R1)	; MARK THE TARGET CHANNEL TEMPORARILY BUSY
    668	001110	016502 	000010 			MOV	TSLN(R5),R2	; GET THE SLN & STATION NUMBER PAIR
    669					;
    670					; FORMAT THE CCB FOR A STOP TO THE CURRENT PROCESS
    671					;
    672					; NEXT STATE IS CONTINUE WITH REASSIGN
    673					; FUNCTION IS CONTROL STOP
    674					; STATUS IS STOP ONLY
    675					;
    676	001114	016564 	000016 	000024 		MOV	TASN(R5),C.BUF2(R4)	; SAVE PREVIOUS PDV & CHANNEL ASSIGNMENT
    677	001122	001454 				BEQ	NXAS1			; IF NE, NO CURRENT ASSIGNMENT - SO ASSIGN NOW
    678	001124	005064 	000004 			CLR	C.NSP(R4)		; SET NEXT STATE TO CONTINUE REASSIGN
    679	001130	016564 	000016 	000006 		MOV	TASN(R5),C.LIN(R4)	; SET TARGET PDV & CHANNEL
    680	001136	012764 	002006 	000010 		MOV	#FC.CTL!FS.STP,C.FNC(R4) ; SET FUNCTION CODE
    681	001144	012764 	000001 	000012 		MOV	#STOP,C.STS(R4)		; INDICATE THAT ONLY A STOP IS REQUIRED
    682	001152					CALLR	QCCBL		; QUEUE CCB TO TARGET LLC PROCESS
    683
    684						.ENABL	LSB
    685
    686	001156	012700 	000000C		ISALT:	MOV	#IS.SET&377,R0	; SET ALTERNATE SUCCESS STATUS
    687	001162	000413 				BR	10$		;
    688
    689	001164	012700 	000000C		IERSU:	MOV	#IE.RSU&377,R0	; SET SHARED RESOURCE IN USE ERROR
    690	001170	000410 				BR	10$		;
    691
    692	001172	012700 	000000C		IEALC:	MOV	#IE.ALC&377,R0	; SET ALLOCATION ERROR STATUS
    693	001176	000405 				BR	10$		;
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 12-2


    694
    695	001200	012700 	000000C		IENOD:	MOV	#IE.NOD&377,R0	; SET SECONDARY RESOURCE ERROR
    696	001204	000402 				BR	10$		;
    697
    698	001206	012700 	000000C		IEMOD:	MOV	#IE.MOD&377,R0	; SET UNRECOGNIZED PROCESS ERROR
    699
    700	001212				10$:
    701	001212				IEROR:	CALLR	RQALT		; POST COMPLETION ON I/O REQUEST
    702
    703						.DSABL	LSB
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 13


    705					;+
    706					; **-NXASN-ASSIGN A LINE TO A PROCESS
    707					;
    708					; INPUTS:
    709					;
    710					;	R3 = ADDRESS OF AN I/O PACKET
    711					;
    712					;	FUNCTION DEPENDENT PARAMETERS:
    713					;	WD 0 - RELOCATION BIAS OF THE LINE-ID STRING
    714					;	WD 1 - VIRTUAL ADDRESS OF THE LINE-ID STRING
    715					;	WD 2 - LENGTH OF THE LINE-ID STRING
    716					;	WD 3 - RAD50 NAME OF THE TARGET LLC
    717					;
    718					; OUTPUTS:
    719					;
    720					;	XXX
    721					;-
    722
    723	001216				NXASN:	CALL	FINDC		; VALIDATE USER AND SEARCH FOR THE LINE-ID
    724	001222	103773 				BCS	IEROR		; IF CS, ERROR - R0 HAS THE ERROR CODE
    725	001224	001357 				BNE	IERSU		; IF NE, LINE IS ALREADY ASSIGNED
    726	001226					CALL	FNDPR		; FIND THE TARGET PROCESS NAME
    727	001232	103765 				BCS	IEMOD		; IF CS, NO TARGET PROCESS - ERROR
    728	001234					CALL	FNDFR		; FIND A FREE LINE ON THAT PROCESS (R0 - PDV & CHAN)
    729	001240	103757 				BCS	IENOD		; IF CS, RESOURCE ERROR
    730	001242					CALL	$CCBGT		; ALLOCATE A CCB FOR ASSIGN NOTIFICATION
    731	001246	103754 				BCS	IENOD		; IF CS, RESOURCE ERROR
    732	001250	016502 	000010 			MOV	TSLN(R5),R2	; GET SLN & STATION PAIR
    733	001254				NXAS1:	CALL	ASSGN		; MODIFY THE SYSTEM DATA BASES
    734					;
    735					; FORMAT THE CCB FOR ASSIGN NOTIFICATION
    736					;
    737					; NEXT STATE IS I/O COMPLETION
    738					; FUNCTION IS CONTROL START
    739					; STATUS IS ENABLE, INHIBIT START
    740					;
    741	001260	012764 	000002 	000012 		MOV	#ENBX!LDIS,C.STS(R4)	; INDICATE LINE IS DISABLED AND NO START
    742
    743					;
    744					; COMMON CCB FORMATTING FOR ASSIGN AND ON
    745					;
    746	001266	112764 	000010 	000004 	NXON1:	MOVB	#STDON,C.NSP(R4)	; SET NEXT STATE TO COMPLETE THE I/O REQUEST
    747	001274	010064 	000006 			MOV	R0,C.LIN(R4)		; SET TARGET PDV & CHANNEL
    748	001300	012764 	001006 	000010 		MOV	#FC.CTL!FS.STR,C.FNC(R4) ; SET FUNCTION CODE
    749	001306					CALLR	QCCBL			; QUEUE CCB TO TARGET LLC PROCESS
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 14


    751					;+
    752					; **-NXOFF-TURN A LINE-ID OFF
    753					;
    754					; THIS ROUTINE IS CALLED WHEN A CONTROL FUNCTION WITH AN OFF
    755					; SUBFUNCTION IS ISSUED TO THE LINE MANAGER TO STOP THE OPERATION
    756					; OF THE LLC PROCESS ASSIGNED TO THE LINE-ID.
    757					;
    758					; INPUTS:
    759					;
    760					;	R3 = ADDRESS OF AN I/O PACKET
    761					;
    762					;	FUNCTION DEPENDENT PARAMETERS:
    763					;	WD 0 - RELOCATION BIAS OF THE LINE-ID STRING
    764					;	WD 1 - VIRTUAL ADDRESS OF THE LINE-ID STRING
    765					;	WD 2 - LENGTH OF THE LINE-ID STRING
    766					;
    767					;-
    768
    769	001312				NXOFF:	CALL	FINDL		; SEARCH FOR THE LINE-ID
    770	001316	103735 				BCS	IEROR		; IF CS, ERROR - R0 HAS THE ERROR CODE
    771	001320	001724 				BEQ	IEALC		; IF EQ, LINE-ID IS NOT ASSIGNED - ERROR
    772									; OTHERWISE R0 HAS TARGET PDV & CHAN
    773	001322					CALL	PRCLD		; IS THE TARGET PROCESS LOADED ?
    774	001326	103713 				BCS	ISALT		; IF CS, NO - LINE-ID MUST BE OFF, SO SUCCESS
    775	001330					CALL	$CCBGT		; ALLOCATE A CCB FOR THE STOP FUNCTION
    776	001334	103721 				BCS	IENOD		; IF CS, RESOURCE ERROR
    777	001336	012764 	000004 	000004 		MOV	#STOF1,C.NSP(R4) ; SET NEXT STATE TO COMPLETE I/O
    778	001344	000414 				BR	NXOF1		; FINISH IN COMMON CODE
    779
    780					;+
    781					; **-NXDEA-DEASSIGN A LINE-ID FROM A PROCESS
    782					;
    783					; INPUTS:
    784					;
    785					;	R3 = ADDRESS OF AN I/O PACKET
    786					;
    787					;	FUNCTION DEPENDENT PARAMETERS:
    788					;	WD 0 - RELOCATION BIAS OF THE LINE-ID STRING
    789					;	WD 1 - VIRTUAL ADDRESS OF THE LINE-ID STRING
    790					;	WD 2 - LENGTH OF THE LINE-ID STRING
    791					;
    792					; OUTPUTS:
    793					;
    794					;	XXX
    795					;-
    796
    797	001346				NXDEA:	CALL	FINDC		; VALIDATE USER & SEARCH FOR THE LINE-ID
    798	001352	103717 				BCS	IEROR		; IF CS, ERROR - R0 HAS THE ERROR CODE
    799	001354	001700 				BEQ	ISALT		; IF EQ, LINE IS NOT ASSIGNED - SUCCESS
    800	001356					CALL	$CCBGT		; ALLOCATE A CCB FOR STOP & DISABLE
    801	001362	103706 				BCS	IENOD		; IF CS, RESOURCE ERROR
    802	001364					CALL	MAPAD		; COMPUTE THE ADDRESS IN THE CHANNEL MAPPING TABLE
    803					;
    804					; SET UP CCB FOR STOP AND DISABLE
    805					;
    806					; NEXT STATE IS DEASSIGN COMPLETION
    807					; FUNCTION IS CONTROL STOP
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 14-1


    808					; STATUS IS STOP & DISABLE
    809					;
    810	001370	112764 	000006 	000004 		MOVB	#STDE1,C.NSP(R4)	; SET NEXT STATE TO COMPLETE DEASSIGN
    811
    812					;
    813					; COMMON CCB FORMATTING FOR DEASSIGN AND OFF
    814					;
    815	001376	016502 	000010 		NXOF1:	MOV	TSLN(R5),R2		; GET SLN & STATION NUMBER NUMBER PAIR
    816	001402	010064 	000006 			MOV	R0,C.LIN(R4)		; SET TARGET PDV & CHANNEL
    817	001406	012764 	002006 	000010 		MOV	#FC.CTL!FS.STP,C.FNC(R4) ; SET FUNCTION CODE
    818	001414	005064 	000012 			CLR	C.STS(R4)		; INDICATE STOP & DISABLE REQUIRED
    819	001420					CALLR	QCCBL			; QUEUE THE CCB TO THE TARGET LLC
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 15


    821					;+
    822					; **-NXCCP-CONTROL COMPLETE FROM AN LLC
    823					;
    824					; THIS ROUTINE IS CALLED WHEN A CONTROL COMPLETE FUNCTION FROM ANOTHER
    825					; LLC IS DEQUEUED FOR THIS PROCESS.  THE HIGH ORDER BIT OF THE CELL
    826					; 'C.LIN' INDICATES THAT THIS CCB CAME FROM ANOTHER LLC.  THIS ROUTINE
    827					; MAKES NON-STANDARD USE OF THE CHANNEL PARAMETER IN 'C.LIN'.  THIS BYTE
    828					; IS USED TO SELECT THE NEXT PROCESSING ROUTINE TO BE EXECUTED.
    829					;
    830					; INPUTS:
    831					;
    832					;	R4 = ADDRESS OF A CONTROL CCB
    833					;
    834					;	C.LIN	INDEX OF NEXT ROUTINE TO EXECUTE
    835					;	C.FNC	NOT USED INTERNALLY
    836					;	C.STS	STATE OF THE LINE (ENABLE OR DISABLE) ON A STOP
    837					;	C.BUF	PDV & CHANNEL NUMBER OF TARGET LLC
    838					;	C.BUF+2	ADDRESS IN TARGET LLC CHANNEL TABLE
    839					;	C.CNT	SLN & STATION NUMBER PAIR OF LINE-ID
    840					;	C.FLG	ADDRESS OF I/O PACKET
    841					;
    842					; OUTPUTS:
    843					;
    844					;	THE APPROPRIATE PROCESSING IS DISPATCHED BASED ON THE VAULE
    845					;	OF THE LOW BYTE OF 'C.LIN'.
    846					;
    847					;	R0 - R3 ARE RESTORED FROM C.BUF - C.FLG
    848					;
    849					;	THE N-BIT IS SET FROM THE SIGN OF THE LOW BYTE OF 'C.STS'.
    850					;
    851					;-
    852
    853	001424	116405 	000006 		NXCCP::	MOVB	C.LIN(R4),R5	; GET PROCESSING ROUTINE INDEX
    854	001430	016400 	000014 			MOV	C.BUF(R4),R0	; RESTORE TARGET PDV & CHANNEL
    855	001434	016401 	000016 			MOV	C.BUF+2(R4),R1	; RESTORE CHANNEL TABLE ADDRESS
    856	001440	016402 	000020 			MOV	C.CNT(R4),R2	; RESTORE SLN & STATION NUMBER PAIR
    857	001444	016403 	000022 			MOV	C.FLG(R4),R3	; RESTORE I/O PACKET ADDRESS
    858	001450	105764 	000012 			TSTB	C.STS(R4)	; SET THE SENSE OF THE COMPLETION STATUS
    859	001454					CALLR	@10$(R5)	; DISPATCH TO ROUTINE
    860
    861	001460	001472'			10$:	.WORD	NXRE1		; NOTIFY TARGET LLC OF ASSIGNMENT
    862	001462	001614'				.WORD	NXRE2		; COMPLETE THE REASSIGNMENT
    863	001464	001574'				.WORD	NXOF2		; COMPLETE THE OFF
    864	001466	001564'				.WORD	NXDE1		; COMPLETE THE DEASSIGNMENT
    865	001470	001622'				.WORD	NXDON		; POST I/O COMPLETION ON CCB COMPLETION
    866
    867					;+
    868					; **-NXRE1-CONTINUE WITH THE LINE REASSIGNMENT
    869					;
    870					; WHEN THE STOP OPERATION COMPLETES, DO THE LINE REASSIGNMENT
    871					; AND INFORM THE TARGET PROCESS.
    872					;
    873					; INPUTS OTHER THAN 'STANDARD' CCB:
    874					;
    875					;	C.BUF2	PREVIOUS PDV & CHANNEL ASSIGNMENT
    876					;
    877					;-
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 15-1


    878						.ENABL	LSB
    879
    880	001472	100431 			NXRE1:	BMI	10$		; IF MI, AN ERROR OCCURRED
    881	001474					CALL	ASSGN		; MODIFY SYSTEM DATA BASES
    882	001500	016400 	000024 			MOV	C.BUF2(R4),R0	; GET PREVIOUS PDV & CHANNEL ASSIGNMENT
    883	001504					CALL	MAPAD		; COMPUTE THE ADDRESS IN THE CHANNEL MAPPING TABLE
    884	001510	012711 	100000 			MOV	#100000,(R1)	; MARK THE CHANNEL FREE
    885					;
    886					; FORMAT THE CCB TO INFORM THE PROCESS OF THE ASSIGNMENT
    887					;
    888					; NEXT STATE IS I/O COMPLETION
    889					; FUNCTION IS CONTROL START
    890					; STATUS IS PER THE STOP JUST COMPLETED (IMPLIED START INHIBIT)
    891					;
    892	001514	112764 	000002 	000004 		MOVB	#STRE2,C.NSP(R4)	; SET NEXT STATE TO COMPLETE I/O REQUEST
    893	001522	016464 	000014 	000006 		MOV	C.BUF(R4),C.LIN(R4)	; SET TARGET PDV & CHANNEL
    894	001530	012764 	001006 	000010 		MOV	#FC.CTL!FS.STR,C.FNC(R4) ; SET FUNCTION CODE
    895	001536	042764 	177776 	000012 		BIC	#^C<LENB>,C.STS(R4)	; CLEAR ALL BUT THE STATE OF ENABLE
    896	001544	052764 	000002 	000012 		BIS	#ENBX,C.STS(R4)		; SET ENABLE CHANGE FLAG
    897	001552					CALLR	QCCBL			; QUEUE CCB TO THE TARGET LLC
    898
    899					;
    900					; AN ERROR OCCURRED ON THE STOP FUNCTION OF A REASSIGN
    901					;
    902	001556	042711 	040000 		10$:	BIC	#40000,(R1)	; REMOVE THE PENDING ASSIGNMENT FROM THE TARGET CHANNEL
    903	001562	000410 				BR	NXABO		; COMPLETE THE REQUEST WITH AN ABORT
    904
    905						.DSABL	LSB
    906
    907					;+
    908					; **-NXDE1-COMPLETE THE DEASSIGN OPERATION
    909					;
    910					; INPUTS OTHER THAN 'STANDARD' CCB:
    911					;
    912					;	NONE
    913					;
    914					;-
    915
    916	001564	100407 			NXDE1:	BMI	NXABO		; IF MI, AN ERROR OCCURRED - ABORT THE REQUEST
    917	001566					CALL	DEASN		; MODIFY THE SYSTEM TABLES
    918	001572	000413 				BR	NXDON		; COMPLETE THE DEASSIGN REQUEST
    919
    920					;+
    921					; **-NXOF2-COMPLETE THE OFF PROCESSING
    922					;
    923					; INPUTS OTHER THAN 'STANDARD' CCB:
    924					;
    925					;	NONE
    926					;
    927					;-
    928
    929	001574	100403 			NXOF2:	BMI	NXABO		; IF MI, AN ERROR OCCURRED - ABORT THE FUNCTION
    930	001576					CALL	CLACT		; CLEAR 'LF.ACT' IN THE SYSTEM LINE TABLE
    931	001602	000407 				BR	NXDON		; COMPLETE THE OFF REQUEST
    932					;+
    933					; **-NXDON-POST I/O COMPLETION
    934					; **-NXRE2-ALTERNATE FORM
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 15-2


    935					; **-NXABO-POST AN ABORTED I/O COMPLETION
    936					;
    937					; INPUTS OTHER THAN 'STANDARD' CCB:
    938					;
    939					;	NONE
    940					;
    941					;-
    942						.ENABL	LSB
    943
    944	001604	005001 			NXABO:	CLR	R1		; SET NO ADDITIONAL STATUS
    945	001606	012700 	000000C			MOV	#IE.ABO&377,R0	; SET ABORT COMPLETION STATUS
    946	001612	000406 				BR	20$		;
    947
    948	001614	016401 	000024 		NXRE2:	MOV	C.BUF2(R4),R1	; SET STATUS FOR SECOND WORD OF I/O STATUS
    949	001620	000401 				BR	10$		;
    950
    951	001622	005001 			NXDON:	CLR	R1		; SET NO ADDITIONAL STATUS
    952	001624	012700 	000000G		10$:	MOV	#IS.SUC,R0	; SET SUCCESSFUL I/O STATUS
    953	001630				20$:	CALL	$CCBRT		; RETURN THE CONTROL CCB
    954	001634					CALLR	RQDON		; POST I/O COMPLETION
    955
    956						.DSABL	LSB
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 16


    958					;+
    959					; **-QCCBL-QUEUE THE CONTROL CCB TO THE TARGET LLC
    960					;
    961					; INPUTS:
    962					;
    963					;	R4 = ADDRESS OF THE CONTROL CCB. THE FOLLOWING CELLS MUST BE
    964					;		SET UP ON ENTRY:
    965					;		C.NSP	NEXT STATE INDEX
    966					;		C.LIN	TARGET PDV & CHANNEL
    967					;		C.FNC	FUNCTION CODE FOR TARGET
    968					;		C.STS	ADDITIONAL CONTROL FOR TARGET
    969					;
    970					;	R0 = TARGET PDV & CHANNEL
    971					;	R1 = ADDRESS IN THE CHANNEL TABLE
    972					;	R2 = SLN & STATION NUMBER PAIR
    973					;	R3 = I/O PACKET ADDRESS
    974					;
    975					; OUTPUTS:
    976					;
    977					;	XXX
    978					;-
    979
    980	001640	116764 	000000G	000005 	QCCBL:	MOVB	PRPDV,C.NSP+1(R4) ; SET CURRENT PDV INDEX
    981	001646	010064 	000014 			MOV	R0,C.BUF(R4)	; SAVE TARGET PDV & CHANNEL
    982	001652	010164 	000016 			MOV	R1,C.BUF+2(R4)	; SAVE ADDRESS IN CHANNEL TABLE
    983	001656	010264 	000020 			MOV	R2,C.CNT(R4)	; SAVE SLN & STATION NUMBER PAIR
    984	001662	010364 	000022 			MOV	R3,C.FLG(R4)	; SAVE I/O PACKET ADDRESS
    985	001666					CALLR	$LLCRS		; QUEUE REQUEST TO AN LLC
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 17


    987					;+
    988					; **-FINDC-VALIDATE USER PRIVILEDGE AND SEARCH FOR THE LINE-ID
    989					;
    990					; INPUTS:
    991					;
    992					;	R3 = ADDRESS OF I/O PACKET
    993					;
    994					; OUTPUTS:
    995					;
    996					;	C-BIT CLEAR:
    997					;	R0 = CURRENT LLC PDV & CHANNEL ASSIGNMENT
    998					;		(Z = 0, NO ASSIGNMENT; Z = 1, LINE-ID IS ASSIGNED)
    999					;	R3 = ADDRESS OF THE I/O PACKET
   1000					;	R5 = ADDRESS OF THE PARAMETER BLOCK
   1001					;
   1002					;	C-BIT SET:
   1003					;	ERROR - R0 HAS THE ERROR CODE (IE.PRI OR IE.NSF)
   1004					;
   1005					;-
   1006						.ENABL	LSB
   1007
   1008	001672	016300 	000000G		FINDC:	MOV	I.TCB(R3),R0	; GET TCB ADDRESS OF ISSUING TASK
   1009	001676	032760 	000000G	000000G		BIT	#T3.PRV,T.ST3(R0) ; IS THE TASK PRIVILEDGED ?
   1010	001704	001424 				BEQ	10$		; IF EQ, NO - RETURN PRIVILEDGE VIOLATION
   1011
   1012					;+
   1013					; **-FINDL-SEARCH FOR THE LINE-ID
   1014					;
   1015					; THIS ROUTINE IS CALLED TO SEARCH FOR A LINE-ID IN THE SYSTEM DATA
   1016					; BASE.  THE PROCESS SPECIFIED MUST BE THAT OF A DDM PROCESS.
   1017					;
   1018					; INPUTS:
   1019					;
   1020					;	R3 = ADDRESS OF I/O PACKET
   1021					;
   1022					;
   1023					; OUTPUTS:
   1024					;
   1025					;	C-BIT CLEAR:
   1026					;	R0 = CURRENT LLC PDV & CHANNEL ASSIGNMENT
   1027					;		(Z = 0, NO ASSIGNMENT; Z = 1, LINE-ID IS ASSIGNED)
   1028					;	R3 = ADDRESS OF THE I/O PACKET
   1029					;	R5 = ADDRESS OF THE PARAMETER BLOCK
   1030					;
   1031					;	C-BIT SET:
   1032					;	ERROR - R0 HAS THE ERROR CODE (IE.NSF)
   1033					;-
   1034
   1035	001706	012705 	000000'		FINDL::	MOV	#TDATA,R5	; SET ADDRESS OF PARAMETER BLOCK
   1036	001712					CALL	FNDLN		; SEARCH FOR THE LINE-ID
   1037	001716	103422 				BCS	20$		; IF CS, NO LINE-ID FOUND
   1038	001720	132765 	000001 	000006 		BITB	#ZF.DDM,TFLG(R5) ; DID WE REALLY FIND A LINE-ID ?
   1039	001726	001416 				BEQ	20$		; IF EQ, NO LINE-ID FOUND
   1040	001730	032765 	040000 	000012 		BIT	#LF.RDY,TSLF(R5) ; IS THE LINE LOADED AND DATA BASE SET UP ?
   1041	001736	001412 				BEQ	20$		; IF EQ, NO - TREAT AS IF LINE DOESN'T EXIST
   1042	001740	032765 	020000 	000012 		BIT	#LF.UNL,TSLF(R5) ; MARKED FOR UNLOAD ?
   1043	001746	001006 				BNE	20$		; IF NE, YES - TREAT AS IF LINE DOESN'T EXIST
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 17-1


   1044	001750	016500 	000016 			MOV	TASN(R5),R0	; GET CURRENT LINE-ID ASSIGNMENT (SET Z-BIT)
   1045	001754					RETURN			; RETURN TO CALLER (C-BIT CLEAR)
   1046
   1047	001756	012700 	000000C		10$:	MOV	#IE.PRI&377,R0	; SET PRIVILEDGE VIOLATION STATUS
   1048	001762	000402 				BR	30$		;
   1049
   1050	001764	012700 	000000C		20$:	MOV	#IE.NSF&377,R0	; SET NO SUCH LINE-ID STATUS
   1051	001770	000261 			30$:	SEC			; INDICATE THAT AN ERROR HAS OCCURRED
   1052	001772					RETURN			; RETURN ERROR STATUS
   1053
   1054						.DSABL	LSB
   1055
   1056
   1057		000001 				.END
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 17-2
SYMBOL TABLE

ASSGN   000402RG 	C.FLG1  000022   	FS.XOF= 010000   	L.DDS   000004   	STRE1 = 000000
A$$CHK= 000000   	C.FLG2  000032   	FS.XON= 007000   	L.DLC   000003   	STRE2 = 000002
A$$CPS= 000000   	C.FNC   000010   	F$$LVL= 000001   	L.DLM   000006   	STRT  = 000004
A$$PRI= 000000   	C.LIN   000006   	G$$TPP= 000000   	L.DLS   000010   	STSLT   000474R
A$$TRP= 000000   	C.LNK   000000   	G$$TSS= 000000   	L.FLG   000000   	S$$WRG= 000000
CAT5    000162R  	C.MOD   000011   	G$$TTK= 000000   	L.LEN = 000014   	S$$YSZ= 007600
CB.CCB= 000002   	C.NSP   000004   	G$$WRD= 000000   	L.UNT   000013   	TASN    000016
CB.RDB= 000004   	C.RSV   000002   	IEALC   001172R  	MAPAD   000532R  	TCTL    000002
CE.ABO= 100362   	C.STA   000007   	IEMOD   001206R  	M$$CRB= 000124   	TDATA   000000R
CE.DIS= 100366   	C.STS   000012   	IENOD   001200R  	M$$CRX= 000000   	TDDM    000014
CE.ERR= 100370   	DEASN   000424RG 	IEONP = ****** GX	M$$FCS= 000000   	TDLC    000015
CE.MOP= 100372   	D$$BUG= 177514   	IEROR   001212R  	M$$MGE= 000000   	TFLG    000006
CE.NTE= 100361   	D$$ISK= 000000   	IERSU   001164R  	M$$OVR= 000000   	TLIN    000003
CE.RTE= 100376   	D$$L11= 000001   	IE.ABO= ****** GX	NXABO   001604R  	TNAM    000000
CE.SRC= 100364   	D$$YNC= 000000   	IE.ALC= ****** GX	NXASN   001216R  	TPDV    000007
CE.TMO= 100374   	D$$YNM= 000000   	IE.MOD= ****** GX	NXAS1   001254R  	TSLF    000012
CF.EOM= 000004   	ENBX  = 000002   	IE.NOD= ****** GX	NXCCP   001424RG 	TSLN    000010
CF.HDR= 000020   	E$$XPR= 000000   	IE.NSF= ****** GX	NXCTL   000730RG 	TSTA    000004
CF.LB = 100000   	FC.CCP= 000020   	IE.PRI= ****** GX	NXDEA   001346R  	T$$KMG= 000000
CF.SOM= 000010   	FC.CTL= 000006   	IE.RSU= ****** GX	NXDE1   001564R  	T$$MIN= 000000
CF.SYN= 000040   	FC.KCP= 000016   	ISALT   001156R  	NXDON   001622R  	T.ST3 = ****** GX
CF.TRN= 000100   	FC.KIL= 000004   	IS.SET= ****** GX	NXNIC = ****** GX	T3.PRV= ****** GX
CLACT   000436R  	FC.RCE= 000002   	IS.SUC= ****** GX	NXOFF   001312R  	V$$CTR= 001000
COASN   000450R  	FC.RCP= 000014   	I$$RAR= 000000   	NXOF1   001376R  	X$$DBT= 000000
COTB    000306R  	FC.TIM= 000010   	I$$RDN= 000000   	NXOF2   001574R  	ZF.ASN= 100000
CS.ABO= 000100   	FC.XCP= 000012   	I.FCN = ****** GX	NXON    000772R  	ZF.BSY= 140000
CS.BUF= 000200   	FC.XME= 000000   	I.PRM = ****** GX	NXON1   001266R  	ZF.DDM= 000001
CS.DCR= 000400   	FINDC   001672R  	I.TCB = ****** GX	NXREA   001036R  	ZF.DLC= 000002
CS.DEV= 000002   	FINDL   001706RG 	KISAR6= ****** GX	NXRE1   001472R  	ZF.KMX= 000020
CS.DIS= 000040   	FNDFR   000644RG 	K$$CNT= 177546   	NXRE2   001614R  	ZF.LLC= 000004
CS.ENB= 000020   	FNDLA = ****** GX	K$$CSR= 177546   	N$$LDV= 000001   	ZF.LMC= 000100
CS.EOF= 000001   	FNDLN   000020RG 	K$$LDC= 000000   	N$$MOV= 000010   	ZF.MFL= 000010
CS.ERR= 100000   	FNDPR   000606R  	K$$TPS= 000074   	N$$SYS= 000001   	ZF.MUX= 000040
CS.HFE= 002000   	FS.AST= 000000   	LDIS  = 000000   	N$$USR= 000001   	ZF.TIM= 000200
CS.LST= 040000   	FS.CIB= 002000   	LD$LP = 000000   	OFF   = 000000   	Z.DAT   000014
CS.MTL= 004000   	FS.CRA= 001000   	LENB  = 000001   	PRCLD   000570R  	Z.DSP   000000
CS.RNG= 000010   	FS.DIS= 013000   	LF.ACT= 100000   	PRPDV = ****** GX	Z.FLG   000011
CS.ROV= 000004   	FS.DVC= 001000   	LF.BWT= 000007   	P$$P45= 000000   	Z.LEN = 000014
CS.RSN= 010000   	FS.ENB= 012000   	LF.DLO= 000040   	P$$WRD= 000000   	Z.LLN   000010
CS.SUC= 000001   	FS.GET= 006000   	LF.ENA= 002000   	QCCBL   001640R  	Z.MAP   000016
CS.TMO= 020000   	FS.INI= 000000   	LF.MDC= 000100   	Q$$OPT= 000010   	Z.NAM   000006
CVTBL   000154R  	FS.KIL= 000000   	LF.MFL= 004000   	RQALT = ****** GX	Z.PCB   000012
C$$CKP= 000000   	FS.LTM= 001000   	LF.MTP= 000020   	RQDON = ****** GX	Z.SCH   000004
C$$ORE= 000400   	FS.MNT= 004000   	LF.RDY= 040000   	R$$DER= 000000   	$CCBGT= ****** GX
C$$RSH= 177564   	FS.MSN= 014000   	LF.REA= 010000   	R$$K11= 000001   	$CCBRT= ****** GX
C.BID   000003   	FS.RNG= 011000   	LF.TIM= 000010   	R$$SND= 000000   	$LLCRS= ****** GX
C.BUF   000014   	FS.RTN= 001000   	LF.UNL= 020000   	R$$11M= 000000   	$LLCTA= ****** GX
C.BUF1  000014   	FS.SET= 005000   	L$$ASG= 000000   	SFMAX = 000014   	$MUL  = ****** GX
C.BUF2  000024   	FS.STM= 000000   	L$$DRV= 000000   	STACT   000412R  	$PDVAD= ****** GX
C.CNT   000020   	FS.STP= 002000   	L$$P11= 000001   	STDE1 = 000006   	$PDVTA= ****** GX
C.CNT1  000020   	FS.STR= 001000   	L$$11R= 000000   	STDON = 000010   	$PDVTB= ****** GX
C.CNT2  000030   	FS.TRM= 003000   	L.CTL   000012   	STOF1 = 000004   	$SLTTA= ****** GX
C.FLG   000022   	FS.XKL= 002000   	L.DDM   000002   	STOP  = 000001

. ABS.	000034	   000
      	001774	   001
ERRORS DETECTED:  0
NXSYS	MACRO M1110  13-OCT-79 10:32  PAGE 17-3
SYMBOL TABLE


VIRTUAL MEMORY USED:  6585 WORDS  ( 26 PAGES)
DYNAMIC MEMORY:  7948 WORDS  ( 30 PAGES)
ELAPSED TIME:  00:00:37
NXSYS,[131,34]NXSYS/CR/-SP=[130,10]NETLIB/ML,RSXMC4/PA:1,[131,10]NXSYS
NXSYS      CREATED BY  MACRO  ON 13-OCT-79 AT 10:32	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ASSGN 	  000402 RG	#6-322      13-733     15-881    
CAT5  	  000162 R	 4-157     #5-212     
CLACT 	  000436 R	#7-386      15-930    
COASN 	  000450 R	 6-322      7-365     #8-403     
COTB  	  000306 R	 4-162      4-167      4-172     #5-275     
CVTBL 	  000154 R	#5-208      5-215      5-233     
C.BUF 	  000014	 15-854     15-855     15-893    *16-981    *16-982    
C.BUF2	  000024	*12-676     15-882     15-948    
C.CNT 	  000020	 15-856    *16-983    
C.FLG 	  000022	 15-857    *16-984    
C.FNC 	  000010	*12-680    *13-748    *14-817    *15-894    
C.LIN 	  000006	*12-679    *13-747    *14-816     15-853    *15-893    
C.NSP 	  000004	*12-678    *13-746    *14-777    *14-810    *15-892    *16-980    
C.STS 	  000012	*12-633    *12-681    *13-741    *14-818     15-858    *15-895    *15-896    
DEASN 	  000424 RG	#7-365      15-917    
ENBX  	= 000002	#3-90       13-741     15-896    
FC.CTL	= 000006	 12-680     13-748     14-817     15-894    
FINDC 	  001672 R	 12-655     13-723     14-797    #17-1008   
FINDL 	  001706 RG	 12-623     14-769    #17-1035   
FNDFR 	  000644 RG	#11-555     12-663     13-728    
FNDLA 	= ******  GX	 4-177     
FNDLN 	  000020 RG	#4-143      17-1036   
FNDPR 	  000606 R	#10-518     12-657     13-726    
FS.STP	= 002000	 12-680     14-817    
FS.STR	= 001000	 13-748     15-894    
IEALC 	  001172 R	 12-625    #12-692     14-771    
IEMOD 	  001206 R	 12-628     12-658    #12-698     13-727    
IENOD 	  001200 R	 12-630     12-664     12-666    #12-695     13-729     13-731     14-776     14-801    
IEONP 	= ******  GX	 12-603    
IEROR 	  001212 R	 12-624     12-656    #12-701     13-724     14-770     14-798    
IERSU 	  001164 R	 12-662    #12-689     13-725    
IE.ABO	= ******  GX	 15-945    
IE.ALC	= ******  GX	 12-692    
IE.MOD	= ******  GX	 12-698    
IE.NOD	= ******  GX	 12-695    
IE.NSF	= ******  GX	 17-1050   
IE.PRI	= ******  GX	 17-1047   
IE.RSU	= ******  GX	 12-689    
ISALT 	  001156 R	 12-660    #12-686     14-774     14-799    
IS.SET	= ******  GX	 12-686    
IS.SUC	= ******  GX	 15-952    
I$$AS 	= ******	 3-44      
I.FCN 	= ******  GX	 12-596    
I.PRM 	= ******  GX	 4-150      4-154      4-155      10-518    
I.TCB 	= ******  GX	 17-1008   
KISAR6	= ******  GX	*4-150     
LDIS  	= 000000	#3-88       13-741    
LENB  	= 000001	#3-89       15-895    
LF.ACT	= 100000	#3-45       6-344      7-387     
LF.BWT	= 000007	#3-45      
LF.DLO	= 000040	#3-45      
LF.ENA	= 002000	#3-45      
NXSYS      CREATED BY  MACRO  ON 13-OCT-79 AT 10:32	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

LF.MDC	= 000100	#3-45      
LF.MFL	= 004000	#3-45      
LF.MTP	= 000020	#3-45      
LF.RDY	= 040000	#3-45       17-1040   
LF.REA	= 010000	#3-45       12-661    
LF.TIM	= 000010	#3-45      
LF.UNL	= 020000	#3-45       17-1042   
L.CTL 	  000012	#3-45      
L.DDM 	  000002	#3-45      
L.DDS 	  000004	#3-45      
L.DLC 	  000003	#3-45      
L.DLM 	  000006	#3-45      
L.DLS 	  000010	#3-45      
L.FLG 	  000000	#3-45      
L.LEN 	= 000014	#3-45       8-432     
L.UNT 	  000013	#3-45      
MAPAD 	  000532 R	#9-457      9-490      14-802     15-883    
M$$MGE	= 000000	 4-148     
NXABO 	  001604 R	 15-903     15-916     15-929    #15-944    
NXASN 	  001216 R	 12-608    #13-723    
NXAS1 	  001254 R	 12-677    #13-733    
NXCCP 	  001424 RG	#15-853    
NXCTL 	  000730 RG	#12-596    
NXDEA 	  001346 R	 12-609    #14-797    
NXDE1 	  001564 R	 15-864    #15-916    
NXDON 	  001622 R	 15-865     15-918     15-931    #15-951    
NXNIC 	= ******  GX	 12-610    
NXOFF 	  001312 R	 12-606    #14-769    
NXOF1 	  001376 R	 14-778    #14-815    
NXOF2 	  001574 R	 15-863    #15-929    
NXON  	  000772 R	 12-605    #12-623    
NXON1 	  001266 R	 12-634    #13-746    
NXREA 	  001036 R	 12-607    #12-655    
NXRE1 	  001472 R	 15-861    #15-880    
NXRE2 	  001614 R	 15-862    #15-948    
OFF   	= 000000	#3-78      
PRCLD 	  000570 R	#9-490      12-627     14-773    
PRPDV 	= ******  GX	 16-980    
QCCBL 	  001640 R	 12-682     13-749     14-819     15-897    #16-980    
RQALT 	= ******  GX	 12-701    
RQDON 	= ******  GX	 15-954    
R$$11D	= ******	 3-44      
R$$11M	= 000000	 3-44      
R$$11S	= ******	 3-44      
SFMAX 	= 000014	 12-599    #12-612    
STACT 	  000412 R	#6-343      12-632    
STDE1 	= 000006	#3-98       14-810    
STDON 	= 000010	#3-99       13-746    
STOF1 	= 000004	#3-97       14-777    
STOP  	= 000001	#3-77       12-681    
STRE1 	= 000000	#3-95      
STRE2 	= 000002	#3-96       15-892    
NXSYS      CREATED BY  MACRO  ON 13-OCT-79 AT 10:32	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

STRT  	= 000004	#3-83       12-633    
STSLT 	  000474 R	 6-343      7-386     #8-428     
TASN  	  000016	#3-65       12-659     12-676     12-679     17-1044   
TCTL  	  000002	#3-55      *4-164     
TDATA 	  000000 R	#3-103      17-1035   
TDDM  	  000014	#3-63      
TDLC  	  000015	#3-64      
TFLG  	  000006	#3-59       17-1038   
TLIN  	  000003	#3-56      *4-169     
TNAM  	  000000	#3-54      *4-159     
TPDV  	  000007	#3-60      
TSLF  	  000012	#3-62       12-661     17-1040    17-1042   
TSLN  	  000010	#3-61       12-631     12-668     13-732     14-815    
TSTA  	  000004	#3-57      *4-174     
T.ST3 	= ******  GX	 17-1009   
T3.PRV	= ******  GX	 17-1009   
X$$MCB	= ******	 3-44       3-44      
ZF.ASN	= 100000	#3-71      
ZF.BSY	= 140000	#3-72      
ZF.DDM	= 000001	#3-44       17-1038   
ZF.DLC	= 000002	#3-44      
ZF.KMX	= 000020	#3-44      
ZF.LLC	= 000004	#3-44       10-522    
ZF.LMC	= 000100	#3-44      
ZF.MFL	= 000010	#3-44      
ZF.MUX	= 000040	#3-44      
ZF.TIM	= 000200	#3-44      
Z.DAT 	  000014	#3-44      
Z.DSP 	  000000	#3-44       3-44      
Z.FLG 	  000011	#3-44       10-522    
Z.LEN 	= 000014	#3-44      
Z.LLN 	  000010	#3-44       11-562    
Z.MAP 	  000016	#3-44       9-464      11-560     11-562    
Z.NAM 	  000006	#3-44      
Z.PCB 	  000012	#3-44       9-491      10-524    
Z.SCH 	  000004	#3-44      
$CCBGT	= ******  GX	 12-629     12-665     13-730     14-775     14-800    
$CCBRT	= ******  GX	 15-953    
$LLCRS	= ******  GX	 16-985    
$LLCTA	= ******  GX	 8-407     
$MUL  	= ******  GX	 5-228      5-287      8-433     
$PDVAD	= ******  GX	 10-519    
$PDVTA	= ******  GX	 11-558    
$PDVTB	= ******  GX	 9-462     
$SLTTA	= ******  GX	 8-434     
NXSYS      CREATED BY  MACRO  ON 13-OCT-79 AT 10:32	PAGE 4

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		 4-157      4-162      4-167      4-172      4-177      5-228      5-287      6-343      7-386      8-408     
                 8-433      9-490      10-519     12-623     12-627     12-629     12-632     12-655     12-657     12-663    
                 12-665     13-723     13-726     13-728     13-730     13-733     14-769     14-773     14-775     14-797    
                 14-800     14-802     15-881     15-883     15-917     15-930     15-953     17-1036   
CALLR 		#12-601    #12-603    #12-682    #12-701    #13-749    #14-819    #15-859    #15-897    #15-954    #16-985    
CCBDF$		#3-42       3-43      
PDVDF$		#3-42       3-44      
RETURN		 4-180      5-249      5-301      6-345      7-388      8-410      8-438      9-468      9-494      10-527    
                 11-578     17-1045    17-1052   
SLTDF$		#3-42       3-45      
SOB   		#11-569