#include<def21479.h>

.global _main;

.global  FFT_IP_buff;
.global  FFT_OP_buff;
.global  FFT_CF_buff;

.extern _Init_FFT;
.global _FFT_DMA_ISR;

#define N 256

.section/dm seg_dmda;

	.var FFT_IP_buff[2*N]={
		
							#include "fft_input.dat"
	};
	
	.var FFT_OP_buff[2*N];
	
	.var FFT_CF_buff[2*N]={
							#include "twiddle_256.dat"
	};
	
	.var fft_done=0;
	
.section/pm seg_pmco;

_main:

	bit set MODE1 IRPTEN;
	nop;
	
	call _Init_FFT;
	
	wait1:
	
	ustat1=dm(fft_done);
	bit tst ustat1 0x00000001;
	
	if not tf jump wait1;
	
	
	
	jump(pc,0);

_main.end:
	
		
_FFT_DMA_ISR:

	ustat1=dm(FFTDMASTAT);
	bit tst ustat1 ODMACHIRPT; 
	if not tf jump fft_done_skip;
	
		r0=1;
		dm(fft_done)=r0;
		
	fft_done_skip:
	nop;
	nop;
	
	rti;
	
_FFT_DMA_ISR.END:				
