int __x_aspect=1, __y_aspect=1;

circle(cx,cy,r)
int cx,cy,r;
{

    int x,y,a,b,c,d,f,m,n;
    /* replaced double z=1.16 with long integer 116
       so fake floating point and divide product by 100

       February 2013 */
	long z=116L;

    x=r; y=0; b=1; f=0;

    a=(-2)*x+1;
	m=__x_aspect;
	n=__y_aspect;

point:


   /* replaced double z=1.16 with long integer 116
      so fake floating point and divide product by 100

      February 2013 */

	c=   (int)((z*x)/100);
	d=   (int)((z*y)/100);


    plot(c*m+cx,y*n+cy);
	plot(d*m+cx,x*n+cy);
    plot(-d*m+cx,x*n+cy);
    plot(-c*m+cx,y*n+cy);
    plot(-c*m+cx,-y*n+cy);
	plot(-d*m+cx,-x*n+cy);
    plot(d*m+cx,-x*n+cy);
    plot(c*m+cx,-y*n+cy);

    if(b>= -a)
        goto fin;

    y+=1; f+=b;
    b+=2;

    if(f>r)
    {
        f+=a;
        a+=2;
        x-=1;
    }
    goto point;

fin:
  ;
}
