-- TURN WORD-WRAP ON --

CPUID Component for Delphi 32-bit and cls_ID Class module
=========================================================

QUICKSTART
==========
Run TRYCPUID.EXE to see what it can do.
(If you are reading this by doubleclicking README.TXT in Winzip, then
 you can doubleclick TRYCPUID.EXE now without unpacking the Zip)
Note: The Delphi 3 source code for TRYCPUID is in TRYVCL.ZIP 

VERSION
=======
The version number is a string property (TCPUID).VCLVersion in TCPUID

CREDITS
=======
(c) NPS, 1997 - Idea, realisation, adoptation IsCPUID_Available (kvk@estpak.ee)
(c) Alex Abreu, 1997 - IsCPUID_Available source and idea (simonet@bhnet.com.br)
Assembler code portions (c)1995 Intel Corp.
Gordon Bamber,June1998 Converted into a class + VCL (gbamber@mistral.co.uk)
TRYCPUID.EXE (c)1998 Gordon Bamber

PURPOSE
=======
The VCL has obvious uses in identifying the hardware system (Use my OS VCL for the operating system)
The Class might be useful in software registration routines.
CPUSpeed is obtained:
1) If possible, by raw speed test (Takes a second or so)
2) If not, via the registry (NT only)
The TimeStamp is updated every processor cycle (i.e. 200,000,000 times/sec on a 200MHz machine)
but is only read once, when the VCL is first loaded. Call .UpdateTimeStamp for the current value.
If the processor does not support the CPUID instruction, an attempt is made to identify
the type (i.e. 8086, 80286, 80386, 80486). A clone may not give any information at all.

INSTALLATION
============
VCL: Make sure that CPUID.PAS and CPUID.DCR are in appropriate paths, and
use 'Install new Component', pointing to 'CPUID.PAS' as the source.
It will install on the 'Freeware' tab.
(D3) I have included the DPK,DPL and RES files if you wish to install as a Package.
CLASS: see below.

USE (VCL)
=========
The CPUID component exposes the ID information of the current system CPU
as read-only proprties.
Note: ID1 is an amalgam of the Family, Stepping etc, and will not be unique.
ID4 is a number made up of Bit-flags that defines the 'capabilities' of the CPU'
There are a number of useful methods that can be viewed by calling either:
(TCPUID).ShowAbout or (TCPUID).ShowPublicMethods

The VCL has a number of Super-Hires timing functions.

USE (CLASS)
===========
1) Put cls_ID in your Uses clause.

2) Declare a variable of the class e.g. 
 Var CPUID:TCPUID

3) Instantiate the class e.g.
 CPUID:=TCPUID.Create;

4) Use the properties e.g.
 label1.Caption:=IntToStr(CPUID.ID1);

5) Free the class e.g.
 CPUID.Free;
You can of course, install the CPUID.PAS VCL code as a class (see Delphi documentation)

Note: ID1 is an amalgam of the Family, Stepping etc, and will not be unique.
ID4 is a number made up of Bit-flags that defines the 'capabilities' of the CPU'
See the example project in CLASS.ZIP for details.

DISTRIBUTION
============
I have converted existing code (see CREDITS above), but I understand
that the original code is released as freeware. Certainly, this conversion is.
For commercial use, contact the original authors. Most of the new code has
been gleaned from the Intel site.

June 1998
Gordon Bamber
Maxim Training
Brighton UK
gbamber@mistral.co.uk
http://www.mistral.co.uk/gbamber/