forked from KolibriOS/kolibrios
added codename, extended features, merged older version of CPUID.
git-svn-id: svn://kolibrios.org@6483 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
b7abf42dc1
commit
ca53e0b2fe
@ -1,6 +1,2 @@
|
|||||||
@erase lang.inc
|
fasm cpuid.asm cpuid
|
||||||
@echo lang fix en >lang.inc
|
pause
|
||||||
@fasm -m 16384 cpuid.asm cpuid
|
|
||||||
@erase lang.inc
|
|
||||||
@kpack cpuid
|
|
||||||
@pause
|
|
File diff suppressed because it is too large
Load Diff
@ -3,8 +3,8 @@
|
|||||||
; target platform: KolibriOS, x86 (IA-32), x86-64 achitectures
|
; 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
|
; 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
|
; compiler: flat assembler 1.70.03
|
||||||
; version: 2.28
|
; version: 2.29
|
||||||
; last update: 23rd October 2013
|
; last update: 12 October 2014
|
||||||
; maintained by: Sergey Kuzmin aka Wildwest
|
; maintained by: Sergey Kuzmin aka Wildwest
|
||||||
; e-mail: kuzmin_serg@list.ru
|
; e-mail: kuzmin_serg@list.ru
|
||||||
; site: http://coolthemes.narod.ru/files.html
|
; site: http://coolthemes.narod.ru/files.html
|
||||||
@ -37,7 +37,7 @@
|
|||||||
; improve support of Vortex86
|
; improve support of Vortex86
|
||||||
;******************************************************************************
|
;******************************************************************************
|
||||||
;HISTORY:
|
;HISTORY:
|
||||||
;2.3: CPUID 23/10/2013 (not finished)
|
;2.3: CPUID 12/10/2014 (not finished)
|
||||||
;Authors: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
;Authors: Sergey Kuzmin aka Wildwest <kuzmin_serg@list.ru>
|
||||||
; Pavel Rymovskiy aka Heavyiron <Heavyiron@pisem.net>
|
; Pavel Rymovskiy aka Heavyiron <Heavyiron@pisem.net>
|
||||||
; fedesco
|
; fedesco
|
||||||
@ -50,6 +50,7 @@
|
|||||||
; (+) new cache descriptors for Intel;
|
; (+) 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 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;
|
; (+) 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
|
;Known issues: Sempron marked as AthlonXP
|
||||||
; second window doesn't closed when you close main window
|
; second window doesn't closed when you close main window
|
||||||
; incorrect multiplier detection for newest CPU
|
; incorrect multiplier detection for newest CPU
|
||||||
|
@ -5,7 +5,7 @@ ENGLISH
|
|||||||
Hi! My name is Sergey Kuzmin aka Wildwest.
|
Hi! My name is Sergey Kuzmin aka Wildwest.
|
||||||
This is one of the mostly famous program for KolibriOS/MenuetOS.
|
This is one of the mostly famous program for KolibriOS/MenuetOS.
|
||||||
I called it CPUID. CPUID talks with you CPU and show log.
|
I called it CPUID. CPUID talks with you CPU and show log.
|
||||||
Current version is 2.28 and you can use it on your own risk without any warranty.
|
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.
|
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.
|
All righs on this program are mine, except parts of code written by other developers.
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ RUSSIAN
|
|||||||
Привет! Меня зовут Сергей Кузьмин aka Wildwest.
|
Привет! Меня зовут Сергей Кузьмин aka Wildwest.
|
||||||
Это одна из самых известных программ для KolibriOS/MenuetOS.
|
Это одна из самых известных программ для KolibriOS/MenuetOS.
|
||||||
Она называется CPUID и показывает результаты идентификации процессора.
|
Она называется CPUID и показывает результаты идентификации процессора.
|
||||||
Это версия 2.28 и ВЫ можете её использовать на свой собственный риск безо всяких гарантий.
|
Это версия 2.29 и ВЫ можете её использовать на свой собственный риск безо всяких гарантий.
|
||||||
Если будут какие-то проблемы или предложения, то напишите мне (kuzmin_serg@list.ru).
|
Если будут какие-то проблемы или предложения, то напишите мне (kuzmin_serg@list.ru).
|
||||||
Все права на программу принадлежат мне, кроме прав на части, написанных остальными разработчиками.
|
Все права на программу принадлежат мне, кроме прав на части, написанных остальными разработчиками.
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -158,7 +158,7 @@ noAMDK6:cmp byte [f], 6
|
|||||||
and edx, 6 ; voltage ID control & frequency ID control
|
and edx, 6 ; voltage ID control & frequency ID control
|
||||||
cmp edx, 6
|
cmp edx, 6
|
||||||
je AMDK7M
|
je AMDK7M
|
||||||
@@: mov eax, 68 ; Athlon/AthlonXP
|
@@: mov eax, 68 ; Athlon/AthlonXP
|
||||||
mov ebx, 3
|
mov ebx, 3
|
||||||
mov edx, 0x0C0010015
|
mov edx, 0x0C0010015
|
||||||
mcall
|
mcall
|
||||||
@ -171,7 +171,7 @@ noAMDK6:cmp byte [f], 6
|
|||||||
@@: mov cl, [athloncoef + ebx]
|
@@: mov cl, [athloncoef + ebx]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
AMDK7M: mov eax, 68 ; AthonXP-M
|
AMDK7M: mov eax, 68 ; AthonXP-M
|
||||||
mov ebx, 3
|
mov ebx, 3
|
||||||
mov edx, 0xC0010042
|
mov edx, 0xC0010042
|
||||||
mcall
|
mcall
|
||||||
@ -186,7 +186,7 @@ noAMDK7:cmp byte [f], 0xF
|
|||||||
and edx, 6 ; voltage ID control & frequency ID control
|
and edx, 6 ; voltage ID control & frequency ID control
|
||||||
cmp edx, 6
|
cmp edx, 6
|
||||||
je AMDK8M
|
je AMDK8M
|
||||||
mov eax, 68 ; Athon64
|
mov eax, 68 ; Athon64
|
||||||
mov ebx, 3
|
mov ebx, 3
|
||||||
mov edx, 0xC0010015
|
mov edx, 0xC0010015
|
||||||
mcall
|
mcall
|
||||||
@ -199,7 +199,7 @@ noAMDK7:cmp byte [f], 0xF
|
|||||||
mov cl, al
|
mov cl, al
|
||||||
ret
|
ret
|
||||||
|
|
||||||
AMDK8M: mov eax, 68 ; Athon64-M
|
AMDK8M: mov eax, 68 ; Athon64-M
|
||||||
mov ebx, 3
|
mov ebx, 3
|
||||||
mov edx, 0xC0010042
|
mov edx, 0xC0010042
|
||||||
mcall
|
mcall
|
||||||
@ -217,7 +217,7 @@ noAMD: cmp dword [smallvendor], 'ntel' ; Check for International Electronics CPU
|
|||||||
jne noIntelP4
|
jne noIntelP4
|
||||||
cmp byte [t], 6
|
cmp byte [t], 6
|
||||||
jne @f
|
jne @f
|
||||||
mov eax, 68 ; Pentium M
|
mov eax, 68 ; Pentium M
|
||||||
mov ebx, 3
|
mov ebx, 3
|
||||||
mov edx, 0x2A
|
mov edx, 0x2A
|
||||||
mcall
|
mcall
|
||||||
@ -229,7 +229,7 @@ noAMD: cmp dword [smallvendor], 'ntel' ; Check for International Electronics CPU
|
|||||||
ret
|
ret
|
||||||
@@: cmp byte [m], 2
|
@@: cmp byte [m], 2
|
||||||
jae @f
|
jae @f
|
||||||
mov eax, 68 ; Pentium 4 / Xeon (model < 2) Willamete
|
mov eax, 68 ; Pentium 4 / Xeon (model < 2) Willamete
|
||||||
mov ebx, 3
|
mov ebx, 3
|
||||||
mov edx, 0x2A
|
mov edx, 0x2A
|
||||||
mcall
|
mcall
|
||||||
@ -237,7 +237,7 @@ noAMD: cmp dword [smallvendor], 'ntel' ; Check for International Electronics CPU
|
|||||||
and eax, 0x0F
|
and eax, 0x0F
|
||||||
mov cl, [p4coef + eax]
|
mov cl, [p4coef + eax]
|
||||||
ret
|
ret
|
||||||
@@: mov eax, 68 ; Pentium 4 / Xeon (model >= 2) NorthWood
|
@@: mov eax, 68 ; Pentium 4 / Xeon (model >= 2) NorthWood
|
||||||
mov ebx, 3
|
mov ebx, 3
|
||||||
mov edx, 0x2C
|
mov edx, 0x2C
|
||||||
mcall
|
mcall
|
||||||
@ -250,7 +250,26 @@ noAMD: cmp dword [smallvendor], 'ntel' ; Check for International Electronics CPU
|
|||||||
noIntelP4:
|
noIntelP4:
|
||||||
cmp byte[f], 6
|
cmp byte[f], 6
|
||||||
jne noIntelP6
|
jne noIntelP6
|
||||||
mov eax, 68 ; Pentium Pro / Pentium II / Pentium III
|
;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 ebx, 3
|
||||||
mov edx, 0x2A
|
mov edx, 0x2A
|
||||||
mcall
|
mcall
|
||||||
@ -280,4 +299,6 @@ noIntelP4:
|
|||||||
noIntel:
|
noIntel:
|
||||||
noIntelP6:
|
noIntelP6:
|
||||||
noAMDK8:
|
noAMDK8:
|
||||||
|
newCPU:
|
||||||
|
mov [nomultiplier], 1
|
||||||
ret
|
ret
|
@ -100,232 +100,232 @@ brand17len:
|
|||||||
;features
|
;features
|
||||||
|
|
||||||
FPU:
|
FPU:
|
||||||
db 'FPU: '
|
db 'FPU: ',0
|
||||||
FPUlen:
|
FPUlen:
|
||||||
|
|
||||||
VME:
|
VME:
|
||||||
db 'VME: '
|
db 'VME: ',0
|
||||||
VMElen:
|
VMElen:
|
||||||
|
|
||||||
DE:
|
DE:
|
||||||
db 'DE: '
|
db 'DE: ',0
|
||||||
DElen:
|
DElen:
|
||||||
|
|
||||||
PSE:
|
PSE:
|
||||||
db 'PSE: '
|
db 'PSE: ',0
|
||||||
PSElen:
|
PSElen:
|
||||||
|
|
||||||
TSC:
|
TSC:
|
||||||
db 'TSC: '
|
db 'TSC: ',0
|
||||||
TSClen:
|
TSClen:
|
||||||
|
|
||||||
MSR:
|
MSR:
|
||||||
db 'MSR: '
|
db 'MSR: ',0
|
||||||
MSRlen:
|
MSRlen:
|
||||||
|
|
||||||
PAE:
|
PAE:
|
||||||
db 'PAE: '
|
db 'PAE: ',0
|
||||||
PAElen:
|
PAElen:
|
||||||
|
|
||||||
MCE:
|
MCE:
|
||||||
db 'MCE: '
|
db 'MCE: ',0
|
||||||
MCElen:
|
MCElen:
|
||||||
|
|
||||||
CX8:
|
CX8:
|
||||||
db 'CX8: '
|
db 'CX8: ',0
|
||||||
CX8len:
|
CX8len:
|
||||||
|
|
||||||
APIC:
|
APIC:
|
||||||
db 'APIC: '
|
db 'APIC: ',0
|
||||||
APIClen:
|
APIClen:
|
||||||
|
|
||||||
SEP:
|
SEP:
|
||||||
db 'SEP: '
|
db 'SEP: ',0
|
||||||
SEPlen:
|
SEPlen:
|
||||||
|
|
||||||
MTRR:
|
MTRR:
|
||||||
db 'MTRR: '
|
db 'MTRR: ',0
|
||||||
MTRRlen:
|
MTRRlen:
|
||||||
|
|
||||||
PGE:
|
PGE:
|
||||||
db 'PGE: '
|
db 'PGE: ',0
|
||||||
PGElen:
|
PGElen:
|
||||||
|
|
||||||
MCA:
|
MCA:
|
||||||
db 'MCA: '
|
db 'MCA: ',0
|
||||||
MCAlen:
|
MCAlen:
|
||||||
|
|
||||||
CMOV:
|
CMOV:
|
||||||
db 'CMOV: '
|
db 'CMOV: ',0
|
||||||
CMOVlen:
|
CMOVlen:
|
||||||
|
|
||||||
PAT:
|
PAT:
|
||||||
db 'PAT: '
|
db 'PAT: ',0
|
||||||
PATlen:
|
PATlen:
|
||||||
|
|
||||||
PSE36:
|
PSE36:
|
||||||
db 'PSE36: '
|
db 'PSE36: ',0
|
||||||
PSE36len:
|
PSE36len:
|
||||||
|
|
||||||
PSNUM:
|
PSNUM:
|
||||||
db 'PSNUM: '
|
db 'PSNUM: ',0
|
||||||
PSNUMlen:
|
PSNUMlen:
|
||||||
|
|
||||||
CLFLUSHn:
|
CLFLUSHn:
|
||||||
db 'CLFLSH: '
|
db 'CLFLSH: ',0
|
||||||
CLFLUSHnlen:
|
CLFLUSHnlen:
|
||||||
|
|
||||||
DTS:
|
DTS:
|
||||||
db 'DTS: '
|
db 'DTS: ',0
|
||||||
DTSlen:
|
DTSlen:
|
||||||
|
|
||||||
ACPI:
|
ACPI:
|
||||||
db 'ACPI: '
|
db 'ACPI: ',0
|
||||||
ACPIlen:
|
ACPIlen:
|
||||||
|
|
||||||
MMX:
|
MMX:
|
||||||
db 'MMX: '
|
db 'MMX: ',0
|
||||||
MMXlen:
|
MMXlen:
|
||||||
|
|
||||||
FXSR:
|
FXSR:
|
||||||
db 'FXSR: '
|
db 'FXSR: ',0
|
||||||
FXSRlen:
|
FXSRlen:
|
||||||
|
|
||||||
SSE:
|
SSE:
|
||||||
db 'SSE: '
|
db 'SSE: ',0
|
||||||
SSElen:
|
SSElen:
|
||||||
|
|
||||||
SSE2:
|
SSE2:
|
||||||
db 'SSE2: '
|
db 'SSE2: ',0
|
||||||
SSE2len:
|
SSE2len:
|
||||||
|
|
||||||
SSn:
|
SSn:
|
||||||
db 'SS: '
|
db 'SS: ',0
|
||||||
SSnlen:
|
SSnlen:
|
||||||
|
|
||||||
TM:
|
TM:
|
||||||
db 'TM: '
|
db 'TM: ',0
|
||||||
TMlen:
|
TMlen:
|
||||||
|
|
||||||
IA64:
|
IA64:
|
||||||
db 'IA64: '
|
db 'IA64: ',0
|
||||||
IA64len:
|
IA64len:
|
||||||
|
|
||||||
PBE:
|
PBE:
|
||||||
db 'PBE: '
|
db 'PBE: ',0
|
||||||
PBElen:
|
PBElen:
|
||||||
|
|
||||||
Res:
|
Res:
|
||||||
db 'Reserved'
|
db 'Reserved',0
|
||||||
Reslen:
|
Reslen:
|
||||||
|
|
||||||
;Extended
|
;Extended
|
||||||
|
|
||||||
SS3:
|
SS3:
|
||||||
db 'SSE3: '
|
db 'SSE3: ',0
|
||||||
SS3len:
|
SS3len:
|
||||||
|
|
||||||
MON:
|
MON:
|
||||||
db 'MON: '
|
db 'MON: ',0
|
||||||
MONlen:
|
MONlen:
|
||||||
|
|
||||||
DS_CPL:
|
DS_CPL:
|
||||||
db 'DS-CPL: '
|
db 'DS-CPL: ',0
|
||||||
DS_CPLlen:
|
DS_CPLlen:
|
||||||
|
|
||||||
EST:
|
EST:
|
||||||
db 'EST: '
|
db 'EST: ',0
|
||||||
ESTlen:
|
ESTlen:
|
||||||
|
|
||||||
TM2:
|
TM2:
|
||||||
db 'TM2: '
|
db 'TM2: ',0
|
||||||
TM2len:
|
TM2len:
|
||||||
|
|
||||||
CNXT_ID:
|
CNXT_ID:
|
||||||
db 'CNXT-ID: '
|
db 'CNXT-ID: ',0
|
||||||
CNXT_IDlen:
|
CNXT_IDlen:
|
||||||
|
|
||||||
CX16:
|
CX16:
|
||||||
db 'CX16: '
|
db 'CX16: ',0
|
||||||
CX16len:
|
CX16len:
|
||||||
|
|
||||||
ETPRD:
|
ETPRD:
|
||||||
db 'xTPR/ETPRD: ' ; xTPR
|
db 'xTPR/ETPRD: ',0 ; xTPR
|
||||||
ETPRDlen:
|
ETPRDlen:
|
||||||
|
|
||||||
;Extended2
|
;Extended2
|
||||||
|
|
||||||
SYS:
|
SYS:
|
||||||
db 'SYSCALL: '
|
db 'SYSCALL: ',0
|
||||||
SYSlen:
|
SYSlen:
|
||||||
|
|
||||||
MP:
|
MP:
|
||||||
db 'MP: '
|
db 'MP: ',0
|
||||||
MPlen:
|
MPlen:
|
||||||
|
|
||||||
NX:
|
NX:
|
||||||
db 'NX/XD: '
|
db 'NX/XD: ',0
|
||||||
NXlen:
|
NXlen:
|
||||||
|
|
||||||
MMXPi:
|
MMXPi:
|
||||||
db 'MMX+: '
|
db 'MMX+: ',0
|
||||||
MMXPilen:
|
MMXPilen:
|
||||||
|
|
||||||
MMXn:
|
MMXn:
|
||||||
db 'MMX: '
|
db 'MMX: ',0
|
||||||
MMXnlen:
|
MMXnlen:
|
||||||
|
|
||||||
FXSRn:
|
FXSRn:
|
||||||
db 'FXSR: '
|
db 'FXSR: ',0
|
||||||
FXSRnlen:
|
FXSRnlen:
|
||||||
|
|
||||||
FFXSR:
|
FFXSR:
|
||||||
db 'FFXSR: '
|
db 'FFXSR: ',0
|
||||||
FFXSRlen:
|
FFXSRlen:
|
||||||
|
|
||||||
TSCP:
|
TSCP:
|
||||||
db 'TSCP: '
|
db 'TSCP: ',0
|
||||||
TSCPlen:
|
TSCPlen:
|
||||||
|
|
||||||
LM:
|
LM:
|
||||||
db 'EM64T/LM: ' ; AA64
|
db 'EM64T/LM: ',0 ; AA64
|
||||||
LMlen:
|
LMlen:
|
||||||
|
|
||||||
DNo:
|
DNo:
|
||||||
db '3DNow!+: '
|
db '3DNow!+: ',0
|
||||||
DNolen:
|
DNolen:
|
||||||
|
|
||||||
DN:
|
DN:
|
||||||
db '3DNow!: '
|
db '3DNow!: ',0
|
||||||
DNlen:
|
DNlen:
|
||||||
|
|
||||||
LAF:
|
LAF:
|
||||||
db 'LAHF: '
|
db 'LAHF: ',0
|
||||||
LAFlen:
|
LAFlen:
|
||||||
|
|
||||||
VMX:
|
VMX:
|
||||||
db 'VMX: '
|
db 'VMX: ',0
|
||||||
VMXlen:
|
VMXlen:
|
||||||
|
|
||||||
SSSE3:
|
SSSE3:
|
||||||
db 'SSSE3: '
|
db 'SSSE3: ',0
|
||||||
SSSE3len:
|
SSSE3len:
|
||||||
|
|
||||||
DCA:
|
DCA:
|
||||||
db 'DCA: '
|
db 'DCA: ',0
|
||||||
DCAlen:
|
DCAlen:
|
||||||
|
|
||||||
|
|
||||||
MCR8:
|
MCR8:
|
||||||
db 'MCR8: '
|
db 'MCR8: ',0
|
||||||
MCR8len:
|
MCR8len:
|
||||||
|
|
||||||
SVM:
|
SVM:
|
||||||
db 'SVM: '
|
db 'SVM: ',0
|
||||||
SVMlen:
|
SVMlen:
|
||||||
|
|
||||||
CMPL:
|
CMPL:
|
||||||
db 'CMPL: '
|
db 'CMPL: ',0
|
||||||
CMPLlen:
|
CMPLlen:
|
||||||
;================================
|
;================================
|
||||||
abrand00:
|
abrand00:
|
||||||
@ -343,5 +343,13 @@ abrand1len:
|
|||||||
abrand2:
|
abrand2:
|
||||||
db 'AMD Opteron MP'
|
db 'AMD Opteron MP'
|
||||||
abrand2len:
|
abrand2len:
|
||||||
|
;=====================================
|
||||||
|
multi0:
|
||||||
|
db 'n/a'
|
||||||
|
multi0len:
|
||||||
|
|
||||||
|
;=====================================
|
||||||
|
clock0:
|
||||||
|
db 'n/a'
|
||||||
|
clock0len:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user