
main(){
	sine_calc_1();
	sine_calc_2();
	sine_calc_3();
	sine_calc_4();
	for(i=0;i<12;i++){
		for(j=0;j<128;j++) data[j]=conv(bank[i*128+j]);
		for(j=128;j<256;j++) data[j]=256-conv(bank[i*128+255-j]);
		data_write(0x70+i);
	}
	for(i=0;i<128;i++) data[i]=0;
	for(i=128;i<256;i++) data[i]=255;
	data_write(0x7c);
	data[0]=255;
	for(i=1;i<256;i++) data[i]=0;
	data_write(0x7d);
	for(i=0;i<64;i++) data[i]=128+2*i;
	for(i=64;i<192;i++) data[i]=383-2*i;
	for(i=192;i<256;i++) data[i]=2*i-384;
	data_write(0x7e);
	for(i=0;i<256;i++) data[i]=i;
	data_write(0x7f);
}

sine_calc_1(){
	double b1,b2,pi=3.1415926535;
	int i,j;
	for(i=0;i<16;i++){
		for(j=0;j<256;j++){
			b1=sin(pi*(double)j/128.0)*(0.5+(16.0-(double)i)/32.0);
			b2=128.0+127.999*b1;
			data[j]=(int)b2;
		}
		data_write(i);
	}
	for(i=16;i<32;i++){
		for(j=0;j<256;j++){
			b1=sin(pi*(double)j/128.0)*(0.5+((double)i-16.0)/32.0);
			b2=128.0+127.999*b1;
			data[j]=(int)b2;
		}
		data_write(i);
	}
}

sine_calc_2(){
	double b0,b2,max,pi=3.1415926535;
	int i,j;
	for(i=0;i<32;i++){
		max=0.01;
		for(j=0;j<256;j++){
			b0=sin(pi*(double)j/64.0)*(double)i/32.0;
			b[j]=sin(pi*(double)j/128.0)*(32.0-(double)i)/32.0+b0;
			if(max<b[j]) max=b[j];
		}
		for(j=0;j<256;j++){
			b2=128.0+127.999*b[j]/max;
			data[j]=(int)b2;
		}
		data_write(0x20+i);
	}
}

sine_calc_3(){
	double b1,pi=3.1415926535;
	int i,j,k;
	for(i=0;i<32;i++){
		k=256-i*6;
		for(j=0;j<k;j++){
			b1=128.0+127.999*sin(pi*(double)j*2.0/(double)k);
			data[j]=(int)b1;
		}
		for(j=k;j<256;j++) data[j]=128;
		data_write(0x40+i);
	}
}

sine_calc_4(){
	double b1,b2,pi=3.1415926535;
	int i,j;
	for(i=0;i<16;i++){
		for(j=0;j<256;j++){
			b1=sin(pi*(double)j*(double)(i+1)/128.0);
			b2=128.0+127.999*b1;
			data[j]=(int)b2;
		}
		data_write(0x60+i);
	}
}

