Subversion Repositories Kolibri OS

Rev

Rev 6353 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6353 Rev 7817
1
;
1
;
2
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
2
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
3
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
3
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
4
; All Right Reserved
4
; All Right Reserved
5
 
5
 
6
;
6
;
7
;
7
;
8
; Вкладка информации о системе
8
; Вкладка информации о системе
9
;
9
;
10
; Дописать ещё чтоить (маловато будет)
10
; Дописать ещё чтоить (маловато будет)
11
;
11
;
12
;
12
;
13
 
13
 
14
	; Пишем параметры
14
	; Пишем параметры
15
	mov	edx, lab_info_tab
15
	mov	edx, lab_info_tab
16
	mov	ebx, 17 * 65536 + 285
16
	mov	ebx, 17 * 65536 + 285
17
	call	show_text
17
	call	show_text
18
 
18
 
19
	; Пишем производителя процессора
19
	; Пишем производителя процессора
20
	mov	edx, Vendor
20
	mov	edx, Vendor
21
	mov	esi, 12
21
	mov	esi, 12
22
	mov	ebx, 160 * 65536 + 285
22
	mov	ebx, 160 * 65536 + 285
23
	int	0x40
23
	int	0x40
24
	; Поддержка MMX
24
	; Поддержка MMX
25
	mov	ebx, 160 * 65536 + 305
25
	mov	ebx, 160 * 65536 + 305
26
	mov	esi, 3
26
	mov	esi, 3
27
	mov	edx, msg_yes
27
	mov	edx, msg_yes
28
	cmp	byte[CPU_mmx], 1
28
	cmp	byte[CPU_mmx], 1
29
	je	mmx_en
29
	je	mmx_en
30
	mov	edx, msg_no
30
	mov	edx, msg_no
31
mmx_en:	int	0x40
31
mmx_en:	int	0x40
32
	; Чип мониторинга
32
	; Чип мониторинга
33
	mov	edx, [hwm_chip_name]
33
	mov	edx, [hwm_chip_name]
34
	or	ecx, 0x80000000
34
	or	ecx, 0x80000000
35
	mov	ebx, 160 * 65536 + 325
35
	mov	ebx, 160 * 65536 + 325
36
	mov	al, 4
36
	mov	al, 4
37
	int	0x40
37
	int	0x40
38
	; Частота процессора
38
	; Частота процессора
39
	mov	eax, 18
39
	mov	eax, 18
40
	mov	ebx, 5
40
	mov	ebx, 5
41
	int	0x40
41
	int	0x40
42
 
42
 
43
	xor	edx, edx
43
	xor	edx, edx
44
	mov	ebx, 1000000
44
	mov	ebx, 1000000
45
	div	ebx
45
	div	ebx
46
	mov	ecx, eax
46
	mov	ecx, eax
47
	call	digit_len
47
	call	digit_len
48
	mov	eax, 47
48
	mov	eax, 47
49
	mov	edx, 160 * 65536 + 295
49
	mov	edx, 160 * 65536 + 295
50
	xor	esi, esi
50
	xor	esi, esi
51
	int	0x40
51
	int	0x40
52
 
52
 
53
	; push	eax			; Вернуть код после исправления ftoa
53
	; push	eax			; Вернуть код после исправления ftoa
54
	; fild	dword[esp]
54
	; fild	dword[esp]
55
	; push	1000;000
55
	; push	1000;000
56
	; fidiv	dword[esp]
56
	; fidiv	dword[esp]
57
	; fidiv	dword[esp]
57
	; fidiv	dword[esp]
58
	; fstp	dword[esp]
58
	; fstp	dword[esp]
59
	; mov	esi, esp
59
	; mov	esi, esp
60
	; call	ftoa
60
	; call	ftoa
61
	; mov	ebx, 160 * 65536 + 295
61
	; mov	ebx, 160 * 65536 + 295
62
	; mov	edx, Data_String
62
	; mov	edx, Data_String
63
	; mov	eax, 4
63
	; mov	eax, 4
64
	; mov	esi, 7
64
	; mov	esi, 7
65
	; xor	ecx, ecx
65
	; xor	ecx, ecx
66
	; int	0x40
66
	; int	0x40
67
	; pop	eax
67
	; pop	eax
68
	; pop	eax
68
	; pop	eax
69
 
69
 
70
	; Семейство и модель процессора
70
	; Семейство и модель процессора
71
	mov	eax, 47
71
	mov	eax, 47
72
	mov	ebx, 0x10100
72
	mov	ebx, 0x10100
73
	xor	ecx, ecx
73
	xor	ecx, ecx
74
	mov	cl, [CPU_fam]
74
	mov	cl, [CPU_fam]
75
	mov	edx, 250 * 65536 + 285
75
	mov	edx, 250 * 65536 + 285
76
	xor	esi, esi
76
	xor	esi, esi
77
	int	0x40
77
	int	0x40
78
	mov	cl, [CPU_mod]
78
	mov	cl, [CPU_mod]
79
	add	edx, 10 * 65536
79
	add	edx, 10 * 65536
80
	int	0x40
80
	int	0x40
81
 
81
 
82
	; коэффициент умножения
82
	; коэффициент умножения
83
	call	multiplier
83
	call	multiplier
84
	test	ecx, ecx
84
	test	ecx, ecx
85
	jz	@f
85
	jz	@f
86
	movzx	ecx, cl
86
	movzx	ecx, cl
87
	push	ecx
87
	push	ecx
88
	fild	dword[esp]
88
	fild	dword[esp]
89
	push	10
89
	push	10
90
	fidiv	dword[esp]
90
	fidiv	dword[esp]
91
	fstp	dword[esp]
91
	fstp	dword[esp]
92
	mov	esi, esp
92
	mov	esi, esp
93
	call	ftoa
93
	call	ftoa
94
	mov	ebx, 160 * 65536 + 315
94
	mov	ebx, 160 * 65536 + 315
95
	mov	edx, Data_String
95
	mov	edx, Data_String
96
	mov	eax, 4
96
	mov	eax, 4
97
	mov	esi, eax
97
	mov	esi, eax
98
	xor	ecx, ecx
98
	xor	ecx, ecx
99
	int	0x40
99
	int	0x40
100
	pop	eax
100
	pop	eax
101
	pop	eax
101
	pop	eax
102
@@:
102
@@:
103
 
103
 
104
	; Расставляем двоеточия
104
	; Расставляем двоеточия
105
	mov	eax, 4
105
	mov	eax, 4
106
	mov	ebx, 152 * 65536 + 285
106
	mov	ebx, 152 * 65536 + 285
107
	mov	edx, dub_p
107
	mov	edx, dub_p
108
	mov	esi, 1
108
	mov	esi, 1
109
	mov	ecx, 6		; <- количество строк
109
	mov	ecx, 6		; <- количество строк
110
nxt_dp:	push	ecx
110
nxt_dp:	push	ecx
111
	xor	ecx, ecx
111
	xor	ecx, ecx
112
	int	0x40
112
	int	0x40
113
	add	ebx, 10
113
	add	ebx, 10
114
	pop	ecx
114
	pop	ecx
115
	loop	nxt_dp
115
	loop	nxt_dp
116
;---------------------------------------------------------------------
116
;---------------------------------------------------------------------
117
	jmp	redraw
117
	jmp	redraw
118
	
118
	
119
free_mem:
119
free_mem:
120
	; Свободная память
120
	; Свободная память
121
if (OS_version >= 0x0530)
121
if (OS_version >= 0x0530)
122
	mov	eax, 18
122
	mov	eax, 18
123
	mov	ebx, 16
123
	mov	ebx, 16
124
	int	0x40
124
	int	0x40
125
	mov	ecx, eax
125
	mov	ecx, eax
126
	call	digit_len
126
	call	digit_len
127
	mov	eax, 47
127
	mov	eax, 47
128
	mov	edx, 160 * 65536 + 335
128
	mov	edx, 160 * 65536 + 335
129
	xor	esi, esi
129
	xor	esi, esi
130
	clear_prev_no edx
130
	clear_prev_no edx
131
	int	0x40
131
	int	0x40
132
end if
132
end if
133
	jmp end_drow_tab
133
	jmp end_drow_tab
134
	
134
	
135
dub_p	db	':'
135
dub_p	db	':'
136
 
136
 
137
if lang eq it
137
if lang eq it
138
	lab_info_tab mls \
138
	lab_info_tab mls \
139
		'Vendor CPU',\
139
		'Vendor CPU',\
140
		'Frequenza CPU (MHz)',\
140
		'Frequenza CPU (MHz)',\
141
		'MMX tehnology',\
141
		'MMX tehnology',\
142
		'Multiplier',\
142
		'Multiplier',\
143
		'Monitoring chip',\
143
		'Monitoring chip',\
144
		'Memoria libera (Kb)'
144
		'Memoria libera (Kb)'
145
else
145
else
146
	lab_info_tab mls \
146
	lab_info_tab mls \
147
		'CPU Vendor',\
147
		'CPU vendor',\
148
		'CPU frequency (MHz)',\
148
		'CPU frequency (MHz)',\
149
		'MMX tehnology',\
149
		'MMX technology',\
150
		'Multiplier',\
150
		'Multiplier',\
151
		'Monitoring chip',\
151
		'Monitoring chip',\
152
		'Free memory (Kb)'
152
		'Free memory (Kb)'
153
end if
153
end if