
F)	auxiliary operations

	The UNLINK block can take an auxiliary operation (e.g. E, NE,
GE, etc), just like a GATE block, to control the unlinking of Xacts on
a user chain.  For example, if we have a user chain within which Xacts
are ordered by the value in their second parameter, and we want to
remove only those transactions with some value X in that parameter, we
can test for this using the following UNLINK block:

	UNLINK E	WAIT,NEXT,1,2,SNA

In this instance, the unlinking Xact looks for a suspended Xact on the
user chain called WAIT that can be directed to the block labeled NEXT.
The auxiliary operator E, the D operand 2, and the E operand SNA force
the UNLINKing Xact to scan the user chain looking for the first Xact
whose value in the second parameter matches the SNA value.  If, for
another example, we wanted to reactivate every suspended transaction
whose third parameter had a value greater than or equal to the value
of the fourth parameter in the UNLINKING Xact, then we could use

	UNLINK GE	WAIT,NEXT,ALL,3,P4

More generally, when an auxiliary operator is used, the operands are
defined as

		A - name of the user chain
		B - destination of ractivated Xact
		C - number of Xacts to be reactivated
		D - parameter of transaction on the user chain
		E - any SNA

and operands D and E are tested according to the auxiliary operator.


  e.g.
	In London, people queue for buses at a bus stop.  When a bus
arrives, those people waiting for that particular bus step forward to
form a second queue and board the bus in order of arrival.  Simulate
for a bus stop where people arrive every 2 +/- 1 minute to wait for a
randomly chosen bus numbered between 1 and 5, where buses arrive every
15 +/- 3 minutes in rotation starting from bus 5 going down to 1.
Stop after 50 people have ridden on bus number 5.

	SIMULATE
 BUSNUM	FUNCTION	RN2,D5
 .2,1/.4,2/.6,3/.8,4/1,5
 DEST	FUNCTION	P1,L5
 1,DEST1/2,DEST2/3,DEST3/4,DEST4/5,DEST5

	GENERATE	2,1
	ASSIGN		1,FN$BUSNUM
	LINK		LINEUP,FIFO
 CANT	TERMINATE
 BOARD	TRANSFER	,FN$DEST

 DEST1	TERMINATE
 DEST2	TERMINATE
 DEST3	TERMINATE
 DEST4	TERMINATE
 DEST5	TERMINATE	1


	GENERATE	,,,1
 AGAIN	ASSIGN		2,5
 NEXTB	ADVANCE		15,3
	UNLINK E	LINEUP,BOARD,ALL,1,P2
	LOOP		2,NEXTB
	TRANSFER	,AGAIN

	START		50
	END
