REM $option Y+,K800
SCREEN 1,640,512,4,4
WINDOW 1,"",(0,0)-(620,490),0,1
FOR x = 0 TO 15
	PALETTE x,x/15,x/15,x/15
NEXT x

xw = 300
yw = 300
xc = xw/2
yc = yw/2

DIM array(xw,yw)

REM GOTO skip	
FOR y = 1 TO yw
	FOR x = 1 TO xw
		dst = SQR(((x-xc)^2)+((y-yc)^2))
		e   = EXP(-dst/20)^(1/4)
		s   = COS(dst/3)
		e   = e * s
		LINE (300+x-y,y+100)-(300+x-y,y+100-(e*20)),(e*8)+8
		array(x,y) = e
		IF INKEY$<>"" THEN y=yw
	NEXT x
	LOCATE 1,1 : COLOR 10 : PRINT INT((y/yw)*100);"%"
NEXT y

v = VARPTR(array(0,0))
BSAVE "ram:test",v,xw*yw*4

skip:
	v = VARPTR(array(0,0))
	BLOAD "ram:test",v
		
CLS
FOR y = 2 TO yw
	FOR x = 2 TO xw
		p1 = array(x,y)
		p2 = array(x-1,y)
		p3 = array(x,y-1)
		dx = p1-p2
		dy = p1-p3
		dd = dx+dy
		dd = dd * 40
		dd = 8 - dd
		IF dd>15 THEN dd=15
		IF dd<0 THEN dd=0
		IF x=xw OR y=yw THEN dd = 0
		LINE (300+x-y,y+100)-(300+x-y,y+70-(p1*20)),dd
		IF INKEY$<>"" THEN y=yw
	NEXT x
NEXT y
		
