Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8533 → Rev 8561

/programs/system/cpu/trunk/cpu.asm
6,7 → 6,8
 
use32
org 0x0
db 'MENUET01' ; 8 byte id
db "MENUET01" ; 8 byte id
dd 0x01 ; header version
dd START ; start of code
dd IM_END ; size of image
14,58 → 15,86
dd stack_area ; esp
dd 0x0 ; boot parameters
dd cur_dir_path ; path
;------------------------------------------------------------------------------
include 'lang.inc'
include '../../../macros.inc'
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
include '../../../KOSfuncs.inc'
include '../../../load_lib.mac'
;------------------------------------------------------------------------------
display_processes=24 ;32 ; number of processes to show
window_x_size=524
window_y_size=430
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
include "lang.inc"
include "../../../macros.inc"
include "../../../develop/libraries/box_lib/trunk/box_lib.mac"
include "../../../KOSfuncs.inc"
include "../../../load_lib.mac"
;-------------------------------------------------------------------------------
DISPLAY_PROCESSES = 20 ;number of processes to show
;-------------------------------------------------------------------------------
WINDOW.WIDTH = PROCESS_TABLE.WIDTH + 10*2
WINDOW.HEIGHT = WORK_AREA.HEIGHT + 30
WORK_AREA.HEIGHT = CHECKBOX.Y + BUTTON.HEIGHT + 10
PROCESS_TABLE:
.X = 10
.Y = 10
.WIDTH = 640
.HEIGHT = DISPLAY_PROCESSES * BUTTON.HEIGHT
UNDERTABLE:
.X = PROCESS_TABLE.X
.Y = PROCESS_TABLE.Y + PROCESS_TABLE.HEIGHT + 20
BUTTON:
.HEIGHT = 16 + 4
EDITBOX:
.X = CHECKBOX.X + 100
.Y = UNDERTABLE.Y + BUTTON.HEIGHT + 25
.WIDTH = 465
.HEIGHT = 15
CHECKBOX:
.X = PROCESS_TABLE.X
.Y = UNDERTABLE.Y + BUTTON.HEIGHT + 25
;-------------------------------------------------------------------------------
@use_library ;use load lib macros
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
struc utf8z string
{
. db string, 0
.size = $ - . - 1
}
 
;-------------------------------------------------------------------------------
START: ; start of execution
mcall SF_SYS_MISC,SSF_HEAP_INIT
sys_load_library library_name, library_path, system_path, myimport
inc eax
jz close
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
mcall SF_SET_EVENTS_MASK,0x80000027 ;set event
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;set window size and position for 0 function
;to [winxpos] and [winypos] variables
;get screen size
mcall SF_GET_SCREEN_SIZE
mov ebx,eax
;calculate (x_screen-window_x_size)/2
;calculate (x_screen-WINDOW.WIDTH)/2
shr ebx,16+1
sub ebx,window_x_size/2
sub ebx,WINDOW.WIDTH/2
shl ebx,16
mov bx,window_x_size
mov bx,WINDOW.WIDTH
;winxpos=xcoord*65536+xsize
mov [winxpos],ebx
;calculate (y_screen-window_y_size)/2
;calculate (y_screen-WINDOW.HEIGHT)/2
and eax,0xffff
shr eax,1
sub eax,window_y_size/2
sub eax,WINDOW.HEIGHT/2
shl eax,16
mov ax,window_y_size
mov ax,WINDOW.HEIGHT
;winypos=ycoord*65536+ysize
mov [winypos],eax
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
init_checkboxes2 check1,check1_end
mcall SF_STYLE_SETTINGS,SSF_GET_COLORS,sc,40
edit_boxes_set_sys_color edit1,edit1_end,sc ;set color
;check_boxes_set_sys_color2 check1,check1_end,sc ;set color
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
;main loop when process name isn't edited.
;main loop when process name isn"t edited.
red:
call draw_window ; redraw all window
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
still:
mcall SF_WAIT_EVENT_TIMEOUT,100 ; wait here for event 1 sec.
97,7 → 126,7
 
push dword check1
call [check_box_draw]
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
show_process_info_1:
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
106,7 → 135,7
 
call show_process_info ; draw new state of processes
jmp still
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
still_end:
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
118,7 → 147,7
 
call show_process_info ; draw new state of processes
jmp still
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
key: ; key
mcall SF_GET_KEY
143,7 → 172,7
jz program_start ; RUN a program
 
jmp still
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
button:
; get button id
193,7 → 222,7
;terminate application
mcall SF_SYSTEM,SSF_TERMINATE_THREAD
jmp show_process_info_1
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
noterm:
;special buttons
207,42 → 236,42
jz pgup ;52
 
dec eax
jz program_start ;53
jz reboot ;53
 
dec eax
jz reboot ;54
jz program_start ;54
 
jmp still_end
;buttons handlers
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
pgdn:
sub [list_start],display_processes
sub [list_start],DISPLAY_PROCESSES
jge show_process_info_1
mov [list_start],0
jmp show_process_info_1
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
pgup:
mov eax,[list_add] ;maximal displayed process slot
mov [list_start],eax
jmp show_process_info_1
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
program_start:
mcall SF_FILE,file_start
jmp show_process_info_1
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
reboot:
mcall SF_FILE,sys_reboot
;close program if we going to reboot
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
close:
or eax,SF_TERMINATE_PROCESS ; close this program
mcall
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
draw_empty_slot:
cmp [draw_window_flag],1
249,11 → 278,11
je @f
mov ecx,[curposy]
shl ecx,16
mov cx,10 ; button height
mcall SF_DRAW_RECT,<111,393>,,[bar_bacground_color]
mov cx, BUTTON.HEIGHT
mcall SF_DRAW_RECT, <132, PROCESS_TABLE.WIDTH-131>, , [bar_bacground_color]
@@:
ret
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
draw_next_process:
;input:
265,7 → 294,7
;create terminate process button
mov ecx,[curposy]
shl ecx,16
mov cx,13 ; button height
mov cx, BUTTON.HEIGHT
mov edx,[index]
add edx,11
mov esi,0xccddee
276,19 → 305,18
add edx,0x80000000 ; delete a button
mcall SF_DEFINE_BUTTON ; before create
sub edx,0x80000000 ; a new one below
mcall SF_DEFINE_BUTTON,<10,99>
mcall SF_DEFINE_BUTTON,<10,120>
mov [btn_bacground_color],esi
;draw background for proccess information
mov edx,0xddffdd
mov edx,0xEFEFF5
test dword [index],1
jz @f
mov edx,0xffffff
@@:
inc cx
cmp [draw_window_flag],0
je @f
mcall SF_DRAW_RECT,<110,395>
@@:
 
mcall SF_DRAW_RECT, <131, PROCESS_TABLE.WIDTH-131>
 
mov [bar_bacground_color],edx
;nothing else should be done if there is no process for this button
cmp edi,-1
297,7 → 325,7
call draw_empty_slot
or edi,-1
jmp .ret
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.return_1:
;find process
306,7 → 334,7
mov ecx,edi
;precacluate pointer to process buffer
mov ebx,process_info_buffer
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.find_loop:
cmp ecx,256
323,40 → 351,37
 
inc ecx
jmp .find_loop
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.no_processes:
call draw_empty_slot
or edi,-1
ret
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.process_found:
;check on/off check box
push edi
lea edi,[check1]
test dword ch_flags,ch_flag_en
pop edi
test dword [check1.flags], ch_flag_en
jnz .no_filter
 
cmp dword [process_info_buffer+10],'ICON'
cmp dword [process_info_buffer+10],"ICON"
jnz @f
cmp dword [process_info_buffer+10+4],0
jz .return_1
@@:
cmp dword [process_info_buffer+10],'IDLE'
cmp dword [process_info_buffer+10],"IDLE"
jnz @f
cmp dword [process_info_buffer+10+4],0
jz .return_1
@@:
cmp word [process_info_buffer+10],'OS'
cmp word [process_info_buffer+10],"OS"
jnz @f
cmp dword [process_info_buffer+10+2],0
jz .return_1
@@:
cmp byte [process_info_buffer+10],'@'
cmp byte [process_info_buffer+10],"@"
jz .return_1
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.no_filter:
mov edi,ecx
382,65 → 407,71
test eax,eax
jnz .no_black
 
mov esi,eax
mov esi, 0x10000000
jmp .color_set
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.no_black:
cmp eax,80
ja .no_green
 
mov esi,0x107a30
mov esi, 0x10107A30
jmp .color_set
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.no_green:
mov esi,0xac0000
;--------------------------------------
mov esi,0x10AC0000
;-------------------------------------------------------------------------------
align 4
.color_set:
;show slot number
;ecx haven't changed since .process_found
;ecx haven"t changed since .process_found
push edi
mov edx,[curposy]
add edx,15*65536+3
mcall SF_DRAW_NUMBER,<2,256>
mov eax, ecx
mov ebx, [curposy]
add ebx, 40 shl 16 + 3
mov ecx, esi
xor edx, edx
call draw_ra_dec_number
push ecx
;show process name
mov ebx,[curposy]
add ebx,40*65536+3
add ebx,50*65536+3
mov ecx,esi
or ecx, 0x80000000
mcall SF_DRAW_TEXT,,,process_info_buffer.process_name,11
;show pid
mov edx,[curposy]
add edx,125*65536+3
mov esi,ecx
or esi,0x40000000
mcall SF_DRAW_NUMBER,<8,256>,[process_info_buffer.PID],,,[bar_bacground_color]
pop ecx
;show PTID
mov eax, [process_info_buffer.PID]
add ebx, 160 shl 16
xor edx, edx
call draw_ra_dec_number
;show cpu usage
add edx,60*65536
mcall ,,[process_info_buffer.cpu_usage]
mov eax, [process_info_buffer.cpu_usage]
add ebx, 100 shl 16
call draw_ra_dec_number
;show cpu percent
add edx,60*65536
mcall ,<3,0>,[cpu_percent]
;show memory start - obsolete
add edx,30*65536
mcall ,<8,256>,[process_info_buffer.memory_start]
mov eax, [cpu_percent]
add ebx, 55 shl 16
call draw_ra_dec_number
;show memory usage
mov ecx,[process_info_buffer.used_memory]
inc ecx
add edx,60*65536
mcall
;show window stack and value
add edx,60*65536
mcall ,,dword [process_info_buffer.window_stack_position]
;show window xy size
mov ecx,[process_info_buffer.box.left]
shl ecx,16
add ecx,[process_info_buffer.box.top]
add edx,60*65536
mcall
mov eax, [process_info_buffer.used_memory]
add ebx, 60 shl 16
call draw_ra_data_size
;show window stack position
movzx eax, word [process_info_buffer.window_stack_position]
add ebx, 70 shl 16
call draw_ra_dec_number
;show window x size
movzx eax, word [process_info_buffer.box.left]
add ebx, 70 shl 16
call draw_ra_dec_number
;show window y size
movzx eax, word [process_info_buffer.box.top]
add ebx, 70 shl 16
call draw_ra_dec_number
pop edi
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.ret:
;build index->slot map for terminating processes.
447,7 → 478,7
mov eax,[index]
mov [tasklist+4*eax],edi
ret
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
f11:
;full update
454,7 → 485,7
push edi
call draw_window
pop edi
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
; *********************************************
; ******* WINDOW DEFINITIONS AND DRAW ********
; *********************************************
464,7 → 495,7
; DRAW WINDOW
xor eax,eax ; function 0 : define and draw window
xor esi,esi
mcall ,[winxpos],[winypos],0x74ffffff,,title ;0x34ddffdd
mcall ,[winxpos],[winypos], 0x34FFFFFF,, strings.tmp_window_caption ;0x34ddffdd
 
mcall SF_THREAD_INFO,process_info_buffer,-1
 
476,26 → 507,39
test [window_status],10b ; window is minimized to panel
jnz .exit
 
mov eax,[ebx+62]
inc eax
mov [client_area_x_size],eax
mov eax,[ebx+66]
inc eax
mov [client_area_y_size],eax
 
mov ebx,[client_area_x_size]
mcall SF_DRAW_RECT,,<0,20>,0xffffff
; function 4 : write text to window
mov eax, strings.process_name
mov ebx, 130 shl 16 + 5
xor ecx,ecx
mcall SF_DRAW_TEXT,<17,8>,,text,text_len
call draw_ra_text
 
mcall SF_DRAW_RECT,<0,10>,<20,336>,0xffffff
mov eax, strings.ptid
add ebx, 80 shl 16
call draw_ra_text
 
mov ebx,[client_area_x_size]
sub ebx,10+100+395
add ebx,(10+100+395) shl 16
mcall
mov eax, strings.cpu_usage_cycles
add ebx, 100 shl 16
call draw_ra_text
 
mov eax, strings.cpu_usage_percent
add ebx, 55 shl 16
call draw_ra_text
mov eax, strings.memory_usage
add ebx, 60 shl 16
call draw_ra_text
mov eax, strings.window_stack_pos
add ebx, 70 shl 16
call draw_ra_text
mov eax, strings.window_position.x
add ebx, 70 shl 16
call draw_ra_text
mov eax, strings.window_position.y
add ebx, 70 shl 16
call draw_ra_text
 
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
add eax,100
mov [time_counter],eax
504,12 → 548,6
call show_process_info
mov [draw_window_flag],0
 
mov ebx,[client_area_x_size]
mov ecx,[client_area_y_size]
sub ecx,20+336
add ecx,(20+336) shl 16
mcall SF_DRAW_RECT,,,0xffffff
 
push dword edit1
call [edit_box_draw]
 
516,34 → 554,34
push dword check1
call [check_box_draw]
 
; previous page button
mcall SF_DEFINE_BUTTON,<25,96>,<361,14>,51,0xccddee ;0xaabbcc
; next page button 52
inc edx
mcall ,<125,96>
; ">" (text enter) button
add ecx,20 shl 16
; run button 53
inc edx
mcall ,<456,50>
; reboot button
sub ebx,120*65536
add ebx,60
sub ecx,20 shl 16
inc edx
mcall
;"PREV PAGE", "NEXT PAGE" and "REBOOT" labels
xor ecx,ecx
mcall SF_DRAW_TEXT,<45,365>,,tbts,tbte-tbts
;"RUN" labels
mcall ,<464,385>,,tbts_3,tbte_2-tbts_3
;print application name in text box
;--------------------------------------
;previous page button, ID = 51:
mov eax, strings.previous_page
mov ebx, UNDERTABLE.X shl 16 + UNDERTABLE.Y
mov ecx, 51
mov edx, 0xCCDDEE
xor esi, esi
call draw_button_with_caption
;next page button, ID = 52:
mov eax, strings.next_page
add ebx, 10 shl 16
inc ecx
call draw_button_with_caption
;reboot button, ID = 53:
mov eax, strings.reboot
add ebx, 345 shl 16
inc ecx
call draw_button_with_caption
;run button, ID = 54
mov eax, strings.run
mov ebx, (EDITBOX.X + EDITBOX.WIDTH + 10) shl 16 + (EDITBOX.Y + EDITBOX.HEIGHT/2 - BUTTON.HEIGHT/2)
inc ecx
call draw_button_with_caption
;-------------------------------------------------------------------------------
align 4
.exit:
mcall SF_REDRAW, SSF_END_DRAW
ret
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
show_process_info:
test [window_status],100b ; window is rolled up
552,7 → 590,7
test [window_status],10b ; window is minimized to panel
jnz .exit
 
mov ecx,display_processes
mov ecx,DISPLAY_PROCESSES
mov edi,tasklist
xor eax,eax
cld
562,25 → 600,264
mov [list_add],edi
mov dword [index],0
mov dword [curposy],20
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.loop_draw:
call draw_next_process
inc dword [index]
add dword [curposy],14
cmp [index],display_processes
add dword [curposy],16+4
cmp [index],DISPLAY_PROCESSES
jl .loop_draw
;--------------------------------------
;-------------------------------------------------------------------------------
align 4
.exit:
ret
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
 
draw_ra_dec_number:
;-------------------------------------------------------------------------------
;draws (posfixed) number with flush right alignment in decimal form
;8x16 number + 8x16 UTF8Z text
;in:
;eax = number
;ebx = right margin coordinates (x shl 16 + y)
;ecx = 0x00RRGGBB
;edx = pointer to postfix string or 0 - no postfix
;-------------------------------------------------------------------------------
pusha
 
ror ebx, 16
mov ebp, eax
test edx, edx
jz .no_postfix
mov eax, edx
call count_utf8z_chars
test eax, eax
jz .no_postfix
push ecx
lea eax, [eax*8]
sub bx, ax
rol ebx, 16
or ecx, 0xB0000000
mcall SF_DRAW_TEXT
ror ebx, 16
pop ecx
.no_postfix:
mov eax, ebp
push edx
 
xor edi, edi
mov esi, 10
@@:
xor edx, edx
div esi
inc edi
test eax, eax
jz @f
jmp @b
 
@@:
pop edx
mov esi, ecx
or esi, 0x10000000
mov ecx, ebp
mov edx, ebx
lea eax, [edi*8]
sub dx, ax
rol edx, 16
mcall SF_DRAW_NUMBER, (11 shl 16) or 0x80000000
popa
ret
;-------------------------------------------------------------------------------
 
draw_ra_data_size:
;-------------------------------------------------------------------------------
;draws data size with flush right alignment in following form:
;n (for <1024 bytes) or n xB (KB/MB/GB)
;8x16 font
;in:
;eax = number
;ebx = right margin coordinates (x shl 16 + y)
;ecx = 0x00RRGGBB
;-------------------------------------------------------------------------------
pusha
 
xor edx, edx
cmp eax, 1024
ja @f
jmp .draw_text
@@:
cmp eax, 1024*1024
jae @f
mov esi, 1024
div esi
mov edx, strings.KB
jmp .draw_text
@@:
cmp eax, 1024*1024*1024
jae @f
mov esi, 1024*1024
div esi
mov edx, strings.MB
jmp .draw_text
@@:
mov esi, 1024*1024*1024
div esi
mov edx, strings.GB
.draw_text:
call draw_ra_dec_number
popa
ret
;-------------------------------------------------------------------------------
 
draw_ra_text:
;-------------------------------------------------------------------------------
;draws 8x16 UTF8Z text with flush right alignment in decimal form
;in:
;eax = pointer to text string
;ebx = right margin coordinates (x shl 16 + y)
;ecx = 0x00RRGGBB
;-------------------------------------------------------------------------------
pusha
 
ror ebx, 16
mov edx, eax
call count_utf8z_chars
test eax, eax
jz .ret
lea eax, [eax*8]
sub bx, ax
rol ebx, 16
or ecx, 0xB0000000
mcall SF_DRAW_TEXT
.ret:
popa
ret
;-------------------------------------------------------------------------------
 
draw_button_with_caption:
;-------------------------------------------------------------------------------
;draws button with 8x16 UTF8Z caption in center
;in:
;eax = pointer to button caption or 0 - no caption
;ebx = x shl 16 + y
;ecx = 0x00XXXXXX, where XXXXXX - button ID
;edx = 0x00RRGGBB - button color
;esi = 0x00RRGGBB - text color
;out:
;eax = width of button
;ebx = x+width shl 16 + y
;-------------------------------------------------------------------------------
pusha
xor ebp, ebp
mov edi, eax
test eax, eax
jz .no_caption_0
 
call count_utf8z_chars
mov ebp, eax
 
.no_caption_0:
push ebx esi
lea eax, [ebp*8]
mov esi, edx
mov edx, ecx
mov ecx, ebx
shl ecx, 16
mov bx, ax
add bx, 3*2
movzx eax, bx
mov dword [esp+4*2+4*7], eax ;out eax = width
add word [esp+4*2+4*4+2], ax ;out ebx = x+width shl 16 + y
mov cx, BUTTON.HEIGHT
mcall SF_DEFINE_BUTTON
pop esi ebx
test edi, edi
jz .no_caption_1
mov edx, edi
add ebx, 3 shl 16 + 3
mov ecx, esi
or ecx, 0xB0000000
mcall SF_DRAW_TEXT
.no_caption_1:
popa
ret
;-------------------------------------------------------------------------------
 
count_utf8z_chars:
;-------------------------------------------------------------------------------
;in:
;eax = pointer to UTF8Z string
;out:
;eax = count of chars (excluding finishing zero) (0 if string is empty or invalid)
;-------------------------------------------------------------------------------
push esi ebx
mov esi, eax
xor ebx, ebx
.0:
lodsb
test al, al
jz .ok
inc ebx
cmp al, 0x7F
ja @f
jmp .0
@@:
cmp al, 0xC0
jb .err
cmp al, 0xDF
ja @f
inc esi
jmp .0
@@:
cmp al, 0xEF
ja @f
inc esi
inc esi
jmp .0
@@:
cmp al, 0xF7
ja .err
add esi, 3
jmp .0
.ok:
mov eax, ebx
pop ebx esi
ret
.err:
xor eax, eax
pop ebx esi
ret
;-------------------------------------------------------------------------------
 
; DATA AREA
;------------------------------------------------------------------------------
system_path db '/sys/lib/'
library_name db 'box_lib.obj',0
;-------------------------------------------------------------------------------
system_path db "/sys/lib/"
library_name db "box_lib.obj", 0
 
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
myimport:
edit_box_draw dd aEdit_box_draw
600,28 → 877,28
dd 0
dd 0
 
aEdit_box_draw db 'edit_box',0
aEdit_box_key db 'edit_box_key',0
aEdit_box_mouse db 'edit_box_mouse',0
;aVersion_ed db 'version_ed',0
aEdit_box_draw db "edit_box",0
aEdit_box_key db "edit_box_key",0
aEdit_box_mouse db "edit_box_mouse",0
;aVersion_ed db "version_ed",0
 
aInit_checkbox db 'init_checkbox2',0
aCheck_box_draw db 'check_box_draw2',0
aCheck_box_mouse db 'check_box_mouse2',0
;aVersion_ch db 'version_ch',0
aInit_checkbox db "init_checkbox2",0
aCheck_box_draw db "check_box_draw2",0
aCheck_box_mouse db "check_box_mouse2",0
;aVersion_ch db "version_ch",0
 
;aOption_box_draw db 'option_box_draw',0
;aOption_box_mouse db 'option_box_mouse',0
;aVersion_op db 'version_op',0
;------------------------------------------------------------------------------
;aOption_box_draw db "option_box_draw",0
;aOption_box_mouse db "option_box_mouse",0
;aVersion_op db "version_op",0
;-------------------------------------------------------------------------------
align 4
check1 check_box2 (10 shl 16)+12,(383 shl 16)+12,6, 0x80D6DEE7,0x4C5258,0,check_text, ch_flag_middle ;ch_flag_en
check1 check_box2 CHECKBOX.X shl 16 + 12, CHECKBOX.Y shl 16 + 12, 6, 0x80D6DEE7, 0x4C5258, 0xB0000000, strings.checkbox_caption, ch_flag_top
check1_end:
edit1 edit_box 350,95,381,0xffffff,0x6f9480,0,0xAABBCC,0,start_application_c,\
edit1 edit_box EDITBOX.WIDTH, EDITBOX.X, EDITBOX.Y, 0xffffff, 0x6f9480, 0, 0xAABBCC, 0, start_application_c,\
start_application,mouse_dd,ed_focus,start_application_e,start_application_e
edit1_end:
list_start dd 0
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
sys_reboot:
dd SSF_START_APP
629,75 → 906,131
dd 0
dd 0
dd 0
db '/sys/end',0
;------------------------------------------------------------------------------
db "/sys/end",0
;-------------------------------------------------------------------------------
strings:
if lang eq de
text:
db 'NAME/BEENDEN PID CPU-LAST % '
db 'SPEICHER START/NUTZUNG W-STACK W-POS'
text_len = $-text
.window_caption utf8z "Prozesse - [Ctrl+Alt+Del]"
.tmp_window_caption db "Process manager v0.2 - [Ctrl+Alt+Del]", 0
 
tbts: db 'SEITE ZURUECK SEITE VOR REBOOT SYSTEM'
tbte:
tbts_3 db 'START'
tbte_2:
check_text db 'System',0
title db 'Prozesse - Ctrl/Alt/Del',0
;--------------------------------------
.process_name utf8z "NAME/BEENDEN"
.ptid utf8z "PID/TID"
.cpu_usage_cycles utf8z "CPU(ZYKLEN)"
.cpu_usage_percent utf8z "CPU(%)"
.memory_usage utf8z "SPEICHER"
.window_stack_pos utf8z "W-STACK"
.window_position.x utf8z "W-POS-X"
.window_position.y utf8z "W-POS-Y"
.previous_page utf8z "SEITE ZURUECK"
.next_page utf8z "SEITE VOR"
.reboot utf8z "REBOOT SYSTEM"
.run utf8z "START"
.checkbox_caption utf8z "System"
.KB utf8z " KB"
.MB utf8z " MB"
.GB utf8z " GB"
;-------------------------------------------------------------------------------
else if lang eq et
text:
db 'NIMI/LÕPETA PID CPU-KASUTUS % '
db 'MÄLU ALGUS/KASUTUS W-PUHVER W-SUURUS'
text_len = $-text
.window_caption utf8z "Protsessid v0.2 - [Ctrl+Alt+Del]"
.tmp_window_caption db "Process manager v0.2 - [Ctrl+Alt+Del]", 0
 
tbts: db 'EELMINE LEHT JÄRGMINE LEHT REBOODI SÜSTEEM'
tbte:
tbts_3 db 'START'
tbte_2:
check_text db 'System',0
title db 'Protsessid - Ctrl/Alt/Del'
;--------------------------------------
.process_name utf8z "NIMI/LÕPETA"
.ptid utf8z "PID/TID"
.cpu_usage_cycles utf8z "CPU(TSÜKLID)"
.cpu_usage_percent utf8z "CPU(%)"
.memory_usage utf8z "MÄLU"
.window_stack_pos utf8z "W-PUHVER"
.window_position.x utf8z "W-POS-X"
.window_position.y utf8z "W-POS-Y"
.previous_page utf8z "EELMINE LEHT"
.next_page utf8z "JÄRGMINE LEHT"
.reboot utf8z "REBOODI SÜSTEEM"
.run utf8z "START"
.checkbox_caption utf8z "System"
.KB utf8z " KB"
.MB utf8z " MB"
.GB utf8z " GB"
;-------------------------------------------------------------------------------
else if lang eq ru
text:
db 'ˆŒŸ/‡€‚…˜ˆ’œ PID CPU-‡€ƒ“‡Š€ % '
db '€ŒŸ’œ €—€‹Ž/‚‘…ƒŽ W-STACK W-POS'
text_len = $-text
.window_caption utf8z "????????? ????????? v0.2 - [Ctrl+Alt+Del]"
.tmp_window_caption db "Process manager v0.2 - [Ctrl+Alt+Del]", 0
 
tbts: db '…„.‘’ ‘‹…„.‘’ ……‡€ƒ“‡Š€'
tbte:
tbts_3 db '‡€“‘Š'
tbte_2:
check_text db '‘¨á⥬­ë¥',0
title db '„¨á¯¥âç¥à ¯à®æ¥áᮢ - Ctrl/Alt/Del',0
;--------------------------------------
.process_name utf8z "???/?????????"
.ptid utf8z "PID/TID"
.cpu_usage_cycles utf8z "CPU(?????)"
.cpu_usage_percent utf8z "CPU(%)"
.memory_usage utf8z "??????"
.window_stack_pos utf8z "W-STACK"
.window_position.x utf8z "W-POS-X"
.window_position.y utf8z "W-POS-Y"
.previous_page utf8z "????. ???."
.next_page utf8z "????. ???."
.reboot utf8z "????????????"
.run utf8z "??????"
.checkbox_caption utf8z "?????????"
.KB utf8z " ??"
.MB utf8z " ??"
.GB utf8z " ??"
;-------------------------------------------------------------------------------
else if lang eq it
text:
db 'NOME-PROGRAMMA PID USO CPU % '
db 'MEMORY START/USAGE W-STACK W-POS'
text_len = $-text
.window_caption utf8z "Gestore processi v0.2 - [Ctrl+Alt+Del]"
.tmp_window_caption db "Process manager v0.2 - [Ctrl+Alt+Del]", 0
 
tbts: db 'INDIETRO AVANTI RIAVVIA SISTEMA'
tbte:
tbts_3 db 'START'
tbte_2:
check_text db 'System',0
title db 'Gestore processi - Ctrl/Alt/Del',0
;--------------------------------------
.process_name utf8z "NOME-PROGRAMMA"
.ptid utf8z "PID/TID"
.cpu_usage_cycles utf8z "CPU(CICLI)"
.cpu_usage_percent utf8z "CPU(%)"
.memory_usage utf8z "MEMORY"
.window_stack_pos utf8z "W-STACK"
.window_position.x utf8z "W-POS-X"
.window_position.y utf8z "W-POS-Y"
.previous_page utf8z "INDIETRO"
.next_page utf8z "AVANTI"
.reboot utf8z "RIAVVIA SISTEMA"
.run utf8z "START"
.checkbox_caption utf8z "System"
.KB utf8z " KB"
.MB utf8z " MB"
.GB utf8z " GB"
;-------------------------------------------------------------------------------
else
text:
db 'NAME/TERMINATE PID CPU-USAGE % '
db 'MEMORY START/USAGE W-STACK W-POS'
text_len = $-text
.window_caption utf8z "Process manager v0.2 - [Ctrl+Alt+Del]"
.tmp_window_caption db "Process manager v0.2 - [Ctrl+Alt+Del]", 0
 
tbts: db 'PREV PAGE NEXT PAGE REBOOT SYSTEM'
tbte:
tbts_3 db ' RUN'
tbte_2:
check_text db 'System',0
title db 'Process manager - Ctrl/Alt/Del',0
.process_name utf8z "NAME/TERMINATE"
.ptid utf8z "PID/TID"
.cpu_usage_cycles utf8z "CPU(CYCLES)"
.cpu_usage_percent utf8z "CPU(%)"
.memory_usage utf8z "MEMORY"
.window_stack_pos utf8z "W-STACK"
.window_position.x utf8z "W-POS-X"
.window_position.y utf8z "W-POS-Y"
 
.previous_page utf8z "PREV PAGE"
.next_page utf8z "NEXT PAGE"
.reboot utf8z "REBOOT SYSTEM"
.run utf8z "RUN"
.checkbox_caption utf8z "System"
.KB utf8z " KB"
.MB utf8z " MB"
.GB utf8z " GB"
end if
; ---------------------------------------------------------------------------- ;
;-------------------------------------------------------------------------------
align 4
tinfo:
dd SSF_START_APP
712,7 → 1045,7
times 11 db 0 ; at now 4 bytes will be enough, but may be in the future not
align 4
sz_tinfo_file_path db "/sys/tinfo",0
; ---------------------------------------------------------------------------- ;
;-------------------------------------------------------------------------------
align 4
file_start:
dd SSF_START_APP
720,14 → 1053,14
dd 0
dd 0
dd 0
start_application: db '/sys/LAUNCHER',0
start_application: db "/sys/LAUNCHER",0
start_application_e=$-start_application-1
; times 60 db 0
rb 60
start_application_c=$-start_application-1
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
IM_END:
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
sc system_colors
winxpos rd 1
737,7 → 1070,7
list_add rd 1
curposy rd 1
index rd 1
tasklist rd display_processes
tasklist rd DISPLAY_PROCESSES
time_counter rd 1
 
window_status rd 1
746,11 → 1079,11
bar_bacground_color rd 1
btn_bacground_color rd 1
draw_window_flag rd 1
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
library_path:
process_info_buffer process_information
;------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
align 4
cur_dir_path:
rb 1024