⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 esram.c

📁 MP3的代码很实用 MP3的代码很实用
💻 C
📖 第 1 页 / 共 4 页
字号:
/*
 * $Id$
 */

#include "mpg123.h"
#include "mpglib.h"
#include "huffman.h"

//add data***************************

int bitindex;		//in mpg123.c
unsigned char *bufpointer;

//extern nframe;
//real win1[4][36];
//volatile int * const mmacbase = (int *)0x41003ff0;
//volatile int * const mrambase = (int *)0x41003000;
volatile int * const mmacbase = (int *)0x11003ff0;
volatile int * const mrambase = (int *)0x11003000;
volatile int * const mmamoder = mmacbase;
volatile int * const mmastatr = mmacbase + 0x1;
volatile int * const mmabufxar = mmacbase + 0x2;
volatile int * const mmabufzar = mmacbase + 0x3;
#if 0
real /*const*/ win[4][36] = {							// FLOAT24
	{
		0x000843a9, 0x001b71e0, 0x00338fe2, 0x00535b97, 0x00800000, 0x00c48ce2, 0x013dc0c8, 0x0254fac1, 
		0x07be80a6, 0xf78c7a66, 0xfcf6004c, 0xfe0d3a45, 0xfe866e2b, 0xfecafb0d, 0xfef79f75, 0xff176b2b, 
		0xff2f892d, 0xff42b764, 0xff528db3, 0xff600a32, 0xff6bd44e, 0xff765fbe, 0xff800000, 0xff88f3e7, 
		0xff916cc2, 0xff999313, 0xffa189e2, 0xffa9712c, 0xffb167fa, 0xffb98e4c, 0xffc20726, 0xffcafb0d, 
		0xffd49b50, 0xffdf26bf, 0xffeaf0dc, 0xfff86d5b, 
	},
	{
		0x000843a9, 0x001b71e0, 0x00338fe2, 0x00535b97, 0x00800000, 0x00c48ce2, 0x013dc0c8, 0x0254fac1, 
		0x07be80a6, 0xf78c7a66, 0xfcf6004c, 0xfe0d3a45, 0xfe866e2b, 0xfecafb0d, 0xfef79f75, 0xff176b2b, 
		0xff2f892d, 0xff42b764, 0xff526366, 0xff5ea8d8, 0xff683b58, 0xff6fb1f3, 0xff75742d, 0xff79c9cd, 
		0xff7e038d, 0xff88b916, 0xff9a5aa2, 0xffb2011a, 0xffce9807, 0xffeee313, 0x00000000, 0x00000000, 
		0x00000000, 0x00000000, 0x00000000, 0x00000000, 
	},
	{
		0x001b71e0, 0x00800000, 0x0254fac1, 0xfcf6004c, 0xfecafb0d, 0xff2f892d, 0xff600a32, 0xff800000, 
		0xff999313, 0xffb167fa, 0xffcafb0d, 0xffeaf0dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
		0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
		0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 
		0x00000000, 0x00000000, 0x00000000, 0x00000000, 
	},
	{
		0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004d3116, 0x017746ea, 
		0x06fa6529, 0xf6e7ecac, 0xfc76004c, 0xfdb5aba3, 0xfe5655b5, 0xfeb18517, 0xfeeacafb, 0xff11c58b, 
		0xff2dbcad, 0xff42893a, 0xff528db3, 0xff600a32, 0xff6bd44e, 0xff765fbe, 0xff800000, 0xff88f3e7, 
		0xff916cc2, 0xff999313, 0xffa189e2, 0xffa9712c, 0xffb167fa, 0xffb98e4c, 0xffc20726, 0xffcafb0d, 
		0xffd49b50, 0xffdf26bf, 0xffeaf0dc, 0xfff86d5b, 
	},
};
#endif

real /*const*/ COS9[9] = {							// FLOAT24
	0x01000000, 0x00fc1c5c, 0x00f08fb2, 0x00ddb3d7, 0x00c41b7d, 0x00a48dba, 0x00800000, 0x00578ea1, 0x002c7434, 
};


real /*const*/ aa_cs[8] = {							// FLOAT24
	0x00db84a8, 0x00e1b9d7, 0x00f31adc, 0x00fbba81, 0x00feda41, 0x00ffc8fc, 0x00fff964, 0x00ffff8d, 
};

real /*const*/ aa_ca[8] = {							// FLOAT24
	0xff7c4a02, 0xff873c93, 0xffafc67f, 0xffd16e23, 0xffe7c9fd, 0xfff58348, 0xfffc5d7c, 0xffff0d85, 
};



real /*const*/ tfcos36[9] = {							// FLOAT24
	0x00807d2b, 0x008483ee, 0x008d3b7c, 0x009c4257, 0x00b504f3, 0x00df2943, 0x012edfb1, 0x01ee8dd4, 0x05bca2a2, 
};


unsigned char rval;

#if 0
 struct newhuff ht[] = 
{
 { /* 0 */ 0 , tab0  } ,
 { /* 2 */ 0 , tab1  } ,
 { /* 3 */ 0 , tab2  } ,
 { /* 3 */ 0 , tab3  } ,
 { /* 0 */ 0 , tab0  } ,
 { /* 4 */ 0 , tab5  } ,
 { /* 4 */ 0 , tab6  } ,
 { /* 6 */ 0 , tab7  } ,
 { /* 6 */ 0 , tab8  } ,
 { /* 6 */ 0 , tab9  } ,
 { /* 8 */ 0 , tab10 } ,
 { /* 8 */ 0 , tab11 } ,
 { /* 8 */ 0 , tab12 } ,
 { /* 16 */ 0 , tab13 } ,
 { /* 0  */ 0 , tab0  } ,
 { /* 16 */ 0 , tab15 } ,

 { /* 16 */ 1 , tab16 } ,
 { /* 16 */ 2 , tab16 } ,
 { /* 16 */ 3 , tab16 } ,
 { /* 16 */ 4 , tab16 } ,
 { /* 16 */ 6 , tab16 } ,
 { /* 16 */ 8 , tab16 } ,
 { /* 16 */ 10, tab16 } ,
 { /* 16 */ 13, tab16 } ,
 { /* 16 */ 4 , tab24 } ,
 { /* 16 */ 5 , tab24 } ,
 { /* 16 */ 6 , tab24 } ,
 { /* 16 */ 7 , tab24 } ,
 { /* 16 */ 8 , tab24 } ,
 { /* 16 */ 9 , tab24 } ,
 { /* 16 */ 11, tab24 } ,
 { /* 16 */ 13, tab24 }
};
#endif

real *pnts[5] = {cos64, cos32, cos16, cos8, cos4};
#if 0
real /*const*/ ispow[130] = {							// FLOAT21	!!!!!!!!!!!!!!
	0x00000000, 0x00200000, 0x0050a28b, 0x008a74b9, 0x00cb2ff5, 0x0111989d, 0x015ce31c, 0x01ac7f20, 
	0x02000000, 0x0257106b, 0x02b16b4a, 0x030ed74b, 0x036f23fa, 0x03d227bd, 0x0437be65, 0x049fc823, 
	0x050a28be, 0x0576c6f5, 0x05e58c0b, 0x06566361, 0x06c93a2e, 0x073dff3e, 0x07b4a2bc, 0x082d160a, 
	0x08a74b9b, 0x092336d5, 0x09a0cbf6, 0x0a200000, 0x0aa0c8a1, 0x0b231c29, 0x0ba6f175, 0x0c2c3fe6, 
	0x0cb2ff52, 0x0d3b2800, 0x0dc4b298, 0x0e4f9821, 0x0edbd1f8, 0x0f6959c5, 0x0ff8297f, 0x10883b5c, 
	0x111989d6, 0x11ac0f9e, 0x123fc7a1, 0x12d4acfc, 0x136abaff, 0x1401ed25, 0x149a3f18, 0x1533aca7, 
	0x15ce31c8, 0x1669ca96, 0x1706734d, 0x17a4284a, 0x1842e608, 0x18e2a91f, 0x19836e43, 0x1a253242, 
	0x1ac7f203, 0x1b6baa83, 0x1c1058d7, 0x1cb5fa2b, 0x1d5c8bbe, 0x1e040ae1, 0x1eac74fa, 0x1f55c782, 
	0x20000000, 0x20ab1c0d, 0x21571953, 0x2203f589, 0x22b1ae76, 0x236041f0, 0x240fadd7, 0x24bff01b, 
	0x257106b8, 0x2622efb5, 0x26d5a925, 0x27893125, 0x283d85e0, 0x28f2a588, 0x29a88e5a, 0x2a5f3e9e, 
	0x2b16b4a3, 0x2bceeec2, 0x2c87eb5f, 0x2d41a8e2, 0x2dfc25bf, 0x2eb7606f, 0x2f735776, 0x3030095d, 
	0x30ed74b3, 0x31ab9812, 0x326a7217, 0x332a0167, 0x33ea44ae, 0x34ab3a9d, 0x356ce1ec, 0x362f3958, 
	0x36f23fa5, 0x37b5f39a, 0x387a5405, 0x393f5fbb, 0x3a051592, 0x3acb7469, 0x3b927b20, 0x3c5a28a0, 
	0x3d227bd2, 0x3deb73a7, 0x3eb50f12, 0x3f7f4d0d, 0x404a2c92, 0x4115aca2, 0x41e1cc42, 0x42ae8a7a, 
	0x437be655, 0x4449dee4, 0x45187337, 0x45e7a268, 0x46b76b8e, 0x4787cdc8, 0x4858c835, 0x492a59f9, 
	0x49fc823c, 0x4acf4026, 0x4ba292e4, 0x4c7679a5, 0x4d4af39d, 0x4e200000, 0x4ef59e05, 0x4fcbcce8, 
	0x50a28be6, 0x5179da3d, 
};
#endif
real /*const*/ gainpow2[4] = {0x01000000, 0x01306fe0, 0x016a09e6, 0x01ae89f9, };	// FLOAT24
//real b0x[16];

//**********************************


#define GET1BIT()  {\
  rval = *bufpointer << bitindex;\
  bitindex++;\
  bufpointer += (bitindex>>3);\
  bitindex &= 7;\
  rval= rval>>7;\
}


#define WRITE_SAMPLE(samples,clip,sum) \
  {							\
  	ctmp = (unsigned char *)(samples);		\
  	*ctmp++ = (sum>>8)&0xff;			\
  	*ctmp = (sum)&0xff;				\
  }

#define NOP_OPERATIOM() \
{               \
      __asm{                       \
      NOP;     \
      NOP;     \
      NOP;  \
      NOP;  \
      NOP;  \
      NOP;  \
	};                    \
}

//#define SOFT_DOT_MUL;
//#define MUL_ADD_SOFT1;
//#define MUL_ADD_SOFT2;
//#define MUL_ADD_SOFT3;
//#define MUL_ADD_SOFT4;
//#define MUL_ADD_SOFT5;
//#define MUL_ADD_SOFT6;
//#define MUL_ADD_SOFT7;

int synth_1to1(real *bandPtr,int channel,unsigned char *out,int *pnt)
{
	register const int step = 2;
  	int bo;
  	short *samples = (short *) (out + *pnt);
  	unsigned char *ctmp;
  	real bufs[0x40];
  	real *b1 = bufs;
  	real *b2 = &bufs[0x20];
  	register real *costab;

	real *b0,(*buf)[0x110];
	int clip = 0; 
	int bo1;

	real *out0, *out1;

	bo = gmp.synth_bo;

	if(!channel) {
		bo--;
		bo &= 0xf;
		buf = gmp.synth_buffs[0];
	}
	else {
		samples++;
		buf = gmp.synth_buffs[1];
	}

	if(bo & 0x1) {
		b0 = buf[0];
		bo1 = bo;
		out0 = buf[1]+((bo+1)&0xf);
		out1 = buf[0]+bo;
	}
	else {
		b0 = buf[1];
		bo1 = bo+1;
		out0 = buf[0]+bo;
		out1 = buf[1]+bo+1;
	}
	{
	 {

	  costab = pnts[0];
	  b1[0x00] = bandPtr[0x00] + bandPtr[0x1F];
	  b1[0x1F] = bandPtr[0x00] - bandPtr[0x1F];
	  b1[0x01] = bandPtr[0x01] + bandPtr[0x1E];
	  b1[0x1E] = bandPtr[0x01] - bandPtr[0x1E];
	  b1[0x02] = bandPtr[0x02] + bandPtr[0x1D];
	  b1[0x1D] = bandPtr[0x02] - bandPtr[0x1D];
	  b1[0x03] = bandPtr[0x03] + bandPtr[0x1C];
	  b1[0x1C] = bandPtr[0x03] - bandPtr[0x1C];
	  b1[0x04] = bandPtr[0x04] + bandPtr[0x1B];
	  b1[0x1B] = bandPtr[0x04] - bandPtr[0x1B];
	  b1[0x05] = bandPtr[0x05] + bandPtr[0x1A];
	  b1[0x1A] = bandPtr[0x05] - bandPtr[0x1A];
	  b1[0x06] = bandPtr[0x06] + bandPtr[0x19];
	  b1[0x19] = bandPtr[0x06] - bandPtr[0x19];
	  b1[0x07] = bandPtr[0x07] + bandPtr[0x18];
	  b1[0x18] = bandPtr[0x07] - bandPtr[0x18];
	  b1[0x08] = bandPtr[0x08] + bandPtr[0x17];
	  b1[0x17] = bandPtr[0x08] - bandPtr[0x17];
	  b1[0x09] = bandPtr[0x09] + bandPtr[0x16];
	  b1[0x16] = bandPtr[0x09] - bandPtr[0x16];
	  b1[0x0A] = bandPtr[0x0A] + bandPtr[0x15];
	  b1[0x15] = bandPtr[0x0A] - bandPtr[0x15];
	  b1[0x0B] = bandPtr[0x0B] + bandPtr[0x14];
	  b1[0x14] = bandPtr[0x0B] - bandPtr[0x14];
	  b1[0x0C] = bandPtr[0x0C] + bandPtr[0x13];
	  b1[0x13] = bandPtr[0x0C] - bandPtr[0x13];
	  b1[0x0D] = bandPtr[0x0D] + bandPtr[0x12];
	  b1[0x12] = bandPtr[0x0D] - bandPtr[0x12];
	  b1[0x0E] = bandPtr[0x0E] + bandPtr[0x11];
	  b1[0x11] = bandPtr[0x0E] - bandPtr[0x11];
	  b1[0x0F] = bandPtr[0x0F] + bandPtr[0x10];
	  b1[0x10] = bandPtr[0x0F] - bandPtr[0x10];

#ifdef SOFT_DOT_MUL
      MMA__SOFT_CALC(&b1[0x10], &b1[0x10], costab, 0x8083f000);
#else
    	//	  mma(&b1[0x10], &b1[0x10], costab, 0x8083f000);
	*mmabufzar = (int)&b1[0x10];
	*mmabufxar = (int)&b1[0x10];
	*mmamoder = 0x8083f000 | (((int)(costab) >> 2) & 0x3ff);
#endif
      
	 }

	
	 {
	  costab = pnts[1];
	  b2[0x00] = b1[0x00] + b1[0x0F];
	  b2[0x0F] = b1[0x00] - b1[0x0F];
	  b2[0x01] = b1[0x01] + b1[0x0E];
	  b2[0x0E] = b1[0x01] - b1[0x0E];
	  b2[0x02] = b1[0x02] + b1[0x0D];
	  b2[0x0D] = b1[0x02] - b1[0x0D];
	  b2[0x03] = b1[0x03] + b1[0x0C];
	  b2[0x0C] = b1[0x03] - b1[0x0C];
	  b2[0x04] = b1[0x04] + b1[0x0B];
	  b2[0x0B] = b1[0x04] - b1[0x0B];
	  b2[0x05] = b1[0x05] + b1[0x0A];
	  b2[0x0A] = b1[0x05] - b1[0x0A];
	  b2[0x06] = b1[0x06] + b1[0x09];
	  b2[0x09] = b1[0x06] - b1[0x09];
	  b2[0x07] = b1[0x07] + b1[0x08];
	  b2[0x08] = b1[0x07] - b1[0x08];
	
	  b2[0x10] = b1[0x10] + b1[0x1F];
	  b2[0x1F] = b1[0x1F] - b1[0x10];
	  b2[0x11] = b1[0x11] + b1[0x1E];
	  b2[0x1E] = b1[0x1E] - b1[0x11];
	  b2[0x12] = b1[0x12] + b1[0x1D];
	  b2[0x1D] = b1[0x1D] - b1[0x12];
	  b2[0x13] = b1[0x13] + b1[0x1C];
	  b2[0x1C] = b1[0x1C] - b1[0x13];
	  b2[0x14] = b1[0x14] + b1[0x1B];
	  b2[0x1B] = b1[0x1B] - b1[0x14];
	  b2[0x15] = b1[0x15] + b1[0x1A];
	  b2[0x1A] = b1[0x1A] - b1[0x15];
	  b2[0x16] = b1[0x16] + b1[0x19];
	  b2[0x19] = b1[0x19] - b1[0x16];
	  b2[0x17] = b1[0x17] + b1[0x18];
	  b2[0x18] = b1[0x18] - b1[0x17];

#ifdef SOFT_DOT_MUL
      MMA__SOFT_CALC(&b2[0x08], &b2[0x08], costab, 0x8083ec00);
#else
//	  mma(&b2[0x08], &b2[0x08], costab, 0x8083ec00);
	*mmabufzar = (int)&b2[0x08];
	*mmabufxar = (int)&b2[0x08];
	*mmamoder = 0x8083ec00 | (((int)(costab) >> 2) & 0x3ff);
#endif

	 }
	
	 {
	  costab = pnts[2];
	
	  b1[0x00] = b2[0x00] + b2[0x07];
	  b1[0x07] = b2[0x00] - b2[0x07];
	  b1[0x01] = b2[0x01] + b2[0x06];
	  b1[0x06] = b2[0x01] - b2[0x06];
	  b1[0x02] = b2[0x02] + b2[0x05];
	  b1[0x05] = b2[0x02] - b2[0x05];
	  b1[0x03] = b2[0x03] + b2[0x04];
	  b1[0x04] = b2[0x03] - b2[0x04];
	
	  b1[0x08] = b2[0x08] + b2[0x0F];
	  b1[0x0F] = b2[0x0F] - b2[0x08];
	  b1[0x09] = b2[0x09] + b2[0x0E];
	  b1[0x0E] = b2[0x0E] - b2[0x09];
	  b1[0x0A] = b2[0x0A] + b2[0x0D];
	  b1[0x0D] = b2[0x0D] - b2[0x0A];
	  b1[0x0B] = b2[0x0B] + b2[0x0C];
	  b1[0x0C] = b2[0x0C] - b2[0x0B];
	
	  b1[0x10] = b2[0x10] + b2[0x17];
	  b1[0x17] = b2[0x10] - b2[0x17];
	  b1[0x11] = b2[0x11] + b2[0x16];
	  b1[0x16] = b2[0x11] - b2[0x16];
	  b1[0x12] = b2[0x12] + b2[0x15];
	  b1[0x15] = b2[0x12] - b2[0x15];
	  b1[0x13] = b2[0x13] + b2[0x14];
	  b1[0x14] = b2[0x13] - b2[0x14];
	
	  b1[0x18] = b2[0x18] + b2[0x1F];
	  b1[0x1F] = b2[0x1F] - b2[0x18];
	  b1[0x19] = b2[0x19] + b2[0x1E];
	  b1[0x1E] = b2[0x1E] - b2[0x19];
	  b1[0x1A] = b2[0x1A] + b2[0x1D];
	  b1[0x1D] = b2[0x1D] - b2[0x1A];
	  b1[0x1B] = b2[0x1B] + b2[0x1C];
	  b1[0x1C] = b2[0x1C] - b2[0x1B];

#ifdef SOFT_DOT_MUL
      MMA__SOFT_CALC(&b1[0x04], &b1[0x04], costab, 0x8083e800);
#else
//	  mma(&b1[0x04], &b1[0x04], costab, 0x8083e800);
	*mmabufzar = (int)&b1[0x04];
	*mmabufxar = (int)&b1[0x04];
	*mmamoder = 0x8083e800 | (((int)(costab) >> 2) & 0x3ff);
#endif	
	 }
	
	 {
	  costab = pnts[3];
	
	  b2[0x00] = b1[0x00] + b1[0x03];
	  b2[0x03] = b1[0x00] - b1[0x03];
	  b2[0x01] = b1[0x01] + b1[0x02];
	  b2[0x02] = b1[0x01] - b1[0x02];
	  b2[0x04] = b1[0x04] + b1[0x07];
	  b2[0x07] = b1[0x07] - b1[0x04];
	  b2[0x05] = b1[0x05] + b1[0x06];
	  b2[0x06] = b1[0x06] - b1[0x05];
	  b2[0x08] = b1[0x08] + b1[0x0B];
	  b2[0x0B] = b1[0x08] - b1[0x0B];
	  b2[0x09] = b1[0x09] + b1[0x0A];
	  b2[0x0A] = b1[0x09] - b1[0x0A];
	  b2[0x0C] = b1[0x0C] + b1[0x0F];
	  b2[0x0F] = b1[0x0F] - b1[0x0C];
	  b2[0x0D] = b1[0x0D] + b1[0x0E];
	  b2[0x0E] = b1[0x0E] - b1[0x0D];
	  b2[0x10] = b1[0x10] + b1[0x13];
	  b2[0x13] = b1[0x10] - b1[0x13];
	  b2[0x11] = b1[0x11] + b1[0x12];
	  b2[0x12] = b1[0x11] - b1[0x12];
	  b2[0x14] = b1[0x14] + b1[0x17];
	  b2[0x17] = b1[0x17] - b1[0x14];
	  b2[0x15] = b1[0x15] + b1[0x16];
	  b2[0x16] = b1[0x16] - b1[0x15];
	  b2[0x18] = b1[0x18] + b1[0x1B];
	  b2[0x1B] = b1[0x18] - b1[0x1B];
	  b2[0x19] = b1[0x19] + b1[0x1A];
	  b2[0x1A] = b1[0x19] - b1[0x1A];
	  b2[0x1C] = b1[0x1C] + b1[0x1F];
	  b2[0x1F] = b1[0x1F] - b1[0x1C]; 
	  b2[0x1D] = b1[0x1D] + b1[0x1E];
	  b2[0x1E] = b1[0x1E] - b1[0x1D]; 

#ifdef SOFT_DOT_MUL
      MMA__SOFT_CALC(&b2[0x02], &b2[0x02], costab, 0x8083e400);
#else
//	  mma(&b2[0x02], &b2[0x02], costab, 0x8083e400);
	*mmabufzar = (int)&b2[0x02];
	*mmabufxar = (int)&b2[0x02];
	*mmamoder = 0x8083e400 | (((int)(costab) >> 2) & 0x3ff);
#endif
	//sature(b2);
	 }
	
	 {
	  costab = pnts[4];
	
	  b1[0x00] = b2[0x00] + b2[0x01];
	  b1[0x01] = b2[0x00] - b2[0x01];
	  b1[0x02] = b2[0x02] + b2[0x03];
	  b1[0x03] = b2[0x03] - b2[0x02];
	  b1[0x04] = b2[0x04] + b2[0x05];
	  b1[0x05] = b2[0x04] - b2[0x05];
	  b1[0x06] = b2[0x06] + b2[0x07];
	  b1[0x07] = b2[0x07] - b2[0x06];
	  b1[0x08] = b2[0x08] + b2[0x09];
	  b1[0x09] = b2[0x08] - b2[0x09];
	  b1[0x0A] = b2[0x0A] + b2[0x0B];
	  b1[0x0B] = b2[0x0B] - b2[0x0A];
	  b1[0x0C] = b2[0x0C] + b2[0x0D];
	  b1[0x0D] = b2[0x0C] - b2[0x0D];
	  b1[0x0E] = b2[0x0E] + b2[0x0F];
	  b1[0x0F] = b2[0x0F] - b2[0x0E];
	  b1[0x10] = b2[0x10] + b2[0x11];
	  b1[0x11] = b2[0x10] - b2[0x11];
	  b1[0x12] = b2[0x12] + b2[0x13];
	  b1[0x13] = b2[0x13] - b2[0x12];
	  b1[0x14] = b2[0x14] + b2[0x15];
	  b1[0x15] = b2[0x14] - b2[0x15];
	  b1[0x16] = b2[0x16] + b2[0x17];
	  b1[0x17] = b2[0x17] - b2[0x16];
	  b1[0x18] = b2[0x18] + b2[0x19];
	  b1[0x19] = b2[0x18] - b2[0x19];
	  b1[0x1A] = b2[0x1A] + b2[0x1B];
	  b1[0x1B] = b2[0x1B] - b2[0x1A];
	  b1[0x1C] = b2[0x1C] + b2[0x1D];
	  b1[0x1D] = b2[0x1C] - b2[0x1D];
	  b1[0x1E] = b2[0x1E] + b2[0x1F];
	  b1[0x1F] = b2[0x1F] - b2[0x1E];
	  
#ifdef SOFT_DOT_MUL
      MMA__SOFT_CALC(&b1[0x01], &b1[0x01], costab, 0x8083e000);
#else
//	  mma(&b1[0x01], &b1[0x01], costab, 0x8083e000);
	*mmabufzar = (int)&b1[0x01];
	*mmabufxar = (int)&b1[0x01];
	*mmamoder = 0x8083e000 | (((int)(costab) >> 2) & 0x3ff);


	{
	int i;
	  for(i=0;i<32;i++){
		if(b1[i]>0x7fffff)
			b1[i]=0x7fffff;
		else if(b1[i]<-0x7fffff)
			b1[i]=-0x7fffff;
      }
    }
#endif		
	
	

	  b1[0x02] += b1[0x03];
	  b1[0x06] += b1[0x07];
	  b1[0x04] += b1[0x06];
	  b1[0x06] += b1[0x05];
	  b1[0x05] += b1[0x07];
	  b1[0x0A] += b1[0x0B];
	  b1[0x0E] += b1[0x0F];
	  b1[0x0C] += b1[0x0E];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -