#include	<stdio.h>
#include	<memory.h>
#include	<strings.h>
#include	<math.h>

FILE	*fpw;

#define		PAI	3.141592654
#define		RAG	PAI/180.0

unsigned char	xx[0x40];
unsigned char	xx2[0x40];
unsigned char	yy[0x40];
unsigned char	yy2[0x40];
unsigned char	c[0x40][0x40];

main()
{
	static char	filename[] = {"maru5.DAT"};
	static char	cpcom1[] = {"cp "};
	static char	cpcom2[] = {" ../asm/"};
	char	c[125];

	printf("\n\n\n<<<<< CIRCLE X DATA START !! >>>>>\t\n\n\n");

	if(( fpw = fopen(filename,"w")) == NULL){
		printf("Write file open error !!\n");
		exit(1);
	}

/***************
	endata();
***************/

	hypocyc(.3);

	fclose(fpw);

	printf("\n\n<<<<< CIRCLE X DATA END !! >>>>>\n\n\n");
/**************************/
	strcpy(c,cpcom1);
	strcat(c,filename);
	strcat(c, cpcom2);
	strcat(c,filename);
	printf("\n%s\n",c);
	system(c);
/**************************/
}

endata()
{
	int		j,r;
	double		i,xx,yy;
	unsigned char	c[360],x[360],y[360];
	unsigned short	xxx,yyy;

	i=0;
	j=0;
	while(j<180){
		xx=cos(i*RAG);
		yy=sin(i*RAG);
		r=rand()&0x003f;
		c[j]=r&0x0f;
		x[j]=xx*xx*r;
		y[j]=yy*xx*r;
		printf("c=%02X x=%02X y=%02X\t",c[j],x[j],y[j]);
		i++;
		j++;
	}
	while(j<360){
		xx=cos(i*RAG);
		yy=sin(i*RAG);
		r=rand()&0x003f;
		c[j]=r&0x0f;
		x[j]=xx*(-xx)*r;
		y[j]=yy*(-xx)*r;
		printf("c=%02X x=%02X y=%02X\t",c[j],x[j],y[j]);
		i++;
		j++;
	}

	fprintf(fpw,";\n;\n;\n;\n");
	fprintf(fpw,"FLOW04\tEQU\t$");

	j=0;
	while(j<360){
		if(j-j/6*6==0){
			fprintf(fpw,"\n\tHEX\t");
		}
		fprintf(fpw,"%02X,%02X,%02X",c[j],x[j],y[j]);
		j++;
		if(j-j/6*6!=0){
			fprintf(fpw,",");
		}
	}

	fprintf(fpw,"\n\tHEX\tFF\n");
	fprintf(fpw,";\n;\n;\n;\n");
}

hypocyc(r)
double	r;
{
	double	x,y,a,b,s;
	char	xg,yg;
	unsigned char	 c,xx,yy;
	int	j,rr;

	fprintf(fpw,";\n;\n;\n;\n");
	fprintf(fpw,"FLOW05\tEQU\t$");

	a=1-r;
	b=(-a)/r;
	j=0;
	for(s=0;s<=10*PAI;s+=.05){
		rr=rand()&0x03f;
		x=a*cos(s)+r*cos(b*s);
		xg=rr*x;
		y=a*sin(s)+r*sin(b*s);
		yg=(-(rr*y));
		c=rr&0x0f;
		xx=xg;
		yy=yg;
		if(j-j/6*6==0){
			fprintf(fpw,"\n\tHEX\t");
		}

		fprintf(fpw,"%02X,%02X,%02X",c,xx,yy);
		j++;
		if(j-j/6*6!=0){
			fprintf(fpw,",");
		}
	}

	if(j-j/6*6==0){
			fprintf(fpw,"\n\tHEX\t");
	}
	fprintf(fpw,"FF\n");
	fprintf(fpw,";\n;\n;\n;\n");
}

