2,12 → 2,12 |
; project name: CPUID * |
; platform: KolibriOS, x86 (IA-32), x86-64 achitectures * |
; compiler: flat assembler 1.70.03 * |
; version: 2.29 * |
; last update: 12 October 2014 * |
; version: 2.31 * |
; last update: 9 October 2018 * |
; maintained by: Sergey Kuzmin aka Wildwest * |
; e-mail: kuzmin_serg@list.ru * |
; site: http://coolthemes.narod.ru/files.html * |
; license: Copyright 2004-2014 Sergey Kuzmin and co-authors * |
; license: Copyright 2004-2018 Sergey Kuzmin and co-authors * |
; Rules: * |
; 1)you can use pieces of code in your project, but should * |
; mention the original author (include copyright notice); * |
30,6 → 30,8 |
|
include '..\..\..\develop\libraries\box_lib\load_lib.mac' |
include '..\..\..\macros.inc' |
include '../../../gui_patterns.inc' |
include '../../../KOSfuncs.inc' |
include 'lang.inc' |
include 'draw.inc' |
include 'brand.inc' ; brand ID decoding |
46,6 → 48,7 |
START: |
mcall 68,11 |
mcall 66,1,1 |
mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, sc, sizeof.system_colors |
|
load_libraries l_libs_start,end_l_libs |
;----------------------------------------------------------------------------- |
273,6 → 276,7 |
jmp red |
|
.noname: |
|
red: |
|
;mov byte [multiplier], 115; ; for testing |
519,7 → 523,7 |
jz A8 |
jmp AA |
@@: |
Text 100,70,0x80000000 |
mov [cname], edx |
jmp MMXtest |
A6: |
;mov [FRS], 266 ;!!!!!! |
888,7 → 892,7 |
cmp [m],$8 |
jz .I8 |
.I0: |
Text 110,70,0x00000000,P50, P50len-P50 |
mov [cname], P50 |
mov esi, P50 |
mov edi, saveproc + 0x6 |
call concatname |
898,7 → 902,7 |
mov [micron], 80 |
jmp MMXtest |
.I1: |
Text 110,70,0x00000000,P5, P5len-P5 |
mov [cname], P5 |
mov esi, P5 |
mov edi, saveproc + 0x6 |
call concatname |
909,7 → 913,7 |
jmp MMXtest |
|
.I2: |
Text 110,70,0x00000000,P54C, P54Clen-P54C |
mov [cname], P54C |
mov esi, P54C |
mov edi, saveproc + 0x6 |
call concatname |
920,7 → 924,7 |
jmp MMXtest |
|
.I3: |
Text 110,70,0x00000000,P54T, P54Tlen-P54T |
mov [cname], P54T |
mov esi, P54T |
mov edi, saveproc + 0x6 |
call concatname |
931,7 → 935,7 |
jmp MMXtest |
|
.I4: |
Text 110,70,0x00000000,P55C, P55Clen-P55C |
mov [cname], P55C |
mov esi, P55C |
mov edi, saveproc + 0x6 |
call concatname |
943,7 → 947,7 |
|
|
.I7: |
Text 110,70,0x00000000,P54C, P54Clen-P54C |
mov [cname], P54C |
mov esi, P54C |
mov edi, saveproc + 0x6 |
call concatname |
954,7 → 958,7 |
jmp MMXtest |
|
.I8: |
Text 110,70,0x00000000,P55C, P55Clen-P55C |
mov [cname], P55C |
mov esi, P55C |
mov edi, saveproc + 0x6 |
call concatname |
998,7 → 1002,7 |
jz .I6F |
.I60: |
mov [micron], 50 |
Text 110,70,0x00000000,P60, P60len-P60 |
mov [cname], P60 |
mov esi, P60 |
mov edi, saveproc + 0x6 |
call concatname |
1006,7 → 1010,7 |
|
.I61: |
mov [micron], 35 |
Text 110,70,0x00000000,P61, P61len-P61 |
mov [cname], P61 |
mov esi, P61 |
mov edi, saveproc + 0x6 |
call concatname |
1014,7 → 1018,7 |
|
.I63: |
mov [micron], 28 |
Text 110,70,0x00000000,P63, P63len-P63 |
mov [cname], P63 |
mov esi, P63 |
mov edi, saveproc + 0x6 |
call concatname |
1024,7 → 1028,7 |
mov [micron], 25 |
cmp [L2], 0 |
jne .pp65 ; Pentium |
Text 110,70,0x00000000,P65c, P65clen-P65c |
mov [cname], P65c |
mov esi, P65c |
mov edi, saveproc + 0x6 |
call concatname |
1031,7 → 1035,7 |
jmp MMXtest |
|
.pp65: |
Text 110,70,0x00000000,P65, P65len-P65 |
mov [cname], P65 |
mov esi, P65 |
mov edi, saveproc + 0x6 |
call concatname |
1038,7 → 1042,7 |
jmp MMXtest |
.I66: |
mov [micron], 25 |
Text 110,70,0x00000000,P66, P66len-P66 |
mov [cname], P66 |
mov esi, P66 |
mov edi, saveproc + 0x6 |
call concatname |
1045,7 → 1049,8 |
jmp MMXtest |
.I67: |
mov [micron], 25 |
Text 110,70,0x00000000,P67, P67len-P67 ;but if SSE4.1 supported then it is Intel Core (Penryn) |
;but if SSE4.1 supported then it is Intel Core (Penryn) |
mov [cname], P67 |
mov esi, P67 |
mov edi, saveproc + 0x6 |
call concatname |
1055,7 → 1060,7 |
mov [micron], 18 |
cmp [L2], 128 |
jne .pp68 ; Pentium |
Text 110,70,0x00000000,P68c, P68clen-P68c |
mov [cname], P68c |
mov esi, P68c |
mov edi, saveproc + 0x6 |
call concatname |
1062,7 → 1067,7 |
jmp MMXtest |
|
.pp68: |
Text 110,70,0x00000000,P68, P68len-P68 |
mov [cname], P68 |
mov esi, P68 |
mov edi, saveproc + 0x6 |
call concatname |
1070,7 → 1075,7 |
|
.I69: |
mov [micron], 13 |
Text 110,70,0x00000000,P69 , P69len-P69 |
mov [cname], P69 |
mov esi, P69 |
mov edi, saveproc + 0x6 |
call concatname |
1078,7 → 1083,8 |
|
.I6A: |
mov [micron], 18 |
Text 110,70,0x00000000,P6A, P6Alen-P6A ;but if SSE4.2 supported then it is Intel Core (Nehalem) |
;but if SSE4.2 supported then it is Intel Core (Nehalem) |
mov [cname], P6A |
mov esi, P6A |
mov edi, saveproc + 0x6 |
call concatname |
1088,7 → 1094,7 |
mov [micron], 13 |
cmp [L2], 256 |
jne .pp6B ; Pentium |
Text 110,70,0x00000000,P6Bc, P6Bclen-P6Bc |
mov [cname], P6Bc |
mov esi, P6Bc |
mov edi, saveproc + 0x6 |
call concatname |
1095,7 → 1101,7 |
jmp MMXtest |
|
.pp6B: |
Text 110,70,0x00000000,P6B, P6Blen-P6B |
mov [cname], P6B |
mov esi, P6B |
mov edi, saveproc + 0x6 |
call concatname |
1103,7 → 1109,7 |
|
.I6D: |
mov [micron], 9 |
Text 110,70,0x00000000,P6D, P6Dlen-P6D |
mov [cname], P6D |
mov esi, P6D |
mov edi, saveproc + 0x6 |
call concatname |
1111,7 → 1117,7 |
|
.I6E: |
mov [micron], 6 |
Text 110,70,0x00000000,P6E, P6Elen-P6E |
mov [cname], P6E |
mov esi, P6E |
mov edi, saveproc + 0x6 |
call concatname |
1119,7 → 1125,7 |
|
.I6F: |
mov [micron], 6 |
Text 110,70,0x00000000,P6F, P6Flen-P6F |
mov [cname], P6F |
mov esi, P6F |
mov edi, saveproc + 0x6 |
call concatname |
1177,7 → 1183,6 |
|
I3A: |
mov [micron], 32 |
;Text 110,70,0x00000000,P3A, P3Alen-P3A |
mov [cname], P3A |
mov esi, P3A |
mov edi, saveproc + 0x10 |
1186,7 → 1191,6 |
|
I2A: |
mov [micron], 32 |
;Text 110,70,0x00000000,P2A, P2Alen-P2A |
mov [cname], P2A |
mov esi, P2A |
mov edi, saveproc + 0x10 |
1195,7 → 1199,6 |
|
I2D: |
mov [micron], 32 |
;Text 110,70,0x00000000,P2D, P2Dlen-P2D |
mov [cname], P2D |
mov esi, P2D |
mov edi,saveproc + 0x10 |
1204,7 → 1207,6 |
|
I25: |
mov [micron], 32 |
;Text 110,70,0x00000000,P25, P25len-P25 |
mov [cname], P25 ;P25 |
mov esi, P25 |
mov edi, saveproc + 0x10 ;12 |
1213,7 → 1215,6 |
|
I2C: |
mov [micron], 32 |
;Text 110,70,0x00000000,P2C, P2Clen-P2C |
mov [cname], P2C |
mov esi, P2C |
mov edi,saveproc + 0x10 |
1222,7 → 1223,6 |
|
I2F: |
mov [micron], 32 |
;Text 110,70,0x00000000,P2F, P2Flen-P2F |
mov [cname], P2F |
mov esi, P2F |
mov edi, saveproc + 0x10 |
1231,7 → 1231,6 |
|
I1E: |
mov [micron], 32 |
;Text 110,70,0x00000000,P1E, P1Elen-P1E |
mov [cname], P1E |
mov esi, P1E |
mov edi, saveproc + 0x10 |
1240,7 → 1239,6 |
|
I1A: |
mov [micron], 45 |
;Text 110,70,0x00000000,P1A, P1Alen-P1A |
mov [cname], P1A |
mov esi, P1A |
mov edi, saveproc + 0x10 |
1249,7 → 1247,6 |
|
I2E: |
mov [micron], 45 |
;Text 110,70,0x00000000,P2E, P2Elen-P2E |
mov [cname], P2E |
mov esi, P2E |
mov edi, saveproc + 0x10 |
1258,7 → 1255,6 |
|
I17: |
mov [micron], 45 |
;Text 110,70,0x00000000,P17, P17len-P17 |
mov [cname], P17 |
mov esi, P17 |
mov edi, saveproc + 0x10 |
1267,7 → 1263,6 |
|
I1D: |
mov [micron], 45 |
;Text 110,70,0x00000000,P1D, P1Dlen-P1D |
mov [cname], P1D |
mov esi, P1D |
mov edi, saveproc + 0x10 |
1276,7 → 1271,6 |
|
I0F: |
mov [micron], 65 |
;Text 110,70,0x00000000,P0F, P0Flen-P0F |
mov [cname], P0F |
mov esi, P0F |
mov edi, saveproc + 0x10 |
1285,7 → 1279,6 |
|
I16: |
mov [micron], 65 |
;Text 110,70,0x00000000,P16, P16len-P16 |
mov [cname], P16 |
mov esi, P16 |
mov edi, saveproc + 0x10 |
1294,7 → 1287,6 |
|
I06: |
mov [micron], 32 |
;Text 110,70,0x00000000,P06, P06len-P06 |
mov [cname], P06 |
mov esi, P06 |
mov edi, saveproc + 0x10 |
1303,7 → 1295,6 |
|
I03: |
mov [micron], 32 |
;Text 110,70,0x00000000,P03, P03len-P03 |
mov [cname], P03 |
mov esi, P03 |
mov edi, saveproc + 0x10 |
1312,7 → 1303,6 |
|
I0D: |
mov [micron], 32 |
;Text 110,70,0x00000000,P0D, P0Dlen-P0D |
mov [cname], P0D |
mov esi, P0D |
mov edi, saveproc + 0x10 |
1321,7 → 1311,6 |
|
I36: |
mov [micron], 32 |
;Text 110,70,0x00000000,P36, P36len-P36 |
mov [cname], P36 |
mov esi, P36 |
mov edi, saveproc + 0x10 |
1330,7 → 1319,6 |
|
I26: |
mov [micron], 32 |
;Text 110,70,0x00000000,P26, P26len-P26 |
mov [cname], P26 |
mov esi, P26 |
mov edi, saveproc + 0x10 |
1339,7 → 1327,6 |
|
I1C: |
mov [micron], 32 |
;Text 110,70,0x00000000,P1C, P1Clen-P1C |
mov [cname], P1C |
mov esi, P1C |
mov edi, saveproc + 0x10 |
1353,7 → 1340,7 |
|
Text 15, 190,0x00000000,cache, cachelen-cache |
mov [micron], 18 |
Text 110,70,0x00000000,PS0, PS0len-PS0 |
mov [cname], PS0 |
mov esi, PS0 |
mov edi, saveproc + 0x6 |
call concatname |
1382,13 → 1369,13 |
mov [micron], 18 |
cmp [L2], 128 |
jne .ppF0 ; Pentium |
Text 110,70,0x00000000,PF0c, PF0clen-PF0c |
mov [cname], PF0c |
mov esi, PF0c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF0: |
Text 110,70,0x00000000,PF0, PF0len-PF0 |
mov [cname], PF0 |
mov esi, PF0 |
mov edi, saveproc + 0x6 |
call concatname |
1405,7 → 1392,7 |
; mcall |
;jmp MMXtest |
;.ppF1: |
Text 110,70,0x00000000,PF0, PF0len-PF0 |
mov [cname], PF0 |
mov esi, PF0 |
mov edi, saveproc + 0x6 |
call concatname |
1414,13 → 1401,13 |
mov [micron], 13 |
cmp [L2], 128 |
jne .ppF2 ; Pentium |
Text 110,70,0x00000000,PF2c, PF2clen-PF2c |
mov [cname], PF2c |
mov esi, PF2c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF2: |
Text 110,70,0x00000000,PF2, PF2len-PF2 |
mov [cname], PF2 |
mov esi, PF2 |
mov edi, saveproc + 0x6 |
call concatname |
1429,13 → 1416,13 |
mov [micron], 09 |
cmp [L2], 256 |
jne .ppF3 ; Pentium |
Text 110,70,0x00000000,PF3c, PF3clen-PF3c |
mov [cname], PF3c |
mov esi, PF3c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF3: |
Text 110,70,0x00000000,PF3, PF3len-PF3 |
mov [cname], PF3 |
mov esi, PF3 |
mov edi, saveproc + 0x6 |
call concatname |
1445,13 → 1432,13 |
mov [micron], 09 |
cmp [L2], 512 |
jae .ppF5 ; Pentium |
Text 110,70,0x00000000,PF5c, PF5clen-PF5c |
mov [cname], PF5c |
mov esi, PF5c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF5: |
Text 110,70,0x00000000,PF5, PF5len-PF5 |
mov [cname], PF5 |
mov esi, PF5 |
mov edi, saveproc + 0x6 |
call concatname |
1461,13 → 1448,13 |
mov [micron], 06 ; 065 |
cmp [L2], 512 |
ja .ppF6 ; Pentium |
Text 110,70,0x00000000,PF6c, PF6clen-PF6c |
mov [cname], PF6c |
mov esi, PF6c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF6: |
Text 110,70,0x00000000,PF6, PF6len-PF6 |
mov [cname], PF6 |
mov esi, PF6 |
mov edi, saveproc + 0x6 |
call concatname |
1475,7 → 1462,7 |
|
|
next_generation: |
Text 110,70,0x00000000,NG, NGlen-NG |
mov [cname], NG |
mov esi, NG |
mov edi, saveproc + 0x6 |
call concatname |
1509,7 → 1496,7 |
mov esi, Cyrixn |
mov edi, saveproc |
call concatname |
Text 110,70,0x00000000,C52, C52len-C52 |
mov [cname], C52 |
mov esi, C52 |
mov edi, saveproc + 0x6 |
call concatname |
1523,7 → 1510,7 |
mov esi, Cyrixn |
mov edi, saveproc |
call concatname |
Text 110,70,0x00000000,C54, C54len-C54 |
mov [cname], C54 |
mov esi, C54 |
mov edi, saveproc + 0x6 |
call concatname |
1543,7 → 1530,7 |
mov esi, Cyrixn |
mov edi, saveproc |
call concatname |
Text 110,70,0x00000000,C60, C60len-C60 |
mov [cname], C60 |
mov esi, C60 |
mov edi, saveproc + 0x6 |
call concatname |
1837,7 → 1824,6 |
mov esi, Vortexn |
mov edi, saveproc |
call concatname |
;Text 110,70,0x00000000,V54, V54len-V54 |
jmp MMXtest |
|
;--------------------- |
1851,6 → 1837,7 |
call decode_standard_features |
|
call decode_extended_features |
|
xor eax,eax |
inc eax |
cpuid |
1960,6 → 1947,7 |
Text 15,330,0x00000000,now, nowlen-now |
Text 95,330,,nowp, nowplen-nowp |
Text 95,290,,mmxp, mmxplen-mmxp |
Text 110,70,0x80000000,dword[cname] |
|
jmp still |
|
1977,32 → 1965,6 |
; waiting for events |
event_wait: |
|
;================_RAM_============== |
Number 200,350,0,4,dword [ram_size_a],0xFFFFFF ;Number 200,340,0,4,dword [ram_size_a],0xFFFFFF |
|
mov eax, 18 |
mov ebx, 16 |
mcall |
|
shr eax, 10 |
|
mov [ram_size_a], eax |
|
mov eax, 18 |
mov ebx, 17 |
mcall |
|
shr eax, 10 |
|
mov [ram_size_t], eax |
|
Text 115,350,0x00000000,ram, ramlen-ram |
Number 200,350,0,4,dword [ram_size_a],0x000000 |
Number 270,350,,,dword [ram_size_t] |
|
|
;============================== |
|
mov eax,23 ; function 23 - event wait |
mov ebx,50 ; wait for 0.5 second |
mcall |
2009,7 → 1971,6 |
|
cmp eax,1 ; |
je red ; redraw |
je red2 |
cmp eax,2 ; |
je key ; key |
cmp eax,3 ; |
2049,7 → 2010,6 |
thread_start: |
|
cmp [num_win2],0 |
|
jne still |
|
;================================================RSA test |
2315,37 → 2275,22 |
ptsstring db '' |
num_win2 db 0 |
|
; ******* main window ******* |
|
draw_window: |
mov eax,12 |
mov ebx,1h |
mcall |
mcall SF_REDRAW, SSF_BEGIN_DRAW |
|
Window 150,150,350,430, 0x34FFFFFF, 0x805080d0, title |
; place size |
Window 150, 150, 350, 405, 0x34FFFFFF, 0x805080d0, title |
|
Button 15,345,92,23,2+0x40000000,0x03FFFFFF ; button "press for more" |
mov esi, [sc.work_button] |
DefineButton 138, 345, 92, 24, 2, |
DefineButton 238, 345, 92, 24, 3, |
|
mov esi, knopka |
mov edi, img_area2 |
call ReadGIF |
PutImage 15,345,93,24,img_area2+8 ; image "press for more" |
; place size |
mov ecx, [sc.work_button_text] |
or ecx, 0x90000000 |
mov edx, btn_more_cap |
mcall SF_DRAW_TEXT, (138 + (92 - 7 * 8) / 2) shl 16 + 350 |
mov edx, btn_save_cap |
mcall SF_DRAW_TEXT, (238 + (92 - 4 * 8) / 2) shl 16 + 350 |
|
|
Button 15,380,92,23,3+0x40000000,0x03FFFFFF ; button "save" |
|
mov esi, knopka2 |
mov edi, img_area3 |
call ReadGIF |
PutImage 15,380,93,24,img_area3+8 ; image "save" |
; place size |
|
mov eax,12 |
mov ebx,2h |
mcall |
|
Text 130,270,0x00000000,instruct, instructlen-instruct |
DrawLine 10, 330, 340,340,0x8080FF |
DrawLine 330, 330, 275,340;,0x8080FF |
2364,8 → 2309,6 |
call newrating; !!!! |
|
cont: |
Text 15,50,0x00000000,tsum, tsumlen-tsum ; |
|
;Number 82,50,0,4,dword [total],0x000000; MHz |
mov esi, total |
mov edi, tsum + 0xB ;0xA |
2510,6 → 2453,7 |
|
Text 15,250,,brandid, brandidlen-brandid |
|
Text 15,50,0x00000000,tsum, tsumlen-tsum |
Text 15,110,0x00000000,fam, famlen-fam |
Text 15,130,0x00000000,mode, modelen-mode |
Text 15,150,0x00000000,step, steplen-step |
2531,17 → 2475,10 |
Text 15,330,0x00000000,now, nowlen-now |
Text 95,330,,nowp, nowplen-nowp |
|
Text 115,350,0x00000000,ram, ramlen-ram |
Number 200,350,0,4,dword [ram_size_a],0x000000 |
|
Number 270,350,0,4,dword [ram_size_t] |
Text 300,350,0x00000000,mb, mblen-mb |
|
Text 15, 190,0x00000000,cache, cachelen-cache |
Text 15,170,0x00000000,cache2, cache2len-cache2 |
Text 15,210,,cache3, cache3len-cache3 |
Text 15,230,,cache4, cache4len-cache4 |
Text 110,70,0x00000000,dword[cname], 40 |
call load_gif |
|
cmp [nomultiplier], $1 |
2566,6 → 2503,7 |
je codeNTransmeta |
cmp [codeN], $6 |
je codeNVortex |
jmp nnn |
|
codeNIntel: |
Text 75,70,0x00000000,Inteln, Intelnlen-Inteln |
2637,6 → 2575,8 |
;- |
Text 15,250,,brandid, brandidlen-brandid |
|
mcall SF_REDRAW, SSF_END_DRAW |
|
ret ; |
|
call_OpenDialog: |
2671,6 → 2611,7 |
test eax,eax |
jnz @r |
ret |
|
;----------------------------------------------------------------------------- |
prepare_text_area: |
mov edi,[store_text_area_start] |
3033,7 → 2974,7 |
|
numbertostring: |
mov bx, 10 |
xor cx, cx |
xor ecx, ecx |
@@m1: |
xor dx, dx |
div bx |
3081,7 → 3022,7 |
|
; DATA AREA |
|
title db 'CPUID 2.29 by S.Kuzmin & the KolibriOS team',0 |
title db 'CPUID 2.31',0 |
|
stm: |
db 'Internal name:', 0 |
3156,7 → 3097,7 |
|
multil2: |
|
db 'Multiplier .' |
db 'Multiplier: . ' |
|
multil2len: |
|
3173,7 → 3114,7 |
|
freql2: |
|
db 'System clock . MHz' |
db 'System clock: . MHz' |
|
|
freql2len: |
3329,28 → 3270,6 |
|
rat dd 0x0 ; |
|
|
|
ram: |
|
if lang eq it |
|
db 'RAM libera: su' |
|
else |
|
db 'Available RAM: out of' |
|
end if |
|
|
|
|
|
ramlen: |
|
|
|
NEF: |
|
db 'EXTENDED FEATURES ARE NOT AVAILABLE',0 |
4288,7 → 4207,10 |
db '/sys/' |
start_temp_file_name: |
db 'CPUID.txt',0 |
|
btn_more_cap: |
db 'Details', 0 |
btn_save_cap: |
db 'Save', 0 |
;--------------------------------------------------------------------- |
align 4 |
fileinfo: |
4300,6 → 4222,9 |
db 0 |
.name: dd file_name |
|
align 4 |
sc system_colors |
|
store_text_area_start dd ? |
store_text_area_end dd ? |
store_text_size dd ? |