www.pudn.com > rtu.rar > FFT32.A96


;	File name =FFT32.A96 
;	compile with model(nt-ef) control 
;	#pragma model(nt-ef) 
;	mk196 
;	设计 何风涛 
$include(FFT32.H) 
 
extrn  XX0; 
extrn  YY0; 
extrn  KK0; 
extrn  TAN; 
extrn  SIN; 
extrn  LCD_Device:null 
 
PUBLIC	FFT32 
CSEG	AT 0FB0000H 
FFT32:	CMP   WTMP,	 R0; 
	JE    REG1SET; 
	SJMP  REG2SET; 
REG1SET:LDB   WSR,	 #WSR_100H_17FH 
	SJMP  FSTART; 
REG2SET:LDB   WSR,	 #WSR_180H_1FFH 
FSTART: LD    IMAG00,	 [WORK]; 
	AND   IMAG00,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG00,	 #1FFFH; 
	JLE   NEXTA01; 
	SUB   IMAG00,	 #4000H; 
NEXTA01:LD    IMAG01,	 [WORK]; 
	AND   IMAG01,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG01,	 #1FFFH; 
	JLE   NEXTA02; 
	SUB   IMAG01,	 #4000H; 
NEXTA02:LD    IMAG02,	 [WORK]; 
	AND   IMAG02,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG02,	 #1FFFH; 
	JLE   NEXTA03; 
	SUB   IMAG02,	 #4000H; 
NEXTA03:LD    IMAG03,	 [WORK]; 
	AND   IMAG03,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG03,	 #1FFFH; 
	JLE   NEXTA04; 
	SUB   IMAG03,	 #4000H; 
NEXTA04:LD    IMAG04,	 [WORK]; 
	AND   IMAG04,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG04,	 #1FFFH; 
	JLE   NEXTA05; 
	SUB   IMAG04,	 #4000H; 
NEXTA05:LD    IMAG05,	 [WORK]; 
	AND   IMAG05,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG05,	 #1FFFH; 
	JLE   NEXTA06; 
	SUB   IMAG05,	 #4000H; 
NEXTA06:LD    IMAG06,	 [WORK]; 
	AND   IMAG06,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG06,	 #1FFFH; 
	JLE   NEXTA07; 
	SUB   IMAG06,	 #4000H; 
NEXTA07:LD    IMAG07,	 [WORK]; 
	AND   IMAG07,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG07,	 #1FFFH; 
	JLE   NEXTA08; 
	SUB   IMAG07,	 #4000H; 
NEXTA08:LD    IMAG08,	 [WORK]; 
	AND   IMAG08,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG08,	 #1FFFH; 
	JLE   NEXTA09; 
	SUB   IMAG08,	 #4000H; 
NEXTA09:LD    IMAG09,	 [WORK]; 
	AND   IMAG09,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG09,	 #1FFFH; 
	JLE   NEXTA10; 
	SUB   IMAG09,	 #4000H; 
NEXTA10:LD    IMAG10,	 [WORK]; 
	AND   IMAG10,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG10,	 #1FFFH; 
	JLE   NEXTA11; 
	SUB   IMAG10,	 #4000H; 
NEXTA11:LD    IMAG11,	 [WORK]; 
	AND   IMAG11,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG11,	 #1FFFH; 
	JLE   NEXTA12; 
	SUB   IMAG11,	 #4000H; 
NEXTA12:LD    IMAG12,	 [WORK]; 
	AND   IMAG12,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG12,	 #1FFFH; 
	JLE   NEXTA13; 
	SUB   IMAG12,	 #4000H; 
NEXTA13:LD    IMAG13,	 [WORK]; 
	AND   IMAG13,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG13,	 #1FFFH; 
	JLE   NEXTA14; 
	SUB   IMAG13,	 #4000H; 
NEXTA14:LD    IMAG14,	 [WORK]; 
	AND   IMAG14,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG14,	 #1FFFH; 
	JLE   NEXTA15; 
	SUB   IMAG14,	 #4000H; 
NEXTA15:LD    IMAG15,	 [WORK]; 
	AND   IMAG15,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG15,	 #1FFFH; 
	JLE   NEXTA16; 
	SUB   IMAG15,	 #4000H; 
NEXTA16:LD    IMAG16,	 [WORK]; 
	AND   IMAG16,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG16,	 #1FFFH; 
	JLE   NEXTA17; 
	SUB   IMAG16,	 #4000H; 
NEXTA17:LD    IMAG17,	 [WORK]; 
	AND   IMAG17,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG17,	 #1FFFH; 
	JLE   NEXTA18; 
	SUB   IMAG17,	 #4000H; 
NEXTA18:LD    IMAG18,	 [WORK]; 
	AND   IMAG18,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG18,	 #1FFFH; 
	JLE   NEXTA19; 
	SUB   IMAG18,	 #4000H; 
NEXTA19:LD    IMAG19,	 [WORK]; 
	AND   IMAG19,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG19,	 #1FFFH; 
	JLE   NEXTA20; 
	SUB   IMAG19,	 #4000H; 
NEXTA20:LD    IMAG20,	 [WORK]; 
	AND   IMAG20,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG20,	 #1FFFH; 
	JLE   NEXTA21; 
	SUB   IMAG20,	 #4000H; 
NEXTA21:LD    IMAG21,	 [WORK]; 
	AND   IMAG21,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG21,	 #1FFFH; 
	JLE   NEXTA22; 
	SUB   IMAG21,	 #4000H; 
NEXTA22:LD    IMAG22,	 [WORK]; 
	AND   IMAG22,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG22,	 #1FFFH; 
	JLE   NEXTA23; 
	SUB   IMAG22,	 #4000H; 
NEXTA23:LD    IMAG23,	 [WORK]; 
	AND   IMAG23,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG23,	 #1FFFH; 
	JLE   NEXTA24; 
	SUB   IMAG23,	 #4000H; 
NEXTA24:LD    IMAG24,	 [WORK]; 
	AND   IMAG24,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG24,	 #1FFFH; 
	JLE   NEXTA25; 
	SUB   IMAG24,	 #4000H; 
NEXTA25:LD    IMAG25,	 [WORK]; 
	AND   IMAG25,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG25,	 #1FFFH; 
	JLE   NEXTA26; 
	SUB   IMAG25,	 #4000H; 
NEXTA26:LD    IMAG26,	 [WORK]; 
	AND   IMAG26,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG26,	 #1FFFH; 
	JLE   NEXTA27; 
	SUB   IMAG26,	 #4000H; 
NEXTA27:LD    IMAG27,	 [WORK]; 
	AND   IMAG27,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG27,	 #1FFFH; 
	JLE   NEXTA28; 
	SUB   IMAG27,	 #4000H; 
NEXTA28:LD    IMAG28,	 [WORK]; 
	AND   IMAG28,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG28,	 #1FFFH; 
	JLE   NEXTA29; 
	SUB   IMAG28,	 #4000H; 
NEXTA29:LD    IMAG29,	 [WORK]; 
	AND   IMAG29,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG29,	 #1FFFH; 
	JLE   NEXTA30; 
	SUB   IMAG29,	 #4000H; 
NEXTA30:LD    IMAG30,	 [WORK]; 
	AND   IMAG30,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG30,	 #1FFFH; 
	JLE   NEXTA31; 
	SUB   IMAG30,	 #4000H; 
NEXTA31:LD    IMAG31,	 [WORK]; 
	AND   IMAG31,	 #3FFFH; 
	CMP   IMAG31,	 #1FFFH; 
	JLE   NEXTADE; 
	SUB   IMAG31,	 #4000H; 
NEXTADE:CLR   REAL00; 
	CLR   REAL01; 
	CLR   REAL02; 
	CLR   REAL03; 
	CLR   REAL04; 
	CLR   REAL05; 
	CLR   REAL06; 
	CLR   REAL07; 
	CLR   REAL08; 
	CLR   REAL09; 
	CLR   REAL10; 
	CLR   REAL11; 
	CLR   REAL12; 
	CLR   REAL13; 
	CLR   REAL14; 
	CLR   REAL15; 
	CLR   REAL16; 
	CLR   REAL17; 
	CLR   REAL18; 
	CLR   REAL19; 
	CLR   REAL20; 
	CLR   REAL21; 
	CLR   REAL22; 
	CLR   REAL23; 
	CLR   REAL24; 
	CLR   REAL25; 
	CLR   REAL26; 
	CLR   REAL27; 
	CLR   REAL28; 
	CLR   REAL29; 
	CLR   REAL30; 
	CLR   REAL31; 
	XCH   REAL01,	 REAL16; 
	XCH   IMAG01,	 IMAG16; 
AF00X01:XCH   REAL02,	 REAL08; 
	XCH   IMAG02,	 IMAG08; 
AF00X02:XCH   REAL03,	 REAL24; 
	XCH   IMAG03,	 IMAG24; 
AF00X03:XCH   REAL05,	 REAL20; 
	XCH   IMAG05,	 IMAG20; 
AF00X04:XCH   REAL06,	 REAL12; 
	XCH   IMAG06,	 IMAG12; 
AF00X05:XCH   REAL07,	 REAL28; 
	XCH   IMAG07,	 IMAG28; 
AF00X06:XCH   REAL09,	 REAL18; 
	XCH   IMAG09,	 IMAG18; 
AF00X07:XCH   REAL11,	 REAL26; 
	XCH   IMAG11,	 IMAG26; 
AF00X08:XCH   REAL13,	 REAL22; 
	XCH   IMAG13,	 IMAG22; 
AF00X09:XCH   REAL15,	 REAL30; 
	XCH   IMAG15,	 IMAG30; 
AF00X10:XCH   REAL19,	 REAL25; 
	XCH   IMAG19,	 IMAG25; 
AF00X11:XCH   REAL23,	 REAL29; 
	XCH   IMAG23,	 IMAG29; 
;;;;;;;;;;;;;;;;第一次碟形处理;;;;;;;;;;;; 
AF01X00:SUB   ZIMAG,	 IMAG00,   IMAG01;    X00=X00+X01; X01=X00-X01; 
	ADD   IMAG00,	 IMAG01; 
	LD    IMAG01,	 ZIMAG; 
AF01X01:SUB   ZIMAG,	 IMAG02,   IMAG03;    X02=X02+X03; X03=X02-X03; 
	ADD   IMAG02,	 IMAG03; 
	LD    IMAG03,	 ZIMAG; 
AF01X02:SUB   ZIMAG,	 IMAG04,   IMAG05;    X04=X04+X05; X05=X04-X05; 
	ADD   IMAG04,	 IMAG05; 
	LD    IMAG05,	 ZIMAG; 
AF01X03:SUB   ZIMAG,	 IMAG06,   IMAG07;    X06=X06+X07; X07=X06-X07; 
	ADD   IMAG06,	 IMAG07; 
	LD    IMAG07,	 ZIMAG; 
AF01X04:SUB   ZIMAG,	 IMAG08,   IMAG09;    X08=X08+X09; X09=X08-X09; 
	ADD   IMAG08,	 IMAG09; 
	LD    IMAG09,	 ZIMAG; 
AF01X05:SUB   ZIMAG,	 IMAG10,   IMAG11;    X10=X10+X11; X11=X10-X11; 
	ADD   IMAG10,	 IMAG11; 
	LD    IMAG11,	 ZIMAG; 
AF01X06:SUB   ZIMAG,	 IMAG12,   IMAG13;    X12=X12+X13; X13=X12-X13; 
	ADD   IMAG12,	 IMAG13; 
	LD    IMAG13,	 ZIMAG; 
AF01X07:SUB   ZIMAG,	 IMAG14,   IMAG15;    X14=X14+X15; X15=X14-X15; 
	ADD   IMAG14,	 IMAG15; 
	LD    IMAG15,	 ZIMAG; 
AF01X08:SUB   ZIMAG,	 IMAG16,   IMAG17;    X16=X16+X17; X17=X16-X17; 
	ADD   IMAG16,	 IMAG17; 
	LD    IMAG17,	 ZIMAG; 
AF01X09:SUB   ZIMAG,	 IMAG18,   IMAG19;    X18=X18+X19; X19=X18-X19; 
	ADD   IMAG18,	 IMAG19; 
	LD    IMAG19,	 ZIMAG; 
AF01X10:SUB   ZIMAG,	 IMAG20,   IMAG21;    X20=X20+X21; X21=X20-X21; 
	ADD   IMAG20,	 IMAG21; 
	LD    IMAG21,	 ZIMAG; 
AF01X11:SUB   ZIMAG,	 IMAG22,   IMAG23;    X22=X22+X23; X23=X22-X23; 
	ADD   IMAG22,	 IMAG23; 
	LD    IMAG23,	 ZIMAG; 
AF01X12:SUB   ZIMAG,	 IMAG24,   IMAG25;    X24=X24+X25; X25=X24-X25; 
	ADD   IMAG24,	 IMAG25; 
	LD    IMAG25,	 ZIMAG; 
AF01X13:SUB   ZIMAG,	 IMAG26,   IMAG27;    X26=X26+X27; X27=X26-X27; 
	ADD   IMAG26,	 IMAG27; 
	LD    IMAG27,	 ZIMAG; 
AF01X14:SUB   ZIMAG,	 IMAG28,   IMAG29;    X28=X28+X29; X29=X28-X29; 
	ADD   IMAG28,	 IMAG29; 
	LD    IMAG29,	 ZIMAG; 
AF01X15:SUB   ZIMAG,	 IMAG30,   IMAG31;    X30=X30+X31; X31=X30-X31; 
	ADD   IMAG30,	 IMAG31; 
	LD    IMAG31,	 ZIMAG; 
;;;;;;;;;;;;;;;;第二次碟形处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
AF02X00:SUB   ZIMAG,	 IMAG00,   IMAG02; X00=X00+X02; X02=X00-X02; 
	ADD   IMAG00,	 IMAG02; 
	LD    IMAG02,	 ZIMAG; 
	LD    REAL01,	 IMAG03;	   X01=X01+X03*(-I); X03=X01-X03*(-I); 
	NEG   IMAG03; 
	LD    REAL03,	 IMAG03; 
	LD    IMAG03,	 IMAG01; 
AF02X01:SUB   ZIMAG,	 IMAG04,   IMAG06; X04=X04+X06; X06=X04-X06; 
	ADD   IMAG04,	 IMAG06; 
	LD    IMAG06,	 ZIMAG; 
	LD    REAL05,	 IMAG07;	   X05=X05+X07*(-I); X07=X05-X07*(-I); 
	NEG   IMAG07; 
	LD    REAL07,	 IMAG07; 
	LD    IMAG07,	 IMAG05; 
AF02X02:SUB   ZIMAG,	 IMAG08,   IMAG10; X08=X08+X10; X10=X08-X10; 
	ADD   IMAG08,	 IMAG10; 
	LD    IMAG10,	 ZIMAG; 
	LD    REAL09,	 IMAG11;	   X09=X09+X11*(-I); X11=X09-X11*(-I); 
	NEG   IMAG11; 
	LD    REAL11,	 IMAG11; 
	LD    IMAG11,	 IMAG09; 
AF02X03:SUB   ZIMAG,	 IMAG12,   IMAG14; X12=X12+X14; X14=X12-X14; 
	ADD   IMAG12,	 IMAG14; 
	LD    IMAG14,	 ZIMAG; 
	LD    REAL13,	 IMAG15;	   X13=X13+X15*(-I); X15=X13-X15*(-I); 
	NEG   IMAG15; 
	LD    REAL15,	 IMAG15; 
	LD    IMAG15,	 IMAG13; 
AF02X04:SUB   ZIMAG,	 IMAG16,   IMAG18; X16=X16+X18; X18=X16-X18; 
	ADD   IMAG16,	 IMAG18; 
	LD    IMAG18,	 ZIMAG; 
	LD    REAL17,	 IMAG19;	   X17=X17+X19*(-I); X19=X17-X19*(-I); 
	NEG   IMAG19; 
	LD    REAL19,	 IMAG19; 
	LD    IMAG19,	 IMAG17; 
AF02X05:SUB   ZIMAG,	 IMAG20,   IMAG22; X20=X20+X22; X22=X20-X22; 
	ADD   IMAG20,	 IMAG22; 
	LD    IMAG22,	 ZIMAG; 
	LD    REAL21,	 IMAG23;	   X21=X21+X23*(-I); X23=X21-X23*(-I); 
	NEG   IMAG23; 
	LD    REAL23,	 IMAG23; 
	LD    IMAG23,	 IMAG21; 
AF02X06:SUB   ZIMAG,	 IMAG24,   IMAG26; X24=X24+X26; X26=X24-X26; 
	ADD   IMAG24,	 IMAG26; 
	LD    IMAG26,	 ZIMAG; 
	LD    REAL25,	 IMAG27;	   X25=X25+X27*(-I); X27=X25-X27*(-I); 
	NEG   IMAG27; 
	LD    REAL27,	 IMAG27; 
	LD    IMAG27,	 IMAG25; 
AF02X07:SUB   ZIMAG,	 IMAG28,   IMAG30; X28=X28+X30; X30=X28-X30; 
	ADD   IMAG28,	 IMAG30; 
	LD    IMAG30,	 ZIMAG; 
	LD    REAL29,	 IMAG31;	   X29=X29+X31*(-I); X31=X29-X31*(-I); 
	NEG   IMAG31; 
	LD    REAL31,	 IMAG31; 
	LD    IMAG31,	 IMAG29; 
;;;;;;;;;;;;;;; 14位AD/4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
	SHRA  REAL00,	 #02H; 
	SHRA  REAL01,	 #02H; 
	SHRA  REAL02,	 #02H; 
	SHRA  REAL03,	 #02H; 
	SHRA  REAL04,	 #02H; 
	SHRA  REAL05,	 #02H; 
	SHRA  REAL06,	 #02H; 
	SHRA  REAL07,	 #02H; 
	SHRA  REAL08,	 #02H; 
	SHRA  REAL09,	 #02H; 
	SHRA  REAL10,	 #02H; 
	SHRA  REAL11,	 #02H; 
	SHRA  REAL12,	 #02H; 
	SHRA  REAL13,	 #02H; 
	SHRA  REAL14,	 #02H; 
	SHRA  REAL15,	 #02H; 
	SHRA  REAL16,	 #02H; 
	SHRA  REAL17,	 #02H; 
	SHRA  REAL18,	 #02H; 
	SHRA  REAL19,	 #02H; 
	SHRA  REAL20,	 #02H; 
	SHRA  REAL21,	 #02H; 
	SHRA  REAL22,	 #02H; 
	SHRA  REAL23,	 #02H; 
	SHRA  REAL24,	 #02H; 
	SHRA  REAL25,	 #02H; 
	SHRA  REAL26,	 #02H; 
	SHRA  REAL27,	 #02H; 
	SHRA  REAL28,	 #02H; 
	SHRA  REAL29,	 #02H; 
	SHRA  REAL30,	 #02H; 
	SHRA  REAL31,	 #02H; 
	SHRA  IMAG00,	 #02H; 
	SHRA  IMAG01,	 #02H; 
	SHRA  IMAG02,	 #02H; 
	SHRA  IMAG03,	 #02H; 
	SHRA  IMAG04,	 #02H; 
	SHRA  IMAG05,	 #02H; 
	SHRA  IMAG06,	 #02H; 
	SHRA  IMAG07,	 #02H; 
	SHRA  IMAG08,	 #02H; 
	SHRA  IMAG09,	 #02H; 
	SHRA  IMAG10,	 #02H; 
	SHRA  IMAG11,	 #02H; 
	SHRA  IMAG12,	 #02H; 
	SHRA  IMAG13,	 #02H; 
	SHRA  IMAG14,	 #02H; 
	SHRA  IMAG15,	 #02H; 
	SHRA  IMAG16,	 #02H; 
	SHRA  IMAG17,	 #02H; 
	SHRA  IMAG18,	 #02H; 
	SHRA  IMAG19,	 #02H; 
	SHRA  IMAG20,	 #02H; 
	SHRA  IMAG21,	 #02H; 
	SHRA  IMAG22,	 #02H; 
	SHRA  IMAG23,	 #02H; 
	SHRA  IMAG24,	 #02H; 
	SHRA  IMAG25,	 #02H; 
	SHRA  IMAG26,	 #02H; 
	SHRA  IMAG27,	 #02H; 
	SHRA  IMAG28,	 #02H; 
	SHRA  IMAG29,	 #02H; 
	SHRA  IMAG30,	 #02H; 
	SHRA  IMAG31,	 #02H; 
;;;;;;;;;;;;;;;;第三次碟形处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
AF03X00:SUB   ZREAL,	 REAL00,   REAL04; X00=X00+X04; X04=X00-X04;	 W0 
	SUB   ZIMAG,	 IMAG00,   IMAG04; 
	ADD   REAL00,	 REAL04; 
	ADD   IMAG00,	 IMAG04; 
	LD    REAL04,	 ZREAL; 
	LD    IMAG04,	 ZIMAG; 
	SUB   ZIMAG,	 IMAG02,   REAL06; X02=X02+X06*(-I); X06=X02-X06*(-I); 
	SUB   ZREAL,	 REAL02,   IMAG06; X02=X02.REAL+X06.IMAG+(X02.IMAG-X06.REAL)*I; 
	ADD   REAL02,	 IMAG06;	   X06=X02.REAL-X06.IMAG+(X02.IMAG+X06.REAL)*I; 
	ADD   IMAG06,	 IMAG02,   REAL06; 
	LD    IMAG02,	 ZIMAG; 
	LD    REAL06,	 ZREAL; 
	LD    COSVL,	 #23170;	   COSVL=23170/32768=0.7071=SINVL; 
       ;X1=X1+W4*X5;  X1.REAL + 0.7071*(X5.REAL+X5.IMAG)+[X1.IMAG + 0.7071*(X5.IMAG-X5.REAL)]*I 
       ;X5=X1-W4*X5;  X1.REAL - 0.7071*(X5.REAL+X5.IMAG)+[X1.IMAG - 0.7071*(X5.IMAG-X5.REAL)]*I 
       ;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG05,   REAL05; ZREAL=X5.IMAG-X5.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X5.IMAG-X5.REAL) 
	ADD   ZREAL,	 REAL05,   IMAG05; ZREAL=X5.REAL+X5.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X5.REAL+X5.IMAG) 
	SUB   REAL05,	 REAL01,   SUP23;  X1.REAL-SUP23 + (X1.IMAG-SUQ23)*I 
	SUB   IMAG05,	 IMAG01,   SUQ23; 
	ADD   REAL01,	 SUP23; 	   X1.REAL+SUP23 + (X1.IMAG+SUQ23)*I 
	ADD   IMAG01,	 SUQ23; 
       ;X3=X3+W12*X7; X3.REAL - 0.7071*(X7.REAL-X7.IMAG)+ [X3.IMAG - 0.7071*(X7.REAL+X7.IMAG)]*I 
       ;X7=X3-W12*X7; X3.REAL + 0.7071*(X7.REAL-X7.IMAG)+ [X3.IMAG + 0.7071*(X7.REAL+X7.IMAG)]*I 
       ;W12=-0.7071-0.7071*I; 
	ADD   ZREAL,	 REAL07,   IMAG07; REAL=X7.REAL+X7.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X7.REAL+X7.IMAG) 
	SUB   ZREAL,	 REAL07,   IMAG07; REAL=X7.REAL-X7.IMAG 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X7.REAL-X7.IMAG) 
	ADD   REAL07,	 REAL03,   SUQ23;  X3.REAL+SUQ23 + (X3.IMAG+SUP23)*I 
	ADD   IMAG07,	 IMAG03,   SUP23; 
	SUB   REAL03,	 SUQ23; 	   X3.REAL-SUQ23 + (X3.IMAG-SUP23)*I 
	SUB   IMAG03,	 SUP23; 
AF03X01:SUB   ZREAL,	 REAL08,   REAL12; X08=X08+X12; X12=X08-X12;	 W0 
	SUB   ZIMAG,	 IMAG08,   IMAG12; 
	ADD   REAL08,	 REAL12; 
	ADD   IMAG08,	 IMAG12; 
	LD    REAL12,	 ZREAL; 
	LD    IMAG12,	 ZIMAG; 
	SUB   ZIMAG,	 IMAG10,   REAL14; X10=X10+X14*(-I); X14=X10-X14*(-I); 
	SUB   ZREAL,	 REAL10,   IMAG14; X10=X10.REAL+X14.IMAG+(X10.IMAG-X14.REAL)*I; 
	ADD   REAL10,	 IMAG14;	   X14=X10.REAL-X14.IMAG+(X10.IMAG+X14.REAL)*I; 
	ADD   IMAG14,	 IMAG10,   REAL14; 
	LD    IMAG10,	 ZIMAG; 
	LD    REAL14,	 ZREAL; 
       ;X09=X09+W4*X13;  X09.REAL + 0.7071*(X13.REAL+X13.IMAG)+[X09.IMAG + 0.7071*(X5.IMAG-X13.REAL)]*I 
       ;X13=X09-W4*X13;  X09.REAL - 0.7071*(X13.REAL+X13.IMAG)+[X09.IMAG - 0.7071*(X5.IMAG-X13.REAL)]*I 
       ;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG13,   REAL13; ZREAL=X13.IMAG-X13.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X13.IMAG-X13.REAL) 
	ADD   ZREAL,	 REAL13,   IMAG13; ZREAL=X13.REAL+X13.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X13.REAL+X13.IMAG) 
	SUB   REAL13,	 REAL09,   SUP23;  X09.REAL-SUP23 + (X09.IMAG-SUQ23)*I 
	SUB   IMAG13,	 IMAG09,   SUQ23; 
	ADD   REAL09,	 SUP23; 	   X09.REAL+SUP23 + (X09.IMAG+SUQ23)*I 
	ADD   IMAG09,	 SUQ23; 
       ;X11=X11+W12*X15; X11.REAL - 0.7071*(X15.REAL-X15.IMAG)+ [X11.IMAG - 0.7071*(X15.REAL+X15.IMAG)]*I 
       ;X15=X11-W12*X15; X11.REAL + 0.7071*(X15.REAL-X15.IMAG)+ [X11.IMAG + 0.7071*(X15.REAL+X15.IMAG)]*I 
       ;W12=-0.7071-0.7071*I; 
	ADD   ZREAL,	 REAL15,   IMAG15; REAL=X15.REAL+X15.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X15.REAL+X15.IMAG) 
	SUB   ZREAL,	 REAL15,   IMAG15; REAL=X15.REAL-X15.IMAG 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X15.REAL-X15.IMAG) 
	ADD   REAL15,	 REAL11,   SUQ23;  X11.REAL+SUQ23 + (X11.IMAG+SUP23)*I 
	ADD   IMAG15,	 IMAG11,   SUP23; 
	SUB   REAL11,	SUQ23;		   X11.REAL-SUQ23 + (X11.IMAG-SUP23)*I 
	SUB   IMAG11,	SUP23; 
AF03X02:SUB   ZREAL,	 REAL16,   REAL20; X16=X16+X20; X20=X16-X20;	 W0 
	SUB   ZIMAG,	 IMAG16,   IMAG20; 
	ADD   REAL16,	 REAL20; 
	ADD   IMAG16,	 IMAG20; 
	LD    REAL20,	 ZREAL; 
	LD    IMAG20,	 ZIMAG; 
	SUB   ZIMAG,	 IMAG18,   REAL22; X18=X18+X22*(-I); X22=X18-X22*(-I); 
	SUB   ZREAL,	 REAL18,   IMAG22; X18=X18.REAL+X22.IMAG+(X18.IMAG-X22.REAL)*I; 
	ADD   REAL18,	 IMAG22;	   X22=X18.REAL-X22.IMAG+(X18.IMAG+X22.REAL)*I; 
	ADD   IMAG22,	 IMAG18,   REAL22; 
	LD    IMAG18,	 ZIMAG; 
	LD    REAL22,	 ZREAL; 
       ;X17=X17+W4*X21;  X17.REAL + 0.7071*(X21.REAL+X21.IMAG)+[X17.IMAG + 0.7071*(X21.IMAG-X21.REAL)]*I 
       ;X21=X17-W4*X21;  X17.REAL - 0.7071*(X21.REAL+X21.IMAG)+[X17.IMAG - 0.7071*(X21.IMAG-X21.REAL)]*I 
       ;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG21,   REAL21; ZREAL=X21.IMAG-X21.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X21.IMAG-X21.REAL) 
	ADD   ZREAL,	 REAL21,   IMAG21; ZREAL=X21.REAL+X21.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X21.REAL+X21.IMAG) 
	SUB   REAL21,	 REAL17,   SUP23;  X17.REAL-SUP23 + (X17.IMAG-SUQ23)*I 
	SUB   IMAG21,	 IMAG17,   SUQ23; 
	ADD   REAL17,	 SUP23; 	   X17.REAL+SUP23 + (X17.IMAG+SUQ23)*I 
	ADD   IMAG17,	 SUQ23; 
       ;X19=X19+W12*X23; X19.REAL - 0.7071*(X23.REAL-X23.IMAG)+ [X19.IMAG - 0.7071*(X23.REAL+X23.IMAG)]*I 
       ;X23=X19-W12*X23; X19.REAL + 0.7071*(X23.REAL-X23.IMAG)+ [X19.IMAG + 0.7071*(X23.REAL+X23.IMAG)]*I 
       ;W12=-0.7071-0.7071*I; 
	ADD   ZREAL,	 REAL23,   IMAG23; REAL=X23.REAL+X23.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X23.REAL+X23.IMAG) 
	SUB   ZREAL,	 REAL23,   IMAG23; REAL=X23.REAL-X23.IMAG 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X23.REAL-X23.IMAG) 
	ADD   REAL23,	 REAL19,   SUQ23;  X19.REAL+SUQ23 + (X19.IMAG+SUP23)*I 
	ADD   IMAG23,	 IMAG19,   SUP23; 
	SUB   REAL19,	 SUQ23; 	   X19.REAL-SUQ23 + (X19.IMAG-SUP23)*I 
	SUB   IMAG19,	 SUP23; 
AF03X03:SUB   ZREAL,	 REAL24,   REAL28; X24=X24+X28; X28=X24-X28;	 W0 
	SUB   ZIMAG,	 IMAG24,   IMAG28; 
	ADD   REAL24,	 REAL28; 
	ADD   IMAG24,	 IMAG28; 
	LD    REAL28,	 ZREAL; 
	LD    IMAG28,	 ZIMAG; 
	SUB   ZIMAG,	 IMAG26,   REAL30; X26=X26+X30*(-I); X30=X26-X30*(-I); 
	SUB   ZREAL,	 REAL26,   IMAG30; X26=X26.REAL+X30.IMAG+(X26.IMAG-X30.REAL)*I; 
	ADD   REAL26,	 IMAG30;	   X30=X26.REAL-X30.IMAG+(X26.IMAG+X30.REAL)*I; 
	ADD   IMAG30,	 IMAG26,   REAL30; 
	LD    IMAG26,	 ZIMAG; 
	LD    REAL30,	 ZREAL; 
       ;X25=X25+W4*X29;  X25.REAL + 0.7071*(X29.REAL+X29.IMAG)+[X25.IMAG + 0.7071*(X29.IMAG-X29.REAL)]*I 
       ;X29=X25-W4*X29;  X25.REAL - 0.7071*(X29.REAL+X29.IMAG)+[X25.IMAG - 0.7071*(X29.IMAG-X29.REAL)]*I 
       ;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG29,   REAL29; ZREAL=X29.IMAG-X29.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X29.IMAG-X29.REAL) 
	ADD   ZREAL,	 REAL29,   IMAG29; ZREAL=X29.REAL+X29.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X29.REAL+X29.IMAG) 
	SUB   REAL29,	 REAL25,   SUP23;  X25.REAL-SUP23 + (X25.IMAG-SUQ23)*I 
	SUB   IMAG29,	 IMAG25,   SUQ23; 
	ADD   REAL25,	 SUP23; 	   X25.REAL+SUP23 + (X25.IMAG+SUQ23)*I 
	ADD   IMAG25,	 SUQ23; 
       ;X27=X27+W12*X31; X27.REAL - 0.7071*(X31.REAL-X31.IMAG)+ [X27.IMAG - 0.7071*(X31.REAL+X31.IMAG)]*I 
       ;X31=X27-W12*X31; X27.REAL + 0.7071*(X31.REAL-X31.IMAG)+ [X27.IMAG + 0.7071*(X31.REAL+X31.IMAG)]*I 
       ;W12=-0.7071-0.7071*I; 
	ADD   ZREAL,	 REAL31,   IMAG31; REAL=X31.REAL+X31.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X31.REAL+X31.IMAG) 
	SUB   ZREAL,	 REAL31,   IMAG31; REAL=X31.REAL-X31.IMAG 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X31.REAL-X31.IMAG) 
	ADD   REAL31,	 REAL27,   SUQ23;  X27.REAL+SUQ23 + (X27.IMAG+SUP23)*I 
	ADD   IMAG31,	 IMAG27,   SUP23; 
	SUB   REAL27,	 SUQ23; 	    X27.REAL-SUQ23 + (X27.IMAG-SUP23)*I 
	SUB   IMAG27,	 SUP23; 
;;;;;;;;;;;;;;;;第四次碟形处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
AF04X00:SUB   ZREAL,	 REAL00,   REAL08; X00=X00+X08; X08=X00-X08;	 W0 
	SUB   ZIMAG,	 IMAG00,   IMAG08; 
	ADD   REAL00,	 REAL08; 
	ADD   IMAG00,	 IMAG08; 
	LD    REAL08,	 ZREAL; 
	LD    IMAG08,	 ZIMAG; 
	SUB   ZIMAG,	 IMAG04,   REAL12; X04=X04+X12*(-I); X12=X04-X12*(-I); W8 
	SUB   ZREAL,	 REAL04,   IMAG12; X04=X04.REAL+X12.IMAG+(X12.IMAG-X12.REAL)*I; 
	ADD   REAL04,	 IMAG12;	   X12=X04.REAL-X12.IMAG+(X04.IMAG+X12.REAL)*I; 
	ADD   IMAG12,	 IMAG04,   REAL12; 
	LD    IMAG04,	 ZIMAG; 
	LD    REAL12,	 ZREAL; 
	LD    COSVL,	 #23170;	   COSVL=23170/32768=0.7071=SINVL; 
       ;X02=X02+W4*X10;  X02.REAL + 0.7071*(X10.REAL+X10.IMAG)+[X02.IMAG + 0.7071*(X10.IMAG-X10.REAL)]*I 
       ;X10=X02-W4*X10;  X02.REAL - 0.7071*(X10.REAL+X10.IMAG)+[X02.IMAG - 0.7071*(X10.IMAG-X10.REAL)]*I 
       ;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG10,   REAL10; ZREAL=X10.IMAG-X10.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X10.IMAG-X10.REAL) 
	ADD   ZREAL,	 REAL10,   IMAG10; ZREAL=X10.REAL+X10.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X10.REAL+X10.IMAG) 
	SUB   REAL10,	 REAL02,   SUP23;  X02.REAL-SUP23 + (X02.IMAG-SUQ23)*I 
	SUB   IMAG10,	 IMAG02,   SUQ23; 
	ADD   REAL02,	 SUP23; 	   X02.REAL+SUP23 + (X02.IMAG+SUQ23)*I 
	ADD   IMAG02,	 SUQ23; 
       ;X06=X06+W12*X14; X06.REAL - 0.7071*(X14.REAL-X14.IMAG)+ [X06.IMAG - 0.7071*(X14.REAL+X14.IMAG)]*I 
       ;X14=X06-W12*X14; X06.REAL + 0.7071*(X14.REAL-X14.IMAG)+ [X06.IMAG + 0.7071*(X14.REAL+X14.IMAG)]*I 
       ;W12=-0.7071-0.7071*I; 
	ADD   ZREAL,	 REAL14,   IMAG14; REAL=X14.REAL+X14.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X14.REAL+X14.IMAG) 
	SUB   ZREAL,	 REAL14,   IMAG14; REAL=X14.REAL-X14.IMAG 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X14.REAL-X14.IMAG) 
	ADD   REAL14,	 REAL06,   SUQ23;  X06.REAL+SUQ23 + (X06.IMAG+SUP23)*I 
	ADD   IMAG14,	 IMAG06,   SUP23; 
	SUB   REAL06,	 SUQ23; 	   X06.REAL-SUQ23 + (X06.IMAG-SUP23)*I 
	SUB   IMAG06,	 SUP23; 
	LD    COSVL,	 #30274; W2;	   COSVL= 30274/32768=COS(-11.25*2); 
	LD    SINVL,	 #52996; W2;	   SINVL=-12540/32768=SIN(-11.25*2); 
       ;X01=X01+W2*X09;  X01.REAL +(COSVL*X09.REAL - SINVL*X09.IMAG)+[X01.IMAG +(COSVL*X09.IMAG + SINVL*X09.REAL)]*I 
       ;X09=X01-W2*X09;  X01.REAL -(COSVL*X09.REAL - SINVL*X09.IMAG)+[X01.IMAG -(COSVL*X09.IMAG + SINVL*X09.REAL)]*I 
       ;W02= 30274/32768-12540/32768*I; 
	MUL   SUX,	 REAL09,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG09,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X09.REAL - SINVL*X09.IMAG; 
	MUL   SUX,	 IMAG09,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL09,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X09.IMAG + SINVL*X09.REAL; 
	SUB   REAL09,	 REAL01,   SUQ23;  X01.REAL - SUQ23+ 
	SUB   IMAG09,	 IMAG01,   SUP23; (X01.IMAG - SUP23)*I 
	ADD   REAL01,	 SUQ23; 	   X01.REAL + SUQ23+ 
	ADD   IMAG01,	 SUP23; 	  (X01.IMAG + SUP23)*I 
	LD    COSVL,	 #12540; W6;	   COSVL= 12540/32768=COS(-11.25*6); 
	LD    SINVL,	 #35262; W6;	   SINVL=-30274/32768=SIN(-11.25*6); 
       ;X03=X03+W6*X11;  X03.REAL +(COSVL*X11.REAL - SINVL*X11.IMAG)+[X03.IMAG +(COSVL*X11.IMAG + SINVL*X11.REAL)]*I 
       ;X11=X03-W6*X11;  X03.REAL -(COSVL*X11.REAL - SINVL*X11.IMAG)+[X03.IMAG -(COSVL*X11.IMAG + SINVL*X11.REAL)]*I 
       ;W06= 12540/32768-30274/32768*I; 
	MUL   SUX,	 REAL11,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG11,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X11.REAL - SINVL*X11.IMAG; 
	MUL   SUX,	 IMAG11,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL11,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X11.IMAG + SINVL*X11.REAL; 
	SUB   REAL11,	 REAL03,   SUQ23;  X03.REAL - SUQ23+ 
	SUB   IMAG11,	 IMAG03,   SUP23; (X03.IMAG - SUP23)*I 
	ADD   REAL03,	 SUQ23; 	   X03.REAL + SUQ23+ 
	ADD   IMAG03,	 SUP23; 	  (X03.IMAG + SUP23)*I 
	LD    COSVL,	 #52996; W10;	   COSVL=-12540/32768=COS(11.25*10); 
	LD    SINVL,	 #35262; W10;	   SINVL=-30274/32768=SIN(11.25*10); 
       ;X05=X05+W10*X13;  X05.REAL +(COSVL*X13.REAL - SINVL*X13.IMAG)+[X05.IMAG +(COSVL*X13.IMAG + SINVL*X13.REAL)]*I 
       ;X13=X05-W10*X13;  X05.REAL -(COSVL*X13.REAL - SINVL*X13.IMAG)+[X05.IMAG -(COSVL*X13.IMAG + SINVL*X13.REAL)]*I 
       ;W10=-12540/32768-30274/32768*I; 
	MUL   SUX,	 REAL13,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG13,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X13.REAL - SINVL*X13.IMAG; 
	MUL   SUX,	 IMAG13,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL13,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X13.IMAG + SINVL*X13.REAL; 
	SUB   REAL13,	 REAL05,   SUQ23;  X05.REAL - SUQ23+ 
	SUB   IMAG13,	 IMAG05,   SUP23; (X05.IMAG - SUP23)*I 
	ADD   REAL05,	 SUQ23; 	   X05.REAL + SUQ23+ 
	ADD   IMAG05,	 SUP23; 	  (X05.IMAG + SUP23)*I 
	LD    COSVL,	 #35262; W14;	   COSVL=-30274/32768=COS(11.25*14); 
	LD    SINVL,	 #52996; W14;	   SINVL=-12540/32768=SIN(11.25*14); 
       ;X07=X07+W14*X15;  X07.REAL +(COSVL*X15.REAL - SINVL*X15.IMAG)+[X07.IMAG +(COSVL*X15.IMAG + SINVL*X15.REAL)]*I 
       ;X15=X07-W14*X15;  X07.REAL -(COSVL*X15.REAL - SINVL*X15.IMAG)+[X07.IMAG -(COSVL*X15.IMAG + SINVL*X15.REAL)]*I 
       ;W14=-12540/32768-30274/32768*I; 
	MUL   SUX,	 REAL15,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG15,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X15.REAL - SINVL*X15.IMAG; 
	MUL   SUX,	 IMAG15,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL15,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X15.IMAG + SINVL*X15.REAL; 
	SUB   REAL15,	 REAL07,   SUQ23;  X07.REAL - SUQ23+ 
	SUB   IMAG15,	 IMAG07,   SUP23; (X07.IMAG - SUP23)*I 
	ADD   REAL07,	 SUQ23; 	   X07.REAL + SUQ23+ 
	ADD   IMAG07,	 SUP23; 	  (X07.IMAG + SUP23)*I 
AF04X01:SUB   ZREAL,	 REAL16,   REAL24; X16=X16+X24; X24=X16-X24;	 W0 
	SUB   ZIMAG,	 IMAG16,   IMAG24; 
	ADD   REAL16,	 REAL24; 
	ADD   IMAG16,	 IMAG24; 
	LD    REAL24,	 ZREAL; 
	LD    IMAG24,	 ZIMAG; 
	SUB   ZIMAG,	 IMAG20,   REAL28; X20=X20+X28*(-I); X28=X20-X28*(-I); W8 
	SUB   ZREAL,	 REAL20,   IMAG28; X20=X20.REAL+X28.IMAG+(X28.IMAG-X28.REAL)*I; 
	ADD   REAL20,	 IMAG28;	   X28=X20.REAL-X28.IMAG+(X20.IMAG+X28.REAL)*I; 
	ADD   IMAG28,	 IMAG20,   REAL28; 
	LD    IMAG20,	 ZIMAG; 
	LD    REAL28,	 ZREAL; 
	LD    COSVL,	 #23170;	   COSVL=23170/32768=0.7071=SINVL; 
       ;X18=X18+W4*X26;  X18.REAL + 0.7071*(X26.REAL+X26.IMAG)+[X18.IMAG + 0.7071*(X26.IMAG-X26.REAL)]*I 
       ;X26=X18-W4*X26;  X18.REAL - 0.7071*(X26.REAL+X26.IMAG)+[X18.IMAG - 0.7071*(X26.IMAG-X26.REAL)]*I 
       ;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG26,   REAL26; ZREAL=X26.IMAG-X26.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X26.IMAG-X26.REAL) 
	ADD   ZREAL,	 REAL26,   IMAG26; ZREAL=X26.REAL+X26.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X26.REAL+X26.IMAG) 
	SUB   REAL26,	 REAL18,   SUP23;  X18.REAL-SUP23 + (X18.IMAG-SUQ23)*I 
	SUB   IMAG26,	 IMAG18,   SUQ23; 
	ADD   REAL18,	 SUP23; 	   X18.REAL+SUP23 + (X18.IMAG+SUQ23)*I 
	ADD   IMAG18,	 SUQ23; 
       ;X22=X22+W12*X30; X22.REAL - 0.7071*(X30.REAL-X30.IMAG)+ [X22.IMAG - 0.7071*(X30.REAL+X30.IMAG)]*I 
       ;X30=X22-W12*X30; X22.REAL + 0.7071*(X30.REAL-X30.IMAG)+ [X22.IMAG + 0.7071*(X30.REAL+X30.IMAG)]*I 
       ;W12=-0.7071-0.7071*I; 
	ADD   ZREAL,	 REAL30,   IMAG30; REAL=X30.REAL+X30.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X30.REAL+X30.IMAG) 
	SUB   ZREAL,	 REAL30,   IMAG30; REAL=X30.REAL-X30.IMAG 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X30.REAL-X30.IMAG) 
	ADD   REAL30,	 REAL22,   SUQ23;  X22.REAL+SUQ23 + (X22.IMAG+SUP23)*I 
	ADD   IMAG30,	 IMAG22,   SUP23; 
	SUB   REAL22,	 SUQ23; 	   X22.REAL-SUQ23 + (X22.IMAG-SUP23)*I 
	SUB   IMAG22,	 SUP23; 
	LD    COSVL,	 #30274; W2;	   COSVL= 30274/32768=COS(-11.25*2); 
	LD    SINVL,	 #52996; W2;	   SINVL=-12540/32768=SIN(-11.25*2); 
       ;X17=X17+W2*X25;  X17.REAL +(COSVL*X25.REAL - SINVL*X25.IMAG)+[X17.IMAG +(COSVL*X25.IMAG + SINVL*X25.REAL)]*I 
       ;X25=X17-W2*X25;  X17.REAL -(COSVL*X25.REAL - SINVL*X25.IMAG)+[X17.IMAG -(COSVL*X25.IMAG + SINVL*X25.REAL)]*I 
       ;W02= 30274/32768-12540/32768*I; 
	MUL   SUX,	 REAL25,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG25,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X25.REAL - SINVL*X25.IMAG; 
	MUL   SUX,	 IMAG25,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL25,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X25.IMAG + SINVL*X25.REAL; 
	SUB   REAL25,	 REAL17,   SUQ23;  X17.REAL - SUQ23+ 
	SUB   IMAG25,	 IMAG17,   SUP23; (X17.IMAG - SUP23)*I 
	ADD   REAL17,	 SUQ23; 	   X17.REAL + SUQ23+ 
	ADD   IMAG17,	 SUP23; 	  (X17.IMAG + SUP23)*I 
	LD    COSVL,	 #12540; W6;	   COSVL= 12540/32768=COS(-11.25*6); 
	LD    SINVL,	 #35262; W6;	   SINVL=-30274/32768=SIN(-11.25*6); 
       ;X19=X19+W6*X27;  X19.REAL +(COSVL*X27.REAL - SINVL*X27.IMAG)+[X19.IMAG +(COSVL*X27.IMAG + SINVL*X27.REAL)]*I 
       ;X27=X19-W6*X27;  X19.REAL -(COSVL*X27.REAL - SINVL*X27.IMAG)+[X19.IMAG -(COSVL*X27.IMAG + SINVL*X27.REAL)]*I 
       ;W06= 12540/32768-30274/32768*I; 
	MUL   SUX,	 REAL27,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG27,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X27.REAL - SINVL*X27.IMAG; 
	MUL   SUX,	 IMAG27,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL27,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X27.IMAG + SINVL*X27.REAL; 
	SUB   REAL27,	 REAL19,   SUQ23;  X19.REAL - SUQ23+ 
	SUB   IMAG27,	 IMAG19,   SUP23; (X19.IMAG - SUP23)*I 
	ADD   REAL19,	 SUQ23; 	   X19.REAL + SUQ23+ 
	ADD   IMAG19,	 SUP23; 	  (X19.IMAG + SUP23)*I 
	LD    COSVL,	 #52996; W10;	   COSVL=-12540/32768=COS(11.25*10); 
	LD    SINVL,	 #35262; W10;	   SINVL=-30274/32768=SIN(11.25*10); 
       ;X21=X21+W10*X29;  X21.REAL +(COSVL*X29.REAL - SINVL*X29.IMAG)+[X21.IMAG +(COSVL*X29.IMAG + SINVL*X29.REAL)]*I 
       ;X29=X21-W10*X29;  X21.REAL -(COSVL*X29.REAL - SINVL*X29.IMAG)+[X21.IMAG -(COSVL*X29.IMAG + SINVL*X29.REAL)]*I 
       ;W10=-12540/32768-30274/32768*I; 
	MUL   SUX,	 REAL29,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG29,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X29.REAL - SINVL*X29.IMAG; 
	MUL   SUX,	 IMAG29,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL29,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X29.IMAG + SINVL*X29.REAL; 
	SUB   REAL29,	 REAL21,   SUQ23;  X21.REAL - SUQ23+ 
	SUB   IMAG29,	 IMAG21,   SUP23; (X21.IMAG - SUP23)*I 
	ADD   REAL21,	 SUQ23; 	   X21.REAL + SUQ23+ 
	ADD   IMAG21,	 SUP23; 	  (X21.IMAG + SUP23)*I 
	LD    COSVL,	 #35262; W14;	   COSVL=-30274/32768=COS(11.25*14); 
	LD    SINVL,	 #52996; W14;	   SINVL=-12540/32768=SIN(11.25*14); 
       ;X23=X23+W14*X31;  X23.REAL +(COSVL*X31.REAL - SINVL*X31.IMAG)+[X23.IMAG +(COSVL*X31.IMAG + SINVL*X31.REAL)]*I 
       ;X31=X23-W14*X31;  X23.REAL -(COSVL*X31.REAL - SINVL*X31.IMAG)+[X23.IMAG -(COSVL*X31.IMAG + SINVL*X31.REAL)]*I 
       ;W14=-12540/32768-30274/32768*I; 
	MUL   SUX,	 REAL31,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG31,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X31.REAL - SINVL*X31.IMAG; 
	MUL   SUX,	 IMAG31,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL31,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X31.IMAG + SINVL*X31.REAL; 
	SUB   REAL31,	 REAL23,   SUQ23;  X23.REAL - SUQ23+ 
	SUB   IMAG31,	 IMAG23,   SUP23; (X23.IMAG - SUP23)*I 
	ADD   REAL23,	 SUQ23; 	   X23.REAL + SUQ23+ 
	ADD   IMAG23,	 SUP23; 	  (X23.IMAG + SUP23)*I 
;;;;;;;;;;;;;;;;第五次碟形处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
AF05X00:SHRA  IMAG00,	 #02H;		   X00=X00+X16; X16=X00-X16;	W0 
	SHRA  IMAG16,	 #02H; 
	;ADD   REAL00,	  REAL16; 
	ADD   IMAG00,	 IMAG16; 
	ADD   REAL08,	 IMAG24; X08=X08+X24*(-I); X24=X08-X24*(-I);W8 
	SUB   IMAG08,	 REAL24; X08=X08.REAL+X24.IMAG+(X08.IMAG-X24.REAL)*I; 
	LD    COSVL,	 #23170;	   COSVL=23170/32768=0.7071=SINVL; 
       ;X04=X04+W4*X20;  X04.REAL + 0.7071*(X20.REAL+X20.IMAG)+[X04.IMAG + 0.7071*(X20.IMAG-X20.REAL)]*I 
       ;X20=X04-W4*X20;  X04.REAL - 0.7071*(X20.REAL+X20.IMAG)+[X04.IMAG - 0.7071*(X20.IMAG-X20.REAL)]*I 
       ;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG20,   REAL20; ZREAL=X20.IMAG-X20.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X20.IMAG-X20.REAL) 
	ADD   ZREAL,	 REAL20,   IMAG20; ZREAL=X20.REAL+X20.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X20.REAL+X20.IMAG) 
	ADD   REAL04,	 SUP23; 	   X04.REAL+SUP23 + (X04.IMAG+SUQ23)*I 
	ADD   IMAG04,	 SUQ23; 
       ;X12=X12+W12*X28; X12.REAL - 0.7071*(X28.REAL-X28.IMAG)+ [X12.IMAG - 0.7071*(X28.REAL+X28.IMAG)]*I 
       ;X28=X12-W12*X28; X12.REAL + 0.7071*(X28.REAL-X28.IMAG)+ [X12.IMAG + 0.7071*(X28.REAL+X28.IMAG)]*I 
       ;W12=-0.7071-0.7071*I; 
	ADD   ZREAL,	 REAL28,   IMAG28; REAL=X28.REAL+X28.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X28.REAL+X28.IMAG) 
	SUB   ZREAL,	 REAL28,   IMAG28; REAL=X28.REAL-X28.IMAG 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X28.REAL-X28.IMAG) 
	SUB   REAL12,	 SUQ23; 	   X12.REAL-SUQ23 + (X12.IMAG-SUP23)*I 
	SUB   IMAG12,	 SUP23; 
	LD    COSVL,	 #30274; W2;	   COSVL= 30274/32768=COS(-11.25*2); 
	LD    SINVL,	 #52996; W2;	   SINVL=-12540/32768=SIN(-11.25*2); 
       ;X02=X02+W2*X18;  X02.REAL +(COSVL*X18.REAL - SINVL*X18.IMAG)+[X02.IMAG +(COSVL*X18.IMAG + SINVL*X18.REAL)]*I 
       ;X18=X02-W2*X18;  X02.REAL -(COSVL*X18.REAL - SINVL*X18.IMAG)+[X02.IMAG -(COSVL*X18.IMAG + SINVL*X18.REAL)]*I 
       ;W02= 30274/32768-12540/32768*I; 
	MUL   SUX,	 REAL18,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG18,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X18.REAL - SINVL*X18.IMAG; 
	MUL   SUX,	 IMAG18,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL18,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X18.IMAG + SINVL*X18.REAL; 
	ADD   REAL02,	 SUQ23; 	   X02.REAL + SUQ23+ 
	ADD   IMAG02,	 SUP23; 	  (X02.IMAG + SUP23)*I 
	LD    COSVL,	 #12540; W6;	   COSVL= 12540/32768=COS(-11.25*6); 
	LD    SINVL,	 #35262; W6;	   SINVL=-30274/32768=SIN(-11.25*6); 
       ;X06=X06+W6*X22;  X06.REAL +(COSVL*X22.REAL - SINVL*X22.IMAG)+[X06.IMAG +(COSVL*X22.IMAG + SINVL*X22.REAL)]*I 
       ;X22=X06-W6*X22;  X06.REAL -(COSVL*X22.REAL - SINVL*X22.IMAG)+[X06.IMAG -(COSVL*X22.IMAG + SINVL*X22.REAL)]*I 
       ;W06= 12540/32768-30274/32768*I; 
	MUL   SUX,	 REAL22,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG22,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X22.REAL - SINVL*X22.IMAG; 
	MUL   SUX,	 IMAG22,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL22,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X22.IMAG + SINVL*X22.REAL; 
	ADD   REAL06,	 SUQ23; 	   X06.REAL + SUQ23+ 
	ADD   IMAG06,	 SUP23; 	  (X06.IMAG + SUP23)*I 
	LD    COSVL,	 #52996; W10;	   COSVL=-12540/32768=COS(11.25*10); 
	LD    SINVL,	 #35262; W10;	   SINVL=-30274/32768=SIN(11.25*10); 
       ;X10=X10+W10*X26; X10.REAL +(COSVL*X26.REAL - SINVL*X26.IMAG)+[X10.IMAG +(COSVL*X26.IMAG + SINVL*X26.REAL)]*I 
       ;X26=X10-W10*X26; X10.REAL -(COSVL*X26.REAL - SINVL*X26.IMAG)+[X10.IMAG -(COSVL*X26.IMAG + SINVL*X26.REAL)]*I 
       ;W10=-12540/32768-30274/32768*I; 
	MUL   SUX,	 REAL26,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG26,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X26.REAL - SINVL*X26.IMAG; 
	MUL   SUX,	 IMAG26,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL26,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X26.IMAG + SINVL*X26.REAL; 
	ADD   REAL10,	 SUQ23; 	   X10.REAL + SUQ23+ 
	ADD   IMAG10,	 SUP23; 	  (X10.IMAG + SUP23)*I 
	LD    COSVL,	 #32138;   W01	   COSVL= 32138/32768=COS(-11.25*1); 
	LD    SINVL,	 #59143;   W01	   SINVL=-06393/32768=SIN(-11.25*1); 
       ;X01=X01+W1*X17;  X01.REAL +(COSVL*X17.REAL - SINVL*X17.IMAG)+[X01.IMAG +(COSVL*X17.IMAG + SINVL*X17.REAL)]*I 
       ;X17=X01-W1*X17;  X01.REAL -(COSVL*X17.REAL - SINVL*X17.IMAG)+[X01.IMAG -(COSVL*X17.IMAG + SINVL*X17.REAL)]*I 
       ;W01=-32138/32768-06393/32768*I; 
	MUL   SUX,	 REAL17,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG17,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X17.REAL - SINVL*X17.IMAG; 
	MUL   SUX,	 IMAG17,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL17,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X17.IMAG + SINVL*X17.REAL; 
	ADD   REAL01,	 SUQ23; 	   X01.REAL + SUQ23+ 
	ADD   IMAG01,	 SUP23; 	  (X01.IMAG + SUP23)*I 
	LD    COSVL,	 #27246;   W03	   COSVL= 27246/32768=COS(11.25*3); 
	LD    SINVL,	 #47331;   W03	   SINVL=-18205/32768=SIN(11.25*3); 
       ;X03=X03+W3*X19;  X03.REAL +(COSVL*X19.REAL - SINVL*X19.IMAG)+[X03.IMAG +(COSVL*X19.IMAG + SINVL*X19.REAL)]*I 
       ;X19=X03-W3*X19;  X03.REAL -(COSVL*X19.REAL - SINVL*X19.IMAG)+[X03.IMAG -(COSVL*X19.IMAG + SINVL*X19.REAL)]*I 
       ;W03=27246/32768-18205/32768*I; 
	MUL   SUX,	 REAL19,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG19,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X19.REAL - SINVL*X19.IMAG; 
	MUL   SUX,	 IMAG19,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL19,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X19.IMAG + SINVL*X19.REAL; 
	ADD   REAL03,	 SUQ23; 	   X03.REAL + SUQ23+ 
	ADD   IMAG03,	 SUP23; 	  (X03.IMAG + SUP23)*I 
	LD    COSVL,	 #18205;   W05	   COSVL= 18205/32768=COS(11.25*5); 
	LD    SINVL,	 #38290;   W05	   SINVL=-27246/32768=SIN(11.25*5); 
       ;X05=X05+W3*X21;  X05.REAL +(COSVL*X21.REAL - SINVL*X21.IMAG)+[X05.IMAG +(COSVL*X21.IMAG + SINVL*X21.REAL)]*I 
       ;X21=X05-W3*X21;  X05.REAL -(COSVL*X21.REAL - SINVL*X21.IMAG)+[X05.IMAG -(COSVL*X21.IMAG + SINVL*X21.REAL)]*I 
       ;W05=27246/32768-18205/32768*I; 
	MUL   SUX,	 REAL21,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG21,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X21.REAL - SINVL*X21.IMAG; 
	MUL   SUX,	 IMAG21,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL21,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X21.IMAG + SINVL*X21.REAL; 
	ADD   REAL05,	 SUQ23; 	   X05.REAL + SUQ23+ 
	ADD   IMAG05,	 SUP23; 	  (X05.IMAG + SUP23)*I 
	LD    COSVL,	 #06393;   W07	   COSVL= 06393/32768=COS(-11.25*7); 
	LD    SINVL,	 #33398;   W07	   SINVL=-32138/32768=SIN(-11.25*7); 
       ;X07=X07+W3*X23;  X07.REAL +(COSVL*X23.REAL - SINVL*X23.IMAG)+[X07.IMAG +(COSVL*X23.IMAG + SINVL*X23.REAL)]*I 
       ;X23=X07-W3*X23;  X07.REAL -(COSVL*X23.REAL - SINVL*X23.IMAG)+[X07.IMAG -(COSVL*X23.IMAG + SINVL*X23.REAL)]*I 
       ;W07=06393/32768-32138/32768*I; 
	MUL   SUX,	 REAL23,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG23,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X23.REAL - SINVL*X23.IMAG; 
	MUL   SUX,	 IMAG23,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL23,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X23.IMAG + SINVL*X23.REAL; 
	ADD   REAL07,	 SUQ23; 	   X07.REAL + SUQ23+ 
	ADD   IMAG07,	 SUP23; 	  (X07.IMAG + SUP23)*I 
	LD    COSVL,	 #59143;   W09	   COSVL=-6393/32768=COS(-11.25*9); 
	LD    SINVL,	 #33398;   W09	   SINVL=-32138/32768=SIN(-11.25*9); 
       ;X09=X09+W3*X25;  X09.REAL +(COSVL*X25.REAL - SINVL*X25.IMAG)+[X09.IMAG +(COSVL*X25.IMAG + SINVL*X25.REAL)]*I 
       ;X25=X09-W3*X25;  X09.REAL -(COSVL*X25.REAL - SINVL*X25.IMAG)+[X09.IMAG -(COSVL*X25.IMAG + SINVL*X25.REAL)]*I 
       ;W09=-6393/32768-32138/32768*I; 
	MUL   SUX,	 REAL25,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG25,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X25.REAL - SINVL*X25.IMAG; 
	MUL   SUX,	 IMAG25,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL25,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X25.IMAG + SINVL*X25.REAL; 
	ADD   REAL09,	 SUQ23; 	   X09.REAL + SUQ23+ 
	ADD   IMAG09,	 SUP23; 	  (X09.IMAG + SUP23)*I 
	LD    COSVL,	 #47331;   W11	   COSVL=-18205/32768=COS(11.25*11); 
	LD    SINVL,	 #38290;   W11	   SINVL=-27246/32768=SIN(11.25*11); 
       ;X11=X11+W3*X27;  X11.REAL +(COSVL*X27.REAL - SINVL*X27.IMAG)+[X11.IMAG +(COSVL*X27.IMAG + SINVL*X27.REAL)]*I 
       ;X27=X11-W3*X27;  X11.REAL -(COSVL*X27.REAL - SINVL*X27.IMAG)+[X11.IMAG -(COSVL*X27.IMAG + SINVL*X27.REAL)]*I 
       ;W11=-18205/32768-27246/32768*I; 
	MUL   SUX,	 REAL27,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG27,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X27.REAL - SINVL*X27.IMAG; 
	MUL   SUX,	 IMAG27,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL27,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X27.IMAG + SINVL*X27.REAL; 
	ADD   REAL11,	 SUQ23; 	   X11.REAL + SUQ23+ 
	ADD   IMAG11,	 SUP23; 	  (X11.IMAG + SUP23)*I 
	LD    COSVL,	 #38290;   W13	   COSVL=-27246/32768=COS(11.25*13); 
	LD    SINVL,	 #47331;   W13	   SINVL=-18205/32768=SIN(11.25*13); 
       ;X13=X13+W3*X29;  X13.REAL +(COSVL*X29.REAL - SINVL*X29.IMAG)+[X13.IMAG +(COSVL*X29.IMAG + SINVL*X29.REAL)]*I 
       ;X29=X13-W3*X29;  X13.REAL -(COSVL*X29.REAL - SINVL*X29.IMAG)+[X13.IMAG -(COSVL*X29.IMAG + SINVL*X29.REAL)]*I 
       ;W13=-18205/32768-27246/32768*I; 
	MUL   SUX,	 REAL29,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG29,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X29.REAL - SINVL*X29.IMAG; 
	MUL   SUX,	 IMAG29,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL29,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X29.IMAG + SINVL*X29.REAL; 
	ADD   REAL13,	 SUQ23; 	   X13.REAL + SUQ23+ 
	ADD   IMAG13,	 SUP23; 	  (X13.IMAG + SUP23)*I 
;;;;;;;;;;;;;;;;;;; 直流分量 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
	SHRA  IMAG00,	 #002H; 
	SUB   IMAG00,	 DCZO;		  零点 
	MUL   SUY,	 IMAG00,   DCSK;  斜率 
	DIV   SUY,	 #10000; 
	LD    REAL00,	 SUY01;  REAL00=[(FFT_IMAGE_VALUE/4)-DCZO]*DCSK/10000; 
;;;;;;;;;;;;;;;;;;; 基波谐波分量 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
	CLR   SUY01; 
	CLR   SUY23; 
	CLR   WORK; 
	CLR   XBSUM01; 
	CLR   XBSUM23; 
	LD    SUN01,	 REAL01;	   基波分量 
	LD    SUN23,	 IMAG01; 
XBFX00: LD    ZREAL,	 SUN01;   ZREAL=基波实部 
	LD    ZIMAG,	 SUN23;   ZIMAG=基波虚部 
	CLR   SUP01; 
	JBC   ZREALH,	 07H,	   XN000;if ZREAL<0 then ZREAL=-ZREAL; 
	NEG   ZREAL; 
XN000:	JBC   ZIMAGH,	 07H,	   XN001;if ZREAL<0 then ZREAL=-ZREAL; 
	NEG   ZIMAG; 
XN001:	CMP   ZIMAG,	 ZREAL;    tg*=IMAG/REAL; 
	JLE   XN002;		   IF  IMAG<=REAL  THEN  JUMP	XN002; 
	XCH   ZREAL,	 ZIMAG; 
	LD    SUP01,	 #0FFFFH;  45度标志 
 
XN002:	LD    SUX23,	 ZIMAG;    IMAG<=REAL; 
	CLR   SUX01; 
	CMP   SUX23,	 R0; 
	JE    XDIV; 
	LD    SUX01,	 #0FFFFH; 
	DEC   SUX23;		   SUX=(IMAG*65536)-1; 
	SHRAL SUX,	 #01H;	   SUX=SUX/2 
XDIV:	CMP   R0,	 ZREAL; 
	JNE   XN003; 
	LD    SUX01,	 #07FFFH;  IF ZREAL=0  THEN SUX01=07FFFH=TANVL 
	SJMP  XN004; 
XN003:	CMP   ZREAL,	 #01H; 
	JE    XN004; 
	CMP   ZREAL,	 #02H; 
	JNE   XNMMM; 
	SHRAL SUX,	 #01H; 
	SJMP  XN004; 
XNMMM:	DIV   SUX,	 ZREAL; 
XN004:	LD    TANVL,	 SUX01; 
;;;;;;;;;;;;; 由TANVL对分法查找角度 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
	CLR   DCZO;			   FIRST=0; 
	LD    DCSK,	 #4500; 	   LAST=4500; 
XN005:	ADD   SUQ01,	 DCZO,	   DCSK; 
	SHR   SUQ01,	 #01H;		   SUQ01=(FIRST+LAST)/2; 
	LD    SUQ23,	 SUQ01; 
	SHL   SUQ23,	 #01H; 
	LD    ADDRESSL,  #lsw  TAN; 
	LD    ADDRESSH,  #msw  TAN; 
	ADD   ADDRESSL,  SUQ23; 
	ADDC  ADDRESSH,  R0; 
	ELD   SUX01,	 [ADDRESS]; TAN[]     ;SUX01=TAN(SUQ23); 
	CMP   DCZO,	 DCSK; 
	JGE   XN007;			   IF  FIRST>=LAST    THEN  JUMP  XN007; 
	CMP   DCZO,	 SUQ01; 
	JE    XN007; 
	CMP   DCSK,	 SUQ01; 
	JE    XN007; 
	SUB   SUQ23,	 DCSK,	   DCZO; 
	CMP   SUQ23,	 #01H; 
	JLE   XN007; 
	CMP   TANVL,	 SUX01; 
	JE    XN007; 
	JGT   XN006; 
	LD    DCSK,	 SUQ01; 	   ;DCSK=SUQ01=(FIRST+LAST)/2; 
	SJMP  XN005; 
XN006:	LD    DCZO,	 SUQ01; 	   ;DCZO=SUQ01=(FIRST+LAST)/2; 
	SJMP  XN005; 
XN007:	LD    ARCVL,	 SUQ01; 
	SHL   ARCVL,	 #01H; 
	LD    ADDRESSL,  #lsw  SIN; 
	LD    ADDRESSH,  #msw  SIN; 
	ADD   ADDRESSL,  ARCVL; 
	ADDC  ADDRESSH,  R0; 
	ELD   SINVL,	 [ADDRESS];SIN[] 
 
	LD    DCZO,	 #18000; 
	SUB   DCZO,	 ARCVL; 
	LD    ADDRESSL,  #lsw  SIN; 
	LD    ADDRESSH,  #msw  SIN; 
	ADD   ADDRESSL,  DCZO; 
	ADDC  ADDRESSH,  R0; 
	ELD   COSVL,	 [ADDRESS];  SIN[] 
 
	MUL   SUX,	 ZIMAG,    SINVL; 
	MUL   SUQ,	 ZREAL,    COSVL; 
	ADD   SUX01,	 SUQ01; 
	ADDC  SUX23,	 R0; 
	ADD   SUX23,	 SUQ23; 	  模长=AD值=幅值*8 
	MUL   SUQ,	 SUX23,    ADWINDOWS;5DC9H=(10000/1706)*32768/8; 
	SHLL  SUQ,	 #01H; 
	LD    SUX23,	 SUQ23; 
	MUL   SUQ,	 SUX23,    TEMPERATURE; 
	DIV   SUQ,	 #10000; 
	LD    SUX23,	 SUQ01; 
	LD    WTMP,	 SUX23; 
	ADD   XBSUM01,	 SUX23; 
	ADDC  XBSUM23,	 R0; 
	MUL   SUQ,	 SUX23,    SUX23; 
	ADD   SUY01,	 SUQ01; 
	ADDC  SUY23,	 R0; 
	ADD   SUY23,	 SUQ23; 
	JBC   SUP01,	 0H,	   XN008; 
	LD    SUP01,	 #18000; 
	SUB   SUP01,	 ARCVL; 
	LD    ARCVL,	 SUP01; 
XN008:	SHR   ARCVL,	 #01H; 
	CMP   SUN01,	 R0; 
	JGE   A01OR04; 
A02OR03:CMP   SUN23,	 R0; 
	JGE   A0002; 
A0003:	LD    SUX01,	 #47536;	    47536=-18000; 
	ADD   SUX01,	 ARCVL; 
	SJMP  SQ000; 
A0002:	LD    SUX01,	 #18000; 
	SUB   SUX01,	 ARCVL; 
	SJMP  SQ000; 
A01OR04:CMP   SUN23,	 R0; 
	JGE   A0001; 
A0004:	LD    SUX01,	 ARCVL; 
	NEG   SUX01; 
	SJMP  SQ000; 
A0001:	LD    SUX01,	 ARCVL; 
 
 
SQ000:	LD    ADDRESSL,  #lsw  JXNST; 
	LD    ADDRESSH,  #msw  JXNST; 
	ADD   ADDRESSL,  WORK; 
	ADDC  ADDRESSH,  R0; 
	ELD   ADRL,	 [ADDRESS]; 
	ELD   ADRH,	2[ADDRESS]; 
	EBR   [ADR]; 
XCASE02:LD    WORK,	 #04; 
	LD    SUN01,	 REAL02;	  二次谐波 
	LD    SUN23,	 IMAG02; 
	LD    REAL01,	 WTMP;		  基波模长 
	LD    IMAG01,	 SUX01; 	  基波角度 
	EJMP  XBFX00; 
XCASE03:LD    WORK,	 #08; 
	LD    SUN01,	 REAL03;	  三次谐波 
	LD    SUN23,	 IMAG03; 
	LD    REAL02,	 WTMP;		  二次谐波模长 
	LD    IMAG02,	 SUX01; 	  二次谐波角度 
	EJMP  XBFX00; 
XCASE04:LD    WORK,	 #12; 
	LD    SUN01,	 REAL04;	  四次谐波 
	LD    SUN23,	 IMAG04; 
	LD    REAL03,	 WTMP;		  三次谐波模长 
	LD    IMAG03,	 SUX01; 	  三次谐波角度 
	EJMP  XBFX00; 
XCASE05:LD    WORK,	 #16; 
	LD    SUN01,	 REAL05;	  五次谐波 
	LD    SUN23,	 IMAG05; 
	LD    REAL04,	 WTMP;		  四次谐波模长 
	LD    IMAG04,	 SUX01; 	  四次谐波角度 
	EJMP  XBFX00; 
XCASE06:LD    WORK,	 #20; 
	LD    SUN01,	 REAL06;	  六次谐波 
	LD    SUN23,	 IMAG06; 
	LD    REAL05,	 WTMP;		  五次谐波模长 
	LD    IMAG05,	 SUX01; 	  五次谐波角度 
	EJMP  XBFX00; 
XCASE07:LD    WORK,	 #24; 
	LD    SUN01,	 REAL07;	  七次谐波 
	LD    SUN23,	 IMAG07; 
	LD    REAL06,	 WTMP;		  六次谐波模长 
	LD    IMAG06,	 SUX01; 	  六次谐波角度 
	EJMP  XBFX00; 
XCASE08:LD    WORK,	 #28; 
	LD    SUN01,	 REAL08;	  八次谐波 
	LD    SUN23,	 IMAG08; 
	LD    REAL07,	 WTMP;		  七次谐波模长 
	LD    IMAG07,	 SUX01; 	  七次谐波角度 
	EJMP  XBFX00; 
XCASE09:LD    WORK,	 #32; 
	LD    SUN01,	 REAL09;	  九次谐波 
	LD    SUN23,	 IMAG09; 
	LD    REAL08,	 WTMP;		  八次谐波模长 
	LD    IMAG08,	 SUX01; 	  八次谐波角度 
	EJMP  XBFX00; 
XCASE10:LD    WORK,	 #36; 
	LD    SUN01,	 REAL10;	  十次谐波 
	LD    SUN23,	 IMAG10; 
	LD    REAL09,	 WTMP;		  九次谐波模长 
	LD    IMAG09,	 SUX01; 	  九次谐波角度 
	EJMP  XBFX00; 
XCASE11:LD    WORK,	 #40; 
	LD    SUN01,	 REAL11;	  11次谐波 
	LD    SUN23,	 IMAG11; 
	LD    REAL10,	 WTMP;		  十次谐波模长 
	LD    IMAG10,	 SUX01; 	  十次谐波角度 
	EJMP  XBFX00; 
XCASE12:LD    WORK,	 #44; 
	LD    SUN01,	 REAL12;	  12次谐波 
	LD    SUN23,	 IMAG12; 
	LD    REAL11,	 WTMP;		  11次谐波模长 
	LD    IMAG11,	 SUX01; 	  11次谐波角度 
	EJMP  XBFX00; 
XCASE13:LD    WORK,	 #48; 
	LD    SUN01,	 REAL13;	  13次谐波 
	LD    SUN23,	 IMAG13; 
	LD    REAL12,	 WTMP;		  12次谐波模长 
	LD    IMAG12,	 SUX01; 	  12次谐波角度 
	EJMP  XBFX00; 
XCASE14:LD    REAL13,	 WTMP;		  13次谐波模长 
	LD    IMAG13,	 SUX01; 	  13次谐波角度 
	SJMP  ZSQT; 
JXNST:	DCL   XCASE02; 
	DCL   XCASE03; 
	DCL   XCASE04; 
	DCL   XCASE05; 
	DCL   XCASE06; 
	DCL   XCASE07; 
	DCL   XCASE08; 
	DCL   XCASE09; 
	DCL   XCASE10; 
	DCL   XCASE11; 
	DCL   XCASE12; 
	DCL   XCASE13; 
	DCL   XCASE14; 
ZSQT:	LD    SUN01,	 SUY01;  TANVL	COSVL  SINVL 
	LD    SUN23,	 SUY23; 
	CMP   SUY23,	 R0; 
	JNE   ZSQRT; 
	CMP   SUY01,	 R0; 
	JNE   ZSQRT; 
	ST    R0,	 SUX23; 
	EJMP  SQEEE; 
ZSQRT:	CLR   TANVL; 
R7BIT:	JBC   SUY3,	 7H,	   R6BIT; 
	SHRL  SUY,	 #01H; 
	DECB  TANVL; 
R6BIT:	JBC   SUY3,	 6H,	   R5BIT; 
	SHRL  SUY,	 #01H; 
	DECB  TANVL; 
R5BIT:	JBC   SUY3,	 5H,	   R4BIT; 
RSBN:	JBC   TANVL,	 0H,	   SQRT; 
	SHRL  SUY,	 #01H; 
	DECB  TANVL; 
	SJMP  SQRT; 
R4BIT:	JBC   SUY3,	 4H,	   SHIFT; 
RZBN:	JBC   TANVL,	 0H,	   SQRT; 
	SHLL  SUY,	 #01H; 
	INCB  TANVL; 
	SJMP  SQRT; 
SHIFT:	SHLL  SUY,	 #01H; 
	INCB  TANVL; 
	SJMP  R7BIT; 
SQRT:	LD    DCSK,	 #1000H; 
	SUB   DCZO,	 SUY23,    DCSK; 
	SHR   DCZO,	 #07H; 
	AND   DCZO,	 #0FFFEH; 
 
	LD    ADDRESSL,  #lsw  YY0; 
	LD    ADDRESSH,  #msw  YY0; 
	ADD   ADDRESSL,  DCZO; 
	ADDC  ADDRESSH,  R0; 
	ELD   ZREAL,	 [ADDRESS]; 
 
	LD    ADDRESSL,  #lsw  KK0; 
	LD    ADDRESSH,  #msw  KK0; 
	ADD   ADDRESSL,  DCZO; 
	ADDC  ADDRESSH,  R0; 
	ELD   SUX01,	 [ADDRESS]; 
	LD    SUX23,	 #0001H; 
 
	LD    ADDRESSL,  #lsw  XX0; 
	LD    ADDRESSH,  #msw  XX0; 
	ADD   ADDRESSL,  DCZO; 
	ADDC  ADDRESSH,  R0; 
	ELD   ZIMAG,	 [ADDRESS]; 
 
	SUB   SUY23,	 ZIMAG; 	    SUP,SUQ=SUX*SUY 
	MULU  SUP,	 SUX23,    SUY23; 
	MULU  SUQ,	 SUX01,    SUY01; 
	MULU  COSVL,	 SUX23,    SUY01; 
	MULU  WORK,	 SUX01,    SUY23; 
;	LDB   WATCHDOG,  #01EH; 
;	LDB   WATCHDOG,  #0E1H; 
	CLR   SUX01; 
	CLR   SUY01; 
	ADD   SUQ23,	 COSVL; 
	ADDC  SUX01,	 R0; 
	ADD   SUQ23,	 WORK; 
	ADDC  SUX01,	 R0; 
	ADD   SUP01,	 SUX01; 
	ADDC  SUY01,	 R0; 
	ADD   SUP01,	 SINVL; 
	ADDC  SUY01,	 R0; 
	ADD   SUP01,	 WTMP; 
	ADDC  SUY01,	 R0; 
	ADD   SUP23,	 SUY01; 
	LD    SUX01,	 SUQ23; 
	LD    SUX23,	 SUP01; 
	ADD   SUX23,	 ZREAL; 
	SHRA  TANVL,	 #01H; 
	CMP   TANVL,	 R0; 
	JGE   ZOOM; 
SHORT:	NEG   TANVL; 
	SHLL  SUX,	 TANVL; 
	SJMP  SQEEE; 
ZOOM:	SHRL  SUX,	 TANVL; 
SQEEE:	LD    REAL14,	 SUX23;    有效值 XT014=1--13U 
	LD    ZREAL,	 REAL01; 
	MUL   SUX,	 ZREAL,    ZREAL; 
	SUB   SUN01,	 SUX01; 
	SUBC  SUN23,	 SUX23; 
	CMP   SUN23,	 R0; 
	JGE   SSSSS; 
	CLR   SUN23; 
	CLR   SUN01; 
SSSSS:	LD    SUY23,	 SUN23; 
	LD    SUY01,	 SUN01; 
XBZSQT: CMP   SUY23,	 R0; 
	JNE   XBROOT; 
	CMP   SUY01,	 R0; 
	JNE   XBROOT; 
	ST    R0,	 SUX23; 
	EJMP  SQQXB; 
XBROOT: CLR   TANVL; 
R7BXB:	JBC   SUY3,	 7H,	   R6BXB; 
	SHRL  SUY,	 #01H; 
	DECB  TANVL; 
R6BXB:	JBC   SUY3,	 6H,	   R5BXB; 
	SHRL  SUY,	 #01H; 
	DECB  TANVL; 
R5BXB:	JBC   SUY3,	 5H,	   R4BXB; 
RSBNX:	JBC   TANVL,	 0H,	   SQRTX; 
	SHRL  SUY,	 #01H; 
	DECB  TANVL; 
	SJMP  SQRTX; 
R4BXB:	JBC   SUY3,	 4H,	   SHIFTX; 
RZBNX:	JBC   TANVL,	 0H,	   SQRTX; 
	SHLL  SUY,	 #01H; 
	INCB  TANVL; 
	SJMP  SQRTX; 
SHIFTX: SHLL  SUY,	 #01H; 
	INCB  TANVL; 
	SJMP  R7BXB; 
SQRTX:	LD    DCSK,	 #1000H; 
	SUB   DCZO,	 SUY23,    DCSK; 
	SHR   DCZO,	 #07H; 
	AND   DCZO,	 #0FFFEH; 
	LD    ADDRESSL,  #lsw  YY0; 
	LD    ADDRESSH,  #msw  YY0; 
	ADD   ADDRESSL,  DCZO; 
	ADDC  ADDRESSH,  R0; 
	ELD   ZREAL,	 [ADDRESS]; 
 
	LD    ADDRESSL,  #lsw  KK0; 
	LD    ADDRESSH,  #msw  KK0; 
	ADD   ADDRESSL,  DCZO; 
	ADDC  ADDRESSH,  R0; 
	ELD   SUX01,	 [ADDRESS]; 
	LD    SUX23,	 #0001H; 
 
	LD    ADDRESSL,  #lsw  XX0; 
	LD    ADDRESSH,  #msw  XX0; 
	ADD   ADDRESSL,  DCZO; 
	ADDC  ADDRESSH,  R0; 
	ELD   ZIMAG,	 [ADDRESS]; 
 
	SUB   SUY23,	 ZIMAG; 	    SUP,SUQ=SUX*SUY 
	MULU  SUP,	 SUX23,    SUY23; 
	MULU  SUQ,	 SUX01,    SUY01; 
	MULU  COSVL,	 SUX23,    SUY01; 
	MULU  WORK,	 SUX01,    SUY23; 
;	LDB   WATCHDOG,  #01EH; 
;	LDB   WATCHDOG,  #0E1H; 
	CLR   SUX01; 
	CLR   SUY01; 
	ADD   SUQ23,	 COSVL; 
	ADDC  SUX01,	 R0; 
	ADD   SUQ23,	 WORK; 
	ADDC  SUX01,	 R0; 
	ADD   SUP01,	 SUX01; 
	ADDC  SUY01,	 R0; 
	ADD   SUP01,	 SINVL; 
	ADDC  SUY01,	 R0; 
	ADD   SUP01,	 WTMP; 
	ADDC  SUY01,	 R0; 
	ADD   SUP23,	 SUY01; 
	LD    SUX01,	 SUQ23; 
	LD    SUX23,	 SUP01; 
	ADD   SUX23,	 ZREAL; 
	SHRA  TANVL,	 #01H; 
	CMP   TANVL,	 R0; 
	JGE   ZOOMX; 
SHORTX: NEG   TANVL; 
	SHLL  SUX,	 TANVL; 
	SJMP  SQQXB; 
ZOOMX:	SHRL  SUX,	 TANVL; 
SQQXB:	LD    IMAG14,	 SUX23;    谐波有效值	XT014=2--13U 
	LD    ZREAL,	 #125; 
	MUL   SUY,	 ZREAL,    SUX23;  SUY=SUX23*125; 
	SHRL  SUY,	 #01H; 
	LD    SUX23,	 REAL14; 
	SHR   SUX23,	 #04H; 
	CMP   SUX23,	 R0; 
	JNE   XBANY; 
	LD    SUY01,	 #9999; 
	SJMP  MAXXB; 
XBANY:	CMP   SUX23,	 #01H; 
	JE    XBNEXT; 
	DIV   SUY,	 SUX23; 
XBNEXT: CMP   SUY01,	 #9999; 
	JLE   MAXXB; 
	LD    SUY01,	 #9999; 
MAXXB:	LD    REAL15,	 SUY01;      畸变率 
	SHRL  XBSUM,	 #04H;	     谐波含量 
	LD    SUX23,	 XBSUM01; 
	LD    ZREAL,	 #125; 
	CLR   WORK; 
	LD    ZIMAG,	 REAL01; 
AXBFL:	MUL   SUY,	 ZREAL,    ZIMAG;  SUY=ZIMAG*125; 
	SHRL  SUY,	 #01H; 
	CMP   SUX23,	 R0; 
	JNE   ADANY; 
	LD    SUY01,	 #9999; 
	SJMP  MAXAD; 
ADANY:	CMP   SUX23,	 #01H; 
	JE    ADNEXT; 
	DIV   SUY,	 SUX23; 
ADNEXT: CMP   SUY01,	 #9999; 
	JLE   MAXAD; 
	LD    SUY01,	 #9999; 
MAXAD:	LD    ADDRESSL,  #lsw  XNST; 
	LD    ADDRESSH,  #msw  XNST; 
	ADD   ADDRESSL,  WORK; 
	ADDC  ADDRESSH,  R0; 
	ELD   ADRL,	 [ADDRESS]; 
	ELD   ADRH,	2[ADDRESS]; 
	EBR   [ADR]; 
 
;	LD    WORK, XNST[WORK] 
;	BR    [WORK] 
 
MCASE02:LD    WORK,	 #04; 
	LD    ZIMAG,	 REAL02;	  二次谐波 
	LD    REAL17,	 SUY01; 	  基波含量 
	EJMP  AXBFL; 
MCASE03:LD    WORK,	 #08; 
	LD    ZIMAG,	 REAL03;	  三次谐波 
	LD    REAL18,	 SUY01; 	  二次谐波含量 
	EJMP  AXBFL; 
MCASE04:LD    WORK,	 #12; 
	LD    ZIMAG,	 REAL04;	  四次谐波 
	LD    REAL19,	 SUY01; 	  三次谐波含量 
	EJMP  AXBFL; 
MCASE05:LD    WORK,	 #16; 
	LD    ZIMAG,	 REAL05;	  五次谐波 
	LD    REAL20,	 SUY01; 	  四次谐波含量 
	EJMP  AXBFL; 
MCASE06:LD    WORK,	 #20; 
	LD    ZIMAG,	 REAL06;	  六次谐波 
	LD    REAL21,	 SUY01; 	  五次谐波含量 
	EJMP  AXBFL; 
MCASE07:LD    WORK,	 #24; 
	LD    ZIMAG,	 REAL07;	  7次谐波 
	LD    REAL22,	 SUY01; 	  6次谐波含量 
	EJMP  AXBFL; 
MCASE08:LD    WORK,	 #28; 
	LD    ZIMAG,	 REAL08;	  8次谐波 
	LD    REAL23,	 SUY01; 	  7次谐波含量 
	EJMP  AXBFL; 
MCASE09:LD    WORK,	 #32; 
	LD    ZIMAG,	 REAL09;	  9次谐波 
	LD    REAL24,	 SUY01; 	  8次谐波含量 
	EJMP  AXBFL; 
MCASE10:LD    WORK,	 #36; 
	LD    ZIMAG,	 REAL10;	 10次谐波 
	LD    REAL25,	 SUY01; 	 09次谐波含量 
	EJMP  AXBFL; 
MCASE11:LD    WORK,	 #40; 
	LD    ZIMAG,	 REAL11;	 11次谐波 
	LD    REAL26,	 SUY01; 	 10次谐波含量 
	EJMP  AXBFL; 
MCASE12:LD    WORK,	 #44; 
	LD    ZIMAG,	 REAL12;	 12次谐波 
	LD    REAL27,	 SUY01; 	 11次谐波含量 
	EJMP  AXBFL; 
MCASE13:LD    WORK,	 #48; 
	LD    ZIMAG,	 REAL13;	 13次谐波 
	LD    REAL28,	 SUY01; 	 12次谐波含量 
	EJMP  AXBFL; 
MCASE14:LD    REAL29,	 SUY01; 	 13次谐波含量 
	EJMP  XTEND; 
XNST:	DCL   MCASE02; 
	DCL   MCASE03; 
	DCL   MCASE04; 
	DCL   MCASE05; 
	DCL   MCASE06; 
	DCL   MCASE07; 
	DCL   MCASE08; 
	DCL   MCASE09; 
	DCL   MCASE10; 
	DCL   MCASE11; 
	DCL   MCASE12; 
	DCL   MCASE13; 
	DCL   MCASE14; 
XTEND:	LDB   WSR,	 #00H 
	RET 
 
	PUBLIC DZARC;  SUX01=SUX01-SUX23=-18000--0--18000 
	CSEG  AT 0FB1300H 
DZARC:	LDB   WSR,	 #WSR_200H_27FH 
	LD    SUY01,	 SUX01; 
	LD    SUY23,	 SUX23; 
	SHRA  SUY01,	 #01H; 
	SHRA  SUY23,	 #01H; 
	SUB   SUY01,	 SUY23; 
	CMP   SUY01,	 R0; 
	JGE   DZ000; 
	NEG   SUY01; 
DZ000:	CMP   SUY01,	 #16383; 
	JGE   DZ500; 
	SUB   SUX01,	 SUX23; 
	CLR   SUX23; 
	CMP   SUX01,	 R0; 
	JGE   DZ002;	 DZ001<0;   DZ002>0; 
DZ001:	NEG   SUX01; 
	OR    SUX23,	 #0080H; 
DZ002:	CMP   SUX01,	 #9000; 
	JLE   DZ101; 
	CMP   SUX01,	 #18000; 
	JLE   DZ201; 
	CMP   SUX01,	 #27000; 
	JLE   DZ301; 
	SUB   SUX01,	 #27000; 
	SUB   SUX01,	 #9000; 
	NEG   SUX01; 
DZ401:	JBS   SUX23,	 7H,	   DZ444; 
	LD    SUX23,	 #0002H;   第四象限 
	RET; 
DZ444:	CLR   SUX23;		   第一象限 
	RET; 
DZ101:	JBS   SUX23,	 7H,	   DZ111; 
	CLR   SUX23;		   第一象限 
	RET; 
DZ111:	LD    SUX23,	 #0002H;   第四象限 
	RET; 
DZ201:	JBS   SUX23,	 7H,	   DZ222; 
	SUB   SUX01,	 #18000;   第二象限 
	NEG   SUX01; 
	LD    SUX23,	 #0001H; 
	RET; 
DZ222:	SUB   SUX01,	 #18000;   第三象限 
	NEG   SUX01; 
	LD    SUX23,	 #0003H; 
	RET; 
DZ301:	JBS   SUX23,	 7H,	   DZ333; 
	SUB   SUX01,	 #18000;   第三象限 
	LD    SUX23,	 #0003H; 
	RET; 
DZ333:	SUB   SUX01,	 #18000;   第二象限 
	LD    SUX23,	 #0001H; 
	RET; 
DZ500:	CMP   SUX01,	 R0; 
	JGE   DZ700; 
DZ600:	ADD   SUX01,	 #18000;   第一象限 
	SUB   SUX23,	 #18000; 
	NEG   SUX23; 
	ADD   SUX01,	 SUX23; 
	CLR   SUX23; 
	RET; 
DZ700:	SUB   SUX01,	 #18000;   第四象限 
	NEG   SUX01; 
	ADD   SUX23,	 #18000; 
	ADD   SUX01,	 SUX23; 
	CMP   SUX01,	 R0; 
	JE    DZ701; 
	LD    SUX23,	 #0002H; 
	RET; 
DZ701:	CLR   SUX23; 
	RET; 
 
	PUBLIC POWER1;/* U1*I1*COS(wt+t+DCZO)*DCSK */ 
	CSEG   AT 0FB2000H 
POWER1: LDB   WSR,	 #WSR_200H_27FH 
	CLR   SUP; 
	CLR   SUQ; 
	CLR   SUN01; 
	LD    ZREAL,	 104H[0];	U1  基波  模长 
	LD    SUX01,	 106H[0];	U1  基波  角度 
	LD    ZIMAG,	 184H[0];	I1  基波  模长 
	LD    SUX23,	 186H[0];	I1  基波  角度 
	ADD   SUX01,	 DCZO;	   功率补偿 
PLOOP:	CALL  DZARC;	 //计算相角差		 1 | 0 
	LD    ARCVL,	 SUX01; //ARCVL=相角差 ---------- 
	LD    SUN23,	 SUX23; //SUN23=象限	 3 | 2 
	LD    ADDRESSL,  #lsw  SIN; 
	LD    ADDRESSH,  #msw  SIN; 
	ADD   ADDRESSL,  SUX01; 
	ADDC  ADDRESSH,  R0; 
	ADD   ADDRESSL,  SUX01; 
	ADDC  ADDRESSH,  R0; 
	ELD   SINVL,	 [ADDRESS];SINVL=SIN(SUX01); 
	SUB   SUX01,	 #9000; 
	NEG   SUX01; 
	LD    ADDRESSL,  #lsw  SIN; 
	LD    ADDRESSH,  #msw  SIN; 
	ADD   ADDRESSL,  SUX01; 
	ADDC  ADDRESSH,  R0; 
	ADD   ADDRESSL,  SUX01; 
	ADDC  ADDRESSH,  R0; 
	ELD   COSVL,	 [ADDRESS];SINVL=SIN(SUX01); 
	JBC   SUX23,	 0H,	   CNEXT0; 
	NEG   COSVL;			  // 2 或 3 象限 
CNEXT0: JBC   SUX23,	 1H,	   SNEXT0; 
	NEG   SINVL;			  // 3 或 4 象限 
SNEXT0: MUL   SUX,	 ZREAL,    ZIMAG;  SUX=ZREAL*ZIMAG=U*I; 
	DIV   SUX,	 #2000; 
	MUL   SUY,	 SUX01,    COSVL; 
	ADD   SUP,	 SUY23; 
	MUL   SUY,	 SUX01,    SINVL; 
	ADD   SUQ,	 SUY23; 
	LD    ADDRESSL,  #lsw  JXNARC; 
	LD    ADDRESSH,  #msw  JXNARC; 
	ADD   ADDRESSL,  SUN01; 
	ADDC  ADDRESSH,  R0; 
	ELD   ADRL,	 [ADDRESS]; 
	ELD   ADRH,	2[ADDRESS]; 
	EBR   [ADR]; 
PCASE02:LD    SUN01,	 #04; 
	LD    REAL17,	 SUN23; 	  SUN23 基波功角象限值 
	LD    IMAG17,	 ARCVL; 	  ARCVL 基波功角 
	LD    WORK,	 ARCVL; 
	LD    ZREAL,	 108H[0];	   U1  二次谐波   模长 
	LD    SUX01,	 10AH[0];	   U1  二次谐波   角度 
	LD    ZIMAG,	 188H[0];	   I1  二次谐波   模长 
	LD    SUX23,	 18AH[0];	   I1  二次谐波   角度 
	LJMP  PLOOP; 
PCASE03:LD    SUN01,	 #08; 
	LD    REAL18,	 SUN23; 	  SUN23 2 次谐波功角象限值 
	LD    IMAG18,	 ARCVL; 	  ARCVL 2 次谐波功角 
	LD    ZREAL,	 10CH[0];	   U1  三次谐波   模长 
	LD    SUX01,	 10EH[0];	   U1  三次谐波   角度 
	LD    ZIMAG,	 18CH[0];	   I1  三次谐波   模长 
	LD    SUX23,	 18EH[0];	   I1  三次谐波   角度 
	LJMP  PLOOP; 
PCASE04:LD    SUN01,	 #12; 
	LD    REAL19,	 SUN23; 	  SUN23 3 次谐波功角象限值 
	LD    IMAG19,	 ARCVL; 	  ARCVL 3 次谐波功角 
	LD    ZREAL,	 110H[0];	   U1  四次谐波   模长 
	LD    SUX01,	 112H[0];	   U1  四次谐波   角度 
	LD    ZIMAG,	 190H[0];	   I1  四次谐波   模长 
	LD    SUX23,	 192H[0];	   I1  四次谐波   角度 
	LJMP  PLOOP; 
PCASE05:LD    SUN01,	 #16; 
	LD    REAL20,	 SUN23; 	  SUN23 4 次谐波功角象限值 
	LD    IMAG20,	 ARCVL; 	  ARCVL 4 次谐波功角 
	LD    ZREAL,	 114H[0];	   U1	5 次谐波模长 
	LD    SUX01,	 116H[0];	   U1	5 次谐波角度 
	LD    ZIMAG,	 194H[0];	   I1	5 次谐波模长 
	LD    SUX23,	 196H[0];	   I1	5 次谐波角度 
	LJMP  PLOOP; 
PCASE06:LD    SUN01,	 #20; 
	LD    REAL21,	 SUN23; 	  SUN23 5 次谐波功角象限值 
	LD    IMAG21,	 ARCVL; 	  ARCVL 5 次谐波功角 
	LD    ZREAL,	 118H[0];	   U1	6 次谐波模长 
	LD    SUX01,	 11AH[0];	   U1	6 次谐波角度 
	LD    ZIMAG,	 198H[0];	   I1	6 次谐波模长 
	LD    SUX23,	 19AH[0];	   I1	6 次谐波角度 
	LJMP  PLOOP; 
PCASE07:LD    SUN01,	 #24; 
	LD    REAL22,	 SUN23; 	  SUN23 6 次谐波功角象限值 
	LD    IMAG22,	 ARCVL; 	  ARCVL 6 次谐波功角 
	LD    ZREAL,	 11CH[0];	   U1	7 次谐波模长 
	LD    SUX01,	 11EH[0];	   U1	7 次谐波角度 
	LD    ZIMAG,	 19CH[0];	   I1	7 次谐波模长 
	LD    SUX23,	 19EH[0];	   I1	7 次谐波角度 
	LJMP  PLOOP; 
PCASE08:LD    SUN01,	 #28; 
	LD    REAL23,	 SUN23; 	  SUN23 7 次谐波功角象限值 
	LD    IMAG23,	 ARCVL; 	  ARCVL 7 次谐波功角 
	LD    ZREAL,	 120H[0];	   U1	8 次谐波模长 
	LD    SUX01,	 122H[0];	   U1	8 次谐波角度 
	LD    ZIMAG,	 1A0H[0];	   I1	8 次谐波模长 
	LD    SUX23,	 1A2H[0];	   I1	8 次谐波角度 
	LJMP  PLOOP; 
PCASE09:LD    SUN01,	 #32; 
	LD    REAL24,	 SUN23; 	  SUN23 8 次谐波功角象限值 
	LD    IMAG24,	 ARCVL; 	  ARCVL 8 次谐波功角 
	LD    ZREAL,	 124H[0];	   U1	9 次谐波模长 
	LD    SUX01,	 126H[0];	   U1	9 次谐波角度 
	LD    ZIMAG,	 1A4H[0];	   I1	9 次谐波模长 
	LD    SUX23,	 1A6H[0];	   I1	9 次谐波角度 
	LJMP  PLOOP; 
PCASE10:LD    SUN01,	 #36; 
	LD    REAL25,	 SUN23; 	  SUN23  9 次谐波功角象限值 
	LD    IMAG25,	 ARCVL; 	  ARCVL  9 次谐波功角 
	LD    ZREAL,	 128H[0];	   U1	10 次谐波模长 
	LD    SUX01,	 12AH[0];	   U1	10 次谐波角度 
	LD    ZIMAG,	 1A8H[0];	   I1	10 次谐波模长 
	LD    SUX23,	 1AAH[0];	   I1	10 次谐波角度 
	LJMP  PLOOP; 
PCASE11:LD    SUN01,	 #40; 
	LD    REAL26,	 SUN23; 	  SUN23 10 次谐波功角象限值 
	LD    IMAG26,	 ARCVL; 	  ARCVL 10 次谐波功角 
	LD    ZREAL,	 12CH[0];	   U1	11 次谐波模长 
	LD    SUX01,	 12EH[0];	   U1	11 次谐波角度 
	LD    ZIMAG,	 1ACH[0];	   I1	11 次谐波模长 
	LD    SUX23,	 1AEH[0];	   I1	11 次谐波角度 
	LJMP  PLOOP; 
PCASE12:LD    SUN01,	 #44; 
	LD    REAL27,	 SUN23; 	  SUN23 11 次谐波功角象限值 
	LD    IMAG27,	 ARCVL; 	  ARCVL 11 次谐波功角 
	LD    ZREAL,	 130H[0];	   U1	12 次谐波模长 
	LD    SUX01,	 132H[0];	   U1	12 次谐波角度 
	LD    ZIMAG,	 1B0H[0];	   I1	12 次谐波模长 
	LD    SUX23,	 1B2H[0];	   I1	12 次谐波角度 
	LJMP  PLOOP; 
PCASE13:LD    SUN01,	 #48; 
	LD    REAL28,	 SUN23; 	  SUN23 12 次谐波功角象限值 
	LD    IMAG28,	 ARCVL; 	  ARCVL 12 次谐波功角 
	LD    ZREAL,	 134H[0];	   U1	13 次谐波模长 
	LD    SUX01,	 136H[0];	   U1	13 次谐波角度 
	LD    ZIMAG,	 1B4H[0];	   I1	13 次谐波模长 
	LD    SUX23,	 1B6H[0];	   I1	13 次谐波角度 
	LJMP  PLOOP; 
PCASE14:LD    ZREAL,	 138H[0];	  U1	1-13次谐波有效值 
	LD    ZIMAG,	 1B8H[0];	  I1	1-13次谐波 
	LD    REAL29,	 SUN23; 	  SUN23 13次谐波功角象限值 
	LD    IMAG29,	 ARCVL; 	  ARCVL 13次谐波功角 
	SJMP  SPOWER; 
JXNARC: DCL   PCASE02; 
	DCL   PCASE03; 
	DCL   PCASE04; 
	DCL   PCASE05; 
	DCL   PCASE06; 
	DCL   PCASE07; 
	DCL   PCASE08; 
	DCL   PCASE09; 
	DCL   PCASE10; 
	DCL   PCASE11; 
	DCL   PCASE12; 
	DCL   PCASE13; 
	DCL   PCASE14; 
SPOWER: MUL   SUX,	 ZREAL,    ZIMAG;  实在功率 S 
	DIV   SUX,	 #4000;  40U*40I 8S=UI/10/20/20 
	LD    SUN01,	 SUX01; 	   实在功率 
	MUL   SUX,	 SUP01,    DCSK; 
	DIV   SUX,	 #10000; 
	LD    SUP01,	 SUX01; 
	CLR   SUP23; 
	MUL   SUX,	 SUQ01,    DCSK; 
	DIV   SUX,	 #10000; 
	LD    SUQ01,	 SUX01; 
	CLR   SUQ23; 
	LDB   WSR,	 #00H 
	;SUP  有功功率	 U1*I1*COS(t) 
	;SUQ  无功功率	 U1*I1*SIN(t) 
	;SUN01实在功率	 U1*I1 
	;WORK 基波功角 
	RET 
 
 
	 PUBLIC PQCOS;/* SUP SUQ   COSVL ARCVL	     */ 
	 CSEG	AT 0FB5000H 
PQCOS:	 LDB   WSR,	  #WSR_200H_27FH 
	 CLR   WORK;	  P Q  互换标志 
	 LD    ZREAL,	  SUP; 
	 LD    ZIMAG,	  SUQ; 
	 JBC   ZREALH,	  07H,	    PQ000;if ZREAL<0 then ZREAL=-ZREAL; 
	 NEG   ZREAL; 
PQ000:	 JBC   ZIMAGH,	  07H,	    PQ001;if ZREAL<0 then ZREAL=-ZREAL; 
	 NEG   ZIMAG; 
PQ001:	 CMP   ZIMAG,	  ZREAL;    tg*=IMAG/REAL; 
	 JLE   PQ002;		    IF	IMAG<=REAL  THEN  JUMP	 PQ002; 
	 XCH   ZREAL,	  ZIMAG; 
	 LD    WORK,	  #0FFFFH;  P Q  互换标志 
PQ002:	 LD    SUX23,	  ZIMAG;    IMAG<=REAL; 
	 CLR   SUX01; 
	 CMP   SUX23,	  R0; 
	 JE    PQDIV; 
	 LD    SUX01,	  #0FFFFH; 
	 DEC   SUX23;		    SUX=(IMAG*65536)-1; 
	 SHRAL SUX,	  #01H;     SUX=SUX/2 
PQDIV:	 CMP   R0,	  ZREAL; 
	 JNE   PQ003; 
	 LD    SUX01,	  #07FFFH;  IF ZREAL=0	THEN SUX01=07FFFH=TANVL 
	 SJMP  PQ004; 
PQ003:	 CMP   ZREAL,	  #01H; 
	 JE    PQ004; 
	 CMP   ZREAL,	  #02H; 
	 JNE   PQMMM; 
	 SHRAL SUX,	  #01H; 
	 SJMP  PQ004; 
PQMMM:	 DIV   SUX,	  ZREAL; 
PQ004:	 LD    TANVL,	  SUX01; 
;;;;;;;;;;;;; 由TANVL对分法查找角度 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
	 CLR   DCZO;			    FIRST=0; 
	 LD    DCSK,	  #4500;	    LAST=4500; 
PQ005:	 ADD   SUN01,	  DCZO,     DCSK; 
	 SHR   SUN01,	  #01H; 	    SUN01=(FIRST+LAST)/2; 
	 LD    SUN23,	  SUN01; 
	 SHL   SUN23,	  #01H; 
	 LD    ADDRESSL,  #lsw	TAN; 
	 LD    ADDRESSH,  #msw	TAN; 
	 ADD   ADDRESSL,  SUN23; 
	 ADDC  ADDRESSH,  R0; 
	 ELD   SUX01,	  [ADDRESS]; TAN[]     ;SUX01=TAN(SUN23); 
	 CMP   DCZO,	  DCSK; 
	 JGE   PQ007;			    IF	FIRST>=LAST    THEN  JUMP  XN007; 
	 CMP   DCZO,	  SUN01; 
	 JE    PQ007; 
	 CMP   DCSK,	  SUN01; 
	 JE    PQ007; 
	 SUB   SUN23,	  DCSK,     DCZO; 
	 CMP   SUN23,	  #01H; 
	 JLE   PQ007; 
	 CMP   TANVL,	  SUX01; 
	 JE    PQ007; 
	 JGT   PQ006; 
	 LD    DCSK,	  SUN01;	    ;DCSK=SUN01=(FIRST+LAST)/2; 
	 SJMP  PQ005; 
PQ006:	 LD    DCZO,	  SUN01;	    ;DCZO=SUN01=(FIRST+LAST)/2; 
	 SJMP  PQ005; 
PQ007:	 LD    DCZO,	  SUN01; 
	 JBS   WORK,	  07H,	   PQ008; 
	 NEG   DCZO; 
	 ADD   DCZO,	  #9000; 
PQ008:	 LD    ARCVL,	  DCZO;//COS 
	 SHL   DCZO,	  #01H; 
	 LD    ADDRESSL,  #lsw	SIN; 
	 LD    ADDRESSH,  #msw	SIN; 
	 ADD   ADDRESSL,  DCZO; 
	 ADDC  ADDRESSH,  R0; 
	 ELD   COSVL,	  [ADDRESS]; 
	 MULU  SUY,	  COSVL,    #2000; 
	 LD    COSVL,	  SUY23; 
	 JBS   SUP23,	  07H,	     PQA23; 
	 JBS   SUQ23,	  07H,	     PQA04; 
PQA01:	 NEG   ARCVL; 
	 ADD   ARCVL,	  #9000; 
	 SJMP  PQEND; 
PQA04:	 NEG   ARCVL; 
	 ADD   ARCVL,	  #9000; 
	 NEG   ARCVL; 
	 SJMP  PQEND; 
PQA23:	 NEG   COSVL; 
	 JBS   SUQ23,	  07H,	     PQA03; 
PQA02:	 ADD   ARCVL,	  #9000; 
	 SJMP  PQEND; 
PQA03:	 ADD   ARCVL,	  #9000; 
	 NEG   ARCVL; 
PQEND:	 LDB   WSR,	  #00H 
	 RET 
 
PUBLIC	FFTARC 
FFTARC: LDB   WSR,	 #WSR_200H_27FH 
	ADD   WORK,	 #128;	//180.00C 
	LD    IMAG00,	 [WORK]; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG00,	 #1FFFH; 
	JLE   NEXTB01; 
	SUB   IMAG00,	 #4000H; 
NEXTB01:LD    IMAG01,	 [WORK]; 
	AND   IMAG01,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG01,	 #1FFFH; 
	JLE   NEXTB02; 
	SUB   IMAG01,	 #4000H; 
NEXTB02:LD    IMAG02,	 [WORK]; 
	AND   IMAG02,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG02,	 #1FFFH; 
	JLE   NEXTB03; 
	SUB   IMAG02,	 #4000H; 
NEXTB03:LD    IMAG03,	 [WORK]; 
	AND   IMAG03,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG03,	 #1FFFH; 
	JLE   NEXTB04; 
	SUB   IMAG03,	 #4000H; 
NEXTB04:LD    IMAG04,	 [WORK]; 
	AND   IMAG04,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG04,	 #1FFFH; 
	JLE   NEXTB05; 
	SUB   IMAG04,	 #4000H; 
NEXTB05:LD    IMAG05,	 [WORK]; 
	AND   IMAG05,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG05,	 #1FFFH; 
	JLE   NEXTB06; 
	SUB   IMAG05,	 #4000H; 
NEXTB06:LD    IMAG06,	 [WORK]; 
	AND   IMAG06,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG06,	 #1FFFH; 
	JLE   NEXTB07; 
	SUB   IMAG06,	 #4000H; 
NEXTB07:LD    IMAG07,	 [WORK]; 
	AND   IMAG07,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG07,	 #1FFFH; 
	JLE   NEXTB08; 
	SUB   IMAG07,	 #4000H; 
NEXTB08:LD    IMAG08,	 [WORK]; 
	AND   IMAG08,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG08,	 #1FFFH; 
	JLE   NEXTB09; 
	SUB   IMAG08,	 #4000H; 
NEXTB09:LD    IMAG09,	 [WORK]; 
	AND   IMAG09,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG09,	 #1FFFH; 
	JLE   NEXTB10; 
	SUB   IMAG09,	 #4000H; 
NEXTB10:LD    IMAG10,	 [WORK]; 
	AND   IMAG10,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG10,	 #1FFFH; 
	JLE   NEXTB11; 
	SUB   IMAG10,	 #4000H; 
NEXTB11:LD    IMAG11,	 [WORK]; 
	AND   IMAG11,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG11,	 #1FFFH; 
	JLE   NEXTB12; 
	SUB   IMAG11,	 #4000H; 
NEXTB12:LD    IMAG12,	 [WORK]; 
	AND   IMAG12,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG12,	 #1FFFH; 
	JLE   NEXTB13; 
	SUB   IMAG12,	 #4000H; 
NEXTB13:LD    IMAG13,	 [WORK]; 
	AND   IMAG13,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG13,	 #1FFFH; 
	JLE   NEXTB14; 
	SUB   IMAG13,	 #4000H; 
NEXTB14:LD    IMAG14,	 [WORK]; 
	AND   IMAG14,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG14,	 #1FFFH; 
	JLE   NEXTB15; 
	SUB   IMAG14,	 #4000H; 
NEXTB15:LD    IMAG15,	 [WORK]; 
	AND   IMAG15,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG15,	 #1FFFH; 
	JLE   NEXTB16; 
	SUB   IMAG15,	 #4000H; 
NEXTB16:LD    IMAG16,	 [WORK]; 
	AND   IMAG16,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG16,	 #1FFFH; 
	JLE   NEXTB17; 
	SUB   IMAG16,	 #4000H; 
NEXTB17:LD    IMAG17,	 [WORK]; 
	AND   IMAG17,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG17,	 #1FFFH; 
	JLE   NEXTB18; 
	SUB   IMAG17,	 #4000H; 
NEXTB18:LD    IMAG18,	 [WORK]; 
	AND   IMAG18,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG18,	 #1FFFH; 
	JLE   NEXTB19; 
	SUB   IMAG18,	 #4000H; 
NEXTB19:LD    IMAG19,	 [WORK]; 
	AND   IMAG19,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG19,	 #1FFFH; 
	JLE   NEXTB20; 
	SUB   IMAG19,	 #4000H; 
NEXTB20:LD    IMAG20,	 [WORK]; 
	AND   IMAG20,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG20,	 #1FFFH; 
	JLE   NEXTB21; 
	SUB   IMAG20,	 #4000H; 
NEXTB21:LD    IMAG21,	 [WORK]; 
	AND   IMAG21,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG21,	 #1FFFH; 
	JLE   NEXTB22; 
	SUB   IMAG21,	 #4000H; 
NEXTB22:LD    IMAG22,	 [WORK]; 
	AND   IMAG22,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG22,	 #1FFFH; 
	JLE   NEXTB23; 
	SUB   IMAG22,	 #4000H; 
NEXTB23:LD    IMAG23,	 [WORK]; 
	AND   IMAG23,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG23,	 #1FFFH; 
	JLE   NEXTB24; 
	SUB   IMAG23,	 #4000H; 
NEXTB24:LD    IMAG24,	 [WORK]; 
	AND   IMAG24,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG24,	 #1FFFH; 
	JLE   NEXTB25; 
	SUB   IMAG24,	 #4000H; 
NEXTB25:LD    IMAG25,	 [WORK]; 
	AND   IMAG25,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG25,	 #1FFFH; 
	JLE   NEXTB26; 
	SUB   IMAG25,	 #4000H; 
NEXTB26:LD    IMAG26,	 [WORK]; 
	AND   IMAG26,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG26,	 #1FFFH; 
	JLE   NEXTB27; 
	SUB   IMAG26,	 #4000H; 
NEXTB27:LD    IMAG27,	 [WORK]; 
	AND   IMAG27,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG27,	 #1FFFH; 
	JLE   NEXTB28; 
	SUB   IMAG27,	 #4000H; 
NEXTB28:LD    IMAG28,	 [WORK]; 
	AND   IMAG28,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG28,	 #1FFFH; 
	JLE   NEXTB29; 
	SUB   IMAG28,	 #4000H; 
NEXTB29:LD    IMAG29,	 [WORK]; 
	AND   IMAG29,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG29,	 #1FFFH; 
	JLE   NEXTB30; 
	SUB   IMAG29,	 #4000H; 
NEXTB30:LD    IMAG30,	 [WORK]; 
	AND   IMAG30,	 #3FFFH; 
	ADD   WORK,	 #0008H; 
	CMP   IMAG30,	 #1FFFH; 
	JLE   NEXTB31; 
	SUB   IMAG30,	 #4000H; 
NEXTB31:LD    IMAG31,	 [WORK]; 
	AND   IMAG31,	 #3FFFH; 
	CMP   IMAG31,	 #1FFFH; 
	JLE   NEXTBDE; 
	SUB   IMAG31,	 #4000H; 
NEXTBDE:CLR   REAL00; 
	CLR   REAL01; 
	CLR   REAL02; 
	CLR   REAL03; 
	CLR   REAL04; 
	CLR   REAL05; 
	CLR   REAL06; 
	CLR   REAL07; 
	CLR   REAL08; 
	CLR   REAL09; 
	CLR   REAL10; 
	CLR   REAL11; 
	CLR   REAL12; 
	CLR   REAL13; 
	CLR   REAL14; 
	CLR   REAL15; 
	CLR   REAL16; 
	CLR   REAL17; 
	CLR   REAL18; 
	CLR   REAL19; 
	CLR   REAL20; 
	CLR   REAL21; 
	CLR   REAL22; 
	CLR   REAL23; 
	CLR   REAL24; 
	CLR   REAL25; 
	CLR   REAL26; 
	CLR   REAL27; 
	CLR   REAL28; 
	CLR   REAL29; 
	CLR   REAL30; 
	CLR   REAL31; 
	XCH   REAL01,	 REAL16; 
	XCH   IMAG01,	 IMAG16; 
BF00X01:XCH   REAL02,	 REAL08; 
	XCH   IMAG02,	 IMAG08; 
BF00X02:XCH   REAL03,	 REAL24; 
	XCH   IMAG03,	 IMAG24; 
BF00X03:XCH   REAL05,	 REAL20; 
	XCH   IMAG05,	 IMAG20; 
BF00X04:XCH   REAL06,	 REAL12; 
	XCH   IMAG06,	 IMAG12; 
BF00X05:XCH   REAL07,	 REAL28; 
	XCH   IMAG07,	 IMAG28; 
BF00X06:XCH   REAL09,	 REAL18; 
	XCH   IMAG09,	 IMAG18; 
BF00X07:XCH   REAL11,	 REAL26; 
	XCH   IMAG11,	 IMAG26; 
BF00X08:XCH   REAL13,	 REAL22; 
	XCH   IMAG13,	 IMAG22; 
BF00X09:XCH   REAL15,	 REAL30; 
	XCH   IMAG15,	 IMAG30; 
BF00X10:XCH   REAL19,	 REAL25; 
	XCH   IMAG19,	 IMAG25; 
BF00X11:XCH   REAL23,	 REAL29; 
	XCH   IMAG23,	 IMAG29; 
;;;;;;;;;;;;;;;;第一次碟形处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
BF01X00:SUB   ZIMAG,	 IMAG00,   IMAG01;     X01=X00-X01; 
	LD    IMAG01,	 ZIMAG; 
BF01X01:SUB   ZIMAG,	 IMAG02,   IMAG03;     X03=X02-X03; 
	LD    IMAG03,	 ZIMAG; 
BF01X02:SUB   ZIMAG,	 IMAG04,   IMAG05;     X05=X04-X05; 
	LD    IMAG05,	 ZIMAG; 
BF01X03:SUB   ZIMAG,	 IMAG06,   IMAG07;     X07=X06-X07; 
	LD    IMAG07,	 ZIMAG; 
BF01X04:SUB   ZIMAG,	 IMAG08,   IMAG09;     X09=X08-X09; 
	LD    IMAG09,	 ZIMAG; 
BF01X05:SUB   ZIMAG,	 IMAG10,   IMAG11;     X11=X10-X11; 
	LD    IMAG11,	 ZIMAG; 
BF01X06:SUB   ZIMAG,	 IMAG12,   IMAG13;     X13=X12-X13; 
	LD    IMAG13,	 ZIMAG; 
BF01X07:SUB   ZIMAG,	 IMAG14,   IMAG15;     X15=X14-X15; 
	LD    IMAG15,	 ZIMAG; 
BF01X08:SUB   ZIMAG,	 IMAG16,   IMAG17;     X17=X16-X17; 
	LD    IMAG17,	 ZIMAG; 
BF01X09:SUB   ZIMAG,	 IMAG18,   IMAG19;     X19=X18-X19; 
	LD    IMAG19,	 ZIMAG; 
BF01X10:SUB   ZIMAG,	 IMAG20,   IMAG21;     X21=X20-X21; 
	LD    IMAG21,	 ZIMAG; 
BF01X11:SUB   ZIMAG,	 IMAG22,   IMAG23;     X23=X22-X23; 
	LD    IMAG23,	 ZIMAG; 
BF01X12:SUB   ZIMAG,	 IMAG24,   IMAG25;     X25=X24-X25; 
	LD    IMAG25,	 ZIMAG; 
BF01X13:SUB   ZIMAG,	 IMAG26,   IMAG27;     X27=X26-X27; 
	LD    IMAG27,	 ZIMAG; 
BF01X14:SUB   ZIMAG,	 IMAG28,   IMAG29;     X29=X28-X29; 
	LD    IMAG29,	 ZIMAG; 
BF01X15:SUB   ZIMAG,	 IMAG30,   IMAG31;     X31=X30-X31; 
	LD    IMAG31,	 ZIMAG; 
;;;;;;;;;;;;;;;;第二次碟形处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
BF02X00:LD    REAL01,	 IMAG03;	   X01=X01+X03*(-I); 
BF02X01:LD    REAL05,	 IMAG07;	   X07=X05-X07*(-I); 
BF02X02:LD    REAL09,	 IMAG11;	   X11=X09-X11*(-I); 
BF02X03:LD    REAL13,	 IMAG15;	   X15=X13-X15*(-I); 
BF02X04:LD    REAL17,	 IMAG19;	   X19=X17-X19*(-I); 
BF02X05:LD    REAL21,	 IMAG23;	   X23=X21-X23*(-I); 
BF02X06:LD    REAL25,	 IMAG27;	   X27=X25-X27*(-I); 
BF02X07:LD    REAL29,	 IMAG31;	   X31=X29-X31*(-I); 
;;;;;;;;;;;;;;;;第三次碟形处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
BF03X00:LD    COSVL,	 #23170;	   COSVL=23170/32768=0.7071=SINVL; 
       ;X1=X1+W4*X5;  X1.REAL + 0.7071*(X5.REAL+X5.IMAG)+[X1.IMAG + 0.7071*(X5.IMAG-X5.REAL)]*I 
       ;X5=X1-W4*X5;  X1.REAL - 0.7071*(X5.REAL+X5.IMAG)+[X1.IMAG - 0.7071*(X5.IMAG-X5.REAL)]*I 
       ;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG05,   REAL05; ZREAL=X5.IMAG-X5.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X5.IMAG-X5.REAL) 
	ADD   ZREAL,	 REAL05,   IMAG05; ZREAL=X5.REAL+X5.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X5.REAL+X5.IMAG) 
	ADD   REAL01,	 SUP23; 	   X1.REAL+SUP23 + (X1.IMAG+SUQ23)*I 
	ADD   IMAG01,	 SUQ23; 
BF03X01:;X09=X09+W4*X13;  X09.REAL + 0.7071*(X13.REAL+X13.IMAG)+[X09.IMAG + 0.7071*(X5.IMAG-X13.REAL)]*I 
	;X13=X09-W4*X13;  X09.REAL - 0.7071*(X13.REAL+X13.IMAG)+[X09.IMAG - 0.7071*(X5.IMAG-X13.REAL)]*I 
	;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG13,   REAL13; ZREAL=X13.IMAG-X13.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X13.IMAG-X13.REAL) 
	ADD   ZREAL,	 REAL13,   IMAG13; ZREAL=X13.REAL+X13.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X13.REAL+X13.IMAG) 
	ADD   REAL09,	 SUP23; 	   X09.REAL+SUP23 + (X09.IMAG+SUQ23)*I 
	ADD   IMAG09,	 SUQ23; 
BF03X02:;X17=X17+W4*X21;  X17.REAL + 0.7071*(X21.REAL+X21.IMAG)+[X17.IMAG + 0.7071*(X21.IMAG-X21.REAL)]*I 
	;X21=X17-W4*X21;  X17.REAL - 0.7071*(X21.REAL+X21.IMAG)+[X17.IMAG - 0.7071*(X21.IMAG-X21.REAL)]*I 
	;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG21,   REAL21; ZREAL=X21.IMAG-X21.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X21.IMAG-X21.REAL) 
	ADD   ZREAL,	 REAL21,   IMAG21; ZREAL=X21.REAL+X21.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X21.REAL+X21.IMAG) 
	ADD   REAL17,	 SUP23; 	   X17.REAL+SUP23 + (X17.IMAG+SUQ23)*I 
	ADD   IMAG17,	 SUQ23; 
BF03X03:;X25=X25+W4*X29;  X25.REAL + 0.7071*(X29.REAL+X29.IMAG)+[X25.IMAG + 0.7071*(X29.IMAG-X29.REAL)]*I 
	;X29=X25-W4*X29;  X25.REAL - 0.7071*(X29.REAL+X29.IMAG)+[X25.IMAG - 0.7071*(X29.IMAG-X29.REAL)]*I 
	;W4=0.7071-0.7071*I; 
	SUB   ZREAL,	 IMAG29,   REAL29; ZREAL=X29.IMAG-X29.REAL 
	MUL   SUQ,	 ZREAL,    COSVL; 
	SHLL  SUQ,	 #01H;		   SUQ23=0.7071*(X29.IMAG-X29.REAL) 
	ADD   ZREAL,	 REAL29,   IMAG29; ZREAL=X29.REAL+X29.IMAG 
	MUL   SUP,	 ZREAL,    COSVL; 
	SHLL  SUP,	 #01H;		   SUP23=0.7071*(X29.REAL+X29.IMAG) 
	ADD   REAL25,	 SUP23; 	   X25.REAL+SUP23 + (X25.IMAG+SUQ23)*I 
	ADD   IMAG25,	 SUQ23; 
;;;;;;;;;;;;;;; 14位AD/4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
	SHRA  REAL01,	 #02H; 
	SHRA  REAL09,	 #02H; 
	SHRA  REAL17,	 #02H; 
	SHRA  REAL25,	 #02H; 
	SHRA  IMAG01,	 #02H; 
	SHRA  IMAG09,	 #02H; 
	SHRA  IMAG17,	 #02H; 
	SHRA  IMAG25,	 #02H; 
;;;;;;;;;;;;;;;;第四次碟形处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
BF04X00:LD    COSVL,	 #30274; W2;	   COSVL= 30274/32768=COS(-11.25*2); 
	LD    SINVL,	 #52996; W2;	   SINVL=-12540/32768=SIN(-11.25*2); 
	;X01=X01+W2*X09;  X01.REAL +(COSVL*X09.REAL - SINVL*X09.IMAG)+[X01.IMAG +(COSVL*X09.IMAG + SINVL*X09.REAL)]*I 
	;X09=X01-W2*X09;  X01.REAL -(COSVL*X09.REAL - SINVL*X09.IMAG)+[X01.IMAG -(COSVL*X09.IMAG + SINVL*X09.REAL)]*I 
	;W02= 30274/32768-12540/32768*I; 
	MUL   SUX,	 REAL09,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG09,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X09.REAL - SINVL*X09.IMAG; 
	MUL   SUX,	 IMAG09,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL09,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X09.IMAG + SINVL*X09.REAL; 
	ADD   REAL01,	 SUQ23; 	   X01.REAL + SUQ23+ 
	ADD   IMAG01,	 SUP23; 	  (X01.IMAG + SUP23)*I 
BF04X01:;X17=X17+W2*X25;  X17.REAL +(COSVL*X25.REAL - SINVL*X25.IMAG)+[X17.IMAG +(COSVL*X25.IMAG + SINVL*X25.REAL)]*I 
	;X25=X17-W2*X25;  X17.REAL -(COSVL*X25.REAL - SINVL*X25.IMAG)+[X17.IMAG -(COSVL*X25.IMAG + SINVL*X25.REAL)]*I 
	;W02= 30274/32768-12540/32768*I; 
	MUL   SUX,	 REAL25,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG25,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X25.REAL - SINVL*X25.IMAG; 
	MUL   SUX,	 IMAG25,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL25,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X25.IMAG + SINVL*X25.REAL; 
	ADD   REAL17,	 SUQ23; 	   X17.REAL + SUQ23+ 
	ADD   IMAG17,	 SUP23; 	  (X17.IMAG + SUP23)*I 
;;;;;;;;;;;;;;;;第五次碟形处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
BF05X00:LD    COSVL,	 #32138;   W01	   COSVL= 32138/32768=COS(-11.25*1); 
	LD    SINVL,	 #59143;   W01	   SINVL=-06393/32768=SIN(-11.25*1); 
	;X01=X01+W1*X17;  X01.REAL +(COSVL*X17.REAL - SINVL*X17.IMAG)+[X01.IMAG +(COSVL*X17.IMAG + SINVL*X17.REAL)]*I 
	;X17=X01-W1*X17;  X01.REAL -(COSVL*X17.REAL - SINVL*X17.IMAG)+[X01.IMAG -(COSVL*X17.IMAG + SINVL*X17.REAL)]*I 
	;W01=-32138/32768-06393/32768*I; 
	MUL   SUX,	 REAL17,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 IMAG17,   SINVL; 
	SHLL  SUY,	 #01H; 
	SUB   SUQ23,	 SUX23,    SUY23;  SUQ23=COSVL*X17.REAL - SINVL*X17.IMAG; 
	MUL   SUX,	 IMAG17,   COSVL; 
	SHLL  SUX,	 #01H; 
	MUL   SUY,	 REAL17,   SINVL; 
	SHLL  SUY,	 #01H; 
	ADD   SUP23,	 SUX23,    SUY23;  SUP23=COSVL*X17.IMAG + SINVL*X17.REAL; 
	ADD   REAL01,	 SUQ23; 	   X01.REAL + SUQ23+ 
	ADD   IMAG01,	 SUP23; 	  (X01.IMAG + SUP23)*I 
 
;;;;;;;;;;;;;;;;;;;;;;;;;基波分量;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
	CLR   SUY01; 
	CLR   SUY23; 
	CLR   WORK; 
	CLR   XBSUM01; 
	CLR   XBSUM23; 
	LD    SUN01,	 REAL01;	   基波分量 
	LD    SUN23,	 IMAG01; 
	LD    ZREAL,	 SUN01;   ZREAL=基波实部 
	LD    ZIMAG,	 SUN23;   ZIMAG=基波虚部 
	CLR   SUP01; 
	JBC   ZREALH,	 07H,	   XNB00;if ZREAL<0 then ZREAL=-ZREAL; 
	NEG   ZREAL; 
XNB00:	JBC   ZIMAGH,	 07H,	   XNB01;if ZREAL<0 then ZREAL=-ZREAL; 
	NEG   ZIMAG; 
XNB01:	CMP   ZIMAG,	 ZREAL;    tg*=IMAG/REAL; 
	JLE   XNB02;		   IF  IMAG<=REAL  THEN  JUMP	XNB02; 
	XCH   ZREAL,	 ZIMAG; 
	LD    SUP01,	 #0FFFFH;  45度标志 
 
XNB02:	LD    SUX23,	 ZIMAG;    IMAG<=REAL; 
	CLR   SUX01; 
	CMP   SUX23,	 R0; 
	JE    XDIVV; 
	LD    SUX01,	 #0FFFFH; 
	DEC   SUX23;		   SUX=(IMAG*65536)-1; 
	SHRAL SUX,	 #01H;	   SUX=SUX/2 
XDIVV:	CMP   R0,	 ZREAL; 
	JNE   XNB03; 
	LD    SUX01,	 #07FFFH;  IF ZREAL=0  THEN SUX01=07FFFH=TANVL 
	SJMP  XNB04; 
XNB03:	CMP   ZREAL,	 #01H; 
	JE    XNB04; 
	CMP   ZREAL,	 #02H; 
	JNE   XBMMM; 
	SHRAL SUX,	 #01H; 
	SJMP  XNB04; 
XBMMM:	DIV   SUX,	 ZREAL; 
XNB04:	LD    TANVL,	 SUX01; 
;;;;;;;;;;;;; 由TANVL对分法查找角度 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
	CLR   DCZO;			   FIRST=0; 
	LD    DCSK,	 #4500; 	   LAST=4500; 
XNB05:	ADD   SUQ01,	 DCZO,	   DCSK; 
	SHR   SUQ01,	 #01H;		   SUQ01=(FIRST+LAST)/2; 
	LD    SUQ23,	 SUQ01; 
	SHL   SUQ23,	 #01H; 
	LD    ADDRESSL,  #lsw  TAN; 
	LD    ADDRESSH,  #msw  TAN; 
	ADD   ADDRESSL,  SUQ23; 
	ADDC  ADDRESSH,  R0; 
	ELD   SUX01,	 [ADDRESS]; TAN[]     ;SUX01=TAN(SUQ23); 
	CMP   DCZO,	 DCSK; 
	JGE   XNB07;			   IF  FIRST>=LAST    THEN  JUMP  XNB07; 
	CMP   DCZO,	 SUQ01; 
	JE    XNB07; 
	CMP   DCSK,	 SUQ01; 
	JE    XNB07; 
	SUB   SUQ23,	 DCSK,	   DCZO; 
	CMP   SUQ23,	 #01H; 
	JLE   XNB07; 
	CMP   TANVL,	 SUX01; 
	JE    XNB07; 
	JGT   XNB06; 
	LD    DCSK,	 SUQ01; 	   ;DCSK=SUQ01=(FIRST+LAST)/2; 
	SJMP  XNB05; 
XNB06:	LD    DCZO,	 SUQ01; 	   ;DCZO=SUQ01=(FIRST+LAST)/2; 
	SJMP  XNB05; 
XNB07:	LD    ARCVL,	 SUQ01; 
	SHL   ARCVL,	 #01H; 
	LD    ADDRESSL,  #lsw  SIN; 
	LD    ADDRESSH,  #msw  SIN; 
	ADD   ADDRESSL,  ARCVL; 
	ADDC  ADDRESSH,  R0; 
	ELD   SINVL,	 [ADDRESS];SIN[] 
 
	LD    DCZO,	 #18000; 
	SUB   DCZO,	 ARCVL; 
	LD    ADDRESSL,  #lsw  SIN; 
	LD    ADDRESSH,  #msw  SIN; 
	ADD   ADDRESSL,  DCZO; 
	ADDC  ADDRESSH,  R0; 
	ELD   COSVL,	 [ADDRESS];  SIN[] 
 
	MUL   SUX,	 ZIMAG,    SINVL; 
	MUL   SUQ,	 ZREAL,    COSVL; 
	ADD   SUX01,	 SUQ01; 
	ADDC  SUX23,	 R0; 
	ADD   SUX23,	 SUQ23; 	  模长=AD值=幅值*8 
	MUL   SUQ,	 SUX23,    ADWINDOWS;5DC9H=(10000/1706)*32768/8; 
	SHLL  SUQ,	 #01H; 
	LD    SUX23,	 SUQ23; 
	MUL   SUQ,	 SUX23,    TEMPERATURE; 
	DIV   SUQ,	 #10000; 
	LD    SUX23,	 SUQ01; 
	LD    WTMP,	 SUX23; 
	ADD   XBSUM01,	 SUX23; 
	ADDC  XBSUM23,	 R0; 
	MUL   SUQ,	 SUX23,    SUX23; 
	ADD   SUY01,	 SUQ01; 
	ADDC  SUY23,	 R0; 
	ADD   SUY23,	 SUQ23; 
	JBC   SUP01,	 0H,	   XNB08; 
	LD    SUP01,	 #18000; 
	SUB   SUP01,	 ARCVL; 
	LD    ARCVL,	 SUP01; 
XNB08:	SHR   ARCVL,	 #01H; 
	CMP   SUN01,	 R0; 
	JGE   B01OR04; 
B02OR03:CMP   SUN23,	 R0; 
	JGE   B0002; 
B0003:	LD    SUX01,	 #47536;	    47536=-18000; 
	ADD   SUX01,	 ARCVL; 
	SJMP  SQB00; 
B0002:	LD    SUX01,	 #18000; 
	SUB   SUX01,	 ARCVL; 
	SJMP  SQB00; 
B01OR04:CMP   SUN23,	 R0; 
	JGE   B0001; 
B0004:	LD    SUX01,	 ARCVL; 
	NEG   SUX01; 
	SJMP  SQB00; 
B0001:	LD    SUX01,	 ARCVL; 
SQB00:	LD    REAL01,	 WTMP;		  基波模长 
	LD    IMAG01,	 SUX01; 	  基波角度 
	LD    COSVL,	 SUX01; 
	LDB   WSR,	 #00H 
	RET 
 
;;积分电度:=DCZO*SUX/(65536*450)=DCZO*146*SUX/(65536*65536); 
PUBLIC	YwCalc 
YwCalc: MULU  SUY,	 DCZO,	 #146; 
	MULU  SUP,	 SUX01,  SUY01; 
	MULU  SUQ,	 SUX23,  SUY23; 
	LD    ZREAL,	 SUP23; 
	LD    ZIMAG,	 SUQ01; 
	MULU  XBSUM,	 SUX01,  SUY23; 
	ADD   ZREAL,	 XBSUM01; 
	ADDC  ZIMAG,	 XBSUM23; 
	ADDC  SUQ23,	 R0; 
	MULU  XBSUM,	 SUX23,  SUY01; 
	ADD   ZREAL,	 XBSUM01; 
	ADDC  ZIMAG,	 XBSUM23; 
	ADDC  SUQ23,	 R0; 
	LD    SUP23,	 ZREAL; 
	LD    SUQ01,	 ZIMAG; 
	ELD   SUX01,	 [SUN]; 
	ELD   SUX23,	2[SUN]; 
	ELD   SUY01,	4[SUN]; 
	ELD   SUY23,	6[SUN]; 
	ADD   SUP01,	SUX01; 
	ADDC  SUP23,	SUX23; 
	ADDC  SUQ01,	SUY01; 
	ADDC  SUQ23,	SUY23; 
	EST   SUP01,	 [SUN]; 
	EST   SUP23,	2[SUN]; 
	EST   SUQ01,	4[SUN]; 
	EST   SUQ23,	6[SUN]; 
	RET 
 
 
PUBLIC	FFTUS;/* WORK=&Uab WTMP=&Ub TEMPERATURE DCZO,DCSK 斜率	*/ 
FFTUS:	CLR   ARCVL; 
	BR    FORN00; 
 
UB00:	LD    ZIMAG,	 [WTMP]; 
	AND   ZIMAG,	 #3FFFH; 
	CMP   ZIMAG,	 #1FFFH; 
	JLE   NEXTUB0; 
	SUB   ZIMAG,	 #4000H; 
NEXTUB0:MUL   SUQ,	 ZIMAG,    DCSK; 
	DIV   SUQ,	 #10000; 
	LD    SUN01,	 SUQ01;    // UB=SUN01; 
	ADD   WTMP,	 #0008H; 
 
UAB0:	LD    ZIMAG,	 [WORK]; 
	AND   ZIMAG,	 #3FFFH; 
	CMP   ZIMAG,	 #1FFFH; 
	JLE   NEXTUAB; 
	SUB   ZIMAG,	 #4000H; 
NEXTUAB:MUL   SUQ,	 ZIMAG,    TEMPERATURE; 
	DIV   SUQ,	 #10000; 
	ADD   SUQ01,	 SUN01;    /* UAB+UB  */ 
	CMP   SUQ01,	 R0; 
	JGE   NUAB; 
	ADD   SUQ01,	 #4000H; 
NUAB:	ST    SUQ01,	 [WORK]; 
	ADD   WORK,	 #0002H; 
 
UCB0:	LD    ZIMAG,	 [WORK];   /* UCB  */ 
	AND   ZIMAG,	 #3FFFH; 
	CMP   ZIMAG,	 #1FFFH; 
	JLE   NEXTUCB; 
	SUB   ZIMAG,	 #4000H; 
NEXTUCB:MUL   SUQ,	 ZIMAG,    DCZO; 
	DIV   SUQ,	 #10000; 
	ADD   SUQ01,	 SUN01;    /* UCB+UB */ 
	CMP   SUQ01,	 R0; 
	JGE   NUCB; 
	ADD   SUQ01,	 #4000H; 
NUCB:	ST    SUQ01,	 [WORK]; 
	ADD   WORK,	 #0006H; 
 
	INC   ARCVL; 
FORN00: CMP   ARCVL,	 #32; 
	BNC   UB00; 
 
	RET 
 
PUBLIC	YCWND 
YCWND:	MUL   SUY,	 DCZO,	 DCSK; 
	DIV   SUY,	 #4000; 
	LD    DCSK,	 SUY; 
	RET; 
 
PUBLIC	DCWND 
DCWND:	MUL   SUY,	 DCZO,	 DCSK; 
	DIV   SUY,	 #5000; 
	LD    DCSK,	 SUY; 
	RET; 
 
PUBLIC	PQWND 
PQWND:	MUL   SUY,	 DCZO,	 DCSK; 
	DIV   SUY,	 #200; 
	MUL   SUP,	 SUY; 
	DIV   SUP,	 #20000; 
	MUL   SUQ,	 SUY; 
	DIV   SUQ,	 #20000; 
 
	MUL   SUY,	 DCZO,	 DCSK; 
	DIV   SUY,	 #1000; 
	CMP   SUY,	 #1200; 
	JLE   PQEEE; 
 
	JBC   SUP+1,	 07H,	   ZS00; 
	LD    SUP23,	 #0FFFFH; 
	SJMP  NEXTQ; 
ZS00:	LD    SUP23,	 #0; 
NEXTQ:	JBC   SUQ+1,	07H,	  ZSQ0; 
	LD    SUQ23,	 #0FFFFH; 
	SJMP  NEXTQQ; 
ZSQ0:	LD    SUQ23,	 #0; 
NEXTQQ: DIV   SUP,	 #10; 
	DIV   SUQ,	 #10; 
PQEEE:	RET; 
 
 
 
 
;Asin(wt+Q) 
;模长=(A*8/4)*ADWINDOWS*2/65536*TEMPERTURE/10000 
;    =A*ADWINDOWS/04000H*TEMPERTURE/10000 
;ADWINDOWS=5DC9H=(1000/1706)*32768/8;  1706-1000 
;电压放大40倍 电流放大80倍  功率放大8倍 
;00	直流分量	±2048		      ±10000(±2048) 
;01	基波分量	10000(1706)	      幅角(-180--180) 
;02	02次谐波	10000(1706)	      幅角(-180--180) 
;03	03次谐波	10000(1706)	      幅角(-180--180) 
;04	04次谐波	10000(1706)	      幅角(-180--180) 
;05	05次谐波	10000(1706)	      幅角(-180--180) 
;06	06次谐波	10000(1706)	      幅角(-180--180) 
;07	07次谐波	10000(1706)	      幅角(-180--180) 
;08	08次谐波	10000(1706)	      幅角(-180--180) 
;09	09次谐波	10000(1706)	      幅角(-180--180) 
;10	10次谐波	10000(1706)	      幅角(-180--180) 
;11	11次谐波	10000(1706)	      幅角(-180--180) 
;12	12次谐波	10000(1706)	      幅角(-180--180) 
;13	13次谐波	10000(1706)	      幅角(-180--180) 
;14	1-13次谐波有效值10000(1706)	      2-13次谐波有效值10000(1706) 
;15	波形畸变率	1000 
;16 
;17	基波含量	1000 
;18	02次谐波含量	1000 
;19	03次谐波含量	1000 
;20	04次谐波含量	1000 
;21	05次谐波含量	1000 
;22	06次谐波含量	1000 
;23	07次谐波含量	1000 
;24	08次谐波含量	1000 
;25	09次谐波含量	1000 
;26	10次谐波含量	1000 
;27	11次谐波含量	1000 
;28	12次谐波含量	1000 
;29	13次谐波含量	1000 
;30 
;31 
	END