20.01.2008, 20:06
|
|
Продвинутый
|
|
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
|
|
Код:
function TCpuData.AuthenticAMD:TCpuRec;
var Family,Model,Stepping:byte;
EFamily,EModel,EStepping:byte;
begin
GetFMS(Family,Model,Stepping);
If Family=4 then begin
AuthenticAMD.Name:='AMD 486';
AuthenticAMD.Vendor:=GetVendorString;
AuthenticAMD.Frequency:=0;
AuthenticAMD.Family:=Family;
AuthenticAMD.Model:=Model;
AuthenticAMD.Stepping:=Stepping;
AuthenticAMD.L1DCache:=8;
AuthenticAMD.L1ICache:=8;
AuthenticAMD.L2Cache:=0;
end
else
if Family=5 then begin
if GetMaxExtendedFunctions>4 then
begin
AuthenticAMD.Name:=GetExtendedCpuName;
AuthenticAMD.Vendor:=GetVendorString;
AuthenticAMD.Frequency:=GetCPUFrequency;
GetExtendedFMS(EFamily,EModel,EStepping);
AuthenticAMD.Family:=EFamily;
AuthenticAMD.Model:=EModel;
AuthenticAMD.Stepping:=EStepping;
AuthenticAMD.L1DCache:=GetExtendedL1DCache;
AuthenticAMD.L1ICache:=GetExtendedL1ICache;
AuthenticAMD.L2Cache:=0;
end
else
begin
AuthenticAMD.Name:=AMDK5N;
AuthenticAMD.Vendor:=GetVendorString;
AuthenticAMD.Frequency:=GetCPUFrequency;
AuthenticAMD.Family:=Family;
AuthenticAMD.Model:=Model;
AuthenticAMD.Stepping:=Stepping;
AuthenticAMD.L1DCache:=16;
AuthenticAMD.L1ICache:=16;
AuthenticAMD.L2Cache:=0;
end;
end
else if family>5 then
begin
AuthenticAMD.Name:=GetExtendedCpuName;
AuthenticAMD.Name:=GetExtendedCpuName;
AuthenticAMD.Vendor:=GetVendorString;
AuthenticAMD.Frequency:=GetCPUFrequency;
GetExtendedFMS(EFamily,EModel,EStepping);
AuthenticAMD.Family:=EFamily;
AuthenticAMD.Model:=EModel;
AuthenticAMD.Stepping:=EStepping;
AuthenticAMD.L1DCache:=GetExtendedL1DCache;
AuthenticAMD.L1ICache:=GetExtendedL1ICache;
AuthenticAMD.L2Cache:=GetExtendedL2Cache;
end;
end;
function TCpuData.GenuineIntel:TCpuRec;
var Family,Model,Stepping:byte;
begin
GetFMS(Family,Model,Stepping);
if Family=4 then begin
GenuineIntel.Name:='Intel 486';
GenuineIntel.Vendor:=GetVendorString;
GenuineIntel.Frequency:=0;
GenuineIntel.Family:=Family;
GenuineIntel.Model:=Model;
GenuineIntel.Stepping:=Stepping;
GenuineIntel.L1DCache:=8;
GenuineIntel.L1ICache:=8;
GenuineIntel.L2Cache:=0;
end
else
if Family=5 then begin
GenuineIntel.Name:=IntelP5N;
GenuineIntel.Vendor:=GetVendorString;
GenuineIntel.Frequency:=GetCPUFrequency;
GenuineIntel.Family:=Family;
GenuineIntel.Model:=Model;
GenuineIntel.Stepping:=Stepping;
GenuineIntel.L1DCache:=P5CacheL1DI;
GenuineIntel.L1ICache:=P5CacheL1DI;
GenuineIntel.L2Cache:=0;
end
else
if Family=6 then begin
GenuineIntel.Name:=IntelP6N;
GenuineIntel.Vendor:=GetVendorString;
GenuineIntel.Frequency:=GetCPUFrequency;
GenuineIntel.Family:=Family;
GenuineIntel.Model:=Model;
GenuineIntel.Stepping:=Stepping;
GenuineIntel.L1DCache:=P6CacheL1DI;
GenuineIntel.L1ICache:=P6CacheL1DI;
GenuineIntel.L2Cache:=P6CacheL2;
end
else
if Family=$F then begin
if CheckPentium4 then
begin
GenuineIntel.Name:='Intel Pentium(r) 4';
GenuineIntel.Vendor:=GetVendorString;
GenuineIntel.Frequency:=GetCPUFrequency;
GenuineIntel.Family:=32;
GenuineIntel.Model:=Model;
GenuineIntel.Stepping:=Stepping;
GenuineIntel.L1DCache:=8;
GenuineIntel.L1ICache:=12;
GenuineIntel.L2Cache:=256;
end
else if CheckIthanium then
begin
GenuineIntel.Name:='Intel Ithanium';
GenuineIntel.Vendor:=GetVendorString;
GenuineIntel.Frequency:=GetCPUFrequency;
GenuineIntel.Family:=64;
GenuineIntel.Model:=Model;
GenuineIntel.Stepping:=Stepping;
GenuineIntel.L1DCache:=0;
GenuineIntel.L1ICache:=0;
GenuineIntel.L2Cache:=0;
end;
end;
end;
function TCpuData.CyrixInstead:TCpuRec;
var Family,Model,Stepping:byte;
EFamily,EModel,EStepping:byte;
begin
GetFMS(Family,Model,Stepping);
if Family=4 then begin
CyrixInstead.Name:='VIA Cyrix 4x86';
CyrixInstead.Vendor:=GetVendorString;
CyrixInstead.Frequency:=0;
CyrixInstead.Family:=Family;
CyrixInstead.Model:=Model;
CyrixInstead.Stepping:=Stepping;
CyrixInstead.L1DCache:=8;
CyrixInstead.L1ICache:=8;
CyrixInstead.L2Cache:=0;
end
else
if Family=5 then begin
CyrixInstead.Name:='VIA Cyrix 5x86';
CyrixInstead.Vendor:=GetVendorString;
CyrixInstead.Frequency:=GetCPUFrequency;
CyrixInstead.Family:=Family;
CyrixInstead.Model:=Model;
CyrixInstead.Stepping:=Stepping;
CyrixInstead.L1DCache:=8;
CyrixInstead.L1ICache:=8;
CyrixInstead.L2Cache:=0;
end
else begin
if GetMaxExtendedFunctions>0 then
Begin
CyrixInstead.Name:=GetExtendedCpuName;
CyrixInstead.Vendor:=GetVendorString;
CyrixInstead.Frequency:=GetCPUFrequency;
GetExtendedFMS(EFamily,EModel,EStepping);
CyrixInstead.Family:=EFamily;
CyrixInstead.Model:=EModel;
CyrixInstead.Stepping:=EStepping;
CyrixInstead.L1DCache:=GetExtendedL1DCache;
CyrixInstead.L1ICache:=GetExtendedL1ICache;
CyrixInstead.L2Cache:=GetExtendedL2Cache;
end
else begin
CyrixInstead.Name:=Cyrix686N;
CyrixInstead.Vendor:=GetVendorString;
CyrixInstead.Frequency:=GetCPUFrequency;
CyrixInstead.Family:=Family;
CyrixInstead.Model:=Model;
CyrixInstead.Stepping:=Stepping;
CyrixInstead.L1DCache:=32;
CyrixInstead.L1ICache:=32;
CyrixInstead.L2Cache:=0;
end;
end;
end;
function TCpuData.GenericCPU:TCpuRec;
var Family,Model,Stepping:byte;
EFamily,EModel,EStepping:byte;
begin
if not GetCPUIDSupport then
begin
MessageDlg('This CPU does not support the CPUID instruction!!!',mtWarning,
[mbOk],0);
GenericCPU.Name:='Unidentified CPU';
GenericCPU.Vendor:='Unidentified';
GenericCPU.Frequency:=0;
GenericCPU.Family:=-1;
GenericCPU.Model:=-1;
GenericCPU.Stepping:=-1;
GenericCPU.L1DCache:=0;
GenericCPU.L1ICache:=0;
GenericCPU.L2Cache:=0;
end
else
begin
GetFMS(Family,Model,Stepping);
if GetMaxExtendedFunctions>0 then
begin
GenericCPU.Name:=GetExtendedCPUName;
GenericCPU.Vendor:=GetVendorString;
GenericCPU.Frequency:=GetCPUFrequency;
CpuData.GetExtendedFMS(EFamily,EModel,EStepping);
GenericCPU.Family:=EFamily;
GenericCPU.Model:=EFamily;
GenericCPU.Stepping:=EStepping;
GenericCPU.L1DCache:=GetExtendedL1DCache;
GenericCPU.L1ICache:=GetExtendedL1ICache;
GenericCPU.L2Cache:=GetExtendedL2Cache;
end
else begin
GenericCPU.Name:=GenericCpuN;
GenericCPU.Vendor:=GetVendorString;
if Family<=4 then GenericCPU.Frequency:=0
else GenericCPU.Frequency:=GetCPUFrequency;
GenericCPU.Family:=Family;
GenericCPU.Model:=Model;
GenericCPU.Stepping:=Stepping;
GenericCPU.L1DCache:=0;
GenericCPU.L1ICache:=0;
GenericCPU.L2Cache:=0;
end;
end;
end;
end.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
|