more apps into testing folder
git-svn-id: svn://kolibrios.org@7900 a494cfbc-eb01-0410-851d-a64ba20cac60
4
programs/testing/cpuid/trunk/Build.bat
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo lang fix en >lang.inc
|
||||
@fasm cpuid.asm cpuid
|
||||
@pause
|
||||
@erase lang.inc
|
4329
programs/testing/cpuid/trunk/CPUID.ASM
Normal file
203
programs/testing/cpuid/trunk/HISTORY.TXT
Normal file
@@ -0,0 +1,203 @@
|
||||
;******************************************************************************
|
||||
; project name: CPUID
|
||||
; target platform: KolibriOS, x86 (IA-32), x86-64 achitectures
|
||||
; compability: CPUID works in MS Windows by means of emulator KlbrInWin from Diamond http://board.kolibrios.org/viewtopic.php?f=23&t=1273
|
||||
; compiler: flat assembler 1.70.03
|
||||
; version: 2.29
|
||||
; last update: 12 October 2014
|
||||
; maintained by: Sergey Kuzmin aka Wildwest
|
||||
; e-mail: kuzmin_serg@list.ru
|
||||
; site: http://coolthemes.narod.ru/files.html
|
||||
;******************************************************************************
|
||||
; Summary:
|
||||
; supported vendors - Intel, AMD, VIA, Cyrix, IDT (Centaur),Transmeta, Vortex86
|
||||
; displayed features - CPU frequency;
|
||||
; Internal Name;
|
||||
; Multiplier and System Clock frequency;
|
||||
; Standard and Extended Features;
|
||||
; CPU signature (family, model,stepping);
|
||||
; Codename;
|
||||
; L1, L2 and L3 Caches;
|
||||
; Technology;
|
||||
; CPU Vendor;
|
||||
; Type and Brand ID;
|
||||
; Logo for Vendors;
|
||||
; calculation of PR-rating for AMD AthlonXP;
|
||||
; Amout of RAM (available and total)
|
||||
; Highest input values for standard and extended calls
|
||||
; performed tests - Performance test (RSA encoding)
|
||||
;******************************************************************************
|
||||
;"To do" plans:
|
||||
; actual use of Brand ID for description of Intel's CPU, i.e. Celeron/Pentium separation;
|
||||
; remove support of Cyrix and early Centaur (IDT) - they are too old, rare and non-standard;
|
||||
; Sempron detection - probably they supports Brand-ID;
|
||||
; update caches descriptors for intel Core 1/2
|
||||
; quantity of logical CPU/cores - requires APIC ID analysis
|
||||
; newest AMD/Intel codename detection
|
||||
; improve support of Vortex86
|
||||
;******************************************************************************
|
||||
;HISTORY:
|
||||
;2.5: CPUID 15/08/2016 (not finished)
|
||||
;Authors:
|
||||
; Manasi Thakkar aka mat1854
|
||||
;Features:
|
||||
; (+) added saving of features from fork version 2.26pre in log
|
||||
; (+) fixed redraw bug, which appears if user execute save dialog
|
||||
; Known issues: Sempron marked as AthlonXP
|
||||
; second window doesn't closed when you close main window
|
||||
; incorrect cache detection for several models of newest Intel CPU, because they designed for another cache detection approach
|
||||
;-----------------------------------------------------------------------------
|
||||
;2.4: CPUID 09/08/2016
|
||||
;Authors:
|
||||
; Artem Azhbakov aka marting422
|
||||
; Nikita Moiseev aka Powerdogesss
|
||||
; Manasi Thakkar aka mat1854
|
||||
; Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
;Features:
|
||||
; (+) added detection of Intel Arrandale
|
||||
; (+) save log in text file;
|
||||
; (+) use Extended models to turn off multiplier detection for CPU's, which aren't supported;
|
||||
; (+) show multiplier numbers, if we detect something and show n/a, if we don't;
|
||||
; (+) merging of different versions from GSOC students;
|
||||
; (+) added detection of codenames for new Intel CPUs: IvyBridge, SandyBridge-E, Gulftown, Westmere-EX, Clarksfield, Bloomfield,Nehalem-EX, Yorkfield, Dunnington, Clovertown, Merom Conroe, Cedar Mill, Nocona Irwindale, NoconaIrwindale, Dothan, Cedarview, Lincroft and Pineview.
|
||||
; (+) added detection of AMD k-10 series: AMD Athlon 7750 Black Edition, Opteron 2300-series, Opteron 8300-series, Phenom X4, Phenom X3, Athlon X2, Sempron, Opteron (Shanghai) 2387, Opteron (Magny-Cours), Opteron (Shanghai) 8300 series, Turion II.
|
||||
; (+) fixed duplication in txt file
|
||||
; (+) save Codename in text file;
|
||||
; (+) fixed abstact examples in visualisation block for RSA encoding performance test
|
||||
;Known issues: Sempron marked as AthlonXP
|
||||
; second window doesn't closed when you close main window
|
||||
; incorrect cache detection for several models of newest Intel CPU, because they designed for another cache detection approach
|
||||
;-----------------------------------------------------------------------------
|
||||
;2.3: CPUID 12/10/2014 (not finished)
|
||||
;Authors: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
; Pavel Rymovskiy aka Heavyiron <Heavyiron@pisem.net>
|
||||
; fedesco
|
||||
;Features:
|
||||
; (+) 'choose FSB' button removed and related code changed in the way it would use FSB value detected by Ghost's code;
|
||||
; (+) fixed calculation of Extended model for newest Intel;
|
||||
; (+) initial support of new vendor Vortex86 - logo, caches, technology;
|
||||
; (+) Italian translation by fedesco;
|
||||
; (+) makefile for *nix by fedesco;
|
||||
; (+) new cache descriptors for Intel;
|
||||
; (+) fixed typo, which makes output of Brand ID for AMD CPU's at incorrect place by Heavyiron;
|
||||
; (+) fixed typo, which makes selection of incorrect codename for AMD F8x CPU's;
|
||||
; (+) added detection of Extended Model for Intel's CPU and example of it's use
|
||||
;Known issues: Sempron marked as AthlonXP
|
||||
; second window doesn't closed when you close main window
|
||||
; incorrect multiplier detection for newest CPU
|
||||
; incorrect cache detection for several models of newest Intel CPU, because they designed for another cache detection approach
|
||||
;-----------------------------------------------------------------------------
|
||||
;2.2: CPUID 01/05/2007
|
||||
;Authors: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
; Iliya Mikhailov aka Ghost <Ghost.nsk@gmail.com>
|
||||
; /^S0rG^\ <s0rg@ngs.ru>
|
||||
; Pavel Rymovskiy aka Heavyiron <Heavyiron@pisem.net>
|
||||
; Leency <Leency@email.ua>
|
||||
;Features:
|
||||
; (+) creative work by Leency - logos now much better and they take less size;
|
||||
; (+) changes from Heavyiron: client-relative drawing, title with function 0. It means the end of compatibility with MenuetOS!
|
||||
; (+) real-time RAM monitoring (previous versions showed changed amount of available RAM only at redraw event or CPUID window activation);
|
||||
; (+) fixed address of LAHF feature, added detection of CMPL, SVM, MOVCR8 technologies for AMD;
|
||||
; (+) fixed L2 cache size detection for VIA (they changed format from 8 bits to 16 bits several years ago);
|
||||
; (+) more macroses for Interface and Threads (from Menuett.inc written by /^S0rG^\, 2002), sources separated into several include files;
|
||||
; (++) more info about caches for VIA and Transmeta;
|
||||
; (+) added detection of DCA, SSSE3, VMX technologies for Intel;
|
||||
; (+) updated multiplier detection for AMD and Intel (thanks a lot to Ghost);
|
||||
;Known issues: Sempron marked as AthlonXP
|
||||
; second window doesn't closed when you close main window
|
||||
;-----------------------------------------------------------------------------
|
||||
;2.1: CPUID 10/01/2007
|
||||
;Author: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
;Features:
|
||||
; (++) more info about caches for AMD and Intel
|
||||
; (+) redesign
|
||||
; (+) fixes for names of some extended features
|
||||
; (+) fixed missing technology for some AMD64 cpu's
|
||||
; (+) detection of dual-core AMD Opteron, but I came to conclusion that detection of AMD Fxxh CPU's should be changed (don't know how yet)
|
||||
; (+) new caches for Intel
|
||||
; (+) fixed Celeron detection based on L2 cache size for newest Intel CPU (there are Celeron models with 512 Kb);
|
||||
; (+) CPUID now display System Clock with accuracy 0.01 MHz;
|
||||
; (+) new logo for Intel (they changed it some time ago);
|
||||
;Known issues: Sempron marked as AthlonXP
|
||||
; second window doesn't closed when you close main window
|
||||
;-----------------------------------------------------------------------------
|
||||
;2.0: CPUID 31/10/2006
|
||||
;Authors: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
; Eugeniy Grechnikov aka Diamond <diamondz@land.ru>
|
||||
; Iliya Mikhailov aka Ghost <Ghost.nsk@gmail.com>
|
||||
;Features:
|
||||
; (+) detection of Brand ID of AMD CPU's (Opteron etc - not finished)
|
||||
; (+) detection of Extended family and Model of AMD CPU's
|
||||
; (+) interface+(redesign)
|
||||
; (+) calculation of System Clock
|
||||
; (++) added multiplier detection for AMD and Intel (thanks a lot to Ghost)
|
||||
; (+) optimization of GIF decoder, code cleanup and bugfix by Diamond;
|
||||
; (+) fixed bug with MMX+ detection for Cyrix CPU (in second window;
|
||||
; it was properly recognized in main window);
|
||||
; (+) we show appropiate message in second window if Extended Features
|
||||
; ($8000_000x) aren't available;
|
||||
; (+) we mark unknown CPU models as "Next generation CPU";
|
||||
;Known issues: Sempron marked as AthlonXP
|
||||
; second window doesn't closed when you close main window
|
||||
;-----------------------------------------------------------------------------
|
||||
;1.1: CPUID 17/03/2006
|
||||
;Author: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
;Features:
|
||||
; (+) performance test now runs after click at "Press for more" button => we start app without test, i.e.
|
||||
; immediately, but application can be unstable during multiple switching between windows(need testing)
|
||||
; (++) added detection of total and available amount of RAM (would work only in KolibriOS)
|
||||
; (++) added detection of extended family and model (not shown, but if you want...);
|
||||
; (++) added detection of effective family and model;
|
||||
; (+) more codenames: Intel Tejas, Presler, Yonah, Conroe;
|
||||
; (+) more codenames: AMD Toledo;
|
||||
; (+) interface+(redesign).
|
||||
;Bugs: probably some non-critical graphical issues
|
||||
;Known issues: Sempron is not supported (marked as AthlonXP)
|
||||
;-----------------------------------------------------------------------------
|
||||
;1.0: CPUID 26/09/2005
|
||||
;Authors: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
; Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
; Andrey Halyavin aka halyavin <halyavin@land.ru>
|
||||
;Features:
|
||||
; (+) fixed bug, when processor doesn't support extented features and program don't report 'no' in such case
|
||||
; (+) fixed bug in CPU Type detection
|
||||
; (+) fixed bug, when program crashes on AMD AthlonXP when after click on 'Press for more' button
|
||||
; you click on 'Choose FSB' button;
|
||||
; (+) added output of highest standard and extended calls
|
||||
; (+) Extended Features(phase 1 - big part of AMD/Intel specific EF)
|
||||
; (+) reworked P-rating calculation for AMD AthlonXP ->
|
||||
; now one program for 266, 333, 400 MHz FSB
|
||||
; (but unstable - see Bugs section)
|
||||
; (+) support for Intel F5x, renamed C3(Esther) to C7(Esther)
|
||||
; (+) more codenames
|
||||
; (Intel: new Prescott's model; Dothan; VIA: Esther;
|
||||
; AMD: Newcastle, Paris, Winchester, San Diego, Venice, Palermo)
|
||||
; (+) performance test (RSA encoding, fixed-point arithmetics)
|
||||
; by Andrey Halyavin
|
||||
; (+) interface+(thanks to Mario79 for additional window
|
||||
; and to me for nice button)
|
||||
;Bugs: probably some non-critical graphical issues
|
||||
;Known issues: Sempron is not supported (marked as AthlonXP)
|
||||
;-----------------------------------------------------------------------------
|
||||
;0.9: CPUID 24/01/2005
|
||||
;Authors: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
; Madis Kalme aka Madis731 <madis.kalme@mail.ee>
|
||||
; Jeffrey Amelynck aka Profkid <the_adams_familie@hotmail.com>
|
||||
;Features:
|
||||
; (+) deleting leading whitespaces in Intel P4's internal name
|
||||
; by Madis Kalme
|
||||
; (+) all standard features
|
||||
; (+) more codenames (Transmeta series)
|
||||
; (+) caches for Cyrix
|
||||
; (+) Brand ID for Intel
|
||||
; (+) detect L3 cache for Intel
|
||||
; (+) detect Xeon (will be improved later, at this moment see Brand)
|
||||
; (+) interface+(redesign and grafical logos for vendors)
|
||||
; (+) MMX+ test for Cyrix
|
||||
; (+) Type for Intel
|
||||
;Bugs: no !!!
|
||||
;Known issues: Sempron is not supported (marked as AthlonXP)
|
||||
; caches for IDT is not detected
|
||||
;-----------------------------------------------------------------------------
|
||||
;early history was removed; download any old version of CPUID and read it, if you want
|
||||
;*****************************************************************************
|
91
programs/testing/cpuid/trunk/README.TXT
Normal file
@@ -0,0 +1,91 @@
|
||||
WINDOWS (1251) CODEPAGE
|
||||
|
||||
ENGLISH
|
||||
|
||||
Hi! My name is Sergey Kuzmin aka Wildwest.
|
||||
This is one of the mostly famous program for KolibriOS/MenuetOS.
|
||||
I called it CPUID. CPUID talks with you CPU and show log.
|
||||
Current version is 2.29 and you can use it on your own risk without any warranty.
|
||||
E-mail me (kuzmin_serg@list.ru) if you have some problems or suggestions.
|
||||
All righs on this program are mine, except parts of code written by other developers.
|
||||
|
||||
Further versions will be soon on my site: http://coolthemes.narod.ru/files.html
|
||||
|
||||
People from international KolibriOS/MenuetOS team help me and I wish to mention his effort here:
|
||||
|
||||
Ville Turjanmaa (Finland), which wrote MenuetOS;
|
||||
|
||||
Ivan Poddubny and /^S0rG^\ (Russia) for useful macroses;
|
||||
|
||||
Madis Kalme (Estonia), which wrote fix for strange Intel's Internal names;
|
||||
|
||||
Jeffrey Amelynck (Belgium), who send me logos and code for its displaying
|
||||
(code was based on macros, written by Evgeniy Pavlyushin (Russia), which was
|
||||
just a shell for GIF decoding routine made by Andrey Ivushkin (Ukraine));
|
||||
|
||||
Marat Zakiyanov (Russia) for its kind propose of help in creating additional window ;
|
||||
|
||||
Andrey Halyavin (Russia) for his patience during debugging performance test ;
|
||||
|
||||
Eugeniy Grechnikov (Russia) for great code clean-up and optimization;
|
||||
|
||||
Iliya Mikhailov (Russia) for piece of code from his great GMON;
|
||||
|
||||
Pavel Rymovskiy (Belarus) and Kirill Lipatov (Ukraine) for their work, which enhance look & feel of CPUID
|
||||
|
||||
fedesco (Italy) for makefile for compilation on *nix systems and for translation to Italian language.
|
||||
|
||||
Also I want to thank folks which help me by testing and suggestions -
|
||||
Sonny, Smiddy and all the RU-Team.
|
||||
|
||||
Please, test it and e-mail me screenshot.
|
||||
|
||||
The CPUID thread with announcements and discussion is at http://board.kolibrios.org/viewtopic.php?f=42&t=594
|
||||
|
||||
Bye...
|
||||
|
||||
|
||||
RUSSIAN
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> aka Wildwest.
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> KolibriOS/MenuetOS.
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CPUID <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2.29 <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> (kuzmin_serg@list.ru).
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: http://coolthemes.narod.ru/files.html
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> KolibriOS/MenuetOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>:
|
||||
|
||||
Ville Turjanmaa (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MenuetOS;
|
||||
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and /^S0rG^\ (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
|
||||
Madis Kalme (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>;
|
||||
|
||||
Jeffrey Amelynck (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
(<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GIF, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>));
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>;
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GMON;
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> CPUID;
|
||||
|
||||
fedesco (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><> makefile <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> *nix-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
Sonny, Smiddy <20> <20><><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" KolibriOS/MenuetOS.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> e-mail.
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> http://board.kolibrios.org/viewtopic.php?f=42&t=594
|
||||
|
||||
|
||||
|
3
programs/testing/cpuid/trunk/Tupfile.lua
Normal file
@@ -0,0 +1,3 @@
|
||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||
tup.rule("echo lang fix " .. ((tup.getconfig("LANG") == "") and "en" or tup.getconfig("LANG")) .. " > lang.inc", {"lang.inc"})
|
||||
tup.rule({"CPUID.ASM", extra_inputs = {"lang.inc"}}, "fasm %f %o -m70000" .. tup.getconfig("KPACK_CMD"), "CPUID")
|
BIN
programs/testing/cpuid/trunk/amd.gif
Normal file
After Width: | Height: | Size: 920 B |
254
programs/testing/cpuid/trunk/brand.inc
Normal file
@@ -0,0 +1,254 @@
|
||||
;//////////////////////////////////////////////
|
||||
;Decoding Brand ID for Intel
|
||||
|
||||
|
||||
|
||||
decodebrand:
|
||||
|
||||
|
||||
cmp dword[smallvendor], 'cAMD'
|
||||
jz amd_br
|
||||
cmp dword[smallvendor], 'ntel'
|
||||
jz intel_br
|
||||
jmp Bi00 ; if not AMD or Intel
|
||||
|
||||
amd_br: ;;;;;;;;;;;;;;;;;;;;; amd brand
|
||||
|
||||
xor eax,eax
|
||||
inc eax
|
||||
cpuid
|
||||
|
||||
cnnn0:
|
||||
test bl, bl
|
||||
jz cnnn1
|
||||
|
||||
rr:
|
||||
mov byte [brand], bl ;
|
||||
Text 60,250,0x00000000,abrand00, abrand00len-abrand00
|
||||
ret
|
||||
;jmp comppp
|
||||
|
||||
cnnn1:
|
||||
|
||||
mov eax, 0x80000001 ; CPUID ext. function 0x80000001
|
||||
cpuid
|
||||
|
||||
test ebx, ebx
|
||||
je Bi00
|
||||
mov [brand], ebx ;
|
||||
|
||||
comppp:
|
||||
cmp byte [brand+1], 4
|
||||
jb res1
|
||||
jz res2
|
||||
ja res3
|
||||
|
||||
|
||||
res1:
|
||||
Text 60,250,0x00000000,abrand0, abrand0len-abrand0
|
||||
ret
|
||||
|
||||
res2:
|
||||
Text 60,250,0x00000000,abrand1, abrand1len-abrand1
|
||||
ret
|
||||
|
||||
res3:
|
||||
Text 60,250,0x00000000,abrand2, abrand2len-abrand2
|
||||
ret
|
||||
;;;;;;;;;;;;;;;;;;;;; intel brand
|
||||
intel_br:
|
||||
xor eax,eax
|
||||
inc eax
|
||||
cpuid
|
||||
movzx ebx, bl
|
||||
mov [brand], ebx
|
||||
cmp0:
|
||||
test ebx, ebx
|
||||
je Bi00
|
||||
|
||||
cmp1:
|
||||
dec ebx
|
||||
je Bi01
|
||||
|
||||
cmp2:
|
||||
dec ebx
|
||||
je Bi02
|
||||
|
||||
cmp3:
|
||||
dec ebx
|
||||
je Bi03
|
||||
|
||||
cmp4:
|
||||
dec ebx
|
||||
je Bi04
|
||||
|
||||
cmp6:
|
||||
dec ebx
|
||||
dec ebx
|
||||
je Bi06
|
||||
|
||||
cmp7:
|
||||
dec ebx
|
||||
je Bi07
|
||||
|
||||
cmp8:
|
||||
dec ebx
|
||||
je Bi08
|
||||
|
||||
cmp9:
|
||||
dec ebx
|
||||
je Bi09
|
||||
|
||||
cmpA:
|
||||
dec ebx
|
||||
je Bi0A
|
||||
|
||||
cmpB:
|
||||
dec ebx
|
||||
je Bi0B
|
||||
|
||||
cmpC:
|
||||
dec ebx
|
||||
je Bi0C
|
||||
|
||||
cmpE:
|
||||
dec ebx
|
||||
dec ebx
|
||||
je Bi0E
|
||||
|
||||
cmpF:
|
||||
dec ebx
|
||||
je Bi0F
|
||||
|
||||
cmp11:
|
||||
dec ebx
|
||||
dec ebx
|
||||
je Bi11
|
||||
|
||||
cmp12:
|
||||
dec ebx
|
||||
je Bi12
|
||||
|
||||
cmp13:
|
||||
dec ebx
|
||||
je Bi13
|
||||
|
||||
cmp14:
|
||||
dec ebx
|
||||
je Bi14
|
||||
|
||||
cmp15:
|
||||
dec ebx
|
||||
je Bi15
|
||||
|
||||
cmp16:
|
||||
dec ebx
|
||||
je Bi16
|
||||
|
||||
cmp17:
|
||||
dec ebx
|
||||
je Bi17
|
||||
|
||||
;------------------
|
||||
Bi00:
|
||||
Text 60,250,0x00000000,brand0, brand0len-brand0
|
||||
;Number 270,180,1*256,2,dword [brand],0x000000 was in v. 1.11
|
||||
ret
|
||||
|
||||
Bi01:
|
||||
Text 60,250,0x00000000,brand01, brand01len-brand01
|
||||
ret
|
||||
|
||||
Bi02:
|
||||
Text 60,250,0x00000000,brand02, brand02len-brand02
|
||||
ret
|
||||
|
||||
Bi03:
|
||||
|
||||
cmp [m], 8
|
||||
je E3
|
||||
Text 60,250,0x00000000,brand03, brand03len-brand03
|
||||
ret
|
||||
E3:
|
||||
Text 60,250,0x00000000,brand03d, brand03dlen-brand03d
|
||||
ret
|
||||
|
||||
Bi04:
|
||||
Text 60,250,0x00000000,brand04, brand04len-brand04
|
||||
ret
|
||||
|
||||
Bi06:
|
||||
Text 60,250,0x00000000,brand06, brand06len-brand06
|
||||
ret
|
||||
|
||||
Bi07:
|
||||
Text 60,250,0x00000000,brand07, brand07len-brand07
|
||||
ret
|
||||
|
||||
Bi08:
|
||||
Text 60,250,0x00000000,brand08, brand08len-brand08
|
||||
ret
|
||||
|
||||
Bi09:
|
||||
Text 60,250,0x00000000,brand09, brand09len-brand09
|
||||
ret
|
||||
|
||||
Bi0A:
|
||||
Text 60,250,0x00000000,brand0A, brand0Alen-brand0A
|
||||
ret
|
||||
|
||||
Bi0B:
|
||||
|
||||
cmp [m], 13
|
||||
jl Eb
|
||||
Text 60,250,0x00000000,brand0B, brand0Blen-brand0B
|
||||
ret
|
||||
Eb:
|
||||
Text 60,250,0x00000000,brand0Bd, brand0Bdlen-brand0Bd
|
||||
ret
|
||||
|
||||
Bi0C:
|
||||
Text 60,250,0x00000000,brand0C, brand0Clen-brand0C
|
||||
ret
|
||||
|
||||
Bi0E:
|
||||
|
||||
cmp [m], 13
|
||||
jl Ed
|
||||
Text 60,250,0x00000000,brand0E, brand0Elen-brand0E
|
||||
ret
|
||||
Ed:
|
||||
Text 60,250,0x00000000,brand0Ed, brand0Edlen-brand0Ed
|
||||
ret
|
||||
|
||||
Bi0F:
|
||||
Text 60,250,0x00000000,brand0F, brand0Flen-brand0F
|
||||
ret
|
||||
|
||||
Bi11:
|
||||
Text 60,250,0x00000000,brand11, brand11len-brand11
|
||||
ret
|
||||
|
||||
Bi12:
|
||||
Text 60,250,0x00000000,brand12, brand12len-brand12
|
||||
ret
|
||||
|
||||
Bi13:
|
||||
Text 60,250,0x00000000,brand13, brand13len-brand13
|
||||
ret
|
||||
|
||||
Bi14:
|
||||
Text 60,250,0x00000000,brand14, brand14len-brand14
|
||||
ret
|
||||
|
||||
Bi15:
|
||||
Text 60,250,0x00000000,brand15, brand15len-brand15
|
||||
ret
|
||||
|
||||
Bi16:
|
||||
Text 60,250,0x00000000,brand16, brand16len-brand16
|
||||
ret
|
||||
|
||||
Bi17:
|
||||
Text 60,250,0x00000000,brand17, brand17len-brand17
|
||||
ret
|
972
programs/testing/cpuid/trunk/caches.inc
Normal file
@@ -0,0 +1,972 @@
|
||||
; Decoding cache L1,L2,L3 for Intel
|
||||
|
||||
decodecache32:
|
||||
|
||||
call decodecache
|
||||
|
||||
|
||||
|
||||
decodecache24:
|
||||
|
||||
shr eax, 8
|
||||
|
||||
call decodecache
|
||||
|
||||
shr eax, 8
|
||||
|
||||
call decodecache
|
||||
|
||||
shr eax, 8
|
||||
|
||||
|
||||
decodecache:
|
||||
|
||||
comp0:
|
||||
cmp al, 00h
|
||||
je L000
|
||||
|
||||
|
||||
comp6:
|
||||
cmp al, 06h
|
||||
je kk6
|
||||
|
||||
comp7:
|
||||
cmp al, 08h
|
||||
je kk7
|
||||
|
||||
comp61: ;+1
|
||||
cmp al, 09h
|
||||
je kk61
|
||||
|
||||
comp11:
|
||||
cmp al, 0Ah
|
||||
je kk11
|
||||
je Ld8
|
||||
|
||||
|
||||
comp13:
|
||||
cmp al, 0Ch
|
||||
je kk13
|
||||
je Ld16
|
||||
|
||||
comp62: ;+1
|
||||
cmp al, 0Dh
|
||||
je kk15
|
||||
|
||||
comp63: ;+1
|
||||
cmp al, 0Eh
|
||||
je kk63
|
||||
|
||||
comp14:
|
||||
cmp al, 10h
|
||||
je kk14
|
||||
je Ld16
|
||||
|
||||
|
||||
comp8:
|
||||
cmp al, 15h
|
||||
je kk8
|
||||
|
||||
comp48:
|
||||
cmp al, 1Ah
|
||||
je kk48
|
||||
je L96
|
||||
|
||||
comp64: ;+1
|
||||
cmp al, 21h
|
||||
je kk23
|
||||
|
||||
|
||||
comp39:
|
||||
cmp al, 22h
|
||||
je kk39
|
||||
je L305
|
||||
|
||||
comp40:
|
||||
cmp al, 23h
|
||||
je kk40
|
||||
je L31
|
||||
|
||||
comp41:
|
||||
cmp al, 25h
|
||||
je kk41
|
||||
je L32
|
||||
|
||||
comp42:
|
||||
cmp al, 29h
|
||||
je kk42
|
||||
je L34
|
||||
|
||||
comp16:
|
||||
cmp al, 2Ch
|
||||
je kk16
|
||||
je Ld32
|
||||
|
||||
comp10:
|
||||
cmp al, 30h
|
||||
je kk10
|
||||
|
||||
comp18:
|
||||
cmp al, 39h
|
||||
je kk18
|
||||
je L128
|
||||
|
||||
comp49:
|
||||
cmp al, 3Ah
|
||||
je kk49
|
||||
je L192
|
||||
|
||||
comp19:
|
||||
cmp al, 3Bh
|
||||
je kk19
|
||||
je L128
|
||||
|
||||
comp22:
|
||||
cmp al, 3Ch
|
||||
je kk22
|
||||
je L256
|
||||
|
||||
comp50:
|
||||
cmp al, 3Dh
|
||||
je kk50
|
||||
je L384
|
||||
|
||||
comp51:
|
||||
cmp al, 3Eh
|
||||
je kk51
|
||||
je L512
|
||||
|
||||
comp1:
|
||||
cmp al, 41h
|
||||
je kk1
|
||||
|
||||
|
||||
comp2:
|
||||
cmp al, 42h
|
||||
je kk2
|
||||
|
||||
|
||||
comp3:
|
||||
cmp al, 43h
|
||||
je kk3
|
||||
|
||||
|
||||
comp4:
|
||||
cmp al, 44h
|
||||
je kk4
|
||||
|
||||
|
||||
comp5:
|
||||
cmp al, 45h
|
||||
je kk5
|
||||
|
||||
|
||||
comp53:
|
||||
cmp al, 46h
|
||||
je kk53
|
||||
je L34
|
||||
|
||||
comp54:
|
||||
cmp al, 47h
|
||||
je kk54
|
||||
je L38
|
||||
|
||||
comp65: ;+1
|
||||
cmp al, 48h
|
||||
je kk26
|
||||
|
||||
|
||||
comp55:
|
||||
cmp al, 49h
|
||||
je kk55
|
||||
je L34
|
||||
|
||||
comp56:
|
||||
cmp al, 4Ah
|
||||
je kk56
|
||||
je L36
|
||||
|
||||
comp57:
|
||||
cmp al, 4Bh
|
||||
je kk57
|
||||
je L38
|
||||
|
||||
comp58:
|
||||
cmp al, 4Ch
|
||||
je kk58
|
||||
je L312
|
||||
|
||||
comp59:
|
||||
cmp al, 4Dh
|
||||
je kk59
|
||||
je L316
|
||||
|
||||
comp60:
|
||||
cmp al, 4Eh
|
||||
je kk60
|
||||
je L6144
|
||||
|
||||
comp36:
|
||||
cmp al, 60h
|
||||
je kk36
|
||||
je Ld16
|
||||
|
||||
comp12:
|
||||
cmp al, 66h
|
||||
je kk12
|
||||
je Ld8
|
||||
|
||||
comp15:
|
||||
cmp al, 67h
|
||||
je kk15
|
||||
je Ld16
|
||||
|
||||
comp17:
|
||||
cmp al, 68h
|
||||
je kk17
|
||||
je Ld32
|
||||
|
||||
comp33:
|
||||
cmp al, 70h
|
||||
je kk33
|
||||
je Li12
|
||||
|
||||
comp34:
|
||||
cmp al, 71h
|
||||
je kk34
|
||||
je Li16
|
||||
|
||||
comp35:
|
||||
cmp al, 72h
|
||||
je kk35
|
||||
je Li32
|
||||
|
||||
|
||||
comp47:
|
||||
cmp al, 73h
|
||||
je kk47
|
||||
je Li64
|
||||
|
||||
|
||||
comp9:
|
||||
cmp al, 77h
|
||||
je kk9
|
||||
|
||||
|
||||
|
||||
comp37:
|
||||
cmp al, 78h
|
||||
je kk37
|
||||
je L1024
|
||||
|
||||
|
||||
|
||||
comp20:
|
||||
cmp al, 79h
|
||||
je kk20
|
||||
je L128
|
||||
|
||||
comp23:
|
||||
cmp al, 7Ah
|
||||
je kk23
|
||||
je L256
|
||||
|
||||
|
||||
comp26:
|
||||
cmp al, 7Bh
|
||||
je kk26
|
||||
je L512
|
||||
|
||||
comp29:
|
||||
cmp al, 7Ch
|
||||
je kk29
|
||||
je L1024
|
||||
|
||||
comp38:
|
||||
cmp al, 7Dh
|
||||
je kk38
|
||||
je L2048
|
||||
|
||||
comp24:
|
||||
cmp al, 7Eh
|
||||
je kk24
|
||||
je L256
|
||||
|
||||
comp52:
|
||||
cmp al, 7Fh
|
||||
je kk52
|
||||
je L512
|
||||
|
||||
|
||||
comp66:
|
||||
cmp al, 80h
|
||||
je kk21
|
||||
|
||||
|
||||
comp21:
|
||||
cmp al, 81h
|
||||
je kk21
|
||||
je L128
|
||||
|
||||
|
||||
comp25:
|
||||
cmp al, 82h
|
||||
je kk25
|
||||
je L256
|
||||
|
||||
|
||||
comp27:
|
||||
cmp al, 83h
|
||||
je kk27
|
||||
je L512
|
||||
|
||||
|
||||
comp30:
|
||||
cmp al, 84h
|
||||
je kk30
|
||||
je L1024
|
||||
|
||||
comp32:
|
||||
cmp al, 85h
|
||||
je kk32
|
||||
je L2048
|
||||
|
||||
comp28:
|
||||
cmp al, 86h
|
||||
je kk28
|
||||
je L512
|
||||
|
||||
comp31:
|
||||
cmp al, 87h
|
||||
je kk31
|
||||
je L1024
|
||||
|
||||
comp43:
|
||||
cmp al, 88h
|
||||
je kk43
|
||||
je L32
|
||||
|
||||
comp44:
|
||||
cmp al, 89h
|
||||
je kk44
|
||||
je L34
|
||||
|
||||
comp45:
|
||||
cmp al, 8Ah
|
||||
je kk45
|
||||
je L38
|
||||
|
||||
comp46:
|
||||
cmp al, 8Dh
|
||||
je kk46
|
||||
je L34
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;comp67: ;+1
|
||||
;cmp al, 208 ; D0h
|
||||
;je kk39
|
||||
|
||||
;comp68: ;+1
|
||||
;cmp al, 209 ; D1h
|
||||
;je kk68
|
||||
|
||||
;comp69: ;+1
|
||||
;cmp al, 210 ; D2h
|
||||
;je kk43
|
||||
|
||||
;comp70: ;+1
|
||||
;cmp al, 214 ; D6h
|
||||
;je kk40
|
||||
|
||||
;comp71: ;+1
|
||||
;cmp al, 215 ; D7h
|
||||
;je kk41
|
||||
|
||||
;comp72: ;+1
|
||||
;cmp al, 216 ;D8h
|
||||
;je kk42
|
||||
|
||||
;comp73: ;+1
|
||||
;cmp al, 220 ; DCh
|
||||
;je kk73
|
||||
|
||||
;comp74: ;+1
|
||||
;cmp al, 221 ;DDh
|
||||
;je kk74
|
||||
|
||||
;comp75: ;+1
|
||||
;cmp al, 222 ;DEh
|
||||
;je kk56
|
||||
|
||||
;comp76: ;+1
|
||||
;cmp al, 226 ;E2h
|
||||
;je kk76
|
||||
|
||||
;comp77: ;+1
|
||||
;cmp al, 227 ;E3h
|
||||
;je kk55
|
||||
|
||||
;comp78: ;+1
|
||||
;cmp al, 228 ;E4h
|
||||
;je kk57
|
||||
|
||||
;comp79: ;+1
|
||||
;cmp al, 234 ;EAh
|
||||
;je kk79
|
||||
|
||||
;comp80: ;+1
|
||||
;cmp al, 235 ;EBh
|
||||
;je kk80
|
||||
|
||||
;comp81: ;+1
|
||||
;cmp al, 236 ;ECh
|
||||
;je kk81
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
comp67: ;+1
|
||||
cmp al, 0D0h
|
||||
je kk39
|
||||
|
||||
comp68: ;+1
|
||||
cmp al, 0D1h
|
||||
je kk68
|
||||
|
||||
comp69: ;+1
|
||||
cmp al, 0D2h
|
||||
je kk43
|
||||
|
||||
comp70: ;+1
|
||||
cmp al, 0D6h
|
||||
je kk40
|
||||
|
||||
comp71: ;+1
|
||||
cmp al, 0D7h
|
||||
je kk41
|
||||
|
||||
comp72: ;+1
|
||||
cmp al, 0D8h
|
||||
je kk42
|
||||
|
||||
comp73: ;+1
|
||||
cmp al, 0DCh
|
||||
je kk73
|
||||
|
||||
comp74: ;+1
|
||||
cmp al, 0DDh
|
||||
je kk74
|
||||
|
||||
comp75: ;+1
|
||||
cmp al, 0DEh
|
||||
je kk56
|
||||
|
||||
comp76: ;+1
|
||||
cmp al, 0E2h
|
||||
je kk76
|
||||
|
||||
comp77: ;+1
|
||||
cmp al, 0E3h
|
||||
je kk55
|
||||
|
||||
comp78: ;+1
|
||||
cmp al, 0E4h
|
||||
je kk57
|
||||
|
||||
comp79: ;+1
|
||||
cmp al, 0EAh
|
||||
je kk79
|
||||
|
||||
comp80: ;+1
|
||||
cmp al, 0EBh
|
||||
je kk80
|
||||
|
||||
comp81: ;+1
|
||||
cmp al, 0ECh
|
||||
je kk81
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
jne L000
|
||||
;------------------
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;; L1 instr
|
||||
kk6:
|
||||
mov [wayli], 4
|
||||
mov [lineli], 32
|
||||
jmp Li8
|
||||
|
||||
kk7:
|
||||
mov [wayli], 4
|
||||
mov [lineli], 32
|
||||
jmp Li16
|
||||
|
||||
kk8:
|
||||
mov [wayli], 4
|
||||
mov [lineli], 32
|
||||
jmp Li16
|
||||
|
||||
kk9:
|
||||
mov [wayli], 4
|
||||
mov [lineli], 64
|
||||
jmp Li16
|
||||
|
||||
kk61:
|
||||
mov [wayli], 4 ;+1
|
||||
mov [lineli], 64
|
||||
jmp Li32
|
||||
|
||||
|
||||
kk33:
|
||||
mov [wayli], 8
|
||||
;mov [lineli], 32
|
||||
jmp Li12
|
||||
|
||||
kk34:
|
||||
mov [wayli], 8
|
||||
;mov [lineli], 32
|
||||
jmp Li16
|
||||
|
||||
kk35:
|
||||
mov [wayli], 8
|
||||
;mov [lineli], 32
|
||||
jmp Li32
|
||||
|
||||
kk47:
|
||||
mov [wayli], 8
|
||||
;mov [lineli], 32
|
||||
jmp Li64
|
||||
|
||||
kk10:
|
||||
mov [wayli], 8
|
||||
mov [lineli], 64
|
||||
jmp Li32
|
||||
;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;---------------L1 data
|
||||
kk11:
|
||||
mov [wayld], 2
|
||||
mov [lineld], 32
|
||||
jmp Ld8
|
||||
|
||||
kk12:
|
||||
mov [wayld], 4
|
||||
mov [lineld], 64
|
||||
jmp Ld8
|
||||
|
||||
kk13:
|
||||
mov [wayld], 4
|
||||
mov [lineld], 32
|
||||
jmp Ld16
|
||||
|
||||
kk14:
|
||||
mov [wayld], 4
|
||||
mov [lineld], 32
|
||||
jmp Ld16
|
||||
|
||||
kk15:
|
||||
mov [wayld], 4
|
||||
mov [lineld], 64
|
||||
jmp Ld16
|
||||
|
||||
kk16:
|
||||
mov [wayld], 8
|
||||
mov [lineld], 64
|
||||
jmp Ld32
|
||||
|
||||
kk17:
|
||||
mov [wayld], 4
|
||||
mov [lineld], 64
|
||||
jmp Ld32
|
||||
|
||||
kk63:
|
||||
mov [wayld], 6
|
||||
mov [lineld], 64
|
||||
jmp Ld24
|
||||
|
||||
kk36:
|
||||
mov [wayld], 8
|
||||
mov [lineld], 64
|
||||
jmp Ld16
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;; L2
|
||||
kk19:
|
||||
mov [wayl2], 2
|
||||
mov [linel2], 64
|
||||
jmp L128
|
||||
|
||||
kk52:
|
||||
mov [wayl2], 2
|
||||
mov [linel2], 64
|
||||
jmp L512
|
||||
|
||||
kk1:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 32
|
||||
jmp L128
|
||||
|
||||
kk2:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 32
|
||||
jmp L256
|
||||
|
||||
kk25:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 32
|
||||
jmp L256
|
||||
|
||||
kk3:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 32
|
||||
jmp L512
|
||||
|
||||
kk4:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 32
|
||||
jmp L1024
|
||||
|
||||
kk5:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 32
|
||||
jmp L2048
|
||||
|
||||
kk18:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 64
|
||||
jmp L128
|
||||
|
||||
kk22:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 64
|
||||
jmp L256
|
||||
|
||||
kk28:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 64
|
||||
jmp L512
|
||||
|
||||
kk51:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 64
|
||||
jmp L512
|
||||
|
||||
kk37:
|
||||
mov [wayl2], 4
|
||||
mov [linel2], 64
|
||||
jmp L1024
|
||||
|
||||
kk48:
|
||||
mov [wayl2], 6
|
||||
mov [linel2], 64
|
||||
jmp L96
|
||||
|
||||
kk49:
|
||||
mov [wayl2], 6
|
||||
mov [linel2], 64
|
||||
jmp L192
|
||||
|
||||
kk50:
|
||||
mov [wayl2], 6
|
||||
mov [linel2], 64
|
||||
jmp L384
|
||||
|
||||
kk21:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 32
|
||||
jmp L128
|
||||
|
||||
kk27:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 32
|
||||
jmp L512
|
||||
|
||||
kk30:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 32
|
||||
jmp L1024
|
||||
|
||||
kk32:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 32
|
||||
jmp L2048
|
||||
|
||||
kk20:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 64
|
||||
jmp L128
|
||||
|
||||
kk23:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 64
|
||||
jmp L256
|
||||
|
||||
kk26:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 64
|
||||
jmp L512
|
||||
|
||||
kk29:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 64
|
||||
jmp L1024
|
||||
|
||||
kk31:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 64
|
||||
jmp L1024
|
||||
|
||||
kk38:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 64
|
||||
jmp L2048
|
||||
|
||||
kk24:
|
||||
mov [wayl2], 8
|
||||
mov [linel2], 128
|
||||
jmp L256
|
||||
|
||||
kk65:
|
||||
mov [wayl2], 12
|
||||
mov [linel2], 64
|
||||
jmp L3072
|
||||
|
||||
kk60:
|
||||
mov [wayl2], 24
|
||||
mov [linel2], 64
|
||||
jmp L6144
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;; L3
|
||||
kk39:
|
||||
mov [wayl3], 4
|
||||
mov [linel3], 64
|
||||
jmp L305
|
||||
|
||||
kk40:
|
||||
mov [wayl3], 8
|
||||
mov [linel3], 64
|
||||
jmp L31
|
||||
|
||||
kk41:
|
||||
mov [wayl3], 8
|
||||
mov [linel3], 64
|
||||
jmp L32
|
||||
|
||||
kk42:
|
||||
mov [wayl3], 8
|
||||
mov [linel3], 64
|
||||
jmp L34
|
||||
|
||||
kk43:
|
||||
mov [wayl3], 4
|
||||
mov [linel3], 64
|
||||
jmp L32
|
||||
|
||||
kk44:
|
||||
mov [wayl3], 4
|
||||
mov [linel3], 64
|
||||
jmp L34
|
||||
|
||||
kk45:
|
||||
mov [wayl3], 4
|
||||
mov [linel3], 64
|
||||
jmp L38
|
||||
|
||||
kk53:
|
||||
mov [wayl3], 4
|
||||
mov [linel3], 64
|
||||
jmp L34
|
||||
|
||||
kk68:
|
||||
mov [wayl3], 4
|
||||
mov [linel3], 64
|
||||
jmp L31
|
||||
|
||||
kk54:
|
||||
mov [wayl3], 8
|
||||
mov [linel3], 64
|
||||
jmp L38
|
||||
|
||||
kk74:
|
||||
mov [wayl3], 12
|
||||
mov [linel3], 64
|
||||
jmp L33
|
||||
|
||||
kk73:
|
||||
mov [wayl3], 12
|
||||
mov [linel3], 64
|
||||
jmp L315
|
||||
|
||||
kk56:
|
||||
mov [wayl3], 12
|
||||
mov [linel3], 64
|
||||
jmp L36
|
||||
|
||||
kk58:
|
||||
mov [wayl3], 12
|
||||
mov [linel3], 64
|
||||
jmp L312
|
||||
|
||||
kk46:
|
||||
mov [wayl3], 12
|
||||
mov [linel3], 128
|
||||
jmp L33
|
||||
|
||||
kk76:
|
||||
mov [wayl3], 16
|
||||
mov [linel3], 64
|
||||
jmp L32
|
||||
|
||||
kk55:
|
||||
mov [wayl3], 16
|
||||
mov [linel3], 64
|
||||
jmp L34
|
||||
|
||||
kk57:
|
||||
mov [wayl3], 16
|
||||
mov [linel3], 64
|
||||
jmp L38
|
||||
|
||||
kk59:
|
||||
mov [wayl3], 16
|
||||
mov [linel3], 64
|
||||
jmp L316
|
||||
|
||||
kk79:
|
||||
mov [wayl3], 24
|
||||
mov [linel3], 64
|
||||
jmp L312
|
||||
|
||||
kk80:
|
||||
mov [wayl3], 24
|
||||
mov [linel3], 64
|
||||
jmp L318
|
||||
|
||||
kk81:
|
||||
mov [wayl3], 24
|
||||
mov [linel3], 64
|
||||
jmp L324
|
||||
|
||||
;------------------
|
||||
Li8:
|
||||
mov [L1i], 8
|
||||
jmp L000
|
||||
|
||||
Li12:
|
||||
mov [L1i], 12
|
||||
jmp L000
|
||||
|
||||
Li16:
|
||||
mov [L1i], 16
|
||||
jmp L000
|
||||
|
||||
Li32:
|
||||
mov [L1i], 32
|
||||
jmp L000
|
||||
|
||||
Li64:
|
||||
mov [L1i], 64
|
||||
jmp L000
|
||||
|
||||
Ld8:
|
||||
mov [L1d], 8
|
||||
jmp L000
|
||||
|
||||
Ld16:
|
||||
mov [L1d], 16
|
||||
jmp L000
|
||||
|
||||
Ld24:
|
||||
mov [L1d], 24
|
||||
jmp L000
|
||||
|
||||
Ld32:
|
||||
mov [L1d], 32
|
||||
jmp L000
|
||||
|
||||
L96:
|
||||
mov [L2], 96
|
||||
jmp L000
|
||||
|
||||
L128:
|
||||
mov [L2], 128
|
||||
jmp L000
|
||||
|
||||
L192:
|
||||
mov [L2], 192
|
||||
jmp L000
|
||||
|
||||
L256:
|
||||
mov [L2], 256
|
||||
jmp L000
|
||||
|
||||
L384:
|
||||
mov [L2], 384
|
||||
jmp L000
|
||||
|
||||
L512:
|
||||
mov [L2], 512
|
||||
jmp L000
|
||||
|
||||
L1024:
|
||||
mov [L2], 1024
|
||||
jmp L000
|
||||
|
||||
L2048:
|
||||
mov [L2], 2048
|
||||
jmp L000
|
||||
|
||||
L3072:
|
||||
mov [L2], 3072
|
||||
jmp L000
|
||||
|
||||
L6144:
|
||||
mov [L2], 6144
|
||||
jmp L000
|
||||
|
||||
L305:
|
||||
mov [L3], 512
|
||||
jmp L000
|
||||
|
||||
L31:
|
||||
mov [L3], 1024
|
||||
jmp L000
|
||||
|
||||
L315:
|
||||
mov [L3], 1536
|
||||
jmp L000
|
||||
|
||||
L32:
|
||||
mov [L3], 2048
|
||||
jmp L000
|
||||
|
||||
L33:
|
||||
mov [L3], 3072
|
||||
jmp L000
|
||||
|
||||
L34:
|
||||
mov [L3], 4096
|
||||
jmp L000
|
||||
|
||||
L36:
|
||||
mov [L3], 6144
|
||||
jmp L000
|
||||
|
||||
L38:
|
||||
mov [L3], 8192
|
||||
jmp L000
|
||||
|
||||
L312:
|
||||
mov [L3], 12288
|
||||
jmp L000
|
||||
|
||||
L316:
|
||||
mov [L3], 16384
|
||||
jmp L000
|
||||
|
||||
L318:
|
||||
mov [L3], 18432
|
||||
jmp L000
|
||||
|
||||
L324:
|
||||
mov [L3], 24576
|
||||
jmp L000
|
||||
|
||||
L000:
|
||||
ret
|
BIN
programs/testing/cpuid/trunk/cyrix.gif
Normal file
After Width: | Height: | Size: 759 B |
73
programs/testing/cpuid/trunk/draw.inc
Normal file
@@ -0,0 +1,73 @@
|
||||
; Interface
|
||||
|
||||
macro Window xStart,yStart,xSize,ySize,bColor,gColor,fColor
|
||||
{
|
||||
__mov ebx,xStart,xSize
|
||||
__mov ecx,yStart,ySize
|
||||
__mov edx,bColor
|
||||
__mov esi,gColor
|
||||
__mov edi,fColor
|
||||
xor eax,eax
|
||||
mcall
|
||||
}
|
||||
|
||||
|
||||
;WriteTextToWindow
|
||||
macro Text xStart,yStart,rgbColor,pText,nTextLen
|
||||
{
|
||||
__mov ebx,xStart,yStart
|
||||
__mov ecx,rgbColor
|
||||
__mov edx,pText
|
||||
__mov esi,nTextLen
|
||||
mov eax,4
|
||||
mcall
|
||||
}
|
||||
|
||||
;DisplayNumber
|
||||
macro Number xStart,yStart,nPrintType,noOfDigits,Data,rgbColor
|
||||
{
|
||||
__mov edx,xStart,yStart
|
||||
__mov ebx,noOfDigits,nPrintType
|
||||
__mov ecx,Data
|
||||
__mov esi,rgbColor
|
||||
mov eax,47
|
||||
mcall
|
||||
}
|
||||
|
||||
macro DrawLine xStart,xEnd,yStart,yEnd,rgbColor
|
||||
{
|
||||
__mov ebx,xStart,xEnd
|
||||
__mov ecx,yStart,yEnd
|
||||
__mov edx,rgbColor
|
||||
mov eax,38
|
||||
mcall
|
||||
}
|
||||
|
||||
macro PutImage xPos,yPos,xImage,yImage,pImage
|
||||
{
|
||||
__mov ecx,xImage,yImage
|
||||
__mov edx,xPos,yPos
|
||||
__mov ebx,pImage
|
||||
mov eax,7
|
||||
mcall
|
||||
}
|
||||
|
||||
macro Button xStart,yStart,xSize,ySize,nID,rgbColor
|
||||
{
|
||||
__mov ebx,xStart,xSize
|
||||
__mov ecx,yStart,ySize
|
||||
__mov edx,nID
|
||||
__mov esi,rgbColor
|
||||
mov eax,8
|
||||
mcall
|
||||
}
|
||||
|
||||
macro CreateTread EntryPoint,StackPos
|
||||
{
|
||||
xor ebx,ebx
|
||||
inc ebx
|
||||
mov ecx,EntryPoint
|
||||
mov edx,StackPos
|
||||
mov eax,51
|
||||
mcall
|
||||
}
|
963
programs/testing/cpuid/trunk/features.inc
Normal file
@@ -0,0 +1,963 @@
|
||||
;Addresses for bits
|
||||
; edx cpuid(1)
|
||||
FPU_FLAG equ 0001h ;Floating-point unit on-Chip
|
||||
VME_FLAG equ 0002h ;Virtual Mode Extension
|
||||
DE_FLAG equ 0004h ;Debugging Extension
|
||||
PSE_FLAG equ 0008h ;Page Size Extension
|
||||
TSC_FLAG equ 0010h ;Time-Stamp Counter
|
||||
MSR_FLAG equ 0020h ;Model Specific Registers
|
||||
PAE_FLAG equ 0040h ;Physical Address Extension
|
||||
MCE_FLAG equ 0080h ;Machine Check Exception
|
||||
CX8_FLAG equ 0100h ;CMPXCHG8 Instruction Supported
|
||||
APIC_FLAG equ 0200h ;On-chip APIC Hardware Supported
|
||||
;10_FLAG equ 0400h ;Reserved
|
||||
SEP_FLAG equ 0800h ;Fast System Call
|
||||
MTRR_FLAG equ 1000h ;Memory Type Range Registers
|
||||
PGE_FLAG equ 2000h ;Page Global Enable
|
||||
MCA_FLAG equ 4000h ;Machine Check Architecture
|
||||
CMOV_FLAG equ 8000h ;Conditional Move Instruction Supported
|
||||
PAT_FLAG equ 10000h ;Page Attribute Table
|
||||
PSE36_FLAG equ 20000h ;36-bit Page Size Extension
|
||||
PSNUM_FLAG equ 40000h ;Processor serial number present and enabled
|
||||
CLFLUSH_FLAG equ 80000h ;CLFLUSH Instruction supported
|
||||
;20_FLAG equ 100000h ;Reserved
|
||||
DTS_FLAG equ 200000h ;Debug Store
|
||||
ACPI_FLAG equ 400000h ;Thermal Monitor and Software Controlled Clock Facilities supported
|
||||
MMX_FLAG equ 800000h ;Intel Architecture MMX technology supported
|
||||
FXSR_FLAG equ 1000000h ;Fast floating point save and restore
|
||||
SSE_FLAG equ 2000000h ;Streaming SIMD Extensions supported
|
||||
SSE2_FLAG equ 4000000h ;Streaming SIMD Extensions 2
|
||||
SS_FLAG equ 8000000h ;Self-Snoop
|
||||
;HTT_FLAG equ 10000000h ;Hyper-Threading Technology
|
||||
TM_FLAG equ 20000000h ;Thermal Monitor supported
|
||||
IA64_FLAG equ 40000000h ; IA-64
|
||||
PBE_FLAG equ 80000000h ;Pending Break Enable
|
||||
|
||||
; ecx cpuid(1)
|
||||
SSE3_FLAG equ 0001h ;SSE3 0
|
||||
MON_FLAG equ 0008h ;MON -3
|
||||
DS_CPL_FLAG equ 0010h ;DS-CPL -4
|
||||
VMX_FLAG equ 0020h ;VMX -5
|
||||
SMX_FLAG equ 0040h ;SMX -6 to add
|
||||
EST_FLAG equ 0080h ; EST-7
|
||||
TM2_FLAG equ 0100h ; TM2-8
|
||||
SSSE3_FLAG equ 0200h ;SSSE3 -9
|
||||
CNXT_ID_FLAG equ 0400h ;CID -10
|
||||
CX16_FLAG equ 2000h ;CX16 - 13
|
||||
ETPRD_FLAG equ 4000h ;xTPR - 14
|
||||
PDCM_FLAG equ 8000h ;PDCM - 15 to add
|
||||
DCA_FLAG equ 40000h ;DCA - 18 Direct Cache Access
|
||||
SSE41_FLAG equ 80000h ;SSE41 - 19 to add
|
||||
SSE42_FLAG equ 100000h ;SSE42 - 20 to add
|
||||
x2APIC_FLAG equ 200000h ;x2APIC - 21 to add
|
||||
PPCNT_FLAG equ 800000h ;PPCNT - 23 to add
|
||||
|
||||
; edx cpuid(8000_0001h)
|
||||
SYS_FLAG equ 0800h ;11 - may be we already detect it as SEP_FLAG
|
||||
MP_FLAG equ 80000h ;19 ???? not found in recent guides from AMD and Intel
|
||||
NX_FLAG equ 100000h ;20
|
||||
MMXPi_FLAG equ 400000h ;22
|
||||
MMXn_FLAG equ 800000h ;23
|
||||
FXSRn_FLAG equ 1000000h ;24 it is <EFBFBD><EFBFBD><EFBFBD>+ for Cyrix
|
||||
FFXSR_FLAG equ 2000000h ;25
|
||||
PAGE_FLAG equ 4000000h ;26 Page1Gb to add
|
||||
TSCP_FLAG equ 8000000h ;27
|
||||
LM_FLAG equ 20000000h ;29 EM64T
|
||||
DNo_FLAG equ 40000000h ;30 3dNow! Ext
|
||||
DN_FLAG equ 80000000h ;31 3dNow!
|
||||
|
||||
|
||||
; ecx cpuid(8000_0001h)
|
||||
LAHF_FLAG equ 0001h ; LAHF 0
|
||||
CMPL_FLAG equ 0002h ; core multi-processing legacy mode 1
|
||||
SVM_FLAG equ 0004h ; secure virtual machine 2
|
||||
EAS_FLAG equ 0008h ; ExtApicSpace 3 to add
|
||||
MOVCR8_FLAG equ 0010h ; AltMovCr8 4
|
||||
ABM_FLAG equ 0020h ; ABM -5 to add
|
||||
SSE4A_FLAG equ 0040h ; SSE4A -6 to add
|
||||
MIS_FLAG equ 0080h ; MissAlignSSE -7 to add
|
||||
3DNP_FLAG equ 0100h ; 3DNowPrefetch-8 to add
|
||||
OSVW_FLAG equ 0200h ; OS visible workaround -9 to add
|
||||
SSE5_FLAG equ 0800h ;SSE5 - 11 to add
|
||||
SKINIT_FLAG equ 1000h ;SKINIT- 12 to add
|
||||
WDT_FLAG equ 2000h ;Watchdog timer - 13 to add
|
||||
|
||||
|
||||
;decoding standard features
|
||||
|
||||
decode_standard_features:
|
||||
|
||||
xor eax,eax
|
||||
inc eax
|
||||
cpuid
|
||||
|
||||
|
||||
Test0:
|
||||
test edx, FPU_FLAG
|
||||
jnz Test0e
|
||||
|
||||
mov dword [FPU+6], $6F6E
|
||||
jmp Test1
|
||||
|
||||
Test0e:
|
||||
mov dword [FPU+6], $736579
|
||||
|
||||
;;;;;;
|
||||
Test1:
|
||||
test edx, VME_FLAG
|
||||
jnz Test1e
|
||||
|
||||
mov dword [VME+ 7], $6F6E
|
||||
jmp Test2
|
||||
|
||||
Test1e:
|
||||
mov dword [VME+ 7], $736579
|
||||
|
||||
;;;;;;
|
||||
Test2:
|
||||
test edx, DE_FLAG
|
||||
jnz Test2e
|
||||
|
||||
mov dword [DE+ 7], $6F6E
|
||||
jmp Test3
|
||||
|
||||
Test2e:
|
||||
mov dword [DE+ 7], $736579
|
||||
;;;;;;
|
||||
|
||||
Test3:
|
||||
test edx, PSE_FLAG
|
||||
jnz Test3e
|
||||
|
||||
mov dword [PSE+ 8], $6F6E
|
||||
jmp Test4
|
||||
|
||||
Test3e:
|
||||
mov dword [PSE+ 8], $736579
|
||||
|
||||
;;;;
|
||||
Test4:
|
||||
test edx, TSC_FLAG
|
||||
jnz Test4e
|
||||
|
||||
mov dword [TSC+ 6], $6F6E
|
||||
jmp Test5
|
||||
|
||||
Test4e:
|
||||
mov dword [TSC+ 6], $736579
|
||||
|
||||
;;;;
|
||||
Test5:
|
||||
test edx, MSR_FLAG
|
||||
jnz Test5e
|
||||
|
||||
mov dword [MSR+ 7], $6F6E
|
||||
jmp Test6
|
||||
|
||||
Test5e:
|
||||
mov dword [MSR+ 7], $736579
|
||||
|
||||
;;;;
|
||||
Test6:
|
||||
test edx, PAE_FLAG
|
||||
jnz Test6e
|
||||
|
||||
mov dword [PAE+ 7], $6F6E
|
||||
jmp Test7
|
||||
|
||||
Test6e:
|
||||
mov dword [PAE+ 7], $736579
|
||||
|
||||
;;;;
|
||||
Test7:
|
||||
test edx, MCE_FLAG
|
||||
jnz Test7e
|
||||
|
||||
mov dword [MCE+ 8], $6F6E
|
||||
jmp Test8
|
||||
|
||||
Test7e:
|
||||
mov dword [MCE+ 8], $736579
|
||||
|
||||
;;;;
|
||||
Test8:
|
||||
test edx, CX8_FLAG
|
||||
jnz Test8e
|
||||
|
||||
mov dword [CX8+ 6], $6F6E
|
||||
jmp Test9
|
||||
|
||||
Test8e:
|
||||
mov dword [CX8+ 6], $736579
|
||||
;;;;
|
||||
|
||||
Test9:
|
||||
test edx, APIC_FLAG
|
||||
jnz Test9e
|
||||
|
||||
mov dword [APIC+ 7], $6F6E
|
||||
jmp Test11
|
||||
|
||||
Test9e:
|
||||
mov dword [APIC+ 7], $736579
|
||||
;;;;;
|
||||
|
||||
Test11:
|
||||
test edx, SEP_FLAG
|
||||
jnz Test11e
|
||||
|
||||
mov dword [SEP+ 8], $6F6E
|
||||
jmp Test12
|
||||
|
||||
Test11e:
|
||||
mov dword [SEP+ 8], $736579
|
||||
;;;;
|
||||
|
||||
Test12:
|
||||
test edx, MTRR_FLAG
|
||||
jnz Test12e
|
||||
|
||||
mov dword [MTRR+ 6], $6F6E
|
||||
jmp Test13
|
||||
|
||||
Test12e:
|
||||
mov dword [MTRR+ 6], $736579
|
||||
;;;;
|
||||
|
||||
Test13:
|
||||
test edx, PGE_FLAG
|
||||
jnz Test13e
|
||||
|
||||
mov dword [PGE+ 7], $6F6E
|
||||
jmp Test14
|
||||
|
||||
Test13e:
|
||||
mov dword [PGE+ 7], $736579
|
||||
;;;;;
|
||||
|
||||
Test14:
|
||||
test edx, MCA_FLAG
|
||||
jnz Test14e
|
||||
|
||||
mov dword [MCA+ 7], $6F6E
|
||||
jmp Test15
|
||||
|
||||
Test14e:
|
||||
mov dword [MCA+ 7], $736579
|
||||
;;;;
|
||||
|
||||
Test15:
|
||||
test edx, CMOV_FLAG
|
||||
jnz Test15e
|
||||
|
||||
mov dword [CMOV+ 8], $6F6E
|
||||
jmp Test16
|
||||
|
||||
Test15e:
|
||||
mov dword [CMOV+ 8], $736579
|
||||
;;;;
|
||||
|
||||
Test16:
|
||||
test edx, PAT_FLAG
|
||||
jnz Test16e
|
||||
|
||||
mov dword [PAT+ 6], $6F6E
|
||||
jmp Test17
|
||||
|
||||
Test16e:
|
||||
mov dword [PAT+ 6], $736579
|
||||
;;;;
|
||||
|
||||
Test17:
|
||||
test edx, PSE36_FLAG
|
||||
jnz Test17e
|
||||
|
||||
mov dword [PSE36+ 7], $6F6E
|
||||
jmp Test18
|
||||
|
||||
Test17e:
|
||||
mov dword [PSE36+ 7], $736579
|
||||
;;;;
|
||||
|
||||
Test18:
|
||||
test edx, PSNUM_FLAG
|
||||
jnz Test18e
|
||||
|
||||
mov dword [PSNUM+ 7], $6F6E
|
||||
jmp Test19
|
||||
|
||||
Test18e:
|
||||
mov dword [PSNUM+ 7], $736579
|
||||
;;;;
|
||||
|
||||
Test19:
|
||||
test edx, CLFLUSH_FLAG
|
||||
jnz Test19e
|
||||
|
||||
mov dword [CLFLUSHn + 8], $6F6E
|
||||
jmp Test21
|
||||
|
||||
Test19e:
|
||||
mov dword [CLFLUSHn + 8], $736579
|
||||
;;;;
|
||||
|
||||
Test21:
|
||||
test edx, DTS_FLAG
|
||||
jnz Test21e
|
||||
|
||||
mov dword [DTS+ 7], $6F6E
|
||||
jmp Test22
|
||||
|
||||
Test21e:
|
||||
mov dword [DTS+ 7], $736579
|
||||
;;;;
|
||||
|
||||
Test22:
|
||||
test edx, ACPI_FLAG
|
||||
jnz Test22e
|
||||
|
||||
mov dword [ACPI+ 7], $6F6E
|
||||
jmp Test23
|
||||
|
||||
Test22e:
|
||||
mov dword [ACPI+ 7], $736579
|
||||
;;;;;
|
||||
|
||||
Test23:
|
||||
test edx, MMX_FLAG
|
||||
jnz Test23e
|
||||
|
||||
mov dword [MMX+ 8], $6F6E
|
||||
mov dword [MMXs+ 7], $6F6E
|
||||
jmp Test24
|
||||
|
||||
Test23e:
|
||||
mov dword [MMX+ 8], $736579
|
||||
mov dword [MMXs+ 7], $736579
|
||||
;;;;;
|
||||
|
||||
Test24:
|
||||
test edx, FXSR_FLAG
|
||||
jnz Test24e
|
||||
|
||||
mov dword [FXSR+ 6], $6F6E
|
||||
jmp Test25
|
||||
|
||||
Test24e:
|
||||
mov dword [FXSR+ 6], $736579
|
||||
;;;;;
|
||||
|
||||
Test25:
|
||||
test edx, SSE_FLAG
|
||||
jnz Test25e
|
||||
|
||||
mov dword [SSE+ 7], $6F6E
|
||||
jmp Test26
|
||||
|
||||
Test25e:
|
||||
mov dword [SSE+ 7], $736579
|
||||
|
||||
;;;;
|
||||
Test26:
|
||||
test edx, SSE2_FLAG
|
||||
jnz Test26e
|
||||
|
||||
mov dword [SSE2+ 7], $6F6E
|
||||
jmp Test27
|
||||
|
||||
Test26e:
|
||||
mov dword [SSE2+ 7], $736579
|
||||
|
||||
;;;;
|
||||
|
||||
Test27:
|
||||
test edx, SS_FLAG
|
||||
jnz Test27e
|
||||
|
||||
mov dword [SSn+ 8], $6F6E
|
||||
jmp Test29;28
|
||||
|
||||
Test27e:
|
||||
mov dword [SSn+ 8], $736579
|
||||
|
||||
;;;;
|
||||
|
||||
;Test28:
|
||||
;test edx, HTT_FLAG
|
||||
;jnz Test28e
|
||||
;
|
||||
;mov dword [HTT+ 8], $6F6E
|
||||
;jmp Test29
|
||||
;
|
||||
;Test28e:
|
||||
;mov dword [HTT+ 8], $736579
|
||||
|
||||
;;;;
|
||||
|
||||
Test29:
|
||||
test edx, TM_FLAG
|
||||
jnz Test29e
|
||||
|
||||
mov dword [TM+ 7], $6F6E
|
||||
jmp Test30
|
||||
|
||||
Test29e:
|
||||
mov dword [TM+ 7], $736579
|
||||
|
||||
;;;;
|
||||
|
||||
Test30:
|
||||
test edx, IA64_FLAG
|
||||
jnz Test30e
|
||||
|
||||
mov dword [IA64+ 7], $6F6E
|
||||
jmp Test31
|
||||
|
||||
Test30e:
|
||||
mov dword [IA64+ 7], $736579
|
||||
|
||||
;;;;
|
||||
Test31:
|
||||
test edx, PBE_FLAG
|
||||
jnz Test31e
|
||||
|
||||
mov dword [PBE+ 8], $6F6E
|
||||
jmp Standart_out
|
||||
|
||||
Test31e:
|
||||
mov dword [PBE+ 8], $736579
|
||||
|
||||
Standart_out:
|
||||
|
||||
ret
|
||||
;//////////////////////////////////////////////
|
||||
decode_sse3_5: ; is SS3-5 supported
|
||||
xor eax,eax
|
||||
inc eax
|
||||
cpuid
|
||||
test ecx, $1 ; Test bit 1
|
||||
jnz .EX; SSE3 technology is supported
|
||||
jz .EXN
|
||||
|
||||
.EX:
|
||||
mov dword [sse3+ 6], $736579
|
||||
mov [sse3sup], 1
|
||||
jmp exitter
|
||||
.EXN:
|
||||
mov dword [sse3+ 6], $6F6E
|
||||
mov [sse3sup],0
|
||||
|
||||
exitter:
|
||||
|
||||
|
||||
test ecx, $80000 ; Test bit 19
|
||||
jnz .EX1; SSE41 technology is supported
|
||||
jz .EXN1
|
||||
|
||||
.EX1:
|
||||
mov dword [SSE41+ 11], $736579
|
||||
mov [sse41sup], 1
|
||||
jmp exitter1
|
||||
.EXN1:
|
||||
mov dword [SSE41+ 11], $6F6E
|
||||
mov [sse41sup],0
|
||||
|
||||
exitter1:
|
||||
|
||||
|
||||
test ecx, $100000 ; Test bit 20
|
||||
jnz .EX2; SSE42 technology is supported
|
||||
jz .EXN2
|
||||
|
||||
.EX2:
|
||||
mov dword [SSE42+ 10], $736579
|
||||
mov dword [SS42+ 11], $736579
|
||||
mov [sse42sup], 1
|
||||
jmp exitter2
|
||||
.EXN2:
|
||||
mov dword [SSE42+ 10], $6F6E
|
||||
mov dword [SS42+ 11], $6F6E
|
||||
mov [sse42sup],0
|
||||
|
||||
exitter2:
|
||||
|
||||
|
||||
xor eax,eax
|
||||
mov eax, 80000001h
|
||||
cpuid
|
||||
test ecx, $800 ; Test bit 11
|
||||
jnz .EX3; SS5 technology is supported
|
||||
jz .EXN3
|
||||
|
||||
.EX3:
|
||||
mov dword [SSE5+ 12], $736579
|
||||
mov [sse5sup], 1
|
||||
jmp exitter3
|
||||
.EXN3:
|
||||
mov dword [SSE5+ 12], $6F6E
|
||||
mov [sse5sup],0
|
||||
|
||||
exitter3:
|
||||
|
||||
ret
|
||||
|
||||
|
||||
decode_extended_features:
|
||||
xor eax,eax
|
||||
inc eax
|
||||
cpuid
|
||||
Tes1:
|
||||
test ecx, SSE3_FLAG
|
||||
jnz Tes1e
|
||||
|
||||
mov dword [SS3+ 8], $6F6E
|
||||
jmp Tes2
|
||||
|
||||
Tes1e:
|
||||
mov dword [SS3+ 8], $736579
|
||||
|
||||
|
||||
Tes2:
|
||||
test ecx, MON_FLAG
|
||||
jnz Tes2e
|
||||
|
||||
mov dword [MON+ 8], $6F6E
|
||||
jmp Tes3
|
||||
|
||||
Tes2e:
|
||||
mov dword [MON+ 8], $736579
|
||||
|
||||
|
||||
Tes3:
|
||||
test ecx, DS_CPL_FLAG
|
||||
jnz Tes3e
|
||||
|
||||
mov dword [DS_CPL+ 8], $6F6E
|
||||
jmp Tes4
|
||||
|
||||
Tes3e:
|
||||
mov dword [DS_CPL+ 8], $736579
|
||||
|
||||
Tes4:
|
||||
test ecx, EST_FLAG
|
||||
jnz Tes4e
|
||||
|
||||
mov dword [EST+ 8], $6F6E
|
||||
jmp Tes5
|
||||
|
||||
Tes4e:
|
||||
mov dword [EST+ 8], $736579
|
||||
|
||||
|
||||
Tes5:
|
||||
test ecx, TM2_FLAG
|
||||
jnz Tes5e
|
||||
|
||||
mov dword [TM2+ 8], $6F6E
|
||||
jmp Tes6
|
||||
|
||||
Tes5e:
|
||||
mov dword [TM2+ 8], $736579
|
||||
|
||||
|
||||
Tes6:
|
||||
test ecx, CNXT_ID_FLAG
|
||||
jnz Tes6e
|
||||
|
||||
mov dword [CNXT_ID+ 12], $6F6E
|
||||
jmp Tes7
|
||||
|
||||
Tes6e:
|
||||
mov dword [CNXT_ID+ 12], $736579
|
||||
|
||||
|
||||
Tes7:
|
||||
test ecx, CX16_FLAG
|
||||
jnz Tes7e
|
||||
|
||||
mov dword [CX16+ 12], $6F6E
|
||||
jmp Tes8
|
||||
|
||||
Tes7e:
|
||||
mov dword [CX16+ 12], $736579
|
||||
|
||||
|
||||
Tes8:
|
||||
test ecx, ETPRD_FLAG
|
||||
jnz Tes8e
|
||||
|
||||
mov dword [ETPRD+ 12], $6F6E
|
||||
jmp Tes9
|
||||
|
||||
Tes8e:
|
||||
mov dword [ETPRD+ 12], $736579
|
||||
|
||||
Tes9:
|
||||
test ecx, VMX_FLAG
|
||||
jnz Tes9e
|
||||
|
||||
mov dword [VMX+ 8], $6F6E
|
||||
jmp Tes10
|
||||
|
||||
Tes9e:
|
||||
mov dword [VMX+ 8], $736579
|
||||
|
||||
Tes10:
|
||||
test ecx, SSSE3_FLAG
|
||||
jnz Tes10e
|
||||
|
||||
mov dword [SSSE3+ 12], $6F6E
|
||||
jmp Tes11
|
||||
|
||||
Tes10e:
|
||||
mov dword [SSSE3+ 12], $736579
|
||||
|
||||
Tes11:
|
||||
test ecx, DCA_FLAG
|
||||
jnz Tes11e
|
||||
|
||||
mov dword [DCA+ 8], $6F6E
|
||||
jmp Tes12
|
||||
|
||||
Tes11e:
|
||||
mov dword [DCA+ 8], $736579
|
||||
|
||||
Tes12:
|
||||
test ecx, SMX_FLAG
|
||||
jnz Tes12e
|
||||
|
||||
mov dword [SMX+ 8], $6F6E
|
||||
jmp Tes13
|
||||
|
||||
Tes12e:
|
||||
mov dword [SMX+ 8], $736579
|
||||
|
||||
Tes13:
|
||||
test ecx, PDCM_FLAG
|
||||
jnz Tes13e
|
||||
|
||||
mov dword [newLabel+ 8], $6F6E
|
||||
jmp Tes14
|
||||
|
||||
Tes13e:
|
||||
mov dword [newLabel+ 8], $736579
|
||||
|
||||
Tes14:
|
||||
test ecx, x2APIC_FLAG
|
||||
jnz Tes14e
|
||||
|
||||
mov dword [x2APIC+ 8], $6F6E
|
||||
jmp Tes15
|
||||
|
||||
Tes14e:
|
||||
mov dword [x2APIC+ 8], $736579
|
||||
|
||||
Tes15:
|
||||
test ecx, PPCNT_FLAG
|
||||
jnz Tes15e
|
||||
|
||||
mov dword [PPCNT+ 12], $6F6E
|
||||
jmp Tes16
|
||||
|
||||
Tes15e:
|
||||
mov dword [PPCNT+ 12], $736579
|
||||
|
||||
Tes16:
|
||||
|
||||
ret
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
decode_extended:
|
||||
xor eax, eax
|
||||
mov eax,$80000000
|
||||
cpuid
|
||||
|
||||
test eax, 80000000h
|
||||
jnz gooodd
|
||||
|
||||
jmp baaad
|
||||
|
||||
baaad:
|
||||
|
||||
jmp Tez13
|
||||
|
||||
gooodd:
|
||||
xor eax, eax
|
||||
mov eax, $80000001 ;// Setup extended function 8000_0001h
|
||||
cpuid
|
||||
|
||||
Tez1:
|
||||
test edx, MP_FLAG
|
||||
jnz Tez1e
|
||||
|
||||
mov dword [MP+8], $6F6E
|
||||
jmp Tez2
|
||||
|
||||
Tez1e:
|
||||
mov dword [MP+ 8], $736579
|
||||
|
||||
Tez2:
|
||||
test edx, NX_FLAG
|
||||
jnz Tez2e
|
||||
|
||||
mov dword [NX+ 8], $6F6E
|
||||
jmp Tez4
|
||||
;jmp Tez3 we do detection in another place, because of Cyrix specific MMX+ detection
|
||||
|
||||
Tez2e:
|
||||
mov dword [NX+ 8], $736579
|
||||
|
||||
;Tez3:
|
||||
;test edx, MMXPi_FLAG
|
||||
;jnz Tez3e
|
||||
|
||||
;mov dword [MMXPi+ 8], $6F6E
|
||||
;jmp Tez4
|
||||
|
||||
|
||||
;Tez3e:
|
||||
;mov dword [MMXPi+ 8], $736579
|
||||
|
||||
Tez4:
|
||||
test edx, MMXn_FLAG
|
||||
jnz Tez4e
|
||||
|
||||
mov dword [MMXn+ 8], $6F6E
|
||||
jmp Tez5
|
||||
|
||||
Tez4e:
|
||||
mov dword [MMXn+ 8], $736579
|
||||
|
||||
Tez5:
|
||||
test edx, FXSRn_FLAG
|
||||
jnz Tez5e
|
||||
|
||||
mov dword [FXSRn+ 8], $6F6E
|
||||
jmp Tez6
|
||||
|
||||
Tez5e:
|
||||
mov dword [FXSRn+ 8], $736579
|
||||
|
||||
Tez6:
|
||||
test edx, FFXSR_FLAG
|
||||
jnz Tez6e
|
||||
|
||||
mov dword [FFXSR+ 12], $6F6E
|
||||
jmp Tez7
|
||||
|
||||
Tez6e:
|
||||
mov dword [FFXSR+ 12], $736579
|
||||
|
||||
Tez7:
|
||||
test edx, TSCP_FLAG
|
||||
jnz Tez7e
|
||||
|
||||
mov dword [TSCP+ 12], $6F6E
|
||||
jmp Tez8
|
||||
|
||||
Tez7e:
|
||||
mov dword [TSCP+ 12], $736579
|
||||
|
||||
|
||||
Tez8:
|
||||
test edx, LM_FLAG
|
||||
jnz Tez8e
|
||||
|
||||
mov dword [LM+ 12], $6F6E
|
||||
jmp Tez9
|
||||
|
||||
Tez8e:
|
||||
mov dword [LM+ 12], $736579
|
||||
|
||||
Tez9:
|
||||
test edx, DNo_FLAG
|
||||
jnz Tez9e
|
||||
|
||||
mov dword [DNo+ 12], $6F6E
|
||||
jmp Tez10
|
||||
|
||||
Tez9e:
|
||||
mov dword [DNo+ 12], $736579
|
||||
|
||||
|
||||
Tez10:
|
||||
test edx, DN_FLAG
|
||||
jnz Tez10e
|
||||
|
||||
mov dword [DN+ 12], $6F6E
|
||||
jmp Tez11
|
||||
|
||||
Tez10e:
|
||||
mov dword [DN+ 12], $736579
|
||||
|
||||
;Intel
|
||||
|
||||
Tez11:
|
||||
test edx, SYS_FLAG
|
||||
jnz Tez11e
|
||||
|
||||
mov dword [SYS+ 12], $6F6E
|
||||
jmp Tez12
|
||||
|
||||
Tez11e:
|
||||
mov dword [SYS+ 12], $736579
|
||||
|
||||
|
||||
Tez12:
|
||||
test ecx, LAHF_FLAG
|
||||
jnz Tez12e
|
||||
|
||||
mov dword [LAF+ 12], $6F6E
|
||||
jmp Tez13
|
||||
|
||||
Tez12e:
|
||||
mov dword [LAF+ 12], $736579
|
||||
|
||||
Tez13:
|
||||
test ecx, CMPL_FLAG
|
||||
jnz Tez13e
|
||||
|
||||
mov dword [CMPL+ 8], $6F6E
|
||||
jmp Tez14
|
||||
|
||||
Tez13e:
|
||||
mov dword [CMPL+ 8], $736579
|
||||
|
||||
Tez14:
|
||||
test ecx, SVM_FLAG
|
||||
jnz Tez14e
|
||||
|
||||
mov dword [SVM+ 8], $6F6E
|
||||
jmp Tez15
|
||||
|
||||
Tez14e:
|
||||
mov dword [SVM+ 8], $736579
|
||||
|
||||
Tez15:
|
||||
test ecx, MOVCR8_FLAG
|
||||
jnz Tez15e
|
||||
|
||||
mov dword [MCR8+ 12], $6F6E
|
||||
jmp Tez16
|
||||
|
||||
Tez15e:
|
||||
mov dword [MCR8+ 12], $736579
|
||||
|
||||
Tez16:
|
||||
test edx, PAGE_FLAG
|
||||
jnz Tez16e
|
||||
|
||||
mov dword [PAGE+ 8], $6F6E
|
||||
jmp Tez17
|
||||
|
||||
Tez16e:
|
||||
mov dword [PAGE+ 8], $736579
|
||||
|
||||
Tez17:
|
||||
test ecx, EAS_FLAG
|
||||
jnz Tez17e
|
||||
|
||||
mov dword [EAS+ 12], $6F6E
|
||||
jmp Tez18
|
||||
|
||||
Tez17e:
|
||||
mov dword [EAS+ 12], $736579
|
||||
|
||||
Tez18:
|
||||
test ecx, ABM_FLAG
|
||||
jnz Tez18e
|
||||
|
||||
mov dword [ABM+ 8], $6F6E
|
||||
jmp Tez19
|
||||
|
||||
Tez18e:
|
||||
mov dword [ABM+ 8], $736579
|
||||
|
||||
Tez19:
|
||||
test ecx, SSE4A_FLAG
|
||||
jnz Tez19e
|
||||
|
||||
mov dword [SSE4A+ 8], $6F6E
|
||||
jmp Tez20
|
||||
|
||||
Tez19e:
|
||||
mov dword [SSE4A+ 8], $736579
|
||||
|
||||
Tez20:
|
||||
test ecx, MIS_FLAG
|
||||
jnz Tez20e
|
||||
|
||||
mov dword [MIS+ 8], $6F6E
|
||||
jmp Tez21
|
||||
|
||||
Tez20e:
|
||||
mov dword [MIS+ 8], $736579
|
||||
|
||||
Tez21:
|
||||
test ecx, 3DNP_FLAG
|
||||
jnz Tez21e
|
||||
|
||||
;mov dword [DNP+ 8], $6F6E
|
||||
;jmp Tez22
|
||||
|
||||
Tez21e:
|
||||
;mov dword [DNP+ 8], $736579
|
||||
|
||||
Tez22:
|
||||
test ecx, OSVW_FLAG
|
||||
jnz Tez22e
|
||||
|
||||
mov dword [OSVW+ 8], $6F6E
|
||||
jmp Tez23
|
||||
|
||||
Tez22e:
|
||||
mov dword [OSVW+ 8], $736579
|
||||
|
||||
Tez23:
|
||||
test ecx, SKINIT_FLAG
|
||||
jnz Tez23e
|
||||
|
||||
mov dword [SKINIT_+ 12], $6F6E
|
||||
jmp Tez24
|
||||
|
||||
Tez23e:
|
||||
mov dword [SKINIT_+ 12], $736579
|
||||
|
||||
Tez24:
|
||||
test ecx, WDT_FLAG
|
||||
jnz Tez24e
|
||||
|
||||
mov dword [WDT+ 12], $6F6E
|
||||
jmp Tez25
|
||||
|
||||
Tez24e:
|
||||
mov dword [WDT+ 12], $736579
|
||||
|
||||
Tez25:
|
||||
|
||||
ret
|
||||
|
||||
;//////////////////////////////////////////////
|
||||
decode_sse3: ; is SS3 supported
|
||||
xor eax, eax
|
||||
inc eax
|
||||
cpuid
|
||||
test ecx, 1
|
||||
setnz [sse3sup]
|
||||
mov eax, sse3+6
|
||||
|
||||
write_yes_no:
|
||||
mov dword [eax], 'no'
|
||||
jz @f
|
||||
mov dword [eax], 'yes'
|
||||
@@:
|
||||
ret
|
||||
|
||||
show_next_bit:
|
||||
shr edx, 1
|
||||
write_yes_no_cf:
|
||||
mov dword [eax], 'no'
|
||||
jnc @f
|
||||
mov dword [eax], 'yes'
|
||||
@@:
|
||||
ret
|
210
programs/testing/cpuid/trunk/gif_lite.inc
Normal file
@@ -0,0 +1,210 @@
|
||||
|
||||
uglobal
|
||||
align 4
|
||||
ReadGIF.globalColor dd ?
|
||||
ReadGIF.cur_info dd ? ; image table pointer
|
||||
ReadGIF.codesize dd ?
|
||||
ReadGIF.compsize dd ?
|
||||
ReadGIF.bit_count dd ?
|
||||
ReadGIF.CC dd ?
|
||||
ReadGIF.EOI dd ?
|
||||
ReadGIF.Palette dd ?
|
||||
ReadGIF.block_ofs dd ?
|
||||
ReadGIF.gif_workarea rb 16*1024
|
||||
endg
|
||||
|
||||
; unpacks GIF image
|
||||
ReadGIF:
|
||||
; in:
|
||||
; esi - pointer to GIF file in memory
|
||||
; edi - pointer to output image list
|
||||
; out:
|
||||
; eax=0 -> ok, eax=1 -> invalid signature
|
||||
; eax>=8 -> unsupported image attributes
|
||||
push esi edi
|
||||
mov [.cur_info],edi
|
||||
xor eax,eax
|
||||
mov [.globalColor],eax
|
||||
inc eax
|
||||
cmp dword[esi],'GIF8'
|
||||
jne .ex ; signature
|
||||
mov ecx,[esi+0xa]
|
||||
add esi,0xd
|
||||
mov edi,esi
|
||||
test cl,cl
|
||||
jns .nextblock
|
||||
mov [.globalColor],esi
|
||||
call .Gif_skipmap
|
||||
.nextblock:
|
||||
cmp byte[edi],0x21
|
||||
jne .noextblock
|
||||
inc edi
|
||||
inc edi
|
||||
.block_skip:
|
||||
movzx eax,byte[edi]
|
||||
lea edi,[edi+eax+1]
|
||||
test eax,eax
|
||||
jnz .block_skip
|
||||
jmp .nextblock
|
||||
.noextblock:
|
||||
mov al,8
|
||||
cmp byte[edi],0x2c ; image beginning
|
||||
jne .ex
|
||||
inc edi
|
||||
mov esi,[.cur_info]
|
||||
xchg esi,edi
|
||||
movzx eax,word[esi+4]
|
||||
stosd
|
||||
movzx eax,word[esi+6]
|
||||
stosd
|
||||
add esi,8
|
||||
push edi
|
||||
mov ecx,[esi]
|
||||
inc esi
|
||||
test cl,cl
|
||||
js .uselocal
|
||||
push [.globalColor]
|
||||
mov edi,esi
|
||||
jmp .setPal
|
||||
.uselocal:
|
||||
call .Gif_skipmap
|
||||
push esi
|
||||
.setPal:
|
||||
movzx ecx,byte[edi]
|
||||
inc ecx
|
||||
mov [.codesize],ecx
|
||||
dec ecx
|
||||
pop [.Palette]
|
||||
lea esi,[edi+1]
|
||||
mov edi,.gif_workarea
|
||||
xor eax,eax
|
||||
lodsb ; eax - block_count
|
||||
add eax,esi
|
||||
mov [.block_ofs],eax
|
||||
mov [.bit_count],8
|
||||
mov eax,1
|
||||
shl eax,cl
|
||||
mov [.CC],eax
|
||||
mov ecx,eax
|
||||
inc eax
|
||||
mov [.EOI],eax
|
||||
mov eax, 1000h shl 16
|
||||
.filltable:
|
||||
stosd
|
||||
inc eax
|
||||
loop .filltable
|
||||
pop edi
|
||||
.reinit:
|
||||
mov edx,[.EOI]
|
||||
inc edx
|
||||
push [.codesize]
|
||||
pop [.compsize]
|
||||
call .Gif_get_sym
|
||||
cmp eax,[.CC]
|
||||
je .reinit
|
||||
call .Gif_output
|
||||
.cycle:
|
||||
movzx ebx,ax
|
||||
call .Gif_get_sym
|
||||
cmp eax,edx
|
||||
jae .notintable
|
||||
cmp eax,[.CC]
|
||||
je .reinit
|
||||
cmp eax,[.EOI]
|
||||
je .end
|
||||
call .Gif_output
|
||||
.add:
|
||||
mov dword [.gif_workarea+edx*4],ebx
|
||||
cmp edx,0xFFF
|
||||
jae .cycle
|
||||
inc edx
|
||||
bsr ebx,edx
|
||||
cmp ebx,[.compsize]
|
||||
jne .noinc
|
||||
inc [.compsize]
|
||||
.noinc:
|
||||
jmp .cycle
|
||||
.notintable:
|
||||
push eax
|
||||
mov eax,ebx
|
||||
call .Gif_output
|
||||
push ebx
|
||||
movzx eax,bx
|
||||
call .Gif_output
|
||||
pop ebx eax
|
||||
jmp .add
|
||||
.end:
|
||||
xor eax,eax
|
||||
.ex:
|
||||
pop edi esi
|
||||
ret
|
||||
|
||||
.Gif_skipmap:
|
||||
; in: ecx - image descriptor, esi - pointer to colormap
|
||||
; out: edi - pointer to area after colormap
|
||||
and ecx,111b
|
||||
inc ecx ; color map size
|
||||
mov ebx,1
|
||||
shl ebx,cl
|
||||
lea ebx,[ebx*2+ebx]
|
||||
lea edi,[esi+ebx]
|
||||
ret
|
||||
|
||||
.Gif_get_sym:
|
||||
mov ecx,[.compsize]
|
||||
push ecx
|
||||
xor eax,eax
|
||||
.shift:
|
||||
ror byte[esi],1
|
||||
rcr eax,1
|
||||
dec [.bit_count]
|
||||
jnz .loop1
|
||||
inc esi
|
||||
cmp esi,[.block_ofs]
|
||||
jb .noblock
|
||||
push eax
|
||||
xor eax,eax
|
||||
lodsb
|
||||
test eax,eax
|
||||
jnz .nextbl
|
||||
mov eax,[.EOI]
|
||||
sub esi,2
|
||||
add esp,8
|
||||
jmp .exx
|
||||
.nextbl:
|
||||
add eax,esi
|
||||
mov [.block_ofs],eax
|
||||
pop eax
|
||||
.noblock:
|
||||
mov [.bit_count],8
|
||||
.loop1:
|
||||
loop .shift
|
||||
pop ecx
|
||||
rol eax,cl
|
||||
.exx:
|
||||
xor ecx,ecx
|
||||
ret
|
||||
|
||||
.Gif_output:
|
||||
push esi eax edx
|
||||
mov edx,.gif_workarea
|
||||
.next:
|
||||
push word[edx+eax*4]
|
||||
mov ax,word[edx+eax*4+2]
|
||||
inc ecx
|
||||
cmp ax,1000h
|
||||
jnz .next
|
||||
shl ebx,16
|
||||
mov bx,[esp]
|
||||
.loop2:
|
||||
pop ax
|
||||
lea esi,[eax+eax*2]
|
||||
add esi,[.Palette]
|
||||
mov esi,[esi]
|
||||
bswap esi
|
||||
shr esi,8
|
||||
mov [edi],esi
|
||||
add edi,3
|
||||
loop .loop2
|
||||
pop edx eax esi
|
||||
ret
|
BIN
programs/testing/cpuid/trunk/idt.gif
Normal file
After Width: | Height: | Size: 858 B |
BIN
programs/testing/cpuid/trunk/intel.gif
Normal file
After Width: | Height: | Size: 679 B |
20
programs/testing/cpuid/trunk/logos.inc
Normal file
@@ -0,0 +1,20 @@
|
||||
amd:
|
||||
file 'amd.gif' ;include gif file
|
||||
|
||||
cyrix:
|
||||
file 'cyrix.gif' ;include gif file
|
||||
|
||||
idt:
|
||||
file 'idt.gif' ;include gif file
|
||||
|
||||
intel:
|
||||
file 'intel.gif' ;include gif file
|
||||
|
||||
transmeta:
|
||||
file 'transmet.gif' ;include gif file
|
||||
|
||||
via:
|
||||
file 'via.gif' ;include gif file
|
||||
|
||||
vortex:
|
||||
file 'vortex.gif' ;include gif file
|
23
programs/testing/cpuid/trunk/makefile
Normal file
@@ -0,0 +1,23 @@
|
||||
#!gmake
|
||||
|
||||
|
||||
###########################
|
||||
### Esempio per Kolibri ###
|
||||
###########################
|
||||
# Macro
|
||||
FASM=/opt/bin/fasm
|
||||
KPACK=/opt/bin/kpack
|
||||
LANG=lang.inc
|
||||
FILE=CPUID
|
||||
SOURCE=${FILE}.ASM
|
||||
OUT=${FILE}.bin
|
||||
|
||||
en:
|
||||
echo "lang fix en" > ${LANG}
|
||||
${FASM} ${SOURCE} ${OUT}
|
||||
it:
|
||||
echo "lang fix it" > ${LANG}
|
||||
${FASM} ${SOURCE} ${OUT}
|
||||
|
||||
clean:
|
||||
rm -f ${LANG} ${OUT}
|
304
programs/testing/cpuid/trunk/multipli.inc
Normal file
@@ -0,0 +1,304 @@
|
||||
newrating:
|
||||
|
||||
cmp [freqbb], 151
|
||||
jl f266
|
||||
|
||||
cmp [freqbb], 150
|
||||
ja ft
|
||||
|
||||
jmp vyxod
|
||||
ft:
|
||||
|
||||
cmp [freqbb], 180
|
||||
ja f400
|
||||
|
||||
cmp [freqbb], 181
|
||||
jl f333
|
||||
jmp vyxod
|
||||
f266:
|
||||
|
||||
;<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> XP-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Athlon-<EFBFBD><EFBFBD> (Tbred, Barton):
|
||||
;FSB266/256kB: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;XP+ (Freq<2000MHz) = 1000 + (Freq-1000)*1,5 = Freq*1.5-500
|
||||
;XP+ (Freq>=2000MHz) = 900 + (Freq-1000)*1,5 = Freq*1.5-600
|
||||
|
||||
mov [FRS], 266
|
||||
|
||||
cmp [total], 2000
|
||||
jl pal
|
||||
|
||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2000+
|
||||
mov eax,[total]
|
||||
imul eax, 3
|
||||
shr eax,1
|
||||
sub eax, 600
|
||||
mov [rating], eax
|
||||
|
||||
jmp vyxod
|
||||
|
||||
pal:
|
||||
|
||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2000-
|
||||
mov eax,[total]
|
||||
imul eax, 3
|
||||
shr eax,1
|
||||
sub eax, 500
|
||||
mov [rating], eax
|
||||
|
||||
jmp vyxod
|
||||
|
||||
|
||||
f333:
|
||||
|
||||
mov [FRS], 333
|
||||
|
||||
|
||||
cmp [L2], 256
|
||||
jl .Th ; Thorton
|
||||
|
||||
;FSB333/512kB: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;XP+ (Freq<2100MHz) = Freq*1.2 + 300
|
||||
;XP+ (Freq>=2100MHz) = Freq*1.2 + 400
|
||||
|
||||
cmp [total], 2100
|
||||
jl .r2100
|
||||
mov eax,[total]
|
||||
xor edx, edx
|
||||
imul eax, 600000
|
||||
mov ebx, 500000
|
||||
div ebx
|
||||
mov [rating], eax
|
||||
add [rating], 400
|
||||
|
||||
; Rating for Barton F<2000 MHz
|
||||
jmp vyxod
|
||||
|
||||
.r2100:
|
||||
mov eax,[total]
|
||||
xor edx, edx
|
||||
imul eax, 600000
|
||||
mov ebx, 500000
|
||||
div ebx
|
||||
mov [rating], eax
|
||||
add [rating], 300
|
||||
|
||||
|
||||
; Rating for Barton F>2000 MHz
|
||||
jmp vyxod
|
||||
|
||||
;FSB333/256kB: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
;XP+ = Freq*1.2 + 100
|
||||
|
||||
.Th:
|
||||
|
||||
mov eax,[total]
|
||||
xor edx, edx
|
||||
imul eax, 600000
|
||||
mov ebx, 500000
|
||||
div ebx
|
||||
mov [rating], eax
|
||||
add [rating], 100
|
||||
|
||||
|
||||
;Rating for Thorton
|
||||
|
||||
|
||||
jmp vyxod
|
||||
|
||||
f400:
|
||||
mov [FRS], 400
|
||||
|
||||
;FSB400/512kB:
|
||||
;XP+ = Freq*1.5 - 100
|
||||
|
||||
mov eax,[total]
|
||||
imul eax, 3
|
||||
shr eax,1
|
||||
sub eax, 100
|
||||
mov [rating], eax
|
||||
|
||||
vyxod:
|
||||
|
||||
|
||||
ret
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
multipl:
|
||||
;--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
; out : CL = <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * 10, <EFBFBD><EFBFBD><EFBFBD> 0
|
||||
|
||||
xor ecx, ecx
|
||||
|
||||
cmp dword[smallvendor], 'cAMD' ; Check for Advanced Micro Devices CPU
|
||||
jne noAMD
|
||||
cmp byte [f], 5
|
||||
jne noAMDK6
|
||||
mov eax, 68 ; AMD-K6 (p.30)
|
||||
mov ebx, 3
|
||||
mov edx, 0x0C0000087
|
||||
mcall ; eax - low dword
|
||||
and eax, 111b
|
||||
mov cl, [athloncoef3 + eax]
|
||||
cmp eax, 6
|
||||
jne @f
|
||||
cmp byte[m], 8
|
||||
jae @f
|
||||
mov cl, 20
|
||||
@@: ret
|
||||
|
||||
noAMDK6:cmp byte [f], 6
|
||||
jne noAMDK7
|
||||
cmp byte [m], 5
|
||||
jna @f
|
||||
mov eax, 0x80000007
|
||||
cpuid
|
||||
and edx, 6 ; voltage ID control & frequency ID control
|
||||
cmp edx, 6
|
||||
je AMDK7M
|
||||
@@: mov eax, 68 ; Athlon/AthlonXP
|
||||
mov ebx, 3
|
||||
mov edx, 0x0C0010015
|
||||
mcall
|
||||
mov ebx, eax
|
||||
shr ebx, 24
|
||||
and ebx, 0x0F
|
||||
shr eax, 20
|
||||
jnc @f
|
||||
add bl, 16
|
||||
@@: mov cl, [athloncoef + ebx]
|
||||
ret
|
||||
|
||||
AMDK7M: mov eax, 68 ; AthonXP-M
|
||||
mov ebx, 3
|
||||
mov edx, 0xC0010042
|
||||
mcall
|
||||
and eax, 0x1F
|
||||
mov cl, [athlonmcoef + eax]
|
||||
ret
|
||||
|
||||
noAMDK7:cmp byte [f], 0xF
|
||||
jne noAMDK8
|
||||
mov eax, 0x80000007
|
||||
cpuid
|
||||
and edx, 6 ; voltage ID control & frequency ID control
|
||||
cmp edx, 6
|
||||
je AMDK8M
|
||||
mov eax, 68 ; Athon64
|
||||
mov ebx, 3
|
||||
mov edx, 0xC0010015
|
||||
mcall
|
||||
shr eax, 24
|
||||
and al, 0x3F
|
||||
shr al, 1
|
||||
add al, 4
|
||||
mov dl, 10
|
||||
mul dl
|
||||
mov cl, al
|
||||
ret
|
||||
|
||||
AMDK8M: mov eax, 68 ; Athon64-M
|
||||
mov ebx, 3
|
||||
mov edx, 0xC0010042
|
||||
mcall
|
||||
and al, 0x3F
|
||||
shr al, 1
|
||||
add al, 4
|
||||
mov dl, 10
|
||||
mul dl
|
||||
mov cl, al
|
||||
ret
|
||||
;/////////////////////////////////////////////////////////
|
||||
noAMD: cmp dword [smallvendor], 'ntel' ; Check for International Electronics CPU
|
||||
jne noIntel
|
||||
cmp byte[f], 0x0F
|
||||
jne noIntelP4
|
||||
cmp byte [t], 6
|
||||
jne @f
|
||||
mov eax, 68 ; Pentium M
|
||||
mov ebx, 3
|
||||
mov edx, 0x2A
|
||||
mcall
|
||||
shr eax, 22
|
||||
and eax, 0x1F
|
||||
mov dl, 10
|
||||
mul dl
|
||||
mov cl, al
|
||||
ret
|
||||
@@: cmp byte [m], 2
|
||||
jae @f
|
||||
mov eax, 68 ; Pentium 4 / Xeon (model < 2) Willamete
|
||||
mov ebx, 3
|
||||
mov edx, 0x2A
|
||||
mcall
|
||||
shr eax, 8
|
||||
and eax, 0x0F
|
||||
mov cl, [p4coef + eax]
|
||||
ret
|
||||
@@: mov eax, 68 ; Pentium 4 / Xeon (model >= 2) NorthWood
|
||||
mov ebx, 3
|
||||
mov edx, 0x2C
|
||||
mcall
|
||||
shr eax, 24
|
||||
and eax, 0x1F
|
||||
mov dl, 10
|
||||
mul dl
|
||||
mov cl, al
|
||||
ret
|
||||
noIntelP4:
|
||||
cmp byte[f], 6
|
||||
jne noIntelP6
|
||||
;edited code for test task-1
|
||||
cmp byte[em],0x3A ;i3,i5,i7
|
||||
je newCPU;
|
||||
cmp byte[em],0x2A ;celeron dekstop, mobile, Xeon E3
|
||||
je newCPU;
|
||||
cmp byte[em],0x2D ;i7
|
||||
je newCPU;
|
||||
cmp byte[em],0x25 ;celeron, pentium, core i3,i5,i7
|
||||
je newCPU;
|
||||
cmp byte[em],0x2C ;Xeon 3000
|
||||
je newCPU;
|
||||
cmp byte[em],0x1E ;Clarksfield core i7
|
||||
je newCPU;
|
||||
cmp byte[em],0x1A ;Bloomfield-2008
|
||||
je newCPU;
|
||||
cmp byte[em],0x2E ;NEhlem ~2008
|
||||
je newCPU;
|
||||
|
||||
|
||||
mov eax, 68 ; Pentium Pro / Pentium II / Pentium III
|
||||
mov ebx, 3
|
||||
mov edx, 0x2A
|
||||
mcall
|
||||
shr eax, 22
|
||||
test al, 0x20
|
||||
jz @f
|
||||
or al, 0x10
|
||||
@@: and eax, 0x1f
|
||||
|
||||
cmp byte[m], 0x06 ; ? 7
|
||||
ja @f
|
||||
and al, 0x0f
|
||||
@@:
|
||||
mov cl, [coppercoeff + eax]
|
||||
cmp byte[m], 0x0B
|
||||
jb @f
|
||||
mov cl, [tualatcoeff + eax]
|
||||
|
||||
cmp byte[m], 0x0B
|
||||
je @f
|
||||
mov dl, 10 ; model 0x0C - 0x0F - Dothan / Yonah / Conroe / Merom
|
||||
mul dl
|
||||
mov cl, al
|
||||
|
||||
@@: ret
|
||||
|
||||
noIntel:
|
||||
noIntelP6:
|
||||
noAMDK8:
|
||||
newCPU:
|
||||
mov [nomultiplier], 1
|
||||
ret
|
598
programs/testing/cpuid/trunk/rsatest.inc
Normal file
@@ -0,0 +1,598 @@
|
||||
;testing speed of RSA coding (256 bit)
|
||||
;for program CPUID (WildWest)
|
||||
;author: halyavin
|
||||
|
||||
;structure of long number:
|
||||
;rd 1 : length of number
|
||||
;rd 39: digits of number
|
||||
;length of zero number is equal to 1.
|
||||
|
||||
number_digits=39
|
||||
number_size=4*(number_digits+1)
|
||||
|
||||
;calling convention:
|
||||
;procedures can change eax,ecx,edx
|
||||
|
||||
init_rsatest:
|
||||
;to do: add initialization which depends on processor.
|
||||
ret
|
||||
|
||||
|
||||
set_zero:
|
||||
;eax - address of number
|
||||
;[eax]:=0
|
||||
;result: eax isn't changed
|
||||
xor ecx,ecx
|
||||
xor edx,edx
|
||||
inc edx
|
||||
mov dword [eax],edx
|
||||
mov edx,39
|
||||
add eax,4
|
||||
.loop:
|
||||
mov dword [eax],ecx
|
||||
add eax,4
|
||||
dec edx
|
||||
jnz .loop
|
||||
sub eax,160 ;size of number
|
||||
ret
|
||||
|
||||
ladd:
|
||||
;eax - first number
|
||||
;edx - second number
|
||||
;[eax]:=[eax]+[edx]
|
||||
pushad
|
||||
mov ecx,dword [eax]
|
||||
mov esi,dword [edx]
|
||||
mov ebp,eax
|
||||
cmp ecx,esi
|
||||
jg .l1
|
||||
mov ecx,esi
|
||||
.l1:
|
||||
add eax,4
|
||||
add edx,4
|
||||
xor ebx,ebx
|
||||
xor esi,esi
|
||||
mov edi,ecx
|
||||
.l2:
|
||||
add ebx,dword [eax]
|
||||
adc ebx,dword [edx]
|
||||
adc esi,esi
|
||||
mov dword [eax],ebx
|
||||
mov ebx,esi
|
||||
add eax,4
|
||||
xor esi,esi
|
||||
add edx,4
|
||||
dec ecx
|
||||
jnz .l2
|
||||
test ebx,ebx
|
||||
jz .lend
|
||||
inc dword [eax]
|
||||
inc edi
|
||||
.lend:
|
||||
mov eax,ebp
|
||||
mov dword [eax],edi
|
||||
popad
|
||||
ret
|
||||
|
||||
lsub:
|
||||
;eax - first number
|
||||
;edx - second number
|
||||
;[eax]=[eax]-[edx]
|
||||
;[eax]>=[edx]
|
||||
pushad
|
||||
mov ecx,dword [eax]
|
||||
mov edi,ecx
|
||||
mov ebp,eax
|
||||
add eax,4
|
||||
add edx,4
|
||||
xor ebx,ebx
|
||||
xor esi,esi
|
||||
.l1:
|
||||
mov esi,dword [eax]
|
||||
sub esi,ebx
|
||||
sbb esi,dword [edx]
|
||||
mov dword [eax],esi
|
||||
sbb esi,esi
|
||||
mov ebx,esi
|
||||
neg ebx
|
||||
add eax,4
|
||||
add edx,4
|
||||
dec ecx
|
||||
jnz .l1
|
||||
dec edi
|
||||
jz .lend
|
||||
sub eax,4
|
||||
.l2:
|
||||
mov ebx,dword [eax]
|
||||
test ebx,ebx
|
||||
jnz .lend
|
||||
sub eax,4
|
||||
dec edi
|
||||
jnz .l2
|
||||
.lend:
|
||||
inc edi
|
||||
mov eax,ebp
|
||||
mov [eax],edi
|
||||
popad
|
||||
ret
|
||||
|
||||
lcmp:
|
||||
;eax - address of number
|
||||
;edx - address of number
|
||||
;result: ecx=1 if eax>edx
|
||||
; ecx=0 if eax=edx
|
||||
; ecx=-1 if eax<edx
|
||||
push ebx
|
||||
mov ebx,dword [eax]
|
||||
cmp ebx,dword [edx]
|
||||
jg .l1
|
||||
jl .l2
|
||||
push esi
|
||||
push eax
|
||||
push edx
|
||||
lea eax,[eax+4*ebx]
|
||||
lea edx,[edx+4*ebx]
|
||||
.l3:
|
||||
mov esi,dword [eax]
|
||||
cmp esi,dword [edx]
|
||||
ja .l4
|
||||
jb .l5
|
||||
sub eax,4
|
||||
sub edx,4
|
||||
dec ebx
|
||||
jnz .l3
|
||||
xor ecx,ecx
|
||||
.lend:
|
||||
pop edx
|
||||
pop eax
|
||||
pop esi
|
||||
pop ebx
|
||||
ret
|
||||
.l4:
|
||||
mov ecx,1
|
||||
jmp .lend
|
||||
.l5:
|
||||
mov ecx,-1
|
||||
jmp .lend
|
||||
.l1:
|
||||
mov ecx,1
|
||||
pop ebx
|
||||
ret
|
||||
.l2:
|
||||
mov ecx,-1
|
||||
pop ebx
|
||||
ret
|
||||
|
||||
lshr:
|
||||
;eax - number
|
||||
;edx - shift
|
||||
;[eax]=[eax] shr edx
|
||||
cmp edx,32
|
||||
jl .general
|
||||
mov ecx,edx
|
||||
shr ecx,5
|
||||
and edx,31
|
||||
push esi
|
||||
mov esi,ecx
|
||||
cmp ecx,dword [eax]
|
||||
jng .norm
|
||||
xor esi,esi
|
||||
mov ecx,dword [eax]
|
||||
.norm:
|
||||
push edi
|
||||
push ebp
|
||||
mov ebp,eax
|
||||
add eax,4
|
||||
.loop1:
|
||||
test esi,esi
|
||||
jz .endloop1
|
||||
mov edi,dword [eax+4*ecx]
|
||||
mov dword [eax],edi
|
||||
add eax,4
|
||||
dec esi
|
||||
jmp .loop1
|
||||
.endloop1:
|
||||
mov eax,ebp
|
||||
mov esi,dword [eax]
|
||||
lea eax,[eax+4*esi]
|
||||
xor edi,edi
|
||||
mov esi,ecx
|
||||
.loop2:
|
||||
mov dword [eax],edi
|
||||
sub eax,4
|
||||
dec ecx
|
||||
jnz .loop2
|
||||
mov eax,ebp
|
||||
sub dword [eax],esi
|
||||
jz .len0
|
||||
.lend1:
|
||||
pop ebp
|
||||
pop edi
|
||||
pop esi
|
||||
jmp .general
|
||||
|
||||
.len0:
|
||||
inc dword [eax]
|
||||
jmp .lend1
|
||||
|
||||
.general:
|
||||
test edx,edx
|
||||
jz .lend
|
||||
push ebx
|
||||
push esi
|
||||
push edi
|
||||
push ebp
|
||||
push eax
|
||||
mov ebx,dword [eax]
|
||||
lea eax,[eax+4*ebx]
|
||||
mov ecx,edx
|
||||
sub ecx,32
|
||||
neg ecx
|
||||
mov esi,1
|
||||
shl esi,cl
|
||||
dec esi
|
||||
mov ecx,edx
|
||||
xor ebp,ebp
|
||||
.loop3:
|
||||
mov edi,dword [eax]
|
||||
ror edi,cl
|
||||
mov edx,edi
|
||||
and edx,esi
|
||||
or edx,ebp
|
||||
mov dword [eax],edx
|
||||
mov edx,esi
|
||||
not edx
|
||||
and edi,edx
|
||||
mov ebp,edi
|
||||
sub eax,4
|
||||
dec ebx
|
||||
jnz .loop3
|
||||
pop eax
|
||||
mov ebx,dword [eax]
|
||||
mov ecx,dword [eax+4*ebx]
|
||||
dec ebx
|
||||
jz .norm1
|
||||
test ecx,ecx
|
||||
jnz .norm1
|
||||
dec dword [eax]
|
||||
.norm1:
|
||||
pop ebp
|
||||
pop edi
|
||||
pop esi
|
||||
pop ebx
|
||||
.lend:
|
||||
ret
|
||||
|
||||
lshl:
|
||||
;eax - number
|
||||
;edx - shift
|
||||
;[eax]:=[eax] shl edx
|
||||
cmp edx,32
|
||||
jl .general
|
||||
cmp dword [eax],1
|
||||
jnz .l1
|
||||
cmp dword [eax+4],0
|
||||
jnz .l1
|
||||
ret
|
||||
.l1:
|
||||
push esi
|
||||
push ebx
|
||||
mov ecx,edx
|
||||
shr ecx,5
|
||||
and edx,31
|
||||
mov ebx,dword [eax]
|
||||
add dword [eax],ecx
|
||||
lea eax,[eax+4*ebx]
|
||||
.loop1:
|
||||
mov esi,dword [eax]
|
||||
mov dword [eax+4*ecx],esi
|
||||
sub eax,4
|
||||
dec ebx
|
||||
jnz .loop1
|
||||
xor esi,esi
|
||||
lea eax,[eax+4*ecx]
|
||||
.loop2:
|
||||
mov dword [eax],esi
|
||||
sub eax,4
|
||||
dec ecx
|
||||
jnz .loop2
|
||||
pop ebx
|
||||
pop esi
|
||||
jmp .general
|
||||
|
||||
.general:
|
||||
test edx,edx
|
||||
jz .lend
|
||||
pushad
|
||||
mov ecx,edx
|
||||
mov ebx,1
|
||||
shl ebx,cl
|
||||
dec ebx
|
||||
mov edx,dword [eax]
|
||||
xor esi,esi
|
||||
lea eax,[eax+4*edx]
|
||||
.loop3:
|
||||
mov edi,dword [eax]
|
||||
rol edi,cl
|
||||
mov ebp,edi
|
||||
and ebp,ebx
|
||||
add esi,ebp
|
||||
mov dword [eax+4],esi
|
||||
mov ebp,ebx
|
||||
not ebp
|
||||
and edi,ebp
|
||||
mov esi,edi
|
||||
sub eax,4
|
||||
dec edx
|
||||
jnz .loop3
|
||||
mov dword [eax+4],esi
|
||||
mov edx,dword [eax]
|
||||
cmp dword [eax+4*edx+4],0
|
||||
jz .l2
|
||||
inc dword [eax]
|
||||
.l2:
|
||||
popad
|
||||
.lend:
|
||||
ret
|
||||
|
||||
lwrite_bit:
|
||||
;eax - address of number
|
||||
;edx - number of bit
|
||||
;set bit to 1. First bit has number 0.
|
||||
mov ecx,edx
|
||||
shr edx,5
|
||||
inc edx
|
||||
cmp dword [eax],edx
|
||||
jg .norm
|
||||
mov dword [eax],edx
|
||||
.norm:
|
||||
push ebx
|
||||
mov ebx,1
|
||||
shl ebx,cl
|
||||
or dword [eax+4*edx],ebx
|
||||
pop ebx
|
||||
ret
|
||||
|
||||
lcopy:
|
||||
;eax - address of first number
|
||||
;edx - address of second number
|
||||
;[eax]:=[edx]
|
||||
push ebx
|
||||
push esi
|
||||
push eax
|
||||
push edx
|
||||
push dword [eax]
|
||||
mov ebx,dword [edx]
|
||||
mov ecx,ebx
|
||||
add edx,4
|
||||
add eax,4
|
||||
.loop1:
|
||||
mov esi,dword [edx]
|
||||
mov dword [eax],esi
|
||||
add eax,4
|
||||
add edx,4
|
||||
dec ecx
|
||||
jnz .loop1
|
||||
pop ecx
|
||||
sub ecx,ebx
|
||||
jng .l1
|
||||
xor esi,esi
|
||||
.loop2:
|
||||
mov dword [eax],esi
|
||||
add eax,4
|
||||
dec ecx
|
||||
jnz .loop2
|
||||
.l1:
|
||||
pop edx
|
||||
pop eax
|
||||
mov dword [eax],ebx
|
||||
pop esi
|
||||
pop ebx
|
||||
ret
|
||||
|
||||
lmul:
|
||||
;eax - first number
|
||||
;edx - second number
|
||||
;ecx - third number
|
||||
;[eax]:=[ecx]*[edx]
|
||||
push ecx
|
||||
push edx
|
||||
call set_zero
|
||||
pop edx
|
||||
pop ecx
|
||||
pushad
|
||||
sub esp,16 ; local variables
|
||||
mov ebp,edx
|
||||
mov ebx,dword [edx]
|
||||
mov dword [esp],ebx
|
||||
mov ebx,dword [ecx]
|
||||
mov dword [esp+4],ebx
|
||||
mov ebx,eax
|
||||
add ebp,4
|
||||
add ecx,4
|
||||
add ebx,4
|
||||
xor esi,esi
|
||||
mov dword [esp+8],esi
|
||||
.loop1:
|
||||
xor esi,esi
|
||||
mov dword [esp+12],esi
|
||||
.loop2:
|
||||
mov eax,dword [esp+12]
|
||||
mov eax,dword [ecx+4*eax]
|
||||
mov edi,dword [esp+8]
|
||||
mov edi,dword [ebp+4*edi]
|
||||
mul edi
|
||||
add eax,esi
|
||||
adc edx,0
|
||||
mov edi,dword [esp+12]
|
||||
add edi,dword [esp+8]
|
||||
add eax,dword [ebx+4*edi]
|
||||
adc edx,0
|
||||
mov dword [ebx+4*edi],eax
|
||||
mov esi,edx
|
||||
inc dword [esp+12]
|
||||
mov eax,dword [esp+4]
|
||||
cmp dword [esp+12],eax
|
||||
jnz .loop2
|
||||
test esi,esi
|
||||
jz .loop1end
|
||||
mov eax,dword [esp+12]
|
||||
add eax,dword [esp+8]
|
||||
mov [ebx+4*eax],esi
|
||||
.loop1end:
|
||||
inc dword [esp+8]
|
||||
mov eax,dword [esp]
|
||||
cmp dword [esp+8],eax
|
||||
jnz .loop1
|
||||
add esp,16
|
||||
sub ebx,4
|
||||
mov ecx,39
|
||||
xor edx,edx
|
||||
.loop3:
|
||||
cmp dword [ebx+4*ecx],edx
|
||||
jnz .loop3end
|
||||
dec ecx
|
||||
jnz .loop3
|
||||
.loop3end:
|
||||
test ecx,ecx
|
||||
jnz .l1
|
||||
inc ecx
|
||||
.l1:
|
||||
mov dword [ebx],ecx
|
||||
popad
|
||||
ret
|
||||
|
||||
lmod:
|
||||
;eax - address of first number
|
||||
;edx - address of second number
|
||||
;[eax]:=[eax] mod [edx]
|
||||
mov ecx,dword [eax]
|
||||
sub ecx,dword [edx]
|
||||
jl .lend
|
||||
pushad
|
||||
inc ecx
|
||||
mov ebp,eax
|
||||
mov eax,edx
|
||||
mov edi,eax
|
||||
shl ecx,5
|
||||
mov edx,ecx
|
||||
mov esi,ecx
|
||||
call lshl
|
||||
.loop:
|
||||
mov eax,ebp
|
||||
mov edx,edi
|
||||
call lcmp
|
||||
test ecx,ecx
|
||||
jl .l1
|
||||
call lsub
|
||||
.l1:
|
||||
dec esi
|
||||
js .endloop
|
||||
mov eax,edx
|
||||
mov edx,1
|
||||
call lshr
|
||||
jmp .loop
|
||||
.endloop:
|
||||
popad
|
||||
.lend:
|
||||
ret
|
||||
|
||||
rsacode:
|
||||
;eax - address of message
|
||||
;edx - open key
|
||||
;ecx - address of module
|
||||
;esi - temparary number1
|
||||
;edi - temparary number2
|
||||
;esi - [eax]^edx mod (ecx)
|
||||
;[eax] is changed.
|
||||
push eax
|
||||
push edx
|
||||
push ecx
|
||||
xchg eax,esi
|
||||
call set_zero
|
||||
mov dword [eax+4],1
|
||||
mov esi,eax
|
||||
mov eax,edi
|
||||
call set_zero
|
||||
.loop:
|
||||
mov ecx,dword [esp+4]
|
||||
test ecx,1
|
||||
jz .l1
|
||||
mov eax,edi
|
||||
mov edx,esi
|
||||
mov ecx,dword [esp+8]
|
||||
call lmul
|
||||
mov edx,dword [esp]
|
||||
call lmod
|
||||
mov eax,esi
|
||||
mov edx,edi
|
||||
call lcopy
|
||||
.l1:
|
||||
shr dword [esp+4],1
|
||||
jz .endloop
|
||||
mov edx,dword [esp+8]
|
||||
mov ecx,edx
|
||||
mov eax,edi
|
||||
call lmul
|
||||
mov edx,dword [esp]
|
||||
call lmod
|
||||
mov eax,dword [esp+8]
|
||||
mov edx,edi
|
||||
call lcopy
|
||||
jmp .loop
|
||||
.endloop:
|
||||
pop ecx
|
||||
pop edx
|
||||
pop eax
|
||||
ret
|
||||
|
||||
rsa_test:
|
||||
mov eax,num1
|
||||
mov dword [eax],16
|
||||
mov ecx,1
|
||||
mov edx,16
|
||||
.loop:
|
||||
add eax,4
|
||||
mov dword [eax],ecx
|
||||
dec edx
|
||||
jnz .loop
|
||||
mov eax,num1
|
||||
mov ebx,[iter]
|
||||
mov dword [eax+4],ebx
|
||||
inc dword [iter]
|
||||
mov edx,[openkey]
|
||||
mov ecx,module
|
||||
mov esi,num2
|
||||
mov edi,num3
|
||||
call rsacode
|
||||
|
||||
ret
|
||||
|
||||
init_test:
|
||||
xor eax,eax
|
||||
mov [iter],eax
|
||||
mov [openkey],10007
|
||||
mov eax,num2
|
||||
call set_zero
|
||||
mov eax,num3
|
||||
call set_zero
|
||||
ret
|
||||
|
||||
module:
|
||||
;module=p*q.
|
||||
;where
|
||||
;p=
|
||||
;dd 9
|
||||
;dd 147,2,3,4,5,6,7,8,9
|
||||
;times 30 dd 0
|
||||
;q=
|
||||
;dd 9
|
||||
;dd 163,4,5,6,7,8,9,10,11
|
||||
;times 30 dd 0
|
||||
dd 17
|
||||
dd 23961,914,1232,1556,1887,2226,2574,2932,3301,288,308,314,305,280,238,178,99
|
||||
times 22 dd 0
|
||||
;in decimal
|
||||
;p=1042128803351525332193283695592003066548124262686459610611886292768993621049491
|
||||
;q=1273712981880077616387281148672409277231717442781838063285512054053473668300963
|
||||
;n=1327372985619988354987062708438042005329282516404896732667039640816200186465366322016844458439816997285872910403676793109807015096535910981266920474905959833
|
BIN
programs/testing/cpuid/trunk/transmet.gif
Normal file
After Width: | Height: | Size: 882 B |
355
programs/testing/cpuid/trunk/variable.inc
Normal file
@@ -0,0 +1,355 @@
|
||||
; Brand
|
||||
;======================
|
||||
brand0:
|
||||
db 'n/a'
|
||||
brand0len:
|
||||
|
||||
brand01:
|
||||
db '01 Celeron'
|
||||
brand01len:
|
||||
|
||||
brand02:
|
||||
db '02 Pentium III'
|
||||
brand02len:
|
||||
|
||||
brand03:
|
||||
db '03 Pentium III Xeon'
|
||||
brand03len:
|
||||
|
||||
brand03d:
|
||||
db '03 Celeron'
|
||||
brand03dlen:
|
||||
|
||||
brand04:
|
||||
db '04 Pentium III'
|
||||
brand04len:
|
||||
|
||||
brand06:
|
||||
db '06 Pentium III M'
|
||||
brand06len:
|
||||
|
||||
brand07:
|
||||
db '07 Celeron M'
|
||||
brand07len:
|
||||
|
||||
brand08:
|
||||
db '08 Pentium 4'
|
||||
brand08len:
|
||||
|
||||
brand09:
|
||||
db '09 Pentium 4'
|
||||
brand09len:
|
||||
|
||||
brand0A:
|
||||
db '0A Celeron'
|
||||
brand0Alen:
|
||||
|
||||
brand0B:
|
||||
db '0B Xeon'
|
||||
brand0Blen:
|
||||
|
||||
brand0Bd:
|
||||
db '0B Xeon MP'
|
||||
brand0Bdlen:
|
||||
|
||||
brand0C:
|
||||
db '0C Xeon MP'
|
||||
brand0Clen:
|
||||
|
||||
brand0E:
|
||||
db '0E Pentium 4 M'
|
||||
brand0Elen:
|
||||
|
||||
brand0Ed:
|
||||
db '0E Xeon'
|
||||
brand0Edlen:
|
||||
|
||||
brand0F:
|
||||
db '10 Celeron M'
|
||||
brand0Flen:
|
||||
|
||||
brand11:
|
||||
db '11 Mobile CPU'
|
||||
brand11len:
|
||||
|
||||
brand12:
|
||||
db '12 Celeron M'
|
||||
brand12len:
|
||||
|
||||
brand13:
|
||||
db '13 Celeron M'
|
||||
brand13len:
|
||||
|
||||
brand14:
|
||||
db '14 Celeron'
|
||||
brand14len:
|
||||
|
||||
brand15:
|
||||
db '15 Mobile CPU'
|
||||
brand15len:
|
||||
|
||||
brand16:
|
||||
db '16 Pentium M'
|
||||
brand16len:
|
||||
|
||||
brand17:
|
||||
db '17 Celeron M'
|
||||
brand17len:
|
||||
;======================
|
||||
|
||||
;features
|
||||
|
||||
FPU:
|
||||
db 'FPU: ',0
|
||||
FPUlen:
|
||||
|
||||
VME:
|
||||
db 'VME: ',0
|
||||
VMElen:
|
||||
|
||||
DE:
|
||||
db 'DE: ',0
|
||||
DElen:
|
||||
|
||||
PSE:
|
||||
db 'PSE: ',0
|
||||
PSElen:
|
||||
|
||||
TSC:
|
||||
db 'TSC: ',0
|
||||
TSClen:
|
||||
|
||||
MSR:
|
||||
db 'MSR: ',0
|
||||
MSRlen:
|
||||
|
||||
PAE:
|
||||
db 'PAE: ',0
|
||||
PAElen:
|
||||
|
||||
MCE:
|
||||
db 'MCE: ',0
|
||||
MCElen:
|
||||
|
||||
CX8:
|
||||
db 'CX8: ',0
|
||||
CX8len:
|
||||
|
||||
APIC:
|
||||
db 'APIC: ',0
|
||||
APIClen:
|
||||
|
||||
SEP:
|
||||
db 'SEP: ',0
|
||||
SEPlen:
|
||||
|
||||
MTRR:
|
||||
db 'MTRR: ',0
|
||||
MTRRlen:
|
||||
|
||||
PGE:
|
||||
db 'PGE: ',0
|
||||
PGElen:
|
||||
|
||||
MCA:
|
||||
db 'MCA: ',0
|
||||
MCAlen:
|
||||
|
||||
CMOV:
|
||||
db 'CMOV: ',0
|
||||
CMOVlen:
|
||||
|
||||
PAT:
|
||||
db 'PAT: ',0
|
||||
PATlen:
|
||||
|
||||
PSE36:
|
||||
db 'PSE36: ',0
|
||||
PSE36len:
|
||||
|
||||
PSNUM:
|
||||
db 'PSNUM: ',0
|
||||
PSNUMlen:
|
||||
|
||||
CLFLUSHn:
|
||||
db 'CLFLSH: ',0
|
||||
CLFLUSHnlen:
|
||||
|
||||
DTS:
|
||||
db 'DTS: ',0
|
||||
DTSlen:
|
||||
|
||||
ACPI:
|
||||
db 'ACPI: ',0
|
||||
ACPIlen:
|
||||
|
||||
MMX:
|
||||
db 'MMX: ',0
|
||||
MMXlen:
|
||||
|
||||
FXSR:
|
||||
db 'FXSR: ',0
|
||||
FXSRlen:
|
||||
|
||||
SSE:
|
||||
db 'SSE: ',0
|
||||
SSElen:
|
||||
|
||||
SSE2:
|
||||
db 'SSE2: ',0
|
||||
SSE2len:
|
||||
|
||||
SSn:
|
||||
db 'SS: ',0
|
||||
SSnlen:
|
||||
|
||||
TM:
|
||||
db 'TM: ',0
|
||||
TMlen:
|
||||
|
||||
IA64:
|
||||
db 'IA64: ',0
|
||||
IA64len:
|
||||
|
||||
PBE:
|
||||
db 'PBE: ',0
|
||||
PBElen:
|
||||
|
||||
Res:
|
||||
db 'Reserved',0
|
||||
Reslen:
|
||||
|
||||
;Extended
|
||||
|
||||
SS3:
|
||||
db 'SSE3: ',0
|
||||
SS3len:
|
||||
|
||||
MON:
|
||||
db 'MON: ',0
|
||||
MONlen:
|
||||
|
||||
DS_CPL:
|
||||
db 'DS-CPL: ',0
|
||||
DS_CPLlen:
|
||||
|
||||
EST:
|
||||
db 'EST: ',0
|
||||
ESTlen:
|
||||
|
||||
TM2:
|
||||
db 'TM2: ',0
|
||||
TM2len:
|
||||
|
||||
CNXT_ID:
|
||||
db 'CNXT-ID: ',0
|
||||
CNXT_IDlen:
|
||||
|
||||
CX16:
|
||||
db 'CX16: ',0
|
||||
CX16len:
|
||||
|
||||
ETPRD:
|
||||
db 'xTPR/ETPRD: ',0 ; xTPR
|
||||
ETPRDlen:
|
||||
|
||||
;Extended2
|
||||
|
||||
SYS:
|
||||
db 'SYSCALL: ',0
|
||||
SYSlen:
|
||||
|
||||
MP:
|
||||
db 'MP: ',0
|
||||
MPlen:
|
||||
|
||||
NX:
|
||||
db 'NX/XD: ',0
|
||||
NXlen:
|
||||
|
||||
MMXPi:
|
||||
db 'MMX+: ',0
|
||||
MMXPilen:
|
||||
|
||||
MMXn:
|
||||
db 'MMX: ',0
|
||||
MMXnlen:
|
||||
|
||||
FXSRn:
|
||||
db 'FXSR: ',0
|
||||
FXSRnlen:
|
||||
|
||||
FFXSR:
|
||||
db 'FFXSR: ',0
|
||||
FFXSRlen:
|
||||
|
||||
TSCP:
|
||||
db 'TSCP: ',0
|
||||
TSCPlen:
|
||||
|
||||
LM:
|
||||
db 'EM64T/LM: ',0 ; AA64
|
||||
LMlen:
|
||||
|
||||
DNo:
|
||||
db '3DNow!+: ',0
|
||||
DNolen:
|
||||
|
||||
DN:
|
||||
db '3DNow!: ',0
|
||||
DNlen:
|
||||
|
||||
LAF:
|
||||
db 'LAHF: ',0
|
||||
LAFlen:
|
||||
|
||||
VMX:
|
||||
db 'VMX: ',0
|
||||
VMXlen:
|
||||
|
||||
SSSE3:
|
||||
db 'SSSE3: ',0
|
||||
SSSE3len:
|
||||
|
||||
DCA:
|
||||
db 'DCA: ',0
|
||||
DCAlen:
|
||||
|
||||
|
||||
MCR8:
|
||||
db 'MCR8: ',0
|
||||
MCR8len:
|
||||
|
||||
SVM:
|
||||
db 'SVM: ',0
|
||||
SVMlen:
|
||||
|
||||
CMPL:
|
||||
db 'CMPL: ',0
|
||||
CMPLlen:
|
||||
;================================
|
||||
abrand00:
|
||||
db '8-bit Brand (no details)'
|
||||
abrand00len:
|
||||
|
||||
abrand0:
|
||||
db 'AMD Opteron UP'
|
||||
abrand0len:
|
||||
|
||||
abrand1:
|
||||
db 'AMD Opteron DP'
|
||||
abrand1len:
|
||||
|
||||
abrand2:
|
||||
db 'AMD Opteron MP'
|
||||
abrand2len:
|
||||
;=====================================
|
||||
multi0:
|
||||
db 'n/a'
|
||||
multi0len:
|
||||
|
||||
;=====================================
|
||||
clock0:
|
||||
db 'n/a'
|
||||
clock0len:
|
||||
|
BIN
programs/testing/cpuid/trunk/via.gif
Normal file
After Width: | Height: | Size: 673 B |
BIN
programs/testing/cpuid/trunk/vortex.gif
Normal file
After Width: | Height: | Size: 610 B |
2
programs/testing/latency/trunk/Tupfile.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||
tup.rule("latency.asm", "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "latency")
|
3
programs/testing/latency/trunk/build.bat
Normal file
@@ -0,0 +1,3 @@
|
||||
@fasm latency.asm latency
|
||||
@kpack latency
|
||||
@pause
|
135
programs/testing/latency/trunk/latency.asm
Normal file
@@ -0,0 +1,135 @@
|
||||
;; CPU latency test -- Art J ;;
|
||||
|
||||
|
||||
use32 ;
|
||||
org 0x0 ;
|
||||
|
||||
db 'MENUET01' ;
|
||||
dd 0x01 ;
|
||||
dd START ;
|
||||
dd I_END ;
|
||||
dd 0x4000 ;
|
||||
dd 0x4000 ;
|
||||
dd 0x0 ;
|
||||
dd 0x0 ;
|
||||
|
||||
include '..\..\..\macros.inc' ;
|
||||
|
||||
|
||||
START:
|
||||
|
||||
|
||||
call draw_win
|
||||
|
||||
|
||||
rdtsc
|
||||
|
||||
main_loop:
|
||||
mov ecx, eax ; ecx = previous timestamp
|
||||
rdtsc ; new timestamp
|
||||
cmp eax, ecx
|
||||
jb main_loop ; tsc overflow?
|
||||
|
||||
mov ebx, eax ;
|
||||
sub ebx, ecx ; net clocks
|
||||
|
||||
cmp ebx, [max]
|
||||
jb @f
|
||||
mov [max], ebx
|
||||
; mcall 13, 200*65536+60, 500*65536+20, 0x00EEEEEEEE
|
||||
; mcall 47, 0x800A0001, max, 200*65536+501
|
||||
@@:
|
||||
push ebx
|
||||
fldlg2 ; lg(2)
|
||||
fild dword[esp]
|
||||
fyl2x
|
||||
fimul [yscale]
|
||||
fistp dword[esp]
|
||||
pop ebx ; ebx = lg(time/100) * yscale
|
||||
sub ebx, [yscale]
|
||||
sub ebx, [yscale]
|
||||
jb main_loop
|
||||
|
||||
cmp ebx, 512
|
||||
ja main_loop
|
||||
|
||||
mov edx, [ebx*4+data_]
|
||||
|
||||
inc edx
|
||||
mov [ebx*4+data_], edx
|
||||
push edx
|
||||
fld qword[xscale]
|
||||
fild dword[esp]
|
||||
fyl2x
|
||||
fistp dword[esp]
|
||||
pop edx ; edx = log2(counts) * xscale
|
||||
cmp edx, 300
|
||||
jge main_loop
|
||||
|
||||
shl ebx, 12 ; 1 line = 1024 pixels
|
||||
add ebx, 1024*4*30 + 17*4
|
||||
mov dword[ebx + edx*4 + 0xFE000000], 0x00703030
|
||||
jmp main_loop
|
||||
|
||||
|
||||
|
||||
|
||||
;------------------------------------------------
|
||||
draw_win:
|
||||
;------------------------------------------------
|
||||
|
||||
|
||||
mcall 12, 1
|
||||
mcall 0, 300, 590, 0x14BAA6A0,,title
|
||||
; -----------------------------------------------------------------
|
||||
mov ecx, [yscale]
|
||||
shl ecx, 16
|
||||
mov cx, word[yscale]
|
||||
mov [ytick], ecx
|
||||
mcall 38, 16*65536+16, 30*65536+530, 0
|
||||
mov cx, 30
|
||||
@@:
|
||||
mcall , 14*65536+16
|
||||
add ecx, [ytick]
|
||||
cmp cx, 512
|
||||
jb @b
|
||||
|
||||
mcall 4, 0x00100230, 0x80000000, advise
|
||||
mov eax, 47
|
||||
mov ebx, 0x00010000
|
||||
mov ecx, 2
|
||||
mov edx, 7*65536+30
|
||||
mov esi, 0
|
||||
@@:
|
||||
mcall
|
||||
add dx, word[yscale]
|
||||
inc ecx
|
||||
cmp dx, 512
|
||||
jb @b
|
||||
|
||||
mcall 40, 0xC0000000 ; ignore sys messages
|
||||
|
||||
mcall 12, 2
|
||||
|
||||
|
||||
ret
|
||||
|
||||
|
||||
align 4
|
||||
;-------------------------------------------------
|
||||
data_ dd 512 dup 1 ; hysto
|
||||
max dd 0
|
||||
xscale dq 7.2
|
||||
yscale dd 80
|
||||
ytick dd 0
|
||||
|
||||
|
||||
title db ' Latency test ',0
|
||||
advise db 'Use CPU process manager to close this window)',0
|
||||
|
||||
I_END: ; end of program
|
||||
|
||||
rd 256
|
||||
|
||||
align 256
|
||||
st_0:
|
15
programs/testing/latency/trunk/makefile
Normal file
@@ -0,0 +1,15 @@
|
||||
#!gmake
|
||||
|
||||
# Macro
|
||||
FASM=/opt/bin/fasm
|
||||
KPACK=/opt/bin/kpack
|
||||
FILE=latency
|
||||
SOURCE=${FILE}.asm
|
||||
OUT=${FILE}.bin
|
||||
|
||||
en:
|
||||
${FASM} ${SOURCE} ${OUT}
|
||||
${KPACK} ${OUT}
|
||||
|
||||
clean:
|
||||
rm -f ${LANG} ${OUT}
|
471
programs/testing/pcidev/branches/new_api/PCIDEV.ASM
Normal file
@@ -0,0 +1,471 @@
|
||||
;***************************************************************
|
||||
; project name: PCI Device Enumeration
|
||||
; target platform: KolibriOS
|
||||
; compiler: flat assmebler 1.66
|
||||
; version: 2.1
|
||||
; last update: April 2007
|
||||
; maintained by: Jason Delozier (cordata51@hotmail.com)
|
||||
; Sergey Kuzmin (kuzmin_serg@list.ru)
|
||||
; Mihailov Ilia (ghost.nsk@gmail.com)
|
||||
; project site: http://www.coolthemes.narod.ru/pcidev.html
|
||||
;***************************************************************
|
||||
;Summary: This program will attempt to scan the PCI Bus
|
||||
; and display basic information about each device
|
||||
; connected to the PCI Bus.
|
||||
;***************************************************************
|
||||
;HISTORY:
|
||||
;keep dates in european format (dd/mm/yyyy), please
|
||||
; '!' means big changes
|
||||
;
|
||||
;to-do:
|
||||
; more vendors
|
||||
; vendor's website
|
||||
; Subsystem id and Subsystem vendor id detection
|
||||
|
||||
; Full device detection (like "ATI Radeon 9200") will increase app
|
||||
; size a lot and probably it is function of particular drivers
|
||||
;----------------------------------------------------------------
|
||||
;2.1n: PCIDEV ??/04/2007
|
||||
;Author: Mihailov Ilia aka Ghost <ghost.nsk@gmail.com>
|
||||
;Features:
|
||||
; added
|
||||
; * new PCI API
|
||||
;----------------------------------------------------------------
|
||||
;2.1: PCIDEV ??/04/2007
|
||||
;Author: Mihailov Ilia aka Ghost <ghost.nsk@gmail.com>
|
||||
;Features:
|
||||
; fixed
|
||||
; * Same little bugs
|
||||
; * Source code formating
|
||||
; * PCI version normalized 0210 -> 2.10
|
||||
; added
|
||||
; * + 13 vendor (total now 1000!)
|
||||
; * + 3 class type
|
||||
; * Fast call source ready
|
||||
; * Device IRQ detection
|
||||
; optimized
|
||||
; * ! size optimized (61025 -> 32501 see added)
|
||||
; * easy to add new vendor & class names
|
||||
;----------------------------------------------------------------
|
||||
;2.0: PCIDEV 30/08/2006
|
||||
;(it differs a lot from the version 1.0, which was introduced 19 months ago)
|
||||
;Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
; Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
;Features:
|
||||
; added
|
||||
; * Detection of Interface by Mario79
|
||||
; * 122 vendor id's by Wildwest
|
||||
; * Description is based on Class, SubClass and Interface now (PCI 3.0) by Wildwest
|
||||
;----------------------------------------------------------------
|
||||
;1.31: PCIDEV 13/05/2006
|
||||
;Author: Jason Delozier <cordata51@hotmail.com>
|
||||
;Features:
|
||||
; fixed
|
||||
; * ! bug in Company Name look up code that would cause Unknown Name errors.
|
||||
; * ! possible bugs, many instructions missing byte, word, dword prefixes
|
||||
; * ! possible bug which could have occured after removing "PREVIOUSVERSIONLIST"
|
||||
; entry in loop up code and not fixing jump parameters.
|
||||
; added
|
||||
; * comments to various parts of the code
|
||||
; optimized
|
||||
; * various parts of the source, too many to remember and mention.
|
||||
; * changed entries for Subclasses in vendors.inc to Byte format, saves a little space.
|
||||
;----------------------------------------------------------------
|
||||
;1.30: PCIDEV 11/05/2006
|
||||
;Author: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
;Features:
|
||||
; added
|
||||
; * 3 new vendor id's (ESS from Madis Kalme and 2 id's
|
||||
; forgotten from 1.15 release: Broadcom -SiByte and Chaintech Comp.)
|
||||
; changed
|
||||
; * I don't know why other devs (Jason or Victor) changed window style
|
||||
; to old ugly one, so I changed it back to skinned type 3.
|
||||
; * the same goes to the use of macroc.inc - it is enabled again.
|
||||
; deleted
|
||||
; * there is no more label "PREVIOUSVERSIONLIST" - id's moved to the
|
||||
; appropriate parts of global list.
|
||||
;----------------------------------------------------------------
|
||||
;1.29: PCIDEV 30/04/2006
|
||||
;Author: Jason Delozier <cordata51@hotmail.com>
|
||||
;Features:
|
||||
; fixed
|
||||
; * ! bug that would not allow devices with device
|
||||
; numbers > 16 to be displayed.
|
||||
; added
|
||||
; * ! another heading called "FNC" (function) which allows
|
||||
; the multipurpose Device/Function varible to be split and
|
||||
; displayed to the user properly.
|
||||
; * horizontal bars to display for easier reading.
|
||||
; optimized
|
||||
; * vendor/description search routines for speed and space.
|
||||
;----------------------------------------------------------------
|
||||
;1.25: PCIDEV 02/10/2005
|
||||
;Author: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
;Features:
|
||||
; changed
|
||||
; * ! Description is based on Class and SubClass
|
||||
; now (PCI 3.0). The Names of Classes and SubClasses
|
||||
; are in the end of Vendors.inc
|
||||
; deleted
|
||||
; * label "Descriptions" (names of Classes)
|
||||
;
|
||||
;----------------------------------------------------------------
|
||||
;1.20: PCIDEV 16/08/2005
|
||||
;Author: Victor Alberto Gil Hanla a.k.a. vhanla <vhanla@gmail.com>
|
||||
;Features:
|
||||
; added
|
||||
; * ! many vendor lists (865)
|
||||
; deleted
|
||||
; * previous version's list
|
||||
; changed
|
||||
; * previous Company Name searching and printing
|
||||
;----------------------------------------------------------------
|
||||
;1.15: PCIDEV 03/06/2005
|
||||
;Author: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
;Features:
|
||||
; added
|
||||
; * quantity of devices,
|
||||
; * ! detection of Company Name based on Vendor ID,
|
||||
; * database of VenID (35 ID's),
|
||||
; * macros.inc for smaller size,
|
||||
; changed
|
||||
; * interface+(skinned window),
|
||||
; * VenID before DevID in 'table'(was DevID before VenID)
|
||||
;----------------------------------------------------------------
|
||||
;1.0: PCIDEV 30/01/2005
|
||||
;Author: Jason Delozier
|
||||
;Features:
|
||||
; able to
|
||||
; * detect PCI version,
|
||||
; * quantity of PCI buses,
|
||||
; * Vendor&Device ID for appropriate Device on Bus;
|
||||
; * detect Revision, Class and Subclass of Device,
|
||||
; * and make Description based on Class
|
||||
;-------------------------------------------------------------
|
||||
include 'macros.inc'
|
||||
MEOS_APP_START
|
||||
CODE
|
||||
call draw_window
|
||||
|
||||
still: mcall 10 ; wait here for event
|
||||
dec eax ; redraw request ?
|
||||
jz red
|
||||
dec eax ; key in buffer ?
|
||||
jz key
|
||||
dec eax ; button in buffer ?
|
||||
jz button
|
||||
jmp still
|
||||
|
||||
red: ; redraw
|
||||
mcall 9, Proc_Info, -1 ; window redraw requested so get new window coordinates and size
|
||||
mov eax, [Proc_Info.box.left]; store the window coordinates into the Form Structure
|
||||
mov [Form + 2], ax ; x start position
|
||||
mov eax, [Proc_Info.box.top];
|
||||
mov [Form + 6], ax ; ystart position
|
||||
mov eax, [Proc_Info.box.width];
|
||||
mov [Form], ax ; window width
|
||||
mov eax, [Proc_Info.box.height];
|
||||
mov [Form + 4] ,ax ; window height
|
||||
call draw_window ; go redraw window now
|
||||
jmp still
|
||||
|
||||
key: ; key
|
||||
mcall 2 ; just read it and ignore
|
||||
jmp still
|
||||
button: ; button
|
||||
mcall 17 ; get id
|
||||
cmp ah, 1 ; button id = 1 ?
|
||||
jne still
|
||||
mcall -1 ; close this program
|
||||
|
||||
draw_window:
|
||||
mov byte [total], 0
|
||||
mcall 12, 1 ; start of draw
|
||||
; DRAW WINDOW
|
||||
mcall 0, dword [Form], dword [Form + 4], 0x13ffffff, 0x805080d0, title
|
||||
; Insert horizontal bars in list area
|
||||
mov eax, 13 ; draw bar system function
|
||||
mov ebx, 18 ; set Xstart position of bar
|
||||
shl ebx, 16 ;
|
||||
mov bx, word [Form] ; get width of window
|
||||
sub bx, 32 ; bar is 32 pixels shorter then window width
|
||||
mov ecx, 119 * 65536 + 10 ; set Ystart(109) and Height(10) of bar 109
|
||||
mov edx, 0xC0C0C0 ; set color of bar
|
||||
again: ;begin draw bar loop
|
||||
mcall ; draw bar to window area
|
||||
shr ecx, 16 ; move the Ystart position to working area
|
||||
add ecx, 34 ; add 34 pixels to Y Start (moves bar down)
|
||||
cmp cx, word [Form + 4] ; is the Ystart position outside of window area
|
||||
jae nomo ; if so stop drawing bars
|
||||
sub ecx, 14 ; if not, we only need 20 pixels between bar tops
|
||||
shl ecx, 16 ; set that values as Ystart
|
||||
add ecx, 10 ; Bar Height is always 10 pixels
|
||||
jmp again ; draw another bar
|
||||
nomo: ;done drawing bars here
|
||||
; start PCI stuff
|
||||
call Get_PCI_Info ; get pci version and last bus, scan for and draw each pci device
|
||||
|
||||
; Window inteface
|
||||
mov cx, [PCI_Version]
|
||||
add ch, '0'
|
||||
mov [PCIWin + 85], ch ; 0xBADCODE but it work !
|
||||
mov ch, cl
|
||||
shr cl, 4
|
||||
and ch, 0x0f
|
||||
add cx, '00'
|
||||
mov [PCIWin + 87], cx
|
||||
mov cl, [PCI_LastBus]
|
||||
add cl, '0'
|
||||
mov [PCIWin + 105], cl
|
||||
|
||||
mov edx, PCIWin
|
||||
mov ebx, 20 * 65536 + 25 ; x start, ystart of text
|
||||
mov ecx, 0x224466 ; color of text
|
||||
mov eax, 4
|
||||
@@: movzx esi, byte[edx]
|
||||
inc edx
|
||||
mcall
|
||||
add ebx, 10
|
||||
add edx, esi
|
||||
cmp byte[edx], -1
|
||||
jne @b
|
||||
; Quantity of devices...
|
||||
movzx ecx, byte [total] ; number to draw
|
||||
mcall 47, 0x00020000,,150 * 65536 + 65, 0x224466
|
||||
|
||||
mcall 12, 2 ; end of draw
|
||||
ret
|
||||
|
||||
;------------------------------------------------------------------
|
||||
;* Gets the PCI Version and Last Bus
|
||||
Get_PCI_Info:
|
||||
mov ebp, 1
|
||||
mcall 57
|
||||
mov word [PCI_Version], bx
|
||||
mov byte [PCI_LastBus], cl
|
||||
;----------------------------------------------------------
|
||||
;* Get all devices on PCI Bus
|
||||
cmp al, 0xff ; 0xFF means no pci bus found
|
||||
jne Pci_Exists ;
|
||||
ret ; if no bus then leave
|
||||
Pci_Exists:
|
||||
mov byte [V_Bus], 0 ; reset varibles
|
||||
mov byte [V_Dev], 0 ;
|
||||
mov edx, 20 * 65536 + 110 ; set start write position
|
||||
Start_Enum:
|
||||
mov ebp, 0x0a ; get a dword
|
||||
xor edi, edi ; offset to device/vendor id
|
||||
mov bh, byte [V_Bus] ; bus of pci device
|
||||
mov bl, byte [V_Dev] ; device number/function
|
||||
mcall 57 ; get ID's
|
||||
cmp cx, 0 ; Vendor ID should not be 0 or 0xFFFF
|
||||
je nextDev ; check next device if nothing exists here
|
||||
cmp cx, 0xffff ;
|
||||
je nextDev ;
|
||||
mov word [PCI_Vendor], cx ; There is a device here, save the ID's
|
||||
shr ecx, 16 ;
|
||||
mov word [PCI_Device], cx ;
|
||||
|
||||
|
||||
|
||||
mov ebp, 8 ; Read config byte
|
||||
mov bh, byte [V_Bus] ; Bus #
|
||||
mov bl, byte [V_Dev] ; Device # on bus
|
||||
mov edi, 0x08 ; Register to read (Get Revision)
|
||||
mcall 57 ; Read it
|
||||
mov byte [PCI_Rev], cl ; Save it
|
||||
|
||||
mov edi, 0x0b ; Register to read (Get class)
|
||||
mcall 57 ; Read it
|
||||
mov byte [PCI_Class], cl ; Save it
|
||||
|
||||
mov edi, 0x0a ; Register to read (Get Subclass)
|
||||
mcall 57 ; Read it
|
||||
mov byte [PCI_SubClass], cl; Save it
|
||||
; from Mario79 august 2006
|
||||
mov edi, 0x09 ; Register to read (Get Interface)
|
||||
mcall 57 ; Read it
|
||||
mov [PCI_Interface], cl ; Save it
|
||||
;
|
||||
; from Ghost april 2007
|
||||
mov edi, 0x3c ; Register to read (Get IRQ)
|
||||
mcall 57 ; Read it
|
||||
mov [PCI_IRQ], cl ; Save it
|
||||
;
|
||||
inc byte [total] ; one more device found
|
||||
call Print_New_Device ; print device info to screen
|
||||
nextDev:
|
||||
inc byte [V_Dev] ; next device on this bus
|
||||
jnz Start_Enum ; jump until we reach zero
|
||||
;(used to be JNO which caused bug!!! 30-4-2006, JMD)
|
||||
mov byte [V_Dev], 0 ; reset device number
|
||||
inc byte [V_Bus] ; next bus
|
||||
mov al, byte [PCI_LastBus] ; get last bus
|
||||
cmp byte [V_Bus], al ; was it last bus
|
||||
jbe Start_Enum ; if not jump to keep searching
|
||||
ret
|
||||
|
||||
;------------------------------------------------------------------
|
||||
;* Print device info to screen
|
||||
Print_New_Device:
|
||||
xor esi, esi ; Color of text
|
||||
movzx ecx,word [PCI_Vendor] ; Pointer to number to be written
|
||||
mcall 47, 0x00040100 ; Write Vendor ID
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 54 * 65536 ; X start becomes 54
|
||||
movzx ecx, word [PCI_Device] ; get Vendor ID
|
||||
mcall ; Draw Vendor ID to Window
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 98 * 65536 ; X start becomes 98
|
||||
movzx ecx, byte [V_Bus] ; get bus number
|
||||
mcall ,0x00020100 ; draw bus number to screen
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 128 * 65536 ; X start becomes 128
|
||||
movzx ecx, byte [V_Dev] ; get device number
|
||||
shr ecx, 3 ; device number is bits 3-7
|
||||
mcall ; Draw device Number To Window
|
||||
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 155 * 65536 ; X start becomes 155
|
||||
movzx ecx, byte [V_Dev] ; get Function number
|
||||
and ecx, 7 ; function is first 3 bits
|
||||
mcall ; Draw Function Number To Window
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 179 * 65536 ; X start becomes 179
|
||||
movzx ecx, byte [PCI_Rev] ; get revision number
|
||||
mcall ; Draw Revision to screen
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 215*65536 ; X start becomes 215
|
||||
movzx ecx, byte [PCI_Class] ; get PCI_Class
|
||||
mcall ; Draw Class to screen
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 250*65536 ; X start becomes 250
|
||||
movzx ecx, byte [PCI_SubClass]; get sub class
|
||||
mcall ; Draw Sub Class to screen
|
||||
; from Mario79 august 2006
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 280 * 65536 ; X start becomes 280
|
||||
movzx ecx, [PCI_Interface] ; get Interface
|
||||
mcall
|
||||
;
|
||||
; from Ghost april 2007 ;*****************************************
|
||||
movzx ecx, [PCI_IRQ] ; get Interface
|
||||
cmp cl, 0x0f ; IRQ between 0..15
|
||||
ja @f
|
||||
and edx, 0xFFFF
|
||||
or edx, 310 * 65536 ; X start becomes 310
|
||||
mcall
|
||||
@@:
|
||||
;
|
||||
;Write Names
|
||||
movzx ebx, dx ; Set y position
|
||||
or ebx, 340*65536 ; set Xposition to 340
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; Prints the Vendor's Name based on Vendor ID
|
||||
;
|
||||
; Modified on ??-04-2007 by Ghost for size
|
||||
;------------------------------------------------------------------
|
||||
mov edx, VendorsTab
|
||||
mov cx, word[PCI_Vendor]
|
||||
|
||||
.fn: mov ax, [edx]
|
||||
add edx, 6
|
||||
test ax, ax
|
||||
jz .find
|
||||
cmp ax, cx
|
||||
jne .fn
|
||||
.find: mov edx, [edx - 4]
|
||||
mcall 4,, 0x80000000 ; lets print the vendor Name
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; Get description based on Class/Subclass
|
||||
;
|
||||
; Modified on ??-04-2007 by Ghost for size
|
||||
;------------------------------------------------------------------
|
||||
mov eax, dword [PCI_Class]
|
||||
and eax, 0xffffff
|
||||
xor edx, edx
|
||||
xor esi, esi
|
||||
.fnc: inc esi
|
||||
mov ecx, [Classes + esi * 8 - 8]
|
||||
cmp cx, 0xffff
|
||||
je .endfc
|
||||
cmp cx, ax
|
||||
jne .fnc
|
||||
test ecx, 0xff000000
|
||||
jz @f
|
||||
mov edx, [Classes + esi * 8 - 4]
|
||||
jmp .fnc
|
||||
@@: cmp eax, ecx
|
||||
jne .fnc
|
||||
xor edx, edx
|
||||
.endfc: test edx, edx
|
||||
jnz @f
|
||||
mov edx, [Classes + esi * 8 - 4]
|
||||
@@:
|
||||
and ebx, 0x0000FFFF ; clear X position
|
||||
or ebx, 0x24E0000 ; set X position to 590 pixels
|
||||
mcall 4,, 0x80000000,, 32 ; draw the text
|
||||
movzx edx, bx ; get y coordinate
|
||||
add edx, 0x0014000A ; add 10 to y coordinate and set x coordinate to 20
|
||||
ret
|
||||
|
||||
include 'vendors.inc'
|
||||
;------------------------------------------------------------------
|
||||
; DATA AREA
|
||||
DATA
|
||||
|
||||
|
||||
Form: dw 800 ; window width (no more, special for 800x600)
|
||||
dw 100 ; window x start
|
||||
dw 420 ; window height
|
||||
dw 100 ; window y start
|
||||
|
||||
if lang eq it
|
||||
title db 'PCI Device Enumeration v 2.1n new PCI API test', 0
|
||||
PCIWin mls \
|
||||
'Ricordarsi di abilitare l accesso alla PCI per le applicazioni dal menu.',\
|
||||
'',\
|
||||
'Versione PCI = x.xx',\
|
||||
'Ultimo Bus PCI = x',\
|
||||
'Numerod di devices =',\
|
||||
'',\
|
||||
'VenID DevID Bus# Dev# Fnc Rev Class Subclass/ IRQ Compania Descrizione',\
|
||||
' Interface',\
|
||||
'----- ----- ---- ---- --- --- ----- --------- --- ------------------------------------------ ----------------'
|
||||
else
|
||||
title db 'PCI Device Enumeration v 2.1n new PCI API test', 0
|
||||
PCIWin mls \
|
||||
'Please remember to enable PCI Access to Applications in Setup Menu.',\
|
||||
'',\
|
||||
'PCI Version = x.xx',\
|
||||
'Last PCI Bus = x',\
|
||||
'Quantity of devices =',\
|
||||
'',\
|
||||
'VenID DevID Bus# Dev# Fnc Rev Class Subclass/ IRQ Company Description',\
|
||||
' Interface',\
|
||||
'----- ----- ---- ---- --- --- ----- --------- --- ------------------------------------------ ----------------'
|
||||
end if
|
||||
;------------------------------------------------------------------
|
||||
; UNINITIALIZED DATA AREA
|
||||
UDATA
|
||||
|
||||
total db ?
|
||||
V_Bus db ?
|
||||
V_Dev db ?
|
||||
PCI_Version dw ?
|
||||
PCI_LastBus db ?
|
||||
PCI_Device dw ?
|
||||
PCI_Vendor dw ?
|
||||
PCI_Bus db ?
|
||||
PCI_Dev db ?
|
||||
PCI_Rev db ?
|
||||
; don`t change order!!!
|
||||
PCI_Class db ?
|
||||
PCI_SubClass db ?
|
||||
PCI_Interface db ?
|
||||
PCI_IRQ db ?
|
||||
|
||||
Proc_Info process_information
|
||||
MEOS_APP_END
|
4
programs/testing/pcidev/branches/new_api/Tupfile.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||
HELPERDIR = (tup.getconfig("HELPERDIR") == "") and "../../../.." or tup.getconfig("HELPERDIR")
|
||||
tup.include(HELPERDIR .. "/use_fasm.lua")
|
||||
tup.rule("PCIDEV.ASM", FASM .. " -dlang=" .. tup.getconfig("LANG") .. " %f %o " .. tup.getconfig("KPACK_CMD"), "%B")
|
2
programs/testing/pcidev/branches/new_api/build.bat
Normal file
@@ -0,0 +1,2 @@
|
||||
@fasm pcidev.asm pcidev
|
||||
@pause
|
19
programs/testing/pcidev/branches/new_api/makefile
Normal file
@@ -0,0 +1,19 @@
|
||||
#!gmake
|
||||
|
||||
# Macro
|
||||
FASM=/opt/bin/fasm
|
||||
KPACK=/opt/bin/kpack
|
||||
LANG=lang.inc
|
||||
FILE=PCIDEV
|
||||
SOURCE=${FILE}.ASM
|
||||
OUT=${FILE}.bin
|
||||
|
||||
en:
|
||||
echo "lang fix en" > ${LANG}
|
||||
${FASM} ${SOURCE} ${OUT}
|
||||
it:
|
||||
echo "lang fix it" > ${LANG}
|
||||
${FASM} ${SOURCE} ${OUT}
|
||||
|
||||
clean:
|
||||
rm -f ${LANG} ${OUT}
|
1228
programs/testing/pcidev/branches/new_api/vendors.inc
Normal file
917
programs/testing/pcidev/trunk/PCIDEV.ASM
Normal file
@@ -0,0 +1,917 @@
|
||||
;***************************************************************
|
||||
; project name: PCI Device Enumeration
|
||||
; target platform: KolibriOS
|
||||
; compiler: flat assembler 1.68
|
||||
; version: 2.3
|
||||
; last update: Jule 2011
|
||||
; maintained by: Jason Delozier <cordata51@hotmail.com>
|
||||
; Sergey Kuzmin <kuzmin_serg@list.ru>
|
||||
; Mihailov Ilia <ghost.nsk@gmail.com>
|
||||
; Marat Zakiyanov <mario79@bk.ru>
|
||||
; Artem Jerdev <art_zh@yahoo.com>
|
||||
; Evgeny Grechnikov (diamond)
|
||||
; Veronica (CleverMouse)
|
||||
; old project site: http://www.coolthemes.narod.ru/pcidev.html
|
||||
; new project site: http://board.kolibrios.org/viewtopic.php?f=42&t=73
|
||||
;***************************************************************
|
||||
;Summary: This program will attempt to scan the PCI Bus
|
||||
; and display basic information about each device
|
||||
; connected to the PCI Bus.
|
||||
;***************************************************************
|
||||
use32
|
||||
org 0x0
|
||||
db 'MENUET01' ; 8 byte id
|
||||
dd 0x01 ; header version
|
||||
dd START ; start of code
|
||||
dd IM_END ; size of image
|
||||
dd I_END ; memory for app
|
||||
dd stacktop ; esp
|
||||
dd 0 ; I_Param
|
||||
dd path ; APPLICATION PATH
|
||||
;-----------------------------------------------------------------------------
|
||||
include 'lang.inc' ;language support
|
||||
include '../../../macros.inc'
|
||||
include '../../../develop/libraries/box_lib/load_lib.mac'
|
||||
;-----------------------------------------------------------------------------
|
||||
@use_library ; load_lib macro
|
||||
;-----------------------------------------------------------------------------
|
||||
START:
|
||||
mcall 68,11
|
||||
mcall 66,1,1
|
||||
;-----------------------------------------------------------------------------
|
||||
load_libraries l_libs_start,end_l_libs
|
||||
;-----------------------------------------------------------------------------
|
||||
;OpenDialog initialisation
|
||||
push dword OpenDialog_data
|
||||
call [OpenDialog_Init]
|
||||
|
||||
mov edi,filename_area
|
||||
mov esi,start_temp_file_name
|
||||
call copy_file_name_path
|
||||
;-----------------------------------------------------------------------------
|
||||
mcall 68,12,4096*4 ; 16 Kb - I hope this will be enough for store of data
|
||||
mov [store_text_area_start],eax
|
||||
;-----------------------------------------------------------------------------
|
||||
call draw_window
|
||||
still:
|
||||
mcall 10 ; wait here for event
|
||||
dec eax ; redraw request ?
|
||||
jz red
|
||||
dec eax ; key in buffer ?
|
||||
jz key
|
||||
dec eax ; button in buffer ?
|
||||
jz button
|
||||
jmp still
|
||||
;-----------------------------------------------------------------------------
|
||||
red: ; redraw
|
||||
call get_window_param
|
||||
mov eax, [Proc_Info.box.left]; store the window coordinates into the Form Structure
|
||||
mov [Form + 2], ax ; x start position
|
||||
mov eax, [Proc_Info.box.top];
|
||||
mov [Form + 6], ax ; ystart position
|
||||
mov eax, [Proc_Info.box.width] ;
|
||||
mov [Form], ax ; window width
|
||||
mov eax, [Proc_Info.box.height] ;
|
||||
mov [Form + 4] ,ax ; window height
|
||||
call draw_window ; go redraw window now
|
||||
jmp still
|
||||
;-----------------------------------------------------------------------------
|
||||
key: ; key
|
||||
mcall 2 ; just read it and ignore
|
||||
cmp [extended_key],1
|
||||
je .extended_key
|
||||
test al, al
|
||||
jnz still
|
||||
cmp ah, 0xE0
|
||||
jne @f
|
||||
mov [extended_key],1
|
||||
jmp still
|
||||
@@:
|
||||
cmp ah,129 ; Esc
|
||||
je button.exit
|
||||
cmp ah,159
|
||||
je call_OpenDialog
|
||||
jmp still
|
||||
.extended_key:
|
||||
mov [extended_key],0
|
||||
cmp ah,129 ; Esc
|
||||
je button.exit
|
||||
cmp ah,159
|
||||
je call_OpenDialog
|
||||
jmp still
|
||||
;-----------------------------------------------------------------------------
|
||||
button: ; button
|
||||
mcall 17 ; get id
|
||||
cmp ah,2
|
||||
je call_OpenDialog
|
||||
cmp ah, 1 ; button id = 1 ?
|
||||
jne still
|
||||
.exit:
|
||||
mcall -1 ; close this program
|
||||
;-----------------------------------------------------------------------------
|
||||
call_OpenDialog:
|
||||
mov [OpenDialog_data.type],1 ; Save
|
||||
|
||||
push dword OpenDialog_data
|
||||
call [OpenDialog_Start]
|
||||
|
||||
cmp [OpenDialog_data.status],2 ; OpenDialog does not start
|
||||
je .save_file_default_path
|
||||
|
||||
cmp [OpenDialog_data.status],1
|
||||
jne still
|
||||
|
||||
call store_data
|
||||
jmp still
|
||||
;----------------------------------------
|
||||
.save_file_default_path:
|
||||
mov edi,file_name
|
||||
mov esi,file_default_path
|
||||
call copy_file_name_path
|
||||
call store_data
|
||||
jmp still
|
||||
;----------------------------------------
|
||||
copy_file_name_path:
|
||||
xor eax,eax
|
||||
cld
|
||||
@@:
|
||||
lodsb
|
||||
stosb
|
||||
test eax,eax
|
||||
jnz @r
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
prepare_text_area:
|
||||
mov edi,[store_text_area_start]
|
||||
|
||||
push edi
|
||||
mov ecx,4096 ; 16 Kb - I hope this will be enough for store of data
|
||||
mov eax,dword ' '
|
||||
cld
|
||||
rep stosd
|
||||
pop edi
|
||||
|
||||
mov esi,PCIWin
|
||||
xor ecx,ecx
|
||||
@@:
|
||||
mov cl,[esi]
|
||||
inc esi
|
||||
rep movsb
|
||||
mov al,0Ah ; CR - carriage return
|
||||
stosb
|
||||
cmp [esi],byte 0xFF
|
||||
jne @r
|
||||
|
||||
mov [store_text_area_end],edi
|
||||
|
||||
xor edi,edi
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
get_window_param:
|
||||
mcall 9, Proc_Info, -1 ; window redraw requested so get
|
||||
; new window coordinates and size
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
draw_window:
|
||||
call prepare_text_area
|
||||
|
||||
mov byte [total], 0
|
||||
mcall 12, 1 ; start of draw
|
||||
; DRAW WINDOW
|
||||
mcall 0,dword [Form],dword [Form + 4],0x13ffffff,0x805080d0,title
|
||||
|
||||
call get_window_param
|
||||
|
||||
mov eax,[Proc_Info+70] ;status of window
|
||||
test eax,100b
|
||||
jne .end
|
||||
|
||||
mcall 8,<450,100>,<25,25>,2,0xC0C0C0
|
||||
shr ecx,16
|
||||
mov bx,cx
|
||||
add ebx,13 shl 16+4
|
||||
mcall 4,,0x80000000,text_save_button
|
||||
add bx,11
|
||||
mcall ,,,text_save_button.1
|
||||
; Insert horizontal bars in list area
|
||||
mov eax, 13 ; draw bar system function
|
||||
mov ebx, 18 ; set Xstart position of bar
|
||||
shl ebx, 16 ;
|
||||
mov bx, word [Form] ; get width of window
|
||||
sub bx, 32 ; bar is 32 pixels shorter then window width
|
||||
mov ecx, 119 * 65536 + 10 ; set Ystart(109) and Height(10) of bar 109
|
||||
mov edx, 0xC0C0C0 ; set color of bar
|
||||
.again: ;begin draw bar loop
|
||||
mcall ; draw bar to window area
|
||||
shr ecx, 16 ; move the Ystart position to working area
|
||||
add ecx, 34 ; add 34 pixels to Y Start (moves bar down)
|
||||
cmp cx, word [Form + 4] ; is the Ystart position outside of window area
|
||||
jae .nomo ; if so stop drawing bars
|
||||
sub ecx, 14 ; if not, we only need 20 pixels between bar tops
|
||||
shl ecx, 16 ; set that values as Ystart
|
||||
add ecx, 10 ; Bar Height is always 10 pixels
|
||||
jmp .again ; draw another bar
|
||||
;-----------------------------------------------------------------------------
|
||||
.nomo: ;done drawing bars here
|
||||
; start PCI stuff
|
||||
call Get_PCI_Info ; get pci version and last bus, scan for and draw each pci device
|
||||
|
||||
; Window inteface
|
||||
mov cx, [PCI_Version]
|
||||
add ch, '0'
|
||||
mov [PCIWin + 85], ch ; 0xBADCODE but it works !
|
||||
mov ch, cl
|
||||
shr cl, 4
|
||||
and ch, 0x0f
|
||||
add cx, '00'
|
||||
mov [PCIWin + 87], cx
|
||||
mov cl, [PCI_LastBus] ; will only work if [PCI_LastBus] < 10
|
||||
add cl, '0'
|
||||
mov [PCIWin + 106], cl
|
||||
|
||||
mov edx, PCIWin
|
||||
mov ebx, 20 * 65536 + 25 ; x start, ystart of text
|
||||
mov ecx, 0x224466 ; color of text
|
||||
mov eax, 4
|
||||
@@:
|
||||
movzx esi, byte[edx]
|
||||
inc edx
|
||||
mcall
|
||||
add ebx, 10
|
||||
add edx, esi
|
||||
cmp byte[edx], -1
|
||||
jne @b
|
||||
; Quantity of devices...
|
||||
movzx ecx, byte [total] ; number to draw
|
||||
mcall 47, 0x00020000,,150 * 65536 + 65, 0x224466
|
||||
|
||||
mov ebx,ecx
|
||||
mov ecx,2
|
||||
mov edi,[store_text_area_start]
|
||||
add edi,157
|
||||
push edi
|
||||
call binary_to_hex_string
|
||||
pop edi
|
||||
mov [edi+2],byte 'h'
|
||||
|
||||
mov ah, [MMIO_allowed]
|
||||
or ah, ah
|
||||
jz @f
|
||||
mov ah, [MMIO_Bus] ; =255 if MMIO disabled / not found
|
||||
and ah, 0x7f
|
||||
inc ah
|
||||
jo @f
|
||||
call Try_MMIO
|
||||
@@:
|
||||
.end:
|
||||
mcall 12, 2 ; end of draw
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
store_data:
|
||||
mov eax,[store_text_area_start]
|
||||
mov [fileinfo.return],eax
|
||||
mov ebx,[store_text_area_end]
|
||||
sub ebx,eax
|
||||
inc ebx
|
||||
mov [fileinfo.size],ebx
|
||||
mcall 70,fileinfo
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
;* Gets the PCI Version and Last Bus
|
||||
Get_PCI_Info:
|
||||
mcall 62, 0
|
||||
mov word [PCI_Version], ax
|
||||
mcall 62, 1
|
||||
mov byte [PCI_LastBus], al
|
||||
;----------------------------------------------------------
|
||||
;* Get all devices on PCI Bus
|
||||
cmp al, 0xff ; 0xFF means no pci bus found
|
||||
jne Pci_Exists ;
|
||||
ret ; if no bus then leave
|
||||
;-----------------------------------------------------------------------------
|
||||
Pci_Exists:
|
||||
mov byte [V_Bus], 0 ; reset varibles
|
||||
mov byte [V_Dev], 0 ;
|
||||
mov edx, 20 * 65536 + 110 ; set start write position
|
||||
Start_Enum:
|
||||
mov bl, 6 ; get a dword
|
||||
mov bh, byte [V_Bus] ; bus of pci device
|
||||
mov ch, byte [V_Dev] ; device number/function
|
||||
mov cl, 0 ; offset to device/vendor id
|
||||
mcall 62 ; get ID's
|
||||
|
||||
cmp ax, 0 ; Vendor ID should not be 0 or 0xFFFF
|
||||
je nextDev ; check next device if nothing exists here
|
||||
|
||||
cmp ax, 0xffff ;
|
||||
je nextDev ;
|
||||
|
||||
mov word [PCI_Vendor], ax ; There is a device here, save the ID's
|
||||
shr eax, 16 ;
|
||||
mov word [PCI_Device], ax ;
|
||||
mov bl, 4 ; Read config byte
|
||||
mov bh, byte [V_Bus] ; Bus #
|
||||
mov ch, byte [V_Dev] ; Device # on bus
|
||||
mov cl, 0x08 ; Register to read (Get Revision)
|
||||
mcall 62 ; Read it
|
||||
|
||||
mov byte [PCI_Rev], al ; Save it
|
||||
mov cl, 0x0b ; Register to read (Get class)
|
||||
mcall 62 ; Read it
|
||||
|
||||
mov byte [PCI_Class], al ; Save it
|
||||
mov cl, 0x0a ; Register to read (Get Subclass)
|
||||
mcall 62 ; Read it
|
||||
mov byte [PCI_SubClass], al; Save it
|
||||
; by Mario79 august 2006
|
||||
mov cl, 0x09 ; Register to read (Get Interface)
|
||||
mcall 62 ; Read it
|
||||
|
||||
mov [PCI_Interface], al ; Save it
|
||||
;
|
||||
; by Ghost april 2007
|
||||
mov cl, 0x3c ; Register to read (Get IRQ)
|
||||
@@:
|
||||
mcall 62 ; Read it
|
||||
|
||||
mov [PCI_IRQ], al ; Save it
|
||||
; by CleverMouse juny 2011
|
||||
mov cl, 0x0e
|
||||
mcall 62
|
||||
|
||||
push eax
|
||||
inc byte [total] ; one more device found
|
||||
call Print_New_Device ; print device info to screen
|
||||
; don't scan for nonzero functions if zero function says "not multifunction device"
|
||||
pop eax
|
||||
test al, al
|
||||
js nextDev
|
||||
|
||||
test byte [V_Dev], 7
|
||||
jnz nextDev
|
||||
|
||||
or byte [V_Dev], 7
|
||||
nextDev:
|
||||
inc byte [V_Dev] ; next device on this bus
|
||||
jnz Start_Enum ; jump until we reach zero
|
||||
;(used to be JNO which caused bug!!! 30-4-2006, JMD)
|
||||
mov byte [V_Dev], 0 ; reset device number
|
||||
inc byte [V_Bus] ; next bus
|
||||
mov al, byte [PCI_LastBus] ; get last bus
|
||||
cmp byte [V_Bus], al ; was it last bus
|
||||
jbe Start_Enum ; if not jump to keep searching
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
no_ummio_allowed:
|
||||
xor al,al
|
||||
mov [MMIO_allowed],al ; re-enter the subroutine
|
||||
;------------------------------------------------------------------
|
||||
;* Print device info to screen
|
||||
|
||||
Print_New_Device:
|
||||
xor esi, esi ; default text color
|
||||
mov cl, [MMIO_allowed]
|
||||
or cl,cl
|
||||
jz no_ummio_here
|
||||
mov ch, byte [V_Bus]
|
||||
mov cl, byte [V_Dev]
|
||||
mcall 62, 11 ; detect uMMIO
|
||||
|
||||
and ax,0x7fff
|
||||
inc ax ; -1 returned?
|
||||
jo no_ummio_allowed
|
||||
|
||||
inc ax ; -2 returned?
|
||||
jo no_ummio_here
|
||||
|
||||
inc ax ; -3 returned?
|
||||
jo no_ummio_here
|
||||
|
||||
mov esi, 0x990033 ; highlighted text color
|
||||
mov bh, byte [V_Bus]
|
||||
mov bl, byte [V_Dev]
|
||||
mov byte [MMIO_Bus], bh
|
||||
mov byte [MMIO_Dev], bl
|
||||
add bh,'0'
|
||||
mov [PCIWin + 129], bh ; uMMIO bus
|
||||
mov al, bl
|
||||
shr al, 1
|
||||
shr al, 1
|
||||
shr al, 1
|
||||
add al,'0'
|
||||
mov [PCIWin + 131], al ; uMMIO device
|
||||
and bl, 7
|
||||
add bl, '0'
|
||||
mov [PCIWin + 133], bl ; uMMIO function
|
||||
|
||||
no_ummio_here:
|
||||
movzx ecx,word [PCI_Vendor] ; Pointer to number to be written
|
||||
mcall 47, 0x00040100 ; Write Vendor ID
|
||||
|
||||
call store_4_digits
|
||||
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 54 * 65536 ; X start becomes 54
|
||||
movzx ecx, word [PCI_Device] ; get Vendor ID
|
||||
mcall ; Draw Vendor ID to Window
|
||||
|
||||
call store_4_digits
|
||||
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 98 * 65536 ; X start becomes 98
|
||||
movzx ecx, byte [V_Bus] ; get bus number
|
||||
mcall ,0x00020100 ; draw bus number to screen
|
||||
|
||||
call store_2_digits
|
||||
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 128 * 65536 ; X start becomes 128
|
||||
movzx ecx, byte [V_Dev] ; get device number
|
||||
shr ecx, 3 ; device number is bits 3-7
|
||||
mcall ; Draw device Number To Window
|
||||
|
||||
call store_2_digits
|
||||
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 155 * 65536 ; X start becomes 155
|
||||
movzx ecx, byte [V_Dev] ; get Function number
|
||||
and ecx, 7 ; function is first 3 bits
|
||||
mcall ; Draw Function Number To Window
|
||||
|
||||
call store_2_digits
|
||||
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 179 * 65536 ; X start becomes 179
|
||||
movzx ecx, byte [PCI_Rev] ; get revision number
|
||||
mcall ; Draw Revision to screen
|
||||
|
||||
call store_2_digits
|
||||
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 215*65536 ; X start becomes 215
|
||||
movzx ecx, byte [PCI_Class] ; get PCI_Class
|
||||
mcall ; Draw Class to screen
|
||||
|
||||
call store_2_digits
|
||||
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 250*65536 ; X start becomes 250
|
||||
movzx ecx, byte [PCI_SubClass]; get sub class
|
||||
mcall ; Draw Sub Class to screen
|
||||
|
||||
call store_2_digits
|
||||
|
||||
; from Mario79 august 2006
|
||||
and edx, 0xFFFF ;*****************************************
|
||||
or edx, 280 * 65536 ; X start becomes 280
|
||||
movzx ecx, [PCI_Interface] ; get Interface
|
||||
mcall
|
||||
|
||||
call store_2_digits
|
||||
|
||||
;
|
||||
; from Ghost april 2007 ;*****************************************
|
||||
and edx, 0xFFFF
|
||||
or edx, 310 * 65536 ; X start becomes 310
|
||||
movzx ecx, [PCI_IRQ] ; get Interface
|
||||
cmp cl, 63 ; IRQ between 0..63
|
||||
ja @f
|
||||
|
||||
mcall
|
||||
|
||||
call store_2_digits
|
||||
jmp .PCI_Vendor
|
||||
@@:
|
||||
call store_NA
|
||||
.PCI_Vendor:
|
||||
;Write Names
|
||||
movzx ebx, dx ; Set y position
|
||||
or ebx, 340 * 65536 ; set Xposition to 340
|
||||
|
||||
;------------------------------------------------------------------
|
||||
; Prints the Vendor's Name based on Vendor ID
|
||||
;
|
||||
; Modified on ??-04-2007 by Ghost for size
|
||||
;------------------------------------------------------------------
|
||||
mov edx, VendorsTab
|
||||
mov cx, word[PCI_Vendor]
|
||||
|
||||
.fn:
|
||||
mov ax, [edx]
|
||||
add edx, 6
|
||||
test ax, ax
|
||||
jz .find
|
||||
|
||||
cmp ax, cx
|
||||
jne .fn
|
||||
|
||||
.find:
|
||||
mov edx, [edx - 4]
|
||||
mcall 4,, 0x80000000 ; lets print the vendor Name
|
||||
|
||||
mov [store_text_size],42
|
||||
call store_text
|
||||
;------------------------------------------------------------------
|
||||
; Get description based on Class/Subclass
|
||||
;
|
||||
; Modified on ??-04-2007 by Ghost for size
|
||||
;------------------------------------------------------------------
|
||||
mov eax, dword [PCI_Class]
|
||||
and eax, 0xffffff
|
||||
xor edx, edx
|
||||
xor esi, esi
|
||||
.fnc:
|
||||
inc esi
|
||||
mov ecx, [Classes + esi * 8 - 8]
|
||||
cmp cx, 0xffff
|
||||
je .endfc
|
||||
|
||||
cmp cx, ax
|
||||
jne .fnc
|
||||
|
||||
test ecx, 0xff000000
|
||||
jz @f
|
||||
|
||||
mov edx, [Classes + esi * 8 - 4]
|
||||
jmp .fnc
|
||||
@@:
|
||||
cmp eax, ecx
|
||||
jne .fnc
|
||||
|
||||
xor edx, edx
|
||||
.endfc:
|
||||
test edx, edx
|
||||
jnz @f
|
||||
|
||||
mov edx, [Classes + esi * 8 - 4]
|
||||
@@:
|
||||
and ebx, 0x0000FFFF ; clear X position
|
||||
or ebx, 0x24E0000 ; set X position to 590 pixels
|
||||
mcall 4,, 0x80000000,, 32 ; draw the text
|
||||
|
||||
mov [store_text_size],0
|
||||
call store_text
|
||||
call store_CR
|
||||
|
||||
movzx edx, bx ; get y coordinate
|
||||
add edx, 0x0014000A ; add 10 to y coordinate and set x coordinate to 20
|
||||
mov [gr_pos], edx
|
||||
ret
|
||||
;------------------------------------------------------------------
|
||||
; Get the user-MMIO related info
|
||||
;
|
||||
; Added on ??-12-2009 by art_zh
|
||||
;------------------------------------------------------------------
|
||||
Try_MMIO:
|
||||
xor ebx, ebx
|
||||
mov edx, ebx
|
||||
mov bh, [MMIO_BAR]
|
||||
or bx, 12 ; function 12
|
||||
mov ecx, 4096 ; =1 page to map
|
||||
mcall 62
|
||||
|
||||
mov [MMIO_Map], eax ; store MMIO lin.addr.
|
||||
mov ecx, 0x80990022 ; print color : red
|
||||
add bh, '0'
|
||||
cmp eax, -3
|
||||
jne @f
|
||||
|
||||
mov [bar_um+3], bh
|
||||
mov ebx, [gr_pos]
|
||||
mov edx, bar_um
|
||||
mcall 4
|
||||
|
||||
jmp mmio_next_bar
|
||||
@@:
|
||||
cmp eax, -4
|
||||
jne @f
|
||||
mov [bar_io+3], bh
|
||||
mov ebx, [gr_pos]
|
||||
mov edx, bar_io
|
||||
mcall 4
|
||||
|
||||
jmp mmio_next_bar
|
||||
@@:
|
||||
cmp bh, '6' ; expansion ROM ?
|
||||
je @f
|
||||
mov [bar_ram+3], bh
|
||||
mov ebx, [gr_pos]
|
||||
mov edx, bar_ram
|
||||
mcall 4
|
||||
|
||||
jmp mmio_dump
|
||||
;-----------------------------------------------------------------------------
|
||||
@@:
|
||||
mov ebx, [gr_pos]
|
||||
mov edx, bar_rom
|
||||
mcall 4
|
||||
|
||||
mmio_dump:
|
||||
mov edx, [MMIO_Map]
|
||||
mov esi, 64
|
||||
mov ecx, 0x099 ; dump color : blue
|
||||
add ebx, 10
|
||||
mov [gr_pos], ebx
|
||||
mcall 4
|
||||
|
||||
mov ecx, [MMIO_Map] ; release the tried page
|
||||
mcall 62,13
|
||||
|
||||
mmio_next_bar:
|
||||
mov bh, [MMIO_BAR]
|
||||
inc bh
|
||||
cmp bh,7
|
||||
je @f
|
||||
|
||||
mov [MMIO_BAR], bh
|
||||
add [gr_pos], 10
|
||||
jmp Try_MMIO
|
||||
;-----------------------------------------------------------------------------
|
||||
@@:
|
||||
xor bh,bh
|
||||
mov [MMIO_BAR], bh
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
store_CR:
|
||||
pusha
|
||||
mov edi,[store_text_area_end]
|
||||
mov [edi],word 0A20h ; CR (carriage return) + SPACE
|
||||
add dword [store_text_area_end],2
|
||||
popa
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
store_text:
|
||||
pusha
|
||||
inc dword [store_text_area_end]
|
||||
mov esi,edx
|
||||
mov edi,[store_text_area_end]
|
||||
push edi
|
||||
xor eax,eax
|
||||
cld
|
||||
@@:
|
||||
lodsb
|
||||
test eax,eax
|
||||
jz @f
|
||||
stosb
|
||||
inc dword [store_text_area_end]
|
||||
jmp @r
|
||||
@@:
|
||||
pop esi
|
||||
mov eax,[store_text_size]
|
||||
test eax,eax
|
||||
jz @f
|
||||
sub edi,esi
|
||||
sub eax,edi
|
||||
add [store_text_area_end],eax
|
||||
@@:
|
||||
popa
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
store_NA:
|
||||
pusha
|
||||
mov ebx,edx
|
||||
mcall 4,,0x80000000,text_NA
|
||||
mov edi,[store_text_area_end]
|
||||
mov ax,[edx]
|
||||
mov [edi+1],ax
|
||||
add [store_text_area_end],dword 5
|
||||
popa
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
store_2_digits:
|
||||
pusha
|
||||
inc [store_text_area_end]
|
||||
mov ebx,ecx
|
||||
mov ecx,2
|
||||
mov edi,[store_text_area_end]
|
||||
call binary_to_hex_string
|
||||
add [store_text_area_end],dword 4
|
||||
popa
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
store_4_digits:
|
||||
pusha
|
||||
mov ebx,ecx
|
||||
mov ecx,4
|
||||
mov edi,[store_text_area_end]
|
||||
call binary_to_hex_string
|
||||
add [store_text_area_end],dword 6
|
||||
popa
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
; ebx - value
|
||||
; ecx - digits
|
||||
; edi - output string
|
||||
binary_to_hex_string:
|
||||
add edi,ecx
|
||||
dec edi
|
||||
std
|
||||
.1:
|
||||
mov al,bl
|
||||
and al,0xf
|
||||
shr ebx,4
|
||||
cmp al,9
|
||||
jbe @f
|
||||
|
||||
add al,0x27
|
||||
@@:
|
||||
add al,0x30
|
||||
stosb
|
||||
dec ecx
|
||||
jnz .1
|
||||
cld
|
||||
ret
|
||||
;-----------------------------------------------------------------------------
|
||||
include 'vendors.inc'
|
||||
;-----------------------------------------------------------------------------
|
||||
; DATA AREA
|
||||
DATA
|
||||
|
||||
Form: dw 800 ; window width (no more, special for 800x600)
|
||||
dw 100 ; window x start
|
||||
dw 620 ; window height
|
||||
dw 20 ; window y start
|
||||
|
||||
title db 'PCI Device Enumerator v 2.3', 0
|
||||
|
||||
if lang eq it
|
||||
PCIWin mls \
|
||||
' Don`t forget to enable PCI Access to Applications in Setup Menu.',\
|
||||
'',\
|
||||
'Versione PCI = x.xx; Ultimo Bus PCI = x',\
|
||||
'User MMIO channel = 0F.F:F ',\
|
||||
'Numbero di unità PCI = ',\
|
||||
'',\
|
||||
'VenID DevID Bus# Dev# Fnc Rev Class Subclass/ IRQ Compania Descrizzione',\
|
||||
' Interfaccia',\
|
||||
'----- ----- ---- ---- --- --- ----- --------- --- ------------------------------------------ --------------------------------'
|
||||
|
||||
bar_ram db 'BARx: MMIO block', 0
|
||||
bar_io db 'BARx: porte IO',0
|
||||
bar_um db 'BARx: unmapped',0
|
||||
bar_rom db 'BAR6: Expansion ROM', 0
|
||||
|
||||
text_save_button:
|
||||
db 'Salva lista PCI',0
|
||||
.1: db '(Premere S)',0
|
||||
else
|
||||
PCIWin mls \
|
||||
' Don`t forget to enable PCI Access to Applications in Setup Menu.',\
|
||||
'',\
|
||||
'PCI Version = x.xx; Last PCI Bus = x',\
|
||||
'User MMIO channel = 0F.F:F ',\
|
||||
'Number of PCI units = ',\
|
||||
'',\
|
||||
'VenID DevID Bus# Dev# Fnc Rev Class Subclass/ IRQ Company Description',\
|
||||
' Interface',\
|
||||
'----- ----- ---- ---- --- --- ----- --------- --- ------------------------------------------ --------------------------------'
|
||||
|
||||
bar_ram db 'BARx: MMIO block', 0
|
||||
bar_io db 'BARx: IO ports',0
|
||||
bar_um db 'BARx: unmapped',0
|
||||
bar_rom db 'BAR6: Expansion ROM', 0
|
||||
|
||||
text_save_button:
|
||||
db 'Save PCI list',0
|
||||
.1: db '(Press S key)',0
|
||||
end if
|
||||
|
||||
text_NA:
|
||||
db '--',0
|
||||
;---------------------------------------------------------------------
|
||||
system_dir_ProcLib db '/sys/lib/proc_lib.obj',0
|
||||
|
||||
err_message_found_lib2 db 'proc_lib.obj - Not found!',0
|
||||
|
||||
err_message_import2 db 'proc_lib.obj - Wrong import!',0
|
||||
|
||||
head_f_i:
|
||||
head_f_l db 'error',0
|
||||
;---------------------------------------------------------------------
|
||||
l_libs_start:
|
||||
|
||||
library02 l_libs system_dir_ProcLib+9, path, library_path, system_dir_ProcLib, \
|
||||
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
|
||||
|
||||
end_l_libs:
|
||||
;---------------------------------------------------------------------
|
||||
align 4
|
||||
ProcLib_import:
|
||||
OpenDialog_Init dd aOpenDialog_Init
|
||||
OpenDialog_Start dd aOpenDialog_Start
|
||||
;OpenDialog__Version dd aOpenDialog_Version
|
||||
dd 0
|
||||
dd 0
|
||||
aOpenDialog_Init db 'OpenDialog_init',0
|
||||
aOpenDialog_Start db 'OpenDialog_start',0
|
||||
;aOpenDialog_Version db 'Version_OpenDialog',0
|
||||
;---------------------------------------------------------------------
|
||||
align 4
|
||||
OpenDialog_data:
|
||||
.type dd 0
|
||||
.procinfo dd Proc_Info ;+4
|
||||
.com_area_name dd communication_area_name ;+8
|
||||
.com_area dd 0 ;+12
|
||||
.opendir_pach dd temp_dir_pach ;+16
|
||||
.dir_default_pach dd communication_area_default_pach ;+20
|
||||
.start_path dd open_dialog_path ;+24
|
||||
.draw_window dd draw_window ;+28
|
||||
.status dd 0 ;+32
|
||||
.openfile_pach dd file_name ;+36
|
||||
.filename_area dd filename_area ;+40
|
||||
.filter_area dd Filter
|
||||
.x:
|
||||
.x_size dw 420 ;+48 ; Window X size
|
||||
.x_start dw 10 ;+50 ; Window X position
|
||||
.y:
|
||||
.y_size dw 320 ;+52 ; Window y size
|
||||
.y_start dw 10 ;+54 ; Window Y position
|
||||
|
||||
communication_area_name:
|
||||
db 'FFFFFFFF_open_dialog',0
|
||||
open_dialog_path:
|
||||
db '/sys/File Managers/opendial',0
|
||||
communication_area_default_pach:
|
||||
db '/sys',0
|
||||
Filter:
|
||||
dd Filter.end - Filter.1
|
||||
.1:
|
||||
db 'TXT',0
|
||||
db 'LOG',0
|
||||
.end:
|
||||
dd 0
|
||||
|
||||
file_default_path:
|
||||
db '/sys/'
|
||||
start_temp_file_name:
|
||||
db 'pcidev.txt',0
|
||||
;---------------------------------------------------------------------
|
||||
align 4
|
||||
fileinfo:
|
||||
.subfunction dd 2
|
||||
.Offset dd 0
|
||||
.Offset_1 dd 0
|
||||
.size dd 4096
|
||||
.return dd 0
|
||||
db 0
|
||||
.name: dd file_name
|
||||
;-----------------------------------------------------------------------------
|
||||
|
||||
; UNINITIALIZED DATA AREA
|
||||
IM_END:
|
||||
total db ?
|
||||
V_Bus db ?
|
||||
V_Dev db ?
|
||||
PCI_Version dw ?
|
||||
PCI_LastBus db ?
|
||||
PCI_Device dw ?
|
||||
PCI_Vendor dw ?
|
||||
PCI_Bus db ?
|
||||
PCI_Dev db ?
|
||||
PCI_Rev db ?
|
||||
; don`t change order!!!
|
||||
PCI_Class db ?
|
||||
PCI_SubClass db ?
|
||||
PCI_Interface db ?
|
||||
PCI_IRQ db ?
|
||||
|
||||
align 4
|
||||
MMIO_Bus db 255
|
||||
MMIO_Dev db 255
|
||||
MMIO_BAR db 0
|
||||
MMIO_allowed db 1
|
||||
MMIO_Map rd 8
|
||||
|
||||
gr_pos dd ?
|
||||
|
||||
store_text_area_start dd ?
|
||||
store_text_area_end dd ?
|
||||
store_text_size dd ?
|
||||
|
||||
extended_key rb 1
|
||||
;---------------------------------------------------------------------
|
||||
library_path:
|
||||
rb 4096
|
||||
;---------------------------------------------------------------------
|
||||
path:
|
||||
rb 4096
|
||||
;---------------------------------------------------------------------
|
||||
temp_dir_pach:
|
||||
rb 4096
|
||||
;---------------------------------------------------------------------
|
||||
file_name:
|
||||
rb 4096
|
||||
;---------------------------------------------------------------------
|
||||
file_name_1:
|
||||
rb 4096
|
||||
;---------------------------------------------------------------------
|
||||
filename_area:
|
||||
rb 256
|
||||
;---------------------------------------------------------------------
|
||||
rb 4096
|
||||
stacktop:
|
||||
;---------------------------------------------------------------------
|
||||
Proc_Info process_information
|
||||
;---------------------------------------------------------------------
|
||||
I_END:
|
||||
;-----------------------------------------------------------------------------
|
3
programs/testing/pcidev/trunk/Tupfile.lua
Normal file
@@ -0,0 +1,3 @@
|
||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||
tup.rule("echo lang fix " .. ((tup.getconfig("LANG") == "") and "en" or tup.getconfig("LANG")) .. " > lang.inc", {"lang.inc"})
|
||||
tup.rule({"PCIDEV.ASM", extra_inputs = {"lang.inc"}}, "fasm %f %o " .. tup.getconfig("KPACK_CMD"), "PCIDEV")
|
6
programs/testing/pcidev/trunk/build_en.bat
Normal file
@@ -0,0 +1,6 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix en >lang.inc
|
||||
@fasm -m 16384 pcidev.asm pcidev
|
||||
@kpack pcidev
|
||||
@erase lang.inc
|
||||
@pause
|
235
programs/testing/pcidev/trunk/history.txt
Normal file
@@ -0,0 +1,235 @@
|
||||
HISTORY:
|
||||
keep dates in european format (dd/mm/yyyy), please
|
||||
'!' means big changes
|
||||
|
||||
to-do:
|
||||
more vendors
|
||||
vendor's website
|
||||
Subsystem id and Subsystem vendor id detection
|
||||
|
||||
Full device detection (like "ATI Radeon 9200") will increase app
|
||||
size a lot and probably it is function of particular drivers
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 02/09/2013
|
||||
Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
Features:
|
||||
added
|
||||
* added 1 new VendorID
|
||||
* corrected vendors.add
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 29/08/2013
|
||||
Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
Features:
|
||||
added
|
||||
* added 1 new VendorID
|
||||
* corrected vendors.add
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 27/08/2013
|
||||
Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
Features:
|
||||
added
|
||||
* added 4 new VendorID
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 25/08/2013
|
||||
Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
Features:
|
||||
added
|
||||
* added 5 new VendorID
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 27/06/2013
|
||||
Author: IgorA
|
||||
Features:
|
||||
added
|
||||
* added 2 new VendorID
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 09/06/2013
|
||||
Author: fedesco
|
||||
Features:
|
||||
added
|
||||
* italian version
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 24/09/2011
|
||||
Author: Serge
|
||||
Features:
|
||||
added
|
||||
* increase maximum irq level
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 18/08/2011
|
||||
Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
Features:
|
||||
fixed
|
||||
* Checking for "rolled up" window
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 02/07/2011
|
||||
Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
Features:
|
||||
fixed
|
||||
* Show the message "--" if the IRQ is not assigned
|
||||
* Show number of PCI units for saving device list
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.3: PCIDEV 26/06/2011
|
||||
Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
Features:
|
||||
added
|
||||
* Save PCI devices list to disk
|
||||
* Using OpenDialog for select of path
|
||||
|
||||
;------------------------------------
|
||||
Author: Veronica aka Clever Mouse
|
||||
Features:
|
||||
fixed
|
||||
* Don't scan for other functions on single-function devices
|
||||
* Some little bugs
|
||||
|
||||
;------------------------------------
|
||||
Author: Artem Jerdev aka art_zh <art_zh@yahoo.com>
|
||||
Features:
|
||||
fixed
|
||||
* pcidev post-enumeration bug fixed
|
||||
optimized
|
||||
* pci vendors database splitted to reduce PCIDEV code downto 10kB.
|
||||
|
||||
;------------------------------------
|
||||
Author: Yogev Ezra
|
||||
Features:
|
||||
added
|
||||
* HDA controller recognition and 17F3 RDC Semiconductor vendor
|
||||
|
||||
;------------------------------------
|
||||
Author: Evgeny Grechnikov aka Diamond
|
||||
Features:
|
||||
fixed
|
||||
* Some little bugs
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
2.2: PCIDEV 03/01/2010
|
||||
Author: Artem Jerdev <art_zh@yahoo.com>
|
||||
Features:
|
||||
fixed
|
||||
* English in some comments ;)
|
||||
added
|
||||
* ! user-accessible MMIO channels detection
|
||||
* ! ASCII-dump as PCI memory access demonstration
|
||||
optimization
|
||||
* (yet needed)
|
||||
----------------------------------------------------------------
|
||||
2.1: PCIDEV ??/04/2007
|
||||
Author: Mihailov Ilia aka Ghost <ghost.nsk@gmail.com>
|
||||
Features:
|
||||
fixed
|
||||
* Some little bugs
|
||||
* Source code formating
|
||||
* PCI version normalized 0210 -> 2.10
|
||||
added
|
||||
* + 13 vendor (total now 1000!)
|
||||
* + 3 class type
|
||||
* Fast call source ready
|
||||
* Device IRQ detection
|
||||
optimized
|
||||
* ! size optimized (61025 -> 32501 see added)
|
||||
* easy to add new vendor & class names
|
||||
----------------------------------------------------------------
|
||||
2.0: PCIDEV 30/08/2006
|
||||
(it differs a lot from the version 1.0, which was introduced 19 months ago)
|
||||
Author: Marat Zakiyanov aka Mario79 <mario79@bk.ru>
|
||||
Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
Features:
|
||||
added
|
||||
* Detection of Interface by Mario79
|
||||
* 122 vendor id's by Wildwest
|
||||
* Description is based on Class, SubClass and Interface now (PCI 3.0) by Wildwest
|
||||
----------------------------------------------------------------
|
||||
1.31: PCIDEV 13/05/2006
|
||||
Author: Jason Delozier <cordata51@hotmail.com>
|
||||
Features:
|
||||
fixed
|
||||
* ! bug in Company Name look up code that would cause Unknown Name errors.
|
||||
* ! possible bugs, many instructions missing byte, word, dword prefixes
|
||||
* ! possible bug which could have occured after removing "PREVIOUSVERSIONLIST"
|
||||
entry in loop up code and not fixing jump parameters.
|
||||
added
|
||||
* comments to various parts of the code
|
||||
optimized
|
||||
* various parts of the source, too many to remember and mention.
|
||||
* changed entries for Subclasses in vendors.inc to Byte format, saves a little space.
|
||||
----------------------------------------------------------------
|
||||
1.30: PCIDEV 11/05/2006
|
||||
Author: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
Features:
|
||||
added
|
||||
* 3 new vendor id's (ESS from Madis Kalme and 2 id's
|
||||
forgotten from 1.15 release: Broadcom -SiByte and Chaintech Comp.)
|
||||
changed
|
||||
* I don't know why other devs (Jason or Victor) changed window style
|
||||
to old ugly one, so I changed it back to skinned type 3.
|
||||
* the same goes to the use of macroc.inc - it is enabled again.
|
||||
deleted
|
||||
* there is no more label "PREVIOUSVERSIONLIST" - id's moved to the
|
||||
appropriate parts of global list.
|
||||
----------------------------------------------------------------
|
||||
1.29: PCIDEV 30/04/2006
|
||||
Author: Jason Delozier <cordata51@hotmail.com>
|
||||
Features:
|
||||
fixed
|
||||
* ! bug that would not allow devices with device
|
||||
numbers > 16 to be displayed.
|
||||
added
|
||||
* ! another heading called "FNC" (function) which allows
|
||||
the multipurpose Device/Function varible to be split and
|
||||
displayed to the user properly.
|
||||
* horizontal bars to display for easier reading.
|
||||
optimized
|
||||
* vendor/description search routines for speed and space.
|
||||
----------------------------------------------------------------
|
||||
1.25: PCIDEV 02/10/2005
|
||||
Author: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
Features:
|
||||
changed
|
||||
* ! Description is based on Class and SubClass
|
||||
now (PCI 3.0). The Names of Classes and SubClasses
|
||||
are in the end of Vendors.inc
|
||||
deleted
|
||||
* label "Descriptions" (names of Classes)
|
||||
|
||||
----------------------------------------------------------------
|
||||
1.20: PCIDEV 16/08/2005
|
||||
Author: Victor Alberto Gil Hanla a.k.a. vhanla <vhanla@gmail.com>
|
||||
Features:
|
||||
added
|
||||
* ! many vendor lists (865)
|
||||
deleted
|
||||
* previous version's list
|
||||
changed
|
||||
* previous Company Name searching and printing
|
||||
----------------------------------------------------------------
|
||||
1.15: PCIDEV 03/06/2005
|
||||
Author: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||
Features:
|
||||
added
|
||||
* quantity of devices,
|
||||
* ! detection of Company Name based on Vendor ID,
|
||||
* database of VenID (35 ID's),
|
||||
* macros.inc for smaller size,
|
||||
changed
|
||||
* interface+(skinned window),
|
||||
* VenID before DevID in 'table'(was DevID before VenID)
|
||||
----------------------------------------------------------------
|
||||
1.0: PCIDEV 30/01/2005
|
||||
Author: Jason Delozier
|
||||
Features:
|
||||
able to
|
||||
* detect PCI version,
|
||||
* quantity of PCI buses,
|
||||
* Vendor&Device ID for appropriate Device on Bus;
|
||||
* detect Revision, Class and Subclass of Device,
|
||||
* and make Description based on Class
|
||||
-------------------------------------------------------------
|
20
programs/testing/pcidev/trunk/makefile
Normal file
@@ -0,0 +1,20 @@
|
||||
#!gmake
|
||||
|
||||
# Macro
|
||||
FASM=/opt/bin/fasm
|
||||
KPACK=/opt/bin/kpack
|
||||
LANG=lang.inc
|
||||
FILE=PCIDEV
|
||||
SOURCE=${FILE}.ASM
|
||||
OUT=${FILE}.bin
|
||||
|
||||
en:
|
||||
echo "lang fix en" > ${LANG}
|
||||
${FASM} ${SOURCE} ${OUT}
|
||||
${KPACK} ${OUT}
|
||||
it:
|
||||
echo "lang fix it" > ${LANG}
|
||||
${FASM} ${SOURCE} ${OUT}
|
||||
|
||||
clean:
|
||||
rm -f ${LANG} ${OUT}
|
873
programs/testing/pcidev/trunk/vendors.add
Normal file
@@ -0,0 +1,873 @@
|
||||
; include this file to vendors.inc
|
||||
; to build the full vendors database
|
||||
|
||||
VendorID 0x1096, 'ALACRON'
|
||||
VendorID 0x1097, 'APPIAN Graphics/ETMA'
|
||||
VendorID 0x1098, 'Quantum Designs Ltd.'
|
||||
VendorID 0x109A, 'PACKARD BELL NEC'
|
||||
VendorID 0x109E, 'BROOKTREE CORPORATION'
|
||||
VendorID 0x109F, 'TRIGEM COMPUTER INC.'
|
||||
VendorID 0x10A0, 'MEIDENSHA CORPORATION'
|
||||
VendorID 0x10A2, 'QUANTUM EFFECT DESIGN'
|
||||
VendorID 0x10A4, 'Globe Manufacturing Sales'
|
||||
VendorID 0x10A8, 'Sierra Semiconductor'
|
||||
VendorID 0x1003, 'ULSI'
|
||||
VendorID 0x1004, 'VLSI TECHNOLOGY INC'
|
||||
VendorID 0x1005, 'ADL'
|
||||
VendorID 0x1001, 'KOLTER ELECTRONIC'
|
||||
VendorID 0x0100, 'NCIPHER CORP. LTD'
|
||||
VendorID 0x0675, 'DYNALINK'
|
||||
VendorID 0x0571, 'BERKOM'
|
||||
VendorID 0x0A89, 'BREA TECHNOLOGIES INC'
|
||||
VendorID 0x1017, 'Spea Software AG'
|
||||
VendorID 0x1018, 'UNISYS CORPORATION'
|
||||
VendorID 0x1019, 'ELITEGROUP COMPUTER SYS'
|
||||
VendorID 0x102C, 'Asiliant (Chips And Technologies)'
|
||||
VendorID 0x102D, 'Wyse Technologies'
|
||||
VendorID 0x1031, 'miro Computer Products AG'
|
||||
VendorID 0x1036, 'Future Domain'
|
||||
VendorID 0x1038, 'AMP'
|
||||
VendorID 0x1044, 'DISTRIBUTED PROCESSING TECHNOLOGY'
|
||||
VendorID 0x1045, 'OPTI INC.'
|
||||
VendorID 0x1048, 'ELSA AG'
|
||||
VendorID 0x1049, 'FOUNTAIN TECHNOLOGIES'
|
||||
VendorID 0x104F, 'Co-Time Computer Ltd.'
|
||||
VendorID 0x1050, 'WINBOND ELECTRONICS CORP'
|
||||
VendorID 0x1051, 'Anigma Corp.'
|
||||
VendorID 0x1058, 'ETRI'
|
||||
VendorID 0x1059, 'TEKNOR INDUSTRIAL COMPUTERS INC'
|
||||
VendorID 0x105A, 'PROMISE TECHNOLOGY'
|
||||
VendorID 0x105B, 'FOXCONN INTERNATIONAL INC'
|
||||
VendorID 0x105D, 'NUMBER 9 VISUAL TECHNOLOGY'
|
||||
VendorID 0x105F, 'INFOTRONIC AMERICA INC'
|
||||
VendorID 0x1060, 'United Microelectronics'
|
||||
VendorID 0x1061, '8x8 Inc.'
|
||||
VendorID 0x1063, 'OCEAN MANUFACTURING LTD'
|
||||
VendorID 0x1064, 'ALCATEL'
|
||||
VendorID 0x1065, 'Texas Microsystems'
|
||||
VendorID 0x1066, 'Picopower Technology'
|
||||
VendorID 0x1068, 'DIVERSIFIED TECHNOLOGY'
|
||||
VendorID 0x1069, 'MYLEX CORPORATION'
|
||||
VendorID 0x1081, 'Radius Inc.'
|
||||
VendorID 0x1083, 'Forex Computer Corporation'
|
||||
VendorID 0x1085, 'Tulip Computers International BV'
|
||||
VendorID 0x1087, 'Cache Computer'
|
||||
VendorID 0x108A, 'SBS Operations'
|
||||
VendorID 0x108D, 'OLICOM'
|
||||
VendorID 0x11AE, 'SCITEX CORPORATION'
|
||||
VendorID 0x11AF, 'AVID TECHNOLOGY INC'
|
||||
VendorID 0x11B0, 'V3 SEMICONDUCTOR INC./Quicklogic Corp'
|
||||
VendorID 0x11B3, 'BARR SYSTEMS INC.'
|
||||
VendorID 0x118B, 'PLATYPUS TECHNOLOGY PTY LTD'
|
||||
VendorID 0x118C, 'Corollary Inc'
|
||||
VendorID 0x118D, 'BitFlow Inc'
|
||||
VendorID 0x118E, 'Hermstedt AG'
|
||||
VendorID 0x1190, 'Tripace'
|
||||
VendorID 0x1191, 'ACARD TECHNOLOGY'
|
||||
VendorID 0x1193, 'ZeitNet'
|
||||
VendorID 0x1195, 'RATOC SYSTEMS INC'
|
||||
VendorID 0x1197, 'Gage Applied Technologies'
|
||||
VendorID 0x1199, 'Attachmate Corp.'
|
||||
VendorID 0x119A, 'MINDSHARE.'
|
||||
VendorID 0x119B, 'Omega Micro Inc.'
|
||||
VendorID 0x119D, 'BUG.'
|
||||
VendorID 0x119F, 'BULL HN INFORMATION SYSTEMS'
|
||||
VendorID 0x11A8, 'Systech Corp.'
|
||||
VendorID 0x11A9, 'InnoSys Inc.'
|
||||
VendorID 0x11B5, 'Radstone Technology Ltd.'
|
||||
VendorID 0x11B8, 'Xpoint Technologies Inc'
|
||||
VendorID 0x11B9, 'Pathlight Technology Inc.'
|
||||
VendorID 0x10D1, 'FUTUREPLUS SYSTEMS CORP.'
|
||||
VendorID 0x10D2, 'MOLEX INCORPORATED'
|
||||
VendorID 0x10D9, 'Macronix International Co. Ltd.'
|
||||
VendorID 0x10DB, 'ROHM LSI SYSTEMS'
|
||||
VendorID 0x10DC, 'CERN-European Lab. for Particle Physics'
|
||||
VendorID 0x10DD, 'EVANS & SUTHERLAND'
|
||||
VendorID 0x10DF, 'EMULEX CORPORATION'
|
||||
VendorID 0x10E1, 'TEKRAM TECHNOLOGY CO.LTD.'
|
||||
VendorID 0x10E3, 'TUNDRA SEMICONDUCTOR CORP'
|
||||
VendorID 0x10E5, 'MICRO INDUSTRIES CORPORATION'
|
||||
VendorID 0x10E8, 'Applied Micro Circuits Corp.'
|
||||
VendorID 0x10EA, 'Tvia, Inc.'
|
||||
VendorID 0x10EB, 'Artist Graphics'
|
||||
VendorID 0x10ED, 'Ascii Corporation'
|
||||
VendorID 0x10EF, 'Racore Computer Products'
|
||||
VendorID 0x10F0, 'Curtiss-Wright Controls Embedded Computing'
|
||||
VendorID 0x10F1, 'TYAN COMPUTER'
|
||||
VendorID 0x10F4, 'S-Mos Systems'
|
||||
VendorID 0x10F5, 'NKK CORPORATION'
|
||||
VendorID 0x10F6, 'Creative Electronic Systems SA'
|
||||
VendorID 0x10FA, 'Truevision'
|
||||
VendorID 0x10FB, 'Thesys Microelectronics'
|
||||
VendorID 0x10FC, 'I-O DATA DEVICE'
|
||||
VendorID 0x10FE, 'FAST MULTIMEDIA AG'
|
||||
VendorID 0x1101, 'INITIO CORPORATION'
|
||||
VendorID 0x1107, 'ASCEND COMMUNICATIONS/Stratus Computer'
|
||||
VendorID 0x1108, 'Proteon Inc.'
|
||||
VendorID 0x1109, 'Adaptec/Cogent Data Technologies Inc'
|
||||
VendorID 0x110A, 'SIEMENS PC SYSTEME GMBH'
|
||||
VendorID 0x110B, 'Chromatic Research Inc'
|
||||
VendorID 0x1111, 'SANTA CRUZ OPERATION'
|
||||
VendorID 0x1112, 'Osicom Technologies Inc.'
|
||||
VendorID 0x1113, 'ACCTON TECHNOLOGY'
|
||||
VendorID 0x1116, 'Media 100, Inc.'
|
||||
VendorID 0x1117, 'Datacube Inc.'
|
||||
VendorID 0x1118, 'FCI ELECTRONICS'
|
||||
VendorID 0x1119, 'ICP-VORTEX COMPUTERSYSTEM GMBH'
|
||||
VendorID 0x111A, 'EFFICIENT NETWORKS'
|
||||
VendorID 0x111C, 'Tricord Systems Inc.'
|
||||
VendorID 0x111D, 'INTEGRATED DEVICE TECH'
|
||||
VendorID 0x111F, 'Precision Digital Images'
|
||||
VendorID 0x1120, 'EMC CORPORATION'
|
||||
VendorID 0x1127, 'FORE SYSTEMS INC'
|
||||
VendorID 0x112A, 'HERMES ELECTRONICS COMPANY'
|
||||
VendorID 0x112E, 'Infomedia'
|
||||
VendorID 0x112F, 'IMAGING TECHNOLOGY'
|
||||
VendorID 0x1136, 'MOMENTUM DATA SYSTEMS'
|
||||
VendorID 0x1138, 'ZIATECH CORPORATION'
|
||||
VendorID 0x113C, 'CYCLONE MICROSYSTEMS.'
|
||||
VendorID 0x113E, 'SANYO ELECTRIC CO-Information Systems Division'
|
||||
VendorID 0x113F, 'Equinox Systems'
|
||||
VendorID 0x1141, 'CREST MICROSYSTEM INC.'
|
||||
VendorID 0x1142, 'Alliance Semiconductor CA - USA'
|
||||
VendorID 0x1144, 'Cincinnati Milacron'
|
||||
VendorID 0x1145, 'WORKBIT CORPORATION'
|
||||
VendorID 0x1146, 'FORCE COMPUTERS GMBH'
|
||||
VendorID 0x1147, 'Interface Corp'
|
||||
VendorID 0x1148, 'SYSKONNECT/Marvell'
|
||||
VendorID 0x114A, 'VMIC'
|
||||
VendorID 0x114C, 'ANNABOOKS'
|
||||
VendorID 0x114F, 'DIGI INTERNATIONAL'
|
||||
VendorID 0x1154, 'MELCO INC'
|
||||
VendorID 0x1155, 'Pine Technology Ltd'
|
||||
VendorID 0x1158, 'Voarx R&D Inc'
|
||||
VendorID 0x1159, 'Mutech'
|
||||
VendorID 0x115C, 'PHOTRON LTD.'
|
||||
VendorID 0x115D, 'XIRCOM'
|
||||
VendorID 0x1161, 'PFU LIMITED'
|
||||
VendorID 0x1163, 'RENDITION'
|
||||
VendorID 0x1165, 'Imagraph Corporation'
|
||||
VendorID 0x1166, 'Reliance Computer Corp./ServerWorks'
|
||||
VendorID 0x1169, 'Centre f/Dev. of Adv. Computing'
|
||||
VendorID 0x116A, 'Polaris Communications'
|
||||
VendorID 0x116E, 'ELECTRONICS FOR IMAGING'
|
||||
VendorID 0x1170, 'INVENTEC CORPORATION'
|
||||
VendorID 0x1171, 'BLUE WAVE SYSTEMS'
|
||||
VendorID 0x1172, 'ALTERA CORPORATION'
|
||||
VendorID 0x1176, 'SBE'
|
||||
VendorID 0x1178, 'Alfa Inc'
|
||||
VendorID 0x117B, 'GCE-8320B'
|
||||
VendorID 0x117E, 'T/R Systems'
|
||||
VendorID 0x1180, 'RICOH CO LTD'
|
||||
VendorID 0x1185, 'Dataworld'
|
||||
VendorID 0x1186, 'D-LINK SYSTEM INC'
|
||||
VendorID 0x1187, 'ADVANCED TECHNOLOGY LABORATORIES'
|
||||
VendorID 0x11BC, 'Network Peripherals Inc'
|
||||
VendorID 0x11BD, 'Pinnacle Systems Inc.'
|
||||
VendorID 0x11BF, 'ASTRODESIGN'
|
||||
VendorID 0x11C6, 'DAINIPPON SCREEN MFG. CO. LTD'
|
||||
VendorID 0x11C8, 'DOLPHIN INTERCONNECT SOLUTIONS AS'
|
||||
VendorID 0x11C9, 'MAGMA'
|
||||
VendorID 0x11CB, 'SPECIALIX INTERNATIONAL LTD'
|
||||
VendorID 0x11CE, 'NETACCESS/Primary Rate Inc'
|
||||
VendorID 0x11D1, 'AuraVision Corporation'
|
||||
VendorID 0x11D2, 'INTERCOM INC.'
|
||||
VendorID 0x11D5, 'IKON CORPORATION/Tahoma Technology'
|
||||
VendorID 0x11DE, 'Zoran Corporation'
|
||||
VendorID 0x11DF, 'NEW WAVE PDG'
|
||||
VendorID 0x11E3, 'QUICKLOGIC CORPORATION'
|
||||
VendorID 0x11EC, 'CORECO INC'
|
||||
VendorID 0x11EE, 'DOME IMAGING SYSTEMS INC'
|
||||
VendorID 0x11F0, 'Compu-Shack GmbH'
|
||||
VendorID 0x11F4, 'Kinetic Systems Corporation'
|
||||
VendorID 0x11F6, 'Powermatic Data Systems Ltd'
|
||||
VendorID 0x11F8, 'PMC-SIERRA INC'
|
||||
VendorID 0x11FE, 'Comtrol Corp'
|
||||
VendorID 0x1202, 'Network General Corp'
|
||||
VendorID 0x1203, 'AGFA CORPORATION'
|
||||
VendorID 0x1206, 'AMDAHL CORPORATION'
|
||||
VendorID 0x1208, 'Parsytec GmbH'
|
||||
VendorID 0x1209, 'Sci Systems Inc'
|
||||
VendorID 0x120E, 'Cyclades Corporation'
|
||||
VendorID 0x120F, 'ESSENTIAL COMMUNICATIONS'
|
||||
VendorID 0x1214, 'PERFORMANCE TECHNOLOGIES.'
|
||||
VendorID 0x1216, 'PURUP-EskoFot A/S'
|
||||
VendorID 0x121A, '3DFX INTERACTIVE'
|
||||
VendorID 0x121B, 'VIRATA LTD'
|
||||
VendorID 0x1220, 'Ariel Corporation'
|
||||
VendorID 0x1221, 'CONTEC CO. LTD'
|
||||
VendorID 0x1223, 'ARTESYN COMMUNICATIONS PRODUCTS INC'
|
||||
VendorID 0x1224, 'Interactive Images'
|
||||
VendorID 0x1227, 'TECH-SOURCE'
|
||||
VendorID 0x122C, 'SICAN GMBH'
|
||||
VendorID 0x1232, 'MARCONI COMMUNICATIONS LTD'
|
||||
VendorID 0x1236, 'Sigma Designs, Inc'
|
||||
VendorID 0x124C, 'Solitron Technologies Inc.'
|
||||
VendorID 0x124D, 'Stallion Technologies'
|
||||
VendorID 0x124F, 'Infortrend Technology Inc'
|
||||
VendorID 0x1256, 'Perceptive Solutions Inc.'
|
||||
VendorID 0x1258, 'Gilbarco Inc.'
|
||||
VendorID 0x125B, 'Asix Electronics Corp.'
|
||||
VendorID 0x1266, 'Microdyne Corp.'
|
||||
VendorID 0x1267, 'S.A. Telecommunications'
|
||||
VendorID 0x1361, 'SOLITON SYSTEMS K.K.'
|
||||
VendorID 0x123C, 'CENTURY SYSTEMS.'
|
||||
VendorID 0x123D, 'Engineering Design Team Inc.'
|
||||
VendorID 0x123F, 'C-CUBE MICROSYSTEMS'
|
||||
VendorID 0x1242, 'JAYCOR NETWORKS INC./JNI Corporation'
|
||||
VendorID 0x1244, 'AVM AUDIOVISUELLES MKTG & COMPUTER SYSTEM GMBH'
|
||||
VendorID 0x124B, 'SBS TECHNOLOGIES'
|
||||
VendorID 0x1253, 'GUZIK TECHNICAL ENTERPRISES'
|
||||
VendorID 0x1255, 'OPTIBASE LTD'
|
||||
VendorID 0x1259, 'ALLIED TELESYN INTERNATIONAL'
|
||||
VendorID 0x125C, 'AURORA TECHNOLOGIES.'
|
||||
VendorID 0x125D, 'ESS TECHNOLOGY, INC.'
|
||||
VendorID 0x125F, 'CONCURRENT TECHNOLOGIES'
|
||||
VendorID 0x1264, 'AVAL NAGASAKI CORPORATION'
|
||||
VendorID 0x1268, 'TEKTRONIX'
|
||||
VendorID 0x126C, 'Nortel Networks Corp.'
|
||||
VendorID 0x126D, 'SPLASH TECHNOLOGY.'
|
||||
VendorID 0x126E, 'SUMITOMO METAL INDUSTRIES'
|
||||
VendorID 0x126F, 'SILICON MOTION.'
|
||||
VendorID 0x1270, 'OLYMPUS OPTICAL CO. LTD.'
|
||||
VendorID 0x1275, 'NETWORK APPLIANCE CORPORATION'
|
||||
VendorID 0x1278, 'Transtech Parallel Systems'
|
||||
VendorID 0x1279, 'TRANSMETA CORPORATION'
|
||||
VendorID 0x127A, 'CONEXANT, ROCKWELL'
|
||||
VendorID 0x127D, 'VELA RESEARCH LP'
|
||||
VendorID 0x127F, 'FUJIFILM'
|
||||
VendorID 0x1281, 'YOKOGAWA ELECTRIC CORPORATION'
|
||||
VendorID 0x1283, 'Integrated Technology Express Inc.'
|
||||
VendorID 0x1286, 'MAZET GMBH'
|
||||
VendorID 0x128B, 'TRANSWITCH CORPORATION'
|
||||
VendorID 0x128D, 'G2 Networks Inc.'
|
||||
VendorID 0x128F, 'TATENO DENNOU.'
|
||||
VendorID 0x1290, 'TOSHIBA PERSONAL COMPUTER SYSTEM CORP.'
|
||||
VendorID 0x1291, 'NCS COMPUTER ITALIA SRL'
|
||||
VendorID 0x1292, 'TRITECH MICROELECTRONICS INC'
|
||||
VendorID 0x1297, 'SHUTTLE COMPUTER'
|
||||
VendorID 0x1299, 'KNOWLEDGE TECHNOLOGY LAB.'
|
||||
VendorID 0x129A, 'VMETRO Inc.'
|
||||
VendorID 0x129E, 'VICTOR COMPANY OF JAPAN'
|
||||
VendorID 0x12A0, 'ALLEN- BRADLEY COMPANY'
|
||||
VendorID 0x12A3, 'Lucent Technologies AMR'
|
||||
VendorID 0x12A7, 'AMO GMBH'
|
||||
VendorID 0x12A9, 'XIOTECH CORPORATION'
|
||||
VendorID 0x12AB, 'YUAN YUAN ENTERPRISE CO. LTD.'
|
||||
VendorID 0x12AE, 'Alteon Networks Inc.'
|
||||
VendorID 0x12B6, 'NATURAL MICROSYSTEMS'
|
||||
VendorID 0x12B7, 'COGNEX MODULAR VISION SYSTEMS DIV.-ACUMEN INC.'
|
||||
VendorID 0x12B9, '3Com Corp, Modem Division'
|
||||
VendorID 0x12BC, 'ARRAY MICROSYSTEMS'
|
||||
VendorID 0x12BE, 'ANCHOR CHIPS INC.'
|
||||
VendorID 0x12C0, 'INFIMED'
|
||||
VendorID 0x12C3, 'Holtek Microelectronics Inc.'
|
||||
VendorID 0x12C4, 'Connect Tech Inc'
|
||||
VendorID 0x12C6, 'Mitan Corporation'
|
||||
VendorID 0x12C7, 'Dialogic Corp'
|
||||
VendorID 0x12CA, 'Integrated Computing Engines'
|
||||
VendorID 0x12CD, 'Aims Lab'
|
||||
VendorID 0x12D3, 'GE VINGMED ULTRASOUND AS'
|
||||
VendorID 0x12D4, 'COMVERSE NETWORKS SYSTEM & Ulticom, Inc.'
|
||||
VendorID 0x12D5, 'Equator Technologies'
|
||||
VendorID 0x12D6, 'Analogic Corp'
|
||||
VendorID 0x12D8, 'PERICOM SEMICONDUCTOR'
|
||||
VendorID 0x12D9, 'Aculab PLC'
|
||||
VendorID 0x12DA, 'True Time Inc.'
|
||||
VendorID 0x12DE, 'Rainbow Technologies'
|
||||
VendorID 0x12DF, 'SBS Technologies Inc'
|
||||
VendorID 0x12E0, 'Chase Research PLC'
|
||||
VendorID 0x12E2, 'Datum Inc. Bancomm-Timing Division'
|
||||
VendorID 0x12E4, 'Brooktrout Technology Inc'
|
||||
VendorID 0x12E7, 'Sebring Systems'
|
||||
VendorID 0x12EA, 'Real Vision'
|
||||
VendorID 0x12EB, 'Aureal Semiconductor'
|
||||
VendorID 0x12EC, '3A'
|
||||
VendorID 0x12F0, 'PENTEK'
|
||||
VendorID 0x12F7, 'COGNEX INC.'
|
||||
VendorID 0x12FB, 'Spectrum Signal Processing'
|
||||
VendorID 0x12FC, 'CAPITAL EQUIPMENT CORP'
|
||||
VendorID 0x12FE, 'ESD Electronic System Design GmbH'
|
||||
VendorID 0x1304, 'Juniper Networks Inc.'
|
||||
VendorID 0x1307, 'Computer Boards'
|
||||
VendorID 0x1308, 'LEVEL ONE COMMUNICATIONS/Jato Technologies Inc.'
|
||||
VendorID 0x130A, 'Mitsubishi Electric MicroComputer'
|
||||
VendorID 0x130B, 'Colorgraphic Communications Corp'
|
||||
VendorID 0x130F, 'Advanet Inc'
|
||||
VendorID 0x1310, 'GESPAC'
|
||||
VendorID 0x1313, 'YASKAWA ELECTRIC CO.'
|
||||
VendorID 0x1316, 'TERADYNE INC.'
|
||||
VendorID 0x1317, 'ADMTEK INC'
|
||||
VendorID 0x1318, 'Packet Engines Inc.'
|
||||
VendorID 0x1319, 'ForteMedia'
|
||||
VendorID 0x131F, 'SIIG Inc'
|
||||
VendorID 0x1325, 'SALIX TECHNOLOGIES INC'
|
||||
VendorID 0x1326, 'SeaChange International'
|
||||
VendorID 0x1331, 'RadiSys Corp.'
|
||||
VendorID 0x133D, 'PRISA NETWORKS'
|
||||
VendorID 0x133F, 'SCM MICROSYSTEMS'
|
||||
VendorID 0x1342, 'PROMAX SYSTEMS INC'
|
||||
VendorID 0x1344, 'MICRON TECHNOLOGY INC'
|
||||
VendorID 0x134A, 'Domex'
|
||||
VendorID 0x134B, 'ARK RESEARCH CORP.'
|
||||
VendorID 0x134C, 'CHORI JOHO SYSTEM CO. LTD'
|
||||
VendorID 0x134D, 'PC-TEL INC'
|
||||
VendorID 0x135A, 'BRAIN BOXES LIMITED'
|
||||
VendorID 0x135C, 'QUATECH INC'
|
||||
VendorID 0x135E, 'SEALEVEL SYSTEMS INC'
|
||||
VendorID 0x135F, 'I-DATA INTERNATIONAL A-S'
|
||||
VendorID 0x1360, 'MEINBERG FUNKUHREN'
|
||||
VendorID 0x1363, 'PHOENIX TECHNOLOGIES LTD'
|
||||
VendorID 0x1365, 'HYPERCOPE'
|
||||
VendorID 0x1367, 'HITACHI ZOSEN CORPORATION'
|
||||
VendorID 0x1368, 'SKYWARE CORPORATION'
|
||||
VendorID 0x1369, 'DIGIGRAM'
|
||||
VendorID 0x136B, 'KAWASAKI STEEL CORPORATION'
|
||||
VendorID 0x136C, 'ADTEK SYSTEM SCIENCE CO LTD'
|
||||
VendorID 0x1375, 'BOEING-SUNNYVALE'
|
||||
VendorID 0x1376, 'LAN Media Corporation'
|
||||
VendorID 0x1377, 'ELECTRONIC EQUIPMENT PRODUCTION & DISTRIBUTION'
|
||||
VendorID 0x137A, 'MARK OF THE UNICORN INC'
|
||||
VendorID 0x137B, 'PPT VISION'
|
||||
VendorID 0x137C, 'IWATSU ELECTRIC CO LTD'
|
||||
VendorID 0x137D, 'DYNACHIP CORPORATION'
|
||||
VendorID 0x1380, 'SANRITZ AUTOMATION CO LTC'
|
||||
VendorID 0x1381, 'BRAINS CO. LTD'
|
||||
VendorID 0x1383, 'CONTROLNET INC'
|
||||
VendorID 0x1384, 'STELLAR SEMICONDUCTOR INC'
|
||||
VendorID 0x1385, 'NETGEAR'
|
||||
VendorID 0x1387, 'SYSTRAN CORP'
|
||||
VendorID 0x1388, 'HITACHI INFORMATION TECHNOLOGY CO LTD'
|
||||
VendorID 0x1389, 'APPLICOM INTERNATIONAL'
|
||||
VendorID 0x138A, 'SITERA'
|
||||
VendorID 0x138B, 'TOKIMEC INC'
|
||||
VendorID 0x138E, 'BASLER GMBH'
|
||||
VendorID 0x138F, 'PATAPSCO DESIGNS INC'
|
||||
VendorID 0x1393, 'MOXA TECHNOLOGIES CO LTD'
|
||||
VendorID 0x1394, 'LEVEL ONE COMMUNICATIONS'
|
||||
VendorID 0x1395, 'AMBICOM INC'
|
||||
VendorID 0x1396, 'CIPHER SYSTEMS INC'
|
||||
VendorID 0x1397, 'COLOGNE CHIP DESIGNS GMBH'
|
||||
VendorID 0x1398, 'CLARION CO. LTD'
|
||||
VendorID 0x1399, 'RIOS SYSTEMS CO LTD'
|
||||
VendorID 0x139A, 'ALACRITECH INC'
|
||||
VendorID 0x139C, 'QUANTUM 3D INC'
|
||||
VendorID 0x139D, 'XSTREAMS PLC/ EPL LIMITED'
|
||||
VendorID 0x139E, 'ECHOSTAR DATA NETWORKS'
|
||||
VendorID 0x139F, 'AETHRA S.R.L.'
|
||||
VendorID 0x13A0, 'CRYSTAL GROUP INC'
|
||||
VendorID 0x13A1, 'KAWASAKI HEAVY INDUSTRIES LTD'
|
||||
VendorID 0x13A2, 'OSITECH COMMUNICATIONS INC'
|
||||
VendorID 0x13A4, 'RASCOM INC'
|
||||
VendorID 0x13A7, 'TELES AG'
|
||||
VendorID 0x13A8, 'EXAR CORP.'
|
||||
VendorID 0x13A9, 'SIEMENS MEDICAL SYSTEMS'
|
||||
VendorID 0x13AA, 'NORTEL NETWORKS-BWA DIVISION'
|
||||
VendorID 0x13AF, 'T.SQWARE'
|
||||
VendorID 0x13B1, 'TAMURA CORPORATION'
|
||||
VendorID 0x13B4, 'WELLBEAN CO INC'
|
||||
VendorID 0x13B5, 'ARM Ltd'
|
||||
VendorID 0x13B6, 'DLoG GMBH'
|
||||
VendorID 0x13BF, 'SHAREWAVE INC'
|
||||
VendorID 0x13C0, 'Microgate Corp.'
|
||||
VendorID 0x13C1, '3ware Inc.'
|
||||
VendorID 0x13C2, 'TECHNOTREND SYSTEMTECHNIK GMBH'
|
||||
VendorID 0x13C3, 'JANZ COMPUTER AG'
|
||||
VendorID 0x13C6, 'CONDOR ENGINEERING INC'
|
||||
VendorID 0x13C7, 'BLUE CHIP TECHNOLOGY LTD'
|
||||
VendorID 0x13CA, 'IOMEGA CORPORATION'
|
||||
VendorID 0x13CC, 'METHEUS CORPORATION'
|
||||
VendorID 0x13CF, 'STUDIO AUDIO & VIDEO LTD'
|
||||
VendorID 0x13D0, 'B2C2'
|
||||
VendorID 0x13D1, 'ABOCOM SYSTEMS'
|
||||
VendorID 0x13D2, 'SHARK MULTIMEDIA INC'
|
||||
VendorID 0x13D3, 'IMC NETWORKS'
|
||||
VendorID 0x13D4, 'GRAPHICS MICROSYSTEMS INC'
|
||||
VendorID 0x13D6, 'K.I. TECHNOLOGY CO LTD'
|
||||
VendorID 0x13D7, 'TOSHIBA ENGINEERING CORPORATION'
|
||||
VendorID 0x13D8, 'PHOBOS CORPORATION'
|
||||
VendorID 0x13D9, 'APEX INC'
|
||||
VendorID 0x13DC, 'NETBOOST CORPORATION'
|
||||
VendorID 0x13DE, 'ABB ROBOTICS PRODUCTS'
|
||||
VendorID 0x13DF, 'E-TECH INC'
|
||||
VendorID 0x13E0, 'GVC CORPORATION'
|
||||
VendorID 0x13E3, 'NEST INC'
|
||||
VendorID 0x13E4, 'CALCULEX INC'
|
||||
VendorID 0x13E5, 'TELESOFT DESIGN LTD'
|
||||
VendorID 0x13E9, 'INTRASERVER TECHNOLOGY INC'
|
||||
VendorID 0x13EA, 'DALLAS SEMICONDUCTOR'
|
||||
VendorID 0x13F0, 'SUNDANCE TECHNOLOGY INC'
|
||||
VendorID 0x13F1, 'OCE-TECHNOLOGIES B.V.'
|
||||
VendorID 0x13F2, 'FORD MICROELECTRONICS INC'
|
||||
VendorID 0x13F4, 'TROIKA NETWORKS INC'
|
||||
VendorID 0x13F6, 'C-MEDIA ELECTRONICS INC'
|
||||
VendorID 0x13F9, 'NTT ADVANCED TECHNOLOGY CORP.'
|
||||
VendorID 0x13FB, 'AYDIN CORP'
|
||||
VendorID 0x13FD, 'MICRO SCIENCE INC'
|
||||
VendorID 0x1400, 'ARTX INC'
|
||||
VendorID 0x1402, 'Meilhaus Electronic GmbH Germany'
|
||||
VendorID 0x1404, 'FUNDAMENTAL SOFTWARE INC'
|
||||
VendorID 0x1406, 'OCE PRINTING SYSTEMS GmbH'
|
||||
VendorID 0x1407, 'LAVA COMPUTER MFG INC'
|
||||
VendorID 0x1408, 'ALOKA CO. LTD'
|
||||
VendorID 0x140A, 'DSP RESEARCH INC'
|
||||
VendorID 0x140B, 'RAMIX INC'
|
||||
VendorID 0x140D, 'MATSUSHITA ELECTRIC WORKS LTD'
|
||||
VendorID 0x1412, 'ICEnsemble'
|
||||
VendorID 0x1413, 'ADDONICS'
|
||||
VendorID 0x1415, 'OXFORD SEMICONDUCTOR LTD'
|
||||
VendorID 0x1418, 'KYUSHU ELECTRONICS SYSTEMS INC'
|
||||
VendorID 0x1419, 'EXCEL SWITCHING CORP'
|
||||
VendorID 0x141B, 'ZOOM TELEPHONICS INC'
|
||||
VendorID 0x141E, 'FANUC LTD'
|
||||
VendorID 0x1420, 'PSION DACOM PLC'
|
||||
VendorID 0x1428, 'EDEC CO LTD'
|
||||
VendorID 0x1429, 'UNEX TECHNOLOGY CORP'
|
||||
VendorID 0x142A, 'KINGMAX TECHNOLOGY INC'
|
||||
VendorID 0x142B, 'RADIOLAN'
|
||||
VendorID 0x142C, 'MINTON OPTIC INDUSTRY CO LTD'
|
||||
VendorID 0x142D, 'PIXSTREAM INC'
|
||||
VendorID 0x1430, 'ITT AEROSPACE/COMMUNICATIONS DIVISION'
|
||||
VendorID 0x1433, 'ELTEC ELEKTRONIK GMBH'
|
||||
VendorID 0x1436, 'CIS TECHNOLOGY INC'
|
||||
VendorID 0x1437, 'NISSIN INC CO'
|
||||
VendorID 0x1438, 'ATMEL-DREAM'
|
||||
VendorID 0x143F, 'LIGHTWELL CO LTD-ZAX DIVISION'
|
||||
VendorID 0x1441, 'AGIE SA'
|
||||
VendorID 0x1445, 'LOGICAL CO LTD'
|
||||
VendorID 0x1446, 'GRAPHIN CO. LTD'
|
||||
VendorID 0x1447, 'AIM GMBH'
|
||||
VendorID 0x144A, 'ADLINK Technology Inc'
|
||||
VendorID 0x144B, 'LORONIX INFORMATION SYSTEMS INC'
|
||||
VendorID 0x144D, 'SAMSUNG ELECTRONICS CO LTD'
|
||||
VendorID 0x1450, 'OCTAVE COMMUNICATIONS IND.'
|
||||
VendorID 0x1451, 'SP3D CHIP DESIGN GMBH'
|
||||
VendorID 0x1453, 'MYCOM INC'
|
||||
VendorID 0x1455, 'LOGIC PLUS PLUS INC'
|
||||
VendorID 0x1458, 'GIGA-BYTE TECHNOLOGY'
|
||||
VendorID 0x145C, 'CRYPTEK'
|
||||
VendorID 0x145F, 'BALDOR ELECTRIC COMPANY'
|
||||
VendorID 0x1460, 'DYNARC INC'
|
||||
VendorID 0x1461, 'AVERMEDIA Tech.'
|
||||
VendorID 0x1462, 'MICRO-STAR INTERNATIONAL CO LTD'
|
||||
VendorID 0x1463, 'FAST CORPORATION'
|
||||
VendorID 0x1464, 'INTERACTIVE CIRCUITS & SYSTEMS LTD'
|
||||
VendorID 0x1465, 'GN NETTEST TELECOM DIV.'
|
||||
VendorID 0x1468, 'AMBIT MICROSYSTEMS CORP.'
|
||||
VendorID 0x1469, 'CLEVELAND MOTION CONTROLS'
|
||||
VendorID 0x146C, 'RUBY TECH CORP.'
|
||||
VendorID 0x146D, 'TACHYON'
|
||||
VendorID 0x146E, 'WILLIAMS ELECTRONICS GAMES.'
|
||||
VendorID 0x1471, 'INTEGRATED TELECOM EXPRESS INC'
|
||||
VendorID 0x1473, 'ZAPEX TECHNOLOGIES INC'
|
||||
VendorID 0x1474, 'DOUG CARSON & ASSOCIATES'
|
||||
VendorID 0x1477, 'NET INSIGHT'
|
||||
VendorID 0x1478, 'DIATREND CORPORATION'
|
||||
VendorID 0x147B, 'ABIT Computer'
|
||||
VendorID 0x147F, 'NIHON UNISYS'
|
||||
VendorID 0x1482, 'ISYTEC-Integrierte Systemtechnik Gmbh'
|
||||
VendorID 0x1483, 'LABWAY COPORATION'
|
||||
VendorID 0x1485, 'ERMA-ELECTRONIC GMBH'
|
||||
VendorID 0x1489, 'KYE SYSTEMS CORPORATION'
|
||||
VendorID 0x148A, 'OPTO 22'
|
||||
VendorID 0x148B, 'INNOMEDIALOGIC INC.'
|
||||
VendorID 0x148E, 'OSI PLUS CORPORATION'
|
||||
VendorID 0x148F, 'PLANT EQUIPMENT.'
|
||||
VendorID 0x1490, 'TC LABS PTY LTD.'
|
||||
VendorID 0x1493, 'MAKER COMMUNICATIONS'
|
||||
VendorID 0x1495, 'TOKAI COMMUNICATIONS INDUSTRY CO. LTD'
|
||||
VendorID 0x1496, 'JOYTECH COMPUTER CO. LTD.'
|
||||
VendorID 0x1497, 'SMA REGELSYSTEME GMBH'
|
||||
VendorID 0x1499, 'EMTEC CO. LTD'
|
||||
VendorID 0x149C, 'OVISLINK CORP.'
|
||||
VendorID 0x149D, 'NEWTEK INC'
|
||||
VendorID 0x149E, 'MAPLETREE NETWORKS INC.'
|
||||
VendorID 0x149F, 'LECTRON CO LTD'
|
||||
VendorID 0x14A0, 'SOFTING GMBH'
|
||||
VendorID 0x14A1, 'SYSTEMBASE CO LTD'
|
||||
VendorID 0x14A2, 'MILLENNIUM ENGINEERING INC'
|
||||
VendorID 0x14A3, 'MAVERICK NETWORKS'
|
||||
VendorID 0x14A4, 'GVC/BCM ADVANCED RESEARCH'
|
||||
VendorID 0x14A5, 'XIONICS DOCUMENT TECHNOLOGIES INC.'
|
||||
VendorID 0x14A6, 'INOVA COMPUTERS GMBH & CO KG'
|
||||
VendorID 0x14A8, 'FEATRON TECHNOLOGIES CORPORATION'
|
||||
VendorID 0x14A9, 'HIVERTEC INC.'
|
||||
VendorID 0x14AB, 'MENTOR GRAPHICS CORP.'
|
||||
VendorID 0x14AC, 'NOVAWEB TECHNOLOGIES INC'
|
||||
VendorID 0x14AD, 'TIME SPACE RADIO AB'
|
||||
VendorID 0x14AE, 'CTI PET Systems'
|
||||
VendorID 0x14AF, 'GUILLEMOT CORPORATION'
|
||||
VendorID 0x14B0, 'BST COMMUNICATION TECHNOLOGY LTD'
|
||||
VendorID 0x14B1, 'NEXTCOM K.K.'
|
||||
VendorID 0x14B2, 'ENNOVATE NETWORKS INC'
|
||||
VendorID 0x14B3, 'XPEED INC.'
|
||||
VendorID 0x14B4, 'PHILIPS BUSINESS ELECTRONICS B.V.'
|
||||
VendorID 0x14B5, 'CREAMWARE GMBH'
|
||||
VendorID 0x14B6, 'QUANTUM DATA CORP.'
|
||||
VendorID 0x14B7, 'PROXIM INC'
|
||||
VendorID 0x14B8, 'TECHSOFT TECHNOLOGY CO LTD'
|
||||
VendorID 0x14B9, 'AIRONET WIRELESS COMMUNICATIONS'
|
||||
VendorID 0x14BA, 'INTERNIX INC.'
|
||||
VendorID 0x14BB, 'SEMTECH CORPORATION'
|
||||
VendorID 0x14BC, 'GLOBESPAN SEMICONDUCTOR INC.'
|
||||
VendorID 0x14BD, 'CARDIO CONTROL N.V.'
|
||||
VendorID 0x14BE, 'L3 COMMUNICATIONS'
|
||||
VendorID 0x14BF, 'SPIDER COMMUNICATIONS INC.'
|
||||
VendorID 0x14C0, 'COMPAL ELECTRONICS INC'
|
||||
VendorID 0x14C1, 'MYRICOM INC.'
|
||||
VendorID 0x14C2, 'DTK COMPUTER'
|
||||
VendorID 0x14C3, 'MEDIATEK CORP.'
|
||||
VendorID 0x14C4, 'IWASAKI INFORMATION SYSTEMS CO LTD'
|
||||
VendorID 0x14C5, 'ABB AUTOMATION PRODUCTS'
|
||||
VendorID 0x14C6, 'DATA RACE INC'
|
||||
VendorID 0x14C7, 'MODULAR TECHNOLOY HOLDINGS LTD'
|
||||
VendorID 0x14C8, 'TURBOCOMM TECH. INC.'
|
||||
VendorID 0x14C9, 'ODIN TELESYSTEMS INC'
|
||||
VendorID 0x14CA, 'PE LOGIC CORP.'
|
||||
VendorID 0x14CB, 'Billionton Systems Inc./Cadmus Micro Inc.'
|
||||
VendorID 0x14CC, 'NAKAYO TELECOMMUNICATIONS INC'
|
||||
VendorID 0x14CD, 'UNIVERSAL SCIENTIFIC IND'
|
||||
VendorID 0x14CE, 'WHISTLE COMMUNICATIONS'
|
||||
VendorID 0x14CF, 'TEK MICROSYSTEMS INC.'
|
||||
VendorID 0x14D0, 'ERICSSON AXE R & D'
|
||||
VendorID 0x14D1, 'COMPUTER HI-TECH CO LTD'
|
||||
VendorID 0x14D2, 'TITAN ELECTRONICS INC'
|
||||
VendorID 0x14D3, 'CIRTECH (UK) LTD'
|
||||
VendorID 0x14D4, 'PANACOM TECHNOLOGY CORP'
|
||||
VendorID 0x14D5, 'NITSUKO CORPORATION'
|
||||
VendorID 0x14D6, 'ACCUSYS'
|
||||
VendorID 0x14D7, 'HIRAKAWA HEWTECH CORP'
|
||||
VendorID 0x14D8, 'HOPF ELEKTRONIK GMBH'
|
||||
VendorID 0x14D9, 'ALPHA PROCESSOR INC'
|
||||
VendorID 0x14DA, 'NATIONAL AEROSPACE LABORATORIES'
|
||||
VendorID 0x14DB, 'AVLAB TECHNOLOGY INC'
|
||||
VendorID 0x14DC, 'AMPLICON LIVELINE LTD'
|
||||
VendorID 0x14DD, 'IMODL INC.'
|
||||
VendorID 0x14DE, 'APPLIED INTEGRATION CORPORATION'
|
||||
VendorID 0x14DF, 'BASIS COMMUNICATIONS CORP'
|
||||
VendorID 0x14E1, 'INVERTEX'
|
||||
VendorID 0x14E2, 'INFOLIBRIA'
|
||||
VendorID 0x14E3, 'AMTELCO'
|
||||
VendorID 0x14E5, 'PIXELFUSION LTD'
|
||||
VendorID 0x14E6, 'SHINING TECHNOLOGY INC'
|
||||
VendorID 0x14E7, '3CX'
|
||||
VendorID 0x14E8, 'RAYCER INC'
|
||||
VendorID 0x14E9, 'GARNETS SYSTEM CO LTD'
|
||||
VendorID 0x14EA, 'PLANEX COMMUNICATIONS INC'
|
||||
VendorID 0x14EB, 'SEIKO EPSON CORPORATION'
|
||||
VendorID 0x14EC, 'ACQIRIS'
|
||||
VendorID 0x14ED, 'DATAKINETICS LTD'
|
||||
VendorID 0x14EE, 'MASPRO KENKOH CORP'
|
||||
VendorID 0x14EF, 'CARRY COMPUTER ENG. CO LTD'
|
||||
VendorID 0x14F0, 'CANON RESEACH CENTRE FRANCE'
|
||||
VendorID 0x14F1, 'Conexant Systems, Inc'
|
||||
VendorID 0x14F2, 'Mobility Electronics, Inc.'
|
||||
VendorID 0x14F3, 'BROADLOGIC'
|
||||
VendorID 0x14F4, 'TOKYO ELECTRONIC INDUSTRY CO LTD'
|
||||
VendorID 0x14F5, 'SOPAC LTD'
|
||||
VendorID 0x14F6, 'COYOTE TECHNOLOGIES LLC'
|
||||
VendorID 0x14F7, 'WOLF TECHNOLOGY INC'
|
||||
VendorID 0x14F8, 'AUDIOCODES INC'
|
||||
VendorID 0x14F9, 'AG COMMUNICATIONS'
|
||||
VendorID 0x14FA, 'WAVETEK WANDEL & GOLTERMANN'
|
||||
VendorID 0x14FB, 'TRANSAS MARINE (UK) LTD'
|
||||
VendorID 0x14FC, 'QUADRICS SUPERCOMPUTERS WORLD'
|
||||
VendorID 0x14FD, 'JAPAN COMPUTER INDUSTRY INC.'
|
||||
VendorID 0x14FE, 'ARCHTEK TELECOM CORP.'
|
||||
VendorID 0x14FF, 'TWINHEAD INTERNATIONAL CORP'
|
||||
VendorID 0x1500, 'LANTECH COMPUTER COMPANY'
|
||||
VendorID 0x1501, 'BANKSOFT CANADA LTD'
|
||||
VendorID 0x1502, 'MITSUBISHI ELECTRIC LOGISTICS SUPPORT CO'
|
||||
VendorID 0x1503, 'KAWASAKI LSI USA INC'
|
||||
VendorID 0x1504, 'KAISER ELECTRONICS'
|
||||
VendorID 0x1505, 'ITA INGENIEURBURO FUR TESTAUFGABEN GMBH'
|
||||
VendorID 0x1506, 'CHAMELEON SYSTEMS INC'
|
||||
VendorID 0x1507, 'HTEC LTD'
|
||||
VendorID 0x1508, 'HONDA CONNECTORS/MHOTRONICS INC'
|
||||
VendorID 0x1509, 'FIRST INTERNATIONAL COMPUTER INC'
|
||||
VendorID 0x150A, 'FORVUS RESEARCH INC'
|
||||
VendorID 0x150B, 'YAMASHITA SYSTEMS CORP'
|
||||
VendorID 0x150C, 'KYOPAL CO LTD'
|
||||
VendorID 0x150D, 'WARPSPPED INC'
|
||||
VendorID 0x150E, 'C-PORT CORPORATION'
|
||||
VendorID 0x150F, 'INTEC GMBH'
|
||||
VendorID 0x1510, 'BEHAVIOR TECH COMPUTER CORP'
|
||||
VendorID 0x1511, 'CENTILLIUM TECHNOLOGY CORP'
|
||||
VendorID 0x1512, 'ROSUN TECHNOLOGIES INC'
|
||||
VendorID 0x1513, 'RAYCHEM'
|
||||
VendorID 0x1514, 'TFL LAN INC'
|
||||
VendorID 0x1515, 'ICS ADVENT'
|
||||
VendorID 0x1516, 'MYSON TECHNOLOGY INC'
|
||||
VendorID 0x1517, 'ECHOTEK CORPORATION'
|
||||
VendorID 0x1518, 'PEP MODULAR COMPUTERS GMBH'
|
||||
VendorID 0x1519, 'TELEFON AKTIEBOLAGET LM Ericsson'
|
||||
VendorID 0x151A, 'GLOBETEK INC'
|
||||
VendorID 0x151B, 'COMBOX LTD'
|
||||
VendorID 0x151C, 'DIGITAL AUDIO LABS INC'
|
||||
VendorID 0x151D, 'FUJITSU COMPUTER PRODUCTS OF AMERICA'
|
||||
VendorID 0x151E, 'MATRIX CORP.'
|
||||
VendorID 0x151F, 'TOPIC SEMICONDUCTOR CORP'
|
||||
VendorID 0x1520, 'CHAPLET SYSTEM INC'
|
||||
VendorID 0x1522, 'MAINPINE LIMITED'
|
||||
VendorID 0x1523, 'MUSIC SEMICONDUCTORS'
|
||||
VendorID 0x1524, 'ENE TECHNOLOGY INC'
|
||||
VendorID 0x1525, 'IMPACT TECHNOLOGIES'
|
||||
VendorID 0x1526, 'ISS'
|
||||
VendorID 0x1527, 'SOLECTRON'
|
||||
VendorID 0x1528, 'ACKSYS'
|
||||
VendorID 0x1529, 'AMERICAN MICROSYSTEMS INC'
|
||||
VendorID 0x152A, 'QUICKTURN DESIGN SYSTEMS'
|
||||
VendorID 0x152B, 'FLYTECH TECHNOLOGY CO LTD'
|
||||
VendorID 0x152C, 'MACRAIGOR SYSTEMS LLC'
|
||||
VendorID 0x152D, 'QUANTA COMPUTER INC'
|
||||
VendorID 0x152E, 'MELEC INC'
|
||||
VendorID 0x152F, 'PHILIPS-CRYPTO'
|
||||
VendorID 0x1530, 'ACQIS TECHNOLOGY'
|
||||
VendorID 0x1531, 'CHRYON CORP.'
|
||||
VendorID 0x1532, 'ECHELON CORPORATION'
|
||||
VendorID 0x1533, 'BALTIMORE'
|
||||
VendorID 0x1534, 'ROAD CORPORATION'
|
||||
VendorID 0x1535, 'EVERGREEN TECHNOLOGIES INC'
|
||||
VendorID 0x1537, 'DATALEX COMMUNCATIONS'
|
||||
VendorID 0x1538, 'ARALION INC.'
|
||||
VendorID 0x1539, 'ATELIER INFORMATIQUES et ELECTRONIQUE ETUDES S.A.'
|
||||
VendorID 0x153A, 'ONO SOKKI'
|
||||
VendorID 0x153B, 'TERRATEC ELECTRONIC GMBH'
|
||||
VendorID 0x153C, 'ANTAL ELECTRONIC'
|
||||
VendorID 0x153D, 'FILANET CORPORATION'
|
||||
VendorID 0x153E, 'TECHWELL INC'
|
||||
VendorID 0x153F, 'MIPS DENMARK'
|
||||
VendorID 0x1540, 'PROVIDEO MULTIMEDIA CO LTD'
|
||||
VendorID 0x1541, 'TELOSITY INC.'
|
||||
VendorID 0x1542, 'VIVID TECHNOLOGY INC'
|
||||
VendorID 0x1543, 'SILICON LABORATORIES'
|
||||
VendorID 0x1544, 'DCM DATA SYSTEMS'
|
||||
VendorID 0x1545, 'VISIONTEK'
|
||||
VendorID 0x1546, 'IOI TECHNOLOGY CORP.'
|
||||
VendorID 0x1547, 'MITUTOYO CORPORATION'
|
||||
VendorID 0x1548, 'JET PROPULSION LABORATORY'
|
||||
VendorID 0x1549, 'INTERCONNECT SYSTEMS SOLUTIONS'
|
||||
VendorID 0x154A, 'MAX TECHNOLOGIES INC.'
|
||||
VendorID 0x154B, 'COMPUTEX CO LTD'
|
||||
VendorID 0x154C, 'VISUAL TECHNOLOGY INC.'
|
||||
VendorID 0x154D, 'PAN INTERNATIONAL INDUSTRIAL CORP'
|
||||
VendorID 0x154E, 'SERVOTEST LTD'
|
||||
VendorID 0x154F, 'STRATABEAM TECHNOLOGY'
|
||||
VendorID 0x1550, 'OPEN NETWORK CO LTD'
|
||||
VendorID 0x1551, 'SMART ELECTRONIC DEVELOPMENT GMBH'
|
||||
VendorID 0x1552, 'RACAL AIRTECH LTD'
|
||||
VendorID 0x1553, 'CHICONY ELECTRONICS CO LTD'
|
||||
VendorID 0x1554, 'PROLINK MICROSYSTEMS CORP.'
|
||||
VendorID 0x1555, 'GESYTEC GMBH'
|
||||
VendorID 0x1556, 'PLD APPLICATIONS'
|
||||
VendorID 0x1557, 'MEDIASTAR CO. LTD'
|
||||
VendorID 0x1558, 'CLEVO/KAPOK COMPUTER'
|
||||
VendorID 0x1559, 'SI LOGIC LTD'
|
||||
VendorID 0x155A, 'INNOMEDIA INC'
|
||||
VendorID 0x155B, 'PROTAC INTERNATIONAL CORP'
|
||||
VendorID 0x155C, 'CEMAX-ICON INC'
|
||||
VendorID 0x155D, 'MAC SYSTEM CO LTD'
|
||||
VendorID 0x155E, 'LP ELEKTRONIK GMBH/KUKA Controls GmbH'
|
||||
VendorID 0x155F, 'PERLE SYSTEMS LIMITED'
|
||||
VendorID 0x1560, 'TERAYON COMMUNICATIONS SYSTEMS'
|
||||
VendorID 0x1561, 'VIEWGRAPHICS INC'
|
||||
VendorID 0x1562, 'Symbol Technologies, Inc.'
|
||||
VendorID 0x1563, 'A-TREND'
|
||||
VendorID 0x1564, 'YAMAKATSU ELECTRONICS INDUSTRY CO LTD'
|
||||
VendorID 0x1565, 'BIOSTAR MICROTECH INT CORP'
|
||||
VendorID 0x1566, 'ARDENT TECHNOLOGIES INC'
|
||||
VendorID 0x1567, 'JUNGSOFT'
|
||||
VendorID 0x1568, 'DDK ELECTRONICS INC'
|
||||
VendorID 0x1569, 'PALIT MICROSYSTEMS INC'
|
||||
VendorID 0x156A, 'AVTEC SYSTEMS'
|
||||
VendorID 0x156B, '2WIRE'
|
||||
VendorID 0x156C, 'VIDAC ELECTRONICS GMBH'
|
||||
VendorID 0x156D, 'ALPHA-TOP CORP'
|
||||
VendorID 0x156E, 'ALFA INC'
|
||||
VendorID 0x156F, 'M-SYSTEMS FLASH DISK PIONEERS LTD'
|
||||
VendorID 0x1570, 'LECROY CORPORATION'
|
||||
VendorID 0x1571, 'CONTEMPORARY CONTROLS'
|
||||
VendorID 0x1572, 'OTIS ELEVATOR COMPANY'
|
||||
VendorID 0x1573, 'LATTICE-VANTIS'
|
||||
VendorID 0x1574, 'FAIRCHILD SEMICONDUCTOR'
|
||||
VendorID 0x1575, 'VOLTAIRE ADVANCED DATA SECURITY LTD'
|
||||
VendorID 0x1576, 'VIEWCAST COM'
|
||||
VendorID 0x1578, 'HITT'
|
||||
VendorID 0x1579, 'DUAL TECHNOLOGY CORPORATION'
|
||||
VendorID 0x157A, 'JAPAN ELECRONICS IND. INC'
|
||||
VendorID 0x157B, 'STAR MULTIMEDIA CORP.'
|
||||
VendorID 0x157C, 'EUROSOFT (UK) LTD'
|
||||
VendorID 0x157D, 'GEMFLEX NETWORKS'
|
||||
VendorID 0x157E, 'TRANSITION NETWORKS'
|
||||
VendorID 0x157F, 'PX INSTRUMENTS TECHNOLOGY LTD'
|
||||
VendorID 0x1580, 'PRIMEX AEROSPACE CO.'
|
||||
VendorID 0x1581, 'SEH COMPUTERTECHNIK GMBH'
|
||||
VendorID 0x1582, 'CYTEC CORPORATION'
|
||||
VendorID 0x1583, 'INET TECHNOLOGIES INC'
|
||||
VendorID 0x1584, 'UNIWILL COMPUTER CORP'
|
||||
VendorID 0x1585, 'LOGITRON'
|
||||
VendorID 0x1586, 'LANCAST INC'
|
||||
VendorID 0x1587, 'KONICA CORPORATION'
|
||||
VendorID 0x1588, 'SOLIDUM SYSTEMS CORP'
|
||||
VendorID 0x1589, 'ATLANTEK MICROSYSTEMS PTY LTD'
|
||||
VendorID 0x158A, 'DIGALOG SYSTEMS INC'
|
||||
VendorID 0x158B, 'ALLIED DATA TECHNOLOGIES'
|
||||
VendorID 0x158C, 'HITACHI SEMICONDUCTOR & DEVICES SALES CO LTD'
|
||||
VendorID 0x158D, 'POINT MULTIMEDIA SYSTEMS'
|
||||
VendorID 0x158E, 'LARA TECHNOLOGY INC'
|
||||
VendorID 0x158F, 'DITECT COOP'
|
||||
VendorID 0x1590, '3PARDATA'
|
||||
VendorID 0x1591, 'ARN'
|
||||
VendorID 0x1592, 'SYBA TECH LIMITED'
|
||||
VendorID 0x1593, 'BOPS INC'
|
||||
VendorID 0x1594, 'NETGAME LTD'
|
||||
VendorID 0x1595, 'DIVA SYSTEMS CORP.'
|
||||
VendorID 0x1596, 'FOLSOM RESEARCH INC'
|
||||
VendorID 0x1597, 'MEMEC DESIGN SERVICES'
|
||||
VendorID 0x1598, 'GRANITE MICROSYSTEMS'
|
||||
VendorID 0x1599, 'DELTA ELECTRONICS INC'
|
||||
VendorID 0x159A, 'GENERAL INSTRUMENT'
|
||||
VendorID 0x159B, 'FARADAY TECHNOLOGY CORP'
|
||||
VendorID 0x159C, 'STRATUS COMPUTER SYSTEMS'
|
||||
VendorID 0x159D, 'NINGBO HARRISON ELECTRONICS CO LTD'
|
||||
VendorID 0x159E, 'A-MAX TECHNOLOGY'
|
||||
VendorID 0x159F, 'GALEA NETWORK SECURITY'
|
||||
VendorID 0x15A0, 'COMPUMASTER SRL'
|
||||
VendorID 0x15A1, 'GEOCAST NETWORK SYSTEMS INC'
|
||||
VendorID 0x15A2, 'CATALYST ENTERPRISES INC'
|
||||
VendorID 0x15A3, 'ITALTEL'
|
||||
VendorID 0x15A4, 'X-NET OY'
|
||||
VendorID 0x15A5, 'TOYOTA MACS INC'
|
||||
VendorID 0x15A6, 'SUNLIGHT ULTRASOUND TECHNOLOGIES LTD'
|
||||
VendorID 0x15A7, 'SSE TELECOM INC'
|
||||
VendorID 0x15A8, 'SHANGHAI COMMUNICATIONS TECHNOLOGIES CENTER'
|
||||
VendorID 0x15AA, 'MORETON BAY'
|
||||
VendorID 0x15AB, 'BLUESTEEL NETWORKS INC'
|
||||
VendorID 0x15AC, 'NORTH ATLANTIC INSTRUMENTS'
|
||||
VendorID 0x15B0, 'ZOLTRIX INTERNATIONAL LIMITED'
|
||||
VendorID 0x15B1, 'SOURCE TECHNOLOGY INC'
|
||||
VendorID 0x15B2, 'MOSAID TECHNOLOGIES INC.'
|
||||
VendorID 0x15B3, 'MELLANOX TECHNOLOGY'
|
||||
VendorID 0x15B4, 'CCI/TRIAD'
|
||||
VendorID 0x15B5, 'CIMETRICS INC'
|
||||
VendorID 0x15B6, 'TEXAS MEMORY SYSTEMS INC'
|
||||
VendorID 0x15B7, 'SANDISK CORP.'
|
||||
VendorID 0x15B8, 'ADDI-DATA GMBH'
|
||||
VendorID 0x15B9, 'MAESTRO DIGITAL COMMUNICATIONS'
|
||||
VendorID 0x15BA, 'IMPACCT TECHNOLOGY CORP'
|
||||
VendorID 0x15BB, 'PORTWELL INC'
|
||||
VendorID 0x15BC, 'AGILENT TECHNOLOGIES'
|
||||
VendorID 0x15BD, 'DFI INC.'
|
||||
VendorID 0x15BE, 'SOLA ELECTRONICS'
|
||||
VendorID 0x15BF, 'HIGH TECH COMPUTER CORP (HTC)'
|
||||
VendorID 0x15C0, 'BVM LIMITED'
|
||||
VendorID 0x15C1, 'QUANTEL'
|
||||
VendorID 0x15C2, 'NEWER TECHNOLOGY INC'
|
||||
VendorID 0x15C3, 'TAIWAN MYCOMP CO LTD'
|
||||
VendorID 0x15C4, 'EVSX'
|
||||
VendorID 0x15C5, 'PROCOMP INFORMATICS LTD'
|
||||
VendorID 0x15C6, 'TECHNICAL UNIVERSITY OF BUDAPEST'
|
||||
VendorID 0x15C7, 'TATEYAMA SYSTEM LABORATORY CO LTD'
|
||||
VendorID 0x15C8, 'PENTA MEDIA CO. LTD'
|
||||
VendorID 0x15C9, 'SEROME TECHNOLOGY INC'
|
||||
VendorID 0x15CA, 'BITBOYS OY'
|
||||
VendorID 0x15CB, 'AG ELECTRONICS LTD'
|
||||
VendorID 0x15CC, 'HOTRAIL INC.'
|
||||
VendorID 0x15CD, 'DREAMTECH CO LTD'
|
||||
VendorID 0x15CE, 'GENRAD INC.'
|
||||
VendorID 0x15CF, 'HILSCHER GMBH'
|
||||
VendorID 0x15D1, 'INFINEON TECHNOLOGIES AG'
|
||||
VendorID 0x15D2, 'FIC (FIRST INTERNATIONAL COMPUTER INC)'
|
||||
VendorID 0x15D3, 'NDS TECHNOLOGIES ISRAEL LTD'
|
||||
VendorID 0x15D4, 'IWILL CORPORATION'
|
||||
VendorID 0x15D5, 'TATUNG CO.'
|
||||
VendorID 0x15D6, 'ENTRIDIA CORPORATION'
|
||||
VendorID 0x15D7, 'Rockwell-Collins Inc'
|
||||
VendorID 0x15D8, 'CYBERNETICS TECHNOLOGY CO LTD'
|
||||
VendorID 0x15D9, 'SUPER MICRO COMPUTER INC'
|
||||
VendorID 0x15DA, 'CYBERFIRM INC.'
|
||||
VendorID 0x15DB, 'APPLIED COMPUTING SYSTEMS INC.'
|
||||
VendorID 0x15DC, 'LITRONIC INC'
|
||||
VendorID 0x15DD, 'SIGMATEL INC.'
|
||||
VendorID 0x15DE, 'MALLEABLE TECHNOLOGIES INC'
|
||||
VendorID 0x15DF, 'INFINILINK CORP.'
|
||||
VendorID 0x15E0, 'CACHEFLOW INC'
|
||||
VendorID 0x15E1, 'VOICE TECHNOLOGIES GROUP INC'
|
||||
VendorID 0x15E2, 'QUICKNET TECHNOLOGIES INC'
|
||||
VendorID 0x15E3, 'NETWORTH TECHNOLOGIES INC'
|
||||
VendorID 0x15E4, 'VSN SYSTEMEN BV'
|
||||
VendorID 0x15E5, 'VALLEY TECHNOLOGIES INC'
|
||||
VendorID 0x15E6, 'AGERE INC.'
|
||||
VendorID 0x15E7, 'GET ENGINEERING CORP.'
|
||||
VendorID 0x15E8, 'NATIONAL DATACOMM CORP.'
|
||||
VendorID 0x15E9, 'PACIFIC DIGITAL CORP.'
|
||||
VendorID 0x15EA, 'TOKYO DENSHI SEKEI K.K.'
|
||||
VendorID 0x15EB, 'DRSEARCH GMBH'
|
||||
VendorID 0x15EC, 'BECKHOFF GMBH'
|
||||
VendorID 0x15ED, 'MACROLINK INC'
|
||||
VendorID 0x15EE, 'IN WIN DEVELOPMENT INC.'
|
||||
VendorID 0x15EF, 'INTELLIGENT PARADIGM INC'
|
||||
VendorID 0x15F0, 'B-TREE SYSTEMS INC'
|
||||
VendorID 0x15F1, 'TIMES N SYSTEMS INC'
|
||||
VendorID 0x15F2, 'DIAGNOSTIC INSTRUMENTS INC'
|
||||
VendorID 0x15F3, 'DIGITMEDIA CORP.'
|
||||
VendorID 0x15F4, 'VALUESOFT'
|
||||
VendorID 0x15F5, 'POWER MICRO RESEARCH'
|
||||
VendorID 0x15F6, 'EXTREME PACKET DEVICE INC'
|
||||
VendorID 0x15F7, 'BANCTEC'
|
||||
VendorID 0x15F8, 'KOGA ELECTRONICS CO'
|
||||
VendorID 0x15F9, 'ZENITH ELECTRONICS CORPORATION'
|
||||
VendorID 0x15FA, 'J P AXZAM CORPORATION'
|
||||
VendorID 0x15FB, 'ZILOG INC.'
|
||||
VendorID 0x15FC, 'TECHSAN ELECTRONICS CO LTD'
|
||||
VendorID 0x15FD, 'N-CUBED.NET'
|
||||
VendorID 0x15FE, 'KINPO ELECTRONICS INC'
|
||||
VendorID 0x15FF, 'FASTPOINT TECHNOLOGIES INC.'
|
||||
VendorID 0x1600, 'NORTHROP GRUMMAN-CANADA LTD'
|
||||
VendorID 0x1601, 'TENTA TECHNOLOGY'
|
||||
VendorID 0x1602, 'PROSYS-TEC INC.'
|
||||
VendorID 0x1604, 'CENTRAL SYSTEM RESEARCH CO LTD'
|
||||
VendorID 0x1605, 'PAIRGAIN TECHNOLOGIES'
|
||||
VendorID 0x1606, 'EUROPOP AG'
|
||||
VendorID 0x1607, 'LAVA SEMICONDUCTOR MANUFACTURING INC.'
|
||||
VendorID 0x1608, 'AUTOMATED WAGERING INTERNATIONAL'
|
||||
VendorID 0x1609, 'SCIEMETRIC INSTRUMENTS INC'
|
||||
VendorID 0x166D, 'Broadcom -SiByte'
|
||||
VendorID 0x1695, 'EPOX Computer Co'
|
||||
VendorID 0x17F2, 'ALBATRON Corp.'
|
||||
VendorID 0x1813, 'AMBIENT TECHNOLOGIES INC'
|
||||
VendorID 0x1849, 'ASROCK Inc'
|
||||
VendorID 0x1B13, 'Jaton Corp'
|
||||
VendorID 0x2001, 'TEMPORAL RESEARCH LTD'
|
||||
VendorID 0x270F, 'CHAINTECH COMPUTER CO. LTD'
|
||||
VendorID 0x3388, 'HINT CORP'
|
||||
VendorID 0x3411, 'QUANTUM DESIGNS (H.K.) INC.'
|
||||
VendorID 0x4005, 'AVANCE LOGIC INC'
|
||||
VendorID 0x4033, 'DELTA NETWORKS INC'
|
||||
VendorID 0x416C, 'ALADDIN KNOWLEDGE SYSTEMS'
|
||||
VendorID 0x4444, 'CONEXANT (WAS ICOMPRESION INC.)'
|
||||
VendorID 0x4943, 'GROWTH NETWORKS'
|
||||
VendorID 0x4CA1, 'SEANIX TECHNOLOGY INC'
|
||||
VendorID 0x4D51, 'MEDIAQ INC.'
|
||||
VendorID 0x4D54, 'MICROTECHNICA CO LTD'
|
||||
VendorID 0x5136, 'S S TECHNOLOGIES'
|
||||
VendorID 0x544C, 'TERALOGIC INC'
|
||||
VendorID 0x5555, 'GENROCO INC'
|
||||
VendorID 0x6666, 'DECISION COMPUTER INTERNATIONAL CO.'
|
||||
VendorID 0x8E0E, 'COMPUTONE CORPORATION'
|
||||
VendorID 0x919A, 'GIGAPIXEL CORP'
|
||||
VendorID 0x9412, 'HOLTEK'
|
||||
VendorID 0x9699, 'OMNI MEDIA TECHNOLOGY INC.'
|
||||
VendorID 0x9710, 'NetMos'
|
||||
VendorID 0xA0A0, 'AOPEN INC.'
|
||||
VendorID 0xAC1E, 'DIGITAL RECEIVER TECHNOLOGY INC'
|
||||
VendorID 0xC0DE, 'MOTOROLA'
|
||||
VendorID 0xC0FE, 'MOTION ENGINEERING.'
|
||||
VendorID 0xCAFE, 'CHRYSALIS-ITS'
|
||||
VendorID 0xCCCC, 'CATAPULT COMMUNICATIONS'
|
||||
VendorID 0xD4D4, 'DY4 Systems Inc/Curtiss-Wright Controls Embed. Com'
|
||||
VendorID 0xE159, 'TigerJet'
|
||||
VendorID 0xE4BF, 'EKF ELEKTRONIK GMBH'
|
||||
VendorID 0xEA01, 'EAGLE TECHNOLOGY'
|
||||
VendorID 0xFA57, 'FAST SEARCH & TRANSFER ASA'
|
||||
VendorID 0xFEDA, 'EPIGRAM INC'
|
382
programs/testing/pcidev/trunk/vendors.inc
Normal file
@@ -0,0 +1,382 @@
|
||||
; AUTHOR: Victor Alberto Gil Hancco Laquita <vhanla@gmail.com>
|
||||
; This list might content mistakes, plz report it
|
||||
; There are 865 Lists of Vendors' Names
|
||||
; Date: 8/14/2005
|
||||
;
|
||||
; maybe this list is outdated...
|
||||
; (the source was from 2004 list)
|
||||
|
||||
; changed 11/05/2006: + 3 vendors and no more label 'PREVIOUSVERSIONLIST'
|
||||
; so the total quantity of vendors is 875 now (changes by Sergey Kuzmin)
|
||||
|
||||
; changed 16/08/2006: + 122 vendors
|
||||
; so the total quantity of vendors is 987 now (changes by Sergey Kuzmin)
|
||||
|
||||
; changed ??/04/2007:
|
||||
; size optimezed
|
||||
; total quantity of vendors is 997 now (changes by Mihailov Ilia)
|
||||
|
||||
; changed ??/03/2010:
|
||||
; only few best-known vendors left in this file to reduce the file size
|
||||
; the other list is in vendors.add (changes by Artem Jerdev)
|
||||
|
||||
; changed 15/01/2014:
|
||||
; typo fixes and new subclasses (changes by Sergey Kuzmin)
|
||||
|
||||
macro VendorID a,b { ; by mike.dld
|
||||
dw a
|
||||
dd _vtmp#a
|
||||
\iglobal
|
||||
_vtmp#a db b
|
||||
db 0
|
||||
\};endg
|
||||
}
|
||||
|
||||
macro ClassID a,b,c,d {
|
||||
db a
|
||||
db b
|
||||
local tt
|
||||
|
||||
if c eq
|
||||
db 0
|
||||
db 1
|
||||
tt = 'x'
|
||||
else
|
||||
db c
|
||||
db 0
|
||||
tt = c
|
||||
end if
|
||||
|
||||
dd _ctmp#a#b#tt
|
||||
\iglobal
|
||||
_ctmp#a#b#tt db d
|
||||
db 0
|
||||
\};endg
|
||||
}
|
||||
|
||||
;--------------------------------------
|
||||
; to build the full vendors list, include vendors.add
|
||||
; to the bottom of this section
|
||||
;
|
||||
VendorsTab:
|
||||
VendorID 0x0033, 'PARADYNE Corp.'
|
||||
VendorID 0x003D, 'Lockheed Martin Corp'
|
||||
VendorID 0x0E11, 'COMPAQ COMPUTER Corp.'
|
||||
VendorID 0x1000, 'SYMBIOS LOGIC Inc./LSI Logic'
|
||||
VendorID 0x1002, 'ATI TECHNOLOGIES Inc.'
|
||||
VendorID 0x100B, 'NATIONAL SEMICONDUCTOR Corp.'
|
||||
VendorID 0x100C, 'Tseng Labs'
|
||||
VendorID 0x100E, 'Weitek'
|
||||
VendorID 0x1010, 'VIDEO LOGIC Ltd.'
|
||||
VendorID 0x1011, 'Digital Equipment Corp.'
|
||||
VendorID 0x1013, 'Cirrus Logic'
|
||||
VendorID 0x1014, 'IBM'
|
||||
VendorID 0x101A, 'NCR Corp.'
|
||||
VendorID 0x101E, 'AMERICAN MEGATRENDS'
|
||||
VendorID 0x1020, 'HITACHI COMPUTER PRODUCTS'
|
||||
VendorID 0x1021, 'OKI ELECTRIC INDUSTRY Co., Ltd.'
|
||||
VendorID 0x1022, 'Advanced Micro Devices'
|
||||
VendorID 0x1023, 'TRIDENT MICROSYSTEMS'
|
||||
VendorID 0x1025, 'Acer Inc.'
|
||||
VendorID 0x1028, 'DELL COMPUTER Corp.'
|
||||
VendorID 0x102A, 'LSI LOGIC Corp.'
|
||||
VendorID 0x102B, 'MATROX GRAPHICS'
|
||||
VendorID 0x102F, 'TOSHIBA AMERICA'
|
||||
VendorID 0x1033, 'NEC Corp.'
|
||||
VendorID 0x1039, 'SILICON INTEGRATED SYSTEMS'
|
||||
VendorID 0x103C, 'Hewlett-Packard Company'
|
||||
VendorID 0x103F, 'SYNOPSYS/LOGIC MODELING GROUP'
|
||||
VendorID 0x1042, 'Micron Electronics'
|
||||
VendorID 0x1043, 'ASUSTEK COMPUTER'
|
||||
VendorID 0x104A, 'STMicroelectronics'
|
||||
VendorID 0x104B, 'Mylex/Buslogic'
|
||||
VendorID 0x104C, 'TEXAS INSTRUMENTS'
|
||||
VendorID 0x104D, 'SONY Corp.'
|
||||
VendorID 0x104E, 'Oak Technology'
|
||||
VendorID 0x1054, 'HITACHI'
|
||||
VendorID 0x1055, 'Standard Microsystems Corp.'
|
||||
VendorID 0x1057, 'Motorola'
|
||||
VendorID 0x1067, 'MITSUBISHI ELECTRIC AMERICA'
|
||||
VendorID 0x106B, 'APPLE COMPUTER Inc.'
|
||||
VendorID 0x106C, 'Hyundai Electronics America'
|
||||
VendorID 0x106D, 'SEQUENT COMPUTER SYSTEMS'
|
||||
VendorID 0x1070, 'DAEWOO TELECOM Ltd.'
|
||||
VendorID 0x1071, 'MITAC'
|
||||
VendorID 0x1073, 'YAMAHA Corp.'
|
||||
VendorID 0x1074, 'Nexgen Microsystems'
|
||||
VendorID 0x1076, 'Chaintech Comp.'
|
||||
VendorID 0x1077, 'QLOGIC Corp.'
|
||||
VendorID 0x1078, 'Cyrix Corp.'
|
||||
VendorID 0x1079, 'I-BUS'
|
||||
VendorID 0x107B, 'GATEWAY 2000'
|
||||
VendorID 0x107D, 'Leadtek Research'
|
||||
VendorID 0x107E, 'INTERPHASE Corp.'
|
||||
VendorID 0x107F, 'Data Technology Corp.'
|
||||
VendorID 0x1080, 'Cypress Semiconductor'
|
||||
VendorID 0x108E, 'Sun Microsystems'
|
||||
VendorID 0x1091, 'Intergraph Corp.'
|
||||
VendorID 0x1092, 'Diamond Computer Systems'
|
||||
VendorID 0x1093, 'National Instruments'
|
||||
VendorID 0x1095, 'SILICON IMAGE (WAS CMD TECHNOLOGY Inc.)'
|
||||
VendorID 0x10A9, 'SILICON GRAPHICS'
|
||||
VendorID 0x10AC, 'HONEYWELL IAC'
|
||||
VendorID 0x10AD, 'Winbond Systems Labs'
|
||||
VendorID 0x10AF, 'MICRO COMPUTER SYSTEMS Inc.'
|
||||
VendorID 0x10B5, 'PLX TECHNOLOGY.'
|
||||
VendorID 0x10B6, 'MADGE NETWORKS'
|
||||
VendorID 0x10B7, '3COM Corp, Networking Division'
|
||||
VendorID 0x10B8, 'Standard Microsystems Corp.'
|
||||
VendorID 0x10B9, 'Acer Labs Inc.'
|
||||
VendorID 0x10BA, 'MITSUBISHI ELECTRIC Corp.'
|
||||
VendorID 0x10BD, 'Surecom Technology'
|
||||
VendorID 0x10C2, 'AUSPEX SYSTEMS Inc.'
|
||||
VendorID 0x10C3, 'Samsung Semiconductors'
|
||||
VendorID 0x10C4, 'Award Software International Inc.'
|
||||
VendorID 0x10C8, 'NEOMAGIC Corp.'
|
||||
VendorID 0x10CA, 'FUJITSU MICROELECTRONIC'
|
||||
VendorID 0x10CB, 'OMRON Corp.'
|
||||
VendorID 0x10CD, 'ADVANCED SYSTEM PRODUCTS'
|
||||
VendorID 0x10CF, 'FUJITSU LIMITED'
|
||||
VendorID 0x10DE, 'NVIDIA Corp.'
|
||||
VendorID 0x10EC, 'REALTEK SEMICONDUCTOR Corp.'
|
||||
VendorID 0x11AD, 'LITE-ON COMMUNICATIONS Inc.'
|
||||
VendorID 0x10EE, 'XILINX'
|
||||
VendorID 0x1102, 'Creative Labs'
|
||||
VendorID 0x1105, 'SIGMA DESIGNS'
|
||||
VendorID 0x1106, 'VIA TECHNOLOGIES'
|
||||
VendorID 0x1114, 'Atmel Corp.'
|
||||
VendorID 0x1131, 'PHILIPS SEMICONDUCTORS'
|
||||
VendorID 0x1132, 'MITEL Corp.'
|
||||
VendorID 0x1133, 'Eicon Networks Corp.'
|
||||
VendorID 0x1134, 'MERCURY COMPUTER SYSTEMS'
|
||||
VendorID 0x1135, 'FUJI XEROX Co., Ltd.'
|
||||
VendorID 0x1137, 'CISCO SYSTEMS Inc.'
|
||||
VendorID 0x1179, 'TOSHIBA AMERICA INFO SYSTEMS'
|
||||
VendorID 0x1189, 'MATSUSHITA ELECTIC INDUSTRIAL Co., Ltd.'
|
||||
VendorID 0x11AA, 'ACTEL'
|
||||
VendorID 0x12D2, 'NVIDIA (WAS: STB,SGS THOMPSON)'
|
||||
VendorID 0x11AB, 'GALILEO TECHNOLOGY Ltd./Marvell Semiconductor, Inc.'
|
||||
VendorID 0x11B2, 'EASTMAN KODAK'
|
||||
VendorID 0x11C1, 'LSI Corp.'
|
||||
VendorID 0x11CA, 'LSI SYSTEMS'
|
||||
VendorID 0x11D0, 'LOCKHEED MARTIN-Electronics & Communications'
|
||||
VendorID 0x11D4, 'Analog Devices, Inc.'
|
||||
VendorID 0x11D9, 'TOSHIBA TEC Corp.'
|
||||
VendorID 0x11DA, 'NOVELL'
|
||||
VendorID 0x11DB, 'Sega Enterprises Ltd.'
|
||||
VendorID 0x119E, 'FUJITSU MICROELECTRONICS Ltd.'
|
||||
VendorID 0x11A1, 'HAMAMATSU PHOTONICS K.K.'
|
||||
VendorID 0x1217, 'O2Micro Inc.'
|
||||
VendorID 0x1234, 'Technical Corp.'
|
||||
VendorID 0x1250, 'Hitachi Microcomputer System Ltd.'
|
||||
VendorID 0x122D, 'Aztech System Ltd.'
|
||||
VendorID 0x1261, 'MATSUSHITA-KOTOBUKI ELECTRONICS'
|
||||
VendorID 0x1260, 'INTERSIL Corp.'
|
||||
VendorID 0x1274, 'Creative Labs (was Ensoniq, Malvern)'
|
||||
VendorID 0x12BF, 'Fujifilm Microdevices'
|
||||
VendorID 0x13B8, 'NOKIA TELECOMMUNICATIONS OY'
|
||||
VendorID 0x13BD, 'SHARP Corp.'
|
||||
VendorID 0x149A, 'ANDOR TECHNOLOGY Ltd.'
|
||||
VendorID 0x149B, 'SEIKO INSTRUMENTS Inc.'
|
||||
VendorID 0x14E4, 'Broadcom Corp.'
|
||||
VendorID 0x1521, 'BELL Corp.'
|
||||
VendorID 0x15AD, 'VMware Inc.'
|
||||
VendorID 0x15AE, 'AMERSHAM PHARMACIA BIOTECH'
|
||||
VendorID 0x1603, 'NOKIA WIRELESS BUSINESS COMMUNICATIONS'
|
||||
VendorID 0x167B, 'ZyDAS Technology Corp.'
|
||||
VendorID 0x168C, 'Atheros Communications Inc.'
|
||||
VendorID 0x17F3, 'RDC Semiconductor Co., Ltd.'
|
||||
VendorID 0x1814, 'Ralink Technology, Corp.'
|
||||
VendorID 0x1969, 'Atheros Communications Inc.'
|
||||
VendorID 0x197B, 'JMicron Technology Corp.'
|
||||
VendorID 0x1AF4, 'Red Hat, Inc.'
|
||||
VendorID 0x5333, 'S3 Graphics Co., Ltd.'
|
||||
VendorID 0x6409, 'LOGITEC Corp.'
|
||||
VendorID 0x8086, 'Intel Corp.'
|
||||
VendorID 0x80EE, 'Oracle Corp.'
|
||||
VendorID 0x8888, 'SILICON MAGIC Corp.'
|
||||
VendorID 0x9004, 'Adaptec Inc.'
|
||||
VendorID 0xA259, 'HEWLETT PACKARD'
|
||||
VendorID 0xCA50, 'VARIAN AUSTRIALIA PTY Ltd.'
|
||||
;include 'VENDORS.ADD' ; <-------- uncomment to insert the list of less known vendors
|
||||
VendorID 0, 'Unknown' ; <- terminator
|
||||
|
||||
;--------------------------------------
|
||||
Classes:
|
||||
; Class, Subclass, [Interface], Name
|
||||
ClassID 0, 0, , 'Prehistoric - misc'
|
||||
ClassID 0, 1, , 'Prehistoric - VGA'
|
||||
|
||||
ClassID 1, 0, , 'Storage - SCSI'
|
||||
ClassID 1, 1, , 'Storage - IDE' ; intrface may be 0x80, 0x85 & 0x8A
|
||||
ClassID 1, 1, 0x8A, 'Storage - IDE (prog. canals)'
|
||||
ClassID 1, 2, , 'Storage - Floppy'
|
||||
ClassID 1, 3, , 'Storage - IPI'
|
||||
ClassID 1, 4, , 'Storage - RAID'
|
||||
ClassID 1, 5, , 'Storage - ATA with DMA'
|
||||
ClassID 1, 5, 0x20, 'Storage - ATA c. w/ single DMA'
|
||||
ClassID 1, 5, 0x30, 'Storage - ATA c. w/ chained DMA'
|
||||
ClassID 1, 6, 0, 'Storage - Serial ATA - vendor sp.'
|
||||
ClassID 1, 6, 1, 'Storage - Serial ATA - AHCI 1.0'
|
||||
ClassID 1, 7, , 'Storage - SAS'
|
||||
ClassID 1, 8, , 'Storage - Non-Volatile MC'
|
||||
ClassID 1, 0x80, , 'Storage - misc'
|
||||
|
||||
ClassID 2, 0, , 'Network - Ethernet'
|
||||
ClassID 2, 1, , 'Network - Token Ring'
|
||||
ClassID 2, 2, , 'Network - FDDI'
|
||||
ClassID 2, 3, , 'Network - ATM'
|
||||
ClassID 2, 4, , 'Network - ISDN'
|
||||
ClassID 2, 5, , 'Network - WorldFip'
|
||||
ClassID 2, 6, , 'Network - PICMG 2.14'
|
||||
ClassID 2, 7, , 'Network - InfiniBand c.'
|
||||
ClassID 2, 0x80, , 'Network - misc'
|
||||
|
||||
ClassID 3, 0, , 'Display - VGA controller'
|
||||
ClassID 3, 0, 0, 'Display - VGA-compatible c.'
|
||||
ClassID 3, 0, 1, 'Display - 8514-compatible c.'
|
||||
ClassID 3, 1, , 'Display - XGA controller'
|
||||
ClassID 3, 2, , 'Display - 3D controller'
|
||||
ClassID 3, 0x80, , 'Display - misc'
|
||||
|
||||
ClassID 4, 0, , 'Multimedia - Video'
|
||||
ClassID 4, 1, , 'Multimedia - Audio'
|
||||
ClassID 4, 2, , 'Multimedia - Computer telephony'
|
||||
ClassID 4, 3, , 'Multimedia - High Definition Audio'
|
||||
ClassID 4, 0x80, , 'Multimedia - misc'
|
||||
|
||||
ClassID 5, 0, , 'Memory - RAM'
|
||||
ClassID 5, 1, , 'Memory - Flash memory'
|
||||
ClassID 5, 0x80, , 'Memory - misc'
|
||||
|
||||
ClassID 6, 0, , 'Bridge - CPU/PCI'
|
||||
ClassID 6, 1, , 'Bridge - PCI/ISA'
|
||||
ClassID 6, 2, , 'Bridge - PCI/EISA'
|
||||
ClassID 6, 3, , 'Bridge - PCI/MCA'
|
||||
ClassID 6, 4, , 'Bridge - PCI/PCI'
|
||||
ClassID 6, 4, 1, 'Bridge - Subtract.Decode PCI/PCI'
|
||||
ClassID 6, 5, , 'Bridge - PCMCIA'
|
||||
ClassID 6, 6, , 'Bridge - NuBus'
|
||||
ClassID 6, 7, , 'Bridge - CardBus'
|
||||
ClassID 6, 8, , 'Bridge - RACEway'
|
||||
ClassID 6, 9, , 'Bridge - Semi-transpar. PCI/PCI'
|
||||
ClassID 6, 9, 0x40, 'Bridge - Semi-transp. PCI/PCI 1'
|
||||
ClassID 6, 9, 0x80, 'Bridge - Semi-transp. PCI/PCI 2'
|
||||
ClassID 6, 0x0a, , 'Bridge - InfiniBand/PCI'
|
||||
ClassID 6, 0x80, , 'Bridge - misc'
|
||||
|
||||
ClassID 7, 0, , 'Communication - Serial'
|
||||
ClassID 7, 0, 0, 'Communication - Serial (XT)'
|
||||
ClassID 7, 0, 1, 'Communication - Serial c.(16450)'
|
||||
ClassID 7, 0, 2, 'Communication - Serial c.(16550)'
|
||||
ClassID 7, 0, 3, 'Communication - Serial c.(16650)'
|
||||
ClassID 7, 0, 4, 'Communication - Serial c.(16750)'
|
||||
ClassID 7, 0, 5, 'Communication - Serial c.(16850)'
|
||||
ClassID 7, 0, 6, 'Communication - Serial c.(16950)'
|
||||
ClassID 7, 1, , 'Communication - Parallel port'
|
||||
ClassID 7, 1, 1, 'Communication - Bi-dir. par.port'
|
||||
ClassID 7, 1, 2, 'Communication - ECP 1.X par.port'
|
||||
ClassID 7, 1, 3, 'Communication - IEEE1284 c.'
|
||||
ClassID 7, 1, 0xfe, 'Communication - IEEE1284 device'
|
||||
ClassID 7, 2, , 'Communication - Multiport Serial'
|
||||
ClassID 7, 3, , 'Communication - Modem'
|
||||
ClassID 7, 3, 0, 'Communication - Generic modem'
|
||||
ClassID 7, 3, 1, 'Communication - Hayes modem 16450'
|
||||
ClassID 7, 3, 2, 'Communication - Hayes modem 16550'
|
||||
ClassID 7, 3, 3, 'Communication - Hayes modem 16650'
|
||||
ClassID 7, 3, 4, 'Communication - Hayes modem 16750'
|
||||
ClassID 7, 4, , 'Communication - GPIB'
|
||||
ClassID 7, 5, , 'Communication - Smart Card'
|
||||
ClassID 7, 0x80, , 'Communication - misc'
|
||||
|
||||
ClassID 8, 0, , 'System - PIC'
|
||||
ClassID 8, 0, 0, 'System - Generic 8259 PIC'
|
||||
ClassID 8, 0, 1, 'System - ISA PIC'
|
||||
ClassID 8, 0, 2, 'System - EISA PIC'
|
||||
ClassID 8, 0, 0x10, 'System - I/O APIC interrupt c.'
|
||||
ClassID 8, 0, 0x20, 'System - I/O(x) APIC interrupt c'
|
||||
ClassID 8, 1, , 'System - DMAC'
|
||||
ClassID 8, 1, 0, 'System - Generic 8237 DMA c.'
|
||||
ClassID 8, 1, 1, 'System - ISA DMA c.'
|
||||
ClassID 8, 1, 2, 'System - EISA DMA c.'
|
||||
ClassID 8, 2, , 'System - Timer'
|
||||
ClassID 8, 2, 0, 'System - 8254 system timer'
|
||||
ClassID 8, 2, 1, 'System - ISA system timer'
|
||||
ClassID 8, 2, 2, 'System - EISA (2 system timers)'
|
||||
ClassID 8, 3, , 'System - RTC'
|
||||
ClassID 8, 3, 0, 'System - Generic RTC c.'
|
||||
ClassID 8, 3, 1, 'System - ISA RTC c.'
|
||||
ClassID 8, 4, , 'System - PCI Hot-Plug'
|
||||
ClassID 8, 5, , 'System - SDHCI'
|
||||
ClassID 8, 6, , 'System - IOMMU'
|
||||
ClassID 8, 0x80, , 'System - misc'
|
||||
|
||||
ClassID 9, 0, , 'Input - Keyboard'
|
||||
ClassID 9, 1, , 'Input - Digitazer (pen)'
|
||||
ClassID 9, 2, , 'Input - Mouse'
|
||||
ClassID 9, 3, , 'Input - Scanner'
|
||||
ClassID 9, 4, , 'Input - Gameport'
|
||||
ClassID 9, 4, 0, 'Input - Gameport c. (generic)'
|
||||
ClassID 9, 4, 0x10, 'Input - Gameport c. (legacy)'
|
||||
ClassID 9, 0x80, , 'Input - misc'
|
||||
|
||||
ClassID 0x0a, 0, , 'Docking - Generic station'
|
||||
ClassID 0x0a, 0x80, , 'Docking - misc'
|
||||
|
||||
ClassID 0x0b, 0, , 'Processor - 386'
|
||||
ClassID 0x0b, 1, , 'Processor - 486'
|
||||
ClassID 0x0b, 2, , 'Processor - Pentium'
|
||||
; ClassID 0x0b, 0x10, , 'Processor - Alpha' ;
|
||||
; ClassID 0x0b, 0x20, , 'Processor - PowerPC' ; it`s realy need for PCIDEV???
|
||||
; ClassID 0x0b, 0x30, , 'Processor - MIPS' ;
|
||||
ClassID 0x0b, 0x40, , 'Processor - Co-processor'
|
||||
|
||||
ClassID 0x0c, 0, , 'Serial Bus - FireWire'
|
||||
ClassID 0x0c, 0, 0, 'Serial Bus - IEEE 1394(FireWire)'
|
||||
ClassID 0x0c, 0, 0x10, 'Serial Bus - IEEE 1394(Open HCI)'
|
||||
ClassID 0x0c, 1, , 'Serial Bus - ACCESS.bus'
|
||||
ClassID 0x0c, 2, , 'Serial Bus - SSA'
|
||||
ClassID 0x0c, 3, , 'Serial Bus - USB/USB2'
|
||||
ClassID 0x0c, 3, 0, 'Serial Bus - USB Universal HC'
|
||||
ClassID 0x0c, 3, 0x10, 'Serial Bus - USB Open HC'
|
||||
ClassID 0x0c, 3, 0x20, 'Serial Bus - USB2 Enhanced HC'
|
||||
ClassID 0x0c, 3, 0x80, 'Serial Bus - USB w/o specific PI'
|
||||
ClassID 0x0c, 3, 0xfe, 'Serial Bus - USB device (not HC)'
|
||||
ClassID 0x0c, 4, , 'Serial Bus - Fibre Channel'
|
||||
ClassID 0x0c, 5, , 'Serial Bus - SMBus'
|
||||
ClassID 0x0c, 6, , 'Serial Bus - InfiniBand'
|
||||
ClassID 0x0c, 7, , 'Serial Bus - IPMI'
|
||||
ClassID 0x0c, 7, 0, 'Serial Bus - IPMI SMIC I.'
|
||||
ClassID 0x0c, 7, 1, 'Serial Bus - IPMI Kybd CSI'
|
||||
ClassID 0x0c, 7, 2, 'Serial Bus - IPMI BTI'
|
||||
ClassID 0x0c, 8, , 'Serial Bus - SERCOS'
|
||||
ClassID 0x0c, 9, , 'Serial Bus - CANbus'
|
||||
|
||||
ClassID 0x0d, 0, , 'Wireless - iRDA'
|
||||
ClassID 0x0d, 1, , 'Wireless - Consumer IR'
|
||||
ClassID 0x0d, 0x10, , 'Wireless - RF'
|
||||
ClassID 0x0d, 0x11, , 'Wireless - Bluetooth'
|
||||
ClassID 0x0d, 0x12, , 'Wireless - Broadband'
|
||||
ClassID 0x0d, 0x20, , 'Wireless - Ethernet (802.11a)'
|
||||
ClassID 0x0d, 0x21, , 'Wireless - Ethernet (802.11b)'
|
||||
ClassID 0x0d, 0x80, , 'Wireless - misc'
|
||||
|
||||
ClassID 0x0e, 0, , 'Intelligent I/O - c.(FIFO @ 40h)'
|
||||
ClassID 0x0e, 0, 0, 'Intelligent I/O - I/O c. (I2O 1)'
|
||||
|
||||
ClassID 0x0f, 1, , 'Satellite Communication - TV'
|
||||
ClassID 0x0f, 2, , 'Satellite Communication - Audio'
|
||||
ClassID 0x0f, 3, , 'Satellite Communication - Voice'
|
||||
ClassID 0x0f, 4, , 'Satellite Communication - Data'
|
||||
|
||||
ClassID 0x10, 0, , 'En/Decryption - Network&comput.'
|
||||
ClassID 0x10, 0x10, , 'En/Decryption - Entertainment' ; 0x10, 0x01,, ???
|
||||
ClassID 0x10, 0x80, , 'En/Decryption - misc'
|
||||
|
||||
ClassID 0x11, 0, , 'DSP - DPIO modules'
|
||||
ClassID 0x11, 1, , 'DSP - Performance counters'
|
||||
ClassID 0x11, 0x10, , 'DSP - Sync./Test/Measurement'
|
||||
ClassID 0x11, 0x20, , 'DSP - Management card'
|
||||
ClassID 0x11, 0x80, , 'DSP - misc'
|
||||
|
||||
ClassID 0xff, 0xff, , 'Unknown' ; <- terminator
|