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