Click here to Skip to main content
Click here to Skip to main content

CAMEL - CPU Identifier Class

By , 14 Jan 2003
 

Demo Screenshot 1   Demo Screenshot 2   Demo Screenshot 3

Introduction

Camel is a generic Windows® / Linux CPU detection class which can display details about the hardware installed within the computer. It can display items such as the CPU manufacturer, CPU model and name, clock speed and other hardware details.

What Do I Get With This?

Well a complete CPU identification and capabilities class. Also there is a complete Windows version detection algorithm included in the demo source. The demo (including pre-compiled binary) provides a replacement for WCPUID and similar applications and as the binary is < 150 kb, it is nice and small.

How Can I Use It?

1. E-Mail me for permission to use/include (always given). I just want to know what purpose it is being used for. It is provided completely for "Non-Commercial Usage."
2. Include the files in your C++ project.
3. Compile!
4. Play!

What About.... AKA: Specific In-depth Details

Supports Microsoft® Windows™ From:

Windows™ 95 / 95 OSR2 / 95 OSR2.5
Windows™ 98 / 98 SE
Windows™ Millennium
Windows™ NT 3.51
Windows™ NT 4.0 Workstation / Server [Including SP1 to SP6a]
Windows™ 2000 Workstation / Server / Advanced Server / Datacenter Server (Including SP1 to SP3)
Windows™ XP Personal / Professional [Including SP1]
Windows™ .NET Web Server / Standard Server / Enterprise Server

Supports Processors From:

Intel / AMD / Cyrix / Rise / UMC / IDT / Transmeta / NexGen / National Semiconductor

See Camel.txt for processor listings... E.g. Pentium III "Coppermine" or Athlon XP 1800+ (Thoroughbred Core).

Detects Hardware Features:

Processor hardware

Single Processors
Dual Processors
Multiple Processors
HyperThreading Technology
Serial Number [if enabled]
On-Chip APIC Hardware
Hard-Coded Chip Names
L1 Cache Size
L2 Cache Size
L3 Cache Size
CPU Clock Speed [of each processor]
Thermal Monitioring Support
ACPI Support
On-Chip PowerManagement [SpeedStep, etc.]

Multimedia Instruction Sets

MMX
MMX+
Streaming SIMD Extensions
Streaming SIMD Extensions [Floating Point]
Streaming SIMD Extensions [MMX]
Streaming SIMD Extensions 2
3DNow!
3DNow!+

General Instruction Sets

Floating Point Unit [FPU]
Time Stamp Counter [TSC]
Conditional Move [CMOV]
Memory Type Range Registers [MTRR]

Other notes:

The 2nd generation CPU speed test is "loosely" based on code from Pavlos Touboulidis. It is far enough removed to be no-longer copyright to him. I think. Anyway this is the obligatory mention.

Known Bugs And Problems:

CAM_00000001: Last Tree Node Fails To Display '+' Icon Properly.
CAM_00000002: CPU Speed Detection Results With +/- 10MHz Deviation. (FIXED: Version 1.2)
CAM_00000003: Fails To Detect APIC ID Properly With < Intel P4 Processors.

NOTE:

Some of the functionality is missing. Some of the menu items do not yet work nor some of the benchmarks. None of these missing features affect the CPU identification code! I apologize and will implement these in time. Or you can.....

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

voodoopriestess
Researcher
Germany Germany
Member
Iain Chesworth graduated from Heriot-Watt University in June of 2002 in Computer Science and Physics. He now works as a C++ programmer and plays with code in his spare time. He is also a keen cyclist and swimmer.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralMy vote of 3groupMahdi Nejadsahebi24 Oct '11 - 21:07 
Generalthanksmemberzhanjx2 Feb '10 - 22:50 
GeneralSimple way to get CPU Name - works with new CPUs (Intel Core2 Extreme - Q9300 2.53GHz)membermatt200028 Oct '09 - 6:51 
GeneralBroken link for the newest Camel codememberHunt Chang3 Oct '08 - 1:03 
Questionno windows code ?memberMember 30685 Aug '08 - 12:41 
GeneralCPU identification tool for 64-bit windowsmemberAmol_81_Adya18 Jul '08 - 2:02 
QuestionOther licencing probabilitiies?memberjazuju1 Feb '08 - 1:12 
GeneralDetecting number of CPUsmemberGonzus27 Jul '07 - 10:07 
QuestionWhere updated version ?memberEnrique Ardanaz15 Mar '07 - 6:36 
GeneralpermissionmemberManasi D24 Jan '07 - 1:42 
QuestionHow to identify Cores?memberMayerBurli17 Aug '06 - 4:59 
GeneralpermissionmemberMayerBurli17 Aug '06 - 4:58 
Questionpermissionmemberdacian_herbei1 Aug '06 - 22:29 
Generalpermissionmemberchunnu_8010 Apr '06 - 7:40 
GeneralVC 6.0 Project works first time onlymemberGonzus23 Feb '06 - 5:10 
GeneralUsing the source code in VB.NETmembercodemaster220 Jan '06 - 20:48 
GeneralRe: Using the source code in VB.NETmemberthisisbullshit11 Mar '07 - 20:53 
QuestionPentium&#174; III (0.13 &#181;m) ???membermatt200026 Nov '05 - 5:36 
GeneralWindow 2003 servermembertunchi16 Sep '05 - 10:41 
GeneralPermission to usememberBorrisholt6 Jul '05 - 0:59 
GeneralPermission to usememberNightfox21 Mar '05 - 21:34 
GeneralPermission.memberJijoraj29 Sep '04 - 0:26 
Generaluse camel on Linuxmembergretp5 Aug '04 - 9:29 
GeneralHyperThreading (Physical x Logical Processor)memberleandrobecker28 Jun '04 - 14:19 
GeneralCache line datamemberAdi Shavit16 Jun '04 - 1:45 
GeneralProblem with Frequencymemberdum26 Mar '04 - 3:05 
QuestionHow to make CPU ID enable to get?membergkey26 Feb '04 - 23:43 
AnswerRe: How to make CPU ID enable to get?membervoodoopriestess27 Feb '04 - 3:47 
GeneralRe: How to make CPU ID enable to get?membergkey27 Feb '04 - 14:21 
GeneralPermission Requiredmemberkashi_mughal@hotmail.com11 Feb '04 - 17:43 
GeneralRe: Permission Requiredmembervoodoopriestess27 Feb '04 - 3:38 
GeneralProblems using your software....memberMattBarker10 Feb '04 - 4:38 
Generalf***ing programsussFucking Bush Fucking USA21 Oct '03 - 20:12 
GeneralHyper-Threading Identification is not working correctlymembercongc3 Oct '03 - 8:57 
GeneralRe: Hyper-Threading Identification is not working correctlymembercongc3 Oct '03 - 9:05 
GeneralFeatures struct needs clearing.memberHazmatt31 Jan '03 - 10:30 
GeneralRe: Features struct needs clearing.memberbobives19 Aug '03 - 0:00 
QuestionHow can I use your source code?memberGE22 Jan '03 - 21:40 
AnswerRe: How can I use your source code?membervoodoopriestess23 Jan '03 - 8:23 
GeneralWhere do you get Vendor ID Device ID databasememberleandrobecker22 Jan '03 - 6:30 
GeneralRe: Where do you get Vendor ID Device ID databasemembervoodoopriestess23 Jan '03 - 8:27 
GeneralRe: Where do you get Vendor ID Device ID databasememberleandrobecker23 Jan '03 - 8:33 
QuestionWhy __cdecl calling convention?memberDaniel S.16 Jan '03 - 20:04 
AnswerRe: Why __cdecl calling convention?membervoodoopriestess16 Jan '03 - 21:07 
GeneralRe: Why __cdecl calling convention?memberDaniel S.17 Jan '03 - 3:22 
GeneralMultithreading doesnt work correctlymembermfclearner16 Jan '03 - 8:18 
GeneralRe: Multithreading doesnt work correctlymemberTim Smith16 Jan '03 - 8:24 
Generalrelease the source lukemembersaltynuts200215 Jan '03 - 19:36 
GeneralRe: release the source lukemembervoodoopriestess15 Jan '03 - 21:00 
GeneralNice app: but incorrect detection of multiple processorsmemberSonar15 Jan '03 - 16:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130516.1 | Last Updated 15 Jan 2003
Article Copyright 2002 by voodoopriestess
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid