Rev 3927 | Rev 3952 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
31 | halyavin | 1 | ; |
2559 | mario79 | 2 | ; CPU -process Manager |
31 | halyavin | 3 | ; |
2559 | mario79 | 4 | ;------------------------------------------------------------------------------ |
3408 | hidnplayr | 5 | ; version: 1.80 |
2582 | mario79 | 6 | ; last update: 07/04/2012 |
7 | ; changed by: Marat Zakiyanov aka Mario79, aka Mario |
||
8 | ; changes: Complete elimination of flicker. |
||
9 | ; Using f.0 C = 1 - don't fill working area on window draw. |
||
10 | ; Increasing the size of buttons and a bright color. |
||
2583 | mario79 | 11 | ; Processing "window is rolled up" and "window is minimized" |
2582 | mario79 | 12 | ;------------------------------------------------------------------------------ |
3408 | hidnplayr | 13 | ; version: 1.70 |
2559 | mario79 | 14 | ; last update: 04/04/2012 |
15 | ; changed by: Marat Zakiyanov aka Mario79, aka Mario |
||
16 | ; changes: Code refactoring and optimization. |
||
17 | ; Added russian language support. |
||
18 | ; Fix - processes information showing not been updated during |
||
19 | ; the processing of mouse events. |
||
20 | ;------------------------------------------------------------------------------ |
||
21 | ; Many fix's and changes created by: |
||
22 | ; Diamond, Heavyiron, SPraid, |
||
23 | ; Leency, IgorA, kaitz |
||
24 | ;--------------------------------------------------------------------- |
||
25 | ; integrated with load_lib.obj by |
||
26 | ;--------------------------------------------------------------------- |
||
31 | halyavin | 27 | ; additions by M.Lisovin lisovin@26.ru |
2559 | mario79 | 28 | ;--------------------------------------------------------------------- |
29 | ; original author - VTurjanmaa |
||
30 | ;------------------------------------------------------------------------------ |
||
3408 | hidnplayr | 31 | format binary as "" |
32 | |||
33 | use32 |
||
34 | org 0x0 |
||
35 | db 'MENUET01' ; 8 byte id |
||
36 | dd 0x01 ; header version |
||
37 | dd START ; start of code |
||
38 | dd IM_END ; size of image |
||
39 | dd U_END ; memory for app |
||
40 | dd stack_area ; esp |
||
41 | dd 0x0 ; boot parameters |
||
42 | dd 0x0 ; path |
||
2559 | mario79 | 43 | ;------------------------------------------------------------------------------ |
31 | halyavin | 44 | include 'lang.inc' |
1209 | diamond | 45 | include '../../../macros.inc' |
1373 | IgorA | 46 | include '../../../develop/libraries/box_lib/trunk/box_lib.mac' |
1209 | diamond | 47 | include '../../../develop/libraries/box_lib/load_lib.mac' |
2559 | mario79 | 48 | ;------------------------------------------------------------------------------ |
3408 | hidnplayr | 49 | display_processes=24 ;32 ; number of processes to show |
2559 | mario79 | 50 | window_x_size=524 |
51 | window_y_size=430 |
||
52 | ;------------------------------------------------------------------------------ |
||
3408 | hidnplayr | 53 | @use_library ;use load lib macros |
2559 | mario79 | 54 | ;------------------------------------------------------------------------------ |
3408 | hidnplayr | 55 | START: ; start of execution |
56 | mcall 68,11 |
||
1205 | Lrz | 57 | sys_load_library library_name, cur_dir_path, library_path, system_path, \ |
58 | err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i |
||
3408 | hidnplayr | 59 | inc eax |
60 | jz close |
||
2559 | mario79 | 61 | ;------------------------------------------------------------------------------ |
3408 | hidnplayr | 62 | mcall 40,0x27 ;set event |
2559 | mario79 | 63 | ;------------------------------------------------------------------------------ |
64 | ;set window size and position for 0 function |
||
65 | ;to [winxpos] and [winypos] variables |
||
66 | ;get screen size |
||
3408 | hidnplayr | 67 | mcall 14 |
68 | mov ebx,eax |
||
3587 | fedesco | 69 | ;calculate (x_screen-window_x_size)/2 |
3408 | hidnplayr | 70 | shr ebx,16+1 |
71 | sub ebx,window_x_size/2 |
||
72 | shl ebx,16 |
||
73 | mov bx,window_x_size |
||
3587 | fedesco | 74 | ;winxpos=xcoord*65536+xsize |
3408 | hidnplayr | 75 | mov [winxpos],ebx |
3587 | fedesco | 76 | ;calculate (y_screen-window_y_size)/2 |
3408 | hidnplayr | 77 | and eax,0xffff |
78 | shr eax,1 |
||
79 | sub eax,window_y_size/2 |
||
80 | shl eax,16 |
||
81 | mov ax,window_y_size |
||
3587 | fedesco | 82 | ;winypos=ycoord*65536+ysize |
3408 | hidnplayr | 83 | mov [winypos],eax |
3587 | fedesco | 84 | ;------------------------------------------------------------------------------ |
3408 | hidnplayr | 85 | init_checkboxes2 check1,check1_end |
86 | mcall 48,3,sc,40 |
||
87 | edit_boxes_set_sys_color edit1,edit1_end,sc ;set color |
||
88 | check_boxes_set_sys_color2 check1,check1_end,sc ;set color |
||
2559 | mario79 | 89 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 90 | align 4 |
91 | ;main loop when process name isn't edited. |
||
92 | red: |
||
3408 | hidnplayr | 93 | call draw_window ; redraw all window |
2559 | mario79 | 94 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 95 | align 4 |
31 | halyavin | 96 | still: |
3408 | hidnplayr | 97 | mcall 23,100 ; wait here for event 1 sec. |
31 | halyavin | 98 | |
3408 | hidnplayr | 99 | dec eax ; redraw request ? |
100 | jz red |
||
1205 | Lrz | 101 | |
3408 | hidnplayr | 102 | dec eax ; key in buffer ? |
103 | jz key |
||
2559 | mario79 | 104 | |
3408 | hidnplayr | 105 | dec eax ; button in buffer ? |
106 | jz button |
||
2559 | mario79 | 107 | |
3408 | hidnplayr | 108 | push dword edit1 |
109 | call [edit_box_mouse] |
||
3587 | fedesco | 110 | |
3408 | hidnplayr | 111 | push dword[check1.flags] |
3587 | fedesco | 112 | |
3408 | hidnplayr | 113 | push dword check1 |
114 | call [check_box_mouse] |
||
3587 | fedesco | 115 | |
3408 | hidnplayr | 116 | pop eax |
3587 | fedesco | 117 | |
3408 | hidnplayr | 118 | cmp eax, dword[check1.flags] |
119 | jz still_end |
||
3587 | fedesco | 120 | |
3408 | hidnplayr | 121 | push dword check1 |
122 | call [check_box_draw] |
||
2559 | mario79 | 123 | ;-------------------------------------- |
3587 | fedesco | 124 | align 4 |
125 | show_process_info_1: |
||
3408 | hidnplayr | 126 | mcall 26,9 |
127 | add eax,100 |
||
128 | mov [time_counter],eax |
||
1205 | Lrz | 129 | |
3408 | hidnplayr | 130 | call show_process_info ; draw new state of processes |
131 | jmp still |
||
2559 | mario79 | 132 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 133 | align 4 |
2559 | mario79 | 134 | still_end: |
3408 | hidnplayr | 135 | mcall 26,9 |
136 | cmp [time_counter],eax |
||
137 | ja still |
||
31 | halyavin | 138 | |
3408 | hidnplayr | 139 | add eax,100 |
140 | mov [time_counter],eax |
||
1212 | Lrz | 141 | |
3408 | hidnplayr | 142 | call show_process_info ; draw new state of processes |
143 | jmp still |
||
2559 | mario79 | 144 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 145 | align 4 |
3408 | hidnplayr | 146 | key: ; key |
147 | mcall 2 |
||
1205 | Lrz | 148 | |
3408 | hidnplayr | 149 | cmp ah,184 ; PageUp |
150 | jz pgdn |
||
1205 | Lrz | 151 | |
3408 | hidnplayr | 152 | cmp ah,183 |
153 | jz pgup ; PageDown |
||
2559 | mario79 | 154 | |
3408 | hidnplayr | 155 | cmp ah,27 |
156 | jz close ; Esc |
||
2559 | mario79 | 157 | |
3408 | hidnplayr | 158 | push dword edit1 |
159 | call [edit_box_key] |
||
160 | ; Check ENTER with ed_focus edit_box |
||
161 | lea edi,[edit1] |
||
162 | test word ed_flags,ed_focus |
||
3587 | fedesco | 163 | jz still_end |
1205 | Lrz | 164 | |
3408 | hidnplayr | 165 | sub ah,13 ; ENTER? |
166 | jz program_start ; RUN a program |
||
1212 | Lrz | 167 | |
3408 | hidnplayr | 168 | jmp still |
2559 | mario79 | 169 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 170 | align 4 |
171 | button: |
||
172 | ; get button id |
||
3408 | hidnplayr | 173 | mcall 17 |
3587 | fedesco | 174 | shr eax,8 |
31 | halyavin | 175 | ;id in [10,50] corresponds to terminate buttons. |
3408 | hidnplayr | 176 | cmp eax,10 |
3587 | fedesco | 177 | jb noterm |
31 | halyavin | 178 | |
3408 | hidnplayr | 179 | cmp eax,50 |
180 | jg noterm |
||
3587 | fedesco | 181 | ;calculate button index |
3408 | hidnplayr | 182 | sub eax,11 |
3587 | fedesco | 183 | ;calculate process slot |
3408 | hidnplayr | 184 | mov ecx,[tasklist+4*eax] |
31 | halyavin | 185 | ;ignore empty buttons |
3408 | hidnplayr | 186 | test ecx,ecx |
187 | jle still_end |
||
3587 | fedesco | 188 | ;terminate application |
3408 | hidnplayr | 189 | mcall 18,2 |
3587 | fedesco | 190 | jmp show_process_info_1 |
2559 | mario79 | 191 | ;-------------------------------------- |
192 | align 4 |
||
193 | noterm: |
||
194 | ;special buttons |
||
3408 | hidnplayr | 195 | dec eax |
196 | jz close |
||
1212 | Lrz | 197 | |
3408 | hidnplayr | 198 | sub eax,50 |
199 | jz pgdn ;51 |
||
31 | halyavin | 200 | |
3408 | hidnplayr | 201 | dec eax |
202 | jz pgup ;52 |
||
1203 | Lrz | 203 | |
3408 | hidnplayr | 204 | dec eax |
205 | jz program_start ;53 |
||
1212 | Lrz | 206 | |
3408 | hidnplayr | 207 | dec eax |
208 | jz reboot ;54 |
||
1212 | Lrz | 209 | |
3408 | hidnplayr | 210 | jmp still_end |
3587 | fedesco | 211 | ;buttons handlers |
2559 | mario79 | 212 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 213 | align 4 |
2559 | mario79 | 214 | pgdn: |
3408 | hidnplayr | 215 | sub [list_start],display_processes |
3587 | fedesco | 216 | jge show_process_info_1 |
3408 | hidnplayr | 217 | mov [list_start],0 |
218 | jmp show_process_info_1 |
||
2559 | mario79 | 219 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 220 | align 4 |
2559 | mario79 | 221 | pgup: |
3408 | hidnplayr | 222 | mov eax,[list_add] ;maximal displayed process slot |
223 | mov [list_start],eax |
||
224 | jmp show_process_info_1 |
||
2559 | mario79 | 225 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 226 | align 4 |
227 | program_start: |
||
3408 | hidnplayr | 228 | mcall 70,file_start |
229 | jmp show_process_info_1 |
||
2559 | mario79 | 230 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 231 | align 4 |
232 | reboot: |
||
3408 | hidnplayr | 233 | mcall 70,sys_reboot |
31 | halyavin | 234 | ;close program if we going to reboot |
2559 | mario79 | 235 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 236 | align 4 |
2559 | mario79 | 237 | close: |
3408 | hidnplayr | 238 | or eax,-1 ; close this program |
239 | mcall |
||
2559 | mario79 | 240 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 241 | align 4 |
242 | draw_empty_slot: |
||
3408 | hidnplayr | 243 | cmp [draw_window_flag],1 |
244 | je @f |
||
245 | mov ecx,[curposy] |
||
246 | shl ecx,16 |
||
247 | mov cx,10 ; button height |
||
248 | push ecx |
||
249 | add ecx,3 shl 16 |
||
250 | mcall 13,<11,95>,,[btn_bacground_color] |
||
251 | pop ecx |
||
3587 | fedesco | 252 | |
3408 | hidnplayr | 253 | mcall 13,<111,393>,,[bar_bacground_color] |
2582 | mario79 | 254 | ;-------------------------------------- |
255 | align 4 |
||
256 | @@: |
||
3408 | hidnplayr | 257 | ret |
2582 | mario79 | 258 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 259 | align 4 |
31 | halyavin | 260 | draw_next_process: |
261 | ;input: |
||
262 | ; edi - current slot |
||
263 | ; [curposy] - y position |
||
264 | ;output: |
||
265 | ; edi - next slot (or -1 if no next slot) |
||
266 | ;registers corrupted! |
||
267 | ;delete old button |
||
3408 | hidnplayr | 268 | cmp [draw_window_flag],0 |
269 | je @f |
||
270 | mov edx,[index] |
||
271 | add edx,(1 shl 31)+11 |
||
272 | mcall 8 |
||
2582 | mario79 | 273 | ;-------------------------------------- |
274 | align 4 |
||
275 | @@: |
||
31 | halyavin | 276 | ;create terminate process button |
3408 | hidnplayr | 277 | mov ecx,[curposy] |
278 | shl ecx,16 |
||
279 | mov cx,13 ; button height |
||
280 | mov edx,[index] |
||
281 | add edx,11 |
||
282 | mov esi,0xccddee ; 0xaabbcc |
||
3587 | fedesco | 283 | ;contrast |
3408 | hidnplayr | 284 | test dword [index],1 |
285 | jz .change_color_button |
||
286 | mov esi,0xaabbcc ; 0x8899aa |
||
2559 | mario79 | 287 | ;-------------------------------------- |
288 | align 4 |
||
31 | halyavin | 289 | .change_color_button: |
3408 | hidnplayr | 290 | cmp [draw_window_flag],0 |
291 | je @f |
||
292 | mcall 8,<10,99> |
||
2582 | mario79 | 293 | ;-------------------------------------- |
294 | align 4 |
||
295 | @@: |
||
3408 | hidnplayr | 296 | mov [btn_bacground_color],esi |
31 | halyavin | 297 | ;draw background for proccess information |
2559 | mario79 | 298 | ; ecx was already set |
3408 | hidnplayr | 299 | mov edx,0xddffdd ; 0x88ff88 |
31 | halyavin | 300 | ;contrast |
3408 | hidnplayr | 301 | test dword [index],1 |
302 | jz .change_color_info |
||
303 | mov edx,0xffffff ; 0xddffdd |
||
2559 | mario79 | 304 | ;-------------------------------------- |
305 | align 4 |
||
31 | halyavin | 306 | .change_color_info: |
3408 | hidnplayr | 307 | inc cx |
308 | cmp [draw_window_flag],0 |
||
309 | je @f |
||
310 | mcall 13,<110,395> |
||
2582 | mario79 | 311 | ;-------------------------------------- |
312 | align 4 |
||
313 | @@: |
||
3408 | hidnplayr | 314 | mov [bar_bacground_color],edx |
31 | halyavin | 315 | ;nothing else should be done |
3587 | fedesco | 316 | ;if there is no process for this button |
3408 | hidnplayr | 317 | cmp edi,-1 |
318 | jne .return_1 |
||
2582 | mario79 | 319 | |
3408 | hidnplayr | 320 | call draw_empty_slot |
321 | or edi,-1 |
||
322 | jmp .ret |
||
2559 | mario79 | 323 | ;-------------------------------------- |
324 | align 4 |
||
325 | .return_1: |
||
31 | halyavin | 326 | ;find process |
3408 | hidnplayr | 327 | inc edi |
3587 | fedesco | 328 | ;more comfortable register for next loop |
3408 | hidnplayr | 329 | mov ecx,edi |
3587 | fedesco | 330 | ;precacluate pointer to process buffer |
3408 | hidnplayr | 331 | mov ebx,process_info_buffer |
2559 | mario79 | 332 | ;-------------------------------------- |
333 | align 4 |
||
31 | halyavin | 334 | .find_loop: |
3408 | hidnplayr | 335 | cmp ecx,256 |
336 | jge .no_processes |
||
31 | halyavin | 337 | ;load process information in buffer |
3408 | hidnplayr | 338 | mcall 9 |
31 | halyavin | 339 | ;if current slot greater than maximal slot, |
3587 | fedesco | 340 | ;there is no more proccesses. |
3408 | hidnplayr | 341 | cmp ecx,eax |
342 | jg .no_processes |
||
3587 | fedesco | 343 | ;if slot state is equal to 9, it is empty. |
3408 | hidnplayr | 344 | cmp [process_info_buffer+process_information.slot_state],9 |
345 | jnz .process_found |
||
3587 | fedesco | 346 | |
3408 | hidnplayr | 347 | inc ecx |
348 | jmp .find_loop |
||
2559 | mario79 | 349 | ;-------------------------------------- |
350 | align 4 |
||
31 | halyavin | 351 | .no_processes: |
3408 | hidnplayr | 352 | call draw_empty_slot |
353 | or edi,-1 |
||
354 | ret |
||
2559 | mario79 | 355 | ;-------------------------------------- |
356 | align 4 |
||
31 | halyavin | 357 | .process_found: |
1266 | Lrz | 358 | ;check on/off check box |
3408 | hidnplayr | 359 | push edi |
360 | lea edi,[check1] |
||
361 | test dword ch_flags,ch_flag_en |
||
362 | pop edi |
||
3779 | mario79 | 363 | jnz .no_filter |
1266 | Lrz | 364 | |
3408 | hidnplayr | 365 | cmp dword [process_info_buffer+10],'ICON' |
3779 | mario79 | 366 | jnz @f |
367 | cmp dword [process_info_buffer+10+4],0 |
||
3587 | fedesco | 368 | jz .return_1 |
3779 | mario79 | 369 | @@: |
370 | cmp dword [process_info_buffer+10],'IDLE' |
||
371 | jnz @f |
||
372 | cmp dword [process_info_buffer+10+4],0 |
||
3408 | hidnplayr | 373 | jz .return_1 |
3779 | mario79 | 374 | @@: |
375 | cmp word [process_info_buffer+10],'OS' |
||
376 | jnz @f |
||
377 | cmp dword [process_info_buffer+10+2],0 |
||
378 | jz .return_1 |
||
379 | @@: |
||
3408 | hidnplayr | 380 | cmp byte [process_info_buffer+10],'@' |
381 | jz .return_1 |
||
2559 | mario79 | 382 | ;-------------------------------------- |
383 | align 4 |
||
3779 | mario79 | 384 | .no_filter: |
3408 | hidnplayr | 385 | mov edi,ecx |
386 | mov [list_add],ecx |
||
3587 | fedesco | 387 | ;get processor cpeed |
31 | halyavin | 388 | ;for percent calculating |
3408 | hidnplayr | 389 | mcall 18,5 |
390 | xor edx,edx |
||
391 | mov ebx,100 |
||
392 | div ebx |
||
31 | halyavin | 393 | ;eax = number of operation for 1% now |
394 | ;calculate process cpu usage percent |
||
3408 | hidnplayr | 395 | mov ebx,eax |
396 | mov eax,[process_info_buffer+process_information.cpu_usage] |
||
397 | ; cdq |
||
3587 | fedesco | 398 | xor edx,edx ; for CPU more 2 GHz - mike.dld |
3408 | hidnplayr | 399 | div ebx |
400 | mov [cpu_percent],eax |
||
31 | halyavin | 401 | ;set text color to display process information |
402 | ;([tcolor] variable) |
||
3587 | fedesco | 403 | ;0% : black |
31 | halyavin | 404 | ;1-80% : green |
405 | ;81-100% : red |
||
3408 | hidnplayr | 406 | test eax,eax |
407 | jnz .no_black |
||
1212 | Lrz | 408 | |
3408 | hidnplayr | 409 | mov [tcolor],eax |
410 | jmp .color_set |
||
2559 | mario79 | 411 | ;-------------------------------------- |
412 | align 4 |
||
3587 | fedesco | 413 | .no_black: |
3408 | hidnplayr | 414 | cmp eax,80 |
415 | ja .no_green |
||
1212 | Lrz | 416 | |
3408 | hidnplayr | 417 | mov dword [tcolor],0x107a30 |
418 | jmp .color_set |
||
2559 | mario79 | 419 | ;-------------------------------------- |
420 | align 4 |
||
31 | halyavin | 421 | .no_green: |
3408 | hidnplayr | 422 | mov dword [tcolor],0xac0000 |
2559 | mario79 | 423 | ;-------------------------------------- |
424 | align 4 |
||
31 | halyavin | 425 | .color_set: |
426 | ;show slot number |
||
3587 | fedesco | 427 | ;ecx haven't changed since .process_found |
3408 | hidnplayr | 428 | push edi |
429 | mov edx,[curposy] |
||
430 | add edx,15*65536+3 |
||
431 | mov esi,[tcolor] |
||
432 | and esi,0xffffff |
||
433 | or esi,0x40000000 |
||
434 | mcall 47,<2,256>,,,,[btn_bacground_color] |
||
31 | halyavin | 435 | ;show process name |
3408 | hidnplayr | 436 | mov ebx,[curposy] |
437 | add ebx,40*65536+3 |
||
438 | mov ecx,[tcolor] |
||
439 | and ecx,0xffffff |
||
440 | or ecx,0x40000000 |
||
441 | mcall 4,,,process_info_buffer.process_name,11,[btn_bacground_color] |
||
31 | halyavin | 442 | ;show pid |
3408 | hidnplayr | 443 | mov edx,[curposy] |
444 | add edx,125*65536+3 |
||
445 | mov esi,[tcolor] |
||
446 | and esi,0xffffff |
||
447 | or esi,0x40000000 |
||
448 | mcall 47,<8,256>,[process_info_buffer.PID],,,[bar_bacground_color] |
||
31 | halyavin | 449 | ;show cpu usage |
3408 | hidnplayr | 450 | add edx,60*65536 |
451 | mcall ,,[process_info_buffer.cpu_usage] |
||
31 | halyavin | 452 | ;show cpu percent |
3408 | hidnplayr | 453 | add edx,60*65536 |
454 | mcall ,<3,0>,[cpu_percent] |
||
31 | halyavin | 455 | ;show memory start - obsolete |
3408 | hidnplayr | 456 | add edx,30*65536 |
457 | mcall ,<8,256>,[process_info_buffer.memory_start] |
||
31 | halyavin | 458 | ;show memory usage |
3408 | hidnplayr | 459 | mov ecx,[process_info_buffer.used_memory] |
460 | inc ecx |
||
461 | add edx,60*65536 |
||
462 | mcall |
||
31 | halyavin | 463 | ;show window stack and value |
3408 | hidnplayr | 464 | add edx,60*65536 |
465 | mcall ,,dword [process_info_buffer.window_stack_position] |
||
31 | halyavin | 466 | ;show window xy size |
3408 | hidnplayr | 467 | mov ecx,[process_info_buffer.box.left] |
468 | shl ecx,16 |
||
469 | add ecx,[process_info_buffer.box.top] |
||
470 | add edx,60*65536 |
||
3587 | fedesco | 471 | mcall |
3408 | hidnplayr | 472 | pop edi |
2559 | mario79 | 473 | ;-------------------------------------- |
474 | align 4 |
||
31 | halyavin | 475 | .ret: |
476 | ;build index->slot map for terminating processes. |
||
3408 | hidnplayr | 477 | mov eax,[index] |
3587 | fedesco | 478 | mov [tasklist+4*eax],edi |
3408 | hidnplayr | 479 | ret |
2559 | mario79 | 480 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 481 | align 4 |
2559 | mario79 | 482 | f11: |
3587 | fedesco | 483 | ;full update |
3408 | hidnplayr | 484 | push edi |
485 | call draw_window |
||
486 | pop edi |
||
2559 | mario79 | 487 | ;------------------------------------------------------------------------------ |
31 | halyavin | 488 | ; ********************************************* |
489 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
||
490 | ; ********************************************* |
||
3587 | fedesco | 491 | align 4 |
31 | halyavin | 492 | draw_window: |
3587 | fedesco | 493 | mcall 12, 1 |
2559 | mario79 | 494 | ; DRAW WINDOW |
3408 | hidnplayr | 495 | xor eax,eax ; function 0 : define and draw window |
496 | xor esi,esi |
||
497 | mcall ,[winxpos],[winypos],0x74ffffff,,title ;0x34ddffdd |
||
2582 | mario79 | 498 | |
3408 | hidnplayr | 499 | mcall 9,process_info_buffer,-1 |
3587 | fedesco | 500 | |
3408 | hidnplayr | 501 | mov eax,[ebx+70] |
502 | mov [window_status],eax |
||
503 | test [window_status],100b ; window is rolled up |
||
504 | jnz .exit |
||
2583 | mario79 | 505 | |
3408 | hidnplayr | 506 | test [window_status],10b ; window is minimized to panel |
507 | jnz .exit |
||
2583 | mario79 | 508 | |
3408 | hidnplayr | 509 | mov eax,[ebx+62] |
510 | inc eax |
||
511 | mov [client_area_x_size],eax |
||
512 | mov eax,[ebx+66] |
||
513 | inc eax |
||
514 | mov [client_area_y_size],eax |
||
2582 | mario79 | 515 | |
3408 | hidnplayr | 516 | mov ebx,[client_area_x_size] |
517 | mcall 13,,<0,20>,0xffffff |
||
2559 | mario79 | 518 | ; function 4 : write text to window |
3408 | hidnplayr | 519 | xor ecx,ecx |
520 | mcall 4,<17,8>,,text,text_len |
||
31 | halyavin | 521 | |
3408 | hidnplayr | 522 | mcall 13,<0,10>,<20,336>,0xffffff |
3587 | fedesco | 523 | |
3408 | hidnplayr | 524 | mov ebx,[client_area_x_size] |
525 | sub ebx,10+100+395 |
||
526 | add ebx,(10+100+395) shl 16 |
||
527 | mcall |
||
3587 | fedesco | 528 | |
3408 | hidnplayr | 529 | mcall 26,9 |
530 | add eax,100 |
||
531 | mov [time_counter],eax |
||
2582 | mario79 | 532 | |
3408 | hidnplayr | 533 | mov [draw_window_flag],1 |
534 | call show_process_info |
||
535 | mov [draw_window_flag],0 |
||
3587 | fedesco | 536 | |
3408 | hidnplayr | 537 | mov ebx,[client_area_x_size] |
538 | mov ecx,[client_area_y_size] |
||
539 | sub ecx,20+336 |
||
540 | add ecx,(20+336) shl 16 |
||
541 | mcall 13,,,0xffffff |
||
2582 | mario79 | 542 | |
3408 | hidnplayr | 543 | push dword edit1 |
544 | call [edit_box_draw] |
||
2559 | mario79 | 545 | |
3408 | hidnplayr | 546 | push dword check1 |
547 | call [check_box_draw] |
||
3587 | fedesco | 548 | |
31 | halyavin | 549 | ; previous page button |
3408 | hidnplayr | 550 | mcall 8,<25,96>,<361,14>,51,0xccddee ;0xaabbcc |
1207 | Lrz | 551 | ; next page button 52 |
3408 | hidnplayr | 552 | inc edx |
553 | mcall ,<125,96> |
||
31 | halyavin | 554 | ; ">" (text enter) button |
3408 | hidnplayr | 555 | add ecx,20 shl 16 |
1207 | Lrz | 556 | ; run button 53 |
3408 | hidnplayr | 557 | inc edx |
558 | mcall ,<456,50> |
||
3587 | fedesco | 559 | ; reboot button |
560 | sub ebx,120*65536 |
||
3408 | hidnplayr | 561 | add ebx,60 |
562 | sub ecx,20 shl 16 |
||
563 | inc edx |
||
564 | mcall |
||
31 | halyavin | 565 | ;"PREV PAGE", "NEXT PAGE" and "REBOOT" labels |
3408 | hidnplayr | 566 | xor ecx,ecx |
567 | mcall 4,<45,365>,,tbts,tbte-tbts |
||
31 | halyavin | 568 | ;"RUN" labels |
3408 | hidnplayr | 569 | mcall ,<464,385>,,tbts_3,tbte_2-tbts_3 |
31 | halyavin | 570 | ;print application name in text box |
2583 | mario79 | 571 | ;-------------------------------------- |
572 | align 4 |
||
573 | .exit: |
||
3408 | hidnplayr | 574 | mcall 12, 2 |
575 | ret |
||
2559 | mario79 | 576 | ;------------------------------------------------------------------------------ |
577 | align 4 |
||
578 | show_process_info: |
||
3408 | hidnplayr | 579 | test [window_status],100b ; window is rolled up |
580 | jnz .exit |
||
2583 | mario79 | 581 | |
3408 | hidnplayr | 582 | test [window_status],10b ; window is minimized to panel |
583 | jnz .exit |
||
2583 | mario79 | 584 | |
3938 | mario79 | 585 | mov ecx,display_processes |
586 | mov edi,tasklist |
||
587 | xor eax,eax |
||
588 | cld |
||
589 | rep stosd |
||
590 | |||
3408 | hidnplayr | 591 | mov edi,[list_start] |
592 | mov [list_add],edi |
||
593 | mov dword [index],0 |
||
594 | mov dword [curposy],20 |
||
2559 | mario79 | 595 | ;-------------------------------------- |
596 | align 4 |
||
597 | .loop_draw: |
||
3408 | hidnplayr | 598 | call draw_next_process |
599 | inc dword [index] |
||
600 | add dword [curposy],14 |
||
601 | cmp [index],display_processes |
||
602 | jl .loop_draw |
||
2583 | mario79 | 603 | ;-------------------------------------- |
604 | align 4 |
||
605 | .exit: |
||
3408 | hidnplayr | 606 | ret |
2559 | mario79 | 607 | ;------------------------------------------------------------------------------ |
31 | halyavin | 608 | ; DATA AREA |
2559 | mario79 | 609 | ;------------------------------------------------------------------------------ |
3408 | hidnplayr | 610 | system_path db '/sys/lib/' |
611 | library_name db 'box_lib.obj',0 |
||
1205 | Lrz | 612 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
613 | |||
3408 | hidnplayr | 614 | err_message_found_lib db 'Sorry I cannot load library box_lib.obj',0 |
1205 | Lrz | 615 | head_f_i: |
3408 | hidnplayr | 616 | head_f_l db 'System error',0 |
617 | err_message_import db 'Error on load import library box_lib.obj',0 |
||
2559 | mario79 | 618 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 619 | align 4 |
620 | myimport: |
||
3408 | hidnplayr | 621 | edit_box_draw dd aEdit_box_draw |
622 | edit_box_key dd aEdit_box_key |
||
623 | edit_box_mouse dd aEdit_box_mouse |
||
624 | ;version_ed dd aVersion_ed |
||
1205 | Lrz | 625 | |
3408 | hidnplayr | 626 | init_checkbox dd aInit_checkbox |
627 | check_box_draw dd aCheck_box_draw |
||
628 | check_box_mouse dd aCheck_box_mouse |
||
629 | ;version_ch dd aVersion_ch |
||
1205 | Lrz | 630 | |
3408 | hidnplayr | 631 | ;option_box_draw dd aOption_box_draw |
632 | ;option_box_mouse dd aOption_box_mouse |
||
633 | ;version_op dd aVersion_op |
||
1205 | Lrz | 634 | |
3408 | hidnplayr | 635 | dd 0 |
636 | dd 0 |
||
1205 | Lrz | 637 | |
3408 | hidnplayr | 638 | aEdit_box_draw db 'edit_box',0 |
639 | aEdit_box_key db 'edit_box_key',0 |
||
640 | aEdit_box_mouse db 'edit_box_mouse',0 |
||
641 | ;aVersion_ed db 'version_ed',0 |
||
1205 | Lrz | 642 | |
3408 | hidnplayr | 643 | aInit_checkbox db 'init_checkbox2',0 |
644 | aCheck_box_draw db 'check_box_draw2',0 |
||
645 | aCheck_box_mouse db 'check_box_mouse2',0 |
||
646 | ;aVersion_ch db 'version_ch',0 |
||
1205 | Lrz | 647 | |
3408 | hidnplayr | 648 | ;aOption_box_draw db 'option_box_draw',0 |
649 | ;aOption_box_mouse db 'option_box_mouse',0 |
||
650 | ;aVersion_op db 'version_op',0 |
||
2559 | mario79 | 651 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 652 | align 4 |
3178 | IgorA | 653 | check1 check_box2 (10 shl 16)+11,(383 shl 16)+11,6, 0x80AABBCC,0,0,check_text, ch_flag_bottom ;ch_flag_en |
1266 | Lrz | 654 | check1_end: |
2582 | mario79 | 655 | edit1 edit_box 350,95,381,0xffffff,0x6f9480,0,0xAABBCC,0,start_application_c,\ |
2559 | mario79 | 656 | start_application,mouse_dd,ed_focus,start_application_e,start_application_e |
1228 | Lrz | 657 | edit1_end: |
31 | halyavin | 658 | list_start dd 0 |
2559 | mario79 | 659 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 660 | align 4 |
748 | heavyiron | 661 | sys_reboot: |
3408 | hidnplayr | 662 | dd 7 |
663 | dd 0 |
||
664 | dd 0 |
||
665 | dd 0 |
||
666 | dd 0 |
||
667 | db '/sys/end',0 |
||
2559 | mario79 | 668 | ;------------------------------------------------------------------------------ |
340 | heavyiron | 669 | if lang eq de |
31 | halyavin | 670 | text: |
3408 | hidnplayr | 671 | db 'NAME/BEENDEN PID CPU-LAST % ' |
672 | db 'SPEICHER START/NUTZUNG W-STACK W-POS' |
||
205 | heavyiron | 673 | text_len = $-text |
31 | halyavin | 674 | |
3408 | hidnplayr | 675 | tbts: db 'SEITE ZURUECK SEITE VOR REBOOT SYSTEM' |
135 | diamond | 676 | tbte: |
3408 | hidnplayr | 677 | tbts_3 db 'START' |
135 | diamond | 678 | tbte_2: |
3408 | hidnplayr | 679 | check_text db '@ on/off',0 |
680 | title db 'Prozesse - Ctrl/Alt/Del',0 |
||
2559 | mario79 | 681 | ;-------------------------------------- |
268 | kaitz | 682 | else if lang eq et |
683 | text: |
||
3408 | hidnplayr | 684 | db 'NIMI/LÕPETA PID CPU-KASUTUS % ' |
685 | db 'MÄLU ALGUS/KASUTUS W-PUHVER W-SUURUS' |
||
268 | kaitz | 686 | text_len = $-text |
687 | |||
3408 | hidnplayr | 688 | tbts: db 'EELMINE LEHT JÄRGMINE LEHT REBOODI SÜSTEEM' |
268 | kaitz | 689 | tbte: |
3408 | hidnplayr | 690 | tbts_3 db 'START' |
268 | kaitz | 691 | tbte_2: |
3927 | kaitz | 692 | check_text db '@ sees/väl.',0 |
3408 | hidnplayr | 693 | title db 'Protsessid - Ctrl/Alt/Del' |
2559 | mario79 | 694 | ;-------------------------------------- |
695 | else if lang eq ru |
||
696 | text: |
||
3408 | hidnplayr | 697 | db 'ˆŒŸ/‡€‚…˜ˆ’œ PID CPU-‡€ƒ“‡Š€ % ' |
698 | db '€ŒŸ’œ €—€‹Ž/‚‘…ƒŽ W-STACK W-POS' |
||
2559 | mario79 | 699 | text_len = $-text |
268 | kaitz | 700 | |
3408 | hidnplayr | 701 | tbts: db '…„.‘’ ‘‹…„.‘’ ……‡€ƒ“‡Š€' |
2559 | mario79 | 702 | tbte: |
3408 | hidnplayr | 703 | tbts_3 db '‡€“‘Š' |
2559 | mario79 | 704 | tbte_2: |
3408 | hidnplayr | 705 | check_text db '@ ¢ª«/¢ëª«',0 |
706 | title db '„¨á¯¥âç¥à ¯à®æ¥áᮢ - Ctrl/Alt/Del',0 |
||
2559 | mario79 | 707 | ;-------------------------------------- |
3587 | fedesco | 708 | else if lang eq it |
709 | text: |
||
710 | db 'NOME-PROGRAMMA PID USO CPU % ' |
||
711 | db 'MEMORY START/USAGE W-STACK W-POS' |
||
712 | text_len = $-text |
||
713 | |||
714 | tbts: db 'INDIETRO AVANTI RIAVVIA SISTEMA' |
||
715 | tbte: |
||
716 | tbts_3 db 'START' |
||
717 | tbte_2: |
||
718 | check_text db '@ on/off',0 |
||
719 | title db 'Gestore processi - Ctrl/Alt/Del',0 |
||
720 | ;-------------------------------------- |
||
340 | heavyiron | 721 | else |
722 | text: |
||
3408 | hidnplayr | 723 | db 'NAME/TERMINATE PID CPU-USAGE % ' |
724 | db 'MEMORY START/USAGE W-STACK W-POS' |
||
340 | heavyiron | 725 | text_len = $-text |
726 | |||
3408 | hidnplayr | 727 | tbts: db 'PREV PAGE NEXT PAGE REBOOT SYSTEM' |
340 | heavyiron | 728 | tbte: |
3408 | hidnplayr | 729 | tbts_3 db ' RUN' |
340 | heavyiron | 730 | tbte_2: |
3408 | hidnplayr | 731 | check_text db '@ on/off',0 |
732 | title db 'Process manager - Ctrl/Alt/Del',0 |
||
340 | heavyiron | 733 | |
135 | diamond | 734 | end if |
2559 | mario79 | 735 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 736 | align 4 |
2559 | mario79 | 737 | file_start: |
3408 | hidnplayr | 738 | dd 7 |
739 | dd 0 |
||
740 | dd 0 |
||
741 | dd 0 |
||
742 | dd 0 |
||
1205 | Lrz | 743 | start_application: db '/sys/LAUNCHER',0 |
744 | start_application_e=$-start_application-1 |
||
745 | ; times 60 db 0 |
||
3408 | hidnplayr | 746 | rb 60 |
1205 | Lrz | 747 | start_application_c=$-start_application-1 |
2559 | mario79 | 748 | ;------------------------------------------------------------------------------ |
749 | IM_END: |
||
750 | ;------------------------------------------------------------------------------ |
||
3587 | fedesco | 751 | align 4 |
1228 | Lrz | 752 | sc system_colors |
3408 | hidnplayr | 753 | winxpos rd 1 |
754 | winypos rd 1 |
||
755 | mouse_dd rd 1 |
||
756 | cpu_percent rd 1 |
||
757 | tcolor rd 1 |
||
758 | list_add rd 1 |
||
759 | curposy rd 1 |
||
760 | index rd 1 |
||
761 | tasklist rd display_processes |
||
762 | time_counter rd 1 |
||
2582 | mario79 | 763 | |
3408 | hidnplayr | 764 | window_status rd 1 |
765 | client_area_x_size rd 1 |
||
766 | client_area_y_size rd 1 |
||
767 | bar_bacground_color rd 1 |
||
768 | btn_bacground_color rd 1 |
||
769 | draw_window_flag rd 1 |
||
2559 | mario79 | 770 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 771 | align 4 |
2559 | mario79 | 772 | library_path: |
31 | halyavin | 773 | process_info_buffer process_information |
2559 | mario79 | 774 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 775 | align 4 |
2559 | mario79 | 776 | cur_dir_path: |
3408 | hidnplayr | 777 | rb 1024 |
2559 | mario79 | 778 | ;------------------------------------------------------------------------------ |
3587 | fedesco | 779 | align 4 |
3408 | hidnplayr | 780 | rb 1024 |
2559 | mario79 | 781 | stack_area: |
782 | ;------------------------------------------------------------------------------ |
||
31 | halyavin | 783 | U_END: |
2559 | mario79 | 784 | ;------------------------------------------------------------------------------464,385>45,365>456,50>125,96>361,14>25,96>20,336>0,10>17,8>0,20>8,256>3,0>8,256>2,256>110,395>10,99>111,393>11,95> |