Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6352 → Rev 6353

/programs/system/gmon/gmon.asm
1,26 → 1,26
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
;
; ÂÎÇÌÎÆÍÀ ÏÎÐ×À ÎÁÎÐÓÄÎÂÀÍÈß!
; ÈÑÏÎËÜÇÓÉÒÅ ÍÀ ÑÂÎÉ ÑÒÐÀÕ È ÐÈÑÊ!
; ВОЗМОЖНА ПОРЧА ОБОРУДОВАНИЯ!
; ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!
;
; Çàìåòêè :
; Äîïèñàòü çàïóñê òåñòîâ (rtst) (íåò ðåàêöèè íà îøèáêó çàïóñêà)
; Ïåðåäåëàòü îáíîâëåíèå ãðàôèêà (ñäåëàòü îòäåëüíûì ïðîöåññîì)
; Äîáàâèòü ðåàêöèþ íà ïàðàìåòðû äàò÷èêîâ
; Заметки :
; Дописать запуск тестов (rtst) (нет реакции на ошибку запуска)
; Переделать обновление графика (сделать отдельным процессом)
; Добавить реакцию на параметры датчиков
;
 
; Âíåøíèå ôàéëû :
; hwm*.inc - ïðîöåäóðû ðàáîòû ñ äàò÷èêàìè ìîíèòîðèíãà
; system.inc - âû÷èñëåíèå çàãðóçêè ïðîöåññîðà, çàâåðøåíèå òåñòà, etc...
; tests.inc - òåñòû ;-)
; diag.inc - ïîääåðæêà äèàãðàì
; tab_*.inc - ïðîöåäóðû îòðèñîâêè ñîîòâåòñòâóþøèõ âêëàäîê
; Внешние файлы :
; hwm*.inc - процедуры работы с датчиками мониторинга
; system.inc - вычисление загрузки процессора, завершение теста, etc...
; tests.inc - тесты ;-)
; diag.inc - поддержка диаграм
; tab_*.inc - процедуры отрисовки соответствуюших вкладок
 
 
; Èäåíòèôèêàòîðû êíîïîê :
; Identifier buttons :
; 01 - Exit
; 02 - Info tab
; 03 - Tests tab
33,7 → 33,7
; 10 - MMX test - not used (tab_test.inc)
; 11 - Update time increment (tab_conf.inc)
; 12 - Update time decriment (tab_conf.inc)
; 13..17 - Èçìåíåíèå öâåòà CPU_load, Mem_usage, Temp1, Temp2, Temp3
; 13..17 - Color Changing buttons CPU_load, Mem_usage, Temp1, Temp2, Temp3
 
include 'lang.inc'
include 'config.inc'
44,10 → 44,10
val_mod equ 0x3090
 
MEOS_APP_START
include "tests.inc" ; <-- Ìíîãî âûðàâíèâàíèé, ëó÷øå çäåñü
include "tests.inc" ; <-- Много выравниваний, лучше здесь
CODE
;--- Init ------------------------------------------------------------
; Î÷èùàåì íåèíèöèàëèçèðîâàííûå äàííûå
; Очищаем неинициализированные данные
mov ecx, __memory - __udata
mov edi, __udata
xor eax, eax
54,12 → 54,12
rep stosb
 
xor eax, eax
cpuid ; Óçíà¸ì ïðîèçâîäèòåëÿ ïðîöà
cpuid ; Узнаём производителя проца
mov [Vendor + 0], ebx
mov [Vendor + 4], edx
mov [Vendor + 8], ecx
mov eax, 1
cpuid ; Åñòü ëè MMX ?
cpuid ; Есть ли MMX ?
mov ecx, eax
shr al, 4
and ax, 0x0F0F
72,19 → 72,19
and cl, 11b
mov [CPU_type], cl
 
; ! Öâåòà èç ìàññèâà colors
mov dword[d_cpu_load], 0xFF00 ; èíèöèàëèçèðóåì ãðàôèê çàãðóçêè ÀËÓ
; ! Цвета из массива colors
mov dword[d_cpu_load], 0xFF00 ; инициализируем график загрузки АЛУ
mov dword[d_mem_usage], 0x8BA169 ; -- mem usega
mov dword[d_temp1], 0xFF0000 ; -- ãðàôèê òåìïåðàòóðû ÖÏÓ
mov dword[d_temp2], 0xFF ; -- ãðàôèê òåìïåðàòóðû ÌÏ
mov dword[d_temp1], 0xFF0000 ; -- график температуры ЦПУ
mov dword[d_temp2], 0xFF ; -- график температуры МП
mov dword[d_temp3], 0xFF7E23
 
call hwm_init ; Èíèöèàëèçèðóåì ÷èï ìîíèòîðèíãà
call hwm_init ; Initialize monitoring chip
 
jmp draw_window
;--- Wait & translate event ------------------------------------------
wait_for_event:
mov byte[diag_add_v], 0 ; äîáàâëÿåì äàííûå ê ãðàôèêó òîëüêî ïî òàéìåðó
mov byte[diag_add_v], 0 ; добавляем данные к графику только по таймеру
mov ebx, [update_time]
mov eax, 23
int 0x40
91,7 → 91,7
test eax, eax
jnz @f
inc byte [diag_add_v]
inc eax ; ïåðåðèñóåì îêíî (eax := 1)
jmp redraw
@@: dec eax ; redraw request ?
jz draw_window
dec eax ; key in buffer ?
103,7 → 103,7
key:
mov eax, 2
int 0x40
cmp ah, 27 ; Esc - çàâåðøåíèå ðàáîòû
cmp ah, 27 ; Esc - shutdown
je exit
jmp wait_for_event
;--- Button down -----------------------------------------------------
118,25 → 118,25
@@: mov eax, -1 ; close this program
int 0x40
noexit:
; êíîïêè âêëàäîê (2 .. 5)
; button tabs (2 .. 5)
cmp ah, 5
jg no_tabs
mov byte[act_tab], ah
jmp draw_window
jmp redraw_tabs
no_tabs:
; êíîïêè çàïóñêà òåñòâî (6 .. 10)
; кнопки запуска тество (6 .. 10)
cmp ah, 10
jg no_test_bt
; åñëè íåò çàïóùåíûõ òåñòîâ - çàïóñêàåì âûáðàííûé
; если нет запущеных тестов - запускаем выбранный
cmp byte[test_id], 0
je run_test
; åñëè êíîïêà àêòèâíîãî òåñòà - îñòàíàâëèâàåì òåñò, èíà÷å íè÷åãî íå äåëàåì
; если кнопка активного теста - останавливаем тест, иначе ничего не делаем
cmp [test_id], ah
jne wait_for_event
call stop_test
jmp draw_window
jmp redraw_tabs
 
tsts: dd p5, p6, k6, k7
tsts: dd p5, p6, k6_, k7_
run_test:
push eax
movzx ecx, ah
146,18 → 146,18
mov ebx, 1
int 0x40
cmp eax, 0xFFFFFFF0 ; -16
je wait_for_event ; <-- îøèáêà çàïóñêà òåñòà, ÏÅÐÅÏÈÑÀÒÜ
je wait_for_event ; <-- ошибка запуска теста, ПЕРЕПИСАТЬ
mov [test_pid], eax
pop eax
mov byte [test_id], ah
jmp draw_window
jmp redraw_tabs
;-------------------------
; êíîïêè èçìåíåíèÿ âðåìåíè îáíîâëåíèÿ
; кнопки изменения времени обновления
no_test_bt:
cmp ah, 11
jne no_ut_inc
add dword[update_time], 10
jmp draw_window
jmp redraw_tabs
no_ut_inc:
cmp ah, 12
jne no_ut_dec
164,10 → 164,10
cmp dword[update_time], 10
jng wait_for_event
sub dword[update_time], 10
jmp draw_window
jmp redraw_tabs
no_ut_dec:
;-------------------------
; êíîïêè èçìåíåíèÿ öâåòà ãðàôèêîâ (13..17)
; color change button schedules (13..17)
cmp ah, 17
jg no_change_color
sub ah, 13
174,13 → 174,13
movzx ecx, ah
mov esi, [d_colors + ecx * 4]
mov eax, [esi]
mov ecx, (colors_end - colors) / 4 ; êîëè÷åñòâî öâåòîâ
mov ecx, (colors_end - colors) / 4 ; number of colors
@@: dec ecx
cmp eax, [colors + ecx * 4]
jne @b
mov ebx, [colors + ecx * 4 - 4]
mov [esi], ebx
jmp draw_window
jmp redraw_tabs
no_change_color:
jmp wait_for_event
;---------------------------------------------------------------------
188,7 → 188,7
mov eax,12
mov ebx,1
int 0x40
; Ñîçäà¸ì îêíî
; Создаём окно
xor eax, eax
mov ebx, 300 * 65536 + 309
mov ecx, 150 * 65536 + 450
195,50 → 195,156
mov edx, tcol + 0x14000000 ; color of work area RRGGBB,8->color
mov edi, title ; color of frames RRGGBB
int 0x40
; Ñîçäà¸ì ðàìêó ãðàôèêà
; Create a graphic frame (not for graph)
mov eax, 13
mov ebx, 10 * 65536 + 290
mov ecx, 138 * 65536 + 105
mov edx, atcol
int 0x40
mov ebx, 12 * 65536 + 286
mov ecx, 140 * 65536 + 101
mov edx, tcol
int 0x40
mov eax, 38
mov edx, atcol
mov ebx, 12 * 65536 + 286 + 12
mov ecx, 140 * 65536 + 140
@@: add ecx, 10 * 65536 + 10
int 0x40
cmp cx, 230 ; ïðèâÿçàíî ê êîîðäèíàòàì îêíà
jl @b
 
; Ïèøèì íàçâàíèÿ ïàðàìåòðîâ (Cpu load, temper, etc...)
mov edx, msgs_mon
; write parameter names (Cpu load, temper, etc ...)
mov edx, msgs_mon ; text for indicators
mov ebx, 17 * 65536 + 30
call show_text
 
mov edx, msgs_mon2
mov ebx, 156 * 65536 + 30
mov ebx, 166 * 65536 + 30
call show_text
 
; Ðèñóåì êíîïêè ñìåíû öâåòà
jmp draw_tabs ; draw tabs for the first time
 
redraw_tabs: ; delete previously created tabs
 
mov ecx, 4
mov eax, 8
mov edx, 0x80000000 + 2
del_tabs:
int 0x40
inc edx
loop del_tabs
 
; Delete color change buttons
mov eax, 8
mov edx, 0x80000000 + 13
@@:
int 0x40
inc edx
cmp edx, 0x80000000 + 13 + 5 ; 5 (buttons)
jne @b
 
draw_tabs:
 
; Drawing color change buttons
mov eax, 8
mov ebx, 112 * 65536 + 5
mov ecx, 30 * 65536 + 6
mov edx, 13
@@: mov esi, [d_colors - 13 * 4 + edx * 4]
 
@@:
mov esi, [d_colors - 13 * 4 + edx * 4]
mov esi, [esi]
int 0x40
add ecx, 10 * 65536
inc edx
cmp edx, 13 + 5 ; 5 êíîïîê
cmp edx, 13 + 5 ; 5 (buttons)
jne @b
 
; Ïèøèì çàãðóçêó ïðîöåññîðà
; info, test, config, about buttons
; Create 4 buttons
mov edi, 250 * 65536 + 25
mov ecx, 4
mov eax, 8
mov ebx, 10 * 65536 + 70
mov edx, 2
n_bt:
push ecx
mov ecx, edi
mov esi, tcol
cmp byte [act_tab], dl
jne na1
mov esi, atcol
na1:
int 0x40
inc edx
add ebx, 73 * 65536
pop ecx
loop n_bt
 
; write name tabs
mov eax, 4
mov ebx, (18 shl 16) + 256
mov edx, tab_lab
mov ecx, 0x10000000
mov esi, 4
int 0x40
add ebx, (72 shl 16)
mov edx, tab_lab.2
mov esi, 5
int 0x40
add ebx, (72 shl 16)
mov edx, tab_lab.3
mov esi, 7
int 0x40
add ebx, (72 shl 16)
mov edx, tab_lab.4
mov esi, 5
int 0x40
 
; create a frame at the bottom of the screen
mov eax, 13
mov ebx, 10 * 65536 + 290
mov ecx, 275 * 65536 + 160
mov edx, atcol
int 0x40
mov ebx, 12 * 65536 + 286
mov ecx, 277 * 65536 + 156
mov edx, tcol
int 0x40
 
; draw the selected tab
mov al, [act_tab]
cmp al, 2
je info_tab
cmp al, 3
je test_tab
cmp al, 4
je config_tab
jmp about_tab
;--- Drow Info tab ---------------
info_tab:
include "tab_info.inc"
;--- Drow test tab ---------------
test_tab:
include "tab_test.inc"
;--- Drow Config tab -------------
config_tab:
include "tab_conf.inc"
;--- Drow About tab --------------
about_tab:
include "tab_about.inc"
 
redraw:
 
; frame for graph
 
mov eax, 13
mov ebx, 12 * 65536 + 286
mov ecx, 140 * 65536 + 101
mov edx, tcol
int 0x40
mov eax, 38
mov edx, atcol
mov ebx, 12 * 65536 + 286 + 12
mov ecx, 140 * 65536 + 140
@@: add ecx, 10 * 65536 + 10
int 0x40
cmp cx, 230 ; привязано к координатам окна
jl @b
 
; write CPU usage
call cpu_usage
;--- äîáàâëÿåì íà ãðàôèê ---
;--- добавляем на график ---
mov esi, d_cpu_load
call d_add
call d_show
248,11 → 354,12
mov edx, 121 * 65536 + 30
xor esi, esi
call digit_len
clear_prev_no edx
int 0x40
 
; Ïèøèì èñïîëüçóåìóþ ïàìÿòü
; write used memory
call mem_usage
;--- äîáàâëÿåì íà ãðàôèê ---
;--- добавляем на график ---
mov esi, d_mem_usage
call d_add
call d_show
262,12 → 369,13
mov edx, 121 * 65536 + 40
xor esi, esi
call digit_len
clear_prev_no edx
int 0x40
 
cmp byte[hwm_enable], 0
jne show_mon
; Íåò äàò÷èêîâ - ïèøåì NO
mov ecx, 8 ;<- êîëè÷åñòâî ïàðàìåòðîâ
; Нет датчиков - пишем NO
mov ecx, 8 ;<- number of parameters
mov eax, 4
mov ebx, 121 * 65536 + 50
mov edx, msg_no
276,7 → 384,7
add ebx, 10
loop @b
 
mov ecx, 7 ;<- êîëè÷åñòâî ïàðàìåòðîâ
mov ecx, 7 ;<- number of parameters
mov ebx, 260 * 65536 + 30
@@: int 0x40
add ebx, 10
284,10 → 392,10
 
jmp no_monitor
show_mon:
;Åñòü äàò÷èêè ïèøèì èíôó
;Есть датчики пишим инфу
call hwm_get_params
;---------------------------
; Òåìïåðàòóðó
; Температуру
mov ecx, 3
mov esi, hwm_temps
mov edx, 121 * 65536 + 50
295,7 → 403,7
sh_temp:push ecx
lodsw
push esi
; ðåàêöèÿ íà èçìåíåíèÿ
; реакция на изменения
xor esi, esi
cmp [old_t1 + ecx * 4 - 4], eax
je @f
305,6 → 413,7
push eax
mov eax, 47
mov ebx, 0x20000
clear_prev_no edx
int 0x40
pop eax
mov cl, ah
316,17 → 425,17
pop esi
pop ecx
loop sh_temp
;;--- äîáàâëÿåì íà ãðàôèê temp1 ---
;;--- Add to the chart temp1 ---
movzx eax, word[hwm_temps]
mov esi, d_temp1
call d_add
call d_show
;;--- äîáàâëÿåì íà ãðàôèê temp2 ---
;;--- Add to the chart temp2 ---
movzx eax, word[hwm_temps + 2]
mov esi, d_temp2
call d_add
call d_show
;;--- äîáàâëÿåì íà ãðàôèê temp3 ---
;;--- Add to the chart temp3 ---
movzx eax, word[hwm_temps + 4]
mov esi, d_temp3
call d_add
333,7 → 442,7
call d_show
 
;---------------------------
; Ñêîðîñòè âðàøåíèÿ âåíòèëåé
; Скорости врашения вентилей
mov ecx, 5
mov esi, hwm_rpms
mov edx, 121 * 65536 + 80
340,7 → 449,7
sh_fan: push ecx
lodsd
push esi
;ðåàêöèÿ íà èçìåíåíèÿ
;реакция на изменения
xor esi, esi
cmp [old_f1 + ecx * 4 - 4], eax
je @f
349,6 → 458,7
@@: mov ecx, eax
call digit_len
mov eax, 47
clear_prev_no edx
int 0x40
add edx, 10
pop esi
356,7 → 466,7
loop sh_fan
 
;---------------------------
; Íàïðóãè
; Напруги
mov esi, hwm_voltages
mov edi, old_volts
mov ecx, 7
366,7 → 476,7
push ecx
push esi
call ftoa
;ðåàêöèÿ íà èçìåíåíèÿ
;реакция на изменения
xor ecx, ecx
fld dword [esi]
fsub dword [edi]
381,7 → 491,7
sahf
jc @f
mov ecx, val_mod
@@: mov esi, Data_String ; ñ÷èòàåì êîë-âî ñèìâîëîâ
@@: mov esi, Data_String ; считаем кол-во символов
@@: lodsb
test al, al
jnz @b
397,78 → 507,16
 
no_monitor:
;---------------------------
; Ñîçäà¸ì êíîïêè âêëàäîê
mov edi, 250 * 65536 + 25
mov ecx, 4
mov eax, 8
mov ebx, 10 * 65536 + 70
mov edx, 2
n_bt: push ecx
mov ecx, edi
mov esi, tcol
cmp byte [act_tab], dl
jne na1
mov esi, atcol
na1: int 0x40
inc edx
add ebx, 73 * 65536
pop ecx
loop n_bt
; Ïèøèì íàçâàíèÿ âêëàäîê
mov eax, 4
mov ebx, (18 shl 16) + 256
mov edx, tab_lab
mov ecx, 0x10000000
mov esi, 4
int 0x40
add ebx, (72 shl 16)
mov edx, tab_lab.2
mov esi, 5
int 0x40
add ebx, (72 shl 16)
mov edx, tab_lab.3
mov esi, 7
int 0x40
add ebx, (72 shl 16)
mov edx, tab_lab.4
mov esi, 5
int 0x40
; ñîçäà¸ì ðàìêó âíèçó ýêðàíà
mov eax, 13
mov ebx, 10 * 65536 + 290
mov ecx, 275 * 65536 + 160
mov edx, atcol
int 0x40
mov ebx, 12 * 65536 + 286
mov ecx, 277 * 65536 + 156
mov edx, tcol
int 0x40
; ðèñóåì âûáðàííóþ âêëàäêó
mov al, [act_tab]
mov al, [act_tab] ; check if info tab is active
cmp al, 2
je info_tab
cmp al, 3
je test_tab
cmp al, 4
je config_tab
jmp about_tab
jne end_drow_tab
jmp free_mem ; in tab_info.inc
 
end_drow_tab:
mov eax, 12
mov ebx, 2
int 0x40
jmp wait_for_event
;--- Drow Info tab ---------------
info_tab:
include "tab_info.inc"
;--- Drow test tab ---------------
test_tab:
include "tab_test.inc"
;--- Drow Config tab -------------
config_tab:
include "tab_conf.inc"
;--- Drow About tab --------------
about_tab:
include "tab_about.inc"
;---------------------------------------------------------------------
include "system.inc"
include "hwm.inc"
476,7 → 524,7
 
 
DATA
act_tab db 2 ; Íîìåð àêòèâíîé âêëàäêè
act_tab db 2 ; active tab number
tab_lab:
.1: db 'Info'
.2: db 'Tests'
508,19 → 556,19
msg_yes db 'Yes'
msg_no db 'N/A'
 
update_time dd 300 ; ïåðèîä îáíîâëåíèÿ â ñîòûõ äîëÿõ ñåêóíäû
update_time dd 300 ; период обновления в сотых долях секунды
d_colors dd d_cpu_load, d_mem_usage, d_temp1, d_temp2, d_temp3
c_eps dd 0.01
 
; Öâåòà ãðàôèêîâ
colors: dd 0xff0000, 0xff00, 0xff, 0xffffff, tcol, 0xFF7E23, 0x8BA169, 0xff0000 ; ïåðâûé è ïîñëåäíèé ðàâíû
; Цвета графиков
colors: dd 0xff0000, 0xff00, 0xff, 0xffffff, tcol, 0xFF7E23, 0x8BA169, 0xff0000 ; первый и последний равны
colors_end:
;---------------------------------------------------------------------
UDATA
 
test_pid dd ? ; åñëè test_id == 0 - íå èìååò ñìûñëà
test_id db ? ; 0 - òåñò íå çàïóøåí (ñîîòâåòñòâóåò ¹ êíîïêè 6..10)
diag_add_v db ? ; 0 - íå äîáàâëÿòü äàííûå íà ãðàôèê, !0 - äîáàâëÿòü
test_pid dd ? ; если test_id == 0 - не имеет смысла
test_id db ? ; 0 - тест не запушен (соответствует № кнопки 6..10)
diag_add_v db ? ; 0 - не добавлять данные на график, !0 - добавлять
 
Vendor: times 12 db ?
CPU_fam: db ?
528,8 → 576,8
CPU_type: db ?
CPU_mmx: db ?
 
; Äëÿ ðåàêöèè íà èçìåíåíèÿ
old_t1: dd ? ; ïîñëåäíåå çíà÷åíèå temp1
; Для реакции на изменения
old_t1: dd ? ; последнее значение temp1
old_t2: dd ? ; ...
old_t3: dd ?
old_f1: dd ?
537,7 → 585,7
old_f3: dd ?
old_volts: times 7 dd ?
 
; Ãðôèêè
; Грфики
diag_beg:
d_cpu_load: dd ?
times 286 db ?
555,7 → 603,7
times 286 db ?
diag_end:
 
; --- ñòåê òåñòà, âîèçáåæàíèå ãëþêîâ íå ïåðåíîñèòü â äðóãîå ìåñòî ----
; --- стек теста, воизбежание глюков не переносить в другое место ----
th_stack: times 1024 db ?
stp:
;---------------------------------------------------------------------
/programs/system/gmon/macros.inc
335,7 → 335,20
end if
}
 
macro clear_prev_no arg1 ; clears previous number printed at arg1
{
pusha
mov ebx, 0x00070000
mov ecx, 1000000 ; dummy value
mov edx, arg1
mov esi, 0x40000000 + tcol
mov edi, tcol ; bg col
mov eax, 47
int 0x40
popa
}
 
 
struc POINT _t,_dx,_dy {
.x _t _dx
.y _t _dy
/programs/system/gmon/tab_about.inc
1,5 → 1,5
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
7,7 → 7,7
mov edx, msg_about
mov ebx, 17 * 65536 + 285
call show_text
jmp end_drow_tab
jmp redraw
 
if lang eq it
msg_about mls \
26,7 → 26,7
'',\
' *** Usare a prioprio rischio ***'
else
msg_about mls \ ; äîëæíà áûòü õîòÿáû îäíà ñòðîêà
msg_about mls \ ; должна быть хотябы одна строка
' Ghost Monitor',\
'',\
' tool for testing and monitoring hardware',\
/programs/system/gmon/tab_conf.inc
1,14 → 1,14
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
;
;
; Âêëàäêà íàñòðîåê
; Вкладка настроек
;
 
; Âðåìÿ îáíîâëåíèÿ
; Время обновления
mov eax, 8
mov ebx, 200 * 65536 + 15
mov ecx, 280 * 65536 + 15
40,7 → 40,7
mov eax, 47
int 0x40
; Ðàññòàâëÿåì äâîåòî÷èÿ
; Расставляем двоеточия
mov eax, 4
mov ebx, 152 * 65536 + 285
mov edx, dub_p
48,7 → 48,7
xor ecx, ecx
int 0x40
jmp end_drow_tab
jmp redraw
msg_cf_utime db 'Update time' ; 11
msg_cf_pm db '+ -' ; 4
/programs/system/gmon/tab_info.inc
1,27 → 1,27
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
 
;
;
; Âêëàäêà èíôîðìàöèè î ñèñòåìå
; Вкладка информации о системе
;
; Äîïèñàòü åù¸ ÷òîèòü (ìàëîâàòî áóäåò)
; Дописать ещё чтоить (маловато будет)
;
;
 
; Ïèøåì ïàðàìåòðû
; Пишем параметры
mov edx, lab_info_tab
mov ebx, 17 * 65536 + 285
call show_text
 
; Ïèøåì ïðîèçâîäèòåëÿ ïðîöåññîðà
; Пишем производителя процессора
mov edx, Vendor
mov esi, 12
mov ebx, 160 * 65536 + 285
int 0x40
; Ïîääåðæêà MMX
; Поддержка MMX
mov ebx, 160 * 65536 + 305
mov esi, 3
mov edx, msg_yes
29,13 → 29,13
je mmx_en
mov edx, msg_no
mmx_en: int 0x40
; ×èï ìîíèòîðèíãà
; Чип мониторинга
mov edx, [hwm_chip_name]
or ecx, 0x80000000
mov ebx, 160 * 65536 + 325
mov al, 4
int 0x40
; ×àñòîòà ïðîöåññîðà
; Частота процессора
mov eax, 18
mov ebx, 5
int 0x40
50,7 → 50,7
xor esi, esi
int 0x40
 
; push eax ; Âåðíóòü êîä ïîñëå èñïðàâëåíèÿ ftoa
; push eax ; Вернуть код после исправления ftoa
; fild dword[esp]
; push 1000;000
; fidiv dword[esp]
67,7 → 67,7
; pop eax
; pop eax
 
; Ñåìåéñòâî è ìîäåëü ïðîöåññîðà
; Семейство и модель процессора
mov eax, 47
mov ebx, 0x10100
xor ecx, ecx
79,7 → 79,7
add edx, 10 * 65536
int 0x40
 
; êîýôôèöèåíò óìíîæåíèÿ
; коэффициент умножения
call multiplier
test ecx, ecx
jz @f
100,25 → 100,13
pop eax
pop eax
@@:
; Ñâîáîäíàÿ ïàìÿòü
if (OS_version >= 0x0530)
mov eax, 18
mov ebx, 16
int 0x40
mov ecx, eax
call digit_len
mov eax, 47
mov edx, 160 * 65536 + 335
xor esi, esi
int 0x40
end if
 
; Ðàññòàâëÿåì äâîåòî÷èÿ
; Расставляем двоеточия
mov eax, 4
mov ebx, 152 * 65536 + 285
mov edx, dub_p
mov esi, 1
mov ecx, 6 ; <- êîëè÷åñòâî ñòðîê
mov ecx, 6 ; <- количество строк
nxt_dp: push ecx
xor ecx, ecx
int 0x40
126,7 → 114,24
pop ecx
loop nxt_dp
;---------------------------------------------------------------------
jmp redraw
free_mem:
; Свободная память
if (OS_version >= 0x0530)
mov eax, 18
mov ebx, 16
int 0x40
mov ecx, eax
call digit_len
mov eax, 47
mov edx, 160 * 65536 + 335
xor esi, esi
clear_prev_no edx
int 0x40
end if
jmp end_drow_tab
dub_p db ':'
 
if lang eq it
/programs/system/gmon/tab_test.inc
1,9 → 1,9
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
;
; Âêëàäêà òåñòîâ
; Вкладка тестов
;
; "GenuineIntel" - International Electronics
; "GenuineTMx86" - Transmeta Processor
59,7 → 59,7
jne k7n
mov esi, atcol
k7n: int 0x40
; Ïèøåì íàçâàíèÿ êíîïîê
; Пишем названия кнопок
mov eax, 4
mov ebx, 30 * 65536 + 307
mov esi, 7
110,7 → 110,7
mov edx, atcol
int 0x40
 
jmp end_drow_tab
jmp redraw
 
tmsg_p db 'Pentium (Pro/II/III)' ; 7/20
tmsg_k6 db 'K6 (I/II/III)' ; 13
/programs/system/gmon/tests.inc
1,5 → 1,5
;
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
; All Right Reserved
;
9,10 → 9,10
 
; adapted by Mihailov Ilia
;
; Çàìåòêè :
; ïåðåïèñòü ðåàêöèþ íà îøèáêè
; Заметки :
; переписть реакцию на ошибки
 
k6:
k6_:
finit
push ebp
mov ebp, esp
67,7 → 67,7
int 0x40
;#######################################################################
;#######################################################################
k7: finit
k7_: finit
mov ebp, esp
and ebp,-32
sub esp,96