Come on, don't be shy... I know I've been neglecting the assembly programmers. I still haven't gotten round to including a .inc file for MASM users.
I'm going to fix that tonight.
I will also put a new 0.4a release together, since the problem with Mac OS X was solved a while ago, the Dependencies project is now in a workable state, and I've added separate VS2005 and VS2008 projects to all code.
While I'm at it, I should also include a changelog, because so far there hasn't been an overview of developments with the releases.
I should also start using SVN tags to indicate which files belong to which release. Perhaps I should also create source code branches everytime I build a new release.
I have neglected to do that so far, so it's not very easy to track developments back to releases. Mostly a cosmetic issue, since it's such a small project at this stage, but still... better to get everything right, and use the experience for future updates/projects aswell.
Another thing I should do perhaps is to create a custom flag for 64-bit or 32-bit, rather than testing _M_X64 and __x86-64__ in every place (both MSVC and gcc flags).
Perhaps it's better to just have one #ifdef _M_X64 or __x86-64 #define 64bit, and then test only for 64bit in the actual code.

Out of interest: is anyone actually interested in using the library? Could be in any shape or form.
Posted on 2009-11-17 06:07:33 by Scali
Okay, I've been messing about with SVN... took a few more revisions than absolutely necessary I suppose, but I got it in the end...
I now have a /trunk and a /tags directory.
I've tracked down the revisions from which I made the original releases, and created tags for each release.
The main code is now moved from the root directory to the /trunk subdirectory.
I've also added a CHANGELOG.txt to the project.

I haven't had time to do a .inc file yet, and I want to do another few small tweaks to the code, and then 0.4a release.
Posted on 2009-11-18 16:22:32 by Scali
CPUInfo 0.4a release is here:

Changelog for Release 0.4a:
- Added CHANGELOG.txt to keep track of changes between releases
- Converted library code to basic ANSI C.
- Introduced CI_BOOL/CI_TRUE/CI_FALSE to make the code a bit more readable for plain C.
- Introduced CI_X64 flag to have compiler-specific flags only in the header.
- Added include files for MASM.
- Fixed inline asm for gcc, now also works with -fPIC option, and in 64-bit.
- Dependencies code is now functional, with the exception of SxS support.
Posted on 2009-11-23 10:51:11 by Scali
It incorrectly says that my Core 2 Duo supports Hyper Threading.

I have Core 2 Duo, Family 6, Model 15, Stepping 11, Revision G0.
Posted on 2009-11-24 13:26:47 by ti_mo_n

It incorrectly says that my Core 2 Duo supports Hyper Threading.

I have Core 2 Duo, Family 6, Model 15, Stepping 11, Revision G0.

No, that is correct. Every CPU since the Pentium 4 will report the HyperThreading flag. You have to compare the number of physical cores to the number of logical cores to determine whether HyperThreading is enabled.
Posted on 2009-11-24 14:17:05 by Scali
Oh, sorry, I thought this has already been processed. OK, so the app works correctly, then.
Posted on 2009-11-24 14:57:27 by ti_mo_n

Oh, sorry, I thought this has already been processed. OK, so the app works correctly, then.

Yea, it's a tad inconvenient... Problem is that CPUID can't give you that information (well, on Nehalem you can, with index 0Bh). I think you need to use APIC to get the number of physical CPUs. And that probably means that you'll need to use OS-specific functions.

If you want to know how it's done, here is an article and example code from Intel:

Since Vista, Windows also has a GetLogicalProcessorInformation() API, which is easier.
Posted on 2009-11-25 03:43:57 by Scali
I just got this email:
Software Downloads

Dear Sir/Madam lab testing team would like to inform you that your product CPUInfo has been listed and awarded by our editors:
CPUInfo is a simple freeware library created for determining CPU features, specs and related OS properties in an easy and unified way, among a wide range of CPUs and OSes.

The developers can use it as information (eg log/debug), and to select optimum codepaths at runtime.

The CPUInfo library is open source and free to use and modify under the BSD license.

CPUInfo includes a handy test application that displays some of the main features. The sourcecode can be studied to find out how to use the CPUInfo library and how to extract the information you are interested in, for use in your own applications.

After carefully testing your product, Editor Team decided to award your product with the Top Software Awards:'s team has also made a VIDEO TUTORIAL showing the installation, the main interface, the main features of CPUInfo, letting our visitors as well as the potential users of your product take a glance at the main qualities of this software before downloading it. This video tutorial is also intended to help beginners understand how to use your product:
CPUInfo Installation Video Tutorial

Moreover, has tested your software, CPUInfo on 02 08 2011 with 2 of the best antivirus engines available today. We have found it to be clean of any form of malware (viruses, spyware, adware, etc.) - the full reports are available here:

CPUInfo Antivirus Reports Editor Team would also like to congratulate you for the high quality standards achieved by your software. We're glad to be able to promote and support such high-quality products in any way we can.

To let your users know about this certification (and therefore about the fact that we consider your product to be a top one), you may display our awards or the conclusion of our review on your website: editor team:
"CPUInfo - simple, neat and handy library that determines and displays CPU information in an easy, unified and convenient way." Verified Certification:

Many of the other software publishers whose products have been awarded by have already listed our awards on their website. A link back from your website to your software URL on would also be very appreciated. It would also help our efforts to promote high quality software such as CPUInfo. Placing our image certificates on your website would also benefit your product as it would inspire trust in its qualities.

More information about your product's certification and the certification award is available on this page:

Looking forward to hearing from you.

Best Regards,

Rainer - Editor

At first I thought it was just some spam... you know, an automated script that clones SourceForge pages, in the hope for more hits/ad-revenue.
But then I looked at the actual page:
There is indeed a video tutorial there, and it doesn't look like it could have been generated by just a script.

I suppose the idea is still the same though: They want me to place these 'awards' on my project page, so they will get more hits... and they are also stealing away direct hits via Google from my original project page, with their clone page.

Nevertheless it is an interesting scheme. I wonder if they will pick up any of my other projects as well.
Posted on 2011-08-02 08:11:34 by Scali
Well, if you are a shareware author you can easily help download sites like those link to your site by submitting your product to the Association of Shareware Professionals.  There is a section which discusses their PAD file - an XML format file that allows sites to very easily download your product's information and list your info.  They even supply a PAD editor to make file creation extremely simple.

It's getting links from the highly ranked shareware download sites that you really want that help drive traffic your way.  Links from them also improve the visibility of your site with organic searches.

It's like todays App Stores, only more old school  8)
Posted on 2011-08-02 11:41:22 by p1ranha