Subversion Repositories Kolibri OS

Rev

Rev 241 | Rev 250 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 241 Rev 243
1
;
1
;
2
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
2
; Ghost Monitor - óòèëèòà (ñòðåññ) òåñòèðîâàíèÿ è ìîíèòîðèíãà ñèñòåìû
3
; ÂÎÇÌÎÆÍÀ ÏÎÐ×À ÎÁÎÐÓÄÎÂÀÍÈß!
3
; ÂÎÇÌÎÆÍÀ ÏÎÐ×À ÎÁÎÐÓÄÎÂÀÍÈß!
4
; ÈÑÏÎËÜÇÓÉÒÅ ÍÀ ÑÂÎÉ ÑÒÐÀÕ È ÐÈÑÊ!
4
; ÈÑÏÎËÜÇÓÉÒÅ ÍÀ ÑÂÎÉ ÑÒÐÀÕ È ÐÈÑÊ!
5
;
5
;
6
; Çàìåòêè :
6
; Çàìåòêè :
7
;	Äîïèñàòü çàïóñê òåñòîâ (rtst) (íåò ðåàêöèè íà îøèáêó çàïóñêà)
7
;	Äîïèñàòü çàïóñê òåñòîâ (rtst) (íåò ðåàêöèè íà îøèáêó çàïóñêà)
8
;	Ïåðåäåëàòü îáíîâëåíèå ãðàôèêà (ñäåëàòü îòäåëüíûì ïðîöåññîì)
8
;	Ïåðåäåëàòü îáíîâëåíèå ãðàôèêà (ñäåëàòü îòäåëüíûì ïðîöåññîì)
9
;	Äîáàâèòü ðåàêöèþ íà ïàðàìåòðû äàò÷èêîâ
9
;	Äîáàâèòü ðåàêöèþ íà ïàðàìåòðû äàò÷èêîâ
10
;
10
;
11
; Èñòîðèÿ :
11
; Èñòîðèÿ :
12
;         09/2005 - íà÷àëî
12
;         09/2005 - íà÷àëî
13
;      04/10/2005 - îòêîììåíòèðîâàë êîä
13
;      04/10/2005 - îòêîììåíòèðîâàë êîä
14
;      09/11/2005 - äîïèñàíû òåñòû (ïîêà íåò òåñòà ïàìÿòè)
14
;      09/11/2005 - äîïèñàíû òåñòû (ïîêà íåò òåñòà ïàìÿòè)
15
;      30/01/2006 - äîáàâëåííû ãðàôèêè
15
;      30/01/2006 - äîáàâëåííû ãðàôèêè
16
;      02/02/2006 - Äîáàâëåíà íàñòðîéêà âðåìåíè îáíîâëåíèÿ
16
;      02/02/2006 - Äîáàâëåíà íàñòðîéêà âðåìåíè îáíîâëåíèÿ
17
;      10/02/2006 - äîáàâëåííà åùå èíôîðìàöèÿ ñ äàò÷èêîâ, îïò. wb_get_chip_name
17
;      10/02/2006 - äîáàâëåííà åùå èíôîðìàöèÿ ñ äàò÷èêîâ, îïò. wb_get_chip_name
18
;      01/03/2006 - äîáàâëåííà åùå èíôîðìàöèÿ ñ äàò÷èêîâ
18
;      01/03/2006 - äîáàâëåííà åùå èíôîðìàöèÿ ñ äàò÷èêîâ
19
;      16/03/2006 - îïòèìèçèðîâàíà ïî ðàçìåðó
19
;      16/03/2006 - îïòèìèçèðîâàíà ïî ðàçìåðó
20
;      17/03/2006 - ïîäñâåòêà èçìåí¸ííûõ ïàðàìåòðîâ, îïòèìèçàöèÿ, about
20
;      17/03/2006 - ïîäñâåòêà èçìåí¸ííûõ ïàðàìåòðîâ, îïòèìèçàöèÿ, about
21
;      20/03/2006 - Ïóáëèêàöèÿ
21
;      20/03/2006 - Ïóáëèêàöèÿ
22
;               ---  v 0.2 ---
22
;               ---  v 0.2 ---
23
;      24/03/2006 - Äîáàâëåííà ïîääåðæêà IT8705F, IT8712F è SIS950
23
;      24/03/2006 - Äîáàâëåííà ïîääåðæêà IT8705F, IT8712F è SIS950
24
;      25/03/2006 - Âûâîä òð¸õ òåìïåðàòóð è òð¸õ âåíòèëåé
24
;      25/03/2006 - Âûâîä òð¸õ òåìïåðàòóð è òð¸õ âåíòèëåé
25
;      28/03/2006 - Ãðàôèê temp3 è èçìåíåíèå öâåòà ãðàôèêîâ, îáðàáîòêà îòðèöàòåëüíûõ çíà÷åíèé ãðàôèêà
25
;      28/03/2006 - Ãðàôèê temp3 è èçìåíåíèå öâåòà ãðàôèêîâ, îáðàáîòêà îòðèöàòåëüíûõ çíà÷åíèé ãðàôèêà
26
;      30/03/2006 - Îïòèìèçàöèÿ ïî ðàçìåðó âåðñèè îò 28/03/2006, ïåðåïèñàë ðèñîâàíèå ãðàôèêà
26
;      30/03/2006 - Îïòèìèçàöèÿ ïî ðàçìåðó âåðñèè îò 28/03/2006, ïåðåïèñàë ðèñîâàíèå ãðàôèêà
27
;      14/04/2006 - Èñïðàâèë ãðàôèê (jle -> jbe), äîáàâèë mem usage, âû÷èñëåíèå äëèííû ÷èñåë, çàêðûòèå ïî Esc
27
;      14/04/2006 - Èñïðàâèë ãðàôèê (jle -> jbe), äîáàâèë mem usage, âû÷èñëåíèå äëèííû ÷èñåë, çàêðûòèå ïî Esc
28
;      19/04/2006 - Î÷èñòêà íåèíèöèàëèçèðîâàííûõ äàííûõ
28
;      19/04/2006 - Î÷èñòêà íåèíèöèàëèçèðîâàííûõ äàííûõ
29
;               ---  v 0.3 ---
29
;               ---  v 0.3 ---
30
;      01/07/2006 - Ðàçëè÷èå ITE 8705F, ITE 8712F è IT8716F
30
;      01/07/2006 - Ðàçëè÷èå ITE 8705F, ITE 8712F è IT8716F
31
;      04/07/2006 - Äîáàâëåííû íàïðóãè äëÿ ÷èïîâ Winbond
31
;      04/07/2006 - Äîáàâëåííû íàïðóãè äëÿ ÷èïîâ Winbond
32
;      10/07/2006 - äîáàâëåííû íàïðóãè äëÿ ÷èïîâ ITE, ìíîæèòåëè äëÿ AMD K6, Intel P6, P7, îïòèìèçàöèÿ ïî ðàçìåðó
32
;      10/07/2006 - äîáàâëåííû íàïðóãè äëÿ ÷èïîâ ITE, ìíîæèòåëè äëÿ AMD K6, Intel P6, P7, îïòèìèçàöèÿ ïî ðàçìåðó
33
;      11/07/2006 - Ðåàêöèÿ íà èçìåíåíèå íàïðóãè, îïòèìèçàöèÿ ïî ðàçìåðó
33
;      11/07/2006 - Ðåàêöèÿ íà èçìåíåíèå íàïðóãè, îïòèìèçàöèÿ ïî ðàçìåðó
34
;      12/07/2006 - it87_get_fan_speed bug fix, çàâåðøåíèå òåñòà ïî 18/18
34
;      12/07/2006 - it87_get_fan_speed bug fix, çàâåðøåíèå òåñòà ïî 18/18
35
;      13/07/2006 - it87_get_fan_speed bug fix, èñïðàâëåí âûâîä ÷èñåë ñ ïëàâàþùåé òî÷êîé
35
;      13/07/2006 - it87_get_fan_speed bug fix, èñïðàâëåí âûâîä ÷èñåë ñ ïëàâàþùåé òî÷êîé
36
;      14/07/2006 - èñïðàâëåííû ïîêàçàíèÿ -12V äëÿ Winbond, îñòàëàñü ïðîáëåíìà ñ -5V
36
;      14/07/2006 - èñïðàâëåííû ïîêàçàíèÿ -12V äëÿ Winbond, îñòàëàñü ïðîáëåíìà ñ -5V
37
;      17/07/2006 - èñïðàâëåííà îøèáêà îïðåäåëåíèÿ ìíîæèòåëÿ äëÿ P6, äîáàâëåííû ìíîæèòåëè
37
;      17/07/2006 - èñïðàâëåííà îøèáêà îïðåäåëåíèÿ ìíîæèòåëÿ äëÿ P6, äîáàâëåííû ìíîæèòåëè
38
;      18/07/2006 - Óëè÷øèë âûâîä ìíîæèòåëÿ, èñïðàâëåííû ìíîæèòåëè äëÿ P6 Tualatin, config.inc
38
;      18/07/2006 - Óëè÷øèë âûâîä ìíîæèòåëÿ, èñïðàâëåííû ìíîæèòåëè äëÿ P6 Tualatin, config.inc
39
;      22/07/2006 - P6 multiplier bugfix
39
;      22/07/2006 - P6 multiplier bugfix
40
;      30/07/2006 - P6 multiplier bugfix
40
;      30/07/2006 - P6 multiplier bugfix
41
;               --- v 0.4 ---
41
;               --- v 0.4 ---
42
;      10/08/2006 - íà÷àòà ðàáîòà ïî ïîääåðæêå SMBus, ïåðåïèñàíû ôóíêöèè äëÿ ÷èïîâ ìîíèòîðèíãà
42
;      10/08/2006 - íà÷àòà ðàáîòà ïî ïîääåðæêå SMBus, ïåðåïèñàíû ôóíêöèè äëÿ ÷èïîâ ìîíèòîðèíãà
43
;      24/08/2006 - äîáàâëåííà ÷àñòîòà ïðîöåññîðà
43
;      24/08/2006 - äîáàâëåííà ÷àñòîòà ïðîöåññîðà
44
;      10/09/2006 - bugfix
44
;      10/09/2006 - bugfix
45
;      25/11/2006 - äîáàâëåí ABIT uGuru
45
;      25/11/2006 - äîáàâëåí ABIT uGuru
46
;      20/12/2006 - W83627DHG, W83627EHF, W83627EHG, mutipliers for AthonXP-M, Athlon64, Athlon64-M,
46
;      20/12/2006 - W83627DHG, W83627EHF, W83627EHG, mutipliers for AthonXP-M, Athlon64, Athlon64-M,
47
;            Intel Dothan, Yonah, Conroe, Merom
47
;            Intel Dothan, Yonah, Conroe, Merom
-
 
48
;      24/12/2006 - ITE chips model id bugfix by Serge
48
;
49
;
49
;    Ýé! Ó ìåíÿ íåò ìíîãî âðåìåíè.
50
;    Ýé! Ó ìåíÿ íåò ìíîãî âðåìåíè.
50
 
51
 
51
; Âíåøíèå ôàéëû :
52
; Âíåøíèå ôàéëû :
52
;	hwm*.inc	- ïðîöåäóðû ðàáîòû ñ äàò÷èêàìè ìîíèòîðèíãà
53
;	hwm*.inc	- ïðîöåäóðû ðàáîòû ñ äàò÷èêàìè ìîíèòîðèíãà
53
;	system.inc	- âû÷èñëåíèå çàãðóçêè ïðîöåññîðà, çàâåðøåíèå òåñòà, etc...
54
;	system.inc	- âû÷èñëåíèå çàãðóçêè ïðîöåññîðà, çàâåðøåíèå òåñòà, etc...
54
;	tests.inc	- òåñòû ;-)
55
;	tests.inc	- òåñòû ;-)
55
;	diag.inc	- ïîääåðæêà äèàãðàì
56
;	diag.inc	- ïîääåðæêà äèàãðàì
56
;	tab_*.inc	- ïðîöåäóðû îòðèñîâêè ñîîòâåòñòâóþøèõ âêëàäîê
57
;	tab_*.inc	- ïðîöåäóðû îòðèñîâêè ñîîòâåòñòâóþøèõ âêëàäîê
57
 
58
 
58
 
59
 
59
; Èäåíòèôèêàòîðû êíîïîê :
60
; Èäåíòèôèêàòîðû êíîïîê :
60
;	01 - Exit
61
;	01 - Exit
61
;	02 - Info tab
62
;	02 - Info tab
62
;	03 - Tests tab
63
;	03 - Tests tab
63
;	04 - Config tab
64
;	04 - Config tab
64
;	05 - About tab
65
;	05 - About tab
65
;	06 - P5 test
66
;	06 - P5 test
66
;	07 - P6 test
67
;	07 - P6 test
67
;	08 - K6 test
68
;	08 - K6 test
68
;	09 - K7 test
69
;	09 - K7 test
69
;	10 - MMX test	- not used
70
;	10 - MMX test	- not used
70
;	11 - Update time increment
71
;	11 - Update time increment
71
;	12 - Update time decriment
72
;	12 - Update time decriment
72
;	13..17 - Èçìåíåíèå öâåòà CPU_load, Mem_usage, Temp1, Temp2, Temp3
73
;	13..17 - Èçìåíåíèå öâåòà CPU_load, Mem_usage, Temp1, Temp2, Temp3
73
 
74
 
74
include 'config.inc'
75
include 'config.inc'
75
include 'macros.inc'
76
include 'macros.inc'
76
 
77
 
77
tcol	equ	0x5080d0
78
tcol	equ	0x5080d0
78
atcol	equ	0x4070c0
79
atcol	equ	0x4070c0
79
val_mod	equ	0x3090
80
val_mod	equ	0x3090
80
 
81
 
81
MEOS_APP_START
82
MEOS_APP_START
82
include "tests.inc"	; <-- Ìíîãî âûðàâíèâàíèé, ëó÷øå çäåñü
83
include "tests.inc"	; <-- Ìíîãî âûðàâíèâàíèé, ëó÷øå çäåñü
83
CODE
84
CODE
84
;--- Init ------------------------------------------------------------
85
;--- Init ------------------------------------------------------------
85
	; Î÷èùàåì íåèíèöèàëèçèðîâàííûå äàííûå
86
	; Î÷èùàåì íåèíèöèàëèçèðîâàííûå äàííûå
86
	mov	ecx, __memory - __udata
87
	mov	ecx, __memory - __udata
87
	mov	edi, __udata
88
	mov	edi, __udata
88
	xor	eax, eax
89
	xor	eax, eax
89
	rep	stosb
90
	rep	stosb
90
 
91
 
91
	xor	eax, eax
92
	xor	eax, eax
92
	cpuid					; Óçíà¸ì ïðîèçâîäèòåëÿ ïðîöà
93
	cpuid					; Óçíà¸ì ïðîèçâîäèòåëÿ ïðîöà
93
	mov	[Vendor + 0], ebx
94
	mov	[Vendor + 0], ebx
94
	mov	[Vendor + 4], edx
95
	mov	[Vendor + 4], edx
95
	mov	[Vendor + 8], ecx
96
	mov	[Vendor + 8], ecx
96
	mov	eax, 1
97
	mov	eax, 1
97
	cpuid					; Åñòü ëè MMX ?
98
	cpuid					; Åñòü ëè MMX ?
98
	mov	ecx, eax
99
	mov	ecx, eax
99
	shr	al, 4
100
	shr	al, 4
100
	and	ax, 0x0F0F
101
	and	ax, 0x0F0F
101
	mov	[CPU_fam], ah
102
	mov	[CPU_fam], ah
102
	mov	[CPU_mod], al
103
	mov	[CPU_mod], al
103
	shr	edx, 23
104
	shr	edx, 23
104
	and	dl, 1
105
	and	dl, 1
105
	mov	[CPU_mmx], dl
106
	mov	[CPU_mmx], dl
106
	shr	ecx, 12
107
	shr	ecx, 12
107
	and	cl, 11b
108
	and	cl, 11b
108
	mov	[CPU_type], cl
109
	mov	[CPU_type], cl
109
	
110
	
110
	; ! Öâåòà èç ìàññèâà colors
111
	; ! Öâåòà èç ìàññèâà colors
111
	mov	dword[d_cpu_load], 0xFF00	; èíèöèàëèçèðóåì ãðàôèê çàãðóçêè ÀËÓ
112
	mov	dword[d_cpu_load], 0xFF00	; èíèöèàëèçèðóåì ãðàôèê çàãðóçêè ÀËÓ
112
	mov	dword[d_mem_usage], 0x8BA169	; -- mem usega
113
	mov	dword[d_mem_usage], 0x8BA169	; -- mem usega
113
	mov	dword[d_temp1], 0xFF0000	; -- ãðàôèê òåìïåðàòóðû ÖÏÓ
114
	mov	dword[d_temp1], 0xFF0000	; -- ãðàôèê òåìïåðàòóðû ÖÏÓ
114
	mov	dword[d_temp2], 0xFF		; -- ãðàôèê òåìïåðàòóðû ÌÏ
115
	mov	dword[d_temp2], 0xFF		; -- ãðàôèê òåìïåðàòóðû ÌÏ
115
	mov	dword[d_temp3], 0xFF7E23
116
	mov	dword[d_temp3], 0xFF7E23
116
 
117
 
117
	call	hwm_init			; Èíèöèàëèçèðóåì ÷èï ìîíèòîðèíãà
118
	call	hwm_init			; Èíèöèàëèçèðóåì ÷èï ìîíèòîðèíãà
118
 
119
 
119
	jmp	draw_window
120
	jmp	draw_window
120
;--- Wait & translate event ------------------------------------------
121
;--- Wait & translate event ------------------------------------------
121
wait_for_event:
122
wait_for_event:
122
	mov	byte[diag_add_v], 0	; äîáàâëÿåì äàííûå ê ãðàôèêó òîëüêî ïî òàéìåðó
123
	mov	byte[diag_add_v], 0	; äîáàâëÿåì äàííûå ê ãðàôèêó òîëüêî ïî òàéìåðó
123
	mov	ebx, [update_time]
124
	mov	ebx, [update_time]
124
	mov	eax, 23
125
	mov	eax, 23
125
	int	0x40
126
	int	0x40
126
	test	eax, eax
127
	test	eax, eax
127
	jnz	@f
128
	jnz	@f
128
	inc	byte [diag_add_v]
129
	inc	byte [diag_add_v]
129
	inc	eax			; ïåðåðèñóåì îêíî (eax := 1)
130
	inc	eax			; ïåðåðèñóåì îêíî (eax := 1)
130
@@:	dec	eax			; redraw request ?
131
@@:	dec	eax			; redraw request ?
131
	jz	draw_window
132
	jz	draw_window
132
	dec	eax			; key in buffer ?
133
	dec	eax			; key in buffer ?
133
	jz	key
134
	jz	key
134
	dec	eax			; button in buffer ?
135
	dec	eax			; button in buffer ?
135
	jz	button
136
	jz	button
136
	jmp	wait_for_event
137
	jmp	wait_for_event
137
;--- Key pressed -----------------------------------------------------
138
;--- Key pressed -----------------------------------------------------
138
key:
139
key:
139
	mov	eax, 2
140
	mov	eax, 2
140
	int	0x40
141
	int	0x40
141
	cmp	ah, 27			; Esc - çàâåðøåíèå ðàáîòû
142
	cmp	ah, 27			; Esc - çàâåðøåíèå ðàáîòû
142
	je	exit
143
	je	exit
143
	jmp	wait_for_event
144
	jmp	wait_for_event
144
;--- Button down -----------------------------------------------------
145
;--- Button down -----------------------------------------------------
145
button:
146
button:
146
	mov	eax, 17			; get id
147
	mov	eax, 17			; get id
147
	int	0x40
148
	int	0x40
148
	cmp	ah, 1			; button id == 1 ?
149
	cmp	ah, 1			; button id == 1 ?
149
	jne	noexit
150
	jne	noexit
150
exit:	cmp	byte[test_id], 0
151
exit:	cmp	byte[test_id], 0
151
	je	@f
152
	je	@f
152
	call	stop_test
153
	call	stop_test
153
@@:	mov	eax, -1		; close this program
154
@@:	mov	eax, -1		; close this program
154
	int	0x40
155
	int	0x40
155
noexit:
156
noexit:
156
	; êíîïêè âêëàäîê (2 .. 5)
157
	; êíîïêè âêëàäîê (2 .. 5)
157
	cmp	ah, 5
158
	cmp	ah, 5
158
	jg	no_tabs
159
	jg	no_tabs
159
	mov	byte[act_tab], ah
160
	mov	byte[act_tab], ah
160
	jmp	draw_window
161
	jmp	draw_window
161
no_tabs:
162
no_tabs:
162
	; êíîïêè çàïóñêà òåñòâî (6 .. 10)
163
	; êíîïêè çàïóñêà òåñòâî (6 .. 10)
163
	cmp	ah, 10
164
	cmp	ah, 10
164
	jg	no_test_bt
165
	jg	no_test_bt
165
	; åñëè íåò çàïóùåíûõ òåñòîâ - çàïóñêàåì âûáðàííûé
166
	; åñëè íåò çàïóùåíûõ òåñòîâ - çàïóñêàåì âûáðàííûé
166
	cmp	byte[test_id], 0
167
	cmp	byte[test_id], 0
167
	je	run_test
168
	je	run_test
168
	; åñëè êíîïêà àêòèâíîãî òåñòà - îñòàíàâëèâàåì òåñò, èíà÷å íè÷åãî íå äåëàåì	
169
	; åñëè êíîïêà àêòèâíîãî òåñòà - îñòàíàâëèâàåì òåñò, èíà÷å íè÷åãî íå äåëàåì	
169
	cmp	[test_id], ah
170
	cmp	[test_id], ah
170
	jne	wait_for_event
171
	jne	wait_for_event
171
	call	stop_test
172
	call	stop_test
172
	jmp	draw_window
173
	jmp	draw_window
173
 
174
 
174
tsts:	dd	p5, p6, k6, k7
175
tsts:	dd	p5, p6, k6, k7
175
run_test:
176
run_test:
176
	push	eax
177
	push	eax
177
	movzx	ecx, ah
178
	movzx	ecx, ah
178
	mov	ecx, [tsts + (ecx * 4) - (6 * 4)]
179
	mov	ecx, [tsts + (ecx * 4) - (6 * 4)]
179
rtst:	mov	eax, 51
180
rtst:	mov	eax, 51
180
	mov	edx, stp
181
	mov	edx, stp
181
	mov	ebx, 1
182
	mov	ebx, 1
182
	int	0x40
183
	int	0x40
183
	cmp	eax, 0xFFFFFFF0	; -16
184
	cmp	eax, 0xFFFFFFF0	; -16
184
	je	wait_for_event	; <-- îøèáêà çàïóñêà òåñòà, ÏÅÐÅÏÈÑÀÒÜ
185
	je	wait_for_event	; <-- îøèáêà çàïóñêà òåñòà, ÏÅÐÅÏÈÑÀÒÜ
185
	mov	[test_pid], eax
186
	mov	[test_pid], eax
186
	pop	eax
187
	pop	eax
187
	mov	byte [test_id], ah
188
	mov	byte [test_id], ah
188
	jmp	draw_window
189
	jmp	draw_window
189
	;-------------------------
190
	;-------------------------
190
	; êíîïêè èçìåíåíèÿ âðåìåíè îáíîâëåíèÿ
191
	; êíîïêè èçìåíåíèÿ âðåìåíè îáíîâëåíèÿ
191
no_test_bt:
192
no_test_bt:
192
	cmp	ah, 11
193
	cmp	ah, 11
193
	jne	no_ut_inc
194
	jne	no_ut_inc
194
	add	dword[update_time], 10
195
	add	dword[update_time], 10
195
	jmp	draw_window
196
	jmp	draw_window
196
no_ut_inc:
197
no_ut_inc:
197
	cmp	ah, 12
198
	cmp	ah, 12
198
	jne	no_ut_dec
199
	jne	no_ut_dec
199
	cmp	dword[update_time], 10
200
	cmp	dword[update_time], 10
200
	jng	wait_for_event
201
	jng	wait_for_event
201
	sub	dword[update_time], 10
202
	sub	dword[update_time], 10
202
	jmp	draw_window
203
	jmp	draw_window
203
no_ut_dec:
204
no_ut_dec:
204
	;-------------------------
205
	;-------------------------
205
	; êíîïêè èçìåíåíèÿ öâåòà ãðàôèêîâ (13..17)
206
	; êíîïêè èçìåíåíèÿ öâåòà ãðàôèêîâ (13..17)
206
	cmp	ah, 17
207
	cmp	ah, 17
207
	jg	no_change_color
208
	jg	no_change_color
208
	sub	ah, 13
209
	sub	ah, 13
209
	movzx	ecx, ah
210
	movzx	ecx, ah
210
	mov	esi, [d_colors + ecx * 4]
211
	mov	esi, [d_colors + ecx * 4]
211
	mov	eax, [esi]
212
	mov	eax, [esi]
212
	mov	ecx, (colors_end - colors) / 4	; êîëè÷åñòâî öâåòîâ
213
	mov	ecx, (colors_end - colors) / 4	; êîëè÷åñòâî öâåòîâ
213
@@:	dec	ecx
214
@@:	dec	ecx
214
	cmp	eax, [colors + ecx * 4]
215
	cmp	eax, [colors + ecx * 4]
215
	jne	@b
216
	jne	@b
216
	mov	ebx, [colors + ecx * 4 - 4]
217
	mov	ebx, [colors + ecx * 4 - 4]
217
	mov	[esi], ebx
218
	mov	[esi], ebx
218
	jmp	draw_window
219
	jmp	draw_window
219
no_change_color:
220
no_change_color:
220
	jmp	wait_for_event
221
	jmp	wait_for_event
221
;---------------------------------------------------------------------
222
;---------------------------------------------------------------------
222
draw_window:
223
draw_window:
223
	mov	eax,12
224
	mov	eax,12
224
	mov	ebx,1
225
	mov	ebx,1
225
	int	0x40
226
	int	0x40
226
	; Ñîçäà¸ì îêíî
227
	; Ñîçäà¸ì îêíî
227
	xor	eax, eax
228
	xor	eax, eax
228
	mov	ebx, 300 * 65536 + 309
229
	mov	ebx, 300 * 65536 + 309
229
	mov	ecx, 150 * 65536 + 450
230
	mov	ecx, 150 * 65536 + 450
230
	mov	edx, tcol + 0x3000000	; color of work area RRGGBB,8->color
231
	mov	edx, tcol + 0x3000000	; color of work area RRGGBB,8->color
231
	mov	esi, 0x805080d0		; color of grab bar  RRGGBB,8->color
232
	mov	esi, 0x805080d0		; color of grab bar  RRGGBB,8->color
232
	mov	edi, 0x005080d0		; color of frames    RRGGBB
233
	mov	edi, 0x005080d0		; color of frames    RRGGBB
233
	int	0x40
234
	int	0x40
234
	; Ñîçäà¸ì ðàìêó ãðàôèêà
235
	; Ñîçäà¸ì ðàìêó ãðàôèêà
235
	mov	eax, 13
236
	mov	eax, 13
236
	mov	ebx, 10 * 65536 + 290
237
	mov	ebx, 10 * 65536 + 290
237
	mov	ecx, 138 * 65536 + 105
238
	mov	ecx, 138 * 65536 + 105
238
	mov	edx, atcol
239
	mov	edx, atcol
239
	int	0x40
240
	int	0x40
240
	mov	ebx, 12 * 65536 + 286
241
	mov	ebx, 12 * 65536 + 286
241
	mov	ecx, 140 * 65536 + 101
242
	mov	ecx, 140 * 65536 + 101
242
	mov	edx, tcol
243
	mov	edx, tcol
243
	int	0x40
244
	int	0x40
244
	mov	eax, 38
245
	mov	eax, 38
245
	mov	edx, atcol
246
	mov	edx, atcol
246
	mov	ebx, 12 * 65536 + 286 + 12
247
	mov	ebx, 12 * 65536 + 286 + 12
247
	mov	ecx, 140 * 65536 + 140
248
	mov	ecx, 140 * 65536 + 140
248
@@:	add	ecx, 10 * 65536 + 10
249
@@:	add	ecx, 10 * 65536 + 10
249
	int	0x40
250
	int	0x40
250
	cmp	cx, 230			; ïðèâÿçàíî ê êîîðäèíàòàì îêíà
251
	cmp	cx, 230			; ïðèâÿçàíî ê êîîðäèíàòàì îêíà
251
	jl	@b
252
	jl	@b
252
	; Ïèøèì çàãîëîâîê
253
	; Ïèøèì çàãîëîâîê
253
	mov	eax, 4
254
	mov	eax, 4
254
	mov	ebx, 8 * 65536 + 8
255
	mov	ebx, 8 * 65536 + 8
255
	mov	edx, title
256
	mov	edx, title
256
	mov	ecx, 0x10FFFFFF
257
	mov	ecx, 0x10FFFFFF
257
	mov	esi, 29
258
	mov	esi, 29
258
	int	0x40
259
	int	0x40
259
	
260
	
260
	; Ïèøèì íàçâàíèÿ ïàðàìåòðîâ (Cpu load, temper, etc...)
261
	; Ïèøèì íàçâàíèÿ ïàðàìåòðîâ (Cpu load, temper, etc...)
261
	mov	edx, msgs_mon
262
	mov	edx, msgs_mon
262
	mov	ebx, 17 * 65536 + 30
263
	mov	ebx, 17 * 65536 + 30
263
	call	show_text
264
	call	show_text
264
	
265
	
265
	mov	edx, msgs_mon2
266
	mov	edx, msgs_mon2
266
	mov	ebx, 156 * 65536 + 30
267
	mov	ebx, 156 * 65536 + 30
267
	call	show_text
268
	call	show_text
268
	
269
	
269
	; Ðèñóåì êíîïêè ñìåíû öâåòà
270
	; Ðèñóåì êíîïêè ñìåíû öâåòà
270
	mov	eax, 8
271
	mov	eax, 8
271
	mov	ebx, 112 * 65536 + 5
272
	mov	ebx, 112 * 65536 + 5
272
	mov	ecx, 30 * 65536 + 6
273
	mov	ecx, 30 * 65536 + 6
273
	mov	edx, 13
274
	mov	edx, 13
274
@@:	mov	esi, [d_colors - 13 * 4 + edx * 4]
275
@@:	mov	esi, [d_colors - 13 * 4 + edx * 4]
275
	mov	esi, [esi]
276
	mov	esi, [esi]
276
	int	0x40
277
	int	0x40
277
	add	ecx, 10 * 65536
278
	add	ecx, 10 * 65536
278
	inc	edx
279
	inc	edx
279
	cmp	edx, 13 + 5		; 5 êíîïîê
280
	cmp	edx, 13 + 5		; 5 êíîïîê
280
	jne	@b
281
	jne	@b
281
	
282
	
282
	; Ïèøèì çàãðóçêó ïðîöåññîðà
283
	; Ïèøèì çàãðóçêó ïðîöåññîðà
283
	call	cpu_usage
284
	call	cpu_usage
284
	;--- äîáàâëÿåì íà ãðàôèê ---
285
	;--- äîáàâëÿåì íà ãðàôèê ---
285
	mov	esi, d_cpu_load
286
	mov	esi, d_cpu_load
286
	call	d_add
287
	call	d_add
287
	call	d_show
288
	call	d_show
288
	;---------------------------
289
	;---------------------------
289
	movzx	ecx, al
290
	movzx	ecx, al
290
	mov	eax, 47
291
	mov	eax, 47
291
	mov	edx, 121 * 65536 + 30
292
	mov	edx, 121 * 65536 + 30
292
	xor	esi, esi
293
	xor	esi, esi
293
	call	digit_len
294
	call	digit_len
294
	int	0x40
295
	int	0x40
295
	
296
	
296
	; Ïèøèì èñïîëüçóåìóþ ïàìÿòü
297
	; Ïèøèì èñïîëüçóåìóþ ïàìÿòü
297
	call	mem_usage
298
	call	mem_usage
298
	;--- äîáàâëÿåì íà ãðàôèê ---
299
	;--- äîáàâëÿåì íà ãðàôèê ---
299
	mov	esi, d_mem_usage
300
	mov	esi, d_mem_usage
300
	call	d_add
301
	call	d_add
301
	call	d_show
302
	call	d_show
302
	;---------------------------
303
	;---------------------------
303
	movzx	ecx, al
304
	movzx	ecx, al
304
	mov	eax, 47
305
	mov	eax, 47
305
	mov	edx, 121 * 65536 + 40
306
	mov	edx, 121 * 65536 + 40
306
	xor	esi, esi
307
	xor	esi, esi
307
	call	digit_len
308
	call	digit_len
308
	int	0x40
309
	int	0x40
309
	
310
	
310
	cmp	byte[hwm_enable], 0
311
	cmp	byte[hwm_enable], 0
311
	jne	show_mon
312
	jne	show_mon
312
	; Íåò äàò÷èêîâ - ïèøåì NO
313
	; Íåò äàò÷èêîâ - ïèøåì NO
313
	mov	ecx, 8	;<- êîëè÷åñòâî ïàðàìåòðîâ
314
	mov	ecx, 8	;<- êîëè÷åñòâî ïàðàìåòðîâ
314
	mov	eax, 4
315
	mov	eax, 4
315
	mov	ebx, 121 * 65536 + 50
316
	mov	ebx, 121 * 65536 + 50
316
	mov	edx, msg_no
317
	mov	edx, msg_no
317
	mov	esi, 3
318
	mov	esi, 3
318
@@:	int	0x40
319
@@:	int	0x40
319
	add	ebx, 10
320
	add	ebx, 10
320
	loop	@b
321
	loop	@b
321
 
322
 
322
	mov	ecx, 7	;<- êîëè÷åñòâî ïàðàìåòðîâ
323
	mov	ecx, 7	;<- êîëè÷åñòâî ïàðàìåòðîâ
323
	mov	ebx, 260 * 65536 + 30
324
	mov	ebx, 260 * 65536 + 30
324
@@:	int	0x40
325
@@:	int	0x40
325
	add	ebx, 10
326
	add	ebx, 10
326
	loop	@b
327
	loop	@b
327
 
328
 
328
	jmp	no_monitor
329
	jmp	no_monitor
329
show_mon:
330
show_mon:
330
	;Åñòü äàò÷èêè ïèøèì èíôó
331
	;Åñòü äàò÷èêè ïèøèì èíôó
331
	call	hwm_get_params
332
	call	hwm_get_params
332
	;---------------------------
333
	;---------------------------
333
	; Òåìïåðàòóðó
334
	; Òåìïåðàòóðó
334
	mov	ecx, 3
335
	mov	ecx, 3
335
	mov	esi, hwm_temps
336
	mov	esi, hwm_temps
336
	mov	edx, 121 * 65536 + 50
337
	mov	edx, 121 * 65536 + 50
337
	xor	eax, eax
338
	xor	eax, eax
338
sh_temp:push	ecx
339
sh_temp:push	ecx
339
	lodsw
340
	lodsw
340
	push	esi
341
	push	esi
341
	; ðåàêöèÿ íà èçìåíåíèÿ
342
	; ðåàêöèÿ íà èçìåíåíèÿ
342
	xor	esi, esi
343
	xor	esi, esi
343
	cmp	[old_t1 + ecx * 4 - 4], eax
344
	cmp	[old_t1 + ecx * 4 - 4], eax
344
	je	@f
345
	je	@f
345
	mov	[old_t1 + ecx * 4 - 4], eax
346
	mov	[old_t1 + ecx * 4 - 4], eax
346
	mov	esi, val_mod
347
	mov	esi, val_mod
347
@@:	movzx	ecx, al
348
@@:	movzx	ecx, al
348
	push	eax
349
	push	eax
349
	mov	eax, 47
350
	mov	eax, 47
350
	mov	ebx, 0x20000
351
	mov	ebx, 0x20000
351
	int	0x40
352
	int	0x40
352
	pop	eax
353
	pop	eax
353
	mov	cl, ah
354
	mov	cl, ah
354
	mov	eax, 47
355
	mov	eax, 47
355
	mov	ebx, 0x10000
356
	mov	ebx, 0x10000
356
	add	edx, 15 * 65536
357
	add	edx, 15 * 65536
357
	int	0x40
358
	int	0x40
358
	sub	edx, 15 * 65536 - 10
359
	sub	edx, 15 * 65536 - 10
359
	pop	esi
360
	pop	esi
360
	pop	ecx
361
	pop	ecx
361
	loop	sh_temp
362
	loop	sh_temp
362
	;;--- äîáàâëÿåì íà ãðàôèê temp1 ---
363
	;;--- äîáàâëÿåì íà ãðàôèê temp1 ---
363
	movzx	eax, word[hwm_temps]
364
	movzx	eax, word[hwm_temps]
364
	mov	esi, d_temp1
365
	mov	esi, d_temp1
365
	call	d_add
366
	call	d_add
366
	call	d_show
367
	call	d_show
367
	;;--- äîáàâëÿåì íà ãðàôèê temp2 ---
368
	;;--- äîáàâëÿåì íà ãðàôèê temp2 ---
368
	movzx	eax, word[hwm_temps + 2]
369
	movzx	eax, word[hwm_temps + 2]
369
	mov	esi, d_temp2
370
	mov	esi, d_temp2
370
	call	d_add
371
	call	d_add
371
	call	d_show
372
	call	d_show
372
	;;--- äîáàâëÿåì íà ãðàôèê temp3 ---
373
	;;--- äîáàâëÿåì íà ãðàôèê temp3 ---
373
	movzx	eax, word[hwm_temps + 4]
374
	movzx	eax, word[hwm_temps + 4]
374
	mov	esi, d_temp3
375
	mov	esi, d_temp3
375
	call	d_add
376
	call	d_add
376
	call	d_show
377
	call	d_show
377
 
378
 
378
	;---------------------------
379
	;---------------------------
379
	; Ñêîðîñòè âðàøåíèÿ âåíòèëåé
380
	; Ñêîðîñòè âðàøåíèÿ âåíòèëåé
380
	mov	ecx, 5
381
	mov	ecx, 5
381
	mov	esi, hwm_rpms
382
	mov	esi, hwm_rpms
382
	mov	edx, 121 * 65536 + 80
383
	mov	edx, 121 * 65536 + 80
383
sh_fan:	push	ecx
384
sh_fan:	push	ecx
384
	lodsd
385
	lodsd
385
	push	esi
386
	push	esi
386
	;ðåàêöèÿ íà èçìåíåíèÿ
387
	;ðåàêöèÿ íà èçìåíåíèÿ
387
	xor	esi, esi
388
	xor	esi, esi
388
	cmp	[old_f1 + ecx * 4 - 4], eax
389
	cmp	[old_f1 + ecx * 4 - 4], eax
389
	je	@f
390
	je	@f
390
	mov	[old_f1 + ecx * 4 - 4], eax
391
	mov	[old_f1 + ecx * 4 - 4], eax
391
	mov	esi, val_mod
392
	mov	esi, val_mod
392
@@:	mov	ecx, eax
393
@@:	mov	ecx, eax
393
	call	digit_len
394
	call	digit_len
394
	mov	eax, 47
395
	mov	eax, 47
395
	int	0x40
396
	int	0x40
396
	add	edx, 10	
397
	add	edx, 10	
397
	pop	esi
398
	pop	esi
398
	pop	ecx
399
	pop	ecx
399
	loop	sh_fan
400
	loop	sh_fan
400
	
401
	
401
	;---------------------------
402
	;---------------------------
402
	; Íàïðóãè
403
	; Íàïðóãè
403
	mov	esi, hwm_voltages
404
	mov	esi, hwm_voltages
404
	mov	edi, old_volts
405
	mov	edi, old_volts
405
	mov	ecx, 7
406
	mov	ecx, 7
406
	mov	ebx, 260 * 65536 + 30
407
	mov	ebx, 260 * 65536 + 30
407
	mov	edx, Data_String
408
	mov	edx, Data_String
408
volt_nxt:
409
volt_nxt:
409
	push	ecx
410
	push	ecx
410
	push	esi
411
	push	esi
411
	call	ftoa
412
	call	ftoa
412
	;ðåàêöèÿ íà èçìåíåíèÿ
413
	;ðåàêöèÿ íà èçìåíåíèÿ
413
	xor	ecx, ecx
414
	xor	ecx, ecx
414
	fld	dword [esi]
415
	fld	dword [esi]
415
	fsub	dword [edi]
416
	fsub	dword [edi]
416
	fabs
417
	fabs
417
	
418
	
418
	; fcomp	dword [c_eps]	; bug in MeOsEmul
419
	; fcomp	dword [c_eps]	; bug in MeOsEmul
419
	; fstsw	ax
420
	; fstsw	ax
420
	fcom	dword [c_eps]	; 0xBADCODE
421
	fcom	dword [c_eps]	; 0xBADCODE
421
	fstsw	ax
422
	fstsw	ax
422
	finit	
423
	finit	
423
	
424
	
424
	sahf
425
	sahf
425
	jc	@f
426
	jc	@f
426
	mov	ecx, val_mod
427
	mov	ecx, val_mod
427
@@:	mov	esi, Data_String	; ñ÷èòàåì êîë-âî ñèìâîëîâ
428
@@:	mov	esi, Data_String	; ñ÷èòàåì êîë-âî ñèìâîëîâ
428
@@:	lodsb
429
@@:	lodsb
429
	test	al, al
430
	test	al, al
430
	jnz	@b
431
	jnz	@b
431
	sub	esi, Data_String
432
	sub	esi, Data_String
432
	
433
	
433
	mov	eax, 4
434
	mov	eax, 4
434
	int	0x40
435
	int	0x40
435
	add	ebx, 10
436
	add	ebx, 10
436
	pop	esi
437
	pop	esi
437
	pop	ecx
438
	pop	ecx
438
	movsd
439
	movsd
439
	loop	volt_nxt
440
	loop	volt_nxt
440
	
441
	
441
no_monitor:
442
no_monitor:
442
	;---------------------------
443
	;---------------------------
443
	; Ñîçäà¸ì êíîïêè âêëàäîê
444
	; Ñîçäà¸ì êíîïêè âêëàäîê
444
	mov	edi, 250 * 65536 + 25
445
	mov	edi, 250 * 65536 + 25
445
	mov	ecx, 4
446
	mov	ecx, 4
446
	mov	eax, 8
447
	mov	eax, 8
447
	mov	ebx, 10 * 65536 + 70
448
	mov	ebx, 10 * 65536 + 70
448
	mov	edx, 2
449
	mov	edx, 2
449
n_bt:	push	ecx
450
n_bt:	push	ecx
450
	mov	ecx, edi
451
	mov	ecx, edi
451
	mov	esi, tcol
452
	mov	esi, tcol
452
	cmp	byte [act_tab], dl
453
	cmp	byte [act_tab], dl
453
	jne	na1
454
	jne	na1
454
	mov	esi, atcol
455
	mov	esi, atcol
455
na1:	int	0x40
456
na1:	int	0x40
456
	inc	edx
457
	inc	edx
457
	add	ebx, 73 * 65536
458
	add	ebx, 73 * 65536
458
	pop	ecx
459
	pop	ecx
459
	loop	n_bt
460
	loop	n_bt
460
	; Ïèøèì íàçâàíèÿ âêëàäîê
461
	; Ïèøèì íàçâàíèÿ âêëàäîê
461
	mov	eax, 4
462
	mov	eax, 4
462
	mov	ebx, 35 * 65536 + 260
463
	mov	ebx, 35 * 65536 + 260
463
	mov	edx, tab_lab
464
	mov	edx, tab_lab
464
	mov	ecx, 0x10000000
465
	mov	ecx, 0x10000000
465
	mov	esi, 39
466
	mov	esi, 39
466
	int	0x40
467
	int	0x40
467
	; ñîçäà¸ì ðàìêó âíèçó ýêðàíà
468
	; ñîçäà¸ì ðàìêó âíèçó ýêðàíà
468
	mov	eax, 13
469
	mov	eax, 13
469
	mov	ebx, 10 * 65536 + 290
470
	mov	ebx, 10 * 65536 + 290
470
	mov	ecx, 275 * 65536 + 160
471
	mov	ecx, 275 * 65536 + 160
471
	mov	edx, atcol
472
	mov	edx, atcol
472
	int	0x40
473
	int	0x40
473
	mov	ebx, 12 * 65536 + 286
474
	mov	ebx, 12 * 65536 + 286
474
	mov	ecx, 277 * 65536 + 156
475
	mov	ecx, 277 * 65536 + 156
475
	mov	edx, tcol
476
	mov	edx, tcol
476
	int	0x40
477
	int	0x40
477
	; ðèñóåì âûáðàííóþ âêëàäêó
478
	; ðèñóåì âûáðàííóþ âêëàäêó
478
	mov	al, [act_tab]
479
	mov	al, [act_tab]
479
	cmp	al, 2
480
	cmp	al, 2
480
	je	info_tab
481
	je	info_tab
481
	cmp	al, 3
482
	cmp	al, 3
482
	je	test_tab
483
	je	test_tab
483
	cmp	al, 4
484
	cmp	al, 4
484
	je	config_tab
485
	je	config_tab
485
	jmp	about_tab
486
	jmp	about_tab
486
end_drow_tab:
487
end_drow_tab:
487
	mov	eax, 12
488
	mov	eax, 12
488
	mov	ebx, 2
489
	mov	ebx, 2
489
	int	0x40
490
	int	0x40
490
	jmp	wait_for_event
491
	jmp	wait_for_event
491
;--- Drow Info tab ---------------
492
;--- Drow Info tab ---------------
492
info_tab:
493
info_tab:
493
	include	"tab_info.inc"
494
	include	"tab_info.inc"
494
;--- Drow test tab ---------------
495
;--- Drow test tab ---------------
495
test_tab:
496
test_tab:
496
	include "tab_test.inc"
497
	include "tab_test.inc"
497
;--- Drow Config tab -------------
498
;--- Drow Config tab -------------
498
config_tab:
499
config_tab:
499
	include "tab_conf.inc"
500
	include "tab_conf.inc"
500
;--- Drow About tab --------------
501
;--- Drow About tab --------------
501
about_tab:
502
about_tab:
502
	include "tab_about.inc"
503
	include "tab_about.inc"
503
;---------------------------------------------------------------------
504
;---------------------------------------------------------------------
504
	include	"system.inc"
505
	include	"system.inc"
505
	include "hwm.inc"
506
	include "hwm.inc"
506
	include "diag.inc"
507
	include "diag.inc"
507
	
508
	
508
 
509
 
509
DATA
510
DATA
510
act_tab		db	2 			; Íîìåð àêòèâíîé âêëàäêè
511
act_tab		db	2 			; Íîìåð àêòèâíîé âêëàäêè
511
tab_lab		db	'Info       Tests      Configs     About'
512
tab_lab		db	'Info       Tests      Configs     About'
512
title		db	'Ghost Monitor v0.4 [20/12/06]'
513
title		db	'Ghost Monitor v0.4 [24/12/06]'
513
 
514
 
514
msgs_mon mls \
515
msgs_mon mls \
515
	'CPU Load (%)',\
516
	'CPU Load (%)',\
516
	'Mem Usage(%)',\
517
	'Mem Usage(%)',\
517
	'Temp1',\
518
	'Temp1',\
518
	'Temp2',\
519
	'Temp2',\
519
	'Temp3',\
520
	'Temp3',\
520
	'Fan1',\
521
	'Fan1',\
521
	'Fan2',\
522
	'Fan2',\
522
	'Fan3',\
523
	'Fan3',\
523
	'Fan4',\
524
	'Fan4',\
524
	'Fan5'
525
	'Fan5'
525
	
526
	
526
msgs_mon2 mls \
527
msgs_mon2 mls \
527
	'Vcore',\
528
	'Vcore',\
528
	'AGP',\
529
	'AGP',\
529
	'+3.3V',\
530
	'+3.3V',\
530
	'AVcc (+5V)',\
531
	'AVcc (+5V)',\
531
	'+12V',\
532
	'+12V',\
532
	'-12V',\
533
	'-12V',\
533
	'-5V'
534
	'-5V'
534
 
535
 
535
msg_yes		db	'Yes'
536
msg_yes		db	'Yes'
536
msg_no		db	'N/A'
537
msg_no		db	'N/A'
537
 
538
 
538
update_time	dd	300			; ïåðèîä îáíîâëåíèÿ â ñîòûõ äîëÿõ ñåêóíäû
539
update_time	dd	300			; ïåðèîä îáíîâëåíèÿ â ñîòûõ äîëÿõ ñåêóíäû
539
d_colors	dd	d_cpu_load, d_mem_usage, d_temp1, d_temp2, d_temp3
540
d_colors	dd	d_cpu_load, d_mem_usage, d_temp1, d_temp2, d_temp3
540
c_eps		dd	0.01
541
c_eps		dd	0.01
541
 
542
 
542
; Öâåòà ãðàôèêîâ
543
; Öâåòà ãðàôèêîâ
543
colors:		dd	0xff0000, 0xff00, 0xff, 0xffffff, tcol, 0xFF7E23, 0x8BA169, 0xff0000	; ïåðâûé è ïîñëåäíèé ðàâíû
544
colors:		dd	0xff0000, 0xff00, 0xff, 0xffffff, tcol, 0xFF7E23, 0x8BA169, 0xff0000	; ïåðâûé è ïîñëåäíèé ðàâíû
544
colors_end:
545
colors_end:
545
;---------------------------------------------------------------------
546
;---------------------------------------------------------------------
546
UDATA
547
UDATA
547
 
548
 
548
test_pid	dd	?			; åñëè test_id == 0 - íå èìååò ñìûñëà
549
test_pid	dd	?			; åñëè test_id == 0 - íå èìååò ñìûñëà
549
test_id		db	?			; 0 - òåñò íå çàïóøåí (ñîîòâåòñòâóåò ¹ êíîïêè 6..10)
550
test_id		db	?			; 0 - òåñò íå çàïóøåí (ñîîòâåòñòâóåò ¹ êíîïêè 6..10)
550
diag_add_v	db	?			; 0 - íå äîáàâëÿòü äàííûå íà ãðàôèê, !0 - äîáàâëÿòü
551
diag_add_v	db	?			; 0 - íå äîáàâëÿòü äàííûå íà ãðàôèê, !0 - äîáàâëÿòü
551
 
552
 
552
Vendor:		times	12 db ?
553
Vendor:		times	12 db ?
553
CPU_fam:	db	?
554
CPU_fam:	db	?
554
CPU_mod:	db	?
555
CPU_mod:	db	?
555
CPU_type:	db	?
556
CPU_type:	db	?
556
CPU_mmx:	db	?
557
CPU_mmx:	db	?
557
 
558
 
558
; Äëÿ ðåàêöèè íà èçìåíåíèÿ
559
; Äëÿ ðåàêöèè íà èçìåíåíèÿ
559
old_t1:		dd	?	; ïîñëåäíåå çíà÷åíèå temp1
560
old_t1:		dd	?	; ïîñëåäíåå çíà÷åíèå temp1
560
old_t2:		dd	?	; ...
561
old_t2:		dd	?	; ...
561
old_t3:		dd	?
562
old_t3:		dd	?
562
old_f1:		dd	?
563
old_f1:		dd	?
563
old_f2:		dd	?
564
old_f2:		dd	?
564
old_f3:		dd	?
565
old_f3:		dd	?
565
old_volts:	times	7 dd ?
566
old_volts:	times	7 dd ?
566
 
567
 
567
; Ãðôèêè
568
; Ãðôèêè
568
diag_beg:
569
diag_beg:
569
d_cpu_load:	dd	?
570
d_cpu_load:	dd	?
570
		times 286 db ?
571
		times 286 db ?
571
		
572
		
572
d_mem_usage:	dd	?
573
d_mem_usage:	dd	?
573
		times 286 db ?
574
		times 286 db ?
574
		
575
		
575
d_temp1:	dd	?
576
d_temp1:	dd	?
576
		times 286 db ?
577
		times 286 db ?
577
		
578
		
578
d_temp2:	dd	?
579
d_temp2:	dd	?
579
		times 286 db ?
580
		times 286 db ?
580
 
581
 
581
d_temp3:	dd	?
582
d_temp3:	dd	?
582
		times 286 db ?
583
		times 286 db ?
583
diag_end:
584
diag_end:
584
 
585
 
585
; --- ñòåê òåñòà, âîèçáåæàíèå ãëþêîâ íå ïåðåíîñèòü â äðóãîå ìåñòî ----
586
; --- ñòåê òåñòà, âîèçáåæàíèå ãëþêîâ íå ïåðåíîñèòü â äðóãîå ìåñòî ----
586
th_stack:	times	1024 db ?
587
th_stack:	times	1024 db ?
587
stp:
588
stp:
588
;---------------------------------------------------------------------
589
;---------------------------------------------------------------------
589
MEOS_APP_END
590
MEOS_APP_END