FFTR2BF
         Name: FFTR2BF.ASM
         Type: Assembler program
      Version: 1.0
 Date Entered: February 20, 1989
  Last Change: June 13, 1988

  Description: Fast Fourier Transform with Block Floating Point

 This program calculates the Radix-2, Decimation-in-Time Fast Fourier Transform 
 using Block Floating Point. 

 This algorithm operates as follows:
 1. The algorithm steps through Radix-2, Decimation-in-Time butterflies as
    the FFTR2AA routine. Within the butterflies, the limit bit (L) is checked.
 2. If L is set (limiting has occurred), the routine switches to a 
    subroutine.
 3. The subroutine recalculates the butterfly outputs for the
    complete pass, and scales down the butterfly outputs. A
    "block exponent" keeps track of the number of times the
    results have been scaled.

 The algorithm results in a much larger dynamic range and better 
 precision for the FFT results. Because of the extra instructions within
 the butterflies, and the subroutine handling conditional scaling, it
 executes slower than other FFT routines. 

 The calling sequence is FFTR2BF points,passes,data,twiddle,temp where:
 - points is the number of points in the FFT
 - passes is the number of passes in the FFT (log2(points))
 - data is the starting location of the input data
 - twiddle is the starting location of the twiddle factor table
 - starting location of scratch memory (four consecutive locations). On output,
   x:(temp)+2 contains the common exponent (number of bits scaled).
   x:(temp)+3 shows (in base 4) the number of bits scaled per stage
^Z
