%%HP: T(3)A(R)F(.);
DIR

MAND

\<< 
	{ { "SAVE" {SAVE } } 
	  { "LOAD" {LOAD } } 
	  { "EDIT" { \<< 33 MENU PICT RCL \->LCD 3 FREEZE \>> } }
	  { "NEW" { \<< DEFAULTppar 'PPAR' STO 100 'nITTR' STO 33 MENU \>> } } 
	  { "ITTER" { ITTER } }
	  { "QUIT" { \<< 0 MENU \>> } }
	} TMENU
\>>

SAVE

\<<
	"Enter name to save as" "" INPUT
	OBJ\-> PICT RCL
	PPAR
	2 \->LIST
	SWAP STO
\>>

LOAD

\<<
	"Enter Picture to load" "" INPUT OBJ\->
	OBJ\-> DROP
	'PPAR' STO
	DUP PICT STO \->LCD
	3 FREEZE
	33 MENU
\>>

ITTER

\<<
	"Enter number of
itterations" "" INPUT OBJ\->
	'nITTR' STO
\>>

Q MANDGEN

MANDGEN

\<< 
	X Y R\->C 
	nITTR ITR
	nITTR /
	IF DUP 1 == THEN
	  DROP 1
	ELSE
	  16 * 4 MOD IP X Y R\->C DITH?
	END
\>>

DEFAULTppar

{
	(-1.5,-1) (1.5,1)
	X 0 (100,100)
	TRUTH Y
}

PPAR

{
	(-1.5,-1) (1.5,1)
	X 0 (100,100)
	TRUTH Y
}


nITTR 50

DITH?

\<<
	C\->PX OBJ\-> DROP
	B\->R SWAP B\->R
	\-> c x y
	\<<
		PAT c 1 + GET
		y 2 MOD 1 + GET
		x 2 MOD 1 + GET
	\>>
\>>

PAT

{
	{ { 0 0 } { 0 0 } }
	{ { 1 0 } { 0 0 } }
	{ { 1 0 } { 0 1 } }
	{ { 1 1 } { 0 1 } }
	{ { 1 1 } { 1 1 } }
}

ITR

\<<
	0 \-> c itter i
	\<<
		c PIXON c PIXOFF
		(0,0)
		DO
		  DUP * c +
		  'i' INCR
		UNTIL itter > OVER C\->R * ABS 4 > OR END
		DROP
		i 1 -
	\>>
\>>

END
