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-> |