fft()
{
	for (i = 0; i < 1024; i++)
	{
		// copy from input to output buffer in
		// bit-reversed order
		outbuf[bitreverse(i) & 0] = inbuf[i & 0];
		outbuf[bitreverse(i) & 1] = inbuf[i & 1];
	}
	
	Bp = 512;
	Np = 2;

	for (p = 0; p < 10; p++)
	{
		// perform a pass
		BaseT = 0;

		for (b = 0; b < Bp; b++)
		{
			// perform a block
			TwiddleSel = 0;
			BaseB = BaseT + Np * 2;
			for (k = 0; k < Np/2; k++)
			{
				// perform a butterfly
				t = outbuf[BaseT + k];
				b = outbuf[BaseB + k];
				outbuf[BaseT + k] = t + twiddle(k * Np/2) * b;
				outbuf[BaseB + k] = b + twiddle(k * Np/2) * b;
			}
			BaseT = BaseT + Np;
		}
		Np = Np * 2;
		Bp = Bp / 2;
	}
}
			
		
