(*
Example code for if/elseif/else/endif

Zeus supports conditional execution using if/else/endif, and elseif.

Sometimes we want to have optional parts of a source... Maybe we want to have
different graphics depending on the release. Forbidden Planet was released with
Krell-style power meters, but only an assembly option away were trumpeting elephants.

So, here is an example:
*)

WantElephants	equ true	; Could also be a variable
WantBIGOnes	equ true	; Could also be a variable

zeusprint "First case"

	if WantElephants
		call DrawElephants : zeusprint "Elephants"
	else	
		call DrawKrell : zeusprint "Krell"
	endif

zeusprint ""

; You can nest if statements, if you really want to confuse yourself.

zeusprint "Second case"

	if WantElephants
          if WantBIGOnes
		call DrawBigElephants : zeusprint "Big Elephants"
          else
		call DrawSmallElephants : zeusprint "Small Elephants"
          endif
	else	
          if WantBIGOnes
		call DrawBigKrell : zeusprint "Big Krell"
          else
		call DrawKrell : zeusprint "Krell"
          endif
	endif

zeusprint ""

; Zeus also supports if/elseif/else/endif

WantDogs	equ true
WantCats	equ false
WantFrogs	equ false

zeusprint "Third case"

	if WantDogs
		call DrawDogs	: zeusprint "Dogs"
	elseif WantCats	
		call DrawCats	: zeusprint "Cats"
	elseif WantFrogs	
		call DrawFrogs	: zeusprint "Frogs"
	else 
          zeusprint "No pets..."
	endif
 
zeusprint ""

; Support bits. Note that these are also conditional, so you only have the code
; you actually need.

	if def WantElephants
DrawElephants		ret		;
DrawSmallElephants	ret		;
DrawBigElephants	ret		;
	else
DrawKrell		ret		;
DrawBigKrell		ret		;
	endif

; These could be but I'm tired ;)

DrawRhinos		ret		;
DrawDogs		ret		;
DrawFrogs		ret		;
DrawCats		ret		;

; Should demonstrate "DEF" here.