Subversion Repositories Kolibri OS

Rev

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