	// Load test pattern
	L		DW#16#55555555
	T		MD 0
	__ASSERT==	M 0.0,		1
	__ASSERT==	M 0.1,		0
	__ASSERT==	M 0.2,		1
	__ASSERT==	M 0.3,		0
	__ASSERT==	M 0.4,		1
	__ASSERT==	M 0.5,		0
	__ASSERT==	M 0.6,		1
	__ASSERT==	M 0.7,		0
	__ASSERT==	M 1.0,		1
	__ASSERT==	M 1.1,		0
	__ASSERT==	M 1.2,		1
	__ASSERT==	M 1.3,		0
	__ASSERT==	M 1.4,		1
	__ASSERT==	M 1.5,		0
	__ASSERT==	M 1.6,		1
	__ASSERT==	M 1.7,		0


	// Check basic VKE behavior
	__STWRST
	__ASSERT==	__STW VKE,	0
	SET
	__ASSERT==	__STW VKE,	1
	CLR
	__ASSERT==	__STW VKE,	0
	NOT
	__ASSERT==	__STW VKE,	1
	NOT
	__ASSERT==	__STW VKE,	0
	SAVE
	__ASSERT==	__STW BIE,	0
	NOT
	SAVE
	__ASSERT==	__STW BIE,	1
	NOT
	SAVE
	__ASSERT==	__STW BIE,	0


	// Check basic U and =
	__STWRST
	U		M 0.0
	=		M 16.0
	__ASSERT==	M 16.0,		1

	__STWRST
	U		M 0.1
	=		M 16.0
	__ASSERT==	M 16.0,		0


	// Check S and R
	__STWRST
	CLR
	=		M 16.0
	__ASSERT==	M 16.0,		0
	SET
	S		M 16.0
	__ASSERT==	M 16.0,		1
	R		M 16.0
	__ASSERT==	M 16.0,		0

	__STWRST
	CLR
	=		M 16.0
	__ASSERT==	M 16.0,		0
	CLR
	S		M 16.0
	__ASSERT==	M 16.0,		0
	R		M 16.0
	__ASSERT==	M 16.0,		0

	__STWRST
	CLR
	=		M 16.0
	__ASSERT==	M 16.0,		0
	SET
	S		M 16.0
	__ASSERT==	M 16.0,		1
	CLR
	R		M 16.0
	__ASSERT==	M 16.0,		1


	// Check U
	__STWRST
	U		M 0.0
	U		M 0.0
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.0
	U		M 0.1
	__ASSERT==	__STW VKE,	0

	__STWRST
	U		M 0.1
	U		M 0.0
	__ASSERT==	__STW VKE,	0


	// Check U-O-U
	__STWRST
	U		M 0.1
	U		M 0.1
	O
	U		M 0.0
	U		M 0.0
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.0
	U		M 0.0
	O
	U		M 0.1
	U		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.1
	U		M 0.1
	O
	U		M 0.1
	U		M 0.1
	__ASSERT==	__STW VKE,	0

	__STWRST
	UN		M 0.0
	UN		M 0.0
	O
	UN		M 0.1
	UN		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	UN		M 0.1
	UN		M 0.1
	O
	UN		M 0.0
	UN		M 0.0
	__ASSERT==	__STW VKE,	1

	__STWRST
	UN		M 0.0
	UN		M 0.0
	O
	UN		M 0.0
	UN		M 0.0
	__ASSERT==	__STW VKE,	0

	__STWRST
	UN		M 0.0
	U		M 0.1
	O
	U		M 0.0
	UN		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.0
	UN		M 0.1
	O
	UN		M 0.0
	U		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.1
	U		M 0.1
	O
	UN		M 0.0
	UN		M 0.0
	__ASSERT==	__STW VKE,	0

	__STWRST
	U		M 0.1
	U		M 0.1
	O
	UN		M 0.1
	UN		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.0
	O
	U		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.1
	O
	U		M 0.0
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.1
	O
	U		M 0.1
	__ASSERT==	__STW VKE,	0

	__STWRST
	UN		M 0.0
	O
	UN		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	UN		M 0.1
	O
	UN		M 0.0
	__ASSERT==	__STW VKE,	1

	__STWRST
	UN		M 0.0
	O
	UN		M 0.0
	__ASSERT==	__STW VKE,	0

	__STWRST
	U(
	U		M 0.0
	)
	O
	U(
	U		M 0.1
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	U(
	U		M 0.1
	)
	O
	U(
	U		M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	U(
	U		M 0.1
	)
	O
	U(
	U		M 0.1
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	UN(
	UN		M 0.0
	)
	O
	UN(
	UN		M 0.1
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	UN(
	UN		M 0.1
	)
	O
	UN(
	UN		M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	UN(
	UN		M 0.1
	)
	O
	UN(
	UN		M 0.1
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	U(
	U		M 0.0
	U		M 0.0
	)
	O
	U(
	U		M 0.1
	U		M 0.1
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	U(
	U		M 0.1
	U		M 0.1
	)
	O
	U(
	U		M 0.0
	U		M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	UN(
	UN		M 0.0
	UN		M 0.0
	)
	O
	UN(
	UN		M 0.1
	UN		M 0.1
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	UN(
	UN		M 0.1
	UN		M 0.1
	)
	O
	UN(
	UN		M 0.0
	UN		M 0.0
	)
	__ASSERT==	__STW VKE,	1


	// Check ER-U-O combination
	__STWRST
	U		M 0.1
	O		M 0.0
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.0
	O		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.1
	O		M 0.1
	__ASSERT==	__STW VKE,	0

	__STWRST
	U		M 0.1
	ON		M 0.0
	__ASSERT==	__STW VKE,	0

	__STWRST
	U		M 0.0
	ON		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.1
	ON		M 0.1
	__ASSERT==	__STW VKE,	1


	// Check ER-U-X combination
	__STWRST
	U		M 0.1
	X		M 0.0
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.0
	X		M 0.1
	__ASSERT==	__STW VKE,	1

	__STWRST
	U		M 0.1
	X		M 0.1
	__ASSERT==	__STW VKE,	0

	__STWRST
	U		M 0.0
	X		M 0.0
	__ASSERT==	__STW VKE,	0

	__STWRST
	U		M 0.1
	XN		M 0.0
	__ASSERT==	__STW VKE,	0

	__STWRST
	U		M 0.0
	XN		M 0.1
	__ASSERT==	__STW VKE,	0

	__STWRST
	U		M 0.1
	XN		M 0.1
	__ASSERT==	__STW VKE,	1


	// Check U-branch
	__STWRST
	U(
		U	M 0.0
		U	M 0.0
	)
	U(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	U(
		U	M 0.0
		U	M 0.1
	)
	U(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	U(
		U	M 0.1
		U	M 0.0
	)
	U(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	U(
		U	M 0.0
		U	M 0.0
	)
	U(
		U	M 0.0
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	U(
		U	M 0.0
		U	M 0.0
	)
	U(
		U	M 0.1
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	UN(
		U	M 0.1
		U	M 0.1
	)
	U(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	U(
		U	M 0.0
		U	M 0.0
	)
	UN(
		U	M 0.1
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	UN(
		U	M 0.0
		U	M 0.0
	)
	U(
		U	M 0.1
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	U(
		U	M 0.1
		U	M 0.1
	)
	UN(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	UN(
		U	M 0.1
		U	M 0.1
	)
	UN(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	UN(
		U	M 0.0
		U	M 0.0
	)
	UN(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	UN(
		U	M 0.1
		U	M 0.1
	)
	UN(
		U	M 0.1
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	1


	// Check O-branch
	__STWRST
	O(
		U	M 0.0
		U	M 0.0
	)
	O(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	O(
		U	M 0.0
		U	M 0.1
	)
	O(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	O(
		U	M 0.1
		U	M 0.0
	)
	O(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	O(
		U	M 0.0
		U	M 0.0
	)
	O(
		U	M 0.0
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	O(
		U	M 0.0
		U	M 0.0
	)
	O(
		U	M 0.1
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	ON(
		U	M 0.1
		U	M 0.1
	)
	O(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	O(
		U	M 0.0
		U	M 0.0
	)
	ON(
		U	M 0.1
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	ON(
		U	M 0.0
		U	M 0.0
	)
	O(
		U	M 0.1
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	O(
		U	M 0.1
		U	M 0.1
	)
	ON(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	ON(
		U	M 0.1
		U	M 0.1
	)
	ON(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	ON(
		U	M 0.0
		U	M 0.0
	)
	ON(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	ON(
		U	M 0.1
		U	M 0.1
	)
	ON(
		U	M 0.1
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	1


	// Check X-branch
	__STWRST
	X(
		U	M 0.0
		U	M 0.0
	)
	X(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	X(
		U	M 0.0
		U	M 0.1
	)
	X(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	X(
		U	M 0.1
		U	M 0.0
	)
	X(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	X(
		U	M 0.0
		U	M 0.0
	)
	X(
		U	M 0.0
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	X(
		U	M 0.0
		U	M 0.0
	)
	X(
		U	M 0.1
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	XN(
		U	M 0.1
		U	M 0.1
	)
	X(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	X(
		U	M 0.0
		U	M 0.0
	)
	XN(
		U	M 0.1
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	XN(
		U	M 0.0
		U	M 0.0
	)
	X(
		U	M 0.1
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	X(
		U	M 0.1
		U	M 0.1
	)
	XN(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	XN(
		U	M 0.1
		U	M 0.1
	)
	XN(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	1

	__STWRST
	XN(
		U	M 0.0
		U	M 0.0
	)
	XN(
		U	M 0.0
		U	M 0.0
	)
	__ASSERT==	__STW VKE,	0

	__STWRST
	XN(
		U	M 0.1
		U	M 0.1
	)
	XN(
		U	M 0.1
		U	M 0.1
	)
	__ASSERT==	__STW VKE,	0


	CALL SFC 46 // STOP CPU
