%include "inc:util.imp"
%include "irg:imgraph.inc"

%begin
%shortinteger m,n,i
%integer xmin,ymin,xmax,ymax,j,k,inc
%real x,y,z,a,b,q,r,s,t,u,v,z2
%byte col

clear
enable(255)
!colour map(i)=i %for i=0,1,255

prompt("Real Part:");read(x)
prompt("Imaginary Part:");read(y)
prompt("Increment:");read(inc)
prompt("Step:");read(z);z2=z
prompt("Stop After:");read(m)

%cycle
z=z2
prompt("x min:");read(xmin)
prompt("x max:");read(xmax)
prompt("y min:");read(ymin)
prompt("y max:");read(ymax)

k=ymin
%cycle
  v=y-z*k
  j=xmin
  %cycle
    u=x+z*j
    n=0;a=0;b=0;q=0;r=0;s=0;t=0
    %while t<4 %and n<m %cycle
      a=r-s+u
      b=2*q+v
      q=a*b
      r=a*a
      s=b*b
      t=r+s
      n=n+1
    %repeat
    col=n&255
    colourreg=col
    plot(j-xmin,k-ymin)
  j=j+inc
  %repeatuntil j>=xmax
k=k+inc  
%repeatuntil k>=ymax
%repeat
%endofprogram
