home *** CD-ROM | disk | FTP | other *** search
/ Chip 2009 November / Chip_2009.11_CD.iso / BootCD / mix.uha / CHKCPU.TXT < prev    next >
Encoding:
Text File  |  2008-02-16  |  22.1 KB  |  450 lines

  1.     CHKCPU
  2.     07/07/2006
  3.     by Jan Steunebrink
  4.  
  5.     Homepage: http://web.inter.nl.net/hcc/J.Steunebrink/
  6.     E-mail  : J.Steunebrink@net.HCC.nl
  7.  
  8.     CPU Identification utility v1.12
  9.     --------------------------------
  10.  
  11. Introduction
  12. ------------
  13. After a CPU and/or motherboard upgrade, it can be difficult to find the
  14. correct motherboard jumper settings for clockspeed, clock multiplier,
  15. and (for 486 only) internal cache Write-Back/Write-Through mode selection.
  16. I wrote the CHKCPU utility to have an easy check on these settings.
  17. On the other hand, CHKCPU is also useful for checking the CPU type and speed
  18. on a given machine and, due to its text-based output, information from CHKCPU
  19. can easily be used to get CPU info from each machine in a network by calling
  20. CHKCPU from the network log-on script.
  21.  
  22. The program
  23. -----------
  24. The program comes in a ZIP-file (CKCPU112.ZIP) which should contain the
  25. following 2 files: CHKCPU.EXE  ;the program
  26.                    CHKCPU.TXT  ;this text file.
  27. The files have a date-time stamp of 07/07/06 - 1:12 am.
  28. The program is written in assembly language and it is freeware.
  29.  
  30. The program is started by typing CHKCPU at the command prompt.
  31. CHKCPU can be run from the DOS prompt or from a DOS-box within Windows.
  32. CHKCPU is designed to run under DOS 5.0 or higher, or any version of Windows.
  33. The behavior of CHKCPU under OS/2 is unknown.
  34.  
  35. For complete information, I recommend running CHKCPU after a clean boot
  36. to DOS, without an expanded memory manager (EMM386 or QEMM) loaded.
  37. On most CPUs, CHKCPU can indicate the Clock multiplier and Bus clock speed
  38. only in 'Real mode'.
  39.  
  40.  
  41. CHKCPU output examples
  42. ----------------------
  43. On my upgraded 586 PC, CHKCPU displays the following information:
  44.  
  45.  CPU Identification utility v1.12                 (c) 1997-2006 Jan Steunebrink
  46.  ------------------------------------------------------------------------------
  47.  CPU Vendor and Model: AMD K6-III+ 450/475/500/550
  48.  Internal CPU speed  : 601.2 MHz  (using internal Time Stamp Counter)
  49.  Clock Multiplier    : 6.0 
  50.  Bus clock speed     : 100.2 MHz
  51.  CPU-ID Vendor string: AuthenticAMD
  52.  CPU-ID Name string  : AMD-K6(tm)-III Processor
  53.  CPU-ID Signature    : 05D0
  54.                        |||+- Stepping or sub-model no.
  55.                        ||+- Model: Indicates CPU Model and 486 L1 cache mode
  56.                        |+- Family: 4=486, Am5x86, Cx5x86
  57.                        |           5=Pentium, Nx586, Cx6x86, K5/K6, C6, mP6
  58.                        |           6=PentiumPro/II/III, CxMII/III, Athlon, C3
  59.                        |           F=Pentium4, Athlon64
  60.                        +- Type: 0=Standard, 1=Overdrive, 2=2nd Dual Pentium
  61.  Current CPU mode    : Real
  62.  Internal (L1) cache : Enabled in Write-Back mode
  63.  
  64. On my laptop CHKCPU shows:
  65.  
  66.  CPU Identification utility v1.12                 (c) 1997-2006 Jan Steunebrink
  67.  ------------------------------------------------------------------------------
  68.  CPU Vendor and Model: Intel PentiumII 233-366 A0-step for mobile use
  69.  Internal CPU speed  : 367.4 MHz  (using internal Time Stamp Counter)
  70.  Clock Multiplier    : 5.5 
  71.  Bus clock speed     : 66.8 MHz
  72.  CPU-ID Vendor string: GenuineIntel
  73.  CPU-ID Signature    : 066A
  74.                        |||+- Stepping or sub-model no.
  75.                        ||+- Model: Indicates CPU Model and 486 L1 cache mode
  76.                        |+- Family: 4=486, Am5x86, Cx5x86
  77.                        |           5=Pentium, Nx586, Cx6x86, K5/K6, C6, mP6
  78.                        |           6=PentiumPro/II/III, CxMII/III, Athlon, C3
  79.                        |           F=Pentium4, Athlon64
  80.                        +- Type: 0=Standard, 1=Overdrive, 2=2nd Dual Pentium
  81.  Current CPU mode    : Real
  82.  Internal (L1) cache : Enabled in Write-Back mode
  83.  
  84. Apart from this 'Normal' display, CHKCPU supports command-line switches
  85. to get another format or to display additional CPU information.
  86. You can get a list of these switches with the command CHKCPU /? or /H
  87. The following switches are supported:
  88. - With CHKCPU /C you get the CPUID only mode. In this mode, any code that
  89.   does more than CPUID data processing, like speed measurement, is skipped.
  90.   So this mode works like a safe detection mode and can be used for
  91.   troubleshooting problems when using CHKCPU.
  92. - With CHKCPU /D you get the Debug mode. It displays a dump of raw OS and
  93.   relevant CPUID level information. Great for troubleshooting "Unknown"
  94.   indications or getting info on new CPU models.
  95. - With CHKCPU /I you force the use of the Instruction timing method for CPU
  96.   speed measurement. Useful if the TSC method gives an incorrect reading.
  97. - With CHKCPU /R you force the use of Real (or Virtual) mode. Protected
  98.   mode via the DOS Protected Mode Interface is then not used.
  99. - With CHKCPU /S you get a Short display of CPU Type and Speed only.
  100.   Intended for use in network logon scripts. The output has no trailing CR.
  101. - With CHKCPU /V you get the Verbose mode. It displays additional CPUID info
  102.   like CPU features and the sizes of the L1 and integrated L2/L3 cache.
  103.   For CPUs with split Data/Instruction L1 caches, the combined value is shown.
  104.   Some CPU features are only displayed for specific CPUs. These are:
  105.    'AMD MMX extensions' and 'AMD 3DNow! extensions' for AMD K6 and higher,
  106.    'CPU Serial Number Enabled' for the PentiumIII,
  107.    'Hyper-Threading technology' and '64-bit support'
  108.     for the Pentium 4 and Athlon 64.
  109.   The CPU features and the size of the caches, are all derived from
  110.   the CPU-ID information.
  111.   Note that on Dual-Core CPUs the sizes of the L1 and L2 cache are indicated
  112.   for one core, unless a combined L2 cache is used by the CPU in question.
  113.   In the later case, the total L2 cache size of the CPU is indicated.
  114.   A L3 cache, if present, is usually a combined cache.
  115.  
  116. Switches can be combined. Example: CHKCPU /S /C gives a short display of
  117. the CPU type only. The speed is not displayed.
  118. The /S switch has priority over the /D and /V switches, and the /D switch
  119. has priority over the /V switch.
  120.  
  121. CHKCPU /V under WinXP on my Athlon XP (Barton) box looks like:
  122.  
  123.  CPU Identification utility v1.12                 (c) 1997-2006 Jan Steunebrink
  124.  ------------------------------------------------------------------------------
  125.  CPU Vendor and Model: AMD Athlon XP 2000+-3200+
  126.  Internal CPU speed  : 1831.9 MHz  (using internal Time Stamp Counter)
  127.  Clock Multiplier    : Available only in Real Mode!
  128.  CPU-ID Vendor string: AuthenticAMD
  129.  CPU-ID Name string  : AMD Athlon(TM) XP 2500+
  130.  CPU-ID Signature    : 06A0
  131.  CPU Features        : Floating-Point Unit on chip: Yes
  132.                        Virtual Mode Extensions    : Yes
  133.                        Time Stamp Counter         : Yes
  134.                        MMX instruction set        : Yes
  135.                        AMD MMX extensions         : Yes
  136.                        3DNow! instruction set     : Yes
  137.                        AMD 3DNow! extensions      : Yes
  138.                        Streaming SIMD Extensions  : Yes
  139.                        SSE2 support               : No
  140.  Current CPU mode    : Protected
  141.  Internal (L1) cache : Enabled in Write-Back mode
  142.  Size of L1 cache    : 128 KB
  143.  Integrated L2 cache : 512 KB
  144.  
  145.  
  146. CHKCPU recognizes any 386 or higher CPU, however detailed information can
  147. only be displayed for CPUs which support the CPUID instruction or
  148. Cyrix CPUs with Device Identification Register (DIR) support.
  149. This covers some 486 and all 586/Pentium and higher CPUs.
  150. CHKCPU recognizes CPUs from Intel, AMD, NexGen, Cyrix/IBM/TI, UMC, IDT, VIA,
  151. Rise, and Transmeta.
  152. If CHKCPU is run on a 386 or (non-Cyrix) 486 CPU without CPUID support,
  153. the CPU will be indicated as a 'classic' 386 or 'classic' 486 and a shortened
  154. display with only speed and (if present) cache information will follow.
  155.  
  156. On Cyrix CPUs, the CPUID instruction can be disabled via a CPU configuration
  157. register. On some PCs the BIOS disables CPUID during boot-up. CHKCPU checks
  158. for this condition and enables CPUID again. All other Cyrix CPU configuration
  159. registers that CHKCPU uses are restored to their previous state.
  160.  
  161. On IDT and VIA CPUs, the CPUID Vendor string and Signature can be programmed
  162. to any value. CHKCPU checks for this condition and temporarily disables this
  163. programming to show the real Vendor string and Signature of these CPUs.
  164. However, this check can only be done in 'Real mode' and is therefore skipped
  165. if the CPU is in 'Virtual or Protected mode' (EMM386, Windows).
  166.  
  167.  
  168. Clock multiplier and CPU speed
  169. ------------------------------
  170. Since the Intel 486DX2 hit the market, most CPUs run internally faster
  171. than externally.
  172. The Internal CPU speed display indicates the true internal CPU clock speed.
  173. The internal CPU clock speed = Bus clock X Clock multiplier.
  174. The Bus clock is the speed of the motherboard clock.
  175. On Pentium class CPUs, the clock multiplier is usually selectable in steps
  176. of 0.5 (x1.5, x2, x2.5, x3 etc.).
  177. Some CPUs have a fixed multiplier factor (Celeron, PentiumIII/4), and some
  178. use fractional factors like x1.75 (K5) or x2.33 (Winchip-2A).
  179. Modern CPUs (Athlon64/Pentium4) use whole numbers as multiplier factor.
  180.  
  181. Most CPUs provide data on which Clock multiplier setting they are running.
  182. CHKCPU will display the Clock multiplier when available, and also
  183. calculate and displays the Bus clock speed in this case.
  184. Note that the classic Pentiums, like the Intel Pentium I, Pentium MMX, and
  185. AMD K6 do not provide any clock multiplier data.
  186.  
  187. For Intel CPUs the internal speed equals the rating. So a Pentium 200 will
  188. run internally at 200 MHz. (66.6 x 3)
  189. For AMD, Cyrix, and Rise CPUs the internal speed can be lower than the PR
  190. rating due newer and more efficient design.
  191. For the K6-2 and later AMD CPUs upto 1400MHz, the internal speed equals the
  192. rating but modern CPUs use a performance figure as rating.
  193.  
  194. CHKCPU measures the CPU speed by accurately timing the execution of a bunch of
  195. slow 'Divide' instructions.
  196. For Pentium class CPUs however, the internal Time Stamp Counter (TSC) is used
  197. whenever possible to further improve the accuracy of the speed measurement.
  198. A message behind the CPU speed display indicates if the TSC is used.
  199. As using the TSC would crash the program when the CPU is in 'Virtual mode',
  200. the CPU speed measurement switches back to the (less accurate) instruction
  201. timing method when the CPU is not in 'Real or Protected mode'.
  202.  
  203.  
  204. Internal (L1) cache mode
  205. ------------------------
  206. CHKCPU detects if the internal (Level 1) cache is disabled or enabled.
  207. If enabled, CHKCPU indicates if the cache operates in the Write-Through
  208. (read only cache) or Write-Back (read and write cache) mode.
  209. For the 486 CPU family, this information is derived from the CPU-ID signature.
  210. For Cyrix 486/5x86 CPUs, Configuration Control Register #2 (C2h) bit 1 (WBAK
  211.  - Write Back Cache Interface Pins Enable) supplies this information.
  212.  
  213. The Pentium and higher CPU families normally operate their L1 cache in
  214. Write-Back mode. Exceptions are: the Nx586, the Intel Pentium 63/83 ODP (P24T)
  215. and the Cyrix 6x86/6x86MX/MII.
  216. The Nx586 has only Write-Through mode and is indicated as such.
  217. The P24T can operate in either the Write-Through or Write-Back mode.
  218. For this CPU, CHKCPU uses a special routine to detect the difference.
  219. The Cyrix 6x86 series usually operates in Write-Back mode but can be switched
  220. to Write-Through mode by enabling CR0 bit 29 (NW - No Write-back).
  221. CHKCPU checks this bit and displays the L1 cache mode accordingly.
  222. For all other Pentium class CPUs, CHKCPU assumes Write-Back mode.
  223.  
  224. Note that for both the Nx586 and the P24T the CPU needs to be in 'Real mode'
  225. to be able to check the L1 cache mode.
  226. This check is therefore skipped if these CPUs are not running in 'Real mode'.
  227.  
  228.  
  229. Other display details
  230. ---------------------
  231. The CPU-ID Name string is only displayed when supported by the CPU.
  232. This name string is stored in the CPU and is usually programmed into the CPU
  233. by the manufacturer or by the BIOS at boottime.
  234.  
  235.  
  236. Error and Unknown messages
  237. --------------------------
  238. Although CHKCPU is a 16-bit DOS program, it has to use a lot of 32-bit
  239. instructions to do its work so it needs to run on a 32-bit CPU.
  240. If the program is run on a 16-bit CPU like the 8086/88, 80186/88, or 80286
  241. you will see:
  242.  ERROR: This program requires a 386 or higher CPU!
  243. Note: If the /s option is used, you only see: No 386+
  244.  
  245. If CHKCPU is unable to detect the CPU Vendor you get an "Unknown" indication.
  246. If CHKCPU is unable to detect the CPU Model you'll see -Unknown model-.
  247. "Unknown" indications are also possible if CHKCPU is unable to detect the
  248. Clock Multiplier or L1 cache size.
  249.  
  250. If a Cyrix CPU is detected but no DIR support is found you get:
  251.  Cyrix Device Id Regs: - DIR registers could not be found -
  252. This is correct on the early Cx486 CPUs but most Cx486 and all Cx5x86 and
  253. later Cyrix CPUs should support the Device Identification Registers.
  254.  
  255. On CPUs without CPUID support, CHKCPU will indicate:
  256.  CPU-ID Vendor string: - No CPUID -
  257. This the case on 386 and most 486 CPUs, and the Cyrix/IBM 5x86.
  258.  
  259.  
  260. Acknowledgments
  261. ---------------
  262. I could not have written this program without the hard work of these people:
  263. - Christian Ludloff http://www.sandpile.org/ for his unsurpassed amount and
  264.   detail of CPU information.
  265. - Grzegorz Mazur http://grafi.ii.pw.edu.pl/gbm/x86/ for publishing the basic
  266.   algorithms for CPU detection.
  267. - Frank van Gilluwe, author of "The Undocumented PC" (second edition); still
  268.   my favorite hardware book.
  269.   The internal CPU speed detection routine according the instruction timing
  270.   method is based on ideas from his book.
  271.  
  272.  
  273. Feedback requested
  274. ------------------
  275. If you encounter an "Unknown" message or if you have any questions regarding
  276. this program, please send me an E-mail with your CPU details and
  277. the CHKCPU /V and CHKCPU /D outputs.
  278. You can use DOS's redirect and append functions to get the outputs in a file.
  279. E.g. CHKCPU /V > MYCPU.TXT and CHKCPU /D >> MYCPU.TXT
  280.  
  281. J.Steunebrink@net.HCC.nl
  282.  
  283. ------------------------------------------------------------------------------
  284. Chkcpu revision history:
  285.  
  286. Versions 1.12
  287. 07/07/2006
  288. - Updated the CPU data for new AMD Athlon 64, Athlon 64 X2, Sempron, and
  289.   Intel Pentium M, Celeron D, Pentium 4, Pentium D, Xeon, and VIA C3 models.
  290. - Added support for the Intel Core Solo/Duo and Transmeta Efficeon.
  291. - Enabled SSE3 display for any CPU that supports SSE2.
  292. - Corrected the Hyper-Threading display on Dual-Core CPUs.
  293. - Improved support for old Cyrix/TI CPUs like the TI486DX4.
  294. - Expanded the Debug display with results from various CPU tests in case
  295.   CPUID is not supported.
  296.  
  297. Versions 1.11
  298. 07/07/2005
  299. - Updated the CPU data for new AMD Opteron, Athlon 64 (FX), Sempron, Turion,
  300.   Intel Pentium M, Pentium 4, and Celeron D models.
  301. - Added support for the Dual-Core AMD Opteron, Athlon 64 X2,
  302.   and Intel Pentium D CPUs.
  303. - Fixed a bug in the Hyper-Threading display.
  304. - Added Hyper-Threading and SSE3 display for the Athlon 64.
  305. - Added 64-bit support display for AMD Opteron, Athlon 64 (FX), Sempron,
  306.   Turion, and Intel Celeron D, Pentium 4, and Pentium D CPUs.
  307.  
  308. Versions 1.10
  309. 10/10/2004
  310. - Long overdue Chkcpu revision ;-)
  311. - Updated the CPU data for new AMD Opteron, Athlon 64 (FX), Athlon XP, Duron,
  312.   Sempron, Intel Celeron, PentiumIII, Pentium M, Pentium 4, Celeron D, Xeon,
  313.   and VIA C3 models.
  314. - Added detection of the AMD Multi Processor platform. This allows correct
  315.   differentiation between Athlon MP, Athlon XP, and Sempron models.
  316. - Added Clock multiplier support for the AMD Opteron, Athlon 64 (FX), Intel 
  317.   Pentium M, Celeron M, and VIA C3 Nehemiah core.
  318. - Fixed the incorrect CPU features display on newer Pentium 4 models.
  319. - Added CPU features display for SSE2, SSE3, and Hyper-Threading.
  320. - Moved the Integrated L2 cache size display in Verbose mode to the bottom
  321.   of the display, just below the L1 cache size.
  322. - Added Integrated L2 cache display for the VIA C3.
  323. - Added an Integrated L3 cache display for the Pentium 4.
  324. - Changed the Debug mode display to only show CPUID levels relevant for the
  325.   detected CPU.
  326.  
  327. Version 1.9
  328. 10/10/2002
  329. - Updated the CPU data for new AMD Athlon, Duron, Intel Celeron, PentiumIII,
  330.   Pentium 4, Celeron 4, and VIA C3 models.
  331. - Fixed the incorrect multiplier indication on newer Pentium 4 and Athlon CPUs.
  332. - Added a CPU-ID Name string display. If the CPU supports it, this function
  333.   displays the CPU Name or Brand string as stored in the CPU.
  334.  
  335. Version 1.8
  336. 07/07/2001
  337. - Updated the CPU data for new AMD K6-III+, Athlon, Duron, Intel Celeron,
  338.   PentiumIII, and VIA models.
  339. - Added support for the Pentium 4 and for Transmeta CPUs.
  340. - Corrected the VIA Cyrix III detection (Samuel core).
  341. - Added Clock multiplier support for the AMD Athlon, Duron, and VIA Cyrix III.
  342. - Added a /C command-line switch for troubleshooting CHKCPU problems.
  343. - Fixed a bug that caused floppy or sound problems or crashed Windows on PCs
  344.   which use a specific Intel I/O chip and a Celeron/PentiumII/III CPU.
  345.   This bug affected the Compaq Armada laptop series and several Dell laptop
  346.   and desktop models.
  347.  
  348. Version 1.7
  349. 08/08/2000
  350. - Updated the CPU data for new AMD K6-2+/III+, Athlon-E, Intel Celeron and
  351.   PentiumIII-E models, and added support for the AMD Duron and CyrixIII (Joshua).
  352. - Added a separate Clock multiplier display.
  353. - If the Clock multiplier value is know, CHKCPU will display the Bus clock
  354.   speed as well.
  355. - Rewritten the Internal speed detection routine to improve the accuracy of
  356.   the speed indication under Windows NT/2000.
  357. - Added code to prevent Windows from switching tasks during speed measurement.
  358.   This should prevent the occasional freak CPU speed readings under Windows.
  359. - Added detection for L1 cache WB/WT mode on the Cyrix 6x86/M2 series.
  360.   Previous versions of CHKCPU indicated the L1 cache mode of these CPUs
  361.   always as Write-Back.
  362. - Fixed the too high CPU speed indication on the Cyrix 486 and 6x86, and the
  363.   too low indication on the Cyrix 5x86.
  364. - Fixed a bug that crashed the program on a Cyrix 486.
  365.  
  366. Version 1.6
  367. 03/03/2000
  368. - Updated the CPU data for new AMD K6-2, AMD Athlon, and Intel Celeron models,
  369.   and added support for the Intel PentiumIII-E (Coppermine).
  370. - Fixed the 45% too low speed reading on the AMD Athlon when the TSC is not
  371.   used. (instruction timing method).
  372. - Increased the accuracy of the CPU speed measurement for fast CPUs, like the
  373.   AMD K6-2/III, Athlon, and Intel Celeron/PentiumII/III(-E).
  374. - Rewritten the basic CPU detection algorithm for better detection of NexGen,
  375.   Cyrix, and IDT CPUs. This algorithm works also in Virtual and Protected mode.
  376. - Added support for 386 and (non-Cyrix) 486 CPUs which do not know the CPUID
  377.   instruction. CHKCPU will no longer abort with an error on these CPUs.
  378. - Fixed a bug that crashed CHKCPU in Real mode on a Nx586, and fixed
  379.   the L1 cache mode detection on this CPU.
  380. - Changed the logic for the command-line switches so that in case of an
  381.   unrecognized option, the display defaults to the Short mode. In addition,
  382.   the command-line switches will also work if the space between CHKCPU and
  383.   the command-line switch, or between the switches, is omitted.
  384. - The speed reading in Short mode is now rounded off and displayed in
  385.   whole MHz.
  386.  
  387. Version 1.5
  388. 09/09/99
  389. - Updated the CPU data for new AMD K6-2, Intel Celeron, PentiumIII, and
  390.   IDT Winchip steppings, and added the AMD Athlon (K7).
  391. - Fixed a bug where an IDT CPU was displayed as an "IDT Rise -Unknown model-".
  392. - Added support for Command line switches. You can get a list with CHKCPU /?
  393. - An Intel Celeron CPU is now indicated as such. CHKCPU v1.5 is able to
  394.   differentiate between a PentiumII and a Celeron with the same signature.
  395. - Moved the integrated L2 cache size display to the Verbose mode, because it
  396.   is no longer required for visual differentiation between a PentiumII and
  397.   a Celeron.
  398. - Added display of various CPU features. (Verbose mode only)
  399. - Added display of the L1 cache size. (Verbose mode only)
  400.  
  401. Version 1.4
  402. 04/04/99
  403. - Updated the CPU data with the new AMD K6-2 (CXT-core), K6-III,
  404.   Intel PentiumII/Celeron, and PentiumIII steppings.
  405. - Added support for the Rise mP6 CPU.
  406. - Added display of the amount of integrated L2 cache on the PentiumPro/II/III,
  407.   AMD K6-III, and Cyrix M3 CPUs. For the Intel PentiumII an additional
  408.   'Celeron or Celeron-A type' indication is added when appropriate.
  409. - Rewritten the program so that it runs in (16-bit) Protected mode whenever a
  410.   DOS Protected Mode Interface (DPMI) host is present. (Windows, OS/2, etc.)
  411.   This improves the speed display accuracy in the DOS-box for all CPUs and in
  412.   addition, under Windows 3.x/95/98 on the Pentium class CPUs, the internal
  413.   Time Stamp Counter can now be used, just as in Real mode.
  414. - Added display of the Current CPU mode: Real, Virtual, or Protected.
  415.  
  416. Version 1.3
  417. 12/12/98
  418. - Updated the CPU data. The new AMD K6-2, IDT C6-2, and Intel PentiumII/
  419.   Celeron/Xeon steppings are now supported.
  420. - Added a new Internal speed detection routine for all CPUs that support the
  421.   Pentium Time Stamp Counter. This results in a more accurate speed display,
  422.   especially on non-Intel CPUs (only in Real mode).
  423. - Made the program better usable under Windows by adding checks for
  424.   protected mode before using 'restricted' instructions.
  425.   This avoids triggering a General Protection Fault.
  426. - Fixed a bug where the program was aborted by Windows if run on a 386
  427.   or (non-Cyrix) 486 CPU without CPUID support.
  428.  
  429. Version 1.2
  430. 04/04/98
  431. - Updated the CPU data. The new Pentium II 333 (Deschutes) is now supported.
  432. - Fixed the Intel Pentium Pro detection. CHKCPU v1.1 indicated these CPUs as
  433.   a "Cyrix -Unknown model-".
  434.  
  435. Version 1.1
  436. 02/02/98 First update.
  437. - Updated the CPU data.
  438. - Added CPU multiplication factor indication for the Cx486DX4 and AMD K5.
  439. - Expanded the internal CPU speed display with a decimal.
  440. - Updated the internal cache mode detection for early Cyrix/TI CPUs.
  441. - Fixed the Intel Pentium 63/83 ODP (P24T) internal cache mode detection.
  442.   CHKCPU v1.0 indicated the internal cache mode of the P24T always as WB.
  443.   This is not correct as the P24T can also operate in WT mode.
  444.   For this CPU, a routine has been added to detect the difference.
  445.  
  446. Version 1.0
  447. 12/12/97 First release.
  448. ------------------------------------------------------------------------------
  449.  
  450.