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