;Sierpinski Triangle
;By: Dan Englender
; -------- Includes ----------
#include        "ion.inc"
; ----------------------------

#define data savesscreen


#ifdef TI83P
  .org    progstart-2
  .db     $BB,$6D
#else
  .org    progstart
#endif


  ret
  jr      nc,init
desc:
        .db     "Sierpinki Triangle",0


init:
	ld	de,30*256+30
mloop:	ld	b,3
	call	vector2
	dec	a
	jr	z,dispp
	ld	l,60
	dec	a
	jr	nz,mc3

mc2:	ld	a,e
	add	a,l		; (e+60)/2
	ld	e,a		; (d+30)/2
	ld	l,30

mc3:	ld	a,d		; (d+60)/2
	add	a,l		; e/2
	ld	d,a
	
dispp:	sra	d
	sra	e
	push	de
	push	hl
	ld	a,e
	sub	62
	cpl
	ld	e,a
	ld	a,d
	add	a,17
	call	vectorc
	or	(hl)
	ld	(hl),a
	pop	hl
	dec	h
	jr	nz,overhere
	bcall	_grbufcpy
overhere:
	pop	de
	ld	a,0fdh
	out	(1),a
	in	a,(1)
	cp	191
	jr	nz,mloop
	ret

vectorc = iongetpixel
vector2 = ionrandom


.end

