Показать сообщение отдельно
  #6  
Старый 20.01.2008, 20:06
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 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. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием