Subversion Repositories Kolibri OS

Rev

Rev 6353 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
205 heavyiron 1
;
6353 nisargshah 2
; Ghost Monitor - утилита (стресс) тестирования и мониторинга системы
313 Ghost 3
; Copyright (C) 2005, 2006, 2007 Mihailov Ilia (ghost.nsk@mail.ru)
4
; All Right Reserved
5
;
6353 nisargshah 6
; ВОЗМОЖНА ПОРЧА ОБОРУДОВАНИЯ!
7
; ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!
205 heavyiron 8
;
6353 nisargshah 9
; Заметки :
10
;	Дописать запуск тестов (rtst) (нет реакции на ошибку запуска)
11
;	Переделать обновление графика (сделать отдельным процессом)
12
;	Добавить реакцию на параметры датчиков
205 heavyiron 13
;
14
 
6353 nisargshah 15
; Внешние файлы :
16
;	hwm*.inc	- процедуры работы с датчиками мониторинга
17
;	system.inc	- вычисление загрузки процессора, завершение теста, etc...
18
;	tests.inc	- тесты ;-)
19
;	diag.inc	- поддержка диаграм
20
;	tab_*.inc	- процедуры отрисовки соответствуюших вкладок
205 heavyiron 21
 
22
 
6353 nisargshah 23
; Identifier buttons :
205 heavyiron 24
;	01 - Exit
25
;	02 - Info tab
26
;	03 - Tests tab
27
;	04 - Config tab
28
;	05 - About tab
500 Ghost 29
;	06 - P5 test (tab_test.inc)
30
;	07 - P6 test (tab_test.inc)
31
;	08 - K6 test (tab_test.inc)
32
;	09 - K7 test (tab_test.inc)
33
;	10 - MMX test	- not used (tab_test.inc)
34
;	11 - Update time increment (tab_conf.inc)
35
;	12 - Update time decriment (tab_conf.inc)
6353 nisargshah 36
;	13..17 - Color Changing buttons CPU_load, Mem_usage, Temp1, Temp2, Temp3
205 heavyiron 37
 
38
include 'config.inc'
39
include 'macros.inc'
40
 
7134 dunkaist 41
macro clear_prev_no arg1        ; clears previous number printed at arg1
42
{
43
   pusha
44
   mov     ebx, 0x00070000
45
   mov     ecx, 1000000     ; dummy value
46
   mov     edx, arg1
47
   mov     esi, 0x40000000 + tcol
48
   mov     edi, tcol    ; bg col
49
   mov     eax, 47
50
   int     0x40
51
   popa
52
}
53
 
54
nl	equ	0x0d, 0x0a
55
 
56
 
205 heavyiron 57
tcol	equ	0x5080d0
58
atcol	equ	0x4070c0
5950 pathoswith 59
val_mod equ	0x3090
205 heavyiron 60
 
61
MEOS_APP_START
6353 nisargshah 62
include "tests.inc"	; <-- Много выравниваний, лучше здесь
205 heavyiron 63
CODE
64
;--- Init ------------------------------------------------------------
6353 nisargshah 65
	; Очищаем неинициализированные данные
205 heavyiron 66
	mov	ecx, __memory - __udata
67
	mov	edi, __udata
68
	xor	eax, eax
69
	rep	stosb
70
 
71
	xor	eax, eax
6353 nisargshah 72
	cpuid					; Узнаём производителя проца
205 heavyiron 73
	mov	[Vendor + 0], ebx
74
	mov	[Vendor + 4], edx
75
	mov	[Vendor + 8], ecx
76
	mov	eax, 1
6353 nisargshah 77
	cpuid					; Есть ли MMX ?
205 heavyiron 78
	mov	ecx, eax
79
	shr	al, 4
80
	and	ax, 0x0F0F
81
	mov	[CPU_fam], ah
82
	mov	[CPU_mod], al
83
	shr	edx, 23
84
	and	dl, 1
85
	mov	[CPU_mmx], dl
86
	shr	ecx, 12
87
	and	cl, 11b
88
	mov	[CPU_type], cl
3604 fedesco 89
 
6353 nisargshah 90
	; ! Цвета из массива colors
91
	mov	dword[d_cpu_load], 0xFF00	; инициализируем график загрузки АЛУ
205 heavyiron 92
	mov	dword[d_mem_usage], 0x8BA169	; -- mem usega
6353 nisargshah 93
	mov	dword[d_temp1], 0xFF0000	; -- график температуры ЦПУ
94
	mov	dword[d_temp2], 0xFF		; -- график температуры МП
205 heavyiron 95
	mov	dword[d_temp3], 0xFF7E23
96
 
6353 nisargshah 97
	call	hwm_init			; Initialize monitoring chip
205 heavyiron 98
 
99
	jmp	draw_window
100
;--- Wait & translate event ------------------------------------------
101
wait_for_event:
6353 nisargshah 102
	mov	byte[diag_add_v], 0	; добавляем данные к графику только по таймеру
205 heavyiron 103
	mov	ebx, [update_time]
104
	mov	eax, 23
105
	int	0x40
106
	test	eax, eax
107
	jnz	@f
108
	inc	byte [diag_add_v]
6353 nisargshah 109
	jmp	redraw
205 heavyiron 110
@@:	dec	eax			; redraw request ?
111
	jz	draw_window
112
	dec	eax			; key in buffer ?
113
	jz	key
114
	dec	eax			; button in buffer ?
115
	jz	button
116
	jmp	wait_for_event
117
;--- Key pressed -----------------------------------------------------
118
key:
119
	mov	eax, 2
120
	int	0x40
6353 nisargshah 121
	cmp	ah, 27			; Esc - shutdown
205 heavyiron 122
	je	exit
123
	jmp	wait_for_event
124
;--- Button down -----------------------------------------------------
125
button:
5950 pathoswith 126
	mov	eax, 17 		; get id
205 heavyiron 127
	int	0x40
128
	cmp	ah, 1			; button id == 1 ?
129
	jne	noexit
130
exit:	cmp	byte[test_id], 0
131
	je	@f
132
	call	stop_test
5950 pathoswith 133
@@:	mov	eax, -1 	; close this program
205 heavyiron 134
	int	0x40
135
noexit:
6353 nisargshah 136
	; button tabs (2 .. 5)
205 heavyiron 137
	cmp	ah, 5
138
	jg	no_tabs
139
	mov	byte[act_tab], ah
6353 nisargshah 140
	jmp	redraw_tabs
205 heavyiron 141
no_tabs:
6353 nisargshah 142
	; кнопки запуска тество (6 .. 10)
205 heavyiron 143
	cmp	ah, 10
144
	jg	no_test_bt
6353 nisargshah 145
	; если нет запущеных тестов - запускаем выбранный
205 heavyiron 146
	cmp	byte[test_id], 0
147
	je	run_test
6353 nisargshah 148
	; если кнопка активного теста - останавливаем тест, иначе ничего не делаем
205 heavyiron 149
	cmp	[test_id], ah
150
	jne	wait_for_event
151
	call	stop_test
6353 nisargshah 152
	jmp	redraw_tabs
205 heavyiron 153
 
6353 nisargshah 154
tsts:	dd	p5, p6, k6_, k7_
205 heavyiron 155
run_test:
156
	push	eax
157
	movzx	ecx, ah
158
	mov	ecx, [tsts + (ecx * 4) - (6 * 4)]
159
rtst:	mov	eax, 51
160
	mov	edx, stp
161
	mov	ebx, 1
162
	int	0x40
5950 pathoswith 163
	cmp	eax, 0xFFFFFFF0 ; -16
6353 nisargshah 164
	je	wait_for_event	; <-- ошибка запуска теста, ПЕРЕПИСАТЬ
205 heavyiron 165
	mov	[test_pid], eax
166
	pop	eax
167
	mov	byte [test_id], ah
6353 nisargshah 168
	jmp	redraw_tabs
205 heavyiron 169
	;-------------------------
6353 nisargshah 170
	; кнопки изменения времени обновления
205 heavyiron 171
no_test_bt:
172
	cmp	ah, 11
173
	jne	no_ut_inc
174
	add	dword[update_time], 10
6353 nisargshah 175
	jmp	redraw_tabs
205 heavyiron 176
no_ut_inc:
177
	cmp	ah, 12
178
	jne	no_ut_dec
179
	cmp	dword[update_time], 10
180
	jng	wait_for_event
181
	sub	dword[update_time], 10
6353 nisargshah 182
	jmp	redraw_tabs
205 heavyiron 183
no_ut_dec:
184
	;-------------------------
6353 nisargshah 185
	; color change button schedules (13..17)
205 heavyiron 186
	cmp	ah, 17
187
	jg	no_change_color
188
	sub	ah, 13
189
	movzx	ecx, ah
190
	mov	esi, [d_colors + ecx * 4]
191
	mov	eax, [esi]
6353 nisargshah 192
	mov	ecx, (colors_end - colors) / 4	; number of colors
223 Ghost 193
@@:	dec	ecx
194
	cmp	eax, [colors + ecx * 4]
195
	jne	@b
196
	mov	ebx, [colors + ecx * 4 - 4]
205 heavyiron 197
	mov	[esi], ebx
6353 nisargshah 198
	jmp	redraw_tabs
205 heavyiron 199
no_change_color:
200
	jmp	wait_for_event
201
;---------------------------------------------------------------------
202
draw_window:
203
	mov	eax,12
204
	mov	ebx,1
205
	int	0x40
6353 nisargshah 206
	; Создаём окно
205 heavyiron 207
	xor	eax, eax
208
	mov	ebx, 300 * 65536 + 309
223 Ghost 209
	mov	ecx, 150 * 65536 + 450
551 spraid 210
	mov	edx, tcol + 0x14000000	; color of work area RRGGBB,8->color
340 heavyiron 211
	mov	edi, title		; color of frames    RRGGBB
205 heavyiron 212
	int	0x40
6353 nisargshah 213
	; Create a graphic frame (not for graph)
205 heavyiron 214
	mov	eax, 13
215
	mov	ebx, 10 * 65536 + 290
223 Ghost 216
	mov	ecx, 138 * 65536 + 105
205 heavyiron 217
	mov	edx, atcol
218
	int	0x40
3604 fedesco 219
 
6353 nisargshah 220
	; write parameter names (Cpu load, temper, etc ...)
221
	mov	edx, msgs_mon         ; text for indicators
205 heavyiron 222
	mov	ebx, 17 * 65536 + 30
6353 nisargshah 223
	call    show_text
3604 fedesco 224
 
205 heavyiron 225
	mov	edx, msgs_mon2
6353 nisargshah 226
	mov	ebx, 166 * 65536 + 30
205 heavyiron 227
	call	show_text
3604 fedesco 228
 
6353 nisargshah 229
	jmp draw_tabs ; draw tabs for the first time
230
 
231
redraw_tabs: ; delete previously created tabs
232
 
233
	mov	ecx, 4
205 heavyiron 234
	mov	eax, 8
6353 nisargshah 235
	mov	edx, 0x80000000 + 2
236
del_tabs:
237
	int	0x40
238
	inc	edx
239
	loop	del_tabs
240
 
241
	; Delete color change buttons
242
	mov	eax, 8
243
	mov	edx, 0x80000000 + 13
244
@@:
245
	int	0x40
246
	inc	edx
247
	cmp	edx, 0x80000000 + 13 + 5 	; 5 (buttons)
248
	jne	@b
249
 
250
draw_tabs:
251
 
252
	; Drawing color change buttons
253
	mov	eax, 8
205 heavyiron 254
	mov	ebx, 112 * 65536 + 5
255
	mov	ecx, 30 * 65536 + 6
256
	mov	edx, 13
6353 nisargshah 257
 
258
@@:
259
	mov	esi, [d_colors - 13 * 4 + edx * 4]
205 heavyiron 260
	mov	esi, [esi]
261
	int	0x40
262
	add	ecx, 10 * 65536
263
	inc	edx
6353 nisargshah 264
	cmp	edx, 13 + 5             ; 5 (buttons)
205 heavyiron 265
	jne	@b
3604 fedesco 266
 
6353 nisargshah 267
	; info, test, config, about buttons
268
	; Create 4 buttons
269
	mov	edi, 250 * 65536 + 25
270
	mov	ecx, 4
271
	mov	eax, 8
272
	mov	ebx, 10 * 65536 + 70
273
	mov	edx, 2
274
n_bt:
275
	push    ecx
276
	mov	ecx, edi
277
	mov	esi, tcol
278
	cmp	byte [act_tab], dl
279
	jne	na1
280
	mov	esi, atcol
281
na1:
282
	int	0x40
283
	inc	edx
284
	add	ebx, 73 * 65536
285
	pop	ecx
286
	loop    n_bt
287
 
288
	; write name tabs
289
	mov	eax, 4
290
	mov	ebx, (18 shl 16) + 256
291
	mov	edx, tab_lab
292
	mov	ecx, 0x10000000
293
	mov	esi, 4
294
	int	0x40
295
	add	ebx, (72 shl 16)
296
	mov	edx, tab_lab.2
297
	mov	esi, 5
298
	int	0x40
299
	add	ebx, (72 shl 16)
300
	mov	edx, tab_lab.3
301
	mov	esi, 7
302
	int	0x40
303
	add	ebx, (72 shl 16)
304
	mov	edx, tab_lab.4
305
	mov	esi, 5
306
	int	0x40
307
 
308
	; create a frame at the bottom of the screen
309
	mov	eax, 13
310
	mov	ebx, 10 * 65536 + 290
311
	mov	ecx, 275 * 65536 + 160
312
	mov	edx, atcol
313
	int	0x40
314
	mov	ebx, 12 * 65536 + 286
315
	mov	ecx, 277 * 65536 + 156
316
	mov	edx, tcol
317
	int	0x40
318
 
319
	; draw the selected tab
320
	mov	al, [act_tab]
321
	cmp	al, 2
322
	je 	info_tab
323
	cmp	al, 3
324
	je 	test_tab
325
	cmp	al, 4
326
	je 	config_tab
327
	jmp	about_tab
328
 
329
;--- Drow Info tab ---------------
330
info_tab:
331
        include "tab_info.inc"
332
;--- Drow test tab ---------------
333
test_tab:
334
        include "tab_test.inc"
335
;--- Drow Config tab -------------
336
config_tab:
337
        include "tab_conf.inc"
338
;--- Drow About tab --------------
339
about_tab:
340
        include "tab_about.inc"
341
 
342
redraw:
343
 
344
	; frame for graph
345
 
346
	mov	eax, 13
347
	mov	ebx, 12 * 65536 + 286
348
	mov	ecx, 140 * 65536 + 101
349
	mov	edx, tcol
350
	int	0x40
351
	mov	eax, 38
352
	mov	edx, atcol
353
	mov	ebx, 12 * 65536 + 286 + 12
354
	mov	ecx, 140 * 65536 + 140
355
@@:	add	ecx, 10 * 65536 + 10
356
	int	0x40
357
	cmp	cx, 230 		; привязано к координатам окна
358
	jl	@b
359
 
360
	; write CPU usage
361
	call    cpu_usage
362
	;--- добавляем на график ---
363
	mov esi, d_cpu_load
364
	call    d_add
365
	call    d_show
205 heavyiron 366
	;---------------------------
367
	movzx	ecx, al
368
	mov	eax, 47
369
	mov	edx, 121 * 65536 + 30
370
	xor	esi, esi
371
	call	digit_len
6353 nisargshah 372
	clear_prev_no edx
205 heavyiron 373
	int	0x40
3604 fedesco 374
 
6353 nisargshah 375
	; write used memory
205 heavyiron 376
	call	mem_usage
6353 nisargshah 377
	;--- добавляем на график ---
205 heavyiron 378
	mov	esi, d_mem_usage
379
	call	d_add
380
	call	d_show
381
	;---------------------------
382
	movzx	ecx, al
383
	mov	eax, 47
384
	mov	edx, 121 * 65536 + 40
385
	xor	esi, esi
386
	call	digit_len
6353 nisargshah 387
	clear_prev_no edx
205 heavyiron 388
	int	0x40
3604 fedesco 389
 
205 heavyiron 390
	cmp	byte[hwm_enable], 0
391
	jne	show_mon
6353 nisargshah 392
	; Нет датчиков - пишем NO
393
	mov	ecx, 8	;<- number of parameters
205 heavyiron 394
	mov	eax, 4
395
	mov	ebx, 121 * 65536 + 50
396
	mov	edx, msg_no
397
	mov	esi, 3
398
@@:	int	0x40
399
	add	ebx, 10
400
	loop	@b
401
 
6353 nisargshah 402
	mov	ecx, 7	;<- number of parameters
205 heavyiron 403
	mov	ebx, 260 * 65536 + 30
404
@@:	int	0x40
405
	add	ebx, 10
406
	loop	@b
407
 
408
	jmp	no_monitor
409
show_mon:
6353 nisargshah 410
	;Есть датчики пишим инфу
205 heavyiron 411
	call	hwm_get_params
412
	;---------------------------
6353 nisargshah 413
	; Температуру
205 heavyiron 414
	mov	ecx, 3
223 Ghost 415
	mov	esi, hwm_temps
205 heavyiron 416
	mov	edx, 121 * 65536 + 50
417
	xor	eax, eax
418
sh_temp:push	ecx
419
	lodsw
420
	push	esi
6353 nisargshah 421
	; реакция на изменения
205 heavyiron 422
	xor	esi, esi
423
	cmp	[old_t1 + ecx * 4 - 4], eax
424
	je	@f
425
	mov	[old_t1 + ecx * 4 - 4], eax
426
	mov	esi, val_mod
427
@@:	movzx	ecx, al
428
	push	eax
429
	mov	eax, 47
430
	mov	ebx, 0x20000
6353 nisargshah 431
	clear_prev_no edx
205 heavyiron 432
	int	0x40
433
	pop	eax
434
	mov	cl, ah
435
	mov	eax, 47
436
	mov	ebx, 0x10000
437
	add	edx, 15 * 65536
438
	int	0x40
439
	sub	edx, 15 * 65536 - 10
440
	pop	esi
441
	pop	ecx
442
	loop	sh_temp
6353 nisargshah 443
	;;--- Add to the chart temp1 ---
223 Ghost 444
	movzx	eax, word[hwm_temps]
205 heavyiron 445
	mov	esi, d_temp1
446
	call	d_add
447
	call	d_show
6353 nisargshah 448
	;;--- Add to the chart temp2 ---
223 Ghost 449
	movzx	eax, word[hwm_temps + 2]
205 heavyiron 450
	mov	esi, d_temp2
451
	call	d_add
452
	call	d_show
6353 nisargshah 453
	;;--- Add to the chart temp3 ---
223 Ghost 454
	movzx	eax, word[hwm_temps + 4]
205 heavyiron 455
	mov	esi, d_temp3
456
	call	d_add
457
	call	d_show
458
 
459
	;---------------------------
6353 nisargshah 460
	; Скорости врашения вентилей
223 Ghost 461
	mov	ecx, 5
462
	mov	esi, hwm_rpms
205 heavyiron 463
	mov	edx, 121 * 65536 + 80
5950 pathoswith 464
sh_fan: push	ecx
205 heavyiron 465
	lodsd
466
	push	esi
6353 nisargshah 467
	;реакция на изменения
205 heavyiron 468
	xor	esi, esi
469
	cmp	[old_f1 + ecx * 4 - 4], eax
470
	je	@f
471
	mov	[old_f1 + ecx * 4 - 4], eax
472
	mov	esi, val_mod
473
@@:	mov	ecx, eax
474
	call	digit_len
475
	mov	eax, 47
6353 nisargshah 476
	clear_prev_no edx
205 heavyiron 477
	int	0x40
3604 fedesco 478
	add	edx, 10
205 heavyiron 479
	pop	esi
480
	pop	ecx
481
	loop	sh_fan
3604 fedesco 482
 
205 heavyiron 483
	;---------------------------
6353 nisargshah 484
	; Напруги
223 Ghost 485
	mov	esi, hwm_voltages
205 heavyiron 486
	mov	edi, old_volts
487
	mov	ecx, 7
488
	mov	ebx, 260 * 65536 + 30
489
	mov	edx, Data_String
490
volt_nxt:
491
	push	ecx
492
	push	esi
493
	call	ftoa
6353 nisargshah 494
	;реакция на изменения
205 heavyiron 495
	xor	ecx, ecx
496
	fld	dword [esi]
497
	fsub	dword [edi]
498
	fabs
3604 fedesco 499
 
5950 pathoswith 500
	; fcomp dword [c_eps]	; bug in MeOsEmul
501
	; fstsw ax
205 heavyiron 502
	fcom	dword [c_eps]	; 0xBADCODE
503
	fstsw	ax
3604 fedesco 504
	finit
505
 
205 heavyiron 506
	sahf
507
	jc	@f
508
	mov	ecx, val_mod
6353 nisargshah 509
@@:	mov	esi, Data_String	; считаем кол-во символов
205 heavyiron 510
@@:	lodsb
511
	test	al, al
512
	jnz	@b
513
	sub	esi, Data_String
3604 fedesco 514
 
205 heavyiron 515
	mov	eax, 4
516
	int	0x40
517
	add	ebx, 10
518
	pop	esi
519
	pop	ecx
520
	movsd
521
	loop	volt_nxt
3604 fedesco 522
 
205 heavyiron 523
no_monitor:
524
	;---------------------------
6353 nisargshah 525
	mov	al, [act_tab]   ; check if info tab is active
205 heavyiron 526
	cmp	al, 2
6353 nisargshah 527
	jne	end_drow_tab
528
	jmp	free_mem    ; in tab_info.inc
529
 
205 heavyiron 530
end_drow_tab:
531
	mov	eax, 12
532
	mov	ebx, 2
533
	int	0x40
534
	jmp	wait_for_event
535
;---------------------------------------------------------------------
5950 pathoswith 536
	include "system.inc"
205 heavyiron 537
	include "hwm.inc"
538
	include "diag.inc"
539
 
3604 fedesco 540
 
205 heavyiron 541
DATA
6353 nisargshah 542
act_tab 	db	2			; active tab number
5920 IgorA 543
tab_lab:
544
.1: db 'Info'
545
.2: db 'Tests'
546
.3: db 'Configs'
547
.4: db 'About'
548
title		db	'Ghost Monitor v0.4 [18/11/15]',0
205 heavyiron 549
 
550
msgs_mon mls \
551
	'CPU Load (%)',\
552
	'Mem Usage(%)',\
553
	'Temp1',\
554
	'Temp2',\
555
	'Temp3',\
556
	'Fan1',\
557
	'Fan2',\
223 Ghost 558
	'Fan3',\
559
	'Fan4',\
560
	'Fan5'
3604 fedesco 561
 
205 heavyiron 562
msgs_mon2 mls \
563
	'Vcore',\
564
	'AGP',\
565
	'+3.3V',\
566
	'AVcc (+5V)',\
567
	'+12V',\
568
	'-12V',\
569
	'-5V'
570
 
5950 pathoswith 571
msg_yes 	db	'Yes'
205 heavyiron 572
msg_no		db	'N/A'
573
 
6353 nisargshah 574
update_time	dd	300			; период обновления в сотых долях секунды
205 heavyiron 575
d_colors	dd	d_cpu_load, d_mem_usage, d_temp1, d_temp2, d_temp3
576
c_eps		dd	0.01
223 Ghost 577
 
6353 nisargshah 578
; Цвета графиков
579
colors: 	dd	0xff0000, 0xff00, 0xff, 0xffffff, tcol, 0xFF7E23, 0x8BA169, 0xff0000	; первый и последний равны
223 Ghost 580
colors_end:
205 heavyiron 581
;---------------------------------------------------------------------
582
UDATA
583
 
6353 nisargshah 584
test_pid	dd	?			; если test_id == 0 - не имеет смысла
585
test_id 	db	?			; 0 - тест не запушен (соответствует № кнопки 6..10)
586
diag_add_v	db	?			; 0 - не добавлять данные на график, !0 - добавлять
205 heavyiron 587
 
5950 pathoswith 588
Vendor: 	times	12 db ?
205 heavyiron 589
CPU_fam:	db	?
590
CPU_mod:	db	?
591
CPU_type:	db	?
592
CPU_mmx:	db	?
593
 
6353 nisargshah 594
; Для реакции на изменения
595
old_t1: 	dd	?	; последнее значение temp1
5950 pathoswith 596
old_t2: 	dd	?	; ...
597
old_t3: 	dd	?
598
old_f1: 	dd	?
599
old_f2: 	dd	?
600
old_f3: 	dd	?
205 heavyiron 601
old_volts:	times	7 dd ?
602
 
6353 nisargshah 603
; Грфики
205 heavyiron 604
diag_beg:
605
d_cpu_load:	dd	?
606
		times 286 db ?
3604 fedesco 607
 
205 heavyiron 608
d_mem_usage:	dd	?
609
		times 286 db ?
3604 fedesco 610
 
205 heavyiron 611
d_temp1:	dd	?
612
		times 286 db ?
3604 fedesco 613
 
205 heavyiron 614
d_temp2:	dd	?
615
		times 286 db ?
616
 
617
d_temp3:	dd	?
618
		times 286 db ?
619
diag_end:
620
 
6353 nisargshah 621
; --- стек теста, воизбежание глюков не переносить в другое место ----
205 heavyiron 622
th_stack:	times	1024 db ?
623
stp:
624
;---------------------------------------------------------------------
625
MEOS_APP_END