void NIC_SendPack(unsigned char *buf, int len)
{
	int i;

	if(len < 60)					// С60ֽڣ
		len = 60;					// ǣ60ֽ

	// ݴNICڲ
	rNIC_CR = 0x22;					// ѡĴҳ0
	rNIC_RSAR0 = 0;					// 趨ԶDMAʼַ
	rNIC_RSAR1 = g_TransmitBuffer;
	rNIC_RBCR0 = len & 255;			// 趨ԶDMAֽڼ
	rNIC_RBCR1 = len >> 8;
	rNIC_CR = 0x12;					// ԶDMA

#if DMA16
	for(i = 0; i < len; i += 2)		// 
	{
		unsigned word = *buf++;
		word |= *buf++ << 8;
		rNIC_DMA = word;
	}
#else
	for(i = 0; i < len; i++)		// 
		rNIC_DMA = *buf++;
#endif

	rNIC_CR = 0x22;					// ֹͣԶDMA

	// ݰ
	rNIC_TPSR = g_TransmitBuffer;	// ôݰʼҳ
	rNIC_TBCR0 = len & 255;			// ôݰ
	rNIC_TBCR1 = len >> 8;

	for(i = 0; i < 16; i++)			// 16η
	{

		rNIC_CR = 0x1e;				// ʼ
		while(rNIC_CR & 0x04);		// ȴͽ
		i = rNIC_TSR;//debug
		if(rNIC_TSR & 1)			// ͳɹ
			break;					// ǣط
	}
	rNIC_CR = 0x22;					// ֹͣDMA
	g_TransmitBuffer ^= 6;			// 0x400x46л´ηҳ
}