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

📄 chipset.cpp

📁 PC燒錄BIOS的源程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		
		case 0x1022: /*AMD*/
			SouthFunc = 0x0300; /*AMD/VIA method*/
			switch(SouthId)
			{
				case 0x7408: 
					SbId = 0x12; /*AMD-756*/
					break;
				case 0x7410: 
					SbId = 0x13; /*AMD-766*/
					break;
			}
			break;

		case 0x1045: /*Opti*/
			break;
		
		case 0x1060: /*UMC*/
			break;

		case 0x1039: /*SiS*/
			switch(SouthId)
			{
				case 0x08: 
					SbId = 0x14; /*any SiS South Bridge*/
					break;
				case 0x18: 
					SbId = 0x15; /*SiS 950 can have 0x8 or 0x18*/
					break;
			}
			break;

		case 0x10B9: /*ALi*/
			if (SouthId == 0x1533) /*M1533/1543/1535*/
			{
				 SouthFunc = 0x0400; /*ALi method*/
				 SbId = 0x11;
			}
			break;
			
		case 0x1055: /*SMSC*/
			if (SouthId == 0x9460) /*SLC90E66*/ 
			{
				SouthFunc = 0x0600; /*SMSC method*/
				SbId = 0x16;
			}
			break;

		case 0x10AD: /*Winbond/Symphony Labs*/
			if (SouthId == 0x0565) /*W83C553F*/ 
			{
				 SouthFunc = 0x0700; /*Winbond method*/
				 SbId = 0x17;
			}
			break;
		
		case 0x1283: /*ITE*/ 
			switch(SouthId)
			{
				case 0x8872 : 
					SouthFunc = 0x0801;/*IT8871F/8872F*/ 
					SbId = 0x18;
					break;
				case 0x8888 :
					SouthFunc = 0x0802; /*IT8888F*/
					SbId = 0x19;
					break;
			}
			break;
		
		case 0x1166: /*Reliance/ServerWorks*/
			SouthFunc = 0x0900;
			switch(SouthId)
			{
				case 0x0200 :
					SbId = 0x1A; /*OSB4*/
					break;
			}
			break;
		
		case 0x1066: /*PicoPower*/
			SouthFunc = 0x1000;
			switch(SouthId)
			{
				case 0x0002 :
				case 0x8002 :
					SbId = 0x1B; /*Vesuvius V3-LS*/
					break;
			}
			break;
		
		case 0x1078: /*PicoPower*/
			SouthFunc = 0x1100;
			switch(SouthId)
			{
				case 0x0100 :
					SbId = 0x1C; /*Geode CS5530(A)*/
					break;
			}
			break;

		default:
			;
	}
	
	//#5 get chipset information 
	BYTE CurrentChipset[128];
	/*Id chipset as a whole*/
	strcpy(CurrentChipset , "");
	switch(NbId)
	{
		case 0x01 : 
			if (SbId == 0x01)
				strcpy(CurrentChipset , "Intel Mercury 430LX");
			break;
		case 0x02 : 
			if (SbId == 0x01)
				strcpy(CurrentChipset , "Intel Neptune 430NX");
			break;
		case 0x03 : 
			if (SbId == 0x03)
				strcpy(CurrentChipset , "Intel Triton 430FX");
			break;
		case 0x04 : 
			if (SbId == 0x04)
				strcpy(CurrentChipset , "Intel 430MX (mobile)");
			break;
		case 0x05 :
			if (SbId == 0x05)
				strcpy(CurrentChipset , "Intel Natoma 440FX");
			break;
		case 0x06 : 
			if (SbId == 0x05) 
				strcpy(CurrentChipset , "Intel Triton II 430HX");
			break;
		case 0x07 : 
			if (SbId == 0x05)
				strcpy(CurrentChipset , "Intel Triton II 430VX");
			break;
		case 0x08 :
			if (SbId == 0x06)
				strcpy(CurrentChipset , "Intel Triton III 430TX");
			break;
		case 0x09 : 
			if (SbId == 0x06)
				strcpy(CurrentChipset , "Intel AGPSet 440LX/EX");
			break;
		case 0x0A : 
			switch (SbId)
			{
				 case 0x06 :
					strcpy(CurrentChipset , "Intel AGPSet 440BX/ZX");
					break;
				 case 0x16 :
					strcpy(CurrentChipset , "SMSC VictoryBX-66");
					break;
			}
			break;
		case 0x0B : 
			if (SbId == 0x06)
				strcpy(CurrentChipset , "Intel AGPSet 440GX");
			break;
		case 0x0C : 
			if (SbId == 0x02)
				strcpy(CurrentChipset , "Intel 450KX");
			break;
		case 0x0D :
			if (SbId == 0x02)
				strcpy(CurrentChipset , "Intel 450KX/GX");
			break;
		case 0x0E : 
			if (SbId == 0x02)
				strcpy(CurrentChipset , "Intel 450GX");
			break;
		case 0x0F : 
			if ((SbId == 0x07) || (SbId == 0x08))
				strcpy(CurrentChipset , "Intel 810");
			break;
		case 0x10 : 
			switch(SbId)
			{
				case 0x07:
				case 0x08: 
					strcpy(CurrentChipset , "Intel 810E");
					break;
				case 0x09: 
					strcpy(CurrentChipset , "Intel 810E2");
					break;
			}
			break;

		case 0x11 : 
			switch(SbId)
			{
				case 0x07:
				case 0x08:
					 strcpy(CurrentChipset , "Intel 815(G)");
					 break;
				case 0x09: 
					 strcpy(CurrentChipset , "Intel 815E(P/G)");
					 break;
				case 0x0A: 
					 strcpy(CurrentChipset , "Intel 815EM");
					 break;
			}
			break;
		case 0x12 : 
			switch(SbId)
			{
				case 0x07:
				case 0x08:
					 strcpy(CurrentChipset , "Intel 820");
					 break;
				case 0x09: 
					 strcpy(CurrentChipset , "Intel 820E");
					 break;
			}
			break;
		case 0x13 : 
			if ((SbId == 0x07) || (SbId == 0x08))
				strcpy(CurrentChipset , "Intel 840"); 
			break;
		case 0x14 : 
			if (SbId == 0x09)
				strcpy(CurrentChipset , "Intel 850");
			break;
		case 0x15 :
			if (SbId == 0x09)
				strcpy(CurrentChipset , "Intel 860");
			break;
		case 0x16 :
			if (SbId == 0x0B)
				strcpy(CurrentChipset , "Intel 830MP");
			break;
		case 0x17 :
			if (SbId == 0x09)
				strcpy(CurrentChipset , "Intel 845");
			break;
		case 0x18 : 
			strcpy(CurrentChipset , "VIA Apollo Master");
			break;
		case 0x19 : 
			if (SbId == 0x0C)
				strcpy(CurrentChipset , "VIA Apollo VP/VPX");
			break;
		case 0x1A : 
			if (SbId == 0x0C)
				strcpy(CurrentChipset , "VIA Apollo VP2/AMD 640");
			break;
		case 0x1B : 
			if ((SbId == 0x0C) || (SbId == 0x0D))
				strcpy(CurrentChipset , "VIA Apollo VP3");
			break;
		case 0x1C : 
			if ((SbId == 0x0D) || (SbId == 0x0E))
				strcpy(CurrentChipset , "VIA Apollo MVP3");
			break;
		case 0x1D : 
			strcpy(CurrentChipset , "VIA Apollo P6");
			break;
		case 0x1E : 
			if (SbId == 0x0E)
				strcpy(CurrentChipset , "VIA Apollo MVP4");
			break;
		case 0x1F : 
			if ((SbId == 0x0D) || (SbId == 0x0E))
				strcpy(CurrentChipset , "VIA Apollo Pro (Plus/133/133A)");
			break;
		case 0x20 : 
			if ((SbId == 0x0D) || (SbId == 0x0E))
				strcpy(CurrentChipset , "VIA Apollo Pro Plus/133/133A");
			break;
		case 0x21 :
			if (SbId == 0x0E)
				strcpy(CurrentChipset , "VIA Apollo ProMedia");
			break;
		case 0x22 : 
			strcpy(CurrentChipset , "VIA Apollo Pro 133Z/PM133");
			break;
		case 0x23 : 
			if (SbId == 0x0E)
				strcpy(CurrentChipset , "VIA Apollo KX133");
			break;
		case 0x24 :
			if (SbId == 0x0E)
				strcpy(CurrentChipset , "VIA Apollo KT133(A)");
			break;
		case 0x25 : 
			if (SbId == 0x10)
				strcpy(CurrentChipset , "VIA Apollo KT266");
			break;
		case 0x26 : 
			if (SbId == 0x10)
				strcpy(CurrentChipset , "VIA Apollo Pro 266");
			break;
		case 0x2C : 
			if (SbId == 0x11)
				strcpy(CurrentChipset , "ALi Aladdin Pro II");
			break;
		case 0x2D : 
			if (SbId == 0x11)
				strcpy(CurrentChipset , "ALi Aladdin V");
			break;
		case 0x2E :
			if (SbId == 0x11)
				strcpy(CurrentChipset , "ALi Aladdin Pro IV");
			break;
		case 0x2F : 
			if (SbId == 0x11)
				strcpy(CurrentChipset , "ALi ALiMAGiK 1");
			break;
		case 0x30 : 
			if (SbId == 0x12)
				strcpy(CurrentChipset , "AMD 750");
			break;
		case 0x31 : 
			switch(SbId)
			{
				case 0x0E : 
					strcpy(CurrentChipset , "AMD 760 (VIA South)");
					break;
				case 0x13 : 
					strcpy(CurrentChipset , "AMD 760 (AMD South)");
					break;
			}
			break;
		case 0x32 : 
			if (SbId == 0x13)
				strcpy(CurrentChipset , "AMD 760MP");
			break;
		case 0x33 : 
			strcpy(CurrentChipset , "SiS 85C496+497");
			break;
		case 0x34 : 
			if (SbId == 0x14)
				strcpy(CurrentChipset , "SiS 501/5101/5501");
			break;
		case 0x35 : 
			if (SbId == 0x14)
				strcpy(CurrentChipset , "SiS 5511+5513");
			break;
		case 0x36 : 
			if (SbId == 0x14)
				strcpy(CurrentChipset , "SiS 5571");
			break;
		case 0x37 : 
			if (SbId == 0x14)
				strcpy(CurrentChipset , "SiS 5591/5592+5595");
			break;
		case 0x38 : 
			if (SbId == 0x14)
				strcpy(CurrentChipset , "SiS 5596+5595");
			break;
		case 0x39 : 
			if (SbId == 0x14)
				strcpy(CurrentChipset , "SiS 5597/5598/5581/5120");
			break;
		case 0x3A : 
			if (SbId == 0x14)
				strcpy(CurrentChipset , "SiS 530");
			break;
		case 0x3B : 
			if ((SbId == 0x14) || (SbId == 0x15))
				strcpy(CurrentChipset , "SiS 540");
			break;
		case 0x3C : 
			if (SbId == 0x14)
				strcpy(CurrentChipset , "SiS 600");
			break;
		case 0x3D : 
			if (SbId == 0x14)
				strcpy(CurrentChipset , "SiS 620");
			break;
		case 0x3E :
			if ((SbId == 0x14) || (SbId == 0x15))
				strcpy(CurrentChipset , "SiS 630");
			break;
		case 0x3F :
			if (SbId == 0x1A)
				strcpy(CurrentChipset , "ServerWorks ServerSet III LE");
			break;
		case 0x40 :
			if (SbId == 0x1A)
				strcpy(CurrentChipset , "ServerWorks ServerSet III HE");
			break;
		case 0x41 :
			if (SbId == 0x1B)
				strcpy(CurrentChipset , "National PicoPower Vesuvius-LS");
			break;
		case 0x42 :
			if (SbId == 0x1C)
				strcpy(CurrentChipset , "National Geode GX1 + CS5530(A)");
			break;
		default:
			;
	}
	ChipsetFound = (( NbId == 0 ) && ( SbId == 0 )) ? FALSE : TRUE ; /*One of 'm might be enough*/

	//If chipset ID failed then show north & south bridge name or ID
	if (strlen(CurrentChipset) == 0)
	{
		if (NbId != 0)
		{
			if (SbId != 0)
				sprintf(CurrentChipset , "%s + %s", NorthBridgeName[ NbId ] ,  SouthBridgeName[SbId]);
			else
				sprintf(CurrentChipset , "%s + (%04x,%04x,%02x) ", NorthBridgeName[ NbId ] , SouthMan, SouthId, SouthRev);
		}
		else
		{
			if (SbId != 0)
				sprintf(CurrentChipset , "(%04x,%04x,%02x) + %s", NorthMan, NorthId, NorthRev, SouthBridgeName[SbId]);
			else
				sprintf(CurrentChipset , "(%04x,%04x,%02x) + (%04x,%04x,%02x) ", NorthMan, NorthId, NorthRev , SouthMan, SouthId, SouthRev);
		}
	}

/*	if (( WantToUseAMI ) && ( AMICheckFor ))
	{
		AMIUsed = True;
		ChipsetFound = True;
		CurrentChipset = CurrentChipset + ' [AMI FLASH]';
	}
*/
	//#6 Fill in the information into the structure
    memset((void*)pChipSetInfo , 0 , sizeof(CHIPSETINFO));
	pChipSetInfo->SouthMan = SouthMan;
	pChipSetInfo->SouthId  = SouthId;
	pChipSetInfo->SouthRev = SouthRev;
	pChipSetInfo->NorthMan = NorthMan;
	pChipSetInfo->NorthId  = NorthId;
	pChipSetInfo->NorthRev = NorthRev;

	pChipSetInfo->SbId     = SbId;
	pChipSetInfo->NbId     = NbId;
	pChipSetInfo->NorthPos = NorthPos;
	pChipSetInfo->SouthPos = SouthPos;
	pChipSetInfo->NorthFunc= NorthFunc;
	pChipSetInfo->SouthFunc= SouthFunc;

	strcpy(pChipSetInfo->SouthInfo , SouthBridgeName[SbId]);
	strcpy(pChipSetInfo->NorthInfo , NorthBridgeName[NbId]);
	strcpy(pChipSetInfo->ChipInfo , CurrentChipset);
	pChipSetInfo->bChipFound = ChipsetFound;

	return bRet;
}

⌨️ 快捷键说明

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