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