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