/*
		Test.rexx

		MSE Automation demo
*/


address "MSE.1"
options results

call addlib('rexxsupport.library', 0,-30,0)

/* Stoplight */
'GetGad' 14 VALUE; oGad.14 = RESULT
do lp = 1 to 3
	do lp2 = 0 to 3
		'SetGad' 14 lp2
		call delay(5)
	end
end
'SetGad' 14 oGad.14



/* Get initial VALUEs */
'GetGad' 1 VALUE; cGad.1 = RESULT; oGad.1 = cGad.1
'GetGad' 2 VALUE; cGad.2 = RESULT; oGad.2 = cGad.2
'GetGad' 3 VALUE; cGad.3 = RESULT; oGad.3 = cGad.3
'GetGad' 4 VALUE; cGad.4 = RESULT; oGad.4 = cGad.4
'GetGad' 5 VALUE; cGad.5 = RESULT; oGad.5 = cGad.5

MaxValue = max(oGad.1, oGad.2, oGad.3, oGad.4, oGad.5)
MinValue = min(oGad.1, oGad.2, oGad.3, oGad.4, oGad.5)

/* Snowfall Effect */
do lp = 0 to MaxValue
	if cGad.1 > 0 then do
		cGad.1 = cGad.1 - 1
		'SetGad' 1 cGad.1
	end

	if cGad.2 > 0 then do
		cGad.2 = cGad.2 - 1
		'SetGad' 2 cGad.2
	end

	if cGad.3 > 0 then do
		cGad.3 = cGad.3 - 1
		'SetGad' 3 cGad.3
	end

	if cGad.4 > 0 then do
		cGad.4 = cGad.4 - 1
		'SetGad' 4 cGad.4
	end

	if cGad.5 > 0 then do
		cGad.5 = cGad.5 - 1
		'SetGad' 5 cGad.5
	end
end

/* Heaven effect */
do lp = 0 to 127 by 4
	'SetGad' 1 lp
	'SetGad' 2 lp
	'SetGad' 3 lp
	'SetGad' 4 lp
	'SetGad' 5 lp
end
do lp = 1 to 5
	'SetGad' lp 127
end


/* FallBack effect */
cGad. = 127
do lp = MinValue to 127
	if cGad.1 ~= oGad.1 then do
		cGad.1 = cGad.1 - 1
		'SetGad' 1 cGad.1
	end

	if cGad.2 ~= oGad.2 then do
		cGad.2 = cGad.2 - 1
		'SetGad' 2 cGad.2
	end

	if cGad.3 ~= oGad.3 then do
		cGad.3 = cGad.3 - 1
		'SetGad' 3 cGad.3
	end

	if cGad.4 ~= oGad.4 then do
		cGad.4 = cGad.4 - 1
		'SetGad' 4 cGad.4
	end

	if cGad.5 ~= oGad.5 then do
		cGad.5 = cGad.5 - 1
		'SetGad' 5 cGad.5
	end
end

'Request' '"Automation Demo" "Whirl with that!"'
exit
