2,12 → 2,12 |
; project name: CPUID * |
; platform: KolibriOS, x86 (IA-32), x86-64 achitectures * |
; compiler: flat assembler 1.70.03 * |
; version: 2.31 * |
; last update: 9 October 2018 * |
; 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 * |
; license: Copyright 2004-2018 Sergey Kuzmin and co-authors * |
; license: Copyright 2004-2014 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,8 → 30,6 |
|
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 |
48,7 → 46,6 |
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 |
;----------------------------------------------------------------------------- |
276,7 → 273,6 |
jmp red |
|
.noname: |
|
red: |
|
;mov byte [multiplier], 115; ; for testing |
523,7 → 519,7 |
jz A8 |
jmp AA |
@@: |
mov [cname], edx |
Text 100,70,0x80000000 |
jmp MMXtest |
A6: |
;mov [FRS], 266 ;!!!!!! |
892,7 → 888,7 |
cmp [m],$8 |
jz .I8 |
.I0: |
mov [cname], P50 |
Text 110,70,0x00000000,P50, P50len-P50 |
mov esi, P50 |
mov edi, saveproc + 0x6 |
call concatname |
902,7 → 898,7 |
mov [micron], 80 |
jmp MMXtest |
.I1: |
mov [cname], P5 |
Text 110,70,0x00000000,P5, P5len-P5 |
mov esi, P5 |
mov edi, saveproc + 0x6 |
call concatname |
913,7 → 909,7 |
jmp MMXtest |
|
.I2: |
mov [cname], P54C |
Text 110,70,0x00000000,P54C, P54Clen-P54C |
mov esi, P54C |
mov edi, saveproc + 0x6 |
call concatname |
924,7 → 920,7 |
jmp MMXtest |
|
.I3: |
mov [cname], P54T |
Text 110,70,0x00000000,P54T, P54Tlen-P54T |
mov esi, P54T |
mov edi, saveproc + 0x6 |
call concatname |
935,7 → 931,7 |
jmp MMXtest |
|
.I4: |
mov [cname], P55C |
Text 110,70,0x00000000,P55C, P55Clen-P55C |
mov esi, P55C |
mov edi, saveproc + 0x6 |
call concatname |
947,7 → 943,7 |
|
|
.I7: |
mov [cname], P54C |
Text 110,70,0x00000000,P54C, P54Clen-P54C |
mov esi, P54C |
mov edi, saveproc + 0x6 |
call concatname |
958,7 → 954,7 |
jmp MMXtest |
|
.I8: |
mov [cname], P55C |
Text 110,70,0x00000000,P55C, P55Clen-P55C |
mov esi, P55C |
mov edi, saveproc + 0x6 |
call concatname |
1002,7 → 998,7 |
jz .I6F |
.I60: |
mov [micron], 50 |
mov [cname], P60 |
Text 110,70,0x00000000,P60, P60len-P60 |
mov esi, P60 |
mov edi, saveproc + 0x6 |
call concatname |
1010,7 → 1006,7 |
|
.I61: |
mov [micron], 35 |
mov [cname], P61 |
Text 110,70,0x00000000,P61, P61len-P61 |
mov esi, P61 |
mov edi, saveproc + 0x6 |
call concatname |
1018,7 → 1014,7 |
|
.I63: |
mov [micron], 28 |
mov [cname], P63 |
Text 110,70,0x00000000,P63, P63len-P63 |
mov esi, P63 |
mov edi, saveproc + 0x6 |
call concatname |
1028,7 → 1024,7 |
mov [micron], 25 |
cmp [L2], 0 |
jne .pp65 ; Pentium |
mov [cname], P65c |
Text 110,70,0x00000000,P65c, P65clen-P65c |
mov esi, P65c |
mov edi, saveproc + 0x6 |
call concatname |
1035,7 → 1031,7 |
jmp MMXtest |
|
.pp65: |
mov [cname], P65 |
Text 110,70,0x00000000,P65, P65len-P65 |
mov esi, P65 |
mov edi, saveproc + 0x6 |
call concatname |
1042,7 → 1038,7 |
jmp MMXtest |
.I66: |
mov [micron], 25 |
mov [cname], P66 |
Text 110,70,0x00000000,P66, P66len-P66 |
mov esi, P66 |
mov edi, saveproc + 0x6 |
call concatname |
1049,8 → 1045,7 |
jmp MMXtest |
.I67: |
mov [micron], 25 |
;but if SSE4.1 supported then it is Intel Core (Penryn) |
mov [cname], P67 |
Text 110,70,0x00000000,P67, P67len-P67 ;but if SSE4.1 supported then it is Intel Core (Penryn) |
mov esi, P67 |
mov edi, saveproc + 0x6 |
call concatname |
1060,7 → 1055,7 |
mov [micron], 18 |
cmp [L2], 128 |
jne .pp68 ; Pentium |
mov [cname], P68c |
Text 110,70,0x00000000,P68c, P68clen-P68c |
mov esi, P68c |
mov edi, saveproc + 0x6 |
call concatname |
1067,7 → 1062,7 |
jmp MMXtest |
|
.pp68: |
mov [cname], P68 |
Text 110,70,0x00000000,P68, P68len-P68 |
mov esi, P68 |
mov edi, saveproc + 0x6 |
call concatname |
1075,7 → 1070,7 |
|
.I69: |
mov [micron], 13 |
mov [cname], P69 |
Text 110,70,0x00000000,P69 , P69len-P69 |
mov esi, P69 |
mov edi, saveproc + 0x6 |
call concatname |
1083,8 → 1078,7 |
|
.I6A: |
mov [micron], 18 |
;but if SSE4.2 supported then it is Intel Core (Nehalem) |
mov [cname], P6A |
Text 110,70,0x00000000,P6A, P6Alen-P6A ;but if SSE4.2 supported then it is Intel Core (Nehalem) |
mov esi, P6A |
mov edi, saveproc + 0x6 |
call concatname |
1094,7 → 1088,7 |
mov [micron], 13 |
cmp [L2], 256 |
jne .pp6B ; Pentium |
mov [cname], P6Bc |
Text 110,70,0x00000000,P6Bc, P6Bclen-P6Bc |
mov esi, P6Bc |
mov edi, saveproc + 0x6 |
call concatname |
1101,7 → 1095,7 |
jmp MMXtest |
|
.pp6B: |
mov [cname], P6B |
Text 110,70,0x00000000,P6B, P6Blen-P6B |
mov esi, P6B |
mov edi, saveproc + 0x6 |
call concatname |
1109,7 → 1103,7 |
|
.I6D: |
mov [micron], 9 |
mov [cname], P6D |
Text 110,70,0x00000000,P6D, P6Dlen-P6D |
mov esi, P6D |
mov edi, saveproc + 0x6 |
call concatname |
1117,7 → 1111,7 |
|
.I6E: |
mov [micron], 6 |
mov [cname], P6E |
Text 110,70,0x00000000,P6E, P6Elen-P6E |
mov esi, P6E |
mov edi, saveproc + 0x6 |
call concatname |
1125,7 → 1119,7 |
|
.I6F: |
mov [micron], 6 |
mov [cname], P6F |
Text 110,70,0x00000000,P6F, P6Flen-P6F |
mov esi, P6F |
mov edi, saveproc + 0x6 |
call concatname |
1183,6 → 1177,7 |
|
I3A: |
mov [micron], 32 |
;Text 110,70,0x00000000,P3A, P3Alen-P3A |
mov [cname], P3A |
mov esi, P3A |
mov edi, saveproc + 0x10 |
1191,6 → 1186,7 |
|
I2A: |
mov [micron], 32 |
;Text 110,70,0x00000000,P2A, P2Alen-P2A |
mov [cname], P2A |
mov esi, P2A |
mov edi, saveproc + 0x10 |
1199,6 → 1195,7 |
|
I2D: |
mov [micron], 32 |
;Text 110,70,0x00000000,P2D, P2Dlen-P2D |
mov [cname], P2D |
mov esi, P2D |
mov edi,saveproc + 0x10 |
1207,6 → 1204,7 |
|
I25: |
mov [micron], 32 |
;Text 110,70,0x00000000,P25, P25len-P25 |
mov [cname], P25 ;P25 |
mov esi, P25 |
mov edi, saveproc + 0x10 ;12 |
1215,6 → 1213,7 |
|
I2C: |
mov [micron], 32 |
;Text 110,70,0x00000000,P2C, P2Clen-P2C |
mov [cname], P2C |
mov esi, P2C |
mov edi,saveproc + 0x10 |
1223,6 → 1222,7 |
|
I2F: |
mov [micron], 32 |
;Text 110,70,0x00000000,P2F, P2Flen-P2F |
mov [cname], P2F |
mov esi, P2F |
mov edi, saveproc + 0x10 |
1231,6 → 1231,7 |
|
I1E: |
mov [micron], 32 |
;Text 110,70,0x00000000,P1E, P1Elen-P1E |
mov [cname], P1E |
mov esi, P1E |
mov edi, saveproc + 0x10 |
1239,6 → 1240,7 |
|
I1A: |
mov [micron], 45 |
;Text 110,70,0x00000000,P1A, P1Alen-P1A |
mov [cname], P1A |
mov esi, P1A |
mov edi, saveproc + 0x10 |
1247,6 → 1249,7 |
|
I2E: |
mov [micron], 45 |
;Text 110,70,0x00000000,P2E, P2Elen-P2E |
mov [cname], P2E |
mov esi, P2E |
mov edi, saveproc + 0x10 |
1255,6 → 1258,7 |
|
I17: |
mov [micron], 45 |
;Text 110,70,0x00000000,P17, P17len-P17 |
mov [cname], P17 |
mov esi, P17 |
mov edi, saveproc + 0x10 |
1263,6 → 1267,7 |
|
I1D: |
mov [micron], 45 |
;Text 110,70,0x00000000,P1D, P1Dlen-P1D |
mov [cname], P1D |
mov esi, P1D |
mov edi, saveproc + 0x10 |
1271,6 → 1276,7 |
|
I0F: |
mov [micron], 65 |
;Text 110,70,0x00000000,P0F, P0Flen-P0F |
mov [cname], P0F |
mov esi, P0F |
mov edi, saveproc + 0x10 |
1279,6 → 1285,7 |
|
I16: |
mov [micron], 65 |
;Text 110,70,0x00000000,P16, P16len-P16 |
mov [cname], P16 |
mov esi, P16 |
mov edi, saveproc + 0x10 |
1287,6 → 1294,7 |
|
I06: |
mov [micron], 32 |
;Text 110,70,0x00000000,P06, P06len-P06 |
mov [cname], P06 |
mov esi, P06 |
mov edi, saveproc + 0x10 |
1295,6 → 1303,7 |
|
I03: |
mov [micron], 32 |
;Text 110,70,0x00000000,P03, P03len-P03 |
mov [cname], P03 |
mov esi, P03 |
mov edi, saveproc + 0x10 |
1303,6 → 1312,7 |
|
I0D: |
mov [micron], 32 |
;Text 110,70,0x00000000,P0D, P0Dlen-P0D |
mov [cname], P0D |
mov esi, P0D |
mov edi, saveproc + 0x10 |
1311,6 → 1321,7 |
|
I36: |
mov [micron], 32 |
;Text 110,70,0x00000000,P36, P36len-P36 |
mov [cname], P36 |
mov esi, P36 |
mov edi, saveproc + 0x10 |
1319,6 → 1330,7 |
|
I26: |
mov [micron], 32 |
;Text 110,70,0x00000000,P26, P26len-P26 |
mov [cname], P26 |
mov esi, P26 |
mov edi, saveproc + 0x10 |
1327,6 → 1339,7 |
|
I1C: |
mov [micron], 32 |
;Text 110,70,0x00000000,P1C, P1Clen-P1C |
mov [cname], P1C |
mov esi, P1C |
mov edi, saveproc + 0x10 |
1340,7 → 1353,7 |
|
Text 15, 190,0x00000000,cache, cachelen-cache |
mov [micron], 18 |
mov [cname], PS0 |
Text 110,70,0x00000000,PS0, PS0len-PS0 |
mov esi, PS0 |
mov edi, saveproc + 0x6 |
call concatname |
1369,13 → 1382,13 |
mov [micron], 18 |
cmp [L2], 128 |
jne .ppF0 ; Pentium |
mov [cname], PF0c |
Text 110,70,0x00000000,PF0c, PF0clen-PF0c |
mov esi, PF0c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF0: |
mov [cname], PF0 |
Text 110,70,0x00000000,PF0, PF0len-PF0 |
mov esi, PF0 |
mov edi, saveproc + 0x6 |
call concatname |
1392,7 → 1405,7 |
; mcall |
;jmp MMXtest |
;.ppF1: |
mov [cname], PF0 |
Text 110,70,0x00000000,PF0, PF0len-PF0 |
mov esi, PF0 |
mov edi, saveproc + 0x6 |
call concatname |
1401,13 → 1414,13 |
mov [micron], 13 |
cmp [L2], 128 |
jne .ppF2 ; Pentium |
mov [cname], PF2c |
Text 110,70,0x00000000,PF2c, PF2clen-PF2c |
mov esi, PF2c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF2: |
mov [cname], PF2 |
Text 110,70,0x00000000,PF2, PF2len-PF2 |
mov esi, PF2 |
mov edi, saveproc + 0x6 |
call concatname |
1416,13 → 1429,13 |
mov [micron], 09 |
cmp [L2], 256 |
jne .ppF3 ; Pentium |
mov [cname], PF3c |
Text 110,70,0x00000000,PF3c, PF3clen-PF3c |
mov esi, PF3c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF3: |
mov [cname], PF3 |
Text 110,70,0x00000000,PF3, PF3len-PF3 |
mov esi, PF3 |
mov edi, saveproc + 0x6 |
call concatname |
1432,13 → 1445,13 |
mov [micron], 09 |
cmp [L2], 512 |
jae .ppF5 ; Pentium |
mov [cname], PF5c |
Text 110,70,0x00000000,PF5c, PF5clen-PF5c |
mov esi, PF5c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF5: |
mov [cname], PF5 |
Text 110,70,0x00000000,PF5, PF5len-PF5 |
mov esi, PF5 |
mov edi, saveproc + 0x6 |
call concatname |
1448,13 → 1461,13 |
mov [micron], 06 ; 065 |
cmp [L2], 512 |
ja .ppF6 ; Pentium |
mov [cname], PF6c |
Text 110,70,0x00000000,PF6c, PF6clen-PF6c |
mov esi, PF6c |
mov edi, saveproc + 0x6 |
call concatname |
jmp MMXtest |
.ppF6: |
mov [cname], PF6 |
Text 110,70,0x00000000,PF6, PF6len-PF6 |
mov esi, PF6 |
mov edi, saveproc + 0x6 |
call concatname |
1462,7 → 1475,7 |
|
|
next_generation: |
mov [cname], NG |
Text 110,70,0x00000000,NG, NGlen-NG |
mov esi, NG |
mov edi, saveproc + 0x6 |
call concatname |
1496,7 → 1509,7 |
mov esi, Cyrixn |
mov edi, saveproc |
call concatname |
mov [cname], C52 |
Text 110,70,0x00000000,C52, C52len-C52 |
mov esi, C52 |
mov edi, saveproc + 0x6 |
call concatname |
1510,7 → 1523,7 |
mov esi, Cyrixn |
mov edi, saveproc |
call concatname |
mov [cname], C54 |
Text 110,70,0x00000000,C54, C54len-C54 |
mov esi, C54 |
mov edi, saveproc + 0x6 |
call concatname |
1530,7 → 1543,7 |
mov esi, Cyrixn |
mov edi, saveproc |
call concatname |
mov [cname], C60 |
Text 110,70,0x00000000,C60, C60len-C60 |
mov esi, C60 |
mov edi, saveproc + 0x6 |
call concatname |
1824,6 → 1837,7 |
mov esi, Vortexn |
mov edi, saveproc |
call concatname |
;Text 110,70,0x00000000,V54, V54len-V54 |
jmp MMXtest |
|
;--------------------- |
1837,7 → 1851,6 |
call decode_standard_features |
|
call decode_extended_features |
|
xor eax,eax |
inc eax |
cpuid |
1947,7 → 1960,6 |
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 |
|
1965,6 → 1977,32 |
; 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 |
1971,6 → 2009,7 |
|
cmp eax,1 ; |
je red ; redraw |
je red2 |
cmp eax,2 ; |
je key ; key |
cmp eax,3 ; |
2010,6 → 2049,7 |
thread_start: |
|
cmp [num_win2],0 |
|
jne still |
|
;================================================RSA test |
2275,22 → 2315,37 |
ptsstring db '' |
num_win2 db 0 |
|
; ******* main window ******* |
|
draw_window: |
mcall SF_REDRAW, SSF_BEGIN_DRAW |
mov eax,12 |
mov ebx,1h |
mcall |
|
Window 150, 150, 350, 405, 0x34FFFFFF, 0x805080d0, title |
Window 150,150,350,430, 0x34FFFFFF, 0x805080d0, title |
; place size |
|
mov esi, [sc.work_button] |
DefineButton 138, 345, 92, 24, 2, |
DefineButton 238, 345, 92, 24, 3, |
Button 15,345,92,23,2+0x40000000,0x03FFFFFF ; button "press for more" |
|
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 |
mov esi, knopka |
mov edi, img_area2 |
call ReadGIF |
PutImage 15,345,93,24,img_area2+8 ; image "press for more" |
; place size |
|
|
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 |
2309,6 → 2364,8 |
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 |
2453,7 → 2510,6 |
|
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 |
2475,10 → 2531,17 |
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 |
2503,7 → 2566,6 |
je codeNTransmeta |
cmp [codeN], $6 |
je codeNVortex |
jmp nnn |
|
codeNIntel: |
Text 75,70,0x00000000,Inteln, Intelnlen-Inteln |
2575,8 → 2637,6 |
;- |
Text 15,250,,brandid, brandidlen-brandid |
|
mcall SF_REDRAW, SSF_END_DRAW |
|
ret ; |
|
call_OpenDialog: |
2611,7 → 2671,6 |
test eax,eax |
jnz @r |
ret |
|
;----------------------------------------------------------------------------- |
prepare_text_area: |
mov edi,[store_text_area_start] |
2974,7 → 3033,7 |
|
numbertostring: |
mov bx, 10 |
xor ecx, ecx |
xor cx, cx |
@@m1: |
xor dx, dx |
div bx |
3022,7 → 3081,7 |
|
; DATA AREA |
|
title db 'CPUID 2.31',0 |
title db 'CPUID 2.29 by S.Kuzmin & the KolibriOS team',0 |
|
stm: |
db 'Internal name:', 0 |
3097,7 → 3156,7 |
|
multil2: |
|
db 'Multiplier: . ' |
db 'Multiplier .' |
|
multil2len: |
|
3114,7 → 3173,7 |
|
freql2: |
|
db 'System clock: . MHz' |
db 'System clock . MHz' |
|
|
freql2len: |
3270,6 → 3329,28 |
|
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 |
4207,10 → 4288,7 |
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: |
4222,9 → 4300,6 |
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 ? |