Subversion Repositories Kolibri OS

Rev

Rev 9858 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9858 Rev 9870
Line -... Line 1...
-
 
1
;;      Copyright (C) 2021-2022, Michail Frolov aka Doczom
-
 
2
 
-
 
3
macro send_notify send_str{
-
 
4
      mov     dword[run_notify.message], send_str
-
 
5
      mcall   SF_FILE, run_notify
-
 
6
}
-
 
7
 
1
use32
8
  use32
2
  org    0
9
  org    0
Line 3... Line 10...
3
 
10
 
4
  db     'MENUET01'
11
  db     'MENUET01'
5
  dd     1
12
  dd     1
6
  dd     START
13
  dd     START
7
  dd     I_END       ; à §¬¥à ¯à®£à ¬¬ë
14
  dd     I_END
8
  dd     MEM         ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
15
  dd     MEM
9
  dd     STACKTOP
16
  dd     STACKTOP
10
  dd     PATH
17
  dd     PATH
-
 
18
  dd     0
-
 
19
 
11
  dd     0
20
include '..\..\proc32.inc'
12
include '..\..\macros.inc'
21
include '..\..\macros.inc'
-
 
22
include '..\..\KOSfuncs.inc'
Line -... Line 23...
-
 
23
include '..\..\dll.inc'
13
include '..\..\KOSfuncs.inc'
24
 
-
 
25
; include 'parser.inc'    ; this modul does not work
-
 
26
START:
-
 
27
;init heap
-
 
28
        mcall  68, 11
-
 
29
; load lib
-
 
30
        stdcall dll.Load, @IMPORT
-
 
31
        or      eax, eax
-
 
32
        jnz     err_load_lib
-
 
33
;       init opendial
-
 
34
        invoke OpenDialog_Init, OpenDialog_data
-
 
35
; init futex
-
 
36
        mcall SF_FUTEX, SSF_CREATE, futex_cmd
-
 
37
        mov    [futex_handle], eax
-
 
38
; parse cmd_line TODO: fix parser and testing
-
 
39
        ;call    pars_cmd
14
 
40
        ;test    eax, eax
15
START:
41
        ;jnz     exit
16
;;óñòàíîâêà ìàñêà ñîáûòèé íà ïîëó÷åíèå ïåðåïèñîâêè è íàæàòèÿ íà êíîïêó
42
;;óñòàíîâêà ìàñêà ñîáûòèé íà ïîëó÷åíèå ïåðåïèñîâêè è íàæàòèÿ íà êíîïêó
17
       mcall SF_SET_EVENTS_MASK,0x05
43
       mcall SF_SET_EVENTS_MASK,0x05
18
;load driver
44
;load driver
19
       mcall SF_SYS_MISC, SSF_LOAD_DRIVER_PE, path_drv, 0
45
       mcall SF_SYS_MISC, SSF_LOAD_DRIVER_PE, [drv_ptr], 0
20
       mov dword[drv_struct.handl],eax
46
       mov dword[drv_struct.handl],eax
21
       test eax,eax ;ïðîâåðêà çàãðóçêè
47
       test eax,eax ;ïðîâåðêà çàãðóçêè
22
       jz  error_drv
48
       jz  error_drv
23
main:
49
main:
24
       mcall SF_SYS_MISC, SSF_CONTROL_DRIVER, drv_struct
50
       mcall SF_SYS_MISC, SSF_CONTROL_DRIVER, drv_struct
25
       cmp   byte[PATH], 0
51
       cmp   byte[PATH], 0
26
       jz    still
52
       jz    still
27
       call add_file
53
       ;call add_file
28
still:           ;void main()
54
still:           ;void main()
29
       call draw
55
       call draw
30
;;îæèäàíèå ñîáûòèÿ â òå÷åíèè 2000ìñ
56
;;îæèäàíèå ñîáûòèÿ â òå÷åíèè 2000ìñ
Line 42... Line 68...
42
       jz still
68
       jz still
43
       dec ah
69
       dec ah
44
       je exit
70
       je exit
45
;; id button micro_info = 8
71
;; id button micro_info = 8
46
       cmp ah,7 ;// ah-1=7
72
       cmp ah,7 ;// ah-1=7
47
       jnz still
73
       jnz .no_micro_info
48
       xor byte[flag_micro_info],1
74
       xor byte[flag_micro_info],1
49
       jmp still
75
       jmp still
-
 
76
.no_micro_info:
-
 
77
; id button log = 9
-
 
78
        cmp  ah, 8 ; 9-1
-
 
79
        jnz  .no_log_button
-
 
80
        cmp  dword[text_log_butt], _start_log
-
 
81
        jnz  .log_stop
-
 
82
 
-
 
83
        cmp     dword[log_ptr], 0
-
 
84
        jnz     @f
-
 
85
        mcall   68, SSF_MEM_ALLOC, 19 ; íà÷àëüíûå äàííûå äëÿ Graph
-
 
86
        test    eax, eax
-
 
87
        jz      .err_alloc_mem
-
 
88
 
-
 
89
        mov     [log_ptr], eax
-
 
90
        mov     dword[log_size], 19
-
 
91
        mov     edi, eax
-
 
92
        mov     eax,[drv_data.Tmax]
-
 
93
        mov     ebx, graph_start.new_data
-
 
94
        call    int_to_str
-
 
95
        mov     esi, graph_start
-
 
96
        ; set base value in log
-
 
97
        movsd
-
 
98
        movsd
-
 
99
        movsd
-
 
100
        movsd
-
 
101
        movsw
-
 
102
        movsb
-
 
103
@@:
-
 
104
        mcall 51, 1, thread_timer, thread_timer.stack
-
 
105
        mov   dword[text_log_butt], _stop_log
-
 
106
        jmp still
-
 
107
.log_stop:
-
 
108
        ; ïðîáóæäàåì ïîòîê ÷åðåç ôüþòåêñ
-
 
109
        mov      byte[futex_cmd], 1  ; stop thread
-
 
110
        mcall    SF_FUTEX, SSF_WAKE, [futex_handle], 1
-
 
111
        mcall    68, 1 ; ïåðåêëþ÷àåì ïîòîêè, äëÿ òîãî, ÷òîáû ñîîáùåíèå ïðèøëî ïîòîêó ñ òàéìåðîì
-
 
112
 
-
 
113
        ; ìåíÿåì òåêñò â êíîïêå
-
 
114
        mov     dword[text_log_butt], _start_log
-
 
115
        jmp     still
-
 
116
.err_alloc_mem:
-
 
117
        send_notify Error_text.alloc_1
-
 
118
        jmp  still
-
 
119
.no_log_button:
-
 
120
; id button save = 10
-
 
121
        cmp  ah, 9 ; 10-1
-
 
122
        jnz  still
-
 
123
        cmp  dword[log_ptr], 0
-
 
124
        jnz  @f
-
 
125
        send_notify Error_text.save_log
-
 
126
        jmp  still
-
 
127
@@:
-
 
128
        cmp     byte[futex_cmd], 2 ; 2 - save file
-
 
129
        jnz     @f
-
 
130
        send_notify Error_text.save_log_1
-
 
131
        jmp  still
-
 
132
@@:
-
 
133
        ; òóò âûçîâ ôóíêöèè openDialog
-
 
134
        invoke  OpenDialog_Start, OpenDialog_data
-
 
135
 
-
 
136
        cmp [OpenDialog_data.status],1
-
 
137
        jne   still
-
 
138
 
-
 
139
        ;mov      dword[log_path], openfile_path
-
 
140
 
-
 
141
        ; ïðîáóæäàåì ïîòîê ÷åðåç ôüþòåêñ
-
 
142
        mov      byte[futex_cmd], 2  ; save_log
-
 
143
        mcall    SF_FUTEX, SSF_WAKE, [futex_handle], 1
-
 
144
        test     eax, eax
-
 
145
        jnz      still
-
 
146
 
-
 
147
        mcall 51, 1, thread_timer, thread_timer.stack
-
 
148
        mcall    68, 1 ; ïåðåêëþ÷àåì ïîòîêè, äëÿ òîãî, ÷òîáû ñîîáùåíèå ïðèøëî ïîòîêó ñ òàéìåðîì
-
 
149
@@:
-
 
150
        mov      byte[futex_cmd], 3  ; save_log  & exit
-
 
151
        mcall    SF_FUTEX, SSF_WAKE, [futex_handle], 1
-
 
152
        test     eax, eax
-
 
153
        jz       @b
-
 
154
        mcall    68, 1 ; ïåðåêëþ÷àåì ïîòîêè, äëÿ òîãî, ÷òîáû ñîîáùåíèå ïðèøëî ïîòîêó ñ òàéìåðîì
-
 
155
        jmp  still
Line 50... Line 156...
50
 
156
 
51
align 4
157
align 4
52
draw:
158
draw:
53
       mcall SF_REDRAW, SSF_BEGIN_DRAW
159
       mcall SF_REDRAW, SSF_BEGIN_DRAW
Line -... Line 160...
-
 
160
       mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
-
 
161
 
-
 
162
       mov eax, dword[sc.work_graph]
-
 
163
       mov dword[frame_struct.FR_OUTER_COLOR], eax
-
 
164
       mov eax, dword[sc.work_light]
-
 
165
       mov dword[frame_struct.FR_INNER_COLOR], eax
-
 
166
       mov eax, dword[sc.work_text]
-
 
167
       mov dword[frame_struct.FR_FORE_COLOR], eax
-
 
168
       mov eax, dword[sc.work]
-
 
169
       mov dword[frame_struct.FR_BACK_COLOR], eax
54
       mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,sizeof.system_colors
170
 
55
 
171
 
56
       mov eax,SF_CREATE_WINDOW
172
       mov eax,SF_CREATE_WINDOW
57
       mov ebx,0x00ff013f
173
       mov ebx,0x00ff0132
58
       mov ecx,0x001500cc
174
       mov ecx,0x00150114   ; link with  80 line
59
       mov edx,0x14000000
175
       mov edx,0x14000000
60
       add edx,[sc.work]
176
       add edx,[sc.work]
Line 61... Line 177...
61
       mov edi,title
177
       mov edi,title
Line 62... Line -...
62
       mcall
-
 
63
 
-
 
64
       mcall SF_SYS_MISC, SSF_CONTROL_DRIVER, drv_struct
-
 
65
 
-
 
66
       cmp       byte[PATH], 0
-
 
67
       jz        @f
-
 
68
       dec       dword[update_flag]
-
 
69
       jnz       @f
-
 
70
       call      add_new_item
178
       mcall
71
       mov       dword[update_flag], 30
179
 
72
@@:
180
       mcall SF_SYS_MISC, SSF_CONTROL_DRIVER, drv_struct
73
 
181
 
74
       cmp byte[flag_micro_info],1
182
       cmp byte[flag_micro_info],1
Line 75... Line 183...
75
       mov eax,SF_CHANGE_WINDOW
183
       mov eax,SF_CHANGE_WINDOW
76
       mov ebx,-1
184
       mov ebx,-1
77
       mov ecx,ebx;-1
185
       mov ecx,ebx;-1
78
       jz draw.micro
186
       jz draw.micro
79
 
187
 
80
       mov esi,0x000000cc
188
       mov esi,0x00000115     ; link with 58 line
81
       mov edx,0x0000013f
189
       mov edx,0x00000132
82
       mcall
190
       mcall
83
;;ñîçäàíèå êíîïêè ïåðåêëþ÷åíèÿ ðåæèìà
191
;;ñîçäàíèå êíîïêè ïåðåêëþ÷åíèÿ ðåæèìà
84
       mov eax,SF_DEFINE_BUTTON
192
       mov eax,SF_DEFINE_BUTTON
85
       mov ebx,0x01250010
193
       mov ebx,0x00fc0010
Line 92... Line 200...
92
;;ïðèñâîåíèÿ â ðåãèñòðû eax è ecx ïðîèñõîäÿò òîëüêî 1 ðàç
200
;;ïðèñâîåíèÿ â ðåãèñòðû eax è ecx ïðîèñõîäÿò òîëüêî 1 ðàç
93
;; Äàëåå, òàê êàê òåêñò âûâîäèòñÿ ïî÷òè âñåãäà ñ îäèíàêîâûì
201
;; Äàëåå, òàê êàê òåêñò âûâîäèòñÿ ïî÷òè âñåãäà ñ îäèíàêîâûì
94
;; ñìåùåíèåì âíèç(ðàâíûì 15)  äûííûå(ñòðîêè) èìåþò îäèíàêîâûé
202
;; ñìåùåíèåì âíèç(ðàâíûì 15)  äûííûå(ñòðîêè) èìåþò îäèíàêîâûé
95
;; ðàçìåð , òî èñïîëüçóåòñÿ èíñòðóêöèÿ add
203
;; ðàçìåð , òî èñïîëüçóåòñÿ èíñòðóêöèÿ add
96
       mov eax,SF_DRAW_TEXT
204
       mov eax,SF_DRAW_TEXT
97
       mov ebx,0x01290020
205
       mov ebx,0x01000020
98
       mov ecx,0x81000000
206
       mov ecx,0x81000000
99
       add ecx,[sc.work_text]
207
       add ecx,[sc.work_text]
100
       mov edx,_up
208
       mov edx,_up
101
       mcall
209
       mcall
Line -... Line 210...
-
 
210
 
-
 
211
       ;ñîçäàíèå êíîïêè çàïóñêà/âûêëþ÷åíèÿ ëîãà
-
 
212
       mov eax,SF_DEFINE_BUTTON
-
 
213
       mov ebx,0x00a00070
-
 
214
       mov ecx,0x004a0015
-
 
215
       mov edx,0x00000009 ;id button
-
 
216
       mov esi,[sc.work_button]
-
 
217
       mcall
-
 
218
       ; âûâîä òåêñòà
-
 
219
       mov eax,SF_DRAW_TEXT
-
 
220
       mov ebx,0x00a8004c
-
 
221
       mov ecx,0x90000000
-
 
222
       add ecx,[sc.work_text]
-
 
223
       mov edx,[text_log_butt]
-
 
224
       mcall
-
 
225
 
-
 
226
       ;ñîçäàíèå êíîïêè ñîõðàíåíèÿ ëîãà â ôàéë
-
 
227
       mov eax,SF_DEFINE_BUTTON
-
 
228
       mov ebx,0x00a00070
-
 
229
       mov ecx,0x00630015
-
 
230
       mov edx,0x0000000a ; id=10
-
 
231
       mov esi,[sc.work_button]
-
 
232
       mcall
-
 
233
       ; âûâîä òåêñòà
-
 
234
       mov eax,SF_DRAW_TEXT
-
 
235
       mov ebx,0x00a80065
-
 
236
       mov ecx,0x90000000
-
 
237
       add ecx,[sc.work_text]
-
 
238
       mov edx,_save_log
-
 
239
       mcall
102
 
240
 
103
       ;âûâîä "Tctl:"
241
       ;âûâîä "Tctl:"
104
       mov ebx,0x000a0020
242
       mov ebx,0x00150035
105
       mov ecx,0x90000000
243
       mov ecx,0x90000000
106
       add ecx,[sc.work_text]
244
       add ecx,[sc.work_text]
107
       mov edx,_Tctl
245
       mov edx,_Tctl
Line 108... Line 246...
108
       mcall
246
       mcall
109
 
247
 
110
       ;âûâîä "Tmax:"
248
       ;âûâîä "Tmax:"
111
       add ebx,0x15
249
       add ebx, 0x15
Line -... Line 250...
-
 
250
       add edx,7
-
 
251
       mcall
-
 
252
 
-
 
253
       ;âûâîä "Tcrit hyst:"
-
 
254
       ;mov ebx,0x0015005f
-
 
255
       add ebx, 0x15
112
       add edx,7
256
       add edx,7
-
 
257
       mcall
-
 
258
 
-
 
259
       ;âûâîä "Tcrit:"
-
 
260
       add ebx,0x15;0x2a
-
 
261
       add edx,7
-
 
262
       mcall
113
       mcall
263
 
114
 
264
       ;âûâîä "Tdie:"
115
       ;âûâîä "Tcrit:"
265
       ;mov ebx,0x00150089 ;0x00a5005f
Line 116... Line 266...
116
       add ebx,0x2a
266
       add ebx, 0x15
117
       add edx,7
267
       add edx,7
118
       mcall
268
       mcall
119
 
269
 
Line 120... Line 270...
120
       ;âûâîä "Tccd1:"
270
       ;âûâîä "Tccd1:"
121
       add ebx,0x19
271
       add ebx,0x2b;0x19
Line 136... Line 286...
136
       add ebx,0x15
286
       add ebx,0x15
137
       add edx,7
287
       add edx,7
138
       mcall
288
       mcall
Line 139... Line 289...
139
 
289
 
140
       ;âûâîä "Tccd5:"
290
       ;âûâîä "Tccd5:"
141
       mov ebx,0x00a50078
291
       mov ebx,0x009d00b4
142
       add edx,7
292
       add edx,7
Line 143... Line 293...
143
       mcall
293
       mcall
144
 
294
 
Line 154... Line 304...
154
 
304
 
155
       ;âûâîä "Tccd8:"
305
       ;âûâîä "Tccd8:"
156
       add ebx,0x15
306
       add ebx,0x15
157
       add edx,7
307
       add edx,7
158
       mcall
-
 
159
 
-
 
160
       ;âûâîä "Tdie:"
-
 
161
       mov ebx,0x00a5005f
-
 
162
       add edx,7
-
 
163
       mcall
-
 
164
 
-
 
165
       ;âûâîä "Tcrit hyst:"
-
 
166
       mov ebx,0x000a004a
-
 
167
       add edx,7
-
 
168
       mcall
308
       mcall
169
;;;;;;input data driver;;;;;;;;;
309
;;;;;;input data driver;;;;;;;;;
170
       mov eax,0x004a0020
310
       mov eax,0x004a0035  ;0x004a0020
171
       mov ebx, drv_data.Tctl  ;âûâîä äàííûõ îò äðàéâåðà
311
       mov ebx, drv_data.Tctl  ;âûâîä äàííûõ îò äðàéâåðà
Line 172... Line 312...
172
       call write_data
312
       call write_data
173
 
313
 
Line 179... Line 319...
179
       add eax,0x2a
319
       add eax,0x2a
180
       mov byte[write_data.defaunt_color], 1
320
       mov byte[write_data.defaunt_color], 1
181
       mov ebx, drv_data.Tcrit
321
       mov ebx, drv_data.Tcrit
182
       call write_data
322
       call write_data
Line 183... Line 323...
183
 
323
 
184
       add eax,0x19
324
       add eax,0x40;0x19
185
       mov ebx, drv_data.Tccd1
325
       mov ebx, drv_data.Tccd1
Line 186... Line 326...
186
       call write_data
326
       call write_data
187
 
327
 
Line 195... Line 335...
195
 
335
 
196
       add eax,0x15
336
       add eax,0x15
197
       add ebx,4
337
       add ebx,4
Line 198... Line 338...
198
       call write_data
338
       call write_data
199
 
339
 
200
       mov eax,0x00E50078
340
       mov eax,0x00d000b4
Line 201... Line 341...
201
       add ebx,4
341
       add ebx,4
202
       call write_data
342
       call write_data
Line 211... Line 351...
211
 
351
 
212
       add eax,0x15
352
       add eax,0x15
213
       add ebx,4
353
       add ebx,4
Line 214... Line 354...
214
       call write_data
354
       call write_data
215
 
355
 
216
       mov eax,0x00E5005f
356
       mov eax,0x004a0089
217
       mov ebx, drv_data.Tdie
357
       mov ebx, drv_data.Tdie
Line 218... Line 358...
218
       mov byte[write_data.defaunt_color], 1
358
       mov byte[write_data.defaunt_color], 1
219
       call write_data
359
       call write_data
220
 
360
 
221
       mov eax,0x007a004a
361
       mov eax,0x004a005f
-
 
362
       mov byte[write_data.defaunt_color], 1
-
 
363
       mov ebx, drv_data.Tcrit_hyst
-
 
364
       call write_data
-
 
365
 
-
 
366
       mov       dword[frame_struct.FR_WIDTH], 0x0f008a
-
 
367
       mov       dword[frame_struct.FR_HEIGHT], 0x280075
-
 
368
       mov       dword[frame_struct.FR_TEXT], frame_text_1
-
 
369
       invoke    frame_draw, frame_struct
-
 
370
 
-
 
371
       mov       dword[frame_struct.FR_WIDTH],0x0f0114
-
 
372
       mov       dword[frame_struct.FR_HEIGHT], 0xa70060
222
       mov byte[write_data.defaunt_color], 1
373
       mov       dword[frame_struct.FR_TEXT], frame_text_2
223
       mov ebx, drv_data.Tcrit_hyst
374
       invoke    frame_draw, frame_struct
224
       call write_data
375
 
225
       jmp @f
376
       jmp @f
226
.micro:
377
.micro:
Line 261... Line 412...
261
;; edx = 1 - set color, 0 - set defaunt color
412
;; edx = 1 - set color, 0 - set defaunt color
262
;; ecx register don`t save
413
;; ecx register don`t save
263
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
414
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
264
align 4
415
align 4
265
write_data:
416
write_data:
266
       push eax
417
       push eax  ;save koord
267
       push ebx
418
       push ebx  ;save *value
268
       ;mov edx,[ebx]  ;edx=value
419
       ;mov edx,[ebx]  ;edx=value
269
       mov esi,ebx
420
       mov esi,ebx
270
       cmp dword[ebx],-1   ; flag ziro data
421
       cmp dword[ebx],-1   ; flag ziro data
271
       mov ecx,0x90000000
422
       mov ecx,0x90000000
272
       mov ebx,eax
423
       mov ebx,eax
273
       jnz @f
424
       jnz @f
274
       ;write n/a
425
       ;write n/a
275
       add ecx,[sc.work_text]
426
       add ecx,[sc.work_text]
276
       mov eax,SF_DRAW_TEXT
427
       mov eax,SF_DRAW_TEXT
-
 
428
       add ebx, 0x00100000
277
       mov edx,_NA
429
       mov edx,_NA
278
       mcall
430
       mcall
279
       pop ebx
431
       pop ebx
280
       pop eax
432
       pop eax
281
       ret
433
       ret
282
@@:
434
@@:
283
       ;set color
435
       ;set color
284
       push eax
436
       push eax
285
       push edx
437
       push edx
286
       push ecx
438
       push ecx
-
 
439
       mov  dword[.color_text], 0x000000cf  ;blue
287
       cmp  byte[.defaunt_color], 1
440
       cmp  byte[.defaunt_color], 1
288
       jnz  @f
441
       jnz  @f
289
       mov  dword[.color_text], 0x000000cf  ;blue
442
       ;mov  dword[.color_text], 0x000000cf  ;blue
290
       jmp  .end_set_color
443
       jmp  .end_set_color
291
@@:
444
@@:
-
 
445
       cmp  dword[drv_data.Tcrit], -1
-
 
446
       jz   .end_set_color
-
 
447
       cmp  dword[drv_data.Tcrit], 0
-
 
448
       jz   .end_set_color
-
 
449
 
292
       xor  edx, edx
450
       xor  edx, edx
293
       mov  eax, [esi]
451
       mov  eax, [esi]
294
       imul eax, 10
452
       imul eax, 10
295
       xor  edx, edx
453
       xor  edx, edx
296
       div  dword[drv_data.Tcrit]
454
       div  dword[drv_data.Tcrit]
Line 302... Line 460...
302
       cmp  eax, 7
460
       cmp  eax, 7
303
       jb  @f
461
       jb  @f
304
       mov  dword[.color_text],0x00f07000 ; orange
462
       mov  dword[.color_text],0x00f07000 ; orange
305
       jmp  .end_set_color
463
       jmp  .end_set_color
306
@@:
464
@@:
307
       mov  dword[.color_text],0x0000d000 ; green
465
       mov  dword[.color_text],0x0000a500 ; green
308
.end_set_color:
466
.end_set_color:
309
       pop  ecx
467
       pop  ecx
310
       pop  edx
468
       pop  edx
311
       pop  eax
469
       pop  eax
312
       ;write_value
470
       ;write_value
Line 316... Line 474...
316
;   if value >10 then  dot_kord=3; =0x18
474
;   if value >10 then  dot_kord=3; =0x18
317
;     dot_kord=2
475
;     dot_kord=2
318
;input ".", koord_start+dot_koord*size_w(char)
476
;input ".", koord_start+dot_koord*size_w(char)
319
;value-value_in_1 = value_in_2
477
;value-value_in_1 = value_in_2
320
;input value_in_2, koord_start+dot_kord+1*size_w(char=8)
478
;input value_in_2, koord_start+dot_kord+1*size_w(char=8)
321
       push eax
479
       push eax ;save koord
322
       mov eax,[esi]
480
       mov eax,[esi] ; eax = value
323
       xor edx,edx
481
       xor edx,edx
324
       mov ebx,1000
482
       mov ebx,1000
325
       div ebx
483
       div ebx
326
       cmp eax,100
484
       cmp eax, 100
327
       jae .dot_4
485
       jae .dot_4
328
       cmp eax,10
486
       cmp eax, 10
329
       jae .dot_3       ; ----|
487
       jae .dot_3       ; ----|
330
       mov edi,0x0c;0x10;     |
488
       mov edi, 0x10    ;     |
331
       jmp .write       ;     |
489
       jmp .write       ;     |
332
.dot_4:                 ;     |
490
.dot_4:                 ;     |
333
       mov edi,0x1c;0x20;     |
491
       xor edi, edi     ;     |
334
       jmp .write       ;     |
492
       jmp .write       ;     |
335
.dot_3:                 ;   <-|
493
.dot_3:                 ;   <-|
336
       mov edi,0x14;0x18
494
       mov edi, 8
337
.write:
495
.write:
338
       mov ecx,edx
496
       mov ecx,edx
339
       pop edx
497
       pop edx       ; edx = koord
340
       push ecx
498
       push ecx       ;save mask string
Line -... Line 499...
-
 
499
 
-
 
500
       shl  edi, 16
341
 
501
       push edx ; save koord
-
 
502
       add  edx, edi
342
       mov ecx,eax
503
       mov ecx,eax   ;ecx = value/1000
343
       mov ebx,0x80030000
504
       mov ebx,0x80030000 ; ebx = mask sysfn47
344
       mov eax,SF_DRAW_NUMBER
505
       mov eax,SF_DRAW_NUMBER
345
       mov esi,0x10000000
506
       mov esi,0x10000000
346
       add esi,[.color_text]
507
       add esi,[.color_text]
347
       mcall
-
 
348
       shl edi,16
-
 
349
       mov eax,SF_DRAW_TEXT
-
 
350
       add edx,edi
-
 
Line -... Line 508...
-
 
508
       mcall
-
 
509
 
-
 
510
       pop  ebx ; ebx = koord
351
       mov ebx,edx
511
       add  ebx, 0x00180000 ; x + x_size_char*3
352
 
512
       mov eax,SF_DRAW_TEXT
353
       mov ecx,0x90000000
513
       mov ecx,0x90000000
354
       add ecx,[.color_text]
514
       add ecx,[.color_text]
-
 
515
       mov edx,_dot
355
       mov edx,_dot
516
       mcall
356
       mcall
517
 
357
       mov eax,SF_DRAW_NUMBER
518
       mov eax,SF_DRAW_NUMBER
358
       mov edx,ebx
519
       mov edx,ebx
359
       mov esi,0x10000000
520
       mov esi,0x10000000
Line 383... Line 544...
383
.color_text:    rd 1 ; color input temp
544
.color_text:    rd 1 ; color input temp
384
.defaunt_color: rb 1 ; flag set color
545
.defaunt_color: rb 1 ; flag set color
385
;; end proc
546
;; end proc
Line 386... Line 547...
386
 
547
 
387
error_drv:
548
error_drv:
388
       mcall SF_FILE,run_notify
549
       send_notify Error_text
-
 
550
exit:
-
 
551
       mov      byte[futex_cmd], 2
-
 
552
       mcall    SF_FUTEX, SSF_WAKE, [futex_handle], 1
-
 
553
       mcall    68, 1 ; ïåðåêëþ÷àåì ïîòîêè, äëÿ òîãî, ÷òîáû ñîîáùåíèå ïðèøëî ïîòîêó ñ òàéìåðîì
-
 
554
       ; destroy futex
-
 
555
       mcall    SF_FUTEX, SSF_DESTROY, [futex_handle]
-
 
556
       mcall    68, 13, [log_ptr] ; free page
389
exit:
557
 
Line 390... Line -...
390
       mcall SF_TERMINATE_PROCESS
-
 
391
 
558
       mcall SF_TERMINATE_PROCESS
392
align 4
-
 
393
add_file:
-
 
394
        mcall SF_FILE, graph_temp
-
 
395
        mov     dword[graph_temp], 3
-
 
396
        mov     dword[graph_temp.size], 10
-
 
397
        mov     dword[graph_temp.str], graph_start.new_data
-
 
398
        mov     eax,[drv_data.Tmax]
559
 
399
        mov     dword[graph_temp.index], 9
-
 
400
        mov     ebx, graph_start.new_data
560
err_load_lib:
Line 401... Line -...
401
        call    int_to_str
-
 
402
        mcall SF_FILE, graph_temp
-
 
403
 
-
 
404
        mov     dword[graph_temp.index], 19
561
       send_notify Error_text.load_lib
405
        mov     dword[graph_temp.size], 20
562
       mcall SF_TERMINATE_PROCESS
406
        ret
563
 
407
align 4
-
 
408
index_item:
-
 
409
        dd    1
-
 
410
add_new_item:
-
 
411
        mov     eax,[index_item]
-
 
412
        imul    eax,1000
-
 
413
        mov     ebx, graph_start.new_data
-
 
414
        call    int_to_str
-
 
415
        mcall SF_FILE, graph_koord_x2 ;save x2=index_item
-
 
416
        inc     dword[index_item]
-
 
417
 
-
 
418
        mov     eax,[drv_data.Tctl]
-
 
419
        mov     ebx, graph_start.new_data_2
-
 
420
        call    int_to_str
-
 
Line 421... Line 564...
421
        mcall SF_FILE, graph_temp
564
align 4
422
        add     dword[graph_temp.index], 20
565
index_item:
423
        ret
566
        dd    1
424
 
567
 
Line 463... Line 606...
463
        push    ebx
606
        push    ebx
464
        jmp     .loop
607
        jmp     .loop
465
@@:
608
@@:
466
        pop     esi edx ecx
609
        pop     esi edx ecx
467
        ret
610
        ret
-
 
611
 
-
 
612
thread_timer:
-
 
613
        mcall   40, 0x00 ; î÷èùàåì ìàñêó ñîáûòèé
-
 
614
@@:
-
 
615
        mov     byte[futex_cmd], 0x00
-
 
616
        mcall   SF_FUTEX, SSF_WAIT, [futex_handle],[futex_cmd], 100*60 ; 1 min
-
 
617
        test    eax, eax
-
 
618
        jz      .check_cmd
-
 
619
        cmp     eax, -2
-
 
620
        je      .exit ; error
-
 
621
        ; realloc log
-
 
622
        mov     ecx, [log_size]
-
 
623
        mov     edx, [log_ptr]
-
 
624
        add     ecx, 20 ; size item data
-
 
625
        mov     ebx, SSF_MEM_REALLOC ; 20
-
 
626
        mcall   68
-
 
627
        test    eax, eax
-
 
628
        jz      .err_alloc_2
-
 
629
        mov     [log_ptr], eax
-
 
630
        add     eax, [log_size]
-
 
631
        mov     [log_size], ecx;edx
-
 
632
        mov     edi, eax
-
 
633
        ; get new data temp
-
 
634
        push    edi
-
 
635
        mov     eax,[index_item]
-
 
636
        imul    eax,1000
-
 
637
        mov     ebx, graph_start.new_data
-
 
638
        call    int_to_str
-
 
639
 
-
 
640
        mov     ebx, [log_ptr]
-
 
641
        mov     eax, [graph_start.new_data]
-
 
642
        mov     [ebx + 2], eax   ; rewrite index x koord
-
 
643
 
-
 
644
        inc     dword[index_item]
-
 
645
        mov     eax,[drv_data.Tctl]
-
 
646
        mov     ebx, graph_start.new_data_2
-
 
647
        call    int_to_str
-
 
648
        pop     edi
-
 
649
        mov     esi, graph_start.new_data
-
 
650
        ; save data
-
 
651
        movsd
-
 
652
        movsd
-
 
653
        movsd
-
 
654
        movsd
-
 
655
        movsd
-
 
656
 
-
 
657
;        cmp     dword[save_file], 0
-
 
658
;        jnz     .no_save_mode
-
 
659
;        push    dword[log_path]
-
 
660
;        mov     eax, [save_ptr]
-
 
661
;        mov     [log_path], eax
-
 
662
;        mcall   70, file_log
-
 
663
;        pop     dword[log_path]
-
 
664
;.no_save_mode:
-
 
665
        jmp     @b
-
 
666
.err_alloc_2:
-
 
667
        send_notify  Error_text.alloc_2
-
 
668
        jmp     @b
-
 
669
.check_cmd:
-
 
670
        test    byte[futex_cmd], 0x02 ; 1- stop 2 - save in file
-
 
671
        jz      .exit
-
 
672
        mcall   70, file_log
-
 
673
        test    byte[futex_cmd], 1
-
 
674
        jz      @b
-
 
675
.exit:
-
 
676
        mov     byte[futex_cmd], 0x00
-
 
677
        mcall   -1
468
;Data_program;
678
;Data_program;
469
title       db 'AMDtemp',0
679
title       db 'AMDtemp',0
470
path_drv    db '/kolibrios/drivers/sensors/k10temp.sys',0
680
path_drv    db '/kolibrios/drivers/sensors/k10temp.sys',0
471
Error_text  db '"Error load driver\nk10temp.sys was not found or is faulty " -tdE ',0
681
Error_text  db '"Error load driver\nk10temp.sys was not found or is faulty " -tdE ',0
-
 
682
.save_log:  db '"Error save log\nThe log has not been created" -tdE',0
-
 
683
.save_log_1:db '"Error save log\nThe log file is already saving" -tdE',0
-
 
684
.alloc_1:   db '"Error alloc memory for log" -tdE',0
-
 
685
.alloc_2:   db '"Error alloc memory for new koord" -tdE',0
-
 
686
.load_lib:  db '"Error load library" -tdE',0
-
 
687
 
472
_NA         db 'N/A',0
688
_NA         db 'N/A',0
473
_dot        db '.',0
689
_dot        db '.',0
474
_t          db 0x1d,0x00
690
_t          db 0x1d,0x00
475
_C          db 'C',0x00
691
_C          db 'C',0x00
476
_down       db 0x1f,0x00
692
_down       db 0x1f,0x00
477
_up         db 0x1e,0x00
693
_up         db 0x1e,0x00
Line 478... Line 694...
478
 
694
 
479
 
695
 
-
 
696
_Tctl       db 'Tctl: ',0
480
_Tctl       db 'Tctl: ',0
697
_Tmax       db 'Tmax: ',0
-
 
698
_Tcrit_hyst db 'Thyst:',0;'Tcrit hyst:',0
481
_Tmax       db 'Tmax: ',0
699
_Tcrit      db 'Tcrit:',0
482
_Tcrit      db 'Tcrit:',0
700
_Tdie       db 'Tdie: ',0
483
_Tccd1      db 'Tccd1:',0
701
_Tccd1      db 'Tccd1:',0
484
_Tccd2      db 'Tccd2:',0
702
_Tccd2      db 'Tccd2:',0
485
_Tccd3      db 'Tccd3:',0
703
_Tccd3      db 'Tccd3:',0
486
_Tccd4      db 'Tccd4:',0
704
_Tccd4      db 'Tccd4:',0
487
_Tccd5      db 'Tccd5:',0
705
_Tccd5      db 'Tccd5:',0
488
_Tccd6      db 'Tccd6:',0
706
_Tccd6      db 'Tccd6:',0
-
 
707
_Tccd7      db 'Tccd7:',0
-
 
708
_Tccd8      db 'Tccd8:',0
-
 
709
 
489
_Tccd7      db 'Tccd7:',0
710
_start_log:     db 'start loging',0
-
 
711
_stop_log:      db 'stop loging ',0
-
 
712
_save_log:      db '  save log  ',0
-
 
713
text_log_butt:  dd _start_log
-
 
714
 
-
 
715
align 4
-
 
716
file_log:
-
 
717
                dd 2
-
 
718
                dd 0
-
 
719
                dd 0
-
 
720
log_size:       dd 0
-
 
721
log_ptr:        dd 0
-
 
722
                db 0
-
 
723
log_path:       dd openfile_path
-
 
724
 
-
 
725
futex_handle:     dd 0
-
 
726
futex_cmd:        dd 0 ;1- stop 2 - save in file & no exit 3 - save in file & exit
-
 
727
 
-
 
728
;save_file:        db 0 ; 0 - no 1 - save ïî ñòàðèíêå
-
 
729
;save_ptr:         dd 0 ; pointer to save file
490
_Tccd8      db 'Tccd8:',0
730
drv_ptr:          dd path_drv ; pointer to path on driver
-
 
731
 
-
 
732
frame_text_1:     db 'General info',0
-
 
733
frame_text_2:     db 'Extended info',0
-
 
734
 
-
 
735
align 16
-
 
736
@IMPORT:
-
 
737
 
-
 
738
library box_lib         , 'box_lib.obj', \
-
 
739
        proc_lib        , 'proc_lib.obj'
-
 
740
 
-
 
741
import  proc_lib, \
-
 
742
        OpenDialog_Init     , 'OpenDialog_init',\
-
 
743
        OpenDialog_Start    , 'OpenDialog_start'
-
 
744
 
-
 
745
import  box_lib,\
-
 
746
        frame_draw      , 'frame_draw'
-
 
747
 
-
 
748
frame_struct:
-
 
749
                       dd      0;FR_STYLE     â êîäå ëèáû íå èñïîëüçóåòñÿ
-
 
750
.FR_WIDTH              dw      0x8a;FR_WIDTH
-
 
751
                       dw      0x0f;FR_LEFT start x
-
 
752
.FR_HEIGHT             dw      0x75;FR_HEIGHT
-
 
753
                       dw      0x28;FR_TOP  start y
-
 
754
.FR_OUTER_COLOR        dd      0xff;FR_OUTER_COLOR   âíåøíèé îêðàñ ëèíèè  ïðè ôëàãå x000z
-
 
755
.FR_INNER_COLOR        dd      0xff00;FR_INNER_COLOR âíóòðåíèé îêðàñ ëèíèè ïðè ôëàãå  x000z
-
 
756
                       dd      00001b;FR_FLAGS
-
 
757
                       ;FR_CAPTION equ 00001b ïîêàçûâàòü çàãîëîâîê èëè íåò
-
 
758
                       ;FR_FILLED  equ 10000b çàêðàøèâàåò âíóòðåíèþ îáëàñòü öâåòîì ôîíà òåêñòà
-
 
759
.FR_TEXT               dd      0;FR_TEXT   òóò è òàê ïîíÿòíî
-
 
760
                       dd      0;FR_TEXT_POSITION   0 - ñâåðõó òåêñò 1 - ñíèçó òåêñò
-
 
761
                       dd      1;FR_FONT
-
 
762
                       dd      0x0c;FR_FONT_HEIGHT     ñìåùåíèå êîîðäèíàòû y âûâîäèìîãî òåêñòà
Line 491... Line 763...
491
_Tdie       db 'Tdie: ',0
763
.FR_FORE_COLOR         dd      0xff;FR_FORE_COLOR     öâåò òåêñòà
492
_Tcrit_hyst db 'Tcrit hyst:',0
764
.FR_BACK_COLOR         dd      0xffffff;FR_BACK_COLOR     ôîí ñèìâîëîâ òåêñòà
493
 
765
 
494
;;flag mode input data
766
;;flag mode input data
Line 520... Line 792...
520
                 dd drv_data.sizeof;52 ; 13*4
792
                 dd drv_data.sizeof;52 ; 13*4
521
align 4
793
align 4
522
run_notify:
794
run_notify:
523
                 dd 7
795
                 dd 7
524
                 dd 0
796
                 dd 0
525
                 dd Error_text
797
.message:        dd Error_text
526
                 dd 0
798
                 dd 0
527
                 dd 0
799
                 dd 0
528
                 db '/sys/@notify',0 ,0,0,0 ;âûðàâíèâàíèå
800
                 db '/sys/@notify',0
529
 
-
 
530
align 4
801
align 4
531
update_flag:    dd 30 ;1 minut
-
 
532
graph_start:    db '0 0000 0 '  ; 9 byte
802
graph_start:    db '0 0000 0 '  ; 9 byte
533
.new_data:      db '0000.0000 ' ;  10-19 byte  10 byte
803
.new_data:      db '0000.0000 ' ;  10-19 byte  10 byte
534
.new_data_2:    db '0000.0000 ' ;  20-29 byte  10 byte
804
.new_data_2:    db '0000.0000 ' ;  20-29 byte  10 byte
Line -... Line 805...
-
 
805
 
535
 
806
;äûííûå äëÿ äèàëîãà îòêðûòèÿ ôàéëîâ
536
align 4
807
align 4
-
 
808
OpenDialog_data:
-
 
809
.type                   dd 1 ;0 - îòêðûòü, 1 - ñîõðàíèòü, 2 - âûáðàòü äèðåêòîðèþ
537
graph_temp:
810
.procinfo               dd procinfo ;+4  ýòî äëÿ ïîëó÷åíèÿ äàííûõ ïîòîêà
-
 
811
.com_area_name          dd communication_area_name ;+8
-
 
812
.com_area               dd 0 ;+12     êàê ÿ ïîíÿë, ñþäà áóäåò çàïèñàí óêàçàòåëü íà ðàñøàðåíóþ ïàìÿòü
-
 
813
.opendir_path           dd 0 ;+16  ïóòü ê ïàïêå, êîòîðàÿ áóäåò ïðè îòêðûòèè êîìïîíåíòà
-
 
814
.dir_default_path       dd default_dir ;+20 ïóòü ê ïàïêå, åñëè opendir_path=0
-
 
815
.start_path             dd opendialog_path ;+24 ïóòü ê opendialog
-
 
816
.draw_window            dd draw ;+28 ôóíêöèÿ ïåðåðèñîâêè îêíà, âûçâàâøåãî opendialog
-
 
817
.status                 dd 0 ;+32  0, 2 - âûõîä èëè îøèáêà 1 - þçåð íàæàë OK
-
 
818
.openfile_path          dd openfile_path ;+36 óêàçàòåëü íà áóôåð äëÿ ïóòü ê îòêðûâàåìîìó ôàéëó
-
 
819
.filename_area          dd filename_area ;+40 óêàçàòåëü íà áóôåð äëÿ íàçâàíèÿ ôàéëà
-
 
820
.filter_area            dd 0;Filter  óêàçàòåëü íà ìàññèâ ôèëüòîðîâ ïîèñêà
538
                dd 2
821
.x:
539
.index:         dd 0
822
.x_size                 dw 420 ;+48 ; Window X size
-
 
823
.x_start                dw 10 ;+50 ; Window X position
540
                dd 0
824
.y:
541
.size:          dd 19 ;size 4 first value for Graph
825
.y_size                 dw 320 ;+52 ; Window y size
-
 
826
.y_start                dw 10 ;+54 ; Window Y position
542
.str:           dd graph_start ; çàìåíèòü
827
 
-
 
828
;ôîðìàò ôèëüòðîâ
543
                db 0
829
;Filter:
544
                dd PATH
830
;dd Filter.end - Filter.1
-
 
831
;.1:
545
align 4
832
;db 'ASM',0
546
graph_koord_x2:
833
;db 'INC',0
-
 
834
;db 'TXT',0
-
 
835
;.end:
-
 
836
;db 0
-
 
837
 
547
                dd 3
838
 
-
 
839
default_dir db '/sys',0 ;äèðåêòîðèÿ ïî óìîë÷àíèþ
-
 
840
 
548
                dd 2 ;index for rewrite 2 value
841
communication_area_name:
549
                dd 0
842
        db 'FFFFFFFF_open_dialog',0
550
                dd 4
843
opendialog_path:
-
 
844
        db '/sys/File managers/opendial',0
551
                dd graph_start.new_data ; çàìåíèòü
845
filename_area:
552
                db 0
846
        db 'temp1.grf',0
-
 
847
                rb 256
553
                dd PATH
848
 
554
align 4
849
align 4
555
PATH:
850
PATH:
556
   rb 512 ; buffer for command line. string for save log.
851
   rb 512 ; buffer for command line. string for save log.
557
sc      system_colors
852
sc      system_colors
558
I_END:
853
I_END:
559
   rd 256
854
   rd 256
-
 
855
STACKTOP:
-
 
856
 
-
 
857
        rb      512 ; 512 byte for stack
-
 
858
thread_timer.stack:
-
 
859
;rb 1024
-
 
860
        procinfo process_information
-
 
861
        openfile_path:
560
STACKTOP:
862
                rb 4096
561
MEM:
863
MEM: