Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 7442 → Rev 7441

/programs/system/cpuid/trunk/CPUID.ASM
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 ?
/programs/system/cpuid/trunk/logos.inc
18,3 → 18,9
 
vortex:
file 'vortex.gif' ;include gif file
 
knopka:
file 'knopka.gif' ;include gif file
 
knopka2:
file 'knopka2.gif' ;gif button Save in file
/programs/system/cpuid/trunk/Build.bat
1,4 → 1,2
@echo lang fix en >lang.inc
@fasm cpuid.asm cpuid
@pause
@erase lang.inc
fasm cpuid.asm cpuid
pause
/programs/system/cpuid/trunk/amd.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/system/cpuid/trunk/cyrix.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/system/cpuid/trunk/idt.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/system/cpuid/trunk/intel.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/system/cpuid/trunk/transmet.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/system/cpuid/trunk/via.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/system/cpuid/trunk/vortex.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream